diff options
-rw-r--r-- | mysql-test/r/mix2_myisam.result | 16 | ||||
-rw-r--r-- | mysql-test/r/type_decimal.result | 6 | ||||
-rw-r--r-- | sql/sql_rename.cc | 9 | ||||
-rw-r--r-- | sql/sql_table.cc | 8 |
4 files changed, 21 insertions, 18 deletions
diff --git a/mysql-test/r/mix2_myisam.result b/mysql-test/r/mix2_myisam.result index 9a7d71820f8..45b4784251a 100644 --- a/mysql-test/r/mix2_myisam.result +++ b/mysql-test/r/mix2_myisam.result @@ -1611,15 +1611,15 @@ i 10 select sql_big_result v,count(c) from t1 group by v limit 10; v count(c) a 1 -a 10 -b 10 -c 10 -d 10 -e 10 -f 10 -g 10 +a 10 +b 10 +c 10 +d 10 +e 10 +f 10 +g 10 h 10 -i 10 +i 10 select c,count(*) from t1 group by c limit 10; c count(*) a 1 diff --git a/mysql-test/r/type_decimal.result b/mysql-test/r/type_decimal.result index 0840872a7a9..dfbd6619436 100644 --- a/mysql-test/r/type_decimal.result +++ b/mysql-test/r/type_decimal.result @@ -786,7 +786,7 @@ select group_concat(t) from t1 group by week(date)/10; group_concat(t) t Warnings: -Warning 1292 Truncated incorrect datetime value: '0000-00-00' -Warning 1292 Truncated incorrect datetime value: '0000-00-00' -Warning 1292 Truncated incorrect datetime value: '0000-00-00' +Warning 1292 Incorrect datetime value: '0000-00-00' +Warning 1292 Incorrect datetime value: '0000-00-00' +Warning 1292 Incorrect datetime value: '0000-00-00' drop table t1; diff --git a/sql/sql_rename.cc b/sql/sql_rename.cc index 8b04345640b..bf2e2d506cd 100644 --- a/sql/sql_rename.cc +++ b/sql/sql_rename.cc @@ -165,7 +165,7 @@ do_rename(THD *thd, TABLE_LIST *ren_table, char *new_db, char *new_table_name, else { old_alias= ren_table->table_name; - new_alias= new_table_table_name; + new_alias= new_table_name; } build_table_filename(name, sizeof(name), new_db, new_alias, reg_ext, 0); @@ -182,8 +182,10 @@ do_rename(THD *thd, TABLE_LIST *ren_table, char *new_db, char *new_table_name, { case FRMTYPE_TABLE: { - if (!(rc= mysql_rename_table(table_type, ren_table->db, old_alias, - new_db, new_alias))) + if (!(rc= mysql_rename_table(ha_resolve_by_legacy_type(thd, + table_type), + ren_table->db, old_alias, + new_db, new_alias, 0))) { if ((rc= Table_triggers_list::change_table_name(thd, ren_table->db, old_alias, @@ -204,7 +206,6 @@ do_rename(THD *thd, TABLE_LIST *ren_table, char *new_db, char *new_table_name, } } break; - } case FRMTYPE_VIEW: /* change of schema is not allowed */ if (strcmp(ren_table->db, new_db)) diff --git a/sql/sql_table.cc b/sql/sql_table.cc index d2f108cb8f2..c024ee8ddbe 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -5151,7 +5151,8 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name, char reg_path[FN_REFLEN+1]; ha_rows copied,deleted; uint db_create_options, used_fields; - handlerton *old_db_type, *new_db_type, table_type; + handlerton *old_db_type, *new_db_type; + legacy_db_type table_type; HA_CREATE_INFO *create_info; frm_type_enum frm_type; uint need_copy_table= 0; @@ -5235,8 +5236,9 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name, if (alter_info->tablespace_op != NO_TABLESPACE_OP) DBUG_RETURN(mysql_discard_or_import_tablespace(thd,table_list, alter_info->tablespace_op)); - sprintf(new_name_buff,"%s/%s/%s%s",mysql_data_home, db, table_name, reg_ext); - unpack_filename(new_name_buff, new_name_buff); + strxnmov(new_name_buff, sizeof (new_name_buff) - 1, mysql_data_home, "/", db, + "/", table_name, reg_ext, NullS); + (void) unpack_filename(new_name_buff, new_name_buff); if (lower_case_table_names != 2) my_casedn_str(files_charset_info, new_name_buff); frm_type= mysql_frm_type(thd, new_name_buff, &table_type); |