dan
923cadb1ae
Test that the left and right sides of a compound SELECT operator have the same number of expressions in the expanded expression list before beginning to generate code.
...
FossilOrigin-Name: 4df852ce26c95d5d23c83dbe9c59d2c3435acddf
2015-06-23 12:19:55 +00:00
drh
606f2344e9
Pervent the likelihood() function from moving ON clause terms of a LEFT JOIN
...
into the WHERE clause.
Fix for ticket [5f60b11fc8e23490e2]
FossilOrigin-Name: ed96e14adce4a4f94cc6838c46bc97937c4cb72a
2015-06-18 14:32:51 +00:00
drh
38b4149ca1
Factor out the TreeView parse tree printing module into a separate file.
...
FossilOrigin-Name: c32ce54ca46a4be4373983be6fd44b1f3a0250d1
2015-06-08 15:08:15 +00:00
drh
b121dd14ac
Code simplifications in select.c and where.c.
...
FossilOrigin-Name: 4f20ac90bce8bd7ba43ef59af5cc4ef7aa282fe8
2015-06-06 18:30:17 +00:00
drh
adc57f6834
Minor cleanup of the sqlite3Select() procedure.
...
FossilOrigin-Name: f4c90d06bb941453d8110680c7b279e471e8f034
2015-06-06 00:18:01 +00:00
drh
4490c40b90
Split FROM-clause subquery flattening and code generation into separate loops.
...
FossilOrigin-Name: be8e3fc70e4c13b28b07985df3457960f58ffddd
2015-06-05 22:33:39 +00:00
drh
bc8edba10a
Provide one final Select tree dump prior to WHERE clause analysis
...
when ".selecttrace 0x400" tracing bit is set with SELECTTRACE_ENABLED.
Analysis and debug changes only - normal builds are unaffected.
FossilOrigin-Name: 283bf0b64da7acc5aa5812fc659954965002d409
2015-06-05 20:27:26 +00:00
drh
d62fbb50e6
Change the name of SrcList.a[].zIndex to the more descriptive
...
SrcList.a[0].zIndexedBy.
FossilOrigin-Name: 6a9cf063379118dbb95c6cdc6d60af50e9867177
2015-06-04 12:08:53 +00:00
drh
4c393a82df
For FROM-clause subqueries that cannot be flattened, try to push relevant
...
WHERE clause terms of the outer query down into the subquery in order to help
the subquery run faster and/or use less memory.
FossilOrigin-Name: 6df18e949d3676290785143993513ea1b917d729
2015-06-02 18:09:18 +00:00
drh
05883a3409
Rename SQLITE_AFF_NONE to SQLITE_AFF_BLOB.
...
FossilOrigin-Name: bce3f04186cd2d69414a5a98b5b77dc8f060554a
2015-06-02 15:32:08 +00:00
drh
69b72d5a29
For FROM-clause subqueries that cannot be flattened, try to push WHERE clause
...
terms of the outer query down into the subquery in order to help the subquery
run faster and/or use less memory.
FossilOrigin-Name: 297fae7551a2af9e600d833801ff79fca0602ad5
2015-06-01 20:28:03 +00:00
drh
7cea7f95c7
Using "SELECT ALL" instead of just "SELECT" on a query that uses a single
...
unflattenable subquery or view in its FROM clause will force the subquery to
be manifested into a temporary table rather than run incrementally using a
co-routine. This is a stop-gap means of controlling the decision to manifest
while we try to work out a better to make that decision automatically.
FossilOrigin-Name: a29e117d7ecec05da949348689dbfb0d3acb1280
2015-05-29 01:35:19 +00:00
drh
fccda8a162
CTEs have never add working rowids. So disallow the use of the "rowid" column
...
within CTEs.
FossilOrigin-Name: 0055df0445932a43e42b318ef88672dcbe312c3a
2015-05-27 13:06:55 +00:00
drh
521d7bd214
Remove an incorrect and pointless assert().
...
FossilOrigin-Name: 8c3929bd42ff9c041df341aced5b7dbc0f563506
2015-05-25 09:33:48 +00:00
drh
e2248cfd2d
The SRT_Table type for the SelectDest object is now just an SRT_EphemTab for
...
which the ephemeral table has already been allocated.
FossilOrigin-Name: b9727e6bbfc3c62c601227e86e62f2f39792fd1d
2015-05-22 17:29:27 +00:00
drh
7f0cd09cdd
Enhance the selecttrace display by showing Select.selFlags.
...
FossilOrigin-Name: 45d3893c6142ee1dfed48e26a13cf547da12468a
2015-05-19 23:56:07 +00:00
drh
df553659ad
Make a hard copy of the results of a subquery lest the result of the
...
subquery be referenced after a change to the table that generated the subquery
result.
FossilOrigin-Name: 9c0d80907b4dee8ee8f205c2ebdb759f5ba1d771
2015-05-18 04:24:27 +00:00
drh
9af8646dce
Fix a faulty assert() in the SELECT code generator and add a test case
...
to prevent regression.
FossilOrigin-Name: 1421c8ffba179d6aafa2643012f80a2738779117
2015-05-04 16:09:34 +00:00
drh
c049057242
Cleanup of the sqlite3StrAccumInit() function. No functionality changes.
...
FossilOrigin-Name: 7952c32268aa650d9ee946d5bfe190f712e3bbe6
2015-05-02 11:45:53 +00:00
drh
1cb50c880e
Alternative fix for the double-initialization of type and collating sequence
...
problem that leaves the estimated table size intact.
FossilOrigin-Name: 623ddbdbf48d26dac58c593bcb9e7b184334ddfc
2015-04-21 17:17:47 +00:00
drh
dfb5e1cbc6
Make sure the datatype and collating sequence of transients tables are
...
not initialized more than once. Otherwise a memory leak results.
FossilOrigin-Name: 9e6beda2c8d879e438ee933e658f860d6eb42a20
2015-04-21 17:07:01 +00:00
drh
be360e1ed1
Fix a memory leak in the SELECT code generator tracing logic (code that is
...
omitted in non-debugging builds).
FossilOrigin-Name: b623ebd859dcb1d99398aa9953f6b113bad26304
2015-04-21 16:09:07 +00:00
dan
4b79bde7a2
Fix an obscure problem with "INSERT INTO tbl(cols) SELECT" statements where the SELECT is a compound with an ORDER BY and "cols" is a strict subset of tbl's columns.
...
FossilOrigin-Name: 718d5d0eab045a874107e078a857226a80ab912d
2015-04-21 15:49:04 +00:00
drh
7c052da54d
Change an assert() in the aggregate query code generator into a testcase().
...
FossilOrigin-Name: d1e6bc918b0c8e0701f5e15afb91b84a9004231b
2015-04-21 15:16:48 +00:00
drh
c50c8f4043
Remove an ALWAYS() that turns out to be false when there is a semantic
...
error on a compound SELECT.
FossilOrigin-Name: ad67a67c03078a2bc65d28f2b880b29bf02067c1
2015-04-17 16:12:03 +00:00
drh
b8289a8b00
Fix a faulty assert() in sqlite3SelectNew().
...
FossilOrigin-Name: 620d19c3b462f5c4763ebd26513321431f21dd72
2015-04-17 15:16:58 +00:00
drh
a276e3fd4d
Fix a faulty assert() in the compound-SELECT code generator.
...
FossilOrigin-Name: 10715b05f2201a63dca317f99ce39d3ce182e182
2015-04-16 16:22:27 +00:00
drh
6736618a8f
Fix a faulty assert() in the compound select code generator.
...
FossilOrigin-Name: 9d336be1b16aa9bd5c9e4132bb645874993c7d96
2015-04-16 14:33:35 +00:00
drh
772460fd4c
Improvements to the way VALUES clauses are parsed.
...
FossilOrigin-Name: ec5a493ad27593ca78899b3001630c1898b940ff
2015-04-16 14:13:12 +00:00
dan
5b1c07e7fb
Ensure the sqlite3Select() routine always returns non-zero if an error has occurred.
...
FossilOrigin-Name: b51028ed2f57f4245a7ebd9bdb99d1bcfaf1a01b
2015-04-16 07:19:23 +00:00
drh
3dc4cc66b3
Change the multiSelectOrderBy() routine to return non-zero if there has
...
been any prior error.
FossilOrigin-Name: 14784c317bff05dd0a74e2596432dfd12c139391
2015-04-15 07:10:25 +00:00
drh
f932f7145e
Fix a problem with a stale Select.pWith pointer when a CTE is used together
...
with a compound query and an ORDER BY clause.
FossilOrigin-Name: 9a453f52a2b30595891604ede7d4acf61c2736a1
2015-04-12 17:35:27 +00:00
dan
b33c50f215
Fix a problem with resolving ORDER BY clauses that feature COLLATE clauses attached to compound SELECT statements.
...
FossilOrigin-Name: 427b50fba7362e5b447e79d39050f25ed2ef10af
2015-04-04 16:43:16 +00:00
drh
8f9d0b2b25
Correctly detect the error of having a "*" wildcard on a SELECT without
...
a FROM clause on the left-hand side of a recursive CTE.
FossilOrigin-Name: b11d1793a06a44931edcbf12a615b49794d53a62
2015-03-21 03:18:22 +00:00
drh
16897072b5
Refactor some jump opcodes in the VDBE. Add JumpZeroIncr and DecrJumpZero.
...
Fix the LIKE optimization to work with DESC sort order.
FossilOrigin-Name: 26cb5145bf52f8c3fffa8c69b6c24aee4d974883
2015-03-07 00:57:37 +00:00
drh
2308ed3854
Propagate the COLLATE operator upward through function calls.
...
Initial fix for ticket [ca0d20b6cdddec5e8].
FossilOrigin-Name: c053448a55f9d030e8ffe88cf4fc14ada7f6ec19
2015-02-09 16:09:34 +00:00
drh
885a5b030e
Disable the query flattener for aggregate subqueries if the parent query
...
uses other subqueries in its result set or WHERE clause or ORDER BY clause.
Preliminary fix for ticket [2f7170d73bf9abf8]. However it still contains
a defect similar to the COLLATE problem of [ca0d20b6cddd].
FossilOrigin-Name: 0b7d65e3fda676d193347cb782854c28a48252af
2015-02-09 15:21:36 +00:00
drh
17645f5eec
In selecttrace 0x100 mode, show the parse tree after name resolution instead
...
of before flattening, so that it is always seen even if flattening does not
occur. Also: add the hex pointer value to the top of each SELECT tree.
FossilOrigin-Name: aa093fef2d2a7e26d987b46654963e4d7e66d444
2015-02-09 13:42:59 +00:00
drh
0e86a1ac08
In selecttrace mode 0x100, show a complete parse-tree both before and after
...
query flattening. This is a change to debugging code only.
FossilOrigin-Name: b3c6b8a3c1075d2a87cef68f061d6a0098e6d8d0
2015-02-09 11:54:41 +00:00
drh
2b8c5a0039
Make sure errors in the FROM clause of a SELECT cause analysis to abort
...
and unwind the stack before those errors have a chance to mischief
in the "*" column-name wildcard expander. Fix for ticket [32b63d542433ca67].
FossilOrigin-Name: 9e6eae660a02303fd140dac5fbff82364f4120cd
2015-01-22 12:00:17 +00:00
drh
fe201effbe
Fix another instance of an incorrect value for KeyInfo.nXField on a
...
sorting index. Ticket [f97c4637102a3ae72b79].
FossilOrigin-Name: 0077f64510f9b9ce90032df2696cb242d097ab84
2015-01-20 03:04:29 +00:00
drh
3f39bcf5bc
Make sure that the KeyInfo.nXField value of ephermeral tables used for
...
ORDER BY and GROUP BY is set correctly, so that the correct comparison
function can be choosen by sqlite3VdbeFindCompare().
FossilOrigin-Name: c16bae5e699b851f4ca8414c5dfa5370b18f69f0
2015-01-19 20:59:34 +00:00
drh
3afd2b4d6d
Avoid O(N*N) behavior with very long lists of VALUES.
...
FossilOrigin-Name: ee30fb35217f3429ee89aaad7c19f29710420e4c
2015-01-05 20:04:51 +00:00
drh
45f54a5778
Handle compound-select statements originating from VALUES clauses as a
...
special case that does not use recursion.
FossilOrigin-Name: 9ce9e43af38e6bc362734463d4bfc40ff0c98f8f
2015-01-05 19:16:42 +00:00
drh
b87fbed5a3
Remove some needless recursion from compound SELECT processing.
...
FossilOrigin-Name: fe677d13f03e24fa667efc0c2e7f5bbb99521791
2015-01-05 15:48:45 +00:00
drh
dea7d70d1b
Make sure that a DISTINCT query with an ORDER BY works correctly even if
...
it uses a descending index. Fix for ticket [c5ea805691bfc4204b1cb9e].
FossilOrigin-Name: 0d3aef97ebddf422b8bdcbc5878970c6129e3f54
2014-12-04 21:54:58 +00:00
drh
6cf4a7dfa6
Remove the OPFLAG_CLEARCACHE flag from OP_Column. In its place, change the
...
P3 parameter of OP_SorterData to be the index of the pseudo-table cursor whose
record header cache is to be cleared. This gives a small size reduction
and performance increase.
FossilOrigin-Name: 20062f49428a2349a2dd705af570c60b499a3eef
2014-10-13 13:00:58 +00:00
drh
b08cd3f345
Improvements to the new syntax-tree output routines: Omit the "END SELECT"
...
mark and instead terminate the graph at the last item. Increase the maximum
tree depth to 100.
FossilOrigin-Name: 5ce05757aac80b99c3b2141cd301809f8e28e661
2014-09-30 19:04:41 +00:00
drh
c90713d3d2
Show tree diagrams of data structures in the debugging output when the 0x100
...
bit is set on sqlite3WhereTrace or sqlite3SelectTrace.
FossilOrigin-Name: 92e0b4bd4d75e8b000586e51a07b3e181d9af20b
2014-09-30 13:46:49 +00:00
drh
4fa4a54f7e
Remove the SQLITE_ENABLE_TREE_EXPLAIN compile-time option. Add alternative
...
debugging display routines: sqlite3TreeViewExpr(), sqlite3TreeViewExprList(),
and sqlite3TreeViewSelect().
FossilOrigin-Name: 4ff51325d6b41d0c59e303b573700ec80c51d216
2014-09-30 12:33:33 +00:00