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

2 years 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

2 years 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

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

FossilOrigin-Name: 45dd1760875b1ad899a10189c6f5a0a9a0677903794fb5a06ffacd39952a7882

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

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

FossilOrigin-Name: 5c0815fa2e422d81198a43a2c04a022e319fcbcadfd4be4437f2e663892ca26b

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

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

FossilOrigin-Name: 7dde000efcf170c33701947d1aab71bb45b2b0ae8646ee41bb2b2adbee56d1e6

2 years 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

2 years agoShow the "(utf8)" tag on the CLI banner in Windows if in UTF8 mode. cli-utf8
drh [Tue, 12 Sep 2023 14:09:45 +0000 (14:09 +0000)] 
Show the "(utf8)" tag on the CLI banner in Windows if in UTF8 mode.

FossilOrigin-Name: 822699a4d9756ec68f17d6e06da7f994730bcf5c7d69ca15e9131721c4ff3b19

2 years agoAdd the -no-utf8 option to the Windows CLI to cause UTF-8 mode to be omitted.
drh [Mon, 11 Sep 2023 20:09:05 +0000 (20:09 +0000)] 
Add the -no-utf8 option to the Windows CLI to cause UTF-8 mode to be omitted.

FossilOrigin-Name: 4cb799c690986b8bd38d07461998824fa53418f7fe31f59d0bf38cae328d9b89

2 years agoMake the -utf8 option the default behavior in the CLI on Windows for 64-bit
drh [Mon, 11 Sep 2023 20:02:38 +0000 (20:02 +0000)] 
Make the -utf8 option the default behavior in the CLI on Windows for 64-bit
builds.

FossilOrigin-Name: 8b3c306def81546c5987f0f245d2bf3960218254c2833e9c27cd242e9118db62

2 years agoRefuse to build amalgamation-tarball and snapshot-tarball if the TEA version
drh [Mon, 11 Sep 2023 15:27:27 +0000 (15:27 +0000)] 
Refuse to build amalgamation-tarball and snapshot-tarball if the TEA version
number disagrees with ./VERSION.

FossilOrigin-Name: 3308fdda4b81c110ba4a66d0b325e7653c2f8155e7864aeb78991ed1da061836

2 years agoMerge in JNI's significant divergence since it adopted sqlite3_client_data().
stephan [Mon, 11 Sep 2023 15:20:15 +0000 (15:20 +0000)] 
Merge in JNI's significant divergence since it adopted sqlite3_client_data().

FossilOrigin-Name: e8e07dbbeaa7799eb0b90726e18e994aaf8c8d316ab4bdb06da732bc51cf0919

2 years agoAdd support for the sqlite3_get_clientdata() and sqlite3_set_clientdata()
drh [Mon, 11 Sep 2023 14:55:05 +0000 (14:55 +0000)] 
Add support for the sqlite3_get_clientdata() and sqlite3_set_clientdata()
interfaces, to better support JNI.

FossilOrigin-Name: 9806c0dd2802d68b67c25c4f3347ed532f9a98b051e775d34e9182dd2f099891