dan
4b72524072
Code constant vector components outside of any loops in CASE and BETWEEN
...
expressions. Fix for [1a684656].
FossilOrigin-Name: c08aff13ead3e6a8b92c0f031b08f7e556922e70
2016-11-23 19:31:18 +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
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
9b4eaebc68
Enhance the OP_IdxInsert opcode to optionally accept unpacked key material.
...
FossilOrigin-Name: 89d958abbac45f2ca5954080cd9e74ec9a07ebb2
2016-11-09 00:10:33 +00:00
drh
1ad93a003d
Use NOT NULL partial indexes when the query is constrained by a single
...
LIKE or GLOB.
FossilOrigin-Name: 9b3a3b41b59a7ce7d3dd82c7402d6fdc6a5ca43c
2016-11-02 02:17:52 +00:00
drh
c9b39288ae
Size and performance optimizations on the sqlite3ExprAssignVarNumber() routine.
...
FossilOrigin-Name: 109852e51e2cc2674940ba3e5097a92e66f88bb8
2016-10-03 16:33:14 +00:00
drh
de25a88c50
Avoid unnecessary strlen() calls in sqlite3ExprAssignVarNumber() by passing in
...
the token length from the parser.
FossilOrigin-Name: d15ae2e530cffea60263f203ac5f89b6790f4bd5
2016-10-03 15:28:24 +00:00
drh
cca8a4ad6f
Fix an obsolete comment on a variable definition in expr.c. No code changes.
...
FossilOrigin-Name: 012ff6dd306328f7ea71a6600471c871e7ffe37b
2016-10-03 12:56:48 +00:00
drh
94881d732b
Fix an always-true conditional left over from the previous commit.
...
FossilOrigin-Name: ab12fce3318db447995e1465f34a1e43cd623d6a
2016-09-30 21:20:37 +00:00
drh
9b40d13f43
Fix the Parse.aColCache column cache so that all of the valid entries are
...
in the first Parse.nColCache slots.
FossilOrigin-Name: 6028502059ccbd3699637b7a70a6d8ce1b7c3dad
2016-09-30 20:22:27 +00:00
drh
209bc522b0
Add the EP_Leaf flag bit to the Expr.flags field to indicate Expr
...
nodes that do not have substructure. Use that bit to avoid unnecessary
recursion.
FossilOrigin-Name: 8a6ea455cd1bf42ae0a7f1f1789baf88d782db13
2016-09-23 21:36:24 +00:00
drh
e1c03b6233
Use sqlite3ExprAlloc() instead of sqlite3PExpr() for leaf nodes in the
...
expression tree, where appropriate. This is both smaller and faster.
FossilOrigin-Name: afac0709cec577a7851e3711730712cf12eeb6af
2016-09-23 20:59:31 +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
c332cc30d9
Improved performance in sqlite3ExprCodeTarget().
...
FossilOrigin-Name: 75146165dcc1ae1faab46b1a7333ef795d5eeac5
2016-09-19 10:24:19 +00:00
drh
9e5eb9c8cc
Revise the implementation of OP_Once so that it is smaller, faster, and uses
...
less memory. This also fixes an obscure bug introduced 3 days ago by check-in
[5990a1bdb4a073].
FossilOrigin-Name: 6bf5ba10d28f1b0a32aa9a560ae3143a1235eadb
2016-09-18 16:08:10 +00:00
drh
b80dbdc2f7
Fix a out-of-order variable declaration for some compile-time configurations.
...
FossilOrigin-Name: 6ac932c92a61cd68cc5b1816216e4748a5c7b3cd
2016-09-09 15:12:41 +00:00
dan
773d3afaa3
Remove an unnecessary branch from expr.c.
...
FossilOrigin-Name: 7cc9746c5414e02012efb8180f9eca2646800e74
2016-09-06 17:21:17 +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
dan
fad0e70c63
Fix a typo in a comment in expr.c.
...
FossilOrigin-Name: 288e934f356ff6276b3e7581ac0f998ca6e93610
2016-09-06 12:04:50 +00:00
drh
9f24b53dcc
Simplified logic to extract a column from a row value.
...
FossilOrigin-Name: e8f105c3009e9b667db2afc0088b020a2b94d370
2016-09-05 22:50:48 +00:00
drh
c1bcd9cc3e
Fix an assert() so that it does C-compiler does not combine an assert()
...
conditional with a production code conditional and thereby confuse the mutation
testing script.
FossilOrigin-Name: 2fa5288a7ef43f1fb26037c1b5e84b7b90400623
2016-09-05 19:57:46 +00:00
drh
b29e60c448
Catch vector size mismatch problems during name resolution to avoid later
...
problems.
FossilOrigin-Name: 56562a0346170cf7b72445976864b058437a8ac3
2016-09-05 12:02:34 +00:00
dan
80aa545337
Fix a problem causing the affinity of sub-select row-value elements to be ignored in some contextes.
...
FossilOrigin-Name: 7d9bd22c0715ede2592ee1fa7ebc215aded1ca1b
2016-09-03 19:52:12 +00:00
drh
4910a76d45
Performance optimizations.
...
FossilOrigin-Name: f1d06c49ba0d814dc7ffb538aac3f4e6251fd8f0
2016-09-03 01:46:15 +00:00
drh
106526e1bc
Fix a minor problem in sqlite3FindInIndex() related to rowids being used
...
as part of the index.
FossilOrigin-Name: 829f802be7d4647dd815b739bbc9e1d1ac6a224d
2016-08-26 22:09:01 +00:00
drh
a84a283d18
Fix the sqlite3FindInIndex() to ensure that it always uses a prefix of
...
the index and uses no repeated columns. Enhanced comments.
FossilOrigin-Name: b9fc89e432fbe4e5b41959a42797641907e075e3
2016-08-26 21:15:35 +00:00
drh
363fb95bc3
Add an EXPLAIN QUERY PLAN line for when a index is used to implement
...
an IN operator.
FossilOrigin-Name: 171aa833a2e1650c3d9cf9bd6438ae46f6c35871
2016-08-26 19:54:12 +00:00
drh
6fc8f36490
Enhance sqlite3FindInIndex() so that it is able to make use of the
...
primary keys at the end of an index.
FossilOrigin-Name: 4b589fbfcc4265902de0f552961d2df497a184da
2016-08-26 19:31:29 +00:00
drh
0dfa4f6fcc
Allow ROWID values in indexed vector comparisons.
...
FossilOrigin-Name: b0cc6be4eb81f21b11796e1f14d4412bf21dea6e
2016-08-26 13:19:49 +00:00
drh
64bcb8cfbb
Comment improvements. Put ALWAYS and NEVER macros on three unreachable
...
branches.
FossilOrigin-Name: 397617009e07004596476d6f5644fdf84c376f54
2016-08-26 03:42:57 +00:00
drh
a28f85b076
Remove an unreachable branch from sqlite3ExprAffinity()
...
FossilOrigin-Name: 9d96f61481704e5ec399ee425f0ebb246902ecc5
2016-08-26 01:02:09 +00:00
drh
e347d3e813
Refactor the sqlite3ExprCodeIN() routine for improved maintainability.
...
FossilOrigin-Name: b56705ae6374db9db82613ef89faa1a1e6b00a18
2016-08-25 21:14:34 +00:00
drh
ecb87ac88d
Improvements to IN operator code generator comments. Avoid unnecessary
...
Copy operations on the LHS of the IN operator.
FossilOrigin-Name: b6344298783a1207cba3f635939ddc9ba922ab67
2016-08-25 15:46:25 +00:00
drh
18016ad2bb
Simplified VDBE code for the vector NOT IN null-scanning loop.
...
FossilOrigin-Name: 7ae504e62e9bbbbd85a676f3c3922b7fd0cc73d2
2016-08-24 21:54:47 +00:00
drh
62659b2a80
In sqlite3FindInIndex(), improve internal comments and avoid an
...
unreachable branch.
FossilOrigin-Name: 55945fc12f8157e32e6850e41575c0c6422d29e7
2016-08-24 18:51:23 +00:00
drh
321e828d03
Fix more unreachable branches.
...
FossilOrigin-Name: 6099c180db55396d6307538a5428ae5ef1b82d10
2016-08-24 17:49:07 +00:00
drh
d0b67a8654
Add a NEVER() on an unreachable branch in comparisonAffinity().
...
FossilOrigin-Name: 505a2f20eac62d4e170f003255c8984e4f3b0918
2016-08-24 15:37:31 +00:00
drh
ac6b47d164
The previous OOM fix was bad. Back it out and replace it with a better one.
...
FossilOrigin-Name: 1e3bc3698a4b779e6af8e3c727929c4dbddf3edb
2016-08-24 00:51:48 +00:00
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