]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
4 years agoAdjust a VDBE coverage macros due to the enhancement at [506333742103c1f4].
drh [Wed, 28 Apr 2021 15:43:36 +0000 (15:43 +0000)] 
Adjust a VDBE coverage macros due to the enhancement at [506333742103c1f4].

FossilOrigin-Name: daed59b4f96a6899d2404274ad985be3f22f407c1502b3f8ffd7977441a9fe9a

4 years agoFurther improvements to the handling of RETURNING clauses on changes
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

4 years agoRETURNING bug fix: Correctly deal with RETURNING statements on changes to
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

4 years agoFix a segfault that could occur when querying a corrupt data structures with an fts5t...
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

4 years agoBetter error messages on showdb.
drh [Tue, 27 Apr 2021 00:05:03 +0000 (00:05 +0000)] 
Better error messages on showdb.

FossilOrigin-Name: 7e18e114b245d17aa259ea9ab42752ccc9ad5303bbac8d8e46928dd10319f545

4 years agoImproved robustness of the "showdb" debugging program when it is parsing
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

4 years agoNew dbsqlfuzz cases added to test/fuzzdata8.db.
drh [Mon, 26 Apr 2021 22:30:49 +0000 (22:30 +0000)] 
New dbsqlfuzz cases added to test/fuzzdata8.db.

FossilOrigin-Name: 88d20500c516fe89ad1cd42f7366ca190c3790f911f11ab332b86b675f5f69ba

4 years agoFix the [/info/df1d6482f9e92daf|UNION ALL flattener optimization] so that it
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

4 years agoAdd ALWAYS() to branches that are no longer reachable due to recent
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

4 years agorefix altertab.test
larrybr [Mon, 26 Apr 2021 20:18:08 +0000 (20:18 +0000)] 
refix altertab.test

FossilOrigin-Name: db032156932fb0dcae5ffb7cbdfb711079daa595713fcb254f09f8ef90c81d95

4 years agoFix a problem that could cause a crash in sqlite3BtreeDelete() when operating on...
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

4 years agoMore aggressive detection of OOM errors in resolveAlias().
drh [Mon, 26 Apr 2021 15:28:06 +0000 (15:28 +0000)] 
More aggressive detection of OOM errors in resolveAlias().
dbsqlfuzz 7f96832c2ef7ee472022ed805b064e55e41094b2

FossilOrigin-Name: e99faf4f82746761c389e24db1b00ee94b9f849e7bcb29517fa0ca10290afc41

4 years agoWhen doing the optimization that attempts to avoid sorting on a
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

4 years agoDo not initialize eponymous virtual tables when parsing the schema. This can happen...
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

4 years agoSkip test when no JSON.
larrybr [Sun, 25 Apr 2021 23:13:04 +0000 (23:13 +0000)] 
Skip test when no JSON.

FossilOrigin-Name: 6fcb2438f88a70ed67e19103bfa263a6c98b06962207f153559c9516d8c7b5d5

4 years agoMake window range queries more robust against corrupt database files.
drh [Sat, 24 Apr 2021 23:40:05 +0000 (23:40 +0000)] 
Make window range queries more robust against corrupt database files.
dbsqlfuzz f22df3a7b2aab0937a415484514fc2f68a293c99.

FossilOrigin-Name: 506333742103c1f440db5da819a36f3b518f7b49e94a7b74419b02bbcadc5a78

4 years agoTreat byte-order marks (BOMs) at the start of a token as whitespace.
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

4 years agoFix testcase altertab-25.1 due to check-in [c7909e8e0d0577c6] disallowing
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

4 years agoFix harmless compiler warnings in fuzzcheck.
drh [Fri, 23 Apr 2021 13:57:53 +0000 (13:57 +0000)] 
Fix harmless compiler warnings in fuzzcheck.

FossilOrigin-Name: e7b4ffecc610c494ebd506977402ec48cc799780f96c6293c0ccf27697160aa1

4 years agoEnhance the --load-dbsql and related options of fuzzcheck so that if the
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

4 years agoGive a better final output line for the --spinner option on fuzzcheck.
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

4 years agoNew dbsqlfuzz cases added to test/fuzzdata8.db.
drh [Fri, 23 Apr 2021 11:50:23 +0000 (11:50 +0000)] 
New dbsqlfuzz cases added to test/fuzzdata8.db.

FossilOrigin-Name: 8da88508932e475c8c6af1553268ff02e3e013b78ccc94b14532ec928fc62537

4 years agoFix an assert() in fts5_index.c that may fail if the database records are corrupt.
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

4 years agoImproved OOM detection in sqlite3ExprCheckIN().
drh [Fri, 23 Apr 2021 00:59:38 +0000 (00:59 +0000)] 
Improved OOM detection in sqlite3ExprCheckIN().
dbsqlfuzz 46ae2d8f473ac672f3042cc14ab67aeab9ffa6c2

FossilOrigin-Name: fac12115a994a1b4347586e68faf38895ee9cb588eaa84c6f71cf9afd4c488b4

4 years agoChange a memcpy() into a memmove() to prevent a warning about overlapping
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

4 years agoFix harmless compiler warnings of unused function parameters in FTS5.
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

4 years agoFurther tweaks for comments in sqlite3session.h.
dan [Thu, 22 Apr 2021 18:52:36 +0000 (18:52 +0000)] 
Further tweaks for comments in sqlite3session.h.

FossilOrigin-Name: 553ada28f356d773c145b502163d766285e73fd4f64dc05f98e3e43ade806331

4 years agoChange to comments in sqlite3session.h. No changes to code.
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

4 years agoRaise an error on an attempt to rename an eponymous virtual table.
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

4 years agoAdd the experimental sqlite3session_changeset_size() API.
dan [Thu, 22 Apr 2021 17:55:42 +0000 (17:55 +0000)] 
Add the experimental sqlite3session_changeset_size() API.

FossilOrigin-Name: 3de544d495fee553d95fde3fb656745d633138115d25ed39760a1ea7c8c3fae6

4 years agoAdd the sqlite3session_object_config() API. Current used to enable/disable collecting... session-changeset-size
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

4 years agoImproved handling of errors in ALTER TABLE RENAME.
drh [Thu, 22 Apr 2021 16:54:34 +0000 (16:54 +0000)] 
Improved handling of errors in ALTER TABLE RENAME.
dbsqlfuzz 3e3e2e076e53d02288f80af41a11143a6ddf8c88

FossilOrigin-Name: 9c7a449f52a391506ebf4a8efa4ff27e6e97bd8da4b300a5c0dd942a209fe474

4 years agoFix the date/time translation logic in the zipfile extension so that it
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

4 years agoEnsure that the typedefs for specific-length integers in zipfile.c are
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

4 years agoIn the whereLoopXfer() routine, ensure that the destination is fully
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

4 years agoThe new OP_Null opcode from check-in [8b54102a00852b72] was not coded
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

4 years agoAdd the experimental sqlite3session_changeset_size() API.
dan [Wed, 21 Apr 2021 20:52:17 +0000 (20:52 +0000)] 
Add the experimental sqlite3session_changeset_size() API.

FossilOrigin-Name: b5564a6fd54875db1de884fdc0e5eeabcd6aa5595ad03a8a60843503e830a2d8

4 years agoAdd recent dbsqlfuzz test cases to test/fuzzdata8.db.
drh [Wed, 21 Apr 2021 12:03:36 +0000 (12:03 +0000)] 
Add recent dbsqlfuzz test cases to test/fuzzdata8.db.

FossilOrigin-Name: 6fe50dcc239d2d1fc2a38aa705f4c75cbe26b3e48d098537306d96d6a4005659

4 years agoInitialize the key registers in the skip-scan optimization to NULL, in case
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

4 years agoFix a problem allowing SQL variables to be used expressions within the second and...
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

4 years agoRemove a testcase() that is no longer relevant due to the previous check-in.
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

4 years agoMore aggressive detection of database corruption in the rebuildPage() routine.
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

4 years agoUpdate an assert() in btree.c that may fail with a corrupt database.
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

4 years agoIn the sqlite3SelectDup() routine, do not do an incomplete duplication due
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

4 years agoImprovement to check-in [d564d8882ef18b55] to detect the OOM fault even
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

4 years agoAn improvement to check-in [1a341378ab24a509] that omits the new
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

4 years agoEnsure that a WITHOUT ROWID table does not have the .iPKey field set, even if
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

4 years agoRemove fts5 test functions fts5_expr(), fts5_expr_tcl(), fts5_isalnum() and fts5_fold...
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

4 years agoIn the query flattener, avoid invalidating an expression if an OOM occurs.
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

4 years agoEnsure that all records are updated by setting the OPFLAG_SAVEPOSITION flag when...
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

4 years agoRemove a couple of NEVER() macros from the code for walking window lists.
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

4 years agoBring in permutations mod.
larrybr [Sat, 17 Apr 2021 20:04:40 +0000 (20:04 +0000)] 
Bring in permutations mod.

FossilOrigin-Name: 7a1316f32c857b5ec9e50c5d341f977f998dbf404f4758e3fe317fd8ef25f41e

4 years agoDo not run external_reader.test as part of permutation "journaltest", as it requires...
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

4 years agoAllow more time for perf tests when instrumented. Condition another on feature it...
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

4 years agoAdd new dbsqlfuzz cases to test/fuzzdata8.db.
drh [Sat, 17 Apr 2021 18:39:39 +0000 (18:39 +0000)] 
Add new dbsqlfuzz cases to test/fuzzdata8.db.

FossilOrigin-Name: d18793e589a4ee7706e994a1f3d24ba7df190467d92fa6ac040258f4debc149d

4 years agoFix cases where code in expr.c was failing to handle OOM failures that occurred while...
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

4 years agoEnsure that variables are not used in the WINDOW clause of a query inside
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

4 years agoAdd geopoly to $::sqlite_options() and use it to pass more tests.
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

4 years agoPerformance optimizations in the code generator, especially in name
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

4 years agoMake a test conditioned on feature used.
larrybr [Fri, 16 Apr 2021 21:29:07 +0000 (21:29 +0000)] 
Make a test conditioned on feature used.

FossilOrigin-Name: 31afda7ac3081d05fc9b6d080abeba1296327d0c480bbb4bc5f65c3168cd34ac

4 years agoAdd new dbsqlfuzz-generated cases to test/fuzzdata8.db.
drh [Fri, 16 Apr 2021 19:25:47 +0000 (19:25 +0000)] 
Add new dbsqlfuzz-generated cases to test/fuzzdata8.db.

FossilOrigin-Name: 1ac0a056a07895cc4ae62d01cbba5525402be3af3b8f97fd1dfaba2236ef912b

4 years agoFix another undefined behaviour in fts3 that could follow an OOM error.
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

4 years agoAvoid signed integer overflow when finding snippets in fts3 by using 64-bit integer...
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

4 years agoRemove an ALWAYS() from a branch in sqlite3ExprAddCollateToken() which can
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

4 years agoFix an assert() in whereLoopAddOr() that can be wrong if an OOM occurs in
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

4 years agoFix an assert() in fts3 that might fail when handing corrupt records.
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

4 years agoFix the comment on the implementation of the pi() SQL function. No changes
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

4 years agoDo not invoke sqlite3ExprAffinity() if there is a possibility that the Expr
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

4 years agoFix a bad interaction between constant propagation and transitive term handling causi...
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

4 years agoAdd extra test case for OOM handling in where.c.
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

4 years agoMake sure the WhereInfo.pExprMods list is properly cleared when existing
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

4 years agoPrevent an assert() from failing if sqlite3_blob_reopen() is called on a blob-handle...
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

4 years agoFix a potential crash when using json_group_array() as a window function.
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

4 years agoFix an assert() in the code generator for expressions so that it is valid
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

4 years agoFix an undefined signed integer overflow in fts5.
dan [Tue, 13 Apr 2021 17:45:36 +0000 (17:45 +0000)] 
Fix an undefined signed integer overflow in fts5.

FossilOrigin-Name: e6f0adb00da84561e686a8db83858c7fd6b008756dd1aef807ea68f878ca3db7

4 years agoDo not leave a WITHOUT ROWID table without a primary key index structure
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

4 years agoThe SQLITE_NoSchemaError flag should not apply to OOM errors while parsing the
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

4 years agoEarlier detection empty_result_callbacks in sqlite3InitCallbac() to avoid
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

4 years agoIn the rtreedepth() function, detect OOM when converting a zeroblob() on
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

4 years agoFix an error in the inversion function for json_group_array().
drh [Tue, 13 Apr 2021 01:12:32 +0000 (01:12 +0000)] 
Fix an error in the inversion function for json_group_array().
dbsqlfuzz 68a4b0f668b7bc27235e3f1c5cff8a2d94cfa17e.

FossilOrigin-Name: e718a62ed1d5ba9b1404ba67fae1ad731809e2ebd9253edc57d2b34a19fbef24

4 years agoFix a faulty assert() inside sqlite3ExprDup().
drh [Mon, 12 Apr 2021 23:18:18 +0000 (23:18 +0000)] 
Fix a faulty assert() inside sqlite3ExprDup().

FossilOrigin-Name: 59812e7ef705226c801f95ec7f78cc931f9957ffb66715607d63874813b280cb

4 years agoFix an assert() in OP_ParseSchema so that it works even after an OOM.
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

4 years agoAvoid taking the address of a NULL pointer following an OOM in FTS5. Doing
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

4 years agoAdd an assert() to show that the SF_Resolved flag does not get set if
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

4 years agoFix a segfault that could occur if the ORDER BY clause of a compound SELECT contains...
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

4 years agoFix the display of SrcList in the sqlite3TreeView debugging routines.
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

4 years agoAvoid an assert() failure when a compound scalar sub-select is, due to a "WHERE ...
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

4 years agoFix harmless comment typo in main.c.
drh [Mon, 12 Apr 2021 11:51:32 +0000 (11:51 +0000)] 
Fix harmless comment typo in main.c.

FossilOrigin-Name: 785a553e71e2ecf108ec4140d470d718ceeb2d03896f7aab36ce10cf0e99e72e

4 years agoAdd NEVER() to a branch that is no longer reachable due to
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

4 years agoAvoid an uninitialized-memory valgrind error by tightening up corruption
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

4 years agoAdd NEVER() to a branch that became unreachable with
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

4 years agoAvoid invoking sqlite3Atoi64() will a null pointer following an error
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

4 years agoFix a problem with handling expressions like "(col IS NULL AND <expr1>) OR col =...
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

4 years agoRefactor NameContext.nErr into nNcErr to avoid confusion with Parse.nErr.
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

4 years agoRemove a NEVER() in a corruption detection conditional in allocatePage().
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

4 years agoRemove an ALWAYS() that is actually reachable following an OOM on an
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

4 years agoHave the VFS in memdb.c return SQLITE_IOERR_NOMEM instead of SQLITE_NOMEM when an...
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

4 years agoFix a use-after-free error that could occur when processing "SELECT aggregate(DISTINC...
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

4 years agoRemove an ALWAYS() that might be false under very unusual circumstances.
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

4 years agoHandle the corruption fixed by the previous commit in a different way so as to also...
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