diff options
author | unknown <sanja@askmonty.org> | 2014-06-02 15:36:06 +0300 |
---|---|---|
committer | unknown <sanja@askmonty.org> | 2014-06-02 15:36:06 +0300 |
commit | 0fbe91b45bd2181e4c39b7550081b468ba179457 (patch) | |
tree | b027e1c58c13a43a9783e4f04590c8daa6d57e56 /mysql-test/r | |
parent | 285160dee270abbbfef9b7c1fb72ec4040c42262 (diff) | |
download | mariadb-git-0fbe91b45bd2181e4c39b7550081b468ba179457.tar.gz |
MDEV-6251: SIGSEGV in query optimizer (in set_check_materialized with MERGE view)
mysql_derived_merge() made correctly working with views.
Diffstat (limited to 'mysql-test/r')
-rw-r--r-- | mysql-test/r/view.result | 220 |
1 files changed, 218 insertions, 2 deletions
diff --git a/mysql-test/r/view.result b/mysql-test/r/view.result index 5d90ce08e50..6c9ca76b489 100644 --- a/mysql-test/r/view.result +++ b/mysql-test/r/view.result @@ -1,5 +1,5 @@ -drop table if exists t1,t2,t3,t4,t9,`t1a``b`,v1,v2,v3,v4,v5,v6; -drop view if exists t1,t2,`t1a``b`,v1,v2,v3,v4,v5,v6; +drop table if exists t1,t2,t3,t4,t5,t6,t9,`t1a``b`,v1,v2,v3,v4,v5,v6; +drop view if exists t1,t2,t3,t4,t5,t6,t9,`t1a``b`,v1,v2,v3,v4,v5,v6; drop database if exists mysqltest; use test; SET @save_optimizer_switch=@@optimizer_switch; @@ -3983,6 +3983,114 @@ a 20 DROP VIEW v1,v2,v3; DROP TABLE t1,t2; +# +# MDEV-6251: SIGSEGV in query optimizer (in set_check_materialized +# with MERGE view) +# +CREATE TABLE t1 (a1 INT(11) NOT NULL DEFAULT NULL AUTO_INCREMENT PRIMARY KEY); +CREATE TABLE t2 (b1 INT(11) NOT NULL DEFAULT NULL AUTO_INCREMENT PRIMARY KEY); +CREATE TABLE t3 (c1 INT(11) NOT NULL DEFAULT NULL AUTO_INCREMENT PRIMARY KEY); +CREATE TABLE t4 (d1 INT(11) NOT NULL DEFAULT NULL AUTO_INCREMENT PRIMARY KEY); +CREATE TABLE t5 (e1 INT(11) NOT NULL DEFAULT NULL AUTO_INCREMENT PRIMARY KEY); +CREATE TABLE t6 (f1 INT(11) NOT NULL DEFAULT NULL AUTO_INCREMENT PRIMARY KEY); +CREATE OR REPLACE view v1 AS +SELECT 1 +FROM t1 a_alias_1 +LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1 +LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1 +LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1 +LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1 +; +SELECT 1 +FROM (( SELECT 1 +FROM t1 a_alias_1 +LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1 +LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1 +LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1 +LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1 +) t1) +LEFT OUTER JOIN (( SELECT 1 +FROM t1 a_alias_1 +LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1 +LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1 +LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1 +LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1 +) t2) ON 1=1 +LEFT OUTER JOIN (( SELECT 1 +FROM t1 a_alias_1 +LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1 +LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1 +LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1 +LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1 +) t3) ON 1=1 +LEFT OUTER JOIN (( SELECT 1 +FROM t1 a_alias_1 +LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1 +LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1 +LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1 +LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1 +) t4) ON 1=1 +LEFT OUTER JOIN (( SELECT 1 +FROM t1 a_alias_1 +LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1 +LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1 +LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1 +LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1 +) t5) ON 1=1 +LEFT OUTER JOIN (( SELECT 1 +FROM t1 a_alias_1 +LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1 +LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1 +LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1 +LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1 +) t6) ON 1=1 +LEFT OUTER JOIN (( SELECT 1 +FROM t1 a_alias_1 +LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1 +LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1 +LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1 +LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1 +) t7) ON 1=1 +LEFT OUTER JOIN (( SELECT 1 +FROM t1 a_alias_1 +LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1 +LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1 +LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1 +LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1 +) t8) ON 1=1 +; +1 +SELECT 1 +FROM (v1 t1) +LEFT OUTER JOIN (v1 t2) ON 1=1 +LEFT OUTER JOIN (v1 t3) ON 1=1 +LEFT OUTER JOIN (v1 t4) ON 1=1 +LEFT OUTER JOIN (v1 t5) ON 1=1 +LEFT OUTER JOIN (v1 t6) ON 1=1 +LEFT OUTER JOIN (v1 t7) ON 1=1 +LEFT OUTER JOIN (v1 t8) ON 1=1 +; +1 +drop view v1; +drop table t1,t2,t3,t4,t5,t6; # ----------------------------------------------------------------- # -- End of 5.2 tests. # ----------------------------------------------------------------- @@ -4824,6 +4932,114 @@ execute stmt1; deallocate prepare stmt1; drop view v1,v2; drop table t1,t2; +# +# MDEV-6251: SIGSEGV in query optimizer (in set_check_materialized +# with MERGE view) +# +CREATE TABLE t1 (a1 INT(11) NOT NULL DEFAULT NULL AUTO_INCREMENT PRIMARY KEY); +CREATE TABLE t2 (b1 INT(11) NOT NULL DEFAULT NULL AUTO_INCREMENT PRIMARY KEY); +CREATE TABLE t3 (c1 INT(11) NOT NULL DEFAULT NULL AUTO_INCREMENT PRIMARY KEY); +CREATE TABLE t4 (d1 INT(11) NOT NULL DEFAULT NULL AUTO_INCREMENT PRIMARY KEY); +CREATE TABLE t5 (e1 INT(11) NOT NULL DEFAULT NULL AUTO_INCREMENT PRIMARY KEY); +CREATE TABLE t6 (f1 INT(11) NOT NULL DEFAULT NULL AUTO_INCREMENT PRIMARY KEY); +CREATE OR REPLACE view v1 AS +SELECT 1 +FROM t1 a_alias_1 +LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1 +LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1 +LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1 +LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1 +; +SELECT 1 +FROM (( SELECT 1 +FROM t1 a_alias_1 +LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1 +LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1 +LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1 +LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1 +) t1) +LEFT OUTER JOIN (( SELECT 1 +FROM t1 a_alias_1 +LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1 +LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1 +LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1 +LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1 +) t2) ON 1=1 +LEFT OUTER JOIN (( SELECT 1 +FROM t1 a_alias_1 +LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1 +LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1 +LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1 +LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1 +) t3) ON 1=1 +LEFT OUTER JOIN (( SELECT 1 +FROM t1 a_alias_1 +LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1 +LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1 +LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1 +LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1 +) t4) ON 1=1 +LEFT OUTER JOIN (( SELECT 1 +FROM t1 a_alias_1 +LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1 +LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1 +LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1 +LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1 +) t5) ON 1=1 +LEFT OUTER JOIN (( SELECT 1 +FROM t1 a_alias_1 +LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1 +LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1 +LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1 +LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1 +) t6) ON 1=1 +LEFT OUTER JOIN (( SELECT 1 +FROM t1 a_alias_1 +LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1 +LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1 +LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1 +LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1 +) t7) ON 1=1 +LEFT OUTER JOIN (( SELECT 1 +FROM t1 a_alias_1 +LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1 +LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1 +LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1 +LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1 +LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1 +) t8) ON 1=1 +; +1 +SELECT 1 +FROM (v1 t1) +LEFT OUTER JOIN (v1 t2) ON 1=1 +LEFT OUTER JOIN (v1 t3) ON 1=1 +LEFT OUTER JOIN (v1 t4) ON 1=1 +LEFT OUTER JOIN (v1 t5) ON 1=1 +LEFT OUTER JOIN (v1 t6) ON 1=1 +LEFT OUTER JOIN (v1 t7) ON 1=1 +LEFT OUTER JOIN (v1 t8) ON 1=1 +; +1 +drop view v1; +drop table t1,t2,t3,t4,t5,t6; # ----------------------------------------------------------------- # -- End of 5.3 tests. # ----------------------------------------------------------------- |