]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
15 months agoFix typos in comments. Provided ".wheretrace" debugging output for the interstage-heuristic
drh [Tue, 2 Apr 2024 14:12:29 +0000 (14:12 +0000)] 
Fix typos in comments.  Provided ".wheretrace" debugging output for the
interstage heuristic module.  Do omit automatic index loops in the
interstage heuristic.

FossilOrigin-Name: 186dcae19e249db36de15f295999cff25063b54ee3d5d481cd2ba99b6d13148e

15 months agoAdd a heuristic in between the two solver() passes of the query planner that
drh [Tue, 2 Apr 2024 11:44:44 +0000 (11:44 +0000)] 
Add a heuristic in between the two solver() passes of the query planner that
tries to prevent a very slow query plan in cases where the output row count
estimate is imprecise.

FossilOrigin-Name: 8018417b0143ea11535f2457bf3e4b3755717c554a17df1076425b4251b5f2c6

15 months agoImproved comments in the query planner logic that computes the cost for a
drh [Mon, 1 Apr 2024 15:38:15 +0000 (15:38 +0000)] 
Improved comments in the query planner logic that computes the cost for a
particular step in a query plan.  No code changes.

FossilOrigin-Name: 0b2ac2cdc767db764e3ea8bbc33898cac4e1ec27fe8c9b60ce08a1785f921e6d

15 months agoMake explicit that sqlite3_keyword_name()'s index is 0-based, per forum request....
stephan [Sat, 30 Mar 2024 14:11:30 +0000 (14:11 +0000)] 
Make explicit that sqlite3_keyword_name()'s index is 0-based, per forum request. Doc changes only.

FossilOrigin-Name: 090943dc31e7a3af5c11c1c0953cb82ae3ca07ba000189bb85deaecc76921504

15 months agoDocument that the order of an update hook call is unspecied vis-a-vis the final resul...
stephan [Thu, 28 Mar 2024 10:58:18 +0000 (10:58 +0000)] 
Document that the order of an update hook call is unspecied vis-a-vis the final result of the operation which triggers that hook. Doc changes only.

FossilOrigin-Name: 3d4b1f0791384d3e531d6757daecf67e5b873954de61f37032474e3ae23cd22b

15 months agoUpdate comments in fts5.h.
dan [Wed, 27 Mar 2024 20:34:14 +0000 (20:34 +0000)] 
Update comments in fts5.h.

FossilOrigin-Name: 862945d5c432c27377e90d93d64c4655eefcc369d086eb51edef925fb3d80b57

15 months agoAdd extra tests to vtabL.test.
dan [Tue, 26 Mar 2024 18:07:39 +0000 (18:07 +0000)] 
Add extra tests to vtabL.test.

FossilOrigin-Name: fe209099f5c348f1280b9b827ffbf6a6742ebdd1a23ef189445147894b1832ba

15 months agoAvoid expanding integer values in columns with real affinity to the full 8-byte repre...
dan [Tue, 26 Mar 2024 11:14:52 +0000 (11:14 +0000)] 
Avoid expanding integer values in columns with real affinity to the full 8-byte representation when editing records as part of a DROP COLUMN command.

FossilOrigin-Name: a49296de0061931badaf3db6b965131a78b1c6c21b1eeb62815ea7adf767d0b3

15 months agoThe RAISE() operator is not a constant expression and cannot participate in
drh [Mon, 25 Mar 2024 20:35:14 +0000 (20:35 +0000)] 
The RAISE() operator is not a constant expression and cannot participate in
the VALUE-as-coroutine optimization.
dbsqlfuzz 74cf7c9904360322a6c917e4934b127543d1cd51

FossilOrigin-Name: 6a06dc73847716c88d65651d1bf0e002002303881df1389beac884d0032eae08

15 months agoAdd further tests for sqlite3_declare_vtab().
dan [Mon, 25 Mar 2024 20:00:40 +0000 (20:00 +0000)] 
Add further tests for sqlite3_declare_vtab().

FossilOrigin-Name: f3c4433f6b33087494c8d38ff9dbb008a1bd30b424ca9aaa51c1956d75a86249

15 months agoSimplifications to the sqlite3_declare_vtab() implementation. Changes
drh [Mon, 25 Mar 2024 19:31:03 +0000 (19:31 +0000)] 
Simplifications to the sqlite3_declare_vtab() implementation.  Changes
some conditionals into assert() statements, for coverage.

FossilOrigin-Name: ff7b898a6f9cb9aecb51bd6b63e253b4b7486ac9367f59c3c0491d78cfb39993

15 months agoFix a theoretical OOB memory access in sqlite3_stmt_scanstatus_v2().
dan [Mon, 25 Mar 2024 18:30:15 +0000 (18:30 +0000)] 
Fix a theoretical OOB memory access in sqlite3_stmt_scanstatus_v2().

FossilOrigin-Name: 87be9580747b405c2c534beadb0f95cee0d4f34e0245f90e157a6b7ada38e092

15 months agoRevert the previous change. Instead, do a pre-check of the CREATE TABLE
drh [Mon, 25 Mar 2024 18:24:28 +0000 (18:24 +0000)] 
Revert the previous change.  Instead, do a pre-check of the CREATE TABLE
statement that is the second argument to sqlite3_declare_vtab() and if
the first two keywords are not "CREATE" and "TABLE", then raise an
SQLITE_MISUSE error.

FossilOrigin-Name: 6a2ff8351244da2336055454dfad2dd40534b7cfb51e840f7f8cf2ddacf8649e

15 months agoRemove an ALWAYS() from a condition that can be true.
drh [Mon, 25 Mar 2024 17:43:11 +0000 (17:43 +0000)] 
Remove an ALWAYS() from a condition that can be true.

FossilOrigin-Name: 715fcf033a6c0c64fa3076d58be8c39246aebef922c1a44a31831b40e165015e

15 months agoFix an inaccuracy in automatic indexes that was exposed by the fix
drh [Mon, 25 Mar 2024 14:44:10 +0000 (14:44 +0000)] 
Fix an inaccuracy in automatic indexes that was exposed by the fix
at [80c4223098c1827f].

FossilOrigin-Name: fdc9406f1c8ba4a7341c1e408f6042ddc788cf65f98e1de2ee101390bfb0abae

15 months agoFix the pragma4.test script so that it works with SQLITE_OMIT_VIRTUALTABLE.
drh [Mon, 25 Mar 2024 13:18:46 +0000 (13:18 +0000)] 
Fix the pragma4.test script so that it works with SQLITE_OMIT_VIRTUALTABLE.

FossilOrigin-Name: f8fe6fb69c4164d087783a0d6990112afabea78daa4d8985eb6df7df6f45ac27

15 months agoFix recent test case changes so that they also work on Windows.
drh [Mon, 25 Mar 2024 12:28:06 +0000 (12:28 +0000)] 
Fix recent test case changes so that they also work on Windows.

FossilOrigin-Name: 38578b5af2e97c420f3106bc486318604aecbaa327365bbc2e9518be84491495

15 months agoUse the SQLITE_CONSTRAINT return value from xBestIndex to prohibit bad
drh [Mon, 25 Mar 2024 11:34:42 +0000 (11:34 +0000)] 
Use the SQLITE_CONSTRAINT return value from xBestIndex to prohibit bad
query plans in the pragma virtual table.

FossilOrigin-Name: b1259d4448f744861e416f42328c1450854370e5c77102d2a5abe5cf6c7f12bd

15 months agoImprovements to the vtablog.c extension: Eliminate memory leaks.
drh [Mon, 25 Mar 2024 10:55:08 +0000 (10:55 +0000)] 
Improvements to the vtablog.c extension:  Eliminate memory leaks.
More diagnostic output for xBestIndex.

FossilOrigin-Name: 92e9a71bc4daa261d7c9a81fb66f7d7c0f0a74eb9e0c9dec8b4651acc5217bff

15 months agoFlag sqlite3_trace() and sqlite3_profile() as deprecated so that the doc generator...
stephan [Mon, 25 Mar 2024 10:28:10 +0000 (10:28 +0000)] 
Flag sqlite3_trace() and sqlite3_profile() as deprecated so that the doc generator for funclist.html sees them as such, and add 'Deprecated' to their page's title for consistency with other deprecated APIs. Comment changes only. Addresses [forum:0901025836|forum post 0901025836].

FossilOrigin-Name: 87c54f93f5711739741ed0ff3c1a6fe24ffc8a025b43523bf78c1f6be8c1b4cd

15 months agoImprovements to the vtablog.c extension, for better logging of virtual
drh [Mon, 25 Mar 2024 00:38:55 +0000 (00:38 +0000)] 
Improvements to the vtablog.c extension, for better logging of virtual
table interactions.

FossilOrigin-Name: e253bb36a5f4f601c9b08858b55a9ce198239ace8efa8dab7c0ec019028967c1

15 months agoFix the xBestIndex method of the pragma virtual table so that it correctly
drh [Sun, 24 Mar 2024 21:10:45 +0000 (21:10 +0000)] 
Fix the xBestIndex method of the pragma virtual table so that it correctly
gives a higher cost to plans where the schema hidden parameter is
unconstrained.  Fix for the problem reported by
[forum:/forumpost/85b6a8b6705fb77a|forum post 85b6a8b6705fb77a].

FossilOrigin-Name: bc516ff5202ee6e9834266bf755fe26e30ac557dcc7975ca7a06dfe33874fcd2

15 months agoImproved "wheretrace" debugging output for calls to xBestIndex. No changes
drh [Sun, 24 Mar 2024 20:26:59 +0000 (20:26 +0000)] 
Improved "wheretrace" debugging output for calls to xBestIndex.  No changes
to release code.

FossilOrigin-Name: 33966bb06ce9a8e90734de59a8d43c523f60870d20be64789638da4c84a8b81b

15 months agoDo not automatically assume that ROWID is NOT NULL when compiled with
drh [Sun, 24 Mar 2024 16:33:31 +0000 (16:33 +0000)] 
Do not automatically assume that ROWID is NOT NULL when compiled with
SQLITE_ALLOW_ROWID_IN_VIEW.
dbsqlfuzz 31b38eeb63a4e1562de665078f52b7b47a7543cf

FossilOrigin-Name: 80c4223098c1827ff3a564f1f9a4203164a943e9a83eef99df68378fa3c4764b

15 months agoFix an adverse interaction between CREATE TABLE AS and the new
drh [Sat, 23 Mar 2024 15:17:38 +0000 (15:17 +0000)] 
Fix an adverse interaction between CREATE TABLE AS and the new
[/info/a120c9235f125e05|VALUES-as-coroutine] optimization.
dbsqlfuzz c2c5e7e08b7e489d270a26d895077a03f678c33b

FossilOrigin-Name: 84b6fdea0bf07c73df0ca8ef110db066164a5f34606e6c069a060476e04ef44e

15 months agoFix incorrect boundary assert()s on the new OP_IfSizeBetween opcode.
drh [Fri, 22 Mar 2024 10:32:14 +0000 (10:32 +0000)] 
Fix incorrect boundary assert()s on the new OP_IfSizeBetween opcode.

FossilOrigin-Name: 8eda4797c573382cbb989a4ab4b1f19d8fd538dbc9818d86a9aa6189cfa90f37

15 months agoTest case for the assert() problem fixed by [9ba3cff9d48fe8fc].
drh [Thu, 21 Mar 2024 22:18:24 +0000 (22:18 +0000)] 
Test case for the assert() problem fixed by [9ba3cff9d48fe8fc].

FossilOrigin-Name: 865f0de7a17ce6059b8f0708002cff5f13b9dba3ebc41896ee0fdc21ae4f3740

15 months agoAdd comments (only, no code) to the JS sqlite3_config() bindings reminding us why...
stephan [Thu, 21 Mar 2024 15:52:52 +0000 (15:52 +0000)] 
Add comments (only, no code) to the JS sqlite3_config() bindings reminding us why SQLITE_CONFIG_ROWID_IN_VIEW is specifically not included. JNI does not need this treatment because it explicitly supports only a very small subset of config options.

FossilOrigin-Name: 4fea396221e84f9532f9327226691621a23bd966a860329fc579141c69cf7f64

15 months agoEnhancements to testrunner.tcl:
drh [Thu, 21 Mar 2024 11:46:52 +0000 (11:46 +0000)] 
Enhancements to testrunner.tcl:
(1) Add the "--config CONFIGS" option, to that only configuration named
on the comma-separated list CONFIGS are run.
(2) Add the "--omit CONFIGS" to omit configuration on the CONFIGS list
(3) Add the Android configuration to "release"

FossilOrigin-Name: 4ccb372967fab779b29be8f01c879a99ef247981466f81f55e18e3961fbd7d5a

15 months agoHave os_unix.c reuse cached file-descriptors in the case when a read-write fd is...
dan [Thu, 21 Mar 2024 11:37:36 +0000 (11:37 +0000)] 
Have os_unix.c reuse cached file-descriptors in the case when a read-write fd is requested on a read-only file and a read-only fd returned.

FossilOrigin-Name: a678e85402af08c1e387bf30ff2205f84dd7da749755da565d70f831c007a3d9

15 months agoFix all test cases so that they work with SQLITE_ALLOW_ROWID_IN_VIEW.
drh [Thu, 21 Mar 2024 10:35:33 +0000 (10:35 +0000)] 
Fix all test cases so that they work with SQLITE_ALLOW_ROWID_IN_VIEW.

FossilOrigin-Name: 66c69e2f20f7692e0f34743ae97b09c4d8d11b874cdc5381795f2d1e0410f724

15 months agoChange EXPLAIN QUERY PLAN output to say "USE TEMP B-TREE FOR LAST TERM OF ORDER BY...
dan [Wed, 20 Mar 2024 16:56:12 +0000 (16:56 +0000)] 
Change EXPLAIN QUERY PLAN output to say "USE TEMP B-TREE FOR LAST TERM OF ORDER BY", or "LAST N TERMS OF ORDER BY", instead of "RIGHT PART OF ORDER BY".

FossilOrigin-Name: 7e13a2c7583dbcb660adde6b0465da037365971c56726b8f18a541d8803ffeed

15 months agoChange EXPLAIN QUERY PLAN output to say "USE TEMP B-TREE FOR LAST TERM OF ORDER BY... eqp-orderby
dan [Wed, 20 Mar 2024 16:27:08 +0000 (16:27 +0000)] 
Change EXPLAIN QUERY PLAN output to say "USE TEMP B-TREE FOR LAST TERM OF ORDER BY", or "LAST N TERMS OF ORDER BY", instead of "RIGHT PART OF ORDER BY".

FossilOrigin-Name: cd547c500442f3f58c05d6da8a67c3238560c5204ea62ec14afa844cc8fb94f0

15 months agoFix the SQLITE_ALLOW_ROWID_IN_VIEW bug-compatibility option so that it works
drh [Wed, 20 Mar 2024 10:45:13 +0000 (10:45 +0000)] 
Fix the SQLITE_ALLOW_ROWID_IN_VIEW bug-compatibility option so that it works
again.  Add the SQLITE_CONFIG_ROWID_IN_VIEW sqlite3_config() value
to optionally disable the bug-compatibility mode at start-time.  Enable
testing of SQLITE_ALLOW_ROWID_IN_VIEW.

FossilOrigin-Name: b6802565df0f63286a7ef26c92d3ed817895f244920a24909cd855090fdfa08c

15 months agoFix a typo in a comment. rowid-in-view
drh [Wed, 20 Mar 2024 10:40:25 +0000 (10:40 +0000)] 
Fix a typo in a comment.

FossilOrigin-Name: 54680d0fbec1f0575ac4be6dca866971795dab2c42b02a492d5cd485f46d153f

15 months agoFix typos in the SQLITE_CONFIG_ROWID_IN_VIEW documentation.
drh [Wed, 20 Mar 2024 09:45:44 +0000 (09:45 +0000)] 
Fix typos in the SQLITE_CONFIG_ROWID_IN_VIEW documentation.

FossilOrigin-Name: 1ad1ca498296493c8e89cda911cc153baa51c90ae6c19961841e6b4e37302a23

15 months agoChange the SQLITE_CONFIG_NO_ROWID_IN_VIEW configuration option to be
drh [Tue, 19 Mar 2024 23:01:56 +0000 (23:01 +0000)] 
Change the SQLITE_CONFIG_NO_ROWID_IN_VIEW configuration option to be
just SQLITE_CONFIG_ROWID_IN_VIEW (without the "_NO_" in the middle) and give
it the ability to turn the option on and off.  Otherwise, it is difficult
to test.

FossilOrigin-Name: 5d412edc2e378999ad798d1d7d73c7f7a17ee4e3c751a0dd00b9d5ce32759550

15 months agoReturn the error "ambiguous column name: rowid", instead of "no such column: rowid...
drh [Tue, 19 Mar 2024 19:56:39 +0000 (19:56 +0000)] 
Return the error "ambiguous column name: rowid", instead of "no such column: rowid", when a "rowid" reference is ambiguous.

FossilOrigin-Name: 0615bdae2dfc70c7e0416a28e89ffde31fa44ed4b3dac46e5ef20eed0d89e58c

15 months agoAdd the --no-rowid-in-view option to the --help output of the CLI.
drh [Tue, 19 Mar 2024 19:48:50 +0000 (19:48 +0000)] 
Add the --no-rowid-in-view option to the --help output of the CLI.

FossilOrigin-Name: 134da9c348a5e3b5cef97b79f37d48257afd4fa958a84f6930ac9874284a14cd

15 months agoMake sure the new u1.nRow value is copied when making a copy of a SrcItem
drh [Tue, 19 Mar 2024 19:42:56 +0000 (19:42 +0000)] 
Make sure the new u1.nRow value is copied when making a copy of a SrcItem
object.  This fixes a problem in [ac6f095e13e43d66] from yesterady.

FossilOrigin-Name: 262f8f9d80d37160e4126634b99aa48fce2073e61f6365e8bdbe1cc4fa560a96

15 months agoUpdate test scripts to account for [8fcea4cd].
dan [Tue, 19 Mar 2024 16:51:18 +0000 (16:51 +0000)] 
Update test scripts to account for [8fcea4cd].

FossilOrigin-Name: 0c543c51a8c5c8916f649a5e7fd3fedc9c05f2df36064b1699ea6f5e08eaa9e0

15 months agoIn the name resolver when SQLITE_ALLOW_ROWID_IN_INDEX is enabled, if there
drh [Tue, 19 Mar 2024 16:34:32 +0000 (16:34 +0000)] 
In the name resolver when SQLITE_ALLOW_ROWID_IN_INDEX is enabled, if there
are multiple views that might resolve to the "rowid" but only one real table,
then use that one real table and ignore the views.

FossilOrigin-Name: 8fcea4cdfc89dd78eca5e7f62aa31aff0e296f41e79349d3af1cc3a2bc4d77c6

15 months agoUpdate tests to work with SQLITE_ALLOW_ROWID_IN_VIEW.
dan [Tue, 19 Mar 2024 15:27:15 +0000 (15:27 +0000)] 
Update tests to work with SQLITE_ALLOW_ROWID_IN_VIEW.

FossilOrigin-Name: 495b8c7b08b998ddfe2ad055703f058c768e7e94014952e5cd8a81c7c1515cb1

15 months agoReturn the error "ambiguous column name: rowid", instead of "no such column: rowid... ambiguous-rowid-error
dan [Tue, 19 Mar 2024 14:55:49 +0000 (14:55 +0000)] 
Return the error "ambiguous column name: rowid", instead of "no such column: rowid", when a "rowid" reference is ambiguous.

FossilOrigin-Name: 021f34fcfed41b607be8169bbda59aef93f130108d944f4741b46e8e345b2bbb

15 months agoFix the fuzzinvariants.c test module so that it does not generate
drh [Tue, 19 Mar 2024 14:38:39 +0000 (14:38 +0000)] 
Fix the fuzzinvariants.c test module so that it does not generate
invariants that depend on rowid when SQLITE_ALLOW_ROWID_IN_VIEW is used,
since rowid values can be unreliable in that context.

FossilOrigin-Name: 0d711aaaa14472a82f8893e1b07d845073f3d018bd5b8093ec0b00ffbbc8cd5a

15 months agoImprovements to the first check-in on this branch, causing less collateral
drh [Tue, 19 Mar 2024 14:21:26 +0000 (14:21 +0000)] 
Improvements to the first check-in on this branch, causing less collateral
damage.

FossilOrigin-Name: 7bc882897b6910f93695ad372445df7791b096412089ccbcd4fde365c62fa074

15 months agoOn second thought, change SQLITE_TESTCTRL_ROWID_IN_VIEW into a start-time
drh [Tue, 19 Mar 2024 13:55:10 +0000 (13:55 +0000)] 
On second thought, change SQLITE_TESTCTRL_ROWID_IN_VIEW into a start-time
option SQLITE_CONFIG_NO_ROWID_IN_VIEW.

FossilOrigin-Name: b8e045c9e1d098d116f8745704b10ed76569d4b063c0b81cce16bc136930755d

15 months agoWhen compiled with SQLITE_ALLOW_ROWID_IN_VIEW, rowid-in-view is on by default
drh [Tue, 19 Mar 2024 13:31:54 +0000 (13:31 +0000)] 
When compiled with SQLITE_ALLOW_ROWID_IN_VIEW, rowid-in-view is on by default
but can now be turned off using SQLITE_TESTCTRL_ROWID_IN_VIEW.  Without the
compile-time option, rowid-in-view is always off.

FossilOrigin-Name: 8a6196ab29052071be753c5c77ac945c2d62ecc8019c6160f954eafe34ab05a8

15 months agoAdjustments to the test cases for the previous check-in to make them
drh [Tue, 19 Mar 2024 10:41:18 +0000 (10:41 +0000)] 
Adjustments to the test cases for the previous check-in to make them
cross-platform Linux/Mac/Windows.  Test chance only.  No change to core code.

FossilOrigin-Name: 0dddadbd5b217a48bb5c1b0568a03fbafb89dba98c577727bf4f79ff7e0ca849

15 months agoFix another problem from [c63e26e705f5e967] involving infinities and the
drh [Tue, 19 Mar 2024 10:16:17 +0000 (10:16 +0000)] 
Fix another problem from [c63e26e705f5e967] involving infinities and the
Kahan-Babushka-Neumaier summation algorithm.  Problem reported by
[forum:/forumpost/23b8688ef4|forum post 23b8688ef4].

FossilOrigin-Name: 45d272ef38d5ee6189f81369aefb8e3ac35868a67687012d93c84f2bbc42520a

15 months agoFirst steps toward getting -DSQLITE_ALLOW_ROWID_IN_VIEW to work again. That
drh [Tue, 19 Mar 2024 02:30:24 +0000 (02:30 +0000)] 
First steps toward getting -DSQLITE_ALLOW_ROWID_IN_VIEW to work again.  That
compile-time option is untested, undocumented, and unsupported.  But it was
mentioned in the release notes for version 3.36.0, so I think that means we
need to support it forever.

FossilOrigin-Name: 7c46ff640247584f1ea260c062de29a0e49f649d1894a526574c1a479006a1fc

15 months agoFix asan problems in sqlite3rbu.c. Enable RBU for sanitizer release tests.
dan [Mon, 18 Mar 2024 21:08:33 +0000 (21:08 +0000)] 
Fix asan problems in sqlite3rbu.c. Enable RBU for sanitizer release tests.

FossilOrigin-Name: ad2ae7717e7a10cf42aeabd3c544e7884fa082295c2babf0fdb19a684d2aba1e

15 months agoAvoid spurious SQLITE_IOERR_DATA errors when reading partial pages from a cksumvfs...
dan [Mon, 18 Mar 2024 20:52:45 +0000 (20:52 +0000)] 
Avoid spurious SQLITE_IOERR_DATA errors when reading partial pages from a cksumvfs database using a SQLITE_DIRECT_OVERFLOW_READ build.

FossilOrigin-Name: 0f485dbece9146eabe5a5c0998a9e35c685a170c3fe6d4509e92aa8dae18a2c0

15 months agoRemove unnecessary blank lines from build commands in the default Makefile.in.
drh [Mon, 18 Mar 2024 18:03:17 +0000 (18:03 +0000)] 
Remove unnecessary blank lines from build commands in the default Makefile.in.

FossilOrigin-Name: 76fb3a908f45230b956cb659c754e47603e80aa72a2aad50d479437a9c013f61

15 months agoAdd the "VALUES-as-coroutine" optimization. Large VALUES clauses on an
drh [Mon, 18 Mar 2024 18:00:17 +0000 (18:00 +0000)] 
Add the "VALUES-as-coroutine" optimization.  Large VALUES clauses on an
INSERT, for example, prepare and run in about half the time and with half
the memory.  This check-in also includes enhancements to the internal
sqlite3ExprIsConstant() routine to recognize pure SQL functions as constant
if they have constant arguments.

FossilOrigin-Name: a120c9235f125e05be494038c16a9dd326fd79837698bef17e7879cd0cd75831

15 months agoFix harmless compiler (scan-build) warnings. exp-values-clause2
drh [Mon, 18 Mar 2024 17:13:52 +0000 (17:13 +0000)] 
Fix harmless compiler (scan-build) warnings.

FossilOrigin-Name: c86f9f2a15ffc726b7f0d9bba5a8c4dfdaeea6a297e0b591c554fff3d1fe6e1c

15 months agoAllow the VALUES-as-coroutine optimization to be applied to later rows of
drh [Mon, 18 Mar 2024 16:30:00 +0000 (16:30 +0000)] 
Allow the VALUES-as-coroutine optimization to be applied to later rows of
a VALUES clause even if earlier rows do not qualify.

FossilOrigin-Name: 9a47ea7f0f675f7bf4710901487ce34c7689e618cd1d8b9f94f0ff7ebc3f2841

15 months agoChange a test case to use a window function rather than random() to disable
drh [Mon, 18 Mar 2024 15:10:00 +0000 (15:10 +0000)] 
Change a test case to use a window function rather than random() to disable
the VALUES clause optimization.

FossilOrigin-Name: c589149a138fa0a6be3153986fc0f315e052e13ebc0e7006b6529ca02bae413b

15 months agoAdd assert() statements to validate access to the SrcItem.u1.nRow union member.
drh [Mon, 18 Mar 2024 13:31:24 +0000 (13:31 +0000)] 
Add assert() statements to validate access to the SrcItem.u1.nRow union member.

FossilOrigin-Name: 21f616d9b948efca441f8d45d0a95f4c052ce8b6daec7fa582ad9a00b82ca570

15 months agoFix the patch at [10ee6fcba08ab128] so that it works on reduced-size Expr
drh [Mon, 18 Mar 2024 13:10:54 +0000 (13:10 +0000)] 
Fix the patch at [10ee6fcba08ab128] so that it works on reduced-size Expr
nodes.

FossilOrigin-Name: 260bd764c3f2d6d067adb9cd0045b7c24d5e00b02ab2735b1cba455a6143ff4c

15 months agoImprovements to EXPLAIN QUERY PLAN output for multi-row VALUES claues.
drh [Mon, 18 Mar 2024 12:49:30 +0000 (12:49 +0000)] 
Improvements to EXPLAIN QUERY PLAN output for multi-row VALUES claues.

FossilOrigin-Name: ac6f095e13e43d66c06552c8b01f6bec3407c9d41a34c4cdb0be57b0b828ad0d

15 months agoEnsure the database schema has been loaded and the database encoding gleaned before...
dan [Mon, 18 Mar 2024 11:12:22 +0000 (11:12 +0000)] 
Ensure the database schema has been loaded and the database encoding gleaned before beginning to code a multi-row VALUES clause.

FossilOrigin-Name: 2ff476eb3d1f4a2146f4a48b57895a00a3ff5beb29afa679ae53ea58cac07c76

15 months agoFix a problem caused by a non-aggregate function with an OVER clause in a multi-row...
dan [Mon, 18 Mar 2024 10:54:48 +0000 (10:54 +0000)] 
Fix a problem caused by a non-aggregate function with an OVER clause in a multi-row VALUES clause.

FossilOrigin-Name: 10ee6fcba08ab1281235197602148fe062560e1d5034a477b8e7b574dd3e2907

15 months agoOmit the "noop(X)" test SQL function. Accomplish the same thing using
drh [Sun, 17 Mar 2024 16:01:23 +0000 (16:01 +0000)] 
Omit the "noop(X)" test SQL function.  Accomplish the same thing using
the idiom:  "coalesce(X,random())".

FossilOrigin-Name: 0eb2fbb8910e7a372c50db3ae44238d7b161f0e45858b74061b5228aec5fcc7e

15 months agoAdd an ALWAYS on an unreachable branch.
drh [Sun, 17 Mar 2024 00:13:12 +0000 (00:13 +0000)] 
Add an ALWAYS on an unreachable branch.

FossilOrigin-Name: 0dce6211690210e802545cbca9b3375e07075e117fad3f8c921879da7671d981

15 months agoRecognize when an SQL function is constant and can occur inside an
drh [Sat, 16 Mar 2024 21:12:51 +0000 (21:12 +0000)] 
Recognize when an SQL function is constant and can occur inside an
optimized VALUES clause.

FossilOrigin-Name: c0e5ceb87d3cf28f22d381f863b8f91043804fd7901f23f3afb02fe698e6a12a

15 months agoA formerly impossible case has now become possible because of the new enhanced-expr-is-const
drh [Sat, 16 Mar 2024 21:04:32 +0000 (21:04 +0000)] 
A formerly impossible case has now become possible because of the new
ExprIsConstant enhancements.  So deal with that.

FossilOrigin-Name: 9ba3cff9d48fe8fc8a0a51291169599209d464465e44bdfd60058fd1e314a2b1

15 months agoFurther expand the scope of usage for the enhacement to expr-is-constant.
drh [Sat, 16 Mar 2024 20:15:34 +0000 (20:15 +0000)] 
Further expand the scope of usage for the enhacement to expr-is-constant.

FossilOrigin-Name: d7eadcf7dd089f0f4aa963c58f0df32edd951368c9906375fd62b0a61cd393b8

15 months agoAssert that the eCode is always non-zero upon entry into exprNodeIsConstant().
drh [Sat, 16 Mar 2024 19:48:51 +0000 (19:48 +0000)] 
Assert that the eCode is always non-zero upon entry into exprNodeIsConstant().

FossilOrigin-Name: f71b28f6713126745bca53e098dfe3444d4235d6a2b87ced5b333a7f0ee79be8

15 months agoActivate the enhanced constant-expression for the
drh [Sat, 16 Mar 2024 19:36:18 +0000 (19:36 +0000)] 
Activate the enhanced constant-expression for the
[constant propagation optimization](/info/f4229707ac08d66c).

FossilOrigin-Name: 92afea38881a1a4f266c79ddc6e1027cf17c288dcc8f7e7d50466899ac0054c4

15 months agoExtend the scope expr-is-constant for function to cover the IN-to-EQ
drh [Sat, 16 Mar 2024 17:04:08 +0000 (17:04 +0000)] 
Extend the scope expr-is-constant for function to cover the IN-to-EQ
optimization.

FossilOrigin-Name: dae669245c86021bcd28716aff6e316257cc8075d02081745d4b7de17f8ad553

15 months agoFix exprNodeIsConstantFunction() so that it returns WRC_Continue, not WRC_Abort,...
dan [Sat, 16 Mar 2024 14:27:10 +0000 (14:27 +0000)] 
Fix exprNodeIsConstantFunction() so that it returns WRC_Continue, not WRC_Abort, if the function really is constant.

FossilOrigin-Name: d85dd4de2d0989127e0ae6a2eec9d83a577777f8d5ba40700084a0b498016634

15 months agoEnhance the sqlite3ExprIsConstant() function so that it recognizes
drh [Sat, 16 Mar 2024 13:18:48 +0000 (13:18 +0000)] 
Enhance the sqlite3ExprIsConstant() function so that it recognizes
constant functions.  So far the enhancement only applies to the multi-row
VALUES clause, but it could possibly be applied in many other places.

FossilOrigin-Name: c9e0488c6c0135932b6e76b0f3f3acd69ef65327e0a54daa59777f35da1aef26

15 months agoNew options for testrunner.tcl: --stop-on-error and --stop-on-coredump.
drh [Fri, 15 Mar 2024 17:57:58 +0000 (17:57 +0000)] 
New options for testrunner.tcl:  --stop-on-error and --stop-on-coredump.

FossilOrigin-Name: 82035b9cfd28ef6b0ecc6f469f03d2b001189aa4925147cdb784b6b1964eb3b2

15 months agoFix (totally harmless) memory leaks in Lemon to avoid warnings during ASAN
drh [Fri, 15 Mar 2024 17:04:55 +0000 (17:04 +0000)] 
Fix (totally harmless) memory leaks in Lemon to avoid warnings during ASAN
builds.

FossilOrigin-Name: ce009205a8edc02b7d45ac01bd0e692c3d2c3ffeadb68e4f1bad20c39075e692

15 months agoTweaks to the func4.test test module (which tests the rarely used totype.c
drh [Fri, 15 Mar 2024 13:16:13 +0000 (13:16 +0000)] 
Tweaks to the func4.test test module (which tests the rarely used totype.c
extension) so that it works on i586 compiled using gcc-13 with -O0.  Details
at [forum:/forumpost/0a7553b0f734c033|forum post 0a7553b0f734c033].

FossilOrigin-Name: d0fbe779bc2460e120da4f39063a9f4121c700f0b86d85f4311715b1366c3515

15 months agoFix testcase to account for new behaviors with this branch.
drh [Thu, 14 Mar 2024 20:39:03 +0000 (20:39 +0000)] 
Fix testcase to account for new behaviors with this branch.

FossilOrigin-Name: 823e579362c05bb8accf6c3b158c5162a16eb23cf81d6021c9e3246e32583d1c

15 months agoFix a problem with ALTER TABLE and correlated multi-row VALUES clauses.
dan [Thu, 14 Mar 2024 19:31:06 +0000 (19:31 +0000)] 
Fix a problem with ALTER TABLE and correlated multi-row VALUES clauses.

FossilOrigin-Name: d543c829ef74dbd64105bd757ca660e4f02e9ce562be4f1688a701fa535351c4

15 months agoFix a problem handling "INSERT INTO ... SELECT ... UNION VALUES(...), (...)" and...
dan [Thu, 14 Mar 2024 19:01:17 +0000 (19:01 +0000)] 
Fix a problem handling "INSERT INTO ... SELECT ... UNION VALUES(...), (...)" and similar statements.

FossilOrigin-Name: e8a2a8198a97046ff376bc5d38e4bc0a24fcac79f5a0dadb9d29d953a862a012

15 months agoAvoid some OP_SCopy instructions in "INSERT INTO .. VALUES" statements that insert...
dan [Thu, 14 Mar 2024 17:04:18 +0000 (17:04 +0000)] 
Avoid some OP_SCopy instructions in "INSERT INTO .. VALUES" statements that insert more than one row in cases where the VALUES clause contains a value for all columns of the table.

FossilOrigin-Name: 988f0ea70cd21b3194011e0cd1ddd4990a07669e0fd9c37afa48f69698ab7212

15 months agoJS: remove an unused function argument and some debug-related comments. No functional...
stephan [Thu, 14 Mar 2024 13:18:19 +0000 (13:18 +0000)] 
JS: remove an unused function argument and some debug-related comments. No functional changes.

FossilOrigin-Name: f15709430d4ba2fcf5729bc30a45dacb77102927b82cda12de0b67935b526cc0

15 months agoAdd further tests for VALUES clauses in various contexts.
dan [Thu, 14 Mar 2024 11:45:39 +0000 (11:45 +0000)] 
Add further tests for VALUES clauses in various contexts.

FossilOrigin-Name: 973d197d9676c066a95cea77a27e36d2d7f5778283919d8cac4424d2ec952f47

15 months agoChange the way parse.y handles multi-row VALUES clauses to save a few cycles.
dan [Wed, 13 Mar 2024 20:04:11 +0000 (20:04 +0000)] 
Change the way parse.y handles multi-row VALUES clauses to save a few cycles.

FossilOrigin-Name: 88d5bc91a52675d2a83748b79ad50de0e9732b2afd23107627bdc604f744d275

15 months agoRemove unreachable code from this branch.
dan [Wed, 13 Mar 2024 18:41:05 +0000 (18:41 +0000)] 
Remove unreachable code from this branch.

FossilOrigin-Name: 657c7b4f9df53e041a33cfad00ee2f507ac09c97a2ae61164bd189d660d167da

15 months agoFix some OOM handling problems on this branch.
dan [Wed, 13 Mar 2024 17:33:45 +0000 (17:33 +0000)] 
Fix some OOM handling problems on this branch.

FossilOrigin-Name: 2085c7f12a3916ec883c31795e29f2e2b6641c30ecf748cce9bff7b13b061d1f

15 months agoMinor change to the "mdevtest" and "sdevtest" in testrunner.tcl, to make it
drh [Wed, 13 Mar 2024 16:32:05 +0000 (16:32 +0000)] 
Minor change to the "mdevtest" and "sdevtest" in testrunner.tcl, to make it
easier to add configurations in branches.

FossilOrigin-Name: 9349d94e05dcf266b02afcd89f1e433cdc45f23e8536b2f3f9aa242d5d89c307

15 months agoMerge trunk into this branch.
dan [Wed, 13 Mar 2024 15:47:52 +0000 (15:47 +0000)] 
Merge trunk into this branch.

FossilOrigin-Name: 38635651f08d42110c01d6b24f6e362e340511846294f8696af4afc795dae80d

15 months agoEnsure that if a multi-row VALUES cannot be coded while being parsed, the SF_MultiVal...
dan [Wed, 13 Mar 2024 15:44:31 +0000 (15:44 +0000)] 
Ensure that if a multi-row VALUES cannot be coded while being parsed, the SF_MultiValue flag is correctly set.

FossilOrigin-Name: 94791824a6f04782aac6bc16c182685e2d6ebf5c688dc9f8d59e479c6fd5a40e

15 months agoAvoid creating a co-routine incrementally for a VALUES clause that has affinities...
dan [Wed, 13 Mar 2024 15:34:44 +0000 (15:34 +0000)] 
Avoid creating a co-routine incrementally for a VALUES clause that has affinities other than NONE.

FossilOrigin-Name: 4229b12b327b05561dcf49b8585a66467d17d4e998b14eff65eb886f2434b53c

15 months agoIf the NJOB environment variable is a positive integer, it causes
drh [Wed, 13 Mar 2024 13:43:21 +0000 (13:43 +0000)] 
If the NJOB environment variable is a positive integer, it causes
testrunner.tcl to run that many jobs.

FossilOrigin-Name: 924281b94d8e6ba674d6fe2f7f01da890351355a854e9e6fe623fad1180f7392

15 months agoDocument the testrunner.tcl --explain option in doc/testrunner.md.
drh [Wed, 13 Mar 2024 13:27:16 +0000 (13:27 +0000)] 
Document the testrunner.tcl --explain option in doc/testrunner.md.

FossilOrigin-Name: 5a7b5fc99a9d5c7693a5707c2050a8c59a8f97732e4763a56982579f8d5959ec

15 months agoAdd the --explain option to testrunner.tcl.
drh [Wed, 13 Mar 2024 13:09:58 +0000 (13:09 +0000)] 
Add the --explain option to testrunner.tcl.

FossilOrigin-Name: f0c9eb0326f189fe5ebbee83532ac2c413e91c6a8e9d5b93aa6170cba66fdd22

15 months agoImprove one of the error messages from testrunner.tcl.
drh [Wed, 13 Mar 2024 11:46:23 +0000 (11:46 +0000)] 
Improve one of the error messages from testrunner.tcl.

FossilOrigin-Name: 233155c174575fa99b34030c1936bc2b04489417f4d5223f18cdb3c8fc274a56

15 months agoMinor tweaks to the testrunner documentation.
drh [Wed, 13 Mar 2024 11:29:04 +0000 (11:29 +0000)] 
Minor tweaks to the testrunner documentation.

FossilOrigin-Name: 3128b98d2656c7f23f6071c173f96329c7bdc49cd641050fbb7b105b810ba7c7

15 months agoImprovements to the "help" message generated by testrunner.tcl. Add the
drh [Wed, 13 Mar 2024 10:55:47 +0000 (10:55 +0000)] 
Improvements to the "help" message generated by testrunner.tcl.  Add the
special "list" permutation that does nothing but list all allowed
values for the PERMUTATION argument to testrunner.tcl.

FossilOrigin-Name: 1f5bfc6a9030f9905d258c5b665b9ff27efc7da71556c912ab3dce0f8f5aa8da

15 months agoAdd pointer to documentation to testrunner.tcl help message.
dan [Wed, 13 Mar 2024 10:54:04 +0000 (10:54 +0000)] 
Add pointer to documentation to testrunner.tcl help message.

FossilOrigin-Name: eff855102f9c0b4e9d876d1cff9d06c07de427b4880c2fa326d4d6e3e1dd13c8

15 months agoHave testrunner.tcl set SQLITE_TMPDIR on windows as well.
dan [Wed, 13 Mar 2024 10:47:54 +0000 (10:47 +0000)] 
Have testrunner.tcl set SQLITE_TMPDIR on windows as well.

FossilOrigin-Name: 64f4dad1f928716b8688c650d043f18afcc72ec78d990145c580e2b98905b919

15 months agoOn testrunner.tcl: (1) Add the "help" command. (2) Add the "script" command
drh [Wed, 13 Mar 2024 00:37:37 +0000 (00:37 +0000)] 
On testrunner.tcl: (1) Add the "help" command.  (2) Add the "script" command
to the help message.  (3) Improve the error message generated by "script" when
an incorrect CONFIG option is provided.

FossilOrigin-Name: 1b7f0be44036fb90d763eabae84b95734e766f8010b39122f8787189308a7fc1

15 months agoCorrectly initialize the SrcItem.iCursor field to -1 when creating a co-routine from...
dan [Tue, 12 Mar 2024 20:10:46 +0000 (20:10 +0000)] 
Correctly initialize the SrcItem.iCursor field to -1 when creating a co-routine from a multi-values VALUES clause.

FossilOrigin-Name: c32953ff6d72910815eaff29ab1b790c412e1a741d02c03c5911dda0c08e5130

15 months agoHave testrunner.tcl have each test store its temp files in its working directory...
dan [Tue, 12 Mar 2024 18:33:57 +0000 (18:33 +0000)] 
Have testrunner.tcl have each test store its temp files in its working directory. To avoid unlikely, but possible, collisions.

FossilOrigin-Name: 18842d0d72048561312c2c83035c01253150e1fe1ff37160f266d24d41a01df3