diff --git a/contrib/lo/lo.c b/contrib/lo/lo.c index 9dbbbcebd23..757758fe7f8 100644 --- a/contrib/lo/lo.c +++ b/contrib/lo/lo.c @@ -40,7 +40,12 @@ lo_manage(PG_FUNCTION_ARGS) HeapTuple trigtuple; /* The original value of tuple */ if (!CALLED_AS_TRIGGER(fcinfo)) /* internal error */ - elog(ERROR, "not fired by trigger manager"); + elog(ERROR, "%s: not fired by trigger manager", + trigdata->tg_trigger->tgname); + + if (!TRIGGER_FIRED_FOR_ROW(trigdata->tg_event)) /* internal error */ + elog(ERROR, "%s: must be fired for row", + trigdata->tg_trigger->tgname); /* * Fetch some values from trigdata @@ -50,6 +55,10 @@ lo_manage(PG_FUNCTION_ARGS) tupdesc = trigdata->tg_relation->rd_att; args = trigdata->tg_trigger->tgargs; + if (args == NULL) /* internal error */ + elog(ERROR, "%s: no column name provided in the trigger definition", + trigdata->tg_trigger->tgname); + /* tuple to return to Executor */ if (TRIGGER_FIRED_BY_UPDATE(trigdata->tg_event)) rettuple = newtuple; @@ -63,7 +72,8 @@ lo_manage(PG_FUNCTION_ARGS) attnum = SPI_fnumber(tupdesc, args[0]); if (attnum <= 0) - elog(ERROR, "column \"%s\" does not exist", args[0]); + elog(ERROR, "%s: column \"%s\" does not exist", + trigdata->tg_trigger->tgname, args[0]); /* * Handle updates