Prezados,

Estou com o seguinte erro:
Error: cache lookup failed for relation 251285909

Pesquisando no google achei o seguinte:

> Leia [1]. Isso ocorre porque o PostgreSQL faz cache do conteúdo das
> funções (inclusive o OID da tabela temporária referenciada), então ao
> executar novamente, ele tenta utilizar a tabela temporária antiga.
> Na versão 8.3 (próxima), isso não ocorrerá mais.
>
> [1] http://www.postgresql.org/docs/faqs.FAQ_brazilian.html#item4.19
>

E la diz o seguinte:
Em versões do PostgreSQL < 8.3, PL/PgSQL armazena o conteúdo da
função, e o efeito indesejado é que se uma função PL/PgSQL acessa uma
tabela temporária, e aquela tabela é removida e criada novamente, e a
função é chamada novamente, a função irá falhar porque o conteúdo
armazenado da função ainda apontará para a tabela temporária antiga. A
solução é utilizar o EXECUTE para acesso a tabelas temporárias no
PL/PgSQL. Isto irá fazer com que a consulta seja avaliada toda vez.

Esta versao que estou usando é a 8.2 (linux 64 mandriva).

A sincronizacao é feita por um programa em "C" que esta agendado para
rodar no "cron" a cada 5 min, sempre é uma conexão nova.

Dentro desse arquivo em uma determianada parte chama uma funcao que
uso pra sincronizacao em "tcl" que faz o seguinte:


    #CRIA UMA TABELA TEMPORARIA temp_tabela COM OS DADOS BASICOS P/ A
SINCRONIZACAO
    spi_exec " SELECT .... INTO TEMP temp_tabela  FROM tabela1,tabela2 .... "

depois cria outra tabela temporaria:

spi_exec "create temp table temp_xxx (....);

e dados sao manipulados nessas tabelas.


Depois de executada essa funcao, fica uma tabela temporaria disponivel
para esse programa em "C" que usa ela posteriormente e faz select's,
etc....

Em determinados momentos, tipo uma vez a cada hora, (essa
sincronizacao roda a cada 5 min) esta acontecendo o erro "cache lookup
failed for relation".

Como posso resolver isso?
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a