BUG #3487: regular exp

Started by Mikhailover 18 years ago2 messagesbugs
Jump to latest
#1Mikhail
Tuchkov.Michail@gmail.com

The following bug has been logged online:

Bug reference: 3487
Logged by: Mikhail
Email address: Tuchkov.Michail@gmail.com
PostgreSQL version: 8.1
Operating system: windows 2003 SP2
Description: regular exp
Details:

Please, help me!
My code:
"IF char_length(substring(str from '^[a-zA-Z]*://'))=0 THEN
str:= 'http://'||str;
END IF;"

If str= http://www.msn.com then nothing happen
(all is OK), but if str= just www.msn.com then nothing happen too!

Why?

Then I experimen with that:
I change '=' to '<>'
results:
str=http://www.msn.com -> http://http://www.msn.com
str=www.msn.com -> http://www.msn.com

Thank you.

#2Magnus Hagander
magnus@hagander.net
In reply to: Mikhail (#1)
Re: BUG #3487: regular exp

On Thu, Jul 26, 2007 at 05:53:54AM +0000, Mikhail wrote:

The following bug has been logged online:

Bug reference: 3487
Logged by: Mikhail
Email address: Tuchkov.Michail@gmail.com
PostgreSQL version: 8.1
Operating system: windows 2003 SP2
Description: regular exp
Details:

Please, help me!
My code:
"IF char_length(substring(str from '^[a-zA-Z]*://'))=0 THEN
str:= 'http://&#39;||str;
END IF;"

If str= http://www.msn.com then nothing happen
(all is OK), but if str= just www.msn.com then nothing happen too!

Why?

Because substring() returns NULL when there is no match, not the empty
string. So you need
IF substring(str from '^[a-zA-Z]*://') IS NULL THEN
...

//Magnus