Commit effd338f authored by ingo@mysql.com's avatar ingo@mysql.com

Merge

parents 40b53eab fb10cfd0
......@@ -572,3 +572,12 @@ ERROR HY000: You can't specify target table 't1' for update in FROM clause
flush tables with read lock;
unlock tables;
drop table t1;
create table t1(column.name int);
ERROR 42000: Incorrect table name 'column'
create table t1(test.column.name int);
ERROR 42000: Incorrect table name 'column'
create table t1(xyz.t1.name int);
ERROR 42000: Incorrect database name 'xyz'
create table t1(t1.name int);
create table t2(test.t2.name int);
drop table t1,t2;
......@@ -477,3 +477,16 @@ create table t2 union = (t1) select * from t1;
flush tables with read lock;
unlock tables;
drop table t1;
#
# Bug#10413: Invalid column name is not rejected
#
--error 1103
create table t1(column.name int);
--error 1103
create table t1(test.column.name int);
--error 1102
create table t1(xyz.t1.name int);
create table t1(t1.name int);
create table t2(test.t2.name int);
drop table t1,t2;
......@@ -5016,7 +5016,31 @@ simple_ident:
field_ident:
ident { $$=$1;}
| ident '.' ident { $$=$3;} /* Skip schema name in create*/
| ident '.' ident '.' ident
{
TABLE_LIST *table= (TABLE_LIST*) Select->table_list.first;
if (my_strcasecmp(table_alias_charset, $1.str, table->db))
{
net_printf(YYTHD, ER_WRONG_DB_NAME, $1.str);
YYABORT;
}
if (my_strcasecmp(table_alias_charset, $3.str, table->real_name))
{
net_printf(YYTHD, ER_WRONG_TABLE_NAME, $3.str);
YYABORT;
}
$$=$5;
}
| ident '.' ident
{
TABLE_LIST *table= (TABLE_LIST*) Select->table_list.first;
if (my_strcasecmp(table_alias_charset, $1.str, table->alias))
{
net_printf(YYTHD, ER_WRONG_TABLE_NAME, $1.str);
YYABORT;
}
$$=$3;
}
| '.' ident { $$=$2;} /* For Delphi */;
table_ident:
......
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