1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-01 03:47:19 +03:00

MDEV-3837 Assertion `table->read_set == &table->def_read_set' failed on updating a performance_schema table

This was failing not only for P_S, but for any engine that had
HA_PRIMARY_KEY_REQUIRED_FOR_DELETE flag set (in the tree - only P_S and federated).
Because of this flag, read_set and write_set were (possibly) changed
on update. But later the code modified these bitmaps and restored them to the default
state, losing HA_PRIMARY_KEY_REQUIRED_FOR_DELETE related changes.

sql/handler.cc:
  small optimization.
  don't change the *write* set only because all columns has to be *read*
This commit is contained in:
Sergei Golubchik
2012-12-15 21:54:18 +01:00
parent 2217717ff6
commit 47f5632d60
4 changed files with 14 additions and 10 deletions

View File

@ -5446,7 +5446,7 @@ int handler::ha_delete_row(const uchar *buf)
void handler::use_hidden_primary_key()
{
/* fallback to use all columns in the table to identify row */
table->use_all_columns();
table->column_bitmaps_set(&table->s->all_set, table->write_set);
}