]>
git.ipfire.org Git - thirdparty/sqlite.git/log
drh [Thu, 16 Jan 2020 13:02:26 +0000 (13:02 +0000)]
Very small performance improvement by ensuring that the argument to
sqlite3VdbeFreeCursor() is non-NULL. Hold for the next sprint.
FossilOrigin-Name:
f8801ffd946d288099bc3af20602c0d2794b4542ce77b8e15a3d57cac28066a6
drh [Thu, 16 Jan 2020 12:25:14 +0000 (12:25 +0000)]
Fix an SQL syntax error in the comment on the omit-left-join optimization.
No changes to code.
FossilOrigin-Name:
86b5e5a20e967af7ac444ff0a40c2e8b93b7e5c505eebf6d3753a341b05503a8
drh [Thu, 16 Jan 2020 11:51:09 +0000 (11:51 +0000)]
Clean up the definitions of the TERM_ constants in the code generator.
Formatting only - no logic changes.
FossilOrigin-Name:
af06f80a590e20f64fa2f630e85fa728c266ea4696b975cc5f2ab72a3b914379
drh [Wed, 15 Jan 2020 16:20:16 +0000 (16:20 +0000)]
Do not allow the "PRAGMA encoding" statement to change the database
encoding if TEMP content exists, or content in any other attached
database. Formerly, encoding changes were allowed if just the main
database file was empty. Ticket [
a08879a4a476eea9 ].
FossilOrigin-Name:
03b003c988d27f3aa1b1e44972ee5a3c7e44ad667ec7f2b8a31d0411c66583d3
drh [Tue, 14 Jan 2020 16:50:09 +0000 (16:50 +0000)]
Fix the urifuncs.c extension (used for testing and debugging only) so that
the sqlite3_filename_database() SQL function and its siblings correctly handle
an invalid schema name passed in as the argument.
FossilOrigin-Name:
3d7434a9d85dae9135473d1c58c22ac01a282e654807aa10be9b39f127291594
drh [Tue, 14 Jan 2020 16:39:54 +0000 (16:39 +0000)]
Remove an ALWAYS on a branch for improved database corruption detection
in btree.c:freeSpace(). Test case found by dbsqlfuzz.
FossilOrigin-Name:
54bf04811951db6c894f272f870e3e41f8f5e05a25c1115efbbdbd0d8bba54be
drh [Tue, 14 Jan 2020 16:33:07 +0000 (16:33 +0000)]
Add the new noop_nd() debugging function to the noop.c extension.
FossilOrigin-Name:
72911fb1b010ae093a161b9c0d21cbdedcbc1f924a55f12227fbe342bd978e08
drh [Tue, 14 Jan 2020 13:24:14 +0000 (13:24 +0000)]
For the showdb utility program, more accurate detection of when the database
is in autovacuum mode for the "pgidx" subcommand.
FossilOrigin-Name:
9ce2192b81a81bb8928e3184664694ed2f863ce41c2777cdc35e6b61486aea46
drh [Tue, 14 Jan 2020 13:13:19 +0000 (13:13 +0000)]
Fix a minor typo on a comment in the CLI implementation.
FossilOrigin-Name:
db4fb3503c4e1e40d7bd140187014e8f0cc186c441a0c7462987c77e2c83136a
drh [Tue, 14 Jan 2020 00:52:56 +0000 (00:52 +0000)]
Improvements to sqlite3_open_v2() documentation.
FossilOrigin-Name:
4c4fd62a092b8db6398c64a92c9ff35915eedcce1079a77aeda81811d94096c4
drh [Mon, 13 Jan 2020 15:25:43 +0000 (15:25 +0000)]
More documentation updates. No code changes.
FossilOrigin-Name:
a684d4ef08a48962c632b598242f5e34c9b2fa3ad6339023fbce8ac91582b5e3
drh [Mon, 13 Jan 2020 13:33:08 +0000 (13:33 +0000)]
drh [Sun, 12 Jan 2020 22:38:17 +0000 (22:38 +0000)]
Better than removing the incorrect assert() is to change it into a
testcase() together with a comment indicating where an appropriate test case
can be found, and the ticket that provoked the change.
Ticket [
614b25314c766238 ]
FossilOrigin-Name:
3e3c60d8124672ff72a57dfa2e51276316bcac8c8ae8a5739da358f26924b0fb
drh [Sun, 12 Jan 2020 22:25:58 +0000 (22:25 +0000)]
Change the zipfile virtual table so that the xBestIndex method gives a
reasonable cost estimate even if no filename is specified. The missing
filename error continues to be raised in the xFilter method. Meanwhile,
the more reasonable cost estimate avoids unnecessary wierdness in the query
planner.
FossilOrigin-Name:
0e468aa6decc73be307596782a778a739ff1b5dc0eb10fc4bd6776e460f99f8b
drh [Sun, 12 Jan 2020 22:20:07 +0000 (22:20 +0000)]
drh [Sat, 11 Jan 2020 21:08:59 +0000 (21:08 +0000)]
New apis: sqlite3_filename_database(), sqlite3_filename_journal(), and
sqlite3_filename_wal(). Also sqlite3_uri_key(). And the other sqlite3_uri
functions now work using the journal or wal filename in addition to the
database file. And the sqlite3_db_filename() result is guaranteed to work
as an argument to the sqlite3_uri functions.
FossilOrigin-Name:
fd7bcc53524096f5245e5ae04c12780d2c43b9b3af17ec529447aed21b82cc2b
drh [Sat, 11 Jan 2020 20:27:02 +0000 (20:27 +0000)]
Minor changes for consistency between sqlite3_filename_wal() and
sqlite3_filename_journal().
FossilOrigin-Name:
9a70ff43a7b6848a71d5049f5a4ae24e3eb8a83d5c6651f5a9937abf03b3eccf
drh [Sat, 11 Jan 2020 16:08:31 +0000 (16:08 +0000)]
Redesign for better legacy compatibility. Add the sqlite3_uri_key() interface.
FossilOrigin-Name:
bcb43d11c4d0be36888c9e968ccdf85e7d7fccd72a29866f85c014e0562d4b93
drh [Fri, 10 Jan 2020 18:05:55 +0000 (18:05 +0000)]
Rearchitect the way in which filenames are stored in the Pager object so that
the sqlite3_uri_parameter() interface will work from journal and WAL filenames
too. This check-in implements the central idea, and compile and runs somewhat,
but crashes on an extended test.
FossilOrigin-Name:
2ae77bd2335708343bce4541b4d2cf16edfe3fd5bc2dfb93757238c926aa960b
drh [Fri, 10 Jan 2020 01:05:49 +0000 (01:05 +0000)]
Fix to the register validity tracking logic in debug builds. No impact
on release builds.
FossilOrigin-Name:
0a500da6aa659a8e73206e6d22ddbf2da5e4f1d1d551eeb66433163a3e13109d
drh [Fri, 10 Jan 2020 00:00:18 +0000 (00:00 +0000)]
Documentation updates on newer APIs. No changes to code.
FossilOrigin-Name:
8845a8c22a4ceabee130ce2addbe07e13b0496eeb542c89850f8658d21a48f89
drh [Thu, 9 Jan 2020 23:07:21 +0000 (23:07 +0000)]
Fix the fossildelta.c extension so that it will compile on mingw.
FossilOrigin-Name:
20237d5dc4451f142b511e50a4acef4574cef17b9222c87dcebfe1ed1bab0ad9
drh [Thu, 9 Jan 2020 20:44:37 +0000 (20:44 +0000)]
Merge in the untrusted-schema enhancements.
See [/doc/
87aea3ab1cdda453 /doc/trusted-schema.md|doc/trusted-schema.md]
for details.
FossilOrigin-Name:
5720924cb07766cd54fb042da58f4b4acf12b60029fba86a23a606ad0d0f7c68
drh [Thu, 9 Jan 2020 20:33:36 +0000 (20:33 +0000)]
Only register the fts3_tokenizer() function using a single text encoding.
FossilOrigin-Name:
966964af1021feebc56cfda7b08bc787be7f447d682299f7958463aca30a73af
drh [Thu, 9 Jan 2020 20:33:13 +0000 (20:33 +0000)]
dan [Thu, 9 Jan 2020 20:11:29 +0000 (20:11 +0000)]
Fix an assert() in window.c that could fail with some obscure SELECT statements that use window functions.
FossilOrigin-Name:
83dc55679a91bf5d1d13706088ce58eed02b9aad1ad0ae237966e78e0d769663
drh [Thu, 9 Jan 2020 16:28:50 +0000 (16:28 +0000)]
Fix a problem in the encoding display in the updated PRAGMA function_list.
FossilOrigin-Name:
318ff7720bc60c30c0826becce424226e9cec25c1d59cb2cdb75793739322760
drh [Thu, 9 Jan 2020 16:00:08 +0000 (16:00 +0000)]
Fix minor typos in the trusted-schema.md document.
FossilOrigin-Name:
87aea3ab1cdda4533e6fed605d1295e83bae0bbb9e1b238d239ce158a0d42954
drh [Thu, 9 Jan 2020 15:18:08 +0000 (15:18 +0000)]
Minor formatting changes in the trusted-schema.md document.
FossilOrigin-Name:
55553b5e5ece8282f6a56a6f5c71024eaaef3c86ec42203af3da708b0de3643b
drh [Thu, 9 Jan 2020 14:51:47 +0000 (14:51 +0000)]
Design notes for the new-security-options branch.
FossilOrigin-Name:
af7c1ed4f8a7293d0ecacca3cfbe9414e0de5ec40b418ce7831b8dc724feb747
drh [Thu, 9 Jan 2020 13:08:28 +0000 (13:08 +0000)]
Simplified error message for the unsafe use of a virtual table.
FossilOrigin-Name:
d662129a601e05e8fca5717a890b5bc920b80a750d061f3c2494788d32b917a5
drh [Thu, 9 Jan 2020 01:20:03 +0000 (01:20 +0000)]
Fix a problem that restricted edgy functions in TEMP tables.
New test cases added.
FossilOrigin-Name:
8878c40753566a8c4ccd1d413019cabde7569b947f730527d13bfc3db384e97d
drh [Wed, 8 Jan 2020 22:22:36 +0000 (22:22 +0000)]
Block edgy functions used in DEFAULT constraints.
FossilOrigin-Name:
da434dc149786e4b1cd80b3b2b25f8b614d0dec62d5439f839a66b536999e398
drh [Wed, 8 Jan 2020 20:37:45 +0000 (20:37 +0000)]
Performance improvements and test cases added. Allow "PRAGMA trusted_schema=ON"
FossilOrigin-Name:
30882ca80f6c51f6bb7b2692c1ac3f19a7c61a23aa8730be79aec0ae3ef08d54
drh [Wed, 8 Jan 2020 17:28:19 +0000 (17:28 +0000)]
Check for whether or not it is safe to use non-innocuous functions as the
function is being coded, not when its name is resolved.
FossilOrigin-Name:
1da802d54b689a462e1fe899c6ffa08ef14d34f36728b14b055b5a76b1edc274
drh [Wed, 8 Jan 2020 15:44:10 +0000 (15:44 +0000)]
Provide the -innocuous option to the "db func" method in the TCL interface.
FossilOrigin-Name:
0138652b6c2f21fd67e59a23a396a5b9d6a16ee9b44701cddfc49b23fddfce5b
drh [Wed, 8 Jan 2020 15:43:29 +0000 (15:43 +0000)]
Fix the rot13.c extension to be deterministic. Add the noop.c extension.
FossilOrigin-Name:
a679122ca8ec95d5c8afba3a1a50170db9dd519a3810e56877b8f56e858d0175
drh [Wed, 8 Jan 2020 14:39:57 +0000 (14:39 +0000)]
In the TreeView debugging output, show a "DDL" mark on SrcList and Expr nodes
that derive from a non-TEMP schema.
FossilOrigin-Name:
fe7472fd2a70b4df6cb62041b72ed1638ba27ed1e6ceb8aaf56d1c8a82d91889
drh [Wed, 8 Jan 2020 13:08:52 +0000 (13:08 +0000)]
drh [Wed, 8 Jan 2020 12:17:46 +0000 (12:17 +0000)]
When doing a test-to-double conversion on a BLOB with an odd number of bytes
and assuming a UTF16 encoding, ignore the last byte.
Ticket [
9eda2697f5cc1aba ].
FossilOrigin-Name:
1c76f1d8ec0937a2d2e4ce75f98494c953e9621db31945d7e44f45d90d1c3892
drh [Wed, 8 Jan 2020 11:36:30 +0000 (11:36 +0000)]
Fix a minor formatting error in the display of BLOB values during VDBE
tracing.
FossilOrigin-Name:
295442887a3cd5868df26c5be244649ffb3bae8367f5cf02fe513424a1c9f6a7
drh [Wed, 8 Jan 2020 10:57:27 +0000 (10:57 +0000)]
Improvements to the documentation of sqlite3_create_collation().
FossilOrigin-Name:
fa866aec56deca8cc1b70814215bbdc683f41bc0826da0f8804d952de429820c
drh [Wed, 8 Jan 2020 04:36:01 +0000 (04:36 +0000)]
Simplification of the logic in the constant-propagation optimization.
FossilOrigin-Name:
1c3e5c20a9e6f501befa2bf6241a1b5190872bd83b765dac67065d252d04ea4f
drh [Wed, 8 Jan 2020 01:43:47 +0000 (01:43 +0000)]
Fix the constant propagation optimization so that it does not try to
propagate constant expressions that have affinity. Ticket [
82ac75ba0093e5dc ]
FossilOrigin-Name:
6db1c3498f6bfa01bb460e62b802b63ec4bf43577a17a94e1e2fa0ecc1e64960
drh [Wed, 8 Jan 2020 00:39:37 +0000 (00:39 +0000)]
drh [Tue, 7 Jan 2020 19:45:40 +0000 (19:45 +0000)]
Create the "trusted_schema" pragma. Add sqlite3_vtab_config() calls to set
the risk rank for many virtual tables.
FossilOrigin-Name:
4c21373c21c9b17b222ae65297a039a035e6ec6b505c00c33704e3c03f94f834
drh [Tue, 7 Jan 2020 18:10:56 +0000 (18:10 +0000)]
drh [Tue, 7 Jan 2020 18:10:01 +0000 (18:10 +0000)]
Fix a performance regression caused by the previous check-in.
FossilOrigin-Name:
d7d98d3dff2f0e0cfa5bb8be8e5fd2af5ab470be399eafe3d77b23ee1262f70d
drh [Tue, 7 Jan 2020 16:09:11 +0000 (16:09 +0000)]
Invert the UNTRUSTED_SCHEMA setting to be TRUSTED_SCHEMA.
FossilOrigin-Name:
f5fcf1fbc6473f8e91315b14d67745f2748010641b7463d1f4ca51e6fdf97462
drh [Tue, 7 Jan 2020 15:44:22 +0000 (15:44 +0000)]
drh [Tue, 7 Jan 2020 13:32:15 +0000 (13:32 +0000)]
Add an "|| CORRUPT_DB" term to an assert() statement inside of btree.
FossilOrigin-Name:
03c1d75ddc063469fc856114595bd12d21759fe0979ce1ba1cf52e48e6b0d4a1
dan [Tue, 7 Jan 2020 09:06:43 +0000 (09:06 +0000)]
Fix an instance of an undefined behaviour (a left-shift of a 64-bit unsigned integer by a value greater than 64) that could occur in fts3.
FossilOrigin-Name:
e1f12978b53683114ab0ef0e84a14dd4fabc72750b214aac19cd9da22a582a27
drh [Mon, 6 Jan 2020 20:48:45 +0000 (20:48 +0000)]
In the typeof() optimization in OP_Column, expand the size of the bogus buffer
provided for data so that it is big enough to cover the increased number of
bytes displayed during register tracing from check-in [
54553bf16fabd72d ].
This is the correct fix for ticket [
bbd55a97e66ff50d ], though the earlier one
does not hurt and is useful to retain.
FossilOrigin-Name:
e1154c39ba0f8caec70d330e6d5bec745c93ec9a7eafedb3e3730fadc8b8277c
drh [Mon, 6 Jan 2020 19:30:36 +0000 (19:30 +0000)]
drh [Mon, 6 Jan 2020 19:23:41 +0000 (19:23 +0000)]
Rewrite the (debugging use only) sqlite3VdbeMemPrettyPrint() function to use
the safer StrAccum interface rather than writing directly into a static string
buffer. Perhaps this will address ticket [
bbd55a97e66ff50d ], which we are
unable to reproduce.
FossilOrigin-Name:
69f6a7e42f42116d29514239575ee1dc381b5b673da012cb5f3e8cf17922d493
drh [Mon, 6 Jan 2020 18:59:46 +0000 (18:59 +0000)]
Backout change [
4d0b9109f7a5312d4e1 ] because the conditional it added is
no longer reachable due to check-in [
1409758f72c0206c ].
FossilOrigin-Name:
b3f2696705cc3e7b038f156423f808432a4680ea7e313dc15e34bdf6b1845655
mistachkin [Mon, 6 Jan 2020 18:44:56 +0000 (18:44 +0000)]
Move variable declaration to start-of-block for MSVC.
FossilOrigin-Name:
55c136ef61f23a04be1bf351ab7f6bdfa033653c32557a04916cc9770453f261
drh [Mon, 6 Jan 2020 17:33:09 +0000 (17:33 +0000)]
Do not attempt to use the skip-scan optimization if prior terms of the
index are already used for non-equality constraints.
Ticket [
304017f5f04a0035 ]
FossilOrigin-Name:
d7126a9ced86cb0934d5bde2bf535e6b529c361444c99e723f29dd3eb36e7044
dan [Mon, 6 Jan 2020 17:06:12 +0000 (17:06 +0000)]
Ensure the SF_Aggregate flag on a SELECT statement is set if a DISTINCT is transformed to a GROUP BY. Ticket [
9c944882 ].
FossilOrigin-Name:
1409758f72c0206cc48f9f7e789382472949523b7056ea46f8dcb93fd3ea60c6
drh [Mon, 6 Jan 2020 15:25:41 +0000 (15:25 +0000)]
Refactor names of flags for improved legibility.
FossilOrigin-Name:
411e8ec2219bb4181aaf2209fb1e7baf5e8df8b8c8adb82a69b48cf7e8e7e7d4
drh [Sun, 5 Jan 2020 21:53:15 +0000 (21:53 +0000)]
Remove a NEVER in btree due to a new test case from dbsqlfuzz.
FossilOrigin-Name:
46f8ef70fb8b3ae00cc081b280f3dff38b1d0f1b52a8f4477ec89dec32e4d813
drh [Sat, 4 Jan 2020 20:58:41 +0000 (20:58 +0000)]
Refactor the names of the new controls for restricting what actions the schema
can take behind the application's back.
FossilOrigin-Name:
65d7d39a858c51ffd781f5a6335e029895e597aeb1e1ccdadea8ce79c8ad412f
drh [Sat, 4 Jan 2020 19:58:28 +0000 (19:58 +0000)]
Enhance PRAGMA function_list to show internal functions if the direct use
of internal functions is enabled via the SQLITE_TESTCTRL_INTERNAL_FUNCTIONS
test control.
FossilOrigin-Name:
7a8d7ca726666f4384925f959df0d58f7622229e06f1b5e643a3caccd539bb6e
drh [Sat, 4 Jan 2020 19:19:54 +0000 (19:19 +0000)]
Merge all fixes and enhancements from trunk.
FossilOrigin-Name:
b878c30f03e895bbc5c4c99c0f727d49093bb78bdc275593cf4852148579ae69
drh [Sat, 4 Jan 2020 19:14:48 +0000 (19:14 +0000)]
Fix DBSTAT so that it returns now rows, rather than an error when the
WHERE clause is "schema=NULL".
FossilOrigin-Name:
5b246b47aeadc25dbec0956e2d6edcd49fbe874a01734fdf15b770507648222d
drh [Sat, 4 Jan 2020 19:12:13 +0000 (19:12 +0000)]
dan [Sat, 4 Jan 2020 18:38:58 +0000 (18:38 +0000)]
Omit the omit flat from eq constraints on column "name" of dbstat virtual tables. Fix for [
74a4c386 ].
FossilOrigin-Name:
cfff5cb2279088aa66f435bd0d627b2c74c9a99ad9addfd44a4df8ba770b795a
drh [Sat, 4 Jan 2020 18:33:20 +0000 (18:33 +0000)]
Record when the OP_IfNotOpen branch is and is not taken.
FossilOrigin-Name:
182a898b14d585edd5fcfdcd6584c957911f0d81773d2868f16b5762dec031ca
drh [Sat, 4 Jan 2020 17:55:01 +0000 (17:55 +0000)]
Remove another NEVER added by check-in [
7b62555e285f32d3 ].
Dbsqlfuzz found another test case.
FossilOrigin-Name:
481f4956aff52797880930752693a8c0b10d7fdd71d86919fe8ee13c90ad5b81
drh [Sat, 4 Jan 2020 17:42:27 +0000 (17:42 +0000)]
New test cases in test/in4.test require rtree, so disable those tests on
builds that lack the rtree extension.
FossilOrigin-Name:
b5900914f7f34caf1a97c87233781d55467329b0ac4366354df13c6fd72a99c7
dan [Sat, 4 Jan 2020 16:55:57 +0000 (16:55 +0000)]
Fix a problem where the loop for the RHS of a LEFT JOIN uses values from an IN() clause as the second or subsequent field of an index.
FossilOrigin-Name:
95ef68966c50f311830cba8c9257a4085c93011d205e0e31867c2917fa62a48e
drh [Sat, 4 Jan 2020 15:37:57 +0000 (15:37 +0000)]
drh [Sat, 4 Jan 2020 15:21:47 +0000 (15:21 +0000)]
Fix a false-positive in the register validity tracking logic by moving the
temporary register release call before the jump that uses that temporary
register.
FossilOrigin-Name:
9da48a5ca66dc67c8f7fb2d2471dac7ea696e35ecba5ddf65747d08d452436c1
drh [Sat, 4 Jan 2020 14:57:26 +0000 (14:57 +0000)]
Improve a testcase in test/fuzzdata8.db to make it more resilient.
FossilOrigin-Name:
139aefe60097e06b43df35652e6b2183b7a4b03341d1bde23deada3fa3358fee
drh [Sat, 4 Jan 2020 14:50:06 +0000 (14:50 +0000)]
Back out another NEVER added by check-in [
7b62555e285f32d3 ] - the test case
was already in test/fuzzdata3.db, but it only occurs if compiled without
SQLITE_ENABLE_PREUPDATE_HOOK.
FossilOrigin-Name:
61f873b14c2c835f3d10b018b357cb8b1f041e97e05709d7ab5a8055e5e05349
dan [Sat, 4 Jan 2020 14:00:56 +0000 (14:00 +0000)]
Omit the omit flag from eq constraints on column "aggregate" of dbstat virtual tables. Fix for [
727074e2 ].
FossilOrigin-Name:
74ef6f2b6d9f50ff1d455e2263ba77707c1e8394b25b3f8a3a2a7b6e7f2c481e
drh [Sat, 4 Jan 2020 12:34:44 +0000 (12:34 +0000)]
Restore a NEVER and an assert in btree that was removed by
check-in [
7b62555e285f32d3 ]. Dbsqlfuzz found test cases.
FossilOrigin-Name:
04a05c83f58784df438dc6614f7920f782bf7c1ed4f6d101c03b6573cfde06ee
drh [Sat, 4 Jan 2020 01:43:02 +0000 (01:43 +0000)]
Enhance PRAGMA function_list so that it shows all instances of each FuncDef,
the number of arguments, the encoding, the type, and the flags. Use this
capability to locate and fix incorrect function flags in the standard build.
FossilOrigin-Name:
9ca906d24a2e88eddb2fd067783512b66cfc49dce1596d816a1c38a09d128218
drh [Fri, 3 Jan 2020 21:57:53 +0000 (21:57 +0000)]
Invert the SQLITE_FUNC_SAFE bit to be SQLITE_FUNC_UNSAFE. The external
bit is still SQLITE_INNOCUOUS. It gets inverted as the appdef function
is registered.
FossilOrigin-Name:
1c266cb3be46d26e640752a99979acb1a1809361ba70ca3fca981c42383c360e
drh [Fri, 3 Jan 2020 20:57:38 +0000 (20:57 +0000)]
When UNSAFE_IN_VIEW is disabled, only allow functions in views that are
tagged with SQLITE_INNOCUOUS.
FossilOrigin-Name:
9ee79b254e4c51a2a41f7ed49ad389d8d7105e649483adb79772052fa0ade3c0
dan [Fri, 3 Jan 2020 20:16:32 +0000 (20:16 +0000)]
In fts3, avoid making a very large memory allocation if the merge-hint record is corrupt.
FossilOrigin-Name:
9add58fe9688d5c1f675736e7f1c6ff7831d2ff6fdeb884a2e62c1bf9536ee50
drh [Fri, 3 Jan 2020 17:40:30 +0000 (17:40 +0000)]
Add NEVER macros to error-detection branches that were made unreachable
(as far as I can tell) by check-in [
ceacc28b03580334 ].
FossilOrigin-Name:
7b62555e285f32d354df7746ef8dce16856c6d9d53a02d895b74ba02362d2968
drh [Fri, 3 Jan 2020 16:38:54 +0000 (16:38 +0000)]
Improvement to check-in [
7405e98225761180 ] so that missing or null filenames
given to the zipfile extension throw an immediate error.
FossilOrigin-Name:
523e09bd228750fb7be1d4e68d18f6c1bf9db19293d66fbf30b86409321e9814
dan [Fri, 3 Jan 2020 15:51:23 +0000 (15:51 +0000)]
Improve a specific case of early database corruption dectecion in the b-tree layer.
FossilOrigin-Name:
ceacc28b035803342764f9b696c1e80edcd259b87ea4fb46f92963d6cb33de3e
drh [Fri, 3 Jan 2020 15:22:54 +0000 (15:22 +0000)]
drh [Fri, 3 Jan 2020 14:34:04 +0000 (14:34 +0000)]
Remove an over-zealous ALWAYS() macro and add a test case that shows that
the conditional can sometimes be false.
FossilOrigin-Name:
536e9a9d1bd514056ecbc8172ed58f2656a86f791a15e526ae2e5f2c93687b6a
dan [Fri, 3 Jan 2020 14:27:08 +0000 (14:27 +0000)]
Fix a possible NULL pointer dereference caused by using a "VALUES(...)" as a component of a compound SELECT with non-integer ORDER BY clause terms.
FossilOrigin-Name:
9d791116420f4e3f613775569e0a0cba2fc22da568b2fb2df920bcf9c9002938
drh [Fri, 3 Jan 2020 14:16:43 +0000 (14:16 +0000)]
Fix the OP_Copy-coalesce optimization so that if the previous row happens
to end with OP_Copy but is not a candidate for the optimization due to jumps,
then the optimization is correctly bypassed.
FossilOrigin-Name:
b36126c1889e323c9a8f04b4f4884576993c845e7d393e5e73aaa6ab5158c1f9
dan [Fri, 3 Jan 2020 13:55:14 +0000 (13:55 +0000)]
Ensure that when a Select object is reset a new, empty, SrcList is allocated.
FossilOrigin-Name:
4889cbf898d7ec54f061b21b6d3621b22fc482cbeaa7115d40995a4cc30e41db
drh [Fri, 3 Jan 2020 02:20:37 +0000 (02:20 +0000)]
When generating the name of a view (or common table expression) because the
SQL does not specify a name, avoid the names "true" and "false" which might
be confused for the boolean literals of the same name, leading to an
inconsistent abstract syntax tree.
FossilOrigin-Name:
ff9492d3ff733c222ea67f23d478df1547641b5e2e6dd870b0b29e25c13f3739
drh [Fri, 3 Jan 2020 00:28:14 +0000 (00:28 +0000)]
Fix a problem in sqlite3TreeViewBareExprList() in which the routine was
not interpreting the new ExprList format correctly.
FossilOrigin-Name:
cd56872afbb4edeff2e8c1cb1c8d47c7a9b333b3fc416c20183250807291fae8
drh [Thu, 2 Jan 2020 23:50:50 +0000 (23:50 +0000)]
drh [Thu, 2 Jan 2020 22:28:47 +0000 (22:28 +0000)]
Add the two-size lookaside memory allocator. Also, reduce the per-entry
size of the ExprList object.
FossilOrigin-Name:
51665bf0f975fb248964a4be205a4f3285d3f3f8cc697977d264efefbbe20dd8
drh [Thu, 2 Jan 2020 22:23:01 +0000 (22:23 +0000)]
NEVER() and ALWAYS() macros tagging unreachable branches.
FossilOrigin-Name:
34b877742ef78e9bb3f16815180f4ad9cd722beb1d610f713400a3b25d68aa9b
drh [Thu, 2 Jan 2020 21:41:59 +0000 (21:41 +0000)]
drh [Thu, 2 Jan 2020 21:30:13 +0000 (21:30 +0000)]
Do not allow the zipfile virtual table to start a transaction if no
filename has been specified.
FossilOrigin-Name:
7405e982257611803792617f5d8142c54f9831b4a030f4de8607888c525e6289
drh [Thu, 2 Jan 2020 19:50:50 +0000 (19:50 +0000)]
Fix some test logic in the OP_Delete opcode so that it works after a
cursor-trip.
FossilOrigin-Name:
28900e5cab73f9edb9383d64a37e14fed0602966cb704ddffa60c0281698fd52
drh [Thu, 2 Jan 2020 18:37:04 +0000 (18:37 +0000)]
Ifdef-out code that is only possible with the sessions extension.
FossilOrigin-Name:
4fcf07f79672d203efbc90ad21d97f6a131c3885306f8e0bab015d5ac44b8644
drh [Thu, 2 Jan 2020 17:46:02 +0000 (17:46 +0000)]
Have the OP_ReleaseReg opcode also invalidate the registers if P5 is non-zero.
FossilOrigin-Name:
937be22106f7e3f08712febd342d6cb81d129f2d5ab24ce80b3a5c3f9bbde54e
dan [Thu, 2 Jan 2020 16:24:22 +0000 (16:24 +0000)]
Handle blobs that are the return values of functions being cast to text in utf16 databases in the same way as blobs read directly from the database. Fix for [
771fe617 ].
FossilOrigin-Name:
e782096aa06fcf410c3a0a6ee26a9e4f44333da39b28b2efe675814a8652911a