On 05/04/2017 07:29 AM, Tom Lane wrote:
Adrian Klaver <adrian.klaver@xxxxxxxxxxx> 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@xxxxxxxxxxx
--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general