52.40. pg_publication #

O catálogo pg_publication armazena informações sobre todas as publicações criadas no banco de dados. Para obter mais informações sobre publicações, veja Publicação.

Tabela 52.40. Colunas de pg_publication

Coluna Tipo de dados

Descrição

oid oid

Identificador da linha

pubname name

Nome da publicação

pubowner oid (referencia pg_authid.oid)

Dono da publicação

puballtables bool

Se verdade, esta publicação incluirá automaticamente todas as tabelas do banco de dados, incluindo aquelas que serão criadas no futuro.

pubinsert bool

Se verdade, as operações de INSERT serão replicadas para as tabelas na publicação.

pubupdate bool

Se verdade, as operações de UPDATE serão replicadas para as tabelas na publicação.

pubdelete bool

Se verdade, as operações de DELETE serão replicadas para as tabelas na publicação.

pubtruncate bool

Se verdade, as operações de TRUNCATE serão replicadas para as tabelas na publicação.

pubviaroot bool

Se verdade, as operações numa partição folha são replicadas usando a identidade e o esquema do seu ancestral particionado superior mencionado na publicação, em vez do seu próprio.

pubgencols char

Controla como tratar a replicação de colunas geradas quando não há uma lista de colunas na publicação: n = as colunas geradas armazenadas nas tabelas associadas à publicação não devem ser replicadas, s = as colunas geradas armazenadas nas tabelas associadas à publicação devem ser replicadas.


Exemplo 52.24. Exemplo do tradutor

Publicações criadas no banco de dados

Uso do catálogo pg_publication para mostrar todas as publicações criadas no banco de dados ana da usuária ana, e uso também do meta-comando \dRpx+ do psql com o mesmo objetivo.

ana=> CREATE PUBLICATION biblioteca
ana-> FOR TABLE autor, editora, livro;
CREATE PUBLICATION
ana=> SELECT
ana->     pubname,
ana->     pubowner::regrole,
ana->     puballtables,
ana->     pubinsert,
ana->     pubupdate,
ana->     pubdelete,
ana->     pubtruncate,
ana->     pubviaroot
ana-> FROM pg_publication\gx

-[ RECORD 1 ]+-----------
pubname      | biblioteca
pubowner     | ana
puballtables | f
pubinsert    | t
pubupdate    | t
pubdelete    | t
pubtruncate  | t
pubviaroot   | f

ana=> \dRpx+

Publicação biblioteca
-[ RECORD 1 ]-----+-----
Dono              | ana
Todas as tabelas  | f
Inserções         | t
Atualizações      | t
Exclusões         | t
Truncamentos      | t
Generated columns | none
Via root          | f

Tabelas:
    "public.autor"
    "public.editora"
    "public.livro"

postgres=# ALTER ROLE ana WITH REPLICATION;
ALTER ROLE

Foi adicionada a seguinte linha ao arquivo /etc/postgresql/18/main/pg_hba.conf para permitir a replicação no banco de dados ana usuária ana:

# TYPE      DATABASE    USER    ADDRESS     METHOD
hostssl     ana         ana     samenet     scram-sha-256


52.40.1. Veja também #

CREATE PUBLICATION, ALTER PUBLICATION, DROP PUBLICATION, pg_publication_namespace, pg_publication_rel, pg_publication_tables, pg_subscription