]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
6 years agoPerformance optimization in the VDBE, and a fix for a harmless compiler reuse-schema-vdbe-opt
drh [Wed, 13 Feb 2019 13:48:48 +0000 (13:48 +0000)] 
Performance optimization in the VDBE, and a fix for a harmless compiler
warning.

FossilOrigin-Name: e002666ac79c3452a772323c6ecc696104341cd842e77541553ec028f188096b

6 years agoFix a problem with OPEN_REUSE_SCHEMA connections reloading the temp schema.
dan [Wed, 13 Feb 2019 08:40:34 +0000 (08:40 +0000)] 
Fix a problem with OPEN_REUSE_SCHEMA connections reloading the temp schema.

FossilOrigin-Name: 7c2ec2d4cfcda9c0aa6d57bd9a12ff98b78e648533d49da27f91d5a37bf1e001

6 years agoAdd tests for creating temp schema objects with SQLITE_OPEN_REUSE_SCHEMA connections.
dan [Tue, 12 Feb 2019 20:58:34 +0000 (20:58 +0000)] 
Add tests for creating temp schema objects with SQLITE_OPEN_REUSE_SCHEMA connections.

FossilOrigin-Name: 8c07b609fccc43795498b942c733896defd8887e4ddd9e0ef48c124dfcf9fd7f

6 years agoShare schemas between databases attached to the same database handle.
dan [Tue, 12 Feb 2019 19:20:33 +0000 (19:20 +0000)] 
Share schemas between databases attached to the same database handle.

FossilOrigin-Name: ea611d7cba604dc901c8088ccfa13367a5ee75f9499ea8d8b62a590daac2eae0

6 years agoMerge latest trunk changes into this branch.
dan [Mon, 11 Feb 2019 20:13:13 +0000 (20:13 +0000)] 
Merge latest trunk changes into this branch.

FossilOrigin-Name: dbedd81bf2e29ae9ed88526c1cc97e5c4d0a256ad7d960304bbb5e15c44f51f0

6 years agoAdd eponymous virtual table "schemapool". For inspecting the current contents of...
dan [Mon, 11 Feb 2019 19:34:38 +0000 (19:34 +0000)] 
Add eponymous virtual table "schemapool". For inspecting the current contents of the schema-pool.

FossilOrigin-Name: 2ebeb747832bd53284ab23b4c2558f0fa550c0ea2b4a6c1640eeb83f8132c556

6 years agoFix another segfault that could occur in fts5 with a corrupted database.
dan [Mon, 11 Feb 2019 16:12:09 +0000 (16:12 +0000)] 
Fix another segfault that could occur in fts5 with a corrupted database.

FossilOrigin-Name: 09e337386beb2008eba969f79601d1b8ed953951ce6e43782586e168140d78d2

6 years agoFix typos in comments in fts5.h. No changes to code.
dan [Mon, 11 Feb 2019 13:25:33 +0000 (13:25 +0000)] 
Fix typos in comments in fts5.h. No changes to code.

FossilOrigin-Name: c19e97bc927074915a3ac8307bf89d30580cf90edd75f4001bcf589b2dfefe58

6 years agoBuild and test fixes for SQLITE_OMIT_WINDOWFUNC builds.
dan [Mon, 11 Feb 2019 11:34:01 +0000 (11:34 +0000)] 
Build and test fixes for SQLITE_OMIT_WINDOWFUNC builds.

FossilOrigin-Name: 8824115a9776e876a3677f0cb479e311ee65584d43872b37766a146afec72d8f

6 years agoAvoid using non-ANSI return statement in void function sqlite3WalSnapshotUnlock().
dan [Mon, 11 Feb 2019 11:04:17 +0000 (11:04 +0000)] 
Avoid using non-ANSI return statement in void function sqlite3WalSnapshotUnlock().

FossilOrigin-Name: 4a4952d38e8177ed8d59aaa575410bebf76787dd6d801fdbdb809d4f8c670da0

6 years agoAdd an assert() in an attempt to repro an ASAN warning from OSSFuzz.
drh [Mon, 11 Feb 2019 01:58:34 +0000 (01:58 +0000)] 
Add an assert() in an attempt to repro an ASAN warning from OSSFuzz.

FossilOrigin-Name: 7b41222428dcebaae2e9a0e8192e091b6fdee5b1163a5fa14ca1cd4f06354983

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 agoFix virtual table support for SQLITE_OPEN_REUSABLE_SCHEMA connections.
dan [Sat, 9 Feb 2019 17:47:14 +0000 (17:47 +0000)] 
Fix virtual table support for SQLITE_OPEN_REUSABLE_SCHEMA connections.

FossilOrigin-Name: 3ca8856a7b1c36885cea007b8fb05b59f1fdc9d4b54436819193f498519a23c7

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 agoAdd test cases and fix problems on this branch.
dan [Fri, 8 Feb 2019 19:30:09 +0000 (19:30 +0000)] 
Add test cases and fix problems on this branch.

FossilOrigin-Name: 2b2e9f81cdc7a3ac1eacc087fbd0414ead732878aae296bab6b54b4a7cd0a06e

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 agoMerge latest trunk into this branch.
dan [Tue, 5 Feb 2019 19:51:15 +0000 (19:51 +0000)] 
Merge latest trunk into this branch.

FossilOrigin-Name: c089cc4fbe2e5e53d76154146870d14fc3b8d342a49580e41a5616817099715c

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 agoFix memory leaks on this branch.
dan [Tue, 5 Feb 2019 19:15:36 +0000 (19:15 +0000)] 
Fix memory leaks on this branch.

FossilOrigin-Name: e9c5e1891ff4f7e57131031f068efea87027ddab0cd7846e0514a105853be47d

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 agoFix a problem with reloading the schema on this branch.
dan [Mon, 4 Feb 2019 21:02:00 +0000 (21:02 +0000)] 
Fix a problem with reloading the schema on this branch.

FossilOrigin-Name: 5dfbef8349e47f9d9fcdbb648ecd18b5bc7eebdb1a3ddaf91789d036b7de8a90

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 agoTry new approach ensuring that each Schema object is only used by one connection...
dan [Sat, 2 Feb 2019 21:02:22 +0000 (21:02 +0000)] 
Try new approach ensuring that each Schema object is only used by one connection/database at any one time.

FossilOrigin-Name: 9e8e5f52cf90579c3071f04a3c6857bb76b4ca1b1900a7f865de789ed0bb8678

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