diff options
author | unknown <acurtis@xiphis.org> | 2005-06-09 17:15:06 +0100 |
---|---|---|
committer | unknown <acurtis@xiphis.org> | 2005-06-09 17:15:06 +0100 |
commit | fec1c6ac67c1c1ed4cdbde97d066032f29650916 (patch) | |
tree | d9346272a66df32b694fc91151af4459d92c8e47 /sql/sql_table.cc | |
parent | baae624cdbdec0cc1342f02a205d32b07f096011 (diff) | |
parent | c995109b699a56e94bbc82754b17622f271ebb39 (diff) | |
download | mariadb-git-fec1c6ac67c1c1ed4cdbde97d066032f29650916.tar.gz |
Merge
BitKeeper/etc/logging_ok:
auto-union
myisam/mi_check.c:
Auto merged
mysql-test/r/create.result:
Auto merged
mysql-test/r/innodb_handler.result:
Auto merged
mysql-test/r/ps_7ndb.result:
Auto merged
mysql-test/t/create.test:
Auto merged
sql/set_var.cc:
Auto merged
mysql-test/r/sql_mode.result:
SCCS merged
mysql-test/t/sql_mode.test:
SCCS merged
sql/sql_acl.cc:
SCCS merged
sql/sql_handler.cc:
SCCS merged
sql/sql_table.cc:
SCCS merged
Diffstat (limited to 'sql/sql_table.cc')
-rw-r--r-- | sql/sql_table.cc | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/sql/sql_table.cc b/sql/sql_table.cc index dcc307ff813..2cf9386d0e4 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -2589,28 +2589,33 @@ bool mysql_create_like_table(THD* thd, TABLE_LIST* table, char src_path[FN_REFLEN], dst_path[FN_REFLEN]; char *db= table->db; char *table_name= table->table_name; - char *src_db= thd->db; + char *src_db; char *src_table= table_ident->table.str; int err; bool res= TRUE; TABLE_LIST src_tables_list; DBUG_ENTER("mysql_create_like_table"); + src_db= table_ident->db.str ? table_ident->db.str : thd->db; /* Validate the source table */ if (table_ident->table.length > NAME_LEN || (table_ident->table.length && - check_table_name(src_table,table_ident->table.length)) || - table_ident->db.str && check_db_name((src_db= table_ident->db.str))) + check_table_name(src_table,table_ident->table.length))) { my_error(ER_WRONG_TABLE_NAME, MYF(0), src_table); DBUG_RETURN(TRUE); } + if (!src_db || check_db_name(src_db)) + { + my_error(ER_WRONG_DB_NAME, MYF(0), src_db ? src_db : "NULL"); + DBUG_RETURN(-1); + } bzero((gptr)&src_tables_list, sizeof(src_tables_list)); - src_tables_list.db= table_ident->db.str ? table_ident->db.str : thd->db; - src_tables_list.table_name= table_ident->table.str; + src_tables_list.db= src_db; + src_tables_list.table_name= src_table; if (lock_and_wait_for_table_name(thd, &src_tables_list)) goto err; |