Fix create.test in --ps-protocol broken by the previous push.

sql/sql_table.cc:
  Fix create.test in --ps-protocol broken by the previous push,
  that added prepared statement validation of CREATE TABLE LIKE:
  move assignment of src_table->required_type to the parser.
sql/sql_yacc.yy:
  Fix create.test in --ps-protocol broken by the previous push,
  that added prepared statement validation of CREATE TABLE LIKE:
  move assignment of src_table->required_type to the parser.
This commit is contained in:
unknown 2008-04-17 03:27:14 +04:00
parent bd2a732812
commit 9590918851
2 changed files with 12 additions and 5 deletions

View File

@ -4775,9 +4775,6 @@ bool mysql_create_like_table(THD* thd, TABLE_LIST* table, TABLE_LIST* src_table,
DBUG_ENTER("mysql_create_like_table"); DBUG_ENTER("mysql_create_like_table");
/* CREATE TABLE ... LIKE is not allowed for views. */
src_table->required_type= FRMTYPE_TABLE;
/* /*
By opening source table we guarantee that it exists and no concurrent By opening source table we guarantee that it exists and no concurrent
DDL operation will mess with it. Later we also take an exclusive DDL operation will mess with it. Later we also take an exclusive

View File

@ -3577,20 +3577,30 @@ create2:
| LIKE table_ident | LIKE table_ident
{ {
THD *thd= YYTHD; THD *thd= YYTHD;
TABLE_LIST *src_table;
LEX *lex= thd->lex; LEX *lex= thd->lex;
lex->create_info.options|= HA_LEX_CREATE_TABLE_LIKE; lex->create_info.options|= HA_LEX_CREATE_TABLE_LIKE;
if (!lex->select_lex.add_table_to_list(thd, $2, NULL, 0, TL_READ)) src_table= lex->select_lex.add_table_to_list(thd, $2, NULL, 0,
TL_READ);
if (! src_table)
MYSQL_YYABORT; MYSQL_YYABORT;
/* CREATE TABLE ... LIKE is not allowed for views. */
src_table->required_type= FRMTYPE_TABLE;
} }
| '(' LIKE table_ident ')' | '(' LIKE table_ident ')'
{ {
THD *thd= YYTHD; THD *thd= YYTHD;
TABLE_LIST *src_table;
LEX *lex= thd->lex; LEX *lex= thd->lex;
lex->create_info.options|= HA_LEX_CREATE_TABLE_LIKE; lex->create_info.options|= HA_LEX_CREATE_TABLE_LIKE;
if (!lex->select_lex.add_table_to_list(thd, $3, NULL, 0, TL_READ)) src_table= lex->select_lex.add_table_to_list(thd, $3, NULL, 0,
TL_READ);
if (! src_table)
MYSQL_YYABORT; MYSQL_YYABORT;
/* CREATE TABLE ... LIKE is not allowed for views. */
src_table->required_type= FRMTYPE_TABLE;
} }
; ;