OSDN Git Service

Generate distinct error messages for trigger function not found
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 20 May 1999 14:39:49 +0000 (14:39 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 20 May 1999 14:39:49 +0000 (14:39 +0000)
and trigger function found but returns wrong type.

src/backend/commands/trigger.c

index 7299a76..09b7fdc 100644 (file)
@@ -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;