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

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Sebastien FLAESCH <sf(at)4js(dot)com>
Cc: pgsql-interfaces(at)lists(dot)postgresql(dot)org
Subject: Re: Type scale returned by PQfmod() 65531 for time/timestamp output parameter?
Date: 2018-02-21 18:36:30
Message-ID: 21465.1519238190@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-interfaces

Sebastien FLAESCH <sf(at)4js(dot)com> writes:
> On 02/20/2018 03:39 PM, Tom Lane wrote:
>> Like I said before, it's datatype-specific and you need to look at the
>> typmodin/typmodout support functions for each type to see what they do.

> Are you suggesting me to dig into the PostgreSQL server sources / internals?

Yup.

> Any starting point I should look at?

regression=# select distinct typmodout from pg_type where typmodout != 0;
typmodout
----------------------
intervaltypmodout
timestamptypmodout
timestamptztypmodout
timetypmodout
timetztypmodout
bpchartypmodout
varchartypmodout
numerictypmodout
bittypmodout
varbittypmodout
(10 rows)

I think all of those are under src/backend/utils/adt/ in the sources.
Briefly their charter is to produce the textual representation of a
typmod value for the data type, or an empty string if there's no typmod
constraint. Although in principle code outside the datatype shouldn't
assume anything at all about the encoding of typmod, there's a widespread
assumption that all negative values (not just -1) mean "no constraint".

regards, tom lane

In response to

Responses

Browse pgsql-interfaces by date

  From Date Subject
Next Message Sebastien FLAESCH 2018-02-22 12:35:12 Re: Type scale returned by PQfmod() 65531 for time/timestamp output parameter?
Previous Message Sebastien FLAESCH 2018-02-21 16:41:44 Re: Type scale returned by PQfmod() 65531 for time/timestamp output parameter?