Commit cdf8050b authored by unknown's avatar unknown
Browse files

Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.1-new-rpl

into  romeo.(none):/home/bkroot/mysql-5.1-new-rpl


sql/log_event.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
parents 7466b750 8de1783a
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -5375,7 +5375,9 @@ unpack_row(RELAY_LOG_INFO *rli,

    if (bitmap_is_set(cols, field_ptr -  begin_ptr))
    {
      ptr= f->unpack(f->ptr + offset, ptr);
      f->move_field_offset(offset);
      ptr= f->unpack(f->ptr, ptr);
      f->move_field_offset(-offset);
      /* Field...::unpack() cannot return 0 */
      DBUG_ASSERT(ptr != NULL);
    }
@@ -6675,6 +6677,7 @@ static int find_and_fetch_row(TABLE *table, byte *key)
        table->s->null_bytes > 0 ? table->s->null_bytes - 1 : 0;
      table->record[1][pos]= 0xFF;
      error= table->file->rnd_next(table->record[1]);

      switch (error)
      {
      case 0:
@@ -6956,6 +6959,10 @@ int Update_rows_log_event::do_prepare_row(THD *thd, RELAY_LOG_INFO *rli,
                    row_start, &m_cols, row_end, &m_master_reclength,
                    table->write_set, UPDATE_ROWS_EVENT);

  DBUG_DUMP("record[0]", table->record[0], table->s->reclength);
  DBUG_DUMP("m_after_image", m_after_image, table->s->reclength);


  /*
    If we will access rows using the random access method, m_key will
    be set to NULL, so we do not need to make a key copy in that case.
+11 −2
Original line number Diff line number Diff line
@@ -2530,7 +2530,9 @@ my_size_t THD::pack_row(TABLE *table, MY_BITMAP const* cols, byte *row_data,
    {
      my_ptrdiff_t const offset=
        field->is_null(rec_offset) ? def_offset : rec_offset;
      ptr= (byte*)field->pack((char *) ptr, field->ptr + offset);
      field->move_field_offset(offset);
      ptr= (byte*)field->pack((char *) ptr, field->ptr);
      field->move_field_offset(-offset);
    }
  }
  return (static_cast<my_size_t>(ptr - row_data));
@@ -2615,12 +2617,19 @@ int THD::binlog_update_row(TABLE* table, bool is_trans,
  my_size_t const after_size= pack_row(table, cols, after_row, 
                                       after_record);
  
  DBUG_DUMP("before_record", before_record, table->s->reclength);
  DBUG_DUMP("after_record", after_record, table->s->reclength);
  DBUG_DUMP("before_row", before_row, before_size);
  DBUG_DUMP("after_row", after_row, after_size);

  Rows_log_event* const ev=
    binlog_prepare_pending_rows_event(table, server_id, cols, colcnt,
				      before_size + after_size, is_trans,
				      static_cast<Update_rows_log_event*>(0));

  error= (unlikely(!ev)) || ev->add_row_data(before_row, before_size) ||
  error=
    unlikely(!ev) ||
    ev->add_row_data(before_row, before_size) ||
    ev->add_row_data(after_row, after_size);

  if (!table->write_row_record)