Criando tipos de dados compostos (composite types) no PostgreSQL

O PostgreSQL te permite criar seus próprios tipos de dados.

Um desses tipos de dados é o "dado composto". O tipo composto é basicamente: duas ou mais colunas, com nomes próprios e tipos diferentes, em uma só coluna.

Para criar um tipo novo:

CREATE TYPE retangulo AS (altura double precision,largura double precision);

Mas e agora, como eu uso esse tipo?

Posso criar ele na mão dessa forma:

SELECT ROW(1.0, 2.0)::retangulo;-- Ou de forma abreviada:SELECT (1.0, 2.0)::retangulo;

Ou adicionar ele numa tabela:

CREATE TABLE retangulos(retangulo_id SERIAL PRIMARY KEY,retangulo RETANGULO);

Posso acessar ele dessa forma:

SELECT x.altura, x.larguraFROM x;-- Ou de uma forma testávelSELECT (ROW(1.0, 2.0)::retangulo).altura, (ROW(1.0, 2.0)::retangulo).largura;-- Ou ainda de outra forma testável (várias linhas)SELECT v.column1, (v.column1).altura, (v.column1).larguraFROM ( VALUES(ROW(1,2)::retangulo),(ROW(2,3)::retangulo),(ROW(4,5)::retangulo)) AS v;

Referências

Documentação oficial - Tipos compostos no PostgreSQL
https://www.postgresql.org/docs/current/rowtypes.html

You should also read:

PostgreSQL

# Instalando o wget para fazer download da chave do repositório # Instalando o wget, capaz de fazer downloads de documentos via HTTP…