drh
a22a75e5ca
Fix the OFFSET clause so that it works correctly on queries that lack
...
a FROM clause. Ticket [07d6a0453d4ed8].
FossilOrigin-Name: 179ef81648b0ad557df78b7712f216b876b6fb65
2014-03-21 18:16:23 +00:00
drh
f9f1bdb0c8
Merge trunk fixes for "x IN (?)" handling.
...
FossilOrigin-Name: eca35871c34374ca9189c7c9b6d490ac3c30357f
2014-03-20 20:56:49 +00:00
drh
2b59b3a4c8
Convert expressions of the form "X IN (?)" with exactly one value on the
...
RHS of the IN into equality tests: "X=?". Add test cases to verify that
statements work correctly on this corner case.
Fix for ticket [e39d032577df6942].
FossilOrigin-Name: e68b427afbc82e201c64474117851aa4c9eb0c92
2014-03-20 13:26:47 +00:00
drh
0c8a934cb4
Fix an unnecessarily obtuse use of a bitmask flag.
...
FossilOrigin-Name: ca3140813198ab7ce470cf86334e55207f3461f9
2014-03-20 12:17:35 +00:00
drh
6284db908a
Fix query planner weights associated with choosing block-sorting. Fix
...
block sorting of tables with collating functions. Fix various test cases.
All "veryquick" tests are now passing, though more tests need to be added.
FossilOrigin-Name: 01afbf97c0ff29667806e9a7c4d74ca717819de5
2014-03-19 23:24:49 +00:00
drh
ea6c36e204
Make sure the where.c query planner never reports that the number of ORDER BY
...
terms that are satisfied by indices is negative.
FossilOrigin-Name: b186d8d15a10d5e8fcae9ae72e8624d71831f5bd
2014-03-19 14:30:55 +00:00
drh
079a307259
First attempt at getting block-sort to work. This is an incremental check-in.
...
There are many problems still to be worked out.
FossilOrigin-Name: 59742dd4c5259883850044d0938248b009ebd045
2014-03-19 14:10:55 +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
d2de861cbe
Adjust the query planner to keep track of the number of ORDER BY terms
...
satisfied. Still doesn't do anything with this information. Some tests
fail after this check-in, but all failures are believed to be benign. The
failures will be addressed at a later stage.
FossilOrigin-Name: 59d49b7fc49fa290e04a02653e7268c85836b27e
2014-03-18 18:59:07 +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
89212fb9f9
Adjustments to the cost computation for the skip-scan query plan, to take
...
into account the fact that a seek has to occur on each skip.
FossilOrigin-Name: 0769eebd028ce31375cf93509a1d3687f7b117eb
2014-03-10 20:12:31 +00:00
dan
0df163a9f0
Remove a branch that is never taken from where.c.
...
FossilOrigin-Name: 4a4997221f3d61c1411a993053b40c787beea736
2014-03-06 12:36:26 +00:00
dan
900defa07a
Merge latest trunk changes.
...
FossilOrigin-Name: e00ed717fbe456010ec6c746490d7c3e9d94ec5a
2014-03-03 14:45:06 +00:00
dan
fbf0f0e1f6
Fix a segfault that can occur following an OOM error.
...
FossilOrigin-Name: 7fdd378d54754a3ffdc01c6c0a66cf6d5899a495
2014-03-03 14:20:30 +00:00
dan
3833e934d3
Remove the vdbeRecordCompareLargeHeader function. Fix some other details.
...
FossilOrigin-Name: 3861e853105cb8da344c7eebd2e455622b26395e
2014-03-01 19:44:56 +00:00
drh
434a93147c
Improved handling of constants and especially constant functions in the
...
ORDER BY clause of a query. Do not optimize out "ORDER BY random()".
Fix for ticket [65bdeb9739605cc2296].
FossilOrigin-Name: dca1945aeb3fb005263f9be00ee8e72b966ae303
2014-02-26 02:26:09 +00:00
drh
0baa035a1e
Do not allow temporary registers to be in use across an OP_Yield within a
...
co-routine. Fix for ticket [8c63ff0eca81a9132d8].
FossilOrigin-Name: 97a8c9733cba97c78e979dfd5c66610c23e90288
2014-02-25 21:55:16 +00:00
drh
7d1761059b
Add VdbeCoverage() and VdbeCoverageIf() macros for improved VDBE coverage
...
testing.
FossilOrigin-Name: b92d31a97d5fe4606d9ae1393c7f3e052f46bf5a
2014-02-18 03:07:12 +00:00
drh
688852ab15
Add logic to do test coverage measurements on the VDBE code.
...
FossilOrigin-Name: ce184c7bb16988641d37c908d9b3042456d4be3d
2014-02-17 22:40:43 +00:00
drh
cfc6ca4179
Seek past NULLs in a top-constrained search. Avoid checking for NULLs in
...
the body of the search.
FossilOrigin-Name: e07a32f30862acf3b322d4d8deb015846d6f8f5f
2014-02-14 23:49:13 +00:00
drh
f78da0e6af
Reduce the number of cases where it is necessary to check for NULL after
...
the loop terminating condition.
FossilOrigin-Name: 3c1ae447dec8fc2af1c5105134061717594ac0e0
2014-02-14 20:59:53 +00:00
drh
4a1d365903
Add OP_IdxGT and OP_IdxLE as distinct opcodes. Formerly these operations where
...
done using OP_IdxGE and OP_IdxLT with the P5 flag set. But VDBE code is easier
to read with distinct opcode names. Also change OP_SeekGe to OP_SeekGE, and
so forth, so that the capitalization is consistent. The whole point of this
change is to improve the readability of VDBE listings.
FossilOrigin-Name: b6bea903ac8e1717ed50b221d73bd0be061c7663
2014-02-14 15:13:36 +00:00
drh
7c3280649a
Make sure that virtual WHERE-clause terms do not get transformed into real
...
terms when processing set of OR-connected terms.
Fix for ticket [4c86b126f22ad].
FossilOrigin-Name: c950d6c4117d076f871518e738cdf9e8c46a19fc
2014-02-11 01:50:29 +00:00
drh
5f61229504
Do away with the "multi-register pseudo-table" abstration. Instead, just
...
use an OP_SCopy to load results directory from the result registers of
the co-routine.
FossilOrigin-Name: 1e64dd782a126f48d78c43a664844a41d0e6334e
2014-02-08 23:20:32 +00:00
drh
725de29a2d
Tweaks to the generated VDBE code to make it a little easier to follow.
...
FossilOrigin-Name: 129217ee91782ec77ff82661753ae5bee8ca99d0
2014-02-08 13:12:19 +00:00
drh
aceb31b120
Change the OP_Trace opcode to OP_Init and give it the ability to jump to the
...
initialization code at the bottom of the program, thus avoiding the need for
an extra OP_Goto.
FossilOrigin-Name: 192dea97316144f15f6dd0eabff08a0bf9ef203e
2014-02-08 01:40:27 +00:00
drh
ed71a839fd
Change the OP_InitCoroutine instruction to jump over the co-routine
...
implementation.
FossilOrigin-Name: a522f364a6b8ca6f69c353b30609a2166f6e94cf
2014-02-07 19:18:10 +00:00
drh
81cf13ec7b
Get rid of the OP_Undef and OP_IsUndef opcodes in favor of higher-level
...
OP_InitCoroutine and OP_EndCoroutine.
FossilOrigin-Name: 1ec0e9dd4b26d9f597adc8e062317d4866c5a6a6
2014-02-07 18:27:53 +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
dan
41028151be
Fix a typo in a comment. No changes to code or tests.
...
FossilOrigin-Name: cceacc0e79c4e54682daddf2056c6bb8e88d9484
2014-01-22 10:22:25 +00:00
drh
340309fd69
Remove an unnecessary parameter from selectInnerLoop(). Clean up comments.
...
FossilOrigin-Name: 5e6c4a55f6df30da9dbaa8170f3223613cc86f65
2014-01-22 00:23:49 +00:00
drh
e73f059093
Change the recursive common table expression algorithm to use a queue instead
...
of a pair of tables. Runs about 25% faster on the sudoku solver query.
The OP_SwapCursors opcode is no longer required. The current implementation
uses just a fifo, but the plan is to change it into a queue that will support
ORDER BY and LIMIT in a recursive query.
FossilOrigin-Name: b2671e1133d2f1fbd36e7cd4b86d6cc7b528aa97
2014-01-21 22:25:45 +00:00
dan
a4ff825095
In where.c, do not allocate space in sqlite3_index_info structures for the internal WHERE clause "terms" generated to record column equivalencies.
...
FossilOrigin-Name: 7d9e22187daaa3160b875a1df17b924969bf718e
2014-01-20 19:55:33 +00:00
dan
718569443d
Add support for common table expressions (WITH clauses).
...
FossilOrigin-Name: 0171e3bb4f663a9414b0e8b64c87b5d0683855b5
2014-01-17 15:15:10 +00:00
dan
eae73fbfb9
Allow only a single recursive reference in a recursive CTE. Also require that this reference is not part of a sub-query.
...
FossilOrigin-Name: a296b73360d34c9364eceb2cc09a9a92adc4abb8
2014-01-16 18:34:33 +00:00
drh
6ade453cd8
Always use available indices to optimize LIKE operators even if the pattern
...
of the LIKE operator has a COLLATE modifier. This fixes an ineffiency that
was introduced into 3.7.15 by check-in [8542e6180d4] on 2012-12-08.
FossilOrigin-Name: 16bd54783a3f5531c55564ddefdada657c078eb0
2014-01-16 15:31:41 +00:00
dan
eede6a538d
Fixes so that SQLITE_OMIT_CTE builds work.
...
FossilOrigin-Name: 3908e2ea2e7e5f466cbbbffdc27e0fe8dc9751ac
2014-01-15 19:42:23 +00:00
dan
62ba4e418d
Disable automatic indices on recursive CTE references.
...
FossilOrigin-Name: 28aa6db8c878655255dbfb618f8d65be78e3d7e5
2014-01-15 18:21:41 +00:00
dan
8ce7184bc2
Add code to handle recursive CTEs.
...
FossilOrigin-Name: a5c2a54a07d35166911abc792008c05dea897742
2014-01-14 20:14:09 +00:00
drh
1c2c0b776f
Avoid redundant register loads during index key generation when doing a
...
DELETE or INTEGRITY_CHECK on a table with multiple indices.
FossilOrigin-Name: 8f6e6149a165f516be6395fd753e163d52ffd52e
2014-01-04 19:27:05 +00:00
drh
759e858811
Try to factor constant subcomponents of the WHERE clause out of the loop.
...
FossilOrigin-Name: 9d05777fe24e1a5ce71762de38db840931ef0bc8
2014-01-02 21:05:10 +00:00
drh
6c1de308f2
Make sure the WhereLoop.aLTerm[] array is large enough when processing
...
the skip-scan optimization. Fix for ticket [520070ec7fbaac].
FossilOrigin-Name: 46d040591f27be01b1860344f8a268797fe344f4
2013-12-22 20:44:10 +00:00
drh
a6353a3f64
Performance optimizations for sqlite3VXPrintf().
...
FossilOrigin-Name: 9227ad48e1612b32a3a3e9551c49890f93abc0a7
2013-12-09 19:03:26 +00:00
drh
7f59475fda
Remove a branch in STAT4 logic that is no longer reachable after
...
the previous change.
FossilOrigin-Name: eca7d3f1612c7a009a9e4ef89f76f9b7e275d1e6
2013-12-03 19:49:55 +00:00
drh
c964c39fb0
Lower the threshold for using skip-scan from 50 to 18, based on experiments
...
that show that 18 is the approximate break-even point for a variety of
schemas.
FossilOrigin-Name: 83c0bb9913838d18ba355033afde6e38b4690842
2013-11-27 04:22:27 +00:00
drh
f93cd949a0
Performance optimization to the OP_Next and OP_Prev opcodes.
...
FossilOrigin-Name: ecaac28a2e78aca148fc614fe54bf2706aed8be2
2013-11-21 03:12:25 +00:00
drh
6bc69a2d4b
Change Noop-comments in where.c into Module-comments, so that they are
...
omitting without SQLITE_ENABLE_MODULE_COMMENTS.
FossilOrigin-Name: 3e577f40183c56e60866d8382b044688a1b77eaf
2013-11-19 12:33:23 +00:00
drh
64ff26f741
Add comments identifing where the skip-scan option is decided in the
...
query planner, to aid in tuning that decision. No changes to code.
FossilOrigin-Name: e9df04cec48bb8b4ea26ec9024a22ea42b2338eb
2013-11-18 19:32:15 +00:00
drh
64bbbf3383
Avoid unnecessary OP_IfNull checks when doing a range query where there
...
is a constraint on the lower bound of the range.
FossilOrigin-Name: de08a7e7abbad9b94d0268d096ef4555d31c8b0c
2013-11-16 14:03:53 +00:00
drh
c2acc4e466
Changes to make the new constant expression factoring logic more general
...
and more testable.
FossilOrigin-Name: d10fb49a92f5f6e93093ae83544e5aec7984361a
2013-11-15 18:15:19 +00:00