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