File: rpl_binlog_sql_mode.test

package info (click to toggle)
mysql-8.0 8.0.43-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,273,924 kB
  • sloc: cpp: 4,684,605; ansic: 412,450; pascal: 108,398; java: 83,641; perl: 30,221; cs: 27,067; sql: 26,594; sh: 24,181; python: 21,816; yacc: 17,169; php: 11,522; xml: 7,388; javascript: 7,076; makefile: 2,194; lex: 1,075; awk: 670; asm: 520; objc: 183; ruby: 97; lisp: 86
file content (128 lines) | stat: -rw-r--r-- 4,236 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# ==== Purpose ====
#
# Check the removal of sql_mode flags from routines' metadata.
#
# List of removed modes:
#
# - POSTGRESQL                  (0x00100)
# - ORACLE                      (0x00200)
# - MSSQL                       (0x00400)
# - DB2                         (0x00800)
# - MAXDB                       (0x01000)
# - NO_KEY_OPTIONS              (0x02000)
# - NO_TABLE_OPTIONS            (0x04000)
# - NO_FIELD_OPTIONS            (0x08000)
# - MYSQL323                    (0x10000)
# - MYSQL40                     (0x20000)
# - NO_AUTO_CREAETE_USER        (0x10000000)
#
# ==== Implementation ====
#
# Setup "fake replication" where the slave only starts the SQL thread,
# not the IO thread, and reads from an existing relay log that has
# been prepared so that it contains the error.  This requires some
# extra server options: see the -master.opt file.

--source include/not_group_replication_plugin.inc
--let $rpl_skip_start_slave= 1
--source include/not_have_privilege_checks_user.inc
--source include/master-slave.inc

--echo ==== Initialize ====
--connection slave

# The binlog we read does funny things with triggers and causes this warning.
--disable_query_log
CALL mtr.add_suppression('Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT');
CALL mtr.add_suppression("Either event.*is from an old source");
--enable_query_log

# Need to restore this at the end; CHANGE MASTER modifies it (see the
# manual for CHANGE MASTER).
SET @old_relay_log_purge= @@global.relay_log_purge;


# the relay log contains CREATE SCHEMA db1; CREATE PROCEDURE p_...
--let $fake_relay_log = $MYSQL_TEST_DIR/std_data/bug27213339-bin.000001
--source include/setup_fake_relay_log.inc

--echo ==== Test ====
--source include/start_slave_sql.inc
--let $slave_param= Exec_Master_Log_Pos
--let $slave_param_value=11102
--source include/wait_for_slave_param.inc

--echo ==== Check ====

SHOW CREATE EVENT db1.e_DB2;
SHOW CREATE EVENT db1.e_MAXDB;
SHOW CREATE EVENT db1.e_MSSQL;
SHOW CREATE EVENT db1.e_MYSQL323;
SHOW CREATE EVENT db1.e_MYSQL40;
SHOW CREATE EVENT db1.e_NO_FIELD_OPTIONS;
SHOW CREATE EVENT db1.e_NO_KEY_OPTIONS;
SHOW CREATE EVENT db1.e_NO_TABLE_OPTIONS;
SHOW CREATE EVENT db1.e_ORACLE;
SHOW CREATE EVENT db1.e_POSTGRESQL;
SHOW CREATE EVENT db1.e1;


SHOW CREATE FUNCTION db1.f_DB2;
SHOW CREATE FUNCTION db1.f_MAXDB;
SHOW CREATE FUNCTION db1.f_MSSQL;
SHOW CREATE FUNCTION db1.f_MYSQL323;
SHOW CREATE FUNCTION db1.f_MYSQL40;
SHOW CREATE FUNCTION db1.f_NO_FIELD_OPTIONS;
SHOW CREATE FUNCTION db1.f_NO_KEY_OPTIONS;
SHOW CREATE FUNCTION db1.f_NO_TABLE_OPTIONS;
SHOW CREATE FUNCTION db1.f_ORACLE;
SHOW CREATE FUNCTION db1.f_POSTGRESQL;
SHOW CREATE FUNCTION db1.f1;

SHOW CREATE PROCEDURE db1.p_DB2;
SHOW CREATE PROCEDURE db1.p_MAXDB;
SHOW CREATE PROCEDURE db1.p_MSSQL;
SHOW CREATE PROCEDURE db1.p_MYSQL323;
SHOW CREATE PROCEDURE db1.p_MYSQL40;
SHOW CREATE PROCEDURE db1.p_NO_FIELD_OPTIONS;
SHOW CREATE PROCEDURE db1.p_NO_KEY_OPTIONS;
SHOW CREATE PROCEDURE db1.p_NO_TABLE_OPTIONS;
SHOW CREATE PROCEDURE db1.p_ORACLE;
SHOW CREATE PROCEDURE db1.p_POSTGRESQL;
SHOW CREATE PROCEDURE db1.p1;

SHOW CREATE TRIGGER db1.t_DB2;
SHOW CREATE TRIGGER db1.t_MAXDB;
SHOW CREATE TRIGGER db1.t_MSSQL;
SHOW CREATE TRIGGER db1.t_MYSQL323;
SHOW CREATE TRIGGER db1.t_MYSQL40;
SHOW CREATE TRIGGER db1.t_NO_FIELD_OPTIONS;
SHOW CREATE TRIGGER db1.t_NO_KEY_OPTIONS;
SHOW CREATE TRIGGER db1.t_NO_TABLE_OPTIONS;
SHOW CREATE TRIGGER db1.t_ORACLE;
SHOW CREATE TRIGGER db1.t_POSTGRESQL;
SHOW CREATE TRIGGER db1.t1;

--echo ==== Clean up ====

DROP SCHEMA db1;

--source include/stop_slave_sql.inc
--source include/cleanup_fake_relay_log.inc

#
# Dump the relay binlog file using mysqlbinlog to show sql_mode filtering:
#
#   SET @@session.sql_mode = ... & /*!80005 &~0x1003ff00*/
#
# We should use --short-form everywhere because in other case output will
# be time dependend. Better than nothing.
#
let $MYSQLD_DATADIR= `select @@datadir`;
--let $mysqlbinlog_parameters= --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ $MYSQL_TEST_DIR/std_data/bug27213339-bin.000001
--source include/mysqlbinlog.inc


SET @@global.relay_log_purge= @old_relay_log_purge;
--let $rpl_only_running_threads= 1
--source include/rpl_end.inc