1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

MDEV-4778: Incorrect results from Aria/MyISAM SELECT using index with prefix length on TEXT column

Backport the fix olav.sandstaa@sun.com-20101102184747-qfuntqwj021imy9r:
"Fix for Bug#52660 Perf. regr. using ICP for MyISAM on range queries on an index containing TEXT" 
(together with further fixes in that code) into MyISAM and Aria.
This commit is contained in:
Sergey Petrunya
2013-07-16 10:56:42 +04:00
parent 9651a6f574
commit 47c1b04079
10 changed files with 180 additions and 14 deletions

View File

@ -892,3 +892,24 @@ insert into t1 values ('',1);
select 1 from t1 where b <= 1 and a <> '';
drop table t1;
--echo #
--echo # MDEV-4778: Incorrect results from Aria/MyISAM SELECT using index with prefix length on TEXT column
--echo #
CREATE TABLE t1 (
c1 TEXT ,
c2 VARCHAR(2) ,
INDEX idx1 (c2,c1(2)),
INDEX idx2 (c2,c1(1))
);
INSERT INTO t1 (c1,c2) VALUES ('aa','x'), ('a' ,'y');
SELECT * FROM t1 IGNORE INDEX(idx1,idx2) WHERE (c1='aa' AND c2='x') OR (c1='a' AND c2='y');
EXPLAIN
SELECT * FROM t1 FORCE INDEX(idx1) WHERE (c1='aa' AND c2='x') OR (c1='a' AND c2='y');
SELECT * FROM t1 FORCE INDEX(idx1) WHERE (c1='aa' AND c2='x') OR (c1='a' AND c2='y');
SELECT * FROM t1 FORCE INDEX(idx2) WHERE (c1='aa' AND c2='x') OR (c1='a' AND c2='y');
DROP TABLE t1;