]>
git.ipfire.org Git - thirdparty/sqlite.git/log
stephan [Sat, 5 Aug 2023 12:48:33 +0000 (12:48 +0000)]
stephan [Sat, 5 Aug 2023 11:16:54 +0000 (11:16 +0000)]
Bind Fts5ExtensionApi::xUserData() to JNI and extend xCreateFunction() to accept that argument. In test code, use assert() instead of exceptions if assert() is enabled so that test failures (exceptions) thrown via callbacks do not get suppressed (which they otherwise necessarily are to avoid crashing the host app).
FossilOrigin-Name:
e43837377696e468cd31cf71585fe235ffe67a9f4d3b036c5f9d0cb7141d0f57
stephan [Sat, 5 Aug 2023 04:30:31 +0000 (04:30 +0000)]
Add missing Fts5PhraseIter.java to the build.
FossilOrigin-Name:
96281ad0d5b2f020622c4f85f8694886e6a29fb43e1fbeb2a346ed2e94f109fb
stephan [Sat, 5 Aug 2023 04:23:27 +0000 (04:23 +0000)]
Bind fts5_api::xCreateFunction() to JNI and demonstrate it with a test.
FossilOrigin-Name:
c653bf16cbdccae05ab14059b140191afd5c17740fb78d756d8822986e54b17c
stephan [Sat, 5 Aug 2023 01:28:30 +0000 (01:28 +0000)]
stephan [Sat, 5 Aug 2023 00:40:28 +0000 (00:40 +0000)]
Bind the remaining Fts5ExtensionApi methods to JNI, noting that all are completely untested because the higher-level bits needed to do so are still missing.
FossilOrigin-Name:
23383c1dfd240ce47f504dd5c3402c9a31f166fbde5bb72d91309a5655074b33
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
stephan [Fri, 4 Aug 2023 15:38:59 +0000 (15:38 +0000)]
More work on the JNI binding of fts5 customization (still a long ways to go).
FossilOrigin-Name:
1a246fd21657f5bb13eeacc4059894ab787ea9a3c45bd9bdd3030a66643d2fef
stephan [Fri, 4 Aug 2023 13:27:45 +0000 (13:27 +0000)]
Eliminate code duplication in the two JNI tester classes.
FossilOrigin-Name:
63e7bbe3d5fcfb531f9d7fa88398c1191570e69b5d11adcb9c5e64b8345b4e6c
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
stephan [Fri, 4 Aug 2023 13:03:31 +0000 (13:03 +0000)]
FTS-related JNI refactoring. Move FTS-specific tests into their own class and dynamically load it, if possible, from the main test app.
FossilOrigin-Name:
b7a8428fcd969e7a29a23c2dae61883f69501094f2de0f79bbee3c02c672cbf5
stephan [Fri, 4 Aug 2023 12:44:06 +0000 (12:44 +0000)]
More work towards binding FTS5 customization to JNI. Add Fts*.java files missing from previous checkin.
FossilOrigin-Name:
91263178f463ca4623dd0203696eff6bcfd68abde5d2471be3f5a3edd791c52a
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
stephan [Fri, 4 Aug 2023 11:08:25 +0000 (11:08 +0000)]
Start including fts5 customization bits into JNI, but it's far from functional.
FossilOrigin-Name:
abaf5edd0430e3301a11bd0acb9ce4b81b310237e1799701411db56ef7605e01
stephan [Fri, 4 Aug 2023 09:53:13 +0000 (09:53 +0000)]
Improve internal error handling in the JNI create_function() impl.
FossilOrigin-Name:
2c88390faa108a60c8fb1eb7aad05d90f3daf4cfef14ca73987597aaf7be83c9
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
stephan [Fri, 4 Aug 2023 08:41:55 +0000 (08:41 +0000)]
drh [Thu, 3 Aug 2023 18:14:09 +0000 (18:14 +0000)]
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
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
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
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
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
stephan [Wed, 2 Aug 2023 17:20:52 +0000 (17:20 +0000)]
drh [Wed, 2 Aug 2023 16:06:02 +0000 (16:06 +0000)]
Performance optimization for JSON rendering logic.
FossilOrigin-Name:
ea0b9aecbaca9a8e784fd2bcb50f78cbdcf4c5cfb45a7700bb222e4cc104c644
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
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
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
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
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
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
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
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
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
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
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
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
stephan [Tue, 1 Aug 2023 09:44:26 +0000 (09:44 +0000)]
Internal exception-handling cleanups in the JNI bindings.
FossilOrigin-Name:
057b1d4f6ffff73c120566895f61ea3fd8118968464d67ec9262096a7aa03f39
stephan [Tue, 1 Aug 2023 08:48:13 +0000 (08:48 +0000)]
Minor JNI-related doc tweaks and code re-ordering.
FossilOrigin-Name:
b663b27e425966f34fb62482a18048f0e2934380e5c411ae3627f1fe6a765c04
drh [Tue, 1 Aug 2023 01:07:45 +0000 (01:07 +0000)]
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
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
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
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
drh [Mon, 31 Jul 2023 17:20:12 +0000 (17:20 +0000)]
Improved debug tracking of the Parse.nQueryLoop value.
FossilOrigin-Name:
4a8a17498ecaccca5e5aab65d4596cbca9799547f50683237d08c1fa3556f1cf
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
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
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
stephan [Mon, 31 Jul 2023 10:42:05 +0000 (10:42 +0000)]
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
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
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
stephan [Mon, 31 Jul 2023 09:28:15 +0000 (09:28 +0000)]
stephan [Mon, 31 Jul 2023 07:15:25 +0000 (07:15 +0000)]
Consolidate triplicated xDestroy()-calling code. Remove some unnecessary casts.
FossilOrigin-Name:
24c0763d0e025187c74002ffee11fd48d3cd7b40e01469d28484bb67f701884b
stephan [Sun, 30 Jul 2023 18:41:25 +0000 (18:41 +0000)]
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
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
stephan [Sun, 30 Jul 2023 13:30:52 +0000 (13:30 +0000)]
Minor tweaks and optimizations in the JNI bindings.
FossilOrigin-Name:
41fb5898f1a78d9fd85a020e28a6048a7359b54e35632e9072917cbdbcd8b07d
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
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
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
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
stephan [Sun, 30 Jul 2023 07:44:03 +0000 (07:44 +0000)]
stephan [Sun, 30 Jul 2023 06:44:21 +0000 (06:44 +0000)]
stephan [Sun, 30 Jul 2023 06:00:53 +0000 (06:00 +0000)]
stephan [Sun, 30 Jul 2023 05:50:34 +0000 (05:50 +0000)]
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
stephan [Sun, 30 Jul 2023 03:54:10 +0000 (03:54 +0000)]
Add tests for SAHPoolUtil.exportFile() and importDb().
FossilOrigin-Name:
4aa88b8fb1c99137ed7531e5c82a241738a2b0554f7af82c0ed0ce8d16a0879a
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
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
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
drh [Sat, 29 Jul 2023 17:05:35 +0000 (17:05 +0000)]
Simplification to the sqlite3_stmt_explain() implementation.
FossilOrigin-Name:
dd5eb4c7f71c658aff8c2f11ff163c5e79f0ebfd49fd13ca8e28381fe63cc82f
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
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
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
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
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
stephan [Fri, 28 Jul 2023 18:44:11 +0000 (18:44 +0000)]
drh [Fri, 28 Jul 2023 18:37:13 +0000 (18:37 +0000)]
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
drh [Fri, 28 Jul 2023 16:12:39 +0000 (16:12 +0000)]
Minor tweaks to the JSON performance measurement documentation.
FossilOrigin-Name:
0bed957e46aa3bf6a70292ae100de0459486c1469dd03de61207a708cc59a594
drh [Fri, 28 Jul 2023 15:58:09 +0000 (15:58 +0000)]
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
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
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
drh [Fri, 28 Jul 2023 11:30:07 +0000 (11:30 +0000)]
stephan [Fri, 28 Jul 2023 10:37:17 +0000 (10:37 +0000)]
Minor java cleanups recommended by a modern IDE.
FossilOrigin-Name:
f92a9bbabebc33a771835e259b04a57d07add1eacf3d9aec5fddf929ce8a3022
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
stephan [Fri, 28 Jul 2023 09:54:39 +0000 (09:54 +0000)]
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
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
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
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
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
drh [Thu, 27 Jul 2023 23:51:36 +0000 (23:51 +0000)]
Switch to using jsonParseCached() for json_patch().
FossilOrigin-Name:
2ed9c59e6a51037e63485d0a92dae25443116beddfca1ac73d2f5d5be38d4ad3
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
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
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
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
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