diff --git a/mysql-test/r/view.result b/mysql-test/r/view.result index 01f1fcbcbf4..f49d9c2efdb 100644 --- a/mysql-test/r/view.result +++ b/mysql-test/r/view.result @@ -1750,3 +1750,11 @@ c1 1 drop view v2, v1; drop table t1, t2; +CREATE TABLE t1 (C1 INT, C2 INT); +CREATE TABLE t2 (C2 INT); +CREATE VIEW v1 AS SELECT C2 FROM t2; +CREATE VIEW v2 AS SELECT C1 FROM t1 LEFT OUTER JOIN v1 USING (C2); +SELECT * FROM v2; +C1 +drop view v2, v1; +drop table t1, t2; diff --git a/mysql-test/t/view.test b/mysql-test/t/view.test index 81155fc2335..6c855f124ff 100644 --- a/mysql-test/t/view.test +++ b/mysql-test/t/view.test @@ -1679,3 +1679,14 @@ select * from v1; select * from v2; drop view v2, v1; drop table t1, t2; + +# +# view over other view setup (BUG#7433) +# +CREATE TABLE t1 (C1 INT, C2 INT); +CREATE TABLE t2 (C2 INT); +CREATE VIEW v1 AS SELECT C2 FROM t2; +CREATE VIEW v2 AS SELECT C1 FROM t1 LEFT OUTER JOIN v1 USING (C2); +SELECT * FROM v2; +drop view v2, v1; +drop table t1, t2; diff --git a/sql/table.cc b/sql/table.cc index a67563ff34f..3e1fc22e0f0 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -1613,7 +1613,7 @@ void st_table_list::set_ancestor() tbl->table->grant= grant; } /* if view contain only one table, substitute TABLE of it */ - if (!ancestor->next_local) + if (ancestor && !ancestor->next_local) { table= ancestor->table; schema_table= ancestor->schema_table;