summaryrefslogtreecommitdiff
path: root/sql/sql_derived.cc
diff options
context:
space:
mode:
authorIgor Babaev <igor@askmonty.org>2018-02-22 10:08:49 -0800
committerIgor Babaev <igor@askmonty.org>2018-02-22 10:26:56 -0800
commit907b236112d95681cb09be98197b97bbd2b525dd (patch)
tree79eee71c3ea4bb29a7f8e0168f31b922693a798f /sql/sql_derived.cc
parent988ec800edb3dd9238b6f3948157d21bdb0c083b (diff)
downloadmariadb-git-907b236112d95681cb09be98197b97bbd2b525dd.tar.gz
Fixed MDEV-14883 Usage of EXCEPT and INTERSECT in recursive CTE
is not supported Allowed to use recursive references in derived tables. As a result usage of recursive references in operands of INTERSECT / EXCEPT is now supported.
Diffstat (limited to 'sql/sql_derived.cc')
-rw-r--r--sql/sql_derived.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/sql/sql_derived.cc b/sql/sql_derived.cc
index be5058b7c63..ab66384c6cb 100644
--- a/sql/sql_derived.cc
+++ b/sql/sql_derived.cc
@@ -1010,6 +1010,20 @@ bool mysql_derived_create(THD *thd, LEX *lex, TABLE_LIST *derived)
}
+void TABLE_LIST::register_as_derived_with_rec_ref(With_element *rec_elem)
+{
+ rec_elem->derived_with_rec_ref.link_in_list(this, &this->next_with_rec_ref);
+ is_derived_with_recursive_reference= true;
+ get_unit()->uncacheable|= UNCACHEABLE_DEPENDENT;
+}
+
+
+bool TABLE_LIST::is_nonrecursive_derived_with_rec_ref()
+{
+ return is_derived_with_recursive_reference;
+}
+
+
/**
@brief
Fill the recursive with table