Andrew Dunstan <andrew@dunslane.net> writes:
>> Not sure that's appropriate, but I can't see anything else that is
>> very appropriate either.
> The plpgsql code uses errcode(ERRCODE_FEATURE_NOT_SUPPORTED) for this
> situation, so I guess we should be consistent with that.
TRIGGERED_DATA_CHANGE_VIOLATION is most certainly NOT an appropriate
code here --- it's talking about invalid database content states.
The RI triggers use ERRCODE_E_R_I_E_TRIGGER_PROTOCOL_VIOLATED for these
sorts of conditions, and I think that's probably best practice. See
ri_CheckTrigger() in particular.
regards, tom lane