From c0d1c190f8e08ed5ba431447be8b98abbbfec2ff Mon Sep 17 00:00:00 2001 From: unknown <mikael@c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se> Date: Wed, 19 Apr 2006 16:08:59 -0400 Subject: [PATCH] WL 2826: Error handling of ALTER TABLE for partitioning Fixed a number of bugs sql/sql_table.cc: Fixed a number of bugs --- sql/sql_table.cc | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 8e8d430f89..850f473a4c 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -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) -- 2.30.9