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

4 years agoAvoid assuming that an expression like "x=10" in a WHERE clause implies that CASE...
dan [Wed, 26 May 2021 18:51:57 +0000 (18:51 +0000)] 
Avoid assuming that an expression like "x=10" in a WHERE clause implies that CASE(x AS TEXT)=='10'.

FossilOrigin-Name: 389ec669f416c74d651e25572f6e007c2a62ddd4027524f553107b06db5c55eb

4 years agoTake care that the code is not generated for the same Select object more
drh [Wed, 26 May 2021 18:46:51 +0000 (18:46 +0000)] 
Take care that the code is not generated for the same Select object more
than once, as transformations that apply during the first pass might
cause problems for the second pass.
dbsqlfuzz 836b625cd8a41809ef80fc7ebaa6554357bcb463.

FossilOrigin-Name: f30fb19ff763a7cbe768ea49954704e14d6400f69bb4257c9c890e1564e14835

4 years agoUpdate an assert() in wherecode.c that might fail following an unrelated SQL error.
dan [Wed, 26 May 2021 14:32:33 +0000 (14:32 +0000)] 
Update an assert() in wherecode.c that might fail following an unrelated SQL error.

FossilOrigin-Name: 3e2c36a8272ab3c1777638c0ed8222e7ff04657fe1c40f74a63b99a5a90258cc

4 years agoDo not run sessionbig.test as part of the session_strm permutation. It is too slow.
dan [Tue, 25 May 2021 16:10:12 +0000 (16:10 +0000)] 
Do not run sessionbig.test as part of the session_strm permutation. It is too slow.

FossilOrigin-Name: 708ce7ad8acee702d08d1987aa253b0bfc3fd97255d6e4153122b03eba337570

4 years agoUpdate an allocation routine in the sessions module to allow it to allocate the maxim...
dan [Tue, 25 May 2021 15:21:54 +0000 (15:21 +0000)] 
Update an allocation routine in the sessions module to allow it to allocate the maximum size permitted by sqlite3_realloc64().

FossilOrigin-Name: 0b45e821911e4a852edd6d9e9cfe5f9de33337edf76fb12b79adaf11a4b83e8a

4 years agoEnhance the shell tool ".dump PATTERN" command so that it dumps the contents of shado...
dan [Tue, 25 May 2021 11:39:14 +0000 (11:39 +0000)] 
Enhance the shell tool ".dump PATTERN" command so that it dumps the contents of shadow tables when a virtual table is identified by the PATTERN.

FossilOrigin-Name: b0bc5ab9ceec496ac260ccfd53b51a2b53a81576fbe04c97b99f6705b063c59f

4 years agoFix a problem in the in-memory journal code that could occasionally lead to a segfaul...
dan [Mon, 24 May 2021 14:35:19 +0000 (14:35 +0000)] 
Fix a problem in the in-memory journal code that could occasionally lead to a segfault when a sub-transaction that modified zero pages was committed.

FossilOrigin-Name: 17960165f5840cab45b7a8bb02779ebfb321c68f33ec6da9ab14063ccd134fa4

4 years agoMinor comment improvements in fuzzcheck.c.
drh [Mon, 24 May 2021 12:28:13 +0000 (12:28 +0000)] 
Minor comment improvements in fuzzcheck.c.

FossilOrigin-Name: 7aca8d52c16c2192d9c1ff03a976c482a60365cef8d2474b540ff4c84e8737b4

4 years agoNew dbsqlfuzz cases added to test/fuzzdata8.db.
drh [Mon, 24 May 2021 12:13:10 +0000 (12:13 +0000)] 
New dbsqlfuzz cases added to test/fuzzdata8.db.

FossilOrigin-Name: 5bb5c9ec049488f95e47bbd9f1db9038ffabad3cfafa613acdaa790ab4034eee

4 years agoFix the TreeView module so that it works with the TK_ERROR exprssion.
drh [Mon, 24 May 2021 11:35:16 +0000 (11:35 +0000)] 
Fix the TreeView module so that it works with the TK_ERROR exprssion.
Also fix an assert() that was failing due to the recent TK_ERROR addition.

FossilOrigin-Name: dd56fbe0cfb0f7848190ce097b378321dd25ae509c7edf93682b091014824fc6

4 years agoAdditional defenses (above and beyond [b986600520696b0c]) to prevent an
drh [Mon, 24 May 2021 00:17:04 +0000 (00:17 +0000)] 
Additional defenses (above and beyond [b986600520696b0c]) to prevent an
invalid subquery from causing problems downstream.  If an error is found
while analyzing a subquery expression, change the expression to TK_ERROR
so inhibit further processing on that expression.
dbsqlfuzz cf624b8c0484c66e0f552bf6475e3e3f2c22b24e.

FossilOrigin-Name: 0be6b6c9f7c562e764792a4a5eb53ed11b230174b19361f7cd7778c743314bbd

4 years agoDo not push a WITH clause onto the processing stack if prior errors have
drh [Sun, 23 May 2021 17:47:04 +0000 (17:47 +0000)] 
Do not push a WITH clause onto the processing stack if prior errors have
occurred.  dbsqlfuzz 6b7a144674e215f06ddfeb9042c873d9ee956ac0.

FossilOrigin-Name: c2066dde53b9872dbb991e27419dd031791c942fe23826556f52efbd66c51662

4 years agoDo not invoke sqlite3ExprAffinity() after a syntax error that might have
drh [Sat, 22 May 2021 11:23:20 +0000 (11:23 +0000)] 
Do not invoke sqlite3ExprAffinity() after a syntax error that might have
left the tree in an inconsistent state.  See also [e8a1515b44380cc5] and
[forum:/forumpost/7e484e225c|forum post 7e484e225c].

FossilOrigin-Name: b986600520696b0c91c4ccc6aff1b698391b4bcaf8a3ea436be1967883faa2fe

4 years agoThe fix in the previous check-in was only correct if the OOM occurs on
drh [Sat, 22 May 2021 11:00:03 +0000 (11:00 +0000)] 
The fix in the previous check-in was only correct if the OOM occurs on
the initial allocation.  This changes should make it correct for a resize
as well.

FossilOrigin-Name: 57087ab2f297e4d96da5b9f3b89a26d8dd2bc4d22c2be8045b5d956d86282f39

4 years agoIf an FTS5 Cursor fails to enlarge the space for the aInst array, set the
drh [Sat, 22 May 2021 01:30:30 +0000 (01:30 +0000)] 
If an FTS5 Cursor fails to enlarge the space for the aInst array, set the
size of the aInst array to zero.
dbsqlfuzz 294254b8105cca409f27a711f1eb2e9e63cbcac5.

FossilOrigin-Name: 4ae5e5b5ecbce580d3f7f970076e828fc6fb5fbcdc3bbe8381ab38f52870a54f

4 years agoIf there are errors in a nested CTE, be sure to abandon processing. Do not
drh [Fri, 21 May 2021 21:49:07 +0000 (21:49 +0000)] 
If there are errors in a nested CTE, be sure to abandon processing.  Do not
continue since the parse tree may have been left in a goofy state which could
cause use-after-free and segfaults.
See [forum:/forumpost/aa4a7a3980|forum post aa4a7a3980] for an example.

FossilOrigin-Name: 94225d693932eb0b5d7799d40513afbd31ed40e1e156675eb92ad7216f1ff20f

4 years agoFix a problem with SQLITE_MAX_MEMORY in malloc.c.
dan [Fri, 21 May 2021 16:41:22 +0000 (16:41 +0000)] 
Fix a problem with SQLITE_MAX_MEMORY in malloc.c.

FossilOrigin-Name: c18dbe2f389f4ba7b219b7995d4f7009d1bc249ef8f93a30b262c6d2c008319d

4 years agoFix a faulty assert() statement in sqlite3ExprListDup(). This is a continuation
drh [Thu, 20 May 2021 23:25:28 +0000 (23:25 +0000)] 
Fix a faulty assert() statement in sqlite3ExprListDup(). This is a continuation
of the fix at [59812e7ef705226c].

FossilOrigin-Name: 240f7494bfa3e0806ae2f971e78039c62a419de647cb9e807309f90e1d2a536d

4 years agoEnhance one test case to use various alternative definitions of DUAL.
drh [Thu, 20 May 2021 18:11:45 +0000 (18:11 +0000)] 
Enhance one test case to use various alternative definitions of DUAL.

FossilOrigin-Name: 179dcb6ba771f0e94e06b5e3c5534d8005d27b2c9b4601be20fd68abfbc5dfd0

4 years agoEnsure that objects within view definitions are not incorrectly resolved to CTEs...
dan [Thu, 20 May 2021 17:15:06 +0000 (17:15 +0000)] 
Ensure that objects within view definitions are not incorrectly resolved to CTEs that are part of the statement using the view.

FossilOrigin-Name: f7dcc4b5197c6413be31384b390bb98a737d3f9edb7964433448c3b90b35a436

4 years agoEnsure the required b-tree mutexes are held for "CREATE TABLE IF NOT EXISTS" and...
dan [Thu, 20 May 2021 11:42:51 +0000 (11:42 +0000)] 
Ensure the required b-tree mutexes are held for "CREATE TABLE IF NOT EXISTS" and "DROP TABLE IF EXISTS" statements on attached databases.

FossilOrigin-Name: 67bde01614edd944b769ab28488bac1dbbf17d88beee62ca7f1e45681aa3d402

4 years agoReplace [0f0959c6f95046e8] with a new and better solution that also fixes the
drh [Thu, 20 May 2021 00:44:04 +0000 (00:44 +0000)] 
Replace [0f0959c6f95046e8] with a new and better solution that also fixes the
CTE name resolution problem described in
[forum:/forumpost/8590e3f6dc|forum post 8590e3f6dc].
Test cases for both problems added.

FossilOrigin-Name: 5614279daff5007d6e047c5c1b3cc82ba80a5c91c529525b0fe68b79ee82dd2c

4 years agoFixes and improvements to PRAGMA compile_options.
drh [Thu, 20 May 2021 00:10:24 +0000 (00:10 +0000)] 
Fixes and improvements to PRAGMA compile_options.

FossilOrigin-Name: 34579549a3bc1c2cfbf47a4770c1d7abc97869ba57bcd3ab1515765ca505ea05

4 years agoWhen constructing the synthensized SELECT statement that is used to choose
drh [Wed, 19 May 2021 21:55:56 +0000 (21:55 +0000)] 
When constructing the synthensized SELECT statement that is used to choose
the rows in an UPDATE FROM, make sure the first table is really the table
being updated, and not some common-table expression that happens to have the
same name.  [forum:/forumpost/a274248080|forum post a274248080].  More
changes associated with CTE name resolution are pending.

FossilOrigin-Name: 0f0959c6f95046e8e7887716e0a7de95da18d1e926ab1f919527083a56541db5

4 years agoIncorporate ..._DESERIALIZE revision. compile_options
larrybr [Wed, 19 May 2021 20:01:53 +0000 (20:01 +0000)] 
Incorporate ..._DESERIALIZE revision.

FossilOrigin-Name: b70587cca9e4f0116621e27362186e9329bcea8016c6565cd3ec5a9bf4a99d46

4 years agomerge from trunk
larrybr [Wed, 19 May 2021 19:55:10 +0000 (19:55 +0000)] 
merge from trunk

FossilOrigin-Name: 19ffe3cfe278a4046f32df56f75080c2377e4c44ad40a02d39db8e7701526204

4 years agoAdd a comment with useful information about SHM locking. No changes to
drh [Wed, 19 May 2021 19:28:48 +0000 (19:28 +0000)] 
Add a comment with useful information about SHM locking.  No changes to
deliverable code.

FossilOrigin-Name: 4e81ea3b15fb3fce5f31b77273639e748a735ab0970620e564e9a5c977b24a1a

4 years agoFix a formatting error on the comment. better-comment
drh [Wed, 19 May 2021 19:27:42 +0000 (19:27 +0000)] 
Fix a formatting error on the comment.

FossilOrigin-Name: 6f2fb60e499fc758bea6ffec030fef8ab5f97d08d31450f0b3ffafc20e652891

4 years agoAdd a table of shared-memory lock offsets in a comment in the os_unix.c code.
drh [Wed, 19 May 2021 16:55:28 +0000 (16:55 +0000)] 
Add a table of shared-memory lock offsets in a comment in the os_unix.c code.
Include some assert()s to help verify the numbers.

FossilOrigin-Name: b480aacb3430a789d98ffd81a1886bbbc3cda5b0e736ec9a3e2b463db2a3b3ad

4 years agoAllow aggregate sub-selects within ORDER BY and PARTITION BY clauses of window frame...
dan [Wed, 19 May 2021 14:49:51 +0000 (14:49 +0000)] 
Allow aggregate sub-selects within ORDER BY and PARTITION BY clauses of window frame definitions.

FossilOrigin-Name: 3daab94977af5e8a95690acc555540311403d890a3261a9757c633fcaaf428a9

4 years agoImproved column name and column type determination for the RETURNING clause.
drh [Wed, 19 May 2021 12:17:03 +0000 (12:17 +0000)] 
Improved column name and column type determination for the RETURNING clause.

FossilOrigin-Name: 699c33990a9438f28673ecf34f1e521d1af0b01c6ee30a608c0c91d2d593590e

4 years agoCure some TCL test failures and narrow an object scope.
larrybr [Wed, 19 May 2021 02:33:42 +0000 (02:33 +0000)] 
Cure some TCL test failures and narrow an object scope.

FossilOrigin-Name: 1155696c700862de1a8b1318bc41cd5cd01dec1af2c7720d8ef1e5c3321c425d

4 years agoIn the MULTI-INDEX OR query plan, code for sub-expressions can sometimes be
drh [Tue, 18 May 2021 19:10:10 +0000 (19:10 +0000)] 
In the MULTI-INDEX OR query plan, code for sub-expressions can sometimes be
generated twice.  But for some subqueries, generating code off of the same
tree twice causes problems.  So now MULTI-INDEX OR makes a copy of the
sub-expressions it uses to avoid code-generating them more than once.
dbsqlfuzz 9ebd2140e7206ff724e665f172faea28af801635.

FossilOrigin-Name: 4a55f72542c8bcc80253aa77043314cecb29d73cb4f51aa80f7811e86cc8ef68

4 years agoImproved comments on the generated opcodes.h file.
drh [Tue, 18 May 2021 12:36:35 +0000 (12:36 +0000)] 
Improved comments on the generated opcodes.h file.

FossilOrigin-Name: f2a17f1fad08779486e4d50d0d9277c7f87a9558a53af1a68aa5fe2ec30e820e

4 years agoAdd a CORRUPT_DB term to an assert() added earlier today.
drh [Tue, 18 May 2021 00:52:06 +0000 (00:52 +0000)] 
Add a CORRUPT_DB term to an assert() added earlier today.

FossilOrigin-Name: 304739d2382446e7b698d67377679168e46f0a19bb0794fdf22d0a0a84a8cbcc

4 years agoFix harmless compiler warnings.
drh [Mon, 17 May 2021 17:14:38 +0000 (17:14 +0000)] 
Fix harmless compiler warnings.

FossilOrigin-Name: ace12a3912a4fdc2f0e741361ec705652a11b6f5e3548d54bd6f273671ba1e09

4 years agoEnhance the integer-comparison optimization on the OP_Eq and similar
drh [Mon, 17 May 2021 16:54:52 +0000 (16:54 +0000)] 
Enhance the integer-comparison optimization on the OP_Eq and similar
opcodes so that it avoids a lot of useless work.

FossilOrigin-Name: 4221f41af9df90da4183d45d0edfae19b4f7095ec35a203c8dfd2712799e3839

4 years agoFix problems with refering to CTEs from within sub-selects in PARTITION BY or ORDER...
dan [Mon, 17 May 2021 16:20:41 +0000 (16:20 +0000)] 
Fix problems with refering to CTEs from within sub-selects in PARTITION BY or ORDER BY clauses of window frame definitions. Also a problem with renaming a column when the schema contains a trigger containing a correlated sub-select within a window frames PARTITION BY or ORDER BY clause.

FossilOrigin-Name: 4c6cd54a8db78e5535912e76856bed4f797261aaca4248c69d2e2452194de297

4 years agoWhen deleting an SQL function that does not exist, return without doing
drh [Mon, 17 May 2021 13:11:24 +0000 (13:11 +0000)] 
When deleting an SQL function that does not exist, return without doing
anything at all rather than creating a tombstone function.  In this way,
function deletes that happen inside virtual-table destructors that are run
when a database connection is closing do not create new tombstones in the
function table after the function table has already been purged.
[forum:/forumpost/726219164b|forum post 726219164b].

FossilOrigin-Name: 391c73132c80df944fb49a17d8fe78203c54ac48f968ee9dd9dd8c769c0b4b10

4 years agoPerformance improvement in sqlite3TableLock().
drh [Mon, 17 May 2021 11:19:32 +0000 (11:19 +0000)] 
Performance improvement in sqlite3TableLock().

FossilOrigin-Name: 0d77e371c47107f67550e9bedfd26808fcfd84c7473f94b6053f75f0e3463c73

4 years agoPerformance optimization in the memory allocation of allocateCursor.
drh [Sat, 15 May 2021 19:36:36 +0000 (19:36 +0000)] 
Performance optimization in the memory allocation of allocateCursor.

FossilOrigin-Name: 9d16323d14370b737399eb52b69b70cc614f78fb8a1e93f21a348c34a30dd456

4 years agoPerformance optimization to the clearCell() routine inside of btree.
drh [Sat, 15 May 2021 13:08:44 +0000 (13:08 +0000)] 
Performance optimization to the clearCell() routine inside of btree.

FossilOrigin-Name: c4e02619a4dc8b07f658e7c88011991a086eb1e760d920b9024a11437daaabfd

4 years agoSmall performance improvement for sqlite3BtreeInsert().
drh [Fri, 14 May 2021 20:01:36 +0000 (20:01 +0000)] 
Small performance improvement for sqlite3BtreeInsert().

FossilOrigin-Name: 4ae64484c57740333322cebd713b50b01a5a5838d41c65f67e26d65769770789

4 years agoAvoid adding superfluous virtual WHERE clause terms that might arise due
drh [Fri, 14 May 2021 15:37:00 +0000 (15:37 +0000)] 
Avoid adding superfluous virtual WHERE clause terms that might arise due
to the constant propagation optimization.

FossilOrigin-Name: cf63abbe559d04f993f99a37d41ba4a97c0261094f1d4cc05cfa23b1e11731f5

4 years agoAttempt the [/info/f4229707ac08d66c|constant propagation optimization] on any
drh [Fri, 14 May 2021 14:26:57 +0000 (14:26 +0000)] 
Attempt the [/info/f4229707ac08d66c|constant propagation optimization] on any
WHERE clause that has a top-level AND operator, even if the query is not
a join.  This is an attempt to partially address the concern raised in
[forum:/forumpost/830d37b928|forum post 830d37b928].

FossilOrigin-Name: e994c9f29f7a561dd5f30573865b0f793fb1388af09a2afb9b1a5b037ea52f89

4 years agoFix an over-length source code comment in whereexpr.c. No logic changes.
drh [Fri, 14 May 2021 13:32:07 +0000 (13:32 +0000)] 
Fix an over-length source code comment in whereexpr.c.  No logic changes.

FossilOrigin-Name: af5eb902e7b13f50a8890098b85ae64a9d2ff4f122f3ab46ddb2c048b5c846a0

4 years agoModify the sqlite3_stmt_readonly() interface so that it returns false for
drh [Thu, 13 May 2021 18:24:22 +0000 (18:24 +0000)] 
Modify the sqlite3_stmt_readonly() interface so that it returns false for
CREATE TABLE IF NOT EXISTS statements even if the table already exists and
the statement is really a read-only no-op.  Likewise for DROP TABLE,
CREATE INDEX, and DROP INDEX.  Update the documentation for
sqlite3_stmt_readonly() to reflect this new behavior.

FossilOrigin-Name: cf8eb465974e596a13df56f3efbc98e098e7b74de9af4fde9ad58312db9750e4

4 years agoThe content columns of the index-btree that implements a WITHOUT ROWID
drh [Thu, 13 May 2021 13:43:40 +0000 (13:43 +0000)] 
The content columns of the index-btree that implements a WITHOUT ROWID
table are not ordered and so the query planner should not assume they
are ordered.  Fix for the issue identified by
[forum:/forumpost/6c8960f545|forum post 6c8960f545].

FossilOrigin-Name: c21bc5a2353e660f2acf5ed916921a4ee416910d0b3f2deb512a05c54138d1c0

4 years agoFurther simplification of the reverse-order scan logic of the previous
drh [Wed, 12 May 2021 22:15:44 +0000 (22:15 +0000)] 
Further simplification of the reverse-order scan logic of the previous
check-in.

FossilOrigin-Name: b2b0e23ba885f22c88b03492e42c3cd1cbd59289e452263951bb757a871699f0