Commit ea347e5b authored by sergefp@mysql.com's avatar sergefp@mysql.com

Fix for BUG#8921: Make SHOW CREATE VIEW ignore temporary tables.

parent a0c3aed7
...@@ -97,3 +97,29 @@ Variable_name Value ...@@ -97,3 +97,29 @@ Variable_name Value
Created_tmp_disk_tables 0 Created_tmp_disk_tables 0
Created_tmp_tables 2 Created_tmp_tables 2
drop table t1; drop table t1;
create temporary table t1 as select 'This is temp. table' A;
create view t1 as select 'This is view' A;
select * from t1;
A
This is temp. table
show create table t1;
Table Create Table
t1 CREATE TEMPORARY TABLE `t1` (
`A` varchar(19) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show create view t1;
View Create View
t1 CREATE ALGORITHM=UNDEFINED VIEW `test`.`t1` AS select _latin1'This is view' AS `A`
drop view t1;
select * from t1;
A
This is temp. table
create view t1 as select 'This is view again' A;
select * from t1;
A
This is temp. table
drop table t1;
select * from t1;
A
This is view again
drop view t1;
...@@ -89,3 +89,18 @@ flush status; ...@@ -89,3 +89,18 @@ flush status;
select * from t1 group by d; select * from t1 group by d;
show status like "created_tmp%tables"; show status like "created_tmp%tables";
drop table t1; drop table t1;
# Fix for BUG#8921: Check that temporary table is ingored by view commands.
create temporary table t1 as select 'This is temp. table' A;
create view t1 as select 'This is view' A;
select * from t1;
show create table t1;
show create view t1;
drop view t1;
select * from t1;
create view t1 as select 'This is view again' A;
select * from t1;
drop table t1;
select * from t1;
drop view t1;
...@@ -3010,6 +3010,10 @@ unsent_create_error: ...@@ -3010,6 +3010,10 @@ unsent_create_error:
goto error; goto error;
#else #else
{ {
/* Ignore temporary tables if this is "SHOW CREATE VIEW" */
if (lex->only_view)
first_table->skip_temporary= 1;
if (check_db_used(thd, all_tables) || if (check_db_used(thd, all_tables) ||
check_access(thd, SELECT_ACL | EXTRA_ACL, first_table->db, check_access(thd, SELECT_ACL | EXTRA_ACL, first_table->db,
&first_table->grant.privilege, 0, 0)) &first_table->grant.privilege, 0, 0))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment