From d5c0495cd4b9c78fdfc00961f4ae14c39f877f59 Mon Sep 17 00:00:00 2001
From: Heikki Linnakangas <heikki.linnakangas@iki.fi>
Date: Tue, 14 Jul 2015 19:50:18 +0300
Subject: [PATCH] Fix event trigger support for the new ALTER OPERATOR command.

Also, the lock on pg_operator should not be released until end of
transaction.
---
 src/backend/commands/operatorcmds.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/backend/commands/operatorcmds.c b/src/backend/commands/operatorcmds.c
index 32065185ea4..0bb9743ea36 100644
--- a/src/backend/commands/operatorcmds.c
+++ b/src/backend/commands/operatorcmds.c
@@ -38,6 +38,7 @@
 #include "access/htup_details.h"
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
+#include "catalog/objectaccess.h"
 #include "catalog/pg_operator.h"
 #include "catalog/pg_type.h"
 #include "commands/alter.h"
@@ -499,7 +500,11 @@ AlterOperator(AlterOperatorStmt *stmt)
 	simple_heap_update(catalog, &tup->t_self, tup);
 	CatalogUpdateIndexes(catalog, tup);
 
-	heap_close(catalog, RowExclusiveLock);
+	InvokeObjectPostAlterHook(OperatorRelationId, oprId, 0);
+
+	ObjectAddressSet(address, OperatorRelationId, oprId);
+
+	heap_close(catalog, NoLock);
 
 	return address;
 }
-- 
GitLab