drh
7e02e5e6b5
Begin adding the data-structure explaining subsystem. All is contained within
...
FossilOrigin-Name: 79ae51c5b1b20ed0a425a87e65a32a096a80b7e1
2011-12-06 19:44:51 +00:00
drh
cdc6955716
Do not reuse temp registers originally allocated to a subroutine within
...
the main body of the program logic, since if the subroutine is called
while the reused temp registers are in use, their values will get clobbered.
Candidate fix for ticket [3a77c9714e63330]
FossilOrigin-Name: 092d53315e50be42b51ef7b3069c82c32a129b6a
2011-12-06 13:24:59 +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
338ec3e18e
Add a couple of asserts trying to make the operation of
...
sqlite3SelectNew() clearer.
FossilOrigin-Name: b21b1c7bc490b193da8d8a277489eb875a507e30
2011-10-11 20:14:41 +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
7157e8eac1
Further streamlining of the subquery materializer. New test cases for
...
ticket [002caede898a]
FossilOrigin-Name: ff8b76b25b42497a7374de56c6a8f34cbe70cd6a
2011-09-16 16:00:51 +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
5b6a9ed495
Materialize subqueries using a subroutine and invoke that subroutine
...
prior to each use of the subqueries manifestation. Fix for
ticket [002caede898aee4]
FossilOrigin-Name: 4b8357ee3c4ccdbd34e0cd077efd84cca677f496
2011-09-15 23:58:14 +00:00
drh
c2bb3282f1
Improve the testability of the merge-sort logic.
...
FossilOrigin-Name: b5179baf87aa00ed5cecbdcaa65bee10e112a9e9
2011-09-04 01:11:46 +00:00
dan
5134d1357e
Instead of a temporary b-tree, use a linked-list and merge-sort to sort records in main memory in vdbesort.c.
...
FossilOrigin-Name: 7769fb988d9be0f2d8129aaac19620ac88f9b4a6
2011-09-02 10:31:11 +00:00
drh
1c9d835d49
Use OP_SorterOpen instead of OP_OpenEphemeral to implement GROUP BY.
...
FossilOrigin-Name: ebf819aaa555bd79fddfc0a6f9827a2539095d6c
2011-09-01 16:01:27 +00:00
drh
c6aff30ca4
Experimental code-generator changes to utilize new opcodes for sorting.
...
FossilOrigin-Name: bab2e560f6cb989c83a96aad60f666960ede7abe
2011-09-01 15:32:47 +00:00
dan
54bbe7f15e
Fix a broken assert() statement in select.c.
...
FossilOrigin-Name: ad78ef2b3a20e3c3191fba232cbae70656210cf5
2011-08-29 18:24:27 +00:00
drh
ec661058dd
Fix harmless compiler warnings on unix.
...
FossilOrigin-Name: 90b1aea17400bbda5ebc8ae4eb4e12127519e42e
2011-07-09 16:17:18 +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
3e9548b30d
Do not do full table scans of unordered indices.
...
FossilOrigin-Name: a8761a9128de945aa4b6196df5ffe64115d66b61
2011-04-15 14:46:27 +00:00
dan
bb2b441867
Changes to support building with various SQLITE_OMIT_XXX options defined.
...
FossilOrigin-Name: 2039ed952a02bdcd4fc6d2e20572c4632084dcdb
2011-04-06 17:54:31 +00:00
dan
ef7075de1f
Fix a problem with "EXPLAIN QUERY PLAN SELECT count(*) FROM tbl".
...
FossilOrigin-Name: 9f9f32882501ac9b6e60f81195a64bdbf6e4497b
2011-02-21 17:49:49 +00:00
shaneh
a91491e5c7
Skip flattening if subquery has LIMIT and outer query is DISTINCT. Fix for ticket 752e1646fc.
...
FossilOrigin-Name: 559739998833643f589fa76d8360080691f83c18
2011-02-11 20:52:20 +00:00
dan
ce7e189d24
Change the type of a variable in struct SrcList so that it fits in a 100 byte lookaside buffer on a 64-bit architecture.
...
FossilOrigin-Name: 7df43f4892e628ecb8a83c5ed2dce5e24f6dd529
2010-12-01 19:00:48 +00:00
drh
95aa47b10a
Use the estimated number of rows computed for subqueries in the cost
...
computations for outer queries.
FossilOrigin-Name: 56bbc539246a6dc9f1ae1edb898db7a4f6f6d322
2010-11-16 02:49:15 +00:00
dan
30969d3f26
Use "COMPOUND" instead of "COMPOSITE" in the EXPLAIN QUERY PLAN output to describe UNION, UNION ALL, EXCEPT and INTERSECT operations.
...
FossilOrigin-Name: 28643b85d93d27a44b9370e4087efa8fa2af7f8e
2010-11-11 17:48:51 +00:00
dan
7f61e92c3a
Add a row of EXPLAIN QUERY PLAN output for each composite select operation (UNION, EXCEPT etc.) in the query.
...
FossilOrigin-Name: 00fb8468b5f2c48a3c91b86803bf306a0331496f
2010-11-11 16:46:40 +00:00
dan
17c0bc0c4a
Add missing comments and fix other issues with routines used by new EQP features.
...
FossilOrigin-Name: 925f35c535396603e13bb12e9a361072e2c2c223
2010-11-09 17:35:19 +00:00
dan
4a07e3db27
Further enhancements and fixes for explain query plan.
...
FossilOrigin-Name: 73c93f5a2a32ee8c5d07c9ba33b2641e72626627
2010-11-09 14:48:59 +00:00
dan
2ce224535f
Experimental changes to EXPLAIN QUERY PLAN.
...
FossilOrigin-Name: f4747eb83dacce6430ad6e5eb20155ffad975514
2010-11-08 19:01:16 +00:00
drh
1ea870125c
Make sure the estimated row count for ephemeral tables is initialized so that
...
automatic indices can be used on those tables.
FossilOrigin-Name: d30f7b2deffdba373a2e0988f433c631c790a7b5
2010-10-21 22:58:25 +00:00
drh
5e87be8705
Fix long-standing bugs with the handling of LIMIT clausing in
...
compound SELECT statements with FROM clause subqueries.
Ticket [38cb5df375078d3f9].
FossilOrigin-Name: b0450120eabfe5455cea1ed04cec587a5540b6b7
2010-10-06 18:55:37 +00:00
drh
7153d1fb6e
Use OP_Copy rather than OP_SCopy at one point in aggregate processing where
...
it is needed to avoid shallow-copy misuse.
FossilOrigin-Name: a5eefd5239bf5b4f9d0bdfb312f5b33c0a196178
2010-09-28 03:55:02 +00:00
drh
bb7dd68320
Remove a redundant test for multiple output columns in a scalar subquery.
...
FossilOrigin-Name: 657472bce2b2fe6f3d4bbead5301f658812b937d
2010-09-07 12:17:36 +00:00
dan
74b617b22a
Move the test for an (illegal) scalar sub-query that returns more than one column to earlier in SELECT processing in order to avoid an assert() that can happen later on.
...
FossilOrigin-Name: a55842cfb56b659c88832dce9ce7bafb50258211
2010-09-02 19:01:16 +00:00
drh
d4187c716c
Provide hints to the btree layer during the creation of transient tables
...
when it is possible for those tables to use a hash rather than a binary tree.
No use is current made of those hints, though assert() statement verify
their accuracy.
FossilOrigin-Name: 4fead8e714c7e50a9d246467e62bc846ef6180a0
2010-08-30 22:15:45 +00:00
dan
49ad330d67
Do not apply the flattening optimization if the sub-query is DISTINCT. Fix for [e4b8a2ba6e].
...
FossilOrigin-Name: 497aafd8ed6a636a8bd5fa2cad265a20593ee34f
2010-08-13 16:38:48 +00:00
drh
f053d5b6c7
Fix two comment typos that were reported on the mailing list.
...
FossilOrigin-Name: 88bf9016277c133dfbf4f4b2be0c35c9fe9fabd6
2010-08-09 14:26:32 +00:00
drh
b2468954c2
Remove additional traces (mostly in comments) of the Table.dbMem field.
...
FossilOrigin-Name: 5c58f44aeb224e106497368d9290d75a08807761
2010-07-23 17:06:32 +00:00
dan
1feeaed291
Remove the Table.dbMem variable, as it is no longer being used for its original purpose.
...
FossilOrigin-Name: 6eddc6e601cf8f585c6c2cf79f36fcbfe98a307e
2010-07-23 15:41:47 +00:00
dan
1db95106ee
Currently, if SQLite cannot find a table or index referred to by a query, it reloads the database schema from disk to see if the table or index has been added since the schema was cached in memory. Extend this behaviour to columns (which may have been added using ALTER TABLE) and fix some obscure cases related to tables and indexes (INDEXED BY, DROP TABLE etc.).
...
FossilOrigin-Name: 4932f22848b3d15a2b6dc5fa2cd69ce19182e2a4
2010-06-28 10:15:19 +00:00
drh
8c6f666b26
Optimization: Convert an ORDER BY clause into a no-op if the query also
...
contains a GROUP BY clause that will force the same output order.
FossilOrigin-Name: ca9d86baf70f210d331ce93102177c8005c494cb
2010-04-26 19:17:26 +00:00
drh
f391327824
Disable query flattening when the outer query is a compound SELECT and
...
the inner query has a LIMIT clause. Ticket [02a8e81d44].
FossilOrigin-Name: f96782b389b5b97b488dc5814f7082e0393f64cd
2010-04-15 23:24:29 +00:00
dan
67a6a40cf9
Clear the column cache before populating aggregate accumulator registers. Fix fo
...
r [883034dcb5].
FossilOrigin-Name: ffc23409c7fb45dc5a8722fad26e26d207bb3213
2010-03-31 15:02:56 +00:00
drh
5a29d9cbc5
Fix an assertion fault that occurs when two different virtual tables are
...
used in a single UPDATE statement.
Ticket [d2f02d37f52b].
FossilOrigin-Name: ff61e0fd802c46c2d84c4b0c0bc8a0f34959bb25
2010-02-24 15:10:14 +00:00
drh
f49f352320
Adjustments to column cache handling in order to restore 100% branch
...
test coverage.
FossilOrigin-Name: cc6b959bc1f968e08eea1afd387201d70a0c1e80
2009-12-30 14:12:38 +00:00
drh
b6da74ebd5
Immediately purge entries from the column cache when the associated register
...
undergoes an affinity change. Ticket [eb5548a849]. Enhance the
SQLITE_TESTCTRL_OPTIMIZATIONS setting of sqlite3_test_control so that it
can disable the column cache for testing purposes, in an effort to prevent
future problems of a similar nature to this one.
FossilOrigin-Name: ea4e57e1c1b6663ceb12872e31a8503f6c14e3d8
2009-12-24 16:00:28 +00:00
drh
07096f68ae
Move the query flattener turn-off from a pragma to an sqlite3_test_control()
...
call. Make provisions (not yet implemented) to turn off other optimizers
using the same call.
FossilOrigin-Name: 4a97c623f4e190134de4b2ca406e311034a74797
2009-12-22 23:52:32 +00:00
drh
7b688ede64
Add a pragma to disable the query flattener - for use during testing.
...
FossilOrigin-Name: 1d8550e5c88db0ea76aea579c1a5bf99d48fbe43
2009-12-22 00:29:53 +00:00
drh
2179b43465
The USING clause and NATURAL JOIN look at all tables to the left when
...
searching for a match, not just the one table to the immediate left.
Tables further to the left are preferred.
Fix for ticket [f74beaabde]. Still need to add test cases to complete
the ticket.
FossilOrigin-Name: b558e96f0a3cd2cbbe86e44293246a4730960d52
2009-12-09 17:36:39 +00:00
drh
456e4e4fba
Fix a bug in LIMIT 0 for compound SELECT statement.
...
The problem was introduced by recent enhancements and has not appeared
in any release.
FossilOrigin-Name: c6ed7e2a73a7a65cfa914ffcad4f603b6b7a22a8
2009-11-20 16:13:15 +00:00
drh
91fc4a0c4d
Shift more OP_Found opcodes over to using the unpacked format, for improved
...
performance.
FossilOrigin-Name: 6705ab1ad12cbdbbcf1f3e5439a4e6cbdcc421b3
2009-11-12 20:39:03 +00:00
drh
8cff69df11
Enhance the OP_Found and OP_NotFound opcodes so that they can accept an
...
array of registers as an unpacked record in addition to a record built
using OP_MakeRecord. Use this to avoid OP_MakeRecord calls during IN
expression processing.
FossilOrigin-Name: b9eab885cd2ca1a1633329e7036c125e8dba62c5
2009-11-12 19:59:44 +00:00