Search Postgresql Archives

Re: Using POSIX Regular Expressions on xml type fields gives inconsistent results

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.


--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux