On 05.06.25 22:57, Jeff Davis wrote:
On Tue, 2025-06-03 at 20:22 -0700, Jeff Davis wrote:
EQUALITY marker: indicates that the function or index AM depends on
CollOid for the equality semantics of the input expression. Examples:
texteq(), btree AM, hash AM. (Note: EQUALITY is only important for
non-
deterministic collations and we might want to omit it if too many
functions qualify, but it helps illustrate the rest of the proposal
so
I will leave it in for now.)
I had trouble contriving a case where tracking EQUALITY as a separate
marker would be practically useful. When we allow non-deterministic
collations at the database level in the future, it might be useful in a
case like:
CREATE TABLE r(t TEXT, CHECK(length(t) <= 10));
because length() doesn't care about equality, so it would have no
dependency on the database collation even if it were, for example,
case-insensitive.
But such a length() function would also not care about the "collate" or
"ctype" markers. So it would probably not be marked at all.