standard_conforming_strings
| 버전 | 기본값 | context | 타입 |
|---|---|---|---|
| 14 | on (prior releases defaulted to off ) | user | boolean |
| 15 | on (prior releases defaulted to off ) | user | boolean |
| 16 | on (prior releases defaulted to off ) | user | boolean |
| 17 | on (prior releases defaulted to off ) | user | boolean |
| 18 | on (prior releases defaulted to off ) | user | boolean |
| 19 | — | user | boolean |
일반 문자열 리터럴('...')에서 backslash를 SQL 표준대로 문자 그대로 취급할지 정한다.
PostgreSQL 9.1부터 기본값이 on이다(이전 버전은 off였다). off이면 예전 PostgreSQL처럼 backslash가 이스케이프 문자로 동작한다. 애플리케이션은 이 파라미터 값을 조회해 문자열 리터럴이 어떻게 처리될지 판단할 수 있고, 파라미터의 존재 자체가 escape string 문법(E'...')이 지원된다는 표시이기도 하다. backslash를 이스케이프 문자로 쓰고 싶다면 일반 리터럴 대신 escape string 문법을 사용해야 한다.
운영 노트: 이 값을 off로 되돌리는 것은 아주 오래된 애플리케이션 호환 용도로만 고려한다. 클라이언트 라이브러리·드라이버는 대부분 on을 전제로 이스케이프를 처리하므로, 서버와 애플리케이션의 가정이 어긋나면 문자열 처리 버그나 injection 위험으로 이어질 수 있다.
출처: PostgreSQL 18 문서