On Tue, Jan 12, 2010 at 7:45 PM, Tom Lane <t...@sss.pgh.pa.us> wrote: > "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().
Or maybe the ~ operator. ...Robert -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs