mirror of
https://github.com/MariaDB/server.git
synced 2025-09-02 09:41:40 +03:00
Added a test case for bug #18359.
This was another manifestation of the problems fixed in the patch for bug 16674. Wrong calculation of length of the search prefix in the pattern string led here to a wrong result set for a query in 4.1. The bug could be demonstrated for any multi-byte character set.
This commit is contained in:
@@ -1237,3 +1237,59 @@ a
|
||||
Käli Käli 2-4
|
||||
Käli Käli 2-4
|
||||
DROP TABLE t1;
|
||||
SET NAMES latin2;
|
||||
CREATE TABLE t1 (
|
||||
id int(11) NOT NULL default '0',
|
||||
tid int(11) NOT NULL default '0',
|
||||
val text NOT NULL,
|
||||
INDEX idx(tid, val(10))
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
INSERT INTO t1 VALUES
|
||||
(40988,72,'VOLN<4C> ADSL'),(41009,72,'VOLN<4C> ADSL'),
|
||||
(41032,72,'VOLN<4C> ADSL'),(41038,72,'VOLN<4C> ADSL'),
|
||||
(41063,72,'VOLN<4C> ADSL'),(41537,72,'VOLN<4C> ADSL Office'),
|
||||
(42141,72,'VOLN<4C> ADSL'),(42565,72,'VOLN<4C> ADSL Combi'),
|
||||
(42749,72,'VOLN<4C> ADSL'),(44205,72,'VOLN<4C> ADSL');
|
||||
SELECT * FROM t1 WHERE tid=72 and val LIKE 'VOLNY ADSL';
|
||||
id tid val
|
||||
40988 72 VOLN<4C> ADSL
|
||||
41009 72 VOLN<4C> ADSL
|
||||
41032 72 VOLN<4C> ADSL
|
||||
41038 72 VOLN<4C> ADSL
|
||||
41063 72 VOLN<4C> ADSL
|
||||
42141 72 VOLN<4C> ADSL
|
||||
42749 72 VOLN<4C> ADSL
|
||||
44205 72 VOLN<4C> ADSL
|
||||
SELECT * FROM t1 WHERE tid=72 and val LIKE 'VOLN<4C> ADSL';
|
||||
id tid val
|
||||
40988 72 VOLN<4C> ADSL
|
||||
41009 72 VOLN<4C> ADSL
|
||||
41032 72 VOLN<4C> ADSL
|
||||
41038 72 VOLN<4C> ADSL
|
||||
41063 72 VOLN<4C> ADSL
|
||||
42141 72 VOLN<4C> ADSL
|
||||
42749 72 VOLN<4C> ADSL
|
||||
44205 72 VOLN<4C> ADSL
|
||||
SELECT * FROM t1 WHERE tid=72 and val LIKE '%VOLN<4C> ADSL';
|
||||
id tid val
|
||||
40988 72 VOLN<4C> ADSL
|
||||
41009 72 VOLN<4C> ADSL
|
||||
41032 72 VOLN<4C> ADSL
|
||||
41038 72 VOLN<4C> ADSL
|
||||
41063 72 VOLN<4C> ADSL
|
||||
42141 72 VOLN<4C> ADSL
|
||||
42749 72 VOLN<4C> ADSL
|
||||
44205 72 VOLN<4C> ADSL
|
||||
ALTER TABLE t1 DROP KEY idx;
|
||||
ALTER TABLE t1 ADD KEY idx (tid,val(11));
|
||||
SELECT * FROM t1 WHERE tid=72 and val LIKE 'VOLN<4C> ADSL';
|
||||
id tid val
|
||||
40988 72 VOLN<4C> ADSL
|
||||
41009 72 VOLN<4C> ADSL
|
||||
41032 72 VOLN<4C> ADSL
|
||||
41038 72 VOLN<4C> ADSL
|
||||
41063 72 VOLN<4C> ADSL
|
||||
42141 72 VOLN<4C> ADSL
|
||||
42749 72 VOLN<4C> ADSL
|
||||
44205 72 VOLN<4C> ADSL
|
||||
DROP TABLE t1;
|
||||
|
@@ -1009,4 +1009,35 @@ ALTER TABLE t1 ADD KEY (a(10));
|
||||
SELECT * FROM t1 WHERE a LIKE 'Käli Käli 2%';
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug#18359: LIKE predicate for a 'utf8' text column with a partial index
|
||||
# (see bug #16674 as well)
|
||||
#
|
||||
|
||||
SET NAMES latin2;
|
||||
|
||||
CREATE TABLE t1 (
|
||||
id int(11) NOT NULL default '0',
|
||||
tid int(11) NOT NULL default '0',
|
||||
val text NOT NULL,
|
||||
INDEX idx(tid, val(10))
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
INSERT INTO t1 VALUES
|
||||
(40988,72,'VOLN<4C> ADSL'),(41009,72,'VOLN<4C> ADSL'),
|
||||
(41032,72,'VOLN<4C> ADSL'),(41038,72,'VOLN<4C> ADSL'),
|
||||
(41063,72,'VOLN<4C> ADSL'),(41537,72,'VOLN<4C> ADSL Office'),
|
||||
(42141,72,'VOLN<4C> ADSL'),(42565,72,'VOLN<4C> ADSL Combi'),
|
||||
(42749,72,'VOLN<4C> ADSL'),(44205,72,'VOLN<4C> ADSL');
|
||||
|
||||
SELECT * FROM t1 WHERE tid=72 and val LIKE 'VOLNY ADSL';
|
||||
SELECT * FROM t1 WHERE tid=72 and val LIKE 'VOLN<4C> ADSL';
|
||||
SELECT * FROM t1 WHERE tid=72 and val LIKE '%VOLN<4C> ADSL';
|
||||
|
||||
ALTER TABLE t1 DROP KEY idx;
|
||||
ALTER TABLE t1 ADD KEY idx (tid,val(11));
|
||||
|
||||
SELECT * FROM t1 WHERE tid=72 and val LIKE 'VOLN<4C> ADSL';
|
||||
|
||||
DROP TABLE t1;
|
||||
# End of 4.1 tests
|
||||
|
Reference in New Issue
Block a user