drh
894241c847
Avoid a potential null-pointer dereference following an OOM.
...
FossilOrigin-Name: 25f6ed8de4df9c9890d4a352a6d11084433e82ea
2016-08-24 00:25:27 +00:00
drh
e835bc1285
Simplify the row value misuse error message.
...
FossilOrigin-Name: 838c50a5bf46fd0340839d577fa28ba02b4f2034
2016-08-23 19:02:55 +00:00
drh
66860af3dd
Fix a problem with rowvalue UPDATE when the rowvalue is not the left-most and
...
the RHS is a multi-column subquery.
FossilOrigin-Name: e149e6b93a9afb3d574309c0db60e221e24078f7
2016-08-23 18:30:10 +00:00
drh
abb9d5f189
Fix an uninitialized variable in CASE expression code generation.
...
FossilOrigin-Name: c8ffae05e13033ec7425bf0f002df31f550bb7f1
2016-08-23 17:30:55 +00:00
drh
12abf408ff
Fix the vector BETWEEN operator so that it only evaluates the left-most
...
vector expression once. Add support for vector comparisons in the CASE
operator.
FossilOrigin-Name: 07e69f43a294d35b5145a2b0242ee42d50adab14
2016-08-22 14:30:05 +00:00
drh
db45bd5e82
Reinstate the mechanism in BETWEEN that avoids evaluating the first expression
...
more than once, but fix the affinity extractor so that it works with this
mechanism. The de-duplication of the first expression still does not work
for vector expressions, though.
FossilOrigin-Name: 2f39987f21bd6dae8d2be610a1fd5f06f8878e9e
2016-08-22 00:48:58 +00:00
drh
84b19a3da1
The docs promise the in "x BETWEEN y AND z" the x expression is only evaluated
...
once. That is no longer true, and so some tests are failing. This needs to
be fixed before merging to trunk.
FossilOrigin-Name: e50d264fdc2f08d19202c68f73f18df301cb233d
2016-08-20 22:49:28 +00:00
drh
d832da7f40
Further comment enhancements. No changes to code.
...
FossilOrigin-Name: d4562a9e7b1eaff41466210e3a0caaf374ec5a92
2016-08-20 21:11:25 +00:00
drh
76dbe7a8d0
Clarification of code comments in expr.c. Clean up the implementations
...
of sqlite3ExprIsVector() and sqlite3ExprVectorSize() slightly.
FossilOrigin-Name: 4fb66d6592b141a4a71359250dbd1ac454569cb9
2016-08-20 21:02:38 +00:00
drh
8bd0d58e1c
Fixes for problems following OOM errors.
...
FossilOrigin-Name: 9041ee4a6f0e8389297f887f1431ab5cfe783390
2016-08-20 18:06:14 +00:00
drh
9854260bca
Do not duplicate the Expr.pLeft subtree of a TK_SELECT_COLUMN node.
...
FossilOrigin-Name: 8384c77ebb3f65fbc54c199885926f2066f0b140
2016-08-20 17:00:16 +00:00
dan
f358009a93
Fix a segfault that could occur if a query that used a vector comparison contained certain types of syntax errors.
...
FossilOrigin-Name: 203f07c5e140e74cf91d0c1e20135c21236f0fc1
2016-08-20 15:01:24 +00:00
drh
8762ec1935
Improvements to comments. No code changes.
...
FossilOrigin-Name: 4165d20f64d778a4e48f511a37cfced8579d4dbe
2016-08-20 01:06:22 +00:00
drh
a1251bc40d
Add support for vector assignments in the SET clause of an UPDATE statement.
...
FossilOrigin-Name: f320d47d6b7b08d9552c8444004bc256348bda90
2016-08-20 00:51:37 +00:00
drh
fc7f27b9d2
Change the way TK_SELECT_COLUMN is handled so that the subquery is only
...
generated once even if part of the vector comparison is used for indexing
and the other part is now. This change also is a pathway to vector assignment
in UPDATE statements.
FossilOrigin-Name: d8feea7dcde83179bff303072426561cfe825e58
2016-08-20 00:07:01 +00:00
drh
39a11819f3
Improved comments on sqlite3CodeSubquery(). No changes to code.
...
FossilOrigin-Name: acea4ee136def4815d22eec240c5903a72bde9bd
2016-08-19 19:12:58 +00:00
drh
a2f629251f
Fix to the vector less-than operator. All legacy tests passing now.
...
FossilOrigin-Name: ec70a67ebc997f457be4d52d8affc37e142dc3ff
2016-08-13 12:37:47 +00:00
drh
79752b6e63
Attempt to simplify the logic and generated code for vector comparisons.
...
Basic comparison operators are working, but there are many indexing test
failures still to be worked through.
FossilOrigin-Name: dfc028cfbe7657d20727a2670ecadb1575eb8cbb
2016-08-13 10:02:17 +00:00
drh
471b4b92bd
Add VdbeCoverage() macros on newly added VDBE branch operations.
...
FossilOrigin-Name: 381aa73141db8ec59adbcb09e71af660ee4ae5ce
2016-08-12 11:25:49 +00:00
drh
a48d7e7749
Fix a post-OOM memory leak.
...
FossilOrigin-Name: 14009b32b955b42cfd5f0c2ce7d4b3ce19ce201e
2016-08-12 11:01:20 +00:00
dan
17994e3bca
Fix some problems with handling "no such collation sequence" errors.
...
FossilOrigin-Name: 8278be06fa69e3266866220bdaf5be45a5fcfa23
2016-08-11 12:01:52 +00:00
dan
adeb970da2
Merge trunk changes with this branch.
...
FossilOrigin-Name: 0e927a7e0250a65fd8e97b322cd69e93fadd13f0
2016-08-08 16:52:11 +00:00
drh
cc15313cc9
Add the experimental SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION compile-time option.
...
When enabled, the "unknown function" error is suppressed for EXPLAIN and
a no-op function named "unknown()" is substituted. This facilitiates using
the command-line shell to analyze queries from applications that contain
many application-defined functions that are not normally available to the
shell.
FossilOrigin-Name: b7f30a9ff20d580fdaecdcf2b644d09ad6c2575e
2016-08-04 12:35:17 +00:00
dan
d66e5794d1
Fix stat4-based cost estimates for vector range constraints.
...
FossilOrigin-Name: 18af74abc8ceae47ab9fbee3e3e5bb37db8fcba5
2016-08-03 16:14:33 +00:00
dan
f9b2e05c75
Fix SQLITE_OMIT_SUBQUERY builds.
...
FossilOrigin-Name: 339f85f414a484e44d2502d1ff7281caf9b7c838
2016-08-02 17:45:00 +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
5c288b929a
Fix problems with vector == comparisons and NULL values.
...
FossilOrigin-Name: 059d0d05354e6efab7892c97b339ffa0b5303587
2016-07-30 21:02:33 +00:00
dan
625015e0c9
Remove the EP_Vector expression flag.
...
FossilOrigin-Name: e9d9c6d46b46160fad6aa6e3441a65a09157515f
2016-07-30 16:39:28 +00:00
dan
19ff12dd76
Fix some issues with vector range constraints and the column cache. Also vector range constraints and rowid columns.
...
FossilOrigin-Name: 42607366bfc2dceb1013797a973b3b8df75dcb4d
2016-07-29 20:58:19 +00:00
dan
145b4ea519
Change the way "(a, b) = (SELECT *)" expressions are handled in where.c if there is an index on one of the columns only.
...
FossilOrigin-Name: 4dfebff2924f46284d5b9cda69175f79b29d6028
2016-07-29 18:12:12 +00:00
dan
7b35a77b1a
Fix further issues with multi-column IN(...) operators. Also some error handling cases surrounding row values.
...
FossilOrigin-Name: cc3f6542bec99b00d2698889bcea2aa0b587efa0
2016-07-28 19:47:15 +00:00
dan
34c125747d
Merge latest trunk changes into this branch.
...
FossilOrigin-Name: 9685880f7baeb670739fdcf2d9df08e22abaa699
2016-07-28 13:59:21 +00:00
dan
d49fd4e89a
Fix some problems with multi-column IN(SELECT...) processing.
...
FossilOrigin-Name: 719a3b2035a335ca8b9704646b1d641011e3ea0e
2016-07-27 19:33:04 +00:00
drh
e604ec0be0
Add test cases and fix a comment.
...
FossilOrigin-Name: 50f8ea37fb9647c4a9da2c269a4d6f54b10ce96b
2016-07-27 19:20:58 +00:00
drh
2409f8a112
When estimating the cost of an index scan, factor in the cost savings of
...
being able to use the index to evaluate some WHERE clause terms without
having to do a table lookup.
FossilOrigin-Name: a59b5622f7cc6e502d71aabc12c053582cd03609
2016-07-27 18:27:02 +00:00
dan
8da209b169
Fix where.c handling of "IN (SELECT ...)" expressions when the SELECT returns more than one result column. Also error handling for other row value constructor cases.
...
FossilOrigin-Name: 061b8006034f06a0311b4304c8b14d2c8b0153df
2016-07-26 18:06:08 +00:00
dan
ba00e30a3a
Allow vector IN(SELECT ...) expressions to use an index if either all the indexed columns are declared NOT NULL or if there is no difference between the expression evaluating to 0 and NULL (as in a WHERE clause).
...
FossilOrigin-Name: e2fd6f49b1b145bec09c581cc982b89429643ae9
2016-07-23 20:24:06 +00:00
dan
cfbb5e82db
Modifications towards better vector IN(...) support on this branch. Not activated yet.
...
FossilOrigin-Name: 34e35c71b25b0aa2d8931040feb260a78cc48c49
2016-07-13 19:48:13 +00:00
mistachkin
e234cfd11f
Fix typos in comments. No changes to code.
...
FossilOrigin-Name: 77c692a6704cd877ba35d0afb774ab9b46364d59
2016-07-10 19:35:10 +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
dan
3480bfdae9
Add a missing OP_ColumnsUsed opcode to code for expressions like "? IN (SELECT ...)" in cases where expression can use an index that may contain NULL values.
...
FossilOrigin-Name: 0b1579caf06a2c42433b8bc9dc28c9ad381aa07c
2016-06-16 17:14:02 +00:00
drh
35db31b24b
Add the CSV extension to the test fixture. Fix a memory leak in the CSV
...
extension. Add test cases for the CSV extension, including one that uses
a WITHOUT ROWID virtual table participating in the OR optimization.
FossilOrigin-Name: 95f483e86e30ae68108904400e18ed41d389446b
2016-06-02 23:13:21 +00:00
drh
eeb9565a3e
Add a new OP_SeekRowid opcode, that combines the functions of OP_MustBeInt
...
and OP_NotExists. This makes the code slightly smaller and faster.
FossilOrigin-Name: ffe80a1bfa014943a614fc6993c1749b9bfec4c1
2016-05-26 20:56:38 +00:00
dan
ee65eea4af
Fix a couple of assert() statements that were failing with OOM error tests.
...
FossilOrigin-Name: 8eb3d7d8360530f364bbbebac53e1f0e6753d924
2016-04-16 15:03:20 +00:00
drh
244b9d6ec6
Performance optimization to sqlite3Dequote() and its callers.
...
FossilOrigin-Name: 9efe2265b1e70172778d333c5b9d9a76095427ab
2016-04-11 19:01:08 +00:00
drh
affa855c94
Performance optimization for the sqlite3ExprListDelete() routine.
...
FossilOrigin-Name: 2764aeaa11f38cf2ff4d6191e6d5466ddb203022
2016-04-11 18:25:05 +00:00
drh
bea119cdeb
Performance optimizations in the column cache of the code generator, and
...
especially the sqlite3ExprCacheRemove() routine.
FossilOrigin-Name: e35b345cf858018ae0c07f79725f8d58062168db
2016-04-11 18:15:37 +00:00
drh
3c19469ca2
Simplification and performance improvements in sqlite3ExprDup() and its
...
subroutines. More work is possible in this area.
FossilOrigin-Name: 476cc2838824e0667e80ce527b9caa551dee4a77
2016-04-11 16:43:43 +00:00
drh
4f0010b1bc
Performance improvement in sqlite3ExprDelete().
...
FossilOrigin-Name: 60ad80e3af4bae9f5c74fedf09eec9689e2e3dbf
2016-04-11 14:49:39 +00:00