diff options
author | unknown <kaa@polly.local> | 2007-04-26 20:51:02 +0400 |
---|---|---|
committer | unknown <kaa@polly.local> | 2007-04-26 20:51:02 +0400 |
commit | 8128a049f0d8fafdc9d968b50d1ffcc94d4fca5f (patch) | |
tree | fafc3f23469fd0c6f6f4414e688cf647005ba1ee /sql/sql_update.cc | |
parent | 4afccbd74a4873fa48e1e408594982838e0d0cfc (diff) | |
parent | 4e582a303b2fb3f1644778c518e308c544bb8976 (diff) | |
download | mariadb-git-8128a049f0d8fafdc9d968b50d1ffcc94d4fca5f.tar.gz |
Merge polly.local:/home/kaa/src/maint/bug22364/my50-bug22364
into polly.local:/home/kaa/src/maint/mysql-5.0-maint
sql/sql_update.cc:
Auto merged
Diffstat (limited to 'sql/sql_update.cc')
-rw-r--r-- | sql/sql_update.cc | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/sql/sql_update.cc b/sql/sql_update.cc index 6f6c4538040..e17c71ae541 100644 --- a/sql/sql_update.cc +++ b/sql/sql_update.cc @@ -1354,19 +1354,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->write_row(tmp_table->record[0]))) + error= tmp_table->file->write_row(tmp_table->record[0]); + if (error != HA_ERR_FOUND_DUPP_KEY && error != HA_ERR_FOUND_DUPP_UNIQUE) { - if (error != HA_ERR_FOUND_DUPP_KEY && - error != HA_ERR_FOUND_DUPP_UNIQUE && + 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); |