Ao migrar o banco de dados do Oracle para o PostgreSQL, me deparei com a "Tabela Temporária Global" que preciso migrar de forma equivalente ao PostgreSQL.
O documento diz
Opcionalmente, GLOBAL ou LOCAL podem ser escritos antes de TEMPORARY ou TEMP. Isso atualmente não faz diferença no PostgreSQL e está obsoleto
Tentativa 1: Tabela temporária global do PostgreSQL v2.0
CREATE EXTENSION pgtt;
Erro:
SQL Error [0A000]: ERROR: extension "pgtt" is not available
Detail: Could not open extension control file "C:/Program
Files/PostgreSQL/17/share/extension/pgtt.control": No such file or directory.
Hint: The extension must first be installed on the system where PostgreSQL is running.
Tentativa 2: Como aproveitar a tabela temporária local para a tabela temporária global no EDB Postgres
Existem vários objetos de banco de dados usados para obter a funcionalidade de tabela temporária global no PostgreSQL.
UNLOGGED TABLE
CREATE VIEW
CREATE FUNCTION
CREATE TRIGGER
Pensamentos: Preocupado com o desempenho com essa abordagem.
Qual será o equivalente no PostgreSQL?
Não há nenhuma. A distinção global/local está vinculada a módulos SQL que não têm uso e não existem no PostgreSQL. Citando o doc :
Infelizmente, o
create extension
não vem com suporte de um gerenciador de pacotes - o que quer que ele possa carregar, deve ter sido empacotado com sua instalação ou adicionado externamente. Você precisa instalarpgtt
e disponibilizá-lo para o Postgres antes de poder habilitá-lo comcreate extension
.Teste e só continue se preocupando se isso realmente acabar arrastando as coisas para baixo. Se você restringisse o subconjunto de recursos do GTT em que está interessado, seria mais fácil discutir qual abordagem é mais adequada. Pelo que parece,
pgtt
visa adicionar emulação completa do comportamento do GTT no Postgres, possivelmente removendo a necessidade de traduzir/portar coisas.Se você só precisa de uma tabela temporária, mas compartilhada por todos, isso é um
unlogged
. Se você precisa de uma para todos, mas cada um vendo apenas seu próprio conteúdo, isso é a mesma coisa, mas com RLS . Quanto mais você continua adicionando, mais complicado fica, e mais perto você se move do quepgtt
faz. A coisa unlogged+RLS parece ser o que eles fizeram na versão anterior .