citext function overloads for text parameters

From: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
To: Shay Rojansky <roji(at)roji(dot)org>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: citext function overloads for text parameters
Date: 2018-05-07 07:05:20
Message-ID: CAKFQuwY9u14TqG8Yzj=fAB0tydvvtK7ibgFEx3tegbPWsGjJpg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Sunday, May 6, 2018, Shay Rojansky <roji(at)roji(dot)org> wrote:
>
>
> Thanks for the input. It's worth noting that the equality operator
> currently works in the same way: citext = text comparison is (surprisingly
> for me) case-sensitive.
>
> My expectation was that since citext is supposed to be a case-insensitive
> *type*, all comparison operations involving it should be case-insensitive;
>

Comparison requires both things to be the same type. The rules for
implicitly converting one type to another prefer the core type text over
the extension type citext.

IOW, there is no such operator =(citext,text) and thus "citext = text
comparison" is technically invalid.

At this point we're sorta stuck with our choice, and while individual
databases can implement their own functions and operators there is value in
doing things the way the system provides to minimize future confusion and
bugs.

David J.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Shay Rojansky 2018-05-07 07:09:52 Re: citext function overloads for text parameters
Previous Message Heikki Linnakangas 2018-05-07 07:00:20 Re: Having query cache in core