On Tue, May 08, 2007 at 08:08:28AM -0400, Marshall, Steve wrote: > However, I think it would be possible to expand immutable functions > operating on constants to optimize constraint exclusion. Immutable > functions will always return the same result given the same inputs, so > this would be safe. Currently, immutable functions are not expanded > during planning such that the first query would be optimized using > constraint exclusion, while the second query would not:
The problem with this is that at planning time you don't necessarily have an active transaction snapshot. Prepared statements are the obvious example, but I think even in one-off statements there's no snapshot until after the planner has completed. This is also one of the problems with type input/output functions looking up stuff in tables. There was discussion about the handling type input/output functins and casts as a sort off InitExpr that is executed once, then inserted into the tree. However, that would still be too late to affect the planning. Have a nice day, -- Martijn van Oosterhout <[EMAIL PROTECTED]> http://svana.org/kleptog/ > From each according to his ability. To each according to his ability to > litigate.
Description: Digital signature