Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Changes In Branch legacy-json-valid Excluding Merge-Ins
This is equivalent to a diff from b2fdac0b to c5daae88
2023-08-11
| ||
11:30 | Provide the -DSQLITE_LEGACY_JSON_VALID compile-time option to restore the (incorrect) legacy behavior of json_valid(NULL). (check-in: 00bc9f1b user: drh tags: trunk) | |
11:24 | Fix bug in the test case for the previous check-in. (Closed-Leaf check-in: c5daae88 user: drh tags: legacy-json-valid) | |
11:12 | Up until version 3.42.0, there was a bug in json_valid() such that it would return False (0) for a NULL input. That bug is fixed in 3.42.0. This check-in adds a compile-time option -DSQLITE_LEGACY_JSON_VALID that restores the old buggy behavior for applications that depend on it. (check-in: 15c2eadb user: drh tags: legacy-json-valid) | |
2023-08-10
| ||
18:50 | New testcase() macro in the tokenizer, to better document its behavior. (check-in: b2fdac0b user: drh tags: trunk) | |
17:32 | Move ext/wasm/version-info.c to tool/ for re-use in build other dist bundles. (check-in: 4b0871fd user: stephan tags: trunk) | |
Changes to src/ctime.c.
︙ | ︙ | |||
56 57 58 59 60 61 62 | #ifdef SQLITE_32BIT_ROWID "32BIT_ROWID", #endif #ifdef SQLITE_4_BYTE_ALIGNED_MALLOC "4_BYTE_ALIGNED_MALLOC", #endif | < < < | 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | #ifdef SQLITE_32BIT_ROWID "32BIT_ROWID", #endif #ifdef SQLITE_4_BYTE_ALIGNED_MALLOC "4_BYTE_ALIGNED_MALLOC", #endif #ifdef SQLITE_ALLOW_COVERING_INDEX_SCAN # if SQLITE_ALLOW_COVERING_INDEX_SCAN != 1 "ALLOW_COVERING_INDEX_SCAN=" CTIMEOPT_VAL(SQLITE_ALLOW_COVERING_INDEX_SCAN), # endif #endif #ifdef SQLITE_ALLOW_URI_AUTHORITY "ALLOW_URI_AUTHORITY", |
︙ | ︙ | |||
394 395 396 397 398 399 400 401 402 403 404 405 406 407 | "INLINE_MEMCPY", #endif #ifdef SQLITE_INT64_TYPE "INT64_TYPE", #endif #ifdef SQLITE_INTEGRITY_CHECK_ERROR_MAX "INTEGRITY_CHECK_ERROR_MAX=" CTIMEOPT_VAL(SQLITE_INTEGRITY_CHECK_ERROR_MAX), #endif #ifdef SQLITE_LIKE_DOESNT_MATCH_BLOBS "LIKE_DOESNT_MATCH_BLOBS", #endif #ifdef SQLITE_LOCK_TRACE "LOCK_TRACE", #endif | > > > | 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 | "INLINE_MEMCPY", #endif #ifdef SQLITE_INT64_TYPE "INT64_TYPE", #endif #ifdef SQLITE_INTEGRITY_CHECK_ERROR_MAX "INTEGRITY_CHECK_ERROR_MAX=" CTIMEOPT_VAL(SQLITE_INTEGRITY_CHECK_ERROR_MAX), #endif #ifdef SQLITE_LEGACY_JSON_VALID "LEGACY_JSON_VALID", #endif #ifdef SQLITE_LIKE_DOESNT_MATCH_BLOBS "LIKE_DOESNT_MATCH_BLOBS", #endif #ifdef SQLITE_LOCK_TRACE "LOCK_TRACE", #endif |
︙ | ︙ |
Changes to src/json.c.
︙ | ︙ | |||
3005 3006 3007 3008 3009 3010 3011 | static void jsonValidFunc( sqlite3_context *ctx, int argc, sqlite3_value **argv ){ JsonParse *p; /* The parse */ UNUSED_PARAMETER(argc); | | > > > > > > | 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 | static void jsonValidFunc( sqlite3_context *ctx, int argc, sqlite3_value **argv ){ JsonParse *p; /* The parse */ UNUSED_PARAMETER(argc); if( sqlite3_value_type(argv[0])==SQLITE_NULL ){ #ifdef SQLITE_LEGACY_JSON_VALID /* Incorrect legacy behavior was to return FALSE for a NULL input */ sqlite3_result_int(ctx, 0); #endif return; } p = jsonParseCached(ctx, argv[0], 0, 0); if( p==0 || p->oom ){ sqlite3_result_error_nomem(ctx); sqlite3_free(p); }else{ sqlite3_result_int(ctx, p->nErr==0 && (p->hasNonstd==0 || p->useMod)); if( p->nErr ) jsonParseFree(p); |
︙ | ︙ |
Changes to test/json101.test.
︙ | ︙ | |||
919 920 921 922 923 924 925 | } {-Inf} # 2023-05-02 https://sqlite.org/forum/forumpost/06c6334412 # JSON functions should normally return NULL when given # a NULL value as the JSON input. # db null NULL | > | | > > > > | > | 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 | } {-Inf} # 2023-05-02 https://sqlite.org/forum/forumpost/06c6334412 # JSON functions should normally return NULL when given # a NULL value as the JSON input. # db null NULL if {[db exists {SELECT * FROM pragma_compile_options WHERE compile_options LIKE '%legacy_json_valid%'}]} { do_execsql_test json-21.1-legacy { SELECT json_valid(NULL); } 0 } else { do_execsql_test json-21.1-correct { SELECT json_valid(NULL); } NULL } do_execsql_test json-21.2 { SELECT json_error_position(NULL); } NULL do_execsql_test json-21.3 { SELECT json(NULL); } NULL do_execsql_test json-21.4 { |
︙ | ︙ |
Changes to tool/mkctimec.tcl.
︙ | ︙ | |||
176 177 178 179 180 181 182 183 184 185 186 187 188 189 | SQLITE_EXTRA_IFNULLROW SQLITE_FTS5_ENABLE_TEST_MI SQLITE_FTS5_NO_WITHOUT_ROWID SQLITE_IGNORE_AFP_LOCK_ERRORS SQLITE_IGNORE_FLOCK_LOCK_ERRORS SQLITE_INLINE_MEMCPY SQLITE_INT64_TYPE SQLITE_LIKE_DOESNT_MATCH_BLOBS SQLITE_LOCK_TRACE SQLITE_LOG_CACHE_SPILL SQLITE_MEMDEBUG SQLITE_MIXED_ENDIAN_64BIT_FLOAT SQLITE_MMAP_READWRITE SQLITE_MUTEX_NOOP | > | 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 | SQLITE_EXTRA_IFNULLROW SQLITE_FTS5_ENABLE_TEST_MI SQLITE_FTS5_NO_WITHOUT_ROWID SQLITE_IGNORE_AFP_LOCK_ERRORS SQLITE_IGNORE_FLOCK_LOCK_ERRORS SQLITE_INLINE_MEMCPY SQLITE_INT64_TYPE SQLITE_LEGACY_JSON_VALID SQLITE_LIKE_DOESNT_MATCH_BLOBS SQLITE_LOCK_TRACE SQLITE_LOG_CACHE_SPILL SQLITE_MEMDEBUG SQLITE_MIXED_ENDIAN_64BIT_FLOAT SQLITE_MMAP_READWRITE SQLITE_MUTEX_NOOP |
︙ | ︙ |