Skip to content

Commit 5ab70e7

Browse files
committed
Merge 10.2 into 10.3
2 parents ee9a19f + 16bce0f commit 5ab70e7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+843
-301
lines changed

.clang-format

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ PenaltyExcessCharacter: 1000000
9090
PenaltyReturnTypeOnItsOwnLine: 60
9191
PointerAlignment: Right
9292
ReflowComments: true
93-
SortIncludes: true
93+
SortIncludes: false
9494
SortUsingDeclarations: true
9595
SpaceAfterCStyleCast: true
9696
SpaceAfterLogicalNot: false

extra/mariabackup/xtrabackup.cc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2683,7 +2683,9 @@ static lsn_t xtrabackup_copy_log(lsn_t start_lsn, lsn_t end_lsn, bool last)
26832683
}
26842684
}
26852685

2686-
if (more_data && recv_parse_log_recs(0, STORE_NO, false)) {
2686+
store_t store = STORE_NO;
2687+
2688+
if (more_data && recv_parse_log_recs(0, &store, 0, false)) {
26872689

26882690
msg("Error: copying the log failed");
26892691

mysql-test/include/binlog_parallel_replication_marks.test

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ while (<F>) {
8080
s/table id \d+/table id #/;
8181
s/mapped to number \d+/mapped to number #/;
8282
s/CRC32 0x[0-9a-f]+/CRC32 0x########/;
83-
print if /GTID|BEGIN|COMMIT|Table_map|Write_rows|Update_rows|Delete_rows|generated by server|40005 TEMPORARY/;
83+
print if /\b(GTID|BEGIN|COMMIT|Table_map|Write_rows|Update_rows|Delete_rows|generated by server|40005 TEMPORARY)\b/;
8484
}
8585
close F;
8686
EOF

mysql-test/main/derived_cond_pushdown.result

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10568,6 +10568,36 @@ EXPLAIN
1056810568
}
1056910569
DROP TABLE t1;
1057010570
DROP VIEW v1;
10571+
#
10572+
# MDEV-21388 Wrong result of DAYNAME()=xxx in combination with condition_pushdown_for_derived=on
10573+
#
10574+
CREATE TABLE t1 (a INT, b DATE, c INT);
10575+
INSERT INTO t1 VALUES
10576+
(1,'2001-01-21',345),
10577+
(6,'2001-01-20',315),
10578+
(6,'2001-01-20',214);
10579+
CREATE TABLE t2 (a INT, b INT);
10580+
INSERT INTO t2 VALUES (2,19), (7,20);
10581+
CREATE VIEW v1 AS SELECT a, b, max(c) AS max_c FROM t1
10582+
GROUP BY a,b HAVING max_c < 707;
10583+
SELECT *, dayname(v1.b) FROM v1,t2 WHERE (v1.max_c>214) AND (t2.a>v1.a);
10584+
a b max_c a b dayname(v1.b)
10585+
1 2001-01-21 345 2 19 Sunday
10586+
1 2001-01-21 345 7 20 Sunday
10587+
6 2001-01-20 315 7 20 Saturday
10588+
SET optimizer_switch='condition_pushdown_for_derived=off';
10589+
SELECT *, dayname(v1.b) FROM v1,t2 WHERE (v1.max_c>214) AND (t2.a>v1.a) AND dayname(v1.b)='Sunday';
10590+
a b max_c a b dayname(v1.b)
10591+
1 2001-01-21 345 2 19 Sunday
10592+
1 2001-01-21 345 7 20 Sunday
10593+
SET optimizer_switch='condition_pushdown_for_derived=on';
10594+
SELECT *, dayname(v1.b) FROM v1,t2 WHERE (v1.max_c>214) AND (t2.a>v1.a) AND dayname(v1.b)='Sunday';
10595+
a b max_c a b dayname(v1.b)
10596+
1 2001-01-21 345 2 19 Sunday
10597+
1 2001-01-21 345 7 20 Sunday
10598+
DROP VIEW v1;
10599+
DROP TABLE t1, t2;
10600+
SET optimizer_switch=DEFAULT;
1057110601
# End of 10.2 tests
1057210602
#
1057310603
# MDEV-14579: pushdown conditions into materialized views/derived tables

mysql-test/main/derived_cond_pushdown.test

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2140,6 +2140,34 @@ SELECT * FROM (SELECT 1 FROM v1 UNION (SELECT 1 FROM v1 WHERE @a := uuid())) dt;
21402140
DROP TABLE t1;
21412141
DROP VIEW v1;
21422142

2143+
--echo #
2144+
--echo # MDEV-21388 Wrong result of DAYNAME()=xxx in combination with condition_pushdown_for_derived=on
2145+
--echo #
2146+
2147+
CREATE TABLE t1 (a INT, b DATE, c INT);
2148+
INSERT INTO t1 VALUES
2149+
(1,'2001-01-21',345),
2150+
(6,'2001-01-20',315),
2151+
(6,'2001-01-20',214);
2152+
2153+
CREATE TABLE t2 (a INT, b INT);
2154+
INSERT INTO t2 VALUES (2,19), (7,20);
2155+
CREATE VIEW v1 AS SELECT a, b, max(c) AS max_c FROM t1
2156+
GROUP BY a,b HAVING max_c < 707;
2157+
2158+
SELECT *, dayname(v1.b) FROM v1,t2 WHERE (v1.max_c>214) AND (t2.a>v1.a);
2159+
2160+
SET optimizer_switch='condition_pushdown_for_derived=off';
2161+
SELECT *, dayname(v1.b) FROM v1,t2 WHERE (v1.max_c>214) AND (t2.a>v1.a) AND dayname(v1.b)='Sunday';
2162+
2163+
SET optimizer_switch='condition_pushdown_for_derived=on';
2164+
SELECT *, dayname(v1.b) FROM v1,t2 WHERE (v1.max_c>214) AND (t2.a>v1.a) AND dayname(v1.b)='Sunday';
2165+
2166+
DROP VIEW v1;
2167+
DROP TABLE t1, t2;
2168+
2169+
SET optimizer_switch=DEFAULT;
2170+
21432171
--echo # End of 10.2 tests
21442172

21452173
--echo #

mysql-test/main/func_time.result

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,9 @@ date_format('1999-12-31','%x-%v') date_format('2000-01-01','%x-%v')
159159
1999-52 1999-52
160160
select dayname("1962-03-03"),dayname("1962-03-03")+0;
161161
dayname("1962-03-03") dayname("1962-03-03")+0
162-
Saturday 5
162+
Saturday 0
163+
Warnings:
164+
Warning 1292 Truncated incorrect DOUBLE value: 'Saturday'
163165
select monthname("1972-03-04"),monthname("1972-03-04")+0;
164166
monthname("1972-03-04") monthname("1972-03-04")+0
165167
March 0
@@ -3508,6 +3510,19 @@ v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI
35083510
DROP VIEW v1,v2,v3;
35093511
DROP TABLE t1,t2;
35103512
#
3513+
# MDEV-21388 Wrong result of DAYNAME()=xxx in combination with condition_pushdown_for_derived=on
3514+
#
3515+
SELECT DAYNAME('2019-01-05')+0;
3516+
DAYNAME('2019-01-05')+0
3517+
0
3518+
Warnings:
3519+
Warning 1292 Truncated incorrect DOUBLE value: 'Saturday'
3520+
SELECT CAST(DAYNAME('2019-01-05') AS SIGNED);
3521+
CAST(DAYNAME('2019-01-05') AS SIGNED)
3522+
0
3523+
Warnings:
3524+
Warning 1292 Truncated incorrect INTEGER value: 'Saturday'
3525+
#
35113526
# End of 10.2 tests
35123527
#
35133528
#

mysql-test/main/func_time.test

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1969,6 +1969,14 @@ show create view v3;
19691969
DROP VIEW v1,v2,v3;
19701970
DROP TABLE t1,t2;
19711971

1972+
--echo #
1973+
--echo # MDEV-21388 Wrong result of DAYNAME()=xxx in combination with condition_pushdown_for_derived=on
1974+
--echo #
1975+
1976+
SELECT DAYNAME('2019-01-05')+0;
1977+
SELECT CAST(DAYNAME('2019-01-05') AS SIGNED);
1978+
1979+
19721980
--echo #
19731981
--echo # End of 10.2 tests
19741982
--echo #

mysql-test/main/mysql_tzinfo_to_sql_symlink.result

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# Verbose run
55
\d |
66
IF (select count(*) from information_schema.global_variables where
7-
variable_name='wsrep_on') = 1 THEN
7+
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
88
ALTER TABLE time_zone ENGINE=InnoDB;
99
ALTER TABLE time_zone_name ENGINE=InnoDB;
1010
ALTER TABLE time_zone_transition ENGINE=InnoDB;
@@ -36,7 +36,7 @@ ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time;
3636
ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id;
3737
\d |
3838
IF (select count(*) from information_schema.global_variables where
39-
variable_name='wsrep_on') = 1 THEN
39+
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
4040
ALTER TABLE time_zone ENGINE=MyISAM;
4141
ALTER TABLE time_zone_name ENGINE=MyISAM;
4242
ALTER TABLE time_zone_transition ENGINE=MyISAM;
@@ -46,7 +46,7 @@ END IF|
4646
# Silent run
4747
\d |
4848
IF (select count(*) from information_schema.global_variables where
49-
variable_name='wsrep_on') = 1 THEN
49+
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
5050
ALTER TABLE time_zone ENGINE=InnoDB;
5151
ALTER TABLE time_zone_name ENGINE=InnoDB;
5252
ALTER TABLE time_zone_transition ENGINE=InnoDB;
@@ -75,7 +75,7 @@ ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time;
7575
ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id;
7676
\d |
7777
IF (select count(*) from information_schema.global_variables where
78-
variable_name='wsrep_on') = 1 THEN
78+
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
7979
ALTER TABLE time_zone ENGINE=MyISAM;
8080
ALTER TABLE time_zone_name ENGINE=MyISAM;
8181
ALTER TABLE time_zone_transition ENGINE=MyISAM;
@@ -93,7 +93,7 @@ INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset,
9393
;
9494
\d |
9595
IF (select count(*) from information_schema.global_variables where
96-
variable_name='wsrep_on') = 1 THEN
96+
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
9797
ALTER TABLE time_zone ENGINE=MyISAM;
9898
ALTER TABLE time_zone_name ENGINE=MyISAM;
9999
ALTER TABLE time_zone_transition ENGINE=MyISAM;
@@ -105,21 +105,21 @@ END IF|
105105
#
106106
\d |
107107
IF (select count(*) from information_schema.global_variables where
108-
variable_name='wsrep_on') = 1 THEN
108+
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
109109
ALTER TABLE time_zone_leap_second ENGINE=InnoDB;
110110
END IF|
111111
\d ;
112112
TRUNCATE TABLE time_zone_leap_second;
113113
\d |
114114
IF (select count(*) from information_schema.global_variables where
115-
variable_name='wsrep_on') = 1 THEN
115+
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
116116
ALTER TABLE time_zone_leap_second ENGINE=MyISAM;
117117
END IF|
118118
\d ;
119119
ALTER TABLE time_zone_leap_second ORDER BY Transition_time;
120120
\d |
121121
IF (select count(*) from information_schema.global_variables where
122-
variable_name='wsrep_on') = 1 THEN
122+
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
123123
ALTER TABLE time_zone ENGINE=MyISAM;
124124
ALTER TABLE time_zone_name ENGINE=MyISAM;
125125
ALTER TABLE time_zone_transition ENGINE=MyISAM;
@@ -131,7 +131,7 @@ END IF|
131131
#
132132
\d |
133133
IF (select count(*) from information_schema.global_variables where
134-
variable_name='wsrep_on') = 1 THEN
134+
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
135135
ALTER TABLE time_zone ENGINE=InnoDB;
136136
ALTER TABLE time_zone_name ENGINE=InnoDB;
137137
ALTER TABLE time_zone_transition ENGINE=InnoDB;
@@ -146,7 +146,7 @@ ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time;
146146
ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id;
147147
\d |
148148
IF (select count(*) from information_schema.global_variables where
149-
variable_name='wsrep_on') = 1 THEN
149+
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
150150
ALTER TABLE time_zone ENGINE=MyISAM;
151151
ALTER TABLE time_zone_name ENGINE=MyISAM;
152152
ALTER TABLE time_zone_transition ENGINE=MyISAM;

mysql-test/main/type_datetime.result

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1198,6 +1198,87 @@ Warning 1292 Incorrect datetime value: '2' for column `test`.`t1`.`pk` at row 2
11981198
DROP VIEW v1;
11991199
DROP TABLE t1;
12001200
#
1201+
# MDEV-21319 COUNT(*) returns 1, actual SELECT returns no result in 10.3.21, but 1 result in 10.1.41
1202+
#
1203+
CREATE TABLE t1
1204+
(
1205+
id INT NOT NULL PRIMARY KEY,
1206+
id2 INT,
1207+
k TINYINT,
1208+
j INT,
1209+
t DATETIME,
1210+
KEY k1 (id2,k,j,t)
1211+
);
1212+
INSERT INTO t1 VALUES
1213+
(53,54,1,0,'2019-12-13 10:09:59'),
1214+
(54,54,1,0,'2019-12-13 16:28:41'),
1215+
(55,54,1,0,'2019-12-13 16:29:10'),
1216+
(56,54,1,0,'2019-12-13 16:29:43'),
1217+
(57,54,1,0,'2019-12-13 16:30:16'),
1218+
(58,54,1,0,'2019-12-13 16:30:49'),
1219+
(59,54,1,0,'2019-12-13 16:31:23'),
1220+
(60,54,1,0,'2019-12-13 16:31:55'),
1221+
(61,54,1,0,'2019-12-13 16:32:28'),
1222+
(62,54,1,0,'2019-12-13 16:33:01'),
1223+
(63,54,1,0,'2019-12-13 16:33:34'),
1224+
(64,54,1,0,'2019-12-13 16:34:07'),
1225+
(65,54,1,0,'2019-12-13 16:34:40'),
1226+
(66,54,1,0,'2019-12-13 16:35:13'),
1227+
(67,54,1,0,'2019-12-13 16:35:46'),
1228+
(68,54,1,0,'2019-12-13 16:36:19');
1229+
SELECT t FROM t1 GROUP BY t HAVING t=max(t);
1230+
t
1231+
2019-12-13 10:09:59
1232+
2019-12-13 16:28:41
1233+
2019-12-13 16:29:10
1234+
2019-12-13 16:29:43
1235+
2019-12-13 16:30:16
1236+
2019-12-13 16:30:49
1237+
2019-12-13 16:31:23
1238+
2019-12-13 16:31:55
1239+
2019-12-13 16:32:28
1240+
2019-12-13 16:33:01
1241+
2019-12-13 16:33:34
1242+
2019-12-13 16:34:07
1243+
2019-12-13 16:34:40
1244+
2019-12-13 16:35:13
1245+
2019-12-13 16:35:46
1246+
2019-12-13 16:36:19
1247+
SELECT t FROM t1 WHERE id2=54 and j=0 and k=1 GROUP BY t HAVING t=max(t);
1248+
t
1249+
2019-12-13 10:09:59
1250+
2019-12-13 16:28:41
1251+
2019-12-13 16:29:10
1252+
2019-12-13 16:29:43
1253+
2019-12-13 16:30:16
1254+
2019-12-13 16:30:49
1255+
2019-12-13 16:31:23
1256+
2019-12-13 16:31:55
1257+
2019-12-13 16:32:28
1258+
2019-12-13 16:33:01
1259+
2019-12-13 16:33:34
1260+
2019-12-13 16:34:07
1261+
2019-12-13 16:34:40
1262+
2019-12-13 16:35:13
1263+
2019-12-13 16:35:46
1264+
2019-12-13 16:36:19
1265+
DROP TABLE t1;
1266+
CREATE TABLE t1 (pk INT);
1267+
CREATE VIEW v1 AS SELECT * FROM t1;
1268+
INSERT INTO t1 VALUES (1);
1269+
SELECT pk<DATE'2001-01-01' FROM t1 GROUP BY pk;
1270+
pk<DATE'2001-01-01'
1271+
1
1272+
Warnings:
1273+
Warning 1292 Incorrect datetime value: '1' for column `test`.`t1`.`pk` at row 1
1274+
SELECT pk<DATE'2001-01-01' FROM v1 GROUP BY pk;
1275+
pk<DATE'2001-01-01'
1276+
1
1277+
Warnings:
1278+
Warning 1292 Incorrect datetime value: '1' for column `test`.`t1`.`pk` at row 1
1279+
DROP VIEW v1;
1280+
DROP TABLE t1;
1281+
#
12011282
# End of 10.1 tests
12021283
#
12031284
#

mysql-test/main/type_datetime.test

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -747,6 +747,49 @@ DROP VIEW v1;
747747
DROP TABLE t1;
748748

749749

750+
--echo #
751+
--echo # MDEV-21319 COUNT(*) returns 1, actual SELECT returns no result in 10.3.21, but 1 result in 10.1.41
752+
--echo #
753+
754+
CREATE TABLE t1
755+
(
756+
id INT NOT NULL PRIMARY KEY,
757+
id2 INT,
758+
k TINYINT,
759+
j INT,
760+
t DATETIME,
761+
KEY k1 (id2,k,j,t)
762+
);
763+
INSERT INTO t1 VALUES
764+
(53,54,1,0,'2019-12-13 10:09:59'),
765+
(54,54,1,0,'2019-12-13 16:28:41'),
766+
(55,54,1,0,'2019-12-13 16:29:10'),
767+
(56,54,1,0,'2019-12-13 16:29:43'),
768+
(57,54,1,0,'2019-12-13 16:30:16'),
769+
(58,54,1,0,'2019-12-13 16:30:49'),
770+
(59,54,1,0,'2019-12-13 16:31:23'),
771+
(60,54,1,0,'2019-12-13 16:31:55'),
772+
(61,54,1,0,'2019-12-13 16:32:28'),
773+
(62,54,1,0,'2019-12-13 16:33:01'),
774+
(63,54,1,0,'2019-12-13 16:33:34'),
775+
(64,54,1,0,'2019-12-13 16:34:07'),
776+
(65,54,1,0,'2019-12-13 16:34:40'),
777+
(66,54,1,0,'2019-12-13 16:35:13'),
778+
(67,54,1,0,'2019-12-13 16:35:46'),
779+
(68,54,1,0,'2019-12-13 16:36:19');
780+
SELECT t FROM t1 GROUP BY t HAVING t=max(t);
781+
SELECT t FROM t1 WHERE id2=54 and j=0 and k=1 GROUP BY t HAVING t=max(t);
782+
DROP TABLE t1;
783+
784+
CREATE TABLE t1 (pk INT);
785+
CREATE VIEW v1 AS SELECT * FROM t1;
786+
INSERT INTO t1 VALUES (1);
787+
SELECT pk<DATE'2001-01-01' FROM t1 GROUP BY pk;
788+
SELECT pk<DATE'2001-01-01' FROM v1 GROUP BY pk;
789+
DROP VIEW v1;
790+
DROP TABLE t1;
791+
792+
750793
--echo #
751794
--echo # End of 10.1 tests
752795
--echo #

mysql-test/main/type_int.result

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,19 @@ COALESCE(@a)
2020
1
2121
DROP TABLE t1;
2222
#
23+
# MDEV-21065 UNIQUE constraint causes a query with string comparison to omit a row in the result set
24+
#
25+
CREATE TABLE t1 (c0 INT UNIQUE);
26+
INSERT INTO t1 VALUES (NULL), (NULL), (NULL), (NULL), (1), (0);
27+
SELECT * FROM t1 WHERE c0 < '\n2';
28+
c0
29+
0
30+
1
31+
DROP TABLE t1;
32+
SELECT CAST('\n2' AS INT);
33+
CAST('\n2' AS INT)
34+
2
35+
#
2336
# End of 5.5 tests
2437
#
2538
#

0 commit comments

Comments
 (0)