MySQL Lists are EOL. Please join:

List:Commits« Previous MessageNext Message »
From:Mats Kindahl Date:February 12 2007 3:46pm
Subject:bk commit into 5.1 tree (mats:1.2308) BUG#22583
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-12 16:46:42+01:00, mats@romeo.(none) +38 -0
  BUG#22583 (RBR between MyISAM and non-MyISAM tables containing BIT field
  does not work): Changing packed row format to only include null bits
  for those columns that are present in the row as well as writing BIT
  columns in a storage engine-independent format.
  
  The change in row format is incompatible with the previous format and a
  slave will not be able to read the new events.

  mysql-test/extra/rpl_tests/rpl_deadlock.test@stripped, 2007-02-12 16:46:35+01:00, mats@romeo.(none) +2 -2
    Position change since Format_description_log_event is longer.

  mysql-test/extra/rpl_tests/rpl_log.test@stripped, 2007-02-12 16:46:35+01:00, mats@romeo.(none) +3 -3
    Position change since Format_description_log_event is longer.

  mysql-test/extra/rpl_tests/rpl_row_charset.test@stripped, 2007-02-12 16:46:35+01:00, mats@romeo.(none) +1 -1
    Position change since Format_description_log_event is longer.

  mysql-test/r/rpl_000015.result@stripped, 2007-02-12 16:46:35+01:00, mats@romeo.(none) +2 -2
    Result change.

  mysql-test/r/rpl_change_master.result@stripped, 2007-02-12 16:46:35+01:00, mats@romeo.(none) +2 -2
    Result change.

  mysql-test/r/rpl_deadlock_innodb.result@stripped, 2007-02-12 16:46:35+01:00, mats@romeo.(none) +2 -2
    Result change.

  mysql-test/r/rpl_flushlog_loop.result@stripped, 2007-02-12 16:46:35+01:00, mats@romeo.(none) +2 -2
    Result change.

  mysql-test/r/rpl_log_pos.result@stripped, 2007-02-12 16:46:35+01:00, mats@romeo.(none) +4 -4
    Result change.

  mysql-test/r/rpl_row_basic_11bugs.result@stripped, 2007-02-12 16:46:35+01:00, mats@romeo.(none) +107 -8
    Result change.

  mysql-test/r/rpl_row_charset.result@stripped, 2007-02-12 16:46:35+01:00, mats@romeo.(none) +1 -1
    Result change.

  mysql-test/r/rpl_row_create_table.result@stripped, 2007-02-12 16:46:35+01:00, mats@romeo.(none) +16 -16
    Result change.

  mysql-test/r/rpl_row_delayed_ins.result@stripped, 2007-02-12 16:46:35+01:00, mats@romeo.(none) +7 -7
    Result change.

  mysql-test/r/rpl_row_drop.result@stripped, 2007-02-12 16:46:35+01:00, mats@romeo.(none) +4 -4
    Result change.

  mysql-test/r/rpl_row_flsh_tbls.result@stripped, 2007-02-12 16:46:35+01:00, mats@romeo.(none) +2 -2
    Result change.

  mysql-test/r/rpl_row_inexist_tbl.result@stripped, 2007-02-12 16:46:36+01:00, mats@romeo.(none) +1 -1
    Result change.

  mysql-test/r/rpl_row_log.result@stripped, 2007-02-12 16:46:36+01:00, mats@romeo.(none) +8 -8
    Result change.

  mysql-test/r/rpl_row_log_innodb.result@stripped, 2007-02-12 16:46:36+01:00, mats@romeo.(none) +8 -8
    Result change.

  mysql-test/r/rpl_row_max_relay_size.result@stripped, 2007-02-12 16:46:36+01:00, mats@romeo.(none) +11 -11
    Result change.

  mysql-test/r/rpl_row_reset_slave.result@stripped, 2007-02-12 16:46:36+01:00, mats@romeo.(none) +3 -3
    Result change.

  mysql-test/r/rpl_row_until.result@stripped, 2007-02-12 16:46:36+01:00, mats@romeo.(none) +4 -4
    Result change.

  mysql-test/r/rpl_server_id1.result@stripped, 2007-02-12 16:46:36+01:00, mats@romeo.(none) +1 -1
    Result change.

  mysql-test/r/rpl_server_id2.result@stripped, 2007-02-12 16:46:36+01:00, mats@romeo.(none) +1 -1
    Result change.

  mysql-test/r/rpl_switch_stm_row_mixed.result@stripped, 2007-02-12 16:46:36+01:00, mats@romeo.(none) +2 -2
    Result change.

  mysql-test/r/rpl_truncate_2myisam.result@stripped, 2007-02-12 16:46:36+01:00, mats@romeo.(none) +33 -33
    Result change.

  mysql-test/r/rpl_truncate_3innodb.result@stripped, 2007-02-12 16:46:36+01:00, mats@romeo.(none) +45 -45
    Result change.

  mysql-test/t/rpl_loaddata_s.test@stripped, 2007-02-12 16:46:36+01:00, mats@romeo.(none) +1 -1
    Position change since Format_description_log_event is longer.

  mysql-test/t/rpl_log_pos.test@stripped, 2007-02-12 16:46:36+01:00, mats@romeo.(none) +1 -1
    Position change since Format_description_log_event is longer.

  mysql-test/t/rpl_row_basic_11bugs-master.opt@stripped, 2007-02-12 16:46:36+01:00, mats@romeo.(none) +2 -1
    Adding --innodb option

  mysql-test/t/rpl_row_basic_11bugs-slave.opt@stripped, 2007-02-12 16:46:37+01:00, mats@romeo.(none) +1 -0
    New BitKeeper file ``mysql-test/t/rpl_row_basic_11bugs-slave.opt''

  mysql-test/t/rpl_row_basic_11bugs-slave.opt@stripped, 2007-02-12 16:46:37+01:00, mats@romeo.(none) +0 -0

  mysql-test/t/rpl_row_basic_11bugs.test@stripped, 2007-02-12 16:46:36+01:00, mats@romeo.(none) +69 -1
    Testing explicitly for RBR MyISAM -> InnoDB and vice versa.
    Position change since Format_description_log_event is longer.

  mysql-test/t/rpl_row_create_table.test@stripped, 2007-02-12 16:46:36+01:00, mats@romeo.(none) +5 -5
    Position change since Format_description_log_event is longer.

  mysql-test/t/rpl_row_flsh_tbls.test@stripped, 2007-02-12 16:46:36+01:00, mats@romeo.(none) +1 -1
    Position change since Format_description_log_event is longer.

  mysql-test/t/rpl_row_mysqlbinlog.test@stripped, 2007-02-12 16:46:36+01:00, mats@romeo.(none) +2 -2
    Position change since Format_description_log_event is longer.

  mysql-test/t/rpl_switch_stm_row_mixed.test@stripped, 2007-02-12 16:46:36+01:00, mats@romeo.(none) +2 -2
    Position change since Format_description_log_event is longer.

  mysql-test/t/user_var-binlog.test@stripped, 2007-02-12 16:46:36+01:00, mats@romeo.(none) +1 -1
    Position change since Format_description_log_event is longer.

  sql/log_event.cc@stripped, 2007-02-12 16:46:37+01:00, mats@romeo.(none) +77 -60
    Changing packed row format to only include null bits for those columns
    that are present in the row as well as writing BIT columns in a storage
    engine-independent format.
    
    Changing unpack_row() to accomodate for the changes.

  sql/log_event.h@stripped, 2007-02-12 16:46:37+01:00, mats@romeo.(none) +16 -3
    Renumbering old row events and adding new codes.

  sql/sql_class.cc@stripped, 2007-02-12 16:46:37+01:00, mats@romeo.(none) +98 -15
    Changing packed row format to only include null bits for those columns
    that are present in the row as well as writing BIT columns in a storage
    engine-independent format.
    
    Changing THD::pack_row() to accomodate for the changes and adding
    documentation.

# 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/b22583-mysql-5.1-new-rpl

--- 1.246/sql/log_event.cc	2007-02-12 16:46:50 +01:00
+++ 1.247/sql/log_event.cc	2007-02-12 16:46:50 +01:00
@@ -1000,7 +1000,8 @@
     ev = new Execute_load_query_log_event(buf, event_len, description_event);
     break;
   default:
-    DBUG_PRINT("error",("Unknown evernt code: %d",(int) buf[EVENT_TYPE_OFFSET]));
+    DBUG_PRINT("error",("Unknown event code: %d",
+                        (int) buf[EVENT_TYPE_OFFSET]));
     ev= NULL;
     break;
   }
@@ -5449,19 +5450,19 @@
   
   SYNOPSIS
     unpack_row()
-    rli     Relay log info
-    table   Table to unpack into
-    colcnt  Number of columns to read from record
-    record  Record where the data should be unpacked
-    row     Packed row data
-    cols    Pointer to columns data to fill in
-    row_end Pointer to variable that will hold the value of the
-            one-after-end position for the row
+    rli      Relay log info
+    table    Table to unpack into
+    colcnt   Number of columns to read from record
+    record   Record where the data should be unpacked
+    row_data Packed row data
+    cols     Pointer to columns data to fill in
+    row_end  Pointer to variable that will hold the value of the
+             one-after-end position for the row
     master_reclength
-            Pointer to variable that will be set to the length of the
-            record on the master side
-    rw_set  Pointer to bitmap that holds either the read_set or the
-            write_set of the table
+             Pointer to variable that will be set to the length of the
+             record on the master side
+    rw_set   Pointer to bitmap that holds either the read_set or the
+             write_set of the table
 
   DESCRIPTION
 
@@ -5484,62 +5485,78 @@
 static int
 unpack_row(RELAY_LOG_INFO *rli,
            TABLE *table, uint const colcnt, byte *record,
-           char const *row, MY_BITMAP const *cols,
-           char const **row_end, ulong *master_reclength,
+           char const *const row_data, MY_BITMAP const *cols,
+           char const **const row_end, ulong *const master_reclength,
            MY_BITMAP* const rw_set, Log_event_type const event_type)
 {
-  DBUG_ASSERT(record && row);
+  DBUG_ENTER("unpack_row");
+  DBUG_ASSERT(record && row_data);
   my_ptrdiff_t const offset= record - (byte*) table->record[0];
-  my_size_t master_null_bytes= table->s->null_bytes;
+  my_size_t const master_null_byte_count= (bitmap_bits_set(cols) + 7) / 8;
+  int error= 0;
 
-  if (colcnt != table->s->fields)
-  {
-    Field **fptr= &table->field[colcnt-1];
-    do
-      master_null_bytes= (*fptr)->last_null_byte();
-    while (master_null_bytes == Field::LAST_NULL_BYTE_UNDEF &&
-           fptr-- > table->field);
+  char const *null_ptr= row_data;
+  char const *pack_ptr= row_data + master_null_byte_count;
 
-    /*
-      If master_null_bytes is LAST_NULL_BYTE_UNDEF (0) at this time,
-      there were no nullable fields nor BIT fields at all in the
-      columns that are common to the master and the slave. In that
-      case, there is only one null byte holding the X bit.
+  bitmap_clear_all(rw_set);
 
-      OBSERVE! There might still be nullable columns following the
-      common columns, so table->s->null_bytes might be greater than 1.
-     */
-    if (master_null_bytes == Field::LAST_NULL_BYTE_UNDEF)
-      master_null_bytes= 1;
-  }
-
-  DBUG_ASSERT(master_null_bytes <= table->s->null_bytes);
-  memcpy(record, row, master_null_bytes);            // [1]
-  int error= 0;
-
-  bitmap_set_all(rw_set);
+  memcpy(record, table->s->default_values, table->s->null_bytes);
 
   Field **const begin_ptr = table->field;
   Field **field_ptr;
-  char const *ptr= row + master_null_bytes;
   Field **const end_ptr= begin_ptr + colcnt;
+
+  DBUG_ASSERT(null_ptr < row_data + master_null_byte_count);
+
+  // Mask to mask out the correct bit among the null bits
+  unsigned int null_mask= 1U;
+  // The "current" null bits
+  unsigned int null_bits= *null_ptr++;
   for (field_ptr= begin_ptr ; field_ptr < end_ptr ; ++field_ptr)
   {
     Field *const f= *field_ptr;
 
     if (bitmap_is_set(cols, field_ptr -  begin_ptr))
     {
-      f->move_field_offset(offset);
-      ptr= f->unpack(f->ptr, ptr);
-      f->move_field_offset(-offset);
+      if ((null_mask & 0xFF) == 0)
+      {
+        DBUG_ASSERT(null_ptr < row_data + master_null_byte_count);
+        null_mask= 1U;
+        null_bits= *null_ptr++;
+      }
+
+      DBUG_ASSERT(null_mask & 0xFF); // One of the 8 LSB should be set
+
+
       /* Field...::unpack() cannot return 0 */
-      DBUG_ASSERT(ptr != NULL);
+      DBUG_ASSERT(pack_ptr != NULL);
+
+      if ((null_bits & null_mask) && f->maybe_null())
+        f->set_null(offset);
+      else
+      {
+        f->set_notnull(offset);
+
+        /*
+          We only unpack the field if it was non-null
+        */
+        f->move_field_offset(offset);
+        pack_ptr= f->unpack(f->ptr, pack_ptr);
+        f->move_field_offset(-offset);
+      }
+
+      bitmap_set_bit(rw_set, field_ptr - begin_ptr);
+      null_mask <<= 1;
     }
-    else
-      bitmap_clear_bit(rw_set, field_ptr - begin_ptr);
   }
 
-  *row_end = ptr;
+  /*
+    We should now have read all the null bytes, otherwise something is
+    really wrong.
+   */
+  DBUG_ASSERT(null_ptr == row_data + master_null_byte_count);
+
+  *row_end = pack_ptr;
   if (master_reclength)
   {
     if (*field_ptr)
@@ -5563,10 +5580,6 @@
   {
     uint32 const mask= NOT_NULL_FLAG | NO_DEFAULT_VALUE_FLAG;
 
-    DBUG_PRINT("debug", ("flags = 0x%x, mask = 0x%x, flags & mask = 0x%x",
-                         (*field_ptr)->flags, mask,
-                         (*field_ptr)->flags & mask));
-
     if (event_type == WRITE_ROWS_EVENT &&
         ((*field_ptr)->flags & mask) == mask)
     {
@@ -5581,7 +5594,7 @@
       (*field_ptr)->set_default();
   }
 
-  return error;
+  DBUG_RETURN(error);
 }
 
 int Rows_log_event::exec_event(st_relay_log_info *rli)
@@ -6740,6 +6753,8 @@
 
   DBUG_ASSERT(table->in_use != NULL);
 
+  DBUG_DUMP("record[0]", table->record[0], table->s->reclength);
+
   if ((table->file->ha_table_flags() & HA_PRIMARY_KEY_REQUIRED_FOR_POSITION) &&
       table->s->primary_key < MAX_KEY)
   {
@@ -6842,16 +6857,18 @@
     /* Continue until we find the right record or have made a full loop */
     do
     {
+      error= table->file->rnd_next(table->record[1]);
+
       /*
-        We need to set the null bytes to ensure that the filler bit
-        are all set when returning.  There are storage engines that
-        just set the necessary bits on the bytes and don't set the
-        filler bits correctly.
+        Patching the returned record since some storage engines do
+        not set the filler bits correctly.
       */
       my_ptrdiff_t const pos=
         table->s->null_bytes > 0 ? table->s->null_bytes - 1 : 0;
-      table->record[1][pos]= 0xFF;
-      error= table->file->rnd_next(table->record[1]);
+      table->record[1][pos]|= 256U - (1U << table->s->last_null_bit_pos);
+
+      DBUG_DUMP("record[0]", table->record[0], table->s->reclength);
+      DBUG_DUMP("record[1]", table->record[1], table->s->reclength);
 
       switch (error)
       {

--- 1.136/sql/log_event.h	2007-02-12 16:46:50 +01:00
+++ 1.137/sql/log_event.h	2007-02-12 16:46:50 +01:00
@@ -442,10 +442,23 @@
   XID_EVENT= 16,
   BEGIN_LOAD_QUERY_EVENT= 17,
   EXECUTE_LOAD_QUERY_EVENT= 18,
+
   TABLE_MAP_EVENT = 19,
-  WRITE_ROWS_EVENT = 20,
-  UPDATE_ROWS_EVENT = 21,
-  DELETE_ROWS_EVENT = 22,
+
+  /*
+    These event numbers were used for 5.1.0 to 5.1.15 and are
+    therefore obsolete.
+   */
+  PRE_GA_WRITE_ROWS_EVENT = 20,
+  PRE_GA_UPDATE_ROWS_EVENT = 21,
+  PRE_GA_DELETE_ROWS_EVENT = 22,
+
+  /*
+    These event numbers are used from 5.1.16 and forward
+   */
+  WRITE_ROWS_EVENT = 23,
+  UPDATE_ROWS_EVENT = 24,
+  DELETE_ROWS_EVENT = 25,
 
   /*
     Add new events here - right above this comment!

--- 1.293/sql/sql_class.cc	2007-02-12 16:46:50 +01:00
+++ 1.294/sql/sql_class.cc	2007-02-12 16:46:50 +01:00
@@ -2527,30 +2527,113 @@
 }
 
 
-my_size_t THD::pack_row(TABLE *table, MY_BITMAP const* cols, byte *row_data, 
-                        const byte *record) const
+/*
+  Pack a record of data for a table into a format suitable for
+  transfer via the binary log.
+
+  SYNOPSIS
+    THD::pack_row()
+    table     Table describing the format of the record
+    cols      Bitmap with a set bit for each column that should be
+              stored in the row
+    row_data  Pointer to memory where row will be written
+    record    Pointer to record that should be packed. It is assumed
+              that the pointer refers to either record[0] or
+              record[1], but no such check is made since the code does
+              not rely on that.
+
+  DESCRIPTION
+
+    The format for a row in transfer with N fields is the following:
+
+    ceil(N/8) null bytes:
+        One null bit for every column *regardless of whether it can be
+        null or not*. This simplifies the decoding. Observe that the
+        number of null bits is equal to the number of set bits in the
+        'cols' bitmap. The number of null bytes is the smallest number
+        of bytes necessary to store the null bits.
+
+        Padding bits are 1.
+
+    N packets:
+        Each field is stored in packed format.
+
+
+  RETURN VALUE
+
+    The number of bytes written at 'row_data'.
+ */
+my_size_t
+THD::pack_row(TABLE *table, MY_BITMAP const* cols,
+              byte *const row_data, const byte *record) const
 {
   Field **p_field= table->field, *field;
-  int n_null_bytes= table->s->null_bytes;
-  byte *ptr;
-  uint i;
+  int const null_byte_count= (bitmap_bits_set(cols) + 7) / 8;
+  byte *pack_ptr = row_data + null_byte_count;
+  byte *null_ptr = row_data;
   my_ptrdiff_t const rec_offset= record - table->record[0];
   my_ptrdiff_t const def_offset= table->s->default_values - table->record[0];
-  memcpy(row_data, record, n_null_bytes);
-  ptr= row_data+n_null_bytes;
 
-  for (i= 0 ; (field= *p_field) ; i++, p_field++)
+  /*
+    We write the null bits and the packed records using one pass
+    through all the fields. The null bytes are written little-endian,
+    i.e., the first fields are in the first byte.
+   */
+  unsigned int null_bits= (1U << 8) - 1;
+  // Mask to mask out the correct but among the null bits
+  unsigned int null_mask= 1U;
+  for ( ; (field= *p_field) ; p_field++)
   {
-    if (bitmap_is_set(cols,i))
+    DBUG_PRINT("debug", ("null_mask=%d; null_ptr=%p; row_data=%p; null_byte_count=%d",
+                         null_mask, null_ptr, row_data, null_byte_count));
+    if (bitmap_is_set(cols, p_field - table->field))
     {
-      my_ptrdiff_t const offset=
-        field->is_null(rec_offset) ? def_offset : rec_offset;
-      field->move_field_offset(offset);
-      ptr= (byte*)field->pack((char *) ptr, field->ptr);
-      field->move_field_offset(-offset);
+      my_ptrdiff_t offset;
+      if (field->is_null(rec_offset))
+      {
+        offset= def_offset;
+        null_bits |= null_mask;
+      }
+      else
+      {
+        offset= rec_offset;
+        null_bits &= ~null_mask;
+
+        /*
+          We only store the data of the field if it is non-null
+         */
+        field->move_field_offset(offset);
+        pack_ptr= (byte*)field->pack((char *) pack_ptr, field->ptr);
+        field->move_field_offset(-offset);
+      }
+
+      null_mask <<= 1;
+      if ((null_mask & 0xFF) == 0)
+      {
+        DBUG_ASSERT(null_ptr < row_data + null_byte_count);
+        null_mask = 1U;
+        *null_ptr++ = null_bits;
+        null_bits= (1U << 8) - 1;
+      }
     }
   }
-  return (static_cast<my_size_t>(ptr - row_data));
+
+  /*
+    Write the last (partial) byte, if there is one
+  */
+  if ((null_mask & 0xFF) > 1)
+  {
+    DBUG_ASSERT(null_ptr < row_data + null_byte_count);
+    *null_ptr++ = null_bits;
+  }
+
+  /*
+    The null pointer should now point to the first byte of the
+    packed data. If it doesn't, something is very wrong.
+  */
+  DBUG_ASSERT(null_ptr == row_data + null_byte_count);
+
+  return static_cast<my_size_t>(pack_ptr - row_data);
 }
 
 

--- 1.18/mysql-test/r/rpl_change_master.result	2007-02-12 16:46:50 +01:00
+++ 1.19/mysql-test/r/rpl_change_master.result	2007-02-12 16:46:50 +01:00
@@ -13,11 +13,11 @@
 stop slave;
 show slave status;
 Slave_IO_State	Master_Host	Master_User	Master_Port	Connect_Retry	Master_Log_File	Read_Master_Log_Pos	Relay_Log_File	Relay_Log_Pos	Relay_Master_Log_File	Slave_IO_Running	Slave_SQL_Running	Replicate_Do_DB	Replicate_Ignore_DB	Replicate_Do_Table	Replicate_Ignore_Table	Replicate_Wild_Do_Table	Replicate_Wild_Ignore_Table	Last_Errno	Last_Error	Skip_Counter	Exec_Master_Log_Pos	Relay_Log_Space	Until_Condition	Until_Log_File	Until_Log_Pos	Master_SSL_Allowed	Master_SSL_CA_File	Master_SSL_CA_Path	Master_SSL_Cert	Master_SSL_Cipher	Master_SSL_Key	Seconds_Behind_Master
-#	127.0.0.1	root	MASTER_MYPORT	1	master-bin.000001	#	#	#	master-bin.000001	No	No							0		0	187	#	None		0	No						#
+#	127.0.0.1	root	MASTER_MYPORT	1	master-bin.000001	#	#	#	master-bin.000001	No	No							0		0	190	#	None		0	No						#
 change master to master_user='root';
 show slave status;
 Slave_IO_State	Master_Host	Master_User	Master_Port	Connect_Retry	Master_Log_File	Read_Master_Log_Pos	Relay_Log_File	Relay_Log_Pos	Relay_Master_Log_File	Slave_IO_Running	Slave_SQL_Running	Replicate_Do_DB	Replicate_Ignore_DB	Replicate_Do_Table	Replicate_Ignore_Table	Replicate_Wild_Do_Table	Replicate_Wild_Ignore_Table	Last_Errno	Last_Error	Skip_Counter	Exec_Master_Log_Pos	Relay_Log_Space	Until_Condition	Until_Log_File	Until_Log_Pos	Master_SSL_Allowed	Master_SSL_CA_File	Master_SSL_CA_Path	Master_SSL_Cert	Master_SSL_Cipher	Master_SSL_Key	Seconds_Behind_Master
-#	127.0.0.1	root	MASTER_MYPORT	1	master-bin.000001	#	#	#	master-bin.000001	No	No							0		0	187	#	None		0	No						#
+#	127.0.0.1	root	MASTER_MYPORT	1	master-bin.000001	#	#	#	master-bin.000001	No	No							0		0	190	#	None		0	No						#
 start slave;
 select * from t1;
 n

--- 1.11/mysql-test/r/rpl_deadlock_innodb.result	2007-02-12 16:46:50 +01:00
+++ 1.12/mysql-test/r/rpl_deadlock_innodb.result	2007-02-12 16:46:50 +01:00
@@ -78,7 +78,7 @@
 Master_SSL_Key	
 Seconds_Behind_Master	#
 stop slave;
-change master to master_log_pos=536;
+change master to master_log_pos=539;
 begin;
 select * from t2 for update;
 a
@@ -128,7 +128,7 @@
 Seconds_Behind_Master	#
 set global max_relay_log_size=0;
 stop slave;
-change master to master_log_pos=536;
+change master to master_log_pos=539;
 begin;
 select * from t2 for update;
 a

--- 1.11/mysql-test/r/rpl_server_id1.result	2007-02-12 16:46:50 +01:00
+++ 1.12/mysql-test/r/rpl_server_id1.result	2007-02-12 16:46:50 +01:00
@@ -10,7 +10,7 @@
 change master to master_port=SLAVE_PORT;
 show slave status;
 Slave_IO_State	Master_Host	Master_User	Master_Port	Connect_Retry	Master_Log_File	Read_Master_Log_Pos	Relay_Log_File	Relay_Log_Pos	Relay_Master_Log_File	Slave_IO_Running	Slave_SQL_Running	Replicate_Do_DB	Replicate_Ignore_DB	Replicate_Do_Table	Replicate_Ignore_Table	Replicate_Wild_Do_Table	Replicate_Wild_Ignore_Table	Last_Errno	Last_Error	Skip_Counter	Exec_Master_Log_Pos	Relay_Log_Space	Until_Condition	Until_Log_File	Until_Log_Pos	Master_SSL_Allowed	Master_SSL_CA_File	Master_SSL_CA_Path	Master_SSL_Cert	Master_SSL_Cipher	Master_SSL_Key	Seconds_Behind_Master
-	127.0.0.1	root	SLAVE_PORT	1		4	slave-relay-bin.000001	4		No	No				#		#	0		0	0	102	None		0	No						NULL
+	127.0.0.1	root	SLAVE_PORT	1		4	slave-relay-bin.000001	4		No	No				#		#	0		0	0	105	None		0	No						NULL
 start slave;
 insert into t1 values (1);
 show status like "slave_running";

--- 1.12/mysql-test/r/rpl_server_id2.result	2007-02-12 16:46:50 +01:00
+++ 1.13/mysql-test/r/rpl_server_id2.result	2007-02-12 16:46:50 +01:00
@@ -10,7 +10,7 @@
 change master to master_port=SLAVE_PORT;
 show slave status;
 Slave_IO_State	Master_Host	Master_User	Master_Port	Connect_Retry	Master_Log_File	Read_Master_Log_Pos	Relay_Log_File	Relay_Log_Pos	Relay_Master_Log_File	Slave_IO_Running	Slave_SQL_Running	Replicate_Do_DB	Replicate_Ignore_DB	Replicate_Do_Table	Replicate_Ignore_Table	Replicate_Wild_Do_Table	Replicate_Wild_Ignore_Table	Last_Errno	Last_Error	Skip_Counter	Exec_Master_Log_Pos	Relay_Log_Space	Until_Condition	Until_Log_File	Until_Log_Pos	Master_SSL_Allowed	Master_SSL_CA_File	Master_SSL_CA_Path	Master_SSL_Cert	Master_SSL_Cipher	Master_SSL_Key	Seconds_Behind_Master
-	127.0.0.1	root	SLAVE_PORT	1		4	slave-relay-bin.000001	4		No	No						#	0		0	0	102	None		0	No						NULL
+	127.0.0.1	root	SLAVE_PORT	1		4	slave-relay-bin.000001	4		No	No						#	0		0	0	105	None		0	No						NULL
 start slave;
 insert into t1 values (1);
 select * from t1;

--- 1.15/mysql-test/r/rpl_switch_stm_row_mixed.result	2007-02-12 16:46:50 +01:00
+++ 1.16/mysql-test/r/rpl_switch_stm_row_mixed.result	2007-02-12 16:46:50 +01:00
@@ -382,7 +382,7 @@
 LOCK TABLES t12 WRITE;
 INSERT INTO t12 VALUES(UUID());
 UNLOCK TABLES;
-show binlog events from 102;
+show binlog events from 105;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
 master-bin.000001	#	Query	1	#	drop database if exists mysqltest1
 master-bin.000001	#	Query	1	#	create database mysqltest1
@@ -692,7 +692,7 @@
 master-bin.000001	#	Query	1	#	use `mysqltest1`; CREATE TABLE t12 (data LONG)
 master-bin.000001	#	Table_map	1	#	table_id: # (mysqltest1.t12)
 master-bin.000001	#	Write_rows	1	#	table_id: # flags: STMT_END_F
-show binlog events from 102;
+show binlog events from 105;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
 master-bin.000001	#	Query	1	#	drop database if exists mysqltest1
 master-bin.000001	#	Query	1	#	create database mysqltest1

--- 1.13/mysql-test/extra/rpl_tests/rpl_deadlock.test	2007-02-12 16:46:50 +01:00
+++ 1.14/mysql-test/extra/rpl_tests/rpl_deadlock.test	2007-02-12 16:46:50 +01:00
@@ -73,7 +73,7 @@
 # 2) Test lock wait timeout
 
 stop slave;
-change master to master_log_pos=536; # the BEGIN log event
+change master to master_log_pos=539; # the BEGIN log event
 begin;
 select * from t2 for update; # hold lock
 start slave;
@@ -96,7 +96,7 @@
 
 # This is really copy-paste of 2) of above
 stop slave;
-change master to master_log_pos=536;
+change master to master_log_pos=539;
 begin;
 select * from t2 for update;
 start slave;

--- 1.16/mysql-test/t/rpl_loaddata_s.test	2007-02-12 16:46:50 +01:00
+++ 1.17/mysql-test/t/rpl_loaddata_s.test	2007-02-12 16:46:50 +01:00
@@ -22,7 +22,7 @@
 select count(*) from test.t1; # check that LOAD was replicated
 --replace_column 2 # 5 #
 --replace_regex /table_id: [0-9]+/table_id: #/
-show binlog events from 102; # should be nothing
+show binlog events from 105; # should be nothing
 
 # Cleanup
 connection master;

--- 1.12/mysql-test/t/rpl_switch_stm_row_mixed.test	2007-02-12 16:46:50 +01:00
+++ 1.13/mysql-test/t/rpl_switch_stm_row_mixed.test	2007-02-12 16:46:50 +01:00
@@ -498,7 +498,7 @@
 
 --replace_column 2 # 5 #
 --replace_regex /table_id: [0-9]+/table_id: #/
-show binlog events from 102;
+show binlog events from 105;
 sync_slave_with_master;
 
 # as we're using UUID we don't SELECT but use "diff" like in rpl_row_UUID
@@ -515,7 +515,7 @@
 connection master;
 --replace_column 2 # 5 #
 --replace_regex /table_id: [0-9]+/table_id: #/
-show binlog events from 102;
+show binlog events from 105;
 
 # Now test that mysqlbinlog works fine on a binlog generated by the
 # mixed mode

--- 1.7/mysql-test/t/user_var-binlog.test	2007-02-12 16:46:50 +01:00
+++ 1.8/mysql-test/t/user_var-binlog.test	2007-02-12 16:46:50 +01:00
@@ -15,7 +15,7 @@
 insert into t1 values (@var1),(@var2);
 --replace_column 2 # 5 #
 --replace_regex /table_id: [0-9]+/table_id: #/
-show binlog events from 102;
+show binlog events from 105;
 # more important than SHOW BINLOG EVENTS, mysqlbinlog (where we
 # absolutely need variables names to be quoted and strings to be
 # escaped).

--- 1.12/mysql-test/r/rpl_row_log_innodb.result	2007-02-12 16:46:50 +01:00
+++ 1.13/mysql-test/r/rpl_row_log_innodb.result	2007-02-12 16:46:50 +01:00
@@ -28,14 +28,14 @@
 master-bin.000001	#	Table_map	1	#	table_id: # (test.t1)
 master-bin.000001	#	Write_rows	1	#	table_id: # flags: STMT_END_F
 master-bin.000001	#	Xid	1	#	COMMIT /* XID */
-show binlog events from 102 limit 1;
+show binlog events from 105 limit 1;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
 master-bin.000001	#	Query	1	#	use `test`; create table t1(n int not null auto_increment primary key)ENGINE=InnoDB
-show binlog events from 102 limit 2;
+show binlog events from 105 limit 2;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
 master-bin.000001	#	Query	1	#	use `test`; create table t1(n int not null auto_increment primary key)ENGINE=InnoDB
 master-bin.000001	#	Table_map	1	#	table_id: # (test.t1)
-show binlog events from 102 limit 2,1;
+show binlog events from 105 limit 2,1;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
 master-bin.000001	#	Write_rows	1	#	table_id: # flags: STMT_END_F
 flush logs;
@@ -72,13 +72,13 @@
 master-bin.000002	#	Xid	1	#	COMMIT /* XID */
 show binary logs;
 Log_name	File_size
-master-bin.000001	1310
-master-bin.000002	400
+master-bin.000001	1313
+master-bin.000002	403
 start slave;
 show binary logs;
 Log_name	File_size
-slave-bin.000001	1408
-slave-bin.000002	301
+slave-bin.000001	1411
+slave-bin.000002	304
 show binlog events in 'slave-bin.000001' from 4;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
 slave-bin.000001	#	Format_desc	2	#	Server ver: VERSION, Binlog ver: 4
@@ -102,7 +102,7 @@
 slave-bin.000002	#	Xid	1	#	COMMIT /* XID */
 show slave status;
 Slave_IO_State	Master_Host	Master_User	Master_Port	Connect_Retry	Master_Log_File	Read_Master_Log_Pos	Relay_Log_File	Relay_Log_Pos	Relay_Master_Log_File	Slave_IO_Running	Slave_SQL_Running	Replicate_Do_DB	Replicate_Ignore_DB	Replicate_Do_Table	Replicate_Ignore_Table	Replicate_Wild_Do_Table	Replicate_Wild_Ignore_Table	Last_Errno	Last_Error	Skip_Counter	Exec_Master_Log_Pos	Relay_Log_Space	Until_Condition	Until_Log_File	Until_Log_Pos	Master_SSL_Allowed	Master_SSL_CA_File	Master_SSL_CA_Path	Master_SSL_Cert	Master_SSL_Cipher	Master_SSL_Key	Seconds_Behind_Master
-#	127.0.0.1	root	MASTER_PORT	1	master-bin.000002	400	#	#	master-bin.000002	Yes	Yes				#			0		0	400	#	None		0	No						#
+#	127.0.0.1	root	MASTER_PORT	1	master-bin.000002	403	#	#	master-bin.000002	Yes	Yes				#			0		0	403	#	None		0	No						#
 show binlog events in 'slave-bin.000005' from 4;
 ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Could not find target log
 DROP TABLE t1;

--- 1.2/mysql-test/t/rpl_row_mysqlbinlog.test	2007-02-12 16:46:50 +01:00
+++ 1.3/mysql-test/t/rpl_row_mysqlbinlog.test	2007-02-12 16:46:50 +01:00
@@ -167,7 +167,7 @@
 select "--- Test 2 position test --" as "";
 --enable_query_log
 --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
---exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --position=412 $MYSQLTEST_VARDIR/log/master-bin.000001
+--exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --position=415 $MYSQLTEST_VARDIR/log/master-bin.000001
 
 # These are tests for remote binlog.
 # They should return the same as previous test.
@@ -263,7 +263,7 @@
 select "--- Test 7 reading stdin w/position --" as "";
 --enable_query_log
 --replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
---exec $MYSQL_BINLOG --short-form --position=412 - < $MYSQLTEST_VARDIR/log/master-bin.000001
+--exec $MYSQL_BINLOG --short-form --position=415 - < $MYSQLTEST_VARDIR/log/master-bin.000001
 
 # Bug#16217 (mysql client did not know how not switch its internal charset)
 --disable_query_log

--- 1.4/mysql-test/extra/rpl_tests/rpl_row_charset.test	2007-02-12 16:46:50 +01:00
+++ 1.5/mysql-test/extra/rpl_tests/rpl_row_charset.test	2007-02-12 16:46:50 +01:00
@@ -115,7 +115,7 @@
 drop database mysqltest3;
 --replace_column 2 # 5 #
 --replace_regex /table_id: [0-9]+/table_id: #/
-show binlog events from 102;
+show binlog events from 105;
 sync_slave_with_master;
 
 # Check that we can change global.collation_server (since 5.0.3)

--- 1.5/mysql-test/r/rpl_row_charset.result	2007-02-12 16:46:50 +01:00
+++ 1.6/mysql-test/r/rpl_row_charset.result	2007-02-12 16:46:50 +01:00
@@ -109,7 +109,7 @@
 1	cp850_general_ci
 drop database mysqltest2;
 drop database mysqltest3;
-show binlog events from 102;
+show binlog events from 105;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
 master-bin.000001	#	Query	1	#	drop database if exists mysqltest2
 master-bin.000001	#	Query	1	#	drop database if exists mysqltest3

--- 1.7/mysql-test/r/rpl_row_create_table.result	2007-02-12 16:46:50 +01:00
+++ 1.8/mysql-test/r/rpl_row_create_table.result	2007-02-12 16:46:50 +01:00
@@ -8,27 +8,27 @@
 CREATE TABLE t2 (a INT, b INT) ENGINE=Merge;
 CREATE TABLE t3 (a INT, b INT) CHARSET=utf8;
 CREATE TABLE t4 (a INT, b INT) ENGINE=Merge CHARSET=utf8;
-SHOW BINLOG EVENTS FROM 212;
+SHOW BINLOG EVENTS FROM 215;
 Log_name	#
-Pos	212
+Pos	215
 Event_type	Query
 Server_id	#
 End_log_pos	#
 Info	use `test`; CREATE TABLE t1 (a INT, b INT)
 Log_name	#
-Pos	305
+Pos	308
 Event_type	Query
 Server_id	#
 End_log_pos	#
 Info	use `test`; CREATE TABLE t2 (a INT, b INT) ENGINE=Merge
 Log_name	#
-Pos	411
+Pos	414
 Event_type	Query
 Server_id	#
 End_log_pos	#
 Info	use `test`; CREATE TABLE t3 (a INT, b INT) CHARSET=utf8
 Log_name	#
-Pos	517
+Pos	520
 Event_type	Query
 Server_id	#
 End_log_pos	#
@@ -127,7 +127,7 @@
 NULL	6	12
 CREATE TABLE t7 (UNIQUE(b)) SELECT a,b FROM tt3;
 ERROR 23000: Duplicate entry '2' for key 'b'
-SHOW BINLOG EVENTS FROM 1256;
+SHOW BINLOG EVENTS FROM 1097;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
 CREATE TABLE t7 (a INT, b INT UNIQUE);
 INSERT INTO t7 SELECT a,b FROM tt3;
@@ -137,11 +137,11 @@
 1	2
 2	4
 3	6
-SHOW BINLOG EVENTS FROM 1118;
+SHOW BINLOG EVENTS FROM 1097;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-master-bin.000001	1118	Query	1	1218	use `test`; CREATE TABLE t7 (a INT, b INT UNIQUE)
-master-bin.000001	1218	Table_map	1	1258	table_id: # (test.t7)
-master-bin.000001	1258	Write_rows	1	1314	table_id: # flags: STMT_END_F
+master-bin.000001	1097	Query	1	1197	use `test`; CREATE TABLE t7 (a INT, b INT UNIQUE)
+master-bin.000001	1197	Table_map	1	1237	table_id: # (test.t7)
+master-bin.000001	1237	Write_rows	1	1293	table_id: # flags: STMT_END_F
 SELECT * FROM t7 ORDER BY a,b;
 a	b
 1	2
@@ -154,10 +154,10 @@
 ROLLBACK;
 Warnings:
 Warning	1196	Some non-transactional changed tables couldn't be rolled back
-SHOW BINLOG EVENTS FROM 1314;
+SHOW BINLOG EVENTS FROM 1293;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-master-bin.000001	1314	Table_map	1	1354	table_id: # (test.t7)
-master-bin.000001	1354	Write_rows	1	1410	table_id: # flags: STMT_END_F
+master-bin.000001	1293	Table_map	1	1333	table_id: # (test.t7)
+master-bin.000001	1333	Write_rows	1	1389	table_id: # flags: STMT_END_F
 SELECT * FROM t7 ORDER BY a,b;
 a	b
 1	2
@@ -192,10 +192,10 @@
   `a` int(11) DEFAULT NULL,
   `b` int(11) DEFAULT NULL
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
-SHOW BINLOG EVENTS FROM 1410;
+SHOW BINLOG EVENTS FROM 1389;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-master-bin.000001	1410	Query	1	1496	use `test`; CREATE TABLE t8 LIKE t4
-master-bin.000001	1496	Query	1	1635	use `test`; CREATE TABLE `t9` (
+master-bin.000001	1389	Query	1	1475	use `test`; CREATE TABLE t8 LIKE t4
+master-bin.000001	1475	Query	1	1614	use `test`; CREATE TABLE `t9` (
   `a` int(11) DEFAULT NULL,
   `b` int(11) DEFAULT NULL
 )

--- 1.4/mysql-test/r/rpl_row_delayed_ins.result	2007-02-12 16:46:50 +01:00
+++ 1.5/mysql-test/r/rpl_row_delayed_ins.result	2007-02-12 16:46:50 +01:00
@@ -14,13 +14,13 @@
 3
 show binlog events;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-master-bin.000001	4	Format_desc	1	102	Server ver: VERSION, Binlog ver: 4
-master-bin.000001	102	Query	1	222	use `test`; create table t1(a int not null primary key) engine=myisam
-master-bin.000001	222	Table_map	1	261	table_id: # (test.t1)
-master-bin.000001	261	Write_rows	1	295	table_id: # flags: STMT_END_F
-master-bin.000001	295	Table_map	1	334	table_id: # (test.t1)
-master-bin.000001	334	Write_rows	1	373	table_id: # flags: STMT_END_F
-master-bin.000001	373	Query	1	448	use `test`; flush tables
+master-bin.000001	4	Format_desc	1	105	Server ver: VERSION, Binlog ver: 4
+master-bin.000001	105	Query	1	225	use `test`; create table t1(a int not null primary key) engine=myisam
+master-bin.000001	225	Table_map	1	264	table_id: # (test.t1)
+master-bin.000001	264	Write_rows	1	298	table_id: # flags: STMT_END_F
+master-bin.000001	298	Table_map	1	337	table_id: # (test.t1)
+master-bin.000001	337	Write_rows	1	376	table_id: # flags: STMT_END_F
+master-bin.000001	376	Query	1	451	use `test`; flush tables
 SELECT * FROM t1 ORDER BY a;
 a
 1

--- 1.3/mysql-test/r/rpl_row_drop.result	2007-02-12 16:46:50 +01:00
+++ 1.4/mysql-test/r/rpl_row_drop.result	2007-02-12 16:46:50 +01:00
@@ -43,10 +43,10 @@
 DROP TABLE t1,t2;
 SHOW BINLOG EVENTS;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-master-bin.000001	4	Format_desc	1	102	Server ver: VERSION, Binlog ver: 4
-master-bin.000001	102	Query	1	188	use `test`; CREATE TABLE t1 (a int)
-master-bin.000001	188	Query	1	274	use `test`; CREATE TABLE t2 (a int)
-master-bin.000001	274	Query	1	378	use `test`; DROP TABLE `t1` /* generated by server */
+master-bin.000001	4	Format_desc	1	105	Server ver: VERSION, Binlog ver: 4
+master-bin.000001	105	Query	1	191	use `test`; CREATE TABLE t1 (a int)
+master-bin.000001	191	Query	1	277	use `test`; CREATE TABLE t2 (a int)
+master-bin.000001	277	Query	1	381	use `test`; DROP TABLE `t1` /* generated by server */
 SHOW TABLES;
 Tables_in_test
 t2

--- 1.2/mysql-test/r/rpl_row_flsh_tbls.result	2007-02-12 16:46:50 +01:00
+++ 1.3/mysql-test/r/rpl_row_flsh_tbls.result	2007-02-12 16:46:50 +01:00
@@ -12,13 +12,13 @@
 insert into t4 select * from t3;
 rename table t1 to t5, t2 to t1;
 flush no_write_to_binlog tables;
-SHOW BINLOG EVENTS FROM 615 ;
+SHOW BINLOG EVENTS FROM 618 ;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
 master-bin.000001	#	Query	1	#	use `test`; rename table t1 to t5, t2 to t1
 select * from t3;
 a
 flush tables;
-SHOW BINLOG EVENTS FROM 615 ;
+SHOW BINLOG EVENTS FROM 618 ;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
 master-bin.000001	#	Query	1	#	use `test`; rename table t1 to t5, t2 to t1
 master-bin.000001	#	Query	1	#	use `test`; flush tables

--- 1.2/mysql-test/r/rpl_row_inexist_tbl.result	2007-02-12 16:46:50 +01:00
+++ 1.3/mysql-test/r/rpl_row_inexist_tbl.result	2007-02-12 16:46:50 +01:00
@@ -39,7 +39,7 @@
 Last_Errno	1146
 Last_Error	Error 'Table 'test.t1' doesn't exist' on opening table `test`.`t1`
 Skip_Counter	0
-Exec_Master_Log_Pos	519
+Exec_Master_Log_Pos	522
 Relay_Log_Space	#
 Until_Condition	None
 Until_Log_File	

--- 1.12/mysql-test/r/rpl_row_log.result	2007-02-12 16:46:50 +01:00
+++ 1.13/mysql-test/r/rpl_row_log.result	2007-02-12 16:46:50 +01:00
@@ -26,14 +26,14 @@
 master-bin.000001	#	Query	1	#	use `test`; create table t1 (word char(20) not null)ENGINE=MyISAM
 master-bin.000001	#	Table_map	1	#	table_id: # (test.t1)
 master-bin.000001	#	Write_rows	1	#	table_id: # flags: STMT_END_F
-show binlog events from 102 limit 1;
+show binlog events from 105 limit 1;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
 master-bin.000001	#	Query	1	#	use `test`; create table t1(n int not null auto_increment primary key)ENGINE=MyISAM
-show binlog events from 102 limit 2;
+show binlog events from 105 limit 2;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
 master-bin.000001	#	Query	1	#	use `test`; create table t1(n int not null auto_increment primary key)ENGINE=MyISAM
 master-bin.000001	#	Table_map	1	#	table_id: # (test.t1)
-show binlog events from 102 limit 2,1;
+show binlog events from 105 limit 2,1;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
 master-bin.000001	#	Write_rows	1	#	table_id: # flags: STMT_END_F
 flush logs;
@@ -67,13 +67,13 @@
 master-bin.000002	#	Write_rows	1	#	table_id: # flags: STMT_END_F
 show binary logs;
 Log_name	File_size
-master-bin.000001	1256
-master-bin.000002	373
+master-bin.000001	1259
+master-bin.000002	376
 start slave;
 show binary logs;
 Log_name	File_size
-slave-bin.000001	1354
-slave-bin.000002	274
+slave-bin.000001	1357
+slave-bin.000002	277
 show binlog events in 'slave-bin.000001' from 4;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
 slave-bin.000001	#	Format_desc	2	#	Server ver: VERSION, Binlog ver: 4
@@ -94,7 +94,7 @@
 slave-bin.000002	#	Write_rows	1	#	table_id: # flags: STMT_END_F
 show slave status;
 Slave_IO_State	Master_Host	Master_User	Master_Port	Connect_Retry	Master_Log_File	Read_Master_Log_Pos	Relay_Log_File	Relay_Log_Pos	Relay_Master_Log_File	Slave_IO_Running	Slave_SQL_Running	Replicate_Do_DB	Replicate_Ignore_DB	Replicate_Do_Table	Replicate_Ignore_Table	Replicate_Wild_Do_Table	Replicate_Wild_Ignore_Table	Last_Errno	Last_Error	Skip_Counter	Exec_Master_Log_Pos	Relay_Log_Space	Until_Condition	Until_Log_File	Until_Log_Pos	Master_SSL_Allowed	Master_SSL_CA_File	Master_SSL_CA_Path	Master_SSL_Cert	Master_SSL_Cipher	Master_SSL_Key	Seconds_Behind_Master
-#	127.0.0.1	root	MASTER_PORT	1	master-bin.000002	373	#	#	master-bin.000002	Yes	Yes				#			0		0	373	#	None		0	No						#
+#	127.0.0.1	root	MASTER_PORT	1	master-bin.000002	376	#	#	master-bin.000002	Yes	Yes				#			0		0	376	#	None		0	No						#
 show binlog events in 'slave-bin.000005' from 4;
 ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Could not find target log
 DROP TABLE t1;

--- 1.4/mysql-test/r/rpl_row_max_relay_size.result	2007-02-12 16:46:50 +01:00
+++ 1.5/mysql-test/r/rpl_row_max_relay_size.result	2007-02-12 16:46:50 +01:00
@@ -29,7 +29,7 @@
 Master_Port	MASTER_PORT
 Connect_Retry	1
 Master_Log_File	master-bin.000001
-Read_Master_Log_Pos	58664
+Read_Master_Log_Pos	58667
 Relay_Log_File	#
 Relay_Log_Pos	#
 Relay_Master_Log_File	master-bin.000001
@@ -44,7 +44,7 @@
 Last_Errno	0
 Last_Error	
 Skip_Counter	0
-Exec_Master_Log_Pos	58664
+Exec_Master_Log_Pos	58667
 Relay_Log_Space	#
 Until_Condition	None
 Until_Log_File	
@@ -72,7 +72,7 @@
 Master_Port	MASTER_PORT
 Connect_Retry	1
 Master_Log_File	master-bin.000001
-Read_Master_Log_Pos	58664
+Read_Master_Log_Pos	58667
 Relay_Log_File	#
 Relay_Log_Pos	#
 Relay_Master_Log_File	master-bin.000001
@@ -87,7 +87,7 @@
 Last_Errno	0
 Last_Error	
 Skip_Counter	0
-Exec_Master_Log_Pos	58664
+Exec_Master_Log_Pos	58667
 Relay_Log_Space	#
 Until_Condition	None
 Until_Log_File	
@@ -115,7 +115,7 @@
 Master_Port	MASTER_PORT
 Connect_Retry	1
 Master_Log_File	master-bin.000001
-Read_Master_Log_Pos	58664
+Read_Master_Log_Pos	58667
 Relay_Log_File	#
 Relay_Log_Pos	#
 Relay_Master_Log_File	master-bin.000001
@@ -130,7 +130,7 @@
 Last_Errno	0
 Last_Error	
 Skip_Counter	0
-Exec_Master_Log_Pos	58664
+Exec_Master_Log_Pos	58667
 Relay_Log_Space	#
 Until_Condition	None
 Until_Log_File	
@@ -196,7 +196,7 @@
 Master_Port	MASTER_PORT
 Connect_Retry	1
 Master_Log_File	master-bin.000001
-Read_Master_Log_Pos	58750
+Read_Master_Log_Pos	58753
 Relay_Log_File	#
 Relay_Log_Pos	#
 Relay_Master_Log_File	master-bin.000001
@@ -211,7 +211,7 @@
 Last_Errno	0
 Last_Error	
 Skip_Counter	0
-Exec_Master_Log_Pos	58750
+Exec_Master_Log_Pos	58753
 Relay_Log_Space	#
 Until_Condition	None
 Until_Log_File	
@@ -235,7 +235,7 @@
 Master_Port	MASTER_PORT
 Connect_Retry	1
 Master_Log_File	master-bin.000001
-Read_Master_Log_Pos	58826
+Read_Master_Log_Pos	58829
 Relay_Log_File	#
 Relay_Log_Pos	#
 Relay_Master_Log_File	master-bin.000001
@@ -250,7 +250,7 @@
 Last_Errno	0
 Last_Error	
 Skip_Counter	0
-Exec_Master_Log_Pos	58826
+Exec_Master_Log_Pos	58829
 Relay_Log_Space	#
 Until_Condition	None
 Until_Log_File	
@@ -265,7 +265,7 @@
 flush logs;
 show master status;
 File	master-bin.000002
-Position	102
+Position	105
 Binlog_Do_DB	<Binlog_Ignore_DB>
 Binlog_Ignore_DB	
 #

--- 1.1/mysql-test/r/rpl_row_reset_slave.result	2007-02-12 16:46:50 +01:00
+++ 1.2/mysql-test/r/rpl_row_reset_slave.result	2007-02-12 16:46:50 +01:00
@@ -6,12 +6,12 @@
 start slave;
 show slave status;
 Slave_IO_State	Master_Host	Master_User	Master_Port	Connect_Retry	Master_Log_File	Read_Master_Log_Pos	Relay_Log_File	Relay_Log_Pos	Relay_Master_Log_File	Slave_IO_Running	Slave_SQL_Running	Replicate_Do_DB	Replicate_Ignore_DB	Replicate_Do_Table	Replicate_Ignore_Table	Replicate_Wild_Do_Table	Replicate_Wild_Ignore_Table	Last_Errno	Last_Error	Skip_Counter	Exec_Master_Log_Pos	Relay_Log_Space	Until_Condition	Until_Log_File	Until_Log_Pos	Master_SSL_Allowed	Master_SSL_CA_File	Master_SSL_CA_Path	Master_SSL_Cert	Master_SSL_Cipher	Master_SSL_Key	Seconds_Behind_Master
-#	127.0.0.1	root	MASTER_PORT	1	master-bin.000001	102	#	#	master-bin.000001	Yes	Yes				#			0		0	102	#	None		0	No						#
+#	127.0.0.1	root	MASTER_PORT	1	master-bin.000001	105	#	#	master-bin.000001	Yes	Yes				#			0		0	105	#	None		0	No						#
 stop slave;
 change master to master_user='test';
 show slave status;
 Slave_IO_State	Master_Host	Master_User	Master_Port	Connect_Retry	Master_Log_File	Read_Master_Log_Pos	Relay_Log_File	Relay_Log_Pos	Relay_Master_Log_File	Slave_IO_Running	Slave_SQL_Running	Replicate_Do_DB	Replicate_Ignore_DB	Replicate_Do_Table	Replicate_Ignore_Table	Replicate_Wild_Do_Table	Replicate_Wild_Ignore_Table	Last_Errno	Last_Error	Skip_Counter	Exec_Master_Log_Pos	Relay_Log_Space	Until_Condition	Until_Log_File	Until_Log_Pos	Master_SSL_Allowed	Master_SSL_CA_File	Master_SSL_CA_Path	Master_SSL_Cert	Master_SSL_Cipher	Master_SSL_Key	Seconds_Behind_Master
-#	127.0.0.1	test	MASTER_PORT	1	master-bin.000001	102	#	#	master-bin.000001	No	No				#			0		0	102	#	None		0	No						#
+#	127.0.0.1	test	MASTER_PORT	1	master-bin.000001	105	#	#	master-bin.000001	No	No				#			0		0	105	#	None		0	No						#
 reset slave;
 show slave status;
 Slave_IO_State	Master_Host	Master_User	Master_Port	Connect_Retry	Master_Log_File	Read_Master_Log_Pos	Relay_Log_File	Relay_Log_Pos	Relay_Master_Log_File	Slave_IO_Running	Slave_SQL_Running	Replicate_Do_DB	Replicate_Ignore_DB	Replicate_Do_Table	Replicate_Ignore_Table	Replicate_Wild_Do_Table	Replicate_Wild_Ignore_Table	Last_Errno	Last_Error	Skip_Counter	Exec_Master_Log_Pos	Relay_Log_Space	Until_Condition	Until_Log_File	Until_Log_Pos	Master_SSL_Allowed	Master_SSL_CA_File	Master_SSL_CA_Path	Master_SSL_Cert	Master_SSL_Cipher	Master_SSL_Key	Seconds_Behind_Master
@@ -19,7 +19,7 @@
 start slave;
 show slave status;
 Slave_IO_State	Master_Host	Master_User	Master_Port	Connect_Retry	Master_Log_File	Read_Master_Log_Pos	Relay_Log_File	Relay_Log_Pos	Relay_Master_Log_File	Slave_IO_Running	Slave_SQL_Running	Replicate_Do_DB	Replicate_Ignore_DB	Replicate_Do_Table	Replicate_Ignore_Table	Replicate_Wild_Do_Table	Replicate_Wild_Ignore_Table	Last_Errno	Last_Error	Skip_Counter	Exec_Master_Log_Pos	Relay_Log_Space	Until_Condition	Until_Log_File	Until_Log_Pos	Master_SSL_Allowed	Master_SSL_CA_File	Master_SSL_CA_Path	Master_SSL_Cert	Master_SSL_Cipher	Master_SSL_Key	Seconds_Behind_Master
-#	127.0.0.1	root	MASTER_PORT	1	master-bin.000001	102	#	#	master-bin.000001	Yes	Yes				#			0		0	102	#	None		0	No						#
+#	127.0.0.1	root	MASTER_PORT	1	master-bin.000001	105	#	#	master-bin.000001	Yes	Yes				#			0		0	105	#	None		0	No						#
 stop slave;
 reset slave;
 start slave;

--- 1.1/mysql-test/r/rpl_row_until.result	2007-02-12 16:46:50 +01:00
+++ 1.2/mysql-test/r/rpl_row_until.result	2007-02-12 16:46:50 +01:00
@@ -21,7 +21,7 @@
 4
 show slave status;
 Slave_IO_State	Master_Host	Master_User	Master_Port	Connect_Retry	Master_Log_File	Read_Master_Log_Pos	Relay_Log_File	Relay_Log_Pos	Relay_Master_Log_File	Slave_IO_Running	Slave_SQL_Running	Replicate_Do_DB	Replicate_Ignore_DB	Replicate_Do_Table	Replicate_Ignore_Table	Replicate_Wild_Do_Table	Replicate_Wild_Ignore_Table	Last_Errno	Last_Error	Skip_Counter	Exec_Master_Log_Pos	Relay_Log_Space	Until_Condition	Until_Log_File	Until_Log_Pos	Master_SSL_Allowed	Master_SSL_CA_File	Master_SSL_CA_Path	Master_SSL_Cert	Master_SSL_Cipher	Master_SSL_Key	Seconds_Behind_Master
-#	127.0.0.1	root	MASTER_MYPORT	1	master-bin.000001	740	slave-relay-bin.000004	#	master-bin.000001	#	No							0		0	311	#	Master	master-bin.000001	311	No						#
+#	127.0.0.1	root	MASTER_MYPORT	1	master-bin.000001	743	slave-relay-bin.000004	#	master-bin.000001	#	No							0		0	314	#	Master	master-bin.000001	311	No						#
 start slave until master_log_file='master-no-such-bin.000001', master_log_pos=291;
 select * from t1;
 n
@@ -31,7 +31,7 @@
 4
 show slave status;
 Slave_IO_State	Master_Host	Master_User	Master_Port	Connect_Retry	Master_Log_File	Read_Master_Log_Pos	Relay_Log_File	Relay_Log_Pos	Relay_Master_Log_File	Slave_IO_Running	Slave_SQL_Running	Replicate_Do_DB	Replicate_Ignore_DB	Replicate_Do_Table	Replicate_Ignore_Table	Replicate_Wild_Do_Table	Replicate_Wild_Ignore_Table	Last_Errno	Last_Error	Skip_Counter	Exec_Master_Log_Pos	Relay_Log_Space	Until_Condition	Until_Log_File	Until_Log_Pos	Master_SSL_Allowed	Master_SSL_CA_File	Master_SSL_CA_Path	Master_SSL_Cert	Master_SSL_Cipher	Master_SSL_Key	Seconds_Behind_Master
-#	127.0.0.1	root	MASTER_MYPORT	1	master-bin.000001	740	slave-relay-bin.000004	#	master-bin.000001	#	No							0		0	311	#	Master	master-no-such-bin.000001	291	No						#
+#	127.0.0.1	root	MASTER_MYPORT	1	master-bin.000001	743	slave-relay-bin.000004	#	master-bin.000001	#	No							0		0	314	#	Master	master-no-such-bin.000001	291	No						#
 start slave until relay_log_file='slave-relay-bin.000004', relay_log_pos=728;
 select * from t2;
 n
@@ -39,13 +39,13 @@
 2
 show slave status;
 Slave_IO_State	Master_Host	Master_User	Master_Port	Connect_Retry	Master_Log_File	Read_Master_Log_Pos	Relay_Log_File	Relay_Log_Pos	Relay_Master_Log_File	Slave_IO_Running	Slave_SQL_Running	Replicate_Do_DB	Replicate_Ignore_DB	Replicate_Do_Table	Replicate_Ignore_Table	Replicate_Wild_Do_Table	Replicate_Wild_Ignore_Table	Last_Errno	Last_Error	Skip_Counter	Exec_Master_Log_Pos	Relay_Log_Space	Until_Condition	Until_Log_File	Until_Log_Pos	Master_SSL_Allowed	Master_SSL_CA_File	Master_SSL_CA_Path	Master_SSL_Cert	Master_SSL_Cipher	Master_SSL_Key	Seconds_Behind_Master
-#	127.0.0.1	root	MASTER_MYPORT	1	master-bin.000001	740	slave-relay-bin.000004	#	master-bin.000001	#	No							0		0	586	#	Relay	slave-relay-bin.000004	728	No						#
+#	127.0.0.1	root	MASTER_MYPORT	1	master-bin.000001	743	slave-relay-bin.000004	#	master-bin.000001	#	No							0		0	589	#	Relay	slave-relay-bin.000004	728	No						#
 start slave;
 stop slave;
 start slave until master_log_file='master-bin.000001', master_log_pos=740;
 show slave status;
 Slave_IO_State	Master_Host	Master_User	Master_Port	Connect_Retry	Master_Log_File	Read_Master_Log_Pos	Relay_Log_File	Relay_Log_Pos	Relay_Master_Log_File	Slave_IO_Running	Slave_SQL_Running	Replicate_Do_DB	Replicate_Ignore_DB	Replicate_Do_Table	Replicate_Ignore_Table	Replicate_Wild_Do_Table	Replicate_Wild_Ignore_Table	Last_Errno	Last_Error	Skip_Counter	Exec_Master_Log_Pos	Relay_Log_Space	Until_Condition	Until_Log_File	Until_Log_Pos	Master_SSL_Allowed	Master_SSL_CA_File	Master_SSL_CA_Path	Master_SSL_Cert	Master_SSL_Cipher	Master_SSL_Key	Seconds_Behind_Master
-#	127.0.0.1	root	MASTER_MYPORT	1	master-bin.000001	740	slave-relay-bin.000004	#	master-bin.000001	Yes	No							0		0	740	#	Master	master-bin.000001	740	No						#
+#	127.0.0.1	root	MASTER_MYPORT	1	master-bin.000001	743	slave-relay-bin.000004	#	master-bin.000001	Yes	No							0		0	743	#	Master	master-bin.000001	740	No						#
 start slave until master_log_file='master-bin', master_log_pos=561;
 ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
 start slave until master_log_file='master-bin.000001', master_log_pos=561, relay_log_pos=12;

--- 1.7/mysql-test/t/rpl_row_create_table.test	2007-02-12 16:46:50 +01:00
+++ 1.8/mysql-test/t/rpl_row_create_table.test	2007-02-12 16:46:50 +01:00
@@ -32,7 +32,7 @@
 CREATE TABLE t4 (a INT, b INT) ENGINE=Merge CHARSET=utf8;
 --replace_column 1 # 4 # 5 #
 --replace_regex /table_id: [0-9]+/table_id: #/
---query_vertical SHOW BINLOG EVENTS FROM 212
+--query_vertical SHOW BINLOG EVENTS FROM 215
 --echo **** On Master ****
 --query_vertical SHOW CREATE TABLE t1
 --query_vertical SHOW CREATE TABLE t2
@@ -67,7 +67,7 @@
 CREATE TABLE t7 (UNIQUE(b)) SELECT a,b FROM tt3;
 # Shouldn't be written to the binary log
 --replace_regex /table_id: [0-9]+/table_id: #/
-SHOW BINLOG EVENTS FROM 1256;
+SHOW BINLOG EVENTS FROM 1097;
 
 # Test that INSERT-SELECT works the same way as for SBR.
 CREATE TABLE t7 (a INT, b INT UNIQUE);
@@ -76,7 +76,7 @@
 SELECT * FROM t7 ORDER BY a,b;
 # Should be written to the binary log
 --replace_regex /table_id: [0-9]+/table_id: #/
-SHOW BINLOG EVENTS FROM 1118;
+SHOW BINLOG EVENTS FROM 1097;
 sync_slave_with_master;
 SELECT * FROM t7 ORDER BY a,b;
 
@@ -87,7 +87,7 @@
 INSERT INTO t7 SELECT a,b FROM tt4;
 ROLLBACK;
 --replace_regex /table_id: [0-9]+/table_id: #/
-SHOW BINLOG EVENTS FROM 1314;
+SHOW BINLOG EVENTS FROM 1293;
 SELECT * FROM t7 ORDER BY a,b;
 sync_slave_with_master;
 SELECT * FROM t7 ORDER BY a,b;
@@ -102,7 +102,7 @@
 --query_vertical SHOW CREATE TABLE t8
 --query_vertical SHOW CREATE TABLE t9
 --replace_regex /table_id: [0-9]+/table_id: #/
-SHOW BINLOG EVENTS FROM 1410;
+SHOW BINLOG EVENTS FROM 1389;
 sync_slave_with_master;
 --echo **** On Slave ****
 --query_vertical SHOW CREATE TABLE t8

--- 1.3/mysql-test/t/rpl_row_flsh_tbls.test	2007-02-12 16:46:50 +01:00
+++ 1.4/mysql-test/t/rpl_row_flsh_tbls.test	2007-02-12 16:46:50 +01:00
@@ -1,7 +1,7 @@
 # depends on the binlog output
 -- source include/have_binlog_format_row.inc
 
-let $rename_event_pos= 615;
+let $rename_event_pos= 618;
 
 # Bug#18326: Do not lock table for writing during prepare of statement
 # The use of the ps protocol causes extra table maps in the binlog, so

--- 1.11/mysql-test/r/rpl_row_basic_11bugs.result	2007-02-12 16:46:50 +01:00
+++ 1.12/mysql-test/r/rpl_row_basic_11bugs.result	2007-02-12 16:46:50 +01:00
@@ -25,11 +25,11 @@
 Tables_in_test_ignore
 t2
 INSERT INTO t2 VALUES (3,3), (4,4);
-SHOW BINLOG EVENTS FROM 102;
+SHOW BINLOG EVENTS FROM 105;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-master-bin.000001	102	Query	1	195	use `test`; CREATE TABLE t1 (a INT, b INT)
-master-bin.000001	195	Table_map	1	235	table_id: # (test.t1)
-master-bin.000001	235	Write_rows	1	282	table_id: # flags: STMT_END_F
+master-bin.000001	105	Query	1	198	use `test`; CREATE TABLE t1 (a INT, b INT)
+master-bin.000001	198	Table_map	1	238	table_id: # (test.t1)
+master-bin.000001	238	Write_rows	1	285	table_id: # flags: STMT_END_F
 **** On Slave ****
 SHOW DATABASES;
 Database
@@ -56,10 +56,10 @@
 UPDATE t1 SET a=99 WHERE a = 0;
 SHOW BINLOG EVENTS;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-master-bin.000001	4	Format_desc	1	102	Server ver: SERVER_VERSION, Binlog ver: 4
-master-bin.000001	102	Query	1	188	use `test`; CREATE TABLE t1 (a INT)
-master-bin.000001	188	Table_map	1	227	table_id: # (test.t1)
-master-bin.000001	227	Write_rows	1	266	table_id: # flags: STMT_END_F
+master-bin.000001	4	Format_desc	1	105	Server ver: SERVER_VERSION, Binlog ver: 4
+master-bin.000001	105	Query	1	191	use `test`; CREATE TABLE t1 (a INT)
+master-bin.000001	191	Table_map	1	230	table_id: # (test.t1)
+master-bin.000001	230	Write_rows	1	269	table_id: # flags: STMT_END_F
 DROP TABLE t1;
 ================ Test for BUG#17620 ================
 drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
@@ -120,3 +120,102 @@
 SELECT HEX(a),b FROM t1;
 HEX(a)	b
 0	2
+DROP TABLE IF EXISTS t1;
+================ Test for BUG#22583 ================
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
+reset master;
+reset slave;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
+start slave;
+**** On Master **** 
+CREATE TABLE t1_myisam (k INT, a BIT(1), b BIT(9)) ENGINE=MYISAM;
+CREATE TABLE t1_innodb (k INT, a BIT(1), b BIT(9)) ENGINE=INNODB;
+CREATE TABLE t2_myisam (k INT, a BIT(1) NOT NULL, b BIT(4) NOT NULL) ENGINE=MYISAM;
+CREATE TABLE t2_innodb (k INT, a BIT(1) NOT NULL, b BIT(4) NOT NULL) ENGINE=INNODB;
+**** On Slave **** 
+ALTER TABLE t1_myisam ENGINE=INNODB;
+ALTER TABLE t1_innodb ENGINE=MYISAM;
+ALTER TABLE t2_myisam ENGINE=INNODB;
+ALTER TABLE t2_innodb ENGINE=MYISAM;
+**** On Master **** 
+INSERT INTO t1_myisam VALUES(1, b'0', 257);
+INSERT INTO t1_myisam VALUES(2, b'1', 256);
+INSERT INTO t1_innodb VALUES(1, b'0', 257);
+INSERT INTO t1_innodb VALUES(2, b'1', 256);
+SELECT k, HEX(a),HEX(b) FROM t1_myisam;
+k	HEX(a)	HEX(b)
+1	0	101
+2	1	100
+SELECT k, HEX(a),HEX(b) FROM t1_innodb;
+k	HEX(a)	HEX(b)
+1	0	101
+2	1	100
+INSERT INTO t2_myisam VALUES(1, b'0', 9);
+INSERT INTO t2_myisam VALUES(2, b'1', 8);
+INSERT INTO t2_innodb VALUES(1, b'0', 9);
+INSERT INTO t2_innodb VALUES(2, b'1', 8);
+SELECT k, HEX(a),HEX(b) FROM t2_myisam;
+k	HEX(a)	HEX(b)
+1	0	9
+2	1	8
+SELECT k, HEX(a),HEX(b) FROM t2_innodb;
+k	HEX(a)	HEX(b)
+1	0	9
+2	1	8
+**** On Slave **** 
+SELECT k, HEX(a),HEX(b) FROM t1_myisam;
+k	HEX(a)	HEX(b)
+1	0	101
+2	1	100
+SELECT k, HEX(a),HEX(b) FROM t1_innodb;
+k	HEX(a)	HEX(b)
+1	0	101
+2	1	100
+SELECT k, HEX(a),HEX(b) FROM t2_myisam;
+k	HEX(a)	HEX(b)
+1	0	9
+2	1	8
+SELECT k, HEX(a),HEX(b) FROM t2_innodb;
+k	HEX(a)	HEX(b)
+1	0	9
+2	1	8
+**** On Master **** 
+UPDATE t1_myisam SET a=0 WHERE k=2;
+SELECT k, HEX(a),HEX(b) FROM t1_myisam;
+k	HEX(a)	HEX(b)
+1	0	101
+2	0	100
+UPDATE t1_innodb SET a=0 WHERE k=2;
+SELECT k, HEX(a),HEX(b) FROM t1_innodb;
+k	HEX(a)	HEX(b)
+1	0	101
+2	0	100
+UPDATE t2_myisam SET a=0 WHERE k=2;
+SELECT k, HEX(a),HEX(b) FROM t2_myisam;
+k	HEX(a)	HEX(b)
+1	0	9
+2	0	8
+UPDATE t2_innodb SET a=0 WHERE k=2;
+SELECT k, HEX(a),HEX(b) FROM t2_innodb;
+k	HEX(a)	HEX(b)
+1	0	9
+2	0	8
+**** On Slave **** 
+SELECT k, HEX(a),HEX(b) FROM t1_myisam;
+k	HEX(a)	HEX(b)
+1	0	101
+2	0	100
+SELECT k, HEX(a),HEX(b) FROM t1_innodb;
+k	HEX(a)	HEX(b)
+1	0	101
+2	0	100
+SELECT k, HEX(a),HEX(b) FROM t2_myisam;
+k	HEX(a)	HEX(b)
+1	0	9
+2	0	8
+SELECT k, HEX(a),HEX(b) FROM t2_innodb;
+k	HEX(a)	HEX(b)
+1	0	9
+2	0	8
+**** On Master **** 
+DROP TABLE IF EXISTS t1_myisam, t1_innodb, t2_myisam, t2_innodb;

--- 1.2/mysql-test/r/rpl_truncate_2myisam.result	2007-02-12 16:46:50 +01:00
+++ 1.3/mysql-test/r/rpl_truncate_2myisam.result	2007-02-12 16:46:50 +01:00
@@ -31,11 +31,11 @@
 DROP TABLE t1;
 SHOW BINLOG EVENTS;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-master-bin.000001	4	Format_desc	1	102	Server ver: SERVER_VERSION, Binlog ver: 4
-master-bin.000001	102	Query	1	210	use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=MyISAM
-master-bin.000001	210	Query	1	307	use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
-master-bin.000001	307	Query	1	387	use `test`; TRUNCATE TABLE t1
-master-bin.000001	387	Query	1	463	use `test`; DROP TABLE t1
+master-bin.000001	4	Format_desc	1	105	Server ver: SERVER_VERSION, Binlog ver: 4
+master-bin.000001	105	Query	1	213	use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=MyISAM
+master-bin.000001	213	Query	1	310	use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
+master-bin.000001	310	Query	1	390	use `test`; TRUNCATE TABLE t1
+master-bin.000001	390	Query	1	466	use `test`; DROP TABLE t1
 **** On Master ****
 SET SESSION BINLOG_FORMAT=MIXED;
 SET GLOBAL  BINLOG_FORMAT=MIXED;
@@ -63,11 +63,11 @@
 DROP TABLE t1;
 SHOW BINLOG EVENTS;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-master-bin.000001	4	Format_desc	1	102	Server ver: SERVER_VERSION, Binlog ver: 4
-master-bin.000001	102	Query	1	210	use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=MyISAM
-master-bin.000001	210	Query	1	307	use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
-master-bin.000001	307	Query	1	387	use `test`; TRUNCATE TABLE t1
-master-bin.000001	387	Query	1	463	use `test`; DROP TABLE t1
+master-bin.000001	4	Format_desc	1	105	Server ver: SERVER_VERSION, Binlog ver: 4
+master-bin.000001	105	Query	1	213	use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=MyISAM
+master-bin.000001	213	Query	1	310	use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
+master-bin.000001	310	Query	1	390	use `test`; TRUNCATE TABLE t1
+master-bin.000001	390	Query	1	466	use `test`; DROP TABLE t1
 **** On Master ****
 SET SESSION BINLOG_FORMAT=ROW;
 SET GLOBAL  BINLOG_FORMAT=ROW;
@@ -95,12 +95,12 @@
 DROP TABLE t1;
 SHOW BINLOG EVENTS;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-master-bin.000001	4	Format_desc	1	102	Server ver: SERVER_VERSION, Binlog ver: 4
-master-bin.000001	102	Query	1	210	use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=MyISAM
-master-bin.000001	210	Table_map	1	250	table_id: # (test.t1)
-master-bin.000001	250	Write_rows	1	297	table_id: # flags: STMT_END_F
-master-bin.000001	297	Query	1	377	use `test`; TRUNCATE TABLE t1
-master-bin.000001	377	Query	1	453	use `test`; DROP TABLE t1
+master-bin.000001	4	Format_desc	1	105	Server ver: SERVER_VERSION, Binlog ver: 4
+master-bin.000001	105	Query	1	213	use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=MyISAM
+master-bin.000001	213	Table_map	1	253	table_id: # (test.t1)
+master-bin.000001	253	Write_rows	1	300	table_id: # flags: STMT_END_F
+master-bin.000001	300	Query	1	380	use `test`; TRUNCATE TABLE t1
+master-bin.000001	380	Query	1	456	use `test`; DROP TABLE t1
 **** On Master ****
 SET SESSION BINLOG_FORMAT=STATEMENT;
 SET GLOBAL  BINLOG_FORMAT=STATEMENT;
@@ -128,11 +128,11 @@
 DROP TABLE t1;
 SHOW BINLOG EVENTS;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-master-bin.000001	4	Format_desc	1	102	Server ver: SERVER_VERSION, Binlog ver: 4
-master-bin.000001	102	Query	1	210	use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=MyISAM
-master-bin.000001	210	Query	1	307	use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
-master-bin.000001	307	Query	1	384	use `test`; DELETE FROM t1
-master-bin.000001	384	Query	1	460	use `test`; DROP TABLE t1
+master-bin.000001	4	Format_desc	1	105	Server ver: SERVER_VERSION, Binlog ver: 4
+master-bin.000001	105	Query	1	213	use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=MyISAM
+master-bin.000001	213	Query	1	310	use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
+master-bin.000001	310	Query	1	387	use `test`; DELETE FROM t1
+master-bin.000001	387	Query	1	463	use `test`; DROP TABLE t1
 **** On Master ****
 SET SESSION BINLOG_FORMAT=MIXED;
 SET GLOBAL  BINLOG_FORMAT=MIXED;
@@ -160,11 +160,11 @@
 DROP TABLE t1;
 SHOW BINLOG EVENTS;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-master-bin.000001	4	Format_desc	1	102	Server ver: SERVER_VERSION, Binlog ver: 4
-master-bin.000001	102	Query	1	210	use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=MyISAM
-master-bin.000001	210	Query	1	307	use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
-master-bin.000001	307	Query	1	384	use `test`; DELETE FROM t1
-master-bin.000001	384	Query	1	460	use `test`; DROP TABLE t1
+master-bin.000001	4	Format_desc	1	105	Server ver: SERVER_VERSION, Binlog ver: 4
+master-bin.000001	105	Query	1	213	use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=MyISAM
+master-bin.000001	213	Query	1	310	use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
+master-bin.000001	310	Query	1	387	use `test`; DELETE FROM t1
+master-bin.000001	387	Query	1	463	use `test`; DROP TABLE t1
 **** On Master ****
 SET SESSION BINLOG_FORMAT=ROW;
 SET GLOBAL  BINLOG_FORMAT=ROW;
@@ -193,10 +193,10 @@
 DROP TABLE t1;
 SHOW BINLOG EVENTS;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-master-bin.000001	4	Format_desc	1	102	Server ver: SERVER_VERSION, Binlog ver: 4
-master-bin.000001	102	Query	1	210	use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=MyISAM
-master-bin.000001	210	Table_map	1	250	table_id: # (test.t1)
-master-bin.000001	250	Write_rows	1	297	table_id: # flags: STMT_END_F
-master-bin.000001	297	Table_map	1	337	table_id: # (test.t1)
-master-bin.000001	337	Delete_rows	1	384	table_id: # flags: STMT_END_F
-master-bin.000001	384	Query	1	460	use `test`; DROP TABLE t1
+master-bin.000001	4	Format_desc	1	105	Server ver: SERVER_VERSION, Binlog ver: 4
+master-bin.000001	105	Query	1	213	use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=MyISAM
+master-bin.000001	213	Table_map	1	253	table_id: # (test.t1)
+master-bin.000001	253	Write_rows	1	300	table_id: # flags: STMT_END_F
+master-bin.000001	300	Table_map	1	340	table_id: # (test.t1)
+master-bin.000001	340	Delete_rows	1	387	table_id: # flags: STMT_END_F
+master-bin.000001	387	Query	1	463	use `test`; DROP TABLE t1

--- 1.2/mysql-test/r/rpl_truncate_3innodb.result	2007-02-12 16:46:50 +01:00
+++ 1.3/mysql-test/r/rpl_truncate_3innodb.result	2007-02-12 16:46:50 +01:00
@@ -31,13 +31,13 @@
 DROP TABLE t1;
 SHOW BINLOG EVENTS;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-master-bin.000001	4	Format_desc	1	102	Server ver: SERVER_VERSION, Binlog ver: 4
-master-bin.000001	102	Query	1	210	use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=InnoDB
-master-bin.000001	210	Query	1	97	use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
-master-bin.000001	307	Xid	1	334	COMMIT /* xid= */
-master-bin.000001	334	Query	1	80	use `test`; TRUNCATE TABLE t1
-master-bin.000001	414	Xid	1	441	COMMIT /* xid= */
-master-bin.000001	441	Query	1	517	use `test`; DROP TABLE t1
+master-bin.000001	4	Format_desc	1	105	Server ver: SERVER_VERSION, Binlog ver: 4
+master-bin.000001	105	Query	1	213	use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=InnoDB
+master-bin.000001	213	Query	1	97	use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
+master-bin.000001	310	Xid	1	337	COMMIT /* xid= */
+master-bin.000001	337	Query	1	80	use `test`; TRUNCATE TABLE t1
+master-bin.000001	417	Xid	1	444	COMMIT /* xid= */
+master-bin.000001	444	Query	1	520	use `test`; DROP TABLE t1
 **** On Master ****
 SET SESSION BINLOG_FORMAT=MIXED;
 SET GLOBAL  BINLOG_FORMAT=MIXED;
@@ -65,13 +65,13 @@
 DROP TABLE t1;
 SHOW BINLOG EVENTS;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-master-bin.000001	4	Format_desc	1	102	Server ver: SERVER_VERSION, Binlog ver: 4
-master-bin.000001	102	Query	1	210	use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=InnoDB
-master-bin.000001	210	Query	1	97	use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
-master-bin.000001	307	Xid	1	334	COMMIT /* xid= */
-master-bin.000001	334	Query	1	80	use `test`; TRUNCATE TABLE t1
-master-bin.000001	414	Xid	1	441	COMMIT /* xid= */
-master-bin.000001	441	Query	1	517	use `test`; DROP TABLE t1
+master-bin.000001	4	Format_desc	1	105	Server ver: SERVER_VERSION, Binlog ver: 4
+master-bin.000001	105	Query	1	213	use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=InnoDB
+master-bin.000001	213	Query	1	97	use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
+master-bin.000001	310	Xid	1	337	COMMIT /* xid= */
+master-bin.000001	337	Query	1	80	use `test`; TRUNCATE TABLE t1
+master-bin.000001	417	Xid	1	444	COMMIT /* xid= */
+master-bin.000001	444	Query	1	520	use `test`; DROP TABLE t1
 **** On Master ****
 SET SESSION BINLOG_FORMAT=ROW;
 SET GLOBAL  BINLOG_FORMAT=ROW;
@@ -99,14 +99,14 @@
 DROP TABLE t1;
 SHOW BINLOG EVENTS;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-master-bin.000001	4	Format_desc	1	102	Server ver: SERVER_VERSION, Binlog ver: 4
-master-bin.000001	102	Query	1	210	use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=InnoDB
-master-bin.000001	210	Table_map	1	40	table_id: # (test.t1)
-master-bin.000001	250	Write_rows	1	87	table_id: # flags: STMT_END_F
-master-bin.000001	297	Xid	1	324	COMMIT /* xid= */
-master-bin.000001	324	Query	1	80	use `test`; TRUNCATE TABLE t1
-master-bin.000001	404	Xid	1	431	COMMIT /* xid= */
-master-bin.000001	431	Query	1	507	use `test`; DROP TABLE t1
+master-bin.000001	4	Format_desc	1	105	Server ver: SERVER_VERSION, Binlog ver: 4
+master-bin.000001	105	Query	1	213	use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=InnoDB
+master-bin.000001	213	Table_map	1	40	table_id: # (test.t1)
+master-bin.000001	253	Write_rows	1	87	table_id: # flags: STMT_END_F
+master-bin.000001	300	Xid	1	327	COMMIT /* xid= */
+master-bin.000001	327	Query	1	80	use `test`; TRUNCATE TABLE t1
+master-bin.000001	407	Xid	1	434	COMMIT /* xid= */
+master-bin.000001	434	Query	1	510	use `test`; DROP TABLE t1
 **** On Master ****
 SET SESSION BINLOG_FORMAT=STATEMENT;
 SET GLOBAL  BINLOG_FORMAT=STATEMENT;
@@ -134,13 +134,13 @@
 DROP TABLE t1;
 SHOW BINLOG EVENTS;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-master-bin.000001	4	Format_desc	1	102	Server ver: SERVER_VERSION, Binlog ver: 4
-master-bin.000001	102	Query	1	210	use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=InnoDB
-master-bin.000001	210	Query	1	97	use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
-master-bin.000001	307	Xid	1	334	COMMIT /* xid= */
-master-bin.000001	334	Query	1	77	use `test`; DELETE FROM t1
-master-bin.000001	411	Xid	1	438	COMMIT /* xid= */
-master-bin.000001	438	Query	1	514	use `test`; DROP TABLE t1
+master-bin.000001	4	Format_desc	1	105	Server ver: SERVER_VERSION, Binlog ver: 4
+master-bin.000001	105	Query	1	213	use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=InnoDB
+master-bin.000001	213	Query	1	97	use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
+master-bin.000001	310	Xid	1	337	COMMIT /* xid= */
+master-bin.000001	337	Query	1	77	use `test`; DELETE FROM t1
+master-bin.000001	414	Xid	1	441	COMMIT /* xid= */
+master-bin.000001	441	Query	1	517	use `test`; DROP TABLE t1
 **** On Master ****
 SET SESSION BINLOG_FORMAT=MIXED;
 SET GLOBAL  BINLOG_FORMAT=MIXED;
@@ -168,13 +168,13 @@
 DROP TABLE t1;
 SHOW BINLOG EVENTS;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-master-bin.000001	4	Format_desc	1	102	Server ver: SERVER_VERSION, Binlog ver: 4
-master-bin.000001	102	Query	1	210	use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=InnoDB
-master-bin.000001	210	Query	1	97	use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
-master-bin.000001	307	Xid	1	334	COMMIT /* xid= */
-master-bin.000001	334	Query	1	77	use `test`; DELETE FROM t1
-master-bin.000001	411	Xid	1	438	COMMIT /* xid= */
-master-bin.000001	438	Query	1	514	use `test`; DROP TABLE t1
+master-bin.000001	4	Format_desc	1	105	Server ver: SERVER_VERSION, Binlog ver: 4
+master-bin.000001	105	Query	1	213	use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=InnoDB
+master-bin.000001	213	Query	1	97	use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
+master-bin.000001	310	Xid	1	337	COMMIT /* xid= */
+master-bin.000001	337	Query	1	77	use `test`; DELETE FROM t1
+master-bin.000001	414	Xid	1	441	COMMIT /* xid= */
+master-bin.000001	441	Query	1	517	use `test`; DROP TABLE t1
 **** On Master ****
 SET SESSION BINLOG_FORMAT=ROW;
 SET GLOBAL  BINLOG_FORMAT=ROW;
@@ -203,12 +203,12 @@
 DROP TABLE t1;
 SHOW BINLOG EVENTS;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-master-bin.000001	4	Format_desc	1	102	Server ver: SERVER_VERSION, Binlog ver: 4
-master-bin.000001	102	Query	1	210	use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=InnoDB
-master-bin.000001	210	Table_map	1	40	table_id: # (test.t1)
-master-bin.000001	250	Write_rows	1	87	table_id: # flags: STMT_END_F
-master-bin.000001	297	Xid	1	324	COMMIT /* xid= */
-master-bin.000001	324	Table_map	1	40	table_id: # (test.t1)
-master-bin.000001	364	Delete_rows	1	87	table_id: # flags: STMT_END_F
-master-bin.000001	411	Xid	1	438	COMMIT /* xid= */
-master-bin.000001	438	Query	1	514	use `test`; DROP TABLE t1
+master-bin.000001	4	Format_desc	1	105	Server ver: SERVER_VERSION, Binlog ver: 4
+master-bin.000001	105	Query	1	213	use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=InnoDB
+master-bin.000001	213	Table_map	1	40	table_id: # (test.t1)
+master-bin.000001	253	Write_rows	1	87	table_id: # flags: STMT_END_F
+master-bin.000001	300	Xid	1	327	COMMIT /* xid= */
+master-bin.000001	327	Table_map	1	40	table_id: # (test.t1)
+master-bin.000001	367	Delete_rows	1	87	table_id: # flags: STMT_END_F
+master-bin.000001	414	Xid	1	441	COMMIT /* xid= */
+master-bin.000001	441	Query	1	517	use `test`; DROP TABLE t1

--- 1.2/mysql-test/t/rpl_row_basic_11bugs-master.opt	2007-02-12 16:46:51 +01:00
+++ 1.3/mysql-test/t/rpl_row_basic_11bugs-master.opt	2007-02-12 16:46:51 +01:00
@@ -1 +1,2 @@
---binlog_ignore_db=test_ignore
+--binlog_ignore_db=test_ignore --innodb
+

--- 1.10/mysql-test/t/rpl_row_basic_11bugs.test	2007-02-12 16:46:51 +01:00
+++ 1.11/mysql-test/t/rpl_row_basic_11bugs.test	2007-02-12 16:46:51 +01:00
@@ -26,7 +26,7 @@
 SHOW TABLES;
 INSERT INTO t2 VALUES (3,3), (4,4);
 --replace_regex /table_id: [0-9]+/table_id: #/
-SHOW BINLOG EVENTS FROM 102;
+SHOW BINLOG EVENTS FROM 105;
 sync_slave_with_master;
 --echo **** On Slave ****
 SHOW DATABASES;
@@ -114,3 +114,71 @@
 SELECT HEX(a),b FROM t1;
 sync_slave_with_master;
 SELECT HEX(a),b FROM t1;
+
+connection master;
+DROP TABLE IF EXISTS t1;
+sync_slave_with_master;
+
+# BUG#22583: RBR between MyISAM and non-MyISAM tables containing a BIT
+# field does not work
+
+--echo ================ Test for BUG#22583 ================
+--disable_query_log
+--source include/master-slave-reset.inc
+--enable_query_log
+
+--echo **** On Master **** 
+connection master;
+CREATE TABLE t1_myisam (k INT, a BIT(1), b BIT(9)) ENGINE=MYISAM;
+CREATE TABLE t1_innodb (k INT, a BIT(1), b BIT(9)) ENGINE=INNODB;
+CREATE TABLE t2_myisam (k INT, a BIT(1) NOT NULL, b BIT(4) NOT NULL) ENGINE=MYISAM;
+CREATE TABLE t2_innodb (k INT, a BIT(1) NOT NULL, b BIT(4) NOT NULL) ENGINE=INNODB;
+--echo **** On Slave **** 
+sync_slave_with_master;
+ALTER TABLE t1_myisam ENGINE=INNODB;
+ALTER TABLE t1_innodb ENGINE=MYISAM;
+ALTER TABLE t2_myisam ENGINE=INNODB;
+ALTER TABLE t2_innodb ENGINE=MYISAM;
+
+--echo **** On Master **** 
+connection master;
+INSERT INTO t1_myisam VALUES(1, b'0', 257);
+INSERT INTO t1_myisam VALUES(2, b'1', 256);
+INSERT INTO t1_innodb VALUES(1, b'0', 257);
+INSERT INTO t1_innodb VALUES(2, b'1', 256);
+SELECT k, HEX(a),HEX(b) FROM t1_myisam;
+SELECT k, HEX(a),HEX(b) FROM t1_innodb;
+INSERT INTO t2_myisam VALUES(1, b'0', 9);
+INSERT INTO t2_myisam VALUES(2, b'1', 8);
+INSERT INTO t2_innodb VALUES(1, b'0', 9);
+INSERT INTO t2_innodb VALUES(2, b'1', 8);
+SELECT k, HEX(a),HEX(b) FROM t2_myisam;
+SELECT k, HEX(a),HEX(b) FROM t2_innodb;
+--echo **** On Slave **** 
+sync_slave_with_master;
+SELECT k, HEX(a),HEX(b) FROM t1_myisam;
+SELECT k, HEX(a),HEX(b) FROM t1_innodb;
+SELECT k, HEX(a),HEX(b) FROM t2_myisam;
+SELECT k, HEX(a),HEX(b) FROM t2_innodb;
+
+--echo **** On Master **** 
+connection master;
+UPDATE t1_myisam SET a=0 WHERE k=2;
+SELECT k, HEX(a),HEX(b) FROM t1_myisam;
+UPDATE t1_innodb SET a=0 WHERE k=2;
+SELECT k, HEX(a),HEX(b) FROM t1_innodb;
+UPDATE t2_myisam SET a=0 WHERE k=2;
+SELECT k, HEX(a),HEX(b) FROM t2_myisam;
+UPDATE t2_innodb SET a=0 WHERE k=2;
+SELECT k, HEX(a),HEX(b) FROM t2_innodb;
+--echo **** On Slave **** 
+sync_slave_with_master;
+SELECT k, HEX(a),HEX(b) FROM t1_myisam;
+SELECT k, HEX(a),HEX(b) FROM t1_innodb;
+SELECT k, HEX(a),HEX(b) FROM t2_myisam;
+SELECT k, HEX(a),HEX(b) FROM t2_innodb;
+
+--echo **** On Master **** 
+connection master;
+DROP TABLE IF EXISTS t1_myisam, t1_innodb, t2_myisam, t2_innodb;
+sync_slave_with_master;
--- New file ---
+++ mysql-test/t/rpl_row_basic_11bugs-slave.opt	07/02/12 16:46:37
--innodb


--- 1.26/mysql-test/r/rpl_flushlog_loop.result	2007-02-12 16:46:51 +01:00
+++ 1.27/mysql-test/r/rpl_flushlog_loop.result	2007-02-12 16:46:51 +01:00
@@ -24,7 +24,7 @@
 Master_Port	SLAVE_PORT
 Connect_Retry	60
 Master_Log_File	slave-bin.000001
-Read_Master_Log_Pos	212
+Read_Master_Log_Pos	215
 Relay_Log_File	#
 Relay_Log_Pos	#
 Relay_Master_Log_File	slave-bin.000001
@@ -39,7 +39,7 @@
 Last_Errno	0
 Last_Error	
 Skip_Counter	0
-Exec_Master_Log_Pos	212
+Exec_Master_Log_Pos	215
 Relay_Log_Space	#
 Until_Condition	None
 Until_Log_File	

--- 1.44/mysql-test/r/rpl_log_pos.result	2007-02-12 16:46:51 +01:00
+++ 1.45/mysql-test/r/rpl_log_pos.result	2007-02-12 16:46:51 +01:00
@@ -6,10 +6,10 @@
 start slave;
 show master status;
 File	Position	Binlog_Do_DB	Binlog_Ignore_DB
-master-bin.000001	102	<Binlog_Ignore_DB>	
+master-bin.000001	105	<Binlog_Ignore_DB>	
 show slave status;
 Slave_IO_State	Master_Host	Master_User	Master_Port	Connect_Retry	Master_Log_File	Read_Master_Log_Pos	Relay_Log_File	Relay_Log_Pos	Relay_Master_Log_File	Slave_IO_Running	Slave_SQL_Running	Replicate_Do_DB	Replicate_Ignore_DB	Replicate_Do_Table	Replicate_Ignore_Table	Replicate_Wild_Do_Table	Replicate_Wild_Ignore_Table	Last_Errno	Last_Error	Skip_Counter	Exec_Master_Log_Pos	Relay_Log_Space	Until_Condition	Until_Log_File	Until_Log_Pos	Master_SSL_Allowed	Master_SSL_CA_File	Master_SSL_CA_Path	Master_SSL_Cert	Master_SSL_Cipher	Master_SSL_Key	Seconds_Behind_Master
-#	127.0.0.1	root	MASTER_PORT	1	master-bin.000001	102	#	#	master-bin.000001	Yes	Yes							0		0	102	#	None		0	No						#
+#	127.0.0.1	root	MASTER_PORT	1	master-bin.000001	105	#	#	master-bin.000001	Yes	Yes							0		0	105	#	None		0	No						#
 stop slave;
 change master to master_log_pos=74;
 start slave;
@@ -30,13 +30,13 @@
 #	127.0.0.1	root	MASTER_PORT	1	master-bin.000001	177	#	#	master-bin.000001	No	Yes							0		0	177	#	None		0	No						#
 show master status;
 File	Position	Binlog_Do_DB	Binlog_Ignore_DB
-master-bin.000001	102	<Binlog_Ignore_DB>	
+master-bin.000001	105	<Binlog_Ignore_DB>	
 create table if not exists t1 (n int);
 drop table if exists t1;
 create table t1 (n int);
 insert into t1 values (1),(2),(3);
 stop slave;
-change master to master_log_pos=102;
+change master to master_log_pos=105;
 start slave;
 select * from t1 ORDER BY n;
 n

--- 1.36/mysql-test/r/rpl_000015.result	2007-02-12 16:46:51 +01:00
+++ 1.37/mysql-test/r/rpl_000015.result	2007-02-12 16:46:51 +01:00
@@ -1,7 +1,7 @@
 reset master;
 show master status;
 File	Position	Binlog_Do_DB	Binlog_Ignore_DB
-master-bin.000001	102		
+master-bin.000001	105		
 reset slave;
 show slave status;
 Slave_IO_State	Master_Host	Master_User	Master_Port	Connect_Retry	Master_Log_File	Read_Master_Log_Pos	Relay_Log_File	Relay_Log_Pos	Relay_Master_Log_File	Slave_IO_Running	Slave_SQL_Running	Replicate_Do_DB	Replicate_Ignore_DB	Replicate_Do_Table	Replicate_Ignore_Table	Replicate_Wild_Do_Table	Replicate_Wild_Ignore_Table	Last_Errno	Last_Error	Skip_Counter	Exec_Master_Log_Pos	Relay_Log_Space	Until_Condition	Until_Log_File	Until_Log_Pos	Master_SSL_Allowed	Master_SSL_CA_File	Master_SSL_CA_Path	Master_SSL_Cert	Master_SSL_Cipher	Master_SSL_Key	Seconds_Behind_Master
@@ -17,7 +17,7 @@
 start slave;
 show slave status;
 Slave_IO_State	Master_Host	Master_User	Master_Port	Connect_Retry	Master_Log_File	Read_Master_Log_Pos	Relay_Log_File	Relay_Log_Pos	Relay_Master_Log_File	Slave_IO_Running	Slave_SQL_Running	Replicate_Do_DB	Replicate_Ignore_DB	Replicate_Do_Table	Replicate_Ignore_Table	Replicate_Wild_Do_Table	Replicate_Wild_Ignore_Table	Last_Errno	Last_Error	Skip_Counter	Exec_Master_Log_Pos	Relay_Log_Space	Until_Condition	Until_Log_File	Until_Log_Pos	Master_SSL_Allowed	Master_SSL_CA_File	Master_SSL_CA_Path	Master_SSL_Cert	Master_SSL_Cipher	Master_SSL_Key	Seconds_Behind_Master
-#	127.0.0.1	root	MASTER_PORT	7	master-bin.000001	102	#	#	master-bin.000001	Yes	Yes							0		0	102	#	None		0	No						#
+#	127.0.0.1	root	MASTER_PORT	7	master-bin.000001	105	#	#	master-bin.000001	Yes	Yes							0		0	105	#	None		0	No						#
 drop table if exists t1;
 create table t1 (n int, PRIMARY KEY(n));
 insert into t1 values (10),(45),(90);

--- 1.36/mysql-test/t/rpl_log_pos.test	2007-02-12 16:46:51 +01:00
+++ 1.37/mysql-test/t/rpl_log_pos.test	2007-02-12 16:46:51 +01:00
@@ -49,7 +49,7 @@
 save_master_pos;
 connection slave;
 stop slave;
-change master to master_log_pos=102;
+change master to master_log_pos=105;
 start slave;
 sync_with_master;
 select * from t1 ORDER BY n;

--- 1.39/mysql-test/extra/rpl_tests/rpl_log.test	2007-02-12 16:46:51 +01:00
+++ 1.40/mysql-test/extra/rpl_tests/rpl_log.test	2007-02-12 16:46:51 +01:00
@@ -42,13 +42,13 @@
 show binlog events;
 --replace_column 2 # 5 #
 --replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/
-show binlog events from 102 limit 1;
+show binlog events from 105 limit 1;
 --replace_column 2 # 5 #
 --replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/
-show binlog events from 102 limit 2;
+show binlog events from 105 limit 2;
 --replace_column 2 # 5 #
 --replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/
-show binlog events from 102 limit 2,1;
+show binlog events from 105 limit 2,1;
 flush logs;
 
 # We need an extra update before doing save_master_pos.
Thread
bk commit into 5.1 tree (mats:1.2308) BUG#22583Mats Kindahl12 Feb