Thread: One-time plans
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
"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
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