SQLite

All files named ”src/update.c”
Login

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

History for src/update.c

2025-02-18
14:48
[e1a8b1876e] part of check-in [c09656c621] Merge the latest trunk enhancements into the bedrock branch. (check-in: [c09656c621] user: drh branch: bedrock, size: 51060)
14:37
[b370610139] part of check-in [3c87a6d195] Merge all the latest trunk enhancements into the begin-concurrent branch. (check-in: [3c87a6d195] user: drh branch: begin-concurrent, size: 51059)
2025-02-16
10:50
[a431db0e25] part of check-in [9349398e15] Cleanup of the changes for this branch. (check-in: [9349398e15] user: drh branch: default-in-values-2, size: 50767)
2025-02-15
23:03
[f46f629c6d] part of check-in [1902a0c168] Fixes to the INSERT of DEFAULT in VALUES clauses. Add the ability to UPDATE to DEFAULT. (check-in: [1902a0c168] user: drh branch: default-in-values-2, size: 51008)
2025-02-08
14:15
[3e5e7ff66f] part of check-in [351dbbc2bf] Use the sqlite3ColumnIndex() routine to look up a column in a table, rather than using a custom loop. Performance improvement, size reduction, and complexity decrease. (check-in: [351dbbc2bf] user: drh branch: trunk, size: 50635)
2024-08-29
23:43
[2dd1b745ac] part of check-in [ff94464cec] Merge the latest trunk enhancement into the bedrock branch through the wal2 intermediary. (check-in: [ff94464cec] user: drh branch: bedrock, size: 51268)
23:24
[50baf763bf] part of check-in [b05d30bec1] Merge all the latest trunk enhancements into the begin-concurrent branch. (check-in: [b05d30bec1] user: drh branch: begin-concurrent, size: 51267)
2024-08-17
23:23
[0e01aa6a3e] part of check-in [9f5aeef3cb] Give unique names to fields in the SrcItem object, to facilitate analysis of how those fields are used using "grep". (check-in: [9f5aeef3cb] user: drh branch: srcitem-opt, size: 50843)
2024-04-05
14:54
[0d154d4ff4] part of check-in [7a2a64b646] Merge the latest trunk enhancements into the bedrock branch. (check-in: [7a2a64b646] user: drh branch: bedrock, size: 51265)
14:46
[5e523c6b6d] part of check-in [4ff8334241] Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: [4ff8334241] user: drh branch: begin-concurrent, size: 51264)
11:23
[732404a04d] part of check-in [c7896e8885] When compiling with SQLITE_ALLOW_ROWID_IN_VIEW, if the RETURNING clause of an UPDATE of a view specifies a rowid, then return NULL for the value of that rowid. dbsqlfuzz 7863696e9e5ec10b29bcf5ab2681cd6c82a78a4a. (check-in: [c7896e8885] user: drh branch: trunk, size: 50840)
2023-08-21
18:31
[0f8df185d6] part of check-in [4d8df0c426] Merge latest changes from the wal2 branch into this one. (check-in: [4d8df0c426] user: dan branch: bedrock, size: 51158)
18:03
[c45d7d8aed] part of check-in [76a99a2c40] Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: [76a99a2c40] user: drh branch: begin-concurrent, size: 51157)
2023-08-14
12:20
[6904814dd6] part of check-in [391e21bb6e] Fix harmless compiler warnings reported by MSVC. (check-in: [391e21bb6e] user: drh branch: trunk, size: 50733)
2023-08-11
11:46
[eafa1d6e32] part of check-in [859932ebce] Merge all the latest trunk enhancements into the bedrock branch. (check-in: [859932ebce] user: drh branch: bedrock, size: 51142)
11:34
[6c1c9ad9ab] part of check-in [7cb2b4e35f] Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: [7cb2b4e35f] user: drh branch: begin-concurrent, size: 51141)
2023-08-07
16:15
[0bb9171afa] part of check-in [16cd2161e3] Changes so that sqlite3_vtab_nochange() works with "UPDATE ... FROM...". Use this to allow UPDATE on a contentless fts5 table if new values are supplied for all indexed columns. (check-in: [16cd2161e3] user: dan branch: fts5-contentless-delete, size: 50717)
2023-08-03
23:26
[9a3fc67079] part of check-in [877ffece05] Merge the latest trunk enhancements into the bedrock branch. (check-in: [877ffece05] user: drh branch: bedrock, size: 51069)
2023-08-01
00:34
[d5b755580a] part of check-in [42916af9fc] Restore part of the UPDATE one-pass optimization that was removed by check-in [2c56b984a0bd3be5]: only disable one-pass if the WHERE clause contains a subquery. Allow subqueries in the SET expressions. Fix for performance problem reported by forum post 8ab195fd44e75ed0. (check-in: [42916af9fc] user: drh branch: trunk, size: 50644)
2023-06-22
14:40
[94a803cf0e] part of check-in [0551b79b17] Merge the latest trunk enhancements into the bedrock branch. (check-in: [0551b79b17] user: drh branch: bedrock, size: 51047)
13:28
[2dbef44817] part of check-in [5bd26fea6a] Merge recent trunk enhancements into the begin-concurrent branch. (check-in: [5bd26fea6a] user: drh branch: begin-concurrent, size: 51046)
2023-06-20
15:48
[0aa3656116] part of check-in [27c174dbd0] Avoid unnecessary calls to sqlite3CodeRowTrigger(). (check-in: [27c174dbd0] user: drh branch: trunk, size: 50622)
2023-06-16
14:39
[cff5ce391a] part of check-in [365caf2f97] Address various harmless compiler warnings from forum post d526da8ee4. (check-in: [365caf2f97] user: drh branch: trunk, size: 50596)
2023-06-07
17:03
[9fa127b8f1] part of check-in [8c291d9994] Fix straggler misspellings and tidy the custom dictionary. Also include pickups from forum post c61fb09afd. (check-in: [8c291d9994] user: larrybr branch: spell-check, size: 50528)
2023-05-17
11:31
[88f30d3840] part of check-in [8edf56d169] Avoid an assert() failure that could occur in SQLITE_ENABLE_UPDATE_DELETE_LIMIT builds when a WITH clause attached to an UPDATE or DELETE statement created a CTE of the same name as the table being modified. (check-in: [8edf56d169] user: dan branch: trunk, size: 50585)
2023-05-04
14:41
[d458032264] part of check-in [b2e0800b24] Merge latest wal2 changes into this branch. (check-in: [b2e0800b24] user: dan branch: bedrock, size: 51004)
2023-05-02
21:10
[82588046b0] part of check-in [6f22c7679f] Update this branch with latest changes from trunk. (check-in: [6f22c7679f] user: dan branch: begin-concurrent, size: 51003)
2023-03-28
11:18
[3f4fb5ad7c] part of check-in [c8bedef0d6] Fix multiple problems with RETURNING on a DML statement against a view, all inspired by forum post dc3b92cfa0. (1) Do not allow a RETURNING clause to trick the code generator into thinking that the view being updated has an INSTEAD OF trigger. (2) Generate all result columns for a view in a DML statement. (3) The automatic covering index for a view should cover all result columns of the view. (check-in: [c8bedef0d6] user: drh branch: trunk, size: 50579)
2023-03-22
13:35
[258e96c2bf] part of check-in [b7a144c499] Merge the 3.41.2 patches into the bedrock-3.41 subbranch of bedrock. (check-in: [b7a144c499] user: drh branch: bedrock-3.41, size: 51001)
2023-03-16
10:17
[76664e1bea] part of check-in [2c56b984a0] Do not use the one-pass optimization on an UPDATE if there is a subquery in the WHERE clause, since if the subquery is hidden behind a short-circuit operator, the subquery might not be evaluated until after one or more rows have been updated. Fix for the problem reported by forum post 0007d1fdb1. This is the same problem that was fixed by [73f0036f045bf371] only for UPDATE instead of DELETE. (check-in: [2c56b984a0] user: drh branch: trunk, size: 50576)
2022-12-21
20:43
[8987110488] part of check-in [bcab19d21b] Merge the latest trunk enhancements into the begin-concurrent-pnu-wal2 branch. (check-in: [bcab19d21b] user: drh branch: begin-concurrent-pnu-wal2, size: 50886)
20:07
[1a1073dd35] part of check-in [0c198aee53] Update the begin-concurrent branch with the latest enhancements on trunk. (check-in: [0c198aee53] user: drh branch: begin-concurrent, size: 50885)
2022-12-09
18:26
[f118e51768] part of check-in [78723a9a7e] Remove the SQLITE_PREPARE_SAFEOPT flag. The name is obsolete and it is at the wrong level. Instead use the SF_UpdateFrom flags on the Select object. (check-in: [78723a9a7e] user: drh branch: coroutines-exp2, size: 50461)
2022-12-06
00:54
[3cf1cb4567] part of check-in [e7d323c16e] Highly experimental (and non-working) changes aimed at increasing the number of occasions where a subquery can be implemented using a co-routine rather than being materialized. This is just saving work in progress. (check-in: [e7d323c16e] user: drh branch: coroutines-exp1, size: 50487)
2022-11-04
19:09
[40918db244] part of check-in [aa2e247b58] Merge the latest trunk enhancements into the begin-concurrent-pnu-wal2 branch. (check-in: [aa2e247b58] user: drh branch: begin-concurrent-pnu-wal2, size: 50865)
18:33
[aebd5b9f35] part of check-in [b361ee983c] Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: [b361ee983c] user: drh branch: begin-concurrent, size: 50864)
2022-10-24
13:50
[d714633472] part of check-in [3d1992de47] Improve the ability of the query planner to recognize covering indexes even on tables with more than 63 columns and where the index is over columns beyond the 63rd column. (check-in: [3d1992de47] user: drh branch: branch-3.28, size: 37243)
2022-10-21
20:12
[932e88c143] part of check-in [5dd7858820] Begin transitioning the fixed-length (64-bit) bitmap used to keep track of the subset of columns of a table that are used by a query into a more general structure that can work with wide tables. Experimental. (check-in: [5dd7858820] user: drh branch: column-set, size: 50442)
2022-10-10
21:21
[5b0302c47c] part of check-in [a140173102] Code clean-up for the integrity_check enhancement. (check-in: [a140173102] user: drh branch: integrity_check_datatypes, size: 50440)
18:25
[832cfcf09e] part of check-in [8b1e7f0524] An attempt to enhance PRAGMA integrity check so that it does data type checking on non-STRICT tables. Specifically: (1) Columns with TEXT affinity should not contain numeric values, and (2) columns with numeric affinity should not contain text values that can be converted to numeric. (check-in: [8b1e7f0524] user: drh branch: integrity_check_datatypes, size: 50457)
2022-06-16
13:56
[c6fbfa86c7] part of check-in [82e7e83601] Merge the latest trunk enhancements into the begin-concurrent-pnu-wal2 branch. (check-in: [82e7e83601] user: drh branch: begin-concurrent-pnu-wal2, size: 50814)
13:37
[c17295f85a] part of check-in [221e07ed78] Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: [221e07ed78] user: drh branch: begin-concurrent, size: 50813)
2022-06-15
12:32
[c52a7991be] part of check-in [988a2a759f] Dbsqlfuzz discovered a case where a bytecode branch is in fact taken, so change the designator from VdbeCoverageNeverTaken() to VdbeCoverage(). Test case in TH3. (check-in: [988a2a759f] user: drh branch: trunk, size: 50389)
2022-05-10
12:45
[ba5a02bf6b] part of check-in [d28af1f8a5] Merge the latest trunk enhancements into theh begin-concurrent-pnu-wal2 branch. (check-in: [d28af1f8a5] user: drh branch: begin-concurrent-pnu-wal2, size: 50824)
12:00
[cba1b6dd9d] part of check-in [f65bd76760] Merge recent trunk enhancements into the begin-concurrent branch. (check-in: [f65bd76760] user: drh branch: begin-concurrent, size: 50823)
2022-04-06
15:41
[2cfaded82c] part of check-in [b0939d6f4d] Attempt to show triggers in the TreeView output from DELETE, INSERT, and UPDATE statements. (check-in: [b0939d6f4d] user: drh branch: trunk, size: 50399)
11:08
[c79e4ba491] part of check-in [393fa32e18] Rename debugging defines and variables from SELECTTRACE to TREETRACE (and similar) since the functionality has how expanded to include data structures beyond SELECT statements. Should not affect deliverable builds. (check-in: [393fa32e18] user: drh branch: trunk, size: 50316)
10:37
[92f3801f95] part of check-in [fbd288ff3d] Add additional tree display routines for DELETE and UPDATE. No changes to deliverable code. (check-in: [fbd288ff3d] user: drh branch: trunk, size: 50320)
2022-02-04
18:02
[2d82c9785d] part of check-in [cb045aba7c] Merge recent trunk changes into the begin-concurrent-pnu-wal2 branch. (check-in: [cb045aba7c] user: drh branch: begin-concurrent-pnu-wal2, size: 50533)
17:40
[ee9b4f2a29] part of check-in [85054a8691] Merge trunk enhancements into the begin-concurrent branch. (check-in: [85054a8691] user: drh branch: begin-concurrent, size: 50532)
2022-01-27
16:14
[f875b0d59d] part of check-in [74fa5757ee] Give the virtual table xBestIndex method access to (some) OFFSET and LIMIT clauses. (check-in: [74fa5757ee] user: drh branch: vtab-limit-offset, size: 50108)
2022-01-25
16:05
[3164c39969] part of check-in [3d949775e3] Merge the latest trunk changes into begin-concurrent-pnu-wal2 (check-in: [3d949775e3] user: drh branch: begin-concurrent-pnu-wal2, size: 50512)
15:20
[1f3a7bda1c] part of check-in [dae81f45d2] Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: [dae81f45d2] user: drh branch: begin-concurrent, size: 50511)
2022-01-24
16:47
[7dfa3866cd] part of check-in [1f7fa46126] Remove many redundant checks for sqlite3.mallocFailed now that any OOM should cause Parse.nErr to be non-zero. (check-in: [1f7fa46126] user: drh branch: trunk, size: 50087)
2022-01-17
19:46
[457fbf994c] part of check-in [45fa7efecb] Merge the latest trunk enhancements into the begin-concurrent-pnu-wal2 branch. (check-in: [45fa7efecb] user: drh branch: begin-concurrent-pnu-wal2, size: 50467)
19:17
[bf714a1f1b] part of check-in [02daae7a67] Merge recent trunk enhancements into the begin-concurrent branch. (check-in: [02daae7a67] user: drh branch: begin-concurrent, size: 50466)
2021-12-01
19:17
[d6f5c7b9e0] part of check-in [a818ba2ed6] Check for foreign key constraint errors prior to returning the results from a RETURNING clause. See forum post 793beaf322. (check-in: [a818ba2ed6] user: drh branch: trunk, size: 50042)
2021-08-03
16:49
[440b9aae32] part of check-in [2c25f25b22] Merge recent trunk changes into the begin-concurrent-pnu branch. (check-in: [2c25f25b22] user: drh branch: begin-concurrent-pnu, size: 50574)
16:44
[dc362b5c6b] part of check-in [5b6f6514bd] Merge recent trunk changes into the begin-concurrent-pnu-wal2 branch. (check-in: [5b6f6514bd] user: drh branch: begin-concurrent-pnu-wal2, size: 50575)
2021-08-02
18:03
[69c4c10bc6] part of check-in [8b781dcaf6] Refactor field names in the Column object, zCnName and zCnColl, to make them unique and thus easier to find amid all the other code. (check-in: [8b781dcaf6] user: drh branch: trunk, size: 50150)
16:41
[985a8a45b4] part of check-in [bbb6759bcf] Refactor the Table object to reduce its memory footprint. (check-in: [bbb6759bcf] user: drh branch: trunk, size: 50046)
2021-07-31
20:30
[d2648c4720] part of check-in [8646547e54] Refactor the way that DEFAULT expressions are stored on columns, in order to save memory in the common case where the column has no DEFAULT clause. (check-in: [8646547e54] user: drh branch: trunk, size: 50052)
2021-07-16
01:19
[30465f9acc] part of check-in [e31c588865] Get the "omit ORDER BY in FROM-clause subqueries" optimization working for the core test cases. (check-in: [e31c588865] user: drh branch: omit-subquery-order-by, size: 49994)
2021-07-05
11:27
[ff10c7ca6d] part of check-in [740cb43025] Allow sub-queries in the FROM clause of an UPDATE...FROM statement to access the object being updated without using an alias, as is required in the parent query. (check-in: [740cb43025] user: dan branch: trunk, size: 49941)
2021-05-21
17:31
[e94570c89b] part of check-in [4efefb5938] Merge latest changes from wal2 into this branch. (check-in: [4efefb5938] user: dan branch: begin-concurrent-pnu-wal2, size: 50366)
16:17
[22ea2b03f3] part of check-in [a8d05f8e92] Merge recent trunk changes into the begin-concurrent-pnu branch. (check-in: [a8d05f8e92] user: drh branch: begin-concurrent-pnu, size: 50365)
2021-05-20
00:44
[56fa0458b1] part of check-in [5614279daf] Replace [0f0959c6f95046e8] with a new and better solution that also fixes the CTE name resolution problem described in forum post 8590e3f6dc. Test cases for both problems added. (check-in: [5614279daf] user: drh branch: trunk, size: 49941)
2021-05-19
21:55
[5902d1830e] part of check-in [0f0959c6f9] When constructing the synthensized SELECT statement that is used to choose the rows in an UPDATE FROM, make sure the first table is really the table being updated, and not some common-table expression that happens to have the same name. forum post a274248080. More changes associated with CTE name resolution are pending. (check-in: [0f0959c6f9] user: drh branch: trunk, size: 50090)
2021-04-09
22:20
[b3abdaf4a3] part of check-in [49eac38926] Remove an ALWAYS() that is actually reachable following an OOM on an UPDATE FROM of a virtual table. dbsqlfuzz aa03237ef7c4a028c7cdaf8bbcde2b62e2bcd36e (check-in: [49eac38926] user: drh branch: trunk, size: 49911)
2021-04-07
15:45
[3130bb21a2] part of check-in [14b1d56ef8] Also prohibit the use of rowid from a subquery. Add the SQLITE_ALLOW_ROWID_IN_VIEW compile-time option to restore legacy behavior in case somebody actually needs it. (check-in: [14b1d56ef8] user: drh branch: no-rowid-on-view, size: 49866)
2021-03-03
19:41
[254aa78e23] part of check-in [b0fc8ca14e] Merge in recent enhancements. (check-in: [b0fc8ca14e] user: drh branch: begin-concurrent-pnu-wal2, size: 50230)
19:25
[fefa3fb0f7] part of check-in [59d3ec295a] Merge recent trunk enhancemenets into the begin-concurrent-pnu branch. (check-in: [59d3ec295a] user: drh branch: begin-concurrent-pnu, size: 50229)
2021-01-31
15:50
[0f5a61f078] part of check-in [154fc2b154] New opcode OP_ChngCntRow used to output the result of PRAGMA change_count. Only this new opcode, and not OP_ResultRow, checks for foreign key errors. Faster performance, and now also works with RETURNING. (check-in: [154fc2b154] user: drh branch: returning, size: 49805)
2021-01-29
21:31
[3dbc7189ff] part of check-in [a9122d9757] RETURNING works even if "PRAGMA count_changes=ON" is set. (check-in: [a9122d9757] user: drh branch: returning, size: 49804)
2020-11-26
18:41
[602d92660a] part of check-in [b451bb724e] Merge latest changes from wal2 branch. (check-in: [b451bb724e] user: dan branch: begin-concurrent-pnu-wal2, size: 50203)
17:36
[0e42cd8b2f] part of check-in [a42e6f34f5] Merge latest changes from trunk into this branch. (check-in: [a42e6f34f5] user: dan branch: begin-concurrent-pnu, size: 50202)
2020-11-17
21:26
[9f126204a6] part of check-in [df8ce2675b] Claw back most of the performance lost in the previous commit. (check-in: [df8ce2675b] user: drh branch: lowmem-update-exp, size: 49778)
2020-11-14
20:03
[5d9894b532] part of check-in [4673096dd8] Modify UPDATE so that two-pass updates on a rowid table use an ephemeral table to store rowids rather than a RowSet. This uses less memory, though it is slower. (check-in: [4673096dd8] user: drh branch: lowmem-update-exp, size: 49885)
2020-10-12
14:29
[1f6167d4ac] part of check-in [bcb0bc6a7b] Fix UPDATE FROM statements on virtual tables that are declared WITHOUT ROWID. See forum post 0fee7951eb for more information. (check-in: [bcb0bc6a7b] user: dan branch: trunk, size: 49667)
2020-08-31
20:27
[4fb5ffdc51] part of check-in [5fa4cbcb78] Restore the "PRAGMA noop_update" feature that was broken by [2b3241cf67c8eea7]. (check-in: [5fa4cbcb78] user: dan branch: begin-concurrent-pnu, size: 49674)
2020-08-17
21:03
[48cfd516a0] part of check-in [0ecda43371] When doing an UPDATE or DELETE using a multi-column index where only a few of the earlier columns of the index are useful for the index lookup, postpone doing the main table seek until after all WHERE clause constraints have been evaluated, in case those constraints can be covered by unused later terms of the index, thus avoiding unnecessary main table seeks. (check-in: [0ecda43371] user: dan branch: branch-3.28, size: 37243)
2020-08-14
20:04
[55a6203008] part of check-in [a495f60d31] For UPDATE and DELETE, use OP_DeferredSeek always. If the seek must later be resolved, add the OP_FinishSeek opcode after all WHERE clause terms have been processed. This obviates the need for the WHERE_SEEK_TABLE and WHERE_SEEK_UNIQ_TABLE flags to sqlite3WhereBegin() and the ensuing complication, and it allows the covering index optimization to be used further into WHERE clause processing. (check-in: [a495f60d31] user: drh branch: delete-bytecode-optimization, size: 49228)
2020-07-31
17:08
[ca16ff9a6a] part of check-in [ebd39665e5] Merge latest wal2 changes into this branch. (check-in: [ebd39665e5] user: dan branch: begin-concurrent-pnu-wal2, size: 49674)
2020-07-29
16:18
[4c526f5de9] part of check-in [a80ae2c98b] Dozens and dozens of typo fixes in comments. This change adds no value to the end product and is disruptive, so it is questionable whether or not it will ever land on trunk. (check-in: [a80ae2c98b] user: drh branch: typos, size: 49249)
2020-07-18
18:44
[fb15bec5b5] part of check-in [4c0d208c45] More harmless compiler warning fixes. (check-in: [4c0d208c45] user: drh branch: trunk, size: 49250)
18:03
[eca0479d84] part of check-in [5a0b0c6e11] Fix a harmless compiler warning. (check-in: [5a0b0c6e11] user: drh branch: trunk, size: 49110)
2020-07-17
22:20
[e917882ce2] part of check-in [270e17bba1] Add ALWAYS() around a conditional that is always true. (check-in: [270e17bba1] user: drh branch: update-from, size: 49110)
16:31
[a3b2d50dc2] part of check-in [d90a37e930] Make it an error to repeat the target object/alias of an UPDATE statement in its FROM clause. (check-in: [d90a37e930] user: dan branch: update-from, size: 49144)
15:34
[21cb7bd83e] part of check-in [cc471df04a] Add a couple of "#ifdef SQLITE_ENABLE_UPDATE_DELETE_LIMIT" blocks missing from new code on this branch. (check-in: [cc471df04a] user: dan branch: update-from, size: 49130)
2020-07-16
00:45
[9cfa2f840c] part of check-in [da593e57df] Separate VdbeCoverage() macro for different jumps. (check-in: [da593e57df] user: drh branch: update-from, size: 48978)
2020-07-15
18:30
[d254339ce7] part of check-in [13224cbd75] Fix problems that could occur if a table with the same name as the table being updated appeared in the FROM clause of an UPDATE statement. (check-in: [13224cbd75] user: dan branch: update-from, size: 48969)
15:32
[d9b7f86c8d] part of check-in [5176cb7a6a] Fix a problem in SQLITE_ENABLE_HIDDEN_COLUMN builds occuring when an UPDATE...FROM fired an INSTEAD OF trigger. (check-in: [5176cb7a6a] user: dan branch: update-from, size: 48779)
2020-07-13
20:10
[ab137d0817] part of check-in [47c87af3e5] Add test cases and fixes for UPDATE...FROM statements that modify primary key columns. (check-in: [47c87af3e5] user: dan branch: update-from, size: 48290)
18:04
[b0d5b46438] part of check-in [5ee3c27e20] Merge latest trunk changes with this branch. (check-in: [5ee3c27e20] user: dan branch: update-from, size: 48124)
2020-06-29
20:09
[6a04841346] part of check-in [a73f80f22a] Document the dual-use of the P5 operand to the OP_MakeRecord opcode. (check-in: [a73f80f22a] user: drh branch: trunk, size: 40940)
2020-06-19
13:33
[a5b501b746] part of check-in [9536fa0ae0] Further refactoring of the schema table name. (check-in: [9536fa0ae0] user: drh branch: trunk, size: 40897)
2020-05-18
19:55
[055b77950b] part of check-in [5dc355ccf6] Merge latest trunk changes into this branch. (check-in: [5dc355ccf6] user: dan branch: begin-concurrent-pnu-wal2, size: 41321)
16:19
[c4f659b154] part of check-in [c69f030b1e] Merge recent changes from trunk. (check-in: [c69f030b1e] user: drh branch: begin-concurrent-pnu, size: 41322)
2020-05-16
18:01
[3199098455] part of check-in [dc18d89354] The OP_RealAffinity opcode is not necessary after reading values from a virtual table (such as rtree). It is harmless, but it does use CPU cycles. Might as well leave it off. (check-in: [dc18d89354] user: drh branch: trunk, size: 40897)
2020-05-01
18:43
[9777ad958b] part of check-in [623ab585d1] Fix problems with UPDATE...FROM statements that modify rowid or primary-key values. (check-in: [623ab585d1] user: dan branch: update-from, size: 48040)
2020-04-30
18:28
[2f63f9e13c] part of check-in [e4a18601e5] Add OOM tests for the new code on this branch. (check-in: [e4a18601e5] user: dan branch: update-from, size: 47943)
15:49
[0f27f4b112] part of check-in [ffcdb66891] Report an error if an UPDATE...FROM statement has an ORDER BY but no LIMIT clause. Add tests for multi-column primary keys. (check-in: [ffcdb66891] user: dan branch: update-from, size: 47869)
2020-04-29
20:11
[15c1e9b619] part of check-in [b717dc3c5f] Fix problems with using LIMIT and FROM clauses as part of single UPDATE statement. (check-in: [b717dc3c5f] user: dan branch: update-from, size: 47711)
17:41
[3dda0590ff] part of check-in [823ba94e29] Fix various bugs in new feature on this branch. (check-in: [823ba94e29] user: dan branch: update-from, size: 47244)
2020-04-27
20:55
[72aae4f619] part of check-in [f353a1a613] Allow a FROM clause in UPDATE statements. (check-in: [f353a1a613] user: dan branch: update-from, size: 47040)
2020-04-09
19:00
[2a7aa6bbcb] part of check-in [6c11b67bd2] Merge recent trunk changes into begin-concurrent-pnu-wal2. (check-in: [6c11b67bd2] user: drh branch: begin-concurrent-pnu-wal2, size: 41280)
18:44
[188f8d0622] part of check-in [cedd138c74] Merge recent trunk enhancements into the begin-concurrent-pnu branch. (check-in: [cedd138c74] user: drh branch: begin-concurrent-pnu, size: 41281)
2020-03-13
07:23
[1773820c20] part of check-in [1e2109fd33] Fix a typo causing SQLITE_NOOP_UPDATE builds to fail. (check-in: [1e2109fd33] user: dan branch: begin-concurrent-pnu, size: 41255)
2020-02-07
19:44
[3eb778c421] part of check-in [bcf876e67e] During byte-code generation, strive to avoid jumps that merely jump to the following instruction. (check-in: [bcf876e67e] user: drh branch: trunk, size: 40856)
2020-01-15
13:48
[feed9db366] part of check-in [110a081f12] Merge all recent enhancements and fixes from trunk. (check-in: [110a081f12] user: drh branch: begin-concurrent-pnu, size: 41254)
2019-12-31
14:49
[9ad19af96a] part of check-in [39d5557937] Merge recent enhancements from trunk. (check-in: [39d5557937] user: drh branch: two-size-lookaside, size: 40830)
2019-12-29
00:52
[fae1082d3e] part of check-in [21ef6e9933] Add the OP_FinishSeek opcode which completes an OP_DeferredSeek if the seek has not already completed. Also add the sqlite3WhereUsesDeferredSeek() interface to the query planner. The UPDATE implementation adds an OP_FinishSeek before running the final OP_Insert if one is needed. Ticket [ec8abb025e78f40c] and also an assertion fault reported by Yongheng. (check-in: [21ef6e9933] user: drh branch: trunk, size: 40827)
2019-12-26
23:16
[aed4261a78] part of check-in [e545604959] An UPDATE of a table that is indexed by a constant virtual column that uses the one-pass optimization might cause the table seek to be omitted before reaching row DELETE/INSERT. Fix this by coding an extra OP_Column in that circumstance. Ticket [ec8abb025e78f40c] (check-in: [e545604959] user: drh branch: trunk, size: 41057)
2019-12-12
20:22
[c66576a821] part of check-in [d3783357f8] Change the name of the Expr.a.zName field to zEName, so that it has a name that is distinct from other fields and variables and is hence easier to grep for. (check-in: [d3783357f8] user: drh branch: two-size-lookaside, size: 40276)
2019-10-31
20:54
[07a50767f7] part of check-in [40d3282ec2] Correctly generate pre-UPDATE content for virtual columns that are used by foreign key constraints. Ticket [b9befa4b83a660cc] (check-in: [40d3282ec2] user: drh branch: trunk, size: 40273)
2019-10-23
15:47
[ae657f0db6] part of check-in [3006571687] Minor adjustments for clarity and test coverage. (check-in: [3006571687] user: drh branch: generated-columns, size: 40310)
2019-10-22
13:59
[3a5e1fa8e2] part of check-in [d38176e93a] In UPDATE processing, include generated columns in the set of columns being updated if and only if their generator expressions reference some other column that is being updated. (check-in: [d38176e93a] user: drh branch: generated-columns, size: 40310)
13:01
[287146d2ce] part of check-in [412799fc55] New testcase() macros. Fix a problem with INSERT when the IPK is to the right of generated columns. (check-in: [412799fc55] user: drh branch: generated-columns, size: 39210)
2019-10-19
18:47
[e5c4320971] part of check-in [932a37275d] Work toward getting generated columns to work with triggers. Still more work to do in this area. (check-in: [932a37275d] user: drh branch: generated-columns, size: 38930)
2019-10-18
17:47
[ca754bbcb5] part of check-in [85bc4524d7] Merge trunk enhancements into the generated-columns branch. (check-in: [85bc4524d7] user: drh branch: generated-columns, size: 38892)
12:52
[c9020ecd59] part of check-in [e8426acb94] Claw back some performance from the sqlite3ExprGetColumnOfTable() routine. (check-in: [e8426acb94] user: drh branch: generated-columns, size: 38891)
2019-10-17
17:54
[a66b56e502] part of check-in [fe7517bf4d] Some (but not all) INSERT and UPDATE statements now work for STORED columns. (check-in: [fe7517bf4d] user: drh branch: generated-columns, size: 38911)
15:59
[ef3e261b43] part of check-in [c21959d4eb] Basic UPDATE functionality working for VIRTUAL columns. (check-in: [c21959d4eb] user: drh branch: generated-columns, size: 38520)
2019-10-16
17:46
[1487ee46b6] part of check-in [bba975c7af] Enhancements to SQL query normalization for UPDATE statements. (check-in: [bba975c7af] user: mistachkin branch: trunk, size: 37920)
12:18
[1ad2eb4006] part of check-in [11d472c1df] Initial experimental code for generated column support. Non-functional. (check-in: [11d472c1df] user: drh branch: generated-columns, size: 37979)
2019-09-16
12:17
[4a5548490d] part of check-in [54930b7e0a] Merge recent trunk enhancements into the begin-concurrent-pnu branch. (check-in: [54930b7e0a] user: drh branch: begin-concurrent-pnu, size: 38343)
2019-08-31
20:26
[7f05fad5e1] part of check-in [83c2adffbf] Mark new VDBE branches never taken. (check-in: [83c2adffbf] user: drh branch: trunk, size: 37919)
17:14
[ce478c8ad2] part of check-in [4145b3e050] If a DELETE trigger fired by an UPDATE OR REPLACE statement deletes the row being updated, do not attempt to proceed with the original UPDATE operation. Fix for [d6a0fbc1]. (check-in: [4145b3e050] user: dan branch: trunk, size: 37886)
2019-05-14
21:51
[e5790323fe] part of check-in [e70878b363] Merge the latest trunk enhancements into begin-concurrent-pnu. (check-in: [e70878b363] user: drh branch: begin-concurrent-pnu, size: 38279)
2019-05-08
19:06
[3cb9150d2c] part of check-in [8658574e3f] Avoid an excess register allocation in UPDATE, when possible. This improves speed (slightly) and reduces the code footprint. (check-in: [8658574e3f] user: drh branch: trunk, size: 37855)
2019-05-07
19:13
[fb29c2eb1f] part of check-in [3f1c805164] On an INSERT or UPDATE, generate the new table record prior to running foreign key checks, in case the foreign key checks changes datatypes on the registers holding column values. Proposed fix for ticket [e63cbcfd3378afe6980d626]. (check-in: [3f1c805164] user: drh branch: tkt-e63cbcfd, size: 37289)
2019-03-08
15:30
[eafa026e09] part of check-in [667cce3dce] Merge all the latest enhancements from trunk. (check-in: [667cce3dce] user: drh branch: begin-concurrent-pnu, size: 37637)
2019-01-22
13:45
[0b973357d8] part of check-in [e148cdad35] Make sure cursors are opened on all indexes for an UPDATE OR REPLACE regardless of whether or not the indexes are partial or contain columns that might need to be updated. (check-in: [e148cdad35] user: drh branch: trunk, size: 37213)
2019-01-02
19:46
[ddae32c4f7] part of check-in [86685679b4] Merge changes from begin-concurrent-wal2. Also modify the unix-excl shm-locks on this branch so that it is not an error to attempt to release an EXCLUSIVE lock that is not held. (check-in: [86685679b4] user: dan branch: begin-concurrent-pnu-wal2, size: 37644)
2018-12-29
02:26
[4e630e4785] part of check-in [4a0929ac76] A new implementation of sqlite3VdbeMakeLabel() is faster and makes fewer memory allocations by deferring memory allocation until sqlite3VdbeResolveLabel() is called, at which point the code generator has a better idea of how big the relocation table needs to be. The sqlite3VdbeMakeLabel() routine now takes a Parse* parameter instead of Vdbe*. (check-in: [4a0929ac76] user: drh branch: trunk, size: 37220)
2018-11-20
16:02
[792c3c1cce] part of check-in [dfab7170ed] Consolidate the two sqlite3SchemaToIndex() routines. (check-in: [dfab7170ed] user: dan branch: reuse-schema1, size: 37315)
2018-11-19
20:41
[6659f40af7] part of check-in [84be9220db] Fix a problem with virtual tables in shared schemas. (check-in: [84be9220db] user: dan branch: reuse-schema1, size: 37316)
2018-11-17
18:11
[336eec2af1] part of check-in [6d7a7e5faf] Fix further problems with the feature on this branch. (check-in: [6d7a7e5faf] user: dan branch: reuse-schema1, size: 37274)
2018-11-16
17:04
[34d648f44f] part of check-in [9780829a77] Fix further REUSE_SCHEMA issues. (check-in: [9780829a77] user: dan branch: reuse-schema1, size: 37264)
2018-11-15
21:20
[9e05b1eb83] part of check-in [31b6aee755] Fix some problems with the feature on this branch. Many problems remain. (check-in: [31b6aee755] user: dan branch: reuse-schema1, size: 37257)
2018-10-01
11:00
[0c9714a1dc] part of check-in [31ac8dbae4] Ensure that the OP_VColumn opcode does set sqlite3_vtab_nochange() unless the OPFLAG_NOCHNG bit is set in P5. Fix for ticket [69d642332d25aa3b7315a6d385] (check-in: [31ac8dbae4] user: drh branch: branch-3.25, size: 35178)
2018-09-28
21:11
[31d5208f7c] part of check-in [6f3dd9809f] Merge latest begin-concurrent changes into this branch. (check-in: [6f3dd9809f] user: dan branch: begin-concurrent-pnu, size: 37629)
2018-09-27
20:20
[1816d56c1b] part of check-in [322ab1fc61] Ensure that the OP_VColumn opcode does set sqlite3_vtab_nochange() unless the OPFLAG_NOCHNG bit is set in P5. Fix for ticket [69d642332d25aa3b7315a6d385] (check-in: [322ab1fc61] user: drh branch: trunk, size: 37205)
2018-09-17
20:47
[682f112c49] part of check-in [d1365a5bf0] Further optimizations to the UPDATE logic to avoid making changes to partial indexes if none of the columns mentioned in the WHERE clause are modified by the UPDATE. (check-in: [d1365a5bf0] user: drh branch: trunk, size: 37194)
2018-09-16
18:23
[52d926be53] part of check-in [2df2cf4f17] Remove an unreachable branch from the index-on-expression optimization. (check-in: [2df2cf4f17] user: drh branch: trunk, size: 36067)
15:01
[74feccd675] part of check-in [c9f045295c] Improved presentation on the new code that prevents unnecessary writes to expressions on indexes during an UPDATE when the expression does not reference any of the columns that are changing. (check-in: [c9f045295c] user: drh branch: trunk, size: 36047)
2018-09-15
21:38
[deb215e353] part of check-in [a71b101635] Optimization: when doing an UPDATE on a table with indexes on an expression, do not update the expression indexes if they do not refer to any of the columns of the table being updated. (check-in: [a71b101635] user: drh branch: trunk, size: 36141)
2018-08-04
15:53
[345ce35eb1] part of check-in [7d9072b027] Further logic simplifications that flow out of the omission of the column cache. (check-in: [7d9072b027] user: drh branch: omit-column-cache, size: 35167)
2018-08-03
23:04
[42fe8a034f] part of check-in [3f5f60cd75] Completely remove the column cache logic, which has been a persistent source of bugs for many years. Due to recent enhancements to the performance of the OP_Column opcode, removing the column cache actually makes speed-check.sh run faster. Removing the column cache also saves about 1,800 bytes of code space. (check-in: [3f5f60cd75] user: drh branch: omit-column-cache, size: 35170)
2018-07-12
19:39
[baabeae51e] part of check-in [d33527d223] Merge latest begin-concurrent changes with this branch. (check-in: [d33527d223] user: dan branch: begin-concurrent-pnu, size: 35908)
2018-07-10
17:10
[7b7c768dc4] part of check-in [76e42b7071] Further improvements to bytecode branch testing. Fix cases where the macros said a branch could not be taken when in fact it could be. Alter some window function branch coverage macros to indicate that comparison operands cannot be NULL. (check-in: [76e42b7071] user: drh branch: trunk, size: 35484)
2018-06-06
17:12
[0710fc44ac] part of check-in [be7004a971] Merge the 3.24.0 changes plus a few subsequent enhancements. (check-in: [be7004a971] user: drh branch: begin-concurrent-pnu, size: 35918)
2018-05-24
23:51
[46dc24c615] part of check-in [b816023ce0] When doing a one-pass UPDATE or DELETE on virtual tables, close the cursor prior to running VUpdate. This allows one-pass to work on virtual tables that do not allow concurrent reads and writes. Enhance rtree to take advantage of this new capability. (check-in: [b816023ce0] user: drh branch: trunk, size: 35494)
2018-05-15
11:55
[b25b06e7e2] part of check-in [72f39efa9b] Merge latest trunk changes into this branch. (check-in: [72f39efa9b] user: dan branch: begin-concurrent-pnu, size: 35740)
2018-04-26
18:34
[5be2f501dd] part of check-in [9fd0faf517] The previous fix for ticket [d85fffd6ffe856092ed8da] in check-in [0a514e62ad1ebe5c12da8dae] did not completely address the probably in that it only worked for cases where the OP_SCopy that loaded the register was the last instruction in the sequence for the expression, which is not necessarily the case for expressions like CASE...END. This revision prevents the registered that will be recomputed from being cached in the first place. (check-in: [9fd0faf517] user: drh branch: trunk, size: 35316)
18:01
[d46f8fb378] part of check-in [83a4c9f088] Merge latest changes from trunk. Including the "ORDER BY ... LIMIT" optimization. (check-in: [83a4c9f088] user: dan branch: begin-concurrent-pnu, size: 35734)
15:50
[75ac1102d7] part of check-in [0a514e62ad] Ensure that new.* values of an UPDATE do not get clobbered after the BEFORE triggers run when unmodified columns of the row being updated are reloaded. Fix for ticket [d85fffd6ffe856092ed8da] (check-in: [0a514e62ad] user: drh branch: trunk, size: 35310)
15:04
[2946cf3c69] part of check-in [7bb23c2a3d] Clarification of the behavior of a BEFORE UPDATE trigger when the trigger changes the values of some of the columns used to compute new columns in the UPDATE. (check-in: [7bb23c2a3d] user: drh branch: trunk, size: 34961)
2018-04-24
19:22
[cedbdad8ed] part of check-in [2d8d13e4a1] Update this branch with latest changes from trunk. (check-in: [2d8d13e4a1] user: dan branch: begin-concurrent-pnu, size: 35172)
2018-04-21
03:06
[0d53281948] part of check-in [359725ab36] Fix UPSERT so that it plays nicely with AUTOINCREMENT. (check-in: [359725ab36] user: drh branch: trunk, size: 34748)
2018-04-20
20:09
[78c2e91bcc] part of check-in [d2ab24f59d] Fix a harmless compiler warning. (check-in: [d2ab24f59d] user: drh branch: trunk, size: 34734)
19:32
[9db686e67b] part of check-in [2772404b8c] Avoid opening a statement journal on single-row UPDATEs without triggers or FK constraints. (check-in: [2772404b8c] user: drh branch: trunk, size: 34799)
16:27
[ae56e307cf] part of check-in [d1906689ab] Minor simplification of the previous checkin. (check-in: [d1906689ab] user: drh branch: upsert-opt2, size: 34873)
15:56
[2f460e5744] part of check-in [7c4b6d5475] Avoid unnecessary cursor seeks during upsert processing. (check-in: [7c4b6d5475] user: drh branch: upsert-opt2, size: 35012)
13:18
[86e6563430] part of check-in [c37f39d18d] Enhance UPSERT so that the UPDATE uses the same set of cursors as the INSERT. (check-in: [c37f39d18d] user: drh branch: trunk, size: 34018)
00:40
[74ba1a99a5] part of check-in [fdf71be658] Minor simplification of the cursor allocation logic for update. (check-in: [fdf71be658] user: drh branch: trunk, size: 33888)
2018-04-19
23:52
[cc691c8b63] part of check-in [c6f71115eb] Fix the handling of "PRAGMA count_changes=ON" with UPSERT. Also improved the implementation of count_changes in other places, without changing the behavior. (check-in: [c6f71115eb] user: drh branch: trunk, size: 33898)
2018-04-16
13:00
[5787acf0a1] part of check-in [0203f34faa] Add support for the "excluded.*" names in the UPDATE clause of an upsert. (check-in: [0203f34faa] user: drh branch: upsert, size: 34041)
2018-04-13
01:15
[f5210fb55d] part of check-in [8096964340] Begin adding upsert logic. This is an incremental check-in. (check-in: [8096964340] user: drh branch: upsert, size: 33925)
2018-04-12
19:51
[a72ab17286] part of check-in [a26f9c9f89] Simple comment clarification. No code or logic changes. (check-in: [a26f9c9f89] user: drh branch: upsert, size: 33922)
2018-04-05
16:26
[97d4c95142] part of check-in [a3b02db746] Fix an instance where an uninitialized VM register might be accessed. Fix for [093420fc0]. This problem was found by OSSFuzz. (check-in: [a3b02db746] user: dan branch: trunk, size: 33932)
2018-03-02
18:26
[503fcd6648] part of check-in [8ade94ba67] Merge latest changes from begin-concurrent into this branch. (check-in: [8ade94ba67] user: dan branch: begin-concurrent-pnu, size: 34345)
2018-01-23
01:56
[b1ff6055b9] part of check-in [c25da6de1d] Enhance the PRAGMA noop_update statement so that the behavior persists across reprepare operations. (check-in: [c25da6de1d] user: drh branch: noop-update-reprepare, size: 34277)
2018-01-12
23:18
[a90a32ffc0] part of check-in [a1b3f28569] Improved comments. Slightly tighter implementation, but no big changes. (check-in: [a1b3f28569] user: drh branch: sqlite3_value_nochange, size: 33921)
21:00
[7736ffc60d] part of check-in [8b7be15ece] Add the experimental sqlite3_value_nochange() interface usable by xUpdate methods of virtual tables to see if a column has actually changed values. (check-in: [8b7be15ece] user: drh branch: sqlite3_value_nochange, size: 33715)
00:30
[82f9906581] part of check-in [8b8314cb9b] Enable the one-pass optimization for DELETE and UPDATE on RTree. This is parked in a branch because is seems to make no measureable performance difference. (check-in: [8b8314cb9b] user: drh branch: rtree-one-pass, size: 33763)
2018-01-11
17:04
[8bd52c38d6] part of check-in [d444b1ff39] Add the sqlite3_vtab_nochange() method which virtual table implementations can use to optimize UPDATEs. (check-in: [d444b1ff39] user: drh branch: sqlite3_vtab_nochange, size: 33657)
13:43
[f75a8bf497] part of check-in [2c55571baa] Fix typo in comment. No code changes. (check-in: [2c55571baa] user: drh branch: trunk, size: 33651)
2017-12-12
18:17
[afb46178ff] part of check-in [3fde0b4d05] Merge latest begin-concurrent changes into this branch. (check-in: [3fde0b4d05] user: dan branch: begin-concurrent-pnu, size: 34196)
2017-11-14
23:48
[961bd1265d] part of check-in [3925facd94] In the parse tree, combine LIMIT and OFFSET into a single expression rooted on a TK_LIMIT node, for a small code size reduction and performance increase, and a reduction in code complexity. (check-in: [3925facd94] user: drh branch: trunk, size: 33642)
18:26
[262a470e3a] part of check-in [b2679d3b7a] Fix the SQLITE_ENABLE_UPDATE_DELETE_LIMIT functionality so that it works with views and WITHOUT ROWID tables. This is a modified cherrypick of [dae4a97a]. (check-in: [b2679d3b7a] user: dan branch: branch-3.8.9, size: 29302)
2017-11-10
20:13
[2e7ef3839e] part of check-in [72be33f9c8] Omit some extra code from non-SQLITE_ENABLE_UPDATE_DELETE_LIMIT builds. (check-in: [72be33f9c8] user: dan branch: update-delete-limit-fix, size: 33772)
2017-11-09
19:53
[5123fcb4aa] part of check-in [584b88aaf8] Add SQLITE_ENABLE_UPDATE_DELETE_LIMIT for views and WITHOUT ROWID tables. (check-in: [584b88aaf8] user: dan branch: update-delete-limit-fix, size: 33601)
2017-11-01
18:48
[d36ee12b6c] part of check-in [81baf67c44] The "PRAGMA noop_update" command now requires SQLITE_ENABLE_NOOP_UPDATE and no longer requires SQLITE_DEBUG. (check-in: [81baf67c44] user: drh branch: begin-concurrent-pnu, size: 33552)
2017-09-12
18:49
[2bb1d048a1] part of check-in [de2e371757] Add the highly-experimental "PRAGMA noop_update=TRUE" command. (check-in: [de2e371757] user: drh branch: pragma-noop-update, size: 33539)
2017-08-10
15:19
[5404be9e84] part of check-in [ab9ee4c1e6] Experimental changes that allow a WITHOUT ROWID virtual table to be writable as long as it has only a single-column PRIMARY KEY. (check-in: [ab9ee4c1e6] user: drh branch: writable-vtab-without-rowid, size: 33128)
2017-04-11
19:58
[c443935c65] part of check-in [477bea9ed0] Avoid updating unaffected indexes on a table as part of an UPDATE that requires foreign key processing in some cases. (check-in: [477bea9ed0] user: dan branch: fkey-optimization, size: 32756)
2017-02-18
20:05
[bcfda1d123] part of check-in [c1adf95958] Add an optimization to OP_Column to speed up sequential OP_Column instructions that read earlier fields from the same cursor. Attempt to reorder OP_Column opcodes so as to take advantage of this. (check-in: [c1adf95958] user: dan branch: sort-column-opcodes, size: 32803)
2017-01-28
19:45
[456d4a4656] part of check-in [dc555b1039] Avoid redundant table b-tree cursor seeks in UPDATE statements that use the two-pass strategy. (check-in: [dc555b1039] user: dan branch: trunk, size: 32750)
2017-01-16
16:43
[b356b29d04] part of check-in [0613665274] Back out check-in [0b3174e0b1364c] and replace it with a better fix for ticket [91e2e8ba6ff2e2] - a fix that does not cause the problem identified by ticket [7ffd1ca1d2ad4ec]. (check-in: [0613665274] user: drh branch: automatic-index-affinity, size: 32747)
2017-01-12
16:21
[4e21634dde] part of check-in [385db26667] Fix harmless compiler warnings in the UPDATE code generator. (check-in: [385db26667] user: drh branch: trunk, size: 32753)
2017-01-11
20:10
[715bbfe276] part of check-in [62257eb53c] Fix a problem causing the pre-update hook to be passed an incorrect rowid value in some single-pass multi-row updates. (check-in: [62257eb53c] user: dan branch: onepass-update, size: 32753)
19:03
[4ed0fccccc] part of check-in [0a2b8e1b9d] Fix a problem with single-pass multi-row UPDATE statements that invoke REPLACE conflict handling. (check-in: [0a2b8e1b9d] user: dan branch: onepass-update, size: 32621)
15:42
[117bb08065] part of check-in [cab86c9094] Fix a problem preventing UPDATE statements that use a range-scan on the PK index of a WITHOUT ROWID table from using a one-pass strategy. (check-in: [cab86c9094] user: dan branch: onepass-update, size: 32379)
2017-01-10
20:04
[77a02122e0] part of check-in [46db23ccd1] Changes to allow some multi-row UPDATE statements to avoid the two-pass approach. (check-in: [46db23ccd1] user: dan branch: onepass-update, size: 32299)
2016-12-07
21:35
[1da7c46211] part of check-in [28883e8f3e] Add the sqlite3VdbeAppendP4() method for adding P4 content to the most recently coded instruction. (check-in: [28883e8f3e] user: drh branch: trunk, size: 30773)
2016-11-25
19:32
[1b8321100c] part of check-in [6ac7b07a4a] Remove the OP_RowKey opcode. Use OP_RowData in its place. (check-in: [6ac7b07a4a] user: drh branch: trunk, size: 30802)
2016-11-22
01:26
[68714ed42a] part of check-in [32be7aae92] Remove unnecessary OP_Close opcodes for a size reduction and performance increase. (check-in: [32be7aae92] user: drh branch: trunk, size: 30801)
2016-11-10
14:24
[bb9854778b] part of check-in [67602e40f1] Add the unpacked key fields to OP_IdxInsert for INSERT and UPDATE statements. (check-in: [67602e40f1] user: drh branch: unpacked-IdxInsert, size: 31066)
2016-11-09
00:10
[771335a33c] part of check-in [89d958abba] Enhance the OP_IdxInsert opcode to optionally accept unpacked key material. (check-in: [89d958abba] user: drh branch: unpacked-IdxInsert, size: 30988)
2016-08-18
14:33
[8179e699db] part of check-in [92a22f0134] Rename the Db.zName field to Db.zDbSName to make it more descriptive and to distinguish it from all of the other "zName" variables scattered throughout the code. (check-in: [92a22f0134] user: drh branch: zDbSName, size: 30975)
2016-05-06
20:23
[4f05ea8cdd] part of check-in [3a69526318] Simplification to the logic used to decide between OP_Seek and OP_NotExists. Use OP_NotExists for both DELETE and UPDATE. (check-in: [3a69526318] user: drh branch: trunk, size: 30972)
2016-03-30
12:56
[3e67ab3c08] part of check-in [5ab46d760d] Avoid compiler warnings and excess opcodes when SQLITE_ENABLE_PREUPDATE_HOOK is not used. Fix the EXPLAIN output for P4_TABLE opcodes. (check-in: [5ab46d760d] user: drh branch: sessions, size: 30941)
2016-03-16
01:16
[14c6916d01] part of check-in [6a7ee04b0d] Merge all recent enhancements from trunk. (check-in: [6a7ee04b0d] user: drh branch: sessions, size: 30796)
2016-03-08
01:32
[56b3db7edf] part of check-in [91bd619d27] Add the ALLBITS macro as a shorthand for "(Bitmask)(-1)". (check-in: [91bd619d27] user: drh branch: trunk, size: 30210)
2016-02-27
17:16
[3c911431bc] part of check-in [3a0c347cca] Experimental "PRAGMA onconflict=FAIL" statement to change the default ON CONFLICT algorithm to something other than ABORT. (check-in: [3a0c347cca] user: drh branch: pragma-onconflict, size: 30221)
2016-02-13
14:07
[c0016d277a] part of check-in [4d7a802e73] Merge the changes for the 3.11.0 release candidate from trunk. (check-in: [4d7a802e73] user: drh branch: sessions, size: 30800)
2016-02-10
16:03
[a7eeeaffad] part of check-in [6a3aaedfb4] Omit NOT NULL checks on unchanging columns in an UPDATE. (check-in: [6a3aaedfb4] user: drh branch: trunk, size: 30214)
2016-02-05
14:15
[52552d2fe1] part of check-in [a533608cb0] Merge enhancements from trunk. (check-in: [a533608cb0] user: drh branch: sessions, size: 30785)
13:38
[310ca7adb8] part of check-in [0a802e96ab] Add the slightly faster sqlite3DbMallocRawNN(db,n) routine for the majority cases where db is guaranteed to be not NULL. (check-in: [0a802e96ab] user: drh branch: oom-handling, size: 30199)
2016-02-04
02:34
[37568d17f9] part of check-in [1c8d300189] Add and use the sqlite3VdbeZeroRegister() interface for coding the common operation of writing zero into a register. (check-in: [1c8d300189] user: drh branch: zero-register, size: 30188)
2015-12-02
20:40
[d8d675aa29] part of check-in [d1a1278d7f] Merge recent enhancements from trunk. (check-in: [d1a1278d7f] user: drh branch: sessions, size: 30783)
2015-11-26
19:33
[17332f9fe8] part of check-in [116b206494] Add the "colUsed" field to the sqlite3_index_info structure passed to virtual table xBestIndex methods. To indicate the subset of the virtual table columns that may be required by the current scan. (check-in: [116b206494] user: dan branch: vtab-colused, size: 30197)
2015-10-30
16:50
[c2fff3b60b] part of check-in [395a153ff7] Merge all the latest enhancements from trunk. (check-in: [395a153ff7] user: drh branch: sessions, size: 30580)
2015-10-22
20:54
[40e51cd088] part of check-in [cdc92919e6] Modifications to pass a flag to internal routine sqlite3BtreeCursor() when a cursor that is used solely for deleting b-tree entries, or for obtaining the components of keys to delete from other b-trees, is opened. (check-in: [cdc92919e6] user: dan branch: btree-fordelete-flag, size: 29994)
2015-10-17
01:00
[04ed5f0334] part of check-in [c6239bf943] Change the code generator for UPDATE to generate code in an order that might run more efficiently in many cases. (check-in: [c6239bf943] user: drh branch: improved-update, size: 30174)
2015-10-15
19:21
[aa10336a27] part of check-in [871e091df6] Enhance the use of the column cache for UPDATE statements, making them more efficient for the case where a column is modified to be an expression of other unmodified columns. (check-in: [871e091df6] user: drh branch: trunk, size: 29991)
2015-10-10
20:35
[19b4edc4f0] part of check-in [ed174ccf0a] Pull in the latest 3.9.0 tweaks from trunk. (check-in: [ed174ccf0a] user: drh branch: sessions, size: 30574)
14:41
[dc37664095] part of check-in [9ddef84d43] Compiler warning fixes: Rename some local variables from "j1" to avoid a name collision with the j1() bessel function in the math library. Omit a dummy initializer that gcc 4.6.3 does not like. (check-in: [9ddef84d43] user: drh branch: trunk, size: 29988)
2015-09-30
14:50
[9e102cc3d8] part of check-in [b2face9aa9] Merge recent enhancements from trunk, and especially the fix for ticket [1b266395d6bc10]. (check-in: [b2face9aa9] user: drh branch: sessions, size: 30565)
2015-09-29
17:20
[a134027f59] part of check-in [7d272aa62c] Use symbolic names XN_ROWID and XN_EXPR in place of the (-1) and (-2) magic numbers in Index.aiColumn[]. Add asserts to help verify that Index.aiColumn[] is always used correctly. Fix one place in FK processing where Index.aiColumn[] was not being used correctly. (check-in: [7d272aa62c] user: drh branch: trunk, size: 29979)
13:25
[d8f0afe1a1] part of check-in [59662cd2b6] Create the sqlite3IsToplevel(Parse*) interface to check to see if a top-level VDBE is being coded (versus a trigger) and use that interface. (check-in: [59662cd2b6] user: drh branch: vtab-onepass, size: 29982)
12:32
[e0169d2052] part of check-in [d1a0783854] Fix compiler warnings. (check-in: [d1a0783854] user: drh branch: vtab-onepass, size: 29993)
10:11
[4fb82a2440] part of check-in [820c804468] Add tests for fts3 and onepass update/delete operations. Also fix a problem with onepass updates that do not affect any rows. (check-in: [820c804468] user: dan branch: vtab-onepass, size: 30081)
2015-09-28
20:03
[779319e1d5] part of check-in [1aa27d706d] Also allow UPDATE on virtual tables to use the onepass strategy. (check-in: [1aa27d706d] user: dan branch: vtab-onepass, size: 29956)
2015-09-15
15:55
[04a0648900] part of check-in [b7469c44be] Merge the latest trunk enhancements with this branch. (check-in: [b7469c44be] user: dan branch: sessions, size: 29273)
2015-09-14
10:47
[ce5157218e] part of check-in [22ce9218fb] Merge the latest trunk enhancements. (check-in: [22ce9218fb] user: drh branch: sessions, size: 29269)
2015-09-12
19:26
[eb7ab3ff29] part of check-in [eaeb2b80f6] Experimental change to use a single-pass approach for DELETE statements on non-virtual tables that do not fire triggers or require foriegn-key processing. (check-in: [eaeb2b80f6] user: dan branch: onepass-delete, size: 28687)
2015-09-03
14:48
[352eb0f1f3] part of check-in [6a513c0585] Merge recent trunk enhancements. (check-in: [6a513c0585] user: drh branch: sessions, size: 29113)
14:18
[3c5bc9570d] part of check-in [1ab10cbf27] Merge enhancements from trunk. (check-in: [1ab10cbf27] user: drh branch: index-expr, size: 28683)
13:46
[795fba8eba] part of check-in [847387ec8e] Add the sqlite3VdbeLoadString() and sqlite3VdbeMultiLoad() routines to help with code generation, especially on PRAGMAs. Rename sqlite3VdbeAddGoto() to just sqlite3VdbeGoto(). (check-in: [847387ec8e] user: drh branch: trunk, size: 28527)
2015-09-02
18:19
[bf0db5617e] part of check-in [be78f413df] Add the sqlite3VdbeAddGoto(v,i) routine as a shorthand for sqlite3VdbeAddOp2(v,OP_Goto,0,i). (check-in: [be78f413df] user: drh branch: trunk, size: 28530)
2015-09-01
18:52
[b551ee2dad] part of check-in [cb77236673] Merge recent enhancements from trunk. (check-in: [cb77236673] user: drh branch: sessions, size: 29127)
2015-08-25
19:24
[e1bea2b67d] part of check-in [e8b02902c4] Merge trunk enhancements. (check-in: [e8b02902c4] user: drh branch: index-expr, size: 28697)
19:20
[adc8b4b2b6] part of check-in [1ee089a72d] Use the sqlite3IndexColumnAffinity() routine to quickly and correctly find the affinity of an index column. (check-in: [1ee089a72d] user: drh branch: trunk, size: 28541)
16:57
[798196d769] part of check-in [efaabdb716] Add code to maintain indexes with expression arguments across DELETE, INSERT, and UPDATE statements. Legacy tests pass, but the new code paths are still largely untested. The query planner currently makes no effort to use expression indexes. (check-in: [efaabdb716] user: drh branch: index-expr, size: 28696)
2015-06-08
22:59
[831a657bcf] part of check-in [cabf218716] Code refactoring to try to shift FROM-clause subquery manifesting until after the query planner runs. Except this does not currently work because the query planner needs an estimated of the number of rows in the manifested table. Work in progress. (check-in: [cabf218716] user: drh branch: view-optimization, size: 28546)
2015-05-22
23:26
[24dd6a45b8] part of check-in [cdc0ca6fb3] Merge enhancements from trunk, including the new sqlite3_value_dup() API and the addition of the apSqlParam field in the sqlite3_rtree_query_info object of R-Tree. (check-in: [cdc0ca6fb3] user: drh branch: sessions, size: 29126)
17:29
[487747b328] part of check-in [b9727e6bbf] The SRT_Table type for the SelectDest object is now just an SRT_EphemTab for which the ephemeral table has already been allocated. (check-in: [b9727e6bbf] user: drh branch: trunk, size: 28540)
2015-03-20
20:30
[250cefb96c] part of check-in [0a7f2051b2] Where possible insert the set of new keys for each index in sorted order within "INSERT INTO ... SELECT" statements. (check-in: [0a7f2051b2] user: dan branch: insert-select-opt, size: 28674)
2014-10-31
14:53
[d207deb7a0] part of check-in [28b044a512] Merge recent trunk enhancements, and in particular the improvements to the b-tree balancing logic, into the sessions branch. (check-in: [28b044a512] user: drh branch: sessions, size: 29244)
2014-10-28
16:50
[3c4ecc282a] part of check-in [8523670d50] Fix a crash that could occur if the WHERE clause of an UPDATE statement on a view that does not feature a column named "rowid" contains a term such as "rowid=?". (check-in: [8523670d50] user: dan branch: trunk, size: 28658)
2014-09-29
18:47
[dcc1733c8f] part of check-in [5e5d6e8680] Add the OPFLAG_MULTICOLUMN flag to the OP_Column opcode. Rearrange OP_Column instructions to take advantage of the new flag for a small performance increase (check-in: [5e5d6e8680] user: drh branch: faster-OP_Column, size: 28693)
2014-09-08
15:04
[b9e5295d3a] part of check-in [c2885c6bb2] Merge support for large files on Android from trunk. (check-in: [c2885c6bb2] user: drh branch: sessions, size: 29236)
2014-09-06
16:39
[729f6f18fc] part of check-in [e62aab5e92] Fix typos in comments. No code changes. (check-in: [e62aab5e92] user: peter.d.reid branch: trunk, size: 28650)
2014-08-06
01:25
[b0f38fda25] part of check-in [68a6d5e2f4] Merge the latest 3.8.6 beta changes from trunk. (check-in: [68a6d5e2f4] user: drh branch: sessions, size: 29239)
2014-08-04
21:26
[ea336ce7b8] part of check-in [ee5f6eae57] Part of the change in the previous check-in was incorrect and can result in an incorrect UPDATE for WITHOUT ROWID tables. This check-in fixes the problem. (check-in: [ee5f6eae57] user: drh branch: IN-operator-improvements, size: 28653)
18:50
[510c59a21b] part of check-in [7fdf26da1d] Further enhancements to IN-operator processing. (check-in: [7fdf26da1d] user: drh branch: IN-operator-improvements, size: 28619)
15:12
[4163440424] part of check-in [2f724cbac9] Changed my mind: This opcode name changes mere creates unnecessary diff marks between older and newer versions without significantly improving readability. Was: Rename the IsNull opcode to IfNull and rename the NotNull opcode to IfNotNull. (check-in: [2f724cbac9] user: drh branch: deadend, size: 28612)
2014-05-29
20:29
[0f16e1d55d] part of check-in [9f18e78f03] Merge trunk changes into the sessions branch. (check-in: [9f18e78f03] user: drh branch: sessions, size: 29198)
2014-05-27
18:18
[01564b3c43] part of check-in [d16e575dac] Change the name of the Index.autoIndex field to Index.idxType and provide symbolic names for the various values of that field rather than using magic numbers. (check-in: [d16e575dac] user: drh branch: trunk, size: 28612)
2014-05-19
15:16
[f2ded39ef1] part of check-in [17349a49d2] Changes to help ensure that a multiplication does not overflow when computing the number of bytes needed for a memory allocation, and cause a malfunction. No problems existing problems were discovered. However, these changes should help to ensure that no problems arise in the future. (check-in: [17349a49d2] user: drh branch: safer-malloc, size: 28610)
2014-03-04
14:34
[7bb549d61e] part of check-in [7f51ad97f0] Merge the performance enhancements of trunk (and some obscure bug fixes) into the sessions branch. (check-in: [7f51ad97f0] user: drh branch: sessions, size: 29193)
2014-02-19
19:14
[5b3e74a03b] part of check-in [c1e94169dd] Add the VdbeCoverageNeverTaken() macro, and comments that better describe how the VDBE branch coverage measurement works. Add some tags to provide 100% VDBE branch coverage. (check-in: [c1e94169dd] user: drh branch: trunk, size: 28607)
2014-02-17
22:40
[16d6555a32] part of check-in [ce184c7bb1] Add logic to do test coverage measurements on the VDBE code. (check-in: [ce184c7bb1] user: drh branch: insert-optimization, size: 28614)
14:59
[b126167ee3] part of check-in [35b4d6e938] Avoid unnecessary calls to applyAffinity() during INSERT and UPDATE operations, especially for table that have indices and tables for which all columns have affinity "NONE". (check-in: [35b4d6e938] user: drh branch: insert-optimization, size: 28326)
2014-02-05
18:15
[3d2bdfe24d] part of check-in [2997e18157] Use a new opcode, OP_OpenHash, to indicate that ephemeral tables can be unordered, rather than using the BTREE_UNORDERED bit in the P5 field. (check-in: [2997e18157] user: drh branch: subquery-codegen-refactor, size: 28341)
2014-01-28
18:06
[437c130e7d] part of check-in [7b5f377386] Bring in the latest updates from trunk. (check-in: [7b5f377386] user: drh branch: sessions, size: 28975)
2014-01-24
22:58
[a7df6fffce] part of check-in [87bf60637e] Fixes for various clang warnings. (check-in: [87bf60637e] user: drh branch: trunk, size: 28389)
2013-12-24
12:09
[3143bbdfc8] part of check-in [cfd110bf5d] Merge the latest trunk changes into the sessions branch. (check-in: [cfd110bf5d] user: drh branch: sessions, size: 28907)
2013-12-22
22:45
[c2706a6eb2] part of check-in [895af097e7] Remove a condition that is always in the logic that handles reading default values for columns. (check-in: [895af097e7] user: drh branch: trunk, size: 28321)
2013-12-19
02:56
[47baf532e3] part of check-in [72d111336c] Omit an unnecessary OP_Null opcode from UPDATE. (check-in: [72d111336c] user: drh branch: trunk, size: 28332)
2013-12-03
20:51
[4ada523da2] part of check-in [a2914d6b17] Merge in trunk changes. (check-in: [a2914d6b17] user: drh branch: sessions, size: 28853)
10:14
[d1c2477dcf] part of check-in [72f9727714] Remove an unnecessary branch from the UPDATE logic - one that was also unreachable except following an OOM on x64. (check-in: [72f9727714] user: drh branch: trunk, size: 28267)
2013-11-26
18:00
[046d7df2a4] part of check-in [fc9ae83956] Merge in performance enhancements from trunk. (check-in: [fc9ae83956] user: drh branch: sessions, size: 28961)
2013-11-19
02:34
[c05a0ee658] part of check-in [57158d9daf] Avoid seeking on the main data table during the first loop of an UPDATE if an index is sufficient to check the WHERE clause. (check-in: [57158d9daf] user: drh branch: trunk, size: 28375)
2013-11-17
02:42
[cc3d826923] part of check-in [6bd5750b7d] Make sure one-pass DELETE for WITHOUT ROWID tables correctly positions the PRIMARY KEY cursor. Make the same fix for UPDATE. (check-in: [6bd5750b7d] user: drh branch: optimize-delete, size: 28238)
2013-11-16
23:16
[18e9b11b49] part of check-in [a11243f840] Fix a couple of minor problems with the new delete logic. (check-in: [a11243f840] user: drh branch: optimize-delete, size: 28191)
20:13
[6a45368f8c] part of check-in [8f479a7275] Enhance the DELETE logic so that it can make use of WHERE_ONEPASS_DESIRED for rowid tables. (check-in: [8f479a7275] user: drh branch: optimize-delete, size: 28271)
2013-11-11
22:55
[faee30d7aa] part of check-in [5addd1234d] Merge in the WITHOUT ROWID changes. A few tests are failing now. They will be fixed in a follow-on check-in. (check-in: [5addd1234d] user: drh branch: sessions, size: 29028)
16:55
[3de7e657b9] part of check-in [924d63b283] Remove unreachable code, replacing it in most cases with assert() or NEVER() macros. (check-in: [924d63b283] user: drh branch: trunk, size: 28442)
2013-11-08
15:19
[95a640c56d] part of check-in [6f187a0fb1] Performance improvements: Avoid unnecessary seeks when doing a single-row UPDATE on a WITHOUT ROWID table. (check-in: [6f187a0fb1] user: drh branch: trunk, size: 28433)
01:09
[79f10ddcb0] part of check-in [74e3ee2ee6] Optimize out a NotExists/NotFound opcode that occurs in UPDATE processing after constraint checks if there is no possiblity that the constraint checking code might have moved the cursor. (check-in: [74e3ee2ee6] user: drh branch: trunk, size: 28130)
2013-11-07
21:32
[0e421a0d97] part of check-in [404bd98fb4] Fix a compiler warning introduced by the previous check-in. (check-in: [404bd98fb4] user: drh branch: trunk, size: 27955)
21:25
[a1580fb4ad] part of check-in [2153079855] Enable the WHERE_ONEPASS_DESIRED optimization for UPDATE operations on WITHOUT ROWID tables. (check-in: [2153079855] user: drh branch: trunk, size: 27953)
2013-11-06
19:59
[516e0ea0f8] part of check-in [defd5205a7] Reference count the KeyInfo object. Cache a copy of an appropriate KeyInfo for each index in the Index object, and reuse that one copy as much as possible. (check-in: [defd5205a7] user: drh branch: omit-rowid, size: 27364)
2013-11-05
01:59
[c60e6169d7] part of check-in [294ed33756] Add the conflict2.test script. Fix issues discovered by this script. (check-in: [294ed33756] user: drh branch: omit-rowid, size: 27499)
2013-11-04
18:34
[a804e71818] part of check-in [bc2a06eb8e] Add another test case file for WITHOUT ROWID and fix the bugs that the new test file uncovered. (check-in: [bc2a06eb8e] user: drh branch: omit-rowid, size: 27511)
2013-11-01
17:08
[94d63d3e06] part of check-in [c525ac5630] Change the interface to sqlite3GenerateConstraintChecks() for improved lucidity and to fix issues in dealing with UPDATEs for WITHOUT ROWID tables. Make sure iDataCur and iIdxCur are initialized when processing DELETEs of a VIEW. UPDATE processing distinguishes between changes to ROWID and PRIMARY KEY. (check-in: [c525ac5630] user: drh branch: omit-rowid, size: 27495)
14:03
[fff9ac57e3] part of check-in [3bed599e74] Improved VDBE comments on the constraint checker. Fix a missing write lock in the UPDATE logic. (check-in: [3bed599e74] user: drh branch: omit-rowid, size: 27043)
12:42
[fe12f3cd78] part of check-in [5c0eaea6a2] Some UPDATE statements now working in WITHOUT ROWID tables. (check-in: [5c0eaea6a2] user: drh branch: omit-rowid, size: 26980)
2013-10-31
20:34
[5afafb5300] part of check-in [9b6d9e106a] Fix the Synopsis on OP_Concat. Added test_addop_breakpoint() during SQLITE_DEBUG. Enhanced sqlite3VdbeChangeToNoop() to omit the instruction if it is the most recent added. Continue to fix problems with UPDATE and WITHOUT ROWID. (check-in: [9b6d9e106a] user: drh branch: omit-rowid, size: 26979)
12:13
[3cabfcbd3e] part of check-in [deacbd21b5] Moving UPDATE towards the iDataCur/iIdxCur representation. Still not working for WITHOUT ROWID, though. (check-in: [deacbd21b5] user: drh branch: omit-rowid, size: 26837)
11:15
[3be9af5585] part of check-in [1adfca6019] Refactor the INSERT, DELETE, and UPDATE code generators to distinguish between the "data cursor" and the "first index cursor", which are no longer consecutive in the case of a WITHOUT ROWID table. (check-in: [1adfca6019] user: drh branch: omit-rowid, size: 26653)
2013-10-30
20:22
[103ab76ccd] part of check-in [0d4fea7462] Continue working to get UPDATE operational for WITHOUT ROWID tables. Fix PRAGMA integrity_check so that it works on WITHOUT ROWID tables. (check-in: [0d4fea7462] user: drh branch: omit-rowid, size: 26766)
2013-10-25
19:17
[e39378bc5e] part of check-in [e557b7d80f] Progress toward getting UPDATE to work in WITHOUT ROWID tables. (check-in: [e557b7d80f] user: drh branch: omit-rowid, size: 26503)
2013-10-22
18:01
[2bb5a26779] part of check-in [a106ce86cd] The Index object now has nKeyCol and nColumn. nColumn is the total number of columns and nKeyCol is the number of key columns. Currently these always differ by one. Refactor aiColumn[] to be of type i16 instead of int. (check-in: [a106ce86cd] user: drh branch: omit-rowid, size: 24596)
2013-10-10
20:13
[be9831a714] part of check-in [136445ba02] Synchronize with the trunk. (check-in: [136445ba02] user: drh branch: sessions, size: 25182)
2013-09-05
18:40
[f5182157f5] part of check-in [e940b5de49] When preparing an UPDATE statement, avoid generating VDBE code for those foreign key related actions and constraint checks that may be seen to be unnecessary by considering the subset of table columns potentially modified by the UPDATE. (check-in: [e940b5de49] user: dan branch: trunk, size: 24596)
2013-08-29
15:08
[8bacc585ae] part of check-in [e7ebc8f74f] Merge from trunk: (1) Recent bug fixes (2) STAT4 support (3) win32-longpath support. (check-in: [e7ebc8f74f] user: drh branch: sessions, size: 25128)
2013-08-06
20:01
[7d9d38e4f3] part of check-in [2973f5ca73] When possible, use the multi-column samples in sqlite_stat4 to estimate the number of index rows scanned by a query plan. (check-in: [2973f5ca73] user: dan branch: sqlite_stat4, size: 24542)
2013-08-02
20:44
[e3668141dd] part of check-in [7e1acb3907] Merge in the latest trunk changes, including partial indexes, the MAX_PATH fix in os_win.c, and the sqlite3_cancel_auto_extension() API. (check-in: [7e1acb3907] user: drh branch: sessions, size: 25124)
2013-08-01
01:14
[7f3fe64d8f] part of check-in [fb9044d15a] Add the logic to keep partial indices up to date through DML statements and when new partial indices are created. This new logic is untested except to verify that it does not interfere with full indices. (check-in: [fb9044d15a] user: drh branch: partial-indices, size: 24538)
2013-06-26
13:31
[19daebf6a0] part of check-in [086a127236] Bring the sessions branch up-to-date with all the latest trunk changes. (check-in: [086a127236] user: drh branch: sessions, size: 25101)
2013-06-05
23:39
[8e76c3d03e] part of check-in [1574653b9b] Move the definitions of the WhereLevel and WhereInfo objects out of sqliteInt.h and into where.c. This will facilitate future refactoring of the internal query planner data structures. (check-in: [1574653b9b] user: drh branch: nextgen-query-plan-exp, size: 24515)
2013-05-08
18:50
[2f6de22ac3] part of check-in [ae6c4a0906] Merge all recent trunk changes into the sessions branch. (check-in: [ae6c4a0906] user: drh branch: sessions, size: 25089)
2013-05-06
13:22
[4c0c6864c4] part of check-in [26a59bb88d] Make sure the authorizer callback gets a valid pointer to "ROWID" for the column-name parameter when doing an UPDATE that changes the rowid. Fix for ticket [0eb70d77cb05bb2272]. (check-in: [26a59bb88d] user: drh branch: trunk, size: 24503)
2013-03-28
01:19
[beef58f5fd] part of check-in [ee35a89712] Merge the changes for the 3.7.16.1 release candidate into the sessions branch. (check-in: [ee35a89712] user: drh branch: sessions, size: 25028)
2013-03-21
21:20
[a2a5631d61] part of check-in [6f6e2d5094] Many spelling fixes in comments. No changes to code. (check-in: [6f6e2d5094] user: mistachkin branch: trunk, size: 24442)
2012-08-25
01:21
[abb0fcabe5] part of check-in [aa62d6881b] Merge the latest trunk changes into the sessions branch. (check-in: [aa62d6881b] user: drh branch: sessions, size: 25029)
00:49
[e85ead70c9] part of check-in [865dfcbaa5] Backport check-in [62678be3df35cd]: When the same index is used for all OR-terms in a WHERE clause, then try to use that index as a covering index. (check-in: [865dfcbaa5] user: drh branch: branch-3.7.2, size: 24120)
2012-08-24
18:44
[28d2d098b4] part of check-in [a3e26038a1] Fix a problem to do with multi-or queries and automatic indexes. (check-in: [a3e26038a1] user: dan branch: multi-or-covering-index, size: 24443)
2012-01-05
13:02
[89de085a0b] part of check-in [a9bcb432f5] Merge all of the latest trunk changes into the sessions branch. (check-in: [a9bcb432f5] user: drh branch: sessions, size: 25026)
2011-12-09
16:21
[d3076782c8] part of check-in [521d72bdf6] Make no assumptions about the initial state of VDBE registers. (check-in: [521d72bdf6] user: drh branch: uninit-vdbe-mem, size: 24440)
2011-10-21
17:08
[7509519281] part of check-in [8baef58170] Merge the latest trunk enhancements into the sessions branch. (check-in: [8baef58170] user: drh branch: sessions, size: 24844)
2011-10-14
21:49
[25e046a8f6] part of check-in [60fee9574b] Add assert() statements and eliminate needless variable assignments in order to get the clang scan-build utility to report zero problems against the SQLite core. Clang's static analysis did find one real problem - but it was in the command-line shell, not in the SQLite core. (check-in: [60fee9574b] user: drh branch: trunk, size: 24258)
2011-07-22
12:49
[2d67e24d5a] part of check-in [110cfd6920] Merge the latest trunk changes into the sessions branch. (check-in: [110cfd6920] user: drh branch: sessions, size: 24796)
2011-07-02
13:34
[c6be6a5af1] part of check-in [c593792ce0] Cherrypick [45e581bff7] into the 3.7.2 branch. (check-in: [c593792ce0] user: dan branch: branch-3.7.2, size: 24117)
2011-06-30
20:17
[74a6cfb34e] part of check-in [f7ba0219ef] Experimental changes to improve optimization of DISTINCT queries. (check-in: [f7ba0219ef] user: dan branch: experimental, size: 24210)
2011-06-20
10:44
[a81bda229f] part of check-in [4c5e276c90] Merge the latest trunk changes into the sessions branch. (check-in: [4c5e276c90] user: drh branch: sessions, size: 24782)
2011-06-10
18:33
[80d77311d9] part of check-in [2b3d9996a8] When updating a field that requires foreign key constraints be checked, ensure that the indexes and tables are consistent when the FK logic is run. Otherwise, it may detect the inconsistency and report database corruption. (check-in: [2b3d9996a8] user: dan branch: trunk, size: 24196)
2011-05-05
15:46
[f66b651c15] part of check-in [6883580e6c] Merge the latest trunk changes into the sessions branch. (check-in: [6883580e6c] user: drh branch: sessions, size: 24773)
2011-04-25
18:49
[5bcb56e5c7] part of check-in [6d2633a6d0] Add support for on conflict clauses to fts3/fts4. (check-in: [6d2633a6d0] user: dan branch: vtab-conflict, size: 24187)
2011-03-30
21:04
[3f3f3bb734] part of check-in [6634521461] Add the SQLITE_ENABLE_PREUPDATE_HOOK compile-time option. (check-in: [6634521461] user: drh branch: sessions, size: 24596)
2011-03-23
22:48
[f81e9b326c] part of check-in [9c3a6e4799] Merge in all the latest changes from the trunk, and especially the interface changes to the SystemCall methods of the VFS. (check-in: [9c3a6e4799] user: drh branch: sessions, size: 24598)
2011-03-19
08:38
[ca6d4ad2d8] part of check-in [24d4d5dd00] Fix a problem with INTEGER PRIMARY KEY columns and the pre-update hook. (check-in: [24d4d5dd00] user: dan branch: sessions, size: 24591)
2011-03-18
12:35
[aa39db6c39] part of check-in [94fd5bb6da] Merge all the latest trunk enhancements into the sessions branch. (check-in: [94fd5bb6da] user: drh branch: sessions, size: 24599)
2011-03-16
19:59
[18a862e3e0] part of check-in [526545c49f] Add the sqlite3_preupdate_new() API, for retrieving the new.* values from within a pre-update callback. (check-in: [526545c49f] user: dan branch: sessions, size: 24692)
2011-03-06
21:28
[81911be16e] part of check-in [01a79d5a7a] Remove dead code identified by the clang static analyzer. (check-in: [01a79d5a7a] user: drh branch: trunk, size: 24010)
2011-03-05
13:54
[c40aedd40b] part of check-in [04abab71ec] Fix an instance of signed arithmetic overflow and an one bit-shift overflow. Mark six other signed arithmetic overflow locations that need fixing. (check-in: [04abab71ec] user: drh branch: trunk, size: 24113)
2011-03-01
18:42
[1b9a82ede7] part of check-in [6145d7b89f] Add the experimental sqlite3_preupdate_hook() API. (check-in: [6145d7b89f] user: dan branch: sessions, size: 24379)
2010-08-30
22:15
[227e6cd512] part of check-in [4fead8e714] Provide hints to the btree layer during the creation of transient tables for when it is possible for those tables to use a hash rather than a binary tree. No use is currently made of those hints, though assert() statement verify their accuracy. (check-in: [4fead8e714] user: drh branch: trunk, size: 24103)
2010-07-30
16:54
[1521162d20] part of check-in [15c294ca05] Fix typos in comments. No code or logic changes. (check-in: [15c294ca05] user: drh branch: trunk, size: 24060)
2010-06-28
10:15
[19c899c23c] part of check-in [4932f22848] Currently, if SQLite cannot find a table or index referred to by a query, it reloads the database schema from disk to see if the table or index has been added since the schema was cached in memory. Extend this behaviour to columns (which may have been added using ALTER TABLE) and fix some obscure cases related to tables and indexes (INDEXED BY, DROP TABLE etc.). (check-in: [4932f22848] user: dan branch: trunk, size: 24066)
2010-05-14
19:24
[9859f2056c] part of check-in [636f86095e] Make sure the value of an INTEGER PRIMARY KEY column supplied to triggers and especially to FK constraints really contains the ROWID and not the NULL that is stored in the column itself. Ticket [dd08e5a988d00dec]. (check-in: [636f86095e] user: drh branch: trunk, size: 24033)
2010-02-25
14:44
[1d7d70ac77] part of check-in [a255059786] Add some technically unnecessary variable initializations to silence compiler warnings. (check-in: [a255059786] user: dan branch: branch-3.6.1, size: 23663)
2009-12-01
22:09
[c0dc6b75ad] part of check-in [27175caa28] Add testcase() macros to make sure boundary cases in BEFORE UPDATE triggers are well tested. (check-in: [27175caa28] user: drh branch: trunk, size: 24070)
2009-11-27
12:12
[edf5649ffc] part of check-in [1b7c5250cc] Move [7d30880114] to the trunk. Add optimizations to reduce the number of opcodes used for BEFORE UPDATE triggers. (check-in: [1b7c5250cc] user: dan branch: trunk, size: 23950)
2009-11-24
19:02
[24041f7963] part of check-in [7d30880114] Recomputed unchanged column values in an UPDATE statement after running BEFORE triggers, in case the triggers have modified any of those values. (check-in: [7d30880114] user: drh branch: experimental, size: 22745)
2009-11-10
01:30
[8efeb09822] part of check-in [f6c045f649] Remove the obsolete "$Id:$" RCS identifier strings from the source code. (check-in: [f6c045f649] user: drh branch: trunk, size: 22318)
2009-10-19
15:52
[8e8535f66c] part of check-in [6fe6371175] When generating WHERE clause terms internally for NATURAL and USING joins, identify the table by its position in the FROM list, not by its name or alias. Fix for [b73fb0bd64]. (check-in: [6fe6371175] user: dan branch: trunk, size: 22376)
2009-10-01
16:09
[2c8a64237e] part of check-in [edff350005] If an update does not modify any child or parent key columns, omit foreign key processing for the statement. (check-in: [edff350005] user: dan branch: trunk, size: 22420)
2009-09-28
11:54
[a7a5f60bf6] part of check-in [9e503e2d04] Fix some foreign key constraint related problems that occur when a row refers to itself. (check-in: [9e503e2d04] user: dan branch: trunk, size: 22353)
2009-09-24
09:05
[5df5c39dbe] part of check-in [0443f7c911] Remove unused parameter from sqlite3CodeRowTrigger(). Fix header comments for this function and CodeRowTriggerDirect(). (check-in: [0443f7c911] user: dan branch: trunk, size: 22293)
2009-09-21
16:06
[4fac66ecae] part of check-in [fb6ceed388] Fix compilation with OMIT_TRIGGER defined. Ticket [1ff6d29030]. (check-in: [fb6ceed388] user: dan branch: trunk, size: 22301)
2009-09-19
17:00
[f720f463b1] part of check-in [d5d3998118] Check in implementation of foreign key constraints. (check-in: [d5d3998118] user: dan branch: trunk, size: 22168)
2009-09-09
15:06
[e5f9f75aad] part of check-in [9a4c59a2dd] Add some tests that involve BEFORE UPDATE or BEFORE DELETE triggers messing with the row being updated or deleted. SQLite behaviour in this scenario is undefined, so the tests just check that the behaviour is relatively sane and there are no crashes. (check-in: [9a4c59a2dd] user: dan branch: trunk, size: 21728)
2009-09-08
19:15
[7a2c0dad3b] part of check-in [aec9dbd8d2] Combine the OP_Statement and OP_Transaction opcodes. (check-in: [aec9dbd8d2] user: dan branch: trunk, size: 21346)
2009-09-07
04:38
[3e97974baa] part of check-in [26cd015c0e] Warning cleanup from the MSVC compile. (check-in: [26cd015c0e] user: shane branch: trunk, size: 21319)
2009-09-03
19:43
[7c8eaf1284] part of check-in [715cecb8c7] Fix a VDBE stack overflow issue with the UPDATE statement. (check-in: [715cecb8c7] user: drh branch: branch-3.3.6, size: 16616)
2009-08-31
15:27
[12ffd68c2f] part of check-in [85d9f23be1] More fixes for test cases. (check-in: [85d9f23be1] user: dan branch: trunk, size: 21315)
2009-08-30
11:42
[574464e004] part of check-in [9eb91efda5] Fixes for new triggers scheme. (check-in: [9eb91efda5] user: dan branch: trunk, size: 22205)
2009-08-28
18:53
[cddbcabb2f] part of check-in [9b9c192115] Changes to support recursive triggers. (check-in: [9b9c192115] user: dan branch: trunk, size: 21177)
2009-08-08
18:01
[4da327f706] part of check-in [257e9b5750] Suppress various compiler warnings. (CVS 6963) (check-in: [257e9b5750] user: drh branch: trunk, size: 24406)
2009-07-27
10:05
[245a652c0c] part of check-in [3616766a6f] When extracting values from a record to use in an UPDATEd version of that record, apply OP_RealAffinity if required. Fix for #3992. (CVS 6945) (check-in: [3616766a6f] user: danielk1977 branch: trunk, size: 24395)
2009-07-24
17:58
[7570d90842] part of check-in [5d9e767a05] Allow virtual tables to be used in shared-cache mode. (CVS 6928) (check-in: [5d9e767a05] user: danielk1977 branch: trunk, size: 23980)
2009-06-27
11:17
[a1bbe774bc] part of check-in [49f22e55d6] Fix an instance where sqlite3JumpHere() might be called with a negative address following an OOM fault. (CVS 6828) (check-in: [49f22e55d6] user: drh branch: trunk, size: 23957)
2009-06-23
20:28
[b58db45e40] part of check-in [1330993de8] Enhance autoincrement so that it works with triggers that also do autoincrement inserts, even multiple inserts into the same table. Ticket #3928 (CVS 6807) (check-in: [1330993de8] user: drh branch: trunk, size: 23986)
2009-05-28
01:00
[6ae6c26adf] part of check-in [4ac2bdfbb4] Additional refinements to Expr handling. Restore compression of trigger expressions. Change Expr.zToken to Expr.u.zToken and added Expr.u.iValue. Remove an unnecessary ExprDup from CHECK constraint processing. And so forth. (CVS 6682) (check-in: [4ac2bdfbb4] user: drh branch: trunk, size: 23729)
2009-05-27
10:31
[3aec63a3a8] part of check-in [7cb1c3ba07] Simplifications to the Expr object: Remove Expr.span completely and convert Expr.token into a char* Expr.zToken. Also simplify the Token object by removing the Token.dyn and Token.quoted fields. (CVS 6681) (check-in: [7cb1c3ba07] user: drh branch: trunk, size: 23729)
2009-05-05
15:46
[deb930324d] part of check-in [25a11b9eca] Changes to update.c to facilitate full coverage testing. (CVS 6604) (check-in: [25a11b9eca] user: drh branch: trunk, size: 23738)
2009-05-04
11:42
[e69ba30a62] part of check-in [cac4f3d812] Speed up INSERT operations that add data to UNIQUE or PRIMARY KEY indexes by rationalizing duplicate seek operations. (CVS 6599) (check-in: [cac4f3d812] user: danielk1977 branch: trunk, size: 23758)
2009-04-24
15:46
[5062f0f042] part of check-in [98606bee9e] Get rid of the special RowSet processing in where.c and move that into clients. Added the WHERE_DUPLICATES_OK option to eliminate an unnecessary RowSet during DELETE with a WHERE clause containing ORs. (CVS 6546) (check-in: [98606bee9e] user: drh branch: trunk, size: 23744)
2009-04-22
17:15
[9617202877] part of check-in [ecbef45011] Eliminate the OP_VRowid opcode. The regular OP_Rowid now work for both regular and virtual tables. (CVS 6537) (check-in: [ecbef45011] user: drh branch: trunk, size: 23777)
2009-02-28
10:47
[8ededddcde] part of check-in [3befe1ef7e] Instead of linking temporary triggers on non-temporary tables into the Table.pTrigger list, search the temp schema for them on demand. Fix for #3688. (CVS 6329) (check-in: [3befe1ef7e] user: danielk1977 branch: trunk, size: 23811)
2009-02-24
10:14
[87158a2308] part of check-in [0e7c369c23] Reverse commit (6315) for now. (CVS 6317) (check-in: [0e7c369c23] user: danielk1977 branch: trunk, size: 23798)
2009-02-23
17:33
[9c11bc0bba] part of check-in [294ba6f743] Scan an index instead of a table for "SELECT count(*) FROM <tbl>" queries. Because an index is usually smaller than a table on disk, this saves some IO. (CVS 6315) (check-in: [294ba6f743] user: danielk1977 branch: trunk, size: 23830)
2009-02-20
10:58
[fce4fa2945] part of check-in [e43ed64963] Instead of using SetNumColumns, specify the number of columns in a table or index using the P4 argument. (CVS 6310) (check-in: [e43ed64963] user: danielk1977 branch: trunk, size: 23798)
2009-02-19
14:39
[9edb83cc43] part of check-in [d9f6ffbc5e] Changes to reduce the heap space consumed by triggers, views and tables in the in-memory representation of the schema. Also to reduce the space used by prepared statements slightly. (CVS 6305) (check-in: [d9f6ffbc5e] user: danielk1977 branch: trunk, size: 23892)
2008-12-23
23:56
[8c4925f9ca] part of check-in [55d4f493e7] Continuing improvements to the multi-index OR-clause optimizer. Added a few simple test cases. (CVS 6062) (check-in: [55d4f493e7] user: drh branch: trunk, size: 23878)
2008-12-10
22:15
[080889d241] part of check-in [258722b617] Fix an issue with the new sqlite3Strlen30() introduced by check-in (6007). Additional casts for compiler warnings. (CVS 6011) (check-in: [258722b617] user: drh branch: trunk, size: 23875)
18:03
[3e022c24e2] part of check-in [14e6d19c31] More explicit type casting to silence VC++. (CVS 6006) (check-in: [14e6d19c31] user: drh branch: trunk, size: 23875)
2008-12-04
20:40
[7143ac31d2] part of check-in [39a0750b49] Replace the VDBE Fifo object with the new RowSet object. (CVS 5977) (check-in: [39a0750b49] user: drh branch: trunk, size: 23875)
2008-11-19
09:05
[37d03659f4] part of check-in [88134322c3] Changes to avoid "unused parameter" compiler warnings. (CVS 5921) (check-in: [88134322c3] user: danielk1977 branch: trunk, size: 23761)
2008-10-31
10:53
[f22a6f4507] part of check-in [bfce91429b] Change the way sqlite3VdbeSetColName() is called so as to remove a few lines of code. This also fixes #3470. (CVS 5853) (check-in: [bfce91429b] user: danielk1977 branch: trunk, size: 23780)
2008-10-09
18:48
[ed233298db] part of check-in [c2cf9d60d6] Fix an assert() failure that can occur if the user attempts to set an into an integer primary key column to a text value in a table that has a BEFORE UPDATE trigger. (CVS 5787) (check-in: [c2cf9d60d6] user: danielk1977 branch: trunk, size: 23776)
2008-09-01
21:59
[206fffc877] part of check-in [9cf484fc17] Omit prototype for and calls to sqlite3MaterializeView() if !defined(SQLITE_OMIT_VIEW) && !defined(SQLITE_OMIT_TRIGGER). (CVS 5655) (check-in: [9cf484fc17] user: shane branch: trunk, size: 23718)
2008-08-22
12:30
[f2cf6f00d5] part of check-in [7360e5d1f3] Allow the WHERE clause in an UPDATE or DELETE against a view with an INSTEAD OF trigger to refer to the view by name. Ticket #3298. (CVS 5589) (check-in: [7360e5d1f3] user: drh branch: trunk, size: 23645)
2008-08-20
16:35
[9e3786e768] part of check-in [daf730d1de] Refactor the name resolution procedures in the code generator. (CVS 5569) (check-in: [daf730d1de] user: drh branch: trunk, size: 23654)
2008-07-28
19:34
[79b77a3cc8] part of check-in [e48f9697e9] Implement the "lookaside" memory allocation cache. Use of this cache makes the speed1.test script run about 15% faster. Added new interfaces to control the cache. (CVS 5488) (check-in: [e48f9697e9] user: drh branch: trunk, size: 23663)
2008-07-09
16:51
[4e698fcc0c] part of check-in [2d8f7bebf0] Test coverage improvements on printf. (CVS 5385) (check-in: [2d8f7bebf0] user: drh branch: trunk, size: 23637)
2008-07-08
23:40
[945242ccc4] part of check-in [cbd3c1585b] Remove obsolete code from select.c, including the "affinity" parameter to the sqlite3Select() module. (CVS 5380) (check-in: [cbd3c1585b] user: drh branch: trunk, size: 23631)
2008-04-28
18:46
[2d7143b901] part of check-in [133b7ee50e] Make sure that transactions are started on all virtual tables that changes in a single statement, not just the first. Ticket #3083. Need to add test cases. (CVS 5063) (check-in: [133b7ee50e] user: drh branch: trunk, size: 23634)
2008-04-15
14:36
[57282dae1f] part of check-in [f5fc42e96d] Do not attempt to omit unused columns of a view in an instead-of trigger since sometimes those columns can be used in ways that we do not expect. Ticket #3055. (CVS 5012) (check-in: [f5fc42e96d] user: drh branch: trunk, size: 23624)
2008-04-10
13:33
[d6f214aad7] part of check-in [fba97f7874] First cut at optimizing single-row updates to use a one-pass algorithm. (CVS 4973) (check-in: [fba97f7874] user: drh branch: trunk, size: 23678)
2008-04-01
05:07
[6d5f7728ec] part of check-in [91cc646e2b] Fix the CSE mechanism so that it takes into account column affinity changes that might be imposed by comparison operators. (CVS 4949) (check-in: [91cc646e2b] user: drh branch: trunk, size: 23271)
2008-03-31
23:48
[e23e83cf48] part of check-in [c29ee0fed2] Avoid duplicate OP_Column opcodes by remembering prior results. This is similar to CSE, but only applies to columns. (CVS 4943) (check-in: [c29ee0fed2] user: drh branch: trunk, size: 23284)
2008-03-25
09:47
[2aefd3c927] part of check-in [0471536481] Use a vdbe memory cell to allocate the space required for vdbe cursors. (CVS 4912) (check-in: [0471536481] user: danielk1977 branch: trunk, size: 23212)
2008-03-19
20:42
[d2c59643af] part of check-in [a42caa8f83] Undefine the "isView" macro when compiling with SQLITE_OMIT_VIEW so that the macro does not interfer with subsequent modules in the amalgamation. (CVS 4888) (check-in: [a42caa8f83] user: drh branch: trunk, size: 23214)
2008-02-12
16:52
[9b3be169cd] part of check-in [5ab71c3a79] When materializing a view for an UPDATE or DELETE make use of the WHERE clause to limit the number of rows materialized. Ticket #2938. (CVS 4782) (check-in: [5ab71c3a79] user: drh branch: trunk, size: 23045)
2008-01-19
03:35
[31edd9c976] part of check-in [d9ebe9d78c] Cleanup and simplification of constraint processing. Simplifications to the VM for better test coverage. (CVS 4729) (check-in: [d9ebe9d78c] user: drh branch: trunk, size: 23220)
2008-01-17
16:22
[2513c6120f] part of check-in [706b41b70b] Registerification of the VDBE is complete. The operand stack has been removed from the code. All instructions operate out of registers only. (CVS 4718) (check-in: [706b41b70b] user: drh branch: trunk, size: 23059)
02:36
[a4da9976e0] part of check-in [b3a141b2b0] Registerification of the WHERE clause logic. (CVS 4716) (check-in: [b3a141b2b0] user: drh branch: trunk, size: 23105)
2008-01-10
23:50
[aad823f97a] part of check-in [8cbd46517f] More work toward converting the VM into a register-based machine. (CVS 4704) (check-in: [8cbd46517f] user: drh branch: trunk, size: 23105)
2008-01-09
23:04
[18f2f3af05] part of check-in [e3cf1c1c11] All essential opcodes can now operate out of registers and completely avoid the stack. Many still optionally use the stack to support legacy code generation, but the stack is not required. The next step is to update all code generation to avoid using the stack. (CVS 4700) (check-in: [e3cf1c1c11] user: drh branch: trunk, size: 22634)
02:15
[93c7bca744] part of check-in [92deff07bb] Continued work toward converting to a register-based VM. (CVS 4698) (check-in: [92deff07bb] user: drh branch: trunk, size: 22637)
2008-01-08
18:57
[89ba318306] part of check-in [5fd1036788] Finish registerizing the core logic of INSERT and UPDATE. (CVS 4696) (check-in: [5fd1036788] user: drh branch: trunk, size: 22643)
02:57
[acd1c38dbb] part of check-in [b9bf509e39] Progress toward registerification of the constraint checking logic for INSERT and UPDATE. (CVS 4693) (check-in: [b9bf509e39] user: drh branch: trunk, size: 22018)
2008-01-06
00:25
[38e9e4c278] part of check-in [8201f71729] Registerify the SRT_Subroutine destination for SELECT results. (CVS 4690) (check-in: [8201f71729] user: drh branch: trunk, size: 22413)
2008-01-05
17:39
[f322317ee4] part of check-in [c449e04f18] First pass at optimizing max()/min() as described in #2853. Some refinements to come. (CVS 4687) (check-in: [c449e04f18] user: danielk1977 branch: trunk, size: 22404)
05:20
[ac6cdfebf8] part of check-in [3e8a07dd3c] Register-ify the OP_AddImm and all casting opcodes. Omit the OP_MemIncr opcode. (CVS 4683) (check-in: [3e8a07dd3c] user: drh branch: trunk, size: 22393)
04:06
[3dc744343c] part of check-in [cc149eb9ca] Get rid of OP_Dup, OP_MemStore, OP_MemLoad, and OP_MemMove. Replace with OP_Copy, OP_SCopy, and OP_Move. Add the infrastructure for operation properties in1, in2, in3, out2, and out3 but do not yet use any of these. (CVS 4682) (check-in: [cc149eb9ca] user: drh branch: trunk, size: 22394)
2008-01-04
22:01
[e57d0083b0] part of check-in [fe057a88d0] Implement the out2-prerelease opcode design pattern. (CVS 4681) (check-in: [fe057a88d0] user: drh branch: trunk, size: 22396)
19:10
[b54161c624] part of check-in [d9ac6beef5] Some modifications to insert.c to work without using the stack. (CVS 4678) (check-in: [d9ac6beef5] user: danielk1977 branch: trunk, size: 22403)
13:57
[eaacf59269] part of check-in [2c913908a4] Modify FifoRead and FifoWrite to work exclusively with memory cells. (CVS 4676) (check-in: [2c913908a4] user: danielk1977 branch: trunk, size: 22351)
2008-01-03
23:44
[a68e11e766] part of check-in [61bfb77c42] Change the sqlite3ExprCode() function so that callers can request that the result of the expression be left on the stack or in a register. (CVS 4673) (check-in: [61bfb77c42] user: drh branch: trunk, size: 22344)
18:03
[b4aa2e8b6b] part of check-in [0b849805c3] Registers (aka memory cells) in the VM are now numbered starting with 1 instead of 0. A register number of 0 means "no such register". (CVS 4669) (check-in: [0b849805c3] user: drh branch: trunk, size: 22338)
17:31
[b4b8790d63] part of check-in [955b15a020] Modify OP_VUpdate to read arguments from a range of memory cells instead of from the stack. (CVS 4668) (check-in: [955b15a020] user: danielk1977 branch: trunk, size: 22346)
09:51
[9b90a5d55c] part of check-in [46501f490a] Change the OP_Insert opcode to read the key and data to insert from memory cells, not the stack. (CVS 4666) (check-in: [46501f490a] user: danielk1977 branch: trunk, size: 22312)
08:08
[587df2777e] part of check-in [c30f820635] Combine the OP_Column and OP_DfltValue opcodes. (CVS 4664) (check-in: [c30f820635] user: danielk1977 branch: trunk, size: 22324)
07:54
[c671295297] part of check-in [35da261daf] Change OP_OpenRead and OP_OpenWrite so that the database number is read from the P3 operand, not the stack. (CVS 4663) (check-in: [35da261daf] user: danielk1977 branch: trunk, size: 22372)
00:01
[39ac597c81] part of check-in [027875e4d4] Refactoring the VM. The P3 parameter is changed to P4. A P5 parameter is added (though not currently used.) Add routines sqlite3VdbeAddOpX() where X is one of 0, 1, 2, 3, or 4. (CVS 4660) (check-in: [027875e4d4] user: drh branch: trunk, size: 22412)
2008-01-02
16:27
[608ecf1f50] part of check-in [86dcdfe6d7] Combine the eDest and iParm arguments to sqlite3Select() into a single type - "SelectDest". (CVS 4657) (check-in: [86dcdfe6d7] user: danielk1977 branch: trunk, size: 22359)
11:50
[24ab2157d3] part of check-in [f1966a8a47] Take advantage of the fact that b-tree cursors need not be closed while other cursors modify their tables to simplify trigger program generation code. (CVS 4654) (check-in: [f1966a8a47] user: danielk1977 branch: trunk, size: 22255)
00:34
[fee857007b] part of check-in [051ec01f27] Begin setting a foundation on which to convert the VM from a stack-based to a register-based machine. Everything is still mostly stack based with this check-in. This change merely begins adding infrastructure to support a register-based architecture. (CVS 4652) (check-in: [051ec01f27] user: drh branch: trunk, size: 22791)
2008-01-01
19:02
[59124a9d5d] part of check-in [e08a33ed72] Optimize trigger compilation to avoid populating the OLD.* and NEW.* pseudo-tables with data that will never be used. Some testing to come. (CVS 4651) (check-in: [e08a33ed72] user: danielk1977 branch: trunk, size: 22783)
2007-12-12
16:06
[57c07b6341] part of check-in [ee98ae1718] Fix some problems similar to #2832, but caused by triggers instead of an OR REPLACE clause. (CVS 4615) (check-in: [ee98ae1718] user: danielk1977 branch: trunk, size: 21420)
12:25
[e773be79b6] part of check-in [18e10f8167] Fix database corrupting code generation error for UPDATE OR REPLACE. ticket #2832. Still need to add test cases and additional defensive logic to avoid future occurrences of similar problems. (CVS 4613) (check-in: [18e10f8167] user: drh branch: trunk, size: 21406)
12:00
[3725377d62] part of check-in [3fd6a26753] Add a new OP_StackDepth opcode to help detect VDBE stack leaks early, before they cause damage. For diagnostics in ticket #2832. (CVS 4612) (check-in: [3fd6a26753] user: drh branch: trunk, size: 21397)
2007-11-11
18:36
[2add92a615] part of check-in [3391f4139c] Fix the code generation for UPDATE and DELETE so that BEFORE triggers that use RAISE(IGNORE) do not leave extra values on the stack. Ticket #2767 (CVS 4535) (check-in: [3391f4139c] user: drh branch: trunk, size: 21301)
2007-08-16
10:09
[e89b980b44] part of check-in [77b1671351] More work on refactoring of malloc() interfaces. There are still many errors. (CVS 4233) (check-in: [77b1671351] user: danielk1977 branch: trunk, size: 21108)
04:30
[b20d7730bf] part of check-in [deb7ecd65f] Half-way through a major refactoring of the memory allocation. I have not even attempted to compile so I am certain there are countless errors. (CVS 4231) (check-in: [deb7ecd65f] user: drh branch: trunk, size: 21082)
2007-06-25
16:29
[6b10becb62] part of check-in [044ca1c72a] Fix for #2445. A bug in the lookupName() logic that could cause a crash when a WHERE clause used an alias to refer to an expression in the result-set of the SELECT, and that expression was itself a reference to a table column. (CVS 4122) (check-in: [044ca1c72a] user: danielk1977 branch: trunk, size: 20896)
2007-03-29
05:51
[3359041db3] part of check-in [ad4a6b1a91] Change BtreeMoveto so that it can be biased to the right or to the center. Use a right bias when appending and a center bias when searching. This gives about a 15% reduction in calls to sqlite3VdbeRecordCompare. (CVS 3741) (check-in: [ad4a6b1a91] user: drh branch: trunk, size: 20860)
2007-02-21
17:04
[876b3142b8] part of check-in [f7ce74b22a] Modify the fix for #2244 to avoid using a vdbe label. (CVS 3653) (check-in: [f7ce74b22a] user: danielk1977 branch: trunk, size: 20865)
16:52
[9a05e12b25] part of check-in [43bf797842] Fix for an UPDATE on a virtual table when the WHERE clause matches zero rows. Ticket #2244. (CVS 3652) (check-in: [43bf797842] user: danielk1977 branch: trunk, size: 20980)
2007-02-07
01:06
[bdfcf3600f] part of check-in [2bd4b62a20] Change the coding of PRAGMA count_changes so that it uses memory cells of the VM rather than the stack, to avoid problems with leftovers on the stack interfering with other operations. Ticket #2217. (CVS 3632) (check-in: [2bd4b62a20] user: drh branch: trunk, size: 20823)
2006-06-27
13:20
[951f95ef04] part of check-in [5612b28705] Changes so that it will build with SQLITE_OMIT_VIRTUALTABLE=1. (CVS 3309) (check-in: [5612b28705] user: drh branch: trunk, size: 20662)
2006-06-24
11:51
[e3f5b7e9e1] part of check-in [255aa9121a] A few more test cases to improve coverage of virtual table module related code. (CVS 3292) (check-in: [255aa9121a] user: danielk1977 branch: trunk, size: 20599)
2006-06-19
03:05
[686b13db8b] part of check-in [144d0eb13a] Add tests to ensure an INSERT/UPDATE/DELETE immediately after virtual table construction does not fail. (CVS 3270) (check-in: [144d0eb13a] user: danielk1977 branch: trunk, size: 20649)
2006-06-17
09:39
[23a71ccef6] part of check-in [8a5b121f2f] Add tests (and fixes) for the virtual table transaction interface. (CVS 3265) (check-in: [8a5b121f2f] user: danielk1977 branch: trunk, size: 20675)
06:31
[81e8d54aa9] part of check-in [48d297c561] When updating a view, invoke the authorization callback for reading the view before setting the authorization-context to the view name. (CVS 3264) (check-in: [48d297c561] user: danielk1977 branch: trunk, size: 20644)
03:27
[37fb7bb2c2] part of check-in [81c5a5b48b] Fixes for UPDATE statements on virtual tables. (CVS 3263) (check-in: [81c5a5b48b] user: danielk1977 branch: trunk, size: 20644)
2006-06-16
21:13
[4fb474fab5] part of check-in [2119e7bf55] Rework the way UPDATE works for virtual tables. (CVS 3262) (check-in: [2119e7bf55] user: drh branch: trunk, size: 20620)
16:08
[d3b991905e] part of check-in [6125140228] Add code to invoke the virtual table transaction interface. Untested at this point. (CVS 3261) (check-in: [6125140228] user: danielk1977 branch: trunk, size: 17599)
2006-06-14
19:00
[5e638a6110] part of check-in [32c97b884b] Added code to INSERT, DELETE and UPDATE virtual tables. The new code is mostly untested. (CVS 3248) (check-in: [32c97b884b] user: drh branch: trunk, size: 17558)
2006-06-11
23:41
[0186f09414] part of check-in [898ec36b41] Progress toward CREATE VIRTUAL TABLE. Still not even close to working... (CVS 3211) (check-in: [898ec36b41] user: drh branch: trunk, size: 16498)
2006-02-24
02:53
[34add66fcd] part of check-in [4b22e4b847] Remove unused parameters on internal APIs. Suppress warnings from CodeWarrior. (CVS 3110) (check-in: [4b22e4b847] user: drh branch: trunk, size: 16500)
2006-02-10
02:27
[050a7e0dda] part of check-in [82f502cdc1] Add the column_origin_name() etc. APIs. (CVS 3069) (check-in: [82f502cdc1] user: danielk1977 branch: trunk, size: 16512)
2006-01-18
16:51
[14be4ba2f4] part of check-in [ac090f2ab3] Use a global variable protected by a mutex instead of thread-specific-data to record malloc() failures. (CVS 2972) (check-in: [ac090f2ab3] user: danielk1977 branch: trunk, size: 16498)
2006-01-11
21:41
[261d75c702] part of check-in [5d9c6aa964] Automatically deallocate thread-specific data when it is no longer being used. Ticket #1601. Also implemented the suggestion of ticket #1603. Memory management is now off by default at compile-time. The sqlite3_enable_memory_management() API has been removed. (CVS 2919) (check-in: [5d9c6aa964] user: drh branch: trunk, size: 16510)
2006-01-10
17:58
[cd8ad5bb1a] part of check-in [0f0213be4d] Store collation sequence names instead of pointers in sharable schema data structures. (CVS 2904) (check-in: [0f0213be4d] user: danielk1977 branch: trunk, size: 16501)
2006-01-09
16:12
[e09da54cb8] part of check-in [3e75d3d5ef] Fix some errors to do with attached databases and text encodings in shared-cache mode. (CVS 2895) (check-in: [3e75d3d5ef] user: danielk1977 branch: trunk, size: 16516)
06:29
[9a3761250c] part of check-in [82b81f69c7] Rename DbSchema to "Schema" and SqliteTsd to "ThreadData". (CVS 2893) (check-in: [82b81f69c7] user: danielk1977 branch: trunk, size: 16516)
2006-01-07
13:21
[29ba0385c8] part of check-in [23b587b05b] In shared-cache mode, lock all required tables before beginning to execute the body of the statement program. (CVS 2881) (check-in: [23b587b05b] user: danielk1977 branch: trunk, size: 16509)
2006-01-05
11:34
[c72e9cbbc0] part of check-in [deeda0dc06] Add the shared schema/pager modifications. Very few tests so far. (CVS 2859) (check-in: [deeda0dc06] user: danielk1977 branch: trunk, size: 16602)
2005-12-06
12:52
[ec8e540617] part of check-in [e1606658f1] Some elements of the new malloc() failure handling. Not all cases work properly yet. Also, library is not threadsafe if malloc() fails right now. (CVS 2800) (check-in: [e1606658f1] user: danielk1977 branch: trunk, size: 16489)
2005-11-14
22:29
[fec7665138] part of check-in [ce06c123d0] Create separate affinities for INTEGER and REAL. (CVS 2766) (check-in: [ce06c123d0] user: drh branch: trunk, size: 16476)
2005-09-20
17:42
[ac506fb740] part of check-in [2471957fee] Code cleanup and simplification. Three new Mem opcodes added. The sqlite3VdbeJumpHere function added. (CVS 2730) (check-in: [2471957fee] user: drh branch: trunk, size: 16471)
2005-09-08
01:58
[c2716c2115] part of check-in [7283f7c29d] Optimizations and refinements. Improvements to test coverage. (CVS 2667) (check-in: [7283f7c29d] user: drh branch: trunk, size: 16498)
2005-07-21
18:23
[a9d2c5f504] part of check-in [e2f822ac82] Split the OP_Integer opcode into OP_Integer and OP_Int64. This allows comments to be added to OP_Integer. Cleanup in the optimizer. Allow terms of the FROM clause to be reordered automatically. (CVS 2556) (check-in: [e2f822ac82] user: drh branch: trunk, size: 16499)
2005-07-08
13:08
[49a9c618c3] part of check-in [94c120bb78] Replace OP_List with OP_Fifo. This is the first step toward allowing recursive delete triggers and later foreign keys with cascading deletes. (CVS 2538) (check-in: [94c120bb78] user: drh branch: trunk, size: 16401)
2005-06-12
21:35
[e96c7b342c] part of check-in [36f2da1f8d] Update older opcode names to be more meaningful in light of the latest code design. (CVS 2506) (check-in: [36f2da1f8d] user: drh branch: trunk, size: 16538)
2005-04-22
02:38
[04ea9dd784] part of check-in [88b39436f0] Remove some vestigal code. Add the experimental sqlite3_transfer_bindings() API. (CVS 2446) (check-in: [88b39436f0] user: drh branch: trunk, size: 16550)
2005-04-08
16:08
[ddfd8afaec] part of check-in [99fcd5561b] Fixed stack growth in update trigger on views (tkt #1169) (CVS 2443) (check-in: [99fcd5561b] user: kwel branch: trunk, size: 16554)
2005-03-09
12:26
[42823d0086] part of check-in [9d5abc1ddf] Support for a future ALTER TABLE command to add columns with default values. (CVS 2367) (check-in: [9d5abc1ddf] user: danielk1977 branch: trunk, size: 16551)
2005-01-29
08:32
[b6f4668c11] part of check-in [b1b50f3158] Modify sub-query handling. Tickets #1083 and #1084. (CVS 2286) (check-in: [b1b50f3158] user: danielk1977 branch: trunk, size: 14803)
2005-01-19
23:24
[6e5c6eb660] part of check-in [d8b2a7e091] Continued refactoring of the name resolution logic and query optimizer. (CVS 2236) (check-in: [d8b2a7e091] user: drh branch: trunk, size: 14663)
2005-01-18
04:00
[48da25249d] part of check-in [0142ae6f00] Refinements to the name resolution logic. Change the name of the keywordhash.c file to keywordhash.h. (CVS 2229) (check-in: [0142ae6f00] user: drh branch: trunk, size: 14654)
2005-01-17
22:08
[79a1511104] part of check-in [4a7534396a] Infrastructure changes to handle name resolution differently. This is needed to fix various long-standing problems with column names in joins. It will also make the implementation of correlated subqueries easier. (CVS 2228) (check-in: [4a7534396a] user: drh branch: trunk, size: 14660)
2004-12-25
01:03
[0979397c41] part of check-in [5fd1f47118] Fix ticket #1046 by removing code and simplifying the query optimizer. Remarkably, this simplification also makes the optimizer do a better job. Ticket #1051 was fixed as a side-effect. (CVS 2172) (check-in: [5fd1f47118] user: drh branch: trunk, size: 14663)
2004-12-07
15:41
[aa92fa2203] part of check-in [4852186aca] Only evaluate expressions once for UPDATE and INSERT statements that have BEFORE triggers. Fix for ticket #980. (CVS 2158) (check-in: [4852186aca] user: drh branch: trunk, size: 14623)
14:06
[67a95e5c24] part of check-in [8e164ab277] Simplify the trigger logic for DELETE, INSERT, and UPDATE. (CVS 2157) (check-in: [8e164ab277] user: drh branch: trunk, size: 14655)
2004-11-23
01:47
[d79d1936c5] part of check-in [8b61d1ae1c] More work on the implementation of cursors, but they are still not functioning. (CVS 2142) (check-in: [8b61d1ae1c] user: drh branch: trunk, size: 15117)
2004-11-22
10:02
[24a605a425] part of check-in [91acd87e52] Back out changes allowing writes to tables that have open cursors. (CVS 2133) (check-in: [91acd87e52] user: danielk1977 branch: trunk, size: 15122)
2004-11-16
15:50
[395a2b270d] part of check-in [a2e1c35b32] Perform deletes in a single pass. (CVS 2104) (check-in: [a2e1c35b32] user: danielk1977 branch: trunk, size: 15126)
2004-11-05
17:17
[3cc67f6053] part of check-in [b0506bdd70] Create table now works with sqlite3NestedParse. This changed uncovered a latent bug in xprintf which is also fixed. (CVS 2069) (check-in: [b0506bdd70] user: drh branch: trunk, size: 15114)
06:02
[50ac56ab81] part of check-in [296a298c48] When using sqlite3NestedParse() to modify the sqlite_master table, do not code OP_Callback. (CVS 2063) (check-in: [296a298c48] user: danielk1977 branch: trunk, size: 15098)
2004-11-04
04:42
[7b17b281d6] part of check-in [c33b3a6137] All tests pass even if OMIT_TRIGGER is defined. (CVS 2053) (check-in: [c33b3a6137] user: drh branch: trunk, size: 14943)
2004-10-31
02:22
[ee15b7ba71] part of check-in [be661acfa8] Insert #ifdefs that can optionally remove features at compiletime resulting in a database engine with a smaller footprint. (CVS 2034) (check-in: [be661acfa8] user: drh branch: trunk, size: 14902)
2004-10-05
02:41
[174c3b593b] part of check-in [81ff8107ad] Add support for DEFERRED, IMMEDIATE, and EXCLUSIVE transactions. (CVS 2000) (check-in: [81ff8107ad] user: drh branch: trunk, size: 14577)
2004-09-19
02:15
[7157084216] part of check-in [4871c77f8f] Add comments to unused P3 fields of selected instructions when NDEBUG is not defined. This makes VDBE program dumps more readable during debugging. (CVS 1973) (check-in: [4871c77f8f] user: drh branch: trunk, size: 14614)
2004-09-06
17:24
[0e00300763] part of check-in [3ddf5a9d1c] Fix a naming conflict between sqlite versions 2 and 3. An open sqlite3 connection now *must* be called "sqlite3". You cannot call it "sqlite". This might break existing code. (CVS 1941) (check-in: [3ddf5a9d1c] user: drh branch: trunk, size: 14739)
2004-08-31
13:45
[bbe126c675] part of check-in [8fd65e7048] Simplifications and optimizations. Also: disable the corrupt.test for now. (CVS 1924) (check-in: [8fd65e7048] user: drh branch: trunk, size: 14739)
2004-08-21
17:54
[151f1869ce] part of check-in [bd6649c5aa] Optimizations to the code generator. (CVS 1899) (check-in: [bd6649c5aa] user: drh branch: trunk, size: 14691)
2004-06-21
06:50
[b66b1896c9] part of check-in [ae2f4a0943] Update sqlite3_changes() to match the documentation and add sqlite3_total_changes(). (CVS 1645) (check-in: [ae2f4a0943] user: danielk1977 branch: trunk, size: 14922)
2004-06-16
12:02
[f9a0323357] part of check-in [7974c9a6f5] Trivial modifications to prevent compiler warnings. (CVS 1607) (check-in: [7974c9a6f5] user: danielk1977 branch: trunk, size: 14935)
2004-06-13
00:54
[6133c876aa] part of check-in [c5ebc1c05e] More speed improvements. (CVS 1580) (check-in: [c5ebc1c05e] user: drh branch: trunk, size: 14927)
2004-06-10
10:50
[168b6d5230] part of check-in [edf069b9f4] Add the sqlite3_collation_needed() API and fix some error handling cases involving unknown collation sequences. (CVS 1562) (check-in: [edf069b9f4] user: danielk1977 branch: trunk, size: 14929)
2004-05-29
11:24
[259f06e7b2] part of check-in [3225de8902] Transform OP_HexBlob and OP_String8 to OP_Blob and OP_String the first time they are executed. (CVS 1492) (check-in: [3225de8902] user: danielk1977 branch: trunk, size: 14857)
2004-05-26
10:11
[96461bcf4e] part of check-in [d5659f2ee6] Add some tests for the new API. Many more to come. (CVS 1462) (check-in: [d5659f2ee6] user: danielk1977 branch: trunk, size: 14855)
2004-05-25
23:35
[2b5ec85fa1] part of check-in [9385ad5ca8] Move the sqlite3_exec() function to legacy.c. (CVS 1455) (check-in: [9385ad5ca8] user: danielk1977 branch: trunk, size: 14866)
2004-05-20
22:16
[1a5e918259] part of check-in [a6cb09d7af] Add internal support for collating sequences. This breaks 244 tests. (CVS 1420) (check-in: [a6cb09d7af] user: drh branch: trunk, size: 14825)
2004-05-19
14:56
[1f6687f8d1] part of check-in [8f249c45cb] Change opcode names and comments to better describe the operation of the incrKey flag. OP_MoveTo becomes OP_MoveGe. (CVS 1407) (check-in: [8f249c45cb] user: drh branch: trunk, size: 14769)
2004-05-18
09:58
[0cc7291dd0] part of check-in [a62872aacd] Fix many problems with manifest types and column affinity. Most things are working now. (CVS 1392) (check-in: [a62872aacd] user: danielk1977 branch: trunk, size: 14780)
01:23
[d14a0b0f3b] part of check-in [202a470f2c] Omit the '\0' at the end of UTF-8 strings on disk (it is implied). Also don't store the number of rows at the beginning of each table record. (CVS 1390) (check-in: [202a470f2c] user: danielk1977 branch: trunk, size: 14651)
2004-05-16
11:15
[04492438ae] part of check-in [a4af838f8d] More changes to support the manifest type model. A few things are currently broken. (CVS 1385) (check-in: [a4af838f8d] user: danielk1977 branch: trunk, size: 14527)
2004-05-14
11:00
[0441f8b64d] part of check-in [dbfe6e9316] Implement type affinity for table and index records (CVS 1375) (check-in: [dbfe6e9316] user: danielk1977 branch: trunk, size: 14453)
2004-05-10
10:34
[6ca82fc4a0] part of check-in [2242423e31] Change the names of external symbols from sqlite_XXX to sqlite3_XXX. (CVS 1338) (check-in: [2242423e31] user: danielk1977 branch: trunk, size: 14418)
2004-05-08
08:23
[475465fc05] part of check-in [8af6474c49] Change lots of internal symbols from sqliteXXX to sqlite3XXX so that the library links again. It doesn't work yet, due to changes in the btree layer calling convention. (CVS 1324) (check-in: [8af6474c49] user: danielk1977 branch: trunk, size: 14417)
2004-04-29
16:16
[bd39107913] part of check-in [5a33e0b06f] Fix a stack overflow problem with INSTEAD OF triggers. (CVS 1310) (check-in: [5a33e0b06f] user: drh branch: version_2, size: 14764)
2004-02-22
20:05
[4c50328ebc] part of check-in [51f1e8f753] Use sqliteVdbeOp3 instead of sqliteVdbeChangeP3 where applicable. (CVS 1266) (check-in: [51f1e8f753] user: drh branch: trunk, size: 14324)
2004-02-20
22:53
[e6eed1a4a4] part of check-in [3383413a53] Fixed behaviour of last_insert_rowid() with triggers and add last_statement_change_count() function that works correctly with triggers. (CVS 1251) (check-in: [3383413a53] user: rdc branch: trunk, size: 14357)
2004-02-16
03:44
[10459f44c9] part of check-in [f72134852b] Remove the NullCallback opcode. Handle the empty_result_set pragma inside the sqlite_exec() function. (CVS 1244) (check-in: [f72134852b] user: drh branch: trunk, size: 14315)
2003-06-01
01:10
[24260b4fda] part of check-in [903adbe802] Add the ability to INSERT or UPDATE using the "rowid" column even on tables that lack an integer primary key. (CVS 991) (check-in: [903adbe802] user: drh branch: trunk, size: 14315)
2003-05-17
17:35
[8e657c7b3d] part of check-in [01398fb78b] Fix problems with TEMP indices that lead to corrupt databases. These problems were discovered while working on ticket #317. No sure yet if that ticket is fixed. (CVS 981) (check-in: [01398fb78b] user: drh branch: trunk, size: 14175)
2003-05-02
14:32
[dc3b680b4c] part of check-in [be7aed2011] VDBE cursors numbers for tables in a join do not have to be consecutive. This is one step on the road to fixing ticket #272. (CVS 947) (check-in: [be7aed2011] user: drh branch: trunk, size: 14201)
2003-04-25
17:52
[f40376ed2e] part of check-in [67746833fc] Report the correct authorization context in the authorization callback when coding an INSTEAD OF trigger on an update or delete. (CVS 936) (check-in: [67746833fc] user: drh branch: trunk, size: 14205)
2003-04-24
01:45
[b7fa7c427b] part of check-in [206b17397b] Fix some issues with INSTEAD OF triggers. (CVS 930) (check-in: [206b17397b] user: drh branch: trunk, size: 13881)
2003-04-22
20:30
[3301448786] part of check-in [c675a55041] Update the authorizer API so that it reports the database that table and indices belong to and so that it reports when actions are taken in response to a trigger. (CVS 928) (check-in: [c675a55041] user: drh branch: trunk, size: 13328)
2003-04-20
17:29
[803c13ad96] part of check-in [fb89adf4d1] Added tests for the in-memory database backend. Also updated some comments in other modules. (CVS 924) (check-in: [fb89adf4d1] user: drh branch: trunk, size: 13302)
2003-04-17
22:57
[7f1aa89128] part of check-in [1e5e00fb73] Fix triggers to work in an ATTACHed database. Ticket #295. (CVS 915) (check-in: [1e5e00fb73] user: drh branch: trunk, size: 13276)
2003-04-15
19:22
[a60470d07c] part of check-in [0b996959b8] Get triggers working on tables with INTEGER PRIMARY KEYs. Ticket #291. This may also fix #159. Still need to add tests so both bugs remain open for the time being. (CVS 908) (check-in: [0b996959b8] user: drh branch: trunk, size: 13681)
2003-03-31
02:12
[b368369f1f] part of check-in [1d3fc97721] Add the sqliteErrorMsg() function and use it to generate error message text during parsing and code generation. This simplifies the code somewhat and makes it easier to handle names with a database prefix. (CVS 891) (check-in: [1d3fc97721] user: drh branch: trunk, size: 13297)
2003-03-27
13:50
[ab8c48ce00] part of check-in [8a593e9c2d] Regression tests now work - except for some changes in error message text. The library is now safe to use for experimental work. (CVS 885) (check-in: [8a593e9c2d] user: drh branch: trunk, size: 13341)
12:51
[785e0e1c8d] part of check-in [d2fb2bb50c] Changes to the "sqlite" structure that allow simultaneous operations on multiple database files. Many regession tests pass - but not all of them. Do not use this version except for debugging SQLite itself. (CVS 883) (check-in: [d2fb2bb50c] user: drh branch: trunk, size: 13333)
2003-03-20
01:16
[5c644629cc] part of check-in [a5d8fc95ee] Record the database name in addition to the table name for DELETE, INSERT, and UPDATE statements. (CVS 879) (check-in: [a5d8fc95ee] user: drh branch: trunk, size: 13233)
2003-03-19
03:14
[c523bf6ef4] part of check-in [875da9eed9] Modifications to the VDBE to support more than one database file. (CVS 878) (check-in: [875da9eed9] user: drh branch: trunk, size: 13282)
2003-01-13
23:27
[f06afa9bf1] part of check-in [45de93f913] Revise the sqlite_set_authorizer API to provide more detailed information about the SQL statement being authorized. Only partially tested so far. (CVS 830) (check-in: [45de93f913] user: drh branch: trunk, size: 13246)
2003-01-12
18:02
[9f2e9105c6] part of check-in [52d5007f64] Initial check-in of the code for the new sqlite_set_authorizer() API function. The code is mostly untested at this point. (CVS 827) (check-in: [52d5007f64] user: drh branch: trunk, size: 13136)
2003-01-11
13:30
[ab3182eae6] part of check-in [86deb12d68] Remove the ColumnCount opcode, which had become a no-op. (CVS 821) (check-in: [86deb12d68] user: drh branch: trunk, size: 12844)
2002-09-14
13:47
[881e4c8e7c] part of check-in [3f253afe15] Do not put a write lock on the main database file when writing to a temporary table. (CVS 750) (check-in: [3f253afe15] user: drh branch: trunk, size: 12890)
2002-07-21
23:09
[f07e6ed2c5] part of check-in [c080ed01ea] UPDATE triggers on TEMP tables were broken. (CVS 693) (check-in: [c080ed01ea] user: danielk1977 branch: trunk, size: 12861)
2002-07-16
17:22
[ddba82d1b0] part of check-in [bbca16f88d] Fix for ticket #105: Fix the UPDATE command so that it works properly with indexed tables when there is a subquery in the WHERE clause. Add tests to verify correct operation. (CVS 680) (check-in: [bbca16f88d] user: drh branch: trunk, size: 12827)
2002-07-05
21:42
[494479cc4f] part of check-in [b4737a16c9] All the code is now in place for SQLite to distinguish between NUMERIC and TEXT datatypes. Still need to turn on the new code and test it. (CVS 659) (check-in: [b4737a16c9] user: drh branch: trunk, size: 12516)
2002-06-29
02:20
[06303bf389] part of check-in [91c0db66c8] Add a few more tests and fix a few bugs that the tests uncovered. (CVS 652) (check-in: [91c0db66c8] user: drh branch: trunk, size: 12512)
2002-06-19
14:27
[6f6a4dcd71] part of check-in [f09e19b43e] The query optimizer now attempts to satisfy an ORDER BY clause using an index. Sorting is still used if there are no suitable indices. (CVS 628) (check-in: [f09e19b43e] user: drh branch: trunk, size: 12638)
2002-06-11
02:25
[05431e23a9] part of check-in [d4a2fb1006] Add RAISE() function, which allows more advanced flow-control in trigger programs (ticket #55) (CVS 614) (check-in: [d4a2fb1006] user: danielk1977 branch: trunk, size: 12643)
2002-05-24
02:04
[f68375173b] part of check-in [a167b71d8c] Split the IdList structure into IdList and SrcList. SrcList is used to represent a FROM clause and IdList is used for everything else. This change allows SrcList to grow to support outer joins without burdening the other uses of IdList. (CVS 584) (check-in: [a167b71d8c] user: drh branch: trunk, size: 12623)
2002-05-23
22:07
[1f8f7fde79] part of check-in [c53b0b9283] Change the names of the PushList and PopList opcodes to ListPush and ListPop so that they will appear together with the other List opcodes in the documentation. (CVS 583) (check-in: [c53b0b9283] user: drh branch: trunk, size: 12607)
12:50
[82ada80cdf] part of check-in [4d27ee4119] Partial fix for ticket #49. The correct result is computed, but now we have a memory leak. I'm not sure if the memory leak was pre-existing or a result of this change. (CVS 581) (check-in: [4d27ee4119] user: drh branch: trunk, size: 12619)
2002-05-21
11:38
[46c4b3e86c] part of check-in [37dbdd551e] Additional code cleanup resulting from a review of the new trigger code. (CVS 572) (check-in: [37dbdd551e] user: drh branch: trunk, size: 12613)
2002-05-19
23:43
[6b1d80b505] part of check-in [8a4195c746] Style fixes to triggers code in various *.c files (partial fix to ticket #39) (CVS 571) (check-in: [8a4195c746] user: danielk1977 branch: trunk, size: 12623)
2002-05-15
11:44
[f9b53d46cc] part of check-in [690f9a1631] Remove all tabs from the beginning of source code lines. Replace tabs with the appropriate number of spaces. (CVS 565) (check-in: [690f9a1631] user: drh branch: trunk, size: 12543)
08:30
[2e8becd1cd] part of check-in [794bf67b6b] Added FOR EACH ROW triggers functionality (CVS 562) (check-in: [794bf67b6b] user: danielk1977 branch: trunk, size: 12439)
2002-03-03
18:59
[7dd714a6a7] part of check-in [6121e5ab93] VIEWs are bound to tables when they are used, not when they are first entered. This works around the problem of what to do if a table is deleted that a view refers to. (CVS 415) (check-in: [6121e5ab93] user: drh branch: trunk, size: 9146)
2002-03-02
17:04
[943b821901] part of check-in [d5d3e79cc5] Subquery flattening is implemented and passes all regression tests. We still need to add addition tests to the suite to further exercise the flattener, however. (CVS 408) (check-in: [d5d3e79cc5] user: drh branch: trunk, size: 9084)
2002-02-23
02:32
[18971d265b] part of check-in [39fed2df11] Code to implement CREATE VIEW is in place. A quick smoke test shows that it works, but there are probably still many bugs. (CVS 387) (check-in: [39fed2df11] user: drh branch: trunk, size: 9172)
2002-02-02
18:49
[95459f94a0] part of check-in [9be4d4c6f1] Get the ABORT conflict resolution algorithm working. (CVS 362) (check-in: [9be4d4c6f1] user: drh branch: trunk, size: 9656)
2002-01-31
15:54
[3fb7c1601b] part of check-in [d0e7cf4a83] Change to five conflict resolution algorithms: ROLLBACK, ABORT, FAIL, IGNORE, and REPLACE. This checkin is code only. Documentation and tests are still needed. Also, ABORT is not fully implemented. (CVS 360) (check-in: [d0e7cf4a83] user: drh branch: trunk, size: 9651)
2002-01-30
16:17
[c6215079d7] part of check-in [cf1538d71c] Added ON CONFLICT support to COPY. Updates to documentation. Bug fixes. (CVS 359) (check-in: [cf1538d71c] user: drh branch: trunk, size: 9851)
2002-01-29
23:07
[5ffd4bbd38] part of check-in [ac8a4189e2] The new ON CONFLICT logic is in and passes the legacy tests. But the new capabilities have not been tested and are likely broken. (CVS 356) (check-in: [ac8a4189e2] user: drh branch: trunk, size: 9847)
18:41
[2ece9c4339] part of check-in [e00a9ff8f9] Beginning to insert the infrastructure for ON CONFLICT clauses. (CVS 355) (check-in: [e00a9ff8f9] user: drh branch: trunk, size: 9672)
2002-01-28
15:53
[6f87a9aa0b] part of check-in [dbcfe198fb] Bug fix: The IN operator was not working if either side derived from an INTEGER PRIMARY KEY. (CVS 354) (check-in: [dbcfe198fb] user: drh branch: trunk, size: 9609)
2002-01-22
03:13
[f30a47928f] part of check-in [3684beab0f] The right-hand side of an AS in a SELECT can be used within expressions of the WHERE, ORDER BY, GROUP BY, and/or HAVING clauses. (CVS 350) (check-in: [3684beab0f] user: drh branch: trunk, size: 9603)
2002-01-14
02:56
[5cb326ed4b] part of check-in [96cd07a881] Fix a bug that could cause UPDATE to fail for a table that contains both an INTEGER PRIMARY KEY and an index. (CVS 346) (check-in: [96cd07a881] user: drh branch: trunk, size: 9597)
2001-12-31
02:48
[f9f48e78c1] part of check-in [18e606f748] Comment changes. Change the use of BTree so that either the key is an integer or the data is empty. (CVS 337) (check-in: [18e606f748] user: drh branch: trunk, size: 9597)
2001-12-22
14:49
[6a77d1459d] part of check-in [29cab124b4] Bug fixing in the new integer primary key code. (CVS 334) (check-in: [29cab124b4] user: drh branch: trunk, size: 9419)
2001-12-21
14:30
[9c266e5c9d] part of check-in [236a54d289] Added support for the INTEGER PRIMARY KEY column type. (CVS 333) (check-in: [236a54d289] user: drh branch: trunk, size: 9416)
2001-11-21
02:21
[365f6fafe7] part of check-in [03673adbfe] Attempting to add support for 64-bit platforms. (CVS 314) (check-in: [03673adbfe] user: drh branch: trunk, size: 8367)
2001-11-07
14:22
[b1e315e20b] part of check-in [e6ca23fa45] Incremental update. We are in the middle of modifying the index system to support range queries without doing a complete table scan. (CVS 303) (check-in: [e6ca23fa45] user: drh branch: trunk, size: 8375)
2001-11-01
14:41
[4eeb154a2d] part of check-in [e1370276c2] Remove cruft: restrict the number of sorters and lists in the VDBE to one since no more than one was ever used anyway. This eliminates several op-codes and simplifies the implementation of several others. (CVS 297) (check-in: [e1370276c2] user: drh branch: trunk, size: 8375)
2001-10-15
00:44
[c916182c6b] part of check-in [747bf1b30b] Added support for the COUNT_CHANGES pragma in order to help out the ODBC driver. Fixed a but on count(*) when applied to empty tables. (CVS 289) (check-in: [747bf1b30b] user: drh branch: trunk, size: 8416)
2001-10-13
01:06
[0b287faf0c] part of check-in [288ef1247b] Remove the P3 and label arguments from the internal sqliteVdbeAddOp() function. This makes the code easier to read and perhaps smaller as well. (CVS 286) (check-in: [288ef1247b] user: drh branch: trunk, size: 7844)
2001-10-08
13:22
[49a1edb1a3] part of check-in [9368c62e40] Support for temporary tables added. Still need more testing. (CVS 279) (check-in: [9368c62e40] user: drh branch: trunk, size: 7956)
2001-09-27
03:22
[0449af173b] part of check-in [34c42967f3] Added basic support for enforcement of UNIQUE on indices and primary keys. Support for addition constraints is to follow. (CVS 267) (check-in: [34c42967f3] user: drh branch: trunk, size: 7855)
2001-09-23
02:35
[8de2295701] part of check-in [337b3d3b2a] Fixes to the locking and rollback behavior. (CVS 261) (check-in: [337b3d3b2a] user: drh branch: trunk, size: 7842)
2001-09-16
00:13
[a1952ad5d5] part of check-in [4e926efe2b] Disclaimed copyright. Preparing for release 2.0. (CVS 250) (check-in: [4e926efe2b] user: drh branch: trunk, size: 7759)
2001-09-15
00:57
[8a9d514c7f] part of check-in [14474fa144] Everything is working on Linux. This is release 2.0-Alpha-1. (CVS 246) (check-in: [14474fa144] user: drh branch: trunk, size: 8314)
2001-09-13
13:46
[ea8f2c0712] part of check-in [6ecc8b20d4] The code is in place to replace GDBM with BTree. But I have not yet attempted to compile it. I am sure the code contains bugs. (CVS 238) (check-in: [6ecc8b20d4] user: drh branch: trunk, size: 8237)
2001-04-11
14:28
[0cf789656a] part of check-in [86b30cd097] better handling of out-of-memory errors (CVS 207) (check-in: [86b30cd097] user: drh branch: trunk, size: 8031)
2001-03-14
12:35
[8365b3922e] part of check-in [bda83e2b75] Fix a bug on systems where malloc(0) return NULL. Add code to detect this bug even on systems were it used not to occur. (CVS 190) (check-in: [bda83e2b75] user: drh branch: trunk, size: 7923)
2001-01-15
22:51
[9692fbac8e] part of check-in [c6ffb7ec6a] continued progress toward version 2.0 (CVS 177) (check-in: [c6ffb7ec6a] user: drh branch: trunk, size: 7898)
2000-06-21
13:59
[51b9ef7434] part of check-in [e1bf96a467] :-) (CVS 104) (check-in: [e1bf96a467] user: drh branch: trunk, size: 7892)
2000-06-19
19:09
[162fc0b86d] part of check-in [8cce4d279d] :-) (CVS 102) (check-in: [8cce4d279d] user: drh branch: trunk, size: 7872)
2000-06-17
13:12
[d75df0f725] part of check-in [6ed35a1d47] :-) (CVS 101) (check-in: [6ed35a1d47] user: drh branch: trunk, size: 7865)
2000-06-07
23:51
[d8d90df714] part of check-in [2ffeb8509c] :-) (CVS 74) (check-in: [2ffeb8509c] user: drh branch: trunk, size: 7916)
2000-06-06
13:54
[18746f920f] part of check-in [54d198189b] added IN and BETWEEN operators (CVS 57) (check-in: [54d198189b] user: drh branch: trunk, size: 7979)
2000-06-03
18:06
[3f05d5082f] part of check-in [27c0678623] added default values (CVS 46) (check-in: [27c0678623] user: drh branch: trunk, size: 7689)
2000-06-02
01:17
[1f7284e009] part of check-in [52338f4ab5] :-) (CVS 34) (check-in: [52338f4ab5] user: drh branch: trunk, size: 7684)
2000-05-31
15:34
Added: [9194f548da] part of check-in [dee7a8be88] added aggregate functions like count(*) (CVS 21) (check-in: [dee7a8be88] user: drh branch: trunk, size: 7631)