]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
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 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 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 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 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

2 years agoRepair issues and inefficiencies found during testing.
drh [Mon, 4 Dec 2023 13:12:45 +0000 (13:12 +0000)] 
Repair issues and inefficiencies found during testing.

FossilOrigin-Name: ae973cb1515f9d76409c92a2ca2ffd6b71f32b0b490a4886770e7c1b90f12611

2 years agoBetter pre-scan size estimations for objects in the JSON parser resulting
drh [Mon, 4 Dec 2023 01:14:23 +0000 (01:14 +0000)] 
Better pre-scan size estimations for objects in the JSON parser resulting
in fewer reallocations and memmove operations.

FossilOrigin-Name: 526b27f90897f5e35dfff7257daf6c4ce4798d649b09b8aecfb02df0449e3c51

2 years agoBack off on the use of strlen() for situations where sqlite3_value_bytes()
drh [Mon, 4 Dec 2023 00:31:58 +0000 (00:31 +0000)] 
Back off on the use of strlen() for situations where sqlite3_value_bytes()
will work as well, for performance.

FossilOrigin-Name: 79fb54fbb8b9c30f47cdbd437d24a21542716241e822749e5e28c9fbc449bfa8

2 years agoRemove dead code. Improved reporting of errors in JSON inputs.
drh [Sun, 3 Dec 2023 23:38:24 +0000 (23:38 +0000)] 
Remove dead code.  Improved reporting of errors in JSON inputs.

FossilOrigin-Name: 2eaa738e6b5c1b67b3e57c868d9c3a30eea38a0b3b8b02482f06d57a45b10921

2 years agoAvoid problems when the path argument to json_tree() contains embedded U+0000
drh [Sun, 3 Dec 2023 23:30:59 +0000 (23:30 +0000)] 
Avoid problems when the path argument to json_tree() contains embedded U+0000
characters.

FossilOrigin-Name: 9f055091af01a5dddba1a7e9868ad030c8f206237e1569215cb161e53e54aa71

2 years agoEnsure that OOM conditions in the generation of the "bad JSON path" error
drh [Sun, 3 Dec 2023 20:11:35 +0000 (20:11 +0000)] 
Ensure that OOM conditions in the generation of the "bad JSON path" error
message result in an SQLITE_NOMEM error.

FossilOrigin-Name: aa0e02b5c26a2ef3d6216a0ed8bc01382be43173485f898cb63f2a8c559f2e74

2 years agoEnable incorrect JSONB to be rendered into text without hitting an
drh [Sun, 3 Dec 2023 19:59:45 +0000 (19:59 +0000)] 
Enable incorrect JSONB to be rendered into text without hitting an
assertion for a bad whitespace escape in a string.

FossilOrigin-Name: 4d6a9a217df6792b41766b774fb0c0553b45f9104c26a0955bf4a30862d7d7bf

2 years agoDo not let bad hexadecimal digits in malformed JSONB cause an assertion fault.
drh [Sun, 3 Dec 2023 11:54:39 +0000 (11:54 +0000)] 
Do not let bad hexadecimal digits in malformed JSONB cause an assertion fault.

FossilOrigin-Name: 8dec1ba1e5076ff596756e00c1e2ada0245f168a503dd1cadadf848331acfac3

2 years agoMinor code changes for consistency and to simplify testing.
drh [Sun, 3 Dec 2023 00:51:30 +0000 (00:51 +0000)] 
Minor code changes for consistency and to simplify testing.

FossilOrigin-Name: df272bd837910ad9e03e222716a1201a601399664365f1dcf73d5932372518ed

2 years agoImplement strict JSONB checking in the json_valid() function.
drh [Sat, 2 Dec 2023 21:39:34 +0000 (21:39 +0000)] 
Implement strict JSONB checking in the json_valid() function.

FossilOrigin-Name: 0f26d38880fcbc207abcc94dbc170a7428bab1b4f0b7731aaf5bee0224000994

2 years agoFix harmless compiler warnings reported by MSVC.
drh [Sat, 2 Dec 2023 20:37:45 +0000 (20:37 +0000)] 
Fix harmless compiler warnings reported by MSVC.

FossilOrigin-Name: 419652c0c82980bd043584dcd2976f91dfff7b926b216d597698299850b855c0

2 years agoCode and comment cleanup. Everything should work the same.
drh [Sat, 2 Dec 2023 20:25:36 +0000 (20:25 +0000)] 
Code and comment cleanup.  Everything should work the same.

FossilOrigin-Name: c640754df0d3ffdad994745f0d0e10c8f19f424b87f6a6e6e269491a0350b950

2 years agoFix harmless compiler warnings. Refactor some identifier names for
drh [Sat, 2 Dec 2023 18:17:38 +0000 (18:17 +0000)] 
Fix harmless compiler warnings.  Refactor some identifier names for
clearer presentation.

FossilOrigin-Name: 7e3941502789c5afaf19b08112f464abf5e3cba7f92fc9290af2a0f96127ad9a

2 years agoTake extra care to ensure that JSONB values that are in cache are actually
drh [Sat, 2 Dec 2023 18:04:27 +0000 (18:04 +0000)] 
Take extra care to ensure that JSONB values that are in cache are actually
owned by the JSON subsystem, and that ownership of such values is not handed
back to the bytecode engine.

FossilOrigin-Name: 1304534001e9ef66c6b12752b69d790bfa3427cc803f87cc48ca22ae12df0fdf

2 years agoProtect a memcpy() against OOM conditions.
drh [Sat, 2 Dec 2023 16:11:22 +0000 (16:11 +0000)] 
Protect a memcpy() against OOM conditions.

FossilOrigin-Name: 26144d1c25ae0435db568009ba05e485d23d146f2b1f29f3a426c87860316aed

2 years agoDo not allow a JsonParse object to be considered "editable" after an OOM.
drh [Sat, 2 Dec 2023 15:59:48 +0000 (15:59 +0000)] 
Do not allow a JsonParse object to be considered "editable" after an OOM.

FossilOrigin-Name: c6bacf57bd6fe0fee00c9d41163a270b60997c20659949971bbf5c6c62622bfe

2 years agoFix potential unsigned integer underflow in jsonAppendString().
drh [Sat, 2 Dec 2023 15:06:43 +0000 (15:06 +0000)] 
Fix potential unsigned integer underflow in jsonAppendString().

FossilOrigin-Name: d2fba2cbdc3870d34228c1a9446eced884325acc183900d7dd0b96132570fb4a

2 years agoMinor fix to the header comment on jsonXlateTextToBlob().
drh [Sat, 2 Dec 2023 14:55:46 +0000 (14:55 +0000)] 
Minor fix to the header comment on jsonXlateTextToBlob().

FossilOrigin-Name: c3677ba410208c07b711f5f526eb5cf039a8eee49f632c7ae04fa55cdfbb9058

2 years agoPerformance optimization in jsonAppendString().
drh [Sat, 2 Dec 2023 14:16:47 +0000 (14:16 +0000)] 
Performance optimization in jsonAppendString().

FossilOrigin-Name: fdf00e96239c73fb67e2acecc5b95f55a1fc51c3deed4512613c0d6070ce5805

2 years agoSimplification and optimization of the JSON parser.
drh [Sat, 2 Dec 2023 13:36:52 +0000 (13:36 +0000)] 
Simplification and optimization of the JSON parser.

FossilOrigin-Name: f5ec9485119a2a6cb33eb864c7ca9b41d4a2ed08ab6ad9a6b0dd9358ab253576

2 years agoUnroll a loop in the parser for a performance increase.
drh [Sat, 2 Dec 2023 01:38:53 +0000 (01:38 +0000)] 
Unroll a loop in the parser for a performance increase.

FossilOrigin-Name: a6dc29e4d5e13949e0fcd9d5dde575c2670eb10a230ab9df3806fc8c3016c540

2 years agoFix harmless compiler warnings and enhance performance the parser.
drh [Sat, 2 Dec 2023 01:06:33 +0000 (01:06 +0000)] 
Fix harmless compiler warnings and enhance performance the parser.

FossilOrigin-Name: 285633da6d188547e52f07779e209c9e5f3dc33ce0668e14858f3337889ef4b8

2 years agoPerformance optimization in the JSON parser.
drh [Fri, 1 Dec 2023 22:01:26 +0000 (22:01 +0000)] 
Performance optimization in the JSON parser.

FossilOrigin-Name: 68d191f40e708962ec88e0c245b4496bc4a671300484b1cc0f3fc7e6d199a6e6

2 years agoJSON cache is now more effective.
drh [Fri, 1 Dec 2023 18:49:02 +0000 (18:49 +0000)] 
JSON cache is now more effective.

FossilOrigin-Name: 443a3f3a8e64d81cad8300a30e2cc57c4e39f69b5669ac8b550c590ae9f1134a

2 years agoFix up the JSON cache to work better. jsonb-cache
drh [Fri, 1 Dec 2023 18:46:14 +0000 (18:46 +0000)] 
Fix up the JSON cache to work better.

FossilOrigin-Name: 1fdbc39521f63aedc6f08ecaafa54ea467b8c6316a692a18ad01eecbf22a0977

2 years agoCache is working better, but does not preserve the hasJson5 flag.
drh [Fri, 1 Dec 2023 13:28:13 +0000 (13:28 +0000)] 
Cache is working better, but does not preserve the hasJson5 flag.

FossilOrigin-Name: a12add7ab9f5aee5bb2ede0c4d22e599dd28f7a107dce72b2ea48ef92d233e8a

2 years agoFirst attempt to get the JSON text-to-binary cache working. All test cases
drh [Fri, 1 Dec 2023 12:57:12 +0000 (12:57 +0000)] 
First attempt to get the JSON text-to-binary cache working.  All test cases
pass, but the cache seems not to help much.

FossilOrigin-Name: 25ed295f300fea6185104a73721076bccd2b2a6e411c78564266fa6dca4ff70c

2 years agoRemove all trace of JsonNode from the JSON implementation. The JSONB format
drh [Thu, 30 Nov 2023 23:36:14 +0000 (23:36 +0000)] 
Remove all trace of JsonNode from the JSON implementation.  The JSONB format
is used as the internal binary encoding for searching and editing.

FossilOrigin-Name: 11ebb5f712cc7a515e2e0f2be8c1d71de20c97fe5b74c4f4d72c84fd21182d35

2 years agoConvert json_valid() over to using only JSONB as its internal format.
drh [Thu, 30 Nov 2023 20:57:48 +0000 (20:57 +0000)] 
Convert json_valid() over to using only JSONB as its internal format.

FossilOrigin-Name: 7b5756fa6d00b093bf083a8d7a5ef5485f7a09e4eac473785c8380688f861a1b

2 years agoConvert json_type() to use JSONB internally.
drh [Thu, 30 Nov 2023 19:29:56 +0000 (19:29 +0000)] 
Convert json_type() to use JSONB internally.

FossilOrigin-Name: 83074835b900ce85cf67059e674ce959801505c37592671af25ca0af7ed483f1

2 years agoConvert json_insert(), json_replace(), and json_set() over to using only
drh [Thu, 30 Nov 2023 19:11:14 +0000 (19:11 +0000)] 
Convert json_insert(), json_replace(), and json_set() over to using only
JSONB internally.

FossilOrigin-Name: 4e2083e86f19ef7634f0b253fb924e52014b43ed0ce8acc51c36f3c5682180a6

2 years agoEnhance json_set() and json_insert() so that they create missing jsonb-insert
drh [Thu, 30 Nov 2023 19:06:27 +0000 (19:06 +0000)] 
Enhance json_set() and json_insert() so that they create missing
substructure.

FossilOrigin-Name: cc7a641ab5ae739d31c24f0ad0caeb15a481a63fa8f13720718ea922c25862ff

2 years agoSimplification of the new JSON insert/set test cases.
drh [Thu, 30 Nov 2023 16:17:09 +0000 (16:17 +0000)] 
Simplification of the new JSON insert/set test cases.

FossilOrigin-Name: 04c0d5644372446c924a2e31a26edf51ddc563a1990d170b0ed4739e3e8b239b

2 years agoNew test cases for insert/set/replace with paths that indicate substructure
drh [Thu, 30 Nov 2023 12:04:14 +0000 (12:04 +0000)] 
New test cases for insert/set/replace with paths that indicate substructure
that does not yet exist.

FossilOrigin-Name: 146c717c51940b2139befc45ac74e7a1c36ef3c32fd3cfe35b334488eebe6298

2 years agoConvert json_insert(), json_replace(), json_set() to use JSONB internally.
drh [Thu, 30 Nov 2023 00:52:33 +0000 (00:52 +0000)] 
Convert json_insert(), json_replace(), json_set() to use JSONB internally.
Mostly working, but some corner cases are still not quite right.

FossilOrigin-Name: 99c8f6bd5c9a31b6d00f92e383bec8a8235ed553916ad59adbb1b7663f6ebff1

2 years agoConvert the json_error_position() routine to use only JSONB internally.
drh [Wed, 29 Nov 2023 20:06:49 +0000 (20:06 +0000)] 
Convert the json_error_position() routine to use only JSONB internally.

FossilOrigin-Name: e7a8ba35bff6fde55827f978de5b343b6c134c7fa53827f5c63915a9dc2598ad

2 years agoThe json_patch() function now operates exclusively on JSONB. This patch
drh [Wed, 29 Nov 2023 17:36:54 +0000 (17:36 +0000)] 
The json_patch() function now operates exclusively on JSONB.  This patch
also includes improvements to JSONB debug printing routines.

FossilOrigin-Name: fee19d0098242110d2c44ec7b9620c1210ef3f87913305f66ec85d277dd96ab6

2 years agoMerge all the latest trunk enhancements into the jsonb branch.
drh [Wed, 29 Nov 2023 12:18:02 +0000 (12:18 +0000)] 
Merge all the latest trunk enhancements into the jsonb branch.

FossilOrigin-Name: 1a59fcab2179cc3b52ecd3de7d2018db96ac149aaff521959773a517b8d9ac3e

2 years agoThe assertion change at check-in [7946c79567b0ccd3] is insufficient to fix
drh [Wed, 29 Nov 2023 02:45:09 +0000 (02:45 +0000)] 
The assertion change at check-in [7946c79567b0ccd3] is insufficient to fix
the problem of a Table object being deleted out from under the OP_VCheck
opcode.  We need to reference count the Table, which is accomplished here.

FossilOrigin-Name: cad269d5e274443c39203a56603b991accc0399135d436996fc039d1d28ec9db

2 years agoConvert the json_array_length() function to use JSONB instead of JsonNodes.
drh [Wed, 29 Nov 2023 01:38:15 +0000 (01:38 +0000)] 
Convert the json_array_length() function to use JSONB instead of JsonNodes.

FossilOrigin-Name: 5ab790736d943e08f097efcee5cfbf0d83c65b0a53f273060330ba719affa5e5

2 years agoFix all known problems with JSONB json_extract().
drh [Tue, 28 Nov 2023 23:26:55 +0000 (23:26 +0000)] 
Fix all known problems with JSONB json_extract().

FossilOrigin-Name: d5f48c57e975ac468cf29a43a5d0b56ef6d06cf35a8b0bddf87ec1c0fc7ae028

2 years agoDo not set the J subtype when the output is JSONB. jsonb-extract
drh [Tue, 28 Nov 2023 23:18:04 +0000 (23:18 +0000)] 
Do not set the J subtype when the output is JSONB.

FossilOrigin-Name: 4f106b64fe8988435872806bd0a6c223b61f53af0dd1c47c847bb4eec4e03e27

2 years agoPreserve flexibility in the format of the RHS of -> and ->> operators found
drh [Tue, 28 Nov 2023 20:33:20 +0000 (20:33 +0000)] 
Preserve flexibility in the format of the RHS of -> and ->> operators found
in legacy.

FossilOrigin-Name: 6231ec43adb7436195eb1497de39a6c13c6b4f1c5032e6ea52515d214e61fdbc

2 years agoAttempt to get json_extract() working with pure JSONB only, and without
drh [Tue, 28 Nov 2023 20:25:23 +0000 (20:25 +0000)] 
Attempt to get json_extract() working with pure JSONB only, and without
the use of JsonNode.  Mostly working, but there are some differences from
legacy in corner cases.

FossilOrigin-Name: 8c324af1eca27e86adc45622af4f3b06a67a3f968596ac58aa7434b1f6f05f3c

2 years agoThe json_remove() function now uses only JSONB, never JsonNodes, internally.
drh [Tue, 28 Nov 2023 18:16:02 +0000 (18:16 +0000)] 
The json_remove() function now uses only JSONB, never JsonNodes, internally.

FossilOrigin-Name: b69786e746ae2b927b64d9871fd120b7f8f06cc53739fd46a4da51aa16cf8576

2 years agoIn SQLITE_ENABLE_SETLK_TIMEOUT builds, use blocking locks in place of sleep() calls...
dan [Tue, 28 Nov 2023 17:12:42 +0000 (17:12 +0000)] 
In SQLITE_ENABLE_SETLK_TIMEOUT builds, use blocking locks in place of sleep() calls when opening a read-transaction.

FossilOrigin-Name: 4c055b7a6e4533e1e571773456226ca7038ce372df3eedbbbcd9a81e8652a6cf

2 years agoHandle an SQLITE_BUSY_TIMEOUT error if one occurs while attempting a shared lock... blocking-dms-lock
dan [Tue, 28 Nov 2023 15:29:04 +0000 (15:29 +0000)] 
Handle an SQLITE_BUSY_TIMEOUT error if one occurs while attempting a shared lock on a read-lock slot.

FossilOrigin-Name: 5fbf3906d272df3eb981f67455eb35f649ad2774cba9fc3f077b28d9bef3f0cb

2 years agoActivate the ability of json_patch() to work on JSONB.
drh [Tue, 28 Nov 2023 13:38:22 +0000 (13:38 +0000)] 
Activate the ability of json_patch() to work on JSONB.

FossilOrigin-Name: 11aba347ff7c639500eec904e212eabe889b077351b946cfeac2b74b9703672a

2 years agoAll legacy tests are passing. jsonb-patch
drh [Tue, 28 Nov 2023 13:35:53 +0000 (13:35 +0000)] 
All legacy tests are passing.

FossilOrigin-Name: 2c436806b8d5f57de99c00f6154b038454fb9ae427d00d7b4a46ab9c7c69bcb9

2 years agoThe json_patch() code for JSONB compiles and works sometimes, but there are
drh [Tue, 28 Nov 2023 12:28:28 +0000 (12:28 +0000)] 
The json_patch() code for JSONB compiles and works sometimes, but there are
still issues.  Incremental check-in.

FossilOrigin-Name: e0099464a0045a04f4ccf29bc2b8325fc8c7f39ccf4847e74818f928c9153588

2 years agoMore aggressive use of jsonBlobEdit(). Improvements to the MergePatch
drh [Tue, 28 Nov 2023 00:27:58 +0000 (00:27 +0000)] 
More aggressive use of jsonBlobEdit().  Improvements to the MergePatch
implementation sketch.

FossilOrigin-Name: fbca9570fd2e1465739e4d3a8d9bb40fad594fd78ab49b2cb34efa27ebdd8361

2 years agoAdd untested (#ifdefed-out) code for the MergePatch algorithm against JSONB.
drh [Mon, 27 Nov 2023 23:46:12 +0000 (23:46 +0000)] 
Add untested (#ifdefed-out) code for the MergePatch algorithm against JSONB.
Add (and test) the jsonBlobEdit() routine that is needed by the new MergePatch.

FossilOrigin-Name: 4d353387fc10e1038cfdd86e66007bf728c231a928e588897bbee0fbfe76f225

2 years agoHave SQLITE_ENABLE_SETLK_TIMEOUT builds block when locking a read-lock slot.
dan [Mon, 27 Nov 2023 20:37:03 +0000 (20:37 +0000)] 
Have SQLITE_ENABLE_SETLK_TIMEOUT builds block when locking a read-lock slot.

FossilOrigin-Name: f797baf47cf7859cfd8ce248f4f3087af4551a7040af990333426e5a7c269504

2 years agoIn SQLITE_ENABLE_SETLK_TIMEOUT builds, use blocking locks in place of sleep() when...
dan [Mon, 27 Nov 2023 19:22:50 +0000 (19:22 +0000)] 
In SQLITE_ENABLE_SETLK_TIMEOUT builds, use blocking locks in place of sleep() when opening a read-transaction.

FossilOrigin-Name: a51ef39998e25e86bd0600e71d15011b12e05f4319608018293bdaecb09e8c97

2 years agoEnhance the (SQLITE_DEBUG-only) json_parse() routine so that it shows a
drh [Mon, 27 Nov 2023 17:13:18 +0000 (17:13 +0000)] 
Enhance the (SQLITE_DEBUG-only) json_parse() routine so that it shows a
decoding of JSONB when given a BLOB argument.

FossilOrigin-Name: af267868562e0799ad691dccad05f17afbc34d609eede8c55f57d209290246ef

2 years agoGive the json_valid() function an optional second argument that determines
drh [Mon, 27 Nov 2023 15:57:11 +0000 (15:57 +0000)] 
Give the json_valid() function an optional second argument that determines
what is meant by "valid".

FossilOrigin-Name: a4e19ad43dac81e7655ec03ff69bb99d1d02b0c227034c90fb41415fd4793fe3

2 years agoConvert the json_tree() and json_each() virtual tables over to use JSONB has
drh [Mon, 27 Nov 2023 12:36:29 +0000 (12:36 +0000)] 
Convert the json_tree() and json_each() virtual tables over to use JSONB has
their internal representation.

FossilOrigin-Name: ec18caa3f7790b780dde66c1ccbb6eb09d2f1507629cc45955fc1b08380b4017

2 years agoAll tests passing. jsonb-tree
drh [Mon, 27 Nov 2023 12:30:55 +0000 (12:30 +0000)] 
All tests passing.

FossilOrigin-Name: b5a5660ca22437640c9bf32c44d92c76a7293dafcbaf4fa6a4c171128d64871d

2 years agoFix corner-case error conditions.
drh [Sun, 26 Nov 2023 00:56:40 +0000 (00:56 +0000)] 
Fix corner-case error conditions.

FossilOrigin-Name: ec23d34ab75e1d7e9366e59c633e0d30def8759f6d4717583ebeb4c90aeccf0d

2 years agoSame results as the legacy JsonNode implementation on a small set of test cases.
drh [Sun, 26 Nov 2023 00:48:37 +0000 (00:48 +0000)] 
Same results as the legacy JsonNode implementation on a small set of test cases.

FossilOrigin-Name: c3da4b079a1a15a4c0b1a6e71f876648b1d9eb32eddc67b9946c2475c7b6d085

2 years agoRemove unused elements from the json_tree() cursor.
drh [Sat, 25 Nov 2023 23:00:50 +0000 (23:00 +0000)] 
Remove unused elements from the json_tree() cursor.

FossilOrigin-Name: 914a50117d477b2cd30d58388fb8d1b71ff7ff6842ba025f38efc6e9647d06d0

2 years agoRemove the vestigal JsonNode logic from json_tree() and json_each().
drh [Sat, 25 Nov 2023 20:59:03 +0000 (20:59 +0000)] 
Remove the vestigal JsonNode logic from json_tree() and json_each().

FossilOrigin-Name: 66c2ab9ebbf90477742e6be0d30e061d827c409de038f2a5b73479ed9448c4a6

2 years agoAlmost working. Path is still not exactly right when Root is defined on
drh [Sat, 25 Nov 2023 19:28:44 +0000 (19:28 +0000)] 
Almost working.  Path is still not exactly right when Root is defined on
json_tree().

FossilOrigin-Name: 92258246916a9c0d72785964513113848a850dec78bdade8b3f274e410df4e7e

2 years agoGenerate the fullkey and path columns of json_tree().
drh [Sat, 25 Nov 2023 18:11:11 +0000 (18:11 +0000)] 
Generate the fullkey and path columns of json_tree().

FossilOrigin-Name: ffaa468ab8871906121df9ee5ef3dc00129a0086ed9c18831ecda69bf7f71455

2 years agoHandle the path argument to json_tree() and json_each().
drh [Sat, 25 Nov 2023 13:40:19 +0000 (13:40 +0000)] 
Handle the path argument to json_tree() and json_each().

FossilOrigin-Name: fded888469565b2a4687185a926bd23fccfbf167c8bebe6c10696fc7f972f41e

2 years agoContinuing work on json_tree() against a JSONB.
drh [Fri, 24 Nov 2023 21:57:38 +0000 (21:57 +0000)] 
Continuing work on json_tree() against a JSONB.

FossilOrigin-Name: 3df891cb11feee65e239ee2506eda34a9688341f05210d7c2e25a05338cb71ad

2 years agoAdd the --buildonly and --dryrun options to testrunner.tcl.
dan [Fri, 24 Nov 2023 20:14:18 +0000 (20:14 +0000)] 
Add the --buildonly and --dryrun options to testrunner.tcl.

FossilOrigin-Name: a0c87ae9d3db914d18e2c8811db0d0ae3ad7b15c63de84fa975efce28bace27e

2 years agoIncremental progress toward getting json_each() and json_tree() to work
drh [Fri, 24 Nov 2023 18:44:00 +0000 (18:44 +0000)] 
Incremental progress toward getting json_each() and json_tree() to work
directly off of a JSONB blob.

FossilOrigin-Name: f8cab41b3bc65af6ff34b481db693d640ea025d09463d50b8e56d855e2abc913

2 years agoAllow a pattern to filter test scripts to be appended to testrunner.tcl "mdevtest...
dan [Fri, 24 Nov 2023 18:33:40 +0000 (18:33 +0000)] 
Allow a pattern to filter test scripts to be appended to testrunner.tcl "mdevtest", "sdevtest" and "release" commands. e.g. "tclsh test/testrunner.tcl sdevtest fts5%".

FossilOrigin-Name: f8ea0b58b37f4052ded448e595d6d2992988a33b8ecfe58d68f20532f8cb5a37

2 years agoGet all CLI print calls which went to stdout in 3.44.0 to continue going to stdout.
larrybr [Fri, 24 Nov 2023 15:58:14 +0000 (15:58 +0000)] 
Get all CLI print calls which went to stdout in 3.44.0 to continue going to stdout.

FossilOrigin-Name: e9951ede184ce07cf725152723d795f299922460715ab76225cd3071bf0f18ee

2 years agoFix jsonParseReset() to properly clear the JsonParse.aBlob element.
drh [Fri, 24 Nov 2023 14:25:56 +0000 (14:25 +0000)] 
Fix jsonParseReset() to properly clear the JsonParse.aBlob element.

FossilOrigin-Name: ab2644aacf4757a51cf62e05cff6711a0a3605d60502a3dd310887df1b993545

2 years agoOmit precompiled binaries from the source tree.
drh [Fri, 24 Nov 2023 14:03:20 +0000 (14:03 +0000)] 
Omit precompiled binaries from the source tree.

FossilOrigin-Name: 7dbc2f496d7a362460bb4c262ecafe5f30e35a8744861163d12c996365c2142f

2 years agoOmit the precompiled binary from the source tree.
drh [Fri, 24 Nov 2023 14:01:56 +0000 (14:01 +0000)] 
Omit the precompiled binary from the source tree.

FossilOrigin-Name: 4ff103d294b79cf7734e87e94e9d88c0e9f0b087cbb352e6da2f0a3a6b268f46

2 years agoMerge the latest trunk enhancements and fixes into the jsonb branch.
drh [Fri, 24 Nov 2023 13:41:20 +0000 (13:41 +0000)] 
Merge the latest trunk enhancements and fixes into the jsonb branch.

FossilOrigin-Name: a838ebcbbd9f554fd84a1d3176fb572faaef7d0ec0675f1a5bf9430865dafae0

2 years agoCLI .output/.once to not redirect ".timer on" results.
larrybr [Fri, 24 Nov 2023 13:26:42 +0000 (13:26 +0000)] 
CLI .output/.once to not redirect ".timer on" results.

FossilOrigin-Name: ce766ed51f772a960d0b7a52c113b55c7ae90ef35050496d8e2a77547eab1a4d

2 years agoFix an fts5 problem that could occur when mixing regular and secure delete operations...
dan [Thu, 23 Nov 2023 11:18:06 +0000 (11:18 +0000)] 
Fix an fts5 problem that could occur when mixing regular and secure delete operations on a single table.

FossilOrigin-Name: 8eb3f40021994f0d25ef9d246873796c84886e5951bb8ab991e1e2df31998484

2 years agoFix output redirect bug reported in [forum:/forumposts/cbf4933cfeee74bb|the forum].
larrybr [Thu, 23 Nov 2023 07:08:49 +0000 (07:08 +0000)] 
Fix output redirect bug reported in [forum:/forumposts/cbf4933cfeee74bb|the forum].

FossilOrigin-Name: ce542fee6f0150bbd13505dcd26b21a9d1d23eb2dc8e78e63f9da6b4298ec028

2 years agoMinor doc fix in src/betreeInt.h, prompted by an email report. No code changes.
stephan [Wed, 22 Nov 2023 22:59:28 +0000 (22:59 +0000)] 
Minor doc fix in src/betreeInt.h, prompted by an email report. No code changes.

FossilOrigin-Name: 30d49aaed20454fe006e2f89db58f0c0b2433c99b2676a0b9583f56b7adb7fdb

2 years agoFor CLI build with unused function warnings on, #ifdef out a console I/O function...
larrybr [Wed, 22 Nov 2023 21:24:50 +0000 (21:24 +0000)] 
For CLI build with unused function warnings on, #ifdef out a console I/O function, fPutbUtf8().

FossilOrigin-Name: da36f90d94b3b55de71aa7965421ea850ac677e9e63d60744633c4dc59448de4

2 years agoCorrect the URL for loading sqlite3-worker1-bundler-friendly.mjs from sqlite3-worker1...
stephan [Wed, 22 Nov 2023 17:11:39 +0000 (17:11 +0000)] 
Correct the URL for loading sqlite3-worker1-bundler-friendly.mjs from sqlite3-worker1-promiser-bundler-friendly.js, so that the promiser can be used in bundler-using environments. Problem reported via email.

FossilOrigin-Name: 753a75218913c3b9c7ec5438387107369c34d1775d68b04d19ae18197e558605

2 years agoInserts invalid JSONB should return "malformed JSON", not a json path error.
drh [Tue, 21 Nov 2023 22:36:32 +0000 (22:36 +0000)] 
Inserts invalid JSONB should return "malformed JSON", not a json path error.

FossilOrigin-Name: 306ee66fbd0231a9f5b229e5630d5cc66c9cf08b466d2d9204e79e1f44a16374

2 years agoDirect editing of JSONB using json_insert() and json_set().
drh [Tue, 21 Nov 2023 20:13:08 +0000 (20:13 +0000)] 
Direct editing of JSONB using json_insert() and json_set().

FossilOrigin-Name: fffb7a9538838e26991e6f16ea3138346a30c33ea6c3d3834680ee6d1f6eece2

2 years agoCorrect blob-to-text rendering in some corner cases.
drh [Tue, 21 Nov 2023 19:05:22 +0000 (19:05 +0000)] 
Correct blob-to-text rendering in some corner cases.

FossilOrigin-Name: 7822e0e59f9b611fe6289cc762b0aff61f9b87c3a82c60de110f447589a2c125

2 years agoMerge console I/O changes for Windows CLI.
larrybr [Tue, 21 Nov 2023 18:26:06 +0000 (18:26 +0000)] 
Merge console I/O changes for Windows CLI.

FossilOrigin-Name: 935a8a8ee76d0014df42c1480e044fd1c2dfc26e78abb587d99d861d2ae5eb27

2 years agoFix the translation of JSON5 numeric values from BLOB into text.
drh [Tue, 21 Nov 2023 18:23:43 +0000 (18:23 +0000)] 
Fix the translation of JSON5 numeric values from BLOB into text.

FossilOrigin-Name: 40c4fb441f220982e4d61fd42597cf18546791a302fbcc8eec2eed29ee15ef35

2 years agoMerge all recent trunk fixes and enhancements into the jsonb branch.
drh [Tue, 21 Nov 2023 17:54:55 +0000 (17:54 +0000)] 
Merge all recent trunk fixes and enhancements into the jsonb branch.

FossilOrigin-Name: 6d78d50ed2357e6c943c1ef97b1d2ea0902cbadef90c2c35dccdbdc2bdf8702f