drh
d1a01edac9
When one or more arguments to a function are constants, try to factor
...
out just those arguments into initialization code.
FossilOrigin-Name: 50d350abbc9176cd6fc606bc45b8fc3020719500
2013-11-21 16:08:52 +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
drh
5c7917e4b4
A better (simpler) fix to the count(*) problem addressed in the previous
...
check-in.
FossilOrigin-Name: 0f924c6ef6cf2ac5a61aafa8dd8e3309b3970499
2013-11-12 15:33:40 +00:00
drh
abcc1941db
Make sure the count(*) optimization works correctly on WITHOUT ROWID tables.
...
FossilOrigin-Name: 91174779786be07d63f3c4a5277602ddc5f0ba26
2013-11-12 14:55:40 +00:00
mistachkin
c6efe12d0d
Fix memory type mismatch when compiled with MEMDEBUG.
...
FossilOrigin-Name: 2c32bd6d4d5da2055633e8fb43ee184f729d8b91
2013-11-09 23:44:02 +00:00
drh
41e13e1268
Make sure cached KeyInfo objects are only valid for a single database
...
connection. Clear all cached KeyInfo objects on any collating sequence
change.
FossilOrigin-Name: 55eea1782aead6a6aaf93f14d85486f8fd2209ad
2013-11-07 14:09:39 +00:00
drh
2ec2fb2269
Reference count the KeyInfo object. Cache a copy of an appropriate KeyInfo
...
for each index in the Index object, and reuse that one copy as much as possible.
FossilOrigin-Name: defd5205a7cc3543cdd18f906f568e943b8b3a2c
2013-11-06 19:59:23 +00:00
drh
261c02d963
Basic DELETE operations now working on WITHOUT ROWID tables.
...
FossilOrigin-Name: 9eafafa31c4a2bbcf48418743e0fcb17c374e9a6
2013-10-25 14:46:15 +00:00
drh
ad124329ab
Some inserts and queries working for multi-column primary keys
...
and WITHOUT ROWID.
FossilOrigin-Name: b21d831b2aa55507dd9def2acb02cdbffddf10d1
2013-10-23 13:30:58 +00:00
drh
5f3e5e747d
Use #ifdefs to omit unused code in the columnType() routine depending on
...
compile-time options.
FossilOrigin-Name: 3fd5e33217a91402b3499fa0977469b91618a928
2013-10-08 20:01:35 +00:00
drh
186ad8cc32
Further refinement of the idea of multiplying run-time cost estimates by
...
the estimated row size.
FossilOrigin-Name: 18bd6ba96d19de6047baebfa15b1f739577c9ec4
2013-10-08 18:40:37 +00:00
drh
e13e9f54b0
Completely remove the iScanRatio field. The PRAGMA index_list(TABLE) command
...
shows the estimated row size in the forth column. It also generates a row
for the table with an index name of NULL. The query planner still does not
take row size estimates into account - that is the next step.
FossilOrigin-Name: 8b4aa0c7a2122bbe60432edadf27e490e31ec987
2013-10-05 19:18:00 +00:00
drh
03e1754e31
Merge trunk changes.
...
FossilOrigin-Name: c6ac80ed8d5240dd30783d62d9f133e159809dec
2013-10-04 20:39:44 +00:00
drh
d3037a4123
Further refinements of the index scanning speed logic.
...
FossilOrigin-Name: e5d9371da92b4cc2c1df177cf40e0ced4d4c7421
2013-10-04 18:29:25 +00:00
drh
d9e3cad2f8
Progress toward using the iScanRatio information on indices. Many tests
...
are still failing.
FossilOrigin-Name: 6c352edbba85a15ca356b5e131f4b3b2723d1774
2013-10-04 02:36:19 +00:00
drh
5f33f37580
Make sure the count(*) optimization works correctly even when partial
...
indices are present. Ticket [a5c8ed66cae].
FossilOrigin-Name: 9f2f4c0a50808910ad01c8c4352367f25747be08
2013-10-04 00:00:12 +00:00
drh
ebb6a65d16
Refactor the ExprSetIrreducible() macro into ExprSetVVAProperty(*,EP_NoReduce).
...
This is a naming change only. The logic is the same.
FossilOrigin-Name: 695aee46e9bdf15159ab52db7f522b30c91aed0f
2013-09-12 23:42:22 +00:00
drh
c5cd124900
Increase the number of bits available in Expr.flags. Other tweaks aimed at
...
making expression processing more robust.
FossilOrigin-Name: 579a512538528cf4bb4381ba393c5d9e7310086b
2013-09-12 16:50:49 +00:00
drh
d36e104112
Combine the FuncDef.iPrefEnc and FuncDef.flags fields into a single
...
new FuncDef.funcFlags field.
FossilOrigin-Name: 97b10e66e98e84755aa577f8da017bf1aea2056c
2013-09-06 13:10:12 +00:00
drh
d58d3278cb
Performance optimization: Avoid calling convertCompoundSelecctToSubquery()
...
on queries that do not use the UNION, EXCEPT, or INTERSECT operators.
FossilOrigin-Name: c589b2fed7beabc2337d701094c22635914d9c23
2013-08-05 22:05:02 +00:00
drh
323df7907e
Factor all KeyInfo object allocations into a single function:
...
sqlite3KeyInfoAlloc(). Always allocate enough space so that
sqlite3VdbeRecordCompare() can avoid checking boundaries and hence
run faster.
FossilOrigin-Name: 7301bedd94c8610568349953b18ff3575203e1b2
2013-08-05 19:11:29 +00:00
drh
619a1305e7
Fill out an initial implementation of the sqlite3ExprImpliesExpr() function.
...
FossilOrigin-Name: 8e07aa2ad5579aeb82174ce5bd432ddb9c058bc1
2013-08-01 13:04:46 +00:00
drh
6457a353bc
Modify the query planner interface so that it always passes in the result set.
...
This is the first step toward adding an optimization that will omit tables
from a join that do not contribute to the result.
FossilOrigin-Name: 2c2577e69ccb47f1af674a755e71221e2ca0b322
2013-06-21 00:35:37 +00:00
drh
93ec45d560
Simplifications to the NGQP. Add the queryplantest makefile target. Add
...
testcase() macros in the NGQP.
FossilOrigin-Name: eaf1f1b405ec2c498092527fae00e5dbe9e176c1
2013-06-17 18:20:48 +00:00
drh
613ba1ea9c
Fix compiler warnings.
...
FossilOrigin-Name: 3e8ac46918c68723bd199dbec8b0901457d524a9
2013-06-15 15:11:45 +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
c63367ef68
Fix some minor issues with logarithmic cost in NGQP.
...
FossilOrigin-Name: 69cf877283d362915edddf1822fbf7a9f86278b3
2013-06-10 20:46:50 +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
f7b5496e8e
Many small harmless comment changes. Removal of obsolete comments and
...
fixing misspelled words. No changes to code.
FossilOrigin-Name: a0d5cc9315dc6e9ef7dee4c3dfabf4e562d64376
2013-05-28 12:11:54 +00:00
drh
c01b7306ae
Make sure the ORDER BY collating sequences are compatible with the
...
comparison collations before using the merge algorithm for compound
SELECT statements. Candidate fix for ticket [6709574d2a8d8].
FossilOrigin-Name: fc3630cdef6e2cdbfb4e7b373d1a094753e55016
2013-05-07 17:49:08 +00:00
drh
aa87f9a68b
Make sure the affinity and datatype of sub-subqueries are initialized
...
prior to subqueries as the latter relies on the former.
FossilOrigin-Name: 39b4e6ff9316cc78ea88349091e195b8104d1e9e
2013-04-25 00:57:10 +00:00
drh
ed17167e1d
Fix a simple comment typo. No changes to code.
...
FossilOrigin-Name: f136bd95824dc95b9e6acdc4d55db263ba13fbaa
2013-04-24 13:50:09 +00:00
mistachkin
48864df97d
Many spelling fixes in comments. No changes to code.
...
FossilOrigin-Name: 6f6e2d50941e444ebc83604daddcc034137a05b7
2013-03-21 21:20:32 +00:00
drh
c8ac0d1649
Fix an unsafe VM register deallocation.
...
FossilOrigin-Name: cfba2c8dadbf1fa6f1602a327933570820a3b134
2013-02-16 02:41:01 +00:00
drh
785097da6b
A bug report coming from from Firefox
...
([https://bugzilla.mozilla.org/show_bug.cgi?id=840377 ])
describes an infinite recursion. We are unable to reproduce the problem.
Nevertheless, this check-in should prevent the problem from ever occurring
again.
FossilOrigin-Name: b7222a2bd035e7a32dc9416b25a488d9d017aad1
2013-02-12 22:09:48 +00:00
drh
547180baf0
Fix LIMIT and OFFSET so that they work and do not leak memory even on
...
complex queries involving deeply nested views of UNION ALL compounds.
Ticket [db4d96798da8]. Secondary to ticket [d58ccbb3f1b7].
FossilOrigin-Name: 497ee36cb8d07c936e6896135163c5cd7e94bdde
2013-01-29 23:55:50 +00:00
drh
47f2239fc1
Fix an issue with the SQLITE_TESTCTRL_EXPLAIN_STMT and compound queries with
...
multiple terms.
FossilOrigin-Name: a6499c2521637931661ed4d3afc4f96f91c69785
2013-01-28 22:52:34 +00:00
drh
d2a5623866
Issue an error message and quit (rather than overflowing a reference counter)
...
if the number of references to a table exceeds the maximum due to nested
UNION views. Fix for ticket [d58ccbb3f1].
FossilOrigin-Name: c2462a95ed8e1e69886681400d673207d906bf1b
2013-01-28 19:00:20 +00:00
drh
38b384a032
Further corner-case fixes to the name resolution logic.
...
FossilOrigin-Name: 20730bad7082b559a65e8cfedb31b6afca50df58
2013-01-03 17:34:28 +00:00
drh
c75e09c761
Remove an incorrect assert() statement (ticket [beba9cae6345a]). Fix other
...
minor problems in the name resolution logic.
FossilOrigin-Name: afe96a118c8a9627819ba5960aa83a607e734087
2013-01-03 16:54:20 +00:00
drh
3e3f1a5b49
Now supports result sets of the form "TABLE.*" with nested FROM clauses.
...
FossilOrigin-Name: 4cf5ed7ea198abc32f8118e79490e77f847f08c1
2013-01-03 00:45:56 +00:00
drh
fb7773276b
When resolving result-set name collisions, make them x:1, x:2, x:3, etc.
...
instead of x:1, x:1:1, x:1;1;1.
FossilOrigin-Name: ef01e30456670e6b1bc67fe41ec27e52c182efaf
2013-01-02 14:57:32 +00:00
drh
8f25d18b21
Better resolution of table and column names in joins where some of the
...
terms of the FROM clause are parenthesized.
FossilOrigin-Name: 7344e791b9456286ecdca6d45f2f5260fb3f10e2
2012-12-19 02:36:45 +00:00
drh
832ee3d4cc
Optimize the degenerate case of a FROM clause table name enclosed all by
...
itself inside parentheses. Generate code as if the parentheses did not
exist, rather than the old behavior of manifesting the parenthesized table
into a transient table. Also, tag every FROM-clause SELECT subquery that is
generated by a parenthesized FROM-clause expression using the SF_NestedFrom
flag. The new SF_NestedFrom flag is not yet used for anything.
FossilOrigin-Name: 7fecced466d86a66b0b751c5b5608141e134fe2d
2012-12-18 19:36:11 +00:00
dan
4ac391fc05
Attempt to further generalize the min/max optimization so that, if an appropriate index exists, it can be used by any aggregate query that contains only a single aggregate of the form max(colname) or min(colname) and does not contain a GROUP BY clause.
...
FossilOrigin-Name: 7280e14cd8f55896451847b432171e8750a07c81
2012-12-13 16:37:10 +00:00
drh
468ef9a87e
Refactor collating-sequence handling as a fix for ticket [71e333e7d2e642].
...
The Expr.pColl field is removed from the Expr object. The COLLATE operator
now becomes a separate instance of Expr in the expression tree. The code
generator looks up the correct collating function as needed, rather than
referring to Expr.pColl.
FossilOrigin-Name: 8542e6180d4321d45b34f33e481658908ce1430d
2012-12-08 21:51:24 +00:00
drh
580c8c1816
Veryquick passes all tests now.
...
FossilOrigin-Name: 7b96115e81deab0aa0472839cf787ba3f2fc64a7
2012-12-08 03:34:04 +00:00
drh
8e049633aa
For an ORDER BY on a compound SELECT, take the collating sequence from the
...
left-most term of the compound.
FossilOrigin-Name: 8e724b383da1314909c9a05e9d941a26a9f50b95
2012-12-07 23:10:40 +00:00
drh
62a66e7034
Do not report missing collating functions while parsing the schema.
...
Also remove a stray comment.
FossilOrigin-Name: e313edca0472f07e9b872b92120d80b4bc177328
2012-12-07 22:54:41 +00:00
drh
953f7611da
Fix a long-standing issue with the distinct-as-aggregate optimization that
...
only expressed when the new collating-sequence logic is turned on.
FossilOrigin-Name: 0aaf52a339808386984c30cca0c0c35ac2e70e7e
2012-12-07 22:18:54 +00:00