Thread: missing support for using regex and arrays

missing support for using regex and arrays

From
Pavel Stehule
Date:
Hello

I need to solve checking varchar array. I can write

CHECK('aaa' = ALL(x)) -- x is array
but I can't CHECK(ALL(x) = 'aaaa') or CHECK (ALL(x) ~ 'regex')

I know so I can write plpgsql function. I have question for hackers. Do
You plan better support for it?

Thank You
Pavel Stehule

Re: missing support for using regex and arrays

From
Tom Lane
Date:
Pavel Stehule <stehule@kix.fsv.cvut.cz> writes:
> I need to solve checking varchar array. I can write
> CHECK('aaa' = ALL(x)) -- x is array
> but I can't CHECK(ALL(x) = 'aaaa') or CHECK (ALL(x) ~ 'regex')
> I know so I can write plpgsql function. I have question for hackers. Do
> You plan better support for it?

No.  The ALL keyword has to follow the operator it applies to --- the
syntax is not just "all(something)" but "something op all(something)".
I don't think we can relax that without creating syntactic ambiguity.

If you want to work with non-commutative operators such as regex, you
may need to invent your own operator.

            regards, tom lane