Las vistas del esquema de información y pg_typeof() devuelven información de tipo incompleta. De estas respuestas, psql
proporciona la información de tipo más precisa. (La OP podría no necesitar dicha información precisa, pero debe conocer las limitaciones.)
create domain test_domain as varchar(15);
create table test (
test_id test_domain,
test_vc varchar(15),
test_n numeric(15, 3),
big_n bigint,
ip_addr inet
);
Usando psql
y \d public.test
muestra correctamente el uso del tipo de datos test_domain
, la longitud de varchar (n) columnas, y la precisión y escala de columnas numéricas (p, s).
sandbox=# \d public.test
Table "public.test"
Column | Type | Modifiers
---------+-----------------------+-----------
test_id | test_domain |
test_vc | character varying(15) |
test_n | numeric(15,3) |
big_n | bigint |
ip_addr | inet |
Esta consulta contra una vista INFORMATION_SCHEMA hace no muestran el uso de test_domain
en absoluto. Tampoco informa los detalles de las columnas varchar (n) y numéricas (p, s).
select column_name, data_type
from information_schema.columns
where table_catalog = 'sandbox'
and table_schema = 'public'
and table_name = 'test';
column_name | data_type
-------------+-------------------
test_id | character varying
test_vc | character varying
test_n | numeric
big_n | bigint
ip_addr | inet
Usted puede ser capaz de obtener toda esa información al unirse a otros puntos de vista INFORMATION_SCHEMA, o mediante la consulta de las tablas del sistema directamente. psql -E
podría ayudar con eso.
La función pg_typeof()
muestra correctamente el uso de test_domain
, pero no informa los detalles de las columnas varchar (n) y numéricas (p, s).
select pg_typeof(test_id) as test_id,
pg_typeof(test_vc) as test_vc,
pg_typeof(test_n) as test_n,
pg_typeof(big_n) as big_n,
pg_typeof(ip_addr) as ip_addr
from test;
test_id | test_vc | test_n | big_n | ip_addr
-------------+-------------------+---------+--------+---------
test_domain | character varying | numeric | bigint | inet
También se ha pedido y respondido https://stackoverflow.com/q/20194806/65458 –