]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
2 years agoSQLTester can now split a test script into a series of individual commands.
stephan [Mon, 7 Aug 2023 22:32:22 +0000 (22:32 +0000)] 
SQLTester can now split a test script into a series of individual commands.

FossilOrigin-Name: d3d1accc8b4ba0cd396ee3a58d9710a54b8e1d1b171d67595d4ef1fc7faea8cb

2 years agoSQLTester can now read a script and strip it of all noise content.
stephan [Mon, 7 Aug 2023 22:02:43 +0000 (22:02 +0000)] 
SQLTester can now read a script and strip it of all noise content.

FossilOrigin-Name: 59bd392817ac69ffdf60ab7a2094b0d616bf593da060b6acf1b4ce9837847fcb

2 years agoInitial skeleton for adding an SQL-driven test script interpreter for the JNI bindings.
stephan [Mon, 7 Aug 2023 21:04:13 +0000 (21:04 +0000)] 
Initial skeleton for adding an SQL-driven test script interpreter for the JNI bindings.

FossilOrigin-Name: 2aa8f0edecd3fc30eec28987cdbf1003ace154ddc1447b6f8715ecf38d3b06fb

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

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

2 years agoWhen converting a Java exception to a db error message, use Throwable.toString()...
stephan [Mon, 7 Aug 2023 11:18:44 +0000 (11:18 +0000)] 
When converting a Java exception to a db error message, use Throwable.toString() instead of getMessage() so that the exception type's name is included. More internal API renaming for consistency.

FossilOrigin-Name: 2d44720d06d9e50cb037e92981d2473a3ad0b7560f2f5923d428f59de6fd6aaa

2 years agoLots of JNI internal API renaming, for consistency, and moving-around of utility...
stephan [Mon, 7 Aug 2023 10:59:27 +0000 (10:59 +0000)] 
Lots of JNI internal API renaming, for consistency, and moving-around of utility functions. Make it safe for more callback types to throw.

FossilOrigin-Name: 9a494394b9eb28cf88dc5e7075a4b8c682c8e14fdd6837b595bec8011d7e9e72

2 years agoJNI API renaming to better match the C API.
stephan [Mon, 7 Aug 2023 10:01:59 +0000 (10:01 +0000)] 
JNI API renaming to better match the C API.

FossilOrigin-Name: 6e0bd03d0ba9ee8422853241ba1c4e963d158d1f042855c0cb0026701907896e

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

2 years agoMake sqlite3_stmt() Java ctor private - it's only constructed from JNI code.
stephan [Mon, 7 Aug 2023 01:06:27 +0000 (01:06 +0000)] 
Make sqlite3_stmt() Java ctor private - it's only constructed from JNI code.

FossilOrigin-Name: ce82c42f151e38b23945e6f5dd99cb6a77b3c6440508f41abc35e9f6c29cd440

2 years agoMinor internal cleanups and additional test metrics.
stephan [Mon, 7 Aug 2023 00:29:38 +0000 (00:29 +0000)] 
Minor internal cleanups and additional test metrics.

FossilOrigin-Name: fa0a6b6e8e6c711585bca30357e465f7a2f08a1c7159ecf23031af1e5158b89d

2 years agoBind the auto-extension APIs to JNI.
stephan [Mon, 7 Aug 2023 00:06:31 +0000 (00:06 +0000)] 
Bind the auto-extension APIs to JNI.

FossilOrigin-Name: 746a5fa079ad80b3c59411202ee601e0b5c50e79e5994d5e464fa06d3c276324

2 years agoRework the sqlite3_open(_v2)() order of operations so that pending auto-extension...
stephan [Sun, 6 Aug 2023 22:09:09 +0000 (22:09 +0000)] 
Rework the sqlite3_open(_v2)() order of operations so that pending auto-extension support can get ahold of the open-time Java state despite the Java/C (sqlite3*) binding not having yet been established.

FossilOrigin-Name: 34da294ab558880e81eebd7d261bc590551d5a7d2855e844695cef6394647ea7

2 years agoCompletely rework how the JNI sqlite3_open(_v2) and sqlite3_prepare(_vN)() bindings...
stephan [Sun, 6 Aug 2023 21:29:13 +0000 (21:29 +0000)] 
Completely rework how the JNI sqlite3_open(_v2) and sqlite3_prepare(_vN)() bindings deal with output pointers to give the JNI side full control over the origin of db and stmt handles (necessary for solving chicken/egg situations in auto-extensions and prepare-time trace). Lots of adjacent internal API renaming.

FossilOrigin-Name: 644999caff9db79562d45520d94aaa24ee88c65e397b6fb9c20a4f0e7f84e1a5

2 years agoStart adding JNI-side support for auto extensions, but hit a brick wall which require...
stephan [Sun, 6 Aug 2023 20:01:30 +0000 (20:01 +0000)] 
Start adding JNI-side support for auto extensions, but hit a brick wall which requires slightly awkward semantics changes in the JNI bindings for sqlite3_open(_v2)() to resolve, so stash this #if'd out for the time being.

FossilOrigin-Name: 77a32d238e80fe1d237768d88780043a7bd2b3543e6672536254782cbea0039c

2 years agoDoc cleanups.
stephan [Sun, 6 Aug 2023 15:01:38 +0000 (15:01 +0000)] 
Doc cleanups.

FossilOrigin-Name: 5f56b007704f2aad4cbc6f0ccd1e1f1c974865971f99451352714ee7e077c284

2 years agoBind sqlite3_config() to JNI for call variants taking (int,int*) and (int,const char...
stephan [Sun, 6 Aug 2023 14:19:09 +0000 (14:19 +0000)] 
Bind sqlite3_config() to JNI for call variants taking (int,int*) and (int,const char *) variadic arguments.

FossilOrigin-Name: 6119289da85ac0c83e2a7236d24bbfff22334d6cf1d852756dc658ad6a75dfec

2 years agoJNI-internal cleanups and API renaming. Add a C-side java-string-to-utf8 conversion.
stephan [Sun, 6 Aug 2023 13:02:43 +0000 (13:02 +0000)] 
JNI-internal cleanups and API renaming. Add a C-side java-string-to-utf8 conversion.

FossilOrigin-Name: 672d85795d04131135b1dc6a02d64eceb8b5084217c17766afeca4af23c07ec4

2 years agoRemove doc outdated warning about sqlite3_trace_v2() JNI binding being incompatible...
stephan [Sun, 6 Aug 2023 11:05:17 +0000 (11:05 +0000)] 
Remove doc outdated warning about sqlite3_trace_v2() JNI binding being incompatible with MUTF-8. Use new to-string capability to simplify Fts5ExtensionApi::xColumnText() JNI binding.

FossilOrigin-Name: ebcfc2379be12f76a96f3605b734f406b3354d4c985062cdbfca0cf7e3f31379

2 years agoAdd a way to convert from standard UTF-8 to a Java string (JNI lacks this capability).
stephan [Sun, 6 Aug 2023 10:49:47 +0000 (10:49 +0000)] 
Add a way to convert from standard UTF-8 to a Java string (JNI lacks this capability).

FossilOrigin-Name: 07dd082c9e371829a18aeb574f842891e545e1fc125760238ede7e7e2b6a4262

2 years agoBind sqlite3_db_filename() and (closely related) (A) add many more docs about the...
stephan [Sun, 6 Aug 2023 10:14:53 +0000 (10:14 +0000)] 
Bind sqlite3_db_filename() and (closely related) (A) add many more docs about the UTF-8/MUTF-8 discrepancy (B) start adding internals to enable us to perform the standard-UTF-8-to-Java conversion from C.

FossilOrigin-Name: 586720fa714ac74491cd85d0c6645242e55e5989ad312ef6e15e0b0acc6906ff

2 years agoBind sqlite3_set_authorizer() to JNI.
stephan [Sat, 5 Aug 2023 22:41:36 +0000 (22:41 +0000)] 
Bind sqlite3_set_authorizer() to JNI.

FossilOrigin-Name: e0fa03135942cd2fe732a74510d380ba78ab230c452168e638f32b4aee04b3f7

2 years agoRefactor the per-JNIEnv cache from a fixed-size static array to a linked list of...
stephan [Sat, 5 Aug 2023 21:35:58 +0000 (21:35 +0000)] 
Refactor the per-JNIEnv cache from a fixed-size static array to a linked list of dynamically-allocated entries. Uncache all per-db state (which is necessarily JNIEnv-specific) when the corresponding JNIEnv is uncached.

FossilOrigin-Name: 9dd8b78419e19e88bc3fbff9bf200390b146b2461af2bb6b93d8467036619e33

2 years agoAdd SQLite3Jni.uncacheJniEnv(), a way for Java threads to clear their thread-specific...
stephan [Sat, 5 Aug 2023 20:19:45 +0000 (20:19 +0000)] 
Add SQLite3Jni.uncacheJniEnv(), a way for Java threads to clear their thread-specific cached state from the JNI bindings when they're about to terminate (or are otherwise done using the library).

FossilOrigin-Name: 7468f8761bece58f7ced3d112bbe2fb454432d9c54c9b96cedb5a15bc2926d0f

2 years agoIn the JNI docs, note that the sizeof SQLITE_TRANSIENT and SQLITE_STATIC should ideal...
stephan [Sat, 5 Aug 2023 19:20:15 +0000 (19:20 +0000)] 
In the JNI docs, note that the sizeof SQLITE_TRANSIENT and SQLITE_STATIC should ideally be the same as the platform's pointer size.

FossilOrigin-Name: 7d4ac44ec419ed0474bdb9d237b97660cf0d8faba8fe686f6a914d7bc04dfa3b

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

2 years agoJNI internal refactoring and cleanups.
stephan [Sat, 5 Aug 2023 12:48:33 +0000 (12:48 +0000)] 
JNI internal refactoring and cleanups.

FossilOrigin-Name: 7397973a2f191d75b149cf73a6d7ee1798820c1cd37d83af14e565067ede1b04

2 years agoBind Fts5ExtensionApi::xUserData() to JNI and extend xCreateFunction() to accept...
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

2 years agoAdd missing Fts5PhraseIter.java to the build.
stephan [Sat, 5 Aug 2023 04:30:31 +0000 (04:30 +0000)] 
Add missing Fts5PhraseIter.java to the build.

FossilOrigin-Name: 96281ad0d5b2f020622c4f85f8694886e6a29fb43e1fbeb2a346ed2e94f109fb

2 years agoBind fts5_api::xCreateFunction() to JNI and demonstrate it with a test.
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

2 years agoStart adding fts5_api to JNI.
stephan [Sat, 5 Aug 2023 01:28:30 +0000 (01:28 +0000)] 
Start adding fts5_api to JNI.

FossilOrigin-Name: 14d18fe983c83412d72fd2005a45a2b8c48d347b7bbf8ef9630ae460cff85c32

2 years agoBind the remaining Fts5ExtensionApi methods to JNI, noting that all are completely...
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

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

2 years agoMore work on the JNI binding of fts5 customization (still a long ways to go).
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

2 years agoEliminate code duplication in the two JNI tester classes.
stephan [Fri, 4 Aug 2023 13:27:45 +0000 (13:27 +0000)] 
Eliminate code duplication in the two JNI tester classes.

FossilOrigin-Name: 63e7bbe3d5fcfb531f9d7fa88398c1191570e69b5d11adcb9c5e64b8345b4e6c

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

2 years agoFTS-related JNI refactoring. Move FTS-specific tests into their own class and dynamic...
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

2 years agoMore work towards binding FTS5 customization to JNI. Add Fts*.java files missing...
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

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

2 years agoStart including fts5 customization bits into JNI, but it's far from functional.
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

2 years agoImprove internal error handling in the JNI create_function() impl.
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

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

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