mirror of
https://github.com/MariaDB/server.git
synced 2025-08-26 01:44:06 +03:00
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.
66 lines
4.2 KiB
Plaintext
66 lines
4.2 KiB
Plaintext
set binlog_format=statement;
|
|
call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
|
|
RESET MASTER;
|
|
select count(*) > 0 from performance_schema.setup_instruments;
|
|
count(*) > 0
|
|
1
|
|
update performance_schema.setup_instruments set enabled='NO'
|
|
where name like "wait/synch/rwlock/sql/%"
|
|
and name not in ("wait/synch/rwlock/sql/CRYPTO_dynlock_value::lock");
|
|
Warnings:
|
|
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves.
|
|
select count(*) > 0 from performance_schema.events_waits_current;
|
|
count(*) > 0
|
|
1
|
|
drop table if exists test.t1;
|
|
drop table if exists test.t2;
|
|
create table test.t1 (thread_id integer);
|
|
create table test.t2 (name varchar(128));
|
|
insert into test.t1
|
|
select thread_id from performance_schema.events_waits_current;
|
|
Warnings:
|
|
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves.
|
|
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Mixing self-logging and non-self-logging engines in a statement is unsafe.
|
|
insert into test.t2
|
|
select name from performance_schema.setup_instruments
|
|
where name like "wait/synch/rwlock/sql/%"
|
|
and name not in ("wait/synch/rwlock/sql/CRYPTO_dynlock_value::lock");
|
|
Warnings:
|
|
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves.
|
|
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Mixing self-logging and non-self-logging engines in a statement is unsafe.
|
|
drop table test.t1;
|
|
drop table test.t2;
|
|
update performance_schema.setup_instruments set enabled='YES'
|
|
where name like "wait/synch/rwlock/sql/%"
|
|
and name not in ("wait/synch/rwlock/sql/CRYPTO_dynlock_value::lock");
|
|
Warnings:
|
|
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves.
|
|
show binlog events from <binlog_start>;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 # Query # # BEGIN
|
|
master-bin.000001 # Query # # use `test`; update performance_schema.setup_instruments set enabled='NO'
|
|
where name like "wait/synch/rwlock/sql/%"
|
|
and name not in ("wait/synch/rwlock/sql/CRYPTO_dynlock_value::lock")
|
|
master-bin.000001 # Query # # COMMIT
|
|
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `t1` /* generated by server */
|
|
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `t2` /* generated by server */
|
|
master-bin.000001 # Query # # use `test`; create table test.t1 (thread_id integer)
|
|
master-bin.000001 # Query # # use `test`; create table test.t2 (name varchar(128))
|
|
master-bin.000001 # Query # # BEGIN
|
|
master-bin.000001 # Query # # use `test`; insert into test.t1
|
|
select thread_id from performance_schema.events_waits_current
|
|
master-bin.000001 # Query # # COMMIT
|
|
master-bin.000001 # Query # # BEGIN
|
|
master-bin.000001 # Query # # use `test`; insert into test.t2
|
|
select name from performance_schema.setup_instruments
|
|
where name like "wait/synch/rwlock/sql/%"
|
|
and name not in ("wait/synch/rwlock/sql/CRYPTO_dynlock_value::lock")
|
|
master-bin.000001 # Query # # COMMIT
|
|
master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */
|
|
master-bin.000001 # Query # # use `test`; DROP TABLE `t2` /* generated by server */
|
|
master-bin.000001 # Query # # BEGIN
|
|
master-bin.000001 # Query # # use `test`; update performance_schema.setup_instruments set enabled='YES'
|
|
where name like "wait/synch/rwlock/sql/%"
|
|
and name not in ("wait/synch/rwlock/sql/CRYPTO_dynlock_value::lock")
|
|
master-bin.000001 # Query # # COMMIT
|