]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
6 years agoFix a problem triggered by DELETE statements with WHERE clauses that use the
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

6 years agoAdd scalar function "prefix_length()" to ext/misc/prefixes.c.
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

6 years agoFix a problem causing some Tcl test cases to fail with errors like "expected: [<multi...
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

6 years agoAdd the "prefixes" table-valued function in the ext/misc folder.
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

6 years agoFix a problem causing a crash if an fts5vocab table was created to query an
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

6 years agoFix a problem with querying a corrupt fts3 database.
dan [Mon, 14 Jan 2019 15:09:00 +0000 (15:09 +0000)] 
Fix a problem with querying a corrupt fts3 database.

FossilOrigin-Name: 65e50706a017751d72d0f9c7f575955194977decd0acf13aaca90c3cb925f20e

6 years agoWhen parsing a corrupt record using sqlite3VdbeRecordUnpack(), make sure
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

6 years agoHave fts3 ignore empty sets of parenthesis if built with
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

6 years agoAvoid reading off the front of a page buffer when balancing a corrupt
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

6 years agoIn dbfuzz2, avoid using a malloc in the LLVMFuzzerInitialize() initializer
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

6 years agoRelax the minimum size database file constraint on the dbtotxt utility program.
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

6 years agoImproved detection of database corruption while balancing pages from an
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

6 years agoMove a local variable declaration into the outermost scope in which it
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

6 years agoPrevent unsigned 32-bit integer overflow from leading to a buffer overread
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

6 years agoFix another problem with handling corrupt records in fts5_decode().
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

6 years agoFix an off-by-one error on a Goto in the code generator, that only
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

6 years agoFix a problem with corrupt database handling in the fts3 matchinfo() function.
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

6 years agoImproved detection of shadow table corruption in the fts5_decode() SQL function.
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

6 years agoImproved shadow table corruption detection in the matchinfo() function of FTS3.
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

6 years agoIndicate that the database may be corrupt in the fts3corrupt4.test test script.
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

6 years agoUse 64-bit APIs in the fileio.c extension.
drh [Fri, 11 Jan 2019 23:08:56 +0000 (23:08 +0000)] 
Use 64-bit APIs in the fileio.c extension.

FossilOrigin-Name: b49d56a0faf012978c50fb8662125ea21bdf5054fddf5975644cbc941c153e70

6 years agoFix a segfault in fts3 prompted by a corrupted database.
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

6 years agoFix another problem with corrupt databases in fts5.
dan [Fri, 11 Jan 2019 19:27:55 +0000 (19:27 +0000)] 
Fix another problem with corrupt databases in fts5.

FossilOrigin-Name: 9bf811ea89a133d481a86407683a7518e909eccb7aa3aa02f7932bdb33387572

6 years agoFix a problem handling a negative value in the "number-of-pages" database
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

6 years agoImproved detection and reporting of errors in the readfile() extension SQL
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

6 years agoOmit errors about missing SAVEPOINTs when aborting the .archive command
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

6 years agoImproved detection of cell corruption in sqlite3VdbeRecordCompareWithSkip().
drh [Fri, 11 Jan 2019 16:44:16 +0000 (16:44 +0000)] 
Improved detection of cell corruption in sqlite3VdbeRecordCompareWithSkip().

FossilOrigin-Name: fa47f4c6589c431cf678560ac33dea6b695052012bea2096b2c92869ed51c688

6 years agoFix PRAGMA integrity_check so that it does not cancel the PRAGMA vdbe_debug
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

6 years agoAdd the --vdbe-debug command-line option to dbfuzz2.
drh [Fri, 11 Jan 2019 14:38:47 +0000 (14:38 +0000)] 
Add the --vdbe-debug command-line option to dbfuzz2.

FossilOrigin-Name: 599b4df43c64ce295517c804b6bb4c3ab77d77e0ba585dc0657274f55489a3b1

6 years agoAdd the "dbfuzz2" target to main.mk. Remove an unused local variable
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

6 years agoThe keywords TRUE and FALSE should only act as boolean literal values if
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

6 years agoSeparate makefile targets for "dbfuzz2", "dbfuzz2-asan", and "dbfuzz2-msan".
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

6 years agoFix a memory leak in fts5 that could occur if scalar function fts5_decode()
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

6 years agoFix a memory leak in fts5.
dan [Thu, 10 Jan 2019 18:35:09 +0000 (18:35 +0000)] 
Fix a memory leak in fts5.

FossilOrigin-Name: ff3b011f17f4f02e486f3c8de607f62eddf3b86562e2df82dba57ea166994b65

6 years agoAvoid use-after-free and double-free errors that could occur if an fts5 table
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

6 years agoFix further problems with fts5 handling corrupt databases.
dan [Thu, 10 Jan 2019 15:17:32 +0000 (15:17 +0000)] 
Fix further problems with fts5 handling corrupt databases.

FossilOrigin-Name: 83c467d7af63bd2e7800aff4fe9b09dbd75557460b75a9e07205dfae7e28312c

6 years agoMore aggressive early detection of orphaned and malformed autoindexes when
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

6 years agoUse the new SQLITE_IDXTYPE_IPK values (3) on Index.idxType to indicate the
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

6 years agoFix the fts3DecodeIntArray() function so that it will not read off the end
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

6 years agoFix an out-of-bounds read in SQL function fts5_decode() that could occur if it
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

6 years agoAdjustments to the page cache to try to avoid harmless TSAN warnings.
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

6 years agoImproved database corruption detection in the dbstat virtual table.
drh [Wed, 9 Jan 2019 11:19:41 +0000 (11:19 +0000)] 
Improved database corruption detection in the dbstat virtual table.

FossilOrigin-Name: fc5ecc88f8a0855ba90039177ee284721b2035e4de56a1024e323216f011f0af

6 years agoSmall simplification to the dbstat virtual table.
drh [Wed, 9 Jan 2019 11:06:03 +0000 (11:06 +0000)] 
Small simplification to the dbstat virtual table.

FossilOrigin-Name: 9d4c156fa26f80bb8f88b6ad8f24520a15af296de9c110604f6bd42c257455a0

6 years agoEnhance the ALTER TABLE RENAME COLUMN feature so that it works on tables
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

6 years agoUse 64-bit math to compute the sizes of memory allocations in extensions.
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

6 years agoPerformance improvement on the instr() function, especially for large
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

6 years agoFix a possible memory leak when trying to UPDATE a corrupt RTREE index.
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

6 years agoFix further problems with fts5 and corrupt databases causing integer overflow.
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

6 years agoFix another potential buffer overread in fts5.
dan [Mon, 7 Jan 2019 16:52:00 +0000 (16:52 +0000)] 
Fix another potential buffer overread in fts5.

FossilOrigin-Name: d0e943d9574c7cab1af4a0fe753a0b5f91ea0e884b91a85b13239144b71f067c

6 years agoFor SQLITE_ENABLE_PREUPDATE_HOOK builds, disable the optimization for a
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

6 years agoThe page size becomes fixed as soon as page1 from a non-empty database file
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

6 years agoAdd the exprNodeCopy() routine that will safely memcpy() an Expr node that
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

6 years agoIf the OP_ParseSchema opcode with a non-NULL P4 operand does not parse any
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

6 years agoFix two more problems with corrupt database handling in fts5.
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

6 years agoGive a meaningful error on an attempt to use UPSERT on a virtual table,
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

6 years agoIf the ".open" command fails in the CLI, reopen to :memory: so that at least
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

6 years agoRemove debugging pragmas accidently left in by a prior change.
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

6 years agoFix a typo in a comment used to generate documentation. No functional changes.
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

6 years agoFix another fts5 assert() that may fail if the database is corrupt.
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

6 years agoFix some problems with sqlite3_interrupt() handling in fts5.
dan [Thu, 3 Jan 2019 19:12:21 +0000 (19:12 +0000)] 
Fix some problems with sqlite3_interrupt() handling in fts5.

FossilOrigin-Name: c0eb839a3c23612b93002d2e1fbc41bf5db140775267989f85db52146144750b

6 years agoFix the csv01.test module so that it works on systems with \r\n line endings.
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

6 years agoFix the shmlock.test script so that it works with the Windows restriction
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

6 years agoFix a harmless compiler warning in the CSV extension.
drh [Thu, 3 Jan 2019 15:22:33 +0000 (15:22 +0000)] 
Fix a harmless compiler warning in the CSV extension.

FossilOrigin-Name: fbcd72565f4425016cebbbf5dfd6aa510234cfb31c785cf364f04fff444aacae

6 years agoFix a problem with the second and subsequent sqlite3rbu_savestate() calls made
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

6 years agoFix the geopoly_svg() function so that it returns NULL when given zero
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

6 years agoFix harmless compiler warnings in the unicode2 logic of FTS3 and FTS5.
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

6 years agoAdd another test case to vacuum-into.test.
dan [Wed, 2 Jan 2019 16:01:59 +0000 (16:01 +0000)] 
Add another test case to vacuum-into.test.

FossilOrigin-Name: 0465d2fc0d3f8beaa1b6b0bd7bd51d69a524f30d889c9402e7d02cc06164a310

6 years agoAdd test cases for commit [6c6fb1c6].
dan [Wed, 2 Jan 2019 15:27:27 +0000 (15:27 +0000)] 
Add test cases for commit [6c6fb1c6].

FossilOrigin-Name: 3961995cb56b43f1753c53fc869edf336f1c17ec994d67dc74e44e8e02493894

6 years agoRaise an error if the argument to VACUUM INTO is an identifier.
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

6 years agoFix another fts5 problem caused by a corrupt database.
dan [Tue, 1 Jan 2019 19:17:42 +0000 (19:17 +0000)] 
Fix another fts5 problem caused by a corrupt database.

FossilOrigin-Name: 911342f7512145a8a189bb0ec59e70e4c9ddc9f20f3e84816ab25139ead5dc45

6 years agoEnsure that when a new cursor is opened by OP_OpenDup, any existing cursor
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

6 years agoFix another case in fts5 where a corrupt database could cause a buffer
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

6 years agoFix harmless compiler warnings.
drh [Mon, 31 Dec 2018 21:43:55 +0000 (21:43 +0000)] 
Fix harmless compiler warnings.

FossilOrigin-Name: b57c545a384ab5d62becf3164945b32b1e108b2fb4c8dbd939a1706c2079e18b

6 years agoAdditional steps to help ensure that scalar subqueries are only evaluated
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

6 years agoRemove an optimization that can no longer occur, being superceded by the
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

6 years agoMerge enhancements and bug fixes from trunk.
drh [Mon, 31 Dec 2018 18:30:41 +0000 (18:30 +0000)] 
Merge enhancements and bug fixes from trunk.

FossilOrigin-Name: 9fb646f29c05bca5f677a2c7c4f45c36bfe0a0c6a88cb7968b4a0459bdd63bb2

6 years agoSmall changes to the OP_OpenEphemeral opcode to improve testability.
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

6 years agoFix the OP_OpenEphemeral opcode in the bytecode engine so that if it is called
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

6 years agoAdditional small performance increase and size reduction to the
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

6 years agoA new implementation of sqlite3VdbeMakeLabel() is faster and makes fewer
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

6 years agoMerge performance enhancements from trunk.
drh [Fri, 28 Dec 2018 21:32:35 +0000 (21:32 +0000)] 
Merge performance enhancements from trunk.

FossilOrigin-Name: 0f1b9ff9e1e6f13e03045fcb7d0907227085054f9eb0b0b8471fb26b0094b13a

6 years agoFaster allocation of new sqlite3_stmt objects.
drh [Fri, 28 Dec 2018 20:48:07 +0000 (20:48 +0000)] 
Faster allocation of new sqlite3_stmt objects.

FossilOrigin-Name: 891f1f72187f0f9ec0d24fda98cc08be3ae3c3ff8b27c4e409ee7135c3106398

6 years agoMove the nOpAlloc field from Parse into Vdbe to avoid an extra pointer
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

6 years agoMerge patches and enhancements from trunk.
drh [Fri, 28 Dec 2018 19:23:20 +0000 (19:23 +0000)] 
Merge patches and enhancements from trunk.

FossilOrigin-Name: da53f3d3ff26cc32d3a5ac788b6785baa3d1688e50d9354025a3130dc7e71a38

6 years agoFix another problem with loading the structure record from a corrupt fts5
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

6 years agoFix a problem causing the sqlite_master entry corresponding to a virtual table
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

6 years agoAvoid an undefined left-shift operation in fts5 caused by malformed utf-8
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

6 years agoFix a buffer overwrite in fts5 triggered by a corrupt database.
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

6 years agoFix problems in fts5 found by ASAN.
dan [Fri, 28 Dec 2018 07:37:22 +0000 (07:37 +0000)] 
Fix problems in fts5 found by ASAN.

FossilOrigin-Name: c564bf870106faef297594a51995619c80311d06bd5f8a0c7644f666f22ba576

6 years agoFix another problem with corrupt database handling in fts5.
dan [Thu, 27 Dec 2018 20:12:02 +0000 (20:12 +0000)] 
Fix another problem with corrupt database handling in fts5.

FossilOrigin-Name: fb0d7fba07865ff557bfcdacfda7b625d099ac8b4dcbe0c08cd2d4b84a068bb9

6 years agoModify the btree02.test module so that it does not depend on whether TCL
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

6 years agoFix another problem in fts5 caused by a corrupt schema record.
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

6 years agoFix the filename normalization in the dbtotxt utility program.
drh [Thu, 27 Dec 2018 13:52:45 +0000 (13:52 +0000)] 
Fix the filename normalization in the dbtotxt utility program.

FossilOrigin-Name: 29a00a05dd40ff59be340969e1aca4fee41e092f2faa1cea85a3448265a83c2c

6 years agoFix a null-pointer dereference that could occur in fts5 with a corrupt
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

6 years agoFix a problem in which nested CTEs with the same table name trick the
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

6 years agoIn the treeview debugging output,
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

6 years agoUpdate the coverage-wal permutation to cover branches enabled by
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

6 years agoAdd a few more test cases to walvfs.test.
dan [Wed, 26 Dec 2018 17:49:57 +0000 (17:49 +0000)] 
Add a few more test cases to walvfs.test.

FossilOrigin-Name: 14a64df36efe0dc36795311d58385f9c65dc465b214059e07c2ee6b95ea99c87

6 years agoAvoid an "unitialized value read" problem in fts5 that can occur with a
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

6 years agoFix a problem with handling corrupt databases in the fts5 integrity-check
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