"Vee" <se...@hotmail.com> writes: > -- The problem query > select data, regexp_matches(data, '(h..l)') > from test;
>> hello {hell} > Since I have no "where" clause, I would expect to see all the rows in the > result of the second case, with possibly a NULL value for the non-matched > rows. No. regexp_matches() returns setof something, meaning a row per match. When you have no match, you get no rows. And that in turn means that the calling select produces no rows --- just as it could also produce more than one row from a given table row. I think the behavior you are after is probably more like that of substring(). regards, tom lane -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs