잘못된 별칭 치환으로 인해 발생하던 쿼리 형식 불일치 문제가 수정되었습니다. 참고: analyzer가 비활성화된 경우, 별칭 참조와 함께 IN을 사용하는 일부 CREATE VIEW 쿼리는 더 이상 처리되지 않을 수 있습니다. 이를 방지하려면 analyzer가 활성화되어 있는지 확인하십시오(analyzer는 24.3부터 기본적으로 활성화되어 있습니다). #82838 (Alexey Milovidov).
이제 JOIN USING ()의 빈 컬럼 목록은 구문 오류로 처리됩니다. 이전에는 이 문제가 쿼리 실행 시점에 INVALID_JOIN_ON_EXPRESSION으로 보고되었으며, 일부 경우(예: Join 스토리지와 조인하는 경우)에는 LOGICAL_ERROR를 유발할 수 있었습니다. #92371 (Vladimir Cherkasov).
Nullable(Tuple) 지원이 추가되었습니다. 이를 활성화하려면 allow_experimental_nullable_tuple_type = 1로 설정하십시오. #89643 (Nihal Z. Miaji).
JSON 타입의 고급 공유 데이터가 이제 기본적으로 활성화됩니다. 이전 버전은 새 JSON 형식으로 작성된 데이터 파트를 읽을 수 없으므로, 25.8보다 이전 버전으로 다운그레이드할 수 없습니다. 안전하게 업그레이드하려면 compatibility 설정을 이전 버전으로 지정하거나, MergeTree 설정 dynamic_serialization_version='v2' 및 object_serialization_version='v2'를 설정하십시오. #92511 (Pavel Kruglov).
PostgreSQL의 DATE 컬럼은 이제 ClickHouse에서 Date32로 추론됩니다(이전에는 Date로 추론되었으며, 이 경우 범위가 좁아 해당 범위를 벗어나는 값에서 오버플로가 발생할 수 있었습니다). 이제 Date32 값을 다시 PostgreSQL에 삽입하는 것도 지원됩니다. #95999 (Alexey Milovidov).
객체 스토리지에서 더 효율적으로 읽을 수 있도록 역방향 텍스트 인덱스의 스토리지 레이아웃을 개선했으며, 역방향 텍스트 인덱스가 있는 테이블의 병합 성능도 개선했습니다. 25.12 버전 이전에 실험적 텍스트 인덱스를 사용한 경우, 업그레이드 전에 해당 인덱스를 삭제한 뒤 새 버전에서 다시 빌드해야 합니다. #91518 (Anton Popov).
통계의 스토리지 형식이 변경되었습니다 — 이제 모든 통계가 단일 파일에 저장됩니다. #93414 (Anton Popov).
손상된 파트를 방지하기 위해 이제 인덱스 파일 이름이 이스케이프됩니다. 이전 버전에서 생성된, 이름에 ASCII 이외의 문자가 포함된 인덱스는 ClickHouse가 로드하지 못합니다. 이를 처리하려면 MergeTree 설정 escape_index_filenames를 사용하십시오. #94079 (Raúl Marín).
DEFLATE_QPL 및 ZSTD_QAT 코덱이 제거되었습니다. 업그레이드하기 전에 이 코덱으로 압축된 기존 데이터를 다른 코덱으로 변환하십시오. 참고로, 이전에는 이 코덱을 사용하려면 enable_deflate_qpl_codec 또는 enable_zstd_qat_codec를 활성화해야 했습니다. #92150 (Robert Schulze).
단순 ALIAS 컬럼에 대한 INSERT는 더 이상 지원되지 않습니다(#84154를 되돌림). 이 기능은 사용자 지정 형식에서는 작동하지 않았으며 setting으로 제어되지도 않았습니다. #92849 (Azat Khuzhin).
워크로드에 대한 CPU 스케줄링은 이제 기본적으로 선점형입니다. cpu_slot_preemption 서버 설정을 참조하십시오. #94060 (Sergei Trifonov).
exact_rows_before_limit, rows_before_aggregation, cross_to_inner_join_rewrite, regexp_dict_allow_hyperscan, regexp_dict_flag_case_insensitive, regexp_dict_flag_dotall, dictionary_use_async_executor 설정이 형식 설정에서 일반 설정으로 재분류되었습니다. 이는 대부분 내부 변경이며, 사용자에게 보이는 부작용은 없습니다. 다만 이러한 설정 중 하나라도 Iceberg, DeltaLake, Kafka, S3, S3Queue, Azure, Hive, RabbitMQ, Set, FileLog 또는 NATS 테이블 엔진 정의에 지정한 경우는 예외입니다. 이제 이러한 정의는 조용히 무시되지 않고 오류를 발생시킵니다. #94106 (Robert Schulze).
do_not_merge_across_partitions_select_final의 동작 의미가 단순화되었습니다. 이전에는 이 기능이 명시적으로 설정되지 않았더라도 자동으로 활성화될 수 있었고, 이로 인해 혼란과 프로덕션 환경 문제가 발생했습니다. 이제 1로 설정하면 기능이 무조건 활성화되며, 0으로 설정하면 새 설정 enable_automatic_decision_for_merging_across_partitions_for_final(기본값 1)을 따릅니다. #96110 (Nikita Taranov).
이제 apply_row_policy_after_final 설정이 기본적으로 활성화되어 ROW POLICY가 원래와 같이 FINAL을 따르도록 보장합니다. 이전에 FINAL 전에 행 정책을 적용하기 위해 optimize_move_to_prewhere_if_final=1에 의존했다면, 대신 apply_row_policy_after_final=0을 사용하십시오. #97279 (Nikolai Kochetov).
joinGet/joinGetOrNull는 이제 기반이 되는 Join 테이블에 대해 SELECT 권한을 적용합니다. joinGet('db.table', 'column', key)를 실행하려면 키 컬럼과 조회할 속성 컬럼 모두에 대한 SELECT 권한이 필요합니다. 이러한 권한이 없으면 쿼리가 ACCESS_DENIED와 함께 실패합니다. 마이그레이션하려면 전체 테이블 액세스에는 GRANT SELECT ON db.join_table TO user로 권한을 부여하고, 컬럼 수준 액세스에는 GRANT SELECT(key_col, attr_col) ON db.join_table TO user로 권한을 부여하십시오. #94307 (Vladimir Cherkasov).
CREATE TABLE ... AS ... 쿼리는 이제 SHOW TABLES가 아니라 SHOW COLUMNS 권한이 필요합니다. 이전에는 SHOW TABLES 권한을 잘못 검사하고 있었습니다. #94556 (pufit).
이제 모든 삽입에 대해 기본적으로 중복 제거가 활성화됩니다. 이전에는 비동기 삽입과 materialized view에는 비활성화되어 있었고, 동기 삽입에는 활성화되어 있었습니다. 이전 동작을 유지하려면 deduplicate_insert='backward_compatible_choice'를 명시적으로 설정하십시오(deduplicate_blocks_in_dependent_materialized_views도 동일). #95970 (Sema Checherinda).
이제 S3Queue 및 AzureQueue의 인메모리 메타데이터가 제한됩니다. 시스템 테이블 이름이 변경되었습니다. system.s3queue는 이제 system.s3queue_metadata_cache로, system.azure_queue는 이제 system.azure_queue_metadata_cache로 변경되었습니다. #95809 (Kseniia Sumarokova).
lazy_load_tables 데이터베이스 설정이 추가되었습니다. 이 설정을 활성화하면 데이터베이스 시작 시 테이블을 로드하지 않고, 대신 경량 StorageTableProxy를 생성하며 실제 테이블 엔진은 처음 접근할 때 구체화됩니다. #96283 (xiaohuanlin).
DatabaseReplicated에 대한 보조 ZooKeeper 지원이 추가되었습니다. #91683 (RinChanNOW).
이제 비동기 insert의 중복 제거가 종속 materialized view와도 함께 작동합니다. block_id 충돌이 발생하면 원본 블록을 필터링하여 충돌한 block_id와 연결된 행을 제거하고, 남은 행은 관련된 모든 materialized view 쿼리를 거쳐 변환됩니다. #89140 (Sema Checherinda).
이제 비동기 insert가 병렬 quorum을 지원합니다. 삽입된 데이터는 quorum에 복제되며, 중복이 발견되면 이전에 삽입된 데이터도 복제될 때까지 쿼리가 대기합니다. #93356 (Sema Checherinda).
통합된 중복 제거 해시로의 마이그레이션을 활성화하기 위해 insert_deduplication_version 서버 설정이 추가되었습니다. #95409 (Sema Checherinda).
기존 SYSTEM DROP [...] CACHE의 더 명확한 대안으로 SYSTEM CLEAR [...] CACHE 구문이 추가되었습니다. 기존 구문도 계속 사용할 수 있습니다. #93727 (Pranav Tiwari).
결과 파트를 커밋하지 않고 머지를 시뮬레이션하는 OPTIMIZE <table> DRY RUN PARTS <part names> 쿼리가 추가되었습니다. 머지의 정확성을 확인하고, 머지 관련 버그를 재현하며, 머지 성능을 벤치마킹하는 데 유용합니다. #96122 (Anton Popov).
이제 ignore_on_cluster_for_replicated_database 설정이 활성화된 경우 Replicated 데이터베이스에서 ON CLUSTER가 포함된 DDL 쿼리를 실행할 수 있습니다. 이때 클러스터 이름은 무시됩니다. #92872 (Kirill).
프로젝션 인덱스 기능을 단순화하고 확장하기 위한 새로운 구문과 프레임워크가 도입되었습니다. #91844 (Amos Bird).
삽입 블록이 생성되는 방식을 더 세밀하게 제어할 수 있도록 max_insert_block_size_bytes 설정이 추가되었습니다. #92833 (Kirill Kopnev).
use_primary_key 설정이 추가되었습니다. 기본 키(primary key)를 기반으로 한 그래뉼 가지치기를 비활성화하려면 이 값을 false로 설정하십시오. #93319 (Nihal Z. Miaji).
default_dictionary_database 설정이 추가되었습니다. 이 설정을 사용하면 데이터베이스 한정자 없이 참조되는 외부 딕셔너리(external dictionaries)를 지정된 기본 데이터베이스에서 ClickHouse가 조회할 수 있습니다. 이를 통해 XML로 정의된 전역 딕셔너리에서 SQL로 정의된 데이터베이스별 딕셔너리로의 마이그레이션이 간소화됩니다. #91412 (Dmitrii Plotnikov).
테이블에서 사용 중인 named collection이 삭제되지 않도록 check_named_collection_dependencies 설정이 추가되었습니다(기본적으로 활성화됨). #96181 (Pablo Marcos).
동시성 제어를 위한 max-min 공정 스케줄러가 추가되었습니다. 이에 따라 많은 쿼리가 제한된 CPU 슬롯을 두고 경쟁하는 높은 과구독 상황에서 공정성이 더욱 향상됩니다. 이제 concurrent_threads_scheduler 서버 설정의 기본값이 fair_round_robin 대신 max_min_fair이므로, 짧게 실행되는 쿼리가 오래 실행되는 쿼리 때문에 더 이상 불이익을 받지 않습니다. #94732#95300 (Sergei Trifonov).
ClickHouse 시작 및 종료 시 콘솔 로그 레벨을 각각 재정의할 수 있도록 logger.startup_console_level 및 logger.shutdown_console_level 구성 옵션이 추가되었습니다. #95919 (Garrett Thomas).
이제 벡터 검색은 클러스터의 레플리카 전체에 부하를 분산할 수 있으므로, 단일 VM의 메모리 용량을 초과하는 대규모 벡터 인덱스도 지원할 수 있습니다. #95876 (Shankar Iyer).
ast_fuzzer_runs 및 ast_fuzzer_any_query 설정으로 제어되는 서버 측 AST 퍼저가 추가되었습니다. 이 설정을 활성화하면 서버는 각 쿼리를 정상적으로 실행한 후 무작위 뮤테이션을 수행하고, 그 결과는 폐기합니다. #97568 (Alexey Milovidov).
조인에서 확장 테이블 별칭을 지원하도록 추가되었습니다(예: SELECT * FROM (SELECT 1) AS t(a) JOIN (SELECT 1) AS u(b) ON a = b). #95331 (Yarik Briukhovetskyi).
EXPLAIN indices = 1이 이제 EXPLAIN indexes = 1의 별칭으로 지원됩니다. #92774 (Pranav Tiwari).
numbers 및 primes 테이블 함수의 필터 푸시다운이 개선되었습니다 — 이제 ClickHouse는 WHERE 조건에서 보수적인 값 범위를 도출해 시퀀스 생성을 제한함으로써, 범위가 제한되지 않은 스캔을 방지할 수 있습니다. #96115 (Nihal Z. Miaji).
이제 Equivalent sets 최적화가 여러 개의 연속된 INNER JOIN 연산 전반에서 작동하므로, 체인 내 어느 테이블에 적용된 필터든 관련된 모든 테이블에 자동으로 푸시다운됩니다. #96596 (Vladimir Cherkasov).
이제 FROM의 단일 서브쿼리에는 자동 클러스터 테이블 함수가 사용됩니다. #96332 (phulv94).
접두사에 ASCII 문자만 포함된 경우, startsWithUTF8로 필터링할 때 이제 기본 키 인덱스가 사용됩니다. #97055 (vkcku).
assumeNotNull, coalesce, 및 ifNull은 이제 키 컬럼이 이러한 함수로 감싸진 경우 범위 조건에 대해 기본 키 및 스킵 인덱스 프루닝을 가능하게 합니다. #94754 (Nihal Z. Miaji).
사용되지 않는 컬럼은 이제 MergeTree에서 읽을 때 읽기 단계에서 함께 제거되며, 이는 특히 필터가 PREWHERE로 푸시다운될 때 유용합니다. #89982 (János Benjamin Antal).
StorageEmbeddedRocksDB가 이제 여러 컬럼을 기본 키로 지원합니다. #33917 (usurai).
ALTER TABLE <table> ATTACH PART <part_name> FROM <directory_name> 구문이 추가되어, 파일시스템에서 이름을 수동으로 바꾸지 않아도 detached/의 임의의 하위 디렉터리(예: broken-on-start 또는 unexpected 접두사가 있는 파트)에서 파트를 attach할 수 있습니다. #74816 (Anton Popov).
use_skip_indexes_on_data_read가 이제 기본적으로 활성화되었습니다. #93407 (Shankar Iyer).
add_minmax_index_for_time_columns 설정이 추가되었습니다 — 이 설정을 활성화하면 모든 Date, Date32, Time, Time64, DateTime, DateTime64 컬럼에 대해 minmax 인덱스가 자동으로 생성됩니다. #93355 (Michael Jarrett).
머지 중 통계를 구체화할지 여부를 제어하는 materialize_statistics_on_merge 설정(기본적으로 활성화됨)이 추가되었습니다. #93379 (Han Fei).
악의적인 페이로드를 방지할 수 있도록, 바이너리 형식에서 디코딩할 수 있는 총 타입 노드 수를 제한하는 input_format_binary_max_type_complexity 설정이 추가되었습니다. #92519 (Raufs Dunamalijevs).
trace_profile_event를 사용한 추적을 특정 이벤트 이름으로만 제한할 수 있도록 trace_profile_events_list 설정을 추가했습니다. #92298 (Alexey Milovidov).
경로 중 하나는 리터럴이고 다른 하나는 중첩 객체인 JSON에서 중복 경로를 허용하는 type_json_allow_duplicated_key_with_literal_and_nested_object 설정을 추가했습니다. 이는 경로 중복 제거가 강제되기 전에 생성된 데이터와의 하위 호환성을 위한 것입니다. #93604 (Pavel Kruglov).
머지 및 파싱 과정에서 JSON 컬럼의 동적 서브컬럼을 제한하기 위해 merge_max_dynamic_subcolumns_in_compact_part MergeTree 설정과 max_dynamic_subcolumns_in_json_type_parsing 쿼리 수준 설정이 추가되었습니다. #94184 (Pavel Kruglov).
use_primary_key 및 use_skip_indexes와의 일관성을 위해 allow_statistics_optimize의 별칭으로 use_statistics를 추가했습니다. #94366 (Robert Schulze).
숫자를 Enum으로 변환할 때 요소 존재 여부를 검사할 수 있도록 input_format_numbers_enum_on_conversion_error를 활성화했습니다. #94384 (Elmi Ahmadov).
테이블에 행 정책이 있지만 현재 사용자에게 적용되는 정책이 없는 경우 예외를 발생시켜 잠재적인 구성 오류를 감지하는 설정이 추가되었습니다. #95014 (Vitaly Baranov).
호환성 버전 26.2 이상에서는 enable_max_bytes_limit_for_min_age_to_force_merge가 이제 기본적으로 활성화되었습니다. #95917 (Christoph Wurm).
이제 파트 수(distributed_index_analysis_min_parts_to_activate)와 인덱스 크기(distributed_index_analysis_min_indexes_size_to_activate)를 기준으로 분산 인덱스 분석을 활성화할 수 있게 되었습니다. #95216 (Azat Khuzhin).
통계 캐시가 이제 기본적으로 활성화되며, 업데이트 주기는 300초입니다. #95841 (Han Fei).
이제 path 구성 매개변수는 시작 시 작업 디렉터리를 기준으로 조회되며, 데이터 디렉터리가 비정상적인 위치에 배치되는 것을 방지합니다. #96305 (Alexey Milovidov).
이제 jemalloc 더티 페이지 제거는 메인 MemoryWorker 스레드와 분리된 별도 스레드에서 실행됩니다. 또한 총 메모리 사용 비율을 기준으로 제거를 수행하기 위한 memory_worker_purge_total_memory_threshold_ratio 구성도 추가했습니다. #94902 (Antonio Andelic).
ClickHouse가 지속적인 메모리 압박 상태에 있을 때 jemalloc 더티 페이지 decay가 동적으로 비활성화되도록 했습니다. #95145 (Antonio Andelic).
MergeTree에서 데이터를 읽기 전에 명시적인 메모리 사용량 검사를 추가했으며, 운영 경험을 바탕으로 스레드 풀 큐 크기도 줄였습니다. #94692 (Nikita Mikhaylov).
이제 사용자 인증 전에 총 메모리 제한을 검사하며, 제한을 초과하면 memory limit exceeded 예외를 발생시킵니다. #95003 (Nikolai Kochetov).
이제 Date 타입은 Arrow/ArrowStream 형식에서 Arrow의 네이티브 date32 타입으로 직렬화됩니다(이전에는 uint16). 기존 동작은 output_format_arrow_date_as_uint16 설정으로 복원할 수 있습니다. #96860 (Alexey Milovidov).
갱신 가능 구체화 뷰의 데이터를 백업할지 여부를 제어하는 backup_data_from_refreshable_materialized_view_targets 백업 설정이 추가되었습니다. APPEND 갱신 전략을 사용하는 RMV의 대상은 항상 백업됩니다. #93658 (Julia Kartseva).
S3 및 Azure Blob Storage에 대해 SQL로 정의된 명명된 컬렉션(named collections)을 BACKUP/RESTORE에서 지원합니다. #94605 (Pablo Marcos).
가상 컬럼에 대한 상수 필터를 더 이상 중복해서 평가하지 않습니다. #91588 (c-end).
이제 기본 키의 모든 결정적 표현식(예: ORDER BY cityHash64(user_id))을 데이터 스키핑에 사용할 수 있습니다. ClickHouse는 쿼리 상수에 해당 표현식을 적용하고, 그 결과를 =, IN, has를 사용하는 기본 키 인덱스 조회에 활용합니다. 단사 표현식의 경우 부정 형태(!=, NOT IN, NOT has)도 지원됩니다. #92952 (Nihal Z. Miaji).
이제 read-in-order 최적화는 WHERE 조건으로 인해 ORDER BY 컬럼이 상수인 경우를 인식하여 역순 읽기를 효율적으로 수행할 수 있습니다. 이는 WHERE tenant='42' ORDER BY tenant, event_time DESC와 같은 멀티테넌트 쿼리에 유용합니다. #94103 (matanper).
기본 키 조건 다음에 스킵 인덱스가 이어지는 FINAL 쿼리의 경우, 이제 PrimaryKeyExpand 단계는 초기에 추려진 기본 키 범위만 검사합니다. #94903 (Shankar Iyer).
이제 지연 구체화 최적화가 UNION ALL 쿼리의 첫 번째 분기뿐 아니라 모든 분기에 적용되어, 서로 다른 MergeTree 테이블에서 정렬된 읽기와 제한된 읽기를 여러 개 결합하는 쿼리의 I/O를 줄입니다. #96832 (Federico Ginosa).
join_on_disk_max_files_to_merge 설정으로 인해 발생할 수 있는 충돌을 수정했습니다. #92335 (Bharat Nallan).
외부 조인을 내부 조인으로 변환할 때 쿼리 계획이 의도치 않게 수정되어 발생하던 LOGICAL_ERROR를 해결했습니다. 또한 조인 시 집계 키에 injective 함수가 사용되는 경우에도 적용될 수 있도록 최적화 요구 사항을 완화했습니다. #92503 (János Benjamin Antal).
CROSS 조인 및 병렬 레플리카가 활성화된 환경에서 잘못된 결과를 반환하던 쿼리를 수정했습니다. #96848 (Igor Nikonov).
INNER JOIN 및 WHERE 절과 함께 사용할 때 arrayJoin이 중복 행을 생성하던 문제를 수정했습니다. 이 문제는 부분 술어 푸시다운에서 arrayJoin이 포함된 필터를 JOIN 아래로 잘못 푸시하면서 발생했습니다. #96989 (Alexey Milovidov).
WHERE 절에서 arrayJoin이 JOIN 양쪽의 컬럼을 참조하는 경우 발생하던 LOGICAL_ERROR를 수정했습니다. #97239 (Alexey Milovidov).
USING을 사용하는 JOIN의 VALUES 절 내 람다 함수에서 매처(*)를 사용할 때 발생하는 논리 오류를 수정했습니다. #95661 (Vladimir Cherkasov).
USING 컬럼의 타입이 서로 다를 때 matcher (*, table.*) 및 analyzer_compatibility_join_using_top_level_identifier에서 발생할 수 있는 논리적 오류를 수정했습니다. #95808 (Vladimir Cherkasov).
analyzer_compatibility_join_using_top_level_identifier 및 ALIAS 컬럼에서 발생하던 논리 오류를 수정했습니다. #97297 (Vladimir Cherkasov).
group_by_use_nulls = 1 및 CUBE/ROLLUP/GROUPING SETS를 사용할 때 윈도우 함수 사용 중 발생하던 예외를 수정했습니다. #96878 (Alexey Milovidov).
GROUPING SETS, group_by_use_nulls, LowCardinality를 사용하는 Tuple의 상호작용으로 인해 예기치 않은 블록 구조가 생성되던 문제가 수정되었습니다. #96358 (Alexey Milovidov).
Nullable(Tuple(...)) 내부에 LowCardinality(Nullable(...))를 포함한 키를 사용할 때 GROUP BY ... WITH ROLLUP/CUBE 수행 중 발생하던 논리 오류를 수정했습니다. #97647 (Alexey Milovidov).
if 또는 transform이 Nullable(String)을 반환할 때 IfTransformStringsToEnumPass에서 발생하던 assertion failure 오류를 수정했습니다. #97002 (Alexey Milovidov).
optimize_inverse_dictionary_lookup가 dictGet(...) 조건자를 재작성할 때, CREATE TEMPORARY TABLE 권한이 없는 사용자에게 발생하던 ACCESS_DENIED 문제가 수정되었습니다. #97484 (Nihal Z. Miaji).
PREWHERE 및 타입 추론이 결합된 분산 쿼리의 드문 사례에서 UInt64와 Int32 간 if 함수의 타입 불일치를 수정했습니다. #96012 (Alexey Milovidov).
소스 테이블의 전체 수식자를 무시하던 CREATE TABLE ... CLONE AS ... 문제를 수정했습니다. #96415 (Hasyimi Bahrudin).
메타데이터 변경 중 복제된 테이블에서 암시적 인덱스가 다시 생성되던 문제가 수정되었습니다. #96600 (Raúl Marín).
별칭 컬럼이 있는 암시적 인덱스 문제를 수정하고, 생성 전에 전체 유효성 검사를 추가했습니다. #97115 (Raúl Marín).
모든 행이 필터링된 경우 TTL 머지 후 _minmax_count_projection를 통해 min(timestamp)가 epoch(1970-01-01)를 반환하던 문제가 수정되었습니다. #96703 (Raquel Barbadillo).
잘못 계산되는 문제를 일으키던 use_const_adaptive_granularity와 index_granularity_bytes의 조합(index_granularity_bytes는 비적응형 granularity)을 수정했습니다. #96143 (Alexey Milovidov).
ORDER BY ... LIMIT를 사용할 때 비적응형 인덱스 세분성을 사용하는 테이블을 읽는 과정에서 발생하던 Number of rows in lazy chunk does not match number of offsets 예외를 수정했습니다. #97270 (Alexey Milovidov).
다른 레플리카가 공유 파트를 가져오기를 완료하기 전에 해당 파트가 삭제될 수 있었던 zero-copy 복제 회귀 문제가 수정되었습니다. #95597 (filimonov).
SYSTEM RESTART REPLICA에서 ZooKeeper가 아닌 예외로 인해 테이블 재생성에 실패할 때 데이터베이스에서 테이블이 누락되고, 그 결과 DatabaseReplicated에서 메타데이터 다이제스트 불일치가 발생하던 문제를 수정했습니다. #97276 (Alexey Milovidov).
ALTER TABLE MODIFY COLUMN으로 컬럼 타입이 변경된 후 컬럼 통계를 생성하는 과정에서 발생하던 assert_cast 예외를 수정했습니다. #97027 (Alexey Milovidov).
테이블에 통계 정보가 정의되어 있지 않으면 ClickHouse는 더 이상 이를 로드하려고 시도하지 않아 불필요한 오버헤드를 피합니다. #96233 (Han Fei).
분산 DDL 대기 중 Replicated 데이터베이스를 동시에 삭제할 때 발생하던 There was an error: Cannot obtain error message 논리 오류를 수정했습니다. #95664 (Alexander Tokmakov).
기본 키가 널 허용인 테이블에서, 쿼리가 첫 번째 인수로 상수를 사용하는 coalesce를 사용할 때 발생하던 KeyCondition의 논리 오류를 수정했습니다. #96340 (Alexey Milovidov).
중첩된 경로가 있는 JSON에서 tupleElement를 실행할 때 잘못된 결과가 반환되던 문제를 수정했습니다. #95907 (Pavel Kruglov).
타입 힌트가 있는 경로에서 JSON 사용 시 tupleElement가 예외를 발생시키던 문제를 수정했습니다. #97728 (Pavel Kruglov).
JSON 데이터 타입의 스키핑 경로를 수정했습니다 — 이전에는 JSON(SKIP path)가 path 접두사를 가진 모든 키(pathpath 같은 키 포함)를 스키핑하여 데이터 손실로 이어질 수 있었습니다. 이제는 정확히 일치하는 키만 스키핑됩니다. #95948 (Pavel Kruglov).
JSON의 타입 지정 경로에 type_json_allow_duplicated_key_with_literal_and_nested_object를 적용할 때 발생하던 문제를 수정했습니다. #97422 (Pavel Kruglov).
DataLakeCatalog의 Azure ADLS Gen2 제공 자격 증명 지원 문제를 수정했습니다 — Iceberg REST 카탈로그에서 adls.sas-token.* 키를 파싱하고 ABFSS URL 파싱 문제를 해결했습니다. #93477 (Karun Anantharaman).