List:Commits« Previous MessageNext Message »
From:guilhem Date:June 20 2006 8:40am
Subject:bk commit into 5.1 tree (guilhem:1.2223) BUG#20522
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.2223 06/06/20 10:40:36 guilhem@stripped +4 -0
  Fix for BUG#20522 "RBR: CREATE TEMPORARY TABLE SELECT writes to binlog
  though unneeded". It's indeed unneeded, as slave is only interested in
  permanent tables, and permanent tables don't depend on temporary tables
  when in row-based binlogging mode. And other CREATE TEMPORARY TABLE
  (referring no table or with LIKE) already don't write the CREATE to
  binlog in row-based mode. 

  sql/sql_insert.cc
    1.205 06/06/20 10:40:31 guilhem@stripped +2 -1
    The function (hook) which writes CREATE TABLE to binlog when in row-based
    binlogging mode, for CREATE TABLE SELECT, now does nothing if the table
    is temporary (as in row-based mode, temp tables are not replicated).
    This is consistent with CREATE TEMPORARY TABLE LIKE and
    CREATE TEMPORARY TABLE, which don't write any CREATE to binlog in row-based
    mode.

  sql/sql_class.h
    1.299 06/06/20 10:40:31 guilhem@stripped +2 -1
    a method to access select_create::create_info from outside of select_create
    ("read-only" access). Making get_thd() "read-only" too.

  mysql-test/t/rpl_row_create_table.test
    1.5 06/06/20 10:40:31 guilhem@stripped +1 -0
    testing if a CREATE TEMPORARY TABLE SELECT goes to binlog (it should not)
    when in row-based binlogging mode. A few lines after, there is a SHOW
    BINLOG EVENTS; before the bugfix it showed the CREATE TEMPORARY TABLE.

  mysql-test/r/rpl_row_create_table.result
    1.5 06/06/20 10:40:31 guilhem@stripped +1 -0
    result update (note that no lines appear in SHOW BINLOG EVENTS further below, which is how we
    see the bug is fixed)

# 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-WL3146-handler

--- 1.298/sql/sql_class.h	2006-06-18 12:20:28 +02:00
+++ 1.299/sql/sql_class.h	2006-06-20 10:40:31 +02:00
@@ -1610,7 +1610,8 @@
   virtual bool can_rollback_data() { return 1; }
 
   // Needed for access from local class MY_HOOKS in prepare(), since thd is proteted.
-  THD *get_thd(void) { return thd; }
+  const THD *get_thd(void) { return thd; }
+  const HA_CREATE_INFO *get_create_info() { return create_info; };
 };
 
 #include <myisam.h>

--- 1.204/sql/sql_insert.cc	2006-06-18 12:20:28 +02:00
+++ 1.205/sql/sql_insert.cc	2006-06-20 10:40:31 +02:00
@@ -2714,7 +2714,8 @@
   MY_HOOKS(select_create *x) : ptr(x) { }
   virtual void do_prelock(TABLE **tables, uint count)
   {
-    if (ptr->get_thd()->current_stmt_binlog_row_based)
+    if (ptr->get_thd()->current_stmt_binlog_row_based  &&
+        !(ptr->get_create_info()->options & HA_LEX_CREATE_TMP_TABLE))
       ptr->binlog_show_create_table(tables, count);
   }
 

--- 1.4/mysql-test/r/rpl_row_create_table.result	2006-03-07 09:59:57 +01:00
+++ 1.5/mysql-test/r/rpl_row_create_table.result	2006-06-20 10:40:31 +02:00
@@ -178,6 +178,7 @@
 CREATE TABLE t9 LIKE tt4;
 CREATE TEMPORARY TABLE tt5 LIKE t4;
 CREATE TEMPORARY TABLE tt6 LIKE tt4;
+CREATE TEMPORARY TABLE tt7 SELECT 1;
 **** On Master ****
 SHOW CREATE TABLE t8;
 Table	t8

--- 1.4/mysql-test/t/rpl_row_create_table.test	2006-03-18 17:15:47 +01:00
+++ 1.5/mysql-test/t/rpl_row_create_table.test	2006-06-20 10:40:31 +02:00
@@ -97,6 +97,7 @@
 CREATE TABLE t9 LIKE tt4;
 CREATE TEMPORARY TABLE tt5 LIKE t4;
 CREATE TEMPORARY TABLE tt6 LIKE tt4;
+CREATE TEMPORARY TABLE tt7 SELECT 1;
 --echo **** On Master ****
 --query_vertical SHOW CREATE TABLE t8
 --query_vertical SHOW CREATE TABLE t9
Thread
bk commit into 5.1 tree (guilhem:1.2223) BUG#20522guilhem20 Jun