Re: Inconsistent Errors on Row Comparisons

Поиск
Список
Период
Сортировка
От David E. Wheeler
Тема Re: Inconsistent Errors on Row Comparisons
Дата
Msg-id 381EB7AA-20A3-4994-A90D-151E270618E5@kineticode.com
обсуждение исходный текст
Ответ на Re: Inconsistent Errors on Row Comparisons  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Inconsistent Errors on Row Comparisons  ("David E. Wheeler" <david@kineticode.com>)
Re: Inconsistent Errors on Row Comparisons  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: Inconsistent Errors on Row Comparisons  (David Fetter <david@fetter.org>)
Список pgsql-hackers
On Jun 30, 2009, at 11:18 AM, Tom Lane wrote:

> So really what you're wishing for is that we treat different-numbers- 
> of-
> columns as a whole new SQLSTATE inside category 42.  What's the  
> argument
> for needing to handle this differently from DATATYPE_MISMATCH?

For my results_eq() in pgTAP, it could output different diagnostics.  
I'm already doing this for the set_eq() function I wrote, which uses  
EXCEPT. For that function, if you pass two statements with different  
numbers of columns, pgTAP says:
    # Failed test 148    #     Number of columns differs between queries

While for a call with the same numbers of columns but different data  
types (say int,text and inet,text), pgTAP says:
    # Failed test 149    #     Column types differ between queries

Essentially, while on a row object-level, they are different types,  
the caller of my function doesn't know that it's comparing rows, just  
that it's comparing result sets. So I like to give as much information  
as possible about the difference in the result sets of the queries.  
Hell, ideally it'd actually say something like:
    # Failed test 148    #     Number of columns differs between queries    #         have: 4 columns    #
want:3 columns
 
    # Failed test 149    #     Column types differ between queries    #         have: (integer,text)    #         want:
(inet,text)

This gives the tester a lot of information to help diagnose the test  
failure. I don't know that I can gather that kind of information,  
though.

>> Okay. I'll have to see what I can do with SQLERRM then. But isn't it
>> localized?
>
> Yeah, it is.  You don't really want code looking at that to decide  
> what
> to do, if you can possibly avoid it.  It's intended for human  
> consumption.

As I thought, thanks.

Best,

David



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Inconsistent Errors on Row Comparisons
Следующее
От: Alvaro Herrera
Дата:
Сообщение: Re: 8.5 development schedule