Re: Type scale returned by PQfmod() 65531 for time/timestamp output parameter?

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Type scale returned by PQfmod() 65531 for time/timestamp output parameter?
Дата
Msg-id 7047.1519056383@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: Type scale returned by PQfmod() 65531 for time/timestamp outputparameter?  (Sebastien FLAESCH <sf@4js.com>)
Ответы Re: Type scale returned by PQfmod() 65531 for time/timestamp outputparameter?  (Sebastien FLAESCH <sf@4js.com>)
Список pgsql-interfaces
Sebastien FLAESCH <sf@4js.com> writes:
> On 02/16/2018 04:15 PM, Tom Lane wrote:
>> You could try running it through the typmodout function for the column's
>> datatype.  I don't offhand know of any built-in types for which that would
>> be a really plausible typmod, though.  Are you sure your client code isn't
>> mistakenly narrowing it to int16 somewhere?

> As I wrote in my initial mail, I do the following:

> #define VARHDRSZ 4
>      int pgfmod = PQfmod(st->pgResult, i);
>      int pgprec = (pgfmod >> 16);
>      int pgscal = ((pgfmod - VARHDRSZ) & 0xffff);
>      int pgleng = (pgfmod - VARHDRSZ);

That might --- I don't recall offhand --- be the right decoding for
the typmod of a column of type NUMERIC.  It's certainly not right
for any other datatype.  Also, you don't seem to be accounting for
the fact that negative typmod always means "no typmod specified".

            regards, tom lane


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

Предыдущее
От: Sebastien FLAESCH
Дата:
Сообщение: Re: Type scale returned by PQfmod() 65531 for time/timestamp outputparameter?
Следующее
От: Sebastien FLAESCH
Дата:
Сообщение: Re: Type scale returned by PQfmod() 65531 for time/timestamp outputparameter?