diff --git a/src/backend/commands/event_trigger.c b/src/backend/commands/event_trigger.c index dc40de2c02..18b37537c0 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.