List:Commits« Previous MessageNext Message »
From:guilhem Date:February 18 2006 11:38pm
Subject:bk commit into 5.1 tree (guilhem:1.2140) BUG#17265
View as plain text  
Below is the list of changes that have just been committed into a local
5.1 repository of guilhem. When guilhem does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet
  1.2140 06/02/18 23:37:56 guilhem@stripped +7 -0
  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)

  sql/sp_head.cc
    1.204 06/02/18 23:37:51 guilhem@stripped +2 -8
    fix after merge

  sql/mysqld.cc
    1.537 06/02/18 23:37:51 guilhem@stripped +2 -2
    fix after merge

  mysql-test/t/binlog_stm_mix_innodb_myisam.test
    1.2 06/02/18 23:37:51 guilhem@stripped +18 -0
    merge form 5.0

  mysql-test/t/binlog_row_mix_innodb_myisam.test
    1.2 06/02/18 23:37:51 guilhem@stripped +18 -0
    merge from 5.0

  mysql-test/r/rpl_row_UUID.result
    1.3 06/02/18 23:37:51 guilhem@stripped +1 -1
    result update (somebody had forgotten to run row-based tests, the solution is to use
"make test" :)

  mysql-test/r/binlog_row_mix_innodb_myisam.result
    1.4 06/02/18 23:37:51 guilhem@stripped +24 -0
    result update

  mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test
    1.25 06/02/18 23:37:51 guilhem@stripped +0 -14
    compared with 5.0, this part has to move to the wrappers as the arg of
--start-position depends on row-based or statement-based replication

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	guilhem
# Host:	gbichot3.local
# Root:	/home/mysql_src/mysql-5.1-new

--- 1.536/sql/mysqld.cc	2006-02-18 19:07:28 +01:00
+++ 1.537/sql/mysqld.cc	2006-02-18 23:37:51 +01:00
@@ -5228,8 +5228,8 @@
   */
   {"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 "
-   "a function (a trigger) is allowed only to users having the SUPER privilege "
-   "and only if this function (trigger) may not break binary logging."
+   "a stored function (or trigger) is allowed only to users having the SUPER privilege "
+   "and only if this stored function (trigger) may not break binary logging."
 #ifdef HAVE_ROW_BASED_REPLICATION
    " 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."

--- 1.24/mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test	2006-02-18 21:10:38
+01:00
+++ 1.25/mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test	2006-02-18 23:37:51
+01:00
@@ -270,17 +270,3 @@
 
 connection con4;
 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;

--- 1.3/mysql-test/r/binlog_row_mix_innodb_myisam.result	2006-02-15 17:19:36 +01:00
+++ 1.4/mysql-test/r/binlog_row_mix_innodb_myisam.result	2006-02-18 23:37:51 +01:00
@@ -281,3 +281,27 @@
 master-bin.000001	1126	Query	1	#	use `test`; create table t2 (n int) engine=innodb
 do release_lock("lock1");
 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;

--- 1.2/mysql-test/r/rpl_row_UUID.result	2006-02-10 10:18:37 +01:00
+++ 1.3/mysql-test/r/rpl_row_UUID.result	2006-02-18 23:37:51 +01:00
@@ -32,7 +32,7 @@
   `a` int(11) NOT NULL default '0',
   `blob_column` longblob,
   `vchar_column` varchar(100) default NULL,
-  PRIMARY KEY  (`a`)
+  PRIMARY KEY (`a`)
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
 DROP PROCEDURE test.p1;
 DROP FUNCTION test.fn1;

--- 1.1/mysql-test/t/binlog_row_mix_innodb_myisam.test	2005-12-22 06:34:58 +01:00
+++ 1.2/mysql-test/t/binlog_row_mix_innodb_myisam.test	2006-02-18 23:37:51 +01:00
@@ -3,3 +3,21 @@
 
 -- source include/have_binlog_format_row.inc
 -- 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;

--- 1.1/mysql-test/t/binlog_stm_mix_innodb_myisam.test	2005-12-22 06:34:59 +01:00
+++ 1.2/mysql-test/t/binlog_stm_mix_innodb_myisam.test	2006-02-18 23:37:51 +01:00
@@ -3,3 +3,21 @@
 
 -- source include/have_binlog_format_statement.inc
 -- 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;

--- 1.203/sql/sp_head.cc	2006-02-18 19:07:28 +01:00
+++ 1.204/sql/sp_head.cc	2006-02-18 23:37:51 +01:00
@@ -749,12 +749,6 @@
   written into binary log. Instead we catch function calls the statement
   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
 
   CALL statements are not written into binary log. Instead
@@ -775,7 +769,7 @@
      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
-   log as "DO spfunc(<param1value>, <param2value>, ...)"
+   log as "SELECT spfunc(<param1value>, <param2value>, ...)"
   
   
   4. Miscellaneous issues.
@@ -1327,7 +1321,7 @@
       char buf[256];
       String bufstr(buf, sizeof(buf), &my_charset_bin);
       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);
       bufstr.append('(');
       for (uint i=0; i < argcount; i++)
Thread
bk commit into 5.1 tree (guilhem:1.2140) BUG#17265guilhem18 Feb