]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
22 months agoAdd tests for structured-exception-handling and wal2. Fix a problem with the same. wal2-shm-exceptions
dan [Thu, 10 Aug 2023 21:20:34 +0000 (21:20 +0000)] 
Add tests for structured-exception-handling and wal2. Fix a problem with the same.

FossilOrigin-Name: 87242777ec869d698c5c78283b98677105e8b5a8b0d8b71a696b8460d4303783

22 months agoExperimental merge of the wal-shm-exceptions and wal2 branches.
dan [Thu, 10 Aug 2023 18:58:07 +0000 (18:58 +0000)] 
Experimental merge of the wal-shm-exceptions and wal2 branches.

FossilOrigin-Name: fd58c616244dc70a2d6c17b62830398cea8177366828260882df5ab1f361a347

22 months agoMerge latest trunk changes into this branch. wal-shm-exceptions
dan [Thu, 10 Aug 2023 17:07:34 +0000 (17:07 +0000)] 
Merge latest trunk changes into this branch.

FossilOrigin-Name: 3ed89c344fcb3b7ee8b764d95144643e42e053e1116150d6eda8355fbd6669df

22 months agoMark test script wal2big.test as "TESTRUNNER: slow".
dan [Thu, 10 Aug 2023 17:04:29 +0000 (17:04 +0000)] 
Mark test script wal2big.test as "TESTRUNNER: slow".

FossilOrigin-Name: ae7f3bcb5babfa50084f5b4d3c5663489dbf306440706152642b7f0fb47fa1f5

22 months agoMerge latest trunk changes into this branch.
dan [Thu, 10 Aug 2023 17:03:33 +0000 (17:03 +0000)] 
Merge latest trunk changes into this branch.

FossilOrigin-Name: 72f7807b34eee1fcfd94f72d27535e5273ed1f7ff3d464179a774b7c7241f5f5

22 months agoMinor cleanups in sqlite3Int.h. By reordering some fields in the Parse
drh [Tue, 8 Aug 2023 17:36:03 +0000 (17:36 +0000)] 
Minor cleanups in sqlite3Int.h.  By reordering some fields in the Parse
object, it packs more tightly and uses less memory and less CPU to
initialize.

FossilOrigin-Name: aa6de539c09faa320b68c63659e602107145c4263fa680d5b40fe4d7d7ac4534

22 months agoFix an issue in the amalgamation generator in which it was not correctly
drh [Tue, 8 Aug 2023 16:53:12 +0000 (16:53 +0000)] 
Fix an issue in the amalgamation generator in which it was not correctly
expanding the SQLite version in the header comment.

FossilOrigin-Name: 293f6191e9b328cb8a8d3fff0f7bd5a6f5390b5ff090497a170c791b6ea22917

22 months agoEnhance sqlite3_vtab_nochange() so that it works with "UPDATE ... FROM ..." statement...
dan [Mon, 7 Aug 2023 17:09:25 +0000 (17:09 +0000)] 
Enhance sqlite3_vtab_nochange() so that it works with "UPDATE ... FROM ..." statements. Use this to allow some updates on fts5 contentless-delete tables.

FossilOrigin-Name: 27ff86e4d8d251dbbcc9f0682d3d7b040518cbeee891cfe253661d1fdbec4e4f

22 months agoChanges so that sqlite3_vtab_nochange() works with "UPDATE ... FROM...". Use this... fts5-contentless-delete
dan [Mon, 7 Aug 2023 16:15:56 +0000 (16:15 +0000)] 
Changes so that sqlite3_vtab_nochange() works with "UPDATE ... FROM...". Use this to allow UPDATE on a contentless fts5 table if new values are supplied for all indexed columns.

FossilOrigin-Name: 16cd2161e312cf97129011fc829079db8f762b822b2f4fabf7ff6742c071302f

22 months agoRename fts5_api pContext parameters to pUserData, per /chat discussion. This is a...
stephan [Mon, 7 Aug 2023 09:44:00 +0000 (09:44 +0000)] 
Rename fts5_api pContext parameters to pUserData, per /chat discussion. This is a cosmetic change made to reduce confusion between those parameters and the two other context-type parameters in that API.

FossilOrigin-Name: 2ca064d8eb37252e16b0fec9924e9ba9289d96a737346431c6ba9cb1c161e5de

23 months agoTiny doc typo fixes from [forum:31eb707250|forum post 31eb707250]. No code changes.
stephan [Sat, 5 Aug 2023 19:15:19 +0000 (19:15 +0000)] 
Tiny doc typo fixes from [forum:31eb707250|forum post 31eb707250]. No code changes.

FossilOrigin-Name: 8ede50082e7bcf0226a3b42a590f188b5a139bbf081c9eed7ff8f6f2a6a274a0

23 months agoIn the opfs-sahpool VFS's importDb() and exportFile() methods, throw if the actually...
stephan [Fri, 4 Aug 2023 16:01:55 +0000 (16:01 +0000)] 
In the opfs-sahpool VFS's importDb() and exportFile() methods, throw if the actually-wrote/read amounts differ from the expected-to-write/read amounts, per feedback in [forum:a4122e986f|forum post a4122e986f].

FossilOrigin-Name: a617ebf4e5d1af1b5b15e9782ad111399caaa3ea7b99bb0c8691c8b4283b6d6e

23 months agoMerge the json_remove() bug fix from trunk into the wal2 branch.
drh [Fri, 4 Aug 2023 13:24:40 +0000 (13:24 +0000)] 
Merge the json_remove() bug fix from trunk into the wal2 branch.

FossilOrigin-Name: e6c066cae4ed5d698820c0c1ea8840773146e9d1a665551d8d51bb9df121cdb7

23 months agoFix a bug in the jsonLookup() routine used to search JSON. Bug was
drh [Fri, 4 Aug 2023 13:19:11 +0000 (13:19 +0000)] 
Fix a bug in the jsonLookup() routine used to search JSON.  Bug was
introduced by the recent (unreleased) JSON caching enhancements
check-in [a4c1af616e672a0d] merged into trunk at [df099ad713011b67].

FossilOrigin-Name: ba7a66db13b28da0b41f03be825a593608474a5ebda89e12d58d89db709b8f65

23 months agoChange comment on Fts5ExtensionApi.iVersion from "always set to 3" to "always set...
dan [Fri, 4 Aug 2023 11:10:10 +0000 (11:10 +0000)] 
Change comment on Fts5ExtensionApi.iVersion from "always set to 3" to "always set to 2".

FossilOrigin-Name: b7de399c277394a6a3bbf253d4177aa82753271e5087b98b2c2268f629a7dfdd

23 months agoResolve the timing/ordering issue of a JS-to-WASM-converted xDestroy() function being...
stephan [Fri, 4 Aug 2023 08:45:25 +0000 (08:45 +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 them.

FossilOrigin-Name: 031c9a76b6ad1572e7a88f4d2d62f206b0d37bd1170e2c8a24248c5ec628f2f5

23 months agoPart 2 of the fix from [a0f808363318c00fd1db78b].
stephan [Fri, 4 Aug 2023 08:41:55 +0000 (08:41 +0000)] 
Part 2 of the fix from [a0f808363318c00fd1db78b].

FossilOrigin-Name: 5c3104228d75c8fafbe24e46623777f3a8647f1b50267af61d46f7fad0e0434e

23 months agoMerge the latest trunk enhancements into the wal2 branch.
drh [Thu, 3 Aug 2023 23:22:28 +0000 (23:22 +0000)] 
Merge the latest trunk enhancements into the wal2 branch.

FossilOrigin-Name: 6fa71e11197111ab52d1983b35190899a5881dcb9ed822488c92bc839c72cb55

23 months agoFix harmless scan-build warnings.
drh [Thu, 3 Aug 2023 18:14:09 +0000 (18:14 +0000)] 
Fix harmless scan-build warnings.

FossilOrigin-Name: 65a8716d8a1b7c5cffe9cdd25e4cbfa6528fcb146ff0fe67b0ce771b0537473d

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

FossilOrigin-Name: 7b85c68fe252c0aa69724c82a95a4432e33ebdfb879b4b1b2ee2f9b98e9b792a

23 months agoFix build problems associated with SQLITE_OMIT_WSD and SQLITE_OMIT_TRIGGER.
drh [Thu, 3 Aug 2023 13:30:00 +0000 (13:30 +0000)] 
Fix build problems associated with SQLITE_OMIT_WSD and SQLITE_OMIT_TRIGGER.

FossilOrigin-Name: de031a5ec863b11f0216d1a114740c8cf4572adb034a5d35ff1a5c07d81df800

23 months agoFix a test case whose value changes under the no_optimization permutation
drh [Thu, 3 Aug 2023 13:07:58 +0000 (13:07 +0000)] 
Fix a test case whose value changes under the no_optimization permutation
due to the recent change to add the ability for SQLITE_TESTCTRL_OPTIMIZATION
to disable one-pass.

FossilOrigin-Name: 976e39c6322f9e51054546e2d9bc135b683d141054c645c9098002cdc310c7c7

23 months agoUnix builds now assume the presence of nanosleep() in the standard library.
drh [Thu, 3 Aug 2023 12:41:30 +0000 (12:41 +0000)] 
Unix builds now assume the presence of nanosleep() in the standard library.
The -DHAVE_NANOSLEEP=0 compile-time option can be used to build on systems
(if any still exist) where this is not the case.

FossilOrigin-Name: 779d5dc8797ea246d0397f7e94b1be716b0baa735e8d9f5a6fc4cffd887a7420

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

23 months 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

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

FossilOrigin-Name: 018984329892c243b21adb10aa8efc7f49313ecf80477e6b61dc6365f62c489d

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months agoMerge the latest trunk enhancements into the wal-shm-exceptions branch.
drh [Fri, 28 Jul 2023 19:07:25 +0000 (19:07 +0000)] 
Merge the latest trunk enhancements into the wal-shm-exceptions branch.

FossilOrigin-Name: c44fb4d06591ef4872f015aa9e81ce8b93a38bd9143cf20db38cbe5c77a0d71f

23 months agoMerge the latest trunk enhancements into the wal2 branch.
drh [Fri, 28 Jul 2023 18:47:49 +0000 (18:47 +0000)] 
Merge the latest trunk enhancements into the wal2 branch.

FossilOrigin-Name: c1fa1cb5e0c420614481636f3ce2dd9ad2142274bb7b37d39e5c26228317f992

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months agoAdd a comment describing the contents of the ExceptionInformation[] array for win32...
dan [Wed, 26 Jul 2023 18:34:34 +0000 (18:34 +0000)] 
Add a comment describing the contents of the ExceptionInformation[] array for win32 EXCEPTION_IN_PAGE_ERROR exceptions. No changes to code.

FossilOrigin-Name: 8e20354242d5f34a90b6c00d9034535ef6f6086ee4971230c7fd69985e2777d2

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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