Re: PostgreSQL executing my function too many times during query - Mailing list pgsql-general

From Tom Lane
Subject Re: PostgreSQL executing my function too many times during query
Date
Msg-id 18643.1210892723@sss.pgh.pa.us
Whole thread Raw
In response to PostgreSQL executing my function too many times during query  ("D. Dante Lorenso" <dante@lorenso.com>)
Responses Re: PostgreSQL executing my function too many times during query  ("D. Dante Lorenso" <dante@lorenso.com>)
List pgsql-general
"D. Dante Lorenso" <dante@lorenso.com> writes:
> This format causes the function to execute too many times:

>    SELECT COUNT(*) AS result
>    FROM credit_card
>    WHERE card_number_enc = cc_encrypt('4111-1111-1111-1111', 'pwd')
>    AND card_number_enc != cc_encrypt('4111111111111111', 'pwd');

If the function is marked immutable that query should certainly evaluate
it only twice.

I notice that the EXPLAINs show it as credit_card_encrypt() not
cc_encrypt() --- maybe you got confused about which function you
were adjusting the properties of?

            regards, tom lane

pgsql-general by date:

Previous
From: "D. Dante Lorenso"
Date:
Subject: PostgreSQL executing my function too many times during query
Next
From: "Vance Maverick"
Date:
Subject: triggers: dynamic references to fields in NEW and OLD?