--
-- rel_constraint__violation/1
--
create or replace function rel_constraint__violation(
integer
) returns varchar as $$
declare
violation__rel_id alias for $1;
v_error text;
constraint_violated record;
begin
v_error := null;
for constraint_violated in
select constraint_id, constraint_name
from rel_constraints_violated_one
where rel_id = violation__rel_id
LIMIT 1
LOOP
v_error := coalesce(v_error,'') ||
'Relational Constraint Violation: ' ||
constraint_violated.constraint_name ||
' (constraint_id=' ||
constraint_violated.constraint_id || '). ';
return v_error;
end loop;
for constraint_violated in
select constraint_id, constraint_name
from rel_constraints_violated_two
where rel_id = violation__rel_id
LIMIT 1
LOOP
v_error := coalesce(v_error,'') ||
'Relational Constraint Violation: ' ||
constraint_violated.constraint_name ||
' (constraint_id=' ||
constraint_violated.constraint_id || '). ';
return v_error;
end loop;
return v_error;
end;$$ language plpgsql;