Loading sql/sql_parse.cc +12 −2 Original line number Diff line number Diff line Loading @@ -2808,7 +2808,7 @@ mysql_execute_command(THD *thd) unique_table(create_table, select_tables)) { my_error(ER_UPDATE_TABLE_USED, MYF(0), create_table->table_name); goto unsent_create_error; goto unsent_create_error1; } /* If we create merge table, we have to test tables in merge, too */ if (lex->create_info.used_fields & HA_CREATE_USED_UNION) Loading @@ -2821,7 +2821,7 @@ mysql_execute_command(THD *thd) if (unique_table(tab, select_tables)) { my_error(ER_UPDATE_TABLE_USED, MYF(0), tab->table_name); goto unsent_create_error; goto unsent_create_error1; } } } Loading Loading @@ -2872,6 +2872,13 @@ mysql_execute_command(THD *thd) lex->link_first_table_back(create_table, link_to_local); break; unsent_create_error1: /* Release the protection against the global read lock and wake everyone, who might want to set a global read lock. */ start_waiting_global_read_lock(thd); /* put tables back for PS rexecuting */ unsent_create_error: lex->link_first_table_back(create_table, link_to_local); Loading Loading @@ -6959,6 +6966,8 @@ bool create_table_precheck(THD *thd, TABLE_LIST *tables, { /* Check permissions for used tables in CREATE TABLE ... SELECT */ #ifdef NOT_NECESSARY_TO_CHECK_CREATE_TABLE_EXIST_WHEN_PREPARING_STATEMENT /* This code throws an ill error for CREATE TABLE t1 SELECT * FROM t1 */ /* Only do the check for PS, becasue we on execute we have to check that against the opened tables to ensure we don't use a table that is part Loading @@ -6977,6 +6986,7 @@ bool create_table_precheck(THD *thd, TABLE_LIST *tables, goto err; } } #endif if (tables && check_table_access(thd, SELECT_ACL, tables,0)) goto err; } Loading sql/sql_yacc.yy +5 −4 Original line number Diff line number Diff line Loading @@ -7083,12 +7083,13 @@ field_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); my_error(ER_WRONG_DB_NAME, MYF(0), $1.str); YYABORT; } if (my_strcasecmp(table_alias_charset, $3.str, table->real_name)) if (my_strcasecmp(table_alias_charset, $3.str, table->table_name)) { net_printf(YYTHD, ER_WRONG_TABLE_NAME, $3.str); my_error(ER_WRONG_TABLE_NAME, MYF(0), $3.str); YYABORT; } $$=$5; Loading @@ -7098,7 +7099,7 @@ field_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); my_error(ER_WRONG_TABLE_NAME, MYF(0), $1.str); YYABORT; } $$=$3; Loading sql/sql_base.cc +1 −1 File changed.Contains only whitespace changes. Show changes Loading
sql/sql_parse.cc +12 −2 Original line number Diff line number Diff line Loading @@ -2808,7 +2808,7 @@ mysql_execute_command(THD *thd) unique_table(create_table, select_tables)) { my_error(ER_UPDATE_TABLE_USED, MYF(0), create_table->table_name); goto unsent_create_error; goto unsent_create_error1; } /* If we create merge table, we have to test tables in merge, too */ if (lex->create_info.used_fields & HA_CREATE_USED_UNION) Loading @@ -2821,7 +2821,7 @@ mysql_execute_command(THD *thd) if (unique_table(tab, select_tables)) { my_error(ER_UPDATE_TABLE_USED, MYF(0), tab->table_name); goto unsent_create_error; goto unsent_create_error1; } } } Loading Loading @@ -2872,6 +2872,13 @@ mysql_execute_command(THD *thd) lex->link_first_table_back(create_table, link_to_local); break; unsent_create_error1: /* Release the protection against the global read lock and wake everyone, who might want to set a global read lock. */ start_waiting_global_read_lock(thd); /* put tables back for PS rexecuting */ unsent_create_error: lex->link_first_table_back(create_table, link_to_local); Loading Loading @@ -6959,6 +6966,8 @@ bool create_table_precheck(THD *thd, TABLE_LIST *tables, { /* Check permissions for used tables in CREATE TABLE ... SELECT */ #ifdef NOT_NECESSARY_TO_CHECK_CREATE_TABLE_EXIST_WHEN_PREPARING_STATEMENT /* This code throws an ill error for CREATE TABLE t1 SELECT * FROM t1 */ /* Only do the check for PS, becasue we on execute we have to check that against the opened tables to ensure we don't use a table that is part Loading @@ -6977,6 +6986,7 @@ bool create_table_precheck(THD *thd, TABLE_LIST *tables, goto err; } } #endif if (tables && check_table_access(thd, SELECT_ACL, tables,0)) goto err; } Loading
sql/sql_yacc.yy +5 −4 Original line number Diff line number Diff line Loading @@ -7083,12 +7083,13 @@ field_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); my_error(ER_WRONG_DB_NAME, MYF(0), $1.str); YYABORT; } if (my_strcasecmp(table_alias_charset, $3.str, table->real_name)) if (my_strcasecmp(table_alias_charset, $3.str, table->table_name)) { net_printf(YYTHD, ER_WRONG_TABLE_NAME, $3.str); my_error(ER_WRONG_TABLE_NAME, MYF(0), $3.str); YYABORT; } $$=$5; Loading @@ -7098,7 +7099,7 @@ field_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); my_error(ER_WRONG_TABLE_NAME, MYF(0), $1.str); YYABORT; } $$=$3; Loading