ndb - fiexed for bug#15021, binlog_index table become inconsistent if errors...

ndb - fiexed for bug#15021, binlog_index table become inconsistent if errors during purge of binlogs.

improved the original patch, changed if/else to switch/case.
parent 4a0faf70
...@@ -1553,32 +1553,32 @@ int open_table_from_share(THD *thd, TABLE_SHARE *share, const char *alias, ...@@ -1553,32 +1553,32 @@ int open_table_from_share(THD *thd, TABLE_SHARE *share, const char *alias,
outparam->file->auto_repair() && outparam->file->auto_repair() &&
!(ha_open_flags & HA_OPEN_FOR_REPAIR)); !(ha_open_flags & HA_OPEN_FOR_REPAIR));
if (ha_err == HA_ERR_NO_SUCH_TABLE) switch (ha_err)
{ {
/* case HA_ERR_NO_SUCH_TABLE:
The table did not exists in storage engine, use same error message /*
as if the .frm file didn't exist The table did not exists in storage engine, use same error message
*/ as if the .frm file didn't exist
error= 1; */
my_errno= ENOENT; error= 1;
} my_errno= ENOENT;
else if (ha_err == EMFILE) break;
{ case EMFILE:
/* /*
Too many files opened, use same error message as if the .frm Too many files opened, use same error message as if the .frm
file can't open file can't open
*/ */
DBUG_PRINT("error", ("open file: %s failed, too many files opened (errno: %d)", DBUG_PRINT("error", ("open file: %s failed, too many files opened (errno: %d)",
share->normalized_path.str, ha_err)); share->normalized_path.str, ha_err));
error= 1; error= 1;
my_errno= EMFILE; my_errno= EMFILE;
} break;
else default:
{ outparam->file->print_error(ha_err, MYF(0));
outparam->file->print_error(ha_err, MYF(0)); error_reported= TRUE;
error_reported= TRUE; if (ha_err == HA_ERR_TABLE_DEF_CHANGED)
if (ha_err == HA_ERR_TABLE_DEF_CHANGED) error= 7;
error= 7; break;
} }
goto err; /* purecov: inspected */ goto err; /* purecov: inspected */
} }
......
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