summaryrefslogtreecommitdiff
path: root/sql/sql_union.cc
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2017-11-30 08:16:37 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2017-11-30 08:16:37 +0200
commit7cb3520c0632ad912b309489ad86a90f9fc9bd0b (patch)
treeff8e6b8fdf5e9cacdfe914790e480bc3bad2ad85 /sql/sql_union.cc
parent51b30586ea999744de6a15146257f2976825781e (diff)
parent5b697c5a23ed7322b5b746b61e3ec66b510ca134 (diff)
downloadmariadb-git-7cb3520c0632ad912b309489ad86a90f9fc9bd0b.tar.gz
Merge bb-10.2-ext into 10.3
Diffstat (limited to 'sql/sql_union.cc')
-rw-r--r--sql/sql_union.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/sql/sql_union.cc b/sql/sql_union.cc
index 40f4f984e0a..d987636a2ac 100644
--- a/sql/sql_union.cc
+++ b/sql/sql_union.cc
@@ -303,7 +303,8 @@ int select_union_recursive::send_data(List<Item> &values)
{
int rc= select_unit::send_data(values);
- if (write_err != HA_ERR_FOUND_DUPP_KEY &&
+ if (rc == 0 &&
+ write_err != HA_ERR_FOUND_DUPP_KEY &&
write_err != HA_ERR_FOUND_DUPP_UNIQUE)
{
int err;
@@ -1360,6 +1361,9 @@ bool st_select_lex_unit::exec()
if (saved_error)
DBUG_RETURN(saved_error);
+ if (union_result)
+ union_result->init();
+
if (uncacheable || !item || !item->assigned() || describe)
{
if (!fake_select_lex && !(with_element && with_element->is_recursive))