From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Dmytry Strikha <dm(dot)strikha(at)gmail(dot)com> |
Cc: | pgsql-bugs(at)lists(dot)postgresql(dot)org |
Subject: | Re: Indexes on expressions that include user-defined functions are not reindexed when the function definition is changed |
Date: | 2019-05-29 17:25:15 |
Message-ID: | 2991.1559150715@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
Dmytry Strikha <dm(dot)strikha(at)gmail(dot)com> writes:
> If the index on expression is defined so, that the indexed value
> depends on a user-defined function, it doesn't get reindexed when the
> function's definition changes, therefore completely wrong values can
> be displayed when the query is executed using that index.
If you declare the function immutable, as you must to use it in an
index, then redefining the function in a way that changes its results
means *you* broke the contract. I don't think it's unreasonable of
us to insist that it's on your head to issue any necessary reindexing.
Certainly, neither of the plausible alternatives are acceptable:
* Reindex any time the function is changed at all. This is putting
an undue burden on people who did follow the contract.
* Detecting whether the redefinition changed the results.
See halting problem.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Dmytry Strikha | 2019-05-29 17:36:54 | Re: Indexes on expressions that include user-defined functions are not reindexed when the function definition is changed |
Previous Message | Dmytry Strikha | 2019-05-29 17:00:36 | Indexes on expressions that include user-defined functions are not reindexed when the function definition is changed |