On 2013-07-22 17:04:06 -0400, Alvaro Herrera wrote:
> Pavan Deolasee escribió:
> > Hello,
> >
> > While doing some tests, I observed that expression indexes can malfunction
> > if the underlying expression changes.
>
> [...]
>
> > Perhaps this is a known behaviour/limitation, but I could not find that in
> > the documentation. But I wonder if it makes sense to check for dependencies
> > during function alteration and complain. Or there are other reasons why we
> > can't do that and its a much larger problem than what I'm imagining ?
>
> This is a tough problem. The dependency mechanism has no way to keep
> track of this kind of dependency; all it does is prevent the function
> from being dropped altogether, but preventing it from acquiring a
> conflicting definition is outside its charter.
>
> One way to attack this would be registering dependencies of a new kind
> on functions used by index expressions. Then CREATE OR REPLACE function
> could reject alteration for such functions. I don't know if we care
> enough about this case.
I think changing the results of a immutable function violates the
contract enough to make this the user's fault. Also the other solutions
seem hard to achieve ;)
Greetings,
Andres Freund
-- Andres Freund http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training &
Services