~percona-dev/percona-server/release-5.1.57-12.8-commit108486

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",