aboutsummaryrefslogtreecommitdiff
path: root/src/expr.c
Commit message (Collapse)AuthorAge
...
* 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
* Many spelling fixes in comments. No changes to code.mistachkin2013-03-21
| | | FossilOrigin-Name: 6f6e2d50941e444ebc83604daddcc034137a05b7
* Fix the ORDER BY optimization with IN constraints when the RHS of thedrh2013-03-12
| | | | | IN constraint is a descending index. FossilOrigin-Name: 62316ebaca933f7e5df2018e8360a2b74234f30a
* Always use strncmp() rather than memcmp() when comparing strings where onedrh2013-03-01
| | | | | | | or other string might be less than the length parameter, since optimized versions of memcmp() might read past the first difference and in so doing generate an access violation. FossilOrigin-Name: d73435587ba7459e2e2c32980d0e17abdeceb4bc
* Rename SQLITE_CONSTRAINT_RAISE to SQLITE_CONSTRAINT_TRIGGER. Put the drh2013-02-09
| | | | | | extended constraint error codes in alphabetical order. Add many test cases for the extended constraint error codes. FossilOrigin-Name: 3f67437536591a1b0742a25b983707933aaa16d5
* Add extended error codes for constraint errors.drh2013-02-09
| | | FossilOrigin-Name: 5461104668a49529577f21df97f6a0e7d8f0c679
* Now supports result sets of the form "TABLE.*" with nested FROM clauses.drh2013-01-03
| | | FossilOrigin-Name: 4cf5ed7ea198abc32f8118e79490e77f847f08c1
* Adjustments to the collating-sequence refactoring to facilitate full-coveragedrh2012-12-08
| | | | | testing and to fix some minor issues found by TH3. FossilOrigin-Name: cdbfa664839a409589ec7cebfc9111235d2f3b38
* Veryquick passes all tests now.drh2012-12-08
| | | FossilOrigin-Name: 7b96115e81deab0aa0472839cf787ba3f2fc64a7
* Recognize TK_COLLATE operators that have been transformed into TK_REGISTER.drh2012-12-08
| | | | | | Skip both TK_COLLATE and TK_AS operators when looking for the top of an expression. FossilOrigin-Name: f66c1db2965054f38125218202b6a6ec62d57666
* Do not report missing collating functions while parsing the schema.drh2012-12-07
| | | | | Also remove a stray comment. FossilOrigin-Name: e313edca0472f07e9b872b92120d80b4bc177328
* Many more tests are passing. Only about 100 failures remain in veryquick.drh2012-12-07
| | | FossilOrigin-Name: f9fa7581c0371fe0feb4e97487741ade18595810