/ File History
Login

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

History of src/expr.c

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