]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
6 years agoFix another typo in fts3_common.tcl causing test failures in builds that do not suppo... rollback-abort
dan [Sat, 26 Jan 2019 20:41:23 +0000 (20:41 +0000)] 
Fix another typo in fts3_common.tcl causing test failures in builds that do not support fts3.

FossilOrigin-Name: 773b5986084b7ebe8d1d47cf51d1c10e600935b4cc9af38921dcb06b0d4d82c0

6 years agoFix a typo in fts3corrupt4.test causing it to fail if the build does not support...
dan [Sat, 26 Jan 2019 20:35:31 +0000 (20:35 +0000)] 
Fix a typo in fts3corrupt4.test causing it to fail if the build does not support fts3.

FossilOrigin-Name: 5016303421a678a185d619bda556411e6bd0830e5dab9318a35682085b0973f7

6 years agoFix a broken assert() in fts3.
dan [Sat, 26 Jan 2019 19:09:15 +0000 (19:09 +0000)] 
Fix a broken assert() in fts3.

FossilOrigin-Name: b8dd2d67b5c5555d0fd8b8fc9b953d54efb2d154413a50dca795a57b44dbdec7

6 years agoIf a write statement fails with OE_Abort, but there is no statement journal, roll...
dan [Sat, 26 Jan 2019 18:10:05 +0000 (18:10 +0000)] 
If a write statement fails with OE_Abort, but there is no statement journal, roll the entire transaction back instead.

FossilOrigin-Name: 75a8ed7a4227493c0d992ceeef6d631ef9c3643fef380fc2c467916d8761551f

6 years agoFix "PRAGMA journal_mode" so that if it fails because there is a transaction open...
dan [Sat, 26 Jan 2019 17:47:59 +0000 (17:47 +0000)] 
Fix "PRAGMA journal_mode" so that if it fails because there is a transaction open, it does not roll that transaction back.

FossilOrigin-Name: 9f39cb5b8195405f6aafacb04c411ff065ddefd0a234541fa2467f8e03bbcd25

6 years agoRoll back the transaction if a write statement fails with OE_Abort but there is no...
dan [Sat, 26 Jan 2019 16:34:08 +0000 (16:34 +0000)] 
Roll back the transaction if a write statement fails with OE_Abort but there is no open statement transaction.

FossilOrigin-Name: d536be698d1c6479e09f99ac12620c900f7f57bad0842372cbfe0755e41355e9

6 years agoAdd the ".eqp trace" command to the CLI when using SQLITE_DEBUG, as a
drh [Sat, 26 Jan 2019 15:40:04 +0000 (15:40 +0000)] 
Add the ".eqp trace" command to the CLI when using SQLITE_DEBUG, as a
convenient shorthand for "PRAGMA vdbe_debug=ON" but with automatic indentation
feature for program listings provided by the CLI.

FossilOrigin-Name: 626502faa17b5b7a0fa36cabfd12e463eb09aec048d01c587a18d3977cf04662

6 years agoDo not accidently truncate zeroblob values when doing an arithmetic
drh [Fri, 25 Jan 2019 20:09:04 +0000 (20:09 +0000)] 
Do not accidently truncate zeroblob values when doing an arithmetic
operation.  Fix for ticket [bb4bdb9f7f654b0bb9f34cfba].

FossilOrigin-Name: 13f6942eb0da2d92a0830f18640ce64208bd0cd6ff6d0c97e4a4c57ac3d65ba6

6 years agoReinitialize debugging information on registers of a trigger prior to each
drh [Fri, 25 Jan 2019 19:29:01 +0000 (19:29 +0000)] 
Reinitialize debugging information on registers of a trigger prior to each
invocation of the trigger.  This prevents false-positives from the
sqlite3VdbeMemAboutToChange() test logic.

FossilOrigin-Name: 98b3b97573ccb3d986d1552f97f96e15088a598945923adcac77010c1e8b7fe4

6 years agoFix harmless compiler warnings.
drh [Fri, 25 Jan 2019 18:17:37 +0000 (18:17 +0000)] 
Fix harmless compiler warnings.

FossilOrigin-Name: 3ff220ad378d547538b4501e6b2201e835a2c66891e5e40856db377c101a50e5

6 years agoFix the assert_fts3_nc() macro so that it works for test builds that omit
drh [Fri, 25 Jan 2019 18:17:03 +0000 (18:17 +0000)] 
Fix the assert_fts3_nc() macro so that it works for test builds that omit
SQLITE_DEBUG.

FossilOrigin-Name: b10df2b569e356551cf51ca179f307e4f8827413ee9feb886db1f1e0650e6c5f

6 years agoFix harmless compiler warnings in fuzzcheck
drh [Fri, 25 Jan 2019 17:51:06 +0000 (17:51 +0000)] 
Fix harmless compiler warnings in fuzzcheck

FossilOrigin-Name: a82539665718c8183d9d0bb7bcb3adcb1a23294b8c30f364829a982dab89a332

6 years agoFix a segfault that could follow an OOM when querying a table that has one or more...
dan [Fri, 25 Jan 2019 17:26:59 +0000 (17:26 +0000)] 
Fix a segfault that could follow an OOM when querying a table that has one or more columns with default values "true" or "false".

FossilOrigin-Name: 202f9919c222ee933924c63c15ad36ec4481457b1e4d9179af14c9f284117c0c

6 years agoFix asan warnings in fts5 triggered by corrupt databases - passing NULL to memcmp...
dan [Fri, 25 Jan 2019 16:54:06 +0000 (16:54 +0000)] 
Fix asan warnings in fts5 triggered by corrupt databases - passing NULL to memcmp, out-of-range left-shift values and signed integer overflow.

FossilOrigin-Name: 93f8ec146d63af13f04e337ada4fa75e9254f72b1394df09701ae12e185f27e2

6 years agoAdd an assert_fts3_nc() macro to fts3 - for assert() conditions that are only true...
dan [Fri, 25 Jan 2019 14:48:18 +0000 (14:48 +0000)] 
Add an assert_fts3_nc() macro to fts3 - for assert() conditions that are only true when it is guaranteed that the fts3 database is not corrupt.

FossilOrigin-Name: 3498908cd7f3d0e35b70796537124e3da0bd99d48750ba51bcb9eba87e28ed4d

6 years agoExtend fuzzcheck so that it can process dbsqlfuzz cases. Add a collection
drh [Fri, 25 Jan 2019 14:23:36 +0000 (14:23 +0000)] 
Extend fuzzcheck so that it can process dbsqlfuzz cases. Add a collection
of interesting dbsqlfuzz cases to the standard test suite.

FossilOrigin-Name: e2991a7ecf5dd241c4bab7c7cadc4901043fb0c3ea1fac70b684f6d8332677f1

6 years agoFix the xFetch method of the "memdb" VFS (used by deserialize) so that it dbsqlfuzz-in-fuzzcheck
drh [Fri, 25 Jan 2019 14:16:01 +0000 (14:16 +0000)] 
Fix the xFetch method of the "memdb" VFS (used by deserialize) so that it
is robust against corrupt database file.

FossilOrigin-Name: 2c1ef40e787a6bc355b50168527a47eb09acd30d0d88cff8336a434ad554115d

6 years agoFix a couple of assert() statments in btree.c that could fail with corrupt databases.
dan [Fri, 25 Jan 2019 13:42:12 +0000 (13:42 +0000)] 
Fix a couple of assert() statments in btree.c that could fail with corrupt databases.

FossilOrigin-Name: 5eb5e8289fa71e5e29e081d33d4a59c64b463bf6b06d7070c05c46d77d808ad4

6 years agoIn fuzzcheck, activate vdbe_debug for dbsqlfuzz cases when using the -vvvvv
drh [Fri, 25 Jan 2019 13:03:38 +0000 (13:03 +0000)] 
In fuzzcheck, activate vdbe_debug for dbsqlfuzz cases when using the -vvvvv
verbosity level or above.

FossilOrigin-Name: 2e6f7c2aced49824a38b3494b796a8ec73aa7a90b51159f670596df15ed1c5ab

6 years agoImproved automatic detection of dbsqlfuzz cases in fuzzcheck.
drh [Fri, 25 Jan 2019 04:43:26 +0000 (04:43 +0000)] 
Improved automatic detection of dbsqlfuzz cases in fuzzcheck.

FossilOrigin-Name: 1ef24e89c9630fd383ba32f5aefcf9c27907f27f5072f3537a1cfd75a093a8d7

6 years agoAdd the ability to process dbsqlfuzz cases in fuzzcheck and add an initial
drh [Fri, 25 Jan 2019 04:00:14 +0000 (04:00 +0000)] 
Add the ability to process dbsqlfuzz cases in fuzzcheck and add an initial
set of interesting dbsqlfuzz cases.

FossilOrigin-Name: fb9074ff450a67feaa62ca61d19154de26d5c8a8d147409ee6d1fbd667b2914f

6 years agoFix a buffer overread in fts3 that could occur in a prefix query on a corrupted database.
dan [Thu, 24 Jan 2019 17:41:12 +0000 (17:41 +0000)] 
Fix a buffer overread in fts3 that could occur in a prefix query on a corrupted database.

FossilOrigin-Name: d0d5689371577b2861d4a9464443d055f3256f3f51d89e0388233a4cbe2601ee

6 years agoFix a problem with running ALTER TABLE on a schema that contains expressions of the...
dan [Thu, 24 Jan 2019 16:27:10 +0000 (16:27 +0000)] 
Fix a problem with running ALTER TABLE on a schema that contains expressions of the type "col IN ()" (empty set on RHS of IN operator).

FossilOrigin-Name: 2d9cd06715092c312c8c0ec392696a0e90ed090b074e2082e0b830f1399aa941

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