drh
7a48480d07
Fix harmless compiler warnings.
...
FossilOrigin-Name: 74eadeec34c4b19cf5f8b7f648db3b7ad601a00e
2012-03-16 00:28:11 +00:00
drh
331b67c151
Candidate fix for the optimizer problem described in ticket
...
[b7c8682cc17f3] which can causes a LEFT JOIN to be changed
into a INNER JOIN if there are OR terms in the WHERE clause.
FossilOrigin-Name: 0dc4cb935514131c99172175d57feec3a1743aa9
2012-03-09 22:02:08 +00:00
drh
7f67d94cfe
Fix a bug [3557ad65a07] that causes incorrect DISTINCT processing on
...
an indexed query involving the IN operator.
FossilOrigin-Name: dec9a995d7012a1f85be4edb71240b9d4f07c60e
2012-03-03 00:34:47 +00:00
dan
1d8cb21fdb
Modify the OP_Once opcode so that it works correctly in trigger sub-programs. This is a candidate fix for [7bbfb7d442].
...
FossilOrigin-Name: 557c69055a300b4082830b5f4803091dca1c3140
2011-12-09 13:24:16 +00:00
dan
0c733f67d8
Where possible, take advantage of the rowid at the end of index records to optimize range constraints (<, >, <=, >=) on the rowid column.
...
FossilOrigin-Name: 3b58f5f06648205a47e5cace0201269c406e476a
2011-11-16 15:27:09 +00:00
drh
74e7c8f51f
Purge lingering references to SQLITE_STAT2 from the code and test scripts.
...
FossilOrigin-Name: aed2bf7a3c828a7191389b3f8235a9387977b476
2011-10-21 19:06:32 +00:00
drh
f9b22ca416
Remove stale requirements marks from the query planner.
...
FossilOrigin-Name: 76de9914bed11abda3898928633ad09d5a284f84
2011-10-21 16:47:31 +00:00
drh
a2153f75c3
Fix an uninitialized variable in OR-clause processing.
...
FossilOrigin-Name: 54aecd929867606d14a062b501abbfb6f5f05e37
2011-10-18 19:14:33 +00:00
drh
30ddce6ff4
Added the tool/warnings-clang.sh script. Changes so that there are no
...
warnings with either gcc or clang even including FTS4 and RTREE and
both with and without SQLITE_THREADSAFE=0.
FossilOrigin-Name: 39408702a989f907261c298bf0947f3e68bd10fe
2011-10-15 00:16:30 +00:00
drh
b07028f71c
Add assert() statements and eliminate needless variable assignments in order
...
to get the clang scan-build utility to report zero problems against the
SQLite core. Clang's static analysis did find one real problem - but it was
in the command-line shell, not in the SQLite core.
FossilOrigin-Name: 60fee9574b0125705787e33c16f116cf188c8323
2011-10-14 21:49:18 +00:00
drh
67855877ff
Fix requirements marks associate with STAT3.
...
FossilOrigin-Name: 9325c1a8c413dfbf0381190d8347f0a446ae5f5b
2011-10-11 12:39:19 +00:00
drh
0a61df670e
Add testcase() macros to ensure good test coverage.
...
FossilOrigin-Name: 5c132592820e9dc2355e26ea14e155c797c335b3
2011-10-07 17:45:58 +00:00
drh
9ef61f4f4e
Prevent infinite recursion of in the query planner for some pathological
...
test cases by disabling OR-clause processing upon first recursion.
FossilOrigin-Name: 9fca05eac503d712886a05d03794f76c61fb39ed
2011-10-07 14:40:59 +00:00
drh
8871ef5afd
Begin an effort to enhance the query planner to do a better job with OR terms
...
in the WHERE clause. This change allows ANDs outside of the OR to be factored
into the OR terms if that is helpful in finding better indices.
FossilOrigin-Name: 876bd21aaac444c7e056730e35696a74e9a1af0a
2011-10-07 13:33:10 +00:00
drh
567211ed0e
Testability enhancements.
...
FossilOrigin-Name: be44928cf2a3c063c8228b769d90947acbfad1ef
2011-09-23 13:59:33 +00:00
drh
5c62486cd8
Fix an issue in ANALYZE when STAT3 is disabled but both sqlite_stat2 and
...
sqlite_stat3 tables exist. Also add testability tweaks to the STAT3 code.
FossilOrigin-Name: 3ca7e449e2e20d95e516cf7fe87bfa0b51c07086
2011-09-22 18:46:34 +00:00
drh
93c6384ca6
Fix an uninitialized variable and a misuse of memcpy().
...
FossilOrigin-Name: ee110d5a4a6f29400bb632a9a18c7dcd04638657
2011-09-22 00:28:55 +00:00
drh
d3ed73406c
Pull in the latest changes from trunk. Update the STAT3 documentation.
...
FossilOrigin-Name: 63fc3e4bea6a7f5dc34b2af83f30458eb10b8fe0
2011-09-21 00:09:41 +00:00
drh
5c4e5e53fe
Merge all the latest trunk changes into the experimental STAT3 branch.
...
FossilOrigin-Name: 51908c8f2bc6c086570f7493a29b096f0a40ce34
2011-09-16 19:29:58 +00:00
drh
a464c23429
Remove unreachable branches from the previous change. Add additional
...
test cases.
FossilOrigin-Name: cf51ef8ab8a610ddf64f66970dd689fe1df405b8
2011-09-16 19:04:03 +00:00
drh
8850177924
When analyzing the right-hand side of IN operators to see if the IN operator
...
can work with an index, be sure to decend into nested subqueries.
Fix for ticket [1a1308d2538d7]
FossilOrigin-Name: 0156f10e23daca0e2504cd293a67ed0233d254d0
2011-09-16 17:43:06 +00:00
drh
48f2d3b10a
Add the new OP_Once opcode. Use it to clean up and simplify various
...
one-time initialization sections in the code, including the fix for
ticket [002caede898ae].
FossilOrigin-Name: 7f00552b739fad79517b042a6ed61abe743a917b
2011-09-16 01:34:43 +00:00
drh
6825719667
Fix a few harmless compiler warnings. Add SQLITE_ENABLE_STAT3 to the
...
standard compiler warning script.
FossilOrigin-Name: 3d68f9afee02f95103eb1682b8f2362f8d249437
2011-08-16 17:06:21 +00:00
drh
4e50c5ec48
Further testing and bug fixing for sqlite_stat3. Added the Index.avgEq
...
field to index statistics. Fixed several problems in the query planner
associated with stat3.
FossilOrigin-Name: 89b2f70884cad0abdf4c66cb64ecddb2820ded74
2011-08-13 19:35:19 +00:00
drh
faacf17cc1
Begin a branch that experimentally replaces sqlite_stat2 with a new table
...
called sqlite_stat3 that will hopefully facilitate better query
planning decisions.
FossilOrigin-Name: 52e1d7e8ddd4bb5ef3a9d00fd2d719a8a784f807
2011-08-12 01:51:45 +00:00
drh
b4256996c4
Make sure IS NOT NULL constraints work on virtual tables.
...
Fix for ticket [6c14288a473ceff].
FossilOrigin-Name: a55f4ab99952a731e4cd8f6ef17389062e5ed4c5
2011-08-02 01:57:39 +00:00
drh
bf4ec555fa
Do not try to use STAT2 to refine the row estimate of a query that
...
uses a unique or nearly-unique index.
FossilOrigin-Name: efffc49baf38698ed3de05d16b4261bf405d42d7
2011-07-13 18:31:10 +00:00
drh
f1d3e32909
In where.c::findIndexCol - make sure that the Expr.op is TK_COLUMN before
...
accessing the Expr.iColumn and Expr.iTable fields. Also fix a couple of
unreachable branches.
FossilOrigin-Name: 418a4da2a96cf33055f18c9a667754fad2111cf3
2011-07-09 13:00:41 +00:00
dan
da79cf0cc9
Fix for [54844eea3f]: Do not create automatic indexes on correlated sub-queries.
...
FossilOrigin-Name: 9f14fa56ba31afe3de8b0cf26ed09573a2cc2283
2011-07-08 16:10:54 +00:00
drh
a9b1b91436
Extend the SQLITE_TESTCTRL_OPTIMIZATIONS option to disable DISTINCT
...
optimizations.
FossilOrigin-Name: 18501dd1a8aa8299c091c36e35b9a10a29d4467b
2011-07-08 13:07:02 +00:00
drh
b24d83fb35
Add a testcase macro to ensure testing a boundary case in DISTINCT processing.
...
FossilOrigin-Name: ff9fc722dc481df1ce6a9733db1f033b88141d5d
2011-07-02 19:12:05 +00:00
dan
969e5595e8
Ensure that automatic indexes are only created in scenarios where they may be used more than once.
...
FossilOrigin-Name: 27c65d4d9c58bfc4ea8f9337fa15090459fb26c5
2011-07-02 15:32:57 +00:00
dan
94e08d92f9
Fix a broken assert() in where.c.
...
FossilOrigin-Name: 090b29177fbc9faa83b560d92ddc3710d291776e
2011-07-02 06:44:05 +00:00
dan
6f3439697e
Improve use of indexes to optimize DISTINCT queries.
...
FossilOrigin-Name: 6c202ea0247ff509f696eee3839975a88ed26cf2
2011-07-01 18:26:40 +00:00
dan
50118cdfdb
Improvements and tests for detection of redundant DISTINCT qualifiers.
...
FossilOrigin-Name: 7337293c87fb563604dd6ad284f2d1e30c938b4c
2011-07-01 14:21:38 +00:00
dan
38cc40c216
Experimental changes to improve optimization of DISTINCT queries.
...
FossilOrigin-Name: f7ba0219ef2f235543c258be736955d91ca5ecce
2011-06-30 20:17:15 +00:00
drh
c2822b76b4
If the keyword "unordered" appears at the end of the SQLITE_STAT1.STAT
...
column for an index, then use that index for equality lookups only, never
for range queries or sorting. This feature is currently undocumented and
my change or be removed in a future release.
FossilOrigin-Name: 8a42e236701c8afd9ada7d4568712a21690ea087
2011-04-09 03:20:59 +00:00
drh
ea6dc4458b
Always make sure the left-hand side of the IS NOT NULL operator is a
...
smiple column, not a general expression, before applying the IS NOT NULL
query optimization.
FossilOrigin-Name: 543f75a6abe3aa4f49df43e71a462702d40b3251
2011-04-08 21:35:26 +00:00
drh
041e09f189
Change two new internal functions in where.c from global to file scope.
...
FossilOrigin-Name: 5bbfa17d4d6db18f8077f758d70c1bc253b58e2e
2011-04-07 19:56:21 +00:00
drh
fcd71b6010
Suppress many harmless compiler warnings, mostly signed/unsigned comparisons
...
within asserts or unused parameters in extensions.
FossilOrigin-Name: 3eeb0ff78d04891b5fd1a3d99a9fb8cfbed77a81
2011-04-05 22:08:24 +00:00
drh
ce62d93837
Fix two compiler errors associated with non-standard compile-time options.
...
FossilOrigin-Name: e3bf2d5ce4f87535e030a446e03d911f421805f7
2011-04-01 02:26:36 +00:00
drh
d6ee353c84
If the keyword "unordered" appears at the end of the SQLITE_STAT1.STAT
...
column for an index, then use that index for equality lookups only, never
for range queries or sorting.
FossilOrigin-Name: 3b964155f611c437d53d44feafa22f531942b1b4
2011-03-29 15:00:17 +00:00
drh
ac8eb11375
Comment enhancement to better explain the logic in the "x IS NULL"
...
optimization.
FossilOrigin-Name: 869f894798a65f8bc0e0b083866a784fa0189f68
2011-03-17 01:58:21 +00:00
drh
1f9c7663ce
Enhances to the query planner such that "x IS NULL" constraints take the
...
STAT2 statistics into account, just like "x=VALUE" constraints.
FossilOrigin-Name: 2353176811f752a16c1f2351a3d3431919b062a9
2011-03-17 01:34:26 +00:00
drh
95e037ba39
Omit unnecessary OP_Next and OP_Prev operators when uniqueness constraints
...
guarantee that the code will only make one pass through the loop.
FossilOrigin-Name: f000c9b2b7348238fe2085140d2dd05294a19709
2011-03-09 21:02:31 +00:00
drh
c126e63e4f
Remove dead code identified by the clang static analyzer.
...
FossilOrigin-Name: 01a79d5a7af48fb7e50291c0c7c6283d3fb359d0
2011-03-06 21:28:32 +00:00
drh
92e4feb74c
Do a better job of choosing the join table order when the tables having
...
very different numbers of rows.
FossilOrigin-Name: 952f5e8c69904c48f2decfabf8ea60a2e9f3e134
2011-03-04 00:56:58 +00:00
drh
0cf0e6c912
Remove an assert() that was made redundant by the previous checkin.
...
FossilOrigin-Name: 21db719156deef9fb26aff27a01e324da255c825
2011-02-17 13:52:02 +00:00
drh
6f2e6c0026
Add an ALWAYS() around a always-true test in where.c.
...
FossilOrigin-Name: 8123283ee1a360586a1721a56b4db15718c25ee0
2011-02-17 13:33:15 +00:00
drh
650f432e33
Fix harmless compiler warnings in the query planner.
...
FossilOrigin-Name: 31fc4ba66e76876b2e7b6b2b74c07f47571938ce
2011-02-16 23:32:24 +00:00