]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
23 months agoCorrect JNI layer's misuse of an sqlite3-internal error-reporting API (no mutex held... jni-threading
stephan [Thu, 24 Aug 2023 14:31:36 +0000 (14:31 +0000)] 
Correct JNI layer's misuse of an sqlite3-internal error-reporting API (no mutex held). Style cleanups. Eliminate lookups of per-thread state by approximately 85% across the test suite.

FossilOrigin-Name: 1f46ba8d3bc61af771c1e33d09ad25f0da4fc4f915f7a9f6223ebfd99526d81d

23 months agoAdd more JNI docs, tests, and a handful of Java-side overloads.
stephan [Thu, 24 Aug 2023 11:57:51 +0000 (11:57 +0000)] 
Add more JNI docs, tests, and a handful of Java-side overloads.

FossilOrigin-Name: d19a431facbde6a6b960664674753ee85d2c051a76109ce7db0b079c65fbdea0

23 months agoJNI cleanups regarding building with certain features disabled.
stephan [Wed, 23 Aug 2023 17:52:51 +0000 (17:52 +0000)] 
JNI cleanups regarding building with certain features disabled.

FossilOrigin-Name: a9e6d5158b8a4a6b8554a5f8f0a35785ee450d42ea877275dc27085e89716c18

23 months agoRemove unnecessary jclass-type struct members.
stephan [Wed, 23 Aug 2023 17:15:48 +0000 (17:15 +0000)] 
Remove unnecessary jclass-type struct members.

FossilOrigin-Name: d67255f7251cc5d1d27d77d4c84ff216e2da71202db989718189a6b4beff1cd0

23 months agoAdd a note to the JNI README explaining why the Java API has callback names like...
stephan [Wed, 23 Aug 2023 13:36:27 +0000 (13:36 +0000)] 
Add a note to the JNI README explaining why the Java API has callback names like xFunc() and xPreUpdate().

FossilOrigin-Name: 415447a310f6a7d06b4aa9ef51f110cf8e2ef9545c69cb5983c367c50fe641d2

23 months agoBind sqlite3_preupdate_hook() and friends to JNI.
stephan [Wed, 23 Aug 2023 13:17:37 +0000 (13:17 +0000)] 
Bind sqlite3_preupdate_hook() and friends to JNI.

FossilOrigin-Name: d0c425b5c1d3aac5ead18a501a3760b4506d68d373cb3be484247042cf2fa8d4

23 months agoBind a subset of sqlite3_config() to JNI: threading modes and sqllog.
stephan [Wed, 23 Aug 2023 10:36:12 +0000 (10:36 +0000)] 
Bind a subset of sqlite3_config() to JNI: threading modes and sqllog.

FossilOrigin-Name: fce8ecaf7f2e69a168978e6993e58c452c45f76c39da33f2869c9d947c16cab1

23 months agoNumerous minor cleanups and code style conformance improvements.
stephan [Wed, 23 Aug 2023 09:05:16 +0000 (09:05 +0000)] 
Numerous minor cleanups and code style conformance improvements.

FossilOrigin-Name: 6c92d884920e4ace54913fc60ceef6e43a4351f45a4cb3c4a0ed3d29d544a31b

23 months agoImprove C-side exception handling from Java-side UDF callbacks.
stephan [Wed, 23 Aug 2023 00:17:28 +0000 (00:17 +0000)] 
Improve C-side exception handling from Java-side UDF callbacks.

FossilOrigin-Name: aebbc24afb339ed07b7cd767fbc0d25f3e9c3d9bb5ef3d1c10b04b605c7261bc

23 months agoMinor Tester1.java cleanups.
stephan [Tue, 22 Aug 2023 23:00:44 +0000 (23:00 +0000)] 
Minor Tester1.java cleanups.

FossilOrigin-Name: 70d936953ba55cfed32efe7e3a9d4b71da9a7ffc8818b6540471e0bf311bc688

23 months agoFix Tester1 so that exceptions triggered via threads are not silently ignored. Disabl...
stephan [Tue, 22 Aug 2023 22:13:08 +0000 (22:13 +0000)] 
Fix Tester1 so that exceptions triggered via threads are not silently ignored. Disable auto-extension tests in multi-thread mode because concurrent threads rightfully interfere with that.

FossilOrigin-Name: 56b2a077ace6e6ad5834e1a597b710f212a5b7d5db5b9a27a41f2aa0f6952c55

2 years agoMore work on the JNI multi-threaded test runner.
stephan [Tue, 22 Aug 2023 20:10:28 +0000 (20:10 +0000)] 
More work on the JNI multi-threaded test runner.

FossilOrigin-Name: 9a74ad716bded1e14333bf7c72392916f800d58a96240eabe4988ca5fc9e8752

2 years agoDisassociate JNI db handles from the thread that created them, as it's no longer...
stephan [Tue, 22 Aug 2023 18:36:30 +0000 (18:36 +0000)] 
Disassociate JNI db handles from the thread that created them, as it's no longer relevant.

FossilOrigin-Name: 8b78b737e66a399b04e555a8197f63a73198a4105cb2f37ffd5b0e6014302caf

2 years agoCorrect JNI binding of sqlite3_shutdown() to clean up all cached JNIEnv objects.
stephan [Tue, 22 Aug 2023 17:51:57 +0000 (17:51 +0000)] 
Correct JNI binding of sqlite3_shutdown() to clean up all cached JNIEnv objects.

FossilOrigin-Name: 02e868690f97ca728b0f2dd018aa79a9d13c85dd85b164caa895d319ae8f3ff5

2 years agoJNI internal cleanups and correct two leaked db handles in test code.
stephan [Tue, 22 Aug 2023 17:36:59 +0000 (17:36 +0000)] 
JNI internal cleanups and correct two leaked db handles in test code.

FossilOrigin-Name: f927a30b5bba35991f472084ebaf02779e84c343a4e84f0efb3df7679ff212f8

2 years agoMove the JNI per-thread cache of NativePointerHolder refs into global space. This...
stephan [Tue, 22 Aug 2023 15:30:35 +0000 (15:30 +0000)] 
Move the JNI per-thread cache of NativePointerHolder refs into global space. This allows better-targeted mutex locks and incidentally eliminates the lagginess and post-run hangs in Tester1's multi-thread mode (presumably caused by deadlocks).

FossilOrigin-Name: e209f56a9745695aadc04418c7bebe62b79e38e5aee26c3248a30f73bfa460c2

2 years agoMove most of the per-JNIEnv global Java class refs into the global state, saving...
stephan [Tue, 22 Aug 2023 11:34:34 +0000 (11:34 +0000)] 
Move most of the per-JNIEnv global Java class refs into the global state, saving a bit of per-thread overhead.

FossilOrigin-Name: 7342bf578790e1a87c128a7c1c7745fe2e7c442890370feb160d406597d4d8ec

2 years agoMinor JNI cleanups.
stephan [Mon, 21 Aug 2023 23:45:19 +0000 (23:45 +0000)] 
Minor JNI cleanups.

FossilOrigin-Name: b88910aaaaaaa0936974379bb3eb8a5a3a634395b14e67cc9030f8a520f471f1

2 years agoJNI cleanups.
stephan [Sat, 19 Aug 2023 14:49:08 +0000 (14:49 +0000)] 
JNI cleanups.

FossilOrigin-Name: 0a84131008a2e7886dac64a3545dea634811f6eac2b90885ec9c61ed1e6544c3

2 years agoMerge trunk into jni-threading branch.
stephan [Sat, 19 Aug 2023 12:34:23 +0000 (12:34 +0000)] 
Merge trunk into jni-threading branch.

FossilOrigin-Name: 8254479c6ff1ea3cc9e56de1698db8405c03da90b9bf4c401182e47e0842baf8

2 years agoJNI doc additions.
stephan [Sat, 19 Aug 2023 12:32:00 +0000 (12:32 +0000)] 
JNI doc additions.

FossilOrigin-Name: 0c7ac34f30e1f7e35a2ac4e5e55e5f24857b24afa81a7abecba60f1c9c68b9ff

2 years agoJNI test code cleanups.
stephan [Sat, 19 Aug 2023 11:52:36 +0000 (11:52 +0000)] 
JNI test code cleanups.

FossilOrigin-Name: e202b6e69da8cced114d027cf2e91a04dfdd50b601b3274214783f7d750c558c

2 years agoMinor JNI cleanups.
stephan [Sat, 19 Aug 2023 11:26:52 +0000 (11:26 +0000)] 
Minor JNI cleanups.

FossilOrigin-Name: 1cecb9e0383aa78c491f9ba88c831a88b4b2d40ceef1b87be494b6ddc0789e41

2 years agoAdd multi-thread run mode to JNI Tester1. It works but hangs on exit sometimes for...
stephan [Sat, 19 Aug 2023 10:43:05 +0000 (10:43 +0000)] 
Add multi-thread run mode to JNI Tester1. It works but hangs on exit sometimes for Java reasons as yet not understood.

FossilOrigin-Name: bdbaf7a4534f40e550b646979e67e7b7731566bb5a2631ed376ac85a9bec40a7

2 years agoReplace JNI::NewStringUTF() for the remaining cases where output may be incompatible...
stephan [Sat, 19 Aug 2023 08:22:34 +0000 (08:22 +0000)] 
Replace JNI::NewStringUTF() for the remaining cases where output may be incompatible with MUTF-8. It is now only used when we know the output to be plain ASCII.

FossilOrigin-Name: 2d955eef25ab116c487ebc34c6f2d2836d310af239ef1993f5aeee5a3f68d590

2 years agoshell.c.in help text typo fix. No functional changes.
stephan [Sat, 19 Aug 2023 08:12:10 +0000 (08:12 +0000)] 
shell.c.in help text typo fix. No functional changes.

FossilOrigin-Name: c319033276c3565d0f1f2cae1c91791940d322fe79696bc26d74fddeb2664373

2 years agoRename the decimal_sci() function to decimal_exp().
drh [Fri, 18 Aug 2023 15:39:38 +0000 (15:39 +0000)] 
Rename the decimal_sci() function to decimal_exp().
[forum:/forumpost/fa027bb0ab|Forum post fa027bb0ab].

FossilOrigin-Name: c48f1be8cc505a7e2902c79e26c1d9a121ff5c55785ac812d2e09232b2414695

2 years agoAvoid running test case sort2.2.3 under address-sanitizer. It runs out of memory...
dan [Fri, 18 Aug 2023 15:17:52 +0000 (15:17 +0000)] 
Avoid running test case sort2.2.3 under address-sanitizer. It runs out of memory on some 32-bit platforms.

FossilOrigin-Name: 925be7539947078547ee129b3d328ab0c59b19c6e2e5a391840f2d58f6d59acd

2 years agoEnhance the CLI and the fuzzcheck utility programs to report whether they
drh [Fri, 18 Aug 2023 12:15:44 +0000 (12:15 +0000)] 
Enhance the CLI and the fuzzcheck utility programs to report whether they
are compiled as 32-bit or 64-bit for things like the --version option.

FossilOrigin-Name: ec7eeb055bfb0e5a4467d8a45fa53d84bb8ae80ca0474b687e2783e971648008

2 years agoEnhance the notes on compiling for Windows11 to explain how to do
drh [Fri, 18 Aug 2023 11:36:33 +0000 (11:36 +0000)] 
Enhance the notes on compiling for Windows11 to explain how to do
32-bit builds on a 64-bit system.

FossilOrigin-Name: dd749e4042bdffb20fe71dd2dba91eab5edc32e4b2773c2fadba43cb54027a17

2 years agoRemove some obsolete JNI-internal docs.
stephan [Thu, 17 Aug 2023 22:04:07 +0000 (22:04 +0000)] 
Remove some obsolete JNI-internal docs.

FossilOrigin-Name: 00a2a3736a6dcde81d920815520040f3c47f965165e7128ca1f4062e6ec7c17c

2 years agoDo not allow bound parameters in the ON CONFLICT clause of an UPSERT.
drh [Thu, 17 Aug 2023 17:48:20 +0000 (17:48 +0000)] 
Do not allow bound parameters in the ON CONFLICT clause of an UPSERT.
dbsqlfuzz 9983e2c77634a8ccf33b5c91fa9982599de5f9e9

FossilOrigin-Name: 3c06709335eb4b98e3a684e3ebbae69eeb6a21b452bce29159c82bb632d6a042

2 years agoFix an error in documentation comments in fts5.h.
dan [Thu, 17 Aug 2023 16:59:35 +0000 (16:59 +0000)] 
Fix an error in documentation comments in fts5.h.

FossilOrigin-Name: 24d96bd65d8ccdd50a6f4fe217d196728a2f8658d128f9352c287f64e034104a

2 years agoAdd extra test to fts5synonym2.test.
dan [Thu, 17 Aug 2023 16:49:06 +0000 (16:49 +0000)] 
Add extra test to fts5synonym2.test.

FossilOrigin-Name: 39ea11be3b35c5ecde9bc0fe66af673b8f440dc523422887d05a29feef036b01

2 years agoAdd "Windows-Sanitize" configuration to "testrunner.tcl release" tests on windows.
dan [Thu, 17 Aug 2023 16:06:17 +0000 (16:06 +0000)] 
Add "Windows-Sanitize" configuration to "testrunner.tcl release" tests on windows.

FossilOrigin-Name: e68b46dc6aff48c81a2a5e7662d0f694615b64aa50bcfee9a0b8b25fa4e5f33d

2 years agoHave all test names in json101.test start with "json101".
dan [Thu, 17 Aug 2023 15:14:43 +0000 (15:14 +0000)] 
Have all test names in json101.test start with "json101".

FossilOrigin-Name: af56d7b6b9c50f2541a51fcb7d94b89aafba4f343a9103b21a15aad3f283c63e

2 years agoEnable address sanitizer in Makefile.msc by adding the ASAN=1 argument on
drh [Thu, 17 Aug 2023 15:11:59 +0000 (15:11 +0000)] 
Enable address sanitizer in Makefile.msc by adding the ASAN=1 argument on
the nmake command line.

FossilOrigin-Name: 3eaadaff85111103c9441a9d6cd31291b95db9f3a6ec7003e0ff4ce5db7490da

2 years agoFix a possible UAF in SEH if an exception occurs at an inopportune moment
drh [Thu, 17 Aug 2023 14:19:44 +0000 (14:19 +0000)] 
Fix a possible UAF in SEH if an exception occurs at an inopportune moment
during WAL processing.

FossilOrigin-Name: 91b91037e348fa10cf6a9d8a0ffbfdebb4a40e0e336b65b112ed1c828e75cda7

2 years agoTighten up the JNI auto-ext handling.
stephan [Thu, 17 Aug 2023 13:13:22 +0000 (13:13 +0000)] 
Tighten up the JNI auto-ext handling.

FossilOrigin-Name: c09c8d05a20d916a9d9304eeea723ef7666a862a9e53f5feeeb1b03f9153d4b2

2 years agoMinor internal JNI cleanups and fixes.
stephan [Thu, 17 Aug 2023 12:44:52 +0000 (12:44 +0000)] 
Minor internal JNI cleanups and fixes.

FossilOrigin-Name: 0e9437de026cbfb333b90bb3400f1c015f85d49d73a25ad1000623216b88bfa0

2 years agoRemove the FIXME markers related to threading. Code style cleanups.
stephan [Thu, 17 Aug 2023 10:49:06 +0000 (10:49 +0000)] 
Remove the FIXME markers related to threading. Code style cleanups.

FossilOrigin-Name: 154ab26dc6ba2d1fd976e8fe6dc1b1a06c734f7e9a276a3edc5c2f30b0d6d36a

2 years agoRefinements to instructions on compiling for Windows.
drh [Wed, 16 Aug 2023 17:23:42 +0000 (17:23 +0000)] 
Refinements to instructions on compiling for Windows.

FossilOrigin-Name: d543c36c35f71c5f0a7ebf6f496feca40d16566d0c5b2c2ba205ff43437ffcd1

2 years agoImproved instructions on how to build SQLite on Windows 11 and similar.
drh [Wed, 16 Aug 2023 17:12:26 +0000 (17:12 +0000)] 
Improved instructions on how to build SQLite on Windows 11 and similar.

FossilOrigin-Name: 0f6b2b33736ee07f17f3a4e5f077bb4d0e2481c8f81251b8ce6b78510f372237

2 years agoMake sqlite3_stmt_explain() accessible to loadable extensions.
drh [Wed, 16 Aug 2023 15:27:49 +0000 (15:27 +0000)] 
Make sqlite3_stmt_explain() accessible to loadable extensions.

FossilOrigin-Name: a237a31ff4a7cd3dc744af1e1ebb9466e42eebafa31c1b5c0027cbaee9babc9b

2 years agoMix the current process ID into the randomness used for generating
drh [Wed, 16 Aug 2023 15:10:07 +0000 (15:10 +0000)] 
Mix the current process ID into the randomness used for generating
temporary filenames on Windows.

FossilOrigin-Name: 775a36ee093df4b5f7529a43eeaee9d5a9a943ad5ed8ae03bc74e459e87ba438

2 years agoUpdate testrunner.tcl to use environment variable %NUMBER_OF_PROCESSES% when running...
dan [Wed, 16 Aug 2023 14:18:53 +0000 (14:18 +0000)] 
Update testrunner.tcl to use environment variable %NUMBER_OF_PROCESSES% when running under tclsh on windows. Also modify the internal database schema used by testrunner.tcl to be compatible with old versions of SQLite.

FossilOrigin-Name: 6542ed3b9e028c44aca504eadca843ee9b2ba08f5f650523238dd1253f7e221b

2 years agoFix test script problem preventing veryquick.test from running.
dan [Wed, 16 Aug 2023 13:55:38 +0000 (13:55 +0000)] 
Fix test script problem preventing veryquick.test from running.

FossilOrigin-Name: e73886574042108eb31641d0820c273c10b83fbf08ac6cb52d3e4c27830e2c23

2 years agoCherrypick [00ac653562a6] to remove stray JNI debug output. No functional changes.
stephan [Tue, 15 Aug 2023 21:44:22 +0000 (21:44 +0000)] 
Cherrypick [00ac653562a6] to remove stray JNI debug output. No functional changes.

FossilOrigin-Name: e12d70f38c0ed5c0abf9a1e30ce4db59a4426e1e8cb1f8f07834fc1bedfcc65a

2 years agoCherrypick [653ed92dc391] (went to wrong branch). Doc change only, no code changes.
stephan [Tue, 15 Aug 2023 20:57:42 +0000 (20:57 +0000)] 
Cherrypick [653ed92dc391] (went to wrong branch). Doc change only, no code changes.

FossilOrigin-Name: 79a14457f0067814e7c33de709e2f9e19ab880d3eebbcb6f9fcce52a4720ecac

2 years agoUpdate testrunner.tcl to make it easier to add things like mdevtest.
dan [Tue, 15 Aug 2023 18:52:25 +0000 (18:52 +0000)] 
Update testrunner.tcl to make it easier to add things like mdevtest.

FossilOrigin-Name: a531b71c4fd64fff6008876af825107ebc403f80dcb95273a05936ff6587b7aa

2 years agoImprove the portability of the src-verify.c tool on Windows.
drh [Tue, 15 Aug 2023 18:08:14 +0000 (18:08 +0000)] 
Improve the portability of the src-verify.c tool on Windows.

FossilOrigin-Name: 4068d94acd042a0a9887fba8ba38fa94c6f41a6d3c7a61d5514a57f613b3d278

2 years agoFix problems in fts5 test code.
dan [Tue, 15 Aug 2023 14:53:49 +0000 (14:53 +0000)] 
Fix problems in fts5 test code.

FossilOrigin-Name: c16ed3b1cc7b4c21bfa96062bf9028ae071c89e63df3b444b59f1753594e4e94

2 years agoUse a dodgy substitute if the INFINITY macro is not available. See
drh [Tue, 15 Aug 2023 12:27:27 +0000 (12:27 +0000)] 
Use a dodgy substitute if the INFINITY macro is not available. See
[forum:/forumpost/8e66e19bb9|forumpost 8e66e19bb9].

FossilOrigin-Name: 4ae72c896761df5cd37c98ca3eeee7d4c6af3e4ccf74edd88ff902ef38f0765b

2 years agoFix the PRAGMA case_sensitive_like command so that the LIKE function continues
drh [Tue, 15 Aug 2023 11:58:22 +0000 (11:58 +0000)] 
Fix the PRAGMA case_sensitive_like command so that the LIKE function continues
to be innocuous after the PRAGMA.
[forum:/forumpost/925dc9f67804c540|Forum post 925dc9f67804c540].

FossilOrigin-Name: 84c268c34cba7207a90dad2a8e972ce90c85304e91f4933c76963822ad1ae48b

2 years agoFix an off-by-one error causing a buffer overread in test2.c.
dan [Tue, 15 Aug 2023 10:57:08 +0000 (10:57 +0000)] 
Fix an off-by-one error causing a buffer overread in test2.c.

FossilOrigin-Name: e1edf95ecc8f6840fd62abe83121fddeab7413c316b2e20b60fd3b2c8fdd4dca

2 years agoMinor reshaping of Tester1 moving towards making a multi-threaded run mode.
stephan [Tue, 15 Aug 2023 09:26:47 +0000 (09:26 +0000)] 
Minor reshaping of Tester1 moving towards making a multi-threaded run mode.

FossilOrigin-Name: f104c14c26c123ee78c09fc1bc59efb8668dc624da05c1d8dbeaf3c9dd02a393

2 years agoFix the autoconf makefile for the CLI such that it disables double-quoted
drh [Mon, 14 Aug 2023 19:10:48 +0000 (19:10 +0000)] 
Fix the autoconf makefile for the CLI such that it disables double-quoted
strings by default, as all other builds of the CLI do.
[forum:/forumpost/9794b6aaa5|forum post 9794b6aaa5].

FossilOrigin-Name: 85fd4f0ef41a883448f16d55b7f8bd5c7b1d9c89a3d7d9bcae9c2744ed843099

2 years agoFix a problem in sqlite3_snapshot_recover() introduced by the [8a6b0c24937e855b]...
dan [Mon, 14 Aug 2023 18:21:56 +0000 (18:21 +0000)] 
Fix a problem in sqlite3_snapshot_recover() introduced by the [8a6b0c24937e855b] merge.

FossilOrigin-Name: c2577eb0a4a627c65d675f1446514843486092be9cb271b682793a0107e496cd

2 years agoBring handling of the Java auto-ext handler more in line with the core in terms of...
stephan [Mon, 14 Aug 2023 17:12:55 +0000 (17:12 +0000)] 
Bring handling of the Java auto-ext handler more in line with the core in terms of locking and mutability during traversal. This removes the explicit synchronous requirement from the Java open() and auto-ext bindings.

FossilOrigin-Name: 42994b952e092ae4fa319395208622e887387ca3ff8ac57961c824a6c272bf0e

2 years agoChange the name of the ".binary" command in the CLI to ".crnl". The sense of
drh [Mon, 14 Aug 2023 13:33:19 +0000 (13:33 +0000)] 
Change the name of the ".binary" command in the CLI to ".crnl".  The sense of
the setting is inverted.  The original ".binary" still works for backwards
compatibility but is now undocumented.  ".crnl" is also undocumented on machines
where it is a no-op (all machines other than Windows).
[forum:/forumpost/8bd0b0fbdbc12477|forum thread 8bd0b0fbdbc12477]

FossilOrigin-Name: 544de2da09cd7b9bbb6cb4c52bb22325ace3391fca00c6a43847bfc158032b66

2 years agoMore work on the JNI-specific mutexes. Rework the NativePointerHolder cache lookup...
stephan [Mon, 14 Aug 2023 13:27:40 +0000 (13:27 +0000)] 
More work on the JNI-specific mutexes. Rework the NativePointerHolder cache lookup to be slightly simpler and O(1) instead of O(N).

FossilOrigin-Name: c84ded0e59aea4861d72b53b4b40cf580747c0f6ca58c334a996f1a825276cb5

2 years agoFix harmless compiler warnings reported by MSVC.
drh [Mon, 14 Aug 2023 12:20:44 +0000 (12:20 +0000)] 
Fix harmless compiler warnings reported by MSVC.

FossilOrigin-Name: 391e21bb6e0b2f4632972b6617a3a18192f88deb29eee5bc060846468e624b21

2 years agoEnable SEH be default in Windows builds.
drh [Mon, 14 Aug 2023 12:05:38 +0000 (12:05 +0000)] 
Enable SEH be default in Windows builds.

FossilOrigin-Name: faae792fd5db7afeb7e4345d96f14c8986ea9a3cd4764ddee71314bfca36ac71

2 years agoJNI-internal docs and removal of obsolete code.
stephan [Mon, 14 Aug 2023 08:28:46 +0000 (08:28 +0000)] 
JNI-internal docs and removal of obsolete code.

FossilOrigin-Name: b62d93258b6a661f3a9b61468b3b641c14faf2d2196f78aca95fe14de43c9444

2 years agoInternal API renaming for clarity's sake.
stephan [Sun, 13 Aug 2023 20:58:12 +0000 (20:58 +0000)] 
Internal API renaming for clarity's sake.

FossilOrigin-Name: 911e4fc5aaf9478214095a65f74af3ebca883922c36cf7a8d911116c42cf9de8

2 years agoAdd a mutex for auto-extensions, tied in to the open() process since that's the route...
stephan [Sun, 13 Aug 2023 12:40:27 +0000 (12:40 +0000)] 
Add a mutex for auto-extensions, tied in to the open() process since that's the route into auto-extensions.

FossilOrigin-Name: 8da97e0db4eeacf91aa6fd909fd7cb73b050d194dfc7739a502b55f7eca6d7b1

2 years agoAdd some docs and metrics for the new mutex internals.
stephan [Sun, 13 Aug 2023 10:28:35 +0000 (10:28 +0000)] 
Add some docs and metrics for the new mutex internals.

FossilOrigin-Name: 33d1780b43182d2574adbc1928707af825c485c99762738e58bc6d7c6c52ac6a

2 years agoRemove SQLITE_DEBUG from JNI build.
stephan [Sun, 13 Aug 2023 10:22:15 +0000 (10:22 +0000)] 
Remove SQLITE_DEBUG from JNI build.

FossilOrigin-Name: 82f004cf7408c503c5787b46c7b13ceb0a20a3ad1d4f69d56127772c40e214a1

2 years agoAn initial attempt at protecting the JNI global state via mutexes at the C level...
stephan [Sun, 13 Aug 2023 09:53:27 +0000 (09:53 +0000)] 
An initial attempt at protecting the JNI global state via mutexes at the C level instead of relying on Java's synchronized keyword. It seems to work but increases the run time of the single-threaded batch tester by roughly 3 times.

FossilOrigin-Name: c64e6a52ac79164be37fe643a4a39bd187af198a379410def8b8419f7c2224d4

2 years agoBind sqlite3_interrupt() and sqlite3_is_interrupted() to JNI but with caveats regardi...
stephan [Sat, 12 Aug 2023 23:47:58 +0000 (23:47 +0000)] 
Bind sqlite3_interrupt() and sqlite3_is_interrupted() to JNI but with caveats regarding mutexing of the JNIEnv cache. Add a loud warning to the JNI 'dist' target that it should be built with JDK8 (a.k.a. Java 1.8) for compatibility reasons.

FossilOrigin-Name: fbf99a2423dd20e4544bdeea85f714e9368ce3b92fefe97efb39a0fb4a557abe

2 years agoMerge the Java Native Interface (JNI) binding into trunk.
stephan [Sat, 12 Aug 2023 21:39:18 +0000 (21:39 +0000)] 
Merge the Java Native Interface (JNI) binding into trunk.

FossilOrigin-Name: 48b13edcec6935bf125b265b41a3e6f7b2407afff89d5b4daa2939e3c5679ca0

2 years agoUpdate wasm's push-testing rule to exclude files which were recently removed from...
stephan [Sat, 12 Aug 2023 21:08:41 +0000 (21:08 +0000)] 
Update wasm's push-testing rule to exclude files which were recently removed from the build.

FossilOrigin-Name: 0a6930a7ff8f8c6ca244d1d654532f3d2a02d77ef67c6cae0c53092743d59ea6

2 years agoCorrect JNI .jar rules to only include *.java/class files, not *.* (*~ files). jni
stephan [Sat, 12 Aug 2023 20:50:29 +0000 (20:50 +0000)] 
Correct JNI .jar rules to only include *.java/class files, not *.* (*~ files).

FossilOrigin-Name: 1ba7754045a009d9c94b23ac76b9bb8d9c9cb24d42dcdf1203ee75ac85765d3e

2 years agoFix the mdevtest target so that it works with msvc.
dan [Sat, 12 Aug 2023 19:58:47 +0000 (19:58 +0000)] 
Fix the mdevtest target so that it works with msvc.

FossilOrigin-Name: 01f49448cd0cfe3af499aedfe887b7b0be4f1ab09cd5a16119ddafb32b107708

2 years agoFix testrunner.tcl so that it restarts itself using [testfixture] if its current...
dan [Sat, 12 Aug 2023 19:25:26 +0000 (19:25 +0000)] 
Fix testrunner.tcl so that it restarts itself using [testfixture] if its current interpreter does not support [package require sqlite3].

FossilOrigin-Name: 408be98dddf500f2d6c9049703997836d80d156d86cf297f664175a107f7331e

2 years agoHave the mdevtest target support the OPTS variable on unix.
dan [Sat, 12 Aug 2023 18:23:38 +0000 (18:23 +0000)] 
Have the mdevtest target support the OPTS variable on unix.

FossilOrigin-Name: 940f58d9b944d3344b40a4bc020842d9b6703685c9c51f4010e265afd98608ff

2 years agoAdd "mdevtest" target to makefiles. Equivalent to running "devtest" on both debug...
dan [Sat, 12 Aug 2023 17:36:57 +0000 (17:36 +0000)] 
Add "mdevtest" target to makefiles. Equivalent to running "devtest" on both debug and non-debug builds.

FossilOrigin-Name: af354fbc0be06d5792a1e712ec4e9cec4c6cb4521335aa31f8f51ca5c94499ae

2 years agoMore JNI docs.
stephan [Sat, 12 Aug 2023 15:37:53 +0000 (15:37 +0000)] 
More JNI docs.

FossilOrigin-Name: 290028d3ca5638f3bb18a0b243c7ba3c31c8a2b1a837c36ec29e0fc4ed6533f0

2 years agoFurther simplifications in the interface of the OutputPointer family of Java classes.
stephan [Sat, 12 Aug 2023 15:09:09 +0000 (15:09 +0000)] 
Further simplifications in the interface of the OutputPointer family of Java classes.

FossilOrigin-Name: 962c3e0de2d64ab8a2bcf1a19f9c4224df3d15a41ac9f9b29da685be95c4ef7a

2 years agoTweaks and docs for the OutputPointer family of Java classes.
stephan [Sat, 12 Aug 2023 10:39:26 +0000 (10:39 +0000)] 
Tweaks and docs for the OutputPointer family of Java classes.

FossilOrigin-Name: 265c8fd0d4d425054f6bf7e9cb607ad2e0e46189f16c3014f7fdf9b650085497

2 years agoBind sqlite3_db_status() to JNI.
stephan [Sat, 12 Aug 2023 10:27:08 +0000 (10:27 +0000)] 
Bind sqlite3_db_status() to JNI.

FossilOrigin-Name: b79477a0af94127b0638a8822de01156bef855a7e167f678809e1c978e1a0c3e

2 years agoBind sqlite3_status(64)() to JNI.
stephan [Sat, 12 Aug 2023 10:06:59 +0000 (10:06 +0000)] 
Bind sqlite3_status(64)() to JNI.

FossilOrigin-Name: cefb6614e65ca1764ec72702f92f801382e63aa9b221fc9c68719d497e7499fd

2 years agoModernize the sqlite3 shell man page a bit, per [forum:d9aa201dee553bb2|forum request].
stephan [Fri, 11 Aug 2023 22:40:06 +0000 (22:40 +0000)] 
Modernize the sqlite3 shell man page a bit, per [forum:d9aa201dee553bb2|forum request].

FossilOrigin-Name: 3bc0693c4633f545f09dbee702e25354504b20836373a068447e6c61cb2ebd79

2 years agoAdd timing info to SQLTester.
stephan [Fri, 11 Aug 2023 21:25:33 +0000 (21:25 +0000)] 
Add timing info to SQLTester.

FossilOrigin-Name: b69b5facbf94e03e74d4a739ab85c5baac1c9ecbea8c330b2135d77e525b5d8a

2 years agoMerge trunk into jni branch.
stephan [Fri, 11 Aug 2023 21:24:08 +0000 (21:24 +0000)] 
Merge trunk into jni branch.

FossilOrigin-Name: 4f0aeeba0287e846908180eab6f7080ebe1323ebe49340771864d110e1ca5b2b

2 years agoFix a makefile deps problem which caused ext/jni build to fail if sqlite3.c/h were...
stephan [Fri, 11 Aug 2023 20:32:40 +0000 (20:32 +0000)] 
Fix a makefile deps problem which caused ext/jni build to fail if sqlite3.c/h were not created beforehand.

FossilOrigin-Name: 101de670774f63757180282763730aa53e70198bd7a674c27e6044632d39d22a

2 years agoIf SQLITE_USE_SEH is defined, handle structured-exceptions thrown by MSVC builds...
dan [Fri, 11 Aug 2023 19:31:51 +0000 (19:31 +0000)] 
If SQLITE_USE_SEH is defined, handle structured-exceptions thrown by MSVC builds if the *-shm file mapping is accessed after it becomes invalid for some reason.

FossilOrigin-Name: 8a6b0c24937e855b710f97b4aea973eff53e6d43e1182842731547aa4b37db2a

2 years agoMinor SQLTester test tweaks and have 'make tester' include the out-of-tree tests...
stephan [Fri, 11 Aug 2023 18:59:57 +0000 (18:59 +0000)] 
Minor SQLTester test tweaks and have 'make tester' include the out-of-tree tests if they are found.

FossilOrigin-Name: 6c8538d83495ce65dbd7417263b3b06dbbb2a649e9a61a743911944599d75ffc

2 years agoBind sqlite3_sql() and sqlite3_expanded_sql() to JNI. Start marking C-side functions...
stephan [Fri, 11 Aug 2023 18:04:53 +0000 (18:04 +0000)] 
Bind sqlite3_sql() and sqlite3_expanded_sql() to JNI. Start marking C-side functions which would need explicit mutex support if we remove 'synchronized' from their Java entry points (but there are many more left to mark).

FossilOrigin-Name: c7fb32d1ef30d34449c3289c384ce33317c770927534af20d4b96fa385da40bc

2 years agoAdd a doc link for the new sqlite3_js_posix_create_file().
stephan [Fri, 11 Aug 2023 17:45:23 +0000 (17:45 +0000)] 
Add a doc link for the new sqlite3_js_posix_create_file().

FossilOrigin-Name: 0d7aac45b8e7078cc80757e12d6f0b2584f2b0b184dacc2348ad3519978e5bf9

2 years agoAdd sqlite3.capi.sqlite3_js_posix_create_file() and oo1.OpfsDb.importDb() as alternat...
stephan [Fri, 11 Aug 2023 17:38:17 +0000 (17:38 +0000)] 
Add sqlite3.capi.sqlite3_js_posix_create_file() and oo1.OpfsDb.importDb() as alternatives for the newly-deprecated sqlite3_js_vfs_create_file().

FossilOrigin-Name: da6eaf8d8258f3e2c8633fd7faf4e90c3307b5c60bd8b69c626b3c82b19dbdef

2 years agoDeprecate sqlite3_js_vfs_create_file() because, it was discovered today, its out...
stephan [Fri, 11 Aug 2023 14:31:20 +0000 (14:31 +0000)] 
Deprecate sqlite3_js_vfs_create_file() because, it was discovered today, its out-of-scope use of the sqlite3_vfs, sqlite3_file, and sqlite3_io_methods APIs triggers unresolvable assertions in the core when built with SQLITE_DEBUG.

FossilOrigin-Name: f3647a3ac8eca8c821b0b1e403da7bfb0feabd0eb5ee83709cd4956dfc56a492

2 years agoProvide the -DSQLITE_LEGACY_JSON_VALID compile-time option to restore the
drh [Fri, 11 Aug 2023 11:30:43 +0000 (11:30 +0000)] 
Provide the -DSQLITE_LEGACY_JSON_VALID compile-time option to restore the
(incorrect) legacy behavior of json_valid(NULL).

FossilOrigin-Name: 00bc9f1b573d683829bf5eb301606c38d6a60fba957d8edaf59116c02cc650bf

2 years agoFix bug in the test case for the previous check-in. legacy-json-valid
drh [Fri, 11 Aug 2023 11:24:44 +0000 (11:24 +0000)] 
Fix bug in the test case for the previous check-in.

FossilOrigin-Name: c5daae88612607aa7a8b13b021cf586fc66e8bcd1fa9d948a860c881b7247761

2 years agoUp until version 3.42.0, there was a bug in json_valid() such that it would
drh [Fri, 11 Aug 2023 11:12:46 +0000 (11:12 +0000)] 
Up until version 3.42.0, there was a bug in json_valid() such that it would
return False (0) for a NULL input.  That bug is fixed in 3.42.0.  This
check-in adds a compile-time option -DSQLITE_LEGACY_JSON_VALID that restores
the old buggy behavior for applications that depend on it.

FossilOrigin-Name: 15c2eadbff8e732cca45d6c3771d1fcea5aab2127e87f2a611b41ccfef4d1a0d

2 years agoMark _all_ JNI binding funcs as synchronized so that Java can lock them and protect...
stephan [Thu, 10 Aug 2023 21:50:52 +0000 (21:50 +0000)] 
Mark _all_ JNI binding funcs as synchronized so that Java can lock them and protect our global-state access. The alternative is writing a mountain of C-side code to do the same thing.

FossilOrigin-Name: afe190a940441de9bef8835c2dc6d278f861a772c3b7c7a2d399b2eabd4872e3

2 years agoWork around jdk8 and jdk19 mangling the C name of sqlite3_db_config() differently...
stephan [Thu, 10 Aug 2023 21:29:59 +0000 (21:29 +0000)] 
Work around jdk8 and jdk19 mangling the C name of sqlite3_db_config() differently. Correct the variadic arg handling of the JNI-side subset of sqlite3_db_config() options.

FossilOrigin-Name: 746894c3c043c47f8b4c231de8921df81c5d0634260d299359bea73132dc7867

2 years agoAdd a working dist zip file for the JNI bits.
stephan [Thu, 10 Aug 2023 20:52:14 +0000 (20:52 +0000)] 
Add a working dist zip file for the JNI bits.

FossilOrigin-Name: d6a4d212ceba662470d8957b6a8d7075d18a84bd0d3e13ce7adcab03604fc3b7

2 years agoInitial pass at 'make dist' rules for the JNI bundle, but they still need a bare...
stephan [Thu, 10 Aug 2023 18:57:37 +0000 (18:57 +0000)] 
Initial pass at 'make dist' rules for the JNI bundle, but they still need a bare-bones, posix-make-compatible makefile to include in the bundle.

FossilOrigin-Name: ff54e66a4d43f2f0f8b25ded970779e6760865a05346e09b39607bb035b02bd7

2 years agoNew testcase() macro in the tokenizer, to better document its behavior.
drh [Thu, 10 Aug 2023 18:50:00 +0000 (18:50 +0000)] 
New testcase() macro in the tokenizer, to better document its behavior.

FossilOrigin-Name: b2fdac0b151864eb2aa79f0b0ee60f9c6d9f3eb8c7626605eac17a02a8cf59bc