]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
6 years agoChange an assert() into a NEVER(), since the condition is difficult to prove deferred-free-space
drh [Tue, 12 Feb 2019 00:58:10 +0000 (00:58 +0000)] 
Change an assert() into a NEVER(), since the condition is difficult to prove
with certainty.  Improved comment on the MemPage.nFree field.

FossilOrigin-Name: fec071b89df2cbafda365077bb54bc9999e12086f36d6cea8d125662b36638dc

6 years agoDo not invoke btreeComputeFreeSpace() when not necessary.
drh [Mon, 11 Feb 2019 22:50:01 +0000 (22:50 +0000)] 
Do not invoke btreeComputeFreeSpace() when not necessary.

FossilOrigin-Name: f11b0ed47402034378ded2c60b82841b81cd1319cdb72d1ef052faef29a5294d

6 years agoImprovements to comments. No changes to code.
drh [Mon, 11 Feb 2019 19:27:36 +0000 (19:27 +0000)] 
Improvements to comments.  No changes to code.

FossilOrigin-Name: 16eb0fc8f8cce51eaa5305ebc9f3bd8c8d935dd3ebebab6820e5629f9292eec2

6 years agoFix test cases. Avoid unnecessary tests for MemPage.nFree less than zero.
drh [Mon, 11 Feb 2019 17:22:30 +0000 (17:22 +0000)] 
Fix test cases.  Avoid unnecessary tests for MemPage.nFree less than zero.

FossilOrigin-Name: 480a5090befdc29eaeb6f0b22831c980d6ee92438d9b2e766de68b037ded38b8

6 years agoUpdates to a comment to keep it in alignment to the changes on this branch.
drh [Mon, 11 Feb 2019 12:51:39 +0000 (12:51 +0000)] 
Updates to a comment to keep it in alignment to the changes on this branch.

FossilOrigin-Name: 7499f74351415e601eb48eff6b6fccd3a78d137f5ea9cd7cac46b904772966de

6 years agoFix a page-cache reference leak in the btree balancer when there is a corrupt
drh [Sat, 9 Feb 2019 22:33:44 +0000 (22:33 +0000)] 
Fix a page-cache reference leak in the btree balancer when there is a corrupt
database.

FossilOrigin-Name: 9285899120dec24ff2944431ad455d7ae217ef408ae2f1a3e7bdfb897099028c

6 years agoDefer computing the MemPage.nFree value of an in-memory btree page
drh [Sat, 9 Feb 2019 21:06:40 +0000 (21:06 +0000)] 
Defer computing the MemPage.nFree value of an in-memory btree page
until it is actually needed, since for many pages it is never needed.
This checkin works sufficiently to prove the concept, but still has issues
with exception handling.

FossilOrigin-Name: 1d43ee4000b71f5c6d49244dee96358c567f09ba3451b9d22895a796d3f61ad6

6 years agoChange a few assert() statements in fts3 that might fail if the database is corrupt.
dan [Sat, 9 Feb 2019 19:23:54 +0000 (19:23 +0000)] 
Change a few assert() statements in fts3 that might fail if the database is corrupt.

FossilOrigin-Name: db74a56af73d92b7a9d43ceda7e4540915c580c68a0266b4ddefb9e0d5cbcbeb

6 years agoSmall performance improvement and size reduction for pageFindSlot() - the
drh [Fri, 8 Feb 2019 22:34:59 +0000 (22:34 +0000)] 
Small performance improvement and size reduction for pageFindSlot() - the
routine in btree.c that locates a free slot for a cell on a btree page.

FossilOrigin-Name: 1969372ac72d25cc642a0268f4bb0ae4b59f2dca568c119ef61b67183b3a8bd9

6 years agoFurther simplifications to sqlite3VdbeMemSetStr().
drh [Fri, 8 Feb 2019 17:28:20 +0000 (17:28 +0000)] 
Further simplifications to sqlite3VdbeMemSetStr().

FossilOrigin-Name: 1d212957079a2caa30f3c9d80f43464781bc9634c2b5181a5814efbddae31711

6 years agoChange the sqlite3VdbeMemGrow() routine so that it no longer guarantees a
drh [Fri, 8 Feb 2019 15:59:20 +0000 (15:59 +0000)] 
Change the sqlite3VdbeMemGrow() routine so that it no longer guarantees a
minimum size of 32 bytes.  That minimum is no longer required, and without
the extra check for the minimum size, the routine runs faster.

FossilOrigin-Name: 5c499da8a4d0babc56883aa362ae124772fd9214a51169a88a5dee523d051658

6 years agoGive the sqlite3 object a pointer to the current Parse so that if an OOM
drh [Fri, 8 Feb 2019 14:55:30 +0000 (14:55 +0000)] 
Give the sqlite3 object a pointer to the current Parse so that if an OOM
occurs, it can automatically set the Parse.rc value to SQLITE_NOMEM.  This
avoids a frequent extra test of db.mallocFailed in the innermost parser loop.

FossilOrigin-Name: 5c6638040b3017c6be016441422d965a3ca00dd6ae1f78cadc0b54562978f64e

6 years agoDo not do the optimization that attempts to pull expression values from
drh [Fri, 8 Feb 2019 04:15:19 +0000 (04:15 +0000)] 
Do not do the optimization that attempts to pull expression values from
an index on that expression when processing a multi-index OR
(see check-in [a47efb7c8520a0111]) because the expression transformations
that are applied become invalid when the processing moves off of the current
index and on to the next index.  Fix for ticket [4e8e4857d32d401f].

FossilOrigin-Name: 440a7cda000164d3b46109caf2e1dde80681ba9b0d94ba9be6847d2b917445cf

6 years agoChange VACUUM so that it preserves ROWID values.
drh [Thu, 7 Feb 2019 19:07:11 +0000 (19:07 +0000)] 
Change VACUUM so that it preserves ROWID values.

FossilOrigin-Name: 49e5d11d463de078c2b8a963f5ed436210937e6dfddf06942132db9ec685bfd8

6 years agoVersion 3.27.0 version-3.27.0
drh [Thu, 7 Feb 2019 17:02:52 +0000 (17:02 +0000)] 
Version 3.27.0

FossilOrigin-Name: 97744701c3bd414e6c9d7182639d8c2ce7cf124c4fce625071ae65658ac61713

6 years agoExperimental change to VACUUM so that it preserves existing ROWID values. vacuum-preserves-rowid
drh [Thu, 7 Feb 2019 15:09:44 +0000 (15:09 +0000)] 
Experimental change to VACUUM so that it preserves existing ROWID values.

FossilOrigin-Name: f264015f84de51d74f681ba62a5f26bd859480d93e1eaf9e1018b3e9b4e0bea3

6 years agoIn the fuzzcheck test program, make sure the isspace() and related routines
drh [Thu, 7 Feb 2019 00:17:36 +0000 (00:17 +0000)] 
In the fuzzcheck test program, make sure the isspace() and related routines
are not given values outside the range of -1 to 255.

FossilOrigin-Name: f298328771d5aaba798d05f50c77ac239c7c72422ff35953463d6876a9659f74

6 years agoEnsure all bytes of the PgHdr1 structure are initialized. This avoids a valgrind...
dan [Wed, 6 Feb 2019 20:49:49 +0000 (20:49 +0000)] 
Ensure all bytes of the PgHdr1 structure are initialized. This avoids a valgrind error when running corruptI.test.

FossilOrigin-Name: a505e34d4ec31159a4508ec827fcffed0cf3bd5ea5ef0ac293016da02367a53a

6 years agoUpdate an assert() in test_journal.c to take the new "VACUUM INTO" functionality...
dan [Wed, 6 Feb 2019 20:12:00 +0000 (20:12 +0000)] 
Update an assert() in test_journal.c to take the new "VACUUM INTO" functionality into account.

FossilOrigin-Name: 0e6249cb958a40ead0edf6e75a2c46e8657db3d358c5fe78a9dc0fa5ed7ad929

6 years agoAvoid attempting to delete a file while it is still open in walfault2.test.
dan [Wed, 6 Feb 2019 19:42:02 +0000 (19:42 +0000)] 
Avoid attempting to delete a file while it is still open in walfault2.test.

FossilOrigin-Name: 9d54a63d6e3cd47b483cf0ee868a5e7f638bcb0e3cbdeaecc667f293b87a3e99

6 years agoUpdate test file dbfuzz001.test so that it works with SQLITE_ENABLE_OVERSIZE_CELL_CHE...
dan [Wed, 6 Feb 2019 18:08:42 +0000 (18:08 +0000)] 
Update test file dbfuzz001.test so that it works with SQLITE_ENABLE_OVERSIZE_CELL_CHECK builds.

FossilOrigin-Name: 4371a0c46ee7bfbc0a1507796bd9eefd3371adad81b8dda214d018854316727b

6 years agoAdd -DSQLITE_ENABLE_DESERIALIZE to the default testing configuration in test/releaset...
dan [Wed, 6 Feb 2019 15:23:43 +0000 (15:23 +0000)] 
Add -DSQLITE_ENABLE_DESERIALIZE to the default testing configuration in test/releasetest.tcl.

FossilOrigin-Name: 433d6ef637a10ee017b5d8cadd125a162cfedc9895ae862b8dde6dddb7eda59b

6 years agoDo not attempt to test the shell ".trace" command in SQLITE_OMIT_TRACE builds.
dan [Wed, 6 Feb 2019 13:48:04 +0000 (13:48 +0000)] 
Do not attempt to test the shell ".trace" command in SQLITE_OMIT_TRACE builds.

FossilOrigin-Name: 3839e9098107604e1526c2b1e813c019607077dfe39d7eeb92f3466518dec3b1

6 years agoFix a problem preventing testfixture from being built with SQLITE_OMIT_VIRTUALTABLE.
dan [Wed, 6 Feb 2019 13:41:19 +0000 (13:41 +0000)] 
Fix a problem preventing testfixture from being built with SQLITE_OMIT_VIRTUALTABLE.

FossilOrigin-Name: d2cca36adc69d2c8e7707d70cbd75c497eae6a1a3f8a9dd18249ca6804c9db5f

6 years agoWhen extending the size of SrcList objects, do not attempt to use
drh [Wed, 6 Feb 2019 01:18:36 +0000 (01:18 +0000)] 
When extending the size of SrcList objects, do not attempt to use
extra space on the end of the allocation, as that provides scarcely any
performance benefit but does greatly complicate cross-platform testing.

FossilOrigin-Name: 3087a0c31e9fbfaedb7cf10a2fda59bc22318ff178614aefcc00ac83d9a7bb14

6 years agoIf the query flattener detects an error, cause the SELECT code generator
drh [Wed, 6 Feb 2019 00:55:47 +0000 (00:55 +0000)] 
If the query flattener detects an error, cause the SELECT code generator
to abort immediately.

FossilOrigin-Name: 3d3b142f1045080beb775a9cfe88ec143aa460750132e20059fd510291449850

6 years agoBack out check-in [008112bcef561a8], reenabling deprecated PRAGMAs when the
drh [Wed, 6 Feb 2019 00:11:13 +0000 (00:11 +0000)] 
Back out check-in [008112bcef561a8], reenabling deprecated PRAGMAs when the
SQLITE_OMIT_DEPRECATED compile-time option is used, because way too many
TH3 tests depend on those deprecated PRAGMAs.

FossilOrigin-Name: 9dbf512d1c4627a28d60f4e7238cb100d7a4e11f976139b07ad1c59e9b584c7d

6 years agoOmit the ".progress" command from the shell if it is compiled with the
drh [Tue, 5 Feb 2019 20:51:41 +0000 (20:51 +0000)] 
Omit the ".progress" command from the shell if it is compiled with the
SQLITE_OMIT_PROGRESS_CALLBACK option.

FossilOrigin-Name: 4d0a949fd92e19fbf243a2e3a1a7c2cdb111f9a6943949d2420dd846bc7d9285

6 years agoFix a harmless compiler warning in the memtrace.c extension.
drh [Tue, 5 Feb 2019 19:52:39 +0000 (19:52 +0000)] 
Fix a harmless compiler warning in the memtrace.c extension.

FossilOrigin-Name: 2f468da4e9fb3edb5e902fa5d3c528726d1fb64d749d29e558ba3243c76bcb95

6 years agoFix compiler warnings on Windows.
drh [Tue, 5 Feb 2019 19:48:46 +0000 (19:48 +0000)] 
Fix compiler warnings on Windows.

FossilOrigin-Name: 4978ee8b5405f958723b4ebbd4288bd08bff2b453da2d1c032d1ae904c2a3821

6 years agoUpdate the tester.tcl --malloctrace option so that it uses eu-addr2line instead of...
dan [Tue, 5 Feb 2019 16:53:26 +0000 (16:53 +0000)] 
Update the tester.tcl --malloctrace option so that it uses eu-addr2line instead of addr2line.

FossilOrigin-Name: 79c073878d56fc638b751b0e61295df182f7ee6f8ebd7319c1eeac1608abbac8

6 years agoThe IS NOT NULL operator does not imply that the operand is never NULL.
drh [Tue, 5 Feb 2019 14:36:33 +0000 (14:36 +0000)] 
The IS NOT NULL operator does not imply that the operand is never NULL.
Fix for ticket [5948e09b8c415bc45da5cf]

FossilOrigin-Name: d840e9bb023a1e84a7739d764a0f6cf608fc3183ff8c366fcdb486ebd932f0c1

6 years agoKeep the temp_store_directory and data_store_directory pragmas even when
drh [Tue, 5 Feb 2019 12:16:53 +0000 (12:16 +0000)] 
Keep the temp_store_directory and data_store_directory pragmas even when
compiling with SQLITE_OMIT_DEPRECATED.

FossilOrigin-Name: 93386a7c97f27df69f79052ef4d80143bb6832a806885249c315d226b2a256b2

6 years agoUpdate test file "resetdb.test" so that it works with the "prepare" permutation.
dan [Tue, 5 Feb 2019 08:55:43 +0000 (08:55 +0000)] 
Update test file "resetdb.test" so that it works with the "prepare" permutation.

FossilOrigin-Name: 95d338124be2e0e18f17354b28f4320336202f1a4ec1177df753b2800e954bfb

6 years agoEarly detection of implausibly sized records to avoid unnecessary
drh [Mon, 4 Feb 2019 21:10:24 +0000 (21:10 +0000)] 
Early detection of implausibly sized records to avoid unnecessary
large memory allocations.

FossilOrigin-Name: 2c8769c69f301307db6663adb8b7c0b89f5959516bf6110cb8ff4b21bd903f70

6 years agoMention the new -memtrace command-line option in the -help output of the CLI.
drh [Mon, 4 Feb 2019 19:52:39 +0000 (19:52 +0000)] 
Mention the new -memtrace command-line option in the -help output of the CLI.

FossilOrigin-Name: ada91aefe37efe3c009691b5599e4d6acf182e5ec3cf28dda0871d09858498b3

6 years agoAdd the -memtrace option to dbfuzz2.
drh [Mon, 4 Feb 2019 19:50:44 +0000 (19:50 +0000)] 
Add the -memtrace option to dbfuzz2.

FossilOrigin-Name: 67fecbc79d3e927a7e22f3589be3184114322635874e4b3170666e352d0bfe9d

6 years agoEnhance dbfuzz2 so that with the -v option it shows the return code and
drh [Mon, 4 Feb 2019 19:45:26 +0000 (19:45 +0000)] 
Enhance dbfuzz2 so that with the -v option it shows the return code and
error message for any failing SQL statements.

FossilOrigin-Name: 3a127ef9f7feafe6ba8c75e4eb29e28aa61a30249082cc8767ada1ec0cc0b7f1

6 years agoEnsure that the sqlite3_exec() callback gets the correct number of columns
drh [Mon, 4 Feb 2019 19:12:54 +0000 (19:12 +0000)] 
Ensure that the sqlite3_exec() callback gets the correct number of columns
for a query, even if the schema changes out from under it.

FossilOrigin-Name: a16ffb5a4b30f1ac4a8384fccde0a0f69e49545b6f9be9267928609328c4a151

6 years agoDo not run shmlock.test as part of the inmemory_journal permutation.
dan [Mon, 4 Feb 2019 16:42:57 +0000 (16:42 +0000)] 
Do not run shmlock.test as part of the inmemory_journal permutation.

FossilOrigin-Name: d3fea69cbb071867a90ad56ca05123ebf8e44689a92577a525a883c176c791bd

6 years agoUpdate the test/fuzzdata8.db database with new interesting cases from
drh [Mon, 4 Feb 2019 16:36:24 +0000 (16:36 +0000)] 
Update the test/fuzzdata8.db database with new interesting cases from
dbsqlfuzz.

FossilOrigin-Name: e467e4c8fa256ddd6c26c1f21bc26289a21f18b781737eaf706bc813ed8234fa

6 years agoFix problems with SAVEPOINT and related commands within transactions on a corrupt...
dan [Mon, 4 Feb 2019 16:25:40 +0000 (16:25 +0000)] 
Fix problems with SAVEPOINT and related commands within transactions on a corrupt database that include fts5 or some other virtual tables.

FossilOrigin-Name: b0da6e0dd1f9a9ba7646ee6bb3c14945e570303c9a42d20fa8a653570e12c3f9

6 years agoAdd the ".progress" command to the CLI.
drh [Mon, 4 Feb 2019 14:53:18 +0000 (14:53 +0000)] 
Add the ".progress" command to the CLI.

FossilOrigin-Name: ad84ca24ff760f7a2b128f2eeb4d799a97f84b8b8a8bb8d9657c4c555f6ccf47

6 years agoFix another potential buffer overread in fts5.
dan [Mon, 4 Feb 2019 14:00:20 +0000 (14:00 +0000)] 
Fix another potential buffer overread in fts5.

FossilOrigin-Name: 14fba4cc5db2bc206f024bfa5dd82fffdbc7577162da2c3b15a91cc1c91f3846

6 years agoFix another corruption case in fts5.
dan [Mon, 4 Feb 2019 11:54:22 +0000 (11:54 +0000)] 
Fix another corruption case in fts5.

FossilOrigin-Name: e608085d3f7e3cc0015fde626e205ee9842ef3cd06dc879fbbc7f2067c592965

6 years agoFix an assertion failure in fts3 triggered by a corrupt database.
dan [Sun, 3 Feb 2019 07:46:07 +0000 (07:46 +0000)] 
Fix an assertion failure in fts3 triggered by a corrupt database.

FossilOrigin-Name: 560ebd4269fad07b8e988d070454017123593eb6762597d08e8c32d7b4fb92ac

6 years agoNew testcase added to test/fuzzdata8.db.
drh [Sat, 2 Feb 2019 18:24:28 +0000 (18:24 +0000)] 
New testcase added to test/fuzzdata8.db.

FossilOrigin-Name: 2f5c1925b94d85489533549c58191feb1d803ad9d58b43f47fef42b72c531a38

6 years agoHonor key query parameters for SEE on the URI filename for ATTACH
drh [Sat, 2 Feb 2019 15:59:49 +0000 (15:59 +0000)] 
Honor key query parameters for SEE on the URI filename for ATTACH
and VACUUM INTO.

FossilOrigin-Name: 2e01096b8933a2315e3dffcd7d0de84c744c1b4be1d909388c61f0fd636ddb99

6 years agoGive a link to the URI Filename document in the documentation to the
drh [Sat, 2 Feb 2019 15:05:25 +0000 (15:05 +0000)] 
Give a link to the URI Filename document in the documentation to the
various sqlite3_uri_parameter() interfaces.

FossilOrigin-Name: 69b0b2ee536fda8975f60643f7f1891db4649958aca476822ea2a632ce731992

6 years agoFix a buffer overread in fts5 debugging scalar function fts5_decode().
dan [Sat, 2 Feb 2019 13:47:25 +0000 (13:47 +0000)] 
Fix a buffer overread in fts5 debugging scalar function fts5_decode().

FossilOrigin-Name: 54f2399fb2a626602d405c857297f2da833f9f048cbc478f9110bed2e9bda299

6 years agoFix harmless compiler warning.
mistachkin [Sat, 2 Feb 2019 01:27:45 +0000 (01:27 +0000)] 
Fix harmless compiler warning.

FossilOrigin-Name: dddda685f3443d8a38901f758543fcde73d7b8cfe72b0ad5f419cd7459343bf5

6 years agoSlight adjustment to the printf formatter large memory allocation detector
drh [Fri, 1 Feb 2019 21:08:27 +0000 (21:08 +0000)] 
Slight adjustment to the printf formatter large memory allocation detector
so that it does not overestimate the amount of space needed for
oversize %d conversions.

FossilOrigin-Name: 1aee70d6de8a9b17ebb74a7cb1dad65139cde1b615dcce4d15d3a476fda8676b

6 years agoPrevent the printf formatter from doing large memory allocations - larger
drh [Fri, 1 Feb 2019 20:29:04 +0000 (20:29 +0000)] 
Prevent the printf formatter from doing large memory allocations - larger
than either the size of the static buffer for interfaces like
sqlite3_snprintf(), or larger than SQLITE_LIMIT_LENGTH for interfaces that
are associated with a database connection.  This helps to prevent DOS
attacks on products that let hostile sources inject arbitrary SQL.  It also
helps fuzzers run faster and more effectively.

FossilOrigin-Name: 179e5d46054e5c86f53a79b7a0823d9a383da8391ad1d3c3b22645927a1e052b

6 years agoPerformance improvement in the parsing of options to %-formats in the
drh [Fri, 1 Feb 2019 18:46:41 +0000 (18:46 +0000)] 
Performance improvement in the parsing of options to %-formats in the
printf implementation.

FossilOrigin-Name: 40d8f8ae87abf928542c4e558a4c3a3eab18776a3e8db7ca1c5e5f744ca0bce3

6 years agoEnsure that the Walker.pParse structure is initialized when walking the
drh [Fri, 1 Feb 2019 15:06:27 +0000 (15:06 +0000)] 
Ensure that the Walker.pParse structure is initialized when walking the
source tree to gather the WINDOW clauses on a query with window functions.

FossilOrigin-Name: 4ca9d5d53d41d08fbce29f9da8cc0948df9c4c3136210af88b499cf889b5ccb8

6 years agoNew test cases added to test/fuzzdata8.db.
drh [Fri, 1 Feb 2019 14:54:18 +0000 (14:54 +0000)] 
New test cases added to test/fuzzdata8.db.

FossilOrigin-Name: e5924939c9c8f39367900360fa294cdb1220e9f68d183e32882e0926f775869d

6 years agoImprove the strict enforcement of cell sizes in balancing from
drh [Fri, 1 Feb 2019 14:50:43 +0000 (14:50 +0000)] 
Improve the strict enforcement of cell sizes in balancing from
check-in [12713f320b2c1def] so that it also works with table-btrees
in addition to index-btrees.

FossilOrigin-Name: ef27e7a08728aa7447ae19812803ac5c4a9d80c97541014bd292485792005a3e

6 years agoFix an assert() in fts5 that could fail if the database is corrupt.
dan [Fri, 1 Feb 2019 14:40:44 +0000 (14:40 +0000)] 
Fix an assert() in fts5 that could fail if the database is corrupt.

FossilOrigin-Name: 55f06aa3f890dc1dc5c2ed0e6777e46d609a6f9d223d1d4b5813097ce4f4e797

6 years agoFix another corrupt-database-handling problem in fts5.
dan [Fri, 1 Feb 2019 13:34:00 +0000 (13:34 +0000)] 
Fix another corrupt-database-handling problem in fts5.

FossilOrigin-Name: 9876ae1b802a449aacbbdd42778653edc19e29315dc627c23ab7493d6492c800

6 years agoRemove an incorrect assert() from the deserialize in-memory database VFS.
drh [Thu, 31 Jan 2019 16:09:48 +0000 (16:09 +0000)] 
Remove an incorrect assert() from the deserialize in-memory database VFS.

FossilOrigin-Name: 80151d7e3b9fd84086874a1cebed024b9e14005ea2d0108cf6efcd07373fcf51

6 years agoAdd the SQLITE_CONFIG_MEMDB_MAXSIZE configuration option for configuring
drh [Thu, 31 Jan 2019 15:38:53 +0000 (15:38 +0000)] 
Add the SQLITE_CONFIG_MEMDB_MAXSIZE configuration option for configuring
the default maximum size of an in-memory database created using
sqlite3_deserialize().  This is necessary to make the interface reasonably
testable.

FossilOrigin-Name: cb72ee0478ce98c48aae059fd5de4e36caf2b8c953e08fcb799bfd119ad46b73

6 years agoFix another buffer overrun that could occur when quering a corrupt database using...
dan [Thu, 31 Jan 2019 14:37:18 +0000 (14:37 +0000)] 
Fix another buffer overrun that could occur when quering a corrupt database using an fts5vocab table.

FossilOrigin-Name: b80119bd6044c0993210115732b6ae7b4b0b29c1471b0723bef24f2052c8e671

6 years agoIf the amalgamation file "sqlite3.c" is generated using the
drh [Thu, 31 Jan 2019 02:42:47 +0000 (02:42 +0000)] 
If the amalgamation file "sqlite3.c" is generated using the
SQLITE_ENABLE_UPDATE_DELETE_LIMIT option, but then subsequently (mis-)compiled
without that option, and then a particular syntax error could cause
a memory leak, but for this fix.

FossilOrigin-Name: 1bb17c863a269ab8b28df94b9fdaac3ee70777ccd0a30300131bf67df6722052

6 years agoImprovements to "PRAGMA parser_trace=ON": Make it a flag pragma, and then
drh [Thu, 31 Jan 2019 01:39:01 +0000 (01:39 +0000)] 
Improvements to "PRAGMA parser_trace=ON": Make it a flag pragma, and then
use the flag to show the complete SQL text at the beginning of the parse.

FossilOrigin-Name: 507c43537f00d089efb3c3020fb6e826e8f89f3efa2caaa12c5309d35dd0c22e

6 years agoChange the error message slightly for when two or more indexes have the
drh [Wed, 30 Jan 2019 19:50:07 +0000 (19:50 +0000)] 
Change the error message slightly for when two or more indexes have the
same rootpage.

FossilOrigin-Name: 916c52dad414b224695d455a42af36f85dff216504c2aa67d1d2c5818cdca8d6

6 years agoWhen parsing the schema, check for duplicate index root page numbers before adding...
dan [Wed, 30 Jan 2019 19:12:13 +0000 (19:12 +0000)] 
When parsing the schema, check for duplicate index root page numbers before adding the index to the schema hash table.

FossilOrigin-Name: 6b360bc0b9ad18ccda9d58d43a8388d19999432bfdf294abcf5beb44ef990cb4

6 years agoAdd test case for the previous commit.
dan [Wed, 30 Jan 2019 18:47:35 +0000 (18:47 +0000)] 
Add test case for the previous commit.

FossilOrigin-Name: 197edb235b785c68fda7be788efbc61137d9452886599415a927b959ade93c65

6 years agoDetect if two indexes of the same table share a common rootpage while
drh [Wed, 30 Jan 2019 18:33:33 +0000 (18:33 +0000)] 
Detect if two indexes of the same table share a common rootpage while
parsing the schema, and throw an error immediately.

FossilOrigin-Name: f21c6f1343edc4ba68f9f8e68caac34da0d1c651526ecaf61c0e2d66593a555e

6 years agoFix an off-by-one error when parsing the names of indexes that do not have
drh [Wed, 30 Jan 2019 16:58:04 +0000 (16:58 +0000)] 
Fix an off-by-one error when parsing the names of indexes that do not have
arguments in the index_usage utility.

FossilOrigin-Name: dc794d8f518ed46536928a77a560d46e4f9365c30a00cd108f000d8556a66c00

6 years agoAdd the --progress, --using, and -q options to the index_usage utility program.
drh [Wed, 30 Jan 2019 15:47:38 +0000 (15:47 +0000)] 
Add the --progress, --using, and -q options to the index_usage utility program.

FossilOrigin-Name: a5e6be7cbc5d931308ddcc073c9cd6275c9711cae055d72a7c4aa71c1d15914c

6 years agoEnhancements to the index_usage utility program.
drh [Wed, 30 Jan 2019 14:01:43 +0000 (14:01 +0000)] 
Enhancements to the index_usage utility program.

FossilOrigin-Name: 19c739b4a8a43d894e37a99fa34838f3e3fa1fe0d019aefbc33f1d38d76af1a4

6 years agoFix another buffer overread in fts5 that may occur when accessing a corrupt database.
dan [Wed, 30 Jan 2019 12:15:27 +0000 (12:15 +0000)] 
Fix another buffer overread in fts5 that may occur when accessing a corrupt database.

FossilOrigin-Name: 760d14374d40bcd9ce3a89771c18dc236c9728553c4747c9b7452ee7b24f4140

6 years agoFix harmless compiler warnings.
drh [Tue, 29 Jan 2019 16:54:31 +0000 (16:54 +0000)] 
Fix harmless compiler warnings.

FossilOrigin-Name: 9a93c68a7673bda2e6c308d3b2798d0fb12fde399996cae24b1f0d5864adf355

6 years agoLoad all the latest dbsqlfuzz finds into test/fuzzdata8.db.
drh [Tue, 29 Jan 2019 16:47:46 +0000 (16:47 +0000)] 
Load all the latest dbsqlfuzz finds into test/fuzzdata8.db.

FossilOrigin-Name: e744d2dd93a78235e6c1d938b08232183b5ce7e355d1b7daf2199e585b03c106

6 years agoMore robust handling of corrupt database file in the rebalance operation of
drh [Tue, 29 Jan 2019 16:41:13 +0000 (16:41 +0000)] 
More robust handling of corrupt database file in the rebalance operation of
the btree logic.

FossilOrigin-Name: 97704cb7d29fa7cc4ea9a6761a7844c1946d637ea2b22d287fc787ae0f63c407

6 years agoAvoid an integer overflow in the fts5 snippet() function triggered by a corrupt datab...
dan [Tue, 29 Jan 2019 16:34:45 +0000 (16:34 +0000)] 
Avoid an integer overflow in the fts5 snippet() function triggered by a corrupt database record.

FossilOrigin-Name: 7c862c4655841e1263cf548d01f5b4331685ab7d396494891cad0a5f50c63e16

6 years agoAvoid a crash when the fts5 snippet() function (or similar) is used with a special...
dan [Tue, 29 Jan 2019 15:30:03 +0000 (15:30 +0000)] 
Avoid a crash when the fts5 snippet() function (or similar) is used with a special query pattern, like '*id' or '*reads'.

FossilOrigin-Name: 9d58a15737f7379fed724749cfd5b4de5b44231870e99fc664683ad483c3e6ba

6 years agoFix a buffer overrun triggered by a merge operation on a corrupt fts5 database.
dan [Tue, 29 Jan 2019 11:42:43 +0000 (11:42 +0000)] 
Fix a buffer overrun triggered by a merge operation on a corrupt fts5 database.

FossilOrigin-Name: 7ee3cd5b2cdf8db35f70400b3df58f7c421c78ae77c50f22b0ee22d5a3039429

6 years agoSet a low limit on the length of strings and blobs in the OSSFuzz module,
drh [Tue, 29 Jan 2019 02:37:22 +0000 (02:37 +0000)] 
Set a low limit on the length of strings and blobs in the OSSFuzz module,
in an effort to avoid timeouts when the fuzzer does things like
"randomblob(1e12)".

FossilOrigin-Name: 119d1609fa415894fdd0aa19440ca1c658bd01910838a4cfadbe0e304b033bfd

6 years agoFix the query planner so that it is able to use an index on a CAST expression.
drh [Mon, 28 Jan 2019 19:06:17 +0000 (19:06 +0000)] 
Fix the query planner so that it is able to use an index on a CAST expression.

FossilOrigin-Name: 2c886f3d49c9569e9f6ee28b89b57e2d4004c8972d11da0c23f7b2d2e0c9900a

6 years agoFix a performance regression caused by the previous commit. index-on-cast
drh [Mon, 28 Jan 2019 18:58:54 +0000 (18:58 +0000)] 
Fix a performance regression caused by the previous commit.

FossilOrigin-Name: c4db0ad12d4f3d2800d36404f391b325cdc4aa7f8dcea93b2d63a489d9095ad4

6 years agoMake indexes on CAST(...) expressions work.
dan [Mon, 28 Jan 2019 18:08:59 +0000 (18:08 +0000)] 
Make indexes on CAST(...) expressions work.

FossilOrigin-Name: 3ef711d98fb239cf24472f124e7b36b0dde33355de5a2c9a3a978bbdd042a735

6 years agoFix a buffer overread in fts3 that could occur when accessing a corrupt database.
dan [Mon, 28 Jan 2019 16:50:42 +0000 (16:50 +0000)] 
Fix a buffer overread in fts3 that could occur when accessing a corrupt database.

FossilOrigin-Name: a9faf9033910927c74553e66c474d84ed3386f263cef3eec299e25d8306f410d

6 years agoDo not assume that text parameters passed to fts4aux queries do not contain embedded...
dan [Mon, 28 Jan 2019 13:27:25 +0000 (13:27 +0000)] 
Do not assume that text parameters passed to fts4aux queries do not contain embedded nul characters.

FossilOrigin-Name: df04859a995571cd6faf1abe088725708f35e81195760274df9e2ec9bd47f69f

6 years agoAdd a new test case to fuzzdata8.db.
drh [Mon, 28 Jan 2019 11:54:13 +0000 (11:54 +0000)] 
Add a new test case to fuzzdata8.db.

FossilOrigin-Name: ce8e279a7d37594e865c2d9197a5efe5d647e11f074dbaf4a4ee31c74c71dbc9

6 years agoChange the definition of the BtCursor.skipNext field so that it is undefined
drh [Mon, 28 Jan 2019 00:42:06 +0000 (00:42 +0000)] 
Change the definition of the BtCursor.skipNext field so that it is undefined
for states CURSOR_VALID and CURSOR_INVALID.

FossilOrigin-Name: 6089d5dba73437d787259033e94a38cf1b0c87cac4a89c27e69d8239c22f496e

6 years agoImprovements to the ".eqp trace" command in the CLI so that it ensures that
drh [Sun, 27 Jan 2019 19:50:56 +0000 (19:50 +0000)] 
Improvements to the ".eqp trace" command in the CLI so that it ensures that
the schema has been read prior to activing the tracing feature, to avoid
cluttering the output with a trace of the schema parse.

FossilOrigin-Name: 42687d45aa1a2b2a32ddfc5711b4ae9cf76b8cfbeb20b57d6705ecaf5824fcb6

6 years agoNew test cases form dbsqlfuzz
drh [Sun, 27 Jan 2019 02:45:32 +0000 (02:45 +0000)] 
New test cases form dbsqlfuzz

FossilOrigin-Name: 9cf8ebd141aa2eb661d457624c76433bd9e4abfdef04aa52e28bc169172c2c8f

6 years agoWindow functions that can abort should indicate this, so that if they are
drh [Sun, 27 Jan 2019 02:41:34 +0000 (02:41 +0000)] 
Window functions that can abort should indicate this, so that if they are
used in DML statement, a statement journal will be used.

FossilOrigin-Name: 0ea05a0eb96acb860d8af2e788e29a5ae3b161e7892ab62f1ff2f3e722c0dcb6

6 years agoUpdate fuzzcheck so that with the --load-dbsql options it screens its
drh [Sun, 27 Jan 2019 01:11:40 +0000 (01:11 +0000)] 
Update fuzzcheck so that with the --load-dbsql options it screens its
inputs to ensure that they are valid dbsqlfuzz cases.  Add new dbsqlfuzz
finds to the test/fuzzdata8.db database.

FossilOrigin-Name: 004f7d9bbeee049c22a7e1c82c6cc0ea79a237967de3ff57686acea3060d5f45

6 years agoEnsure that the btree cursor is correctly set up prior to backing it up
drh [Sat, 26 Jan 2019 23:34:50 +0000 (23:34 +0000)] 
Ensure that the btree cursor is correctly set up prior to backing it up
as part of a delete operation on a divider cell in an index.

FossilOrigin-Name: a3ea1a822d3a110f4f186f2fc8550f435c8c98635d058096b7be9d4df7066b8b

6 years agoFix a broken assert() in fts3. Also some test script issues causing failures with...
dan [Sat, 26 Jan 2019 21:05:54 +0000 (21:05 +0000)] 
Fix a broken assert() in fts3. Also some test script issues causing failures with builds that do not support fts3.

FossilOrigin-Name: d59567dda231e7ffec437d5e055676cf42d791196406cdc696cafa2583eb483b

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