]>
git.ipfire.org Git - thirdparty/sqlite.git/log
drh [Mon, 24 Oct 2022 13:50:04 +0000 (13:50 +0000)]
Improve the ability of the query planner to recognize covering indexes even
on tables with more than 63 columns and where the index is over columns
beyond the 63rd column.
FossilOrigin-Name:
3d1992de4733d4e155f2d6d5268323410d1104ab56db50f08a2bb26bf87d926b
drh [Wed, 19 Oct 2022 11:22:21 +0000 (11:22 +0000)]
If a query uses an index where one or more of the columns of the index is
an expression and if the corresponding expression is
used elsewhere in the query, then strive to read the value of the expression
out of the index, rather than recomputing it. This is the
"Indexed Expression Optimizations".
FossilOrigin-Name:
3da1032878bdc93f69b02926fb7243b31fe6b1a0ee93af68df52b203b0603dad
drh [Thu, 1 Sep 2022 10:41:24 +0000 (10:41 +0000)]
In the query planner, add a heuristic that will reduce the cost of a full
table scan for a materialized view or subquery if the full scan is the
outer-most loop. This is shown to speed up some queries.
FossilOrigin-Name:
e3754cc18824aad4113ad6d81e33e5c763beb9705fc6af88d8f8c870a03c731d
drh [Wed, 10 Aug 2022 17:03:43 +0000 (17:03 +0000)]
Merge the branch-3.28a fixes into branch-3.28.
FossilOrigin-Name:
ba6bf331476d0217f4132b73cb3da559e75bfb21856ec94f82c0f0150a53592b
drh [Tue, 9 Aug 2022 20:22:01 +0000 (20:22 +0000)]
Fix a rounding error caused by scalar->logarithm->scalar conversion when using stat4 data to estimate some range scans.
FossilOrigin-Name:
68d86f2b20ffa815f9f6bc1b402969ce76651a50e5b6f47daa8b6c8f5e696f52
dan [Tue, 13 Jul 2021 15:30:48 +0000 (15:30 +0000)]
Remove two incorrect assert() statements from the logic used to derive
column names and types from subqueries. This allows the SQL associated with CVE-2020-13871 (ticket [
c8d3b9f0a750a529 ]) to be tested.
FossilOrigin-Name:
d2e672203704aa18fdc652e9567eb29b71dae32e871f514308478a7a96025f29
dan [Mon, 12 Jul 2021 14:38:35 +0000 (14:38 +0000)]
Fix a defect in the query-flattener optimization identified by
ticket [
8f157e8010b22af0 ]. This fix is associated with CVE-2020-15358.
FossilOrigin-Name:
9e001b635f3cff672e591204ab90deefe01baaefe64ff121bd2c32edd2d03675
drh [Thu, 22 Oct 2020 18:58:33 +0000 (18:58 +0000)]
drh [Fri, 2 Oct 2020 13:57:13 +0000 (13:57 +0000)]
Import further corner-case fixes for the in-scan-vs-index or OP_SeekScan
optimization from trunk.
FossilOrigin-Name:
c144d6404ff122d6a92d59fed09fab9a0a592e4dab771ef41b0db3535359f1d6
drh [Fri, 2 Oct 2020 12:11:30 +0000 (12:11 +0000)]
For the OP_SeekScan optimization, the OP_IdxGT does not necessarily come
right after the OP_SeekGE. So use the P2 operand of OP_SeekScan to point
to the first instruction after OP_IdxGT. Problem found by dbsqlfuzz.
FossilOrigin-Name:
ec37744c6ea61f94bb850875f9ac86e80ac0c111bc5a2c2eb2050897ec1e63cd
drh [Fri, 2 Oct 2020 02:07:12 +0000 (02:07 +0000)]
Disable the OP_SeekScan opcode of the in-scan-vs-index optimization when
in PRAGMA reverse_unordered_selects mode, as the OP_SeekScan only works
with forwards scans. Thanks to OSSFuzz for pointing out the problem to
us.
FossilOrigin-Name:
9a1cdf7e9c79689aa80a2d5bbfaee04e20f288466eac0709c981f3fef7d19a03
drh [Wed, 30 Sep 2020 18:22:24 +0000 (18:22 +0000)]
Improved query optimization for multi-column indexes where the second or
later columns are constrained by an IN operator and the earlier index columns
limit the search to a small number of rows. Use the new OP_SeekScan opcode
which does scanning of the relevant range of the index but gives up and
falls back to doing a seek if the number of rows scanned grows to large,
in order to guard against pathological cases where the estimated number
of rows to be scanned is far too small.
FossilOrigin-Name:
f07ac3fb388630808c6299cc5b061426eb3a4832bf781a5cd4aa5ed2be7f8bf9
drh [Tue, 1 Sep 2020 02:02:16 +0000 (02:02 +0000)]
Improvements to the IN-early-out optimization so that it works more
efficiently when there are two or more indexed IN clauses on a single table.
FossilOrigin-Name:
49b7631e86988d913b9bf926868a5d7c5db557c5a78ecfb8f25fe2d3ba17557a
dan [Mon, 17 Aug 2020 21:03:53 +0000 (21:03 +0000)]
When doing an UPDATE or DELETE using a multi-column index where only a few
of the earlier columns of the index are useful for the index lookup,
postpone doing the main table seek until after all WHERE clause constraints
have been evaluated, in case those constraints can be covered by unused
later terms of the index, thus avoiding unnecessary main table seeks.
FossilOrigin-Name:
0ecda433718f0bc973078099b19955dcfb0dcd15b68455e53156ac708e9d92e5
drh [Wed, 6 May 2020 18:46:38 +0000 (18:46 +0000)]
Provide the SQLITE_DEFAULT_LEGACY_ALTER_TABLE compile-time option.
FossilOrigin-Name:
b2325a6e1cfa19e9fd533c1f7dacfc8e5aa4f2e111fa066a5c7d3040418fc8ad
drh [Fri, 17 Jan 2020 15:33:47 +0000 (15:33 +0000)]
More restrictions on changes to shadow tables when in defensive mode.
FossilOrigin-Name:
b302b260ca9a4ca3d84771d9157fb1fc0b0e1ba175638f0c006cdf94f92a19c9
drh [Fri, 17 Jan 2020 15:24:13 +0000 (15:24 +0000)]
Validate the type, name, and tbl_name fields of the sqlite_master table when
loading the schema, unless writable_schema is engaged.
FossilOrigin-Name:
3d13fbf248e6bcb997c301530ee834c6f1fc21add7f46b673d0f63e986c60680
drh [Fri, 17 Jan 2020 14:56:11 +0000 (14:56 +0000)]
Do not allow shadow tables to be dropped in defensive mode.
FossilOrigin-Name:
ad1f760f164c819eac24597dd621586933c8ca77f79efd2e4773f5599e089c5e
drh [Fri, 17 Jan 2020 14:30:29 +0000 (14:30 +0000)]
Import the 3.31.0-beta FTS3/4 code directly into the 3.28 branch, thus
providing 3.28 with all the latest 3.31 fixes. FTS3 has not been enhanced
to use any core functionality that was not already available in 3.23, so
no modifications were made to FTS3 sources for this import.
FossilOrigin-Name:
be4269c624b30dd744f80448558b650b505e04c7748386bb461158f5b1823680
mistachkin [Thu, 18 Jul 2019 20:55:07 +0000 (20:55 +0000)]
Fix a problem where self-joins on views that are aggregate queries may return the wrong result. Cherrypick of [
74ef97bf51dd531a ].
FossilOrigin-Name:
2f0a564f6ef148e4f63b11ccfc9d1e65cb2755cf923e22f2ffef83b1f176943b
mistachkin [Mon, 3 Jun 2019 15:10:24 +0000 (15:10 +0000)]
mistachkin [Mon, 3 Jun 2019 13:53:29 +0000 (13:53 +0000)]
Fix the count-of-view optimization so that it is (correctly) disabled for a query that includes a WHERE clause or a GROUP BY clause. Cherrypick of [
05897ca48a40c6771 ].
FossilOrigin-Name:
583e5a0ab6bdf3ce3d76852089160a8d11df4c3dd151050a70997b3720c3d538
mistachkin [Tue, 23 Apr 2019 15:21:00 +0000 (15:21 +0000)]
Minor simplification of NULL value handling for STAT4. Cherrypick of [
69bad9257f8db6a2 ] from trunk.
FossilOrigin-Name:
442c177dc444d614e8a665cfb62c4576cbf1002ed147dc272cea4e80cd9b92b4
drh [Tue, 16 Apr 2019 19:49:53 +0000 (19:49 +0000)]
dan [Tue, 16 Apr 2019 11:21:13 +0000 (11:21 +0000)]
Avoid a sanitizer error (pointer arithmatic overflow) in vdbesort.c.
FossilOrigin-Name:
af61a2fc45a0fa1277d7453779238b77de4c298a9f60714b7dc62ddca5874f80
dan [Tue, 16 Apr 2019 10:51:29 +0000 (10:51 +0000)]
Avoid a sanitizer error in test1.c. Have releasetest.tcl/wapptest.tcl create a file called "makecommand.sh" that can be used to rerun a test from the command line.
FossilOrigin-Name:
4de4480ffdea1e923c4b964692ccde92d713c8b6c056bb04bddf1ff55ee891ec
dan [Mon, 15 Apr 2019 19:17:50 +0000 (19:17 +0000)]
Fix a bug in test module test_fs.c causing a segfault on OpenBSD.
FossilOrigin-Name:
ee886600297c2a03d9d1d10db88d3d107b48e5d4de5e5d91b0ab16cc7c447ede
dan [Mon, 15 Apr 2019 15:41:33 +0000 (15:41 +0000)]
Fix a problem with the user-auth extension and deserializing in-memory databases.
FossilOrigin-Name:
09fa0b3c4adf7f81a777975762029ad43dbdc76b02dc32d2307e1c42465213c9
dan [Mon, 15 Apr 2019 13:59:08 +0000 (13:59 +0000)]
Fix a test script problem in fts5corrupt3.test.
FossilOrigin-Name:
734192d876e0489cb34e454aaa4a9c6858145791a49959b31dee2917a8e41a7d
drh [Mon, 15 Apr 2019 13:51:27 +0000 (13:51 +0000)]
Update tool/symbols.sh to ignore symbols from sessions and rebaser and to not
try to compile with ICU which is not available on all platforms.
FossilOrigin-Name:
0bab4ece6e81916d0f7255a8e553b8ca040cb8a96ab21e294212e232119f8ddc
drh [Sun, 14 Apr 2019 00:40:29 +0000 (00:40 +0000)]
drh [Sun, 14 Apr 2019 00:34:20 +0000 (00:34 +0000)]
Fix an obsolete comment and other minor issues from code inspection.
FossilOrigin-Name:
cd084427319394386844d6651479256a2fd57a412fccb79ba53172ce76693eb1
drh [Sat, 13 Apr 2019 16:50:21 +0000 (16:50 +0000)]
Fix a harmless compiler warning in test logic.
FossilOrigin-Name:
c3932e66040bf4c82727a26a976291fab219e8bc8a6d7579e19304538cc6df18
drh [Sat, 13 Apr 2019 16:43:58 +0000 (16:43 +0000)]
Fix the fts3varint.test script so that it works even on versions of TCL
for which Tcl_GetWideIntFromObj() does not work.
FossilOrigin-Name:
53f787ad298756027f630bfefade98b46f01539eb152f7e359b280335c77379e
dan [Sat, 13 Apr 2019 16:35:02 +0000 (16:35 +0000)]
Fix a test script problem in fts5corrupt3.test.
FossilOrigin-Name:
858f62274eb727109d0452ad2d80c0e0acab0f569494b1218c404501e103ed39
dan [Sat, 13 Apr 2019 15:07:00 +0000 (15:07 +0000)]
Partially revert the test file changes in [
4371a0c46e ]. It is no longer required following [
93ae382e97c23c90 ].
FossilOrigin-Name:
593a7e6e20a2f91fe3497edd7effad50ac876f7f03c9222e332dfeb43d26882e
drh [Sat, 13 Apr 2019 14:17:09 +0000 (14:17 +0000)]
Fix additional compiler warnings introduced by the previous check-in and found
by MSVC.
FossilOrigin-Name:
6fc0deffa4eed902fd13eefe6d2765f338f3dadc5b29f7cae5064e135417746b
drh [Sat, 13 Apr 2019 14:07:57 +0000 (14:07 +0000)]
drh [Sat, 13 Apr 2019 04:38:32 +0000 (04:38 +0000)]
Use the 64-bit memory allocator interfaces in extensions, whenever possible.
FossilOrigin-Name:
07ee06fd390bfebebc014b47583d489747b0423bb96c810bed5c605ce0e3be71
drh [Sat, 13 Apr 2019 04:01:12 +0000 (04:01 +0000)]
Enforce the SQLITE_LIMIT_COLUMN limit on virtual tables.
FossilOrigin-Name:
0b6ae032c28e7fe34d81d1769f6e2901addbd1b95cd9a255dcef274061fb0164
drh [Fri, 12 Apr 2019 16:25:42 +0000 (16:25 +0000)]
Test case changes so that they work with both Tcl8.6 and Tcl8.7.
FossilOrigin-Name:
7b771405a9adc3ec191156be4ebe7122f4c698d88d69ae2134c75acb8d8feebb
dan [Fri, 12 Apr 2019 13:40:54 +0000 (13:40 +0000)]
Tweaks to wapptest.tcl: Ensure that the "Debug" checkbox is disabled unless the app is in "config" state, and have Debug variants run "test" instead of "fulltest".
FossilOrigin-Name:
dd248c186a157b5ed60bbdae669b31237b8354c1a7e6ed64d377904043bd57ee
dan [Fri, 12 Apr 2019 12:10:03 +0000 (12:10 +0000)]
dan [Thu, 11 Apr 2019 19:07:17 +0000 (19:07 +0000)]
Add the test/wapptest.tcl script, an alternative to releasetest.tcl that uses wapp to provide the user-interface.
FossilOrigin-Name:
edd87cd606ce264f181c16bbe889adeb8b27e90914f914c0f5d7b68c2dc2d7bd
dan [Thu, 11 Apr 2019 19:04:01 +0000 (19:04 +0000)]
dan [Thu, 11 Apr 2019 19:03:15 +0000 (19:03 +0000)]
Further tweaks to wapptest.tcl. Add the ability to run the extra (n)debug tests that releasetest.tcl runs.
FossilOrigin-Name:
ec9c4f6d8da25dcc834812c2bb24bda1017833b1c572bdbbf87f0191e1310706
drh [Thu, 11 Apr 2019 17:06:54 +0000 (17:06 +0000)]
Remove the vfslog.c extension from the testfixture target in main.mk, as
that extension has no TCL bindings and is inaccessible.
FossilOrigin-Name:
d71f8bbc4efd8af935671c4e7626862d6e5a4c2e51527b9e82b2f0c94ddf6e93
dan [Thu, 11 Apr 2019 16:54:20 +0000 (16:54 +0000)]
Fix RBU so that it does not write rows that should be excluded into partial indexes (corrupting the database).
FossilOrigin-Name:
31eb27f438ad727b095a518bfe0f7ed37cb806fc1e6929b821eddcc6cc9de260
dan [Thu, 11 Apr 2019 06:50:52 +0000 (06:50 +0000)]
dan [Wed, 10 Apr 2019 19:45:19 +0000 (19:45 +0000)]
Have wapptest.tcl display the name, OS and architecture of the host.
FossilOrigin-Name:
c47e53b4d0f29628bd20ba3daf7e759c4bfed07710d982c095445c01376d57f5
dan [Wed, 10 Apr 2019 18:56:30 +0000 (18:56 +0000)]
drh [Wed, 10 Apr 2019 18:29:40 +0000 (18:29 +0000)]
Update the list of OMIT options in the omittest.tcl script.
FossilOrigin-Name:
f294cfc173c5653ef161dbff63b7838dbccdcad797f5163c49b3173f9f35ab0f
drh [Wed, 10 Apr 2019 13:24:35 +0000 (13:24 +0000)]
Further refinement of the sqlite3VdbeMEmExpandBlob() fix of check-in
[
df58774e994bd ] to prevent a reference to an unused variable - problem
discovered by Valgrind.
FossilOrigin-Name:
09435b5700a2650816ad9ffa628be5fa19da62369c30329801feb5e840463c7e
drh [Wed, 10 Apr 2019 12:02:55 +0000 (12:02 +0000)]
Change the name of some internal testing interfaces to avoid a name
conflict in AIX.
FossilOrigin-Name:
c1cae7e7f0a612508c8f82b334d9ebc423f443e99b13092d52e26b348c7cbc5e
drh [Wed, 10 Apr 2019 00:58:07 +0000 (00:58 +0000)]
Do not place arbitrary restrictions on the length of the failure message
for a uniqueness constraint.
FossilOrigin-Name:
037da798fa5510ba7c776831ebcd683a85dca28e25bc657ff17bb2b08c3d406e
drh [Tue, 9 Apr 2019 21:37:27 +0000 (21:37 +0000)]
drh [Tue, 9 Apr 2019 21:32:46 +0000 (21:32 +0000)]
Improved reporting of SQLITE_TOOBIG errors while parsing.
FossilOrigin-Name:
ea2d4b65e20e44e19219c821bf68e97ff3af1760b3b4762250d020ba2a5a6343
dan [Tue, 9 Apr 2019 20:50:44 +0000 (20:50 +0000)]
Fix a problem caused by a small SQLITE_LIMIT_LENGTH value and a CREATE TABLE with a very large name.
FossilOrigin-Name:
9b5d408864920b302f2d21abcae1d90f1e0cd68b18262136554ba0e6219d6025
dan [Tue, 9 Apr 2019 19:53:32 +0000 (19:53 +0000)]
Add test/wapptest.tcl, a wapp alternative to releasetest.tcl.
FossilOrigin-Name:
a4af0c2fee05aaa2e95ae6a5c847ff2d363e24f325f4ffdcf51bc264b9bf5e2d
drh [Tue, 9 Apr 2019 01:26:31 +0000 (01:26 +0000)]
Use an unsigned integer to count free pages in btree.c:freePage2().
FossilOrigin-Name:
8820408597341344b308277ce6ef41b47c7514d6c613520789b05ee52cbedae8
drh [Sun, 7 Apr 2019 18:21:12 +0000 (18:21 +0000)]
Make the testcase() macro added in the previous check-in reachable for
testing.
FossilOrigin-Name:
80704a16f6dbbeacc65fa36a3623df10292a28aeacf9e2c1d2891258479e3b89
drh [Sun, 7 Apr 2019 18:04:57 +0000 (18:04 +0000)]
Fix a faulty assert() in the sqlite3VdbeMemExpandBlob() routine.
FossilOrigin-Name:
df58774e994bd306b1a2e1f259e7e4408f01c5b1dc104673698168bbf8a63ce5
dan [Sat, 6 Apr 2019 15:38:46 +0000 (15:38 +0000)]
Fix two assert() statements in fts5 that are only true if the database is not corrupt.
FossilOrigin-Name:
edb095a9a679c8c702abd0a487e55ed4b09110b54bcd7d5275020576f2713a39
drh [Fri, 5 Apr 2019 21:17:11 +0000 (21:17 +0000)]
Remove some stale references to the addopcodes.tcl script from documentation.
FossilOrigin-Name:
c0381b0bc90aa3c2415c4b3ac338cfe6d308bb5d4247bc6f2b6e919f549c254c
drh [Fri, 5 Apr 2019 20:56:46 +0000 (20:56 +0000)]
Eliminate the tool/addopcodes.tcl script. The purpose of that script was to
keep the number of parser codes below 256 in order to save parser table space.
But we have long since blown through that ceiling so the addopcodes.tcl script
was just needless complexity. There is no longer any reason to keep it around.
FossilOrigin-Name:
d272819298083ebbde57962a2938925b1aaa1caf03e48bb3ea26ad91e0461d84
dan [Fri, 5 Apr 2019 20:47:15 +0000 (20:47 +0000)]
Add further tests so that veryquick.test covers all vdbe branches.
FossilOrigin-Name:
cbc67de5a3937fa65811ed7c13e870699c895660dc2132cf9d3cf5d83364e344
drh [Fri, 5 Apr 2019 17:22:50 +0000 (17:22 +0000)]
Improved comment on the sqlite3FaultSim() function. No changes to code.
FossilOrigin-Name:
08b29672c552e5a6a3874746c6cc7025295e0e44dec43a1bfba3022acce849ff
dan [Fri, 5 Apr 2019 16:52:45 +0000 (16:52 +0000)]
In the test_vfs.c VFS, if a Tcl xWrite script returns "SQLITE_OMIT", silently omit the write() call.
FossilOrigin-Name:
8b5a621e2ee3bb9d7d4f905217872e7e59153be9477aaa626cea287d56710b5b
drh [Fri, 5 Apr 2019 16:38:12 +0000 (16:38 +0000)]
Add the ability to override the new corruption detection logic
of the previous checkin, in order to exercise downstream corruption
detection during testing.
FossilOrigin-Name:
e859d3184606dd453b9fc4ee388922d7be4b61aad84a66ac82107935ffd56f3a
drh [Fri, 5 Apr 2019 15:44:55 +0000 (15:44 +0000)]
In the xfer-optimization, do early detection of when the source and destination
index share the same btree, to avoid a long delay prior to reporting the
database corruption.
FossilOrigin-Name:
af1e5873d44d31466023ae145bdfc6b4191eb48b62e5752c6e683bcf571980e7
dan [Thu, 4 Apr 2019 20:55:37 +0000 (20:55 +0000)]
Add further test cases to improve VDBE branch coverage.
FossilOrigin-Name:
51a95e52fc58d8be2c9c51576dff7258c705735b66d203948f80db017b4c10d2
drh [Thu, 4 Apr 2019 19:21:45 +0000 (19:21 +0000)]
Fix a typo in the documentation for sqlite3_value_frombind(). Also add a new
hyperlink to that same documentation. No code changes.
FossilOrigin-Name:
bf3cd9364fdfc951feb04f78728eb8e0dae12b3dc5702a36bb6e69c0abab8864
drh [Thu, 4 Apr 2019 18:20:25 +0000 (18:20 +0000)]
dan [Thu, 4 Apr 2019 17:58:34 +0000 (17:58 +0000)]
Add test cases to improve coverage of VDBE branches. Still some to go.
FossilOrigin-Name:
4cef609d61de272cfdc2b39e1d49c7cd56ec834086bd63095116ff98f4d402bd
drh [Thu, 4 Apr 2019 17:39:54 +0000 (17:39 +0000)]
Correctly initialize the loadable extension thunk.
FossilOrigin-Name:
4fca46ded7873d4939d7c6bff363ded41667f2255a4ab624a1a24bebbae733eb
drh [Thu, 4 Apr 2019 15:25:52 +0000 (15:25 +0000)]
Simplification of the recent VACUUM changes that make the code more like
what it was before the change. Also, make the VACUUM command a no-inline
procedure to work around a performance regression.
FossilOrigin-Name:
9cac5ac145d62117c918539baaa8a3c124230e031842e35fa1ba59f658c99518
drh [Thu, 4 Apr 2019 14:36:02 +0000 (14:36 +0000)]
Fix an incorrect comment on a test case for rowid renumbering in VACUUM.
FossilOrigin-Name:
0d293fb43f2eb64026ac1e0422f54d4839b101898cc9913fc7746760c08ed41f
drh [Thu, 4 Apr 2019 14:00:23 +0000 (14:00 +0000)]
Only preserve rowid values for VACUUM INTO. Keep the legacy behavior of
renumbering rowids for ordinary VACUUM.
FossilOrigin-Name:
13a0ea6466b051ea5281865ed5285b8b5a99ec4307f400c5f7b03692723f1cd1
drh [Wed, 3 Apr 2019 17:48:10 +0000 (17:48 +0000)]
Add a defense-in-depth NEVER() test to the WAL cleanup code.
FossilOrigin-Name:
8d3af2010f4f652865f5c0d18e3bc793de05f8e75e75cc77786f61004b2ad28f
dan [Wed, 3 Apr 2019 16:27:44 +0000 (16:27 +0000)]
Fix a couple of problems with "RANGE BETWEEN <expr> PRECEDING AND <expr> PRECEDING" frames.
FossilOrigin-Name:
39225cc77579896214dceb93b7f224b4b3bc95b3505a2e19b41b0b18b184fbc4
drh [Tue, 2 Apr 2019 18:12:20 +0000 (18:12 +0000)]
Small optimizations to the grammar for window functions save about 120 bytes
of space in the parser tables.
FossilOrigin-Name:
bce01d9584e52b23d7c07c2e832d5fa5d6e6235711c856b903a296725f61ed6e
drh [Tue, 2 Apr 2019 17:45:56 +0000 (17:45 +0000)]
Use a separate bit on db->dbOptFlags to disable the xInverse optimization on
window functions, rather than reusing the query-flattener disable bit.
FossilOrigin-Name:
bc0fb1c324be2fd668bc4398c7d364b7e3c5a98537fe5fb58a125b66f3e6d041
drh [Tue, 2 Apr 2019 17:45:01 +0000 (17:45 +0000)]
Including the phrase EXCLUDE NO OTHERS in the frame-spec of a window function
(which is the default setting for EXCLUDE) silently disables the xInverse
optimization. This is a feature, but we will keep it undocumented for now
in case we later decide it is a bad idea.
FossilOrigin-Name:
10aedce3dd2c0c9f0ee9e0aefd0b4d2c2eb17c4ca72003c4db9768ea5cdafcf4
drh [Tue, 2 Apr 2019 13:10:50 +0000 (13:10 +0000)]
Put the list of keywords in mkkeywordhash.c into alphabetical order.
FossilOrigin-Name:
ac98b23b34632fbc654a34a8b3d842ce65603e4c04d89c589b46f4d48a61152d
drh [Tue, 2 Apr 2019 00:56:20 +0000 (00:56 +0000)]
Make sure the MEM_FromBind bit inthe Mem.flags field is not included in
the MEM_TypeMask. This critical changes was omitted from the previous two
check-ins by mistake, and so those check-ins are not fully functional.
FossilOrigin-Name:
f7ba2daf91c96ba16958188d6084a0ff129310d348932de493d326f1d24679cd
drh [Tue, 2 Apr 2019 00:48:29 +0000 (00:48 +0000)]
Add new APIs to the extension loading mechanism.
FossilOrigin-Name:
6f122faf8a34b986e58ba4622cff918c6d133d6f91d4b723b50bd086d5bed8e1
drh [Tue, 2 Apr 2019 00:28:54 +0000 (00:28 +0000)]
Add the sqlite3_value_frombind() interface. Use that interface to
improve fts3_tokenizer().
FossilOrigin-Name:
b3f2c3205a28dc21ea7080e5e1ba246ce9c9b90c1309262ca11d8e40943ed677
drh [Mon, 1 Apr 2019 20:57:11 +0000 (20:57 +0000)]
Performance improvement on the OP_Variable opcode.
FossilOrigin-Name:
1dc7993bb6957587a6c63142e97b8e4137c3d81bbfd724f86048e0894bcb429b
drh [Mon, 1 Apr 2019 19:42:42 +0000 (19:42 +0000)]
Improvements to the sqlite3ExprImpliesNonNullRow() theorem prover.
FossilOrigin-Name:
3fde627616030ca0de87169467e2e453fdc91154942e3a3a92a221df5923b2d2
dan [Mon, 1 Apr 2019 18:43:09 +0000 (18:43 +0000)]
Add a test case to cover a missed VDBE branch generated by window.c.
FossilOrigin-Name:
b36813d6467c82159bd3bb69d34ac28fc161a13052ca67d7cf9ad75e2aaea9d5
dan [Mon, 1 Apr 2019 17:24:20 +0000 (17:24 +0000)]
If the library is built with SQLITE_VDBE_COVERAGE defined, have the Tcl tests generate a vdbe coverage report in file testdir/vdbe_coverage.txt.
FossilOrigin-Name:
f0ed714637bf30443d0551d9b6fececa00fc9dfe9669fe720c4598ef71c61e2c
drh [Mon, 1 Apr 2019 16:23:21 +0000 (16:23 +0000)]
Frame range comparisons can never be NULL because the values will have
been checked for NULL prior to the test.
FossilOrigin-Name:
fa37cf9a6aa3e4325674cb6af68f617d25e349c3f694d0117a19a36fc42daf15
drh [Mon, 1 Apr 2019 15:55:38 +0000 (15:55 +0000)]
Mark rowid-comparison opcodes as never-null for VDBE coverage tracking
purposes.
FossilOrigin-Name:
a69bb4f257500e40ef4056d5628ef25266def5bcef07eebdb471a79fffe80237
drh [Mon, 1 Apr 2019 14:30:30 +0000 (14:30 +0000)]
Improved VDBE branch coverage in the run-time frame-spec error detection
logic of window functions.
FossilOrigin-Name:
f56d305a7bad6608d51d8c8cef417ddb66cff50f0a75d28554ea669e47f3d90d
drh [Mon, 1 Apr 2019 14:01:21 +0000 (14:01 +0000)]
Improved comments on the VDBE branch coverage testing logic. Fix the
VDBE branch coverage measurement on the OP_MustBeInt opcode.
FossilOrigin-Name:
8681750e855a020ee374cb9f973f701a72068e33f97d0101a4fab3a228e5ebda
drh [Mon, 1 Apr 2019 13:06:19 +0000 (13:06 +0000)]
Fix a defect in the VDBE branch coverage testing logic.
FossilOrigin-Name:
1fcf3307d37f0e8e0c8c54491c609b73c7add6eaa38409a41c7cd6614a877a19
mistachkin [Mon, 1 Apr 2019 03:07:21 +0000 (03:07 +0000)]
Fix harmless compiler warnings seen with MSVC.
FossilOrigin-Name:
6cf8b18ec20f11c25ff7396f29c742404d3a88d5e97a5fd53ccfaff51dec3f33
drh [Sun, 31 Mar 2019 21:09:33 +0000 (21:09 +0000)]
Early detection of too many columns in an index avoid a possible 16-bit
signed integer overflow.
FossilOrigin-Name:
8af0caeb6d1e55f66ad2f12af94845dccfe1d0420faf326f5917fc07f8aa6050
drh [Sun, 31 Mar 2019 18:17:00 +0000 (18:17 +0000)]
drh [Sat, 30 Mar 2019 20:43:40 +0000 (20:43 +0000)]