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 по дате отправления: