mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-08 14:02:16 +03:00
Fix a problem in OP_IdxDelete as used by REPLACE conflict resolution that
comes up due to recent enhancements that reduce the work required for UNIQUE NOT NULL indices. FossilOrigin-Name: 61d7d4753f36932293c0eb1ca893b17d18355ad3
This commit is contained in:
16
manifest
16
manifest
@@ -1,5 +1,5 @@
|
|||||||
C Fix\stypo\sin\scomment\sand\sremove\ssuperfluous\sblank\sline.\s\sNo\schanges\sto\scode.
|
C Fix\sa\sproblem\sin\sOP_IdxDelete\sas\sused\sby\sREPLACE\sconflict\sresolution\sthat\ncomes\sup\sdue\sto\srecent\senhancements\sthat\sreduce\sthe\swork\srequired\sfor\nUNIQUE\sNOT\sNULL\sindices.
|
||||||
D 2013-11-10T00:03:11.921
|
D 2013-11-11T00:43:21.301
|
||||||
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
||||||
F Makefile.in d12e4455cf7a36e42d3949876c1c3b88ff70867a
|
F Makefile.in d12e4455cf7a36e42d3949876c1c3b88ff70867a
|
||||||
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
||||||
@@ -279,7 +279,7 @@ F src/update.c 95a640c56d71ea9d58be66eab863d502701d092b
|
|||||||
F src/utf.c 6fc6c88d50448c469c5c196acf21617a24f90269
|
F src/utf.c 6fc6c88d50448c469c5c196acf21617a24f90269
|
||||||
F src/util.c 2fa6c821d28bbdbeec1b2a7b091a281c9ef8f918
|
F src/util.c 2fa6c821d28bbdbeec1b2a7b091a281c9ef8f918
|
||||||
F src/vacuum.c 3728d74919d4fb1356f9e9a13e27773db60b7179
|
F src/vacuum.c 3728d74919d4fb1356f9e9a13e27773db60b7179
|
||||||
F src/vdbe.c f635690f3f2253ac8db7d505a100383a9a555362
|
F src/vdbe.c cd3059de95a3a638eee919db8cfe4c318c160026
|
||||||
F src/vdbe.h 8d5a7351024d80374fc0acdbbe3cfe65c51ba8b6
|
F src/vdbe.h 8d5a7351024d80374fc0acdbbe3cfe65c51ba8b6
|
||||||
F src/vdbeInt.h f2fa3ceccceeb757773921fb08af7c6e9f3caa1c
|
F src/vdbeInt.h f2fa3ceccceeb757773921fb08af7c6e9f3caa1c
|
||||||
F src/vdbeapi.c 93a22a9ba2abe292d5c2cf304d7eb2e894dde0ed
|
F src/vdbeapi.c 93a22a9ba2abe292d5c2cf304d7eb2e894dde0ed
|
||||||
@@ -385,7 +385,7 @@ F test/collateA.test b8218ab90d1fa5c59dcf156efabb1b2599c580d6
|
|||||||
F test/colmeta.test 087c42997754b8c648819832241daf724f813322
|
F test/colmeta.test 087c42997754b8c648819832241daf724f813322
|
||||||
F test/colname.test 08948a4809d22817e0e5de89c7c0a8bd90cb551b
|
F test/colname.test 08948a4809d22817e0e5de89c7c0a8bd90cb551b
|
||||||
F test/conflict.test 841bcf7cabbfca39c577eb8411ea8601843b46a8
|
F test/conflict.test 841bcf7cabbfca39c577eb8411ea8601843b46a8
|
||||||
F test/conflict2.test 1892e796cb631d9b5661ab9916de3542520a1725
|
F test/conflict2.test 3ed0b6ec3c2cb8acebbc89677ea0e58c01aaa1ff
|
||||||
F test/conflict3.test dec0634c0f31dec9a4b01c63063e939f0cd21b6b
|
F test/conflict3.test dec0634c0f31dec9a4b01c63063e939f0cd21b6b
|
||||||
F test/contrib01.test 2a1cbc0f2f48955d7d073f725765da6fbceda6b4
|
F test/contrib01.test 2a1cbc0f2f48955d7d073f725765da6fbceda6b4
|
||||||
F test/corrupt.test 4aabd06cff3fe759e3e658bcc17b71789710665e
|
F test/corrupt.test 4aabd06cff3fe759e3e658bcc17b71789710665e
|
||||||
@@ -1135,7 +1135,7 @@ F tool/vdbe-compress.tcl f12c884766bd14277f4fcedcae07078011717381
|
|||||||
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
||||||
F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01
|
F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01
|
||||||
F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff
|
F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff
|
||||||
P a5805976f0e06ece2eeebd825f383a1ee88121fc
|
P 023233f16ec2e6f582a7491643036ba5cad9379c
|
||||||
R b79e4c42d41fb8fbd85c50580ea07dcf
|
R 4e1462bf2dbaa7aef77689cfb0587b10
|
||||||
U mistachkin
|
U drh
|
||||||
Z 4647bb0b47c53e635871c96e7d23ff93
|
Z 4e3adcf9d2d8f00e72d357ee17f79df9
|
||||||
|
@@ -1 +1 @@
|
|||||||
023233f16ec2e6f582a7491643036ba5cad9379c
|
61d7d4753f36932293c0eb1ca893b17d18355ad3
|
@@ -4661,7 +4661,7 @@ case OP_IdxDelete: {
|
|||||||
if( ALWAYS(pCrsr!=0) ){
|
if( ALWAYS(pCrsr!=0) ){
|
||||||
r.pKeyInfo = pC->pKeyInfo;
|
r.pKeyInfo = pC->pKeyInfo;
|
||||||
r.nField = (u16)pOp->p3;
|
r.nField = (u16)pOp->p3;
|
||||||
r.flags = 0;
|
r.flags = UNPACKED_PREFIX_MATCH;
|
||||||
r.aMem = &aMem[pOp->p2];
|
r.aMem = &aMem[pOp->p2];
|
||||||
#ifdef SQLITE_DEBUG
|
#ifdef SQLITE_DEBUG
|
||||||
{ int i; for(i=0; i<r.nField; i++) assert( memIsValid(&r.aMem[i]) ); }
|
{ int i; for(i=0; i<r.nField; i++) assert( memIsValid(&r.aMem[i]) ); }
|
||||||
|
@@ -813,5 +813,38 @@ do_test conflict2-13.2 {
|
|||||||
}
|
}
|
||||||
} {1 3}
|
} {1 3}
|
||||||
|
|
||||||
|
# Test for an unreleased bug in the REPLACE conflict resolution
|
||||||
|
# discovered on 2013-11-09.
|
||||||
|
#
|
||||||
|
do_execsql_test conflict2-14.1 {
|
||||||
|
DROP TABLE IF EXISTS t1;
|
||||||
|
CREATE TABLE t1(
|
||||||
|
x TEXT PRIMARY KEY NOT NULL,
|
||||||
|
y TEXT NOT NULL,
|
||||||
|
z INTEGER
|
||||||
|
);
|
||||||
|
INSERT INTO t1 VALUES('alpha','beta',1);
|
||||||
|
CREATE UNIQUE INDEX t1xy ON t1(x,y);
|
||||||
|
REPLACE INTO t1(x,y,z) VALUES('alpha','gamma',1);
|
||||||
|
PRAGMA integrity_check;
|
||||||
|
SELECT x,y FROM t1 INDEXED BY t1xy;
|
||||||
|
SELECT x,y,z FROM t1 NOT INDEXED;
|
||||||
|
} {ok alpha gamma alpha gamma 1}
|
||||||
|
do_execsql_test conflict2-14.2 {
|
||||||
|
DROP TABLE IF EXISTS t1;
|
||||||
|
CREATE TABLE t1(
|
||||||
|
x TEXT PRIMARY KEY NOT NULL,
|
||||||
|
y TEXT NOT NULL,
|
||||||
|
z INTEGER
|
||||||
|
) WITHOUT ROWID;
|
||||||
|
INSERT INTO t1 VALUES('alpha','beta',1);
|
||||||
|
CREATE UNIQUE INDEX t1xy ON t1(x,y);
|
||||||
|
REPLACE INTO t1(x,y,z) VALUES('alpha','gamma',1);
|
||||||
|
PRAGMA integrity_check;
|
||||||
|
SELECT x,y FROM t1 INDEXED BY t1xy;
|
||||||
|
SELECT x,y,z FROM t1 NOT INDEXED;
|
||||||
|
} {ok alpha gamma alpha gamma 1}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
finish_test
|
finish_test
|
||||||
|
Reference in New Issue
Block a user