drh
6ccbd2787b
Further improvements to bytecode branch testing. Fix cases where the
...
macros said a branch could not be taken when in fact it could be. Alter
some window function branch coverage macros to indicate that comparison
operands cannot be NULL.
FossilOrigin-Name: 76e42b7071a71137c0da4f10db4e653ae94a89b56e95cd3f036bff08c9500d08
2018-07-10 17:10:44 +00:00
drh
338e311acb
When doing a one-pass UPDATE or DELETE on virtual tables, close the cursor
...
prior to running VUpdate. This allows one-pass to work on virtual tables
that do not allow concurrent reads and writes. Enhance rtree to take
advantage of this new capability.
FossilOrigin-Name: b816023ce07d01024d5769e16db924374a49bf909edd12dc1344a0a1ef693db5
2018-05-24 23:51:57 +00:00
drh
6876dccbfe
The previous fix for ticket [d85fffd6ffe856092ed8da] in check-in
...
[0a514e62ad1ebe5c12da8dae] did not completely address the
probably in that it only worked for cases where the OP_SCopy that loaded
the register was the last instruction in the sequence for the expression, which
is not necessarily the case for expressions like CASE...END. This revision
prevents the registered that will be recomputed from being cached in the first
place.
FossilOrigin-Name: 9fd0faf517993587d2f54212638545fc85fbbc84a031bcfae8c1e5894825d83b
2018-04-26 18:34:26 +00:00
drh
909066bba0
Ensure that new.* values of an UPDATE do not get clobbered after the
...
BEFORE triggers run when unmodified columns of the row being updated are
reloaded. Fix for ticket [d85fffd6ffe856092ed8da]
FossilOrigin-Name: 0a514e62ad1ebe5c12da8daed429ae2f9d9910471d3c5cef3b6870bdadfefca1
2018-04-26 15:50:10 +00:00
drh
de7ca50dac
Clarification of the behavior of a BEFORE UPDATE trigger when the trigger
...
changes the values of some of the columns used to compute new columns in
the UPDATE.
FossilOrigin-Name: 7bb23c2a3d37f0d5e5515b917860818906819d54a0066e1ba8e9792a82f7d279
2018-04-26 15:04:18 +00:00
drh
f3d7bbb767
Fix UPSERT so that it plays nicely with AUTOINCREMENT.
...
FossilOrigin-Name: 359725ab36339b443b7745e84f6d27991038ceb063c653805dde17f3eb5a03c5
2018-04-21 03:06:29 +00:00
drh
4b8bd84302
Fix a harmless compiler warning.
...
FossilOrigin-Name: d2ab24f59d92527fe503fa7dc2128078fbc4dd2d2c1148effa9ea1957ab19940
2018-04-20 20:09:22 +00:00
drh
ac9151d848
Avoid opening a statement journal on single-row UPDATEs without triggers or
...
FK constraints.
FossilOrigin-Name: 2772404b8c570caf3c31d2b0530cf347a24f6f60e220e726c086537b38ebfa85
2018-04-20 19:32:35 +00:00
drh
5deb1813cd
Minor simplification of the previous checkin.
...
FossilOrigin-Name: d1906689abdb685f78aa97bca4bf301204d12846016d27bc86dcc9ce2b024d24
2018-04-20 16:27:57 +00:00
drh
fb2213e1ff
Avoid unnecessary cursor seeks during upsert processing.
...
FossilOrigin-Name: 7c4b6d5475092a3e205f01a6972366e27a404568e8e7ba327f2feefac2ce2c7c
2018-04-20 15:56:24 +00:00
drh
7fc3aba862
Enhance UPSERT so that the UPDATE uses the same set of cursors as the INSERT.
...
FossilOrigin-Name: c37f39d18d41ae5ba6c4561d87cbbf71f3b6896b86cc5cff9cdf046b02dc521a
2018-04-20 13:18:51 +00:00
drh
2ac4e5cca9
Minor simplification of the cursor allocation logic for update.
...
FossilOrigin-Name: fdf71be65835e7e8915d16dd64114de35c4754ef5b94a2af6cac88a94817fb75
2018-04-20 00:40:19 +00:00
drh
7963691314
Fix the handling of "PRAGMA count_changes=ON" with UPSERT. Also improved
...
the implementation of count_changes in other places, without changing the
behavior.
FossilOrigin-Name: c6f71115eb933c2aee295bc31e5139112463c28e15a3b3ea242fd9bac168aed9
2018-04-19 23:52:39 +00:00
drh
eac9fabbc9
Add support for the "excluded.*" names in the UPDATE clause of an upsert.
...
FossilOrigin-Name: 0203f34faae07fbea0bff2d23b81fb37df8854cded4cdadac5a034132a096b6d
2018-04-16 13:00:50 +00:00
drh
788d55aa77
Begin adding upsert logic. This is an incremental check-in.
...
FossilOrigin-Name: 809696434097e62e8ef486c7478b5eb62c0cf1342522a5584939fade82821410
2018-04-13 01:15:09 +00:00
drh
7007640f2e
Simple comment clarification. No code or logic changes.
...
FossilOrigin-Name: a26f9c9f89c24048cb77d5c0c8de37f46de7dce80f8bf49cadcd58b239dbdfa7
2018-04-12 19:51:22 +00:00
dan
9a3c375fce
Fix an instance where an uninitialized VM register might be accessed. Fix for
...
[093420fc0]. This problem was found by OSSFuzz.
FossilOrigin-Name: a3b02db74681a215996c5ed110eb0ece5ed24f71a1b131c10e9f33e666af0256
2018-04-05 16:26:39 +00:00
drh
41fb367a2c
Improved comments. Slightly tighter implementation, but no big changes.
...
FossilOrigin-Name: a1b3f28569f2a8d82b2931527fdfe191b421f3e1ea18ee30e04211e1ad645993
2018-01-12 23:18:38 +00:00
drh
ce2fbd1b02
Add the experimental sqlite3_value_nochange() interface usable by xUpdate
...
methods of virtual tables to see if a column has actually changed values.
FossilOrigin-Name: 8b7be15ece9e2e83959bb0e21e240106fe1077431242c3cc6b81f1baa2382f40
2018-01-12 21:00:14 +00:00
drh
6f390beb7f
Add the sqlite3_vtab_nochange() method which virtual table implementations
...
can use to optimize UPDATEs.
FossilOrigin-Name: d444b1ff39f0a1673a977b8047e1e14a49d461c9934be080d27c2392a830c1c0
2018-01-11 17:04:26 +00:00
drh
24cd20ffa4
Fix typo in comment. No code changes.
...
FossilOrigin-Name: 2c55571baaae58d6f5b6210cf85d0fa325a9977682bd449e3802191f7a4142de
2018-01-11 13:43:04 +00:00
drh
8c0833fb21
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.
FossilOrigin-Name: 3925facd942c9df663f9b29b1e6f94f6be14af8c2b99eb691bfc836b4c220826
2017-11-14 23:48:23 +00:00
dan
3b61ebb8de
Omit some extra code from non-SQLITE_ENABLE_UPDATE_DELETE_LIMIT builds.
...
FossilOrigin-Name: 72be33f9c84de3ec4afc40549482417456ca82c1d16b473dc034b144055271e5
2017-11-10 20:13:14 +00:00
dan
b3c16b899b
Add SQLITE_ENABLE_UPDATE_DELETE_LIMIT for views and WITHOUT ROWID tables.
...
FossilOrigin-Name: 584b88aaf89ab30cb51185396b7b50c6ecba286add023a26ab41d865b9c605ce
2017-11-09 19:53:06 +00:00
drh
e3740f272b
Experimental changes that allow a WITHOUT ROWID virtual table to be writable
...
as long as it has only a single-column PRIMARY KEY.
FossilOrigin-Name: ab9ee4c1e64c09c7130e385a23d043d78bad95dff5509c7adc9b992350a4a537
2017-08-10 15:19:39 +00:00
dan
940b5eaa5e
Avoid updating unaffected indexes on a table as part of an UPDATE that requires
...
foreign key processing in some cases.
FossilOrigin-Name: 477bea9ed0dd0fa69896bfd16d9b1d22170cbab784e3279ce65c29c47e032f34
2017-04-11 19:58:55 +00:00
dan
f64ece143c
Avoid redundant table b-tree cursor seeks in UPDATE statements that use the
...
two-pass strategy.
FossilOrigin-Name: dc555b1039c6930f6d15355c698ff917a85e8056
2017-01-28 19:45:34 +00:00
drh
da060052e3
Back out check-in [0b3174e0b1364c] and replace it with a better fix
...
for ticket [91e2e8ba6ff2e2] - a fix that does not cause the problem
identified by ticket [7ffd1ca1d2ad4ec].
FossilOrigin-Name: 0613665274346917f5482f9210bf0c60a0fed7d9
2017-01-16 16:43:02 +00:00
drh
ae051a8970
Fix harmless compiler warnings in the UPDATE code generator.
...
FossilOrigin-Name: 385db266673abaf7013ffad09b28014c246547ef
2017-01-12 16:21:54 +00:00
dan
e206ea7f48
Fix a problem causing the pre-update hook to be passed an incorrect rowid
...
value in some single-pass multi-row updates.
FossilOrigin-Name: 62257eb53c13d4c7ed128d5d89f6f10d4aff945c
2017-01-11 20:10:30 +00:00
dan
2c6fec21dc
Fix a problem with single-pass multi-row UPDATE statements that invoke REPLACE
...
conflict handling.
FossilOrigin-Name: 0a2b8e1b9dc600b5a93622e8eea6218649df5e0f
2017-01-11 19:03:08 +00:00
dan
372f942f17
Fix a problem preventing UPDATE statements that use a range-scan on the PK
...
index of a WITHOUT ROWID table from using a one-pass strategy.
FossilOrigin-Name: cab86c90945126c24c40cf2dedd053a8c46d00d6
2017-01-11 15:42:14 +00:00
dan
f91c1318f4
Changes to allow some multi-row UPDATE statements to avoid the two-pass
...
approach.
FossilOrigin-Name: 46db23ccd116ce5b9d949f9293be8a2818411b46
2017-01-10 20:04:38 +00:00
drh
f14b7fb73b
Add the sqlite3VdbeAppendP4() method for adding P4 content to the most recently
...
coded instruction.
FossilOrigin-Name: 28883e8f3e92a8015fb5f6c8ae8580833931543d
2016-12-07 21:35:55 +00:00
drh
9057fc7c7f
Remove the OP_RowKey opcode. Use OP_RowData in its place.
...
FossilOrigin-Name: 6ac7b07a4aff2e1a9031289e3dafdb9ac0071c24
2016-11-25 19:32:32 +00:00
drh
65f38d960d
Remove unnecessary OP_Close opcodes for a size reduction and performance
...
increase.
FossilOrigin-Name: 32be7aae92ee48bf2cd260ea41e79c2bc62738f9
2016-11-22 01:26:42 +00:00
drh
2c4dfc3095
Add the unpacked key fields to OP_IdxInsert for INSERT and UPDATE statements.
...
FossilOrigin-Name: 67602e40f122cbb6354048a64c5d3a72b2855ec7
2016-11-10 14:24:04 +00:00
drh
9b4eaebc68
Enhance the OP_IdxInsert opcode to optionally accept unpacked key material.
...
FossilOrigin-Name: 89d958abbac45f2ca5954080cd9e74ec9a07ebb2
2016-11-09 00:10:33 +00:00
drh
69c338263a
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.
FossilOrigin-Name: 92a22f01343a898455fd61c3b8e7d7c954f5b569
2016-08-18 14:33:11 +00:00
drh
f09c48233a
Simplification to the logic used to decide between OP_Seek and OP_NotExists.
...
Use OP_NotExists for both DELETE and UPDATE.
FossilOrigin-Name: 3a695263183303e3f64eb2320752d0fdef53eaf2
2016-05-06 20:23:12 +00:00
drh
74c3302fd1
Avoid compiler warnings and excess opcodes when SQLITE_ENABLE_PREUPDATE_HOOK
...
is not used. Fix the EXPLAIN output for P4_TABLE opcodes.
FossilOrigin-Name: 5ab46d760dff327491703478d6d7c7c44a0147ca
2016-03-30 12:56:55 +00:00
drh
47e1842e5b
Merge all recent enhancements from trunk.
...
FossilOrigin-Name: 6a7ee04b0ddac36a87d5ed2ac89a53e537f4d5a3
2016-03-16 01:16:30 +00:00
drh
8426e36c8f
Add the ALLBITS macro as a shorthand for "(Bitmask)(-1)".
...
FossilOrigin-Name: 91bd619d27e4d91510a187bbb88de961a31c8a2e
2016-03-08 01:32:30 +00:00
drh
d8b7d6e44c
Merge the changes for the 3.11.0 release candidate from trunk.
...
FossilOrigin-Name: 4d7a802e73ef0352f840bc8d74c560afb7666ff7
2016-02-13 14:07:56 +00:00
drh
bdb00225ab
Omit NOT NULL checks on unchanging columns in an UPDATE.
...
FossilOrigin-Name: 6a3aaedfb41735996470abbae6d3cd1be1f508b3
2016-02-10 16:03:20 +00:00
drh
0ac7cfaf99
Merge enhancements from trunk.
...
FossilOrigin-Name: a533608cb0de3cbc1e28a794aab99864b8c249f4
2016-02-05 14:15:34 +00:00
drh
575fad6500
Add the slightly faster sqlite3DbMallocRawNN(db,n) routine for the majority
...
cases where db is guaranteed to be not NULL.
FossilOrigin-Name: 0a802e96ab06e2643834b83671fa8353da1a348d
2016-02-05 13:38:36 +00:00
drh
1bb15fc973
Merge recent enhancements from trunk.
...
FossilOrigin-Name: d1a1278d7f3306536dc9cbd8fb300898f1e373e8
2015-12-02 20:40:26 +00:00
dan
1acb539f4c
Add the "colUsed" field to the sqlite3_index_info structure passed to virtual table xBestIndex methods. To indicate the subset of the virtual table columns that may be required by the current scan.
...
FossilOrigin-Name: 116b206494eb8ba963c7c5acfbf9e7b6db11c79c
2015-11-26 19:33:41 +00:00
drh
d286b9fb7d
Merge all the latest enhancements from trunk.
...
FossilOrigin-Name: 395a153ff7b3c7a72f3d02b6fe76d72383f4e480
2015-10-30 16:50:00 +00:00