Re: Mention column name in error messages - Mailing list pgsql-hackers

From Jeff Janes
Subject Re: Mention column name in error messages
Date
Msg-id CAMkU=1weeowOfvL-tcWXgKGk_uNenOMtkG5Ky8ZtvzN9FpOs3A@mail.gmail.com
Whole thread Raw
In response to Re: Mention column name in error messages  (Franck Verrot <franck@verrot.fr>)
Responses Re: Mention column name in error messages  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: Mention column name in error messages  (Franck Verrot <franck@verrot.fr>)
List pgsql-hackers
On Sun, Aug 9, 2015 at 8:44 AM, Franck Verrot <franck@verrot.fr> wrote:
On Wed, Jul 1, 2015 at 12:30 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
What seems more likely to lead to a usable patch is to arrange for the
extra information you want to be emitted as error "context", via an error
context callback that gets installed at the right times.  ...
...
with no need for int8in to be directly aware of the context.  You should
try adapting that methodology for the cases you're worried about.

Hi Tom (and others),

Sorry it took so long for me to follow up on this, hopefully I found a couple
a hours today to try writing another patch.

In any case, thanks for reviewing my first attempt and taking time to write
such a detailed critique... I've learned a lot!

I am now using the error context callback stack. The current column name
and column type are passed to the callback packed inside  a new structure
of type "TransformExprState".
Those information are then passed to `errhint` and will be presented to the
user later on (in case of coercion failure).


Please find the WIP patch attached.
(I've pushed the patch on my GH fork[1] too).


Hi Franck,

I like the idea of having the column name.  

I took this for a test drive, and had some comments.on the user visible parts.

The hints you add end in a new line, which then gives two new lines once they are emitted.  This is contrary to how other HINTs are formatted.

Other HINTs are complete sentences (start with a capital letter, end with a period).

But I think these belong as CONTEXT or as DETAIL, not as HINT.  The messages are giving me details about where (which column)  the error occured, they aren't giving suggestions to me about what to do about it.

Cheers,

Jeff

pgsql-hackers by date:

Previous
From: Alvaro Herrera
Date:
Subject: Re: how to write/setup a C trigger function in a background worker
Next
From: jacques klein
Date:
Subject: Re: how to write/setup a C trigger function in a background worker