On 18.01.2018 11:38, Simon Riggs wrote:
On 10 January 2018 at 09:54, Konstantin Knizhnik
<k.knizh...@postgrespro.ru> wrote:

Sorry, issue with documentation is fixed.
OK, thanks.

Patch appears to work cleanly now.

I'm wondering now about automatically inferring "recheck_on_update =
true" for certain common datatype/operators. It doesn't need to be an
exhaustive list, but it would be useful if we detected the main use
case of

(JSONB datatype column)->>CONSTANT

Seems like we could do a test to see if the index function is
FUNCTION(COLUMNNAME, CONSTANTs...)
{JSONB, ->>} or
{jsonb_object_field_text(Columnname, Constant)}
{substring(Columname, Constants...)}

It would be a shame if people had to remember to use this for the
common and obvious cases.

Right now by default index is considered as projective. So even if you do not specify "recheck_on_update" option, then recheck will be done. This decision is based on the assumption that most of functional indexes are actually projective and looks likes (JSONB datatype column)->>CONSTANT. So do you think that this assumption is not correct and we should switch disable recheck_on_update by default? If not, then there is an opposite challenge: find out class of functions which definitely are not projective and recheck on them will have no sense.

--
Konstantin Knizhnik
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company


Reply via email to