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) │
└───┴───────────────────────────────────────────────────┘
참고
- CAST 함수