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

22 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

22 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

22 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

22 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

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

FossilOrigin-Name: 45dd1760875b1ad899a10189c6f5a0a9a0677903794fb5a06ffacd39952a7882

22 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

22 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

22 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

22 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

22 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

22 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

22 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

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

FossilOrigin-Name: 5c0815fa2e422d81198a43a2c04a022e319fcbcadfd4be4437f2e663892ca26b

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 months agoDo not reduce subquery output row count estimates due to DISTINCT until
drh [Fri, 15 Sep 2023 19:00:47 +0000 (19:00 +0000)] 
Do not reduce subquery output row count estimates due to DISTINCT until
after the decision of whether or not to use an index for ORDER BY has been
made.

FossilOrigin-Name: 27390051e86ad86fb35219329d359be9e83073f59782631af7fc519225e10565

22 months agoAllow expressions like "<tbl>.rowid" to refer to implicit rowid columns of tables...
dan [Fri, 15 Sep 2023 18:36:51 +0000 (18:36 +0000)] 
Allow expressions like "<tbl>.rowid" to refer to implicit rowid columns of tables in nested FROM clauses.

FossilOrigin-Name: 59a1bbc69f5dbb33418fa4b383393fb13a46bc1e531577da8ad54ae2fad5a10e

22 months agoExperimental: Assume that a DISTINCT clause on a subquery reduces the number
drh [Fri, 15 Sep 2023 16:15:33 +0000 (16:15 +0000)] 
Experimental:  Assume that a DISTINCT clause on a subquery reduces the number
of rows returned by that subquery by a factor of 8.

FossilOrigin-Name: 5a940e47d501f23347eaf084f4820e064e93665d19c8938c80715b71006ede8b

22 months agoThe view-scan optimization was added to enhance the performance of one specific
drh [Fri, 15 Sep 2023 14:06:44 +0000 (14:06 +0000)] 
The view-scan optimization was added to enhance the performance of one specific
query, but it causes performance regressions on a host of others.  Disable it
(at least temporarily) in order to try to find an alternative way of fixing the
one specific query that it was created to fix - an alternative way that does
not cause performance problems for other unrelated queries.

FossilOrigin-Name: d9625a9eafe88859c3255849ee750cc6322d5a13ddad45107f9b2085c20eff50

22 months agoDo not try to convert a double into an unsigned 64-bit integer, as that does
drh [Fri, 15 Sep 2023 10:24:29 +0000 (10:24 +0000)] 
Do not try to convert a double into an unsigned 64-bit integer, as that does
not work on all platforms.  A double can only be converted into a signed
64-bit integer.

FossilOrigin-Name: ce339046416e9ddeffe77f71a8bfb8c5b302160c3207f919aebd62902618ed59

22 months agoTests for java versions of Fts5ExtensionApi.xSetAuxdata() and xGetAuxdata().
dan [Thu, 14 Sep 2023 20:56:42 +0000 (20:56 +0000)] 
Tests for java versions of Fts5ExtensionApi.xSetAuxdata() and xGetAuxdata().

FossilOrigin-Name: 858fa236f8b673eb03cf2242e8202cd33ae1f13a43b59bdbb2eecdb21d42ef55

22 months agoJNI: move XTokenizeCallback interface out of the Fts5 object - that level of indirect...
stephan [Thu, 14 Sep 2023 20:02:49 +0000 (20:02 +0000)] 
JNI: move XTokenizeCallback interface out of the Fts5 object - that level of indirection is a holdover from when those classes were in the core package.

FossilOrigin-Name: 385ec08570451c0be212677d1b681c13d225dc690965effa2293e64cb3d56023

22 months agoAdd a few more tests for Fts5ExtensionApi methods.
dan [Thu, 14 Sep 2023 20:01:18 +0000 (20:01 +0000)] 
Add a few more tests for Fts5ExtensionApi methods.

FossilOrigin-Name: 4ce2a7e8ed0f2859efc1038fd0812bc2b667be1479f45c081deccc2cf188c807

22 months agoAdd a test for the java version of Fts5ExtensionApi.xRowid().
dan [Thu, 14 Sep 2023 17:42:34 +0000 (17:42 +0000)] 
Add a test for the java version of Fts5ExtensionApi.xRowid().

FossilOrigin-Name: 227facf879d2ade348cdb51f5b50ba2f95b8621acc0cf7a5fed4a310b4c76baa

22 months agoAccording to [forum:/forumpost/9f6db917e1|forum post 9f6db917e1], older legacy-msvc-workaround
drh [Thu, 14 Sep 2023 16:45:46 +0000 (16:45 +0000)] 
According to [forum:/forumpost/9f6db917e1|forum post 9f6db917e1], older
MSVC compilers are unable to convert a double directly into an unsigned
long long int, but must first go through a signed long long int.  Work
around this by restricting the range of doubles that are converted into
long long integers so that only the lower 63 bits are used.

FossilOrigin-Name: 0ab05871ba36e2a0eddfbc700c1d39891c54c453727a4effcdac3327efec163b

22 months agoDocument the use of OPFLAG_ISNOOP as the P2 argument on OP_Delete. No
drh [Thu, 14 Sep 2023 16:02:56 +0000 (16:02 +0000)] 
Document the use of OPFLAG_ISNOOP as the P2 argument on OP_Delete.  No
functional code changes.

FossilOrigin-Name: d88f41b2cf2b721170d2428a50b717976091389d9a07d0ffa15c3323b0eaad37

22 months agoAvoid a segfault in test program showdb.c that could occur when analyzing a corrupt db.
dan [Thu, 14 Sep 2023 14:05:51 +0000 (14:05 +0000)] 
Avoid a segfault in test program showdb.c that could occur when analyzing a corrupt db.

FossilOrigin-Name: 6bf3e90687d48243544cc07baa01cb1b25ee0b77c59437f96c8da8e5d8b8095e

22 months agoImprove the sqlite3IntFloatCompare() routine so that it is testable.
drh [Thu, 14 Sep 2023 13:10:17 +0000 (13:10 +0000)] 
Improve the sqlite3IntFloatCompare() routine so that it is testable.

FossilOrigin-Name: bb221381fa38db5be1222d89c567a9bca0e6c441e26a8c797bd326b263556afb

22 months agoDo not set the global bUseLongDouble flag based purely on sizeof(long double)
drh [Thu, 14 Sep 2023 10:46:50 +0000 (10:46 +0000)] 
Do not set the global bUseLongDouble flag based purely on sizeof(long double)
being more than 8.  That is a necessary but not sufficient condition to use
the long double routines.  Instead, do a run-time test to verify that long
double really does provide extra precision.

FossilOrigin-Name: aa999d490b743f455f2fb6c41009098330380f0bc2e9b1c28fbc82141a9138ce

22 months agoReduce the number of calls to sqlite3_mprintf() made by RTree. rtree-performance
drh [Thu, 14 Sep 2023 01:46:57 +0000 (01:46 +0000)] 
Reduce the number of calls to sqlite3_mprintf() made by RTree.

FossilOrigin-Name: f158b7d4917e0951fbb86a6f438abcb618d8602566fa54bf04c05a37f3a73513

22 months agoJNI: enable the fts5-customization bits by default but elide them from the docs until...
stephan [Wed, 13 Sep 2023 21:32:20 +0000 (21:32 +0000)] 
JNI: enable the fts5-customization bits by default but elide them from the docs until it's clearer where they're headed. Unrelated minor doc tweaks.

FossilOrigin-Name: 21adb1aef24398fba918a5e1479ce2b6fd7e86d87eb9f2bea86a0eb43e8809c2

22 months agoImproved comments on the hasHighPrecisionDouble() routine. No changes to runtime-longdouble-test
drh [Wed, 13 Sep 2023 20:35:04 +0000 (20:35 +0000)] 
Improved comments on the hasHighPrecisionDouble() routine.  No changes to
the underlying code.

FossilOrigin-Name: 810c635ce063d873e969bf83339c654f6008e84ce8a61f0ffc61806e98d13dde

22 months agoDetermine at start time whether or not the underlying hardware supports
drh [Wed, 13 Sep 2023 20:06:46 +0000 (20:06 +0000)] 
Determine at start time whether or not the underlying hardware supports
high-precision long double computations.

FossilOrigin-Name: 9a854b919667e0e679a259542b2ee444ee416dbd73ecd9458f6ced35d9d3f264

22 months agoOmit the Reinsert algorithm from RTree. This causes most benchmarks to run
drh [Wed, 13 Sep 2023 17:30:12 +0000 (17:30 +0000)] 
Omit the Reinsert algorithm from RTree.  This causes most benchmarks to run
faster, at the expense of having a slightly less dense and hence larger index
(example: 33 entries/node versus 34 entries/node).

FossilOrigin-Name: b3049a1d3dbdd63c471499c2f6b417655defe9ad90228e7cc722f5be877aae01

22 months agoDoc corrections for the previous checkin.
stephan [Wed, 13 Sep 2023 17:16:25 +0000 (17:16 +0000)] 
Doc corrections for the previous checkin.

FossilOrigin-Name: 9ea0a9f39d03707d251af5af08d1ba94958704ba74019d7e8823ccd21936023c

22 months agoAdd JNI sqlite3_prepare_multi(), based on feedback.
stephan [Wed, 13 Sep 2023 17:11:32 +0000 (17:11 +0000)] 
Add JNI sqlite3_prepare_multi(), based on feedback.

FossilOrigin-Name: fa1c1534724b03debc83ae35c2fadab83faf4b4e62b91981fed103888de41396

22 months agoPerformance optimization to cellContains() in RTREE.
drh [Wed, 13 Sep 2023 14:07:07 +0000 (14:07 +0000)] 
Performance optimization to cellContains() in RTREE.

FossilOrigin-Name: 43cde22bf3f36687df231eddf642581d1d4f4102ad8568d31f5b2ff0302ca800

22 months agoIn the ChooseLeaf algorithm of RTREE, do an initial pass through the cells
drh [Wed, 13 Sep 2023 13:12:08 +0000 (13:12 +0000)] 
In the ChooseLeaf algorithm of RTREE, do an initial pass through the cells
of a node looking for solutions that involve no cell enlargement.  Only look
for the minimum cell enlargement if the enlargement is non-zero for all cells.
This results in a performance improvement by reducing the number of calls
to cellUnion().

FossilOrigin-Name: 59f0e239d19393190911ea3bd89b5a24be0d85d64ccf51906efc9537ad5d7298

22 months agoReduce the number of calls to cellArea() in the ChooseLeaf() algorithm of
drh [Wed, 13 Sep 2023 12:06:02 +0000 (12:06 +0000)] 
Reduce the number of calls to cellArea() in the ChooseLeaf() algorithm of
rtree.

FossilOrigin-Name: c633fe6be0edc07a0aa1ac819d58b6c629b7c95b47b63516ae1b0a937f6a2b89

22 months agoRemove unused variable from the ChooseLeaf algorithm in r-tree.
drh [Wed, 13 Sep 2023 11:36:44 +0000 (11:36 +0000)] 
Remove unused variable from the ChooseLeaf algorithm in r-tree.

FossilOrigin-Name: fb2e4a8067edc29ba64973820f265b21dfee0d32f4d675d32100d5eef93c2830

22 months agoReplace an if() condition in fts5 that is always true with an assert().
dan [Wed, 13 Sep 2023 11:24:58 +0000 (11:24 +0000)] 
Replace an if() condition in fts5 that is always true with an assert().

FossilOrigin-Name: 2170312c8d7f076cbb8319227de3fac981432dae186bc1928cd217e41119b580

22 months agoCLI .import to accept EOF in lieu of record terminator on last field of CSV (with...
larrybr [Tue, 12 Sep 2023 23:21:39 +0000 (23:21 +0000)] 
CLI .import to accept EOF in lieu of record terminator on last field of CSV (with multiple field records), per RFC 4180. [forum:5b21c25bdfa|forum post 5b21c25bdfa]

FossilOrigin-Name: 6f7842f577a28df1f809cd4bae9e8eafa26f2b54a25a1362ebbdebf5026be57c

22 months agoFix a use-after-free error in fts5 that could occur when querying the "rank" column...
dan [Tue, 12 Sep 2023 18:36:46 +0000 (18:36 +0000)] 
Fix a use-after-free error in fts5 that could occur when querying the "rank" column immediately after another connection changes its definition. [forum:a2dd636330|forum post a2dd636330].

FossilOrigin-Name: cb54c2da52d3175844127ead41cfed18793e91ea52e02af2d57c1d17b4312437

22 months agoClarify some metrics output in Tester1.java.
stephan [Tue, 12 Sep 2023 17:49:25 +0000 (17:49 +0000)] 
Clarify some metrics output in Tester1.java.

FossilOrigin-Name: 4ae7199a82f0b6e0f5575e39d8bd454e527ab949f0c59b773a44a078c65c5676

22 months agoRe-add the fts5 decls to sqlite3-jni.h, removed in a rebuild without fts5 enabled...
stephan [Tue, 12 Sep 2023 17:06:51 +0000 (17:06 +0000)] 
Re-add the fts5 decls to sqlite3-jni.h, removed in a rebuild without fts5 enabled. Need a better solution for this problem.

FossilOrigin-Name: 6f269790a09350f49103bb0925e2a78a1f9b7a8aad84408eabbb8d64ef79d551

22 months agoRename JNI sqlite3_errmsg() to sqlite3_errmsg16() for overall constency with the...
stephan [Tue, 12 Sep 2023 17:03:40 +0000 (17:03 +0000)] 
Rename JNI sqlite3_errmsg() to sqlite3_errmsg16() for overall constency with the text()/text16() family of functions.

FossilOrigin-Name: c4a8d8a5711bd2abeaf1c31046784d1bccff4b98e96522250866d1ee8ec6a9fe

22 months agoJNI readme fix.
stephan [Tue, 12 Sep 2023 16:33:57 +0000 (16:33 +0000)] 
JNI readme fix.

FossilOrigin-Name: 7dde000efcf170c33701947d1aab71bb45b2b0ae8646ee41bb2b2adbee56d1e6

22 months ago64-bit builds on Windows default to using UTF-8 output (as if the -utf8
drh [Tue, 12 Sep 2023 14:36:07 +0000 (14:36 +0000)] 
64-bit builds on Windows default to using UTF-8 output (as if the -utf8
command-line option had been specified.)  32-bit builds continue to use
Windows code pages.  There is also a new -no-utf8 command-line option to
force the use of legacy code pages.

FossilOrigin-Name: d8c7560e8822f336e8c4b300eb1f2e55203fdf9e756d2e8af719563235f79ebc