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
drh
a04a8be2c2
When the [ https://www.sqlite.org/queryplanner.html#partialsort |block sorting optimization]
...
is used in a scalar subquery, be sure to exit the loop as soon as the first
valid output row is received. Fix for ticket [cb3aa0641d9a4].
FossilOrigin-Name: cdbb0947f9ce18d6d7e29ffab5ea6a2ee5365fbb
2016-01-13 17:50:10 +00:00
drh
9ca33fa4c2
Fix an uninitialized field in the Select object when SELECTTRACE is enabled.
...
FossilOrigin-Name: fc62851667d9120f98a2641c87bbc5a2485482b2
2016-01-12 02:00:24 +00:00
drh
ca3862dc6e
Reduce the number of calls to memset() in sqlite3DbMallocZero().
...
FossilOrigin-Name: cede2bf8e42ac140a8cc75a1d173083f543ba467
2016-01-08 12:46:39 +00:00
drh
9802947fd8
Improved OOM recovery in the SELECT code generator logic.
...
FossilOrigin-Name: e6521a436d464a42b87a7d5ba5cc98235b92440a
2015-12-03 21:47:30 +00:00
drh
f7ce4291a9
Remove unreachable branches from the decltype computation logic in the query
...
planner.
FossilOrigin-Name: 4f2bcff94c672312805be1400050a7026f93a9d7
2015-12-02 19:46:12 +00:00
dan
9a8941fc83
Have the sqlite3_column_decltype() API report the declared types for the left-most SELECT statement in a compound SELECT.
...
FossilOrigin-Name: 3e1d71fcaf57c0223ab9a7366c8607f8f66bb21c
2015-12-02 18:59:44 +00:00
dan
8836cbbcb4
Fix an obscure memory leak found by libfuzzer that may occur under some circumstances if expanding a "*" expression causes a SELECT to return more than 32767 columns.
...
FossilOrigin-Name: 60de5f23424552c98aa760ac89149a3d51f895be
2015-11-21 19:43:29 +00:00
drh
202923107d
Do not allow table-valued function syntax on ordinary tables and views as those
...
objects are not table-valued functions.
Fix for ticket [73eba7ba5c7c0fc].
FossilOrigin-Name: ff5716b89f99d9c4568a39f1f52524528a631623
2015-11-21 13:24:46 +00:00
drh
80090f9221
When manifesting a view as part of an DELETE or UPDATE, be sure to include
...
the hidden columns in the manifestation.
FossilOrigin-Name: 28df5dc4a9569f388af2ee0d1f016afbea132277
2015-11-19 17:55:11 +00:00
dan
ba68f8f3f5
Fix problems with INSERT INTO ... SELECT ... statements that write to tables with __hidden__ columns.
...
FossilOrigin-Name: 59bd0ec7d4327852ee8c0206b2c59d0a12484db8
2015-11-19 16:46:46 +00:00
drh
1a1d3cd2f3
Create the new TK_ASTERISK token to represent the "*" in "SELECT *". Formerly
...
that operator was TK_ALL, which was also used for UNION ALL. Less confusion if
they operator symbols are distinct.
FossilOrigin-Name: 201ac6d449431dadc6b29faecd68b559bd64bc9f
2015-11-19 16:33:31 +00:00
drh
03d69a6826
Only support the magic "__hidden__" column name prefix interpretation when
...
compiled with SQLITE_ENABLE_HIDDEN_COLUMNS.
FossilOrigin-Name: 5490646b2eb74ea8bd5ab2690f69b9c707a0165f
2015-11-19 13:53:57 +00:00
drh
6aed239acc
Honor the "__hidden__" prefix on the columns of views.
...
FossilOrigin-Name: 3071ba2bdbda7018d0a285eceb04b8527209ec1e
2015-11-18 20:57:50 +00:00