From: | Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com> |
---|---|
To: | Konstantin Knizhnik <k(dot)knizhnik(at)postgrespro(dot)ru>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Surjective functional indexes |
Date: | 2017-05-27 18:50:03 |
Message-ID: | b9929458-ba99-1ccd-ea61-181b852f9ec1@2ndquadrant.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
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.
--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
From | Date | Subject | |
---|---|---|---|
Next Message | Álvaro Hernández Tortosa | 2017-05-27 21:59:43 | Re: [HACKERS] Channel binding support for SCRAM-SHA-256 |
Previous Message | Vladimir Borodin | 2017-05-27 17:16:25 | Re: Broken hint bits (freeze) |