Re: [HACKERS] Surjective functional indexes - Mailing list pgsql-hackers

From Konstantin Knizhnik
Subject Re: [HACKERS] Surjective functional indexes
Date
Msg-id 592BBD90.3060104@postgrespro.ru
Whole thread Raw
In response to Re: [HACKERS] Surjective functional indexes  (Peter Eisentraut <peter.eisentraut@2ndquadrant.com>)
Responses Re: [HACKERS] Surjective functional indexes  (Christoph Berg <myon@debian.org>)
List pgsql-hackers
On 05/27/2017 09:50 PM, Peter Eisentraut wrote:
> On 5/25/17 12:30, Konstantin Knizhnik wrote:
>> Functions like (info->>'name') are named "surjective" ni mathematics.
> A surjective function is one where each value in the output type can be
> obtained by some input value.  That's not what you are after here.  The
> behavior you are describing is a not-injective function.
>
> I think you are right that in practice most functions are not injective.
>   But I think there is still quite some difference between a function
> like the one you showed that selects a component from a composite data
> structure and, for example, round(), where in practice any update is
> likely to change the result of the function.
>
Thank you, I will rename "surjective" parameter to "injective" with "false" as default value.
Concerning "round" and other similar functions - obviously there are use cases when such functions are used for
functional indexes. This is why I want to allow user to make a choice and this is the reason of introducing this
parameter.
The question is the default value of this parameter: should we by default preserve original Postgres behavior:
check only affected set of keys or should we pay extra cost for calculating value of the function (even if we managed
tostore
 
calculated value of the indexes expression for new tuple, we still have to calculate it for old tuple, so function will
becalculated
 
at least twice more times).

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




pgsql-hackers by date:

Previous
From: Amit Khandekar
Date:
Subject: Re: [HACKERS] UPDATE of partition key
Next
From: Beena Emerson
Date:
Subject: Re: [HACKERS] Adding support for Default partition in partitioning