diff options
author | kaa@polly.local <> | 2007-04-27 12:42:15 +0400 |
---|---|---|
committer | kaa@polly.local <> | 2007-04-27 12:42:15 +0400 |
commit | d7d0337482a3b07431766f30fa9035b97e385950 (patch) | |
tree | 678e2b08d413fc216e80c2b8b8c7f369122aeb34 /sql/sql_update.cc | |
parent | 66b0e9ca7a7883fbc252c5ca17696fdd570a3b09 (diff) | |
parent | 9a99aa81552178b2d7995ea41e0878dc59061c9b (diff) | |
download | mariadb-git-d7d0337482a3b07431766f30fa9035b97e385950.tar.gz |
Merge polly.local:/home/kaa/src/maint/bug22364/my50-bug22364
into polly.local:/home/kaa/src/maint/bug22364/my51-bug22364
Diffstat (limited to 'sql/sql_update.cc')
-rw-r--r-- | sql/sql_update.cc | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/sql/sql_update.cc b/sql/sql_update.cc index 0b4632edfbe..717bc314812 100644 --- a/sql/sql_update.cc +++ b/sql/sql_update.cc @@ -1452,18 +1452,18 @@ bool multi_update::send_data(List<Item> ¬_used_values) 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->ha_write_row(tmp_table->record[0]))) + error= tmp_table->file->ha_write_row(tmp_table->record[0]); + if (error != HA_ERR_FOUND_DUPP_KEY && error != HA_ERR_FOUND_DUPP_UNIQUE) { - if (tmp_table->file->is_fatal_error(error, HA_CHECK_DUP) && + if (error && 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 + tmp_table_param + offset, error, 1)) + { + do_update= 0; + DBUG_RETURN(1); // Not a table_is_full error + } found++; + } } } DBUG_RETURN(0); |