Skip to content

Commit fdcfc25

Browse files
committed
Merge branch '10.3' into 10.4
2 parents 6cb8434 + 56948ee commit fdcfc25

38 files changed

+524
-116
lines changed

mysql-test/main/create.result

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2032,6 +2032,17 @@ Warnings:
20322032
Warning 1280 Name 'foo' ignored for PRIMARY key.
20332033
DROP TABLE t1;
20342034
#
2035+
# MDEV-30342 Wrong "Truncated incorrect DECIMAL value" warning/error
2036+
#
2037+
create table t1(c1 varchar(1));
2038+
insert into t1(c1) values('#');
2039+
select @@sql_mode like '%strict_all_tables%';
2040+
@@sql_mode like '%strict_all_tables%'
2041+
0
2042+
create table t2 as select if(c1 = '#', c1 = 0, c1) as c1 from t1;
2043+
ERROR 22007: Truncated incorrect DECIMAL value: '#'
2044+
drop table t1;
2045+
#
20352046
# End of 10.3 tests
20362047
#
20372048
#

mysql-test/main/create.test

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1892,6 +1892,19 @@ create table t1 (c int(10) unsigned) engine=memory transactional=0;
18921892
CREATE TABLE t1 ( id1 INT, id2 INT, CONSTRAINT `foo` PRIMARY KEY (id1), CONSTRAINT `bar` UNIQUE KEY(id2));
18931893
DROP TABLE t1;
18941894

1895+
--echo #
1896+
--echo # MDEV-30342 Wrong "Truncated incorrect DECIMAL value" warning/error
1897+
--echo #
1898+
1899+
create table t1(c1 varchar(1));
1900+
insert into t1(c1) values('#');
1901+
1902+
select @@sql_mode like '%strict_all_tables%';
1903+
--error ER_TRUNCATED_WRONG_VALUE
1904+
create table t2 as select if(c1 = '#', c1 = 0, c1) as c1 from t1;
1905+
1906+
drop table t1;
1907+
18951908
--echo #
18961909
--echo # End of 10.3 tests
18971910
--echo #

mysql-test/main/func_group.result

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
drop table if exists t1,t2,t3,t4,t5,t6;
21
set @sav_dpi= @@div_precision_increment;
32
set div_precision_increment= 5;
43
show variables like 'div_precision_increment';
@@ -2567,5 +2566,15 @@ stddev_samp(i) stddev_pop(i) stddev(i) std(i)
25672566
drop view v1;
25682567
drop table t1;
25692568
#
2569+
# MDEV-29988: Major performance regression with 10.6.11
2570+
#
2571+
create table t1 (a varchar(10) charset utf8mb4, b int, c int);
2572+
insert t1 values (1,2,3),(4,5,6),(1,7,8);
2573+
select concat(a,":",group_concat(b)) from t1 group by a;
2574+
concat(a,":",group_concat(b))
2575+
1:2,7
2576+
4:5
2577+
drop table t1;
2578+
#
25702579
# End of 10.3 tests
25712580
#

mysql-test/main/func_group.test

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,6 @@
22
# simple test of all group functions
33
#
44

5-
--disable_warnings
6-
drop table if exists t1,t2,t3,t4,t5,t6;
7-
--enable_warnings
8-
95
set @sav_dpi= @@div_precision_increment;
106
set div_precision_increment= 5;
117
show variables like 'div_precision_increment';
@@ -1801,6 +1797,14 @@ select * from v1;
18011797
drop view v1;
18021798
drop table t1;
18031799

1800+
--echo #
1801+
--echo # MDEV-29988: Major performance regression with 10.6.11
1802+
--echo #
1803+
create table t1 (a varchar(10) charset utf8mb4, b int, c int);
1804+
insert t1 values (1,2,3),(4,5,6),(1,7,8);
1805+
select concat(a,":",group_concat(b)) from t1 group by a;
1806+
drop table t1;
1807+
18041808
--echo #
18051809
--echo # End of 10.3 tests
18061810
--echo #

mysql-test/main/insert_select.result

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1042,4 +1042,17 @@ select * from t1;
10421042
a
10431043
deallocate prepare stmt;
10441044
drop table t1,t2,t3;
1045+
#
1046+
# MDEV-30342 Wrong "Truncated incorrect DECIMAL value" warning/error
1047+
#
1048+
create table t1(c1 varchar(1));
1049+
create table t2(c1 varchar(1));
1050+
insert into t1(c1) values('#');
1051+
select @@sql_mode like '%strict_all_tables%';
1052+
@@sql_mode like '%strict_all_tables%'
1053+
0
1054+
insert into t2(c1) select if(c1 = '#', c1 = 0, c1) as c1 from t1;
1055+
drop table t1, t2;
1056+
#
10451057
# End of 10.3 test
1058+
#

mysql-test/main/insert_select.test

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -595,4 +595,21 @@ deallocate prepare stmt;
595595

596596
drop table t1,t2,t3;
597597

598+
599+
--echo #
600+
--echo # MDEV-30342 Wrong "Truncated incorrect DECIMAL value" warning/error
601+
--echo #
602+
603+
create table t1(c1 varchar(1));
604+
create table t2(c1 varchar(1));
605+
606+
insert into t1(c1) values('#');
607+
608+
select @@sql_mode like '%strict_all_tables%';
609+
insert into t2(c1) select if(c1 = '#', c1 = 0, c1) as c1 from t1;
610+
611+
drop table t1, t2;
612+
613+
--echo #
598614
--echo # End of 10.3 test
615+
--echo #

mysql-test/main/join_nested.result

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1999,3 +1999,55 @@ Note 1003 select `test`.`t3`.`pk` AS `pk`,`test`.`t3`.`c1` AS `c1`,`test`.`t3`.`
19991999
DROP TABLE t1,t2,t3;
20002000
set join_cache_level= @save_join_cache_level;
20012001
set optimizer_switch=@save_optimizer_switch;
2002+
#
2003+
# MDEV-27624: Nested left joins with not_exists optimization
2004+
# for most inner left join
2005+
#
2006+
set @save_join_cache_level= @@join_cache_level;
2007+
CREATE TABLE t1 (a INT NOT NULL, b INT, c INT);
2008+
INSERT INTO t1 VALUES (1,1,1), (1,2,1), (1,3,1);
2009+
CREATE TABLE t2(a INT NOT NULL);
2010+
INSERT INTO t2 VALUES (1), (2);
2011+
CREATE TABLE t3(a INT not null, b INT);
2012+
INSERT INTO t3 VALUES (1, 1), (2, 1), (3, 1);
2013+
set join_cache_level = 0;
2014+
EXPLAIN SELECT *
2015+
FROM t1
2016+
LEFT JOIN
2017+
( t2 LEFT JOIN t3 ON t2.a = t3.b )
2018+
ON t2.a = 1 AND (t3.b = t1.a AND t3.a > t1.b OR t3.a is NULL)
2019+
WHERE t1.c = 1 AND t3.a is NULL;
2020+
id select_type table type possible_keys key key_len ref rows Extra
2021+
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
2022+
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where
2023+
1 SIMPLE t3 ALL NULL NULL NULL NULL 3 Using where; Not exists
2024+
SELECT *
2025+
FROM t1
2026+
LEFT JOIN
2027+
( t2 LEFT JOIN t3 ON t2.a = t3.b )
2028+
ON t2.a = 1 AND (t3.b = t1.a AND t3.a > t1.b OR t3.a is NULL)
2029+
WHERE t1.c = 1 AND t3.a is NULL;
2030+
a b c a a b
2031+
1 3 1 NULL NULL NULL
2032+
set join_cache_level = 2;
2033+
EXPLAIN SELECT *
2034+
FROM t1
2035+
LEFT JOIN
2036+
( t2 LEFT JOIN t3 ON t2.a = t3.b )
2037+
ON t2.a = 1 AND (t3.b = t1.a AND t3.a > t1.b OR t3.a is NULL)
2038+
WHERE t1.c = 1 AND t3.a is NULL;
2039+
id select_type table type possible_keys key key_len ref rows Extra
2040+
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
2041+
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
2042+
1 SIMPLE t3 ALL NULL NULL NULL NULL 3 Using where; Not exists; Using join buffer (incremental, BNL join)
2043+
SELECT *
2044+
FROM t1
2045+
LEFT JOIN
2046+
( t2 LEFT JOIN t3 ON t2.a = t3.b )
2047+
ON t2.a = 1 AND (t3.b = t1.a AND t3.a > t1.b OR t3.a is NULL)
2048+
WHERE t1.c = 1 AND t3.a is NULL;
2049+
a b c a a b
2050+
1 3 1 NULL NULL NULL
2051+
DROP TABLE t1, t2, t3;
2052+
set join_cache_level= @save_join_cache_level;
2053+
# end of 10.3 tests

mysql-test/main/join_nested.test

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1419,3 +1419,41 @@ DROP TABLE t1,t2,t3;
14191419
set join_cache_level= @save_join_cache_level;
14201420

14211421
set optimizer_switch=@save_optimizer_switch;
1422+
1423+
--echo #
1424+
--echo # MDEV-27624: Nested left joins with not_exists optimization
1425+
--echo # for most inner left join
1426+
--echo #
1427+
1428+
set @save_join_cache_level= @@join_cache_level;
1429+
1430+
CREATE TABLE t1 (a INT NOT NULL, b INT, c INT);
1431+
INSERT INTO t1 VALUES (1,1,1), (1,2,1), (1,3,1);
1432+
1433+
CREATE TABLE t2(a INT NOT NULL);
1434+
INSERT INTO t2 VALUES (1), (2);
1435+
1436+
CREATE TABLE t3(a INT not null, b INT);
1437+
INSERT INTO t3 VALUES (1, 1), (2, 1), (3, 1);
1438+
1439+
let $q=
1440+
SELECT *
1441+
FROM t1
1442+
LEFT JOIN
1443+
( t2 LEFT JOIN t3 ON t2.a = t3.b )
1444+
ON t2.a = 1 AND (t3.b = t1.a AND t3.a > t1.b OR t3.a is NULL)
1445+
WHERE t1.c = 1 AND t3.a is NULL;
1446+
1447+
set join_cache_level = 0;
1448+
eval EXPLAIN $q;
1449+
eval $q;
1450+
1451+
set join_cache_level = 2;
1452+
eval EXPLAIN $q;
1453+
eval $q;
1454+
1455+
DROP TABLE t1, t2, t3;
1456+
1457+
set join_cache_level= @save_join_cache_level;
1458+
1459+
--echo # end of 10.3 tests

mysql-test/main/join_nested_jcl6.result

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2008,6 +2008,58 @@ Note 1003 select `test`.`t3`.`pk` AS `pk`,`test`.`t3`.`c1` AS `c1`,`test`.`t3`.`
20082008
DROP TABLE t1,t2,t3;
20092009
set join_cache_level= @save_join_cache_level;
20102010
set optimizer_switch=@save_optimizer_switch;
2011+
#
2012+
# MDEV-27624: Nested left joins with not_exists optimization
2013+
# for most inner left join
2014+
#
2015+
set @save_join_cache_level= @@join_cache_level;
2016+
CREATE TABLE t1 (a INT NOT NULL, b INT, c INT);
2017+
INSERT INTO t1 VALUES (1,1,1), (1,2,1), (1,3,1);
2018+
CREATE TABLE t2(a INT NOT NULL);
2019+
INSERT INTO t2 VALUES (1), (2);
2020+
CREATE TABLE t3(a INT not null, b INT);
2021+
INSERT INTO t3 VALUES (1, 1), (2, 1), (3, 1);
2022+
set join_cache_level = 0;
2023+
EXPLAIN SELECT *
2024+
FROM t1
2025+
LEFT JOIN
2026+
( t2 LEFT JOIN t3 ON t2.a = t3.b )
2027+
ON t2.a = 1 AND (t3.b = t1.a AND t3.a > t1.b OR t3.a is NULL)
2028+
WHERE t1.c = 1 AND t3.a is NULL;
2029+
id select_type table type possible_keys key key_len ref rows Extra
2030+
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
2031+
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where
2032+
1 SIMPLE t3 ALL NULL NULL NULL NULL 3 Using where; Not exists
2033+
SELECT *
2034+
FROM t1
2035+
LEFT JOIN
2036+
( t2 LEFT JOIN t3 ON t2.a = t3.b )
2037+
ON t2.a = 1 AND (t3.b = t1.a AND t3.a > t1.b OR t3.a is NULL)
2038+
WHERE t1.c = 1 AND t3.a is NULL;
2039+
a b c a a b
2040+
1 3 1 NULL NULL NULL
2041+
set join_cache_level = 2;
2042+
EXPLAIN SELECT *
2043+
FROM t1
2044+
LEFT JOIN
2045+
( t2 LEFT JOIN t3 ON t2.a = t3.b )
2046+
ON t2.a = 1 AND (t3.b = t1.a AND t3.a > t1.b OR t3.a is NULL)
2047+
WHERE t1.c = 1 AND t3.a is NULL;
2048+
id select_type table type possible_keys key key_len ref rows Extra
2049+
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
2050+
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
2051+
1 SIMPLE t3 ALL NULL NULL NULL NULL 3 Using where; Not exists; Using join buffer (incremental, BNL join)
2052+
SELECT *
2053+
FROM t1
2054+
LEFT JOIN
2055+
( t2 LEFT JOIN t3 ON t2.a = t3.b )
2056+
ON t2.a = 1 AND (t3.b = t1.a AND t3.a > t1.b OR t3.a is NULL)
2057+
WHERE t1.c = 1 AND t3.a is NULL;
2058+
a b c a a b
2059+
1 3 1 NULL NULL NULL
2060+
DROP TABLE t1, t2, t3;
2061+
set join_cache_level= @save_join_cache_level;
2062+
# end of 10.3 tests
20112063
CREATE TABLE t5 (a int, b int, c int, PRIMARY KEY(a), KEY b_i (b));
20122064
CREATE TABLE t6 (a int, b int, c int, PRIMARY KEY(a), KEY b_i (b));
20132065
CREATE TABLE t7 (a int, b int, c int, PRIMARY KEY(a), KEY b_i (b));

mysql-test/main/ps.result

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5722,6 +5722,24 @@ EXECUTE stmt USING 'd';
57225722
EXECUTE stmt USING 'd';
57235723
300
57245724
DROP TABLE t1, t2, t3;
5725+
set @@max_session_mem_used=default;
5726+
create table t (a varchar(10)) character set utf8;
5727+
insert into t values ('');
5728+
prepare stmt from "select 1 from t where a = ?";
5729+
set @@max_session_mem_used=(select memory_used*2 from information_schema.processlist where id=connection_id());
5730+
deallocate prepare stmt;
5731+
drop table t;
5732+
set @@max_session_mem_used=default;
5733+
create table t (a varchar(10)) character set utf8;
5734+
insert into t values ('');
5735+
prepare stmt from "select 1 from t where a = 'a'";
5736+
set @@max_session_mem_used=(select memory_used*2 from information_schema.processlist where id=connection_id());
5737+
deallocate prepare stmt;
5738+
drop table t;
5739+
set @@max_session_mem_used=default;
5740+
#
5741+
# End of 10.3 tests
5742+
#
57255743
#
57265744
# MDEV-19263: Server crashes in mysql_handle_single_derived
57275745
# upon 2nd execution of PS

0 commit comments

Comments
 (0)