Commit a58fec26 authored by unknown's avatar unknown
Browse files

Merge mysql.com:/usr/local/home/marty/MySQL/mysql-4.1

into  mysql.com:/usr/local/home/marty/MySQL/mysql-5.0


client/mysqldump.c:
  Auto merged
sql/ha_ndbcluster.h:
  Auto merged
sql/ha_ndbcluster.cc:
  Merge
parents 2c447361 6ef62738
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -2561,6 +2561,7 @@ static int do_show_master_status(MYSQL *mysql_con)
    row = mysql_fetch_row(master);
    if (row && row[0] && row[1])
    {
      /* SHOW MASTER STATUS reports file and position */
      if (opt_comments)
        fprintf(md_result_file,
                "\n--\n-- Position to start replication or point-in-time "
@@ -2570,6 +2571,14 @@ static int do_show_master_status(MYSQL *mysql_con)
              comment_prefix, row[0], row[1]); 
      check_io(md_result_file);
    }
    else if (!ignore_errors)
    {
      /* SHOW MASTER STATUS reports nothing and --force is not enabled */
      my_printf_error(0, "Error: Binlogging on server not active", 
		      MYF(0), mysql_error(mysql_con));
      mysql_free_result(master);
      return 1;
    }
    mysql_free_result(master);
  }
  return 0;
+10 −5
Original line number Diff line number Diff line
@@ -1249,7 +1249,7 @@ int ha_ndbcluster::set_primary_key(NdbOperation *op, const byte *key)
}


int ha_ndbcluster::set_primary_key_from_record(NdbOperation *op, const byte *old_data)
int ha_ndbcluster::set_primary_key_from_record(NdbOperation *op, const byte *record)
{
  KEY* key_info= table->key_info + table->s->primary_key;
  KEY_PART_INFO* key_part= key_info->key_part;
@@ -1260,7 +1260,7 @@ int ha_ndbcluster::set_primary_key_from_record(NdbOperation *op, const byte *old
  {
    Field* field= key_part->field;
    if (set_ndb_key(op, field, 
                    key_part->fieldnr-1, old_data+key_part->offset))
		    key_part->fieldnr-1, record+key_part->offset))
      ERR_RETURN(op->getNdbError());
  }
  DBUG_RETURN(0);
@@ -2102,7 +2102,7 @@ int ha_ndbcluster::update_row(const byte *old_data, byte *new_data)
  if ((table->s->primary_key != MAX_KEY) &&
      (key_cmp(table->s->primary_key, old_data, new_data)))
  {
    int read_res, insert_res, delete_res;
    int read_res, insert_res, delete_res, undo_res;

    DBUG_PRINT("info", ("primary key update, doing pk read+delete+insert"));
    // Get all old fields, since we optimize away fields not in query
@@ -2131,9 +2131,14 @@ int ha_ndbcluster::update_row(const byte *old_data, byte *new_data)
      DBUG_PRINT("info", ("insert failed"));
      if (trans->commitStatus() == NdbConnection::Started)
      {
      // Undo write_row(new_data)
        // Undo delete_row(old_data)
        m_primary_key_update= TRUE;
        insert_res= write_row((byte *)old_data);
        undo_res= write_row((byte *)old_data);
        if (undo_res)
          push_warning(current_thd, 
                       MYSQL_ERROR::WARN_LEVEL_WARN, 
                       undo_res, 
                       "NDB failed undoing delete at primary key update");
        m_primary_key_update= FALSE;
      }
      DBUG_RETURN(insert_res);
+1 −1
Original line number Diff line number Diff line
@@ -580,7 +580,7 @@ static void set_tabname(const char *pathname, char *tabname);
  friend int g_get_ndb_blobs_value(NdbBlob *ndb_blob, void *arg);
  int get_ndb_blobs_value(NdbBlob *last_ndb_blob);
  int set_primary_key(NdbOperation *op, const byte *key);
  int set_primary_key_from_record(NdbOperation *op, const byte *old_data);
  int set_primary_key_from_record(NdbOperation *op, const byte *record);
  int set_bounds(NdbIndexScanOperation*, const key_range *keys[2], uint= 0);
  int key_cmp(uint keynr, const byte * old_row, const byte * new_row);
  int set_index_key(NdbOperation *, const KEY *key_info, const byte *key_ptr);