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.
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services