drh
e217efc822
Continue refining the NGQP
...
FossilOrigin-Name: 40567fddd468d00295275af8df09a7a1785e684a
2013-06-12 03:48:41 +00:00
drh
4f402f26b1
Improved processing of DISTINCT.
...
FossilOrigin-Name: ba897100fed291d2025f68d09334f9985312298b
2013-06-11 18:59:38 +00:00
drh
8e23daf372
Fix the Parse.nQueryLoop state variable to work with NGQP.
...
FossilOrigin-Name: f1cac24f06b9c71cfa472fdcf2da4cd8689a7cc3
2013-06-11 13:30:04 +00:00
drh
8a4380d761
Fixes to EXPLAIN QUERY PLAN output. Change weights back to something closer
...
to what they are in legacy. More test case fixes.
FossilOrigin-Name: 36373b85f9a97840aa06e24ae31c12fcfbae084e
2013-06-11 02:32:50 +00:00
drh
8636e9c55c
Handle virtual tables correctly when using logarithmic costs. Fixes
...
to test cases.
FossilOrigin-Name: e612664aa2e24ed5e222be2c7fe16e210ac9bded
2013-06-11 01:50:08 +00:00
drh
5822d6feb2
Fix test cases for the new EXPLAIN QUERY PLAN format. Add the
...
wherecosttest tool. Other fixes to logarithm cost.
FossilOrigin-Name: aa580e368e3c398b8377b80342dfdd906324c248
2013-06-10 23:30:09 +00:00
drh
c63367ef68
Fix some minor issues with logarithmic cost in NGQP.
...
FossilOrigin-Name: 69cf877283d362915edddf1822fbf7a9f86278b3
2013-06-10 20:46:50 +00:00
drh
b8a8e8a5d2
First attempt to store costs and row counts as a logarithm.
...
FossilOrigin-Name: 9e8109673c3a87e379f5a5a97a8b0d5a1afe853d
2013-06-10 19:12:39 +00:00
drh
3b75ffaaca
Simplification and performance tweak to the high-speed NGQP bypass.
...
FossilOrigin-Name: 0f8a38ee54208d6a477aa2482cd277b4808450f0
2013-06-10 14:56:25 +00:00
drh
43b85ef5c6
Performance improvements for whereScan methods.
...
FossilOrigin-Name: aae14350a37ad50e4607953ab496cba006032873
2013-06-10 12:34:45 +00:00
drh
92a121f46e
Minor problems in the high-speed NGQP fixed.
...
FossilOrigin-Name: 20eeccf1f24dd762f1bee9c3fe628c70ff01627f
2013-06-10 12:15:47 +00:00
drh
60c96cd789
High-speed version of NGQP. Still has some minor problems.
...
FossilOrigin-Name: db2415fa677b84cd0f6dd424283c94e98d246e3b
2013-06-09 17:21:25 +00:00
drh
23fec451a6
Must faster computation of estimated logarithm.
...
FossilOrigin-Name: dfbca3acaeb862f24f25e7810a16ff2066111ff4
2013-06-07 02:04:19 +00:00
drh
a20141593a
Further prepare-time performance improvements.
...
FossilOrigin-Name: 02741d177bfc2fca23bc99974cd899eba13cb59a
2013-06-07 00:29:23 +00:00
drh
13e11b4356
Performance improvements.
...
FossilOrigin-Name: 9f8e84ab9874a8af826763b1669adb57abd493ea
2013-06-06 23:44:25 +00:00
drh
4efc9298fb
Improved management of the space to hold WhereLoop.aLTerm[].
...
FossilOrigin-Name: d4141ecbea3abbe83525910684fbd89eb74eeb34
2013-06-06 23:02:03 +00:00
drh
e3be82cf18
Remove some commented-out code that was mistakenly left in the previous
...
check-in.
FossilOrigin-Name: b4a5dbad36bceabc5c5350e7676af6ad42de04eb
2013-06-06 19:25:42 +00:00
drh
70d1834483
Clean up and reorganize the elements of the various objects in the
...
analysis tree for the NGQP.
FossilOrigin-Name: bfc76ae1e94fc5b7fd2c9484a36a8dfe6655d165
2013-06-06 19:16:33 +00:00
drh
6f32848d61
Move the definitions of the WhereLevel and WhereInfo objects out of
...
sqliteInt.h and into where.c. This will facilitate future refactoring
of the internal query planner data structures.
FossilOrigin-Name: 1574653b9b4522b489d4c62d9cf70166bb3bddfd
2013-06-05 23:39:34 +00:00
drh
783dece5d6
Performance improvement for the OR-clause analysis in the NGQP.
...
FossilOrigin-Name: 9b1c4954e468d0acfb5787e6bff56d50a3e7bc1a
2013-06-05 17:53:43 +00:00
drh
e9d935a8aa
Minor performance tuning of the NGQP.
...
FossilOrigin-Name: cbef38c2d123e7d5a02c2a2450e8b329e3e96ee9
2013-06-05 16:19:59 +00:00
drh
cd0f407c3f
Performance tweak to whereLoopInsert().
...
FossilOrigin-Name: 1c4a78807b7a28c9976ca8c5722ff4e2e8755b7e
2013-06-05 12:47:59 +00:00
drh
e353ee3898
Update some variable names and comments in the ORDER BY optimizer. Fix a
...
bug in the ORDER BY optimizer dealing with IS NULL constraints. Updates
to test cases.
FossilOrigin-Name: cf96eb5945a9bab71104cb1581ee13ab30022566
2013-06-04 23:40:53 +00:00
drh
d84ce35bfd
Restore the PRAGMA reverse_unordered_selects behavior.
...
FossilOrigin-Name: f49cd6c4e752e39801f9d5de0bc370d26f43837c
2013-06-04 18:27:41 +00:00
drh
907717fe07
Get the index-only optimization working for OR queries.
...
FossilOrigin-Name: 774d5ff857cfad3471401ed518ed0959eb912e6c
2013-06-04 18:03:22 +00:00
drh
ee73b87181
Better determination of when an index is UNIQUE.
...
FossilOrigin-Name: 63fd025ad98c33826342824c51436ac92e2bb579
2013-06-04 13:37:26 +00:00
drh
ef71c1f090
Fix a display issue with EXPLAIN QUERY PLAN.
...
FossilOrigin-Name: ff2fa407558360f2499b6df0392ab3cdb4788dec
2013-06-04 12:58:02 +00:00
drh
7699d1c4e5
Refactor the ORDER BY optimizer in the NGQP so that it is easier to maintain
...
and so that it can support optimizing out GROUP BY and DISTINCT clauses.
FossilOrigin-Name: e605c468e3a1163167831c4a6220825c0b5d083b
2013-06-04 12:42:29 +00:00
drh
45c154ac90
Pull in recent trunk changes. Fix the ORDER BY optimizer so that it is better
...
able to deal with COLLATE clauses. Clean up ambiguities in the descidx1.test
script.
FossilOrigin-Name: 6bc71dfcf0ef757c5c2b426dd8fddc1e5ae0f598
2013-06-03 20:46:35 +00:00
drh
e3b7c9216c
Do not use an index fullscan for an UPDATE or DELETE or if disabled by
...
sqlite3_test_control() or sqlite3_config().
FossilOrigin-Name: fabb21854e662b1d8e5631e79f828d5322ceb595
2013-06-03 19:17:40 +00:00
drh
6f2bfad24b
Update the NGQP to make use of STAT3 information if it is available.
...
FossilOrigin-Name: ff134e6ee95d41b0e59e03bba7e94bc15b04ff8c
2013-06-03 17:35:22 +00:00
drh
3b1d808fab
Honor the orderByConsumed boolean returned from virtual table query planner.
...
FossilOrigin-Name: aaf7f5896d3523531e1a9a1b90c4ad326f0c8fc7
2013-06-03 16:56:37 +00:00
drh
5298630631
Fix to the logic that disables constraints on virtual tables.
...
FossilOrigin-Name: 62d382406b28c1347e13114f42215939ddfd7a9d
2013-06-03 16:03:16 +00:00
drh
3a5ba8b1b7
Fix an issue that was causing ORDER BY DESC to come out in ascending order.
...
FossilOrigin-Name: 029840124022387a8f6d2e1a685a003688d0ef3a
2013-06-03 15:34:48 +00:00
drh
21f7ff7d22
Set the WHERE_UNIQUE flag on loops that can only run once.
...
FossilOrigin-Name: 510f4d8ecf6eb284f14b91951e7236505bd71203
2013-06-03 15:07:23 +00:00
drh
75b9340520
The NGQP might not find a solution if INDEXED BY constraints on the query
...
are set wrong. If that is the case, print a "no query solution" error
and abort before trying to use the non-existant solution.
FossilOrigin-Name: 42511a7e12a70cf3436d25e4d069e5d309dfd678
2013-05-31 20:43:57 +00:00
drh
79a13bfd1e
Do not search using ON clause constraints of LEFT JOINs to the right of
...
the table.
FossilOrigin-Name: 723f901a63313b64a9f10516711fb6136526b79b
2013-05-31 20:28:28 +00:00
drh
a1f4124cf8
Make sure a unique cursor number is allocated for automatic indices.
...
FossilOrigin-Name: 433d1aecd399590b767ebf07b32023fb718a6574
2013-05-31 20:00:58 +00:00
drh
0edc94dcc7
Do not attempt to generate code in the NGQP if there have been prior errors,
...
since with prior errors some of the expressions might not be fully
named resolved.
FossilOrigin-Name: 665e4291c6e78f11d7181c18c5f2418d1adfcb1c
2013-05-31 19:14:56 +00:00
drh
76f4cfb2e6
Fix a problem with code generation on LEFT JOIN of tables without an index.
...
FossilOrigin-Name: 0b1bee92a0d25f409d5a95f484b05ddf10ae945f
2013-05-31 18:20:52 +00:00
drh
e22501721f
Another virtual table fix in NGQP.
...
FossilOrigin-Name: 2f2ce4167728399cc30bef045aab500940af978c
2013-05-31 18:13:50 +00:00
drh
7e47cb8b75
Fix problems in the virtual table logic for NGQP.
...
FossilOrigin-Name: 23af28e24b8f7ffacd006978b25bab990a43b8c5
2013-05-31 17:55:27 +00:00
drh
8030dc7b1f
Remove the definitions of objects that are no longer used: WhereCost,
...
WherePlan, and WhereBestIdx.
FossilOrigin-Name: 816f8add7e60de2ef8df4fdac090c244f8dbda39
2013-05-31 15:50:39 +00:00
drh
ae70cf1816
Allow tracing of whereLoopInsert() when the 0x8 bit is set on ".wheretrace".
...
Remove the use of sqlite_query_plan from where2.test. Fix a bug in the
code generator for OR clause optimizations.
FossilOrigin-Name: 707f0323264c35be14847a6adc49a0dc5eaf4ad2
2013-05-31 15:18:46 +00:00
drh
0afb423fd3
Futher enhancements to the ORDER BY optimizer.
...
FossilOrigin-Name: d8efa5f8b60bc4c8df8bfad077f87f76f7ee9bf6
2013-05-31 13:36:32 +00:00
drh
d044d209f3
Improved detection of unnecessary ORDER BY clauses.
...
FossilOrigin-Name: 58805eb36b9975706e2c4e382689519454e9a504
2013-05-31 12:43:55 +00:00
drh
53b52f7f2e
Fix the constructAutomaticIndex() routine so that it works with NGQP.
...
FossilOrigin-Name: 5e1e61399513b4a95fd93df2377a2603f1670063
2013-05-31 11:57:39 +00:00
drh
dc3cd4b020
Improvements to the ORDER BY suppressor in the NGQP.
...
FossilOrigin-Name: 24a2e9ddcecd3926817d77abbb75d068ee7140ad
2013-05-30 23:21:20 +00:00
drh
1b0f026dbb
Incremental check-in with various NGQP fixes. Many tests still fail.
...
FossilOrigin-Name: a51d8c92496436488e1a6eabd85785e8fedf2736
2013-05-30 22:27:09 +00:00
drh
6fa978dade
Futher simplifications to the NGQP. Fix some test cases to use
...
EXPLAIN QUERY PLAN rather than the (now obsolete) sqlite_query_plan
global variable.
FossilOrigin-Name: ae985db4fa08b5efbef5a834e852f0b05101264b
2013-05-30 19:29:19 +00:00