summaryrefslogtreecommitdiff
path: root/sql/sql_class.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/sql_class.cc')
-rw-r--r--sql/sql_class.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/sql/sql_class.cc b/sql/sql_class.cc
index 62651145481..a832deccd57 100644
--- a/sql/sql_class.cc
+++ b/sql/sql_class.cc
@@ -3056,6 +3056,13 @@ bool select_materialize_with_stats::send_data(List<Item> &items)
Column_statistics *cur_col_stat= col_stat;
uint nulls_in_row= 0;
+ if (select_union::send_data(items))
+ return 1;
+ /* Skip duplicate rows. */
+ if (write_err == HA_ERR_FOUND_DUPP_KEY ||
+ write_err == HA_ERR_FOUND_DUPP_UNIQUE)
+ return 0;
+
++count_rows;
while ((cur_item= item_it++))
@@ -3073,7 +3080,7 @@ bool select_materialize_with_stats::send_data(List<Item> &items)
if (nulls_in_row > max_nulls_in_row)
max_nulls_in_row= nulls_in_row;
- return select_union::send_data(items);
+ return 0;
}