List:Commits« Previous MessageNext Message »
From:Mats Kindahl Date:February 26 2007 10:43am
Subject:bk commit into 5.1 tree (mats:1.2459)
View as plain text  
Below is the list of changes that have just been committed into a local
5.1 repository of mats. When mats 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@stripped, 2007-02-26 10:43:31+01:00, mats@romeo.(none) +4 -0
  Merge romeo.(none):/home/bkroot/mysql-5.1-new-rpl
  into  romeo.(none):/home/bk/b25091-mysql-5.1-new-rpl
  MERGE: 1.2390.25.1

  sql/handler.cc@stripped, 2007-02-26 10:43:21+01:00, mats@romeo.(none) +0 -0
    Auto merged
    MERGE: 1.290.1.1

  sql/log.cc@stripped, 2007-02-26 10:43:21+01:00, mats@romeo.(none) +0 -0
    Auto merged
    MERGE: 1.253.3.1

  sql/sp.cc@stripped, 2007-02-26 10:43:21+01:00, mats@romeo.(none) +0 -0
    Auto merged
    MERGE: 1.136.1.1

  sql/table.h@stripped, 2007-02-26 10:43:21+01:00, mats@romeo.(none) +0 -0
    Auto merged
    MERGE: 1.157.1.1

# 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:	mats
# Host:	romeo.(none)
# Root:	/home/bk/b25091-mysql-5.1-new-rpl/RESYNC

--- 1.295/sql/handler.cc	2007-02-26 10:43:40 +01:00
+++ 1.296/sql/handler.cc	2007-02-26 10:43:40 +01:00
@@ -3456,7 +3456,7 @@
     {
       int const check(table->s->tmp_table == NO_TMP_TABLE &&
                       binlog_filter->db_ok(table->s->db.str) &&
-                      strcmp("mysql", table->s->db.str) != 0);
+                      !table->no_replicate);
       table->s->cached_row_logging_check= check;
     }
 

--- 1.256/sql/log.cc	2007-02-26 10:43:40 +01:00
+++ 1.257/sql/log.cc	2007-02-26 10:43:40 +01:00
@@ -303,6 +303,7 @@
   {
     table->table->use_all_columns();
     table->table->locked_by_logger= TRUE;
+    table->table->no_replicate= TRUE;
   }
   /* restore thread settings */
   if (curr)

--- 1.161/sql/table.h	2007-02-26 10:43:40 +01:00
+++ 1.162/sql/table.h	2007-02-26 10:43:40 +01:00
@@ -408,6 +408,10 @@
   /*
     If true, the current table row is considered to have all columns set to 
     NULL, including columns declared as "not null" (see maybe_null).
+
+    TODO: Each of these flags take up 8 bits. They can just as easily
+    be put into one single unsigned long and instead of taking up 18
+    bytes, it would take up 4.
   */
   my_bool null_row;
   my_bool force_index;
@@ -415,6 +419,7 @@
   my_bool key_read, no_keyread;
   my_bool locked_by_flush;
   my_bool locked_by_logger;
+  my_bool no_replicate;
   my_bool locked_by_name;
   my_bool fulltext_searched;
   my_bool no_cache;

--- 1.138/sql/sp.cc	2007-02-26 10:43:40 +01:00
+++ 1.139/sql/sp.cc	2007-02-26 10:43:40 +01:00
@@ -498,6 +498,13 @@
   DBUG_PRINT("enter", ("type: %d name: %.*s",type,sp->m_name.length,
                        sp->m_name.str));
 
+  /*
+    This statement will be replicated as a statement, even when using
+    row-based replication.  The flag will be reset at the end of the
+    statement.
+  */
+  thd->clear_current_stmt_binlog_row_based();
+
   if (!(table= open_proc_table_for_update(thd)))
     ret= SP_OPEN_TABLE_FAILED;
   else
@@ -634,6 +641,13 @@
   DBUG_PRINT("enter", ("type: %d name: %.*s",
 		       type, name->m_name.length, name->m_name.str));
 
+  /*
+    This statement will be replicated as a statement, even when using
+    row-based replication.  The flag will be reset at the end of the
+    statement.
+  */
+  thd->clear_current_stmt_binlog_row_based();
+
   if (!(table= open_proc_table_for_update(thd)))
     DBUG_RETURN(SP_OPEN_TABLE_FAILED);
   if ((ret= db_find_routine_aux(thd, type, name, table)) == SP_OK)
@@ -665,6 +679,13 @@
   DBUG_ENTER("db_update_routine");
   DBUG_PRINT("enter", ("type: %d name: %.*s",
 		       type, name->m_name.length, name->m_name.str));
+
+  /*
+    This statement will be replicated as a statement, even when using
+    row-based replication.  The flag will be reset at the end of the
+    statement.
+  */
+  thd->clear_current_stmt_binlog_row_based();
 
   if (!(table= open_proc_table_for_update(thd)))
     DBUG_RETURN(SP_OPEN_TABLE_FAILED);
Thread
bk commit into 5.1 tree (mats:1.2459)Mats Kindahl26 Feb