]>
git.ipfire.org Git - thirdparty/sqlite.git/log
drh [Wed, 31 May 2017 16:21:54 +0000 (16:21 +0000)]
Add the SQLITE_STMTSTATUS_MEMUSED option for sqlite3_stmt_status() that reports
the amount of heap memory used for a single prepared statement.
FossilOrigin-Name:
b57d510465458dec5b5fc778fd6e8833392964201f9febebf526e60a543da0c2
drh [Wed, 31 May 2017 16:09:04 +0000 (16:09 +0000)]
Add the experimental "stmts" virtual table for introspection of prepared
statements.
FossilOrigin-Name:
cb4c5c66aba757356da3b8ec3c66a5c8c40e180b3360638ac634f7787404a5b1
drh [Wed, 31 May 2017 13:45:59 +0000 (13:45 +0000)]
Avoid allocating excess memory to the KeyInfo objects.
FossilOrigin-Name:
df7859435161f3ecf36635ce574bf73573516a1f2c6e75be320619364e7067d1
drh [Wed, 31 May 2017 13:27:15 +0000 (13:27 +0000)]
Remove a completely unnecessary memset() from the INSERT code generator.
FossilOrigin-Name:
7d58836b9db1293a3a6581af4358b7c91a588efd5c9b2df384803f3855ff87a8
drh [Wed, 31 May 2017 11:24:13 +0000 (11:24 +0000)]
Very small performance increase in sqlite3VdbeSetNumCols().
FossilOrigin-Name:
8885b4461044ae8ecdfe1b9aa47f4aad65efabc98e3fcd9e307a06504fab34c6
drh [Wed, 31 May 2017 03:20:39 +0000 (03:20 +0000)]
Reorder fields in the PgHdr object for a performance increase.
FossilOrigin-Name:
326e63d71e0e164c5bcd1f74772cb4071b82daf6f04a5d440b985bace5a4c941
drh [Wed, 31 May 2017 02:58:30 +0000 (02:58 +0000)]
Avoid unnecessary memory zeroing during expression list allocation.
FossilOrigin-Name:
de28e6514a42438411e2c9d833ba660108128ca86d0b90f32925fb73195f4862
drh [Wed, 31 May 2017 00:49:40 +0000 (00:49 +0000)]
Size and performance optimizations to sqlite3ResolveExprNames().
FossilOrigin-Name:
af8c0fed93c830c50641d95691bb507c31947a15529aba2a88bfaa66b3a3287a
drh [Tue, 30 May 2017 18:34:07 +0000 (18:34 +0000)]
Change sqlite3BtreeNext() and sqlite3BtreePrevious() so that they return
SQLITE_DONE if they have already reached the end (or beginning) of the table.
This gives a performance increase and size reduction.
FossilOrigin-Name:
e972a3860892022d57b26ec44ce0fbadc61c1ff54b7a10b7e82390db88d323a7
dan [Tue, 30 May 2017 18:14:47 +0000 (18:14 +0000)]
Omit a test of codepoint 0x202F (non-break narrow space) from the fts3 ICU
tests. Different versions of ICU apparently handle this obscure codepoint
slightly differently.
FossilOrigin-Name:
69ae688982d6cb9f859f5643c315a1dc5ba76ad35553ecea8329a75ee70a87b1
drh [Mon, 29 May 2017 22:44:18 +0000 (22:44 +0000)]
More efficient error handling and reset in the binding mechanism.
FossilOrigin-Name:
9a3e3b34ba6eafce2f560c13225a3673e18d696b29295b59d958e938fa593baf
drh [Mon, 29 May 2017 17:59:29 +0000 (17:59 +0000)]
Omit unnecessary fstat() calls for determining the database file size,
resulting in smaller and faster code.
FossilOrigin-Name:
dd61c736775c53450821327495276485dced7935d0b4b5ebd17662731afc8adb
drh [Mon, 29 May 2017 17:43:06 +0000 (17:43 +0000)]
Fix an issue with OPT_FEATURE_FLAGS in configure.ac.
FossilOrigin-Name:
43ce3bd3a4b41ea757e308e563d6c1bf7f9c09f10e4766c536d0bf1042c45613
drh [Mon, 29 May 2017 16:45:45 +0000 (16:45 +0000)]
Avoid unnecessary fstat() calls to determine the database size when
transitioning into a read transaction on a rollback-mode database.
FossilOrigin-Name:
6c3476b513965df22d648f9a1b99733af753b44d51163cc7d42a69bf562300e1
drh [Mon, 29 May 2017 14:57:23 +0000 (14:57 +0000)]
Avoid unnecessary calls to fstat() to determine the database file size.
FossilOrigin-Name:
c733a1dea37e4678e7bd0d3d0ca9b8eae1fbdc28615f75d8f1e5141aa53567d9
drh [Mon, 29 May 2017 14:30:46 +0000 (14:30 +0000)]
drh [Mon, 29 May 2017 14:26:07 +0000 (14:26 +0000)]
Optimizations to the Walker object and its methods to make the code a little
smaller and to help it run a little faster.
FossilOrigin-Name:
6854a34ed708259f2280f7ee56cec09f7fc99810dc739dc2814ddeae286aa2c4
drh [Mon, 29 May 2017 13:09:24 +0000 (13:09 +0000)]
Correctly initialize the iSelectId of FROM clause terms that are a self
join of a reused materialized subquery. Without this, the EXPLAIN QUERY PLAN
output for the query will identify the subquery using the uninitialized
(and arbitrary) iSelectId.
FossilOrigin-Name:
43c9ae371f6250fee98a7c4011726eff8ad37f5a97add4f490ac3a2dd501a0d2
mistachkin [Mon, 29 May 2017 03:48:13 +0000 (03:48 +0000)]
Improve shell help text for the '.open' command.
FossilOrigin-Name:
7cc940a97efc096ff3725710f526c06f52453bd923fb9e825ce6990275df747a
drh [Sat, 27 May 2017 22:42:36 +0000 (22:42 +0000)]
drh [Thu, 25 May 2017 21:35:56 +0000 (21:35 +0000)]
Small performance increase and size decrease in the btreeInitPage() routine.
FossilOrigin-Name:
6f415833e0554706dcf04f68ecba4ca2e54c08f3bbf6a1dba182bb132c912a2e
drh [Thu, 25 May 2017 17:27:52 +0000 (17:27 +0000)]
Merge the LEFT JOIN query flattener fixes from 3.19.2.
FossilOrigin-Name:
6513e4a121e32df7e5cd95f47cdf8049b85bdbcb378cf23db29838fb1143d3ce
drh [Thu, 25 May 2017 16:50:27 +0000 (16:50 +0000)]
drh [Thu, 25 May 2017 11:39:50 +0000 (11:39 +0000)]
The SQLITE_EXTRA_IFNULLROW compile-time option causes OP_IfNullRow opcodes
to be issued for references to the right-hand side table of *any* flattened
join, not just LEFT JOINs. This puts extra stress on the OP_IfNUllRow opcodes
for testing purposes.
FossilOrigin-Name:
1a074c8a2bc0b28918ef905339d11a21d30101b4ea8c06c8b3faca7d17237538
drh [Thu, 25 May 2017 00:28:36 +0000 (00:28 +0000)]
The TK_IF_NULL_ROW expression node must be treated as a variable that
references the table Expr.iTable.
Proposed fix for ticket [
7fde638e94287d2c ].
FossilOrigin-Name:
b30a364a12d9865242b1444984cd25ee126dc69108d5c6a2d4b35df184437fe9
drh [Thu, 25 May 2017 00:12:04 +0000 (00:12 +0000)]
Increase the version number to 3.19.2 since ticket [
7fde638e94287d2 ] is
going to necessitate another patch release.
FossilOrigin-Name:
c315727acd5fffe6e83ad9a5e84360d5cfa9aa8faa10d4970ea9823c7e8126ee
drh [Thu, 25 May 2017 00:08:48 +0000 (00:08 +0000)]
The TK_IF_NULL_ROW expression node must be treated as a variable that
references the table Expr.iTable.
Proposed fix for ticket [
7fde638e94287d2c ].
FossilOrigin-Name:
77fc23013cebc7797985864b91d78db5d0e2469511732044ebfaf02b891c979a
mistachkin [Wed, 24 May 2017 15:32:44 +0000 (15:32 +0000)]
drh [Wed, 24 May 2017 13:08:33 +0000 (13:08 +0000)]
drh [Wed, 24 May 2017 04:18:00 +0000 (04:18 +0000)]
Fix a problem in STAT4 equality estimation for multi-column indexes
introduced by check-in [
3e0590dee0e68cc1599 ].
FossilOrigin-Name:
cfb0d9e0207128b1c2b48689288a849b19dbc00a22cfaca26eec4bfc773629f8
drh [Tue, 23 May 2017 20:00:00 +0000 (20:00 +0000)]
Remove the msvc.h header file from the autoconf tarball.
FossilOrigin-Name:
84996aef68adeabc8bd97cad269188c67de628f776337a25ec2d63bc956cee78
drh [Tue, 23 May 2017 19:35:20 +0000 (19:35 +0000)]
Do not use strcpy() in the (obsolete) amatch extension.
In releasetest.tcl, run Apple tests using -Os instead of -O1
FossilOrigin-Name:
4440e42031b9cb0edf9a8621cd4f46f209392940ec5b9eefcf8c1e3fef5f7b76
drh [Tue, 23 May 2017 15:33:41 +0000 (15:33 +0000)]
Disable the LEFT JOIN flattening optimization for aggregate queries, as it
does not currently work. Further fix for ticket [
cad1ab4cb7b0fc344 ].
FossilOrigin-Name:
05ada741554b9fd00befcf7b4083637f53de68699ae5210ac18e0773ad1a9910
drh [Tue, 23 May 2017 15:21:37 +0000 (15:21 +0000)]
Disable the LEFT JOIN flattening optimization for aggregate queries, as it
does not currently work. Further fix for ticket [
cad1ab4cb7b0fc344 ].
FossilOrigin-Name:
44b21e35c92137cc519d0cc87c627cc531d0bd442a7b9a7356fa2c6bc5f70fb6
drh [Tue, 23 May 2017 12:44:57 +0000 (12:44 +0000)]
Ensure that the expression rewriter inside the query flattener decends into
the substructure of the TK_IF_NULL_ROW operator. This is a continuation
of the fix for ticket [
cad1ab4cb7b0fc344 ].
FossilOrigin-Name:
28d2902d8f4dfbbfc610f271e00d353b0baae386b56b482f96b88836410be129
drh [Tue, 23 May 2017 12:36:13 +0000 (12:36 +0000)]
Ensure that the expression rewriter inside the query flattener decends into
the substructure of the TK_IF_NULL_ROW operator. This is a continuation
of the fix for ticket [
cad1ab4cb7b0fc344 ].
FossilOrigin-Name:
941d8142b7c9a96ff143d1add3c86cf42d61fd08e532d400dac555f23eadbcfb
drh [Tue, 23 May 2017 01:35:22 +0000 (01:35 +0000)]
drh [Tue, 23 May 2017 01:30:26 +0000 (01:30 +0000)]
Remove a surplus semicolon, which was harmless on gcc and clang but caused
compile-time errors on msvc. This only comes up using the encryption extension.
FossilOrigin-Name:
4510d55d1e2e23d4a4470dbd414161beec2ceefb7537fd66ea3c347e11624dfc
drh [Tue, 23 May 2017 01:29:35 +0000 (01:29 +0000)]
When flattening a query, make sure iTable attribute of TK_IF_NULL_ROW
operators (that result from a prior flattening of a LEFT JOIN) are updated
correctly. Fix for ticket [
cad1ab4cb7b0fc344 ].
FossilOrigin-Name:
919d36e6ea112c8c94f01e02611c48e78c441657e6898a466cfc39f1e0001403
drh [Tue, 23 May 2017 01:21:07 +0000 (01:21 +0000)]
When flattening a query, make sure iTable attribute of TK_IF_NULL_ROW
operators (that result from a prior flattening of a LEFT JOIN) are updated
correctly. Fix for ticket [
cad1ab4cb7b0fc344 ].
FossilOrigin-Name:
92c178507df553e4f1110342c8f9b11b3ee37989e1d634fcaccabf657befa22f
drh [Tue, 23 May 2017 00:32:56 +0000 (00:32 +0000)]
Remove a surplus semicolon, which was harmless on gcc and clang but caused
compile-time errors on msvc. This only comes up using the encryption extension.
FossilOrigin-Name:
987a2b5537254b1fe843eb798d7eb7f04dbe1e32fb827cfb9e1e1ef6c2096759
dan [Mon, 22 May 2017 18:09:00 +0000 (18:09 +0000)]
Fix incompatibilities between the "sqldiff --changeset" command and the
sessions module. Specifically, allow sessions to process changesets containing
tables with zero operations on them and have sqldiff output the expected
output for tables with multi-column primary keys.
FossilOrigin-Name:
0bb23c48064cc64134697469f3f4d2d3610b9e6c7a0dc54a3c47a00bd6c2a860
drh [Mon, 22 May 2017 18:00:34 +0000 (18:00 +0000)]
Add the ".cd" command to the command-line shell.
FossilOrigin-Name:
5fe28e15b1d6d8a588fcaf93c6035c0e0ab7bcad1067c7933cd430d2e04bbbd8
drh [Mon, 22 May 2017 17:39:37 +0000 (17:39 +0000)]
Increase the version number to 3.20 for the next release cycle.
FossilOrigin-Name:
ab471f61ef7d9ed1bf937d5e458f720d12209712a015786434edc818a98168c9
drh [Mon, 22 May 2017 14:04:46 +0000 (14:04 +0000)]
Merge the last-minute 3.19.0 changes into trunk.
FossilOrigin-Name:
e6ba2a93a8d28074ff134dd43c142315de291b7c0a38ecc692863c33975c71c7
drh [Mon, 22 May 2017 13:58:13 +0000 (13:58 +0000)]
drh [Mon, 22 May 2017 13:06:45 +0000 (13:06 +0000)]
Include the "msvc.h" header file in the amalgamation tarball.
FossilOrigin-Name:
3dd6fe53c7ae6ebe2393e956d040e00b8cd0589674d20aafe1585aaa61325bbe
dan [Mon, 22 May 2017 08:04:09 +0000 (08:04 +0000)]
Fix a case where NULL was being passed to memcmp() following an OOM. This is
probably not a real problem, as the number-of-bytes parameter was passed 0 in
this case, but it was causing a santizer complaint.
FossilOrigin-Name:
3ea2bad27e516d5dbfa4a9cb0c767d6a8387280a7e4bbf2ae80cd318da670d66
drh [Mon, 22 May 2017 00:45:15 +0000 (00:45 +0000)]
When planning a query using sorting, resolve ties in the solver by selecting
loop plans with the smaller unsorted cost.
FossilOrigin-Name:
f261678c90297f9767040c577796cc1d4db598aa44b0de6906cb73eaef377dee
drh [Fri, 19 May 2017 23:04:04 +0000 (23:04 +0000)]
Prevent a possible NULL pointer dereference in the OP_Found opcode that
can follow an OOM error. Problem found by OSS-Fuzz.
FossilOrigin-Name:
50ad60ded54aa22dfdf519ed5da6451de790e22a972ff299f7976fbdce7a0579
drh [Fri, 19 May 2017 22:51:00 +0000 (22:51 +0000)]
Prevent a possible NULL pointer dereference in the OP_Found opcode that
can follow an OOM error. Problem found by OSS-Fuzz.
FossilOrigin-Name:
c2de178fe7e2e4e0d764e7e6ac637cfc8c053580c43f7246318dafad2974de3c
drh [Fri, 19 May 2017 20:55:04 +0000 (20:55 +0000)]
Improved comments on one routine in the query planner. Improved diagnostic
output for ".wheretrace". No production code changes.
FossilOrigin-Name:
946b87a5282f00d8c532a51f4390e6de781b9a0d6626cb3c077c5622895dc540
drh [Fri, 19 May 2017 20:47:54 +0000 (20:47 +0000)]
Fix a documentation typo. No changes to code.
FossilOrigin-Name:
68942a4feeb83e6e1a32d9bd724ae1d72669949adcfad07fb05b0ac48daf5151
drh [Fri, 19 May 2017 20:46:27 +0000 (20:46 +0000)]
dan [Fri, 19 May 2017 12:32:32 +0000 (12:32 +0000)]
Fix some problems in fts5 code detected by -fsanitize=undefined.
FossilOrigin-Name:
35f721045dfe3f82e016938ab1a668bfc37b6b57b8813cc963ef640ec82de58d
drh [Thu, 18 May 2017 18:17:55 +0000 (18:17 +0000)]
Fix a documentation typo. No changes to code.
FossilOrigin-Name:
cfa4aa203646f44b303138c25672293bb87d97126fe2030d4709e8ad7814a807
dan [Tue, 16 May 2017 09:49:42 +0000 (09:49 +0000)]
Update the tool/warnings.sh script to automatically use the right options on OpenBSD..
FossilOrigin-Name:
7940bff32aa6ea868a53680822d148b7ec7a075c01ae9e0d5ad9859bcc339054
drh [Mon, 15 May 2017 15:12:24 +0000 (15:12 +0000)]
Fix the build so that it works again with SQLITE_OMIT_SUBQUERY.
FossilOrigin-Name:
bb0d9281588b8cc24bf2f1f10d0c56277004226adaa2ce5037782503b283b45d
drh [Mon, 15 May 2017 15:05:48 +0000 (15:05 +0000)]
mistachkin [Fri, 12 May 2017 14:05:11 +0000 (14:05 +0000)]
Make sure the 'sqlite3changegroup_*' functions are included in the SQLITE_APICALL handling.
FossilOrigin-Name:
a123cb93307a6c48bd711d6af9828c87a1365e023f6fe4ca6eae264c8ec5e0c0
dan [Thu, 11 May 2017 19:09:19 +0000 (19:09 +0000)]
Add another test case for the new authorizer functionality.
FossilOrigin-Name:
339df63f4064f3b9c8d4e8b82e72d00b49d9406bc350b14809a4caf7ddc4b736
drh [Thu, 11 May 2017 18:42:19 +0000 (18:42 +0000)]
Enhance the json_extract() function to reuse parses of the same JSON when
the function appears multiple times in the same query.
FossilOrigin-Name:
3ba9e7ab79e32090a71c7aa152da9bd5951940ae5e2cf433bceadeb6bfca193f
dan [Thu, 11 May 2017 18:14:06 +0000 (18:14 +0000)]
Do not save the state of an fts5 merge operation mid-way through an input
term, even if no previous entry for that term has caused any output. Doing so
may corrupt the FTS index.
FossilOrigin-Name:
9a2de4f05fabf7e725666fb8824ae1adad56834d7ae4f2e118375bb6f9c0ae77
drh [Thu, 11 May 2017 16:49:59 +0000 (16:49 +0000)]
Cache the JSON parse used by json_extract().
FossilOrigin-Name:
44ca6c2c4639f3c50ae9233ee299ff0fc4566462c31f28d8676f8de7ffdcd7f0
drh [Thu, 11 May 2017 15:20:18 +0000 (15:20 +0000)]
Negative N values in sqlite3_get_auxdata() and sqlite3_set_auxdata() can be
used to access an auxiliary data cache over all functions in a single prepared
statement.
FossilOrigin-Name:
ff5306752e83e760255a10f20168c0f090929a4fee2a5f720dfab36f0ee72fae
drh [Thu, 11 May 2017 13:43:57 +0000 (13:43 +0000)]
New requirements marks and documentation for the authorizer.
FossilOrigin-Name:
3980ea0911b3ad3f86d7a7bdc6503f233315c274f473e18831e13eda2c238eeb
drh [Thu, 11 May 2017 12:27:21 +0000 (12:27 +0000)]
Improvements to the sqlite3_set_authorizer() documentation.
FossilOrigin-Name:
47629b1911e52445aad8ea969137bddf0019c55b4a4f0de8e77decb6a434c8a2
drh [Thu, 11 May 2017 12:05:23 +0000 (12:05 +0000)]
Change the SQLITE_READ authorization call for unreferenced tables to use
an empty string for the column name, as this is less likely to impact legacy
authorization callbacks that assume column names are always non-NULL.
FossilOrigin-Name:
4139953ab528f20fa346409810edcb22adb6c1edc9d22f40b1b077ef842a2441
drh [Wed, 10 May 2017 19:42:52 +0000 (19:42 +0000)]
Rename fields of the internal AuxData object to make them unique and easier
to search for.
FossilOrigin-Name:
2be9850cef6492e168243807c34af72119ffbe414027a12c4eda6c421b5b950d
drh [Wed, 10 May 2017 16:33:48 +0000 (16:33 +0000)]
Improved documentation for the SQLITE_READ authorizer callback. No code changes.
FossilOrigin-Name:
92c5ea7047323d10f762877c5f56d20a3e609e8b55efcfe4880ef3048821ac1f
drh [Wed, 10 May 2017 16:12:00 +0000 (16:12 +0000)]
Invoke the SQLITE_READ authorizer callback with a NULL column name for any
table referenced by a query but from when no columns are extracted.
FossilOrigin-Name:
92ab1f7257d2866c69eaaf4cf85990677b911ef425e9c5a36a96978cccfb551c
dan [Wed, 10 May 2017 13:36:04 +0000 (13:36 +0000)]
Fix a couple of test scripts so that they work with
-DSQLITE_DISABLE_FTS4_DEFERRED builds.
FossilOrigin-Name:
30018d31068f3182d713a6cf09753b27b16a6f912d39a5e6c1363da83bec3125
drh [Wed, 10 May 2017 12:58:34 +0000 (12:58 +0000)]
Avoid unnecessary codec operations on in-memory subjournals.
FossilOrigin-Name:
199b2a84992823b4687588a5ba20bec9c42579887068ac21caf08df3895f41ed
drh [Wed, 10 May 2017 12:49:50 +0000 (12:49 +0000)]
Do not invoke codec macros for in-memory subjournals.
FossilOrigin-Name:
d2bb0066f7c8413ef9992e6b07641cdf40ad260778074bd83cc22dcaba87860b
dan [Mon, 8 May 2017 18:29:36 +0000 (18:29 +0000)]
Do not invoke codec macros when reading or writing an in-memory sub-journal.
FossilOrigin-Name:
2c145ee6c9e7916f022331453384cbe61ee3654c08a1b88467f85235b5bc18c4
drh [Sat, 6 May 2017 18:09:36 +0000 (18:09 +0000)]
Fix an obscure assertion fault that can follow an OOM. The problem
was introduced by check-in [
a1cf44763277b6c7 ].
FossilOrigin-Name:
04e7e5650efffdce759b46999beb67c250af6cf394a7779ab861f210a84c134d
drh [Sat, 6 May 2017 17:12:52 +0000 (17:12 +0000)]
Fix requirements marks and harmless compiler warnings.
FossilOrigin-Name:
198ff4c01d86d193a54745764d69376cab8e94747a4daa444690f7e1ec87800b
drh [Thu, 4 May 2017 11:13:50 +0000 (11:13 +0000)]
Fix a collision of the "B0" identifier name between the termios.h header
file and the SHA3 implementation in the shell.
FossilOrigin-Name:
b9a58daca80a815e87e541cb5fff9bc8b93f131d223f322c5b83dd5a5f0c0312
drh [Wed, 3 May 2017 19:36:50 +0000 (19:36 +0000)]
Remove the unused "sqlite3_stack_used" TCL command from the test harness.
FossilOrigin-Name:
e24b73820cdca07eee87853fe6dd9f60d76e039eeb4aebef03654db3c7c94f14
drh [Wed, 3 May 2017 17:44:28 +0000 (17:44 +0000)]
Fix the sqlite3GetInt32() function so that it correctly returns 0 on a
zero-length input string.
FossilOrigin-Name:
05eba9e3a5f9bb2a40af1dacd885e1915fbcd20b9af4cf0eed79ac16dbeba31b
drh [Wed, 3 May 2017 15:54:53 +0000 (15:54 +0000)]
Always enable URI filenames when compiling with SQLITE_HAS_CODEC. Also allow
plaintext keys using the key= query parameter.
FossilOrigin-Name:
31a51b4d168065fa59cc0e52ba798bd87ac82160c675bd531442b65133edb401
drh [Tue, 2 May 2017 18:00:31 +0000 (18:00 +0000)]
Fix the fts3EvalAverageDocsize() routine so that it returns errors from
sqlite3_reset() rather than always returning SQLITE_OK.
FossilOrigin-Name:
430f539cbb3f806fb89191e0b759a5f8b49d9e5b6c95fe9a4b55a1aa0875762a
drh [Tue, 2 May 2017 17:54:19 +0000 (17:54 +0000)]
Reuse the same materialization of a view when that view appears in a query
more than once, such as in a self-join.
FossilOrigin-Name:
9e35c89dbe744312f612e507b51ff9a5bb656def75392d25bc19fc638548cd1e
drh [Tue, 2 May 2017 16:55:07 +0000 (16:55 +0000)]
Move terms of the HAVING clause that reference only columns in the GROUP BY
clause over to the WHERE clause, resulting in a faster query plan.
FossilOrigin-Name:
47cbb471d056c8e1834a5ca72491404a3bfb273b5ff7bdd84b98d263938ea874
drh [Tue, 2 May 2017 16:46:41 +0000 (16:46 +0000)]
Additional comments on the sqlite3ExprIsConstantOrGroupBy() routine. No
code changes.
FossilOrigin-Name:
8424492eac506866d2918e5fe03c8f65fef960215d56012a3b52ed42789ed35a
mistachkin [Tue, 2 May 2017 01:30:44 +0000 (01:30 +0000)]
drh [Mon, 1 May 2017 19:53:12 +0000 (19:53 +0000)]
dan [Mon, 1 May 2017 18:24:01 +0000 (18:24 +0000)]
Enhance "PRAGMA integrity_check" to detect duplicate rowids within a leaf
page.
FossilOrigin-Name:
adcad37b001d255299be716b16003b56ec1fba349ef73261ee0e543186c4f311
dan [Mon, 1 May 2017 18:12:56 +0000 (18:12 +0000)]
Clear the BTCF_ValidNKey flag set if a cursor is moved by
sqlite3BtreeInsert(). Fix for [
f68dc596c4 ].
FossilOrigin-Name:
a6727eef6d757a39ad23e5c8cbe960f5d909e5d37cb4e90bc3bdbb8bf58cd6f8
drh [Mon, 1 May 2017 17:04:35 +0000 (17:04 +0000)]
Futher bug fixes to the function that determines when a materialized view
can be reused.
FossilOrigin-Name:
c64fe3a1695925693385d313e9ad2a1d8cb37ddaa8cc19920ae0978c91bc4c2c
drh [Mon, 1 May 2017 16:37:20 +0000 (16:37 +0000)]
Minor bug fixes and performance enhancement.
FossilOrigin-Name:
b2aae559581d05e4e8caaddfbd137cb275d582e82d58872c6f42e462dc859b1c
drh [Mon, 1 May 2017 15:15:41 +0000 (15:15 +0000)]
Initial implementation of an optimization that attempts to reuse the same
materialization of a view on a self-join of the view.
FossilOrigin-Name:
478c34b9a8b5127d13024e10307aa832f160b89720c46424dd17555bd36f590d
dan [Mon, 1 May 2017 14:09:32 +0000 (14:09 +0000)]
Add extra tests for the optimization on this branch.
FossilOrigin-Name:
4921cd9520080f9baff70e548f64a56e2204b398b8397a2d318a98c32ec4b00c
dan [Sat, 29 Apr 2017 20:53:09 +0000 (20:53 +0000)]
Automatically transfer terms from the HAVING clause to the WHERE clause of an
aggregate query in cases where the result of evaluating the term depends only
one one or more of the GROUP BY expressions (and on no other inputs).
FossilOrigin-Name:
5375a3ce56f1d993b13b469fe33ec7679948f53940f62a15ddbaeb8aaa26a22c
drh [Sat, 29 Apr 2017 19:29:49 +0000 (19:29 +0000)]
Add a single testcase() macro to the subquery processing logic.
FossilOrigin-Name:
4e1df76e3d85922648e0e1cce73a266c3b1ed4511ace259ec0a01d7693af9e6f
drh [Sat, 29 Apr 2017 18:02:49 +0000 (18:02 +0000)]
Improvements to opcode documentation in the bytecode engine.
No changes to code.
FossilOrigin-Name:
e54c9f8db5b2fa8ea82c6eab7482255431af16901f7992c9667b56a0e50a9f4f
drh [Sat, 29 Apr 2017 15:27:04 +0000 (15:27 +0000)]
Evaluate WHERE clause terms that reference only the index before evaluating
terms that require the table, and thereby avoid seeking the table row if
index terms are false.
This is called the "push-down" optimization in the MySQL world, we are told.
FossilOrigin-Name:
d7bb79ed3a40419d143fbe35c310e51fe7b384a22f082a61ad788671d2d33ee0
drh [Sat, 29 Apr 2017 14:56:55 +0000 (14:56 +0000)]
Minor size and performance improvements to the push-down optimization.
FossilOrigin-Name:
91dfb61a1a25763bb0b5c1e353a9d584bc6de3f6eb445f54202ffe7f6fee6e8d
dan [Fri, 28 Apr 2017 19:59:55 +0000 (19:59 +0000)]
Within a loop that uses a non-covering index test, test non-indexed terms that
can be tested without seeking the main table cursor before those that cannot.
FossilOrigin-Name:
afe68f0a8060dc5c92cb1fb32a9f22bd36140cd2c0bb5b6cea853e169c5ed444
dan [Wed, 26 Apr 2017 17:21:33 +0000 (17:21 +0000)]