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