Re: PATCH: CITEXT 2.0 v4
Michael Paesold <mpaesold@gmx.at>
From: Michael Paesold <mpaesold@gmx.at>
To: David E. Wheeler <david@kineticode.com>
Cc: Robert Treat <xzilla@users.sourceforge.net>, pgsql-hackers@postgresql.org
Date: 2008-07-18T08:39:23Z
Lists: 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