mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
WL 2826: Error handling of ALTER TABLE for partitioning
Fixed a number of bugs
This commit is contained in:

parent
22ed19e434
commit
f78195049d
@ -424,9 +424,10 @@ static uint read_ddl_log_header()
|
||||
bzero(file_entry_buf, sizeof(global_ddl_log.file_entry_buf));
|
||||
global_ddl_log.inited= FALSE;
|
||||
global_ddl_log.recovery_phase= TRUE;
|
||||
global_ddl_log.io_size= IO_SIZE;
|
||||
create_ddl_log_file_name(file_name);
|
||||
if (!(global_ddl_log.file_id= my_open(file_name,
|
||||
O_RDWR | O_BINARY, MYF(MY_WME))))
|
||||
if ((global_ddl_log.file_id= my_open(file_name,
|
||||
O_RDWR | O_BINARY, MYF(MY_WME))) >= 0)
|
||||
{
|
||||
if (read_ddl_log_file_entry(0UL))
|
||||
{
|
||||
@ -446,7 +447,6 @@ static uint read_ddl_log_header()
|
||||
}
|
||||
else
|
||||
{
|
||||
global_ddl_log.io_size= IO_SIZE;
|
||||
entry_no= 0;
|
||||
}
|
||||
global_ddl_log.first_free= NULL;
|
||||
@ -519,6 +519,7 @@ static bool init_ddl_log()
|
||||
DBUG_RETURN(FALSE);
|
||||
}
|
||||
global_ddl_log.io_size= IO_SIZE;
|
||||
create_ddl_log_file_name(file_name);
|
||||
if ((global_ddl_log.file_id= my_create(file_name,
|
||||
CREATE_MODE,
|
||||
O_RDWR | O_TRUNC | O_BINARY,
|
||||
@ -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.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);
|
||||
if (strcmp("frm", ddl_log_entry->handler_name))
|
||||
frm_action= TRUE;
|
||||
else
|
||||
{
|
||||
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));
|
||||
file= get_new_handler(&dummy, &mem_root, hton);
|
||||
if (!file)
|
||||
|
Reference in New Issue
Block a user