Re: argument of AND must not return a set when using regexp_matches

Поиск
Список
Период
Сортировка
Искать
От
Tom Lane
Тема
Re: argument of AND must not return a set when using regexp_matches
Дата
Msg-id
4897.1358378623@sss.pgh.pa.us
Ответ на
Список
Дерево обсуждения
argument of AND must not return a set when using regexp_matches Robert James <srobertjames@gmail.com>
Re: argument of AND must not return a set when using regexp_matches Tom Lane <tgl@sss.pgh.pa.us>
Robert James  writes:
> SELECT (regexp_matches('abc', '(.)b(.)'))[1] IS NOT NULL AND true
> -- Gives this error:
> ERROR: argument of AND must not return a set
> SQL state: 42804

> Can anyone make heads or tails of it? Is it a real bug? Is there a work around?

It's not a bug: regexp_matches returns a set of rows, not a scalar
result.

You might want to stick it into a sub-select as per the trick suggested
in the manual - then you get a NULL rather than zero rows when there's
no match.  (Or, in the particular example at hand, it's not very clear
why you're using regexp_matches at all and not a plain old ~ operator.)

			regards, tom lane

В списке pgsql-general по дате отправления
От: Charles Porter
Дата:
От: David Johnston
Дата:
Сообщение: Re: INSERT... WHERE
FAQ