Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.2.10
-
openSUSE 13.1 (x86_64)
Description
Steps to reproduce:
CREATE TABLE `aaa` ( |
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, |
`a` VARCHAR(50) NOT NULL COLLATE 'utf8mb4_unicode_nopad_ci', |
`b` VARCHAR(50) NOT NULL COLLATE 'utf8mb4_unicode_ci', |
PRIMARY KEY (`id`), |
INDEX `a` (`a`), |
INDEX `b` (`b`) |
)
|
COLLATE='utf8mb4_nopad_bin' |
ENGINE=InnoDB
|
;
|
INSERT INTO `aaa` VALUES (1, '123', '123'); |
Compare result of
SELECT * FROM netcon_fahrzeug.aaa WHERE a LIKE '123%' |
to
SELECT * FROM netcon_fahrzeug.aaa IGNORE INDEX (a) WHERE a LIKE '123%' |
The results shouldn't be different, the first query has an empty result which is not expected.
SELECT * FROM netcon_fahrzeug.aaa WHERE b LIKE '123%' |
works as expected though so this is happening with the collation utf8mb4_unicode_nopad_ci (and maybe others).
Attachments
Issue Links
- relates to
-
MDEV-9711 NO PAD collations
-
- Closed
-
Thanks for the report! Reproducible with Innodb, but not with Myisam, (after 10.2.2)
testcase:
) ENGINE=InnoDB;
#correct results
MariaDB [test]> select version();
+-----------------------+
| version() |
+-----------------------+
| 10.2.11-MariaDB-debug |
+-----------------------+
1 row in set (0.00 sec)
MariaDB [test]> SELECT a,b FROM t1 WHERE a LIKE '123%';
Empty set (0.00 sec)
MariaDB [test]> SELECT * FROM t1 WHERE a LIKE '123%';
Empty set (0.00 sec)
MariaDB [test]> SELECT a FROM t1 WHERE a LIKE '123%';
+------+
| a |
+------+
| 123 |
+------+
1 row in set (0.00 sec)
MariaDB [test]> SELECT a,b FROM t1 IGNORE INDEX (a) WHERE a LIKE '123%';
+------+------+
| a | b |
+------+------+
| 123 | 123 |
+------+------+
1 row in set (0.00 sec)
ANALYZE FORMAT=JSON SELECT * FROM t1 WHERE a LIKE '123%';
--------------
| ANALYZE
| {
"query_block": {
"select_id": 1,
"r_loops": 1,
"r_total_time_ms": 0.0539,
"table": {
"table_name": "t1",
"access_type": "range",
"possible_keys": ["a"],
"key": "a",
"key_length": "203",
"used_key_parts": ["a"],
"r_loops": 1,
"rows": 1,
"r_rows": 0,
"r_total_time_ms": 0.0284,
"filtered": 100,
"r_filtered": 100,
"index_condition": "t1.a like '123%'"
}
}
} |
1 row in set (0.00 sec)
ANALYZE FORMAT=JSON SELECT a,b FROM t1 IGNORE INDEX (a) WHERE a LIKE '123%'
{
"query_block": {
"select_id": 1,
"r_loops": 1,
"r_total_time_ms": 0.1091,
"table": {
"table_name": "t1",
"access_type": "ALL",
"r_loops": 1,
"rows": 1,
"r_rows": 1,
"r_total_time_ms": 0.0729,
"filtered": 100,
"r_filtered": 100,
"attached_condition": "t1.a like '123%'"
}
}
} |