1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

MDEV-31214 Recursive CTE execution is interrupted without errors or warnings

This commit is contained in:
Sergei Golubchik
2023-06-30 21:03:29 +02:00
parent 22e5a5ff6e
commit 5c81c50f10
2 changed files with 11 additions and 0 deletions

View File

@ -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
@ -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

View File

@ -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();
}