Commit c0d1c190 authored by unknown's avatar unknown

WL 2826: Error handling of ALTER TABLE for partitioning

Fixed a number of bugs


sql/sql_table.cc:
  Fixed a number of bugs
parent c1b8cff0
...@@ -424,9 +424,10 @@ static uint read_ddl_log_header() ...@@ -424,9 +424,10 @@ static uint read_ddl_log_header()
bzero(file_entry_buf, sizeof(global_ddl_log.file_entry_buf)); bzero(file_entry_buf, sizeof(global_ddl_log.file_entry_buf));
global_ddl_log.inited= FALSE; global_ddl_log.inited= FALSE;
global_ddl_log.recovery_phase= TRUE; global_ddl_log.recovery_phase= TRUE;
global_ddl_log.io_size= IO_SIZE;
create_ddl_log_file_name(file_name); create_ddl_log_file_name(file_name);
if (!(global_ddl_log.file_id= my_open(file_name, if ((global_ddl_log.file_id= my_open(file_name,
O_RDWR | O_BINARY, MYF(MY_WME)))) O_RDWR | O_BINARY, MYF(MY_WME))) >= 0)
{ {
if (read_ddl_log_file_entry(0UL)) if (read_ddl_log_file_entry(0UL))
{ {
...@@ -446,7 +447,6 @@ static uint read_ddl_log_header() ...@@ -446,7 +447,6 @@ static uint read_ddl_log_header()
} }
else else
{ {
global_ddl_log.io_size= IO_SIZE;
entry_no= 0; entry_no= 0;
} }
global_ddl_log.first_free= NULL; global_ddl_log.first_free= NULL;
...@@ -519,6 +519,7 @@ static bool init_ddl_log() ...@@ -519,6 +519,7 @@ static bool init_ddl_log()
DBUG_RETURN(FALSE); DBUG_RETURN(FALSE);
} }
global_ddl_log.io_size= IO_SIZE; global_ddl_log.io_size= IO_SIZE;
create_ddl_log_file_name(file_name);
if ((global_ddl_log.file_id= my_create(file_name, if ((global_ddl_log.file_id= my_create(file_name,
CREATE_MODE, CREATE_MODE,
O_RDWR | O_TRUNC | O_BINARY, O_RDWR | O_TRUNC | O_BINARY,
...@@ -567,18 +568,19 @@ static bool execute_ddl_log_action(THD *thd, DDL_LOG_ENTRY *ddl_log_entry) ...@@ -567,18 +568,19 @@ static bool execute_ddl_log_action(THD *thd, DDL_LOG_ENTRY *ddl_log_entry)
} }
handler_name.str= (char*)ddl_log_entry->handler_name; handler_name.str= (char*)ddl_log_entry->handler_name;
handler_name.length= strlen(ddl_log_entry->handler_name); handler_name.length= strlen(ddl_log_entry->handler_name);
hton= ha_resolve_by_name(thd, &handler_name);
if (!hton)
{
my_error(ER_ILLEGAL_HA, MYF(0), ddl_log_entry->handler_name);
DBUG_RETURN(TRUE);
}
init_sql_alloc(&mem_root, TABLE_ALLOC_BLOCK_SIZE, 0); init_sql_alloc(&mem_root, TABLE_ALLOC_BLOCK_SIZE, 0);
if (strcmp("frm", ddl_log_entry->handler_name)) if (strcmp("frm", ddl_log_entry->handler_name))
frm_action= TRUE; frm_action= TRUE;
else else
{ {
TABLE_SHARE dummy; TABLE_SHARE dummy;
hton= ha_resolve_by_name(thd, &handler_name);
if (!hton)
{
my_error(ER_ILLEGAL_HA, MYF(0), ddl_log_entry->handler_name);
goto error;
}
bzero(&dummy, sizeof(TABLE_SHARE)); bzero(&dummy, sizeof(TABLE_SHARE));
file= get_new_handler(&dummy, &mem_root, hton); file= get_new_handler(&dummy, &mem_root, hton);
if (!file) if (!file)
......
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