Re: PATCH: CITEXT 2.0 v4 - Mailing list pgsql-hackers

From Michael Paesold
Subject Re: PATCH: CITEXT 2.0 v4
Date
Msg-id B33BE1AA-D015-4428-A93D-8B305AE9050B@gmx.at
Whole thread Raw
In response to Re: PATCH: CITEXT 2.0 v4  ("David E. Wheeler" <david@kineticode.com>)
Responses Re: PATCH: CITEXT 2.0 v4  ("David E. Wheeler" <david@kineticode.com>)
Re: PATCH: CITEXT 2.0 v4  ("David E. Wheeler" <david@kineticode.com>)
List pgsql-hackers
David E. Wheeler writes:

> On Jul 17, 2008, at 03:45, Michael Paesold wrote:
>
>> Wouldn't it be possible to create a variant of regexp_replace, i.e.  
>> regexp_replace(citext,citext,text), which would again lower-case  
>> the first two arguments before passing the input to  
>> regexp_replace(text,text,text)?
>
> Sure, but then you end up with this:
>
> template1=# select regexp_replace( 'Fxx'::citext, 'X'::citext, 'o');
> regexp_replace
> ----------------
> foo
> (1 row)

Yeah, you are right, I see. :-)


> Which is just wrong. I'm going to look at the regex C functions  
> today and see if there's an easy way to just always pass them the  
> 'i' flag, which would do the trick. That still won't help replace(),  
> split_part(), or translate(), however.

Calling regex functions with the case-insensitivity option would be  
great. It should also be possible to rewrite replace() into  
regexp_replace() by first escaping the regex meta characters.

Actually re-implementing those functions in a case insensitive way  
would still be an option, but of course some amount of work. The  
question is, how much use case there is.

Best Regards
Michael Paesold


pgsql-hackers by date:

Previous
From: "Marko Kreen"
Date:
Subject: Re: TABLE-function patch vs plpgsql
Next
From: Gregory Stark
Date:
Subject: Re: [PATCH]-hash index improving