2014-07-04 8:52 GMT-03:00 Thiago <[email protected]>: > Matheus, muito obrigado, deu certo. >
Tranquilo. :) > Vou estudar um pouco sobre isso. Interessante que agente aprende a criar > as funções, pl_pg mas nunca levei muito em consideração estas opções. > > É, muita gente não usa. Eu particularmente acho que seria interessante o PG tentar identificar essa características para algumas funções, mas como não dá (até porque no PG pode-se criar funções em várias linguagens, o que dificulta essa verificação) ele acaba assumindo o mais seguro, que é VOLATILE, como padrão. > Se souber de algum artigo para me indicar. > Sei não. Mas é um bom tópico para escrever num blog. Vou ver se escrevo sobre isso essa semana e volto aqui pra passar pra vocês. Mas um resumo bem prático seria: - IMMUTABLE: tudo que é uma computação direta dos parâmetros (como no seu caso). E só deve fazer chamadas à outras funções IMMUTABLE. - STABLE: basicamente tudo que faça consultas somente leitura no banco. E só deve fazer chamada à outras funções que sejam IMMUTABLE ou STABLE. - VOLTILE: tudo que faça escrita ou seja baseado em parâmetros de configuração. Pode chamar qualquer outra função (basicamente este tipo de função é **sempre** chamada, não há otimização). Atenciosamente, -- Matheus de Oliveira Analista de Banco de Dados Dextra Sistemas - MPS.Br nível F! www.dextra.com.br/postgres
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
