]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
21 months agoAugment the jsonBlobChangePayloadSize() routine so that it tries to shift jsonb-opt1
drh [Tue, 3 Oct 2023 20:01:20 +0000 (20:01 +0000)] 
Augment the jsonBlobChangePayloadSize() routine so that it tries to shift
content in order to render the payload size in its minimal form.

FossilOrigin-Name: 562e8e7b08c696edee3ad1919df1499ba35eef3cd800667d2eaad749efa28748

21 months agoImproved handling of OOM while translating the JsonNode representing into
drh [Tue, 3 Oct 2023 19:37:19 +0000 (19:37 +0000)] 
Improved handling of OOM while translating the JsonNode representing into
the BLOB representation.

FossilOrigin-Name: ef5956710bb542d6045c82937d02218a7ed45af94cf3959b0c180268e04d14e1

21 months agoMerge the latest trunk enhancements into the jsonb branch.
drh [Tue, 3 Oct 2023 11:36:47 +0000 (11:36 +0000)] 
Merge the latest trunk enhancements into the jsonb branch.

FossilOrigin-Name: e6406a9865b75dea2f26d3ee4f4c206958400059c7f92ced88edc8507dd3c82f

21 months agoFix a problem in the JSONB parser that comes up following an OOM.
drh [Tue, 3 Oct 2023 10:59:01 +0000 (10:59 +0000)] 
Fix a problem in the JSONB parser that comes up following an OOM.

FossilOrigin-Name: 355acfb18897254f6b6444a21d781b5e10e930b81952850dd2a40d88bbf2f3db

21 months agoFix an issue with the use of jsonb_group_array() and jsonb_group_object()
drh [Tue, 3 Oct 2023 10:43:30 +0000 (10:43 +0000)] 
Fix an issue with the use of jsonb_group_array() and jsonb_group_object()
when used by window functions.

FossilOrigin-Name: 808bd349ba587fbcdc4aea3f9c08e0df01ba08dec181c5af5ea157e89d86ff7b

21 months agoNew test cases for JSONB.
drh [Mon, 2 Oct 2023 23:56:46 +0000 (23:56 +0000)] 
New test cases for JSONB.

FossilOrigin-Name: 6d4aeff5751722c83ebb0e1f21072b72be418c64dcf28ee032d3a548e1b3a951

21 months agoFix jsonb_insert() so that it does not behave like jsonb_set().
drh [Mon, 2 Oct 2023 20:16:06 +0000 (20:16 +0000)] 
Fix jsonb_insert() so that it does not behave like jsonb_set().
New test cases added.

FossilOrigin-Name: 54197149b811d30b6c4487eedf5692b164ed0f90cfcc541aa3157094f5f17f6a

21 months agoJNI: when fetching text-or-blob/length pairs, fetch the text-or-blob first, then...
stephan [Mon, 2 Oct 2023 17:12:16 +0000 (17:12 +0000)] 
JNI: when fetching text-or-blob/length pairs, fetch the text-or-blob first, then the length, as the API docs suggest.

FossilOrigin-Name: e4f9d3946fa570bccea2de17c5536901bdabd46cfe25678fdd37ba0e2bfd99b1

21 months agoFix the length of the string in the new concat() and concat_ws() functions.
drh [Mon, 2 Oct 2023 17:06:28 +0000 (17:06 +0000)] 
Fix the length of the string in the new concat() and concat_ws() functions.

FossilOrigin-Name: 325243226520376f4a142864ae3fb98866f25bff4dc50a6b648ef98428a7169f

21 months agoRemove an ALWAYS() from a branch that can in fact be false following an OOM
drh [Mon, 2 Oct 2023 15:56:37 +0000 (15:56 +0000)] 
Remove an ALWAYS() from a branch that can in fact be false following an OOM
fault.

FossilOrigin-Name: 3a1feb1c469d3dd50e2558581199b16bfd59b9d5bcb0de5f1a8f0ec30a17b4d1

21 months agoNew test cases for JSONB.
drh [Mon, 2 Oct 2023 14:51:28 +0000 (14:51 +0000)] 
New test cases for JSONB.

FossilOrigin-Name: d624c31e5c49e1ce63b4b72caa42a61c5167866f47d842fbcfe4e826fd079d7c

21 months agoPointer-casting-related fixes for JNI on 32-bit ARM (pi4 armv7l).
stephan [Mon, 2 Oct 2023 14:44:28 +0000 (14:44 +0000)] 
Pointer-casting-related fixes for JNI on 32-bit ARM (pi4 armv7l).

FossilOrigin-Name: 54441039ae3ebe39e42f008f77ce1be117cbda6daeed8b01739ad42a3c1f0754

21 months agoAllow json_replace() to accept JSONB arguments as the new value.
drh [Mon, 2 Oct 2023 13:35:06 +0000 (13:35 +0000)] 
Allow json_replace() to accept JSONB arguments as the new value.

FossilOrigin-Name: 95eb7b37fab29931924311f541d52173ef77a448efc8771b1a1783ccd786d23d

21 months agoImprovements to error handling for BLOB inputs on JSON.
drh [Mon, 2 Oct 2023 13:20:43 +0000 (13:20 +0000)] 
Improvements to error handling for BLOB inputs on JSON.

FossilOrigin-Name: 14f20ecbfab44934e86f1ac7a3f745b989aa8190c6df119ff5aa8100fa248d93

21 months agoGather forward references into a single place for the JSON code. Allow
drh [Mon, 2 Oct 2023 12:40:04 +0000 (12:40 +0000)] 
Gather forward references into a single place for the JSON code.  Allow
JSONB arguments to json_array() and json_object() and similar.

FossilOrigin-Name: c352201b8c299c330d9abbff6dbcbcbcf00ada53183d3cd91020ec772e066357

21 months agoFix problems following OOM in JSONB parsing.
drh [Sun, 1 Oct 2023 18:59:34 +0000 (18:59 +0000)] 
Fix problems following OOM in JSONB parsing.

FossilOrigin-Name: 0d8cd6b5fb592f88f593ceaad9cdfa95dcfdf14169c3a56a5becbd66d62fd02b

21 months agoAdd JNI binding for sqlite3_normalized_sql().
stephan [Sun, 1 Oct 2023 12:15:38 +0000 (12:15 +0000)] 
Add JNI binding for sqlite3_normalized_sql().

FossilOrigin-Name: 2532e5662a2bbb3e6b4c4be3fad035734b684bdf59b178cb64b444ca6d8b956b

21 months agoMake JNI binding of sqlite3_value_frombind() return boolean instead of int and add...
stephan [Sun, 1 Oct 2023 11:53:40 +0000 (11:53 +0000)] 
Make JNI binding of sqlite3_value_frombind() return boolean instead of int and add tests for it.

FossilOrigin-Name: 906e2ed3e9647f5c2355e9fea2beee141767cae7016da9fa1fe88283726b9369

21 months agoFix JNI binding to compile without SQLITE_ENABLE_PREUPDATE_HOOK. Add build option...
stephan [Sat, 30 Sep 2023 17:08:29 +0000 (17:08 +0000)] 
Fix JNI binding to compile without SQLITE_ENABLE_PREUPDATE_HOOK. Add build option to disable all optional ENABLE flags.

FossilOrigin-Name: c04022b7407f77eaf0175e831ebcd6bbdc0af1cef0d42c5c11102aa8484f24ca

21 months agoRestore the trunk version of sqlite3_user_data(). Fix the xColumn for virtual
drh [Sat, 30 Sep 2023 16:50:17 +0000 (16:50 +0000)] 
Restore the trunk version of sqlite3_user_data().  Fix the xColumn for virtual
tables so that the sqlite3_context contains a valid but NULL user data pointer.

FossilOrigin-Name: 15ffd932fecc82a5791b2024f55d2ec80887e8eb7345de68d6f5cac4912cfbe8

21 months agoMake all SQLite3Jni methods which take a void-pointer-as-long-int argument explicitly...
stephan [Sat, 30 Sep 2023 16:19:57 +0000 (16:19 +0000)] 
Make all SQLite3Jni methods which take a void-pointer-as-long-int argument explicitly package-private, as they're always for internal use only even if SQLite3Jni is eventually made public.

FossilOrigin-Name: 5e387275f69ab2d3159b4b67b8cbfc6270410b61e5ac1f988616e8d051f6572e

21 months agoJNI: rename sqlite3_errmsg16() to sqlite3_errmsg(), as the 16 suffix is superfluous...
stephan [Sat, 30 Sep 2023 14:48:21 +0000 (14:48 +0000)] 
JNI: rename sqlite3_errmsg16() to sqlite3_errmsg(), as the 16 suffix is superfluous there.

FossilOrigin-Name: df25b21689de84b7b8c940df39461d3d88f592f0ba2dddcfcbb0bebcea6ee7da

21 months agoExpose sqlite3_stmt_busy() to JNI.
stephan [Sat, 30 Sep 2023 14:34:55 +0000 (14:34 +0000)] 
Expose sqlite3_stmt_busy() to JNI.

FossilOrigin-Name: 5733aa5fe341d50b84baebd8803a86e381bb95959a8bc733b8fff6fd4e732867

21 months agoFinish adding jsonb_ versions for all JSON routines that return JSON text.
drh [Sat, 30 Sep 2023 14:34:39 +0000 (14:34 +0000)] 
Finish adding jsonb_ versions for all JSON routines that return JSON text.

FossilOrigin-Name: 6daa7b69695e1b68dba317abbcad4d0205c91963d4a9eb2d595a3ec10fa0fdf4

21 months agoCorrect an undefined-value deref in the JS bindings, triggered by passing invalid...
stephan [Sat, 30 Sep 2023 13:13:23 +0000 (13:13 +0000)] 
Correct an undefined-value deref in the JS bindings, triggered by passing invalid args and then tripping over an undefined value while trying to report that. Reported in [forum:dd42df144651d779|forum post dd42df144651d779].

FossilOrigin-Name: fd4632540717c4771ac9ae1fe4400091a2cd0553639bf809abaf4ecbc54de4f0

21 months agoMake (almost) all SQLite3Jni.sqlite3_... members public but make the SQLite3Jni class...
stephan [Sat, 30 Sep 2023 10:59:18 +0000 (10:59 +0000)] 
Make (almost) all SQLite3Jni.sqlite3_... members public but make the SQLite3Jni class package-private, which has the same foot-protection effect but makes it much simpler to patch SQLite3Jni to publicize the interface later. Remove some of the extraneous foot-shooting protection from indidivual functions, in lieu moving it to the still-pending higher-level interfaces.

FossilOrigin-Name: 082b86683e77b2d4a30e1515552f52511324ef97c43b622b4dab7975ae9fbd7d

21 months agoMerge in and close jni-ptr-passing branch. The remaining pointer-passing adaptation...
stephan [Sat, 30 Sep 2023 10:37:36 +0000 (10:37 +0000)] 
Merge in and close jni-ptr-passing branch. The remaining pointer-passing adaptation can be done incrementally without affecting the interface.

FossilOrigin-Name: 7927c42410ba0d5fc8e6e08caaa5cbaaeb359869f17d1afaa082f1aa47fdb2fc

21 months agoMake all native JNI sqlite3_...() bindings package-private as a foot-shooting protect... jni-ptr-passing
stephan [Sat, 30 Sep 2023 10:31:56 +0000 (10:31 +0000)] 
Make all native JNI sqlite3_...() bindings package-private as a foot-shooting protective measure (higher-level pre-native-call argument validation is largely pending). Move SQLTester.java and TesterFts5.java into the org.sqlite.jni package so that they can access the being-tested methods.

FossilOrigin-Name: ec82f7251acab7df40755ef5f456f36fe49b59e63a20be59bd610fc4280ba8cd

21 months agoMore work towards the new pointer-passing mechanism in JNI, and code-adjacent cleanups.
stephan [Sat, 30 Sep 2023 09:41:58 +0000 (09:41 +0000)] 
More work towards the new pointer-passing mechanism in JNI, and code-adjacent cleanups.

FossilOrigin-Name: 6c63987e893357dc8b10decaa96c30fb37b75481640a303e77a0d8224354491e

21 months agoUpdate json_each() and json_tree() so that they work with JSONB inputs.
drh [Fri, 29 Sep 2023 22:37:18 +0000 (22:37 +0000)] 
Update json_each() and json_tree() so that they work with JSONB inputs.

FossilOrigin-Name: bb5e50ff56dff95d954aacdd4c5461790f953cef8d7b89da000d8d587fcdf9b8

21 months agoThe u.zJContent field of JsonNode for a string or label should NOT include
drh [Fri, 29 Sep 2023 19:47:25 +0000 (19:47 +0000)] 
The u.zJContent field of JsonNode for a string or label should NOT include
the quotation mark delimiters.  Ever.  This is an inefficiency that really
ought to be fixed on trunk, but that can wait until this branch lands.

FossilOrigin-Name: 96f545f6f839dab4829861361ee3d7a56840217c5f954f334616e77d23c5fe29

21 months agoAdditional refactoring and cleanup.
drh [Fri, 29 Sep 2023 16:37:22 +0000 (16:37 +0000)] 
Additional refactoring and cleanup.

FossilOrigin-Name: 45dd1760875b1ad899a10189c6f5a0a9a0677903794fb5a06ffacd39952a7882

21 months agoAdd test case to ensure the assert() removed by [f090af77] no longer fails.
dan [Fri, 29 Sep 2023 15:56:40 +0000 (15:56 +0000)] 
Add test case to ensure the assert() removed by [f090af77] no longer fails.

FossilOrigin-Name: 615ab71761754b072439f92e73fdb98c916b820937bcca8904f4be34936d5f9c

21 months agoRemove an incorrect assert().
drh [Fri, 29 Sep 2023 15:53:55 +0000 (15:53 +0000)] 
Remove an incorrect assert().

FossilOrigin-Name: f090af775f6d2ce8b50850f5c9e33546bcb9cff5467d99ca210530cb7ca83d5b

21 months agoImprovements to comments and procedure names for clarity in the JSON
drh [Fri, 29 Sep 2023 12:45:14 +0000 (12:45 +0000)] 
Improvements to comments and procedure names for clarity in the JSON
implementation.

FossilOrigin-Name: 9b620d813ef483f1277c1683c5e926a882f07f3b90804dea0c91b325ff8e45a4

21 months agoDescribe the JSONB encoding in a header comment to the json.c source file.
drh [Fri, 29 Sep 2023 11:17:43 +0000 (11:17 +0000)] 
Describe the JSONB encoding in a header comment to the json.c source file.

FossilOrigin-Name: 1c0cba3461d6111b3aeb77726880221f1240355f0b57e060febbdeb12fb688c0

21 months agoJNI: correct a NullPointerException triggered via SQLTester.
stephan [Thu, 28 Sep 2023 20:34:28 +0000 (20:34 +0000)] 
JNI: correct a NullPointerException triggered via SQLTester.

FossilOrigin-Name: 0a873de76c0cbcd8e2eda3f0508e427f1dcb32b01798687c0545acfe10102179

21 months agoFix some minor memory issues so that all legacy tests now pass.
drh [Thu, 28 Sep 2023 19:11:36 +0000 (19:11 +0000)] 
Fix some minor memory issues so that all legacy tests now pass.

FossilOrigin-Name: 1744bfc669346ff221f28d45fd978863e876a2d2f0b82bcf0e5ee6f0326900cc

21 months agoAllow the sqlite3_user_data() function to be invoked with a NULL argument
drh [Thu, 28 Sep 2023 18:23:52 +0000 (18:23 +0000)] 
Allow the sqlite3_user_data() function to be invoked with a NULL argument
or with an sqlite3_context pointer from a virtual table.  It returns NULL
in both cases.

FossilOrigin-Name: 2f49687371ada65fef374336c28b352c48ab98dc31282ac82397035efe04ba11

21 months agoMerge trunk changes into the jsonb branch for the compiler warning fixes
drh [Thu, 28 Sep 2023 17:41:45 +0000 (17:41 +0000)] 
Merge trunk changes into the jsonb branch for the compiler warning fixes
from two days ago.

FossilOrigin-Name: cee113cc315b04fd75ccc172cf4529bf15b2050bf274433496c31a282e281ab8

21 months agoThe json_extract() function now works on BLOBs without the need to translate
drh [Thu, 28 Sep 2023 17:27:24 +0000 (17:27 +0000)] 
The json_extract() function now works on BLOBs without the need to translate
into an array of JsonNode objects.  This is much faster.

FossilOrigin-Name: 5853065b7ee326c04ddfcde64c178f487af04cd3adc3cc99f559907484ec169d

21 months agoExtract directly from BLOB is now complete and appears to work. jsonb-direct-extract
drh [Thu, 28 Sep 2023 17:23:46 +0000 (17:23 +0000)] 
Extract directly from BLOB is now complete and appears to work.

FossilOrigin-Name: 3de58ec99444b16dfcda1e226420e2343450b77abd3faf33a88b6d18339ef17c

21 months agoMiscellaneous bugs fixed.
drh [Thu, 28 Sep 2023 17:07:43 +0000 (17:07 +0000)] 
Miscellaneous bugs fixed.

FossilOrigin-Name: 5c0815fa2e422d81198a43a2c04a022e319fcbcadfd4be4437f2e663892ca26b

21 months agoImprovements to json_extract() to better support JSONB. Still not 100% working.
drh [Thu, 28 Sep 2023 15:56:35 +0000 (15:56 +0000)] 
Improvements to json_extract() to better support JSONB. Still not 100% working.

FossilOrigin-Name: 8c82576176539c4d132b14d46adbf31366c4bcaa59a61dd639dc9cc308fe8825

21 months agoClarify serialization API doc w.r.t. buffer validity and usage, instigated by [forum...
larrybr [Thu, 28 Sep 2023 15:00:25 +0000 (15:00 +0000)] 
Clarify serialization API doc w.r.t. buffer validity and usage, instigated by [forum:/forumpost/8922e2ad2ad41205|forum post 8922e2ad2ad41205]. No code changes.

FossilOrigin-Name: b488b9fb71652eca90d2bf73d32f3d748badf517859dc833c58e021b0e017194

21 months agoAdapted the JNI bindings for the sqlite3_value_...() and (pre)update hook APIs to...
stephan [Thu, 28 Sep 2023 11:19:37 +0000 (11:19 +0000)] 
Adapted the JNI bindings for the sqlite3_value_...() and (pre)update hook APIs to the new pointer-passing mechanism.

FossilOrigin-Name: 4182f0275d5d65e04a130eeef4d44642a5ffeeb4b84430d240ea2605345f1404

21 months agoConvert the remaining macro-generated JNI bindings to the new pointer-passing mechanism.
stephan [Thu, 28 Sep 2023 10:50:26 +0000 (10:50 +0000)] 
Convert the remaining macro-generated JNI bindings to the new pointer-passing mechanism.

FossilOrigin-Name: 250fd6ae806cf705c0f29ad30ad8fb885b12590848e7adae63bc21d874c6d3bd

21 months agoConvert the macro-generated JNI bindings which take a db pointer to the new pointer...
stephan [Thu, 28 Sep 2023 10:27:01 +0000 (10:27 +0000)] 
Convert the macro-generated JNI bindings which take a db pointer to the new pointer-passing mechanism.

FossilOrigin-Name: 5f47fb77db4ee77afc541e680559ad88e66ba7fd04b830e70f8be92cf8d0a60c

21 months agoWork toward getting json_extract() to operate directly on the BLOB, omitting
drh [Thu, 28 Sep 2023 10:20:56 +0000 (10:20 +0000)] 
Work toward getting json_extract() to operate directly on the BLOB, omitting
the translation into a JsonNode array.

FossilOrigin-Name: c1feba70f55a8e5f4696d48e4706855415d173ac8ac3c2656787c242a883b4f5

21 months agoPerformance tests for JSONB added.
drh [Wed, 27 Sep 2023 16:55:13 +0000 (16:55 +0000)] 
Performance tests for JSONB added.

FossilOrigin-Name: 7c1be8e361db87458ac9d8fcee080c2b558936539c852bb80f0f7941d61bf15d

21 months agoAdapted JNI sqlite3_blob_...() and sqlite3_close...() to the new pointer-passing...
stephan [Wed, 27 Sep 2023 14:41:49 +0000 (14:41 +0000)] 
Adapted JNI sqlite3_blob_...() and sqlite3_close...() to the new pointer-passing mechanism.

FossilOrigin-Name: 0b22c8ef93e5ccd45316099fb8575e27620158b1992c0c70fe0348cfc10147f8

21 months agoAdapt JNI sqlite3_bind_...() bindings to the new pointer-passing method and correct...
stephan [Wed, 27 Sep 2023 11:01:32 +0000 (11:01 +0000)] 
Adapt JNI sqlite3_bind_...() bindings to the new pointer-passing method and correct the mapping of sqlite3_bind_zeroblob64() to use zeroblob64() instead of zeroblob(). Related internal API renaming.

FossilOrigin-Name: 980d559fff6e55d1e2ef39f242a8a09313a936cfb141807db475bcceff924869

21 months agoAdd missing license headers to JNI annotation classes and extend the definition of...
stephan [Wed, 27 Sep 2023 10:29:07 +0000 (10:29 +0000)] 
Add missing license headers to JNI annotation classes and extend the definition of @NotNull to include 0L as the equivalent of null to account for the current rework of how pointers are passed from Java to C.

FossilOrigin-Name: bccdfeb9efde20410bde545893fb98ce5c0c4d04a8e7797b868ba8994120e1db

21 months agoRework the JNI sqlite3_backup APIs to the new pointer-passing approach.
stephan [Wed, 27 Sep 2023 09:58:36 +0000 (09:58 +0000)] 
Rework the JNI sqlite3_backup APIs to the new pointer-passing approach.

FossilOrigin-Name: 48aeb1e2cdeb4aec85c4f63a1f809215cd4b473791169e72b5ddf6d6bdc2f7b7

21 months agoStart reworking JNI methods such that they pass void pointers from Java to C instead...
stephan [Tue, 26 Sep 2023 21:37:52 +0000 (21:37 +0000)] 
Start reworking JNI methods such that they pass void pointers from Java to C instead of passing their strongly-typed wrappers, as that is reportedly significantly faster than passing the wrapper objects to C and extracting the pointers there. There are still many, many functions left to rework for this.

FossilOrigin-Name: 66c814dd473731703ee00e1ff610acfdccf09d1b87dd2355795ed697d4ed5d3e

21 months agoFix harmless compiler warnings in the testfixture testing utility.
drh [Tue, 26 Sep 2023 21:22:46 +0000 (21:22 +0000)] 
Fix harmless compiler warnings in the testfixture testing utility.

FossilOrigin-Name: 5a39a02d2dfd9ed6171cd0bd434b2bc268d0ed8ead6e1a396d1603266d9493ef

21 months agoJNI: implement AutoCloseable for the sqlite3 and sqlite3_stmt classes, and adjust...
stephan [Tue, 26 Sep 2023 19:49:35 +0000 (19:49 +0000)] 
JNI: implement AutoCloseable for the sqlite3 and sqlite3_stmt classes, and adjust a few tests to use it. Override Object.finalize() for sqlite3 class but not sqlite3_stmt (where it triggers a JVM crash for as-yet-unknown reasons).

FossilOrigin-Name: b633d8bbdbd43464ee03058c273e5188117b9538ed5d5148a1a3851e4adf6410

21 months agoMerge partial-index constant value fixes from trunk into the jsonb branch.
drh [Tue, 26 Sep 2023 19:46:38 +0000 (19:46 +0000)] 
Merge partial-index constant value fixes from trunk into the jsonb branch.

FossilOrigin-Name: 700bdbd7383f66a0da675c197204da4e7b6ed757155145ee98d572de32a5d0ae

21 months agoFix yet another assert() in the partial-index constant value optimization.
drh [Tue, 26 Sep 2023 19:38:24 +0000 (19:38 +0000)] 
Fix yet another assert() in the partial-index constant value optimization.

FossilOrigin-Name: f459d0806cf044fd07743e4c91d0a5a6ddf45b3b41004bde4278f190d99a4cf5

21 months agoAdd in many jsonb_xxxx() interfaces. Still uses the internal JsonNode
drh [Tue, 26 Sep 2023 19:30:46 +0000 (19:30 +0000)] 
Add in many jsonb_xxxx() interfaces.  Still uses the internal JsonNode
representation for transformations and search, but it does at least conform
to the desired API design.  Largely untested.

FossilOrigin-Name: e6045b4e1bf3a8e33926fc12b3c039f5e1002eaecbe277ffa82b0ec271a29d17

21 months agoRemove a NEVER() from a condition in the partial-index constant value optimization...
dan [Tue, 26 Sep 2023 19:26:47 +0000 (19:26 +0000)] 
Remove a NEVER() from a condition in the partial-index constant value optimization that can sometimes be true.

FossilOrigin-Name: 63aea8c3e0605edcf49ad1e5ce1a56d2690dcb8c4857043997545daab46ca035

21 months agoMerge all the latest trunk enhancements into jsonb branch.
drh [Tue, 26 Sep 2023 15:13:04 +0000 (15:13 +0000)] 
Merge all the latest trunk enhancements into jsonb branch.

FossilOrigin-Name: ac242c4d47ec36aab1c2fa5e65e7b595e686f49473b75bd63708d05c59ce3f0f

21 months agoRemove unreachable code from the partial-index constant value optimization
drh [Tue, 26 Sep 2023 14:57:30 +0000 (14:57 +0000)] 
Remove unreachable code from the partial-index constant value optimization
([8d4160910d651246]).

FossilOrigin-Name: 7ad38254c37153efa72291d09800693ca60894359548eda877d59defa8c70d49

21 months agoRemove some outdated JNI docs.
stephan [Tue, 26 Sep 2023 09:46:04 +0000 (09:46 +0000)] 
Remove some outdated JNI docs.

FossilOrigin-Name: 2ca5cbbb2a8ee94fe9f4888dea695a4429aefa17611fd9ebe59bf4866290ab0c

21 months agoMinor JNI doc updates. No code changes.
stephan [Tue, 26 Sep 2023 07:43:51 +0000 (07:43 +0000)] 
Minor JNI doc updates. No code changes.

FossilOrigin-Name: 63687cc659f06a1f6aa9d4496ef01d9f0adbee6184b8e265fb8feec1ad30449b

21 months agoIn partial index scans, if the WHERE clause implies a constant value for a table...
dan [Mon, 25 Sep 2023 17:46:02 +0000 (17:46 +0000)] 
In partial index scans, if the WHERE clause implies a constant value for a table column, replace occurences of that table column with the constant. This increases the likelihood of the partial index being a covering index.

FossilOrigin-Name: 8d4160910d6512469cb0a060b89c2509dde1c8e33d9358034d7fb39cd494eabe

21 months agoAnother very minor tweak to code on this branch to save cycles. partial-index-terms
dan [Mon, 25 Sep 2023 17:21:53 +0000 (17:21 +0000)] 
Another very minor tweak to code on this branch to save cycles.

FossilOrigin-Name: 2c805dc68112db7f06aea56a731a33e046e876851bdda3e725ba96f6da1bf2ee

21 months agoWhen parsing JSON text into the BLOB format, only use node type JSONB_TEXTJ
drh [Mon, 25 Sep 2023 17:14:17 +0000 (17:14 +0000)] 
When parsing JSON text into the BLOB format, only use node type JSONB_TEXTJ
for an unquoted object label if the object label contains escape sequences.

FossilOrigin-Name: a82ebbac3c542ec7f86d1e8414d7fd166db48450115ee3b26d12b5bb445f5896

21 months agoChange the order of an if..else... in new code to make it slightly faster.
dan [Mon, 25 Sep 2023 15:25:49 +0000 (15:25 +0000)] 
Change the order of an if..else... in new code to make it slightly faster.

FossilOrigin-Name: f80dc64483a54a488e507da140836261ae1b864577cc95d8e869919d5a25e73c

21 months agoEnable -Wall for the compiler on --enable-debug builds.
drh [Mon, 25 Sep 2023 14:20:07 +0000 (14:20 +0000)] 
Enable -Wall for the compiler on --enable-debug builds.

FossilOrigin-Name: 63a7b521390001939909d43d908af78f7df7cb92272d2b74f038da918c2bef05

21 months agoAs a temporary measure, try to translate the BLOB JSON format into the
drh [Mon, 25 Sep 2023 13:23:29 +0000 (13:23 +0000)] 
As a temporary measure, try to translate the BLOB JSON format into the
legacy node format for processing.

FossilOrigin-Name: 14f2e95a9e531ef0d3fa7f1249f23c073a50c31b2109eefc2f258cada635ac2f

21 months agoFix a bad interaction between LEFT JOIN, bloom filters and partial indexes.
dan [Mon, 25 Sep 2023 11:12:39 +0000 (11:12 +0000)] 
Fix a bad interaction between LEFT JOIN, bloom filters and partial indexes.

FossilOrigin-Name: 5775f92b31f0539c66d37e50689bec17a82c0e857a781331c03e34bc18157087

21 months agoResolve the JNI FTS5 test5() failure and remove some nearby dead code.
stephan [Sun, 24 Sep 2023 19:13:31 +0000 (19:13 +0000)] 
Resolve the JNI FTS5 test5() failure and remove some nearby dead code.

FossilOrigin-Name: 5655c51f103c6dfade799ffb5ca2eb21b4360ada598741f373c952ae732535aa

21 months agoAdd extra tests for changes on this branch.
dan [Sat, 23 Sep 2023 21:31:40 +0000 (21:31 +0000)] 
Add extra tests for changes on this branch.

FossilOrigin-Name: cb45f5b070cfdbb4358e8e909b0b34d658b5925db06e282b38046298a159c545

21 months agoAvoid an error when parsing a schema that contains indexes with WHERE clauses contain...
dan [Sat, 23 Sep 2023 19:25:03 +0000 (19:25 +0000)] 
Avoid an error when parsing a schema that contains indexes with WHERE clauses containing unknown collation sequences.

FossilOrigin-Name: d5dd39e37ab994ce5d75688a40c6494c17807431529e85eb2b11d58f367fe232

21 months agoFix a failing assert() caused by changes on this branch.
dan [Sat, 23 Sep 2023 18:52:22 +0000 (18:52 +0000)] 
Fix a failing assert() caused by changes on this branch.

FossilOrigin-Name: d0e21f20bd8643d21c4b88fb75b83939d68e9b7118f7289a164656f11d2ee555

21 months agoFix a harmless compiler warning.
drh [Sat, 23 Sep 2023 18:49:30 +0000 (18:49 +0000)] 
Fix a harmless compiler warning.

FossilOrigin-Name: 7c4210253b660b385d14de3ae7ab30f038036308e1164ec17b40e2805b9b2235

21 months agoAdd extra tests for the fts5 xPhraseQuery API.
dan [Sat, 23 Sep 2023 15:34:02 +0000 (15:34 +0000)] 
Add extra tests for the fts5 xPhraseQuery API.

FossilOrigin-Name: b5edea16317ccc896394011f45442af44d5ea1041b6abfe152c90412c78bfc5b

21 months agoResolve the JNI FTS5 test5() crash, caused by two unrelated typos in JNI callback...
stephan [Sat, 23 Sep 2023 06:50:19 +0000 (06:50 +0000)] 
Resolve the JNI FTS5 test5() crash, caused by two unrelated typos in JNI callback signature strings. That test now fails with an expected-vs-got mismatch but no longer dies in the native code.

FossilOrigin-Name: 0233f310bf6bbb84f76b25205af160951e0bf6d8b2f1bca4537384af4fe47e58

21 months agoRemove an invalid optimization from JNI code and add a missing check check for Java...
stephan [Sat, 23 Sep 2023 06:37:18 +0000 (06:37 +0000)] 
Remove an invalid optimization from JNI code and add a missing check check for Java-side exception.

FossilOrigin-Name: b8151f879718f7e30520f7e5ae04bd6724ae98af067be097b1a00df2175a038a

21 months agoIn partial index scans, if the WHERE clause implies a constant value for a table...
dan [Fri, 22 Sep 2023 20:21:27 +0000 (20:21 +0000)] 
In partial index scans, if the WHERE clause implies a constant value for a table column, replace occurences of that table column with the constant. This increases the likelihood of the partial index being a covering index.

FossilOrigin-Name: 66ed7abdfa228abde2052e3988589371f0e49b11582b1b4a83255d2df3a0aefa

21 months agoFix minor parse-to-BLOB bugs.
drh [Fri, 22 Sep 2023 16:20:48 +0000 (16:20 +0000)] 
Fix minor parse-to-BLOB bugs.

FossilOrigin-Name: 8b53b2e6600c324ff7864840d98a3f03896b9792fcb60b70cc1f6227b3bd4ca1

21 months agoAdd the ability to render a binary BLOB back into valid canonical JSON.
drh [Fri, 22 Sep 2023 14:33:39 +0000 (14:33 +0000)] 
Add the ability to render a binary BLOB back into valid canonical JSON.

FossilOrigin-Name: 0b70cb77a4c8e3f17932f1ecca3942e0b0b03de637fb9656a130fe045f7ef826

21 months agoBegin adding code to render binary JSON back into text. Very incomplete.
drh [Fri, 22 Sep 2023 12:16:56 +0000 (12:16 +0000)] 
Begin adding code to render binary JSON back into text.  Very incomplete.
This is an incremental check-in.

FossilOrigin-Name: b817dd865ed60fc4da0b662a9edec0fceb8921b02ce98133bdd565988939fd0f

21 months agoImprovements to the JSON binary BLOB format design.
drh [Fri, 22 Sep 2023 11:20:35 +0000 (11:20 +0000)] 
Improvements to the JSON binary BLOB format design.

FossilOrigin-Name: 2c89ae5d02f6a40ef869e2a162e2c72871df60572b27959fd1d7171f495ce881

21 months agoReorganize the code to put the new JSONB routines together, for easier editing.
drh [Thu, 21 Sep 2023 18:16:35 +0000 (18:16 +0000)] 
Reorganize the code to put the new JSONB routines together, for easier editing.

FossilOrigin-Name: dc23e783d4147d363856abe109586fc79a5b535b492beee0cf7a0234c0210667

21 months agoInitial development code for an experimental binary BLOB encoding for JSON.
drh [Thu, 21 Sep 2023 17:51:39 +0000 (17:51 +0000)] 
Initial development code for an experimental binary BLOB encoding for JSON.

FossilOrigin-Name: 8131b3c272f47db2618886046a9713285ce120cb87d721484ee7444273290681

21 months agoAdd extra tests for java Fts5ExtensionApi API.
dan [Mon, 18 Sep 2023 20:42:06 +0000 (20:42 +0000)] 
Add extra tests for java Fts5ExtensionApi API.

FossilOrigin-Name: f9d62b853ce8bfbfdc9f137e984e7a1b51d70e88c38b136b4fad1e8ae6ee8913

21 months agoExtra tests for java Fts5ExtensionApi interface.
dan [Mon, 18 Sep 2023 18:12:03 +0000 (18:12 +0000)] 
Extra tests for java Fts5ExtensionApi interface.

FossilOrigin-Name: c923893f3604b278277de1bb919ef713bf7a4296b7ff71451cfe19bc2ff03190

21 months agoRemove a NEVER() in btree.c that could actually be reached, with the approriate
drh [Sun, 17 Sep 2023 16:36:22 +0000 (16:36 +0000)] 
Remove a NEVER() in btree.c that could actually be reached, with the approriate
database corruption.

FossilOrigin-Name: d1fd00e0875f881cacdc581a75215ec1872a81969ac07b8ebe3aaa707a9a3640

21 months agoFix resolution of "rowid" and similar identifiers in queries that use nested joins.
dan [Sat, 16 Sep 2023 18:18:57 +0000 (18:18 +0000)] 
Fix resolution of "rowid" and similar identifiers in queries that use nested joins.

FossilOrigin-Name: 37ec43d92bde13efc71fa57ff5e59c4a95b9054c298f844aefeb06d4a91ad0d4

21 months agoEnable "OR IGNORE" support via SQLITE_VTAB_CONSTRAINT_SUPPORT for internal-content...
dan [Sat, 16 Sep 2023 17:11:44 +0000 (17:11 +0000)] 
Enable "OR IGNORE" support via SQLITE_VTAB_CONSTRAINT_SUPPORT for internal-content (not contentless or external-content) fts5 tables.

FossilOrigin-Name: c362bde4f4b8489947f080154d7fddcfd6e8e21d742a483c496fb7fbe59969d2

21 months agoAdd a NEVER() to an unreachable branch. nested-from-rowid-expansion
drh [Sat, 16 Sep 2023 16:39:27 +0000 (16:39 +0000)] 
Add a NEVER() to an unreachable branch.

FossilOrigin-Name: 6b6eb38979d68c06e382620c8813d6b67a3de02c4a7a029c84f924b9a2e380c6

21 months agoFix minor code indentation inconsistencies. No function changes.
drh [Sat, 16 Sep 2023 16:23:20 +0000 (16:23 +0000)] 
Fix minor code indentation inconsistencies.  No function changes.

FossilOrigin-Name: 05107a0ae1456b746d3119af68d39532fad23a7eef88c09a9ef46ab7f8da4b9d

21 months agoFix a harmless compiler warning.
drh [Sat, 16 Sep 2023 16:12:10 +0000 (16:12 +0000)] 
Fix a harmless compiler warning.

FossilOrigin-Name: 9e9ff4ca3a205d0b599634782a5ad389fbe4823663550f48c54ca35dbc660dc7

21 months agoFurther tests and assert() statements for the change on this branch.
dan [Sat, 16 Sep 2023 14:42:18 +0000 (14:42 +0000)] 
Further tests and assert() statements for the change on this branch.

FossilOrigin-Name: 1c202d540ac362bfc747a9f8472e83c9d7614e38467f8b48787a669fb34664ba

21 months agoFix resolution of unqualified "rowid" identifiers in queries with nested joins.
dan [Fri, 15 Sep 2023 20:57:05 +0000 (20:57 +0000)] 
Fix resolution of unqualified "rowid" identifiers in queries with nested joins.

FossilOrigin-Name: bbcbd3d537d6790373d97f59386b8ce7fa2177db572af0f1babe058a76e25cc3

21 months agoSimplifications and performance optimizations for the RTree extension.
drh [Fri, 15 Sep 2023 20:28:27 +0000 (20:28 +0000)] 
Simplifications and performance optimizations for the RTree extension.

FossilOrigin-Name: 04a333f5faf6b90592f1f69889ac6c28949955e186f39037cd639480b06feae8

21 months agoDrop support for the view-scan optimization (check-in [609fbb94b8f01d67]) as
drh [Fri, 15 Sep 2023 19:51:18 +0000 (19:51 +0000)] 
Drop support for the view-scan optimization (check-in [609fbb94b8f01d67]) as
it was causing multiple performance regressions.  In its place, reduce the
estimated row count for DISTINCT subsqueries by a factor of 8.

FossilOrigin-Name: f911f1c4977fbcae041243955cf2b98d8cc8baa337885a69be0f2b9bd2efa6f3

21 months agoMinor simplification to the DISTINCT output row count change. rethink-viewscan
drh [Fri, 15 Sep 2023 19:27:36 +0000 (19:27 +0000)] 
Minor simplification to the DISTINCT output row count change.

FossilOrigin-Name: 0738386d7c505a98768ddaff7ff1fc76f115882d92d6f84bf136b4aa2caad8b8