Ошибка с оператором LIKE в PostgreSQL (Spring, Hibernate)

Я использую Spring и PostgreSQL в своем проекте. В dev стенде postgresql 15 версии, в prod 11.

При переносе в prod возникает ошибка при выполнении следующего запроса:

Page<Etd> findByProjectNameContains(String projectName, Pageable pageable);

Сообщение ошибки выглядит так:

Caused by: org.postgresql.util.PSQLException: Unterminated string literal started at position 1 139 in SQL
  select ...
  from etd_requests e1_0
  where e1_0.project_name like ? escape '\'
  order by e1_0.id offset ? rows fetch first ? rows only.
Expected char

Я попробовал вручную выполнить запрос в dev и prod БД, в результате ошибка выходит только во втором случае

dev db

prod db

В чем может быть проблема?

Update

В postgresql.conf поменял standard_conforming_string = off на standard_conforming_string = on, после этого запрос выполняется без ошибок. Спасибо пользователю Мелкий


Ответы (1 шт):

Автор решения: Мелкий

В базах сконфигурирован разный standard_conforming_strings.

melkij@melkij:~$ psql -c 'set standard_conforming_strings to on' -c "select 'foo' like '%123%' escape '\'"
SET
 ?column? 
----------
 f
(1 строка)

melkij@melkij:~$ psql -c 'set standard_conforming_strings to off' -c "select 'foo' like '%123%' escape '\'"
SET
WARNING:  nonstandard use of \' in a string literal
LINE 1: select 'foo' like '%123%' escape '\'
                                         ^
HINT:  Use '' to write quotes in strings, or use the escape string syntax (E'...').
ERROR:  unterminated quoted string at or near "'\'"
LINE 1: select 'foo' like '%123%' escape '\'
→ Ссылка