aboutsummaryrefslogtreecommitdiff
path: root/src/expr.c
Commit message (Collapse)AuthorAge
...
* Remove a no-op code path from sqlite3ExprIsInteger(). Replace it with andrh2011-02-17
| | | | | assert() that proves it always does nothing. FossilOrigin-Name: 7af66d1bd53fd5973281646511e4e1d3b16601a3
* Prevent a segfault when automatic indices try to use a column with andrh2011-02-10
| | | | | | unknown collating function. Ticket [77aa3b1e6592582e38605d36]. This check-in also removes some stray \r characters unrelated to the problem. FossilOrigin-Name: f01030a0df4f94f886ab209ee8766b095da28c1e
* Make sure code *compiles* with each OMIT and ENABLE option. Mostly changes ↵shaneh2011-02-09
| | | | | to test modules. FossilOrigin-Name: 7cc515edc9cade2bc6c74699b3e4153bf2b74ebb
* Add the ability to disable constant factoring using sqlite3_test_control().drh2010-12-06
| | | | | | Add a TCL interface to this new capability and add tests cases to the TCL test scripts to actually use the new capability. FossilOrigin-Name: ad8bc68197f2b47435149c3dbc035f4e7210fc76
* Back out part of the previous change that was not really necessary in orderdrh2010-12-06
| | | | | to fix [80ba201079ea60], and which in fact serves no useful purpose. FossilOrigin-Name: fa9eef865f2f399870305bef82296db25e5b3e90
* Initialize all constants at the very beginning of a prepared statement.drh2010-12-06
| | | | | | | Do not allow constant initialization to occur once control flow has a chance to diverge, to avoid the possibility of having uninitialized registers. Ticket [80ba201079ea60807]. FossilOrigin-Name: c5c53152d68218bb5e7f922271dd7c50da2361c1
* Further enhancements and fixes for explain query plan.dan2010-11-09
| | | FossilOrigin-Name: 73c93f5a2a32ee8c5d07c9ba33b2641e72626627
* Enforce the MAX_EXPR_DEPTH limit while building expression trees during SQL ↵dan2010-10-28
| | | | | parsing. FossilOrigin-Name: 2625eee0cb7f22dba61459b689e33a03ecebb6da
* Changes to remove sqlite3FitsIn64Bits().shaneh2010-09-30
| | | FossilOrigin-Name: 43fef1cab6315f837782ea601d5a2aeb9843ab3c
* Rework the text to numeric conversion routines so that they work with eitherdrh2010-09-30
| | | | | | UTF8 or UTF16 and do not require a NULL terminator. This allowed text to numeric conversion without reallocating the string. FossilOrigin-Name: 14eed3a0e0a45c6f2904a3a134aa27c159916f7b
* Replace some unreachable branch instructions with assert() statements.drh2010-09-28
| | | FossilOrigin-Name: 88b84bf18a4b27626f8a0a2d313706ddd4f13749
* Tweaks to help facilitate structural test coverage.drh2010-09-28
| | | FossilOrigin-Name: ff49a5f00b3aa83bdacc95a32d60527c740a6c09
* Test case and fix for the specific failure of ticket [b351d95f9cd5ef17e9d9dbae].drh2010-09-28
| | | FossilOrigin-Name: 57789cfe674dbbd4d5e4663774d1e7c541f7bdc4
* Continuing work toward detecting and fixing shallow-copy misuse.drh2010-09-28
| | | FossilOrigin-Name: d0342f4bb9d25dd1dba3957778faa993fb9cc81c
* Simplifications to the expression code generator. Remove about 80 lines ofdrh2010-09-27
| | | | | older and obsolete code. FossilOrigin-Name: 53f5cfe11516d0496c7760378b6305c3088d479f
* Provide hints to the btree layer during the creation of transient tablesdrh2010-08-30
| | | | | | | when it is possible for those tables to use a hash rather than a binary tree. No use is current made of those hints, though assert() statement verify their accuracy. FossilOrigin-Name: 4fead8e714c7e50a9d246467e62bc846ef6180a0
* Fix some compiler warnings in the MSVC build.shaneh2010-08-18
| | | FossilOrigin-Name: 1f5662b7db5d623c8d99c45a8d97a0aa4427593f
* Return an error when parsing "?NNN" if NNN is so large it cannot be stored ↵dan2010-08-17
| | | | | as a 32-bit int. FossilOrigin-Name: fc9014be0f00d046e7ba830a644f9ce93eca5db8
* Do not allow automatic indices for the RHS of IN expressions which are notdrh2010-07-28
| | | | | correlated subqueries. Ticket [8011086c85c6c404014c9] FossilOrigin-Name: 267492d3a7eff7b7b24ed6bd6d6ff55148fe37f3
* Enhance the LIKE/GLOB query optimization so that it works as long as theredrh2010-07-22
| | | | | | | is an index with the appropriate collating sequence and even if the default collating sequence of the column is different. Ticket [4711020446da7d93d99]. FossilOrigin-Name: 9f932655f9eb9fdab16d7deed98b7cad414e0ca6
* The expression list on the RHS of an IN operator can no longer be emptydrh2010-07-14
| | | | | | | because an empty expression list is now optimized out by changes in check-in [c288ac644d0bf]. Therefore add ALWAYS() macros around tests for the expression list being non-empty. FossilOrigin-Name: fd130ae56c0e23f2d5b4a82f1a09e89ed7ae1e85
* Make the result of an IN or NOT IN expression with an empty set on the drh2010-07-14
| | | | | | right-hand side always either false or true, respectively, even if the left-hand side is NULL. Ticket [80e031a00f45dc] FossilOrigin-Name: c288ac644d0bfda2b9bc204dc86df8e74d4f6843
* Make sure the value of an INTEGER PRIMARY KEY column supplied to triggersdrh2010-05-14
| | | | | | and especially to FK constraints really contains the ROWID and not the NULL that is stored in the column itself. Ticket [dd08e5a988d00dec]. FossilOrigin-Name: 636f86095eb1f4bdcfb0c9ed846c4c6b3589c10b
* Remove the OP_Variable optimization of check-in [48b77b04935d894] since itdrh2010-05-12
| | | | | can lead to malfunctions as described in ticket [26ff0c82d1e90]. FossilOrigin-Name: 7838163d087780a6fb403a17641b96f71baec088
* Optimization: Convert an ORDER BY clause into a no-op if the query alsodrh2010-04-26
| | | | | contains a GROUP BY clause that will force the same output order. FossilOrigin-Name: ca9d86baf70f210d331ce93102177c8005c494cb
* Modify the vdbe so that the comparison operator opcodes do not modify the ↵dan2010-03-05
| | | | | data type of operands. Fix for [aa92c76cd4]. FossilOrigin-Name: 8858042fa1449516a2c7dbb991dca3eb6c5794cb
* Comment out unused code when SQLITE_OMIT_FLOATING_POINT is selected.drh2010-01-13
| | | | | Added testcase() macros to boundary conditions in util.c routines. FossilOrigin-Name: dfc6595d347ea87923a857778b68751103f535d2
* Use #ifdefs to disable unused code when SQLITE_OMIT_FLOATING_POINT is defined.drh2010-01-12
| | | FossilOrigin-Name: 66bab8561926963a87f15ad559cba36545c9892c
* Fix the expression comparison logic to take the COLLATE operator into account.drh2010-01-07
| | | | | Ticket [360c6073e197] FossilOrigin-Name: 44bb1bfe5dedd8054ddd933941ee4112ed8d3b68
* Adjustments to column cache handling in order to restore 100% branchdrh2009-12-30
| | | | | test coverage. FossilOrigin-Name: cc6b959bc1f968e08eea1afd387201d70a0c1e80
* Remove some code in the column cache that is no longer used. Replace it withdrh2009-12-30
| | | | | an assert(). FossilOrigin-Name: 1f890efb7863bd743b9f6ef841e0c0c4e67d76e1
* Remove obsolete comment text from expr.c. No functional code changes.drh2009-12-30
| | | FossilOrigin-Name: 84058be0beb799bc989d73a8d4cd8791ab709395
* Immediately purge entries from the column cache when the associated registerdrh2009-12-24
| | | | | | | | undergoes an affinity change. Ticket [eb5548a849]. Enhance the SQLITE_TESTCTRL_OPTIMIZATIONS setting of sqlite3_test_control so that it can disable the column cache for testing purposes, in an effort to prevent future problems of a similar nature to this one. FossilOrigin-Name: ea4e57e1c1b6663ceb12872e31a8503f6c14e3d8
* Change so that deleting an Expr structure requires only one frame per level ↵dan2009-11-23
| | | | | in the expression tree, not two. FossilOrigin-Name: a4380ab326e4b0de29271c824d041193e86b7139
* Remove an unreachable branch from the OP_Affinity suppression logic.drh2009-11-19
| | | FossilOrigin-Name: 598727e6dae87f133c658fa125684f6ad978be60
* Fix a bug introduced with recent optimizations: The unary minus operatordrh2009-11-19
| | | | | is TK_UMINUS, not TK_MINUS. FossilOrigin-Name: 4bd43307090258f8652c995b056101c51b81274a
* Suppress more instances of unnecessary OP_IsNull and OP_Affinity opcodes.drh2009-11-18
| | | FossilOrigin-Name: bf6c0bd1c5568c6292ea0a64c8a5071e1bd3079a
* Code generator tries to avoid pointless OP_IsNull and OP_Affinity opcodes.drh2009-11-17
| | | FossilOrigin-Name: ebb0c8a3e977dc741704e733b5a5d931d9b27028
* Changes to test_intarray.c so that it build with SQLITE_OMIT_VIRTUALTABLE.drh2009-11-13
| | | | | Added testcase() macros to expr.c. FossilOrigin-Name: f0599d28fabe9e67a7150a91c266cb7655a2002e
* Enhance the OP_Found and OP_NotFound opcodes so that they can accept andrh2009-11-12
| | | | | | | array of registers as an unpacked record in addition to a record built using OP_MakeRecord. Use this to avoid OP_MakeRecord calls during IN expression processing. FossilOrigin-Name: b9eab885cd2ca1a1633329e7036c125e8dba62c5
* Factor out the IN operator code generation into a subroutine. Use thisdrh2009-11-12
| | | | | subroutine to implement both logic and branching versions of the IN operator. FossilOrigin-Name: fcff5b7e2d059ffb8d21df57d0c9648bd876e813
* Factor out the code generator for BETWEEN into a subroutine.drh2009-11-12
| | | FossilOrigin-Name: 5735f60b23460e7677b9c982a26bc13b0f4ed02b
* Generate VDBE code for the built-in COALESCE() and IFNULL() functions. Thisdrh2009-11-11
| | | | | | allows unused arguments to never be evaluated, which is a performance win when the unused argument is a subquery. FossilOrigin-Name: 30055b257c3c65f8123cad5ac6c62c4c6ca2c900
* Create a new datatype "ynVar" to hold "nVar" (number of variable) values.drh2009-11-04
| | | | | | This is normally 16-bits can can be 32-bits if SQLITE_MAX_VARIABLE_NUMBER is large enough. FossilOrigin-Name: 24a4d520d540d92b611abc4eb57dc6da9be4eac6
* Fix compiler warnings on MSVC build.shane2009-11-03
| | | FossilOrigin-Name: 01c4b5b84ec7ce589e20ea66e80011f092ab32f0
* Avoid storing the result register for EXISTS and SELECT in any field ofdrh2009-10-30
| | | | | | the Expr object - simply return the register number as the return value of the function that codes those expressions. FossilOrigin-Name: 7253f8fad1efe6b88666f0f8740d247ff07a7640
* Reduce the memory required by prepared statements that use the IN operator drh2009-10-29
| | | | | with a list on the right and an INTEGER PRIMARY KEY on the left. FossilOrigin-Name: e7984ad2f7e4be30e7198ebd6609a7f6177513e2
* Add the experimental sqlite3_reoptimize() API.dan2009-10-15
| | | FossilOrigin-Name: 9bd6f3d8864d422fe42074688b191915b27ad8ea
* Change the version number to 3.6.19. Fix a couple of incorrect testcase()drh2009-09-23
| | | | | macros associated with the new IS and IS NOT operators in expr.c. FossilOrigin-Name: e3b73394bf9c0391e997079b160eace3589415ab
* Generalize the IS and IS NOT operators so that their right-hand side can bedrh2009-09-23
| | | | | | | an arbitrary expression and not simple the constant NULL. They work like = and <> except that NULL values compare equal to one another an unequal to everything else. FossilOrigin-Name: 98853f6104076c50ea92175e17a3254bfbbd4619