diff options
author | Igor Babaev <igor@askmonty.org> | 2018-02-22 10:08:49 -0800 |
---|---|---|
committer | Igor Babaev <igor@askmonty.org> | 2018-02-22 10:26:56 -0800 |
commit | 907b236112d95681cb09be98197b97bbd2b525dd (patch) | |
tree | 79eee71c3ea4bb29a7f8e0168f31b922693a798f /sql/sql_derived.cc | |
parent | 988ec800edb3dd9238b6f3948157d21bdb0c083b (diff) | |
download | mariadb-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.cc | 14 |
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 |