]>
git.ipfire.org Git - thirdparty/sqlite.git/log
larrybr [Wed, 23 Jun 2021 16:07:20 +0000 (16:07 +0000)]
Fully incorporate *_changes64() API improvement.
FossilOrigin-Name:
6699a2f6bec9dfcdc456ff1cd8e652588b144ec28b7eac6e403a63eab61b416e
drh [Wed, 23 Jun 2021 11:39:00 +0000 (11:39 +0000)]
Show CROSS JOINs in the TreeView debuggingn output.
FossilOrigin-Name:
72e09b6c9b74c8226b231fec021228af6bc191fc1b5798d0ff2e893f4ba203bf
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
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
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
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
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
drh [Sun, 20 Jun 2021 22:52:51 +0000 (22:52 +0000)]
Load recent dbsqlfuzz cases into test/fuzzdata8.db.
FossilOrigin-Name:
a766bba0eead47e9ff24b6afd152a7fbd331261e04dd76feb9510585a08c5786
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
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
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
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
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
drh [Fri, 18 Jun 2021 18:36:39 +0000 (18:36 +0000)]
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
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
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
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
larrybr [Wed, 16 Jun 2021 13:26:40 +0000 (13:26 +0000)]
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
drh [Wed, 16 Jun 2021 11:32:54 +0000 (11:32 +0000)]
Enhanced defense against integer overflow in ALTER TABLE.
FossilOrigin-Name:
fb7f094e4e0f03622c2e7fa02483c17671a8899c7ad8aba8659177180f406704
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
drh [Tue, 15 Jun 2021 20:07:16 +0000 (20:07 +0000)]
Fix an incorrect ifdef in the previous check-in.
FossilOrigin-Name:
4b2bb46730393292364b2be7db4e73fc8f93cd5a141aaf04f20fe0119deb5ab3
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
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
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
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
drh [Mon, 14 Jun 2021 20:49:33 +0000 (20:49 +0000)]
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
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
dan [Mon, 14 Jun 2021 14:52:27 +0000 (14:52 +0000)]
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
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
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
drh [Sun, 13 Jun 2021 17:55:58 +0000 (17:55 +0000)]
larrybr [Sun, 13 Jun 2021 08:23:28 +0000 (08:23 +0000)]
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
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
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
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
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
dan [Fri, 11 Jun 2021 12:02:00 +0000 (12:02 +0000)]
Remove an unreachable branch added by the previous commit.
FossilOrigin-Name:
852ee0e91ceae090157c4ab2805530f5d7985a490ce77f54d7b148f56e466f79
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
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
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
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
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
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
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
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
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
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
drh [Mon, 7 Jun 2021 14:21:03 +0000 (14:21 +0000)]
Add recent dbsqlfuzz test cases to test/fuzzdata8.db.
FossilOrigin-Name:
162022003c2b4a393296939e2616bd3c7bbfd65b198ba6c9894e4234de2d3122
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
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
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
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
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
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
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
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
drh [Fri, 4 Jun 2021 16:11:19 +0000 (16:11 +0000)]
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
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
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
drh [Fri, 4 Jun 2021 12:29:22 +0000 (12:29 +0000)]
Merge recent trunk enchancements into the seekscan-improvements branch.
FossilOrigin-Name:
d9e85fe80cdd3d798a583a5f99148235d0c3f39adfabbc661615893c387e6e45
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
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
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
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
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
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
drh [Wed, 2 Jun 2021 18:50:39 +0000 (18:50 +0000)]
drh [Wed, 2 Jun 2021 17:32:51 +0000 (17:32 +0000)]
Tighten assert() restrictions on the OP_SeekScan opcode.
FossilOrigin-Name:
dbc33d3ae30de5427a4351824a11026145f778fad95bd0b825bd0a4b63059677
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
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
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
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
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
drh [Sat, 29 May 2021 21:50:05 +0000 (21:50 +0000)]
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
drh [Fri, 28 May 2021 12:15:19 +0000 (12:15 +0000)]
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
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
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
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
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
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
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
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
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
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
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
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
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
drh [Mon, 24 May 2021 12:28:13 +0000 (12:28 +0000)]
drh [Mon, 24 May 2021 12:13:10 +0000 (12:13 +0000)]
New dbsqlfuzz cases added to test/fuzzdata8.db.
FossilOrigin-Name:
5bb5c9ec049488f95e47bbd9f1db9038ffabad3cfafa613acdaa790ab4034eee
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
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
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