summaryrefslogtreecommitdiff
path: root/sql/sql_update.cc
diff options
context:
space:
mode:
authorevgen@moonbone.local <>2005-12-02 19:42:14 +0300
committerevgen@moonbone.local <>2005-12-02 19:42:14 +0300
commit00b902b0651176ea457b608b3c8b2cba71145059 (patch)
treea6023835c30a5415c611dcc261d8e62e186230a2 /sql/sql_update.cc
parent035c24beeb8ecbd061c4ffdca0ab424251b8c77f (diff)
parent151350536c231844ab10d5c07227c12823f4737a (diff)
downloadmariadb-git-00b902b0651176ea457b608b3c8b2cba71145059.tar.gz
Manually merged
Diffstat (limited to 'sql/sql_update.cc')
-rw-r--r--sql/sql_update.cc13
1 files changed, 7 insertions, 6 deletions
diff --git a/sql/sql_update.cc b/sql/sql_update.cc
index 50f8e35a9e9..94c00036540 100644
--- a/sql/sql_update.cc
+++ b/sql/sql_update.cc
@@ -1290,22 +1290,23 @@ bool multi_update::send_data(List<Item> &not_used_values)
int error;
TABLE *tmp_table= tmp_tables[offset];
fill_record(thd, tmp_table->field+1, *values_for_table[offset], 1);
- found++;
/* Store pointer to row */
memcpy((char*) tmp_table->field[0]->ptr,
(char*) table->file->ref, table->file->ref_length);
/* Write row, ignoring duplicated updates to a row */
- if ((error= tmp_table->file->write_row(tmp_table->record[0])) &&
- (error != HA_ERR_FOUND_DUPP_KEY &&
- error != HA_ERR_FOUND_DUPP_UNIQUE))
+ if (error= tmp_table->file->write_row(tmp_table->record[0]))
{
- if (create_myisam_from_heap(thd, tmp_table, tmp_table_param + offset,
- error, 1))
+ if (error != HA_ERR_FOUND_DUPP_KEY &&
+ error != HA_ERR_FOUND_DUPP_UNIQUE &&
+ create_myisam_from_heap(thd, tmp_table,
+ tmp_table_param + offset, error, 1))
{
do_update=0;
DBUG_RETURN(1); // Not a table_is_full error
}
}
+ else
+ found++;
}
}
DBUG_RETURN(0);