Definition at line 25 of file insert_username.c.
26{
29 int nargs;
38
39
41
42 elog(
ERROR,
"insert_username: not fired by trigger manager");
44
45 elog(
ERROR,
"insert_username: must be fired for row");
47
48 elog(
ERROR,
"insert_username: must be fired before event");
49
54 else
55
56 elog(
ERROR,
"insert_username: cannot process DELETE events");
57
58 rel = trigdata->tg_relation;
60
62
64 if (nargs != 1)
65
67
70
72
77
81 errmsg(
"attribute \"%s\" of \"%s\" must be type TEXT",
83
84
87
88
91
93
95}
#define CStringGetTextDatum(s)
int errcode(int sqlerrcode)
int errmsg(const char *fmt,...)
#define ereport(elevel,...)
HeapTuple heap_modify_tuple_by_cols(HeapTuple tuple, TupleDesc tupleDesc, int nCols, const int *replCols, const Datum *replValues, const bool *replIsnull)
void pfree(void *pointer)
char * GetUserNameFromId(Oid roleid, bool noerr)
static Datum PointerGetDatum(const void *X)
int SPI_fnumber(TupleDesc tupdesc, const char *fname)
Oid SPI_gettypeid(TupleDesc tupdesc, int fnumber)
char * SPI_getrelname(Relation rel)
#define TRIGGER_FIRED_BEFORE(event)
#define CALLED_AS_TRIGGER(fcinfo)
#define TRIGGER_FIRED_FOR_ROW(event)
#define TRIGGER_FIRED_BY_INSERT(event)
#define TRIGGER_FIRED_BY_UPDATE(event)
References attnum, CALLED_AS_TRIGGER, CStringGetTextDatum, elog, ereport, errcode(), errmsg(), ERROR, fb(), GetUserId(), GetUserNameFromId(), heap_modify_tuple_by_cols(), newval, pfree(), PointerGetDatum(), RelationData::rd_att, relname, SPI_fnumber(), SPI_getrelname(), SPI_gettypeid(), TriggerData::tg_event, TriggerData::tg_newtuple, TriggerData::tg_relation, TriggerData::tg_trigger, TriggerData::tg_trigtuple, Trigger::tgnargs, TRIGGER_FIRED_BEFORE, TRIGGER_FIRED_BY_INSERT, TRIGGER_FIRED_BY_UPDATE, and TRIGGER_FIRED_FOR_ROW.