함수 동작 관련 설정

함수 동작 관련 설정

base58, dateTrunc, locate, range, sleep, visibleWidth 등 여러 함수의 동작 방식을 제어하는 설정들이에요. 입력 크기 안전 임계값, 인자 순서 호환성, 반환 타입 동작 등을 다룬답니다. 이 설정들은 system.settings 테이블에서 확인할 수 있고 소스 코드에서 자동 생성된 값들이에요.

출처: 문서

본문

이 설정들은 system.settings에서 확인할 수 있고, 소스 코드에서 자동 생성된 값들이에요.

function_base58_max_input_size

함수 base58Encode, base58Decode, tryBase58Decode의 단일 입력 값의 최대 크기(바이트)예요. 일반 base58 변환은 입력 길이에 대해 이차 복잡도를 가지므로, 단일 큰 값은 아주 오래 실행될 수 있어요. base58은 짧은 데이터(키, 해시, 주소)를 위한 것이므로 기본값 10 KB는 넉넉한 안전 임계값이에요. base58Encodebase58Decode는 더 큰 입력에 대해 TOO_LARGE_STRING_SIZE를 던지고, tryBase58Decode는 빈 문자열을 반환해요. 값 0은 제한을 비활성화해요(이 설정이 도입되기 전의 동작). 선형인 base32base64 함수는 영향을 받지 않아요.

function_date_trunc_return_type_behavior

dateTrunc 함수의 결과 타입 동작을 변경할 수 있게 해요.

가능한 값:

  • 0 — 두 번째 인자가 DateTime64/Date32이면 첫 번째 인자의 시간 단위와 무관하게 반환 타입이 DateTime64/Date32가 돼요.
  • 1 — Date32의 경우 결과는 항상 Date에요. DateTime64의 경우 second 이상의 시간 단위에 대해 결과는 DateTime이에요.

function_locate_has_mysql_compatible_argument_order

함수 locate의 인자 순서를 제어해요.

가능한 값:

  • 0 — 함수 locate(haystack, needle[, start_pos]) 인자를 받아요.
  • 1 — 함수 locate(needle, haystack, [, start_pos]) 인자를 받아요(MySQL 호환 동작).

function_range_max_elements_in_block

함수 range가 생성하는 데이터 양에 대한 안전 임계값을 설정해요. 함수가 블록당 생성하는 최대 값 수를 정의해요(블록의 각 행에 대한 배열 크기의 합).

가능한 값: 양의 정수.

함께 보기:

  • max_block_size
  • min_insert_block_size_rows

function_sleep_max_microseconds_per_block

함수 sleep이 각 블록에 대해 잠들 수 있는 최대 마이크로초 수예요. 사용자가 더 큰 값으로 호출하면 예외를 던져요. 안전 임계값이에요.

function_visible_width_behavior

visibleWidth 동작의 버전이에요. 0 — 코드 포인트 수만 셈해요. 1 — 너비 0 및 결합 문자를 올바르게 세고, 전각 문자를 2로 세며, 탭 너비를 추정하고, 삭제 문자를 셉니다.

더 알아보기 (Learn more)