Merge lp:~percona-dev/percona-server/5.1.46-suppress_log_warning_1592 into lp:percona-server/release-5.1.46-11

Proposed by Yasufumi Kinoshita
Status: Merged
Approved by: Vadim Tkachenko
Approved revision: no longer in the source branch.
Merged at revision: 8
Proposed branch: lp:~percona-dev/percona-server/5.1.46-suppress_log_warning_1592
Merge into: lp:percona-server/release-5.1.46-11
Diff against target: 170 lines (+140/-0)
5 files modified
mysql-test/percona_suppress_log_warning_1592-master.opt (+1/-0)
mysql-test/percona_suppress_log_warning_1592.result (+28/-0)
mysql-test/percona_suppress_log_warning_1592.test (+46/-0)
mysql_misc.patch (+64/-0)
series (+1/-0)
To merge this branch: bzr merge lp:~percona-dev/percona-server/5.1.46-suppress_log_warning_1592
Reviewer Review Type Date Requested Status
Vadim Tkachenko Approve
Review via email: mp+25757@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Vadim Tkachenko (vadim-tk) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file 'mysql-test/percona_suppress_log_warning_1592-master.opt'
2--- mysql-test/percona_suppress_log_warning_1592-master.opt 1970-01-01 00:00:00 +0000
3+++ mysql-test/percona_suppress_log_warning_1592-master.opt 2010-05-21 09:52:26 +0000
4@@ -0,0 +1,1 @@
5+--log-error
6
7=== added file 'mysql-test/percona_suppress_log_warning_1592.result'
8--- mysql-test/percona_suppress_log_warning_1592.result 1970-01-01 00:00:00 +0000
9+++ mysql-test/percona_suppress_log_warning_1592.result 2010-05-21 09:52:26 +0000
10@@ -0,0 +1,28 @@
11+SET @old_log_warnings = @@log_warnings;
12+SET @old_suppress_log_warning_1592 = @@suppress_log_warning_1592;
13+DROP TABLE IF EXISTS t1;
14+CREATE TABLE t1 (a VARCHAR(36), b VARCHAR(20));
15+SET GLOBAL SUPPRESS_LOG_WARNING_1592 = 0;
16+SET GLOBAL LOG_WARNINGS = 0;
17+INSERT INTO t1 VALUES(UUID(), 'suppress_1592');
18+Warnings:
19+Note 1592 Statement may not be safe to log in statement format.
20+SET GLOBAL LOG_WARNINGS = 1;
21+INSERT INTO t1 VALUES(UUID(), 'suppress_1592');
22+Warnings:
23+Note 1592 Statement may not be safe to log in statement format.
24+SET GLOBAL SUPPRESS_LOG_WARNING_1592 = 1;
25+SET GLOBAL LOG_WARNINGS = 0;
26+INSERT INTO t1 VALUES(UUID(), 'suppress_1592');
27+Warnings:
28+Note 1592 Statement may not be safe to log in statement format.
29+SET GLOBAL LOG_WARNINGS = 1;
30+INSERT INTO t1 VALUES(UUID(), 'suppress_1592');
31+Warnings:
32+Note 1592 Statement may not be safe to log in statement format.
33+DROP TABLE t1;
34+SET GLOBAL log_warnings = @old_log_warnings;
35+SET GLOBAL suppress_log_warning_1592 = @old_suppress_log_warning_1592;
36+# Count the number of times the "Unsafe" message was printed
37+# to the error log.
38+Occurrences: 1
39
40=== added file 'mysql-test/percona_suppress_log_warning_1592.test'
41--- mysql-test/percona_suppress_log_warning_1592.test 1970-01-01 00:00:00 +0000
42+++ mysql-test/percona_suppress_log_warning_1592.test 2010-05-21 09:52:26 +0000
43@@ -0,0 +1,46 @@
44+-- source include/have_log_bin.inc
45+-- source include/have_binlog_format_statement.inc
46+
47+SET @old_log_warnings = @@log_warnings;
48+SET @old_suppress_log_warning_1592 = @@suppress_log_warning_1592;
49+
50+--disable_warnings
51+DROP TABLE IF EXISTS t1;
52+--enable_warnings
53+CREATE TABLE t1 (a VARCHAR(36), b VARCHAR(20));
54+SET GLOBAL SUPPRESS_LOG_WARNING_1592 = 0;
55+SET GLOBAL LOG_WARNINGS = 0;
56+INSERT INTO t1 VALUES(UUID(), 'suppress_1592');
57+SET GLOBAL LOG_WARNINGS = 1;
58+INSERT INTO t1 VALUES(UUID(), 'suppress_1592');
59+SET GLOBAL SUPPRESS_LOG_WARNING_1592 = 1;
60+SET GLOBAL LOG_WARNINGS = 0;
61+INSERT INTO t1 VALUES(UUID(), 'suppress_1592');
62+SET GLOBAL LOG_WARNINGS = 1;
63+INSERT INTO t1 VALUES(UUID(), 'suppress_1592');
64+DROP TABLE t1;
65+
66+SET GLOBAL log_warnings = @old_log_warnings;
67+SET GLOBAL suppress_log_warning_1592 = @old_suppress_log_warning_1592;
68+
69+let $log_error_= `SELECT @@GLOBAL.log_error`;
70+if(!`select LENGTH('$log_error_')`)
71+{
72+ # MySQL Server on windows is started with --console and thus
73+ # does not know the location of its .err log, use default location
74+ let $log_error_ = $MYSQLTEST_VARDIR/log/mysqld.1.err;
75+}
76+# Assign env variable LOG_ERROR
77+let LOG_ERROR=$log_error_;
78+
79+--echo # Count the number of times the "Unsafe" message was printed
80+--echo # to the error log.
81+
82+perl;
83+ use strict;
84+ my $log_error= $ENV{'LOG_ERROR'} or die "LOG_ERROR not set";
85+ open(FILE, "$log_error") or die("Unable to open $log_error: $!\n");
86+ my $count = () = grep(/suppress_1592/g,<FILE>);
87+ print "Occurrences: $count\n";
88+ close(FILE);
89+EOF
90
91=== added file 'mysql_misc.patch'
92--- mysql_misc.patch 1970-01-01 00:00:00 +0000
93+++ mysql_misc.patch 2010-05-21 09:52:26 +0000
94@@ -0,0 +1,64 @@
95+diff -ruN a/sql/mysql_priv.h b/sql/mysql_priv.h
96+--- a/sql/mysql_priv.h 2010-05-21 18:23:50.000000000 +0900
97++++ b/sql/mysql_priv.h 2010-05-21 18:23:59.000000000 +0900
98+@@ -2088,6 +2088,7 @@
99+ extern my_bool opt_readonly, lower_case_file_system;
100+ extern my_bool opt_userstat_running, opt_thread_statistics;
101+ extern my_bool opt_optimizer_fix;
102++extern my_bool opt_suppress_log_warning_1592;
103+ extern my_bool opt_enable_named_pipe, opt_sync_frm, opt_allow_suspicious_udfs;
104+ extern my_bool opt_secure_auth;
105+ extern char* opt_secure_file_priv;
106+diff -ruN a/sql/mysqld.cc b/sql/mysqld.cc
107+--- a/sql/mysqld.cc 2010-05-21 18:23:50.000000000 +0900
108++++ b/sql/mysqld.cc 2010-05-21 18:23:59.000000000 +0900
109+@@ -497,6 +497,7 @@
110+ my_bool opt_old_style_user_limits= 0, trust_function_creators= 0;
111+ my_bool opt_userstat_running= 0, opt_thread_statistics= 0;
112+ my_bool opt_optimizer_fix= 0;
113++my_bool opt_suppress_log_warning_1592= 0;
114+ /*
115+ True if there is at least one per-hour limit for some user, so we should
116+ check them before each query (and possibly reset counters when hour is
117+@@ -5782,6 +5783,7 @@
118+ OPT_USERSTAT_RUNNING,
119+ OPT_THREAD_STATISTICS,
120+ OPT_OPTIMIZER_FIX,
121++ OPT_SUPPRESS_LOG_WARNING_1592,
122+ OPT_USE_GLOBAL_LONG_QUERY_TIME,
123+ OPT_IGNORE_BUILTIN_INNODB,
124+ OPT_BINLOG_DIRECT_NON_TRANS_UPDATE,
125+@@ -7213,6 +7215,10 @@
126+ "Enable unofficial optimizer fixes.",
127+ (uchar**) &opt_optimizer_fix, (uchar**) &opt_optimizer_fix,
128+ 0, GET_BOOL, NO_ARG, 1, 0, 1, 0, 1, 0},
129++ {"suppress_log_warning_1592", OPT_SUPPRESS_LOG_WARNING_1592,
130++ "suppress warning about unsafe statements for binary logging",
131++ (uchar**) &opt_suppress_log_warning_1592, (uchar**) &opt_suppress_log_warning_1592,
132++ 0, GET_BOOL, NO_ARG, 0, 0, 1, 0, 1, 0},
133+ {"binlog-direct-non-transactional-updates", OPT_BINLOG_DIRECT_NON_TRANS_UPDATE,
134+ "Causes updates to non-transactional engines using statement format to be "
135+ "written directly to binary log. Before using this option, make sure that "
136+diff -ruN a/sql/set_var.cc b/sql/set_var.cc
137+--- a/sql/set_var.cc 2010-05-21 18:23:50.000000000 +0900
138++++ b/sql/set_var.cc 2010-05-21 18:23:59.000000000 +0900
139+@@ -496,6 +496,8 @@
140+ &opt_thread_statistics);
141+ static sys_var_bool_ptr sys_optimizer_fix(&vars, "optimizer_fix",
142+ &opt_optimizer_fix);
143++static sys_var_bool_ptr sys_suppress_log_warning_1592(&vars, "suppress_log_warning_1592",
144++ &opt_suppress_log_warning_1592);
145+ static sys_var_thd_ulong sys_read_rnd_buff_size(&vars, "read_rnd_buffer_size",
146+ &SV::read_rnd_buff_size);
147+ static sys_var_thd_ulong sys_div_precincrement(&vars, "div_precision_increment",
148+diff -ruN a/sql/sql_class.cc b/sql/sql_class.cc
149+--- a/sql/sql_class.cc 2010-05-21 18:23:50.000000000 +0900
150++++ b/sql/sql_class.cc 2010-05-21 18:23:59.000000000 +0900
151+@@ -4037,6 +4037,7 @@
152+ ER_BINLOG_UNSAFE_STATEMENT,
153+ ER(ER_BINLOG_UNSAFE_STATEMENT));
154+ if (global_system_variables.log_warnings &&
155++ !opt_suppress_log_warning_1592 &&
156+ !(binlog_flags & BINLOG_FLAG_UNSAFE_STMT_PRINTED))
157+ {
158+ sql_print_warning("%s Statement: %.*s",
159
160=== modified file 'series'
161--- series 2010-05-19 11:04:53 +0000
162+++ series 2010-05-21 09:52:26 +0000
163@@ -7,6 +7,7 @@
164 optimizer_fix.patch
165 mysql_dump_ignore_ct.patch
166 show_temp_51.patch
167+mysql_misc.patch
168 innodb_show_enhancements.patch
169 innodb_show_status.patch
170 innodb_io_patches.patch

Subscribers

No one subscribed via source and target branches