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

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

FossilOrigin-Name: 290028d3ca5638f3bb18a0b243c7ba3c31c8a2b1a837c36ec29e0fc4ed6533f0

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

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

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

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

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

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

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

2 years agoMerge trunk into jni branch for the newly-relocated version-info tool.
stephan [Thu, 10 Aug 2023 17:39:26 +0000 (17:39 +0000)] 
Merge trunk into jni branch for the newly-relocated version-info tool.

FossilOrigin-Name: cc8e8cba67c0dcfb9b416041a19456cf5248d909f3efb6fee707a5950be4f374

2 years agoMove ext/wasm/version-info.c to tool/ for re-use in build other dist bundles.
stephan [Thu, 10 Aug 2023 17:32:37 +0000 (17:32 +0000)] 
Move ext/wasm/version-info.c to tool/ for re-use in build other dist bundles.

FossilOrigin-Name: 4b0871fd367b6d9706e892aa13f64604967f5e3ba92381960f73aeabd3d23f84

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

FossilOrigin-Name: 3ed89c344fcb3b7ee8b764d95144643e42e053e1116150d6eda8355fbd6669df

2 years agoAdd SQLTester --keep-going flag to allow it to continue to the next script after...
stephan [Thu, 10 Aug 2023 16:42:22 +0000 (16:42 +0000)] 
Add SQLTester --keep-going flag to allow it to continue to the next script after an error.

FossilOrigin-Name: 4d635f781b55ed9011bdf07ee6bed2d004b1c2ebba76aa110e26d8fe3152a733

2 years agoDocument that auto-extensions registered via JNI will fail if they open a db (to...
stephan [Thu, 10 Aug 2023 13:10:25 +0000 (13:10 +0000)] 
Document that auto-extensions registered via JNI will fail if they open a db (to avoid triggering an endless loop in the auto-extensions). Discover the hard way that JDKv19 creates different mangled JNI names for some functions than JDKv8. Start reformatting much of the JNI API decls in prep for making them even longer.

FossilOrigin-Name: 99c0941f1c006622932a9cca12661f354f363a6c8a2b5675ea66149e0a9eb927

2 years agoResolve two assertions in the auto-extension JNI which were triggered via new SQLTest...
stephan [Thu, 10 Aug 2023 12:36:40 +0000 (12:36 +0000)] 
Resolve two assertions in the auto-extension JNI which were triggered via new SQLTester infrastructure. Move SQLTester's db-init SQL injection into an auto-extension.

FossilOrigin-Name: 2952906c30bc2b7987f2c39837d56bd121f5817dc094e6ccdb6d4eea5e9b8d17

2 years agoMake test completion status more visible at a glance on modern terminals.
stephan [Thu, 10 Aug 2023 11:15:20 +0000 (11:15 +0000)] 
Make test completion status more visible at a glance on modern terminals.

FossilOrigin-Name: a4e96c306c4c270f417243e7923d7e6c4f860528dd67990dfd8d9768a6c4873f

2 years agoDisable REQUIRED_PROPERTIES handling in SQLTester, per /chat. Scripts with that direc...
stephan [Thu, 10 Aug 2023 11:04:46 +0000 (11:04 +0000)] 
Disable REQUIRED_PROPERTIES handling in SQLTester, per /chat. Scripts with that directive are now skipped.

FossilOrigin-Name: ddc534cb25b59faf18a860a51f2dd41a1a73963aeb541b9553301fe784608393

2 years agoAdd a visual indicator (emoji) to TestScript verbose messages, dependent on the messa...
stephan [Thu, 10 Aug 2023 10:58:55 +0000 (10:58 +0000)] 
Add a visual indicator (emoji) to TestScript verbose messages, dependent on the message's level of verbosity.

FossilOrigin-Name: dc323d3894f2d53470cd8be261632267fa3d2af73500acfa1e9adbfa53b771fd

2 years agoAdd the current --testcase name to SQLTester --verbose output.
stephan [Thu, 10 Aug 2023 10:44:53 +0000 (10:44 +0000)] 
Add the current --testcase name to SQLTester --verbose output.

FossilOrigin-Name: f87367402b25adf30f35ab75aa5efc495230d4a83f2fc10b99734c3f3f593840

2 years agoMore SQLTester docs. Add --verbosity command to help zoom in on script areas while...
stephan [Thu, 10 Aug 2023 10:34:50 +0000 (10:34 +0000)] 
More SQLTester docs. Add --verbosity command to help zoom in on script areas while debugging. Spice up test-start/end output with some emoji.

FossilOrigin-Name: 8dd08021496f504c23945ecc2bbe1e4a13109fdd03457ca6269b4cb1cc4cd04c

2 years agoGive DbException the option of closing the db to simplify error handling in one case.
stephan [Thu, 10 Aug 2023 05:25:13 +0000 (05:25 +0000)] 
Give DbException the option of closing the db to simplify error handling in one case.

FossilOrigin-Name: 908c9a44505422a3a15bef3a174d8b931863bc9c74485311a0e62cfec30087bd

2 years agoInitial version of REQUIRED_PROPERTIES support for SQLTester, with TEMPSTORE_(FILE...
stephan [Thu, 10 Aug 2023 05:14:22 +0000 (05:14 +0000)] 
Initial version of REQUIRED_PROPERTIES support for SQLTester, with TEMPSTORE_(FILE/MEM) and RECURSIVE_TRIGGERS options.

FossilOrigin-Name: 48d16c9d2fe5f54b09004b4f09759c4e2ad247ae84130feb557951e32f48976a

2 years agoGeneric cleanups and fixes in SQLTester.
stephan [Thu, 10 Aug 2023 04:24:12 +0000 (04:24 +0000)] 
Generic cleanups and fixes in SQLTester.

FossilOrigin-Name: fc5d3cc30d2b96da42ea10dfb39f1631ff93b8384514fffd641b343df51da2a6

2 years agoChange the SQLite3Jni API annotations to use SOURCE retention (used only at compile...
stephan [Thu, 10 Aug 2023 02:09:12 +0000 (02:09 +0000)] 
Change the SQLite3Jni API annotations to use SOURCE retention (used only at compile-time).

FossilOrigin-Name: 3c3fea6bf284721ac376e2ab5a757cf30245dd39264aaf98a8d6cd5575484275

2 years agoMove all of the SQLTester code into a single file, since it's only got 1 public class...
stephan [Thu, 10 Aug 2023 01:44:48 +0000 (01:44 +0000)] 
Move all of the SQLTester code into a single file, since it's only got 1 public class. Remove 'public' from many methods which don't need it. Add more documentation to it.

FossilOrigin-Name: 2815d676951abdab674c374fd903486ea5796f8ee4cb338d41f19693419f8471

2 years agoDefer static JNI-side init of SQLTester until main() is called so that its auto-exten...
stephan [Thu, 10 Aug 2023 01:19:40 +0000 (01:19 +0000)] 
Defer static JNI-side init of SQLTester until main() is called so that its auto-extensions do not leak over to clients of the main library.

FossilOrigin-Name: e461fdd53bd3212bee24ec5f5d5c234011ab30f3f67e115de9f85fdb760e3848

2 years agoMerge trunk into jni branch.
stephan [Thu, 10 Aug 2023 01:05:28 +0000 (01:05 +0000)] 
Merge trunk into jni branch.

FossilOrigin-Name: 52fa6f78414c41073431c166550806bb8a835bd38cfc1236c9363784c78b81b9

2 years agoTreat all args to --glob as a single glob.
stephan [Thu, 10 Aug 2023 01:03:19 +0000 (01:03 +0000)] 
Treat all args to --glob as a single glob.

FossilOrigin-Name: 4737bd345732e34cabbf90821e007d3027e68d6583c2e05e1e8bf5920373a6dc

2 years agoRemove --print's ability to read ahead.
stephan [Thu, 10 Aug 2023 00:58:48 +0000 (00:58 +0000)] 
Remove --print's ability to read ahead.

FossilOrigin-Name: 15cfee972bcbd857d18ea626c9a9da64b2a445516946f3dd83c75a4f6b8a92fa

2 years agoReplace the SQLTester infrastructure with a line-oriented, non-regex-heavy parser...
stephan [Thu, 10 Aug 2023 00:34:38 +0000 (00:34 +0000)] 
Replace the SQLTester infrastructure with a line-oriented, non-regex-heavy parser. Add --column-names command.

FossilOrigin-Name: 88863908ee2059c2d18a095cbd91f41674c7b0d0a8864ec21715a5317054df4d

2 years agoPort the SQLTester 'v1' commands to the 'v2' evaluation bits. Still TODO is swapping...
stephan [Wed, 9 Aug 2023 23:47:14 +0000 (23:47 +0000)] 
Port the SQLTester 'v1' commands to the 'v2' evaluation bits. Still TODO is swapping out v1 with these separate impls.

FossilOrigin-Name: 0cf57e5b0f90779e450e9db1ca009610df5e6f4487337d49017636bde3bb02d6

2 years agoCorrect REQUIRED_PROPERTIES handling to not fail if there are no properties.
stephan [Wed, 9 Aug 2023 22:30:10 +0000 (22:30 +0000)] 
Correct REQUIRED_PROPERTIES handling to not fail if there are no properties.

FossilOrigin-Name: 7a19bef4f572a90fb7896b9360f9c72b052955ca9b0549be870b2b245c1f1b2b

2 years agoMore for the SQLTester rework. Can read input and dispatch commands, but only --print...
stephan [Wed, 9 Aug 2023 22:18:22 +0000 (22:18 +0000)] 
More for the SQLTester rework. Can read input and dispatch commands, but only --print is currently implemented.

FossilOrigin-Name: 4fa2ad33edbcef393dd98dbf90586ad8f32ec0beab02f197c8038a44be86c314

2 years agoInitial sketches of a line-by-line parser for SQLTester to overcome its compatibility...
stephan [Wed, 9 Aug 2023 19:51:39 +0000 (19:51 +0000)] 
Initial sketches of a line-by-line parser for SQLTester to overcome its compatibility shortcomings. Far from complete.

FossilOrigin-Name: 43534cd042499c1bef44ca5c4a8305a710d99e70e8b0adce6df50c6a1f0402b9

2 years agoAdapt TestScript to skip REQUIRED_PROPERTIES, per [7a07863e082664da], and improve...
stephan [Wed, 9 Aug 2023 18:25:50 +0000 (18:25 +0000)] 
Adapt TestScript to skip REQUIRED_PROPERTIES, per [7a07863e082664da], and improve a couple of adject reasons-for-skipping messages.

FossilOrigin-Name: f937097e9b22a6c78c242cbf00c71bdc57f04b1b9a15ae24058bc2813c99688c

2 years agoAdd an extra constraint to the test-script-interpreter.md spec.
drh [Wed, 9 Aug 2023 17:47:34 +0000 (17:47 +0000)] 
Add an extra constraint to the test-script-interpreter.md spec.

FossilOrigin-Name: 7a07863e082664da2efcf4ecd36785d2583abbda12526cdb643cf1aa0568292e

2 years agoSQLTester --result command: do not double-{}-wrap error messages and do not throw...
stephan [Wed, 9 Aug 2023 17:23:52 +0000 (17:23 +0000)] 
SQLTester --result command: do not double-{}-wrap error messages and do not throw on db error.

FossilOrigin-Name: f7be20f5a62f8970f957e5c3a1d1c6536995df5c078dbac34a44f09682e43945

2 years agoMove the test command body's trim() back into the TestScript class (to simplify Comma...
stephan [Wed, 9 Aug 2023 17:04:58 +0000 (17:04 +0000)] 
Move the test command body's trim() back into the TestScript class (to simplify Command-level code) but do it after double-verbose has had the chance to emit it as-is (so that debug output is not mangled by the trim).

FossilOrigin-Name: f15ecb68f7ca129478336b462508d2c40ea052b4040facefdbc67b13e6aea99d

2 years agoTweak the SQLTester --verbose and double-verbose output a bit for legibility.
stephan [Wed, 9 Aug 2023 16:56:42 +0000 (16:56 +0000)] 
Tweak the SQLTester --verbose and double-verbose output a bit for legibility.

FossilOrigin-Name: 46b79afaafda40cb1f920cc96600adf11e8c688184c9559a08eb86776ccf3663

2 years agoStrip --oom commands from SQLTester input since (A) we can't currently do anything...
stephan [Wed, 9 Aug 2023 16:29:07 +0000 (16:29 +0000)] 
Strip --oom commands from SQLTester input since (A) we can't currently do anything with them and (B) they can appear as body content of --testcase commands and the current parser cannot deal with that. If --verbose is provided once, emit the name and args of each command as it's run. If --verbose is used twice or more, also emit the command's body text, if any.

FossilOrigin-Name: 0770e8467d4bb9490d9ed6e8a20766ffee7049cc3667db6d036c13fccbb6f3ab

2 years agoUpdate the definition of "special characters" for the SQLTester and correct the code...
stephan [Wed, 9 Aug 2023 16:03:12 +0000 (16:03 +0000)] 
Update the definition of "special characters" for the SQLTester and correct the code to match it.

FossilOrigin-Name: 217f6e0c9c09c576b09ea59fce085a53d1a133927046102b4d00fd58109efc93

2 years agoExtend TestScript to be able to report why it should be skipped. Expand the test...
stephan [Wed, 9 Aug 2023 15:46:55 +0000 (15:46 +0000)] 
Extend TestScript to be able to report why it should be skipped. Expand the test-skipping rules to account for the current spec doc. Add the {} empty-string case to the spec doc.

FossilOrigin-Name: 4fcc8cb0cc2bbc0da71bdb99dacfdec54814af4c0e4c37619bad6a8e5fa62937

2 years agoAdd a test for the --null command.
stephan [Wed, 9 Aug 2023 14:47:01 +0000 (14:47 +0000)] 
Add a test for the --null command.

FossilOrigin-Name: 83ac815debcc75dac1fbbdc17736f5e33fb675fdab0bf649367592a0d18074e4

2 years agoExtend SQLTester glob support with '#'.
stephan [Wed, 9 Aug 2023 14:43:54 +0000 (14:43 +0000)] 
Extend SQLTester glob support with '#'.

FossilOrigin-Name: 756ef83f45b69d9f78965ef1171d36477a32f938fe179e59b95f32f07849c0e5

2 years agoImplement the SQLTester's result escaping rules.
stephan [Wed, 9 Aug 2023 14:24:22 +0000 (14:24 +0000)] 
Implement the SQLTester's result escaping rules.

FossilOrigin-Name: 61bb950873a1ec45a71b15a0ab5128a50417c4ecdd7d5bd9add0c18afcbadf34

2 years agoAdd --json and --json-block SQLTester commands.
stephan [Wed, 9 Aug 2023 13:51:50 +0000 (13:51 +0000)] 
Add --json and --json-block SQLTester commands.

FossilOrigin-Name: 478129d901824e675d86494044f73c313532e9f80e7ee6f425474df8237a82f5

2 years agoAdd SQLTester --tableresult command.
stephan [Wed, 9 Aug 2023 13:16:10 +0000 (13:16 +0000)] 
Add SQLTester --tableresult command.

FossilOrigin-Name: 8c5b6d893df4a4e82c6d8e07507fc160b11412ede4bb903ff4e3f5ffa59a9cb9

2 years agoClean up the SQLTester output a bit by using the module name, instead of filename...
stephan [Wed, 9 Aug 2023 12:05:17 +0000 (12:05 +0000)] 
Clean up the SQLTester output a bit by using the module name, instead of filename, where appropriate.

FossilOrigin-Name: 5323e4fd254274cc527af7536c622b786394599c68eca2da6c7fc641727dbdb2

2 years agoDocument SQLTester's --print command and add some argument validation to it.
stephan [Wed, 9 Aug 2023 11:10:48 +0000 (11:10 +0000)] 
Document SQLTester's --print command and add some argument validation to it.

FossilOrigin-Name: ab9c945bb0b4210b3f47e6341f150f8a7cc45f9e4e4c2247e91d2528ed4772a6

2 years agoRework how SQLTester's Command objects are dispatched and how TestScript stores its...
stephan [Wed, 9 Aug 2023 11:05:43 +0000 (11:05 +0000)] 
Rework how SQLTester's Command objects are dispatched and how TestScript stores its command entries.

FossilOrigin-Name: f929f1f7f70181813f74562614f3f2aa29e65590560e3fce1677b8b176e3c6de

2 years agoSome minor tweaks in SQLTester in prep for larger refactoring.
stephan [Wed, 9 Aug 2023 09:56:37 +0000 (09:56 +0000)] 
Some minor tweaks in SQLTester in prep for larger refactoring.

FossilOrigin-Name: 1d93f93ac9708839e62d2f1b489adc5d47ff290c2d5aef4dd56be4e1e46c81b2

2 years agoRemove the current-statement tracking from the JNI internals because it will break...
stephan [Tue, 8 Aug 2023 22:10:27 +0000 (22:10 +0000)] 
Remove the current-statement tracking from the JNI internals because it will break down in the face of client-side mixed-mode native/java code, e.g. in cases like SQLTester. This makes tracing of sqlite3_stmt a micron slower but also reliably correct.

FossilOrigin-Name: 4c0ec89dca00a9199d1e36768c034aa5eff03b13b5e015cf580f160dc4f141ad

2 years agoAdapt JNI build to be buildable with or without SQLTester.
stephan [Tue, 8 Aug 2023 21:22:56 +0000 (21:22 +0000)] 
Adapt JNI build to be buildable with or without SQLTester.

FossilOrigin-Name: adae7d78692af73e770a9cc0a4264ab32ecc18a5c0deb64f3c1e790d959bab43

2 years agoAdd SQLTester dup() and dup_count() UDFs. Correct arg handling of the --run command.
stephan [Tue, 8 Aug 2023 21:05:39 +0000 (21:05 +0000)] 
Add SQLTester dup() and dup_count() UDFs. Correct arg handling of the --run command.

FossilOrigin-Name: 0dba3073f44685a51a5db7ff8886295fe04dfd43f69cbf53ad3d5afce741076b

2 years agoCorrect --result arg count check and add infrastructure to let us add custom C-side...
stephan [Tue, 8 Aug 2023 20:41:29 +0000 (20:41 +0000)] 
Correct --result arg count check and add infrastructure to let us add custom C-side behavior to SQLTester via an auto extension.

FossilOrigin-Name: bb8321702eea52fa9d42987a4b053b32d8eba15580a39d7831cd8d6f1ceb62bf

2 years agoIf SQLTester now treats a no-args --result as comparing against an empty string.
stephan [Tue, 8 Aug 2023 20:15:42 +0000 (20:15 +0000)] 
If SQLTester now treats a no-args --result as comparing against an empty string.

FossilOrigin-Name: 49005ca5cc191c52279bc7fdb45d95eeb6f8e344f78ce9dbd97aac814bc21202

2 years agoAdd glob/notglob commands to SQLTester and complete the interrupted-midway impls...
stephan [Tue, 8 Aug 2023 20:02:10 +0000 (20:02 +0000)] 
Add glob/notglob commands to SQLTester and complete the interrupted-midway impls of the strglob() and strlike() JNI bindings.

FossilOrigin-Name: 4ba98ec0bf24c31cce498031cb3727e09f928f54ec13c76fec50e439e0f2ba15

2 years agoWhen SQLTester hits an unknown command, emit a warning and skip the rest of that...
stephan [Tue, 8 Aug 2023 19:20:12 +0000 (19:20 +0000)] 
When SQLTester hits an unknown command, emit a warning and skip the rest of that script instead of aborting the whole run, per /chat discussion. Reduce verbosity a bit.

FossilOrigin-Name: 3e78d22d04e6ac2606bfc5ce250a4c3b39a2062e14011ca0a8a0a85491efbfde

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

FossilOrigin-Name: aa6de539c09faa320b68c63659e602107145c4263fa680d5b40fe4d7d7ac4534

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

FossilOrigin-Name: 293f6191e9b328cb8a8d3fff0f7bd5a6f5390b5ff090497a170c791b6ea22917

2 years agoCorrect the spacing output of multi-select SQL blocks for SQLTester --result.
stephan [Tue, 8 Aug 2023 14:58:00 +0000 (14:58 +0000)] 
Correct the spacing output of multi-select SQL blocks for SQLTester --result.

FossilOrigin-Name: 8d98645a9e524b30f7faa1cffd8f09e7aab3c25ac7b08dd6884141dfe9cdb0d3

2 years agoUpdates to the test script interpreter spec: Rather than failing immediately
drh [Tue, 8 Aug 2023 14:49:16 +0000 (14:49 +0000)] 
Updates to the test script interpreter spec:  Rather than failing immediately
upon encountering an incompatibility, simply abandon the rest of that particular
input file.

FossilOrigin-Name: d2c99b96f4b61561c3fa34947ca7bfd2cd214b1913aff7ba64b7b897a574fea3

2 years agoA number of baby steps for SQLTester.java. It can now handle basic --result cases.
stephan [Tue, 8 Aug 2023 14:40:47 +0000 (14:40 +0000)] 
A number of baby steps for SQLTester.java. It can now handle basic --result cases.

FossilOrigin-Name: 0404f688f6a22b6bbe009de1bee3341ca00e19e2cc32081265cf151876dc032f

2 years agoAdd a few words of clarification on how the SQLite Test Script Interpreter
drh [Tue, 8 Aug 2023 14:25:47 +0000 (14:25 +0000)] 
Add a few words of clarification on how the SQLite Test Script Interpreter
should be initialized to start each test script.

FossilOrigin-Name: 3aa2b5a5cadb214dc64a3db412b7dfdd805abd8681b61da857b886cba3b937b5

2 years agoCorrect JNI sqlite3_prepare() to emit a null stmt handle when the C counterpart succe...
stephan [Tue, 8 Aug 2023 13:05:12 +0000 (13:05 +0000)] 
Correct JNI sqlite3_prepare() to emit a null stmt handle when the C counterpart succeeds but results in a NULL pointer.

FossilOrigin-Name: 94628f88b5cc82832f0ca2b00fd5346bfe99323097c6e659c5ac818c4e31d3e9

2 years agoImplement the new/open/close SQLTester commands.
stephan [Tue, 8 Aug 2023 11:46:46 +0000 (11:46 +0000)] 
Implement the new/open/close SQLTester commands.

FossilOrigin-Name: dc823bf00f78e7cd626329220c42c46da12d565e3273a08eda5fb512c1d807c6

2 years agoAdd a JNI-layer sqlite3.toString() for debugging.
stephan [Tue, 8 Aug 2023 11:46:26 +0000 (11:46 +0000)] 
Add a JNI-layer sqlite3.toString() for debugging.

FossilOrigin-Name: 456691649aa2a7672d5d110acdde92426a9d34552863db3e0c86b73d9c5d9aac

2 years agoBind sqlite3_strlike/strglob() to JNI.
stephan [Tue, 8 Aug 2023 10:58:16 +0000 (10:58 +0000)] 
Bind sqlite3_strlike/strglob() to JNI.

FossilOrigin-Name: eb5440f71be32812f6310756b8e30958002e8e8e41a7eb16f081058ff733b47c

2 years agoSQLTester: add print command and improve argument error reporting infrastructure.
stephan [Tue, 8 Aug 2023 09:45:33 +0000 (09:45 +0000)] 
SQLTester: add print command and improve argument error reporting infrastructure.

FossilOrigin-Name: 1b6e84f6aa5c7626a308b5e8efe5c3d83ec8e7eaa803f047576b7c65333c2d44

2 years agoAdd missing license header. Minor cleanups in SQLTester.
stephan [Tue, 8 Aug 2023 00:59:40 +0000 (00:59 +0000)] 
Add missing license header. Minor cleanups in SQLTester.

FossilOrigin-Name: 5be50fd5887e5378f7d66405bff3a44117a826a17e5f1a18c5129d1109ecdae2

2 years agoRework SQLTester dispatching and add stub impls for several commmands.
stephan [Tue, 8 Aug 2023 00:37:31 +0000 (00:37 +0000)] 
Rework SQLTester dispatching and add stub impls for several commmands.

FossilOrigin-Name: 9e61af75ac83e74487a6ae681ee3ff891d8cf1f1d23bf895e9e3963ddf6eaf28

2 years agoAdd command dispatcher to SQLTester.
stephan [Mon, 7 Aug 2023 23:59:08 +0000 (23:59 +0000)] 
Add command dispatcher to SQLTester.

FossilOrigin-Name: e0a06931e91459ea43fed2954568bfafa7ad6b794fcff66e0d3bf0ed181db386

2 years agoSQLTester now ignores tests which contain constructs specified in the spec doc.
stephan [Mon, 7 Aug 2023 23:04:17 +0000 (23:04 +0000)] 
SQLTester now ignores tests which contain constructs specified in the spec doc.

FossilOrigin-Name: ecaeee652aa2cc6893ded9231d7e9b2783465516016740b307b74e4e81598ae3

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