]>
git.ipfire.org Git - thirdparty/sqlite.git/log
dan [Thu, 22 Apr 2021 17:40:28 +0000 (17:40 +0000)]
Add the sqlite3session_object_config() API. Current used to enable/disable collecting data for sqlite3session_changeset_size().
FossilOrigin-Name:
4d5fd2151e024d11289b6c4fbce2996d8d07b2b5a1c953ef895c237e79d3aa55
dan [Wed, 21 Apr 2021 20:52:17 +0000 (20:52 +0000)]
Add the experimental sqlite3session_changeset_size() API.
FossilOrigin-Name:
b5564a6fd54875db1de884fdc0e5eeabcd6aa5595ad03a8a60843503e830a2d8
drh [Wed, 21 Apr 2021 12:03:36 +0000 (12:03 +0000)]
Add recent dbsqlfuzz test cases to test/fuzzdata8.db.
FossilOrigin-Name:
6fe50dcc239d2d1fc2a38aa705f4c75cbe26b3e48d098537306d96d6a4005659
drh [Wed, 21 Apr 2021 11:58:45 +0000 (11:58 +0000)]
Initialize the key registers in the skip-scan optimization to NULL, in case
the query is run on a corrupt database that causes the initialization of the
key to be bypassed.
dbsqlfuzz
62fdf2bece00d24cac8a4edf2cf562e6eeac779d
FossilOrigin-Name:
8b54102a00852b72783b5b2f336c7a093adbdc8e1b94d46b7d315ae6e5d9476b
dan [Wed, 21 Apr 2021 11:32:22 +0000 (11:32 +0000)]
Fix a problem allowing SQL variables to be used expressions within the second and subsequent ON CONFLICT clauses of an UPSERT within a trigger.
FossilOrigin-Name:
2a28910a17dc5b3ce43062fdf879f9622f6ec2db19ed780fa7fe5cae781be7b7
drh [Tue, 20 Apr 2021 22:48:25 +0000 (22:48 +0000)]
Remove a testcase() that is no longer relevant due to the previous check-in.
FossilOrigin-Name:
ca70c8ac72c9fe3b92f8e63151229bebdccc769c5c4d603ad4f466dc4bcd11e0
drh [Tue, 20 Apr 2021 20:48:15 +0000 (20:48 +0000)]
More aggressive detection of database corruption in the rebuildPage() routine.
FossilOrigin-Name:
a18c65068b16eae3c0725356d7f4775774b23e248c700cef8c15f23459fba68f
dan [Tue, 20 Apr 2021 13:31:51 +0000 (13:31 +0000)]
Update an assert() in btree.c that may fail with a corrupt database.
FossilOrigin-Name:
d74bf88c5a027cf080a2892a3538fe5104952b5b3759a6eba1b1a98a75ddf5f4
drh [Tue, 20 Apr 2021 12:14:12 +0000 (12:14 +0000)]
In the sqlite3SelectDup() routine, do not do an incomplete duplication due
to OOM. This in turn requires several new NEVER() and ALWAYS() macros for
unreachable branches.
FossilOrigin-Name:
a61c0e6b78bd39f55464fafd257e68effded64995a66e8fa2d686e8c507ebe43
drh [Mon, 19 Apr 2021 20:36:13 +0000 (20:36 +0000)]
Improvement to check-in [
d564d8882ef18b55 ] to detect the OOM fault even
if it occurs deep down inside the duplicated expression.
FossilOrigin-Name:
3e863cd09355abd80c1053d6d4dabb55841f806e3c418f923d67d36bf8313cb0
drh [Mon, 19 Apr 2021 19:59:16 +0000 (19:59 +0000)]
An improvement to check-in [
1a341378ab24a509 ] that omits the new
Walker.bWalkWinDefn boolean (which is not always initialized) and uses
a special value for xSelectCallback2 instead.
FossilOrigin-Name:
bef2238de9550de84d4cd1c970a542b43db288d73d09a3c3ced7f98bb3188fd3
drh [Mon, 19 Apr 2021 18:03:52 +0000 (18:03 +0000)]
Ensure that a WITHOUT ROWID table does not have the .iPKey field set, even if
an OOM error occurs while parsing a schema in PRAGMA writable_schema=ON mode.
Add extra assert() statements to triple-check that this never happens.
dbsqlfuzz
803bb1f63d6f3bd6c14db568494d6e96be8f1ec9 .
FossilOrigin-Name:
41228350a620a7de1ee748a4e19a96749c4d39418853fe8b68c43cf401dbd7cd
dan [Mon, 19 Apr 2021 16:45:09 +0000 (16:45 +0000)]
Remove fts5 test functions fts5_expr(), fts5_expr_tcl(), fts5_isalnum() and fts5_fold() from release builds.
FossilOrigin-Name:
c68a6c6c898d2acd1f7032ff98f8f3f99eb0b37ffbc6ee88d0dd7badf55a0e0a
drh [Mon, 19 Apr 2021 15:05:27 +0000 (15:05 +0000)]
In the query flattener, avoid invalidating an expression if an OOM occurs.
This prevents problems in higher-level routines that might not check for
the OOM after processing a subquery.
dbsqlfuzz
fb70fa8602421f87673e0670b0712ff2b5240ea0
FossilOrigin-Name:
d564d8882ef18b55ebf93e838426b485281c7ebe3a9b321a2f984ed0f229cc25
dan [Sun, 18 Apr 2021 05:30:39 +0000 (05:30 +0000)]
Ensure that all records are updated by setting the OPFLAG_SAVEPOSITION flag when updating records as part of ALTER TABLE DROP COLUMN.
FossilOrigin-Name:
354a4db5cb769c6aed386f43ee26d7e42342e92f781eef100c09751dc5b51751
dan [Sat, 17 Apr 2021 20:13:53 +0000 (20:13 +0000)]
Remove a couple of NEVER() macros from the code for walking window lists.
FossilOrigin-Name:
4ec9ef4bcd12bd9ba5e1a2424f75479070d12c25f1272548c6cf3f89be826b8c
larrybr [Sat, 17 Apr 2021 20:04:40 +0000 (20:04 +0000)]
dan [Sat, 17 Apr 2021 19:59:14 +0000 (19:59 +0000)]
Do not run external_reader.test as part of permutation "journaltest", as it requires wal mode.
FossilOrigin-Name:
9f5f16cf093cd8b8c7649f664eaf2ad8128fd50e182720dbddf05a6d9227c037
larrybr [Sat, 17 Apr 2021 18:43:29 +0000 (18:43 +0000)]
Allow more time for perf tests when instrumented. Condition another on feature it needs.
FossilOrigin-Name:
f0dd9cf2d7045d3634294bcf2722d3d7b0a6c4c3ef713b0f7f54fbe31432027f
drh [Sat, 17 Apr 2021 18:39:39 +0000 (18:39 +0000)]
Add new dbsqlfuzz cases to test/fuzzdata8.db.
FossilOrigin-Name:
d18793e589a4ee7706e994a1f3d24ba7df190467d92fa6ac040258f4debc149d
dan [Sat, 17 Apr 2021 14:42:37 +0000 (14:42 +0000)]
Fix cases where code in expr.c was failing to handle OOM failures that occurred while processing sub-select expressions.
FossilOrigin-Name:
62efe2eee34fdb147cc456290576d8fc3801487867c78aadd4485f85468d9ffc
drh [Sat, 17 Apr 2021 13:46:23 +0000 (13:46 +0000)]
Ensure that variables are not used in the WINDOW clause of a query inside
of a trigger. dbsqlfuzz
d9cf66100064952b66951845dfab41de1c124611
FossilOrigin-Name:
1a341378ab24a5091e6cf03b9e957d11b2bfe5c711835e8c583785f8fa0125d3
larrybr [Fri, 16 Apr 2021 23:43:22 +0000 (23:43 +0000)]
Add geopoly to $::sqlite_options() and use it to pass more tests.
FossilOrigin-Name:
23da5016b66f3947cc902dbe2766ea9f5a00f85312a652b536ab51d657446ab7
drh [Fri, 16 Apr 2021 22:53:57 +0000 (22:53 +0000)]
Performance optimizations in the code generator, especially in name
resolution.
FossilOrigin-Name:
ab83a99899ceae931b43e0c4b3f8f8b83bc832f1568de5692c0d038c968f8a87
larrybr [Fri, 16 Apr 2021 21:29:07 +0000 (21:29 +0000)]
drh [Fri, 16 Apr 2021 19:25:47 +0000 (19:25 +0000)]
Add new dbsqlfuzz-generated cases to test/fuzzdata8.db.
FossilOrigin-Name:
1ac0a056a07895cc4ae62d01cbba5525402be3af3b8f97fd1dfaba2236ef912b
dan [Fri, 16 Apr 2021 17:09:58 +0000 (17:09 +0000)]
Fix another undefined behaviour in fts3 that could follow an OOM error.
FossilOrigin-Name:
fac3ff857c4abdb44f59849af80d93a5bd4b64f088e5164fb5ad0be8d14748b7
dan [Fri, 16 Apr 2021 16:55:28 +0000 (16:55 +0000)]
Avoid signed integer overflow when finding snippets in fts3 by using 64-bit integer offsets.
FossilOrigin-Name:
4cc09a872f627f4a2b94345bef07cd49c3ec3627f8d78c1eb091741cdb4ec0b3
drh [Fri, 16 Apr 2021 12:33:52 +0000 (12:33 +0000)]
Remove an ALWAYS() from a branch in sqlite3ExprAddCollateToken() which can
be false following an OOM.
dbsqlfuzz
9e8516bf1e786c84e520ae43141b75b7399f8618 .
FossilOrigin-Name:
6af4e6d054efd8445e1010aabd584f36e70dfad0de13bd0e2f1761cad4d9a7d6
drh [Fri, 16 Apr 2021 12:13:39 +0000 (12:13 +0000)]
Fix an assert() in whereLoopAddOr() that can be wrong if an OOM occurs in
an OR constraint on a virtual table if one of the terms of the OR is an IN
operator. dbsqlfuzz
5ee7350b40014f5a878c5d6e76913a2d619f5146
FossilOrigin-Name:
5cb40e53edcb1e54cde0e54c38a647144bc3158435df0161f95c89732de086e6
dan [Fri, 16 Apr 2021 11:25:37 +0000 (11:25 +0000)]
Fix an assert() in fts3 that might fail when handing corrupt records.
FossilOrigin-Name:
d0e2d6742f314f71562e404980aad20de6b17e0b04c08582c18bbc4fd0360751
drh [Fri, 16 Apr 2021 11:05:19 +0000 (11:05 +0000)]
Fix the comment on the implementation of the pi() SQL function. No changes
to code.
FossilOrigin-Name:
5620bd466eb10fd4daf51af9b88d8221f981dc0ceabfa84a0e1d5c817f635429
drh [Fri, 16 Apr 2021 01:03:16 +0000 (01:03 +0000)]
Do not invoke sqlite3ExprAffinity() if there is a possibility that the Expr
is incomplete due to a prior OOM.
dbsqlfuzz
b8a824706914488bd236da51118eb9174ceb870f
FossilOrigin-Name:
e8a1515b44380cc52aca1838814ca398012e4e9cf5728d40b404546e812a39b7
dan [Thu, 15 Apr 2021 19:09:19 +0000 (19:09 +0000)]
Fix a bad interaction between constant propagation and transitive term handling causing patterns like "WHERE unlikely(t1.x=t1.y) AND t1.y=?" to return non-matching rows.
FossilOrigin-Name:
2363a14ca723c0343fbe350f6c19787a7a47c2289fd9af136c97a451b53b5226
dan [Thu, 15 Apr 2021 13:26:29 +0000 (13:26 +0000)]
Add extra test case for OOM handling in where.c.
FossilOrigin-Name:
7163de3dea0445bf25dba47a54c50f35bb5c7edc7bdae9630b51c1ca970ec6cf
drh [Thu, 15 Apr 2021 12:56:44 +0000 (12:56 +0000)]
Make sure the WhereInfo.pExprMods list is properly cleared when existing
sqlite3WhereBegin() early due to an OOM fault.
dbsqlfuzz
1247a51318047aba42e7f6991dfa62577cb7a151 .
FossilOrigin-Name:
0e19af72d84f96245cb4a5cfc37232579b6f5fdebd525f8b6515a4f2cc84e273
dan [Wed, 14 Apr 2021 15:25:10 +0000 (15:25 +0000)]
Prevent an assert() from failing if sqlite3_blob_reopen() is called on a blob-handle that has already hit an SQLITE_CORRUPT error.
FossilOrigin-Name:
b5dc7aba036cfd6d09c68dd17608328063634ca99ff341f97bab2dc2a1f59b11
dan [Wed, 14 Apr 2021 12:11:39 +0000 (12:11 +0000)]
Fix a potential crash when using json_group_array() as a window function.
FossilOrigin-Name:
3c266690c753d093c2cb74138a46ed69276d85cd119d687a6858c84211e84eaf
drh [Wed, 14 Apr 2021 11:20:44 +0000 (11:20 +0000)]
Fix an assert() in the code generator for expressions so that it is valid
even after an OOM.
FossilOrigin-Name:
427e83eb583a4f63650912f078122e7373fe8c7ea11acfdab464d748b4235261
dan [Tue, 13 Apr 2021 17:45:36 +0000 (17:45 +0000)]
Fix an undefined signed integer overflow in fts5.
FossilOrigin-Name:
e6f0adb00da84561e686a8db83858c7fd6b008756dd1aef807ea68f878ca3db7
drh [Tue, 13 Apr 2021 13:48:31 +0000 (13:48 +0000)]
Do not leave a WITHOUT ROWID table without a primary key index structure
due to an OOM error. This prevents downstream troubles in the case of
PRAGMA writable_schema=ON.
dbsqlfuzz
69fb32cc82d59b4d790881566e3f6c727e616122
FossilOrigin-Name:
608b6644b932c4d0c26ab870322639deefde4606f9e335575f99995bc7ed08b5
drh [Tue, 13 Apr 2021 13:20:55 +0000 (13:20 +0000)]
The SQLITE_NoSchemaError flag should not apply to OOM errors while parsing the
schema.
FossilOrigin-Name:
9cc484ad1a42f0821e53be6df46b1811dc8059e5aaf2f6c3e667105a55893b97
drh [Tue, 13 Apr 2021 13:01:07 +0000 (13:01 +0000)]
Earlier detection empty_result_callbacks in sqlite3InitCallbac() to avoid
problems with corrupt schemas an writable_schema=ON.
dbsqlfuzz
ca4ca43bdb22eab9859de4979aec615af851e111 .
FossilOrigin-Name:
fb305fe077a0058861427f107957fcc3d2b1443cdd11a7f145df138ca3bb9f4e
drh [Tue, 13 Apr 2021 12:28:55 +0000 (12:28 +0000)]
In the rtreedepth() function, detect OOM when converting a zeroblob() on
input. dbsqlfuzz
ed23eda7cc3a8a054f85ea19d55c59ba2ca72744 .
FossilOrigin-Name:
69f843c8fa6e21500b5777169c3b394453ba818b4e32427428480dca5b4ed615
drh [Tue, 13 Apr 2021 01:12:32 +0000 (01:12 +0000)]
drh [Mon, 12 Apr 2021 23:18:18 +0000 (23:18 +0000)]
Fix a faulty assert() inside sqlite3ExprDup().
FossilOrigin-Name:
59812e7ef705226c801f95ec7f78cc931f9957ffb66715607d63874813b280cb
drh [Mon, 12 Apr 2021 22:39:46 +0000 (22:39 +0000)]
Fix an assert() in OP_ParseSchema so that it works even after an OOM.
FossilOrigin-Name:
79b883537910274518cadbda7b5088811f59287b9385fc28ab54d837d41b995a
drh [Mon, 12 Apr 2021 18:32:33 +0000 (18:32 +0000)]
Avoid taking the address of a NULL pointer following an OOM in FTS5. Doing
so is harmless in actual practice, but it technically UB so we want to
avoid it.
FossilOrigin-Name:
1cfcd9dceb56b5987e6900a36a0ec092f0e1b13a7e754b8c3d8efb943e5bcc66
drh [Mon, 12 Apr 2021 17:34:03 +0000 (17:34 +0000)]
Add an assert() to show that the SF_Resolved flag does not get set if
errors are being suppressed.
FossilOrigin-Name:
f455c5b0bda3d303f9269db37efaa8ff0b356622b2df0a7544f83bb334118180
dan [Mon, 12 Apr 2021 16:59:28 +0000 (16:59 +0000)]
Fix a segfault that could occur if the ORDER BY clause of a compound SELECT contains a sub-select that uses one or more window functions.
FossilOrigin-Name:
5ba15ebb34c3af85ef6c54bbb3acb57176d629cda83774881b2a6467e138e904
drh [Mon, 12 Apr 2021 12:58:55 +0000 (12:58 +0000)]
Fix the display of SrcList in the sqlite3TreeView debugging routines.
FossilOrigin-Name:
28ecb3810b40ca58c2e04a752bbc2234c64c27185aef2cb3fe7c933082dc2578
dan [Mon, 12 Apr 2021 12:02:49 +0000 (12:02 +0000)]
Avoid an assert() failure when a compound scalar sub-select is, due to a "WHERE (sub-select) AND (... OR ...)" clause, coded twice by the code generator.
FossilOrigin-Name:
a4e3f13329332f91a250bc18459fd4100990a1ac0516f8a0a6b21ff117db9795
drh [Mon, 12 Apr 2021 11:51:32 +0000 (11:51 +0000)]
drh [Sun, 11 Apr 2021 00:11:56 +0000 (00:11 +0000)]
Add NEVER() to a branch that is no longer reachable due to
check-in [
a1d823f6879ce1ac ].
FossilOrigin-Name:
5fda21feda2448de880088f4f53f20875ef02b47172c48091638b80173f983d7
dan [Sat, 10 Apr 2021 20:27:06 +0000 (20:27 +0000)]
Avoid an uninitialized-memory valgrind error by tightening up corruption
detection in internal routine defragmentPage().
FossilOrigin-Name:
8096f7aee497f852b1404e13cdc8bafb54fcf6c540cd58addbc01eb2e27011b3
drh [Sat, 10 Apr 2021 20:21:28 +0000 (20:21 +0000)]
Add NEVER() to a branch that became unreachable with
check-in [
58f36af2271517ab ].
FossilOrigin-Name:
e07ce463967521ab53463b21f80c8f90c337c15c250f69c3fccc1305f54f32df
drh [Sat, 10 Apr 2021 15:34:30 +0000 (15:34 +0000)]
Avoid invoking sqlite3Atoi64() will a null pointer following an error
from ExpandBlob().
FossilOrigin-Name:
780412f2ca7576ce90861b2bd499f953504125b200e9aeae685def4a943f9d2b
dan [Sat, 10 Apr 2021 14:49:45 +0000 (14:49 +0000)]
Fix a problem with handling expressions like "(col IS NULL AND <expr1>) OR col == NULL" in WHERE clauses.
FossilOrigin-Name:
40852ca8e215e51f63652a67817361b835b6fbbff7f66af50089af91007505f1
drh [Sat, 10 Apr 2021 13:37:04 +0000 (13:37 +0000)]
Refactor NameContext.nErr into nNcErr to avoid confusion with Parse.nErr.
Do not abandon sqlite3ResolveExprList() on nNcErr if nErr is still zero
as we might have hit a problem with ORDER BY resolution that should be a
suppressed error. dbsqlfuzz
41b9dad40919d3549ca7e52d893da81a6dded4ad
FossilOrigin-Name:
7d674970741bd9b228b818c701c1ae010b90cc287a4c60a872f18b66353d164d
drh [Fri, 9 Apr 2021 22:34:59 +0000 (22:34 +0000)]
Remove a NEVER() in a corruption detection conditional in allocatePage().
dbsqlfuzz
9c61c33802600b2b01dfb09b0386ceb4ade02a19
FossilOrigin-Name:
c174f5d32b8c6bbad102065b2d5acae70ddb153f863a2842da836cf7db3f683f
drh [Fri, 9 Apr 2021 22:20:20 +0000 (22:20 +0000)]
Remove an ALWAYS() that is actually reachable following an OOM on an
UPDATE FROM of a virtual table.
dbsqlfuzz
aa03237ef7c4a028c7cdaf8bbcde2b62e2bcd36e
FossilOrigin-Name:
49eac38926b3391b185d20fae6588c213f7f020f028173d4a4aa3c7a62b94140
dan [Fri, 9 Apr 2021 20:50:40 +0000 (20:50 +0000)]
Have the VFS in memdb.c return SQLITE_IOERR_NOMEM instead of SQLITE_NOMEM when an OOM error is encountered. This is required to get the pager module to handle such OOM errors correctly in some cases.
FossilOrigin-Name:
09c96b4c026746f285a8aef5199bd247ecca590095ee42dde4f4dfa4996ce0bd
dan [Thu, 8 Apr 2021 20:29:12 +0000 (20:29 +0000)]
Fix a use-after-free error that could occur when processing "SELECT aggregate(DISTINCT <expr>)..." queries.
FossilOrigin-Name:
0e4789860b81c31d3a6d1f9f8340042ce1d08a82bf6119c783fcab85180b1b63
drh [Thu, 8 Apr 2021 19:56:58 +0000 (19:56 +0000)]
Remove an ALWAYS() that might be false under very unusual circumstances.
dbsqlfuzz
300261f469ace7ecc57ed32ea7b0de3ea9d7dbf . Test case in TH3.
FossilOrigin-Name:
466f508973e7adc983a4c9bd7c86b4d9269e3b990183fc7f95a50fe72b832ad0
dan [Thu, 8 Apr 2021 19:39:00 +0000 (19:39 +0000)]
Handle the corruption fixed by the previous commit in a different way so as to also fix dbsqlfuzz crash
753de0a0ac5b25b18f1e4d41e650d3333cdc270c .
FossilOrigin-Name:
cb27ce25095ab9b5acbe4bf010c7f6d8a71191c2f79b3bf3e63d8655b4fe0769
dan [Thu, 8 Apr 2021 15:19:46 +0000 (15:19 +0000)]
Handle a special case of corruption that can present if "PRAGMA writable_schema=1" is set. Fix for dbsqlfuzz test case
6229ad63de49e3ba0630aaf0058868f36008bcca .
FossilOrigin-Name:
58f36af2271517abafa9f4a46f2a5f97e66c001675c17868282197d599603d1b
drh [Thu, 8 Apr 2021 14:15:26 +0000 (14:15 +0000)]
drh [Thu, 8 Apr 2021 13:52:11 +0000 (13:52 +0000)]
drh [Thu, 8 Apr 2021 13:41:20 +0000 (13:41 +0000)]
drh [Wed, 7 Apr 2021 18:17:53 +0000 (18:17 +0000)]
Do not allow the use of rowid for views and subqueries unless compiled
with -DSQLITE_ALLOW_ROWID_IN_VIEW.
FossilOrigin-Name:
a2ddb89b206c13876d34c5f9e3db41cda72d6eb3fea31ffa8cc6daa1e1580e16
drh [Wed, 7 Apr 2021 18:08:23 +0000 (18:08 +0000)]
Add the SQLITE_ALLOW_ROWID_IN_VIEW option to omitttest.tcl.
FossilOrigin-Name:
83b8e4c281c5295950fbf2330a45193b73054b0749b51a6c2c4fbc79a7a5f82d
drh [Wed, 7 Apr 2021 15:45:01 +0000 (15:45 +0000)]
Also prohibit the use of rowid from a subquery. Add the
SQLITE_ALLOW_ROWID_IN_VIEW compile-time option to restore legacy behavior
in case somebody actually needs it.
FossilOrigin-Name:
14b1d56ef84b0e62b7f9c4e5f7f985ca10e770c8db59f54004ad892c2a2dcbfb
drh [Wed, 7 Apr 2021 13:20:34 +0000 (13:20 +0000)]
Unnecessary local variable initialization to fix a harmless compiler warning.
FossilOrigin-Name:
c22e47c77a35ebcd1fdfc0caea9119dd5e24e76d5fdd0f2ffbb58205a7242297
drh [Wed, 7 Apr 2021 12:59:09 +0000 (12:59 +0000)]
In FTS3, if the xBegin method fails to start a transaction due to an OOM
error, then make sure that the virtual table is left in a consistent state.
dbsqlfuzz
85ef48423fda4eef79a551654445d8ef3537a590 .
FossilOrigin-Name:
dd553578333f49950a197fe894d02e08cce011c9ae1a7270604186af204dcf6d
drh [Wed, 7 Apr 2021 12:36:58 +0000 (12:36 +0000)]
Fix an assert in the automatic-index constructor that can be false following
an OOM error. dbsqlfuzz
ee04d66c627ed5b5301e0ce09e24db47e0f1544e .
FossilOrigin-Name:
cc6463fe6d23febeea5171f9a1bcb1e5f980f7f44b7e85022d5fd8662b471160
drh [Wed, 7 Apr 2021 12:21:35 +0000 (12:21 +0000)]
Earlier detection of page 1 on the freelist (which is impossible) and
reporting of that as database corruption.
dbsqlfuzz
6fe6c504b320be5e3eed66896cb0db28bfb38a93 .
FossilOrigin-Name:
b1bf0d987578160f002035ff41ec7c82011288f1c0449414a4b3da39b20f871c
dan [Wed, 7 Apr 2021 12:02:30 +0000 (12:02 +0000)]
Fix a possible crash that could occur when executing a drop column operation on a corrupt database schema.
FossilOrigin-Name:
c337849416c588142a5066db3feb1716b7a9d02536bdb73cc9da7d162c0d5494
larrybr [Wed, 7 Apr 2021 09:31:32 +0000 (09:31 +0000)]
Fix seg-fault upon appendvfs attempt to open non-existent file.
FossilOrigin-Name:
04f6439f4d9b9b1f717c3aa243a93585df7e7844c216fab5d15bebb050ab00b1
drh [Tue, 6 Apr 2021 23:29:41 +0000 (23:29 +0000)]
Do not apply the optimization that omits DISTINCT if all result terms are
part of a UNIQUE index if the index is also a partial index.
Fix for the bug reported by
[forum:/forumpost/
66954e9ece |forum post
66954e9ece ].
FossilOrigin-Name:
c2f940b02883e165172a4ca21c7095ffbef84ddc5367853dfeca93fda20d6056
drh [Tue, 6 Apr 2021 22:56:28 +0000 (22:56 +0000)]
dan [Tue, 6 Apr 2021 21:20:39 +0000 (21:20 +0000)]
Modify the drop column code to handle WITHOUT ROWID tables for which a single column appears more than once in the primary key.
FossilOrigin-Name:
e0d2507021c5a04016c442f954b542c0920678737ae7c710eb8ac50d6337db1c
drh [Tue, 6 Apr 2021 19:13:44 +0000 (19:13 +0000)]
Raise an error if a query tries to access the "rowid" of a view, as views
do not have rowids.
FossilOrigin-Name:
7a73c6166bb1d9f2e2de280fa4e973db152caaf6cc76b8e6a92cfe9560ddc224
dan [Tue, 6 Apr 2021 18:40:27 +0000 (18:40 +0000)]
Restructure a loop in window.c to avoid hitting an assert() following an OOM. dbsqlfuzz test case
6ef74a9659de87e9be3d8694ad062c448aa7ef1d .
FossilOrigin-Name:
887c19a15ba60a5dc375dda7e289d476ba24d4adb38086a013df9709b88f32a7
dan [Tue, 6 Apr 2021 18:02:17 +0000 (18:02 +0000)]
Update an assert statement that could fail when using "PRAGMA writable_schema = 1" to access a database with a corrupt schema.
FossilOrigin-Name:
55cad6f628a4313c6652b36474c3397f097ac5c2503ae94605c030a54dc40916
dan [Tue, 6 Apr 2021 17:51:18 +0000 (17:51 +0000)]
Fix issue with failing --enable-debug --enable-fts5 build.
FossilOrigin-Name:
e7491acc0c93b7b0b5a27130d956bb23f876b90ced11cdd416a86727af076ee1
drh [Tue, 6 Apr 2021 16:55:30 +0000 (16:55 +0000)]
dan [Tue, 6 Apr 2021 16:42:05 +0000 (16:42 +0000)]
Silence an msan warning triggered by a corrupt database by initializing a local variable in sqlite3Insert().
FossilOrigin-Name:
f64deecee1691cf21b4f3d27d8490ecc8eae65cf26df7a22f8d15317f0cecd5b
dan [Tue, 6 Apr 2021 16:16:15 +0000 (16:16 +0000)]
Avoid a use-after-free that may occur when accessing a corrupt database schema with "PRAGMA writable_schema = 1" set.
FossilOrigin-Name:
a1d823f6879ce1acfd251de35ffdfdf5ce7d8e0552205c2c4a1fee179e3a6972
dan [Tue, 6 Apr 2021 14:46:50 +0000 (14:46 +0000)]
Remove some test routines from release builds of fts5.
FossilOrigin-Name:
3088bf15ca53fac3bad94f241e648836631b6d801d42837c238ff27d85074ca4
dan [Tue, 6 Apr 2021 13:57:23 +0000 (13:57 +0000)]
Fix incorrect RETURNING test cases in wherelimit.test
FossilOrigin-Name:
20d21ff9be558c5f7773efa4efba7d36752f56c9a0caf1fd9c601aab5562dcef
drh [Tue, 6 Apr 2021 13:56:46 +0000 (13:56 +0000)]
dan [Tue, 6 Apr 2021 13:53:10 +0000 (13:53 +0000)]
Handle "RETURNING rowid" clauses attached to INSERTs on views without causing an assert() to fail. Fixes dbsqlfuzz crash
0081f863d7b2002045ac2361879fc80dfebb98f1 .
FossilOrigin-Name:
9c5b7386d013a7f22a93c69722c4648e2ab60eef180f48b5470bfea6fa74b3da
drh [Tue, 6 Apr 2021 13:03:06 +0000 (13:03 +0000)]
Further improvements (subsequent to [
d91450847a3a3a72 ]) to handling of attempts
to delete a journal using the memdb VFS.
dbsqlfuzz
ac61dab357279a6a531de067f040e9a4828d2df0 .
FossilOrigin-Name:
a0839406426a0d8ec52cc3116ea7d8b582344b44f3f8c9365bbf5187370c3386
drh [Tue, 6 Apr 2021 12:50:24 +0000 (12:50 +0000)]
drh [Mon, 5 Apr 2021 22:42:15 +0000 (22:42 +0000)]
Relax an assertion on the sqlite3WhereEnd() routine after dbsqlfuzz found
a counter-example.
FossilOrigin-Name:
e6b591e76523034c41884b39d71d4b721f1df709bdafd842e2d4b4084c158ec0
drh [Mon, 5 Apr 2021 22:30:56 +0000 (22:30 +0000)]
Add a missing CORRUPT_DB to an assert in the OP_ResultRow opcode.
FossilOrigin-Name:
82f92d79e1901911b0ce57d0aa30d462847748159443c7db8af16e6b37e8212c
drh [Mon, 5 Apr 2021 19:23:18 +0000 (19:23 +0000)]
Adjust the README.md file so that build instructions work for Fossil version
2.12 and later. [forum:/forumpost/
51f28bb701 |Forum post
51f28bb701 ].
FossilOrigin-Name:
51f87adc7f90935484eadad82f751f1df8c1607d463dae9589a71aeda2184b3a
dan [Mon, 5 Apr 2021 19:05:18 +0000 (19:05 +0000)]
Do not allow floating point rounding errors to cause a window function xInverse() function to be invoked before the corresponding xStep() call.
FossilOrigin-Name:
7a19fed4f222bc6c20e13a1367c8235916d21ba5e6f5a31cd26842efe748e744
drh [Mon, 5 Apr 2021 17:50:38 +0000 (17:50 +0000)]
Fix an assert() that can be false when doing an incremental vacuum on a
corrupt database file. dbsqlfuzz
cced0668cfd4da4eb2382cb9dd26c17c64aaff76 .
FossilOrigin-Name:
15b801016fa204b8e4b7c89e236adb73dd57687959d825664de5097370b24030
dan [Mon, 5 Apr 2021 16:20:59 +0000 (16:20 +0000)]
Avoid coding unindexed WHERE constraints if an equivalent transitive term has already been coded by an outer loop.
FossilOrigin-Name:
644bb77f8bb2c3499db7c280440c92fd2649a98ce714ae0d5d690eabfdc04326