Re: 8.0.3 regexp_replace()...

Поиск
Список
Период
Сортировка
От Stephan Szabo
Тема Re: 8.0.3 regexp_replace()...
Дата
Msg-id 20060131103041.D56698@megazone.bigpanda.com
обсуждение исходный текст
Ответ на Re: 8.0.3 regexp_replace()...  (Martijn van Oosterhout <kleptog@svana.org>)
Список pgsql-general
On Tue, 31 Jan 2006, Martijn van Oosterhout wrote:

> On Mon, Jan 30, 2006 at 11:27:23AM -0800, rlee0001 wrote:
> > The problem was that SUBSTRING returns NULL if it cannot find any
> > matches for the pattern and when the second parameter to REPLACE
> > returns NULL, REPLACE returns NULL (which is idiotic). Using COALESCE I
> > ensure that is SUBSTRING cannot find a match that '' (empty string) is
> > sent to REPLACE. REPLACE then behaves as expected and replaces nothing.
>
> Well, the rule for STRICT functions (which replace is) is that if any
> of the arguments are NULL, the result is NULL. Most of the time this is
> what you want. IMHO the problem above is substring returning null. NULL
> should generally mean "unknown" and a substr that doesn't match
> certainly isn't unknown. Question is, what should it return then?

Sadly, that seems to me to match the SQL2003 semantics for its regular
expression substring search.  Or at least I believe that's what 6.29 GR5g
is implying.

В списке pgsql-general по дате отправления:

Предыдущее
От: Michael Fuhr
Дата:
Сообщение: Re: libpq questions
Следующее
От: Keary Suska
Дата:
Сообщение: Re: Basic questions about PQprepare()