drh
f99dd359d0
Change the OP_IfNotZero opcode so that it decrements register P1 by 1 rather
...
than the value in P3, and so that it only decrements if originally positive.
This avoids decrementing the smallest 64-bit signed integer.
FossilOrigin-Name: 165c044686212fbf7182dd560ad1e57eb4cc9838
2016-12-18 17:42:00 +00:00
dan
69b9383edf
Fix a problem causing the planner to generate sub-optimal plans for some queries
...
that use recursive WITH sub-queries with LIMIT clauses.
FossilOrigin-Name: 053a149cc8244a7f85137129cfcb8622efe90306
2016-12-16 15:05:40 +00:00
drh
79df77821a
Refactor the Table.nRef field as Table.nTabRef for easier grepping.
...
FossilOrigin-Name: 9cae4c2e300e20304ced0dc8c1415c4922185928
2016-12-14 14:07:35 +00:00
drh
2700acaacd
More changes to take advantage of the sqlite3VdbeAppendP4() method.
...
FossilOrigin-Name: 83bc5e40af9b20afeed008bf3e2669b7ac9e2dc8
2016-12-08 01:38:24 +00:00
dan
44c5604ced
Prevent the flattening or where-term push-down optimizations from obscuring
...
misuses of SQL row values that can lead to crashes or assert() failures.
FossilOrigin-Name: 433d16ff3adfede3be53d5b0e0512f37e225591b
2016-12-07 15:38:37 +00:00
drh
abfd35ea03
Performance improvement and size reduction in the Expr node allocator
...
function sqlite3PExpr().
FossilOrigin-Name: 2a81763e68cdf9b8c46389b1e1a87bc2084b53e7
2016-12-06 22:47:23 +00:00
dan
92ddb3bd02
Avoid clearing the EP_FromJoin flag from terms in ON clauses when flattening
...
sub-selects. Possible fix for [2df0107b].
FossilOrigin-Name: 8bed4cd549759a93c4a087d8d8c08c0068ba8d59
2016-12-01 19:38:05 +00:00
drh
9057fc7c7f
Remove the OP_RowKey opcode. Use OP_RowData in its place.
...
FossilOrigin-Name: 6ac7b07a4aff2e1a9031289e3dafdb9ac0071c24
2016-11-25 19:32:32 +00:00
drh
66adb0a848
Avoid storing redundant fields in sorter records when the sort-key
...
and data have fields in common.
FossilOrigin-Name: b835cf3e507b910b6a3e0f802ce2c40a72d0c227
2016-11-11 19:08:00 +00:00
dan
9af90b7231
Reenable the SQLITE_EXPR_REF optimization for "SELECT DISTINCT ... ORDER BY"
...
queries.
FossilOrigin-Name: 6e2e9d383f5fc4a0cbf05fe83ec7425812c0f556
2016-11-11 18:08:59 +00:00
dan
257c13fa00
Avoid storing redundant fields in sorter records when the sort-key and data have
...
fields in common (as in "SELECT a FROM t1 ORDER BY 1").
FossilOrigin-Name: 0af62fdbd8e2aab14718ff8bcb5934f05463c176
2016-11-10 20:14:06 +00:00
drh
4a8b013ef6
Make use of the unpacked key on the OP_IdxInsert on sorters with a LIMIT.
...
FossilOrigin-Name: 42db7cd2c0b367f7dfe733bdaf006538937b812a
2016-11-09 01:38:56 +00:00
drh
9b4eaebc68
Enhance the OP_IdxInsert opcode to optionally accept unpacked key material.
...
FossilOrigin-Name: 89d958abbac45f2ca5954080cd9e74ec9a07ebb2
2016-11-09 00:10:33 +00:00
drh
d8e4b13256
Use sqlite3DbMallocRawNN() where appropriate, instead of
...
sqlite3DbMallocRaw().
FossilOrigin-Name: 54a449a41d8d32da2f8b73689227ced866974a18
2016-10-01 19:21:56 +00:00
dan
4c5ebee0b5
When flattening a query of the form "SELECT * FROM (SELECT * FROM tbl WHERE x=?) WHERE y=?", ensure that the final WHERE clause is "x=? AND y=?" instead of "y=? AND x=?". Although it is still not guaranteed, this makes the order in which WHERE clause terms are processed comport more closely to users expectations.
...
FossilOrigin-Name: cf7f9e6d5abff273dd2f8a8dce27d52e1449b3be
2016-09-26 14:39:05 +00:00
drh
511f9e8d29
Remove the internal sqlite3CodeOnce() interface, replacing it with a
...
direct call to sqlite3VdbeAddOp0(v,OP_Once). Slightly smaller and faster.
FossilOrigin-Name: c3774c6a5fe48af91fda28e9e18c6ed9053ea992
2016-09-22 18:53:13 +00:00
drh
63cecc4173
Remove obsolete vector-IN test cases. Fix a bad testcase() macro.
...
FossilOrigin-Name: ab3f8f193a7ec36018bf26c9231a1a6a58b6a523
2016-09-06 19:08:21 +00:00
drh
1431807a0b
Fix corer cases of vector IN operators where the RHS is a compound SELECT
...
that includes an ORDER BY clause.
FossilOrigin-Name: 8329ac6f8d1edcc19c3e0559abe9a8011dbe1497
2016-09-06 18:51:25 +00:00
drh
ed24da4b16
Enhance the sqlite3GetTempRange() and sqlite3ReleaseTempRange() internal
...
routines so that they use sqlite3GetTempReg() and sqlite3ReleaseTempReg()
when nReg==1.
FossilOrigin-Name: 4071da2f87a2f24a279ac3bced8c794ad374b47c
2016-09-06 14:37:05 +00:00
drh
4910a76d45
Performance optimizations.
...
FossilOrigin-Name: f1d06c49ba0d814dc7ffb538aac3f4e6251fd8f0
2016-09-03 01:46:15 +00:00
drh
b684fd5c4a
Merge recent enhancements from trunk.
...
FossilOrigin-Name: b17872363b60edab05a5d382a44038aad91e4d9f
2016-08-19 15:41:24 +00:00
drh
e59be01072
Fix a zName to zDbSName conversion missed in the previous check-in.
...
FossilOrigin-Name: d7cf423cdccada2b0a4b7cc79ccf5f35d6f43212
2016-08-18 20:56:39 +00:00
drh
5ea494425f
Merge recent enhancements from trunk.
...
FossilOrigin-Name: 4768a1066cb9c7627064d7efec44188d6755cb03
2016-08-18 15:21:16 +00:00
drh
69c338263a
Rename the Db.zName field to Db.zDbSName to make it more descriptive and to
...
distinguish it from all of the other "zName" variables scattered throughout
the code.
FossilOrigin-Name: 92a22f01343a898455fd61c3b8e7d7c954f5b569
2016-08-18 14:33:11 +00:00
dan
51d82d1d24
Add tests and fixes for vector operations that use sub-queries with different combinations of LIMIT, OFFSET and ORDER BY clauses.
...
FossilOrigin-Name: 092b1c5ff53c9f3cfed079c46e3353d93f99303e
2016-08-02 18:50:15 +00:00
dan
553168c706
Fix a problem with vector range constraints involving the rowid column. And other issues.
...
FossilOrigin-Name: 3ef75d45ebcd8ede91596d69e55fe7d685008a60
2016-08-01 20:14:31 +00:00
dan
870a0705fe
Fix a problem with IN(...) constraints where the LHS is a sub-select that is an aggregate query.
...
FossilOrigin-Name: 1f4dba87da4a44ad26223ad965731164c0d9bad9
2016-08-01 16:37:43 +00:00
dan
71c57db099
Add some support for using row value constructors in certain parts of SQL expressions. There are many bugs on this branch.
...
FossilOrigin-Name: b2204215b231202aef7a218411cc2ddaecf28f35
2016-07-09 20:23:55 +00:00
drh
f94fdd832c
Allocate KeyInfo objects from lookaside if possible.
...
FossilOrigin-Name: b411107a3609d53af4e147f01e311b858b78420b
2016-06-04 17:12:26 +00:00
drh
6326d9f6f1
Set the NULLEQ flag on the sequence counter comparison in the ORDER BY LIMIT
...
optimization, to avoid coverage complaints about not testing the NULL case.
FossilOrigin-Name: ed1b30dc932a7c03e173b130c5f55f9989c7e0b4
2016-05-20 13:44:58 +00:00
drh
a536df4e7f
In a query with both ORDER BY and LIMIT, if the inner loop satisfies the
...
ORDER BY then try to cut short each invocation of the inner loop once the
LIMIT has been satisfied. This check-in is a partial implementation only.
FossilOrigin-Name: 852d1eda6ecca1171f6ed800b06f5b4854672002
2016-05-19 22:13:37 +00:00
drh
b1ec87afdb
When checking for the WHERE-clause push-down optimization, verify that
...
all terms of the compound inner SELECT are non-aggregate, not just the
last term. Fix for ticket [f7f8c97e97597].
FossilOrigin-Name: ec215f94ac9748c0acd82af0cc9e7a92249462f9
2016-04-25 02:20:10 +00:00
drh
7111c93c40
Add some missing testcase() macros to the pushDownWhereTerms() routine.
...
FossilOrigin-Name: 67d7f79c5e5be41a18817c802b5c4d349e3a83a4
2016-04-14 15:38:33 +00:00
drh
7512cb47e8
Additional ".selecttrace" debugging output when the query is transformed from a
...
DISTINCT into a GROUP BY.
FossilOrigin-Name: 5a46914510af4d5557b299db65c68d5df1070766
2016-04-14 13:06:49 +00:00
drh
6f07734349
Performance optimization the Vdbe allocator.
...
FossilOrigin-Name: e2c4995bf1099cc02bcb1dc4a4631f06a870d171
2016-04-12 00:26:59 +00:00
drh
f3c57ff54c
Avoid unnecessary calls to object destructors for a small performance gain.
...
FossilOrigin-Name: aec94b6ee68fe50e2cc14388281e2ef531e21d68
2016-04-12 00:16:54 +00:00
drh
ed06a131da
Carry table column types through into VIEW definitions, where possible.
...
FossilOrigin-Name: fb555c3c2af7f5e62ff839658f4fba7b645d3a68
2016-04-05 20:59:12 +00:00
drh
d7564865ad
The sqlite3_column_decltype() routine should return NULL, not an empty string,
...
if the column has no declared type.
FossilOrigin-Name: 605eba4a756e7185119088e2242f82691d078b01
2016-03-22 20:05:09 +00:00
drh
0ff47e9e1b
Implement FROM-clause subqueries as co-routines whenever they are guaranteed
...
to be the outer-most loop of the join.
FossilOrigin-Name: c7bae50bdccb5bcf3bc22e8ac5bb6725ef13db39
2016-03-15 17:52:12 +00:00
drh
94eaafa9ce
Reduce the amount of heap required to store many schemas by storing each
...
column datatype appended to the column name, rather than as a separate
allocation.
FossilOrigin-Name: 842b21162713bb141b845b01c136457a31af4ab0
2016-02-29 15:53:11 +00:00
drh
26bcc7cf40
Ephemeral tables used to hold manifested views may not be unordered since
...
they might be subject to an ordered comparison if they are part of a join.
FossilOrigin-Name: 3ef6a3153267d5328202fea24fd29ff4d5409295
2016-02-26 04:13:39 +00:00
drh
c3489bbf77
Take the LIMIT clause into account when estimating the cost of sorting.
...
FossilOrigin-Name: d491745cab951e0de70f1f79b7640ea8aff6e8bb
2016-02-25 16:04:59 +00:00
mistachkin
fad3039c51
Enhance ability to debug out-of-memory errors.
...
FossilOrigin-Name: 6a9c4a3ebfb7cc0738ef6634440ccab44a21ff28
2016-02-13 23:43:46 +00:00
drh
2fade2f791
Make sure every co-routines has its own set of temporary registers and does
...
not share temporaries, since a co-routine might expect the content of a
temporary register to be preserved across an OP_Yield.
Proposed fix for ticket [d06a25c84454a].
FossilOrigin-Name: ca72be8618e5d466d6f35819ca8bbd2b84269959
2016-02-09 02:12:20 +00:00
drh
575fad6500
Add the slightly faster sqlite3DbMallocRawNN(db,n) routine for the majority
...
cases where db is guaranteed to be not NULL.
FossilOrigin-Name: 0a802e96ab06e2643834b83671fa8353da1a348d
2016-02-05 13:38:36 +00:00
drh
4a642b6060
Improvements to the way that OOM errors are processed.
...
FossilOrigin-Name: c3ef03478a5788c855b3aef385d43ae7f494f440
2016-02-05 01:55:27 +00:00
drh
b17020265b
Change the P4_INTARRAY so that always begins with a length integer. Print
...
the content of the INTARRAY on EXPLAIN output.
FossilOrigin-Name: 6c520d5726e80b4251338c43c405270d150ea81e
2016-01-30 00:45:18 +00:00
drh
cc2fa4cf55
Replace the OP_SetIfNotPos operator with OP_OffsetLimit in the VDBE, for
...
simpler and smaller code.
FossilOrigin-Name: 7ac017a498b6fb28343eef2d24e400c7800660d6
2016-01-25 15:57:29 +00:00
drh
40aced5c65
Add the sqlite3TokenInit() utility function.
...
FossilOrigin-Name: 7323175337b7ba85ac932ca892b28860f6a5b688
2016-01-22 17:48:09 +00:00
drh
c263f7c4b3
Avoid unnecessary calls to memset() for a small performance improvement.
...
FossilOrigin-Name: 9e8c23acf74944a165c733682a956948b15bd401
2016-01-18 13:18:54 +00:00