]>
git.ipfire.org Git - thirdparty/sqlite.git/log
drh [Thu, 29 Apr 2021 13:37:36 +0000 (13:37 +0000)]
Fix harmless compiler warnings.
See [forum:/forumpost/
256140e470 |forum post
256140e470 ].
FossilOrigin-Name:
1b8da7924cc78710ae4bbe12b57140fdaeae5efb0e6ac10073ae9c98b7f8d7a4
drh [Thu, 29 Apr 2021 10:48:50 +0000 (10:48 +0000)]
Update test/fuzzdata8.db with recent dbsqlfuzz finds.
FossilOrigin-Name:
bce2ea393a872b5b70ef3b9cedce3d406725dcc56d8800ee4f7ec29562cc3f9b
drh [Wed, 28 Apr 2021 17:37:26 +0000 (17:37 +0000)]
Ignore the TEMP or TEMPORARY keyword on CREATE statements which parsing
the schema out of an existing database file. Those keywords should never be
there. This change simply adds robustness in case a legacy or damaged database
is seen.
FossilOrigin-Name:
65ec39f0f092fe29e1d4e9e96cf07a73d2ef7ce2c41b6f1cd3ab23546ada0e67
drh [Wed, 28 Apr 2021 15:43:36 +0000 (15:43 +0000)]
drh [Tue, 27 Apr 2021 17:18:10 +0000 (17:18 +0000)]
Further improvements to the handling of RETURNING clauses on changes
to TEMP tables with triggers.
dbsqlfuzz
683913e98f54fe4f14e8dd11a48011f73bdca58d
FossilOrigin-Name:
ff3538ae37a02f4f36a15cddd1245171e724aac9c84b2e576980fd3806302775
drh [Tue, 27 Apr 2021 13:04:18 +0000 (13:04 +0000)]
RETURNING bug fix: Correctly deal with RETURNING statements on changes to
TEMP tables that also have triggers.
dbsqlfuzz
78b9400770ef8cc7d9427dfba26f4fcf46ea7dc2
FossilOrigin-Name:
d0b15eccbfe1e50c3daf7b2fd4769a52bba35d553b07e462ca3f5f22df6742fd
dan [Tue, 27 Apr 2021 11:28:57 +0000 (11:28 +0000)]
Fix a segfault that could occur when querying a corrupt data structures with an fts5token table.
FossilOrigin-Name:
cbedfa05501f3eb9750fb21e2ab8516f8f14c479c847f454e52572af278aab71
drh [Tue, 27 Apr 2021 00:05:03 +0000 (00:05 +0000)]
drh [Mon, 26 Apr 2021 23:57:02 +0000 (23:57 +0000)]
Improved robustness of the "showdb" debugging program when it is parsing
corrupt database files.
FossilOrigin-Name:
3eabac2ee50fd70b22a927d3d2934718a15e1f666d8d271b854579156c8b01de
drh [Mon, 26 Apr 2021 22:30:49 +0000 (22:30 +0000)]
New dbsqlfuzz cases added to test/fuzzdata8.db.
FossilOrigin-Name:
88d20500c516fe89ad1cd42f7366ca190c3790f911f11ab332b86b675f5f69ba
drh [Mon, 26 Apr 2021 21:23:01 +0000 (21:23 +0000)]
Fix the [/info/
df1d6482f9e92daf |UNION ALL flattener optimization] so that it
works better with recursive CTEs.
dbsqlfuzz
88ed5c66789fced139d148aed823cba7c0926dd7
FossilOrigin-Name:
f80d7bb2c305c1dd4658767660b33259032c048a91f18c654a6bda7332c54a0c
drh [Mon, 26 Apr 2021 21:00:51 +0000 (21:00 +0000)]
Add ALWAYS() to branches that are no longer reachable due to recent
enhancements.
FossilOrigin-Name:
63c50fbdeed831ba450d1dce67e968a7daa2b69ac1270eb271fb1e1873d4a07e
larrybr [Mon, 26 Apr 2021 20:18:08 +0000 (20:18 +0000)]
dan [Mon, 26 Apr 2021 15:32:36 +0000 (15:32 +0000)]
Fix a problem that could cause a crash in sqlite3BtreeDelete() when operating on a corrupt database file.
FossilOrigin-Name:
6c6334660dfe81cc33a14b87b25d748b1c98b0702b7bc6db2e3ced16dc992740
drh [Mon, 26 Apr 2021 15:28:06 +0000 (15:28 +0000)]
drh [Mon, 26 Apr 2021 14:32:48 +0000 (14:32 +0000)]
When doing the optimization that attempts to avoid sorting on a
GROUP BY, do not assume that the values in an index on an expression are
non-NULL. Bug discovered by Wang Ke's fuzzer and reported at
[forum:/forumpost/
74330094d8 |forum post
74330094d8 ].
FossilOrigin-Name:
7178dc3a32c3a4a33e437fd5026f6f72e4809ceb7d2cd12a25a74b80d5c95d33
dan [Mon, 26 Apr 2021 14:09:48 +0000 (14:09 +0000)]
Do not initialize eponymous virtual tables when parsing the schema. This can happen if the db is corrupt.
FossilOrigin-Name:
cb8c41aa20bb351c4c712ed7a3617187ceeb0905ede1e6f561bc1d89f31c95ea
larrybr [Sun, 25 Apr 2021 23:13:04 +0000 (23:13 +0000)]
drh [Sat, 24 Apr 2021 23:40:05 +0000 (23:40 +0000)]
drh [Sat, 24 Apr 2021 12:24:08 +0000 (12:24 +0000)]
Treat byte-order marks (BOMs) at the start of a token as whitespace.
This enhancement is inspired by
[forum:/forumpost/
ed8f696a20 |forum post
ed8f696a20 ].
FossilOrigin-Name:
3d55c21c167631f42d155aadec544e629bd078de9992aa5a74694d08bc52052b
drh [Sat, 24 Apr 2021 12:20:10 +0000 (12:20 +0000)]
Fix testcase altertab-25.1 due to check-in [
c7909e8e0d0577c6 ] disallowing
ALTER TABLE on eponymous virtual tables.
FossilOrigin-Name:
32255e39cbde65492d88177464cee9e10cb20cf3105208416be131e2c89b63e1
drh [Fri, 23 Apr 2021 13:57:53 +0000 (13:57 +0000)]
Fix harmless compiler warnings in fuzzcheck.
FossilOrigin-Name:
e7b4ffecc610c494ebd506977402ec48cc799780f96c6293c0ccf27697160aa1
drh [Fri, 23 Apr 2021 12:58:16 +0000 (12:58 +0000)]
Enhance the --load-dbsql and related options of fuzzcheck so that if the
argument is a single - then filenames are read from standard input.
FossilOrigin-Name:
e1548802b6de7037baf388d27a7f3658abafe07b6f48d5ec97e5f644303592d8
drh [Fri, 23 Apr 2021 12:16:16 +0000 (12:16 +0000)]
Give a better final output line for the --spinner option on fuzzcheck.
FossilOrigin-Name:
93729614e21ee674b83b0d2babb71bb758f1a2ec55bf9bda057fb7739f2e14e0
drh [Fri, 23 Apr 2021 11:50:23 +0000 (11:50 +0000)]
New dbsqlfuzz cases added to test/fuzzdata8.db.
FossilOrigin-Name:
8da88508932e475c8c6af1553268ff02e3e013b78ccc94b14532ec928fc62537
dan [Fri, 23 Apr 2021 11:37:01 +0000 (11:37 +0000)]
Fix an assert() in fts5_index.c that may fail if the database records are corrupt.
FossilOrigin-Name:
dfadb96edfef1d49e48a659264b9eb8d7f98d95d159d95c92c30dd4ba6c6e739
drh [Fri, 23 Apr 2021 00:59:38 +0000 (00:59 +0000)]
drh [Thu, 22 Apr 2021 20:01:02 +0000 (20:01 +0000)]
Change a memcpy() into a memmove() to prevent a warning about overlapping
regions passed to memcpy() in case of some obscure and unlikely database
corruption.
FossilOrigin-Name:
bab132cbd18a529389a0315e60f30ccf1b565823116e0ec9b4f7684db1914c80
drh [Thu, 22 Apr 2021 19:34:31 +0000 (19:34 +0000)]
Fix harmless compiler warnings of unused function parameters in FTS5.
FossilOrigin-Name:
14273915979f8fbf80111e795b5511a6ee24638896b9d434d6ccf4bf7f7a7f62
dan [Thu, 22 Apr 2021 18:52:36 +0000 (18:52 +0000)]
Further tweaks for comments in sqlite3session.h.
FossilOrigin-Name:
553ada28f356d773c145b502163d766285e73fd4f64dc05f98e3e43ade806331
dan [Thu, 22 Apr 2021 18:39:02 +0000 (18:39 +0000)]
Change to comments in sqlite3session.h. No changes to code.
FossilOrigin-Name:
353ebb71c4113a35a92011c72f9c1d6c56f3bf681d94426a6a73e40f219ff2f4
drh [Thu, 22 Apr 2021 18:02:48 +0000 (18:02 +0000)]
Raise an error on an attempt to rename an eponymous virtual table.
FossilOrigin-Name:
c7909e8e0d0577c6109f13c0b14fb565239aae8af8963d659f363e124f3437fc
dan [Thu, 22 Apr 2021 17:55:42 +0000 (17:55 +0000)]
Add the experimental sqlite3session_changeset_size() API.
FossilOrigin-Name:
3de544d495fee553d95fde3fb656745d633138115d25ed39760a1ea7c8c3fae6
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
drh [Thu, 22 Apr 2021 16:54:34 +0000 (16:54 +0000)]
drh [Thu, 22 Apr 2021 14:43:16 +0000 (14:43 +0000)]
Fix the date/time translation logic in the zipfile extension so that it
works with boundary cases. See
[forum:/forumpost/
d82289d69f |forum post
d82289d69f ] for the trouble report.
FossilOrigin-Name:
c8de5f061359c174e143e5e81ade8aa9b7d71ba57287459cf0f4f2c94459c345
drh [Thu, 22 Apr 2021 13:59:54 +0000 (13:59 +0000)]
Ensure that the typedefs for specific-length integers in zipfile.c are
correct.
FossilOrigin-Name:
f1f2a49007e938ea7a00dda6f8898b1cd38525c0de1e1cac00a7aebcd7b625f5
drh [Thu, 22 Apr 2021 12:38:30 +0000 (12:38 +0000)]
In the whereLoopXfer() routine, ensure that the destination is fully
initialized even if an OOM error occurs.
FossilOrigin-Name:
c4258708c08c5b1956052f9febbf22c1e94c8352a25059063746921d2cc373b7
drh [Wed, 21 Apr 2021 23:13:26 +0000 (23:13 +0000)]
The new OP_Null opcode from check-in [
8b54102a00852b72 ] was not coded
correctly. This check-in attempts to fix that.
FossilOrigin-Name:
02af30aab24878c4382a8863512b816889400104549b51df6a632767fee48d04
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