]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
6 years agoWhile PRAGME full_column_names is off (the default) do not make changes to literal-column-names
drh [Thu, 24 Jan 2019 16:51:06 +0000 (16:51 +0000)] 
While PRAGME full_column_names is off (the default) do not make changes to
the short_column_names pragma when computing the column names for subqueries.

FossilOrigin-Name: 718ead555b09892f3cbaddb1775ede4acfa4a2986d69f15da1270c433e5dd578

6 years agoOmit deprecated PRAGMAs when compiling with the -DSQLITE_OMIT_DEPRECATED option.
drh [Thu, 24 Jan 2019 16:07:18 +0000 (16:07 +0000)] 
Omit deprecated PRAGMAs when compiling with the -DSQLITE_OMIT_DEPRECATED option.

FossilOrigin-Name: 008112bcef561a8a3ebfb007cbef36cbc0071f547e6ebdba3d3bbb39e2c48c7a

6 years agoMake sure the column name flags are restored correctly after an error
drh [Thu, 24 Jan 2019 15:51:03 +0000 (15:51 +0000)] 
Make sure the column name flags are restored correctly after an error
inside of sqlite3ResultSetOfSelect().

FossilOrigin-Name: b1601db7adba2dccd4f90fbbe5099c801a2b0d97af087fbe82ed98d05496b38c

6 years agoFix a potential problem with "INSERT INTO ... SELECT * FROM" (or VACUUM) statements...
dan [Thu, 24 Jan 2019 15:16:17 +0000 (15:16 +0000)] 
Fix a potential problem with "INSERT INTO ... SELECT * FROM" (or VACUUM) statements on a corrupted database.

FossilOrigin-Name: db4b4c2c1e9f1adacfb1b2fedb717a4d8bb0a299c3b11835404a99fcd67bf24b

6 years agoChange a integer variable in sqlite3VdbeRecordUnpack() to unsigned in order
drh [Thu, 24 Jan 2019 14:16:20 +0000 (14:16 +0000)] 
Change a integer variable in sqlite3VdbeRecordUnpack() to unsigned in order
to avoid any possibility of an integer overflow.

FossilOrigin-Name: 1b536f6fd8d58800042f130842f0586aaa357841ee0d1b690a9815c865d50826

6 years agoUse memmove() instead of memcpy() in a place where buffers might overlap
drh [Thu, 24 Jan 2019 13:36:47 +0000 (13:36 +0000)] 
Use memmove() instead of memcpy() in a place where buffers might overlap
if the database file is badly corrupted, to prevent warnings
from ASAN and valgrind.

FossilOrigin-Name: 65ad6c55f1ba9bc2f75afffa3adaf19f145fad7ac9a00ccce6372e9a2cc4341b

6 years agoRemove an unreachable branch.
drh [Thu, 24 Jan 2019 04:44:54 +0000 (04:44 +0000)] 
Remove an unreachable branch.

FossilOrigin-Name: 4c976f171342ba2d39779279c28f3bc088572c440922e3e4421a3bf541263360

6 years agoFix an assert() in vdbemem.c that could fire if the database was corrupt.
dan [Wed, 23 Jan 2019 20:31:56 +0000 (20:31 +0000)] 
Fix an assert() in vdbemem.c that could fire if the database was corrupt.

FossilOrigin-Name: a70958cd7d5cf750c293537856918e5789013b70f6a827f724d83559b38629c8

6 years agoFix a problem with renaming a table within a schema that contains a composite query...
dan [Wed, 23 Jan 2019 19:50:46 +0000 (19:50 +0000)] 
Fix a problem with renaming a table within a schema that contains a composite query that uses a column alias as an ORDER BY term.

FossilOrigin-Name: 2ca6b8f84ec07e313aa4e1c0894827401b418dcc4221e9c54c384f1c3893952a

6 years agoStricter enforcement of cell sizes when doing balancing operations on the
drh [Wed, 23 Jan 2019 19:25:59 +0000 (19:25 +0000)] 
Stricter enforcement of cell sizes when doing balancing operations on the
btree, in order to catch file corruption sooner.

FossilOrigin-Name: 12713f320b2c1def273dd8b7833dddaaad5331aba779d4b1ec9aa949814f38fe

6 years agoFix another fts5 crash that can occur if the database is corrupted.
dan [Wed, 23 Jan 2019 19:17:05 +0000 (19:17 +0000)] 
Fix another fts5 crash that can occur if the database is corrupted.

FossilOrigin-Name: 44ce8baa47192be03c8f11777904c3c07fa5cc5c97b6d8e81572d380995ac688

6 years agoFix problems with sub-selects in WINDOW definitions. Also rename-column operations...
dan [Wed, 23 Jan 2019 16:59:24 +0000 (16:59 +0000)] 
Fix problems with sub-selects in WINDOW definitions. Also rename-column operations when the column being renamed appears in a WINDOW definition that is part of a VIEW or TRIGGER.

FossilOrigin-Name: 0387cb3add992b2028efe4f2100188d8f9fdfdcb233329857aa4b46a293cfc97

6 years agoFix a buffer overwrite triggered by a prefix query on a corrupt fts5 table.
dan [Wed, 23 Jan 2019 12:19:22 +0000 (12:19 +0000)] 
Fix a buffer overwrite triggered by a prefix query on a corrupt fts5 table.

FossilOrigin-Name: 1d8172a94bce2d067027685e5aa1dc8f5d5d55b5da0832ad2836f6939de68c8f

6 years agoFix a buffer overrun that could occur in fts5 if a prefix query is made on a corrupt...
dan [Tue, 22 Jan 2019 21:17:40 +0000 (21:17 +0000)] 
Fix a buffer overrun that could occur in fts5 if a prefix query is made on a corrupt database.

FossilOrigin-Name: 1abc4415648e69362061e9f9a4f2c1d419ba33801999b377650d8b9a4d2d3a7c

6 years agoDo not run shmlock.test as part of the journaltest permutation.
dan [Tue, 22 Jan 2019 20:18:29 +0000 (20:18 +0000)] 
Do not run shmlock.test as part of the journaltest permutation.

FossilOrigin-Name: 5b7d0c784e6467154d9549af0163d788b69d5e5a6478a735834cdea945e7dbb7

6 years agoUse _strdup() instead of strdup() on Windows builds of the CLI, to avoid
drh [Tue, 22 Jan 2019 16:44:59 +0000 (16:44 +0000)] 
Use _strdup() instead of strdup() on Windows builds of the CLI, to avoid
a compiler warning reported on the mailing list.

FossilOrigin-Name: a7126a4f4fb4e3e25be95d673323f835252bb2b427469616046a90b2acf64071

6 years agoFix the SQLITE_DESERIALIZE_READONLY feature so that it does not cause
drh [Tue, 22 Jan 2019 16:43:47 +0000 (16:43 +0000)] 
Fix the SQLITE_DESERIALIZE_READONLY feature so that it does not cause
an assertion fault in the pager.

FossilOrigin-Name: b9eccef7825c61980678599358b62bc394283124653061ce163ead0c653f481d

6 years agoUpdate dbfuzz2 to set a maximum database size of 100MiB by default, but
drh [Tue, 22 Jan 2019 16:11:31 +0000 (16:11 +0000)] 
Update dbfuzz2 to set a maximum database size of 100MiB by default, but
with the new --max-db-size N option to change that limit.

FossilOrigin-Name: 21d6bb78ef2979d011b917d2d6519d7cd0009fcad83ed23ab2e9a5e02d8e51ab

6 years agoEnhancements to deserialize: (1) Add the SQLITE_FCNTL_SIZE_LIMIT file control
drh [Tue, 22 Jan 2019 16:06:20 +0000 (16:06 +0000)] 
Enhancements to deserialize: (1) Add the SQLITE_FCNTL_SIZE_LIMIT file control
to set a maximum size for an in-memory database, defaulting to
SQLITE_MEMDB_DEFAULT_MAXSIZE or 1GiB.  (2) Honor the SQLITE_DESERIALIZE_READONLY
flag. (3) Enhance the TCL interface to support -maxsize N and -readonly BOOLEAN.
(4) Add the --maxsize option to the ".open" command and on the command-line for
the CLI.

FossilOrigin-Name: 30f08d58882819a69e353bcc1b6b349664bbfbe00aa1c115ba44a9fd899fcc5b

6 years agoMake sure cursors are opened on all indexes for an UPDATE OR REPLACE
drh [Tue, 22 Jan 2019 13:45:48 +0000 (13:45 +0000)] 
Make sure cursors are opened on all indexes for an UPDATE OR REPLACE
regardless of whether or not the indexes are partial or contain columns
that might need to be updated.

FossilOrigin-Name: e148cdad35520e6684cfeba23b003f60b55f83a6bf621aff16be8aa5612cdcee

6 years agoFix another segfault caused by a corrupt fts3 database.
dan [Tue, 22 Jan 2019 12:21:28 +0000 (12:21 +0000)] 
Fix another segfault caused by a corrupt fts3 database.

FossilOrigin-Name: ba3b8412726548a0716c1a2d67260c3b7e31956474f4cd4ce607cf2cebc667dd

6 years agoEnsure that a key comparison does not read a collating sequence past the
drh [Tue, 22 Jan 2019 02:34:35 +0000 (02:34 +0000)] 
Ensure that a key comparison does not read a collating sequence past the
end of the KeyInfo, even if the key field of an index is corrupted by having
a string in the last column instead of the ROWID.

FossilOrigin-Name: 058a8006dceda78a894ea9446f057aa60b6d38e96506d4d91bda0ee2f9314ba3

6 years agoEnhance the btree search routine so that it does early detection of
drh [Mon, 21 Jan 2019 23:18:22 +0000 (23:18 +0000)] 
Enhance the btree search routine so that it does early detection of
impossibly large keys and thereby avoids a large malloc() call.

FossilOrigin-Name: 3ecaaee69f49e43d38047b7d53b82689eba7f7d33541fcac3c32b6dc8a568458

6 years agoAvoid deferencing a freed pointer following an OOM or SQLITE_CORRUPT error in
dan [Mon, 21 Jan 2019 17:57:31 +0000 (17:57 +0000)] 
Avoid deferencing a freed pointer following an OOM or SQLITE_CORRUPT error in
the fts3 xDestroy method.

FossilOrigin-Name: 505ed9a47825240979338a24044559613fbbd2a7850bdff70c7164da054ec63d

6 years agoRemove a faulty assert() from fts3.
dan [Mon, 21 Jan 2019 16:12:20 +0000 (16:12 +0000)] 
Remove a faulty assert() from fts3.

FossilOrigin-Name: 6c33a303ebbb0f5193ead535280ba63118e14fb4f9977ce80dc716a0b082ec99

6 years agoMake sure the extra bytes allocated for the saved cursor position by
drh [Mon, 21 Jan 2019 16:01:17 +0000 (16:01 +0000)] 
Make sure the extra bytes allocated for the saved cursor position by
check-in [160b1e31c0f27257] are initialized to zero.

FossilOrigin-Name: 2737564929e86ead84a3ff6512369268198d38b46e3e02866f8ce34babc76cb9

6 years agoAdd the --memtrace option to the CLI.
drh [Mon, 21 Jan 2019 14:55:03 +0000 (14:55 +0000)] 
Add the --memtrace option to the CLI.

FossilOrigin-Name: a1e12fa2a8eb5648a96cc2d8d39899d6f87c5e2269cec7de486964c8b915e724

6 years agoMinor fix the fallocate.test module change from [7cd56cad5efead5]
drh [Mon, 21 Jan 2019 14:49:14 +0000 (14:49 +0000)] 
Minor fix the fallocate.test module change from [7cd56cad5efead5]

FossilOrigin-Name: 94fb7a47003c3c1a52e833e98d27399cfec5382afde2b3990e8223c8bff7cfa0

6 years agoAdd the --max-data and --max-as options to dbfuzz2. Also cause dbfuzz2 to
drh [Mon, 21 Jan 2019 13:47:55 +0000 (13:47 +0000)] 
Add the --max-data and --max-as options to dbfuzz2.  Also cause dbfuzz2 to
show its maximum RSS size upon exit in standalone mode with the -v option.

FossilOrigin-Name: 7ce93e824a954d1e0cf8d7343e59a2660175f42bd4dac02aed8ad77644e7eb2f

6 years agoAdd the --max-stack option to dbfuzz2.
drh [Sun, 20 Jan 2019 00:03:59 +0000 (00:03 +0000)] 
Add the --max-stack option to dbfuzz2.

FossilOrigin-Name: c11ae4fed89484f0a0061002861b5d599bbda8e40a1f0c33fdbe8cb072134d5c

6 years agoAvoid a division-by-zero error in fts5 caused by a corrupt database.
dan [Sat, 19 Jan 2019 15:55:27 +0000 (15:55 +0000)] 
Avoid a division-by-zero error in fts5 caused by a corrupt database.

FossilOrigin-Name: 928e622178bd004be52b2271ac554176aebe9d6e115ecac4e7072eccbb4262b5

6 years agoRemove a broken assert() triggered by a "PRAGMA max_page_count = N"
dan [Sat, 19 Jan 2019 15:27:09 +0000 (15:27 +0000)] 
Remove a broken assert() triggered by a "PRAGMA max_page_count = N"
invocation, where N is larger than the number of pages in the database image,
but smaller than the number of pages in the database file.

FossilOrigin-Name: 7cd56cad5efead5097e9918c87313bb46e583fe62bae0df1be60e10117e2c3cb

6 years agoFix a problem with using ALTER TABLE to rename a table or column when the
dan [Sat, 19 Jan 2019 14:07:37 +0000 (14:07 +0000)] 
Fix a problem with using ALTER TABLE to rename a table or column when the
database schema contains a trigger or view that itself contains an expression
 "<column> AND 0".

FossilOrigin-Name: 908ff7fffa302255a74e2334ca3a1779ed43acb0268fce5a83a56fd16794dc88

6 years agoFix a memory leak introduced by [55c5d72a].
dan [Fri, 18 Jan 2019 21:17:08 +0000 (21:17 +0000)] 
Fix a memory leak introduced by [55c5d72a].

FossilOrigin-Name: fbd681dce2905d8b8ad7948ba684b0b62d6c04be0f7a2992ee7d6836a99010de

6 years agoFix a crash in the fts5vocab module caused by including a "term < NULL" term
dan [Fri, 18 Jan 2019 21:12:32 +0000 (21:12 +0000)] 
Fix a crash in the fts5vocab module caused by including a "term < NULL" term
in a WHERE clause.

FossilOrigin-Name: 9e717c4377c0116a5d36815fbc30f8b8803f14770d30be361feb27cc5b5b537b

6 years agoFix an infinite loop caused by a corrupt database in fts3. Also an undefined
dan [Fri, 18 Jan 2019 21:03:15 +0000 (21:03 +0000)] 
Fix an infinite loop caused by a corrupt database in fts3. Also an undefined
left-shift in fts5.

FossilOrigin-Name: 55c5d72af9510e2f27c33544d804a58d4282b0efb384ead38484129ce91b574f

6 years agoAvoid passing a NULL pointer to memcpy in fts5, even if the database is corrupt.
dan [Fri, 18 Jan 2019 20:15:02 +0000 (20:15 +0000)] 
Avoid passing a NULL pointer to memcpy in fts5, even if the database is corrupt.

FossilOrigin-Name: acccc9808f52009b2c7794770c8b7efe2ce861fa184d32e287e7114c74e2b522

6 years agoTypecasts added to the GeoPoly extension to avoid harmless UBSAN warnings.
drh [Fri, 18 Jan 2019 19:33:56 +0000 (19:33 +0000)] 
Typecasts added to the GeoPoly extension to avoid harmless UBSAN warnings.

FossilOrigin-Name: a1f6a093ac4a2de8c5b02c30fe57e09770460fd5bdddfe9c7a9a24fb83a6b491

6 years agoFix problems causing undefined left-shift operations in the fts3 snippet()
dan [Fri, 18 Jan 2019 19:26:48 +0000 (19:26 +0000)] 
Fix problems causing undefined left-shift operations in the fts3 snippet()
function.

FossilOrigin-Name: b90dbaed3092236e97f9796fa63989a3648060e16189e1267c430f4a7e799fac

6 years agoAvoid integer overflow when computing the array of a bounding box with
drh [Fri, 18 Jan 2019 18:52:17 +0000 (18:52 +0000)] 
Avoid integer overflow when computing the array of a bounding box with
the rtree_i32 virtual table.

FossilOrigin-Name: b352f1590d20a574b0681e011ececcf4f41fa5b157503d330e03939404aca0e9

6 years agoHandle oversize floating point values carefully when converting to integers
drh [Fri, 18 Jan 2019 17:53:50 +0000 (17:53 +0000)] 
Handle oversize floating point values carefully when converting to integers
for the '%' binary operator.

FossilOrigin-Name: 048add13fc10e69ae504a49c4663612381d928b2cf1f9cdab4ff34bd40f601a3

6 years agoFix a fairly obscure problem allowing an "ALTER TABLE RENAME col TO ..." statement...
dan [Fri, 18 Jan 2019 16:06:18 +0000 (16:06 +0000)] 
Fix a fairly obscure problem allowing an "ALTER TABLE RENAME col TO ..." statement to modify the schema in such a way as to break a reference within a trigger program.

FossilOrigin-Name: 64bec9e6214c6932fab5a3fb8c569ae14cd2d603bd0f8b26104815c3bb9d396a

6 years agoUse the full 64-bit integer value in the argument to randomblob().
drh [Fri, 18 Jan 2019 14:53:15 +0000 (14:53 +0000)] 
Use the full 64-bit integer value in the argument to randomblob().

FossilOrigin-Name: 05df5f7aeaf2132810452e8871132d1e66650a841991cb2a9ce32f2d03e20bf4

6 years agoDisable the xfer-optimization if the two tables have the same root page
drh [Thu, 17 Jan 2019 20:19:35 +0000 (20:19 +0000)] 
Disable the xfer-optimization if the two tables have the same root page
due to schema corruption.

FossilOrigin-Name: f31b3bd2a6a8aa35a6454f37f3a4b4595e2ad74256cd180439019ab4c6c2059e

6 years agoFix another corruption related crash in fts5.
dan [Thu, 17 Jan 2019 20:06:56 +0000 (20:06 +0000)] 
Fix another corruption related crash in fts5.

FossilOrigin-Name: 4538d9afe4e6360e20c7b474e77314e5ad293453e1edbe356bf6ea84c05857ee

6 years agoAdd the SQLITE_ENABLE_EARLY_CURSOR_CLOSE compile-time option which causes
drh [Thu, 17 Jan 2019 19:33:16 +0000 (19:33 +0000)] 
Add the SQLITE_ENABLE_EARLY_CURSOR_CLOSE compile-time option which causes
read cursors to be closed after their usefulness ends during a two-pass
UPDATE.

FossilOrigin-Name: 7def6c8edd85f19ee09038e01541f75b1f71ca39b9fb782b8f0fcac89207c353

6 years agoFix a buffer overwrite that could occur when running an fts5 prefix query
dan [Thu, 17 Jan 2019 19:11:10 +0000 (19:11 +0000)] 
Fix a buffer overwrite that could occur when running an fts5 prefix query
against a corrupt database.

FossilOrigin-Name: 3910b5639d5c96d1840d4feeea64d3a55073531b7365a4e75d9cda6f119f3cfc

6 years agoFix problems with joining two or more fts5_vocab tables that access the same
dan [Thu, 17 Jan 2019 17:39:15 +0000 (17:39 +0000)] 
Fix problems with joining two or more fts5_vocab tables that access the same
underlying fts5 table.

FossilOrigin-Name: 49956395e14b61f6bf839e59ae7dd95eb32ebf32f3d16388844de6621b9c2d98

6 years agoRevamp the SrcList allocator routines to be methods of Parse instead of
drh [Thu, 17 Jan 2019 15:40:41 +0000 (15:40 +0000)] 
Revamp the SrcList allocator routines to be methods of Parse instead of
being methods of the "sqlite3" object, so that they can leave better error
messages when the SrcList object grows too large.

FossilOrigin-Name: df08d472b090b212fb77ce2aae0e1ffe79ae5db4b1accf55e6fdb18e8b0a7098

6 years agoLimit the size of SrcList objects to 200 entries (compile-time configurable
drh [Thu, 17 Jan 2019 14:34:46 +0000 (14:34 +0000)] 
Limit the size of SrcList objects to 200 entries (compile-time configurable
using -DSQLITE_MAX_SRCLIST=n).  The maximum number of tables in a join has
always been 64, so this is not a real constraint on capability.  Limiting the
size of a SrcList prevents DOS attacks (discovered by OSSFuzz) using crazy
nexted CTE joins.

FossilOrigin-Name: 7cac614d5df55eb092b863163483b6782b942b21bd15fd787576fef5619fa849

6 years agoFix a corner-case for the logic that cause an insert of a NULL into an
drh [Thu, 17 Jan 2019 04:40:04 +0000 (04:40 +0000)] 
Fix a corner-case for the logic that cause an insert of a NULL into an
INTEGER PRIMARY KEY column to be converted into a valid integer key,
when the NULL results from a CASE expression that lacks an ELSE clause.

FossilOrigin-Name: 9a425051e7ba59e797636f5cf32b5f6efafdb21c8d5300e099b8008b829c1439

6 years agoEnsure that the variable-length integer decoder in FTS3 never tries to
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

6 years agoFix a failure in sqlite3ExprCompare()
drh [Thu, 17 Jan 2019 01:06:00 +0000 (01:06 +0000)] 
Fix a failure in sqlite3ExprCompare()

FossilOrigin-Name: 835e2cc55feea2f2426c99816c27f9c35d2fd4cdd9bf1c7f46f889ecfd222778

6 years agoFix a problem with fix [b4b57413].
dan [Wed, 16 Jan 2019 20:48:13 +0000 (20:48 +0000)] 
Fix a problem with fix [b4b57413].

FossilOrigin-Name: ca7b7aaed010ec67bec5355a9ac1d7f229d6d5f2ba2d796b76f5e908b1267688

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

6 years agoFix a problem in the code generator for sorting results with SRT_EphemTab
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

6 years agoFix a problem with renaming a column that is used as part of an ORDER BY on a
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

6 years agoAvoid a dangling pointer comparison when renaming a table that has a trigger
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

6 years agoFix a memory leak that could occur in fts3 when handling a corrupt database.
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

6 years agoFix a problem with ALTER TABLE and vector assignments in UPDATE statements
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

6 years agoHandle SQL NULL values without crashing in the fts5 snippet() and highlight()
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

6 years agoFix a buffer overread in fts3 caused by a corrupt record.
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

6 years agoHave fts5 reject attempts to insert a non-integer, non-null value into a rowid
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

6 years agoFix a harmless memory leak in the Lemon parser generator utility program.
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

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