Re: INTERVAL data type and libpq - what format?

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: INTERVAL data type and libpq - what format?
Дата
Msg-id 12907.1242737150@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: INTERVAL data type and libpq - what format?  (Sam Mason <sam@samason.me.uk>)
Ответы Re: INTERVAL data type and libpq - what format?  (Sebastien FLAESCH <sf@4js.com>)
Список pgsql-general
Sam Mason <sam@samason.me.uk> writes:
> I don't really know 8.4, but I believe you're saying here that you
> explicitly want the values to be of basic INTERVAL type here, i.e. not
> INTERVAL DAY TO HOUR for parameter 3.

Right, you can get the equivalent behavior from psql thus:

regression=# select '-12345'::interval::interval year;
 interval
----------
 00:00:00
(1 row)

regression=# select '12 11'::interval::interval year;
ERROR:  invalid input syntax for type interval: "12 11"
LINE 1: select '12 11'::interval::interval year;
               ^

There is not any way to bind a more specific type to a parameter at the
protocol level.

> I think PG may do the right thing if you
> don't specify the types when preparing the query, but haven't tested.

Yeah, that should work (though I haven't verified it either).  Another
common trick is to specify the type in the text of the query by casting
the parameter symbol:

    PQprepare( ... $2::INTERVAL YEAR ... );

I'd say this is better style than hard-wiring numeric type OIDs into
your code.

            regards, tom lane

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

Предыдущее
От: Alvaro Herrera
Дата:
Сообщение: Re: array/function question
Следующее
От: hubert depesz lubaczewski
Дата:
Сообщение: Re: Get block of N numbers from sequence