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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years agoMore JNI-internal docs. Correct handling of a Java exception if a trace callback...
stephan [Wed, 2 Aug 2023 17:29:18 +0000 (17:29 +0000)] 
More JNI-internal docs. Correct handling of a Java exception if a trace callback throws.

FossilOrigin-Name: 306b269a01037bc5c98276276fdb17b37027d1ee0d603183f42a65966245bdff

2 years agoInternal doc additions in the JNI bits.
stephan [Wed, 2 Aug 2023 17:20:52 +0000 (17:20 +0000)] 
Internal doc additions in the JNI bits.

FossilOrigin-Name: b56643644e065b03fe2c3545e02ed3b2f6fd9f77c39aa84a02a00d695e9a12dc

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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 agoMore docs for the Java side of the JNI bindings.
stephan [Tue, 1 Aug 2023 10:19:05 +0000 (10:19 +0000)] 
More docs for the Java side of the JNI bindings.

FossilOrigin-Name: d8e9bcee96b90d56701f7907a8bd48853211caf757e1aa8decc7ed25eece6770

2 years agoInternal exception-handling cleanups in the JNI bindings.
stephan [Tue, 1 Aug 2023 09:44:26 +0000 (09:44 +0000)] 
Internal exception-handling cleanups in the JNI bindings.

FossilOrigin-Name: 057b1d4f6ffff73c120566895f61ea3fd8118968464d67ec9262096a7aa03f39

2 years agoMinor JNI-related doc tweaks and code re-ordering.
stephan [Tue, 1 Aug 2023 08:48:13 +0000 (08:48 +0000)] 
Minor JNI-related doc tweaks and code re-ordering.

FossilOrigin-Name: b663b27e425966f34fb62482a18048f0e2934380e5c411ae3627f1fe6a765c04

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 agoExperimentally change the JNI sqlite3_trace_v2() callback type to have more convenien...
stephan [Mon, 31 Jul 2023 13:52:46 +0000 (13:52 +0000)] 
Experimentally change the JNI sqlite3_trace_v2() callback type to have more convenient access to the current Java-side sqlite3_stmt at the cost of some uncomfortably fiddly current-statement tracking in the JNI layer. Subject to change.

FossilOrigin-Name: 459db332af6ea358b42bac096b9d26f1045b9ec32fad8463bca06807b2396b2c

2 years agoAdd some JNI-internal metrics, accessible via passing -v when running Tester1.java...
stephan [Mon, 31 Jul 2023 12:10:32 +0000 (12:10 +0000)] 
Add some JNI-internal metrics, accessible via passing -v when running Tester1.java. Document an OpenJDK bug which leads to incorrect -Xlint:jni warnings.

FossilOrigin-Name: a5d68a6b64abe3c2dfc3a32157f70fd8a4ad89feef2510b3bbb2d86b325d51ae

2 years agoCorrect a mis-cast in the JNI wrapper which just happened to accidentally work. Updat...
stephan [Mon, 31 Jul 2023 10:55:30 +0000 (10:55 +0000)] 
Correct a mis-cast in the JNI wrapper which just happened to accidentally work. Update JNI binding of sqlite3_context_db_handle() to return the bound-at-open() db instance instead of a new/temp proxy object.

FossilOrigin-Name: 9faca5d9ed4a749421e08bd1da8b7672c0fd31366124fdb613c46e19dece0fc1

2 years agoAdd another test for JNI-bound scalar UDFs.
stephan [Mon, 31 Jul 2023 10:42:05 +0000 (10:42 +0000)] 
Add another test for JNI-bound scalar UDFs.

FossilOrigin-Name: 8b322d92e247be606f83977767dc361ee4f7bc819122a630bdaa1110177db9b8

2 years agoUpdate some internal docs for the past two checkins. Add a way to dump out some debug...
stephan [Mon, 31 Jul 2023 10:22:34 +0000 (10:22 +0000)] 
Update some internal docs for the past two checkins. Add a way to dump out some debug info about the current JNI environment.

FossilOrigin-Name: ac9b8bb1e64450d980e2986084996549ae5c59e68c9f0c4c69539c239b64468b

2 years agoRefactor the busy-handler-specific JNI hook type to use the generic hook type.
stephan [Mon, 31 Jul 2023 10:08:36 +0000 (10:08 +0000)] 
Refactor the busy-handler-specific JNI hook type to use the generic hook type.

FossilOrigin-Name: d9efdc6dd20a34bfdaad5d4bf8e67cce7e35238299eb91e4459d59fda11978a6

2 years agoRefactor the collation-specific JNI hook type to use the generic hook type.
stephan [Mon, 31 Jul 2023 09:45:49 +0000 (09:45 +0000)] 
Refactor the collation-specific JNI hook type to use the generic hook type.

FossilOrigin-Name: 02c1d3b6501fedf3d6e6d1ca60699df268522182c5ba3b49ae8f4691499ef0fc

2 years agoInternal JNI doc tweaks.
stephan [Mon, 31 Jul 2023 09:28:15 +0000 (09:28 +0000)] 
Internal JNI doc tweaks.

FossilOrigin-Name: f4aa2c82882cb6be1fd52977de19fd03c2e38abb857b520f951b32d610972ab6

2 years agoConsolidate triplicated xDestroy()-calling code. Remove some unnecessary casts.
stephan [Mon, 31 Jul 2023 07:15:25 +0000 (07:15 +0000)] 
Consolidate triplicated xDestroy()-calling code. Remove some unnecessary casts.

FossilOrigin-Name: 24c0763d0e025187c74002ffee11fd48d3cd7b40e01469d28484bb67f701884b

2 years agoInternal JNI API renaming.
stephan [Sun, 30 Jul 2023 18:41:25 +0000 (18:41 +0000)] 
Internal JNI API renaming.

FossilOrigin-Name: fcfc070673cef2f657f4737f096678439ed7c011fb2e5391e0721f82f5d8af51

2 years agoInternal JNI refactoring towards consolidating support for callbacks with and without...
stephan [Sun, 30 Jul 2023 17:24:01 +0000 (17:24 +0000)] 
Internal JNI refactoring towards consolidating support for callbacks with and without finalizers.

FossilOrigin-Name: 120983a570d6de055cef9d916096de3410897ea9f46d23ea6eff1f9b549e423a

2 years agoMark the Java wrapper classes of the C-native types as 'final' (cannot be subclassed).
stephan [Sun, 30 Jul 2023 13:47:51 +0000 (13:47 +0000)] 
Mark the Java wrapper classes of the C-native types as 'final' (cannot be subclassed).

FossilOrigin-Name: 4fd3d93623d67c25fb8a490e0d4ea56d531d858067011ab1b28cce694098feff

2 years agoMinor tweaks and optimizations in the JNI bindings.
stephan [Sun, 30 Jul 2023 13:30:52 +0000 (13:30 +0000)] 
Minor tweaks and optimizations in the JNI bindings.

FossilOrigin-Name: 41fb5898f1a78d9fd85a020e28a6048a7359b54e35632e9072917cbdbcd8b07d

2 years agoBind sqlite3_collation_needed() to JNI. Related adjacent cleanups and fixes.
stephan [Sun, 30 Jul 2023 11:36:41 +0000 (11:36 +0000)] 
Bind sqlite3_collation_needed() to JNI. Related adjacent cleanups and fixes.

FossilOrigin-Name: 16ff167691733350907d2d995c774a885214acd0fe8ec491c16b786f00fe85d4

2 years agoInternal JNI refacoring to support the pending sqlite3_collation_needed() callback...
stephan [Sun, 30 Jul 2023 10:47:38 +0000 (10:47 +0000)] 
Internal JNI refacoring to support the pending sqlite3_collation_needed() callback. Correct a bug in the linked-list handling of PerDbStateJni which triggered an assert().

FossilOrigin-Name: 7ac6614e69b03304d09745619ed83f12c7eb775aaf4a636a79289b01642ddd14

2 years agoIncremental checkin to minimize the diff while narrowing in on an assertion caused...
stephan [Sun, 30 Jul 2023 09:45:54 +0000 (09:45 +0000)] 
Incremental checkin to minimize the diff while narrowing in on an assertion caused by refactoring.

FossilOrigin-Name: 2d7a91b1396d87852f1153ab7af7385514a9537cb64ba3bbd0faba2d28704214

2 years agoConsolidate some warnings for java callbacks which must not throw but do.
stephan [Sun, 30 Jul 2023 08:12:15 +0000 (08:12 +0000)] 
Consolidate some warnings for java callbacks which must not throw but do.

FossilOrigin-Name: 5e592ed2dfc89225fff3a1c76509adc799a238282413984e0c4b32af18525d18

2 years agoBind sqlite3_update_hook() to JNI.
stephan [Sun, 30 Jul 2023 07:44:03 +0000 (07:44 +0000)] 
Bind sqlite3_update_hook() to JNI.

FossilOrigin-Name: a5bbaa9017839f8d8b92bfb44472d4c60fa3037bfae7846dc8350262c1332cde

2 years agoBind sqlite3_rollback_hook() to JNI.
stephan [Sun, 30 Jul 2023 06:44:21 +0000 (06:44 +0000)] 
Bind sqlite3_rollback_hook() to JNI.

FossilOrigin-Name: 5f8ee44098d74ac2b98e4dd43ad80d3b919528358b3f992b425af7fa6262dcee

2 years agoAdd commit hook failure to JNI tests.
stephan [Sun, 30 Jul 2023 06:00:53 +0000 (06:00 +0000)] 
Add commit hook failure to JNI tests.

FossilOrigin-Name: be4459b495cc2555e4d8ca24dd56c3da1036d25af7cc077bbc3d93c2a3e8c40b

2 years agoBind sqlite3_commit_hook() to JNI.
stephan [Sun, 30 Jul 2023 05:50:34 +0000 (05:50 +0000)] 
Bind sqlite3_commit_hook() to JNI.

FossilOrigin-Name: c687297fcae082cbd7f9258c43f3841fd34904d8b62b0adf3cd61fcddeee483d

2 years agoBind sqlite3_progress_handler() to JNI. Add some metrics to Tester1.java.
stephan [Sun, 30 Jul 2023 04:31:56 +0000 (04:31 +0000)] 
Bind sqlite3_progress_handler() to JNI. Add some metrics to Tester1.java.

FossilOrigin-Name: 437ecfe8abf8d294d429d191d811da6148e0b2ebb74cf66998480bfc8ef58bdf

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

2 years agoInternal JNI binding docs.
stephan [Fri, 28 Jul 2023 18:44:11 +0000 (18:44 +0000)] 
Internal JNI binding docs.

FossilOrigin-Name: 991c66197e4dc7297fce3b20a1b4846873bcd4ce8add36aac71bd2e0e73c207b

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 agoFix an incorrect file path in ext/jni/README.md
stephan [Fri, 28 Jul 2023 18:02:02 +0000 (18:02 +0000)] 
Fix an incorrect file path in ext/jni/README.md

FossilOrigin-Name: bcefa2df563260933c7ab5df90872580f71010c11419f6b1de7b1e2747237ff8

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 agoFix minor typos in the JNI README.md file.
drh [Fri, 28 Jul 2023 15:58:09 +0000 (15:58 +0000)] 
Fix minor typos in the JNI README.md file.

FossilOrigin-Name: e21cf2e8f13465dbff33f9c21580752c1d8c077d6a253f56f04dab0d47eb99b8

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 agoMinor java cleanups recommended by a modern IDE.
stephan [Fri, 28 Jul 2023 10:37:17 +0000 (10:37 +0000)] 
Minor java cleanups recommended by a modern IDE.

FossilOrigin-Name: f92a9bbabebc33a771835e259b04a57d07add1eacf3d9aec5fddf929ce8a3022

2 years agoAdd Java tests which ensure that xFinal() is called with no aggregate context when...
stephan [Fri, 28 Jul 2023 10:01:01 +0000 (10:01 +0000)] 
Add Java tests which ensure that xFinal() is called with no aggregate context when the result set is empty.

FossilOrigin-Name: 7ac8c66a6b62d6bb345e8b9957a26de463019ae7d30ff442f19482c3a6827fc7

2 years agoTweaks to the Java-side UDF docs.
stephan [Fri, 28 Jul 2023 09:54:39 +0000 (09:54 +0000)] 
Tweaks to the Java-side UDF docs.

FossilOrigin-Name: 48e0079d8db675a8761f27348bc6795aa6b6e49a3f76bd4adece83309dcf2aff

2 years agoMore Java docs about making use of the aggregate context. Change the JNI mapping...
stephan [Fri, 28 Jul 2023 09:25:05 +0000 (09:25 +0000)] 
More Java docs about making use of the aggregate context. Change the JNI mapping to set the sqlite3_context::aggregateContext member directly, instead of via a superflous setter, because that way is faster.

FossilOrigin-Name: 7af0cb998f7161296d5e5e50a42e9db26ec13c145c61194a999a1a0104818d45

2 years agoMore docs and cleanups related to the aggregate UDF state. Correct the OOM check...
stephan [Fri, 28 Jul 2023 01:51:14 +0000 (01:51 +0000)] 
More docs and cleanups related to the aggregate UDF state. Correct the OOM check to behave properly if xFinal() is called without a matching xStep(), xValue(), or xInverse().

FossilOrigin-Name: ff53f1ccdc1780f2d9bd5f59804a76dbdf4f6b70696d3a7dbdbd96d1f8f6fa5c

2 years agoAdd an OOM check to the previous check-in. Minor internal API renaming.
stephan [Fri, 28 Jul 2023 01:19:44 +0000 (01:19 +0000)] 
Add an OOM check to the previous check-in. Minor internal API renaming.

FossilOrigin-Name: 6b56e4d62b4945e52978d00aa8e2984faa731c92a7e002e81524fcfcf8ba0cce

2 years agoAdd support making use of sqlite3_aggregate_context() (in a roundabout way) from...
stephan [Fri, 28 Jul 2023 01:12:47 +0000 (01:12 +0000)] 
Add support making use of sqlite3_aggregate_context() (in a roundabout way) from Java to accumulate state within aggregate and window UDFs.

FossilOrigin-Name: 640574984741c7a9472d7f8be7bce87e736d7947ce673ae4a25008d74238ad90

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 agoReformulate jni tests to not require the -ea jvm flag to enable assert().
stephan [Thu, 27 Jul 2023 22:53:02 +0000 (22:53 +0000)] 
Reformulate jni tests to not require the -ea jvm flag to enable assert().

FossilOrigin-Name: dc356667a8f4fa31a3fef1ae35873d834d27fd6a9f0818d6fb85e4751fde9fe5

2 years agoAdd locking test for BusyHandler and clear up new -Xlint:jni warnings introduced...
stephan [Thu, 27 Jul 2023 22:42:25 +0000 (22:42 +0000)] 
Add locking test for BusyHandler and clear up new -Xlint:jni warnings introduced by the busy-handler binding.

FossilOrigin-Name: 7dcde2bfce54b18f391776fa1cb93c0ff6153634bedcab0007b374c06c4d4079

2 years agoBind sqlite3_busy_handler(). Correct mapping of pointers for, and cleanup of, JNI...
stephan [Thu, 27 Jul 2023 22:05:39 +0000 (22:05 +0000)] 
Bind sqlite3_busy_handler(). Correct mapping of pointers for, and cleanup of, JNI-level per-db state.

FossilOrigin-Name: 524747796a30a5c1c6c7567b49ffb1e35e2626c73e09c335c0ab74d4ddb5f005

2 years agoReplace some www: interwiki references in the JNI readme with their full URLs to...
stephan [Thu, 27 Jul 2023 20:32:16 +0000 (20:32 +0000)] 
Replace some www: interwiki references in the JNI readme with their full URLs to make the doc more portable.

FossilOrigin-Name: 63ce0c9bdde210cf2f8b6099ae5c73caac18e6debc13c2f77090b77f3de72beb

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 agoMerge trunk into jni branch for compiler warning fixes.
stephan [Thu, 27 Jul 2023 20:12:48 +0000 (20:12 +0000)] 
Merge trunk into jni branch for compiler warning fixes.

FossilOrigin-Name: 0514fd340ae15a95760d50c747d6fb9eae5109cb5045eeabc2bc199be0a5ae35

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 agoInitial check-in of JNI (Java Native Interface) bindings for the core C API.
stephan [Thu, 27 Jul 2023 20:02:49 +0000 (20:02 +0000)] 
Initial check-in of JNI (Java Native Interface) bindings for the core C API.

FossilOrigin-Name: b5374b9ef58fa0be80aefccde0721f5599fb820464b13940b6361b9aa09a59d5

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

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