]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
2 years agoFurther tests for fts5 secure-delete mode. fts5-secure-delete
dan [Fri, 14 Apr 2023 18:00:03 +0000 (18:00 +0000)] 
Further tests for fts5 secure-delete mode.

FossilOrigin-Name: c5a47063b7971868ebbb3f0718434dd6bd22d01c43697f48941df9aae3885abc

2 years agoAdd extra OOM test for the new code on this branch.
dan [Fri, 14 Apr 2023 17:00:29 +0000 (17:00 +0000)] 
Add extra OOM test for the new code on this branch.

FossilOrigin-Name: 846ae7e099ce67dab6b5df0ad5648a01d7bf7f2acf8312d817ed8505d4ea5aec

2 years agoAdd tests for the new feature on this branch.
dan [Fri, 14 Apr 2023 16:11:05 +0000 (16:11 +0000)] 
Add tests for the new feature on this branch.

FossilOrigin-Name: 0268d1a59316d169927cbd4c562725e46a9023b7d7123ade911c12203e222adf

2 years agoRemove temporary debugging code accidentally left on this branch.
dan [Wed, 12 Apr 2023 18:06:43 +0000 (18:06 +0000)] 
Remove temporary debugging code accidentally left on this branch.

FossilOrigin-Name: 0a0f64870feaf95d2673efc8884ad1236d9bbf9bdb94364f8d2602221bd36ff3

2 years agoAdd the 'secure-delete' option to fts5. Used to configure fts5 to aggressively remove...
dan [Wed, 12 Apr 2023 17:40:44 +0000 (17:40 +0000)] 
Add the 'secure-delete' option to fts5. Used to configure fts5 to aggressively remove old full-text-index entries belonging to deleted or updated rows.

FossilOrigin-Name: 4240fd09b717dbc69dffe3b88ec9149777ca4c3efa12f282af65be3af6fa5bb0

2 years agoNew #ifdef to enable building with -DSQLITE_OMIT_WINDOWFUNC.
drh [Tue, 11 Apr 2023 19:38:47 +0000 (19:38 +0000)] 
New #ifdef to enable building with -DSQLITE_OMIT_WINDOWFUNC.

FossilOrigin-Name: e1ff83fa2565334b28bd0d6582088c4ae0d2d9a590d973615a4a598683fe419c

2 years agoRemove an ALWAYS() that can sometimes be false. Add a test case that makes
drh [Tue, 11 Apr 2023 15:06:20 +0000 (15:06 +0000)] 
Remove an ALWAYS() that can sometimes be false.  Add a test case that makes
the test false.

FossilOrigin-Name: c8fb143d64d8e823684cd26799080da4b42bef121ca3c6315b1803a593490926

2 years agoBetter handling of OOM errors in the cursor-hint logic.
drh [Tue, 11 Apr 2023 02:10:34 +0000 (02:10 +0000)] 
Better handling of OOM errors in the cursor-hint logic.
dbsqlfuzz 60cd5fff91974af91c2c3692beb4a2d7fdafef46

FossilOrigin-Name: 68fcfb58df837b40e401dfa4e505f4f0b87554b9cfeb2c527f3558348b73c1be

2 years agoFor sha3 extension, mention NIST standard implemented.
larrybr [Mon, 10 Apr 2023 23:21:19 +0000 (23:21 +0000)] 
For sha3 extension, mention NIST standard implemented.

FossilOrigin-Name: 529ab138a438379f0cbd170bff5211aee1c327a1b3119a714ee15f68fd2239f3

2 years agoNew assert() statements to validate the parameters to
drh [Mon, 10 Apr 2023 18:44:00 +0000 (18:44 +0000)] 
New assert() statements to validate the parameters to
sqlite3BtreeCursorHint().  Fix a problem with the construction of those
parameters discovered by
[forum:/forumpost/0b53708c95|forum post 0b53708c95].

FossilOrigin-Name: 4c5a3c5fb351cc1c2ce16c33314ce19c53531f09263f87456283d9d756002f9d

2 years agoSync the vt02.c test virtual table with TH3, in order to pull in the fix
drh [Mon, 10 Apr 2023 13:20:51 +0000 (13:20 +0000)] 
Sync the vt02.c test virtual table with TH3, in order to pull in the fix
for long delays when there are huge OFFSET values.

FossilOrigin-Name: 49ba030080dd00b4fdf788fd3da057b333e705fa0fe37d653e2461bf96ca3785

2 years agoFix an assertion fault that can occur when compiling with both
drh [Sun, 9 Apr 2023 20:44:09 +0000 (20:44 +0000)] 
Fix an assertion fault that can occur when compiling with both
SQLITE_ENABLE_UNKNOWN_SQL_FUNCTIONS and SQLITE_ENABLE_STAT4.

FossilOrigin-Name: 9ff69e599817610d14948a3eebcc4d3c18245f78a1433c23ae659211cbbdb017

2 years agoFix a faulty assert() in whereRangeScanEst() that should only apply if there
drh [Sun, 9 Apr 2023 10:09:28 +0000 (10:09 +0000)] 
Fix a faulty assert() in whereRangeScanEst() that should only apply if there
are not prior errors.
dbsqlfuzz 567ad91132879cbab8172b38c6a68ad40fa8d650.

FossilOrigin-Name: 8ba9b08bd976ed2c024f5f378b4dd40a55226e950af77c476c21273fccaf7e26

2 years agoFix a couple harmless compiler warnings seen with MSVC.
mistachkin [Sat, 8 Apr 2023 19:27:03 +0000 (19:27 +0000)] 
Fix a couple harmless compiler warnings seen with MSVC.

FossilOrigin-Name: 1b864a370fd04bba11487e3dab0388394bc71e1f3f006f7bd9d64eefe04e8b61

2 years agoFix a typo in [83e84531b46814ae] that changed the value of
drh [Sat, 8 Apr 2023 19:23:13 +0000 (19:23 +0000)] 
Fix a typo in [83e84531b46814ae] that changed the value of
SQLITE_DBCONFIG_STMT_SCANSTATUS.

FossilOrigin-Name: b71776539183e5fd8678ce8f3272180d3dbb8214ed7b7bb24d35c0ba027a6ac5

2 years agoFaster implementation of keywordCode() - the routine that determines if an
drh [Sat, 8 Apr 2023 16:51:08 +0000 (16:51 +0000)] 
Faster implementation of keywordCode() - the routine that determines if an
identifier is really a keyword and if so, which keyword.

FossilOrigin-Name: 0ff3d3d53709b7f18bf01ded1f988e41b7f8471072cf4f2702a3a8b79964be3f

2 years agoFix a harmless compiler warning.
drh [Sat, 8 Apr 2023 13:31:17 +0000 (13:31 +0000)] 
Fix a harmless compiler warning.

FossilOrigin-Name: c9559ba62191fe7fa2a718233afaa841e2594d1fc833314bf5b0a6b775e87c35

2 years agoOptimizations to btree.c save about 4.5 million CPU cycles:
drh [Sat, 8 Apr 2023 13:01:34 +0000 (13:01 +0000)] 
Optimizations to btree.c save about 4.5 million CPU cycles:
(1) Clone insertCell() into a separate insertCellFast() routine for
use by sqlite3BtreeInsert().  (2) Mark allocateSpace() as always-inline.
(3) Improved coalesence of adjacent free blocks in pageFreeArray().

FossilOrigin-Name: 5c12c400fe8eb4e86e14c69a6c34d0d78d9861e5d40a36c6a596a81c6dd65977

2 years agoGuard against oversized cells in the newly enhanced pageFreeArray(). btree-freespace-opt
drh [Fri, 7 Apr 2023 18:27:32 +0000 (18:27 +0000)] 
Guard against oversized cells in the newly enhanced pageFreeArray().

FossilOrigin-Name: 2dcdbb50356edbd3a79e53fa0bee4e700c2bdea78e27173b62ddabe44b066726

2 years agoAdd NEVER on an unreachable branch.
drh [Fri, 7 Apr 2023 16:30:33 +0000 (16:30 +0000)] 
Add NEVER on an unreachable branch.

FossilOrigin-Name: 9b3febbd988be05807ada20146d3e196ae17c966722fff049feb32292157bff2

2 years agoFix an assert().
drh [Fri, 7 Apr 2023 15:49:42 +0000 (15:49 +0000)] 
Fix an assert().

FossilOrigin-Name: 7eff46ba97dd8a3d6a5d01d5d61e98a2805deceafa47335eded7d784a8304525

2 years agoTweaks to the new insertCellFast().
drh [Fri, 7 Apr 2023 15:07:58 +0000 (15:07 +0000)] 
Tweaks to the new insertCellFast().

FossilOrigin-Name: 203a581a9177c1083e8d5b49e8ff026af33b5c5e3e144aeda126f07a3a2953bf

2 years agoClone insertCell() into insertCellFast() for use by sqlite3BtreeInsert() for
drh [Fri, 7 Apr 2023 14:33:33 +0000 (14:33 +0000)] 
Clone insertCell() into insertCellFast() for use by sqlite3BtreeInsert() for
a substantial performance increase.

FossilOrigin-Name: f225afd90c8e65661d8b855050f0ee1a8fe4c0f3bcec824aa5a66d906f3c7119

2 years agoFix a problem causing the rbu_exclusive_checkpoint=1 to be ignored with zipvfs databases.
dan [Fri, 7 Apr 2023 14:03:30 +0000 (14:03 +0000)] 
Fix a problem causing the rbu_exclusive_checkpoint=1 to be ignored with zipvfs databases.

FossilOrigin-Name: d8f50b31e8d64fce5141da4a016767a15482703364692a55df346f059fc9d30c

2 years agoSmall performance improvement in freeSpace().
drh [Fri, 7 Apr 2023 13:21:20 +0000 (13:21 +0000)] 
Small performance improvement in freeSpace().

FossilOrigin-Name: 8dc5292ee592f16451441e33ad0800ba10a21ecd63f1f9926d6915a59a1552d3

2 years agoAdd further tests for the rbu_exclusive_lock=1 URI option.
dan [Fri, 7 Apr 2023 11:18:08 +0000 (11:18 +0000)] 
Add further tests for the rbu_exclusive_lock=1 URI option.

FossilOrigin-Name: c07b62bef96bb69e9b1ce08f0084fdce8de981f4d8ea9689c87a41f1e4451ac7

2 years agoIncrease the size of the cache of free blocks inside of pageFreeArray() to
drh [Thu, 6 Apr 2023 20:14:10 +0000 (20:14 +0000)] 
Increase the size of the cache of free blocks inside of pageFreeArray() to
reduce the number of calls to freeSpace().

FossilOrigin-Name: 27c59f1ea789f3ff245f23e79ded5cd71c48e3a51ffbb8c220b51101a4e69fd7

2 years agoWork around a harmless assertion fault associated with
drh [Thu, 6 Apr 2023 17:29:38 +0000 (17:29 +0000)] 
Work around a harmless assertion fault associated with
sqlite3VdbeMemAboutToChange() such that the detection of stale values
in registers is preserved in debugging builds, but we avoid a false-positive
assertion fault in cases involving a virtual table with a LIMIT clause
in an IN-operator loop.
dbsqlfuzz 3fd70d4ab4950acf1deb8f610a7a7c67cd38713b

FossilOrigin-Name: 56ea2c2fe6108d39833ac40957afab59ade01a216639d5bafdeeca53bbf4cd67

2 years agoA prepared statement that aborts due to SQLITE_SCHEMA should not invalidate
drh [Thu, 6 Apr 2023 13:35:42 +0000 (13:35 +0000)] 
A prepared statement that aborts due to SQLITE_SCHEMA should not invalidate
cursors in other prepared statements that are already running.
See [forum:/forumpost/cae4367d9b|forum post cae4367d9b] for the original
trouble report.

FossilOrigin-Name: 857d0f5e16ba69ac9e5ee581befca2f7ed933edfe6e36396b10dae7979b44a57

2 years agoIn the CLI, during error processing while looking for a word boundary,
drh [Thu, 6 Apr 2023 01:05:52 +0000 (01:05 +0000)] 
In the CLI, during error processing while looking for a word boundary,
avoid being deceived by malformed input that has a very long sequence
of 0x80 characters.
[forum:/forumpost/ab93a23ba1|forum post ab93a23ba1].

FossilOrigin-Name: 82609d5a2d4eba741d48ea265f4e749578964961903c072c7b222ffe2aefaa3c

2 years agoIn the zipfile extension, defend against corrupt ZIP files that contain
drh [Thu, 6 Apr 2023 00:59:41 +0000 (00:59 +0000)] 
In the zipfile extension, defend against corrupt ZIP files that contain
a zero-length filename.
[forum:/forumpost/b15f5e3ad8|Forum post b15f5e3ad8].

FossilOrigin-Name: 46db2e42a5f9b18da9661ccedca68cb70257ea5c58b33b401db2a5e030c1346a

2 years agoIn the new .scanstatus command in the CLI, make sure the database is opened
drh [Thu, 6 Apr 2023 00:18:31 +0000 (00:18 +0000)] 
In the new .scanstatus command in the CLI, make sure the database is opened
before invoking sqlite3_db_config().
[forum:/forumpost/6e26dcf544|Forum post 6e26dcf544].

FossilOrigin-Name: 1cd993c45cd6b60e00d1426dd01d63efad13f7258636b5fa694f21499e77955a

2 years agoAdd a test case for the ALWAYS() macro removed by the previous check-in.
drh [Wed, 5 Apr 2023 02:55:08 +0000 (02:55 +0000)] 
Add a test case for the ALWAYS() macro removed by the previous check-in.

FossilOrigin-Name: 68a1a837493a0bc5e0e0f2373ac76cb575078cec08990c017fdcb51a4ba363a1

2 years agoRemove an ALWAYS() that might now be false due to the prior check-in.
drh [Wed, 5 Apr 2023 02:50:00 +0000 (02:50 +0000)] 
Remove an ALWAYS() that might now be false due to the prior check-in.

FossilOrigin-Name: fc68993501aaa7180f5457dcb3c296e5b199904a385d98e2bcad7854e34d428e

2 years agoFix the function that determines the collating function for an expression
drh [Wed, 5 Apr 2023 02:21:57 +0000 (02:21 +0000)] 
Fix the function that determines the collating function for an expression
tree to handle new cases that arise as a result of the recently added
ability to use indexed expressions in aggregate queries.
[forum/forumpost/0713a16a44|Forum post 0713a16a44].

FossilOrigin-Name: cc5041f3f067cf610adffb868b4e2d1b5d248dc5a0ecc551339b670800ecb0ff

2 years agoShell to use SQLITE_SHELL_HAVE_RECOVER consistently (correcting check-in 0421cc03e0ef...
larrybr [Tue, 4 Apr 2023 19:56:28 +0000 (19:56 +0000)] 
Shell to use SQLITE_SHELL_HAVE_RECOVER consistently (correcting check-in 0421cc03e0efa8f1)

FossilOrigin-Name: 5b980d72a03fa1cfd0f1bf3ed04068b9f216b75a304deb2b7bbe8ddce0e6fb96

2 years agoFix an incorrect entry in the array that maps sqlite3_value values into
drh [Tue, 4 Apr 2023 18:55:31 +0000 (18:55 +0000)] 
Fix an incorrect entry in the array that maps sqlite3_value values into
actual datatype numbers.  dbsqlfuzz f660c659bcec48577a43d3bab37f46baaa22f59e

FossilOrigin-Name: fa8537dc90cad962dec695418d48da2890a172801ecad0c7c804023a063d3a02

2 years agoRemove an assert() statement that is no longer valid due to enhancements
drh [Tue, 4 Apr 2023 18:10:23 +0000 (18:10 +0000)] 
Remove an assert() statement that is no longer valid due to enhancements
to query planner for improved use of indexes.
[forum:/forumpost/dc16ec63d3 |Forum post dc16ec63d3].

FossilOrigin-Name: 2b23dd249d0bc254308f5539936d33ee558f1100dec616caac7317dbe70db761

2 years agoExpose the new SQLITE_VTAB_USES_ALL_SCHEMAS to JS.
stephan [Tue, 4 Apr 2023 17:35:38 +0000 (17:35 +0000)] 
Expose the new SQLITE_VTAB_USES_ALL_SCHEMAS to JS.

FossilOrigin-Name: b7ef09be667dd349e195842304c03cbebb1693164e1c3587a5d7c96baa713edf

2 years agoOmit shell call to sqlite3_dbdata_init() when it is omitted.
larrybr [Tue, 4 Apr 2023 08:49:22 +0000 (08:49 +0000)] 
Omit shell call to sqlite3_dbdata_init() when it is omitted.

FossilOrigin-Name: 0421cc03e0efa8f1a83e46e91f26837366c10eef0903d099e25eb0cc99c297df

2 years agoWhen translating arguments of aggregate functions into references to
drh [Mon, 3 Apr 2023 23:49:00 +0000 (23:49 +0000)] 
When translating arguments of aggregate functions into references to
expression indexes, make sure to only translate them for the current
aggregate when there are nested aggregates.
[forum/forumpost/409ebc7368|Forum post 409ebc7368].

FossilOrigin-Name: 898bfa1afd8260eaaf2aa6db94e74d99ebf4e8a6dc02cf21d20cd981393609a5

2 years agoImproved diagnostic output from PRAGMA vdbe_addoptrace.
drh [Mon, 3 Apr 2023 20:11:06 +0000 (20:11 +0000)] 
Improved diagnostic output from PRAGMA vdbe_addoptrace.

FossilOrigin-Name: 050958c1828f7446e7ee7e458123a23b735e213b76a67c3dd8356da256cbc170

2 years agoWhen changing a COLLATE expression node into TK_AGG_COLUMN because the nodes
drh [Mon, 3 Apr 2023 17:46:14 +0000 (17:46 +0000)] 
When changing a COLLATE expression node into TK_AGG_COLUMN because the nodes
value is contained in an indexed expression, be sure to clear the
EP_Collate property from the expression node.  Fix for the assertion faults
reported by [forum:/forumpost/e45108732c|forum post e45108732c] and
[forum:/forumpost/44270909bb|forum post 44270909bb].

FossilOrigin-Name: cf6454ce26983b9c3ae924c44a802f3f760eaaae9547b40aee9e14e7b0c47cab

2 years agoAdd the SQLITE_VTAB_USES_ALL_SCHEMAS option to sqlite3_vtab_config(). Update
drh [Mon, 3 Apr 2023 15:01:37 +0000 (15:01 +0000)] 
Add the SQLITE_VTAB_USES_ALL_SCHEMAS option to sqlite3_vtab_config().  Update
the sqlite_dbpage, sqlite_dbdata, and sqlite_dbptr virtual tables to make
use of that interface.  This was formerly handled by the internal
sqlite3VtabUsesAllSchemas() routine that was called directly from sqlite_dbpage.
But since sqlite_dbdata and sqlite_dbptr are an extension, an external
interface to that functionality had to be provided.
dbsqlfuzz 1a29c245175a63393b6a78c5b8cab5199939d6a8

FossilOrigin-Name: bcd51abee0b0f82bb5dbb881025a92d55baf9df6adeaf3a305e2e0da96a81d58

2 years agoMake the sqlite_dbdata and sqlite3_dbptr virtual tables accessible to
drh [Mon, 3 Apr 2023 12:48:51 +0000 (12:48 +0000)] 
Make the sqlite_dbdata and sqlite3_dbptr virtual tables accessible to
the CLI.

FossilOrigin-Name: c0eff02854d469bcdb949c09531760d6f96b49c17375abd1c131d41f38b9b2f0

2 years agoStronger constraint checking in allocateSpace().
drh [Mon, 3 Apr 2023 12:33:12 +0000 (12:33 +0000)] 
Stronger constraint checking in allocateSpace().
dbsqlfuzz 93d4c9ff5ef7cd29f16e767af1ee71c29ec5a4c0

FossilOrigin-Name: 9e968f4fbce061190f10f31ce9d3eb4fce6706ea6b7e5011bfa1e893d37ca68d

2 years agoWith the -DSQLITE_ENABLE_JSON_NAN_INF compile-time option, non-standard
drh [Sun, 2 Apr 2023 20:56:29 +0000 (20:56 +0000)] 
With the -DSQLITE_ENABLE_JSON_NAN_INF compile-time option, non-standard
JSON numeric values "Inf", "Infinity", "-Inf", "-Infinity", "NaN", "QNaN",
and "SNaN" are all accepted.  SQLite should never generate these values,
but it will accept that with the appropriate compile-time option.

FossilOrigin-Name: 0a050e9013331595e13ca9f859180057b59291c70a6cedb6230eefb25956df9e

2 years agoMore off-by-one errors in the new JSON parsing. json-nan-inf
drh [Sun, 2 Apr 2023 20:46:24 +0000 (20:46 +0000)] 
More off-by-one errors in the new JSON parsing.

FossilOrigin-Name: dbc99662087b63c9ed5b398535a6091fc2c5e507907dd1fcb7ad0b6ab3f17144

2 years agoFix an off-by-one error in the recognition of -Infinity.
drh [Sun, 2 Apr 2023 20:27:02 +0000 (20:27 +0000)] 
Fix an off-by-one error in the recognition of -Infinity.

FossilOrigin-Name: f7ebf3e6286ddc8cdaa9446235407785d1be2be2d9992e21ef59fcd655f68432

2 years agoEarlier detection of corruption in sqlite3BtreeDelete().
drh [Sun, 2 Apr 2023 16:43:20 +0000 (16:43 +0000)] 
Earlier detection of corruption in sqlite3BtreeDelete().
dbsqlfuzz a4c48c291d6e40157a1b749a05eaa7c7faf5a625.

FossilOrigin-Name: 978dc71c388b37740da38c310674315c7d7fe814d1daa16a146b4df71385d1e1

2 years agoClear executable bit on base64.c
larrybr [Sun, 2 Apr 2023 14:53:59 +0000 (14:53 +0000)] 
Clear executable bit on base64.c

FossilOrigin-Name: ec1ddbce7db270afc25f71546fa745935ad74bc72920fccfcb37e98649612bf2

2 years agoAllow special floating-point value names in JSON: "inf", "-inf", "infinity",
drh [Sat, 1 Apr 2023 23:29:59 +0000 (23:29 +0000)] 
Allow special floating-point value names in JSON:  "inf", "-inf", "infinity",
"-infinity", "nan", "qnan", and "snan".  All are converted into valid JSON
values: 9e999, -9e999, or null.  Requires the SQLITE_ENABLE_JSON_NAN_INF
compile-time option to operate.

FossilOrigin-Name: fc8793e5acac7351749e360c6bace5d5a8b3de3aa600ae23e260557db650c461

2 years agoSwat grammar nit on README.md
larrybr [Sat, 1 Apr 2023 16:14:50 +0000 (16:14 +0000)] 
Swat grammar nit on README.md

FossilOrigin-Name: 715c00e58b774d6a29e2f60fd33a2ecb960307192ae1fdb8ed396f74fd62b444

2 years agoFix harmless compiler warnings.
drh [Sat, 1 Apr 2023 15:51:21 +0000 (15:51 +0000)] 
Fix harmless compiler warnings.

FossilOrigin-Name: a4fb2864fe01cce9694242a0750623ca47fcecd68f74c4239d3eb5fbf978770a

2 years agoImproved error messages from PRAGMA integrity_check. Identify the root of
drh [Sat, 1 Apr 2023 13:14:53 +0000 (13:14 +0000)] 
Improved error messages from PRAGMA integrity_check.  Identify the root of
the tree when a problem is found in a b-tree, making it easier to track the
problem to a specific table or index.

FossilOrigin-Name: a1cb152e69c7c6cdd99300c91a8104716089de459d9d19e33ef38432aad70908

2 years agoIn the b-tree module use %u instead of %d to print unsigned quantities such
drh [Sat, 1 Apr 2023 12:22:57 +0000 (12:22 +0000)] 
In the b-tree module use %u instead of %d to print unsigned quantities such
as page numbers and offsets.

FossilOrigin-Name: 33ac62d8eec56eb71f20ccd28a5d6e4e8051522feb2db0199abee9e18ce1f64e

2 years agoOmit the the count-of-view optimization if there is a HAVING clause.
drh [Fri, 31 Mar 2023 23:48:59 +0000 (23:48 +0000)] 
Omit the the count-of-view optimization if there is a HAVING clause.
dbsqlfuzz 6a107e3055bd22afab31cfddabc2d9d54fcbaf69

FossilOrigin-Name: babe2b5e59647ac9db4601e67c25190aac14eb76d5fcb9fa5b3692b955fefd61

2 years agoEarlier error detection for index expression usage by aggregate functions.
drh [Thu, 30 Mar 2023 19:05:48 +0000 (19:05 +0000)] 
Earlier error detection for index expression usage by aggregate functions.
dbsqlfuzz 29214ace4e25c98d2ddff8fbcf97afdda23f28b9

FossilOrigin-Name: 8e841e7f025f7205959453875f2d9db36271642045593970a2b2fc20b2f847c3

2 years agoOmit a branch that is no longer needed following [c9c4f287652933eb].
drh [Thu, 30 Mar 2023 16:08:54 +0000 (16:08 +0000)] 
Omit a branch that is no longer needed following [c9c4f287652933eb].

FossilOrigin-Name: 960a488a2db92f5437bc8171cdbed44618d9381c57fd41b2f0e357b6012c80b5

2 years agoFix an error in new test script test/aggfault.test.
dan [Thu, 30 Mar 2023 12:19:38 +0000 (12:19 +0000)] 
Fix an error in new test script test/aggfault.test.

FossilOrigin-Name: 8724fe7426da55d19dba7b30e09321ba30c73286513864cb05de32f72e50ee31

2 years agoFix a crash that could follow an OOM error while processing aggregate functions.
dan [Thu, 30 Mar 2023 11:05:36 +0000 (11:05 +0000)] 
Fix a crash that could follow an OOM error while processing aggregate functions.

FossilOrigin-Name: 804435a2731bd3c26278c47098854b9ee7727a686587f6208e793738fbfc0555

2 years agoAvoid having OP_SeekScan jump over an OP_IdxGT or OP_IdxGE that follows the OP_SeekGE...
dan [Wed, 29 Mar 2023 21:58:06 +0000 (21:58 +0000)] 
Avoid having OP_SeekScan jump over an OP_IdxGT or OP_IdxGE that follows the OP_SeekGE opcode. Fix for [b50528af4468237c].

FossilOrigin-Name: c9c4f287652933eb6262a3419efe7e7288f55d3db7e2ac032eeae025f665d306

2 years agoFix a problem with sqlite3_stmt_scanstatus() from within an SQLITE_TRACE_STMT callbac...
dan [Wed, 29 Mar 2023 18:54:01 +0000 (18:54 +0000)] 
Fix a problem with sqlite3_stmt_scanstatus() from within an SQLITE_TRACE_STMT callback made from within a trigger.

FossilOrigin-Name: 1fa78fafa1340de458546526b03cf8b3e9c823913c4225d7c747ad182df5c0fc

2 years agoAnother #ifdef to omit code that is only used by STAT4.
drh [Wed, 29 Mar 2023 15:16:29 +0000 (15:16 +0000)] 
Another #ifdef to omit code that is only used by STAT4.

FossilOrigin-Name: 445c75567de9bf9c8075dfc62c60dc4abeefab59c7803a5ef2cc5d69c08d7633

2 years agoNew #ifdefs to omit code that is unused except under STAT4.
drh [Wed, 29 Mar 2023 14:42:11 +0000 (14:42 +0000)] 
New #ifdefs to omit code that is unused except under STAT4.

FossilOrigin-Name: 09a9b30ba7828a487a33a3ebf8028dfaa147dff67d2724584123b90a88d9814b

2 years agoEnhance PRAGMA integrity_check so that it can detect that a NOT NULL column
drh [Wed, 29 Mar 2023 11:36:24 +0000 (11:36 +0000)] 
Enhance PRAGMA integrity_check so that it can detect that a NOT NULL column
contains a NaN value and report that as an error.
dbsqlfuzz f144b642fe6f1a1c196f258ac6e60118a0cb59b2.

FossilOrigin-Name: 7638d9755dc90fd353b874d03ed418fa8aaee4440290ff69b1b552eae84e5baa

2 years agoFix a weird corner case in aggregate function processing that results from the
drh [Tue, 28 Mar 2023 16:02:28 +0000 (16:02 +0000)] 
Fix a weird corner case in aggregate function processing that results from the
recent addition of support for index expressions on aggregate queries.
[forum:/forumpost/bad532820c|Forum post bad532820c].

FossilOrigin-Name: c34fd9fe1b76e0a5943f014f46141cbe55d41bb1e6980adf9bcb6785a03e7883

2 years agoFix multiple problems with RETURNING on a DML statement against a view,
drh [Tue, 28 Mar 2023 11:18:04 +0000 (11:18 +0000)] 
Fix multiple problems with RETURNING on a DML statement against a view,
all inspired by [forum:/forumpost/dc3b92cfa0|forum post dc3b92cfa0].
(1) Do not allow a RETURNING clause to trick the code generator into thinking
that the view being updated has an INSTEAD OF trigger.
(2) Generate all result columns for a view in a DML statement.
(3) The automatic covering index for a view should cover all result columns
of the view.

FossilOrigin-Name: c8bedef0d61731c29ae34de1594222d15b578f9e2cddbbd5b74fb3059644fe0f

2 years agoRemove a meaningless JS test. Add a timer to the OPFS async-side worker loader in...
stephan [Mon, 27 Mar 2023 13:57:08 +0000 (13:57 +0000)] 
Remove a meaningless JS test. Add a timer to the OPFS async-side worker loader in an attempt to catch a browser-specific quirk in which the worker loading silently fails, per discussion in/around [forum post a708c98dcb3ef|forum:a708c98dcb3ef].

FossilOrigin-Name: 4fc1904b8e18c7d41fa65490ced125f1df4f0c22c13de957b24615ed09b3ecb7

2 years agoDo not allow constant factoring during PRAGMA integrity_check, since the
drh [Mon, 27 Mar 2023 13:24:02 +0000 (13:24 +0000)] 
Do not allow constant factoring during PRAGMA integrity_check, since the
constants might be stored in registers that are later reused for other
purposes.  dbsqlfuzz dc9ab26037cf5ef797d28cd1ae0855ade584216d.  Problem
discovered by a new assert() statement added in [6f8b97f31a4c8552].

FossilOrigin-Name: 0bba27b78112b2b2271e498f41c437df985aa2faab302ee5b29d9b60003a8379

2 years agoImprovements to register allocation, especially in the ANALYZE command.
drh [Sun, 26 Mar 2023 16:36:27 +0000 (16:36 +0000)] 
Improvements to register allocation, especially in the ANALYZE command.
New assert() statements added to help verify that memory allocation is
correct, and to help fuzzer find lingering errors.

FossilOrigin-Name: 6f8b97f31a4c8552312b4c98432ea356ae54c06d9cc929969f50c3c88360cd7b

2 years agoDisable factoring of constant values during ANALYZE. This is a temporary
drh [Sun, 26 Mar 2023 11:54:51 +0000 (11:54 +0000)] 
Disable factoring of constant values during ANALYZE.  This is a temporary
fix for [forum:/forumpost/07de5f6216|forum post 07de5f6216].  The register
allocation logic in ANALYZE needs to be completely refactored, but that will
take longer.  This check-in will serve to resolve the issue until a better
fix can be devised.

FossilOrigin-Name: c3967d1259f1df969d303394986960bd098e174dcd337e374c9c3c39e0efa466

2 years agoWhen the left table of a RIGHT JOIN is used inside an aggregate function and the...
drh [Sat, 25 Mar 2023 23:52:05 +0000 (23:52 +0000)] 
When the left table of a RIGHT JOIN is used inside an aggregate function and the left table employs an index on expressions, then make sure the expressions evaluate to NULL for the cases where the left table should be NULL. Fix for
[forum:/forumpost/9b491e1deb|forum post 9b491e1deb].

FossilOrigin-Name: ffe23af73fcb324df988a00be343654ce7078b7208647c4eb779d666b8297e7c

2 years agoAdd usage detection to the NULL value generator for the left table of a rightjoin-agg-idxexpr
drh [Sat, 25 Mar 2023 23:40:21 +0000 (23:40 +0000)] 
Add usage detection to the NULL value generator for the left table of a
RIGHT JOIN inside of an aggregate.

FossilOrigin-Name: 4d05a009dfb63bcb4173da4d09ccc00c308ce4dd2534a32aeb23c5d8d6a1fd4b

2 years agoWhen reading sqlite_stat4 data during query planning, be sure to expand
drh [Sat, 25 Mar 2023 22:37:23 +0000 (22:37 +0000)] 
When reading sqlite_stat4 data during query planning, be sure to expand
zeroblobs prior to running comparisons.  Fix for the issue identified
by [forum:/forumpost/5275207102|forum post 5275207102].

FossilOrigin-Name: 5c8dd8dfcaab9c364b3a126ca35880ef57f5cecbe030771e646c934c8cf43709

2 years agoWhen the left table of a RIGHT JOIN is used inside an aggregate function
drh [Sat, 25 Mar 2023 21:01:11 +0000 (21:01 +0000)] 
When the left table of a RIGHT JOIN is used inside an aggregate function
and the left table employs an index on expressions, then make sure the
expressions evaluate to NULL for the cases where the left table should be
NULL.  Proposed fix for [forum:/forumpost/9b491e1deb|forum post 9b491e1deb].
More testing an analysis needed - there is a FIXME in this check-in.

FossilOrigin-Name: 3572b40a7dfc4acc35e72e08e79f64688f8737e57ac89e4d10e6b32bd5178c63

2 years agoIn the byte-code, when the result of an expression needs to be in a particular
drh [Sat, 25 Mar 2023 19:44:25 +0000 (19:44 +0000)] 
In the byte-code, when the result of an expression needs to be in a particular
register, always use the sqlite3ExprCode() routine because it has the smarts
to know whether to use OP_Copy or OP_SCopy.  Do not try to OP_SCopy inline
because an OP_Copy might be required.  Fix for the problem identified by
[forum:/forumpost/5522082cfc|forum post 5522082cfc].

FossilOrigin-Name: c104e5c6eeb89575319d9f94f49446142b06912fa8b283c19d46aa2ccddc5bda

2 years agoAdd the tag-20230325-1 comment that was omitted from the prior check-in.
drh [Sat, 25 Mar 2023 18:41:42 +0000 (18:41 +0000)] 
Add the tag-20230325-1 comment that was omitted from the prior check-in.

FossilOrigin-Name: a13c01d076d23f0de500e8e6283e803dfc96f0da7509c0d97d598d6b3e7b930b

2 years agoThe fix at [2bf5413dc2c19d5f] was incomplete in that it failed to clear
drh [Sat, 25 Mar 2023 18:31:24 +0000 (18:31 +0000)] 
The fix at [2bf5413dc2c19d5f] was incomplete in that it failed to clear
the reusable register cache that might contain registers in the STAT4
buffer region.  This additional change corrects the problem.
[forum:/forumpost/83cb4a95a0|Forum post 83cb4a95a0].  Test case in TH3.

FossilOrigin-Name: 5d554e4d0f59a4309fed40e4fb26c7be42f1d4d55ccdcaaf7b4d445aa3122955

2 years agoEven tighter bounds on the maximum length of the filename for
drh [Sat, 25 Mar 2023 12:27:36 +0000 (12:27 +0000)] 
Even tighter bounds on the maximum length of the filename for
sqlite3_load_extension().

FossilOrigin-Name: 787291414d2d2082a3c63e7cdd6bec4719f0c8b75ad1355f5026932ecbb28ba8

2 years agoTighter constraints on the maximum length of the filename handed over
drh [Sat, 25 Mar 2023 03:17:08 +0000 (03:17 +0000)] 
Tighter constraints on the maximum length of the filename handed over
to sqlite3_load_extension(), due to
[forum:/forumpost/a43074729e|forum post a43074729e].  This is a
follow-on to [01f3877c7172d522] and
[forum:/forumpost/08a0d6d9bf|forum post 08a0d6d9bf].

FossilOrigin-Name: 9f351bdee2a09a4419bb8256a13d1f757b3e00ec26a445523f224fc56d9ae26d

2 years agoNew test case to further validate the fix at [221fdcec964f8317].
drh [Sat, 25 Mar 2023 02:07:20 +0000 (02:07 +0000)] 
New test case to further validate the fix at [221fdcec964f8317].
[forum:/forumpost/d34ad68c36|Forum post d34ad68c36].

FossilOrigin-Name: a6e218a6e1ddd74be6a313b1d336334071747efd4ecd354ed7efe303d09c849c

2 years agoFix CLI non-handling of OOM reported at [forum:/forumpost/6872514e04|Forum post 68725...
larrybr [Sat, 25 Mar 2023 01:29:40 +0000 (01:29 +0000)] 
Fix CLI non-handling of OOM reported at [forum:/forumpost/6872514e04|Forum post 6872514e04].

FossilOrigin-Name: 6f6a0fd63b13cb827d6a402de01a701eb5b3f92954032ea80e78ec864861a26c

2 years agoRemove undocumented, vestigial SQL functions in the CLI that were once used
drh [Fri, 24 Mar 2023 22:17:59 +0000 (22:17 +0000)] 
Remove undocumented, vestigial SQL functions in the CLI that were once used
for the ".recover" command but are now no longer needed.

FossilOrigin-Name: 1ef461aa4e95d254c2c1edebbbfd92ca96d752e04f68ebe70104e8d936d36be9

2 years agoFix possible integer overflow in bounds checking for the debugging function
drh [Fri, 24 Mar 2023 21:35:48 +0000 (21:35 +0000)] 
Fix possible integer overflow in bounds checking for the debugging function
"shell_int32()" found in the CLI.  This change does not affect the core
SQLite.  [forum:/forumpost/be9c294ee0|Forum post be9c294ee0].

FossilOrigin-Name: 6211471138a654641a4cf4831cfa3b470e06f29a2b77e4d58177c8e065bec11e

2 years agoFix an error in the OP_SeekScan opcode added by check-in [4a43430fd23f8835].
drh [Fri, 24 Mar 2023 21:24:52 +0000 (21:24 +0000)] 
Fix an error in the OP_SeekScan opcode added by check-in [4a43430fd23f8835].
Problem reported by [forum:/forumpost/8cc1dc0fe9|forum post 8cc1dc0fe9].

FossilOrigin-Name: 651a13fcd16f03e89eb6228c9f3250e25910b9bbe2637f627f65ff78f8ba2059

2 years agoFix the handling of indexed expressions in an outer query that appear as
drh [Fri, 24 Mar 2023 20:35:56 +0000 (20:35 +0000)] 
Fix the handling of indexed expressions in an outer query that appear as
corelated values inside an aggregate function within a subquery.
[forum:/forumpost/79cf371080|Forum post 79cf371080].

FossilOrigin-Name: d8259877eaa962e6f90675790d3770ef02bd1a5d86d319cd8c1834710df844c4

2 years agoFix a problem in cursor-hints for WITHOUT ROWID tables used in a RIGHT JOIN.
drh [Fri, 24 Mar 2023 19:17:25 +0000 (19:17 +0000)] 
Fix a problem in cursor-hints for WITHOUT ROWID tables used in a RIGHT JOIN.
[forum:/forumpost/591006b1cc|Forum post 591006b1cc].

FossilOrigin-Name: 221fdcec964f8317b2c23e926cc23799615cd3b4239a8a9ff87a83588d05bc64

2 years agoAdd a JS test which checks for the issue described in [forum post 895425b49a|forum...
stephan [Fri, 24 Mar 2023 17:15:15 +0000 (17:15 +0000)] 
Add a JS test which checks for the issue described in [forum post 895425b49a|forum:895425b49a].

FossilOrigin-Name: 98d30400e4721b1d48ff601698ced146052654f8c6de7c014d4d239bb2dbef43

2 years agoFix byte-code register allocation in ANALYZE for STAT4 when there multiple
drh [Fri, 24 Mar 2023 16:57:21 +0000 (16:57 +0000)] 
Fix byte-code register allocation in ANALYZE for STAT4 when there multiple
indexes with differing numbers of columns.
[forum:/forumpost/bc39e531e5|forum post bc39e531e5].

FossilOrigin-Name: 2bf5413dc2c19d5feb32e5b01aa9b990ec2f74f45f5ca0dca15215f8c9dbc9b9

2 years agoThe attempt to bring STAT4 up to 100% MC/DC at [55a26c67ed4a3a93] and
drh [Thu, 23 Mar 2023 10:54:07 +0000 (10:54 +0000)] 
The attempt to bring STAT4 up to 100% MC/DC at [55a26c67ed4a3a93] and
at [168fa2fb22b8c1ad] are incorrect.  Back them out and replace them with
a simple NEVER() macro.  Error reported by
[forum:/forumpost/dc4854437b|forum post dc4854437b].

FossilOrigin-Name: 5992370a89f8de7a6e941130b381f85d369856dbdb7860405e6fb17dad2293df

2 years agoInternal cleanups in JS code. No functional changes.
stephan [Wed, 22 Mar 2023 19:57:19 +0000 (19:57 +0000)] 
Internal cleanups in JS code. No functional changes.

FossilOrigin-Name: 8fbdf7d10400c4f54fc3d8bc823f97818de860deeeed35ab6ad717260cd301e0

2 years agoThe floating-point-to-text conversion with the zero-padding option now
drh [Wed, 22 Mar 2023 16:55:35 +0000 (16:55 +0000)] 
The floating-point-to-text conversion with the zero-padding option now
renders NaN as "null".

FossilOrigin-Name: ad59fa17663bda54ec5d4e48ac24e04b87daa70c795d840cd8db382e2dd581b9

2 years agoFor consistency, the ".mode json" output from the CLI now renders infinity
drh [Wed, 22 Mar 2023 16:37:17 +0000 (16:37 +0000)] 
For consistency, the ".mode json" output from the CLI now renders infinity
in the same format as the JSON functions.

FossilOrigin-Name: abee339d5eae8b63d9579b7ec3a25f18071e675223e0bb5294c733fb618a3a26

2 years agoThe double-to-text conversion renders infinity as 9e999, so that JSON
drh [Wed, 22 Mar 2023 16:24:17 +0000 (16:24 +0000)] 
The double-to-text conversion renders infinity as 9e999, so that JSON
output is compliant and so that values can be round-tripped.

FossilOrigin-Name: b52081d0acd07dc5bdb4951a3e8419866131965260c1e3a4c9b6e673bfe3dfea

2 years agoIn the CLI, the magic parameter :inf and :nan bind floating point values
drh [Wed, 22 Mar 2023 16:01:06 +0000 (16:01 +0000)] 
In the CLI, the magic parameter :inf and :nan bind floating point values
Infinity and NaN, respectively, as an add to testing SQLite's handling of
those quantities.

FossilOrigin-Name: c70a61d8fbfb722679398c211aa48ccd84a392a6b59ba70551fe3a9fbab9a6d5

2 years agoUpdate the version number for the TEA tarball to 3.42.0, to match the core.
drh [Wed, 22 Mar 2023 14:51:22 +0000 (14:51 +0000)] 
Update the version number for the TEA tarball to 3.42.0, to match the core.

FossilOrigin-Name: 03e6918e7f749c3ca1fa66df28b203ff26680f129003e20c71ca246cf7ff34fe

2 years agoAdd ALWAYS() on a branch this is always true now due to [84417bbd144b2197].
drh [Tue, 21 Mar 2023 14:20:10 +0000 (14:20 +0000)] 
Add ALWAYS() on a branch this is always true now due to [84417bbd144b2197].

FossilOrigin-Name: badf7d0e3cfa6efaff4b132cb4ecca79a16e73197c5e275db14ccb5ff938276d

2 years agoAdd the fuzzcheck-asan.exe target to the MSVC makefile.
drh [Tue, 21 Mar 2023 12:29:50 +0000 (12:29 +0000)] 
Add the fuzzcheck-asan.exe target to the MSVC makefile.

FossilOrigin-Name: 0901bc02783527090bdaa626d946ee1e92c7c6848f3c77a799e6837f4e7f8d7b

2 years agoAdd the fuzzcheck-asan target to the main posix makefile.
drh [Tue, 21 Mar 2023 11:56:04 +0000 (11:56 +0000)] 
Add the fuzzcheck-asan target to the main posix makefile.

FossilOrigin-Name: 55e94adddba77c1d6ee6ef0c0cf37f7cdccc3bdc144ceaed675d79cdb25f48a6