/ History for src/insert.c
Login

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

History for src/insert.c

2020-06-19
13:33
[c05a7c6f] part of check-in [9536fa0a] Further refactoring of the schema table name. (check-in: [9536fa0a] user: drh branch: trunk, size: 111327)
2020-05-23
17:56
[92b07a7f] part of check-in [9224f154] Improved bytecode comment. (check-in: [9224f154] user: drh branch: trunk, size: 111327)
2020-03-10
19:23
[465ee38d] part of check-in [2b750b0f] Prevent the read-only expressions held in the schema from being passed down into code generating subroutines where they might be changed. Pass a copy of the expression instead. (check-in: [2b750b0f] user: drh branch: branch-3.31, size: 111174)
18:55
[8e4211d0] part of check-in [f45f5de0] Further changes to ensure that expressions held in table and index definitions do not get passed down into code generator logic where they might be modified. (check-in: [f45f5de0] user: drh branch: trunk, size: 111337)
2020-03-07
16:51
[1a4962cb] part of check-in [d28d1739] Fix reporting cases related to UPDATE. And of WITHOUT ROWID tables. (check-in: [d28d1739] user: dan branch: begin-concurrent-report, size: 111288)
2020-02-06
20:46
[9b487eb4] part of check-in [a8a7c05b] There is no need to keep track of the number of changed rows or of the last-insert-rowid while running VACUUM. (check-in: [a8a7c05b] user: drh branch: trunk, size: 111193)
2020-02-03
19:56
[2223cf26] part of check-in [0ea2dbfc] Cosmetic change to the xfer-optimization to put the OP_RowData opcode closer to the corresponding OP_Insert opcode. This makes it slightly easier to read and understand the code. (check-in: [0ea2dbfc] user: drh branch: trunk, size: 111253)
2020-02-01
21:03
[cc023d71] part of check-in [1d4f8620] On an INSERT or UPDATE, perform affinity conversions on new data prior to running CHECK constraints. Ticket [86ba67afafded936]. (check-in: [1d4f8620] user: drh branch: trunk, size: 111253)
2020-01-28
15:02
[2d130e04] part of check-in [04885763] Minor change for compatibility with the s390 architecture. (check-in: [04885763] user: drh branch: trunk, size: 111135)
2020-01-17
19:14
[2fe4d7f6] part of check-in [7584e4b6] Fix #ifdefs so it compiles cleanly with all SQLITE_OMIT compile-time options. Update compile-time option testing. (check-in: [7584e4b6] user: drh branch: trunk, size: 111030)
2020-01-02
21:41
[5ba8fd37] part of check-in [bd57e6d9] Merge the latest enhancements from trunk. (check-in: [bd57e6d9] user: drh branch: two-size-lookaside, size: 110985)
17:46
[7bbb7dec] part of check-in [937be221] Have the OP_ReleaseReg opcode also invalidate the registers if P5 is non-zero. (check-in: [937be221] user: drh branch: trunk, size: 110984)
2020-01-01
01:26
[2cadbc8a] part of check-in [e3330861] Issue OP_ReleaseReg opcodes against the array of registers used to compute index records after the index record has been computed. (check-in: [e3330861] user: drh branch: trunk, size: 110978)
2019-12-31
14:49
[e43c6475] part of check-in [39d55579] Merge recent enhancements from trunk. (check-in: [39d55579] user: drh branch: two-size-lookaside, size: 110912)
2019-12-29
22:08
[97afb0bf] part of check-in [db4b7e1d] Do not allow triggers that run as part of REPLACE conflict resolution during an UPDATE to modify the the table being updated. Otherwise, those triggers might delete content out from under the update operation, leading to all kinds of problems. Ticket [314cc133e5ada126] (check-in: [db4b7e1d] user: drh branch: trunk, size: 110911)
2019-12-28
01:52
[be02cb35] part of check-in [6afadd3b] When an INSERT is receiving content from a SELECT, run an OP_ReleaseReg opcode at the top of each iteration of the loop in order to prevent spurious OP_SCopy misuse complaints. Ticket [de4b04149b9fdeae] (check-in: [6afadd3b] user: drh branch: trunk, size: 110703)
00:36
[5d4959fd] part of check-in [4cc12c18] Recompute the values for all generated columns after NOT NULL ON CONFLICT REPLACE constraints fire. Tickets [37823501c68a09f9] and [5fbc159eeb092130]. (check-in: [4cc12c18] user: drh branch: trunk, size: 110254)
2019-12-15
02:49
[831408b1] part of check-in [1e3918ca] Ensure that all ON CONFLICT REPLACE indexes are sorted to the end of the list of indexes for a table, even for weird cases where the same UNIQUE constraint occurs twice with the ON CONFLICT REPLACE clause only on the second one. This avoids an out-of-order contraint processing problem that can arise due to the optimization of check-in [469a62ca33081854]. (check-in: [1e3918ca] user: drh branch: trunk, size: 108712)
2019-12-12
20:22
[276463aa] part of check-in [d3783357] Change the name of the Expr.a.zName field to zEName, so that it has a name that is distinct from other fields and variables and is hence easier to grep for. (check-in: [d3783357] user: drh branch: two-size-lookaside, size: 108543)
2019-12-10
02:48
[5de3fd62] part of check-in [d47d66e3] Set the affinity of regular columns prior to computing the values of generated columns. Ticket [d7c3f125c925c522] (check-in: [d47d66e3] user: drh branch: trunk, size: 108542)
2019-12-06
01:23
[730455b1] part of check-in [ebf897e8] Do not allow UPSERT of a view. (check-in: [ebf897e8] user: drh branch: trunk, size: 107643)
2019-11-21
20:10
[1379db6e] part of check-in [a0ab42f7] Fix an out-of-bounds array reference in the generated column logic. Problem discovered by valgrind. (check-in: [a0ab42f7] user: drh branch: trunk, size: 107530)
2019-11-07
14:51
[8701d80b] part of check-in [34f64f11] Fix the xferCompatibleIndex() function so that it recognizes that a PRIMARY KEY index for a WITHOUT ROWID table is different from a UNIQUE constraint index on the primary key. Ticket [302027baf1374498] (check-in: [34f64f11] user: drh branch: trunk, size: 107455)
2019-11-06
22:19
[6e40e8aa] part of check-in [9e07b489] Change the way generated columns are computed so that no column is computed inside branch code that might not be taken. Ticket [4fc08501f4e56692] (check-in: [9e07b489] user: drh branch: trunk, size: 107422)
14:49
[4da4e4f8] part of check-in [77b1c90a] Fix the handling of NOT NULL constraint violations for generated columns in a REPLACE statement. Ticket [2399f5986134f79c] (check-in: [77b1c90a] user: drh branch: trunk, size: 106903)
2019-10-29
03:30
[eb81303e] part of check-in [361ea81a] Add a missing translation from table column numbers to storage table numbers while processing constraints on an UPDATE statement. Ticket [9621dd78a024d07a] (check-in: [361ea81a] user: drh branch: trunk, size: 106820)
2019-10-26
23:51
[dfb4a734] part of check-in [5b4c0f2d] Remove code from the constraint checker that generates virtual column values with the incorrect time. Turns out the the regular code for all other columns works correctly and so the incorrect special-case code is not actually needed. Fix for ticket [3ea175512444b0d1]. (check-in: [5b4c0f2d] user: drh branch: trunk, size: 106766)
18:56
[00f36e40] part of check-in [713fe86b] Remove redundant code resulting from a merge error on the previous check-in. (check-in: [713fe86b] user: drh branch: trunk, size: 107081)
18:47
[948bbd90] part of check-in [b855acf1] Add support for generated columns. (check-in: [b855acf1] user: drh branch: trunk, size: 107200)
17:08
[09e64dd9] part of check-in [e3c3f4d7] Performance optimization on sqlite3GenerateConstraintChecks() - bypass the loop that checks each column for NOT NULL constraints if it is known in advance that the table has no NOT NULL constraints. (check-in: [e3c3f4d7] user: drh branch: trunk, size: 99268)
16:38
[52b5fae3] part of check-in [8c0042bd] Clarify some comments and add assert() and testcase() macros to the replace-trigger recheck logic for ticket [c1e19e12046d23fe] (check-in: [8c0042bd] user: drh branch: trunk, size: 99068)
12:27
[0ac7d344] part of check-in [c422afb5] Overnight, OSSFuzz helpfully pointed out a potential use-after-free bug in yesterdays changes, involving continued use of a pointer after the memory pointed to had been realloc()-ed. Thanks Google. (check-in: [c422afb5] user: drh branch: trunk, size: 98966)
01:43
[be086d71] part of check-in [41cc8e3d] Add missing VdbeCoverage() macro. Fix an off-by-one error in partial index handling. New test cases. Ticket [c1e19e12046d23fe] (check-in: [41cc8e3d] user: drh branch: trunk, size: 98811)
00:04
[83ccd3f1] part of check-in [fbac0c65] If replace triggers are run during uniqueness checking, then rerun all uniqueness checks a second time using the ABORT algorithm. Fix for ticket [c1e19e12046d23fe] (check-in: [fbac0c65] user: drh branch: trunk, size: 98762)
2019-10-24
23:43
[4c934e7f] part of check-in [4ec57d88] Merge fixes from trunk. (check-in: [4ec57d88] user: drh branch: generated-columns, size: 102127)
19:35
[2b930afc] part of check-in [521f1d36] Correction to check-in [bec5b6d4d083556d] so that it detects *all* triggers that might perturb the insertion cursor. Ticket [50c09fc2cf0d91ce]. (check-in: [521f1d36] user: drh branch: trunk, size: 94274)
2019-10-23
15:47
[54425efd] part of check-in [30065716] Minor adjustments for clarity and test coverage. (check-in: [30065716] user: drh branch: generated-columns, size: 102202)
03:53
[aa90da65] part of check-in [812467fb] Fix incorrect arguments to testcase() macros. (check-in: [812467fb] user: drh branch: generated-columns, size: 101220)
2019-10-22
21:01
[7ab2c748] part of check-in [9e04ba22] Take the declared column time into account when computing the values for generated columns, and apply appropriate affinity. (check-in: [9e04ba22] user: drh branch: generated-columns, size: 101220)
13:01
[760925fe] part of check-in [412799fc] New testcase() macros. Fix a problem with INSERT when the IPK is to the right of generated columns. (check-in: [412799fc] user: drh branch: generated-columns, size: 101171)
12:02
[f657ee98] part of check-in [ba123b8c] Merge changes on trunk into the generated-columns branch. (check-in: [ba123b8c] user: drh branch: generated-columns, size: 100363)
2019-10-21
23:41
[69e47d76] part of check-in [cd2317d0] Add a VdbeCoverage() macro that was omitted from check-in [eea1e7aa57e74c43]. (check-in: [cd2317d0] user: drh branch: trunk, size: 94349)
01:04
[db411a28] part of check-in [bc368cb0] Changes to the INSERT logic to make it simpler and faster and so that it works with generated columns and BEFORE triggers. (check-in: [bc368cb0] user: drh branch: generated-columns, size: 100336)
2019-10-19
18:47
[fd8ba5c8] part of check-in [932a3727] Work toward getting generated columns to work with triggers. Still more work to do in this area. (check-in: [932a3727] user: drh branch: generated-columns, size: 98987)
15:01
[2f1b93da] part of check-in [fb9c9bb2] Add testcase macros. (check-in: [fb9c9bb2] user: drh branch: generated-columns, size: 98951)
13:29
[66662a52] part of check-in [27ab41c9] Refactor names of column index transformation functions, for clarity. Get generated columns working with ALTER TABLE RENAME COLUMN. (check-in: [27ab41c9] user: drh branch: generated-columns, size: 98821)
2019-10-18
17:47
[1e565be0] part of check-in [85bc4524] Merge trunk enhancements into the generated-columns branch. (check-in: [85bc4524] user: drh branch: generated-columns, size: 98795)
17:42
[6a9f9899] part of check-in [9f409649] Get generated columns working for WITHOUT ROWID tables. (check-in: [9f409649] user: drh branch: generated-columns, size: 98329)
10:05
[689b21b4] part of check-in [450c4876] Get indexes working on virtual columns. (check-in: [450c4876] user: drh branch: generated-columns, size: 97901)
02:19
[31156637] part of check-in [0d236698] STORED columns can now reference other STORED columns, in any order, as long as there are not loops. (check-in: [0d236698] user: drh branch: generated-columns, size: 97538)
2019-10-17
18:35
[96e3cd32] part of check-in [4ad66af0] In the Table object, change the nVCol field to nNVCol - the number of non-virtual columns, as that is the quantity that we need most. (check-in: [4ad66af0] user: drh branch: generated-columns, size: 96883)
18:07
[603a0767] part of check-in [61b4459a] Bug fix with INSERT using an explicit column list on a table with a non-final STORED column. (check-in: [61b4459a] user: drh branch: generated-columns, size: 96952)
17:54
[2402847e] part of check-in [fe7517bf] Some (but not all) INSERT and UPDATE statements now work for STORED columns. (check-in: [fe7517bf] user: drh branch: generated-columns, size: 96936)
16:16
[608b6d99] part of check-in [8f67b89b] Fix the xfer optimization for generated columns, so that VACUUM works again. (check-in: [8f67b89b] user: drh branch: generated-columns, size: 95631)
14:21
[3cf6462f] part of check-in [7bfe0f67] Bug fixes so that "make test" once against runs with no errors. (check-in: [7bfe0f67] user: drh branch: generated-columns, size: 95141)
2019-10-16
22:01
[9dabd02b] part of check-in [64db39f9] INSERT with named columns for a table with generated columns. (check-in: [64db39f9] user: drh branch: generated-columns, size: 94971)
20:05
[c54ef99a] part of check-in [120c6b78] ALTER TABLE is able to add a VIRTUAL column. (check-in: [120c6b78] user: drh branch: generated-columns, size: 94437)
19:31
[de9dea80] part of check-in [7f9f90b1] Simple INSERT and SELECT operations working with VIRTUAL columns. (check-in: [7f9f90b1] user: drh branch: generated-columns, size: 94338)
14:56
[d9cb78fa] part of check-in [eea1e7aa] If an AFTER DELETE trigger fires when a conflict row is deleted by REPLACE conflict resolution, make sure the conflict really has been resolved and that the trigger did not recreate the row before continuing. Ticket [a8a4847a2d96f5de] (check-in: [eea1e7aa] user: drh branch: trunk, size: 94322)
2019-08-30
23:56
[40557ebd] part of check-in [e0d909c7] When the affinity of a table column is INT or REAL, make the affinity of corresponding index columns NUMERIC. This increases the precision of index lookups for large numbers so that it matches the precision of ordinary comparison operators. Ticket [40812aea1fde9594] (check-in: [e0d909c7] user: drh branch: trunk, size: 93856)
2019-08-19
17:26
[81eec6ac] part of check-in [bb9767a2] Prevent NULLS FIRST/LAST from being used in CREATE INDEX and other statements. (check-in: [bb9767a2] user: dan branch: nulls-last, size: 93796)
2019-08-06
14:37
[c2194dd2] part of check-in [e8234f69] Use 0x40 (ASCII '@') instead of 0x00 to mean "no affinity" so that columns with no affinity can appear in a zero-terminated string. Use the new SQLITE_AFF_NONE macro for this new magic number. (check-in: [e8234f69] user: drh branch: pending, size: 93696)
2019-08-05
19:32
[ea7e0c3d] part of check-in [09cd0c0c] One of two options on how to address ticket [61c853857f40da49]. In this mode, we back out the documentation change of [07b7749da88d54e5] and change the core to work as it has been documented to work since 2017, rather than how it has actually worked since 2009. (check-in: [09cd0c0c] user: drh branch: tkt-61c853-A, size: 93640)
2019-06-12
22:46
[f20925c2] part of check-in [ebb81dad] Adjust requirements marks and add new requirements tests. (check-in: [ebb81dad] user: drh branch: trunk, size: 93672)
2019-05-07
19:13
[4ffc3aa5] part of check-in [3f1c8051] 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: [3f1c8051] user: drh branch: tkt-e63cbcfd, size: 93672)
2019-04-05
16:38
[fc3cf5c3] part of check-in [e859d318] Add the ability to override the new corruption detection logic of the previous checkin, in order to exercise downstream corruption detection during testing. (check-in: [e859d318] user: drh branch: trunk, size: 93325)
15:44
[512f3f9d] part of check-in [af1e5873] In the xfer-optimization, do early detection of when the source and destination index share the same btree, to avoid a long delay prior to reporting the database corruption. (check-in: [af1e5873] user: drh branch: trunk, size: 93101)
2019-04-04
14:00
[bf4f96aa] part of check-in [13a0ea64] Only preserve rowid values for VACUUM INTO. Keep the legacy behavior of renumbering rowids for ordinary VACUUM. (check-in: [13a0ea64] user: drh branch: trunk, size: 92950)
2019-03-20
20:27
[51a62196] part of check-in [9ef69d18] Experimental change to apply affinity before running CHECK constraints on an INSERT. Note that in the CHECK constraints, REAL affinity really is REAL affinity, and not numeric affinity. This causes failures in some tests that are assuming affinity is applied after CHECK constraints. (check-in: [9ef69d18] user: drh branch: apply-affinity-first, size: 93259)
2019-02-23
00:56
[7b71ba94] part of check-in [0e64ac12] Import from trunk the new fix to ticket [df46dfb631f75694] in which all ephemeral tables used as the RHS of an IN operator be index btrees and never table btrees so that they can always be reused. (check-in: [0e64ac12] user: drh branch: branch-3.27, size: 92850)
2019-02-22
23:29
[4ce12b5b] part of check-in [c2d50df8] Make all ephemeral tables built to hold the RHS of an IN operator be index-btrees, never table-btrees, regardless of whether or not they are used as IN_INDEX_LOOP or IN_INDEX_MEMBERSHIP. That way, the same ephmerial table can be reused for both cases. (check-in: [c2d50df8] user: drh branch: tkt-df46dfb631, size: 92946)
2019-02-19
13:08
[305f6ea8] part of check-in [55d43adc] Always use the symbolic name SQLITE_IDXTYPE_PRIMARYKEY rather than a hard-coded magic number 2. (check-in: [55d43adc] user: drh branch: trunk, size: 92816)
2019-02-07
15:09
[4cf06998] part of check-in [f264015f] Experimental change to VACUUM so that it preserves existing ROWID values. (check-in: [f264015f] user: drh branch: vacuum-preserves-rowid, size: 92755)
2019-01-17
20:19
[3ed9ceaa] part of check-in [f31b3bd2] Disable the xfer-optimization if the two tables have the same root page due to schema corruption. (check-in: [f31b3bd2] user: drh branch: trunk, size: 92720)
04:40
[b9c5f7a3] part of check-in [9a425051] Fix a corner-case for the logic that cause an insert of a NULL into an INTEGER PRIMARY KEY column to be converted into a valid integer key, when the NULL results from a CASE expression that lacks an ELSE clause. (check-in: [9a425051] user: drh branch: trunk, size: 92597)
2019-01-12
16:19
[ce295c50] part of check-in [e35eb877] Fix an off-by-one error on a Goto in the code generator, that only causes problems for a REPLACE on an INTEGER PRIMARY KEY in non-debug builds. Test case in TH3. (check-in: [e35eb877] user: drh branch: trunk, size: 92673)
2019-01-07
15:57
[ad8226b2] part of check-in [6281ef97] For SQLITE_ENABLE_PREUPDATE_HOOK builds, disable the optimization for a REPLACE command on a WITHOUT ROWID table with no indexes, triggers or foreign key constraints that causes SQLite to clobber any existing row without separately checking for it. This optimization causes SQLite to omit the expected pre-update-hook callbacks. (check-in: [6281ef97] user: dan branch: trunk, size: 92675)
2019-01-04
23:39
[1660fca0] part of check-in [fa98748f] Give a meaningful error on an attempt to use UPSERT on a virtual table, rather than simply not working. (check-in: [fa98748f] user: drh branch: trunk, size: 92420)
2018-12-29
02:26
[1e000175] part of check-in [4a0929ac] A new implementation of sqlite3VdbeMakeLabel() is faster and makes fewer memory allocations by deferring memory allocation until sqlite3VdbeResolveLabel() is called, at which point the code generator has a better idea of how big the relocation table needs to be. The sqlite3VdbeMakeLabel() routine now takes a Parse* parameter instead of Vdbe*. (check-in: [4a0929ac] user: drh branch: trunk, size: 92251)
2018-12-22
01:13
[2b5d4e52] part of check-in [db8d1d12] Do not all REPLACE to sneak a NULL value into a NOT NULL column. Detect that situation and ABORT instead. Fix for ticket [e6f1f2e34dceeb1ed61531c7e98]. (check-in: [db8d1d12] user: drh branch: trunk, size: 92226)
2018-12-01
21:13
[f12f27eb] part of check-in [27798f17] Very slightly smaller and faster. (check-in: [27798f17] user: drh branch: trunk, size: 91875)
2018-11-20
16:02
[037e39bd] part of check-in [dfab7170] Consolidate the two sqlite3SchemaToIndex() routines. (check-in: [dfab7170] user: dan branch: reuse-schema1, size: 91980)
2018-11-19
20:41
[1b72e96a] part of check-in [84be9220] Fix a problem with virtual tables in shared schemas. (check-in: [84be9220] user: dan branch: reuse-schema1, size: 91982)
2018-11-17
18:11
[bf271751] part of check-in [6d7a7e5f] Fix further problems with the feature on this branch. (check-in: [6d7a7e5f] user: dan branch: reuse-schema1, size: 91962)
2018-11-16
17:04
[7a0d37e6] part of check-in [9780829a] Fix further REUSE_SCHEMA issues. (check-in: [9780829a] user: dan branch: reuse-schema1, size: 91938)
2018-11-15
21:20
[e0dbee65] part of check-in [31b6aee7] Fix some problems with the feature on this branch. Many problems remain. (check-in: [31b6aee7] user: dan branch: reuse-schema1, size: 91861)
2018-10-31
20:52
[6b81aae2] part of check-in [4a6ad519] Deploy the sqlite3Strlen30NN() function (argument guaranteed to be non-NULL) for a small performance improvement. (check-in: [4a6ad519] user: drh branch: trunk, size: 91831)
2018-09-15
21:38
[0a214201] part of check-in [a71b1016] 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: [a71b1016] user: drh branch: trunk, size: 91805)
2018-08-14
15:12
[c723716f] part of check-in [529fb55e] Fix UPSERT so that it checks the target-constraint first and fires the DO UPDATE if that constraint is violated regardless of whether or not other constraints are in violation. This aligns SQLite behavior with what PostgreSQL does. Fix for ticket [908f001483982c43cdb476dfb590a1a]. (check-in: [529fb55e] user: drh branch: trunk, size: 91205)
2018-08-03
23:04
[89459495] part of check-in [3f5f60cd] Completely remove the column cache logic, which has been a persistent source of bugs for many years. Due to recent enhancements to the performance of the OP_Column opcode, removing the column cache actually makes speed-check.sh run faster. Removing the column cache also saves about 1,800 bytes of code space. (check-in: [3f5f60cd] user: drh branch: omit-column-cache, size: 92612)
2018-07-11
13:34
[8613af9c] part of check-in [d120c45f] On an UPSERT when the order of constraint checks is rearranged, make sure that the affinity transformations on the inserted content occur before any of the constraint checks. Fix for ticket [79cad5e4b2e219dd197242e9e5f4e]. (check-in: [d120c45f] user: drh branch: trunk, size: 92811)
2018-06-11
18:06
[bcacf6a0] part of check-in [0b485a57] Fix the column cache invalidation logic in the code for ROWID uniqueness constraint checking in the INSERT command. This fixes ticket [c2432ef9089ee73bd]. (check-in: [0b485a57] user: drh branch: trunk, size: 92811)
2018-05-28
18:29
[76b1dc90] part of check-in [469a62ca] Do not require a statement journal in cases where REPLACE conflict handling is used to insert a single row, so long as the REPLACE operation cannot fire any triggers or foreign key actions. (check-in: [469a62ca] user: dan branch: trunk, size: 92744)
17:31
[f4be9792] part of check-in [5a4542db] When compiling with SQLITE_DEBUG, add run-time checks to ensure that no statement aborts unless either there have been no writes or else there is a statement journal. (check-in: [5a4542db] user: drh branch: stmt-journal-testing, size: 92667)
2018-05-23
16:50
[25f2e3cb] part of check-in [e199e859] Verify that the sqlite_sequence table exists and is in approximately the correct format prior to using it to process an autoincrement table. Fix for ticket [d8dc2b3a58cd5dc2918a1d4a]. (check-in: [e199e859] user: drh branch: trunk, size: 92487)
2018-04-20
15:34
[33a2c72b] part of check-in [d8eb9f8d] Add test cases for UPSERT. And a fix for a "REPLACE INTO ... ON CONFLICT" statement where the new row conflicts with both the IPK and the ON CONFLICT indexes. (check-in: [d8eb9f8d] user: dan branch: trunk, size: 92017)
13:18
[465e9278] part of check-in [c37f39d1] Enhance UPSERT so that the UPDATE uses the same set of cursors as the INSERT. (check-in: [c37f39d1] user: drh branch: trunk, size: 92004)
2018-04-19
23:52
[87b1854f] part of check-in [c6f71115] 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: [c6f71115] user: drh branch: trunk, size: 91938)
20:18
[b87039f8] part of check-in [97dd21ab] Avoid unnecessary OP_Goto instructions on an upsert of a table that only has a single secondary index. (check-in: [97dd21ab] user: drh branch: upsert-opt, size: 92020)
13:52
[b382941c] part of check-in [b6d5ea59] Fix a problem in the new upsert implemention, discovered by OSSFuzz. (check-in: [b6d5ea59] user: drh branch: trunk, size: 91964)
2018-04-18
01:34
[5fa74146] part of check-in [266a99f7] Add new testcase() macros and fix a bug that was revealed when trying to cover all the new test cases. (check-in: [266a99f7] user: drh branch: upsert, size: 91964)
2018-04-17
20:06
[326dfb5d] part of check-in [1ddbb0ff] Fixes to the logic for constraint check reordering during upsert. Improved comments on constraint check bytecode. Add an assert that prevents the same label from being resolved more than once. (check-in: [1ddbb0ff] user: drh branch: upsert, size: 91118)
18:18
[771dc763] part of check-in [f36d07a5] Simplification to the upsert logic. (check-in: [f36d07a5] user: drh branch: upsert, size: 91084)
18:16
[6d9c6ab7] part of check-in [27cd3b2f] Add some more simple test cases for UPSERT. And a minor fix. (check-in: [27cd3b2f] user: dan branch: upsert, size: 91295)
2018-04-16
13:00
[33f002c7] part of check-in [0203f34f] Add support for the "excluded.*" names in the UPDATE clause of an upsert. (check-in: [0203f34f] user: drh branch: upsert, size: 91305)
2018-04-14
20:24
[be6ece16] part of check-in [07fb30c3] Make sure constraint checks occur in the correct order, even in the presence of upserts. (check-in: [07fb30c3] user: drh branch: upsert, size: 91273)
2018-04-13
21:55
[04908e34] part of check-in [a9080bc8] First cut at logic to perform DO UPDATE for rowid tables. (check-in: [a9080bc8] user: drh branch: upsert, size: 87607)
18:59
[a5955b78] part of check-in [6d3017f9] Add infrastructure for doing an UPDATE as part of an UPSERT. Still no actual UPDATE code, however. (check-in: [6d3017f9] user: drh branch: upsert, size: 87555)
16:29
[289011fe] part of check-in [7353caab] Merge the preupdate hook change from trunk. (check-in: [7353caab] user: drh branch: upsert, size: 87198)
16:23
[752740e4] part of check-in [0ab45188] Remove an always-true branch from the preupdate hook logic. (check-in: [0ab45188] user: drh branch: trunk, size: 86264)
15:14
[c98142d2] part of check-in [d07f05e9] Get the ON CONFLICT DO NOTHING form of upsert working by mapping it into INSERT OR IGNORE. (check-in: [d07f05e9] user: drh branch: upsert, size: 87218)
13:06
[86652dd3] part of check-in [2c1b1987] Back off of the extended upsert syntax that allows multiple ON CONFLICT clauses. The syntax now is exactly as in PostgreSQL and MySQL. Add support for WHERE clauses on the conflict-target phrase, for partial indexes. (check-in: [2c1b1987] user: drh branch: upsert, size: 86653)
01:15
[5139585f] part of check-in [80969643] Begin adding upsert logic. This is an incremental check-in. (check-in: [80969643] user: drh branch: upsert, size: 86621)
2018-04-12
13:15
[aca5346d] part of check-in [d83eaed5] Add the Upsert object for holding upsert clause information. (check-in: [d83eaed5] user: drh branch: upsert, size: 86390)
2018-04-07
15:04
[5e7a7dd6] part of check-in [5cc2a5a3] More complete parsing of UPSERT, including UPSERT within a trigger. The sqlite3Insert() logic to actually perform the UPSERT is not yet implemented, however. (check-in: [5cc2a5a3] user: drh branch: upsert, size: 86555)
2018-03-16
18:46
[b9ff71cc] part of check-in [3e3849a9] Avoid writing the sqlite_sequence table when it has not actually changed. (check-in: [3e3849a9] user: drh branch: autoinc-enhancement, size: 86284)
2018-01-02
18:11
[14686083] part of check-in [2846458a] In the constraint resolution logic, be careful not to cache column values in registers whose initialization might be bypassed by an OP_NoConflict opcode. Fix for ticket [dc3f932f5a147771] reported by OSSFuzz. (check-in: [2846458a] user: drh branch: trunk, size: 86005)
2017-11-14
23:48
[cb67cc56] part of check-in [3925facd] In the parse tree, combine LIMIT and OFFSET into a single expression rooted on a TK_LIMIT node, for a small code size reduction and performance increase, and a reduction in code complexity. (check-in: [3925facd] user: drh branch: trunk, size: 85938)
2017-10-31
03:40
[c7f33354] part of check-in [1c80c75d] Remove unnecessary NEVER() and ALWAYS() conditionals. (check-in: [1c80c75d] user: drh branch: trunk, size: 86002)
2017-10-03
17:17
[1f33ef4c] part of check-in [7be760e9] Remove an unused variable from sqlite3Insert() and fix harmless compiler warnings associated with -DSQLITE_MUTATION_TEST. (check-in: [7be760e9] user: drh branch: trunk, size: 85991)
2017-08-01
19:53
[d2d1bf12] part of check-in [3e02474c] Split the OP_Last opcode into OP_Last and OP_SeekEnd. Use OP_SeekEnd to position a cursor prior to appending. Ticket [cb91bf4290c211d]. (check-in: [3e02474c] user: drh branch: trunk, size: 86142)
2017-07-26
19:59
[b88a58ff] part of check-in [3808a00f] Add the new sqlite3.mDbFlags field. Factor out bits of sqlite3.flags that do not interact with PRAGMA statements into sqlite3.mDbFlags. (check-in: [3808a00f] user: drh branch: trunk, size: 86147)
2017-07-20
13:17
[487d2c1c] part of check-in [22eda098] Combine the Parse.ckBase and Parse.iSelfTab fields into just Parse.iSelfTab. This fixes a problem with date/time functions in check-constraints. Add some test cases for date/time functions in index expressions and check constraints. (check-in: [22eda098] user: drh branch: index-on-date-func, size: 86132)
2017-06-24
18:10
[bb70abf3] part of check-in [7b59c353] Consider the values bound to SQL variables when determining whether or not a partial index may be used. (check-in: [7b59c353] user: dan branch: partial-index-variables, size: 86087)
2017-06-03
20:09
[974499a3] part of check-in [65182ce0] Initialize a variable to zero to prevent an (incorrect) compiler warning of it potentially being uninitialized. (check-in: [65182ce0] user: drh branch: trunk, size: 86081)
2017-05-31
13:27
[ea52232b] part of check-in [7d58836b] Remove a completely unnecessary memset() from the INSERT code generator. (check-in: [7d58836b] user: drh branch: trunk, size: 86017)
2017-03-23
17:03
[d4bb3a13] part of check-in [9f2e04d3] Remove an invalid assert() statement failing when VACUUMing a database that contains an index on a column explicitly declared "COLLATE BINARY". (check-in: [9f2e04d3] user: dan branch: trunk, size: 86051)
2017-02-16
14:48
[3ed64afc] part of check-in [6affb1c8] Always use the IsVirtual() macro to determine if a Table object is a virtual table. Slightly smaller and faster code. (check-in: [6affb1c8] user: drh branch: trunk, size: 86161)
2017-02-14
20:00
[891f6789] part of check-in [54836270] Enable the SQLITE_ENABLE_NULL_TRIM option for WITHOUT ROWID tables. (check-in: [54836270] user: drh branch: trunk, size: 86185)
2017-01-30
19:44
[444354c2] part of check-in [856f8604] Experimental change to invoke the preupdate hook when WITHOUT ROWID tables are written. (check-in: [856f8604] user: dan branch: preupdate-without-rowid, size: 86002)
2017-01-25
20:55
[8183e177] part of check-in [4801bd59] Trim NULL values off the end of records when the SQLITE_ENABLE_NULL_TRIM compile-time option is used. Increase the size of the P5 operand to 16 bits. Fix a problem with short records in the sessions extension. (check-in: [4801bd59] user: drh branch: trunk, size: 85777)
14:58
[07ccec2c] part of check-in [118ded40] Experimental enhancement to automatically trim NULL values from the end of records, for a reduced disk footprint. This change also involves increasing the P5 operand from 8 to 16 bits. (check-in: [118ded40] user: drh branch: trim-nulls, size: 85739)
2017-01-10
20:04
[05e47e2d] part of check-in [46db23cc] Changes to allow some multi-row UPDATE statements to avoid the two-pass approach. (check-in: [46db23cc] user: dan branch: onepass-update, size: 85141)
2017-01-09
15:44
[7761fd63] part of check-in [6e106acd] Modify the OP_RowData opcode so that when P3!=0 it is allowed to hold an ephemeral copy of the content. This avoids unnecessary memcpy() operations in the xfer-optimization and VACUUM. (check-in: [6e106acd] user: drh branch: trunk, size: 84949)
2017-01-07
14:26
[3b7fbb14] part of check-in [db2c0960] Critical fix to the previous check-in so that it works when there are BEFORE triggers that move the cursor before the OP_Delete has a chance to be applied. (check-in: [db2c0960] user: drh branch: trunk, size: 84973)
03:26
[ad2a0b27] part of check-in [f0495c51] Avoid an unnecessary btree seek while deleting an index entry due to a conflict on a REPLACE operation. (check-in: [f0495c51] user: drh branch: trunk, size: 84943)
2017-01-05
06:57
[7af46a3b] part of check-in [c1220b1a] Fix some problems with foreign key processing within REPLACE ops on WITHOUT ROWID tables with no triggers or auxiliary indexes. (check-in: [c1220b1a] user: dan branch: replace-fix, size: 84937)
2017-01-04
22:02
[895995ac] part of check-in [c6506b82] Improved the comment on the block of code the provides the performance optimization originally added by check-in [925840cfdb]. The original check-in omitted condition 4, which was the cause of bug [30027b613b]. (check-in: [c6506b82] user: drh branch: replace-fix, size: 84728)
20:13
[1e0c2b61] part of check-in [71ccb1f4] Possible fix for [30027b61]. There may still be problems surrounding foreign key processing. (check-in: [71ccb1f4] user: dan branch: replace-fix, size: 84261)
2016-12-08
01:38
[91ba5d01] part of check-in [83bc5e40] More changes to take advantage of the sqlite3VdbeAppendP4() method. (check-in: [83bc5e40] user: drh branch: trunk, size: 84131)
2016-12-07
21:35
[4f92d50c] part of check-in [28883e8f] Add the sqlite3VdbeAppendP4() method for adding P4 content to the most recently coded instruction. (check-in: [28883e8f] user: drh branch: trunk, size: 84099)
2016-11-25
19:32
[2f8d2c1f] part of check-in [6ac7b07a] Remove the OP_RowKey opcode. Use OP_RowData in its place. (check-in: [6ac7b07a] user: drh branch: trunk, size: 84123)
2016-11-21
21:33
[b07f9299] part of check-in [abeddb6d] Remove unnecessary OP_Close opcodes at the end of INSERT operations, resulting in smaller and faster code. (check-in: [abeddb6d] user: drh branch: trunk, size: 84122)
2016-11-20
17:59
[24a42864] part of check-in [b3b7b42d] Fix harmless compiler warnings. (check-in: [b3b7b42d] user: drh branch: trunk, size: 84390)
2016-11-15
02:46
[0d6e59f9] part of check-in [5ed0bd38] Make the VACUUM command about 9% faster by avoiding unnecessary calls to sqlite3BtreeMovetoUnpacked() while copying rowid tables. (check-in: [5ed0bd38] user: drh branch: trunk, size: 84407)
2016-11-14
15:28
[d47f9b4f] part of check-in [e211c579] Avoid unnecessary calls to sqlite3ExprCacheAffinityChange() when generating OP_MakeRecord opcodes that do not change any register affinities. (check-in: [e211c579] user: drh branch: trunk, size: 84145)
2016-11-11
18:19
[0db6364a] part of check-in [1a587d72] Remove obselete and unused logic in the update code generator. Fix the sqlite3BtreeMovetoUnpacked() routine so that it remembers the rowid of the row that it landed on. (check-in: [1a587d72] user: drh branch: unpacked-IdxInsert, size: 84201)
2016-11-10
17:01
[40c64f0a] part of check-in [f7041cbb] When doing a REPLACE on a WITHOUT ROWID table with no secondary indexes, bypass the OP_NoConflict/OP_Delete sequence and directly overwrite any preexisting row, for a performance increase. (check-in: [f7041cbb] user: drh branch: unpacked-IdxInsert, size: 84395)
16:07
[63bec2cb] part of check-in [42f8aa62] Remove C++ style comments. No code changes. (check-in: [42f8aa62] user: drh branch: unpacked-IdxInsert, size: 84193)
14:24
[ba2f1015] part of check-in [67602e40] Add the unpacked key fields to OP_IdxInsert for INSERT and UPDATE statements. (check-in: [67602e40] user: drh branch: unpacked-IdxInsert, size: 84367)
2016-11-09
16:03
[515af5f5] part of check-in [51d0aed8] Fix a simple comment typo. No changes to code. (check-in: [51d0aed8] user: drh branch: unpacked-IdxInsert, size: 84174)
00:10
[dff61f28] part of check-in [89d958ab] Enhance the OP_IdxInsert opcode to optionally accept unpacked key material. (check-in: [89d958ab] user: drh branch: unpacked-IdxInsert, size: 84173)
2016-11-08
19:22
[8c134630] part of check-in [bec5b6d4] Avoid superfluous cursor seeks in "INSERT OR REPLACE" statements. (check-in: [bec5b6d4] user: dan branch: trunk, size: 84162)
2016-10-03
02:59
[2d5e197f] part of check-in [81e4d4f8] Make sure the sqlite_sequence table is updated when an optional xfer optimization is used. Fix for ticket [7b3328086a5c1]. (check-in: [81e4d4f8] user: drh branch: trunk, size: 83431)
2016-09-16
11:53
[427e96ff] part of check-in [a3e3b3e1] Fix SQLITE_OMIT_AUTHORIZATION so that it compiles cleanly. (check-in: [a3e3b3e1] user: drh branch: trunk, size: 83394)
2016-09-07
11:27
[bceb8351] part of check-in [e5c30f22] Fix a problem in internal function sqlite3OpenTableAndIndices causing an operand of an unrelated VM instruction to be overwritten. Fix for [ef360601]. (check-in: [e5c30f22] user: drh branch: branch-3.14, size: 83321)
2016-08-26
12:00
[3edb5a1b] part of check-in [70901479] Fix a problem in internal function sqlite3OpenTableAndIndices causing an operand of an unrelated VM instruction to be overwritten. Fix for [ef360601]. (check-in: [70901479] user: dan branch: trunk, size: 83549)
2016-08-19
14:20
[a255eb79] part of check-in [29d63059] Add the capability to VACUUM an attached database by specifying the schema name as an argument to the VACUUM command. Since version 2.0, VACUUM has accepted an argument which was silently ignored. Now it has meaning. (check-in: [29d63059] user: drh branch: vacuum-attached-db, size: 83546)
2016-08-18
14:33
[d5cd8315] part of check-in [92a22f01] 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: [92a22f01] user: drh branch: zDbSName, size: 83321)
2016-03-04
16:42
[8f4e9fcb] part of check-in [456df336] Merge recent enhancements from trunk. Default page size is 4096. Writes to statement journals are avoided. (check-in: [456df336] user: drh branch: sessions, size: 83318)
2016-02-27
21:16
[723d5d70] part of check-in [d8c94a46] Eliminate the need for the Column.zDflt (using Column.pDflt instead) to reduce the amount of memory needed to hold the schema. (check-in: [d8c94a46] user: drh branch: trunk, size: 82815)
17:16
[b42e0c7e] part of check-in [3a0c347c] Experimental "PRAGMA onconflict=FAIL" statement to change the default ON CONFLICT algorithm to something other than ABORT. (check-in: [3a0c347c] user: drh branch: pragma-onconflict, size: 82722)
2016-02-13
14:07
[d5391735] part of check-in [4d7a802e] Merge the changes for the 3.11.0 release candidate from trunk. (check-in: [4d7a802e] user: drh branch: sessions, size: 83112)
2016-02-10
19:10
[9ca97272] part of check-in [970881be] Add testcase() macros to the CHECK constraint avoidance logic. Avoid creating an unused VDBE label during CHECK constraint code generation. (check-in: [970881be] user: drh branch: trunk, size: 82609)
18:24
[6699f029] part of check-in [7782cb1d] Fix to previous check-in: Make sure CHECK constraints involving the ROWID are not ignored when the ROWID changes. (check-in: [7782cb1d] user: drh branch: trunk, size: 82373)
16:52
[5b715b72] part of check-in [02fbdbc7] Omit unnecessary CHECK constraints in UPDATE statements, when none of the columns referenced in the CHECK constraint are modified. (check-in: [02fbdbc7] user: drh branch: trunk, size: 81787)
16:03
[f2e7592b] part of check-in [6a3aaedf] Omit NOT NULL checks on unchanging columns in an UPDATE. (check-in: [6a3aaedf] user: drh branch: trunk, size: 80662)
2016-02-09
15:44
[76e3c2ff] part of check-in [f040a5bb] Merge enhancements and fixes from trunk. (check-in: [f040a5bb] user: drh branch: sessions, size: 80890)
02:12
[046199e0] part of check-in [ca72be86] Make sure every co-routines has its own set of temporary registers and does not share temporaries, since a co-routine might expect the content of a temporary register to be preserved across an OP_Yield. Proposed fix for ticket [d06a25c84454a]. (check-in: [ca72be86] user: drh branch: trunk, size: 80387)
2016-02-05
14:15
[0c96c4f1] part of check-in [a533608c] Merge enhancements from trunk. (check-in: [a533608c] user: drh branch: sessions, size: 80901)
13:38
[b8435936] part of check-in [0a802e96] Add the slightly faster sqlite3DbMallocRawNN(db,n) routine for the majority cases where db is guaranteed to be not NULL. (check-in: [0a802e96] user: drh branch: oom-handling, size: 80398)
01:55
[e3e2811c] part of check-in [c3ef0347] Improvements to the way that OOM errors are processed. (check-in: [c3ef0347] user: drh branch: oom-handling, size: 80394)
2016-02-04
02:34
[7a7a8249] part of check-in [1c8d3001] Add and use the sqlite3VdbeZeroRegister() interface for coding the common operation of writing zero into a register. (check-in: [1c8d3001] user: drh branch: zero-register, size: 80387)
2016-02-03
01:55
[3e246229] part of check-in [ae8b9d2e] Enhance the internal sqlite3VdbeAddOpList() interface to automatically update jump destinations. Use this feature to simplify the AUTOINCREMENT code generator. (check-in: [ae8b9d2e] user: drh branch: trunk, size: 80396)
2016-02-02
02:22
[ca97b03d] part of check-in [f3f92001] Merge all recent enhancements from trunk. (check-in: [f3f92001] user: drh branch: sessions, size: 80412)
2016-01-27
15:49
[410f52b9] part of check-in [dde1db0d] Add assert() statements on the nExtraDelete variable in vdbe.c to try to verify that the FORDELETE and IDXDELETE flags are being generated correctly. Those flags are not currently generated correctly, and so the assert()s trip on this check-in. (check-in: [dde1db0d] user: drh branch: fordelete-assert, size: 79909)
2016-01-20
11:33
[0be969e3] part of check-in [327af5f6] Merge recent enhancements from trunk. (check-in: [327af5f6] user: drh branch: sessions, size: 80377)
2016-01-16
15:12
[a00e6d8a] part of check-in [a4258cd4] Use sqlite3VdbeAddOp4() rather than a separate sqlite3VdbeChangeP4() call, for a slightly smaller and faster binary. (check-in: [a4258cd4] user: drh branch: trunk, size: 79874)
2016-01-01
13:25
[a2302c96] part of check-in [c0be246a] Merge the latest enhancements from trunk. (check-in: [c0be246a] user: drh branch: sessions, size: 80404)
2015-12-30
16:51
[6b45cc86] part of check-in [2081d757] Changes to the way that the default BINARY collating sequence is recorded result in a slightly smaller and slightly faster executable. More work could be done to make this cleaner. (check-in: [2081d757] user: drh branch: trunk, size: 79901)
15:18
[756ae328] part of check-in [f35ba018] Simplification to the xfer-optimization logic. (check-in: [f35ba018] user: drh branch: trunk, size: 79805)
2015-12-21
15:22
[4622e544] part of check-in [34073ce8] Ensure that the Expr objects that describe indexed expressions are not modified by code generation. Fix for an assert() problem found by Jon Metzman using AFL. (check-in: [34073ce8] user: drh branch: trunk, size: 80060)
2015-11-19
19:40
[8ab83219] part of check-in [7d6cfc79] Merge the latest enhancements from trunk. (check-in: [7d6cfc79] user: drh branch: sessions, size: 80559)
18:09
[e1d20ae8] part of check-in [13995756] Fix a problem with VACUUM and __hidden__ columns. (check-in: [13995756] user: dan branch: trunk, size: 80056)
16:46
[edb295a0] part of check-in [59bd0ec7] Fix problems with INSERT INTO ... SELECT ... statements that write to tables with __hidden__ columns. (check-in: [59bd0ec7] user: dan branch: trunk, size: 80011)
16:33
[7aa0846b] part of check-in [201ac6d4] Create the new TK_ASTERISK token to represent the "*" in "SELECT *". Formerly that operator was TK_ALL, which was also used for UNION ALL. Less confusion if they operator symbols are distinct. (check-in: [201ac6d4] user: drh branch: trunk, size: 79826)
13:53
[6677454f] part of check-in [5490646b] Only support the magic "__hidden__" column name prefix interpretation when compiled with SQLITE_ENABLE_HIDDEN_COLUMNS. (check-in: [5490646b] user: drh branch: hidden-columns-in-tables, size: 79821)
2015-11-18
21:22
[0cf9a847] part of check-in [20c1e9ce] Get the __hidden__ column mechanism working on views with INSTEAD OF triggers. (check-in: [20c1e9ce] user: drh branch: hidden-columns-in-tables, size: 79918)
18:43
[0b376795] part of check-in [2dbffb3a] If a table column name begins with "__hidden__" then do not include that column in "*" expansions in SELECT statements, nor fill in that column in an INSERT INTO that omits the column list. This branch is a proof-of-concept only and is not intended to ever be merged into trunk. (check-in: [2dbffb3a] user: drh branch: hidden-columns-in-tables, size: 79822)
2015-10-30
16:50
[0dbbde4b] part of check-in [395a153f] Merge all the latest enhancements from trunk. (check-in: [395a153f] user: drh branch: sessions, size: 80284)
2015-10-22
20:54
[419a947f] part of check-in [cdc92919] 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: [cdc92919] user: dan branch: btree-fordelete-flag, size: 79781)
2015-10-15
18:04
[6dadbb67] part of check-in [3a2f73a4] Add the OP_IntCopy opcode - an optimized version of OP_SCopy that only works for integer values. (check-in: [3a2f73a4] user: drh branch: trunk, size: 79645)
2015-10-10
20:35
[5f9bbe7f] part of check-in [ed174ccf] Pull in the latest 3.9.0 tweaks from trunk. (check-in: [ed174ccf] user: drh branch: sessions, size: 80124)
14:41
[3c522beb] part of check-in [9ddef84d] Compiler warning fixes: Rename some local variables from "j1" to avoid a name collision with the j1() bessel function in the math library. Omit a dummy initializer that gcc 4.6.3 does not like. (check-in: [9ddef84d] user: drh branch: trunk, size: 79621)
2015-09-30
14:50
[a1e265bb] part of check-in [b2face9a] Merge recent enhancements from trunk, and especially the fix for ticket [1b266395d6bc10]. (check-in: [b2face9a] user: drh branch: sessions, size: 80074)
2015-09-29
17:20
[a9b7f200] part of check-in [7d272aa6] Use symbolic names XN_ROWID and XN_EXPR in place of the (-1) and (-2) magic numbers in Index.aiColumn[]. Add asserts to help verify that Index.aiColumn[] is always used correctly. Fix one place in FK processing where Index.aiColumn[] was not being used correctly. (check-in: [7d272aa6] user: drh branch: trunk, size: 79571)
13:25
[81d6bf39] part of check-in [59662cd2] 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: [59662cd2] user: drh branch: vtab-onepass, size: 79483)
2015-09-28
23:45
[d0f8d6d6] part of check-in [70ec88b2] Avoid unnecessary cursors and seeking when running a DELETE against a WITHOUT ROWID table. (check-in: [70ec88b2] user: drh branch: delete-without-rowid-opt, size: 79597)
2015-09-15
15:55
[7708c631] part of check-in [b7469c44] Merge the latest trunk enhancements with this branch. (check-in: [b7469c44] user: dan branch: sessions, size: 79997)
13:42
[9748a37e] part of check-in [eade355f] Reformat some code to make it easier to merge with sessions. No logic changes. (check-in: [eade355f] user: drh branch: trunk, size: 79494)
2015-09-14
14:45
[ace93aa2] part of check-in [16e56bda] Use symbolic names ONEPASS_OFF, ONEPASS_SINGLE, and ONEPASS_MULTI for the various modes of the one-pass optimization. (check-in: [16e56bda] user: drh branch: trunk, size: 79469)
10:47
[19b8749c] part of check-in [22ce9218] Merge the latest trunk enhancements. (check-in: [22ce9218] user: drh branch: sessions, size: 79963)
2015-09-12
19:26
[db8a34cf] part of check-in [eaeb2b80] 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: [eaeb2b80] user: dan branch: onepass-delete, size: 79376)
2015-09-03
14:48
[b7e0cdf5] part of check-in [6a513c05] Merge recent trunk enhancements. (check-in: [6a513c05] user: drh branch: sessions, size: 79097)
14:18
[076dc587] part of check-in [1ab10cbf] Merge enhancements from trunk. (check-in: [1ab10cbf] user: drh branch: index-expr, size: 79385)
13:46
[bcff4a41] part of check-in [847387ec] Add the sqlite3VdbeLoadString() and sqlite3VdbeMultiLoad() routines to help with code generation, especially on PRAGMAs. Rename sqlite3VdbeAddGoto() to just sqlite3VdbeGoto(). (check-in: [847387ec] user: drh branch: trunk, size: 78519)
2015-09-02
18:19
[fe515193] part of check-in [be78f413] Add the sqlite3VdbeAddGoto(v,i) routine as a shorthand for sqlite3VdbeAddOp2(v,OP_Goto,0,i). (check-in: [be78f413] user: drh branch: trunk, size: 78557)
2015-09-01
18:52
[9301b3dd] part of check-in [cb772366] Merge recent enhancements from trunk. (check-in: [cb772366] user: drh branch: sessions, size: 79218)
2015-08-27
18:24
[ef4da9af] part of check-in [42f93f58] Activate the ability to use expressions in indexes in a query. There are some test failures, but mostly this seems to work. (check-in: [42f93f58] user: drh branch: index-expr, size: 79506)
2015-08-26
18:04
[b459da14] part of check-in [ec6ddb3d] Merge enhancements from trunk. (check-in: [ec6ddb3d] user: drh branch: index-expr, size: 79425)
2015-08-25
19:42
[c31b9253] part of check-in [b3732a4e] Move sqlite3IndexColumnAffinity() inside of SQLITE_ENABLE_STAT3_OR_STAT4. (check-in: [b3732a4e] user: drh branch: trunk, size: 78640)
19:24
[a836e16c] part of check-in [e8b02902] Merge trunk enhancements. (check-in: [e8b02902] user: drh branch: index-expr, size: 79688)
19:20
[0edf54c4] part of check-in [1ee089a7] Use the sqlite3IndexColumnAffinity() routine to quickly and correctly find the affinity of an index column. (check-in: [1ee089a7] user: drh branch: trunk, size: 78903)
16:57
[602809df] part of check-in [efaabdb7] Add code to maintain indexes with expression arguments across DELETE, INSERT, and UPDATE statements. Legacy tests pass, but the new code paths are still largely untested. The query planner currently makes no effort to use expression indexes. (check-in: [efaabdb7] user: drh branch: index-expr, size: 79457)
2015-08-24
20:54
[ad9ebaaf] part of check-in [bdaf6646] Remove some redundant code: Call sqlite3ResolveExprListNames() rather than calling sqlite3ResolveExprNames() in a loop - in two places. (check-in: [bdaf6646] user: drh branch: trunk, size: 78672)
2015-08-20
23:54
[43e48fa6] part of check-in [e9196d56] Merge recent trunk enhancements, include table-valued functions. (check-in: [e9196d56] user: drh branch: sessions, size: 79251)
2015-07-28
18:53
[84202686] part of check-in [eff43715] Fix the xfer optimization for WITHOUT ROWID tables so that it correctly updates the change count returned by sqlite3_changes(). (check-in: [eff43715] user: drh branch: trunk, size: 78673)
2015-06-11
18:01
[a81d4454] part of check-in [c39cb0e2] Merge recent trunk enhancements and fixes. (check-in: [c39cb0e2] user: drh branch: sessions, size: 79163)
13:58
[b5f8b35a] part of check-in [e63d01c6] When generating code for partial indexes, be sure not to modify the index condition expression in the schema. (check-in: [e63d01c6] user: drh branch: trunk, size: 78585)
2015-06-02
15:32
[d6e1623a] part of check-in [bce3f041] Rename SQLITE_AFF_NONE to SQLITE_AFF_BLOB. (check-in: [bce3f041] user: drh branch: blob-affinity-rename, size: 78579)
2015-05-22
23:26
[6d9cde1a] part of check-in [cdc0ca6f] 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: [cdc0ca6f] user: drh branch: sessions, size: 79157)
13:09
[35b78169] part of check-in [799817bf] Fix two faulty assert statements discovered by fuzzing. (check-in: [799817bf] user: drh branch: trunk, size: 78579)
2015-04-23
13:49
[533e0f08] part of check-in [4e5f17d1] Merge the latest trunk enhancements and fixes into the sessions branch. (check-in: [4e5f17d1] user: drh branch: sessions, size: 79156)
2015-04-20
01:32
[57381264] part of check-in [b8ef1cde] Merge all recent trunk enhancements and fixes into the sessions branch. (check-in: [b8ef1cde] user: drh branch: sessions, size: 79169)
2015-04-19
23:40
[8176ba5b] part of check-in [59d1a3bb] Merge updates from trunk. (check-in: [59d1a3bb] user: mistachkin branch: vsix2015, size: 78578)
22:41
[b152e714] part of check-in [e73ac0cb] Fix a broken assert() and comparison for INSERT INTO ... SELECT when the SELECT uses an unknown collating sequence. (check-in: [e73ac0cb] user: drh branch: trunk, size: 78591)
21:43
[f43325e7] part of check-in [d05becd8] Fix harmless compiler warnings seen with MSVC 2015. (check-in: [d05becd8] user: mistachkin branch: vsix2015, size: 78285)
18:32
[9f5f25a9] part of check-in [4ac81fac] Bring comments on the INSERT code generator up-to-date. Fix the INSERT code generator so that it correctly handles inserts from a SELECT into a virtual table with non-terminal hidden columns. (check-in: [4ac81fac] user: drh branch: trunk, size: 78612)
2015-04-15
14:14
[6663d688] part of check-in [e65e65f9] Merge all recent trunk fixes and enhancements into the sessions branch. (check-in: [e65e65f9] user: drh branch: sessions, size: 78876)
2015-04-13
14:03
[305dd3f9] part of check-in [65ace4b0] Remove an unreachable branch from the VACUUM logic. (check-in: [65ace4b0] user: drh branch: trunk, size: 78298)
2015-04-12
01:33
[7d953730] part of check-in [5f14f34f] Merge all recent trunk enhancements into the sessions branch. (check-in: [5f14f34f] user: drh branch: sessions, size: 78857)
2015-04-10
08:28
[5be66348] part of check-in [08c0b19b] Update this branch with the latest changes from sorter-opt. (check-in: [08c0b19b] user: dan branch: insert-select-opt, size: 81921)
2015-04-01
18:20
[1cc9dc4e] part of check-in [e403460b] When vacuuming an index that uses no collations other than BINARY, assume that the order of index entries will not be changed by the VACUUM. (check-in: [e403460b] user: dan branch: sorter-opt, size: 78279)
2015-03-23
14:39
[9f92c04e] part of check-in [6f7d9995] Set the OPFLAG_SEEKRESULT correctly in "INSERT INTO ... SELECT" statements. (check-in: [6f7d9995] user: dan branch: insert-select-opt, size: 80415)
2015-03-21
15:26
[9073db4b] part of check-in [93e28ea1] Do not use sorters for INSERT statements that insert multiple rows using the VALUES clause. (check-in: [93e28ea1] user: dan branch: insert-select-opt, size: 80343)
07:03
[004d1f12] part of check-in [d4215942] Disable the sorter optimization used by INSERT INTO SELECT statements if the statement explicitly specifies REPLACE, IGNORE or FAIL conflict handling. (check-in: [d4215942] user: dan branch: insert-select-opt, size: 80300)
2015-03-20
20:30
[9e5d41e7] part of check-in [0a7f2051] Where possible insert the set of new keys for each index in sorted order within "INSERT INTO ... SELECT" statements. (check-in: [0a7f2051] user: dan branch: insert-select-opt, size: 80177)
2015-01-29
02:26
[57b087ad] part of check-in [23054110] Experimental sqlite_db_config() setting to disable writing to all btrees except for one btree with a particular root page. (check-in: [23054110] user: drh branch: one-writable-btree, size: 76956)
2014-10-20
16:34
[fef86ab8] part of check-in [d380a648] Merge version-3.8.7 changes with this branch. (check-in: [d380a648] user: dan branch: ota-update, size: 77210)
2014-09-21
22:49
[4f6df86b] part of check-in [6406b77f] Merge all recent trunk changes into the sessions branch. (check-in: [6406b77f] user: drh branch: sessions, size: 77351)
2014-09-19
20:13
[5b9243a3] part of check-in [3f3ca76a] Fix the affinity on inserts into the ANALYZE tables. Change the affinity characters to be upper case, to make the P5 parameter of comparison operators easier to read. (check-in: [3f3ca76a] user: drh branch: trunk, size: 76773)
2014-09-17
15:20
[88755144] part of check-in [39df35c4] Add tests and fixes for "PRAGMA ota_mode". (check-in: [39df35c4] user: dan branch: ota-update, size: 77210)
2014-09-15
15:34
[25e63641] part of check-in [55b8011d] Merge latest trunk changes with this branch. (check-in: [55b8011d] user: dan branch: ota-update, size: 77210)
2014-09-08
15:04
[92e95520] part of check-in [c2885c6b] Merge support for large files on Android from trunk. (check-in: [c2885c6b] user: drh branch: sessions, size: 77351)
2014-09-06
16:39
[0b073fad] part of check-in [e62aab5e] Fix typos in comments. No code changes. (check-in: [e62aab5e] user: peter.d.reid branch: trunk, size: 76773)
2014-09-02
19:59
[62b0ceab] part of check-in [2954ab50] Add an experimental extension for applying bulk updates to databases. (check-in: [2954ab50] user: dan branch: ota-update, size: 77213)
2014-08-21
16:09
[3d41db13] part of check-in [0b9e2c32] Merge all recent trunk changes, especially the fix for ticket [369d57fb8e5ccdff06f1], but also the skip-scan improvement and performance improvements in the b-tree code. (check-in: [0b9e2c32] user: drh branch: sessions, size: 77354)
14:10
[d1a104e6] part of check-in [7029b340] Fix a faulty assert() statement. Add comments to clarify the behavior of the sqlite3OpenTableAndIndices() routine in insert.c. Add test cases to verify that the assert() statement is not firing inappropriately. Ticket [369d57fb8e5ccdff06f1]. (check-in: [7029b340] user: drh branch: trunk, size: 76776)
2014-08-06
01:25
[b1f57e16] part of check-in [68a6d5e2] Merge the latest 3.8.6 beta changes from trunk. (check-in: [68a6d5e2] user: drh branch: sessions, size: 77084)
2014-08-04
15:12
[604ec62e] part of check-in [2f724cba] Changed my mind: This opcode name changes mere creates unnecessary diff marks between older and newer versions without significantly improving readability. Was: Rename the IsNull opcode to IfNull and rename the NotNull opcode to IfNotNull. (check-in: [2f724cba] user: drh branch: deadend, size: 76514)
2014-07-31
22:59
[991e4964] part of check-in [e75b26ee] Refactoring: Change "pIndex->onError!=OE_None" to use a macro: "IsUniqueIndex(pIndex)". Easier to understand that way. (check-in: [e75b26ee] user: drh branch: trunk, size: 76506)
2014-05-29
20:29
[3f5e6cb2] part of check-in [9f18e78f] Merge trunk changes into the sessions branch. (check-in: [9f18e78f] user: drh branch: sessions, size: 77087)
2014-05-27
18:18
[a038daea] part of check-in [d16e575d] 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: [d16e575d] user: drh branch: trunk, size: 76509)
2014-05-26
20:00
[baf598f5] part of check-in [a769c7e0] Merge recent trunk changes into the sessions branch. (check-in: [a769c7e0] user: drh branch: sessions, size: 77072)
2014-05-23
11:48
[ac1a00ca] part of check-in [9a2dd187] Make sure sufficient VDBE registers are allocated for an INSERT...SELECT when there is an idlist on the insert table that includes an explicit rowid. Ticket [e9654505cfda93610585fde5a9bbf2e730c8a8d5] (check-in: [9a2dd187] user: drh branch: trunk, size: 76494)
2014-05-19
15:16
[d7cc294e] part of check-in [17349a49] Changes to help ensure that a multiplication does not overflow when computing the number of bytes needed for a memory allocation, and cause a malfunction. No problems existing problems were discovered. However, these changes should help to ensure that no problems arise in the future. (check-in: [17349a49] user: drh branch: safer-malloc, size: 76469)
2014-04-28
18:02
[2396a980] part of check-in [e158812c] Merge all recent trunk enhancements and fixes into the sessions branch. (check-in: [e158812c] user: drh branch: sessions, size: 77042)
2014-04-26
17:52
[ab34bea5] part of check-in [349f4834] Allow the xfer optimization to proceed if the DEFAULT on the very first column of the two tables is different. This is a refinement of the fix for ticket [f67b41381a]. (check-in: [349f4834] user: drh branch: trunk, size: 76464)
14:07
[08de2311] part of check-in [f8c4c495] Avoid transfering records between tables unless the default values for all columns are the same. Fix for [f67b41381a]. (check-in: [f8c4c495] user: dan branch: trunk, size: 76369)
2014-03-06
13:48
[e1ebd5d7] part of check-in [1ed463d9] Merge the latest 3.8.4 tweaks from trunk. (check-in: [1ed463d9] user: drh branch: sessions, size: 76693)
01:56
[d8bb3053] part of check-in [b83cfe89] Fix some incorrect comments and typos in comments. Add testcase() macros to some of the new record comparison code. (check-in: [b83cfe89] user: drh branch: trunk, size: 76115)
2014-03-04
14:34
[cb421bc5] part of check-in [7f51ad97] Merge the performance enhancements of trunk (and some obscure bug fixes) into the sessions branch. (check-in: [7f51ad97] user: drh branch: sessions, size: 76755)
2014-02-25
19:38
[3e875c32] part of check-in [cc5eda54] Make sure temporary registers used within a co-routine are not also used outside of that co-routine, in order to prevent concurrent use of the same register for two different things. Ticket [8c63ff0eca81a9132d8] (check-in: [cc5eda54] user: drh branch: tkt-8c63ff0eca, size: 76215)
2014-02-20
19:32
[d3d11642] part of check-in [82402909] Fix a harmless shadowed-variable warning. (check-in: [82402909] user: drh branch: trunk, size: 76177)
2014-02-19
14:20
[429adb67] part of check-in [d2c047f3] Add the SQLITE_NOTNULL P5 code for comparison operations - really a composite of SQLITE_NULLEQ and SQLITE_JUMPIFNULL. This flag indicates that NULL operands are not possible and raises and assert() if NULL operands are seen. Also omit an unnecessary scan of the sqlite_sequence table when writing into an AUTOINCREMENT table. (check-in: [d2c047f3] user: drh branch: trunk, size: 76183)
2014-02-17
22:40
[5d5e1d78] part of check-in [ce184c7b] Add logic to do test coverage measurements on the VDBE code. (check-in: [ce184c7b] user: drh branch: insert-optimization, size: 76414)
14:59
[ddc56dc8] part of check-in [35b4d6e9] 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: [35b4d6e9] user: drh branch: insert-optimization, size: 75834)
2014-02-16
01:55
[36e61dd2] part of check-in [aa2d8b0e] Enhance the code generator for INSERT INTO ... SELECT so that the SELECT generates output directly in the registers that INSERT INTO will be using, in many cases, and OP_SCopy operations can thus be avoided. (check-in: [aa2d8b0e] user: drh branch: insert-optimization, size: 75489)
2014-02-11
04:30
[985b61be] part of check-in [b0067926] Sync the latest trunk changes, and in particular the STAT4 IS NOT NULL fix. (check-in: [b0067926] user: drh branch: sessions, size: 77995)
2014-02-08
01:40
[89526b03] part of check-in [192dea97] Change the OP_Trace opcode to OP_Init and give it the ability to jump to the initialization code at the bottom of the program, thus avoiding the need for an extra OP_Goto. (check-in: [192dea97] user: drh branch: trunk, size: 77417)
2014-02-07
19:18
[b50cb5a5] part of check-in [a522f364] Change the OP_InitCoroutine instruction to jump over the co-routine implementation. (check-in: [a522f364] user: drh branch: coroutine-refactor, size: 77398)
18:27
[5997c3fb] part of check-in [1ec0e9dd] Get rid of the OP_Undef and OP_IsUndef opcodes in favor of higher-level OP_InitCoroutine and OP_EndCoroutine. (check-in: [1ec0e9dd] user: drh branch: coroutine-refactor, size: 77479)
13:20
[fa98632f] part of check-in [6fb74485] Add the OP_Undef and OP_IsUndef opcodes. With these, use the first register in the result register range as the flag to indicate EOF on an INSERT from a SELECT, rather than allocating a separate boolean register for that task. (check-in: [6fb74485] user: drh branch: coroutine-refactor, size: 78123)
2014-02-06
14:59
[c6b4ba48] part of check-in [881164cf] Change more OP_OpenEphemeral operations to OP_OpenHash. (check-in: [881164cf] user: drh branch: subquery-codegen-refactor, size: 78785)
2014-01-24
14:05
[a8a987ba] part of check-in [9b43e559] Bring in all the latest trunk changes, including the Common Table Expressions implementation. (check-in: [9b43e559] user: drh branch: sessions, size: 79263)
2014-01-18
08:27
[a4450f0c] part of check-in [cccff8a0] Avoid spurious "no such table" errors in statements of the form "INSERT INTO tbl WITH xxx AS (...) SELECT * FROM xxx". (check-in: [cccff8a0] user: dan branch: trunk, size: 78685)
2014-01-13
15:12
[cb4c8ad0] part of check-in [a26f399b] Add code to handle non-recursive CTEs in the same way as SQL views. (check-in: [a26f399b] user: dan branch: common-table-expr, size: 78443)
2014-01-10
20:46
[5ddb48c7] part of check-in [c9ea7d19] Allow a VALUES clause to be used any place that a SELECT statement can be used. (check-in: [c9ea7d19] user: drh branch: trunk, size: 78419)
2014-01-03
16:03
[e6b3d784] part of check-in [429018b1] Avoid some unnecessary OP_SCopy operations when inserting into a table with multiple indices. (check-in: [429018b1] user: drh branch: trunk, size: 78027)
2013-12-24
12:09
[de6cd4bb] part of check-in [cfd110bf] Merge the latest trunk changes into the sessions branch. (check-in: [cfd110bf] user: drh branch: sessions, size: 78415)
2013-12-19
14:34
[f165ba41] part of check-in [ffa092e1] Remove an unneeded column-cache flush in aggregate SELECT and an unreachable branch in the INSERT logic. (check-in: [ffa092e1] user: drh branch: trunk, size: 77837)
02:23
[d1b3fd53] part of check-in [61e2f357] Omit one or more pointless instructions that occur in between OP_NoConflict and OP_Halt. (check-in: [61e2f357] user: drh branch: trunk, size: 77874)
2013-11-26
18:00
[db64e625] part of check-in [fc9ae839] Merge in performance enhancements from trunk. (check-in: [fc9ae839] user: drh branch: sessions, size: 78315)
2013-11-16
20:13
[3cf80123] part of check-in [8f479a72] Enhance the DELETE logic so that it can make use of WHERE_ONEPASS_DESIRED for rowid tables. (check-in: [8f479a72] user: drh branch: optimize-delete, size: 77737)
2013-11-11
22:55
[0f4d5b41] part of check-in [5addd123] Merge in the WITHOUT ROWID changes. A few tests are failing now. They will be fixed in a follow-on check-in. (check-in: [5addd123] user: drh branch: sessions, size: 78043)
16:55
[63003c56] part of check-in [924d63b2] Remove unreachable code, replacing it in most cases with assert() or NEVER() macros. (check-in: [924d63b2] user: drh branch: trunk, size: 77465)
2013-11-08
16:54
[b3218fa5] part of check-in [fd11afa5] Performance improvement: Avoid unnecessary seeks on REPLACE INTO for a WITHOUT ROWID table. (check-in: [fd11afa5] user: drh branch: trunk, size: 77479)
01:09
[11d577c1] part of check-in [74e3ee2e] 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: [74e3ee2e] user: drh branch: trunk, size: 77408)
2013-11-06
19:59
[325ef76a] part of check-in [defd5205] Reference count the KeyInfo object. Cache a copy of an appropriate KeyInfo for each index in the Index object, and reuse that one copy as much as possible. (check-in: [defd5205] user: drh branch: omit-rowid, size: 77393)
02:36
[24d982dc] part of check-in [e9c1e419] Remove an unused variable. (check-in: [e9c1e419] user: drh branch: omit-rowid, size: 77652)
2013-11-05
19:41
[66c8c999] part of check-in [573cc274] Fix conflict handling for the case when the rowid uses REPLACE but other unique constraints use FAIL or IGNORE. (check-in: [573cc274] user: drh branch: omit-rowid, size: 77671)
16:39
[75592521] part of check-in [3877c9f5] Unless the destination table is completely empty, disable the xfer optimization for WITHOUT ROWID tables. (check-in: [3877c9f5] user: dan branch: omit-rowid, size: 76894)
14:19
[37bbaf90] part of check-in [99b1fa4b] Add tests for updates of without-rowid tables that use non-BINARY collation sequences for the primary key columns. And a minor bugfix to the same. (check-in: [99b1fa4b] user: dan branch: omit-rowid, size: 77051)
13:33
[63660d2e] part of check-in [54b22192] Standardize the error messages generated by constraint failures to a format of "$TYPE constraint failed: $DETAIL". This involves many changes to the expected output of test cases. (check-in: [54b22192] user: drh branch: omit-rowid, size: 77311)
01:59
[7f6a6200] part of check-in [294ed337] Add the conflict2.test script. Fix issues discovered by this script. (check-in: [294ed337] user: drh branch: omit-rowid, size: 78480)
2013-11-04
21:44
[b89a81a5] part of check-in [1ea43c0f] Bug fixes in the INSERT constraint checker. Refactor the Rowid handling logic for ANALYZE with STAT3/4. (check-in: [1ea43c0f] user: drh branch: omit-rowid, size: 78233)
15:23
[faa58c99] part of check-in [d072bcd0] Correctly handle changing counting when inserting and deleting on WITHOUT ROWID tables. Add more FOREIGN KEY test cases. (check-in: [d072bcd0] user: drh branch: omit-rowid, size: 77933)
2013-11-02
22:29
[62c2997b] part of check-in [a7a18b65] Improved Synopsis on register comparison operators. Fix a bug on the constraint check generator. (check-in: [a7a18b65] user: drh branch: omit-rowid, size: 77772)
2013-11-01
20:30
[57fe5ae1] part of check-in [f9769d70] Fix sqlite3_analyzer so that it works with WITHOUT ROWID tables. Fix index generation for secondary indices that include fields from the PRIMARY KEY. (check-in: [f9769d70] user: drh branch: omit-rowid, size: 77772)
17:08
[4694b230] part of check-in [c525ac56] 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: [c525ac56] user: drh branch: omit-rowid, size: 77837)
14:03
[da74aded] part of check-in [3bed599e] Improved VDBE comments on the constraint checker. Fix a missing write lock in the UPDATE logic. (check-in: [3bed599e] user: drh branch: omit-rowid, size: 77080)
12:42
[c04429bd] part of check-in [5c0eaea6] Some UPDATE statements now working in WITHOUT ROWID tables. (check-in: [5c0eaea6] user: drh branch: omit-rowid, size: 76997)
2013-10-31
15:37
[64eb6bf8] part of check-in [ad90e762] Improved comments and variable names in infrastructure routines of UPDATE, DELETE, and INSERT. (check-in: [ad90e762] user: drh branch: omit-rowid, size: 76980)
12:13
[e8f06919] part of check-in [deacbd21] Moving UPDATE towards the iDataCur/iIdxCur representation. Still not working for WITHOUT ROWID, though. (check-in: [deacbd21] user: drh branch: omit-rowid, size: 75408)
11:15
[076f600e] part of check-in [1adfca60] 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: [1adfca60] user: drh branch: omit-rowid, size: 76469)
2013-10-30
20:22
[4d832cca] part of check-in [0d4fea74] Continue working to get UPDATE operational for WITHOUT ROWID tables. Fix PRAGMA integrity_check so that it works on WITHOUT ROWID tables. (check-in: [0d4fea74] user: drh branch: omit-rowid, size: 76733)
15:52
[f8eea9f2] part of check-in [6d9af606] Make sure KeyInfo objects on multi-column indices of WITHOUT ROWID tables have the correct nField and nXField values. Also, add the SQLITE_ENABLE_MODULE_COMMENT compile-time option and the VdbeModuleComment() macro and use it to label entry and exit points of some key routines. (check-in: [6d9af606] user: drh branch: omit-rowid, size: 75292)
2013-10-29
16:14
[42e8dc61] part of check-in [141a38a7] Improved comments on the constraint checking logic. (check-in: [141a38a7] user: drh branch: omit-rowid, size: 75112)
2013-10-26
15:40
[14ae816a] part of check-in [086ec2a1] Work on the UPDATE and INSERT logic. This is an incremental check-in so that can switch over to trunk to work on an unrelated issue there. (check-in: [086ec2a1] user: drh branch: omit-rowid, size: 74587)
13:36
[e8772841] part of check-in [e6650e16] Replace the OP_IsUnique opcode with OP_NoConflict. This code simplification might be useful to move onto trunk even if this branch is never merged. (check-in: [e6650e16] user: drh branch: omit-rowid, size: 71670)
00:58
[684154a7] part of check-in [ae61a343] Minor refactoring of variable names and fixes to comments in insert.c. (check-in: [ae61a343] user: drh branch: omit-rowid, size: 71613)
2013-10-25
19:17
[976fc5c9] part of check-in [e557b7d8] Progress toward getting UPDATE to work in WITHOUT ROWID tables. (check-in: [e557b7d8] user: drh branch: omit-rowid, size: 71739)
14:46
[71b3d1f5] part of check-in [9eafafa3] Basic DELETE operations now working on WITHOUT ROWID tables. (check-in: [9eafafa3] user: drh branch: omit-rowid, size: 71762)
2013-10-24
19:48
[a188b1ab] part of check-in [85daf517] Update the interface to the sqlite3GenerateRowDelete() utility so that it is able to handle WITHOUT ROWID tables. The implementation still needs to be completed. (check-in: [85daf517] user: drh branch: omit-rowid, size: 71771)
2013-10-23
23:37
[c028df48] part of check-in [247f3899] Change the sqlite3OpenTable() utility to open the PRIMARY KEY index when reading a WITHOUT ROWID table. (check-in: [247f3899] user: drh branch: omit-rowid, size: 71765)
16:03
[288b9018] part of check-in [579815ff] Get VACUUM and the xfer optimization working with WITHOUT ROWID. (check-in: [579815ff] user: drh branch: omit-rowid, size: 71207)
13:30
[f95fb9bf] part of check-in [b21d831b] Some inserts and queries working for multi-column primary keys and WITHOUT ROWID. (check-in: [b21d831b] user: drh branch: omit-rowid, size: 70837)
01:57
[e8aeca40] part of check-in [3f8016de] Some simple inserts and queries working on WITHOUT ROWID tables. (check-in: [3f8016de] user: drh branch: omit-rowid, size: 70838)
2013-10-22
18:01
[c9db8609] part of check-in [a106ce86] The Index object now has nKeyCol and nColumn. nColumn is the total number of columns and nKeyCol is the number of key columns. Currently these always differ by one. Refactor aiColumn[] to be of type i16 instead of int. (check-in: [a106ce86] user: drh branch: omit-rowid, size: 70537)
2013-10-10
20:13
[feaa30b4] part of check-in [136445ba] Synchronize with the trunk. (check-in: [136445ba] user: drh branch: sessions, size: 71110)
2013-10-04
18:17
[9a3f578f] part of check-in [087af29e] If an "INSERT INTO ... SELECT" can use the xfer optimization, pass the OPFLAG_BULKCSR hint to btree cursors used to update indices. This results in a tighter key packing. (check-in: [087af29e] user: dan branch: trunk, size: 70588)
2013-09-05
18:40
[a271771d] part of check-in [e940b5de] 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: [e940b5de] user: dan branch: trunk, size: 70544)
2013-08-02
20:44
[54ec6fd4] part of check-in [7e1acb39] 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: [7e1acb39] user: drh branch: sessions, size: 71060)
2013-08-01
13:04
[a66bcdc9] part of check-in [8e07aa2a] Fill out an initial implementation of the sqlite3ExprImpliesExpr() function. (check-in: [8e07aa2a] user: drh branch: partial-indices, size: 70538)
03:36
[b09e0aa7] part of check-in [6b73ae7c] Test cases and bug fixes for the partial index logic. (check-in: [6b73ae7c] user: drh branch: partial-indices, size: 70532)
01:14
[1e2eb1d4] part of check-in [fb9044d1] Add the logic to keep partial indices up to date through DML statements and when new partial indices are created. This new logic is untested except to verify that it does not interfere with full indices. (check-in: [fb9044d1] user: drh branch: partial-indices, size: 70485)
2013-02-13
13:42
[02f8a186] part of check-in [7e14dc73] Enhancements to the query planner to make use of indices for ORDER BY even when IN constraints are in the WHERE clause. Add extended error codes for all SQLITE_CONSTRAINT errors. (check-in: [7e14dc73] user: drh branch: sessions, size: 70384)
2013-02-09
13:58
[f7cb141e] part of check-in [54611046] Add extended error codes for constraint errors. (check-in: [54611046] user: drh branch: constraint-error-codes, size: 69862)
2012-12-08
23:37
[36c17b9b] part of check-in [4f6d69ae] Pull the latest trunk changes into the sessions branch, and in particular the collating-sequence refactorization. (check-in: [4f6d69ae] user: drh branch: sessions, size: 70214)
04:10
[dc197aa9] part of check-in [1a9db8dc] Duplicating check constraint expressions prior to code generation is no longer required, and so it is removed. (check-in: [1a9db8dc] user: drh branch: ticket-71e333e7, size: 69692)
2012-12-06
20:19
[abe16e63] part of check-in [0d7b5d45] Cherrypick [557c69055a3] and [0064bab7714] (OP_Once-related fixes for triggers). (check-in: [0d7b5d45] user: dan branch: branch-3.7.9, size: 67162)
2012-12-03
19:42
[d7ed04b1] part of check-in [7d5fc1a3] Remove an unreachable condition. Replace it with an assert(). (check-in: [7d5fc1a3] user: drh branch: trunk, size: 69869)
2012-10-26
13:34
[ece0dfd2] part of check-in [325364a9] Backport the shared-cache-fix branch. (check-in: [325364a9] user: drh branch: branch-3.7.14, size: 67881)
2012-10-09
14:58
[6273647b] part of check-in [f1fbb8c5] Merge the latest trunk changes, especially the ORDER BY optimizer enhancements but also other fixes, onto the sessions branch. (check-in: [f1fbb8c5] user: drh branch: sessions, size: 70393)
2012-10-08
23:25
[ad0d8943] part of check-in [28d1eb40] Changes to facilitate full test coverage. (check-in: [28d1eb40] user: drh branch: trunk, size: 69871)
2012-10-05
18:35
[ef88d0e4] part of check-in [ac81ae49] Backport fixes to shared-cache mode, from the shared-cache-fix branch, to version 3.7.9 (check-in: [ac81ae49] user: drh branch: branch-3.7.9, size: 67108)
16:30
[b1d413e7] part of check-in [c2c776ab] Fix a problem with shared-cache mode and CHECK constraints causing one db handle to invoke a collation sequence function registered with another. (check-in: [c2c776ab] user: dan branch: shared-cache-fix, size: 69804)
2012-10-04
19:33
[aefc9795] part of check-in [2b370dea] Shared-cache mode fixes for views and virtual tables. (check-in: [2b370dea] user: dan branch: shared-cache-fix, size: 69694)
2012-09-28
13:05
[08ec5cec] part of check-in [6ca8eae1] Merge the latest trunk changes (especially "PRAGMA busy_timeout" and the ORDER BY query planner optimizations) into the sessions branch. (check-in: [6ca8eae1] user: drh branch: sessions, size: 70237)
2012-09-15
13:29
[6e2aa7fb] part of check-in [a93ee09c] Factor out the code that generates a co-routine for evaluating the SELECT on the RHS of an INSERT statement so that the same code can potentially be reused in other places. (check-in: [a93ee09c] user: drh branch: trunk, size: 69715)
2012-08-31
14:23
[8c5a3aba] part of check-in [87995dc9] Update with latest trunk changes. (check-in: [87995dc9] user: dan branch: sessions, size: 68314)
2012-08-25
10:01
[b090d0a9] part of check-in [9b19b847] Fix all known instances of 'repeated the' style typos in comments. No changes to code. (check-in: [9b19b847] user: mistachkin branch: trunk, size: 67792)
2012-08-15
16:21
[49dd0445] part of check-in [fc07a479] Merge all the latest trunk changes into the sessions branch. (check-in: [fc07a479] user: drh branch: sessions, size: 68318)
2012-07-23
21:43
[770ed633] part of check-in [b589f1ef] Refactor field names in the SelectDest object to make them distinct and easier to grep for. (check-in: [b589f1ef] user: drh branch: trunk, size: 67796)
2012-04-18
01:41
[e32d8d0b] part of check-in [87a0eab5] Import all the latest trunk changes into the sessions branch. (check-in: [87a0eab5] user: drh branch: sessions, size: 68308)
2012-03-31
19:12
[0bbffe75] part of check-in [af602d87] Fix a compiler warning by removing a redundant variable. (check-in: [af602d87] user: drh branch: trunk, size: 67786)
2012-03-30
17:30
[56f11d8c] part of check-in [fb9b9987] Merge all recent trunk changes into the sessions branch. (check-in: [fb9b9987] user: drh branch: sessions, size: 68319)
15:48
[93eb9542] part of check-in [1b75f301] When a named CHECK constraint fails, include the name of the constraint in the error message. (check-in: [1b75f301] user: drh branch: trunk, size: 67797)
2012-03-07
19:13
[82b1bc7a] part of check-in [9a0f90d9] If a CHECK constraint is named, report that name on the error message when the constraint fails. (check-in: [9a0f90d9] user: drh branch: named-check-constraints, size: 67835)
2012-01-05
13:02
[1c9a9a4d] part of check-in [a9bcb432] Merge all of the latest trunk changes into the sessions branch. (check-in: [a9bcb432] user: drh branch: sessions, size: 67958)
2012-01-04
12:57
[d7c69718] part of check-in [e9d05cbb] Fix typos and comments and make minor changes to a few function names, as suggested by readership. (check-in: [e9d05cbb] user: drh branch: trunk, size: 67436)
2011-12-09
16:59
[ea820fe9] part of check-in [28ffd39c] Previous check-in broke auto-increment. This check-in appears to fix it. (check-in: [28ffd39c] user: drh branch: uninit-vdbe-mem, size: 67435)
16:21
[2d0162f7] part of check-in [521d72bd] Make no assumptions about the initial state of VDBE registers. (check-in: [521d72bd] user: drh branch: uninit-vdbe-mem, size: 67428)
2011-11-16
15:27
[8f283d67] part of check-in [3b58f5f0] Where possible, take advantage of the rowid at the end of index records to optimize range constraints (<, >, <=, >=) on the rowid column. (check-in: [3b58f5f0] user: dan branch: trunk, size: 67381)
2011-11-04
14:36
[9794a963] part of check-in [e3f368cd] Update the xfer optimization code so that the xfer optimization can be used with INTEGER PRIMARY KEY ON CONFLICT ... as long as the destination table is initially empty. Improvements to the comments on the xfer optimization. New test cases added. (check-in: [e3f368cd] user: drh branch: trunk, size: 67378)
00:23
[bfe25a1d] part of check-in [6f9898db] Make sure the INSERT INTO ... SELECT statement works correctly even when the destination table contains an INTEGER PRIMARY KEY ON CONFLICT... column. Ticket [676bc02b87176125]. (check-in: [6f9898db] user: drh branch: trunk, size: 67112)
2011-10-11
12:58
[25b1bdb2] part of check-in [403431ca] Merge all the latest trunk changes into the sessions branch - especially the SQLITE_ENABLE_STAT3 enhancements. (check-in: [403431ca] user: drh branch: sessions, size: 67556)
2011-09-30
12:01
[ca187835] part of check-in [9ddfe1e4] Disable the xfer optimization if "PRAGMA count_changes=1" is configured. Ticket [c48d99d690]. (check-in: [9ddfe1e4] user: dan branch: trunk, size: 67034)
2011-05-05
15:46
[1f1688a9] part of check-in [6883580e] Merge the latest trunk changes into the sessions branch. (check-in: [6883580e] user: drh branch: sessions, size: 67487)
2011-04-25
18:49
[3eea5a53] part of check-in [6d2633a6] Add support for on conflict clauses to fts3/fts4. (check-in: [6d2633a6] user: dan branch: vtab-conflict, size: 66965)
2011-04-24
22:56
[cdee360e] part of check-in [ddeea5ab] Disable the transfer optimization if the destination table contains any foreign key constraint and foreign key constraints are enabled. Ticket [6284df89debdf]. (check-in: [ddeea5ab] user: drh branch: trunk, size: 66893)
2011-04-09
18:07
[8796ca3f] part of check-in [83705e90] Merge the latest trunk changes into the sessions branch. (check-in: [83705e90] user: drh branch: sessions, size: 66828)
03:04
[acfb89fe] part of check-in [927e955b] Back out the SQLITE_OMIT_UNIQUE_ENFORCEMENT compile-option. It is an unneeded complication. (check-in: [927e955b] user: drh branch: trunk, size: 66306)
2011-04-05
13:27
[ef33ce15] part of check-in [03ca8342] Pull the latest trunk changes (and hence the schema-parse-refactor changes) into the sessions branch. (check-in: [03ca8342] user: drh branch: sessions, size: 67050)
13:12
[6873a0b3] part of check-in [5db4511d] Merge the scheme-parse-refactor changes into trunk: (1) added sqlite3SchemaMutexHeld() asserts, (2) Use -1 instead of 0 to mean "all" in sqlite3ResetInternalSchema(), and other cosmetic changes. (check-in: [5db4511d] user: drh branch: trunk, size: 66528)
12:25
[4083e8af] part of check-in [bf664b20] Fix the P4_TRANSIENT constant so that it works correct - so that it really makes a copy of the string for the P4 argument. Use P4_TRANSIENT wherever appropriate. Change P4_STATICs of schema names to P4_TRANSIENT. (check-in: [bf664b20] user: drh branch: trunk, size: 66410)
2011-04-04
18:22
[081d0dc2] part of check-in [ae8374af] Add a description of access rules for the Schema object and lots of asserts to verify that the access rules are followed. (check-in: [ae8374af] user: drh branch: schema-parse-refactor, size: 66503)
2011-03-30
21:04
[e354eadb] part of check-in [66345214] Add the SQLITE_ENABLE_PREUPDATE_HOOK compile-time option. (check-in: [66345214] user: drh branch: sessions, size: 66910)
2011-03-19
08:38
[c46747b4] part of check-in [24d4d5dd] Fix a problem with INTEGER PRIMARY KEY columns and the pre-update hook. (check-in: [24d4d5dd] user: dan branch: sessions, size: 66832)
2011-03-18
12:35
[b0d4150a] part of check-in [94fd5bb6] Merge all the latest trunk enhancements into the sessions branch. (check-in: [94fd5bb6] user: drh branch: sessions, size: 66824)
2011-03-12
05:55
[9b6fa065] part of check-in [668b91db] Backport the SQLITE_OMIT_UNIQUE_ENFORCEMENT change from check-in [b86999436e] on the trunk. (check-in: [668b91db] user: shaneh branch: branch-3.7.2, size: 66483)
04:58
[8ffb544f] part of check-in [b8699943] More tests for SQLITE_OMIT_UNIQUE_ENFORCEMENT and minor change to implementation. (check-in: [b8699943] user: shaneh branch: trunk, size: 66385)
2011-03-10
21:13
[06133d9e] part of check-in [ba85bf8c] Skip unique constraint enforcement if compiled with SQLITE_OMIT_UNIQUE_ENFORCEMENT. (check-in: [ba85bf8c] user: shaneh branch: trunk, size: 66414)
2011-03-06
21:28
[036cfac4] part of check-in [01a79d5a] Remove dead code identified by the clang static analyzer. (check-in: [01a79d5a] user: drh branch: trunk, size: 66163)
2011-03-01
18:42
[c56a64b1] part of check-in [6145d7b8] Add the experimental sqlite3_preupdate_hook() API. (check-in: [6145d7b8] user: dan branch: sessions, size: 66699)
2010-08-03
13:08
[a4995747] part of check-in [4e157b77] Fix the REPLACE conflict resolution so that it falls back to ABORT when a CHECK constraint fails. Ticket [c38baa3d969eab794]. (check-in: [4e157b77] user: drh branch: trunk, size: 66260)
2010-07-25
02:12
[45d9a637] part of check-in [da2f62c5] Further examples of using automatic deallocation to replace "delete" methods. (check-in: [da2f62c5] user: drh branch: malloc-enhancement, size: 66204)
2010-07-24
19:08
[e21574be] part of check-in [e5ecb159] Additional malloc sanity changes. Use sqlite3MemLink() on Index.zColAff and Table.zColAff as a proof of concept. (check-in: [e5ecb159] user: drh branch: malloc-enhancement, size: 66258)
16:34
[ba455ebb] part of check-in [ac1f37a6] Make sure all memory from sqlite3DbMalloc() is freed by sqlite3DbFree() and all memory from sqlite3_malloc() is freed by sqlite3_free(). (check-in: [ac1f37a6] user: drh branch: malloc-enhancement, size: 66183)
2010-06-28
10:15
[d9476f23] part of check-in [4932f228] 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: [4932f228] user: dan branch: trunk, size: 66167)
2010-03-30
12:40
[3a956768] part of check-in [ca359a3e] Do not crash when compiling an "INSERT INTO tbl DEFAULT VALUES" when tbl has either BEFORE or INSTEAD OF triggers attached to it. Ticket [f3162063fd]. (check-in: [ca359a3e] user: dan branch: trunk, size: 66158)
2010-02-25
14:44
[223a368a] part of check-in [a2550597] Add some technically unnecessary variable initializations to silence compiler warnings. (check-in: [a2550597] user: dan branch: branch-3.6.1, size: 61892)
2010-02-18
08:19
[76d6b44a] part of check-in [0e422580] Allow statements like "REPLACE INTO tbl(rowid) VALUES(...)" to run without a statement journal as long as there are no triggers, foreign keys or indexes. (check-in: [0e422580] user: dan branch: trunk, size: 66127)
2010-01-07
15:17
[11eeb4f2] part of check-in [44bb1bfe] Fix the expression comparison logic to take the COLLATE operator into account. Ticket [360c6073e197] (check-in: [44bb1bfe] user: drh branch: trunk, size: 65450)
2009-11-10
01:30
[f9c60989] part of check-in [f6c045f6] Remove the obsolete "$Id:$" RCS identifier strings from the source code. (check-in: [f6c045f6] user: drh branch: trunk, size: 65451)
2009-10-01
16:09
[2fe2ef7b] part of check-in [edff3500] If an update does not modify any child or parent key columns, omit foreign key processing for the statement. (check-in: [edff3500] user: dan branch: trunk, size: 65517)
2009-09-24
16:52
[719465bf] part of check-in [beb2094f] Fix a bug in the code for REPLACE conflict handling on IPK columns when there are no indexes on the table. Triggers and foreign key processing were being bypassed. (check-in: [beb2094f] user: dan branch: trunk, size: 65517)
11:31
[1691e772] part of check-in [3f40c142] Ensure foreign key related processing takes place when rows are deleted from the database by REPLACE conflict handling. (check-in: [3f40c142] user: dan branch: trunk, size: 65672)
09:05
[60434447] part of check-in [0443f7c9] Remove unused parameter from sqlite3CodeRowTrigger(). Fix header comments for this function and CodeRowTriggerDirect(). (check-in: [0443f7c9] user: dan branch: trunk, size: 65634)
00:09
[3ff8f07a] part of check-in [f0c56fa9] Make sure a transaction is available for rollback whenever a REDUCE conflict resolution occurs and there is the possibility to ABORT. Ticket [4a03edc4c8c] (check-in: [f0c56fa9] user: drh branch: trunk, size: 65642)
2009-09-21
16:06
[e4ca9ed8] part of check-in [fb6ceed3] Fix compilation with OMIT_TRIGGER defined. Ticket [1ff6d29030]. (check-in: [fb6ceed3] user: dan branch: trunk, size: 65570)
2009-09-19
17:00
[f20335f7] part of check-in [d5d39981] Check in implementation of foreign key constraints. (check-in: [d5d39981] user: dan branch: trunk, size: 65401)
2009-09-08
19:15
[755028b8] part of check-in [aec9dbd8] Combine the OP_Statement and OP_Transaction opcodes. (check-in: [aec9dbd8] user: dan branch: trunk, size: 65349)
15:55
[5cf80f9b] part of check-in [85cb0c94] If recursive-triggers are enabled, fire DELETE triggers if database rows are removed as a result of OR REPLACE conflict resolution. (check-in: [85cb0c94] user: dan branch: trunk, size: 65391)
13:40
[06fe5049] part of check-in [4ab8c841] Additional simplifications in support of structural testing. (check-in: [4ab8c841] user: drh branch: trunk, size: 64231)
2009-09-01
12:16
[c90b07a1] part of check-in [38a9327b] More fixes and comment updates. (check-in: [38a9327b] user: dan branch: trunk, size: 64146)
2009-08-31
15:27
[845f0f5a] part of check-in [85d9f23b] More fixes for test cases. (check-in: [85d9f23b] user: dan branch: trunk, size: 64265)
2009-08-30
11:42
[5b548c80] part of check-in [9eb91efd] Fixes for new triggers scheme. (check-in: [9eb91efd] user: dan branch: trunk, size: 64385)
2009-08-28
18:53
[5bddd3d6] part of check-in [9b9c1921] Changes to support recursive triggers. (check-in: [9b9c1921] user: dan branch: trunk, size: 64347)
2009-08-13
19:21
[95625f99] part of check-in [e72186f2] If a binary operator in a WHERE clause that should be performed with no affinity conversions applied to its operands (see http://www.sqlite.org/datatype3.html) is optimized by index lookup, do not apply any conversions to the key value before looking it up in the index. Fix for [93fb9f89d6]. (check-in: [e72186f2] user: dan branch: trunk, size: 64999)
2009-07-24
17:58
[a4bbd811] part of check-in [5d9e767a] Allow virtual tables to be used in shared-cache mode. (CVS 6928) (check-in: [5d9e767a] user: danielk1977 branch: trunk, size: 64805)
2009-06-23
20:28
[94e51344] part of check-in [1330993d] 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: [1330993d] user: drh branch: trunk, size: 64647)
2009-05-29
19:00
[69ef88ce] part of check-in [ede06dac] Enhance the sqlite3VdbeGetOp() routine so that it always returns a pointer to VdbeOp, even following an OOM fault. This simplifies error handling in callers. Cleanup to the column cache logic and the expr.c source module. (CVS 6691) (check-in: [ede06dac] user: drh branch: trunk, size: 63360)
2009-05-04
11:42
[050536ea] part of check-in [cac4f3d8] Speed up INSERT operations that add data to UNIQUE or PRIMARY KEY indexes by rationalizing duplicate seek operations. (CVS 6599) (check-in: [cac4f3d8] user: danielk1977 branch: trunk, size: 63395)
2009-05-03
01:01
[35d73660] part of check-in [46c4ec96] More changes to insert.c to facilitate full coverage testing. (CVS 6596) (check-in: [46c4ec96] user: drh branch: trunk, size: 63086)
2009-05-02
15:46
[a655cd5e] part of check-in [8f3cac76] Simplifications to the uniqueness constraint failure error message generation code. (CVS 6595) (check-in: [8f3cac76] user: drh branch: trunk, size: 62786)
00:28
[0805018a] part of check-in [7d2b80c7] When checking indices for xfer compatibility, compare collating sequences by string, not by pointer. (CVS 6590) (check-in: [7d2b80c7] user: drh branch: trunk, size: 62949)
2009-05-01
15:17
[bd12b428] part of check-in [795b453c] Fix an error message that is generated if the number of columns do not match on an INSERT into a virtual table with hidden columns. (CVS 6588) (check-in: [795b453c] user: drh branch: trunk, size: 62924)
02:08
[76667db0] part of check-in [4a1f6a3a] Fix processing of BEFORE triggers on INSERT statements with RHS SELECTs that insert a NULL into the INTEGER PRIMARY KEY. Ticket #3832. (CVS 6583) (check-in: [4a1f6a3a] user: drh branch: trunk, size: 62916)
2009-04-30
00:11
[cdb0f64e] part of check-in [71756dc8] Remove an always-true test from delete.c. Move the sqlite3OpenTable() routine from delete.c to insert.c since it is not used in delete.c. (CVS 6571) (check-in: [71756dc8] user: drh branch: trunk, size: 62893)
2009-02-28
10:47
[71286d08] part of check-in [3befe1ef] 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: [3befe1ef] user: danielk1977 branch: trunk, size: 62175)
2009-02-20
10:58
[529a1b98] part of check-in [e43ed649] Instead of using SetNumColumns, specify the number of columns in a table or index using the P4 argument. (CVS 6310) (check-in: [e43ed649] user: danielk1977 branch: trunk, size: 62065)
03:02
[69764f49] part of check-in [feccad8d] Add the OP_HaltIfNull opcode and use it to simplify prepared statements for INSERTs and UPDATEs of tables with NOT NULL columns. (CVS 6308) (check-in: [feccad8d] user: drh branch: trunk, size: 62104)
2009-02-19
14:39
[6bd2464e] part of check-in [d9f6ffbc] Changes to reduce the heap space consumed by triggers, views and tables in the in-memory representation of the schema. Also to reduce the space used by prepared statements slightly. (CVS 6305) (check-in: [d9f6ffbc] user: danielk1977 branch: trunk, size: 62038)
2008-12-10
21:19
[f6db1e6f] part of check-in [ea01d437] Additional work at eliminating silly compiler warnings. (CVS 6010) (check-in: [ea01d437] user: drh branch: trunk, size: 62026)
19:26
[c34dab7d] part of check-in [c872d554] Never use strlen(). Use our own internal sqlite3Strlen30() which is guaranteed to never overflow an integer. Additional explicit casts to avoid nuisance warning messages. (CVS 6007) (check-in: [c872d554] user: drh branch: trunk, size: 61936)
17:20
[665a0e74] part of check-in [e7e9fa4f] Remove or rename local variables that shadow other variables or parameters. (CVS 6005) (check-in: [e7e9fa4f] user: drh branch: trunk, size: 61918)
2008-11-19
09:05
[73c4b337] part of check-in [88134322] Changes to avoid "unused parameter" compiler warnings. (CVS 5921) (check-in: [88134322] user: danielk1977 branch: trunk, size: 61865)
2008-11-17
19:18
[47d2c273] part of check-in [8009220c] Modifications to avoid unsigned/signed comparisons in various files. (CVS 5914) (check-in: [8009220c] user: danielk1977 branch: trunk, size: 61952)
2008-11-03
20:55
[d61998cb] part of check-in [fdb98fd8] Change the name of the Cursor object to VdbeCursor. (CVS 5857) (check-in: [fdb98fd8] user: drh branch: trunk, size: 61923)
2008-10-31
10:53
[1858f297] part of check-in [bfce9142] Change the way sqlite3VdbeSetColName() is called so as to remove a few lines of code. This also fixes #3470. (CVS 5853) (check-in: [bfce9142] user: danielk1977 branch: trunk, size: 61934)
2008-08-20
16:35
[110cca78] part of check-in [daf730d1] Refactor the name resolution procedures in the code generator. (CVS 5569) (check-in: [daf730d1] user: drh branch: trunk, size: 61922)
2008-07-28
19:34
[89cd9af5] part of check-in [e48f9697] Implement the "lookaside" memory allocation cache. Use of this cache makes the speed1.test script run about 15% faster. Added new interfaces to control the cache. (CVS 5488) (check-in: [e48f9697] user: drh branch: trunk, size: 61833)
2008-07-08
23:40
[e8efc17d] part of check-in [cbd3c158] Remove obsolete code from select.c, including the "affinity" parameter to the sqlite3Select() module. (CVS 5380) (check-in: [cbd3c158] user: drh branch: trunk, size: 61774)
22:28
[d20fb21e] part of check-in [6cdb6841] Added macros to convert between 32-bit ints and 64-bit ptrs to avoid compiler warnings. (CVS 5378) (check-in: [6cdb6841] user: shane branch: trunk, size: 61779)
19:34
[6203674c] part of check-in [8ed04b1e] Completely rework the sqlite3SetString() primitive so that it honors the SQLITE_LIMIT_LENGTH and avoids the use of strlen(). (CVS 5374) (check-in: [8ed04b1e] user: drh branch: trunk, size: 61765)
2008-07-04
10:56
[9af927a8] part of check-in [a7f3b431] Fix for explicitly inserting a NULL value into the rowid column of a virtual table. (CVS 5343) (check-in: [a7f3b431] user: danielk1977 branch: trunk, size: 61771)
2008-06-24
12:46
[f8c7da31] part of check-in [95037e6d] Fix a problem in sqlite3ExprIsInteger() causing failures on select1-4.9.2. Other bug fixes in compound-merge. The compound-merge is still disabled in this check-in using "#if 0" due to additional bugs. (CVS 5295) (check-in: [95037e6d] user: drh branch: trunk, size: 61579)
00:32
[4656c523] part of check-in [e2ba324c] The compound-select merge optimization is mostly working with this check-in. But there are still a few problems and so the optimization is disabled by and "#if 0". This check-in is to synchronize with the other changes happening in parallel. (CVS 5291) (check-in: [e2ba324c] user: drh branch: trunk, size: 61579)
2008-06-20
15:24
[93231fd0] part of check-in [6b9d92fc] Change the SRT_Subroutine mode into SRT_Coroutine. Use co-routines in the INSERT processing logic. (CVS 5255) (check-in: [6b9d92fc] user: drh branch: trunk, size: 61634)
2008-06-06
15:04
[c2ead6c3] part of check-in [ef1956ee] Remove the subroutine return stack from the VDBE. Return addresses for subroutines are now stored in registers. (CVS 5191) (check-in: [ef1956ee] user: drh branch: trunk, size: 59685)
2008-05-29
03:20
[e3277f31] part of check-in [7e684785] When initializing the sqlite_sequence entry for an AUTOINCREMENT table, make sure the value is an reasonable integer even if the initial insert failed. Ticket #3148. (CVS 5175) (check-in: [7e684785] user: drh branch: trunk, size: 59588)
2008-04-28
18:46
[77f0829b] part of check-in [133b7ee5] 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: [133b7ee5] user: drh branch: trunk, size: 59540)
2008-04-27
18:40
[9d59bf8e] part of check-in [6a94d197] Remove all references to sqlite3_intptr_t. (CVS 5051) (check-in: [6a94d197] user: drh branch: trunk, size: 59530)
2008-04-11
15:36
[5208f16d] part of check-in [38746c54] Additional reductions in the use of memset(). (CVS 4988) (check-in: [38746c54] user: drh branch: trunk, size: 59548)
2008-04-01
05:07
[6974a1d0] part of check-in [91cc646e] Fix the CSE mechanism so that it takes into account column affinity changes that might be imposed by comparison operators. (CVS 4949) (check-in: [91cc646e] user: drh branch: trunk, size: 59551)
2008-03-31
23:48
[803299d2] part of check-in [c29ee0fe] Avoid duplicate OP_Column opcodes by remembering prior results. This is similar to CSE, but only applies to columns. (CVS 4943) (check-in: [c29ee0fe] user: drh branch: trunk, size: 59572)
2008-03-25
09:47
[c491fbd4] part of check-in [04715364] Use a vdbe memory cell to allocate the space required for vdbe cursors. (CVS 4912) (check-in: [04715364] user: danielk1977 branch: trunk, size: 59427)
2008-03-19
20:42
[358c8059] part of check-in [a42caa8f] 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: [a42caa8f] user: drh branch: trunk, size: 59481)
2008-03-06
09:58
[3eb3d0b7] part of check-in [e2a9f5f1] Handle non-autoconf build correctly with new changes (CVS 4832) (check-in: [e2a9f5f1] user: mlcreech branch: trunk, size: 59317)
07:35
[6c64040d] part of check-in [54839a84] Use intptr_t definition to silence warnings about ptr-int casts (CVS 4824) (check-in: [54839a84] user: mlcreech branch: trunk, size: 59282)
2008-02-13
18:25
[b313f5ec] part of check-in [990237e2] Where possible, avoid freeing buffers allocated for vdbe memory cells in case they can be reused. (CVS 4783) (check-in: [990237e2] user: danielk1977 branch: trunk, size: 59275)
2008-01-25
15:04
[d422fda2] part of check-in [50815a82] Error messages says "no such view" instead of "no such table" when trying to DROP a VIEW that does not exist. (CVS 4750) (check-in: [50815a82] user: drh branch: trunk, size: 59205)
2008-01-21
16:22
[a741d7f0] part of check-in [720bc20a] Miscellaneous test coverage improvements. (CVS 4734) (check-in: [720bc20a] user: drh branch: trunk, size: 59202)
2008-01-19
03:35
[969b543e] part of check-in [d9ebe9d7] Cleanup and simplification of constraint processing. Simplifications to the VM for better test coverage. (CVS 4729) (check-in: [d9ebe9d7] user: drh branch: trunk, size: 59231)
2008-01-17
16:22
[ed16eaf9] part of check-in [706b41b7] Registerification of the VDBE is complete. The operand stack has been removed from the code. All instructions operate out of registers only. (CVS 4718) (check-in: [706b41b7] user: drh branch: trunk, size: 59508)
02:36
[8a90ba2d] part of check-in [b3a141b2] Registerification of the WHERE clause logic. (CVS 4716) (check-in: [b3a141b2] user: drh branch: trunk, size: 59556)
2008-01-12
12:48
[a19d9f51] part of check-in [a6dddebc] Continuing work toward converting the VM into a register machine. (CVS 4707) (check-in: [a6dddebc] user: drh branch: trunk, size: 59755)
2008-01-10
23:50
[405cf055] part of check-in [8cbd4651] More work toward converting the VM into a register-based machine. (CVS 4704) (check-in: [8cbd4651] user: drh branch: trunk, size: 59345)
03:46
[b8406b40] part of check-in [173698c9] Continuing work toward registerizing the code generator. (CVS 4703) (check-in: [173698c9] user: drh branch: trunk, size: 58717)
2008-01-09
23:04
[8630ee92] part of check-in [e3cf1c1c] All essential opcodes can now operate out of registers and completely avoid the stack. Many still optionally use the stack to support legacy code generation, but the stack is not required. The next step is to update all code generation to avoid using the stack. (CVS 4700) (check-in: [e3cf1c1c] user: drh branch: trunk, size: 58876)
02:15
[4443b902] part of check-in [92deff07] Continued work toward converting to a register-based VM. (CVS 4698) (check-in: [92deff07] user: drh branch: trunk, size: 58866)
2008-01-08
23:54
[c79591d6] part of check-in [8862ce9c] Registerify the comparison opcodes. (CVS 4697) (check-in: [8862ce9c] user: drh branch: trunk, size: 58875)
18:57
[e46f25f5] part of check-in [5fd10367] Finish registerizing the core logic of INSERT and UPDATE. (CVS 4696) (check-in: [5fd10367] user: drh branch: trunk, size: 58820)
02:57
[3a451020] part of check-in [b9bf509e] Progress toward registerification of the constraint checking logic for INSERT and UPDATE. (CVS 4693) (check-in: [b9bf509e] user: drh branch: trunk, size: 59022)
2008-01-07
19:20
[9c1a6501] part of check-in [aa48867c] Registerify the AUTOINCREMENT processing and the OP_IsNull and OP_NotNull operators. (CVS 4692) (check-in: [aa48867c] user: drh branch: trunk, size: 58551)
2008-01-06
00:25
[20325a8c] part of check-in [8201f717] Registerify the SRT_Subroutine destination for SELECT results. (CVS 4690) (check-in: [8201f717] user: drh branch: trunk, size: 57685)
2008-01-05
05:20
[70829937] part of check-in [3e8a07dd] Register-ify the OP_AddImm and all casting opcodes. Omit the OP_MemIncr opcode. (CVS 4683) (check-in: [3e8a07dd] user: drh branch: trunk, size: 57590)
04:06
[fb46be04] part of check-in [cc149eb9] Get rid of OP_Dup, OP_MemStore, OP_MemLoad, and OP_MemMove. Replace with OP_Copy, OP_SCopy, and OP_Move. Add the infrastructure for operation properties in1, in2, in3, out2, and out3 but do not yet use any of these. (CVS 4682) (check-in: [cc149eb9] user: drh branch: trunk, size: 57591)
2008-01-04
22:01
[907fa2df] part of check-in [fe057a88] Implement the out2-prerelease opcode design pattern. (CVS 4681) (check-in: [fe057a88] user: drh branch: trunk, size: 57837)
19:10
[9011065e] part of check-in [d9ac6bee] Some modifications to insert.c to work without using the stack. (CVS 4678) (check-in: [d9ac6bee] user: danielk1977 branch: trunk, size: 57859)
13:24
[7a8c8259] part of check-in [173f2813] Modify the code generated for a DELETE to use registers instead of the vdbe stack. (CVS 4675) (check-in: [173f2813] user: danielk1977 branch: trunk, size: 57156)
2008-01-03
23:44
[ecffad8e] part of check-in [61bfb77c] Change the sqlite3ExprCode() function so that callers can request that the result of the expression be left on the stack or in a register. (CVS 4673) (check-in: [61bfb77c] user: drh branch: trunk, size: 57089)
18:03
[febae80d] part of check-in [0b849805] Registers (aka memory cells) in the VM are now numbered starting with 1 instead of 0. A register number of 0 means "no such register". (CVS 4669) (check-in: [0b849805] user: drh branch: trunk, size: 57071)
17:31
[b5e3def1] part of check-in [955b15a0] Modify OP_VUpdate to read arguments from a range of memory cells instead of from the stack. (CVS 4668) (check-in: [955b15a0] user: danielk1977 branch: trunk, size: 57081)
11:50
[b952904a] part of check-in [7e8330c8] Change the VdbeOp.p4 union to include specific pointer types for the various values of VdbeOp.p4type. (CVS 4667) (check-in: [7e8330c8] user: danielk1977 branch: trunk, size: 57020)
09:51
[195072a6] part of check-in [46501f49] Change the OP_Insert opcode to read the key and data to insert from memory cells, not the stack. (CVS 4666) (check-in: [46501f49] user: danielk1977 branch: trunk, size: 57025)
07:54
[c76fbbed] part of check-in [35da261d] Change OP_OpenRead and OP_OpenWrite so that the database number is read from the P3 operand, not the stack. (CVS 4663) (check-in: [35da261d] user: danielk1977 branch: trunk, size: 57064)
00:01
[6c8bbffd] part of check-in [027875e4] Refactoring the VM. The P3 parameter is changed to P4. A P5 parameter is added (though not currently used.) Add routines sqlite3VdbeAddOpX() where X is one of 0, 1, 2, 3, or 4. (CVS 4660) (check-in: [027875e4] user: drh branch: trunk, size: 57334)
2008-01-02
16:27
[5b806110] part of check-in [86dcdfe6] Combine the eDest and iParm arguments to sqlite3Select() into a single type - "SelectDest". (CVS 4657) (check-in: [86dcdfe6] user: danielk1977 branch: trunk, size: 57133)
11:50
[1946d8c7] part of check-in [f1966a8a] 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: [f1966a8a] user: danielk1977 branch: trunk, size: 57075)
00:34
[355c4826] part of check-in [051ec01f] Begin setting a foundation on which to convert the VM from a stack-based to a register-based machine. Everything is still mostly stack based with this check-in. This change merely begins adding infrastructure to support a register-based architecture. (CVS 4652) (check-in: [051ec01f] user: drh branch: trunk, size: 57539)
2008-01-01
19:02
[3c82c974] part of check-in [e08a33ed] Optimize trigger compilation to avoid populating the OLD.* and NEW.* pseudo-tables with data that will never be used. Some testing to come. (CVS 4651) (check-in: [e08a33ed] user: danielk1977 branch: trunk, size: 57591)
2007-12-14
16:11
[2b145fca] part of check-in [86f45d7b] Fix a typo in the previous check-in. Also simplify a line in select.c. (CVS 4631) (check-in: [86f45d7b] user: drh branch: trunk, size: 57571)
15:12
[dc29839e] part of check-in [b821b6ed] Fix an out-of-memory NULL pointer defer in the code generator. Ticket #2843. (CVS 4630) (check-in: [b821b6ed] user: drh branch: trunk, size: 57571)
2007-12-12
17:42
[c7e1867a] part of check-in [12c3029b] Try to find some more stack leaks by adding OP_StackDepth to loops in DML statements. None were found. (CVS 4617) (check-in: [12c3029b] user: danielk1977 branch: trunk, size: 57557)
2007-11-27
14:46
[a090c725] part of check-in [f4c8f2d1] Update the version number to 3.5.3. Fix some minor testing problems. (CVS 4563) (check-in: [f4c8f2d1] user: drh branch: trunk, size: 57453)
2007-11-23
15:02
[86fe24ca] part of check-in [492b39b6] Make sure that INSERT INTO ... SELECT ... always uses an ephemeral intermediate table if the SELECT clause refers to the destination table, even if the SELECT clause is compound or uses the destination table in a subquery. This fixes a long-standing bug that can cause an infinite loop for some SQL statements. (CVS 4552) (check-in: [492b39b6] user: drh branch: trunk, size: 57413)
2007-09-03
17:30
[df9712e1] part of check-in [75af7189] Remove an unreachable case from xferOptimization(). Also other minor test coverage improvements. (CVS 4383) (check-in: [75af7189] user: danielk1977 branch: trunk, size: 56988)
2007-08-29
13:45
[b11e5ca0] part of check-in [d8ef7024] Be careful to verify the schema cookie when running the xfer optimization on INSERT statements. (CVS 4322) (check-in: [d8ef7024] user: drh branch: trunk, size: 56988)
2007-08-16
12:24
[633322ae] part of check-in [ba80ee59] Combine sqlite3DbOfVdbe() and sqlite3VdbeDb() into a single function. (CVS 4236) (check-in: [ba80ee59] user: drh branch: trunk, size: 56945)
04:30
[bca11ad7] part of check-in [deb7ecd6] Half-way through a major refactoring of the memory allocation. I have not even attempted to compile so I am certain there are countless errors. (CVS 4231) (check-in: [deb7ecd6] user: drh branch: trunk, size: 56949)
2007-07-23
19:39
[ca135e91] part of check-in [b213614a] The REPLACE conflict resolution falls back to FAIL when on a CHECK constraint violation. Ticket #2525. (CVS 4178) (check-in: [b213614a] user: drh branch: trunk, size: 56861)
2007-06-26
10:38
[89d18442] part of check-in [7f887a6a] Allow virtual tables to mark columns as 'hidden'. Hidden columns do not show up in "*" expansion, the implicit column list of an INSERT statement, or the results of a "PRAGMA table_info" statement. (CVS 4127) (check-in: [7f887a6a] user: danielk1977 branch: trunk, size: 56892)
2007-05-04
13:15
[e595ca26] part of check-in [ba4845b3] Eliminate all uses of sprintf() and strcpy(). These were not being misused. But getting rid of them removes a library dependency. And it avoids warnings from the OpenBSD compiler. Ticket #2336. (CVS 3916) (check-in: [ba4845b3] user: drh branch: trunk, size: 56378)
2007-04-18
14:24
[413cc069] part of check-in [175156d1] Minor changes (mainly to assert() macros) to handle malloc failure in vtab operations. (CVS 3851) (check-in: [175156d1] user: danielk1977 branch: trunk, size: 56208)
2007-04-10
18:17
[f3cd1785] part of check-in [34fec312] Preliminary fix for ticket #2291. This fixes the immediate problem. But we really need to write more tests for the xfer optimization in order to look for other related problems before closing this ticket. (CVS 3835) (check-in: [34fec312] user: drh branch: trunk, size: 56193)
2007-04-01
23:49
[967be8c1] part of check-in [18aec1dd] Fix some warnings about unused and uninitialized variables. (CVS 3788) (check-in: [18aec1dd] user: drh branch: trunk, size: 56364)
2007-03-31
13:00
[664e4cca] part of check-in [2c62ffcb] The XFER optimization works if the target table lacks an integer primary key and is not empty as long as it has no indices. It always has and continues to work if the target table was empty. (CVS 3779) (check-in: [2c62ffcb] user: drh branch: trunk, size: 56364)
2007-03-29
13:35
[aa61e778] part of check-in [3714ac17] Fix a bug in XFER optimization introduced by check-in (3736). (CVS 3744) (check-in: [3714ac17] user: drh branch: trunk, size: 56106)
05:51
[bdd1e2b4] part of check-in [ad4a6b1a] 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: [ad4a6b1a] user: drh branch: trunk, size: 56083)
00:08
[80b1cc84] part of check-in [72cea358] Patch so the the code compiles with -DSQLITE_OMIT_CHECK=1. (CVS 3737) (check-in: [72cea358] user: drh branch: trunk, size: 55470)
2007-03-28
18:04
[4233b644] part of check-in [53fff7d1] Improvements to the XFER Optimization of the INSERT statement. (CVS 3736) (check-in: [53fff7d1] user: drh branch: trunk, size: 55437)
2007-03-27
12:04
[9dbb62ba] part of check-in [42c03851] Get the -DSQLITE_OMIT_XFER_OPT option working. Run speed tests on a full regression. Add the script for generating sqlite3.c. (CVS 3723) (check-in: [42c03851] user: drh branch: trunk, size: 55327)
2007-02-24
15:18
[72cb64b6] part of check-in [2bf5475b] Additional test cases added. Improvements to the INSERT transfer optimization. (CVS 3662) (check-in: [2bf5475b] user: drh branch: trunk, size: 55325)
13:53
[e0a6288f] part of check-in [83098581] Additional tests and some improvements to the INSERT transfer optimization. More testing is needed. (CVS 3661) (check-in: [83098581] user: drh branch: trunk, size: 55308)
13:23
[e1398c41] part of check-in [6fc18275] Make sure the INSERT xfer optimization does not trigger if the CHECK constraints on the two tables are not identical. Ticket #2252. (CVS 3660) (check-in: [6fc18275] user: drh branch: trunk, size: 54952)
2007-02-13
15:01
[c7cb4894] part of check-in [9f56a878] Add a new algorithm for handling INSERT which reduces fragmentation on a VACUUM. Ticket #2075. More testing needed. (CVS 3643) (check-in: [9f56a878] user: drh branch: trunk, size: 54786)
2006-08-29
18:46
[e9526ced] part of check-in [79124857] Bug fix: Get INSERT INTO ... SELECT working when the target is a virtual table. (CVS 3374) (check-in: [79124857] user: drh branch: trunk, size: 40307)
2006-08-25
23:42
[924d3cdd] part of check-in [bc84cb54] Add support for INSERT INTO ... DEFAULT VALUES. Tickets #299, #1940. (CVS 3368) (check-in: [bc84cb54] user: drh branch: trunk, size: 40291)
2006-06-19
03:05
[63f01d3f] part of check-in [144d0eb1] Add tests to ensure an INSERT/UPDATE/DELETE immediately after virtual table construction does not fail. (CVS 3270) (check-in: [144d0eb1] user: danielk1977 branch: trunk, size: 40292)
2006-06-16
16:08
[5c1fddd7] part of check-in [61251402] Add code to invoke the virtual table transaction interface. Untested at this point. (CVS 3261) (check-in: [61251402] user: danielk1977 branch: trunk, size: 40210)
06:17
[09440829] part of check-in [afa39a46] Arrange for sqlite3_last_insert_rowid() to work with virtual tables. (CVS 3259) (check-in: [afa39a46] user: danielk1977 branch: trunk, size: 40175)
2006-06-15
07:29
[eba160c6] part of check-in [88fa510e] Simple tests and fixes for writing to virtual tables. (CVS 3252) (check-in: [88fa510e] user: danielk1977 branch: trunk, size: 40175)
2006-06-14
19:00
[bda00a0e] part of check-in [32c97b88] Added code to INSERT, DELETE and UPDATE virtual tables. The new code is mostly untested. (CVS 3248) (check-in: [32c97b88] user: drh branch: trunk, size: 40167)
2006-06-11
23:41
[2c3eeb4b] part of check-in [898ec36b] Progress toward CREATE VIRTUAL TABLE. Still not even close to working... (CVS 3211) (check-in: [898ec36b] user: drh branch: trunk, size: 39684)
2006-03-15
16:26
[1ae4b8ff] part of check-in [c0d20fa9] Fix CHECK constraints to use alternative conflict resolution. Ticket #1717. (CVS 3137) (check-in: [c0d20fa9] user: drh branch: trunk, size: 39682)
2006-03-06
20:55
[2b0eb1f7] part of check-in [e510e6dd] Code changes resulting from Coverity analysis. http://scan.coverity.com/ Found 1 potential segfault in sqlite3_mprintf(). Also 2 failures to fclose() following a malloc() failure. And lots of cases where unnecessary conditionals could be removed from the code. (CVS 3126) (check-in: [e510e6dd] user: drh branch: trunk, size: 39433)
2006-02-24
02:53
[ae51e360] part of check-in [4b22e4b8] Remove unused parameters on internal APIs. Suppress warnings from CodeWarrior. (CVS 3110) (check-in: [4b22e4b8] user: drh branch: trunk, size: 39449)
2006-02-10
02:27
[67b3dc11] part of check-in [82f502cd] Add the column_origin_name() etc. APIs. (CVS 3069) (check-in: [82f502cd] user: danielk1977 branch: trunk, size: 39469)
2006-01-24
12:09
[7e931b7f] part of check-in [d86f18a4] Rename some variables to avoid hiding others. Also add "static" to two function signatures that were missing it. (CVS 3024) (check-in: [d86f18a4] user: danielk1977 branch: trunk, size: 39455)
2006-01-20
18:10
[4d37e285] part of check-in [507653a9] More compiler warnings fixed - or in some cases comments are added to explain that the compiler is wrong. (CVS 2984) (check-in: [507653a9] user: drh branch: trunk, size: 39447)
2006-01-18
16:51
[4f338c85] part of check-in [ac090f2a] Use a global variable protected by a mutex instead of thread-specific-data to record malloc() failures. (CVS 2972) (check-in: [ac090f2a] user: danielk1977 branch: trunk, size: 39454)
2006-01-11
21:41
[a5595cf8] part of check-in [5d9c6aa9] Automatically deallocate thread-specific data when it is no longer being used. Ticket #1601. Also implemented the suggestion of ticket #1603. Memory management is now off by default at compile-time. The sqlite3_enable_memory_management() API has been removed. (CVS 2919) (check-in: [5d9c6aa9] user: drh branch: trunk, size: 39486)
2006-01-10
17:58
[33778513] part of check-in [0f0213be] Store collation sequence names instead of pointers in sharable schema data structures. (CVS 2904) (check-in: [0f0213be] user: danielk1977 branch: trunk, size: 39456)
2006-01-09
06:29
[16610475] part of check-in [82b81f69] Rename DbSchema to "Schema" and SqliteTsd to "ThreadData". (CVS 2893) (check-in: [82b81f69] user: danielk1977 branch: trunk, size: 39623)
2006-01-08
18:10
[59f8c1f9] part of check-in [b2ac0be0] Get LIMIT and OFFSET working again for negative limits and offsets. Ticket #1586. (CVS 2889) (check-in: [b2ac0be0] user: drh branch: trunk, size: 39603)
2006-01-07
13:21
[66f2e745] part of check-in [23b587b0] In shared-cache mode, lock all required tables before beginning to execute the body of the statement program. (CVS 2881) (check-in: [23b587b0] user: danielk1977 branch: trunk, size: 39611)
2006-01-05
11:34
[d167f9d4] part of check-in [deeda0dc] Add the shared schema/pager modifications. Very few tests so far. (CVS 2859) (check-in: [deeda0dc] user: danielk1977 branch: trunk, size: 39936)
2005-12-15
15:22
[a5629e46] part of check-in [36229018] Add the sqlite3_update_hook() API. (CVS 2820) (check-in: [36229018] user: danielk1977 branch: trunk, size: 39771)
2005-12-06
12:52
[53934791] part of check-in [e1606658] Some elements of the new malloc() failure handling. Not all cases work properly yet. Also, library is not threadsafe if malloc() fails right now. (CVS 2800) (check-in: [e1606658] user: danielk1977 branch: trunk, size: 39656)
2005-11-24
13:15
[da031c3e] part of check-in [a2e55a38] Fix incorrect type conversions when copying from a table into itself. Ticket #1536. (CVS 2773) (check-in: [a2e55a38] user: drh branch: trunk, size: 39638)
2005-11-14
22:29
[e57626da] part of check-in [ce06c123] Create separate affinities for INTEGER and REAL. (CVS 2766) (check-in: [ce06c123] user: drh branch: trunk, size: 39576)
2005-11-03
02:15
[e04b27e0] part of check-in [be83bfee] Add the ignore_check_constraints pragma. VACUUM works even on a database that contains table entries that violate check constraints. (CVS 2757) (check-in: [be83bfee] user: drh branch: trunk, size: 39576)
01:22
[c8f12b46] part of check-in [55b314a2] CHECK constraints that evaluate to NULL pass. (CVS 2755) (check-in: [55b314a2] user: drh branch: trunk, size: 39528)
00:41
[b814e8d7] part of check-in [2313d912] First cut at supporting CHECK constraints. Everything appears to work, but much more testing is needed as well as documentation. (CVS 2754) (check-in: [2313d912] user: drh branch: trunk, size: 39528)
2005-11-01
15:48
[b7757ac3] part of check-in [e0d6f61c] Omit the SQLITE_AFF_INTEGER type affinity. All numeric values are now of type real, though an integer representation is still sometimes used internally for efficiency. (CVS 2753) (check-in: [e0d6f61c] user: drh branch: trunk, size: 39127)
2005-09-20
17:42
[1f51566d] part of check-in [2471957f] Code cleanup and simplification. Three new Mem opcodes added. The sqlite3VdbeJumpHere function added. (CVS 2730) (check-in: [2471957f] user: drh branch: trunk, size: 39181)
2005-07-21
18:23
[484c73bc] part of check-in [e2f822ac] Split the OP_Integer opcode into OP_Integer and OP_Int64. This allows comments to be added to OP_Integer. Cleanup in the optimizer. Allow terms of the FROM clause to be reordered automatically. (CVS 2556) (check-in: [e2f822ac] user: drh branch: trunk, size: 39447)
2005-07-08
17:13
[c4533240] part of check-in [3bb9ce5f] Change the name of the OpenTemp opcode to OpenVirtual which is more descriptive of what it does. (CVS 2541) (check-in: [3bb9ce5f] user: drh branch: trunk, size: 39404)
2005-06-24
03:53
[d6175250] part of check-in [06a71b16] NULL values in a row of a unique index cause the row to be distinct. Ticket #1301. More testing and optimization needs to be done on this before closing the ticket. (CVS 2526) (check-in: [06a71b16] user: drh branch: trunk, size: 39401)
2005-06-12
21:35
[8c0868a9] part of check-in [36f2da1f] Update older opcode names to be more meaningful in light of the latest code design. (CVS 2506) (check-in: [36f2da1f] user: drh branch: trunk, size: 39449)
2005-03-21
01:20
[34c25c33] part of check-in [876d09d9] Fix an infinite loop in the code generator for INSERT. Ticket #1140. (CVS 2410) (check-in: [876d09d9] user: drh branch: trunk, size: 39464)
2005-03-16
12:15
[7e6b123b] part of check-in [9a358fc3] Fix some memory leaks that can occur if a memory allocation fails. (CVS 2388) (check-in: [9a358fc3] user: danielk1977 branch: trunk, size: 39459)
2005-02-08
08:42
[0456649d] part of check-in [c54ad212] Fix a buggy interaction between "INSERT ... SELECT" processing and optimization (2170). (CVS 2319) (check-in: [c54ad212] user: danielk1977 branch: trunk, size: 39485)
2005-01-29
08:32
[6ab59684] part of check-in [b1b50f31] Modify sub-query handling. Tickets #1083 and #1084. (CVS 2286) (check-in: [b1b50f31] user: danielk1977 branch: trunk, size: 39079)
2005-01-20
11:32
[037eb466] part of check-in [5b1a9bf6] Extend the influence of a couple of SQLITE_OMIT_** macros a little bit. (CVS 2243) (check-in: [5b1a9bf6] user: danielk1977 branch: trunk, size: 38980)
2005-01-19
23:24
[e5f9a24e] part of check-in [d8b2a7e0] Continued refactoring of the name resolution logic and query optimizer. (CVS 2236) (check-in: [d8b2a7e0] user: drh branch: trunk, size: 38729)
2005-01-18
04:00
[18d506e1] part of check-in [0142ae6f] Refinements to the name resolution logic. Change the name of the keywordhash.c file to keywordhash.h. (CVS 2229) (check-in: [0142ae6f] user: drh branch: trunk, size: 38726)
2005-01-17
22:08
[0acf8a8c] part of check-in [4a753439] Infrastructure changes to handle name resolution differently. This is needed to fix various long-standing problems with column names in joins. It will also make the implementation of correlated subqueries easier. (CVS 2228) (check-in: [4a753439] user: drh branch: trunk, size: 38728)
2005-01-14
01:22
[2a8fadfd] part of check-in [c772f751] Improved test coverage on insert.c. (CVS 2210) (check-in: [c772f751] user: drh branch: trunk, size: 38729)
2005-01-10
02:48
[f6b69e40] part of check-in [6c7bec1b] Fix an assertion failure due to interaction between the count_changes pragma and triggers. (CVS 2187) (check-in: [6c7bec1b] user: danielk1977 branch: trunk, size: 38772)
2004-12-07
15:41
[0b9077c6] part of check-in [4852186a] Only evaluate expressions once for UPDATE and INSERT statements that have BEFORE triggers. Fix for ticket #980. (CVS 2158) (check-in: [4852186a] user: drh branch: trunk, size: 38742)
14:06
[094972cc] part of check-in [8e164ab2] Simplify the trigger logic for DELETE, INSERT, and UPDATE. (CVS 2157) (check-in: [8e164ab2] user: drh branch: trunk, size: 38734)
2004-11-13
03:48
[9524a6c3] part of check-in [10c712a2] Autoincrement is now working and has regression tests. (CVS 2095) (check-in: [10c712a2] user: drh branch: trunk, size: 39154)
2004-11-12
03:56
[e80b009f] part of check-in [8fde833c] Autoincrement code installed. Simple smoke-testing only. No regression tests developed yet. (CVS 2091) (check-in: [8fde833c] user: drh branch: trunk, size: 37772)
2004-11-09
12:44
[8bd40dc5] part of check-in [0d27c8ff] Port the "DEFAULT CURRENT_TIME" etc. functionality from an earlier fork of sqlite. (CVS 2082) (check-in: [0d27c8ff] user: danielk1977 branch: trunk, size: 36615)
2004-11-05
17:17
[3fd6e00c] part of check-in [b0506bdd] Create table now works with sqlite3NestedParse. This changed uncovered a latent bug in xprintf which is also fixed. (CVS 2069) (check-in: [b0506bdd] user: drh branch: trunk, size: 36676)
06:02
[b6ad8e90] part of check-in [296a298c] When using sqlite3NestedParse() to modify the sqlite_master table, do not code OP_Callback. (CVS 2063) (check-in: [296a298c] user: danielk1977 branch: trunk, size: 36602)
2004-11-04
04:42
[17f66e2c] part of check-in [c33b3a61] All tests pass even if OMIT_TRIGGER is defined. (CVS 2053) (check-in: [c33b3a61] user: drh branch: trunk, size: 36447)
2004-10-31
02:22
[64a37165] part of check-in [be661acf] Insert #ifdefs that can optionally remove features at compiletime resulting in a database engine with a smaller footprint. (CVS 2034) (check-in: [be661acf] user: drh branch: trunk, size: 36412)
2004-10-05
02:41
[7e8ce883] part of check-in [81ff8107] Add support for DEFERRED, IMMEDIATE, and EXCLUSIVE transactions. (CVS 2000) (check-in: [81ff8107] user: drh branch: trunk, size: 36135)
2004-09-19
02:15
[2c10c001] part of check-in [4871c77f] Add comments to unused P3 fields of selected instructions when NDEBUG is not defined. This makes VDBE program dumps more readable during debugging. (CVS 1973) (check-in: [4871c77f] user: drh branch: trunk, size: 36172)
2004-09-17
17:23
[1f2d34d6] part of check-in [709bb22d] The INSERT code generator does a better job of detecting if the table being written into is used in the SELECT on the right-hand side. ticket #901. (CVS 1961) (check-in: [709bb22d] user: drh branch: trunk, size: 36131)
2004-09-06
17:24
[bfd21070] part of check-in [3ddf5a9d] Fix a naming conflict between sqlite versions 2 and 3. An open sqlite3 connection now *must* be called "sqlite3". You cannot call it "sqlite". This might break existing code. (CVS 1941) (check-in: [3ddf5a9d] user: drh branch: trunk, size: 36056)
2004-08-21
17:54
[fc1ce65a] part of check-in [bd6649c5] Optimizations to the code generator. (CVS 1899) (check-in: [bd6649c5] user: drh branch: trunk, size: 36056)
2004-07-24
17:38
[bedcba37] part of check-in [ebdb661e] Prepared statements now work with CREATE and DROP. All tests pass. No memory leaks. (CVS 1866) (check-in: [ebdb661e] user: drh branch: trunk, size: 36123)
2004-06-21
06:50
[d99ffe87] part of check-in [ae2f4a09] Update sqlite3_changes() to match the documentation and add sqlite3_total_changes(). (CVS 1645) (check-in: [ae2f4a09] user: danielk1977 branch: trunk, size: 36147)
2004-06-17
07:53
[1428887f] part of check-in [a71a9ff1] Remove redundant opcodes OP_MakeKey and OP_MakeIdxKey. (CVS 1612) (check-in: [a71a9ff1] user: danielk1977 branch: trunk, size: 36163)
2004-06-16
12:00
[15575e57] part of check-in [6001c5e1] Trivial modifications to prevent compiler warnings. (CVS 1606) (check-in: [6001c5e1] user: danielk1977 branch: trunk, size: 36115)
2004-06-10
10:50
[68c7f3dd] part of check-in [edf069b9] Add the sqlite3_collation_needed() API and fix some error handling cases involving unknown collation sequences. (CVS 1562) (check-in: [edf069b9] user: danielk1977 branch: trunk, size: 36113)
2004-05-31
08:55
[4268d9e3] part of check-in [9029274b] Remove the <ON CONFLICT> clause from BEGIN (CVS 1501) (check-in: [9029274b] user: danielk1977 branch: trunk, size: 35912)
2004-05-29
11:24
[0c7966db] part of check-in [3225de89] Transform OP_HexBlob and OP_String8 to OP_Blob and OP_String the first time they are executed. (CVS 1492) (check-in: [3225de89] user: danielk1977 branch: trunk, size: 36170)
2004-05-26
10:11
[dd117e8b] part of check-in [d5659f2e] Add some tests for the new API. Many more to come. (CVS 1462) (check-in: [d5659f2e] user: danielk1977 branch: trunk, size: 36166)
2004-05-25
23:35
[48bb15bf] part of check-in [9385ad5c] Move the sqlite3_exec() function to legacy.c. (CVS 1455) (check-in: [9385ad5c] user: danielk1977 branch: trunk, size: 36177)
2004-05-20
22:16
[e510d62d] part of check-in [a6cb09d7] Add internal support for collating sequences. This breaks 244 tests. (CVS 1420) (check-in: [a6cb09d7] user: drh branch: trunk, size: 36136)
02:42
[04865f0a] part of check-in [bf2181f1] Bug fix associated with OP_SetNumColumns in insert.c. Also changed a variable name in OP_Column. (CVS 1413) (check-in: [bf2181f1] user: drh branch: trunk, size: 36128)
2004-05-19
14:56
[0ee4c403] part of check-in [8f249c45] Change opcode names and comments to better describe the operation of the incrKey flag. OP_MoveTo becomes OP_MoveGe. (CVS 1407) (check-in: [8f249c45] user: drh branch: trunk, size: 36131)
2004-05-18
09:58
[60cc57b8] part of check-in [a62872aa] Fix many problems with manifest types and column affinity. Most things are working now. (CVS 1392) (check-in: [a62872aa] user: danielk1977 branch: trunk, size: 36142)
01:23
[72d9dd0b] part of check-in [202a470f] 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: [202a470f] user: danielk1977 branch: trunk, size: 36074)
2004-05-17
10:48
[656a648a] part of check-in [0f6c9b05] More changes to support the new types model. Compound SELECTs are currently broken. (CVS 1389) (check-in: [0f6c9b05] user: danielk1977 branch: trunk, size: 35950)
2004-05-16
11:15
[76e13b73] part of check-in [a4af838f] More changes to support the manifest type model. A few things are currently broken. (CVS 1385) (check-in: [a4af838f] user: danielk1977 branch: trunk, size: 35949)
2004-05-14
11:00
[5d4d1a59] part of check-in [dbfe6e93] Implement type affinity for table and index records (CVS 1375) (check-in: [dbfe6e93] user: danielk1977 branch: trunk, size: 34716)
2004-05-11
07:11
[1e63d277] part of check-in [dfde1121] Remove code dealing with old file formats. (CVS 1354) (check-in: [dfde1121] user: danielk1977 branch: trunk, size: 33203)
2004-05-10
10:34
[2d082257] part of check-in [ba2ba242] Change the names of external symbols from sqlite_XXX to sqlite3_XXX. (CVS 1337) (check-in: [ba2ba242] user: danielk1977 branch: trunk, size: 33236)
2004-05-08
08:23
[954c0dda] part of check-in [8af6474c] Change lots of internal symbols from sqliteXXX to sqlite3XXX so that the library links again. It doesn't work yet, due to changes in the btree layer calling convention. (CVS 1324) (check-in: [8af6474c] user: danielk1977 branch: trunk, size: 33232)
2004-02-24
01:05
[c0485ee2] part of check-in [5b0147ae] Refactor parts of write operations. (CVS 1268) (check-in: [5b0147ae] user: drh branch: trunk, size: 33057)
2004-02-22
20:05
[c59f59fb] part of check-in [51f1e8f7] Use sqliteVdbeOp3 instead of sqliteVdbeChangeP3 where applicable. (CVS 1266) (check-in: [51f1e8f7] user: drh branch: trunk, size: 32844)
2004-02-20
22:53
[ad2902c1] part of check-in [3383413a] Fixed behaviour of last_insert_rowid() with triggers and add last_statement_change_count() function that works correctly with triggers. (CVS 1251) (check-in: [3383413a] user: rdc branch: trunk, size: 33150)
2004-02-16
03:44
[f0a95cb6] part of check-in [f7213485] Remove the NullCallback opcode. Handle the empty_result_set pragma inside the sqlite_exec() function. (CVS 1244) (check-in: [f7213485] user: drh branch: trunk, size: 33035)
2003-12-06
21:43
[01f66866] part of check-in [656c9038] Always use "(char*)0" to terminate the argument list of sqliteSetString(). This is needed for 64-bit systems that use a 32-bit integer by default. (CVS 1126) (check-in: [656c9038] user: drh branch: trunk, size: 33035)
2003-08-05
13:13
[dc200ae0] part of check-in [086aa1c9] Provide a more informative error message when a uniqueness constraint fails. Ticket #419. (CVS 1068) (check-in: [086aa1c9] user: drh branch: trunk, size: 33028)
2003-06-04
16:24
[fc4c26a0] part of check-in [af6f2bdf] Fix a bug in UPDATE OR REPLACE that was introduced by check-in (999). Also clean up some compiler warnings for VC++. (CVS 1005) (check-in: [af6f2bdf] user: drh branch: trunk, size: 32318)
12:23
[6a61c6d1] part of check-in [e813faae] Avoid corrupting indices when doing a REPLACE on a table with an INTEGER PRIMARY KEY that also has another index. Ticket #334. (CVS 999) (check-in: [e813faae] user: drh branch: trunk, size: 32326)
2003-06-01
01:10
[e34301f4] part of check-in [903adbe8] Add the ability to INSERT or UPDATE using the "rowid" column even on tables that lack an integer primary key. (CVS 991) (check-in: [903adbe8] user: drh branch: trunk, size: 32098)
2003-05-17
17:35
[2f26b95c] part of check-in [01398fb7] 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: [01398fb7] user: drh branch: trunk, size: 31910)
2003-05-16
02:30
[fac16589] part of check-in [0f92736d] Make sure the ON CONFLICT clause on a BEGIN overrides the conflict resolution specified by an index. This fixes a bug reported on the newsgroup. (CVS 975) (check-in: [0f92736d] user: drh branch: trunk, size: 31945)
2003-05-02
14:32
[c230a8c2] part of check-in [be7aed20] VDBE cursors numbers for tables in a join do not have to be consecutive. This is one step on the road to fixing ticket #272. (CVS 947) (check-in: [be7aed20] user: drh branch: trunk, size: 31876)
2003-04-24
01:45
[19882be1] part of check-in [206b1739] Fix some issues with INSTEAD OF triggers. (CVS 930) (check-in: [206b1739] user: drh branch: trunk, size: 31874)
2003-04-22
20:30
[350167db] part of check-in [c675a550] Update the authorizer API so that it reports the database that table and indices belong to and so that it reports when actions are taken in response to a trigger. (CVS 928) (check-in: [c675a550] user: drh branch: trunk, size: 31952)
2003-04-20
17:29
[ae9ffb52] part of check-in [fb89adf4] Added tests for the in-memory database backend. Also updated some comments in other modules. (CVS 924) (check-in: [fb89adf4] user: drh branch: trunk, size: 31812)
2003-04-15
19:22
[45d27e3e] part of check-in [0b996959] Get triggers working on tables with INTEGER PRIMARY KEYs. Ticket #291. This may also fix #159. Still need to add tests so both bugs remain open for the time being. (CVS 908) (check-in: [0b996959] user: drh branch: trunk, size: 31545)
2003-04-03
01:50
[e2f5e7fe] part of check-in [087d1e83] Use a intermediate table when inserting a TEMP table from a SELECT that reads from that same TEMP table. Ticket #275. (CVS 895) (check-in: [087d1e83] user: drh branch: trunk, size: 29995)
2003-03-31
02:12
[dad4d914] part of check-in [1d3fc977] Add the sqliteErrorMsg() function and use it to generate error message text during parsing and code generation. This simplifies the code somewhat and makes it easier to handle names with a database prefix. (CVS 891) (check-in: [1d3fc977] user: drh branch: trunk, size: 29615)
2003-03-27
13:50
[95e7ab3f] part of check-in [8a593e9c] 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: [8a593e9c] user: drh branch: trunk, size: 29954)
12:51
[8d23a2d9] part of check-in [d2fb2bb5] Changes to the "sqlite" structure that allow simultaneous operations on multiple database files. Many regession tests pass - but not all of them. Do not use this version except for debugging SQLite itself. (CVS 883) (check-in: [d2fb2bb5] user: drh branch: trunk, size: 30056)
2003-03-20
01:16
[1f31bdec] part of check-in [a5d8fc95] Record the database name in addition to the table name for DELETE, INSERT, and UPDATE statements. (CVS 879) (check-in: [a5d8fc95] user: drh branch: trunk, size: 30049)
2003-03-19
03:14
[02ac6147] part of check-in [875da9ee] Modifications to the VDBE to support more than one database file. (CVS 878) (check-in: [875da9ee] user: drh branch: trunk, size: 30065)
2003-01-29
18:46
[13c2ef89] part of check-in [ccc82f1a] Better error messages on constraint violations. Additional tests and bug fixes for the callback-free API. (CVS 854) (check-in: [ccc82f1a] user: drh branch: trunk, size: 29991)
2003-01-13
23:27
[db954e95] part of check-in [45de93f9] 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: [45de93f9] user: drh branch: trunk, size: 29640)
2003-01-12
19:33
[d19a7390] part of check-in [5707b3d5] The initial round of tests for the sqlite_set_authorizer() API. More are needed before release. Ticket #215. (CVS 829) (check-in: [5707b3d5] user: drh branch: trunk, size: 29687)
18:02
[0ea9427f] part of check-in [52d5007f] Initial check-in of the code for the new sqlite_set_authorizer() API function. The code is mostly untested at this point. (CVS 827) (check-in: [52d5007f] user: drh branch: trunk, size: 29615)
2003-01-11
13:30
[74018ec7] part of check-in [86deb12d] Remove the ColumnCount opcode, which had become a no-op. (CVS 821) (check-in: [86deb12d] user: drh branch: trunk, size: 29547)
2002-09-14
13:47
[764300a0] part of check-in [3f253afe] Do not put a write lock on the main database file when writing to a temporary table. (CVS 750) (check-in: [3f253afe] user: drh branch: trunk, size: 29593)
2002-08-28
03:00
[a2f54550] part of check-in [723362e7] Slightly faster INSERTs from a SELECT by avoiding an intermediate table. But it didn't make nearly as much difference as I had hoped. (CVS 732) (check-in: [723362e7] user: drh branch: trunk, size: 29547)
2002-07-31
00:32
[8aefc998] part of check-in [04973fc2] Fix for ticket #104: Make triggers on views work properly even after closing and reopening the database. Also fixed an unrelated bug in the version 2.6.0 database format upgrade logic. The upgrade logic bug was found while testing the trigger fixes. (CVS 697) (check-in: [04973fc2] user: drh branch: trunk, size: 24963)
2002-07-18
00:34
[9bc79486] part of check-in [20d152fc] Fix for ticket #107: Fix a design defect in indices that was causing queries to fail when using an index on a column containing an empty string. This fix is an incompatible file-format change. (CVS 681) (check-in: [20d152fc] user: drh branch: trunk, size: 24781)
2002-07-05
21:42
[4511e06a] part of check-in [b4737a16] 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: [b4737a16] user: drh branch: trunk, size: 24781)
2002-06-19
20:32
[4bb40ed9] part of check-in [d599f75b] Fix for ticket #75: Autoincrement INTEGER PRIMARY KEY fields on an INSERT even if the data is coming from a SELECT statement. (CVS 630) (check-in: [d599f75b] user: drh branch: trunk, size: 24702)
2002-06-11
02:25
[3a90bb98] part of check-in [d4a2fb10] Add RAISE() function, which allows more advanced flow-control in trigger programs (ticket #55) (CVS 614) (check-in: [d4a2fb10] user: danielk1977 branch: trunk, size: 24723)
2002-06-06
18:54
[4b0bd942] part of check-in [7ac5bd29] Added the %fallback directive to the lemon parser generator and used this in the parser to make the parse tables much smaller. This reduced the size of the library by 15K. (CVS 605) (check-in: [7ac5bd29] user: drh branch: trunk, size: 24695)
2002-05-26
20:54
[24b4e146] part of check-in [90511737] NULL values are distinct. A comparison involving a NULL is always false. Operations on a NULL value yield a NULL result. This change makes SQLite operate more like the SQL spec, but it may break existing applications that assumed the old behavior. All the old tests pass but we still need to add new tests to better verify the new behavior. Fix for ticket #44. (CVS 589) (check-in: [90511737] user: drh branch: trunk, size: 24217)
2002-05-24
02:04
[bbbd803d] part of check-in [a167b71d] Split the IdList structure into IdList and SrcList. SrcList is used to represent a FROM clause and IdList is used for everything else. This change allows SrcList to grow to support outer joins without burdening the other uses of IdList. (CVS 584) (check-in: [a167b71d] user: drh branch: trunk, size: 24208)
2002-05-21
12:56
[5b6586bb] part of check-in [592da134] Fix for ticket #45: Allow an UPDATE statement to change the INTEGER PRIMARY KEY to itself without triggering a constraint error. (CVS 573) (check-in: [592da134] user: drh branch: trunk, size: 24206)
11:38
[bc98bfe7] part of check-in [37dbdd55] Additional code cleanup resulting from a review of the new trigger code. (CVS 572) (check-in: [37dbdd55] user: drh branch: trunk, size: 23956)
2002-05-19
23:43
[5233701a] part of check-in [8a4195c7] Style fixes to triggers code in various *.c files (partial fix to ticket #39) (CVS 571) (check-in: [8a4195c7] user: danielk1977 branch: trunk, size: 24031)
2002-05-15
11:44
[26ca700f] part of check-in [690f9a16] Remove all tabs from the beginning of source code lines. Replace tabs with the appropriate number of spaces. (CVS 565) (check-in: [690f9a16] user: drh branch: trunk, size: 24024)
08:30
[9f89b395] part of check-in [794bf67b] Added FOR EACH ROW triggers functionality (CVS 562) (check-in: [794bf67b] user: danielk1977 branch: trunk, size: 23759)
2002-04-12
10:08
[31233f44] part of check-in [6e71493b] Fix for bug #15: Add the sqlite_changes() API function for retrieving the number of rows that changed in the previous operation. (CVS 526) (check-in: [6e71493b] user: drh branch: trunk, size: 20774)
03:55
[80105ff6] part of check-in [43a77f01] Fix for bug #16: Check for invalid functions in the VALUES clause of an INSERT statement. (CVS 525) (check-in: [43a77f01] user: drh branch: trunk, size: 20771)
2002-04-09
03:28
[9ddb3b05] part of check-in [bb83642e] Fix for bug #11: Output the correct row count when and INSERT does an IGNORE action. (CVS 524) (check-in: [bb83642e] user: drh branch: trunk, size: 20672)
03:15
[bae1964a] part of check-in [f46acfc3] Fix for bug #10: Pop the stack by the right amount on an IGNORE so that the stack does not grow without bound. (CVS 523) (check-in: [f46acfc3] user: drh branch: trunk, size: 20741)
2002-03-31
18:29
[903ff262] part of check-in [9e3cf4aa] When an attempt is made to insert an explicit NULL into an INTEGER PRIMARY KEY column, automatically convert the NULL value into a unique integer key. This was already happening when an implied NULL was inserted - when the INTEGER PRIMARY KEY column was omitted from the list of columns being inserted. Patches from Christian Werner. (CVS 510) (check-in: [9e3cf4aa] user: drh branch: trunk, size: 20741)
2002-03-03
18:59
[42bfd145] part of check-in [6121e5ab] VIEWs are bound to tables when they are used, not when they are first entered. This works around the problem of what to do if a table is deleted that a view refers to. (CVS 415) (check-in: [6121e5ab] user: drh branch: trunk, size: 20413)
2002-03-02
17:04
[4fb3428f] part of check-in [d5d3e79c] Subquery flattening is implemented and passes all regression tests. We still need to add addition tests to the suite to further exercise the flattener, however. (CVS 408) (check-in: [d5d3e79c] user: drh branch: trunk, size: 20227)
2002-02-23
02:32
[164d2d5e] part of check-in [39fed2df] Code to implement CREATE VIEW is in place. A quick smoke test shows that it works, but there are probably still many bugs. (CVS 387) (check-in: [39fed2df] user: drh branch: trunk, size: 20290)
2002-02-19
13:39
[eae5aa2e] part of check-in [c6e9048e] Change the name of the sanity_check PRAGMA to "integrity_check" and make it available on all compiles. (CVS 381) (check-in: [c6e9048e] user: drh branch: trunk, size: 20582)
2002-02-18
13:56
[9453cbba] part of check-in [ec1f3fae] Allow general expressions in the VALUES clause of an INSERT statement. (CVS 376) (check-in: [ec1f3fae] user: drh branch: trunk, size: 20583)
2002-02-03
19:06
[98edfd1a] part of check-in [20ea7375] Fix a serious bug in INSERT when the source is a SELECT. (CVS 366) (check-in: [20ea7375] user: drh branch: trunk, size: 20305)
00:56
[173da7b0] part of check-in [0115518f] Five-algorithm conflict resolution appears to be working. (CVS 363) (check-in: [0115518f] user: drh branch: trunk, size: 20305)
2002-02-02
18:49
[051e909c] part of check-in [9be4d4c6] Get the ABORT conflict resolution algorithm working. (CVS 362) (check-in: [9be4d4c6] user: drh branch: trunk, size: 20180)
2002-01-31
15:54
[42e89cb2] part of check-in [d0e7cf4a] 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: [d0e7cf4a] user: drh branch: trunk, size: 20104)
2002-01-30
16:17
[37971598] part of check-in [cf1538d7] Added ON CONFLICT support to COPY. Updates to documentation. Bug fixes. (CVS 359) (check-in: [cf1538d7] user: drh branch: trunk, size: 19404)
04:32
[5de9d858] part of check-in [9bbddb8e] Better testing of the ON CONFLICT logic. (CVS 358) (check-in: [9bbddb8e] user: drh branch: trunk, size: 19392)
00:54
[b942f99e] part of check-in [8229b5f6] More bug fixes in the ON CONFLICT enhancement. (CVS 357) (check-in: [8229b5f6] user: drh branch: trunk, size: 19354)
2002-01-29
23:07
[35c3e17b] part of check-in [ac8a4189] 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: [ac8a4189] user: drh branch: trunk, size: 19392)
18:41
[47531661] part of check-in [e00a9ff8] Beginning to insert the infrastructure for ON CONFLICT clauses. (CVS 355) (check-in: [e00a9ff8] user: drh branch: trunk, size: 17328)
2002-01-28
15:53
[e3a3b5a1] part of check-in [dbcfe198] Bug fix: The IN operator was not working if either side derived from an INTEGER PRIMARY KEY. (CVS 354) (check-in: [dbcfe198] user: drh branch: trunk, size: 11188)
2002-01-06
17:07
[813c3771] part of check-in [9b0be4fc] Comment updates most. Also some small changes to the VDBE. (CVS 339) (check-in: [9b0be4fc] user: drh branch: trunk, size: 11182)
2002-01-04
03:09
[7b36ce2e] part of check-in [011be9a9] An attempt to delete a single row using a WHERE clause that specifies the rowid would result in an error if the rowid did not exist. This problem has been resolved. (CVS 338) (check-in: [011be9a9] user: drh branch: trunk, size: 11135)
2001-12-31
02:48
[74e249cf] part of check-in [18e606f7] Comment changes. Change the use of BTree so that either the key is an integer or the data is empty. (CVS 337) (check-in: [18e606f7] user: drh branch: trunk, size: 11136)
2001-12-22
21:48
[78c11efb] part of check-in [a26d0880] Bug fix in the out-of-order INSERT. (CVS 336) (check-in: [a26d0880] user: drh branch: trunk, size: 10701)
14:49
[8119b42a] part of check-in [29cab124] Bug fixing in the new integer primary key code. (CVS 334) (check-in: [29cab124] user: drh branch: trunk, size: 10701)
2001-12-21
14:30
[18353ee0] part of check-in [236a54d2] Added support for the INTEGER PRIMARY KEY column type. (CVS 333) (check-in: [236a54d2] user: drh branch: trunk, size: 10735)
2001-11-07
16:48
[3526be77] part of check-in [decbeb91] New Next opcode and indexing style implemented. (CVS 304) (check-in: [decbeb91] user: drh branch: trunk, size: 9141)
14:22
[962f2773] part of check-in [e6ca23fa] 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: [e6ca23fa] user: drh branch: trunk, size: 8988)
2001-10-15
00:44
[b65c1d4b] part of check-in [747bf1b3] 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: [747bf1b3] user: drh branch: trunk, size: 8988)
2001-10-13
01:06
[ae283e85] part of check-in [288ef124] Remove the P3 and label arguments from the internal sqliteVdbeAddOp() function. This makes the code easier to read and perhaps smaller as well. (CVS 286) (check-in: [288ef124] user: drh branch: trunk, size: 8316)
2001-10-08
13:22
[a48ba850] part of check-in [9368c62e] Support for temporary tables added. Still need more testing. (CVS 279) (check-in: [9368c62e] user: drh branch: trunk, size: 8224)
2001-10-06
16:33
[01dd6dde] part of check-in [b63b3f36] Adding table column query capability to support ODBC. (CVS 278) (check-in: [b63b3f36] user: drh branch: trunk, size: 8123)
2001-09-27
03:22
[0552c2a4] part of check-in [34c42967] Added basic support for enforcement of UNIQUE on indices and primary keys. Support for addition constraints is to follow. (CVS 267) (check-in: [34c42967] user: drh branch: trunk, size: 8375)
2001-09-23
02:35
[061e531d] part of check-in [337b3d3b] Fixes to the locking and rollback behavior. (CVS 261) (check-in: [337b3d3b] user: drh branch: trunk, size: 8362)
2001-09-16
00:13
[b34860ea] part of check-in [4e926efe] Disclaimed copyright. Preparing for release 2.0. (CVS 250) (check-in: [4e926efe] user: drh branch: trunk, size: 8275)
2001-09-15
00:57
[750a44c0] part of check-in [14474fa1] Everything is working on Linux. This is release 2.0-Alpha-1. (CVS 246) (check-in: [14474fa1] user: drh branch: trunk, size: 8820)
2001-09-14
03:24
[edf098ec] part of check-in [e7b65e37] All tests now pass. But there are still issues. For example, inserts are way too slow. And additional tests are needed for new features. (CVS 243) (check-in: [e7b65e37] user: drh branch: trunk, size: 8743)
2001-09-13
14:46
[1072c0dd] part of check-in [a0a1e701] The BTree changes are now integrated and the whole thing compiles and links. I have not yet tried to run it, though. (CVS 239) (check-in: [a0a1e701] user: drh branch: trunk, size: 8740)
13:46
[51d21e65] part of check-in [6ecc8b20] 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: [6ecc8b20] user: drh branch: trunk, size: 8720)
2001-04-11
14:28
[aa528e20] part of check-in [86b30cd0] better handling of out-of-memory errors (CVS 207) (check-in: [86b30cd0] user: drh branch: trunk, size: 8511)
2001-01-15
22:51
[4bc1cab8] part of check-in [c6ffb7ec] continued progress toward version 2.0 (CVS 177) (check-in: [c6ffb7ec] user: drh branch: trunk, size: 8343)
2000-06-21
13:59
[f146f149] part of check-in [e1bf96a4] :-) (CVS 104) (check-in: [e1bf96a4] user: drh branch: trunk, size: 8334)
2000-06-17
13:12
[b1434c7c] part of check-in [6ed35a1d] :-) (CVS 101) (check-in: [6ed35a1d] user: drh branch: trunk, size: 8300)
2000-06-07
23:51
[ac4edfff] part of check-in [2ffeb850] :-) (CVS 74) (check-in: [2ffeb850] user: drh branch: trunk, size: 6629)
15:11
[93f9e36b] part of check-in [d3baa046] :-) (CVS 70) (check-in: [d3baa046] user: drh branch: trunk, size: 6698)
14:42
[8bd762bb] part of check-in [5d773b5d] :-) (CVS 1697) (check-in: [5d773b5d] user: drh branch: trunk, size: 6696)
2000-06-05
18:54
[5e69dd70] part of check-in [c02268bd] :-) (CVS 52) (check-in: [c02268bd] user: drh branch: trunk, size: 5325)
2000-06-04
12:58
[ddae33b3] part of check-in [6ea5cebf] rework the VDBE engine. NULL is now distinct from "" (CVS 49) (check-in: [6ea5cebf] user: drh branch: trunk, size: 5284)
2000-06-03
18:06
[62951015] part of check-in [27c06786] added default values (CVS 46) (check-in: [27c06786] user: drh branch: trunk, size: 5144)
2000-06-02
13:27
[747aad76] part of check-in [2b55f9b7] :-) (CVS 37) (check-in: [2b55f9b7] user: drh branch: trunk, size: 4971)
01:17
[5d713f4a] part of check-in [52338f4a] :-) (CVS 34) (check-in: [52338f4a] user: drh branch: trunk, size: 4874)
2000-05-31
15:34
[bd34716d] part of check-in [dee7a8be] added aggregate functions like count(*) (CVS 21) (check-in: [dee7a8be] user: drh branch: trunk, size: 4874) Added