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. sql/table.cc: changed if/else to switch/case.
This commit is contained in:
parent
885b632816
commit
eab917dba6
50
sql/table.cc
50
sql/table.cc
@ -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 */
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user