]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
4 years agoAllow unqualified "rowid" references to be used in join queries, provided that only...
dan [Thu, 1 Jul 2021 18:19:17 +0000 (18:19 +0000)] 
Allow unqualified "rowid" references to be used in join queries, provided that only one of the source objects has a rowid.

FossilOrigin-Name: d4097364c511709b1874881a0c036640777d1f724165416adf6f53a41f8c6e40

4 years agoImport the updated nmakehlp.c file used by the TCL Extension Architecture (TEA)
drh [Thu, 1 Jul 2021 16:57:48 +0000 (16:57 +0000)] 
Import the updated nmakehlp.c file used by the TCL Extension Architecture (TEA)
builds in the amalgamation tarballs.
[forum:/forumpost/5a5001f20a|Forum post 5a5001f20a].

FossilOrigin-Name: 595bf95bf8884c545e85e3feee6f43503b59d3c6d69073f0aaba4473c7c61cac

4 years agoFix a memory leak in fts5 that could occur when processing a query containing multipl...
dan [Wed, 30 Jun 2021 14:04:25 +0000 (14:04 +0000)] 
Fix a memory leak in fts5 that could occur when processing a query containing multiple classes of error.

FossilOrigin-Name: 7c279670f544a5bb9733a88862d9e490062b07415cd790e0d6d1e2cb584d2007

4 years agoFix an assert() in fts5 that might fail when dealing with corrupt records.
dan [Wed, 30 Jun 2021 12:11:19 +0000 (12:11 +0000)] 
Fix an assert() in fts5 that might fail when dealing with corrupt records.

FossilOrigin-Name: 9e760e256089c0ebbf816a8de8b186f62e1ffcd6b8b0e76dab8387798cd4d0e1

4 years agoDo not enforce the SQLITE_LIMIT_FUNCTION_ARG limit for internally generated
drh [Wed, 30 Jun 2021 11:53:21 +0000 (11:53 +0000)] 
Do not enforce the SQLITE_LIMIT_FUNCTION_ARG limit for internally generated
SQL.  This prevents problems with statements like ALTER TABLE if the
function argument limit is set too low.
[forum:/forumpost/17735aa21f3ddab2|Forum post 17735aa21f3ddab2].

FossilOrigin-Name: 763fdec5b3151eeab001c50e78f654cd9b4b4c10e81e50a663046a70e64d5339

4 years agoWhen generating data for a RETURNING clause, avoid assuming cursor number 0 is availa...
dan [Mon, 28 Jun 2021 15:25:17 +0000 (15:25 +0000)] 
When generating data for a RETURNING clause, avoid assuming cursor number 0 is available for use.

FossilOrigin-Name: 4b2c59acce6ff1bb6c9c04c45c80945ae23a26588718cc20635d60f7497adabb

4 years agoThe OP_ReopenIdx opcode should clear the cursor if the cursor is being
drh [Fri, 25 Jun 2021 14:48:24 +0000 (14:48 +0000)] 
The OP_ReopenIdx opcode should clear the cursor if the cursor is being
reused.  This prevents leaving the cursor in an initialized state which
could cause problems for a subsequent OP_SeekScan opcode.
Fix for ticket [6dcbfd11cf666e21] and the OP_SeekScan optimization
of check-in [4a43430fd23f8835].

FossilOrigin-Name: d4bf5243f2bf0a2bc77ad12f3e1e4797cb62f2745f9d54eee5f675c3b5f80880

4 years agoRemove a redundant "ANALYZE" line from the ".fullschema" output.
drh [Fri, 25 Jun 2021 11:21:21 +0000 (11:21 +0000)] 
Remove a redundant "ANALYZE" line from the ".fullschema" output.

FossilOrigin-Name: 7b47f420954000ce46d05adde6e91a2fbdab8dd528ebd8089cca4fcf9d8a3605

4 years agoFix a bug in the ".fullschema" dot-command of the CLI brought to light by
drh [Fri, 25 Jun 2021 11:14:10 +0000 (11:14 +0000)] 
Fix a bug in the ".fullschema" dot-command of the CLI brought to light by
check-in [a2ddb89b206c1387] - raising an error on at attempt to access the
rowid of a subquery or view.

FossilOrigin-Name: 36875827a416067e1b8ffba0ff0ff88313177f8d84dd8e5bc9c23ea3f2d587ba

4 years agoDocument sqlite3_wal_hook() return.
larrybr [Fri, 25 Jun 2021 00:25:38 +0000 (00:25 +0000)] 
Document sqlite3_wal_hook() return.

FossilOrigin-Name: 8acaf7964551b4524fcdbb8d01fae7b0911508ecf6dcf23c3e0f8d8c790b78d8

4 years agoAllow the SQLITE_OPEN_EXCLUSIVE flag in sqlite3_open(). Return the
drh [Thu, 24 Jun 2021 18:23:54 +0000 (18:23 +0000)] 
Allow the SQLITE_OPEN_EXCLUSIVE flag in sqlite3_open().  Return the
SQLITE_CANTOPEN_EXISTS extended code to indicate that the open failed because
the database already exists.

FossilOrigin-Name: d091150ff80709a1e50e0431aa33021f036979e4a88e9769eeec431dfad6d5f5

4 years agoMake conditional nature of sqlite3_normalized_sql() better known.
larrybr [Wed, 23 Jun 2021 17:41:38 +0000 (17:41 +0000)] 
Make conditional nature of sqlite3_normalized_sql() better known.

FossilOrigin-Name: 0e0ece7111945d61278e60385f883303b593ed0d64beeb951b9c49f243531628

4 years agoFully incorporate *_changes64() API improvement.
larrybr [Wed, 23 Jun 2021 16:07:20 +0000 (16:07 +0000)] 
Fully incorporate *_changes64() API improvement.

FossilOrigin-Name: 6699a2f6bec9dfcdc456ff1cd8e652588b144ec28b7eac6e403a63eab61b416e

4 years agoShow CROSS JOINs in the TreeView debuggingn output.
drh [Wed, 23 Jun 2021 11:39:00 +0000 (11:39 +0000)] 
Show CROSS JOINs in the TreeView debuggingn output.

FossilOrigin-Name: 72e09b6c9b74c8226b231fec021228af6bc191fc1b5798d0ff2e893f4ba203bf

4 years agoFix a problem handling ORDER BY terms of the form "ORDER BY likely(<integer>)" within...
dan [Wed, 23 Jun 2021 11:12:48 +0000 (11:12 +0000)] 
Fix a problem handling ORDER BY terms of the form "ORDER BY likely(<integer>)" within window frames.

FossilOrigin-Name: 710f75b98bb4ac5bfdfa745c1de832dd1e4d9fb387da52b2f0d1353613f5cdc3

4 years agoWhen an index is used by all branches of the WHERE_MULTI_OR optimization and
drh [Tue, 22 Jun 2021 23:24:58 +0000 (23:24 +0000)] 
When an index is used by all branches of the WHERE_MULTI_OR optimization and
becomes a covering index, make sure the index has been created prior to
NULLing it in the OP_NullRow opcode of a LEFT JOIN.  See
[forum:/forumpost/0575376e07|forum post 0575376e07]. The covering-index for
WHERE_MULTI_OR optimization was added by [62678be3df35cdcb].  Test cases are
in the orindex01.test module of TH3.

FossilOrigin-Name: 787c76a865dc51dbca4f30432d64783199c2efb1df4619e4bbaf32182977321e

4 years agoAdd the sqlite3_changes64() and sqlite3_total_changes64() API functions.
dan [Tue, 22 Jun 2021 18:32:05 +0000 (18:32 +0000)] 
Add the sqlite3_changes64() and sqlite3_total_changes64() API functions.

FossilOrigin-Name: 48fdec22c966003f5577e0bf52906ef90df11e4e395723a646304e67ed976f37

4 years agoFix a problem causing sqlite3_changes() to return an incorrect value following a...
dan [Tue, 22 Jun 2021 18:06:23 +0000 (18:06 +0000)] 
Fix a problem causing sqlite3_changes() to return an incorrect value following a "DELETE FROM tbl" command on an intkey table (because internal b+tree cells were being included in the count).

FossilOrigin-Name: f662ff4746aaa43e63e20710b8cbfeeceab3183e953ac1685c41846d2e9d124c

4 years agoEnsure that the cell array used in balance_nonroot() is always large enough, even...
dan [Tue, 22 Jun 2021 14:59:34 +0000 (14:59 +0000)] 
Ensure that the cell array used in balance_nonroot() is always large enough, even if the pages being balanced are corrupt.

FossilOrigin-Name: 53f64e83b39cb56ac7211ffc80d06da13318e1da9dbca7b9123954f5be229a0d

4 years agoLoad recent dbsqlfuzz cases into test/fuzzdata8.db.
drh [Sun, 20 Jun 2021 22:52:51 +0000 (22:52 +0000)] 
Load recent dbsqlfuzz cases into test/fuzzdata8.db.

FossilOrigin-Name: a766bba0eead47e9ff24b6afd152a7fbd331261e04dd76feb9510585a08c5786

4 years agoRemove a NEVER() that is reachable by a corrupt database.
drh [Sun, 20 Jun 2021 22:49:26 +0000 (22:49 +0000)] 
Remove a NEVER() that is reachable by a corrupt database.
dbsqlfuzz 8456a0f88e39a49fb675d8f77394979ebb2a03c1.  Test case in TH3.

FossilOrigin-Name: 1c41e86fa102ec2b73fb7a55357ba6328fda37af316215e8808be88e2d1fd75f

4 years agoDo not allow an SQLITE_CORRUPT error to mask a prior SQLITE_IOERR in
drh [Sun, 20 Jun 2021 22:17:49 +0000 (22:17 +0000)] 
Do not allow an SQLITE_CORRUPT error to mask a prior SQLITE_IOERR in
balance_nonroot().  dbsqlfuzz 5e1c86e7f18023f2b9abe3429977d7ea726f50d8

FossilOrigin-Name: 50e818767e423991b99b3155cb15a0d1c1b744ab6139a8273f9348aab9a53d9c

4 years agoRemove unnecessary (redundant) variable initialization from
drh [Sat, 19 Jun 2021 20:20:23 +0000 (20:20 +0000)] 
Remove unnecessary (redundant) variable initialization from
sqlite3BtreeInsert() for a small size reduction and performance increase.

FossilOrigin-Name: 70d1836474207fa045ff7aa513839c9df26ea6e180eb898b30d89bd5b3833f58

4 years agoThe previous check-in is a significant change to btree, so go ahead and
drh [Sat, 19 Jun 2021 18:35:20 +0000 (18:35 +0000)] 
The previous check-in is a significant change to btree, so go ahead and
increment the version number for the next development cycle.

FossilOrigin-Name: 2eb6697051c13bf0cc3772fd6c16bfdea0be3b01c0d985e05004c04eaf7a4a48

4 years agoSplit the sqlite3BtreeMovetoUnpacked() routine into two separate routines
drh [Sat, 19 Jun 2021 18:32:20 +0000 (18:32 +0000)] 
Split the sqlite3BtreeMovetoUnpacked() routine into two separate routines
sqlite3BtreeTableMoveto() and sqlite3BtreeIndexMoveto(), since we usually
know the type of btree in advance.  This results in less branching and
better performance.

FossilOrigin-Name: 3b0d34e5e5f9a16c3397e4551f3b534729b1b375770f05f6ed5847818b1f4c0b

4 years agoVersion 3.36.0 version-3.36.0
drh [Fri, 18 Jun 2021 18:36:39 +0000 (18:36 +0000)] 
Version 3.36.0

FossilOrigin-Name: 5c9a6c06871cb9fe42814af9c039eb6da5427a6ec28f187af7ebfb62eafa66e5

4 years agoAdd an ALWAYS on a branch in STAT4-only logic that is now always
drh [Wed, 16 Jun 2021 19:23:24 +0000 (19:23 +0000)] 
Add an ALWAYS on a branch in STAT4-only logic that is now always
true due to check-in [c21bc5a2353e660f].

FossilOrigin-Name: 7bd55eee1ac63cf6d5699ce85bc5a29bf51afdf7a80bce44937fa833947a40f4

4 years agoOmit a handful of tests from pager1.test when testing SQLITE_ENABLE_ZIPVFS builds.
dan [Wed, 16 Jun 2021 18:58:01 +0000 (18:58 +0000)] 
Omit a handful of tests from pager1.test when testing SQLITE_ENABLE_ZIPVFS builds.

FossilOrigin-Name: c3036c28259c1375cd2c480c9ca0ce7f9aa1e952be4f110dde49b2b7d72a43b7

4 years agoDo not run test file sessionbig.test on 32-bit platforms. It uses too much memory.
dan [Wed, 16 Jun 2021 16:56:56 +0000 (16:56 +0000)] 
Do not run test file sessionbig.test on 32-bit platforms. It uses too much memory.

FossilOrigin-Name: 75e53215fe436999cdc70434c6ae96d3ce6642c71528cce9f5715fe1b1b81876

4 years agoAdjust the mkshellc.tcl script so that the generated code always uses
drh [Wed, 16 Jun 2021 15:56:09 +0000 (15:56 +0000)] 
Adjust the mkshellc.tcl script so that the generated code always uses
unix-style line endings.

FossilOrigin-Name: 9f69af4dbcb273519fa87b7868f3792560fb71b192f4ffe53b8b465334da5ae4

4 years agoAvoid ominous warning in showdb.c
larrybr [Wed, 16 Jun 2021 13:26:40 +0000 (13:26 +0000)] 
Avoid ominous warning in showdb.c

FossilOrigin-Name: f8d7ac0104b76555142ce0d32714594f42d19b311dce2f77f42f92756b5e0c93

4 years agoAdjustments to requirement markings in comments. No changes to code.
drh [Wed, 16 Jun 2021 12:26:01 +0000 (12:26 +0000)] 
Adjustments to requirement markings in comments.  No changes to code.

FossilOrigin-Name: be00e45b723adf64bc78927dc12de3116fd04912a52e5c105a52f235c57698f5

4 years agoEnhanced defense against integer overflow in ALTER TABLE.
drh [Wed, 16 Jun 2021 11:32:54 +0000 (11:32 +0000)] 
Enhanced defense against integer overflow in ALTER TABLE.

FossilOrigin-Name: fb7f094e4e0f03622c2e7fa02483c17671a8899c7ad8aba8659177180f406704

4 years agoFix some #ifdefs so that builds work for all supported compile-time options.
drh [Tue, 15 Jun 2021 20:10:25 +0000 (20:10 +0000)] 
Fix some #ifdefs so that builds work for all supported compile-time options.

FossilOrigin-Name: ca7d78f7818b4754fd04ea2b618dee1f01e11c6a5acb54951217c0d03df8e187

4 years agoFix an incorrect ifdef in the previous check-in. ifdef-update
drh [Tue, 15 Jun 2021 20:07:16 +0000 (20:07 +0000)] 
Fix an incorrect ifdef in the previous check-in.

FossilOrigin-Name: 4b2bb46730393292364b2be7db4e73fc8f93cd5a141aaf04f20fe0119deb5ab3

4 years agoFix some minor #ifdef issues so that all of the supported compile-time
drh [Tue, 15 Jun 2021 18:46:06 +0000 (18:46 +0000)] 
Fix some minor #ifdef issues so that all of the supported compile-time
options continue to build.

FossilOrigin-Name: d8cf407046f20b0398f19acd0dab6acb6c742911e21e1003cb5b194dd668d98e

4 years agoUpdate the "nmakehlp.c" utility program sources associated with the TCL
drh [Tue, 15 Jun 2021 15:36:05 +0000 (15:36 +0000)] 
Update the "nmakehlp.c" utility program sources associated with the TCL
Extension Architecture, obtained from
[https://core.tcl-lang.org/sampleextension/file].  Perhaps this new
version will sit better with salmonx's static analyzer
[forum:/forumpost/7f0beca9797ee23a|(ref1)],
[forum:/forumpost/7d5c8b19231ad57f|(ref2)].

FossilOrigin-Name: 603b851d7d923d71543760b09a55d72dbbc185ac9c353c954c331c0454992c80

4 years agoAdd NULL checks on all sqlite3_vfs_find(0) calls. This is not strictly
drh [Tue, 15 Jun 2021 15:15:40 +0000 (15:15 +0000)] 
Add NULL checks on all sqlite3_vfs_find(0) calls.  This is not strictly
necessary.  There are no vulnerabilities here.  However, adding these
checks avoids unnecessary static analyzer complaints.
[forum:/forumpost/ce1193be15|Forum post ce1193be15].

FossilOrigin-Name: 272a15b9f418fb0b31a9808f7c42c20cf52318035ff98935d8e8519634357e8d

4 years agoPrevent an infinite loop in the trim() SQL function if the second argument
drh [Tue, 15 Jun 2021 14:34:21 +0000 (14:34 +0000)] 
Prevent an infinite loop in the trim() SQL function if the second argument
is a carefully malformed UTF8 string.

FossilOrigin-Name: 829343c26ed7b87fafc70de3369625209bad91e79bb7ca2946d5c8d61cc1c3c4

4 years agoFix typos in testcase() macros from check-in [c09d90eec2a49b94].
drh [Mon, 14 Jun 2021 20:49:33 +0000 (20:49 +0000)] 
Fix typos in testcase() macros from check-in [c09d90eec2a49b94].

FossilOrigin-Name: d4d9869c30710914b7ba51221b2c2223a9cf16b913bd6f3866ae747494a116af

4 years agoIn the authorizer, use SQLITE_DROP_INDEX, not SQLITE_DROP_TEMP_INDEX
drh [Mon, 14 Jun 2021 20:41:20 +0000 (20:41 +0000)] 
In the authorizer, use SQLITE_DROP_INDEX, not SQLITE_DROP_TEMP_INDEX
when dropping an index in an attached database.

FossilOrigin-Name: e5a5acd6006133c5da4a7dd79726dbaa41c0d60ebeda890f848a6aafe5f9ef70

4 years agoFix an ALTER TABLE problem with handling infinite loops of CTEs in the database schema.
dan [Mon, 14 Jun 2021 20:08:48 +0000 (20:08 +0000)] 
Fix an ALTER TABLE problem with handling infinite loops of CTEs in the database schema.

FossilOrigin-Name: c09d90eec2a49b948c60971294d146db5c82438855cd3fa48ddc3d2e6b44c26c

4 years agoFix a test script problem in corruptN.test.
dan [Mon, 14 Jun 2021 14:52:27 +0000 (14:52 +0000)] 
Fix a test script problem in corruptN.test.

FossilOrigin-Name: 3ddfe9ae55e6d0d922fbc209768b2ac4a4792f0f63af9a8fb53d66a4b8f1d94b

4 years agoAn index on the expression "likely(X)" should store the true value of X,
drh [Mon, 14 Jun 2021 14:00:09 +0000 (14:00 +0000)] 
An index on the expression "likely(X)" should store the true value of X,
even if X is a real number with no fractional part.  The optimization of
storing some REAL indexed values as INT (see [10d851353c2abead]) should
be omitted for index columns that are expressions.
[forum:/forumpost/3b940c437a|Forum post 3b940c437a].

FossilOrigin-Name: 791473bc6677c2ae76f558082a4b43ca1eaf9895b76624d5b55d58f2af898ff3

4 years agoAvoid allocating oversized column names in the sqllimit1.test module.
drh [Mon, 14 Jun 2021 11:20:30 +0000 (11:20 +0000)] 
Avoid allocating oversized column names in the sqllimit1.test module.

FossilOrigin-Name: 7068f1f69b4feef49260e80902e6bdae47c21a0daa16c96ed1a0984dd1f14cdc

4 years agoThe opcode that preceeds OP_SeekScan is usually OP_IdxGT but can sometimes
drh [Sun, 13 Jun 2021 19:14:14 +0000 (19:14 +0000)] 
The opcode that preceeds OP_SeekScan is usually OP_IdxGT but can sometimes
be OP_IdxGE.  Adjust asserts accordingly.  Follow-up to
[9a2ab6092d644fc3].  dbsqlfuzz e41762333a4d6e90a49e628f488d0873b2dba4c5

FossilOrigin-Name: d6803ed8dc4b1eb4d4dc100728acb4a4aa1479732f0fcb94eb23b7f7702ef65c

4 years agoImproved defense against OOM errors in sqliteInitOne().
drh [Sun, 13 Jun 2021 17:55:58 +0000 (17:55 +0000)] 
Improved defense against OOM errors in sqliteInitOne().
dbsqlfuzz 429db39cd5777c46479641e8637c48c62890042d

FossilOrigin-Name: b6c57e0e2a9658417a0a5548e73007faa59c837b9ad87293bc216feef980717a

4 years agoCorrect link in .ar help.
larrybr [Sun, 13 Jun 2021 08:23:28 +0000 (08:23 +0000)] 
Correct link in .ar help.

FossilOrigin-Name: de9d0f9548106f5a59c57dbf947fc63c0411b1e975033a4c4097cefbbe86ee5f

4 years agoThe sqlite3WithPush() routine might destroy its second argument if there was
drh [Sat, 12 Jun 2021 18:12:59 +0000 (18:12 +0000)] 
The sqlite3WithPush() routine might destroy its second argument if there was
a prior OOM.  Do not use the second argument of sqlite3WithPush() if this
happens.

FossilOrigin-Name: baa3f96250763b42391fbb4dea283a4b6140fdbf775d85081a9efd6e6258f7b4

4 years agoThis is an alternative approach to the use-after-free problem fixed alternative-oom-fix
drh [Sat, 12 Jun 2021 17:45:32 +0000 (17:45 +0000)] 
This is an alternative approach to the use-after-free problem fixed
by [193b14a58e378ab3], saved here for historical reference.

FossilOrigin-Name: 6796b7a2485eca279db9d777595a886bc0d1dd7ec9551e1797e0032ef5493559

4 years agoReapply two recent ALTER TABLE error checks that turned out to be necessary
drh [Fri, 11 Jun 2021 13:18:56 +0000 (13:18 +0000)] 
Reapply two recent ALTER TABLE error checks that turned out to be necessary
after all.  dbsqlfuzz fc5a9deefda00dda914748985155a6d4c44174e5.

FossilOrigin-Name: 230fedd923c87741d20caf55f29e8464cc6df344536f9b89331e0a0059a926f7

4 years agoAvoid bugs in some implementations of dlopen() by avoiding calls to
drh [Fri, 11 Jun 2021 12:41:14 +0000 (12:41 +0000)] 
Avoid bugs in some implementations of dlopen() by avoiding calls to
dlopen() with a filename argument that exceeds FILENAME_MAX bytes.
[forum:/forumpost/08a0d6d9bf|Forum post 08a0d6d9bf].

FossilOrigin-Name: 01f3877c7172d52225705d2461addc6129fe9cdb04e6f643518fc74bb4b526e4

4 years agoFix a crash in new ALTER TABLE code that could follow an OOM.
dan [Fri, 11 Jun 2021 12:14:58 +0000 (12:14 +0000)] 
Fix a crash in new ALTER TABLE code that could follow an OOM.

FossilOrigin-Name: 6f1f2a0a9cd75ca43b81cc325296b843ccefe6f8040da8f2e873f49928423f10

4 years agoRemove an unreachable branch added by the previous commit.
dan [Fri, 11 Jun 2021 12:02:00 +0000 (12:02 +0000)] 
Remove an unreachable branch added by the previous commit.

FossilOrigin-Name: 852ee0e91ceae090157c4ab2805530f5d7985a490ce77f54d7b148f56e466f79

4 years agoFix problems with ALTER TABLE and schemas that contain views with some recursive...
dan [Fri, 11 Jun 2021 11:14:24 +0000 (11:14 +0000)] 
Fix problems with ALTER TABLE and schemas that contain views with some recursive CTEs, or CTEs that reference other CTEs.

FossilOrigin-Name: 8b1f9a51e962cd9a5593a1ecf4da6c86e34c4f9ff96ffcea0fb421880c8836cb

4 years agoImproved robustness following OOM in the constant propagation optimization.
drh [Thu, 10 Jun 2021 14:36:23 +0000 (14:36 +0000)] 
Improved robustness following OOM in the constant propagation optimization.
dbsqlfuzz 001a20255c0df7495c21df62a20ea5b51e22c390.

FossilOrigin-Name: 8658a64d414db6900b55281f5e67180ea74b82627199b927634a727ed28030c2

4 years agoSet the database connection error code for an oversize argument to
drh [Wed, 9 Jun 2021 14:45:02 +0000 (14:45 +0000)] 
Set the database connection error code for an oversize argument to
sqlite3_bind_blob64() or sqlite3_bind_text64().
[forum:/info/a636276f0d451667|Forum post a636276f0d451667] and
[forum/forumpost/33821c8db543c|33821c8db543c].

FossilOrigin-Name: 56ff58c0b8905aa10c85f1418da8d6089d23fd9a220c5cb17027d46affe05002

4 years agoAdd defensive code to better handle corrupt records in fts5.
dan [Wed, 9 Jun 2021 13:39:11 +0000 (13:39 +0000)] 
Add defensive code to better handle corrupt records in fts5.

FossilOrigin-Name: a99c29b5efaf17e34506cda5ce017ec0112b3cb24bf8a2f1831f0c14a8aa8d30

4 years agoRemove two assert()s in FTS5 that checks for database corruption right before
drh [Tue, 8 Jun 2021 23:46:59 +0000 (23:46 +0000)] 
Remove two assert()s in FTS5 that checks for database corruption right before
actual code does the same check.
dbsqlfuzz 9680db8f5338cb9b6060eb3a02d984555d4472e3.

FossilOrigin-Name: f3f82967b2e9fd4168d86300138ac4bbcd6ffd7a3ff5ecf20acdc29e5356ac3b

4 years agoTry to avoid a double-free in the showdb utility program when running
drh [Tue, 8 Jun 2021 17:56:16 +0000 (17:56 +0000)] 
Try to avoid a double-free in the showdb utility program when running
pgidx on a corrupt database.
See [forum:/forumpost/a60ea5a4d4|forum post a60ea5a4d4] for context

FossilOrigin-Name: e3188a866362894d98521b3006fb5b9a63fe4a3bb2ff4f1b58acb6eb4e52da8f

4 years agoAdd an assert() to prevent the value of the SQLITE_VTABRISK macros from being
drh [Tue, 8 Jun 2021 12:22:24 +0000 (12:22 +0000)] 
Add an assert() to prevent the value of the SQLITE_VTABRISK macros from being
changed in a way that would break logic.

FossilOrigin-Name: 33babdb582ca712cc089165a953972096b57d1cb683954fa830df5e7befaadba

4 years agoAvoid a buffer overread in fts3 that could occur when handling corrupt data structures.
dan [Tue, 8 Jun 2021 12:15:56 +0000 (12:15 +0000)] 
Avoid a buffer overread in fts3 that could occur when handling corrupt data structures.

FossilOrigin-Name: 45f459d2fa4be97d9bbb970efbc0b5d40efaf93f52ed111fd0fcdc572c24327b

4 years agoFix a buffer overread that could occur in fts5 when handling corrupt records.
dan [Mon, 7 Jun 2021 17:36:57 +0000 (17:36 +0000)] 
Fix a buffer overread that could occur in fts5 when handling corrupt records.

FossilOrigin-Name: 078962a2164a784b135bacee51ef10973dc2e30de04353d48698d0e72edd63d8

4 years agoFix a buffer overrun in fts3 that could occur when handling corrupt records and ...
dan [Mon, 7 Jun 2021 15:28:33 +0000 (15:28 +0000)] 
Fix a buffer overrun in fts3 that could occur when handling corrupt records and '^' queries.

FossilOrigin-Name: 9d0b6b0f42a47a3892ebc765250756fb8b844e8399d992a8b65f55af3800ea06

4 years agoAdd recent dbsqlfuzz test cases to test/fuzzdata8.db.
drh [Mon, 7 Jun 2021 14:21:03 +0000 (14:21 +0000)] 
Add recent dbsqlfuzz test cases to test/fuzzdata8.db.

FossilOrigin-Name: 162022003c2b4a393296939e2616bd3c7bbfd65b198ba6c9894e4234de2d3122

4 years agoAvoid use of uninitialized memory while running defragmentPage() on a
drh [Mon, 7 Jun 2021 13:50:36 +0000 (13:50 +0000)] 
Avoid use of uninitialized memory while running defragmentPage() on a
corrupt database file.
dbsqlfuzz 4c45cecc0b255aaf2ea85453ccd17e814fd0b6b2

FossilOrigin-Name: 35e40d75754ec6fb93fe57c6ecbe731104e77c997d7e17ef1a22984837dfcab2

4 years agoFix an assert() in the OP_ParseSchema opcode that might fail on a corrupt
drh [Mon, 7 Jun 2021 11:50:23 +0000 (11:50 +0000)] 
Fix an assert() in the OP_ParseSchema opcode that might fail on a corrupt
database file when running with PRAGMA writable_schema=ON.
dbsqlfuzz e7d743ca65f2767e415095f0c5a49166a0f55eea.

FossilOrigin-Name: 10801f65af495a999ef61741322ea82dc20bd92ea8e55e4016c409096f38b0d1

4 years agoRemove unnecessary end-of-line whitespace from the regexp.c extension.
drh [Mon, 7 Jun 2021 00:54:38 +0000 (00:54 +0000)] 
Remove unnecessary end-of-line whitespace from the regexp.c extension.

FossilOrigin-Name: 17e26a1f5e3cc4e96b9265dcdbf54f376304b0908f3ff0a0d3df33653e77e5b6

4 years agoOmit the unnecessary highlighting of the security implications of
drh [Mon, 7 Jun 2021 00:41:18 +0000 (00:41 +0000)] 
Omit the unnecessary highlighting of the security implications of
SQLTIE_DIRECTONLY in the sqlite3_create_function() documentation.
No changes to code.

FossilOrigin-Name: 2aa9368b63b42ac7c700516f109edcc6098c12b850eae591afed4e51a3f41819

4 years agoA better fix for the problem addressed by [4eb80b0cc61526c1]. This fix
drh [Fri, 4 Jun 2021 23:26:56 +0000 (23:26 +0000)] 
A better fix for the problem addressed by [4eb80b0cc61526c1].  This fix
also avoids reading uninitialized variables.

FossilOrigin-Name: 1c71de43dbc68002c4a6229e7efffb019655baff67a51fe922571fe420c95835

4 years agoMake MSVC build examples work when taken literally, and say when they do.
larrybr [Fri, 4 Jun 2021 21:46:29 +0000 (21:46 +0000)] 
Make MSVC build examples work when taken literally, and say when they do.

FossilOrigin-Name: b53ca8ed8336d9e442a920e1c05a17a38dadc2fd1e0cb73e68d380ef34c87af8

4 years agoImprovements to the OP_SeekScan optimization. Added the
drh [Fri, 4 Jun 2021 17:47:08 +0000 (17:47 +0000)] 
Improvements to the OP_SeekScan optimization.  Added the
SQLITE_TESTCTRL_TUNE test-control.

FossilOrigin-Name: 9a2ab6092d644fc3effc4ab4aca33efb2b4dd4213b2154d518a3e87eec4d3983

4 years agoAdd the (missing) dependency of regexp.c to the shell.c rule in the makefiles.
drh [Fri, 4 Jun 2021 16:17:38 +0000 (16:17 +0000)] 
Add the (missing) dependency of regexp.c to the shell.c rule in the makefiles.
This dependency should have been added by [5d4535bfb603d7c8] but was missed.

FossilOrigin-Name: c93be7e66039e4c27b86f49d29f5c653cc6c02f6cbc6ad02d8bb1d32d0240863

4 years agoFix harmless compiler warnings.
drh [Fri, 4 Jun 2021 16:11:19 +0000 (16:11 +0000)] 
Fix harmless compiler warnings.

FossilOrigin-Name: 83aca2d8704e51eeed5652b1506c6fc883c0397728cda456f229369788b8608a

4 years agoFix more cases in the regexp extension where the 0x00 terminator at the end
drh [Fri, 4 Jun 2021 15:56:43 +0000 (15:56 +0000)] 
Fix more cases in the regexp extension where the 0x00 terminator at the end
of the input string is being pattern matched.
[forum/forumpost/9104f0d9e7|Forum post 9104f0d9e7].

FossilOrigin-Name: 569e00d4acd426667990d675ca5da48a1859ac84af2412464ecd29c7c5da828c

4 years agoRevamp SQLITE_TESTCTRL_TUNE to provide visibility of current turning seekscan-improvements
drh [Fri, 4 Jun 2021 13:40:26 +0000 (13:40 +0000)] 
Revamp SQLITE_TESTCTRL_TUNE to provide visibility of current turning
parameter values.

FossilOrigin-Name: 677e645e69e1f06487c26da6671fc03f0fb89a0f8e0d35712e6bdcf7279bdfc4

4 years agoAdd support for SQLITE_TESTCTRL_TUNE and the ".testctrl tune ID VALUE" command
drh [Fri, 4 Jun 2021 13:16:46 +0000 (13:16 +0000)] 
Add support for SQLITE_TESTCTRL_TUNE and the ".testctrl tune ID VALUE" command
in the CLI.

FossilOrigin-Name: f1199d58b9cfdcddb83bc35544ce38299ac4ed50d7ab90d33463f6ccce526feb

4 years agoMerge recent trunk enchancements into the seekscan-improvements branch.
drh [Fri, 4 Jun 2021 12:29:22 +0000 (12:29 +0000)] 
Merge recent trunk enchancements into the seekscan-improvements branch.

FossilOrigin-Name: d9e85fe80cdd3d798a583a5f99148235d0c3f39adfabbc661615893c387e6e45

4 years agoFix a case where combining row-value UPDATE FROM syntax with window functions over...
dan [Thu, 3 Jun 2021 18:56:42 +0000 (18:56 +0000)] 
Fix a case where combining row-value UPDATE FROM syntax with window functions over aggregates can cause an error.

FossilOrigin-Name: 4a587c3492faa99490fd67ca1de9fceafcdc12d220f42817791923be258b73f1

4 years agoFix the truncate optimization so that PRAGMA count_changes and changes()
drh [Thu, 3 Jun 2021 18:51:51 +0000 (18:51 +0000)] 
Fix the truncate optimization so that PRAGMA count_changes and changes()
return correct values even for a WITHOUT ROWID table.
[forum:/forumpost/07dedbf9a1|Forum post 07dedbf9a1].

FossilOrigin-Name: 820ae3b117c2d8c117c0c5a4e440a7d06886772516c7fc0a84606388f91be195

4 years agoAdd the regexp() and regexpi() extension functions to the CLI.
drh [Thu, 3 Jun 2021 13:51:31 +0000 (13:51 +0000)] 
Add the regexp() and regexpi() extension functions to the CLI.

FossilOrigin-Name: 5d4535bfb603d7c8229ef60f99666459f2997e02e186bc1e52b7ec1320251d67

4 years agoFix a bug in the regexp extension in which the "." wildcard would match
drh [Thu, 3 Jun 2021 13:44:19 +0000 (13:44 +0000)] 
Fix a bug in the regexp extension in which the "." wildcard would match
the 0x00 terminator at the end of the comparison string.

FossilOrigin-Name: fa23108b299fc70e80540c449500e50ac6344a152f4f6b9c1b1f568bbda8f6e1

4 years agoFix the case-insensitive version of the regexp() function so that it does not
drh [Thu, 3 Jun 2021 12:31:08 +0000 (12:31 +0000)] 
Fix the case-insensitive version of the regexp() function so that it does not
use the prefix optimization incorrectly.
[forum:/forumpost/983b43ef8e|Forum post 983b43ef8e].

FossilOrigin-Name: 1a8e43cc1b7969c40140dd7fd481d5ffd9de80e214eb494567c286d93a2b06e5

4 years agoAdd an optimization control bit to disable the OP_SeekScan optimization.
drh [Wed, 2 Jun 2021 19:28:07 +0000 (19:28 +0000)] 
Add an optimization control bit to disable the OP_SeekScan optimization.

FossilOrigin-Name: f674c41e5cbbb08ffc3cc00ab449229b672054c872e209337f12e7eacb531fe5

4 years agoFix an ALWAYS which can be false.
drh [Wed, 2 Jun 2021 18:50:39 +0000 (18:50 +0000)] 
Fix an ALWAYS which can be false.

FossilOrigin-Name: a87f8ecd6db11ea40a15314b875fc78289c19ab2dec6f738b4bf37f4aafa7bbd

4 years agoTighten assert() restrictions on the OP_SeekScan opcode.
drh [Wed, 2 Jun 2021 17:32:51 +0000 (17:32 +0000)] 
Tighten assert() restrictions on the OP_SeekScan opcode.

FossilOrigin-Name: dbc33d3ae30de5427a4351824a11026145f778fad95bd0b825bd0a4b63059677

4 years agoNever use WHERE_IN_SEEKSCAN for the 2nd or subsequent IN operator.
drh [Wed, 2 Jun 2021 17:14:50 +0000 (17:14 +0000)] 
Never use WHERE_IN_SEEKSCAN for the 2nd or subsequent IN operator.

FossilOrigin-Name: d0b98619082038ed451912bcdf56568835a8577989a25cacf25591f2366d4f52

4 years agoThis is an attempt to address the OP_SeekScan performance issue identified by
drh [Wed, 2 Jun 2021 12:44:26 +0000 (12:44 +0000)] 
This is an attempt to address the OP_SeekScan performance issue identified by
[forum:/forumpost/b4fcb8a598|forum post b4fcb8a598].

FossilOrigin-Name: d58efb3f21a4150b8136197e43837c7b646c42d492a7c24ddc7591dba415a2c8

4 years agoFix issue in 'mkopcodeh.tcl' tool that prevented its termination in rare circumstances.
mistachkin [Tue, 1 Jun 2021 21:07:49 +0000 (21:07 +0000)] 
Fix issue in 'mkopcodeh.tcl' tool that prevented its termination in rare circumstances.

FossilOrigin-Name: a8d921136f8ab132279984a77d0eeaf355342cdb0a98d7e1e59c8e6c8ed9459c

4 years agoFix a problem with running ALTER TABLE against schemas that contain compound SELECT...
dan [Tue, 1 Jun 2021 15:37:14 +0000 (15:37 +0000)] 
Fix a problem with running ALTER TABLE against schemas that contain compound SELECT statements with ORDER BY clauses containing one or more references to the second or subsequent component SELECT statements.

FossilOrigin-Name: 587a3044468a40707c714d013cb766d8a4d9eb13bb20871846a0e8c34bea8cf4

4 years agoDo not confuse the ">" operator with IS NOT NULL when checking to see if
drh [Sat, 29 May 2021 23:07:59 +0000 (23:07 +0000)] 
Do not confuse the ">" operator with IS NOT NULL when checking to see if
a partial index is usable.
[forum:/forumpost/d813704d7c|Forum post d813704d7c].

FossilOrigin-Name: 8cc23931d61b7d78521acce93fc2603649c5813c7a0869cb2c1bde2c8c4e51b4

4 years agoFix a subtle error in an assert().
drh [Sat, 29 May 2021 21:50:05 +0000 (21:50 +0000)] 
Fix a subtle error in an assert().
dbsqlfuzz eefbd0215c0c1b4bcc32b8141b48b35f7b431300

FossilOrigin-Name: a5ec81eb49e55fc03591666f336c09e5469785c8680f253ec3cc5366ac2fa45a

4 years agoMake a deep copy of the result of a subquery in case the subquery is
drh [Fri, 28 May 2021 12:48:31 +0000 (12:48 +0000)] 
Make a deep copy of the result of a subquery in case the subquery is
reused.  Fix for the problem reported by
[forum:/forumpost/28216b36ac|forum post 28216b36ac] and introduced by
check-in [f30fb19ff763a7cb].  Further changes to try to optimize the new
OP_Copy opcode back into either OP_SCopy or OP_Move will be attempted
separately.  A test case will be in TH3.

FossilOrigin-Name: c9f0b9cb0aef107265435e22c164dd3c974eadfd00abf7cfd4fc7ec95c0dd7d0

4 years agoFix a potential memory leak in json_group_object() following an error.
drh [Fri, 28 May 2021 12:15:19 +0000 (12:15 +0000)] 
Fix a potential memory leak in json_group_object() following an error.
dbsqlfuzz cd32630de3ff039d97089592b63cb3616f8ec9dd

FossilOrigin-Name: 21676731cedae27d1ab9fe62b269001ae6e3eeb3caa87b4f5536f777631a8bbc

4 years agoAdd the merge-test.tcl script to ease verification of LTS branches.
drh [Thu, 27 May 2021 16:31:04 +0000 (16:31 +0000)] 
Add the merge-test.tcl script to ease verification of LTS branches.

FossilOrigin-Name: f958ffbc61c693b71538cc3aa5f95ce0f0b5d4906efbb0c075f543e19883a669

4 years agoImproved comment on the prpagateConstants() routine. No changes to executable
drh [Thu, 27 May 2021 14:09:01 +0000 (14:09 +0000)] 
Improved comment on the prpagateConstants() routine.  No changes to executable
code.

FossilOrigin-Name: d61a875df48d8baab3ada0174c8e0312a9268bbd11bf104b4385eff9e2744266

4 years agoRemove a NEVER that is reachable following OOM in writable_schema=ON mode
drh [Thu, 27 May 2021 10:23:16 +0000 (10:23 +0000)] 
Remove a NEVER that is reachable following OOM in writable_schema=ON mode
with a corrupt schema.

FossilOrigin-Name: 4eb80b0cc61526c1ff7478b1b855b29fa4326daee61facd1d85e4297bb32ac9d

4 years agoImprovements to the constant-propagation optimization in order to better
drh [Wed, 26 May 2021 23:10:19 +0000 (23:10 +0000)] 
Improvements to the constant-propagation optimization in order to better
deal with unusual affinities.  See
[forum:/forumpost/6a06202608|forum post 6a06202608] for more detail.

FossilOrigin-Name: 9be208a6d70582c6808abe6e016ab9cd8d10f0deefb8c7a8c0543372cca15b12

4 years agoMinor optimization to opcode comparison logic in the fixes to constant-propagation-fix
drh [Wed, 26 May 2021 19:52:21 +0000 (19:52 +0000)] 
Minor optimization to opcode comparison logic in the fixes to
the constant-propagation optimization on this branch.

FossilOrigin-Name: f17dec40a0ccc044bd32e035fc10797552329af242408a45f36125ed8d2ef088

4 years agoAdd new test file whereM.test. Containing tests for the change on this branch.
dan [Wed, 26 May 2021 19:37:27 +0000 (19:37 +0000)] 
Add new test file whereM.test. Containing tests for the change on this branch.

FossilOrigin-Name: c4c76b824c41afb5b4d7b397c4d3142698aa303ea3a368c0cc7af4884e3a10bd