From: Date: February 26 2007 10:43am Subject: bk commit into 5.1 tree (mats:1.2459) List-Archive: http://lists.mysql.com/commits/20554 Message-Id: <20070226094340.8A9598F2D@romeo> 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);