On Fri, 19 Jul 2002, Jakub Ouhrabka wrote:
> is there any function in postgresql saying me if the given regular
> expression is valid? I store regular expressions in a table and then
> perform some searches using ~* operator. But when the stored regular
> expression is invalid (eg '+') then the query with ~* fails (ERROR:
> Invalid regular expression: ?, *, or + operand invalid.) I'd like to have
> a check constraint on that column storing regular expressions, so that no
> one can insert invalid data and cause failing of other queries... Is there
> any simple way?
Hmm, maybe something like
CHECK (('' ~* col) or (not ('' ~* col)) or (col is null))
(remove the last part if you don't want nulls)