From: | "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> |
---|---|
To: | Shawn Gennaria <sgennaria2(at)gmail(dot)com> |
Cc: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>, "pgsql-sql(at)postgresql(dot)org" <pgsql-sql(at)postgresql(dot)org> |
Subject: | Re: How to determine offending column for insert exceptions |
Date: | 2015-04-21 17:04:05 |
Message-ID: | CAKFQuwam1+-cTXFqWhJdi_NFY1A5Yh4TGK2hUBcps-e_+R6BRw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
On Tue, Apr 21, 2015 at 9:48 AM, Shawn Gennaria <sgennaria2(at)gmail(dot)com>
wrote:
> Glad to hear it's here just in time. I am using 9.4, though, so I wish I
> could figure out why it's returning NULL when I use it. And the error
> message string doesn't contain any column name to parse in my output.
>
> On Tue, Apr 21, 2015 at 12:46 PM, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com
> > wrote:
>
>> Shawn Gennaria wrote:
>> > OK, I'm looking at
>> >
>> www.postgresql.org/docs/9.4/interactive/plpgsql-control-structures.html#PLPGSQL-EXCEPTION-DIAGNOSTICS-VALUES
>> > which I completely missed before. This sounds like my answer, but it's
>> not
>> > returning anything when I try to extract the COLUMN_NAME.
>>
>> As far as I recall, COLUMN_NAME is new in 9.4. If you're trying with an
>> earlier version, you can't get that info other than by parsing the error
>> message string.
>>
>>
Adrian provided an example of trying to place a valid date into a non-date
column. The data itself was correct but the place it is being stored to is
invalid and can be reported explicitly.
Shawn provided an example of trying to create an integer using an invalid
value. Type input errors are not column specific and so the error - which
is basically a parse error - does not provide column information.
There is likely some more experimenting here, and maybe room to attached
optional contextual markers to make better error messages, but
fundamentally these are two different kinds of errors which cannot be
generalized over to the extent of saying "errors should provide column name
information"...because what would you do for { SELECT 'a'::int }?
David J.
From | Date | Subject | |
---|---|---|---|
Next Message | s d | 2015-04-21 17:05:56 | Re: How to determine offending column for insert exceptions |
Previous Message | Shawn Gennaria | 2015-04-21 16:48:48 | Re: How to determine offending column for insert exceptions |