Fix for bug #6859 (after Sanja's review)

Added check which throws ER_WRONG_OBJECT error in case the .frm
doesn't contain a valid table type (e.g. view or trigger)
parent 8fecc171
...@@ -602,3 +602,10 @@ drop database mysqltest; ...@@ -602,3 +602,10 @@ drop database mysqltest;
create table test.t1 like x; create table test.t1 like x;
ERROR 42000: Incorrect database name 'NULL' ERROR 42000: Incorrect database name 'NULL'
drop table if exists test.t1; drop table if exists test.t1;
create database mysqltest;
use mysqltest;
create view v1 as select 'foo' from dual;
create table t1 like v1;
ERROR HY000: 'mysqltest.v1' is not a table
drop view v1;
drop database mysqltest;
...@@ -515,4 +515,14 @@ create table test.t1 like x; ...@@ -515,4 +515,14 @@ create table test.t1 like x;
drop table if exists test.t1; drop table if exists test.t1;
--enable_warnings --enable_warnings
#
# Bug #6859: Bogus error message on attempt to CREATE TABLE t LIKE view
#
create database mysqltest;
use mysqltest;
create view v1 as select 'foo' from dual;
--error 1347
create table t1 like v1;
drop view v1;
drop database mysqltest;
# End of 4.1 tests # End of 4.1 tests
...@@ -2629,6 +2629,15 @@ bool mysql_create_like_table(THD* thd, TABLE_LIST* table, ...@@ -2629,6 +2629,15 @@ bool mysql_create_like_table(THD* thd, TABLE_LIST* table,
} }
} }
/*
create like should be not allowed for Views, Triggers, ...
*/
if (mysql_frm_type(src_path) != FRMTYPE_TABLE)
{
my_error(ER_WRONG_OBJECT, MYF(0), src_db, src_table, "a table");
goto err;
}
/* /*
Validate the destination table Validate the destination table
......
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