Skip to content

Commit

Permalink
Merge 10.2 into 10.3
Browse files Browse the repository at this point in the history
  • Loading branch information
dr-m committed Oct 17, 2018
2 parents 2fa4ed0 + 853a0a4 commit f454189
Show file tree
Hide file tree
Showing 15 changed files with 465 additions and 4 deletions.
18 changes: 18 additions & 0 deletions mysql-test/main/cte_nonrecursive.result
Original file line number Diff line number Diff line change
Expand Up @@ -1641,3 +1641,21 @@ a b
drop procedure p1;
drop procedure p2;
drop table t1;
#
# MDEV-17107: PS for CREATE OR REPLACE VIEW defined by SELECT with CTEs
#
create table t1(a int);
insert into t1 values (3), (1), (2);
create table t2 (b int);
insert into t2 values (2), (10);
prepare stmt from
"create or replace view v1 as
with t as (select s.a from (select t1.a from t1) s),
r as(select t.a from t2, t where t2.b=t.a)
select a from r;";
execute stmt;
select * from v1;
a
2
drop view v1;
drop table t1,t2;
21 changes: 21 additions & 0 deletions mysql-test/main/cte_nonrecursive.test
Original file line number Diff line number Diff line change
Expand Up @@ -1147,3 +1147,24 @@ select * from t1;
drop procedure p1;
drop procedure p2;
drop table t1;

--echo #
--echo # MDEV-17107: PS for CREATE OR REPLACE VIEW defined by SELECT with CTEs
--echo #

create table t1(a int);
insert into t1 values (3), (1), (2);
create table t2 (b int);
insert into t2 values (2), (10);

prepare stmt from
"create or replace view v1 as
with t as (select s.a from (select t1.a from t1) s),
r as(select t.a from t2, t where t2.b=t.a)
select a from r;";

execute stmt;
select * from v1;

drop view v1;
drop table t1,t2;
146 changes: 146 additions & 0 deletions mysql-test/main/derived_cond_pushdown.result
Original file line number Diff line number Diff line change
Expand Up @@ -16393,6 +16393,152 @@ a b c
1 2 2
3 2 2
DROP TABLE t1;
#
# MDEV-17354: INSERT SELECT with condition pushdown into derived
#
CREATE TABLE t1 (f INT NOT NULL);
INSERT INTO t1 VALUES (3), (7), (3);
CREATE ALGORITHM= TEMPTABLE VIEW v1 AS SELECT * FROM ( SELECT * FROM t1 ) AS sq;
INSERT INTO t1
SELECT * FROM ( SELECT t1.f FROM v1 JOIN t1 ) AS t WHERE f IS NOT NULL;
EXPLAIN INSERT INTO t1
SELECT * FROM ( SELECT t1.f FROM v1 JOIN t1 ) AS t WHERE f IS NOT NULL;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 144 Using where
2 DERIVED <derived3> ALL NULL NULL NULL NULL 12
2 DERIVED t1 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
3 DERIVED t1 ALL NULL NULL NULL NULL 12
EXPLAIN FORMAT=JSON INSERT INTO t1
SELECT * FROM ( SELECT t1.f FROM v1 JOIN t1 ) AS t WHERE f IS NOT NULL;
EXPLAIN
{
"query_block": {
"select_id": 1,
"table": {
"table_name": "<derived2>",
"access_type": "ALL",
"rows": 144,
"filtered": 100,
"attached_condition": "t.f is not null",
"materialized": {
"query_block": {
"select_id": 2,
"table": {
"table_name": "<derived3>",
"access_type": "ALL",
"rows": 12,
"filtered": 100,
"materialized": {
"query_block": {
"select_id": 3,
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows": 12,
"filtered": 100
}
}
}
},
"block-nl-join": {
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows": 12,
"filtered": 100,
"attached_condition": "t1.f is not null"
},
"buffer_type": "flat",
"buffer_size": "256Kb",
"join_type": "BNL"
}
}
}
}
}
}
SELECT * FROM t1;
f
3
7
3
3
3
3
7
7
7
3
3
3
DELETE FROM t1;
INSERT INTO t1 VALUES (3), (7), (3);
INSERT INTO t1
SELECT * FROM ( SELECT t1.f FROM v1 JOIN t1 ON v1.f=t1.f) AS t
WHERE f IS NOT NULL;
EXPLAIN FORMAT=JSON INSERT INTO t1
SELECT * FROM ( SELECT t1.f FROM v1 JOIN t1 ON v1.f=t1.f) AS t
WHERE f IS NOT NULL;
EXPLAIN
{
"query_block": {
"select_id": 1,
"table": {
"table_name": "<derived2>",
"access_type": "ALL",
"rows": 16,
"filtered": 100,
"attached_condition": "t.f is not null",
"materialized": {
"query_block": {
"select_id": 2,
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows": 8,
"filtered": 100,
"attached_condition": "t1.f is not null"
},
"table": {
"table_name": "<derived3>",
"access_type": "ref",
"possible_keys": ["key0"],
"key": "key0",
"key_length": "4",
"used_key_parts": ["f"],
"ref": ["test.t1.f"],
"rows": 2,
"filtered": 100,
"materialized": {
"query_block": {
"select_id": 3,
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows": 8,
"filtered": 100,
"attached_condition": "t1.f is not null"
}
}
}
}
}
}
}
}
}
SELECT * FROM t1;
f
3
7
3
3
3
7
3
3
DROP VIEW v1;
DROP TABLE t1;
# Start of 10.3 tests
#
# MDEV-16801: splittable materialized derived/views with
Expand Down
34 changes: 34 additions & 0 deletions mysql-test/main/derived_cond_pushdown.test
Original file line number Diff line number Diff line change
Expand Up @@ -3109,6 +3109,40 @@ WHERE ((a,b) IN ((1,2),(3,2)));

DROP TABLE t1;


--echo #
--echo # MDEV-17354: INSERT SELECT with condition pushdown into derived
--echo #

CREATE TABLE t1 (f INT NOT NULL);
INSERT INTO t1 VALUES (3), (7), (3);

CREATE ALGORITHM= TEMPTABLE VIEW v1 AS SELECT * FROM ( SELECT * FROM t1 ) AS sq;

let $q1=
INSERT INTO t1
SELECT * FROM ( SELECT t1.f FROM v1 JOIN t1 ) AS t WHERE f IS NOT NULL;

eval $q1;
eval EXPLAIN $q1;
eval EXPLAIN FORMAT=JSON $q1;
SELECT * FROM t1;

DELETE FROM t1;
INSERT INTO t1 VALUES (3), (7), (3);

let $q2=
INSERT INTO t1
SELECT * FROM ( SELECT t1.f FROM v1 JOIN t1 ON v1.f=t1.f) AS t
WHERE f IS NOT NULL;

eval $q2;
eval EXPLAIN FORMAT=JSON $q2;
SELECT * FROM t1;

DROP VIEW v1;
DROP TABLE t1;

--echo # Start of 10.3 tests

--echo #
Expand Down
12 changes: 12 additions & 0 deletions mysql-test/main/win.result
Original file line number Diff line number Diff line change
Expand Up @@ -3315,6 +3315,18 @@ COUNT(DISTINCT t2.a2) rank() OVER (ORDER BY t2.b1)
1 3
DROP TABLE t1,t2;
#
# MDEV-16990: server crashes in base_list_iterator::next
#
CREATE TABLE t1(i int);
insert into t1 values (1),(2);
SELECT DISTINCT row_number() OVER (), MAX(1) FROM t1;
row_number() OVER () MAX(1)
1 1
SELECT DISTINCT BIT_AND(0) OVER (), MAX(1) FROM t1;
BIT_AND(0) OVER () MAX(1)
0 1
drop table t1;
#
# Start of 10.3 tests
#
#
Expand Down
10 changes: 10 additions & 0 deletions mysql-test/main/win.test
Original file line number Diff line number Diff line change
Expand Up @@ -2083,6 +2083,16 @@ SELECT COUNT(DISTINCT t2.a2),
FROM t2 ,t1 GROUP BY t2.b1 ORDER BY t1.a1;
DROP TABLE t1,t2;

--echo #
--echo # MDEV-16990: server crashes in base_list_iterator::next
--echo #

CREATE TABLE t1(i int);
insert into t1 values (1),(2);
SELECT DISTINCT row_number() OVER (), MAX(1) FROM t1;
SELECT DISTINCT BIT_AND(0) OVER (), MAX(1) FROM t1;
drop table t1;

--echo #
--echo # Start of 10.3 tests
--echo #
Expand Down
44 changes: 44 additions & 0 deletions mysql-test/suite/binlog_encryption/rpl_typeconv.result
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,10 @@ SET GLOBAL SLAVE_TYPE_CONVERSIONS='';
# MDEV-15833 Row format replication between LONGBLOB and MEDIUMBLOB does not work for long values
#
# End of MDEV-15833
#
# MDEV-17098 DATE <-> DATETIME
#
# End of MDEV-17098
include/rpl_reset.inc
connection slave;
SET GLOBAL SLAVE_TYPE_CONVERSIONS='ALL_NON_LOSSY';
Expand All @@ -59,6 +63,10 @@ SET GLOBAL SLAVE_TYPE_CONVERSIONS='ALL_NON_LOSSY';
# MDEV-15833 Row format replication between LONGBLOB and MEDIUMBLOB does not work for long values
#
# End of MDEV-15833
#
# MDEV-17098 DATE <-> DATETIME
#
# End of MDEV-17098
include/rpl_reset.inc
connection slave;
SET GLOBAL SLAVE_TYPE_CONVERSIONS='ALL_LOSSY';
Expand All @@ -71,6 +79,10 @@ SET GLOBAL SLAVE_TYPE_CONVERSIONS='ALL_LOSSY';
# MDEV-15833 Row format replication between LONGBLOB and MEDIUMBLOB does not work for long values
#
# End of MDEV-15833
#
# MDEV-17098 DATE <-> DATETIME
#
# End of MDEV-17098
include/rpl_reset.inc
connection slave;
SET GLOBAL SLAVE_TYPE_CONVERSIONS='ALL_LOSSY,ALL_NON_LOSSY';
Expand All @@ -83,6 +95,10 @@ SET GLOBAL SLAVE_TYPE_CONVERSIONS='ALL_LOSSY,ALL_NON_LOSSY';
# MDEV-15833 Row format replication between LONGBLOB and MEDIUMBLOB does not work for long values
#
# End of MDEV-15833
#
# MDEV-17098 DATE <-> DATETIME
#
# End of MDEV-17098
include/rpl_reset.inc
connection slave;
**** Result of conversions ****
Expand Down Expand Up @@ -244,6 +260,13 @@ LONGBLOB TINYBLOB <Correct error>
LONGBLOB BLOB <Correct error>
LONGBLOB MEDIUMBLOB <Correct error>
LONGBLOB VARBINARY(65500 <Correct error>
DATE DATETIME(6) <Correct error>
DATE DATETIME(6) <Correct error>
DATE DATETIME(6) <Correct error>
DATE DATETIME(0) <Correct error>
DATETIME(6) DATE <Correct error>
DATETIME(6) DATE <Correct error>
DATETIME(0) DATE <Correct error>
TINYBLOB TINYBLOB ALL_NON_LOSSY <Correct value>
TINYBLOB BLOB ALL_NON_LOSSY <Correct value>
TINYBLOB MEDIUMBLOB ALL_NON_LOSSY <Correct value>
Expand Down Expand Up @@ -401,6 +424,13 @@ LONGBLOB TINYBLOB ALL_NON_LOSSY <Correct error>
LONGBLOB BLOB ALL_NON_LOSSY <Correct error>
LONGBLOB MEDIUMBLOB ALL_NON_LOSSY <Correct error>
LONGBLOB VARBINARY(65500 ALL_NON_LOSSY <Correct error>
DATE DATETIME(6) ALL_NON_LOSSY <Correct value>
DATE DATETIME(6) ALL_NON_LOSSY <Correct value>
DATE DATETIME(6) ALL_NON_LOSSY <Correct value>
DATE DATETIME(0) ALL_NON_LOSSY <Correct value>
DATETIME(6) DATE ALL_NON_LOSSY <Correct error>
DATETIME(6) DATE ALL_NON_LOSSY <Correct error>
DATETIME(0) DATE ALL_NON_LOSSY <Correct error>
TINYBLOB TINYBLOB ALL_LOSSY <Correct value>
TINYBLOB BLOB ALL_LOSSY <Correct error>
TINYBLOB MEDIUMBLOB ALL_LOSSY <Correct error>
Expand Down Expand Up @@ -558,6 +588,13 @@ LONGBLOB TINYBLOB ALL_LOSSY <Correct value>
LONGBLOB BLOB ALL_LOSSY <Correct value>
LONGBLOB MEDIUMBLOB ALL_LOSSY <Correct value>
LONGBLOB VARBINARY(65500 ALL_LOSSY <Correct value>
DATE DATETIME(6) ALL_LOSSY <Correct error>
DATE DATETIME(6) ALL_LOSSY <Correct error>
DATE DATETIME(6) ALL_LOSSY <Correct error>
DATE DATETIME(0) ALL_LOSSY <Correct error>
DATETIME(6) DATE ALL_LOSSY <Correct value>
DATETIME(6) DATE ALL_LOSSY <Correct value>
DATETIME(0) DATE ALL_LOSSY <Correct value>
TINYBLOB TINYBLOB ALL_LOSSY,ALL_NON_LOSSY <Correct value>
TINYBLOB BLOB ALL_LOSSY,ALL_NON_LOSSY <Correct value>
TINYBLOB MEDIUMBLOB ALL_LOSSY,ALL_NON_LOSSY <Correct value>
Expand Down Expand Up @@ -715,6 +752,13 @@ LONGBLOB TINYBLOB ALL_LOSSY,ALL_NON_LOSSY <Correct value>
LONGBLOB BLOB ALL_LOSSY,ALL_NON_LOSSY <Correct value>
LONGBLOB MEDIUMBLOB ALL_LOSSY,ALL_NON_LOSSY <Correct value>
LONGBLOB VARBINARY(65500 ALL_LOSSY,ALL_NON_LOSSY <Correct value>
DATE DATETIME(6) ALL_LOSSY,ALL_NON_LOSSY <Correct value>
DATE DATETIME(6) ALL_LOSSY,ALL_NON_LOSSY <Correct value>
DATE DATETIME(6) ALL_LOSSY,ALL_NON_LOSSY <Correct value>
DATE DATETIME(0) ALL_LOSSY,ALL_NON_LOSSY <Correct value>
DATETIME(6) DATE ALL_LOSSY,ALL_NON_LOSSY <Correct value>
DATETIME(6) DATE ALL_LOSSY,ALL_NON_LOSSY <Correct value>
DATETIME(0) DATE ALL_LOSSY,ALL_NON_LOSSY <Correct value>
DROP TABLE type_conversions;
call mtr.add_suppression("Slave SQL.*Column 1 of table .test.t1. cannot be converted from type.* error.* 1677");
connection master;
Expand Down
8 changes: 8 additions & 0 deletions mysql-test/suite/rpl/include/check_type.inc
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,19 @@ connection master;
disable_warnings;
DROP TABLE IF EXISTS t1;
enable_warnings;
if ($source_temp_format)
{
--eval SET @@global.mysql56_temporal_format= $source_temp_format
}
eval CREATE TABLE t1(
pk INT NOT NULL PRIMARY KEY,
a $source_type
) ENGINE=$engine_type;
sync_slave_with_master;
if ($target_temp_format)
{
--eval SET @@global.mysql56_temporal_format= $source_temp_format
}
eval ALTER TABLE t1 MODIFY a $target_type;

connection master;
Expand Down
Loading

0 comments on commit f454189

Please sign in to comment.