Re: immutable functions vs. join for lookups ?

From: Dawid Kuroczko <qnex42(at)gmail(dot)com>
To: weigelt(at)metux(dot)de, pgsql-performance(at)postgresql(dot)org
Subject: Re: immutable functions vs. join for lookups ?
Date: 2005-04-22 10:15:24
Message-ID: 758d5e7f050422031579a04963@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

On 4/21/05, Enrico Weigelt <weigelt(at)metux(dot)de> wrote:
> <snip>
> > Even if your data never changes it *can* change so the function should
> > be at most stable not immutable.
>
> okay, the planner sees that the table could potentionally change.
> but - as the dba - I'd like to tell him, this table *never* changes
> in practise (or at most there will be an insert once a year)
>
> isnt there any way to enforce the function to be really immutable ?

Never say never. :)

And to answer your question -- your IMMUTABLE function may reference
other functions (even VOLATILE). So you may create a "caller" immutable
function which just calls your non-immutable function. But from
performance standpoint there is not much difference (probably your
STABLE function will be faster than STABLE inside IMMUTABLE function).

Ah, and please note that some time in future PostgreSQL may require
that IMMUTABLE function calls only IMMUTABLE functions.

Regards,
Dawid

In response to

Browse pgsql-performance by date

  From Date Subject
Next Message Jeff 2005-04-22 11:48:29 Re: two queries and dual cpu (perplexed)
Previous Message Dawid Kuroczko 2005-04-22 10:08:50 Re: immutable functions vs. join for lookups ?