2014-07-04 10:55 GMT-03:00 Flavio Henrique Araque Gurgel <[email protected]>:
> Gostaria de adicionar aqui, IMMUTABLE significa principalmente que o >>> resultado da função é sempre o mesmo dado um conjunto de parâmetros >>> de entrada, o que permite por exemplo fazer um índice sobre uma >>> expressão que usa a dita função. >>> >> > Ok, está correto. Só tome cuidado com essa frase pois pode causar >> confusão, devemos também adicionar a restrição de que não se deve >> basear-se em nenhum parâmetro de configuração (muito comum por exemplo >> para timestamptz e a GUC TimeZone). >> > > Não entendi a parte da confusão :( > Apenas quis esclarecer o nome IMMUTABLE em uma frase direta. Sei lá, eu > sou meio ligado em linguística. > > É só porque já vi confusões desse tipo. Eu só quis adicionar (e acho que também me embananei para explicar isso) que "IMMUTABLE significa principalmente que o resultado da função é sempre o mesmo dado um conjunto de parâmetros, ** independente de dados externos (como consultas em tabelas ou fontes externas) ou parâmetros de configuração **". Essa falta do "e" que pode causar confusão. Existem até casos onde pode-se, com muito cuidado, burlar essas regras e marcar como IMMUTABLE uma função que não seja. Mas esse é assunto para outra conversa (e com cautela). > - STABLE: basicamente tudo que faça consultas somente leitura no >>>> banco. >>>> E só deve fazer chamada à outras funções que sejam IMMUTABLE ou >>>> STABLE. >>>> >>> > E que seu resultado só varia a partir dos resultados da(s) >>> leitura(s) feitas, e não dos parâmetros de entrada. >>> >> > Não sei se ficou claro. Acho que você quis dizer: " E que seu resultado >> só varia a partir dos resultados da(s) leitura(s) feitas **e** dos >> parâmetros de entrada.". Ou ainda, "Que seu resultado, dados os mesmos >> parâmetros de entrada, só variam caso o conjunto de dados das leituras >> mudem". >> > > Desculpe, me confundi ao escrever, sua correção foi bem colocada. Acontece. Tranquilo. 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
