Thread: One-time plans

One-time plans

From
"Simon Riggs"
Date:
ISTM we've just invented the concept of one-time plans to allow CREATE
INDEX to work effectively with HOT.

I'd like to extend that thought back over towards constraint exclusion.
Currently we don't allow STABLE functions to be used for constraint
exclusion because that mean plans were valid only if they are
immediately executed.

It seems like a very small act to force the plan to be one-time only
when we have successfully used a STABLE function to exclude a table.

--  Simon Riggs              EnterpriseDB   http://www.enterprisedb.com




Re: One-time plans

From
Tom Lane
Date:
"Simon Riggs" <simon@2ndquadrant.com> writes:
> ISTM we've just invented the concept of one-time plans to allow CREATE
> INDEX to work effectively with HOT.

> I'd like to extend that thought back over towards constraint exclusion.
> Currently we don't allow STABLE functions to be used for constraint
> exclusion because that mean plans were valid only if they are
> immediately executed.

> It seems like a very small act to force the plan to be one-time only
> when we have successfully used a STABLE function to exclude a table.

No.  STABLE functions are not stable enough for that --- you'd have to
assume they are unchanging across the whole transaction.
        regards, tom lane


Re: One-time plans

From
"Simon Riggs"
Date:
On Mon, 2007-04-02 at 12:20 -0400, Tom Lane wrote:
> "Simon Riggs" <simon@2ndquadrant.com> writes:
> > ISTM we've just invented the concept of one-time plans to allow CREATE
> > INDEX to work effectively with HOT.
> 
> > I'd like to extend that thought back over towards constraint exclusion.
> > Currently we don't allow STABLE functions to be used for constraint
> > exclusion because that mean plans were valid only if they are
> > immediately executed.
> 
> > It seems like a very small act to force the plan to be one-time only
> > when we have successfully used a STABLE function to exclude a table.
> 
> No.  STABLE functions are not stable enough for that --- you'd have to
> assume they are unchanging across the whole transaction.

Yep. I was mainly thinking about single statement transactions, which
are the norm for decision support.

--  Simon Riggs              EnterpriseDB   http://www.enterprisedb.com