Commit af149459 authored by guilhem@mysql.com's avatar guilhem@mysql.com

Fix after merge of 5.0, fix of a result file which somebody hadn't updated.

"mysqldump" test fails (mysqlimport related, Brian aware), ndb_cache2 ndb_cache_multi2
partition_mgm_err fail (unrelated to my changes), rpl_row_view01 (known crash BUG#17265)
parent ac2b5966
...@@ -270,17 +270,3 @@ disconnect con3; ...@@ -270,17 +270,3 @@ disconnect con3;
connection con4; connection con4;
select get_lock("a",10); # wait for rollback to finish select get_lock("a",10); # wait for rollback to finish
# we check that the error code of the "ROLLBACK" event is 0 and not
# ER_SERVER_SHUTDOWN (i.e. disconnection just rolls back transaction
# and does not make slave to stop)
--exec $MYSQL_BINLOG --start-position=547 $MYSQL_TEST_DIR/var/log/master-bin.000001 > var/tmp/mix_innodb_myisam_binlog.output
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
eval select
(@a:=load_file("$MYSQL_TEST_DIR/var/tmp/mix_innodb_myisam_binlog.output"))
is not null;
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
eval select
@a like "%#%error_code=0%ROLLBACK;%ROLLBACK /* added by mysqlbinlog */;%",
@a not like "%#%error_code=%error_code=%";
drop table t1, t2;
...@@ -281,3 +281,27 @@ master-bin.000001 1092 Write_rows 1 # ...@@ -281,3 +281,27 @@ master-bin.000001 1092 Write_rows 1 #
master-bin.000001 1126 Query 1 # use `test`; create table t2 (n int) engine=innodb master-bin.000001 1126 Query 1 # use `test`; create table t2 (n int) engine=innodb
do release_lock("lock1"); do release_lock("lock1");
drop table t0,t2; drop table t0,t2;
reset master;
create table t1 (a int) engine=innodb;
create table t2 (a int) engine=myisam;
select get_lock("a",10);
get_lock("a",10)
1
begin;
insert into t1 values(8);
insert into t2 select * from t1;
select get_lock("a",10);
get_lock("a",10)
1
select
(@a:=load_file("MYSQL_TEST_DIR/var/tmp/mix_innodb_myisam_binlog.output"))
is not null;
(@a:=load_file("MYSQL_TEST_DIR/var/tmp/mix_innodb_myisam_binlog.output"))
is not null
1
select
@a like "%#%error_code=0%ROLLBACK;%ROLLBACK /* added by mysqlbinlog */;%",
@a not like "%#%error_code=%error_code=%";
@a like "%#%error_code=0%ROLLBACK;%ROLLBACK /* added by mysqlbinlog */;%" @a not like "%#%error_code=%error_code=%"
1 1
drop table t1, t2;
...@@ -3,3 +3,21 @@ ...@@ -3,3 +3,21 @@
-- source include/have_binlog_format_row.inc -- source include/have_binlog_format_row.inc
-- source extra/binlog_tests/mix_innodb_myisam_binlog.test -- source extra/binlog_tests/mix_innodb_myisam_binlog.test
# This piece below cannot be put into
# extra/binlog_tests/mix_innodb_myisam_binlog.test
# because the argument of --start-position differs between statement-
# and row-based (and "eval --exec" doesn't work).
# we check that the error code of the "ROLLBACK" event is 0 and not
# ER_SERVER_SHUTDOWN (i.e. disconnection just rolls back transaction
# and does not make slave to stop)
--exec $MYSQL_BINLOG --start-position=516 $MYSQL_TEST_DIR/var/log/master-bin.000001 > var/tmp/mix_innodb_myisam_binlog.output
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
eval select
(@a:=load_file("$MYSQL_TEST_DIR/var/tmp/mix_innodb_myisam_binlog.output"))
is not null;
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
eval select
@a like "%#%error_code=0%ROLLBACK;%ROLLBACK /* added by mysqlbinlog */;%",
@a not like "%#%error_code=%error_code=%";
drop table t1, t2;
...@@ -3,3 +3,21 @@ ...@@ -3,3 +3,21 @@
-- source include/have_binlog_format_statement.inc -- source include/have_binlog_format_statement.inc
-- source extra/binlog_tests/mix_innodb_myisam_binlog.test -- source extra/binlog_tests/mix_innodb_myisam_binlog.test
# This piece below cannot be put into
# extra/binlog_tests/mix_innodb_myisam_binlog.test
# because the argument of --start-position differs between statement-
# and row-based (and "eval --exec" doesn't work).
# we check that the error code of the "ROLLBACK" event is 0 and not
# ER_SERVER_SHUTDOWN (i.e. disconnection just rolls back transaction
# and does not make slave to stop)
--exec $MYSQL_BINLOG --start-position=551 $MYSQL_TEST_DIR/var/log/master-bin.000001 > var/tmp/mix_innodb_myisam_binlog.output
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
eval select
(@a:=load_file("$MYSQL_TEST_DIR/var/tmp/mix_innodb_myisam_binlog.output"))
is not null;
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
eval select
@a like "%#%error_code=0%ROLLBACK;%ROLLBACK /* added by mysqlbinlog */;%",
@a not like "%#%error_code=%error_code=%";
drop table t1, t2;
...@@ -5228,8 +5228,8 @@ Disable with --skip-innodb-doublewrite.", (gptr*) &innobase_use_doublewrite, ...@@ -5228,8 +5228,8 @@ Disable with --skip-innodb-doublewrite.", (gptr*) &innobase_use_doublewrite,
*/ */
{"log-bin-trust-function-creators", OPT_LOG_BIN_TRUST_FUNCTION_CREATORS, {"log-bin-trust-function-creators", OPT_LOG_BIN_TRUST_FUNCTION_CREATORS,
"If equal to 0 (the default), then when --log-bin is used, creation of " "If equal to 0 (the default), then when --log-bin is used, creation of "
"a function (a trigger) is allowed only to users having the SUPER privilege " "a stored function (or trigger) is allowed only to users having the SUPER privilege "
"and only if this function (trigger) may not break binary logging." "and only if this stored function (trigger) may not break binary logging."
#ifdef HAVE_ROW_BASED_REPLICATION #ifdef HAVE_ROW_BASED_REPLICATION
" If using --binlog-format=row, the security issues do not exist and the " " If using --binlog-format=row, the security issues do not exist and the "
"binary logging cannot break so this option is automatically set to 1." "binary logging cannot break so this option is automatically set to 1."
......
...@@ -749,12 +749,6 @@ int cmp_splocal_locations(Item_splocal * const *a, Item_splocal * const *b) ...@@ -749,12 +749,6 @@ int cmp_splocal_locations(Item_splocal * const *a, Item_splocal * const *b)
written into binary log. Instead we catch function calls the statement written into binary log. Instead we catch function calls the statement
makes and write it into binary log separately (see #3). makes and write it into binary log separately (see #3).
We actually can easily write SELECT statements into the binary log in the
right order (we don't have issues with const tables being unlocked early
because SELECTs that use FUNCTIONs unlock all tables at once) We don't do
it because replication slave thread currently can't execute SELECT
statements. Fixing this is on the TODO.
2. PROCEDURE calls 2. PROCEDURE calls
CALL statements are not written into binary log. Instead CALL statements are not written into binary log. Instead
...@@ -775,7 +769,7 @@ int cmp_splocal_locations(Item_splocal * const *a, Item_splocal * const *b) ...@@ -775,7 +769,7 @@ int cmp_splocal_locations(Item_splocal * const *a, Item_splocal * const *b)
function execution (grep for start_union_events and stop_union_events) function execution (grep for start_union_events and stop_union_events)
If the answers are No and Yes, we write the function call into the binary If the answers are No and Yes, we write the function call into the binary
log as "DO spfunc(<param1value>, <param2value>, ...)" log as "SELECT spfunc(<param1value>, <param2value>, ...)"
4. Miscellaneous issues. 4. Miscellaneous issues.
...@@ -1327,7 +1321,7 @@ sp_head::execute_function(THD *thd, Item **argp, uint argcount, ...@@ -1327,7 +1321,7 @@ sp_head::execute_function(THD *thd, Item **argp, uint argcount,
char buf[256]; char buf[256];
String bufstr(buf, sizeof(buf), &my_charset_bin); String bufstr(buf, sizeof(buf), &my_charset_bin);
bufstr.length(0); bufstr.length(0);
bufstr.append(STRING_WITH_LEN("DO ")); bufstr.append(STRING_WITH_LEN("SELECT "));
append_identifier(thd, &bufstr, m_name.str, m_name.length); append_identifier(thd, &bufstr, m_name.str, m_name.length);
bufstr.append('('); bufstr.append('(');
for (uint i=0; i < argcount; i++) for (uint i=0; i < argcount; i++)
......
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