]>
git.ipfire.org Git - thirdparty/sqlite.git/log
drh [Fri, 11 Jan 2019 23:08:56 +0000 (23:08 +0000)]
dan [Fri, 11 Jan 2019 21:34:25 +0000 (21:34 +0000)]
Fix a segfault in fts3 prompted by a corrupted database.
FossilOrigin-Name:
2d7b1d1d41ff69d5465fcb861420816ecb066c25a9015eefdab5fae15a2e1c9f
dan [Fri, 11 Jan 2019 19:27:55 +0000 (19:27 +0000)]
Fix another problem with corrupt databases in fts5.
FossilOrigin-Name:
9bf811ea89a133d481a86407683a7518e909eccb7aa3aa02f7932bdb33387572
dan [Fri, 11 Jan 2019 17:41:23 +0000 (17:41 +0000)]
Fix a problem handling a negative value in the "number-of-pages" database
header field. Also a problem with running "REINDEX tbl" against a virtual
table for which the SQL passed to sqlite3_declare_vtab() contains PRIMARY KEY
or UNIQUE constraints.
FossilOrigin-Name:
556dd8922f65af93084ee725c638b8dc696b611dd508c212a3b507d6ca474031
drh [Fri, 11 Jan 2019 17:20:25 +0000 (17:20 +0000)]
Improved detection and reporting of errors in the readfile() extension SQL
function.
FossilOrigin-Name:
d2f0b5a483869d39f5c5814c9d6df3d3b8a46d582b4dcf0cf11e23b707c4213e
drh [Fri, 11 Jan 2019 17:19:59 +0000 (17:19 +0000)]
Omit errors about missing SAVEPOINTs when aborting the .archive command
in the CLI.
FossilOrigin-Name:
2a47387ba6aa3c294607b7641aa1c4cf70a7b27a861e1098c2f79a38e5b7036a
drh [Fri, 11 Jan 2019 16:44:16 +0000 (16:44 +0000)]
Improved detection of cell corruption in sqlite3VdbeRecordCompareWithSkip().
FossilOrigin-Name:
fa47f4c6589c431cf678560ac33dea6b695052012bea2096b2c92869ed51c688
drh [Fri, 11 Jan 2019 14:46:44 +0000 (14:46 +0000)]
Fix PRAGMA integrity_check so that it does not cancel the PRAGMA vdbe_debug
setting.
FossilOrigin-Name:
aaa3a19f8cf5ba7003634e4610abc7832354af91d7c7f65469218678f66bcd46
drh [Fri, 11 Jan 2019 14:38:47 +0000 (14:38 +0000)]
Add the --vdbe-debug command-line option to dbfuzz2.
FossilOrigin-Name:
599b4df43c64ce295517c804b6bb4c3ab77d77e0ba585dc0657274f55489a3b1
drh [Fri, 11 Jan 2019 14:22:33 +0000 (14:22 +0000)]
Add the "dbfuzz2" target to main.mk. Remove an unused local variable
from dbfuzz2.c.
FossilOrigin-Name:
05c7609cfd02f49114876267d7090f4e0ea2467f3aa7c65019c5986ec8f60a87
drh [Fri, 11 Jan 2019 13:32:23 +0000 (13:32 +0000)]
The keywords TRUE and FALSE should only act as boolean literal values if
unquoted.
FossilOrigin-Name:
5547f39de993c708f72301ef25df190a2f007e0c4253799bdd9e86bb1ae41777
drh [Fri, 11 Jan 2019 13:03:06 +0000 (13:03 +0000)]
Separate makefile targets for "dbfuzz2", "dbfuzz2-asan", and "dbfuzz2-msan".
FossilOrigin-Name:
ea119641a7edcd0e1ec14371d93e35f860971888bd98cb0019253358a2ef123b
dan [Thu, 10 Jan 2019 19:26:52 +0000 (19:26 +0000)]
Fix a memory leak in fts5 that could occur if scalar function fts5_decode()
was passed a corrupt record.
FossilOrigin-Name:
240f1c0c92cad8a1c19438b38489aedb831f62a4603c53f22367e876d8f644ff
dan [Thu, 10 Jan 2019 18:35:09 +0000 (18:35 +0000)]
dan [Thu, 10 Jan 2019 17:08:20 +0000 (17:08 +0000)]
Avoid use-after-free and double-free errors that could occur if an fts5 table
is modified in certain ways while there are active cursors.
FossilOrigin-Name:
3291b2a6fe6f38ae91b933e5cd2bf7d97432374b4fb1fccd92b4bd759b02ee06
dan [Thu, 10 Jan 2019 15:17:32 +0000 (15:17 +0000)]
Fix further problems with fts5 handling corrupt databases.
FossilOrigin-Name:
83c467d7af63bd2e7800aff4fe9b09dbd75557460b75a9e07205dfae7e28312c
drh [Thu, 10 Jan 2019 14:33:15 +0000 (14:33 +0000)]
More aggressive early detection of orphaned and malformed autoindexes when
parsing the schema.
FossilOrigin-Name:
10f9e39d6ed2413fa9abc6c82da3ed48f32a42b6190b6219fca7faf850d05113
drh [Thu, 10 Jan 2019 13:56:08 +0000 (13:56 +0000)]
Use the new SQLITE_IDXTYPE_IPK values (3) on Index.idxType to indicate the
fake INTEGER PRIMARY KEY index used during query planning.
FossilOrigin-Name:
e22d2f905fe840bea51b536ebedc9b637190ea0a37f16559668d99a61e971411
drh [Thu, 10 Jan 2019 01:12:43 +0000 (01:12 +0000)]
Fix the fts3DecodeIntArray() function so that it will not read off the end
of the buffer it is handed. Any unread integers are set to zero.
FossilOrigin-Name:
666cf8f6b39ae1f72e82b45e9cacba23caf61370ca0c695b3b14452accbb1a0d
dan [Wed, 9 Jan 2019 21:12:23 +0000 (21:12 +0000)]
Fix an out-of-bounds read in SQL function fts5_decode() that could occur if it
was passed a corrupt record.
FossilOrigin-Name:
931278b257b12ac14fc8fbc82c6dc88ce4ac4b8e0d668543e68f0289d825daa1
drh [Wed, 9 Jan 2019 14:49:58 +0000 (14:49 +0000)]
Adjustments to the page cache to try to avoid harmless TSAN warnings.
FossilOrigin-Name:
383437be276719ac1c72688ae81017c63907ac561f2ffb8e42c43b012248f294
drh [Wed, 9 Jan 2019 11:19:41 +0000 (11:19 +0000)]
Improved database corruption detection in the dbstat virtual table.
FossilOrigin-Name:
fc5ecc88f8a0855ba90039177ee284721b2035e4de56a1024e323216f011f0af
drh [Wed, 9 Jan 2019 11:06:03 +0000 (11:06 +0000)]
Small simplification to the dbstat virtual table.
FossilOrigin-Name:
9d4c156fa26f80bb8f88b6ad8f24520a15af296de9c110604f6bd42c257455a0
drh [Wed, 9 Jan 2019 02:02:24 +0000 (02:02 +0000)]
Enhance the ALTER TABLE RENAME COLUMN feature so that it works on tables
that have redundant UNIQUE and/or PRIMARY KEY constraints.
Fix for ticket [
bc8d94f0fbd633fd9a051e3 ]
FossilOrigin-Name:
f09aa3248e2b4a32ff5b5d37084cb2a27445322cb06a3354cef723f4f0b2cd34
drh [Tue, 8 Jan 2019 20:02:48 +0000 (20:02 +0000)]
Use 64-bit math to compute the sizes of memory allocations in extensions.
FossilOrigin-Name:
ca67f2ec0e294384c397db438605df1b47aae5f348a8de94f97286997625d169
drh [Tue, 8 Jan 2019 15:18:24 +0000 (15:18 +0000)]
Performance improvement on the instr() function, especially for large
haystacks.
FossilOrigin-Name:
ce51f1a2b6a1789a5876e01cf829e45d84f3851d135a2fa5c44a56f948673a60
drh [Tue, 8 Jan 2019 14:28:02 +0000 (14:28 +0000)]
Fix a possible memory leak when trying to UPDATE a corrupt RTREE index.
FossilOrigin-Name:
63eb803dbc27077007dbee8def659d1523724eb73f1def1cdb68027e5c20843a
dan [Tue, 8 Jan 2019 08:02:12 +0000 (08:02 +0000)]
Fix further problems with fts5 and corrupt databases causing integer overflow.
FossilOrigin-Name:
673a7dd698eca05bb2909fa01f962a0667361732a6d0e61cf7780ead4a07c967
dan [Mon, 7 Jan 2019 16:52:00 +0000 (16:52 +0000)]
Fix another potential buffer overread in fts5.
FossilOrigin-Name:
d0e943d9574c7cab1af4a0fe753a0b5f91ea0e884b91a85b13239144b71f067c
dan [Mon, 7 Jan 2019 15:57:35 +0000 (15:57 +0000)]
For SQLITE_ENABLE_PREUPDATE_HOOK builds, disable the optimization for a
REPLACE command on a WITHOUT ROWID table with no indexes, triggers or foreign
key constraints that causes SQLite to clobber any existing row without
separately checking for it. This optimization causes SQLite to omit the
expected pre-update-hook callbacks.
FossilOrigin-Name:
6281ef974c0ac7a7133c9e1e04c09fdbd627c019c6ff3227293548caf8283864
drh [Sun, 6 Jan 2019 02:06:31 +0000 (02:06 +0000)]
The page size becomes fixed as soon as page1 from a non-empty database file
is read.
FossilOrigin-Name:
6064584d578f0ac7aba3f67912a5d9eb1a3c6001469f6b9becbe68871131f887
drh [Sat, 5 Jan 2019 21:56:12 +0000 (21:56 +0000)]
Add the exprNodeCopy() routine that will safely memcpy() an Expr node that
might be a size-reduced node.
FossilOrigin-Name:
a874c649960ba2e2b2fd380d08c02a45884a1060d3922be8847729008ca6766e
drh [Sat, 5 Jan 2019 21:09:37 +0000 (21:09 +0000)]
If the OP_ParseSchema opcode with a non-NULL P4 operand does not parse any
rows out of the sqlite_master table, that indicates that the sqlite_master
table is corrupt, so raise an SQLITE_CORRUPT error.
FossilOrigin-Name:
598d7358e7329f0de6e3defc217665909e46874258ac29592ee2fd53e6411cda
dan [Sat, 5 Jan 2019 07:17:56 +0000 (07:17 +0000)]
Fix two more problems with corrupt database handling in fts5.
FossilOrigin-Name:
444c7c99beb9f8b82963e9784aa2be54124c7011f4771122b4f608c02aa26408
drh [Fri, 4 Jan 2019 23:39:37 +0000 (23:39 +0000)]
Give a meaningful error on an attempt to use UPSERT on a virtual table,
rather than simply not working.
FossilOrigin-Name:
fa98748f956cff95fcfda3a513cea4df27aa573ae795a6855c40bfeca661d0b2
drh [Fri, 4 Jan 2019 14:29:21 +0000 (14:29 +0000)]
If the ".open" command fails in the CLI, reopen to :memory: so that at least
some database is available for subsequent commands.
FossilOrigin-Name:
d7f55c62c3fa053b9b930a044b60076a8278cbf679d8e5116b95f2ff19247f6b
drh [Fri, 4 Jan 2019 12:46:01 +0000 (12:46 +0000)]
Remove debugging pragmas accidently left in by a prior change.
FossilOrigin-Name:
26275fc7e89eb2542a65d01fd271cef016a4a1815bc3845c599cf2f4fbf7513d
drh [Fri, 4 Jan 2019 12:35:50 +0000 (12:35 +0000)]
Fix a typo in a comment used to generate documentation. No functional changes.
FossilOrigin-Name:
ccc4f7424bc8f37c168333091dd9e3d6f80ccff9e2b06f182df65be59a7e3349
dan [Fri, 4 Jan 2019 11:20:14 +0000 (11:20 +0000)]
Fix another fts5 assert() that may fail if the database is corrupt.
FossilOrigin-Name:
0888fc2e881d56ccd5222383d1a08cdf16fbd15c40da7ebfc14346be69ffb26a
dan [Thu, 3 Jan 2019 19:12:21 +0000 (19:12 +0000)]
Fix some problems with sqlite3_interrupt() handling in fts5.
FossilOrigin-Name:
c0eb839a3c23612b93002d2e1fbc41bf5db140775267989f85db52146144750b
drh [Thu, 3 Jan 2019 16:03:48 +0000 (16:03 +0000)]
Fix the csv01.test module so that it works on systems with \r\n line endings.
FossilOrigin-Name:
36eaf5a5e51b20699328aae67c2bfd325f81bea342e2b167fddd859a50a26e28
drh [Thu, 3 Jan 2019 16:00:23 +0000 (16:00 +0000)]
Fix the shmlock.test script so that it works with the Windows restriction
that UnlockFile must exactly correspond to a prior LockFile.
FossilOrigin-Name:
df939c89fa90b7f9ccf961027ca4eca4f987c49eabf530b5719a83e5ab0d346d
drh [Thu, 3 Jan 2019 15:22:33 +0000 (15:22 +0000)]
Fix a harmless compiler warning in the CSV extension.
FossilOrigin-Name:
fbcd72565f4425016cebbbf5dfd6aa510234cfb31c785cf364f04fff444aacae
dan [Thu, 3 Jan 2019 15:17:01 +0000 (15:17 +0000)]
Fix a problem with the second and subsequent sqlite3rbu_savestate() calls made
on an RBU vacuum handle.
FossilOrigin-Name:
bef216dfa1456a787e3d9c74936ee1c6600827d4e252bd13e7a93046ce07469f
drh [Thu, 3 Jan 2019 00:44:03 +0000 (00:44 +0000)]
Fix the geopoly_svg() function so that it returns NULL when given zero
arguments.
FossilOrigin-Name:
120cb1768338eb86412fb69d4c7677247775bb37875ab3a98766cffd535f04cf
drh [Wed, 2 Jan 2019 23:49:47 +0000 (23:49 +0000)]
Fix harmless compiler warnings in the unicode2 logic of FTS3 and FTS5.
FossilOrigin-Name:
703029ac6d24860230a8c30fcbf5e7e1da619e84f1cc9b9e65ebc74879a184d2
dan [Wed, 2 Jan 2019 16:01:59 +0000 (16:01 +0000)]
dan [Wed, 2 Jan 2019 15:27:27 +0000 (15:27 +0000)]
drh [Wed, 2 Jan 2019 14:34:46 +0000 (14:34 +0000)]
Raise an error if the argument to VACUUM INTO is an identifier.
FossilOrigin-Name:
6c6fb1c6ea452c70b56fd4ac796affebee21512adba0455ae81c291b715f544f
dan [Tue, 1 Jan 2019 19:17:42 +0000 (19:17 +0000)]
Fix another fts5 problem caused by a corrupt database.
FossilOrigin-Name:
911342f7512145a8a189bb0ec59e70e4c9ddc9f20f3e84816ab25139ead5dc45
dan [Tue, 1 Jan 2019 18:00:17 +0000 (18:00 +0000)]
Ensure that when a new cursor is opened by OP_OpenDup, any existing cursor
with the same id opened by a previous OP_OpenDup is closed first.
FossilOrigin-Name:
5c188361a91407805c0feb4bf6d3214522ce3e55013efcf63a4613ecd416bcbc
dan [Tue, 1 Jan 2019 13:59:34 +0000 (13:59 +0000)]
Fix another case in fts5 where a corrupt database could cause a buffer
overread.
FossilOrigin-Name:
f7e6cdc5625664f449d0edbe39af2d45910c4137bfd856ae1f770dd826c138ff
drh [Mon, 31 Dec 2018 21:43:55 +0000 (21:43 +0000)]
drh [Mon, 31 Dec 2018 20:39:37 +0000 (20:39 +0000)]
Additional steps to help ensure that scalar subqueries are only evaluated
once even if they are used in multiple places within the query. This fixes
a performance regression reported on the mailing list and caused by
check-in [
531eca6104e41e43 ] which was a fix for ticket
[
787fa716be3a7f650c ]. Think of this check-in as an improved fix for
that ticket.
FossilOrigin-Name:
e130319317e761193890ef75787a3c114b61166f518df019697be8e2c820ec54
drh [Mon, 31 Dec 2018 20:13:12 +0000 (20:13 +0000)]
Remove an optimization that can no longer occur, being superceded by the
subquery-reuse optimization. Put an assert in place of the optimization
to detect if the need for this optimization ever returns.
FossilOrigin-Name:
4fcdc7a2939457e51aab37cab168677cd7f464a9a0aff4f8981e864a30828b3b
drh [Mon, 31 Dec 2018 18:30:41 +0000 (18:30 +0000)]
Merge enhancements and bug fixes from trunk.
FossilOrigin-Name:
9fb646f29c05bca5f677a2c7c4f45c36bfe0a0c6a88cb7968b4a0459bdd63bb2
drh [Mon, 31 Dec 2018 17:58:05 +0000 (17:58 +0000)]
Small changes to the OP_OpenEphemeral opcode to improve testability.
FossilOrigin-Name:
f856676c8438dbf52d299e78f6dd6148d929755dc05cdcabafd17d9a86439435
drh [Mon, 31 Dec 2018 16:36:42 +0000 (16:36 +0000)]
Fix the OP_OpenEphemeral opcode in the bytecode engine so that if it is called
a second or subsequent time, it merely clears the existing table rather than
creating a new one. Proposed fix for ticket [
d0866b26f83e9c55e30de0821f5d ].
FossilOrigin-Name:
4678cb1044f0b4dc813e48f3bd0f85240a66e2ecf8763280d66726cc031c93a7
drh [Sat, 29 Dec 2018 14:23:22 +0000 (14:23 +0000)]
Additional small performance increase and size reduction to the
sqlite3VdbeMakeLabel() mechanism.
FossilOrigin-Name:
1bdee199a71e0a6c247b85e72de9e3a3099b7179c33288735721facef3b96459
drh [Sat, 29 Dec 2018 02:26:59 +0000 (02:26 +0000)]
A new implementation of sqlite3VdbeMakeLabel() is faster and makes fewer
memory allocations by deferring memory allocation until
sqlite3VdbeResolveLabel() is called, at which point the code generator has
a better idea of how big the relocation table needs to be.
The sqlite3VdbeMakeLabel() routine now takes a Parse* parameter instead of
Vdbe*.
FossilOrigin-Name:
4a0929ac76d8aa5dd65eac3b83d6bbf41e505e01d175ca0fb2b19ba02d439415
drh [Fri, 28 Dec 2018 21:32:35 +0000 (21:32 +0000)]
drh [Fri, 28 Dec 2018 20:48:07 +0000 (20:48 +0000)]
Faster allocation of new sqlite3_stmt objects.
FossilOrigin-Name:
891f1f72187f0f9ec0d24fda98cc08be3ae3c3ff8b27c4e409ee7135c3106398
drh [Fri, 28 Dec 2018 20:14:03 +0000 (20:14 +0000)]
Move the nOpAlloc field from Parse into Vdbe to avoid an extra pointer
deference on the fast path in sqlite3VdbeAddOp3().
FossilOrigin-Name:
8f10efc29dea7b816b1ba401726c268950d6671d890f686911269082a241d8d9
drh [Fri, 28 Dec 2018 19:23:20 +0000 (19:23 +0000)]
dan [Fri, 28 Dec 2018 18:09:45 +0000 (18:09 +0000)]
Fix another problem with loading the structure record from a corrupt fts5
database.
FossilOrigin-Name:
c4d44542d259bbec11aea60ae94fcb4acd53e97e125723cae078cf0f8873f8ef
dan [Fri, 28 Dec 2018 17:45:08 +0000 (17:45 +0000)]
Fix a problem causing the sqlite_master entry corresponding to a virtual table
to be removed by a DROP TABLE even if the call to the vtabs xDestroy() method
failed.
FossilOrigin-Name:
0140f6dbfbea93eadcd7f727d84064a0c0d1f0806dbe3e5ef1017da603157e3b
dan [Fri, 28 Dec 2018 14:33:55 +0000 (14:33 +0000)]
Avoid an undefined left-shift operation in fts5 caused by malformed utf-8
text.
FossilOrigin-Name:
c3a3a11194586bef80a9d7ca54caae8af30d4e7b464b8bb3d257ba2d2ec4791f
dan [Fri, 28 Dec 2018 13:57:30 +0000 (13:57 +0000)]
Fix a buffer overwrite in fts5 triggered by a corrupt database.
FossilOrigin-Name:
a385298df264dbfa6765f63ad8708f74bc8e8a1404239c1049890b39a1bda888
dan [Fri, 28 Dec 2018 07:37:22 +0000 (07:37 +0000)]
dan [Thu, 27 Dec 2018 20:12:02 +0000 (20:12 +0000)]
Fix another problem with corrupt database handling in fts5.
FossilOrigin-Name:
fb0d7fba07865ff557bfcdacfda7b625d099ac8b4dcbe0c08cd2d4b84a068bb9
drh [Thu, 27 Dec 2018 16:55:01 +0000 (16:55 +0000)]
Modify the btree02.test module so that it does not depend on whether TCL
interprets a value as a string or as an integer.
FossilOrigin-Name:
d9e4f9574659c6285deba3dca68eca9989e615971cea3a901ffcda12fb4ee36f
dan [Thu, 27 Dec 2018 15:36:16 +0000 (15:36 +0000)]
Fix another problem in fts5 caused by a corrupt schema record.
FossilOrigin-Name:
ff45f9dd69fe1e1c7875e5bb73ac3dde2a31746475d3765cda9233f8e06e26ca
drh [Thu, 27 Dec 2018 13:52:45 +0000 (13:52 +0000)]
Fix the filename normalization in the dbtotxt utility program.
FossilOrigin-Name:
29a00a05dd40ff59be340969e1aca4fee41e092f2faa1cea85a3448265a83c2c
dan [Thu, 27 Dec 2018 07:46:37 +0000 (07:46 +0000)]
Fix a null-pointer dereference that could occur in fts5 with a corrupt
database.
FossilOrigin-Name:
b0a49d5e6df116bb5eacb60a0bb0f482760aec38bd417d4250d9e57d43bdbb13
drh [Thu, 27 Dec 2018 02:16:01 +0000 (02:16 +0000)]
Fix a problem in which nested CTEs with the same table name trick the
code generator into thinking they are the same CTE, which then tries to
use the manifest them both into the same transient table.
FossilOrigin-Name:
202dd033019dd27428e3cc5f6e164c95b37efe39e2753515112b201ddefca67b
drh [Thu, 27 Dec 2018 00:30:42 +0000 (00:30 +0000)]
In the treeview debugging output,
provide additional details for the Table object
associated with each FROM clause term.
FossilOrigin-Name:
11d4682d2eec133ccca99ca9cf2620cd249b4afe55918f3ebf93b454431f9c55
dan [Wed, 26 Dec 2018 18:34:56 +0000 (18:34 +0000)]
Update the coverage-wal permutation to cover branches enabled by
SQLITE_ENABLE_SNAPSHOT.
FossilOrigin-Name:
6821c61f1d71be2be7f867e59fd94582a1eaf45a4d1fb88be995807a77cc22ea
dan [Wed, 26 Dec 2018 17:49:57 +0000 (17:49 +0000)]
dan [Wed, 26 Dec 2018 16:57:47 +0000 (16:57 +0000)]
Avoid an "unitialized value read" problem in fts5 that can occur with a
corrupt database.
FossilOrigin-Name:
6cae81cd1ffb0180e0260d5ba921502c7dee2f54637bff3558a4d1cb5dfd3f32
dan [Wed, 26 Dec 2018 16:04:54 +0000 (16:04 +0000)]
Fix a problem with handling corrupt databases in the fts5 integrity-check
function.
FossilOrigin-Name:
9bad745d373f4686a2726c3f77a2ccad60e7181645d7ed483a2e43075a4ef30c
dan [Wed, 26 Dec 2018 14:15:09 +0000 (14:15 +0000)]
Fix a problem with corrupt fts3 database detection introduced by [
95a9a39f ].
FossilOrigin-Name:
c80bb15b44e9b6a3c0c5a49d5e93e66376c3520ecefc1db7425c8a7e09d3eade
drh [Wed, 26 Dec 2018 12:50:47 +0000 (12:50 +0000)]
Fix a problem with the CSV extension when it uses the "header" option on
a real file.
FossilOrigin-Name:
7acaed08f946633fca3ab8434dd6349ea6f1bac4fd9ec21f476db013ee06de30
drh [Tue, 25 Dec 2018 11:17:50 +0000 (11:17 +0000)]
Fix a typo in a comment that is used to generate session documentation.
FossilOrigin-Name:
a1f50d57ce76f6c08a0ddbdd3c3fe2732d0e57dda14cb9aa3da00a14ceb4bc44
drh [Tue, 25 Dec 2018 00:15:37 +0000 (00:15 +0000)]
Increase the number of parameters to sqlite3WhereCodeOneLoopStart() to
encourage the compiler to inline that routine within sqlite3WhereBegin().
This gives a performance improvement.
FossilOrigin-Name:
3c2ad0e915e835b1cb2962879beff50b2745d0cefe1cfc89ef90b7879c139ce6
drh [Mon, 24 Dec 2018 20:21:06 +0000 (20:21 +0000)]
Improvements to EXPLAIN QUERY PLAN formatting. The MULTI-INDEX OR now shows
a separate "INDEX" subtree for each index. SCALAR SUBQUERY entries provide
a subquery number that is related back to the .selecttrace output.
FossilOrigin-Name:
7153552bac51295c56a1c42ca79d57195851e232509f9e9610375692f48c7e86
dan [Mon, 24 Dec 2018 20:00:27 +0000 (20:00 +0000)]
Add a few more test cases to walfault2.test and walvfs.test.
FossilOrigin-Name:
3873941c4fb9aa2d0de1129722c5fcdf2be1ea261677d4841ed99f896c778459
dan [Mon, 24 Dec 2018 19:59:37 +0000 (19:59 +0000)]
Change another fts5 assert() that may fail with a corrupt database to an
assert_nc().
FossilOrigin-Name:
d9653380c455b4bf6c371540d677cbde6d17664c58662b5cc9a12929f46192dd
dan [Mon, 24 Dec 2018 18:51:13 +0000 (18:51 +0000)]
drh [Mon, 24 Dec 2018 18:10:39 +0000 (18:10 +0000)]
Always include OP_Explain opcodes in the bytecode when SQLITE_DEBUG is enabled.
FossilOrigin-Name:
d8c1235c02b745138ac2b12e8bbb00dda4cac321176be92a2fa9547be029b3d0
dan [Mon, 24 Dec 2018 15:22:47 +0000 (15:22 +0000)]
Copy some extra test infrastructure from the mutexfree-shmlock branch to trunk.
FossilOrigin-Name:
883337ffdb434b6856ceaada121c0be67e2fdec7b447675f45e85568ef28d7d9
drh [Mon, 24 Dec 2018 14:30:11 +0000 (14:30 +0000)]
Restore a line of code that was previously commented out for debugging.
FossilOrigin-Name:
e53781f5bdf5c7b7d91ffe76565ea2fe5d1b3a9b162b3a88a7017bbe785d4c72
dan [Mon, 24 Dec 2018 13:34:36 +0000 (13:34 +0000)]
Change the way a comparison used to detect corrupt databases in fts3 is done
to avoid potential pointer overflow in 32-bit builds.
FossilOrigin-Name:
95a9a39ff784b960b62dd6298e722a620ba3f9c8b76839a49bbef35d7bc84a8e
drh [Mon, 24 Dec 2018 12:09:47 +0000 (12:09 +0000)]
Do not generate subroutines for non-static SELECT and EXISTS expressions.
Fix up some test cases to account for the minor changes in EXPLAIN QUERY PLAN
output.
FossilOrigin-Name:
06de44ec9e173992ca9afb89dd2b4e40d2a7e35512c7959603cdceb606f5dfbd
drh [Mon, 24 Dec 2018 11:55:44 +0000 (11:55 +0000)]
Prevent the use of subroutines to implement the RHS of IN operators within
CHECK constraints.
FossilOrigin-Name:
6b24d3fb94e787d25e49501714780dfb0c0c99077102056aa68445f4808cdd57
drh [Mon, 24 Dec 2018 02:34:49 +0000 (02:34 +0000)]
Experimental code that tries to put the computation of subqueries inside a
subroutine, and reuse that subroutine if the same subquery is evaluated more
than once. Current code does not work for CHECK constraints.
FossilOrigin-Name:
6c44838adbe5dc482bc010e91a6dd7a0f777c989f443dd600740d2c783208e0d
drh [Sun, 23 Dec 2018 21:27:29 +0000 (21:27 +0000)]
Split the code generation for the RHS of IN operators and for SELECT and
EXISTS expressions into two separate subroutines, because there is now little
commonality between those to functions. This is intended to help make the
code easier to read and maintain.
FossilOrigin-Name:
2b6494b1509f0d0189f98aa34c990eee99c775ff57826e79b2c5b0a12b4c97ad
dan [Sat, 22 Dec 2018 20:32:28 +0000 (20:32 +0000)]
Improve the coverage of wal.c provided by the "coverage-wal" test permutation.
FossilOrigin-Name:
6231485114eb07b258cd0e6e163ca05f7e9cf5664e071808fcb1329b33e4c4f5
dan [Sat, 22 Dec 2018 19:54:17 +0000 (19:54 +0000)]
Catch another case of a corrupted structure record in fts5.
FossilOrigin-Name:
fb17fea4b9779fbd3adb6ff9500da83a6ca4fa7cba379aa70074e4328814a7f2
dan [Sat, 22 Dec 2018 19:09:46 +0000 (19:09 +0000)]
Change a faulty assert() in fts5 that could fail on a corrupt db to an if() statement.
FossilOrigin-Name:
1daaba9fb46706af8ed0669a661c304df999a69cf639d29d93208f422c515d8c
drh [Sat, 22 Dec 2018 16:14:45 +0000 (16:14 +0000)]
Fix one more instance of excess whitespace in test result strings.
FossilOrigin-Name:
c064964deb0b7220ba784f07ca9c603680f3c8bb936d56ab4eca1962beac1359