mirror of
https://github.com/sqlite/sqlite.git
synced 2025-11-12 13:01:09 +03:00
Ensure that indexed expressions with collating sequences are handled
correctly. Proposed fix for ticket [eb703ba7b50c1a5]. FossilOrigin-Name: 9689d04b8250139e32078b2aa9748edcc6231bcd
This commit is contained in:
16
manifest
16
manifest
@@ -1,5 +1,5 @@
|
||||
C Bump\sthe\sversion\snumber\sup\sto\s3.18.0.
|
||||
D 2017-02-10T21:40:04.693
|
||||
C Ensure\sthat\sindexed\sexpressions\swith\scollating\ssequences\sare\shandled\ncorrectly.\s\sProposed\sfix\sfor\sticket\s[eb703ba7b50c1a5].
|
||||
D 2017-02-11T13:51:23.762
|
||||
F Makefile.in edb6bcdd37748d2b1c3422ff727c748df7ffe918
|
||||
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
|
||||
F Makefile.msc 067a6766f800cc8d72845ab61f8de4ffe8f3fc99
|
||||
@@ -347,7 +347,7 @@ F src/ctime.c 9f2296a4e5d26ebf0e0d95a0af4628f1ea694e7a
|
||||
F src/date.c dc3f1391d9297f8c748132813aaffcb117090d6e
|
||||
F src/dbstat.c 19ee7a4e89979d4df8e44cfac7a8f905ec89b77d
|
||||
F src/delete.c 0d9d5549d42e79ce4d82ff1db1e6c81e36d2f67c
|
||||
F src/expr.c d29114e9b709eaeaaa18553a5bbe60a19302aeef
|
||||
F src/expr.c c218ec8cfc12b2c5b354660ce7285dfaf43305e9
|
||||
F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
|
||||
F src/fkey.c 2e9aabe1aee76273aff8a84ee92c464e095400ae
|
||||
F src/func.c c67273e1ec08abbdcc14c189892a3ff6eeece86b
|
||||
@@ -475,7 +475,7 @@ F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
|
||||
F src/wal.c 40c543f0a2195d1b0dc88ef12142bea690009344
|
||||
F src/wal.h 06b2a0b599cc0f53ea97f497cf8c6b758c999f71
|
||||
F src/walker.c 91a6df7435827e41cff6bb7df50ea00934ee78b0
|
||||
F src/where.c bc71775e23d23334e8f449aa31012d692dc09cb2
|
||||
F src/where.c b0d81c6f24ea6aebb249c92c5d78ec8ab1452523
|
||||
F src/whereInt.h 2bcc3d176e6091cb8f50a30b65c006e88a73614d
|
||||
F src/wherecode.c 99a8ced164c75edf41b3a865a75381c9adb38b28
|
||||
F src/whereexpr.c 980109826ba02750421c3fa7ab0ecabbac0a639d
|
||||
@@ -867,7 +867,7 @@ F test/index6.test b4fc812290067a578b98bb2667b676db89e202a7
|
||||
F test/index7.test 7feababe16f2091b229c22aff2bcc1d4d6b9d2bb
|
||||
F test/index8.test bc2e3db70e8e62459aaa1bd7e4a9b39664f8f9d7
|
||||
F test/indexedby.test 9c4cd331224e57f79fbf411ae245e6272d415985
|
||||
F test/indexexpr1.test 7d243fac508b4a99fb900ffe34eb488312cfce84
|
||||
F test/indexexpr1.test 038b3befa74e5a75126b6e9dd2ae5df61c1c7cf7
|
||||
F test/indexfault.test 31d4ab9a7d2f6e9616933eb079722362a883eb1d
|
||||
F test/init.test 15c823093fdabbf7b531fe22cf037134d09587a7
|
||||
F test/insert.test 38742b5e9601c8f8d76e9b7555f7270288c2d371
|
||||
@@ -1555,7 +1555,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
|
||||
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
||||
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
||||
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
||||
P 158290c0abafde67ee3f2363f0b6646887841df3
|
||||
R 48ad943b0cb23a44970ddc9873b9da0a
|
||||
P 7520c238558346d421e3c24cb7d17a54d1aa56b2
|
||||
R 89fd81518c2edceda83a282bdfdfc51e
|
||||
U drh
|
||||
Z faf6e7fd0bb1d717431a908ec9819058
|
||||
Z 86c7ba615f1277d92ec3bd479587e4c2
|
||||
|
||||
@@ -1 +1 @@
|
||||
7520c238558346d421e3c24cb7d17a54d1aa56b2
|
||||
9689d04b8250139e32078b2aa9748edcc6231bcd
|
||||
@@ -231,7 +231,7 @@ static char comparisonAffinity(Expr *pExpr){
|
||||
aff = sqlite3CompareAffinity(pExpr->pRight, aff);
|
||||
}else if( ExprHasProperty(pExpr, EP_xIsSelect) ){
|
||||
aff = sqlite3CompareAffinity(pExpr->x.pSelect->pEList->a[0].pExpr, aff);
|
||||
}else if( NEVER(aff==0) ){
|
||||
}else if( aff==0 ){
|
||||
aff = SQLITE_AFF_BLOB;
|
||||
}
|
||||
return aff;
|
||||
|
||||
@@ -308,6 +308,7 @@ static WhereTerm *whereScanInit(
|
||||
iColumn = pIdx->aiColumn[j];
|
||||
if( iColumn==XN_EXPR ){
|
||||
pScan->pIdxExpr = pIdx->aColExpr->a[j].pExpr;
|
||||
pScan->zCollName = pIdx->azColl[j];
|
||||
}else if( iColumn==pIdx->pTable->iPKey ){
|
||||
iColumn = XN_ROWID;
|
||||
}else if( iColumn>=0 ){
|
||||
|
||||
@@ -370,4 +370,14 @@ do_execsql_test indexexpr1-1200.4 {
|
||||
0 0 0 2 0 4 2 0 2 2 4 0
|
||||
}
|
||||
|
||||
# Ticket https://www.sqlite.org/src/tktview/eb703ba7b50c1a
|
||||
# Incorrect result using an index on an expression with a collating function
|
||||
#
|
||||
do_execsql_test indexexpr1-1300.1 {
|
||||
CREATE TABLE t1300(a INTEGER PRIMARY KEY, b);
|
||||
INSERT INTO t1300 VALUES(1,'coffee'),(2,'COFFEE'),(3,'stress'),(4,'STRESS');
|
||||
CREATE INDEX t1300bexpr ON t1300( substr(b,4) );
|
||||
SELECT a FROM t1300 WHERE substr(b,4)='ess' COLLATE nocase ORDER BY +a;
|
||||
} {3 4}
|
||||
|
||||
finish_test
|
||||
|
||||
Reference in New Issue
Block a user