postgres.git / summary / log / commit / refs
commit 41a300ae3df5015d0779728ee0b4adb866953d31
Author: Peter Eisentraut <peter@eisentraut.org>
Date: Fri Aug 14 12:53:50 2026 +0000
Make generate_queries_for_path_pattern_recurse() interruptible
In case of a very long path pattern with each element pattern being
resolved to many graph elements
generate_queries_for_path_pattern_recurse() may take very long time to
generate all the possible graph paths. Make
generate_queries_for_path_pattern_recurse() interruptible so that a
user may be able to cancel such a query if required and the interrupts
are processed in timely manner.
Author: Satyanarayana Narlapuram <satyanarlapuram@gmail.com>
Reviewed-by: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
Discussion: https://www.postgresql.org/message-id/flat/CAHg%2BQDfDwcM4%3DDSiAV6Ly89YQ5EcMhzO1-9x%3DmGG1WJzODcAig%40mail.gmail.com
src/backend/rewrite/rewriteGraphTable.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/backend/rewrite/rewriteGraphTable.c b/src/backend/rewrite/rewriteGraphTable.c
index cdb1f4c0dca..0eaf28b3de5 100644
--- a/src/backend/rewrite/rewriteGraphTable.c
+++ b/src/backend/rewrite/rewriteGraphTable.c
@@ -367,6 +367,8 @@ generate_queries_for_path_pattern_recurse(RangeTblEntry *rte, List *pathqueries,
foreach_ptr(struct path_element, pe, path_elems)
{
+ CHECK_FOR_INTERRUPTS();
+
/* Update current path being built with current element. */
cur_path = lappend(cur_path, pe);
[parent: f3a116a26ff0]