On 05/04/2017 07:29 AM, Tom Lane wrote:
> Adrian Klaver <adrian.klaver@aklaver.com> writes:
>> On 05/04/2017 07:00 AM, Tom Lane wrote:
>>> No, certainly not. The radix column says what the units of measurement
>>> are, not that the values in the precision column aren't decimal. So radix
>>> 2 indicates that precision 32 means "32 bits", not "32 decimal digits".
>
>> Alright now I am confused:
>
>> https://www.postgresql.org/docs/9.6/static/infoschema-columns.html
>
>> "numeric_precision cardinal_number
>
>> If data_type identifies a numeric type, this column contains the
>> (declared or implicit) precision of the type for this column. The
>> precision indicates the number of significant digits. It can be
>> expressed in decimal (base 10) or binary (base 2) terms, as specified in
>> the column numeric_precision_radix. For all other data types, this
>> column is null.
>> "
>
> I'm not here to defend the wording in our documentation ;-)
>
> Perhaps this would be clearer if it said "measured in ... digits" rather
> than "expressed in ... terms"?
>
> It should probably also say "identifies a numeric type of restricted
> precision", since for example it'll be null for a column that's
> NUMERIC but has no typmod.
Think I answered my own question. Numeric refers to all the types under:
https://www.postgresql.org/docs/9.6/static/datatype-numeric.html
not just the specific type numeric.
So:
production=# \d projection
....
pot_ct | integer
....
production=# select * from information_schema.columns where table_name
='projection' and column_name='pot_ct';
...
numeric_precision | 32
numeric_precision_radix | 2
numeric_scale | 0
...
Then the output is saying I am looking at a 32 bit integer(int4). If the
table definition had been int8, the output would be:
numeric_precision | 64
numeric_precision_radix | 2
numeric_scale | 0
>
> regards, tom lane
>
--
Adrian Klaver
adrian.klaver@aklaver.com