Ao executar os scripts a baixo ocorre o segunte erro:
WARNING:  terminating connection because of crash of another server process
DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.

Isso *não* é um bug. Há várias maneiras de derrubar o postgres; e, essa é mais
uma delas.

UPDATE pg_trigger SET tgdeferrable = TRUE, tginitdeferred = TRUE;

Por que você está fazendo isso? Nem todas os gatilhos são postergáveis (aka
_deferrable_). Assim, você está definindo como postergáveis os gatilhos que
fazem o cascateamento, que por sua vez, está levando a queda do postgres.
Talvez seja viável a prevenção de tal cenário mas ...

Sugiro que utilize a sintaxe (DEFERRABLE and INITIALLY DEFERRED) para definir
se os gatilhos são postergáveis ou não; só mexa no catálogo quando tiver
certeza que o que você está fazendo é seguro.

Correto Euler sua sugestão matou meu problema (fico te devendo uma cerveja), eu 
estava mexendo de forma errada na pg_trigger, fiz os testes e funcionou para 
todas as situações que temos aqui, demorei para responder porque estava 
executando os testes.
Mas com essa solução fiquei com uma duvida, fiz os testes com a contraint 
(a)DEFERRABLE INITIALLY DEFERRED e (b)INITIALLY DEFERRED, nos dois modos 
funcionou, fui ler a documentação e ai que fique na duvida.
Pelo que eu entendi a opção (a) ficou redundante a opção (b), não entendi a 
diferença entre as duas.

Obrigado


<<attachment: rogeriogrando.vcf>>

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a