Обсуждение: BUG #4580: select substring ('a' from '(b)?(a)') returns null
BUG #4580: select substring ('a' from '(b)?(a)') returns null
От
"substring and regular expresssion"
Дата:
The following bug has been logged online: Bug reference: 4580 Logged by: substring and regular expresssion Email address: m.mamin@intershop.de PostgreSQL version: 8.3.5 Operating system: Linux Description: select substring ('a' from '(b)?(a)') returns null Details: Hello, substring ('a' from '(b)?(a)') returns 'a' in version 8.2.x, but null with 8.3.5. Comparing this to the bug entry http://archives.postgresql.org/pgsql-bugs/2008-11/msg00112.php I guess this is not considered as a bug and can be fixed while surrounding the regexp with parenthensis: substring ('a' from '((b)?(a))') What I really miss, is the possibility to use the regex_flavor configuration to get the old behaviour back. I'm currently preparing an upgrade from 8.2.4 to 8.3.5 and this issue will probably require a very large code review for us. Cheers, Marc Mamin
"substring and regular expresssion" <m.mamin@intershop.de> writes: > substring ('a' from '(b)?(a)') returns 'a' in version 8.2.x, > but null with 8.3.5. Comparing this to the bug entry > http://archives.postgresql.org/pgsql-bugs/2008-11/msg00112.php I guess this > is not considered as a bug No, the old behavior was a bug. Using your example pattern, substring ('ba' from '(b)?(a)') would return 'b' not 'ba', so I can hardly see how you failed to notice that it wasn't behaving consistently. regards, tom lane