Fabrízio de Royes Mello escreveu:
> O DISCARD ALL [3], conforme documentação, executa os seguintes
> comandos na ordem que segue:
> - SET SESSION AUTHORIZATION DEFAULT;
> - RESET ALL;
> - DEALLOCATE ALL;
> - CLOSE ALL;
> - UNLISTEN *;
> - SELECT pg_advisory_unlock_all();
> - DISCARD PLANS;
> - DISCARD TEMP;
> 
> Destes comandos não consegui implementar o DISCARD PLANS (se alguém
> souber como faço isso, e se é possível, eu agradeço).
> 
Esse comando veio em conjunto com a funcionalidade de invalidação de planos em
funções procedurais. Então, ele *não* pode ser emulado em versões < 8.3.

> Com base nisso tenho uma dúvida (até mais desconfiança que dúvida mesmo)
> que tenho é relacionada a essa PL que implementei (em anexo), pois
> configurei ela no parâmetro "server_reset_query", assim como o pgbouncer
> [2] indica pra fazer com o DISCARD ALL, e apesar de estar em testes com
> resultados positivos há algum tempo em nosso ambiente de desenvolvimento
> ainda tenho receio de colocar em produção.
> 
Se a sua versão do PostgreSQL mais velha é a 8.2 (sem ela tu não vai conseguir
emular a maioria dos comandos do DISCARD ALL), tu podes substituir a primeira
consulta por:

select setting from pg_settings where name ~ 'server_version_num'

Além disso, a melhor maneira de excluir as tabelas temporárias não é excluindo
o seu esquema [fazendo alguns testes...] pois ele vai reutilizar o OID do
esquema temporário para as tabelas temporárias subsequentes (um bug do pg?).
Ao invés disso, remova as tabelas uma a uma (é como o DISCARD TEMP faz).

> A documentação do pgbouncer não é grande coisa, por isso estou aqui
> cheio de receios... será que estou indo pelo caminho certo ou existe
> algum outro "porém" nessa estória??? Ou será que o mais seguro é
> aguardar e utilizar o pgbouncer somente em conjunto do PostgreSQL 8.3???
> 
A versão 8.3 te daria mais segurança mas se você alterar o que disse acima
acho que vai funcionar com 8.2. Eu faria um teste de unidade (?) para saber se
a função proposta está se comportando de maneira correta.


-- 
  Euler Taveira de Oliveira
  http://www.timbira.com/
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a