Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1eoq5s-0000si-FK for pgsql-interfaces@arkaria.postgresql.org; Thu, 22 Feb 2018 12:35:24 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eoq5q-0003Rw-WC for pgsql-interfaces@arkaria.postgresql.org; Thu, 22 Feb 2018 12:35:22 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1eoq5q-0003Rj-NQ for pgsql-interfaces@lists.postgresql.org; Thu, 22 Feb 2018 12:35:22 +0000 Received: from mail150.strasbourg.4js.com ([77.159.205.150]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1eoq5n-0006lX-Eo for pgsql-interfaces@lists.postgresql.org; Thu, 22 Feb 2018 12:35:21 +0000 Received: from [10.0.11.125] (dhcp-125.strasbourg.4js.com [10.0.11.125]) (authenticated bits=0) by mail150.strasbourg.4js.com (8.14.4/8.14.4/Debian-4+deb7u1) with ESMTP id w1MCZCKh024234 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Thu, 22 Feb 2018 13:35:13 +0100 Subject: Re: Type scale returned by PQfmod() 65531 for time/timestamp output parameter? To: Tom Lane Cc: pgsql-interfaces@lists.postgresql.org References: <093e1214-7057-f80c-5c3c-74076b7bb555@4js.com> <7537.1518711940@sss.pgh.pa.us> <13939.1518794152@sss.pgh.pa.us> <91fabdcd-0eb3-c970-a28c-248a6ff8a360@4js.com> <7047.1519056383@sss.pgh.pa.us> <2ae51da1-f2b4-a8be-4c4d-c8b96f1f7718@4js.com> <17186.1519137546@sss.pgh.pa.us> <5a7de250-aceb-7b61-8da6-796a37a28eca@4js.com> <21465.1519238190@sss.pgh.pa.us> From: Sebastien FLAESCH Organization: Four Js Development Tools Message-ID: Date: Thu, 22 Feb 2018 13:35:12 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 MIME-Version: 1.0 In-Reply-To: <21465.1519238190@sss.pgh.pa.us> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamav-milter 0.99.3 at mail231 X-Virus-Status: Clean X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3 (mail150.strasbourg.4js.com [10.10.0.1]); Thu, 22 Feb 2018 13:35:14 +0100 (CET) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk On 02/21/2018 07:36 PM, Tom Lane wrote: > Sebastien FLAESCH 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 > OK Thanks! Seb