diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/commands/event_trigger.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/backend/commands/event_trigger.c b/src/backend/commands/event_trigger.c index dc40de2c024..18b37537c0f 100644 --- a/src/backend/commands/event_trigger.c +++ b/src/backend/commands/event_trigger.c @@ -551,7 +551,7 @@ filter_event_trigger(const char **tag, EventTriggerCacheItem *item) } /* Filter by tags, if any were specified. */ - if (item->ntags != 0 && bsearch(&tag, item->tag, + if (item->ntags != 0 && bsearch(tag, item->tag, item->ntags, sizeof(char *), pg_qsort_strcmp) == NULL) return false; @@ -752,6 +752,9 @@ EventTriggerInvoke(List *fn_oid_list, EventTriggerData *trigdata) ListCell *lc; bool first = true; + /* Guard against stack overflow due to recursive event trigger */ + check_stack_depth(); + /* * Let's evaluate event triggers in their own memory context, so * that any leaks get cleaned up promptly. |