1# ==== Purpose ==== 2# 3# Test that nondeterministic system functions are correctly replicated. 4# 5# (Some functions are only correctly replicated if binlog_format=MIXED 6# or ROW. See binlog_unsafe.test for a test that those variables are 7# indeed unsafe.) 8# 9# ==== Implementation ==== 10# 11# We insert the values of each unsafe function into a table. Then we 12# replicate and check that the table is identical on slave. 13# 14# ==== Related bugs ==== 15# 16# BUG#47995 17 18--source include/master-slave.inc 19 20CALL mtr.add_suppression('Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT'); 21 22CREATE TABLE t1 (a VARCHAR(1000)); 23 24# We replicate the connection_id in the query_log_event 25INSERT INTO t1 VALUES (CONNECTION_ID()); 26--connection master1 27INSERT INTO t1 VALUES (CONNECTION_ID()); 28 29# We replicate the TIMESTAMP variable, so the following functions that 30# are affected by the TIMESTAMP variable should be safe to replicate. 31INSERT INTO t1 VALUES 32 (CURDATE()), 33 (CURRENT_DATE()), 34 (CURRENT_TIME()), 35 (CURRENT_TIMESTAMP()), 36 (CURTIME()), 37 (LOCALTIME()), 38 (LOCALTIMESTAMP()), 39 (NOW()), 40 (UNIX_TIMESTAMP()), 41 (UTC_DATE()), 42 (UTC_TIME()), 43 (UTC_TIMESTAMP()); 44 45# We replicate the random seed in a rand_log_event 46--disable_warnings 47INSERT INTO t1 VALUES (RAND()); 48--enable_warnings 49# We replicate the last_insert_id in an intvar_log_event 50INSERT INTO t1 VALUES (LAST_INSERT_ID()); 51 52--sync_slave_with_master 53--let $diff_tables= master:t1, slave:t1 54--source include/diff_tables.inc 55 56--connection master 57DROP TABLE t1; 58--source include/rpl_end.inc 59