I just tested this and it doesn't show the offending column name;
sorry:
test=> CREATE TABLE test(x smallint); CREATE TABLE test=> \set VERBOSITY verbose test=> INSERT INTO test VALUES (10000000); ERROR: 22003: smallint out of range LOCATION: i4toi2, int.c:349
It's great to see that you people care about "userland", judging by the effort that you describe in your article.
In fact you're already doing the thing that i asked about, i see that even the offending tuple is printed (which is new).
And of course it's not necessary to mention the column name when you mention the constraint name.
(BTW: your remark about NOT NULL constraints is not necessary, that error message is very clear:"ERROR: null value in column "balance" violates not-null constraint" )
This is not a constraint going off, and in this case, none of that applies. But it seems probable to me that some day it will, seeing as you already implemented it for constraints.
Thanks,
Willy-Bas Loos
--
"Quality comes from focus and clarity of purpose" -- Mark Shuttleworth