From 907b236112d95681cb09be98197b97bbd2b525dd Mon Sep 17 00:00:00 2001 From: Igor Babaev Date: Thu, 22 Feb 2018 10:08:49 -0800 Subject: 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. --- sql/sql_derived.cc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'sql/sql_derived.cc') 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 -- cgit v1.2.1