Skip to content

Commit 094b0f8

Browse files
committed
Merge 10.2 into bb-10.2-ext
2 parents 38908aa + bf96310 commit 094b0f8

22 files changed

+295
-18
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
--echo #
2+
--echo # MDEV-14350 Index use with collation utf8mb4_unicode_nopad_ci on LIKE pattern with wrong results
3+
--echo #
4+
5+
CREATE OR REPLACE TABLE t1 AS SELECT SPACE(50) AS a, SPACE (50) AS b;
6+
ALTER TABLE t1 ADD KEY(a), ADD KEY(b);
7+
SHOW CREATE TABLE t1;
8+
INSERT INTO t1 VALUES ('111', '111');
9+
INSERT INTO t1 VALUES ('222', '222');
10+
INSERT INTO t1 VALUES ('333', '333');
11+
INSERT INTO t1 VALUES ('444', '444');
12+
SELECT * FROM t1 WHERE a LIKE '111%';
13+
SELECT * FROM t1 IGNORE INDEX (a) WHERE a LIKE '111%';
14+
DROP TABLE t1;

mysql-test/r/ctype_latin1.result

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8804,6 +8804,31 @@ DROP TABLE t1;
88048804
# End of ctype_pad.inc
88058805
#
88068806
SET STORAGE_ENGINE=Default;
8807+
SET NAMES latin1;
8808+
#
8809+
# MDEV-14350 Index use with collation utf8mb4_unicode_nopad_ci on LIKE pattern with wrong results
8810+
#
8811+
CREATE OR REPLACE TABLE t1 AS SELECT SPACE(50) AS a, SPACE (50) AS b;
8812+
ALTER TABLE t1 ADD KEY(a), ADD KEY(b);
8813+
SHOW CREATE TABLE t1;
8814+
Table Create Table
8815+
t1 CREATE TABLE `t1` (
8816+
`a` varchar(50) DEFAULT NULL,
8817+
`b` varchar(50) DEFAULT NULL,
8818+
KEY `a` (`a`),
8819+
KEY `b` (`b`)
8820+
) ENGINE=MyISAM DEFAULT CHARSET=latin1
8821+
INSERT INTO t1 VALUES ('111', '111');
8822+
INSERT INTO t1 VALUES ('222', '222');
8823+
INSERT INTO t1 VALUES ('333', '333');
8824+
INSERT INTO t1 VALUES ('444', '444');
8825+
SELECT * FROM t1 WHERE a LIKE '111%';
8826+
a b
8827+
111 111
8828+
SELECT * FROM t1 IGNORE INDEX (a) WHERE a LIKE '111%';
8829+
a b
8830+
111 111
8831+
DROP TABLE t1;
88078832
#
88088833
# End of 10.2 tests
88098834
#

mysql-test/r/ctype_like_range.result

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4430,5 +4430,50 @@ a_ 6100 61FF
44304430
a% 61000000000000000000 61FFFFFFFFFFFFFFFFFF
44314431
DROP TABLE t1;
44324432
#
4433+
# MDEV-14350 Index use with collation utf8mb4_unicode_nopad_ci on LIKE pattern with wrong results
4434+
#
4435+
CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1 COLLATE latin1_swedish_nopad_ci);
4436+
INSERT INTO t1 VALUES ('111%');
4437+
SELECT a, HEX(LIKE_RANGE_MIN(a,200)) FROM t1;
4438+
a HEX(LIKE_RANGE_MIN(a,200))
4439+
111% 313131
4440+
DROP TABLE t1;
4441+
CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_general_nopad_ci);
4442+
INSERT INTO t1 VALUES ('111%');
4443+
SELECT a, HEX(LIKE_RANGE_MIN(a,200)) FROM t1;
4444+
a HEX(LIKE_RANGE_MIN(a,200))
4445+
111% 313131
4446+
DROP TABLE t1;
4447+
CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_unicode_nopad_ci);
4448+
INSERT INTO t1 VALUES ('111%');
4449+
SELECT a, HEX(LIKE_RANGE_MIN(a,200)) FROM t1;
4450+
a HEX(LIKE_RANGE_MIN(a,200))
4451+
111% 313131
4452+
DROP TABLE t1;
4453+
CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_nopad_ci);
4454+
INSERT INTO t1 VALUES ('111%');
4455+
SELECT a, HEX(LIKE_RANGE_MIN(a,200)) FROM t1;
4456+
a HEX(LIKE_RANGE_MIN(a,200))
4457+
111% 313131
4458+
DROP TABLE t1;
4459+
CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET ucs2 COLLATE ucs2_unicode_nopad_ci);
4460+
INSERT INTO t1 VALUES ('111%');
4461+
SELECT a, HEX(LIKE_RANGE_MIN(a,200)) FROM t1;
4462+
a HEX(LIKE_RANGE_MIN(a,200))
4463+
111% 003100310031
4464+
DROP TABLE t1;
4465+
CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf16 COLLATE utf16_unicode_nopad_ci);
4466+
INSERT INTO t1 VALUES ('111%');
4467+
SELECT a, HEX(LIKE_RANGE_MIN(a,200)) FROM t1;
4468+
a HEX(LIKE_RANGE_MIN(a,200))
4469+
111% 003100310031
4470+
DROP TABLE t1;
4471+
CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf32 COLLATE utf32_unicode_nopad_ci);
4472+
INSERT INTO t1 VALUES ('111%');
4473+
SELECT a, HEX(LIKE_RANGE_MIN(a,200)) FROM t1;
4474+
a HEX(LIKE_RANGE_MIN(a,200))
4475+
111% 000000310000003100000031
4476+
DROP TABLE t1;
4477+
#
44334478
# End of 10.2 tests
44344479
#

mysql-test/r/ctype_ucs2_uca.result

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -559,6 +559,32 @@ DROP TABLE t1;
559559
# End of ctype_pad.inc
560560
#
561561
SET STORAGE_ENGINE=Default;
562+
SET NAMES utf8, collation_connection=ucs2_unicode_520_nopad_ci;
563+
#
564+
# MDEV-14350 Index use with collation utf8mb4_unicode_nopad_ci on LIKE pattern with wrong results
565+
#
566+
CREATE OR REPLACE TABLE t1 AS SELECT SPACE(50) AS a, SPACE (50) AS b;
567+
ALTER TABLE t1 ADD KEY(a), ADD KEY(b);
568+
SHOW CREATE TABLE t1;
569+
Table Create Table
570+
t1 CREATE TABLE `t1` (
571+
`a` varchar(50) CHARACTER SET ucs2 COLLATE ucs2_unicode_520_nopad_ci DEFAULT NULL,
572+
`b` varchar(50) CHARACTER SET ucs2 COLLATE ucs2_unicode_520_nopad_ci DEFAULT NULL,
573+
KEY `a` (`a`),
574+
KEY `b` (`b`)
575+
) ENGINE=MyISAM DEFAULT CHARSET=latin1
576+
INSERT INTO t1 VALUES ('111', '111');
577+
INSERT INTO t1 VALUES ('222', '222');
578+
INSERT INTO t1 VALUES ('333', '333');
579+
INSERT INTO t1 VALUES ('444', '444');
580+
SELECT * FROM t1 WHERE a LIKE '111%';
581+
a b
582+
111 111
583+
SELECT * FROM t1 IGNORE INDEX (a) WHERE a LIKE '111%';
584+
a b
585+
111 111
586+
DROP TABLE t1;
587+
SET NAMES utf8;
562588
#
563589
# End of 10.2 tests
564590
#

mysql-test/r/ctype_utf16_uca.result

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7866,6 +7866,32 @@ DROP TABLE t1;
78667866
# End of ctype_pad.inc
78677867
#
78687868
SET STORAGE_ENGINE=Default;
7869+
SET NAMES utf8, collation_connection=utf16_unicode_520_nopad_ci;
7870+
#
7871+
# MDEV-14350 Index use with collation utf8mb4_unicode_nopad_ci on LIKE pattern with wrong results
7872+
#
7873+
CREATE OR REPLACE TABLE t1 AS SELECT SPACE(50) AS a, SPACE (50) AS b;
7874+
ALTER TABLE t1 ADD KEY(a), ADD KEY(b);
7875+
SHOW CREATE TABLE t1;
7876+
Table Create Table
7877+
t1 CREATE TABLE `t1` (
7878+
`a` varchar(50) CHARACTER SET utf16 COLLATE utf16_unicode_520_nopad_ci DEFAULT NULL,
7879+
`b` varchar(50) CHARACTER SET utf16 COLLATE utf16_unicode_520_nopad_ci DEFAULT NULL,
7880+
KEY `a` (`a`),
7881+
KEY `b` (`b`)
7882+
) ENGINE=MyISAM DEFAULT CHARSET=latin1
7883+
INSERT INTO t1 VALUES ('111', '111');
7884+
INSERT INTO t1 VALUES ('222', '222');
7885+
INSERT INTO t1 VALUES ('333', '333');
7886+
INSERT INTO t1 VALUES ('444', '444');
7887+
SELECT * FROM t1 WHERE a LIKE '111%';
7888+
a b
7889+
111 111
7890+
SELECT * FROM t1 IGNORE INDEX (a) WHERE a LIKE '111%';
7891+
a b
7892+
111 111
7893+
DROP TABLE t1;
7894+
SET NAMES utf8;
78697895
#
78707896
# End of 10.2 tests
78717897
#

mysql-test/r/ctype_utf32_uca.result

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7886,6 +7886,32 @@ DROP TABLE t1;
78867886
# End of ctype_pad.inc
78877887
#
78887888
SET STORAGE_ENGINE=Default;
7889+
SET NAMES utf8, collation_connection=utf32_unicode_520_nopad_ci;
7890+
#
7891+
# MDEV-14350 Index use with collation utf8mb4_unicode_nopad_ci on LIKE pattern with wrong results
7892+
#
7893+
CREATE OR REPLACE TABLE t1 AS SELECT SPACE(50) AS a, SPACE (50) AS b;
7894+
ALTER TABLE t1 ADD KEY(a), ADD KEY(b);
7895+
SHOW CREATE TABLE t1;
7896+
Table Create Table
7897+
t1 CREATE TABLE `t1` (
7898+
`a` varchar(50) CHARACTER SET utf32 COLLATE utf32_unicode_520_nopad_ci DEFAULT NULL,
7899+
`b` varchar(50) CHARACTER SET utf32 COLLATE utf32_unicode_520_nopad_ci DEFAULT NULL,
7900+
KEY `a` (`a`),
7901+
KEY `b` (`b`)
7902+
) ENGINE=MyISAM DEFAULT CHARSET=latin1
7903+
INSERT INTO t1 VALUES ('111', '111');
7904+
INSERT INTO t1 VALUES ('222', '222');
7905+
INSERT INTO t1 VALUES ('333', '333');
7906+
INSERT INTO t1 VALUES ('444', '444');
7907+
SELECT * FROM t1 WHERE a LIKE '111%';
7908+
a b
7909+
111 111
7910+
SELECT * FROM t1 IGNORE INDEX (a) WHERE a LIKE '111%';
7911+
a b
7912+
111 111
7913+
DROP TABLE t1;
7914+
SET NAMES utf8;
78897915
#
78907916
# End of 10.2 tests
78917917
#

mysql-test/r/ctype_utf8_uca.result

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -559,6 +559,31 @@ DROP TABLE t1;
559559
# End of ctype_pad.inc
560560
#
561561
SET STORAGE_ENGINE=Default;
562+
SET NAMES utf8 COLLATE utf8_unicode_nopad_ci;
563+
#
564+
# MDEV-14350 Index use with collation utf8mb4_unicode_nopad_ci on LIKE pattern with wrong results
565+
#
566+
CREATE OR REPLACE TABLE t1 AS SELECT SPACE(50) AS a, SPACE (50) AS b;
567+
ALTER TABLE t1 ADD KEY(a), ADD KEY(b);
568+
SHOW CREATE TABLE t1;
569+
Table Create Table
570+
t1 CREATE TABLE `t1` (
571+
`a` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_nopad_ci DEFAULT NULL,
572+
`b` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_nopad_ci DEFAULT NULL,
573+
KEY `a` (`a`),
574+
KEY `b` (`b`)
575+
) ENGINE=MyISAM DEFAULT CHARSET=latin1
576+
INSERT INTO t1 VALUES ('111', '111');
577+
INSERT INTO t1 VALUES ('222', '222');
578+
INSERT INTO t1 VALUES ('333', '333');
579+
INSERT INTO t1 VALUES ('444', '444');
580+
SELECT * FROM t1 WHERE a LIKE '111%';
581+
a b
582+
111 111
583+
SELECT * FROM t1 IGNORE INDEX (a) WHERE a LIKE '111%';
584+
a b
585+
111 111
586+
DROP TABLE t1;
562587
#
563588
# End of 10.2 tests
564589
#

mysql-test/r/ctype_utf8mb4_uca.result

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6576,6 +6576,32 @@ DROP TABLE t1;
65766576
# End of ctype_pad.inc
65776577
#
65786578
SET STORAGE_ENGINE=Default;
6579+
SET NAMES utf8mb4 COLLATE utf8mb4_unicode_520_nopad_ci;
6580+
#
6581+
# MDEV-14350 Index use with collation utf8mb4_unicode_nopad_ci on LIKE pattern with wrong results
6582+
#
6583+
CREATE OR REPLACE TABLE t1 AS SELECT SPACE(50) AS a, SPACE (50) AS b;
6584+
ALTER TABLE t1 ADD KEY(a), ADD KEY(b);
6585+
SHOW CREATE TABLE t1;
6586+
Table Create Table
6587+
t1 CREATE TABLE `t1` (
6588+
`a` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_nopad_ci DEFAULT NULL,
6589+
`b` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_nopad_ci DEFAULT NULL,
6590+
KEY `a` (`a`),
6591+
KEY `b` (`b`)
6592+
) ENGINE=MyISAM DEFAULT CHARSET=latin1
6593+
INSERT INTO t1 VALUES ('111', '111');
6594+
INSERT INTO t1 VALUES ('222', '222');
6595+
INSERT INTO t1 VALUES ('333', '333');
6596+
INSERT INTO t1 VALUES ('444', '444');
6597+
SELECT * FROM t1 WHERE a LIKE '111%';
6598+
a b
6599+
111 111
6600+
SELECT * FROM t1 IGNORE INDEX (a) WHERE a LIKE '111%';
6601+
a b
6602+
111 111
6603+
DROP TABLE t1;
6604+
SET NAMES utf8mb4;
65796605
#
65806606
# End of 10.2 tests
65816607
#

mysql-test/suite/sys_vars/r/sysvars_innodb.result

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1614,7 +1614,7 @@ NUMERIC_MIN_VALUE NULL
16141614
NUMERIC_MAX_VALUE NULL
16151615
NUMERIC_BLOCK_SIZE NULL
16161616
ENUM_VALUE_LIST fcfs,vats
1617-
READ_ONLY NO
1617+
READ_ONLY YES
16181618
COMMAND_LINE_ARGUMENT REQUIRED
16191619
VARIABLE_NAME INNODB_LOCK_WAIT_TIMEOUT
16201620
SESSION_VALUE 50
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
--innodb-lock-schedule-algorithm=FCFS

mysql-test/t/ctype_latin1.test

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,9 @@ let $coll='latin1_nopad_bin';
411411
let $coll_pad='latin1_bin';
412412
--source include/ctype_pad_all_engines.inc
413413

414+
SET NAMES latin1;
415+
--source include/ctype_like_range_mdev14350.inc
416+
414417
--echo #
415418
--echo # End of 10.2 tests
416419
--echo #

mysql-test/t/ctype_like_range.test

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,46 @@ INSERT INTO t1 (a) VALUES ('a'),('a_'),('a%');
154154
SELECT a, HEX(mn), HEX(mx) FROM t1;
155155
DROP TABLE t1;
156156

157+
--echo #
158+
--echo # MDEV-14350 Index use with collation utf8mb4_unicode_nopad_ci on LIKE pattern with wrong results
159+
--echo #
160+
161+
CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1 COLLATE latin1_swedish_nopad_ci);
162+
INSERT INTO t1 VALUES ('111%');
163+
SELECT a, HEX(LIKE_RANGE_MIN(a,200)) FROM t1;
164+
DROP TABLE t1;
165+
166+
CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_general_nopad_ci);
167+
INSERT INTO t1 VALUES ('111%');
168+
SELECT a, HEX(LIKE_RANGE_MIN(a,200)) FROM t1;
169+
DROP TABLE t1;
170+
171+
CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_unicode_nopad_ci);
172+
INSERT INTO t1 VALUES ('111%');
173+
SELECT a, HEX(LIKE_RANGE_MIN(a,200)) FROM t1;
174+
DROP TABLE t1;
175+
176+
CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_nopad_ci);
177+
INSERT INTO t1 VALUES ('111%');
178+
SELECT a, HEX(LIKE_RANGE_MIN(a,200)) FROM t1;
179+
DROP TABLE t1;
180+
181+
CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET ucs2 COLLATE ucs2_unicode_nopad_ci);
182+
INSERT INTO t1 VALUES ('111%');
183+
SELECT a, HEX(LIKE_RANGE_MIN(a,200)) FROM t1;
184+
DROP TABLE t1;
185+
186+
CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf16 COLLATE utf16_unicode_nopad_ci);
187+
INSERT INTO t1 VALUES ('111%');
188+
SELECT a, HEX(LIKE_RANGE_MIN(a,200)) FROM t1;
189+
DROP TABLE t1;
190+
191+
CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf32 COLLATE utf32_unicode_nopad_ci);
192+
INSERT INTO t1 VALUES ('111%');
193+
SELECT a, HEX(LIKE_RANGE_MIN(a,200)) FROM t1;
194+
DROP TABLE t1;
195+
196+
157197
--echo #
158198
--echo # End of 10.2 tests
159199
--echo #

mysql-test/t/ctype_ucs2_uca.test

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ let $coll='ucs2_unicode_520_nopad_ci';
1616
let $coll_pad='ucs2_unicode_520_ci';
1717
--source include/ctype_pad_all_engines.inc
1818

19+
SET NAMES utf8, collation_connection=ucs2_unicode_520_nopad_ci;
20+
--source include/ctype_like_range_mdev14350.inc
21+
SET NAMES utf8;
22+
1923
--echo #
2024
--echo # End of 10.2 tests
2125
--echo #

mysql-test/t/ctype_utf16_uca.test

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,11 @@ let $coll='utf16_unicode_520_nopad_ci';
238238
let $coll_pad='utf16_unicode_520_ci';
239239
--source include/ctype_pad_all_engines.inc
240240

241+
SET NAMES utf8, collation_connection=utf16_unicode_520_nopad_ci;
242+
--source include/ctype_like_range_mdev14350.inc
243+
SET NAMES utf8;
244+
245+
241246
--echo #
242247
--echo # End of 10.2 tests
243248
--echo #

mysql-test/t/ctype_utf32_uca.test

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,11 @@ let $coll='utf32_unicode_520_nopad_ci';
260260
let $coll_pad='utf32_unicode_520_ci';
261261
--source include/ctype_pad_all_engines.inc
262262

263+
SET NAMES utf8, collation_connection=utf32_unicode_520_nopad_ci;
264+
--source include/ctype_like_range_mdev14350.inc
265+
SET NAMES utf8;
266+
267+
263268
--echo #
264269
--echo # End of 10.2 tests
265270
--echo #

mysql-test/t/ctype_utf8_uca.test

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ let $coll='utf8_unicode_520_nopad_ci';
1414
let $coll_pad='utf8_unicode_520_ci';
1515
--source include/ctype_pad_all_engines.inc
1616

17+
SET NAMES utf8 COLLATE utf8_unicode_nopad_ci;
18+
--source include/ctype_like_range_mdev14350.inc
19+
1720

1821
--echo #
1922
--echo # End of 10.2 tests

mysql-test/t/ctype_utf8mb4_uca.test

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,11 @@ let $coll='utf8mb4_unicode_520_nopad_ci';
100100
let $coll_pad='utf8mb4_unicode_520_ci';
101101
--source include/ctype_pad_all_engines.inc
102102

103+
SET NAMES utf8mb4 COLLATE utf8mb4_unicode_520_nopad_ci;
104+
--source include/ctype_like_range_mdev14350.inc
105+
SET NAMES utf8mb4;
106+
107+
103108
--echo #
104109
--echo # End of 10.2 tests
105110
--echo #

storage/innobase/dict/dict0defrag_bg.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ dict_stats_save_defrag_stats(dict_index_t* index, trx_t* trx)
318318
return DB_SUCCESS;
319319
}
320320

321-
lint now = ut_time();
321+
ib_time_t now = ut_time();
322322
dberr_t err = dict_stats_save_index_stat(
323323
index, now, "n_page_split",
324324
index->stat_defrag_n_page_split,

0 commit comments

Comments
 (0)