mirror of
https://github.com/MariaDB/server.git
synced 2026-05-14 19:07:15 +02:00
Don't crash with: UPDATE performance_schema.setup_instruments SET ENABLED="NO";
Don't log updates to performance schema in replication log. Ensure that we don't call ha_update after ha_index_or_rnd_end() is called on slave. .bzrignore: Ignore some generated files mysql-test/include/show_slave_status.inc: Ensure that ./ is removed from file names mysql-test/suite/perfschema/r/binlog_mix.result: Updated results mysql-test/suite/perfschema/r/binlog_row.result: Updated results mysql-test/suite/perfschema/r/binlog_stmt.result: Updated results mysql-test/suite/rpl/r/rpl_cant_read_event_incident.result: Updated results mysql-test/suite/rpl/r/rpl_performance_schema.result: Ensure that we don't crash slave when we update performance schema mysql-test/suite/rpl/t/rpl_performance_schema.test: Ensure that we don't crash slave when we update performance schema sql/log_event.cc: Ensure that we don't call ha_update after ha_index_or_rnd_end() is called. Remove old code that is not needed anymore (like restarting read loop over all rows if no matcing row is found) Simplify code sql/log_event_old.cc: Ensure that we don't call ha_update after ha_index_or_rnd_end() is called. storage/myisam/ha_myisam.cc: More DBUG_PRINT storage/perfschema/ha_perfschema.h: Don't log updates to performance schema in replication log.
This commit is contained in:
parent
92bd8a5c60
commit
59f5c05a38
12 changed files with 79 additions and 84 deletions
|
|
@ -1672,18 +1672,26 @@ int ha_myisam::index_init(uint idx, bool sorted)
|
|||
|
||||
int ha_myisam::index_end()
|
||||
{
|
||||
DBUG_ENTER("ha_myisam::index_end");
|
||||
active_index=MAX_KEY;
|
||||
//pushed_idx_cond_keyno= MAX_KEY;
|
||||
mi_set_index_cond_func(file, NULL, 0);
|
||||
in_range_check_pushed_down= FALSE;
|
||||
ds_mrr.dsmrr_close();
|
||||
return 0;
|
||||
#if !defined(DBUG_OFF) && defined(SQL_SELECT_FIXED_FOR_UPDATE)
|
||||
file->update&= ~HA_STATE_AKTIV; // Forget active row
|
||||
#endif
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
int ha_myisam::rnd_end()
|
||||
{
|
||||
DBUG_ENTER("ha_myisam::rnd_end");
|
||||
ds_mrr.dsmrr_close();
|
||||
return 0;
|
||||
#if !defined(DBUG_OFF) && defined(SQL_SELECT_FIXED_FOR_UPDATE)
|
||||
file->update&= ~HA_STATE_AKTIV; // Forget active row
|
||||
#endif
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
int ha_myisam::index_read_map(uchar *buf, const uchar *key,
|
||||
|
|
@ -1785,6 +1793,7 @@ void ha_myisam::position(const uchar *record)
|
|||
{
|
||||
my_off_t row_position= mi_position(file);
|
||||
my_store_ptr(ref, ref_length, row_position);
|
||||
file->update|= HA_STATE_AKTIV; // Row can be updated
|
||||
}
|
||||
|
||||
int ha_myisam::info(uint flag)
|
||||
|
|
|
|||
|
|
@ -70,9 +70,13 @@ public:
|
|||
Without HA_FAST_KEY_READ, the optimizer reads all columns and never
|
||||
calls ::rnd_pos(), so it is guaranteed to return only thread <n>
|
||||
records.
|
||||
We use HA_HAS_OWN_BINLOGGING to stop changes to this table to
|
||||
be logged to slaves (as enabled performance tracking on all slaves
|
||||
is probably not what anyone wants)
|
||||
*/
|
||||
return HA_NO_TRANSACTIONS | HA_REC_NOT_IN_SEQ | HA_NO_AUTO_INCREMENT |
|
||||
HA_BINLOG_ROW_CAPABLE | HA_BINLOG_STMT_CAPABLE | HA_NO_BLOBS;
|
||||
return (HA_NO_TRANSACTIONS | HA_REC_NOT_IN_SEQ | HA_NO_AUTO_INCREMENT |
|
||||
HA_BINLOG_ROW_CAPABLE | HA_BINLOG_STMT_CAPABLE |
|
||||
HA_HAS_OWN_BINLOGGING | HA_NO_BLOBS);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue