diff --git a/contrib/ltree/lquery_op.c b/contrib/ltree/lquery_op.c index b6d2deb1af4..15dab680c8b 100644 --- a/contrib/ltree/lquery_op.c +++ b/contrib/ltree/lquery_op.c @@ -8,6 +8,7 @@ #include #include "catalog/pg_collation.h" +#include "miscadmin.h" #include "utils/formatting.h" #include "ltree.h" @@ -165,6 +166,12 @@ checkCond(lquery_level *curq, int query_numlevel, ltree_level *curt, int tree_nu lquery_level *prevq = NULL; ltree_level *prevt = NULL; + /* Since this function recurses, it could be driven to stack overflow */ + check_stack_depth(); + + /* Pathological patterns could take awhile, too */ + CHECK_FOR_INTERRUPTS(); + if (SomeStack.muse) { high_pos = SomeStack.high_pos;