From 33773af95bb110e9bfe805370a8b236df03d98fb Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Thu, 20 May 1999 14:39:49 +0000
Subject: [PATCH] Generate distinct error messages for trigger function not
 found and trigger function found but returns wrong type.

---
 src/backend/commands/trigger.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c
index 7299a7660a6..09b7fdcbc3d 100644
--- a/src/backend/commands/trigger.c
+++ b/src/backend/commands/trigger.c
@@ -138,10 +138,12 @@ CreateTrigger(CreateTrigStmt *stmt)
 								PointerGetDatum(fargtypes),
 								0);
 	if (!HeapTupleIsValid(tuple) ||
-		((Form_pg_proc) GETSTRUCT(tuple))->prorettype != 0 ||
 		((Form_pg_proc) GETSTRUCT(tuple))->pronargs != 0)
-		elog(ERROR, "CreateTrigger: function %s () does not exist", stmt->funcname);
-
+		elog(ERROR, "CreateTrigger: function %s() does not exist",
+			 stmt->funcname);
+	if (((Form_pg_proc) GETSTRUCT(tuple))->prorettype != 0)
+		elog(ERROR, "CreateTrigger: function %s() must return OPAQUE",
+			 stmt->funcname);
 	if (((Form_pg_proc) GETSTRUCT(tuple))->prolang != ClanguageId)
 	{
 		HeapTuple	langTup;
-- 
GitLab