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

Responder a