diff options
author | Oleksandr Byelkin <sanja@mariadb.com> | 2017-03-08 16:12:17 +0100 |
---|---|---|
committer | Oleksandr Byelkin <sanja@mariadb.com> | 2017-03-09 19:24:17 +0100 |
commit | 8e05953dadbf032a2ab036d6a725aa9ac3866a57 (patch) | |
tree | 51e0b47a8a33abd77100e86ab0f8251c40544a4d | |
parent | 70a0500d3c29e6e600586faa279c8af58e545075 (diff) | |
download | mariadb-git-8e05953dadbf032a2ab036d6a725aa9ac3866a57.tar.gz |
MDEV-11363: Assertion `!derived->first_sel ect()->first_inner_unit() || derived->first_select()->first_inner_unit()->first_select()-> exclude_from_table_unique_test' failed in TABLE_LIST::set_check_materialized()
Do not try to materialize derived table which already merged (irreversebly).
-rw-r--r-- | mysql-test/r/derived.result | 16 | ||||
-rw-r--r-- | mysql-test/t/derived.test | 19 | ||||
-rw-r--r-- | sql/sql_base.cc | 2 |
3 files changed, 36 insertions, 1 deletions
diff --git a/mysql-test/r/derived.result b/mysql-test/r/derived.result index a4c994f8745..d0ac61493c2 100644 --- a/mysql-test/r/derived.result +++ b/mysql-test/r/derived.result @@ -1080,5 +1080,21 @@ f drop view v1; drop table t1; # +# MDEV-11363: Assertion `!derived->first_sel ect()->first_inner_unit() || +# derived->first_select()->first_inner_unit()->first_select()-> +# exclude_from_table_unique_test' failed in +# TABLE_LIST::set_check_materialized() +# +CREATE TABLE t1 (f1 INT); +CREATE TABLE t2 (f2 INT); +CREATE TABLE t3 (f3 INT); +CREATE VIEW v1 AS ( SELECT f1 AS f FROM t1 ) UNION ( SELECT f2 AS f FROM t2 ); +CREATE VIEW v2 AS SELECT f3 AS f FROM t3; +CREATE VIEW v3 AS SELECT f FROM ( SELECT f3 AS f FROM v1, t3 ) AS sq; +CREATE VIEW v4 AS SELECT COUNT(*) as f FROM v3; +REPLACE INTO v2 ( SELECT * FROM v4 ) UNION ( SELECT f FROM v2 ); +drop view v1,v2,v3,v4; +drop table t1,t2,t3; +# # End of 10.2 tests # diff --git a/mysql-test/t/derived.test b/mysql-test/t/derived.test index 318cf584348..121e274ceeb 100644 --- a/mysql-test/t/derived.test +++ b/mysql-test/t/derived.test @@ -929,5 +929,24 @@ drop view v1; drop table t1; --echo # +--echo # MDEV-11363: Assertion `!derived->first_sel ect()->first_inner_unit() || +--echo # derived->first_select()->first_inner_unit()->first_select()-> +--echo # exclude_from_table_unique_test' failed in +--echo # TABLE_LIST::set_check_materialized() +--echo # + +CREATE TABLE t1 (f1 INT); +CREATE TABLE t2 (f2 INT); +CREATE TABLE t3 (f3 INT); +CREATE VIEW v1 AS ( SELECT f1 AS f FROM t1 ) UNION ( SELECT f2 AS f FROM t2 ); +CREATE VIEW v2 AS SELECT f3 AS f FROM t3; +CREATE VIEW v3 AS SELECT f FROM ( SELECT f3 AS f FROM v1, t3 ) AS sq; +CREATE VIEW v4 AS SELECT COUNT(*) as f FROM v3; +REPLACE INTO v2 ( SELECT * FROM v4 ) UNION ( SELECT f FROM v2 ); + +drop view v1,v2,v3,v4; +drop table t1,t2,t3; + +--echo # --echo # End of 10.2 tests --echo # diff --git a/sql/sql_base.cc b/sql/sql_base.cc index 4f87d498300..65cfe99649e 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -1060,7 +1060,7 @@ next: { /* Try to fix */ TABLE_LIST *derived= res->belong_to_derived; - if (derived->is_merged_derived()) + if (derived->is_merged_derived() && !derived->derived->is_excluded()) { DBUG_PRINT("info", ("convert merged to materialization to resolve the conflict")); |