List:Commits« Previous MessageNext Message »
From:Mats Kindahl Date:February 20 2007 9:37pm
Subject:bk commit into 5.1 tree (mats:1.2416)
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-20 21:36:47+01:00, mats@romeo.(none) +17 -0
  Merge romeo.(none):/home/bkroot/mysql-5.1-new-rpl
  into  romeo.(none):/home/bk/b22583-mysql-5.1-new-rpl
  MERGE: 1.2303.190.1

  mysql-test/extra/rpl_tests/rpl_deadlock.test@stripped, 2007-02-20 21:34:34+01:00,
mats@romeo.(none) +2 -4
    Manual merge
    MERGE: 1.13.2.1

  mysql-test/extra/rpl_tests/rpl_log.test@stripped, 2007-02-20 21:16:48+01:00,
mats@romeo.(none) +0 -0
    Auto merged
    MERGE: 1.39.2.1

  mysql-test/r/rpl_000015.result@stripped, 2007-02-20 21:16:48+01:00, mats@romeo.(none) +0 -0
    Auto merged
    MERGE: 1.36.2.1

  mysql-test/r/rpl_change_master.result@stripped, 2007-02-20 21:16:48+01:00, mats@romeo.(none)
+0 -0
    Auto merged
    MERGE: 1.18.2.1

  mysql-test/r/rpl_deadlock_innodb.result@stripped, 2007-02-20 21:34:34+01:00,
mats@romeo.(none) +2 -4
    Manual merge
    MERGE: 1.11.2.1

  mysql-test/r/rpl_row_basic_11bugs.result@stripped, 2007-02-20 21:16:48+01:00,
mats@romeo.(none) +0 -0
    Auto merged
    MERGE: 1.11.1.1

  mysql-test/r/rpl_row_create_table.result@stripped, 2007-02-20 21:34:34+01:00,
mats@romeo.(none) +1 -2
    Manual merge
    MERGE: 1.7.1.1

  mysql-test/r/rpl_row_delayed_ins.result@stripped, 2007-02-20 21:23:08+01:00,
mats@romeo.(none) +1 -7
    Manual merge
    MERGE: 1.4.1.1

  mysql-test/r/rpl_row_max_relay_size.result@stripped, 2007-02-20 21:16:48+01:00,
mats@romeo.(none) +0 -0
    Auto merged
    MERGE: 1.4.1.1

  mysql-test/r/rpl_switch_stm_row_mixed.result@stripped, 2007-02-20 21:16:49+01:00,
mats@romeo.(none) +0 -0
    Auto merged
    MERGE: 1.15.1.1

  mysql-test/t/rpl_row_basic_11bugs.test@stripped, 2007-02-20 21:16:50+01:00,
mats@romeo.(none) +0 -0
    Auto merged
    MERGE: 1.10.1.1

  mysql-test/t/rpl_row_create_table.test@stripped, 2007-02-20 21:34:34+01:00, mats@romeo.(none)
+1 -2
    Manual merge
    MERGE: 1.7.1.1

  mysql-test/t/rpl_switch_stm_row_mixed.test@stripped, 2007-02-20 21:16:50+01:00,
mats@romeo.(none) +0 -0
    Auto merged
    MERGE: 1.12.1.1

  mysql-test/t/user_var-binlog.test@stripped, 2007-02-20 21:16:50+01:00, mats@romeo.(none) +0
-0
    Auto merged
    MERGE: 1.7.1.1

  sql/log_event.cc@stripped, 2007-02-20 21:34:34+01:00, mats@romeo.(none) +4 -12
    Manual merge
    MERGE: 1.246.5.1

  sql/log_event.h@stripped, 2007-02-20 21:16:52+01:00, mats@romeo.(none) +0 -0
    Auto merged
    MERGE: 1.136.2.1

  sql/sql_class.cc@stripped, 2007-02-20 21:16:53+01:00, mats@romeo.(none) +0 -0
    Auto merged
    MERGE: 1.293.6.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/b22583-mysql-5.1-new-rpl/RESYNC

--- 1.263/sql/log_event.cc	2007-02-20 21:37:07 +01:00
+++ 1.264/sql/log_event.cc	2007-02-20 21:37:07 +01:00
@@ -1014,7 +1014,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;
   }
@@ -5556,18 +5557,18 @@
   
   SYNOPSIS
     unpack_row()
-    rli     Relay log info
-    table   Table to unpack into
-    colcnt  Number of columns to read from record
-    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
+    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
 
@@ -5595,8 +5596,8 @@
 static int
 unpack_row(RELAY_LOG_INFO *rli,
            TABLE *table, uint const colcnt,
-           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)
 {
   byte *const record= table->record[0];
@@ -5605,58 +5606,67 @@
   DBUG_PRINT("enter", ("row: 0x%lx  table->record[0]: 0x%lx", (long) row, (long)
record));
   my_size_t master_null_bytes= table->s->null_bytes;
 
-  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))
     {
-      DBUG_ASSERT((const char *)table->record[0] <= f->ptr);
-      DBUG_ASSERT(f->ptr < ((const char *)table->record[0] +
table->s->reclength +
-                            (f->pack_length_in_rec() == 0)));
-
-      DBUG_PRINT("info", ("unpacking column '%s' to 0x%lx", f->field_name,
-                          (long) f->ptr));
-      ptr= f->unpack(f->ptr, ptr);
+      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)
@@ -5681,9 +5691,8 @@
     uint32 const mask= NOT_NULL_FLAG | NO_DEFAULT_VALUE_FLAG;
     Field *const f= *field_ptr;
 
-    DBUG_PRINT("info", ("processing column '%s' @ 0x%lx", f->field_name,
-                        (long) f->ptr));
-    if (event_type == WRITE_ROWS_EVENT && (f->flags & mask) == mask)
+    if (event_type == WRITE_ROWS_EVENT &&
+        ((*field_ptr)->flags & mask) == mask)
     {
       slave_print_msg(ERROR_LEVEL, rli, ER_NO_DEFAULT_FOR_FIELD,
                       "Field `%s` of table `%s`.`%s` "
@@ -6883,6 +6892,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)
   {
@@ -7017,16 +7028,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.146/sql/log_event.h	2007-02-20 21:37:07 +01:00
+++ 1.147/sql/log_event.h	2007-02-20 21:37:07 +01:00
@@ -467,10 +467,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.306/sql/sql_class.cc	2007-02-20 21:37:07 +01:00
+++ 1.307/sql/sql_class.cc	2007-02-20 21:37:07 +01:00
@@ -2493,30 +2493,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.20/mysql-test/r/rpl_change_master.result	2007-02-20 21:37:07 +01:00
+++ 1.21/mysql-test/r/rpl_change_master.result	2007-02-20 21:37:07 +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.16/mysql-test/r/rpl_deadlock_innodb.result	2007-02-20 21:37:07 +01:00
+++ 1.17/mysql-test/r/rpl_deadlock_innodb.result	2007-02-20 21:37:07 +01:00
@@ -80,7 +80,7 @@
 Seconds_Behind_Master	#
 stop slave;
 delete from t3;
-change master to master_log_pos=544;
+change master to master_log_pos=547;
 begin;
 select * from t2 for update;
 a
@@ -136,7 +136,7 @@
 set global max_relay_log_size=0;
 stop slave;
 delete from t3;
-change master to master_log_pos=544;
+change master to master_log_pos=547;
 begin;
 select * from t2 for update;
 a

--- 1.17/mysql-test/r/rpl_switch_stm_row_mixed.result	2007-02-20 21:37:07 +01:00
+++ 1.18/mysql-test/r/rpl_switch_stm_row_mixed.result	2007-02-20 21:37:07 +01:00
@@ -404,7 +404,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
@@ -714,7 +714,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.18/mysql-test/extra/rpl_tests/rpl_deadlock.test	2007-02-20 21:37:07 +01:00
+++ 1.19/mysql-test/extra/rpl_tests/rpl_deadlock.test	2007-02-20 21:37:07 +01:00
@@ -82,7 +82,7 @@
 
 stop slave;
 delete from t3;
-change master to master_log_pos=544; # the BEGIN log event
+change master to master_log_pos=547; # the BEGIN log event
 begin;
 select * from t2 for update; # hold lock
 start slave;
@@ -107,7 +107,7 @@
 # This is really copy-paste of 2) of above
 stop slave;
 delete from t3;
-change master to master_log_pos=544;
+change master to master_log_pos=547;
 begin;
 select * from t2 for update;
 start slave;

--- 1.14/mysql-test/t/rpl_switch_stm_row_mixed.test	2007-02-20 21:37:07 +01:00
+++ 1.15/mysql-test/t/rpl_switch_stm_row_mixed.test	2007-02-20 21:37:07 +01:00
@@ -519,7 +519,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
@@ -536,7 +536,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.8/mysql-test/t/user_var-binlog.test	2007-02-20 21:37:07 +01:00
+++ 1.9/mysql-test/t/user_var-binlog.test	2007-02-20 21:37:07 +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.8/mysql-test/r/rpl_row_create_table.result	2007-02-20 21:37:07 +01:00
+++ 1.9/mysql-test/r/rpl_row_create_table.result	2007-02-20 21:37:07 +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 1118;
+SHOW BINLOG EVENTS FROM 959;
 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.5/mysql-test/r/rpl_row_delayed_ins.result	2007-02-20 21:37:07 +01:00
+++ 1.6/mysql-test/r/rpl_row_delayed_ins.result	2007-02-20 21:37:07 +01:00
@@ -5,9 +5,7 @@
 drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
 start slave;
 create table t1(a int not null primary key) engine=myisam;
-insert delayed into t1 values (1);
-insert delayed into t1 values (2);
-insert delayed into t1 values (3);
+insert delayed into t1 values (1),(2),(3);
 flush tables;
 SELECT * FROM t1 ORDER BY a;
 a
@@ -16,15 +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	368	table_id: # flags: STMT_END_F
-master-bin.000001	368	Table_map	1	407	table_id: # (test.t1)
-master-bin.000001	407	Write_rows	1	441	table_id: # flags: STMT_END_F
-master-bin.000001	441	Query	1	516	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.5/mysql-test/r/rpl_row_max_relay_size.result	2007-02-20 21:37:07 +01:00
+++ 1.6/mysql-test/r/rpl_row_max_relay_size.result	2007-02-20 21:37:07 +01:00
@@ -30,7 +30,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
@@ -45,7 +45,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	
@@ -73,7 +73,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
@@ -88,7 +88,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	
@@ -116,7 +116,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
@@ -131,7 +131,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	
@@ -197,7 +197,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
@@ -212,7 +212,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	
@@ -236,7 +236,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
@@ -251,7 +251,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	
@@ -266,7 +266,7 @@
 flush logs;
 show master status;
 File	master-bin.000002
-Position	102
+Position	105
 Binlog_Do_DB	<Binlog_Ignore_DB>
 Binlog_Ignore_DB	
 set global max_binlog_size= @my_max_binlog_size;

--- 1.8/mysql-test/t/rpl_row_create_table.test	2007-02-20 21:37:07 +01:00
+++ 1.9/mysql-test/t/rpl_row_create_table.test	2007-02-20 21:37:07 +01:00
@@ -36,7 +36,7 @@
 CREATE TABLE t4 (a INT, b INT) ENGINE=Merge CHARSET=utf8;
 --replace_column 1 # 4 # 5 #
 --replace_regex /\/\* xid=.* \*\//\/* XID *\// /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
@@ -71,7 +71,7 @@
 CREATE TABLE t7 (UNIQUE(b)) SELECT a,b FROM tt3;
 # Shouldn't be written to the binary log
 --replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/
-SHOW BINLOG EVENTS FROM 1118;
+SHOW BINLOG EVENTS FROM 959;
 
 # Test that INSERT-SELECT works the same way as for SBR.
 CREATE TABLE t7 (a INT, b INT UNIQUE);
@@ -80,7 +80,7 @@
 SELECT * FROM t7 ORDER BY a,b;
 # Should be written to the binary log
 --replace_regex /\/\* xid=.* \*\//\/* XID *\// /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;
 
@@ -91,7 +91,7 @@
 INSERT INTO t7 SELECT a,b FROM tt4;
 ROLLBACK;
 --replace_regex /\/\* xid=.* \*\//\/* XID *\// /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;
@@ -106,7 +106,7 @@
 --query_vertical SHOW CREATE TABLE t8
 --query_vertical SHOW CREATE TABLE t9
 --replace_regex /\/\* xid=.* \*\//\/* XID *\// /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.12/mysql-test/r/rpl_row_basic_11bugs.result	2007-02-20 21:37:07 +01:00
+++ 1.13/mysql-test/r/rpl_row_basic_11bugs.result	2007-02-20 21:37:07 +01:00
@@ -24,11 +24,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
@@ -54,10 +54,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;
@@ -118,3 +118,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.11/mysql-test/t/rpl_row_basic_11bugs.test	2007-02-20 21:37:07 +01:00
+++ 1.12/mysql-test/t/rpl_row_basic_11bugs.test	2007-02-20 21:37:07 +01:00
@@ -25,7 +25,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;
@@ -113,3 +113,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;

--- 1.41/mysql-test/r/rpl_000015.result	2007-02-20 21:37:07 +01:00
+++ 1.42/mysql-test/r/rpl_000015.result	2007-02-20 21:37:07 +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.41/mysql-test/extra/rpl_tests/rpl_log.test	2007-02-20 21:37:07 +01:00
+++ 1.42/mysql-test/extra/rpl_tests/rpl_log.test	2007-02-20 21:37:07 +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.2416)Mats Kindahl20 Feb