aboutsummaryrefslogtreecommitdiff
path: root/src/expr.c
Commit message (Collapse)AuthorAge
...
| * Don't try to verify the schema of transient table (such as generated insidedrh2014-01-15
| | | | | | | | | | a WITH clause) when generating code for "IN table" operators. FossilOrigin-Name: 860aa936634a60d68e3954fc408a96a9260394e0
| * Disable the flattening optimization if the sub-query is a recursive CTE.dan2014-01-15
| | | | | | FossilOrigin-Name: 9472f6d820a7fb233936d9b8f7a39c9d4c4d6d73
| * Add code to handle recursive CTEs.dan2014-01-14
| | | | | | FossilOrigin-Name: a5c2a54a07d35166911abc792008c05dea897742
| * Add code to handle non-recursive CTEs in the same way as SQL views.dan2014-01-13
| | | | | | FossilOrigin-Name: a26f399ba485e8127c276c5f103ec6c555e11734
| * Fix an typo that breaks the build when SQLITE_ENABLE_TREE_EXPLAIN is defined.drh2014-01-04
| | | | | | FossilOrigin-Name: f461e2b3973d0fe6a7b8cb7a3aaab8a30b3e16c0
| * Improvements to the column-cache for nested AND/OR operators.drh2014-01-04
| | | | | | FossilOrigin-Name: 4e725f53131d3584319c710c8710a068989543c6
| * Be more aggressive in optimizing constant conditional expressions.drh2014-01-02
| | | | | | FossilOrigin-Name: b7e39851a75b87ebca747b26a39989560fd6362b
| * Combine adjacent single-register OP_Copy instructions into a singledrh2013-12-20
| | | | | | | | | | | | multi-register OP_Copy, where possible. Fix the Synopsis comment for multi-register OP_Copy instructions to show the correct register ranges. FossilOrigin-Name: 2ae22dc0cbed2feca4baf89d02aaace0331971d6
| * Show changes to the column cache when PRAGMA vdbe_addoptrace=ON is set.drh2013-12-18
| | | | | | FossilOrigin-Name: 4c6a659c432e4f7c0285f58675a67f967b07bb0d
* | Do not allow cursor hints to use expressions containing subqueries. Thisdrh2013-12-07
|/ | | | | change fixes the problem seen in the previous check-in. FossilOrigin-Name: bfefc57554853e467ee6aeaba8d08331406fa216
* Do not reuse factored constants that might have had their encodings changed.drh2013-11-21
| | | FossilOrigin-Name: 487f20366ce77f0c90865d10d5aaedd95af98694
* Fix the code generator to honor turning off constant expression factoring.drh2013-11-21
| | | FossilOrigin-Name: 882622662dfadf49c65c7d80b7fd87533d079ce9
* When one or more arguments to a function are constants, try to factordrh2013-11-21
| | | | | out just those arguments into initialization code. FossilOrigin-Name: 50d350abbc9176cd6fc606bc45b8fc3020719500
* Remove the obsolete TK_CONST_FUNC token type.drh2013-11-21
| | | FossilOrigin-Name: 9b4217f055e9bced186b4c56a5753bd6da7115b5
* Add the ability to factor constant functions out of inner loops. But dodrh2013-11-21
| | | | | not factor out non-constant functions, like random(). FossilOrigin-Name: 1b0f779e19a5c0d51eddd2d88db50034d77d132c
* Simplifications to the VdbeCursor object.drh2013-11-20
| | | FossilOrigin-Name: 5562cd343d8f69242e06a51a7f1aef7ee7d78eec
* Add ALWAYS and NEVER macros to currently unreachable but important branches indrh2013-11-15
| | | | | sqlite3ExprCompare(). FossilOrigin-Name: cee835fe902e46f283257fb8ec9d9744c7d6dd77
* Changes to make the new constant expression factoring logic more generaldrh2013-11-15
| | | | | and more testable. FossilOrigin-Name: d10fb49a92f5f6e93093ae83544e5aec7984361a
* Improvements to the Expr comparison routine to make it more general.drh2013-11-15
| | | | | | Improvements to unary-minus code generation so that it can make use of a global constant register with a zero value. FossilOrigin-Name: 835be656bb0e83c8108104869166aa9dd850d265
* Rework the logic that factors constant expressions out of inner loops, makingdrh2013-11-15
| | | | | it both simpler and faster. FossilOrigin-Name: 8dc5c76c766828d7c28090bec30ff48227e7b140
* Reference count the KeyInfo object. Cache a copy of an appropriate KeyInfodrh2013-11-06
| | | | | for each index in the Index object, and reuse that one copy as much as possible. FossilOrigin-Name: defd5205a7cc3543cdd18f906f568e943b8b3a2c
* Standardize the error messages generated by constraint failures to a formatdrh2013-11-05
| | | | | | of "$TYPE constraint failed: $DETAIL". This involves many changes to the expected output of test cases. FossilOrigin-Name: 54b221929744b1bcdbcc2030fef2e510618afd41
* Fix the Synopsis on OP_Concat. Added test_addop_breakpoint() duringdrh2013-10-31
| | | | | | | SQLITE_DEBUG. Enhanced sqlite3VdbeChangeToNoop() to omit the instruction if it is the most recent added. Continue to fix problems with UPDATE and WITHOUT ROWID. FossilOrigin-Name: 9b6d9e106aaa3c2efb33d234d26cf08cd3c967b9
* Fix issues with quering from an auxiliary index that must refer back to thedrh2013-10-31
| | | | | PRIMARY KEY index of a WITHOUT ROWID table. FossilOrigin-Name: cff1f55c52ff57557d9b728a5cd830a367091794
* Some inserts and queries working for multi-column primary keysdrh2013-10-23
| | | | | and WITHOUT ROWID. FossilOrigin-Name: b21d831b2aa55507dd9def2acb02cdbffddf10d1
* The Index object now has nKeyCol and nColumn. nColumn is the total numberdrh2013-10-22
| | | | | | of columns and nKeyCol is the number of key columns. Currently these always differ by one. Refactor aiColumn[] to be of type i16 instead of int. FossilOrigin-Name: a106ce86cd4afd1f81603826de77df1fb25e9ab5
* Improved estimates of the relative speed of index scans based on declareddrh2013-10-04
| | | | | | datatypes of columns in the table. Add "r" column to PRAGMA index_info, showing the estimated relative scan rate. FossilOrigin-Name: 07462bb6059f023c22a6c84a4a02afbd84e69255
* Remove one unreachable branch and add asserts() to dupedExprStructSize().drh2013-09-13
| | | | | | New asserts verify that removed branch is unused and that constants that are ORed together in the output do not overlap. FossilOrigin-Name: 86ad358b5a7567857f2f998fbb8266b7de9ec87e
* Refactor the ExprSetIrreducible() macro into ExprSetVVAProperty(*,EP_NoReduce).drh2013-09-12
| | | | | This is a naming change only. The logic is the same. FossilOrigin-Name: 695aee46e9bdf15159ab52db7f522b30c91aed0f
* Merge in the Expr.flags expansion to 32-bits. Use an extra bit to helpdrh2013-09-12
|\ | | | | | | | | optimize the sqlite3ExprSkipCollate() routine. FossilOrigin-Name: 4c84d1b4c20f18921dd705bf67e8225975b83e86
| * Increase the number of bits available in Expr.flags. Other tweaks aimed atdrh2013-09-12
| | | | | | | | | | making expression processing more robust. FossilOrigin-Name: 579a512538528cf4bb4381ba393c5d9e7310086b
* | Initial implementation of the unlikely() SQL function used as a hint todrh2013-09-06
|/ | | | | the query planner. FossilOrigin-Name: 036fc37a034093a4c6fc190633bd41c2b7230d77
* Combine the FuncDef.iPrefEnc and FuncDef.flags fields into a singledrh2013-09-06
| | | | | new FuncDef.funcFlags field. FossilOrigin-Name: 97b10e66e98e84755aa577f8da017bf1aea2056c
* Fix several harmless compiler warnings. Fix a couple compiler issues with ↵mistachkin2013-08-28
| | | | | the shell. FossilOrigin-Name: 8917e9f9a0802cbfb6f33e2ab1c2f98e4df5babd
* Candidate fix for [d666d600a6].dan2013-08-21
| | | FossilOrigin-Name: 781592f32c8e1dcd59954c17211cf61349d1c0b1
* Add some extra assert() statements to silence a few clang warnings.dan2013-08-19
| | | FossilOrigin-Name: 1c63e9515b5f5cb9169928b108d002dcd18ad4fd
* Add a testcase() macro to verify OOM coverage.drh2013-08-06
| | | FossilOrigin-Name: d43dcbc488120aeb7104ab9e6a27f62bb348bf6a
* Remove unreachable branches in expr.c, replacing them with assert() anddrh2013-08-06
| | | | | testcase() statements. FossilOrigin-Name: 9103c27ceb3f4023ea3a41b679a10717d3f80210
* Factor all KeyInfo object allocations into a single function:drh2013-08-05
| | | | | | | sqlite3KeyInfoAlloc(). Always allocate enough space so that sqlite3VdbeRecordCompare() can avoid checking boundaries and hence run faster. FossilOrigin-Name: 7301bedd94c8610568349953b18ff3575203e1b2
* Add NEVER() and ALWAYS() macros on some unreachable yet prudent branches.drh2013-08-02
| | | FossilOrigin-Name: c5c0a8ab6c222185d5f9d4321e64d9f93cd36b7d
* More test cases and corresponding bug fixes.drh2013-08-01
| | | FossilOrigin-Name: 0c8cfdfae215c95cf167f404a1d346690b28e972
* Fill out an initial implementation of the sqlite3ExprImpliesExpr() function.drh2013-08-01
| | | FossilOrigin-Name: 8e07aa2ad5579aeb82174ce5bd432ddb9c058bc1
* Add the logic to keep partial indices up to date through DML statements anddrh2013-08-01
| | | | | | when new partial indices are created. This new logic is untested except to verify that it does not interfere with full indices. FossilOrigin-Name: fb9044d15ad4fd6ae4a38858c0c0e6fe9d4faa25
* Add logic to the query planner to only use partial indices if the WHERE clausedrh2013-07-31
| | | | | | | constrains the search to rows covered by the partial index. This is just infrastructure. The key routine, sqlite3ExprImpliesExpr(), is currently a no-op so that partial indices will never be used. FossilOrigin-Name: 8ca3eac111e06a1854f878a74bffe8f20eb47f1b
* Fix an uninitialized variable detected by valgrind. Unclear whether or notdrh2013-06-26
| | | | | this should apply to trunk. FossilOrigin-Name: 19ab4811d542ba781aeb6a4eb3c74642677225e1
* Adjustments to testcase() macros for improved testability.drh2013-06-18
| | | FossilOrigin-Name: 4fbb0c4d26c54aaefbe5397cde2a0b9d2ce3885f
* Fix the Parse.nQueryLoop state variable to work with NGQP.drh2013-06-11
| | | FossilOrigin-Name: f1cac24f06b9c71cfa472fdcf2da4cd8689a7cc3
* Many small harmless comment changes. Removal of obsolete comments anddrh2013-05-28
| | | | | fixing misspelled words. No changes to code. FossilOrigin-Name: a0d5cc9315dc6e9ef7dee4c3dfabf4e562d64376
* The sqlite3ExprCollSeq() function can no longer be called while parsedrh2013-05-15
| | | | | | the schema, so remove the code path inside of sqlite3ExprCollSeq() that dealt with that case. FossilOrigin-Name: 867b3e3b29a357f68e48f0898bf323c5dd0575a4
* Make sure the affinity and datatype of sub-subqueries are initializeddrh2013-04-25
| | | | | prior to subqueries as the latter relies on the former. FossilOrigin-Name: 39b4e6ff9316cc78ea88349091e195b8104d1e9e