]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
23 months agoMore work towards fts5 customzation in JS. wasm-fts5
stephan [Fri, 4 Aug 2023 08:39:21 +0000 (08:39 +0000)] 
More work towards fts5 customzation in JS.

FossilOrigin-Name: ce2a65d80f7793ae8183e311fc7284b37caa78d747436f22496284dfa57e3533

23 months agoMinor internal cleanups in the JS-side fts5 cleanup steps.
stephan [Thu, 3 Aug 2023 22:43:39 +0000 (22:43 +0000)] 
Minor internal cleanups in the JS-side fts5 cleanup steps.

FossilOrigin-Name: 2666f52e88691201a30dc0f27c294c498bba3f16d5d2dddcadcfac115a3cba20

23 months agoRetain all xDestroy method WASM proxies created for fts5_api::xCreateFunction() until...
stephan [Thu, 3 Aug 2023 21:14:58 +0000 (21:14 +0000)] 
Retain all xDestroy method WASM proxies created for fts5_api::xCreateFunction() until the db is closed, then free them all at once.

FossilOrigin-Name: f4b9743abd4fe24f1604cbcc7f9f95cadd1cefdc053eeabb35dc6773c99d1277

23 months agoRework the fts5 db-close cleanup to avoid that fts5 internally calls a just-unbound...
stephan [Thu, 3 Aug 2023 20:45:28 +0000 (20:45 +0000)] 
Rework the fts5 db-close cleanup to avoid that fts5 internally calls a just-unbound-from-wasm xDestroy() method. There is still work to do here to cover the case of fts5 functions being replaced (in which all xDestroy methods have to be retained until the db is closed).

FossilOrigin-Name: 795f22421b96cea27b3883a580d8ce29cc50dfb7d4f852b3d36ede3766c7a24c

23 months agoPart 2 of the fix from [a0f808363318c00fd1db78b].
stephan [Thu, 3 Aug 2023 20:02:49 +0000 (20:02 +0000)] 
Part 2 of the fix from [a0f808363318c00fd1db78b].

FossilOrigin-Name: ce0674b1925138f8f878b11aae0f8420bd968df0959f6dd7e208fb84bcbad07e

23 months agoResolve the timing/ordering issue of a JS-to-WASM-converted xDestroy() function being...
stephan [Thu, 3 Aug 2023 18:46:44 +0000 (18:46 +0000)] 
Resolve the timing/ordering issue of a JS-to-WASM-converted xDestroy() function being uninstalled from WASM right before the underlying native call tries to call it. This has been a long-unnoticed bug which appears only when removing such functions or replacing then.

FossilOrigin-Name: a0f808363318c00fd1db78b4271cef8d05a046a36aab1a383e731e40603c6e2a

23 months agoMore infrastructure towards binding FTS5 customization support to WASM.
stephan [Thu, 3 Aug 2023 16:21:24 +0000 (16:21 +0000)] 
More infrastructure towards binding FTS5 customization support to WASM.

FossilOrigin-Name: 163e3e44b16caa7ceb2805d29a76d8975e66fe429a911995b1c2f8429b080645

23 months agoFix a discrepancy between sqlite3_values_to_js() and its API docs/intended behavior.
stephan [Thu, 3 Aug 2023 16:02:30 +0000 (16:02 +0000)] 
Fix a discrepancy between sqlite3_values_to_js() and its API docs/intended behavior.

FossilOrigin-Name: 16658b3c64d7f9690b097d999a8fbdc49dedf484f72174059718a768f61e875b

23 months agoInitial work on exposing the FTS5 APIs to wasm, per [forum:28402061cb|request in...
stephan [Thu, 3 Aug 2023 07:20:10 +0000 (07:20 +0000)] 
Initial work on exposing the FTS5 APIs to wasm, per [forum:28402061cb|request in the forum]. This builds and loads the structs into JS but is completely untested.

FossilOrigin-Name: 52c8b73ae3095b7e9f4d5440169c818677e484d85195036a0d82db0d04a428e5

23 months agoPerformance optimization for JSON rendering logic.
drh [Wed, 2 Aug 2023 16:06:02 +0000 (16:06 +0000)] 
Performance optimization for JSON rendering logic.

FossilOrigin-Name: ea0b9aecbaca9a8e784fd2bcb50f78cbdcf4c5cfb45a7700bb222e4cc104c644

23 months agoRemove an unreachable branch in the ascii-to-floating-point conversion that
drh [Wed, 2 Aug 2023 13:45:16 +0000 (13:45 +0000)] 
Remove an unreachable branch in the ascii-to-floating-point conversion that
was added by [e989a37ff9d5b52e].

FossilOrigin-Name: c4347e4400e96f932ac12f8f22484a2ebce2a578d1b2181977954c432f117bfd

23 months agoStricter enforcement of the idea that a MATERIALIZED common table expression
drh [Wed, 2 Aug 2023 13:38:02 +0000 (13:38 +0000)] 
Stricter enforcement of the idea that a MATERIALIZED common table expression
is an optimization fence.

FossilOrigin-Name: 354425f8d97437bd156265a6914f98cce91b42abc9e773453ef4d817e308dc9a

23 months agoRemove a condition from query flattening that is now taken care of by materialize-order-by
drh [Wed, 2 Aug 2023 13:29:01 +0000 (13:29 +0000)] 
Remove a condition from query flattening that is now taken care of by
the caller.  Factor out the reverse_unordered_selects processing from the
main loop of sqlite3WhereBegin() for performance.

FossilOrigin-Name: f068f105fb158634321bf6401f0774c81059932d213a18b627ae98bcffc10912

23 months agoSimplify the select.c logic that enforces the optimization fence around
drh [Wed, 2 Aug 2023 12:39:56 +0000 (12:39 +0000)] 
Simplify the select.c logic that enforces the optimization fence around
a MATERIALIZED common table expression.  Do not allow the
reverse_unordered_selects setting to affect a fenced CTE that itself has
an ORDER BY clause.

FossilOrigin-Name: 165b9bda243777ae7fb6f51ee7ad58771c581b82ef9a70268eb9764e9e6eba6f

23 months agoNever flatten a CTE that is labeled MATERIALIZED. This is really something
drh [Wed, 2 Aug 2023 11:06:27 +0000 (11:06 +0000)] 
Never flatten a CTE that is labeled MATERIALIZED.  This is really something
of a bug fix because the documentation says that a MATERIALIZED CTE is an
optimization barrier.

FossilOrigin-Name: b7ef9796f548ce43e06673f86bbec68157aae5e4ee8451e1d87ee5f70af1bb27

23 months agoWhen a query is inside an AS MATERIALIZED CTE, do not attempt the
drh [Wed, 2 Aug 2023 00:09:15 +0000 (00:09 +0000)] 
When a query is inside an AS MATERIALIZED CTE, do not attempt the
omit-ORDER-BY optimization.  If the developer specifies MATERIALIZED,
that means he wants the sort to actually happen.

FossilOrigin-Name: aa769ee7477171f26a091cadff98aa4f48da7752ade20b405a95c4525456f62e

23 months agoAvoid ASAN warnings when converting over-sized long double values into double.
drh [Tue, 1 Aug 2023 19:10:30 +0000 (19:10 +0000)] 
Avoid ASAN warnings when converting over-sized long double values into double.

FossilOrigin-Name: e989a37ff9d5b52e0090d59be077ad2260c8df5d4c2c2d8088b1160de64dffd4

23 months agoFilter the wasmfs-specific JS module result type check out of non-wasmfs builds.
stephan [Tue, 1 Aug 2023 16:41:12 +0000 (16:41 +0000)] 
Filter the wasmfs-specific JS module result type check out of non-wasmfs builds.

FossilOrigin-Name: ef7c121049f77200ecc4da260a90776264af0e84122d0133b4986959aedc653a

23 months agoFix part 2 of 2 for /fiddle: a make deps problem which caused fiddle to load but...
stephan [Tue, 1 Aug 2023 16:38:08 +0000 (16:38 +0000)] 
Fix part 2 of 2 for /fiddle: a make deps problem which caused fiddle to load but fail to run when sqlite3.c was missing.

FossilOrigin-Name: 6011bc26764760af750de68f1553f45382766dd2195633ae267bdb4f9ac75d0f

23 months agoFix part 1 of 2 for /fiddle not running: build flags which were renamed during refact...
stephan [Tue, 1 Aug 2023 16:17:00 +0000 (16:17 +0000)] 
Fix part 1 of 2 for /fiddle not running: build flags which were renamed during refactoring.

FossilOrigin-Name: 214ffeeff77997c3352d30aaa6e51e2dea9706f0d08f73f4eacfad1864817fc6

2 years agoFix an assert() in fts5_index.c that might fail when dealing with corrupt records.
dan [Tue, 1 Aug 2023 11:03:06 +0000 (11:03 +0000)] 
Fix an assert() in fts5_index.c that might fail when dealing with corrupt records.

FossilOrigin-Name: aa55c83f35c2ab134e0842201e46e021079283f9c65595c86664060b3aa8d715

2 years agoRemove redundant comparison operator.
drh [Tue, 1 Aug 2023 01:07:45 +0000 (01:07 +0000)] 
Remove redundant comparison operator.

FossilOrigin-Name: 018984329892c243b21adb10aa8efc7f49313ecf80477e6b61dc6365f62c489d

2 years agoRestore part of the UPDATE one-pass optimization that was removed by
drh [Tue, 1 Aug 2023 00:34:03 +0000 (00:34 +0000)] 
Restore part of the UPDATE one-pass optimization that was removed by
check-in [2c56b984a0bd3be5]: only disable one-pass if the WHERE clause
contains a subquery.  Allow subqueries in the SET expressions.
Fix for performance problem reported by
[forum:/forumpost/8ab195fd44e75ed0|forum  post 8ab195fd44e75ed0].

FossilOrigin-Name: 42916af9fc0f379a608a08db894400bd735a28e26ab1ffd604d1fddfbdb3ec0c

2 years agoRestrict the new column cache to table-btree, which is the common case anyhow.
drh [Mon, 31 Jul 2023 22:03:24 +0000 (22:03 +0000)] 
Restrict the new column cache to table-btree, which is the common case anyhow.
That way, writes to indexes do not need to clear the column cache.

FossilOrigin-Name: 659284ab0e22a4746c1337b3489e7b166d497fb7e5301e24dc115d2b0c4e097d

2 years agoThe original column-cache implementation from check-in [ab1edcc7fedcf279]
drh [Mon, 31 Jul 2023 20:02:11 +0000 (20:02 +0000)] 
The original column-cache implementation from check-in [ab1edcc7fedcf279]
(merged to trunk at [771fe35074b50b8d]) is unsound.  This check-in fixes
the issue.  Had to give back a little performance, the optimization is still
a overall win.

FossilOrigin-Name: ec95e970fb737adf0fab3cb4363040b036949e5eb966fc2d030a20f95e2bde60

2 years agoAdd bit to sqlite3_test_control(SQLITE_TESTCTRL_OPTIMIZATIONS) that will
drh [Mon, 31 Jul 2023 17:39:36 +0000 (17:39 +0000)] 
Add bit to sqlite3_test_control(SQLITE_TESTCTRL_OPTIMIZATIONS) that will
disable the one-pass optimizating in DELETE and UPDATE.

FossilOrigin-Name: 22f6dd5cd32ed9e7b932fdba98aa8652fde999df79f4995d3d8ac1acf430cf53

2 years agoImproved debug tracking of the Parse.nQueryLoop value.
drh [Mon, 31 Jul 2023 17:20:12 +0000 (17:20 +0000)] 
Improved debug tracking of the Parse.nQueryLoop value.

FossilOrigin-Name: 4a8a17498ecaccca5e5aab65d4596cbca9799547f50683237d08c1fa3556f1cf

2 years agoAdd tests for SAHPoolUtil.exportFile() and importDb().
stephan [Sun, 30 Jul 2023 03:54:10 +0000 (03:54 +0000)] 
Add tests for SAHPoolUtil.exportFile() and importDb().

FossilOrigin-Name: 4aa88b8fb1c99137ed7531e5c82a241738a2b0554f7af82c0ed0ce8d16a0879a

2 years agoDo not try to add MEM_Term to an MEM_Static string either.
drh [Sat, 29 Jul 2023 22:58:47 +0000 (22:58 +0000)] 
Do not try to add MEM_Term to an MEM_Static string either.

FossilOrigin-Name: 8920dcef1f75f578e3f274ab2b980a83d6ea6b761d99fc48410b26886170597b

2 years agoDo not try to apply MEM_Term to a MEM_Ephem strings.
drh [Sat, 29 Jul 2023 21:22:26 +0000 (21:22 +0000)] 
Do not try to apply MEM_Term to a MEM_Ephem strings.

FossilOrigin-Name: 2a378a66783ce4d749f7e1e7d08d8404a4aa78d47aeeefd6794b6753188438f6

2 years agoFix a buffer overread in the fts5_structure virtual table (test code).
dan [Sat, 29 Jul 2023 20:13:19 +0000 (20:13 +0000)] 
Fix a buffer overread in the fts5_structure virtual table (test code).

FossilOrigin-Name: b837aff79cd159061b46af59eaf96a1a1920eeece27e9e27931cf3387068d96a

2 years agoSimplification to the sqlite3_stmt_explain() implementation.
drh [Sat, 29 Jul 2023 17:05:35 +0000 (17:05 +0000)] 
Simplification to the sqlite3_stmt_explain() implementation.

FossilOrigin-Name: dd5eb4c7f71c658aff8c2f11ff163c5e79f0ebfd49fd13ca8e28381fe63cc82f

2 years agoSAHPoolUtil.importDb() now accepts either a byte array or ArrayBuffer.
stephan [Sat, 29 Jul 2023 15:53:53 +0000 (15:53 +0000)] 
SAHPoolUtil.importDb() now accepts either a byte array or ArrayBuffer.

FossilOrigin-Name: 3848f04e542e2f0f8975e82632af598aac3b60312bd244b0472f7ddf1dda77df

2 years agoEnhancements to the new sqlite3_stmt_explain() interface implementation and
drh [Sat, 29 Jul 2023 15:31:48 +0000 (15:31 +0000)] 
Enhancements to the new sqlite3_stmt_explain() interface implementation and
documentation.

FossilOrigin-Name: dc98ac6b6de27fc096a715e650067154a545709cf1eecd6c2722ab30a91c2d1d

2 years agoFix doc error noted in [forum:/forumpost/11fc7308d5e607f2|the forum] and a misspelling.
larrybr [Fri, 28 Jul 2023 21:38:50 +0000 (21:38 +0000)] 
Fix doc error noted in [forum:/forumpost/11fc7308d5e607f2|the forum] and a misspelling.

FossilOrigin-Name: 6b79cc7dd07d41da6034386b39c0dff32f80a977db42a9602330ffd15706ab9b

2 years agoDo not allow the same JSON parse to be input to both arguments to the
drh [Fri, 28 Jul 2023 20:59:25 +0000 (20:59 +0000)] 
Do not allow the same JSON parse to be input to both arguments to the
json_patch() routine.

FossilOrigin-Name: 8e781c6742792b3899ca60efc49c7eaee1df9f6b03d27c254b0e148b82946e19

2 years agoAdd the sqlite3_stmt_explain() API.
drh [Fri, 28 Jul 2023 18:37:13 +0000 (18:37 +0000)] 
Add the sqlite3_stmt_explain() API.

FossilOrigin-Name: 0443c0ef85f8f6f3efdee68bf59126c9459f08a58458756f8cbeeaf043d43a86

2 years agoMinor tweaks to the JSON performance measurement documentation.
drh [Fri, 28 Jul 2023 16:12:39 +0000 (16:12 +0000)] 
Minor tweaks to the JSON performance measurement documentation.

FossilOrigin-Name: 0bed957e46aa3bf6a70292ae100de0459486c1469dd03de61207a708cc59a594

2 years agoEnhancements to the JSON performance testing scripts and instructions to
drh [Fri, 28 Jul 2023 14:20:31 +0000 (14:20 +0000)] 
Enhancements to the JSON performance testing scripts and instructions to
cover the recent optimizations involving updates to large JSON strings
that indexed.

FossilOrigin-Name: f9213289d09adfb0461d9644e80c7e889f4bae51563ae2e575a2c95336052bcb

2 years agoJSON performance improvements: (1) Add a cache for large string values
drh [Fri, 28 Jul 2023 13:52:08 +0000 (13:52 +0000)] 
JSON performance improvements:  (1) Add a cache for large string values
on OP_Column to avoid having to extract the string multiple times.
(2) Internal JSON caching improvements.

FossilOrigin-Name: 771fe35074b50b8d4a6583e61c53871b2445f7a58c82f3fc3bf6776e562e63af

2 years agoCorrect a recently-introduced falsehood in ext/wasm/README.md regarding ssh port...
stephan [Fri, 28 Jul 2023 11:52:58 +0000 (11:52 +0000)] 
Correct a recently-introduced falsehood in ext/wasm/README.md regarding ssh port forwarding.

FossilOrigin-Name: 2a3f3a9cf28849c99d83c256f813405a2f47f84532e1192d67bb7aa655dd98a3

2 years agoMark an unreachable branch as ALWAYS().
drh [Fri, 28 Jul 2023 11:30:07 +0000 (11:30 +0000)] 
Mark an unreachable branch as ALWAYS().

FossilOrigin-Name: 8fd06d1151c521515d9f7181575a04e451b522335135a27248052b067d4005ae

2 years agoRemove some unnecessary and incorrect code that was mistakenly added in the
drh [Fri, 28 Jul 2023 00:54:38 +0000 (00:54 +0000)] 
Remove some unnecessary and incorrect code that was mistakenly added in the
previous check-in.

FossilOrigin-Name: d3f458dcc379dd7648262f52579ec55ba931852065ed278367a0629228d0ed45

2 years agoSwitch to using jsonParseCached() for json_patch().
drh [Thu, 27 Jul 2023 23:51:36 +0000 (23:51 +0000)] 
Switch to using jsonParseCached() for json_patch().

FossilOrigin-Name: 2ed9c59e6a51037e63485d0a92dae25443116beddfca1ac73d2f5d5be38d4ad3

2 years agoIf the input JSON to a json function that uses cache comes from an RCStr
drh [Thu, 27 Jul 2023 20:28:29 +0000 (20:28 +0000)] 
If the input JSON to a json function that uses cache comes from an RCStr
value, then use that RCStr value in the parse rather than making a copy.

FossilOrigin-Name: 509ae9c1470dd79d320e84371e1e6662fb85fa0571df5ed8c4d946d10cdfe821

2 years agoFix a couple of compiler warnings in fts5_index.c.
dan [Thu, 27 Jul 2023 20:08:44 +0000 (20:08 +0000)] 
Fix a couple of compiler warnings in fts5_index.c.

FossilOrigin-Name: bf71faa2a1d29ea762c4d2485522d6f4f8a5a7166981a92d3ba9c96ccbbe1213

2 years agoThe OP_Column opcode caches large column values coming from overflow pages.
drh [Thu, 27 Jul 2023 19:39:53 +0000 (19:39 +0000)] 
The OP_Column opcode caches large column values coming from overflow pages.

FossilOrigin-Name: ab1edcc7fedcf27922d5db4bc1bc673b1495ca9c66eb6debdda7b7776c068888

2 years agoAdd the contentless_delete=1 option to fts5. For creating contentless tables that...
dan [Thu, 27 Jul 2023 19:13:35 +0000 (19:13 +0000)] 
Add the contentless_delete=1 option to fts5. For creating contentless tables that support DELETE and REPLACE statements.

FossilOrigin-Name: d66b182d2bc6ce0772e69401b7affe1adbc1b128c4631cb3c17f98dde72af00a

2 years agoMerge trunk enhancements into the json-opt branch.
drh [Thu, 27 Jul 2023 18:19:46 +0000 (18:19 +0000)] 
Merge trunk enhancements into the json-opt branch.

FossilOrigin-Name: 5739a16ad270a5aadcbb46b28c34fa6ba975422788dcbccb1a8e0d1e6ed75144

2 years agoDynamically determine whether the wasm.xWrap() argc check can be applied, depending...
stephan [Thu, 27 Jul 2023 17:50:10 +0000 (17:50 +0000)] 
Dynamically determine whether the wasm.xWrap() argc check can be applied, depending on how the wasm environment exposes its exports.

FossilOrigin-Name: fd59226b34fffb1479fb2d7bd7c0aff982aa4a1a73e6c0d81de6eaf9c075998c

2 years agoAccommodate a breaking change in emcc 3.1.44.
stephan [Thu, 27 Jul 2023 01:38:19 +0000 (01:38 +0000)] 
Accommodate a breaking change in emcc 3.1.44.

FossilOrigin-Name: 2c5dd34199f5bcf729be814b8b46d9997821fe3a39ab12779c93df1bb2fd108d

2 years agoFix a performance regression in JSON associated with generating small
drh [Thu, 27 Jul 2023 00:21:59 +0000 (00:21 +0000)] 
Fix a performance regression in JSON associated with generating small
snippets of JSON from a larger JSON string.

FossilOrigin-Name: 837f2907e10b026f6db1ca2d44b4bf60a6f069bf534bf369ad9b5c513cb0c6e4

2 years agoReduce the number of memory allocations when parsing JSON.
drh [Wed, 26 Jul 2023 23:22:32 +0000 (23:22 +0000)] 
Reduce the number of memory allocations when parsing JSON.

FossilOrigin-Name: 9edd67162113df57dae21d4683f9495611e2cf4717c6d12f5b7b8e44156d5fe3

2 years agoMinor changes to make coverage testing easier.
drh [Wed, 26 Jul 2023 21:53:09 +0000 (21:53 +0000)] 
Minor changes to make coverage testing easier.

FossilOrigin-Name: ec8b43382e5402e15d9f2dda3cf21ac8be8c1589ddbe6c9433c33eef0036f764

2 years agoChange a switch() case to default for coverage.
drh [Wed, 26 Jul 2023 19:22:43 +0000 (19:22 +0000)] 
Change a switch() case to default for coverage.

FossilOrigin-Name: 04f497074b9210326030f36107a43d6490a2a59c8a574e2c5429cd9bde681bf7

2 years agoMake sure jsonReplaceNode() always leaves the JsonParse in a consistent state even...
drh [Wed, 26 Jul 2023 19:11:47 +0000 (19:11 +0000)] 
Make sure jsonReplaceNode() always leaves the JsonParse in a consistent state even if an error is encountered.

FossilOrigin-Name: 01d52232dd6fbd253e77419a17df3df83d49434792d288ef96e14739a89cef3b

2 years agoAdd the ".scanstats vm" command to the shell tool. For profiling VM code in SQLITE_EN...
dan [Wed, 26 Jul 2023 17:51:05 +0000 (17:51 +0000)] 
Add the ".scanstats vm" command to the shell tool. For profiling VM code in SQLITE_ENABLE_STMT_SCANSTATUS builds.

FossilOrigin-Name: 0cbec3990d4101142bfb831f8e6527b73baabebbd30fa7f59275b217dbce6a8d

2 years agoImprove the output when ".scanstats vm" is enabled. scanstatus-exp
dan [Wed, 26 Jul 2023 16:41:23 +0000 (16:41 +0000)] 
Improve the output when ".scanstats vm" is enabled.

FossilOrigin-Name: 7df08fd35e9d4bc471aa9fbc4c81d2ebcfd2be6c4c38143342b3d9d727c9df22

2 years agoImproved caching and reuse of JSON parses.
drh [Wed, 26 Jul 2023 14:18:06 +0000 (14:18 +0000)] 
Improved caching and reuse of JSON parses.

FossilOrigin-Name: df099ad713011b67b09cb1e5f0fa2e6b45f9cee0ce9d3c118c5dbca3563d20a5

2 years agoChange the debugging "json_parse(X)" function so that it shows a more
drh [Wed, 26 Jul 2023 13:17:43 +0000 (13:17 +0000)] 
Change the debugging "json_parse(X)" function so that it shows a more
complete description of the JsonParse object on standard output and returns
the mimified JSON.  Former behavior was to return the text of a decode
of the aNode array.

FossilOrigin-Name: 1bf85d4e388714a88f8940dcdec353c3e0267456697eff6963d34637912aecc9

2 years agoMore comment improvements in json.c. Do not run jsonLookup() following
drh [Wed, 26 Jul 2023 11:53:14 +0000 (11:53 +0000)] 
More comment improvements in json.c.  Do not run jsonLookup() following
an OOM error.

FossilOrigin-Name: cd5fda8c2e354da7458b7c1a82ff18c5946f8dab16095bb0293bec57f6804f17

2 years agoImproved comments and other cleanup for the changes on this branch.
drh [Wed, 26 Jul 2023 11:43:39 +0000 (11:43 +0000)] 
Improved comments and other cleanup for the changes on this branch.

FossilOrigin-Name: bac953a80d1a541e7a12aef00c86c002133859237143ad670b39ea19799a8900

2 years agoRemove the batch SQL runner from the JS build's 'all' target, as it's long-since...
stephan [Wed, 26 Jul 2023 11:41:41 +0000 (11:41 +0000)] 
Remove the batch SQL runner from the JS build's 'all' target, as it's long-since unused and adds noticable build time. Add makefile comments about JSPI.

FossilOrigin-Name: b8f708e35d4fa027d12089ac7c5589c36da5f68b98cf9792bb11276bf233a860

2 years agoAdd SAHPoolUtil.getFileNames() method, and tests for it, per [forum:a3da1e34d8|forum...
stephan [Wed, 26 Jul 2023 11:11:39 +0000 (11:11 +0000)] 
Add SAHPoolUtil.getFileNames() method, and tests for it, per [forum:a3da1e34d8|forum feedback]. Add a test to demonstrate that two SAH pools can coexist so long as they have different names.

FossilOrigin-Name: 72dc3f8c3255186ec412412b685b0b51ddcd08240f2353ac742fc7da8c23568e

2 years agoFix jsonForceRCStr() to also add the NULL terminator.
drh [Wed, 26 Jul 2023 11:00:47 +0000 (11:00 +0000)] 
Fix jsonForceRCStr() to also add the NULL terminator.

FossilOrigin-Name: 134b01f37f8f741d7f7b7eda81384695d1cbe4c39751d87f08832d5c9afdcef2

2 years agoReformulate [907dfc4a7aa1] using awk instead of sed for better cross-platform portabi...
stephan [Wed, 26 Jul 2023 07:57:55 +0000 (07:57 +0000)] 
Reformulate [907dfc4a7aa1] using awk instead of sed for better cross-platform portability.

FossilOrigin-Name: 82ff7cc6a4b0331677be87bc069da414a56fd531bae402d0f0808b5d2b0d45da

2 years agoMerge the latest trunk fixes into the json-opt branch.
drh [Wed, 26 Jul 2023 01:15:34 +0000 (01:15 +0000)] 
Merge the latest trunk fixes into the json-opt branch.

FossilOrigin-Name: ef4e1664d159b98854d9aa580b0bb942f1726f32a190e2ea659c171131ddce9a

2 years agoAdd the concept of an RCStr string - a "Reference Counted String". Use
drh [Wed, 26 Jul 2023 01:12:08 +0000 (01:12 +0000)] 
Add the concept of an RCStr string - a "Reference Counted String".  Use
these to keep track of big JSON strings that might need to be used in
multiple places at the same time with different lifetimes.  Add two
different JSON string values to each parse - one with and one without
changes.  The net result is a large reduction in the number of parses
that occur when doing an UPDATE of a indexed JSON field using
json_replace() or similar.

FossilOrigin-Name: a4c1af616e672a0d4d04f2652e645617758231598fb7161b956883512303ae87

2 years agoExtend the enhancement to json_set() and json_replace(). Clean up cruft. json-opt-rcstr
drh [Wed, 26 Jul 2023 01:05:08 +0000 (01:05 +0000)] 
Extend the enhancement to json_set() and json_replace().  Clean up cruft.

FossilOrigin-Name: 2dbb22c75e86f2e3ced38ac14b4943570d5c2f86cd5e37e875bf0c863be28836

2 years agoAdd the JsonParse.zAlt field to old revised JSON text after a change.
drh [Wed, 26 Jul 2023 00:48:45 +0000 (00:48 +0000)] 
Add the JsonParse.zAlt field to old revised JSON text after a change.
Demonstrate that this elminates the need for reparsing after a change
by using it in the json_remove() function.  This is an incremental check-in
containing lots of cruft.

FossilOrigin-Name: f930b139d6db0ee799bc90397b225175103c4bf22923d1c9cbcd32509adc1738

2 years agoClarify ownership of the various objects involved in parsing JSON.
drh [Tue, 25 Jul 2023 20:26:47 +0000 (20:26 +0000)] 
Clarify ownership of the various objects involved in parsing JSON.

FossilOrigin-Name: afe02a398a16d51bd7482b6fbe2fbd15d9ac4fd9cdbc9d2bf81f38b3391fc567

2 years agoIncremental improvements to JSON parsing - trying to fold in the RCStr object.
drh [Tue, 25 Jul 2023 18:28:03 +0000 (18:28 +0000)] 
Incremental improvements to JSON parsing - trying to fold in the RCStr object.

FossilOrigin-Name: 4cb15d934a85ebc290fe6dd8cd3bd47b159561ca75d72bbffef30b9ea4623b09

2 years agoFix a harmless "set-but-not-used" compiler warning in sqlite3session.c.
dan [Tue, 25 Jul 2023 17:54:25 +0000 (17:54 +0000)] 
Fix a harmless "set-but-not-used" compiler warning in sqlite3session.c.

FossilOrigin-Name: 54b3c43fdfdaca6b129a5f0ee93c34eb001663775d33c087066650f5e164d1c1

2 years agoMerge trunk changes into this branch.
dan [Tue, 25 Jul 2023 17:11:29 +0000 (17:11 +0000)] 
Merge trunk changes into this branch.

FossilOrigin-Name: 719973d7f5a47b110e9919fcb96d21feab1e41356dbb3ec674c1116c17bbb778

2 years agoAdd extra test for 'deletemerge'.
dan [Tue, 25 Jul 2023 16:48:54 +0000 (16:48 +0000)] 
Add extra test for 'deletemerge'.

FossilOrigin-Name: bc33cff4203cef12518e0f43d380a06d53d67c725fb96cfe6e934b7dc97a7efd

2 years agoChange the name of the fts5 'delete-automerge' option to 'deletemerge'. And add tests...
dan [Tue, 25 Jul 2023 15:48:58 +0000 (15:48 +0000)] 
Change the name of the fts5 'delete-automerge' option to 'deletemerge'. And add tests for it.

FossilOrigin-Name: 1079300db2a7d1fbc86a01c215c234a3af64889c5396e6da63ff4f3c7efae4c5

2 years agoFix a minor problem with error reporting in JSON.
drh [Tue, 25 Jul 2023 15:43:01 +0000 (15:43 +0000)] 
Fix a minor problem with error reporting in JSON.

FossilOrigin-Name: c456e4a8999066cd96246327101b3cca78294511a71a2ac07939bb702bfcb5f4

2 years agoCreate the new RCStr class of strings and try to use them for JSON storage.
drh [Tue, 25 Jul 2023 15:08:18 +0000 (15:08 +0000)] 
Create the new RCStr class of strings and try to use them for JSON storage.

FossilOrigin-Name: c1b8725089bb3d006ec69add28f4fcb3f4e79412c7f438b5b1067c2227e77b9c

2 years agoFurther tests for 'delete-automerge'.
dan [Tue, 25 Jul 2023 13:53:42 +0000 (13:53 +0000)] 
Further tests for 'delete-automerge'.

FossilOrigin-Name: ca26c7a37a7e680be633f43be28f8877bdf9917448ea51c3bedc9b2352a00601

2 years agoReformulate a (sed -i) construct in ext/wasm/GNUmakefile to account for Mac's sed...
stephan [Tue, 25 Jul 2023 12:26:05 +0000 (12:26 +0000)] 
Reformulate a (sed -i) construct in ext/wasm/GNUmakefile to account for Mac's sed -i being different than GNU's.

FossilOrigin-Name: 907dfc4a7aa129cdcedeb3ba2d75e1b68a8f22c2545ee1c8cf7d705041644e5c

2 years agoIt is an error to try to insert a BLOB value into JSON.
drh [Mon, 24 Jul 2023 23:27:05 +0000 (23:27 +0000)] 
It is an error to try to insert a BLOB value into JSON.

FossilOrigin-Name: 28c6e964b1e2257527df02b352f02e135f7c4b764b8b41eda6461f9538f5d042

2 years agoClean up some #defines in json.
drh [Mon, 24 Jul 2023 22:45:59 +0000 (22:45 +0000)] 
Clean up some #defines in json.

FossilOrigin-Name: 327fff501e36f75d4901c520123c5ca45e0e0da1d9cc8fa8fa877ceb68c686d2

2 years agoRework the JSON parse structure to facilitate better caching. Passes all
drh [Mon, 24 Jul 2023 22:34:26 +0000 (22:34 +0000)] 
Rework the JSON parse structure to facilitate better caching.  Passes all
tests.

FossilOrigin-Name: ecdcb1ded76e9a0591bf7a2009679f49fc3aa639d3cc12406c6d29243ed8e1c5

2 years agoAdd the fts5 'delete-automerge' integer option. A level is eligible for auto-merging...
dan [Mon, 24 Jul 2023 19:13:06 +0000 (19:13 +0000)] 
Add the fts5 'delete-automerge' integer option. A level is eligible for auto-merging if it has a greater than or equal percentage of its entries deleted by tombstones than the 'delete-automerge' option. Default value is 10.

FossilOrigin-Name: b314be66b9ac0190b5373b3b6baec012382bc588c2d86c2edab796669a4303c3

2 years agoIncremental progress toward improved caching of parsed JSON.
drh [Mon, 24 Jul 2023 17:59:25 +0000 (17:59 +0000)] 
Incremental progress toward improved caching of parsed JSON.

FossilOrigin-Name: f2c063884685a79d5a787590447c292f51e898a98c9508159c788f505227ba85

2 years agoResolve an ES6 module export construct which is incompatible with node.js, as reporte...
stephan [Mon, 24 Jul 2023 15:41:58 +0000 (15:41 +0000)] 
Resolve an ES6 module export construct which is incompatible with node.js, as reported in [forum:b9680fa9ad|forum post b9680fa9ad].

FossilOrigin-Name: 80927c3913561dddf75cf73be871d93ae06b16f83e8cc36fc360765014209615

2 years agoMerge the latest trunk enhancements into the json-opt branch.
drh [Mon, 24 Jul 2023 12:37:23 +0000 (12:37 +0000)] 
Merge the latest trunk enhancements into the json-opt branch.

FossilOrigin-Name: 00bfc4918be49ac74a3e7851c88ab7ec226e6a37853f8ad4c77f758751960456

2 years agoWhen writing the filename header in a opfs-sahpool file, ensure that all remaining...
stephan [Sun, 23 Jul 2023 22:14:41 +0000 (22:14 +0000)] 
When writing the filename header in a opfs-sahpool file, ensure that all remaining bytes in that part of the header are zeroed out to avoid the downstream problems reported in [forum:d50ec48a293988a5|forum post d50ec48a293988a5].

FossilOrigin-Name: c1b080e39397c983c13a5e79303223827de7b4946c18a79396851ec1814782f3

2 years agoAdd the opfs-sahpool sqlite3_vfs implementation to JS, offering an alternative to...
stephan [Sat, 22 Jul 2023 19:57:42 +0000 (19:57 +0000)] 
Add the opfs-sahpool sqlite3_vfs implementation to JS, offering an alternative to the other OPFS VFS (with tradeoffs).

FossilOrigin-Name: d2e602cda44bf35e76167143262b4f91826d25780d0e095e680a31d5dedb2018

2 years agoIntegrate contentless delete with auto-merge.
dan [Sat, 22 Jul 2023 19:47:46 +0000 (19:47 +0000)] 
Integrate contentless delete with auto-merge.

FossilOrigin-Name: 85c1589ab1fc69d1eef4bbc1bdefa2b10af5f6b9c08e813130b93829b592f416

2 years agoDo not read past the end of a text buffer looking for a zero terminator, as
drh [Sat, 22 Jul 2023 16:37:28 +0000 (16:37 +0000)] 
Do not read past the end of a text buffer looking for a zero terminator, as
that space might not be initialized.  If the buffer is owned, just set the
null terminator.  This is a better fix for the OSSFuzz-detected
use-of-initialized-value problem.

FossilOrigin-Name: 931bccb0cc290b8bf3027641e7a7fac30e3244d7dc84aa9e38b24b7e9544ca06

2 years agoFix a harmless use-of-initialized-value warning from OSSFuzz that results
drh [Sat, 22 Jul 2023 15:21:41 +0000 (15:21 +0000)] 
Fix a harmless use-of-initialized-value warning from OSSFuzz that results
from recent large string optmizations.

FossilOrigin-Name: 1a6b3dd1c40277a0d0f0bb562ddc4868aadd632fc2d29be1b17bb33fc22c46c8

2 years agoPerformance enhancements for queries using very large string values.
drh [Fri, 21 Jul 2023 22:28:34 +0000 (22:28 +0000)] 
Performance enhancements for queries using very large string values.

FossilOrigin-Name: 3661b9cd98565ea23b0cafd030668f09885dcbd54eb12b7b3cd85c289aef4c3c

2 years agoMark an unreachable branch as NEVER(). big-function-text
drh [Fri, 21 Jul 2023 22:22:13 +0000 (22:22 +0000)] 
Mark an unreachable branch as NEVER().

FossilOrigin-Name: 414a4d660c3b505640227066b468db1268fcb1bd3fad931644a769617c6c00cd

2 years agoFix fts5 incremental optimization so that it too can handle an index that consists...
dan [Fri, 21 Jul 2023 21:10:33 +0000 (21:10 +0000)] 
Fix fts5 incremental optimization so that it too can handle an index that consists of a single segment with one or more tombstone hash pages.

FossilOrigin-Name: e61c9b083f5e0b6b6ee18f9394581ad816f445dbfb72ed1fe954f4182755a576

2 years agoEnsure the fts5 'optimize' command correctly rewrites any index that consists of...
dan [Fri, 21 Jul 2023 19:33:35 +0000 (19:33 +0000)] 
Ensure the fts5 'optimize' command correctly rewrites any index that consists of a single segment and one or more tombstone hash pages.

FossilOrigin-Name: f4926006b371d9a1439a25384bd50a50c2f1c03f75a7c2c3134ae72abb971c91

2 years agoFix harmless compiler warning introduced by the previous check-in.
drh [Fri, 21 Jul 2023 19:17:26 +0000 (19:17 +0000)] 
Fix harmless compiler warning introduced by the previous check-in.

FossilOrigin-Name: 06f829e9e57c5aa495f519ad7bb379be611e8e21ef60d36e63d055e45f7a6117

2 years agoAvoid a potentially large strlen() in sqlite3DecOrHexToI64().
drh [Fri, 21 Jul 2023 18:38:59 +0000 (18:38 +0000)] 
Avoid a potentially large strlen() in sqlite3DecOrHexToI64().

FossilOrigin-Name: 5413b02bb629b9cbb76f7e688e94ebcf24276c01436d3feb73ff57c036e1d2aa

2 years agoFurther improvements to large string handling in relation to JSON.
drh [Fri, 21 Jul 2023 18:09:07 +0000 (18:09 +0000)] 
Further improvements to large string handling in relation to JSON.

FossilOrigin-Name: 1e5df0aa3dae5cadbf1d07c718ae2a5212543300b68e49d35e8c96855a7f619c

2 years agoFix harmless compiler warning about signed/unsigned comparison.
drh [Fri, 21 Jul 2023 15:07:56 +0000 (15:07 +0000)] 
Fix harmless compiler warning about signed/unsigned comparison.

FossilOrigin-Name: 75cc3c89ee2dcfefa9421ce60bee77e85d2895918e8c5cfd05c434f8932a99b5