Commit 5368479a authored by mats@kindahl-laptop.dnsalias.net's avatar mats@kindahl-laptop.dnsalias.net

Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.1-new-rpl

into  kindahl-laptop.dnsalias.net:/home/bkroot/mysql-5.1-rpl
parents 5c662d6d 2aab5fef
drop table if exists t1; drop table if exists t1,t2;
drop view if exists v1;
create table t1(n int not null, key(n), key(n), key(n), key(n)); create table t1(n int not null, key(n), key(n), key(n), key(n));
check table t1 extended; check table t1 extended;
insert into t1 values (200000); insert into t1 values (200000);
......
...@@ -2,7 +2,8 @@ connect (con1,localhost,root,,); ...@@ -2,7 +2,8 @@ connect (con1,localhost,root,,);
connect (con2,localhost,root,,); connect (con2,localhost,root,,);
connection con1; connection con1;
--disable_warnings --disable_warnings
drop table if exists t1; drop table if exists t1,t2;
drop view if exists v1;
--enable_warnings --enable_warnings
# Add a lot of keys to slow down check # Add a lot of keys to slow down check
......
...@@ -89,7 +89,9 @@ select export_set(3, _latin1'foo', _utf8'bar', ',', 4); ...@@ -89,7 +89,9 @@ select export_set(3, _latin1'foo', _utf8'bar', ',', 4);
# #
# Test for BUG#9535 # Test for BUG#9535
# #
--disable_warnings
create table t1 as select uuid(), length(uuid()); create table t1 as select uuid(), length(uuid());
--enable_warnings
show create table t1; show create table t1;
drop table t1; drop table t1;
......
...@@ -3103,6 +3103,27 @@ int THD::binlog_query(THD::enum_binlog_query_type qtype, char const *query, ...@@ -3103,6 +3103,27 @@ int THD::binlog_query(THD::enum_binlog_query_type qtype, char const *query,
if (int error= binlog_flush_pending_rows_event(TRUE)) if (int error= binlog_flush_pending_rows_event(TRUE))
DBUG_RETURN(error); DBUG_RETURN(error);
/*
If we are in statement mode and trying to log an unsafe statement,
we should print a warning.
*/
if (lex->is_stmt_unsafe() &&
variables.binlog_format == BINLOG_FORMAT_STMT)
{
DBUG_ASSERT(this->query != NULL);
push_warning(this, MYSQL_ERROR::WARN_LEVEL_WARN,
ER_BINLOG_UNSAFE_STATEMENT,
ER(ER_BINLOG_UNSAFE_STATEMENT));
if (!(binlog_flags & BINLOG_FLAG_UNSAFE_STMT_PRINTED))
{
char warn_buf[MYSQL_ERRMSG_SIZE];
my_snprintf(warn_buf, MYSQL_ERRMSG_SIZE, "%s Statement: %s",
ER(ER_BINLOG_UNSAFE_STATEMENT), this->query);
sql_print_warning(warn_buf);
binlog_flags|= BINLOG_FLAG_UNSAFE_STMT_PRINTED;
}
}
switch (qtype) { switch (qtype) {
case THD::ROW_QUERY_TYPE: case THD::ROW_QUERY_TYPE:
if (current_stmt_binlog_row_based) if (current_stmt_binlog_row_based)
...@@ -3118,23 +3139,6 @@ int THD::binlog_query(THD::enum_binlog_query_type qtype, char const *query, ...@@ -3118,23 +3139,6 @@ int THD::binlog_query(THD::enum_binlog_query_type qtype, char const *query,
to how you treat this. to how you treat this.
*/ */
case THD::STMT_QUERY_TYPE: case THD::STMT_QUERY_TYPE:
if (lex->is_stmt_unsafe())
{
DBUG_ASSERT(this->query != NULL);
push_warning(this, MYSQL_ERROR::WARN_LEVEL_WARN,
ER_BINLOG_UNSAFE_STATEMENT,
ER(ER_BINLOG_UNSAFE_STATEMENT));
if (!(binlog_flags & BINLOG_FLAG_UNSAFE_STMT_PRINTED))
{
char warn_buf[MYSQL_ERRMSG_SIZE];
my_snprintf(warn_buf, MYSQL_ERRMSG_SIZE, "%s Statement: %s",
ER(ER_BINLOG_UNSAFE_STATEMENT), this->query);
sql_print_warning(warn_buf);
binlog_flags|= BINLOG_FLAG_UNSAFE_STMT_PRINTED;
}
}
/* /*
The MYSQL_LOG::write() function will set the STMT_END_F flag and The MYSQL_LOG::write() function will set the STMT_END_F flag and
flush the pending rows event if necessary. flush the pending rows event if necessary.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment