]>
git.ipfire.org Git - thirdparty/sqlite.git/log
drh [Thu, 17 Jan 2019 03:43:38 +0000 (03:43 +0000)]
Ensure that the variable-length integer decoder in FTS3 never tries to
left-shift a negative number.
FossilOrigin-Name:
10ffc1fe006a1766ff2f1ffc6129786afb86b6b1f8d3a17334e8ecb838d37b9c
drh [Thu, 17 Jan 2019 01:06:00 +0000 (01:06 +0000)]
dan [Wed, 16 Jan 2019 20:48:13 +0000 (20:48 +0000)]
dan [Wed, 16 Jan 2019 19:44:09 +0000 (19:44 +0000)]
Fix a problem in the fts3 matchinfo() function with corrupt database handling.
FossilOrigin-Name:
24ed5fb6aea30b098d2faf3cf9d638933e518657217e903239ffaa1e25d34f66
drh [Wed, 16 Jan 2019 19:26:31 +0000 (19:26 +0000)]
Fix a problem in the code generator for sorting results with SRT_EphemTab
and a LIMIT clause.
FossilOrigin-Name:
49fcde2f1f981ac0c75728bed3444e7c1d3167311db282d3375c96ce090b2210
dan [Wed, 16 Jan 2019 14:58:37 +0000 (14:58 +0000)]
Fix a problem with renaming a column that is used as part of an ORDER BY on a
compound SELECT within a database view or trigger.
FossilOrigin-Name:
b4b5741366578b25ec6e4c415ab8239215e53b1c900be613575f40a826cfccc9
dan [Wed, 16 Jan 2019 12:05:22 +0000 (12:05 +0000)]
Avoid a dangling pointer comparison when renaming a table that has a trigger
that itself contains a window function with an (illegal) column reference in a
FOLLOWING expression.
FossilOrigin-Name:
d45bee36f2c1091a2d32c16ca8921bf4e7c9e40c46d0a36fbcb179ecfafcfbf0
dan [Wed, 16 Jan 2019 11:38:06 +0000 (11:38 +0000)]
Fix a memory leak that could occur in fts3 when handling a corrupt database.
FossilOrigin-Name:
65cebb06a0afcbcb4157c3d518a62ed188b1e90d9e9b69d88fece484bcb6e380
dan [Tue, 15 Jan 2019 20:51:35 +0000 (20:51 +0000)]
Fix a problem with ALTER TABLE and vector assignments in UPDATE statements
within triggers.
FossilOrigin-Name:
cc6cd7531fee39b4c2a9f522f1089c1d79254a9e25acae59468322031f94c25a
dan [Tue, 15 Jan 2019 18:14:27 +0000 (18:14 +0000)]
Handle SQL NULL values without crashing in the fts5 snippet() and highlight()
functions.
FossilOrigin-Name:
a5e9cc794f17566160c4b2b5791601a744a21ace987b19ff8a5816fd78dce56a
dan [Tue, 15 Jan 2019 16:14:31 +0000 (16:14 +0000)]
Fix a buffer overread in fts3 caused by a corrupt record.
FossilOrigin-Name:
e54efd60c20bbfc5d70ddb9e1dd6ffb68cbbcfa57b4f07cb104767ef08c1a559
dan [Tue, 15 Jan 2019 15:18:58 +0000 (15:18 +0000)]
Have fts5 reject attempts to insert a non-integer, non-null value into a rowid
column with SQLITE_MISMATCH.
FossilOrigin-Name:
4a9483f81e9ca1aa41d6ca33cb3171370418ccc71fdee9741bbf6f694bf4fbaa
drh [Tue, 15 Jan 2019 14:44:23 +0000 (14:44 +0000)]
Fix a harmless memory leak in the Lemon parser generator utility program.
FossilOrigin-Name:
1caff0fb0b2051e205e7a8cfd5dadf92680c52a88a441ded95b1ea6542db5f83
dan [Tue, 15 Jan 2019 14:31:01 +0000 (14:31 +0000)]
Fix a problem triggered by DELETE statements with WHERE clauses that use the
OR-optimization on some virtual tables.
FossilOrigin-Name:
ecf5caa7e9825a8b03d15ee525ec68be78c55926ddfaca27a040a7614caf0e85
dan [Mon, 14 Jan 2019 20:44:00 +0000 (20:44 +0000)]
Add scalar function "prefix_length()" to ext/misc/prefixes.c.
FossilOrigin-Name:
0bf1550507d9d3c8a41f8a50db3a59bf808f0a4e24637dc0905d35579305eca7
dan [Mon, 14 Jan 2019 19:13:30 +0000 (19:13 +0000)]
Fix a problem causing some Tcl test cases to fail with errors like "expected: [<multiline-whitespace>], got: []".
FossilOrigin-Name:
11b8a4cba747ca214fe3506caa3b711c87be4d55412754e673cc0603afefb086
drh [Mon, 14 Jan 2019 16:16:30 +0000 (16:16 +0000)]
Add the "prefixes" table-valued function in the ext/misc folder.
FossilOrigin-Name:
f0fd2163fc23a555ef03af43294a14fcabae6921f52e64c979286c745b4f6218
dan [Mon, 14 Jan 2019 15:35:15 +0000 (15:35 +0000)]
Fix a problem causing a crash if an fts5vocab table was created to query an
fts3/4 FTS index.
FossilOrigin-Name:
9cd64ce453e4435d80117b8610c22a0a4b53cd6e84b39815e70e684f6b0295c8
dan [Mon, 14 Jan 2019 15:09:00 +0000 (15:09 +0000)]
Fix a problem with querying a corrupt fts3 database.
FossilOrigin-Name:
65e50706a017751d72d0f9c7f575955194977decd0acf13aaca90c3cb925f20e
drh [Mon, 14 Jan 2019 13:32:15 +0000 (13:32 +0000)]
When parsing a corrupt record using sqlite3VdbeRecordUnpack(), make sure
that the resulting UnpackedRecord object is completely initialized, to avoid
(harmless) MSAN warnings.
FossilOrigin-Name:
ddc3697efd61830fad55c6bf7f9115f4a7f53e08838eba5a82e1406c7a721665
dan [Mon, 14 Jan 2019 11:56:13 +0000 (11:56 +0000)]
Have fts3 ignore empty sets of parenthesis if built with
SQLITE_ENABLE_FTS3_PARENTHESIS.
FossilOrigin-Name:
c93c6b45a317c40eb5c0abb6620d21f5821a601632c791e11e5ce62e039eccda
drh [Mon, 14 Jan 2019 05:48:10 +0000 (05:48 +0000)]
Avoid reading off the front of a page buffer when balancing a corrupt
btree page.
FossilOrigin-Name:
cb50509020d952fa9efed8df7fa08b07b71ae9bdbdefea216b6e660863291039
drh [Sun, 13 Jan 2019 20:23:34 +0000 (20:23 +0000)]
In dbfuzz2, avoid using a malloc in the LLVMFuzzerInitialize() initializer
routine, so that no memory leaks are reported. Also, show the version of
SQLite being used when the -v option is on.
FossilOrigin-Name:
824f93246988ffa213bbd41a7de08886999b1a8ae00fdf6b9767acb6e3ec6a1f
drh [Sun, 13 Jan 2019 20:17:52 +0000 (20:17 +0000)]
Relax the minimum size database file constraint on the dbtotxt utility program.
FossilOrigin-Name:
97e723d746eeb2159f5bf1701532271ac6a4620879c82d496f4499c178b64479
drh [Sun, 13 Jan 2019 20:17:21 +0000 (20:17 +0000)]
Improved detection of database corruption while balancing pages from an
auto_vacuum database with overflow pages. Test cases in TH3.
FossilOrigin-Name:
35f04235c477501390acea126d07a730d81d03cdf7abcd82d861e397b3f75b0f
drh [Sun, 13 Jan 2019 00:58:57 +0000 (00:58 +0000)]
Move a local variable declaration into the outermost scope in which it
is used. This fixes an ASAN warning.
FossilOrigin-Name:
ac3b6021d9437ab1c027850d321f0a3e575b008763d8d515e2347f7d4e7c294b
drh [Sat, 12 Jan 2019 21:30:26 +0000 (21:30 +0000)]
Prevent unsigned 32-bit integer overflow from leading to a buffer overread
inside of an assert(). The problem fixed here is no reachable in production
code.
FossilOrigin-Name:
0f850a25d67a752fe1e9059c0c3f78e00c222113e556a7605fd3c50817b573cb
dan [Sat, 12 Jan 2019 20:55:36 +0000 (20:55 +0000)]
Fix another problem with handling corrupt records in fts5_decode().
FossilOrigin-Name:
726e398b9ddc15ea1b67c40e2a12ddf5d04428a866699588c5fa1af75af846e1
drh [Sat, 12 Jan 2019 16:19:23 +0000 (16:19 +0000)]
Fix an off-by-one error on a Goto in the code generator, that only
causes problems for a REPLACE on an INTEGER PRIMARY KEY in non-debug
builds. Test case in TH3.
FossilOrigin-Name:
e35eb8776ed539afe1d5db099470ab1124d8dd2db73ee5db7c811f8df9a9576e
dan [Sat, 12 Jan 2019 14:58:35 +0000 (14:58 +0000)]
Fix a problem with corrupt database handling in the fts3 matchinfo() function.
FossilOrigin-Name:
703646b1b5c84d550fe0d74e399c0eeb729da1d263e4693320f69e6509678985
drh [Sat, 12 Jan 2019 00:45:20 +0000 (00:45 +0000)]
Improved detection of shadow table corruption in the fts5_decode() SQL function.
FossilOrigin-Name:
b74e5f3f3057ee7a98ebcb14ca0751048eacbec8fca3e11e241883029a57ecdf
drh [Sat, 12 Jan 2019 00:12:33 +0000 (00:12 +0000)]
Improved shadow table corruption detection in the matchinfo() function of FTS3.
FossilOrigin-Name:
567be3bb1e8b6477f3bf1c7b4cd6ec066fba69d0dcf8785632e244ce25db639f
drh [Sat, 12 Jan 2019 00:07:48 +0000 (00:07 +0000)]
Indicate that the database may be corrupt in the fts3corrupt4.test test script.
FossilOrigin-Name:
473626d5579dd19023abccaf7c1822ac0c883a0b98904837ea096fa16e4f41c4
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