41 (
errcode(ERRCODE_E_R_I_E_TRIGGER_PROTOCOL_VIOLATED),
42 errmsg(
"suppress_redundant_updates_trigger: must be called as trigger")));
47 (
errcode(ERRCODE_E_R_I_E_TRIGGER_PROTOCOL_VIOLATED),
48 errmsg(
"suppress_redundant_updates_trigger: must be called on update")));
53 (
errcode(ERRCODE_E_R_I_E_TRIGGER_PROTOCOL_VIOLATED),
54 errmsg(
"suppress_redundant_updates_trigger: must be called before update")));
59 (
errcode(ERRCODE_E_R_I_E_TRIGGER_PROTOCOL_VIOLATED),
60 errmsg(
"suppress_redundant_updates_trigger: must be called for each row")));
66 newheader = newtuple->
t_data;
67 oldheader = oldtuple->t_data;
70 if (newtuple->
t_len == oldtuple->t_len &&
71 newheader->t_hoff == oldheader->t_hoff &&
int errcode(int sqlerrcode)
int errmsg(const char *fmt,...)
#define ereport(elevel,...)
#define HeapTupleHeaderGetNatts(tup)
#define SizeofHeapTupleHeader
#define PointerGetDatum(X)
Datum suppress_redundant_updates_trigger(PG_FUNCTION_ARGS)
#define TRIGGER_FIRED_BEFORE(event)
#define CALLED_AS_TRIGGER(fcinfo)
#define TRIGGER_FIRED_FOR_ROW(event)
#define TRIGGER_FIRED_BY_UPDATE(event)