]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
4 years agoFix an incorrect comment on testcase misc1-27.0. No changes to code.
drh [Mon, 5 Jul 2021 00:07:39 +0000 (00:07 +0000)] 
Fix an incorrect comment on testcase misc1-27.0.  No changes to code.

FossilOrigin-Name: 49829ae3229b7c7c7adeaa970a84aebd5157bc93b38fd6d80d86cc03f5fdde6f

4 years agoEnhance the treeview debugging mechanism so that it correctly deals with
drh [Sun, 4 Jul 2021 22:33:08 +0000 (22:33 +0000)] 
Enhance the treeview debugging mechanism so that it correctly deals with
TK_ROW expression nodes.

FossilOrigin-Name: e87fdb6514b6f6775a5a36ca0ec5c920eeaba9e3b842dffa327e970b27cd036d

4 years agoFix a (harmless) typo in a comment. No code changes.
drh [Sat, 3 Jul 2021 18:57:40 +0000 (18:57 +0000)] 
Fix a (harmless) typo in a comment.  No code changes.

FossilOrigin-Name: d2b9b8daa3b87c3dba1329e2f2f44b60d6b5bb9a49d741045aa20cc7813446b2

4 years agoIn the PRAGMA foreign_key_check, ensure that sufficient registers are
drh [Sat, 3 Jul 2021 02:55:47 +0000 (02:55 +0000)] 
In the PRAGMA foreign_key_check, ensure that sufficient registers are
allocated for the virtual machine, even if one or more foreign keys reuses
the same column multiple times and has more columns than the table it is part
of.  [forum:/forumpost/a6b0c05277|Forum post a6b0c05277].

FossilOrigin-Name: 68db1ff9c44fa9c37690ce55ad304d4263ba6fac490063d9e08470de6c17cfe6

4 years agoPut ALWAYS() on a branch that is always true due to [d4097364c511709b].
drh [Fri, 2 Jul 2021 12:25:30 +0000 (12:25 +0000)] 
Put ALWAYS() on a branch that is always true due to [d4097364c511709b].
Fix a testcase precondition associated with the same check-in.

FossilOrigin-Name: 55e2fbebb0a2c9991feef46f31e79b82a24de272aae836bf4d3c06ee06ef1a70

4 years agoFix a harmless assertion fault discovered by
drh [Fri, 2 Jul 2021 12:08:12 +0000 (12:08 +0000)] 
Fix a harmless assertion fault discovered by
[https://oss-fuzz.com/testcase-detail/5517690440646656|OSSFuzz].  The
assertion fault is harmless because the assert() checks a condition that
that is harmless if false and the assert() is disabled in production
builds.

FossilOrigin-Name: 79443aabe1db8cc2ff9537fde0dac0e858eae3f3848ee9cc1b8fba47b824bf08

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