drh
c84a4020ef
Improvements to WHERE-clause debug tracing. Show TK_MATCH expressions and
...
show more details on WhereTerm traces.
FossilOrigin-Name: 71087c12bc75a82f5d1051600a442ef6efc5e899
2016-05-27 12:30:20 +00:00
drh
a536df4e7f
In a query with both ORDER BY and LIMIT, if the inner loop satisfies the
...
ORDER BY then try to cut short each invocation of the inner loop once the
LIMIT has been satisfied. This check-in is a partial implementation only.
FossilOrigin-Name: 852d1eda6ecca1171f6ed800b06f5b4854672002
2016-05-19 22:13:37 +00:00
drh
44aebff246
Improvements to the way the LIKE optimization is implemented, resulting in
...
slightly smaller and faster code that is easier to test.
FossilOrigin-Name: 54c63b329288729031f45b7778752552cd90e226
2016-05-02 10:25:42 +00:00
drh
497116007e
Add the SF_HasAgg constant (currently unused). Also enhance the comments on
...
many other constant definitions to detail constraints on their values.
FossilOrigin-Name: 7b7a69d098f7581a43b818c251717c2450b797de
2016-04-14 16:40:13 +00:00
drh
f1b5ff73cb
Rename WhereInfo.pResultSet to pDistinctSet to more accurately reflect what
...
it represents.
FossilOrigin-Name: 5317961411695e107e8cefdeaba62280429979ca
2016-04-14 13:35:26 +00:00
drh
c3489bbf77
Take the LIMIT clause into account when estimating the cost of sorting.
...
FossilOrigin-Name: d491745cab951e0de70f1f79b7640ea8aff6e8bb
2016-02-25 16:04:59 +00:00
drh
f19aa5fa6f
Changes to the way that the default BINARY collating sequence is recorded
...
result in a slightly smaller and slightly faster executable. More work could
be done to make this cleaner.
FossilOrigin-Name: 2081d75767dc590b4c8457e5f8e5f18ba5f8eaa7
2015-12-30 16:51:20 +00:00
drh
41d2e66ef3
Add the SQLITE_LIKE_DOESNT_MATCH_BLOBS compile-time option.
...
FossilOrigin-Name: 9e1d6d4c391ff90077f0d1cdeb567969fee9f747
2015-12-01 21:23:07 +00:00
dan
07bdba86d5
Add experimental support for LIKE, GLOB and REGEXP to the virtual table interface.
...
FossilOrigin-Name: 277a5b4027d4c2caba8143228a4f7d6df899dbb4
2015-11-23 21:09:54 +00:00
drh
b0264eeca1
Use symbolic names ONEPASS_OFF, ONEPASS_SINGLE, and ONEPASS_MULTI for the
...
various modes of the one-pass optimization.
FossilOrigin-Name: 16e56bdadef903c6439a487f2683388aeeb0c625
2015-09-14 14:45:50 +00:00
drh
6860e6fa6f
Activate the ability to use expressions in indexes in a query. There are some
...
test failures, but mostly this seems to work.
FossilOrigin-Name: 42f93f582eccd8a778189aa6c113874f995ab751
2015-08-27 18:24:02 +00:00
drh
a3f108e93d
Reduce the size of the WhereScan object by 24 bytes while also clarifying its
...
operation.
FossilOrigin-Name: cbc3c9a8bf169ae0b21f26855038502c6cc25cfe
2015-08-26 21:08:04 +00:00
drh
01d230ce05
A list of arguments following a table name translates into equality
...
constraints against hidden columns in that table.
FossilOrigin-Name: 40e12cfe4c29475417ba89fb637b4c763cf74016
2015-08-19 17:11:37 +00:00
drh
6c1f4ef217
Split more subfunctions of where.c out into a new whereexpr.c source file,
...
for improved maintainability.
FossilOrigin-Name: 46ef95c108ad8961f2bf3d2dc839d4fb1fddd770
2015-06-08 14:23:15 +00:00
drh
6f82e85a80
Split out the bulk of the actual VDBE code generation logic from where.c
...
into a new file, leaving behind the analysis logic. This makes the original
where.c smaller and hopefully easier to edit.
FossilOrigin-Name: faa0e420e93a2bc1c84df9eb9fef4748d29ce339
2015-06-06 20:12:09 +00:00
drh
e8d0c61f0a
A new implementation of indexing with the IS operator that works correctly
...
when the IS operator is in the WHERE clause and the operands are from
opposite sides of a LEFT JOIN.
FossilOrigin-Name: 4541688b3f56f5cd3d5b299594b58c577ad633bb
2015-05-14 01:05:25 +00:00
drh
9be1870994
Simplified implementation of indexing with the IS operator.
...
FossilOrigin-Name: 95b1f9bf14e490c6c6bba9ea78aeab712a44aab5
2015-05-13 19:33:41 +00:00
drh
fcd49531c9
An early attempt to get indexes to work with the IS operator. This code
...
passes tests, but much more testing is needed to verify that it works on
all corner cases.
FossilOrigin-Name: 6f7f1673d00d216a5aa456acb44793a14f3b3d91
2015-05-13 15:24:07 +00:00
drh
8f1a7ed33f
Fix the LIKE optimization even when comparing mixed-case BLOBs.
...
FossilOrigin-Name: a58aafdb4e1422b6a8ffc07a67984928bbedf919
2015-03-06 19:47:38 +00:00
drh
f07cf6e2a5
The LIKE optimization must be applied twice, once for strings and a second
...
time for BLOBs. Ticket [05f43be8fdda9f]. This check-in is a proof-of-concept
of how that might be done.
FossilOrigin-Name: 5757e803cb5759b476bbc6453c58340089611420
2015-03-06 16:45:16 +00:00
dan
037b5324bd
Remove unused variable from struct WhereInfo. Add some explanatory comments to new code.
...
FossilOrigin-Name: f5313e0c680d9baebefb1cf50ddadedd4418a334
2014-11-03 11:25:32 +00:00
dan
6f9702ed4d
If SQLITE_ENABLE_STMT_SCANSTATUS is defined, record the number of times each VDBE opcode is executed. Derive the values returned by sqlite3_stmt_scanstatus() from these records on demand.
...
FossilOrigin-Name: 9ea37422a8cc2fce51bb10508e5e90f40fd4b511
2014-11-01 20:38:06 +00:00
dan
89e71646df
Minor fixes and documentation improvements for sqlite3_stmt_scanstatus().
...
FossilOrigin-Name: 8d8cc9608d30bb65fffcfe488e904411cbbc7f41
2014-11-01 18:08:04 +00:00
drh
051575cbf4
Do not use virtual (and hence redundant) WHERE-clause terms to restrict the
...
content of a automatic partial index. Show when an automatic partial index
is used in the EXPLAIN QUERY PLAN output.
FossilOrigin-Name: b9ad601eab1d7298d369267eb697c7fa1bc16985
2014-10-25 12:28:25 +00:00
drh
c8bbce1e6a
If a skip-scan is a proper subset of some other scan, then adjust the
...
cost of the skip-scan upward so that it is more costly than the other scan.
Such a cost imbalance can arise under STAT4 because of difficulties in getting
an accurate estimate for skip-scans.
FossilOrigin-Name: f4b22a2620a5dc48949048c2ecbd226755d4b2c3
2014-10-21 01:05:09 +00:00
peter.d.reid
60ec914c74
Fix typos in comments. No code changes.
...
FossilOrigin-Name: e62aab5e9290503869e1f4d5e0fefd2b4dee0a69
2014-09-06 16:39:46 +00:00
dan
50ae31e6f6
Because SQLite internally calculates query plan costs using a logarithmic scale, very large estimated sorting costs can cause all other estimated costs to be rounded down to zero. In these cases break ties between plans with the same total cost by comparing the costs with sorting excluded. This is an alternative fix for the same problem as addressed by [2af630c572].
...
FossilOrigin-Name: 299b9570279ded7158d22349ef93384286a5c755
2014-08-08 16:52:28 +00:00
drh
7f80c7146f
Remove the WHERE_LIKELIHOOD bit, as it does not seem to effect any result.
...
FossilOrigin-Name: 1cbe7a0883e081611a50524517d70e0b6c5199d2
2014-06-02 21:00:34 +00:00
dan
8ad1d8ba38
If the user provides likelihood() data for a WHERE clause term used as part of an index key, have the planner use it when calculating the expected number of rows visited by the loop.
...
FossilOrigin-Name: c51efaa5d29ee0a91b9e6a83a8dd82530670811a
2014-04-25 20:22:45 +00:00
dan
374cd78c1d
Avoid discarding an ORDER BY clause in the case where an identical GROUP BY clauses uses an index to group, but not sort, the rows. Fix for [b75a9ca6b0].
...
FossilOrigin-Name: de9a490f594183f337a2ec9e0f87792eac83548b
2014-04-21 13:21:56 +00:00
drh
ddba0c227e
Make the partial-ORDER-BY information in the query planner available to the
...
SELECT code generator. Still doesn't make a difference in the generated code.
FossilOrigin-Name: e258df236b7de70087c8227cb209080e55b9bf9c
2014-03-18 20:33:42 +00:00
drh
0401acec91
Experiments with the optimization of ORDER BY and GROUP BY clauses.
...
FossilOrigin-Name: b150902579d708b454efd5f8750e26a816f7f1a6
2014-03-18 15:30:27 +00:00
drh
e39a732ce2
Provide hints to the btree layer Next and Previous primitives to let them
...
know if they can be no-ops if the underlying index is unique.
FossilOrigin-Name: 6c643e45c274e755dc5a1a65673df79261c774be
2014-02-03 14:04:11 +00:00
drh
2e5ef4ed77
Improve the way that skip-scan loops are constructued. Add test cases.
...
Improved the scoring of skip-scan loops.
FossilOrigin-Name: 5e75ab93881b85801cb4ebf70f2063ff7c51ac19
2013-11-13 16:58:54 +00:00
drh
cd8629e4bb
Add the ability to use an index even if the left-most columns of the index
...
are unconstrainted, provided that the left-most columns have few distinct
values.
FossilOrigin-Name: 27dd5993d1ae5625eb94bf406421eb390d001be9
2013-11-13 12:27:25 +00:00
drh
5e6790cb15
Minor enhancements to the auxiliary information added to EXPLAIN output with
...
SQLITE_EXPLAIN_ENABLE_COMMENTS.
FossilOrigin-Name: 0d1328e33ca761eddcf8a50e8e83c997861e9047
2013-11-12 20:18:14 +00:00
drh
e54df42d87
Break out the structure and macro definitions of where.c into a separate
...
header file whereInt.h for easier editing and debugging.
FossilOrigin-Name: c44467124623733aac64096d605f16139b733a7f
2013-11-12 18:37:25 +00:00