/ File History
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

History of src/expr.c

2020-03-26
00:29
[226293a0] part of check-in [27936e68] Reinstate the optimization that converts "x IN (y)" into "x==y". (check-in: [27936e68] user: drh branch: trunk, size: 210537)
2020-03-11
19:41
[ed718ee2] part of check-in [d7f18489] Rename sqlite3ExprCodeAtInit() to sqlite3ExprCodeRunJustOnce(). Other changes to make the new code cleaner. Test cases added. (check-in: [d7f18489] user: drh branch: do-not-factor-functions, size: 210816)
17:58
[137db488] part of check-in [97a18a5c] Do not factor out constant functions into the initialization section at the end of the prepared statement, be cause if they throw an exception, it will abort the statement even if the function is never called. Better to put constant functions in an OP_Once block. (check-in: [97a18a5c] user: drh branch: do-not-factor-functions, size: 210942)
02:04
[cddb6c7c] part of check-in [fb5a8a9e] This variant to the fix for ticket [e0c2ad1aa8a9c691] uses fewer CPU cycles. (check-in: [fb5a8a9e] user: drh branch: trunk, size: 210515)
2020-03-10
19:24
[11799750] part of check-in [5f60b527] Enhanced detection logic for preventing the use of static schema expressions by code generating routines. (check-in: [5f60b527] user: drh branch: trunk, size: 210310)
19:23
[d8845931] part of check-in [2b750b0f] Prevent the read-only expressions held in the schema from being passed down into code generating subroutines where they might be changed. Pass a copy of the expression instead. (check-in: [2b750b0f] user: drh branch: branch-3.31, size: 208996)
13:35
[6454893a] part of check-in [03d201c0] Make a copy of the expression that defines a value of a generated column before sending it to the code generator routines. (check-in: [03d201c0] user: drh branch: trunk, size: 209677)
11:50
[92fa379d] part of check-in [101f7dea] Apply the correct affinity transformations when pulling values off of the sorter index used for GROUP BY. Ticket [e0c2ad1aa8a9c691] (check-in: [101f7dea] user: drh branch: trunk, size: 209673)
02:57
[4efd019b] part of check-in [a2d6f108] The sqlite3ExprCodeFactorable() routine should make a copy of non-factorable expressions, as they might be coming from a DEFAULT or generated column in a table constraint. (check-in: [a2d6f108] user: drh branch: trunk, size: 209517)
2020-02-17
19:25
[4b25db7f] part of check-in [abc473fb] A better (smaller and faster) solution to ticket [4374860b29383380]. (check-in: [abc473fb] user: drh branch: trunk, size: 209449)
00:12
[af70e9a1] part of check-in [9d0d4ab9] Take care when checking the table of a TK_COLUMN expression node to see if the table is a virtual table to first ensure that the Expr.y.pTab pointer is not null due to generated column optimizations. Ticket [4374860b29383380]. (check-in: [9d0d4ab9] user: drh branch: trunk, size: 209320)
2020-02-04
01:41
[6617ca8d] part of check-in [29a969d6] Extend the OP_Copy-coalesce optimization fix of check-in [b36126c1889e323c] so that it is also correctly disabled by the CASE operator. Ticket [9d3666754ac37d5a]. (check-in: [29a969d6] user: drh branch: trunk, size: 209170)
2020-01-09
20:44
[003c5915] part of check-in [5720924c] Merge in the untrusted-schema enhancements. See doc/trusted-schema.md for details. (check-in: [5720924c] user: drh branch: trunk, size: 208924)
20:11
[d8854187] part of check-in [83dc5567] Fix an assert() in window.c that could fail with some obscure SELECT statements that use window functions. Ticket [678ecf429f8d1a5f] (check-in: [83dc5567] user: dan branch: trunk, size: 206607)
2020-01-08
22:22
[c5ff3bb8] part of check-in [da434dc1] Block edgy functions used in DEFAULT constraints. (check-in: [da434dc1] user: drh branch: new-security-options, size: 208832)
20:37
[b1cb02a4] part of check-in [30882ca8] Performance improvements and test cases added. Allow "PRAGMA trusted_schema=ON" (check-in: [30882ca8] user: drh branch: new-security-options, size: 208004)
17:28
[bea12b33] part of check-in [1da802d5] Check for whether or not it is safe to use non-innocuous functions as the function is being coded, not when its name is resolved. (check-in: [1da802d5] user: drh branch: new-security-options, size: 207988)
2020-01-06
18:59
[631b1f24] part of check-in [b3f26967] Backout change [4d0b9109f7a5312d4e1] because the conditional it added is no longer reachable due to check-in [1409758f72c0206c]. (check-in: [b3f26967] user: drh branch: trunk, size: 206515)
2020-01-04
15:21
[e25df342] part of check-in [9da48a5c] Fix a false-positive in the register validity tracking logic by moving the temporary register release call before the jump that uses that temporary register. (check-in: [9da48a5c] user: drh branch: trunk, size: 206515)
2020-01-03
14:16
[70af0507] part of check-in [b36126c1] Fix the OP_Copy-coalesce optimization so that if the previous row happens to end with OP_Copy but is not a candidate for the optimization due to jumps, then the optimization is correctly bypassed. (check-in: [b36126c1] user: drh branch: trunk, size: 206515)
02:20
[53106d7c] part of check-in [ff9492d3] When generating the name of a view (or common table expression) because the SQL does not specify a name, avoid the names "true" and "false" which might be confused for the boolean literals of the same name, leading to an inconsistent abstract syntax tree. (check-in: [ff9492d3] user: drh branch: trunk, size: 206308)
2020-01-02
21:41
[bef2f4c1] part of check-in [bd57e6d9] Merge the latest enhancements from trunk. (check-in: [bd57e6d9] user: drh branch: two-size-lookaside, size: 205940)
17:46
[d74209d6] part of check-in [937be221] Have the OP_ReleaseReg opcode also invalidate the registers if P5 is non-zero. (check-in: [937be221] user: drh branch: trunk, size: 205955)
02:50
[75985a13] part of check-in [435c272d] Use OP_Copy instead of OP_SCopy to move the results of a scalar subquery. (check-in: [435c272d] user: drh branch: trunk, size: 205946)
2020-01-01
21:14
[7f3a19d0] part of check-in [4edddcc0] When generating code for a subquery, make a copy of the Select object and generate the code out of the copy, in case the code generator makes modifications to expression and the Select object needs to be reused. (check-in: [4edddcc0] user: drh branch: trunk, size: 206294)
16:43
[e76660a5] part of check-in [07e504d5] Fix the sqlite3ExprImpliesNonNullRow() routine so that it correctly handles a numeric comparison of two AND subexpressions. (check-in: [07e504d5] user: drh branch: trunk, size: 205837)
15:43
[971e442f] part of check-in [473892a8] New test-only SQL functions: implies_nonnull_row(), expr_compare(), and expr_implies_expr(). The SQLITE_TESTCTRL_INTERNAL_FUNCTIONS test-control is modified to toggle internal function access on and off for a single database connection. (check-in: [473892a8] user: drh branch: trunk, size: 205823)
13:55
[afde0ea1] part of check-in [586a65a2] Factor out code generation for in-line SQL functions into a separate routine inside of expr.c. (check-in: [586a65a2] user: drh branch: trunk, size: 204648)
2019-12-31
14:49
[8d4b6ac0] part of check-in [39d55579] Merge recent enhancements from trunk. (check-in: [39d55579] user: drh branch: two-size-lookaside, size: 203904)
2019-12-30
20:42
[e3bfa38e] part of check-in [40d10e7a] Put a NEVER() on a defensive branch. (check-in: [40d10e7a] user: drh branch: trunk, size: 203926)
06:55
[3584e19c] part of check-in [a9e0354c] In ALTER TABLE, rename columns and tables in expressions that are optimized out by the "AND 0" optimization. Doing this also fixes an otherwise harmless assert() failure. (check-in: [a9e0354c] user: dan branch: trunk, size: 203919)
2019-12-28
02:40
[de4fa050] part of check-in [4d0b9109] Convert an assert() back into a conditional. The conditional was converted into an assert() by check-in [6ae4ad6ebee4db88] (2009-05-28) because we were unable to find a test case for it. Yongheng's fuzzer just now found that test case. (check-in: [4d0b9109] user: drh branch: trunk, size: 203908)
2019-12-27
20:06
[188a8c03] part of check-in [597896ed] Remove a NEVER() that is no longer true. Fix for [36ffedcb9]. (check-in: [597896ed] user: dan branch: trunk, size: 203908)
08:57
[a01bfcf5] part of check-in [1ffc045d] When determining if an aggregate within a sub-query should be processed as part of the sub-query or an outer query, consider any FILTER clause in the same way as the arguments to the aggregate. (check-in: [1ffc045d] user: dan branch: trunk, size: 203836)
2019-12-25
23:54
[3a27de36] part of check-in [fa58aad4] When the sqlite3WindowRewrite() routine detects and error, have it convert the SELECT statement into just "SELECT null" so that it does not leave the parse tree in a goofy state that can cause problems with subsequent code before the stack has a chance to unwind and report the error. Ticket [d87336c81c7d0873] (check-in: [fa58aad4] user: drh branch: trunk, size: 203701)
2019-12-24
15:01
[518e4671] part of check-in [0a70f5dd] Extra defense against problems following an OOM. dbsqlfuzz find. Also import the latest dbsqlfuzz test cases. (check-in: [0a70f5dd] user: drh branch: trunk, size: 203639)
2019-12-23
15:17
[ba7bed1c] part of check-in [2f179749] Fix a case in which SQLite could fail to identify "x BETWEEN ? AND ?" being true as implying that x is not null. Ticket [dfd66334]. (check-in: [2f179749] user: dan branch: trunk, size: 203492)
02:18
[0f38beff] part of check-in [36fdeb4f] Enhance the sqlite3VdbeMemAboutToChange() shallow-copy validation mechanism by adding the new OP_ReleaseReg opcode to tell MemAboutToChange() that a range of registers is no longer needed so that the source register can be freely changed. This is a change to debugging and test builds only and does not impact release builds. Fix for ticket [c62c5e58524b204d] and [5ad2aa6921faa1ee]. The previous fix to ticket [5ad2aa6921faa1ee] is backed out by this change since this change is a better fix. (check-in: [36fdeb4f] user: drh branch: trunk, size: 203407)
2019-12-22
23:48
[21066971] part of check-in [9ab985a9] Change the code generator for the IN operator so that it avoids creating OP_Eq and OP_Ne opcode with the same P1 and P3 arguments. This enables us to back out check-in [ddb17d92df194337] and also fix ticket [188f912b51cd802]. (check-in: [9ab985a9] user: drh branch: trunk, size: 203175)
20:29
[59c52601] part of check-in [89a9dad6] Make a hard copy of strings in constraint checks prior to applying OP_RealAffinity, to avoid problems with a pointer accounting assert. This change is not strictly necessary - the correct answer is obtained without it and no UB occurs - however the pointer accounting asserts are useful to prevent other problems so it is a simple matter to bring this piece into compliance. Ticket [5ad2aa6921faa1ee] (check-in: [89a9dad6] user: drh branch: trunk, size: 202868)
18:06
[b7f3be57] part of check-in [a982e643] When parsing a CREATE TABLE from the sqlite_master table, delete the CHECK constraints if there are any errors, since there might otherwise be attempts to use those CHECK constraints if PRAGMA writable_schema=ON is set. This undoes the fix in check-in [ea721b34477ab8b4] for a more general solution. (check-in: [a982e643] user: drh branch: trunk, size: 202869)
2019-12-21
14:09
[d1031aae] part of check-in [ea721b34] When a corrupt schema is loaded using writable_schema=ON, the CHECK constraints (or other expressions in the table definition) might not be fully resolved. Ensure that the code generator can deal with this if the table is subsequently used in a DML statement. dbsqlfuzz find. (check-in: [ea721b34] user: drh branch: trunk, size: 203082)
2019-12-20
20:45
[f3849855] part of check-in [728ad39e] Apply real affinity to generated columns of type REAL that are extract from an index. Ticket [e0a8120553f4b082] (check-in: [728ad39e] user: drh branch: trunk, size: 202872)
2019-12-19
20:37
[5099de2d] part of check-in [e2bddcd4] When an error occurs while rewriting the parser tree for window functions in the sqlite3WindowRewrite() routine, make sure that pParse->nErr is set, and make sure that this shuts down any subsequent code generation that might depend on the transformations that were implemented. This fixes a problem discovered by the Yongheng and Rui fuzzer. (check-in: [e2bddcd4] user: drh branch: trunk, size: 202715)
2019-12-18
21:22
[8f873d6a] part of check-in [062e00c4] Change an unreachable testcase() into an assert() (check-in: [062e00c4] user: drh branch: trunk, size: 202684)
01:31
[a0330e40] part of check-in [9bdd57cb] Remove an assert() in the code generator that can fail due to an invalid INSERT statement. The same assert() appears again in the VDBE and will fire there if the problem persists in an SQL statement that does not contain errors. Gramfuzz find. (check-in: [9bdd57cb] user: drh branch: trunk, size: 202422)
2019-12-16
16:52
[6346d234] part of check-in [02714914] When a table is part of a LEFT JOIN and should be a completely NULL row due to the semantics of a LEFT JOIN, make sure any generated columns on that row evaluate to NULL. Ticket [3b84b42943644d6f] (check-in: [02714914] user: drh branch: trunk, size: 202470)
2019-12-14
17:43
[7c21a77c] part of check-in [2401e047] Do not set OP_Column flags on the instructions generated by sqlite3ExprCodeGetColumn() if the opcode generated is not really an OP_Column, which might happen if the column is virtual. Fix for ticket [b439bfcfb7deedc6] (check-in: [2401e047] user: drh branch: trunk, size: 202233)
15:01
[530df5b8] part of check-in [f8e876c8] Make the sqlite3ExprCodeTarget() expression code generator routine robust in the face of unknown opcodes - it simply generates a NULL value. (check-in: [f8e876c8] user: drh branch: trunk, size: 202176)
2019-12-13
00:49
[a4c16d4e] part of check-in [59d0f3af] Tie up the loose ends in the ExprList size reduction. (check-in: [59d0f3af] user: drh branch: exprlist-size-reduction, size: 202153)
2019-12-12
22:11
[828bc6ae] part of check-in [fdda76cf] Work toward reducing the incremental size of an ExprList object to 24-byte per entry, from 32-bytes (on a 64-bit machine). This helps the new mini-lookaside allocator to run better by avoiding excessive reallocs. The current change mostly works, but still has a few loose ends to tie up. This check-in is merely a snapshot to save my work. (check-in: [fdda76cf] user: drh branch: exprlist-size-reduction, size: 202112)
20:22
[eefc9abc] part of check-in [d3783357] Change the name of the Expr.a.zName field to zEName, so that it has a name that is distinct from other fields and variables and is hence easier to grep for. (check-in: [d3783357] user: drh branch: two-size-lookaside, size: 202180)
2019-12-07
00:22
[947911a1] part of check-in [27c0fdab] Fix a problem with foreign keys and generated columns discovered by Manuel Rigger. (check-in: [27c0fdab] user: drh branch: trunk, size: 202168)
2019-12-04
19:45
[208f7345] part of check-in [35f0b5a8] Window functions are never constant. (check-in: [35f0b5a8] user: drh branch: trunk, size: 202185)
2019-11-21
18:28
[be806016] part of check-in [8b12e95f] Fix a problem that comes up when using generated columns that evaluate to a constant in an index and then making use of that index in a join. (check-in: [8b12e95f] user: drh branch: trunk, size: 202131)
2019-11-10
10:08
[a138de8a] part of check-in [f7a74f89] Remove an incorrect ALWAYS() macro. (check-in: [f7a74f89] user: drh branch: trunk, size: 202030)
2019-11-06
22:19
[fad49e28] part of check-in [9e07b489] Change the way generated columns are computed so that no column is computed inside branch code that might not be taken. Ticket [4fc08501f4e56692] (check-in: [9e07b489] user: drh branch: trunk, size: 201870)
2019-11-04
02:05
[254238a9] part of check-in [ea20068e] Fix a false-postive in the sqlite3ExprImpliesNonNullRow() decision routine, that resulted in an incorrect LEFT JOIN strength reduction when the WHERE clause contained a row-value comparison. Ticket [02aa2bd02f97d0f2] (check-in: [ea20068e] user: drh branch: trunk, size: 202251)
2019-10-31
13:16
[a02db128] part of check-in [32982067] Ignore differences in Expr.op2 in sqlite3ExprCompare() in cases where it does not matter. Ticket [1d2a8efc6c3a595a]. (check-in: [32982067] user: drh branch: trunk, size: 202191)
2019-10-30
18:50
[90c774b3] part of check-in [2978b65e] Always disallow the use of non-deterministic functions in CHECK constraints, even date/time functions that use the 'now' or similar keywords. Provide improved error messages when this requirement is not met. Ticket [830277d9db6c3ba1] (check-in: [2978b65e] user: drh branch: trunk, size: 201528)
16:29
[23d5f9e4] part of check-in [84e02d77] Simplify the bytecode generation for SQL function calls such that the OP_Function or OP_PureFunc opcodes are coded directly, rather than using the intermediate OP_Function0 or OP_PureFunc0 - opcodes that are now removed. (check-in: [84e02d77] user: drh branch: trunk, size: 201499)
2019-10-28
13:07
[c158710c] part of check-in [f4285297] Remove a NEVER() comparison from sqlite3ExprCompare(). (check-in: [f4285297] user: drh branch: trunk, size: 201561)
2019-10-24
23:43
[91429fb5] part of check-in [4ec57d88] Merge fixes from trunk. (check-in: [4ec57d88] user: drh branch: generated-columns, size: 201585)
2019-10-23
18:09
[afa8c108] part of check-in [978b2d20] When a vector comparison appears in the WHERE clause and the constraint side has a COLLATE clause on the first term of the vector, be sure to honor that COLLATE clause. Ticket [135c9da7513e5a97]. (check-in: [978b2d20] user: drh branch: trunk, size: 200101)
2019-10-22
21:01
[bf20202a] part of check-in [9e04ba22] Take the declared column time into account when computing the values for generated columns, and apply appropriate affinity. (check-in: [9e04ba22] user: drh branch: generated-columns, size: 201504)
20:16
[738bcc44] part of check-in [1fbd7438] Merge the row-value fix from trunk. (check-in: [1fbd7438] user: drh branch: generated-columns, size: 201010)
19:51
[e5dad5e6] part of check-in [5c118617] Disqualify row-value comparisons for use by an index if the right-hand side has an affinity that does not match the index. Fix for ticket [6ef984af8972c2eb] (check-in: [5c118617] user: drh branch: trunk, size: 200020)
12:02
[7f2492f1] part of check-in [ba123b8c] Merge changes on trunk into the generated-columns branch. (check-in: [ba123b8c] user: drh branch: generated-columns, size: 200923)
00:03
[da4b31b0] part of check-in [90f7c477] When flipping ("commuting") a comparison operator, set the new EP_Commuted bit rather than adding extra EP_Collate bits, to single later processing that the order of precedence for COLLATE operators is inverted. Fix for ticket [b47e3627ecaadbde] (check-in: [90f7c477] user: drh branch: trunk, size: 199933)
2019-10-21
01:04
[e00d483f] part of check-in [bc368cb0] Changes to the INSERT logic to make it simpler and faster and so that it works with generated columns and BEFORE triggers. (check-in: [bc368cb0] user: drh branch: generated-columns, size: 199913)
2019-10-19
18:47
[ffa1cda4] part of check-in [932a3727] Work toward getting generated columns to work with triggers. Still more work to do in this area. (check-in: [932a3727] user: drh branch: generated-columns, size: 200810)
15:01
[254252a9] part of check-in [fb9c9bb2] Add testcase macros. (check-in: [fb9c9bb2] user: drh branch: generated-columns, size: 200984)
13:29
[8caa6f07] part of check-in [27ab41c9] Refactor names of column index transformation functions, for clarity. Get generated columns working with ALTER TABLE RENAME COLUMN. (check-in: [27ab41c9] user: drh branch: generated-columns, size: 200859)
2019-10-18
12:52
[e2c2f78c] part of check-in [e8426acb] Claw back some performance from the sqlite3ExprGetColumnOfTable() routine. (check-in: [e8426acb] user: drh branch: generated-columns, size: 200813)
02:19
[e492fffa] part of check-in [0d236698] STORED columns can now reference other STORED columns, in any order, as long as there are not loops. (check-in: [0d236698] user: drh branch: generated-columns, size: 200803)
2019-10-16
22:01
[61d9043b] part of check-in [64db39f9] INSERT with named columns for a table with generated columns. (check-in: [64db39f9] user: drh branch: generated-columns, size: 199613)
19:31
[5f2e2678] part of check-in [7f9f90b1] Simple INSERT and SELECT operations working with VIRTUAL columns. (check-in: [7f9f90b1] user: drh branch: generated-columns, size: 199352)
12:18
[6c2b2dc1] part of check-in [11d472c1] Initial experimental code for generated column support. Non-functional. (check-in: [11d472c1] user: drh branch: generated-columns, size: 199350)
2019-10-11
17:14
[4c2a0d00] part of check-in [8a39167b] Futher improvements to LEFT JOIN strength reduction. (check-in: [8a39167b] user: drh branch: trunk, size: 198923)
16:01
[8e821088] part of check-in [548082df] Improvements to the LEFT JOIN strength reduction optimization. (check-in: [548082df] user: drh branch: trunk, size: 198905)
2019-10-10
17:09
[88de5e67] part of check-in [7833feec] Prevent SQLite from assuming that if ((? IS NOT NULL) IS NOT NULL) is true, ? may not be NULL. Fix for [c31034044bb72c89]. (check-in: [7833feec] user: dan branch: trunk, size: 198774)
16:21
[18974550] part of check-in [c6cc2390] Avoid assuming that an expression that contains the sub-expression (? IS FALSE) or (? IS TRUE) may only be true if ? is non-null. Fix for [a976c487]. (check-in: [c6cc2390] user: drh branch: branch-3.30, size: 198880)
2019-10-09
21:14
[bf8f2595] part of check-in [eb7ed90b] Avoid assuming that an expression that contains the sub-expression (? IS FALSE) or (? IS TRUE) may only be true if ? is non-null. Fix for [a976c487]. (check-in: [eb7ed90b] user: dan branch: trunk, size: 198928)
15:37
[3f4dcbe7] part of check-in [907f7965] An improved fix for the dbsqlfuzz-discovered ALWAYS() failure following OOM in sqlite3ExprCollSeq(). This time with a test case (engineered by Dan). (check-in: [907f7965] user: drh branch: trunk, size: 198870)
15:00
[5e4d9823] part of check-in [01ba4641] Change sqlite3SelectDup() to always return NULL if an OOM has occurred. (check-in: [01ba4641] user: drh branch: trunk, size: 198901)
2019-09-27
15:15
[1e9a6da2] part of check-in [102ef644] Alternative implementation of the previous check-in which is testable. (check-in: [102ef644] user: drh branch: trunk, size: 198822)
15:01
[be398d5b] part of check-in [6a204b19] Fix sqlite3ExprCompare() so that it ignores differences in the Expr.iTable field for IN operators, as otherwise it can lead to false negatives, which is usually harmless, but can cause problems for an assert() in the window function logic. (check-in: [6a204b19] user: drh branch: trunk, size: 198822)
2019-09-23
12:38
[66d1f3eb] part of check-in [f907395e] Omit the sqlite3IntTokens array constant for a code simplification. (check-in: [f907395e] user: drh branch: trunk, size: 198798)
11:55
[d7ed577f] part of check-in [82e5dcf5] When a scalar subquery has a pre-existing "LIMIT X" then change it to "LIMIT X<>0" rather than just "LIMIT 1" so that if X is 0 the limit will still be zero. Ticket [99cd4807dc03f178]. Test cases in TH3. (check-in: [82e5dcf5] user: drh branch: trunk, size: 198873)
2019-09-18
20:34
[012dec53] part of check-in [b6f2a7f9] Always clear the temporary register cache after coding a subroutine. (check-in: [b6f2a7f9] user: drh branch: trunk, size: 198372)
2019-09-02
22:13
[10d90c46] part of check-in [6e7b4527] Fix a bug introduced earlier today by check-in [88833a9c2849c959]. Ticket [29f635e0af71234b] (check-in: [6e7b4527] user: drh branch: trunk, size: 198046)
02:21
[718634de] part of check-in [88833a9c] When applying the IN_INDEX_NOOP optimization and the LHS has REAL affinity, also apply REAL affinity to each element of the RHS. Ticket [2841e99d104c6436]. (check-in: [88833a9c] user: drh branch: trunk, size: 197922)
01:25
[1deee937] part of check-in [0c946f08] Fix an obsolete comment that defines the meaning of one of the parameters to the sqlite3FindInIndex() subroutine. No changes to code. (check-in: [0c946f08] user: drh branch: trunk, size: 197687)
00:58
[dcf6eb84] part of check-in [0658c16e] When computing an expression value for an index-on-expression or a CHECK constraint and the expressions uses a REAL table column, but the value of that column is an integer (in other words, when it is using the store-real-as-integer optimization) be sure to promote the value to real before evaluating the expression. Ticket [57af00b6642ecd68]. (check-in: [0658c16e] user: drh branch: trunk, size: 197714)
2019-08-31
20:29
[150acd11] part of check-in [63c67a54] Fix a harmless compiler warning. (check-in: [63c67a54] user: drh branch: trunk, size: 197218)
20:13
[eb9b2e8b] part of check-in [d7680074] Improvements to the algorithm that determines which SELECT in a sequence of nested SELECT statements that an aggregate function belongs to. This resolves an issue identified by dbsqlfuzz. (check-in: [d7680074] user: drh branch: trunk, size: 197218)
01:33
[60cf8c77] part of check-in [e2db1123] Remove some affinity tests that became unreachable due to the prior change. (check-in: [e2db1123] user: drh branch: trunk, size: 196915)
2019-08-30
16:00
[e1b74116] part of check-in [dd661348] The expression "(X IS FALSE) IN (FALSE)" does not imply that X is NOT NULL. Ticket [f8f472cbc77ba9c9] (check-in: [dd661348] user: drh branch: trunk, size: 197005)
15:11
[e1d261e3] part of check-in [057fb8b1] The expression "(X IS FALSE) BETWEEN FALSE AND TRUE" does not implie that X is not NULL. Ticket [fba33c8b1df6a915] (check-in: [057fb8b1] user: drh branch: trunk, size: 197011)
13:07
[5f9d677b] part of check-in [45ff2b1f] The expression "(x IS FALSE) IS FALSE" does not imply that X is not NULL. Ticket [a6408d42b9f44462] (check-in: [45ff2b1f] user: drh branch: trunk, size: 196914)
2019-08-29
23:24
[6b62b44b] part of check-in [80124ae5] Remove a faulty testcase() macro. (check-in: [80124ae5] user: drh branch: trunk, size: 196920)
19:34
[13cbe4b8] part of check-in [96ff2ba9] Fix other problems similar to ticket [c0390363]. (check-in: [96ff2ba9] user: dan branch: trunk, size: 196957)
15:50
[c54fcc18] part of check-in [616f5663] Fix another case where SQLite assumes that if "~(? AND FALSE)" is true, "?" must be non-null. (check-in: [616f5663] user: dan branch: trunk, size: 196631)
15:06
[33c1d88c] part of check-in [84ae41fd] Avoid assuming that for "~ (? AND FALSE)" to be true, "?" must not be NULL, just as we do for "NOT (? AND FALSE)". Fix for ticket [c0390363]. (check-in: [84ae41fd] user: dan branch: trunk, size: 196611)
2019-08-27
19:59
[0f3aaaac] part of check-in [94085fb3] Add support for "ORDER BY ... NULLS FIRST" and "ORDER BY ... NULLS LAST". Use this to fix ticket [f8a7060e]. (check-in: [94085fb3] user: dan branch: trunk, size: 196611)
17:01
[18b6d8b5] part of check-in [7f5168a7] Omit the "x IN (y)" to "x==y" optimization of check-in [e68b427afbc82e20] (and ticket [e39d032577df6942]) as it causes difficult affinity problems as demonstrated by ticket [dbaf8a6820be1ece] and the original assertion fault is no longer a factor due to countless other changes of the previous 5 years. (check-in: [7f5168a7] user: drh branch: trunk, size: 196113)
2019-08-26
20:41
[f17e014c] part of check-in [ad816d01] Merge in recent fixes from trunk. (check-in: [ad816d01] user: drh branch: nulls-last, size: 196694)
14:18
[701e304d] part of check-in [bd4bda73] Improved detection of number of column mismatch for vector assignment in UPDATE statements. Ticket [78acc9d40f0786e8] (check-in: [bd4bda73] user: drh branch: trunk, size: 196196)
13:45
[9962ab98] part of check-in [d0cc06d8] Fix typo in a comment. No code changes. (check-in: [d0cc06d8] user: drh branch: trunk, size: 196027)
2019-08-23
21:11
[1ed0847f] part of check-in [12d2cf88] Attempt to parse the NULLS LAST clause more efficiently. A few cycles were saved, but at the expense of more code. And there is a bug was introduced somewhere. Not worth continuing down this line. (check-in: [12d2cf88] user: drh branch: dead-end, size: 196003)
2019-08-22
19:35
[e5f0cf64] part of check-in [63e625c8] Merge fixes from trunk. Also fix a reference to the KeyInfo.aSortOrder field, which should now be KeyInfo.aSortFlags (check-in: [63e625c8] user: drh branch: nulls-last, size: 196518)
16:38
[a1a811e1] part of check-in [44578865] Fix the likely(), unlikely(), and likelihood() functions so that they have no affinity, just like any other function. Ticket [7e07a3dbf5a8cd26] (check-in: [44578865] user: drh branch: trunk, size: 196020)
11:11
[1888c564] part of check-in [e62eddbb] Fix a false-positive in sqlite3ExprNeedsNoAffinityChange(). Ticket [ac184eb571d5e6e0] (check-in: [e62eddbb] user: drh branch: trunk, size: 195717)
2019-08-21
15:41
[e5de46f4] part of check-in [6153bcf4] Update this branch with latest trunk changes. (check-in: [6153bcf4] user: dan branch: nulls-last, size: 196119)
2019-08-20
14:43
[abef1055] part of check-in [75aec4fc] Fix a segfault that could occur following an OOM while processing a SELECT statement for which one or more of the expressions in the window frame declaration are themselves sub-selects that use window functions. (check-in: [75aec4fc] user: dan branch: trunk, size: 195621)
2019-08-19
19:59
[223bd0d5] part of check-in [75d665a4] Fix problems with window frames that use ORDER BY ... NULLS LAST etc. (check-in: [75d665a4] user: dan branch: nulls-last, size: 195427)
17:26
[0a3442b0] part of check-in [bb9767a2] Prevent NULLS FIRST/LAST from being used in CREATE INDEX and other statements. (check-in: [bb9767a2] user: dan branch: nulls-last, size: 195389)
2019-08-17
19:13
[66a84475] part of check-in [43e8b143] When populating an ephemeral b-tree for the RHS of an IN(...) clause, avoid applying an affinity to a value that may be used later on for some other purpose. Fix for [c7a117190]. (check-in: [43e8b143] user: dan branch: trunk, size: 195598)
17:07
[abb98379] part of check-in [500c9152] Ensure the functions that appear to be constant are not factored out of expression that originate on the right-hand side of a LEFT JOIN. Ticket [6710d2f7a13a2997] (check-in: [500c9152] user: drh branch: trunk, size: 195613)
15:47
[bef29885] part of check-in [db1e6080] Merge trunk changes into this branch. (check-in: [db1e6080] user: dan branch: nulls-last, size: 195270)
2019-08-15
13:53
[1b4f5a53] part of check-in [4f5b2d93] Ensure that SQLite does not attempt to process incompatible window functions in a single scan. Fix for [256741a1]. (check-in: [4f5b2d93] user: dan branch: trunk, size: 194929)
2019-08-12
16:36
[7cc60cb9] part of check-in [07babb0f] Experimental implementation of NULLS FIRST/LAST. This branch still has problems - the most significant of which is that ORDER BY clauses with a non-default NULLS FIRST/LAST qualifier can never use an index. (check-in: [07babb0f] user: dan branch: nulls-last, size: 195407)
2019-08-10
15:06
[85239130] part of check-in [da01ba4f] Fix the sqliteExprImpliesExpr() routine so that it recognizes that "(NULL IS FALSE) IS FALSE" doe not imply "NULL NOT NULL". Ticket [9080b6227fabb466] (check-in: [da01ba4f] user: drh branch: trunk, size: 195066)
2019-08-06
15:18
[338a6f56] part of check-in [c9724e76] Performance optimization to the new affinity handling logic. (check-in: [c9724e76] user: drh branch: pending, size: 195042)
14:37
[0e6c3689] part of check-in [e8234f69] Use 0x40 (ASCII '@') instead of 0x00 to mean "no affinity" so that columns with no affinity can appear in a zero-terminated string. Use the new SQLITE_AFF_NONE macro for this new magic number. (check-in: [e8234f69] user: drh branch: pending, size: 195255)
2019-08-05
18:01
[20dca64d] part of check-in [a29f2a7d] Refactor field Expr.affinity into Expr.affExpr to avoid confusion with other fields and variables named "affinity" and display affExpr it in sqlite3TreeViewExpr() output. (check-in: [a29f2a7d] user: drh branch: trunk, size: 195101)
2019-07-22
17:28
[b4949239] part of check-in [05080344] Fix a bug in the linked-list handling code added by commit [fd7316cd]. (check-in: [05080344] user: dan branch: trunk, size: 195109)
16:20
[3dba8ac2] part of check-in [d23f3316] Remove Window objects from the corresponding Select.pWin list when they are deleted. (check-in: [d23f3316] user: dan branch: winfunc-in-orderby, size: 195134)
2019-07-19
01:25
[7411b75b] part of check-in [ce6bf395] Fix a new problem in the BETWEEN operator when applied to a window function. The problem was introduced yesterday by check-in [7ef7b23cbb1b9ace]. This cherry-pick also needed to remove an assert from sqliteExprDelete(). (check-in: [ce6bf395] user: drh branch: branch-3.29, size: 195193)
2019-07-17
18:19
[b0107ae6] part of check-in [bc6b0d73] When processing a BETWEEN or CASE expression, avoid transforming a node of the original expression into a TK_REGISTER node. Instead, take a copy and use it instead. Fix for [1be72aab9]. (check-in: [bc6b0d73] user: drh branch: branch-3.29, size: 195229)
14:34
[f1d87bc9] part of check-in [7ef7b23c] When processing a BETWEEN or CASE expression, avoid transforming a node of the original expression into a TK_REGISTER node. Instead, take a copy and use it instead. Fix for [1be72aab9]. (check-in: [7ef7b23c] user: dan branch: trunk, size: 194938)
2019-07-13
16:22
[896c4576] part of check-in [5dac8c38] Rework the FILTER clause implementation to share more code with window functions. (check-in: [5dac8c38] user: dan branch: filter-clause, size: 194934)
2019-07-10
20:16
[01bbd69f] part of check-in [bcc8b38a] Minor performance improvement in sqlite3ExprDeleteNN(). (check-in: [bcc8b38a] user: dan branch: filter-clause, size: 196050)
2019-07-02
11:56
[33267aaf] part of check-in [1f1ae2d6] Experimental implementation of FILTER clause for aggregate functions. (check-in: [1f1ae2d6] user: dan branch: filter-clause, size: 195870)
2019-06-16
08:58
[2756d287] part of check-in [ba7870e2] Avoid transforming TK_COLLATE or TK_UNLIKELY Expr nodes to TK_REFERENCE. Instead, transform the uppermost Expr node in the expression tree that is not of this type. Fix for [e1e07ef2]. (check-in: [ba7870e2] user: dan branch: tkt-e1e07ef2, size: 195225)
2019-06-12
13:49
[069de020] part of check-in [5c6146b5] Handle expressions like "expr IS TRUE COLLATE xyz" in the same way as "expr IS TRUE". Fix for [4d01eda8115b10d1]. (check-in: [5c6146b5] user: dan branch: trunk, size: 195178)
2019-06-11
21:02
[d1eeebc0] part of check-in [614ecb0a] The affinity of the unlikely() function and its cousins should be "none". Ticket [0c620df60bffd9ef] (check-in: [614ecb0a] user: drh branch: trunk, size: 195130)
18:07
[2e0fb767] part of check-in [0f748fe5] Make sure the affinity of the RHS of an IN operator does not affect the outcome even if the RHS expression contains a COLLATE clause. Ticket [57353f8243c637c0] (check-in: [0f748fe5] user: drh branch: trunk, size: 195024)
10:43
[f6b10414] part of check-in [36ea13e0] Add the new sqlite3ExprUnmapAndDelete() function and use it in place of separate calls to sqlite3RenameExprUnmap() and sqlite3ExprDelete(). (check-in: [36ea13e0] user: drh branch: trunk, size: 195024)
02:43
[19100ef3] part of check-in [04bd5cb7] The ALTER TABLE command should not attempt to rename objects that are contained within an expression tree that has been optimized out because it is the other branch of an "AND false" expression. Ticket [533010b8cacebe82] (check-in: [04bd5cb7] user: drh branch: trunk, size: 194913)
2019-05-20
10:36
[6b18f022] part of check-in [99eba69b] Update the sqlite3ExprCompare() routine so that it does not think "? IS NOT TRUE" is the same as "? IS TRUE". Fix for [d3e7f2ba5b3]. (check-in: [99eba69b] user: dan branch: trunk, size: 194892)
2019-05-18
21:22
[5176c490] part of check-in [778b1224] Fix an assert() failure that could occur in a join query if the RHS of an IN() operator is a list containing correlated expressions. This problem was introduced by checkin [e130319317e7611938] which was part of the fix for ticket [787fa716be3a7f650c] - so this commit is part of that ticket's fix too. (check-in: [778b1224] user: dan branch: trunk, size: 194853)
2019-05-11
19:36
[a41e5a03] part of check-in [b3413197] A new implementation for the sqlite3ExprImpliesExpr() theorem prover that does a better job of answering TRUE to "(NOT A) OR B" when B is a NOT NULL expression. (check-in: [b3413197] user: drh branch: trunk, size: 194808)
16:14
[de746e2f] part of check-in [1b243032] When considering partial indexes, do not assume that a "CASE x ..." expression implies "x IS NOT NULL". (check-in: [1b243032] user: dan branch: trunk, size: 192974)
13:04
[ff970039] part of check-in [0ba6d709] Do not assume that "x IS NOT ?" implies "x NOT NULL" when considering partial indexes. Fix for ticket [8025674847]. (check-in: [0ba6d709] user: dan branch: trunk, size: 192951)
2019-05-07
02:57
[2d96dc29] part of check-in [ab2ba8e7] Add the exprNodeCopy() routine that will safely memcpy() an Expr node that might be a size-reduced node. (check-in: [ab2ba8e7] user: drh branch: expr-node-copy-patch, size: 194327)
2019-05-04
17:32
[55e71df8] part of check-in [c2e439bc] Fix the NOT NULL logic in the theorem prover that determines when a partial index can be used. Ticket [5c6955204c392ae763a95]. (check-in: [c2e439bc] user: drh branch: trunk, size: 192927)
2019-04-19
23:05
[f65db06a] part of check-in [4f35b3b7] Mark a single branch as no longer reachable. (check-in: [4f35b3b7] user: drh branch: trunk, size: 192898)
18:10
[5b345055] part of check-in [9b888fcc] Mark two branches as unreachable. Oops - one of those branches was reachable via fuzzcheck tests. (check-in: [9b888fcc] user: drh branch: mistake, size: 192906)
17:26
[23a2a2d8] part of check-in [0fbd154e] Improved optimization of the AND and OR operators. (check-in: [0fbd154e] user: drh branch: trunk, size: 192887)
16:21
[18f8875c] part of check-in [6de980a0] Use macros to determine if an expression is always true or always false. (check-in: [6de980a0] user: drh branch: trunk, size: 191461)
13:38
[d9b219b2] part of check-in [7713996a] Streamline the processing of the AND operator. Slightly smaller and faster. (check-in: [7713996a] user: drh branch: trunk, size: 192311)
2019-04-14
00:34
[e1002128] part of check-in [cd084427] Fix an obsolete comment and other minor issues from code inspection. (check-in: [cd084427] user: drh branch: trunk, size: 192373)
2019-04-13
04:01
[fab235a7] part of check-in [0b6ae032] Enforce the SQLITE_LIMIT_COLUMN limit on virtual tables. (check-in: [0b6ae032] user: drh branch: trunk, size: 192363)
2019-04-05
20:56
[03f583cf] part of check-in [d2728192] Eliminate the tool/addopcodes.tcl script. The purpose of that script was to keep the number of parser codes below 256 in order to save parser table space. But we have long since blown through that ceiling so the addopcodes.tcl script was just needless complexity. There is no longer any reason to keep it around. (check-in: [d2728192] user: drh branch: trunk, size: 192354)
2019-04-01
19:42
[7f39a013] part of check-in [3fde6276] Improvements to the sqlite3ExprImpliesNonNullRow() theorem prover. (check-in: [3fde6276] user: drh branch: trunk, size: 192360)
2019-02-22
23:29
[f2d0ecf6] part of check-in [c2d50df8] Make all ephemeral tables built to hold the RHS of an IN operator be index-btrees, never table-btrees, regardless of whether or not they are used as IN_INDEX_LOOP or IN_INDEX_MEMBERSHIP. That way, the same ephmerial table can be reused for both cases. (check-in: [c2d50df8] user: drh branch: tkt-df46dfb631, size: 192111)
2019-02-20
03:38
[d5b2878d] part of check-in [b5f90bfe] Back off the optimization of check-in [e130319317e76119] slightly so that it only applies to IN operators that are used for membership tests. Proposed fix for ticket [df46dfb631f75694]. (check-in: [b5f90bfe] user: drh branch: tkt-df46dfb631, size: 193468)
2019-02-05
14:36
[182dc9ff] part of check-in [d840e9bb] The IS NOT NULL operator does not imply that the operand is never NULL. Fix for ticket [5948e09b8c415bc45da5cf] (check-in: [d840e9bb] user: drh branch: trunk, size: 193204)
2019-02-01
15:06
[c6c10cd5] part of check-in [4ca9d5d5] Ensure that the Walker.pParse structure is initialized when walking the source tree to gather the WINDOW clauses on a query with window functions. (check-in: [4ca9d5d5] user: drh branch: trunk, size: 193142)
2019-01-23
16:59
[4bc50864] part of check-in [0387cb3a] Fix problems with sub-selects in WINDOW definitions. Also rename-column operations when the column being renamed appears in a WINDOW definition that is part of a VIEW or TRIGGER. (check-in: [0387cb3a] user: dan branch: trunk, size: 193126)
2019-01-19
14:07
[9c307659] part of check-in [908ff7ff] Fix a problem with using ALTER TABLE to rename a table or column when the database schema contains a trigger or view that itself contains an expression "<column> AND 0". (check-in: [908ff7ff] user: dan branch: trunk, size: 193110)
2019-01-17
01:06
[b660eb4d] part of check-in [835e2cc5] Fix a failure in sqlite3ExprCompare() (check-in: [835e2cc5] user: drh branch: trunk, size: 193089)
2019-01-15
20:51
[716a2418] part of check-in [cc6cd753] Fix a problem with ALTER TABLE and vector assignments in UPDATE statements within triggers. (check-in: [cc6cd753] user: dan branch: trunk, size: 193013)
2019-01-11
13:32
[01aa7e66] part of check-in [5547f39d] The keywords TRUE and FALSE should only act as boolean literal values if unquoted. (check-in: [5547f39d] user: drh branch: trunk, size: 192888)
2019-01-05
21:56
[9ad9c40a] part of check-in [a874c649] Add the exprNodeCopy() routine that will safely memcpy() an Expr node that might be a size-reduced node. (check-in: [a874c649] user: drh branch: trunk, size: 192915)
2018-12-31
21:43
[18ce84ba] part of check-in [b57c545a] Fix harmless compiler warnings. (check-in: [b57c545a] user: drh branch: trunk, size: 192598)
18:30
[2871554c] part of check-in [9fb646f2] Merge enhancements and bug fixes from trunk. (check-in: [9fb646f2] user: drh branch: reuse-subqueries, size: 192594)
2018-12-29
02:26
[2c28e3bc] part of check-in [4a0929ac] A new implementation of sqlite3VdbeMakeLabel() is faster and makes fewer memory allocations by deferring memory allocation until sqlite3VdbeResolveLabel() is called, at which point the code generator has a better idea of how big the relocation table needs to be. The sqlite3VdbeMakeLabel() routine now takes a Parse* parameter instead of Vdbe*. (check-in: [4a0929ac] user: drh branch: trunk, size: 190164)
2018-12-26
15:04
[8f674a82] part of check-in [50e5f390] Here is the beginnings of an effort to factor out the implementation of scalar subqueries to be implemented as subroutines at the end of the main body of bytecode, after the jump back to the OP_Init opcode. This is an incremental check-in that contains only preliminary changes. (check-in: [50e5f390] user: drh branch: factor-out-scalar-subselect, size: 192521)
2018-12-24
20:21
[7e6f3cd4] part of check-in [7153552b] Improvements to EXPLAIN QUERY PLAN formatting. The MULTI-INDEX OR now shows a separate "INDEX" subtree for each index. SCALAR SUBQUERY entries provide a subquery number that is related back to the .selecttrace output. (check-in: [7153552b] user: drh branch: reuse-subqueries, size: 192529)
12:09
[7122877f] part of check-in [06de44ec] Do not generate subroutines for non-static SELECT and EXISTS expressions. Fix up some test cases to account for the minor changes in EXPLAIN QUERY PLAN output. (check-in: [06de44ec] user: drh branch: reuse-subqueries, size: 192285)
11:55
[84b83f3f] part of check-in [6b24d3fb] Prevent the use of subroutines to implement the RHS of IN operators within CHECK constraints. (check-in: [6b24d3fb] user: drh branch: reuse-subqueries, size: 192229)
02:34
[98076b0c] part of check-in [6c44838a] Experimental code that tries to put the computation of subqueries inside a subroutine, and reuse that subroutine if the same subquery is evaluated more than once. Current code does not work for CHECK constraints. (check-in: [6c44838a] user: drh branch: reuse-subqueries, size: 192206)
2018-12-23
21:27
[3f398a66] part of check-in [2b6494b1] Split the code generation for the RHS of IN operators and for SELECT and EXISTS expressions into two separate subroutines, because there is now little commonality between those to functions. This is intended to help make the code easier to read and maintain. (check-in: [2b6494b1] user: drh branch: trunk, size: 190099)
2018-12-22
01:13
[291e764c] part of check-in [db8d1d12] Do not all REPLACE to sneak a NULL value into a NOT NULL column. Detect that situation and ABORT instead. Fix for ticket [e6f1f2e34dceeb1ed61531c7e98]. (check-in: [db8d1d12] user: drh branch: trunk, size: 190559)
2018-12-20
15:04
[5bf5ccc9] part of check-in [ddf06db7] Fix a segfault caused by using the RAISE function incorrectly (library now returns an error instead of crashing). (check-in: [ddf06db7] user: dan branch: trunk, size: 190553)
2018-12-14
20:28
[0f996b68] part of check-in [11368e67] 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. (Backported fix from version 3.14.0). (check-in: [11368e67] user: drh branch: branch-3.8.9, size: 152547)
20:20
[b74a3050] part of check-in [b29e02f8] Add the OP_ColumnsUsed opcode (when compiled with SQLITE_ENABLE_COLUMN_USED_MASK) as a hint to the b-tree layer as to which columns of a btree cursor will be used. (Backport from 3.8.11) (check-in: [b29e02f8] user: drh branch: branch-3.8.9, size: 152365)
2018-12-12
21:34
[b84c4153] part of check-in [2b690dbd] Fix another problem found by Matthew Denton's new fuzzer. (check-in: [2b690dbd] user: drh branch: trunk, size: 190533)
20:11
[4c676933] part of check-in [5c7dab85] Remove an ALWAYS() from a branch that is not always taken. The test case found by OSSFuzz has been added to TH3. (check-in: [5c7dab85] user: drh branch: trunk, size: 190566)
11:57
[39ce499e] part of check-in [bc891ac6] OSSFuzz found a case where an assert() inside sqlite3ExprCompare() can be true. Test case added to TH3. (check-in: [bc891ac6] user: drh branch: branch-3.26, size: 190825)
11:50
[1c2157f3] part of check-in [c1c735a8] Do not use a partial index as a table scan in an IN operator. Fix for ticket [1d958d90596593a77420e59]. (check-in: [c1c735a8] user: drh branch: branch-3.26, size: 190823)
11:23
[d18469f0] part of check-in [23b62fb1] OSSFuzz found a case where an assert() inside sqlite3ExprCompare() can be true. Test case added to TH3. (check-in: [23b62fb1] user: drh branch: trunk, size: 190574)
2018-12-08
20:30
[494a778e] part of check-in [15bc915d] Do not use a partial index as a table scan in an IN operator. Fix for ticket [1d958d90596593a77420e59]. (check-in: [15bc915d] user: drh branch: trunk, size: 190572)
2018-12-07
02:01
[a0cf3628] part of check-in [65aafb55] Fix the sqlite3ExprDup() function so that it correctly duplicates the Window object list on a Select that contains window functions. Fix for ticket [f09fcd17810f65f717]. (check-in: [65aafb55] user: drh branch: branch-3.26, size: 190774)
2018-12-06
22:12
[b83e2056] part of check-in [2b9258b8] Performance improvement: Avoid using sqlite3WalkerSelectExpr() and sqlite3WalkerSelectFrom() twice, so that the compiler will in-line their implementation. (check-in: [2b9258b8] user: drh branch: ticket-f09fcd17810f, size: 190523)
22:04
[348e3877] part of check-in [94017454] Fix the sqlite3ExprDup() routine so that it makes complete duplications of subqueries containing window functions. (check-in: [94017454] user: drh branch: ticket-f09fcd17810f, size: 190366)
2018-12-05
23:45
[a3e90131] part of check-in [e8540377] The sqlite3_normalized_sql() interface should not be transforming quoted identifier names into wildcards. Fix this, and at the same time simplify the code substantially. (check-in: [e8540377] user: drh branch: trunk, size: 189476)
2018-11-20
16:02
[38c50318] part of check-in [dfab7170] Consolidate the two sqlite3SchemaToIndex() routines. (check-in: [dfab7170] user: dan branch: reuse-schema1, size: 189752)
2018-11-17
18:11
[ddbc6be9] part of check-in [6d7a7e5f] Fix further problems with the feature on this branch. (check-in: [6d7a7e5f] user: dan branch: reuse-schema1, size: 189753)
2018-11-09
00:02
[a41c736a] part of check-in [8d663bfa] Disable the use of coroutines for subqueries within a query that is the RHS of an IN operator, as the IN operator might be evaluated more than once. Possible fix for [787fa716be3a7f65], unless we can come up with something better. Later: Counter-example found. (check-in: [8d663bfa] user: drh branch: tkt787fa716-deadend, size: 189823)
2018-10-31
20:52
[9aacc0b7] part of check-in [4a6ad519] Deploy the sqlite3Strlen30NN() function (argument guaranteed to be non-NULL) for a small performance improvement. (check-in: [4a6ad519] user: drh branch: trunk, size: 189727)
2018-10-29
17:53
[16dee950] part of check-in [592b66e8] Add the sqlite3_normalized_sql() API. (check-in: [592b66e8] user: mistachkin branch: normalized_sql, size: 189725)
2018-09-24
19:32
[d8da79a5] part of check-in [8694c3d5] Fix a faulty assert() in the validation logic for the LEFT JOIN strength reduction optimization. Problem found by OSSFuzz. (check-in: [8694c3d5] user: drh branch: branch-3.25, size: 189087)
18:29
[dad286e9] part of check-in [1c0ecbbd] Fix a problem with views that use window functions as part of complex expressions. (check-in: [1c0ecbbd] user: drh branch: branch-3.25, size: 189254)
15:39
[5cee8fb7] part of check-in [d7c816ae] Slightly smaller and faster alternative to [507d892c3a40a0bacbd47] that fixes a problem with views that use window function as part of complex expressions. (check-in: [d7c816ae] user: drh branch: trunk, size: 189474)
14:51
[781afe52] part of check-in [507d892c] Fix a problem with views that use window functions as part of complex expressions. (check-in: [507d892c] user: dan branch: trunk, size: 189455)
2018-09-23
02:01
[cd7a294b] part of check-in [2fd62fcc] Fix a faulty assert() in the validation logic for the LEFT JOIN strength reduction optimization. Problem found by OSSFuzz. (check-in: [2fd62fcc] user: drh branch: trunk, size: 189463)
2018-09-20
19:02
[610eea07] part of check-in [ad130bb8] Combine the Expr.pTab and Expr.pWin fields into a union named "y". Add a new EP_WinFunc property that is only true if Expr.y.pWin is a valid pointer. This reduces the size of the Expr object by 8 bytes, reduces the overall amount of code, and shaves over 1 million cycles off of the speed test. (check-in: [ad130bb8] user: drh branch: trunk, size: 189630)
2018-09-19
20:14
[5814b4b5] part of check-in [24b0f66a] Reduce the size of Expr to 64-bytes. This works somewhat, but there are test failures. More importantly, the size reduction from 80- to 64-bytes has not lowered the schema memory usage, but it has made the code a little bigger and a little slower. So the initial evidence is that this Expr refactoring experiment is not working... (check-in: [24b0f66a] user: drh branch: expr-simplify, size: 192513)
16:35
[539140ad] part of check-in [e4129cd3] Make sure Expr.eX changes back to EX_None after Expr.x.pRight is set to NULL due to an OOM. (check-in: [e4129cd3] user: drh branch: expr-simplify, size: 191763)
14:54
[cc72d25f] part of check-in [147c61a6] Reduce the size of Expr from 80 to 72 bytes moving the pRight field inside the "x" union. This is an incremental check-in that still has issues. (check-in: [147c61a6] user: drh branch: expr-simplify, size: 191709)
11:59
[d48bca73] part of check-in [de02a1d9] Make sure temporary Expr objects are fully initialized prior to sending them into sqlite3ExprCodeTemp(). (check-in: [de02a1d9] user: drh branch: expr-simplify, size: 190463)
2018-09-18
21:35
[c7d6ce81] part of check-in [8849a463] In the Expr object, the Expr.eX field determines what value is stored in the Expr.x union. This mostly works, but there are issues identified by valgrind. (check-in: [8849a463] user: drh branch: expr-simplify, size: 190421)
18:08
[83c279ed] part of check-in [655f0654] Merge all recent trunk enhancements. (check-in: [655f0654] user: drh branch: expr-simplify, size: 189720)
2018-09-01
15:49
[92dc4e10] part of check-in [589186c0] Merge fixes and enhancements from trunk. (check-in: [589186c0] user: drh branch: alter-table-rename-table, size: 189262)
2018-08-29
21:00
[e7d04a23] part of check-in [01308bae] Extend RENAME TABLE to edit triggers and views. Still buggy. (check-in: [01308bae] user: dan branch: alter-table-rename-table, size: 189255)
2018-08-23
14:54
[bf08bfe7] part of check-in [c446c884] Merge enhancements from trunk. (check-in: [c446c884] user: drh branch: rtree-geopoly, size: 189163)
2018-08-21
16:32
[665eafd4] part of check-in [b9ae9a0a] Rename internal function sqlite3RenameToken() to sqlite3RenameTokenMap() and sqlite3MoveRenameToken() to sqlite3RenameTokenRemap(). (check-in: [b9ae9a0a] user: dan branch: alter-table-rename-column, size: 189255)
2018-08-18
18:14
[f4497881] part of check-in [ccad2779] Merge trunk fixes. (check-in: [ccad2779] user: drh branch: alter-table-rename-column, size: 189252)
2018-08-16
15:29
[d50257c6] part of check-in [60045fbf] Fix EXPLAIN QUERY PLAN so that it describes IN operators implemented using a ROWID lookup. (check-in: [60045fbf] user: drh branch: trunk, size: 189156)
2018-08-15
20:28
[4c1e40cd] part of check-in [e272dc2b] Have ALTER TABLE RENAME COLUMN edit trigger programs. Only partly working. (check-in: [e272dc2b] user: dan branch: edit-trigger-wrapper, size: 189142)
2018-08-09
18:36
[4a555ff6] part of check-in [7404ea83] When a column must be a constant due to WHERE clause and the value of that column is being coded as a constant, make sure the affinity is correct. (check-in: [7404ea83] user: drh branch: trunk, size: 189046)
2018-08-04
20:30
[aac1c33e] part of check-in [cdff3af7] Remove the column-cache from the code generator. The column-cache has been a persistent source of bugs for years and with recent improvements in the performance of OP_Column, it no longer provides a benefit. After the column cache is removed, the binary is almost 2KB smaller and the speed-check.sh performance test is over 3 million cycles faster. (check-in: [cdff3af7] user: drh branch: trunk, size: 188193)
17:15
[3c5c4396] part of check-in [2041231d] Fix comments that were made obsolete by the removal of the column cache. (check-in: [2041231d] user: drh branch: omit-column-cache, size: 188164)
15:53
[81a8f601] part of check-in [7d9072b0] Further logic simplifications that flow out of the omission of the column cache. (check-in: [7d9072b0] user: drh branch: omit-column-cache, size: 188369)
15:16
[82519865] part of check-in [8bc7f84c] Ensure that all expressions that are to be evaluated once at the start of a prepared statement (the Parse.pConstExpr expressions) pass the sqlite3ExprIsConstantNotJoin() test. It is not sufficient to pass just the sqlite3ExprIsConstant() test as that would allow through column references that are bound to constants by the WHERE clause in the constant propagation optimization. This fixes a problem discovered by OSSFuzz. (check-in: [8bc7f84c] user: drh branch: trunk, size: 196629)
14:30
[1b4889ef] part of check-in [db6052e9] Remove additional traces of the column cache. (check-in: [db6052e9] user: drh branch: omit-column-cache, size: 189077)
2018-08-03
23:04
[4cb4ca63] part of check-in [3f5f60cd] Completely remove the column cache logic, which has been a persistent source of bugs for many years. Due to recent enhancements to the performance of the OP_Column opcode, removing the column cache actually makes speed-check.sh run faster. Removing the column cache also saves about 1,800 bytes of code space. (check-in: [3f5f60cd] user: drh branch: omit-column-cache, size: 189242)
2018-07-28
16:24
[3a85e8e2] part of check-in [d30b2a94] Do not allow a column reference that is converted into a constant by the WHERE-clause constant propagation optimization to be moved to the init-time constant expression list, as the table reference will not work there. This fixes a problem found by OSSFuzz. (check-in: [d30b2a94] user: drh branch: trunk, size: 196600)
13:37
[dff66361] part of check-in [fc90a53d] An early attempt at refactoring Expr (check-in: [fc90a53d] user: drh branch: expr-simplify-branch1, size: 196935)
01:30
[eeb14df2] part of check-in [81f25d5c] Add assert() statements to sqlite3ExprDelete() that prove various symmetry properties of the Expr object that might be exploited to make the Expr object smaller and faster. (check-in: [81f25d5c] user: drh branch: expr-simplify, size: 196743)
2018-07-27
23:33
[907d7de6] part of check-in [02204f8b] Improvements to the parser to increase coverage. Fix the parser so that at least one expresssion is required after PARTITION BY and within the list of expressions on VALUES(). (check-in: [02204f8b] user: drh branch: trunk, size: 196285)
18:19
[5b5e7b57] part of check-in [a5f86f49] Performance improvement to sqlite3ExprCollSeq(). With this change, the performance of speed-check.sh is within 400,000 cycles of trunk. (check-in: [a5f86f49] user: drh branch: propagate-const-opt, size: 195907)
18:12
[fe08e0db] part of check-in [be05d0db] Faster implementation of sqlite3IsBinary(). (check-in: [be05d0db] user: drh branch: propagate-const-opt, size: 195907)
17:51
[eaf12eb8] part of check-in [598d6083] Only run the constant propagation optimization on joins since that is the only scenario where it is useful. This saves prepare time for the common case of a simple query. (check-in: [598d6083] user: drh branch: propagate-const-opt, size: 196070)
16:57
[af489eb4] part of check-in [82c67efb] Constant propagation is now restricted to just the WHERE clause. The mechanism is changed to take affinity and collation into account. This seems to give correct answers. But the search for constant propagation costs 4 million cycles in the speed test. (check-in: [82c67efb] user: drh branch: propagate-const-opt, size: 196098)
2018-07-26
23:47
[8187c1be] part of check-in [57eb2abd] Generalize the constant propagation optimization so that it applies on every WHERE close, not just those that contain a subquery. This then demonstrates that the current implementation is inadequate since it does not take into account collating sequences. (check-in: [57eb2abd] user: drh branch: propagate-const-opt, size: 195696)
2018-07-10
19:48
[bb148f4c] part of check-in [a7cdc5bc] Identify Select objects within a single statement using small sequential integers rather than "0x%p". This is more readable and yields the same result on successive runs. (check-in: [a7cdc5bc] user: drh branch: trunk, size: 195676)
07:39
[0abe1e69] part of check-in [0f6ec605] Fix a harmless warning about comment formatting in the previous check-in. Simplify the ORDER BY dereferencing logic so that it avoids unreachable branches. (check-in: [0f6ec605] user: drh branch: trunk, size: 195693)
07:25
[61ae1a22] part of check-in [52559ad5] Assert that if two functions compare equal in every other way, then they must both have OVER clauses, or neither has an OVER clause. Use this fact to simplify expression comparison. (check-in: [52559ad5] user: drh branch: trunk, size: 195693)
06:47
[e5861888] part of check-in [0a7649af] Enhance the sqlite3ExprCompare() routine so that it knows to compare the OVER clause of window functions. (check-in: [0a7649af] user: drh branch: trunk, size: 195207)
2018-06-22
20:51
[7e257eef] part of check-in [5f04b016] Omit all window-function related code when building with SQLITE_OMIT_WINDOWFUNC. (check-in: [5f04b016] user: dan branch: exp-window-functions, size: 194989)
2018-06-18
20:34
[02e1fb65] part of check-in [943bccd2] Fix problems with using window functions in CREATE VIEW statements. (check-in: [943bccd2] user: dan branch: exp-window-functions, size: 194840)
2018-06-14
14:30
[80c61121] part of check-in [5cf5f180] Merge latest trunk changes into this branch. (check-in: [5cf5f180] user: dan branch: exp-window-functions, size: 194816)
2018-06-11
20:50
[1963827d] part of check-in [0cd55e98] Clarify the relationship between a Window object and its associated Expr. (check-in: [0cd55e98] user: dan branch: exp-window-functions, size: 194490)
17:35
[3ab855fb] part of check-in [b37614a3] Add the OP_SetTabCol and OP_VerifyTabCol opcodes, only when compiling with SQLITE_DEBUG, to do run-time verification of the column cache. (check-in: [b37614a3] user: drh branch: trunk, size: 194336)
2018-06-08
20:58
[d6db67eb] part of check-in [19c983b5] Add support for the WINDOW clause. (check-in: [19c983b5] user: dan branch: exp-window-functions, size: 194484)
16:11
[587b4bc8] part of check-in [236cb75b] Do not flatten sub-queries that contain window functions. (check-in: [236cb75b] user: dan branch: exp-window-functions, size: 194437)
2018-06-04
08:28
[7c888047] part of check-in [83d6416a] Merge latest trunk changes into this branch. (check-in: [83d6416a] user: dan branch: exp-window-functions, size: 194990)
2018-05-29
15:18
[16f90ae2] part of check-in [f141d806] Add a comment to justify a goto statement. No code changes. (check-in: [f141d806] user: drh branch: trunk, size: 194010)
2018-05-26
18:03
[81b3925f] part of check-in [a353b1d7] Experimental change that allows overloaded functions to be analyzed by the xBestIndex method and used by the xFilter method of a virtual table. (check-in: [a353b1d7] user: drh branch: vtab-func-constraint, size: 193966)
2018-05-19
14:15
[bb57b0b5] part of check-in [19c2e4b2] Fix minor problems on this branch. (check-in: [19c2e4b2] user: dan branch: exp-window-functions, size: 194939)
2018-05-17
19:24
[75cef2e9] part of check-in [c9f0f140] Evaluate multiple window functions in a single pass if they use the same window definition. Add xValue callbacks for other built-in aggregate functions. (check-in: [c9f0f140] user: dan branch: exp-window-functions, size: 194945)
14:26
[af55e984] part of check-in [35af0b75] Handle multiple window-functions in a single query. (check-in: [35af0b75] user: dan branch: exp-window-functions, size: 194841)
2018-05-16
20:58
[6e443e4f] part of check-in [3781e520] Start of experimental implementation of SQL window functions. Does not yet work. (check-in: [3781e520] user: dan branch: exp-window-functions, size: 194780)
2018-05-03
19:47
[af4a81a3] part of check-in [956fef36] Optimizations to the new EQP framework. (check-in: [956fef36] user: drh branch: rework-EQP, size: 193959)
2018-05-02
00:33
[1757b689] part of check-in [70b48a79] Begin reengineering the EXPLAIN QUERY PLAN function to provide more intuitive output. (check-in: [70b48a79] user: drh branch: rework-EQP, size: 194050)
2018-04-28
04:16
[5c9a6dc7] part of check-in [6e098ee4] Prevent deep recursions on nested COLLATE operators. (check-in: [6e098ee4] user: drh branch: trunk, size: 194545)
2018-04-26
12:27
[4a39bc2a] part of check-in [368c14da] Improved VDBE comment on the OP_Param opcode. No substantial changes. (check-in: [368c14da] user: drh branch: trunk, size: 194536)
2018-04-24
01:10
[9a3b6eaa] part of check-in [8bc0207a] In EXPLAIN QUERY PLAN output, do not show an EXECUTE LIST SUBQUERY line for IN operators where the RHS is a list and not a subquery, since in that case there is no SUBQUERY to execute. (check-in: [8bc0207a] user: drh branch: trunk, size: 194545)
2018-04-23
20:38
[d99ee5ee] part of check-in [67d0b2c1] Fix a problem in sqlite3ExprCompare() associated with UPSERT. (check-in: [67d0b2c1] user: drh branch: trunk, size: 194162)
2018-04-18
19:56
[53df437b] part of check-in [ef74090a] Add the "sorter-reference" optimization, allowing SQLite to be configured so that some required values may be loaded from the database after external sorting occurs for SELECT statements with ORDER BY clauses that are not satisfied by database indexes. (check-in: [ef74090a] user: dan branch: trunk, size: 194134)
17:52
[7c08754d] part of check-in [fb16348a] Fix a problem in the sqlite3ExprCompare() function that caused two dissimilar expressions to match if they have the same "COLLATE name" at the outer layer. (check-in: [fb16348a] user: drh branch: trunk, size: 193981)
01:34
[e27dfc8f] part of check-in [266a99f7] Add new testcase() macros and fix a bug that was revealed when trying to cover all the new test cases. (check-in: [266a99f7] user: drh branch: upsert, size: 193981)
2018-04-17
18:50
[1633ff93] part of check-in [f3d91cad] TK_REGISTER expressions nodes are probably not constant. Make sure sqlite3ExprIsConstant() knows this. (check-in: [f3d91cad] user: drh branch: upsert, size: 193939)
2018-04-16
10:47
[fc607dd6] part of check-in [54d96772] Merge changes from trunk. (check-in: [54d96772] user: drh branch: upsert, size: 193921)
10:34
[ca52b091] part of check-in [dba3095f] Reduce the size of the NameContext object by grouping seldom-used fields into a union. (check-in: [dba3095f] user: drh branch: trunk, size: 193842)
2018-04-14
18:46
[2448a255] part of check-in [9719cb46] Experimental change to "SELECT * FROM ... ORDER BY" processing to load some column values from the db after sorting. (check-in: [9719cb46] user: dan branch: sorter-reference, size: 193951)
2018-04-13
14:27
[a4e99a56] part of check-in [5bf70425] Get the conflict-target clause parsing working correctly, with test cases. This change involves an enhancement to sqlite3ExprCompare() which needs to be reviewed on trunk prior to merging. (check-in: [5bf70425] user: drh branch: upsert, size: 193877)
2018-04-10
15:31
[6a41ceb2] part of check-in [1fdaf2c3] Fix a problem causing the LEFT JOIN strength reduction optimization to be incorrectly applied in some cases where the WHERE clause of the query contains a filter expression of the form "lhs.x IS NOT ?". (check-in: [1fdaf2c3] user: dan branch: trunk, size: 193798)
12:10
[397c3ca2] part of check-in [38d319c1] Fix a problem causing the LEFT JOIN strength reduction optimization to be incorrectly applied in some cases where the WHERE clause of the query contains a filter expression of the form NOT(x AND y). Ticket [1e39b966]. (check-in: [38d319c1] user: dan branch: trunk, size: 193703)
2018-04-03
14:04
[0d4345e0] part of check-in [cbb977fe] Change the LEFT JOIN strength reduction optimization so that assumes that virtual table constraints can be true even if terms within the constraint are NULL. This works around dodgy virtual table implementations. Fix for ticket [fac496b61722daf2]. (check-in: [cbb977fe] user: drh branch: trunk, size: 193686)
2018-03-24
18:01
[51500461] part of check-in [56134577] Add testcase() macros and improve comments in the LEFT JOIN strength reduction optimization. (check-in: [56134577] user: drh branch: trunk, size: 193001)
15:47
[82d8b12a] part of check-in [e88cf3d4] Yet another fault in the sqlite3ExprImpliesNotNull() routine, causing errors in the LEFT JOIN strength reduction optimization of check-in [dd568c27b1d76563]. (check-in: [e88cf3d4] user: drh branch: trunk, size: 192021)
13:24
[c3700032] part of check-in [cf171abe] Bug fix in the LEFT JOIN strength reduction optimization of check-in [dd568c27b1d76563]. The sqlite3ExprImpliesNotNull() routine was mistakenly assuming that a CASE expression must always be NULL if contained any reference to a variable that was NULL. (check-in: [cf171abe] user: drh branch: trunk, size: 192005)
2018-03-20
21:16
[21ba8e1f] part of check-in [5b7abecc] If terms of the WHERE clause require that the right table in a LEFT JOIN not be a null row, then simplify the LEFT JOIN into an ordinary JOIN. (check-in: [5b7abecc] user: drh branch: join-strength-reduction, size: 191987)
2018-03-19
16:59
[a750629a] part of check-in [16c22ff8] Show symbolic SELECT names in EXPLAIN QUERY PLAN output when compiling with SQLITE_ENABLE_SELECTTRACE. (check-in: [16c22ff8] user: drh branch: EQP-improvements, size: 190592)
2018-02-27
14:49
[904f85e5] part of check-in [6445519e] Clean up comments and variable names prior to merge. (check-in: [6445519e] user: drh branch: is-true-operator, size: 190368)
00:58
[03975fff] part of check-in [adcb4665] Remove an unnecessary decision. (check-in: [adcb4665] user: drh branch: is-true-operator, size: 190154)
2018-02-26
21:26
[ee29e9c2] part of check-in [57508518] Code simplifications. New test cases. (check-in: [57508518] user: drh branch: is-true-operator, size: 190175)
20:15
[2662b7cb] part of check-in [8002f87d] Get the "DEFAULT true" and "DEFAULT false" phrases working correctly in CREATE TABLE. (check-in: [8002f87d] user: drh branch: is-true-operator, size: 190251)
18:49
[4344e70a] part of check-in [cf2abd59] Refactor for correct NULL handling in the IS TRUE, IS FALSE, IS NOT TRUE, and IS NOT FALSE operators. (check-in: [cf2abd59] user: drh branch: is-true-operator, size: 189410)
03:20
[56bfb993] part of check-in [40314bc9] Experimental implementation of IS TRUE and IS FALSE operators. All TRUE and FALSE to act like constants if the names do not resolve to a column name. (check-in: [40314bc9] user: drh branch: is-true-operator, size: 188155)
2018-01-18
19:00
[9e06de43] part of check-in [86de4359] Use a loop to avoid recursion in the heightOfSelect() function. (check-in: [86de4359] user: dan branch: trunk, size: 187445)
2018-01-14
20:12
[46a7d73d] part of check-in [a4fa0581] Avoid excess stack usage when a VALUES clause with lots of rows occurs within a scalar expression. This fixes a problem discovered by OSSFuzz. (check-in: [a4fa0581] user: drh branch: trunk, size: 187444)
2017-12-29
15:04
[ad6e7a9c] part of check-in [7a7f826e] Change the function name to sqlite_unsupported_offset(X). Only enable the function if compiled with -DSQLITE_ENABLE_OFFSET_SQL_FUNC. The makefiles add that definition to shell builds. (check-in: [7a7f826e] user: drh branch: location-function, size: 187484)
14:33
[119aa8d4] part of check-in [dd94d6a8] Enhance location(X) so that it works with indexes and WITHOUT ROWID tables. The function might return an offset to the main table or to an index, depending on whether the column X would be loaded from the main table or from the index. (check-in: [dd94d6a8] user: drh branch: location-function, size: 187436)
13:35
[db1f29a1] part of check-in [6251e438] Merge recent enhancements from trunk. (check-in: [6251e438] user: drh branch: location-function, size: 187422)
2017-12-27
19:43
[f03666d7] part of check-in [a8e1545c] Add and use the internal sqlite3DbSpanDup() interface. (check-in: [a8e1545c] user: drh branch: span-refactor, size: 187124)
2017-12-24
00:18
[04188faa] part of check-in [3eab7bdc] Remove the ExprSpan object. Instead, keep track of the test of subphrases in the parse using the "scanpt" non-terminal. (check-in: [3eab7bdc] user: drh branch: span-refactor, size: 187264)
2017-12-16
20:20
[261d1eb0] part of check-in [51be9558] Add an experimental location(X) SQL function that attempt to return the location of the payload within the database for the record that contains column X. location(X) returns NULL if X is not an ordinary table column or if SQLite cannot figure out the location because it is using a covering index. (check-in: [51be9558] user: drh branch: location-function, size: 187519)
2017-11-17
15:02
[fe11b91b] part of check-in [071cabd2] Clarification of comments on sqlite3FindInIndex(). No changes to code. (check-in: [071cabd2] user: drh branch: trunk, size: 187221)
2017-11-14
23:48
[5257a915] part of check-in [3925facd] In the parse tree, combine LIMIT and OFFSET into a single expression rooted on a TK_LIMIT node, for a small code size reduction and performance increase, and a reduction in code complexity. (check-in: [3925facd] user: drh branch: trunk, size: 187201)
2017-10-28
20:51
[0016b95a] part of check-in [d17ef7d1] Reactivate query flattening when the result set of the outer query has no function calls or subqueries. This is a partial reversal of check-in [c9104b59]. Co-routines are still preferred if the outer query has a complex result set, but for simple results sets, query flattening is used. Check-in [4464f40ccd7] is completely backed out due to this change. (check-in: [d17ef7d1] user: drh branch: trunk, size: 187182)
2017-10-23
16:03
[755caeaf] part of check-in [58e5bb49] Avoid passing a NULL value as the second argument to memcpy(). (check-in: [58e5bb49] user: dan branch: branch-3.21, size: 187145)
2017-09-30
01:25
[4d2d0aaf] part of check-in [71f0adf7] Fix unreachable conditionals and revise a testcase that was made obsolete by the changes on this branch. (check-in: [71f0adf7] user: drh branch: prefer-coroutine-sort-subquery, size: 187127)
2017-09-28
01:58
[628395ae] part of check-in [490e488e] Add new routines to simplify dealing with collating sequences in expressions: sqlite3ExprNNCollSeq() and sqlite3ExprCollSeqMatch(). (check-in: [490e488e] user: drh branch: trunk, size: 187134)
2017-09-20
10:47
[82fedd57] part of check-in [7f2bd4ff] Improved resolution of large integer values in "CAST(x AS NUMERIC)". (check-in: [7f2bd4ff] user: drh branch: trunk, size: 186153)
2017-09-17
19:45
[38a22505] part of check-in [29227d00] Do not make the assumption (as check-in [4da49a95c0f07] incorrectly did) that the ExprList returned by sqlite3ExprListDup() would never be passed into sqlite3ExprListAppend(). Include a new test case that shows this sometimes does happen. (check-in: [29227d00] user: drh branch: trunk, size: 186151)
2017-09-15
15:38
[995a0801] part of check-in [5dc3ecb5] Improved the header-comment documentation on sqlite3ExprCodeExprList(). No changes to code. (check-in: [5dc3ecb5] user: drh branch: trunk, size: 186484)
15:17
[e44dda9d] part of check-in [4da49a95] Optimization to the ExprList object to make it slightly smaller and faster. (check-in: [4da49a95] user: drh branch: trunk, size: 186234)
2017-09-04
00:33
[0f611840] part of check-in [c7f9f47b] Proposed fix for ticket [b899b6042f97f5] (check-in: [c7f9f47b] user: drh branch: trunk, size: 185550)
2017-08-21
02:20
[4ca86dc6] part of check-in [56d19f9f] Remove an unnecessary conditional. (check-in: [56d19f9f] user: drh branch: trunk, size: 185327)
2017-08-14
14:53
[dc436431] part of check-in [d0da791b] Sometimes a TK_COLUMN Expr node can have Expr.pTab==0 if it is a reference to an expression column in an index on an expression. Fix for ticket [aa98619ad08ddcab]. (check-in: [d0da791b] user: drh branch: trunk, size: 185340)
2017-07-20
13:17
[fdb2fc46] part of check-in [22eda098] Combine the Parse.ckBase and Parse.iSelfTab fields into just Parse.iSelfTab. This fixes a problem with date/time functions in check-constraints. Add some test cases for date/time functions in index expressions and check constraints. (check-in: [22eda098] user: drh branch: index-on-date-func, size: 185291)
2017-07-19
19:48
[17fb2851] part of check-in [0a5e1c04] Allow indexes to be created on date/time functions as long as the 'now' date and the 'localtime' and 'utc' modifiers are not used. (check-in: [0a5e1c04] user: drh branch: index-on-date-func, size: 185287)
2017-07-15
20:33
[68552ca7] part of check-in [253945d4] Fix a register allocation problem in PRAGMA integrity_check that caused the same register to be used for two different purposes on the first ATTACHed database if the schema for the ATTACHed database was noticable more complex than the schema for the first database. Fix for ticket [a4e06e75a9ab61a1]. (check-in: [253945d4] user: drh branch: trunk, size: 185219)
2017-07-07
13:59
[f3f0f7a1] part of check-in [aacbb9a4] Exploit the fact that Expr.pRight and Expr.x are never used at the same time for a small performance gain. (check-in: [aacbb9a4] user: drh branch: trunk, size: 185215)
12:43
[26f51aa8] part of check-in [c1a1d68c] More aggressive use of EP_Leaf on expression nodes, to help prune searches. (check-in: [c1a1d68c] user: drh branch: trunk, size: 185184)
2017-06-29
01:23
[cc024ddd] part of check-in [25acd965] Fix the exprCompareVariable() routine so that it works for non-UTF8 text. (check-in: [25acd965] user: drh branch: partial-index-variables, size: 185176)
2017-06-28
21:47
[8281b9e5] part of check-in [b959c629] Alternative implementation of exprCompareVariable(). (check-in: [b959c629] user: drh branch: partial-index-variables, size: 185053)
2017-06-24
18:10
[9aea9dba] part of check-in [7b59c353] Consider the values bound to SQL variables when determining whether or not a partial index may be used. (check-in: [7b59c353] user: dan branch: partial-index-variables, size: 184964)
2017-06-17
19:06
[d2a511fb] part of check-in [c21628e9] Avoid adding an artifical "LIMIT 1" on scalar subqueries that do not need it. This seems like a pointless optimization as it makes minimal run-time difference but does increase code complexity. Parked on a branch for historical reference. (check-in: [c21628e9] user: drh branch: subquery-limit-opt, size: 183210)
2017-05-31
02:58
[452c6f3a] part of check-in [de28e651] Avoid unnecessary memory zeroing during expression list allocation. (check-in: [de28e651] user: drh branch: trunk, size: 183090)
2017-05-29
14:26
[82ccc704] part of check-in [6854a34e] Optimizations to the Walker object and its methods to make the code a little smaller and to help it run a little faster. (check-in: [6854a34e] user: drh branch: trunk, size: 182922)
2017-05-25
00:08
[30f61b7d] part of check-in [77fc2301] The TK_IF_NULL_ROW expression node must be treated as a variable that references the table Expr.iTable. Proposed fix for ticket [7fde638e94287d2c]. (check-in: [77fc2301] user: drh branch: trunk, size: 182656)
2017-05-15
15:12
[c83f799f] part of check-in [bb0d9281] Fix the build so that it works again with SQLITE_OMIT_SUBQUERY. (check-in: [bb0d9281] user: drh branch: trunk, size: 182578)
2017-05-06
18:09
[c980b2c9] part of check-in [04e7e565] Fix an obscure assertion fault that can follow an OOM. The problem was introduced by check-in [a1cf44763277b6c7]. (check-in: [04e7e565] user: drh branch: trunk, size: 182666)
2017-05-02
16:46
[965f5e60] part of check-in [8424492e] Additional comments on the sqlite3ExprIsConstantOrGroupBy() routine. No code changes. (check-in: [8424492e] user: drh branch: having-where-optimization, size: 182634)
2017-04-29
20:53
[ed8914c0] part of check-in [5375a3ce] Automatically transfer terms from the HAVING clause to the WHERE clause of an aggregate query in cases where the result of evaluating the term depends only one one or more of the GROUP BY expressions (and on no other inputs). (check-in: [5375a3ce] user: dan branch: having-where-optimization, size: 181735)
2017-04-14
19:03
[f10e35dc] part of check-in [3a5860d8] Add the TK_IF_NULL_ROW opcode to deal with non-NULL result columns in the result set of a view or subquery on the RHS of a LEFT JOIN that gets flattened. (check-in: [3a5860d8] user: drh branch: left-join-view, size: 180439)
14:50
[f6914d6d] part of check-in [6bf67376] Make USE_FULLWARN=1 the default for MSVC and fix harmless compiler warnings. (check-in: [6bf67376] user: mistachkin branch: trunk, size: 180083)
2017-04-11
11:52
[f6572c76] part of check-in [d6bb7c42] Fix a segfault that could occur if an indexed expression was used in a comparison operation within the result-set of a SELECT statement. (check-in: [d6bb7c42] user: dan branch: trunk, size: 180078)
2017-04-07
19:41
[8fd6b7bc] part of check-in [a52ef2ad] Proof of concept for the ability to use the expression columns in an index on expressions in place of equivalent expressions in the result set or in the WHERE clause. This check-in compiles but is mostly untested. (check-in: [a52ef2ad] user: drh branch: covering-index-on-expr, size: 180061)
2017-04-05
12:39
[6bce2cbd] part of check-in [ad90e8bb] Split off sqlite3DbFreeNN() from sqlite3DbFree() and use it in cases where we know that the argument to be freed is never NULL. (check-in: [ad90e8bb] user: drh branch: trunk, size: 179968)
11:57
[15f245fd] part of check-in [9e6c9391] Save a few bytes and a few CPU cycles in sqlite3ExprListDelete() routine. (check-in: [9e6c9391] user: drh branch: trunk, size: 179962)
11:49
[d6b2f5ff] part of check-in [a1cf4476] Remove a conditional made unreachable by the previous ExprList enhancement. (check-in: [a1cf4476] user: drh branch: trunk, size: 179931)
11:32
[6b186566] part of check-in [2b6560ad] Combine the ExprList_item objects and the ExprList wrapper into a single memory allocation, for improved performance and reduced footprint. (check-in: [2b6560ad] user: drh branch: trunk, size: 179964)
2017-03-12
20:28
[f12a581f] part of check-in [5ec655e8] Fix a possible NULL pointer dereference in following an OOM error in sqlite3ExprIsInteger(). Problem found by OSS-Fuzz. (check-in: [5ec655e8] user: drh branch: trunk, size: 180257)
19:39
[7eac40b5] part of check-in [18bf6aca] Remove an obsolete assert() in the IN operator code generation. (check-in: [18bf6aca] user: drh branch: trunk, size: 180194)
2017-02-18
20:05
[980e4627] part of check-in [c1adf959] Add an optimization to OP_Column to speed up sequential OP_Column instructions that read earlier fields from the same cursor. Attempt to reorder OP_Column opcodes so as to take advantage of this. (check-in: [c1adf959] user: dan branch: sort-column-opcodes, size: 183650)
2017-02-16
17:18
[8a29e9b7] part of check-in [ff5e733c] Change two MallocZero() calls into MallocRaw() to avoid unnecessary memset(). (check-in: [ff5e733c] user: drh branch: trunk, size: 180257)
2017-02-13
13:35
[38bd92fc] part of check-in [670f10b2] Change all legacy instances of "#if SQLITE_DEBUG" to "#ifdef SQLITE_DEBUG" for consistency. (check-in: [670f10b2] user: drh branch: trunk, size: 180258)
2017-02-11
14:59
[4748f51a] part of check-in [e464b919] Fix indexes on expressions so that they can be actually used with a COLLATE clause. (check-in: [e464b919] user: drh branch: trunk, size: 180255)
13:51
[c218ec8c] part of check-in [9689d04b] Ensure that indexed expressions with collating sequences are handled correctly. Proposed fix for ticket [eb703ba7b50c1a5]. (check-in: [9689d04b] user: drh branch: trunk, size: 179970)
2017-02-03
14:44
[d29114e9] part of check-in [a7674ead] Modify the sqlite3SelectDup() routine to avoid recursing on Select.pPrior. (check-in: [a7674ead] user: dan branch: recursive-selectdup, size: 179977)
2017-01-31
12:41
[d7ef6fdb] part of check-in [eacfdcf2] Further minor enhancement and size reduction in sqlite3ExprAssignVarNumber(). (check-in: [eacfdcf2] user: drh branch: trunk, size: 179882)
03:52
[27ac5524] part of check-in [5987ca1f] Performance optimization in sqlite3ExprAssignVarNumber(). (check-in: [5987ca1f] user: drh branch: trunk, size: 179882)
2017-01-09
18:20
[e559c6c1] part of check-in [8a90f691] Try to move OP_Concat operations outside the inner loop. This turns out to make things very slightly slower, at least in speedtest1.c. (check-in: [8a90f691] user: drh branch: failed-optimization, size: 179931)
2017-01-04
04:18
[f06f41e5] part of check-in [80ad317f] Factor constant functions out of the inner loop since they are more expensive than the extra OP_Copy needed to move the result into place. (check-in: [80ad317f] user: drh branch: trunk, size: 179716)
04:10
[9e60a71c] part of check-in [2ab997e4] Clean up the implementation of constant function factorization. (check-in: [2ab997e4] user: drh branch: factor-constant-funcs, size: 179715)
01:07
[8ba6e4ee] part of check-in [62e9270a] Attempt to factor out constant functions from the interior of table scans, since functions can often be expensive to compute. (check-in: [62e9270a] user: drh branch: factor-constant-funcs, size: 179724)
2017-01-03
14:39
[449cbb8b] part of check-in [f778f58a] Put the affinity() function implementation inside of #ifdef SQLITE_DEBUG. (check-in: [f778f58a] user: drh branch: affinity-sql-func, size: 179165)
14:30
[3cf3bb3b] part of check-in [c27cd8a8] Merge all the latest changes from trunk. (check-in: [c27cd8a8] user: drh branch: affinity-sql-func, size: 179138)
13:45
[59418cec] part of check-in [36944be6] Defer size checking on row-value assignments for when the RHS is a SELECT until after the "*" wildcards have been expanded. (check-in: [36944be6] user: drh branch: trunk, size: 178574)
11:59
[b5f55c29] part of check-in [abc27b60] Fix a typo on a comment. No code changes. (check-in: [abc27b60] user: drh branch: trunk, size: 177526)
02:58
[1df03961] part of check-in [696219b1] Improvements to the way vector assignment size checking is done. Size checks when the RHS is a SELECT are deferred until after "*" wildcards are expanded. (check-in: [696219b1] user: drh branch: vector-size-check, size: 178574)
00:27
[e115097a] part of check-in [14da99d4] Improved assert()s on the sqlite3ExprListDup() logic for TK_SELECT_COLUMN. (check-in: [14da99d4] user: drh branch: rowvalue-update-trigger, size: 177526)
2017-01-02
23:18
[c2be1c1a] part of check-in [2caaaab5] Put an ALWAYS() on an unreachable branch in the sqlite3ExprListDup() routine. (check-in: [2caaaab5] user: drh branch: rowvalue-update-trigger, size: 177388)
22:36
[d438df53] part of check-in [61a442ea] Proposed fix for the row-value TRIGGER UPDATE problem described in ticket [8c9458e7]. (check-in: [61a442ea] user: drh branch: rowvalue-update-trigger, size: 177326)
2017-01-01
12:44
[3b662f58] part of check-in [2c4d167c] Detect row-value comparison size mismatches even when the size of one operand is obscured by an unexpanded subquery. (check-in: [2c4d167c] user: drh branch: trunk, size: 176790)
2016-12-26
00:18
[dfde7bf6] part of check-in [57e40e1c] Add the built-in affinity() SQL function. (check-in: [57e40e1c] user: drh branch: affinity-sql-func, size: 177292)
2016-12-23
13:52
[a90e37bc] part of check-in [aa23d7ea] Add check to prevent a VList from growing after pointers to labels have been taken. (check-in: [aa23d7ea] user: drh branch: VList, size: 176728)
13:30
[fedcfcd8] part of check-in [9dcd8569] Fix the VList object so that it actually works. (check-in: [9dcd8569] user: drh branch: VList, size: 176650)
03:59
[e640b1c8] part of check-in [68ecafa1] Use the VList object to replace Parse.azVar for tracking the mapping between SQL parameter names and parameter numbers. There is a performance improvement, though there are still a few hiccups in the current code. (check-in: [68ecafa1] user: drh branch: VList, size: 176550)
2016-12-14
14:07
[c7c11fbe] part of check-in [9cae4c2e] Refactor the Table.nRef field as Table.nTabRef for easier grepping. (check-in: [9cae4c2e] user: drh branch: trunk, size: 176981)
2016-12-07
21:35
[84a5e590] part of check-in [28883e8f] Add the sqlite3VdbeAppendP4() method for adding P4 content to the most recently coded instruction. (check-in: [28883e8f] user: drh branch: trunk, size: 176978)
15:38
[0393a016] part of check-in [433d16ff] Prevent the flattening or where-term push-down optimizations from obscuring misuses of SQL row values that can lead to crashes or assert() failures. (check-in: [433d16ff] user: dan branch: trunk, size: 176982)
2016-12-06
22:47
[b4db982a] part of check-in [2a81763e] Performance improvement and size reduction in the Expr node allocator function sqlite3PExpr(). (check-in: [2a81763e] user: drh branch: trunk, size: 176502)
2016-11-30
14:47
[b22e0963] part of check-in [3816bb41] Fix then handling of the (oversized) integer literal -0x8000000000000000. (check-in: [3816bb41] user: drh branch: trunk, size: 176458)
2016-11-25
14:30
[8c224aa2] part of check-in [6df7c574] Add a comment to help clarify the EP_FromJoin hack in exprCodeBetween(). (check-in: [6df7c574] user: drh branch: trunk, size: 176403)
2016-11-23
21:13
[bf9c58cf] part of check-in [4c6efe60] Code constant vector components outside of any loops in CASE and BETWEEN expressions. Fix for [1a684656]. (check-in: [4c6efe60] user: drh branch: branch-3.15, size: 175886)
19:31
[b64811af] part of check-in [c08aff13] Code constant vector components outside of any loops in CASE and BETWEEN expressions. Fix for [1a684656]. (check-in: [c08aff13] user: dan branch: trunk, size: 176049)
2016-11-11
19:08
[d8c8277d] part of check-in [b835cf3e] Avoid storing redundant fields in sorter records when the sort-key and data have fields in common. (check-in: [b835cf3e] user: drh branch: trunk, size: 176039)
2016-11-10
20:14
[1fd53148] part of check-in [0af62fdb] 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"). (check-in: [0af62fdb] user: dan branch: sorter-opt, size: 176029)
2016-11-09
00:10
[ddd46baf] part of check-in [89d958ab] Enhance the OP_IdxInsert opcode to optionally accept unpacked key material. (check-in: [89d958ab] user: drh branch: unpacked-IdxInsert, size: 175954)
2016-11-02
02:17
[ce711098] part of check-in [9b3a3b41] Use NOT NULL partial indexes when the query is constrained by a single LIKE or GLOB. (check-in: [9b3a3b41] user: drh branch: trunk, size: 175944)
2016-10-03
16:33
[aac0b8d3] part of check-in [109852e5] Size and performance optimizations on the sqlite3ExprAssignVarNumber() routine. (check-in: [109852e5] user: drh branch: trunk, size: 175876)
15:28
[cf99b1a3] part of check-in [d15ae2e5] Avoid unnecessary strlen() calls in sqlite3ExprAssignVarNumber() by passing in the token length from the parser. (check-in: [d15ae2e5] user: drh branch: trunk, size: 176030)
12:56
[4f75ec38] part of check-in [012ff6dd] Fix an obsolete comment on a variable definition in expr.c. No code changes. (check-in: [012ff6dd] user: drh branch: trunk, size: 176020)
2016-09-30
21:20
[ebb5174d] part of check-in [ab12fce3] Fix an always-true conditional left over from the previous commit. (check-in: [ab12fce3] user: drh branch: trunk, size: 176033)
20:22
[f0ea2e1a] part of check-in [60285020] Fix the Parse.aColCache column cache so that all of the valid entries are in the first Parse.nColCache slots. (check-in: [60285020] user: drh branch: trunk, size: 176046)
2016-09-23
21:36
[a27090ab] part of check-in [8a6ea455] 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. (check-in: [8a6ea455] user: drh branch: trunk, size: 176553)
20:59
[13bc043a] part of check-in [afac0709] Use sqlite3ExprAlloc() instead of sqlite3PExpr() for leaf nodes in the expression tree, where appropriate. This is both smaller and faster. (check-in: [afac0709] user: drh branch: trunk, size: 176325)
2016-09-22
18:53
[471ca87a] part of check-in [c3774c6a] Remove the internal sqlite3CodeOnce() interface, replacing it with a direct call to sqlite3VdbeAddOp0(v,OP_Once). Slightly smaller and faster. (check-in: [c3774c6a] user: drh branch: trunk, size: 176320)
2016-09-19
10:24
[f35e6c25] part of check-in [75146165] Improved performance in sqlite3ExprCodeTarget(). (check-in: [75146165] user: drh branch: trunk, size: 176573)
2016-09-18
16:08
[5f6c8263] part of check-in [6bf5ba10] 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]. (check-in: [6bf5ba10] user: drh branch: trunk, size: 176579)
2016-09-09
15:12
[c1de7826] part of check-in [6ac932c9] Fix a out-of-order variable declaration for some compile-time configurations. (check-in: [6ac932c9] user: drh branch: trunk, size: 176596)
2016-09-06
17:21
[028c3400] part of check-in [7cc9746c] Remove an unnecessary branch from expr.c. (check-in: [7cc9746c] user: dan branch: rowvalue, size: 176604)
14:37
[4c2b9886] part of check-in [4071da2f] Enhance the sqlite3GetTempRange() and sqlite3ReleaseTempRange() internal routines so that they use sqlite3GetTempReg() and sqlite3ReleaseTempReg() when nReg==1. (check-in: [4071da2f] user: drh branch: rowvalue, size: 176623)
12:04
[17af5dc7] part of check-in [288e934f] Fix a typo in a comment in expr.c. (check-in: [288e934f] user: dan branch: rowvalue, size: 176498)
2016-09-05
22:50
[32bbbf7e] part of check-in [e8f105c3] Simplified logic to extract a column from a row value. (check-in: [e8f105c3] user: drh branch: rowvalue, size: 176497)
19:57
[48b18962] part of check-in [2fa5288a] 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. (check-in: [2fa5288a] user: drh branch: rowvalue, size: 176477)
12:02
[942c417e] part of check-in [56562a03] Catch vector size mismatch problems during name resolution to avoid later problems. (check-in: [56562a03] user: drh branch: early-vector-size-check, size: 176477)
09:44
[750ed166] part of check-in [42670935] Fix a crash that could occur under certain circumstances if the vectors on either side of a comparison operator were of a different size. (check-in: [42670935] user: dan branch: rowvalue, size: 177411)
2016-09-03
19:52
[23b595cc] part of check-in [7d9bd22c] Fix a problem causing the affinity of sub-select row-value elements to be ignored in some contextes. (check-in: [7d9bd22c] user: dan branch: rowvalue, size: 176776)
01:46
[7e0470e2] part of check-in [f1d06c49] Performance optimizations. (check-in: [f1d06c49] user: drh branch: rowvalue, size: 176590)
2016-08-26
22:09
[6ac2955b] part of check-in [829f802b] Fix a minor problem in sqlite3FindInIndex() related to rowids being used as part of the index. (check-in: [829f802b] user: drh branch: rowvalue, size: 176576)
21:15
[4c80148f] part of check-in [b9fc89e4] Fix the sqlite3FindInIndex() to ensure that it always uses a prefix of the index and uses no repeated columns. Enhanced comments. (check-in: [b9fc89e4] user: drh branch: rowvalue, size: 176570)
19:54
[935366a0] part of check-in [171aa833] Add an EXPLAIN QUERY PLAN line for when a index is used to implement an IN operator. (check-in: [171aa833] user: drh branch: rowvalue, size: 175745)
19:31
[192dac6d] part of check-in [4b589fbf] Enhance sqlite3FindInIndex() so that it is able to make use of the primary keys at the end of an index. (check-in: [4b589fbf] user: drh branch: rowvalue, size: 175554)
13:19
[1f2ddbec] part of check-in [b0cc6be4] Allow ROWID values in indexed vector comparisons. (check-in: [b0cc6be4] user: drh branch: rowvalue, size: 175128)
03:42
[bca71405] part of check-in [39761700] Comment improvements. Put ALWAYS and NEVER macros on three unreachable branches. (check-in: [39761700] user: drh branch: rowvalue, size: 175066)
01:02
[2fe35bc5] part of check-in [9d96f614] Remove an unreachable branch from sqlite3ExprAffinity() (check-in: [9d96f614] user: drh branch: rowvalue, size: 174992)
2016-08-25
21:14
[45f814e5] part of check-in [b56705ae] Refactor the sqlite3ExprCodeIN() routine for improved maintainability. (check-in: [b56705ae] user: drh branch: rowvalue, size: 174982)
15:46
[1c003fcb] part of check-in [b6344298] Improvements to IN operator code generator comments. Avoid unnecessary Copy operations on the LHS of the IN operator. (check-in: [b6344298] user: drh branch: rowvalue, size: 174946)
2016-08-24
21:54
[866bcb6e] part of check-in [7ae504e6] Simplified VDBE code for the vector NOT IN null-scanning loop. (check-in: [7ae504e6] user: drh branch: rowvalue, size: 174277)
18:51
[3dc226cc] part of check-in [55945fc1] In sqlite3FindInIndex(), improve internal comments and avoid an unreachable branch. (check-in: [55945fc1] user: drh branch: rowvalue, size: 174239)
17:49
[57b6d994] part of check-in [6099c180] Fix more unreachable branches. (check-in: [6099c180] user: drh branch: rowvalue, size: 173707)
15:37
[c2d3844f] part of check-in [505a2f20] Add a NEVER() on an unreachable branch in comparisonAffinity(). (check-in: [505a2f20] user: drh branch: rowvalue, size: 173528)
00:51
[f433feee] part of check-in [1e3bc369] The previous OOM fix was bad. Back it out and replace it with a better one. (check-in: [1e3bc369] user: drh branch: rowvalue, size: 173519)
00:25
[be8772ac] part of check-in [25f6ed8d] Avoid a potential null-pointer dereference following an OOM. (check-in: [25f6ed8d] user: drh branch: rowvalue, size: 173551)
2016-08-23
19:02
[e67849c4] part of check-in [838c50a5] Simplify the row value misuse error message. (check-in: [838c50a5] user: drh branch: rowvalue, size: 173496)
18:30
[3d3cc243] part of check-in [e149e6b9] Fix a problem with rowvalue UPDATE when the rowvalue is not the left-most and the RHS is a multi-column subquery. (check-in: [e149e6b9] user: drh branch: rowvalue, size: 173517)
17:30
[51176868] part of check-in [c8ffae05] Fix an uninitialized variable in CASE expression code generation. (check-in: [c8ffae05] user: drh branch: rowvalue, size: 173419)
2016-08-22
14:30
[575d6767] part of check-in [07e69f43] 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. (check-in: [07e69f43] user: drh branch: rowvalue, size: 173369)
00:48
[77215e92] part of check-in [2f39987f] 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. (check-in: [2f39987f] user: drh branch: rowvalue, size: 172248)
2016-08-20
22:49
[157f2aa7] part of check-in [e50d264f] 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. (check-in: [e50d264f] user: drh branch: rowvalue, size: 171841)
21:11
[b6f05922] part of check-in [d4562a9e] Further comment enhancements. No changes to code. (check-in: [d4562a9e] user: drh branch: rowvalue, size: 171958)
21:02
[4adf875e] part of check-in [4fb66d65] Clarification of code comments in expr.c. Clean up the implementations of sqlite3ExprIsVector() and sqlite3ExprVectorSize() slightly. (check-in: [4fb66d65] user: drh branch: rowvalue, size: 171619)
18:06
[e96f29a0] part of check-in [9041ee4a] Fixes for problems following OOM errors. (check-in: [9041ee4a] user: drh branch: rowvalue, size: 171692)
17:00
[8e1288b3] part of check-in [8384c77e] Do not duplicate the Expr.pLeft subtree of a TK_SELECT_COLUMN node. (check-in: [8384c77e] user: drh branch: rowvalue, size: 171618)
15:01
[f1d9c437] part of check-in [203f07c5] Fix a segfault that could occur if a query that used a vector comparison contained certain types of syntax errors. (check-in: [203f07c5] user: dan branch: rowvalue, size: 171515)
01:06
[d5cffb30] part of check-in [4165d20f] Improvements to comments. No code changes. (check-in: [4165d20f] user: drh branch: rowvalue, size: 171486)
00:51
[bdc98d33] part of check-in [f320d47d] Add support for vector assignments in the SET clause of an UPDATE statement. (check-in: [f320d47d] user: drh branch: rowvalue, size: 170878)
00:07
[ff73eb6c] part of check-in [d8feea7d] 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. (check-in: [d8feea7d] user: drh branch: rowvalue, size: 169746)
2016-08-19
19:12
[e1398518] part of check-in [acea4ee1] Improved comments on sqlite3CodeSubquery(). No changes to code. (check-in: [acea4ee1] user: drh branch: rowvalue, size: 166903)
2016-08-13
12:37
[d79a02ba] part of check-in [ec70a67e] Fix to the vector less-than operator. All legacy tests passing now. (check-in: [ec70a67e] user: drh branch: vector-compare, size: 166498)
10:02
[375de68a] part of check-in [dfc028cf] 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. (check-in: [dfc028cf] user: drh branch: vector-compare, size: 166597)
2016-08-12
11:25
[d05cc249] part of check-in [381aa731] Add VdbeCoverage() macros on newly added VDBE branch operations. (check-in: [381aa731] user: drh branch: rowvalue, size: 165982)
11:01
[04b320c9] part of check-in [14009b32] Fix a post-OOM memory leak. (check-in: [14009b32] user: drh branch: rowvalue, size: 165822)
2016-08-11
12:01
[dfc22757] part of check-in [8278be06] Fix some problems with handling "no such collation sequence" errors. (check-in: [8278be06] user: dan branch: rowvalue, size: 165806)
2016-08-08
16:52
[94b3d946] part of check-in [0e927a7e] Merge trunk changes with this branch. (check-in: [0e927a7e] user: dan branch: rowvalue, size: 165732)
2016-08-04
01:47
[9c5eca86] part of check-in [4ada023c] Add an experimental SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION compile-time option. This changes has been merged into main branches via cherry-pick. (check-in: [4ada023c] user: drh branch: unknown-function, size: 151773)
2016-08-03
16:14
[9539a6e0] part of check-in [18af74ab] Fix stat4-based cost estimates for vector range constraints. (check-in: [18af74ab] user: dan branch: rowvalue, size: 165569)
2016-08-02
17:45
[200cad2b] part of check-in [339f85f4] Fix SQLITE_OMIT_SUBQUERY builds. (check-in: [339f85f4] user: dan branch: rowvalue, size: 165513)
2016-08-01
20:14
[4db65a0c] part of check-in [3ef75d45] Fix a problem with vector range constraints involving the rowid column. And other issues. (check-in: [3ef75d45] user: dan branch: rowvalue, size: 165369)
16:37
[cdde4d3e] part of check-in [1f4dba87] Fix a problem with IN(...) constraints where the LHS is a sub-select that is an aggregate query. (check-in: [1f4dba87] user: dan branch: rowvalue, size: 164547)
2016-07-30
21:02
[f33dcbaf] part of check-in [059d0d05] Fix problems with vector == comparisons and NULL values. (check-in: [059d0d05] user: dan branch: rowvalue, size: 164506)
16:39
[4e79d7a3] part of check-in [e9d9c6d4] Remove the EP_Vector expression flag. (check-in: [e9d9c6d4] user: dan branch: rowvalue, size: 162376)
2016-07-29
20:58
[d904598a] part of check-in [42607366] Fix some issues with vector range constraints and the column cache. Also vector range constraints and rowid columns. (check-in: [42607366] user: dan branch: rowvalue, size: 162146)
18:12
[d21255d0] part of check-in [4dfebff2] Change the way "(a, b) = (SELECT *)" expressions are handled in where.c if there is an index on one of the columns only. (check-in: [4dfebff2] user: dan branch: rowvalue, size: 162059)
2016-07-28
19:47
[473ce0ac] part of check-in [cc3f6542] Fix further issues with multi-column IN(...) operators. Also some error handling cases surrounding row values. (check-in: [cc3f6542] user: dan branch: rowvalue, size: 162417)
13:59
[82bc40bb] part of check-in [9685880f] Merge latest trunk changes into this branch. (check-in: [9685880f] user: dan branch: rowvalue, size: 162021)
2016-07-27
19:33
[bee29fbb] part of check-in [719a3b20] Fix some problems with multi-column IN(SELECT...) processing. (check-in: [719a3b20] user: dan branch: rowvalue, size: 160230)
19:20
[fbc17c71] part of check-in [50f8ea37] Add test cases and fix a comment. (check-in: [50f8ea37] user: drh branch: improved-index-scan, size: 151610)
18:27
[3347e66d] part of check-in [a59b5622] 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. (check-in: [a59b5622] user: drh branch: improved-index-scan, size: 151618)
2016-07-26
18:06
[f84861ea] part of check-in [061b8006] 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. (check-in: [061b8006] user: dan branch: rowvalue, size: 160204)
2016-07-23
20:24
[8ff9d70c] part of check-in [e2fd6f49] 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). (check-in: [e2fd6f49] user: dan branch: rowvalue, size: 159668)
2016-07-13
19:48
[939362d2] part of check-in [34e35c71] Modifications towards better vector IN(...) support on this branch. Not activated yet. (check-in: [34e35c71] user: dan branch: rowvalue, size: 158735)
2016-07-10
19:35
[21b153e1] part of check-in [77c692a6] Fix typos in comments. No changes to code. (check-in: [77c692a6] user: mistachkin branch: trunk, size: 149819)
2016-07-09
20:23
[330854fe] part of check-in [b2204215] Add some support for using row value constructors in certain parts of SQL expressions. There are many bugs on this branch. (check-in: [b2204215] user: dan branch: rowvalue, size: 157268)
2016-06-16
17:14
[523a5b1d] part of check-in [0b1579ca] 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. (check-in: [0b1579ca] user: dan branch: trunk, size: 149818)
2016-06-02
23:13
[798146ea] part of check-in [95f483e8] 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. (check-in: [95f483e8] user: drh branch: without-rowid-vtab, size: 149636)
2016-05-26
20:56
[81bd7d87] part of check-in [ffe80a1b] Add a new OP_SeekRowid opcode, that combines the functions of OP_MustBeInt and OP_NotExists. This makes the code slightly smaller and faster. (check-in: [ffe80a1b] user: drh branch: trunk, size: 149616)
2016-04-16
15:03
[8796c073] part of check-in [8eb3d7d8] Fix a couple of assert() statements that were failing with OOM error tests. (check-in: [8eb3d7d8] user: dan branch: rbu-vacuum, size: 149692)
2016-04-11
19:01
[17d4e745] part of check-in [9efe2265] Performance optimization to sqlite3Dequote() and its callers. (check-in: [9efe2265] user: drh branch: trunk, size: 149636)
18:25
[57fa7eb8] part of check-in [2764aeaa] Performance optimization for the sqlite3ExprListDelete() routine. (check-in: [2764aeaa] user: drh branch: trunk, size: 149701)
18:15
[22d553f3] part of check-in [e35b345c] Performance optimizations in the column cache of the code generator, and especially the sqlite3ExprCacheRemove() routine. (check-in: [e35b345c] user: drh branch: trunk, size: 149605)
16:43
[16829fcf] part of check-in [476cc283] Simplification and performance improvements in sqlite3ExprDup() and its subroutines. More work is possible in this area. (check-in: [476cc283] user: drh branch: trunk, size: 149195)
14:49
[70226003] part of check-in [60ad80e3] Performance improvement in sqlite3ExprDelete(). (check-in: [60ad80e3] user: drh branch: trunk, size: 149169)
01:06
[a195d2d0] part of check-in [6a5cceee] Factor out the common operation of setting the Expr.x.pSelect field of an Expr object into a subroutine. (check-in: [6a5cceee] user: drh branch: trunk, size: 149061)
2016-03-19
00:35
[289ffac5] part of check-in [88439a86] Fix a register allocation bug in the VDBE code generator for PRAGMA integrity_check; (check-in: [88439a86] user: drh branch: trunk, size: 148591)
2016-03-17
19:07
[f8137b7d] part of check-in [8607e3ac] A more compact implementation of the code generator for the IS and IS NOT operators. (check-in: [8607e3ac] user: drh branch: trunk, size: 148031)
18:41
[ee11e398] part of check-in [41335d88] An alternative method of encoding the wildcard in "SELECT *". This is an experiment. (check-in: [41335d88] user: drh branch: select-wildcard, size: 148301)
2016-03-09
15:34
[c329d581] part of check-in [2c55c3c2] Slight simplification to the query optimizer logic associated with IN (SELECT). (check-in: [2c55c3c2] user: drh branch: trunk, size: 148294)
15:09
[4ce9e66a] part of check-in [1ed6b06e] When optimizing expressions of the form "x IN (SELECT ...)" make sure that the subquery is not correlated. Fix for ticket [5e3c886796e5512]. (check-in: [1ed6b06e] user: drh branch: trunk, size: 148384)
2016-02-27
21:16
[c4dad2cd] part of check-in [d8c94a46] Eliminate the need for the Column.zDflt (using Column.pDflt instead) to reduce the amount of memory needed to hold the schema. (check-in: [d8c94a46] user: drh branch: trunk, size: 148221)
2016-02-15
00:34
[9adb5815] part of check-in [3201fbcc] Improvements to the application-defined function mechanism so that it is more compact and runs faster, especially when the application defines thousands of new SQL functions. (check-in: [3201fbcc] user: drh branch: many-app-functions, size: 148203)
2016-02-05
13:38
[fbf07061] part of check-in [0a802e96] Add the slightly faster sqlite3DbMallocRawNN(db,n) routine for the majority cases where db is guaranteed to be not NULL. (check-in: [0a802e96] user: drh branch: oom-handling, size: 148354)
01:55
[fddb1b19] part of check-in [c3ef0347] Improvements to the way that OOM errors are processed. (check-in: [c3ef0347] user: drh branch: oom-handling, size: 148201)
2016-02-04
02:34
[b37b5a2f] part of check-in [1c8d3001] Add and use the sqlite3VdbeZeroRegister() interface for coding the common operation of writing zero into a register. (check-in: [1c8d3001] user: drh branch: zero-register, size: 148120)
2016-01-22
17:48
[d10c1cde] part of check-in [73231753] Add the sqlite3TokenInit() utility function. (check-in: [73231753] user: drh branch: trunk, size: 148147)
2016-01-18
13:18
[df0d7c32] part of check-in [9e8c23ac] Avoid unnecessary calls to memset() for a small performance improvement. (check-in: [9e8c23ac] user: drh branch: trunk, size: 148154)
2016-01-14
22:19
[9a1a4150] part of check-in [0d1b3d7d] Combine the xFunc and xStep pointers of the FuncDef object into a single pointer xSFunc. (check-in: [0d1b3d7d] user: drh branch: trunk, size: 148133)
2016-01-08
12:46
[fe55c489] part of check-in [cede2bf8] Reduce the number of calls to memset() in sqlite3DbMallocZero(). (check-in: [cede2bf8] user: drh branch: trunk, size: 148129)
2015-12-23
16:42
[38790e65] part of check-in [5d44d4a6] Fix some harmless gcc compiler warnings. Mostly in fts5, but also two in the core code. (check-in: [5d44d4a6] user: dan branch: trunk, size: 148095)
2015-12-21
15:22
[414f4c6b] part of check-in [34073ce8] Ensure that the Expr objects that describe indexed expressions are not modified by code generation. Fix for an assert() problem found by Jon Metzman using AFL. (check-in: [34073ce8] user: drh branch: trunk, size: 148090)
2015-12-08
16:58
[ccb93d7b] part of check-in [901d0b8f] Changes to avoid undefined behavior in memset() and memcpy() and in the comparisons of pointers from different allocations. All problems are found by analysis tools - none have been seen in the wild. (check-in: [901d0b8f] user: drh branch: trunk, size: 147637)
2015-11-24
02:10
[cb1a4195] part of check-in [824ad96f] Remove an incorrect ALWAYS() macro. Fix for ticket [e5c6268dd807fa8950] - a problem introduced in SQLite 3.9.0 and found by libFuzzer. (check-in: [824ad96f] user: drh branch: trunk, size: 147495)
2015-11-21
17:27
[dfccb439] part of check-in [198d191b] Fix over-length source code lines. No logic changes. (check-in: [198d191b] user: drh branch: trunk, size: 147503)
2015-10-29
12:27
[16043ce1] part of check-in [d533e23f] Apply optimizations to simplify OR clauses that contain constant terms. (check-in: [d533e23f] user: drh branch: simplify-or-clause, size: 148514)
2015-10-28
20:01
[0080c0f1] part of check-in [b10ab59f] Make the internal sqlite3PExpr() interface responsive to the TKFLG_DONTFOLD flag on the operator parameter. (check-in: [b10ab59f] user: drh branch: trunk, size: 147496)
2015-10-26
18:51
[ea3e0c29] part of check-in [53d5a4ad] Merge in all trunk changes prior to the BTREE_FORDELETE enhancement. (check-in: [53d5a4ad] user: drh branch: cursor-hints, size: 147502)
2015-10-16
23:55
[d9896fda] part of check-in [0df371d1] Fix a comment in expr.c and add a CORRUPT_DB to an assert() in btree.c. (check-in: [0df371d1] user: drh branch: trunk, size: 147092)
20:53
[41c83c44] part of check-in [26fa091d] Merge recent enhancements from trunk. Version now 3.9.1. (check-in: [26fa091d] user: drh branch: cursor-hints, size: 147288)
2015-10-15
19:21
[e8765542] part of check-in [871e091d] Enhance the use of the column cache for UPDATE statements, making them more efficient for the case where a column is modified to be an expression of other unmodified columns. (check-in: [871e091d] user: drh branch: trunk, size: 146878)
2015-10-14
20:09
[7afc6450] part of check-in [29444149] Merge in all the 3.9.0 updates from trunk. (check-in: [29444149] user: drh branch: cursor-hints, size: 146711)
2015-10-10
14:41
[b89dfbb8] part of check-in [9ddef84d] Compiler warning fixes: Rename some local variables from "j1" to avoid a name collision with the j1() bessel function in the math library. Omit a dummy initializer that gcc 4.6.3 does not like. (check-in: [9ddef84d] user: drh branch: trunk, size: 146301)
2015-09-29
17:20
[36381822] part of check-in [7d272aa6] Use symbolic names XN_ROWID and XN_EXPR in place of the (-1) and (-2) magic numbers in Index.aiColumn[]. Add asserts to help verify that Index.aiColumn[] is always used correctly. Fix one place in FK processing where Index.aiColumn[] was not being used correctly. (check-in: [7d272aa6] user: drh branch: trunk, size: 146283)
2015-09-15
17:31
[572ebfeb] part of check-in [66fe0683] Merge enhancements from trunk. (check-in: [66fe0683] user: drh branch: cursor-hints, size: 146685)
2015-09-05
22:36
[3a76afcd] part of check-in [7ab0b258] Omit all use of Expr nodes for TK_AS, as those nodes no longer served a useful purpose and in fact interferred with the query planner. (check-in: [7ab0b258] user: drh branch: trunk, size: 146275)
2015-09-03
14:39
[3783aa19] part of check-in [25ee3000] Merge enhancements from trunk. (check-in: [25ee3000] user: drh branch: cursor-hints, size: 145768)
14:18
[f3c4d165] part of check-in [1ab10cbf] Merge enhancements from trunk. (check-in: [1ab10cbf] user: drh branch: index-expr, size: 146408)
13:46
[af2c72f8] part of check-in [847387ec] Add the sqlite3VdbeLoadString() and sqlite3VdbeMultiLoad() routines to help with code generation, especially on PRAGMAs. Rename sqlite3VdbeAddGoto() to just sqlite3VdbeGoto(). (check-in: [847387ec] user: drh branch: trunk, size: 145358)
2015-09-02
18:19
[cf60b916] part of check-in [be78f413] Add the sqlite3VdbeAddGoto(v,i) routine as a shorthand for sqlite3VdbeAddOp2(v,OP_Goto,0,i). (check-in: [be78f413] user: drh branch: trunk, size: 145396)
2015-09-01
18:31
[6814e926] part of check-in [29570a60] Merge enhancements from trunk. (check-in: [29570a60] user: drh branch: cursor-hints, size: 145883)
2015-08-31
18:13
[500c0ee6] part of check-in [e2f1caf1] Case should not be significant when comparing function names. (check-in: [e2f1caf1] user: drh branch: index-expr, size: 146523)
2015-08-26
18:04
[cf0c5ef6] part of check-in [ec6ddb3d] Merge enhancements from trunk. (check-in: [ec6ddb3d] user: drh branch: index-expr, size: 146419)
14:01
[5944e529] part of check-in [c2f3bbad] Evaluate expressions only once when the same expression is used in both the result set and in the ORDER BY clause. (check-in: [c2f3bbad] user: drh branch: trunk, size: 145473)
2015-08-25
16:57
[4a52fd29] part of check-in [efaabdb7] Add code to maintain indexes with expression arguments across DELETE, INSERT, and UPDATE statements. Legacy tests pass, but the new code paths are still largely untested. The query planner currently makes no effort to use expression indexes. (check-in: [efaabdb7] user: drh branch: index-expr, size: 146213)
2015-08-24
20:21
[650ac7c4] part of check-in [bed42116] Enhances the parser so that it accepts arbitrary expressions for the arguments of an index, though the code generator still rejects everything other than simple column names. The sqlite3RestrictColumnListSyntax() routine is removed since that feature is now handled by the parser. (check-in: [bed42116] user: drh branch: trunk, size: 145267)
15:39
[c05d67f1] part of check-in [83cbc4d8] Disallow the use of COLLATE clauses and the ASC and DESC keywords within foreign key constraints and in the argument list to common table expressions. (check-in: [83cbc4d8] user: drh branch: trunk, size: 145302)
2015-08-23
20:48
[c34408e0] part of check-in [518d6220] Fix a comment typo on sqlite3ExprAlloc(). No code changes. (check-in: [518d6220] user: drh branch: trunk, size: 144867)
2015-08-20
23:45
[673b80a5] part of check-in [b9927c87] Merge recent enhancements from trunk, including table-valued expressions. (check-in: [b9927c87] user: drh branch: cursor-hints, size: 145279)
2015-08-19
15:20
[9b9fa7f8] part of check-in [b9193761] Minor refactor of the SrcList object so that it is able to hold the argument list to a table-valued-function in the FROM clause. (check-in: [b9193761] user: drh branch: table-valued-functions, size: 144869)
2015-08-13
20:34
[e1fc69ce] part of check-in [be254715] Fix a bug in sqlite3ExprContainsSubquery(). (check-in: [be254715] user: drh branch: cursor-hints, size: 145308)
20:07
[0cd7fabb] part of check-in [82a7a61b] Merge in all the trunk changes from the previous year. This breaks the cursor-hint mechanism, but provides a baseline for trouble-shooting. (check-in: [82a7a61b] user: drh branch: cursor-hints, size: 145306)
2015-06-26
18:16
[c5c58e4d] part of check-in [2abc44eb] Cache the sqlite3_context structure in the P4 operand of VDBE programs for faster SQL function dispatch. (check-in: [2abc44eb] user: drh branch: trunk, size: 144898)
2015-06-20
13:18
[32c836d9] part of check-in [7cdbae62] Make sure that the likelihood() function does not mess up generation of result-set code when it is used (inappropropriately) in a result-set expression. (check-in: [7cdbae62] user: drh branch: trunk, size: 144897)
2015-06-12
12:54
[fbde754d] part of check-in [711a176c] Add the OP_ColumnsUsed opcode (when compiled with SQLITE_ENABLE_COLUMN_USED_MASK) as a hint to the b-tree layer as to which columns of a btree cursor will be used. (check-in: [711a176c] user: drh branch: trunk, size: 144883)
2015-06-11
13:58
[710c764c] part of check-in [e63d01c6] When generating code for partial indexes, be sure not to modify the index condition expression in the schema. (check-in: [e63d01c6] user: drh branch: trunk, size: 145162)
2015-06-08
15:08
[0550baec] part of check-in [c32ce54c] Factor out the TreeView parse tree printing module into a separate file. (check-in: [c32ce54c] user: drh branch: view-optimization, size: 144681)
2015-06-05
22:33
[12e04f32] part of check-in [be8e3fc7] Split FROM-clause subquery flattening and code generation into separate loops. (check-in: [be8e3fc7] user: drh branch: view-optimization, size: 152536)
15:59
[1980fffc] part of check-in [f167bba4] Add a new opcode to the VDBE that gives the b-tree a hint about the set of columns in a table or index that are actually used by the query. (check-in: [f167bba4] user: drh branch: column-usage-hint, size: 152481)
2015-06-04
12:08
[d953b9f0] part of check-in [6a9cf063] Change the name of SrcList.a[].zIndex to the more descriptive SrcList.a[0].zIndexedBy. (check-in: [6a9cf063] user: drh branch: trunk, size: 152760)
2015-06-02
16:09
[5abe19af] part of check-in [80889306] Add the built-in affinity() SQL function. This turns out to be not as useful as originally envisioned, so abandon it on a branch. (check-in: [80889306] user: drh branch: affinity-func, size: 153352)
15:32
[52f5c1c2] part of check-in [bce3f041] Rename SQLITE_AFF_NONE to SQLITE_AFF_BLOB. (check-in: [bce3f041] user: drh branch: blob-affinity-rename, size: 152752)
2015-06-01
18:13
[5de0af7c] part of check-in [f925389e] Corrections to comments in expr.c. No code changes. (check-in: [f925389e] user: drh branch: trunk, size: 152752)
2015-05-20
20:24
[1686997e] part of check-in [7f3943fb] Fix a potential NULL pointer deference on a corrupt database schema. Cherrypick of [dc61b292d8ea]. (check-in: [7f3943fb] user: dan branch: branch-3.8.6, size: 150315)
19:34
[e2a1f938] part of check-in [fc1a4f29] Fix a problem causing collation sequence names to be dequoted multiple times under some circumstances. Cherrypick of [eddc05e7bb31]. (check-in: [fc1a4f29] user: dan branch: branch-3.8.6, size: 150001)
2015-05-05
16:57
[3fb2ab3a] part of check-in [cc50883d] Fix a minor coding inefficiency found during pre-release inspection. (check-in: [cc50883d] user: drh branch: trunk, size: 152749)
2015-04-23
13:00
[4c05a28e] part of check-in [01c50cee] Improvement to "ID" formatting on the ".selecttrace 0x1ff" debugging function. (check-in: [01c50cee] user: drh branch: trunk, size: 152761)
2015-04-20
01:13
[5555f768] part of check-in [592c0104] Add an ALWAYS() around a new branch that was made unreachable by an even newer change. (check-in: [592c0104] user: drh branch: trunk, size: 152757)
2015-04-19
19:21
[25a732f3] part of check-in [dc61b292] Fix a potential NULL pointer deference on a corrupt database schema. (check-in: [dc61b292] user: drh branch: trunk, size: 152749)
2015-04-17
19:41
[55e7ce8f] part of check-in [b67bb16c] In the expression-tree comparison routine, do not compiler Expr.iColumn and Expr.iTable for TK_STRING expressions. (check-in: [b67bb16c] user: drh branch: trunk, size: 152697)
2015-04-16
14:13
[f37d5eb4] part of check-in [ec5a493a] Improvements to the way VALUES clauses are parsed. (check-in: [ec5a493a] user: drh branch: trunk, size: 152676)
2015-04-15
05:20
[88005843] part of check-in [7c27310b] When adding the implied "LIMIT 1" to the end of a scalar subquery, make sure that subquery is not a VALUES-only query as such queries cannot deal with LIMIT clauses. (check-in: [7c27310b] user: drh branch: trunk, size: 152675)
04:20
[aba4f054] part of check-in [38727425] Add a test case for what was formerly thought to be an unreachable condition: when the LHS of an OR operator contains an error and the RHS contains an IN operator. (check-in: [38727425] user: drh branch: trunk, size: 152636)
2015-03-22
10:23
[d09dac67] part of check-in [8d27e3e1] Fix a potential NULL pointer dereference following a syntax error. (check-in: [8d27e3e1] user: drh branch: trunk, size: 152644)
2015-03-20
08:43
[eb4d795a] part of check-in [eddc05e7] Fix a problem causing collation sequence names to be dequoted multiple times under some circumstances. (check-in: [eddc05e7] user: dan branch: trunk, size: 152615)
2015-02-09
18:28
[3ef111b8] part of check-in [24e78b8d] Propagate COLLATE operators upward through function calls and CASE operations. And do not flatten an aggregate subquery into a query that uses other subqueries. Fixes for tickets [ca0d20b6cdddec5] and [2f7170d73bf9], respectively. (check-in: [24e78b8d] user: drh branch: trunk, size: 152547)
16:09
[f40082f5] part of check-in [c053448a] Propagate the COLLATE operator upward through function calls. Initial fix for ticket [ca0d20b6cdddec5e8]. (check-in: [c053448a] user: drh branch: tkt-2f7170d7, size: 152192)
15:21
[3fbe5a2a] part of check-in [0b7d65e3] Disable the query flattener for aggregate subqueries if the parent query uses other subqueries in its result set or WHERE clause or ORDER BY clause. Preliminary fix for ticket [2f7170d73bf9abf8]. However it still contains a defect similar to the COLLATE problem of [ca0d20b6cddd]. (check-in: [0b7d65e3] user: drh branch: tkt-2f7170d7, size: 151282)
14:07
[d6642453] part of check-in [4ef7cece] Rename the internal "EP_Constant" bitmask to a less misleading "EP_ConstFunc". (check-in: [4ef7cece] user: drh branch: trunk, size: 150969)
2015-01-27
13:17
[abe93089] part of check-in [e098de69] Fix a (almost always harmless) read past the end of a memory allocation that comes about because the Expr.pTab field is checked on an EXPR_REDUCEDSIZE Expr object before checking the Expr.op field to know that the Expr.pTab field is meaningless. (check-in: [e098de69] user: drh branch: trunk, size: 150968)
2015-01-21
17:00
[33a4518b] part of check-in [5f592359] Fix an assert() that may fail following an OOM error. (check-in: [5f592359] user: dan branch: trunk, size: 150968)
2015-01-09
01:27
[7be80f7d] part of check-in [fe578863] Fix three crash problems discovered by afl-fuzz. Ticket [a59ae93ee990a55]. (check-in: [fe578863] user: drh branch: trunk, size: 150892)
2014-12-04
16:29
[6796707f] part of check-in [5a80957b] If a table is the right operand of a LEFT JOIN, then any column of that table can be NULL even if that column has a NOT NULL constraint. Fix for ticket [6f2222d550f5b0ee7ed]. (check-in: [5a80957b] user: drh branch: branch-3.8.7, size: 149931)
16:27
[00da3072] part of check-in [6f6fcbe4] If a table is the right operand of a LEFT JOIN, then any column of that table can be NULL even if that column has a NOT NULL constraint. Fix for ticket [6f2222d550f5b0ee7ed]. (check-in: [6f6fcbe4] user: drh branch: trunk, size: 150847)
2014-11-19
16:36
[73de4c0d] part of check-in [6d00bcca] Add new requirements marks associated with the file format documentation. No changes to code. (check-in: [6d00bcca] user: drh branch: trunk, size: 150796)
2014-11-14
15:42
[1891cb50] part of check-in [98457a57] Do not automatically remove the DISTINCT keyword from "a IN (SELECT DISTINCT ...)" expressions. Fix for [db87229497]. (check-in: [98457a57] user: drh branch: branch-3.8.7, size: 149880)
15:28
[a3ff05db] part of check-in [55e453aa] Do not automatically remove the DISTINCT keyword from "a IN (SELECT DISTINCT ...)" expressions. Fix for [db87229497]. (check-in: [55e453aa] user: dan branch: trunk, size: 150653)
2014-10-24
19:28
[0391a657] part of check-in [d95d0313] Enhance the automatic index logic so that it creates a partial index when doing so gives the same answer for less work. UPDATE: This change introduced a bug described by ticket [2326c258d02ead33]. (check-in: [d95d0313] user: drh branch: trunk, size: 150696)
2014-10-01
13:17
[fc204d08] part of check-in [07c89940] Show the TK_DOT operator in the TreeView debugging output. No changes to production code. (check-in: [07c89940] user: drh branch: trunk, size: 149923)
2014-09-30
12:33
[46a8ca93] part of check-in [4ff51325] Remove the SQLITE_ENABLE_TREE_EXPLAIN compile-time option. Add alternative debugging display routines: sqlite3TreeViewExpr(), sqlite3TreeViewExprList(), and sqlite3TreeViewSelect(). (check-in: [4ff51325] user: drh branch: trunk, size: 149876)
2014-09-29
18:47
[622ca88b] part of check-in [5e5d6e86] Add the OPFLAG_MULTICOLUMN flag to the OP_Column opcode. Rearrange OP_Column instructions to take advantage of the new flag for a small performance increase (check-in: [5e5d6e86] user: drh branch: faster-OP_Column, size: 150493)
2014-09-24
13:20
[f3211924] part of check-in [1ad2bc1e] Do not allow parameters in a DEFAULT clause of a CREATE TABLE statement. Ticket [78c0c8c3c9f7c1]. (check-in: [1ad2bc1e] user: drh branch: trunk, size: 150452)
2014-09-21
00:27
[4f101c8d] part of check-in [c0b61f70] Improved ".selecttrace" output. (check-in: [c0b61f70] user: drh branch: select-trace, size: 149255)
2014-09-20
20:24
[51dfaa60] part of check-in [f1ba68f1] Fix the SELECTTRACE_ENABLE macro so that it doesn't cause problems for testfixture. Add new SELECTTRACE() calls. (check-in: [f1ba68f1] user: drh branch: select-trace, size: 149306)
2014-09-12
17:41
[19392d98] part of check-in [32055623] Simplify the way the column cache is managed around OP_Move instructions. (check-in: [32055623] user: drh branch: trunk, size: 149212)
2014-09-06
16:39
[441a7e24] part of check-in [e62aab5e] Fix typos in comments. No code changes. (check-in: [e62aab5e] user: peter.d.reid branch: trunk, size: 149356)
2014-08-29
12:29
[e1691ab0] part of check-in [462f42af] Contains a fault. Was: Avoid an unnecessary OP_Move operation for expression subqueries. (check-in: [462f42af] user: drh branch: mistake, size: 149356)
11:24
[a4e61633] part of check-in [8c57bcc3] Add the sqlite3VdbeChangeDest() routine that can be used to eliminate OP_Move opcodes. (check-in: [8c57bcc3] user: drh branch: experimental, size: 149399)
2014-08-25
20:11
[358634f4] part of check-in [91d8a8d0] Allow CAST expressions and unary "+" operators to be used in the DEFAULT argument of an ALTER TABLE ADD COLUMN and to be understand on the RHS of range constraints interpreted by STAT3/4. This involves a rewrite of the implementation of the CAST operator. (check-in: [91d8a8d0] user: drh branch: trunk, size: 149321)
2014-08-06
00:29
[f749009c] part of check-in [0ad1ed8e] A simpler fix for ticket [3a88d85f36704eebe1] - one that uses less code. The error message is not quite as good, but as this error has apparently not previously occurred in over 8 years of heavy use, that is not seen as a serious problem. (check-in: [0ad1ed8e] user: drh branch: trunk, size: 149933)
2014-08-05
21:31
[94d26c8e] part of check-in [29ba8128] Ensure that aggregate functions are not used when evaluating a default value for a table column. Candidate fix for ticket [3a88d85f36704eebe134f7]. (check-in: [29ba8128] user: drh branch: trunk, size: 150073)
00:53
[ef474fc0] part of check-in [01f60027] Improved VdbeCoverage() macros. A few minor simplifications to generated VDBE code. (check-in: [01f60027] user: drh branch: IN-operator-improvements, size: 149915)
2014-08-04
18:50
[8ac2d0e8] part of check-in [7fdf26da] Further enhancements to IN-operator processing. (check-in: [7fdf26da] user: drh branch: IN-operator-improvements, size: 149839)
16:39
[8f5e7636] part of check-in [92ba2821] Refinements to the enhanced IN-operator logic. (check-in: [92ba2821] user: drh branch: IN-operator-improvements, size: 149649)
15:12
[850a67c0] part of check-in [2f724cba] Changed my mind: This opcode name changes mere creates unnecessary diff marks between older and newer versions without significantly improving readability. Was: Rename the IsNull opcode to IfNull and rename the NotNull opcode to IfNotNull. (check-in: [2f724cba] user: drh branch: deadend, size: 146357)
2014-08-02
21:03
[89574df1] part of check-in [436e8842] Enhancements to the code generator for the IN operator that result in much faster queries in some cases, for example when the RHS of the IN operator changes for each row of a large table scan. (check-in: [436e8842] user: drh branch: IN-operator-improvements, size: 149671)
2014-08-01
21:12
[564c28f4] part of check-in [9bc1c730] A better comment on the generated code for the NULL-in-RHS-of-IN detection logic. (check-in: [9bc1c730] user: drh branch: trunk, size: 146345)
21:00
[ac35f4c8] part of check-in [468e7300] Improved detection and handling of NULL values on the RHS of a IN operator. (check-in: [468e7300] user: drh branch: trunk, size: 146325)
18:00
[45da7f2d] part of check-in [c11e55fa] Remove an unnecessary OP_Null in the IN-operator logic. Attempt to clarify comments explaining the IN-operator code, though it is not clear that the comments are correct even yet - more work to be done. (check-in: [c11e55fa] user: drh branch: trunk, size: 146927)
15:34
[1f7fa7dd] part of check-in [e13175d3] The idea of coding IN operator with a short list on the RHS as an OR expression turns out to be helpful. If the list is of length 1 or 2, the OR expression is very slightly faster, but the ephemeral table approach is clearly better for all list lengths greater than 2. Better to keep the code simple. (check-in: [e13175d3] user: drh branch: IN-operator-improvements, size: 146754)
14:46
[7c52ea8b] part of check-in [ee0fd6aa] Begin making changes to the IN operator in an attempt to make it run faster and to make the code easier to understand. (check-in: [ee0fd6aa] user: drh branch: IN-operator-improvements, size: 147246)
2014-07-31
22:59
[3be0e9f9] part of check-in [e75b26ee] Refactoring: Change "pIndex->onError!=OE_None" to use a macro: "IsUniqueIndex(pIndex)". Easier to understand that way. (check-in: [e75b26ee] user: drh branch: trunk, size: 146627)
20:16
[0e2a6c1c] part of check-in [1361450a] Omit a pointless OP_Null when processing a value-list RHS of an IN operator where the LHS is a rowid. (check-in: [1361450a] user: drh branch: trunk, size: 146630)
15:44
[77ca517a] part of check-in [f4cb5365] Deactivate the DISTINCT in a SELECT on the right-hand side of an IN operator, since it should not make any difference in the output but dues consume extra memory and CPU time. (check-in: [f4cb5365] user: drh branch: trunk, size: 146616)
2014-07-23
14:52
[b989d07f] part of check-in [a5b383e0] Remove a surplus function prototype. #ifdef code that is not used when hex integers are omitted at compile time. (check-in: [a5b383e0] user: drh branch: hex-literal, size: 146504)
13:40
[b1ffac76] part of check-in [6c6f0de5] Change the hex literal processing so that only the SQL parser understands hex literals. Casting and coercing string literals into numeric values does not understand hexadecimal integers. This preserves backwards compatibility. Also: Throw an error on any hex literal that is too big to fit into 64 bits. (check-in: [6c6f0de5] user: drh branch: hex-literal, size: 146458)
2014-06-26
21:28
[40d06d15] part of check-in [92f7ad43] Revise the affinity returned for expressions flagged as 'generic'. Fix for [9a8b09f8e6]. (check-in: [92f7ad43] user: mistachkin branch: trunk, size: 146355)
2014-05-19
15:16
[2a68a4ab] part of check-in [17349a49] Changes to help ensure that a multiplication does not overflow when computing the number of bytes needed for a memory allocation, and cause a malfunction. No problems existing problems were discovered. However, these changes should help to ensure that no problems arise in the future. (check-in: [17349a49] user: drh branch: safer-malloc, size: 146394)
2014-05-06
15:28
[78326e5d] part of check-in [8ad0a123] Experimental changes that reduce the size of Expr objects from 72 to 64 bytes each on x64 and from 48 to 44 bytes each on x32. (check-in: [8ad0a123] user: drh branch: smaller-expr, size: 147488)
2014-04-13
19:28
[4f9e497c] part of check-in [ab23abf3] Remove the unused second argument from sqlite3ExprCachePop(). Add an ALWAYS() on an always-true conditional in sqlite3VdbeResolveLabel(). (check-in: [ab23abf3] user: drh branch: trunk, size: 146369)
2014-03-24
12:33
[671a2a43] part of check-in [0b95b7a8] Cancel column-cache entries that are involved in a comparison operator since the comparison might have forced an affinity change. Originally proposed as a fix for ticket [a8a0d2996a], but later determined to be incorrect. (check-in: [0b95b7a8] user: drh branch: tkt-a8a0d2996a, size: 146533)
2014-03-20
20:56
[da2b3cb4] part of check-in [eca35871] Merge trunk fixes for "x IN (?)" handling. (check-in: [eca35871] user: drh branch: orderby-planning, size: 146396)
19:04
[6e1e8bca] part of check-in [d5a1530b] Remove a testcase() that is now always true due to the "x IN (?)" optimization. Add an ALWAYS() around a conditional in the parser that cannot be false. (check-in: [d5a1530b] user: drh branch: trunk, size: 146451)
17:03
[16ea9cef] part of check-in [2ea4a9f7] The "x IN (?)" optimization in check-ins [2ff3b25f40] and [e68b427afb] is incorrect, as demonstrated by the in4-5.1 test case in this check-in. The "COLLATE binary" that was being added to the RHS of IN was overriding the implicit collating sequence of the LHS. This change defines the EP_Generic expression node property that blocks all affinity or collating sequence information in the expression subtree and adds that property to the expression taken from RHS of the IN operator. (check-in: [2ea4a9f7] user: drh branch: trunk, size: 146491)
15:14
[b74939e7] part of check-in [b1435f26] Fix harmless compiler warnings. (check-in: [b1435f26] user: drh branch: trunk, size: 146394)
2014-03-19
14:10
[e33fa25d] part of check-in [59742dd4] First attempt at getting block-sort to work. This is an incremental check-in. There are many problems still to be worked out. (check-in: [59742dd4] user: drh branch: orderby-planning, size: 146196)
2014-02-26
19:05
[0b84f62d] part of check-in [3ad687b7] Only run the OP_OpenRead opcodes for a correlated subquery once, on the initial iteration. Keep the cursor open for subsequent runs. This was suppose to be a performance enhancement, but it is difficult to come up with a query where is makes a significant difference. Hence, the change is getting parked in a branch. (check-in: [3ad687b7] user: drh branch: open-only-once, size: 146293)
2014-02-18
03:07
[014b8087] part of check-in [b92d31a9] Add VdbeCoverage() and VdbeCoverageIf() macros for improved VDBE coverage testing. (check-in: [b92d31a9] user: drh branch: trunk, size: 146251)
01:07
[e908787e] part of check-in [915f6f1c] Improvements to "NOT IN (SELECT ...)" processing. Only test for NULL values on the RHS on the first iteration, then remember the result. There has been logic to do this for year, but it didn't work right and ended up repeating the NULL test on every iteration. This inefficiency was found using the VDBE coverage testing tools. (check-in: [915f6f1c] user: drh branch: trunk, size: 146184)
2014-02-17
22:40
[d1a8ccbf] part of check-in [ce184c7b] Add logic to do test coverage measurements on the VDBE code. (check-in: [ce184c7b] user: drh branch: insert-optimization, size: 146275)
2014-02-16
01:55
[90bba0ca] part of check-in [aa2d8b0e] Enhance the code generator for INSERT INTO ... SELECT so that the SELECT generates output directly in the registers that INSERT INTO will be using, in many cases, and OP_SCopy operations can thus be avoided. (check-in: [aa2d8b0e] user: drh branch: insert-optimization, size: 145683)
2014-02-09
18:02
[9bea427f] part of check-in [67bfd59d] Use the WITH clause to help resolve names for SELECT statements on the left of a compound query. Proposed fix for ticket [31a19d11b97088296a]. (check-in: [67bfd59d] user: drh branch: trunk, size: 145722)
2014-02-06
23:56
[fabda9e9] part of check-in [2f3376eb] Delete the OP_VerifySchema opcode. Enhance OP_Transaction to do the schema version checks that OP_VerifySchema used to do. (check-in: [2f3376eb] user: drh branch: trunk, size: 145746)
03:31
[fa9cd9b4] part of check-in [715fac77] Use OpenHash instead of OpenEphemeral for the RHS of IN operators if the result is not needed for sorting. (check-in: [715fac77] user: drh branch: subquery-codegen-refactor, size: 145181)
2014-02-05
19:10
[9bc9ed4f] part of check-in [61c34ba7] Separate out the code generators for the RHS of an IN operator and for SELECT/EXISTS expressions. (check-in: [61c34ba7] user: drh branch: subquery-codegen-refactor, size: 144887)
2014-02-04
23:45
[2c710c35] part of check-in [f2504089] Do not mark the ephemeral tables used to hold the RHS of IN clauses as unordered because the NGQP will use those ephemeral tables to help order the output. This is not an issue for standard SQLite since ephemeral tables there are always ordered, regardless of the hint. It only affects systems that substitute an alternative storage engine. (check-in: [f2504089] user: drh branch: trunk, size: 145747)
2014-01-29
01:46
[e3e09af9] part of check-in [5bb29b82] Make sure that sqlite3SelectDup() initializes the nSelectRow of the duplicate Select object. (check-in: [5bb29b82] user: drh branch: trunk, size: 145816)
2014-01-24
22:58
[96f00a26] part of check-in [87bf6063] Fixes for various clang warnings. (check-in: [87bf6063] user: drh branch: trunk, size: 145780)
2014-01-22
18:31
[61f91058] part of check-in [dea2ca6a] Fix harmless compiler warnings. (check-in: [dea2ca6a] user: drh branch: trunk, size: 145745)
2014-01-21
00:19
[1c954bc7] part of check-in [cc1cb321] Add support for the LEVEL pseudo-column in the recursive part of a common table expression. LEVEL has the value of 1 on the first iteration and successively larger integer values of subsequent iterations. It cannot have a table qualifier. Actual columns named "level" can still be accessed by including the table name qualifier. (check-in: [cc1cb321] user: drh branch: level-pseudocolumn, size: 145919)
2014-01-18
15:22
[8c7e482b] part of check-in [2ad4583c] Add asserts() for a couple of unreachable conditions. Add the Mandelbrot Set query as a test case. (check-in: [2ad4583c] user: drh branch: trunk, size: 145790)
2014-01-16
18:34
[e239763d] part of check-in [a296b733] Allow only a single recursive reference in a recursive CTE. Also require that this reference is not part of a sub-query. (check-in: [a296b733] user: dan branch: common-table-expr, size: 145782)
10:58
[c09e34fa] part of check-in [6bfa387e] Disable the flattening optimization if the parent query is the recursive part of a recursive CTE and the sub-query is a compound query. (check-in: [6bfa387e] user: dan branch: common-table-expr, size: 145814)
2014-01-15
19:42
[36c31304] part of check-in [3908e2ea] Fixes so that SQLITE_OMIT_CTE builds work. (check-in: [3908e2ea] user: dan branch: common-table-expr, size: 145832)
18:12
[fccff6c8] part of check-in [61be2da0] When resolving names, consider a reference to a recursive CTE column as equivalent to a reference to the outermost name-context. This ensures that correlated sub-queries are correctly identified as such. (check-in: [61be2da0] user: dan branch: common-table-expr, size: 145771)
14:40
[46ad3b41] part of check-in [860aa936] Don't try to verify the schema of transient table (such as generated inside a WITH clause) when generating code for "IN table" operators. (check-in: [860aa936] user: drh branch: common-table-expr, size: 145720)
14:17
[2277282d] part of check-in [9472f6d8] Disable the flattening optimization if the sub-query is a recursive CTE. (check-in: [9472f6d8] user: dan branch: common-table-expr, size: 145683)
2014-01-14
20:14
[fee4b54f] part of check-in [a5c2a54a] Add code to handle recursive CTEs. (check-in: [a5c2a54a] user: dan branch: common-table-expr, size: 145479)
2014-01-13
15:12
[de86bf98] part of check-in [a26f399b] Add code to handle non-recursive CTEs in the same way as SQL views. (check-in: [a26f399b] user: dan branch: common-table-expr, size: 145447)
2014-01-04
20:00
[4115ad67] part of check-in [f461e2b3] Fix an typo that breaks the build when SQLITE_ENABLE_TREE_EXPLAIN is defined. (check-in: [f461e2b3] user: drh branch: trunk, size: 144911)
15:17
[15a86b76] part of check-in [4e725f53] Improvements to the column-cache for nested AND/OR operators. (check-in: [4e725f53] user: drh branch: trunk, size: 144914)
2014-01-02
17:57
[ca095938] part of check-in [b7e39851] Be more aggressive in optimizing constant conditional expressions. (check-in: [b7e39851] user: drh branch: trunk, size: 144763)
2013-12-20
15:59
[ffe4bc79] part of check-in [2ae22dc0] Combine adjacent single-register OP_Copy instructions into a single multi-register OP_Copy, where possible. Fix the Synopsis comment for multi-register OP_Copy instructions to show the correct register ranges. (check-in: [2ae22dc0] user: drh branch: trunk, size: 144142)
2013-12-18
15:11
[962c2988] part of check-in [4c6a659c] Show changes to the column cache when PRAGMA vdbe_addoptrace=ON is set. (check-in: [4c6a659c] user: drh branch: column-cache-debug, size: 143877)
2013-12-07
23:35
[cdfc50b6] part of check-in [bfefc575] Do not allow cursor hints to use expressions containing subqueries. This change fixes the problem seen in the previous check-in. (check-in: [bfefc575] user: drh branch: cursor-hints, size: 143919)
2013-11-21
21:23
[31a2b653] part of check-in [487f2036] Do not reuse factored constants that might have had their encodings changed. (check-in: [487f2036] user: drh branch: trunk, size: 143513)
20:48
[afc039ec] part of check-in [88262266] Fix the code generator to honor turning off constant expression factoring. (check-in: [88262266] user: drh branch: trunk, size: 143149)
16:08
[3c629b4b] part of check-in [50d350ab] When one or more arguments to a function are constants, try to factor out just those arguments into initialization code. (check-in: [50d350ab] user: drh branch: trunk, size: 143190)
14:44
[98800f5a] part of check-in [9b4217f0] Remove the obsolete TK_CONST_FUNC token type. (check-in: [9b4217f0] user: drh branch: trunk, size: 142215)
14:33
[c3a87def] part of check-in [1b0f779e] Add the ability to factor constant functions out of inner loops. But do not factor out non-constant functions, like random(). (check-in: [1b0f779e] user: drh branch: trunk, size: 142335)
2013-11-20
02:53
[d81090a3] part of check-in [5562cd34] Simplifications to the VdbeCursor object. (check-in: [5562cd34] user: drh branch: trunk, size: 142231)
2013-11-15
20:06
[1a295d8b] part of check-in [cee835fe] Add ALWAYS and NEVER macros to currently unreachable but important branches in sqlite3ExprCompare(). (check-in: [cee835fe] user: drh branch: expr-codegen-enhancement, size: 142220)
18:15
[016e9dcc] part of check-in [d10fb49a] Changes to make the new constant expression factoring logic more general and more testable. (check-in: [d10fb49a] user: drh branch: expr-codegen-enhancement, size: 142197)
15:52
[eb7eb7fa] part of check-in [835be656] Improvements to the Expr comparison routine to make it more general. Improvements to unary-minus code generation so that it can make use of a global constant register with a zero value. (check-in: [835be656] user: drh branch: expr-codegen-enhancement, size: 142426)
01:10
[b54ac7b5] part of check-in [8dc5c76c] Rework the logic that factors constant expressions out of inner loops, making it both simpler and faster. (check-in: [8dc5c76c] user: drh branch: expr-codegen-enhancement, size: 142330)
2013-11-06
19:59
[e7bbe3c6] part of check-in [defd5205] Reference count the KeyInfo object. Cache a copy of an appropriate KeyInfo for each index in the Index object, and reuse that one copy as much as possible. (check-in: [defd5205] user: drh branch: omit-rowid, size: 145969)
2013-11-05
13:33
[b77efad2] part of check-in [54b22192] Standardize the error messages generated by constraint failures to a format of "$TYPE constraint failed: $DETAIL". This involves many changes to the expected output of test cases. (check-in: [54b22192] user: drh branch: omit-rowid, size: 145983)
2013-10-31
20:34
[ecc2b98e] part of check-in [9b6d9e10] Fix the Synopsis on OP_Concat. Added test_addop_breakpoint() during SQLITE_DEBUG. Enhanced sqlite3VdbeChangeToNoop() to omit the instruction if it is the most recent added. Continue to fix problems with UPDATE and WITHOUT ROWID. (check-in: [9b6d9e10] user: drh branch: omit-rowid, size: 145980)
17:38
[179b164b] part of check-in [cff1f55c] Fix issues with quering from an auxiliary index that must refer back to the PRIMARY KEY index of a WITHOUT ROWID table. (check-in: [cff1f55c] user: drh branch: omit-rowid, size: 145952)
2013-10-23
13:30
[3180b633] part of check-in [b21d831b] Some inserts and queries working for multi-column primary keys and WITHOUT ROWID. (check-in: [b21d831b] user: drh branch: omit-rowid, size: 145836)
2013-10-22
18:01
[040c0d34] part of check-in [a106ce86] The Index object now has nKeyCol and nColumn. nColumn is the total number 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. (check-in: [a106ce86] user: drh branch: omit-rowid, size: 145833)
2013-10-21
23:55
[fd2060b7] part of check-in [4e69dd5f] Minor refactoring of the PRIMARY KEY parsing logic to facilitate enhancements. (check-in: [4e69dd5f] user: drh branch: omit-rowid, size: 147479)
2013-10-04
15:30
[e7338ccf] part of check-in [07462bb6] Improved estimates of the relative speed of index scans based on declared datatypes of columns in the table. Add "r" column to PRAGMA index_info, showing the estimated relative scan rate. (check-in: [07462bb6] user: drh branch: index-scan-rate, size: 145828)
2013-09-13
18:15
[1017f482] part of check-in [86ad358b] Remove one unreachable branch and add asserts() to dupedExprStructSize(). New asserts verify that removed branch is unused and that constants that are ORed together in the output do not overlap. (check-in: [86ad358b] user: drh branch: trunk, size: 145819)
2013-09-12
23:42
[58ffffbb] part of check-in [695aee46] Refactor the ExprSetIrreducible() macro into ExprSetVVAProperty(*,EP_NoReduce). This is a naming change only. The logic is the same. (check-in: [695aee46] user: drh branch: unlikely-func, size: 145716)
17:29
[3104c016] part of check-in [4c84d1b4] Merge in the Expr.flags expansion to 32-bits. Use an extra bit to help optimize the sqlite3ExprSkipCollate() routine. (check-in: [4c84d1b4] user: drh branch: unlikely-func, size: 145677)
16:50
[7f93e51f] part of check-in [579a5125] Increase the number of bits available in Expr.flags. Other tweaks aimed at making expression processing more robust. (check-in: [579a5125] user: drh branch: expr-tuning, size: 145029)
2013-09-06
15:23
[d0ed048b] part of check-in [036fc37a] Initial implementation of the unlikely() SQL function used as a hint to the query planner. (check-in: [036fc37a] user: drh branch: unlikely-func, size: 145501)
13:10
[33ae4481] part of check-in [97b10e66] Combine the FuncDef.iPrefEnc and FuncDef.flags fields into a single new FuncDef.funcFlags field. (check-in: [97b10e66] user: drh branch: trunk, size: 144999)
2013-08-28
01:54
[4d89bd03] part of check-in [8917e9f9] Fix several harmless compiler warnings. Fix a couple compiler issues with the shell. (check-in: [8917e9f9] user: mistachkin branch: mmapDisabled, size: 144907)
2013-08-21
12:04
[6bab61c7] part of check-in [781592f3] Candidate fix for [d666d600a6]. (check-in: [781592f3] user: dan branch: trunk, size: 144903)
2013-08-19
18:17
[42d8235a] part of check-in [1c63e951] Add some extra assert() statements to silence a few clang warnings. (check-in: [1c63e951] user: dan branch: trunk, size: 144889)
2013-08-06
17:24
[0bbb4446] part of check-in [d43dcbc4] Add a testcase() macro to verify OOM coverage. (check-in: [d43dcbc4] user: drh branch: trunk, size: 144855)
16:56
[cd4fb5ac] part of check-in [9103c27c] Remove unreachable branches in expr.c, replacing them with assert() and testcase() statements. (check-in: [9103c27c] user: drh branch: trunk, size: 144771)
2013-08-05
19:11
[7e55edef] part of check-in [7301bedd] Factor all KeyInfo object allocations into a single function: sqlite3KeyInfoAlloc(). Always allocate enough space so that sqlite3VdbeRecordCompare() can avoid checking boundaries and hence run faster. (check-in: [7301bedd] user: drh branch: trunk, size: 144668)
2013-08-02
20:11
[2068a7c1] part of check-in [c5c0a8ab] Add NEVER() and ALWAYS() macros on some unreachable yet prudent branches. (check-in: [c5c0a8ab] user: drh branch: trunk, size: 144728)
2013-08-01
15:09
[b873f605] part of check-in [0c8cfdfa] More test cases and corresponding bug fixes. (check-in: [0c8cfdfa] user: drh branch: partial-indices, size: 144721)
13:04
[27a451dc] part of check-in [8e07aa2a] Fill out an initial implementation of the sqlite3ExprImpliesExpr() function. (check-in: [8e07aa2a] user: drh branch: partial-indices, size: 144495)
01:14
[299f1de3] part of check-in [fb9044d1] Add the logic to keep partial indices up to date through DML statements and when new partial indices are created. This new logic is untested except to verify that it does not interfere with full indices. (check-in: [fb9044d1] user: drh branch: partial-indices, size: 143515)
2013-07-31
23:22
[8a5e78f4] part of check-in [8ca3eac1] Add logic to the query planner to only use partial indices if the WHERE clause 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. (check-in: [8ca3eac1] user: drh branch: partial-indices, size: 143381)
2013-06-26
00:34
[2b47ae9d] part of check-in [19ab4811] Fix an uninitialized variable detected by valgrind. Unclear whether or not this should apply to trunk. (check-in: [19ab4811] user: drh branch: nextgen-query-plan-exp, size: 142573)
2013-06-18
20:06
[3286e703] part of check-in [4fbb0c4d] Adjustments to testcase() macros for improved testability. (check-in: [4fbb0c4d] user: drh branch: nextgen-query-plan-exp, size: 142527)
2013-06-11
13:30
[9cc9e4c8] part of check-in [f1cac24f] Fix the Parse.nQueryLoop state variable to work with NGQP. (check-in: [f1cac24f] user: drh branch: nextgen-query-plan-exp, size: 142527)
2013-05-28
12:11
[ac9d259e] part of check-in [a0d5cc93] Many small harmless comment changes. Removal of obsolete comments and fixing misspelled words. No changes to code. (check-in: [a0d5cc93] user: drh branch: trunk, size: 142546)
2013-05-15
17:47
[e40d198a] part of check-in [867b3e3b] The sqlite3ExprCollSeq() function can no longer be called while parse the schema, so remove the code path inside of sqlite3ExprCollSeq() that dealt with that case. (check-in: [867b3e3b] user: drh branch: trunk, size: 142546)
2013-04-25
00:57
[437c03d5] part of check-in [39b4e6ff] Make sure the affinity and datatype of sub-subqueries are initialized prior to subqueries as the latter relies on the former. (check-in: [39b4e6ff] user: drh branch: trunk, size: 142726)
2013-03-21
21:20
[48048fca] part of check-in [6f6e2d50] Many spelling fixes in comments. No changes to code. (check-in: [6f6e2d50] user: mistachkin branch: trunk, size: 142695)
2013-03-12
20:38
[d488bb60] part of check-in [62316eba] Fix the ORDER BY optimization with IN constraints when the RHS of the IN constraint is a descending index. (check-in: [62316eba] user: drh branch: desc-orderby-fix-1, size: 142695)
2013-03-01
01:07
[a23b4aac] part of check-in [d7343558] Always use strncmp() rather than memcmp() when comparing strings where one 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. (check-in: [d7343558] user: drh branch: trunk, size: 142510)
2013-02-09
15:37
[f6c20285] part of check-in [3f674375] Rename SQLITE_CONSTRAINT_RAISE to SQLITE_CONSTRAINT_TRIGGER. Put the extended constraint error codes in alphabetical order. Add many test cases for the extended constraint error codes. (check-in: [3f674375] user: drh branch: constraint-error-codes, size: 142514)
13:58
[44714c8f] part of check-in [54611046] Add extended error codes for constraint errors. (check-in: [54611046] user: drh branch: constraint-error-codes, size: 142512)
2013-01-03
00:45
[4dff0b04] part of check-in [4cf5ed7e] Now supports result sets of the form "TABLE.*" with nested FROM clauses. (check-in: [4cf5ed7e] user: drh branch: name-resolution-fix, size: 142457)
2012-12-08
21:36
[0e41d66d] part of check-in [cdbfa664] Adjustments to the collating-sequence refactoring to facilitate full-coverage testing and to fix some minor issues found by TH3. (check-in: [cdbfa664] user: drh branch: ticket-71e333e7, size: 142245)
03:34
[f4c7d204] part of check-in [7b96115e] Veryquick passes all tests now. (check-in: [7b96115e] user: drh branch: ticket-71e333e7, size: 142120)
00:52
[7b3659c3] part of check-in [f66c1db2] Recognize TK_COLLATE operators that have been transformed into TK_REGISTER. Skip both TK_COLLATE and TK_AS operators when looking for the top of an expression. (check-in: [f66c1db2] user: drh branch: ticket-71e333e7, size: 142073)
2012-12-07
22:54
[6b50dcc8] part of check-in [e313edca] Do not report missing collating functions while parsing the schema. Also remove a stray comment. (check-in: [e313edca] user: drh branch: ticket-71e333e7, size: 141967)
20:31
[9102d69c] part of check-in [f9fa7581] Many more tests are passing. Only about 100 failures remain in veryquick. (check-in: [f9fa7581] user: drh branch: ticket-71e333e7, size: 141787)
18:38
[92d9ab5a] part of check-in [972443b4] Some errors in veryquick resolved. Many more to go. (check-in: [972443b4] user: drh branch: ticket-71e333e7, size: 141630)
14:02
[f4bb756c] part of check-in [7fafab12] Veryquick now runs to completion without segfaulting or asserting. But there are still lots of errors. (check-in: [7fafab12] user: drh branch: ticket-71e333e7, size: 141026)
2012-12-06
21:16
[696c9e66] part of check-in [fd011cb2] Remove the Expr.pColl field and compute the collating sequence as it is needed. This fixes the test script "shared9.test", though there is still a memory leak. And there are other problems. Consider this a work-in-progress. (check-in: [fd011cb2] user: drh branch: ticket-71e333e7, size: 141107)
20:19
[96d029a9] part of check-in [0d7b5d45] Cherrypick [557c69055a3] and [0064bab7714] (OP_Once-related fixes for triggers). (check-in: [0d7b5d45] user: dan branch: branch-3.7.9, size: 128496)
2012-11-02
18:48
[3b25a95f] part of check-in [18ae030d] Proposed fix for ticket [bfbf38e5e9]. (check-in: [18ae030d] user: drh branch: ticket-bfbf38e5e9, size: 141155)
18:24
[eec289bc] part of check-in [10cc12b1] Fix an out-of-date comment. No changes to code. (check-in: [10cc12b1] user: drh branch: trunk, size: 141111)
2012-10-30
00:29
[152ba793] part of check-in [7af3acbb] Add an optimization that attempts to run a subquery as a coroutine rather than manifesting it into a temporary table. (check-in: [7af3acbb] user: drh branch: subquery-as-coroutine, size: 141090)
2012-10-26
13:34
[763fce59] part of check-in [325364a9] Backport the shared-cache-fix branch. (check-in: [325364a9] user: drh branch: branch-3.7.14, size: 140818)
2012-10-05
18:35
[92a2d019] part of check-in [ac81ae49] Backport fixes to shared-cache mode, from the shared-cache-fix branch, to version 3.7.9 (check-in: [ac81ae49] user: drh branch: branch-3.7.9, size: 128258)
2012-10-04
19:33
[57fb8e7a] part of check-in [2b370dea] Shared-cache mode fixes for views and virtual tables. (check-in: [2b370dea] user: dan branch: shared-cache-fix, size: 141037)
2012-09-27
15:05
[4de967b8] part of check-in [d2fcba1e] Add more bits to the bit vector that is used to disable optimizations for built-in test. Add specific bit patterns to disable ORDER BY using an index in general and for joins. Use macros to test for bits in the disabled-optimization bit vector, in order to make the code clearer. (check-in: [d2fcba1e] user: drh branch: qp-enhancements, size: 140994)
2012-09-21
00:04
[4d1cef0f] part of check-in [79e922f7] Consolidate more of the DISTINCT processing logic into a single spot in the code. Reduce the number of OP_Column operations needed to perform a WHERE_DISTINCT_ORDERED. (check-in: [79e922f7] user: drh branch: trunk, size: 140971)
2012-09-18
19:29
[bfed2f8a] part of check-in [5ded9b68] Enhance IN processing to allow efficient use of indices with numeric affinities. Add test cases for IN processing that would have spotted the error in the [2be661a48023f4] check-in. (check-in: [5ded9b68] user: drh branch: trunk, size: 141267)
17:08
[f0fc0101] part of check-in [b1a4c394] Enhancements to the comments on sqlite3FindInIndex(). No code changes. (check-in: [b1a4c394] user: drh branch: trunk, size: 141309)
2012-09-17
17:16
[70ded09d] part of check-in [45793f0b] Make sure the KeyInfo.aSortOrder array is always allocated so that we never have to test for KeyInfo.aSortOrder==0 in performance-critical loops. (check-in: [45793f0b] user: drh branch: trunk, size: 140923)
2012-08-24
01:07
[217840a1] part of check-in [d4cd6017] Merge the nested aggregate query enhancements into trunk. (check-in: [d4cd6017] user: drh branch: trunk, size: 140775)
2012-08-23
19:46
[94bac8cc] part of check-in [00b1dc71] Add test cases and fix bugs associated with the previous check-in enhancements to nested aggregate subquery processing. (check-in: [00b1dc71] user: drh branch: nested-agg, size: 140439)
16:18
[e03a5509] part of check-in [3c3ffa90] Further improvements to the processing of nested aggregate queries. (check-in: [3c3ffa90] user: drh branch: nested-agg, size: 141024)
2012-07-23
21:43
[e2927abf] part of check-in [b589f1ef] Refactor field names in the SelectDest object to make them distinct and easier to grep for. (check-in: [b589f1ef] user: drh branch: trunk, size: 139904)
2012-05-21
21:20
[06a7733d] part of check-in [bdc01fd0] Mark and always-true conditional as such. Add the fuzz-oss1.test test module. (check-in: [bdc01fd0] user: drh branch: nested-agg, size: 139899)
20:13
[e2d55b41] part of check-in [f3dd1faf] Candidate fix for the nested aggregate query problem of ticket [c2ad16f997ee9c8e]. (check-in: [f3dd1faf] user: drh branch: nested-agg, size: 139892)
2012-04-19
15:49
[eefabaa4] part of check-in [2d435620] Fix harmless compiler warnings (unused parameter warnings) in the aggregate query analyzer. (check-in: [2d435620] user: drh branch: trunk, size: 139845)
2012-04-17
16:38
[1b2383ad] part of check-in [430bb59d] Improved handling of aggregate subqueries within an aggregate query. (check-in: [430bb59d] user: drh branch: trunk, size: 139787)
2012-03-31
02:34
[ebb0e2b2] part of check-in [f9a7e179] Do more aggressive optimization of the AND operator where one side or the other is always false. (check-in: [f9a7e179] user: drh branch: trunk, size: 138873)
2012-03-30
00:00
[7e40ea9f] part of check-in [b451c0f9] Fix compiler warnings on GCC and MSVC and fix a C89-ism that broke the build for MSVC. (check-in: [b451c0f9] user: drh branch: trunk, size: 137633)
2012-03-28
02:43
[1c351f38] part of check-in [bc18215a] Fix the typeof() and length() optimization so that it works for aggregates as well as scalar queries. (check-in: [bc18215a] user: drh branch: faster-typeof-and-length, size: 137617)
01:34
[86711d20] part of check-in [b899dbeb] Evaluate typeof(X) and length(Y) where X is any column and Y is a blob column without actually loading X and Y from disk. (check-in: [b899dbeb] user: drh branch: faster-typeof-and-length, size: 137560)
2012-02-02
03:38
[00675123] part of check-in [25df2a74] Simplified array allocation in the IdList and AggInfo objects. (check-in: [25df2a74] user: drh branch: trunk, size: 136998)
01:58
[d644aac3] part of check-in [5963de30] Remove the nAlloc field from the ExprList object. (check-in: [5963de30] user: drh branch: trunk, size: 136897)
2011-12-10
23:18
[537591e9] part of check-in [5061d85f] Minor cleanups of the compound-subquery flattening logic. New test cases added for joins the compound subquery. (check-in: [5061d85f] user: drh branch: trunk, size: 136890)
15:55
[a68c194c] part of check-in [bcbc7152] Import the experimental parse-tree explainer, with fixes, from the tree-explain branch. Disabled by default. Use SQLITE_ENABLE_TREE_EXPLAIN to turn it on. (check-in: [bcbc7152] user: drh branch: trunk, size: 136876)
14:44
[d3a969a2] part of check-in [1a360da0] Merge the latest trunk changes into tree-explain branch. (check-in: [1a360da0] user: drh branch: tree-explain, size: 136834)
2011-12-09
16:21
[b5920f10] part of check-in [521d72bd] Make no assumptions about the initial state of VDBE registers. (check-in: [521d72bd] user: drh branch: uninit-vdbe-mem, size: 128695)
13:24
[672c6e5f] part of check-in [557c6905] Modify the OP_Once opcode so that it works correctly in trigger sub-programs. This is a candidate fix for [7bbfb7d442]. (check-in: [557c6905] user: dan branch: trunk, size: 128586)
2011-12-07
15:33
[59a530af] part of check-in [0eb3f8b1] More compact notation for the parse-tree view. (check-in: [0eb3f8b1] user: drh branch: tree-explain, size: 136596)
01:55
[9ac58317] part of check-in [7fc53509] Cherrypick the [7e5b56b1c6] fix for the sqlite3SelectDup() routine into trunk. (check-in: [7fc53509] user: drh branch: trunk, size: 128457)
01:47
[3d800a22] part of check-in [7e5b56b1] Bug fix in sqlite3SelectDup(). Make sure the pNext pointer is valid. (check-in: [7e5b56b1] user: drh branch: tree-explain, size: 136958)
01:23
[62f6ad2a] part of check-in [0aa7d3d2] Improvements to the data-structure explain subsystem. Most queries now give a reasonably detailed graph of their parse tree. (check-in: [0aa7d3d2] user: drh branch: tree-explain, size: 136884)
2011-12-06
19:44
[94217122] part of check-in [79ae51c5] Begin adding the data-structure explaining subsystem. All is contained within (check-in: [79ae51c5] user: drh branch: tree-explain, size: 129637)
13:24
[319db0ad] part of check-in [092d5331] Do not reuse temp registers originally allocated to a subroutine within the main body of the program logic, since if the subroutine is called while the reused temp registers are in use, their values will get clobbered. Candidate fix for ticket [3a77c9714e63330] (check-in: [092d5331] user: drh branch: trunk, size: 128383)
2011-10-25
20:36
[9c8147b9] part of check-in [14bc58ca] Cherrypick changes [53f5cfe115] and [1f7ef0af8d] in order to fix an issue with DISTINCT (check-in: [14bc58ca] user: drh branch: branch-3.7.2, size: 126325)
2011-10-14
21:49
[fbf116f9] part of check-in [60fee957] Add assert() statements and eliminate needless variable assignments in order to get the clang scan-build utility to report zero problems against the SQLite core. Clang's static analysis did find one real problem - but it was in the command-line shell, not in the SQLite core. (check-in: [60fee957] user: drh branch: trunk, size: 128215)
2011-10-13
15:35
[1a7970a0] part of check-in [e43da426] Make sure the query optimizer for aggregate queries knows that expressions (x='a') and (x='A') are different. Ticket [fa7bf5ec94801e7e] (check-in: [e43da426] user: drh branch: trunk, size: 127737)
2011-09-16
22:10
[f4dcaeb8] part of check-in [96be3f7b] Fix a problem with SQLITE_OMIT_TRACE that was introduced by the recent OP_Once change. (check-in: [96be3f7b] user: drh branch: trunk, size: 127745)
01:34
[fd54c517] part of check-in [7f00552b] Add the new OP_Once opcode. Use it to clean up and simplify various one-time initialization sections in the code, including the fix for ticket [002caede898ae]. (check-in: [7f00552b] user: drh branch: tkt-002caede898, size: 127830)
2011-09-15
23:58
[109de1d4] part of check-in [4b8357ee] Materialize subqueries using a subroutine and invoke that subroutine prior to each use of the materialization. Fix for ticket [002caede898aee4] (check-in: [4b8357ee] user: drh branch: tkt-002caede898, size: 127938)
2011-09-02
10:31
[cbcd8c2f] part of check-in [7769fb98] Instead of a temporary b-tree, use a linked-list and merge-sort to sort records in main memory in vdbesort.c. (check-in: [7769fb98] user: dan branch: merge-sort, size: 127891)
2011-07-12
14:48
[c0d7088c] part of check-in [7afb2354] Cherrypick change [9f14fa56ba] (the fix for [54844eea3f]) from the trunk. (check-in: [7afb2354] user: dan branch: branch-3.7.2, size: 128294)
2011-07-08
16:10
[4bbdfaf6] part of check-in [9f14fa56] Fix for [54844eea3f]: Do not create automatic indexes on correlated sub-queries. (check-in: [9f14fa56] user: dan branch: trunk, size: 127887)
2011-06-01
19:16
[ab46ab0f] part of check-in [e704e869] Avoid unnecessary duplication of SQL parameter names. (check-in: [e704e869] user: drh branch: trunk, size: 127834)
18:15
[c33584bc] part of check-in [b3aaf715] Refactor the SQL parameter processing so that parameter names for values that are optimized out of the prepare statement are not forgotten. (check-in: [b3aaf715] user: drh branch: trunk, size: 127701)
2011-04-05
12:25
[e3cf0957] part of check-in [bf664b20] Fix the P4_TRANSIENT constant so that it works correct - so that it really makes a copy of the string for the P4 argument. Use P4_TRANSIENT wherever appropriate. Change P4_STATICs of schema names to P4_TRANSIENT. (check-in: [bf664b20] user: drh branch: trunk, size: 127658)
2011-03-08
02:38
[00817c67] part of check-in [2d5800bd] Fix additional cases of possible signed integer overflow, especially with regard to negation. (check-in: [2d5800bd] user: drh branch: trunk, size: 127647)
2011-03-05
20:59
[66c9383e] part of check-in [abf21394] Fix all known instances of signed-integer overflow. Within SQL expressions, integer overflow now forces coercion to floating point. The shift operators work with any integer right-hand operand with negative values reversing the direction of the shift. (check-in: [abf21394] user: drh branch: trunk, size: 127671)
13:54
[0afd6a93] part of check-in [04abab71] Fix an instance of signed arithmetic overflow and an one bit-shift overflow. Mark six other signed arithmetic overflow locations that need fixing. (check-in: [04abab71] user: drh branch: trunk, size: 127659)
2011-02-17
15:58
[8e2c607b] part of check-in [7af66d1b] Remove a no-op code path from sqlite3ExprIsInteger(). Replace it with an assert() that proves it always does nothing. (check-in: [7af66d1b] user: drh branch: trunk, size: 127647)
2011-02-10
17:46
[400e27db] part of check-in [f01030a0] Prevent a segfault when automatic indices try to use a column with an unknown collating function. Ticket [77aa3b1e6592582e38605d36]. This check-in also removes some stray \r characters unrelated to the problem. (check-in: [f01030a0] user: drh branch: trunk, size: 127503)
2011-02-09
19:55
[9b02a6dc] part of check-in [7cc515ed] Make sure code *compiles* with each OMIT and ENABLE option. Mostly changes to test modules. (check-in: [7cc515ed] user: shaneh branch: trunk, size: 127513)
2010-12-06
21:06
[1810f305] part of check-in [ad8bc681] Add the ability to disable constant factoring using sqlite3_test_control(). Add a TCL interface to this new capability and add tests cases to the TCL test scripts to actually use the new capability. (check-in: [ad8bc681] user: drh branch: trunk, size: 127439)
18:59
[325f49c9] part of check-in [fa9eef86] Back out part of the previous change that was not really necessary in order to fix [80ba201079ea60], and which in fact serves no useful purpose. (check-in: [fa9eef86] user: drh branch: trunk, size: 126755)
18:50
[c5e0aeea] part of check-in [c5c53152] Initialize all constants at the very beginning of a prepared statement. 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]. (check-in: [c5c53152] user: drh branch: trunk, size: 127133)
2010-11-09
14:49
[4b05c740] part of check-in [73c93f5a] Further enhancements and fixes for explain query plan. (check-in: [73c93f5a] user: dan branch: experimental, size: 126658)
2010-10-28
11:31
[ee36af9a] part of check-in [2625eee0] Enforce the MAX_EXPR_DEPTH limit while building expression trees during SQL parsing. (check-in: [2625eee0] user: dan branch: trunk, size: 126330)
2010-10-27
19:23
[4a40b07a] part of check-in [7324c7f2] Add tail recursion to the sqlite3ExprDelete() routine in order to keep down stack space usage for really, really large expressions. Later: The tail recursion is dangerous since the recursion might happen after the expression has been freed. (check-in: [7324c7f2] user: drh branch: mistake, size: 126327)
2010-09-30
16:51
[c5749e45] part of check-in [43fef1ca] Changes to remove sqlite3FitsIn64Bits(). (check-in: [43fef1ca] user: shaneh branch: experimental, size: 126266)
00:50
[05dbb048] part of check-in [14eed3a0] Rework the text to numeric conversion routines so that they work with either UTF8 or UTF16 and do not require a NULL terminator. This allowed text to numeric conversion without reallocating the string. (check-in: [14eed3a0] user: drh branch: experimental, size: 126375)
2010-09-28
07:11
[1caa723c] part of check-in [88b84bf1] Replace some unreachable branch instructions with assert() statements. (check-in: [88b84bf1] user: drh branch: bug-b351d95f9c, size: 126272)
06:00
[05256596] part of check-in [ff49a5f0] Tweaks to help facilitate structural test coverage. (check-in: [ff49a5f0] user: drh branch: bug-b351d95f9c, size: 126295)
04:14
[7b45c50f] part of check-in [57789cfe] Test case and fix for the specific failure of ticket [b351d95f9cd5ef17e9d9dbae]. (check-in: [57789cfe] user: drh branch: bug-b351d95f9c, size: 126279)
00:25
[e211e57c] part of check-in [d0342f4b] Continuing work toward detecting and fixing shallow-copy misuse. (check-in: [d0342f4b] user: drh branch: bug-b351d95f9c, size: 125998)
2010-09-27
18:14
[d2ffe8ed] part of check-in [53f5cfe1] Simplifications to the expression code generator. Remove about 80 lines of older and obsolete code. (check-in: [53f5cfe1] user: drh branch: trunk, size: 125864)
2010-08-30
22:15
[21ad2494] part of check-in [4fead8e7] Provide hints to the btree layer during the creation of transient tables for when it is possible for those tables to use a hash rather than a binary tree. No use is currently made of those hints, though assert() statement verify their accuracy. (check-in: [4fead8e7] user: drh branch: trunk, size: 128241)
2010-08-18
02:28
[9ee507c3] part of check-in [1f5662b7] Fix some compiler warnings in the MSVC build. (check-in: [1f5662b7] user: shaneh branch: trunk, size: 128014)
2010-08-17
23:13
[6bb1f6a7] part of check-in [220cca50] Cherrypick the changes for enhancement requests [e090183531fc27474] (use indices on LIKE with no wildcards) and [4711020446da7d93d993] (use nocase index for LIKE even if the column is binary) into the 3.6.23.1 release of the Apple-OSX branch. (check-in: [220cca50] user: drh branch: apple-osx-3623, size: 126800)
19:34
[9532d71d] part of check-in [fc9014be] Return an error when parsing "?NNN" if NNN is so large it cannot be stored as a 32-bit int. (check-in: [fc9014be] user: dan branch: trunk, size: 128009)
2010-08-04
12:13
[96bda574] part of check-in [3f367fe0] Backport fix [267492d3a7eff7b] for the performance regression caused by automatic indexing and reported by ticket [8011086c85c6c4040]. (check-in: [3f367fe0] user: drh branch: branch-3.7.0, size: 127767)
2010-07-28
02:53
[a0fd9c5e] part of check-in [267492d3] Do not allow automatic indices for the RHS of IN expressions which are not correlated subqueries. Ticket [8011086c85c6c404014c9] (check-in: [267492d3] user: drh branch: trunk, size: 127980)
2010-07-22
17:49
[7490fc3b] part of check-in [9f932655] Enhance the LIKE/GLOB query optimization so that it works as long as there is an index with the appropriate collating sequence and even if the default collating sequence of the column is different. Ticket [4711020446da7d93d99]. (check-in: [9f932655] user: drh branch: trunk, size: 127786)
2010-07-14
20:23
[b2b05342] part of check-in [fd130ae5] The expression list on the RHS of an IN operator can no longer be empty 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. (check-in: [fd130ae5] user: drh branch: trunk, size: 127573)
18:24
[92ff9389] part of check-in [c288ac64] Make the result of an IN or NOT IN expression with an empty set on the right-hand side always either false or true, respectively, even if the left-hand side is NULL. Ticket [80e031a00f45dc] (check-in: [c288ac64] user: drh branch: trunk, size: 127565)
2010-05-14
19:24
[7b1df282] part of check-in [636f8609] Make sure the value of an INTEGER PRIMARY KEY column supplied to triggers and especially to FK constraints really contains the ROWID and not the NULL that is stored in the column itself. Ticket [dd08e5a988d00dec]. (check-in: [636f8609] user: drh branch: trunk, size: 127110)
2010-05-12
13:50
[110e5edd] part of check-in [7838163d] Remove the OP_Variable optimization of check-in [48b77b04935d894] since it can lead to malfunctions as described in ticket [26ff0c82d1e90]. (check-in: [7838163d] user: drh branch: trunk, size: 126629)
2010-04-26
19:17
[286f62b2] part of check-in [ca9d86ba] Optimization: Convert an ORDER BY clause into a no-op if the query also contains a GROUP BY clause that will force the same output order. (check-in: [ca9d86ba] user: drh branch: trunk, size: 127168)
2010-03-05
16:32
[6baed2a0] part of check-in [8858042f] Modify the vdbe so that the comparison operator opcodes do not modify the data type of operands. Fix for [aa92c76cd4]. (check-in: [8858042f] user: dan branch: trunk, size: 126587)
2010-02-25
14:44
[d2046fea] part of check-in [a2550597] Add some technically unnecessary variable initializations to silence compiler warnings. (check-in: [a2550597] user: dan branch: branch-3.6.1, size: 117825)
2010-01-13
04:22
[d0a345e1] part of check-in [dfc6595d] Comment out unused code when SQLITE_OMIT_FLOATING_POINT is selected. Added testcase() macros to boundary conditions in util.c routines. (check-in: [dfc6595d] user: drh branch: trunk, size: 126744)
2010-01-12
17:04
[e6f042e8] part of check-in [66bab856] Use #ifdefs to disable unused code when SQLITE_OMIT_FLOATING_POINT is defined. (check-in: [66bab856] user: drh branch: trunk, size: 126702)
2010-01-07
15:17
[b186cb2a] part of check-in [44bb1bfe] Fix the expression comparison logic to take the COLLATE operator into account. Ticket [360c6073e197] (check-in: [44bb1bfe] user: drh branch: trunk, size: 126405)
2009-12-30
14:12
[d695300b] part of check-in [cc6b959b] Adjustments to column cache handling in order to restore 100% branch test coverage. (check-in: [cc6b959b] user: drh branch: trunk, size: 126138)
01:13
[bdbf8714] part of check-in [1f890efb] Remove some code in the column cache that is no longer used. Replace it with an assert(). (check-in: [1f890efb] user: drh branch: trunk, size: 125991)
00:12
[0fdd547d] part of check-in [84058be0] Remove obsolete comment text from expr.c. No functional code changes. (check-in: [84058be0] user: drh branch: trunk, size: 125662)
2009-12-24
16:00
[6d138c36] part of check-in [ea4e57e1] Immediately purge entries from the column cache when the associated register 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. (check-in: [ea4e57e1] user: drh branch: trunk, size: 125969)
2009-11-23
14:39
[50385ed5] part of check-in [a4380ab3] Change so that deleting an Expr structure requires only one frame per level in the expression tree, not two. (check-in: [a4380ab3] user: dan branch: trunk, size: 126970)
2009-11-19
15:44
[bd248461] part of check-in [598727e6] Remove an unreachable branch from the OP_Affinity suppression logic. (check-in: [598727e6] user: drh branch: trunk, size: 127169)
14:48
[be7f3db3] part of check-in [4bd43307] Fix a bug introduced with recent optimizations: The unary minus operator is TK_UMINUS, not TK_MINUS. (check-in: [4bd43307] user: drh branch: trunk, size: 127114)
2009-11-18
01:25
[ba653daf] part of check-in [bf6c0bd1] Suppress more instances of unnecessary OP_IsNull and OP_Affinity opcodes. (check-in: [bf6c0bd1] user: drh branch: trunk, size: 127112)
2009-11-17
18:31
[cc086099] part of check-in [ebb0c8a3] Code generator tries to avoid pointless OP_IsNull and OP_Affinity opcodes. (check-in: [ebb0c8a3] user: drh branch: trunk, size: 126264)
2009-11-13
10:04
[94f3086a] part of check-in [f0599d28] Changes to test_intarray.c so that it build with SQLITE_OMIT_VIRTUALTABLE. Added testcase() macros to expr.c. (check-in: [f0599d28] user: drh branch: trunk, size: 124396)
2009-11-12
19:59
[33c08bb5] part of check-in [b9eab885] Enhance the OP_Found and OP_NotFound opcodes so that they can accept an 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. (check-in: [b9eab885] user: drh branch: trunk, size: 124297)
17:52
[98925d79] part of check-in [fcff5b7e] Factor out the IN operator code generation into a subroutine. Use this subroutine to implement both logic and branching versions of the IN operator. (check-in: [fcff5b7e] user: drh branch: trunk, size: 124600)
13:32
[64330769] part of check-in [5735f60b] Factor out the code generator for BETWEEN into a subroutine. (check-in: [5735f60b] user: drh branch: trunk, size: 122194)
2009-11-11
00:24
[be605c60] part of check-in [30055b25] Generate VDBE code for the built-in COALESCE() and IFNULL() functions. This allows unused arguments to never be evaluated, which is a performance win when the unused argument is a subquery. (check-in: [30055b25] user: drh branch: trunk, size: 121962)
2009-11-04
13:17
[11c16300] part of check-in [24a4d520] Create a new datatype "ynVar" to hold "nVar" (number of variable) values. This is normally 16-bits can can be 32-bits if SQLITE_MAX_VARIABLE_NUMBER is large enough. (check-in: [24a4d520] user: drh branch: trunk, size: 121198)
2009-11-03
19:42
[501269f7] part of check-in [01c4b5b8] Fix compiler warnings on MSVC build. (check-in: [01c4b5b8] user: shane branch: trunk, size: 121445)
2009-10-30
13:25
[26dc6932] part of check-in [7253f8fa] Avoid storing the result register for EXISTS and SELECT in any field of the Expr object - simply return the register number as the return value of the function that codes those expressions. (check-in: [7253f8fa] user: drh branch: trunk, size: 121173)
2009-10-29
18:38
[6c5775cf] part of check-in [65a1f133] Fix a 16-bit integer overflow that might occur in statements that use both an EXISTS clause and IN operator with a RHS holding in excess of 32K entries. (check-in: [65a1f133] user: drh branch: branch_3_6_16, size: 117143)
13:48
[658002e3] part of check-in [e7984ad2] Reduce the memory required by prepared statements that use the IN operator with a list on the right and an INTEGER PRIMARY KEY on the left. (check-in: [e7984ad2] user: drh branch: trunk, size: 120947)
2009-10-15
18:35
[f14ffa54] part of check-in [9bd6f3d8] Add the experimental sqlite3_reoptimize() API. (check-in: [9bd6f3d8] user: dan branch: experimental, size: 120683)
2009-09-23
14:45
[c7f3f718] part of check-in [e3b73394] Change the version number to 3.6.19. Fix a couple of incorrect testcase() macros associated with the new IS and IS NOT operators in expr.c. (check-in: [e3b73394] user: drh branch: trunk, size: 120648)
02:29
[8a663240] part of check-in [98853f61] Generalize the IS and IS NOT operators so that their right-hand side can be 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. (check-in: [98853f61] user: drh branch: trunk, size: 120634)
2009-09-08
19:15
[638b599a] part of check-in [aec9dbd8] Combine the OP_Statement and OP_Transaction opcodes. (check-in: [aec9dbd8] user: dan branch: trunk, size: 119198)
2009-09-03
01:18
[2605f0f1] part of check-in [f22e3887] Do not reuse function parameters in subsequent expressions since the function call might have triggered a text encoding change. Fix for ticket [2ea2425d34be]. (check-in: [f22e3887] user: drh branch: trunk, size: 119054)
2009-09-01
12:16
[cadf6559] part of check-in [38a9327b] More fixes and comment updates. (check-in: [38a9327b] user: dan branch: trunk, size: 118918)
2009-08-31
15:27
[d95a040f] part of check-in [85d9f23b] More fixes for test cases. (check-in: [85d9f23b] user: dan branch: trunk, size: 117372)
08:22
[ac30c21e] part of check-in [8a746fbf] Fix some authorization callback problems. (check-in: [8a746fbf] user: dan branch: trunk, size: 117182)
2009-08-30
11:42
[09ef2a72] part of check-in [9eb91efd] Fixes for new triggers scheme. (check-in: [9eb91efd] user: dan branch: trunk, size: 117177)
2009-08-28
18:53
[24a8f808] part of check-in [9b9c1921] Changes to support recursive triggers. (check-in: [9b9c1921] user: dan branch: trunk, size: 117111)
2009-08-21
13:22
[adb61b7d] part of check-in [75f596a0] Change the expression code generator to account for the fact that the new sqlite3AtoF() never returns NaN. Also, clarification of a comment in where.c. (check-in: [75f596a0] user: drh branch: trunk, size: 117002)
2009-08-19
17:17
[335d3008] part of check-in [71ea9d0e] Change the way an Expr that has been converted to TK_REGISTER stores its original opcode. The previous method, overloading Expr.iColumn, did not work in all cases. (check-in: [71ea9d0e] user: dan branch: trunk, size: 117029)
14:42
[1dac2115] part of check-in [6c8a0e2b] Merge with 709e16145e. (check-in: [6c8a0e2b] user: dan branch: trunk, size: 117033)
2009-08-18
16:05
[73b67802] part of check-in [093917d7] Unknown functions in the DEFAULT clause of a table cause an error when the DEFAULT value is needed. Ticket [2d401a94287b5]. (check-in: [093917d7] user: drh branch: trunk, size: 117001)
2009-08-17
17:06
[ea04de0b] part of check-in [dd96bda2] First version of sqlite_stat2 (schema forces exactly 10 samples). (check-in: [dd96bda2] user: dan branch: trunk, size: 117007)
2009-07-27
10:05
[d069ba1e] part of check-in [3616766a] When extracting values from a record to use in an UPDATEd version of that record, apply OP_RealAffinity if required. Fix for #3992. (CVS 6945) (check-in: [3616766a] user: danielk1977 branch: trunk, size: 116975)
2009-07-16
12:41
[f6f21604] part of check-in [17c05aef] Remove an unused variable from sqlite3ExprListDup(). Ticket #3973. (CVS 6898) (check-in: [17c05aef] user: drh branch: trunk, size: 117117)
2009-06-19
18:32
[de80e2d6] part of check-in [4bb96db6] Fix the comment on the sqlite3PExpr() subroutine. Ticket #3924. (CVS 6789) (check-in: [4bb96db6] user: drh branch: trunk, size: 117148)
2009-06-01
16:53
[1d580a7b] part of check-in [07915885] Fix compiler warnings with MSVC build. (CVS 6699) (check-in: [07915885] user: shane branch: trunk, size: 117109)
2009-05-30
23:35
[ac7ebc41] part of check-in [164adf26] Fix typo reported by ticket #3888. Other minor edits to facilitate coverage testing. (CVS 6695) (check-in: [164adf26] user: drh branch: trunk, size: 117080)
20:49
[f0b46b99] part of check-in [f760bb7a] Simplifications to the expr.c source module resulting from structural testing. (CVS 6694) (check-in: [f760bb7a] user: drh branch: trunk, size: 116673)
14:16
[0851fab9] part of check-in [00e7250f] Fix for ticket #3887. Other unrelated bits of code cleanup in the expr.c source module. (CVS 6693) (check-in: [00e7250f] user: drh branch: trunk, size: 116429)
2009-05-29
19:00
[b844f5f6] part of check-in [ede06dac] Enhance the sqlite3VdbeGetOp() routine so that it always returns a pointer to VdbeOp, even following an OOM fault. This simplifies error handling in callers. Cleanup to the column cache logic and the expr.c source module. (CVS 6691) (check-in: [ede06dac] user: drh branch: trunk, size: 116470)
14:39
[ba5ba6a6] part of check-in [bd89f2c2] Refinements in expression handling logic that have resulted from recent structural testing. (CVS 6690) (check-in: [bd89f2c2] user: drh branch: trunk, size: 116567)
2009-05-28
21:04
[9d25d722] part of check-in [6ae4ad6e] Remove references to deleted function sqlite3ExprRegister(). Changes to the expr.c source module to promote better testing. (CVS 6686) (check-in: [6ae4ad6e] user: drh branch: trunk, size: 115417)
01:00
[2f8b6e5c] part of check-in [4ac2bdfb] Additional refinements to Expr handling. Restore compression of trigger expressions. Change Expr.zToken to Expr.u.zToken and added Expr.u.iValue. Remove an unnecessary ExprDup from CHECK constraint processing. And so forth. (CVS 6682) (check-in: [4ac2bdfb] user: drh branch: trunk, size: 114915)
2009-05-27
10:31
[cdddb81c] part of check-in [7cb1c3ba] Simplifications to the Expr object: Remove Expr.span completely and convert Expr.token into a char* Expr.zToken. Also simplify the Token object by removing the Token.dyn and Token.quoted fields. (CVS 6681) (check-in: [7cb1c3ba] user: drh branch: trunk, size: 111428)
2009-05-25
12:02
[024b5689] part of check-in [d2fdae8e] Port the fix for ticket #3879 (check-in (6676)) to the 3.6.14 branch. (CVS 6677) (check-in: [d2fdae8e] user: drh branch: branch_3_6_14, size: 112305)
11:46
[af190966] part of check-in [5f358e63] When pinning a temp register after it is reused by the column cache, make sure all instances of that register in the cache are pinned so that the register is never reused for a different purpose. Ticket #3879. (CVS 6676) (check-in: [5f358e63] user: drh branch: trunk, size: 112281)
2009-05-21
20:41
[a6d3c715] part of check-in [309adb5e] Simplifications to expr.c in support of full coverage testing. (CVS 6665) (check-in: [309adb5e] user: drh branch: trunk, size: 111852)
2009-05-11
20:53
[79f1cb93] part of check-in [33cf8359] Rework the logic that generates a schema for tables created using "CREATE TABLE ... AS SELECT ...". Instead of trying to copy the raw datatype string from the right-hand side, just make the type one of TEXT, INT, REAL, NUM, or nothing. This is much simpler than trying to parse and quote datatype strings. Other minor implifications to build.c are bundled with this change. (CVS 6626) (check-in: [33cf8359] user: drh branch: trunk, size: 111893)
2009-05-09
00:18
[d2297420] part of check-in [567ccc68] Changes to the trigger.c module that facilitate full coverage testing. (CVS 6621) (check-in: [567ccc68] user: drh branch: trunk, size: 111905)
2009-05-06
18:57
[8426ef8b] part of check-in [df599237] Changes to silence compiler warnings under MSVC. (CVS 6613) (check-in: [df599237] user: shane branch: trunk, size: 111874)
2009-05-01
21:13
[40b35167] part of check-in [12bcb03d] Record within the Token structure itself whether or not the token has been dequoted. This steals one bit from the length of a token and thus limits the size of tokens to 1GiB. (CVS 6589) (check-in: [12bcb03d] user: drh branch: trunk, size: 111834)
2009-04-28
12:08
[dd763d6d] part of check-in [e096f90a] Another fix to the same assert as in (6555). It can also fail after a malloc error. (CVS 6556) (check-in: [e096f90a] user: danielk1977 branch: trunk, size: 112403)
11:10
[1ff13874] part of check-in [a37d1174] Fix an assert that could fail after a parse error in expr.c. (CVS 6555) (check-in: [a37d1174] user: danielk1977 branch: trunk, size: 112371)
2009-04-23
13:22
[015bdfc7] part of check-in [dd4d67a6] Rework the column-cache mechanism to be more robust (and more correct). The column-alias cache is currently disabled, (CVS 6538) (check-in: [dd4d67a6] user: drh branch: trunk, size: 112345)
2009-04-22
17:15
[51ec16f8] part of check-in [ecbef450] Eliminate the OP_VRowid opcode. The regular OP_Rowid now work for both regular and virtual tables. (CVS 6537) (check-in: [ecbef450] user: drh branch: trunk, size: 110346)
2009-04-08
13:51
[ccc5b5fa] part of check-in [44ded2ea] Minor refactoring of the expression-compaction logic for clarity of presentation. New comments added. The EXPRDUP_DISTINCTSPAN flag is removed as obsolete. (CVS 6470) (check-in: [44ded2ea] user: drh branch: trunk, size: 110403)
2009-04-02
17:23
[b7ce173d] part of check-in [058a2f20] Ensure the required VerifyCookie/Transaction/TableLock opcodes are added for "x IN (SELECT c FROM t)" expressions. Ticket #3771. (CVS 6439) (check-in: [058a2f20] user: danielk1977 branch: trunk, size: 109992)
2009-03-25
16:51
[14853cd5] part of check-in [8589b0fc] Remove an unused parameter from sqlite3DequoteExpr. Fix another unrelated and harmless compiler warning. (CVS 6386) (check-in: [8589b0fc] user: drh branch: trunk, size: 109586)
2009-03-24
15:31
[f30a4330] part of check-in [cf3d84ab] New assert()s added to verify that the Expr.token value is used correctly. Ticket #3743. (CVS 6378) (check-in: [cf3d84ab] user: drh branch: trunk, size: 109607)
15:08
[614a6061] part of check-in [ea74d8dc] Changes to insure that lookaside memory allocations are never used to hold schema content. Ticket #3743. (CVS 6377) (check-in: [ea74d8dc] user: drh branch: trunk, size: 109474)
2009-03-23
04:33
[ca5d176a] part of check-in [db1d4d2f] Use the ROUND8() macro to round an integer up to the nearest multiple of 8 and ROUNDDOWN8() macro to round down to the nearest multiple of 8. This is a cosmetic change. (CVS 6372) (check-in: [db1d4d2f] user: danielk1977 branch: trunk, size: 109617)
2009-03-18
10:36
[7252b38f] part of check-in [05d8607d] Add comments and testcase() macros to the fix for shared-cache schema default value problem of check-in (6353). (CVS 6356) (check-in: [05d8607d] user: drh branch: trunk, size: 109608)
2009-03-17
17:49
[cd95e2dd] part of check-in [afadddc3] Fix a problem that could cause a crash when a shared-cache schema contains column default values. (CVS 6353) (check-in: [afadddc3] user: danielk1977 branch: trunk, size: 109092)
2009-03-05
14:53
[09a3a1d6] part of check-in [d0b2015f] Comment out a recently added assert statement that is failing. (CVS 6340) (check-in: [d0b2015f] user: danielk1977 branch: trunk, size: 108834)
03:48
[b9273cdd] part of check-in [5477833e] Removed compiler warnings from MSVC builds. Ticket #3701. (CVS 6335) (check-in: [5477833e] user: shane branch: trunk, size: 108698)
2009-02-24
10:14
[46e24f9a] part of check-in [0e7c369c] Reverse commit (6315) for now. (CVS 6317) (check-in: [0e7c369c] user: danielk1977 branch: trunk, size: 108659)
2009-02-23
17:33
[97545fa4] part of check-in [294ba6f7] Scan an index instead of a table for "SELECT count(*) FROM <tbl>" queries. Because an index is usually smaller than a table on disk, this saves some IO. (CVS 6315) (check-in: [294ba6f7] user: danielk1977 branch: trunk, size: 108706)
2009-02-20
10:58
[e22112c8] part of check-in [e43ed649] Instead of using SetNumColumns, specify the number of columns in a table or index using the P4 argument. (CVS 6310) (check-in: [e43ed649] user: danielk1977 branch: trunk, size: 108659)
03:55
[92e6dfcd] part of check-in [48b77b04] Add a count parameter to the OP_Variable opcode and use it to simplify prepared statements that copy consecutive unnamed parameters into consecutive registers (a common case). (CVS 6309) (check-in: [48b77b04] user: drh branch: trunk, size: 108719)
2009-02-19
14:39
[2e62c262] part of check-in [d9f6ffbc] Changes to reduce the heap space consumed by triggers, views and tables in the in-memory representation of the schema. Also to reduce the space used by prepared statements slightly. (CVS 6305) (check-in: [d9f6ffbc] user: danielk1977 branch: trunk, size: 108117)
2009-02-04
03:59
[e60f69f6] part of check-in [5cef4000] Changes to completely remove all floating point ops if SQLITE_OMIT_FLOATING_POINT defined. Note that w/o fp, date/time, round, nan, etc. are all gone or limited in functionality. Updated some of the test scripts to support missing fp and 64-bit functionality. Ticket #3029. (CVS 6250) (check-in: [5cef4000] user: shane branch: trunk, size: 100432)
2009-01-20
16:53
[76dc3dc8] part of check-in [1041abd6] When not compiling for an EBCDIC system, use built-in alternatives to the tolowe r(), toupper() and other ctype.h library functions. Ticket #3597. (CVS 6196) (check-in: [1041abd6] user: danielk1977 branch: trunk, size: 100486)
2009-01-10
13:24
[8d19c059] part of check-in [2cbea64f] Remove some unused code from expr.c in order to increase test coverage. (CVS 6156) (check-in: [2cbea64f] user: drh branch: trunk, size: 100483)
2008-12-15
15:27
[a385202a] part of check-in [ea9b747e] Convert the "~" and "NOT" operators to be two-address instructions. Ticket #3541. (CVS 6028) (check-in: [ea9b747e] user: drh branch: trunk, size: 101191)
2008-12-10
21:19
[f13ad556] part of check-in [ea01d437] Additional work at eliminating silly compiler warnings. (CVS 6010) (check-in: [ea01d437] user: drh branch: trunk, size: 101294)
2008-12-08
13:42
[ee295129] part of check-in [490138a2] Fix a segfault associated with the column cache that occurs on nested VIEWs. Ticket #3527. (CVS 5989) (check-in: [490138a2] user: drh branch: trunk, size: 101237)
2008-12-05
15:24
[9ce4f258] part of check-in [46f2d089] Make use of sqlite3DbMallocSize to maximize the size of growable buffers after each reallocation. Added new comments and testcase() macros to where.c. (CVS 5981) (check-in: [46f2d089] user: drh branch: trunk, size: 100973)
2008-11-19
16:52
[01b1cf07] part of check-in [d1abe8a1] Fix some compiler warnings that show up when building the amalgamation only. (CVS 5927) (check-in: [d1abe8a1] user: danielk1977 branch: trunk, size: 100943)
09:05
[fafae5a4] part of check-in [88134322] Changes to avoid "unused parameter" compiler warnings. (CVS 5921) (check-in: [88134322] user: danielk1977 branch: trunk, size: 100916)
2008-11-12
08:07
[0a23a7f5] part of check-in [b8ceaa00] Make sure affinities and implicit collation sequences are correctly used by comparison expressions in the select-list or having clause of an aggregate query. Ticket #3493. (CVS 5889) (check-in: [b8ceaa00] user: danielk1977 branch: trunk, size: 100887)
2008-11-06
15:33
[d48ae325] part of check-in [1b6a5140] Fix a bug in the CAST operator associated with the column cache. (CVS 5866) (check-in: [1b6a5140] user: drh branch: trunk, size: 100831)
2008-10-25
15:03
[2b194531] part of check-in [1fa3bbd8] Disable the result-set alias cache when on conditional code branches. Ticket #3461. The column cache and result set alias cache mechanisms are prone to this kind of error and need to be refactored. This check-in should be considered a temporary fix in advance of a more general redesign of the whole mechanism. (CVS 5841) (check-in: [1fa3bbd8] user: drh branch: trunk, size: 100717)
2008-10-11
16:47
[f84e7606] part of check-in [d2c252d6] Fix a memory leak on ORDER BY of a compound select caused by the resolver on a flattened query. Also fix a OOM segfault in WHERE clause processing. (CVS 5801) (check-in: [d2c252d6] user: drh branch: trunk, size: 100532)
2008-10-07
19:53
[0ceafeff] part of check-in [79df72ee] Raise the hard upper bound on SQLITE_MAX_FUNCTION_ARG to 1000 from 100. The default upper bound is still 100, but it can now be raised as high as 1000 at compile-time. (CVS 5780) (check-in: [79df72ee] user: drh branch: trunk, size: 100351)
2008-10-06
05:32
[30973b01] part of check-in [98ca5580] Allow INDEXED BY and NOT INDEXED clauses in SELECT statements. (CVS 5766) (check-in: [98ca5580] user: danielk1977 branch: trunk, size: 100320)
2008-10-02
16:42
[efa82724] part of check-in [33b59a3d] Change to reduce the number of OP_Null opcodes in "WHERE <rowid> IN (x,y,z)" queries. (CVS 5763) (check-in: [33b59a3d] user: danielk1977 branch: trunk, size: 100168)
13:50
[61f5afca] part of check-in [803a1736] Optimize queries that contain "WHERE rowid IN (x, y, z...)" by using an intkey btree to store the (x, y, z...) set instead of an index btree. (CVS 5760) (check-in: [803a1736] user: danielk1977 branch: trunk, size: 100172)
2008-09-17
00:13
[04822d5c] part of check-in [f8b759f1] Fix for tickets #3378 and #3381 that preserves the aliasing optimization. And yet, this fix feels uncomfortable. Seeking an alternative... (CVS 5712) (check-in: [f8b759f1] user: drh branch: trunk, size: 99332)
2008-09-16
18:02
[e439afc4] part of check-in [a67da9dd] Add test cases for ticket #3378 and #3381. Add a temporary hack to get those to problems fixed. The hack causes failures in alias.test, but those are much less serious than the aforementioned tickets. This is a stop-gap until we can figure out a proper fix. (CVS 5711) (check-in: [a67da9dd] user: drh branch: trunk, size: 99406)
2008-08-29
02:14
[6413795a] part of check-in [ab0292ca] Avoid reevaluating WHERE and ORDER BY expressions that alias terms in the result set. Ticket #3343. Note that aliased GROUP BY expressions are still evaluated twice. (CVS 5637) (check-in: [ab0292ca] user: drh branch: trunk, size: 99334)
2008-08-22
17:34
[622c8d8e] part of check-in [6de9c084] Remove dead code. (CVS 5601) (check-in: [6de9c084] user: drh branch: trunk, size: 97652)
16:29
[9033d8ef] part of check-in [cc36b4e0] Enhanced test coverage. (CVS 5598) (check-in: [cc36b4e0] user: drh branch: trunk, size: 97756)
2008-08-20
16:35
[4651d084] part of check-in [daf730d1] Refactor the name resolution procedures in the code generator. (CVS 5569) (check-in: [daf730d1] user: drh branch: trunk, size: 97820)
2008-08-07
13:05
[278d3950] part of check-in [732657c6] Improved clarity of presentation in the tokenizer. (CVS 5545) (check-in: [732657c6] user: drh branch: trunk, size: 117508)
2008-07-28
19:34
[4f522119] part of check-in [e48f9697] Implement the "lookaside" memory allocation cache. Use of this cache makes the speed1.test script run about 15% faster. Added new interfaces to control the cache. (CVS 5488) (check-in: [e48f9697] user: drh branch: trunk, size: 117825)
2008-07-18
17:03
[18d04f1c] part of check-in [17a9984e] Make sure expression spans are set correctly for "x.*" expressions in the result set of a SELECT. Ticket #3229. (CVS 5438) (check-in: [17a9984e] user: drh branch: trunk, size: 117609)
2008-07-09
01:39
[17f7deae] part of check-in [c6cf0847] Additional test coverage in select.c and expr.c. (CVS 5381) (check-in: [c6cf0847] user: drh branch: trunk, size: 117634)
2008-07-08
23:40
[6343c50c] part of check-in [cbd3c158] Remove obsolete code from select.c, including the "affinity" parameter to the sqlite3Select() module. (CVS 5380) (check-in: [cbd3c158] user: drh branch: trunk, size: 117614)
2008-07-04
09:41
[8f2caa88] part of check-in [212d05d3] Remove redundant code from sqlite3GetTempReg(). (CVS 5342) (check-in: [212d05d3] user: danielk1977 branch: trunk, size: 117628)
09:15
[88737070] part of check-in [f099d677] Remove references to temporary registers from the compiler column-cache when such registers are released. Fix for #3201. (CVS 5341) (check-in: [f099d677] user: danielk1977 branch: trunk, size: 117895)
2008-06-27
00:52
[0e65125e] part of check-in [0b01ec5c] Remove unused variable. Fix a compiler warning. (CVS 5319) (check-in: [0b01ec5c] user: drh branch: trunk, size: 117834)
00:47
[f166ce09] part of check-in [a4005782] Tweaks to the IN expression code generator. Fix an an unrelated bug in the compound SELECT code generator. (CVS 5318) (check-in: [a4005782] user: drh branch: trunk, size: 117838)
2008-06-26
21:45
[3bb6d632] part of check-in [1043a605] Fix a bug introduced by check-in (5316). Add some VDBE comments to the IN expression code generator. (CVS 5317) (check-in: [1043a605] user: drh branch: trunk, size: 117874)
20:06
[557faa5a] part of check-in [ec80474b] Avoid generating unnecessary SCopy instructions with the RHS of an IN operator is a list of values. (CVS 5316) (check-in: [ec80474b] user: drh branch: trunk, size: 117766)
18:04
[edcc8a30] part of check-in [d45a97be] Fix handling of "x IN (...)" and "x NOT IN (...)" expressions when the set contains an SQL NULL value. (CVS 5314) (check-in: [d45a97be] user: danielk1977 branch: trunk, size: 117752)
2008-06-24
12:46
[1a8fbd3d] part of check-in [95037e6d] Fix a problem in sqlite3ExprIsInteger() causing failures on select1-4.9.2. Other bug fixes in compound-merge. The compound-merge is still disabled in this check-in using "#if 0" due to additional bugs. (CVS 5295) (check-in: [95037e6d] user: drh branch: trunk, size: 114041)
00:32
[18af707c] part of check-in [e2ba324c] The compound-select merge optimization is mostly working with this check-in. But there are still a few problems and so the optimization is disabled by and "#if 0". This check-in is to synchronize with the other changes happening in parallel. (CVS 5291) (check-in: [e2ba324c] user: drh branch: trunk, size: 114028)
2008-06-22
12:37
[bb0b5ff5] part of check-in [663a590e] Fix a bug in the KEYINFO handling within select.c. Change the OP_Move opcode to take a count and to move multiple registers. Initial code for the compound-select merge optimization is added but is incomplete and is commented out. (CVS 5272) (check-in: [663a590e] user: drh branch: trunk, size: 113480)
2008-06-05
16:47
[ecb3b23d] part of check-in [16d4c53a] Reorganize some of the code that detects expression trees with a depth greater than EXPR_MAX_DEPTH so that they are detected earlier. This further reduces the opportunities for stack overflow. (CVS 5189) (check-in: [16d4c53a] user: danielk1977 branch: trunk, size: 113404)
2008-05-28
13:49
[52fbb644] part of check-in [5ceef40e] Allow the SQLITE_MAX_EXPR_DEPTH compile-time parameter to be set to 0 in order to disable expression depth checking. Ticket #3143. (CVS 5166) (check-in: [5ceef40e] user: drh branch: trunk, size: 112795)
2008-05-01
17:16
[89f192b2] part of check-in [59568844] Fix more compiler warnings. (CVS 5074) (check-in: [59568844] user: drh branch: trunk, size: 112601)
2008-04-29
00:15
[a896d1be] part of check-in [9b07e59e] Always convert IEEE NaN into NULL. Ticket #3060. Add test cases to verify that this is happening. (CVS 5066) (check-in: [9b07e59e] user: drh branch: trunk, size: 112650)
2008-04-25
00:08
[6a6f3700] part of check-in [f6313311] Candidate fix for ticket #3082. Test cases needed. (CVS 5047) (check-in: [f6313311] user: drh branch: trunk, size: 112550)
2008-04-24
12:36
[d5733edd] part of check-in [85eedad1] Fix a crash that can follow a malloc() failure in malloc7.test. (CVS 5042) (check-in: [85eedad1] user: danielk1977 branch: trunk, size: 111197)
2008-04-15
12:14
[7aecda0f] part of check-in [d04246a4] Fix a code generator bug caused by the new CSE optimization. Add test cases to prevent a recurrence. (CVS 5011) (check-in: [d04246a4] user: drh branch: trunk, size: 111137)
2008-04-11
15:36
[4b6cc249] part of check-in [38746c54] Additional reductions in the use of memset(). (CVS 4988) (check-in: [38746c54] user: drh branch: trunk, size: 110519)
2008-04-01
18:04
[acc69513] part of check-in [e84ff57b] Avoid factoring single-instruction constants that end up getting replaced by an SCopy instruction. (CVS 4952) (check-in: [e84ff57b] user: drh branch: trunk, size: 110470)
15:06
[bc7ab980] part of check-in [492490f9] Add the testcase() macro. Additional CSE test coverage. (CVS 4951) (check-in: [492490f9] user: drh branch: trunk, size: 108012)
12:24
[64843f84] part of check-in [e25939fb] Fix a problem with CASTs and the new CSE mechanism. (CVS 4950) (check-in: [e25939fb] user: drh branch: trunk, size: 104238)
05:07
[11e9a05c] part of check-in [91cc646e] Fix the CSE mechanism so that it takes into account column affinity changes that might be imposed by comparison operators. (CVS 4949) (check-in: [91cc646e] user: drh branch: trunk, size: 104182)
03:27
[86aeb607] part of check-in [7e815612] More test cases and bug fixes with CSE. (CVS 4948) (check-in: [7e815612] user: drh branch: trunk, size: 102933)
01:42
[35cccadd] part of check-in [e5aff09a] Initial test cases and bug fixes in the CSE logic. (CVS 4946) (check-in: [e5aff09a] user: drh branch: trunk, size: 102724)
2008-03-31
23:48
[787f5fd4] part of check-in [c29ee0fe] Avoid duplicate OP_Column opcodes by remembering prior results. This is similar to CSE, but only applies to columns. (CVS 4943) (check-in: [c29ee0fe] user: drh branch: trunk, size: 101840)
18:19
[d0055109] part of check-in [2126db39] Factor constant subexpressions out of loops. (CVS 4942) (check-in: [2126db39] user: drh branch: trunk, size: 97848)
2008-03-25
09:47
[7e56d2a2] part of check-in [04715364] Use a vdbe memory cell to allocate the space required for vdbe cursors. (CVS 4912) (check-in: [04715364] user: danielk1977 branch: trunk, size: 96757)
2008-03-20
16:30
[8758d120] part of check-in [4c4be4c3] Reinstate test cases for the limit tests. The sqlite3_limit() API is now tested and working. (CVS 4899) (check-in: [4c4be4c3] user: drh branch: trunk, size: 96813)
14:03
[11e00caf] part of check-in [60c77882] Initial implementation of per-connection limits and the sqlite3_limit() API. The sqllimits1.test script crashes. SQLITE_LIMIT_PAGE_COUNT and SQLITE_LIMIT_VDBE_OP are currently ignored. (CVS 4897) (check-in: [60c77882] user: drh branch: trunk, size: 96779)
2008-03-12
10:39
[242f2f57] part of check-in [3f9f81e9] Do not segfault after a parse error in a sub-select in a statement of the form "DELETE WHERE ... IN(sub-select)". Ticket #2991. (CVS 4854) (check-in: [3f9f81e9] user: danielk1977 branch: trunk, size: 96796)
2008-03-10
14:12
[4531fb11] part of check-in [d4ab14b9] Add explicit !=0 tests in order to suppress warning messages in Borland-C. Ticket #2985 (CVS 4850) (check-in: [d4ab14b9] user: drh branch: trunk, size: 96800)
2008-01-23
14:51
[e6fb42c6] part of check-in [45c59802] Testing coverage enhancements to sqlite3_get_table() and to the SELECT code generator. (CVS 4746) (check-in: [45c59802] user: drh branch: trunk, size: 96797)
2008-01-19
23:50
[07318c7e] part of check-in [010f7b78] Additional test coverage improvements. Test coverage now stands at 98.73%. (CVS 4731) (check-in: [010f7b78] user: drh branch: trunk, size: 97008)
2008-01-18
14:08
[9ac91774] part of check-in [0e50c020] Remove the OP_HexBlob instruction and code OP_Blob directly. Reduce the amount of memory allocation required to encode blob literals. Remove the "out2" instruction type. Other minor optimizations. (CVS 4726) (check-in: [0e50c020] user: drh branch: trunk, size: 97314)
02:31
[3162c112] part of check-in [251c78a9] Fix a bug in the test scripts that was preventing many scripts from running with all.test. Lots of hidden failures now come to light. (CVS 4723) (check-in: [251c78a9] user: drh branch: trunk, size: 97122)
2008-01-17
17:15
[f13ad688] part of check-in [5ba4e5ad] Reuse registers better in the inner loop of a SELECT statement. (CVS 4719) (check-in: [5ba4e5ad] user: drh branch: trunk, size: 97329)
16:22
[217ba4f4] part of check-in [706b41b7] Registerification of the VDBE is complete. The operand stack has been removed from the code. All instructions operate out of registers only. (CVS 4718) (check-in: [706b41b7] user: drh branch: trunk, size: 97324)
02:36
[00ee6555] part of check-in [b3a141b2] Registerification of the WHERE clause logic. (CVS 4716) (check-in: [b3a141b2] user: drh branch: trunk, size: 97396)
2008-01-13
19:02
[be1018f2] part of check-in [23181f86] Fix some issues with out-of-memory recovery. (CVS 4710) (check-in: [23181f86] user: drh branch: trunk, size: 97396)
2008-01-12
19:03
[14130c27] part of check-in [426f31ec] Continuing work toward converting the VM to a register machine. (CVS 4708) (check-in: [426f31ec] user: drh branch: trunk, size: 97324)
12:48
[68bcc075] part of check-in [a6dddebc] Continuing work toward converting the VM into a register machine. (CVS 4707) (check-in: [a6dddebc] user: drh branch: trunk, size: 94358)
2008-01-10
23:50
[560fbd4a] part of check-in [8cbd4651] More work toward converting the VM into a register-based machine. (CVS 4704) (check-in: [8cbd4651] user: drh branch: trunk, size: 94506)
03:46
[522ba17f] part of check-in [173698c9] Continuing work toward registerizing the code generator. (CVS 4703) (check-in: [173698c9] user: drh branch: trunk, size: 94104)
2008-01-09
23:04
[27971029] part of check-in [e3cf1c1c] All essential opcodes can now operate out of registers and completely avoid the stack. Many still optionally use the stack to support legacy code generation, but the stack is not required. The next step is to update all code generation to avoid using the stack. (CVS 4700) (check-in: [e3cf1c1c] user: drh branch: trunk, size: 93177)
02:15
[f1bee4f3] part of check-in [92deff07] Continued work toward converting to a register-based VM. (CVS 4698) (check-in: [92deff07] user: drh branch: trunk, size: 93144)
2008-01-08
23:54
[26b29dab] part of check-in [8862ce9c] Registerify the comparison opcodes. (CVS 4697) (check-in: [8862ce9c] user: drh branch: trunk, size: 92951)
02:57
[6f2a8522] part of check-in [b9bf509e] Progress toward registerification of the constraint checking logic for INSERT and UPDATE. (CVS 4693) (check-in: [b9bf509e] user: drh branch: trunk, size: 92322)
2008-01-07
19:20
[f84b4901] part of check-in [aa48867c] Registerify the AUTOINCREMENT processing and the OP_IsNull and OP_NotNull operators. (CVS 4692) (check-in: [aa48867c] user: drh branch: trunk, size: 93070)
2008-01-06
00:25
[99efbe91] part of check-in [8201f717] Registerify the SRT_Subroutine destination for SELECT results. (CVS 4690) (check-in: [8201f717] user: drh branch: trunk, size: 93171)
2008-01-05
16:29
[cb8b65c3] part of check-in [66396d2f] Registerify binary operators. Add register tracing to debugging output. (CVS 4686) (check-in: [66396d2f] user: drh branch: trunk, size: 93142)
06:51
[991ae77f] part of check-in [6c78d2a4] Expression code generator takes advantage of recent opcode changes. (CVS 4685) (check-in: [6c78d2a4] user: drh branch: trunk, size: 92952)
05:20
[743e8f1d] part of check-in [3e8a07dd] Register-ify the OP_AddImm and all casting opcodes. Omit the OP_MemIncr opcode. (CVS 4683) (check-in: [3e8a07dd] user: drh branch: trunk, size: 92494)
04:06
[d317c808] part of check-in [cc149eb9] Get rid of OP_Dup, OP_MemStore, OP_MemLoad, and OP_MemMove. Replace with OP_Copy, OP_SCopy, and OP_Move. Add the infrastructure for operation properties in1, in2, in3, out2, and out3 but do not yet use any of these. (CVS 4682) (check-in: [cc149eb9] user: drh branch: trunk, size: 92491)
2008-01-04
22:01
[57f7c397] part of check-in [fe057a88] Implement the out2-prerelease opcode design pattern. (CVS 4681) (check-in: [fe057a88] user: drh branch: trunk, size: 92558)
2008-01-03
23:44
[e60ee4f4] part of check-in [61bfb77c] Change the sqlite3ExprCode() function so that callers can request that the result of the expression be left on the stack or in a register. (CVS 4673) (check-in: [61bfb77c] user: drh branch: trunk, size: 92557)
18:44
[97c62240] part of check-in [4f396707] Update OP_Rowid, OP_Column and related opcodes to use registers. (CVS 4671) (check-in: [4f396707] user: drh branch: trunk, size: 92629)
18:03
[4e6bd195] part of check-in [0b849805] Registers (aka memory cells) in the VM are now numbered starting with 1 instead of 0. A register number of 0 means "no such register". (CVS 4669) (check-in: [0b849805] user: drh branch: trunk, size: 92021)
07:54
[24202e79] part of check-in [35da261d] Change OP_OpenRead and OP_OpenWrite so that the database number is read from the P3 operand, not the stack. (CVS 4663) (check-in: [35da261d] user: danielk1977 branch: trunk, size: 92029)
00:01
[4bfb33ee] part of check-in [027875e4] Refactoring the VM. The P3 parameter is changed to P4. A P5 parameter is added (though not currently used.) Add routines sqlite3VdbeAddOpX() where X is one of 0, 1, 2, 3, or 4. (CVS 4660) (check-in: [027875e4] user: drh branch: trunk, size: 92068)
2008-01-02
16:27
[c5c784ff] part of check-in [86dcdfe6] Combine the eDest and iParm arguments to sqlite3Select() into a single type - "SelectDest". (CVS 4657) (check-in: [86dcdfe6] user: danielk1977 branch: trunk, size: 91920)
14:28
[9f461284] part of check-in [4c7f35da] Add opcodes OP_ResultRow and OP_RegMakeRec which are register-based equivalents to OP_Callback and OP_MakeRecord. Use the new opcodes. (CVS 4656) (check-in: [4c7f35da] user: drh branch: trunk, size: 91837)
00:34
[c3fb939d] part of check-in [051ec01f] Begin setting a foundation on which to convert the VM from a stack-based to a register-based machine. Everything is still mostly stack based with this check-in. This change merely begins adding infrastructure to support a register-based architecture. (CVS 4652) (check-in: [051ec01f] user: drh branch: trunk, size: 91825)
2008-01-01
19:02
[d0969aa7] part of check-in [e08a33ed] Optimize trigger compilation to avoid populating the OLD.* and NEW.* pseudo-tables with data that will never be used. Some testing to come. (CVS 4651) (check-in: [e08a33ed] user: danielk1977 branch: trunk, size: 91202)
2007-12-14
15:12
[43807e13] part of check-in [b821b6ed] Fix an out-of-memory NULL pointer defer in the code generator. Ticket #2843. (CVS 4630) (check-in: [b821b6ed] user: drh branch: trunk, size: 90961)
2007-12-13
21:54
[045ba744] part of check-in [4e91a267] Change all instances of "it's" in comments to either "its" or "it is", as appropriate, in case the comments are ever again read by a pedantic grammarian. Ticket #2840. (CVS 4629) (check-in: [4e91a267] user: drh branch: trunk, size: 90923)
2007-12-10
05:03
[7c8e3295] part of check-in [0b34a186] Fix compilation/testing with OMIT_SUBQUERY defined. Ticket #2828. (CVS 4603) (check-in: [0b34a186] user: danielk1977 branch: trunk, size: 90933)
2007-11-29
17:05
[8c32309d] part of check-in [56d0e326] Optimisations for expressions of the form "<value> IN (SELECT <column> FROM )". (CVS 4579) (check-in: [56d0e326] user: danielk1977 branch: trunk, size: 90897)
2007-11-12
09:50
[7977bb96] part of check-in [06749ac7] Allow collation sequence names to be quoted. Ticket #2744. (CVS 4537) (check-in: [06749ac7] user: danielk1977 branch: trunk, size: 85512)
2007-10-23
18:55
[23fac374] part of check-in [c085d6df] Add comments, assertions, and test cases to demonstrate that the problem described in ticket #2742 is not a real problem. (CVS 4510) (check-in: [c085d6df] user: drh branch: trunk, size: 85363)
15:39
[650f30eb] part of check-in [7e30fd6a] Floating point and 64-bit integer constants store in the virtual machine opcodes in binary, not as text. Performance improvement. Ticket #2733. (CVS 4507) (check-in: [7e30fd6a] user: drh branch: trunk, size: 84951)
2007-09-18
15:55
[20a45339] part of check-in [b2d605a2] Remove unneeded pSchema field from the Expr structure. (CVS 4434) (check-in: [b2d605a2] user: drh branch: trunk, size: 84182)
2007-09-01
18:24
[7853a816] part of check-in [02b751fb] Fix a bug in jrnlTruncate(). And other coverage improvements. (CVS 4367) (check-in: [02b751fb] user: danielk1977 branch: trunk, size: 84135)
2007-08-31
17:42
[95f36747] part of check-in [d1194273] Allow sqllimits1.test to be run from a regular build of testfixture. Add the 'amalgamation-testfixture' target to main.mk - to build testfixture via sqlite3.c. (CVS 4354) (check-in: [d1194273] user: danielk1977 branch: trunk, size: 84202)
2007-08-29
14:06
[e0e393df] part of check-in [c790c234] Use the DbMalloc() and DbRealloc() functions more consistently. (CVS 4323) (check-in: [c790c234] user: danielk1977 branch: trunk, size: 84130)
12:31
[70660e0c] part of check-in [e38ef81b] Modifications to the malloc failure tests to test transient and persistent failures. (CVS 4321) (check-in: [e38ef81b] user: danielk1977 branch: trunk, size: 84149)
2007-08-22
20:18
[978afdce] part of check-in [db818430] The malloc.test script now passes all tests with no errors. (CVS 4271) (check-in: [db818430] user: drh branch: trunk, size: 84061)
2007-08-16
12:24
[3ea108a9] part of check-in [ba80ee59] Combine sqlite3DbOfVdbe() and sqlite3VdbeDb() into a single function. (CVS 4236) (check-in: [ba80ee59] user: drh branch: trunk, size: 84113)
11:36
[a304c220] part of check-in [5e2795d0] Fix some more small problems introduced by recent refactoring. (CVS 4235) (check-in: [5e2795d0] user: danielk1977 branch: trunk, size: 84123)
10:09
[beb6b409] part of check-in [77b16713] More work on refactoring of malloc() interfaces. There are still many errors. (CVS 4233) (check-in: [77b16713] user: danielk1977 branch: trunk, size: 84101)
04:30
[00226606] part of check-in [deb7ecd6] Half-way through a major refactoring of the memory allocation. I have not even attempted to compile so I am certain there are countless errors. (CVS 4231) (check-in: [deb7ecd6] user: drh branch: trunk, size: 83988)
2007-08-07
17:13
[9bc05ed4] part of check-in [7550dd1d] Remove all tabs from source code files. Ticket #2556. (CVS 4198) (check-in: [7550dd1d] user: drh branch: trunk, size: 82734)
17:04
[ef4af511] part of check-in [73db5452] Revise the amalgamation so that all symbols have file scope except those that begin with "sqlite3_". Ticket #2554. (CVS 4197) (check-in: [73db5452] user: drh branch: trunk, size: 82720)
2007-07-23
22:51
[d39d87cf] part of check-in [de000280] Detect nested aggregate functions even if the inner aggregate function is aliased using an AS clause. Ticket #2526. (CVS 4179) (check-in: [de000280] user: drh branch: trunk, size: 82720)
2007-06-25
16:29
[de9f55b1] part of check-in [044ca1c7] Fix for #2445. A bug in the lookupName() logic that could cause a crash when a WHERE clause used an alias to refer to an expression in the result-set of the SELECT, and that expression was itself a reference to a table column. (CVS 4122) (check-in: [044ca1c7] user: danielk1977 branch: trunk, size: 82489)
2007-06-20
16:13
[763ca2b3] part of check-in [99a20f6a] A column name preceded by a unary "+" operator is considered to be a column name when computing the collating sequence to be used by a comparison operator or ORDER BY clause. (CVS 4104) (check-in: [99a20f6a] user: drh branch: trunk, size: 82459)
2007-06-15
16:37
[b68f1b20] part of check-in [d4ab9428] Fix an obscure memory leak in the SQL compiler.. (CVS 4070) (check-in: [d4ab9428] user: danielk1977 branch: trunk, size: 82424)
2007-06-08
00:20
[97819d6a] part of check-in [46fdd195] Fix the query optimizer so that it correctly handles constant expressions in the ON clause of a LEFT JOIN. Ticket #2403. (CVS 4049) (check-in: [46fdd195] user: drh branch: trunk, size: 82282)
2007-05-30
10:36
[fb386ee8] part of check-in [7522d2fb] Add some extra tests for malloc failure during expression parsing and execution using fuzzily generated SQL. (CVS 4043) (check-in: [7522d2fb] user: danielk1977 branch: trunk, size: 81657)
2007-05-29
12:11
[7243b6c0] part of check-in [f9a95e92] Consider explicit collate clauses when matching WHERE constraints to indices. Fix for #2391. (CVS 4040) (check-in: [f9a95e92] user: danielk1977 branch: trunk, size: 81586)
2007-05-15
07:00
[436f1d3e] part of check-in [da0c1ab4] A fix for queries that used correlated, compound sub-queries in the HAVING clause. Also update fuzz.test some more. (CVS 4001) (check-in: [da0c1ab4] user: danielk1977 branch: trunk, size: 81472)
2007-05-14
11:34
[bad06f78] part of check-in [5627ff74] Remove terms with operator TK_AS from the expression tree. Ticket #2356. (CVS 3991) (check-in: [5627ff74] user: drh branch: trunk, size: 81397)
2007-05-12
06:11
[2283be0a] part of check-in [2e80736d] Bugfixes for assert() failures found by fuzz.test. (CVS 3986) (check-in: [2e80736d] user: danielk1977 branch: trunk, size: 81355)
2007-05-11
01:44
[d890a38c] part of check-in [d12a8924] Additional parsing bugs fixed. (CVS 3981) (check-in: [d12a8924] user: drh branch: trunk, size: 81328)
00:20
[482db850] part of check-in [d146f01a] Make sure that the REGISTER token generates a valid Expr. REGISTER will cause the tokenizer to abort, but the parser might do several reduce actions prior to that abort and those reduce actions sometimes need a valid Expr. (CVS 3980) (check-in: [d146f01a] user: drh branch: trunk, size: 81393)
2007-05-10
10:46
[65b8a3df] part of check-in [2c9c94a2] Add code to enforce the MAX_EXPR_DEPTH limit. (CVS 3968) (check-in: [2c9c94a2] user: danielk1977 branch: trunk, size: 81308)
2007-05-09
11:37
[1f3c365f] part of check-in [9bf2c594] Add further test cases for compile time limits. (CVS 3963) (check-in: [9bf2c594] user: danielk1977 branch: trunk, size: 78943)
2007-05-08
18:04
[eb91a54d] part of check-in [251ba198] Fix a null-pointer dereference that follows a malloc() failure introduced in (3954). (CVS 3956) (check-in: [251ba198] user: danielk1977 branch: trunk, size: 78818)
17:54
[d593bbac] part of check-in [eeee6b71] Add a few more tests to sqllimit1.test. (CVS 3954) (check-in: [eeee6b71] user: danielk1977 branch: trunk, size: 78808)
2007-04-18
17:07
[2f0f9f89] part of check-in [7f9f0444] Fix a && where & was intended. This is a real problem, but it would be very difficult to devise a test case where it might lead to an unexpected result. Ticket #2306. (CVS 3856) (check-in: [7f9f0444] user: drh branch: trunk, size: 78478)
2007-04-13
16:06
[2c32c546] part of check-in [cfc6f933] Match ORDER BY terms to columns using names in compound queries. Make sure this works for subqueries, especially in the right-hand side of an IN operator. Ticket #2296. (CVS 3842) (check-in: [cfc6f933] user: drh branch: trunk, size: 78480)
2007-03-27
13:36
[a8740c24] part of check-in [c8a8a189] More strict aliasing fixes. The single source file library now runs successfully with -fstrict-alias. (CVS 3725) (check-in: [c8a8a189] user: drh branch: trunk, size: 78416)
2007-03-26
22:05
[971dd206] part of check-in [0b832e21] Modify sources to that they can be combined into a single sqlite3.c source file. Eliminate all type-pruned pointer warnings. (CVS 3722) (check-in: [0b832e21] user: drh branch: trunk, size: 78268)
2007-03-12
23:48
[b5c65202] part of check-in [e20e76f6] Clarify the use of loop variables in a expr.c. (CVS 3683) (check-in: [e20e76f6] user: drh branch: trunk, size: 78292)
2007-02-24
15:29
[824f026e] part of check-in [fba0a1e5] Add comments to sqlite3ExprCompare() to clarify its operation. Ticket #2216. (CVS 3663) (check-in: [fba0a1e5] user: drh branch: trunk, size: 78273)
13:53
[3fc187bc] part of check-in [83098581] Additional tests and some improvements to the INSERT transfer optimization. More testing is needed. (CVS 3661) (check-in: [83098581] user: drh branch: trunk, size: 77669)
11:52
[7815bdb2] part of check-in [e11bbf17] Make sure that integer values are converted to real when pulled from a REAL table column by GROUP BY. Ticket #2251. Also make sure default values are correctly expanded. There may be other places in the code where this issue comes up - we need to look further. (CVS 3659) (check-in: [e11bbf17] user: drh branch: trunk, size: 77648)
2007-02-23
03:00
[24d52bd6] part of check-in [da81725c] Clarify the documentation on how comparisons occur in an IN operator. Fix the comparison operators when both sides of an IN operator are expressions (ticket #2248). Changes to main.mk for adding FTS2 into the standard build also got mixed in with this check-in by mistake. (CVS 3656) (check-in: [da81725c] user: drh branch: trunk, size: 77339)
2007-02-14
09:19
[a7c2369b] part of check-in [cb78f7cb] Use OP_VColumn instead of OP_Column when querying virtual tables for values to save in aggregate context records. #2230. (CVS 3644) (check-in: [cb78f7cb] user: danielk1977 branch: trunk, size: 77350)
2007-02-07
13:09
[dfd25ae8] part of check-in [3638823a] Explicit collations always override implicit collations. This is backwards compatible since SQLite has not previously supported explicit collations. Need to add tests of this new behavior. (CVS 3633) (check-in: [3638823a] user: drh branch: trunk, size: 77302)
2007-02-02
12:44
[8cf28815] part of check-in [9740aa95] Minor tweaks to collating sequences. We'll hold of making major changes until 3.4.0, since we'll likely end up with some minor technical imcompatibilities. (CVS 3626) (check-in: [9740aa95] user: drh branch: trunk, size: 77040)
2007-02-01
23:02
[4ece4d57] part of check-in [85cca7cd] First cut at adding the COLLATE operator. Regression tests pass (or at least the quick set does) and a few new tests have been added. But many more tests are needed. Rules for combining collations need to be worked out. (CVS 3624) (check-in: [85cca7cd] user: drh branch: trunk, size: 76618)
01:40
[ec0b5d9d] part of check-in [505dce8f] Allow up to 64 tables in a join (the number of bits in a long long int). The old limit was 32 tables. (CVS 3622) (check-in: [505dce8f] user: drh branch: trunk, size: 76049)
2007-01-04
01:20
[3d2cf15f] part of check-in [70f5f3b8] Fix for ticket #2141. (CVS 3552) (check-in: [70f5f3b8] user: drh branch: trunk, size: 76038)
2006-12-16
16:25
[82603dc2] part of check-in [7393c81b] Query optimizer enhancement: In "FROM a,b,c left join d" allow the C table to be reordered with A and B. This used to be the case but the capability was removed by (3203) and (3052) in response to ticket #1652. This change restores the capability. (CVS 3529) (check-in: [7393c81b] user: drh branch: trunk, size: 76014)
2006-11-23
11:59
[03420f31] part of check-in [3dea7fbe] Fix a typo in the OMIT_AUTORIZATION in expr.c. (CVS 3518) (check-in: [3dea7fbe] user: drh branch: trunk, size: 75930)
2006-08-24
15:18
[0546cc60] part of check-in [e029637e] Documentation updates for the new SQLITE_FUNCTION authorization. (CVS 3366) (check-in: [e029637e] user: drh branch: trunk, size: 75927)
14:59
[fb53fb9d] part of check-in [4547c81f] Enhance the sqlite3_set_authorizer() callback so that it provides callbacks on each SQL function that is invoked. (CVS 3365) (check-in: [4547c81f] user: drh branch: trunk, size: 75889)
2006-07-11
13:15
[715734d8] part of check-in [b1f326e6] Prevent memory leak and possible NULL pointer deference after malloc failure. Ticket #1886. (CVS 3329) (check-in: [b1f326e6] user: drh branch: trunk, size: 75424)
2006-07-08
18:41
[f2c7af55] part of check-in [30dfb9bf] Better comment to describe the confusing operand reversal for infix functions. (CVS 3325) (check-in: [30dfb9bf] user: drh branch: trunk, size: 75073)
18:35
[3bd41e5a] part of check-in [6e98373c] For infix functions (LIKE, GLOB, REGEXP, and MATCH) treat the left operand as the first argument for the purposes of virtual table function overloading, even though the left operand is really the the second argument. (CVS 3324) (check-in: [6e98373c] user: drh branch: trunk, size: 74884)
17:06
[acfc181c] part of check-in [12cc7af4] Allow virtual table implementations to overload function that use a column of the virtual table as their first argument. Untested. (CVS 3322) (check-in: [12cc7af4] user: drh branch: trunk, size: 74270)
2006-06-14
19:00
[78b52133] part of check-in [32c97b88] Added code to INSERT, DELETE and UPDATE virtual tables. The new code is mostly untested. (CVS 3248) (check-in: [32c97b88] user: drh branch: trunk, size: 74125)
2006-06-13
04:11
[8c873e05] part of check-in [f9ea9704] Bugfixes: Fix a segfault introduced as part of the new vtab code, deallocate memory in the Destroy() method of the echo module. (CVS 3221) (check-in: [f9ea9704] user: danielk1977 branch: trunk, size: 74133)
01:04
[896f6429] part of check-in [3532f134] Progress toward getting the virtual-table code generator to work. (CVS 3220) (check-in: [3532f134] user: drh branch: trunk, size: 74088)
2006-06-11
23:41
[3ea9b26c] part of check-in [898ec36b] Progress toward CREATE VIRTUAL TABLE. Still not even close to working... (CVS 3211) (check-in: [898ec36b] user: drh branch: trunk, size: 73967)
2006-05-23
23:22
[f1ad18d0] part of check-in [6e5a4976] Fix type coercion rules for the IN operator. Ticket #1821. (CVS 3188) (check-in: [6e5a4976] user: drh branch: trunk, size: 73963)
2006-03-17
13:56
[c85d7bee] part of check-in [8f60139f] Miscellaneous code cleanup. (CVS 3143) (check-in: [8f60139f] user: drh branch: trunk, size: 73966)
2006-03-06
20:55
[105e8e17] part of check-in [e510e6dd] Code changes resulting from Coverity analysis. http://scan.coverity.com/ Found 1 potential segfault in sqlite3_mprintf(). Also 2 failures to fclose() following a malloc() failure. And lots of cases where unnecessary conditionals could be removed from the code. (CVS 3126) (check-in: [e510e6dd] user: drh branch: trunk, size: 74074)
2006-03-02
04:44
[2d72534d] part of check-in [a286e54e] Allow WHERE clause terms on the left table of a LEFT OUTER JOIN to contain aggregate subqueries. Ticket #1697. (CVS 3117) (check-in: [a286e54e] user: drh branch: trunk, size: 74052)
2006-02-10
07:07
[9c957fab] part of check-in [5e8611e1] Fix the origin APIs so that they correctly handle views and subqueries that cannot be flattened. (CVS 3072) (check-in: [5e8611e1] user: danielk1977 branch: trunk, size: 74019)
2006-01-30
14:36
[1149c338] part of check-in [944df310] Fix bug with CHECK constraints contain an IN operator. Ticket #1645. (CVS 3035) (check-in: [944df310] user: drh branch: trunk, size: 73960)
2006-01-24
12:09
[cda707cc] part of check-in [d86f18a4] Rename some variables to avoid hiding others. Also add "static" to two function signatures that were missing it. (CVS 3024) (check-in: [d86f18a4] user: danielk1977 branch: trunk, size: 73892)
2006-01-23
05:50
[62f044eb] part of check-in [cc2e8e87] Improve coverage of expr.c and btree.c slightly. (CVS 2992) (check-in: [cc2e8e87] user: danielk1977 branch: trunk, size: 73839)
2006-01-18
16:51
[c541c569] part of check-in [ac090f2a] Use a global variable protected by a mutex instead of thread-specific-data to record malloc() failures. (CVS 2972) (check-in: [ac090f2a] user: danielk1977 branch: trunk, size: 73902)
2006-01-13
06:33
[f885cfe7] part of check-in [dd705955] Minor modification to restoreOrClearCursorPosition() to improve efficiency. Do not allocate the extra 8-bytes if memory-management is not enabled. (CVS 2936) (check-in: [dd705955] user: danielk1977 branch: trunk, size: 74002)
2006-01-11
21:41
[3b6acdb4] part of check-in [5d9c6aa9] Automatically deallocate thread-specific data when it is no longer being used. Ticket #1601. Also implemented the suggestion of ticket #1603. Memory management is now off by default at compile-time. The sqlite3_enable_memory_management() API has been removed. (CVS 2919) (check-in: [5d9c6aa9] user: drh branch: trunk, size: 73995)
2006-01-10
17:58
[b90fa835] part of check-in [0f0213be] Store collation sequence names instead of pointers in sharable schema data structures. (CVS 2904) (check-in: [0f0213be] user: danielk1977 branch: trunk, size: 73951)
2006-01-09
16:12
[426717b1] part of check-in [3e75d3d5] Fix some errors to do with attached databases and text encodings in shared-cache mode. (CVS 2895) (check-in: [3e75d3d5] user: danielk1977 branch: trunk, size: 73795)
06:29
[3bf54eca] part of check-in [82b81f69] Rename DbSchema to "Schema" and SqliteTsd to "ThreadData". (CVS 2893) (check-in: [82b81f69] user: danielk1977 branch: trunk, size: 73795)
2006-01-05
11:34
[ed2a272c] part of check-in [deeda0dc] Add the shared schema/pager modifications. Very few tests so far. (CVS 2859) (check-in: [deeda0dc] user: danielk1977 branch: trunk, size: 73760)
2006-01-03
15:16
[714a0670] part of check-in [837dc77f] Always case 0 to (char*) on varargs functions. Otherwise there are problems on 64-bit machines. (CVS 2854) (check-in: [837dc77f] user: drh branch: trunk, size: 73675)
2005-12-09
20:02
[abdd2012] part of check-in [83a59151] Clean up annoying (and pointless) compiler warnings about differing signedness. (CVS 2810) (check-in: [83a59151] user: drh branch: trunk, size: 73661)
2005-12-06
12:52
[540ed7eb] part of check-in [e1606658] Some elements of the new malloc() failure handling. Not all cases work properly yet. Also, library is not threadsafe if malloc() fails right now. (CVS 2800) (check-in: [e1606658] user: danielk1977 branch: trunk, size: 73538)
2005-11-29
03:13
[80ceb8c7] part of check-in [058f3175] Make the OsFile structure opaque with its internal structure known only to the appropriate os_*.c implementation. Omit the os_unix.h and os_win.h include files. The crash tests are broken by this patch. (CVS 2791) (check-in: [058f3175] user: drh branch: trunk, size: 73505)
2005-11-28
12:36
[b18a7dc6] part of check-in [1b4f2d89] Replace a call to sprintf() with sqlite3MPrintf() since on some embedded platforms, sprintf() is busted. Need to go through and do similar replacements elsewhere in the code. (CVS 2790) (check-in: [1b4f2d89] user: drh branch: trunk, size: 73383)
2005-11-16
12:53
[3b1a24aa] part of check-in [bb866ed8] Do not allow aggregate functions in a WHERE clause. Ticket #1514. (CVS 2769) (check-in: [bb866ed8] user: drh branch: trunk, size: 73413)
2005-11-14
22:29
[fa22a2ed] part of check-in [ce06c123] Create separate affinities for INTEGER and REAL. (CVS 2766) (check-in: [ce06c123] user: drh branch: trunk, size: 73282)
2005-11-05
15:07
[696434ce] part of check-in [e66289b5] Remove a C++-ism that slipped into the code during the recent CHECK enhancements. Ticket #1513. (CVS 2762) (check-in: [e66289b5] user: drh branch: trunk, size: 72844)
2005-11-03
12:33
[a1ca1338] part of check-in [bb94ef64] Prohibit parameters in CHECK constraint expressions. (CVS 2758) (check-in: [bb94ef64] user: drh branch: trunk, size: 72844)
02:03
[14466b22] part of check-in [db27afc4] Disallow subqueries in CHECK constraints. (CVS 2756) (check-in: [db27afc4] user: drh branch: trunk, size: 72643)
00:41
[e74e9c26] part of check-in [2313d912] First cut at supporting CHECK constraints. Everything appears to work, but much more testing is needed as well as documentation. (CVS 2754) (check-in: [2313d912] user: drh branch: trunk, size: 72492)
2005-11-01
15:48
[acf80a3c] part of check-in [e0d6f61c] Omit the SQLITE_AFF_INTEGER type affinity. All numeric values are now of type real, though an integer representation is still sometimes used internally for efficiency. (CVS 2753) (check-in: [e0d6f61c] user: drh branch: trunk, size: 71828)
2005-10-06
16:53
[6881c8df] part of check-in [edca8913] More efficient handling of the LIMIT clause. Scalar subqueries and EXISTS on compound SELECT statements now working properly. Ticket #1473. (CVS 2747) (check-in: [edca8913] user: drh branch: trunk, size: 72136)
2005-09-23
21:11
[bb2cf5d5] part of check-in [352cc9f5] Fix an uninitialized structure member that was causing a malfunction when you used deeply nested and very complex views. Ticket #1449. (CVS 2733) (check-in: [352cc9f5] user: drh branch: trunk, size: 71988)
2005-09-20
17:42
[b549a39a] part of check-in [2471957f] Code cleanup and simplification. Three new Mem opcodes added. The sqlite3VdbeJumpHere function added. (CVS 2730) (check-in: [2471957f] user: drh branch: trunk, size: 71937)
2005-09-16
02:38
[b8dbd5a3] part of check-in [4686d649] Fix a whole host of newly discovered memory leaks the occur after a failure of realloc(). (CVS 2696) (check-in: [4686d649] user: drh branch: trunk, size: 72100)
2005-09-09
01:33
[208f8258] part of check-in [4d62e36f] Infrastructure for the DISTINCT keyword in aggregate functions. But it does not work yet. If you try to use it you get an error message. (CVS 2680) (check-in: [4d62e36f] user: drh branch: trunk, size: 72079)
2005-09-07
22:48
[38f1e135] part of check-in [7e85a162] More bug fixes. But there are still tests that fail. (CVS 2664) (check-in: [7e85a162] user: drh branch: trunk, size: 71843)
21:22
[e0a3f275] part of check-in [17039ec3] Rewrite the aggregate handling logic so that it runs in O(1) space. This is the first cut at the code. Many regression tests fail. (CVS 2662) (check-in: [17039ec3] user: drh branch: trunk, size: 71808)
2005-09-05
20:06
[8a72157f] part of check-in [7b56763a] Fix bugs introduced by checkin (2656) and do some modest code enhancements. (CVS 2657) (check-in: [7b56763a] user: drh branch: trunk, size: 68872)
2005-09-01
03:07
[e9d0401b] part of check-in [09db0a24] Sorting is now done using a sorting index rather than loading the entire result set into memory and doing a merge sort. The old merge sort technique was a carry-over from SQLite version 1. The new method uses a bounded amount of memory and scales to much larger result sets. There are still errors: some 39 regression tests fail. (CVS 2653) (check-in: [09db0a24] user: drh branch: trunk, size: 68879)
2005-08-30
00:54
[aef4a390] part of check-in [4ab994a8] Minor code enhancements. (CVS 2642) (check-in: [4ab994a8] user: drh branch: trunk, size: 68792)
2005-08-25
12:45
[1916cb22] part of check-in [fc9e0460] When the left-hand side of an IN operator is constant and the right-hand side is a SELECT, recognize that the IN operator is not constant. Ticket #1380. (CVS 2624) (check-in: [fc9e0460] user: drh branch: trunk, size: 68260)
2005-08-24
16:54
[e05fa844] part of check-in [aa7dd3f2] Remove a stray C++ style comment causing problems for some compilers. (CVS 2621) (check-in: [aa7dd3f2] user: drh branch: trunk, size: 68099)
2005-08-23
11:17
[43d49f12] part of check-in [5cada745] Handle empty blob constants correctly. Ticket #1373. (CVS 2615) (check-in: [5cada745] user: drh branch: trunk, size: 68139)
2005-08-19
03:03
[b01e5c46] part of check-in [4281a838] Additional tests for better coverage. (CVS 2602) (check-in: [4281a838] user: drh branch: trunk, size: 68011)
2005-08-14
20:47
[24eda6c0] part of check-in [98338abf] General code cleanup resulting in smaller footprint. (CVS 2595) (check-in: [98338abf] user: drh branch: trunk, size: 68083)
2005-08-12
22:58
[cad7f919] part of check-in [3c00f598] Improved error message when a #NNN parameter appears on user input. Additional coverage testing. (CVS 2582) (check-in: [3c00f598] user: drh branch: trunk, size: 68124)
22:56
[9c319b9f] part of check-in [3edbe8d6] Optimize LIKE and GLOB operators in the WHERE clause. Code passes all regression tests but still needs additional tests. (CVS 2581) (check-in: [3edbe8d6] user: drh branch: trunk, size: 68124)
2005-07-29
15:10
[c71265b7] part of check-in [d23c8bf8] Optimizer now converts OR-connected WHERE-clause terms into an IN operator so that they can be used with indices. There are known problems with the ORDER BY optimization in this and in several prior check-ins. This check-in is not recommended for production use. (CVS 2569) (check-in: [d23c8bf8] user: drh branch: trunk, size: 67699)
2005-07-21
18:23
[0e158f7c] part of check-in [e2f822ac] Split the OP_Integer opcode into OP_Integer and OP_Int64. This allows comments to be added to OP_Integer. Cleanup in the optimizer. Allow terms of the FROM clause to be reordered automatically. (CVS 2556) (check-in: [e2f822ac] user: drh branch: trunk, size: 67700)
03:15
[cf5146e8] part of check-in [c30cbba9] In where.c, split out the code that selects an index into a separate subroutine. (CVS 2554) (check-in: [c30cbba9] user: drh branch: trunk, size: 67727)
2005-07-08
18:25
[94dce12d] part of check-in [ba56478d] Allow the IN operator to take a list of arbitrary expressions on its right-hand side. The expressions no longer need to be constant. The current implementation seems to work but needs more testing and optimization. (CVS 2542) (check-in: [ba56478d] user: drh branch: trunk, size: 67668)
17:13
[daf3515d] part of check-in [3bb9ce5f] Change the name of the OpenTemp opcode to OpenVirtual which is more descriptive of what it does. (CVS 2541) (check-in: [3bb9ce5f] user: drh branch: trunk, size: 67028)
2005-06-30
17:04
[fdc8b82b] part of check-in [d273766e] Allow the DEFAULT value of a column to be obtained by calling a function that has constant arguments, such as julianday('now'). (CVS 2534) (check-in: [d273766e] user: drh branch: trunk, size: 67019)
2005-06-25
18:42
[8d4f5e3d] part of check-in [17631785] Remove the blob(), text() and numeric() functions added in (2524) and replace them with the standard CAST operator. Ticket #1287. (CVS 2527) (check-in: [17631785] user: drh branch: trunk, size: 66372)
2005-06-22
08:48
[4d6e26da] part of check-in [f3427a13] Allow parameters to be introduced by characters ':', '$' and '#'. This is an experimental change. (CVS 2523) (check-in: [f3427a13] user: drh branch: trunk, size: 65656)
2005-06-12
21:35
[6d705894] part of check-in [36f2da1f] Update older opcode names to be more meaningful in light of the latest code design. (CVS 2506) (check-in: [36f2da1f] user: drh branch: trunk, size: 65811)
2005-06-06
21:19
[e7245e9c] part of check-in [e73d25c7] Reference count Table structures so that they are not deallocated too soon. Ticket #1210. (CVS 2498) (check-in: [e73d25c7] user: drh branch: trunk, size: 65911)
17:11
[e2aec43e] part of check-in [6a51bdee] Avoid ambiguous column name errors when the column name is in the USING clause of a join. Ticket #743. (CVS 2495) (check-in: [6a51bdee] user: drh branch: trunk, size: 65916)
16:59
[3a8dae4b] part of check-in [265fb607] Naming the join columns in the result set of a natural join does not result in an "ambiguous column name" error. Ticket #1217. (CVS 2494) (check-in: [265fb607] user: drh branch: trunk, size: 65379)
2005-05-24
20:19
[54a4c18d] part of check-in [3e64f1ab] Remove the config.h file from the build. Ticket #1224. (CVS 2480) (check-in: [3e64f1ab] user: drh branch: trunk, size: 65125)
12:01
[62cfa7d8] part of check-in [5fadb464] Move a few things around to make building without the parser easier. (CVS 2479) (check-in: [5fadb464] user: danielk1977 branch: trunk, size: 65143)
2005-05-23
17:26
[d0fbb951] part of check-in [42a626ac] The REGEXP operator is recognized. It tries to invoke a function named regexp() which does not exist in the native build. But users who want to can add an appropriate regexp() function using sqlite3_create_function(). (CVS 2478) (check-in: [42a626ac] user: drh branch: trunk, size: 68981)
15:06
[f2ff12d9] part of check-in [ef4059e3] Make sure that the use of a double-quoted string literal does not trick the optimizer into using a correlated subquery when a static subquery would suffice. (CVS 2477) (check-in: [ef4059e3] user: drh branch: trunk, size: 70092)
2005-04-22
02:38
[bef1589d] part of check-in [88b39436] Remove some vestigal code. Add the experimental sqlite3_transfer_bindings() API. (CVS 2446) (check-in: [88b39436] user: drh branch: trunk, size: 69705)
2005-03-21
03:53
[bf7253cd] part of check-in [e7844a01] Assorted fixes to the handling of various malloc() failures. (CVS 2413) (check-in: [e7844a01] user: danielk1977 branch: trunk, size: 69733)
2005-03-16
12:15
[53f85449] part of check-in [9a358fc3] Fix some memory leaks that can occur if a memory allocation fails. (CVS 2388) (check-in: [9a358fc3] user: danielk1977 branch: trunk, size: 69733)
2005-03-09
12:26
[8901081a] part of check-in [9d5abc1d] Support for a future ALTER TABLE command to add columns with default values. (CVS 2367) (check-in: [9d5abc1d] user: danielk1977 branch: trunk, size: 69554)
2005-02-12
08:59
[e160aabb] part of check-in [f7858d88] Fix a problem with sub-queries and the flattening optimization. Also handle an extra case of database corruption. (CVS 2324) (check-in: [f7858d88] user: danielk1977 branch: trunk, size: 69509)
2005-02-08
07:50
[b9ffd249] part of check-in [f0d3ca10] Fix for correlated subqueries where the parent is an aggregate. Ticket #1105. (CVS 2318) (check-in: [f0d3ca10] user: danielk1977 branch: trunk, size: 69406)
2005-02-05
12:48
[1b6b6b16] part of check-in [515e5033] Allow expressions (including variables) in LIMIT and OFFSET clauses. Ticket #1096. (CVS 2316) (check-in: [515e5033] user: danielk1977 branch: trunk, size: 68136)
2005-02-04
04:07
[2ed29dc4] part of check-in [2eb90870] Remove code for SQL cursors. (CVS 2312) (check-in: [2eb90870] user: danielk1977 branch: trunk, size: 68104)
2005-01-30
09:17
[06b7ab3d] part of check-in [356d31e0] Have the optimization introduced in (2170) deal with OP_NullRow as well as OP_Column and OP_Recno. Fix for #1086. (CVS 2290) (check-in: [356d31e0] user: danielk1977 branch: trunk, size: 68136)
2005-01-29
08:32
[9965ce8a] part of check-in [b1b50f31] Modify sub-query handling. Tickets #1083 and #1084. (CVS 2286) (check-in: [b1b50f31] user: danielk1977 branch: trunk, size: 68093)
2005-01-23
22:41
[abadaf7b] part of check-in [4daf1d1f] Minor changes to avoid warnings on some compilers. (CVS 2267) (check-in: [4daf1d1f] user: danielk1977 branch: trunk, size: 69409)
2005-01-21
08:13
[bf0875b1] part of check-in [c6fc49e6] Exclude a few more lines of code using OMIT macros. (CVS 2253) (check-in: [c6fc49e6] user: danielk1977 branch: trunk, size: 69407)
2005-01-20
22:48
[ebddbcf2] part of check-in [38401dfb] Bug fixes and enhancements entered while on jury recess. (CVS 2246) (check-in: [38401dfb] user: drh branch: trunk, size: 68910)
13:36
[12b37893] part of check-in [d30fdf0f] Added the SQLITE_OMIT_SUBQUERY compile-time option and the EXISTS operator. Regression tests are currently failing with an assertion fault. (CVS 2245) (check-in: [d30fdf0f] user: drh branch: trunk, size: 68778)
13:03
[09022cbd] part of check-in [417bbba9] Remove a few more lines of code when SQLITE_OMIT_** macros are defined. (CVS 2244) (check-in: [417bbba9] user: danielk1977 branch: trunk, size: 68298)
01:51
[8f8efe75] part of check-in [39cf97a9] Expression generator bug fix. (CVS 2239) (check-in: [39cf97a9] user: drh branch: trunk, size: 68301)
2005-01-19
23:24
[7e26c70d] part of check-in [d8b2a7e0] Continued refactoring of the name resolution logic and query optimizer. (CVS 2236) (check-in: [d8b2a7e0] user: drh branch: trunk, size: 68220)
2005-01-18
17:20
[fdacfb27] part of check-in [b1d4c42d] CREATE TABLE ... AS ... uses short names for columns. Ticket #1036. (CVS 2232) (check-in: [b1d4c42d] user: drh branch: trunk, size: 66703)
04:00
[fa983460] part of check-in [0142ae6f] Refinements to the name resolution logic. Change the name of the keywordhash.c file to keywordhash.h. (CVS 2229) (check-in: [0142ae6f] user: drh branch: trunk, size: 66692)
2005-01-17
22:08
[2a9485be] part of check-in [4a753439] Infrastructure changes to handle name resolution differently. This is needed to fix various long-standing problems with column names in joins. It will also make the implementation of correlated subqueries easier. (CVS 2228) (check-in: [4a753439] user: drh branch: trunk, size: 66030)
2005-01-15
01:52
[22bc51e1] part of check-in [92f9d2b2] Test coverage improvements. (CVS 2215) (check-in: [92f9d2b2] user: drh branch: trunk, size: 65204)
2005-01-13
02:14
[ecfc8fd9] part of check-in [8378455f] Fixes to 'configure' build system. Also extra coverage for main.c. (CVS 2204) (check-in: [8378455f] user: danielk1977 branch: trunk, size: 65494)
2004-12-18
18:40
[d718509e] part of check-in [9b86993f] Improvements to the query optimizer. This is a work in progress. (CVS 2169) (check-in: [9b86993f] user: drh branch: trunk, size: 65429)
2004-12-07
15:41
[d61efc52] part of check-in [4852186a] Only evaluate expressions once for UPDATE and INSERT statements that have BEFORE triggers. Fix for ticket #980. (CVS 2158) (check-in: [4852186a] user: drh branch: trunk, size: 64706)
2004-11-23
01:47
[7987e5f5] part of check-in [8b61d1ae] More work on the implementation of cursors, but they are still not functioning. (CVS 2142) (check-in: [8b61d1ae] user: drh branch: trunk, size: 63817)
2004-11-22
19:12
[b985b42a] part of check-in [fc8c1393] Add initial infrastructure for cursors. In where.c, optimize out clauses of the form "ORDER BY rowid" if a table scan is being performed. Do a reverse table scan if "ORDER BY rowid DESC" is present. (CVS 2141) (check-in: [fc8c1393] user: drh branch: trunk, size: 63811)
2004-11-20
20:44
[511c27a8] part of check-in [d10560c7] Avoid excess heap usage when copying expressions. Ticket #979. (CVS 2127) (check-in: [d10560c7] user: drh branch: trunk, size: 63812)
20:42
[6bb3961c] part of check-in [0f444c03] Avoid excess heap usage when copying expressions. Ticket #979. (CVS 2126) (check-in: [0f444c03] user: drh branch: version_2, size: 51178)
18:13
[90f440e1] part of check-in [36877448] Fix segfaults that might occur after a malloc failure. (CVS 2119) (check-in: [36877448] user: drh branch: trunk, size: 63799)
2004-11-12
03:56
[4ee3e473] part of check-in [8fde833c] Autoincrement code installed. Simple smoke-testing only. No regression tests developed yet. (CVS 2091) (check-in: [8fde833c] user: drh branch: trunk, size: 63746)
2004-11-09
12:44
[5f9afecf] part of check-in [0d27c8ff] Port the "DEFAULT CURRENT_TIME" etc. functionality from an earlier fork of sqlite. (CVS 2082) (check-in: [0d27c8ff] user: danielk1977 branch: trunk, size: 63613)
2004-11-05
05:10
[be18081d] part of check-in [ac2d5a60] More use of sqlite3NestedParse. This version of the code does not work. (CVS 2060) (check-in: [ac2d5a60] user: drh branch: trunk, size: 62957)
2004-10-31
02:22
[3a43e508] part of check-in [be661acf] Insert #ifdefs that can optionally remove features at compiletime resulting in a database engine with a smaller footprint. (CVS 2034) (check-in: [be661acf] user: drh branch: trunk, size: 61881)
2004-10-04
13:19
[2f492bf5] part of check-in [4c817e3f] Save about 800 bytes of code space by aligning TK_ and OP_ constants so that we do not have to translate between them. (CVS 1998) (check-in: [4c817e3f] user: drh branch: trunk, size: 61810)
2004-09-25
13:12
[f255c5c5] part of check-in [cb631a13] Code simplifications and size reductions. (CVS 1983) (check-in: [cb631a13] user: drh branch: trunk, size: 60940)
2004-09-24
12:24
[16ccea21] part of check-in [9001e222] Fix for tickets #912 and #922. Problem introduced by check-in (1973). (CVS 1975) (check-in: [9001e222] user: drh branch: trunk, size: 61339)
2004-09-19
02:15
[4a674ed1] part of check-in [4871c77f] Add comments to unused P3 fields of selected instructions when NDEBUG is not defined. This makes VDBE program dumps more readable during debugging. (CVS 1973) (check-in: [4871c77f] user: drh branch: trunk, size: 61361)
00:50
[a6d95632] part of check-in [eb9b501a] Merge the ListPush and ListPop VDBE opcodes into ContextPush and ContextPop. (CVS 1972) (check-in: [eb9b501a] user: drh branch: trunk, size: 61132)
2004-09-07
16:19
[9130794d] part of check-in [435b3f30] Wildcards with the same name map into the same variable number. New api sqlite3_bind_parameter_index() added to map wildcard names into wildcard index numbers. Support for "?nnn" wildcards. (CVS 1945) (check-in: [435b3f30] user: drh branch: trunk, size: 61080)
2004-09-06
17:24
[5b6881a2] part of check-in [3ddf5a9d] Fix a naming conflict between sqlite versions 2 and 3. An open sqlite3 connection now *must* be called "sqlite3". You cannot call it "sqlite". This might break existing code. (CVS 1941) (check-in: [3ddf5a9d] user: drh branch: trunk, size: 58706)
2004-09-01
03:06
[d6183059] part of check-in [9c411c3c] Optimizations on the SELECT code generator. (CVS 1926) (check-in: [9c411c3c] user: drh branch: trunk, size: 58705)
2004-08-31
13:45
[3c3dd119] part of check-in [8fd65e70] Simplifications and optimizations. Also: disable the corrupt.test for now. (CVS 1924) (check-in: [8fd65e70] user: drh branch: trunk, size: 58384)
2004-08-21
17:54
[36943867] part of check-in [bd6649c5] Optimizations to the code generator. (CVS 1899) (check-in: [bd6649c5] user: drh branch: trunk, size: 58492)
2004-08-20
16:02
[39ef5c14] part of check-in [d3be0b7c] Add support for named wildcards in SQL statements. (CVS 1897) (check-in: [d3be0b7c] user: drh branch: trunk, size: 57727)
2004-08-08
23:39
[f11a1e5c] part of check-in [81d91d14] Fix problems in the handling of malloc failures. (CVS 1882) (check-in: [81d91d14] user: drh branch: trunk, size: 57621)
20:22
[f4a883c0] part of check-in [b0659738] Make sure the argument to ctype.h macros is always an unsigned character. Ticket #839. (CVS 1881) (check-in: [b0659738] user: drh branch: trunk, size: 57668)
2004-07-26
00:31
[0b8c8932] part of check-in [1186e3ce] Various size optimizations. (CVS 1867) (check-in: [1186e3ce] user: drh branch: trunk, size: 57665)
2004-07-22
17:10
[75182704] part of check-in [49c2ad8a] Another attempt at fixing the memory allocation problem in sqliteExprListDup(). (CVS 1855) (check-in: [49c2ad8a] user: drh branch: version_2, size: 51165)
16:32
[b73ba23d] part of check-in [09494cab] Bug fix in allocation of expression lists after a malloc() failure. (CVS 1854) (check-in: [09494cab] user: drh branch: version_2, size: 51143)
2004-07-21
02:53
[a4e8ac69] part of check-in [65c3af74] Minor coding enhancements. (CVS 1839) (check-in: [65c3af74] user: drh branch: trunk, size: 58232)
2004-07-20
02:05
[4ac85257] part of check-in [5c77b332] Fix an obscure memory leak in the expression list allocator. (CVS 1835) (check-in: [5c77b332] user: drh branch: version_2, size: 51116)
2004-07-19
00:39
[df21bde6] part of check-in [88a4e400] When comparing two expressions do not apply affinity to either operand. Ticket #805. (CVS 1810) (check-in: [88a4e400] user: drh branch: trunk, size: 58381)
2004-06-28
01:11
[d8ee92a9] part of check-in [fae7c6e0] Fix a bunch of harmless warnings. (CVS 1749) (check-in: [fae7c6e0] user: danielk1977 branch: trunk, size: 58349)
2004-06-23
12:35
[db0e1fdc] part of check-in [f31c84a6] Fix a bug in the previous checkin. (CVS 1677) (check-in: [f31c84a6] user: danielk1977 branch: trunk, size: 58337)
12:15
[31e48dd1] part of check-in [db6bab57] Add some tests for user functions that prefer various text encodings. (CVS 1676) (check-in: [db6bab57] user: danielk1977 branch: trunk, size: 58360)
2004-06-21
09:06
[a0372aa8] part of check-in [bbd3e933] Add the OP_Concat8 opcode, similar in concept to OP_String8. (CVS 1648) (check-in: [bbd3e933] user: danielk1977 branch: trunk, size: 58337)
07:36
[c5c875be] part of check-in [ee9dffd9] Update sqlite3_column_decltype() to return NULL as the declartion type for an expression that is not a column reference. (CVS 1646) (check-in: [ee9dffd9] user: danielk1977 branch: trunk, size: 58336)
2004-06-19
14:49
[9ae0e55a] part of check-in [99d0436e] Omit the sqlite3VdbeCode() routine. Use sqlite3NameFromToken() more to reduce the amount of code. (CVS 1639) (check-in: [99d0436e] user: drh branch: trunk, size: 59329)
2004-06-17
07:53
[01cdf6a6] part of check-in [a71a9ff1] Remove redundant opcodes OP_MakeKey and OP_MakeIdxKey. (CVS 1612) (check-in: [a71a9ff1] user: danielk1977 branch: trunk, size: 59672)
2004-06-16
12:00
[657ca11f] part of check-in [6001c5e1] Trivial modifications to prevent compiler warnings. (CVS 1606) (check-in: [6001c5e1] user: danielk1977 branch: trunk, size: 59663)
2004-06-15
16:51
[7c19fbc4] part of check-in [07b90f36] Assorted memory leak fixes. (CVS 1600) (check-in: [07b90f36] user: danielk1977 branch: trunk, size: 59655)
2004-06-12
09:25
[f9eafe34] part of check-in [5903f538] (1) Modifications to the user-function interface and (2) Internal changes to automatically created indices. (CVS 1575) (check-in: [5903f538] user: danielk1977 branch: trunk, size: 59666)
00:42
[03ab3de3] part of check-in [9b84f2f4] Use the SQLITE_UTF* symbols instead of the old internal TEXT_Utf* symbols. (CVS 1572) (check-in: [9b84f2f4] user: danielk1977 branch: trunk, size: 58871)
2004-06-11
10:51
[97f3dd76] part of check-in [66835ee6] Fix various collation sequence issues. (CVS 1568) (check-in: [66835ee6] user: danielk1977 branch: trunk, size: 58865)
2004-06-10
10:50
[34e63e96] part of check-in [edf069b9] Add the sqlite3_collation_needed() API and fix some error handling cases involving unknown collation sequences. (CVS 1562) (check-in: [edf069b9] user: danielk1977 branch: trunk, size: 58541)
2004-06-09
09:55
[3aea8faa] part of check-in [c634e71f] Some progress on user-defined collation sequences. (CVS 1544) (check-in: [c634e71f] user: danielk1977 branch: trunk, size: 58317)
2004-06-06
12:41
[2b18dd4e] part of check-in [30b81507] Performance improvements for LIKE. It is still too slow though. (CVS 1535) (check-in: [30b81507] user: danielk1977 branch: trunk, size: 55608)
09:44
[f05a5594] part of check-in [92337d8f] Enhance user function API to support association of meta-data with constant arguments and the specification of text encoding preference. The LIKE operator takes advantage of both. (CVS 1534) (check-in: [92337d8f] user: danielk1977 branch: trunk, size: 55576)
2004-06-05
10:22
[c55461f2] part of check-in [c2899b43] Add the sqlite3_set_auxdata() and sqlite3_get_auxdata() APIs. (CVS 1532) (check-in: [c2899b43] user: danielk1977 branch: trunk, size: 54241)
2004-05-30
01:38
[5145de7d] part of check-in [fcd84eba] Do not include the P3 parameter on OP_Integer opcodes if the integer will fit in 32 bits. The P3 conversion is slow. (CVS 1494) (check-in: [fcd84eba] user: drh branch: trunk, size: 54133)
2004-05-29
11:24
[416e8970] part of check-in [3225de89] Transform OP_HexBlob and OP_String8 to OP_Blob and OP_String the first time they are executed. (CVS 1492) (check-in: [3225de89] user: danielk1977 branch: trunk, size: 54096)
2004-05-28
08:21
[1f7b853b] part of check-in [ebd564d1] Tables and indices use the same record format. (CVS 1481) (check-in: [ebd564d1] user: drh branch: trunk, size: 54083)
2004-05-27
09:28
[3f43cae2] part of check-in [67a140cf] Various bugfixes. 68 Test cases still fail. (CVS 1471) (check-in: [67a140cf] user: danielk1977 branch: trunk, size: 54028)
03:12
[70d6c955] part of check-in [f33d15d9] Fixes to the MEM changes. The library now links. (CVS 1470) (check-in: [f33d15d9] user: drh branch: trunk, size: 53790)
2004-05-26
16:54
[90573f18] part of check-in [36e03162] Remove dataType and includeTypes flags from function definitions. Added new P3_FUNCDEF type for P3 arguments on opcodes. Fixes to several user functions. 28 tests fail now. (CVS 1464) (check-in: [36e03162] user: drh branch: trunk, size: 53998)
2004-05-21
13:39
[5b283e68] part of check-in [5524075e] Remove the OP_SetFound opcode and its cousins. (CVS 1430) (check-in: [5524075e] user: drh branch: trunk, size: 54447)
02:14
[fb92ef7e] part of check-in [3b55095e] Most sorting problems are fixed. Dead code has been removed. 3 test failures remain but will be fixed by the new function API once it gets implemented. (CVS 1425) (check-in: [3b55095e] user: drh branch: trunk, size: 54929)
2004-05-20
22:16
[cba2b8c0] part of check-in [a6cb09d7] Add internal support for collating sequences. This breaks 244 tests. (CVS 1420) (check-in: [a6cb09d7] user: drh branch: trunk, size: 54887)
13:54
[22ee818d] part of check-in [5c1e47a2] sqlite3MemCompare now takes a CollSeq* argument. (CVS 1419) (check-in: [5c1e47a2] user: drh branch: trunk, size: 56773)
2004-05-19
20:41
[34fceec0] part of check-in [34f03ba6] Correctly handle 64-bit integers in SQL statements. (CVS 1408) (check-in: [34f03ba6] user: drh branch: trunk, size: 56427)
2004-05-18
10:06
[de3d86e9] part of check-in [ad4a9641] Fix many problems with manifest types and column affinity. Most things are working now. (CVS 1393) (check-in: [ad4a9641] user: danielk1977 branch: trunk, size: 56421)
2004-05-17
10:48
[d39afb30] part of check-in [0f6c9b05] More changes to support the new types model. Compound SELECTs are currently broken. (CVS 1389) (check-in: [0f6c9b05] user: danielk1977 branch: trunk, size: 56377)
2004-05-16
22:55
[05fbd5df] part of check-in [9321e742] Fix a bug meant real numbers with a negative sign were being stored as strings by default (instead of IEEE floats). (CVS 1388) (check-in: [9321e742] user: danielk1977 branch: trunk, size: 53027)
11:57
[28095b56] part of check-in [5cba8a51] Fix two bugs that were causing lots of tests to fail. (CVS 1386) (check-in: [5cba8a51] user: danielk1977 branch: trunk, size: 53029)
11:15
[d2d1ddc0] part of check-in [a4af838f] More changes to support the manifest type model. A few things are currently broken. (CVS 1385) (check-in: [a4af838f] user: danielk1977 branch: trunk, size: 53004)
2004-05-11
07:11
[a3aed705] part of check-in [dfde1121] Remove code dealing with old file formats. (CVS 1354) (check-in: [dfde1121] user: danielk1977 branch: trunk, size: 51366)
2004-05-10
10:34
[7667e214] part of check-in [ba2ba242] Change the names of external symbols from sqlite_XXX to sqlite3_XXX. (CVS 1337) (check-in: [ba2ba242] user: danielk1977 branch: trunk, size: 51456)
2004-05-08
08:23
[efd9daf5] part of check-in [8af6474c] Change lots of internal symbols from sqliteXXX to sqlite3XXX so that the library links again. It doesn't work yet, due to changes in the btree layer calling convention. (CVS 1324) (check-in: [8af6474c] user: danielk1977 branch: trunk, size: 51454)
2004-04-23
17:04
[8c3f5603] part of check-in [7ace5762] Get the temp_store and default_temp_store pragmas working. Update the documentation. Also fix a malloc problem that popped up during the regression testing. (CVS 1302) (check-in: [7ace5762] user: drh branch: trunk, size: 51173)
2004-03-17
23:32
[938e4d34] part of check-in [fc7a7975] Fix a VDBE stack overflow that occurs when the left-hand side of an IN expression is NULL and the result is stored on the stack rather than used to control a jump. Ticket #668. (CVS 1299) (check-in: [fc7a7975] user: drh branch: trunk, size: 51005)
2004-02-25
13:47
[95ea5d47] part of check-in [adbe31ad] Min() and max() functions honor the distinction between TEXT and NUMERIC data. Ticket #623. typeof() is now a user function. Some tests are now failing due to ticket #521. (CVS 1272) (check-in: [adbe31ad] user: drh branch: trunk, size: 51005)
2004-02-22
20:05
[61b71ce2] part of check-in [51f1e8f7] Use sqliteVdbeOp3 instead of sqliteVdbeChangeP3 where applicable. (CVS 1266) (check-in: [51f1e8f7] user: drh branch: trunk, size: 50590)
18:40
[86eaf80e] part of check-in [69aac043] Use sqliteErrorMsg instead of sqliteSetString whereever practical. (CVS 1264) (check-in: [69aac043] user: drh branch: trunk, size: 50677)
2004-02-21
19:17
[7bb3a1ff] part of check-in [7d5ede5b] Fix a long-standing memory leak that the new last_insert_rowid() tests brought to light. (CVS 1259) (check-in: [7d5ede5b] user: drh branch: trunk, size: 50808)
2004-02-11
10:35
[fdd57e18] part of check-in [1673bf7c] Fix an uninitialized variable in expr.c. Ticket #604. (CVS 1225) (check-in: [1673bf7c] user: drh branch: trunk, size: 50800)
2004-01-25
22:44
[3928893e] part of check-in [d3648034] Modularize the column name resolution code so that it is smaller, faster, and ready for some enhancements that will fix long-standing name resolutions problems. (CVS 1198) (check-in: [d3648034] user: drh branch: trunk, size: 50795)
2004-01-16
16:42
[e6a05bec] part of check-in [92e7f780] More compaction of expr.c. (CVS 1184) (check-in: [92e7f780] user: drh branch: trunk, size: 49507)
15:55
[5ecbce47] part of check-in [d292ba51] Incremental code compaction in expr.c. Now about 4% smaller. Lots more work to do. (CVS 1183) (check-in: [d292ba51] user: drh branch: trunk, size: 50379)
2004-01-14
03:12
[866a6d7a] part of check-in [ea1ad465] Remove an incomplete comment that somehow snuck into the sources. (CVS 1172) (check-in: [ea1ad465] user: drh branch: trunk, size: 50200)
2004-01-06
01:13
[abb40922] part of check-in [b8381d9f] Fix problem in the code generator were incorrect code was being created if the SQL source contained a negative integer that was too large to fit in a 32-bit signed integer variable. Ticket #552. (CVS 1157) (check-in: [b8381d9f] user: drh branch: trunk, size: 50211)
2003-12-10
03:13
[a14401a5] part of check-in [d6549954] Fix a bulk-memory initialization problem in the expression list logic. (CVS 1130) (check-in: [d6549954] user: drh branch: trunk, size: 50096)
2003-09-23
10:25
[d4d8eca6] part of check-in [4bb256ee] A failed malloc() could have resulted in a segfault. Fixed by this check-in. (CVS 1102) (check-in: [4bb256ee] user: drh branch: trunk, size: 50073)
2003-09-06
22:18
[8acdc2f7] part of check-in [990bb118] Update Makefile.in for the new vdbeaux.c file. Remove the experimental "sqlite_instantiate()" routine and replace it with "sqlite_bind()" which is more like ODBC and JDBC. (CVS 1095) (check-in: [990bb118] user: drh branch: trunk, size: 50059)
01:10
[0c10a35c] part of check-in [912f47c7] The beginnings of changes to support pre-compiled SQL. Mostly untested, though all regression tests to pass. (CVS 1093) (check-in: [912f47c7] user: drh branch: trunk, size: 50069)
2003-07-30
12:34
[03c321ac] part of check-in [da627325] The {quote: SrcList} object was not being expanded correctly by a call to sqliteSrcListAppend() if the {quote: SrcList} had previously been duplicated by a call to sqliteSrcListDup(). Ticket #416. This check-in fixes that problem by keeping a separate nAlloc field on {quote: SrcList}. A similar change is made to {quote: IdList} and {quote: ExprList} to avoid future problems. (CVS 1067) (check-in: [da627325] user: drh branch: trunk, size: 49914)
2003-07-20
01:16
[3c07e7b5] part of check-in [543479e3] Fix the LIMIT clause so that it applies to the entire query in a compound query. Prior to this change LIMITs on compound queries did not work at all. Ticket #393. (CVS 1058) (check-in: [543479e3] user: drh branch: trunk, size: 49817)
2003-05-31
16:21
[ebdb0f3e] part of check-in [7202d4f1] Tighter binding of views, triggers, and indices to their respective databases. Ticket #323. Much more testing needs to be done to the sqliteFix...() routines in attach.c. (CVS 990) (check-in: [7202d4f1] user: drh branch: trunk, size: 49774)
2003-05-02
14:32
[a666ef52] part of check-in [be7aed20] VDBE cursors numbers for tables in a join do not have to be consecutive. This is one step on the road to fixing ticket #272. (CVS 947) (check-in: [be7aed20] user: drh branch: trunk, size: 49714)
2003-04-22
20:30
[46e2bb93] part of check-in [c675a550] Update the authorizer API so that it reports the database that table and indices belong to and so that it reports when actions are taken in response to a trigger. (CVS 928) (check-in: [c675a550] user: drh branch: trunk, size: 49683)
2003-04-19
17:27
[3c0ff6b7] part of check-in [767f1af2] Modify the optimizer so that it does not assume that functions are constant. (CVS 920) (check-in: [767f1af2] user: drh branch: trunk, size: 49294)
2003-04-15
19:22
[942f535c] part of check-in [0b996959] Get triggers working on tables with INTEGER PRIMARY KEYs. Ticket #291. This may also fix #159. Still need to add tests so both bugs remain open for the time being. (CVS 908) (check-in: [0b996959] user: drh branch: trunk, size: 49254)
2003-03-31
02:12
[b8daee83] part of check-in [1d3fc977] Add the sqliteErrorMsg() function and use it to generate error message text during parsing and code generation. This simplifies the code somewhat and makes it easier to handle names with a database prefix. (CVS 891) (check-in: [1d3fc977] user: drh branch: trunk, size: 49312)
2003-03-27
12:51
[eae205a2] part of check-in [d2fb2bb5] Changes to the "sqlite" structure that allow simultaneous operations on multiple database files. Many regession tests pass - but not all of them. Do not use this version except for debugging SQLite itself. (CVS 883) (check-in: [d2fb2bb5] user: drh branch: trunk, size: 49675)
2003-03-20
01:16
[8af430cd] part of check-in [a5d8fc95] Record the database name in addition to the table name for DELETE, INSERT, and UPDATE statements. (CVS 879) (check-in: [a5d8fc95] user: drh branch: trunk, size: 48981)
2003-01-31
17:16
[bd690b3a] part of check-in [187d9c40] Allow double-quoted strings as string constants in the IN operator. As a side-efffect, allow the GROUP BY clause to refer to columns by their integer column number. Ticket #237. (CVS 856) (check-in: [187d9c40] user: drh branch: trunk, size: 49002)
2003-01-29
18:46
[359ae283] part of check-in [ccc82f1a] Better error messages on constraint violations. Additional tests and bug fixes for the callback-free API. (CVS 854) (check-in: [ccc82f1a] user: drh branch: trunk, size: 49036)
2003-01-18
20:11
[382839b9] part of check-in [71cc292d] Fix datatype reporting and collating sequence selection so that it works correctly on views and with the UNION, EXCEPT, and INTERCEPT operators. (CVS 839) (check-in: [71cc292d] user: drh branch: trunk, size: 49037)
2003-01-14
02:49
[19f315a6] part of check-in [cc2ae781] More tests of the sqlite_set_authorizer() API together with fixes for bugs that the new tests uncovered. (CVS 832) (check-in: [cc2ae781] user: drh branch: trunk, size: 49034)
2003-01-12
18:02
[d8b319f2] part of check-in [52d5007f] Initial check-in of the code for the new sqlite_set_authorizer() API function. The code is mostly untested at this point. (CVS 827) (check-in: [52d5007f] user: drh branch: trunk, size: 49076)
2002-10-31
00:09
[9427b4d1] part of check-in [8ad01894] Fix an assert that might fail if malloc() fails. (CVS 774) (check-in: [8ad01894] user: drh branch: trunk, size: 48884)
2002-10-22
23:38
[108017b9] part of check-in [3b68aa25] Correctly handle column names and string constants in parentheses. Fix for ticket #179. (CVS 770) (check-in: [3b68aa25] user: drh branch: trunk, size: 48847)
2002-09-08
00:04
[e1327eb0] part of check-in [eb54d455] Modify the build process so that the VDBE opcode numbers and the table that contains the opcode names are both automatically generated. This makes it much easier to create new VDBE opcodes. (CVS 746) (check-in: [eb54d455] user: drh branch: trunk, size: 49561)
2002-08-24
18:24
[ee027b90] part of check-in [22d8726e] Change the way token memory is allocated in an effort to fix ticket #136. There is now a memory leak when using views of views. (CVS 725) (check-in: [22d8726e] user: drh branch: trunk, size: 49311)
2002-07-18
00:34
[8a6b669b] part of check-in [20d152fc] Fix for ticket #107: Fix a design defect in indices that was causing queries to fail when using an index on a column containing an empty string. This fix is an incompatible file-format change. (CVS 681) (check-in: [20d152fc] user: drh branch: trunk, size: 48533)
2002-07-16
02:05
[5c3b241a] part of check-in [93710f7e] Fix for ticket #100: Correctly handle ON and USING clauses of JOINs within a VIEW. (CVS 679) (check-in: [93710f7e] user: drh branch: trunk, size: 48533)
2002-07-02
13:05
[4b25ee5e] part of check-in [85793a4f] Fix for ticket #92: Correct the sqliteExprCompare() function so that is takes into account the iTable and iColumn fields of the Expr structure. Otherwise, "min(a)" and "min(b)" will compare equal to each other in views. (CVS 658) (check-in: [85793a4f] user: drh branch: trunk, size: 48239)
2002-06-29
02:20
[ecd8267f] part of check-in [91c0db66] Add a few more tests and fix a few bugs that the tests uncovered. (CVS 652) (check-in: [91c0db66] user: drh branch: trunk, size: 48170)
2002-06-28
12:18
[c5b8ee4d] part of check-in [96515b81] Additional test cases added. The following bug fixed: A segfault was occurring if a VIEW consisted of a join with a USING clause. (CVS 651) (check-in: [96515b81] user: drh branch: trunk, size: 48177)
2002-06-26
02:45
[d49737db] part of check-in [bdb006b8] The datatype of the i-th column in the result set is given by the azColName(argc+1+i) parameter to the callback. (CVS 647) (check-in: [bdb006b8] user: drh branch: trunk, size: 48294)
2002-06-20
11:36
[cb50a72c] part of check-in [cbbc858d] This patch contains the beginnings of the data-typing infrastructure. The new build-in TypeOf() function is added. New opcodes for doing pure text comparisons are added. Most changes are disabled pending the 2.6.0 release. (CVS 632) (check-in: [cbbc858d] user: drh branch: trunk, size: 47890)
2002-06-17
17:07
[ec0689af] part of check-in [05783a9d] Add preliminary logic for the eventual move to having separate TEXT and NUMTEXT datatypes. Also change the version number to 2.5.0 in preparation for an interim release. (CVS 625) (check-in: [05783a9d] user: drh branch: trunk, size: 43989)
2002-06-11
02:25
[2dcfcd0b] part of check-in [d4a2fb10] Add RAISE() function, which allows more advanced flow-control in trigger programs (ticket #55) (CVS 614) (check-in: [d4a2fb10] user: danielk1977 branch: trunk, size: 43965)
2002-06-09
01:16
[cd2e3311] part of check-in [ad962479] Fix for ticket #65: If an integer value is too big to be represented as a 32-bit integer, then treat it as a string. (CVS 611) (check-in: [ad962479] user: drh branch: trunk, size: 43220)
2002-06-02
18:22
[8ce9c226] part of check-in [637ee587] Fix a compiler warning. (CVS 604) (check-in: [637ee587] user: drh branch: trunk, size: 42850)
18:19
[4c1b3b3d] part of check-in [6fdcee3c] Add the ability to parse FOREIGN KEYs. Foreign keys are still ignored, but at least they now do not cause a syntax error. (CVS 603) (check-in: [6fdcee3c] user: drh branch: trunk, size: 42841)
16:09
[4ee07b53] part of check-in [7acbf84b] Enhance the ORDER BY clause so that an integer term means to sort by the corresponding column. (CVS 602) (check-in: [7acbf84b] user: drh branch: trunk, size: 42823)
2002-05-31
15:51
[6bb74762] part of check-in [da61aa1d] Refinements to NULL processing: NULLs are indistinct for DISTINCT and UNION. Multiplying a NULL by zero yields zero. In a CASE expression, a NULL comparison is considered false, not NULL. With these changes, NULLs in SQLite now work the same as in PostgreSQL and in Oracle. (CVS 600) (check-in: [da61aa1d] user: drh branch: trunk, size: 42028)
2002-05-30
02:35
[86f0c6f2] part of check-in [4debc8db] Bug fix: bad code was generated for when the first operand of a CASE was NULL. (CVS 598) (check-in: [4debc8db] user: drh branch: trunk, size: 42621)
2002-05-26
20:54
[1a7a2f5f] part of check-in [90511737] NULL values are distinct. A comparison involving a NULL is always false. Operations on a NULL value yield a NULL result. This change makes SQLite operate more like the SQL spec, but it may break existing applications that assumed the old behavior. All the old tests pass but we still need to add new tests to better verify the new behavior. Fix for ticket #44. (CVS 589) (check-in: [90511737] user: drh branch: trunk, size: 42555)
2002-05-24
02:04
[818a702b] part of check-in [a167b71d] Split the IdList structure into IdList and SrcList. SrcList is used to represent a FROM clause and IdList is used for everything else. This change allows SrcList to grow to support outer joins without burdening the other uses of IdList. (CVS 584) (check-in: [a167b71d] user: drh branch: trunk, size: 41366)
2002-05-23
02:09
[535c2468] part of check-in [01ad352c] Fix some places where a malloc() failure would lead to a segfault. (CVS 580) (check-in: [01ad352c] user: drh branch: trunk, size: 40837)
2002-05-21
13:43
[01e1e395] part of check-in [55e7d654] Double-quoted strings resolve to column names if possible. Single-quoted strings continue to be interpreted as string literals. (CVS 576) (check-in: [55e7d654] user: drh branch: trunk, size: 40779)
2002-05-19
23:43
[2c7535ba] part of check-in [8a4195c7] Style fixes to triggers code in various *.c files (partial fix to ticket #39) (CVS 571) (check-in: [8a4195c7] user: danielk1977 branch: trunk, size: 40222)
2002-05-15
08:30
[6888e37e] part of check-in [794bf67b] Added FOR EACH ROW triggers functionality (CVS 562) (check-in: [794bf67b] user: danielk1977 branch: trunk, size: 40144)
2002-04-20
14:24
[cf8d2ea1] part of check-in [51572bf7] Fix for ticket #1: Implement the GLOB and LIKE operators as functions that can be overridden. This way, a developer can change the LIKE operator to be case sensitive, for example. (CVS 537) (check-in: [51572bf7] user: drh branch: trunk, size: 39344)
2002-03-24
13:13
[e7a1e22b] part of check-in [836b59d0] Added support for CASE expressions - patches from Dan Kennedy. (CVS 437) (check-in: [836b59d0] user: drh branch: trunk, size: 39885)
2002-03-13
18:54
[0752b45a] part of check-in [c0e3f1c5] Fix bug in anonymous subquery in a join. Parser requires a semicolon or end-of-input before executing. (CVS 429) (check-in: [c0e3f1c5] user: drh branch: trunk, size: 38424)
2002-03-06
03:08
[d2adad05] part of check-in [b7a7dae9] Optimizations to the processing of integer comparisons. (CVS 420) (check-in: [b7a7dae9] user: drh branch: trunk, size: 38413)
2002-03-03
18:59
[e12ca550] part of check-in [6121e5ab] VIEWs are bound to tables when they are used, not when they are first entered. This works around the problem of what to do if a table is deleted that a view refers to. (CVS 415) (check-in: [6121e5ab] user: drh branch: trunk, size: 38139)
03:42
[178248fd] part of check-in [dfe431c9] Fix a memory leak in expression processing. (CVS 414) (check-in: [dfe431c9] user: drh branch: trunk, size: 38075)
2002-03-02
17:04
[17e3db6f] part of check-in [d5d3e79c] Subquery flattening is implemented and passes all regression tests. We still need to add addition tests to the suite to further exercise the flattener, however. (CVS 408) (check-in: [d5d3e79c] user: drh branch: trunk, size: 38090)
2002-02-28
03:04
[b70bedaf] part of check-in [b00cf110] The new function code passes regression tests. (CVS 403) (check-in: [b00cf110] user: drh branch: trunk, size: 39083)
01:46
[173965f4] part of check-in [6af10cc5] Fix the coredump. There are still problems in the test suite though. (CVS 402) (check-in: [6af10cc5] user: drh branch: trunk, size: 39048)
00:41
[32a2b582] part of check-in [50797fee] Completely remove the old SQL function system and replace it with the new user functions. The code currently compiles but it coredumps on the test suite. Do not use in its present state. (CVS 400) (check-in: [50797fee] user: drh branch: trunk, size: 39016)
2002-02-27
19:00
[ea2209a6] part of check-in [633951f0] Revise the API for user-defined functions. (CVS 398) (check-in: [633951f0] user: drh branch: trunk, size: 43684)
01:53
[92ff4a2d] part of check-in [085b0d67] The user-defined function routines failed to detect a malloc() failure. (CVS 397) (check-in: [085b0d67] user: drh branch: trunk, size: 43709)
01:47
[4716119e] part of check-in [668ef638] Bug fixes in the VIEW implementation. (CVS 396) (check-in: [668ef638] user: drh branch: trunk, size: 43686)
2002-02-26
23:55
[ad07b793] part of check-in [63b87f2e] Comment changes only. (CVS 395) (check-in: [63b87f2e] user: drh branch: trunk, size: 40954)
2002-02-24
03:25
[5ed59aed] part of check-in [1e037eb3] Code for user-defined aggregates added. Legacy tests all pass but there has been no testing of the new user-defined aggregate code. (CVS 392) (check-in: [1e037eb3] user: drh branch: trunk, size: 40950)
2002-02-23
23:45
[4f9db24c] part of check-in [c490a1ff] Added support for user-defined normal functions. Support for user-defined aggregates is pending. (CVS 390) (check-in: [c490a1ff] user: drh branch: trunk, size: 40707)
02:32
[6b641c43] part of check-in [39fed2df] Code to implement CREATE VIEW is in place. A quick smoke test shows that it works, but there are probably still many bugs. (CVS 387) (check-in: [39fed2df] user: drh branch: trunk, size: 37689)
2002-02-14
21:42
[7aff65ea] part of check-in [e17a858c] All identifiers to be quoted in square brackets, for compatibility with MS-Access. (CVS 370) (check-in: [e17a858c] user: drh branch: trunk, size: 32575)
2002-01-30
04:32
[a2a87dbd] part of check-in [9bbddb8e] Better testing of the ON CONFLICT logic. (CVS 358) (check-in: [9bbddb8e] user: drh branch: trunk, size: 32551)
2002-01-22
14:11
[4cae8bf4] part of check-in [035984a5] Constant ORDER BY or GROUP BY expressions are an error. (CVS 352) (check-in: [035984a5] user: drh branch: trunk, size: 32693)
03:13
[3c4359f9] part of check-in [3684beab] The right-hand side of an AS in a SELECT can be used within expressions of the WHERE, ORDER BY, GROUP BY, and/or HAVING clauses. (CVS 350) (check-in: [3684beab] user: drh branch: trunk, size: 32510)
2002-01-06
17:07
[8169261a] part of check-in [9b0be4fc] Comment updates most. Also some small changes to the VDBE. (CVS 339) (check-in: [9b0be4fc] user: drh branch: trunk, size: 31032)
2002-01-04
03:09
[fcdb7416] part of check-in [011be9a9] An attempt to delete a single row using a WHERE clause that specifies the rowid would result in an error if the rowid did not exist. This problem has been resolved. (CVS 338) (check-in: [011be9a9] user: drh branch: trunk, size: 30628)
2001-12-21
14:30
[ef1c365c] part of check-in [236a54d2] Added support for the INTEGER PRIMARY KEY column type. (CVS 333) (check-in: [236a54d2] user: drh branch: trunk, size: 30628)
2001-11-24
00:31
[6b25c5bb] part of check-in [fc2aae04] Fix comparison functions so that they are consistent with the order of elements in indices. Fix the handling of large integers. (CVS 317) (check-in: [fc2aae04] user: drh branch: trunk, size: 30266)
2001-11-08
00:45
[53515a7b] part of check-in [262bcd17] The new code for taking advantage of inequalities in WHERE clauses is in place. It appears to work. (CVS 305) (check-in: [262bcd17] user: drh branch: trunk, size: 30361)
2001-10-22
02:58
[2dd0252c] part of check-in [f8328a5f] More changes for 2.0.7. (CVS 293) (check-in: [f8328a5f] user: drh branch: trunk, size: 31025)
2001-10-13
02:59
[c1381b82] part of check-in [75e90cf0] 2.0.3 (CVS 287) (check-in: [75e90cf0] user: drh branch: trunk, size: 31031)
01:06
[5aa5db4d] part of check-in [288ef124] Remove the P3 and label arguments from the internal sqliteVdbeAddOp() function. This makes the code easier to read and perhaps smaller as well. (CVS 286) (check-in: [288ef124] user: drh branch: trunk, size: 29795)
2001-10-06
16:33
[2f68829d] part of check-in [b63b3f36] Adding table column query capability to support ODBC. (CVS 278) (check-in: [b63b3f36] user: drh branch: trunk, size: 30055)
2001-09-16
00:13
[343a515a] part of check-in [4e926efe] Disclaimed copyright. Preparing for release 2.0. (CVS 250) (check-in: [4e926efe] user: drh branch: trunk, size: 30053)
2001-09-14
03:24
[bcd91d04] part of check-in [e7b65e37] All tests now pass. But there are still issues. For example, inserts are way too slow. And additional tests are needed for new features. (CVS 243) (check-in: [e7b65e37] user: drh branch: trunk, size: 30598)
2001-09-13
14:46
[83b6a7ed] part of check-in [a0a1e701] The BTree changes are now integrated and the whole thing compiles and links. I have not yet tried to run it, though. (CVS 239) (check-in: [a0a1e701] user: drh branch: trunk, size: 30600)
2001-07-23
14:33
[f6476000] part of check-in [029e3a3a] Add ability to quote table and column names in expression. (CVS 235) (check-in: [029e3a3a] user: drh branch: trunk, size: 30594)
2001-04-11
14:28
[c4c24c3a] part of check-in [86b30cd0] better handling of out-of-memory errors (CVS 207) (check-in: [86b30cd0] user: drh branch: trunk, size: 30537)
2001-04-04
21:22
[74538360] part of check-in [490d08a8] Clean up some compiler warnings (CVS 200) (check-in: [490d08a8] user: drh branch: trunk, size: 30339)
11:48
[cdf54a3b] part of check-in [35a8feed] Added transaction support (CVS 196) (check-in: [35a8feed] user: drh branch: trunk, size: 30402)
2001-01-15
22:51
[49bc261f] part of check-in [c6ffb7ec] continued progress toward version 2.0 (CVS 177) (check-in: [c6ffb7ec] user: drh branch: trunk, size: 29558)
2000-11-28
20:47
[7d7646af] part of check-in [5518e012] Comment changes only (CVS 166) (check-in: [5518e012] user: drh branch: trunk, size: 29555)
2000-08-28
15:51
[e8e350d7] part of check-in [0eef538f] Added length() and substr() functions (CVS 143) (check-in: [0eef538f] user: drh branch: trunk, size: 29553)
2000-06-21
13:59
[2fa63f08] part of check-in [e1bf96a4] :-) (CVS 104) (check-in: [e1bf96a4] user: drh branch: trunk, size: 28672)
2000-06-17
13:12
[88ff9ea1] part of check-in [6ed35a1d] :-) (CVS 101) (check-in: [6ed35a1d] user: drh branch: trunk, size: 28639)
2000-06-16
20:51
[a6797a4b] part of check-in [1d4fe559] :-) (CVS 100) (check-in: [1d4fe559] user: drh branch: trunk, size: 28578)
2000-06-11
23:50
[81512e0a] part of check-in [0f93c27c] added the fcnt() function for testing (CVS 92) (check-in: [0f93c27c] user: drh branch: trunk, size: 28399)
2000-06-08
15:10
[57906651] part of check-in [61c381e7] :-) (CVS 81) (check-in: [61c381e7] user: drh branch: trunk, size: 27746)
13:36
[8c79de4d] part of check-in [bf98cf82] remove all memory leaks (CVS 80) (check-in: [bf98cf82] user: drh branch: trunk, size: 27692)
11:25
[ab419c2f] part of check-in [305b043f] :-) (CVS 79) (check-in: [305b043f] user: drh branch: trunk, size: 27262)
2000-06-07
23:51
[baa8a422] part of check-in [2ffeb850] :-) (CVS 74) (check-in: [2ffeb850] user: drh branch: trunk, size: 27266)
2000-06-06
17:27
[d350fe39] part of check-in [db88a0c2] GROUP BY and HAVING installed (CVS 58) (check-in: [db88a0c2] user: drh branch: trunk, size: 27344)
13:54
[1bedf5f4] part of check-in [54d19818] added IN and BETWEEN operators (CVS 57) (check-in: [54d19818] user: drh branch: trunk, size: 22852)
03:31
[278ff688] part of check-in [b52dd82f] :-) (CVS 56) (check-in: [b52dd82f] user: drh branch: trunk, size: 21737)
01:50
[b309517f] part of check-in [bd8b2645] :-) (CVS 55) (check-in: [bd8b2645] user: drh branch: trunk, size: 21544)
2000-06-05
18:54
[7e87558f] part of check-in [c02268bd] :-) (CVS 52) (check-in: [c02268bd] user: drh branch: trunk, size: 16257)
2000-06-04
12:58
[793c15de] part of check-in [6ea5cebf] rework the VDBE engine. NULL is now distinct from "" (CVS 49) (check-in: [6ea5cebf] user: drh branch: trunk, size: 15751)
2000-06-03
19:19
[6df33b3a] part of check-in [729d6586] :-) (CVS 47) (check-in: [729d6586] user: drh branch: trunk, size: 15754)
18:06
[baab49f0] part of check-in [27c06786] added default values (CVS 46) (check-in: [27c06786] user: drh branch: trunk, size: 15753)
2000-06-02
13:27
[fb0972a5] part of check-in [2b55f9b7] :-) (CVS 37) (check-in: [2b55f9b7] user: drh branch: trunk, size: 15743)
2000-05-31
15:34
[91970700] part of check-in [dee7a8be] added aggregate functions like count(*) (CVS 21) (check-in: [dee7a8be] user: drh branch: trunk, size: 15784) Added