docs/changelogs/v25.4.1.2934-stable.md
allow_materialized_view_with_bad_select is false. #74481 (Christoph Wurm).dateTrunc is used with negative date/datetime arguments. #77622 (Yarik Briukhovetskyi).use_legacy_mongodb_integration became obsolete and now does nothing. #77895 (Robert Schulze).serialize_query_plan is added. When enabled, queries from Distributed table will use a serialized query plan for remote query execution. This introduces a new packet type to TCP protocol, <process_query_plan_packet>true</process_query_plan_packet> should be added to the server config to allow processing this packet. #69652 (Nikolai Kochetov).EXISTS expression in the WHERE clause. Closes #72459. #76078 (Dmitry Novik).IcebergMetadataFilesCache, which will store manifest files/list and metadata.json in one cache. #77156 (Han Fei).arrayLevenshteinDistance, arrayLevenshteinDistanceWeighted, and arraySimilarity. #77187 (Mikhail f. Shiryaev).JSON data type is production-ready. See https://jsonbench.com/. Dynamic and Varaint data types are production ready. #77785 (Alexey Milovidov).vector_similarity_index_cache_size and vector_similarity_index_cache_max_entries. This feature supersedes the skipping index cache feature of earlier releases. #77905 (Shankar Iyer).toInterval function. This function accepts 2 arguments (value and unit), and converts the value to a specific Interval type. #78723 (Andrew Davis).NativeORCBlockInputFormat, which improves overall performance by hiding remote io latency. Speedup ratio could reach 1.47x in my test case. #70534 (李扬).col->insertFrom(). #77350 (Alexander Gololobov).filesystem_cache_prefer_bigger_buffer_size when the cache is used passively, such as for merges. #77898 (Kseniia Sumarokova).count() and without any filters should be faster. Closes #77639. #78090 (alesapin).get requests, which could have caused a significant load on Keeper with the increased number of replicas, in places where multiRead is available. #56862 (Nikolay Degterinsky).OSCPUWaitMicroseconds) to busy time (OSCPUVirtualTimeMicroseconds). The query is dropped with some probability, when this ratio is between min_os_cpu_wait_time_ratio_to_throw and max_os_cpu_wait_time_ratio_to_throw (those are query level settings). #63206 (Alexey Katsman).system.query_log. #71333 (Michael Kolupaev).clickhouse-local will retain its databases after restart if you specify the --path command line argument. This closes #50647. This closes #49947. #71722 (Alexey Milovidov).max_postpone_time_for_failed_replicated_fetches_ms, max_postpone_time_for_failed_replicated_merges_ms and max_postpone_time_for_failed_replicated_tasks_ms which are similar to max_postpone_time_for_failed_mutations_ms. #74576 (MikhailBurdukov).query_plan_join_shard_by_pk_ranges setting (disabled by default). #74733 (Nikolai Kochetov).server-logs-file. Disabled the ability to pass client options through the environment variables by default (it is still possible via ssh-server.enable_client_options_passing in config.xml). Supported progress table, query cancellation, completion, profile events progress, stdin and send_logs_level option. This closes: #74340. #74989 (Nikita Mikhaylov).bitAnd operation and arithmatics for IPv6 and conversion back to IPv6. Closes #76752. This allows the result from bitAnd operation on IPv6 to be converted back to IPv6, as well. See: https://github.com/ClickHouse/ClickHouse/pull/57707. #76928 (Muzammil Abdul Rehman).allow_special_bool_values_inside_variant. #76974 (Pavel Kruglov).additional_table_filters setting. After the change, the following query would succeed:. #77680 (wxybear).enable_hdfs_pread to enable or disable hdfs pread. #77885 (kevinyhzou).max_merge_delayed_streams_for_parallel_write (this should reduce memory usage for vertical merges to S3 about 25x times). #77922 (Azat Khuzhin).index_length_column to information_schema.tables for better compatibility with MySQL. #78119 (Paweł Zakrzewski).TotalMergeFailures and NonAbortedMergeFailures. These metrics are needed to detect the cases where too many merges fail within a short period. #78150 (Miсhael Stetsyuk).BlockActiveTime, BlockDiscardTime, BlockWriteTime, BlockQueueTime, and BlockReadTime asynchronous metrics (before the change 1 second was incorrectly reported as 0.001). #78211 (filimonov).loading_retries limit for errors during push to materialized view for StorageS3(Azure)Queue. Before that such errors were retried indefinitely. #78313 (Kseniia Sumarokova).schema_type for system.metric_log table with schema type. There are three allowed schemas: wide -- current schema, each metric/event in a separate column (most effective for reads of separate columns), transposed -- similar to system.asynchronous_metric_log, metrics/events are stored as rows, and the most interesting transposed_with_wide_view -- create underlying table with transposed schema, but also introduce a view with wide schema which translates queries to underlying table. In transposed_with_wide_view subsecond resolution for view is not supported, event_time_microseconds is just an alias for backward compatibility. #78412 (alesapin).include, from_env, from_zk for runtime disks. Closes #78177. #78470 (Kseniia Sumarokova).system.warnings table for long running mutations. #78658 (Bharat Nallan).condition to system table system.query_condition_cache. It stores the plaintext condition whose hash is used as a key in the query condition cache. #78671 (Robert Schulze).OSCPUWaitMicroseconds) to busy time (OSCPUVirtualTimeMicroseconds). The query is dropped with some probability, when this ratio is between min_os_cpu_wait_time_ratio_to_drop_connection and max_os_cpu_wait_time_ratio_to_drop_connection. #78778 (Alexey Katsman).Kafka table engine. This allows configuring SASL-based authentication to Kafka and Kafka-compatible systems directly in the CREATE TABLE statement rather than having to use configuration files or named collections. #78810 (Christoph Wurm).IN clause type coercion for BFloat16 (i.e. SELECT toBFloat16(1) IN [1, 2, 3]; now returns 1). Closes #78754. #78839 (Raufs Dunamalijevs).used_data_type_families in system.query_log canonical. #78972 (Kseniia Sumarokova).recoverLostReplica same as it was done in: https://github.com/ClickHouse/ClickHouse/pull/78637. #79113 (Nikita Mikhaylov).count(nullable) is used in aggregate projections. This fixes #74495 . This PR also adds some logs around projection analysis to clarify why a projection is used or why not. #74498 (Amos Bird).close_session query parameter didn't have any effect leading to named sessions being closed only after session_timeout. #77336 (Alexey Katsman).FileLog via merge table function, close #75575. #77441 (Vladimir Cherkasov).NOT_FOUND_COLUMN_IN_BLOCK error occurs. #77854 (Vladimir Cherkasov).StorageSystemObjectStorageQueueSettings while filling data. #77878 (Bharat Nallan).toStartOfInterval with zero origin argument. #78096 (Yarik Briukhovetskyi).session_id query parameter for HTTP interface. #78098 (Alexey Katsman).groupArray* functions now produce BAD_ARGUMENTS error for Int-typed 0 value of max_size argument, like it's already done for UInt one, instead of trying to execute with it. #78140 (Eduard Karacharov).false. #78187 (Kseniia Sumarokova).mapFromArrays in case of LowCardinality(Nullable) type of keys array. #78240 (Eduard Karacharov).disable_insertion_and_mutation is true. A task is some insertion, it will failed if disable_insertion_and_mutation is true. #78277 (Xu Jia).Distributed engine table. #78428 (Yakov Olkhovskiy).distributed_aggregation_memory_efficient enabled, it may lead to logical error. Closes #76934. #78500 (flynn).max_streams_to_max_threads_ratio setting. #78505 (Eduard Karacharov).iceberg_metadata_file_path. #78688 (alesapin).SELECT queries that read from tables with MongoDB engine or mongodb table function: queries with implicit conversion of const value in WHERE clause (e.g. WHERE datetime = '2025-03-10 00:00:00') ; queries with LIMIT and GROUP BY. Previously, they could return the wrong result. #78777 (Anton Popov).StorageDistributed when using table functions other than view(). Closes #78464. #78828 (Konstantin Bogdanov).tupleElement(*, 1). Closes #78639. #78832 (Konstantin Bogdanov).ssd_cache now reject zero or negative block_size and write_buffer_size parameters (issue #78314). #78854 (Elmi Ahmadov).minizip-ng to 4.0.9. #78917 (Konstantin Bogdanov).CASE support""'. #77759 (Yarik Briukhovetskyi).nats_max_reconnect obsolete. #77829 (János Benjamin Antal).<query_condition_cache_size> to config.xml. #77846 (Robert Schulze).MergeTreeIndexFullText.cpp. #77886 (cjw).CASE. #77995 (Yarik Briukhovetskyi).Unexpected state. Back: [5242880, 10485759], result range: [0, 12582911], limit: 0. (s3 storage). #78340 (Kseniia Sumarokova).applyCompatibilitySetting. Prior to this patch, all settings with a type not equal to Bool were marked as changed because the type of setting changes in the settings history was not equal to the type of settings in the settings declaration. #78402 (Mikhail Artemenko).MergeTree reader. #78483 (Anton Popov).AlterConversions. #78515 (Anton Popov).SSLCertificateSubjects.cpp. #78517 (Konstantin Bogdanov).system.query_condition_cache: Prettier prettyprinting for matching marks. #78524 (Robert Schulze).explain distributed=1 always uses to_stage == Complete. #78525 (Nikita Taranov).system database when we check the limit of tables, so we should also not check the limits for tables in system database. #78653 (Nikolay Degterinsky).test_storage_s3_queue/test_4.py. #78744 (Bharat Nallan).test_replicated_database/test.py::test_create_replicated_table from being flaky. #78779 (Nikita Mikhaylov).no-distributed-cache tag to 03008_s3_plain_rewritable_alter_partition.sh. #78811 (Julia Kartseva).test_no_backoff_after_killing_mutation. #78814 (MikhailBurdukov).test_backup_restore_s3. #78821 (Bharat Nallan).test_s3_plain_rewritable flakiness. #78825 (Julia Kartseva).02944_dynamically_change_filesystem_cache_size.sh. #78884 (Kseniia Sumarokova).03229_query_condition_cache_profile_events. #78886 (Robert Schulze).test_rabbitmq_restore_failed_connection_without_losses_1. #78887 (Pablo Marcos).02240_filesystem_cache_bypass_cache_threshold, 02240_filesystem_query_cache. #78888 (Kseniia Sumarokova).transposed_with_wide_view system.transposed_metric_log ignores explicitly specified ORDER BY (because predefined one is optimal for view). Now clickhouse will create "wide" view for each system.transposed_metric_log. #78932 (alesapin).test_rabbitmq_restore_failed_connection_without_losses_1. #78970 (Pablo Marcos).FiberStack from mmap to aligned_alloc. Since this splits VMAs and under heavy load vm.max_map_count can be reached. #79147 (Sema Checherinda).low_priority_query_wait_time_ms purpose. #79225 (Nikita Taranov).