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
|
# name : suppress_log_warning_1592.patch
# introduced : 11 or before
# maintainer : Oleg
#
#!!! notice !!!
# Any small change to this file in the main branch
# should be done or reviewed by the maintainer!
diff -ruN a/sql/mysql_priv.h b/sql/mysql_priv.h
--- a/sql/mysql_priv.h 2010-07-26 18:31:59.056061915 +0900
+++ b/sql/mysql_priv.h 2010-07-26 18:34:10.205015964 +0900
@@ -2111,6 +2111,7 @@
extern my_bool opt_readonly, lower_case_file_system;
extern my_bool opt_userstat_running, opt_thread_statistics;
extern my_bool opt_optimizer_fix;
+extern my_bool opt_suppress_log_warning_1592;
extern my_bool opt_enable_named_pipe, opt_sync_frm, opt_allow_suspicious_udfs;
extern my_bool opt_secure_auth;
extern char* opt_secure_file_priv;
diff -ruN a/sql/mysqld.cc b/sql/mysqld.cc
--- a/sql/mysqld.cc 2010-07-26 18:33:52.988451388 +0900
+++ b/sql/mysqld.cc 2010-07-26 18:34:10.203114167 +0900
@@ -534,6 +534,7 @@
my_bool opt_old_style_user_limits= 0, trust_function_creators= 0;
my_bool opt_userstat_running= 0, opt_thread_statistics= 0;
my_bool opt_optimizer_fix= 0;
+my_bool opt_suppress_log_warning_1592= 0;
/*
True if there is at least one per-hour limit for some user, so we should
check them before each query (and possibly reset counters when hour is
@@ -5852,6 +5853,7 @@
OPT_USERSTAT_RUNNING,
OPT_THREAD_STATISTICS,
OPT_OPTIMIZER_FIX,
+ OPT_SUPPRESS_LOG_WARNING_1592,
OPT_USE_GLOBAL_LONG_QUERY_TIME,
OPT_USE_GLOBAL_LOG_SLOW_CONTROL,
OPT_SLOW_QUERY_LOG_MICROSECONDS_TIMESTAMP,
@@ -7365,6 +7367,10 @@
"Enable unofficial optimizer fixes.",
(uchar**) &opt_optimizer_fix, (uchar**) &opt_optimizer_fix,
0, GET_BOOL, NO_ARG, 1, 0, 1, 0, 1, 0},
+ {"suppress_log_warning_1592", OPT_SUPPRESS_LOG_WARNING_1592,
+ "suppress warning about unsafe statements for binary logging",
+ (uchar**) &opt_suppress_log_warning_1592, (uchar**) &opt_suppress_log_warning_1592,
+ 0, GET_BOOL, NO_ARG, 0, 0, 1, 0, 1, 0},
{"binlog-direct-non-transactional-updates", OPT_BINLOG_DIRECT_NON_TRANS_UPDATE,
"Causes updates to non-transactional engines using statement format to be "
"written directly to binary log. Before using this option, make sure that "
diff -ruN a/sql/set_var.cc b/sql/set_var.cc
--- a/sql/set_var.cc 2010-07-26 18:31:59.093062279 +0900
+++ b/sql/set_var.cc 2010-07-26 18:34:10.210061358 +0900
@@ -573,6 +573,8 @@
&opt_thread_statistics);
static sys_var_bool_ptr sys_optimizer_fix(&vars, "optimizer_fix",
&opt_optimizer_fix);
+static sys_var_bool_ptr sys_suppress_log_warning_1592(&vars, "suppress_log_warning_1592",
+ &opt_suppress_log_warning_1592);
static sys_var_thd_ulong sys_read_rnd_buff_size(&vars, "read_rnd_buffer_size",
&SV::read_rnd_buff_size);
static sys_var_thd_ulong sys_div_precincrement(&vars, "div_precision_increment",
diff -ruN a/sql/sql_class.cc b/sql/sql_class.cc
--- a/sql/sql_class.cc 2010-07-26 18:29:12.285116210 +0900
+++ b/sql/sql_class.cc 2010-07-26 18:34:10.214061153 +0900
@@ -4119,6 +4119,7 @@
ER_BINLOG_UNSAFE_STATEMENT,
ER(ER_BINLOG_UNSAFE_STATEMENT));
if (global_system_variables.log_warnings &&
+ !opt_suppress_log_warning_1592 &&
!(binlog_flags & BINLOG_FLAG_UNSAFE_STMT_PRINTED))
{
sql_print_warning("%s Statement: %.*s",
|