validate_* 세션 설정

validate_* 세션 설정

이 페이지에서는 입력 검증과 관련된 validate_* 세션 설정들을 다뤄요. enum 리터럴, 그룹 키 타입, 변경 쿼리, 다각형을 검증하는 동작을 제어해요. 이 설정들은 system.settings 테이블에서 확인할 수 있으며 ClickHouse 소스에서 자동 생성돼요.

출처: 문서

본문

이 설정들은 system.settings에서 확인할 수 있으며 소스에서 자동 생성돼요.

validate_enum_literals_in_operators

활성화하면 IN, NOT IN, ==, != 같은 연산자의 enum 리터럴을 enum 타입에 대해 검증하고, 리터럴이 유효한 enum 값이 아니면 예외를 던져요.

validate_group_by_all_key_types

GROUP BY ALLSELECT 표현식을 확장하는 그룹 키를 allow_suspicious_types_in_group_by에 대해 검사할지 여부를 제어해요. 비활성화하면 26.7 이전 버전의 동작을 복원하는데, 그 버전은 GROUP BY ALL로 작성된 Variant 또는 Dynamic 키(예: 타입이 없는 JSON 하위 경로인 그룹 키)를 받아들였어요. 분석기가 활성화된 경우에만 적용돼요(enable_analyzer = 1, 기본값). 이전 분석기에서는 그러한 키가 26.7 이전에도 거부되었으므로 복원할 것이 없어요. 명시적 GROUP BY는 영향받지 않고 어느 쪽이든 그러한 키를 계속 거부하므로, 이는 allow_suspicious_types_in_group_by를 설정하는 것보다 더 좁은데, 후자는 명시적 GROUP BY에서도 그것들을 허용하기 때문이에요. 가능한 값:

  • 0 - GROUP BY ALL이 확장하는 키 타입이 검증되지 않아요.

  • 1 - 명시적 GROUP BY가 자신의 키를 검증하는 것처럼 검증돼요.

validate_mutation_query

승인하기 전에 변경 쿼리를 검증해요. 변경은 백그라운드로 실행되며, 잘못된 쿼리를 실행하면 변경이 멈춰 수동 개입이 필요할 수 있어요. 하위 호환되지 않는 버그를 만나는 경우에만 이 설정을 변경해요.

validate_polygons

pointInPolygon 함수에서 다각형이 자기 교차하거나 자기 접선일 때 예외를 던지는 것을 활성화 또는 비활성화해요. 가능한 값:

  • 0 — 예외 던지기 비활성화. pointInPolygon은 잘못된 다각형을 받아들이고 그것에 대해 아마도 잘못된 결과를 반환해요.

  • 1 — 예외 던지기 활성화.

더 알아보기 (Learn more)