함수 동작 관련 설정
함수 동작 관련 설정
base58, dateTrunc, locate, range, sleep, visibleWidth 등 여러 함수의 동작 방식을 제어하는 설정들이에요. 입력 크기 안전 임계값, 인자 순서 호환성, 반환 타입 동작 등을 다룬답니다. 이 설정들은 system.settings 테이블에서 확인할 수 있고 소스 코드에서 자동 생성된 값들이에요.
출처: 문서
본문
이 설정들은 system.settings에서 확인할 수 있고, 소스 코드에서 자동 생성된 값들이에요.
function_base58_max_input_size
함수 base58Encode, base58Decode, tryBase58Decode의 단일 입력 값의 최대 크기(바이트)예요. 일반 base58 변환은 입력 길이에 대해 이차 복잡도를 가지므로, 단일 큰 값은 아주 오래 실행될 수 있어요. base58은 짧은 데이터(키, 해시, 주소)를 위한 것이므로 기본값 10 KB는 넉넉한 안전 임계값이에요. base58Encode와 base58Decode는 더 큰 입력에 대해 TOO_LARGE_STRING_SIZE를 던지고, tryBase58Decode는 빈 문자열을 반환해요. 값 0은 제한을 비활성화해요(이 설정이 도입되기 전의 동작). 선형인 base32과 base64 함수는 영향을 받지 않아요.
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_sizemin_insert_block_size_rows
function_sleep_max_microseconds_per_block
함수 sleep이 각 블록에 대해 잠들 수 있는 최대 마이크로초 수예요. 사용자가 더 큰 값으로 호출하면 예외를 던져요. 안전 임계값이에요.
function_visible_width_behavior
visibleWidth 동작의 버전이에요. 0 — 코드 포인트 수만 셈해요. 1 — 너비 0 및 결합 문자를 올바르게 세고, 전각 문자를 2로 세며, 탭 너비를 추정하고, 삭제 문자를 셉니다.