39 elog(
ERROR,
"insert_username: not fired by trigger manager");
42 elog(
ERROR,
"insert_username: must be fired for row");
45 elog(
ERROR,
"insert_username: must be fired before event");
53 elog(
ERROR,
"insert_username: cannot process DELETE events");
65 args = trigger->tgargs;
66 tupdesc = rel->rd_att;
72 (
errcode(ERRCODE_TRIGGERED_ACTION_EXCEPTION),
77 (
errcode(ERRCODE_TRIGGERED_ACTION_EXCEPTION),
78 errmsg(
"attribute \"%s\" of \"%s\" must be type TEXT",
int SPI_fnumber(TupleDesc tupdesc, const char *fname)
Oid SPI_gettypeid(TupleDesc tupdesc, int fnumber)
#define PointerGetDatum(X)
int errcode(int sqlerrcode)
void pfree(void *pointer)
Datum insert_username(PG_FUNCTION_ARGS)
char * SPI_getrelname(Relation rel)
#define ereport(elevel,...)
#define CALLED_AS_TRIGGER(fcinfo)
char * GetUserNameFromId(Oid roleid, bool noerr)
PG_FUNCTION_INFO_V1(insert_username)
HeapTuple heap_modify_tuple_by_cols(HeapTuple tuple, TupleDesc tupleDesc, int nCols, int *replCols, Datum *replValues, bool *replIsnull)
#define TRIGGER_FIRED_BEFORE(event)
#define TRIGGER_FIRED_BY_INSERT(event)
int errmsg(const char *fmt,...)
#define CStringGetTextDatum(s)
#define TRIGGER_FIRED_FOR_ROW(event)
#define TRIGGER_FIRED_BY_UPDATE(event)