]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
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 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 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 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 agoRemove a NEVER that can be true if a virtual table column is declared to have
drh [Sat, 2 Dec 2023 12:23:34 +0000 (12:23 +0000)] 
Remove a NEVER that can be true if a virtual table column is declared to have
a DEFAULT.  See
[forum:/forumpost/3d4de8917627d058|forum post 3d4de8917627d058].

FossilOrigin-Name: 8abc2ccaf8106f20243568cd7fa74174386eb85d7ea381201e97e2fd527033e0

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 agoAdd a basic batch-mode SQL runner for the SAH Pool VFS, for use in comparing it again...
stephan [Thu, 30 Nov 2023 20:34:24 +0000 (20:34 +0000)] 
Add a basic batch-mode SQL runner for the SAH Pool VFS, for use in comparing it against WebSQL. Bring the WebSQL batch runner up to date, noting that it cannot run without addition of an "origin trial" activation key from Google because that's now the only way to enable WebSQL in Chrome (that part is not checked in because that key is private). Minor code-adjacent cleanups.

FossilOrigin-Name: 883990e7938c1f63906300a6113f0fadce143913b7c384e8aeb5f886f0be7c62

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 JSON test cases showing insert or set with missing substructure.
drh [Thu, 30 Nov 2023 16:16:10 +0000 (16:16 +0000)] 
New JSON test cases showing insert or set with missing substructure.

FossilOrigin-Name: 6802b6459d0d16c961ff41d240a6c88287f197d8f609090f79308707490a49c2

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 agoUpdate some OPFS-related help text in WASM tests. Minor cleanups in speedtest1-worker.js.
stephan [Thu, 30 Nov 2023 10:00:25 +0000 (10:00 +0000)] 
Update some OPFS-related help text in WASM tests. Minor cleanups in speedtest1-worker.js.

FossilOrigin-Name: 263f6d3a7784ef7d032dbf7a3265aca8dd70bf50797f28f6b2e8ddb6a301f83a

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 agoIn the recovery extension, if a payload size is unreasonably large, it is
drh [Wed, 29 Nov 2023 13:47:46 +0000 (13:47 +0000)] 
In the recovery extension, if a payload size is unreasonably large, it is
probably corrupt, so truncate it.

FossilOrigin-Name: 988c3179e978a3a6d42541e9c7a2ab98150383671810926503376ed808f150ff

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