mirror of
https://github.com/MariaDB/server.git
synced 2025-04-28 06:45:23 +03:00
MDEV-10957: Assertion failure when dropping a myisam table
... with wsrep_replicate_myisam enabled Internal updates to system statistical tables could wrongly trigger an additional total-order replication if wsrep_repli -cate_myisam is enabled. Fixed by adding a check to skip total-order replication for stat tables.
This commit is contained in:
parent
9d8ec1468a
commit
d51e7f90bf
@ -4068,6 +4068,7 @@ restart:
|
||||
(*start) &&
|
||||
(*start)->table &&
|
||||
(*start)->table->file->ht == myisam_hton &&
|
||||
!is_stat_table((*start)->db, (*start)->alias) &&
|
||||
sqlcom_can_generate_row_events(thd) &&
|
||||
thd->get_command() != COM_STMT_PREPARE)
|
||||
{
|
||||
|
@ -3849,3 +3849,21 @@ double Histogram::point_selectivity(double pos, double avg_sel)
|
||||
return sel;
|
||||
}
|
||||
|
||||
/*
|
||||
Check whether the table is one of the persistent statistical tables.
|
||||
*/
|
||||
bool is_stat_table(const char *db, const char *table)
|
||||
{
|
||||
DBUG_ASSERT(db && table);
|
||||
|
||||
if (!memcmp(db, stat_tables_db_name.str, stat_tables_db_name.length))
|
||||
{
|
||||
for (uint i= 0; i < STATISTICS_TABLES; i ++)
|
||||
{
|
||||
if (!memcmp(table, stat_table_name[i].str, stat_table_name[i].length))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -107,6 +107,7 @@ double get_column_range_cardinality(Field *field,
|
||||
key_range *min_endp,
|
||||
key_range *max_endp,
|
||||
uint range_flag);
|
||||
bool is_stat_table(const char *db, const char *table);
|
||||
|
||||
class Histogram
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user