]>
git.ipfire.org Git - thirdparty/sqlite.git/log
dan [Thu, 21 Feb 2019 18:11:12 +0000 (18:11 +0000)]
drh [Thu, 21 Feb 2019 16:41:34 +0000 (16:41 +0000)]
Detect oversized strings in the OP_String opcode even if the P4 argument
is originally UTF8 and has to be converted to UTF16 to match the database
file and that conversion causes the string to become shorter and cross
below SQLITE_LIMIT_LENGTH threshold. This might fix an OSSFuzz problem
that we have been so far unable to reproduce.
FossilOrigin-Name:
c13d563925db12bc2c91ff9432050261e5bd39d960e2739777a66bf804df2e31
drh [Wed, 20 Feb 2019 19:20:16 +0000 (19:20 +0000)]
Changes to the unix VFS that allegedly enable it to build of Fuchsia.
We have no way of testing this.
FossilOrigin-Name:
be21a6416d47ff7db995006a0422b745044d9b8bb5bad3c53342aa6e2e524771
drh [Wed, 20 Feb 2019 19:06:16 +0000 (19:06 +0000)]
Disable unix-specific features of dbfuzz2 when compiling on windows.
FossilOrigin-Name:
af84774d1eebcfe6a61b564b4edf280ad3c3a93f39b7f70b6fcc56f7bbdfb9eb
drh [Wed, 20 Feb 2019 18:13:57 +0000 (18:13 +0000)]
Avoid the use of function pointers in columnName(), as function pointers
appear to be a source of consternation to LLVM.
FossilOrigin-Name:
c48f6f39c5f89a338fed7153553a27a5d882d4d8db8221e911b96e0dd57c53d9
drh [Wed, 20 Feb 2019 13:55:45 +0000 (13:55 +0000)]
Progress handler improvements:
(1) Invoke the callback after OP_Program opcodes
(2) Invoke the callback multiple times in a row to catch up after a
long run of no progress checks.
FossilOrigin-Name:
0c5db18d79366d9c23925ce3ed835500311f32a10aa7dbfdd09148b1e8a2507b
drh [Wed, 20 Feb 2019 12:52:47 +0000 (12:52 +0000)]
When an IN operator drives a query loop, mark it as "CODED" so that it
will not be used afterwards for a (pointless) membership test. This is
a better fix for ticket [
df46dfb631f75694 ] than the previous fix that is
now on a branch as it preserves the full optimization of
check-in [
e130319317e76119 ].
FossilOrigin-Name:
fa792714ae62fa980f1767acc6d622a6727ceb677870243c88548423795dcb5b
drh [Tue, 19 Feb 2019 20:29:05 +0000 (20:29 +0000)]
Enhance the xBestIndex method on delta_parse() to return SQLITE_CONSTRAINT if
no delta argument is supplied.
FossilOrigin-Name:
f16d127c3b4a735afae1fc236bcf90f31adff079c7d3a896f901d908ff8b8532
drh [Tue, 19 Feb 2019 20:19:51 +0000 (20:19 +0000)]
Add the delta_parse(DELTA) table-valued function to the fossildelta
extension.
FossilOrigin-Name:
d91fcc267bf1be795dfdb1fbfb40c2aea79ddff247a51d26462136c325b7a6d3
drh [Tue, 19 Feb 2019 18:39:16 +0000 (18:39 +0000)]
Add the fossildelta.c extension in ext/misc with implementations of the Fossil
delta functions.
FossilOrigin-Name:
b80cafa6f8a5c6ff1dc9efd2f670777ab131ace2df1eb431cedc8cfa901baf18
drh [Tue, 19 Feb 2019 17:45:31 +0000 (17:45 +0000)]
Fix a potential memory leak in RBU if the rbu_fossil_delta() SQL function is
misused. Misuse never happens in a working RBU system, so this is not a
particularly important fix.
FossilOrigin-Name:
12517d1b15da46bc90bd95bb9c161d7f2ecdd7f28b1b3a5ed4397939ef986061
drh [Tue, 19 Feb 2019 16:42:54 +0000 (16:42 +0000)]
Fix an assert() that might not be true if the database file is corrupt.
FossilOrigin-Name:
f2d400db4dbfb05e2540178ed3662f97f8c57a95f8129886c7081c35e53adf0d
drh [Tue, 19 Feb 2019 13:51:58 +0000 (13:51 +0000)]
New assert() to verify the TF_HasprimaryKey flag.
FossilOrigin-Name:
0abace8a7aecca01c8677d07f3ec1bafb289ceffe5bcd60284701a7bf813f415
drh [Tue, 19 Feb 2019 13:08:35 +0000 (13:08 +0000)]
Always use the symbolic name SQLITE_IDXTYPE_PRIMARYKEY rather than a hard-coded
magic number 2.
FossilOrigin-Name:
55d43adc894a6b1e0f77bf481dad6dd604a0dc0022e72bbf2e3037f97351971e
drh [Mon, 18 Feb 2019 12:16:03 +0000 (12:16 +0000)]
Fix an assert() that might not be true if the %_segdir table of FTS3 contains
corrupt entries.
FossilOrigin-Name:
a6509ca3dc2602c7d0376230ee63c1bb4c4066f007e77e9ac20d8eee966e5e13
drh [Sat, 16 Feb 2019 22:45:55 +0000 (22:45 +0000)]
Fix an assert() that might be false for a corrupt database.
FossilOrigin-Name:
0cfb888723fb8ff0763bbc23acb7d21a53f6d1c40661d8468248644281b29d85
drh [Thu, 14 Feb 2019 15:27:12 +0000 (15:27 +0000)]
Improved oversized cell detection when updating ptrmap pages in
balance_nonroot().
FossilOrigin-Name:
aa61435a4c3800f023788081c1342ad6a05a41449a424fa6c039d5ca46072256
drh [Tue, 12 Feb 2019 22:58:32 +0000 (22:58 +0000)]
Ensure that the nProgressLimit variable is always initialized in
sqlite3VdbeExec(), even if the routine jumps to its exit processing early.
FossilOrigin-Name:
167b91df77fff1a84791f6ab5f72239b90475475be690a838248119b6dd312f0
drh [Tue, 12 Feb 2019 21:04:33 +0000 (21:04 +0000)]
Enhancement the progress callback mechanism so that the progress callback
is always invoked at least once at the end of a prepared statement if the
opcode count has been exceeded. This makes the progress callback more
effective at limiting run times. This check-in also includes and unrelated
performance enhancement to OP_Column.
FossilOrigin-Name:
68cce272e7f7cbc0c319ee8b7ff674d652cb1e95e903d99d848c41dff2b5d304
drh [Tue, 12 Feb 2019 16:58:26 +0000 (16:58 +0000)]
Further performance improvements to btreeInitPage().
FossilOrigin-Name:
93ae382e97c23c90312739481e47ef7f9bc475a8382c063a2de2986c950c0aec
drh [Tue, 12 Feb 2019 15:51:36 +0000 (15:51 +0000)]
Increase the version number to 3.28.0 for the next release cycle.
FossilOrigin-Name:
6eb38c59a81d27b7c1f3edad84b27a1114df6f1607282b2be1b5de9c7decc512
drh [Tue, 12 Feb 2019 12:25:34 +0000 (12:25 +0000)]
Register the "vfsstat" virtual table immediately when loading the vfsstat.c
extension.
FossilOrigin-Name:
9bd92afd0cb0a958441e861c7006b77027125b1ceea0868958ec948b6b3c7bc9
drh [Tue, 12 Feb 2019 01:28:24 +0000 (01:28 +0000)]
drh [Tue, 12 Feb 2019 01:04:49 +0000 (01:04 +0000)]
Defer computing the number of bytes of free space on a btree page until that
value is actually needed.
FossilOrigin-Name:
177f5f40eabfcfd229ac7f291dfed9e9ee35762e86923a0f356915f389da177d
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
drh [Mon, 11 Feb 2019 22:50:01 +0000 (22:50 +0000)]
Do not invoke btreeComputeFreeSpace() when not necessary.
FossilOrigin-Name:
f11b0ed47402034378ded2c60b82841b81cd1319cdb72d1ef052faef29a5294d
drh [Mon, 11 Feb 2019 19:27:36 +0000 (19:27 +0000)]
Improvements to comments. No changes to code.
FossilOrigin-Name:
16eb0fc8f8cce51eaa5305ebc9f3bd8c8d935dd3ebebab6820e5629f9292eec2
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
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
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
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
dan [Mon, 11 Feb 2019 11:34:01 +0000 (11:34 +0000)]
Build and test fixes for SQLITE_OMIT_WINDOWFUNC builds.
FossilOrigin-Name:
8824115a9776e876a3677f0cb479e311ee65584d43872b37766a146afec72d8f
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
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
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
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
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
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
drh [Fri, 8 Feb 2019 17:28:20 +0000 (17:28 +0000)]
Further simplifications to sqlite3VdbeMemSetStr().
FossilOrigin-Name:
1d212957079a2caa30f3c9d80f43464781bc9634c2b5181a5814efbddae31711
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
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
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
drh [Thu, 7 Feb 2019 19:07:11 +0000 (19:07 +0000)]
Change VACUUM so that it preserves ROWID values.
FossilOrigin-Name:
49e5d11d463de078c2b8a963f5ed436210937e6dfddf06942132db9ec685bfd8
drh [Thu, 7 Feb 2019 17:02:52 +0000 (17:02 +0000)]
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
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
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
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
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
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
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
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
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
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
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
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
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
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
drh [Tue, 5 Feb 2019 19:48:46 +0000 (19:48 +0000)]
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
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
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
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
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
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
drh [Mon, 4 Feb 2019 19:50:44 +0000 (19:50 +0000)]
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
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
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
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
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
drh [Mon, 4 Feb 2019 14:53:18 +0000 (14:53 +0000)]
dan [Mon, 4 Feb 2019 14:00:20 +0000 (14:00 +0000)]
Fix another potential buffer overread in fts5.
FossilOrigin-Name:
14fba4cc5db2bc206f024bfa5dd82fffdbc7577162da2c3b15a91cc1c91f3846
dan [Mon, 4 Feb 2019 11:54:22 +0000 (11:54 +0000)]
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
drh [Sat, 2 Feb 2019 18:24:28 +0000 (18:24 +0000)]
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
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
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
mistachkin [Sat, 2 Feb 2019 01:27:45 +0000 (01:27 +0000)]
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
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
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
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
drh [Fri, 1 Feb 2019 14:54:18 +0000 (14:54 +0000)]
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
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
dan [Fri, 1 Feb 2019 13:34:00 +0000 (13:34 +0000)]
Fix another corrupt-database-handling problem in fts5.
FossilOrigin-Name:
9876ae1b802a449aacbbdd42778653edc19e29315dc627c23ab7493d6492c800
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
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
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
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
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
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
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
dan [Wed, 30 Jan 2019 18:47:35 +0000 (18:47 +0000)]
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
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
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
drh [Wed, 30 Jan 2019 14:01:43 +0000 (14:01 +0000)]
Enhancements to the index_usage utility program.
FossilOrigin-Name:
19c739b4a8a43d894e37a99fa34838f3e3fa1fe0d019aefbc33f1d38d76af1a4