Skip to content

Commit

Permalink
MDEV-31214 Recursive CTE execution is interrupted without errors or w…
Browse files Browse the repository at this point in the history
…arnings
  • Loading branch information
vuvova committed Jul 3, 2023
1 parent 22e5a5f commit 5c81c50
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 0 deletions.
4 changes: 4 additions & 0 deletions mysql-test/main/cte_recursive.result
Expand Up @@ -1214,6 +1214,8 @@ generation name
2 Grandma Ann
2 Grandma Sally
2 Grandpa Ben
Warnings:
Warning 1931 Query execution was interrupted. The query exceeded max_recursive_iterations = 1. The query result may be incomplete
# query with recursive tables using key access
alter table folks add primary key (id);
explain
Expand Down Expand Up @@ -2592,6 +2594,8 @@ select * from applied_modules;
m
m1
m2
Warnings:
Warning 1931 Query execution was interrupted. The query exceeded max_recursive_iterations = 2. The query result may be incomplete
drop table value_nodes, module_nodes, module_arguments, module_results;
#
# mdev-12519: recursive references in subqueries
Expand Down
7 changes: 7 additions & 0 deletions sql/sql_derived.cc
Expand Up @@ -1142,7 +1142,14 @@ bool TABLE_LIST::fill_recursive(THD *thd)
while (!rc && !with->all_are_stabilized())
{
if (with->level > thd->variables.max_recursive_iterations)
{
push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN,
ER_QUERY_RESULT_INCOMPLETE,
ER_THD(thd, ER_QUERY_RESULT_INCOMPLETE),
"max_recursive_iterations =",
(ulonglong)thd->variables.max_recursive_iterations);
break;
}
with->prepare_for_next_iteration();
rc= unit->exec_recursive();
}
Expand Down

0 comments on commit 5c81c50

Please sign in to comment.