Loading sql/handler.h +5 −3 Original line number Diff line number Diff line Loading @@ -977,6 +977,9 @@ class handler :public Sql_alloc ignorable than others. E.g. the partition handler can get inserts into a range where there is no partition and this is an ignorable error. HA_ERR_FOUND_DUPP_UNIQUE is a special case in MyISAM that means the same thing as HA_ERR_FOUND_DUPP_KEY but can in some cases lead to a slightly different error message. */ #define HA_CHECK_DUPP_KEY 1 #define HA_CHECK_DUPP_UNIQUE 2 Loading @@ -985,9 +988,8 @@ class handler :public Sql_alloc { if (!error || ((flags & HA_CHECK_DUPP_KEY) && error == HA_ERR_FOUND_DUPP_KEY) || ((flags & HA_CHECK_DUPP_UNIQUE) && error == HA_ERR_FOUND_DUPP_UNIQUE)) (error == HA_ERR_FOUND_DUPP_KEY || error == HA_ERR_FOUND_DUPP_UNIQUE))) return FALSE; return TRUE; } Loading sql/item_sum.cc +1 −2 Original line number Diff line number Diff line Loading @@ -2663,8 +2663,7 @@ bool Item_sum_count_distinct::add() return tree->unique_add(table->record[0] + table->s->null_bytes); } if ((error= table->file->ha_write_row(table->record[0])) && error != HA_ERR_FOUND_DUPP_KEY && error != HA_ERR_FOUND_DUPP_UNIQUE) table->file->cannot_ignore_error(error, HA_CHECK_DUPP)) return TRUE; return FALSE; } Loading sql/sql_select.cc +4 −5 Original line number Diff line number Diff line Loading @@ -9354,8 +9354,8 @@ bool create_myisam_from_heap(THD *thd, TABLE *table, TMP_TABLE_PARAM *param, /* copy row that filled HEAP table */ if ((write_err=new_table.file->write_row(table->record[0]))) { if (write_err != HA_ERR_FOUND_DUPP_KEY && write_err != HA_ERR_FOUND_DUPP_UNIQUE || !ignore_last_dupp_key_error) if (new_table.file->cannot_ignore_error(write_err, HA_CHECK_DUPP) || !ignore_last_dupp_key_error) goto err; } Loading Loading @@ -10777,8 +10777,7 @@ end_write(JOIN *join, JOIN_TAB *join_tab __attribute__((unused)), join->found_records++; if ((error=table->file->write_row(table->record[0]))) { if (error == HA_ERR_FOUND_DUPP_KEY || error == HA_ERR_FOUND_DUPP_UNIQUE) if (table->file->cannot_ignore_error(error, HA_CHECK_DUPP)) goto end; if (create_myisam_from_heap(join->thd, table, &join->tmp_table_param, error,1)) Loading Loading
sql/handler.h +5 −3 Original line number Diff line number Diff line Loading @@ -977,6 +977,9 @@ class handler :public Sql_alloc ignorable than others. E.g. the partition handler can get inserts into a range where there is no partition and this is an ignorable error. HA_ERR_FOUND_DUPP_UNIQUE is a special case in MyISAM that means the same thing as HA_ERR_FOUND_DUPP_KEY but can in some cases lead to a slightly different error message. */ #define HA_CHECK_DUPP_KEY 1 #define HA_CHECK_DUPP_UNIQUE 2 Loading @@ -985,9 +988,8 @@ class handler :public Sql_alloc { if (!error || ((flags & HA_CHECK_DUPP_KEY) && error == HA_ERR_FOUND_DUPP_KEY) || ((flags & HA_CHECK_DUPP_UNIQUE) && error == HA_ERR_FOUND_DUPP_UNIQUE)) (error == HA_ERR_FOUND_DUPP_KEY || error == HA_ERR_FOUND_DUPP_UNIQUE))) return FALSE; return TRUE; } Loading
sql/item_sum.cc +1 −2 Original line number Diff line number Diff line Loading @@ -2663,8 +2663,7 @@ bool Item_sum_count_distinct::add() return tree->unique_add(table->record[0] + table->s->null_bytes); } if ((error= table->file->ha_write_row(table->record[0])) && error != HA_ERR_FOUND_DUPP_KEY && error != HA_ERR_FOUND_DUPP_UNIQUE) table->file->cannot_ignore_error(error, HA_CHECK_DUPP)) return TRUE; return FALSE; } Loading
sql/sql_select.cc +4 −5 Original line number Diff line number Diff line Loading @@ -9354,8 +9354,8 @@ bool create_myisam_from_heap(THD *thd, TABLE *table, TMP_TABLE_PARAM *param, /* copy row that filled HEAP table */ if ((write_err=new_table.file->write_row(table->record[0]))) { if (write_err != HA_ERR_FOUND_DUPP_KEY && write_err != HA_ERR_FOUND_DUPP_UNIQUE || !ignore_last_dupp_key_error) if (new_table.file->cannot_ignore_error(write_err, HA_CHECK_DUPP) || !ignore_last_dupp_key_error) goto err; } Loading Loading @@ -10777,8 +10777,7 @@ end_write(JOIN *join, JOIN_TAB *join_tab __attribute__((unused)), join->found_records++; if ((error=table->file->write_row(table->record[0]))) { if (error == HA_ERR_FOUND_DUPP_KEY || error == HA_ERR_FOUND_DUPP_UNIQUE) if (table->file->cannot_ignore_error(error, HA_CHECK_DUPP)) goto end; if (create_myisam_from_heap(join->thd, table, &join->tmp_table_param, error,1)) Loading