35.23. domains #

A visão domains contém todos os domínios definidos no banco de dados corrente. Somente são mostrados os domínios aos quais o usuário corrente tem acesso (por ser o dono, ou por ter algum privilégio).

Tabela 35.21. Colunas de domains

Coluna Tipo de dados

Descrição

domain_catalog sql_identifier

Nome do banco de dados que contém o domínio (sempre o banco de dados corrente)

domain_schema sql_identifier

Nome do esquema que contém o domínio

domain_name sql_identifier

Nome do domínio

data_type character_data

Tipo de dados do domínio, se for um tipo integrado, ou ARRAY se for alguma matriz (neste caso, veja a visão element_types), senão USER-DEFINED (neste caso, o tipo de dados é identificado na coluna udt_name e nas colunas associadas).

character_maximum_length cardinal_number

Se o domínio for de um tipo de dados de cadeia de caracteres ou de bits, o comprimento máximo declarado; nula para todos os outros tipos de dados ou se não foi declarado nenhum comprimento máximo.

character_octet_length cardinal_number

Se o domínio for de um tipo de dados de caractere, o comprimento máximo possível em octetos (bytes) do Datum; nula para todos os outros tipos de dados. O comprimento máximo do octeto depende do comprimento máximo do caractere declarado (veja acima) e da codificação do servidor.

character_set_catalog sql_identifier

Aplica-se a uma funcionalidade não disponível no PostgreSQL

character_set_schema sql_identifier

Aplica-se a uma funcionalidade não disponível no PostgreSQL

character_set_name sql_identifier

Aplica-se a uma funcionalidade não disponível no PostgreSQL

collation_catalog sql_identifier

Nome do banco de dados que contém a ordenação do domínio (sempre o banco de dados corrente), nula se o valor padrão ou o tipo de dados do domínio não for ordenável

collation_schema sql_identifier

Nome do esquema que contém a ordenação do domínio, nula se o valor padrão ou o tipo de dados do domínio não for ordenável

collation_name sql_identifier

Nome da ordenação do domínio, nula se o valor padrão ou o tipo de dados do domínio não for ordenável

numeric_precision cardinal_number

Se o domínio for de um tipo de dados numérico esta coluna irá conter a precisão (declarada ou implícita) do tipo de dados para este domínio. A precisão indica o número de dígitos significativos. Pode ser expresso em termos decimais (base 10) ou binários (base 2), conforme especificado na coluna numeric_precision_radix. Para todos os outros tipos de dados esta coluna será nula.

numeric_precision_radix cardinal_number

Se o domínio for de um tipo de dados numérico esta coluna irá indicar em qual base são expressos os valores das colunas numeric_precision e numeric_scale. O valor é 2 ou 10. Para todos os outros tipos de dados esta coluna será nula.

numeric_scale cardinal_number

Se o domínio for de um tipo de dados numérico exato, esta coluna irá conter a escala (declarada ou implícita) do tipo de dados para este domínio. A escala indica o número de dígitos significativos à direita do ponto decimal. Pode ser expresso em termos decimais (base 10) ou binários (base 2), conforme especificado na coluna numeric_precision_radix. Para todos os outros tipos de dados esta coluna será nula.

datetime_precision cardinal_number

Se a coluna data_type identificar uma data, hora, carimbo de data/hora ou tipo de dados de intervalo, esta coluna irá conter a precisão dos segundos fracionários (declarados ou implícitos) do tipo de dados para esta coluna, ou seja, o número de dígitos decimais mantidos após o ponto decimal no valor dos segundos. Para todos os outros tipos de dados esta coluna será nula.

interval_type character_data

Se a coluna data_type identificar um tipo de dados de intervalo, esta coluna irá conter a especificação de quais campos os intervalos incluem para esta coluna, por exemplo, YEAR TO MONTH, DAY TO SECOND, etc. Se não tiver sido especificada nenhuma restrição de campo (ou seja, o intervalo aceita todos os campos) e para todos os outros tipos de dados esta coluna será nula.

interval_precision cardinal_number

Aplica-se a uma funcionalidade não disponível no PostgreSQL (veja datetime_precision para obter a precisão dos segundos fracionários de domínios do tipo de dados de intervalo)

domain_default character_data

Expressão padrão do domínio

udt_catalog sql_identifier

Nome do banco de dados onde o tipo de dados do domínio está definido (sempre o banco de dados corrente)

udt_schema sql_identifier

Nome do esquema em que o tipo de dados do domínio está definido

udt_name sql_identifier

Nome do tipo de dados do domínio

scope_catalog sql_identifier

Aplica-se a uma funcionalidade não disponível no PostgreSQL

scope_schema sql_identifier

Aplica-se a uma funcionalidade não disponível no PostgreSQL

scope_name sql_identifier

Aplica-se a uma funcionalidade não disponível no PostgreSQL

maximum_cardinality cardinal_number

Sempre nula, porque as matrizes sempre têm cardinalidade máxima ilimitada no PostgreSQL

dtd_identifier sql_identifier

O identificador do descritor do tipo de dados do domínio, único entre os descritores de tipo de dados pertencentes ao domínio (o que é trivial, porque um domínio contém apenas um descritor de tipo de dados). Serve principalmente para realizar junções com outras instâncias desses identificadores. (O formato específico do identificador não está definido, não havendo garantia de que permanecerá o mesmo nas versões futuras.)


Exemplo 35.20. Exemplo do tradutor

Domínios definidos no banco de dados

Uso do esquema de informações para mostrar todos os domínios definidos no banco de dados cristina da usuária cristina.

SELECT domain_catalog, domain_schema, domain_name,
       data_type, udt_catalog, udt_schema, udt_name, dtd_identifier
FROM information_schema.domains\gx

-[ RECORD 1 ]--+-------------------------
domain_catalog | cristina
domain_schema  | information_schema
domain_name    | sql_identifier
data_type      | name
udt_catalog    | cristina
udt_schema     | pg_catalog
udt_name       | name
dtd_identifier | 1
-[ RECORD 2 ]--+-------------------------
domain_catalog | cristina
domain_schema  | information_schema
domain_name    | cardinal_number
data_type      | integer
udt_catalog    | cristina
udt_schema     | pg_catalog
udt_name       | int4
dtd_identifier | 1
-[ RECORD 3 ]--+-------------------------
domain_catalog | cristina
domain_schema  | public
domain_name    | iso_216
data_type      | text
udt_catalog    | cristina
udt_schema     | pg_catalog
udt_name       | text
dtd_identifier | 1
-[ RECORD 4 ]--+-------------------------
domain_catalog | cristina
domain_schema  | information_schema
domain_name    | yes_or_no
data_type      | character varying
udt_catalog    | cristina
udt_schema     | pg_catalog
udt_name       | varchar
dtd_identifier | 1
-[ RECORD 5 ]--+-------------------------
domain_catalog | cristina
domain_schema  | information_schema
domain_name    | character_data
data_type      | character varying
udt_catalog    | cristina
udt_schema     | pg_catalog
udt_name       | varchar
dtd_identifier | 1
-[ RECORD 6 ]--+-------------------------
domain_catalog | cristina
domain_schema  | information_schema
domain_name    | time_stamp
data_type      | timestamp with time zone
udt_catalog    | cristina
udt_schema     | pg_catalog
udt_name       | timestamptz
dtd_identifier | 1
-[ RECORD 7 ]--+-------------------------
domain_catalog | cristina
domain_schema  | public
domain_name    | fim_semana_abrev
data_type      | USER-DEFINED
udt_catalog    | cristina
udt_schema     | public
udt_name       | dia_semana_abrev
dtd_identifier | 1