]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
2 years agoIn JSON - minor code cleanup and refactoring with a small size reduction
drh [Tue, 19 Dec 2023 21:39:58 +0000 (21:39 +0000)] 
In JSON - minor code cleanup and refactoring with a small size reduction
and performance increase.

FossilOrigin-Name: 215fabda38daecdbd38b1eca5a6aafbc61b6a36a8303f1d7164d5a1138e63134

2 years agoRemove redundant conditional from sqlite3ExprCanBeNull().
drh [Tue, 19 Dec 2023 15:51:14 +0000 (15:51 +0000)] 
Remove redundant conditional from sqlite3ExprCanBeNull().

FossilOrigin-Name: 257f96a2d22c605885fa66220c28cf7dc5941c330bccee3f132b9e7b70d89d30

2 years agoOn second thought, we don't really need sqlite_dbdata accessible to the CLI.
drh [Tue, 19 Dec 2023 15:10:25 +0000 (15:10 +0000)] 
On second thought, we don't really need sqlite_dbdata accessible to the CLI.

FossilOrigin-Name: 36fe6a61ef8fb393281a5e15119d716521219c7b971fbfd63bdea07d27a78ac9

2 years agoFix harmless compiler warning in the randomjson.c extension.
drh [Tue, 19 Dec 2023 15:06:40 +0000 (15:06 +0000)] 
Fix harmless compiler warning in the randomjson.c extension.

FossilOrigin-Name: debe7060b16669ada7304ffb9bf7616c8fa30bd286d8be871ed17fd6d64a3d4c

2 years agoMore precise computation of the size of data structures in the query planner.
drh [Tue, 19 Dec 2023 14:54:52 +0000 (14:54 +0000)] 
More precise computation of the size of data structures in the query planner.
Response to [forum:/forumpost/7d8685d49d|Forum post 7d8685d49d].

FossilOrigin-Name: 0c8d88e41167ea92341dd1129be01b596a73f46bdcd5b0dd931441a979c013d0

2 years agoAdd ALWAYS() and NEVER() on branches made unreachable by recent changes.
drh [Tue, 19 Dec 2023 14:53:39 +0000 (14:53 +0000)] 
Add ALWAYS() and NEVER() on branches made unreachable by recent changes.

FossilOrigin-Name: c50e6c2ace49d0928b05cbfd877c621e9a0f77dc4e056ccb1dbe5cf118a00d00

2 years agoIgnore COLLATE operators when determining whether the result of a subexpression
drh [Tue, 19 Dec 2023 13:45:05 +0000 (13:45 +0000)] 
Ignore COLLATE operators when determining whether the result of a subexpression
should be shallow-copied or deep-copied.

FossilOrigin-Name: 34ae36a45e814bed7c8340412c7ef3fc849b82357656d0eb5f0f805e59d846d0

2 years agoTest case for the previous check-in.
drh [Tue, 19 Dec 2023 13:00:35 +0000 (13:00 +0000)] 
Test case for the previous check-in.

FossilOrigin-Name: df5a07e1a5122e08c2fa6076ac08adb2820f997ee11dd88b84863666899dfb57

2 years agoWhen unable to resolve an identifier, change the Expr node into TK_NULL
drh [Tue, 19 Dec 2023 12:49:35 +0000 (12:49 +0000)] 
When unable to resolve an identifier, change the Expr node into TK_NULL
rather than TK_COLUMN, to prevent any downstream misuse of the non-existent
column.  dbsqlfuzz 71869261db80a95e4733afa10ff5724bf3c78592.

FossilOrigin-Name: d2e6117e4f97ab98b01deb5fcad5520f8181d00bed8d904d34963c01d73df857

2 years agoAlways make the sqlite_dbdata virtual table available in the CLI.
drh [Tue, 19 Dec 2023 12:23:11 +0000 (12:23 +0000)] 
Always make the sqlite_dbdata virtual table available in the CLI.

FossilOrigin-Name: e5fd3b32ad87586a7413570e568c9c1859a37a4f836cca074126471b125fb682

2 years agoExtra ALWAYS() macros to verify state in the sqlite3ExprCanBeNull() routine.
drh [Tue, 19 Dec 2023 11:57:29 +0000 (11:57 +0000)] 
Extra ALWAYS() macros to verify state in the sqlite3ExprCanBeNull() routine.

FossilOrigin-Name: be19b84c9f3fe127165809908add148dbe9a827a55608b0490de7e69b7f7f191

2 years agoRemove a stray comment in the JSON code.
drh [Tue, 19 Dec 2023 00:07:38 +0000 (00:07 +0000)] 
Remove a stray comment in the JSON code.

FossilOrigin-Name: 6618bdf0679405b43911ea8cd94050b12a5dc469f3dfe4759ee3ff850a55229e

2 years agoNew JSON invariant test cases.
drh [Mon, 18 Dec 2023 19:18:46 +0000 (19:18 +0000)] 
New JSON invariant test cases.

FossilOrigin-Name: a6a1367b0bf364b1a2e20e153c5f4a578624b8846f9ec0b7c9c3cba0ea2ec346

2 years agoAdd NEVER() to an unfalsifiable branch.
drh [Mon, 18 Dec 2023 18:50:47 +0000 (18:50 +0000)] 
Add NEVER() to an unfalsifiable branch.

FossilOrigin-Name: 9a0c67db366d38a0b0741f6a1ae333cf27cfe6f6b7c6eed94bdec9686f9f9f8a

2 years agoFix JSON to JSONB translation so that it deals correctly with Infinity
drh [Mon, 18 Dec 2023 18:31:27 +0000 (18:31 +0000)] 
Fix JSON to JSONB translation so that it deals correctly with Infinity
and NaN.

FossilOrigin-Name: 178cb84f36bdb45ba17511900d6d8ea8dfa14912fc5bf7094a20348174a36c95

2 years agoEnsure that the insert/delete size delta on JSONB objects in the JSON cache
drh [Mon, 18 Dec 2023 15:53:48 +0000 (15:53 +0000)] 
Ensure that the insert/delete size delta on JSONB objects in the JSON cache
are always set to zero.

FossilOrigin-Name: 4b4581668a908473dbf1322a3e98bc7cca122998c44518ea183af7f0d1ba9f95

2 years agoAdd randomjson.c to testfixture. Use it for a new set of invariant tests
drh [Mon, 18 Dec 2023 14:24:13 +0000 (14:24 +0000)] 
Add randomjson.c to testfixture.  Use it for a new set of invariant tests
against JSON functions.

FossilOrigin-Name: f1c040606bfe784804134d8f3ca130908fad5212b47e3c32792baab977470943

2 years agoEnsure that all object labels for individual objects generated by
drh [Mon, 18 Dec 2023 14:16:58 +0000 (14:16 +0000)] 
Ensure that all object labels for individual objects generated by
randomjson.c are unique.

FossilOrigin-Name: 29c46aca231b3f1e997ef306a5a651408185bf3ad09ab9fc1fe21ed18caa4d02

2 years agoBug fix in the randomjson.c extension.
drh [Mon, 18 Dec 2023 13:51:54 +0000 (13:51 +0000)] 
Bug fix in the randomjson.c extension.

FossilOrigin-Name: 1f3a33df530dbe330ea8b14a69369b807b413b25a167d1a3938f8f0faf97cc91

2 years agoEnhancements to ext/misc/randomjson.c.
drh [Mon, 18 Dec 2023 12:18:47 +0000 (12:18 +0000)] 
Enhancements to ext/misc/randomjson.c.

FossilOrigin-Name: a4e6d1f86f3a502e4170f5a90031e269e48363e95114a66b84d373e3ce0b2704

2 years agoEnhancements to the "randomjson.c" extension. Automatically load that extension
drh [Sun, 17 Dec 2023 20:41:48 +0000 (20:41 +0000)] 
Enhancements to the "randomjson.c" extension.  Automatically load that extension
into fuzzcheck.

FossilOrigin-Name: 70620405ab01d6a5d38bafa9ae175fd6e4eabaf2efb7854734278dafd7b05c99

2 years agoEnable SQLITE_STRICT_SUBTYPE for default builds of the shell, fuzzcheck,
drh [Sat, 16 Dec 2023 15:48:42 +0000 (15:48 +0000)] 
Enable SQLITE_STRICT_SUBTYPE for default builds of the shell, fuzzcheck,
and testfixture.

FossilOrigin-Name: 5a0c517ed7e46c0f8a3db752cf5b9f8010c60f35084606abe9e7c1c4f993b4a7

2 years agoNew test case based on Chromium bug report 1511689.
drh [Sat, 16 Dec 2023 10:50:06 +0000 (10:50 +0000)] 
New test case based on Chromium bug report 1511689.

FossilOrigin-Name: 2c7ef4b4d215f99f8d6787adb64e2037ae96e5dd6cb49c8b81634249f5e1b328

2 years agoIn the count-of-view optimization, deferring freeing obsolete parts of the
drh [Fri, 15 Dec 2023 20:13:09 +0000 (20:13 +0000)] 
In the count-of-view optimization, deferring freeing obsolete parts of the
parse tree, on the off-chance that some other part of the code might be
holding a pointer to those parts.

FossilOrigin-Name: da442578856c87137eb1677d9b13b7c1cf15828cc41d4756572b278060f69bae

2 years agoAvoid expiring prepared statements in the middle of an integrity-check.
dan [Fri, 15 Dec 2023 19:26:16 +0000 (19:26 +0000)] 
Avoid expiring prepared statements in the middle of an integrity-check.

FossilOrigin-Name: 88beb48472da4667c0727c8ebabe046ea526450ff837fe789d041ed3f1ff105e

2 years agoAdd mention of --buildonly and --dryrun to the testrunner.tcl usage screen.
drh [Fri, 15 Dec 2023 16:28:02 +0000 (16:28 +0000)] 
Add mention of --buildonly and --dryrun to the testrunner.tcl usage screen.

FossilOrigin-Name: 23b92d915c12ee768857e2c3c961832f390cad9b53b8bcfc2b97664baab25bb7

2 years agoFix a new JSON test case so that it works even if SQLITE_OMIT_VIRTUALTABLE
drh [Fri, 15 Dec 2023 15:22:03 +0000 (15:22 +0000)] 
Fix a new JSON test case so that it works even if SQLITE_OMIT_VIRTUALTABLE
is defined.

FossilOrigin-Name: b995aae510888a9746b46545d176a0885d4738e1f1bc0b7ad7937ed023efd7d6

2 years agoDo not run test script fts5origintest4.test with either "memsubsys1" or "mmap" permut...
dan [Fri, 15 Dec 2023 15:17:39 +0000 (15:17 +0000)] 
Do not run test script fts5origintest4.test with either "memsubsys1" or "mmap" permutations.

FossilOrigin-Name: 05a63d9603ef42cbee6dadff72d97583a9c78e549f70e9a808534d5c1ae7c28a

2 years agoAvoid running the "no_mutex_try" tests with SQLITE_ENABLE_SETLK_TIMEOUT builds as...
dan [Fri, 15 Dec 2023 14:33:50 +0000 (14:33 +0000)] 
Avoid running the "no_mutex_try" tests with SQLITE_ENABLE_SETLK_TIMEOUT builds as part of the release test.

FossilOrigin-Name: 6b4e1344a28c213cbe8fb97f7f3f6688de93fb73ed96bf460ff74c959da1a712

2 years agoCorrect --enable-sab flag in ext/wasm/GNUmakefile to fix a silent alhttpd args-parsin...
stephan [Fri, 15 Dec 2023 13:38:47 +0000 (13:38 +0000)] 
Correct --enable-sab flag in ext/wasm/GNUmakefile to fix a silent alhttpd args-parsing error.

FossilOrigin-Name: 7b9b757d872a31395b0f6454e2309a6a4664b8bdd8749f6a15371cbe72c05b60

2 years agoUse SQLITE_STRICT_SUBTYPE=1 by default for the JNI and WASM builds unless they're...
stephan [Thu, 14 Dec 2023 22:01:55 +0000 (22:01 +0000)] 
Use SQLITE_STRICT_SUBTYPE=1 by default for the JNI and WASM builds unless they're explicitly built with SQLITE_STRICT_SUBTYPE=0.

FossilOrigin-Name: 990211357badf0ab08bd34cf6d25b58849d0fd8503e289c1839fc837a74e1909

2 years agoAdd assert()s to FTS5 to fix static analyzer warnings.
drh [Thu, 14 Dec 2023 16:34:47 +0000 (16:34 +0000)] 
Add assert()s to FTS5 to fix static analyzer warnings.

FossilOrigin-Name: 27d4a89a5ff96b7b7fc5dc9650e1269f7c7edf91de9b9aafce40be9ecc8b95e9

2 years agoFix harmless compiler warnings in JSON and FTS5.
drh [Thu, 14 Dec 2023 15:38:57 +0000 (15:38 +0000)] 
Fix harmless compiler warnings in JSON and FTS5.

FossilOrigin-Name: 90135efccfeb1046f002bfcbd8dfec9a1a3b40cbe1b5c714ae065b06368e354f

2 years agoImprove the error message returned by an fts5 'rebuild' command on an external conten...
dan [Thu, 14 Dec 2023 15:31:35 +0000 (15:31 +0000)] 
Improve the error message returned by an fts5 'rebuild' command on an external content table if there is a problem with the content table or view.

FossilOrigin-Name: 0fbf4b8a58fde1c187908934da6f59999b146f32e07ac255cc531c5c4d7007fd

2 years agoEnhance aggregate order-by so that it transmits subtype information through the
drh [Thu, 14 Dec 2023 15:11:39 +0000 (15:11 +0000)] 
Enhance aggregate order-by so that it transmits subtype information through the
sorter.  Fix for the deficiency reported by
[forum:/forumpost/87347ad2fb5a8f76|forum post 87347ad2fb5a8f76].

FossilOrigin-Name: d302a389460d0c15775a8b5f5afbac2c1d8a91bc282bc9b04c583ca04a8c09c6

2 years agoPass subtype information through the aggregate ORDER BY sorter for agg-orderby-subtype
drh [Thu, 14 Dec 2023 13:58:50 +0000 (13:58 +0000)] 
Pass subtype information through the aggregate ORDER BY sorter for
aggregate functions that use subtype information.

FossilOrigin-Name: 3536f4030eab6d650b7ed729d2f71eb6cc3b5fbe16b4e96b99008d66522aaccb

2 years agoIn CLI, fix .read inability to open 2GB+ files on WIN32.
larrybr [Wed, 13 Dec 2023 20:37:20 +0000 (20:37 +0000)] 
In CLI, fix .read inability to open 2GB+ files on WIN32.

FossilOrigin-Name: 56c80a62d2e033d64ba5d545ae9cbe3ed7c9d046c0a3fafb6cfa2f0b562d1ef0

2 years agoAvoid invoking sqlite3ExprColUsage() on an unresolve column reference.
drh [Wed, 13 Dec 2023 16:45:18 +0000 (16:45 +0000)] 
Avoid invoking sqlite3ExprColUsage() on an unresolve column reference.
dbsqlfuzz fc34aa62df4de103705d11b807074687ffafbda5.

FossilOrigin-Name: ac9314c0e335694b48c613145f5397247bb88c51806cd0dc3ed4ec306db4bbad

2 years agoBug fix in the JSONB validator.
drh [Wed, 13 Dec 2023 15:27:03 +0000 (15:27 +0000)] 
Bug fix in the JSONB validator.
dbsqlfuzz ac6fa521a08609a642198e7decf64180e750b3c4

FossilOrigin-Name: 3e940a6a08b0a0434650cd3d8dd286e09ad8ab805b0a4d515e57bba5d3608577

2 years agoImprovements to UTF8 handling, and especially the handling of invalid UTF8,
drh [Wed, 13 Dec 2023 14:31:15 +0000 (14:31 +0000)] 
Improvements to UTF8 handling, and especially the handling of invalid UTF8,
in the JSON routines.

FossilOrigin-Name: 1b229c1101d6c384a30f343c5e47b471ab084b2d8e81170eb8f642afc1c67e3b

2 years agoFix the JSON object label comparison object so that it works correctly even
drh [Tue, 12 Dec 2023 18:38:53 +0000 (18:38 +0000)] 
Fix the JSON object label comparison object so that it works correctly even
if the label ends with escaped whitespace.

FossilOrigin-Name: 4d5353cadd7b7c5f105bc197f3ec739e2d041472d6b3e939654c9f9cfc2749ae

2 years agoWorker1 Promiser API: when multiple db connections are active then use the requested...
stephan [Tue, 12 Dec 2023 17:52:27 +0000 (17:52 +0000)] 
Worker1 Promiser API: when multiple db connections are active then use the requested connection instead of always the first-opened connection. Bug reported in [forum:894c330e7f23b177|forum post 894c330e7f23b177].

FossilOrigin-Name: 194276e18e0268829061c09317e7f9f527a703eb45f1755ff1dd30bd99dc1b68

2 years agoThe json_valid(*,8) function does a much better check of the validity of
drh [Tue, 12 Dec 2023 17:31:17 +0000 (17:31 +0000)] 
The json_valid(*,8) function does a much better check of the validity of
the JSONB input.  The json_error_position() function returns an approximate
byte offset to the point of the first detected error in the JSONB.

FossilOrigin-Name: 840efb33a3934a9bdccad65ea15c70d5c335a517502c9844aaad8405d16d1604

2 years agoAdd NEVER to two unreachable branches in JSON. jsonb-valid
drh [Tue, 12 Dec 2023 17:13:10 +0000 (17:13 +0000)] 
Add NEVER to two unreachable branches in JSON.

FossilOrigin-Name: c96ebb086feb89341565cc52b970ae7799ce1327fe1ad4fc790f1b0dcaa6e229

2 years agoImprovements to JSONB validation - catch more cases where the input does
drh [Tue, 12 Dec 2023 14:33:52 +0000 (14:33 +0000)] 
Improvements to JSONB validation - catch more cases where the input does
not conform to spec.

FossilOrigin-Name: be1864eac4eb75cc30bf98f73092c8608467f4bd956240df6a0cbea9f1e09e85

2 years agoValidity checking of text nodes in JSONB.
drh [Tue, 12 Dec 2023 02:31:12 +0000 (02:31 +0000)] 
Validity checking of text nodes in JSONB.

FossilOrigin-Name: fa5160687c2f970d407e8af73c246f7cd806bb4ce35f29a79ac534a8646a6c8e

2 years agoThe json_error_position() function now reports an approximate byte offset
drh [Mon, 11 Dec 2023 21:00:55 +0000 (21:00 +0000)] 
The json_error_position() function now reports an approximate byte offset
to the problem in a JSONB if there is a problem.

FossilOrigin-Name: 80d5d94dff6a2d2557039be3d7d47c1a6003c4b98defe0bd411acfeb963ad5dd

2 years agojson_error_position() now uses jsonValidityCheck() to find the approximate
drh [Mon, 11 Dec 2023 20:44:21 +0000 (20:44 +0000)] 
json_error_position() now uses jsonValidityCheck() to find the approximate
position of an error in a JSONB blob.

FossilOrigin-Name: c3d60cf7028a333b825d5b89516945a73e0c158ac81d8bcc117d21bfd98602c8

2 years agojson_valid(*,8) allows minus-signs on hexadecimal literals.
drh [Mon, 11 Dec 2023 20:19:10 +0000 (20:19 +0000)] 
json_valid(*,8) allows minus-signs on hexadecimal literals.

FossilOrigin-Name: c0d7f4520d839a268b3fd2474d0897a9832aa608bd6238b3e287fabecf07a350

2 years agoActivate JSON_SELFCHECK within fuzzcheck.
drh [Mon, 11 Dec 2023 19:21:06 +0000 (19:21 +0000)] 
Activate JSON_SELFCHECK within fuzzcheck.

FossilOrigin-Name: 4d14e733bb521aed65e98533969d2303738232ae87dab70fdf7962e6513195f5

2 years agoRename the new test-control to SQLITE_TESTCTRL_JSON_SELFCHECK. Make it so
drh [Mon, 11 Dec 2023 19:00:44 +0000 (19:00 +0000)] 
Rename the new test-control to SQLITE_TESTCTRL_JSON_SELFCHECK.  Make it so
that the current value of the setting can be interrogated.

FossilOrigin-Name: 7aff1d9a4cb17ecd5abab21ab032f35a78741dd641ddd8cbcc85fc4a81a0707d

2 years agoAdd SQLITE_TESTCTRL_VALIDATE_JSONB, which if enabled under SQLITE_DEBUG causes
drh [Mon, 11 Dec 2023 17:03:12 +0000 (17:03 +0000)] 
Add SQLITE_TESTCTRL_VALIDATE_JSONB, which if enabled under SQLITE_DEBUG causes
cross-checking of generate JSONB.

FossilOrigin-Name: b410a4db74a650003539ffaaea18519d5159b504daac47db6a4874b730f40ac8

2 years agoWork toward enhanced functionality for json_valid() with deep checking
drh [Mon, 11 Dec 2023 14:01:38 +0000 (14:01 +0000)] 
Work toward enhanced functionality for json_valid() with deep checking
of the JSONB (second argument has bit 0x08).

FossilOrigin-Name: c370d573198b151767f04e91bf8baa4ae0076751ae468c5709742a0b0ed16770

2 years agoFix a potential use of uninitialized value in json_valid() with 2nd
drh [Mon, 11 Dec 2023 02:39:11 +0000 (02:39 +0000)] 
Fix a potential use of uninitialized value in json_valid() with 2nd
argument of 8.

FossilOrigin-Name: fa102036fe46eeb71b7df3e265be1935ae5c78e0b939b08841bcfb8abadbc77a

2 years agoFix a harmless UBSAN warning.
drh [Fri, 8 Dec 2023 16:56:50 +0000 (16:56 +0000)] 
Fix a harmless UBSAN warning.

FossilOrigin-Name: 1503cba6d17e9bade7a5c103ddd23241ff4741f9a2e3032ffe2987af243dae65

2 years agoFix a potential problem RCStr access on a JsonString object that is not
drh [Fri, 8 Dec 2023 14:54:22 +0000 (14:54 +0000)] 
Fix a potential problem RCStr access on a JsonString object that is not
really and RCStr.  Fuzzer/UBSAN find.

FossilOrigin-Name: d2f2174ce2cc89606034e158149a2d05fc3627ec4d5cdb772add7a2250f29d78

2 years agoFix a harmless compiler warning about "confusing indentation".
drh [Fri, 8 Dec 2023 12:58:41 +0000 (12:58 +0000)] 
Fix a harmless compiler warning about "confusing indentation".

FossilOrigin-Name: 34f9e9a8c4bea13f60f43062e25cd7d9422f2e7f5b371ed0ddadc9abeb3ca256

2 years agoAvoid dropping an error code in new fts5 tokendata=1 code.
dan [Fri, 8 Dec 2023 12:04:32 +0000 (12:04 +0000)] 
Avoid dropping an error code in new fts5 tokendata=1 code.

FossilOrigin-Name: a66596e33dc9aa4bab2ec3ff45546e1321d0a11bdc764f8381b315292ca92423

2 years agoEnsure an fts5vocab table never uses a special tokendata=1 merge cursor.
dan [Thu, 7 Dec 2023 21:09:33 +0000 (21:09 +0000)] 
Ensure an fts5vocab table never uses a special tokendata=1 merge cursor.

FossilOrigin-Name: 1e26510e83b40c9bd2e8bfa2a0e81f2cb915e78fed773204ef537683e48b61dc

2 years agoAvoid an assert() failure when querying an fts5vocab table that accesses a tokendata...
dan [Thu, 7 Dec 2023 20:46:40 +0000 (20:46 +0000)] 
Avoid an assert() failure when querying an fts5vocab table that accesses a tokendata=1 fts5 table with corrupt %_data records.

FossilOrigin-Name: 386ba9e20423fb2f623d6adc9d3c310fb1b135f54a1dad15ef3b593d97886926

2 years agoFix a null-pointer dereference in fts5 tokendata=1 code.
dan [Thu, 7 Dec 2023 19:08:25 +0000 (19:08 +0000)] 
Fix a null-pointer dereference in fts5 tokendata=1 code.

FossilOrigin-Name: d69fa8f0504887f968d9a190ecb889ddb40bb1b56d0d4479f9819c106aec719b

2 years agoFix a problem with handling OOM and other errors in fts5 when querying tokendata...
dan [Thu, 7 Dec 2023 18:41:49 +0000 (18:41 +0000)] 
Fix a problem with handling OOM and other errors in fts5 when querying tokendata=1 tables.

FossilOrigin-Name: bc911ab5953532956510c199be72b1d3c556f2d0ddbd7fc0ae6f5f917b337b48

2 years agoDifferent fix for the fts5 COMMIT-following-OOM problem first fixed by [fba3129d...
dan [Thu, 7 Dec 2023 14:41:58 +0000 (14:41 +0000)] 
Different fix for the fts5 COMMIT-following-OOM problem first fixed by [fba3129d]. This one does not cause problems if an fts5 table is renamed and then dropped within the same transaction.

FossilOrigin-Name: d8c6b246944934a7a6e027b3f5b986fd64a19dd5c5c5175f4ea8586da59a6764

2 years agoRework the jsonEachPathLength() routine in json_tree() so that it is
drh [Thu, 7 Dec 2023 14:09:25 +0000 (14:09 +0000)] 
Rework the jsonEachPathLength() routine in json_tree() so that it is
less susceptible to problems due to goofy object labels.

FossilOrigin-Name: 858b76a00e8ff55215f7a2e6a4cd77fc4d4f98dea7224cd90488744f5ce246a4

2 years agoAdd ALWAYS() on branches added in [ec0ae4030968c782] that are always true.
drh [Thu, 7 Dec 2023 13:14:34 +0000 (13:14 +0000)] 
Add ALWAYS() on branches added in [ec0ae4030968c782] that are always true.

FossilOrigin-Name: 451cef8609e96dd9244818adc5c6f240544694bcb4ae620e88f90e403e59d70f

2 years agoImproved detection of corrupt JSONB in the jsonReturnFromBlob() function.
drh [Thu, 7 Dec 2023 12:55:39 +0000 (12:55 +0000)] 
Improved detection of corrupt JSONB in the jsonReturnFromBlob() function.

FossilOrigin-Name: b014736c1f80ccc46fb4b24ac04310a6ce5cb5b6653665efff366cb3bc742257

2 years agoFix compiler warning about shadowed variable in fts5_index.c.
dan [Wed, 6 Dec 2023 18:34:59 +0000 (18:34 +0000)] 
Fix compiler warning about shadowed variable in fts5_index.c.

FossilOrigin-Name: ee70e4c1c9c41617850228e48d8df44f105cf2fbbe789340ceca6f27ad6ce5eb

2 years agoWork around LLVM's newfound hatred of function pointer casts.
drh [Wed, 6 Dec 2023 18:25:41 +0000 (18:25 +0000)] 
Work around LLVM's newfound hatred of function pointer casts.
[forum:/forumpost/1a7d257346636292|Forum post 1a7d257346636292].

FossilOrigin-Name: ec0ae4030968c782af48d1c776351c14b2ada21d40aeb97915f33df30706e18f

2 years agoUpdate documentation comments in fts5.h.
dan [Wed, 6 Dec 2023 18:10:50 +0000 (18:10 +0000)] 
Update documentation comments in fts5.h.

FossilOrigin-Name: 38c50e22c98607e6c1fd78d7615cda534773b6d4fd85c712b54749fcd7af0c83

2 years agoDo correct comparisons between object labels in JSON even when the two labels
drh [Wed, 6 Dec 2023 17:50:16 +0000 (17:50 +0000)] 
Do correct comparisons between object labels in JSON even when the two labels
contain different JSON escapes.

FossilOrigin-Name: bda2e30cc22e180b19a7a05824dd345880eb402ae5450b2d2dd954946c3ae135

2 years agoCorrectly handle 8-byte sizes in the JSONB format.
drh [Wed, 6 Dec 2023 17:39:31 +0000 (17:39 +0000)] 
Correctly handle 8-byte sizes in the JSONB format.
[forum:/forumpost/283daf08e91183fc|Forum post 283daf08e91183fc].

FossilOrigin-Name: 73d390f39c0bbbc017e01544e4d43c76761f2599bd57f900131c706270dfd202

2 years agoFix the routine that determines the json_tree.path value for the first row json-label-compare
drh [Wed, 6 Dec 2023 16:57:18 +0000 (16:57 +0000)] 
Fix the routine that determines the json_tree.path value for the first row
so that it correctly takes into account escape sequences in the path
argument.

FossilOrigin-Name: b9243ee8a37c62eb8848e765bd4af83bc1b3d3eb24fb4268a1357ad1f8b2e1fb

2 years agoIn CLI, move -interactive flag handling back to arg-loop pass 2.
larrybr [Wed, 6 Dec 2023 16:27:29 +0000 (16:27 +0000)] 
In CLI, move -interactive flag handling back to arg-loop pass 2.

FossilOrigin-Name: 63cb05a862532d2d56e9e81fe32ced09bf58f03146587a118f11c2a84e195e69

2 years agoTest cases for object label matching with escape sequences.
drh [Wed, 6 Dec 2023 15:50:13 +0000 (15:50 +0000)] 
Test cases for object label matching with escape sequences.

FossilOrigin-Name: c6f2aa38e95b7888650cfa7bb773b18a28e01d883033ac77be6d504ffe417d18

2 years agoThe rule for the RHS of the ->> and -> operators when the RHS does not begin
drh [Wed, 6 Dec 2023 15:35:38 +0000 (15:35 +0000)] 
The rule for the RHS of the ->> and -> operators when the RHS does not begin
with $ is that it must be (1) all digits, or (2) all alphanumerics, or
(3) contained within [..] or else it will become a quoted label.

FossilOrigin-Name: 0e059a546ec11fa5c6d007bd65c249ee2422f1facbdb2792c53e0bc0ccc97e14

2 years agoIncreased rigor in comparisons between object labels in JSON.
drh [Wed, 6 Dec 2023 14:50:48 +0000 (14:50 +0000)] 
Increased rigor in comparisons between object labels in JSON.

FossilOrigin-Name: 2bc86d145fccc07107b7753cb1a69122676d4096fe59c454497bd81a6142d45e

2 years agoAdd the tokendata=1 option and related APIs to fts5.
dan [Wed, 6 Dec 2023 14:36:34 +0000 (14:36 +0000)] 
Add the tokendata=1 option and related APIs to fts5.

FossilOrigin-Name: a76a636b23c0ebd95d47fdf8358de4729e51a5f68f1a730cd4d89b378e94ac0d

2 years agoMerge trunk changes into this branch. fts5-token-data
dan [Wed, 6 Dec 2023 14:30:34 +0000 (14:30 +0000)] 
Merge trunk changes into this branch.

FossilOrigin-Name: 8f46eace86e7b2e556913575aa3cd6f7987ac0efcc880f0af649d42c253aeb81

2 years agoREADME.md typo fix reported in the forum and update all links from http: to https:.
stephan [Wed, 6 Dec 2023 12:30:28 +0000 (12:30 +0000)] 
README.md typo fix reported in the forum and update all links from http: to https:.

FossilOrigin-Name: 5c48acdbb44185b352b54911a57a6986d6c7e624bdeba2af48b985d29f0292bf

2 years agoRework the JSON functions so that they use the JSONB format internally.
drh [Tue, 5 Dec 2023 19:45:09 +0000 (19:45 +0000)] 
Rework the JSON functions so that they use the JSONB format internally.
The original JsonNode parse tree design is removed.  All JSON functions
that accept text JSON also accept JSONB.  New functions generate JSONB.

FossilOrigin-Name: 7f0c79b94e8f55e5013e52ba64ba8b32dad1dc4e2224d2099733cbc561de1810

2 years agoUse extra assert() statement to silence harmless static analyzer warnings. jsonb
drh [Tue, 5 Dec 2023 19:24:07 +0000 (19:24 +0000)] 
Use extra assert() statement to silence harmless static analyzer warnings.

FossilOrigin-Name: 174c2b2eef5fecd96a5fc89b81032fe81f7801f12097cea10e7e7f0a02114813

2 years agoFurther tests for the new code on this branch.
dan [Tue, 5 Dec 2023 18:36:23 +0000 (18:36 +0000)] 
Further tests for the new code on this branch.

FossilOrigin-Name: 59d008b6c23ab900377bc696ee19381feb7614bac80546eae361e401c3620c4e

2 years agoMiscellaneous comment cleanup and typo fixes.
drh [Tue, 5 Dec 2023 18:28:15 +0000 (18:28 +0000)] 
Miscellaneous comment cleanup and typo fixes.

FossilOrigin-Name: 59446dc0bd0091572122a3c8b4653d7a2dc867d16c4a5919f79b81bc3a673ce3

2 years agoUse strspn() to accelerate whitespace bypass in the JSON parser.
drh [Tue, 5 Dec 2023 12:52:13 +0000 (12:52 +0000)] 
Use strspn() to accelerate whitespace bypass in the JSON parser.

FossilOrigin-Name: 843197df08352bdff4b87be91d160e574572aded0d0c66142fd960000c0b4701

2 years agoSmall performance gain by unwinding the string literal delimiter search
drh [Tue, 5 Dec 2023 12:22:05 +0000 (12:22 +0000)] 
Small performance gain by unwinding the string literal delimiter search
loop in the JSON parser by one more level.

FossilOrigin-Name: 4c587feac153e8ebe526559ec3d254f545f81e8d1ed3126f91a5ff25ec4aa72e

2 years agoClean up the JSONB performance test script.
drh [Tue, 5 Dec 2023 12:20:58 +0000 (12:20 +0000)] 
Clean up the JSONB performance test script.

FossilOrigin-Name: 905301075a7fc1010ee7e754867b1b698c9b8576d50e98125def32a5dfb7ee9d

2 years agoUse an assert() to fix a harmless static analyzer warning.
drh [Tue, 5 Dec 2023 01:44:15 +0000 (01:44 +0000)] 
Use an assert() to fix a harmless static analyzer warning.

FossilOrigin-Name: a249ca657e624028bc6b3d2c2bcedd7162d118addb7d62ce519920cecebf1860

2 years agoFix OOM and corrupt JSONB handling in json_patch().
drh [Tue, 5 Dec 2023 00:17:17 +0000 (00:17 +0000)] 
Fix OOM and corrupt JSONB handling in json_patch().

FossilOrigin-Name: 1910feb0b7d5cc2b810c3322f6cca281d8730182d30d162bd7bb56800979ea91

2 years agoRename the internal routine jsonMergePatchBlob() to just jsonMergePatch().
drh [Mon, 4 Dec 2023 23:12:57 +0000 (23:12 +0000)] 
Rename the internal routine jsonMergePatchBlob() to just jsonMergePatch().

FossilOrigin-Name: ebf667b616235bb64b83832008342ba5e7b10b2c170d7cebc431f040fef7ecfb

2 years agoAdd further tests for xInstToken().
dan [Mon, 4 Dec 2023 19:48:08 +0000 (19:48 +0000)] 
Add further tests for xInstToken().

FossilOrigin-Name: 8582707f16133f003a6687f68cbea03d4eb6c2a0e2e07746b7cace0c44e84fa4

2 years agoFixes to error handling in json_array_length().
drh [Mon, 4 Dec 2023 19:32:17 +0000 (19:32 +0000)] 
Fixes to error handling in json_array_length().

FossilOrigin-Name: aa85df2d26b74c171c55bde19ef17c4f11f40b8af7181bbf7162f87cdea7e88b

2 years agoDo not make the input JSONB editable in json_remove() if there are no PATH
drh [Mon, 4 Dec 2023 19:14:13 +0000 (19:14 +0000)] 
Do not make the input JSONB editable in json_remove() if there are no PATH
argument.

FossilOrigin-Name: 66594544f3ba9977475a3e3f74404eb2b2fb845053b28bd24c2b52c7df94e9d7

2 years agoFix errors in rendering JSON5 escape sequences embedded in JSONB.
drh [Mon, 4 Dec 2023 18:53:10 +0000 (18:53 +0000)] 
Fix errors in rendering JSON5 escape sequences embedded in JSONB.

FossilOrigin-Name: f1a51ae3863557526a51c6e98e71fcdf4f1ed14a36212b3c90f7408f926345e4

2 years agoFixes for xInstToken() with tokendata=0 tables. And with prefix queries.
dan [Mon, 4 Dec 2023 18:45:14 +0000 (18:45 +0000)] 
Fixes for xInstToken() with tokendata=0 tables. And with prefix queries.

FossilOrigin-Name: 78fbb71598b1ca756acc078253880a1d0f7983a5a26b9efc683e6488122505a1

2 years agoFix memory leak in new code on this branch.
dan [Mon, 4 Dec 2023 17:58:56 +0000 (17:58 +0000)] 
Fix memory leak in new code on this branch.

FossilOrigin-Name: ebc160b9a05568df66f86e30804399ee29d34b44a60c57e062f98cb92826353f

2 years agoFix a problem with the xInstCount() API and "ORDER BY rank" queries.
dan [Mon, 4 Dec 2023 17:45:33 +0000 (17:45 +0000)] 
Fix a problem with the xInstCount() API and "ORDER BY rank" queries.

FossilOrigin-Name: 317a50563d9e8586fda136e513727241b414e7267d50a06571c8ebd0eae710bc

2 years agoContinuing simplifications and code cleanup.
drh [Mon, 4 Dec 2023 17:40:28 +0000 (17:40 +0000)] 
Continuing simplifications and code cleanup.

FossilOrigin-Name: ddf92b5059a9106753fd18b82ba8daa269a62af947561c460790107b83416f0b

2 years agoFix bug in xInstToken() causing the wrong token to be returned.
dan [Mon, 4 Dec 2023 17:05:37 +0000 (17:05 +0000)] 
Fix bug in xInstToken() causing the wrong token to be returned.

FossilOrigin-Name: da78d07e77cbc783fbc725758911c230fd6a1c1885d9576125de955dcc2bd37f

2 years agoRemove reachable ALWAYS and NEVER macros.
drh [Mon, 4 Dec 2023 16:01:39 +0000 (16:01 +0000)] 
Remove reachable ALWAYS and NEVER macros.

FossilOrigin-Name: f601de3eeabd85993c1f5ee96b62de6fdabbeae2fe8950e00d08feb48d42c498

2 years agoTwo new NEVER macros.
drh [Mon, 4 Dec 2023 15:22:42 +0000 (15:22 +0000)] 
Two new NEVER macros.

FossilOrigin-Name: 52632c92cb06faf0e804654b3490fd6c199521107bd30c8fcbc3a2a5a488098f