Чтобы не читать всю проблему, мой основной вопрос:
Есть ли в PostgreSQL функция для экранирования символов регулярного выражения в строке?
Я исследовал документацию, но не смог найти такую функцию.
Вот полная проблема:
В базе данных PostgreSQL у меня есть столбец с уникальными именами. У меня также есть процесс, который периодически вставляет имена в это поле, и для предотвращения дублирования, если ему нужно ввести имя, которое уже существует, он добавляет пробел и круглые скобки со счетчиком до конца.
т.е. Имя, Имя (1), Имя (2), Имя (3) и т. Д.
В нынешнем виде,
WHERE a.r1_name ~* regex_escape(var_name) || E' \\(\\d+\\)'
Приветствуются любые предложения, в том числе возможная переработка моего решения для дублирования имен.