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