Re: Using POSIX Regular Expressions on xml type fields gives inconsistent results
От | Denis Papathanasiou |
---|---|
Тема | Re: Using POSIX Regular Expressions on xml type fields gives inconsistent results |
Дата | |
Msg-id | 50D4837A.2060704@banrai.com обсуждение исходный текст |
Ответ на | Re: Using POSIX Regular Expressions on xml type fields gives inconsistent results ("David Johnston" <polobo@yahoo.com>) |
Ответы |
Re: Using POSIX Regular Expressions on xml type fields gives inconsistent results
|
Список | pgsql-general |
On 12/21/2012 10:35 AM, David Johnston wrote: >> >> If you look at the four examples which follow the posix match table in the >> docs (http://www.postgresql.org/docs/9.1/static/functions- >> matching.html#FUNCTIONS-POSIX-TABLE), >> some of them work from the left side, e.g.: >> >> 'abc' ~ '(b|d)' true >> >> In my original example, I found I could write this from left to right like > this, >> and it would still work: >> >> '(b|d)' ~ 'abc' true > > Really??? > > Testing on Windows 9.0.4 this expression returns FALSE, not true as you > claim. Please try again and reply with detailed version information and the > exact query(s) used if you can get the behavior to repeat itself. => select id from form_d where '(kumar|gonzales)' ~* any( CAST(xpath('//PersonsList/PersonName/LastName/text()', data) as TEXT[]) ); This expression returned (correctly) the information I wanted. Shouldn't it *not* have worked b/c the '(kumar|gonzales)' regex is on the left? I was hoping to be able to use the xml type field to be able to do '^a' type searches on names (e.g. a search for 'Fred' would also match 'Frederick', etc.) but since it seems that I cannot, I'll look at different ways of solving this problem.
В списке pgsql-general по дате отправления: