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
def19e3b48
Change the name of the BTREE_IDXDELETE flag to BTREE_AUXDELETE, to better
...
reflect its purpose.
FossilOrigin-Name: 1d3bf6bebdda9f96734bc139601e9b05344ea0b4
2016-01-27 16:26:25 +00:00
drh
b89aeb6aa2
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.
FossilOrigin-Name: dde1db0dd2e2cf04706117629756c352b178ebb8
2016-01-27 15:49:32 +00:00
drh
e807bdba86
Add a new hint bit on the flags parameter of sqlite3BtreeDelete(). The new
...
BTREE_IDXDELETE bit indicates that the call is to delete an index entry
corresponding to a table row that has already been deleted.
FossilOrigin-Name: ac2cbadd8000947c097da5b00c00090fe58fdcff
2016-01-21 17:06:33 +00:00
drh
80090f9221
When manifesting a view as part of an DELETE or UPDATE, be sure to include
...
the hidden columns in the manifestation.
FossilOrigin-Name: 28df5dc4a9569f388af2ee0d1f016afbea132277
2015-11-19 17:55:11 +00:00
dan
fd261ec67e
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.
...
FossilOrigin-Name: cdc92919e600007cae5eb61223684f48a65babc0
2015-10-22 20:54:33 +00:00
drh
4b92f98ccc
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.
FossilOrigin-Name: 7d272aa62cd4cbbf4b5d04e3b918de27671e8301
2015-09-29 17:20:14 +00:00
drh
c149f18f4d
Create the sqlite3IsToplevel(Parse*) interface to check to see if a top-level
...
VDBE is being coded (versus a trigger) and use that interface.
FossilOrigin-Name: 59662cd2b65255a30e1a420331c07c51b644621a
2015-09-29 13:25:15 +00:00
dan
354474ad6d
Add tests for fts3 and onepass update/delete operations. Also fix a problem with onepass updates that do not affect any rows.
...
FossilOrigin-Name: 820c804468abff692742952de670c5d906a50956
2015-09-29 10:11:26 +00:00
dan
076e0f9674
Changes to allow DELETE operations on virtual tables to use the onepass strategy under some circumstances.
...
FossilOrigin-Name: e73f919fae1833c6ffb36eddbc76d9a8d9324214
2015-09-28 15:20:58 +00:00
dan
80b7198f2b
Add an assert() statement to delete.c.
...
FossilOrigin-Name: 40fce67ecf0e71db3c8f3da3f72cc80a3d0f8fb2
2015-09-19 18:11:18 +00:00
drh
b77ebd828b
Reformat some code to make it easier to merge with sessions. No logic changes.
...
FossilOrigin-Name: eade355fafec558fc13dc4b08ca0b07713a2cd84
2015-09-15 13:42:16 +00:00
drh
b0264eeca1
Use symbolic names ONEPASS_OFF, ONEPASS_SINGLE, and ONEPASS_MULTI for the
...
various modes of the one-pass optimization.
FossilOrigin-Name: 16e56bdadef903c6439a487f2683388aeeb0c625
2015-09-14 14:45:50 +00:00
drh
66336f3755
Fix a compiler warning and providing missing VdbeCoverage() calls.
...
FossilOrigin-Name: 2edd2e5edd60210e18db58bce1e096dd211b6ece
2015-09-14 14:08:25 +00:00
dan
7210b3d1e8
Fix compiler warnings in delete.c.
...
FossilOrigin-Name: 0a4d285e18b78cd529483ba5c8c607ab62a443d4
2015-09-12 19:50:58 +00:00
dan
f0ee1d3c12
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.
...
FossilOrigin-Name: eaeb2b80f6f8f83679c8323a81bb39570ec946fe
2015-09-12 19:26:11 +00:00
drh
34de0c8c5e
Merge enhancements from trunk.
...
FossilOrigin-Name: 1ab10cbf27245961b40eda1ce70f35646f0a9966
2015-09-03 14:18:12 +00:00
drh
076e85f59c
Add the sqlite3VdbeLoadString() and sqlite3VdbeMultiLoad() routines to help
...
with code generation, especially on PRAGMAs. Rename sqlite3VdbeAddGoto()
to just sqlite3VdbeGoto().
FossilOrigin-Name: 847387ec8e6fef283899578fb232b2c23b00ee5b
2015-09-03 13:46:12 +00:00
drh
2991ba050b
Add the sqlite3VdbeAddGoto(v,i) routine as a shorthand for
...
sqlite3VdbeAddOp2(v,OP_Goto,0,i).
FossilOrigin-Name: be78f413df1b0d874b44a866ef6bf17543d7e8a2
2015-09-02 18:19:00 +00:00
drh
760b32dff2
Merge trunk enhancements.
...
FossilOrigin-Name: e8b02902c48f3668dcff7b1767347ac7ef3c971e
2015-08-25 19:24:11 +00:00
drh
e910769817
Use the sqlite3IndexColumnAffinity() routine to quickly and correctly find the
...
affinity of an index column.
FossilOrigin-Name: 1ee089a72d789002a0a377347fc51e08ab32fb14
2015-08-25 19:20:04 +00:00
drh
1f9ca2c84c
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.
FossilOrigin-Name: efaabdb71626bdc03768e87e186c72f6f3da75b2
2015-08-25 16:57:52 +00:00
drh
72bc8208f0
When generating code for partial indexes, be sure not to modify the
...
index condition expression in the schema.
FossilOrigin-Name: e63d01c69c3e50f49ee3022a519c4f3e91f00520
2015-06-11 13:58:35 +00:00
drh
2308ed3854
Propagate the COLLATE operator upward through function calls.
...
Initial fix for ticket [ca0d20b6cdddec5e8].
FossilOrigin-Name: c053448a55f9d030e8ffe88cf4fc14ada7f6ec19
2015-02-09 16:09:34 +00:00
mistachkin
1a51ce78ba
Fix some harmless compiler warnings.
...
FossilOrigin-Name: 2b8eecbfe7935d3d9826fbcd473dd3a49138ad11
2015-01-12 18:38:02 +00:00
drh
635e57fc48
Fix a faulty assert() in the DELETE code generator.
...
FossilOrigin-Name: 95f8ebdbf87326f23cd38e561ac5632b5367a449
2014-10-28 16:19:18 +00:00
peter.d.reid
60ec914c74
Fix typos in comments. No code changes.
...
FossilOrigin-Name: e62aab5e9290503869e1f4d5e0fefd2b4dee0a69
2014-09-06 16:39:46 +00:00
drh
b6b4b79f34
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].
FossilOrigin-Name: 7029b3404d3f5f698a496934f3a3f2972051b257
2014-08-21 14:10:23 +00:00
drh
d249090450
Remove the unused second argument from sqlite3ExprCachePop(). Add an
...
ALWAYS() on an always-true conditional in sqlite3VdbeResolveLabel().
FossilOrigin-Name: ab23abf392175d3e256ff619b13abbbe732a49ed
2014-04-13 19:28:15 +00:00
drh
87744513e7
Make sure column cache elements are cleared correctly when jumping over
...
code for key generation in a partial index.
Fix for ticket [2ea3e9fe6379fc3f6].
FossilOrigin-Name: 3122b8364082be783821da01d4af2af6a9586327
2014-04-13 19:15:49 +00:00
drh
49d9ba6354
Tweaks in support of VDBE branch test coverage.
...
FossilOrigin-Name: b97825646996792d0a67b83f135658027c8569ca
2014-02-19 00:53:46 +00:00
drh
688852ab15
Add logic to do test coverage measurements on the VDBE code.
...
FossilOrigin-Name: ce184c7bb16988641d37c908d9b3042456d4be3d
2014-02-17 22:40:43 +00:00
drh
57bf4a8eeb
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".
FossilOrigin-Name: 35b4d6e938164fabaf30b504c54cfd9a69060cee
2014-02-17 14:59:22 +00:00
drh
ee06c99b49
Remove the SF_Materialize flag from the SELECT object as it does not
...
accomplish anything useful.
FossilOrigin-Name: 65d5dcddbd34dfb2733a7a908c7c652ce2d610fe
2014-02-04 20:46:41 +00:00
drh
4d06798e56
Fix a potential over-size and hence undefined shift operation.
...
FossilOrigin-Name: 6379b0729521146bc4ec27a9924492c7dc1d8a31
2014-01-28 18:53:29 +00:00
drh
693e671936
Fixes for various clang warnings.
...
FossilOrigin-Name: 87bf60637e5863c54c5e2d05aaaca0835b7aace8
2014-01-24 22:58:00 +00:00
drh
1c2c0b776f
Avoid redundant register loads during index key generation when doing a
...
DELETE or INTEGRITY_CHECK on a table with multiple indices.
FossilOrigin-Name: 8f6e6149a165f516be6395fd753e163d52ffd52e
2014-01-04 19:27:05 +00:00
drh
61019c7883
Omit OP_Close operations that occur immediately prior to OP_Halt and which
...
cannot be jumped over.
FossilOrigin-Name: 874b7e9999811c288ad41d07709f88e458d2d497
2014-01-04 16:49:02 +00:00
drh
762c1c4071
Avoid unnecessary affinity transformations when building indices using
...
data from a table.
FossilOrigin-Name: 10d851353c2abeadbd2852c210a7ff9f7f513e5d
2014-01-02 19:35:30 +00:00
drh
d42ef839bc
Code simplification in sqlite3GenerateIndexKey() by making use of a subroutine
...
found over in expr.c.
FossilOrigin-Name: 0026d3355340d66687a3fd4cbece28811ef1b505
2013-12-20 18:44:35 +00:00
mistachkin
20b859530b
Fix harmless compiler warning.
...
FossilOrigin-Name: f336c18fb72ab90e93640b12ac540d41accc7658
2013-11-22 21:32:44 +00:00
drh
e73e067187
Enable the ONEPASS optimization for DELETE, for both rowid and WITHOUT
...
ROWID tables.
FossilOrigin-Name: 44a07afdd9b3ae2460bc963383295deb0915f899
2013-11-18 03:11:54 +00:00
drh
83d47afe24
Make sure one-pass DELETE for WITHOUT ROWID tables correctly positions the
...
PRIMARY KEY cursor. Make the same fix for UPDATE.
FossilOrigin-Name: 6bd5750b7d5da221b0689f6df6be5ed0dce61bec
2013-11-17 02:42:02 +00:00
drh
c51331d16d
Fix a couple of minor problems with the new delete logic.
...
FossilOrigin-Name: a11243f840d35aaed8ee3b9901c3950bc584a417
2013-11-16 23:16:31 +00:00
drh
52a82e6966
Fix an OOM-recovery problem in the DELETE code generator.
...
FossilOrigin-Name: dc7be158b82ab9156d0fcdf3394f881eac4d23c3
2013-11-16 23:03:06 +00:00
drh
9612947260
Combine the rowid and WITHOUT ROWID paths for DELETE into a single path.
...
FossilOrigin-Name: c4734b881a64a9d21d03a14e901785797577fbd8
2013-11-16 22:48:52 +00:00
drh
156c7919d9
The one-pass optimization is now working for DELETE on WITHOUT ROWID tables.
...
FossilOrigin-Name: e4d220a381388f900a95d1b656a82f14c837f92e
2013-11-16 20:45:01 +00:00
drh
6a53499a20
Enhance the DELETE logic so that it can make use of WHERE_ONEPASS_DESIRED
...
for rowid tables.
FossilOrigin-Name: 8f479a72758ab6fedb171ada612b1963143c32fa
2013-11-16 20:13:39 +00:00
drh
392ee21d1a
Performance improvement: Avoid unnecessary seeks on REPLACE INTO for a
...
WITHOUT ROWID table.
FossilOrigin-Name: fd11afa5f5c853dcac2290444b581a3fe1d4332d
2013-11-08 16:54:56 +00:00
drh
2ec2fb2269
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.
FossilOrigin-Name: defd5205a7cc3543cdd18f906f568e943b8b3a2c
2013-11-06 19:59:23 +00:00