mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge mysql.com:/usr/local/home/marty/MySQL/mysql-4.1
into mysql.com:/usr/local/home/marty/MySQL/mysql-5.0
This commit is contained in:
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -580,7 +580,7 @@ private:
|
||||
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);
|
||||
|
Reference in New Issue
Block a user