Re: [HACKERS] Surjective functional indexes
От | Konstantin Knizhnik |
---|---|
Тема | Re: [HACKERS] Surjective functional indexes |
Дата | |
Msg-id | 0233efe5-a48f-3365-fc85-12aab62f6471@postgrespro.ru обсуждение исходный текст |
Ответ на | Re: [HACKERS] Surjective functional indexes (Simon Riggs <simon@2ndquadrant.com>) |
Ответы |
Re: [HACKERS] Surjective functional indexes
|
Список | pgsql-hackers |
On 18.01.2018 11:38, Simon Riggs wrote: > On 10 January 2018 at 09:54, Konstantin Knizhnik > <k.knizhnik@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
В списке pgsql-hackers по дате отправления: