Euler,

No caso em questão eu criava tabelas temporárias via EXECUTE para que elas 
fossem visíveis (via EXECUTE 'SELECT') em outras stored procedures 
relacionadas e apagava assim que terminava de usar. Isso era burocrático, 
mas resolvia direitinho meu problema no Postgres *versão 7*. Só que ao 
testar isso na *versão 8.3.1* não funcionou, não tenho mais o registro exato 
porque as stored procedures foram reescritas para não usar mais tabelas 
temporárias. Eu precisaria remontar o ambiente (criar um banco de dados com 
versões específicas de tabelas, stored procedures e código fonte, todas 
intermediárias) para reproduzir esse erro.

Lembro que encontrei dois problemas: inicialmente ele me reportou erro ao 
rodar o DROP TABLE na tabela temporária dentro de uma stored procedure. 
Quando dei um jeito de não usar EXECUTE nem DROP dentro da mesma transação, 
eu não conseguia mais abrir o cursor sobre a tabela temporária à partir da 
segunda execução, pois o servidor reportava um erro esquisito no LOG, 
falando de um cursor com um nome enorme e aleatório que não foi encontrado. 
Sempre que dava esse erro o servidor me vinha com aquele maldito 'current 
transaction is aborted, commands ignored until end of transaction block'.

Atenciosamente,

Mozart Hasse


Date: Wed, 23 Apr 2008 16:51:18 -0300
From: Euler Taveira de Oliveira <[EMAIL PROTECTED]>
Subject: Re: [pgbr-geral] Upgrade da 7.4 para 8.3

Mozart Hasse wrote:

> * Cuidado com tabelas temporárias, o Postgres 8.3 não deixa você
> excluí-las. Caso tenha algum caso desses, você pode precisar usar tabelas
> reais e controlar sua limpeza manualmente.
>
O que você quis dizer com isso? Tabelas temporárias sempre puderam ser
excluídas. Acho que você está se referindo a invalidação do plano de
execução em funções no qual tabelas temporárias não precisam de um
tratamento especial (com EXECUTE); Mesmo assim funções que funcionavam
no 8.2 assim devem funcionar no 8.3 também.


_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a