mirror of https://github.com/sqlite/sqlite
Fix an issue in incremental_index_check with indexes that use non-default
collation sequences. FossilOrigin-Name: 3ebb2351e2650d263029d2c0042683cba3529c9d3f76b5f994f2e737b84d3f67
This commit is contained in:
parent
19465e7380
commit
6fc6617909
|
@ -298,7 +298,8 @@ static int cidxLookupIndex(
|
||||||
" coalesce('quote(' || name || ')', 'rowid'), '|| '','' ||'"
|
" coalesce('quote(' || name || ')', 'rowid'), '|| '','' ||'"
|
||||||
") AS zCurrentKey,"
|
") AS zCurrentKey,"
|
||||||
" group_concat("
|
" group_concat("
|
||||||
" coalesce(name, 'rowid') || CASE WHEN desc THEN ' DESC' ELSE '' END,"
|
" coalesce(name, 'rowid') || ' COLLATE ' || coll "
|
||||||
|
" || CASE WHEN desc THEN ' DESC' ELSE '' END,"
|
||||||
" ', '"
|
" ', '"
|
||||||
") AS zOrderBy,"
|
") AS zOrderBy,"
|
||||||
" group_concat("
|
" group_concat("
|
||||||
|
@ -313,7 +314,7 @@ static int cidxLookupIndex(
|
||||||
" END,"
|
" END,"
|
||||||
" ' AND '"
|
" ' AND '"
|
||||||
") AS zSubExpr,"
|
") AS zSubExpr,"
|
||||||
" count(*) AS nCol"
|
" count(*) AS nCol"
|
||||||
" FROM pragma_index_xinfo(%Q);"
|
" FROM pragma_index_xinfo(%Q);"
|
||||||
, zIdx, zIdx, zIdx
|
, zIdx, zIdx, zIdx
|
||||||
);
|
);
|
||||||
|
|
14
manifest
14
manifest
|
@ -1,5 +1,5 @@
|
||||||
C Fix\s"after"\sparameter\shandling\sin\sthe\sincremental_index_check\scode.
|
C Fix\san\sissue\sin\sincremental_index_check\swith\sindexes\sthat\suse\snon-default\ncollation\ssequences.
|
||||||
D 2017-10-28T20:31:25.564
|
D 2017-10-30T08:04:38.448
|
||||||
F Makefile.in e016061b23e60ac9ec27c65cb577292b6bde0307ca55abd874ab3487b3b1beb2
|
F Makefile.in e016061b23e60ac9ec27c65cb577292b6bde0307ca55abd874ab3487b3b1beb2
|
||||||
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
|
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
|
||||||
F Makefile.msc 37740aba9c4bb359c627eadccf1cfd7be4f5f847078723777ea7763969e533b1
|
F Makefile.msc 37740aba9c4bb359c627eadccf1cfd7be4f5f847078723777ea7763969e533b1
|
||||||
|
@ -328,7 +328,7 @@ F ext/rbu/sqlite3rbu.h b42bcd4d8357268c6c39ab2a60b29c091e89328fa8cc49c8fac5ab8d0
|
||||||
F ext/rbu/test_rbu.c 7073979b9cc80912bb03599ac8d85ab5d3bf03cfacd3463f2dcdd7822997533a
|
F ext/rbu/test_rbu.c 7073979b9cc80912bb03599ac8d85ab5d3bf03cfacd3463f2dcdd7822997533a
|
||||||
F ext/repair/README.md 92f5e8aae749a4dae14f02eea8e1bb42d4db2b6ce5e83dbcdd6b1446997e0c15
|
F ext/repair/README.md 92f5e8aae749a4dae14f02eea8e1bb42d4db2b6ce5e83dbcdd6b1446997e0c15
|
||||||
F ext/repair/checkfreelist.c 0abb84b4545016d57ba1a2aa8884c72c73ed838968909858c03bc1f38fb6b054
|
F ext/repair/checkfreelist.c 0abb84b4545016d57ba1a2aa8884c72c73ed838968909858c03bc1f38fb6b054
|
||||||
F ext/repair/checkindex.c 62df3d58ddf2988ab5bc9a7e3a9f16d16c3844a988df5cb702a2d0f4d2dd5bf4
|
F ext/repair/checkindex.c ff736821b84286ace872a5fa793aee39232fa804cb79c40c3086686e94d2f7e0
|
||||||
F ext/rtree/README 6315c0d73ebf0ec40dedb5aa0e942bc8b54e3761
|
F ext/rtree/README 6315c0d73ebf0ec40dedb5aa0e942bc8b54e3761
|
||||||
F ext/rtree/rtree.c cc91b6905bf55512c6ebc7dfdd37ac81c86f1753db8cfa6d62f0ee864464044f
|
F ext/rtree/rtree.c cc91b6905bf55512c6ebc7dfdd37ac81c86f1753db8cfa6d62f0ee864464044f
|
||||||
F ext/rtree/rtree.h 834dbcb82dc85b2481cde6a07cdadfddc99e9b9e
|
F ext/rtree/rtree.h 834dbcb82dc85b2481cde6a07cdadfddc99e9b9e
|
||||||
|
@ -654,7 +654,7 @@ F test/cast.test 4c275cbdc8202d6f9c54a3596701719868ac7dc3
|
||||||
F test/cffault.test 9d6b20606afe712374952eec4f8fd74b1a8097ef
|
F test/cffault.test 9d6b20606afe712374952eec4f8fd74b1a8097ef
|
||||||
F test/check.test 33a698e8c63613449d85d624a38ef669bf20331daabebe3891c9405dd6df463a
|
F test/check.test 33a698e8c63613449d85d624a38ef669bf20331daabebe3891c9405dd6df463a
|
||||||
F test/checkfreelist.test 100283a3e6b8a3018c7fab7cfdaf03d1d6540fc66453114e248cf82b25784d3b
|
F test/checkfreelist.test 100283a3e6b8a3018c7fab7cfdaf03d1d6540fc66453114e248cf82b25784d3b
|
||||||
F test/checkindex.test 48cf7b237756f4691e7a12be78e1719d5b0456e7e205b87da380f3a6bec11966
|
F test/checkindex.test ea3ae087539e36cf8f63f65afe7347c3325147f6ddd873fb6bbb2214804d08f2
|
||||||
F test/close.test 799ea4599d2f5704b0a30f477d17c2c760d8523fa5d0c8be4a7df2a8cad787d8
|
F test/close.test 799ea4599d2f5704b0a30f477d17c2c760d8523fa5d0c8be4a7df2a8cad787d8
|
||||||
F test/closure01.test b1703ba40639cfc9b295cf478d70739415eec6a4
|
F test/closure01.test b1703ba40639cfc9b295cf478d70739415eec6a4
|
||||||
F test/coalesce.test cee0dccb9fbd2d494b77234bccf9dc6c6786eb91
|
F test/coalesce.test cee0dccb9fbd2d494b77234bccf9dc6c6786eb91
|
||||||
|
@ -1668,7 +1668,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
|
||||||
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
||||||
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
||||||
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
||||||
P d5b9dada471358a2864727759648b763bf6890fc2521fac53c0d8216017d39b7
|
P c40c3c62e996044f31ca49ffc2edb2cc0320e69956f7ee6fe3e9012200e0d9a0
|
||||||
R 31f10dd93d0cbe363e20ad50a747a726
|
R 35b9a81e4b8b6b857354a831ff9c29c1
|
||||||
U dan
|
U dan
|
||||||
Z 019388109f5e5cd896dce5eabbc0252a
|
Z cd0262c8d2e550da2f2d47bdfb3d2467
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
c40c3c62e996044f31ca49ffc2edb2cc0320e69956f7ee6fe3e9012200e0d9a0
|
3ebb2351e2650d263029d2c0042683cba3529c9d3f76b5f994f2e737b84d3f67
|
|
@ -185,6 +185,7 @@ do_index_check_test 2.3 i5 {
|
||||||
{} 3,2,2,9
|
{} 3,2,2,9
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
do_execsql_test 3.0 {
|
do_execsql_test 3.0 {
|
||||||
|
|
||||||
CREATE TABLE t3(w, x, y, z PRIMARY KEY) WITHOUT ROWID;
|
CREATE TABLE t3(w, x, y, z PRIMARY KEY) WITHOUT ROWID;
|
||||||
|
@ -216,5 +217,48 @@ do_index_check_test 3.2 t3wxy2 {
|
||||||
{} NULL,NULL,NULL,1 {} NULL,NULL,NULL,2 {} NULL,NULL,NULL,3
|
{} NULL,NULL,NULL,1 {} NULL,NULL,NULL,2 {} NULL,NULL,NULL,3
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
# Test with an index that uses non-default collation sequences.
|
||||||
|
#
|
||||||
|
do_execsql_test 4.0 {
|
||||||
|
CREATE TABLE t4(a INTEGER PRIMARY KEY, c1 TEXT, c2 TEXT);
|
||||||
|
INSERT INTO t4 VALUES(1, 'aaa', 'bbb');
|
||||||
|
INSERT INTO t4 VALUES(2, 'AAA', 'CCC');
|
||||||
|
INSERT INTO t4 VALUES(3, 'aab', 'ddd');
|
||||||
|
INSERT INTO t4 VALUES(4, 'AAB', 'EEE');
|
||||||
|
|
||||||
|
CREATE INDEX t4cc ON t4(c1 COLLATE nocase, c2 COLLATE nocase);
|
||||||
|
}
|
||||||
|
|
||||||
|
do_index_check_test 4.1 t4cc {
|
||||||
|
{} 'aaa','bbb',1
|
||||||
|
{} 'AAA','CCC',2
|
||||||
|
{} 'aab','ddd',3
|
||||||
|
{} 'AAB','EEE',4
|
||||||
|
}
|
||||||
|
|
||||||
|
do_test 4.2 {
|
||||||
|
set tblroot [db one { SELECT rootpage FROM sqlite_master WHERE name='t4' }]
|
||||||
|
sqlite3_test_control SQLITE_TESTCTRL_IMPOSTER db main 1 $tblroot
|
||||||
|
db eval {CREATE TABLE xt4(a INTEGER PRIMARY KEY, c1 TEXT, c2 TEXT)}
|
||||||
|
sqlite3_test_control SQLITE_TESTCTRL_IMPOSTER db main 0 0
|
||||||
|
|
||||||
|
execsql {
|
||||||
|
UPDATE xt4 SET c1='hello' WHERE rowid=2;
|
||||||
|
DELETE FROM xt4 WHERE rowid = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
sqlite3_test_control SQLITE_TESTCTRL_IMPOSTER db main 0 1
|
||||||
|
} {}
|
||||||
|
|
||||||
|
do_index_check_test 4.3 t4cc {
|
||||||
|
{} 'aaa','bbb',1
|
||||||
|
{row data mismatch} 'AAA','CCC',2
|
||||||
|
{row missing} 'aab','ddd',3
|
||||||
|
{} 'AAB','EEE',4
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
finish_test
|
finish_test
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue