cast_ipv4_ipv6_default_on_conversion_error / cast_keep_nullable 세션 설정

cast_ipv4_ipv6_default_on_conversion_error / cast_keep_nullable 세션 설정

이 설정들은 CAST 연산과 변환 함수가 변환 오류 시 기본값을 반환할지, Nullable 타입을 유지할지를 제어해요. ClickHouse 소스 코드에서 자동으로 생성된 세션 설정 문서예요.

출처: 문서

본문

이 설정들은 system.settings에서 사용할 수 있으며 소스 코드에서 자동으로 생성돼요.

cast_ipv4_ipv6_default_on_conversion_error

IPv4로의 CAST 연산자, IPV6 타입으로의 CAST 연산자, toIPv4, toIPv6 함수가 변환 오류 시 예외를 발생시키는 대신 기본값을 반환해요.

cast_keep_nullable

CAST 연산에서 Nullable 데이터 타입을 유지할지 여부를 활성화하거나 비활성화해요.

설정이 활성화되고 CAST 함수의 인자가 Nullable이면 결과도 Nullable 타입으로 변환돼요. 설정이 비활성화되면 결과는 항상 대상 타입을 정확히 가지게 돼요.

가능한 값:

  • 0 — CAST 결과가 지정된 대상 타입을 정확히 가짐.
  • 1 — 인자 타입이 Nullable이면 CAST 결과가 Nullable(DestinationDataType)으로 변환됨.

예시

다음 쿼리는 대상 데이터 타입을 정확히 결과로 만듭니다:

SET cast_keep_nullable = 0;
SELECT CAST(toNullable(toInt32(0)) AS Int32) as x, toTypeName(x);

결과:

┌─x─┬─toTypeName(CAST(toNullable(toInt32(0)), 'Int32'))─┐
│ 0 │ Int32                                             │
└───┴───────────────────────────────────────────────────┘

다음 쿼리는 대상 데이터 타입에 Nullable 수정을 결과로 만듭니다:

SET cast_keep_nullable = 1;
SELECT CAST(toNullable(toInt32(0)) AS Int32) as x, toTypeName(x);

결과:

┌─x─┬─toTypeName(CAST(toNullable(toInt32(0)), 'Int32'))─┐
│ 0 │ Nullable(Int32)                                   │
└───┴───────────────────────────────────────────────────┘

참고

더 알아보기 (Learn more)