]>
git.ipfire.org Git - thirdparty/sqlite.git/log
drh [Fri, 10 Jan 2020 00:20:41 +0000 (00:20 +0000)]
Begin making changes to turn off trusted schema in command-line tools that
open SQLite databases. There are a lot of these, and a lot of places to
change, which makes me wonder if trusted schema out to be off by default.
FossilOrigin-Name:
3d23a275ab5d7d5052130c74cc59025cf6a99cc933cd30cfbcca2a3eaddbb999
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
drh [Thu, 2 Jan 2020 15:02:08 +0000 (15:02 +0000)]
Fix the OP_Move opcode so that it correctly manages dependency tracking.
This change impacts debugging builds only.
FossilOrigin-Name:
5377add4b8af8c52d0a32f5273835ac6bdc42cfb2a95ffcb335b987437a91aa6
drh [Thu, 2 Jan 2020 14:42:42 +0000 (14:42 +0000)]
Enhancements to aid testing and debugging:
In PRAGMA vdbe_trace=on output, show pScopyFrom dependencies on register
values. Add the sqlite3VdbeRegisterDump() procedure, callable from a
debugger, that shows the values of all registers. Pass the VDBE pointer
into test_trace_breakpoint() so that sqlite3VdbeRegisterDump() is callable
from the breakpoint.
FossilOrigin-Name:
9886cb4b7987f720aa9d701222ab0987caa0ab8c5d216cb6e523c4a45366dfe5
drh [Thu, 2 Jan 2020 13:26:49 +0000 (13:26 +0000)]
Add the test_trace_breakpoint() subroutine that is invoked after each
instruction is printed while running PRAGMA vdbe_trace=on. Only works for
SQLITE_DEBUG builds. Also add parameters "pc" and "pOp" to
test_addop_breakpoint() to make it easier to set conditionals.
FossilOrigin-Name:
49a6368c384178653cb3ccb58cc8eff93327c16929bf79eeefeb13a4ce897153
drh [Thu, 2 Jan 2020 02:50:45 +0000 (02:50 +0000)]
Use OP_Copy instead of OP_SCopy to move the results of a scalar subquery.
FossilOrigin-Name:
435c272dcf6ed5f3acb564b8f959557145f117b869547b670258cf5a1908ab6b
drh [Thu, 2 Jan 2020 00:45:38 +0000 (00:45 +0000)]
The sqlite3WhereEnd() call now unwinds all Expr modifications made by the
sqlite3WhereBegin().
FossilOrigin-Name:
7bfd42f1dc0c94f9bb74516e62fec8e39c20f4749f4e0972f66c2886d3c64f73
drh [Wed, 1 Jan 2020 23:02:35 +0000 (23:02 +0000)]
Provide the -DSQLITE_ENABLE_INTERNAL_FUNCTIONS=1 compile-time option. Fix
the ".testctrl internal_function" command in the CLI so that it does not
signal an error on a valid input.
FossilOrigin-Name:
8ee2ce92c082771675d0e8be597043cf9f0fd4f8a73d6a1498bf8743d6b3904a
drh [Wed, 1 Jan 2020 21:14:30 +0000 (21:14 +0000)]
When generating code for a subquery, make a copy of the Select object and
generate the code out of the copy, in case the code generator makes
modifications to expression and the Select object needs to be reused.
FossilOrigin-Name:
4edddcc0bc8d71e9b8abac67bc3766f1d9143dddd1f59264859ce65e5aa9b8c6
dan [Wed, 1 Jan 2020 20:17:15 +0000 (20:17 +0000)]
Ensure that when code for a scalar SELECT featuring window functions is generated more than once by the planner, separate ephemeral tables are opened for each instance.
FossilOrigin-Name:
ce1417325273aba866767349b55d9bbfb61a08e716bebda2122918a9657ee38c
drh [Wed, 1 Jan 2020 16:43:41 +0000 (16:43 +0000)]
Fix the sqlite3ExprImpliesNonNullRow() routine so that it correctly
handles a numeric comparison of two AND subexpressions.
FossilOrigin-Name:
07e504d5174a1a8b1aa05ec5b44ac81ab3ea706c5a098caa88deb3d489cec8fb
drh [Wed, 1 Jan 2020 15:43:30 +0000 (15:43 +0000)]
New test-only SQL functions: implies_nonnull_row(), expr_compare(), and
expr_implies_expr(). The SQLITE_TESTCTRL_INTERNAL_FUNCTIONS test-control
is modified to toggle internal function access on and off for a single
database connection.
FossilOrigin-Name:
473892a8eceacf24d57fd0c72ff2a0b8be4e0d75e0af7a30bdb24fbc3b453601
drh [Wed, 1 Jan 2020 13:55:08 +0000 (13:55 +0000)]
Factor out code generation for in-line SQL functions into a separate routine
inside of expr.c.
FossilOrigin-Name:
586a65a28fc6cac77309612abc32a2e1017c65e0387f9f438f5d8ac8406da8eb
drh [Wed, 1 Jan 2020 01:26:05 +0000 (01:26 +0000)]
Issue OP_ReleaseReg opcodes against the array of registers used to compute
index records after the index record has been computed.
FossilOrigin-Name:
e3330861b4deab7c7cc09ad8b936d633c600b9fb4e274801efeaaf94e5c860b4
drh [Tue, 31 Dec 2019 23:17:35 +0000 (23:17 +0000)]
drh [Tue, 31 Dec 2019 22:52:10 +0000 (22:52 +0000)]
Experimental branch with new sqlite3_db_config() options that could possible
enhance security for applications reading potentially compromised database
files.
FossilOrigin-Name:
96a2db2612f2e47bbec0e374a242820c88f03c42ccbf8467abccaef41469bae2
drh [Tue, 31 Dec 2019 18:39:23 +0000 (18:39 +0000)]
Also set the SQLITE_DIRECTONLY flag on the load_extension() function.
FossilOrigin-Name:
3bd095a53119c368fe30e539983588b27957203344cf427405b9a64784b8eba7
drh [Tue, 31 Dec 2019 18:12:36 +0000 (18:12 +0000)]
Set the SQLITE_DIRECTONLY flag on the fts3_tokenizer() function of FTS3,
thus preventing that function from being called from within a trigger or
view.
FossilOrigin-Name:
f3171dc22e4d3a40ca17fe609391d92fc6a997b775bfefa5947aec69c889aa73
drh [Tue, 31 Dec 2019 15:12:34 +0000 (15:12 +0000)]
Refactor names. Use "small" instead of "mini" to describe the smaller
of the two lookaside memory allocation sizes.
FossilOrigin-Name:
88d244983854cdc1a369c5df09ae00f1098784db768ba4e17b963d187dcb1009
drh [Tue, 31 Dec 2019 14:49:10 +0000 (14:49 +0000)]
drh [Tue, 31 Dec 2019 12:18:24 +0000 (12:18 +0000)]
The OP_ResultRow opcode releases the SCopy dependences on all its registers,
as the values in those registers will not be reused.
FossilOrigin-Name:
1dc83c5d54ca2890112e735e336c209adb8d067d2f647e9f8ae5d58f84a52461