Postgres Проверка RegExp в javascript - PullRequest
0 голосов
/ 27 апреля 2020

При выполнении запроса Postgres с использованием сопоставления регулярных выражений POSIX запрос может привести к ошибке invalid regular expression, если один из шаблонов RegExp недопустим. Если в запросе регулярного выражения используется столбец базы данных, ошибка произойдет, если только одна из строк базы данных содержит недопустимый шаблон RegExp.

Проблема заключается в том, что проверка значений, которые будут использоваться для этого типа запроса, не отображается быть очень простым. Все решения, которые мне встречались для проверки шаблонов RegExp в javascript, включая библиотеки, такие как regexpp, не являются надежными для проверки того, будет ли Postgres считать данный шаблон допустимым.

Есть ли способ проверить, будет ли шаблон действительным в запросе Postgres, или это единственный способ выполнить эту проверку, чтобы фактически выполнить запрос Postgres с использованием шаблона?

1 Ответ

0 голосов
/ 28 апреля 2020

Я не думаю, что есть что-то встроенное, что делает это доступным для пользователя способом. Вы можете создать свою собственную функцию для этого, перехватывая ошибку.

create function true_on_error(text) returns bool language plpgsql as $$
BEGIN
    perform regexp_match('',$1); 
    return false;
exception when others then
    return true;
end$$;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...