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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

FossilOrigin-Name: 8c5b6d893df4a4e82c6d8e07507fc160b11412ede4bb903ff4e3f5ffa59a9cb9

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

FossilOrigin-Name: 5f56b007704f2aad4cbc6f0ccd1e1f1c974865971f99451352714ee7e077c284

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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