diff --git a/docs/about-us/beta-and-experimental-features.md b/docs/about-us/beta-and-experimental-features.md index 948fd39869e..d572851f308 100644 --- a/docs/about-us/beta-and-experimental-features.md +++ b/docs/about-us/beta-and-experimental-features.md @@ -83,6 +83,21 @@ Please note: no additional experimental features are allowed to be enabled in Cl | Name | Default | |------|--------| +| [allow_experimental_replacing_merge_with_cleanup](/operations/settings/merge-tree-settings#allow_experimental_replacing_merge_with_cleanup) | `0` | +| [allow_experimental_reverse_key](/operations/settings/merge-tree-settings#allow_experimental_reverse_key) | `0` | +| [allow_remote_fs_zero_copy_replication](/operations/settings/merge-tree-settings#allow_remote_fs_zero_copy_replication) | `0` | +| [enable_replacing_merge_with_cleanup_for_min_age_to_force_merge](/operations/settings/merge-tree-settings#enable_replacing_merge_with_cleanup_for_min_age_to_force_merge) | `0` | +| [force_read_through_cache_for_merges](/operations/settings/merge-tree-settings#force_read_through_cache_for_merges) | `0` | +| [merge_selector_algorithm](/operations/settings/merge-tree-settings#merge_selector_algorithm) | `Simple` | +| [merge_selector_enable_heuristic_to_lower_max_parts_to_merge_at_once](/operations/settings/merge-tree-settings#merge_selector_enable_heuristic_to_lower_max_parts_to_merge_at_once) | `0` | +| [merge_selector_heuristic_to_lower_max_parts_to_merge_at_once_exponent](/operations/settings/merge-tree-settings#merge_selector_heuristic_to_lower_max_parts_to_merge_at_once_exponent) | `5` | +| [notify_newest_block_number](/operations/settings/merge-tree-settings#notify_newest_block_number) | `0` | +| [part_moves_between_shards_delay_seconds](/operations/settings/merge-tree-settings#part_moves_between_shards_delay_seconds) | `30` | +| [part_moves_between_shards_enable](/operations/settings/merge-tree-settings#part_moves_between_shards_enable) | `0` | +| [remote_fs_zero_copy_path_compatible_mode](/operations/settings/merge-tree-settings#remote_fs_zero_copy_path_compatible_mode) | `0` | +| [remote_fs_zero_copy_zookeeper_path](/operations/settings/merge-tree-settings#remote_fs_zero_copy_zookeeper_path) | `/clickhouse/zero_copy` | +| [remove_rolled_back_parts_immediately](/operations/settings/merge-tree-settings#remove_rolled_back_parts_immediately) | `1` | +| [shared_merge_tree_virtual_parts_discovery_batch](/operations/settings/merge-tree-settings#shared_merge_tree_virtual_parts_discovery_batch) | `1` | | [allow_experimental_kafka_offsets_storage_in_keeper](/operations/settings/settings#allow_experimental_kafka_offsets_storage_in_keeper) | `0` | | [allow_experimental_delta_lake_writes](/operations/settings/settings#allow_experimental_delta_lake_writes) | `0` | | [automatic_parallel_replicas_mode](/operations/settings/settings#automatic_parallel_replicas_mode) | `0` | @@ -143,20 +158,6 @@ Please note: no additional experimental features are allowed to be enabled in Cl | [promql_evaluation_time](/operations/settings/settings#promql_evaluation_time) | `auto` | | [allow_experimental_alias_table_engine](/operations/settings/settings#allow_experimental_alias_table_engine) | `0` | | [use_paimon_partition_pruning](/operations/settings/settings#use_paimon_partition_pruning) | `0` | +| [allow_experimental_object_storage_queue_hive_partitioning](/operations/settings/settings#allow_experimental_object_storage_queue_hive_partitioning) | `0` | | [query_plan_optimize_join_order_algorithm](/operations/settings/settings#query_plan_optimize_join_order_algorithm) | `greedy` | -| [allow_experimental_replacing_merge_with_cleanup](/operations/settings/merge-tree-settings#allow_experimental_replacing_merge_with_cleanup) | `0` | -| [allow_experimental_reverse_key](/operations/settings/merge-tree-settings#allow_experimental_reverse_key) | `0` | -| [allow_remote_fs_zero_copy_replication](/operations/settings/merge-tree-settings#allow_remote_fs_zero_copy_replication) | `0` | -| [enable_replacing_merge_with_cleanup_for_min_age_to_force_merge](/operations/settings/merge-tree-settings#enable_replacing_merge_with_cleanup_for_min_age_to_force_merge) | `0` | -| [force_read_through_cache_for_merges](/operations/settings/merge-tree-settings#force_read_through_cache_for_merges) | `0` | -| [merge_selector_algorithm](/operations/settings/merge-tree-settings#merge_selector_algorithm) | `Simple` | -| [merge_selector_enable_heuristic_to_lower_max_parts_to_merge_at_once](/operations/settings/merge-tree-settings#merge_selector_enable_heuristic_to_lower_max_parts_to_merge_at_once) | `0` | -| [merge_selector_heuristic_to_lower_max_parts_to_merge_at_once_exponent](/operations/settings/merge-tree-settings#merge_selector_heuristic_to_lower_max_parts_to_merge_at_once_exponent) | `5` | -| [notify_newest_block_number](/operations/settings/merge-tree-settings#notify_newest_block_number) | `0` | -| [part_moves_between_shards_delay_seconds](/operations/settings/merge-tree-settings#part_moves_between_shards_delay_seconds) | `30` | -| [part_moves_between_shards_enable](/operations/settings/merge-tree-settings#part_moves_between_shards_enable) | `0` | -| [remote_fs_zero_copy_path_compatible_mode](/operations/settings/merge-tree-settings#remote_fs_zero_copy_path_compatible_mode) | `0` | -| [remote_fs_zero_copy_zookeeper_path](/operations/settings/merge-tree-settings#remote_fs_zero_copy_zookeeper_path) | `/clickhouse/zero_copy` | -| [remove_rolled_back_parts_immediately](/operations/settings/merge-tree-settings#remove_rolled_back_parts_immediately) | `1` | -| [shared_merge_tree_virtual_parts_discovery_batch](/operations/settings/merge-tree-settings#shared_merge_tree_virtual_parts_discovery_batch) | `1` | diff --git a/gt-lock.json b/gt-lock.json index 33d500e556f..61fdb9af320 100644 --- a/gt-lock.json +++ b/gt-lock.json @@ -49,15 +49,15 @@ }, "a8710471f3f4af77c39b30a518f52a8deb6584069b4bfb8e64158f30627b4792": { "zh": { - "updatedAt": "2025-12-29T16:46:13.359Z", + "updatedAt": "2026-01-06T14:17:56.379Z", "postProcessHash": "dea80e8633a01661415a8f657db721e366107e6372f47980f87efcebec57d84a" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.360Z", + "updatedAt": "2026-01-06T14:17:56.379Z", "postProcessHash": "80b4843e916f7b1e577f8e4b72a589432fbe5af00d6591dc500c49a69d00de25" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.361Z", + "updatedAt": "2026-01-06T14:17:56.380Z", "postProcessHash": "cb5973f7e5a67bc20467cd92ce8a5b231d0fd34ebf05b10d80ea2cde4e65241c" } } @@ -65,15 +65,15 @@ "24bb0ca99917fdfda706556c75c640db16b12f966ea7bd58e1e9a8bdf4be5146": { "40c867ec4bd9ff53ca41f19ef2fb11bce1cd4d6f82211f50a350bacfd56350a1": { "jp": { - "updatedAt": "2025-12-29T16:46:13.394Z", + "updatedAt": "2026-01-06T14:17:56.424Z", "postProcessHash": "c2b159034204cbe9194f226815c59581e141b4b1d9a0888360d2731c9c4135b6" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.394Z", + "updatedAt": "2026-01-06T14:17:56.425Z", "postProcessHash": "b4503160878c2254ab49f0007d23321ddb2c942c64c94db664bf33828e16dd60" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.322Z", + "updatedAt": "2026-01-06T14:17:56.319Z", "postProcessHash": "0b1764d2530de07a912c6cd1024488b3c16f566eeb57af1c8868eeefc7807027" } } @@ -81,15 +81,15 @@ "2f81498e8b60c281ca710a3a25f611bf79424982fa85bce630e1d4182f252536": { "e5431d96bed4f0f93b507ffa84836d28b1d715ac31c199864a10370ec3b6f040": { "jp": { - "updatedAt": "2025-12-29T16:46:13.365Z", + "updatedAt": "2026-01-06T14:17:56.385Z", "postProcessHash": "3f686d2c47341d014efae7f9d6f33a64509cfb1ba3ca22f872a5c370b6a3a358" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.320Z", + "updatedAt": "2026-01-06T14:17:56.317Z", "postProcessHash": "375db763f436ad6553e921b026e7c0fa04329540ffc9e80499eb82e8c8ea0663" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.371Z", + "updatedAt": "2026-01-06T14:17:56.391Z", "postProcessHash": "7507cfcbed4ebac25a56ae9e0e5a92a886049a5887ffc57eed724ccb32af8ec4" } } @@ -97,15 +97,15 @@ "37e1e1dcfe884bd88e97aa22d6ed7fc14323b326449d12f0a5644f15bd4ba087": { "bd75344d33495d82bb1ddbeeb77d5b1f53a6ecb5f788cb9eadaa606a67b5ba96": { "jp": { - "updatedAt": "2025-12-29T16:46:13.388Z", + "updatedAt": "2026-01-06T14:17:56.416Z", "postProcessHash": "e5e905d07be28050aa66dd55c4896d833e812f116fe9120eac294829456f1242" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.390Z", + "updatedAt": "2026-01-06T14:17:56.418Z", "postProcessHash": "14fd8bc4cbc9f61c5655f504fcb346fba3a806f8c548844bcee5bfcd9af0a0d8" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.395Z", + "updatedAt": "2026-01-06T14:17:56.426Z", "postProcessHash": "9612a6ad02b86e775c0c30373bfa9bb267b079c3b296aa1f0e67771a11e06161" } } @@ -113,15 +113,15 @@ "49041ac358e6a0f1cdae73923da607add5f9d37fe3320250b5457924d09bcecc": { "d61c6739096f5de9a1f340500324926cc206fe878ab16df77def05d0ba746d3c": { "jp": { - "updatedAt": "2025-12-29T16:46:13.396Z", + "updatedAt": "2026-01-06T14:17:56.426Z", "postProcessHash": "149a40e0765161d19187178d9990fd73e946694b6e51ef1bceeb283543a9878d" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.390Z", + "updatedAt": "2026-01-06T14:17:56.419Z", "postProcessHash": "cd0d063215a756503aad7cc467ee44c6563646559dd30c885f70e8bec46f5f9b" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.324Z", + "updatedAt": "2026-01-06T14:17:56.323Z", "postProcessHash": "e699a728dbcdf02df448087277a49c8f5dc1a48548622121ebcb3031f826f9e9" } } @@ -129,15 +129,15 @@ "4abc97ebd23c7b3dacc0e18e77499272b51b908bd0c2a7a823d153d3c00f7613": { "7817d141aff4e4b1ceaca87c554c551bc1add23bd534611e2704fba56223fbfe": { "jp": { - "updatedAt": "2025-12-29T16:46:13.389Z", + "updatedAt": "2026-01-06T14:17:56.417Z", "postProcessHash": "527ce7cbe58aa319ab05e565a6fe49cb82ea6cd4e17366423cbd60e886732393" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.392Z", + "updatedAt": "2026-01-06T14:17:56.422Z", "postProcessHash": "983ce7e98f025ebbe40cef5c1c243223acbc01c78d010ead9d3f0320f8a35209" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.323Z", + "updatedAt": "2026-01-06T14:17:56.320Z", "postProcessHash": "42c1f2e1ab6e097cce135c282ebaed5580447772d65fa6a2cf17df13d6c0b4da" } } @@ -145,15 +145,15 @@ "4e7333f7ff430819ccfae5b1f2b2ee97508f58db11c3e67c31430385b0618503": { "1a899ad20af5d3dc3c495e6ddc0c3ff5aacc9df838675e487a6910da0a531675": { "jp": { - "updatedAt": "2025-12-29T16:46:13.363Z", + "updatedAt": "2026-01-06T14:17:56.383Z", "postProcessHash": "22b50687ded9f30d3b3dd7d449be0e485310b09ec26eace2b0a9c83e43e7ce00" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.372Z", + "updatedAt": "2026-01-06T14:17:56.392Z", "postProcessHash": "a5492416744168520dbb0eb9fb77b1d38f8227898a20e1119fbbd9ec5c7ea8fa" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.370Z", + "updatedAt": "2026-01-06T14:17:56.390Z", "postProcessHash": "463d50cacf516dab41081e1c1ff87fab243ae437c66f1eaf34b5d2666c9f8200" } } @@ -161,15 +161,15 @@ "6f13745927dfcaff0a5b759cdfc9dc47aba26e811ab26776ee363cd821f7d585": { "be6c5629590606c77cd44d60b8cb153a6e8b1ae6d9f710967b3ea692cfc8cb6d": { "jp": { - "updatedAt": "2025-12-29T16:46:13.387Z", + "updatedAt": "2026-01-06T14:17:56.414Z", "postProcessHash": "41ac3d39aa09bac8cde829d981d3feafcc427ae50b12a5ddab4f526608a02d23" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.323Z", + "updatedAt": "2026-01-06T14:17:56.321Z", "postProcessHash": "049ba85e4c87c348a3e669ed4b331203275570c47be8b31481a7a35435f561a7" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.385Z", + "updatedAt": "2026-01-06T14:17:56.410Z", "postProcessHash": "0d87f7d349ae6e58126c41a418eefa79b58acb3ea6d84c86755369bd25696c27" } } @@ -177,15 +177,15 @@ "8ad40f5399ed36401edb12df869b1d441ff2d635581938c63d4f0a611fb977ae": { "16565c6a0928275a3a601a45f18823227dc886a00aad5531244bec633d3e8af4": { "jp": { - "updatedAt": "2025-12-29T16:46:13.431Z", + "updatedAt": "2026-01-06T14:17:56.488Z", "postProcessHash": "8bcf3ff641396e2d8c5da52dc58e751584d107f6d1d805c90988dec22c114a38" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.432Z", + "updatedAt": "2026-01-06T14:17:56.489Z", "postProcessHash": "e625c4b6b53d8b1fa5873b15f2f5c571c9d49edf455c2dd316216095bd77654d" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.316Z", + "updatedAt": "2026-01-06T14:17:56.310Z", "postProcessHash": "f170d3dd3162329051742b675cbd0ffe6828303ed835195e7fe76a8adcc5f156" } } @@ -193,15 +193,15 @@ "a3ea3f0c344313a1d3ad7969f1c82ef13af419e6eec98da91153c8735fd46730": { "df3510130e5bdcdacd162718bb228e62987c548fea96f8a9e94123cc6b9a78d5": { "jp": { - "updatedAt": "2025-12-29T16:46:13.364Z", + "updatedAt": "2026-01-06T14:17:56.383Z", "postProcessHash": "2c670901840457d43631271d798d948ad1808ea3e3a0768832448fa5291a14fb" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.365Z", + "updatedAt": "2026-01-06T14:17:56.384Z", "postProcessHash": "34866960754235413e8855a940c78ea424a1dcba2dc6cbd96e6a8e4c3a88aef5" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.363Z", + "updatedAt": "2026-01-06T14:17:56.382Z", "postProcessHash": "ad7050ee90633a3a2cea8936df2c98ec9f52bde0487b44993cd64636741aa3dd" } } @@ -209,15 +209,15 @@ "b4b7e3ea48cb57c88168d17bf4d4f7d74e58a613803386d3229332939508c542": { "67faf8569421939ba33d4c9fdc3b64f28fcc3bc298cc8c8b43a29bf3499a6898": { "jp": { - "updatedAt": "2025-12-29T16:46:13.433Z", + "updatedAt": "2026-01-06T14:17:56.492Z", "postProcessHash": "9d1fff2335500fea94d3724975766ef29f9d2969dcaa6b1b263acae18dd2a6a4" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.318Z", + "updatedAt": "2026-01-06T14:17:56.312Z", "postProcessHash": "c4560376ecf7b29d362fc413002dcaa4fe08ac89e477221c6ce3d767912d8a1d" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.432Z", + "updatedAt": "2026-01-06T14:17:56.489Z", "postProcessHash": "f7be08bff036a4fcae66b8f5cb941e26a0dc9df82fec5705e5f308daf214123a" } } @@ -225,15 +225,15 @@ "bed5256b181dbcf92c02187749ebbf45c60b6bbfdee1789c1848984b6be1d78d": { "614647c380ff18e7b1672f19190809fcf15ba05429ff7f93a33f6c77255ba9ba": { "jp": { - "updatedAt": "2025-12-29T16:46:13.386Z", + "updatedAt": "2026-01-06T14:17:56.412Z", "postProcessHash": "1ab88928e6d5bd19ba5c78dbc583c3a0f5dd74ef8024b486b6fe7a1b8961794b" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.395Z", + "updatedAt": "2026-01-06T14:17:56.425Z", "postProcessHash": "0bf7b55d68e8c32760083a4f0974e76e1788681abe8d2621dcc0328bf6e01fba" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.325Z", + "updatedAt": "2026-01-06T14:17:56.326Z", "postProcessHash": "9fa6e7df16ec5380e9bc1597b072fdde81dc77cbbbf6923dd05c8c922e4b41e1" } } @@ -241,15 +241,15 @@ "c2811557e4f56ffd6e37b0f9f6558971e9d45005c22c3c19ebaef586f1591687": { "b9aea39ae1b4e63fef7a92d27750dfc746ac0ac174e77a895050ed0d24ff1ea7": { "jp": { - "updatedAt": "2025-12-29T16:46:13.321Z", + "updatedAt": "2026-01-06T14:17:56.318Z", "postProcessHash": "e1b1ce689496d060b5172a3fbdb59cadf7145e23b1e6514e0010d0971196cae4" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.367Z", + "updatedAt": "2026-01-06T14:17:56.387Z", "postProcessHash": "edba1c32a4523dbb9c9973228fcc228187dd6bc5987d3e75be5cf6b0c075b62d" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.362Z", + "updatedAt": "2026-01-06T14:17:56.381Z", "postProcessHash": "a16d69788eb2d608156b070abd071392f4921ce1d8a8358ed8bf4691082f3cf2" } } @@ -279,15 +279,15 @@ }, "a4c073207b34a9e6e51079c57f0e06190c406d676367e982df527e7379cf105d": { "jp": { - "updatedAt": "2025-12-29T16:46:13.356Z", + "updatedAt": "2026-01-06T14:17:56.375Z", "postProcessHash": "2b5837009e3da50041488124f7177f54786a6875323a348ea17e8786c3156ca5" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.358Z", + "updatedAt": "2026-01-06T14:17:56.377Z", "postProcessHash": "99e0f428ecd7fb29b7cf7a2eb9db047a31f6c71041dbbb69678e602e4e19b995" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.357Z", + "updatedAt": "2026-01-06T14:17:56.376Z", "postProcessHash": "d81afbdb3706b5f0a3db2cad06e018bfbd6cba8679de0b94d1130cd60b05bc8b" } } @@ -295,15 +295,15 @@ "d59e7e7594ae44f151cb9c65dc0cf67dc9998af7e3a974cffc3d0f0dabce2e18": { "7f90a5a780c1bb26935f70fb9cdd36714ca975e36d84b530b0b75f565410ba0a": { "jp": { - "updatedAt": "2025-12-29T16:46:13.366Z", + "updatedAt": "2026-01-06T14:17:56.385Z", "postProcessHash": "1da247e74d18cd435ac6aacdc4fdd1bf3360964523a624d93f3ee3243e283723" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.368Z", + "updatedAt": "2026-01-06T14:17:56.388Z", "postProcessHash": "2677a15eafb3267407541742b099d35f807853ba50698ab34c19c2ec970e44c3" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.372Z", + "updatedAt": "2026-01-06T14:17:56.392Z", "postProcessHash": "c563990ef0a3d1b09005841332cb571cd67f96f856e0dc395925105b3ab7fe6b" } } @@ -311,15 +311,15 @@ "d89bc73ed23da882f0c45593180a3989cb6844bd38d6496ab6cb5ab328d51083": { "42fe50c1e729beb1bfa14d29e80c4f579a068ebbfa39aa1ffe25b2bb963a815a": { "jp": { - "updatedAt": "2025-12-29T16:46:13.436Z", + "updatedAt": "2026-01-06T14:17:56.495Z", "postProcessHash": "12f93ea3d3825950e2a35a701ba23d5b5980e8037ee63d9b1ff2aa3d53099049" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.435Z", + "updatedAt": "2026-01-06T14:17:56.493Z", "postProcessHash": "b60b4485e60c8f6adc554d776d4af299bd72a7a8d51d6a27533f2e91f527ed1d" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.433Z", + "updatedAt": "2026-01-06T14:17:56.490Z", "postProcessHash": "0e9d71f429e1c54a12237acf88146995423cfc66ebb3f75a38f5d87d6affccd0" } } @@ -327,15 +327,15 @@ "e8ae18c3678baf91b2255e5eab22effc78193c605230851316718cfb95063b2c": { "b8eaf5b30dc66a5bf4e27198f07863a95cd60a2e8b15d9fe7e86cc6f6eb603a7": { "jp": { - "updatedAt": "2025-12-29T16:46:13.436Z", + "updatedAt": "2026-01-06T14:17:56.494Z", "postProcessHash": "ba385665bc7c8e1e7c7638d1b5b2387ec5b153e6e0b8ef275ce9b212301ef043" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.433Z", + "updatedAt": "2026-01-06T14:17:56.490Z", "postProcessHash": "9fc70f3ff9c8ad4b4369433925b69776b42e153c032445df547301e9216926be" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.435Z", + "updatedAt": "2026-01-06T14:17:56.493Z", "postProcessHash": "81b02e67e07018e5fd60381abbb70402f7fc8dbabd8c16cdc0ecdf987078434c" } } @@ -343,15 +343,15 @@ "e92405c74b1c19a280775296a5640f2c7646bfabd9d6af48d6359d9a4f09c9d8": { "c9015dfa533bb72f0fe4f1f5a455b0a5497c12b645e908ee88d9686adff07027": { "jp": { - "updatedAt": "2025-12-29T16:46:13.387Z", + "updatedAt": "2026-01-06T14:17:56.415Z", "postProcessHash": "3e7c51f6cf75f0c9024617ce473a061249536a1e27d3108362f9e644f167a533" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.325Z", + "updatedAt": "2026-01-06T14:17:56.325Z", "postProcessHash": "65c70bfa5c1066d61400754e3ecc5dd1c4e562f91e8c9218778f1727353a4b95" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.396Z", + "updatedAt": "2026-01-06T14:17:56.427Z", "postProcessHash": "5a3f0ee08f15587cd66d919be56646cc7b54ff0d7cf1c9649472a45344eac53a" } } @@ -359,15 +359,15 @@ "ea04f6329e37f5487414c9b64a5e1602d705f1fc914807a5e16d95932f4ded16": { "c2794c8cfb2c5d8f3ad408c1a6ee6d92accd0948ff2682cca78897d7cef83daf": { "jp": { - "updatedAt": "2025-12-29T16:46:13.366Z", + "updatedAt": "2026-01-06T14:17:56.386Z", "postProcessHash": "278a28af1f274ab6625dd842747e00021283b5ae861342f04c48c8ba169da45c" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.369Z", + "updatedAt": "2026-01-06T14:17:56.390Z", "postProcessHash": "2570c882c0329da070f76c503ff135daf236f53628c8e56655b165f3b6b0258f" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.368Z", + "updatedAt": "2026-01-06T14:17:56.388Z", "postProcessHash": "d558af907d6f102c55c61793e4f1b1dc0d4694633689c2e51feec34c3f305282" } } @@ -375,15 +375,15 @@ "ed828a4311942b25614d0fd962b572a6dc329c0d92a3891dce42290c1d8324f1": { "78977a9c19b7aa2ba08361a0d6ca3390d032f6997a67d280a40d8974f768bb52": { "jp": { - "updatedAt": "2025-12-29T16:46:13.373Z", + "updatedAt": "2026-01-06T14:17:56.393Z", "postProcessHash": "3550ec99549bdfc84c6cc828ed70f0ad383d91c7600c157c2506641ba0aa0edb" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.361Z", + "updatedAt": "2026-01-06T14:17:56.381Z", "postProcessHash": "5b0c3157e8a4ea3131973c3209e2abe9c6d1d254187df96eaa61a9f45038c69c" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.373Z", + "updatedAt": "2026-01-06T14:17:56.393Z", "postProcessHash": "2e3abb38ddf37601a006893161ff5c32d0ad5cf5c0624701b09eb32c43a1fd24" } } @@ -391,15 +391,15 @@ "ef555d903b99c706a7fbc048a6888f3d3743693968bc76912f338d53af846b0c": { "c84825f7cf888bad7b7b5ec57d4a3941f8dc40c7526398600864fd18a77516ef": { "zh": { - "updatedAt": "2025-12-29T16:46:13.388Z", + "updatedAt": "2026-01-06T14:17:56.415Z", "postProcessHash": "5e8fbc5025e237e43a50093550836e281b05664d90bfc7aca7c95ad3f88f75cd" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.391Z", + "updatedAt": "2026-01-06T14:17:56.420Z", "postProcessHash": "9de8b7fc3937676407d7db0f252d6cd511a8673a3934d3470e8181db3e3271c9" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.386Z", + "updatedAt": "2026-01-06T14:17:56.413Z", "postProcessHash": "c1a2637d3b784bb1961182c0efed5a3e6c20c514f1fcee3d69b6bb993f387238" } } @@ -407,15 +407,15 @@ "fb2a4bdb7f2883fa7ac9878a6d4e978def652c408e4ef95784547eef9e313dbb": { "20e4763f0f7057430907de10bf00a918aa2e762becf34af686b125a9da4fe458": { "jp": { - "updatedAt": "2025-12-29T16:46:13.317Z", + "updatedAt": "2026-01-06T14:17:56.311Z", "postProcessHash": "066c343903fc8f105322a8b7d2482f81cf1d3b4db8c650f4095546602c9998d7" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.319Z", + "updatedAt": "2026-01-06T14:17:56.313Z", "postProcessHash": "b3cb903f920b0efabfd2d2b8989b14439fc616dd236f7385108983931d029bf9" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.369Z", + "updatedAt": "2026-01-06T14:17:56.389Z", "postProcessHash": "2447d25dc0f1696c6aaf1c6ae2d72db63375857928f0a721731f9c1facd8b816" } } @@ -423,15 +423,15 @@ "22760d417a52c66f14bee182587d458d0737a616dd14cb09748b4c725fc5809f": { "c6ca08107fa6822548ad3adc5de4b6fdf1d9860224c2cd62047f42bce72b1c12": { "jp": { - "updatedAt": "2025-12-29T16:46:13.679Z", + "updatedAt": "2026-01-06T14:17:56.782Z", "postProcessHash": "f6deea422207d967b6461e97071734f39e34beaf512cd5b27858f885d8645481" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.667Z", + "updatedAt": "2026-01-06T14:17:56.777Z", "postProcessHash": "f2dbb352b7da80b2bc1a94c2977e4417a93f0135b68a7b16bc9af6387847e01d" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.666Z", + "updatedAt": "2026-01-06T14:17:56.775Z", "postProcessHash": "be639ec494ec47de6646af8f5303f5a9cb200978f8f07fca02e5557a8a99d9df" } } @@ -439,15 +439,15 @@ "3e38c1623307fe1538f034436996c45b6ce42cebe6a35b146ba34a354e7b226a": { "7d9c49d88230712b6849bcab6640651373295cad7888223291eb46da868626e3": { "jp": { - "updatedAt": "2025-12-29T16:46:13.652Z", + "updatedAt": "2026-01-06T14:17:56.759Z", "postProcessHash": "adbf3470ec4df46143250be3ba2cd128011d0cc073401f47468887ef78f214bb" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.641Z", + "updatedAt": "2026-01-06T14:17:56.746Z", "postProcessHash": "e5b3c3f5ea30fa4103f558f85732c4c901802a7b6b272cdd2800d3183e33172a" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.640Z", + "updatedAt": "2026-01-06T14:17:56.744Z", "postProcessHash": "42a5cca9d425a028e47cc62bff77488d51a89f7c1aa4217fc17fa7ff4a57d2c6" } } @@ -455,15 +455,15 @@ "434f73c99193146064105db19ce337122de0d78915918472d56f5393dc41a913": { "07acf0a2f2bf2cdedbe6696ce78f98b197df5722eecc5a214cf1d15173619bb2": { "jp": { - "updatedAt": "2025-12-29T16:46:13.665Z", + "updatedAt": "2026-01-06T14:17:56.774Z", "postProcessHash": "65c42797c8bacabc72143be09683b3ee3d27393d6e7c506507ed5938e1babfff" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.606Z", + "updatedAt": "2026-01-06T14:17:56.720Z", "postProcessHash": "aec977aa13a5a2eb5c23d9e8b2ce1ed9a48327e4b15fe80fb3f7bd7c1a4a374e" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.607Z", + "updatedAt": "2026-01-06T14:17:56.722Z", "postProcessHash": "7a6423ef2bb0984dca8cb73fc2323e4e2714e2a451d85242835158f40e519e66" } } @@ -471,15 +471,15 @@ "4fa6a5d68016ad855e418c2e88b5a37793256913a0caceaf33014edf61107509": { "1ed9748c6ebe33e1898f694a866a318e321540cc9186ac29b7621da0715118c5": { "jp": { - "updatedAt": "2025-12-29T16:46:13.654Z", + "updatedAt": "2026-01-06T14:17:56.762Z", "postProcessHash": "4b28de374793ac2ccec45b9f32a3d9415caa8b274547ca0c9cb4a128aaaabec8" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.656Z", + "updatedAt": "2026-01-06T14:17:56.764Z", "postProcessHash": "9fe0d9723b9570ba1b159dd3ca7bb497d138ecb29e10eb2a09663e445b759bdf" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.636Z", + "updatedAt": "2026-01-06T14:17:56.739Z", "postProcessHash": "fa14cb3b1b996a1b7c8ac10227955be037bb2067631054e18dd2880e6eb9d045" } } @@ -487,15 +487,15 @@ "5dcaaaf5a4d53dc33da6680731d152b4a88a8d4e9c6058a18e521c7629865fb2": { "11c49d7827257644d730176fb691cb3d9705b0b2caafb1ee0ef7b70e70446275": { "jp": { - "updatedAt": "2025-12-29T16:46:13.639Z", + "updatedAt": "2026-01-06T14:17:56.742Z", "postProcessHash": "98de1fa0f824db18057222b5c3af7114a783cac728dddd4f73421c62d47d6c93" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.650Z", + "updatedAt": "2026-01-06T14:17:56.757Z", "postProcessHash": "5e754240f300dc95396bed0fcf36a5e03b697e79a19e592bbad674b373a2e49e" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.658Z", + "updatedAt": "2026-01-06T14:17:56.766Z", "postProcessHash": "7923bc53b3575bb76eb9cae1385c1f78de1e8366a87855a32ba5dc36877f0009" } } @@ -519,15 +519,15 @@ "69aa1e22d1867f2dd9082998e597234169f92ed3ba4c3d6af26b34ffa82e4a48": { "aea97333102d80bfe523bef5b3932706938c1ab2307337cf20451a0633f0d7a0": { "jp": { - "updatedAt": "2025-12-29T16:46:13.591Z", + "updatedAt": "2026-01-06T14:17:56.703Z", "postProcessHash": "3ca330ec7d12194cd8d43155f7aeb26c13a9b53e3f683fd8a6732f0be0319a76" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.554Z", + "updatedAt": "2026-01-06T14:17:56.664Z", "postProcessHash": "0756612fabd749f0c52b94a55937f26d5083fc138d02b2c62e504e6281b3aa1e" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.640Z", + "updatedAt": "2026-01-06T14:17:56.745Z", "postProcessHash": "0f12b8f141c59d2672d963aa025bede85dba80176b0e9610ebc70db0068ed783" } } @@ -535,15 +535,15 @@ "78ae413a62554c8c5ae5ac8301b68726066573d500bb6c8caabdecefd781bb3f": { "754657766dba43bf89b81e0a5c15e318411e3d1782280b5ae5d185edc97b8e9b": { "jp": { - "updatedAt": "2025-12-29T16:46:13.554Z", + "updatedAt": "2026-01-06T14:17:56.665Z", "postProcessHash": "7ea6c23343f4b23a5f56dacb6f101d9f69a02cd4c8a97b4865cef387ad3af312" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.553Z", + "updatedAt": "2026-01-06T14:17:56.664Z", "postProcessHash": "87c79a95a423edcf5f4dbe59b5196c5d25e9c3b8a942c24652411ff2eed281a1" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.666Z", + "updatedAt": "2026-01-06T14:17:56.774Z", "postProcessHash": "5a0e46753a5fdb69ba0782fe8b2525c81cd7db7c2cd654a9a77a8d3788bc0959" } } @@ -565,15 +565,15 @@ }, "0ece200900603d998eaf61144f80265b8cc5e66a585c0732be44a94014ed6ad0": { "zh": { - "updatedAt": "2025-12-29T16:46:13.681Z", + "updatedAt": "2026-01-06T14:17:56.784Z", "postProcessHash": "504ea547dbdbba22ba3f709a17d9562e476be970a7064084d40107044623cd15" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.683Z", + "updatedAt": "2026-01-06T14:17:56.787Z", "postProcessHash": "99d8dbb4ec24f794ea2df8b59d020c4e5c9250b58f2819c88c7cace34cc85870" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.686Z", + "updatedAt": "2026-01-06T14:17:56.793Z", "postProcessHash": "700d812b46a5579312169f8a18b62cf432b660c13718e87bcf76b5c742f9c338" } } @@ -581,15 +581,15 @@ "8d9acd4ed372d08f28519dfb01b6900545df9f42502ac21f0ef6bd86b724c724": { "3ca361084040c6efbaef261b3b4c88e38d022539f3e58645a4023be45b9ed7f2": { "jp": { - "updatedAt": "2025-12-29T16:46:13.657Z", + "updatedAt": "2026-01-06T14:17:56.765Z", "postProcessHash": "6953961a2646a8ba9086b4de8c85bf1675ce1e9fbaa756900ca53568a50b942a" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.638Z", + "updatedAt": "2026-01-06T14:17:56.742Z", "postProcessHash": "0d3169e3982c50a1af0140de3dbe66b0a27f9c549609525ea3f3eeca871789db" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.556Z", + "updatedAt": "2026-01-06T14:17:56.666Z", "postProcessHash": "1ee4ad34a8c447f681641d606c9f7f7cc555af7de87f35a1570190b32797a165" } } @@ -597,15 +597,15 @@ "902fba8b39d6b163ee66698d8bd12433740962a53ec93d756ebdc9d11cc5c531": { "dc72366dcf698c0d7f7b5eed229fd9a7dbb9776362cc9399cf927769376a9098": { "jp": { - "updatedAt": "2025-12-29T16:46:13.634Z", + "updatedAt": "2026-01-06T14:17:56.736Z", "postProcessHash": "1f1ec41d23e63bd76de22c2cf8888b283f10a1b8b787d63b0b9d0495709e9d49" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.650Z", + "updatedAt": "2026-01-06T14:17:56.757Z", "postProcessHash": "69c4f5372057ca46e67c0ffbd84fc38f696c6441ef42b3690952dd20899f8b3c" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.645Z", + "updatedAt": "2026-01-06T14:17:56.752Z", "postProcessHash": "ce58780af5fcd724a09d992cdad2a8b119596ea6f092bcadd56d6d3210a87474" } } @@ -643,15 +643,15 @@ }, "ff4ae5a1f573be1a072b4b09e365f022836a2f75586f997d01c700c728f24d96": { "zh": { - "updatedAt": "2025-12-29T16:46:13.682Z", + "updatedAt": "2026-01-06T14:17:56.786Z", "postProcessHash": "468b614884a3008835b54907fbf2aa9969f25524ed0c0d5e53083ae100977de1" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.684Z", + "updatedAt": "2026-01-06T14:17:56.789Z", "postProcessHash": "5bbfee8544474b3695368a48dc9299ba1ee82e83fcd9841ffc6e9729d8a64b01" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.685Z", + "updatedAt": "2026-01-06T14:17:56.790Z", "postProcessHash": "71c97cd68aff2d732ce742d4ba7a28f60b0ae213b7be26c53c7adcc5def3e1dd" } } @@ -659,15 +659,15 @@ "9c7cf003973e27e4edaecd818b57b1e653cdfc8e936c45c67e314eb7123327be": { "1bca9e04eb1cf2d68b948ebb6ff7b813d50c8faada3f1ee2a8c561e9d96d6882": { "jp": { - "updatedAt": "2025-12-29T16:46:13.392Z", + "updatedAt": "2026-01-06T14:17:56.421Z", "postProcessHash": "7643936e64d9421b1100b3e03f96f1d86566f298b013156b2294fa0e8090765d" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.393Z", + "updatedAt": "2026-01-06T14:17:56.423Z", "postProcessHash": "9771d7374750e9391c577cc6ab4783afc3355df8bd5cac0e3e6d811fad3c77ad" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.391Z", + "updatedAt": "2026-01-06T14:17:56.420Z", "postProcessHash": "88267ee69616a7f62783d0cdf785584ff6f8c4d6b4fa617cd7985731fdd30fbd" } } @@ -675,15 +675,15 @@ "9d1a4cd9443c6b88ad09c86205631318b2554cff25df4445681bef27a63f1923": { "6349c4d8161b7c14d291e4b3a1c44b280c0eb9f067739c2cbeccc19c6800a2de": { "ru": { - "updatedAt": "2025-12-29T16:46:13.659Z", + "updatedAt": "2026-01-06T14:17:56.767Z", "postProcessHash": "300e689f73b8a314d09765196d8f22817166c2c0be5d9d474f7c8dcfec8efda6" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.661Z", + "updatedAt": "2026-01-06T14:17:56.769Z", "postProcessHash": "da1498753a9d75cb8be1bdcaa4431aee6a9e087dacf436c3075302444831acf4" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.656Z", + "updatedAt": "2026-01-06T14:17:56.764Z", "postProcessHash": "7650f2586dc8a669367419b9d6295857d800f3e06528e2d19d40dc6564a0028c" } } @@ -691,15 +691,15 @@ "abe1e09771cc949a765515b0f1ae2d0c4a6ab90fceae133c7ea3efdc49fb65a6": { "3a86b5256b89e144630a5cab1fb1ee8cee76bb30374fd9a861dacc440a7b8bd9": { "jp": { - "updatedAt": "2025-12-29T16:46:13.555Z", + "updatedAt": "2026-01-06T14:17:56.665Z", "postProcessHash": "daf74820f0de47bc47018b5965c3c3e1b9b205b5df0b7d93dc3366562ad94f6f" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.553Z", + "updatedAt": "2026-01-06T14:17:56.663Z", "postProcessHash": "0ea3c19c670f88e2ca010fff3a85ad6cf2711580f42e99d7d6f71b2fc0c392a8" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.552Z", + "updatedAt": "2026-01-06T14:17:56.662Z", "postProcessHash": "5fa2dc4f89cfd91fac4b7d62704897ceddc9e47ff517a3e9a861ab016edb9543" } } @@ -707,15 +707,15 @@ "ad7599fbe857ed33f8231ed240a179e73c2e77cfa5e658ffca7502e66d2eeb8d": { "fadc1396d5e8d2ef81e08c49dd8a08b01468ff70c1b1463a692904b2403b88dc": { "jp": { - "updatedAt": "2025-12-29T16:46:13.652Z", + "updatedAt": "2026-01-06T14:17:56.759Z", "postProcessHash": "ae37a4cf1c34ea08799498d6bef940aa93d23de95ba7a56feef1277b4bfaacac" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.662Z", + "updatedAt": "2026-01-06T14:17:56.770Z", "postProcessHash": "d92c93d69333bb3bc7555b943cf57dfcdefa5f958a6c86775462296fe9a1698e" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.660Z", + "updatedAt": "2026-01-06T14:17:56.768Z", "postProcessHash": "030ce23797d2e95f531ec7e07a29de63efc5fb6fbba23c40bfb49efd37ee36b6" } } @@ -723,15 +723,15 @@ "b299c52ac5ef4f3399408a89f700027a4da61547b988cd85ef190b1cd544d809": { "ab3b1379019677d4f056b27b40d79c7a1d368792ecee4e8e04d9224e7f40f825": { "jp": { - "updatedAt": "2025-12-29T16:46:13.647Z", + "updatedAt": "2026-01-06T14:17:56.754Z", "postProcessHash": "124a3e2ef9f22284438c43dadd8d8f66148b610bd88b59533d43ce92b8c23711" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.635Z", + "updatedAt": "2026-01-06T14:17:56.738Z", "postProcessHash": "444d74d94170cb1e152ad87a84dd84afbce8201e1e4c2e6389ce4aae13d84440" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.649Z", + "updatedAt": "2026-01-06T14:17:56.756Z", "postProcessHash": "f9b7a65de0c7b9d0a4fad0b5b6cd6e3d20a42ae97318ac5c3ec1c3be6cfc8995" } } @@ -739,15 +739,15 @@ "b776eb4f7e91ceadeb1cd902e4a72be31912c8f40357421634f01d720427d7cf": { "a157eb7d7ffd46e8626bd3b8ed555fd32deed480e675bf80cec9536c2cc53b70": { "jp": { - "updatedAt": "2025-12-29T16:46:13.639Z", + "updatedAt": "2026-01-06T14:17:56.743Z", "postProcessHash": "8f62360a1333252926b93344e084faf3a2d313d1f86c675edcf721a34d00b4d9" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.632Z", + "updatedAt": "2026-01-06T14:17:56.733Z", "postProcessHash": "0d157bcf10f26887dfd385a982438b02933943ea782b88f143a3ea53b8bcf340" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.654Z", + "updatedAt": "2026-01-06T14:17:56.761Z", "postProcessHash": "96dfbb21076c6bd7e79b4aeefcb9f48571db2fc947d54a63f61d2f146a877ad1" } } @@ -755,15 +755,15 @@ "d294fb78df318396bfabb26180e94ed0286f348799a54a338dbcac4df2d501a8": { "2c1ad0e8f79ff31317243d7b0ba63abc05a794bb4cf50ddf3ab6a05a73136433": { "jp": { - "updatedAt": "2025-12-29T16:46:13.663Z", + "updatedAt": "2026-01-06T14:17:56.771Z", "postProcessHash": "e8e6ab8458fb1da965dc5a46290ef2e645b4a28d79b3f59095615f2a2bfb19fb" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.658Z", + "updatedAt": "2026-01-06T14:17:56.766Z", "postProcessHash": "f48414f092c0b0e2d48295cc68d8679eda689bf7d92013346cfc3160c2ad7b9a" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.662Z", + "updatedAt": "2026-01-06T14:17:56.770Z", "postProcessHash": "a78267e9d1a30ab7c698f1df3d04b0753a081c2835c79436caf02ff3829e5762" } } @@ -771,15 +771,15 @@ "fb88079d51f44c0605f104c400878c73b1676f5d7360de0915e1f533962516d7": { "83b74506a046cca4bef2d9a75f263d66bc8cbdf6902a726a083fb24ba240c90a": { "jp": { - "updatedAt": "2025-12-29T16:46:13.659Z", + "updatedAt": "2026-01-06T14:17:56.767Z", "postProcessHash": "2ac607a2533a70b8792e43f0a1967f61d5f78f79c31628ec48ea5134914d98c3" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.643Z", + "updatedAt": "2026-01-06T14:17:56.748Z", "postProcessHash": "46f61667c4ff4c09edf454cf74c1401a772b97fcfe093dafbbdaa8181583927e" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.635Z", + "updatedAt": "2026-01-06T14:17:56.737Z", "postProcessHash": "48581e1edb533b6f96df47a93d6cc56a60dda895f85b0bad2cf5783ce348cb56" } } @@ -787,15 +787,15 @@ "08c0c301774aaa88b81ec6aa095f55e7824eafa1cbace5b623dc7c79a65127d2": { "69fd950d01a73a4628cd2ff26fd88bc864432af7ec9c2a0b214e105e41696130": { "jp": { - "updatedAt": "2025-12-29T16:46:13.633Z", + "updatedAt": "2026-01-06T14:17:56.735Z", "postProcessHash": "e6b95fe15b73769c8c942b025e34bc6c9b796b7e3023974439110c46303b35b8" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.655Z", + "updatedAt": "2026-01-06T14:17:56.762Z", "postProcessHash": "c2cc203d1b4acc4f016c9abe4519f61634fafa96714c3f0e7b1ee5cee96564c1" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.637Z", + "updatedAt": "2026-01-06T14:17:56.741Z", "postProcessHash": "283cdfce3f052ca1b4058952ad56aa7bec051d8a2ab543cf07880fd7987ec784" } } @@ -1037,20 +1037,34 @@ "updatedAt": "2025-12-29T16:46:16.526Z", "postProcessHash": "d3d7187506a965c315edd6e62daaee5abe1f659674367c1e155364cd85b664ff" } + }, + "c8afcd3898d2d5d12697b72a1c8a4313336cd545ca8503b5dcbdba163595626a": { + "zh": { + "updatedAt": "2026-01-06T14:17:56.888Z", + "postProcessHash": "eae8c8ca9cc508c05273a965ce48b2a1426ad6b874e26dadf7df71c5a1726e60" + }, + "jp": { + "updatedAt": "2026-01-06T14:17:56.889Z", + "postProcessHash": "50f28edf8485dafa2653a89af0036b8dddfa76c12871a10cbaeb473f100c9908" + }, + "ru": { + "updatedAt": "2026-01-06T14:17:56.890Z", + "postProcessHash": "7d21216c03cad5938a3954b204f3ad5e416c4594756c4aae5027d6d9fe9c1c21" + } } }, "3a3e4cf73cd863c0103607437eb8b4f6836337cfd7e83bdd562015c4ed9cdd6d": { "086e3e89b5951923ddf12df84d937ba158991125876b5f6d842de358bbe8b3fe": { "jp": { - "updatedAt": "2025-12-29T16:46:13.631Z", + "updatedAt": "2026-01-06T14:17:56.732Z", "postProcessHash": "fb971b3f7abda0479ca6b446d10fa45e563e53e4b533193cdf47ac7601de08ca" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.632Z", + "updatedAt": "2026-01-06T14:17:56.732Z", "postProcessHash": "ea00f78ee37041e965faf918712a683b8ffcaa68a84b666531ed38ba7cd8cf1b" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.648Z", + "updatedAt": "2026-01-06T14:17:56.754Z", "postProcessHash": "b2465a5cd96f04ec09cdfeccabc659965d1af02e9db24576f14e357ca80834c8" } } @@ -1069,15 +1083,15 @@ }, "4d6402165019f36eba8ac335e666c3d5bc688e1cc2afc71d462b4b0a95607cb0": { "zh": { - "updatedAt": "2025-12-29T16:46:13.609Z", + "updatedAt": "2026-01-06T14:17:56.725Z", "postProcessHash": "a38469346493ab3007e1e162d5e194fb2d686a1d88334495f903e002130ebfef" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.626Z", + "updatedAt": "2026-01-06T14:17:56.728Z", "postProcessHash": "4d620b86b7816aae52d912ce7829f03c76baa70534045919bf05211460b37d1f" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.628Z", + "updatedAt": "2026-01-06T14:17:56.730Z", "postProcessHash": "f53e1e5a026dbef96c38fafea45bc14c07fe2ad4859a3ad749188b2c3d227c31" } } @@ -1085,15 +1099,15 @@ "490be0352814516ee6591ee5f8e07875e2139020d864d540140e0fa494298d5d": { "d23d41d10643691da14255ad0f85c7b97475432325af1c17be68df9efc12be5a": { "jp": { - "updatedAt": "2025-12-29T16:46:13.664Z", + "updatedAt": "2026-01-06T14:17:56.772Z", "postProcessHash": "d1397c3c6a2ccc5270f7fdbab7d8f53cbce8357bfc5a770ff2a8b093fa80a1fd" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.664Z", + "updatedAt": "2026-01-06T14:17:56.773Z", "postProcessHash": "dcc61a13c02330b25d5a74defd56fbf1954b245d8a333d057abde4560d902ab3" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.663Z", + "updatedAt": "2026-01-06T14:17:56.772Z", "postProcessHash": "46d7525d1e1b6d9f9b8e7eec6fa096d6b16a1e5eee6ec4d679cce65adca629f5" } } @@ -1101,15 +1115,15 @@ "55b28fab1ba94c3606d033461bcc70376b43d613080d008d80ef6eeee311b377": { "256a3209f20639b3de6006d270d351fa95df57bd7f581ffda6773fd8eba690c7": { "jp": { - "updatedAt": "2025-12-29T16:46:13.660Z", + "updatedAt": "2026-01-06T14:17:56.768Z", "postProcessHash": "864a98275b08744b06c98dd96014565189f79d571df205cbf75e2482e49f18f3" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.630Z", + "updatedAt": "2026-01-06T14:17:56.731Z", "postProcessHash": "de4bbf322e2a336a64395c4b9adfd73dc2380b715500e20cbc8d1df8009779bc" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.637Z", + "updatedAt": "2026-01-06T14:17:56.740Z", "postProcessHash": "2b10d06d558ee85575fe42ac6386781077fa938da76da985a80d47c58486843b" } } @@ -1117,15 +1131,15 @@ "617059ab9b90c50e356730de729f0ae69ee3763a1e279dd764ff91a7fb180dcc": { "d57355b7ce2374ff50888d99d345884771d8478a28a50565e264c7183444541e": { "jp": { - "updatedAt": "2025-12-29T16:46:13.702Z", + "updatedAt": "2026-01-06T14:17:56.816Z", "postProcessHash": "a2e2c2b5c704ccd6ece06ee9d5de9f716d887648e5d242eb1864757aa7670740" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.651Z", + "updatedAt": "2026-01-06T14:17:56.758Z", "postProcessHash": "17d04cb1084f646a47034ba5b26f1bc9ee6d5f4c7ea407edacbc763f0ec11189" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.644Z", + "updatedAt": "2026-01-06T14:17:56.750Z", "postProcessHash": "e709f25f06cf9da27b50f7dae1c6ea0f330312eda3c0f55fa460bc3faa274d5a" } } @@ -1161,15 +1175,15 @@ }, "99052caf3522efca695f1fc80bf0deca9503be9be06c46e37944e4ab2f6d0afc": { "zh": { - "updatedAt": "2025-12-29T16:46:13.679Z", + "updatedAt": "2026-01-06T14:17:56.782Z", "postProcessHash": "a56a2fb59d056f3ea78077d2b76ba9f87e892483281d668c6d091184fba78cff" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.680Z", + "updatedAt": "2026-01-06T14:17:56.783Z", "postProcessHash": "9a7874012ddf9f50c6ef39e127dd9fef824c269024483fd854e97aa65271b9e2" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.681Z", + "updatedAt": "2026-01-06T14:17:56.784Z", "postProcessHash": "491ed3d04ba07604fde5f8c0ed4ecdddf77f8f7b73dc0c35a07c8e5abd4ad954" } } @@ -1177,15 +1191,15 @@ "7c8202b183dd3bd51127bf5cff1d877fc101a710d10076050d3769cec7237315": { "cce8610caf1b6ee18be42bc4b4573a409a2178a60d7e7fdf9aa312bb9a0e96af": { "jp": { - "updatedAt": "2025-12-29T16:46:13.653Z", + "updatedAt": "2026-01-06T14:17:56.760Z", "postProcessHash": "f942e6305b149dd731e797e01bde5f1ab8e88df370fed65c3d0497890c5516b5" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.651Z", + "updatedAt": "2026-01-06T14:17:56.759Z", "postProcessHash": "a19886bf8c9f0c0646ad12adc41bb64d3c7253c6909609d07e0a306d0a96748a" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.657Z", + "updatedAt": "2026-01-06T14:17:56.765Z", "postProcessHash": "331e6c38ae2460c3e45d3a23c7cf005cb95fb6ef3424d039d294c25fbdf3f71a" } } @@ -1193,15 +1207,15 @@ "7d8c9d047aa047d949a0099bf7badab51bf4cbb1242283616136def6a2087241": { "ae00c1636361dff35e6ca1fc517dd76ec664cbc4f992d5bcfebb7e2a76f626c4": { "jp": { - "updatedAt": "2025-12-29T16:46:13.645Z", + "updatedAt": "2026-01-06T14:17:56.752Z", "postProcessHash": "1140797eccd2bdff578f889659f5a7faa9917b5a999010e3f3dbfafc0abad6e3" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.653Z", + "updatedAt": "2026-01-06T14:17:56.761Z", "postProcessHash": "7c3488ad862fb019112eaf4a05daea9c1795baa8474d66894fbd6a79b0e4c8c4" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.642Z", + "updatedAt": "2026-01-06T14:17:56.746Z", "postProcessHash": "cdcef18737de614827b984003f3c66a5a41cae0524bf8474b294737f97151794" } } @@ -1209,15 +1223,15 @@ "828d49017ac2a72d1fb53055bb4787df9014bcdf6914a82ba88ded05b27ec9d4": { "9d68c2d46ac27369e5a5becf238948336518cad4fd978e7648cd41b1f743b1b1": { "jp": { - "updatedAt": "2025-12-29T16:46:13.709Z", + "updatedAt": "2026-01-06T14:17:56.825Z", "postProcessHash": "9c5bbd0fe25c8f6740a5b35d9b7938247d54cc72d464c493e5ca7b7b989c5de0" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.709Z", + "updatedAt": "2026-01-06T14:17:56.827Z", "postProcessHash": "28e5606bf2fee21b52036f1b9746ba5db3168e107f14b5de1ed5b86b81f9faa7" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.708Z", + "updatedAt": "2026-01-06T14:17:56.824Z", "postProcessHash": "dd1c221b3a6bc8fdcab0733ea347562aaec1f2d22578317da5d0e391257b95e3" } } @@ -1241,15 +1255,15 @@ "a1bad3f4a716dc84c050e5be3e8486b6c74375173ac25b4b6faa1e07928f68dc": { "2ea331fabd4829ebc7e1af163a669bd7da7ebae75dc79796126ab275fd4d3c95": { "jp": { - "updatedAt": "2025-12-29T16:46:13.638Z", + "updatedAt": "2026-01-06T14:17:56.742Z", "postProcessHash": "15485de315d5836a55c258e03b15354c0613cba0e4b50e218228c71fa8926665" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.636Z", + "updatedAt": "2026-01-06T14:17:56.739Z", "postProcessHash": "8956ae6ba4a61c654d671ce6ea354ac3327c88d6fd2f32e94a595ced7846e7b4" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.661Z", + "updatedAt": "2026-01-06T14:17:56.769Z", "postProcessHash": "fdb406fd6ef9bae12b9029650e02d374aa31031a8dc29af43b762daa733d58b5" } } @@ -1271,15 +1285,15 @@ }, "3739bbcf2fdb1546a32752b6388664fd707dcf893781f54c6e67cb80343fa7d0": { "ru": { - "updatedAt": "2025-12-29T16:46:13.732Z", + "updatedAt": "2026-01-06T14:17:56.871Z", "postProcessHash": "3f8336e64029304979d274f0f9db024110b688811b8ba84761888079be07a800" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.745Z", + "updatedAt": "2026-01-06T14:17:56.891Z", "postProcessHash": "112960f3522deb46fb80a92374f557ca51cd18549f7dafd4b5a29a495237d169" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.746Z", + "updatedAt": "2026-01-06T14:17:56.891Z", "postProcessHash": "486221e5932bfe96c8691f8bc55aae5b16f2b4e43b18b42b393eacf21a5ddc98" } } @@ -1301,15 +1315,15 @@ }, "33de4c4e68ec4a59d3bfc6d9fac378bc69ac2099742a5677891e87375ca27e71": { "zh": { - "updatedAt": "2025-12-29T16:46:13.739Z", + "updatedAt": "2026-01-06T14:17:56.792Z", "postProcessHash": "b2454adc3dd26ea2cfc304d31993182918a45541567746bb1a90b59a7842f9b9" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.743Z", + "updatedAt": "2026-01-06T14:17:56.793Z", "postProcessHash": "0efdffd750d9fdffddaf2a8b5fe555aff113ccf9505675d5b1f9231763348009" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.745Z", + "updatedAt": "2026-01-06T14:17:56.887Z", "postProcessHash": "395908016d9b4749ceb6e3449c084542365a80db1e625eb463bc643b38094a5d" } } @@ -1317,15 +1331,15 @@ "c369c0aa928f8264daf73b2cb8b5d20b0f760cd84c596ca63fb6e80bf182b3ac": { "081e5ae543866b5886ecf7decd8d4a80af7f854626b8b8136631cf04a6c7a9f8": { "jp": { - "updatedAt": "2025-12-29T16:46:13.655Z", + "updatedAt": "2026-01-06T14:17:56.763Z", "postProcessHash": "970e83a15a6ea3eeacbb8e156d00618857f8824b5ffa4ade4a97f5b2c71dc576" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.639Z", + "updatedAt": "2026-01-06T14:17:56.743Z", "postProcessHash": "8dd0323d81e8cff6d565d213896df667a459a80ca058470ccb4b010826d9b69e" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.643Z", + "updatedAt": "2026-01-06T14:17:56.749Z", "postProcessHash": "27da05977f37b3b0642b34cd8d30808105faa5a644fc01060797966fc7be5568" } } @@ -1347,15 +1361,15 @@ }, "962fc64df6da9faec23cb776915d9dc677f58045523d7aae50bc390c8d309e06": { "ru": { - "updatedAt": "2025-12-29T16:46:13.682Z", + "updatedAt": "2026-01-06T14:17:56.785Z", "postProcessHash": "950517416e627a4aa3f2a5149bbd36b6802d24e4128d2c4e5efea32758c72016" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.685Z", + "updatedAt": "2026-01-06T14:17:56.791Z", "postProcessHash": "70fd214ee355defd63091c729bafcbda541d00dee84ec6db79880bb0a66468ed" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.738Z", + "updatedAt": "2026-01-06T14:17:56.791Z", "postProcessHash": "8927c5ee3f60599219fb190023b6481c56da96f4efb30b92627f280b1d6a0287" } } @@ -1377,15 +1391,15 @@ }, "ffff945a49e65cb81d26b1d25050fccbf1bac39ab2a83fa4884b934ef4a378d3": { "jp": { - "updatedAt": "2025-12-29T16:46:13.682Z", + "updatedAt": "2026-01-06T14:17:56.786Z", "postProcessHash": "f4ad7f6c868b6615ad22f62bc10bc830b03740782c2b55cdf4fe2f7a2c976fad" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.683Z", + "updatedAt": "2026-01-06T14:17:56.788Z", "postProcessHash": "e804064451ea2242eecfc50247c86f54a7294c78da07731a6cfc77cce90cfdf2" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.684Z", + "updatedAt": "2026-01-06T14:17:56.789Z", "postProcessHash": "9952a56a9c65621364902e6acf63079d63475b22a4a492a6429202351e125c7a" } } @@ -1393,15 +1407,15 @@ "f03ea3286759068addb766b5b98317ea84803343105fd081b75322828bf9d201": { "8049194481456bef5558bf7d7d6cc3b522680055cc050dd06c21001990efaa95": { "jp": { - "updatedAt": "2025-12-29T16:46:13.641Z", + "updatedAt": "2026-01-06T14:17:56.745Z", "postProcessHash": "578eaff567044b576bfd8e4bab251b77439e84c2038ec37a9981859489b68663" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.632Z", + "updatedAt": "2026-01-06T14:17:56.734Z", "postProcessHash": "7004c9e5a784d3881e88638381c33eac1f1e70b4a183c6efa6640fd1a8185e6c" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.649Z", + "updatedAt": "2026-01-06T14:17:56.755Z", "postProcessHash": "39936badc6a3c1a9d3a1c20b66495c2366523a180756d3890407f4c7c3d1aead" } } @@ -1409,15 +1423,15 @@ "f820ad66299aa0044ecdcc3298f5727903d52ea9ce19686054f70d9df707a8ec": { "1c6d8e151f574eb1c808a7932e470939d01ddf3adbd9a088012790d70765d510": { "jp": { - "updatedAt": "2025-12-29T16:46:13.642Z", + "updatedAt": "2026-01-06T14:17:56.748Z", "postProcessHash": "e74f323e0326c245608db3f2977f269016ebc0ad867ad3a7fe42fb8081c1d74e" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.646Z", + "updatedAt": "2026-01-06T14:17:56.753Z", "postProcessHash": "639113873896772a7ce29e932d1c1706206f6f84d81c704584b8f6ce26658ce4" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.633Z", + "updatedAt": "2026-01-06T14:17:56.734Z", "postProcessHash": "08b2cccc240dff88ad8696e144fa64727998f5662fc9ed54b39af7050a7dc5c2" } } @@ -1425,15 +1439,15 @@ "fe8dc3e8a42089566aa7dbdc1b163232b94dab755cd8f716e5050a20b9da71be": { "8e5a24d4923c146d3ff29a36c8d08b801a6681568d413d11ee21ab25c5a588ff": { "jp": { - "updatedAt": "2025-12-29T16:46:13.644Z", + "updatedAt": "2026-01-06T14:17:56.751Z", "postProcessHash": "c38419d127f58261f3e08988e08753b83587585af775b381c711ed39c7ec2e0b" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.634Z", + "updatedAt": "2026-01-06T14:17:56.736Z", "postProcessHash": "adcdedc2aceff68a729528a8dee3fe66024070cd52de7cdade2f21d1c0e5e64c" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.644Z", + "updatedAt": "2026-01-06T14:17:56.751Z", "postProcessHash": "9b922dbb18d534fe3d92fe2d786df964c99b1189e9002fe919f5dadf38737d02" } } @@ -1441,15 +1455,15 @@ "1468ae293b5d12d0ded8668dbb023988cbdb44ac496923a1ef6653864352d921": { "99c4f7270820d4fdcb92c4d24d5487f3eaa377c46e721e913d45645dba75a74f": { "jp": { - "updatedAt": "2025-12-29T16:46:13.691Z", + "updatedAt": "2026-01-06T14:17:56.805Z", "postProcessHash": "9fd2de53de1f48cd56068767fd1572f66212224c1bcdd71437981e589cda9b49" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.694Z", + "updatedAt": "2026-01-06T14:17:56.807Z", "postProcessHash": "ecd43e08bc35775fbbd12e8ac1f372595ff680cd108a6b8d4b856e863d413004" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.693Z", + "updatedAt": "2026-01-06T14:17:56.806Z", "postProcessHash": "56e0652c1236a636df1304de76ccd7d483b65ebd2d106a39a0a4db329b353f6c" } } @@ -1471,15 +1485,15 @@ }, "2a27339c4e4eb76af7e43d5740bb01e422d0a11ad2a751db617e657fae320a99": { "ru": { - "updatedAt": "2025-12-29T16:46:13.729Z", + "updatedAt": "2026-01-06T14:17:56.866Z", "postProcessHash": "d5ee755a328baf931edf1b5a320ab0727fa858083c8d3f612615b81b8f398937" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.730Z", + "updatedAt": "2026-01-06T14:17:56.867Z", "postProcessHash": "8bbce605564111d25b3d6143eeb1cf2cf9fc042da89b02e8d522c093f2886498" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.730Z", + "updatedAt": "2026-01-06T14:17:56.868Z", "postProcessHash": "d0f83297bcd9c7baa9a4b974ae33620506b8019f9772f04acabbe53378890840" } } @@ -1487,15 +1501,15 @@ "2317505b4b1b1557458b6ec9caf09937e43cf133543d04e2637e9cd6e0693bc2": { "8b6d58a1ca1a770a40180a524a20350aef1a747a1a0f59ef6bd9eb53764a7d1b": { "jp": { - "updatedAt": "2025-12-29T16:46:13.698Z", + "updatedAt": "2026-01-06T14:17:56.812Z", "postProcessHash": "d8ab4ecb6fe54078f4763fd8850ec52cde8160317f417733f818d874a548596a" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.690Z", + "updatedAt": "2026-01-06T14:17:56.803Z", "postProcessHash": "8e983f50852b2821d89b3751447864cdc10162d51b470ba644d5fbb021696fb7" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.697Z", + "updatedAt": "2026-01-06T14:17:56.811Z", "postProcessHash": "90b00cb44383bba4ee1315d3cac296b62540c822afde78e2dcb60be44fdd5c74" } } @@ -1528,15 +1542,15 @@ }, "948225fc9a3f77c9926fd9f0a0246185beb20f046d2602352b16f72999dba180": { "zh": { - "updatedAt": "2025-12-29T16:46:13.855Z", + "updatedAt": "2026-01-06T14:17:56.988Z", "postProcessHash": "4e6bf6536693def9868da737694e18b3515512433f49457b762cc3b8ca7877ab" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.857Z", + "updatedAt": "2026-01-06T14:17:56.994Z", "postProcessHash": "42be1681c208b6672eab048b147222d4431469856f2fbb9847b3a6b0df243ab2" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.859Z", + "updatedAt": "2026-01-06T14:17:56.995Z", "postProcessHash": "2df382b7722847b3ea76769ad076fd4e9cbd5f4f0e8f1c8c3ea34f746b762a99" } } @@ -1544,15 +1558,15 @@ "3371d95238c92603c162eaed8138395ca44e47b22ad969c5099f7e599ec16c22": { "2a161bba41a266518443feea5a759cf299dbc3fdeb7b00fd74b546abae68dff0": { "jp": { - "updatedAt": "2025-12-29T16:46:13.707Z", + "updatedAt": "2026-01-06T14:17:56.822Z", "postProcessHash": "1f5febc845026f669bdc79503175f4992a144a463c0d30b4884c3d5c738a6d40" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.708Z", + "updatedAt": "2026-01-06T14:17:56.823Z", "postProcessHash": "60699833b3145a56fed180989c614e26463ede4b3ada0b655b1a3ee5d5333759" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.706Z", + "updatedAt": "2026-01-06T14:17:56.821Z", "postProcessHash": "9c615fbf99635f39ce649ca26fd069f9a53ac8b781c8a5fc59a8f62ce58af6d9" } } @@ -1560,15 +1574,15 @@ "34148aef91a7ca42367acb2003b2045d6893d713fd20c6ef4a4a8fe6b505125c": { "0df15707cc19ce74ec40c00d884f8f77eb33786d03f5831e131804575fce02b5": { "jp": { - "updatedAt": "2025-12-29T16:46:13.713Z", + "updatedAt": "2026-01-06T14:17:56.833Z", "postProcessHash": "8dcea106834ae5cf1be4b98a7e844b865a4492e275154f094062238b61149124" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.710Z", + "updatedAt": "2026-01-06T14:17:56.829Z", "postProcessHash": "f14476558d7aca0830f51e95a7a3b85046650665241343955715c76ce1950c4f" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.712Z", + "updatedAt": "2026-01-06T14:17:56.832Z", "postProcessHash": "1daa36adc4b8391fa9e918440cab755f22f2e377e79070a0a0795f9f51bea6ba" } } @@ -1576,15 +1590,15 @@ "5c385581f9c65edaaae75a74b6646a142de547cd3f20a408953b75ba33586e2c": { "8dc4eb869f4a048ed04d5883545cce095cb2df351eba54b486a29c615fe29cb3": { "jp": { - "updatedAt": "2025-12-29T16:46:13.704Z", + "updatedAt": "2026-01-06T14:17:56.818Z", "postProcessHash": "868bf288f73fd9c330c2a129e0a49ec0e123f0e87d78e00163b314ea885cfcd0" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.630Z", + "updatedAt": "2026-01-06T14:17:56.799Z", "postProcessHash": "a70feb21a77120bff840967047fa293b23977599dfb58c8c950c53b6ed941394" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.703Z", + "updatedAt": "2026-01-06T14:17:56.817Z", "postProcessHash": "400634f79b530331c42717f4122c416a77541de2ec36b6dad36b31594278fd1e" } } @@ -1606,15 +1620,15 @@ }, "cca189f3d96b12c0541cab4d176aa58eb649d19f9fec48adf88ca253c0a5090a": { "jp": { - "updatedAt": "2025-12-29T16:46:13.739Z", + "updatedAt": "2026-01-06T14:17:56.881Z", "postProcessHash": "a9406fd00e49a9085085553a1b6c9ad3d604fcc122e70f64c0a0cd4106b49e02" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.742Z", + "updatedAt": "2026-01-06T14:17:56.885Z", "postProcessHash": "7f0f5ba6fdcebbc8087bbd2bc76dc4813735c095f34e6c76e980c83cf3cebae5" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.743Z", + "updatedAt": "2026-01-06T14:17:56.885Z", "postProcessHash": "ed12bb5caf1699ef6640eecf7a87c27aa6439ca72671e95ae316318649818f44" } } @@ -1636,15 +1650,15 @@ }, "d6a5e238e72b1ac6ae87c6929bfe0b0c79b81b5645fae9bbf81affa6719220b2": { "zh": { - "updatedAt": "2025-12-29T16:46:13.733Z", + "updatedAt": "2026-01-06T14:17:56.872Z", "postProcessHash": "99233f1f1b069efd334d3ec9f751543b5c31e5350d7063f592720c7fee4285e6" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.736Z", + "updatedAt": "2026-01-06T14:17:56.877Z", "postProcessHash": "037cbc95dd05645d9aff2d04a48c47158cc289b5f681ca7e7d375146f083c6dc" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.738Z", + "updatedAt": "2026-01-06T14:17:56.880Z", "postProcessHash": "be2d1b049aa92915277a69a92e7de9ddb3607c41d8738137fc76ea45003e058c" } } @@ -1652,15 +1666,15 @@ "67113cbc50d80beb99c25a836c1c97bf312030d10537561666f2d9afcf9f3145": { "bc5d1e200e64a767369cc0ffad68cd1dc62da9a6230b0c00c0c10c90dcbef298": { "jp": { - "updatedAt": "2025-12-29T16:46:13.701Z", + "updatedAt": "2026-01-06T14:17:56.815Z", "postProcessHash": "d258e46677f99d382eea71588434a27eba5402b22040bf0b3568b9d61cc0ad68" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.702Z", + "updatedAt": "2026-01-06T14:17:56.816Z", "postProcessHash": "59641ad9685aec1300a3f39aa83e8bd60fee778b88b9bfaa4124c782b389481c" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.700Z", + "updatedAt": "2026-01-06T14:17:56.814Z", "postProcessHash": "5e040bb437719121669b6a1212a2a90a5c2a95f2aa364b889cc0e2cb30adf376" } } @@ -1668,15 +1682,15 @@ "6986025ddfdb6e69c9d68bae98e09599b7bd5252a433fe1c14839522e57376a7": { "6a07a797478a7c19aa592d19f3fd5211e2bae00db7fd3cef33b175016a1b1b29": { "jp": { - "updatedAt": "2025-12-29T16:46:13.704Z", + "updatedAt": "2026-01-06T14:17:56.818Z", "postProcessHash": "4bd86c3863686facef5f8e71449fa9feb0a54536e36f7b9c4719a304c4c0bd30" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.706Z", + "updatedAt": "2026-01-06T14:17:56.820Z", "postProcessHash": "cd9923ff93a4d3b064dd79ac9aa6ce06b31568cb0f725aee686561e85e8d9dd8" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.705Z", + "updatedAt": "2026-01-06T14:17:56.819Z", "postProcessHash": "939a5e067655e1fded2b9325ab0e72ad38bd5a4d6a4c50d0fb95077693b077f4" } } @@ -1698,15 +1712,15 @@ }, "764df6f5a0941ce8524a0d19f2d30272bf1ca93dddaeb83307a4a3911e8b4ab3": { "zh": { - "updatedAt": "2025-12-29T16:46:13.734Z", + "updatedAt": "2026-01-06T14:17:56.874Z", "postProcessHash": "dd48cd9317a8c7ef948c654c709e10e4a5a74a73d18539befb0e0769084a674f" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.736Z", + "updatedAt": "2026-01-06T14:17:56.876Z", "postProcessHash": "53748af40994acf12dda12a476cf38de9a2671ef4915b548c3695050cb803927" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.741Z", + "updatedAt": "2026-01-06T14:17:56.883Z", "postProcessHash": "af24f5eefcd5a8be31e2730ed639a1197c23bf0761745cbe2a7202c5521ea666" } } @@ -1714,15 +1728,15 @@ "a5aac8ce0e37bc2df7af5f69708607c2c9b46cbe068e3172847b3191394faffe": { "38d2828e9bd727652c3233af76ea089e954aba2db55328f8cf1f43ca609f19ff": { "jp": { - "updatedAt": "2025-12-29T16:46:13.631Z", + "updatedAt": "2026-01-06T14:17:56.800Z", "postProcessHash": "b1a5911a91703322d9d3b5a72b5a833d7ee1a016b989b4229fa14ff34190bd6a" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.692Z", + "updatedAt": "2026-01-06T14:17:56.806Z", "postProcessHash": "9670319b7ddd379f085337a31ad61066cdc9669060a88e89f573d71eb30fc4a5" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.691Z", + "updatedAt": "2026-01-06T14:17:56.804Z", "postProcessHash": "f7d78abc526a955a9cb24a12823ddab302b52b101c47f6ca76ac2c2175a3f106" } } @@ -1744,15 +1758,15 @@ }, "6dd64584d48e8369d63097cfd2b6bb2025d41016c132dfb3f8eda0783a442aba": { "zh": { - "updatedAt": "2025-12-29T16:46:13.797Z", + "updatedAt": "2026-01-06T14:17:56.967Z", "postProcessHash": "fdbc747210f7f67a245034b5ebc04c8a069c75f41a2cc0d35fa0fb5fda050621" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.798Z", + "updatedAt": "2026-01-06T14:17:56.967Z", "postProcessHash": "452f590621230b64179953ed964daa6295c777dcdee2e831f325d3b36d3be2d5" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.799Z", + "updatedAt": "2026-01-06T14:17:56.968Z", "postProcessHash": "cb3f74f36b8642f552fbac505657abf5fc4c5bd87b6e0251c384b3a21e0a3f87" } } @@ -1774,15 +1788,15 @@ }, "b9c5f74b84dc23fb6642e5403d40d1df84243df4bac9ebd0a4eb4907b661146b": { "zh": { - "updatedAt": "2025-12-29T16:46:13.732Z", + "updatedAt": "2026-01-06T14:17:56.869Z", "postProcessHash": "63fef64d785c6f43d97ddf5436cc7ad25f033bf7574e455e47fe2c8d16ab9887" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.747Z", + "updatedAt": "2026-01-06T14:17:56.892Z", "postProcessHash": "c5a6896298e21ea1f13250e06d27947d5f46a9def69a87e1254834cc69281cff" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.747Z", + "updatedAt": "2026-01-06T14:17:56.893Z", "postProcessHash": "033c10db5c8afcfdfffb9c8d38ea0b48ea69f8df0de01145991ddf5b77b12869" } } @@ -1790,15 +1804,15 @@ "b721aaf83ea7701a82587311ffcd215fa0fddd0ac9d459193fd26188e0680183": { "906c00a6ef80e7715d21aae24374b2b2d044fcdc7b9d5c6c2c7341ecd0753821": { "jp": { - "updatedAt": "2025-12-29T16:46:13.629Z", + "updatedAt": "2026-01-06T14:17:56.796Z", "postProcessHash": "f8fccdad4355400866118dde3418a4741e52620861b6c3d527f60d3ba9865414" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.695Z", + "updatedAt": "2026-01-06T14:17:56.808Z", "postProcessHash": "f0e12311b51ca73e132406cdb80aace0fde45bfb42f8c3c1d3d7b4f193ecbb8c" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.695Z", + "updatedAt": "2026-01-06T14:17:56.808Z", "postProcessHash": "6a5c9221d66d6a1175ddaa96d31ee0ce0bc070aefb56cd177cbe7eba92614895" } } @@ -1820,15 +1834,15 @@ }, "35dc86de4689823eaf083db44a6b6c6d85f3b65aadfd357010017fd0a9ed1c84": { "jp": { - "updatedAt": "2025-12-29T16:46:13.735Z", + "updatedAt": "2026-01-06T14:17:56.875Z", "postProcessHash": "00fedd2e8530066ed506a0b99935f14d3837d5872bfe84e8810de9b142ec6c69" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.737Z", + "updatedAt": "2026-01-06T14:17:56.878Z", "postProcessHash": "f33d8ffe0dcc8b08c7d5ecc6c40dd25fff401b4231104c452d7d64ffc4bdf5e0" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.737Z", + "updatedAt": "2026-01-06T14:17:56.879Z", "postProcessHash": "350b7434a10e66ca4df49503a1fb1cfbd3958b3fbf67efb1aa92fbe08b16dc94" } } @@ -1850,15 +1864,15 @@ }, "27cba05efdf8d756e9f7b6f8bd327fcfe3c7ccbbfde9e23a8bdefea3e4186c95": { "zh": { - "updatedAt": "2025-12-29T16:46:13.740Z", + "updatedAt": "2026-01-06T14:17:56.882Z", "postProcessHash": "5615e85dc16da5ade6efeff70f3f1d10f023bbd474d1fe4b3954c7b4740c8f34" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.741Z", + "updatedAt": "2026-01-06T14:17:56.883Z", "postProcessHash": "6bd73442110949a93886cca3d21dfa1d191d3fb9b8a35d275d6c70b5e1c98ceb" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.744Z", + "updatedAt": "2026-01-06T14:17:56.886Z", "postProcessHash": "cbe1ebec513809250496d1fcf92eab8a1af66b85d0310a2e3015a781a413bd85" } } @@ -1866,15 +1880,15 @@ "f56b183aebaa9c102a1630d41b724bdd0ef7984c2f5be9f15f51bb83994e0265": { "0e4b6a498cb6259a81c3b89b57fc27d109c9f7c4517473e5f6371c0a4d14e7e7": { "jp": { - "updatedAt": "2025-12-29T16:46:13.711Z", + "updatedAt": "2026-01-06T14:17:56.830Z", "postProcessHash": "c176556ad4a151b62d018d6d5b312029f1f14f3b7237a0c7d140505d6b589d51" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.710Z", + "updatedAt": "2026-01-06T14:17:56.828Z", "postProcessHash": "6112a4a4ba935f968ddc8ac9a885a151927d834b0f0eb5abd09dfb1dd582120f" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.711Z", + "updatedAt": "2026-01-06T14:17:56.831Z", "postProcessHash": "403a8c7ac0aec29e2b71d08436d381b04fb84264393e14c673169ae8376fcff8" } } @@ -1896,15 +1910,15 @@ }, "bbb4cc1198a74f08d2a6013c1b6bbf015367c6112ccc9d62102d8dd76ece83dd": { "ru": { - "updatedAt": "2025-12-29T16:46:13.731Z", + "updatedAt": "2026-01-06T14:17:56.869Z", "postProcessHash": "5a5c6a26c74af163f736061d05df125f5bdfadfd97c75f13d470dde858a2421f" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.733Z", + "updatedAt": "2026-01-06T14:17:56.871Z", "postProcessHash": "36fc2716879104a0202e0f6d94c87d2a9e823c8ec4921d099532a98aa9de161e" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.734Z", + "updatedAt": "2026-01-06T14:17:56.873Z", "postProcessHash": "96664c84babaf93fc4bf2a9c00dfcc64337a67fea4448d12907959f32b661363" } } @@ -1912,15 +1926,15 @@ "f90130006ab67f0f1f9729094d7e71d602684a6c03306792b40387ebeda24cbd": { "044f9d08748a2a48a556c183ed0bada874cc4ce848cad6b1bf87fba782fe7d9b": { "jp": { - "updatedAt": "2025-12-29T16:46:13.696Z", + "updatedAt": "2026-01-06T14:17:56.810Z", "postProcessHash": "aa01c7221a2e95022b44dbd371f21586d23683555d375749c61daa4ff195acdd" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.689Z", + "updatedAt": "2026-01-06T14:17:56.801Z", "postProcessHash": "4d8f95b6e449ec2a5b0bcb452a03d0fd3ecb4b4db93079982ee11df37415efa6" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.690Z", + "updatedAt": "2026-01-06T14:17:56.802Z", "postProcessHash": "422b789245f141eb48d14e2d8bb7c081181b5229e0661c1abb2ea2e872dda4e4" } } @@ -1928,15 +1942,15 @@ "fff1cff77ce23873924a1766144be6a0a4bc145a4beaf1c7902459c008cbd536": { "6b16dc8b034758efca2a7dec7fe695e186e4ef2f750e4a6ba872d28a906012b3": { "jp": { - "updatedAt": "2025-12-29T16:46:13.698Z", + "updatedAt": "2026-01-06T14:17:56.812Z", "postProcessHash": "f8d1686e959624443c8a39ba2fc187294556dd22492676745e46bf6df0acf308" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.700Z", + "updatedAt": "2026-01-06T14:17:56.814Z", "postProcessHash": "948d2775b001c3b85aaeef3e6faa353c8fb892076ad921a48b83ca302ae5200f" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.699Z", + "updatedAt": "2026-01-06T14:17:56.813Z", "postProcessHash": "46efaaae764138b2b63c17ef9aa23157386b320c7f70b1d24e1a5d1d750a1086" } } @@ -1958,15 +1972,15 @@ }, "45f1e18014f15e8bccd82575d41d4e0a921b4a2ed48eb2661c053aad7b373f39": { "ru": { - "updatedAt": "2025-12-29T16:46:13.856Z", + "updatedAt": "2026-01-06T14:17:56.991Z", "postProcessHash": "c206988375d1bcaad08d3b538f3d2421908d2c3ae7c3626cb458f69d37b834ed" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.859Z", + "updatedAt": "2026-01-06T14:17:56.996Z", "postProcessHash": "16ab3edb5449de2899c88dc919134c181592923d84805e125734569daadd126f" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.860Z", + "updatedAt": "2026-01-06T14:17:56.997Z", "postProcessHash": "138fb16d6e7314f80bc5da8bc9bafb902543ec1012f3a5c35ca309a65465769a" } } @@ -1988,15 +2002,15 @@ }, "7d380cad0dbc5146aea79780b0c7ccbb00af391211ad33d9afb0a87e78c1b2d2": { "ru": { - "updatedAt": "2025-12-29T16:46:13.851Z", + "updatedAt": "2026-01-06T14:17:56.985Z", "postProcessHash": "698d19ba8239422422c2ecf4fc6096802ae6b197075832e1004468d5f31c9055" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.854Z", + "updatedAt": "2026-01-06T14:17:56.987Z", "postProcessHash": "b435d9ede10f6f1ae463073161df20d6140ef2415f5a10f84c9775253d8f60ea" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.855Z", + "updatedAt": "2026-01-06T14:17:56.989Z", "postProcessHash": "0f60a1cf2230471675a53df3233f6ab829dc615027a2c86447b00e6b3274a2a2" } } @@ -2004,15 +2018,15 @@ "16a9baec9aea4c6dd78355c05288783f630be08b0af1a257fb205b45c7adc066": { "b1a72f898456e3c08b49f6f0e73a4fc33fa3bad39fab513c1db89294a3fb923a": { "jp": { - "updatedAt": "2025-12-29T16:46:13.763Z", + "updatedAt": "2026-01-06T14:17:56.914Z", "postProcessHash": "3bb1ce0ee462e950fdad9930985525b75615acf2eb9db4b73fdbe415fd337263" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.754Z", + "updatedAt": "2026-01-06T14:17:56.907Z", "postProcessHash": "bde953bae180e37cd3d4591a46d91dcdf6e5667e1089333f6adbc59e98f8f9cc" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.759Z", + "updatedAt": "2026-01-06T14:17:56.910Z", "postProcessHash": "2e8e1c1206ef52519a54a87a4e3d8fc21493f4ec8cb1d80d5927cecd8af8e2b9" } } @@ -2034,15 +2048,15 @@ }, "6cc924b629ae0b3387ba20c1c7fff28dd7ef2fe2d833f3c690c183154d657f34": { "zh": { - "updatedAt": "2025-12-29T16:46:13.979Z", + "updatedAt": "2026-01-06T14:17:57.186Z", "postProcessHash": "9e614291411bc3cfb433e0dc3cd6a52c8519115cc015b69c3a5ecdc044276662" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.980Z", + "updatedAt": "2026-01-06T14:17:57.188Z", "postProcessHash": "cbd847468b1b77e2f7f3104b5e1f47a868b27fd196930b3d31db0bd82dec78f2" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.981Z", + "updatedAt": "2026-01-06T14:17:57.189Z", "postProcessHash": "2f5c4e2257039a602e952cf79993baedc292df3632ea8327f65e55182f42c011" } } @@ -2050,15 +2064,15 @@ "2fa693bc37b3a10adc8d79217e3b09168dc83b1d1e169414c8ff196815fec6f9": { "9e33b9e6995d58fab1e0c61f6a5436f2184d7c49af88577359d93f178ead07d6": { "jp": { - "updatedAt": "2025-12-29T16:46:13.883Z", + "updatedAt": "2026-01-06T14:17:57.048Z", "postProcessHash": "0969c06e893321491d7e9431c66bba91e0f62a041106124f0c0c44592bd7fc7b" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.888Z", + "updatedAt": "2026-01-06T14:17:57.057Z", "postProcessHash": "415b8e2ea42b190c995781c0858c50bb6e62a65c85f9b9ff4fa2b4d29cd856ad" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.972Z", + "updatedAt": "2026-01-06T14:17:57.177Z", "postProcessHash": "f09f13324ecf40b49df15222b42ee46aab32ac3679e1684085b90177b511bbcb" } } @@ -2094,15 +2108,15 @@ }, "98dcc939fd42362b132d4de42892859c5ceeb208423a077dd10ba56b94109027": { "zh": { - "updatedAt": "2025-12-29T16:46:13.807Z", + "updatedAt": "2026-01-06T14:17:56.974Z", "postProcessHash": "93bfe3f768718d0650e5132550d9b1176bdf9d9b74dfd17013287b69d122f220" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.809Z", + "updatedAt": "2026-01-06T14:17:56.975Z", "postProcessHash": "141691a13ab9b49b62d0b9796c03328b1c3648fda7658827da9d75330b614054" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.810Z", + "updatedAt": "2026-01-06T14:17:56.976Z", "postProcessHash": "06c03937973553dd804b06615af30d50b28c75778a8396b3dc1c8b289dc0770c" } } @@ -2110,15 +2124,15 @@ "4d14e175d2ad5b7f1f59197782ca672764811be0a7694da0d93c40a71707c218": { "2f6f3975ac07a17d2e6c12809f029b5fcecdc238f96cab5409c924b908db77fe": { "jp": { - "updatedAt": "2025-12-29T16:46:13.758Z", + "updatedAt": "2026-01-06T14:17:56.909Z", "postProcessHash": "1e178eb75e2e5fa2a21fd022dd6ea1c382c000fa29a1e9f21345f1fcffcc2c40" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.761Z", + "updatedAt": "2026-01-06T14:17:56.911Z", "postProcessHash": "a2746aa9d6956356cfd2b6f525e75a2cd2cbdee3668735d5fbd6b904c86ed609" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.762Z", + "updatedAt": "2026-01-06T14:17:56.913Z", "postProcessHash": "c8673f4ddf32384943061c0725ffad546d776d3151a1d6be01f29323a27fcb7f" } } @@ -2126,15 +2140,15 @@ "57e4e9dfa0451001fd8054b08c62e1b7e7899bf69d75440b300be4c4a727b99e": { "37f3dda8e8d9a3dd2ccbec3bdd564d2de4200f5a0108f14e3cb3cbe1f05fbe96": { "jp": { - "updatedAt": "2025-12-29T16:46:13.764Z", + "updatedAt": "2026-01-06T14:17:56.915Z", "postProcessHash": "e7a0f4806c1827db300657c238053864f5db16eaa4f86e290d44eb318234a828" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.760Z", + "updatedAt": "2026-01-06T14:17:56.911Z", "postProcessHash": "060d8c5ff7ddbd9f1daa1eb8287ba23bce2b5c0499bcbde84c0c6c452ce8f1d1" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.764Z", + "updatedAt": "2026-01-06T14:17:56.915Z", "postProcessHash": "efd819eff2e9550b03d98e66ea4d3cd5210cc0ae8b1b9154a9dcf433360eba6e" } } @@ -2156,15 +2170,15 @@ }, "ca3076969cc79e28b93cae994cd5f03ba7c360904c9c3e1ce754fba7e8a32258": { "zh": { - "updatedAt": "2025-12-29T16:46:13.984Z", + "updatedAt": "2026-01-06T14:17:57.193Z", "postProcessHash": "5239eac74b1e3eb6e9c3b69148fd006d9d8795ad1152c227e0598275b870217e" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.985Z", + "updatedAt": "2026-01-06T14:17:57.194Z", "postProcessHash": "a24821ba1d19e23edc58534b45af03924921c00c4023c311ec7d705b175784b3" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.988Z", + "updatedAt": "2026-01-06T14:17:57.199Z", "postProcessHash": "96fd0a624ab02397dd37928939eac4782adc92176c57f8cd479208c36e22948d" } } @@ -2172,15 +2186,15 @@ "666059b00db591c1a56ce4963af6165fb3c9b12689bc7bd2d002ad9f8261acdb": { "60035e65e48fd5fdb3a14661c3ac4811bb8496f2b211e4fe284e3d6b420921c0": { "jp": { - "updatedAt": "2025-12-29T16:46:13.886Z", + "updatedAt": "2026-01-06T14:17:57.054Z", "postProcessHash": "24e936c616bcc481aa91791b5a424e0cccd103e96725619190167991275240bc" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.891Z", + "updatedAt": "2026-01-06T14:17:57.065Z", "postProcessHash": "671813a2f823425f7857bd100c59fc8d9dec72f0a1e93655c78c63ecfd51fd20" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.891Z", + "updatedAt": "2026-01-06T14:17:57.065Z", "postProcessHash": "61a08f43c8c56838dec6a66b3ce67330a8400b2f7f0f67feaac46c520a2cf504" } } @@ -2188,15 +2202,15 @@ "7431d11049418c30c908694305424392c5e608ecfdf0bd5bb5e82ff877dd01f3": { "3c1e299227977efd8ca6ccf93ac2673c11fbfdfe441a0d0784400200278822ac": { "jp": { - "updatedAt": "2025-12-29T16:46:13.757Z", + "updatedAt": "2026-01-06T14:17:57.029Z", "postProcessHash": "f860074eadece8a0f5607c7098565c3d20757a4dfe4c47004f946c59b2a58004" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.760Z", + "updatedAt": "2026-01-06T14:17:57.030Z", "postProcessHash": "ad1fae46f1320142cc7b57cbc6660819b52d09b873350c8ee5b302a2f812fae1" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.755Z", + "updatedAt": "2026-01-06T14:17:57.028Z", "postProcessHash": "5551242ba57397f0238cbbb0a8214d2afb215b7363732b62b562e8c8ba5c451b" } } @@ -2204,15 +2218,15 @@ "7cad50f4cd617547f24613bf26b7d92863268b13a23a167f7afafe1105d9b80d": { "fc4b5c37a2e9cd403b127f9b0e95af107c0815b1c7bb98e1eebae04bc96ad554": { "jp": { - "updatedAt": "2025-12-29T16:46:13.754Z", + "updatedAt": "2026-01-06T14:17:56.906Z", "postProcessHash": "3b2d84b2994f0e8881586477b49df971af42a2312f2dc7dd43f4aed1823a686b" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.694Z", + "updatedAt": "2026-01-06T14:17:56.901Z", "postProcessHash": "55baff9fa41d09a8d92951b2f5740275e0d19de37eb7d2487ea40ef7d3f1c882" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.753Z", + "updatedAt": "2026-01-06T14:17:56.905Z", "postProcessHash": "819bd8a5bfc405a8039cebbf4352ef51f9377a65c02787a374709db39af602b1" } } @@ -2220,15 +2234,15 @@ "8b1e7b5824a25229b63b6cae491572266d76a2f3619bbb37de99f10f9cb281d7": { "b39b1a9501a0d4efe97c7c462447f2f7f762c085e32781115e4e01abed9470bf": { "jp": { - "updatedAt": "2025-12-29T16:46:13.765Z", + "updatedAt": "2026-01-06T14:17:56.918Z", "postProcessHash": "c3fa1e169e46e4b9e09488bf9ad56b86359a945dfba10718ce098c031a4d3bba" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.768Z", + "updatedAt": "2026-01-06T14:17:56.920Z", "postProcessHash": "f67b6bf5423d3540261403b47f2a0c198dd2db8a2daba4052a126b1d21ec0f93" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.765Z", + "updatedAt": "2026-01-06T14:17:56.916Z", "postProcessHash": "9aa180e1301e4a77adf31843f44f6ff7fab1804d67eca7ae5d6fb7a60e1f4799" } } @@ -2250,15 +2264,15 @@ }, "c55b4372f50fd03d751e89bad3bbdbc39bff99d0f6adc87c0b6769c36b0c5e8f": { "zh": { - "updatedAt": "2025-12-29T16:46:13.852Z", + "updatedAt": "2026-01-06T14:17:56.985Z", "postProcessHash": "57c88b7966808a060071fee9b167713da4c0e44152c8503cd7724da2973974c8" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.853Z", + "updatedAt": "2026-01-06T14:17:56.986Z", "postProcessHash": "c4aa57859a9f5de2817989bdbc54d46b72affa99100e47812529553596572298" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.858Z", + "updatedAt": "2026-01-06T14:17:56.994Z", "postProcessHash": "913c60b7740b918f56fc4508458541a5e71d74a16990af5c03a9427bfd1c3137" } } @@ -2266,15 +2280,15 @@ "adb57f6c330a361767cc8e018fdeac391e70be9310b007ddc867750c55383217": { "6bffe63c913aa6f222b1d3f7660678d89871583dfc5b85a5472e73ccd48f0852": { "jp": { - "updatedAt": "2025-12-29T16:46:13.970Z", + "updatedAt": "2026-01-06T14:17:57.174Z", "postProcessHash": "901b6b6881f9ff3a48e1dfc492d04fc6a98b99b46dc2d5f1d40ed10f3ebcec79" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.887Z", + "updatedAt": "2026-01-06T14:17:57.055Z", "postProcessHash": "1915bdf6c4283c0c5799311e8a2d790c3fbeca8e22a5d828825f2997e13f13ce" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.889Z", + "updatedAt": "2026-01-06T14:17:57.060Z", "postProcessHash": "1ba5ec36b27c141d0d9b6b6a51f2fd6ac1cc88d2a2ad8a4cff44ea475f56e424" } } @@ -2282,15 +2296,15 @@ "b0f947d3a4638d92601c813f2511beb5008821e82e066594946d2230ae518888": { "e2d7964de87a21a4f56589f9ef750a5f70e553620f06ce8ed541c52c8e2fd182": { "jp": { - "updatedAt": "2025-12-29T16:46:13.752Z", + "updatedAt": "2026-01-06T14:17:56.904Z", "postProcessHash": "7f9e505dd410f32ce846a0ca452dc4f846b5cb5a9bdb12983d2b8987589affbc" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.756Z", + "updatedAt": "2026-01-06T14:17:56.908Z", "postProcessHash": "3ec810775eb731f3670b9921f0c1b29d81e7bff64dfce5027620ab9d7a4a42f2" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.762Z", + "updatedAt": "2026-01-06T14:17:56.912Z", "postProcessHash": "e8b3988c6d255d839c65dd3d6703675d3042fb244b9fdaf9fe1efd9316be3071" } } @@ -2298,15 +2312,15 @@ "b581e8a0971d1d07fd92c09611201fbc0ec1f2ad10e9a9e9462297b6dbe79f67": { "49ae124d0469e31fa1e3318ed468a02b4e75af99b0ad807441a4e18f29afb644": { "jp": { - "updatedAt": "2025-12-29T16:46:13.751Z", + "updatedAt": "2026-01-06T14:17:56.903Z", "postProcessHash": "b885b782a21fd53e3fd121f5fed4bdb1cccd227b4aa46814c1977053006e2207" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.756Z", + "updatedAt": "2026-01-06T14:17:56.908Z", "postProcessHash": "3b9337910f6e934135a223ccda9f7a366f2351e0ea2b79f52f3a96b5405afcc3" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.692Z", + "updatedAt": "2026-01-06T14:17:56.899Z", "postProcessHash": "d3e4f0a7ae8538b6020cd27f4c69af03c8858ced178dc40a91dd945e80bebbfc" } } @@ -2328,15 +2342,15 @@ }, "2240881a55c7cf25021959b31d28b138fa3518ce13fdaa37c242d4bf3f3b7892": { "jp": { - "updatedAt": "2025-12-29T16:46:13.812Z", + "updatedAt": "2026-01-06T14:17:56.977Z", "postProcessHash": "a2d2ba38194ee6f3e12894a66dd523731b8257478eac5d81a3dc71e4f77189c6" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.813Z", + "updatedAt": "2026-01-06T14:17:56.977Z", "postProcessHash": "3aa8bbbf532651e3691ef66e287482c0e5d8b276a684495a4479180b1e34f71a" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.815Z", + "updatedAt": "2026-01-06T14:17:56.978Z", "postProcessHash": "acac98ed431070ec37cce39b10d276c243f825db83a9411fc36d0494d8636fb3" } } @@ -2358,15 +2372,15 @@ }, "ab2e8ad03fa7e2562b9d127cfb15161ffe19ce38e062338eae8f27f600870d2a": { "jp": { - "updatedAt": "2025-12-29T16:46:13.983Z", + "updatedAt": "2026-01-06T14:17:57.191Z", "postProcessHash": "5f0502746e4230024c86e0d17ed29813d50bcd885d128da58b87de3e2d55a7eb" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.985Z", + "updatedAt": "2026-01-06T14:17:57.195Z", "postProcessHash": "666c820b2efe18112940c81932b8c51c1d737216049ac3d8605b48d0f26b337d" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.986Z", + "updatedAt": "2026-01-06T14:17:57.196Z", "postProcessHash": "cfdb5f4e29b0763ff0b1b2853235a276681b72c1b45021b22dca4c7006b3585a" } } @@ -2374,15 +2388,15 @@ "d84d842f939c18587480808dae2c357d93b19f0503165ffbbb5df5723ed8d18f": { "78c6fc1825dfef395f2920f37ae3b83e7a55e08e381e14e11ade4b0633972ca7": { "jp": { - "updatedAt": "2025-12-29T16:46:13.762Z", + "updatedAt": "2026-01-06T14:17:56.913Z", "postProcessHash": "8f5b076307237de05c86d294a405839a08bfd00c38d41361063fe1e5a1afeb58" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.693Z", + "updatedAt": "2026-01-06T14:17:56.900Z", "postProcessHash": "8304f8302bb20922c073062d269dcb0acf4ed50c8d6e57f87821b87e30800531" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.751Z", + "updatedAt": "2026-01-06T14:17:56.902Z", "postProcessHash": "c3f6a64dcbfef58603a7a2a23e40c5c8cf897992e05615d7d7e7f6a00b384927" } } @@ -2390,15 +2404,15 @@ "e16fa51bab7c52534a6634130d4aa9d5f4eaf5a9199be40465cc25c632091ca6": { "9a45c83991713cae83ff2b9ff52e3fac9bc7cf89dc4ce06aee3062459ba62f83": { "jp": { - "updatedAt": "2025-12-29T16:46:13.887Z", + "updatedAt": "2026-01-06T14:17:57.056Z", "postProcessHash": "4171eae06b1f4fa147b28dac4ef2ccc8f890f5e15c7e7ad69818ea19bcb03772" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.883Z", + "updatedAt": "2026-01-06T14:17:57.046Z", "postProcessHash": "ab858f1fa1e875663cc264595b2a77bcf7c1f7d69173d25b382bedefae1fd423" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.884Z", + "updatedAt": "2026-01-06T14:17:57.050Z", "postProcessHash": "3edc9571c17b0ed268d1fa925e5646d9d3084259c672a71304844c5ae1ea70dd" } } @@ -2406,15 +2420,15 @@ "00385c907824ee916e1d2ab90ec1343952049a30fbb273cd705e54e19e5e54dd": { "a1e228059158c6496d116286e96a0ffb78b193d02679d41dffd889c4ae3f4ae5": { "jp": { - "updatedAt": "2025-12-29T16:46:13.977Z", + "updatedAt": "2026-01-06T14:17:57.184Z", "postProcessHash": "547d41151a1591f7eb4ceb1bd90a8af3ead21ce0a36d9fcc8fdda6c94538637a" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.975Z", + "updatedAt": "2026-01-06T14:17:57.181Z", "postProcessHash": "270b3f5b7064698157e218151bf01aa29bc504e4f46446af848a0570211f1b32" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.977Z", + "updatedAt": "2026-01-06T14:17:57.185Z", "postProcessHash": "1a3e57ca469cabc46f638c0071b6db392764bf98c1f3c089fe4b43a6f1ac63b6" } } @@ -2422,15 +2436,15 @@ "2026a346cf904938db3b958bccd4a5998e0f9c3e806206b6a7de6c5a43e41346": { "99e01b88c76b26cea06cf6daf392581a33f358c37c5d4b5081a274912cfb4fdd": { "jp": { - "updatedAt": "2025-12-29T16:46:13.878Z", + "updatedAt": "2026-01-06T14:17:57.040Z", "postProcessHash": "bd5362849b253e6d73d07590fbdf8d5b130c183e47b83cc12c529186979a870b" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.881Z", + "updatedAt": "2026-01-06T14:17:57.044Z", "postProcessHash": "af84fa29c0c52dc0230331f8d3e00a03250259a02126f3f7640e0625ed0cc228" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.873Z", + "updatedAt": "2026-01-06T14:17:57.035Z", "postProcessHash": "be7ad39e811b3c0e866bc6c0e8a479863e1742fabfb09317b3b524627e4eadaf" } } @@ -2438,15 +2452,15 @@ "2283119a59e486c7e332715c4be76c78e6606cc8fef66284fa0397e91f6e9842": { "89e926971a9cb3deeda49f638cbf8679ad56a009190bf99db1a5f7d3b55c106e": { "jp": { - "updatedAt": "2025-12-29T16:46:13.870Z", + "updatedAt": "2026-01-06T14:17:57.032Z", "postProcessHash": "2305ab9ffa2742865e60129bbd9d2e696a284cd322aafbfbf56759f9ec12c7c7" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.879Z", + "updatedAt": "2026-01-06T14:17:57.043Z", "postProcessHash": "a276804ad226b3742a7909a7ae0832b1b286a6e75198bc7c05c23f4389923988" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.871Z", + "updatedAt": "2026-01-06T14:17:57.033Z", "postProcessHash": "368cba54b9f5dc70d3d26f0cfc08794cfccd517a8e07117e45f7b71fbc02fe0e" } } @@ -2468,15 +2482,15 @@ }, "fea4560862a8298030d901772a0dd37ee699a04faef2e1d1b65134393a08054d": { "ru": { - "updatedAt": "2025-12-29T16:46:13.984Z", + "updatedAt": "2026-01-06T14:17:57.192Z", "postProcessHash": "ad884a754ee8632c08a8f5ac624552813f77b16834cebb0ccdc58a96d46149e2" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.987Z", + "updatedAt": "2026-01-06T14:17:57.197Z", "postProcessHash": "89085310949dc10379416fc6b965da0cd05bd669f86887e4e0ea09f763878a61" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.987Z", + "updatedAt": "2026-01-06T14:17:57.198Z", "postProcessHash": "fe30d11faab6f858072513228ee887e3810f2662fe8d46eb026aba30a88cf095" } } @@ -2484,15 +2498,15 @@ "51a4e1d93b002b635941f3a0b969d77f5e76ffcf3ab01cc6c0302553a48f2dea": { "e3cf07cdc5c67cae3f9a9be2ea541fbdda42c2a33f509a3d16926cfb4c4fa296": { "jp": { - "updatedAt": "2025-12-29T16:46:13.877Z", + "updatedAt": "2026-01-06T14:17:57.039Z", "postProcessHash": "d26fbf312f2735cfb47bedcfb3f27df874ec29e91010becf5be9510c38d83eff" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.869Z", + "updatedAt": "2026-01-06T14:17:57.032Z", "postProcessHash": "871a7e2c8459ec641ba28eb30007b2dc2a0f62a19923e14c758776372b4b0969" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.872Z", + "updatedAt": "2026-01-06T14:17:57.035Z", "postProcessHash": "709a2f6be3f64d5056ea3473ac104c9305926bf3aa3db4cd8051509d00b6192c" } } @@ -2500,15 +2514,15 @@ "51ffd052b5e18acec3f8c2fc6fc9f2de6d509c5f9b55c4e653df085e2f4cce96": { "e67a2d890c9d442e3c7a7f02a0d5c6afcdb1928ff906f575bbf304c7f7799b2f": { "jp": { - "updatedAt": "2025-12-29T16:46:13.971Z", + "updatedAt": "2026-01-06T14:17:57.175Z", "postProcessHash": "8f1ecf0d944bf9d07743cb1d8d479ac30bc7e2a791bfd93f8860c8bd40732c0f" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.888Z", + "updatedAt": "2026-01-06T14:17:57.059Z", "postProcessHash": "d1f8724142e72a23ea4e4715f5154e5596cc6cd575c284a823bc570ab2ab3239" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.974Z", + "updatedAt": "2026-01-06T14:17:57.180Z", "postProcessHash": "d30a889ce8b532a5ee0383b41da491173bd96eed5488ab67e69f49ba76dc382d" } } @@ -2516,15 +2530,15 @@ "58660987b73352ad4963dda3033196dbfd0c791f7ea7184da7b8ed72a70d23c7": { "e6384b2ee9b82af275d9a7823132ca573a701a7955a267deaca2eba7848c0139": { "jp": { - "updatedAt": "2025-12-29T16:46:13.949Z", + "updatedAt": "2026-01-06T14:17:57.140Z", "postProcessHash": "a7cd25be08aa627b4062f1ce1e79231e4db75a094af3268dc09056bb5d63c63e" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.967Z", + "updatedAt": "2026-01-06T14:17:57.166Z", "postProcessHash": "29393b1171411bd9317668f35baf95645c202a6cd9768ea17dfaf9d66ef4184e" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.966Z", + "updatedAt": "2026-01-06T14:17:57.063Z", "postProcessHash": "a66d81f87703fc4debe736be882ece3ab765d4fa738617776d1117656b7a7e55" } } @@ -2532,15 +2546,15 @@ "5ae00fffd365a54fbda628a19a927576375cc455c591c16a26e7ed16b919a10f": { "2c1fe0f08e90b42f0362e7d55eb555bccf6bc9522b4eee5aa410eecb5a6ff63a": { "jp": { - "updatedAt": "2025-12-29T16:46:13.953Z", + "updatedAt": "2026-01-06T14:17:57.145Z", "postProcessHash": "633fcdd4fde05b420f7dfc57caa93f261aadd1787c8b7f3f26f51dae135a9c39" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.957Z", + "updatedAt": "2026-01-06T14:17:57.149Z", "postProcessHash": "fc459a50e4b74e030545b770d030908136d291e201455e84c34cf18eb32ad9c1" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.950Z", + "updatedAt": "2026-01-06T14:17:57.141Z", "postProcessHash": "477cdb30b9936cd792a1344be6f3e422ebdfe9384c644ed5ed1d5c4fd8a224cc" } } @@ -2548,15 +2562,15 @@ "62a28a91cc967d2076cb4a8ae68eb32bb7dc0a91eac1089fc166676f54731dc3": { "4fb613d98fb6ff221944b46d4a102b8b41af0362055b5e31a68dcbedb5e8be6b": { "jp": { - "updatedAt": "2025-12-29T16:46:13.876Z", + "updatedAt": "2026-01-06T14:17:57.038Z", "postProcessHash": "e707a8ccbdc57b567febde1d27f63f094ff8d99cbe93fc9208f50f21fed5e94c" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.871Z", + "updatedAt": "2026-01-06T14:17:57.034Z", "postProcessHash": "a5ac70c1db3977c93fcba2079aa3b426a804b1e1f39dbb142e52547b66ea2afe" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.886Z", + "updatedAt": "2026-01-06T14:17:57.053Z", "postProcessHash": "add865fc6bcf8e0e67633efde7356433b66407f5cdab059cd27c50bcee069acc" } } @@ -2564,15 +2578,15 @@ "62cac186a0d5d595a384019a8da0f2587e8ec388e9fa723441881ad21746e53e": { "5315f9a99c66f3565ee182e7d8faf811aa2e4a227524f9f573eb826dc8b5c51e": { "jp": { - "updatedAt": "2025-12-29T16:46:13.880Z", + "updatedAt": "2026-01-06T14:17:57.043Z", "postProcessHash": "411dcb4bc78df1fbed5826d56caf7c17d1f2397c2feda63e7828d023e3067584" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.890Z", + "updatedAt": "2026-01-06T14:17:57.062Z", "postProcessHash": "0971530d053b7a3e196c72b59f89566b56006cbe77aab704a4c32da2f16a0eeb" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.878Z", + "updatedAt": "2026-01-06T14:17:57.042Z", "postProcessHash": "507663639778d084466cd630e12c38688c1d07d63d45fc8027b100e44286bfc4" } } @@ -2580,15 +2594,15 @@ "64c029683442a95f0d9971d2c2a2f011b21167a916369b96ea20390f74a96eb2": { "27ea13a9d6a87686196565d791a629223843e1c311b9bff9edf44c593e511703": { "jp": { - "updatedAt": "2025-12-29T16:46:13.960Z", + "updatedAt": "2026-01-06T14:17:57.155Z", "postProcessHash": "2079eec6b59a035e9ed2f50214c2ab1ba1e4ad7b94380f5c5f3d6c8a97b274f2" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.958Z", + "updatedAt": "2026-01-06T14:17:57.150Z", "postProcessHash": "2ecd259ca8443633b8baf4672949e9941ab7b8972b927b12129cfcd792ed96d8" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.946Z", + "updatedAt": "2026-01-06T14:17:57.137Z", "postProcessHash": "8804aacdbffb9890fed989c739818fc86ca6f4b461768b426051fb177dead9e1" } } @@ -2610,15 +2624,15 @@ }, "d15765d685f881d9c6b31d641b2a3a161a0e2d97c0825e10b8bce3444045d030": { "jp": { - "updatedAt": "2025-12-29T16:46:13.979Z", + "updatedAt": "2026-01-06T14:17:57.187Z", "postProcessHash": "ded0b98da7f30b3f53e8aa30b5071e09bec8c647526067f72d9e35dbbe90d09a" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.982Z", + "updatedAt": "2026-01-06T14:17:57.190Z", "postProcessHash": "f67cd25bea5193c20fd12d4653c303270c5da41e315fdb82a93499b6332e39cb" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.983Z", + "updatedAt": "2026-01-06T14:17:57.191Z", "postProcessHash": "c25cf58300fae15357b9024157977700e7a566daa050dfdd4a132dece841559d" } } @@ -2626,15 +2640,15 @@ "8aa6821981ce9839d00fc14d757392848b9750acc4bf8539c334cf2d5871f908": { "a27ad75b9e2993bcfc4ac7d0eda9c06a190e908e4e85725e849767c67999764d": { "jp": { - "updatedAt": "2025-12-29T16:46:13.889Z", + "updatedAt": "2026-01-06T14:17:57.061Z", "postProcessHash": "1bb565ed7765549b8d6d69ee766a259e97ee6dfb8f00d9b92d1ae0a97f31cc3b" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.968Z", + "updatedAt": "2026-01-06T14:17:57.168Z", "postProcessHash": "c03a0b5abb414465d03497c69a2b0238bf8d8f39942c1376dee7837682fe162a" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.885Z", + "updatedAt": "2026-01-06T14:17:57.050Z", "postProcessHash": "56745836215b0511cf4b407d80139cf53eefb874dc802aa5bfb6689184f565bc" } } @@ -2642,15 +2656,15 @@ "8f6142d5329a13cb865837bf5f90f1676c0ed34132ae0b7413c66ad9fee106c2": { "b5efc55478dd9c26c80dffe9ed741b395f4d2368d8eee6c9c3149cd4fc4eebc1": { "jp": { - "updatedAt": "2025-12-29T16:46:13.967Z", + "updatedAt": "2026-01-06T14:17:57.063Z", "postProcessHash": "91675012a42a61384dcc9e53117fa61e6a9d9cab0d67dd1204d8d38aeb6c097a" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.954Z", + "updatedAt": "2026-01-06T14:17:57.052Z", "postProcessHash": "79ee2455f96d14367e4b175db89f42ca1bdc12242115b104d31fbd9a6679a3f9" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.970Z", + "updatedAt": "2026-01-06T14:17:57.171Z", "postProcessHash": "220b572e1caf3bab32382617b48d948990c1a0a3ddb27bbc1f12a496fa1f2c3d" } } @@ -2687,15 +2701,15 @@ "b353f551e48bc3b4c88a7db0d857fefd25c028f8d05216430afdb76e3bd832b4": { "6d6603c2d993968e3e2fb68963df1f14bb64c291c769f84522294cc56cd80d73": { "jp": { - "updatedAt": "2025-12-29T16:46:13.875Z", + "updatedAt": "2026-01-06T14:17:57.037Z", "postProcessHash": "0bb9eec0a41e8870f671b439e9563795a77e4ce5a3906e7b00d5c9fe30e27bfd" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.877Z", + "updatedAt": "2026-01-06T14:17:57.038Z", "postProcessHash": "6eb66fdefe85821c25b001b7493b87185ea22f7fade828668e4a36c0c1415b14" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.885Z", + "updatedAt": "2026-01-06T14:17:57.052Z", "postProcessHash": "d7fbf5e47e20ca0de009e9ada5a0b11a364db3196639dd1dc4b0a089ab819092" } } @@ -2703,15 +2717,15 @@ "ba6c4ca640fe7b3f714cda5b21aa83f56d6987a93c06b0f52403fcf16442d4a3": { "73a0749a7a37be27b2b679011c93ceeaf5407fff6130ef17dcbbbc612aee0d5f": { "jp": { - "updatedAt": "2025-12-29T16:46:13.959Z", + "updatedAt": "2026-01-06T14:17:57.150Z", "postProcessHash": "dea2846ba2c624e40b99fad47e012d09cc9819ee88c5fe6956e939d03d169ced" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.948Z", + "updatedAt": "2026-01-06T14:17:57.139Z", "postProcessHash": "0c13ebd3581a1e6fb5727cbbab243128bf5f7dd5edf807751d54098119570a6c" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.957Z", + "updatedAt": "2026-01-06T14:17:57.149Z", "postProcessHash": "9218979a3e5130ecdb9a29cdd3699ecb033f4197ddc4411ca26fe50584c45020" } } @@ -2719,15 +2733,15 @@ "c85686859f3f25046db0082f882182fadaaa53c9674e2b8421280d74f206eb40": { "add68d9d7c2384a1f4236b30131c64724392237b73f94a4430f8fd215046f46f": { "jp": { - "updatedAt": "2025-12-29T16:46:13.950Z", + "updatedAt": "2026-01-06T14:17:57.141Z", "postProcessHash": "164ff547e422691ad7cadd85b063b08e83f7fd6557d6e2a9390f429fee192ce8" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.964Z", + "updatedAt": "2026-01-06T14:17:57.164Z", "postProcessHash": "509955a867f231ff7dda09eeb249a0f75bfee0cd000a4fdd2af4223d3ab45780" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.962Z", + "updatedAt": "2026-01-06T14:17:57.157Z", "postProcessHash": "50cca8fe9c0272f6b13161923bceaf40c2d251ee8dce94ed1718ae289961434c" } } @@ -2735,15 +2749,15 @@ "e58beba1ecf7893bfe1389d8eb8c6388801ea9f76c74eaadcbaa400a86832dc0": { "80e13888b6bfca7d175470bafcc2e30a1e88dcbbdaa15cac209fa66c4f44bddb": { "jp": { - "updatedAt": "2025-12-29T16:46:13.953Z", + "updatedAt": "2026-01-06T14:17:57.144Z", "postProcessHash": "667bd03bf10b7329b7e8f207e0ab3e046b0e24859249942dc848ff0036f830c2" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.951Z", + "updatedAt": "2026-01-06T14:17:57.142Z", "postProcessHash": "30708f903b542c6bd46120de68b8a79baadd723bcc97617eaf9b640ff3e883ba" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.956Z", + "updatedAt": "2026-01-06T14:17:57.147Z", "postProcessHash": "563e29c2c65ac9956d2a2a6fb2a99db57f3e6e5e6f1f0d0ce54b3aab662e05de" } } @@ -2751,15 +2765,15 @@ "f437d5d62e24e71773573d12295d6070b2013b4f10635e752fc5e0c0c6f3d5b6": { "69df1b4df06653852e7ced5d6197d910291dedd2d1b27599cd5608fd1b4a5214": { "jp": { - "updatedAt": "2025-12-29T16:46:13.868Z", + "updatedAt": "2026-01-06T14:17:57.031Z", "postProcessHash": "872602a98938a05ac42d8a6d09fa654af66cebf04e415f18790f3196a4fe0905" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.874Z", + "updatedAt": "2026-01-06T14:17:57.036Z", "postProcessHash": "191ea904ec76a8f2b9af4e7d06620277328ae21307fa13414cab7696f241936c" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.882Z", + "updatedAt": "2026-01-06T14:17:57.045Z", "postProcessHash": "54144fccf84826433452738228f0cb80264bb98d3fe9ec5525dc7149e91b3582" } } @@ -2781,15 +2795,15 @@ }, "35619eb0e561b8702c16b8c15445f21f2eeb04a47463d91dd19229ff3f7c53ca": { "ru": { - "updatedAt": "2025-12-29T16:46:14.040Z", + "updatedAt": "2026-01-06T14:17:57.195Z", "postProcessHash": "30cc5198c96b362ad63974bc85fe59ceb1042c7f8b5428e22c2476d7436185f9" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.047Z", + "updatedAt": "2026-01-06T14:17:57.287Z", "postProcessHash": "a866f6deeb1863bc3bc185124ce8b0bbe3be9040e5aaa5fd46a8229e3a8b55bd" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.049Z", + "updatedAt": "2026-01-06T14:17:57.197Z", "postProcessHash": "92f17326c1c4c7377634c91f8678d43ebc15a214b1cebc63b28891ac374e655b" } } @@ -2797,15 +2811,15 @@ "0b7dab5f7a039f1859e3a70738566e228a8859b0025e472a76cd8fa2c67c6c28": { "1d8df38a053cb69ce2a27d4691e5cdfd13a6b160e9a02fa3f683e748d317ea48": { "jp": { - "updatedAt": "2025-12-29T16:46:13.960Z", + "updatedAt": "2026-01-06T14:17:57.156Z", "postProcessHash": "810412dac21458b9d38223c29768fb77fd64c9df38bd44e496dd6f07c9151ace" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.965Z", + "updatedAt": "2026-01-06T14:17:57.165Z", "postProcessHash": "09e410d9887c6d603f357d7e640dcd17c4664fc7a850f5c6a9c828beed149975" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.942Z", + "updatedAt": "2026-01-06T14:17:57.132Z", "postProcessHash": "882c7c8301044b3566bdde00ba4a75df6e282b8b4456c19a3170f3a6ff184296" } } @@ -2827,15 +2841,15 @@ }, "378ba0237d51fd2130c6af97966e8e9b2b20b7dafea88127b9937c170939a4b4": { "zh": { - "updatedAt": "2025-12-29T16:46:13.989Z", + "updatedAt": "2026-01-06T14:17:57.200Z", "postProcessHash": "6183623c6ebd961efdd001b1f1af7e034bdb7e014ce737169f15e3401758c871" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.989Z", + "updatedAt": "2026-01-06T14:17:57.200Z", "postProcessHash": "45e03eb4f39c401ef8587e90e0193336adccbb0896932fc08f7c56966fc4e3a7" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.990Z", + "updatedAt": "2026-01-06T14:17:57.201Z", "postProcessHash": "d24104ee07766c48f2845fcbd18fb8f8051ff48c4265e8001ce0c8dd3b224c94" } } @@ -2843,15 +2857,15 @@ "36663ad730f89d83d4a65b5956ac48db373b0bcfbd0f2bb4062dc5f3bcaf2839": { "8841bb2bfdc1346e286a40346e8503829d958b3bac30b715d775b50f451b49ee": { "jp": { - "updatedAt": "2025-12-29T16:46:13.937Z", + "updatedAt": "2026-01-06T14:17:57.124Z", "postProcessHash": "0c3b878a944fb93fed63e73fbf9d4e2c4e6fbba0bf753b3fdf3a926a21df08b3" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.867Z", + "updatedAt": "2026-01-06T14:17:57.122Z", "postProcessHash": "06f1fdd0e3572ff96685595d51eba9b505aea5bbba25d08edcd739528445bb63" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.936Z", + "updatedAt": "2026-01-06T14:17:57.123Z", "postProcessHash": "e42b0a626657b8c16ebe15375665a2fe8486c282e7b183e3eb4b77aec915e8ec" } } @@ -2859,15 +2873,15 @@ "374986e8dd5ccd248058ea18a5c0798d535a4a7501a33eff5fd9b80a782b7c15": { "7b0998df0969746e6c19524cb961e7ff6d7e59afe83c51976450a953fc8b3ffa": { "jp": { - "updatedAt": "2025-12-29T16:46:13.926Z", + "updatedAt": "2026-01-06T14:17:57.025Z", "postProcessHash": "2bd00c50ce39d249f39992c4291f6d53f217188545a904543c35b2e60a6e0f55" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.866Z", + "updatedAt": "2026-01-06T14:17:57.119Z", "postProcessHash": "bd9c1651d0ac8da4771fe3eef2365a2edb53217a15ae37cfae2a2daf6e101a92" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.866Z", + "updatedAt": "2026-01-06T14:17:57.119Z", "postProcessHash": "e77f797cd9f6716424de500c5262866713ccbf2a174b138a2db0c12b00bcface" } } @@ -2875,15 +2889,15 @@ "3cb23211e097156c0f1a78ad405746a39a30a7fca3e113e221a2bbde60fc5c66": { "30bc5b33601dc47abebcade817fd66b12ac5351751c6ed875945668d80c959b2": { "jp": { - "updatedAt": "2025-12-29T16:46:13.947Z", + "updatedAt": "2026-01-06T14:17:57.138Z", "postProcessHash": "10816286ea7439ade5c18a3526bffdc390f8e862eb089047f38ea551e27c0256" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.956Z", + "updatedAt": "2026-01-06T14:17:57.148Z", "postProcessHash": "7bbff8a0b20fedc4f640fc2fa13eaa27beec361073893f03d4bd0fd38a843b23" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.944Z", + "updatedAt": "2026-01-06T14:17:57.134Z", "postProcessHash": "ef838997f87fec459a04124199c4c1d5fb05f6813356bc4c2e0c1c75ba49b5ef" } } @@ -2905,15 +2919,15 @@ }, "77c3c6ae2392c891d7475315a37b80deca9409f0f9f7ecd8eea87998344810eb": { "zh": { - "updatedAt": "2025-12-29T16:46:14.037Z", + "updatedAt": "2026-01-06T14:17:57.282Z", "postProcessHash": "855b8068bd639bd7b5ef732c03ee942c1dec677abe9e2991cbf3568cd1bf2bc8" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.037Z", + "updatedAt": "2026-01-06T14:17:57.283Z", "postProcessHash": "2861176a70d6a6a376b6eb058da75cc536bdff00b499833f320b5f324e9d66c8" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.038Z", + "updatedAt": "2026-01-06T14:17:57.283Z", "postProcessHash": "81251ac3911bfeebf3412742db77fcd6884e2fba4a38767ad19eb9deb05866ca" } } @@ -2935,15 +2949,15 @@ }, "6f27471fe2d0cc61ad43ac921f39c4332cee757c28a51e5f67616b2f3a93506e": { "zh": { - "updatedAt": "2025-12-29T16:46:14.038Z", + "updatedAt": "2026-01-06T14:17:57.284Z", "postProcessHash": "d5f8f80eeb0f939202417f63d2c7b15b84f9954048a274d5f596f0ddb8a43c08" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.039Z", + "updatedAt": "2026-01-06T14:17:57.285Z", "postProcessHash": "b86ffef6ec6f633641322f216db5bcc2f93b32385e8fefcb5c54ff294c515447" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.047Z", + "updatedAt": "2026-01-06T14:17:57.288Z", "postProcessHash": "a54adaad0420a66ca27cc225987cfa637e9c4a8594eeb11dcb9e661a418b9cc4" } } @@ -2951,15 +2965,15 @@ "730dcd6bd51a2d8afa76fc973bedd9b4d7162629dcf690b192df4cac1fc39566": { "ed51d6c3026594d0ef90de441bf36dff57ad4a32048a288a0186952eb2f80596": { "jp": { - "updatedAt": "2025-12-29T16:46:14.004Z", + "updatedAt": "2026-01-06T14:17:57.226Z", "postProcessHash": "5fb6ba7f3883edcd6e80d30e5d88e221524047390f4fcf57d1b4fe45ec3357dc" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.020Z", + "updatedAt": "2026-01-06T14:17:57.252Z", "postProcessHash": "6f678e393b47fd6972edab7a65e15740c905b117282aaf8243acc9309fd8fa15" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.926Z", + "updatedAt": "2026-01-06T14:17:57.110Z", "postProcessHash": "aeb8394be71ed1061e83064d537f294b81d7edbf3bf22f408d1b12b885bacd65" } } @@ -2967,15 +2981,15 @@ "8c4b511502097e5142007ba6bf89d86ef9d582ca174f395180742175d5bd4f05": { "f3274830262e5f01f74d8474761446b9f8a9c83ae245d4cee233a6cd17284b39": { "jp": { - "updatedAt": "2025-12-29T16:46:13.959Z", + "updatedAt": "2026-01-06T14:17:57.153Z", "postProcessHash": "3e61f38fea823c880d6f25e1aeecdf7bf1da929769f33cfa9e3217ebd0e47dc6" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.946Z", + "updatedAt": "2026-01-06T14:17:57.137Z", "postProcessHash": "6c834f913801238a4ed0687b7c925450ed2e0b330f9af053aa6c32f7a5b06c8b" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.955Z", + "updatedAt": "2026-01-06T14:17:57.147Z", "postProcessHash": "a2112bb60b8c60d1560998336e39b2b221f47cfe7f667b8650df94d149dc3608" } } @@ -2983,15 +2997,15 @@ "8eeb2d38e63485d3f399d528cce00b3fa0310df2d513c8b5aed0077ee217c69c": { "87d6c2b8c54e666cd98b21f88f6b978a41ee92fbde390f5a595aae7d2c59164f": { "jp": { - "updatedAt": "2025-12-29T16:46:14.029Z", + "updatedAt": "2026-01-06T14:17:57.272Z", "postProcessHash": "9b50a119ae36cbec5ae0bd44d8ed43396a0c663abd7b4c63fd1b0f1bfc618c11" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.030Z", + "updatedAt": "2026-01-06T14:17:57.273Z", "postProcessHash": "638300c10fb7bb0bfc1e23d13db8c79793bc22d06712afd94a11afd240300ae4" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.927Z", + "updatedAt": "2026-01-06T14:17:57.111Z", "postProcessHash": "aa539caf9c592ffd6ad3d27244ea6598ef1b858b1b5913498a92e8c84dc94f74" } } @@ -3041,15 +3055,15 @@ }, "a7a3067fa7ff2f2fd30df8fb50eba91a47f9685d219faf7eccef8406af27bd0f": { "zh": { - "updatedAt": "2025-12-29T16:46:14.033Z", + "updatedAt": "2026-01-06T14:17:57.278Z", "postProcessHash": "b732cf54272bd0e56103fd5b8125e6636bab3a2cf4ba826a701c96da69328d50" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.034Z", + "updatedAt": "2026-01-06T14:17:57.278Z", "postProcessHash": "6d25074c706637d5a43b8ce9278df6884ba0d7f9441e979080eeb79df0abd420" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.034Z", + "updatedAt": "2026-01-06T14:17:57.280Z", "postProcessHash": "1b43a2b46409efe945ca9fdff116b253ffb6eff5ada7ee7012c14f7e1f953eb6" } } @@ -3057,15 +3071,15 @@ "94747a3cb7498dd41f7f7aaed2f670f003087b3543cf7752be3b39b62c021927": { "f7bca2db0af5de7e2c67ebc1c65c226c309288e7f073d34318c2747b6d1e9327": { "jp": { - "updatedAt": "2025-12-29T16:46:13.938Z", + "updatedAt": "2026-01-06T14:17:57.125Z", "postProcessHash": "303f063c889027de70b5be2e04aa27b1d58e67dbeeb65152fc3a4cbc92f0ef6e" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.941Z", + "updatedAt": "2026-01-06T14:17:57.131Z", "postProcessHash": "a0ed8ed6ca3f93d905ebb6e605f938f1b831bfa26344bb00cd76939e641f8e15" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.941Z", + "updatedAt": "2026-01-06T14:17:57.130Z", "postProcessHash": "9b9052479db603ccd58855fbfa676e70b60c36a04e17aa0a91896a1c86de0341" } } @@ -3073,15 +3087,15 @@ "9be36d6e2bdbfee1f50c6de39175a6e538f2d986429211ef53b12ab0e0031ef0": { "1dee3abbec10bfa0b3995067899a721e47f20ee051715db74e0ac726fa434d54": { "jp": { - "updatedAt": "2025-12-29T16:46:13.865Z", + "updatedAt": "2026-01-06T14:17:57.118Z", "postProcessHash": "ad922c4821c8a7d91ca0aa0bcbe2effc3a5150297c3095fc70c8ced6448fd6a7" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.969Z", + "updatedAt": "2026-01-06T14:17:57.170Z", "postProcessHash": "55e35c86a84eeb5ec620c5995fadda557662f06240dce5d68f8299663cf207fb" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.976Z", + "updatedAt": "2026-01-06T14:17:57.183Z", "postProcessHash": "5fe54738c1df7dc17a400875b05a5686202448ea249927a95bcae62aef324b0a" } } @@ -3089,15 +3103,15 @@ "ba0db243d349404c81abcb5ac1b3df54c29742957ec4ab33b24830ddab68f7a2": { "1f879e7772ed8e095b07f85578bd401df3a64cd4e5498296092756cccd875121": { "jp": { - "updatedAt": "2025-12-29T16:46:13.951Z", + "updatedAt": "2026-01-06T14:17:57.143Z", "postProcessHash": "f9afae0926a14c77b3928769b0c3c8c03774da75c824aea4256ecf7608468f64" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.939Z", + "updatedAt": "2026-01-06T14:17:57.128Z", "postProcessHash": "26705e56e63a25acfc85bf50b4861ef27a61e47fc75c98ce0b81d96d9ffbeafc" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.943Z", + "updatedAt": "2026-01-06T14:17:57.133Z", "postProcessHash": "9b271e677db8a214cf45ad39fb0b08a2ad10d221eea598f3a8acdddf4e38f21c" } } @@ -3105,15 +3119,15 @@ "cb8f8c1219ce7a92277d5329ae659c90b78edb06139fda7cb67e9143f6a4f1a8": { "708faeaebbf5c4dabd6c9a9eb715cafd5178cbb6ceacc376b982a574ba6496b0": { "jp": { - "updatedAt": "2025-12-29T16:46:13.864Z", + "updatedAt": "2026-01-06T14:17:57.025Z", "postProcessHash": "98d606493baa4f0810cc5013d19c5bfabadf8c2e8e618d3eb9ce4afd2f9a22eb" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.864Z", + "updatedAt": "2026-01-06T14:17:57.027Z", "postProcessHash": "6a1915d2f4e2a7a3e6fc21fd9a5e4570a9ee769604cdeb01b6266d2537fe608a" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.937Z", + "updatedAt": "2026-01-06T14:17:57.125Z", "postProcessHash": "8a9fd17dc0c4d50254cd9b02dde416aacef804448349c3c573f3af3350fd6f25" } } @@ -3121,15 +3135,15 @@ "cf42c21f80f60055d0087c0e795d8976b1d91223e0fe30f342746b23878b6c6d": { "6d3f845905f3f2b2a1be610957281c22628e8585866ee195f1e005cecbd69e88": { "jp": { - "updatedAt": "2025-12-29T16:46:13.963Z", + "updatedAt": "2026-01-06T14:17:57.158Z", "postProcessHash": "f7d25aa2f57de1b7e84f637a05fe53266e2ce7545ed5dc5bd4fb6f70fc140709" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.978Z", + "updatedAt": "2026-01-06T14:17:57.185Z", "postProcessHash": "ff8c59b8c9260147d422ff8f4a17a1aa8e6d403af10a0afe1dd71699f9f898e8" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.966Z", + "updatedAt": "2026-01-06T14:17:57.165Z", "postProcessHash": "ce6adb9ac2bc5b92b02c5a9e468e7d6aa70efdbb1443b87d4af6f1ac47e39eb9" } } @@ -3137,15 +3151,15 @@ "d0e7cc516637ef8ff263a061c7c16bafdf014cfae7ce60448c7e0fcce8c6dfd7": { "e57a30777e558c8d76cfdd0c7355a7d8d9e150e93787b8eaedcd4f95150f489f": { "jp": { - "updatedAt": "2025-12-29T16:46:14.018Z", + "updatedAt": "2026-01-06T14:17:57.248Z", "postProcessHash": "88613d2fecfc9fdedfde36b7bd7a80c5db8d5a235e24d0809d74c91eb3087c71" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.927Z", + "updatedAt": "2026-01-06T14:17:57.111Z", "postProcessHash": "95b3bb841d07fb0aa712851c4a28bcd5045dc9fe7a0388bbeffe4a876ac547fa" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.935Z", + "updatedAt": "2026-01-06T14:17:57.120Z", "postProcessHash": "a7a1fcb6a4c71625bbbfeac8692166d9be5eac005d1b161d8f7788f133ac7467" } } @@ -3153,15 +3167,15 @@ "dc560181da04dee98b254f616102cfdbf1969c4c794080bd3b5dd88e33f63287": { "f7b3da6309249ba57146453a20fb02f1da444cc9f6b9ff15796e49d19986d9d8": { "jp": { - "updatedAt": "2025-12-29T16:46:13.963Z", + "updatedAt": "2026-01-06T14:17:57.161Z", "postProcessHash": "57874468a356a17154ae3a1cdff1f258342726829f17d93f4115a2e768a8acfa" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.961Z", + "updatedAt": "2026-01-06T14:17:57.156Z", "postProcessHash": "4cddbfc176626347a33dbc601dc3cf3078a3bcace8a261aba3e7010faefd5c54" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.945Z", + "updatedAt": "2026-01-06T14:17:57.136Z", "postProcessHash": "698e440a02eabe71c9025f0c08ceede4dfe4b563db67bb40ebb6a3b27d02f693" } } @@ -3169,15 +3183,15 @@ "e390b76711ccf2a7eb5d962d037354b40ec5f4bd6b5e88c7a59d4fe98d2af88f": { "959a1807df034b8088bb146f4b89e2d5ea2dea86233fa18c9a28c35bbea95719": { "jp": { - "updatedAt": "2025-12-29T16:46:13.954Z", + "updatedAt": "2026-01-06T14:17:57.146Z", "postProcessHash": "83b14739e372a1f5e69b9586fd05f2db93af74558139d4b2cd37a470f71f5095" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.968Z", + "updatedAt": "2026-01-06T14:17:57.169Z", "postProcessHash": "9ea5def1aea532079d8ed3b161e46753b703127d864999e81328e6c7d67fb535" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.972Z", + "updatedAt": "2026-01-06T14:17:57.176Z", "postProcessHash": "2e24547950317e8adfb5e01d8eb1d36e5b428c665bae01d09e41abe19bdfaa36" } } @@ -3185,15 +3199,15 @@ "f362b87c61313b355b28fda5f77765651cb599066809f44030b3c1010865fa5c": { "498198cf31ab4d64e31b4a2d37da8c4597bed364756e0feb2aad51f2859ac1fb": { "jp": { - "updatedAt": "2025-12-29T16:46:13.952Z", + "updatedAt": "2026-01-06T14:17:57.144Z", "postProcessHash": "33d5a00e241c526b0a1e1309d496ea54f083f35b002f9d28ab3b85f2327aea58" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.941Z", + "updatedAt": "2026-01-06T14:17:57.129Z", "postProcessHash": "d0adaab362b9530944d514a397bdac0ca0638ba7032eecbd9dac6d0bdb71fa65" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.938Z", + "updatedAt": "2026-01-06T14:17:57.126Z", "postProcessHash": "0eb06e1385a90f669877f0239605b43cdefc42579e0eb2c2817c3e19fd6d9baf" } } @@ -3201,15 +3215,15 @@ "f5a9bb73dfebbd60d3ebe96194e16c204bbf24a1a4ad7b46bb262a754dac54b2": { "e78c91e1856bb6bb61d73c20e01d2f69ad12b8495c3f0d7fef84e1558681ea40": { "jp": { - "updatedAt": "2025-12-29T16:46:13.973Z", + "updatedAt": "2026-01-06T14:17:57.178Z", "postProcessHash": "c91a266bfd56c79bc495b8c23cac9595e869220b7e7db0fa18df5aec09c7ca95" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.974Z", + "updatedAt": "2026-01-06T14:17:57.178Z", "postProcessHash": "4d114c2338f65691620bac1fd5539a4764a96bd17e720117fa549733881ad8f9" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.964Z", + "updatedAt": "2026-01-06T14:17:57.162Z", "postProcessHash": "ad68428b282bfd44a865efce7c8668f1c6b60351ef066b344717fb41c33b6730" } } @@ -3217,15 +3231,15 @@ "1370f12b87482a2e8d057a8b41e9ea94795da80127f778fde4628181bbdcc429": { "f8146d175696fd61b1124db8aa052124a23329de9472ab05df373240407f0ecd": { "jp": { - "updatedAt": "2025-12-29T16:46:14.005Z", + "updatedAt": "2026-01-06T14:17:57.229Z", "postProcessHash": "399b593d592298dbd81b939fa80b0daddbd00eb08b41d95e3ea619f754b842b5" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.930Z", + "updatedAt": "2026-01-06T14:17:57.203Z", "postProcessHash": "0fa46e5a4480fb1370598fc0a8c43c26189a7a31bc68c0cac629706a63250b28" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.024Z", + "updatedAt": "2026-01-06T14:17:57.262Z", "postProcessHash": "4a885d72e2e9d7e2d05b1ca201f552f1467baeb1fd35f7fe058917317e7a2eb0" } } @@ -3233,15 +3247,15 @@ "25e58c45c99cdd21fc20a817b3bc1c4d1448cfd9024cc4ed56ae9462032d790b": { "6bb9f7de8fea38f23bfe3fefc31fa9cf8d67d55bb09bb2f9a1806c8d39795f52": { "jp": { - "updatedAt": "2025-12-29T16:46:14.008Z", + "updatedAt": "2026-01-06T14:17:57.236Z", "postProcessHash": "7694e665320727793995f0f3c9f196c78b361028d9d48b56e90a301d42dfc48c" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.015Z", + "updatedAt": "2026-01-06T14:17:57.243Z", "postProcessHash": "7835a33a583e5e70b9a5e372e342668d8923d02e50fd67cff7fea8aebd6e0534" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.016Z", + "updatedAt": "2026-01-06T14:17:57.245Z", "postProcessHash": "5ffa8bf3e2384cc20367f30a52132d1734bdd6fc0c2f08c6048cc37c2c188d54" } } @@ -3260,15 +3274,15 @@ }, "873620fff6c9ec3e37e3a93a410aa979617a1bdd7bcfd454702003458cbb9c7f": { "zh": { - "updatedAt": "2025-12-29T16:46:14.031Z", + "updatedAt": "2026-01-06T14:17:57.275Z", "postProcessHash": "91c792009e657549f8108a39cfe3a78a2814555d93b8bc1cad5ce3e2bab6f85a" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.032Z", + "updatedAt": "2026-01-06T14:17:57.276Z", "postProcessHash": "80cedd74b31e3cd8753f05174474e32fe79019593c063da26ef9770b4b6e63e3" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.032Z", + "updatedAt": "2026-01-06T14:17:57.277Z", "postProcessHash": "65e295fb9e6248269c5537940fe6e779e6f5502f360e3ce8c453848ceb555928" } } @@ -3276,15 +3290,15 @@ "376f1f3d79070d024492b0852fcc46275cc6894795ef5c9378fe6a8039d04b64": { "57d1e9d86f14ce94f3b9606be0c45891a1cddf024b0cd28892082e2bebf224ff": { "jp": { - "updatedAt": "2025-12-29T16:46:14.023Z", + "updatedAt": "2026-01-06T14:17:57.261Z", "postProcessHash": "fc3a7680cf93457c6d6d572d68d7e8442882ffe7ef2c50a838bbbfdd7a96fc90" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.090Z", + "updatedAt": "2026-01-06T14:17:57.333Z", "postProcessHash": "9186675f7581f6e4ee67a3e56524218ccc49f1654dbd5415669184a0af1c5686" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.001Z", + "updatedAt": "2026-01-06T14:17:57.218Z", "postProcessHash": "120b764e495cc4ba8984e25e38bf3cba8edebad60a8d9ea9a4c8da3b8b5724f0" } } @@ -3292,15 +3306,15 @@ "3b20b82fd209471b97a1109eecaadcd504d69c6421631143f81852d506036bfa": { "deab720ce649678d8772ed32576b254176937947561eccdb5dd266ddcf5b5d50": { "jp": { - "updatedAt": "2025-12-29T16:46:13.931Z", + "updatedAt": "2026-01-06T14:17:57.204Z", "postProcessHash": "2548024e02fc54bfc850c38dbc8f2965464ce10069dfe07c44325bb41f7e47c4" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.025Z", + "updatedAt": "2026-01-06T14:17:57.266Z", "postProcessHash": "277a6b63249f5cbb9c903235b961cc8d5e38c77274e50428081fcd731b4fb737" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.019Z", + "updatedAt": "2026-01-06T14:17:57.250Z", "postProcessHash": "5fa27923fea48899a4996dc8d83063e01f748492289534bfdf3c1987849b7ef2" } } @@ -3308,15 +3322,15 @@ "5315751710a23b80f9bf1ed7f31831d089dbe93c3c8fb90d20b7744073d0bf57": { "a66560c3d607504cdffd12261e02d0e673e576056f78a84ca9ecdf329603c56d": { "jp": { - "updatedAt": "2025-12-29T16:46:14.003Z", + "updatedAt": "2026-01-06T14:17:57.224Z", "postProcessHash": "2d91055199ad458ab9998515d84fc64b795d54c34f77ebfee67bc1bd3b605a4a" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.093Z", + "updatedAt": "2026-01-06T14:17:57.337Z", "postProcessHash": "783e679441cb8e210f1f2b98ba7ee67906603f49c675b96b9e4d192268233926" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.092Z", + "updatedAt": "2026-01-06T14:17:57.336Z", "postProcessHash": "eef5a6d5f3fc62ee6c7758ea304a57b78fe21f83580d10543e3b6beab0a849b6" } } @@ -3324,15 +3338,15 @@ "8d92e8b825b034ea42c644cd23567811b46adb33b6d540b842b64c0196ff3b53": { "292f22bc13c3bd83386dc5ae82bec9ed457e6f79b25efab444ce03844d88e825": { "jp": { - "updatedAt": "2025-12-29T16:46:13.933Z", + "updatedAt": "2026-01-06T14:17:57.117Z", "postProcessHash": "a88c03365c0ae60de8251c932664091084b3e4c0365c5f2db102bec02cc9ce61" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.994Z", + "updatedAt": "2026-01-06T14:17:57.210Z", "postProcessHash": "6cbc5e3acdfe96ca0c70a2fc41b097e715aad5a3cb1ff2eb4f4be0a3611bdbe2" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.994Z", + "updatedAt": "2026-01-06T14:17:57.209Z", "postProcessHash": "f002f5709e43c8cef9e73c4a26ec58efee6dfec186d5b7eed1d7c46fba6965c1" } } @@ -3340,15 +3354,15 @@ "9845c4be459de6543c79bb52ebef31089a7b6dde5c4bcbf294e6b614cb8b73ef": { "f7ab2f792dc532d79e54d2172ab842ea8bb45d24fbea3c48d921219d21bb9a5d": { "jp": { - "updatedAt": "2025-12-29T16:46:13.935Z", + "updatedAt": "2026-01-06T14:17:57.121Z", "postProcessHash": "5b3a70b4d7758eefae4657a96cac98cd1e9b43ff1f90c2f879b23e57655b1fc5" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.932Z", + "updatedAt": "2026-01-06T14:17:57.114Z", "postProcessHash": "e0d7d986a6a30948f3745311ec17a64ab8be68899af22ea0b814094698850d24" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.033Z", + "updatedAt": "2026-01-06T14:17:57.277Z", "postProcessHash": "214ed830ac5a2a2ac5d1d441457bd9acca05234b597fad83a98222ac59c20f36" } } @@ -3356,15 +3370,15 @@ "994f995f28518f9032c149f031eb9e817c8a85f3b0139de3abda3966eec97f40": { "0299673d875da310e70873db6a17323b8be0705c8b4b17c562c9e797b225acf4": { "jp": { - "updatedAt": "2025-12-29T16:46:14.031Z", + "updatedAt": "2026-01-06T14:17:57.274Z", "postProcessHash": "af1c7c78c249901e9762caf3101b52e3cbb1f6e1639615ec21d5f2c30691ddae" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.027Z", + "updatedAt": "2026-01-06T14:17:57.270Z", "postProcessHash": "69b8f7bf089ed2d5ec42dfe1b9b23d322572e8c644d6fa50a13750a55f8b7cf5" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.028Z", + "updatedAt": "2026-01-06T14:17:57.271Z", "postProcessHash": "842bb114376151a7c65fbcbd1a3446c4460a0a7f51c536ce8375a958d2c6f457" } } @@ -3372,15 +3386,15 @@ "9e812084882765188d8e23b9cfcbf9a3edeb29e9461a1cec110df416342b0289": { "e16e8324972fb51ec759f18c31f84b12438b5b468badc9732e3a35eecb40c277": { "jp": { - "updatedAt": "2025-12-29T16:46:13.999Z", + "updatedAt": "2026-01-06T14:17:57.217Z", "postProcessHash": "d0535810116d72f9d9268d65aa2defdd65a954cf8208e6fc413c1795832c239c" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.025Z", + "updatedAt": "2026-01-06T14:17:57.267Z", "postProcessHash": "b956046f8cdba0ead8f1d0f4af703a50123478e2338b4c055a428bb6023d548f" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.022Z", + "updatedAt": "2026-01-06T14:17:57.257Z", "postProcessHash": "803d155db64feaf954d1b39658fdbe0c8809546e24287aa3eb630206041978bf" } } @@ -3413,15 +3427,15 @@ }, "eb4e21db70bf908c73877c7504b08d3a96bdcdbd61ec3b143ec200afe3c8611b": { "ru": { - "updatedAt": "2025-12-29T16:46:14.041Z", + "updatedAt": "2026-01-06T14:17:57.286Z", "postProcessHash": "ed19b21fb4f97b147703bdcd255a81d9c70d42cddecc7f54eccda0b68f715912" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.048Z", + "updatedAt": "2026-01-06T14:17:57.289Z", "postProcessHash": "e45f41653d7aa7372e0acb0181d420860a4930e1f08fcea42e9706c0632001ab" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.051Z", + "updatedAt": "2026-01-06T14:17:57.292Z", "postProcessHash": "1e4332ec6272c284c101cf4d61831c575f26a0ca504aa6ae7846f9e305713c08" } } @@ -3429,15 +3443,15 @@ "a9a515c52dba44d2cbab844922d2f769a5af11a34775d83c1bd8d9c97e4bb6f3": { "85a2a4117446131c96b792674a9cf5594566bfe0b7f1098d2210537e80d0fb0d": { "jp": { - "updatedAt": "2025-12-29T16:46:14.019Z", + "updatedAt": "2026-01-06T14:17:57.249Z", "postProcessHash": "97c5e83da201bdbd88ca53cff0cd24aabc1b119fbaea16458def25f7d8582445" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.020Z", + "updatedAt": "2026-01-06T14:17:57.251Z", "postProcessHash": "53e792551a9b58f2fe60ca7b1f2b6e6df80166963835af1a441aef4358668c66" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.022Z", + "updatedAt": "2026-01-06T14:17:57.254Z", "postProcessHash": "6ccd96ce98b3124a3db092f6c167dd689cb282711ef0140eab94d960db5cb592" } } @@ -3445,15 +3459,15 @@ "af360983b516284a69f939f103f1882eaf99d33139f9033142ae3561946f32c7": { "33be4cf9c98cef60c81c9a896da5f27cad1a7e71f69e85818494ce4b7ec03b2b": { "jp": { - "updatedAt": "2025-12-29T16:46:14.016Z", + "updatedAt": "2026-01-06T14:17:57.244Z", "postProcessHash": "f4295dfcfaf9b0da68cf49285c99bacec122155ddad661d4cb0f9614618937ec" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.015Z", + "updatedAt": "2026-01-06T14:17:57.242Z", "postProcessHash": "918d63f3e1ea58748e16e4669f678993365dc7fa4e6effd6ef8160e2cdb9ea3f" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.008Z", + "updatedAt": "2026-01-06T14:17:57.237Z", "postProcessHash": "0b9db8a4a5f5df0540252e6c605a3c5c55cb5fa342e15743de5c21541d34c82e" } } @@ -3461,15 +3475,15 @@ "b204fb8610ce0fe2a5504ac8ae74eb658b2c80f1a1d885dc2b85d71bc34129bb": { "0aee55116dc7c452f61e8eb411e60595d3f877d5ebfa1d1c034f028155bf44bd": { "jp": { - "updatedAt": "2025-12-29T16:46:13.932Z", + "updatedAt": "2026-01-06T14:17:57.115Z", "postProcessHash": "db3fbf849e09af5b41ad9139a6bb2aba6e4c110b74acfac871eab46f4d472f34" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.027Z", + "updatedAt": "2026-01-06T14:17:57.270Z", "postProcessHash": "06d38c7a66ef3956abe4497735285bcfcc1ec27894cb7b9617751cf06e9b20d8" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.993Z", + "updatedAt": "2026-01-06T14:17:57.121Z", "postProcessHash": "1e210c92c7928845c01ede27d1e476daaa694059ff4cceb0245d50e0b9fa87b7" } } @@ -3477,15 +3491,15 @@ "bf09040d678e6760987c57861f7d46d0c83dc84b582441fa87e7ac9756c76f6b": { "ee66bac04fe1df0381e777810c8adb5c9d16229f663ce7ef30a2a0506899ac5c": { "ru": { - "updatedAt": "2025-12-29T16:46:14.021Z", + "updatedAt": "2026-01-06T14:17:57.253Z", "postProcessHash": "a0a3116863abb7321953681d369eda91e11b116fe6a6f8279931e8f18a39a4a2" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.023Z", + "updatedAt": "2026-01-06T14:17:57.258Z", "postProcessHash": "a96a4a118d83763271bf412a3f140df4147dbad391f5b509ed3601694c82692c" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.025Z", + "updatedAt": "2026-01-06T14:17:57.265Z", "postProcessHash": "92afdbda10617e06cbb0a51772f671b50d2140aa0c73a78dc3a858510c519ee1" } } @@ -3493,15 +3507,15 @@ "c50d8bd0ecc6ee24b7f928b73255956cae71fabfe25096539cdb974c7f167191": { "f1fb2f5d8ab4009a1d0458d1d0604ea822a372927443fb49fae37168711e0dc8": { "jp": { - "updatedAt": "2025-12-29T16:46:14.098Z", + "updatedAt": "2026-01-06T14:17:57.341Z", "postProcessHash": "c8324bf39509d4de4d79961d53dd226e40fbd57459d26e84bba066e95973c793" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.091Z", + "updatedAt": "2026-01-06T14:17:57.335Z", "postProcessHash": "26bd9bb3beeb731f770c853811590069620043bd4e78206d08e493f059b789a3" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.026Z", + "updatedAt": "2026-01-06T14:17:57.269Z", "postProcessHash": "65fc9427f9f052772688a94ebc42e2fe40df78194989707dcbe0f02f14be4960" } } @@ -3523,15 +3537,15 @@ }, "a5cb1320a980bfd48d98c91a3b92609db8a0c92c2c9058b89669d8867479890d": { "ru": { - "updatedAt": "2025-12-29T16:46:14.040Z", + "updatedAt": "2026-01-06T14:17:57.285Z", "postProcessHash": "2dc92abf7865b68a750fbbfa4d67cc82dacb8de7ceb83293ab48105f8c22379d" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.042Z", + "updatedAt": "2026-01-06T14:17:57.287Z", "postProcessHash": "62adb9e41d7d07aea26445088c246328f3b5e6d9c59090f59029e85a6772a395" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.051Z", + "updatedAt": "2026-01-06T14:17:57.293Z", "postProcessHash": "277277bae9ff262d94aaad29f8f09341e7e6003fde67540aea6857481c980d2c" } } @@ -3564,15 +3578,15 @@ }, "8a2e124b6e1c8ddd27447cbeb2e68f87f56892199881cddc391d8a391f31a81f": { "ru": { - "updatedAt": "2025-12-29T16:46:14.049Z", + "updatedAt": "2026-01-06T14:17:57.289Z", "postProcessHash": "8be4da7b15270566403f2c07ce87a03c03d220bc4dd4efc58e9cf17786d80836" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.050Z", + "updatedAt": "2026-01-06T14:17:57.290Z", "postProcessHash": "a0427212015356e688d6432544e60f1ab291ea1bbe935410a7312b114b6a2811" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.050Z", + "updatedAt": "2026-01-06T14:17:57.291Z", "postProcessHash": "053326caf4fa83ee851a1b981b56aa428b12363ea35d944cb3b4c035ba51e780" } } @@ -3580,15 +3594,15 @@ "d6382580d57e06e3adb4f63249975c1e63e439afb1528089085bb16be9e0bfd5": { "e66f44bf486dac3ec176125edd9a39b1b6741ccec945cdd42e270d60579a2194": { "jp": { - "updatedAt": "2025-12-29T16:46:14.028Z", + "updatedAt": "2026-01-06T14:17:57.272Z", "postProcessHash": "cb3dfef3c3edf276fa8d6a64edb71039adfa31645e8c8fcde85d8f149afa3274" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.933Z", + "updatedAt": "2026-01-06T14:17:57.116Z", "postProcessHash": "1dea620a93fb863956febff0c6224cf341fbc90bf22d478eed936b0d1acbf5f7" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.030Z", + "updatedAt": "2026-01-06T14:17:57.274Z", "postProcessHash": "4a17f65ce520d06d713a5a7f00a80075c15bc970b32d978dd0bab1d8a0ff340b" } } @@ -3596,15 +3610,15 @@ "dcbbbc894548f52a28f1dbe2761c66552c70c361ecde98f969015dcee3764a48": { "626e208c3631b5c7c63439845c92c76d534c35cdc0c557b51aac33578683ffb8": { "jp": { - "updatedAt": "2025-12-29T16:46:14.022Z", + "updatedAt": "2026-01-06T14:17:57.257Z", "postProcessHash": "eaf2bea7278242d8f184d99fed664af4f25cd6c3cf76bb05ffe273b82fc95606" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.990Z", + "updatedAt": "2026-01-06T14:17:57.205Z", "postProcessHash": "2f173c1478e79d4d92fe856d4157a6515f327fa84b6793597978ec24b3d34aa2" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.000Z", + "updatedAt": "2026-01-06T14:17:57.218Z", "postProcessHash": "06aeda8693c0eaba941244a7af3251d0527d2cbe3b63bb86b66492dec1de9c73" } } @@ -3612,15 +3626,15 @@ "e3d2222cd9a6fac9acbf681cd3446dfd1fc4c2866524e4195206634d0d76acc6": { "7dd41862d4380d06fce8d5aee44728bdd5365a42f0ef1ef5d0a91b55cde5c29f": { "jp": { - "updatedAt": "2025-12-29T16:46:14.014Z", + "updatedAt": "2026-01-06T14:17:57.240Z", "postProcessHash": "1ef7897a14fc1cc4bc6c406d29e040b28cbe88a9b8247fd17474ca8a381cc31b" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.013Z", + "updatedAt": "2026-01-06T14:17:57.239Z", "postProcessHash": "030761f549e43042d3980ba550c2c4d1bb61a391f1aa3cff268c3ab33d620a6f" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.009Z", + "updatedAt": "2026-01-06T14:17:57.237Z", "postProcessHash": "d530cb3a92456e006d9314813d3c4da19bd80f41b59081118c764ee577738ad0" } } @@ -3628,15 +3642,15 @@ "02291322e0d8f494b80f9d8e9c482282d8b548c6ae56afa37d022b164b99b054": { "14c2feb63b9f987820db166804e40ef404c44c5a695f647c2463bc6c7919d96e": { "jp": { - "updatedAt": "2025-12-29T16:46:14.081Z", + "updatedAt": "2026-01-06T14:17:57.321Z", "postProcessHash": "1b9c2045d79decebd7e84621988d394bb18209f300616bdcced8f6a227175240" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.075Z", + "updatedAt": "2026-01-06T14:17:57.316Z", "postProcessHash": "91d892d9f4045ec334acc06af9b01ea0a21531ac2d7c9ac9fc93d13b4a9b7c71" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.082Z", + "updatedAt": "2026-01-06T14:17:57.321Z", "postProcessHash": "977ada528c20d1a91a73dd65a516e9e2de2669eeb12610a294c43c9c6155868d" } } @@ -3644,15 +3658,15 @@ "13dade465ba8d6e7014eb44c3923f9c834a481123903922ddf6e33bb4ee775db": { "d6e6aa07741897774555a1f0eac0954dd331322344f830c9f304dbdca6fc532c": { "jp": { - "updatedAt": "2025-12-29T16:46:14.093Z", + "updatedAt": "2026-01-06T14:17:57.338Z", "postProcessHash": "eae8724bc6492c203f7fe53589161bb84e977bf08a9726a85b849ef4a5d01cf8" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.099Z", + "updatedAt": "2026-01-06T14:17:57.342Z", "postProcessHash": "bc740155ccf1d06436def6a858d3e846ed55f577579b9fa8a168a1db830ef03e" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.099Z", + "updatedAt": "2026-01-06T14:17:57.343Z", "postProcessHash": "03f66c4a1053b288fe6ad458e6ea707f3c2ed7c7c100fa49d948651d70763adc" } } @@ -3660,15 +3674,15 @@ "1e6a9268be90fc10ba5ab851817ae61b0167c3ce6990f2a5d9ebdb1ee6eec11d": { "986717639b58978e5f1cc565ca5bcaef17e4babedbaaace23e272cc8c401372c": { "jp": { - "updatedAt": "2025-12-29T16:46:14.097Z", + "updatedAt": "2026-01-06T14:17:57.340Z", "postProcessHash": "f0fcb724b94055e56d02ab8f15f4c39fa0836c9f52e9f77300612ce5994a7d47" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.089Z", + "updatedAt": "2026-01-06T14:17:57.333Z", "postProcessHash": "38a433ab93e32dfe963ce0635a9efcaf2cde7fe057c6be3b49c71f6a2285861e" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.090Z", + "updatedAt": "2026-01-06T14:17:57.334Z", "postProcessHash": "9e0e7e2a11edd86bd73829ec8abd39d69d080c6890d8cd2aa2a5ee0b1ddf2d25" } } @@ -3676,15 +3690,15 @@ "290372a9e8da36b9b0dbc38f3a77bf8307b785738d5ba00a31fddfd12681d63a": { "435164419830229ab742e3ae11858464c9c8878bcf4a2bb3d6166ec4642f545e": { "jp": { - "updatedAt": "2025-12-29T16:46:14.104Z", + "updatedAt": "2026-01-06T14:17:57.347Z", "postProcessHash": "b5fb8d1d6ace877d02e1831cf1ac2cb7ddce0ce29ed2f983643bcd639e6bd3fe" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.105Z", + "updatedAt": "2026-01-06T14:17:57.347Z", "postProcessHash": "e46630ff15a9f9566d2b490cbc0052d0f6351436a9e701123f09b579ebcb88df" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.089Z", + "updatedAt": "2026-01-06T14:17:57.332Z", "postProcessHash": "7fcacc055f2cb07364b5d1c2675b812a446527a5459e9768e0c6954797bab0bd" } } @@ -3692,15 +3706,15 @@ "2aca9c20ab8bbeb98fd4fbb9f62e8ae777bccbfb6417cbddb786afea95af4499": { "866097183364ceafca0351ea2755c4d597ff856cbd6ea28946d96c0d30d28ff7": { "jp": { - "updatedAt": "2025-12-29T16:46:14.101Z", + "updatedAt": "2026-01-06T14:17:57.345Z", "postProcessHash": "989e525057f778a0694f0cf12bd1ba67c83e7ee0538b8edd211e26f6c7c244fa" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.101Z", + "updatedAt": "2026-01-06T14:17:57.345Z", "postProcessHash": "34447010903c8011ec00cf83a3e7568c4143543f655940d76d90eda9b97d75f9" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.097Z", + "updatedAt": "2026-01-06T14:17:57.340Z", "postProcessHash": "33bd305c8d90c6ab8accc14a06792fb037c8bc7fa461eaf3ddb8d641a2263c57" } } @@ -3708,15 +3722,15 @@ "381da73f1de48015917a484d7c2e45bb2557d1a326b8ff4560cb55a72d1de6ce": { "58f15d2dfce6c37907b066f99ba2b6b1bad2cefdd56e52bb79e7839fed922624": { "jp": { - "updatedAt": "2025-12-29T16:46:14.091Z", + "updatedAt": "2026-01-06T14:17:57.335Z", "postProcessHash": "796b9f3aaa34a8f6a731a0d9c198105bdde4e478999393ff3ece9b310724fa72" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.085Z", + "updatedAt": "2026-01-06T14:17:57.327Z", "postProcessHash": "7a58759a71149c2e9a86b209f1880797fb5de0a6d4b347308f70d185b25b6fa3" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.075Z", + "updatedAt": "2026-01-06T14:17:57.315Z", "postProcessHash": "aa917a6ed2b6f2f770a6cb59bb30f2f860c4aab75eaa3cb48b5ed1a711072f55" } } @@ -3724,15 +3738,15 @@ "40b25bc5f9906b1b6c1e3fb64539dfc6d270a427153142c668cd16a039ebcb00": { "957d995119871468184ae861bc8fb42689e205013b5a1a037710ce22110de58f": { "jp": { - "updatedAt": "2025-12-29T16:46:14.086Z", + "updatedAt": "2026-01-06T14:17:57.328Z", "postProcessHash": "5c48e115d13af8d4beb2204a59d8677b3bff2be59136fc087b1587585b6674e3" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.084Z", + "updatedAt": "2026-01-06T14:17:57.325Z", "postProcessHash": "bbb1bc0d13b0a8b8336feb4d65e32bf17f738d337180d7827ed15717f7cec085" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.082Z", + "updatedAt": "2026-01-06T14:17:57.322Z", "postProcessHash": "8b4876f5c660482c109726e836c28aff0b2b1afe67dc1e388f60784fb8e76859" } } @@ -3740,15 +3754,15 @@ "52853976e012785457c250daee6b0280f9e8e88fcbc6a4a02eaf7315f2758fc9": { "35936f5dd5b5ed9baf260d39b24862296fecf4c8c909f41e2a0999a8db0a3772": { "jp": { - "updatedAt": "2025-12-29T16:46:14.079Z", + "updatedAt": "2026-01-06T14:17:57.318Z", "postProcessHash": "eea3af9e9f4f0c0ff213ed2168a050baf9d943d7090558c4842c8e8514c0b613" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.080Z", + "updatedAt": "2026-01-06T14:17:57.319Z", "postProcessHash": "3910decc269bd763aee0e58e42339797ce7c71807f729845859bf5b7288cbfec" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.087Z", + "updatedAt": "2026-01-06T14:17:57.331Z", "postProcessHash": "ef0b0cda94669d91706fd44f7ccab9e41122e147f5dadc5922e6f29f6b4af28d" } } @@ -3756,15 +3770,15 @@ "5a2a174332bfb9a0cdf7cfe65d8e91568153937327d15d632b2c09aba2aba728": { "e8ae2af14396db3064dca28b82c864d44d320c9ce456d8e334f9b158902bf4fe": { "jp": { - "updatedAt": "2025-12-29T16:46:14.074Z", + "updatedAt": "2026-01-06T14:17:57.314Z", "postProcessHash": "62a4741cba839ad90336aab023c016dd099fb8d6361930cd4d4a865e6ee25d23" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.088Z", + "updatedAt": "2026-01-06T14:17:57.332Z", "postProcessHash": "c4382049f37998315a9a77f41fc76511d28dba2adaf66df0df663b1c24c7cdca" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.084Z", + "updatedAt": "2026-01-06T14:17:57.325Z", "postProcessHash": "8123f3855a4e9f6708c46e7a31581ca6c76c216976da6c0bb71e5e2eacaa89ca" } } @@ -3772,15 +3786,15 @@ "5f3d913c7a8c4ceda7fa835ce07f7441c4f601788cc68210c993d3dda60335e4": { "758768db465ee7223ab470e594b649587b038bfaa85fe340aea1e4aa3c4bd92a": { "jp": { - "updatedAt": "2025-12-29T16:46:14.012Z", + "updatedAt": "2026-01-06T14:17:57.311Z", "postProcessHash": "67df3aeac050027ddae596ab50c41a285107e00de44f226253a2f79b089904fe" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.118Z", + "updatedAt": "2026-01-06T14:17:57.364Z", "postProcessHash": "0677fa44db71fcd7f629eec64ee08adc6f286df035288150d5c4e0e1a70d561d" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.116Z", + "updatedAt": "2026-01-06T14:17:57.363Z", "postProcessHash": "a5374085e97ebe27d09fa85ba8fa4568bdd25d6dfaff66b5da710471210ce8cc" } } @@ -3802,15 +3816,15 @@ }, "eaf3146033cfafad9c15d7344c47636883755c2e93107f06f03665529902f1cd": { "ru": { - "updatedAt": "2025-12-29T16:46:14.111Z", + "updatedAt": "2026-01-06T14:17:57.356Z", "postProcessHash": "e744e73f9a2643b5957191646fa1ea269035c3d5c8f77ecc5b67d9d293050af1" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.112Z", + "updatedAt": "2026-01-06T14:17:57.356Z", "postProcessHash": "1044e0ecc24259d24327b0142f1a181bbe0e35005c0564e6fe92237ab5e89f66" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.113Z", + "updatedAt": "2026-01-06T14:17:57.357Z", "postProcessHash": "14cbdb9a3b215bcb721ebd17eda12b58a9fcc416abb8465bd93f16954fff62b8" } } @@ -3818,15 +3832,15 @@ "6439efcca906a994e35faf64afc92947e6ce60d7db71c07200375b94c1ec08a0": { "b590592b2b9abba8d294cbb837fba6f0bf9ec95a8c5f2d979542c7f80d2cae21": { "jp": { - "updatedAt": "2025-12-29T16:46:14.087Z", + "updatedAt": "2026-01-06T14:17:57.329Z", "postProcessHash": "ac8181a258f48b83c3738d3ab0108d6fecdfad8b707490e025dce49b86ec2280" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.096Z", + "updatedAt": "2026-01-06T14:17:57.339Z", "postProcessHash": "e1f199e8ed0c47463892eddaa9bc897420292ba94cba6da3f54e87a7162980d7" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.086Z", + "updatedAt": "2026-01-06T14:17:57.327Z", "postProcessHash": "1fc67c6caab479bcf9d9eb5e80d1609540a7a3993db8cddd777350d2374a8b4f" } } @@ -3848,15 +3862,15 @@ }, "5eed1182dba6abe4cc91917f7706ddfbddd873377f41ede8a4ac404f8d9a84f5": { "zh": { - "updatedAt": "2025-12-29T16:46:14.113Z", + "updatedAt": "2026-01-06T14:17:57.359Z", "postProcessHash": "2c90988f3711640ed7bff59f0c37d871bf547b75d68a353f4c75ee9a36b08a8b" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.120Z", + "updatedAt": "2026-01-06T14:17:57.365Z", "postProcessHash": "59139fda4a1450e58bc2a42f36b10dbe9d02858f81dcaac6a5d203d2de202e1d" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.120Z", + "updatedAt": "2026-01-06T14:17:57.366Z", "postProcessHash": "730ab9677248785d22a1d31e1e7936be98f658df2b84cd44049d47e1520e4ed2" } } @@ -3864,15 +3878,15 @@ "81e55d728a63e9d9620a0aa9a0f3152c86d8f4228a2480791e9cad5a8de39a05": { "0a7dd0ec6b5989e1b77f3754697c20347971441c557b816d890bf2b9648ca561": { "jp": { - "updatedAt": "2025-12-29T16:46:14.010Z", + "updatedAt": "2026-01-06T14:17:57.302Z", "postProcessHash": "8033643e3d7fd14e6bf2f9fde05016f75df55da8da55ae75c80782aabad53775" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.010Z", + "updatedAt": "2026-01-06T14:17:57.238Z", "postProcessHash": "78a73c41ac58b791b78bb7aa641114e81719f2d845ec2579b7e38a6e75331156" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.012Z", + "updatedAt": "2026-01-06T14:17:57.308Z", "postProcessHash": "fe4c3778fc8f5117e94f336f4ec8e6a609a3163c6431e5c6e941de7f0ae99c2e" } } @@ -3880,15 +3894,15 @@ "99dad4c2046d97de9c9a10225dad41defe9ab46dd46ee1ebf18685fa87671a2e": { "06b367fa8b09d7fd9415ccb9f2fa0fb03df266adda026a80d2f81729bad14302": { "jp": { - "updatedAt": "2025-12-29T16:46:13.925Z", + "updatedAt": "2026-01-06T14:17:57.109Z", "postProcessHash": "4efaee3c2895f3144147a20511fab2b231bd58fb13be041ecfc61bc285ab2c30" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.004Z", + "updatedAt": "2026-01-06T14:17:57.225Z", "postProcessHash": "f9f0e8be358dbde188f65c3650d2b3dce4282c677cb97af76c87999fa93331b2" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.100Z", + "updatedAt": "2026-01-06T14:17:57.343Z", "postProcessHash": "d3437fee45fa0f3d05a4cb222f48a72b35c9691dd087cb65f097c70414b12115" } } @@ -3896,15 +3910,15 @@ "9d3e2980fe828b01727089a5b229444dc083a28f187a3ec09ad16a7eb1eb6d78": { "27aa4e4f10c34b32aa528db752d7176b33e61894bc9750f14367f23ebacba5e8": { "jp": { - "updatedAt": "2025-12-29T16:46:14.092Z", + "updatedAt": "2026-01-06T14:17:57.336Z", "postProcessHash": "96d17fef877404df6be39caabd0a12bd1f475055d06c0c50736e71422678501f" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.106Z", + "updatedAt": "2026-01-06T14:17:57.348Z", "postProcessHash": "cb0f4ab7cc351f4eba587e45da704844243c1caae2b584c50424e12051972f40" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.098Z", + "updatedAt": "2026-01-06T14:17:57.341Z", "postProcessHash": "11d9696b25361972371f2850d9f7807142d205ba818a4a2d9e44184bb1ef6d3c" } } @@ -3912,15 +3926,15 @@ "c491de2fc423ab10dbad66f7c1ced660f15c3f92d3220edeb2ccd84ee9575232": { "6fd80c5323889b79422bdbfe9fd8a32fb4bc56870affd9f018e096ec38fde0cd": { "jp": { - "updatedAt": "2025-12-29T16:46:14.100Z", + "updatedAt": "2026-01-06T14:17:57.344Z", "postProcessHash": "e673ff8e48c6a00069377dc3b18c5873f1424dcef402c99c4d7c06618db7fac8" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.106Z", + "updatedAt": "2026-01-06T14:17:57.349Z", "postProcessHash": "5fb6b53499cfee7f625e98e404782fba10ec68baa2001239369adb2c805339cf" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.104Z", + "updatedAt": "2026-01-06T14:17:57.346Z", "postProcessHash": "52bdc1744a33308963c277c44e4387a2e4d630960765a5594be1e3ae49125022" } } @@ -3928,15 +3942,15 @@ "cd73972a4d037347d81b6309d5ebdd4973e65b4708a5a1c61e961a7e349f0783": { "9206b8172e5adaad17f8c6eb0cded1360735c838b0a3363c600dce6cc6abbcef": { "jp": { - "updatedAt": "2025-12-29T16:46:14.114Z", + "updatedAt": "2026-01-06T14:17:57.359Z", "postProcessHash": "bb1b8ab2573241a1e3763e0e88628c11250a07250170d7fef595f00761a7e1ba" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.117Z", + "updatedAt": "2026-01-06T14:17:57.363Z", "postProcessHash": "1aad7e2070e2c671be0fdc72f1d8a6ca1690368f385ff82a4da3ad928db4958b" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.119Z", + "updatedAt": "2026-01-06T14:17:57.365Z", "postProcessHash": "fa2cba83a9cb4ff6c186dd4a7a1f4e7368b11c48a0d544cb46eab0fea6e6acd9" } } @@ -3944,15 +3958,15 @@ "cd764deae766f8c6f6cfe6b576e74bb1f602bfacbb3821340a5850510d57a818": { "b6693ed657d428f4853a8fcd97aaa704f7a982e5e86c5fb8e5ce372b12c11e69": { "jp": { - "updatedAt": "2025-12-29T16:46:14.107Z", + "updatedAt": "2026-01-06T14:17:57.349Z", "postProcessHash": "232cc5b52ffae01c50a8d6fa29b654eb80ec3e2a107592684aec0ac4479ce7ad" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.107Z", + "updatedAt": "2026-01-06T14:17:57.350Z", "postProcessHash": "c7e74f0c064864ba151efe4ec18afe94834ea6c7b301d4a102c210f43e79441a" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.108Z", + "updatedAt": "2026-01-06T14:17:57.351Z", "postProcessHash": "6db3b0749adcb6166faf927e0f50730412600d2d81b9c99d07f8592d714b1f6a" } } @@ -3960,15 +3974,15 @@ "fd4807eb1e777b66ccc79335d7b822af7ba8bb6dcbbf18e3ae8c53f548f20928": { "455e4d7b70315644264125e3a1e3a329d14b945c29bd48454b379b5247f97bdd": { "jp": { - "updatedAt": "2025-12-29T16:46:14.083Z", + "updatedAt": "2026-01-06T14:17:57.323Z", "postProcessHash": "5d850433c8150c58df8a0bffa285b0fe654ed668bb354194b4c9ad0a5bf2712e" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.083Z", + "updatedAt": "2026-01-06T14:17:57.324Z", "postProcessHash": "c50dcfbd225d31d4d35dafd7fb80fa49b4cf1096552a0d711f948fb54455b4bc" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.079Z", + "updatedAt": "2026-01-06T14:17:57.317Z", "postProcessHash": "cc4fc729026fb36966fbee46e5ab858a282cc0cb5e4411b461faa3a81df69aff" } } @@ -3976,15 +3990,15 @@ "fdc92b085b658968ee987d63323feb976df8a0ac7995cde6f13318c84abd0c59": { "7843455825f9c1828f408c376329311aba7d3c1e14b345e73ef9ad5b93e5b005": { "jp": { - "updatedAt": "2025-12-29T16:46:14.088Z", + "updatedAt": "2026-01-06T14:17:57.331Z", "postProcessHash": "bef558f38d37b85dd1ad162a9ba0801ce028318f5893d82f16b4fa4502b41997" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.085Z", + "updatedAt": "2026-01-06T14:17:57.326Z", "postProcessHash": "0ee197a6f083f473108b471d7cf5b18fdcf8fda76a223924ca93c66a2c4ca177" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.081Z", + "updatedAt": "2026-01-06T14:17:57.256Z", "postProcessHash": "be759f33e06f4393f58409ec5b7b5c2fdb5e760e37dee12c99083dabbc0793e5" } } @@ -4006,15 +4020,15 @@ }, "f73d712822089e63e2f8ffccda26344c2d30777b35194de58ec2e20c9df3c975": { "zh": { - "updatedAt": "2025-12-29T16:46:14.161Z", + "updatedAt": "2026-01-06T14:17:57.417Z", "postProcessHash": "e93d76238fbf5d9f25f3ff3ebc4de5580e26dc1adb46d286be76feccf88a22e7" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.166Z", + "updatedAt": "2026-01-06T14:17:57.423Z", "postProcessHash": "e0b9e5fb3b91501bac534236703b91f200567f46155be718879275c7ebb0046c" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.167Z", + "updatedAt": "2026-01-06T14:17:57.424Z", "postProcessHash": "e0b8070fe031c29970a97f83b93f6561f76071fc5ec3765f4d6265a93730a3d3" } } @@ -4022,15 +4036,15 @@ "1777f3ba683ace75433dd34468539a9e9d67ef87d9f67a65737e86954611e774": { "3acf5735b7405bf65c0204cd16078ddc21713f4e46ed2d0238fb8871eb19b84c": { "jp": { - "updatedAt": "2025-12-29T16:46:14.068Z", + "updatedAt": "2026-01-06T14:17:57.306Z", "postProcessHash": "63bb426dc095f594d3033fef67b8bc8f2848c1479f2e2c976b32f2244db6a3f7" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.055Z", + "updatedAt": "2026-01-06T14:17:57.298Z", "postProcessHash": "ce56defd6ab1f8bb909eadc64999574e46d53d0eb25adca11345349863b54c08" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.171Z", + "updatedAt": "2026-01-06T14:17:57.435Z", "postProcessHash": "81d210d337babacfbef0fea4ac86ee8e55fedb5288a0d33b6f493dfab2326337" } } @@ -4038,15 +4052,15 @@ "1d262ab176214afd2615461f6d7dcbc00bf893bd453c8cad2f9b625f5b34ed8e": { "2ba14b7281983a683a98e1fb919f7ee7317f7cf3b6fce775f1d12a76ea1e67e6": { "jp": { - "updatedAt": "2025-12-29T16:46:14.059Z", + "updatedAt": "2026-01-06T14:17:57.301Z", "postProcessHash": "0df45856cea06493a653f863f436ceb1ff1e908bd4a8cbe1001f6a209ce27bd1" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.069Z", + "updatedAt": "2026-01-06T14:17:57.307Z", "postProcessHash": "dc3bb42551da4ddce8d7033afabc385dc082273ad9918a946e9e121c157f2aae" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.170Z", + "updatedAt": "2026-01-06T14:17:57.431Z", "postProcessHash": "0abc51bed9bc3aeb9d85a7e04f7961ae02d9150f35ccc603497060c6a260e5a1" } } @@ -4082,15 +4096,15 @@ }, "97927b7db26055bf9aa06cf2bd076749a41ddf4ad18f2098d9b59e9b6319f979": { "ru": { - "updatedAt": "2025-12-29T16:46:14.148Z", + "updatedAt": "2026-01-06T14:17:57.403Z", "postProcessHash": "3a1999b04ff4413878fcf248516e291d79ca17ae1edc1eecff0a3547a384faa5" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.149Z", + "updatedAt": "2026-01-06T14:17:57.403Z", "postProcessHash": "ac8f2f95eb886e9731f07a9e3cdc6ceb2bf1b3bee88f6b6b135adfc04e617740" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.150Z", + "updatedAt": "2026-01-06T14:17:57.404Z", "postProcessHash": "c1482f30a5fbad3d9f25ec0c95ecc5ee18f14c20979657b34b39ecf99b0579b5" } } @@ -4098,15 +4112,15 @@ "3e5df6c1938919084ef3c24cc3aa0a9f834e4dc5475270adb64943fc1f2c818e": { "a27fbee07ebfb6548a8a222874fceb3def1e176c740f36e8bb3fa452c9d32b53": { "jp": { - "updatedAt": "2025-12-29T16:46:14.154Z", + "updatedAt": "2026-01-06T14:17:57.409Z", "postProcessHash": "afc17f58ccbb5928670ccb7001086276470c8c3ac782832e6326a7adebf956e5" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.071Z", + "updatedAt": "2026-01-06T14:17:57.370Z", "postProcessHash": "4ae1ba52733afd62e305311f0662b5f9863c76b8182170fe037779d9000d0d42" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.070Z", + "updatedAt": "2026-01-06T14:17:57.309Z", "postProcessHash": "ad7855d0ae8ba12a5990bdf7bf14ba59e681fbeed460707349f1efb8f3fbbb7d" } } @@ -4114,15 +4128,15 @@ "44b3f5422fc4c4f447ece76e0f8066bb34f3affc30e7419ca74089bfa8055925": { "b2e193e55be108c5582fcb93204b7255923583e86eda8e23c2ec5a7fb530f958": { "jp": { - "updatedAt": "2025-12-29T16:46:14.058Z", + "updatedAt": "2026-01-06T14:17:57.300Z", "postProcessHash": "c7e691a28edb674f2adaa1e365cce55f51cfdaaed040ddcc76ff0b5fd1eb057a" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.068Z", + "updatedAt": "2026-01-06T14:17:57.306Z", "postProcessHash": "58f74551fe99693f2d2584ec891bb5946be8831cfa5f6fcb08709d6c56112241" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.058Z", + "updatedAt": "2026-01-06T14:17:57.301Z", "postProcessHash": "10da1772efc4f97a3c93ae6dd1e74b262a69be8803cad9d676c411ca94f56916" } } @@ -4130,15 +4144,15 @@ "4e56f5a34b33c4d6df45c30f812200b60d80663863d11d65cf1450dcca806457": { "4705c821297fd380138640ab626f9d4f597a2b1853b0c84c3688cc33f5d4dd5e": { "jp": { - "updatedAt": "2025-12-29T16:46:14.073Z", + "updatedAt": "2026-01-06T14:17:57.312Z", "postProcessHash": "1c35941a5748d64b79a38bcdd5ee336f45031ee985c27dd81719150ef23a6583" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.115Z", + "updatedAt": "2026-01-06T14:17:57.361Z", "postProcessHash": "0990db1dcf07afffcbf6b8ae5cdbdfae29fa7974b515daa8b54499fb8b0df97c" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.073Z", + "updatedAt": "2026-01-06T14:17:57.312Z", "postProcessHash": "5cd5939ee11cdda8f435f1daa02811c4eaf6ddf687a9c2c24e36fcbb035a9c00" } } @@ -4146,15 +4160,15 @@ "80d3d6543dd83a7957930d9045025b4815c1307c41a15c290f7acf0eae734cda": { "41c8219de2e81a989c9aa442e0f7b45929280d651e3c0f00f28c5e946e5b9487": { "jp": { - "updatedAt": "2025-12-29T16:46:14.171Z", + "updatedAt": "2026-01-06T14:17:57.432Z", "postProcessHash": "3c14a3c7ee0ec49c6f1bab48b3506fc52dfa5522f285a17577b0a9d064e8d734" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.172Z", + "updatedAt": "2026-01-06T14:17:57.436Z", "postProcessHash": "0c8e8717d8719aabec897b0fb2ea5482a83c78c47c2a9a04c1e1424ff2fdef65" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.169Z", + "updatedAt": "2026-01-06T14:17:57.429Z", "postProcessHash": "ddf9664c58bcdbc28b706cc91da0bb07b5cc0f79941c4b54a125af6cd6a3e7f0" } } @@ -4176,15 +4190,15 @@ }, "4931642cacce5d7e4aa5efde32c846a66ce9f7260e48550840316930bdcc9215": { "jp": { - "updatedAt": "2025-12-29T16:46:14.168Z", + "updatedAt": "2026-01-06T14:17:57.428Z", "postProcessHash": "bf469060b1fb5bde15679052326eb1a1207d7802f4aa9249f7a3f5ad3aa59f12" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.176Z", + "updatedAt": "2026-01-06T14:17:57.441Z", "postProcessHash": "201096a06388917fe7cd14ab65a9f4e05ed3060c3ef48857fd11b5b8df32c96a" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.177Z", + "updatedAt": "2026-01-06T14:17:57.441Z", "postProcessHash": "c7fbb382735c993c25f73a929d2b2ba3a397e5ef1fdde85fb5813ba6111a3849" } } @@ -4192,15 +4206,15 @@ "98c24f1533f177815a78f76de8765482cd98558271c182e9ea70175821ff82db": { "59cffa3acd22af2478ea31099f73412223d91eb1301172207a61ac51e8cba72d": { "jp": { - "updatedAt": "2025-12-29T16:46:14.173Z", + "updatedAt": "2026-01-06T14:17:57.436Z", "postProcessHash": "5bf775fe8a510490d642b4fef111437674b087a6d839eca47ea7f06a6d69b078" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.174Z", + "updatedAt": "2026-01-06T14:17:57.437Z", "postProcessHash": "7de0e32d87d93c8f1c6e76bc56222ec4e1b4d0817972825e5951f1c9a40a3655" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.053Z", + "updatedAt": "2026-01-06T14:17:57.297Z", "postProcessHash": "8f4bdb2e87fcc6c2ff31cb2e0874a7f1b363d5e53197e2deade9800491ec873f" } } @@ -4208,15 +4222,15 @@ "99393522afef2d07d814a10cdd78d55ffbbf63cbc84caf67a25cbbb6702d7b29": { "df2e38e726ad5701168a107a3233f7e582b27aaddc17196034ab06c247a2cbb1": { "zh": { - "updatedAt": "2025-12-29T16:46:14.070Z", + "updatedAt": "2026-01-06T14:17:57.309Z", "postProcessHash": "6b4621dc6ba549fa971f886026499b0bb9875d90b6d0f2ccbbc0b80dc678c1b0" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.170Z", + "updatedAt": "2026-01-06T14:17:57.430Z", "postProcessHash": "5ac9e177a27ba1fe661cbf85e4f10c88a8366539f86700dece67836f5b33ea03" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.071Z", + "updatedAt": "2026-01-06T14:17:57.310Z", "postProcessHash": "d7cfb99b279048ede4f75015de42cf0a08fd509d9710427afcc388e02f2ff2be" } } @@ -4238,15 +4252,15 @@ }, "ea8c7c9d17751650bd4d1c157fcea423823f17b3c7493e74e57c7ce9e67fa43b": { "ru": { - "updatedAt": "2025-12-29T16:46:14.126Z", + "updatedAt": "2026-01-06T14:17:57.372Z", "postProcessHash": "d8605e0b83107b5c3b2341ad97e7af1d433a2d31edf6293c5e1fff3ec9c3235f" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.127Z", + "updatedAt": "2026-01-06T14:17:57.374Z", "postProcessHash": "c4ef3b147068a18dee32ed367d6297e8a7bed3dff628190a9ab395d66e5a32f0" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.128Z", + "updatedAt": "2026-01-06T14:17:57.375Z", "postProcessHash": "9a727ea56e5a5d4b95125e0ccc64834513186504585a4f635253b47e7573440d" } } @@ -4268,15 +4282,15 @@ }, "43ca48cc60e7b08bde6182ca919e9b03755ab58ce87147120a296c5bb1f57d7d": { "jp": { - "updatedAt": "2025-12-29T16:46:14.072Z", + "updatedAt": "2026-01-06T14:17:57.371Z", "postProcessHash": "17237a81596e53dd0a70caabf6c0689b4c06a0a434dc814b728683a34205c09f" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.125Z", + "updatedAt": "2026-01-06T14:17:57.372Z", "postProcessHash": "073a19c42e362b388def36e125ec8f821dc32efdecb18bb6a15a251eeb72f581" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.127Z", + "updatedAt": "2026-01-06T14:17:57.373Z", "postProcessHash": "7e1740f6942c64a8ea80c5a98d91cb421a958f7b0499cb063898fe37e6d59d03" } } @@ -4284,15 +4298,15 @@ "a02c9804673e90df5f360bc1d48dc4d9b7a2120b7b838de45da8f0bd5dcc7bfb": { "6dba5895ccf72ae7b5a8b301d42e25be067755be6a3b1a5bcb26acdc5cb58138": { "jp": { - "updatedAt": "2025-12-29T16:46:14.116Z", + "updatedAt": "2026-01-06T14:17:57.362Z", "postProcessHash": "c9a3c9ea45d730b6a43206934a6cae97beea4578d1286986f03332d2acd5e0ab" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.115Z", + "updatedAt": "2026-01-06T14:17:57.360Z", "postProcessHash": "ccc9d56bc7331a16e641aa431b4f0d437a6d5cf1ad749b866de0915a8abb8161" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.119Z", + "updatedAt": "2026-01-06T14:17:57.364Z", "postProcessHash": "88c05c94777c07117a77b6aba0e10dd0e83951feaa255ab51c0f9a05fe606527" } } @@ -4314,15 +4328,15 @@ }, "2b7d0e1e5814e255aed5f37875a33b5d1ed36c2d17e15b8972c8f0c81e001c45": { "zh": { - "updatedAt": "2025-12-29T16:46:14.158Z", + "updatedAt": "2026-01-06T14:17:57.412Z", "postProcessHash": "90ea8ff88bdd91e0a7662b4c862bc0f561b2493d3256b9914915d9e3228e2e31" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.159Z", + "updatedAt": "2026-01-06T14:17:57.413Z", "postProcessHash": "4717f38b6bef30c368b31cfb12428d730dadcf1ef4f51219f69abe44a9d6b6ee" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.175Z", + "updatedAt": "2026-01-06T14:17:57.439Z", "postProcessHash": "bdd87e276491ad5f7dafaec4a8ef632b16b307252e2e33db912e978d6d832089" } } @@ -4344,15 +4358,15 @@ }, "5f0e1f917b44c1fd2e936e0ab949cd64d775fe0da99df9ae4015378002ad37fe": { "zh": { - "updatedAt": "2025-12-29T16:46:14.163Z", + "updatedAt": "2026-01-06T14:17:57.419Z", "postProcessHash": "4b76aadb65df9c571335c71f2386aec3b27f612e5a5a3d140186fc0c63a0616c" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.168Z", + "updatedAt": "2026-01-06T14:17:57.427Z", "postProcessHash": "c80f193a3b17e7c68ccab9e753532430948b29e45ec56e2d315966f42de63b57" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.177Z", + "updatedAt": "2026-01-06T14:17:57.442Z", "postProcessHash": "7a09f21e64e9f6e9851a1ab842dc7d07c2d0887717d1809d663ea1e0f0243114" } } @@ -4371,15 +4385,15 @@ }, "c658b35c333a9b84fce26b6d52d08ee2316bee590e65f60012410d5d45a42663": { "jp": { - "updatedAt": "2025-12-29T16:46:14.155Z", + "updatedAt": "2026-01-06T14:17:57.409Z", "postProcessHash": "e5300005fad4895527b1a858286249be1ad033a45ac1a902b455a4200422c958" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.155Z", + "updatedAt": "2026-01-06T14:17:57.355Z", "postProcessHash": "ccceed41336d3e1f2b975d6474d3c302d1bb0b7946e47c245b5b914e3ebe22db" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.173Z", + "updatedAt": "2026-01-06T14:17:57.364Z", "postProcessHash": "129af7c6a11fbedff0738923e4d6ad3ac5521b1e9dada8a8a2856c9b9607935a" } } @@ -4401,15 +4415,15 @@ }, "0ae7e345a21808fb5a67a1ab5d1e20ccca5d21810c5dd2e589efa11084568019": { "ru": { - "updatedAt": "2025-12-29T16:46:14.161Z", + "updatedAt": "2026-01-06T14:17:57.415Z", "postProcessHash": "80bdded1207d5f24b3f2e76c7007e8d245a091d0f3a2ec90182d710228ed0713" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.162Z", + "updatedAt": "2026-01-06T14:17:57.418Z", "postProcessHash": "aa12e3b2a4df77b77327d0899eff374248d441f0efd4f24d7c5b58d53909527a" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.175Z", + "updatedAt": "2026-01-06T14:17:57.440Z", "postProcessHash": "40eabf9d737ad763fc7d5897abbc719a617f4d1bfabf645d910d507043f9242a" } } @@ -4431,15 +4445,15 @@ }, "5abeb1dbb1f64ec85deb1db71d4f6eab26d9716ed8764781b43c3ed01a9580fe": { "jp": { - "updatedAt": "2025-12-29T16:46:14.163Z", + "updatedAt": "2026-01-06T14:17:57.418Z", "postProcessHash": "7ac4ffa0704bd673d961ee9415a4b1322973b8346ee874f6f559ba9a3ac26cbe" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.164Z", + "updatedAt": "2026-01-06T14:17:57.421Z", "postProcessHash": "9b2aff061da171be16660e0679b6a76787cad9fbd65a21e90163843d430340a2" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.165Z", + "updatedAt": "2026-01-06T14:17:57.421Z", "postProcessHash": "4dc793280eee1c5a393a5dcd7ade050328b14ac23bfe17198c266502bab84ac1" } } @@ -4447,15 +4461,15 @@ "ea52d1bf57d6eca260482d6e9db0b3e4ba187ca46f787a3ec41ccbabccdafc29": { "7792c45b9f12363c758a86312cea564fda8789130772fc2a238a348aa77232bb": { "jp": { - "updatedAt": "2025-12-29T16:46:14.054Z", + "updatedAt": "2026-01-06T14:17:57.235Z", "postProcessHash": "67cb1bf38bf4f68a98a027ec428c9f5cb650b88e09886da54a10b52d8b691caa" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.007Z", + "updatedAt": "2026-01-06T14:17:57.233Z", "postProcessHash": "511a63c44b7f0d3cd3751db19efc8ff1198754ee03149dd785a74d144f384e4a" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.011Z", + "updatedAt": "2026-01-06T14:17:57.302Z", "postProcessHash": "c5fdceb61a73106218b9fafae029ad625690e7063b490206cb8da29c53877bdd" } } @@ -4477,15 +4491,15 @@ }, "ac123f20ad425d66139f30caa4fdd649e9c03e7529fc4f04b5468188937f7f6a": { "zh": { - "updatedAt": "2025-12-29T16:46:14.156Z", + "updatedAt": "2026-01-06T14:17:57.410Z", "postProcessHash": "c8582590d71acd06ea50484e7bd1e8c8140ae52baee7cecfb83578a1f3f84a3b" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.156Z", + "updatedAt": "2026-01-06T14:17:57.410Z", "postProcessHash": "9676d096f4d9e0f2f88507d9ca3e3e1b6c623b29bea41f406f1b1e39d62ac4f5" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.157Z", + "updatedAt": "2026-01-06T14:17:57.411Z", "postProcessHash": "38d3ec0f9883179397aa56404b93457c59ddb62d6a8ed5c0ddd372e491fa7d70" } } @@ -4507,15 +4521,15 @@ }, "3b0b6bfe05ba817088e95945a7287ba991074d5aa3d610afbe7f1bff50762247": { "jp": { - "updatedAt": "2025-12-29T16:46:14.160Z", + "updatedAt": "2026-01-06T14:17:57.415Z", "postProcessHash": "dc174e707bebe273b8cef5dc0c3f020d88e51cbb578da70dd8ba7816e64c5a58" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.164Z", + "updatedAt": "2026-01-06T14:17:57.420Z", "postProcessHash": "435b016590ccdb4ed0f0f2da9356ac26e05465937a57d3821e79f50881a5b84c" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.167Z", + "updatedAt": "2026-01-06T14:17:57.425Z", "postProcessHash": "61bb5552a6cdaa195e57c3b40e1074194830696cff133528fbc68a100ce65fd0" } } @@ -4523,15 +4537,15 @@ "046cf4465fa1fb7186678766ac47cbd78704f28064400523e5b59a245d53c970": { "b13281a5fbb00f880845872b5516d8f9e9039198c4bf031942d0ceec737def68": { "jp": { - "updatedAt": "2025-12-29T16:46:14.139Z", + "updatedAt": "2026-01-06T14:17:57.389Z", "postProcessHash": "d048601ebc083f130a666e195fc2e15bef8b4208d033c7e3ba2f579774dfcce2" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.143Z", + "updatedAt": "2026-01-06T14:17:57.394Z", "postProcessHash": "355168d1b10fa59e286971b001d0f8c84494736354652c15211efdd4f1aa0672" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.135Z", + "updatedAt": "2026-01-06T14:17:57.383Z", "postProcessHash": "bcabb8c382ea4d19d3b7323129a2446dfee3a100ce1b1e85272e7e846a9a396c" } } @@ -4539,15 +4553,15 @@ "0cdb3f54f81ff077472e66fb0a57247ee5bf3d2a93abeb493538e948840b724c": { "2beff12ea84429b1b15d3cd9ba939104aa74a91c9770800974ecc16582d6d010": { "jp": { - "updatedAt": "2025-12-29T16:46:14.137Z", + "updatedAt": "2026-01-06T14:17:57.387Z", "postProcessHash": "f6f1e41c2670ae8d50cdea7d15d969a3daac0f0bfa8426b1d685b0c73e220470" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.136Z", + "updatedAt": "2026-01-06T14:17:57.386Z", "postProcessHash": "196d86037310e9c6ec330f5a320ad193ac920fcbce51dee60b65c98097a77777" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.142Z", + "updatedAt": "2026-01-06T14:17:57.392Z", "postProcessHash": "93d98f792a702a2d0dd159956e3b86c06f6a772a66caefd147b37d9fd90d95c2" } } @@ -4555,15 +4569,15 @@ "1ac7bdd9222c1e2ffa17fc544f1241b28da0cad7f185b619d29ac27e0aa8c077": { "3f8afe531fdd885aba914642b81b85afea758c6f849a7250bfeebc09887cc894": { "jp": { - "updatedAt": "2025-12-29T16:46:14.067Z", + "updatedAt": "2026-01-06T14:17:57.305Z", "postProcessHash": "3e73aa0e97ebbdab8d3a3580c0bec529ba8e9d78283f227b0319d2f3466cc85f" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.069Z", + "updatedAt": "2026-01-06T14:17:57.307Z", "postProcessHash": "c96c8b2abcc629a24a9c06e2e47ab1958076ca9c9d71639346e9e7b99f4b55d4" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.066Z", + "updatedAt": "2026-01-06T14:17:57.304Z", "postProcessHash": "c9398f904d21f07a3cf924ea12a56a1f09004c6be82bfbe7a69364be959db5df" } } @@ -4571,15 +4585,15 @@ "2a7b92dadf95743e702b18a30f74eb67e67fef5ea4124220e608f258c6950c9e": { "c66b9e2d0f4d5e382ea43aee7020fd1c7ff170725159ddc185d674bc64b0d24b": { "jp": { - "updatedAt": "2025-12-29T16:46:14.130Z", + "updatedAt": "2026-01-06T14:17:57.378Z", "postProcessHash": "afc108898171185e56cc785a491d1b7fb5963544aff304a7c9234298446d28b7" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.131Z", + "updatedAt": "2026-01-06T14:17:57.379Z", "postProcessHash": "14ba3e5e781aac133077f908c553b87ffebe4ed5fcbd38ffb86aff0533132881" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.131Z", + "updatedAt": "2026-01-06T14:17:57.379Z", "postProcessHash": "33fd046aa0df0dad145c1f0b7ed950393fe0947d1a092df8f639bf15048029a3" } } @@ -4587,15 +4601,15 @@ "2f0873b2704cad58fd2172ec86c842a8262cb2a7c1e6cfbf1e9851fa843f4357": { "d4282945578d91a5ae49277f6ca146ca130e3b3df3c0341a5de3414625c2c903": { "jp": { - "updatedAt": "2025-12-29T16:46:14.146Z", + "updatedAt": "2026-01-06T14:17:57.398Z", "postProcessHash": "f57539ecf926d81785496f6d8ca44c294b3245e06d7ed8769f8df77b64e40bc1" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.141Z", + "updatedAt": "2026-01-06T14:17:57.390Z", "postProcessHash": "ba70038e8c9b42cb918cd17ba65c187adc7f6582d0696ce412b0e41e616a8e83" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.139Z", + "updatedAt": "2026-01-06T14:17:57.389Z", "postProcessHash": "f162187a1b711095ce7647c7eff0aa4de0d2add53b0aef67e6a2b2ee24ff8d94" } } @@ -4603,15 +4617,15 @@ "583a274e308afe89671f40f27b3be757e2c9e98eeb513765c802185f5ec14e29": { "17f1e539b1b6e7759a4aa628833db4667a7e74444abb42880111b4568a28ffe6": { "jp": { - "updatedAt": "2025-12-29T16:46:14.053Z", + "updatedAt": "2026-01-06T14:17:57.296Z", "postProcessHash": "f1d4084294e021000c02574dfe7b76a8d0d86cf77c794678450c270db6f9d3d0" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.052Z", + "updatedAt": "2026-01-06T14:17:57.295Z", "postProcessHash": "22f383300e6fc8457e445bccf094a34a8d19b5d70a66032c2fa808b3407ef1b9" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.132Z", + "updatedAt": "2026-01-06T14:17:57.380Z", "postProcessHash": "73965d355e4b340404b97ff3e107e6b5bfb90ef69ffb72f1d7e51532c54c115e" } } @@ -4619,15 +4633,15 @@ "60a5d6b5624fc995f6807d15e66c5a5b6bc86dc212e1745ef8bef3f5dc15c3df": { "c3d809b05c72707e6bb1947b6db7f23f641f83155cd0f83a5e6deedee8d07adc": { "jp": { - "updatedAt": "2025-12-29T16:46:14.143Z", + "updatedAt": "2026-01-06T14:17:57.395Z", "postProcessHash": "e88f7f99394e8a814600d55fab7b7cb28f91cc3288b88e611d9a79fdfe947ff5" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.137Z", + "updatedAt": "2026-01-06T14:17:57.386Z", "postProcessHash": "20bdcc381d83b27f0cd36eeeb114197041262306f5582ac43b80c16bb3041d53" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.136Z", + "updatedAt": "2026-01-06T14:17:57.385Z", "postProcessHash": "1665fd8e8be66e5286e7e3730b43cd1e965b44b65b2abb2b8df647143a1df4c1" } } @@ -4635,15 +4649,15 @@ "65c3d5357d49f1617e6e959d8e29071102eaf8d0d9e4d1c2fb7cad70b6173a35": { "4cc1991c7b87b22d25ccb176e3b79b021cdde65ce0a2f2e4414efe519cc65f89": { "jp": { - "updatedAt": "2025-12-29T16:46:14.064Z", + "updatedAt": "2026-01-06T14:17:57.303Z", "postProcessHash": "9c4b7cf49af9808367898a8945258fac0a8d000b5cae8a04fca6602940b73432" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.056Z", + "updatedAt": "2026-01-06T14:17:57.298Z", "postProcessHash": "75618e441b5cba42230dc889bb71d42822df9ce1c732c6588fc63bfd987f4a84" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.054Z", + "updatedAt": "2026-01-06T14:17:57.297Z", "postProcessHash": "85b604079886b71de7df3468b4b21db9dcef82023aabd6d790e7fff7a8c23d71" } } @@ -4651,15 +4665,15 @@ "6e5e66ee5bbbba58fcfeffbe0603dfd55d38dd278fbff14d70aa5595ee971bd7": { "c4a33214adceb28be9e704611bd58cf7f2b17ce705ec29ba0ffd552d82a3d73f": { "jp": { - "updatedAt": "2025-12-29T16:46:14.135Z", + "updatedAt": "2026-01-06T14:17:57.384Z", "postProcessHash": "7934894812ab8dd37af9fda996912f128d15b5ef4974832153a9e5734e8a723e" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.133Z", + "updatedAt": "2026-01-06T14:17:57.380Z", "postProcessHash": "aa6c58538c24ad5230c56e2539ca3b47a4c02753be3c3df8bcb0252b301c7388" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.130Z", + "updatedAt": "2026-01-06T14:17:57.377Z", "postProcessHash": "ae5911f0723bcd9c07a8be53f50176547b8064aec1e21158a03b40fd1918cf7d" } } @@ -4681,15 +4695,15 @@ }, "17e29c38e3be78f2a8bcd084db596852e423b3117a90f37cc102d0efeec58011": { "jp": { - "updatedAt": "2025-12-29T16:46:14.230Z", + "updatedAt": "2026-01-06T14:17:57.533Z", "postProcessHash": "d0ea350fef1441e232618687450ba826fe6ec2e79e724c66f584cfdfc1ed7a42" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.230Z", + "updatedAt": "2026-01-06T14:17:57.534Z", "postProcessHash": "75ad5d204baff94bdc4f1917847fb09e0cca05671c1b78f6d9e33f142894a639" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.231Z", + "updatedAt": "2026-01-06T14:17:57.535Z", "postProcessHash": "52731b74c99099e8961a6c50ba296e7cb98c2f79bf24f11ff846b02691dfb322" } } @@ -4697,15 +4711,15 @@ "907c6e7bab21d938402f694e7407939915297c82eafd1730100c830df4918778": { "c3a2fac6bf16acdaf76f1ef65dc3317e37696c35df4e8526e1bb887fa5cfdeb2": { "jp": { - "updatedAt": "2025-12-29T16:46:14.134Z", + "updatedAt": "2026-01-06T14:17:57.383Z", "postProcessHash": "aa78ebda4b74f413aea7558aa44924094f6130ccf074966e72a9fbef35639e67" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.134Z", + "updatedAt": "2026-01-06T14:17:57.382Z", "postProcessHash": "d686717d86bd8df1da7b8e8a51015db018b7f39af96a32de178ffd0fd48b91aa" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.137Z", + "updatedAt": "2026-01-06T14:17:57.387Z", "postProcessHash": "444956a8bc2aaf6d366dd649c4aae26166db62a77e0fd05ddb1be3e80d6828ce" } } @@ -4713,15 +4727,15 @@ "9840f3c84ffc8a8f881de9eca8454a7e8de6c5bd5c30b6a27784816805453183": { "491cb45d3cfae94c2b0cdeaaaf82b4ad9d2198ed681060717d4f79378fc92714": { "jp": { - "updatedAt": "2025-12-29T16:46:14.142Z", + "updatedAt": "2026-01-06T14:17:57.393Z", "postProcessHash": "94db1353c16cb1af7e481e37d53606c66deadf6ce21d885f493ecf19416cd601" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.144Z", + "updatedAt": "2026-01-06T14:17:57.395Z", "postProcessHash": "e8d8735c23e9f38886189fe5e7406e5127e9ec027759c969ab66864c7dc124b1" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.129Z", + "updatedAt": "2026-01-06T14:17:57.377Z", "postProcessHash": "7b3a5a9e929fcafc336f7ae5f7a409b5cb2917b782d57c99fada20da41d666e2" } } @@ -4729,15 +4743,15 @@ "acee1d54d44425817e527bc2a3215f623d6ebd68804cdb7f18541efb76fb830f": { "53b8019634b145bda892aa14cca4d68066dd9ed1223e68c1450a60c3d6af3368": { "jp": { - "updatedAt": "2025-12-29T16:46:14.131Z", + "updatedAt": "2026-01-06T14:17:57.378Z", "postProcessHash": "72972c6ecf003db1d4784ae9ef4696cc86677e0ea8dc40467b07246f6bdf6d39" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.146Z", + "updatedAt": "2026-01-06T14:17:57.398Z", "postProcessHash": "a0a20793419c07b3555fbef9c0561eb1132fb3868f1f894452027d54b65f1491" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.142Z", + "updatedAt": "2026-01-06T14:17:57.392Z", "postProcessHash": "85ac1bb864fd45919f48fdf26181cc62e85e7aaec4d55a3dbcecde7bd0aeb101" } } @@ -4745,15 +4759,15 @@ "b66cad86246e7e672bea77de5487ab3238a0cbd0d829ebb54fd0e68f3cbcee09": { "9cf089c5df430ee74bddf608da84394fafc963e1bd03cd0e94fe2c6c179ecce7": { "jp": { - "updatedAt": "2025-12-29T16:46:14.133Z", + "updatedAt": "2026-01-06T14:17:57.381Z", "postProcessHash": "19d2a099f9a5950aa401e46fbd7e7e967ebce0c3b42817bfe21ea033cd251490" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.135Z", + "updatedAt": "2026-01-06T14:17:57.385Z", "postProcessHash": "36328d3e8561914a8d70fc1b9b899f3a15866373c51ea3ad15ee8c9519f0cd1a" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.144Z", + "updatedAt": "2026-01-06T14:17:57.396Z", "postProcessHash": "1a4de4bea2534121914e1c65cd6f6f2902f347742d4fa521459c060565945cc4" } } @@ -4775,15 +4789,15 @@ }, "751315298dae9e40fe35460e3e1ceba486f92834467da7225ea0cfe2fd75b165": { "jp": { - "updatedAt": "2025-12-29T16:46:14.166Z", + "updatedAt": "2026-01-06T14:17:57.422Z", "postProcessHash": "0ae58490e41d5ec7b8c021826436df1cf79ca119020a7714a67ad73862fefb91" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.222Z", + "updatedAt": "2026-01-06T14:17:57.424Z", "postProcessHash": "bd0e118e8488be66d32f5b0fd69aa6d6565cdf93cfce029773b6438406656e9d" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.222Z", + "updatedAt": "2026-01-06T14:17:57.426Z", "postProcessHash": "dda778f0ec4a525b92d2eb0d6e4553707b1c00d04e2585f7769b66425e38a1c7" } } @@ -4791,15 +4805,15 @@ "cbf8d771d3e60af84970fcb0a9a3b216e9fa9d6604d8b59222876988a0f9a23c": { "05073dfddb68903600de4505e9ef4203c4b4f5979a1ad1001059a7e6a6c36293": { "jp": { - "updatedAt": "2025-12-29T16:46:14.145Z", + "updatedAt": "2026-01-06T14:17:57.397Z", "postProcessHash": "ffe5981ebc4444742f75e8412d4025ab7b6f6853d036f1f165a538af6def4921" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.129Z", + "updatedAt": "2026-01-06T14:17:57.376Z", "postProcessHash": "27d157dc9febd4e16ba59231ddfd3fb2c108f6d1e9a808cefb7455ae687f2cb5" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.138Z", + "updatedAt": "2026-01-06T14:17:57.388Z", "postProcessHash": "33fa33056cc431f63461f682fe3fdeac57034d57df18236716afd96e19f2c6e1" } } @@ -4807,15 +4821,15 @@ "d259b209c3435b62d81021240a05134c0eea6d95e4ac914c175f7122e5bcdbb9": { "2336e34b998efec4cc83f0643bbd8fc97a4fb0afa00c3343a22139925e777a12": { "jp": { - "updatedAt": "2025-12-29T16:46:14.052Z", + "updatedAt": "2026-01-06T14:17:57.294Z", "postProcessHash": "979160380a732f3dea2c77fc776ac8a98fcd0281dd3f3afcc9ea50c2ee3c04f9" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.153Z", + "updatedAt": "2026-01-06T14:17:57.408Z", "postProcessHash": "e6f606bf4611cf12ede433ad8309cdd337fe1a7bbe89f06dec5513abbf347388" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.153Z", + "updatedAt": "2026-01-06T14:17:57.407Z", "postProcessHash": "9477d23637014ec95991fd8a0e62a67646b10dffc01d7ac8e7b54f8efbc7d133" } } @@ -4823,15 +4837,15 @@ "e01a6937e1ad5b11af43515d1a1e66db9e6168b75b5528ca1b7b9d7f3c195868": { "2c6fc2afd47aebe8d703b5147ab0245326aebcd6663db747fdeae29badcd7caa": { "jp": { - "updatedAt": "2025-12-29T16:46:14.152Z", + "updatedAt": "2026-01-06T14:17:57.407Z", "postProcessHash": "b60d15876008bfb881cc7a675ffd2884daf67cc7a044c24bb295cb8b7b0c0cbd" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.151Z", + "updatedAt": "2026-01-06T14:17:57.406Z", "postProcessHash": "1405668d46de36198b36e9aa44d51a265679f806f0cdedbc2c4e991c5d12d98a" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.150Z", + "updatedAt": "2026-01-06T14:17:57.405Z", "postProcessHash": "277ccea0645cf25902d540408f1a1dd9aba1ff33b97bf4ffcd6a7e44fd9f4ef7" } } @@ -4839,15 +4853,15 @@ "eac642db564baa4ce1f75ca03dc5a23f44db2e588ad4390c7c3cb746e81f695a": { "4bcedeede08560e01db76c1f8f3c871bd8e8aebd281853aeef86bbc3841fd68e": { "jp": { - "updatedAt": "2025-12-29T16:46:14.138Z", + "updatedAt": "2026-01-06T14:17:57.388Z", "postProcessHash": "1b2f8d66e7ae16772e969f1037ff20fb84172e15604299d73707346fc0a48560" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.140Z", + "updatedAt": "2026-01-06T14:17:57.390Z", "postProcessHash": "0c9ab96dae93b6505e17cd7c22f6750b075c72d405547b841789eaee04edb086" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.133Z", + "updatedAt": "2026-01-06T14:17:57.382Z", "postProcessHash": "99f9557e87f09bd2946feefefc7f5bad26452348453cfb0b9cc2af9f7d495f36" } } @@ -4855,15 +4869,15 @@ "f5ec5f1c0bd0776f9a2a7bff868a443e7cbb090161004e7da40277d9999a5e0f": { "1d3bbb34461ec824f8f745ff89fbbe7930bf3ca75ffcf25386fa8e097845e074": { "jp": { - "updatedAt": "2025-12-29T16:46:14.128Z", + "updatedAt": "2026-01-06T14:17:57.375Z", "postProcessHash": "276a47a8cea0773d7ab1b7faf852327042c190cd29494d2b5f11815c2abb2eca" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.140Z", + "updatedAt": "2026-01-06T14:17:57.389Z", "postProcessHash": "4af16cef9597591b53ec296dc5ff9c0c72d9356aa144fbf32f1501d21e27e890" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.141Z", + "updatedAt": "2026-01-06T14:17:57.391Z", "postProcessHash": "8a01efac34375649fb0f6a70803cc5e4fead16bce8971298a9aa4015c15564ac" } } @@ -4871,15 +4885,15 @@ "faf7c1208ac6cebd805f74b867ef0352238bb675f4e78c25744706e43a0bbf35": { "067bee4f308eb8fb0ee42187bb88647c1df461930299cda269dae6be1e92e2b2": { "jp": { - "updatedAt": "2025-12-29T16:46:14.056Z", + "updatedAt": "2026-01-06T14:17:57.299Z", "postProcessHash": "f938803cbe858f13e1e3c804babe5a470022286a8ba78fb3df063111308f3ff1" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.057Z", + "updatedAt": "2026-01-06T14:17:57.300Z", "postProcessHash": "523f310d175f1ab9fa687562729f8d30eb2e3cb0a282bcf4ada6c0f97c6ac6e0" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.065Z", + "updatedAt": "2026-01-06T14:17:57.303Z", "postProcessHash": "3c06dee87ac93a95d760285d044f458ab0f18382e3a7720ae8013912c7d07198" } } @@ -4901,15 +4915,15 @@ }, "dfb2f66fffa59066e909a7b1374ed29c9242e633753282ef36fd1d63de16d2af": { "zh": { - "updatedAt": "2025-12-29T16:46:14.227Z", + "updatedAt": "2026-01-06T14:17:57.529Z", "postProcessHash": "989bca81a930384030114075ce221278b0d672b5688481bf6ed54d39fec25371" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.228Z", + "updatedAt": "2026-01-06T14:17:57.531Z", "postProcessHash": "e0e7584481826dbf33cf840d6a49c68c1c9e987fa31e6a03c34389e520692dea" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.229Z", + "updatedAt": "2026-01-06T14:17:57.532Z", "postProcessHash": "6d3686cc750c3cc662b6d76cf9bf65cc11d10ec8a5504430752b915375ae9498" } } @@ -4917,15 +4931,15 @@ "050352a11ca817f5bab4911101cd95e7ae7dc5d8954cd551028380c728411a57": { "6cc2916b976989ba2663dd50f541fbe9751c56f179ac300fc3381ca3479e452b": { "jp": { - "updatedAt": "2025-12-29T16:46:14.200Z", + "updatedAt": "2026-01-06T14:17:57.490Z", "postProcessHash": "31cb97e115c86d6df8ee075bab5a0ec8b992e018b216289047a01479b1577adb" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.196Z", + "updatedAt": "2026-01-06T14:17:57.481Z", "postProcessHash": "44dececa7198dc3d0911bca5daec67ae7b2590570f6d71e38529f73172fbac31" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.191Z", + "updatedAt": "2026-01-06T14:17:57.394Z", "postProcessHash": "2abf8525aee7e31ef3a63e1aba1ae823968453eac8d85d8b7d9fea92693f4a54" } } @@ -4933,15 +4947,15 @@ "09a42960aa106a95a5cbe49be7b12f9120aefe3ef067ddb1c1b026342239f3be": { "eb1dc019fb90478f30509956caa9e4f342a6e2b031332733edb6a6b927bc71e8": { "jp": { - "updatedAt": "2025-12-29T16:46:14.192Z", + "updatedAt": "2026-01-06T14:17:57.473Z", "postProcessHash": "5e9c0943fd0fbd8c76d30a8bc627ac2c230a612d30c370759f6231aeae30d4ec" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.191Z", + "updatedAt": "2026-01-06T14:17:57.466Z", "postProcessHash": "fadfce066fd576a2db9608e65c1dabb71cec5cfd7ed9792107e42b51073c16b6" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.192Z", + "updatedAt": "2026-01-06T14:17:57.474Z", "postProcessHash": "0a8c2b6c9429fee97a046b8833986f5a2022e41da004f3d892cbf07b0805d1e5" } } @@ -4949,15 +4963,15 @@ "12be1e0f0e04bb9eee1f814b983cb24150e4b9b4f2e86f8c6cf33f7dd28edf16": { "25966e125c5b0d0e09bfbe0bb6c4eced38f8afae86050666be245c00bb7f240c": { "jp": { - "updatedAt": "2025-12-29T16:46:14.124Z", + "updatedAt": "2026-01-06T14:17:57.449Z", "postProcessHash": "28204b8d3e153ad79aca614c2861145b633f0ff7810670fe15fedcc5fb814d8e" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.123Z", + "updatedAt": "2026-01-06T14:17:57.370Z", "postProcessHash": "2402447a6648dfc155775d180bfa13a2d7815d7128e10343566ed1224184cb1c" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.125Z", + "updatedAt": "2026-01-06T14:17:57.449Z", "postProcessHash": "4f513a07df54a0fe185d7f2080bb909bfba5b1a79319cec6cc03465a8eabb764" } } @@ -4965,15 +4979,15 @@ "130f0cbb1d6c82f8ae457bc5d3dfde8dafaeebcec17cebf6c1ec40eb99cd1392": { "4b5db766a70f9027101f584180002e5dd6f63ed99aa3d036eafd61435ddb4812": { "jp": { - "updatedAt": "2025-12-29T16:46:14.219Z", + "updatedAt": "2026-01-06T14:17:57.516Z", "postProcessHash": "de23b6b1f9d61e7f395f10fa1cf6df9f4f056d6cc28e2564ae61cc88a7e3f5e3" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.217Z", + "updatedAt": "2026-01-06T14:17:57.513Z", "postProcessHash": "2d993944c35b3d93e53682490dec26434d4cd10079212cdae395294bdf70b2c9" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.122Z", + "updatedAt": "2026-01-06T14:17:57.369Z", "postProcessHash": "7c22d7b7488a186600e809101921059e9a0cee9e74d30dd2c38ca0a6a18bb271" } } @@ -4995,15 +5009,15 @@ }, "8050769eca72cdf3b84e88683be6a604653500785ada33798d6056e261a1c468": { "ru": { - "updatedAt": "2025-12-29T16:46:14.222Z", + "updatedAt": "2026-01-06T14:17:57.519Z", "postProcessHash": "277f7b91099af62c64cb5a1609b2fe8557e80a6a307dc99b9b75c881268e3d68" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.223Z", + "updatedAt": "2026-01-06T14:17:57.524Z", "postProcessHash": "41332a0f0cd1f019e1d1caf9356e6039687f7dcee3ee12b7c1fb106d4035c04e" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.224Z", + "updatedAt": "2026-01-06T14:17:57.525Z", "postProcessHash": "bb41d7082d99411a9ffe81803934312c068a9499d7e95f9e3cb927fe2c837bb1" } } @@ -5025,15 +5039,15 @@ }, "60b864e28d9fe3bd9dd27f742fbbbedcfc039056c6e93be3c998a2e6f0ec7fde": { "zh": { - "updatedAt": "2025-12-29T16:46:14.225Z", + "updatedAt": "2026-01-06T14:17:57.526Z", "postProcessHash": "a5772f70a06a323fbefc17dd3c39238451d1b8b71fddcd340057d234ecb5fffa" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.225Z", + "updatedAt": "2026-01-06T14:17:57.528Z", "postProcessHash": "dad2f461e9c481e607c29e25309bf632517cdd67afdacdd75cbb9a3064d75790" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.226Z", + "updatedAt": "2026-01-06T14:17:57.528Z", "postProcessHash": "7ddb27dad264d52de78248d49b27f8dafc6747208719a5e5affc39de378d75e3" } } @@ -5041,15 +5055,15 @@ "40a262fc5e1c5d47aaac955e5d56710c58b184834fced0236175665ec187d93f": { "d9751428d997f059562f26e9bd7ac68c276f0bbf0c513551408f0513601e3d16": { "jp": { - "updatedAt": "2025-12-29T16:46:14.208Z", + "updatedAt": "2026-01-06T14:17:57.500Z", "postProcessHash": "335674181cc56907dfbbd944fa2b0bbd9bf3e6944669c333fb7f96195b45c96a" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.214Z", + "updatedAt": "2026-01-06T14:17:57.510Z", "postProcessHash": "a77cc700167153235d1ea2b6cc99feb1ae7daf924ae602aa1fdaa581b7089186" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.205Z", + "updatedAt": "2026-01-06T14:17:57.497Z", "postProcessHash": "e6626adf94879e2c0ed16cabe1a1f28c50779732031b0f70ca10bd8f29b63259" } } @@ -5057,15 +5071,15 @@ "46dbee6938843b18fe050245cf7379885770dc6f9f8ed8013ccf5222d1c306d9": { "1c26addde8215daf58446cd375e5e150c2d5ceeefaa8b2acfdb9c9c8afb9953d": { "jp": { - "updatedAt": "2025-12-29T16:46:14.189Z", + "updatedAt": "2026-01-06T14:17:57.463Z", "postProcessHash": "323f08c92f947e72571a009a9233f56518863ba11c6cd5d9dd898b9cd23be5e9" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.194Z", + "updatedAt": "2026-01-06T14:17:57.479Z", "postProcessHash": "86592071e80f8b766ae09c676ab51c3265fb0919fbdf379581fce9e2591edf3d" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.195Z", + "updatedAt": "2026-01-06T14:17:57.480Z", "postProcessHash": "ac2e40f9260fc567245862c2594cbfe54d95f16f442b558d58f28d9a69378e03" } } @@ -5073,15 +5087,15 @@ "4c1ad3942b4184430a7d30de866388373d48c1a27718ee8712e351668b5b2c7b": { "7f0ff3de1f2f3ef36f7c5bcbadc179455a3ae55c4a9e388b8148b18a4dfe6b7b": { "jp": { - "updatedAt": "2025-12-29T16:46:14.145Z", + "updatedAt": "2026-01-06T14:17:57.396Z", "postProcessHash": "addc190f8cc3e35a1bac2091626f5434a10740e481f66bd2c42cc6a0d32263ef" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.147Z", + "updatedAt": "2026-01-06T14:17:57.399Z", "postProcessHash": "5d44da067462a56e2f26d6826d89a733ab65dbb45ada5182273cca85ef86cf77" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.148Z", + "updatedAt": "2026-01-06T14:17:57.401Z", "postProcessHash": "4d5b95562b7f5156210e8c5086492b791c40e650a267092ae070b1c07441bb8a" } } @@ -5089,15 +5103,15 @@ "8d0001685270931055d17a8eb50155f983dcec73c892d71e3bffe9004c1cacd4": { "c26606f99e8098f4ed8f1e29ccce89dec0e9cca96fa2536b375d31a3b9fb8036": { "jp": { - "updatedAt": "2025-12-29T16:46:14.215Z", + "updatedAt": "2026-01-06T14:17:57.511Z", "postProcessHash": "b44273e11f67943672ce36a3b04b3c51e3b9f0a1dc88cd8979c79d7c55cf3ee6" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.195Z", + "updatedAt": "2026-01-06T14:17:57.481Z", "postProcessHash": "aef07e8400202fd1faae12221f0b80f927ed5d397e006cbeb42f9f59bf18d5e6" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.217Z", + "updatedAt": "2026-01-06T14:17:57.512Z", "postProcessHash": "54d10413eb6dd938c65b2855428b63c5b51fbe331f4f3ded2a1f4bd73a5d2fcb" } } @@ -5105,15 +5119,15 @@ "ac35f8f55935d4ecd0e3d7d6c02b398d04b18c830570d65f6551b9b4ff45bb74": { "09c8a0f7de8fedbc086a20b8603b6ad2439fbb800e29c34ecc840908cfa41148": { "jp": { - "updatedAt": "2025-12-29T16:46:14.183Z", + "updatedAt": "2026-01-06T14:17:57.453Z", "postProcessHash": "90f2c4922a7f86a0fd024dbe4bb3dbb6482f25b7f08f94137e4b69dae26e131d" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.187Z", + "updatedAt": "2026-01-06T14:17:57.459Z", "postProcessHash": "53079436557cce2b97757a30e5615dabf3a0aed3dff0ef70f5e4229ad32f8c8f" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.197Z", + "updatedAt": "2026-01-06T14:17:57.485Z", "postProcessHash": "4f0559149c4057d0830afc58da4ee78644deb51f97a1afe4423ee45c04971872" } } @@ -5121,15 +5135,15 @@ "b949b99783c59002d6d1611f53562639a71143cfb90e027a848ef13b70877e4d": { "65ed1ef87fa32188d6b83d9345586ca7be9701ab437946eec188e8d638e56014": { "jp": { - "updatedAt": "2025-12-29T16:46:14.220Z", + "updatedAt": "2026-01-06T14:17:57.517Z", "postProcessHash": "a5571d45ca80d705e4448ec3927b183e96c92f9d9d5cf603e0a81e4d8f62b5b2" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.221Z", + "updatedAt": "2026-01-06T14:17:57.518Z", "postProcessHash": "31356fd9f34fc918170dc997451a273cffd5913f6c706689d2855cee203ce1e1" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.218Z", + "updatedAt": "2026-01-06T14:17:57.514Z", "postProcessHash": "d57acea52769c966a7eaac74215e1bc92a66ec656a7baea48702966f43488201" } } @@ -5137,15 +5151,15 @@ "cba0abc4ab65e9d030139163304a053ef5b1fe651a26215e77c9e551fe3b8191": { "62328876676efd5312772f4062f7342ab3fbcced0fec39177d7de554d93c9005": { "jp": { - "updatedAt": "2025-12-29T16:46:14.132Z", + "updatedAt": "2026-01-06T14:17:57.451Z", "postProcessHash": "f46a0be96af319e5c6ba45db98bb06c87c070f23f00ca363341afe0d287ea871" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.184Z", + "updatedAt": "2026-01-06T14:17:57.455Z", "postProcessHash": "65d62d010947a43a854c0a51814366547f7d9955f8fc0cb1366f39b894f6fc6d" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.186Z", + "updatedAt": "2026-01-06T14:17:57.456Z", "postProcessHash": "e89140cc0ad6b29daf0caa2fa47312aa32e8115460c78513f1b9727d4203bbff" } } @@ -5167,15 +5181,15 @@ }, "417138c623a6ab3a7e108e95d26841517e0a6f2cfb2e923277b1e132664338d5": { "ru": { - "updatedAt": "2025-12-29T16:46:14.159Z", + "updatedAt": "2026-01-06T14:17:57.414Z", "postProcessHash": "48ff1f4c246a7e1e011a4081461a3c13b5739054a1c1b68935e56735c67d2c94" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.223Z", + "updatedAt": "2026-01-06T14:17:57.522Z", "postProcessHash": "0e8377dcce6afd83e7d934a3514b0553b2e0a4f540bd7a63269d8f06539392ba" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.224Z", + "updatedAt": "2026-01-06T14:17:57.526Z", "postProcessHash": "1d419814da35efb781819f6e2a67c8212dbe585aa289c634320bdbfe2158e07a" } } @@ -5183,15 +5197,15 @@ "cc4204c3e95911221d74a7265dd2e67515e9b01a1b9394863f065398c955594d": { "9538d72bcd29de25ee9a900cfa42747f8ab0f5767963a08a3028ab7f3b189a13": { "jp": { - "updatedAt": "2025-12-29T16:46:14.209Z", + "updatedAt": "2026-01-06T14:17:57.503Z", "postProcessHash": "e874d49af264bf57db54e1574c960ace038c6a37c3529e7c115ead374d411956" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.218Z", + "updatedAt": "2026-01-06T14:17:57.514Z", "postProcessHash": "da516ebe8ab8d901f65131e597098bbbfa7b36b883ea4e32d5089850ab3d01e7" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.219Z", + "updatedAt": "2026-01-06T14:17:57.515Z", "postProcessHash": "d4ffa09b57bb7fa0ba926a843c6769a69b0574b758c2eddd4b5dbd8770aff7a1" } } @@ -5215,15 +5229,15 @@ "e979381df042f92438f9f485ef68a9901f7ebe9aae3e09ec14dd65b67c2d842d": { "67bbc03e619fab0b6f99efec8b0f2fb38df1395be3d50b3ed225f0da4b3f4452": { "jp": { - "updatedAt": "2025-12-29T16:46:14.212Z", + "updatedAt": "2026-01-06T14:17:57.506Z", "postProcessHash": "2812267589991afcd4b28ac4f62e1e6f7284f428f67464fed6138f06f66a9e44" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.209Z", + "updatedAt": "2026-01-06T14:17:57.502Z", "postProcessHash": "b70eedf1fbd2f35bdd254fc7c8b7bb0bfc397dbbfac60b3673544e60f90506af" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.196Z", + "updatedAt": "2026-01-06T14:17:57.483Z", "postProcessHash": "4f7c4554808408c947fa2b80faca72199ce22ec147a23903ffa928b708403332" } } @@ -5231,15 +5245,15 @@ "edbc39ef9c56e581bb84c8896ac7b1374e3d19f83b554328b6e8d3d38fe01125": { "1f975f6dea1c15645a72a9eac157d5d94cb767124fa4ad2e367bc8233d6b225f": { "jp": { - "updatedAt": "2025-12-29T16:46:14.202Z", + "updatedAt": "2026-01-06T14:17:57.493Z", "postProcessHash": "71d6e9aaf4d332a5f1486c816d642a9309ba883e3e989dd0a61ae9ee926b961a" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.121Z", + "updatedAt": "2026-01-06T14:17:57.367Z", "postProcessHash": "eb2de7b75beb7c2cc68c4395815aa53c8b0a5fb7a2e862439b36d9414cf6a713" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.211Z", + "updatedAt": "2026-01-06T14:17:57.504Z", "postProcessHash": "2eb187f77655d0bd1ff093c4c3e5bea442e74b5e7da6198b58e7f31220e6c650" } } @@ -5247,15 +5261,15 @@ "fbe0f20b7a71a4be3f802731a84f0eda5afbf565f744180f030a4474dd0b950a": { "acb4ae581b304b32468cac562d7016a47f6ce4fe713075ab12bd276f5d04a0cc": { "jp": { - "updatedAt": "2025-12-29T16:46:14.207Z", + "updatedAt": "2026-01-06T14:17:57.499Z", "postProcessHash": "fa1537fb5d23d3b0217839d785c2663cd21a95c33c65ed888df46738ba6e5d8d" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.193Z", + "updatedAt": "2026-01-06T14:17:57.477Z", "postProcessHash": "3d928a3c66b7d878755fce4ce44d10ab4629339407faa2524f7e60ff884247b4" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.186Z", + "updatedAt": "2026-01-06T14:17:57.458Z", "postProcessHash": "530c753422a5c814ffca67d47fca97502b949106eb2dd75bbbd63be8737cfe79" } } @@ -5263,15 +5277,15 @@ "fee41c1b851550b4068c1cdd9e5a18a829a2d27697fe22a9678a8c0d0e87836f": { "5d6d7dab6e54977464b77d2be0fe3967209334b0d1e2cf141000a53098cdb64e": { "jp": { - "updatedAt": "2025-12-29T16:46:14.212Z", + "updatedAt": "2026-01-06T14:17:57.505Z", "postProcessHash": "3f06fa43f8aebcadd6b8eea081651bdf6b5d4ee71ab3d70b72e08933c87d7bf8" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.220Z", + "updatedAt": "2026-01-06T14:17:57.517Z", "postProcessHash": "e785b629d37f65da010ae140529d0c73074b9b5059052339aaae5316f7d46795" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.216Z", + "updatedAt": "2026-01-06T14:17:57.512Z", "postProcessHash": "673053edd746ceb7a82487294606d047bc48675f3a5c70456da16632c696c62e" } } @@ -5279,15 +5293,15 @@ "00f878a9534e344ca38d2f13a2d0b58a40257c9f7c696adfbc337ee5148c5894": { "d7ae2149e8a1eca5c76f2e499f9ddf19c90a2c840a153acd2e820b96f79c4e3d": { "jp": { - "updatedAt": "2025-12-29T16:46:14.251Z", + "updatedAt": "2026-01-06T14:17:57.566Z", "postProcessHash": "20028dde58e42815ff1099a7313d6b5c0c770422bfbf5a8a5cdddbb176dc91d7" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.251Z", + "updatedAt": "2026-01-06T14:17:57.568Z", "postProcessHash": "921f9f0098603fc03c270556fd07614fdbd58f1fdd04a64e20d4aa00965b9123" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.251Z", + "updatedAt": "2026-01-06T14:17:57.567Z", "postProcessHash": "08d0f6dea2bde99c1b7660082a73cb0134c55f3b1d972aa88a6cb3204f2de193" } } @@ -5309,15 +5323,15 @@ }, "1682b189d242cd9cd914dc5d2bfbb0224a3b1d46d9221c4a08445f513623ac64": { "zh": { - "updatedAt": "2025-12-29T16:46:14.284Z", + "updatedAt": "2026-01-06T14:17:57.614Z", "postProcessHash": "b2fc8cf92950a37b1cc0756ae429411bc732138b9fe8a6fd514139b87078203f" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.284Z", + "updatedAt": "2026-01-06T14:17:57.614Z", "postProcessHash": "7b5f5be02c0ca72d25527a98ccad51defd4d5fc2fa22f4fcde3de24225246bbf" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.285Z", + "updatedAt": "2026-01-06T14:17:57.615Z", "postProcessHash": "e1961474e75d1e49c914d0f00fd477895594b1e451b1611ea80b2affb829146a" } } @@ -5325,15 +5339,15 @@ "42014f03b2e5e17b4e9d8b4cd80cfebbf2e3bca570177e4a0f46c977d992d00b": { "1713044e3cccefd79213a1fea6cb08cc00fcb5a3cdf023fa1b265af8ff27f097": { "jp": { - "updatedAt": "2025-12-29T16:46:14.210Z", + "updatedAt": "2026-01-06T14:17:57.503Z", "postProcessHash": "860ffc7cef6e14995e9d34d344354cbb41eb050b047bc49ac229263ae4c74a2d" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.204Z", + "updatedAt": "2026-01-06T14:17:57.495Z", "postProcessHash": "99a46ea682373599f8cea5b2681a91c891467248eb7ffae4aa0407640ddb40ab" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.247Z", + "updatedAt": "2026-01-06T14:17:57.560Z", "postProcessHash": "633d85a864c7ece89638e85962f5f3162e2e6a0103261aa6d6549153c4e1f1bd" } } @@ -5355,15 +5369,15 @@ }, "7d88267c0a672044c4e2fe74165d59fee38051404b6b4d67faf87ba0ae59e4e5": { "zh": { - "updatedAt": "2025-12-29T16:46:14.277Z", + "updatedAt": "2026-01-06T14:17:57.605Z", "postProcessHash": "46f9e7ce5e478f93a0eba81830dd1d118a7611835f24fa8e0f6d071cd732c21d" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.278Z", + "updatedAt": "2026-01-06T14:17:57.607Z", "postProcessHash": "6e1b0f1dcf578ad933eb39c49b4db5c6ad46831caab965694e669e90e07f4679" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.281Z", + "updatedAt": "2026-01-06T14:17:57.608Z", "postProcessHash": "92fa1bfa1c093558bcea5e2bd6a2825c86a5185f52ae4233b9a5f1ffcda36ae5" } } @@ -5371,15 +5385,15 @@ "4ec20679bc9c3514801ed7e21c4718d82ab75932df1a07eb0572f662a5730d98": { "86d2c497abf25c94fa112b01bc6df68914ef1bdec7669aac57b740da912b33d9": { "jp": { - "updatedAt": "2025-12-29T16:46:14.198Z", + "updatedAt": "2026-01-06T14:17:57.485Z", "postProcessHash": "ce1327955038b91ccac97eecac51643a6711d6be23ba6a68f595a0b5019cc121" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.182Z", + "updatedAt": "2026-01-06T14:17:57.450Z", "postProcessHash": "8d8a6d055d9c476b2a373ba0019500e56f90e11c7ba4c1e799fe8d94238d3078" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.198Z", + "updatedAt": "2026-01-06T14:17:57.486Z", "postProcessHash": "f788a8c8038a4f8a85e8ca4676dd899a73f9aaa2edd08d98f869ed80e9ba2964" } } @@ -5387,15 +5401,15 @@ "5a79d1e559ea1ad9f3ddadfdb2a43b047724a8158973368a06de949a009e4a82": { "f10bce44ecc97a7f7fbb9e4dd3135a3443539faf27799c8357608d1f78f0ea0d": { "jp": { - "updatedAt": "2025-12-29T16:46:14.213Z", + "updatedAt": "2026-01-06T14:17:57.507Z", "postProcessHash": "eeda63f8efd214bc3977fa28c7f4e28872c2bcefd407263994ed702fb0bf28f5" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.200Z", + "updatedAt": "2026-01-06T14:17:57.488Z", "postProcessHash": "23ddfe081149e3d29e3a4a534d110f6e339277c697f3c49131dac93bfc799fb4" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.201Z", + "updatedAt": "2026-01-06T14:17:57.491Z", "postProcessHash": "4e8fb172161fef82ec53f20d1f60843639451c46db2fdece12f9c9ff3d431ea0" } } @@ -5403,15 +5417,15 @@ "5ea715da4571fccc329fc033348aeecf183417b55c28bbdac60956aa1debf704": { "2a8b05277ff4a9cbe8def769d30fe9965fd38e380148a45171afc696a707de97": { "jp": { - "updatedAt": "2025-12-29T16:46:14.211Z", + "updatedAt": "2026-01-06T14:17:57.505Z", "postProcessHash": "31f2183901a97ce7ee8de6ba71af576afe2f8f7ff35b214bd874181c76aed3db" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.199Z", + "updatedAt": "2026-01-06T14:17:57.487Z", "postProcessHash": "f3edb56226e3441c0d545e063c73c412257daf41916cac0e5e3aa479c2ef9ce8" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.245Z", + "updatedAt": "2026-01-06T14:17:57.557Z", "postProcessHash": "8fa117406f9827c64376e61898a01c68df2b92027462590b7e0b97085429ecc1" } } @@ -5419,15 +5433,15 @@ "6577565180fdc2dd6b58e525087f761a4a641e5fcccec17b8d198f112e8867a2": { "457a7fd8ab504d03ed723c9475bd87417db7fa6b8d538f336eab293e7c2db492": { "jp": { - "updatedAt": "2025-12-29T16:46:14.203Z", + "updatedAt": "2026-01-06T14:17:57.494Z", "postProcessHash": "a5b6a76266ac3f54703cafb4ea761e30db6c257186aa2cd8a67dda4ddb6b3384" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.199Z", + "updatedAt": "2026-01-06T14:17:57.487Z", "postProcessHash": "556aa2964b881428f3a6e9121aefcf9fa122756b90612c8903172c8f35741194" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.188Z", + "updatedAt": "2026-01-06T14:17:57.461Z", "postProcessHash": "22d078c82140e2aa58e9b0ac8b3511f3e7cf1b81884feb9cbe62ec00575e18c0" } } @@ -5435,15 +5449,15 @@ "65f86c7c3a06da5be6ca7c02d2ebc67707b92772d464e19a9f17a4ed1f5068e0": { "816a9dda53486f2f740142aa953a0c567c672d1d673898a9ad9493dd248c9c0b": { "jp": { - "updatedAt": "2025-12-29T16:46:14.183Z", + "updatedAt": "2026-01-06T14:17:57.452Z", "postProcessHash": "7e11ed0c5dcb0c6e76dc391775ef3e9c74d1a5e48a5004f371dda96f913e9623" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.185Z", + "updatedAt": "2026-01-06T14:17:57.456Z", "postProcessHash": "62edd7029884c10ee1282b11c818559ead4e77f96745f0fd1259fec0c4fd795e" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.184Z", + "updatedAt": "2026-01-06T14:17:57.454Z", "postProcessHash": "0b8436350b4cb1bc60cf44ffc071f14e2b4bee8eebf50f09a600c52cbd6b8171" } } @@ -5451,15 +5465,15 @@ "69e3ba4ff50b5b7c3475f46f967bf675b4e5a81f02e3546d810018e6a3fe12c7": { "d64fa7ded50ab81c30dff31ff460cf6ba0811be8f95127b0bbec04487a124039": { "jp": { - "updatedAt": "2025-12-29T16:46:14.206Z", + "updatedAt": "2026-01-06T14:17:57.498Z", "postProcessHash": "c8ea5ff8f6a13a5713821b334d02dcbdfedaafcd23d0cc994dbd511dd4d9c08e" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.193Z", + "updatedAt": "2026-01-06T14:17:57.476Z", "postProcessHash": "2c2d211edcf9ba814daff395f8081823e41a632cfbfd7bcfcff98a4a313e404b" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.247Z", + "updatedAt": "2026-01-06T14:17:57.561Z", "postProcessHash": "d72166388e47f3e9b3e45d44056f97abb59f7806839d7e510038630756cc78de" } } @@ -5467,15 +5481,15 @@ "741985413cbcc54cd08f4f04379dfece525dc97edf44e2f8df78b544f7dd91e9": { "2bd4eecf6148d08318f581143d8ed2830a034f2bd9d72c70252b27c1cf3654bc": { "jp": { - "updatedAt": "2025-12-29T16:46:14.203Z", + "updatedAt": "2026-01-06T14:17:57.494Z", "postProcessHash": "2d71b44d5e43b5634e4ceb7d6f43ca8576548c0915b51db1be795f601ada7df5" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.190Z", + "updatedAt": "2026-01-06T14:17:57.465Z", "postProcessHash": "90a4eab0ae92aa4fab9a2cc0d94e53763e7eab70104038936e5f63fa6fc2c742" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.205Z", + "updatedAt": "2026-01-06T14:17:57.497Z", "postProcessHash": "8595f00982e0133c1b7fdf88a7899a84ee3db48a306a467da9e7cb1cbe70b27a" } } @@ -5497,15 +5511,15 @@ }, "41a4eca2495ddaccb0d6f0f0492b3d8428331aff7aa86aec386aec30b9c53c04": { "zh": { - "updatedAt": "2025-12-29T16:46:14.275Z", + "updatedAt": "2026-01-06T14:17:57.602Z", "postProcessHash": "7ea2d96363b00c21bd586dd15cd527f89c1c9861e3fbdd6351952bdf648a8e8e" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.275Z", + "updatedAt": "2026-01-06T14:17:57.603Z", "postProcessHash": "4a215f44d9f5d4b22c0f15a94a5227c3439468eb0991139874aabe8b822f708b" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.276Z", + "updatedAt": "2026-01-06T14:17:57.604Z", "postProcessHash": "00ea9b97d3942638f8ed4e8c6f52b2fa714ee9f5fe3e81e622d27e40b602f7d2" } } @@ -5513,15 +5527,15 @@ "8a737109d61aff4ff62c3cea1b972f0a7863c8fef9c1f3658e42f4cb31df1392": { "132aab96d1afacf12308b65ac1af9345cb2b097664b24dcf5c773ca74a90c659": { "jp": { - "updatedAt": "2025-12-29T16:46:14.212Z", + "updatedAt": "2026-01-06T14:17:57.507Z", "postProcessHash": "3f7a168e74a7627fc7daab807134475e80e96c53ff165d65bed7d12a4331d8fc" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.197Z", + "updatedAt": "2026-01-06T14:17:57.484Z", "postProcessHash": "381fe7370fec56a1bb9ab42191478dd19ba64518aebc902c30129732651162f5" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.200Z", + "updatedAt": "2026-01-06T14:17:57.489Z", "postProcessHash": "383953701791a4c96b05846f7afca38e4f4a482c11a35ee1f48aacf559ddcb2f" } } @@ -5543,15 +5557,15 @@ }, "b93a8fc23058f234021d08d0c3e7e3c08ed968fc280c102ace4ff6ec4fb832ee": { "ru": { - "updatedAt": "2025-12-29T16:46:14.268Z", + "updatedAt": "2026-01-06T14:17:57.592Z", "postProcessHash": "fe2f17e21ba9265160dbae502766bbc3d6e5ec3be9603d794692e097c52657ac" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.269Z", + "updatedAt": "2026-01-06T14:17:57.593Z", "postProcessHash": "f1f70bbb3831fcb0ef1b92919a97bab7258c8b08d418d25bba75af6f7f4429cc" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.269Z", + "updatedAt": "2026-01-06T14:17:57.594Z", "postProcessHash": "341690f521760f80896a3e662b42a0724e7cc40d9493c1a24eeaedb55847b082" } } @@ -5573,15 +5587,15 @@ }, "9587a0fe6786b9d01148cd87fafc3ade5e71c0b81e022fc9ff0acbd35e2c7197": { "jp": { - "updatedAt": "2025-12-29T16:46:14.270Z", + "updatedAt": "2026-01-06T14:17:57.594Z", "postProcessHash": "07b2021447ae43e1028676595601716c6c715992c5f95e7fbbff01e41fa6439f" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.270Z", + "updatedAt": "2026-01-06T14:17:57.595Z", "postProcessHash": "9b397ea0b7c3c4689a34c8f2096f2d4986e425c5ce47569f0c492516a561653f" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.271Z", + "updatedAt": "2026-01-06T14:17:57.596Z", "postProcessHash": "7c493027544f0d38341bc2f412b3f88dab2a6903dbae033eb313bf56b4b7a493" } } @@ -5589,15 +5603,15 @@ "8f767913276b5f3417959156454a31c70c834a5c7093a2081510ef83903f4795": { "bce52080edbc2ef28e9154b8f007ec28a5e436114ad9041d55ab9bd299d603f2": { "jp": { - "updatedAt": "2025-12-29T16:46:14.249Z", + "updatedAt": "2026-01-06T14:17:57.565Z", "postProcessHash": "787ed5d133591e18248e5182186fe828cc27cac4965580f752d1cbace5e13b76" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.214Z", + "updatedAt": "2026-01-06T14:17:57.509Z", "postProcessHash": "f8d45cb76eb6d35f1246cb455f3dab0210640cd811c22f0e3ecd8b21071fac6c" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.248Z", + "updatedAt": "2026-01-06T14:17:57.562Z", "postProcessHash": "1f70d8cd03dcd5c0f1a184581b78c7be1d4565d0820271ce5ab75982361ca6ae" } } @@ -5619,15 +5633,15 @@ }, "ddb1389548c6a8f4b8caac4fe32657f1b36a24ad43f00b5c1f7e7baa3e979640": { "jp": { - "updatedAt": "2025-12-29T16:46:14.279Z", + "updatedAt": "2026-01-06T14:17:57.608Z", "postProcessHash": "af11dc96ca24c3dfbf505bc3e16f21f0c621935637eddca7a779459a5617f061" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.280Z", + "updatedAt": "2026-01-06T14:17:57.520Z", "postProcessHash": "fd925c37b4e34fc7c9f9fd80244d05b8ef147787781836bf1f6939d6740fc51c" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.280Z", + "updatedAt": "2026-01-06T14:17:57.523Z", "postProcessHash": "95887ac93f30f371bb175c137dfda0de92d0ac1b9904e3086a5aa45c67c2b79a" } } @@ -5649,15 +5663,15 @@ }, "413d4d18f3529017ab9f7a4cc8e82d147de844e07b841f7979f2ff3c31df13b5": { "zh": { - "updatedAt": "2025-12-29T16:46:14.282Z", + "updatedAt": "2026-01-06T14:17:57.609Z", "postProcessHash": "3ef869bd6e1729909c708b126488ee63ea3f33b52a78db87b345cde81b56eb87" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.282Z", + "updatedAt": "2026-01-06T14:17:57.610Z", "postProcessHash": "5531bcb6afd4f5cbb00b24cd2dc859b1cec81f4b586c79774b726e44fdb025b5" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.283Z", + "updatedAt": "2026-01-06T14:17:57.610Z", "postProcessHash": "7da5571cbecb510376e7cdfedfe3497dcb1f2d9fbdc8322d26a328c7968f9b02" } } @@ -5679,15 +5693,15 @@ }, "c87a86b470f93336f37743fb7676c5b8b03562d3a65b8dd3314dedbdbb424680": { "ru": { - "updatedAt": "2025-12-29T16:46:14.274Z", + "updatedAt": "2026-01-06T14:17:57.601Z", "postProcessHash": "9f52e22d2e8bc3d759b8f8a6e0c4b886988fdf8613e2652acb363fb2dfbcd0bd" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.276Z", + "updatedAt": "2026-01-06T14:17:57.605Z", "postProcessHash": "9e0569b4f60f6f14fa85751dab508908f84ae3a0bc6c637fd33a761ac410a39f" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.279Z", + "updatedAt": "2026-01-06T14:17:57.608Z", "postProcessHash": "302f40c4f4dbb1e9819091e7fcd02a3b7becf381763bb41ff4bb13e4e002f770" } } @@ -5695,15 +5709,15 @@ "ca7eb037869880c9ebb1a34c0000cdbfc8fdc9225de1f230ad67b8fceeb858de": { "fb2d804909b58e74a6d190031cfb86ce2cfa560d0444d3bb3d0a0af94da23268": { "jp": { - "updatedAt": "2025-12-29T16:46:14.188Z", + "updatedAt": "2026-01-06T14:17:57.460Z", "postProcessHash": "7adef56a9c57f6616e24ecc290ec66d9f28864107431a78bd3ea2b6bb9ea3f5a" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.189Z", + "updatedAt": "2026-01-06T14:17:57.462Z", "postProcessHash": "dabab5f1aed2bba71dea04c8cc1cc80dfdb1699c28c6f5c07b7e0233740a008c" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.186Z", + "updatedAt": "2026-01-06T14:17:57.457Z", "postProcessHash": "8d2d028a04d16d36af130415b78c5c5d2ebe46b83066a3a72d02de41d65081d0" } } @@ -5711,15 +5725,15 @@ "d6a2aef23a40b1f742ecc4bbf44e21b915daaca32e6106a813cece2855459b4a": { "c2bbc1291a1d9794a9a8424dacda644c27086e3d431d4f0bb25b88182d583c5f": { "jp": { - "updatedAt": "2025-12-29T16:46:14.204Z", + "updatedAt": "2026-01-06T14:17:57.496Z", "postProcessHash": "68f6672d84d00f6148cf616a2890807ddef5a59fabad96fbf06e03f7b0ad782f" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.201Z", + "updatedAt": "2026-01-06T14:17:57.491Z", "postProcessHash": "5ff3bc6b75c810def93dab90fd441b4bccb7312ca8117493dd21a8593d76d297" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.190Z", + "updatedAt": "2026-01-06T14:17:57.464Z", "postProcessHash": "d4f5decd8f3967064084da71c0ce542f01685c58980adfd8012ee7d4358241de" } } @@ -5727,15 +5741,15 @@ "ddcf8dfb6b1a4d5a1ed98c2017cdd7ae1fe774db2009725b2bf3d5ca4a50b322": { "4f4dfdc7521283f8c0348d0878aa061e186e3e3aad4e92d55841f1902f00e3d3": { "jp": { - "updatedAt": "2025-12-29T16:46:14.210Z", + "updatedAt": "2026-01-06T14:17:57.503Z", "postProcessHash": "bc1e413fcb2395843721305d904cd20e0fcbd716179b2e3124187db769531e06" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.208Z", + "updatedAt": "2026-01-06T14:17:57.502Z", "postProcessHash": "df3b34c2cbabb4e83cdfcc7cf73906fecb62cab9427c917126f6b29a129562c4" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.207Z", + "updatedAt": "2026-01-06T14:17:57.499Z", "postProcessHash": "b34d6ae2909594a1a7b649a8afab154ba35ead8fb5958af2d9ea3f00497eeb6c" } } @@ -5743,15 +5757,15 @@ "059de09a546e5fd7f343688a18f5ae23fe63e31ccd72bd1d8e0ef1ccff248e9e": { "e0133670b30030462807054fabd8948f4d58d68bda6f5fc806435ba96fdc2531": { "jp": { - "updatedAt": "2025-12-29T16:46:14.312Z", + "updatedAt": "2026-01-06T14:17:57.654Z", "postProcessHash": "0fbd94cc312492ee425010f3ed9c2c7d77fcf6a10401b34e4d16fdbb0ff4ef01" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.313Z", + "updatedAt": "2026-01-06T14:17:57.655Z", "postProcessHash": "5e57577ed1946c3a638dec31e504c9c8ac89a0941df460750e15c46a8d4721d6" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.308Z", + "updatedAt": "2026-01-06T14:17:57.649Z", "postProcessHash": "2093e1e4aa6180daf296333a4470d3e198f3ac03bdb479eea24245eed63fd9c6" } } @@ -5759,15 +5773,15 @@ "0e59ff691e81e6bb5df727b7bb1a30005ab315602d293b41cb391ed4b5409e8e": { "ab3c2315a32f46dcd77506c38fcb11173ad15a3ad7597e20a3af0f8b3c8e1c02": { "jp": { - "updatedAt": "2025-12-29T16:46:14.238Z", + "updatedAt": "2026-01-06T14:17:57.544Z", "postProcessHash": "57c7cadb674b0971b3c1c65ebb40678a996c96e1fa4241f1903e0ecfc256375d" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.182Z", + "updatedAt": "2026-01-06T14:17:57.541Z", "postProcessHash": "b12dba131b3fa32c3a0cae2135d68ddcb9d8ea023a581c056cd85d399de89569" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.236Z", + "updatedAt": "2026-01-06T14:17:57.541Z", "postProcessHash": "c9df38f207e0d49b8cda98551c46517b3f8bbfd5507bf35514241abc99101695" } } @@ -5775,15 +5789,15 @@ "1be2e6251cf6bfefceeb9a1d2a2cdfcbca4f3dc24d4303c2a666b520ce7dbc5e": { "79ae2db2ede93c3db9f3aa10741077dfe47e966f67fbb578af090bc05ef54683": { "jp": { - "updatedAt": "2025-12-29T16:46:14.311Z", + "updatedAt": "2026-01-06T14:17:57.653Z", "postProcessHash": "2b32dcc52e6a1846728161a3e60c3090f9a51c0f1d9446fe0abea2358547b235" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.315Z", + "updatedAt": "2026-01-06T14:17:57.657Z", "postProcessHash": "fe44b860fd0b2b54b523f751c72a34e6003b713d8d0039111077c667ba26f9b5" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.232Z", + "updatedAt": "2026-01-06T14:17:57.443Z", "postProcessHash": "9a1a5296f0907306e40953ae2fe5e4d19d06607b1ffaa1ffa216606d81c403c6" } } @@ -5791,15 +5805,15 @@ "240885d8a55bf641313a779462f9d5afe9dc23030aa7263fae65179e8d79b9cf": { "0f3c6f532be1ff66173a6f491090bc401c5f5ad396a065d669cf8be23b790fbd": { "jp": { - "updatedAt": "2025-12-29T16:46:14.242Z", + "updatedAt": "2026-01-06T14:17:57.552Z", "postProcessHash": "e446cffee4246edd6798b4c6d223fa61ceef5af5df95defc73a801f82f52b633" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.243Z", + "updatedAt": "2026-01-06T14:17:57.553Z", "postProcessHash": "72ea8b48152c271b676be5c6da6eb3c1b28ad640ffdb423237beb8f61499e2ab" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.241Z", + "updatedAt": "2026-01-06T14:17:57.550Z", "postProcessHash": "f6b1f228ca410c974ef0b29fc8d4a5c1878e4260aa61af060de96a09c061829b" } } @@ -5821,15 +5835,15 @@ }, "2d3ab3e1f864bc2441ca475a7486e6c6bc2727ccb64276c2acde74d24deb62d2": { "ru": { - "updatedAt": "2025-12-29T16:46:14.272Z", + "updatedAt": "2026-01-06T14:17:57.597Z", "postProcessHash": "f5483903bcbfb78bee064126aaf08559411c75c15d7ed94712b10bb0f98d9af4" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.273Z", + "updatedAt": "2026-01-06T14:17:57.597Z", "postProcessHash": "64b3460616f6ce7fb0aecd12c274728fdb9713a554adb3477e37b5c91e1eec2b" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.273Z", + "updatedAt": "2026-01-06T14:17:57.598Z", "postProcessHash": "a35ef310868fdc530f636d474555037e41cb4c8ed935e859b9230adb16370b52" } } @@ -5837,15 +5851,15 @@ "34fc130494be0d69639ef51384f698c85712275c82f72ea0884fc912c61fdf98": { "92c9764efaeac8ae2150358dd44c1bb27f41eb7fecfcbaeaa5223b274ca6abf2": { "jp": { - "updatedAt": "2025-12-29T16:46:14.238Z", + "updatedAt": "2026-01-06T14:17:57.543Z", "postProcessHash": "dc72c3c6727c43de017abee0429e43d941151e060febc74ef2bcd13c25262f39" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.179Z", + "updatedAt": "2026-01-06T14:17:57.447Z", "postProcessHash": "2c0e8740ace67f48e2aec8a1b2709d91e1abc1bb05b81bac31d0f7d7d1b86383" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.237Z", + "updatedAt": "2026-01-06T14:17:57.542Z", "postProcessHash": "762392112ad532c439463e4e94b286384db7fd57b925a31bb342b96195fb3f6b" } } @@ -5853,15 +5867,15 @@ "3d292af39191f27d31948c49e58c34422323914d2d835dd3b8be63d271aafaeb": { "6c24a188e7d85e8dc525f5000fb2f41b08e17a821ce60ddfa9341db9802fcdb2": { "jp": { - "updatedAt": "2025-12-29T16:46:14.245Z", + "updatedAt": "2026-01-06T14:17:57.558Z", "postProcessHash": "7ba94ff82df3fd481e47e74ead3c76c5b21456f9b96dc44e07f0dadd9f6b12a8" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.243Z", + "updatedAt": "2026-01-06T14:17:57.555Z", "postProcessHash": "07ef180689940db1efb0b9721afa2688e89c5f3c99c21c79ed95b6e52954eb0d" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.244Z", + "updatedAt": "2026-01-06T14:17:57.556Z", "postProcessHash": "de9de58d102888d28d2f04f8a0221d1b9db3d576517ce310aa595a017161b8d6" } } @@ -5883,15 +5897,15 @@ }, "dd735cc8d91200ad8dcbaea8d7f1cd530fb2fa005512b67e8b90598f7e64e3f8": { "ru": { - "updatedAt": "2025-12-29T16:46:14.365Z", + "updatedAt": "2026-01-06T14:17:57.687Z", "postProcessHash": "1fe475b48abeaa17a21f0a5c66a5030497cfb39d3028bdc6a7e7cd374ca089f6" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.366Z", + "updatedAt": "2026-01-06T14:17:57.688Z", "postProcessHash": "d24da2d3ac8c99692b1443efce87ad7bac41a554d488c383863e57a0bfa83bab" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.368Z", + "updatedAt": "2026-01-06T14:17:57.690Z", "postProcessHash": "6975f79c60046671bcc8340608194fe6a37af2008d723be388c1da7ad719c22e" } } @@ -5899,15 +5913,15 @@ "4be2dfff7ee7eb8ba7e00bea4338d4b73e59739bd67763683573c2c8a87c9e3d": { "37c83798ddd19c1e72b3674657a3635ca49e5d5bf74e74f2fa7bab5c89d58316": { "jp": { - "updatedAt": "2025-12-29T16:46:14.307Z", + "updatedAt": "2026-01-06T14:17:57.647Z", "postProcessHash": "80e06d059e5a825bddd8ff633ffc01a75aeb4fbe540892e2c4709524204d2441" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.313Z", + "updatedAt": "2026-01-06T14:17:57.654Z", "postProcessHash": "457212cb126bf31d9a7e694300aeba62b29fd2d10a0b9a53a8c390c0b324c5b5" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.310Z", + "updatedAt": "2026-01-06T14:17:57.652Z", "postProcessHash": "4e67bb3786189cf1091fe9fa60691376e297ce68bd3c6a5eaaf8482dabc22659" } } @@ -5915,15 +5929,15 @@ "508c2be06359376eba3e09eb266a71fd1a64aba5ea5c127642c386bdcf720d00": { "32a1e97aa76cb271770dca75fd904e715623cf504f26d889bcb51a382ae083e8": { "jp": { - "updatedAt": "2025-12-29T16:46:14.316Z", + "updatedAt": "2026-01-06T14:17:57.657Z", "postProcessHash": "a870d833e74e0f129af622db38767046af780c048455d60e7a7db1ee78bbfb0b" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.310Z", + "updatedAt": "2026-01-06T14:17:57.652Z", "postProcessHash": "de9bc4c3c41808a0ca598e689736d24aec0eec7ecd0be16c7baacbfbf8807edc" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.314Z", + "updatedAt": "2026-01-06T14:17:57.656Z", "postProcessHash": "2f4638e32f0897552dfed7797b01d3bd9eff67a0d2beb3c6dcdc5c640b1754f8" } } @@ -5931,15 +5945,15 @@ "6547aef5926a6b2487f43dbec05e0957fe924c3749b2e7aeeb9c8724921310c6": { "d72d4d5d1769fb68537cb2b0120c647b9e45e7282fdf4303b4b3b3ba33eb151f": { "jp": { - "updatedAt": "2025-12-29T16:46:14.178Z", + "updatedAt": "2026-01-06T14:17:57.445Z", "postProcessHash": "06c0e21a89d105292d9779c5d5198cf75c097502b1bbbf76868255fd0b1821eb" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.242Z", + "updatedAt": "2026-01-06T14:17:57.553Z", "postProcessHash": "c7735914915c26fe7fde985367727fc418e33b5d7355723213757ad9aa249300" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.246Z", + "updatedAt": "2026-01-06T14:17:57.559Z", "postProcessHash": "c428a425a82691e88852192b639382b6f69e6ba8eb0638bcf78764bfc8e1a902" } } @@ -5947,15 +5961,15 @@ "742de82015fab9560f32bc67cc0f07a9ca9e1ed3e7aeb11eb4303fa8a580185f": { "e8e388627f1d46545b74abb196d0b01e87cea3cc02063cec9c7cf6835a4f7d7b": { "jp": { - "updatedAt": "2025-12-29T16:46:14.180Z", + "updatedAt": "2026-01-06T14:17:57.539Z", "postProcessHash": "340d61541e72a53f9289c87a2813288a6dafe8460e3577d74b53328bc6f4c850" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.181Z", + "updatedAt": "2026-01-06T14:17:57.540Z", "postProcessHash": "b4fc8a886062a73c95553fa76149f8457042ea6a864c0a39cf156d6e87325e4a" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.179Z", + "updatedAt": "2026-01-06T14:17:57.538Z", "postProcessHash": "06f9a98ca9d574acfe00c99c9c2ebaa8171aa830a3bda2e4f4bb487d9fcc697c" } } @@ -5963,15 +5977,15 @@ "77a9c51767cd665f3dd2df3d7ddefaa1effd2f1271cde0211ccbb68de9869a6c": { "1c1de24396b6e6f16f0f9b41c9ee154414738e50d2c294ceeedb57d2b780396f": { "jp": { - "updatedAt": "2025-12-29T16:46:14.248Z", + "updatedAt": "2026-01-06T14:17:57.563Z", "postProcessHash": "f389febda1e33d88219d0c8ba5e84e83296e19921003b47e43c8b19a2be77f08" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.244Z", + "updatedAt": "2026-01-06T14:17:57.508Z", "postProcessHash": "8f2b884f51b22232ccd3a1ea29169bfef31aa0ed3444da9ced558d4627cffc73" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.246Z", + "updatedAt": "2026-01-06T14:17:57.559Z", "postProcessHash": "0f83f72abc4a035386f84aae8680706600d9e2c577847610cf0c9a9af8316348" } } @@ -5979,15 +5993,15 @@ "90aeecc84affbe1a94ebd79e7e3236a66f9c627e327fbaeb50f05aa43d716a7a": { "a7b61a1bd22ae77b9b4f8fe2bc248f5fb8a900c9c853a0f4b28e2114edba6edb": { "jp": { - "updatedAt": "2025-12-29T16:46:14.328Z", + "updatedAt": "2026-01-06T14:17:57.557Z", "postProcessHash": "fa6ef185860d86f9e7fc90c6ba73e18521c3761d6bdd8c653db6c4642ab19342" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.315Z", + "updatedAt": "2026-01-06T14:17:57.554Z", "postProcessHash": "69a42f71f08b83e17475d1355991a0ad552b105140a0f5ff6869eea202b77dea" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.250Z", + "updatedAt": "2026-01-06T14:17:57.566Z", "postProcessHash": "57dcb313a572f055a1e7a7c2e0ee7c27e9687c38fe743a348e879ed9f0837b94" } } @@ -6009,15 +6023,15 @@ }, "b7cfce823646ad025fdf222a4af8f589c118f66ba2b59a505cfeec39476017e3": { "zh": { - "updatedAt": "2025-12-29T16:46:14.366Z", + "updatedAt": "2026-01-06T14:17:57.688Z", "postProcessHash": "4f8e8288b2480fba01590fba38c0704e6285f872a22f6f07022d6ffb44d382fe" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.367Z", + "updatedAt": "2026-01-06T14:17:57.689Z", "postProcessHash": "e7578821192205e82b8f1933aca5bc70141c0ab7ee5ee65ec6d7e96b49df34b4" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.368Z", + "updatedAt": "2026-01-06T14:17:57.689Z", "postProcessHash": "275aed6ce6d0bd54f60fa4baed31aeca6a2fb61746779fba2322be3380e0a807" } } @@ -6047,20 +6061,34 @@ "updatedAt": "2025-12-29T16:46:14.235Z", "postProcessHash": "9c4a52343d4b0350c1c2358f831363629047e36107cf082b1545a0e381b99885" } + }, + "a6ee889caefd9f3ba00ae46aacf90465f430e0957ac7255d58218ca8a6055585": { + "zh": { + "updatedAt": "2026-01-06T14:17:57.611Z", + "postProcessHash": "1e0fa3910e835079f678c7da1c61b29a7a474d2f812176b4c492ac11f6260c87" + }, + "ru": { + "updatedAt": "2026-01-06T14:17:57.612Z", + "postProcessHash": "b91e657f2f38521bd508f583ef3d4110427a4aa67a607617c49a51e493d01460" + }, + "jp": { + "updatedAt": "2026-01-06T14:17:57.613Z", + "postProcessHash": "6ca81fe3d29c08003ffaf5b081597a35b8a1e2f47efa3c598eac418286c87d55" + } } }, "af79bbae5029e0964764673ad906f12ea5d0cbd9f6358c69ef5ef5e1e2abf9c8": { "2ac53c6a243d501aa141cc7a46939a9b6d8d89958a13b73f7e3def4acf386114": { "jp": { - "updatedAt": "2025-12-29T16:46:14.325Z", + "updatedAt": "2026-01-06T14:17:57.659Z", "postProcessHash": "d5d32fb2e9d73e0610beda9187d540c75d9b748cd530fd9d70865755dc54eafe" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.333Z", + "updatedAt": "2026-01-06T14:17:57.660Z", "postProcessHash": "a1e2e2e5101fad0e049165f91a12221da6b863c86c816dc94570be8f47ae9366" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.318Z", + "updatedAt": "2026-01-06T14:17:57.658Z", "postProcessHash": "63994e3a304f549a9ed93f964ae6b7ca924c8d0c92f551cce7ddbe01d48cf9e7" } } @@ -6068,15 +6096,15 @@ "c26d90fc85acd6879286c1468a93acb164acd86eea2a927516015902a9a832be": { "7cecd0f5d3861eb201c695566fbb8efba35f90080e6ff53cfb99227a455a7433": { "jp": { - "updatedAt": "2025-12-29T16:46:14.309Z", + "updatedAt": "2026-01-06T14:17:57.651Z", "postProcessHash": "e0adf9887529ba419e856dcbcc8eb6ad6d3df49d9a855d6fbb207bf23de0b168" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.312Z", + "updatedAt": "2026-01-06T14:17:57.653Z", "postProcessHash": "99e46e5fe0861758a4d3dd40541c2552312940650e5f487eda2a13b0c11bcd3f" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.314Z", + "updatedAt": "2026-01-06T14:17:57.656Z", "postProcessHash": "5dbfef12f8ff14cc2e9df89828a3ddf0b1a82675edc3f08b81447ae715ee3845" } } @@ -6084,15 +6112,15 @@ "c8e894dbaf5047cc3cabc950a4a8ff475057f2bc769f6e66960185717ec18b52": { "53f949f10b8d348067c1f595ef08a9cee2ae03679b3e38fbfe1a67bd2cf12eef": { "jp": { - "updatedAt": "2025-12-29T16:46:14.249Z", + "updatedAt": "2026-01-06T14:17:57.565Z", "postProcessHash": "69239bf07804c5566d1f13e076a4033a7b8ae5f11ff9cc242a94e1301a7264d3" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.206Z", + "updatedAt": "2026-01-06T14:17:57.498Z", "postProcessHash": "627010be4c4e17a0f55706ce9e9c831365aaf89ba5567e80c3bf20b5e8991ec9" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.215Z", + "updatedAt": "2026-01-06T14:17:57.511Z", "postProcessHash": "e163dcc9e7ba43a1e3354a882c7f0cfe268965b70346a299f209cff89774df6b" } } @@ -6100,15 +6128,15 @@ "d6b97ab54d7597109de2eeed733aaedaf2f8744ebeed7ec1031b8460e9c545c2": { "60328591af08fa91508ef8597f7a9b54e083806e1906b2740d4ec5802abe7ecd": { "ru": { - "updatedAt": "2025-12-29T16:46:14.334Z", + "updatedAt": "2026-01-06T14:17:57.661Z", "postProcessHash": "58ed6d4b2fe0f9eb55c232029e6a49a6c23d04543a13ac9d54f91c1175e59086" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.335Z", + "updatedAt": "2026-01-06T14:17:57.662Z", "postProcessHash": "df1a38a3bd599ff26d7acb6ef4c9651eec66f69bffcafbe8b6dbb1724fcfdbcb" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.335Z", + "updatedAt": "2026-01-06T14:17:57.662Z", "postProcessHash": "4b8ada8aeee40d487d325b3c7b309908f162aa5ac09d18c22b0dfbefb9b8f63c" } } @@ -6116,15 +6144,15 @@ "dc33a2eb5786282387491dfbb49c8ff622ea41f11b3278436c7f82ab857f0228": { "6d34c7aa55a8fa5def4e3f2bff389c666852c48291ebab26dbe11069e1977d67": { "jp": { - "updatedAt": "2025-12-29T16:46:14.214Z", + "updatedAt": "2026-01-06T14:17:57.508Z", "postProcessHash": "81155067880a75c3a21cd90f228cc9e8274dbf04631922f87ce9ee62220d2f80" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.194Z", + "updatedAt": "2026-01-06T14:17:57.479Z", "postProcessHash": "cc6cc272208fa7d4e48a5739f0c24cb49276ba0f4aea94320ad57d0b99e9300a" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.202Z", + "updatedAt": "2026-01-06T14:17:57.492Z", "postProcessHash": "3f2e9b48e55fc63e3099ec176dcddb9287c29130128d89447c493cc52349c208" } } @@ -6146,15 +6174,15 @@ }, "2edbeb25eb89b5ccbcfaf48ed113b51c77c643a66ceaf81170f2bb75f681b80e": { "jp": { - "updatedAt": "2025-12-29T16:46:15.059Z", + "updatedAt": "2026-01-06T14:17:58.667Z", "postProcessHash": "d63768dc574036d586b509666102bc4745b550eb4a0916ad09aa46bc6ea918ef" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.062Z", + "updatedAt": "2026-01-06T14:17:58.667Z", "postProcessHash": "f6e11e5dc1b3d69c4608f269b827bc958a2df181020fa06708fb118b686b85f9" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.066Z", + "updatedAt": "2026-01-06T14:17:58.668Z", "postProcessHash": "a4b63a05e9dbb382444b46e66794b45bfa7f18aff144a2987da110c0da901655" } } @@ -6162,15 +6190,15 @@ "13e624cf649963b0430c85b33066c42e9a463e53696049fdef557841854d666d": { "81c2903aa8b7c3295234e5c1b7fdf2be7dbc55fdc9edac19c3d4675fd1215205": { "jp": { - "updatedAt": "2025-12-29T16:46:14.888Z", + "updatedAt": "2026-01-06T14:17:58.547Z", "postProcessHash": "5c7cd7fd13df56808214d5c3ea0734b71591a7dffa87d769e2aee124d74e43fa" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.889Z", + "updatedAt": "2026-01-06T14:17:58.547Z", "postProcessHash": "c8e7dfd2c1abe755eb7673a5273125b8ca6e5badcbafa4147f2bfb77bf394047" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.935Z", + "updatedAt": "2026-01-06T14:17:58.626Z", "postProcessHash": "0dd2c546e45d8188bea81d61398926e39d094e26004670c90ea94992c9ae15b4" } } @@ -6178,15 +6206,15 @@ "2ed1c4bf7fd0d1e9a3aa0e5f13e3c86bcaa77e12c79c9d2fd35be9b8cb485fdb": { "042d7dbf05f1c54ecb628a3aec1b03eb4e2b6e21cb8aa57b9ada88ffcae4f8df": { "jp": { - "updatedAt": "2025-12-29T16:46:14.599Z", + "updatedAt": "2026-01-06T14:17:58.078Z", "postProcessHash": "56261aebde53698c90f498d37ab3c7667f606de2377fdef5e7ecba384c4654b3" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.604Z", + "updatedAt": "2026-01-06T14:17:58.088Z", "postProcessHash": "4595e89695bb69359f51c3f0d5d2e38b191b0638208c28cefc01ac68079db161" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.603Z", + "updatedAt": "2026-01-06T14:17:58.085Z", "postProcessHash": "f8666000869e921935499bb2097bee90920bd642530901ec4cb9792da126028b" } } @@ -6208,15 +6236,15 @@ }, "4d4f3aad383831581cca650bcff87013c5136de30b401d37966a3cd8a478ffaa": { "zh": { - "updatedAt": "2025-12-29T16:46:15.082Z", + "updatedAt": "2026-01-06T14:17:58.672Z", "postProcessHash": "d3904c208b2b515943f4e58f852e5e829a3a1dd2c129c078512c984313941a05" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.083Z", + "updatedAt": "2026-01-06T14:17:58.673Z", "postProcessHash": "a1a7b099cbcf1bcb919c38c0e66ba8b2c80ac5fae264831724aa2afdff39616c" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.083Z", + "updatedAt": "2026-01-06T14:17:58.674Z", "postProcessHash": "e6a9f0a8d2124cce0c0928da7e044310f4537191c9b8cd29a6ea299cbbe6d627" } } @@ -6224,15 +6252,15 @@ "3ea83a8ef84ec6bbe25f2090619db1abe347ff2b73bca590d6c93d68a42e4e64": { "d03f731b06fef8fcaf928f6e3faf509894d47eaf5b4921a111e9884783dfaf7d": { "jp": { - "updatedAt": "2025-12-29T16:46:14.890Z", + "updatedAt": "2026-01-06T14:17:58.619Z", "postProcessHash": "f094e5ae38551a947b16e71cbf4998e120cbb858e19148b10d8b6aaab02a33dd" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.935Z", + "updatedAt": "2026-01-06T14:17:58.625Z", "postProcessHash": "5fec7c8ee4f9505dfe763f47b4d7d2881e285f04fa81659ccb2ee6e88f917975" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.934Z", + "updatedAt": "2026-01-06T14:17:58.624Z", "postProcessHash": "780400848a7b2f7b78a7f24c5d8b4a4b20fd3c339a780f979f4354a71d433006" } } @@ -6254,15 +6282,15 @@ }, "5185d9334cb65a09a1b12878643eb1562586905c97119ee9aa5092fafdbb67a2": { "ru": { - "updatedAt": "2025-12-29T16:46:15.080Z", + "updatedAt": "2026-01-06T14:17:58.671Z", "postProcessHash": "430994dad4b9f26a201101de640f7ea38977fdba93538db9b9c58fc742303b6f" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.081Z", + "updatedAt": "2026-01-06T14:17:58.672Z", "postProcessHash": "fd08a7bc6a1dd5e74bfad635251f123dd6093563bf13b2b24584efa7692ea519" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.084Z", + "updatedAt": "2026-01-06T14:17:58.674Z", "postProcessHash": "bf2910c6dc67fec222b3c5ddc5b1d29b5000b156e678aa2737b44d40dcf9f93c" } } @@ -6270,15 +6298,15 @@ "4ada93142f1fa23e960fcf0c89e6d17aa2696229485742f034de4ee6593c2071": { "2f19a7e891dd293775fe6638aa903e735c6029210bbf3a17860c69e6f1f6bb6b": { "jp": { - "updatedAt": "2025-12-29T16:46:14.989Z", + "updatedAt": "2026-01-06T14:17:58.663Z", "postProcessHash": "132bb84090bb36450086ca1f8703d230d2e964a71abe9b6c7b57faeba8a29ec3" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.885Z", + "updatedAt": "2026-01-06T14:17:58.545Z", "postProcessHash": "2624aae6459465a88507479c09cd51ddad295c05d799969fcea3e58990721b3e" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.989Z", + "updatedAt": "2026-01-06T14:17:58.664Z", "postProcessHash": "da0ff42e3c9ff6c18ccf7424379c5e6d5956cefee625e8397562add05eb3c657" } } @@ -6286,15 +6314,15 @@ "5e4520555f04067ffa7eb5af85e61960bb9ef0b5e53db65b7b0471c0eb67e3ca": { "7bb096151a00169df14ef9af359bf6d8949aae217704606f9a6b10a44d8ed7c0": { "jp": { - "updatedAt": "2025-12-29T16:46:14.888Z", + "updatedAt": "2026-01-06T14:17:58.547Z", "postProcessHash": "464eb882a62ab3b54c71dfa1ea9d4f4a4c458a796d299720ee5933a2a7f2b5c4" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.890Z", + "updatedAt": "2026-01-06T14:17:58.620Z", "postProcessHash": "4c3ec37b945f383ca2a46d93b78ea2d04d15164262222bae00a0f045ff94970b" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.892Z", + "updatedAt": "2026-01-06T14:17:58.623Z", "postProcessHash": "d375efc434797b3c906f84e8307ff848d8cb9d6fdab32280e89f5070b20029c6" } } @@ -6302,15 +6330,15 @@ "736bf0149d53b024ca3bd9e7977f0bc63d265b1f25ebfb6dfdefeb025d67a838": { "dea965238a83d73269b02031548818dad6e76024fdd545d4ebfad71b6ea7f2f6": { "jp": { - "updatedAt": "2025-12-29T16:46:14.889Z", + "updatedAt": "2026-01-06T14:17:58.619Z", "postProcessHash": "2da733158d1d9653ee99e70a11076f3d3066f7170b50f297bf84260adef16fc1" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.891Z", + "updatedAt": "2026-01-06T14:17:58.621Z", "postProcessHash": "4224c6191b8670ede654cc0530f4a6848a95cc399af16795d2dd0b585c87cc61" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.893Z", + "updatedAt": "2026-01-06T14:17:58.548Z", "postProcessHash": "f40b1b8336f00d8a5fabb74209d38fc06de3ac1780ea286af5409ccf1f2be251" } } @@ -6318,15 +6346,15 @@ "78374142cbe93e8f6c7c78c21fae25fb7304d36492b6bf841f120cb0b757622b": { "8c65e21fe9e7b63afe26dee2f144ad334fde661179f2df54cde98ef19f746770": { "jp": { - "updatedAt": "2025-12-29T16:46:14.332Z", + "updatedAt": "2026-01-06T14:17:57.660Z", "postProcessHash": "33bbf26be7963ff5ddd789b9725c63d08099ae3b7ef66d9ee77d5e19d7bf3974" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.331Z", + "updatedAt": "2026-01-06T14:17:57.659Z", "postProcessHash": "60fecb25094c9d568e17efad847ccc1d5e2132c5a78ce0e9646d77d4eaf9d0cf" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.322Z", + "updatedAt": "2026-01-06T14:17:57.658Z", "postProcessHash": "49af3737faf0124ef76846a69709213ec5ecf0f816f7b54c9ec7e57e4d3f6e58" } } @@ -6334,15 +6362,15 @@ "7d77ec1ad6a5f022e0b46f5c3c3ce2c3fea37ff042d1b5dc03023407e067e3da": { "a014826091cc7de6ffe26de700b6870df49479656119a1c4582ab3ba9f32f66c": { "jp": { - "updatedAt": "2025-12-29T16:46:14.596Z", + "updatedAt": "2026-01-06T14:17:58.063Z", "postProcessHash": "a64c3ef24be92ba54eb38311f3f67bdf5e3fd823a1a7f73e94d85247575f0234" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.596Z", + "updatedAt": "2026-01-06T14:17:58.061Z", "postProcessHash": "9bfaf77c9c05cb01587424baa181998b9b298c0ead28103145c47ec050f3954c" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.597Z", + "updatedAt": "2026-01-06T14:17:58.064Z", "postProcessHash": "78881d3fe7b7645d68b001022dbf922aa6d7d61ab02601b61a52ddf5c63d43b9" } } @@ -6350,15 +6378,15 @@ "8c7d4f3fdba3bb4edd06686b726948493ddc13a3c70be44e45a5101013e47060": { "e1a3f32eec379181f97de3483a7955652a71670ed2c2d3ea34c65b17fdc5961d": { "jp": { - "updatedAt": "2025-12-29T16:46:14.600Z", + "updatedAt": "2026-01-06T14:17:58.081Z", "postProcessHash": "3ede0328568d5c7549d9135b096e63504ae324d43f655b78e433d31f9f02ec38" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.598Z", + "updatedAt": "2026-01-06T14:17:58.067Z", "postProcessHash": "b410556e30ea38efe6a7546c4b1b0d4bf3539c25600d7c451e3588b5cb8713f2" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.603Z", + "updatedAt": "2026-01-06T14:17:58.087Z", "postProcessHash": "21e2fbcb8ff9f7faf8f73f4ebd03dd476bd7e3f02bc8fa5563fff168733f75ff" } } @@ -6380,15 +6408,15 @@ }, "e5778f9be8750fc1a6d228d02d41a17f8b8c6af03277082f3d1693e05fd5e1e9": { "jp": { - "updatedAt": "2025-12-29T16:46:15.011Z", + "updatedAt": "2026-01-06T14:17:58.668Z", "postProcessHash": "aadfb815d7279f1c9284d9995a6a796996537ae5c5240a08de2ae0d9473b0ef2" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.012Z", + "updatedAt": "2026-01-06T14:17:58.669Z", "postProcessHash": "ca794bab5ed0c1595eedeaf70ebbc0d973be549d417176f19a5481d10c7fc8ed" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.012Z", + "updatedAt": "2026-01-06T14:17:58.669Z", "postProcessHash": "f211c315c62284785e81b3d9328523982f64ebc21a14ab89f6c2c2af455c0650" } } @@ -6396,15 +6424,15 @@ "995a2e3a8b7d9f74a6263555c02ac239faad9cd474831a38bb8fbe02a8eb4930": { "9cf1d6f4f93a189585be6125df675ba7e1d73f8db3dbffd354c683519bf24dc5": { "jp": { - "updatedAt": "2025-12-29T16:46:14.894Z", + "updatedAt": "2026-01-06T14:17:58.550Z", "postProcessHash": "068f2972be5f878262e5a3ce27b7e01886da944f5feaba8b3990635531d7c32c" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.013Z", + "updatedAt": "2026-01-06T14:17:58.728Z", "postProcessHash": "d22bf459ba53229dd84d8c602baaf1220e0fb3d57e50d16a2eac574d3204e951" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.893Z", + "updatedAt": "2026-01-06T14:17:58.548Z", "postProcessHash": "f41cb0b0ca2e70a9c3e9f435b1d19c134f8570efb21788a4b2a505116aa4bee9" } } @@ -6440,15 +6468,15 @@ }, "cfbaa661c8504f2c18fc22452bd05114c88710d072a92f0bc44fda91bf0c0e70": { "ru": { - "updatedAt": "2025-12-29T16:46:14.990Z", + "updatedAt": "2026-01-06T14:17:58.665Z", "postProcessHash": "cac153bfe274bcee17e9720066048118bd03b105dd34df368903ef4d663f36b4" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.990Z", + "updatedAt": "2026-01-06T14:17:58.665Z", "postProcessHash": "d74a6443d79f6821483089719b51e1e025fb9380f5436b61768ad6729300c98c" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.991Z", + "updatedAt": "2026-01-06T14:17:58.666Z", "postProcessHash": "b670388eef1e06b1b8c260070416dca4b0321f8ea7d588e0033a126b02c4de0b" } } @@ -6456,15 +6484,15 @@ "b5acaeeec7ee7e0b3d8c363ae84792dfc90953fe82cb345bd9a76003f6857008": { "becf724869353de9ac0fbdf72d34274bf02c4477ca8efc26bf383f25cab477b9": { "jp": { - "updatedAt": "2025-12-29T16:46:14.604Z", + "updatedAt": "2026-01-06T14:17:58.090Z", "postProcessHash": "153cfd89d07483a7f78f1db37d306512aa3801d600d084da6a4df692da019466" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.600Z", + "updatedAt": "2026-01-06T14:17:58.080Z", "postProcessHash": "07c829d4f9b7b5b7beddd78faf3477aa9c2ec2de744b882bfefb74ba5e2befe6" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.597Z", + "updatedAt": "2026-01-06T14:17:58.066Z", "postProcessHash": "7039bc9b9934a6170c5b100df12de7bc0f56cbbe6029214808e2052dc9024d62" } } @@ -6472,15 +6500,15 @@ "b6cd16941758ca4a1cd018e80e59496c19b7711675f9eec3946a989810da8301": { "def5f58d34f9e59ee3bc906fda67f3a9ea90982c852224c86d9d02f3eb4daa81": { "jp": { - "updatedAt": "2025-12-29T16:46:14.892Z", + "updatedAt": "2026-01-06T14:17:58.623Z", "postProcessHash": "76654743b8c2031b48266de69042939cb5da8a35a74f43220695da25e1912391" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.886Z", + "updatedAt": "2026-01-06T14:17:58.545Z", "postProcessHash": "b90e392ed93a10dea2f13b745b19f17b23364bf0e35842e80b20dfdb88357e76" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.084Z", + "updatedAt": "2026-01-06T14:17:58.849Z", "postProcessHash": "a8626a9c4d5ca56a5edad69bb93ff352ec8774ba18f4317175f5a7c5adcdbda7" } } @@ -6488,15 +6516,15 @@ "c5c9fb1e01e8fd89820000126b65de13c1b1aa7723a21af8dd6a22b0c6ce61ab": { "f0bcc513afa858c10cd2907f4b418305889e8287702cf9cdb050972831c885a7": { "jp": { - "updatedAt": "2025-12-29T16:46:14.891Z", + "updatedAt": "2026-01-06T14:17:58.621Z", "postProcessHash": "56c494f24c8b34e87403cc08eda3b9dd5d88aedbb868c529c8e17ec0ca2596b9" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.887Z", + "updatedAt": "2026-01-06T14:17:58.546Z", "postProcessHash": "cf0c2d23b569ebedba23d6efdc413951cd38e3e0bdeac0783cccd71e378c1ac7" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.936Z", + "updatedAt": "2026-01-06T14:17:58.627Z", "postProcessHash": "690f32c52d5a4afd0dd5ed556ede05032d8381f53c384057896f17294b2ab8fd" } } @@ -6504,15 +6532,15 @@ "ced886ccae611b5ba4d14770da1f424b55ef56a32ab309f10b5ba3de061a0cbe": { "4c6f8e2e7974ca1e44a92dea680f0fe4823cb3dbd478d406583065fef1965c83": { "jp": { - "updatedAt": "2025-12-29T16:46:14.600Z", + "updatedAt": "2026-01-06T14:17:58.083Z", "postProcessHash": "3371c3043f99c8033dc3c06307b66865003f6beaacb85f431f502e37d22b8857" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.601Z", + "updatedAt": "2026-01-06T14:17:58.084Z", "postProcessHash": "3a59965b3721fe6198d321742f67863213c3a700efef8b0a081626cdbfdaed92" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.531Z", + "updatedAt": "2026-01-06T14:17:58.086Z", "postProcessHash": "78c3546b9a5d2242d98822f77a30f2f2b441852c12459faed8a82ba727b0392b" } } @@ -6520,15 +6548,15 @@ "f3dfcb7d93e8daf7246f1d7b55aef72c87092941f169ec834a03a5094039d22f": { "30c8a47e6bcddf07ce86164218209c750f1bf6a65eaa190202477bb3b35f8686": { "jp": { - "updatedAt": "2025-12-29T16:46:14.308Z", + "updatedAt": "2026-01-06T14:17:57.650Z", "postProcessHash": "75ebe3318240c961e11223e2c2b60c794a9c54492e8945538b9a69ec841a06de" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.307Z", + "updatedAt": "2026-01-06T14:17:57.646Z", "postProcessHash": "cd55a933196f62d521be4253f50f7b4dbdc020fe26175c2ecacbd57a47246c40" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.309Z", + "updatedAt": "2026-01-06T14:17:57.650Z", "postProcessHash": "31e5ab17c42dcc91a4c269282fe5a0973ab5ea969e773ab571cf961640e9342d" } } @@ -6550,15 +6578,15 @@ }, "4823002f5e0cee8544e029d8e331784b372851f8112893d9d9ec8d6cbf55aa79": { "jp": { - "updatedAt": "2025-12-29T16:46:15.058Z", + "updatedAt": "2026-01-06T14:17:58.666Z", "postProcessHash": "8b230ca6e317fdf487921d90a7f84e7bd3b2811aed8b8f83b7879b27044e1532" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.079Z", + "updatedAt": "2026-01-06T14:17:58.670Z", "postProcessHash": "968874a4e2755cda1ebd11f1461c362fe61cf70ae8d0dd7ac35e2ba8c7e7295d" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.080Z", + "updatedAt": "2026-01-06T14:17:58.671Z", "postProcessHash": "23e320b3a91fa0aed7045bcc400b68ff9948374fe643c6d7f693f69ae86e43e6" } } @@ -6577,20 +6605,34 @@ "updatedAt": "2025-12-29T16:46:14.964Z", "postProcessHash": "bc6429377c2e8829c7d2c7e1d5645435be56a68550e5f58e1a40ef097de7b28e" } + }, + "d10011e2d9345d7d9ce6826807d3516a81c890e723664298a6c7f8aa8e89a601": { + "zh": { + "updatedAt": "2026-01-06T14:17:58.805Z", + "postProcessHash": "bed5a1bf77d7620b6261ac30696b46a8cc9757220a51d4646a77ae635ae5f3c6" + }, + "ru": { + "updatedAt": "2026-01-06T14:17:58.807Z", + "postProcessHash": "9fc5af1d90aa3551a1028461f7bb01078a8b8277a38a09446526a605322e882c" + }, + "jp": { + "updatedAt": "2026-01-06T14:17:58.812Z", + "postProcessHash": "631fcd857154109a277ff9db6cf5e59a681be9390d8d22698f8999e62e1ad7b0" + } } }, "171b148b39ffa6bfa68154f7f794bc9828036c905ec6ea0ed3ab52ea0ab68098": { "9b71315bfc1a5504ea574514ec21f8d0b8c75e646482a4fa10456513e23ec3be": { "jp": { - "updatedAt": "2025-12-29T16:46:15.037Z", + "updatedAt": "2026-01-06T14:17:58.757Z", "postProcessHash": "4e59e66c763f3d06c7ea50e08f94012f9aaa063d17198ae60d15499a5b07ae17" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.040Z", + "updatedAt": "2026-01-06T14:17:58.759Z", "postProcessHash": "c6c5fd1d5d904b0f23762de97c50cd298a07d123f9c4b7d0a4fa2d6e0227cf88" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.039Z", + "updatedAt": "2026-01-06T14:17:58.758Z", "postProcessHash": "cfaef766331426d2260975d7dadd74beb0486acc4dca437face48cf974de6eeb" } } @@ -6598,15 +6640,15 @@ "24ff6950696e941c133754804fa0f7502ed10e3f273f7828f34d0ec98cc69169": { "9ffff4baa30bb8aedc5b7c4bed60c32432037227f50854a8cf0a554ca74b6742": { "jp": { - "updatedAt": "2025-12-29T16:46:15.034Z", + "updatedAt": "2026-01-06T14:17:58.755Z", "postProcessHash": "f9156cd7d2cf3d4383bfe4314afe034e17dcc1ccf116dd50a7286d4b9825ff8a" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.948Z", + "updatedAt": "2026-01-06T14:17:58.750Z", "postProcessHash": "c13bf08f6631f982d63fa7aee0e8ff0013c4cc7ccd01e2b0ae2a50337f7ee99c" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.947Z", + "updatedAt": "2026-01-06T14:17:58.749Z", "postProcessHash": "fce984b5b91f401ec3f5f8fee69e1f7991461d5e41bf875ee0f855c3b981dd61" } } @@ -6614,15 +6656,15 @@ "2de6c7cb85bc8ce6037011a7cb84ceda700e54852ad5f8048c1b021e9505cfe2": { "cffde22dd20a99321b2469fa4c5f889ab0623f7597c7318cb5c82cc569be15bf": { "zh": { - "updatedAt": "2025-12-29T16:46:15.029Z", + "updatedAt": "2026-01-06T14:17:58.753Z", "postProcessHash": "ebc0ae10fe844f57518d1641ffd20e384e6699e1c2adaa16fec9a7ddbb26f947" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.033Z", + "updatedAt": "2026-01-06T14:17:58.754Z", "postProcessHash": "d55948e87e9ae186de04c866a6d93cb7ed4060b1feb8542762e672e5521f3caa" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.034Z", + "updatedAt": "2026-01-06T14:17:58.754Z", "postProcessHash": "b01a14b85ce48cb59ddc61c78956184b3f7816e2951e0e6600f18403087d5a69" } } @@ -6644,15 +6686,15 @@ }, "09916ce7fb5a223a4474a873d49410492a4306c544b28c040b6a935dd02ee088": { "zh": { - "updatedAt": "2025-12-29T16:46:15.060Z", + "updatedAt": "2026-01-06T14:17:58.770Z", "postProcessHash": "41fd5ac21fbaa8f399fe7c2b556ec0da0e88921893e627498fbe04ee905846db" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.061Z", + "updatedAt": "2026-01-06T14:17:58.771Z", "postProcessHash": "a46ff40eb448f309713a07d93a9eb50277932e2fd34afee3f1e837d3a90657f5" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.065Z", + "updatedAt": "2026-01-06T14:17:58.779Z", "postProcessHash": "eda6a7ec087e5abe2bb4f5b9eccf37d6c9fd02a7544a5f64e57428445b2039ed" } } @@ -6699,6 +6741,20 @@ "updatedAt": "2025-12-29T16:46:15.008Z", "postProcessHash": "d1057a81740c73dfdf9389f92df860738cebaaadbfcf0200cf0c59dafc98fede" } + }, + "2d8e45ed58bd8bc160376a43688ebeceb3a23a1befe47de78ac266891f42a4b2": { + "ru": { + "updatedAt": "2026-01-06T14:17:58.696Z", + "postProcessHash": "18c329cab1d37a333fac26b0ad63d21cec63fb6913131db55073078c5f9c21d5" + }, + "zh": { + "updatedAt": "2026-01-06T14:17:58.711Z", + "postProcessHash": "20ce613beffe78b1da985cbd0f12b8d4a0c609fd49c9eba99b6b4ea8db8a1627" + }, + "jp": { + "updatedAt": "2026-01-06T14:17:58.799Z", + "postProcessHash": "62b121f4fd720413441c8104156c4daf19786cedf70583eede3ec3e7970e4d7c" + } } }, "439776d4466dd70e3c5608271d0bffbce0782915faaf2fea75fff7b8e7835bee": { @@ -6718,15 +6774,15 @@ }, "6eeac11681de5506035f986d0265b1afe4eeed6a2dbb214ae4c6dac1d94a24b0": { "jp": { - "updatedAt": "2025-12-29T16:46:15.061Z", + "updatedAt": "2026-01-06T14:17:58.772Z", "postProcessHash": "98bd85c883ab11e34d15d502a3812ea3c2aa6263eb2b92bded60c64da44058db" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.064Z", + "updatedAt": "2026-01-06T14:17:58.776Z", "postProcessHash": "66355c172698bba94d628329b922b6e02803155bb6272a1d50c7a5152d1d6d12" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.071Z", + "updatedAt": "2026-01-06T14:17:58.782Z", "postProcessHash": "76efddd31b12cf17cad005131e2f84987dbb991e4daf446d1ba788c87dc4284b" } } @@ -6745,6 +6801,20 @@ "updatedAt": "2025-12-29T16:46:14.955Z", "postProcessHash": "0605b745ad2d4f5330f0141d05fb37dd36644282724d42bfb4ff284d4c653cb9" } + }, + "d5bc29c48611da115e15565b3383f623922e54b4710dec786c545f29068e2c4f": { + "ru": { + "updatedAt": "2026-01-06T14:17:58.802Z", + "postProcessHash": "98078831f23fbc6dc21721107f52ac187d696783a4bf0c9e912f94b2d07aef3b" + }, + "zh": { + "updatedAt": "2026-01-06T14:17:58.803Z", + "postProcessHash": "e08745b5093ff4fc920733db9f2dc067f4cc5793eeebe45fc5b01a4b425e9ca5" + }, + "jp": { + "updatedAt": "2026-01-06T14:17:58.804Z", + "postProcessHash": "19f1e3eff17b32d3debafaa150651912c89e5b26d32626b6acc788ff8087d70c" + } } }, "61b82c455342cbc02f4a1d8651204017609b443fce1a7cb57a4831730d7fc050": { @@ -6767,6 +6837,20 @@ "updatedAt": "2025-12-29T16:46:14.993Z", "postProcessHash": "ea3bb2970dbfad2c9857e631c4f3d8e841d1aa61da9c6775342c334e900ab015" } + }, + "bbfd805effcf17ac7384b869d8ad2e25a369b61d46d330e3ba3824759f93c643": { + "zh": { + "updatedAt": "2026-01-06T14:17:58.792Z", + "postProcessHash": "65e9f86d7533ab3cad0f111d09f047ea7fc6a89c96b61380a98a866400c720cb" + }, + "ru": { + "updatedAt": "2026-01-06T14:17:58.810Z", + "postProcessHash": "0d6e8dda83c883f058a2bc486b5a94ed3e5cf8554fcf486a59b73dca64205272" + }, + "jp": { + "updatedAt": "2026-01-06T14:17:58.816Z", + "postProcessHash": "297b3207efa1929c908088ee3d06654545949b40bdc18a01486fe4342e77a04b" + } } }, "65514e61688950cbfdfadc40744ab73dd695de039206e57d83d48b00a2982161": { @@ -6811,20 +6895,34 @@ "updatedAt": "2025-12-29T16:46:15.051Z", "postProcessHash": "13e8e1ed75a7188338db76c65afe2223d6d40cebc47dadd7714f598b139677db" } + }, + "c32c59101dec715cf663988dfb5eac14f2b0bfda7a12fd1380f31523f5dd27c6": { + "ru": { + "updatedAt": "2026-01-06T14:17:58.679Z", + "postProcessHash": "52843bab2eaeb86333eafa2a3ab7b08a246b4d59d4e3a5b0034c699aec58acdd" + }, + "zh": { + "updatedAt": "2026-01-06T14:17:58.681Z", + "postProcessHash": "05f4f71b1a4c978847c3c39a4717eb7af7964c71e3b00104b567e3705ed89835" + }, + "jp": { + "updatedAt": "2026-01-06T14:17:58.801Z", + "postProcessHash": "18761185076de99bac10b6471b2fe189358d0f0549f0865fb00ffebfcc291196" + } } }, "745a92a844b6497c0310ad16eb03df90d655cde8d7482e58f32d1af9a9c6e68c": { "ed4640fd150472b99b01119068e79ab5dce8af8145d98d8e1f847e482439180c": { "jp": { - "updatedAt": "2025-12-29T16:46:14.951Z", + "updatedAt": "2026-01-06T14:17:58.638Z", "postProcessHash": "7c9001407975102ced5c1345f3bf64e8ad4c3eeeb1708e714f7029b23b2dfcfa" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.943Z", + "updatedAt": "2026-01-06T14:17:58.633Z", "postProcessHash": "e5a57f0439db3ec6e07182135453c1a5989faf85ea309a2d49750fc21b174434" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.947Z", + "updatedAt": "2026-01-06T14:17:58.634Z", "postProcessHash": "bac63525c759ab6dc482bc680de30a0f5331e2df2ebc6a2a8cf41ccf152b532e" } } @@ -6843,6 +6941,20 @@ "updatedAt": "2025-12-29T16:46:14.948Z", "postProcessHash": "5cf7a054f8284a87e5465e5e839b97d2ba3516788dc21c2b6ddac3d6e6b0aede" } + }, + "ada875994684a8c861fdacee5e726d4581c23e87935a4ef26224ea8feefdfd23": { + "jp": { + "updatedAt": "2026-01-06T14:17:58.788Z", + "postProcessHash": "38885ba9ed9ff4ed7c112a680d002f09c3bd6a7fe5530e1133952b38cc7698ab" + }, + "ru": { + "updatedAt": "2026-01-06T14:17:58.789Z", + "postProcessHash": "7c5a625f7750809fbecefff5599b3a41caf54d863b8adbcba189cd79972d610b" + }, + "zh": { + "updatedAt": "2026-01-06T14:17:58.789Z", + "postProcessHash": "5733f1702be5beff5eed8f1ce7569f6c5e1616ac2b3e37fffcabc1959903a7f5" + } } }, "8bd7dd424981003d655b71b52a223cd72ca57102e28da0b8baca6e8ed3256122": { @@ -6859,6 +6971,20 @@ "updatedAt": "2025-12-29T16:46:14.969Z", "postProcessHash": "e897cb37d1a6f7ea6978ddc3355666bc02d184b4eaf24a51611497e981926695" } + }, + "58d9796554c2ece3d65dfe41c3745c9c78f86c93601313aa6e9e164acbb50711": { + "zh": { + "updatedAt": "2026-01-06T14:17:58.839Z", + "postProcessHash": "4148536c96c287f7721e963816acc3f395c17decd00961e2707a9e9f67e40760" + }, + "ru": { + "updatedAt": "2026-01-06T14:17:58.844Z", + "postProcessHash": "c3d7b09cf0852c1a092ae4bfe74cca5a36b5acb75ece3f441e309ff0de022f5c" + }, + "jp": { + "updatedAt": "2026-01-06T14:17:58.848Z", + "postProcessHash": "8cae4a7b38cb0a2f3ef530838ac831864944acce1a04a2b6b637269c4522e5c6" + } } }, "92c0194ad47f6f3783456c71cb41126e5e6a274592d0987747c5db9948f5f2c2": { @@ -6925,20 +7051,34 @@ "updatedAt": "2025-12-29T16:46:15.078Z", "postProcessHash": "a7a439564da90d3349a7be6aca69b898b4eec544893e7cc92dd3376f67be3ed3" } + }, + "885f904eb92f335aa6c33e4d1961307aa56b73dc2ee7900093b3fc931c96933a": { + "zh": { + "updatedAt": "2026-01-06T14:17:58.783Z", + "postProcessHash": "e6e8fe851dd75f295b13420fe7115d1b14a3f061cb8f272a4f194cf7fbe5ee32" + }, + "jp": { + "updatedAt": "2026-01-06T14:17:58.787Z", + "postProcessHash": "03fec3425ceb2f1150b23aa38439a373207da0ec70463158f76e82bb4902ad7c" + }, + "ru": { + "updatedAt": "2026-01-06T14:17:58.792Z", + "postProcessHash": "8620270a488b730003e52c89e7c7ff04fb95a1f90bf36f84256fbb4406df17f3" + } } }, "9b90a0dfa5536d6059d87dc8f5e817097c8b7bb53db517bff51a83c3e4c282ee": { "3e080983011ca5e98fc432fd4170067d4807f3aaa1e1114b8ec36d58af28fa38": { "jp": { - "updatedAt": "2025-12-29T16:46:14.941Z", + "updatedAt": "2026-01-06T14:17:58.631Z", "postProcessHash": "7a2d10b335f63f31da6436e0466a182ff1f46d5d9a10152f358f31a78c990b59" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.944Z", + "updatedAt": "2026-01-06T14:17:58.746Z", "postProcessHash": "954476987ebe6486ae39e25a4411783b3726e7b0185ae8529a7bfcb76b036efd" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.940Z", + "updatedAt": "2026-01-06T14:17:58.630Z", "postProcessHash": "0f1c58beb60a440c3ed1de4fe1ee386ad4391dd0cdb2b7bbd6dffd0a6535052b" } } @@ -6985,6 +7125,20 @@ "updatedAt": "2025-12-29T16:46:15.054Z", "postProcessHash": "5d25dde00fefc865fcc678f564c6ed5893e2ff5356e1201a69914da363ae1db8" } + }, + "aea5ac7a748d31640ce71af7538dc8670e75247599e8b9f4c917dd584489cb1f": { + "zh": { + "updatedAt": "2026-01-06T14:17:58.726Z", + "postProcessHash": "a67a14b002c5c3b3b11c8b990b082f59bc817290111ebbed3a132863d61a8886" + }, + "jp": { + "updatedAt": "2026-01-06T14:17:58.787Z", + "postProcessHash": "2f4d621d9122a3c9e80668730147e39f259211a968e7216b3b4cd6afe7ccb5b4" + }, + "ru": { + "updatedAt": "2026-01-06T14:17:58.796Z", + "postProcessHash": "449cee0c9fd4442b84d9e505a04c2c20132ba05798422194fc4a72c27c3681c9" + } } }, "b12e51a32d37bb2fb10917322e67f8c70cee8f595c143cd1b629cbf918f6b7b1": { @@ -7001,20 +7155,34 @@ "updatedAt": "2025-12-29T16:46:14.966Z", "postProcessHash": "8e21fda480ccde5dbcc93c1044a819b0147d798e8e60097d9b1f51da75766d10" } + }, + "cf95029519554fdb2230d018a8625821b908a3fb6f59ee0813486c80bb36467b": { + "jp": { + "updatedAt": "2026-01-06T14:17:58.818Z", + "postProcessHash": "8a95dfd01cd246dc11593446e442b108fa729c36ea52b629305dc4e37aa9ab04" + }, + "ru": { + "updatedAt": "2026-01-06T14:17:58.821Z", + "postProcessHash": "3822b5622547af1696cd6153e35414335dc1bb171a3b85adff5fa40b845f854c" + }, + "zh": { + "updatedAt": "2026-01-06T14:17:58.823Z", + "postProcessHash": "3a1a906202915ebb6feaf81f7f731c9d2ee031fc98036e9bd589109ed2ed3a47" + } } }, "bb0a1d7136d43d7b6bb4fa9a54f344ca0e81896a5eaf9cc6ef57b8c3aa682779": { "399cd03c18db8759846f978c253d288ef4caab87adb1838ee5aed970412744bb": { "jp": { - "updatedAt": "2025-12-29T16:46:14.942Z", + "updatedAt": "2026-01-06T14:17:58.632Z", "postProcessHash": "1169f4ff5cdcb958e87e03dcc679ed282348f080a1e996b389c1eb55594d031f" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.946Z", + "updatedAt": "2026-01-06T14:17:58.748Z", "postProcessHash": "91b3864ebfb901b02158f7f6bfb0dce51fca72935a0a5356ff418eaba28612b9" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.032Z", + "updatedAt": "2026-01-06T14:17:58.753Z", "postProcessHash": "82fdcc1ddd7ab988467dc457dd3c7f76bea931c2dc375cb86e55eb1b92606ffc" } } @@ -7022,15 +7190,15 @@ "c9bb01545754a986ab5cb4d637d8745f995e8c5243183cf90e72563584cc924f": { "efe17e7594347ac3238decf2b1daf336a87a883f6d30bf4a916bc5ae75b80dc6": { "jp": { - "updatedAt": "2025-12-29T16:46:14.949Z", + "updatedAt": "2026-01-06T14:17:58.635Z", "postProcessHash": "942b77d5cdcbb48a1962cef607bb00aad19bab18c13fad40a65e49052a7a6425" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.937Z", + "updatedAt": "2026-01-06T14:17:58.628Z", "postProcessHash": "a365d9d0c4ef42abd2226a87b858f2f2226373eb037530a6a152e0390e489587" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.950Z", + "updatedAt": "2026-01-06T14:17:58.636Z", "postProcessHash": "6c1452b831fc4f08167519de9ee7a195a4bcca7cab15d3befbac87bca0ad87e1" } } @@ -7038,15 +7206,15 @@ "e814a9ccad02d86ef7c915fb695045529731c882788157b39795b3d624875c39": { "e078c263c4a0f84949c189cd1b90be6b54b0117004a43d0171ca1e7dbbab8fa6": { "jp": { - "updatedAt": "2025-12-29T16:46:14.951Z", + "updatedAt": "2026-01-06T14:17:58.637Z", "postProcessHash": "f1463a2521bcc9d0cf8811cc498e91a33ce3236444436bf0af76585cce09b93b" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.952Z", + "updatedAt": "2026-01-06T14:17:58.638Z", "postProcessHash": "b6daa627bf73308af87e6a5a14c9a4061ef04187da792b2ac1efd8bc2b1d6077" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.950Z", + "updatedAt": "2026-01-06T14:17:58.636Z", "postProcessHash": "1a3c532363f7cde26299d5ebaf455caa84ca603dded3e9e08e4179f766989811" } } @@ -7054,15 +7222,15 @@ "f4614a808acf58ed3907dbc80a1d159bc107dde839623cbee9705514996e1fc7": { "ad253066ead1dba2ae292160fbbd6c6d76963231fdc98e27296a51ffab627b05": { "jp": { - "updatedAt": "2025-12-29T16:46:14.949Z", + "updatedAt": "2026-01-06T14:17:58.635Z", "postProcessHash": "a53d4fbcc3b815037ae072a6ed4e5561f75416003951ab8e784817a6b31d3d57" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.939Z", + "updatedAt": "2026-01-06T14:17:58.630Z", "postProcessHash": "f3686ac5c4c89bb95381d8fe75f283f0b666ca9f5ae03f35419e74c248e6e81c" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.942Z", + "updatedAt": "2026-01-06T14:17:58.631Z", "postProcessHash": "48adb87b68132b026afda0d2b4932b98a40461a913d16e32e3afd2124a3121a9" } } @@ -7084,15 +7252,15 @@ }, "feca4500f1c16c1ae1d9c2d73033a7596e677c428958139388e9dcb885c9bcdf": { "jp": { - "updatedAt": "2025-12-29T16:46:15.058Z", + "updatedAt": "2026-01-06T14:17:58.769Z", "postProcessHash": "90b2096de5845a757faaa0d58182fdf96e6a590b6f3dfef0d9942997e87d3ffd" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.059Z", + "updatedAt": "2026-01-06T14:17:58.769Z", "postProcessHash": "c218f9da5e2ee29a67b3ce7ff50ad3a71bf616022352d48eb4749a41b4c7fca3" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.063Z", + "updatedAt": "2026-01-06T14:17:58.775Z", "postProcessHash": "7d4293966792e404f6db820aa27a53152e6e4c5e6f997873e8ccf5d4840f1696" } } @@ -7114,15 +7282,15 @@ }, "64e73370be129fac2cecba01fca870e7203cb7b9630ae88dda8504cb2072f54c": { "ru": { - "updatedAt": "2025-12-29T16:46:15.045Z", + "updatedAt": "2026-01-06T14:17:58.764Z", "postProcessHash": "8e2b56515f48b161a6d3c5248a3c0240714e37c50a1f0458e43875cafd061a72" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.085Z", + "updatedAt": "2026-01-06T14:17:58.850Z", "postProcessHash": "104170bb3bcd5fd4971e65bcab134c192711f1d2564e76f7605c63f512e7714f" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.054Z", + "updatedAt": "2026-01-06T14:17:58.764Z", "postProcessHash": "365db7c2a69291cad220d969e330f3be199f6673b4f691fb8a3b23883f698028" } } @@ -7144,15 +7312,15 @@ }, "bc140e6a5eb8a5476619141855897040a278707c4dfc08e28f47fe7bbfd2f2ce": { "zh": { - "updatedAt": "2025-12-29T16:46:15.162Z", + "updatedAt": "2026-01-06T14:17:58.939Z", "postProcessHash": "cc1797f3e6e1d20cbaf75e244d02f0d050f1e97ab1c09b78aeab2b769da36328" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.163Z", + "updatedAt": "2026-01-06T14:17:58.940Z", "postProcessHash": "48039a97a01f7159fb977fc0040e962a8ea833d0afc0f7057baab2e6d955c862" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.164Z", + "updatedAt": "2026-01-06T14:17:58.940Z", "postProcessHash": "3eb88dc28112e440e8abcde8070ebadc1c7d5affcfa5af49de212c7ac1f03e84" } } @@ -7160,15 +7328,15 @@ "296596880e307a8996c1b3d2f22b414f048332caf4d2083980ef5b77a8a5fdba": { "8891345d058983824a4006d332ff1e3d458871da85894bef04abd4b4a563fce5": { "jp": { - "updatedAt": "2025-12-29T16:46:15.039Z", + "updatedAt": "2026-01-06T14:17:58.881Z", "postProcessHash": "4d7d1537e85fd65498526329315f0a0ad52722a6017a0f1cd3ab8c687de48ff2" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.038Z", + "updatedAt": "2026-01-06T14:17:58.880Z", "postProcessHash": "eccb713fef59ca6d42473fea02a0edbb15930dc08d935cda2925286242fd9b67" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.040Z", + "updatedAt": "2026-01-06T14:17:58.882Z", "postProcessHash": "33ed2606ee8c2f54ce72e71a3ba5890d79e79b45fc1254790063d9b8e2423ddc" } } @@ -7204,15 +7372,15 @@ }, "fbdd4a90797fc2152de5676647884f05ca94e165d58bc13a1df8a512072dcc27": { "jp": { - "updatedAt": "2025-12-29T16:46:15.044Z", + "updatedAt": "2026-01-06T14:17:58.762Z", "postProcessHash": "7b1a88517949de763735257c3c3450eb9429b36682238ce71e0982390d84ed22" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.044Z", + "updatedAt": "2026-01-06T14:17:58.762Z", "postProcessHash": "0eced7df014164a8564f6fca2ef5537ac4abcee5ce797f004f00efcd49dda50d" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.045Z", + "updatedAt": "2026-01-06T14:17:58.763Z", "postProcessHash": "009e6b3e202393d38100cc4de32726751e048467bfadf24464cfb0c8b1eb4867" } } @@ -7231,15 +7399,15 @@ }, "5db8938ef552c8ae84a16d6794b1f42e0311f9de424256966572b9563b1ef3cc": { "zh": { - "updatedAt": "2025-12-29T16:46:15.042Z", + "updatedAt": "2026-01-06T14:17:58.760Z", "postProcessHash": "a83496d3b1563c8bfd32e81d8da4f7d215cc77682089debaddbe9508059d2bdc" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.043Z", + "updatedAt": "2026-01-06T14:17:58.761Z", "postProcessHash": "f8f96e2d968115ac82c9acf311b55c35fd189411d55b8e59024471c4539afcaa" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.043Z", + "updatedAt": "2026-01-06T14:17:58.761Z", "postProcessHash": "f5917e3dcdd63e5ccf126189abc428049da039a75eef0eebf7f4a5399f560d1f" } } @@ -7247,15 +7415,15 @@ "4088be7256afa16e0829b465fbe851d2600d3bbb21c2610210c4075f713ee668": { "5263f7887931f9fbf63f2e9b15b7ccdd2c7157a7fd13cb67ba7bb5a4724f5c9f": { "jp": { - "updatedAt": "2025-12-29T16:46:15.031Z", + "updatedAt": "2026-01-06T14:17:58.876Z", "postProcessHash": "efd6669ce81cf16cb972400b3312d74bd68921265d6fa38eea04516f95cc059f" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.027Z", + "updatedAt": "2026-01-06T14:17:58.751Z", "postProcessHash": "d3efb7c9f4b81afced913e57bec6c93a3291d3ef6eeb30e1785ed170d83c57cb" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.030Z", + "updatedAt": "2026-01-06T14:17:58.874Z", "postProcessHash": "b0b2f3b1468df01a7b6593f89aa2db47b669a1f4b00c44980e8c918002dd4b97" } } @@ -7263,15 +7431,15 @@ "434c8c6575a1c96da70aa7b25b8f2386d3813854c5fc71c4731982bf93c5b551": { "33868413cbf230f1914b6622c0fa2f639a7ea45c3142a4368aa173e8a03fc411": { "jp": { - "updatedAt": "2025-12-29T16:46:15.028Z", + "updatedAt": "2026-01-06T14:17:58.751Z", "postProcessHash": "9f18250dac4a95b0b4598ef83c15f0caee43068a8ff02a8c9ee3cc3da5b714d9" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.034Z", + "updatedAt": "2026-01-06T14:17:58.878Z", "postProcessHash": "e848c56ac1efbd4ca32666091d39b46b7f4860c4a4cf048e4457f83b661d0fba" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.035Z", + "updatedAt": "2026-01-06T14:17:58.880Z", "postProcessHash": "43f66fc674f5d1a1b01087b3dbedc92153888572310d40f8c15d8ea23f64b22e" } } @@ -7279,15 +7447,15 @@ "5199e54b28e8b206af31f52654ebdf21657caebae6cfe9e8a655ac120217243a": { "cce5c749f00809c0ebd64bf0b902ba923e07ffe3f6cf94b3e416613a539be455": { "jp": { - "updatedAt": "2025-12-29T16:46:15.122Z", + "updatedAt": "2026-01-06T14:17:58.913Z", "postProcessHash": "ed9974b325e5df91bf2c35de43340f71e8a546760f61b53ee7cf74c6c21f6e15" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.019Z", + "updatedAt": "2026-01-06T14:17:58.737Z", "postProcessHash": "ca7568fe00bffa738ba75cba865ae4979dd1180efac0ecdc08f05966aa7ea45b" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.123Z", + "updatedAt": "2026-01-06T14:17:58.914Z", "postProcessHash": "fd5d3a9436d49a764675f59e48355eda5d74581979286de1d3f75d62efa33789" } } @@ -7334,15 +7502,15 @@ }, "128408afaed8ae7e585249d44b1e85a3abfb6cb102256727551f7fdee26ae36a": { "zh": { - "updatedAt": "2025-12-29T16:46:15.152Z", + "updatedAt": "2026-01-06T14:17:58.927Z", "postProcessHash": "93ffade1e7a375d93f75393feffd30882a5fcaa949cfaba66d5b17d1b5a4b30d" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.153Z", + "updatedAt": "2026-01-06T14:17:58.928Z", "postProcessHash": "c165a1baf88c797abbe381b8ae444cb0c5bc0c5c53b916eefe6cb92030c9de90" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.153Z", + "updatedAt": "2026-01-06T14:17:58.929Z", "postProcessHash": "e25822cf56ff56592bb50edc1e3989d020bff24a8f7ffee303592e7d57ea966f" } } @@ -7350,15 +7518,15 @@ "7e14895b92e515a566c49df3e172fa8ef0794a3911f227fc4a71c6dba5f490d7": { "99b76fc928beec586c17a5cc43f58eacac997ef5729cc011bbfca37d37c70a79": { "jp": { - "updatedAt": "2025-12-29T16:46:14.938Z", + "updatedAt": "2026-01-06T14:17:58.629Z", "postProcessHash": "63da98a9eeb5851d127538ef59ed7542b1b0cca28b2b3d5de4dfe4274fe2c7dd" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.937Z", + "updatedAt": "2026-01-06T14:17:58.627Z", "postProcessHash": "67c8a0a8c9ec592c1ef47d654d418bf00842779e6f2e49d11dfe4fbed22938fe" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.939Z", + "updatedAt": "2026-01-06T14:17:58.629Z", "postProcessHash": "9ccd5aa3156902f635306922a059f18e804327d40a0ee88e0a66ed6fe82b3b7a" } } @@ -7366,15 +7534,15 @@ "818f1c114e04624a9ce346e723231683afc9efb77f488e698cfae3f76123798c": { "7802fce1dd531f1d9274394e1014f26f608015405f1fca427d28159a91303ceb": { "jp": { - "updatedAt": "2025-12-29T16:46:14.941Z", + "updatedAt": "2026-01-06T14:17:58.741Z", "postProcessHash": "314e76c3e76e5cacfa2c47795ead57344aab199343600fbbfed5c98ae997faeb" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.950Z", + "updatedAt": "2026-01-06T14:17:58.752Z", "postProcessHash": "a46aea925c8aa3c2954ea5771b744811d5adff38c432f1f5c8a4c88ad528a3c8" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.933Z", + "updatedAt": "2026-01-06T14:17:58.734Z", "postProcessHash": "a38c04f6b4ebde36ced2e3255381ce7e02bafa6affe24a29aa8688f9e7eddec8" } } @@ -7382,15 +7550,15 @@ "89be4ef20c9e5fe95e7e9565ff5aa903eef3eacf9ef5bbff1fa371c4ce7dca62": { "a6c4756c4f81974e9497aa328cf4f067d2e218a364817e6b3353285d9d897dbf": { "ru": { - "updatedAt": "2025-12-29T16:46:15.024Z", + "updatedAt": "2026-01-06T14:17:58.748Z", "postProcessHash": "830d8110363df93dd710c28c0cf9af48e051141c818e171f42741f104c20e21a" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.032Z", + "updatedAt": "2026-01-06T14:17:58.877Z", "postProcessHash": "72ef369911e700b098d6ddea992e3115676ca2988a8ecd028bf93fe364a4e82b" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.024Z", + "updatedAt": "2026-01-06T14:17:58.744Z", "postProcessHash": "4a1c82afe39eb440e3df274d6c3952d494de5ea09541b3ccaf686ea2581753d2" } } @@ -7398,15 +7566,15 @@ "92e7d4855f47bd7172f2143c5bf24c013dcd99fd681ef3d53e75a588365ef40f": { "4aba2abdc8ba16a13f0e130fc8a1c260887158a147901de0d5f87498741d53f4": { "jp": { - "updatedAt": "2025-12-29T16:46:15.030Z", + "updatedAt": "2026-01-06T14:17:58.875Z", "postProcessHash": "862e35eb2d0d45dded101fb341da386fdb87932bc724a70e19461d5707d5a23e" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.035Z", + "updatedAt": "2026-01-06T14:17:58.879Z", "postProcessHash": "a4b98e5a66c501d66a8972dec0e080d6317f23fe9226e8854524687a1612769a" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.033Z", + "updatedAt": "2026-01-06T14:17:58.878Z", "postProcessHash": "01e16339c79a6f02328b39ea35d2e9d15ff94ea0827311fa93ac3b5c4fda0c49" } } @@ -7428,15 +7596,15 @@ }, "b69f15a8b9967430c65d733e18917264bcbedfc9597a7178e0d72efc4afde931": { "jp": { - "updatedAt": "2025-12-29T16:46:14.944Z", + "updatedAt": "2026-01-06T14:17:58.744Z", "postProcessHash": "0ffa7364210810a17351c8649b4a864b77797249c8e129752a410de50c14763c" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.945Z", + "updatedAt": "2026-01-06T14:17:58.746Z", "postProcessHash": "452d74495bb102c1cc47d96a39a16d2fa028f86a060648035ef658ca20898311" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.945Z", + "updatedAt": "2026-01-06T14:17:58.747Z", "postProcessHash": "a54670ba2dd1c51615a9ecd6d82dd9b064cb8778b7e4f95efbbb7b7edc2fee41" } } @@ -7444,15 +7612,15 @@ "bfa678e1e376ec015ac9221d88b1803ce7811869f141b22241c78abacbd547fe": { "8a6e9f00b55f3b0576f01c6ef20c5163ebaa186d9ca2ba3a241ee00d1040de72": { "jp": { - "updatedAt": "2025-12-29T16:46:15.036Z", + "updatedAt": "2026-01-06T14:17:58.756Z", "postProcessHash": "0b57afaab876f611b8b3dba4b4bf79bcca680c83bd0e89c2ec6516ceb40b97d7" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.037Z", + "updatedAt": "2026-01-06T14:17:58.756Z", "postProcessHash": "1a72d832644fded81c4f16dd869a606922331e5d81130160d84b4cfeaee30f4a" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.038Z", + "updatedAt": "2026-01-06T14:17:58.758Z", "postProcessHash": "e226850674eb9826613d9fcc3a0ea88c76a24f43debade63fee41dca1ec536ea" } } @@ -7474,15 +7642,15 @@ }, "6d1f661b12426879596fbacfefecb53d0e7f51fcae0a4b335c7cd6bbf57f6c43": { "zh": { - "updatedAt": "2025-12-29T16:46:15.086Z", + "updatedAt": "2026-01-06T14:17:58.851Z", "postProcessHash": "1c10c3b43d8febaf7fc21871ce996f5f81736cd2acd45ac9c2449c148aa0bd23" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.086Z", + "updatedAt": "2026-01-06T14:17:58.852Z", "postProcessHash": "eb48d253fba11ee0342beae7dee7e0cec6003041435a3b14fe44196693cdb879" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.087Z", + "updatedAt": "2026-01-06T14:17:58.853Z", "postProcessHash": "ae9a9b1ab921e9eee96121a720e94703e5f56530759b7551e06d4154e36d9599" } } @@ -7504,15 +7672,15 @@ }, "ea592ec097aecae346cd44dca256da49ecb96a8c209de11635b83c5ccef263ba": { "zh": { - "updatedAt": "2025-12-29T16:46:15.057Z", + "updatedAt": "2026-01-06T14:17:58.768Z", "postProcessHash": "761c221425782684170aa2f0babea57101ec41031a0d3462f255414dd4b7317f" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.065Z", + "updatedAt": "2026-01-06T14:17:58.777Z", "postProcessHash": "87f8404cf432a6bb00001c833b7f83f69f3b7630e278acb5294d6852c142700b" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.074Z", + "updatedAt": "2026-01-06T14:17:58.782Z", "postProcessHash": "c8ed157497201b8bd4426106107f85f4697f5f85cc6643ea18c098c203d6c003" } } @@ -7534,15 +7702,15 @@ }, "3eb3e2a755552b2c830f58e7253ada568bfc3b2717026c698a0b5a5d636974e6": { "ru": { - "updatedAt": "2025-12-29T16:46:15.062Z", + "updatedAt": "2026-01-06T14:17:58.774Z", "postProcessHash": "5b5c4fa54c448136b46f3e07cd1e3245fae7077837319fffb2f6783f089a4bbf" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.066Z", + "updatedAt": "2026-01-06T14:17:58.779Z", "postProcessHash": "6dc55d6cf316b80ac49f509c5db29afde5dbc7f5d18cf33f4536a5f5b871b887" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.070Z", + "updatedAt": "2026-01-06T14:17:58.780Z", "postProcessHash": "1566fb0f6c3393eba1d567f77d843906fad2cc142f5211683d8d21541747f11f" } } @@ -7575,15 +7743,15 @@ }, "16dad15f9b5a43191f4ee9dafc9326bcb183f282467fd9ef94fae54a3de0a107": { "zh": { - "updatedAt": "2025-12-29T16:46:15.155Z", + "updatedAt": "2026-01-06T14:17:58.932Z", "postProcessHash": "2be4eb38cb42cbb50c742ac3df2abc4ee2a8e97c9056b06e1e8c4aab88d0ef2a" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.159Z", + "updatedAt": "2026-01-06T14:17:58.936Z", "postProcessHash": "258b0979315293ad7f19d9c708a86d326969f505de98a96ebef6b2213ff67633" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.160Z", + "updatedAt": "2026-01-06T14:17:58.937Z", "postProcessHash": "45328555a2bf9901f39ea6720979ee4f4d9dc5bbf4deff927e38edb802bff718" } } @@ -7605,15 +7773,15 @@ }, "894695ecc539be760c165f9f10a02a36d25b2906c1d3e3b70e2620c2f67854fd": { "zh": { - "updatedAt": "2025-12-29T16:46:15.156Z", + "updatedAt": "2026-01-06T14:17:58.934Z", "postProcessHash": "fa334129b0c1f5e6c4d1d5a860a5877415e53c04f212a941baa2aa5d36e1f574" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.157Z", + "updatedAt": "2026-01-06T14:17:58.934Z", "postProcessHash": "01190f8a953bcfff2040234efb66722d944adae5414de7ef73a27ff1b3a194fc" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.158Z", + "updatedAt": "2026-01-06T14:17:58.935Z", "postProcessHash": "e7c222b7bb420c1c5e3e7595b5a99d32b3170fb1cd6bf187aea634dad8a7a28b" } } @@ -7632,15 +7800,15 @@ }, "66279b676a09e82d63bf92aedd7dd90d5d48d13d70786aa3d162976e96a2bf21": { "ru": { - "updatedAt": "2025-12-29T16:46:15.016Z", + "updatedAt": "2026-01-06T14:17:58.732Z", "postProcessHash": "a716ae47586ae04fee13d615fa31ccc85bea240cb6bd7a5eba8faffd1e9797e4" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.016Z", + "updatedAt": "2026-01-06T14:17:58.733Z", "postProcessHash": "ae967363a40d0d0bae739efd4e74a401c21947e1d75813899f3ca2765335b68f" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.017Z", + "updatedAt": "2026-01-06T14:17:58.734Z", "postProcessHash": "7ad81b640660878b8583d183c4f46dbbd7c0afc910aecc49e24550cab4ad76b1" } } @@ -7662,15 +7830,15 @@ }, "f04bb74d014c67b174ff1f3ddcac9ebe75beee779b5b785d29ea2b128b7e747d": { "zh": { - "updatedAt": "2025-12-29T16:46:15.156Z", + "updatedAt": "2026-01-06T14:17:58.933Z", "postProcessHash": "ed5b513a2a0769a39b15ec716c68639721969e4d5d38e2f261a022253aff6bac" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.157Z", + "updatedAt": "2026-01-06T14:17:58.934Z", "postProcessHash": "39b21fcf891b2d91730267662d8a87a7e4d6d6c8417ec5f655ced62eeaac4122" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.158Z", + "updatedAt": "2026-01-06T14:17:58.935Z", "postProcessHash": "0744e3f46a8166984afa39322a180503386210a0b96ae8f38d871ec44be16909" } } @@ -7678,15 +7846,15 @@ "242c81539a7d39347e31852ff01c14ca7481b428f62ec2a9a8ef8923e319fd70": { "ff718abf7b9337cb72f9728d2ee59f8366fc732135cec35be718b34d911ff036": { "jp": { - "updatedAt": "2025-12-29T16:46:15.240Z", + "updatedAt": "2026-01-06T14:17:59.062Z", "postProcessHash": "f5c4fefb3a92417306cf2838611df0be166b2fd73ce3f64891868c22694a4af9" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.166Z", + "updatedAt": "2026-01-06T14:17:58.946Z", "postProcessHash": "3fa8c22acfbdb045f19d65783c563f091e6987c8c440f4be0ea26502088f5173" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.244Z", + "updatedAt": "2026-01-06T14:17:59.067Z", "postProcessHash": "bc42b86e8c39e6dd6cf9e42d255544a4be41b14c2be4c35e56c2cbc1a0064cc7" } } @@ -7694,15 +7862,15 @@ "2ca1f06020b55585ef361cf2b43c9aa9e23ed32e9d0a80f58141cb6b357e2508": { "e8f70f164f2c79a05e20f2ea7598ea71abec4dd9a196fd990cb3b9f5f5250252": { "jp": { - "updatedAt": "2025-12-29T16:46:15.030Z", + "updatedAt": "2026-01-06T14:17:58.874Z", "postProcessHash": "9c046930bcdb3eb58b3c68abe4ebe3f87f515eb645ca504c504b1ccf98563141" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.025Z", + "updatedAt": "2026-01-06T14:17:58.870Z", "postProcessHash": "cc1ff01dbd89f5dc8a0bbe3f96c37b52e1d23486fdbdcaaf925c242159f855d2" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.026Z", + "updatedAt": "2026-01-06T14:17:58.870Z", "postProcessHash": "5dfb84272f507920b5200a07873956c67182107c9c67adff79c1025ae991e091" } } @@ -7721,15 +7889,15 @@ }, "6e3e04cc7119c0602d04810abb60bd15340766476b6dd90c89c802891040b74f": { "ru": { - "updatedAt": "2025-12-29T16:46:15.094Z", + "updatedAt": "2026-01-06T14:17:58.885Z", "postProcessHash": "6f582c607f5e3e6c3b253b0a49c3c865bf577f2ebfab4fddf3df621e1cdf9c30" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.094Z", + "updatedAt": "2026-01-06T14:17:58.884Z", "postProcessHash": "d08b5c0cbb0d64af9ba6ace71d113321dc9f9f935ae6d33f21b121a65c52cd49" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.041Z", + "updatedAt": "2026-01-06T14:17:58.883Z", "postProcessHash": "e76b19cd589d7eaea35fab6ebb0e931a2b858d9bd5c1b1ab20ddc8fae160752a" } } @@ -7737,15 +7905,15 @@ "516b68aad0c74f76c3c12fe30d1f7258569a0b66643da4924fd24d791f072074": { "55acd998caff6e952b47ceb372ae02d24533c50e2c2a2d341e32d84c2b4a01b1": { "jp": { - "updatedAt": "2025-12-29T16:46:15.235Z", + "updatedAt": "2026-01-06T14:17:59.056Z", "postProcessHash": "05ac9e4b9df98d6e4e1eebb07b9abe3057e6506d65f8bf6d0fe77302911dc80c" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.247Z", + "updatedAt": "2026-01-06T14:17:59.070Z", "postProcessHash": "7ead5655b6bb5139c4f7b45fdcf6198d62b050eead72e4ef548527af9bf4df3d" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.182Z", + "updatedAt": "2026-01-06T14:17:59.045Z", "postProcessHash": "8076b8f9ffad33fc675442f02abc9efbda3db76c6ef994084adb813ce5ed2814" } } @@ -7753,15 +7921,15 @@ "52d9303d908cc54e70744ee1b1e2e09e4cf8cb226c9925cebd341f9cac387001": { "71eaa12db00dcad81d12c60186209b5ab377404a70d4a18ee7d26b6ece5ff741": { "jp": { - "updatedAt": "2025-12-29T16:46:15.251Z", + "updatedAt": "2026-01-06T14:17:59.077Z", "postProcessHash": "bc2cef13d0dea5657e1c358a0f2a6efa73bcf3cb11a0d354fee0023277a50f9e" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.242Z", + "updatedAt": "2026-01-06T14:17:59.065Z", "postProcessHash": "a4c606a245abaadb2c66ffe1fdc82f80b6302e57a44bf6ccd9256ddcb65c7525" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.186Z", + "updatedAt": "2026-01-06T14:17:59.077Z", "postProcessHash": "588783e250ddf9f7c8d7871676d53d911a313f292d079897cc13ba62c8eb8a47" } } @@ -7783,15 +7951,15 @@ }, "68f2e835aa5827ab1190a0f6b5cc2c0d6603df0b44bed88e51aa296634b550d1": { "jp": { - "updatedAt": "2025-12-29T16:46:15.159Z", + "updatedAt": "2026-01-06T14:17:58.937Z", "postProcessHash": "0b543d978f2784ff65fd48e9a31510085df4848625485e992d712f6cc2bac38d" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.161Z", + "updatedAt": "2026-01-06T14:17:58.938Z", "postProcessHash": "2c7ccf39d39bf914b7cfa03bfd6f7a9103ff134733bdbee89809e9f95cde13e6" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.161Z", + "updatedAt": "2026-01-06T14:17:58.938Z", "postProcessHash": "686be900d7e4794ea42e02bffc14c1b8ecbd1d4025578bf7b85db7f290e6d581" } } @@ -7799,15 +7967,15 @@ "59eee6beba7ef7f4b2b1ab657b188c2ad938982b20b45febf1c21c4c7b23d916": { "379215258832c5b1b0beefd2f0012d327e4907cdb0e2564650bdb42214e2e265": { "jp": { - "updatedAt": "2025-12-29T16:46:15.232Z", + "updatedAt": "2026-01-06T14:17:59.051Z", "postProcessHash": "ea77cbd23aae07378d1aabada9942bcf6308f26c5032d5efdf82667a246ce8dc" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.250Z", + "updatedAt": "2026-01-06T14:17:59.075Z", "postProcessHash": "cffd6c9284f634c27e0c95c802dd93b0bbde6ca2a6e8e8cd76baff8ba366b120" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.247Z", + "updatedAt": "2026-01-06T14:17:59.069Z", "postProcessHash": "9ef4f0281935d6fca7db50b01d07e037cebeb6cedd9f529ea17b600aa9a6eb3c" } } @@ -7815,15 +7983,15 @@ "671c3c038f46cc2a350b67ff548f3064f3440f0912e1cada9cdbe60cb9c2971b": { "35a6b4b0da582ffce53ec6d62ecfa840b3fd54894bd3063441a0fb637cfcebb0": { "jp": { - "updatedAt": "2025-12-29T16:46:15.021Z", + "updatedAt": "2026-01-06T14:17:58.740Z", "postProcessHash": "9c7684a372ef9d36f9de20b17407405e2b6d6d8059d3010feb6ada3ebcf17d23" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.022Z", + "updatedAt": "2026-01-06T14:17:58.742Z", "postProcessHash": "f19aae74ee22a58fb368b4eb8450470ba4a0338914c79f7a4175de54eaeeca5b" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.022Z", + "updatedAt": "2026-01-06T14:17:58.741Z", "postProcessHash": "8a6974dd1361db06762535627d14c703b89035b5276dc6b11b84a6a2dd6a889c" } } @@ -7831,15 +7999,15 @@ "6baf2f9dc91a3aafdaf603aa070b6d303e0ca43f60c45975bd126c795f51bf6c": { "21159c4739b98c5874cd3f6e95850d863ba6be6c3a8978b327a9bef2d0bbda5b": { "jp": { - "updatedAt": "2025-12-29T16:46:15.232Z", + "updatedAt": "2026-01-06T14:17:59.049Z", "postProcessHash": "5e210530a3890b2360d0f33798f6c0e6ddaf389848bc0f76f0faaae6bf21f81c" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.165Z", + "updatedAt": "2026-01-06T14:17:58.945Z", "postProcessHash": "144489e400516735f7f643e48c2b1df82f1943958c364d596aa7449beac78aaa" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.235Z", + "updatedAt": "2026-01-06T14:17:59.056Z", "postProcessHash": "f62345fa5033815ece4f56f0820886f5222c3b62911fa1cfdc14e3d6c83618be" } } @@ -7847,15 +8015,15 @@ "85b69398b5611cad0ed97b26cf9ee7ab54989a0ec7615bc3aaabc2e0ae3c33ba": { "3069fe2c05efa1690a8fd9f6e9519528b8d09fe75d6fe914e613400f223a3e0c": { "jp": { - "updatedAt": "2025-12-29T16:46:15.241Z", + "updatedAt": "2026-01-06T14:17:59.064Z", "postProcessHash": "de16ab6e2f0b3e205e3794008af5450b551ae9eb8df24ba5d67b5c86240bfe93" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.182Z", + "updatedAt": "2026-01-06T14:17:59.044Z", "postProcessHash": "f8b5e93b88fe40262a1abaf7a1e1f738787ecea40c64acb4a34ef76496888848" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.243Z", + "updatedAt": "2026-01-06T14:17:59.066Z", "postProcessHash": "4bf86d36e9bf3cb46e4b3c142145a051773d06e12cba5067b14a3e469adb224d" } } @@ -7877,15 +8045,15 @@ }, "043aa88b2d4a1d628bcc7c0c859e57cbe61fe265d65cc609dc2bbbcbde903cfe": { "zh": { - "updatedAt": "2025-12-29T16:46:15.154Z", + "updatedAt": "2026-01-06T14:17:58.930Z", "postProcessHash": "30916dacf02e230afca84f85b225278b8130d924191da0cbae1d281d1673e85d" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.154Z", + "updatedAt": "2026-01-06T14:17:58.931Z", "postProcessHash": "f0910e0fb013088424f37091433e5b19852ed08f147ff7db7213147e05822120" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.155Z", + "updatedAt": "2026-01-06T14:17:58.931Z", "postProcessHash": "09f31960b43c46fe5ab1ee694a4204031ce69d491087dd97afd3102a5d5c46c9" } } @@ -7932,15 +8100,15 @@ }, "aaa6cc6eaddaa432539e97a444abd14d5e5e7afd5322611d7b988f986730cfd3": { "ru": { - "updatedAt": "2025-12-29T16:46:15.150Z", + "updatedAt": "2026-01-06T14:17:58.923Z", "postProcessHash": "2cbffe4465f3f19cc5a24f2054b5b72d401251454aaa59d588639bc4d896f111" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.150Z", + "updatedAt": "2026-01-06T14:17:58.925Z", "postProcessHash": "564705b0c2839a43c56c21fa44134e067d0a8cbfe0fe6153a31ab0a80a67118a" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.152Z", + "updatedAt": "2026-01-06T14:17:58.927Z", "postProcessHash": "6c89b91a4111482751a0a46d017c9709dbd76552918e3f28b826f642f572cf43" } } @@ -7948,15 +8116,15 @@ "b326d89975e77fc4fe5e09c43f7d7dd72353ad2de4c76604cfa709d60f39cee1": { "41f6f44d6560ff4b7b4a8919ea06169035e1ab5f00669a7875013466734ef23e": { "jp": { - "updatedAt": "2025-12-29T16:46:15.184Z", + "updatedAt": "2026-01-06T14:17:59.047Z", "postProcessHash": "8609ce1e482a7a9e2c5f261130770a4dc0ee885bbde49b76fca7f5212e9366f4" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.172Z", + "updatedAt": "2026-01-06T14:17:58.959Z", "postProcessHash": "bb56e86935b03bcebe54cce84ca66a87745cb917234e1425b54d1d2e7f04b700" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.178Z", + "updatedAt": "2026-01-06T14:17:59.042Z", "postProcessHash": "350dbebe3bcf8c4267e10721bc589a52846ca3ec1323f9c3b74ca6a32338988c" } } @@ -7964,15 +8132,15 @@ "c0388925c5cbd757f80d526185840b27148d3d9f44442adba2d651d360e9f8f2": { "fe663d93e8ac7ca2bac8f4753fad3eb0d0150631ba2d2c4e3a85eb5fdd27dcf5": { "jp": { - "updatedAt": "2025-12-29T16:46:15.029Z", + "updatedAt": "2026-01-06T14:17:58.873Z", "postProcessHash": "99c7dc120b57856939c44dab24531054d323df80cfa6002e597d30524596bf15" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.028Z", + "updatedAt": "2026-01-06T14:17:58.872Z", "postProcessHash": "a7f0c44743066b576425ef08cef1079baa68333ec5c053cbba667d6b34d04ade" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.023Z", + "updatedAt": "2026-01-06T14:17:58.868Z", "postProcessHash": "ed3d60f9d1678751b9d26b507197a9dfa360709b59aa0e942779d0d6514cc18c" } } @@ -7980,15 +8148,15 @@ "c8f7fa8f88301edf51171572623222cac00927836c2b38e0b936dc6808969163": { "0bdde8ad92c2b56e1260138b52e278dda8cd06b984643902593d0d0cd7fb1ef3": { "jp": { - "updatedAt": "2025-12-29T16:46:15.122Z", + "updatedAt": "2026-01-06T14:17:58.914Z", "postProcessHash": "0f61441a74fc98c8042e6363eddd6587dee1ece680c4d9d6e53fa779a0e3c9d0" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.026Z", + "updatedAt": "2026-01-06T14:17:58.871Z", "postProcessHash": "13cf207240e17c6d07e0d85f9129cba11c0320fead216950dfb405721b8eb40b" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.027Z", + "updatedAt": "2026-01-06T14:17:58.872Z", "postProcessHash": "80c833d8b95443723d2990d6fc87edff760c1040b9fe4d43c9de42d60b02384c" } } @@ -7996,15 +8164,15 @@ "cafe8a479283375a185399d18cc4d2444fa4afed320fccd79e4b21ccc00756f3": { "9b037a637113b68681c5e24a1691633df3e7e4ab645c3430fdfbded768ba8392": { "jp": { - "updatedAt": "2025-12-29T16:46:15.186Z", + "updatedAt": "2026-01-06T14:17:59.075Z", "postProcessHash": "1a43a6dcea730d46333ca542c292351ef0cb26cc65b0d4cd3fa503fbb497a464" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.185Z", + "updatedAt": "2026-01-06T14:17:59.050Z", "postProcessHash": "cceff112230ef086ff147fcbb7bc4493366e1d6f012715fbd8840a25c1afff44" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.168Z", + "updatedAt": "2026-01-06T14:17:58.952Z", "postProcessHash": "472796014d6df12023ec75b10d31804a6a13ee994d3d003e3c10028844cdae9f" } } @@ -8012,15 +8180,15 @@ "d66c9f0b5bf68d56ccdb239450a2def7e044ee7dbb38a6df724002e0578ee93a": { "b17e684424dd7e3c1032466ae89d5b4b0753b2b11488a3c5480069b467bdfcd1": { "jp": { - "updatedAt": "2025-12-29T16:46:15.022Z", + "updatedAt": "2026-01-06T14:17:58.743Z", "postProcessHash": "be92473bee0493da18c3c62bccad4fa00f84235089c933c2ae2be778ba7e1225" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.021Z", + "updatedAt": "2026-01-06T14:17:58.740Z", "postProcessHash": "a451fa05ecb55892e5c9ca94e49886c53d626c99c62d7b0da119bba06a3c5b85" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.025Z", + "updatedAt": "2026-01-06T14:17:58.749Z", "postProcessHash": "94b2196e63141e50f76f735236063bf0387783a8f55fa282a2bc00194ef40406" } } @@ -8028,15 +8196,15 @@ "dfb826f61e2d3065b29aed9473793d5e9482ca0064907298ee886dcc849a2f30": { "095ffff652d364d8d2d207b5c2495c8f89b149222bdc9348bc26c7785dc49095": { "jp": { - "updatedAt": "2025-12-29T16:46:15.240Z", + "updatedAt": "2026-01-06T14:17:59.062Z", "postProcessHash": "808a18c391b1fc8086a00a797eb0077442969ec840b597e35ccd6ac021cc3467" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.249Z", + "updatedAt": "2026-01-06T14:17:59.073Z", "postProcessHash": "b2d4b92064264c41b06011776bcda44ede3ef34654b11b0125e701adbd34ea03" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.239Z", + "updatedAt": "2026-01-06T14:17:59.060Z", "postProcessHash": "6086916e3335c10e607ed6652c0f38cfa7b02967990de9e59b89f93083132cf9" } } @@ -8058,15 +8226,15 @@ }, "8efdc3355b28480e1ec7cfabd3d805be7b3ecf9d063d7178df065ae22db1cb26": { "zh": { - "updatedAt": "2025-12-29T16:46:15.271Z", + "updatedAt": "2026-01-06T14:17:59.117Z", "postProcessHash": "71bb48a56a0899c34151ca61a32ecc252ffd0eabed2fe622c0dd4a874a19698a" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.272Z", + "updatedAt": "2026-01-06T14:17:59.117Z", "postProcessHash": "0b3ac8570fda6db473eb21709f0b5e56c1542ee3c5a22ba95b705e9325d75899" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.272Z", + "updatedAt": "2026-01-06T14:17:59.118Z", "postProcessHash": "584da97d12bbec53df75afa8472dddb462c7460d1fbca7376d99d669b8bf7a74" } } @@ -8074,15 +8242,15 @@ "fbf74a86f665ee9aea4f220700429c38da217030a00f7a905ec8171cb63a5f49": { "379c9b448d13ae5617010e62fc925030e206c603b76eb2ab7ab83dddade8d46a": { "jp": { - "updatedAt": "2025-12-29T16:46:15.238Z", + "updatedAt": "2026-01-06T14:17:59.059Z", "postProcessHash": "12798d4740bc2ee11f08161d50d416fea78511ad94e5c2d44891793083780398" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.174Z", + "updatedAt": "2026-01-06T14:17:59.039Z", "postProcessHash": "6c0432058f1ae8bc36419626b2f02e47347a5292dd4a751efa69db28eddd5820" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.175Z", + "updatedAt": "2026-01-06T14:17:59.041Z", "postProcessHash": "e3955804863d02d0f6cfaa240645b703f1e3a6922cf09ea661aa202f00516a67" } } @@ -8090,15 +8258,15 @@ "1204bfc3bd6e857b87b1b5a9dd1156c45498c5d9e64e68cdce6f8dfe4987ecfd": { "373f45a715a82081f8e2a3779cc63f874936a6ff999e1d2ee5daf6d9f720ace1": { "jp": { - "updatedAt": "2025-12-29T16:46:15.294Z", + "updatedAt": "2026-01-06T14:17:59.155Z", "postProcessHash": "a8fa62db6157ab19bc8c1d9c657a5ae02783cd9f75a9284416bcd547e86ec901" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.304Z", + "updatedAt": "2026-01-06T14:17:59.164Z", "postProcessHash": "670625c1b2a8f24b939136eccf4d088ac20143fdae24d5ae97120e8cdfd23bd5" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.290Z", + "updatedAt": "2026-01-06T14:17:59.151Z", "postProcessHash": "7efbc79f6b283f3b2bf52ed448b71744629cd079458724efd25f546d568b61ee" } } @@ -8106,15 +8274,15 @@ "24ceb06f47cf82806e35ac32dfe18ca24087b06cffbe5021739286a56c793b1d": { "4ace68b0458a094405f4c0fd1dc60a5ef026a1a8639846623e86fdff84ae8507": { "zh": { - "updatedAt": "2025-12-29T16:46:15.302Z", + "updatedAt": "2026-01-06T14:17:59.162Z", "postProcessHash": "cf4eadf4274504ddb027b5ce919b33665d3b9ca66efc1063e490ca763943b921" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.230Z", + "updatedAt": "2026-01-06T14:17:59.148Z", "postProcessHash": "0d5868ddb14d7ff9e73bcff7f5b0e7ae52c65069ec00100ee64a8d54dd5bca5b" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.226Z", + "updatedAt": "2026-01-06T14:17:59.037Z", "postProcessHash": "ff42fa37e91791f69485b088cd2a2348a8cbfd5310c3d47e31b5b00f61d0c59f" } } @@ -8122,15 +8290,15 @@ "28e0a4a4c7b2f5abc28938acf55ed73d8388d95376bfa8dd13fdecd6bd439e52": { "7b5571b023d676e2979970ede929e965221ec27898362e89cfb8519c41cf3898": { "jp": { - "updatedAt": "2025-12-29T16:46:15.251Z", + "updatedAt": "2026-01-06T14:17:59.076Z", "postProcessHash": "d0257347ef71990404474bf457155a04cd031db28f122f4e4a4469ebd1195d60" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.249Z", + "updatedAt": "2026-01-06T14:17:59.074Z", "postProcessHash": "22c094af1e7f1f755d20c026a4f7a4b3d1573b6f5d69e3f93289cc4c0c7b25f7" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.248Z", + "updatedAt": "2026-01-06T14:17:59.072Z", "postProcessHash": "8b67bd10177d18fee5b9cdb92c14be305deb13345eb86631467469e14fe81e2c" } } @@ -8138,15 +8306,15 @@ "4a932aa16f4947c7ef17e42150e4a316f1ffcde90dd8415e4c6bf929ba835846": { "49a5dd5634212d8130c73ae1cd817b3917e322d14b3c96754d53df3d228cd836": { "jp": { - "updatedAt": "2025-12-29T16:46:15.236Z", + "updatedAt": "2026-01-06T14:17:59.057Z", "postProcessHash": "c93ac8ee6531b4fe7fde3a1c516e840064f0c2fd7c24739ee525b66a0a25d6e6" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.238Z", + "updatedAt": "2026-01-06T14:17:59.058Z", "postProcessHash": "06d7c8a543d5b7cd0770ab4bf5cfd4b374d059842a9044110f4f0c81c77739e2" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.246Z", + "updatedAt": "2026-01-06T14:17:59.069Z", "postProcessHash": "c490c93edc008d83aa3d97a67c739f1da839d353f0daba24ba3c7639efce03cf" } } @@ -8154,15 +8322,15 @@ "4ca74029aba5db691ad0ec824ca43ed7d92a4d5b9aa1573bc7116ad308b92cde": { "f97238d94d5bdc95a6129e0715198e8a6b955a58fbaa7da4e12e9dfa1348f135": { "jp": { - "updatedAt": "2025-12-29T16:46:15.228Z", + "updatedAt": "2026-01-06T14:17:59.145Z", "postProcessHash": "6463b8a6276cce5c89bc763c53e861cae25ab43221e39706ec14d85a3a040826" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.229Z", + "updatedAt": "2026-01-06T14:17:59.146Z", "postProcessHash": "f3552db157c725bc8a32d2b93c698358b734907471e429208534338cfd3ebe55" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.291Z", + "updatedAt": "2026-01-06T14:17:59.152Z", "postProcessHash": "a9c99ce98b568f56538bcfbc01de595e4720590293a8ea630e12ba0f5c21592c" } } @@ -8170,15 +8338,15 @@ "4dec7d00a7f493694d866154c843363d42ed6db4abc5dfbd010fdd90bfcaf67d": { "97c6b3e272815f6b0861c69df01e35d4daeb9dd3a1b81af896dc36740a178f9c": { "jp": { - "updatedAt": "2025-12-29T16:46:15.248Z", + "updatedAt": "2026-01-06T14:17:59.071Z", "postProcessHash": "0f953e37be295890b936167c16a6f61ab270d65246fd01c8f69c516acf4c6d10" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.173Z", + "updatedAt": "2026-01-06T14:17:59.038Z", "postProcessHash": "241c283afdac9b5ff3b9a63a0acf2cb6a83e993df52e2ed219dfaa459e39c47f" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.232Z", + "updatedAt": "2026-01-06T14:17:59.048Z", "postProcessHash": "2ffc4a18b03d3a7fa614ec7ecab6ec4ba411a7e668df48f9856c8249653f24e0" } } @@ -8186,15 +8354,15 @@ "51e35897aeb6c746cdd097c39d7d3d876e62dfc0623f6a3c97974b88226b3a00": { "07eab7fc4983c7ac1da23e4f9c0e0aaefbcbbf2c5cf96b5e1af6a93d9eab9a6e": { "jp": { - "updatedAt": "2025-12-29T16:46:15.293Z", + "updatedAt": "2026-01-06T14:17:59.154Z", "postProcessHash": "845507590f7e9cc1bc6395c3396ba175e7e91d05f49e554f605b8d01016a0125" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.308Z", + "updatedAt": "2026-01-06T14:17:59.170Z", "postProcessHash": "49db0a38032fd08d8e7839c8ab26ea6383a607eb6c4c110aa13af06bf9df1c08" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.301Z", + "updatedAt": "2026-01-06T14:17:59.162Z", "postProcessHash": "fa726707b1f2865c8f69dfb1137c85c8afb4aa6479962d0291c31c35a37b1def" } } @@ -8202,15 +8370,15 @@ "6faa2072fc3d3a3770d528540726e0fbdb421fa84e62c668a817741883d26440": { "579c8415475bba272d86e61362d88b8f1304de7a7411591652572d7da45590c2": { "jp": { - "updatedAt": "2025-12-29T16:46:15.320Z", + "updatedAt": "2026-01-06T14:17:59.179Z", "postProcessHash": "d481d2cfcbc5a75ffb5e4f907809fdc19242cb85c73d265ff5165ddfc29de676" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.319Z", + "updatedAt": "2026-01-06T14:17:59.178Z", "postProcessHash": "420dbfe6411da7ecd329ca2d9f81ef7f7cdb8f1c764b2fe384f91788dcd70038" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.223Z", + "updatedAt": "2026-01-06T14:17:59.034Z", "postProcessHash": "45d7279147c4e1c312f04587a226861442e84af69afd44a2d3f861125028915e" } } @@ -8218,15 +8386,15 @@ "765183c2f979cd15300174a6cbeab761c53e4a2b979f9c1c628c55c69015ae5b": { "aaedfcb72829b8339998ff9e62eb6e54a69755858854804557b9efc3496e73f9": { "jp": { - "updatedAt": "2025-12-29T16:46:15.311Z", + "updatedAt": "2026-01-06T14:17:59.171Z", "postProcessHash": "f8dedb56834ea2b98f3b8fd0c76103240a76053b01fc1f47443b4936679bfc37" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.174Z", + "updatedAt": "2026-01-06T14:17:59.142Z", "postProcessHash": "996a2c3e9c26a1ae8527ff38d66665c0fdfd6943f31983e2781bda9518914f99" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.237Z", + "updatedAt": "2026-01-06T14:17:59.168Z", "postProcessHash": "c33622690e8cd37e14eabe01b30fb09445ca812293f1cfa1046c8df754012e6e" } } @@ -8234,15 +8402,15 @@ "9bd2367031f4ad3ccaa40d2eab23421bb90a176c87631c89d0565908c1c8129d": { "a3d661f00c76cbebde5bfa666feb5af47a4620862c09e2ad2d7ea88d84d8c98d": { "jp": { - "updatedAt": "2025-12-29T16:46:15.184Z", + "updatedAt": "2026-01-06T14:17:59.046Z", "postProcessHash": "14b01515ba3282ae4daf0953b2a020ceb4ee7b2ee01112b956a19b66ad292744" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.234Z", + "updatedAt": "2026-01-06T14:17:59.055Z", "postProcessHash": "9819a662ac472d2427c52ad368cdd1d9f21898627da8e282e2a0add1202fce02" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.182Z", + "updatedAt": "2026-01-06T14:17:59.043Z", "postProcessHash": "1e23f767f676ff5f4481e2738dd3e81eb5d56e2a62d9d5df1da27042639c7994" } } @@ -8250,15 +8418,15 @@ "a61623fa5c7f672b85c730754446bc1a65a53fbfc1fa7eb64e0779690ac3049a": { "e82d7f23954deebeb66e19daaed4363f0e28569d3a42d1de12ffdce2ad3976fb": { "jp": { - "updatedAt": "2025-12-29T16:46:15.250Z", + "updatedAt": "2026-01-06T14:17:59.175Z", "postProcessHash": "d554d6aa39310155aec0aec70df863857016b5bcc8ac58c2b099ebb0cccf7525" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.246Z", + "updatedAt": "2026-01-06T14:17:59.173Z", "postProcessHash": "ccad1ec6d1f3bb4238a1426b34c1b780295ba8faf1543d5719747cb98bb0b223" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.234Z", + "updatedAt": "2026-01-06T14:17:59.163Z", "postProcessHash": "fa60c34551eb8c82a5ab593651602cc4ad30cdb9230f18227083645d411eaa32" } } @@ -8266,15 +8434,15 @@ "b0c4a6145c3f1c781d51adb03f8e4996331d1159cb14cba9c81b851b728253ee": { "d161896a6a88f3dc7f188f95f5ef37b65e50579afa43c7f21b1656e07c5010a7": { "jp": { - "updatedAt": "2025-12-29T16:46:15.304Z", + "updatedAt": "2026-01-06T14:17:59.165Z", "postProcessHash": "d48b62da531226184b993d24c72cc6722bd8ce321e2f80e17e5d4b05b8a64517" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.312Z", + "updatedAt": "2026-01-06T14:17:59.171Z", "postProcessHash": "f59501d92a68316dd06ceac8cd3f6f0933104e2a83264aeecf3fa31853a42ed6" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.317Z", + "updatedAt": "2026-01-06T14:17:59.175Z", "postProcessHash": "6f16a0044c3c06de8d3fc37f2a411d74d27d2daa2a8024ffab2f7537ffb1e5b2" } } @@ -8282,15 +8450,15 @@ "b6071010708dd9f91932364b3060488201176aeb008d6ba6dceaee25a82a0a2d": { "2007a45c3bc14f5333a4866ed3de37e1c4ce663c0e2b1fd31fbf2030fed127e0": { "jp": { - "updatedAt": "2025-12-29T16:46:15.313Z", + "updatedAt": "2026-01-06T14:17:59.172Z", "postProcessHash": "8e735a33e9cdd78760897cdefbb03fa17d2710cc9616d3d1176ae3a0f4bc20e2" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.305Z", + "updatedAt": "2026-01-06T14:17:59.165Z", "postProcessHash": "8e6be21e098b427436efaeeae4e4d54974cc94c20cf0d730b32e7c9f0a8b1486" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.299Z", + "updatedAt": "2026-01-06T14:17:59.160Z", "postProcessHash": "0ceb18478272458fd1047439c98e2942f67ec98a45e48c5b8fd64f1ca461e134" } } @@ -8298,15 +8466,15 @@ "bf4425dd6cb86116b19753768a5420c28985c1fcb442ecd1b5e1d37e6ca2f98f": { "e1eae6052323b0cc1ddca82febd2af06bef603d4809bc06fe09b3e2b0880ed2e": { "jp": { - "updatedAt": "2025-12-29T16:46:15.243Z", + "updatedAt": "2026-01-06T14:17:59.066Z", "postProcessHash": "bfcb15514a3ff17f895f6545ca7c317e52d0cd2fbe60c47ba5cbe3f1524eae57" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.242Z", + "updatedAt": "2026-01-06T14:17:59.065Z", "postProcessHash": "44a0d94b92cb2ed3e8d309f03ee4c73d4e4dbad12f1b0ad8805ee7df534cb38e" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.183Z", + "updatedAt": "2026-01-06T14:17:59.045Z", "postProcessHash": "86838d77a3e717ad7566ddba5260ff9102bd38bd43ccfc4a751ddb01ee81739a" } } @@ -8314,15 +8482,15 @@ "cdab7bf0d8c24f10d2d5dc375305c22f728e0f36fa1e29fdd04c99781fbc6cd5": { "083150d2c3def0d0736d5dbb6a695b7ea5c691ce94fcb5f5e84487727895f4ff": { "jp": { - "updatedAt": "2025-12-29T16:46:15.175Z", + "updatedAt": "2026-01-06T14:17:59.040Z", "postProcessHash": "ceae7246c2187ed1be1f7ceb6706e90deca51df4b079b0cbd0f92ea96e06f63b" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.239Z", + "updatedAt": "2026-01-06T14:17:59.061Z", "postProcessHash": "5a19d6e38de7414aafc8f826fa62a9616a328df87c1bdc1d15698b3adb504020" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.241Z", + "updatedAt": "2026-01-06T14:17:59.063Z", "postProcessHash": "25f6a3b1f2d104c61dddf49b4aef6a8a9f13f1343a563c0750648082d2c930f5" } } @@ -8330,15 +8498,15 @@ "e93967fcdbac2bba7b89b4164ea987452cd09d1070238a59a238036fd94e8618": { "94a465a749cb716926a6ad2a66382c7591719aa2f9d792d5910f48efdc1e20e5": { "jp": { - "updatedAt": "2025-12-29T16:46:15.169Z", + "updatedAt": "2026-01-06T14:17:59.035Z", "postProcessHash": "a415ecb0d90f5d45912eea53a70d10089614f790c5198ba3b83afabf543db6c1" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.234Z", + "updatedAt": "2026-01-06T14:17:59.054Z", "postProcessHash": "93f603fb205943e6ff8322e06981bc8d513c052bee3d63a77615d7f6ee853f41" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.180Z", + "updatedAt": "2026-01-06T14:17:59.043Z", "postProcessHash": "03b027335a5c298b34474a73c7979fb6e050c9939dbf17b293062c4fb25f4982" } } @@ -8346,15 +8514,15 @@ "f0e219e3fb45c878fc0c3bc00fdeef1c5dd9c6ab75d1a093efffa9a0a6f002d6": { "f70bbeacf6050f44afacc1a4872c5eb1d3c4e9df491f0c452fdbd869057adb57": { "jp": { - "updatedAt": "2025-12-29T16:46:15.245Z", + "updatedAt": "2026-01-06T14:17:59.068Z", "postProcessHash": "b49c00bb658d6d8a5ceb45c70a0968288448ffda4b6c9852e3c5fa01182ec5a7" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.233Z", + "updatedAt": "2026-01-06T14:17:59.052Z", "postProcessHash": "1c47320ac4f8b4bad86e679725757cc62d0cb4224c96f4073ea3ca3ea40f1044" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.233Z", + "updatedAt": "2026-01-06T14:17:59.053Z", "postProcessHash": "193f5623396d261e09af713cb45cc7cf2ac6d58d7b1502844f09a484119639ff" } } @@ -8362,15 +8530,15 @@ "f39b12efbc001a35d87891fb78f7cc37fe27f3e15abe1f7329d97a2afc1e55dc": { "abf20812398c31c2895cbc7f3902a957857e45b0abdb831d7765f7268fac0928": { "jp": { - "updatedAt": "2025-12-29T16:46:15.231Z", + "updatedAt": "2026-01-06T14:17:59.149Z", "postProcessHash": "eab9c6910ce0be64bfc7df81ad4b5e64c16e1bb9790c4ec0a02508e38a630e68" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.297Z", + "updatedAt": "2026-01-06T14:17:59.158Z", "postProcessHash": "24aac98e1dd31fdb358f6bdb97f40ebad5864d418099f31a5d82318727a49cfd" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.228Z", + "updatedAt": "2026-01-06T14:17:59.144Z", "postProcessHash": "75fbdd7dc724a4be4f1dda91f3e1200a31e9daf9bfd2422d4a0b2b60f5e3b76f" } } @@ -8378,15 +8546,15 @@ "f44395a43048118c7fe3d4525c225cb5397a7fe3c98ed8d8b8fcfa08e86d5620": { "9d5c04c8e9de527ab629ee91b9ebf0d572f7863c4f88f5651c671a5fff9df8fe": { "jp": { - "updatedAt": "2025-12-29T16:46:15.306Z", + "updatedAt": "2026-01-06T14:17:59.166Z", "postProcessHash": "43e4feaa93fe9fe333e6dfbb702bac078284a51083431266e48a5e6f82c91736" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.298Z", + "updatedAt": "2026-01-06T14:17:59.159Z", "postProcessHash": "8af3b533ee89648e3e85b141b02e9fd3374f206db0d862b6a9decc31d01a7bb3" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.225Z", + "updatedAt": "2026-01-06T14:17:59.035Z", "postProcessHash": "37aaff267f66b83e9a024c133c6088e1accfe4b0d41741923eeb0e78339f2853" } } @@ -8394,15 +8562,15 @@ "f646fb33e6fccf32e79c0ff130a3e33907e8822e1555b98aa42e7679988ce2ef": { "9c48604413e046bab5cde9bba416d6f9bcc6a7ded493b091e329a27c18ad8b0a": { "jp": { - "updatedAt": "2025-12-29T16:46:15.227Z", + "updatedAt": "2026-01-06T14:17:59.139Z", "postProcessHash": "9f064dff2af6148c5e475eccfbabc4fb0649293553c9ea7f7af79b8f846799bc" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.296Z", + "updatedAt": "2026-01-06T14:17:59.157Z", "postProcessHash": "9363482dcabaf3e2d5ab55237f5834c87c3b866577927091090ace393ad3e2cc" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.227Z", + "updatedAt": "2026-01-06T14:17:59.143Z", "postProcessHash": "a05df31c734939f8c917a484f0bd64e5c2b0e7bed1e376cb2228ea868219d3bf" } } @@ -8410,15 +8578,15 @@ "fb8e6138536700f07eca78b5f157d45b6036f77f52782711c91ba183897b4c9a": { "85d1f9adecaf2dd9004cd1e79d1ecdd61c68f65285973b86e6e2ba31e2eadf2f": { "jp": { - "updatedAt": "2025-12-29T16:46:15.236Z", + "updatedAt": "2026-01-06T14:17:59.058Z", "postProcessHash": "3d49f7c879bba344b9910bd797d0d8abd81da97bf1f33950cec906b11543c4b5" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.240Z", + "updatedAt": "2026-01-06T14:17:59.063Z", "postProcessHash": "0dfbf9c1c588ff4886c27ce6455b099b6660567d13f570dba78d6c7b885d5d50" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.245Z", + "updatedAt": "2026-01-06T14:17:59.067Z", "postProcessHash": "1184aba183ab0a693b4bd8f72ded7b727a9316a2c85cf2be1f3a25e0436ca582" } } @@ -8426,15 +8594,15 @@ "fd9477b10ed7d16ef2358b8d1e49ae2377cc94b7a2aa1d03cbf8e6ee55954611": { "36f5cb32c3341f1b52d0987870b8e971b48d9b4ccb72422d895a8e8de42aa565": { "jp": { - "updatedAt": "2025-12-29T16:46:15.165Z", + "updatedAt": "2026-01-06T14:17:58.944Z", "postProcessHash": "fe58283bf606f6a70bdf020c22dab04955e5d73a8277923d3926a20b60f3f91d" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.176Z", + "updatedAt": "2026-01-06T14:17:59.042Z", "postProcessHash": "e408dc3f6f959f05b321cf04e158e29bb05da7d1e968a67a4d5e8bd2872dcb1f" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.167Z", + "updatedAt": "2026-01-06T14:17:58.950Z", "postProcessHash": "d7b30c48e6ed6a6aead9a4dac7a1d910419e72f7d950b2a65b35d8820f9ac430" } } @@ -8456,15 +8624,15 @@ }, "6abe63cc3cecef431f23cc735c7d345ff781b199793b6149900bf6613dd8dbad": { "zh": { - "updatedAt": "2025-12-29T16:46:15.323Z", + "updatedAt": "2026-01-06T14:17:59.183Z", "postProcessHash": "10f3ea06829ff6c0c5c2126f8ce5c0ee9580c1286ddf2809d5e826c624383c97" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.323Z", + "updatedAt": "2026-01-06T14:17:59.184Z", "postProcessHash": "c400b98da889f65c1db565ac7db879c29b1b06098d158c86e2d26acd617f1eda" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.324Z", + "updatedAt": "2026-01-06T14:17:59.185Z", "postProcessHash": "f5d4b017de1ac44bdeb8a5419d42584753eaa6eb3293e11bcb3fd62d953a70d0" } } @@ -8486,15 +8654,15 @@ }, "2c511cfb02f3f1afc4d60c136e5ca85deb81249cbc5d1bf5405c1c9570fda238": { "jp": { - "updatedAt": "2025-12-29T16:46:15.391Z", + "updatedAt": "2026-01-06T14:17:59.277Z", "postProcessHash": "24da6ae83094f6729fc217be32026087cbbe67dead023e49f6eb76fa37c87a95" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.392Z", + "updatedAt": "2026-01-06T14:17:59.278Z", "postProcessHash": "42518d9aa1c4753b7fc51f6b66a47021750644f90ce2f685431ebfc72e7798bc" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.393Z", + "updatedAt": "2026-01-06T14:17:59.279Z", "postProcessHash": "c0b8cbc0c0ce005a86e6f42aa49f062436c80c851aa272be514432e1ed346d8e" } } @@ -8502,15 +8670,15 @@ "1cc5dc60c755c1b33090726793f332fef7bb57174bac81be1fd840360abec0a9": { "0b2d9a2f1a1de345b24bb2aed0e200731bba362c09de9a98ae9041f3e9312321": { "jp": { - "updatedAt": "2025-12-29T16:46:15.227Z", + "updatedAt": "2026-01-06T14:17:59.141Z", "postProcessHash": "24001167b5ca7506c2657a010e12d3bc391d2a28a56f660bc099abdd8be07a8c" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.225Z", + "updatedAt": "2026-01-06T14:17:59.036Z", "postProcessHash": "32d833d4303e4e7ff711aa7104b65a863598974c37286ce7f1a5615cd8125e15" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.226Z", + "updatedAt": "2026-01-06T14:17:59.037Z", "postProcessHash": "c5864d2478a54d3b8a96b757c78432726745ddb13afb0cad3922331b51c83b6a" } } @@ -8518,15 +8686,15 @@ "1fa73f7fb3f17cb73adf9d2fd3672fb7b1bcea959cdfa4cc1cebebf9783e8493": { "68781891b0d87b8b7fc619dd4fa0e041668116f49851eeb31c8f510173e044b5": { "jp": { - "updatedAt": "2025-12-29T16:46:15.230Z", + "updatedAt": "2026-01-06T14:17:59.147Z", "postProcessHash": "c40f62704c86786dc2e81e99b1d3b07fec16971337263cae78f8d10191b451b2" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.231Z", + "updatedAt": "2026-01-06T14:17:59.150Z", "postProcessHash": "e80a044ba069bf2d07550cdf06aebaae65bddcaa60097b677e9ee1c99a848cf0" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.229Z", + "updatedAt": "2026-01-06T14:17:59.147Z", "postProcessHash": "7fe3f4b2eccdd5a86fe3b3ff69fc3963a3918a1a3a8bfa7480f64fc16dbc878e" } } @@ -8534,15 +8702,15 @@ "277327bc5d1f24036dfcf5127459029b84745c17df9cdbee699b92b7fa8c244a": { "edea05c97af2e9b00969299f942cd800726b3f980c4ecc738e093ae93dac3c2f": { "jp": { - "updatedAt": "2025-12-29T16:46:15.355Z", + "updatedAt": "2026-01-06T14:17:59.233Z", "postProcessHash": "711711c7d902a9008aff116db69619dc1176eadc3115f848d7efff90412e46cb" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.348Z", + "updatedAt": "2026-01-06T14:17:59.221Z", "postProcessHash": "60399b1e8ab19f098014b005bd6ebf0f90d701723aca157cacf744eeaf54b1d3" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.358Z", + "updatedAt": "2026-01-06T14:17:59.236Z", "postProcessHash": "537299c200b7179ded1307f1d1a582577ff7a14b03729c061dfed9b7698d4e3a" } } @@ -8550,15 +8718,15 @@ "2fa7a8042be873e4594c45fc4aa944580ac9957f07dba893bd079f9bd6831739": { "d53dbb06ce9443dcb0eff1d6d827440cd3f32c6995b1495a014f731eb03474e6": { "jp": { - "updatedAt": "2025-12-29T16:46:15.305Z", + "updatedAt": "2026-01-06T14:17:59.165Z", "postProcessHash": "3d4ba646ab4e369dfe980dac9ddb3b91474a21c0910dc3f58380f63de9199d0a" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.274Z", + "updatedAt": "2026-01-06T14:17:59.127Z", "postProcessHash": "92bf507ef526a371bccb991e1552ff76ceffe06a1778efd5e331c34cd50c1e62" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.307Z", + "updatedAt": "2026-01-06T14:17:59.169Z", "postProcessHash": "19c2cf64b483619b4bda64d0922db871ae04c9ca69549f4812b2e17e1f465c89" } } @@ -8577,15 +8745,15 @@ }, "43bb5d1fec0dd25484222ab1ef9501d17f60d2e4855ac7772a74068bf02aada5": { "zh": { - "updatedAt": "2025-12-29T16:46:15.222Z", + "updatedAt": "2026-01-06T14:17:59.122Z", "postProcessHash": "bea20e4445e0aa8fc03a392278447020f1f41ddbda3a4e369c6a5b90bb685d69" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.222Z", + "updatedAt": "2026-01-06T14:17:59.124Z", "postProcessHash": "93d86db03956f54342aeb553bab5923a6cc70e52247814abebbb2e6824ac96b4" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.224Z", + "updatedAt": "2026-01-06T14:17:59.132Z", "postProcessHash": "e5411c01b5d5d7f43f4d32462fc893438815fcdaea8a756878a30c80afa3bf31" } } @@ -8593,15 +8761,15 @@ "3cbdf684e4132d36432757c5b2479a68267eb108858510d7f118f4f80e1fe430": { "02a6cbb43f399b26f891350cfb238c12040d0543f4f79b9119f782c965160d27": { "jp": { - "updatedAt": "2025-12-29T16:46:15.321Z", + "updatedAt": "2026-01-06T14:17:59.180Z", "postProcessHash": "02e09648ad4ca9757daccaf5052d6864eef91395a78c489c3a2f72c8531db61b" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.322Z", + "updatedAt": "2026-01-06T14:17:59.182Z", "postProcessHash": "3f565518bb9f6e617d40443b08bff71b5f0d624a59545e5a6ea3cd385d3d2066" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.318Z", + "updatedAt": "2026-01-06T14:17:59.177Z", "postProcessHash": "c54e20c19920685eedca81fc60bf420392c3f875fafec5742374dd8f6beb0cf1" } } @@ -8609,15 +8777,15 @@ "4efac6c6f465c7a572c85feacf0f06b43a4e0c32c6c920019621529593011d4a": { "90716f5cd329825964992e1323d48a1be73c0b4afe6438deb2f5faa6947cb686": { "jp": { - "updatedAt": "2025-12-29T16:46:15.282Z", + "updatedAt": "2026-01-06T14:17:59.138Z", "postProcessHash": "a530575675adf563e3e0cce3571720caa7650a7035bbff0a155d8d09c7c6ff85" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.279Z", + "updatedAt": "2026-01-06T14:17:59.134Z", "postProcessHash": "f45817debdf6cf37b18522a175833a519d18655dec56ff8ffce226e4699e3b87" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.281Z", + "updatedAt": "2026-01-06T14:17:59.137Z", "postProcessHash": "08cb609350f19c036029cef6cb794869fe77b00e04e195132af816ef05de1d08" } } @@ -8625,15 +8793,15 @@ "593efc50139609f8ecd70340a6cf0d42b4647499a51d8026ed014bda5df9c3be": { "d22863b43cc42cb50748f21dbf3ca52aa023402a9fd5fe4d478b8ad89b656234": { "jp": { - "updatedAt": "2025-12-29T16:46:15.295Z", + "updatedAt": "2026-01-06T14:17:59.157Z", "postProcessHash": "d2520a1a5c59b3125e395f51ec262c7da0160585b347f42c7707a698ebbd7e51" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.293Z", + "updatedAt": "2026-01-06T14:17:59.154Z", "postProcessHash": "17019e8e8d38971f54124bb6a4ab7b2447aa3bdd42a2e0028657b9fc7179ce41" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.300Z", + "updatedAt": "2026-01-06T14:17:59.161Z", "postProcessHash": "a5f11b71c92cb13c7328ceb5baf840b37073a4a97d8e83642daf98db554be6d4" } } @@ -8641,15 +8809,15 @@ "64b5024b5182bfc45a505634c61271260ae40641e132a126b98fdb77fb6a7c95": { "4407c0820a47caebe5b1dfe9eff3d5de80d013db89f0925feb173cff9741369f": { "jp": { - "updatedAt": "2025-12-29T16:46:15.357Z", + "updatedAt": "2026-01-06T14:17:59.236Z", "postProcessHash": "c03a1ce441426810c33b8940980146089f76908e0bac4d11e4f20366fe7d7bdd" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.360Z", + "updatedAt": "2026-01-06T14:17:59.240Z", "postProcessHash": "668717c9420444839b40f5d54442688d3c2e057f072e23b8c7fbb71ab3320283" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.359Z", + "updatedAt": "2026-01-06T14:17:59.238Z", "postProcessHash": "9fa49ec7444c09d539e999f25259cdb1e0d61f054dd9fcd1016a6fa1738f90a0" } } @@ -8671,15 +8839,15 @@ }, "ecfee6d64f4e8639dde59d6b24fe93fb8d4dd15c501a8d880648accebe2e3846": { "ru": { - "updatedAt": "2025-12-29T16:46:15.325Z", + "updatedAt": "2026-01-06T14:17:59.187Z", "postProcessHash": "1e249bfb4063def98f69372eeefcd4c6476551860f73a8deeeb9c2f418407bbf" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.326Z", + "updatedAt": "2026-01-06T14:17:59.189Z", "postProcessHash": "136fdc057d83e01309c982d98ee8c7fa902a87859faa98d7165edec8f716a93a" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.329Z", + "updatedAt": "2026-01-06T14:17:59.192Z", "postProcessHash": "1b07f68393cd03fc2468ec8e0715c1a78c953bc2d5d4df65d479503d6a04a5bc" } } @@ -8687,15 +8855,15 @@ "81b00d2254d3e49a8edabeaf9d9461d8fb19914c8abfef93d05c71270dbf3786": { "96a507a0b8ed5c5846b4d8f6ffced106a8f7d73ccb668fa851fed8b3be3dbee2": { "jp": { - "updatedAt": "2025-12-29T16:46:15.278Z", + "updatedAt": "2026-01-06T14:17:59.133Z", "postProcessHash": "ea8a9e32c03b1e6147c121e09d92b3cfa27c68aaaa997722e8f1978e907e0fba" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.284Z", + "updatedAt": "2026-01-06T14:17:59.140Z", "postProcessHash": "0bd054c3b017005ea784d5584dd9d73be430ec8bc79df219820132415ef8fd77" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.277Z", + "updatedAt": "2026-01-06T14:17:59.132Z", "postProcessHash": "e0369bbe18f431323222995b88a2e73f31fac3250a69d6dc7c8aa1e98a5c768f" } } @@ -8717,15 +8885,15 @@ }, "8776a0f2a1c8976c1cd006b5dd6dfca1ea33abdc10b6f6c411e2e22242c4d7bb": { "ru": { - "updatedAt": "2025-12-29T16:46:15.377Z", + "updatedAt": "2026-01-06T14:17:59.259Z", "postProcessHash": "a3593b4c6e203c629d2de3070956c8cec2ea7ad2eb3ad80b00230e76025b0ca5" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.378Z", + "updatedAt": "2026-01-06T14:17:59.260Z", "postProcessHash": "4c42ce73859504396e2257f3f8f09140a6d5f8d7a7e55b3fa0b042718b1ba4d2" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.380Z", + "updatedAt": "2026-01-06T14:17:59.263Z", "postProcessHash": "3c5c60befbfd22c7fb2cddac7b638c09b6f3c437091d29a2c1e8f0c97b9e350b" } } @@ -8733,15 +8901,15 @@ "9229ae8ebb059ce61a183f4129a3e0da801e0d4717a314a296909aa6035f7d9e": { "fea4e84293c545f2207f795fa4b98c049df1c2de4dd7351a04e3cfb8dc162c2a": { "jp": { - "updatedAt": "2025-12-29T16:46:15.350Z", + "updatedAt": "2026-01-06T14:17:59.224Z", "postProcessHash": "db721945dd076c72ee725409aa33836bd3da5a529be828e140ed43cf1f3a8c52" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.353Z", + "updatedAt": "2026-01-06T14:17:59.230Z", "postProcessHash": "caf684af1e3f4cb28b6118b87ce0ccfc7e7636ff7368873f7d09d3eca6c5fe0f" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.357Z", + "updatedAt": "2026-01-06T14:17:59.235Z", "postProcessHash": "6dd0fa286083cabba9a7302c8fad068caa9d128665e6595fadcb31484fc4e079" } } @@ -8749,15 +8917,15 @@ "a9c6646ed9b12fe5c1578c74e0f8408353fc82448e8041b1c1d96f9c46e78dea": { "9cf8633b74ca4ae563d8b6514b6ee95e035b912752b8937b25e1ea6d00d6332e": { "jp": { - "updatedAt": "2025-12-29T16:46:15.295Z", + "updatedAt": "2026-01-06T14:17:59.156Z", "postProcessHash": "5e2d05795c43aff4941456417837b8a04a697fece8314b0d952444cd7d79e680" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.292Z", + "updatedAt": "2026-01-06T14:17:59.153Z", "postProcessHash": "217ec8ec61df156ec4679f1fefc782cb160913de8e5c3f0580055273fc6b5388" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.353Z", + "updatedAt": "2026-01-06T14:17:59.231Z", "postProcessHash": "4fc35b8d35ead9e83ae2eae75edec8bf13d335c957aa10b142422412699c81de" } } @@ -8765,15 +8933,15 @@ "b464890125efe481177f12e2f3c00a28cae107b65627ec59bb17ef93cf157e35": { "4a59992606ccfde9022f21ac63edbdf9bc3e1e8100eaeef04c372952f8c27195": { "jp": { - "updatedAt": "2025-12-29T16:46:15.362Z", + "updatedAt": "2026-01-06T14:17:59.242Z", "postProcessHash": "eac18b28908e8243fc9605272c07279b0dd8bb76edb44c69195e3e75ee649c92" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.363Z", + "updatedAt": "2026-01-06T14:17:59.242Z", "postProcessHash": "97733c73027b8a36ee9bb9a623d88bb3ba214b0f9bc0a3a4e548c73eeb860de8" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.361Z", + "updatedAt": "2026-01-06T14:17:59.241Z", "postProcessHash": "3c87d8117db775972f739762492df949e862f44170ba4f49a130af0fe8d6046b" } } @@ -8781,15 +8949,15 @@ "b676683ed68be73eb9635273495e9731122ee184bb63d7293df2bdf22ebad7d0": { "81117b826442551d1cf5856c822f3d1c75ce597cd1faec68ca4ca0233ff5b395": { "jp": { - "updatedAt": "2025-12-29T16:46:15.308Z", + "updatedAt": "2026-01-06T14:17:59.169Z", "postProcessHash": "9fcdb907f3cb3af44d1ae3a2105dea85b5c296c22017281987c13e4598f4e55d" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.306Z", + "updatedAt": "2026-01-06T14:17:59.167Z", "postProcessHash": "64d0aab155befaac2cc09c76f768226a74f9ef7281228ecf9c81e22261106b2f" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.292Z", + "updatedAt": "2026-01-06T14:17:59.152Z", "postProcessHash": "e7f1d8dc1409a310dabf665d5ace661e710577c29ce48ee69dbd176a4765eebc" } } @@ -8797,15 +8965,15 @@ "ca8c63318081185dadfc8f0c999b2cbe8002743aa40d511bc0efe186e20e334d": { "d058a230016b4adc22efb36e3b3ae2fb018e4b84cf33b6862fd4f520d9e7d3c1": { "jp": { - "updatedAt": "2025-12-29T16:46:15.295Z", + "updatedAt": "2026-01-06T14:17:59.155Z", "postProcessHash": "fe2e726c78f44e6ceb0d7b3c8c19cc21caa88e6d1c77abbe530c9ad4aa38972e" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.223Z", + "updatedAt": "2026-01-06T14:17:59.128Z", "postProcessHash": "7f01a4fc02516288e1acc5d12d5072d9a3ffa8205c64104fdb4d4b5ce20d6ecd" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.315Z", + "updatedAt": "2026-01-06T14:17:59.220Z", "postProcessHash": "5e39e0a5de4d9aff167cab397414ef5d33c6f75e3a9e108c6d9b9362460f2df7" } } @@ -8813,15 +8981,15 @@ "eb036cf7d16bf188b666a24b079c499f0e91022203931f813a7708c77c75046a": { "d269d0ef9030cc0accc4626f57a4a0fc9fa917b10cf282d13fa57388c6603e4e": { "ru": { - "updatedAt": "2025-12-29T16:46:15.276Z", + "updatedAt": "2026-01-06T14:17:59.129Z", "postProcessHash": "248827366b8ffa6cd7485b2faa44cbbc155d86ed59314b1d1aa67b0da1bedeb8" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.282Z", + "updatedAt": "2026-01-06T14:17:59.137Z", "postProcessHash": "cdc858e92f87bb9a26d92730064489fab14f9c3c27c1cc575b50f610d273c317" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.289Z", + "updatedAt": "2026-01-06T14:17:59.149Z", "postProcessHash": "f8ceec422a170e15ba66107a18f0f032cf5f5099e129b8769bcbba2a08609c1b" } } @@ -8829,15 +8997,15 @@ "f63b4898f4bc0778b3cf11bb85aa91a674b602d4005b001e2977ffa70c3be27a": { "dd2ba17bbdc49a7afba06862b9e2f43e39bf834aefeb4fadb52775d8db69d988": { "jp": { - "updatedAt": "2025-12-29T16:46:15.315Z", + "updatedAt": "2026-01-06T14:17:59.173Z", "postProcessHash": "901f6e9b827e2d23a38a538220a9c0b19a1d6ae3f0f813c5152f10613842fb56" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.316Z", + "updatedAt": "2026-01-06T14:17:59.174Z", "postProcessHash": "35f58a147cf43fc13088559c7b98f3f89863575957457a8d2a8588515bbc1994" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.319Z", + "updatedAt": "2026-01-06T14:17:59.179Z", "postProcessHash": "2f50eb01b965bd8aae23c9c0a585b631dc98d81caee6b43758a3b6b9e65eadc4" } } @@ -8859,15 +9027,15 @@ }, "51e6651d600c16cc8cb8d4908429f5a1d309414e6e597154fce0e51c58e47852": { "jp": { - "updatedAt": "2025-12-29T16:46:15.374Z", + "updatedAt": "2026-01-06T14:17:59.257Z", "postProcessHash": "a6cc3e1d2b072d56f0fdace77781edc5e7d421eda55f2d622483260b602f3c35" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.381Z", + "updatedAt": "2026-01-06T14:17:59.264Z", "postProcessHash": "42d642b71e32fd5b9fc2fccf597e9e1b20538f095af42370b15f96c23f2dab60" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.381Z", + "updatedAt": "2026-01-06T14:17:59.265Z", "postProcessHash": "755b810165e455b7d2f9ae84d4b72d917370fd25e50557250cac566c7720001a" } } @@ -8875,15 +9043,15 @@ "1bb238eff17ee95c127a21dd293881a980bb8f3b0aff1bdd7ecd004fafe3764b": { "d005d0fdfdc2a2469851a9a7d27374e5fcf68c97518463c6aec7498e165ace83": { "jp": { - "updatedAt": "2025-12-29T16:46:15.350Z", + "updatedAt": "2026-01-06T14:17:59.225Z", "postProcessHash": "40ddb76e47e82d9610b0b1bd5dad9aa8ee5f9e032fc01b25ea84f368fa4c3b2a" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.273Z", + "updatedAt": "2026-01-06T14:17:59.125Z", "postProcessHash": "0f84d35dea04bacd65be6c5675c8f2220109b80e1a02d2f37a60aa18179a94d7" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.274Z", + "updatedAt": "2026-01-06T14:17:59.126Z", "postProcessHash": "5adc0206edc029f7788bac1296f29205936d1f1a133e1b8294f0cef7bd9b32a3" } } @@ -8891,15 +9059,15 @@ "23d2246026762ae3494ced9af104cea91f1482d8c7dae1149b7bfa3441618283": { "0e016f2ab261e197b48540cb3d3091ab6d3af62d1c883dcd3281cb2e578a1bfa": { "jp": { - "updatedAt": "2025-12-29T16:46:15.314Z", + "updatedAt": "2026-01-06T14:17:59.219Z", "postProcessHash": "47f5c5472f9ed750f3170388ddfdf3c40ab2c843166365e2ef6ec6a9befd2566" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.352Z", + "updatedAt": "2026-01-06T14:17:59.229Z", "postProcessHash": "abaf6f5689efbc9280a326147c60fd593393fa1b7bbdeeaa8b9b191de264c453" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.349Z", + "updatedAt": "2026-01-06T14:17:59.223Z", "postProcessHash": "5452f452c34679d4b36827bf78b0dd9c18c8a5d11fda035e70459e5d2edb5ed2" } } @@ -8907,15 +9075,15 @@ "29f7d7e079a392736f8e8414574847d7fc12094c29074c197529b77eafd97a46": { "ee468e104feb8b3c7b0aa6d6f466b62ccd0c40d76c88efce2ee623e95b1737ef": { "jp": { - "updatedAt": "2025-12-29T16:46:15.313Z", + "updatedAt": "2026-01-06T14:17:59.218Z", "postProcessHash": "ba39f1e1196b566b55aa060578667b58ff01ccbef8dc2865f88c196930a87768" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.303Z", + "updatedAt": "2026-01-06T14:17:59.163Z", "postProcessHash": "37b86aa7ef9ae71573bb9f29bbaa1286b4a487fda93a53d189c05b49ce7657d2" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.307Z", + "updatedAt": "2026-01-06T14:17:59.167Z", "postProcessHash": "5949d8f4c68ded9b2c74cd7de9a57e1231514b97df3e6f371ff6f3b41c72512b" } } @@ -8923,15 +9091,15 @@ "3096aa4bb7832bb2f54010d3c5b6a248f9ebf6a366fb879f82c0eab244f815ae": { "fa532e7e71ef2e3585f03d9f864f4c524338db82a3098d4d46e1abc74f06c4fa": { "jp": { - "updatedAt": "2025-12-29T16:46:15.354Z", + "updatedAt": "2026-01-06T14:17:59.232Z", "postProcessHash": "86a41902d406495616e77dab56fda31b670743e28e949c500e2fb4d4450d1e58" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.352Z", + "updatedAt": "2026-01-06T14:17:59.228Z", "postProcessHash": "097a2ec5a67e14eb747d435432e2bb6172ddab6f713778fd68b5deeb4890241f" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.314Z", + "updatedAt": "2026-01-06T14:17:59.219Z", "postProcessHash": "5df20a0135d471a55a8b3fe11b177fa59c129621d6eed3d49dccb1957885d7a2" } } @@ -8953,15 +9121,15 @@ }, "efd6e2c34ee87688a5e5bc9fbde6bcfeaa5c94eab263803457f47ddd61acec5d": { "ru": { - "updatedAt": "2025-12-29T16:46:15.363Z", + "updatedAt": "2026-01-06T14:17:59.243Z", "postProcessHash": "a956aac07bc9dddf4464a46a3727d7d39d7d58a32eaa58eb6ceccb447aa1c3fe" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.364Z", + "updatedAt": "2026-01-06T14:17:59.244Z", "postProcessHash": "d8f2aacb0226143d4419f3bba1147e99c0c51f17feeb9a444aee41af7cbf23be" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.364Z", + "updatedAt": "2026-01-06T14:17:59.245Z", "postProcessHash": "63ee4989ce65175b9a5c00f183c8c6a0f2814cd6d86ce1a41590d264a15fe45e" } } @@ -8969,15 +9137,15 @@ "492356529ca75008f683673b06635e91f3cb2d7f1097826262a7957c6cd78136": { "ea6eed1ae135ae1362375bc54a6abf4d9bda82f9cd56e95b97e329d6dfceb889": { "jp": { - "updatedAt": "2025-12-29T16:46:15.288Z", + "updatedAt": "2026-01-06T14:17:59.144Z", "postProcessHash": "08b871d8f594d87cf0c2976f72cb7ace37087b01ce75f7bd3dc726797d6e88e9" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.283Z", + "updatedAt": "2026-01-06T14:17:59.139Z", "postProcessHash": "82c5acca8f3c9914ca0e123d11c5494067d659a0e2d555da64e4f9d03c08a5f3" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.297Z", + "updatedAt": "2026-01-06T14:17:59.159Z", "postProcessHash": "6b684c415fe0e9da24ac34ba4aae2eec3d5f29ea4f93fd834739f291f5fe26fe" } } @@ -8985,15 +9153,15 @@ "576c74bc00a8723ea19c093ffe6b3a472b9236e8f3bfcb0b95955083f9cadb86": { "351824c23a3d30665651f9a8eb9f4b521f17129ca1d202c38cbde960046a5d97": { "jp": { - "updatedAt": "2025-12-29T16:46:15.285Z", + "updatedAt": "2026-01-06T14:17:59.208Z", "postProcessHash": "5c2f77e55745f08f6d991accb5736498ec4fb0717c231d6e86f28fb173350395" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.294Z", + "updatedAt": "2026-01-06T14:17:59.210Z", "postProcessHash": "faf16c6b6203c24ae4989f9f8b5cf1b59902ef35939886f246c468adcd9c4c66" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.290Z", + "updatedAt": "2026-01-06T14:17:59.209Z", "postProcessHash": "483c5516febe66c27aad2d3a3d0129fbcea8edb0d7eb74d9c903496ff4ee64c5" } } @@ -9015,15 +9183,15 @@ }, "0f227c55e49e6f5c972ea085b14c7cdd5c1d425529447ab7499db13690c7cabb": { "zh": { - "updatedAt": "2025-12-29T16:46:15.371Z", + "updatedAt": "2026-01-06T14:17:59.253Z", "postProcessHash": "7a4e2ce3b1dcbe03d67298a01c7c272cb146176ffdec4de3d88e9c4732e39a8b" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.376Z", + "updatedAt": "2026-01-06T14:17:59.259Z", "postProcessHash": "15ae8ecf7d06217906a682e57c36c717c4f9928c568f5128bfe93d2ce5802943" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.378Z", + "updatedAt": "2026-01-06T14:17:59.261Z", "postProcessHash": "366ed3844a9dbae8e85045edcf494c462d2dd4583492e69d716a70b24f70983b" } } @@ -9045,15 +9213,15 @@ }, "1846fe104b21314834767b00493a9c59280c9bf80d908c4beba4e4881186139d": { "jp": { - "updatedAt": "2025-12-29T16:46:15.370Z", + "updatedAt": "2026-01-06T14:17:59.251Z", "postProcessHash": "0a3b8a58d868ceaf90dc1427a35ad0fba5f828b27ef1b1fab6a7d320c7cab830" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.374Z", + "updatedAt": "2026-01-06T14:17:59.258Z", "postProcessHash": "094598f440b2825ae95c679564ffe630065c3143b69cbab7e13e4dd565840d59" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.379Z", + "updatedAt": "2026-01-06T14:17:59.262Z", "postProcessHash": "8ca64df1d28d937ca14ff2504ebd2de3c1b0e6b211bb0acfd22a585ccb9a4aed" } } @@ -9075,15 +9243,15 @@ }, "5b2cae824a71bab5176a9a1a707bcb359fe7362a75b3241c39ed44d9133385ad": { "jp": { - "updatedAt": "2025-12-29T16:46:15.369Z", + "updatedAt": "2026-01-06T14:17:59.250Z", "postProcessHash": "86d148c1bf8990821123bc64144797a57ae4d3649d890d92dfac9e7afeba71a9" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.370Z", + "updatedAt": "2026-01-06T14:17:59.251Z", "postProcessHash": "29971fced233a7e920b65717d9c314fa952a7d881b2526d092f35c496491d357" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.375Z", + "updatedAt": "2026-01-06T14:17:59.258Z", "postProcessHash": "7125a1269904765640aafdd84d9fad2f26a79babe22239cbf2d9e9dd869b543f" } } @@ -9091,15 +9259,15 @@ "a218ff0160f1afb6fd940e4797a2159d55a8dbac410f179f5727b567999eaebf": { "aad6f9838da5dc15d37d5f9d16b53754eb0d3ff68a7cf73064f05eaa3669c05b": { "jp": { - "updatedAt": "2025-12-29T16:46:15.289Z", + "updatedAt": "2026-01-06T14:17:59.209Z", "postProcessHash": "33e0d517023c31bdbc620af196c1272bce0052f7df741ae9e7816856af9d59aa" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.310Z", + "updatedAt": "2026-01-06T14:17:59.214Z", "postProcessHash": "71e8564b7a04093161ba33e1dc2eeb34832a84e319f4cdbd834a3a0792fa492a" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.310Z", + "updatedAt": "2026-01-06T14:17:59.215Z", "postProcessHash": "df677fb973776083da15b2bae773829585c8e9544e866e7583404b83d5048e5e" } } @@ -9107,15 +9275,15 @@ "a47af53023e5932aef2db5b77a0ef7cd04c45474a2fe93ea211914667b44e5ec": { "4ff7d90419a50527c3757c649b6725b0da711648246268bc520c1dae8ad9ef97": { "jp": { - "updatedAt": "2025-12-29T16:46:15.350Z", + "updatedAt": "2026-01-06T14:17:59.225Z", "postProcessHash": "1dcdcaaa8c11a313f08de7ba26d35d53c004500bf106b600a66000c29cf2297d" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.312Z", + "updatedAt": "2026-01-06T14:17:59.217Z", "postProcessHash": "454d89cee4ef4ed210e39a7893bd31c4b0eb037a75cddd3f5f7ef84e08316dbe" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.298Z", + "updatedAt": "2026-01-06T14:17:59.211Z", "postProcessHash": "2afb659555f7e3f4f5cccc1389df66443e160e8bd299dbf46000e4ded2f501c6" } } @@ -9123,15 +9291,15 @@ "ab35a5ab8729c47c7175e9c6cc67e42aba43c58b1e1f2c291dcda4c3977b06bd": { "02d5a608d6ee630f001b827a8fa1c5cad477766220949ac58c83c9ea965c69c2": { "jp": { - "updatedAt": "2025-12-29T16:46:15.347Z", + "updatedAt": "2026-01-06T14:17:59.220Z", "postProcessHash": "0e81313e1c0f3f626afbd2fa279669dc19d3780f6504738d5755bc21350b0931" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.355Z", + "updatedAt": "2026-01-06T14:17:59.234Z", "postProcessHash": "f1a89204176eccc01737ec656ec0e00ec0df9c43d0d68e34799da8da89a4d15b" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.302Z", + "updatedAt": "2026-01-06T14:17:59.214Z", "postProcessHash": "dfcc2755db6c33b506df5df7aac7794ac31e06de0b7bb93ce05673d7b7ce9161" } } @@ -9139,15 +9307,15 @@ "cd604eef1633b62d027e3e7d70856d9553f233ca6e0180381c2120985643a86d": { "e37d6318a1605b8e2ec28a6a7b49ca74444391f022f98dec4ac9cf1024c821ed": { "jp": { - "updatedAt": "2025-12-29T16:46:15.351Z", + "updatedAt": "2026-01-06T14:17:59.227Z", "postProcessHash": "62faaff4c984727f67c4ab6c83661b4ef8e9def27a79b627f522012e2da228ce" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.354Z", + "updatedAt": "2026-01-06T14:17:59.232Z", "postProcessHash": "9929b05497285247412e109396e4d54da0986b005a4f88dde4716550dd61579a" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.348Z", + "updatedAt": "2026-01-06T14:17:59.222Z", "postProcessHash": "4f50e8db171c009360ebf4bb380b2c1b8a5d659a005793dfb08e17ee17a56aa9" } } @@ -9169,15 +9337,15 @@ }, "02e1c74f3d49d569299e68aa8c86b3d45a0bb8406b4283f435aa64eb44f30662": { "jp": { - "updatedAt": "2025-12-29T16:46:15.365Z", + "updatedAt": "2026-01-06T14:17:59.245Z", "postProcessHash": "8e3fb272311b7cf46567c95564d7591624809e02b97c21d8a72f10c627fa116b" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.366Z", + "updatedAt": "2026-01-06T14:17:59.246Z", "postProcessHash": "88805d615f5ecda4e394cf3b907a45cf1eca61346692369c93689d7d5a05dcea" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.367Z", + "updatedAt": "2026-01-06T14:17:59.247Z", "postProcessHash": "6f23305b4d4b28cf60d240d7a6ea9d38414358766427d12c6c44f04ecd0b5476" } } @@ -9185,15 +9353,15 @@ "daf8b3e4dde89158cbc831962f60de0ec14cecabcbd44a418f78eb071c12b0c4": { "436bd3437c6e83fc88999652218e47ef4afe3bd262aa9052fd9fbf8900aa176f": { "jp": { - "updatedAt": "2025-12-29T16:46:15.298Z", + "updatedAt": "2026-01-06T14:17:59.159Z", "postProcessHash": "f89763be70e530d88318512773aaa3a63e8cfd3bbd776e7638f3a88694f5a774" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.288Z", + "updatedAt": "2026-01-06T14:17:59.145Z", "postProcessHash": "effa2ac764ea8fd6d51144743b787e4f72c4f6ba9be2abfa7a5d81f8469aa70d" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.285Z", + "updatedAt": "2026-01-06T14:17:59.141Z", "postProcessHash": "75440acf4ce7ec49bc4e4d50b86b7c27c932f7c15e7dfc59fef4e6738421ca14" } } @@ -9215,15 +9383,15 @@ }, "df6bfe396ac5e67b3d55d64f2a17e1efb293f9ec2447bc30209b934be5e67d6e": { "ru": { - "updatedAt": "2025-12-29T16:46:15.373Z", + "updatedAt": "2026-01-06T14:17:59.256Z", "postProcessHash": "8c3ba48d0faa2079bff671583dd1a7c45c8af172df364641cee097e12363dc34" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.383Z", + "updatedAt": "2026-01-06T14:17:59.267Z", "postProcessHash": "f8505f4d510f069bb7868e95bd86362891ff81455cf934b052eb88c4afd11eb9" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.383Z", + "updatedAt": "2026-01-06T14:17:59.268Z", "postProcessHash": "b2f1aa1a757e3182c8dc7ef4afac68755d6de99454805a5fac9030c7b8d5d794" } } @@ -9231,15 +9399,15 @@ "e303e41ebcb2d5160248ecceb8943f82399ebc3323390c33a1d6a724c28354fd": { "28a231f853bc9e6425c97ca1c14dcd50898db661a90b51a9e9ef2aaf5c7c2f43": { "jp": { - "updatedAt": "2025-12-29T16:46:15.311Z", + "updatedAt": "2026-01-06T14:17:59.216Z", "postProcessHash": "f71a8c1de6ffc4a891866874feeca99a34b83130ee928b83df90545faa26df3b" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.309Z", + "updatedAt": "2026-01-06T14:17:59.170Z", "postProcessHash": "4558f33eadac29daa7b7bf065a51114a2cb289dec62a304896db013fbbf4177e" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.303Z", + "updatedAt": "2026-01-06T14:17:59.162Z", "postProcessHash": "f613190225e93f3bdab7e0099132ce422604665b70db6673071deeeefa421c61" } } @@ -9247,15 +9415,15 @@ "f1754d0c92d25ed65027ccc750febdcca2e7101c72a0eece6697b959d9971621": { "d2cbc57bddda71b0ca36a00fdc52702ffaecf753190fb6095d4a92fca38701f1": { "jp": { - "updatedAt": "2025-12-29T16:46:15.275Z", + "updatedAt": "2026-01-06T14:17:59.128Z", "postProcessHash": "8fe51ce28fd7b63c809f0c85fe65f2c9a918f7e5218c8c113cfd32c29f7b7797" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.356Z", + "updatedAt": "2026-01-06T14:17:59.234Z", "postProcessHash": "cdc116f2781ce49a5beb20c7096091a53044bc9df24df147f3efed636357025e" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.360Z", + "updatedAt": "2026-01-06T14:17:59.239Z", "postProcessHash": "3e1d0c8a4d52dcc2fa28c7fba4adbcf2d1fa2e18d8ff985a42661d35a2ea26c3" } } @@ -9263,15 +9431,15 @@ "ff2e4c3baefa9017265684effd06b1ae64d9d7d79efa83110c92a11de95d2c62": { "7e68dd457179debb6b3b8c9690002e92f3cfcc5539913ccfbd1d0632617d6548": { "jp": { - "updatedAt": "2025-12-29T16:46:15.279Z", + "updatedAt": "2026-01-06T14:17:59.135Z", "postProcessHash": "670638f0db36abcc26e40752d17cd0fc06808867b51d7c21268141107c12ba75" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.280Z", + "updatedAt": "2026-01-06T14:17:59.136Z", "postProcessHash": "7b1ab48913e7836765f80eb6197b420128724839e375281c593a06ec4e41adbe" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.281Z", + "updatedAt": "2026-01-06T14:17:59.136Z", "postProcessHash": "98fdc5cc9cf4cd68d69372c9e94b2e1bb9f7450a4d7b170ab1e2ce56400caf18" } } @@ -9279,15 +9447,15 @@ "10b704f16a650f1802b52736d2c823bd454d8b3dabb76ac91bdcc408b62420cb": { "2d4e7acb59df283f228e25658e527a973db16f341efce41e1ce84944cffa1fae": { "jp": { - "updatedAt": "2025-12-29T16:46:15.345Z", + "updatedAt": "2026-01-06T14:17:59.317Z", "postProcessHash": "ec5a388a9a1019eebe54bcfa4362a37332e3118d38e5e531aad97124e7b363c2" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.425Z", + "updatedAt": "2026-01-06T14:17:59.333Z", "postProcessHash": "e357ad302cc375a5de742a47c67c9a544efba2a5cb5ef04024094598cabe6cd1" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.347Z", + "updatedAt": "2026-01-06T14:17:59.320Z", "postProcessHash": "b2ebf45cdc5c0448b913c2d846fe223ef444bf10eb3d63a8ea326e1e4f9917c4" } } @@ -9295,15 +9463,15 @@ "1e8eecebd2a4e411fc3037074c79ba054debc70b7a76bf53100577ec14359aee": { "5e448cd743d25dd9d490161805e048c3c2f4696c9f46b52a466a1bba220a5eae": { "jp": { - "updatedAt": "2025-12-29T16:46:15.420Z", + "updatedAt": "2026-01-06T14:17:59.322Z", "postProcessHash": "067c9037555a589aae2754e4d4d2945c352e03ce2eecc76d470b4cf05ac2a174" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.341Z", + "updatedAt": "2026-01-06T14:17:59.309Z", "postProcessHash": "c4ec7224a06aa1c3a774c04b82dd773327b92cf3266dfbabf213510ef92edc9e" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.339Z", + "updatedAt": "2026-01-06T14:17:59.207Z", "postProcessHash": "2f03f5e9859788c62eff0d8e7cc79cd12d1b5904eff0df739a65aa785b7dd1d5" } } @@ -9311,15 +9479,15 @@ "3e8e050e4d3fc2dc532df4dd8556aae0bea35f5ab73c2aade8efe957930a412a": { "e8f4b7568afc6590d5203c133ee8873acbea759acf50b34794af4e2cd6b43ad1": { "jp": { - "updatedAt": "2025-12-29T16:46:15.286Z", + "updatedAt": "2026-01-06T14:17:59.312Z", "postProcessHash": "26fcdf44abcb4ff5dca61fbc132863181fb5f33b8572c7f112bbabe38ab93590" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.287Z", + "updatedAt": "2026-01-06T14:17:59.314Z", "postProcessHash": "08b2f1347140478e1a3c2c8cf97de527be30d258e273c19b210fdfb517d932ac" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.283Z", + "updatedAt": "2026-01-06T14:17:59.310Z", "postProcessHash": "b51fac697a79212d4e245ae4680e4347503944d65a611c3e01a9d45ea323b09f" } } @@ -9343,15 +9511,15 @@ "48ff5e21581a18794244e74d86a13a93c0401d4d23c46f267ead336c36e91cce": { "42db135883af584da69bdb891c2f149df97603eb1cabc3853355aeccb9eef199": { "zh": { - "updatedAt": "2025-12-29T16:46:15.424Z", + "updatedAt": "2026-01-06T14:17:59.332Z", "postProcessHash": "567a81d61e396cc4b14352eed173497438f1f8de8268f9c51163b97e14d0d23d" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.422Z", + "updatedAt": "2026-01-06T14:17:59.327Z", "postProcessHash": "2982ffacad8c74eb2357e1b1e9d5fb730c05988c0e97ddf7a1cd79159ade59fd" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.426Z", + "updatedAt": "2026-01-06T14:17:59.335Z", "postProcessHash": "ef174aa91e2a72e183c71547afb243dab2fff799458a265515bf9ef992a54e4d" } } @@ -9405,15 +9573,15 @@ }, "b38b7f389d7e76bde5b68044121eed23d9df00dce1caae24cb3700be607fe709": { "zh": { - "updatedAt": "2025-12-29T16:46:15.372Z", + "updatedAt": "2026-01-06T14:17:59.254Z", "postProcessHash": "38f76e18df1a074e8a5f3d409d7d637e98ece6884e3e8bede3b6fb20ef907176" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.382Z", + "updatedAt": "2026-01-06T14:17:59.266Z", "postProcessHash": "1b943b0181666a6c54dc4dcef74f4d67dd7dfbedfa604c6d16a286c94e96dd30" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.384Z", + "updatedAt": "2026-01-06T14:17:59.269Z", "postProcessHash": "6130af01de4055376d63ea7c63f459fecc0466224e11739fbd4b2dbb3f3b866d" } } @@ -9453,15 +9621,15 @@ "65aa83e28c6b450bc0daadd14828a7677fb27a998ea9f59faacc7187462718e2": { "3c0cab0fe63f1d762905d3d204e44dff7666b23009b55e1447c9939e7032e82c": { "jp": { - "updatedAt": "2025-12-29T16:46:15.359Z", + "updatedAt": "2026-01-06T14:17:59.239Z", "postProcessHash": "a72aaaacb836268ddaf282e21d0947d1131493dd98efc0f6f548d86517733b18" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.358Z", + "updatedAt": "2026-01-06T14:17:59.237Z", "postProcessHash": "d39b02e59a6961396019b601f4605be7b9ffd562206db0628317c9219d0b6fa8" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.277Z", + "updatedAt": "2026-01-06T14:17:59.130Z", "postProcessHash": "aafbdf92af3a44bdbf6d5e7aa89e56893e94a1335d52b3ae7c1d176e75a5c86a" } } @@ -9483,15 +9651,15 @@ }, "b45054a3d622a5313d48ea41c2a62d96057877effcc679de5cc2a3f856d3fa21": { "ru": { - "updatedAt": "2025-12-29T16:46:15.372Z", + "updatedAt": "2026-01-06T14:17:59.255Z", "postProcessHash": "c4971e7723df6f526df7529d0f855d22309c6eaff4e7100cf5852c6d020980c6" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.379Z", + "updatedAt": "2026-01-06T14:17:59.262Z", "postProcessHash": "86132af2263a6270dce089a6ed71e6a5a34a3b54c24b60698b9e8a2979c2c21b" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.385Z", + "updatedAt": "2026-01-06T14:17:59.269Z", "postProcessHash": "444d2bc2679ae9c938da56ff876e6f67309e9c0197b7774f56f9edd91b82aaa4" } } @@ -9513,15 +9681,15 @@ }, "02f89777da2b15c2169c734831de85939739259a0a9a9de55f005987ffd48654": { "ru": { - "updatedAt": "2025-12-29T16:46:15.368Z", + "updatedAt": "2026-01-06T14:17:59.248Z", "postProcessHash": "d490a14ca3f5e8a0f99462cb4bb73fc9144fbef650d2cb13a893252cad2fb6ad" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.385Z", + "updatedAt": "2026-01-06T14:17:59.270Z", "postProcessHash": "1364847dc3132e42b2a20e3e9e3b40fa6235b120913b270605c5ab0a28aad7d7" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.386Z", + "updatedAt": "2026-01-06T14:17:59.271Z", "postProcessHash": "6e87fc2543214959d48faf8ced3d2a4b7a440021477a1b7fa2e11e78d752c3c0" } } @@ -9591,15 +9759,15 @@ "abe38b651cd9f44a9de790429c92f0c07d5d279e5dae34af1329f362738d3a6a": { "0700f00685f173628dfa175ef2fa960a245c5094b60de40155456bae0cf0bece": { "jp": { - "updatedAt": "2025-12-29T16:46:15.422Z", + "updatedAt": "2026-01-06T14:17:59.326Z", "postProcessHash": "0b1c17f95bbfe2fc00f19e3d6a88cda33ed6166a6a8ff707cf6ed09902f8a2f2" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.346Z", + "updatedAt": "2026-01-06T14:17:59.320Z", "postProcessHash": "18b6fdbc507a326e594eea7c54d3b8c6d209fda9ba841699c465ac1f3d96cccf" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.341Z", + "updatedAt": "2026-01-06T14:17:59.311Z", "postProcessHash": "440d8a4a07590b06106c27b61eab79600d31c82795448b584452b4099de8ed50" } } @@ -9623,15 +9791,15 @@ "ced28404e4ce6c34312f58e0fa21dc44dc32726f8881c1adb6ed189087c1b289": { "946529a7ef15a484b25d74b9a9f179b04a186b82780a2ea1059020ee8785a2e4": { "jp": { - "updatedAt": "2025-12-29T16:46:15.300Z", + "updatedAt": "2026-01-06T14:17:59.213Z", "postProcessHash": "46889996e6311f808fa873b817c8c3f6b25c0fd0eb796ca33c6f52901e5f2637" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.299Z", + "updatedAt": "2026-01-06T14:17:59.212Z", "postProcessHash": "6327f2f028f855970da0977db7e3528566b99f58de807165e4468e22076bd5ad" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.301Z", + "updatedAt": "2026-01-06T14:17:59.213Z", "postProcessHash": "2c1ef71f90241978e130b931f78ca4412f8630c8e78a7ce32997b002ed71b588" } } @@ -9639,15 +9807,15 @@ "dd5f0d309844443578b1e477b78c685d87f106d689eab41fab33f12709affeef": { "d85b73cbceb154602514bc5dd5ccb07827a65d84bacf59d65c5ddc95c14947c5": { "jp": { - "updatedAt": "2025-12-29T16:46:15.432Z", + "updatedAt": "2026-01-06T14:17:59.345Z", "postProcessHash": "a24cb8be252777edba85607f66d1526bb091ee2dbccb568fc7011d8e1070a000" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.427Z", + "updatedAt": "2026-01-06T14:17:59.337Z", "postProcessHash": "72731f77cd0a647c33ec9f8e08e054d6f38198e3c4ec62104f3679ecaee24e84" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.431Z", + "updatedAt": "2026-01-06T14:17:59.344Z", "postProcessHash": "e6414f14cc71a17647c5a54449d3ae70a39ae918ffeda116fe860420e2f96371" } } @@ -9685,15 +9853,15 @@ }, "7de225e77add30708366636b7c7888d2fbb54d3d93feb8a09800f26c45e2ff0e": { "ru": { - "updatedAt": "2025-12-29T16:46:15.369Z", + "updatedAt": "2026-01-06T14:17:59.369Z", "postProcessHash": "6955ee2fb5f9be58ac2cec35932bb0b37dad374095c584c35afffaf8e8b8bd51" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.450Z", + "updatedAt": "2026-01-06T14:17:59.370Z", "postProcessHash": "14e15bcaf61b7bab98e1df696d085ed00256694cff095d6dd42c8b6c92c325b4" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.376Z", + "updatedAt": "2026-01-06T14:17:59.370Z", "postProcessHash": "85b6b63dd43e178f8e0414ef5ed7873a220d73190edf7e326764069de72d54db" } } @@ -9701,15 +9869,15 @@ "028aa3b50c80d12c1dff7886165e9713acd5da0e4c292ec8d74a396e6acb2825": { "1ba8e423cea5af1505e244428a4e315c1ec5b32bcf1289058189844c5da6dc2c": { "jp": { - "updatedAt": "2025-12-29T16:46:15.345Z", + "updatedAt": "2026-01-06T14:17:59.317Z", "postProcessHash": "1dc546cf019aa54cafef2f026aacaba4e919710066d77e70553828a4cb4b6599" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.346Z", + "updatedAt": "2026-01-06T14:17:59.319Z", "postProcessHash": "52bfc9ffc4cc464436115db8d899d596e78b2225b56503d730b1c60ebeed4d16" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.343Z", + "updatedAt": "2026-01-06T14:17:59.315Z", "postProcessHash": "0f1238f6dc917b0b31d83c0c5161200b664d3f21c661f6eb5013940aac3abb97" } } @@ -9717,15 +9885,15 @@ "0ae49380ec7f5d307e31d7b631f7f0bf275d679b03f17eb67c5359b37b5242f5": { "f8739620d7524e796b898c8c185a92bf25c2ecbf9cc3893754ede05bce45736b": { "jp": { - "updatedAt": "2025-12-29T16:46:15.440Z", + "updatedAt": "2026-01-06T14:17:59.358Z", "postProcessHash": "9736fde40767fb0aeb5cb8cb6354db4e60ad052f9dca0f5b2a67128b5e22e5bc" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.337Z", + "updatedAt": "2026-01-06T14:17:59.205Z", "postProcessHash": "c6cb9b7b58d03d6d6de37395e1be5d5d266d1c34ff9de781f4cecb94ec582dec" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.333Z", + "updatedAt": "2026-01-06T14:17:59.201Z", "postProcessHash": "31d2ccb22decd5f0e2343ca75602527668fe7a180b1cf3f0a90e0d8199c68699" } } @@ -9733,15 +9901,15 @@ "15fced5932ede7e35f56539b143eb9b8d0d01a97412450e147ef43084abe420c": { "ec90df838c140604af32f15594fffcd4af40335ecac6a833f13e0158156b0cbc": { "jp": { - "updatedAt": "2025-12-29T16:46:15.424Z", + "updatedAt": "2026-01-06T14:17:59.333Z", "postProcessHash": "797aa66fa55398cf84a49805d5c84894fd0f93e29214b8e9cc46fa79cfb29d12" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.342Z", + "updatedAt": "2026-01-06T14:17:59.312Z", "postProcessHash": "66ded0a2c4647ff3b715e79fd87df9f658827b2b9aaf7da37675a486fead569c" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.342Z", + "updatedAt": "2026-01-06T14:17:59.313Z", "postProcessHash": "82f962d4df3eecd726b8d00ee3924b1a666aaf27f6cb5a2138e48dea4f5f50b4" } } @@ -9749,15 +9917,15 @@ "16db9b76d16ef49e77f68158117027a4829a5968943ae93a509257b7c447f23b": { "04685109a89dab0b5bb34aa000e61426caa176d6790eefce0141144402762ae5": { "jp": { - "updatedAt": "2025-12-29T16:46:15.420Z", + "updatedAt": "2026-01-06T14:17:59.324Z", "postProcessHash": "4bc4dd43a3c1b07120cf9ecd61c33fd04a0e8ad9e7413efc02928d0dddb25bbf" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.340Z", + "updatedAt": "2026-01-06T14:17:59.208Z", "postProcessHash": "6d338d87b720fee7bca3a2fb417a65091a2fddac6a029bc6645c5296eb270e17" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.425Z", + "updatedAt": "2026-01-06T14:17:59.334Z", "postProcessHash": "46d06f556bbd4831aca7741d117a1b7f15777f703cef7fb4fc23766f55a3d2c4" } } @@ -9765,15 +9933,15 @@ "23eb3656e923d758ff491460d9d1bbec7009131392de09276848be0db41fd269": { "3625b1be463613c8fb56424fd4d91f2d85ae950ebd8adce02c7683e4fd11be26": { "jp": { - "updatedAt": "2025-12-29T16:46:15.433Z", + "updatedAt": "2026-01-06T14:17:59.346Z", "postProcessHash": "9a9204413e431de603ca51b5d454cbac824143dcc61f7ef1b9630a45127cfc44" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.433Z", + "updatedAt": "2026-01-06T14:17:59.347Z", "postProcessHash": "46c4b6b233b61d9e359449770bd38bce8932e6d461a5122d892f61ae8af29751" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.430Z", + "updatedAt": "2026-01-06T14:17:59.342Z", "postProcessHash": "46842ab88b260ac933fb10cae9c98c723d1e91e6b557d5d18e17ba6f8d24a9f1" } } @@ -9781,15 +9949,15 @@ "2f2ef25f504a5d8ae76cc6b6b38d72e25aa06fb601145bf8c4555defd3b22c9c": { "3045e21be62572632384525c8e68ac94c74ae489c9d3787b9b86c295740ce2e0": { "jp": { - "updatedAt": "2025-12-29T16:46:15.400Z", + "updatedAt": "2026-01-06T14:17:59.291Z", "postProcessHash": "71f866b6394a494c943057fbf526f70d926bb16210ca3c92d3a0ab1878ff68de" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.509Z", + "updatedAt": "2026-01-06T14:17:59.460Z", "postProcessHash": "db4dccb42ca8ccb5bf8d8ac83c76b177c9273a9204a2a185f1b2f458997af754" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.336Z", + "updatedAt": "2026-01-06T14:17:59.204Z", "postProcessHash": "a1ec52b63210541224c0116e3955b3e685875a654747ce1cce2da3570e59e272" } } @@ -9797,15 +9965,15 @@ "30adceead0e8f58341843c20ba7a1cfc58638b613d0457a74d610123f740dbae": { "e6bcf77b5129d316d4e7eeba39c108e94d974c9844395d380a2ef4f6b5f57283": { "jp": { - "updatedAt": "2025-12-29T16:46:15.427Z", + "updatedAt": "2026-01-06T14:17:59.337Z", "postProcessHash": "6e85204fde0f00f0749a40dc846cacb681fc8609b8ec314623d47b8feaa0581e" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.430Z", + "updatedAt": "2026-01-06T14:17:59.342Z", "postProcessHash": "02e5291007f6b55b99e18f619f7a8218ca50fbdcf98e60b88eced5e6bb543488" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.429Z", + "updatedAt": "2026-01-06T14:17:59.341Z", "postProcessHash": "adc71062acad530bb66571cb5e117135da00f9d0ad0b62c8373835be3a1abf24" } } @@ -9813,15 +9981,15 @@ "32d271131b76c30bee10004cc36afd1cc48e48b098944d731a875840a3e1520b": { "483a6ba5cfe7e35e8bd7361dfddd53f126ccf034f9f7e6b101dfc108419b0192": { "jp": { - "updatedAt": "2025-12-29T16:46:15.507Z", + "updatedAt": "2026-01-06T14:17:59.457Z", "postProcessHash": "3beb7a3cf6c06413e7865ea37d8045a6002cf810def99e819a8e901c10d15972" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.439Z", + "updatedAt": "2026-01-06T14:17:59.357Z", "postProcessHash": "1cf2b2f0fac8f186b8deaaeb4cade26a6a5dd20c69d83bd45df079148a9d42d6" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.396Z", + "updatedAt": "2026-01-06T14:17:59.284Z", "postProcessHash": "88d964231f508b34f45bd65b4a7028f893d2fdb4b5ac86524482a051c6f6e47c" } } @@ -9829,15 +9997,15 @@ "384bbc8a5c6f8f4fd3947610412c719d2877f712b2afbd35874807dc5bf37b5d": { "56a53674a355d521b64bc7d05698ba4051acdbeaca6a3c46a2fda8b450c719e9": { "jp": { - "updatedAt": "2025-12-29T16:46:15.332Z", + "updatedAt": "2026-01-06T14:17:59.200Z", "postProcessHash": "6ab23281dd6bf07489b397eb2efc86141ffab20de0d7aab6b40c9f387bf669f7" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.438Z", + "updatedAt": "2026-01-06T14:17:59.355Z", "postProcessHash": "e72433aa6643fb7640b533e1b45179d129b3bcb371ce68dd11c9c07183f323c9" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.338Z", + "updatedAt": "2026-01-06T14:17:59.205Z", "postProcessHash": "c1c510663369b56818fd7c6f4dd46321e8fbdf804476964d30e1ae10a6ab7505" } } @@ -9845,15 +10013,15 @@ "50e45c22e7e591fcbe4d61812d7d7a9d9626a7f94961516e9f2b08e27d3c36ca": { "4159f227f4e6ff08833e89755d03d3cec73f09d3e9171623e581edcd063d2833": { "jp": { - "updatedAt": "2025-12-29T16:46:15.331Z", + "updatedAt": "2026-01-06T14:17:59.196Z", "postProcessHash": "daeea312ef47ea56cf97d61a50f6675edb0a5e03d42a588be832bf722f519bd2" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.423Z", + "updatedAt": "2026-01-06T14:17:59.328Z", "postProcessHash": "747cb3fa4a8d9767a17f5127e46bdc89bc3c72607a21c44380ae1c5c62b73c30" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.426Z", + "updatedAt": "2026-01-06T14:17:59.336Z", "postProcessHash": "00c681ad796b7676775ed4653a1eb5c093fedeeae9b99345992a6026a2771a6c" } } @@ -9861,15 +10029,15 @@ "8b151a1a26b18205c264eb291e0e0442ddc0a8d5f8b81948e11a1cdd09758259": { "10f61a5bfa1bfc18d47b09dfd27319b441a25e084aea415d11bbbcb64e2a6c0c": { "ru": { - "updatedAt": "2025-12-29T16:46:15.394Z", + "updatedAt": "2026-01-06T14:17:59.281Z", "postProcessHash": "58aee0a924f18cf82cbfc27699964814482ee2ae4c003e47bb7be2764dd41321" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.506Z", + "updatedAt": "2026-01-06T14:17:59.456Z", "postProcessHash": "9290da78fed960c40ac467f5ff24470ca9cc00fd025f0dff3a471e72f77657f6" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.395Z", + "updatedAt": "2026-01-06T14:17:59.284Z", "postProcessHash": "7575d8a94811641acd62df57f59ab829754bca5d12d24f6cb271896b4d7fa866" } } @@ -9877,15 +10045,15 @@ "b2f66c32f59c426c83078d6b24b7186f54172727a996adce08872051de770134": { "0c794fe311b38eedc683c36f0c611835c85822c536fff3e7f51e45a39493a848": { "jp": { - "updatedAt": "2025-12-29T16:46:15.435Z", + "updatedAt": "2026-01-06T14:17:59.351Z", "postProcessHash": "839a4b3205cf958d315e163b29fbc6b1d8ea621c8431a9c22d437c3f49c15fc3" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.436Z", + "updatedAt": "2026-01-06T14:17:59.352Z", "postProcessHash": "0b1de2d6f41539ea7f85e66dfc11e27a1b74db6afb5a71186f330a2929841d1f" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.434Z", + "updatedAt": "2026-01-06T14:17:59.348Z", "postProcessHash": "179527139848e8f24e4ad556ee4a29c07f6acb5cd72100acd114b70776f63173" } } @@ -9907,15 +10075,15 @@ }, "fa863424d743d366493402b8f1f8ff57ee9b64f296cf2d9de6a4c0b539d05028": { "ru": { - "updatedAt": "2025-12-29T16:46:15.508Z", + "updatedAt": "2026-01-06T14:17:59.458Z", "postProcessHash": "4acc031ea836b0e111a41e836be9d596bbc69aade0c9877be9e4f014551bd078" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.504Z", + "updatedAt": "2026-01-06T14:17:59.453Z", "postProcessHash": "1f5e52b69e3acbe3d1e47ce1025acbf6bdbd8fa9a8ecfaeeac03cc94ed20af20" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.509Z", + "updatedAt": "2026-01-06T14:17:59.461Z", "postProcessHash": "3f1b7d14a5c4ab62a1852171410958b5d121f1e8c6dce4453e7a18630658d424" } } @@ -9923,15 +10091,15 @@ "b54c21849674b2f133d9a7587a54bf895f7b1a8384d344c53348c14c442b2644": { "ddce74d3907de04d0a9af32787564ecd6b5cba8d6c36159e1e227746999b1540": { "jp": { - "updatedAt": "2025-12-29T16:46:15.339Z", + "updatedAt": "2026-01-06T14:17:59.206Z", "postProcessHash": "9567c10778d97bd9efb4e46c3079c9b5dad2b8a030e30a935b89af10e1adb674" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.421Z", + "updatedAt": "2026-01-06T14:17:59.325Z", "postProcessHash": "d4643ba1e588471108496653806f1ceac51f5b4fd32ae156109dba7cba03064d" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.419Z", + "updatedAt": "2026-01-06T14:17:59.321Z", "postProcessHash": "992fc9bd0cdc364a811b860e1815bbdc5474e705a528781093b9f09d9a21b1ca" } } @@ -9939,15 +10107,15 @@ "bf6da61b91d435b98dbe4fcfd84c30e4661211a55093b7bd5294d05df5d9018f": { "8df18a3ed0cebffed7ef2a16c2c1feed24d08b38743943e1639bf2e1e83ad9cd": { "jp": { - "updatedAt": "2025-12-29T16:46:15.438Z", + "updatedAt": "2026-01-06T14:17:59.354Z", "postProcessHash": "9ea7f8d6c8c20c5a2dc95983972ad75693dd120c6081fbf8344ae5bf6ed8546f" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.434Z", + "updatedAt": "2026-01-06T14:17:59.349Z", "postProcessHash": "e7917f798ec4fb2b17b5ee34cf9e21e4d882ed1bbd7112e4a7aeb164a669c10c" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.431Z", + "updatedAt": "2026-01-06T14:17:59.343Z", "postProcessHash": "86945358d0fe7af7475872c0c29161df46893b85a51de2b04629f61ceb089c8f" } } @@ -9955,15 +10123,15 @@ "c600219b9f55bdfcea82201926bfe9e4cabf53497d2110e11a6a97d3a6de16d1": { "879e570e6a755b5436d4b4e3e5ee02f6ef2f2b1b56d5e30a0d8ad6d11079deec": { "jp": { - "updatedAt": "2025-12-29T16:46:15.399Z", + "updatedAt": "2026-01-06T14:17:59.289Z", "postProcessHash": "388831467293f4147c75c40d7d4a767f3a6de316e243b18b5df7bdb7a7e7ae31" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.399Z", + "updatedAt": "2026-01-06T14:17:59.289Z", "postProcessHash": "074f636982c45d05441864e0bb8f9d8b6a5bcfb7379d7682c3ce6ad365d33573" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.333Z", + "updatedAt": "2026-01-06T14:17:59.201Z", "postProcessHash": "08deb063d39e55969d8d1286b9d836e70d0b404f6f73ee3a29b9f877d4bdf960" } } @@ -9971,15 +10139,15 @@ "d20c2004eff27206aa611fa47101376ca27b19c79a7c22fef935d90c8c7ee0b7": { "31528a8c4089ac02ac4c5cae45bfcf8375faba7dbb39d635e3082a39955f5a65": { "jp": { - "updatedAt": "2025-12-29T16:46:15.428Z", + "updatedAt": "2026-01-06T14:17:59.338Z", "postProcessHash": "092bac32ef2276bcf182aa04e275cf9c5cd96ed39e09d6571aa6f9162ae9f7a6" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.429Z", + "updatedAt": "2026-01-06T14:17:59.340Z", "postProcessHash": "023231102310f58f0752ab79be2181161af384799434cd9f19680e5f8f23c4d0" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.423Z", + "updatedAt": "2026-01-06T14:17:59.330Z", "postProcessHash": "1ddbc1e222434e19c2ecd79f69b8e9577477722bbbacd697a95bfd2bbb6aa80d" } } @@ -10029,15 +10197,15 @@ }, "eca5ccae0f0ce646923905a05e3d0449ab7ea1cfcf004ac68b7dc68bd127f140": { "jp": { - "updatedAt": "2025-12-29T16:46:15.447Z", + "updatedAt": "2026-01-06T14:17:59.449Z", "postProcessHash": "798c414ac46ff6cb7da5471d13f80f15560e0fe24a146ad5047537a68a4d8c09" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.449Z", + "updatedAt": "2026-01-06T14:17:59.451Z", "postProcessHash": "54b0ed2e6f253e7fb14fa7c4f4b282f57948bfd6613f8f3ac127a66a6682305c" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.450Z", + "updatedAt": "2026-01-06T14:17:59.452Z", "postProcessHash": "a365e70a93207e558b9f780ff5f3ddafc981a32a915438be22219903261387a1" } } @@ -10045,15 +10213,15 @@ "d55ab4d59e8e430728299d153babb7440fdf1524f75ae30ac017602a393f72f2": { "e946a51dbbf49a6bb72dfb7320ddc89e75e9bca19562498770b9375217a83d34": { "jp": { - "updatedAt": "2025-12-29T16:46:15.331Z", + "updatedAt": "2026-01-06T14:17:59.197Z", "postProcessHash": "fa0f80104ebab789d4be6a8fccd13a260ae948c031092d6fe85902b979433c8b" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.395Z", + "updatedAt": "2026-01-06T14:17:59.282Z", "postProcessHash": "f165e9c0b2f3d50682761d388bcc28e56bdd355f37bdf9984704956e9ea68678" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.335Z", + "updatedAt": "2026-01-06T14:17:59.203Z", "postProcessHash": "c9ecb3a4a40a455e81f8b12a0e78dd424efb16afcd848b16e3124bcffac729e9" } } @@ -10061,15 +10229,15 @@ "e9e6900149061b39fd6dd6fa53d0c99f28ffac38d503ec961dd94dce5ebac808": { "aef65ce3391d03e363f980b73f3fa71276203fc5f77a1d75edec615250031f8e": { "jp": { - "updatedAt": "2025-12-29T16:46:15.421Z", + "updatedAt": "2026-01-06T14:17:59.324Z", "postProcessHash": "19ea0796e5e1e4d20077d406d584c2d709993077f56543db5e282e487e265be4" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.343Z", + "updatedAt": "2026-01-06T14:17:59.314Z", "postProcessHash": "5c75bb3a5ac1617d96cc105c4206a114b94dff8f04edb8e0c14e83224927c730" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.344Z", + "updatedAt": "2026-01-06T14:17:59.316Z", "postProcessHash": "e479ef0dec8be72e1c7774e8d8d3980c8d190c02130509bd864449fc4359d88e" } } @@ -10077,15 +10245,15 @@ "f5e923aaae110b8d3ec030f52c1731f515c0ed1b9a0e41490e863bb6395bd23b": { "c81f4b30001e6233066eddc0f7a5c166b4369eee24cb505fee91004bc16f3b48": { "jp": { - "updatedAt": "2025-12-29T16:46:15.437Z", + "updatedAt": "2026-01-06T14:17:59.353Z", "postProcessHash": "54267520bc9d6c0392e230184dfe227aab404bdee5dff6eda26ffa3ff4ba7dd6" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.437Z", + "updatedAt": "2026-01-06T14:17:59.354Z", "postProcessHash": "76ef965dca3e65a8a6c39a518f5f2568c7b92b882240fa8cf3a7d5446c8aafc6" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.435Z", + "updatedAt": "2026-01-06T14:17:59.350Z", "postProcessHash": "19906962b1dd182932936d54294ef2e5dc5c92819515500f701741cbf2a09355" } } @@ -10093,15 +10261,15 @@ "1d0e04973f4a7a2726ce086465182e22cfc8de26b7036f67bf3246dcdcab5c87": { "31f058ab67c32c0251f087188700872a277440d4f0ff0bd41cdc2a390207f441": { "jp": { - "updatedAt": "2025-12-29T16:46:15.517Z", + "updatedAt": "2026-01-06T14:17:59.470Z", "postProcessHash": "feeaa4eacc76e2e243446248328bccede723fa7e6088148ec4506da3659ecdf1" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.518Z", + "updatedAt": "2026-01-06T14:17:59.535Z", "postProcessHash": "d7d82650cd7173611493e2613d5c2400462664b0664da08d137ca50ba5918bd4" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.486Z", + "updatedAt": "2026-01-06T14:17:59.475Z", "postProcessHash": "1d307483c16ce70b8509ecb945e1ce32102014b64337aacdb4f823a4cee3344d" } } @@ -10109,15 +10277,15 @@ "1d411ae967753b5d27acfdc77c2f68fa873d228cea6cf769ee2c85f10b38628f": { "8c9d1bbb63ac91b1a18b930594b6d354536b4a42a4cefa28e167390053f64f41": { "jp": { - "updatedAt": "2025-12-29T16:46:15.924Z", + "updatedAt": "2026-01-06T14:18:00.101Z", "postProcessHash": "89e6c3b7da1e1eca6fd441ed5dc6e0e69a2f3ea377ca29ce175ec91161bd7bbc" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.930Z", + "updatedAt": "2026-01-06T14:18:00.104Z", "postProcessHash": "97d780756ada44637e14238143350dace22c74ad73d7f75c91dc3c47190159bc" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.860Z", + "updatedAt": "2026-01-06T14:18:00.063Z", "postProcessHash": "28e63dd6ae3999c9dd39576360ce5de9037a378d5cde2bfb35fec56915847676" } } @@ -10125,15 +10293,15 @@ "32a2dfa24b35817a5fedbfc4895185da11ba73834f024a8c145cb60b3ee324a3": { "8f13f0e888bb91b30f7b56131bf3728f2950f55c2375b05eab6a6c9cabcab037": { "jp": { - "updatedAt": "2025-12-29T16:46:15.852Z", + "updatedAt": "2026-01-06T14:17:59.932Z", "postProcessHash": "dddfae5b863f652a3db02b52444375066317b925dffed51e3a730fd909d3b624" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.933Z", + "updatedAt": "2026-01-06T14:18:00.106Z", "postProcessHash": "65db24e8f1f902c5b4fc82af9c0021c8e90c3ae535de4cac9b10dba8fd3b9d97" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.932Z", + "updatedAt": "2026-01-06T14:18:00.105Z", "postProcessHash": "3f53090f027053cd48fa57cabd00239d1611fd5792d44f409f7a48a870c3bd06" } } @@ -10141,15 +10309,15 @@ "34fe9aa819ffc70ef68be0505c66c5cb60f94370bfce6edd29d0ef846b1eb245": { "7ef9c6e569280d6e03a986898ccf237a939f4581319206934f40b7e910987b98": { "jp": { - "updatedAt": "2025-12-29T16:46:15.935Z", + "updatedAt": "2026-01-06T14:18:00.108Z", "postProcessHash": "facd2130b91a0e927658674dfe90551cb72b7de9af6c09c67eea8baa4f9bd913" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.936Z", + "updatedAt": "2026-01-06T14:18:00.109Z", "postProcessHash": "b7e47e3bdcd010f851494bc9d1f82bb009a6f743c320b0c3083e349a8b62e6b9" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.936Z", + "updatedAt": "2026-01-06T14:18:00.110Z", "postProcessHash": "974b35258c12208b262261f21223705447c42f5593de0ad8644d0b55532ba829" } } @@ -10157,15 +10325,15 @@ "5a1049606d2ddeb908a3f87e08c53c766115a2d5315cd4e891c852fa240471ed": { "4340b6e9c5ca9bb508ff61e1f7de601fd3ee092842be32670cf541dd9fe5b76c": { "jp": { - "updatedAt": "2025-12-29T16:46:15.920Z", + "updatedAt": "2026-01-06T14:18:00.095Z", "postProcessHash": "9b4fcd9777a63c27dbf02da2f7b40edad1c4f81f4628c5d08ab35fd8617d39d1" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.926Z", + "updatedAt": "2026-01-06T14:18:00.103Z", "postProcessHash": "ada6b69ab8b50646671a2bc5c903a7de89e64f496cdf5db6138275e98e1a209f" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.921Z", + "updatedAt": "2026-01-06T14:18:00.096Z", "postProcessHash": "65b7063043f8dd596ce71b2e1f76f6bf94cdda6c46334462c0780323245c4fd0" } } @@ -10173,15 +10341,15 @@ "6c930d7e263cee0da201aeb82b5afa15d7a0492edd3f17b70d744502c7da16c8": { "2c78d1148a39342c324f60ab8fd48891049dd3af4b2e04e98d60136cac22dac8": { "jp": { - "updatedAt": "2025-12-29T16:46:15.485Z", + "updatedAt": "2026-01-06T14:17:59.472Z", "postProcessHash": "df3b6a46d61232202de613cd76fb25c414f87feff5949e1652dcf29cb36c5885" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.484Z", + "updatedAt": "2026-01-06T14:17:59.471Z", "postProcessHash": "bc574dba311329752d5704578502238ab936a72460c5ec72dde612934745181b" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.484Z", + "updatedAt": "2026-01-06T14:17:59.471Z", "postProcessHash": "b6ddd50e1fd8808aec2cd503c37af600139a7a90b0ba8ec31b8e39f0f1d8b1b0" } } @@ -10189,15 +10357,15 @@ "7997000584a74b3a4893e2d952e3e74901f5c48d13d2477040f08510ce7fb94a": { "f3a543f784ce343388875d80bf6932364452e41d5c499c0fcdb6193cbc18d2ac": { "jp": { - "updatedAt": "2025-12-29T16:46:15.441Z", + "updatedAt": "2026-01-06T14:17:59.360Z", "postProcessHash": "cf15fccb2812a30197da5fade252328cea7406e02b8bcfc90cd2ba74f5cac393" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.440Z", + "updatedAt": "2026-01-06T14:17:59.359Z", "postProcessHash": "069aacb844f662250a4055bd8a5d932c42f2d6fcbf47eacdd427a1391b03067f" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.510Z", + "updatedAt": "2026-01-06T14:17:59.461Z", "postProcessHash": "26557d7a19c89948b533198867b967fde7571729350af5ad3bcbefc399be38c2" } } @@ -10205,15 +10373,15 @@ "7aeb5a3c848c3ac6401e3621b9731a411c3ffe53b1ec386f511089c819780c4c": { "1f0a4b693ba5e0ec268fafbbe5f0a583b29cfd716f04abb61d43c5813b6ad612": { "jp": { - "updatedAt": "2025-12-29T16:46:15.920Z", + "updatedAt": "2026-01-06T14:18:00.184Z", "postProcessHash": "65e6bc5cc8fb35caca398553725c133b41f659e859ecd2a73a0721666110d09a" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.918Z", + "updatedAt": "2026-01-06T14:18:00.178Z", "postProcessHash": "3dfe1418ec9ca42909feaa349b051d9dc6827fcc4ac4f64823ffe39814675884" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.918Z", + "updatedAt": "2026-01-06T14:18:00.181Z", "postProcessHash": "ac8834bd2928cb375e7af315d432ab7dd6b3c24a69cfb4c3af55cc287e3be37c" } } @@ -10221,15 +10389,15 @@ "7af81b34b1f80a6579a084fc3f8d1ecb9f0315e228a3b01eca34abc4e963fda6": { "c20825094b802738f9e5eb45bd5ac1dadaadc926f348ad24d8c06cc4e5157994": { "jp": { - "updatedAt": "2025-12-29T16:46:16.038Z", + "updatedAt": "2026-01-06T14:18:00.239Z", "postProcessHash": "c2cb7eebc9e5e1624ab0d7b7a2a0923e48d6f15acde70c8bfe73c35a37f7c82c" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.856Z", + "updatedAt": "2026-01-06T14:18:00.174Z", "postProcessHash": "bf59be746fe47a07766e0890213f802c5eaa47d487af53de8fdf43dc920fc783" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.855Z", + "updatedAt": "2026-01-06T14:18:00.173Z", "postProcessHash": "e22633b1d4ae4c51be9f1e7bb6c991c4cfe90f49130fc84c19e629e312254b44" } } @@ -10237,15 +10405,15 @@ "83eab82a7ad67622f732d278303fd5a55d015c462467d35a81a97662bdec853e": { "2d649e303741fd66ea1aa56354d590ebd300f6ec9c2b2ef22c28c636be7a29cc": { "jp": { - "updatedAt": "2025-12-29T16:46:15.400Z", + "updatedAt": "2026-01-06T14:17:59.290Z", "postProcessHash": "cb74bb046dafd98ad47fe735f915145a7ef54df75c99f2841f22c51a8ac3d40f" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.332Z", + "updatedAt": "2026-01-06T14:17:59.199Z", "postProcessHash": "d60000bad2136dbbd50c9d956e4fd29e9bd10e4631da6c529e13f73c42bc3d52" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.508Z", + "updatedAt": "2026-01-06T14:17:59.458Z", "postProcessHash": "caa35ea034abb22f7c16ecfc962ffa9d0277a26d68b1c2238e867333019a04c2" } } @@ -10267,15 +10435,15 @@ }, "4a2468d80ad712fe2f58626588703fa3841a2a32742a9561908e7baf9172a5fc": { "jp": { - "updatedAt": "2025-12-29T16:46:15.505Z", + "updatedAt": "2026-01-06T14:17:59.454Z", "postProcessHash": "461f307532de140e9791784bea231d914acc64b029eabe3e6c5255db97e47bc4" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.506Z", + "updatedAt": "2026-01-06T14:17:59.455Z", "postProcessHash": "a8fa54ee5b1d6303619f3c0a900a22f10f76b1a2e595ddf02ea50a7a77fbc863" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.515Z", + "updatedAt": "2026-01-06T14:17:59.466Z", "postProcessHash": "37a58e0dac947d5f490af2359ac2f04aed8faeb7c3c7361e455e96b932aa3ed7" } } @@ -10283,15 +10451,15 @@ "a2ec760009faa1e1eff2c135a3d4deb7afa6a079dda0c6d9f99db627647062d5": { "4f03a97491bdbb54d341d453335aff270c60976e7c3ad96cb719e9003ee5ad0c": { "jp": { - "updatedAt": "2025-12-29T16:46:15.930Z", + "updatedAt": "2026-01-06T14:18:00.105Z", "postProcessHash": "c3fe8dc15da469b3b690316ee0f3dac05e111e967b6be92392e1a8cce1891e35" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.857Z", + "updatedAt": "2026-01-06T14:17:59.937Z", "postProcessHash": "2b9be65425f6fb6a6894a8cb9c986437b826a97e0c630ba76f60138fd89d22d3" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.860Z", + "updatedAt": "2026-01-06T14:18:00.061Z", "postProcessHash": "c4f53d9adabe2759254b7751848ed5fe13bfb181dcf69b90c360a700063dbcfb" } } @@ -10299,15 +10467,15 @@ "a81ad531cd4308314f95a3bc7ee7518076cb8b225330a76bdebb309de6c07d84": { "eb1a10c317b4f12f9023e3b4899a6403eac245683d867b105338963ab1df00ca": { "jp": { - "updatedAt": "2025-12-29T16:46:15.488Z", + "updatedAt": "2026-01-06T14:17:59.537Z", "postProcessHash": "fe4cf16635e1597f0c20aa0526a3fd5833c4ca197e6a60ad21898e04cdc12328" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.486Z", + "updatedAt": "2026-01-06T14:17:59.474Z", "postProcessHash": "cb2fb376e0e4badce6893f4c2b8abda0bdbbda55a4b5b4f53719b919fb29f861" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.487Z", + "updatedAt": "2026-01-06T14:17:59.535Z", "postProcessHash": "32c0daeb591f374f52690f80c6485d2aac9da4d908b1cdb118fe5df773609f91" } } @@ -10315,15 +10483,15 @@ "a8b3a4c7be16228ce7b50cb870cc58cfe39f8c34bd28a3aca5822b90b0f42830": { "f2435d45557de24d303d66a742aeff55e64e2f4b580432c1d1d9f8eaeb1f5d17": { "jp": { - "updatedAt": "2025-12-29T16:46:15.418Z", + "updatedAt": "2026-01-06T14:17:59.307Z", "postProcessHash": "0d6d7e0d668ce04f563064673db30f6c32df98005397e269ea32ac4b3d07fe34" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.418Z", + "updatedAt": "2026-01-06T14:17:59.307Z", "postProcessHash": "9b28f7b97438e6854a99f6d9e59fb91a86520c705a1aa9ccdfb1d99819e8a6b2" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.417Z", + "updatedAt": "2026-01-06T14:17:59.306Z", "postProcessHash": "8378dcb5c2fd0fa57802506a14885033d1179e8f0e8a69aee4cfdf25f9a23eab" } } @@ -10331,15 +10499,15 @@ "b2dcbd4e41cb07eefcbc269f5df931324f8744a9483f6b145243bbc5673c42c1": { "5890daa9787c7983a0d917f5622f02d272e85c52daeee1444ef64b42ce8108d7": { "jp": { - "updatedAt": "2025-12-29T16:46:15.487Z", + "updatedAt": "2026-01-06T14:17:59.536Z", "postProcessHash": "1d01233022de791b913c4f6c0c0363198ba43ac2bbd93e734f8fac4ea10f5337" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.485Z", + "updatedAt": "2026-01-06T14:17:59.472Z", "postProcessHash": "7424ae00099ad654b47cea5fa63c1113b36f6aa17844563247eab13b74ca1e73" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.483Z", + "updatedAt": "2026-01-06T14:17:59.470Z", "postProcessHash": "5effbffaeff18e54c5c6e90c499c034df203ba5d122433e12cfe1d4235878180" } } @@ -10347,15 +10515,15 @@ "db411e0514092e58a10e4b885faa2126f95d2bd39dace283d1e44cbc9831e3dd": { "527580835a672b74a709bacb51a246aba1c88246216cdba2db279817225f4044": { "jp": { - "updatedAt": "2025-12-29T16:46:15.516Z", + "updatedAt": "2026-01-06T14:17:59.467Z", "postProcessHash": "79aac25948ebaf0a0eb927d41821ab341f469cb49e79e3b9d9ca3deebd47726a" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.518Z", + "updatedAt": "2026-01-06T14:17:59.537Z", "postProcessHash": "2368438d63b4b467fc179501f662986a39b1d516940330d6fb3f116f9da823a1" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.516Z", + "updatedAt": "2026-01-06T14:17:59.469Z", "postProcessHash": "afedcc4d54386c3169d681343741d6b5dd591e2f5fe69c69d4b83f9a32d2dbd7" } } @@ -10363,15 +10531,15 @@ "dc3682d31d860920c0027dc94b51e1f197c5a38ca754f403922910b9b8ba3903": { "668b968f7ffa7b6faf894697548c553b64afd08c5b62258b0eb445aab83c7d88": { "jp": { - "updatedAt": "2025-12-29T16:46:15.922Z", + "updatedAt": "2026-01-06T14:18:00.099Z", "postProcessHash": "1b662f3a2b14d01a168e4d32b2558dcd3cd624c07adc888627b181d109c1a2a8" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.934Z", + "updatedAt": "2026-01-06T14:18:00.107Z", "postProcessHash": "bed09aa551b0d2426f85d4ff8807eff4a0171a186cd0af162065e74b91d3066a" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.922Z", + "updatedAt": "2026-01-06T14:18:00.098Z", "postProcessHash": "fee96f8229e6369481aedcb81d84bc05ee405fe873ec5bf4d234de61c6f433a6" } } @@ -10379,15 +10547,15 @@ "e72fb86764359e026d92c8940ee6175f5febdbd710006033850bb2ad8aa43023": { "10e1df69f27be8e1de4c2159ec11f7a83395eb9a20a7b729e0fbe4c2bc8bb473": { "jp": { - "updatedAt": "2025-12-29T16:46:15.858Z", + "updatedAt": "2026-01-06T14:17:59.939Z", "postProcessHash": "97cd79eaade532dc187f6cabcebe985d6464a405fa314376e5d4b1972609b9c5" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.859Z", + "updatedAt": "2026-01-06T14:17:59.939Z", "postProcessHash": "33985d10f9132cd808f9b80ec91d3818bd61fb7b3f0d26ae536fe0c8294e3d2b" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.923Z", + "updatedAt": "2026-01-06T14:18:00.100Z", "postProcessHash": "9978cf30035ec8d2edfeb3e43b85314dc351f4b455fdfda21f4787ad677f90ea" } } @@ -10395,15 +10563,15 @@ "ea7e5e311ec73e96e57ec3343b5c4d7cd8d2c758deae9104dffeb15243a22097": { "a6b1a10073ba1bedb61ae0ed5088f394cf79fd30feddaa919ee25e9e0f4c991c": { "jp": { - "updatedAt": "2025-12-29T16:46:15.934Z", + "updatedAt": "2026-01-06T14:18:00.198Z", "postProcessHash": "1db3cf1a0378d4689ce664ae3814e18836cace35af8cc0b1fd55b00b7804c7a2" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.931Z", + "updatedAt": "2026-01-06T14:18:00.196Z", "postProcessHash": "dc448cb5cd91fb6e5b4ce5ea2edeacf103f9a93d376254505edc1f8851406c96" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.935Z", + "updatedAt": "2026-01-06T14:18:00.199Z", "postProcessHash": "6622b57641acfc9d9827cc08be4f9b19e5d8c69e97e94d44c7d7ef720e3abd49" } } @@ -10411,15 +10579,15 @@ "f46404d0d2b932ed24233530122a903e98fd0ad2e866b50bb50ad16e35006e6f": { "ce6bd20ee80f6f7df45c614920f103f5eb64699dca884aa2e9a55c8adbfcc913": { "jp": { - "updatedAt": "2025-12-29T16:46:15.924Z", + "updatedAt": "2026-01-06T14:18:00.102Z", "postProcessHash": "afd7c3e617ccd4545d3f8ddfe29a733f1d93de18fb8e45726795a3bf8f60eda3" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.919Z", + "updatedAt": "2026-01-06T14:18:00.093Z", "postProcessHash": "1545c0cbf11f952e0dd4722849716292ae8319e22aa74d93e015451584fb12df" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.861Z", + "updatedAt": "2026-01-06T14:18:00.087Z", "postProcessHash": "a05915be53793d8e461fc19905133e0e3540bbfe005d6cf0db1091a558b05a22" } } @@ -10427,15 +10595,15 @@ "f6103a7698b24fef604602086936cf148c11df516f6f84bf99b48971614c717b": { "2934cd253b5a2e39a317ce455fc2c1d9f94f60e9c0af926ce756c8e2261a0354": { "jp": { - "updatedAt": "2025-12-29T16:46:15.925Z", + "updatedAt": "2026-01-06T14:18:00.103Z", "postProcessHash": "b488148dd618dde2959c80d89e468a7e8ef0b2b525d5f02e72336b6907d0f4f3" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.858Z", + "updatedAt": "2026-01-06T14:17:59.938Z", "postProcessHash": "92f7da0b2dca0564d02c0836aeb4ceffe3240c3ccd2a7dadd3984428b74df8e1" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.859Z", + "updatedAt": "2026-01-06T14:17:59.940Z", "postProcessHash": "6938d08752491a6eaca3e91914c910f81b1a4a12fb37bfaeb387c87d6be254ef" } } @@ -10457,15 +10625,15 @@ }, "34f03de7400c581bacf2eacf7cc849419da2a9264b4f7457b1a8cf731687a835": { "jp": { - "updatedAt": "2025-12-29T16:46:16.025Z", + "updatedAt": "2026-01-06T14:18:00.220Z", "postProcessHash": "5bc2146bb39e588a137e5f94829b62f6558610ea2fda130cc2a32e5b9dd3aa64" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.027Z", + "updatedAt": "2026-01-06T14:18:00.222Z", "postProcessHash": "d8d15847dc8873047e2c9558d9aaa8b285513602dbc99f98118e606cb038cec0" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.029Z", + "updatedAt": "2026-01-06T14:18:00.228Z", "postProcessHash": "1a2c645e24a02a4384e40d711386af51ec22fc9c676164d18931dd3f8ae5fe20" } } @@ -10487,15 +10655,15 @@ }, "f9eb79d576a66917acb2a981d6c04a5f528bfce016b608bdfb8ef10ce9f5b821": { "jp": { - "updatedAt": "2025-12-29T16:46:16.015Z", + "updatedAt": "2026-01-06T14:18:00.208Z", "postProcessHash": "db6b1f767b4c8f08c08ec0a6aaedc59f6a2f5b77a0d2d85190c30fc30f7b6aaa" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.019Z", + "updatedAt": "2026-01-06T14:18:00.211Z", "postProcessHash": "ce7cc777bb42cb69394844b7d9c55e82bcf6e207eb536f36a855da043ade53e8" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.022Z", + "updatedAt": "2026-01-06T14:18:00.215Z", "postProcessHash": "82cefc78bdaf2bfe78a7a02b230c08b7c025e22d24aef481fdb58884f112925c" } } @@ -10503,15 +10671,15 @@ "1582ff8ea3fdbeb1dad986160d1b0999795a555f6d89e98dd145b6f49dfb08eb": { "5e343ab5ab03d0e1fa46bf003992f1eb136b9a12bfad77828128edf71d3afe32": { "jp": { - "updatedAt": "2025-12-29T16:46:15.913Z", + "updatedAt": "2026-01-06T14:18:00.050Z", "postProcessHash": "2771d0d0f9101bffac6122e94593a50ca733a6f00d64a69623445d6a17bed774" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.911Z", + "updatedAt": "2026-01-06T14:18:00.039Z", "postProcessHash": "e494919c5bc805844ca85f11b025b851ddaf7dbac10999cc5346bcb837742d97" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.912Z", + "updatedAt": "2026-01-06T14:18:00.048Z", "postProcessHash": "7305029317105944b6cdc328e4906951d26ad1968e8e341fa57511a297af8618" } } @@ -10533,15 +10701,15 @@ }, "6a64b6f4a9a1cf7d2ace5967c242c3551c1ac5d6e1af2e2e06e3dd0a69e3e2cb": { "zh": { - "updatedAt": "2025-12-29T16:46:16.019Z", + "updatedAt": "2026-01-06T14:18:00.212Z", "postProcessHash": "c902ab48fed3fe0735d29ab5fcd4448350902e99c7802dc07102c10903d0d931" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.024Z", + "updatedAt": "2026-01-06T14:18:00.217Z", "postProcessHash": "67d614a20aa383d6a5ed17f6d3a9aa8ebb1840ea7ef97087072a51c92714c571" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.028Z", + "updatedAt": "2026-01-06T14:18:00.226Z", "postProcessHash": "b775a45ea5c6ffb9f9719c5d31c4db3d4f7cb6ee3aaaab4b9ab4e557def73152" } } @@ -10563,15 +10731,15 @@ }, "83b5a12090e3b4ac4dfef75f4b57087af7fab019302961983c16fd16ab485565": { "jp": { - "updatedAt": "2025-12-29T16:46:16.098Z", + "updatedAt": "2026-01-06T14:18:00.320Z", "postProcessHash": "818a524493b7ace01195b50c5478e9bd51e1ea2c50c5b54684c3e49893a1c68a" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.103Z", + "updatedAt": "2026-01-06T14:18:00.323Z", "postProcessHash": "1e8da2c85b2e5ade01b9ad739d168fff4832bf860ac24181d944268d25d71720" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.106Z", + "updatedAt": "2026-01-06T14:18:00.328Z", "postProcessHash": "52b702f0b34177a56776bff0f972daf24af239fcf3b7458f525ccebe0670944d" } } @@ -10593,15 +10761,15 @@ }, "6d820abab7a3df35b61bb572a27502d6005ef18d1d1b73f2e8573e2c14c3f2bc": { "ru": { - "updatedAt": "2025-12-29T16:46:16.013Z", + "updatedAt": "2026-01-06T14:18:00.206Z", "postProcessHash": "efc36be0b1d70a634f5848195333d4427353a863218290ca18980146a71b4dc8" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.020Z", + "updatedAt": "2026-01-06T14:18:00.213Z", "postProcessHash": "a29864be3304df0df73fbce4369c8b7c563ec825029b522eb5a3fb4c049242ae" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.021Z", + "updatedAt": "2026-01-06T14:18:00.214Z", "postProcessHash": "7f67901ecfc1120f83187a3bc417d958a705cfa84b2af7169afcc8bf3287eff2" } } @@ -10623,15 +10791,15 @@ }, "e128c329953bf60e155f8b452afe508dd4a7969ad1d17ad2cddb71dacc497f3c": { "zh": { - "updatedAt": "2025-12-29T16:46:16.028Z", + "updatedAt": "2026-01-06T14:18:00.225Z", "postProcessHash": "a6cebb8be20cd9202579caae56d3b3ad7f8eb59bbcc6cfcf47bfa2ef5a3f1e0c" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.032Z", + "updatedAt": "2026-01-06T14:18:00.232Z", "postProcessHash": "e390ce21b333853a9175be9df2ae641229274e21fe0aee2aeacdb0cf38e49a83" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.037Z", + "updatedAt": "2026-01-06T14:18:00.237Z", "postProcessHash": "ef078538c51a702d5550eb855d166eeddcc09263997231e80948148fea680d96" } } @@ -10653,15 +10821,15 @@ }, "5d9b439a5313e5dccba5da07f25f1f1e51cc76b3f6e73063779d3ac3001696cf": { "ru": { - "updatedAt": "2025-12-29T16:46:16.104Z", + "updatedAt": "2026-01-06T14:18:00.325Z", "postProcessHash": "2130aae3c02c39498338679b893f39b87b86bce8492dcaee5d9476eba7a19b9b" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.108Z", + "updatedAt": "2026-01-06T14:18:00.332Z", "postProcessHash": "f07654416ffad638711b1adb1038fbbe3d4d4104f2b786868119717c46cb72ae" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.109Z", + "updatedAt": "2026-01-06T14:18:00.335Z", "postProcessHash": "6ea3bfa88fbde6bf03b849510416c9ab4b9454a86edddf4cced952786a47f15e" } } @@ -10683,15 +10851,15 @@ }, "299fce335c134f3b75949a5fe56615d57418c7568677ad8523ad6b7d4db1d93b": { "ru": { - "updatedAt": "2025-12-29T16:46:16.017Z", + "updatedAt": "2026-01-06T14:18:00.209Z", "postProcessHash": "e514f687591a5225200717e56a6d1018e0dfe6add70471b1555476f2fc2a8226" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.027Z", + "updatedAt": "2026-01-06T14:18:00.224Z", "postProcessHash": "87ae6363af78007687ae3df9b8d60371ba81c73d9cc4828ef96dcccfc9b77b4b" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.033Z", + "updatedAt": "2026-01-06T14:18:00.233Z", "postProcessHash": "5bd575dbd46a74dc46f0bd93bc3a3c606a4b2dd7a63ba6ad7e07885d5a785ddb" } } @@ -10713,15 +10881,15 @@ }, "d83ee3cd6bdd06fa2bf4f1366bf483572ced61438b480f859dee34b2bb596131": { "jp": { - "updatedAt": "2025-12-29T16:46:16.023Z", + "updatedAt": "2026-01-06T14:18:00.217Z", "postProcessHash": "dc2172bee86a4dabee3c1495cc1e1e3c2934090400c093af3002b6b3d64085a2" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.026Z", + "updatedAt": "2026-01-06T14:18:00.221Z", "postProcessHash": "46dca4688f761df2b31e6dee0be05fae58e9b1f023718765fc8e6970ed407ea7" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.029Z", + "updatedAt": "2026-01-06T14:18:00.229Z", "postProcessHash": "7bc4793dd53127b7ceae14cb91767e3f55696268bdddd433bf4b1737edaef070" } } @@ -10729,15 +10897,15 @@ "705e7aed31578540442c080a6cafebaeba2bf1ddb38ec739dd014aec5b25502b": { "29a6c789509cb2e9a587186b93902ad76eec1850c4f01f91eb5c2a4c186d557d": { "zh": { - "updatedAt": "2025-12-29T16:46:15.995Z", + "updatedAt": "2026-01-06T14:18:00.185Z", "postProcessHash": "aa9ea865ef9a74fd0403c13740154b4683b116cf2be151eb36e4d903df8e43cd" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.992Z", + "updatedAt": "2026-01-06T14:18:00.182Z", "postProcessHash": "9e4d90e728d86e76cfe85c8b9159ada8015ead90139d4040e891b4a4f00850e1" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.991Z", + "updatedAt": "2026-01-06T14:18:00.180Z", "postProcessHash": "06352ad240cef2dac5575aae8c070331995023cab2e2e76b9c0db73094ae5254" } } @@ -10759,15 +10927,15 @@ }, "1b999cf5d454f27821fd607d704121c44fbaea4185786afbc4e3c08656483a1e": { "zh": { - "updatedAt": "2025-12-29T16:46:16.022Z", + "updatedAt": "2026-01-06T14:18:00.216Z", "postProcessHash": "568bc948053972ed0532de1e4aa6d0bde9a1e40387854710ccbfc05fe3e45dde" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.030Z", + "updatedAt": "2026-01-06T14:18:00.230Z", "postProcessHash": "951b39de52dcb8b1afd56946936b984ff7a9dad3a99a48be4d0ce5f554ce20ad" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.031Z", + "updatedAt": "2026-01-06T14:18:00.230Z", "postProcessHash": "9d80a4428f0c81011c69131a676516565344182975a9f5feabd5b4ab68cda0ef" } } @@ -10775,15 +10943,15 @@ "9368e9ef7da2d3545fdcad02056a63f297099ae569a58d6445ec4175f477bcf7": { "5294da061b84e38e7a5c72fa3738434b348d3c948072b63438f6f8e9041f8d45": { "jp": { - "updatedAt": "2025-12-29T16:46:15.915Z", + "updatedAt": "2026-01-06T14:18:00.172Z", "postProcessHash": "51e661202495f554aa919aba26211105d194905f68e90b11569644e22a4d19f0" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.912Z", + "updatedAt": "2026-01-06T14:18:00.042Z", "postProcessHash": "d853a11d46583014dca16d756e17c7e4ca723c5ebf68502445d29c29678ad99b" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.914Z", + "updatedAt": "2026-01-06T14:18:00.059Z", "postProcessHash": "bed67a22fd139b99c1bc9312af0a27bf3841ed0b09101b9e00e0e6432dd83be9" } } @@ -10830,15 +10998,15 @@ }, "ae723387741aa229e4619879cefb73d81db7d2f3bcb49d7c43b3be5322750897": { "jp": { - "updatedAt": "2025-12-29T16:46:15.927Z", + "updatedAt": "2026-01-06T14:18:00.190Z", "postProcessHash": "df63d378babbd34cf3ffa5a6fe03c50c26dbfec4720d91ae4ac3e2438e339880" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.928Z", + "updatedAt": "2026-01-06T14:18:00.191Z", "postProcessHash": "1b6253bb0eca3a34f8f08ff4a2d15d05cf4ca9fea0982a9b7be333db8585b371" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.929Z", + "updatedAt": "2026-01-06T14:18:00.192Z", "postProcessHash": "c7fbcdfa39bfa31421958763c0d093dff3410dd58185351d759376857a76352e" } } @@ -10860,15 +11028,15 @@ }, "082252c146a8624be476017bc14a024d898f45fc4d5a968702130fed23163922": { "jp": { - "updatedAt": "2025-12-29T16:46:16.014Z", + "updatedAt": "2026-01-06T14:18:00.318Z", "postProcessHash": "62eefd642e47b714188dfd914801d8e874103ba692b796f381bb82bcfd007161" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.014Z", + "updatedAt": "2026-01-06T14:18:00.207Z", "postProcessHash": "88b1fc226aa7c006c828bb9a755c439cfbfc069935f52dd362a1ee159ba8a63c" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.024Z", + "updatedAt": "2026-01-06T14:18:00.330Z", "postProcessHash": "9310cb76c77f15f7ebdfc26d3ea01c5d4da99f167c94c11026c987690bcbe64a" } } @@ -10912,15 +11080,15 @@ }, "d79e4dc4b237dec0f35f65ddab8428e1fef66847c5a4cda67fc866ffaa1f0246": { "zh": { - "updatedAt": "2025-12-29T16:46:16.015Z", + "updatedAt": "2026-01-06T14:18:00.207Z", "postProcessHash": "2ed7ef0f5a2016bc90e09c2ade968da162644ea0e83579c88040e72d4ad4509d" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.016Z", + "updatedAt": "2026-01-06T14:18:00.209Z", "postProcessHash": "c56f7b6eb7abc902731794d1b2a5bfb48ce41da9040285ac5df65233dd76c61a" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.021Z", + "updatedAt": "2026-01-06T14:18:00.215Z", "postProcessHash": "da466dac4238a7a94e6cafbafcf4e678c94054e0e02fc7fea1bf214bf6db9847" } } @@ -10942,15 +11110,15 @@ }, "5fca8bf39e6d30b2a0660f71523bf990f807dc38d35972280ac8cb08ecf47124": { "jp": { - "updatedAt": "2025-12-29T16:46:16.017Z", + "updatedAt": "2026-01-06T14:18:00.210Z", "postProcessHash": "a84ebb23d97180febeaa7b99bdbfdfb9175deb37e0457808e962e13de648ceaf" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.025Z", + "updatedAt": "2026-01-06T14:18:00.219Z", "postProcessHash": "3ef4b33b49ba648690a0798a161c5e18c4c518da976de4fd70e8d4f19f009068" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.031Z", + "updatedAt": "2026-01-06T14:18:00.231Z", "postProcessHash": "a7e2b199d655be608fe49c362769eb765a26ad59f3c7645201fe367f4a4188fe" } } @@ -10972,15 +11140,15 @@ }, "6a16a15d13a1da9646b575d1ffcec6a6ea8440edf121b8fe622075379ebab0a7": { "zh": { - "updatedAt": "2025-12-29T16:46:16.034Z", + "updatedAt": "2026-01-06T14:18:00.233Z", "postProcessHash": "0f14ef17ee7f536bb05e47aacb5136d5fd28dacff633b300f7b9459273a17cfb" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.035Z", + "updatedAt": "2026-01-06T14:18:00.235Z", "postProcessHash": "eda5018513c49667aebcf5878703d26fd0a56123ca82333c7231fe0650bcbaec" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.037Z", + "updatedAt": "2026-01-06T14:18:00.238Z", "postProcessHash": "b1aa0d9f66cc45aca9d31b188d52f8cb23cd885e3a1fc4a8d675e05f8e18eb87" } } @@ -10988,15 +11156,15 @@ "dbd0d5161d0bd3efeb5fcda68e773df51262f2852a70440882d847c3e8ed79ff": { "558ea55eedb29b8236de463bdebed17358b2ffd17236ba1c7d0c9758543b7b74": { "jp": { - "updatedAt": "2025-12-29T16:46:16.001Z", + "updatedAt": "2026-01-06T14:18:00.194Z", "postProcessHash": "041a3fe5d42ed1971b184f9c6d8e4ad58ebaf273f3b9cc0c1a673ec611b3fa75" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.992Z", + "updatedAt": "2026-01-06T14:18:00.181Z", "postProcessHash": "4e4a3fc358bbe45cf9e85a51a2a4a3848907e116d4cb90509fa939d75851e942" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.997Z", + "updatedAt": "2026-01-06T14:18:00.187Z", "postProcessHash": "77a7e038a01ede1de403ddc0e10fd2bc4c23fce83950cbcfae3e5384628eaf64" } } @@ -11029,15 +11197,15 @@ }, "9317fa05fcd5269e5802910f4d1917bce4ba70fa6cf3e9a1edbcc3d6ff46b22f": { "zh": { - "updatedAt": "2025-12-29T16:46:16.018Z", + "updatedAt": "2026-01-06T14:18:00.211Z", "postProcessHash": "00231e7f68425acf780fb70838382a8b37fe75c0dc471719ef16edc663f708b4" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.034Z", + "updatedAt": "2026-01-06T14:18:00.234Z", "postProcessHash": "324b08d9d51cc7e5734e2741163bb2740f3a7509765d9282993a75e52d0d0cfa" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.036Z", + "updatedAt": "2026-01-06T14:18:00.236Z", "postProcessHash": "4e35dac7459c751af7312647c7968de8bed52ec1351c2c230a0ca0058cd642e3" } } @@ -11045,15 +11213,15 @@ "ee20bc66651b66977783ce3a17b9d4f38b09b4a0774e0791bb9fb26a7f930500": { "e7338142de8dacc4a6fc04e51a78c9dd1fb3bbef6534057d60f8de1db6ed3aab": { "jp": { - "updatedAt": "2025-12-29T16:46:15.915Z", + "updatedAt": "2026-01-06T14:18:00.172Z", "postProcessHash": "24f55b7fa897436d26b0d4c23bd171f0acc7eb0237fb3e5c833738cbf8237978" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.913Z", + "updatedAt": "2026-01-06T14:18:00.053Z", "postProcessHash": "5e083320599db445535dc51e52e9eca91b6f9ac9fb8163af07974107e03e85bb" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.915Z", + "updatedAt": "2026-01-06T14:18:00.171Z", "postProcessHash": "2e1b95c98660ffec7a618d347b6bbbfeb3406555dd8284448db2aff2ab14f5aa" } } @@ -11075,15 +11243,15 @@ }, "0ce28a72883aaf92a47f0a4a4f6701132dff1388b4029cefc8144ed420b7e1b5": { "zh": { - "updatedAt": "2025-12-29T16:46:16.039Z", + "updatedAt": "2026-01-06T14:18:00.244Z", "postProcessHash": "ed279e5bd8e8cb6f3d97ecb94e354531ce5e80913dcd9ce9019f4e5908f4354f" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.039Z", + "updatedAt": "2026-01-06T14:18:00.245Z", "postProcessHash": "fb9cc7050ee6fc6e17c41695b3a49603e1b51b9cf85826668a8d628e60975d3b" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.040Z", + "updatedAt": "2026-01-06T14:18:00.246Z", "postProcessHash": "31639b3814cb6d113179e66531e77ea7b4f8e427505b594edb4d8ce82d66a04e" } } @@ -11091,15 +11259,15 @@ "26480489190477329712e0e890231f9ee67f7bae2ec93f1adc5e49bd8705dd0b": { "ca234a63cfee1038a0b6bb5b7e10d7ef8307e9e5239cd0706669420fd2cb62a3": { "jp": { - "updatedAt": "2025-12-29T16:46:16.080Z", + "updatedAt": "2026-01-06T14:18:00.289Z", "postProcessHash": "6e9e411c14181611a591ba0701de289ed66e3a8d34fe7267106bb277abb76263" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.078Z", + "updatedAt": "2026-01-06T14:18:00.287Z", "postProcessHash": "26acba8b7e643b1b86ccfb3c3f452b788397c3fee85c6592f3fb74c914c2038b" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.081Z", + "updatedAt": "2026-01-06T14:18:00.290Z", "postProcessHash": "11905b7c7c8cd54ab9975eb240ab4fcd43062677cccefbde68f1eb9fde75b0fd" } } @@ -11107,15 +11275,15 @@ "356c6ff78cff0c4de1af14bfafe2c9bd10139292cd3f3c3553d242bfb277d994": { "cf5d9fa224a574f45a3c02cbc85a2617672d37fcaddc77e5adcfc9fa74e326b1": { "jp": { - "updatedAt": "2025-12-29T16:46:16.067Z", + "updatedAt": "2026-01-06T14:18:00.273Z", "postProcessHash": "611faa1df9e1fb1ec1d106d78f4a897913863f2ba72f7723f3a3af4f618bb7be" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.068Z", + "updatedAt": "2026-01-06T14:18:00.274Z", "postProcessHash": "8e4f2af9312db5abcc6f81a377fde2ac62ba429ae3fd6997eeae5c3f58167c01" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.072Z", + "updatedAt": "2026-01-06T14:18:00.279Z", "postProcessHash": "6791f52739c6dc49bd884ea2edea88a7a3593c792c942b6cf44611956d521d26" } } @@ -11137,15 +11305,15 @@ }, "c2f88d3562bb1ff02a88972a3c2cdc684b27931ba14c9c64e76e76e953f6211c": { "ru": { - "updatedAt": "2025-12-29T16:46:16.083Z", + "updatedAt": "2026-01-06T14:18:00.292Z", "postProcessHash": "4f4746f0ecdaccbdea4d386e40ad51b23921149699beb0e0a5c1bda5733cb3d5" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.083Z", + "updatedAt": "2026-01-06T14:18:00.292Z", "postProcessHash": "c8fe646c15a3b61ee55b0dd5f429cf51bc75fc8ee6fdd605f42450c68573765c" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.084Z", + "updatedAt": "2026-01-06T14:18:00.293Z", "postProcessHash": "718f5520ff34faebb279d6ab189687348a1af8f7220a7a73cde261d5343eb0d7" } } @@ -11153,15 +11321,15 @@ "3b4bb74db846ca0f012ad71dfdb33334fa8118040393487ad35fea48bd2470ea": { "3120f1e4d4f08a6ba69af7daa70ffa13d27c3a4aef713d36140278c033dcf2bc": { "jp": { - "updatedAt": "2025-12-29T16:46:16.060Z", + "updatedAt": "2026-01-06T14:18:00.267Z", "postProcessHash": "392a889b54d67c206484c964c2347448235c34e9cbbc8030e3def3d7e6364a64" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.065Z", + "updatedAt": "2026-01-06T14:18:00.269Z", "postProcessHash": "f0db541eb99656b04fcbdcf4167fe7911875830a5bb211599808c9c911ece9fa" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.070Z", + "updatedAt": "2026-01-06T14:18:00.277Z", "postProcessHash": "062448fd1e59aab63e28462dfbcfc797642a01b6c947e16f61eaa19b37bb3c26" } } @@ -11185,15 +11353,15 @@ "501db638650e5304a9dba8ff4612de47b5da82aaad0a722bd89c11c68a35eb5d": { "f925e25aa54c252061995e84db9939551b2e2035ef3360d06582d778617a054f": { "jp": { - "updatedAt": "2025-12-29T16:46:15.996Z", + "updatedAt": "2026-01-06T14:18:00.186Z", "postProcessHash": "ccd97b016fd5721469cb80cfa87c7e7131d7c0be2013edde9af24b7c5725450e" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.002Z", + "updatedAt": "2026-01-06T14:18:00.197Z", "postProcessHash": "b2556c7ca0e62da6eae1686b5c9a94c474c3b6bb707c98eacf338bd3e6c42913" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.994Z", + "updatedAt": "2026-01-06T14:18:00.184Z", "postProcessHash": "36d223a21a3d4b5bdad2ce3b70170eba8202403133a5a89161a8bd0eb61743c3" } } @@ -11201,15 +11369,15 @@ "5391d9361d8de859f55fc623438785f034d27921eaf51522b1cfec0b8ae6d057": { "4c5301e6bd068db1c39c7442930c97eb64fc020a710f75519ea91e088c153887": { "jp": { - "updatedAt": "2025-12-29T16:46:16.066Z", + "updatedAt": "2026-01-06T14:18:00.272Z", "postProcessHash": "f349a84543a13162deef6673cabb7122fbe3a8ab9bd1e5e3c8161b45a7a169d2" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.069Z", + "updatedAt": "2026-01-06T14:18:00.275Z", "postProcessHash": "94b414332ad05171b9f7a8309c65d41566e22dc0ae6237bab32a5eada4278724" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.069Z", + "updatedAt": "2026-01-06T14:18:00.276Z", "postProcessHash": "da350b58c6059a8e7b05be5601790e3b005f36dd5509dd19130dbb6238dccd20" } } @@ -11231,15 +11399,15 @@ }, "be5b99a5d82062c469279e7e44c6710577c5869f2967a9ee21d5da65dbc0796c": { "ru": { - "updatedAt": "2025-12-29T16:46:16.088Z", + "updatedAt": "2026-01-06T14:18:00.299Z", "postProcessHash": "e9a26bad8c68adfea018d19d4736edb6cdafce98be2561ef2ef07e236a722df6" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.089Z", + "updatedAt": "2026-01-06T14:18:00.306Z", "postProcessHash": "713fcc4bb695bcc3a2142f41210a8535f54759d97c0628ff978392e08066f86a" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.088Z", + "updatedAt": "2026-01-06T14:18:00.303Z", "postProcessHash": "fe4401a6aa541d9a27cc5adfa25688680d78e098dbae3754aa94641bcfd64b3e" } } @@ -11247,15 +11415,15 @@ "68ba9608dff675f309e6f07ee6d6f770a417b027a738a79f138c8d70e2106dbc": { "9dc2946bda2aea97fa9b18c311317369a59c2adf656d6ce6d76316a813616fc1": { "jp": { - "updatedAt": "2025-12-29T16:46:16.075Z", + "updatedAt": "2026-01-06T14:18:00.282Z", "postProcessHash": "81db780bccdbb9111fe6acfe0b14ab71b11e6fc3deba23c6138d8be166e81ca3" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.077Z", + "updatedAt": "2026-01-06T14:18:00.286Z", "postProcessHash": "44c4017c787a9d609400c0df8fee46e1d5e68ef8e98c5c821531c14898410616" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.072Z", + "updatedAt": "2026-01-06T14:18:00.279Z", "postProcessHash": "104a39a793e23238d24e5ff8222e4e1ff903fe23b2b3f44d6e1098833303b615" } } @@ -11263,15 +11431,15 @@ "78fe6d3b89afce471181d779a6a8b475696095ab4ef58d29771279afa02b2997": { "79d3b0b826a742e9b7895789e7402d878b568cd9e4df76a133dc77a70f03c8c0": { "jp": { - "updatedAt": "2025-12-29T16:46:15.993Z", + "updatedAt": "2026-01-06T14:18:00.182Z", "postProcessHash": "52512bbfc6c3d667caa3d8ac9ac4e1f2f20b23c48fd1013379f90b49559b3314" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.991Z", + "updatedAt": "2026-01-06T14:18:00.179Z", "postProcessHash": "6b8ac7049c0a3a464f93462ef827262ba10315c4381b21cfb8484ec2be106b4a" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.996Z", + "updatedAt": "2026-01-06T14:18:00.187Z", "postProcessHash": "e4c04c4ae0d9a7aef3487d7bdb5d0808cffeab4d81f4e0d86be6cba06a2c04d4" } } @@ -11279,15 +11447,15 @@ "81915656e6d382d86e051a8fa78d36209f8322f00df9d519bd2aba85055926e2": { "4bc52b2d49860b621c0c2e9203206add44f60ae74179555c48eff9366de95cc3": { "jp": { - "updatedAt": "2025-12-29T16:46:16.000Z", + "updatedAt": "2026-01-06T14:18:00.194Z", "postProcessHash": "0d233d438aacc7cc28a36252f1f5d5ab263e5c98847520628bd72ba53cb74545" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.998Z", + "updatedAt": "2026-01-06T14:18:00.188Z", "postProcessHash": "095c427e9c2370d725096f2064729d0833b68fd22b228d3922d6119908d24d5f" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.999Z", + "updatedAt": "2026-01-06T14:18:00.193Z", "postProcessHash": "4d0b53a69ca4140264678f61b06434dae2242ea1b929a7e58eeb9f0b29cf3e87" } } @@ -11323,15 +11491,15 @@ }, "b00cf1c787b1e621ad4005814c2c24931ea2808d815efd7385de589858a6488d": { "ru": { - "updatedAt": "2025-12-29T16:46:16.099Z", + "updatedAt": "2026-01-06T14:18:00.321Z", "postProcessHash": "9ef4bac0071a5ec56e732e1cf187002dffd816221bd36a221c261f1198de55d7" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.101Z", + "updatedAt": "2026-01-06T14:18:00.322Z", "postProcessHash": "8702c7410134727150a4cbbc5856caac35df41701e0e5e057a2ebf1dd2298f39" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.103Z", + "updatedAt": "2026-01-06T14:18:00.323Z", "postProcessHash": "9af0381a7b0733d992d1c24368971c495c78625fb7495aea453267114e3853cd" } } @@ -11339,15 +11507,15 @@ "938d56b6044b6cebcfe8b337190fa6dea927660551790620ca8c19fb31cd39ba": { "2aefd9ad0393f63b7e1ec0b002323afaa8b544c1011e8f3c91b77ac1f84ef487": { "jp": { - "updatedAt": "2025-12-29T16:46:16.074Z", + "updatedAt": "2026-01-06T14:18:00.281Z", "postProcessHash": "43f9b3711b2bf807282390642f8251eb93fcbe12ffe1aa7560ee8545ae1f3694" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.073Z", + "updatedAt": "2026-01-06T14:18:00.281Z", "postProcessHash": "425bdcb2ded91f5f8c718484aabcd61a25c9443c9b6a092d9b04e7dd38ae48dc" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.074Z", + "updatedAt": "2026-01-06T14:18:00.282Z", "postProcessHash": "d40950119d7da8ed4e7fabda33c7af01669d24cb2ffb11877fe02163132ca310" } } @@ -11369,15 +11537,15 @@ }, "cb9d410acc1602056c75da16d376719e0ea269ffe25505404d1c7f9ba0792dc9": { "ru": { - "updatedAt": "2025-12-29T16:46:16.106Z", + "updatedAt": "2026-01-06T14:18:00.329Z", "postProcessHash": "56f0a05640dd9c471b1741773ef587391984c25102379fda473aba50319c2e1a" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.108Z", + "updatedAt": "2026-01-06T14:18:00.333Z", "postProcessHash": "0170d3ae95a5beefa0e66349662d9767b8935572016c9f52123f5ea2710de154" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.110Z", + "updatedAt": "2026-01-06T14:18:00.335Z", "postProcessHash": "7c5a4f1b5953936535685ed69736bd6276a91812782e23239c1fd3149c058fff" } } @@ -11399,15 +11567,15 @@ }, "1209f1c828ccbdcd8c106b1840e2d2e40024640272c14e5152da90e8dd351e47": { "ru": { - "updatedAt": "2025-12-29T16:46:16.099Z", + "updatedAt": "2026-01-06T14:18:00.320Z", "postProcessHash": "fe41bb77aa39d4e5700b08a44be8d51087693428cd2050a8fd74de0f9f455c97" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.099Z", + "updatedAt": "2026-01-06T14:18:00.416Z", "postProcessHash": "80a873c16f8ed4f2c3aebc74c674ac9a002f4affd1419ec0d0adc53cbdad98fc" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.100Z", + "updatedAt": "2026-01-06T14:18:00.416Z", "postProcessHash": "19301720ec7a233c3558742c8a3c1fd96c6d90165fb592c76f4d54f265fdc99b" } } @@ -11443,15 +11611,15 @@ }, "110ce6deec5f774d71ead6b61a36483dc1f1a349f0e1c11a6034d9232ed31230": { "zh": { - "updatedAt": "2025-12-29T16:46:16.097Z", + "updatedAt": "2026-01-06T14:18:00.319Z", "postProcessHash": "c70f5ae14a5bfa18f26f76accb422035d1546f170a675fdc4764dec1e1fd9a1d" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.107Z", + "updatedAt": "2026-01-06T14:18:00.329Z", "postProcessHash": "17f669cafab0cd1bb417d1342b948720f9477353db8f55e671a3f499883140d5" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.107Z", + "updatedAt": "2026-01-06T14:18:00.331Z", "postProcessHash": "271ffd8cd48d0f812f386f00ae3d72123231feb1db5cbd7ba821069e75b40b73" } } @@ -11459,15 +11627,15 @@ "b8c212ea80c9bdcc2ba8434c82489b4cd25a84157ab8881924465e669bf2bf1d": { "aad4076142416380448496fbac36524304c81991e5c00dade2ad95e55a087c94": { "ru": { - "updatedAt": "2025-12-29T16:46:15.977Z", + "updatedAt": "2026-01-06T14:18:00.169Z", "postProcessHash": "bc6834f5aa92fdb288442fc58cdf176cc6d5d69b037aff11066dd4b9a430d86f" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.076Z", + "updatedAt": "2026-01-06T14:18:00.284Z", "postProcessHash": "65027e49845b45fcc27c51126c215336ab6d67feafef81cd9b7672cd85f14e62" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.978Z", + "updatedAt": "2026-01-06T14:18:00.170Z", "postProcessHash": "317c673020dd7bed2c0208c9742b7e476541042db1647a814b966c89f1bed22a" } } @@ -11475,15 +11643,15 @@ "cb227df00b6e64305168553956c1928afd33de9cb76c9d330e9c9eca9290c33e": { "268a8df1fdc77541fc0a6bc99e66097367ea72724a49b591b16c19e00e6685fe": { "jp": { - "updatedAt": "2025-12-29T16:46:15.993Z", + "updatedAt": "2026-01-06T14:18:00.183Z", "postProcessHash": "5fd5632a3af9f533b0a80972c2e178250387cb1e6184a29ebbdd5ec3f7900400" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.995Z", + "updatedAt": "2026-01-06T14:18:00.186Z", "postProcessHash": "835d98e3e67c4df3403d1f14ac5ce1f5d0c0fe80da1066bc0ccbaa7e108305cb" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.002Z", + "updatedAt": "2026-01-06T14:18:00.195Z", "postProcessHash": "817ad2f03e86c2846ec822d7d9a5a08f2b4c92014c14f51d32ede5d1a539f1df" } } @@ -11505,15 +11673,15 @@ }, "2cbc552446620b24bfb3d4905a8aa640187f2af1f1f9cb7e1a6d2353e75b517b": { "ru": { - "updatedAt": "2025-12-29T16:46:16.164Z", + "updatedAt": "2026-01-06T14:18:00.416Z", "postProcessHash": "0b635ad38bc54a17fcf176b6db9b6ce9d2595733bdc8103c879a6406d25b389a" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.165Z", + "updatedAt": "2026-01-06T14:18:00.418Z", "postProcessHash": "b873660a5692314c3ab40157aea77eba44f3294b3dee7dcac9a86f54f45134d7" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.165Z", + "updatedAt": "2026-01-06T14:18:00.419Z", "postProcessHash": "e4a941bf1c84d4a65e0925130f5f137218f830a420fc1e16fdc39a4f5fb32496" } } @@ -11521,15 +11689,15 @@ "e9a7a6821acf2148d5fdf59dfb02c842dbeccfe3db8ed78b13af93341b542d82": { "45af94df7fb72c57f3c3954a12bae535b5025b01d4824ae9e4f23b2ab156e1ec": { "jp": { - "updatedAt": "2025-12-29T16:46:16.078Z", + "updatedAt": "2026-01-06T14:18:00.287Z", "postProcessHash": "4bf659d31108e0f7180ca092629ffd37cfe1b37825658072e6bef3bc5355f23c" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.997Z", + "updatedAt": "2026-01-06T14:18:00.188Z", "postProcessHash": "f4892efbae250db837952d841c773209aaee248a50ea481875d5ef4d9cf6e164" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.998Z", + "updatedAt": "2026-01-06T14:18:00.189Z", "postProcessHash": "eb9bf28fb06316762621927ae788d4bce165b73114a5affa5cf85f982216944c" } } @@ -11551,15 +11719,15 @@ }, "d764f9085cb1de01dd8ababf546512bbb2aaf0f26de7faa5d65dfa2a70d238f7": { "ru": { - "updatedAt": "2025-12-29T16:46:16.101Z", + "updatedAt": "2026-01-06T14:18:00.322Z", "postProcessHash": "8cda8d123f39e475c60776f369c493eedc8915efa84a53aeb8584aabb79c613e" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.104Z", + "updatedAt": "2026-01-06T14:18:00.324Z", "postProcessHash": "81e05b04f3485504774b739e954f41ae9bae78960878a8ed108331e2aa3ff66e" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.105Z", + "updatedAt": "2026-01-06T14:18:00.326Z", "postProcessHash": "0d8ceae7017c270f9fb1155a448efbe569a1cbf8833ecedf9919505ecd79f348" } } @@ -11578,15 +11746,15 @@ }, "bcd3f856bafd91c47cfba8e758107bcc7ae1c1743a3aff704f72af97e7bb2e48": { "ru": { - "updatedAt": "2025-12-29T16:46:15.981Z", + "updatedAt": "2026-01-06T14:18:00.253Z", "postProcessHash": "5326f02131a261a59b4be06497a2cc9486dee6a62d1e59d2081d917968c970e0" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.988Z", + "updatedAt": "2026-01-06T14:18:00.343Z", "postProcessHash": "373827bfa899fdbee301b169aaa8b56e503314bcad919fb6faaf41c236994383" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.054Z", + "updatedAt": "2026-01-06T14:18:00.344Z", "postProcessHash": "a9b5fdafd0e24b3df17a7cf2298812e306c021afd928867652524c7376ec464b" } } @@ -11605,15 +11773,15 @@ }, "ebdd9a3e7575ebcc17e2bf7eba747cab13904bd21b12eb03a1f34cdf5f1e7784": { "ru": { - "updatedAt": "2025-12-29T16:46:16.043Z", + "updatedAt": "2026-01-06T14:18:00.249Z", "postProcessHash": "8f12bae3110cf85cf865b11be9aaae8fe993faf487f56a912180bfb7ea26c117" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.045Z", + "updatedAt": "2026-01-06T14:18:00.341Z", "postProcessHash": "562fac459d8693f50adf119c4874a477c72ae0a0e2eda84513f3314f290d21c6" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.046Z", + "updatedAt": "2026-01-06T14:18:00.342Z", "postProcessHash": "7d9ac1985d45f13ce6094b2cef90897fa98e7bba6a7f86ee1278c9fb4e47a099" } } @@ -11621,15 +11789,15 @@ "23af5cac91f252ffe2e42d1e7b5a0bcabe7dc844aed8ebeffba1570964d40b4d": { "897a5b0e6ee3fe28e1f105bc25b952d48f233f747b27270188a83040b9b40f90": { "jp": { - "updatedAt": "2025-12-29T16:46:16.070Z", + "updatedAt": "2026-01-06T14:18:00.277Z", "postProcessHash": "3db37b9c686576eca5af630c85a7e0eda82eaa77bd87a78738e78929a6cc696b" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.059Z", + "updatedAt": "2026-01-06T14:18:00.266Z", "postProcessHash": "e7c660a4237bc197dd181b3deed2ee6d4092bd8bae804c9fa1268e7732ebfa70" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.066Z", + "updatedAt": "2026-01-06T14:18:00.272Z", "postProcessHash": "954f1d36313e751a758fa9ac3d67a1bdeae5ea3964a91ddd31d69e36ca2ede77" } } @@ -11648,15 +11816,15 @@ }, "b38543567533024d38925fac14dd5420a9b499f385ca94cc0b9b9c04d820f470": { "zh": { - "updatedAt": "2025-12-29T16:46:16.041Z", + "updatedAt": "2026-01-06T14:18:00.247Z", "postProcessHash": "cf71ea33a40fe51ae5d3f820c60b8443541c2b26b7b80736f75fb9fe9b73a503" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.042Z", + "updatedAt": "2026-01-06T14:18:00.248Z", "postProcessHash": "5bc8df77d72d6b2282fbcb639f632822f8bfa6d0b062e4139b90f896d4b25491" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.044Z", + "updatedAt": "2026-01-06T14:18:00.258Z", "postProcessHash": "ab1e627cce36c65d2a1c6d3900ea47a855dccf9d31afcf84b1d31909a9956acd" } } @@ -11664,15 +11832,15 @@ "2a50f26ed5a74514a1bb5535e77a1e4295586acbc14137eeb91bebd950369fe9": { "77daddd248c06a3945d845d9935148cb7d185c9ace0f5a7e2b8d9a52649050c4": { "jp": { - "updatedAt": "2025-12-29T16:46:16.151Z", + "updatedAt": "2026-01-06T14:18:00.394Z", "postProcessHash": "4ffe534d95e818b7357616ac46cc74ce7c89fbe2b6aa93c5e111af88c60e16d0" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.155Z", + "updatedAt": "2026-01-06T14:18:00.404Z", "postProcessHash": "8f00191672b21a6af0ab47c7df09efd914dacff94527cf4ae5f04158d416178d" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.157Z", + "updatedAt": "2026-01-06T14:18:00.406Z", "postProcessHash": "86d2740e52d953bafff30de6e68fc79c019ef306b47815a0aacf1e0bf9db67cc" } } @@ -11691,15 +11859,15 @@ }, "adee3628812a2e0169c7c436f7c41012c6b0b856ab91c598890be0b181284e63": { "ru": { - "updatedAt": "2025-12-29T16:46:16.056Z", + "updatedAt": "2026-01-06T14:18:00.349Z", "postProcessHash": "213f0f207a0893e3a39a5242a240341dc968dc69ce384067732f88e96facf909" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.057Z", + "updatedAt": "2026-01-06T14:18:00.351Z", "postProcessHash": "aa51f1af1693132225fbf4e588d805adf8bc5159825d82b544320e8c067fce0f" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.057Z", + "updatedAt": "2026-01-06T14:18:00.352Z", "postProcessHash": "bf8ac9363e6270e9a1f5f44d066c76673c998c3a63450ad2512cc726b12dea2b" } } @@ -11718,15 +11886,15 @@ }, "5407c15b69d4e3b9d265c317ef087192cfd42cc503f7ec6c3e963b8594948b4c": { "zh": { - "updatedAt": "2025-12-29T16:46:15.980Z", + "updatedAt": "2026-01-06T14:18:00.250Z", "postProcessHash": "322d8c926080f19f39eea33a93d98f6279e5ca75e7412fb2847b3a1ed1509e96" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.985Z", + "updatedAt": "2026-01-06T14:18:00.260Z", "postProcessHash": "ebb41c4517bbd848285548589b30073c54d75dcb964410c13b651866a67a9393" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.988Z", + "updatedAt": "2026-01-06T14:18:00.263Z", "postProcessHash": "17b8cd6f50e878623e6579928aa5f75fcbeb3a6d0815adf31768a86b5fb1ee65" } } @@ -11734,15 +11902,15 @@ "6e73db155b7c6964fced099cd2a329a54c570e4567c1e741e45991462993ff89": { "d1aadc2b06df5561a41ec6294f8ba38c60368402b06032d12e12420507c14384": { "jp": { - "updatedAt": "2025-12-29T16:46:16.079Z", + "updatedAt": "2026-01-06T14:18:00.288Z", "postProcessHash": "91ccace05551a62e4db7403d1135491a4dc62782065b20542d7eea9d44fbc86e" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.076Z", + "updatedAt": "2026-01-06T14:18:00.285Z", "postProcessHash": "029797c9970ceb58176ff0b5eec5b8d64103d25d60bdf9048cdc70d357672532" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.071Z", + "updatedAt": "2026-01-06T14:18:00.278Z", "postProcessHash": "44eaeba901890c41669c7c254aa0ddbf64d39cc3eaa7f2766d8158243f012f4a" } } @@ -11750,15 +11918,15 @@ "854411037d5e91dafe4510e3bb749eb29c1405966f5c747972f003bea369b464": { "2f5dd362e6719f95a9f300225eac5ed8491245ba11f15bda272d36325d991c01": { "jp": { - "updatedAt": "2025-12-29T16:46:16.062Z", + "updatedAt": "2026-01-06T14:18:00.268Z", "postProcessHash": "d607a690ec6089418526a6d1afc5a40c7d31013ea9c54f3c817d875fc0a20c91" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.062Z", + "updatedAt": "2026-01-06T14:18:00.268Z", "postProcessHash": "b3d4d15b140673459f362a7fc6d871dce14130ea308a0901a5b660aea468f6dc" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.065Z", + "updatedAt": "2026-01-06T14:18:00.271Z", "postProcessHash": "c10e46ee9ab5eed5f2de0b2f9e9586e687690ea56418ab09be51ab32c3521d10" } } @@ -11766,15 +11934,15 @@ "906c5c00462e8461e0b7aa1cffaec1f44d3cc275066f474f9ab70cccbf9e9d8d": { "661e85a9d5e8d39ed88218a74a7029ed28519c2e3ed3213707133a5bb6e243c6": { "jp": { - "updatedAt": "2025-12-29T16:46:16.142Z", + "updatedAt": "2026-01-06T14:18:00.382Z", "postProcessHash": "5b323aa156c252f86ddd1d422410574abbda5c869ec45d97ee20f5289251d1e2" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.152Z", + "updatedAt": "2026-01-06T14:18:00.397Z", "postProcessHash": "27a112cb6374c2c50a972a52ce8bb594fb0e851b7330fab2711b925b7b091e1b" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.150Z", + "updatedAt": "2026-01-06T14:18:00.392Z", "postProcessHash": "006f38567d562634b32fe016360d4e2e8786e334a364340228c0ac2b3e4898df" } } @@ -11782,15 +11950,15 @@ "9acecbbe697d2e6d2e334b3b54c514cdcf0ed3d6c83e6748104f8f3b983abbd2": { "4b6046e5cde03661005f0be0ef3f23e778a948c6c005456f94af71b6ea2e484b": { "jp": { - "updatedAt": "2025-12-29T16:46:16.155Z", + "updatedAt": "2026-01-06T14:18:00.403Z", "postProcessHash": "c062e664697ae262626750bdabf1d0375adb1317ad45ebc65afd2b2b43892323" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.150Z", + "updatedAt": "2026-01-06T14:18:00.393Z", "postProcessHash": "da665acd45c127d63572ac978745b7b69d0421095d709b498f427190817bf946" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.148Z", + "updatedAt": "2026-01-06T14:18:00.391Z", "postProcessHash": "dbc1e521b6f1c5da0c761f6101045fbf8e2dca6fa361707b34c020b0819c0cfd" } } @@ -11809,15 +11977,15 @@ }, "aa95ed0a0f75936c9fb958402d78b88a1b649e02c12c5724474d96593d8ac8e3": { "zh": { - "updatedAt": "2025-12-29T16:46:15.982Z", + "updatedAt": "2026-01-06T14:18:00.255Z", "postProcessHash": "6f18b298db5c2e5fd2ab4240bbdcdaa7eb3881b8d6d3acec0a4e75b362adbc53" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.989Z", + "updatedAt": "2026-01-06T14:18:00.264Z", "postProcessHash": "1cc3d771fa720b210196aca77ebdbdf9bc67742727845e0ba3dfd4a9353da4d2" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.990Z", + "updatedAt": "2026-01-06T14:18:00.265Z", "postProcessHash": "3f79081a8dcd817f0e8be51a9ef94cb3b49556a0861685aa18aa8ed259576798" } } @@ -11836,15 +12004,15 @@ }, "21a411586384e33979dcf970a5a3e351863fabcdd6a2f2d9ef948c7c72e29308": { "zh": { - "updatedAt": "2025-12-29T16:46:15.974Z", + "updatedAt": "2026-01-06T14:18:00.168Z", "postProcessHash": "04cb51f7f5bd84cd9558fe88285c856ae8765b9ed4ffef21680da790b71e17c4" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.975Z", + "updatedAt": "2026-01-06T14:18:00.168Z", "postProcessHash": "9d65259554be5c5fe878dce367fa4974a099b9baca8fdbe1759f7b0ddfed7cbf" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.976Z", + "updatedAt": "2026-01-06T14:18:00.169Z", "postProcessHash": "45ee3495253d53c5a40edf1775459cf4e37b41f3ebb590a5aaa4f8b9a217c1d3" } } @@ -11902,15 +12070,15 @@ }, "5748d0a04a9a35431f743504e26d8dea360f328fb28a8e153286c30ef44da7ec": { "ru": { - "updatedAt": "2025-12-29T16:46:16.144Z", + "updatedAt": "2026-01-06T14:18:00.384Z", "postProcessHash": "c8dd587858f6a156ea715a6ea9cf023d0b67b42d45564e4ce48c5e7db0137e27" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.145Z", + "updatedAt": "2026-01-06T14:18:00.385Z", "postProcessHash": "398234419f6fcf0856e106300cc196aa40f15c4920c28eac9866cf4ba3ef664a" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.146Z", + "updatedAt": "2026-01-06T14:18:00.386Z", "postProcessHash": "ab83b87e8b39706be6ac3ce5aa8f88be79f1e92ddc8a6de776b09b19d85d367c" } } @@ -11943,15 +12111,15 @@ }, "9926dac7f1e3d46fa88f2b4a01bb00f2979110b80375780ef15c923887920a60": { "zh": { - "updatedAt": "2025-12-29T16:46:16.097Z", + "updatedAt": "2026-01-06T14:18:00.412Z", "postProcessHash": "ca608a1bd49f105bc03a3f8fffde7570473ffcafb7c4559f84aff6a849e1b74c" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.168Z", + "updatedAt": "2026-01-06T14:18:00.423Z", "postProcessHash": "8062cb03ce1d0c2825420b5cf8021f924da4c3a779ece4616b9ced17fb58bdbc" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.170Z", + "updatedAt": "2026-01-06T14:18:00.424Z", "postProcessHash": "8d5d4ab820bc90ad415176f53bc39250e9c0fa29536ee5b93d87b46a3b720fc5" } } @@ -11959,15 +12127,15 @@ "caf9155f2ad3c6bb6165f0c5a837f80ca0f324d7821ee36716d6a44981b32432": { "c9a20f8ca6d2167945584243cb48aae584ce849963b883da031cb1fa3b57b9d3": { "jp": { - "updatedAt": "2025-12-29T16:46:16.156Z", + "updatedAt": "2026-01-06T14:18:00.405Z", "postProcessHash": "e1ce38f7762d0f1c0c8ffdce7b2d273f74c5f80b45359a558e06a2c9efbdbb5a" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.153Z", + "updatedAt": "2026-01-06T14:18:00.401Z", "postProcessHash": "06922756440fc5d77c4523a0144e6cc83d96c437edea4fccfb0e1eb55a482401" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.154Z", + "updatedAt": "2026-01-06T14:18:00.402Z", "postProcessHash": "51cc39d7a472bf11bd45fa334d1f0ae0ed0a08299a4639150a170882f565be1c" } } @@ -11975,15 +12143,15 @@ "cbb612322707858e39d9de4d0c9cc540429b50cdf2909447e753d421fc3212d0": { "4a7d4ef89d791edabbdff46a2878745843ca285c2985ee018c727274960745d4": { "jp": { - "updatedAt": "2025-12-29T16:46:16.079Z", + "updatedAt": "2026-01-06T14:18:00.289Z", "postProcessHash": "a34784249f318a831aee38aa0541ce36aa9bf31c7adae0890da64f90bf68bb6e" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.075Z", + "updatedAt": "2026-01-06T14:18:00.284Z", "postProcessHash": "ab1f650657f26a1fff11097ad35bf85b32e7696b8eec9514f2da73983338932b" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.073Z", + "updatedAt": "2026-01-06T14:18:00.280Z", "postProcessHash": "712e48de063a592fc3204cdc320ab5125e38236103d1e1e827f00e180a5cff71" } } @@ -12002,15 +12170,15 @@ }, "36b30907a627eb9f2751c13b7b41989e2375737efd3afded8087c21995e25c37": { "zh": { - "updatedAt": "2025-12-29T16:46:15.986Z", + "updatedAt": "2026-01-06T14:18:00.261Z", "postProcessHash": "0dea9c410cd04d331146163c0fc333fdd372dd0cbfedf0bec5f7e9e40d94a4e1" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.987Z", + "updatedAt": "2026-01-06T14:18:00.262Z", "postProcessHash": "5a07f02c8e2f54822350e619f6112c19362ca3e9fd9840cc1da64c2e637df149" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.055Z", + "updatedAt": "2026-01-06T14:18:00.266Z", "postProcessHash": "78333a3b03d4d3f90bec73bb14ba4ef462cecaa31269dbd924053420087ab965" } } @@ -12029,15 +12197,15 @@ }, "2887b5d2961f016569ec5457d21265144b81c9010f1ed1c13a8b666a47f53526": { "zh": { - "updatedAt": "2025-12-29T16:46:15.979Z", + "updatedAt": "2026-01-06T14:18:00.170Z", "postProcessHash": "c21b0a975eddf45479fee1faa0d7c68a2b5e6addbef746f2d473f53f61bb91e9" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.082Z", + "updatedAt": "2026-01-06T14:18:00.291Z", "postProcessHash": "d0f6f12483f436f0c0a31193b3b8b46d4ac43ae7181fbefb81f8e49091f97807" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.983Z", + "updatedAt": "2026-01-06T14:18:00.256Z", "postProcessHash": "7e2e288f31d52b9a2c6beaf1a3b82cf6090e61a09f255c0c777ae43a26479b02" } } @@ -12059,15 +12227,15 @@ }, "3ca680e308758a39fa61f0a47a6f6d245ddc986a667cc7b2513fe230fb850c55": { "zh": { - "updatedAt": "2025-12-29T16:46:16.164Z", + "updatedAt": "2026-01-06T14:18:00.417Z", "postProcessHash": "8c2b9afe1e2cf1d13cb0bd28be83a651666da9982206753d6960d6733b267d5b" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.166Z", + "updatedAt": "2026-01-06T14:18:00.420Z", "postProcessHash": "e784ed3b8b985ba5ca0b2b0efd3d696380cc7db20c7e653eaa839bf7185b594d" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.166Z", + "updatedAt": "2026-01-06T14:18:00.421Z", "postProcessHash": "98e3d5b93e2df252d5645a4aa3a5ecd7841d4f1194304c16f08a2c0f84d9829d" } } @@ -12086,15 +12254,15 @@ }, "f0ee8735181f3f9addb0d2b3c24aaf4c8616df76b27f36d37500110520089609": { "zh": { - "updatedAt": "2025-12-29T16:46:15.980Z", + "updatedAt": "2026-01-06T14:18:00.252Z", "postProcessHash": "26dfd5e121b40fd4aad824e26210ccd1ca365090e2827510638bcc285bdb2f74" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.984Z", + "updatedAt": "2026-01-06T14:18:00.257Z", "postProcessHash": "7225cf702321922403471898f5eb34c847d346cba7e9e0f147509f1268ac995f" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.984Z", + "updatedAt": "2026-01-06T14:18:00.259Z", "postProcessHash": "50a4d326f98196533e96110837072d17a0aaa070d72832bd30a9023ad1ebdad2" } } @@ -12113,15 +12281,15 @@ }, "be7f4e3331c3fd409e0646bffe9b6357649ebe66e4221085977b0cbfb8bd4a24": { "zh": { - "updatedAt": "2025-12-29T16:46:16.055Z", + "updatedAt": "2026-01-06T14:18:00.348Z", "postProcessHash": "7b3a807290980061f18d5dea10663f5c6a5827b2a05c685fcfc05c7281ea9019" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.116Z", + "updatedAt": "2026-01-06T14:18:00.350Z", "postProcessHash": "3c7f6c424dcbafb41b80e54e8fc0434040a7085c451703724b856afe0c0d3151" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.117Z", + "updatedAt": "2026-01-06T14:18:00.351Z", "postProcessHash": "1230ee4f7c5a6318d4c2204b62d6aabd977498735fe6be81c242da1d6d02e395" } } @@ -12129,15 +12297,15 @@ "115c23898dca6a5bd85fc79980e071e10196e3e3295527809805baad03df1e8e": { "cc5d85e7940e700fd5d3f8fd7641a3e19d24a033b3c45b51595134cdc91659d3": { "jp": { - "updatedAt": "2025-12-29T16:46:16.218Z", + "updatedAt": "2026-01-06T14:18:00.492Z", "postProcessHash": "ac817453b63e295349104e21aa6df88725c2a7f05cf37daf324c0134e3d18185" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.195Z", + "updatedAt": "2026-01-06T14:18:00.464Z", "postProcessHash": "cecb9496e8c754ceda455ff709262dba1347aa3a33a0356657349e420154ce99" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.211Z", + "updatedAt": "2026-01-06T14:18:00.484Z", "postProcessHash": "5dc5378c02ce0b9cf474cf5f937b12d4b4f287b9bc321a07361ce27b6e5c2870" } } @@ -12173,15 +12341,15 @@ }, "d4896ad2a3068808335520567a21f8cd5a6cf35cff6665c836ef6d154660c3a2": { "jp": { - "updatedAt": "2025-12-29T16:46:16.159Z", + "updatedAt": "2026-01-06T14:18:00.408Z", "postProcessHash": "4043b064ac23d062a6df8c7b64d709ff61483826244c67c2c80dae815b0e2627" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.159Z", + "updatedAt": "2026-01-06T14:18:00.409Z", "postProcessHash": "a1b6ef4ca27423e33639e9280b23b7e7cd0b10f77a6cd0e1756100efc48f543a" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.160Z", + "updatedAt": "2026-01-06T14:18:00.409Z", "postProcessHash": "11d831b9a0b40a0882a4e845f1e637081eb1575222386813967bb837904c37c8" } } @@ -12189,15 +12357,15 @@ "29098b8e3f1e1a679a5ddc94379ef95f05ce5d74ad32854eb1f4dbf472997cd8": { "a2fdefeb5c115c0929ae0f70cb0135e6ff4857188e411761888474889ae1edda": { "jp": { - "updatedAt": "2025-12-29T16:46:16.207Z", + "updatedAt": "2026-01-06T14:18:00.479Z", "postProcessHash": "b72667dc5ad8d23111581ac5db2e4b42b90e66f3fa005fa10f2c17ad093d5700" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.209Z", + "updatedAt": "2026-01-06T14:18:00.483Z", "postProcessHash": "9207b56c528a98dd1b23cd288fbdf91a5c5d8fcbce10e7fe39c0aa15e5c2f44c" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.198Z", + "updatedAt": "2026-01-06T14:18:00.469Z", "postProcessHash": "bd0671085273b9f85ab97fafa1bc01bcc1ff100d41a7a222ddb54009a7af06a3" } } @@ -12205,15 +12373,15 @@ "2e279d80c8ba84fded6bc29580d38a57165294e3bb9ec5ac3177d8fa43594ce7": { "c32887dbd37129abcf60580789e56e42295b227409b866e8d6f639ccb4436f91": { "jp": { - "updatedAt": "2025-12-29T16:46:16.213Z", + "updatedAt": "2026-01-06T14:18:00.486Z", "postProcessHash": "048b0063a0264ab1608476982daeca44ff7a01b1ced2dec7b1a71427c17cdcfa" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.216Z", + "updatedAt": "2026-01-06T14:18:00.489Z", "postProcessHash": "4c4e415e4dda21d27b7cb98af881042d977390109dfc2658733ffcfb0ab757dc" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.211Z", + "updatedAt": "2026-01-06T14:18:00.485Z", "postProcessHash": "35da0a54e833e72c20073dea21ec99b636d5fa1cbb86267872ce43f97b749396" } } @@ -12221,15 +12389,15 @@ "509f6ede51ab34e339503f91928010a06f04655f9ae29650958c5b6768752931": { "b15b0f51d35014ff5faa6f96548eae990708c240d294f1b231da328da35a7588": { "jp": { - "updatedAt": "2025-12-29T16:46:16.141Z", + "updatedAt": "2026-01-06T14:18:00.380Z", "postProcessHash": "08f3b3fd5166654ced00f267dcf18b27d2c2c5518cbbe79b70cd53c2dab5e383" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.064Z", + "updatedAt": "2026-01-06T14:18:00.365Z", "postProcessHash": "c28fbdbb1bf0c0347454a4e11ef49a89e9d9f016741606861e30ff338a94e5b1" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.063Z", + "updatedAt": "2026-01-06T14:18:00.363Z", "postProcessHash": "ce5a99eaa06c11704e76eb88344ddb9c290c9cb178f98912e571b307de2d3366" } } @@ -12237,15 +12405,15 @@ "521e12e9546adbbc16980431e680a5ef21ea7b5b3b9b36afb8a2521aa6b377b6": { "6e547ac81c7773f9acb16ff8e8b7c7388a98727bfc4319c29909249791e4ec09": { "jp": { - "updatedAt": "2025-12-29T16:46:16.127Z", + "updatedAt": "2026-01-06T14:18:00.363Z", "postProcessHash": "bcec8c15259ddafc2516650cefe07e4f1efc9de175704f4726e193c7b2427d4b" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.140Z", + "updatedAt": "2026-01-06T14:18:00.378Z", "postProcessHash": "0b1fb47774f91e0f883b88007d9d5a54c6aa0752e2fd8c3d0339d65dac622879" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.130Z", + "updatedAt": "2026-01-06T14:18:00.368Z", "postProcessHash": "835f8b90cb0838ba6d1e417d3836d7aeb21dfdc1b60add158bc1313250a8ebd8" } } @@ -12253,15 +12421,15 @@ "543fafeba882f7e65ffa713c52cc503e06a45708cf5d17f53ac0462449accbf7": { "10b537976cc0e91e97a168611992f05f85e4ed7084a47e4cb1a2f920f41380ac": { "jp": { - "updatedAt": "2025-12-29T16:46:16.134Z", + "updatedAt": "2026-01-06T14:18:00.373Z", "postProcessHash": "b1e0f3c5a244f7f462e899744be740a341dc4252f42690ed77e8aef88de7aa43" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.119Z", + "updatedAt": "2026-01-06T14:18:00.356Z", "postProcessHash": "1342208607b46f6b69a13c581d60d9d15eb7efc89d4aa8145138a70fe9d71a78" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.132Z", + "updatedAt": "2026-01-06T14:18:00.370Z", "postProcessHash": "e88767abe65858da7bcb08af0aac5b8e9f5813dce4a0cb7cc103d2dc898c1678" } } @@ -12269,15 +12437,15 @@ "700af028231b046bfc9ddd5cfa321b3be5e023aaaee235d4d7d86453223b3fdc": { "5feb43870c53151fcd38f8407b9a14613518ef335101c53aa526f6a23caac7ed": { "jp": { - "updatedAt": "2025-12-29T16:46:16.061Z", + "updatedAt": "2026-01-06T14:18:00.359Z", "postProcessHash": "f8e4d25d75b7e5a0e5893f8c3fb8a07cab5d40ab707232921cf51f0699699cab" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.140Z", + "updatedAt": "2026-01-06T14:18:00.379Z", "postProcessHash": "c47830e545bfb7925413922eac5917eb39a8cf3914d42d844312e22e5343cb48" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.068Z", + "updatedAt": "2026-01-06T14:18:00.371Z", "postProcessHash": "16371d551b326cd24174dfbed2387a7c3489fe338b8ca81bf4eec8eec8e0e6e3" } } @@ -12296,15 +12464,15 @@ }, "7daba956dd3abe4b27ba6749d7f47b4f15037a1481f6abae28e2aaeecc9ed552": { "ru": { - "updatedAt": "2025-12-29T16:46:16.059Z", + "updatedAt": "2026-01-06T14:18:00.354Z", "postProcessHash": "9a0b3fd7fcc1c9f9b16c35aca2669498454ee88f9c4c4505437c9e504fbb9567" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.158Z", + "updatedAt": "2026-01-06T14:18:00.408Z", "postProcessHash": "a93519e8a64af5a036f51a4f38a3353c869c6647d4df02156e3556f7d19c18c9" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.058Z", + "updatedAt": "2026-01-06T14:18:00.353Z", "postProcessHash": "2c9ab68c76fc07f1126d61171b4d613489af2e2695ce51e0a112ffb743174112" } } @@ -12312,15 +12480,15 @@ "7eb439b32a67cfb0aa3624c9184253dc089e7da15d7e10a23f668083dcbbdb63": { "d75745d1b46f0de5b2028a881660f2bd2ddadc7ddc0b54286beaca30e215e44f": { "jp": { - "updatedAt": "2025-12-29T16:46:16.041Z", + "updatedAt": "2026-01-06T14:18:00.336Z", "postProcessHash": "5e19c09ce46094f71bd81732c6b49436eb0b89d136e27875a8652482680f9ba6" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.156Z", + "updatedAt": "2026-01-06T14:18:00.491Z", "postProcessHash": "d2435f5d3c49d800adb61ca7a1ec93ef3ef67778b19c263bd203aedadb0bb200" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.158Z", + "updatedAt": "2026-01-06T14:18:00.493Z", "postProcessHash": "9b1acfeb6d4653a7ba148534f3e94c1c53b096c8512dbe25593c800c776fcedd" } } @@ -12328,15 +12496,15 @@ "8cd1456e58e9b0f32764599fe1b3c08b4549cd901e4ebe5d8ff994983ffb18dd": { "be2df94d3de1df0b087713bb38516d1a78f6b4313e8daf18309af45c6beb735b": { "jp": { - "updatedAt": "2025-12-29T16:46:16.142Z", + "updatedAt": "2026-01-06T14:18:00.468Z", "postProcessHash": "e6a13381b2148ca388ac8aa2188e0a31626258da8bccf0b6c23884a079506c83" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.139Z", + "updatedAt": "2026-01-06T14:18:00.378Z", "postProcessHash": "a90f69f9d8d96ab09f786c4c053a5b4df519e6591a94fc77552c53ea64f27f33" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.146Z", + "updatedAt": "2026-01-06T14:18:00.386Z", "postProcessHash": "40b9b55b1c8341fded05333327e49c5e87290f496d0dba0072acd18329d60b19" } } @@ -12344,15 +12512,15 @@ "8dbad11f22f37a8dfbe5928d8a4733fffad030ebf6032dcfecd084e9101dba52": { "f92ca8e97f1895ba9a62cdd9bd09b067b16fb3472cb748d5ec26c6d2830bdcc3": { "jp": { - "updatedAt": "2025-12-29T16:46:16.141Z", + "updatedAt": "2026-01-06T14:18:00.381Z", "postProcessHash": "af208136a0142d889583cad0ab9bfc3f294c5c0161e5b27a169be515780a7d08" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.141Z", + "updatedAt": "2026-01-06T14:18:00.382Z", "postProcessHash": "8df6816fd33939238cfdaa97087931d871505e3e2d83533c0e08671faacf4a6d" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.138Z", + "updatedAt": "2026-01-06T14:18:00.377Z", "postProcessHash": "e568387740f56acd92ca26c5215b98935493c5693842cadf364a3bee3f1b1960" } } @@ -12360,15 +12528,15 @@ "9606738dfb47e926dbb72401f97fb8dcdca15e8e7e4c7c8e0b1de1923f128ebd": { "f38bca2728a4ec18acf3801a37e29bd6ce1663c505004c92a4ef0fb8bcfab83d": { "jp": { - "updatedAt": "2025-12-29T16:46:16.134Z", + "updatedAt": "2026-01-06T14:18:00.372Z", "postProcessHash": "4b09186d1f8d9a5f23488c38fe7ea91bd3306e6ef6e45f6a3f762a1c3c016e12" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.061Z", + "updatedAt": "2026-01-06T14:18:00.360Z", "postProcessHash": "3a26cf8789bc4697dd50305855f2b4ae32495e75e401de44158a6cb679a644cb" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.135Z", + "updatedAt": "2026-01-06T14:18:00.374Z", "postProcessHash": "fec436520e380d231588ed9d132243eaff2e9dc6fdc1187402743648c67fc1dc" } } @@ -12376,15 +12544,15 @@ "9879a8ecb21ed941282ca62ac8cd46ca90a2e07bea45df3014931af580b18b1c": { "1cee6eed8b351ab527a9d9c859764f01e20c33109d8796baaf74d0bfe5e7498a": { "zh": { - "updatedAt": "2025-12-29T16:46:16.188Z", + "updatedAt": "2026-01-06T14:18:00.380Z", "postProcessHash": "ecba7946e8ddc074b59e9cc44adf33305137b709c8cab02c63b15915f53053a1" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.194Z", + "updatedAt": "2026-01-06T14:18:00.463Z", "postProcessHash": "5dd159fbcb7df23b6bf55661224d6b4f6abb0434c17748ee17ea18b920ba1012" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.193Z", + "updatedAt": "2026-01-06T14:18:00.461Z", "postProcessHash": "98b25b03f032b612502b0e5491217972c1555c4b5ded4ea67af99ad8a0a1ac4b" } } @@ -12392,15 +12560,15 @@ "9c64eb3f63ed2f4471f8cc3e3a16b5d6f44f4c39e15dce1c2c911d1a94e1a018": { "4af09e0c2db5842c3ba3437a58d8012e6ed6971aac46840180567463da4f8ce8": { "jp": { - "updatedAt": "2025-12-29T16:46:16.043Z", + "updatedAt": "2026-01-06T14:18:00.255Z", "postProcessHash": "b1efee257199b0d44577402676f52a237486a0a8f63fb88a327a0b6d81c1c77f" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.147Z", + "updatedAt": "2026-01-06T14:18:00.389Z", "postProcessHash": "3ecf8383f063105aac10b065b0ddfdc0925233ae219cdf2f2856e25a761d8772" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.157Z", + "updatedAt": "2026-01-06T14:18:00.407Z", "postProcessHash": "cb0f338207364ed68725cba42473d90df9c2d1579f9da9740b7a5098d2b48170" } } @@ -12408,15 +12576,15 @@ "a2fd395ad42270710df1127e0482607ea48ccfe81a62976bedb63b46c8ceb860": { "67cbbbbf1e4f7f85554eebfe9fb09a5afe145f060eefe6aed1c811dfc5891361": { "jp": { - "updatedAt": "2025-12-29T16:46:16.191Z", + "updatedAt": "2026-01-06T14:18:00.459Z", "postProcessHash": "5e0b6f27d2e083ac2bea40ad713f1632b91086b806ce3f7f63c1acec3909af65" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.195Z", + "updatedAt": "2026-01-06T14:18:00.463Z", "postProcessHash": "d47df8292f9cdd5ec5f1bbd7287ed48ad6a0b7c5c08b8f4490c2ec72ef9e1c1e" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.134Z", + "updatedAt": "2026-01-06T14:18:00.373Z", "postProcessHash": "1052e2bccf5c044dea5b229e947ee351895be43236a7972e19a5b81966827dc3" } } @@ -12424,15 +12592,15 @@ "aff3738ef426bb03f782516f0c962dc0d4f1e8b1e75422276233e8a61abcbbf9": { "62fbdd6dddf79ab74c534883a022557ea5c732ed713d1fc244291ba771204269": { "jp": { - "updatedAt": "2025-12-29T16:46:16.149Z", + "updatedAt": "2026-01-06T14:18:00.392Z", "postProcessHash": "31e69d90f59f66975f7e5b26ac6be2a647ea9ac5cb93f4db20cbd6d4a993577c" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.148Z", + "updatedAt": "2026-01-06T14:18:00.389Z", "postProcessHash": "99eae06a104dbc0e1a3edc4f78803ea282e49f0de7260ae56a88af0b974163f4" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.149Z", + "updatedAt": "2026-01-06T14:18:00.392Z", "postProcessHash": "07ab2a551fac06cc977f00b5514b6fcc0b56e5bef5271098752c814ccaa5c32d" } } @@ -12440,15 +12608,15 @@ "c61ff854a1d65abf94d196412aea9f3db52e099f903e0aec1c8dbda684f0ee4c": { "6725d42405abcd2763e59c5af20b80e294c49a24e5dfded57358991054e676ae": { "jp": { - "updatedAt": "2025-12-29T16:46:16.138Z", + "updatedAt": "2026-01-06T14:18:00.376Z", "postProcessHash": "3ea16d49609af1ccb90ffac301a7d59193b74893e47a8f6bb597aad96b8cc098" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.118Z", + "updatedAt": "2026-01-06T14:18:00.355Z", "postProcessHash": "45875ab36b35dd3602b95009102040ec47db3e875d047ecbe941828774d5965e" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.112Z", + "updatedAt": "2026-01-06T14:18:00.339Z", "postProcessHash": "fb65b59c212e6140ba990b590fac2be9f7d366144c0196a56809cb4438a952e5" } } @@ -12456,15 +12624,15 @@ "c85b0e977e47a5de069cf6bc2a4c3c7c368f637081c6c7a74c2b3f09f541da76": { "6a1875203c3c11a5ddaeaf844592c8aa66c906a5f10d8118af659f3188166f2b": { "jp": { - "updatedAt": "2025-12-29T16:46:16.137Z", + "updatedAt": "2026-01-06T14:18:00.376Z", "postProcessHash": "079ceddcd87e9eb6c43fe73273e0f8f8e54c336065000eff0aee4d9aa8d40ee7" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.064Z", + "updatedAt": "2026-01-06T14:18:00.367Z", "postProcessHash": "eba651172ed8c4aa484b9730e6ceb0c4ac8f3985368ba6afb9dcb70ea3679496" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.133Z", + "updatedAt": "2026-01-06T14:18:00.372Z", "postProcessHash": "f818b480dd0fd432847676d43fb196d9cc11892c10636f2f039c0b387e7d96b4" } } @@ -12472,15 +12640,15 @@ "cfcb155375b8c7dce0cd7951038c468106245eabdd22e87ceb685a86ad5787b1": { "4f1c6f9f3c784ede710c284000e57bbb2570ca34ccf377e55bb0aa62d9575fb3": { "jp": { - "updatedAt": "2025-12-29T16:46:16.216Z", + "updatedAt": "2026-01-06T14:18:00.491Z", "postProcessHash": "33781c128e429129101f8e47309d1f39c58b34d49a0a4669d1af60040b13e113" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.206Z", + "updatedAt": "2026-01-06T14:18:00.478Z", "postProcessHash": "e8c7112d986634a43fae726553ce7ddaee3c2cf7be1bd62dbdcc9d58bbfe7585" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.197Z", + "updatedAt": "2026-01-06T14:18:00.468Z", "postProcessHash": "489677fcc41af8e7e105d3355f0c98a4c44c9799490f86b186f8846bc41213d1" } } @@ -12488,15 +12656,15 @@ "e771f00ee03a6b8ac3a2fe4466ecae0a0ef5fa4a1c06261040efd4c71c7df8ca": { "afaf81983280a59e7aa1584371969108a9f08bbf39abdc8489d3da2cc68c29c7": { "jp": { - "updatedAt": "2025-12-29T16:46:16.151Z", + "updatedAt": "2026-01-06T14:18:00.395Z", "postProcessHash": "50aeede48cd2f83b32ec8cc46bdaefb9a6d17031c86ad549e6efbdc6cc773f67" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.153Z", + "updatedAt": "2026-01-06T14:18:00.399Z", "postProcessHash": "4a12e10c7b455cdec2309c15fb1bc7375912995353a4a7280f4c2c49d0cd549f" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.152Z", + "updatedAt": "2026-01-06T14:18:00.398Z", "postProcessHash": "6da014082767c05649bed6d6a7cf3221c056a07db654de746b31c515ca4b94d8" } } @@ -12504,15 +12672,15 @@ "003cc65643f9d9786893e0bde4fee0fde5fc25de83cb44c9b184c9f67f682330": { "7bfbb7c49650987bfda71358fcdb6c75e10f3775e57dd80dfa998cd9df1e42b1": { "ru": { - "updatedAt": "2025-12-29T16:46:16.199Z", + "updatedAt": "2026-01-06T14:18:00.470Z", "postProcessHash": "e233fec3a4ede4408eb500f104fe83c6d12168944e8339815387c511993609e3" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.215Z", + "updatedAt": "2026-01-06T14:18:00.487Z", "postProcessHash": "c61696bdd35427ec5db67356b3f3e97a122fb13e4717f628e0fb893973b18e28" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.113Z", + "updatedAt": "2026-01-06T14:18:00.345Z", "postProcessHash": "3b7bd6838a4c5ad3d123a20c999606717e5cf05cdd2e2b924e2941befadf061d" } } @@ -12520,15 +12688,15 @@ "0bf287012c3e4a1823f4a6d9af97b4ff2ebf50382b88f6e446f2d2462ceff028": { "6fc59c979e71f5ef7d01dffb85d9c0d52f0f7d9af3f0d2364ea573c821dfb4a9": { "jp": { - "updatedAt": "2025-12-29T16:46:16.182Z", + "updatedAt": "2026-01-06T14:18:00.449Z", "postProcessHash": "bc4fdbefc26a99dd79c21dbc43d173dd2fb950b6849961eea452e1bab8c55864" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.195Z", + "updatedAt": "2026-01-06T14:18:00.465Z", "postProcessHash": "c535bd7ce2f0768a16c68ba0302bb1918b240dac57b0664abbfaed73e77dea5a" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.184Z", + "updatedAt": "2026-01-06T14:18:00.452Z", "postProcessHash": "077617f331d3b34a1cbc3a0c47a898b3b5ef1c917e727967fc06efc8ac54e7d5" } } @@ -12552,15 +12720,15 @@ "1a8c3dc523efbedd8ceca5a1bf0b315be2ac1dcf90f08530d461bd213eef4f7c": { "da9e17112c0ec79d1fa82ab5f0ca3db1c53729e70e3fd6a2c4370c03691b292c": { "jp": { - "updatedAt": "2025-12-29T16:46:16.205Z", + "updatedAt": "2026-01-06T14:18:00.478Z", "postProcessHash": "be2cf650b060caab7e111393e3d4c67f740eac95acb894ec68da295be7729860" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.207Z", + "updatedAt": "2026-01-06T14:18:00.480Z", "postProcessHash": "4c9756137c70e9d3bde68d61368737490b6052ae5e164910e2dc7618f248f152" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.194Z", + "updatedAt": "2026-01-06T14:18:00.462Z", "postProcessHash": "db749271cc51a1b38c2135f134a9ba31a9315b1fddc4d6bc093d41e73c00bc5a" } } @@ -12584,15 +12752,15 @@ "2788d1737d33b8bd86e0aa8f0dbd2c1bed226411e50160a1554ab9361f7532d2": { "d0cbc85c85d4d71c67952d11b3d238be8fc75b6ea16860b09935bd9f96add653": { "jp": { - "updatedAt": "2025-12-29T16:46:16.132Z", + "updatedAt": "2026-01-06T14:18:00.370Z", "postProcessHash": "410b829158f080e958cb44d2ab071c78a178d5ed71a28b2c2e6b7e826b2c4ac7" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.120Z", + "updatedAt": "2026-01-06T14:18:00.357Z", "postProcessHash": "b79e51183c68f6353af8a4abfbc7692c5a0bf15b114091c0f8d5212f63fd913f" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.131Z", + "updatedAt": "2026-01-06T14:18:00.369Z", "postProcessHash": "ab776a5478094f30b8399dc9b6f5e7cafef5cc020e8dbe926b82ddacd806e887" } } @@ -12600,15 +12768,15 @@ "3b065a4f3fc6b25a5184da43b7b0221b5aeccf7b81e1255bd8a6d2a6b86a8ae7": { "c88ae622109bfb3777e96a49c9bfa5f9889a8187d65d687676ef5de1bf070514": { "jp": { - "updatedAt": "2025-12-29T16:46:16.204Z", + "updatedAt": "2026-01-06T14:18:00.476Z", "postProcessHash": "af60e7ca25646187c01c1623dcd5ff94f3decabf3e1b1483d3a0bd342bb5f798" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.210Z", + "updatedAt": "2026-01-06T14:18:00.483Z", "postProcessHash": "1b98331b276ab78f72089f9ca8816d69922d15cc548babbe01deaea9e03eaf62" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.200Z", + "updatedAt": "2026-01-06T14:18:00.471Z", "postProcessHash": "9fff5b47c2022b7492ec05827b4174ce97a006b152d4302ac171c84a3ad7e5bc" } } @@ -12616,15 +12784,15 @@ "3ffea18e4142d273a23435211934d60695e426723e88ea42a887c753673da12c": { "9135666001d3b0d949ff7db424b18a4b655d4b8eebcafa75a9e472d040fbb808": { "jp": { - "updatedAt": "2025-12-29T16:46:16.203Z", + "updatedAt": "2026-01-06T14:18:00.473Z", "postProcessHash": "d0a6fd2421df75f192fe8cac307a2fbe88c17c98a49074b9840bbdb6a0f190e8" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.208Z", + "updatedAt": "2026-01-06T14:18:00.481Z", "postProcessHash": "771ad81d5fdb1d4be89e9cb93857c75adc6bce7bab81bb2166502fe84b062131" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.203Z", + "updatedAt": "2026-01-06T14:18:00.474Z", "postProcessHash": "936b1a04466f567d022b75e6dd3f2be6399522bdfb0514e876715d3dbd6260ab" } } @@ -12632,15 +12800,15 @@ "6ae9dde7cd947f044ac422d9819b807221ad5825d4f6859ff2c72f3c22d7331f": { "f17b1d4769177c8b7b3260aff487e581de4450f37dd2fbeff3e0a899b7559706": { "jp": { - "updatedAt": "2025-12-29T16:46:16.130Z", + "updatedAt": "2026-01-06T14:18:00.443Z", "postProcessHash": "f53602bdf01194b0c0485bf07724bf623a2aa195c0212d517219a41dd53c3e6a" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.137Z", + "updatedAt": "2026-01-06T14:18:00.452Z", "postProcessHash": "0ab37a0f2cb2506503cfe78e1a149d65353c1f7509ad424aab3608d8179a7183" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.139Z", + "updatedAt": "2026-01-06T14:18:00.456Z", "postProcessHash": "f10e507d8c198886c980b6cab91e5fa3f7026c745f76ea3035c506730cd4c743" } } @@ -12664,15 +12832,15 @@ "9829e6d504f03f89cf3f9782f9238f3dec6efd6d3810dd672ec15bd67e65f810": { "e59e26adb9705f2e6456ed1518f0aefb7d0cf0e3b13b040fa78b4a590a1181c2": { "jp": { - "updatedAt": "2025-12-29T16:46:16.128Z", + "updatedAt": "2026-01-06T14:18:00.442Z", "postProcessHash": "fce1bd0ff2f97509b56a72c10ede4bfd5ff12655c9c3066043893fb5318d3ef5" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.129Z", + "updatedAt": "2026-01-06T14:18:00.366Z", "postProcessHash": "67afb50837504ef4df2562e835effad24359a67932b802993c8d6f228eeced15" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.131Z", + "updatedAt": "2026-01-06T14:18:00.368Z", "postProcessHash": "8042cbfaa003f6d43a3043eef0baf04c4f6c2d1c7e4afa796937d29415c24cad" } } @@ -12696,15 +12864,15 @@ "a4186d2152fae14c248c1297810d8ae84b17536d8f68513f586c1e2d378d79fa": { "da62d5ba1b9b52d86fdf52ef9a5a5fce77010670db44844630fe457d0a64dfda": { "jp": { - "updatedAt": "2025-12-29T16:46:16.181Z", + "updatedAt": "2026-01-06T14:18:00.448Z", "postProcessHash": "0b0cb3ecf7e2562e72bc77e8f0c53f0ff60121ee4cb20e71d01f9ee9261c6e35" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.178Z", + "updatedAt": "2026-01-06T14:18:00.446Z", "postProcessHash": "7a3248ab00069cbfd5bbedb95a77b5143d7c6fde20db857c5d5c0a7cdccc76ce" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.190Z", + "updatedAt": "2026-01-06T14:18:00.458Z", "postProcessHash": "e8863ce31e2a17f66fa0012f05e74be5b93f4459cbea29e80835979e7f16b4ae" } } @@ -12712,15 +12880,15 @@ "a98f06f78a3ec0f29bb4f078dbb0c37f77d01618cebf2733ff11b32c497f7b24": { "a9a69fd4a89753f57c102accc6affd4752db865e189ae4cc4e551815c20e9964": { "jp": { - "updatedAt": "2025-12-29T16:46:16.125Z", + "updatedAt": "2026-01-06T14:18:00.362Z", "postProcessHash": "671e35f78a99dc438e05fe68d155520228e0506ef958ccbca87bcf938b7010cc" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.128Z", + "updatedAt": "2026-01-06T14:18:00.364Z", "postProcessHash": "5060f77334f3d2e2d28e5ff49d6a1def93a4474b2cff440cbb8f2ae4d4342b92" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.122Z", + "updatedAt": "2026-01-06T14:18:00.358Z", "postProcessHash": "a3490f5c8afb9ce38b9a84b74518f84d3f245861ebdc938db10d365918dcbac7" } } @@ -12728,15 +12896,15 @@ "b0f8d850504855a8481784c04ab4b0c0a35453e0ccfb3fd1251528b4f77a8b8f": { "0dbab51aa36f5b479c39c4f615a8a9b4493aeae6b1e482a4ccbb9064901d7f3b": { "jp": { - "updatedAt": "2025-12-29T16:46:16.212Z", + "updatedAt": "2026-01-06T14:18:00.486Z", "postProcessHash": "49f4100c782aa90982be9b97284171abe31a650b5a439d5990d426ad6398ba55" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.204Z", + "updatedAt": "2026-01-06T14:18:00.477Z", "postProcessHash": "b8de354afdfdb2f9c2f6e921b93f375ca467e6f109d53efbd6cb87ff2d73ec7f" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.192Z", + "updatedAt": "2026-01-06T14:18:00.460Z", "postProcessHash": "d36e53b3e5651f5add8f28e1e52d5b074dc996451404b04f3e2d9ccd39470c24" } } @@ -12755,20 +12923,34 @@ "updatedAt": "2025-12-29T16:46:16.205Z", "postProcessHash": "a88db46b54f3c6c94b382a1058b76e8357f2a0f1b7f5b7e459971b8bf955665d" } + }, + "b39da5a1888485da88d7e5b8d7b7151e1a6b75638e69d50c7499e4c3b8ddf324": { + "ru": { + "updatedAt": "2026-01-06T14:18:00.501Z", + "postProcessHash": "fe6231bfbbffd4748ee6721492fe5020659bb2abcbd43308d7c7540e416c5e91" + }, + "jp": { + "updatedAt": "2026-01-06T14:18:00.501Z", + "postProcessHash": "0d75110f60a1699e75fb7d1f1ffd77d8ac9c63219302cad315f32545c8719218" + }, + "zh": { + "updatedAt": "2026-01-06T14:18:00.502Z", + "postProcessHash": "756fdf75c47c806cddf3b93c3ac26fbedbbe8fc9f1fa7282294ab15e68559599" + } } }, "bc18991124499a7f66617eb5b243033498a2376e769bee9084fac4cef0b7c045": { "d62f4767bf6ec9661415c60e24e41a90ba047d383b9bfbb29a327253f604da58": { "jp": { - "updatedAt": "2025-12-29T16:46:16.123Z", + "updatedAt": "2026-01-06T14:18:00.438Z", "postProcessHash": "d0d57e1aaeb9ff28446404199f19b0fad437776a6db1e3172c0e0cbd6deb8d90" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.127Z", + "updatedAt": "2026-01-06T14:18:00.441Z", "postProcessHash": "6ef2b9a52cc970612ed8d1b8acdbe588b78f11e82fd29b8d9dba592b68200d7d" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.119Z", + "updatedAt": "2026-01-06T14:18:00.434Z", "postProcessHash": "55599ba9ae2ab045d4116daeab5255f98ce0b50e17374f83bc7a8ce0e502a41d" } } @@ -12790,15 +12972,15 @@ }, "dd5970c89a68a20febe26a2e9ba6de482d2a51c42447b1c5f0144013020619d2": { "zh": { - "updatedAt": "2025-12-29T16:46:16.224Z", + "updatedAt": "2026-01-06T14:18:00.504Z", "postProcessHash": "37230bb8964b221cafd639dae9ad90079496d52ca435b612fdb8cc849d1615c4" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.225Z", + "updatedAt": "2026-01-06T14:18:00.505Z", "postProcessHash": "d3c488cf67a6e5cb575898170d9ea8c252eee3f3a112d738647086f8b86013d9" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.226Z", + "updatedAt": "2026-01-06T14:18:00.507Z", "postProcessHash": "4b0a089cb966d32c4d219f3b887e3564cb8bcc4308a7e1a0bcd22ce51ca487c9" } } @@ -12806,15 +12988,15 @@ "c621962c4e9a6c1f2dcb4ec8f98b33faa0d771e9aac97195014471b0f353099e": { "8e462b2a96c9f45baf5c523e8a97e3ffac3676c40724d42a9c5109d5413a54bd": { "jp": { - "updatedAt": "2025-12-29T16:46:16.201Z", + "updatedAt": "2026-01-06T14:18:00.472Z", "postProcessHash": "9321e8d5b126599076342cb82a51b96316248fbd2430bd337bda7ce2febb0865" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.189Z", + "updatedAt": "2026-01-06T14:18:00.457Z", "postProcessHash": "78fcdfe39d68856ad3c231d910026e1b397e36ba3cd125af42a29f145c9465e5" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.196Z", + "updatedAt": "2026-01-06T14:18:00.466Z", "postProcessHash": "808cd4d713885f6824145b9f9aa1a880d2af3fe9d3c82139062ef6407d099db2" } } @@ -12822,15 +13004,15 @@ "c6addfcf4c2f183d0885f78b6bee455eb175ed28099b76df7d58a87ff79c231e": { "0bdad070e3c15637e1941843f067e2a8ab54f34932a6197c4b57662a1ab08586": { "jp": { - "updatedAt": "2025-12-29T16:46:16.129Z", + "updatedAt": "2026-01-06T14:18:00.367Z", "postProcessHash": "92fe330183d95bba737dba89b09b87aced21260d5f4713f06e26716dfe893ce9" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.136Z", + "updatedAt": "2026-01-06T14:18:00.375Z", "postProcessHash": "29183797f829a317a22669a5946df588a6f32339cb201a51cd4824452f351131" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.125Z", + "updatedAt": "2026-01-06T14:18:00.361Z", "postProcessHash": "9e29e451853b78cfb9ab34c5ce1655c3b0b4da64b68b7f34681fd1e4b698896a" } } @@ -12838,15 +13020,15 @@ "d0a117042cd54d2d897e9ff128bb30722802674d738351bc727ad6a48d97c13a": { "ef198e4984503045b3061df3df5083cc081e20ea251352bf6175ea0983742b28": { "jp": { - "updatedAt": "2025-12-29T16:46:16.113Z", + "updatedAt": "2026-01-06T14:18:00.340Z", "postProcessHash": "eb99fc2aaf3c2437d7619366a6c0f8e5c8b8ba01b1e93892facd669f2bf3aa89" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.189Z", + "updatedAt": "2026-01-06T14:18:00.456Z", "postProcessHash": "869d4039ca997fd59b3d6dcdabcebac46d42294e6c0464c8c5b0947c3b4d12b3" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.192Z", + "updatedAt": "2026-01-06T14:18:00.461Z", "postProcessHash": "5a5a863e456eeff7ec2fe80fe83517f9df6cd934c37abce6ea958733e1e11ad6" } } @@ -12868,15 +13050,15 @@ }, "5d3d1bfe4da6005f7d5cfdc2dbc491e0d0e1e9853dcf501110cc3829e45e0263": { "ru": { - "updatedAt": "2025-12-29T16:46:16.219Z", + "updatedAt": "2026-01-06T14:18:00.496Z", "postProcessHash": "412a7f748c3dd97f1882b969fd55d318e99a461d3de4ea92ee3684df0763c082" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.222Z", + "updatedAt": "2026-01-06T14:18:00.499Z", "postProcessHash": "4f483f12b69dd1937bbd5d188ac220a4c906ca6540f618d1ef49b5809414fea4" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.222Z", + "updatedAt": "2026-01-06T14:18:00.499Z", "postProcessHash": "2867637f8b9495f4e959282c2cb277f6ab70a897a9be7112f0f7558ec76c20d3" } } @@ -12884,15 +13066,15 @@ "2f2c64962247267011454aad885684dd07f5230293d18c996004e9a086a48a9e": { "de25513083b27abcf3a1ed0793d26139ab348f9ddbadba05a87914373d86d034": { "jp": { - "updatedAt": "2025-12-29T16:46:16.177Z", + "updatedAt": "2026-01-06T14:18:00.446Z", "postProcessHash": "f0919108f1e3444d7ad0ed2ce7f757fa4fe95aeab95e3e41b77ff6afcb737ad4" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.124Z", + "updatedAt": "2026-01-06T14:18:00.440Z", "postProcessHash": "2ef3e3402969643755291c71765ff496ffd60a25cbfd8124c5d53d85b2ca4578" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.180Z", + "updatedAt": "2026-01-06T14:18:00.448Z", "postProcessHash": "1f765a10bdca6b8f3cfe9a764e7705aa0bb2f56074962111e2022c0be547c62b" } } @@ -12900,15 +13082,15 @@ "3b502bb7173f6131431ad8322b576ef99ef5e91d3612beb68e0f4ce3b6053bf9": { "c7797285e4835ab50d34203593f5308bddaddec5d13f14f4f6d7be4be2239eb6": { "jp": { - "updatedAt": "2025-12-29T16:46:16.177Z", + "updatedAt": "2026-01-06T14:18:00.445Z", "postProcessHash": "6a403b8211deea85215986079f966f71866a9413b05528656c732fb75ecef771" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.176Z", + "updatedAt": "2026-01-06T14:18:00.445Z", "postProcessHash": "3244bce27aba0c03411916d10837079230501af1c5f5d7f87675136726e364c0" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.190Z", + "updatedAt": "2026-01-06T14:18:00.458Z", "postProcessHash": "23356880c8bbeccd027a2e5f615f49006000e6679f3d7e343c36459d4829c4ae" } } @@ -12930,15 +13112,15 @@ }, "f2e8e694d84d349f722a9d16f3cde5c4c31bc25c9e67039af1ad94c5c6c9f46f": { "jp": { - "updatedAt": "2025-12-29T16:46:16.274Z", + "updatedAt": "2026-01-06T14:18:00.576Z", "postProcessHash": "4f1228e5eba4c9128ec11f5a67e3e1b8af10ee9a14429caff7ecee966b4deefa" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.276Z", + "updatedAt": "2026-01-06T14:18:00.578Z", "postProcessHash": "26ccf1c5646fb3a6fff9b7e6dad1257619ee05b5a7e05b9e7a1b6e2bd0ca6051" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.278Z", + "updatedAt": "2026-01-06T14:18:00.598Z", "postProcessHash": "9113de8d289dce016914858994cbcb62d69ba44222e7a085460cd9058d401a58" } } @@ -12946,15 +13128,15 @@ "40ddf7122cbd5708445d09282a9aaaa01b51f15847138bd583939c6bee63c5a8": { "1efde3a11aa977a804768bd9d231b648a793e9638453375585e0f62486abe9f9": { "jp": { - "updatedAt": "2025-12-29T16:46:16.117Z", + "updatedAt": "2026-01-06T14:18:00.433Z", "postProcessHash": "8461b209658fdc5e6cfd3c58634d875c62e37217cbc49c5dbcc876f2f97aa586" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.122Z", + "updatedAt": "2026-01-06T14:18:00.437Z", "postProcessHash": "b8fb28e2e7781fb925ee3ae32dc4d36681b48e4c9dc4f0b4e8e6911e14fcc0d3" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.184Z", + "updatedAt": "2026-01-06T14:18:00.451Z", "postProcessHash": "d063aa4e649762490a9151ae3b8a695b234ee95aa16973848dccfab3a5da7555" } } @@ -12976,15 +13158,15 @@ }, "ae6103b2b10ec8b172dfdbb5badf48fba4edd87ccd3d371a23055b2f93119848": { "zh": { - "updatedAt": "2025-12-29T16:46:16.219Z", + "updatedAt": "2026-01-06T14:18:00.494Z", "postProcessHash": "b6a04c771bf46e15159bc40c05bc658665a0a70e5b1ffc4a6e2f71b9a439924e" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.221Z", + "updatedAt": "2026-01-06T14:18:00.498Z", "postProcessHash": "1b0cbc1fc0571c67d24622b4fec33dd1c0d2a3a800b39da33f950c410f5ff206" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.223Z", + "updatedAt": "2026-01-06T14:18:00.500Z", "postProcessHash": "5809d6fa1119875e9601f32d825302b2452f5d72885fdf79d9a5a0298577ccc0" } } @@ -12992,15 +13174,15 @@ "5034a9cab8d174bbba4fcce036fa29d5dc6bfa365274ed3cc44a0e5ff13c4738": { "c73720aff6e3013b19ca923ea6650c5399c7cce59157340fcac3ecb68f255f4b": { "jp": { - "updatedAt": "2025-12-29T16:46:16.187Z", + "updatedAt": "2026-01-06T14:18:00.455Z", "postProcessHash": "d6488e7f0d32e03a063c00d418aa05c3f1bbab9eb3e2a1e094e4c1360e23c7f4" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.110Z", + "updatedAt": "2026-01-06T14:18:00.337Z", "postProcessHash": "40711d5cb0c75022c52ee21f5bb3cbac97aa8888b4275ef4a7a8a443bd576af5" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.203Z", + "updatedAt": "2026-01-06T14:18:00.475Z", "postProcessHash": "e9401bcbf58e98e101504336b0f707148971d64bc196b40c23fd351a06a83c83" } } @@ -13022,15 +13204,15 @@ }, "d281adfd4f7da0e4456b6608ff49f4a5f5bd1641d0c767596f1e96afe489b307": { "jp": { - "updatedAt": "2025-12-29T16:46:16.224Z", + "updatedAt": "2026-01-06T14:18:00.503Z", "postProcessHash": "90b4b91f53350f0a37c9896448c25009a5346ca5618ccc19fb52d03ed728d0be" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.226Z", + "updatedAt": "2026-01-06T14:18:00.506Z", "postProcessHash": "ac7155f4f44a9ffbf8e7129f76dd1052c55363a39263c9f23353a5b3bb7b235b" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.227Z", + "updatedAt": "2026-01-06T14:18:00.508Z", "postProcessHash": "378d2c5cb9c52176f7feb2a8e499edf5e3d0b1fa25cbf82bd219961d1ff86dee" } } @@ -13038,15 +13220,15 @@ "67199cb0b07db7b73e9d48c3856e7a80fa64a401ac9356f38dd56f0ef6af4f87": { "2a193532f966a6fea5015f9758bc034a7cbdfaf8b91c7431fdbc29b0d020b9e8": { "jp": { - "updatedAt": "2025-12-29T16:46:16.185Z", + "updatedAt": "2026-01-06T14:18:00.453Z", "postProcessHash": "430b307571b891d6d5c4ef1f1f985c5b7666e121d39cbf44055132ad96c7be1c" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.202Z", + "updatedAt": "2026-01-06T14:18:00.473Z", "postProcessHash": "6bd15645decd46e1f46f8d0eb2fa75ab02a20a5ec99ff2eabe342632c81b6b04" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.210Z", + "updatedAt": "2026-01-06T14:18:00.483Z", "postProcessHash": "2bf4356e00a4700e62c1c8bc127f86226efd4a500e82727374871c8a27e0b7ec" } } @@ -13054,15 +13236,15 @@ "74f8cb35854e4cf151ab34a6587a3b0c76868a99d06b7a1b7eb88bfdd101dcc2": { "9431057902d3a29dbfbbd44c8cc88c4dd2b703331d32f31fe7eab5675d5d047c": { "jp": { - "updatedAt": "2025-12-29T16:46:16.178Z", + "updatedAt": "2026-01-06T14:18:00.446Z", "postProcessHash": "68c4e00c2a17ac04b349b275f9c3e5e89ddb956660222f0aaa430dc8116e7b7e" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.174Z", + "updatedAt": "2026-01-06T14:18:00.444Z", "postProcessHash": "5e2fb4643f691329d1883a61e36d1ad04fffc2b471bb06756783024d9a46e21d" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.174Z", + "updatedAt": "2026-01-06T14:18:00.443Z", "postProcessHash": "02292a0bab75803bbf04e38bb3ea652a26f8dc86844234a2fa689baff86812b7" } } @@ -13070,15 +13252,15 @@ "7e0dc4543c81b33bb19b9b0222c533c95884214b5877d7ed6c08d6101f73935f": { "4d2ea53c6c8b773cda0b23778f9e67b35379e9de8b35e7412e470060aa209fbe": { "jp": { - "updatedAt": "2025-12-29T16:46:16.126Z", + "updatedAt": "2026-01-06T14:18:00.538Z", "postProcessHash": "e584d3a24384b32a8843f8727f7d72d787d2caca8c93bbbe62875da9f415bc6c" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.111Z", + "updatedAt": "2026-01-06T14:18:00.426Z", "postProcessHash": "a5abfac3ffe5322d5b06a07312bf5d68c647a01539ed645aedab4b2250982487" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.180Z", + "updatedAt": "2026-01-06T14:18:00.545Z", "postProcessHash": "03021a32988182d8ce611d1f5b7417029627e8e4559b6a8151f91af3ff27917c" } } @@ -13086,15 +13268,15 @@ "885b5d789ebf32a2edb92bc498ab9f2e881afed86ef284b4892ee15109bb1321": { "b7053e1130cf6901ba2d93962cfe71528955b54a3427effb3f8dd0cb63a10854": { "jp": { - "updatedAt": "2025-12-29T16:46:16.120Z", + "updatedAt": "2026-01-06T14:18:00.435Z", "postProcessHash": "15ffa66b2ea41029d262aae8f3241ecbc70b838af51f0bfc6980e18f723df370" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.123Z", + "updatedAt": "2026-01-06T14:18:00.439Z", "postProcessHash": "bb295f2965f3d1bbd769cfc8c63bd1b07159fc6249f9086d99ddaef4b7a27dbe" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.121Z", + "updatedAt": "2026-01-06T14:18:00.436Z", "postProcessHash": "16db44ac9565c7051e60ccbc99ff25a35000445d34eca425f439abbf1f813855" } } @@ -13102,15 +13284,15 @@ "8c4025d67d4f83f1787b2935a24ca235fcca456bc7505ac9ac478e5351ad8297": { "3cdb2c61028a51f468d7e958cbdb00bd91b81a31123aacd0a6e4c0f676f159fc": { "jp": { - "updatedAt": "2025-12-29T16:46:16.124Z", + "updatedAt": "2026-01-06T14:18:00.440Z", "postProcessHash": "cd47e67e319a18008b96a97a358120935647dc6fb1d7cc30b8052210a70caba8" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.111Z", + "updatedAt": "2026-01-06T14:18:00.338Z", "postProcessHash": "839e89f91a549fe12739ee55617279b207012391fbf6400959e8556094d2bbc1" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.185Z", + "updatedAt": "2026-01-06T14:18:00.454Z", "postProcessHash": "0cc9fc706459c43dd39fd3c837ffb186422805761b5cf1a823c620d46906255a" } } @@ -13118,15 +13300,15 @@ "9f2ad018997a5b2a59f6bb176b61937bfa9cd7e81143b53306fe58e2c41400f8": { "79e16644830172d488a3acf805a5b9fe0f8b79fdbba1afe39d5495d561479ee9": { "jp": { - "updatedAt": "2025-12-29T16:46:16.213Z", + "updatedAt": "2026-01-06T14:18:00.553Z", "postProcessHash": "e12e1eecb56ce816efb7704c1b077834a49b4a5e2cbe6a11d301277da2afc0bd" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.191Z", + "updatedAt": "2026-01-06T14:18:00.550Z", "postProcessHash": "067ad6ccd78e7720c299f3b10c1d1731d08b1baed22ef13867f5bb0c29e7db6b" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.171Z", + "updatedAt": "2026-01-06T14:18:00.427Z", "postProcessHash": "b94495d0739e5c32e16ad30e7e0f504bb326a0899c511bffe9cedaa20ecf62c0" } } @@ -13148,15 +13330,15 @@ }, "5e451327c0afa957d9acaa94ce27e67461b493999f735e137e345d70ae711c46": { "zh": { - "updatedAt": "2025-12-29T16:46:16.220Z", + "updatedAt": "2026-01-06T14:18:00.575Z", "postProcessHash": "d2e3d5f709a440e33e4a2015d81b8ca7cdbb4d43c3b4802688c6b323f222d17a" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.221Z", + "updatedAt": "2026-01-06T14:18:00.576Z", "postProcessHash": "6110b4c646b73e308d6d57e3424f569f54c5aee594d4d2b3b16b84cbc49f7c32" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.223Z", + "updatedAt": "2026-01-06T14:18:00.604Z", "postProcessHash": "c92cfc488702ef73027e19ca414e25162716a6dbd0e7faec06e74dc6e784f0de" } } @@ -13164,15 +13346,15 @@ "bda6feaa2f751d257d0e9bb7488f846a2998fca7dedddf3b4830683849ba2b58": { "2afea7889acf8ea5044a0d33842f100ab65c6cb7f1df295cd1f21f7e129776fe": { "jp": { - "updatedAt": "2025-12-29T16:46:16.182Z", + "updatedAt": "2026-01-06T14:18:00.449Z", "postProcessHash": "88d078238d5b7aff489f9e50085b246d117036ece9d257236803fd105054824d" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.179Z", + "updatedAt": "2026-01-06T14:18:00.447Z", "postProcessHash": "8cdf5de757197437991b7061f571fc762557531659d7cace2602a651a8f32aed" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.115Z", + "updatedAt": "2026-01-06T14:18:00.347Z", "postProcessHash": "5721a55f87f25b2447cb3c77858d581b8c8c0c129010eb19c34f2ba98ff45ac2" } } @@ -13180,15 +13362,15 @@ "d032d67a58a6623fab2b1b66938ad265d806211c7e670b710006fa88c0fa60d9": { "4c0a1b6590854c3a88fa162f08d4611049c85780870affbf3d49f61a3e412fae": { "jp": { - "updatedAt": "2025-12-29T16:46:16.115Z", + "updatedAt": "2026-01-06T14:18:00.431Z", "postProcessHash": "74add42a4dd075dc2e265ecdc47d0bdaf6772b04b5a84613ba622aa2c27e63d5" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.116Z", + "updatedAt": "2026-01-06T14:18:00.433Z", "postProcessHash": "5dc53ec7687e39461d13ff7de30013c7c8d56402a200842ef7122b6048017349" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.115Z", + "updatedAt": "2026-01-06T14:18:00.348Z", "postProcessHash": "3e7a61c22b4615c575d87edc43ff668c5a04ba12d9ace8bfb34a39cdf3eabd35" } } @@ -13210,15 +13392,15 @@ }, "c01d46ff578a284a1986f5c70d8dd01fecf41fa4433b891b593f9e064e7e3297": { "zh": { - "updatedAt": "2025-12-29T16:46:16.275Z", + "updatedAt": "2026-01-06T14:18:00.577Z", "postProcessHash": "e5c6df4a6149ebf319a7722f507d06c51e93ca6ca89defb6923d5943fd6916a3" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.277Z", + "updatedAt": "2026-01-06T14:18:00.580Z", "postProcessHash": "c6ab0b9ad754ca0b973e745ed306f18b929e1154a33bebc6dcec37978c380475" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.285Z", + "updatedAt": "2026-01-06T14:18:00.615Z", "postProcessHash": "5b0599f24ec81c3020f9e81b38d552c7260b32c9e59d3ee66e676accd831703a" } } @@ -13240,15 +13422,15 @@ }, "eb4cb11a1ec4a3cb026c93e95f834eb0bdcab51d4730a6cd074a21413ea9b7de": { "zh": { - "updatedAt": "2025-12-29T16:46:16.283Z", + "updatedAt": "2026-01-06T14:18:00.613Z", "postProcessHash": "1131c48a6d9f60de54fb5e958f83da06c27bcaf42a92a929c818e968b2f9bf0b" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.284Z", + "updatedAt": "2026-01-06T14:18:00.614Z", "postProcessHash": "c9f64294a906353a5a832ab54e307a5f6f160f2ef2bc13e1a553ed6b1041d099" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.286Z", + "updatedAt": "2026-01-06T14:18:00.616Z", "postProcessHash": "5db48c6c816cf651c9203b884ef8f8e23f27f4073a6ca52fd5629af4d27b4910" } } @@ -13256,15 +13438,15 @@ "e5455b8e71ca0240dbae9ace48f312b2859517718c9b5597790152f5c5e4c55e": { "70f5e4c518ecfa04a597a86630bfa6b7c13859702dbefa84f43a08c628bb9c6e": { "jp": { - "updatedAt": "2025-12-29T16:46:16.173Z", + "updatedAt": "2026-01-06T14:18:00.437Z", "postProcessHash": "f3761c5fc409fe25da8fa803f4c374edd5c1f2ec5a6d5eb46cd1466cfec110e3" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.170Z", + "updatedAt": "2026-01-06T14:18:00.425Z", "postProcessHash": "f1f10d31a8ec8748ab61153c74d5e543bf46635c94fa567bae435be5adc46c7d" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.187Z", + "updatedAt": "2026-01-06T14:18:00.549Z", "postProcessHash": "945315cb0689c7d02b52a51f53e9cefec557e3700f53ec6db86c6bc11b13c9ec" } } @@ -13272,15 +13454,15 @@ "f0b04860378a97e43a484e7cfff527be98a82a04b75ec9ff8b95b88bfe017c21": { "4d6e6128d8cb69272312bc10969428b2d7ec14e93843e97641bd6ee1b539f104": { "jp": { - "updatedAt": "2025-12-29T16:46:16.215Z", + "updatedAt": "2026-01-06T14:18:00.488Z", "postProcessHash": "fe705a27999e5e8f95e313afd2d0a1b80a330f947f56e123b25c14031de6f53a" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.114Z", + "updatedAt": "2026-01-06T14:18:00.345Z", "postProcessHash": "39d044971443b21d59439600d34d409d96ce8af02c6f8e813cfab5a40a7ff8d9" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.209Z", + "updatedAt": "2026-01-06T14:18:00.482Z", "postProcessHash": "4d83f0604e5d0e47b7ddc39febbacd9a98013464f2d6f2104254ac7ee57cfce5" } } @@ -13302,15 +13484,15 @@ }, "4573446db159f3901c5cfd3a44fd06147f02625bda179cf56b3f6a71cb8daa58": { "jp": { - "updatedAt": "2025-12-29T16:46:16.334Z", + "updatedAt": "2026-01-06T14:18:00.696Z", "postProcessHash": "f5533ad13f79bf24ebb04dc4b02ddc634877a96cffd8b04d182925b8a8f7a8f3" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.335Z", + "updatedAt": "2026-01-06T14:18:00.698Z", "postProcessHash": "4315f2c1a89f8e1022726a5dd181c6c52c56b59d7451ff819d8e90de3a3e939a" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.338Z", + "updatedAt": "2026-01-06T14:18:00.702Z", "postProcessHash": "9cc4e8338c98e666350c6efa55e60a9178dfcdda886334d9414fbcf009ee0212" } } @@ -13329,15 +13511,15 @@ }, "aa22e9603b0ee7d5f78dd9d88e3596885f852cd20bbfe4597ac83fa1c1be2b0c": { "zh": { - "updatedAt": "2025-12-29T16:46:16.266Z", + "updatedAt": "2026-01-06T14:18:00.565Z", "postProcessHash": "6a5afbbcb9eeb7d1a6f3cfe2f34f9f6d080c869052d16938614bc892be38b732" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.267Z", + "updatedAt": "2026-01-06T14:18:00.566Z", "postProcessHash": "de018d2d6b4a80634792a7eaae5b3dc6c25960d89acfe55e4b460110e4a5910b" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.267Z", + "updatedAt": "2026-01-06T14:18:00.567Z", "postProcessHash": "f55804229a7fe94b052a744c137e5c02d6a638ac0b560e26fb084e3fc397734f" } } @@ -13345,15 +13527,15 @@ "20547e4692854c30843291c8c4b85cbaaa2473154a503ada089b47a286e119c6": { "add80eef63fea1cd539d2ca896319743cd0debee7952a9062ff15a5bac9cc978": { "jp": { - "updatedAt": "2025-12-29T16:46:16.217Z", + "updatedAt": "2026-01-06T14:18:00.555Z", "postProcessHash": "75f87e435cc1c4a63e1de3ddaee586828c1beafbb69ad97290ea9137b69e38ff" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.212Z", + "updatedAt": "2026-01-06T14:18:00.553Z", "postProcessHash": "c3afe4830fa0100445b17be024edf72fe6bbf2189559b4ca76743ac391732b63" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.172Z", + "updatedAt": "2026-01-06T14:18:00.428Z", "postProcessHash": "7d1fe950b54299e6dd6c158b606dbea20be4cf4139dda521a132646c7ff200e0" } } @@ -13361,15 +13543,15 @@ "3f80767faa69da876f277f16dd9152d0f1e8aba3db884130fa4c7ea029eb17e1": { "c8ca096e88fcce6dd3218a70cf039d6d7d8ebfe91be1b6c3b85f141fdc1feac1": { "jp": { - "updatedAt": "2025-12-29T16:46:16.244Z", + "updatedAt": "2026-01-06T14:18:00.534Z", "postProcessHash": "3576f73d5ab569b5dba6610c41d0eddb549fece6a945768138d9994ef1bc74f7" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.249Z", + "updatedAt": "2026-01-06T14:18:00.543Z", "postProcessHash": "ead4a6005aeaaea290b4a0f2e5ad1e3d7314773b444c2294f59cce3485eff989" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.247Z", + "updatedAt": "2026-01-06T14:18:00.540Z", "postProcessHash": "5b3e7681ce098fd818559a203225d53b9df6c60c08eee658a98860182900798c" } } @@ -13402,15 +13584,15 @@ }, "2643dee460a4c14e8ef9a047f570cc6ff167e054835fd5874f6d44b837450787": { "ru": { - "updatedAt": "2025-12-29T16:46:16.288Z", + "updatedAt": "2026-01-06T14:18:00.620Z", "postProcessHash": "8a45d1625c61a09c1c2e45b63610945ba558164f516c81afb84918a06dda061d" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.268Z", + "updatedAt": "2026-01-06T14:18:00.569Z", "postProcessHash": "24559916513bd869ab906c1ee308f0068d019c16376bfca2c802412c21717f17" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.269Z", + "updatedAt": "2026-01-06T14:18:00.570Z", "postProcessHash": "46640027d618aa8e8a64deb492d023dd68f5d7c5dcf975efb266815a6ed1a612" } } @@ -13418,15 +13600,15 @@ "4f944066028f36b0a6f28232fe75a6ebde995b969ebfd8a3c379cd645f0ff366": { "8ded3d0fa9f33ae122022672fd02b631471b5177e76c368607b554bbb3efce22": { "jp": { - "updatedAt": "2025-12-29T16:46:16.201Z", + "updatedAt": "2026-01-06T14:18:00.553Z", "postProcessHash": "c10eec1237b53937ad1cfdbc6fa43fee108fb3ec8b3018f4ee5c1d5466b83b63" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.260Z", + "updatedAt": "2026-01-06T14:18:00.557Z", "postProcessHash": "e17889370759fef8aafd36b8bd7a807ba2992d2dac31bd3ca07b28bdf8818a0d" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.214Z", + "updatedAt": "2026-01-06T14:18:00.555Z", "postProcessHash": "b1e72d4d944400768db7a0ce66f042db0a1f983da48e167864a889d2ea8c11f2" } } @@ -13434,15 +13616,15 @@ "74dcbdc993f03875931c0ef548e27e0ecdd4c39c4c084edc6eaf3237a562817e": { "a9ecf8d346bd106208732038ad37c4f2b9861186a25aead51cc7057a47bf2cd5": { "jp": { - "updatedAt": "2025-12-29T16:46:16.252Z", + "updatedAt": "2026-01-06T14:18:00.544Z", "postProcessHash": "08425ecf6747e702d75e68fd544fa0b0eba00492b66f4c2ec885895412db5065" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.250Z", + "updatedAt": "2026-01-06T14:18:00.544Z", "postProcessHash": "2d2eecfc94b59b2eb38f2928dbf7982e86a327f113928ed5ec679344dde79a6b" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.309Z", + "updatedAt": "2026-01-06T14:18:00.671Z", "postProcessHash": "7f56eee28e9975368db0317d29a426c0c7b4d7bad842a111d3256a3deb20838a" } } @@ -13489,15 +13671,15 @@ }, "a9949e8d99c83a7ef84078a97ec3f8b98476330b344120c5274354b9ded771b2": { "ru": { - "updatedAt": "2025-12-29T16:46:16.279Z", + "updatedAt": "2026-01-06T14:18:00.599Z", "postProcessHash": "26ff6b059963bb732b6c5a06806dfddfd95371aac530054a01b82eae152cba7c" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.280Z", + "updatedAt": "2026-01-06T14:18:00.603Z", "postProcessHash": "c609c5afc92e0360d83c10327308ca4d88b3c7ebc6470ac48afd87ef7a01cf69" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.281Z", + "updatedAt": "2026-01-06T14:18:00.610Z", "postProcessHash": "4233364f7f228b64f88f976b51c700b13a366671c3c1d3e6fe8d6824ac28efd0" } } @@ -13530,15 +13712,15 @@ }, "05930650843e354ffa40ef048dae8730d125d0c47d04e9f00134eac4a860a99d": { "zh": { - "updatedAt": "2025-12-29T16:46:16.271Z", + "updatedAt": "2026-01-06T14:18:00.571Z", "postProcessHash": "fe67030e43c582191b6a013837723417923059d0a198b0ad28a76b734e54357c" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.272Z", + "updatedAt": "2026-01-06T14:18:00.573Z", "postProcessHash": "45aeb8e3bbbed6253b4e3e71759202bac6dd751a9a8d5a7c6670b8fbe9aa3e68" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.277Z", + "updatedAt": "2026-01-06T14:18:00.579Z", "postProcessHash": "2668ab6b9e01edb97c5a2537b2e4682cd5726d77b3a49f156f543b2b2429dc08" } } @@ -13546,15 +13728,15 @@ "7ef33beb95b850b8400aad8ded966f28fd1eb3b61c5de7974983f2270d2b4f7c": { "501d9df3106342436670302f74dd2270b110ee24da435123cc0a1b51633a2284": { "zh": { - "updatedAt": "2025-12-29T16:46:16.235Z", + "updatedAt": "2026-01-06T14:18:00.521Z", "postProcessHash": "70d50c1c9f244e8c64dbf255a2c42850da48be9056457397b87f29f8039dfdc2" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.244Z", + "updatedAt": "2026-01-06T14:18:00.533Z", "postProcessHash": "b511222ab00e6b5894428017fe3502421abcce7b8e93ee0cb9d6ac504b5fa0e7" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.238Z", + "updatedAt": "2026-01-06T14:18:00.526Z", "postProcessHash": "281f7877f3202b0e2b16d569e3e44a4ba151fdc6721fe1d66f853bd88e3193fe" } } @@ -13562,15 +13744,15 @@ "81154bce9be97a0fc523001b189f4c093458747ff4e9b7f5cdecde64d9163d22": { "126e1bba0f10751cf028401cc1a0f3a944780e4a87fe9b63fb850c58b7d7510d": { "jp": { - "updatedAt": "2025-12-29T16:46:16.259Z", + "updatedAt": "2026-01-06T14:18:00.669Z", "postProcessHash": "dd9e23d1d4a5a5ed1010eafd3f90e7684f97ba0d81989f25162aaccec0cb6d04" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.257Z", + "updatedAt": "2026-01-06T14:18:00.666Z", "postProcessHash": "a77b99c287ed3031cd3cb8b680d63dd5c5fb09a2ed3accbb243f02c316a1ba6b" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.228Z", + "updatedAt": "2026-01-06T14:18:00.510Z", "postProcessHash": "daa37f76344baf050255e69aed728fc3a2330a1a10f457f38b9e20450c530d8b" } } @@ -13578,15 +13760,15 @@ "88d029b112f5fca5e4ba3d06b8c35a6d55e5b557663ed600c6f1b98f59f8ae20": { "1393aaf825d4dab45a6acc1ac4db09d138970e7008f8c78dc434242141a483ba": { "jp": { - "updatedAt": "2025-12-29T16:46:16.175Z", + "updatedAt": "2026-01-06T14:18:00.541Z", "postProcessHash": "56f3a5e3ecd8f623a5c79c29d894e4e85f188ec86613d5e5d18583800f5fd0b3" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.173Z", + "updatedAt": "2026-01-06T14:18:00.536Z", "postProcessHash": "adc9f0a054e23894106f1c441732e83341f60c111bea7ad2b41164dd902fbe84" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.176Z", + "updatedAt": "2026-01-06T14:18:00.541Z", "postProcessHash": "070d25a59aae60bc22d736dd862714043a6a8200791dcedea1516f4b15cfb05e" } } @@ -13633,15 +13815,15 @@ }, "6f2316e0b9c1c669dfd7e1232b1a408fbfc228d3149447c6ee999ed1959ebcee": { "zh": { - "updatedAt": "2025-12-29T16:46:16.273Z", + "updatedAt": "2026-01-06T14:18:00.574Z", "postProcessHash": "006f30eeec42fe821ccd76895aacc23b63aa08a55785571856a6c685f787c280" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.273Z", + "updatedAt": "2026-01-06T14:18:00.574Z", "postProcessHash": "b5f566d98e78ad9c6c65e582ea42a456c0d1932315e8395c7f07853663b66fc8" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.289Z", + "updatedAt": "2026-01-06T14:18:00.621Z", "postProcessHash": "96dd1aefa2c5d5616b69ab12b58fbb81810c7df7fb54f40c6f0b1568ef5e3e6f" } } @@ -13649,15 +13831,15 @@ "9b041aa508f2046ee0a4f84858531b8c2507bb6a6989db886c2dd4ea0c11a002": { "23dc86ecd0cc50924f5ea02d06b16b4e395c8e0f2fd73bd76d547ac864d42f36": { "jp": { - "updatedAt": "2025-12-29T16:46:16.246Z", + "updatedAt": "2026-01-06T14:18:00.538Z", "postProcessHash": "b52c724061f8a1742a87bee7d6ef39c6ab20bbc016127c7dd7c88ff16ff98a3e" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.258Z", + "updatedAt": "2026-01-06T14:18:00.668Z", "postProcessHash": "39ba9ce49d6f9c60016493652cb79bec9940b4539c99d6802caaa8f6aabc93f4" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.245Z", + "updatedAt": "2026-01-06T14:18:00.535Z", "postProcessHash": "5ec8683eb4da60cc741f969daf4522fc8d27678564eec7c6d930701ae409a87f" } } @@ -13665,15 +13847,15 @@ "9fdb709a96f96fb011d844ca13cda88bb361212284a327821501551223a4aa9c": { "064e508fcc9e28910cd94c862392084ac9bfbb28d99941ea8a6c7bf60aa11b79": { "jp": { - "updatedAt": "2025-12-29T16:46:16.172Z", + "updatedAt": "2026-01-06T14:18:00.429Z", "postProcessHash": "cfbc8f754e3b40f1706dd59b915ed1a98604baf2111caf7267e52f3c311ed69b" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.186Z", + "updatedAt": "2026-01-06T14:18:00.548Z", "postProcessHash": "46671661c130fc3cc842366c6f328b3c895b014f3c869bfe5f8d9f8fcd85751b" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.183Z", + "updatedAt": "2026-01-06T14:18:00.547Z", "postProcessHash": "7eb31a8a8855904c945f4baa617af1a8391ed4b24bbcef87f3f1f1f5f0a3294b" } } @@ -13695,15 +13877,15 @@ }, "9d5890a4e8d959fc5a29fa04f257a150cac9e3385c41923ac7aa0067fba3bc1f": { "zh": { - "updatedAt": "2025-12-29T16:46:16.271Z", + "updatedAt": "2026-01-06T14:18:00.572Z", "postProcessHash": "c6fab8632e065d477469bffbf53e90f6694653e85b36e5546963fdaa5171064d" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.279Z", + "updatedAt": "2026-01-06T14:18:00.600Z", "postProcessHash": "47714836a82bfcf3bb4fd524a2376dfe15ad1f4c65022c4665c6955bdac5c2c0" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.284Z", + "updatedAt": "2026-01-06T14:18:00.614Z", "postProcessHash": "da1a481a59fb5d602cefe6b3743327edd06ccf0ca63f680e8586ece2ccccc4e6" } } @@ -13725,15 +13907,15 @@ }, "33ce5b17f421af88f82e5746f6f93fdce6d11e00909de736cecdfa5d1714a742": { "ru": { - "updatedAt": "2025-12-29T16:46:16.281Z", + "updatedAt": "2026-01-06T14:18:00.611Z", "postProcessHash": "a88898225757aa2d3deeba65329f0b45df8b48fc9bb0e7a10752fc1ff2d91cf6" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.286Z", + "updatedAt": "2026-01-06T14:18:00.618Z", "postProcessHash": "f8c008ecb6437b5e8c39239f90999bcdd156826ea81f230375d3ba2e42df9aa8" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.287Z", + "updatedAt": "2026-01-06T14:18:00.619Z", "postProcessHash": "4a7ffb5269640983796d3ceff56889b349e600d92df46d4ba0b0ac747e265a73" } } @@ -13755,15 +13937,15 @@ }, "2ec425da9d70d0f1e21ade70406227aed8d82ebc17c051bfc745546eb6b65752": { "ru": { - "updatedAt": "2025-12-29T16:46:16.260Z", + "updatedAt": "2026-01-06T14:18:00.558Z", "postProcessHash": "6afba69ba0928f81a88985991012889d7554e25aa47714a528c260cdee7f4a54" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.261Z", + "updatedAt": "2026-01-06T14:18:00.559Z", "postProcessHash": "0a6646818dedb43c722e52bb6a711854aa0ccb09ab6e6684dab09d2b38f562e8" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.261Z", + "updatedAt": "2026-01-06T14:18:00.561Z", "postProcessHash": "cb77fdccb7b82f8f2af5a3fdf2c0990726bf0814b6da3764d171307db2f3ae3c" } } @@ -13771,15 +13953,15 @@ "b5543674ee59dc5d80ec783390644aa03c6a1b7c91bbff001eda92fd5198a064": { "dce1dfac5e498639b6f080315eaf0ea6f42c51bef46d3fb13e621234a36cb996": { "jp": { - "updatedAt": "2025-12-29T16:46:16.258Z", + "updatedAt": "2026-01-06T14:18:00.667Z", "postProcessHash": "6d43a2e8c9319742db9846736cd3b8e19a22d6cbc9e780f1c8f8c62fe432b505" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.256Z", + "updatedAt": "2026-01-06T14:18:00.665Z", "postProcessHash": "1b300527b2c26a3f3f1f7e25932b0d1001959e47e03b8cbeee5398d40daade6a" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.256Z", + "updatedAt": "2026-01-06T14:18:00.666Z", "postProcessHash": "6d2513c830bc724ce0e66eb59829b62cf087248ab3607316e388c4ab1e64c410" } } @@ -13801,15 +13983,15 @@ }, "92c273f6d72bc6e25dc91509a4a5d15f87807dbb8b4903024b21276809a8913b": { "zh": { - "updatedAt": "2025-12-29T16:46:16.262Z", + "updatedAt": "2026-01-06T14:18:00.562Z", "postProcessHash": "6343aa4945dbcf133bc58db81fa562fed752d220c4344367be2cbb4997e919ff" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.262Z", + "updatedAt": "2026-01-06T14:18:00.563Z", "postProcessHash": "993938d30a373cba06fb35b81a1cff6f822e3df72b7a094632f757de06aded10" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.263Z", + "updatedAt": "2026-01-06T14:18:00.564Z", "postProcessHash": "8b4705e013577f77dde397d06402c7662a2cbe0209cd5eb9adbaa838721d02ed" } } @@ -13817,15 +13999,15 @@ "e8bf7b4871a3b921003161fbe9fb3b3e0df205638abb6aa707688886621c9715": { "15aca606b9aecbf11a3de4acfdee9f33ff548522f3411df807128a214f52bae1": { "jp": { - "updatedAt": "2025-12-29T16:46:16.219Z", + "updatedAt": "2026-01-06T14:18:00.556Z", "postProcessHash": "40cd82e09187aaea5c81c6a932bcb43e5e292a933b5ef3a1db10f08bb5725cb4" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.197Z", + "updatedAt": "2026-01-06T14:18:00.551Z", "postProcessHash": "fb354681a70c0decd4f489a7ac9de1e3720d442449bb9bbf501d9f220b2f9b95" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.198Z", + "updatedAt": "2026-01-06T14:18:00.551Z", "postProcessHash": "c0dcf33956a8a79970884a5bee288ec07ed124313d7f85cd74c824eb85faa50b" } } @@ -13847,15 +14029,15 @@ }, "b04a8f072ef024145a2f66dd417c535d56b1c9b06defa0310c1702aa6724809f": { "zh": { - "updatedAt": "2025-12-29T16:46:16.270Z", + "updatedAt": "2026-01-06T14:18:00.570Z", "postProcessHash": "edb6d49922533177e9aba41c7ae65d9643ba5eb4327e05f80c4d0c876ff8c89d" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.275Z", + "updatedAt": "2026-01-06T14:18:00.577Z", "postProcessHash": "5f2dd30f1f8306ea6c61578e93f2425eef71c7654de9a96fa7a862eb6ccfda1e" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.282Z", + "updatedAt": "2026-01-06T14:18:00.612Z", "postProcessHash": "89ec716d65c2462a772679f9d3cd9fd45e7a5f3e73843ea0ccdb280e36f3b6ac" } } @@ -13863,15 +14045,15 @@ "0b209462f1ec411886fda57e810cd3eea5efebe202ca2b4f5dc9f1fb3787ccfb": { "5ecfaa73c3cc92aee3ee2825b0bb89bc857721cc0ed52b56af3b10a539b65498": { "jp": { - "updatedAt": "2025-12-29T16:46:16.350Z", + "updatedAt": "2026-01-06T14:18:00.733Z", "postProcessHash": "25e67442b2fd4da20dec1d3d5bd2382f39a43523371852493994ec4ca0d8ba0e" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.312Z", + "updatedAt": "2026-01-06T14:18:00.674Z", "postProcessHash": "31681447e8a5fa5023bd625f34183e83627075461d8e9f6b64279d58c282fa35" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.241Z", + "updatedAt": "2026-01-06T14:18:00.528Z", "postProcessHash": "db192bf061baab3958f17d59c3c5f0698321bb11cff2c25eece4a61e7d41bd30" } } @@ -13879,15 +14061,15 @@ "1d14e004d487902f18fc6c1de04f1ef911152e4d8c2d76455e4956d9cccd132b": { "435800632f77c2f3a43f62396007c869bf0e3310b946c504cec9c7661f101c78": { "jp": { - "updatedAt": "2025-12-29T16:46:16.310Z", + "updatedAt": "2026-01-06T14:18:00.672Z", "postProcessHash": "12e545b47285102bde384a0918c92a8d42bf79f1d1afcd9d441e2ad287c22f22" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.229Z", + "updatedAt": "2026-01-06T14:18:00.511Z", "postProcessHash": "b64f9cd2de62bdd21ec0bfa9759f2b2d1898288061cc8368efd3ab23489011f1" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.230Z", + "updatedAt": "2026-01-06T14:18:00.513Z", "postProcessHash": "fb37e6d45221abba2b724c388e9bee86cd7c1c418f0b60ba606e0044f995db98" } } @@ -13920,15 +14102,15 @@ }, "f447bb9192668318ef6f20027b40dc85326579fdf3b90da310219b4dbbd9f43d": { "zh": { - "updatedAt": "2025-12-29T16:46:16.327Z", + "updatedAt": "2026-01-06T14:18:00.688Z", "postProcessHash": "7a7896879e8695c8628ba2b5d47719430deefc979235e4a9aa3d9680950e4b6b" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.331Z", + "updatedAt": "2026-01-06T14:18:00.693Z", "postProcessHash": "9c65f30fafeaea587a4045978d1014b94cd7aa4af1bc746b8c832477915cdca1" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.336Z", + "updatedAt": "2026-01-06T14:18:00.700Z", "postProcessHash": "671e168837634aeb26cbfa5e408e7d325515a3d3cc9520a17ef71e00446d98c2" } } @@ -13950,15 +14132,15 @@ }, "160ce2b3e85936cb85b4be60b0c5967e4700e8c7a99f8d1472c2a63c91c7e2e0": { "ru": { - "updatedAt": "2025-12-29T16:46:16.336Z", + "updatedAt": "2026-01-06T14:18:00.699Z", "postProcessHash": "cce1d76ae781ca30474ff151c13519cbfe496852cf69345b4c62010772fad37b" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.343Z", + "updatedAt": "2026-01-06T14:18:00.708Z", "postProcessHash": "9b94b8f5b04b0b513050e7480c66715a29ef2492886a3113811f55a81249ae12" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.345Z", + "updatedAt": "2026-01-06T14:18:00.710Z", "postProcessHash": "b19b79746cd8c1577ae2dfd555596a82a62a002780b6098512e0e8b2640cfad8" } } @@ -13966,15 +14148,15 @@ "3fdff0c8c92ebbc95447e7244075da88510e0c3d4966e3b72af95a6e4c3d8e8f": { "1e45c8cfbc59d4c2fd364a34eb2e7afffd36ea4f0b127f873065e2b176a0133c": { "jp": { - "updatedAt": "2025-12-29T16:46:16.255Z", + "updatedAt": "2026-01-06T14:18:00.663Z", "postProcessHash": "ab1910f3e72066b0d73669f687d4d5e80157dff648655779ed7e0d9b31d825a8" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.251Z", + "updatedAt": "2026-01-06T14:18:00.660Z", "postProcessHash": "642af54e81351ca808eae01e1e200e56a22dec58e0922c95b0bd09b7277aaa9f" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.254Z", + "updatedAt": "2026-01-06T14:18:00.662Z", "postProcessHash": "ec6dfffb6bc82c716b454f1ac83f172291b7a0981a40ab997edc191b3a0dc8f6" } } @@ -13982,15 +14164,15 @@ "4ff60f576a90647ac6859ba05f56e594f54029ca4beea54b1e07f27ee5acfc94": { "b991af90c327a458792ab1640e608a8704cbde6a6f1373636c3d4a5c3445b766": { "jp": { - "updatedAt": "2025-12-29T16:46:16.312Z", + "updatedAt": "2026-01-06T14:18:00.675Z", "postProcessHash": "68aa985751ce8afb338281b6f9a66590df0c2f36dd2b5fe89461757aa9594847" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.313Z", + "updatedAt": "2026-01-06T14:18:00.675Z", "postProcessHash": "3b229a57a4332b08be896bb9879ba3bcb07875c2f15a628d7bcdb60819249f85" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.239Z", + "updatedAt": "2026-01-06T14:18:00.528Z", "postProcessHash": "27f2038866e35c7cb9b9055ce8e5078fd933e04be1c48f06af2b9ee3d6aea33a" } } @@ -13998,15 +14180,15 @@ "5063b2b4bc9b2899fab5998a2b281df0229add76ce268451423a1dfd2ffa5f2c": { "d2af9085fbf80701266de277a6a67f2400d823b5ac0d2ee3f5ffb2eb0b4f0294": { "jp": { - "updatedAt": "2025-12-29T16:46:16.350Z", + "updatedAt": "2026-01-06T14:18:00.732Z", "postProcessHash": "1a0d90871e6e2b295205365e8b581290db3a437ebe033d0b0078eae96ccab667" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.239Z", + "updatedAt": "2026-01-06T14:18:00.527Z", "postProcessHash": "257d7325e2e26ab22c7e3d8e999cb98edcbc4053194c98913ca6c2ea3e43c6a5" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.241Z", + "updatedAt": "2026-01-06T14:18:00.529Z", "postProcessHash": "e42b6dec7a2acb63d1107977b0718597672858689d636e521bf029284e1a4c50" } } @@ -14014,15 +14196,15 @@ "53e5bb2209c16605d7273edd1079563619f7fd4e6e5bdfdb95988af1a4694755": { "19b750db7b91f72b4f9666d5cd502557bfaf69581d6fb96105e239e437635657": { "jp": { - "updatedAt": "2025-12-29T16:46:16.245Z", + "updatedAt": "2026-01-06T14:18:00.537Z", "postProcessHash": "3b2eec0500965f6d96565f55f288c61d25a4a404dfa7f9ee6a935ba328abf6ba" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.253Z", + "updatedAt": "2026-01-06T14:18:00.547Z", "postProcessHash": "a4fea2ff8640e261a62f53795309b7cca4ee3acf6a4aea31f376c3eb01da7bd9" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.248Z", + "updatedAt": "2026-01-06T14:18:00.542Z", "postProcessHash": "a98c84d30ee0028ad86364e5ddff2581448b6a94389f6ff1f4f7288a390cf33c" } } @@ -14057,15 +14239,15 @@ }, "5cbdfc0b01145745d45bd952c98aa34c6615a3ebd6e853c102e67ac8be8b4893": { "jp": { - "updatedAt": "2025-12-29T16:46:16.344Z", + "updatedAt": "2026-01-06T14:18:00.708Z", "postProcessHash": "e97502bc2d4cf19255fb1c5937ac6368429d23615e71ff3c510e509b6ab418c3" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.345Z", + "updatedAt": "2026-01-06T14:18:00.710Z", "postProcessHash": "f07a9f15162192681f94d975bd3422424c18c5740d22db3add106da05b2e9f29" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.348Z", + "updatedAt": "2026-01-06T14:18:00.714Z", "postProcessHash": "109170b59619bfe0c823f1597f5f72154a8c0c21338e3da43e5dcb5f5b8995b6" } } @@ -14073,15 +14255,15 @@ "633a4ffa471ca2244e6ef5a3022d6a46f51861f23239b9b4594d8cac210cc0b0": { "011445c96b51faadcc04ca2af74b4a9de574446918a704bcb7648036f25d38a7": { "jp": { - "updatedAt": "2025-12-29T16:46:16.251Z", + "updatedAt": "2026-01-06T14:18:00.659Z", "postProcessHash": "2bb78765b095c76c532c526334e64871eba70e46b95b6ee70feb979b67b4b1f3" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.250Z", + "updatedAt": "2026-01-06T14:18:00.659Z", "postProcessHash": "661b2f38cb4beff8279dcaee312e3461f6d61a3a3a1edcc1df09236a15c24adb" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.254Z", + "updatedAt": "2026-01-06T14:18:00.661Z", "postProcessHash": "d7ae5f8356820c6d5250fc660bae5a50c7a59b423630b08542d122ce6d168f33" } } @@ -14103,15 +14285,15 @@ }, "46eee7a15f15070aaa6138739182e92da5d51c0c2c54086916fc4482df805ceb": { "zh": { - "updatedAt": "2025-12-29T16:46:16.321Z", + "updatedAt": "2026-01-06T14:18:00.685Z", "postProcessHash": "e449f67c7557cdc853eddd5d6ea0cd876b70910a2cf2216e319bffb6497e7daf" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.321Z", + "updatedAt": "2026-01-06T14:18:00.686Z", "postProcessHash": "2d8e52014ccf3f704987e3e32a30341bad746b45e66fc28e5f34970dc7d1f421" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.322Z", + "updatedAt": "2026-01-06T14:18:00.686Z", "postProcessHash": "f068fb3362bed1103726e3f37b4fc3af0e6ddf1c0d62e2d20d209f230df76ec1" } } @@ -14119,15 +14301,15 @@ "798d0e3eca2e56d6aa7658d85b9a41657e3aacf854913976ea97d89d8865966a": { "767118d90c94b77855b18cc08229cfbb4dd47ceb560ee656c0882c9192c24418": { "jp": { - "updatedAt": "2025-12-29T16:46:16.238Z", + "updatedAt": "2026-01-06T14:18:00.525Z", "postProcessHash": "31b7f9e4dd6bf1a5f4574991360ddc0ac597057818c1a8b1d21fc8406132fce2" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.242Z", + "updatedAt": "2026-01-06T14:18:00.531Z", "postProcessHash": "7ac054cd5bbcdff5084fbea1b98f13589dbde417d556fcbfa56f994cb7e455ad" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.242Z", + "updatedAt": "2026-01-06T14:18:00.532Z", "postProcessHash": "a6e714cdac850b037133b7d69aa03518959e3097a4a657d730538dfdcd23355f" } } @@ -14146,15 +14328,15 @@ }, "41c49c63971a2f9e6bd3fd7c7d57ce1afb19c85181799f072d28c0b669914f00": { "jp": { - "updatedAt": "2025-12-29T16:46:16.316Z", + "updatedAt": "2026-01-06T14:18:00.680Z", "postProcessHash": "4d643781883c1ce4d469d1d7e31e5a9ed597752a41bd2e8f0d1131a027e314c9" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.351Z", + "updatedAt": "2026-01-06T14:18:00.734Z", "postProcessHash": "357798ae27275d3f722f6a1335b7177d1521eb36d556a8c7081dc979ece96705" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.316Z", + "updatedAt": "2026-01-06T14:18:00.681Z", "postProcessHash": "ace04239f4fed598331da460647cd1ad10b83b9a6917649fe378985e183b04b4" } } @@ -14162,15 +14344,15 @@ "991e27fab22b52bb4b08b4ae04fdec89d5e6553dc7110f7d24b73408fff315c1": { "a03618c42cb58f95e7e03a4057880d077e66e088f5502749a604eaca3e70f464": { "jp": { - "updatedAt": "2025-12-29T16:46:16.243Z", + "updatedAt": "2026-01-06T14:18:00.651Z", "postProcessHash": "16ce7314610cf85dc6a6fcb8f80e86f23774d4265ab248042ab802ade3a1de4f" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.240Z", + "updatedAt": "2026-01-06T14:18:00.640Z", "postProcessHash": "7ee5a929a5403bb2a6a22f6bbddd8c33d72df764c28fb0134d6467bccb4e427c" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.243Z", + "updatedAt": "2026-01-06T14:18:00.652Z", "postProcessHash": "4f8d0b9816fa46f738992c5d1a89cd7945bb12d67bb061abc9fe4f9dd9ee99c7" } } @@ -14178,15 +14360,15 @@ "a6b9d4c5cae0464959192ad659ed2100cebdeb8bc49e4c041d80a9c6a804808b": { "e888d9f5660cbc8a94390f0efc75e38b61355c7aed5b560ba7c55138aa191993": { "jp": { - "updatedAt": "2025-12-29T16:46:16.233Z", + "updatedAt": "2026-01-06T14:18:00.517Z", "postProcessHash": "06e8c3469e2445580b09a3b28ebc1ac039223ac81dc207438c12292db2c93adc" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.232Z", + "updatedAt": "2026-01-06T14:18:00.515Z", "postProcessHash": "5e6a5cc39eafbf39d999441e9e7e081c57c8fe1d64b3c30024bb5f5cd1cc8fec" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.233Z", + "updatedAt": "2026-01-06T14:18:00.515Z", "postProcessHash": "249f577cddf532bba4917821d15b2dd459aa9cec2babb00e50b420b4d7bad721" } } @@ -14194,15 +14376,15 @@ "b7a5608a851a55f00f22ae8d517987b946c9c3eb543370562dc786dab3594714": { "88a876337f46351c9ccac93457f33dc4fb23d9aab3760cae91e020811ac6f19e": { "jp": { - "updatedAt": "2025-12-29T16:46:16.249Z", + "updatedAt": "2026-01-06T14:18:00.543Z", "postProcessHash": "259e9c8b685511c281cd5f83cc7df1ac25347bfa1e3763cc02d3fd65da5a7925" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.247Z", + "updatedAt": "2026-01-06T14:18:00.542Z", "postProcessHash": "3aff33479f50a36efdb15df20296e88368511ea1de6d9c15d5fc198e8ed3807b" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.309Z", + "updatedAt": "2026-01-06T14:18:00.672Z", "postProcessHash": "cfb46bdffc00893c7df479c14b4ce25f0e5cbbc59af1295b9ece3894906b740a" } } @@ -14224,15 +14406,15 @@ }, "e57e73115e1a41c0829a3199e20739b77fef701eb2159a9517153fe9d7caf2ec": { "zh": { - "updatedAt": "2025-12-29T16:46:16.332Z", + "updatedAt": "2026-01-06T14:18:00.693Z", "postProcessHash": "abf3ebfeacb6fbbfad156462cc8a390fe94f4d8b926225aefff59bbecb551f57" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.332Z", + "updatedAt": "2026-01-06T14:18:00.694Z", "postProcessHash": "0b24f0fa0349b92bc58f662f911f087271a891299915d0ce215d9d77db402177" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.338Z", + "updatedAt": "2026-01-06T14:18:00.701Z", "postProcessHash": "ef918bf90fb27f0a662377dc85adb75a235b6601bfef003b9cfbaa5987f03116" } } @@ -14240,15 +14422,15 @@ "ec3ea94f6a821f3d66e7dc9993bc4fc2b65580f3ce729e89dc7d1d6e9711078e": { "078157aa36205afa5c6e11fa8f7457d8696fb79062fc79c709121c33ed2a7d52": { "jp": { - "updatedAt": "2025-12-29T16:46:16.253Z", + "updatedAt": "2026-01-06T14:18:00.660Z", "postProcessHash": "dfcfe63c47ecea910c292bb70fcee5cce393e06c4748c1838945443ece80e8a5" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.308Z", + "updatedAt": "2026-01-06T14:18:00.670Z", "postProcessHash": "c24b5fe5f8be86ad3313e60694924493bb84fd131e0fb949e81c5403ab4c6785" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.253Z", + "updatedAt": "2026-01-06T14:18:00.546Z", "postProcessHash": "d252f7ff8fb7a4097f9a1857125d41167a162c041cfc7135927565986ddb78a7" } } @@ -14295,15 +14477,15 @@ }, "5d6447bbc41c4c71902815c6973c99d493f69ab8449d7920893dea26a1cb60ab": { "zh": { - "updatedAt": "2025-12-29T16:46:16.330Z", + "updatedAt": "2026-01-06T14:18:00.691Z", "postProcessHash": "558fb41961356374ada3b0d9730bf7921d61b10ea566751c317e32962e5293cd" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.339Z", + "updatedAt": "2026-01-06T14:18:00.702Z", "postProcessHash": "95f5491ad6f539d53770c8c6a3ee56e31e63758bcb69df0022dbf96f8f568cc5" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.340Z", + "updatedAt": "2026-01-06T14:18:00.704Z", "postProcessHash": "6354ee090805309a8718d036153c60e4bd649ae2bead6ce31a800456fd429d30" } } @@ -14336,15 +14518,15 @@ }, "857553575ac1983c8c0d9ecfce93bdd13617e3f8c3f2d74fd9be90185cdd06b1": { "ru": { - "updatedAt": "2025-12-29T16:46:16.328Z", + "updatedAt": "2026-01-06T14:18:00.689Z", "postProcessHash": "d5560c3d9c76a48ed538bd0b7f6a9152da71d483de4cc0c641468dfe7bea2b77" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.330Z", + "updatedAt": "2026-01-06T14:18:00.691Z", "postProcessHash": "a025fae1e4c5d59c05827278920ecab1268f90b110b445ada6158442b2ab77b4" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.351Z", + "updatedAt": "2026-01-06T14:18:00.735Z", "postProcessHash": "ec2ddb9cbf37b95f421161d712e2b3be14a660c5f395f3095df2f1693a625b54" } } @@ -14352,15 +14534,15 @@ "0788f71f3701d95084837950d519aaf717087552402cd82dfcf4236628f15af7": { "1840d9cc80dd9c8c8cc0209074557de0b8c1bf9c2ca33bff6ab6effea03e9a16": { "jp": { - "updatedAt": "2025-12-29T16:46:16.294Z", + "updatedAt": "2026-01-06T14:18:00.636Z", "postProcessHash": "9f8e5414e2db4974242cb61830b80369ceb6db03b4a9c1f1550a8cf6c8a60411" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.293Z", + "updatedAt": "2026-01-06T14:18:00.623Z", "postProcessHash": "bb4a8b2a60aab8aa9609be5894ee934311807e5370320be0396455802035fe36" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.292Z", + "updatedAt": "2026-01-06T14:18:00.622Z", "postProcessHash": "b710f5a6b142ce49a40818b641b59d222c3028da1c9627a5c02784331529ef6b" } } @@ -14379,15 +14561,15 @@ }, "48ea57d74cf0991e459a1a6ef7ad1bfb5bfe3f7325c793a0a4cb78626a6a37c3": { "zh": { - "updatedAt": "2025-12-29T16:46:16.396Z", + "updatedAt": "2026-01-06T14:18:00.785Z", "postProcessHash": "ab4e13587497dd76e68361e979244061166f0013c48e00477dcff7ba71647f14" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.397Z", + "updatedAt": "2026-01-06T14:18:00.785Z", "postProcessHash": "e88f00b71f8cd5c2e1f37d28e7746f6f7611fac5f5b463ed40810c881977e8a8" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.403Z", + "updatedAt": "2026-01-06T14:18:00.791Z", "postProcessHash": "d7ce52873e7f4702f72734e4fb18d53fc2154294b364f31bffdfb2948186400c" } } @@ -14409,15 +14591,15 @@ }, "2b33334a20cba72471abd779dd446a3afd011d14414ccd1d98f802b30ce6e12a": { "zh": { - "updatedAt": "2025-12-29T16:46:16.335Z", + "updatedAt": "2026-01-06T14:18:00.698Z", "postProcessHash": "eff6e0b3089d4fd44e7c2b333c021b863c4728e0f2f15d2b4d35357e5b697249" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.341Z", + "updatedAt": "2026-01-06T14:18:00.705Z", "postProcessHash": "9e5b98f29ac65e4ca5df1224fe12d8cc7facc073b7aca19f5b90f580e0c31542" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.346Z", + "updatedAt": "2026-01-06T14:18:00.711Z", "postProcessHash": "f4db6d78a27b8e213d70ce11df2aa7499f3b79c7b7a4b86ce2740d19067538eb" } } @@ -14439,15 +14621,15 @@ }, "cbc254cc0f575cb488b09478869f796ca9673d984b1d7d423ca248fea6a16de7": { "jp": { - "updatedAt": "2025-12-29T16:46:16.327Z", + "updatedAt": "2026-01-06T14:18:00.688Z", "postProcessHash": "f45155adbe223806084a9676ded5abff50e48eb6dc5d91b3eeb09f3217c00fb0" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.330Z", + "updatedAt": "2026-01-06T14:18:00.692Z", "postProcessHash": "be15f0bb25f30ae0db072c5fc7274c50be34f3f466c21c2583c58b7446248e0b" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.339Z", + "updatedAt": "2026-01-06T14:18:00.703Z", "postProcessHash": "1e6a8775746db7fc49f2468bc6cce5d7c8d1695741c94bea0ad1d23677792d1d" } } @@ -14466,15 +14648,15 @@ }, "ac01e30e5af0046a52cf7276e30904b5d7a7930becd3ab5c3a9353eca589dddb": { "jp": { - "updatedAt": "2025-12-29T16:46:16.408Z", + "updatedAt": "2026-01-06T14:18:00.797Z", "postProcessHash": "d1362d9e92535fac0228c756c6d220d5d4ff69f9b96d93739190f403a15ddcd2" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.400Z", + "updatedAt": "2026-01-06T14:18:00.789Z", "postProcessHash": "3f07dc5e5122a5571443fdc5e70b47a11f53e9eb2a50c000b1e5e5f2a980ffd2" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.401Z", + "updatedAt": "2026-01-06T14:18:00.790Z", "postProcessHash": "2716ae27985f4783a04bfe50f4a68f2d9002eb2d76a7e5409e766c4e8d7cbb79" } } @@ -14496,15 +14678,15 @@ }, "03c51b950b72b4486df453a46855d49928d9075f4e48119d3b30286c176cd94a": { "jp": { - "updatedAt": "2025-12-29T16:46:16.337Z", + "updatedAt": "2026-01-06T14:18:00.701Z", "postProcessHash": "a75ccd75f81856a76a37d748f8cb082a64f07ca003c908c1157de17bdd9744db" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.341Z", + "updatedAt": "2026-01-06T14:18:00.705Z", "postProcessHash": "faf1a5a4761c86480377bf33fa744360de669bab0f71b9effcca9ec7e6421b05" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.342Z", + "updatedAt": "2026-01-06T14:18:00.706Z", "postProcessHash": "93b72e7ed29bff2d690249777673767ced22b880edf64f152129b71852a3e266" } } @@ -14526,15 +14708,15 @@ }, "d1cc8dc058cea202ce9ca70558e90d57692eb1080b0143d8dfb8ccb4350d638a": { "jp": { - "updatedAt": "2025-12-29T16:46:16.326Z", + "updatedAt": "2026-01-06T14:18:00.687Z", "postProcessHash": "4f09b7ae979d76b23ebde92e73a91c1d4874d43b931f21fe20672dbbc9ebfbe2" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.329Z", + "updatedAt": "2026-01-06T14:18:00.690Z", "postProcessHash": "d293fe6f5c2d289ebc47170cfacb87e34f0a9e3fbd289078740d1273da2812b6" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.334Z", + "updatedAt": "2026-01-06T14:18:00.697Z", "postProcessHash": "68467457f515ed4819811e70f4895e5af187cbe3fc1497a8f4431f8c088f557a" } } @@ -14553,15 +14735,15 @@ }, "50217ecf6da1c9fa34dbce32b178808ba8ad58e9d6d7984a3cb4706dbb39d58c": { "zh": { - "updatedAt": "2025-12-29T16:46:16.349Z", + "updatedAt": "2026-01-06T14:18:00.731Z", "postProcessHash": "0c4a19dc971a2925d5ff1f0eebcbfbb1135c759d0ce332003f58ebd0731dd9b6" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.352Z", + "updatedAt": "2026-01-06T14:18:00.735Z", "postProcessHash": "38b409bf9f3b103e24330b5e2f9298a4be053e7c3e12514e66eb43d26c500b9e" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.317Z", + "updatedAt": "2026-01-06T14:18:00.682Z", "postProcessHash": "71f42998299b40045eae45a062f5a5ec5df5d1290df561e50ae413ecbb56a3d7" } } @@ -14580,15 +14762,15 @@ }, "0ef50f0b9a30bdac285fcb77d98560ae1537e2fb0a7be091a31b18662025042c": { "jp": { - "updatedAt": "2025-12-29T16:46:16.396Z", + "updatedAt": "2026-01-06T14:18:00.784Z", "postProcessHash": "904c7dd7de72816bbea9a5e02ddbe3f22a9a01cbfdf3595006be6fe32db2e659" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.400Z", + "updatedAt": "2026-01-06T14:18:00.788Z", "postProcessHash": "bdec87856dee99be0d7c772f2515ea849f3fe4e4ae39d32400f4b0e464cf2e5a" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.402Z", + "updatedAt": "2026-01-06T14:18:00.790Z", "postProcessHash": "e07f2d67c243e53dcdba25e5523b79b129ce1e0a5621b222c8008c88d2b61725" } } @@ -14607,15 +14789,15 @@ }, "a8d446334c20df806169f3e6b58a455522b91e97933d922e12de4ce6b3c63f57": { "zh": { - "updatedAt": "2025-12-29T16:46:16.394Z", + "updatedAt": "2026-01-06T14:18:00.783Z", "postProcessHash": "08eb335e116e9fa325f0176ac6aca99229efe9607102dd2d9cc13d6f200f39b4" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.395Z", + "updatedAt": "2026-01-06T14:18:00.784Z", "postProcessHash": "547da346276a79ef32d24761d28fc52fe328372cdeaa9cfa1103c59d680a12c6" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.403Z", + "updatedAt": "2026-01-06T14:18:00.792Z", "postProcessHash": "de4e0c669aa2ac406c79cd8cbf1c4d203de3489e4dc7e172c690192393c22cb7" } } @@ -14623,15 +14805,15 @@ "6021378296fe97cd32f847567e8226b5b01ff3e70c1eaaf35a828c9d29135ea8": { "a116f2580c016c233d50250b989b32bbe09ddafa83b8dc9dddec1dfc676909e5": { "jp": { - "updatedAt": "2025-12-29T16:46:16.295Z", + "updatedAt": "2026-01-06T14:18:00.639Z", "postProcessHash": "82d5f0fd03b979180d5372cd0aa473d0a098cd4676fb4df67bbd51f9e9024f4a" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.294Z", + "updatedAt": "2026-01-06T14:18:00.638Z", "postProcessHash": "705fa7d5ae9a07009495bdd6dade2adfbbd6d6b2a19e5c5dfb9ea50c5d8a8083" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.393Z", + "updatedAt": "2026-01-06T14:18:00.781Z", "postProcessHash": "94bf145436d3dc5fb180c1348c56bf5cdd02f9904a662e0113c8647523767f5f" } } @@ -14639,15 +14821,15 @@ "773e022e6828901db117df504dcb5f22c010a9943c580fc510044d9585197e57": { "b629f3340f4e22116ec115e53eedd044eb499d902c10c1c5d836dbbd184e23b7": { "jp": { - "updatedAt": "2025-12-29T16:46:16.235Z", + "updatedAt": "2026-01-06T14:18:00.520Z", "postProcessHash": "94237bde05be33dda000cee59604d472fab4836462a9b3a6b2114a607bbe97e3" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.234Z", + "updatedAt": "2026-01-06T14:18:00.519Z", "postProcessHash": "1ae7cc2d967c3cf3345a60dd8540422b9ef576d7a906da83b30fc8e684db71d3" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.234Z", + "updatedAt": "2026-01-06T14:18:00.518Z", "postProcessHash": "c775c8b1d406f4ba664bc1172660a77e2613a33710f867dda6538d40a66bb723" } } @@ -14666,15 +14848,15 @@ }, "3f3a386316e023eeeaa7d4b4aa2d14b972061dcbb89731b34614a1eb9c1462a0": { "jp": { - "updatedAt": "2025-12-29T16:46:16.402Z", + "updatedAt": "2026-01-06T14:18:00.790Z", "postProcessHash": "8cf550e87cefcac7259d28477e1a286590c4037c2952d865ff0c29df18fa851f" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.413Z", + "updatedAt": "2026-01-06T14:18:00.804Z", "postProcessHash": "45e842a468c732c340e28878c70c6400d04d57c9a44a2bbf5d428b8780e3d478" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.404Z", + "updatedAt": "2026-01-06T14:18:00.793Z", "postProcessHash": "24af7c2f180d0349510829b306b10d87d423f9fd78f5edb39d86e80ad30cbf0a" } } @@ -14707,15 +14889,15 @@ }, "a2587d009a16e6ef94bd296900d22815470f898d7352dc41da284c3d642ce005": { "ru": { - "updatedAt": "2025-12-29T16:46:16.333Z", + "updatedAt": "2026-01-06T14:18:00.695Z", "postProcessHash": "b4c2ff0e1df42e2e57e6a30ac04c53544dae5be390ef2c9ac28cbc654236a8a2" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.347Z", + "updatedAt": "2026-01-06T14:18:00.713Z", "postProcessHash": "ce14da5177d89c4a685779607341480e5a88b955e947fd3e6e8fa581bacb1c68" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.348Z", + "updatedAt": "2026-01-06T14:18:00.713Z", "postProcessHash": "7bc8bc64150a06ce5ef7238a5695a5e92ab9d5ac34ced104f681658d8f36e22c" } } @@ -14737,15 +14919,15 @@ }, "699374961799b0517de256013689ac620037ad501057f2dcfef2f15c58c6c873": { "jp": { - "updatedAt": "2025-12-29T16:46:16.342Z", + "updatedAt": "2026-01-06T14:18:00.707Z", "postProcessHash": "d24b907c5565fb31204b446e10a4b8b1931af164d65694c2cfc87e58d5dec28b" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.344Z", + "updatedAt": "2026-01-06T14:18:00.709Z", "postProcessHash": "ba6295e3e763983776e4d75d957ba18bb6e65797910213ce89288f81d83664a6" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.346Z", + "updatedAt": "2026-01-06T14:18:00.712Z", "postProcessHash": "7f18904d65ce2eb64182215fcda91d3a0ede2622a727213112a5fcf7ed5266d3" } } @@ -14764,15 +14946,15 @@ }, "c783d09e7857a7848fb43d49f6e4743088006f96c6f8cac250e8b578e1a078db": { "ru": { - "updatedAt": "2025-12-29T16:46:16.393Z", + "updatedAt": "2026-01-06T14:18:00.782Z", "postProcessHash": "40f243e8c92f0ccd19cc8dc9fc1f5124ebbc145b735d4071399a4d9e158f8d48" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.394Z", + "updatedAt": "2026-01-06T14:18:00.783Z", "postProcessHash": "c3a827c5f504feb9cfb0a8c1226fef246771e9e3b9c3bb37e5526f9e34be877c" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.397Z", + "updatedAt": "2026-01-06T14:18:00.786Z", "postProcessHash": "4a80bc0724d7db956c0c584eb9e41ce7b30223f914175533e1502119a250da94" } } @@ -14833,15 +15015,15 @@ }, "79137234386ac21b0312fc09dab0838d172f4bc10809ec0ba6c0c06d4e79000e": { "jp": { - "updatedAt": "2025-12-29T16:46:16.388Z", + "updatedAt": "2026-01-06T14:18:00.777Z", "postProcessHash": "2532df18eabdf8347839d587793c4cc3ded0ccc8d0c413a3fc23bbb28c854cb5" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.390Z", + "updatedAt": "2026-01-06T14:18:00.779Z", "postProcessHash": "9397ec59771e5d742a4c946a5581b08113ac4db9b38eeb1cf616539ecda3fef4" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.390Z", + "updatedAt": "2026-01-06T14:18:00.780Z", "postProcessHash": "37c2df8e43851488d17ffdfceb43be8ca151d6bb3636cdfe988fa99679bee3d8" } } @@ -14860,15 +15042,15 @@ }, "03a1b2ec675680c9d09f2bf57e7e2788958b6b2b98782821ebb8691f3266533b": { "jp": { - "updatedAt": "2025-12-29T16:46:16.398Z", + "updatedAt": "2026-01-06T14:18:00.787Z", "postProcessHash": "ee2b6ed65dc98f27b6093149c85121afad7bea1968ac3f9361c7e14e2f510186" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.398Z", + "updatedAt": "2026-01-06T14:18:00.787Z", "postProcessHash": "1a043a16036a31f132be97c8995deb93cf2ae3de783ff7a7669b6e37d5a8e6c6" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.399Z", + "updatedAt": "2026-01-06T14:18:00.788Z", "postProcessHash": "756302dbe7b2e5529b1ccd8acc68a79af6528053d4922f6616cc4e65c6842bed" } } @@ -14890,15 +15072,15 @@ }, "2c709bcdd1f8bdc3ba5d7113791dc75095fd25467f4376bdf9ff636c8e62e97a": { "zh": { - "updatedAt": "2025-12-29T16:46:16.408Z", + "updatedAt": "2026-01-06T14:18:00.797Z", "postProcessHash": "0c66dc77105a280ed7c451ad261849c21a922a2875ce444bedfbc5c3238d78e8" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.409Z", + "updatedAt": "2026-01-06T14:18:00.798Z", "postProcessHash": "ee4e3f460fcd97a1af521ed278263e50d7f0bda503af7f3b5df16d16742ab341" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.409Z", + "updatedAt": "2026-01-06T14:18:00.798Z", "postProcessHash": "5d70e83bc9382e8647808138884e9b091c0a09100a662a805e607f5f3201f3c5" } } @@ -14906,15 +15088,15 @@ "e7312c644964f4d389a9171edabe14341e5e6fdd852101cf9f16a264088857b7": { "2904b07971746b903763bbcc8b60c7bc05a984fd6692a24f60eeae21856cf64a": { "jp": { - "updatedAt": "2025-12-29T16:46:16.301Z", + "updatedAt": "2026-01-06T14:18:00.747Z", "postProcessHash": "775c2541160bca09901528544da0511731108813b896bf63429b58d01dd6bf2e" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.300Z", + "updatedAt": "2026-01-06T14:18:00.658Z", "postProcessHash": "8a3a54fb1e1728bdf86231fdda8dfec99417389c9b3fcbc5fb88a86293424362" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.300Z", + "updatedAt": "2026-01-06T14:18:00.658Z", "postProcessHash": "caa10d46cd72fb5f892ba8f31d7f543fd140d44a280032c8edf603802afbc6a9" } } @@ -14922,15 +15104,15 @@ "f5e8eec3fa4fdf1b4c16b4b71f35b278d41db6e5586c66a42fe590521942f347": { "f9704f3dd2bb395a82abdb0dd1b7b09ea97a4499075e9bc8ecfcb0ead44a1d69": { "jp": { - "updatedAt": "2025-12-29T16:46:16.308Z", + "updatedAt": "2026-01-06T14:18:00.766Z", "postProcessHash": "64f6878d98e5574de7bf79010d6c11f16df7e747e0e63b426c04c9163c84b92a" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.306Z", + "updatedAt": "2026-01-06T14:18:00.764Z", "postProcessHash": "32a557bdf0d20cbb5cf71417873ad5a472a239c57937881ceaa0a4f132d83b79" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.306Z", + "updatedAt": "2026-01-06T14:18:00.764Z", "postProcessHash": "08163163076e71c621930a4003da3c9ba391e1a14f35198a8c0b537228e58821" } } @@ -14938,15 +15120,15 @@ "0c9700318afe07f773f3675286dbd1308302fb5c993fc403ead5ee2c2c311f85": { "26bbf167b8a8bdd6e415d3cf429c935f63ed38563bdb8697297248361bdeffad": { "jp": { - "updatedAt": "2025-12-29T16:46:16.376Z", + "updatedAt": "2026-01-06T14:18:00.761Z", "postProcessHash": "2db42029b0e585f854889f7ad8c96c1b70f5a612a3a6547107f6e27f278387b3" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.370Z", + "updatedAt": "2026-01-06T14:18:00.751Z", "postProcessHash": "0053f16676e49702d213b29478b3661ea8916be71c88e78ccf7a58effa9a71c4" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.374Z", + "updatedAt": "2026-01-06T14:18:00.756Z", "postProcessHash": "77e78c20f7e721918a2a7963109df30c745fd5ef960b81d406facf2e19b83f8d" } } @@ -14954,15 +15136,15 @@ "1205bf7e48133304fe346efa0309af05787e80fd6f83623b178426d0d89e43ab": { "7a4af08a1b17f2a86db198129d22bf1a71494ef3425bd28e8251e46075a27288": { "jp": { - "updatedAt": "2025-12-29T16:46:16.296Z", + "updatedAt": "2026-01-06T14:18:00.654Z", "postProcessHash": "3b4169ccb6fa470897f95984e5e4d7c36ecfacc36799c2c78b00637713cdadfb" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.299Z", + "updatedAt": "2026-01-06T14:18:00.744Z", "postProcessHash": "1deabca0dc30190ccf35a36e8fea27956eff1bbfa0697ca86966f6a6a24dbfe3" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.298Z", + "updatedAt": "2026-01-06T14:18:00.657Z", "postProcessHash": "3a7d76d598e8016821d68327d3f3e3ff4d52bccb50ac7c3ae7b227c4fc244638" } } @@ -14998,15 +15180,15 @@ }, "f27cc1a31131e550e6416947b7e25c05c69be6ac36a498200ff3170638823024": { "zh": { - "updatedAt": "2025-12-29T16:46:16.376Z", + "updatedAt": "2026-01-06T14:18:00.762Z", "postProcessHash": "29b421c67ebee10a204805e59728b41460009efc2d8610e8332836de1d66932f" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.377Z", + "updatedAt": "2026-01-06T14:18:00.762Z", "postProcessHash": "370ab1680d14fa62ce8282afdf88ddbbb2ffd31594fca7ab65c0f59da522aedb" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.378Z", + "updatedAt": "2026-01-06T14:18:00.763Z", "postProcessHash": "de709ccc1f44ce552f8b412799a29a49aad4df0469eba4a2f95e94280e1a9284" } } @@ -15028,15 +15210,15 @@ }, "b23d0a99c1956c56245a00419845a2c365823fa8a614077bf9debf9ba0c7808f": { "jp": { - "updatedAt": "2025-12-29T16:46:16.464Z", + "updatedAt": "2026-01-06T14:18:00.865Z", "postProcessHash": "9951e50b6e30154abd53e7fcf87b4e055853c34a5048b4b89238a6d77a9d103c" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.465Z", + "updatedAt": "2026-01-06T14:18:00.869Z", "postProcessHash": "fa9859febc132dc57e02f5fbdead393388285b3cdbf87383108ffd3020b05c0c" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.468Z", + "updatedAt": "2026-01-06T14:18:00.874Z", "postProcessHash": "42154ba541da887b1771d873485283dea362c3038319d748bd92854617eb972c" } } @@ -15044,15 +15226,15 @@ "48ca9336c96e6bf5d7264d6ae62d5ee29644e6c214dc339d83a610716c484ff0": { "6e9ef6dfd8e741fb723339409fd3ec6e0e74d8c83d08b37cb60190c4e83a6762": { "jp": { - "updatedAt": "2025-12-29T16:46:16.368Z", + "updatedAt": "2026-01-06T14:18:00.746Z", "postProcessHash": "c31f043d91fa86b75264845c64b520f42ab6799775710cfd1e84dd9d274356af" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.367Z", + "updatedAt": "2026-01-06T14:18:00.745Z", "postProcessHash": "de2a813f350670fe63969b57d5c3d84697ed08edb9f295d9dde142ae02ba0a27" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.369Z", + "updatedAt": "2026-01-06T14:18:00.749Z", "postProcessHash": "f813bad8ac31feb90963c92ba27f77a74f4c81eff97ef0cb248ca14a5df79ebb" } } @@ -15074,15 +15256,15 @@ }, "d6b9e092a4fcc46472f498095122b169b314f40814ac7a847a273e9aa3724325": { "ru": { - "updatedAt": "2025-12-29T16:46:16.460Z", + "updatedAt": "2026-01-06T14:18:00.859Z", "postProcessHash": "c5d658d41af32e772674459b6cb96b8c17f30870eab488598d6d0d891eb24f7c" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.461Z", + "updatedAt": "2026-01-06T14:18:00.861Z", "postProcessHash": "99b5b82aa97c026a4427135ee1e6acc409f9c6d21a3a26ecbd55260f66686c35" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.463Z", + "updatedAt": "2026-01-06T14:18:00.863Z", "postProcessHash": "77be8b32bd56575a637d76264f7b54f5bcb08ccc614a1d5b68db98c62a82a7c0" } } @@ -15090,15 +15272,15 @@ "5272155dbd5220decd129a5e4b559edddbdf6ce43e7a6b8b33c93f39ff269597": { "976786fd43e7ab3db7efe0f5493c2e4b732add2abc4ca3639e54d6dba7ea3e9c": { "jp": { - "updatedAt": "2025-12-29T16:46:16.298Z", + "updatedAt": "2026-01-06T14:18:00.656Z", "postProcessHash": "487be067c8aa6535a54a90041692a596c79eec4dcd3bce169cb23531f73af273" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.297Z", + "updatedAt": "2026-01-06T14:18:00.655Z", "postProcessHash": "6241169d5228811057271c6026586e81e469491f3c371a8dde989455a88b01c9" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.296Z", + "updatedAt": "2026-01-06T14:18:00.653Z", "postProcessHash": "1cdff9979240f85d72430709a5efb12169bb4beec5957ffcd7ffeca3b0a52a1a" } } @@ -15117,15 +15299,15 @@ }, "4a8ab65da6d22806e27f1c0235a64e17eedef58353dd5f027ef06129117f60b2": { "jp": { - "updatedAt": "2025-12-29T16:46:16.385Z", + "updatedAt": "2026-01-06T14:18:00.774Z", "postProcessHash": "b81ad07526a462d50f15ebd1e73c0c079f7d6e217bbe7458827bf3d724899f0c" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.385Z", + "updatedAt": "2026-01-06T14:18:00.774Z", "postProcessHash": "c084f269a25a460f1246c8c4435802e008f43f10df88704c15613a9d015ff969" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.386Z", + "updatedAt": "2026-01-06T14:18:00.775Z", "postProcessHash": "2a06f6c5b3e8f60f2f8387bdad95f9b18a074eea9e2e80f1a150e8d5ad0145b8" } } @@ -15144,15 +15326,15 @@ }, "3a04105dee92510060ffbb0e51a8b69619bf2a41b598379b28951f1a94eef00c": { "zh": { - "updatedAt": "2025-12-29T16:46:16.379Z", + "updatedAt": "2026-01-06T14:18:00.768Z", "postProcessHash": "4183ed3c2db67ec9cb9e8f9d94517cd08cae13d15f17844d3158f6ca8fd673c8" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.380Z", + "updatedAt": "2026-01-06T14:18:00.769Z", "postProcessHash": "49256a1d63e90849e9830b4e12182aff3565acdd2768869fc05fe764457a0489" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.381Z", + "updatedAt": "2026-01-06T14:18:00.770Z", "postProcessHash": "42730a82569bd00eff64b862db2fea6999103e907d6088f5b445c839676edc0c" } } @@ -15174,15 +15356,15 @@ }, "f0ef0c2e3c9269ae22ce39afd11a2021f39ea5fb6693e4619e216f18404bd9cd": { "ru": { - "updatedAt": "2025-12-29T16:46:16.458Z", + "updatedAt": "2026-01-06T14:18:00.804Z", "postProcessHash": "b6d13e9f76fdf50fff5c51a528762474875d61961db25b536ec77be64b994e1a" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.459Z", + "updatedAt": "2026-01-06T14:18:00.859Z", "postProcessHash": "3b5f6f731d35121bd5e63123b646bef34c8cd1c3b45ab7bf9efdc4d6031a4e79" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.465Z", + "updatedAt": "2026-01-06T14:18:00.866Z", "postProcessHash": "88f001d679871b6a893e64879f7db1a0e519b354e8f5c1aa9518c619730cb389" } } @@ -15190,15 +15372,15 @@ "822e90a8485f6ba254a1b6b4f89bbeea67771bd3cb9f9d6241558e4b9f59e8ca": { "3442662c930110d3e163429ea57e15d27f6132307f6bdd86dd62fc64d01d1c48": { "jp": { - "updatedAt": "2025-12-29T16:46:16.368Z", + "updatedAt": "2026-01-06T14:18:00.747Z", "postProcessHash": "c85c8a464e477b8071b02f233a393e5429d4651221cc99ec2b92520354a20c68" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.365Z", + "updatedAt": "2026-01-06T14:18:00.657Z", "postProcessHash": "536b521389199086263efc05654006011b73801d6d280a6874d1f5d17c9b53b2" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.366Z", + "updatedAt": "2026-01-06T14:18:00.743Z", "postProcessHash": "5bdd0c323f16bdc8fa99589faf2a95916f0e3b9f4029cf672eea725717f3fa81" } } @@ -15206,15 +15388,15 @@ "8fafd060efa9d7570d6665629f29f511b108ca76567a0f8ab9320536cf4824a3": { "95dc2ad2c072c0167726cf92eb31cd7af87b0eb4785b0fb839363d03a88ae8a5": { "jp": { - "updatedAt": "2025-12-29T16:46:16.378Z", + "updatedAt": "2026-01-06T14:18:00.767Z", "postProcessHash": "c21a8b4416423b172dccfbc32d7cf9bb2d5b73709af87f235d8c2a661a614195" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.307Z", + "updatedAt": "2026-01-06T14:18:00.765Z", "postProcessHash": "2f56b98b9660ce498d762439cc8a71428b2aab791d8f3936fb5d18d25645f190" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.305Z", + "updatedAt": "2026-01-06T14:18:00.761Z", "postProcessHash": "d19c448c5419db5c98cfbaa71f326d86765f1d66b111f5711170262333cc5fe1" } } @@ -15222,15 +15404,15 @@ "910c09772c30498ccd96c4a7059798706b5861119f5ae8e46d899e9a4da807d5": { "419e68f0fe31b19a72d7bfd6b1b28c27298c6d38904baf049d3466be88aac0ea": { "jp": { - "updatedAt": "2025-12-29T16:46:16.373Z", + "updatedAt": "2026-01-06T14:18:00.754Z", "postProcessHash": "dc22b94306500a029e3df9474fb50498e9520e0b30149a3bce01688e9e48aa12" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.373Z", + "updatedAt": "2026-01-06T14:18:00.756Z", "postProcessHash": "3f0895afab830d4d454508ee98f95b05db352d2ffd7ae7f0788b8be3fe8dca77" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.372Z", + "updatedAt": "2026-01-06T14:18:00.754Z", "postProcessHash": "f7675a30c5fceab18c7e9613819fbd52b28a39d081a612abd549ebca24e7bf57" } } @@ -15263,15 +15445,15 @@ }, "5e48b24459dae07956036c9cdba123bfc822b3541c35ba2765b1d1974bbcef58": { "zh": { - "updatedAt": "2025-12-29T16:46:16.462Z", + "updatedAt": "2026-01-06T14:18:00.861Z", "postProcessHash": "78027c95e64715fac5302dba905a303d295a1ab5a35cb474bd2baf9044eafa1c" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.462Z", + "updatedAt": "2026-01-06T14:18:00.862Z", "postProcessHash": "b004d3ce996eb120377ac13e4c53c8b8ee36d503101e49198db88a44130b070c" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.466Z", + "updatedAt": "2026-01-06T14:18:00.871Z", "postProcessHash": "03488c12c2cfac7eff222f8be4bef0f0f37858497afd231ff72b2841ed4e6ecb" } } @@ -15293,15 +15475,15 @@ }, "7787770baf1adb5e2fc2229f67ccad170e6fcde810cc42ce6f972360bb051713": { "zh": { - "updatedAt": "2025-12-29T16:46:16.461Z", + "updatedAt": "2026-01-06T14:18:00.860Z", "postProcessHash": "fc504bf2e55befd6d09bc1bd2e3770e1996428e095cf78e35d53b334f4be8fff" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.466Z", + "updatedAt": "2026-01-06T14:18:00.871Z", "postProcessHash": "0f1ee2fec2689da22ea234d54f52081ed568cc1c468f14100253844a33521596" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.468Z", + "updatedAt": "2026-01-06T14:18:00.872Z", "postProcessHash": "12a1a6a7635e7ef48aae54245b03dfe0ce66902feff8f7b0f6d1a7df583adaf1" } } @@ -15309,15 +15491,15 @@ "b60ebbddf877960af38c601bbdbf000beb3124a60fee1f8c23fed49149d1c527": { "a5cf8d2eccddd9b6214fa12aac2b98dd4e514d569be5e26938ee9a3b11a0b411": { "jp": { - "updatedAt": "2025-12-29T16:46:16.304Z", + "updatedAt": "2026-01-06T14:18:00.760Z", "postProcessHash": "4f368a5437a0b18283c0b6e367294e5b0962801ba59065629d1c6479a7053310" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.302Z", + "updatedAt": "2026-01-06T14:18:00.758Z", "postProcessHash": "5d87865ba21b90797f30b67424e599b4d069e3d19176c77023475adf0dc315e6" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.302Z", + "updatedAt": "2026-01-06T14:18:00.755Z", "postProcessHash": "d7d1a34a6af08379718f0586934c33a70accac91111a018ad82bf5e47aa253de" } } @@ -15325,15 +15507,15 @@ "c11fd5cd4c0e0c76b50b836fc0585b7d897d5c6e619c8530f61e70fb13e7d1cc": { "1fc6d064882a931f2ccd7ae4239ad068568c65a8bef153bd6264d39d45bdf340": { "jp": { - "updatedAt": "2025-12-29T16:46:16.297Z", + "updatedAt": "2026-01-06T14:18:00.654Z", "postProcessHash": "4522b7efc32819ea16972c95f2ce99ba56305acfae119eb4c98edc7715085ad1" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.366Z", + "updatedAt": "2026-01-06T14:18:00.742Z", "postProcessHash": "c66dd1cc242c35e71cda37f7f97d750be81983e76d43d9e50125f6c6234111bf" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.369Z", + "updatedAt": "2026-01-06T14:18:00.748Z", "postProcessHash": "c0ce15be35aa928161f93bd53f1d62caf4053ca2e71fc4de141f4e67046bff91" } } @@ -15355,15 +15537,15 @@ }, "a735db2f6f9fdd265e4d8fdff847d8416f1facdeda9bb9733182e5d773ae6ab8": { "zh": { - "updatedAt": "2025-12-29T16:46:16.411Z", + "updatedAt": "2026-01-06T14:18:00.865Z", "postProcessHash": "7e055f03dfde42ece437aaa2023a5281bb127f2ed1973efc99a1fb005b415e9b" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.412Z", + "updatedAt": "2026-01-06T14:18:00.868Z", "postProcessHash": "9323fd3b01ef194f5e028fb9224389fe8f26e0a36291d4b885822d6b8fd26b0d" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.412Z", + "updatedAt": "2026-01-06T14:18:00.873Z", "postProcessHash": "5c6ede213fc1575f992af5d4e7d54a1b894456fdddf860116977b95dedb6f3fd" } } @@ -15371,15 +15553,15 @@ "eb48ea9cc55a5f79da9d6053e1ddc3e175fac421ecfbf7cdd1fba7409a5937c6": { "4bc78345ed8b814098932537f3fc29577489a1bf65318ccf523d0e7979227a78": { "jp": { - "updatedAt": "2025-12-29T16:46:16.374Z", + "updatedAt": "2026-01-06T14:18:00.757Z", "postProcessHash": "cdb1bda224b383474c02d61a269ea1e223b06fafd0c11fd6c6d3d8d9f0c45983" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.375Z", + "updatedAt": "2026-01-06T14:18:00.759Z", "postProcessHash": "c356b333abc195b3e8534cb7bdc5ec98e3543b86e1e4405e54683fcb123d5f57" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.303Z", + "updatedAt": "2026-01-06T14:18:00.759Z", "postProcessHash": "6c445591fbab30d7577c48b9590716968a86683cf4d982a5e12bf1a0eefbb35e" } } @@ -15401,15 +15583,15 @@ }, "f6f2edce29f9de1a030d797b01bf9f3be4224bb0755edd9f8af2ad96420905f5": { "jp": { - "updatedAt": "2025-12-29T16:46:16.459Z", + "updatedAt": "2026-01-06T14:18:00.858Z", "postProcessHash": "e3110f2eee39538f4599d661c0aeab2385e4c08a0a2319f329d2da07ba98924d" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.463Z", + "updatedAt": "2026-01-06T14:18:00.863Z", "postProcessHash": "29da3c8309cf0db8b25a2d56cfee7cdf308ebf5d3bf6bfb6bf52080e8929582b" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.464Z", + "updatedAt": "2026-01-06T14:18:00.864Z", "postProcessHash": "e7b921c281a8248f9b433c186c5b16c5070bb4e4b3925c4a47b7c67abb133da9" } } @@ -15417,15 +15599,15 @@ "eefff94e72ae2ff41e6e3bdfd308882739e2e719c94cb06245a0ddf4866a91d0": { "1a4e25f6cb4dbccbb5205a184e3f9417ca1d8398e86e5433534abb2f3af17825": { "jp": { - "updatedAt": "2025-12-29T16:46:16.371Z", + "updatedAt": "2026-01-06T14:18:00.752Z", "postProcessHash": "ccb295effc1ff1be8e960ff60c178fdaf77f64b7cb3f4c0333e273176b453e92" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.370Z", + "updatedAt": "2026-01-06T14:18:00.750Z", "postProcessHash": "5c8dad7101135bb2057aedc1f50dd3b58512717936c8315efea15514b5324cf0" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.371Z", + "updatedAt": "2026-01-06T14:18:00.753Z", "postProcessHash": "6f874bbb02560636146338821ca68a1edd6f2eca277519f04bdbed9a53157680" } } @@ -15444,15 +15626,15 @@ }, "d539a2e6e29c28f2a0f9388521c72cad291ebf89023c8cd11cbcfe918314ba5b": { "ru": { - "updatedAt": "2025-12-29T16:46:16.382Z", + "updatedAt": "2026-01-06T14:18:00.771Z", "postProcessHash": "ffd4ab29f644bac86b9ad1da8e700768882c525563cfd6deb294a32c452c00c4" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.444Z", + "updatedAt": "2026-01-06T14:18:00.782Z", "postProcessHash": "8f0041399a59000d4c60b36fbd11227f1b485defce1eb516df73378642cc3f7c" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.386Z", + "updatedAt": "2026-01-06T14:18:00.776Z", "postProcessHash": "47e97c8b6b5ae5faf54dfb5af47097f6084715d5d6d64d3527f8b46df1ca24c1" } } @@ -15471,6 +15653,20 @@ "updatedAt": "2025-12-29T16:46:16.359Z", "postProcessHash": "e84914e2f57ef8708bfeca376261aa24fe75eb4c152d98989a2f7c7ab667c05f" } + }, + "522a2d89e509abf0809efef57d7e33925c14e184e26c7d7423fbb85ff6512858": { + "ru": { + "updatedAt": "2026-01-06T14:18:00.875Z", + "postProcessHash": "fcb683c1cfbd0a1e3f4984521450e6c9ef73cfd3488834c99ae2b7af788e642f" + }, + "jp": { + "updatedAt": "2026-01-06T14:18:00.878Z", + "postProcessHash": "93bb7a58201e130dbc03254e1dec88bf8371dd1a7dc01eeb93abcfb9c1d0f9a5" + }, + "zh": { + "updatedAt": "2026-01-06T14:18:00.879Z", + "postProcessHash": "a91657b32dfef206dc639b8502bbbbcaab7ae148811d3959fd215eb41484d7f7" + } } }, "1310e9bab89510f4aedd870fa23492b42460b27cc53beb62388b8527a75b4abe": { @@ -15487,6 +15683,20 @@ "updatedAt": "2025-12-29T16:46:16.438Z", "postProcessHash": "9a5dfec87714972506ff3625ae31550e67a7110f7bf4e935720cee4082a0ea08" } + }, + "8faa2c5107f461389d4104a25ddfc7c2419ba6d30c79bb671e3be3ce127f65c7": { + "zh": { + "updatedAt": "2026-01-06T14:18:00.876Z", + "postProcessHash": "ec2fe718c0726006cc7ef1303739c5643667034756fb45d72cbd23264cde03a9" + }, + "ru": { + "updatedAt": "2026-01-06T14:18:00.882Z", + "postProcessHash": "5b2883db16991821356d307d3de91f62923401b89a34e14d969d43c5b1a18a18" + }, + "jp": { + "updatedAt": "2026-01-06T14:18:00.883Z", + "postProcessHash": "ec80fb59960dff0fd3a65e913e52f380621370055800be3c8c491e93ebe84673" + } } }, "313f2f3a2287ee9166540ad792489898b8322355b28ee91e96ba66cf781aac35": { @@ -15503,20 +15713,34 @@ "updatedAt": "2025-12-29T16:46:16.443Z", "postProcessHash": "5a833e8f6e3e2d4f706a961123b33a2d6fc214d8a14c7aea660ae61c6902508c" } + }, + "5376748f560dcf95557f0f4a3aba4a579366c460780b4f240430aef9f9f6b91a": { + "jp": { + "updatedAt": "2026-01-06T14:18:00.937Z", + "postProcessHash": "7ca5ba8745b57f89e5adce7badb7628dd5a264b030f31bd99bd54f96b8b84035" + }, + "ru": { + "updatedAt": "2026-01-06T14:18:00.945Z", + "postProcessHash": "5f2b8264c234390b925ee2a09e6d429a2123889b5e56be808a22bf4eead89f30" + }, + "zh": { + "updatedAt": "2026-01-06T14:18:00.946Z", + "postProcessHash": "0c0341e1889253ed7acc9e226b1d1a9b63c97e5d906f22509d40955db2d663e5" + } } }, "38d86ec85c1c8aaad845db190de05e50994d1a3c494195da910589c64b052751": { "3cff21a72fb101c7dc507cfac07bb03d9d16b6445213a5a7553e646f024ba71f": { "jp": { - "updatedAt": "2025-12-29T16:46:16.439Z", + "updatedAt": "2026-01-06T14:18:00.841Z", "postProcessHash": "da0986bd34eef0e1315058496c916c41298b77d4820a97bef50f3deb226aa0aa" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.360Z", + "updatedAt": "2026-01-06T14:18:00.813Z", "postProcessHash": "694118e1608f5bd5f1bb242653feca98511149b4898ea9bce3ef033bee40e04d" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.354Z", + "updatedAt": "2026-01-06T14:18:00.739Z", "postProcessHash": "134190afc32576a959a23716bad0bcc4b6ff8314058ecd846554849858d63b6c" } } @@ -15535,20 +15759,34 @@ "updatedAt": "2025-12-29T16:46:16.414Z", "postProcessHash": "0125bff9efcd56fa02610367634f2fe3e4cb66abaecc30d9dee99aa4e32881ce" } + }, + "a5ac8364c1ce904327792825156917876c7cc8addf4a443652b3f25c722f1c78": { + "zh": { + "updatedAt": "2026-01-06T14:18:00.940Z", + "postProcessHash": "55aad0fb647d6f116719756db2dc72d6dc905da56bf30bd67103b9a2d0ad29d6" + }, + "jp": { + "updatedAt": "2026-01-06T14:18:00.944Z", + "postProcessHash": "52a23cafbba0f363cebf434dda0b30f497cf8d87c40ae83fcefecaa38f5d7a75" + }, + "ru": { + "updatedAt": "2026-01-06T14:18:00.945Z", + "postProcessHash": "81538729480c7f749fd6e473e7df4a1893cdc7fc429e4a5418acbb5d632b4251" + } } }, "4a1e810e51a719b0c246d3a43e6419bd4b987b2e7623567a865586ec6ed3fddb": { "ed63b452ccdcc51644ab26c7e164fd9c06b4fb9dd0f29123b7c142d640dfd731": { "jp": { - "updatedAt": "2025-12-29T16:46:16.419Z", + "updatedAt": "2026-01-06T14:18:00.823Z", "postProcessHash": "ef7cd524f2fdf6d90e1858b5d23db17318500f976a5a7a2fd1e5586717da19e4" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.361Z", + "updatedAt": "2026-01-06T14:18:00.818Z", "postProcessHash": "80bd11959669fcd52e73651a4421f670b3debada6cfa53fe7fd89d67a5f5510e" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.363Z", + "updatedAt": "2026-01-06T14:18:00.820Z", "postProcessHash": "e4e3b0a4c2291fa43e4826fa7b93c070968a8172742a5cf99d056bead067878a" } } @@ -15556,15 +15794,15 @@ "50a5598ee25c450c5fb03f18bc79c9f33c4b2d45dd82d93378770a029449765f": { "d681b2d70ad9048fc005dfbd39784bf38bc368cbb6e601d7be30a81c02aa66d1": { "jp": { - "updatedAt": "2025-12-29T16:46:16.289Z", + "updatedAt": "2026-01-06T14:18:00.736Z", "postProcessHash": "7a37713449cf19d0d052e393040b23052ce7438d72710a0dcc8517980a765db1" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.291Z", + "updatedAt": "2026-01-06T14:18:00.809Z", "postProcessHash": "c0bed528dd331f0ec70fca32e12e3d3473f860e2f2a2e763b58621292706cb65" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.292Z", + "updatedAt": "2026-01-06T14:18:00.816Z", "postProcessHash": "97593d93d626e7aeda4debf478235ebb58a33de0553d97723ce614e2b878f0ee" } } @@ -15583,20 +15821,34 @@ "updatedAt": "2025-12-29T16:46:16.439Z", "postProcessHash": "fd010730766d81b20a4e4701aa5725b45c46f9e19bc30bb5ec36c754592b2dd8" } + }, + "01b2e20edc3c453e39d935aa51cc9ee525faa9ba4e3104d9aeb97857a1fe9aa8": { + "ru": { + "updatedAt": "2026-01-06T14:18:00.880Z", + "postProcessHash": "7ced529d234bde5544c315c5e9a75a8c87ed328e4408b82a03d29b47339c0a91" + }, + "zh": { + "updatedAt": "2026-01-06T14:18:00.882Z", + "postProcessHash": "94e9786f4f11cde44990691220d8ffbb2d7ee54644fd9d5962ff1ce27834c62c" + }, + "jp": { + "updatedAt": "2026-01-06T14:18:00.883Z", + "postProcessHash": "23c8fad9f354b8302ac3c01ec0e2cf4a6c3703b45e266efd9e9594e57475e745" + } } }, "5adf48b603a73cafc111898833bb810f6f9d985906f5a28a6b5510c4ad5ed9df": { "ded6c22af292aa253dbdb1b8bcdd3dfedbd38430db398f57c83b96b8b42647f8": { "jp": { - "updatedAt": "2025-12-29T16:46:16.358Z", + "updatedAt": "2026-01-06T14:18:00.810Z", "postProcessHash": "dbdecb6a46c09db6126c8936cf78fd477210257f19472b29066b5e458bf5a741" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.469Z", + "updatedAt": "2026-01-06T14:18:00.885Z", "postProcessHash": "8c040241668a01251257d416831a74cf6cb5e7ea8c55a8265598ade08dc19843" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.353Z", + "updatedAt": "2026-01-06T14:18:00.737Z", "postProcessHash": "9967bbf88d7c8424f4257bf01b4e685e511c8c585f4750351558d4ad6567227f" } } @@ -15604,15 +15856,15 @@ "7d16493aea7d06c09ef802117a0be5f6d628751d0a5c7a7b03ce8eb9dc409bf2": { "5c7a7e89cebe18dd07de910c107fbcee8795947ad29a2d17a6d6024a235a658a": { "jp": { - "updatedAt": "2025-12-29T16:46:16.360Z", + "updatedAt": "2026-01-06T14:18:00.812Z", "postProcessHash": "9f22f5c3850a168dec64c983aad647c877a101fc8b65b6022b9fd9c61eb9d705" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.444Z", + "updatedAt": "2026-01-06T14:18:00.844Z", "postProcessHash": "bbce2f4caff9f05c6c142c7e7881079a26d8ba55d8c38fdca955b58a5327949d" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.290Z", + "updatedAt": "2026-01-06T14:18:00.738Z", "postProcessHash": "791d838b8936b8ec61b03b1453f090baeb59c5be59369c0b410ef5be1db8229e" } } @@ -15620,15 +15872,15 @@ "948b9dc936c07fa8b4472138f98721317baa561958a48a6445780ecfc6a1c485": { "2f113bab1b3e6819aa420803e0868837c5a60eed370a5c0708d29084e14f6cdc": { "jp": { - "updatedAt": "2025-12-29T16:46:16.357Z", + "updatedAt": "2026-01-06T14:18:00.808Z", "postProcessHash": "6f038c456e76bffe9a21a1f74f613171f02a645e1b38c5cfd99579bcd2de0d17" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.356Z", + "updatedAt": "2026-01-06T14:18:00.806Z", "postProcessHash": "f86ab8839e9c68cbc5149e9860687ae5ba705f12c0d9a0fd53f151e756db3204" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.362Z", + "updatedAt": "2026-01-06T14:18:00.819Z", "postProcessHash": "7b5fa6bbf16491bcf0f92fe63e3427c79b02369af278e54b6333c789d06aca01" } } @@ -15647,20 +15899,34 @@ "updatedAt": "2025-12-29T16:46:16.438Z", "postProcessHash": "e62a33c2784f4315f5b8d11b39b41c373336437b721d926a42b79b99af158437" } + }, + "484b868a1436a072873fc9c79dd6a9b87ffd2d045bf969b29ebb012fd7a8e6ee": { + "ru": { + "updatedAt": "2026-01-06T14:18:00.937Z", + "postProcessHash": "73c5e87813305159773eae6872e46a81781a9bffde6feef7820406c1b1932497" + }, + "zh": { + "updatedAt": "2026-01-06T14:18:00.941Z", + "postProcessHash": "c30e64008d2d96de94e3baefef7fc0de85084bcec25ff45b367c4d4e4188c384" + }, + "jp": { + "updatedAt": "2026-01-06T14:18:00.942Z", + "postProcessHash": "01971e70136f3f8eaad19b02b93733706023efdb17f2da6374a2987f2924f1a2" + } } }, "abde8721a04c3899ef6606633f77be77e9d032a8fa7f37d834ba01a23fe119b9": { "580c03f819a51524be5321c5af5b976bf750d39a4e3a64a3dd28f32805924089": { "jp": { - "updatedAt": "2025-12-29T16:46:16.359Z", + "updatedAt": "2026-01-06T14:18:00.811Z", "postProcessHash": "591d14572e5f5de309079c3edbf0a2b25ac35a6ae33a1cb2722c992555f33976" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.355Z", + "updatedAt": "2026-01-06T14:18:00.741Z", "postProcessHash": "7aca524d78fa4f6f4c663c5fea2f78153a92d35c801d653429873b436e895760" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.361Z", + "updatedAt": "2026-01-06T14:18:00.817Z", "postProcessHash": "3621a5ccf8733e29ff90341822b3c5c3e067def5d0ffd806b63a222133659738" } } @@ -15668,15 +15934,15 @@ "ae86875e3a4deeec5b623e90f58d3191bc8e79167da17320095d45b7aefc2243": { "8e8b9e7eee69658acfb5be5d7837a6c6af0457a30ff7676b0d57099a5399ff0e": { "jp": { - "updatedAt": "2025-12-29T16:46:16.417Z", + "updatedAt": "2026-01-06T14:18:00.822Z", "postProcessHash": "4d6481d4bd406e143d705595c747c5f4306281b4fb360cbf62e9de23655a9618" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.357Z", + "updatedAt": "2026-01-06T14:18:00.810Z", "postProcessHash": "3aebaa11a3f071b2ffcafa63093eaec0b2b9d3489ca657d83ca958c1debb76fe" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.355Z", + "updatedAt": "2026-01-06T14:18:00.740Z", "postProcessHash": "332a61d48acbdc12e2c0f2ed974751749a1b053361148a9d3599cf761ae9ddd3" } } @@ -15684,15 +15950,15 @@ "b5d0eacaaf66596432fd2e0164bb5f867e3cac16623e968148a4d757d106c3f9": { "dd01468833f830dab589b0b46480f9b998ba99103d12ff19ec3c342a9f0a9138": { "jp": { - "updatedAt": "2025-12-29T16:46:16.442Z", + "updatedAt": "2026-01-06T14:18:00.842Z", "postProcessHash": "f4177c0137f7cebec30e8622284443325e99ea3adb7b8b536173098bc535b66c" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.418Z", + "updatedAt": "2026-01-06T14:18:00.823Z", "postProcessHash": "425b878e68b61701ed73af11b376055dd3b00cda6fcb29eacb22e35c9a49c19b" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.441Z", + "updatedAt": "2026-01-06T14:18:00.841Z", "postProcessHash": "cdf3c1e2da318e9d95a99b7ee28b5c3797b029a2aa5eae72edd32d18ba8f5a65" } } @@ -15711,6 +15977,20 @@ "updatedAt": "2025-12-29T16:46:16.485Z", "postProcessHash": "90af66737663806b5b89a454780dd88edf58a2b9439b6fea29169c9e8e09e7b8" } + }, + "098e2e6a1c1f24de6193989d909418dcb2fc1d07e7d491c1d42b9a321a542d68": { + "zh": { + "updatedAt": "2026-01-06T14:18:00.938Z", + "postProcessHash": "692d2f6c790768ae33acbb622262fee843aa1add37d18086ab69ff4f0a0b0b06" + }, + "jp": { + "updatedAt": "2026-01-06T14:18:00.940Z", + "postProcessHash": "4148eecb97cf81c80ab16cbe3a61db38a6dafe6a26d834d401546972d02008cf" + }, + "ru": { + "updatedAt": "2026-01-06T14:18:00.941Z", + "postProcessHash": "d8fc5dff3462aa7aaae57519869bf1425bf648d1d1f3c02debb7972f980c8e87" + } } }, "bdf609022e3136bdae1def5400ec2932bb8f17ea8d7d49a273b0293defd3affb": { @@ -15727,6 +16007,20 @@ "updatedAt": "2025-12-29T16:46:16.416Z", "postProcessHash": "da5c131e5e0f960e2380f2d74893f76a23dc6cb22d8e763f918284456b4cbc6b" } + }, + "28fbe73acd4d559fa9cd963f88871463cb1f9c50498735d46daa25ba4821a370": { + "zh": { + "updatedAt": "2026-01-06T14:18:00.938Z", + "postProcessHash": "ec372b957e1f78b424bc80cdeb2ce77ee78c56b4e267a867715069a72b1efacd" + }, + "jp": { + "updatedAt": "2026-01-06T14:18:00.939Z", + "postProcessHash": "5c8495ace70227d41f36574df034172e6080d9fbe1dd2e8a8004ade06356239d" + }, + "ru": { + "updatedAt": "2026-01-06T14:18:00.943Z", + "postProcessHash": "645250f231d85e888658d864f9ccf0d428c51c198afc4cc78bd1bb3cd7e32149" + } } }, "c5084a09df628aa86f5f8693b10a55f9e8af3ba5b6e50ed69ff474a580871673": { @@ -15746,15 +16040,15 @@ }, "fcf4a92676943a5eb987edc40a278981bbb093444a655ed26618712f2c2fba09": { "jp": { - "updatedAt": "2025-12-29T16:46:16.526Z", + "updatedAt": "2026-01-06T14:18:00.915Z", "postProcessHash": "e7335e538de3266b83331757d84897746766e4845c07f689641073a5cd8572d9" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.532Z", + "updatedAt": "2026-01-06T14:18:00.923Z", "postProcessHash": "c3afdf40a48e77116b7577c849027a03871fa98c28f06683eec26d69ea384ff3" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.536Z", + "updatedAt": "2026-01-06T14:18:00.927Z", "postProcessHash": "609698517a2ac04ff39e884450bc194a456279c4fef498d18a54c64417796e71" } } @@ -15773,6 +16067,20 @@ "updatedAt": "2025-12-29T16:46:16.438Z", "postProcessHash": "fbba82ab9e2df2badb75817f7a48e726ed5fd15902cbbdb7ceae8a2afc1f96f9" } + }, + "17246788cd901b28dc5eaa3abb5702a7d781c582a38cf911f94c5ece6d5e3266": { + "jp": { + "updatedAt": "2026-01-06T14:18:00.877Z", + "postProcessHash": "86af1d426bf8247b4188b13f841da84e1fa72a1ccd62eabf77c78f5689000838" + }, + "ru": { + "updatedAt": "2026-01-06T14:18:00.880Z", + "postProcessHash": "94d0ed429d688f5942a166208bca9e8967276e7abadad5b53fe225eba5281247" + }, + "zh": { + "updatedAt": "2026-01-06T14:18:00.881Z", + "postProcessHash": "3677d2655430b72bc46ae65a2905bbe86091c0d8fcb7955b5829c6f5aab468a4" + } } }, "f4e806b4f6f3414588a99250928aefb88bd97521c5fb9f755d133116d676e98f": { @@ -15789,15 +16097,15 @@ }, "0dc53c77f2243cc7e9fdcc853fa5aa06a0cb8fe3a7812be06951c1daf123b21c": { "ru": { - "updatedAt": "2025-12-29T16:46:16.381Z", + "updatedAt": "2026-01-06T14:18:00.770Z", "postProcessHash": "2af1ec335db4fc6abf6f7bd2501376fb9a92a4c7466a26be441beb1d48f08f7b" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.383Z", + "updatedAt": "2026-01-06T14:18:00.772Z", "postProcessHash": "ddb1a5994207670d8dc0c57de2d5a3b3f1888702976faa7ddde1a1a735f175a4" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.384Z", + "updatedAt": "2026-01-06T14:18:00.773Z", "postProcessHash": "1b48782b35b6277b8e397ddf707c73d3f9f479adf18167d3f10053737eb9de51" } } @@ -15816,20 +16124,34 @@ "updatedAt": "2025-12-29T16:46:16.485Z", "postProcessHash": "3d572f273c228b7d335ab4b69475db422d64d85b819f9a2413fd086027f7c7a1" } + }, + "23706c6985ecb5b1cd114bd7835eba7ca70af68e05630b3246377799300c1629": { + "zh": { + "updatedAt": "2026-01-06T14:18:00.940Z", + "postProcessHash": "2aafddbd786b34fa99a11dd14859f675c2a27f898954131c67eaaf40ab922087" + }, + "ru": { + "updatedAt": "2026-01-06T14:18:00.942Z", + "postProcessHash": "ba0c7369ac3779e46736c181cf0dedd1ec1353e6026257de3f9f14c9c2471564" + }, + "jp": { + "updatedAt": "2026-01-06T14:18:00.943Z", + "postProcessHash": "a48880ea77b5170eed28c5da33b2fcf3325b3f11feb88c1e3ab269eeae033920" + } } }, "077683f76fe06aef19e3361bceab4bc549399e0723b4d9d14415d78c7b29cdfb": { "fe9570de03d2029f3efd3701f8a9844fa8bb91810ea7c58923ee8d0766854adc": { "jp": { - "updatedAt": "2025-12-29T16:46:16.473Z", + "updatedAt": "2026-01-06T14:18:00.899Z", "postProcessHash": "f8fa7d6eae0fcb6e997eab540e6fb68cd3d387424fb2f5f09b6addde83b04402" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.474Z", + "updatedAt": "2026-01-06T14:18:00.900Z", "postProcessHash": "f987d27ad8f70748531359936b2e6673a6c331f090e487acef91523f810d3743" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.477Z", + "updatedAt": "2026-01-06T14:18:00.902Z", "postProcessHash": "0fe4d49dc0c3f4bc0ca8b91b508572e0d80aeeaea08cd70739089bb141a1e665" } } @@ -15837,15 +16159,15 @@ "1d4d6e77bcbd23d001d1913843fc6c9748753173b9770ce333d87441932130ec": { "30da2cbfe92790be7c2f95f485c2ea63c4ff423ade0453d52e65f78a6fe652c0": { "jp": { - "updatedAt": "2025-12-29T16:46:16.472Z", + "updatedAt": "2026-01-06T14:18:00.898Z", "postProcessHash": "d11512251fad1e69f2b21d67dc0af2c6b5181df9e72f88a5976070010a1be125" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.478Z", + "updatedAt": "2026-01-06T14:18:00.904Z", "postProcessHash": "78d25fbbc48ea834f6a45d8443caa404c8d3ef5995cdc2552d6815efee7f4d4a" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.431Z", + "updatedAt": "2026-01-06T14:18:00.888Z", "postProcessHash": "86be66d6a1b72899180a27fffad0cb4243dd940c76020f188281b83081fead4e" } } @@ -15853,15 +16175,15 @@ "37b9937d3f28ea06521af2789937cb6974b4bb1da71a4e0e38cd433452943f4b": { "ff41c613f12a073c7cfef1f537c5bef8fc0820fa48eaa7f6ad0cb887283d047d": { "jp": { - "updatedAt": "2025-12-29T16:46:16.434Z", + "updatedAt": "2026-01-06T14:18:00.890Z", "postProcessHash": "1e1cf22f0bde20fe72d9f6fa6e26477b1027d80dc13bc66bc9efd04c7b5b4e09" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.424Z", + "updatedAt": "2026-01-06T14:18:00.831Z", "postProcessHash": "a0532a6cbee9ea85a9d4b25625843fb9139ee70281d92404403f0e53a99cade4" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.434Z", + "updatedAt": "2026-01-06T14:18:00.891Z", "postProcessHash": "945171847f08a876d0a7ba93bfb07bd3247b86147a6972b254a3eff84b91c40b" } } @@ -15869,15 +16191,15 @@ "4503f45c726f639e1a6502e2fa738700aac770245105ecbbc3d6006506fa8e7e": { "b3e6deff1b1839f01fe2fdfb7c34b1a485c8bd5be58b682ad09b971716acc42c": { "jp": { - "updatedAt": "2025-12-29T16:46:16.436Z", + "updatedAt": "2026-01-06T14:18:00.894Z", "postProcessHash": "70d36a01709459b2e2f77f7917869a49b93fbbfd9ac9bf69bbf957df53886d57" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.423Z", + "updatedAt": "2026-01-06T14:18:00.830Z", "postProcessHash": "405d1837eb75bcccd57ff2938776ec65658a0a8ea0df5b8626797029bd3149ba" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.470Z", + "updatedAt": "2026-01-06T14:18:00.897Z", "postProcessHash": "f21607efcda7c564974769933667df0761a9f89c253951317d7ab69af11370e2" } } @@ -15899,15 +16221,15 @@ }, "f1a58c3f5331d478a19d64626683b529cc43b9db205bf1647ac8231b45c690a1": { "zh": { - "updatedAt": "2025-12-29T16:46:16.537Z", + "updatedAt": "2026-01-06T14:18:00.929Z", "postProcessHash": "0fc1a5b492b0388fe323e2e41bf930014a034bdf5534bc4659683592e8a8f7e8" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.540Z", + "updatedAt": "2026-01-06T14:18:00.933Z", "postProcessHash": "e7e5f3a92731c1716513d94d8a0a754b66d15cc7b5360c12ddc592292ff6465c" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.541Z", + "updatedAt": "2026-01-06T14:18:00.936Z", "postProcessHash": "fa45067a15f261c743fb28c9005db184100d618e253712807811e941d2dca5fa" } } @@ -15915,15 +16237,15 @@ "4d6593bbb881e0a74e7a089539eeba4aca7019f581c7caeadeee04c001000773": { "d16ded5082885b0eeb5b28bcee5bf878c87a2cc092934fcfc328a1e535effa1f": { "jp": { - "updatedAt": "2025-12-29T16:46:16.477Z", + "updatedAt": "2026-01-06T14:18:00.903Z", "postProcessHash": "3b91864f371b0269e3388fa9c0bace4bbd47e3a2251636bd6b1965129ecc6ef6" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.545Z", + "updatedAt": "2026-01-06T14:18:00.951Z", "postProcessHash": "d929daa842067272da7573f7eccd5628c880b26135816c539f35bbf6935bf4d8" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.427Z", + "updatedAt": "2026-01-06T14:18:00.834Z", "postProcessHash": "bd9aa9d0ed48e21822aa6d4a668af1b086f342fb0e80326243aac89ca746424d" } } @@ -15931,15 +16253,15 @@ "5c12094be2a10a85a875ce129adf37c46bdae04160dbb85b3eb63b9c69e7f6ac": { "bf9cdc73e3b5ca0e62d14af59e1854dd6d45176f362f34533c815c278385d1ec": { "jp": { - "updatedAt": "2025-12-29T16:46:16.429Z", + "updatedAt": "2026-01-06T14:18:00.887Z", "postProcessHash": "9d26890b69ebad7efb49ac6f1d18d2b9361293b6915b1c596138501a622ec609" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.424Z", + "updatedAt": "2026-01-06T14:18:00.830Z", "postProcessHash": "626cf0fc80eb53d28a10c846f02683d7e8d086f6fd6e306cd9767a0d0175b1b5" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.475Z", + "updatedAt": "2026-01-06T14:18:00.901Z", "postProcessHash": "d9e0fcf632d9cc3c5542b1f44f6053a50d45d11a92457e54bbde95d920191c6f" } } @@ -15947,15 +16269,15 @@ "62508936e6b3e7a6b965ed3df755188b154e45270320ca734cb0df2e29a942a9": { "9a4adbb5e86533b1fab803147ed4539c344e121c9526ce249b8e3c49744c7702": { "jp": { - "updatedAt": "2025-12-29T16:46:16.471Z", + "updatedAt": "2026-01-06T14:18:00.897Z", "postProcessHash": "eecd02d77a6b92f3f95b5de3183073287dc7c7844482e9c806a337ebea50cc99" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.542Z", + "updatedAt": "2026-01-06T14:18:00.947Z", "postProcessHash": "cfda41f108760dacfa6322ff8e0b79d718e0655881517599eca493deee9d3f08" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.433Z", + "updatedAt": "2026-01-06T14:18:00.889Z", "postProcessHash": "1d7f8ef90045452c9a84891045542f8756299f309596fcddb05c72052dae4057" } } @@ -15963,15 +16285,15 @@ "7a1451fe8363988c04d1df2125cc6a560940a7c034905f5e75da236ab427774e": { "7f9fa8dfaab48853ecedafd465b380359704ea83aed218c677074831e1cc0932": { "jp": { - "updatedAt": "2025-12-29T16:46:16.426Z", + "updatedAt": "2026-01-06T14:18:00.833Z", "postProcessHash": "bd1a95f411c9d855aba4dadbcf1368a0aec13deacf8f0fe076e50d5444b5614e" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.432Z", + "updatedAt": "2026-01-06T14:18:00.840Z", "postProcessHash": "d30ad2986438361cf2a0300ec5e1cf18b2e7361d232e548706f89ae25f31d892" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.433Z", + "updatedAt": "2026-01-06T14:18:00.890Z", "postProcessHash": "5e157a368fcc3fc5d81772eaf2e9b06017bca285b42066f45fff2fc6535f5ed2" } } @@ -15979,15 +16301,15 @@ "83523c78b37179282ea3d0f8a98cd8c0e917e50caaf74f38e237b1b1f1fd7dc1": { "7f172e3eb258a3b4cd3c132303859997ffb354f24a60481f04ae0f80fefe2147": { "jp": { - "updatedAt": "2025-12-29T16:46:16.432Z", + "updatedAt": "2026-01-06T14:18:00.889Z", "postProcessHash": "d2a758c4e086e2880bcb5213f4264dc54231f63662d6063c4fab3a6ecfc0a4dd" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.543Z", + "updatedAt": "2026-01-06T14:18:00.947Z", "postProcessHash": "8ba05f6682ed70d762e667f37e49518c26f8785f5669e452afa43abc9eac67a7" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.482Z", + "updatedAt": "2026-01-06T14:18:00.908Z", "postProcessHash": "e597e62930ccb199494420e6cb93034805baad4f1050e44a906c0860fda0f067" } } @@ -16009,15 +16331,15 @@ }, "a03b298178000740164b564019b8b10e4b80f0c358978f731477e0563ee27a43": { "ru": { - "updatedAt": "2025-12-29T16:46:16.529Z", + "updatedAt": "2026-01-06T14:18:00.918Z", "postProcessHash": "3061a688d0ae6fb2cacceea4f509e5c1abbd3e13c0890d1e6782899996c0dc27" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.529Z", + "updatedAt": "2026-01-06T14:18:00.919Z", "postProcessHash": "86bc148f0446166f978f49872211af39333949d60087e9885ba0b65f31d7c84b" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.537Z", + "updatedAt": "2026-01-06T14:18:00.928Z", "postProcessHash": "35882dc2e7a7e4800b25f116c68d440a403cd5c2ba6ebc37a87251d61506faec" } } @@ -16025,15 +16347,15 @@ "8e4e3758c244f276a3f91f720f08400f7d3280b2729ed2535fe4b0a244bc1eb7": { "a3356389fc2d7537a8464f2e1646f8f51af66a2d715df1807a2fd4184083a70f": { "jp": { - "updatedAt": "2025-12-29T16:46:16.422Z", + "updatedAt": "2026-01-06T14:18:00.828Z", "postProcessHash": "6e690aa7011ceb12dc7adb93154314d16ab7152d649957b86abff9b9f034cd20" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.543Z", + "updatedAt": "2026-01-06T14:18:00.948Z", "postProcessHash": "b458d4324ae11b033c1aaddca8db56df67e3d396e9a025adfff30254d9357c1b" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.479Z", + "updatedAt": "2026-01-06T14:18:00.905Z", "postProcessHash": "6c5d824573119f4fbaac03e57f92eed4a05f2839280990dbdd8a606fd4d0ff53" } } @@ -16041,15 +16363,15 @@ "92c4e15d1b1edd5a34f950168fa129302400e9f6ef4fa378e3c7af3ed6ec8227": { "3c3fcd6c5352af3e3f90c0a4d954793388177b9bbb34b975eff1c8f384d445ac": { "jp": { - "updatedAt": "2025-12-29T16:46:16.474Z", + "updatedAt": "2026-01-06T14:18:00.900Z", "postProcessHash": "070f12c315d2342f5a105a2218932d4fdc72167d9a0c60ebfc6f1835b3448cf8" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.422Z", + "updatedAt": "2026-01-06T14:18:00.829Z", "postProcessHash": "6209c2300bf914f490f2d32148e12f5adb75691f7d4a1065461cc65149d075fa" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.481Z", + "updatedAt": "2026-01-06T14:18:00.906Z", "postProcessHash": "973f6cbe0a381ca3e786bef4aac7be506d9f189af9e41de6f556b7fb1a861078" } } @@ -16057,15 +16379,15 @@ "a14794c89d955458a9f5af44d7aaca8d68a05b6880e98e008a7c081604143ab7": { "671b0a57421a638325cbf9c110626a9d5b734267bb8f974814c03393141cf7b8": { "jp": { - "updatedAt": "2025-12-29T16:46:16.420Z", + "updatedAt": "2026-01-06T14:18:00.825Z", "postProcessHash": "d20ac33df30d76e16a52d3daf8d630f90ef7aef4403c32ce7cf506fbd93af628" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.544Z", + "updatedAt": "2026-01-06T14:18:00.950Z", "postProcessHash": "8235af760498e4481b152763571d1a27d5344fe154f4dbc49b3fdd8e109e7664" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.428Z", + "updatedAt": "2026-01-06T14:18:00.836Z", "postProcessHash": "b0265d2d074be875c1475182dce6f9e1b242ed57b782c9fbb22400ff60bdb1d9" } } @@ -16073,15 +16395,15 @@ "ae39080b133df67d8884d7a8d76cf775ef202d9bf2efb43947344e07462aec23": { "4c42c112034c378e6000b6c987744ecc184d4c90582c11dc33f577b3f2ee44cd": { "jp": { - "updatedAt": "2025-12-29T16:46:16.542Z", + "updatedAt": "2026-01-06T14:18:00.946Z", "postProcessHash": "30fb188c652e04524ef16f20376e9e8391dcb397d168b31ebfcbecec5420c704" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.431Z", + "updatedAt": "2026-01-06T14:18:00.839Z", "postProcessHash": "65ca51a8bcaab97e962ee6010ba9b4b2fc376a804290ccd00d674c6167b8e6f9" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.544Z", + "updatedAt": "2026-01-06T14:18:00.951Z", "postProcessHash": "38786d3fb4e736b3d9cda9170f8c355459eac5900d6186ce5b9df7ae3bf1b9cd" } } @@ -16103,15 +16425,15 @@ }, "cb96222ba115f0a0ab26eb29d5b801ccc5393df51b4e605acc7b073eea2ec754": { "ru": { - "updatedAt": "2025-12-29T16:46:16.536Z", + "updatedAt": "2026-01-06T14:18:00.927Z", "postProcessHash": "98d4e2b9b1f413c9a66180eea9f5ddfed7cdc5de7e54bec61b0a8d4ab5633a4e" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.538Z", + "updatedAt": "2026-01-06T14:18:00.929Z", "postProcessHash": "a08569d506d26749a6f62c0fdfa4c1fdbcc9610dee18190162e971f032ee7fbe" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.541Z", + "updatedAt": "2026-01-06T14:18:00.934Z", "postProcessHash": "227e18ffa40e69c9ef76cd3a3e442f2c15d1ea1b7112dc681e28a03e6a570345" } } @@ -16119,15 +16441,15 @@ "bfa5f357797593cffea8aa625d31e79d5f58effffe1213f1bbb7b709e0c951e9": { "9dbe571f5b98f8fb6c1fe7c120e80cf8fe72a659f77f22e8b74282600d4e9325": { "jp": { - "updatedAt": "2025-12-29T16:46:16.430Z", + "updatedAt": "2026-01-06T14:18:00.839Z", "postProcessHash": "4f73838def81f184e290c873f8506db4422f1460461f2a940f8d5fff4cae490f" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.425Z", + "updatedAt": "2026-01-06T14:18:00.832Z", "postProcessHash": "994eaf603f8516f173736799bd7a77f266bc1565e6845088af973f01a6cdd900" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.430Z", + "updatedAt": "2026-01-06T14:18:00.838Z", "postProcessHash": "8571928244f408a9111d54c83345c740af16603d505c3d05dde8870e443f791c" } } @@ -16135,15 +16457,15 @@ "c593a21ae24f2adf1116e2099fe2cac24733672a1fdacfbb7d9be523e674a070": { "3888654c7ba7da0474c2c33ac3100faa58509581ecb5ff97147be80f6c3ddc7f": { "jp": { - "updatedAt": "2025-12-29T16:46:16.420Z", + "updatedAt": "2026-01-06T14:18:00.826Z", "postProcessHash": "841b45db78efc802422c48634083d446d21f12af1be3841b6d09d26ade5e1926" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.478Z", + "updatedAt": "2026-01-06T14:18:00.904Z", "postProcessHash": "23d6a1f5929b2955a22a427fa11c2b6c8d9907ed63bc5d2fae552a00730b35f9" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.472Z", + "updatedAt": "2026-01-06T14:18:00.899Z", "postProcessHash": "55433cff9eec68a514235c2b83584b48d05a8f76cc1007fc9259665c2c8ca535" } } @@ -16151,15 +16473,15 @@ "d2d56d1eccd2d86a90004069292a4cfc31251986d8bb238fa00ba3a4aab4a56d": { "dc92ad8afa44196810e06c60223ea9ca5b982c40325ac54b37fd95a9f450fdda": { "jp": { - "updatedAt": "2025-12-29T16:46:16.470Z", + "updatedAt": "2026-01-06T14:18:00.896Z", "postProcessHash": "d88cfada48d8baf4d97315f0430606a86c73534d5796bdf8811eae946329ece1" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.425Z", + "updatedAt": "2026-01-06T14:18:00.832Z", "postProcessHash": "e2f32f94bd07beb84c308ef2ef522230575fdfe7e648dda111775a444e88db3b" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.429Z", + "updatedAt": "2026-01-06T14:18:00.837Z", "postProcessHash": "4a3821fce1b715f1f1e4fd95cdd057c5d1816fed88d5bf3bdf33d93b34c78248" } } @@ -16181,15 +16503,15 @@ }, "0cd377aa5af7605ca51ac31f7eeac8add60810dceba24ca255dbaedcd3fe2138": { "zh": { - "updatedAt": "2025-12-29T16:46:16.532Z", + "updatedAt": "2026-01-06T14:18:00.922Z", "postProcessHash": "1628d51e8aab238525b7c6f7b9c06e5eb6384dea98348c871b4834b29cbc774c" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.533Z", + "updatedAt": "2026-01-06T14:18:00.923Z", "postProcessHash": "fe5ccc437f9345059d26d3fc521c184a6a83b9280dd3468e5d08b678d73703d8" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.535Z", + "updatedAt": "2026-01-06T14:18:00.925Z", "postProcessHash": "523ad46b9a40df19b33f903083a3b71d3589133a7f1a22477483f73f44844ee1" } } @@ -16197,15 +16519,15 @@ "f27af8909a343bda58696e815f4b50b00101d0dcd66b99619aa579b381a444cf": { "929021d21964c8a27df287754f3bf673b1e9e43e5b78df9447405b8197530ab2": { "jp": { - "updatedAt": "2025-12-29T16:46:16.480Z", + "updatedAt": "2026-01-06T14:18:00.906Z", "postProcessHash": "2f8832e4e3668c5f234f81920590f8c4bfcb394eb8b46d940a007bba57ec39b3" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.475Z", + "updatedAt": "2026-01-06T14:18:00.901Z", "postProcessHash": "a17b7dd568b0cfa63c3b62884fe32d1be3d235476a5a6f9fb237804055a54102" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.476Z", + "updatedAt": "2026-01-06T14:18:00.902Z", "postProcessHash": "dcfdc5617d7db19648bab9624fad962c017a426de01c738334180ce4fca2d0ad" } } @@ -16227,15 +16549,15 @@ }, "4ce6aa13fcd1d405e6a5bba5a1fe477a1c8f48d345758e4e9c7e39097c9c4d59": { "jp": { - "updatedAt": "2025-12-29T16:46:16.539Z", + "updatedAt": "2026-01-06T14:18:00.930Z", "postProcessHash": "e9b7a07e9989505a4709085fd3cb20206e2db6b7f6ddd7bb6e3a01e80475ad00" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.539Z", + "updatedAt": "2026-01-06T14:18:00.931Z", "postProcessHash": "cea186a9e853de8001652488fa3d2b48a27dd9dcc058bdd498fb2e448e863753" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.540Z", + "updatedAt": "2026-01-06T14:18:00.933Z", "postProcessHash": "8c15dc77a4f28f35af491acd9ad55f03518628337bbc20de04e77b937242b1f3" } } @@ -16257,15 +16579,15 @@ }, "02f203b2458791c0550ce7bbe736570afba5a5dfb7cd6d14e8688d34e9ac4b51": { "jp": { - "updatedAt": "2025-12-29T16:46:16.492Z", + "updatedAt": "2026-01-06T14:18:00.912Z", "postProcessHash": "3219ed50b8588ee688fbb6a33a0fa163d06de588fda975eaef4f5f4898e5e6b5" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.493Z", + "updatedAt": "2026-01-06T14:18:00.913Z", "postProcessHash": "ab1f6e0e1b5e12d5b96c264bbb757c42ceb5902ea8c394264ba4006a2f4f0a02" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.493Z", + "updatedAt": "2026-01-06T14:18:00.914Z", "postProcessHash": "bebbf531b56d8fb5694b6fbc4d4fea6b093c884b81b5652415841680c3cb61c1" } } @@ -16287,15 +16609,15 @@ }, "82da4c4058b016a573f8c64403e3e052ed4f744c612ab36c190cf4b7aa0de9ca": { "ru": { - "updatedAt": "2025-12-29T16:46:16.528Z", + "updatedAt": "2026-01-06T14:18:00.917Z", "postProcessHash": "2800d46225aeffcc709bfa45ea50e7cefcb8b9c3a326e54255765e7f1d6f5854" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.530Z", + "updatedAt": "2026-01-06T14:18:00.920Z", "postProcessHash": "0a3efdb843fceb526b4d8f4a7a37575f1efc87b9614cfed210344b52827685a5" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.530Z", + "updatedAt": "2026-01-06T14:18:00.921Z", "postProcessHash": "22fa09aecaab0400dda98ff116b3e63c7ac52d0632b7c9c496c4fe97b7a81608" } } @@ -16303,15 +16625,15 @@ "4e39f1cc2912db452edc06d93f7f0bfcc091c2888f064a3281bd99e46645f722": { "48a7640cd750631e03fa4c3747cd09af737c4ed39ad0a40e22ebcfdbc24b9872": { "jp": { - "updatedAt": "2025-12-29T16:46:16.482Z", + "updatedAt": "2026-01-06T14:18:00.908Z", "postProcessHash": "e8555139a467f6ce32c1dd2fd8fab77fadd52543f8bd0f041a4398da83af34e3" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.469Z", + "updatedAt": "2026-01-06T14:18:00.896Z", "postProcessHash": "edc217e5d5ecabf1a87cfc24212e220b46416d1b41edc5f456bf5222288614e5" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.481Z", + "updatedAt": "2026-01-06T14:18:00.907Z", "postProcessHash": "ff9033995549b9129425f0f17947776e738291fc7aa1969cd249a604824d3725" } } @@ -16319,15 +16641,15 @@ "990553ca9f9ae4591aaae11318ecec98a52d743479ad68505f33d7437ebdcfe5": { "6706062fa424eac816c221cf4a0ecb23afeca8ecbe3f4830da0cee49f3af5b55": { "jp": { - "updatedAt": "2025-12-29T16:46:16.483Z", + "updatedAt": "2026-01-06T14:18:00.909Z", "postProcessHash": "13d36e0e1213be99b34e4836a13e91c52b3fbfb7c2c6a28ca446df5b28317a74" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.489Z", + "updatedAt": "2026-01-06T14:18:00.911Z", "postProcessHash": "e48294ed7b5c0973c0e4e5b5b1e16b3cd080685fa3354d91a6c0a46d0b361a00" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.417Z", + "updatedAt": "2026-01-06T14:18:00.821Z", "postProcessHash": "e944510a2195248ae2cd61880d71b4e3ad5f1703c6ea8594df55ebd80aa02a20" } } @@ -16335,15 +16657,15 @@ "9b3d838535466c0adcbcf2c1821542686b5932d55c219ecd4c54a8d3d723b617": { "b968225991ebd30f1600f3ad485919d0badeecf3a3e60c5cb52b71a85c5611c6": { "jp": { - "updatedAt": "2025-12-29T16:46:16.491Z", + "updatedAt": "2026-01-06T14:18:00.912Z", "postProcessHash": "73338eb1300d9c0e58340b8b12c3b8fa73d79ae75ab65428054d59c600ae2e42" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.489Z", + "updatedAt": "2026-01-06T14:18:00.911Z", "postProcessHash": "06243742ef0121a58ccdd59f9ccd7829bdf98956e50d202ee6567102ac39d03d" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.488Z", + "updatedAt": "2026-01-06T14:18:00.910Z", "postProcessHash": "39afe0d0a47207b615c72fb01a44b079982234b7d2c5ef927ef61c5a84af37c5" } } @@ -16365,15 +16687,15 @@ }, "c3c60d781f027a81dfb44df829edfad23d6cf2bb45ad6bccbb4d44127b587d2b": { "jp": { - "updatedAt": "2025-12-29T16:46:16.533Z", + "updatedAt": "2026-01-06T14:18:00.924Z", "postProcessHash": "d052541722740678a2991231e6c10967d455bdc98b0271d3f3c4ece40b7ccda1" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.534Z", + "updatedAt": "2026-01-06T14:18:00.924Z", "postProcessHash": "06c8e6cbed0b4bf1f77ef4dbe6ae270356c8814610055b3920243ea79a675615" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.535Z", + "updatedAt": "2026-01-06T14:18:00.926Z", "postProcessHash": "ad5fd4a1aa05ee096960404ea4e5e9f49ba985e432a70e0302d95b18a0e58548" } } @@ -16381,15 +16703,15 @@ "11aa99a1bdc8390230a974032f545ad7fc914b9d7d7512e6f3d523c3c3315925": { "25ab99f304def64235d114ed61495f4a871f63a473b431f04505d22d84acd92b": { "ru": { - "updatedAt": "2025-12-29T16:46:16.437Z", + "updatedAt": "2026-01-06T14:18:00.895Z", "postProcessHash": "430c4f15b5e5073ed917d8abba4e67807a4b440bd49ae3b602b4f72c832c2854" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.427Z", + "updatedAt": "2026-01-06T14:18:00.834Z", "postProcessHash": "fd1e659a846261116f023482475ca1a391d5993b6f88388f1f61d31c6b0b4cf3" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.479Z", + "updatedAt": "2026-01-06T14:18:00.905Z", "postProcessHash": "33d19fab8a84ba3431d0aef89d031a141b680ca236472145db9033aef5e623b4" } } @@ -16397,15 +16719,15 @@ "15a59bf1722e4b12c28df70766e0baab4b9d5a6f0a0473fcdaa0c562dee3986b": { "38c435040eaac3147a4b165e8f2e2eea100525b71769ee62c7de7604c2c7decd": { "ru": { - "updatedAt": "2025-12-29T16:46:16.435Z", + "updatedAt": "2026-01-06T14:18:00.891Z", "postProcessHash": "323a2c30522200c58a42ee5230872ccda1bed0100958afea2fc5ab5d93fda6ff" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.421Z", + "updatedAt": "2026-01-06T14:18:00.827Z", "postProcessHash": "43b001c7934a5faa3df729bb78ac46224b130f34b51f3fab6cf9fab0eca43a3c" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.427Z", + "updatedAt": "2026-01-06T14:18:00.835Z", "postProcessHash": "bd9103f69cae589332f4ae0ac6490797779cdb7f44e9620a6a1f6ce27e8669ab" } } @@ -16427,15 +16749,15 @@ }, "4632eda4cf5d3e94788aef34b88f54b7abb48e1c95f0c22450b4730dd5f1845f": { "ru": { - "updatedAt": "2025-12-29T16:46:16.527Z", + "updatedAt": "2026-01-06T14:18:00.916Z", "postProcessHash": "4dc79042d26a7554acfdf843d67a84270ba972101f15255c6bf6fd90fdf35e76" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.528Z", + "updatedAt": "2026-01-06T14:18:00.917Z", "postProcessHash": "4b3a039f051486dd96b50e99cfc8511943555a97d334507a6592cd8aa7905bee" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.531Z", + "updatedAt": "2026-01-06T14:18:00.921Z", "postProcessHash": "1984081d79f8fdc5a36cd37c971f0cb80513d3beff49a54ba7d4e3634f4609ba" } } @@ -16443,15 +16765,15 @@ "e843b874a573838613448a25478fe1be3cfe8e1a5c23c7d816af626567769147": { "8cb205aa323de3c2fa63f58b08365d61b559f9ba1b8554ec982b293d9a83f80b": { "ru": { - "updatedAt": "2025-12-29T16:46:16.429Z", + "updatedAt": "2026-01-06T14:18:00.837Z", "postProcessHash": "48ad8f5d8403dc31a6d4ccc8fbb8ea08919226e7675b20a115055d91cec55bcc" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.435Z", + "updatedAt": "2026-01-06T14:18:00.893Z", "postProcessHash": "94aa6010d239f11cd1ad2bdd9a9a86621af8502a5a04e9f903d107bd9992e90e" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.436Z", + "updatedAt": "2026-01-06T14:18:00.893Z", "postProcessHash": "8a8a81782fc3997a46d3806df5ecfe981189702dc2f6922a451b2b9a21196484" } } @@ -16459,15 +16781,15 @@ "3177435d774099d4ba686628bc971ccc42a54d0a0a211c8a4424bbc544e08540": { "f15d74887e89dbc77f9957e1568c4842460915108734894efa6e2f081275d68b": { "jp": { - "updatedAt": "2025-12-29T16:46:13.320Z", + "updatedAt": "2026-01-06T14:17:56.315Z", "postProcessHash": "dd71f578d9df84661571b80bca5395e9f12f766763975bf802b712756a87313c" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.315Z", + "updatedAt": "2026-01-06T14:17:56.309Z", "postProcessHash": "9e2561ce5358c26ec9269ce12757b02a9fe08f36b88aa5c0088c7f58c3d220bd" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.319Z", + "updatedAt": "2026-01-06T14:17:56.314Z", "postProcessHash": "0fc5f392b8bf53f1108896c0e4530cfc2fcd583627a4ba694191e54311b480d5" } } @@ -16475,15 +16797,15 @@ "3caedd95aefa51553be1069772560367e021728814e3e4cb4e732e19460e0502": { "c808220f60eb5bb176af1e26539836830b9934b93a9bc1e1e62fd9b90ce36bc8": { "jp": { - "updatedAt": "2025-12-29T16:46:13.728Z", + "updatedAt": "2026-01-06T14:17:56.865Z", "postProcessHash": "8796decbab36ba86e3d455752eb407cab50c8943a1c8d76e1457a968eaf33619" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.727Z", + "updatedAt": "2026-01-06T14:17:56.864Z", "postProcessHash": "85e8a2f621193188677a6ee481e6168072463ae255b466afc81bb4ba3c3e4859" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.727Z", + "updatedAt": "2026-01-06T14:17:56.863Z", "postProcessHash": "4b3706d368083b37f401174becb9ac2ef3c94d37bbd26d564bdb1075baaa4b4f" } } @@ -16491,15 +16813,15 @@ "853246cca55f655f764269048050edb509e178c1ed6b34530b7a3aae600ec2b8": { "0a1abce96f2027f1611f7096e0422a02de923c3698460cb2c242ae3092e25c81": { "zh": { - "updatedAt": "2025-12-29T16:46:13.687Z", + "updatedAt": "2026-01-06T14:17:56.795Z", "postProcessHash": "e8b5fd322f7b429948f73087023d5e5b3076f16a39ca914d6438260062130a55" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.721Z", + "updatedAt": "2026-01-06T14:17:56.848Z", "postProcessHash": "5a08d8f32df5112fc6695a64a3d358349fc989650bfa949ca45342b0147b2b22" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.723Z", + "updatedAt": "2026-01-06T14:17:56.852Z", "postProcessHash": "0e563c9a1a564226c8cb68c731d874e577301fdd3030f036c34f85fba07d538c" } } @@ -16507,15 +16829,15 @@ "a030bf426b6662b4674be21ff621cb7fabbfd26f971ddb89ac770557065aa0cc": { "f732d015e8ca7a50761bad6c4404360438b7df18567a96df59faad98662b6017": { "jp": { - "updatedAt": "2025-12-29T16:46:13.722Z", + "updatedAt": "2026-01-06T14:17:56.850Z", "postProcessHash": "7517b19570b6999dd50ead4d040a8a1c6288754a5eb9aec94cdb2b143b4f68a4" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.793Z", + "updatedAt": "2026-01-06T14:17:56.963Z", "postProcessHash": "ffce358a94485570f0367847577bf65176a77f4ce3386865d3718f0e810b603d" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.687Z", + "updatedAt": "2026-01-06T14:17:56.794Z", "postProcessHash": "2cff0f21de21ed5667353cd6094ce9fc8894767ce538ab89a0dc566f900f604e" } } @@ -16523,15 +16845,15 @@ "06c88066bda47d4a934bcdcd6f121c4c1e22b06d73242fdfb1ab310a2564cf7a": { "f10ca14dce06ec46cdd4e21bcf3783e50fb8f8e2c7873cc6b828db0e89c91024": { "jp": { - "updatedAt": "2025-12-29T16:46:13.725Z", + "updatedAt": "2026-01-06T14:17:56.862Z", "postProcessHash": "1a58efa7edd8faa60a32390b83cc24c14089a0b78231535d54e979fb8ec12d96" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.779Z", + "updatedAt": "2026-01-06T14:17:56.933Z", "postProcessHash": "dbcd2db59d7d031a18b9063991ce70c737f891cddbe730be0a7f4ef387f3d304" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.778Z", + "updatedAt": "2026-01-06T14:17:56.932Z", "postProcessHash": "87b534d4cae4f6a8ba9873cbdad25a8580f7408da93ca0f6d2328fc1d8fc1449" } } @@ -16550,15 +16872,15 @@ }, "fd960e0ad4a4e719414c642095987287a615859dcdfe78dc5e4ade0ad15a3dc3": { "ru": { - "updatedAt": "2025-12-29T16:46:13.796Z", + "updatedAt": "2026-01-06T14:17:56.966Z", "postProcessHash": "3e0bde9ac88d8e43f6a7929ea3c37d96e40ab1728d35c3798a059c6daa4cd48f" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.861Z", + "updatedAt": "2026-01-06T14:17:57.018Z", "postProcessHash": "4d23e5e440fce2a86078ff4c9d14a6b70f98ce6e08b54bbc33d2b746c0303842" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.795Z", + "updatedAt": "2026-01-06T14:17:56.965Z", "postProcessHash": "afdbeb124bc74c011981795bf4b5c979fceaf405ab94a4637a2730d0ad89f9bd" } } @@ -16566,15 +16888,15 @@ "48bd4337b75cd02afdef9e5066ef37aa097bb2376a0997cda1862ec2672e0bb6": { "c01428e3868677f56a7361089108618d1aa1b3f64f9d078f8a9dd079aeceadf1": { "jp": { - "updatedAt": "2025-12-29T16:46:13.782Z", + "updatedAt": "2026-01-06T14:17:56.936Z", "postProcessHash": "9ff2b7e23da72e50665efb6f24979712943a44bd4ddb6a604f866d7eff952806" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.780Z", + "updatedAt": "2026-01-06T14:17:56.934Z", "postProcessHash": "d13286ad7d148e138a1b2bd3a012685f7a46c9d840372a25b020354d21b8fc20" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.783Z", + "updatedAt": "2026-01-06T14:17:56.938Z", "postProcessHash": "e27ce8faf50c6f8a037e6508d0217c79949576f5113f69fd9d15f9160085608f" } } @@ -16582,15 +16904,15 @@ "4a871b3501c8910734e45bfd046fb170eead507a557e7fc029a9720169d74f60": { "a1bfd48d5bf528dd7d49ff5929721a27fac3e265e20a187bfe5603465299248f": { "jp": { - "updatedAt": "2025-12-29T16:46:13.723Z", + "updatedAt": "2026-01-06T14:17:56.854Z", "postProcessHash": "51e0a8458fe2c6a009deef34a9dd719ea24d2e6ff40b85b6b62d265b663f3474" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.724Z", + "updatedAt": "2026-01-06T14:17:56.859Z", "postProcessHash": "142485fc8821a2470e70984bc78b7a82722c88c1ed02d3280019490ebf8f9c37" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.720Z", + "updatedAt": "2026-01-06T14:17:56.846Z", "postProcessHash": "b06064b477d9960dce879530623472632c5143c1e32a5674557700c1390c25d4" } } @@ -16598,15 +16920,15 @@ "50f0ba5685aaf3e9d2d05dffeeaa45f47b7ed622dc20465bd6aa71e7192a1a6f": { "430792450e0e247081db5645bfe27bcdf7c5efb4c46fb798c742aecf01bea55d": { "jp": { - "updatedAt": "2025-12-29T16:46:13.715Z", + "updatedAt": "2026-01-06T14:17:56.836Z", "postProcessHash": "84cdea7d06ae59f48d3278ecb8170fb4d5660eff15718d8d35333970f77de7b7" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.725Z", + "updatedAt": "2026-01-06T14:17:56.861Z", "postProcessHash": "520024e8556f853641e4cb6b761c2ae78b487c2c8797415b184d1770e1a9b85e" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.722Z", + "updatedAt": "2026-01-06T14:17:56.849Z", "postProcessHash": "8fd63c717473529c1807bf9203e07784428eedd44d4945fcde1365d53bfac19c" } } @@ -16614,15 +16936,15 @@ "5929e4805377229948887e5ba720274840b70d5c8448deadfee3a33803c24777": { "4923fea66c23915a7ee88662e5a25bc88b6e63399b5f8007edd0a604f6ff29e9": { "jp": { - "updatedAt": "2025-12-29T16:46:13.716Z", + "updatedAt": "2026-01-06T14:17:56.837Z", "postProcessHash": "e50c2665cf797ac88af43503c41ef01a299088da95fb349a53949fae9f78f227" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.713Z", + "updatedAt": "2026-01-06T14:17:56.834Z", "postProcessHash": "fcff0df48ef8cbf1f8cf30e449ce3986aa1828ce541c6442b576c3b3f749f747" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.718Z", + "updatedAt": "2026-01-06T14:17:56.840Z", "postProcessHash": "4ec0025495c157bca7990bb35e56a4fc68fb47d87800eb829de780c5dd713213" } } @@ -16630,15 +16952,15 @@ "7f4f10424fd5d15211a9b2e7f5376cd61876478ca1e288c42f77a9d27815ed3b": { "49a85cf8c399228a66495a6ff70df4eb90e968fc2a6386b6d0c3a47d1c6934c0": { "jp": { - "updatedAt": "2025-12-29T16:46:13.791Z", + "updatedAt": "2026-01-06T14:17:56.961Z", "postProcessHash": "184e4020c4169ce339375239ce80e26ffed7122dde03887f80be5badcf02b2de" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.786Z", + "updatedAt": "2026-01-06T14:17:56.941Z", "postProcessHash": "9a295bfd9a09500c69c8d7222d5bf0968ac9ef5ed54b2d856fa528a797db9e22" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.786Z", + "updatedAt": "2026-01-06T14:17:56.941Z", "postProcessHash": "daf86e1662f3b1d5e4c267dfc4f7e9107bcaadab019c02eb2f3128f8eb5ca24d" } } @@ -16646,15 +16968,15 @@ "8fac3eeff35b863ef1c1a857ec5cc7ec6c5e04a3ba1b53c0613d799e0ab40033": { "cff3cef9c9971227c006470a36ab779082e9292add9a0d6480da3c2873a882cb": { "jp": { - "updatedAt": "2025-12-29T16:46:13.718Z", + "updatedAt": "2026-01-06T14:17:56.841Z", "postProcessHash": "31298791f8653adb81dc0964705b1bedfb1ae4edc334fcd4507bed24682494bb" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.717Z", + "updatedAt": "2026-01-06T14:17:56.838Z", "postProcessHash": "34cb122e0d0ae04ca4742a7f92ea07a3fd122cfb77a453352fa3c3b70554ad32" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.726Z", + "updatedAt": "2026-01-06T14:17:56.862Z", "postProcessHash": "90ce8c109cf2713bb988907738f5284ba86da3651820afe446251ae5832c8e08" } } @@ -16673,15 +16995,15 @@ }, "ffc6e2c25867e91947ebe1d8e03113d4066168fa2d6eeb0262027942d80e056b": { "ru": { - "updatedAt": "2025-12-29T16:46:13.688Z", + "updatedAt": "2026-01-06T14:17:56.797Z", "postProcessHash": "86e6fc36029e955857d3be10a2fb17fcc0f6999b67cecf5f8a7b1e10ede29a88" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.793Z", + "updatedAt": "2026-01-06T14:17:56.962Z", "postProcessHash": "e656dc66a59e62f6b0d43ec9b7869777372fdabc7ee1c34a6f2a916a1dbb5ad3" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.689Z", + "updatedAt": "2026-01-06T14:17:56.798Z", "postProcessHash": "32716b07c0d365c55cb331fab686870b8315c33f34ff3b9b72d1d0484a36fe82" } } @@ -16689,15 +17011,15 @@ "d15bbab335414d4d8b8963bf84d8e6840415a3fc839c797f41e13afb347c0e66": { "7eff53190c5a3759339978f7f7f8df28a9281bca9df3218c5f48b98aefdb5e9b": { "jp": { - "updatedAt": "2025-12-29T16:46:13.720Z", + "updatedAt": "2026-01-06T14:17:56.845Z", "postProcessHash": "7f054dedbc40d52563247297566ab09817332197edd3aac18b4f76d230aedd3e" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.717Z", + "updatedAt": "2026-01-06T14:17:56.838Z", "postProcessHash": "00165eb2c6bf794bcf465d2a301f830cf43d64e01a8aafa22cf8743813c09b53" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.719Z", + "updatedAt": "2026-01-06T14:17:56.843Z", "postProcessHash": "04b8f497d5c9a626c981a5869ee7321cbac06429949da2371dd53041bc5e8e42" } } @@ -16705,15 +17027,15 @@ "e524f82a69f9ba0c9ca77d93ce6f9a713d13f108480d3945dba1962f5772ee46": { "fbd98a73453eb2fe0d0b40e9e69f2c6435180be06375fe9f19e1bb909573407f": { "jp": { - "updatedAt": "2025-12-29T16:46:13.719Z", + "updatedAt": "2026-01-06T14:17:56.844Z", "postProcessHash": "e34913504c59d9d00453d522dc9e285a4762384fc9e7d314d031a54976d54967" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.714Z", + "updatedAt": "2026-01-06T14:17:56.835Z", "postProcessHash": "130ce3ac785e32658b9454bfeedd103bc67c5a1dccaf50b870364b9032207920" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.715Z", + "updatedAt": "2026-01-06T14:17:56.836Z", "postProcessHash": "5a3bdd74597e1936ca9090bd1990f11c00219d5aafc669ad88fd0eacc95c6874" } } @@ -16746,15 +17068,15 @@ }, "8249057761c81ed0246f2d344a88e299a69d3d4d6d4c5c973c956d38c5db801d": { "zh": { - "updatedAt": "2025-12-29T16:46:13.819Z", + "updatedAt": "2026-01-06T14:17:56.982Z", "postProcessHash": "c67c5e551179b49140c42faf1149a1b595f06315a5dfbbb122ee4e67617bbb6c" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.820Z", + "updatedAt": "2026-01-06T14:17:56.983Z", "postProcessHash": "a4243f44130e727d165a4b5a5e721d49b4bf5095234d1ad223e3a94ba224169a" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.850Z", + "updatedAt": "2026-01-06T14:17:56.984Z", "postProcessHash": "9661d9f46a2234e76a2db7ad2bbba989c33369917c23dfc5b1ae3ce4a48a51c0" } } @@ -16762,15 +17084,15 @@ "e9001fe7adae3ee521c4e8d3e207693d2c40ab3153b629428457ad95a126e11f": { "c925c5d3c0431c9ee3487e60721536bea2826b1bda255f0e4e9add7b81f2f4d6": { "jp": { - "updatedAt": "2025-12-29T16:46:13.794Z", + "updatedAt": "2026-01-06T14:17:56.964Z", "postProcessHash": "5ab560c10ed18615d03091f13219d0bfc6bb0e86abf14df5ec04a43cb02ea110" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.777Z", + "updatedAt": "2026-01-06T14:17:56.930Z", "postProcessHash": "12e2a94017300a31ed02ec9fe4321a2a463a798411c87490ddeecc764e4138d2" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.776Z", + "updatedAt": "2026-01-06T14:17:56.929Z", "postProcessHash": "034d210ad3d995d2d075b26f187bb2e46f1e6fdfc31fa74ad0527e5443f3f197" } } @@ -16961,15 +17283,15 @@ }, "c595c5a0cea8c934052a118eaf57ca11679fc6d702ae201fe9fafad03d8e7502": { "ru": { - "updatedAt": "2025-12-29T16:46:13.816Z", + "updatedAt": "2026-01-06T14:17:56.979Z", "postProcessHash": "264124f4611a2ed25bcad2fda7d2bb96620cd9706f83289f93da1441e41f1f53" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.817Z", + "updatedAt": "2026-01-06T14:17:56.981Z", "postProcessHash": "8c7e968917ba47329ed176ae3a8b61d0c40424db540e7653d7fa39948616c8c7" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.818Z", + "updatedAt": "2026-01-06T14:17:56.982Z", "postProcessHash": "37102316a64902aa3adcfa1dd9e7818070830e7fd2b4dc3db7172a36bb3e132a" } } @@ -17009,15 +17331,15 @@ "d1dee74d727375041e64ceadd78df956b10784ab7e1b4ac16460115a7e9d4ef8": { "469305bed4de1b5eb391960ebef6f0f5096cd86b537e42c0f37ee9f35e087a4c": { "jp": { - "updatedAt": "2025-12-29T16:46:13.770Z", + "updatedAt": "2026-01-06T14:17:56.924Z", "postProcessHash": "32603e9abfde539ff3dbb3dcd3ba8ac87b5f5e0f65c1d777cf2172526dcbdcb8" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.769Z", + "updatedAt": "2026-01-06T14:17:56.921Z", "postProcessHash": "0873de98dafe03bd79551c6738857a36ad3f0f75c55ce7e3d9b893418326e4d9" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.769Z", + "updatedAt": "2026-01-06T14:17:56.923Z", "postProcessHash": "62c9b82d42ffebf9b7cec9adc60515e2493f2828c71b562f4cdf51b4ae2897c9" } } @@ -17069,15 +17391,15 @@ }, "0e2b046bcd80ebfeefcede9f87aaa2e48aa2f0309f625c29620fa1f62d6763c3": { "jp": { - "updatedAt": "2025-12-29T16:46:13.800Z", + "updatedAt": "2026-01-06T14:17:56.969Z", "postProcessHash": "4932790063c7cbff84b6cd3337385609901c4506cb8f3ece5d9e1e2ad9aca0c4" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.802Z", + "updatedAt": "2026-01-06T14:17:56.970Z", "postProcessHash": "b18b4b700779a48dd7afab4ed4fb6858ec795a58388bf3e0f6b3233fbbc49f4d" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.803Z", + "updatedAt": "2026-01-06T14:17:56.971Z", "postProcessHash": "3b2e9e11e77a99d8295f4acf97c1f65e6b90545b85d0d43f0890f843abd5729b" } } @@ -17117,15 +17439,15 @@ "fc2a90cf202e8e1844cfa26c61201f10a6c234df6585fc1c8aff86d125238563": { "5680229b7edd18b624f3a4822177aadd2e3930de72a0edd50a0d2924b785a146": { "jp": { - "updatedAt": "2025-12-29T16:46:13.787Z", + "updatedAt": "2026-01-06T14:17:56.944Z", "postProcessHash": "e40971523a41fd1746fbc266b0d49efba90a7d2bfed322c52691476758afe704" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.784Z", + "updatedAt": "2026-01-06T14:17:56.940Z", "postProcessHash": "aa8ec5e7391f06ddb426851aaeac9bbc1dfba66f1fd07b9ad7f3eb0ed130826f" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.790Z", + "updatedAt": "2026-01-06T14:17:56.960Z", "postProcessHash": "36992b2d14bac7a3e9950ab16524b4e6d0948c5d3335a693e93a064cc0edb7ba" } } @@ -17133,15 +17455,15 @@ "1646d3380fb5c92ec41482a9d98b525c37462130d6b01f32e1855b0e5f91c39e": { "ee6d9f1af26926d6377c040c2405ae576469664c532845e1d506079f9a027314": { "jp": { - "updatedAt": "2025-12-29T16:46:13.904Z", + "updatedAt": "2026-01-06T14:17:57.084Z", "postProcessHash": "3cd9564f93929f9f9e53661082227b2f8dd7e1a308dc761bfef3aa374bf22073" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.902Z", + "updatedAt": "2026-01-06T14:17:57.082Z", "postProcessHash": "db3da653aceb91fbd5cd9fe15efbabad6beec429685b767829e0df442057eced" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.906Z", + "updatedAt": "2026-01-06T14:17:57.086Z", "postProcessHash": "f2739b13c7d2c01e9fb03504146ed30901b2d231814c69973dd7fc8823356f5a" } } @@ -17149,15 +17471,15 @@ "1ca8dfc5de116b6a2aecfd00677ce016075dee9e46cc6f57c85776d3ea9b3bd5": { "e84e0b80c498c3151e15f60e104f2cb38c6e40319081435e228dbfd13acf010e": { "jp": { - "updatedAt": "2025-12-29T16:46:13.777Z", + "updatedAt": "2026-01-06T14:17:56.931Z", "postProcessHash": "524f3b14f5f1b1077ee5f36835ce25929439b048d582d99f653541098d0df3c6" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.772Z", + "updatedAt": "2026-01-06T14:17:56.925Z", "postProcessHash": "d40ee2981bf311256964d4caf6f73800cd1f1efb91d57bf6a3d1778e04cc9e6b" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.780Z", + "updatedAt": "2026-01-06T14:17:56.935Z", "postProcessHash": "eeb9f2b7c2feaeb28ad8ca95f200bb4486dbfeb66fef4499cdf13e5fb123d2b0" } } @@ -17165,15 +17487,15 @@ "1d1e36aa27a61854f94b1f60418f1a1d666d53319de3e83255d9388fcdfb4069": { "a0e30e85a93f908ea864b663f52f1dfce2a0d6a87372b01c7bf971316d114876": { "jp": { - "updatedAt": "2025-12-29T16:46:13.913Z", + "updatedAt": "2026-01-06T14:17:57.094Z", "postProcessHash": "04047bd2159c019e594318463a01bb92061f631eee6579cf8bcea05ee7b848dc" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.909Z", + "updatedAt": "2026-01-06T14:17:57.089Z", "postProcessHash": "3f1979f3bafcce587d9094d5710776a858fb415674ad88b9f42f17314e350a97" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.899Z", + "updatedAt": "2026-01-06T14:17:57.078Z", "postProcessHash": "4081be5dd96b98dc3cc08002dc95f7b4a36bb50ea10590545833125c10e36b18" } } @@ -17203,15 +17525,15 @@ }, "e73593ac8091e2275dd3b89189a683806e63bec8a294b91cf59c5af40e70da83": { "zh": { - "updatedAt": "2025-12-29T16:46:13.750Z", + "updatedAt": "2026-01-06T14:17:56.898Z", "postProcessHash": "e5c8064f09a6e57c19e741d5a986920433e64906deeb3651e53a4b044e845575" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.923Z", + "updatedAt": "2026-01-06T14:17:57.106Z", "postProcessHash": "545f827c8b39cfc9c1b494faa9060e4f868aaf95dee06f16f69502259e25e35f" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.919Z", + "updatedAt": "2026-01-06T14:17:57.101Z", "postProcessHash": "c366ef18043dd6769e6b46e55925bf15e2418044874a89eb6ad0e8fe66933eac" } } @@ -17233,15 +17555,15 @@ }, "b8fb583abcf426d3a4474998f012095915ead7b730574ea7fa0c9d93cbee8dd7": { "zh": { - "updatedAt": "2025-12-29T16:46:13.861Z", + "updatedAt": "2026-01-06T14:17:57.021Z", "postProcessHash": "02b012d7235a50daa50d02bf1ce968cc5733f66eeee1fa379cc8f28480b2e972" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.862Z", + "updatedAt": "2026-01-06T14:17:57.023Z", "postProcessHash": "70d7668a75b09ecc38ea09cea4019209c67c284f0d11c8ea07e4d84dc25e3e69" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.863Z", + "updatedAt": "2026-01-06T14:17:57.024Z", "postProcessHash": "bd70444c7cdc2a34fb468bf2a35785bff5799de77642a75c779e3b5b81c79725" } } @@ -17249,15 +17571,15 @@ "509c73a63f9d009e86d97956ae4e1701003ed2be70dd32b5c56c66bd65c22609": { "c01d58d811ef80a75a56846d05c7b54259075a78eb6a2deb665f4405f861a7e2": { "jp": { - "updatedAt": "2025-12-29T16:46:13.902Z", + "updatedAt": "2026-01-06T14:17:57.081Z", "postProcessHash": "75fb4840e26cb5d7199604998c3376b1b7f8106ceb766d41e3def0db881e2ef8" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.909Z", + "updatedAt": "2026-01-06T14:17:57.088Z", "postProcessHash": "827b865c8161983df7961751cb70afc5f376a6323a433ab5c2ce9686ad6003f3" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.903Z", + "updatedAt": "2026-01-06T14:17:57.083Z", "postProcessHash": "bb9d2c48895c3db64be46fa1ad1ee71c45c18239a259c53bfe56a95ef416802c" } } @@ -17265,15 +17587,15 @@ "5bd267d7d3d49be2e95b491604023a269bf78bee49b4a83eefa9352690913107": { "9e71d3c2fa185cdf2d0231b06c410ed213fa00b972cdbfefe21a9aa8916bf03a": { "jp": { - "updatedAt": "2025-12-29T16:46:13.907Z", + "updatedAt": "2026-01-06T14:17:57.087Z", "postProcessHash": "8e7d5a4b16918d845db9743bf10cf8ccc7b613dad6eb65fb4b8fd4a4cafa3b2a" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.906Z", + "updatedAt": "2026-01-06T14:17:57.085Z", "postProcessHash": "3be67c5f68fd402a5753142f7e65034bc70949a0ea231ed10a6f9b334e8e09c4" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.911Z", + "updatedAt": "2026-01-06T14:17:57.091Z", "postProcessHash": "11607c3ce0ba14a339ad23de58758591f9701a84c6eaeaa4aec6d9c5ec1946e9" } } @@ -17281,15 +17603,15 @@ "66dafb9b646deaa517a7b992eec446570c152c02802db14e18047fc0fba7a0b1": { "f246fb415a6d823d2e1229aaf83e9eb73611213283605b91a0a23a1dbad24f50": { "jp": { - "updatedAt": "2025-12-29T16:46:13.905Z", + "updatedAt": "2026-01-06T14:17:57.085Z", "postProcessHash": "452d13e6a1c161a9a66de42797062a81da272025534b7efc8642eedeb11f0e6f" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.905Z", + "updatedAt": "2026-01-06T14:17:57.084Z", "postProcessHash": "b5bec1ed0f0616ccd4acfe250cac7b1f176c45be28851a4f30dbb65be7fff3d6" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.898Z", + "updatedAt": "2026-01-06T14:17:57.077Z", "postProcessHash": "22c2ff77d64151ec71da4791a540260a62ec1647236dbab90c1be6a68fa3821d" } } @@ -17297,15 +17619,15 @@ "7d4c81a663e077a5e75150c0e14d27c4ec51b540adb7aed379113d299f3c76bf": { "9a1b6a07af2168ede1ef0940be49f9f7462ec53241267251f36458e33a1bd688": { "zh": { - "updatedAt": "2025-12-29T16:46:13.895Z", + "updatedAt": "2026-01-06T14:17:57.071Z", "postProcessHash": "35c614e52366c7a4939007c7c49f0b8cfefb2d0e33d9576bcdc283a33e5d7661" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.896Z", + "updatedAt": "2026-01-06T14:17:57.073Z", "postProcessHash": "4c47ffc3b29706b927be9489648055d57cf2b5bbfc88faa4180b0f9187c50866" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.892Z", + "updatedAt": "2026-01-06T14:17:57.067Z", "postProcessHash": "e91e58d572194c88faeb1d6d09a8733250ef9d6005e65c4a94851238f89fc608" } } @@ -17313,15 +17635,15 @@ "8b2242e50cc879742f4d4efca957625a1106cb09f45a18de469646abc82467e7": { "343ceb09449e64360e7e7fca397cfc927ac8e348304b9893b3946e0ca65d8fae": { "jp": { - "updatedAt": "2025-12-29T16:46:13.908Z", + "updatedAt": "2026-01-06T14:17:57.087Z", "postProcessHash": "a144eeecafb635d16ff531493f38c135d7ab5f33f56ecba370d6f3b1229a75e6" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.775Z", + "updatedAt": "2026-01-06T14:17:56.928Z", "postProcessHash": "5670a7f4550b74c3aa70bc13d2c97e50cbcfaf776973bc05ffa6e984f6a8c7c9" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.781Z", + "updatedAt": "2026-01-06T14:17:56.935Z", "postProcessHash": "27bb5ef3857f9446828c312a7d9df1f183b8999f14cd84d8f4ef1e0dbd02a354" } } @@ -17329,15 +17651,15 @@ "c02bec6d7a15ddb4727d64f0c82f001b4a6994e6095794f3b35c713c1c69cd75": { "f05e5879650490f810241a7e1f46402021938daaf4688d3368c183eeb6dd5b65": { "jp": { - "updatedAt": "2025-12-29T16:46:13.897Z", + "updatedAt": "2026-01-06T14:17:57.075Z", "postProcessHash": "94d44c50f60257365d4d34e7709f956aed61f68a56523c1978094434aa2ecd91" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.894Z", + "updatedAt": "2026-01-06T14:17:57.069Z", "postProcessHash": "42d223ada368857715cb4d25b5873acd1d8236a449f79fe209fd893c52cc8718" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.900Z", + "updatedAt": "2026-01-06T14:17:57.078Z", "postProcessHash": "e31ca8f89e139864b297fd82e2e8d923fdb536fc9d470e30fddfab235815d25e" } } @@ -17345,15 +17667,15 @@ "c35a4c218452080886d36470ffc05c5a0554e095f00432e0d7735900c7ad9435": { "9e5d4bd1e5379d30156d61671b947abb64b0c0e6ce551d838d6da2c7907d2ff3": { "jp": { - "updatedAt": "2025-12-29T16:46:13.901Z", + "updatedAt": "2026-01-06T14:17:57.079Z", "postProcessHash": "54a2f92406a9b4374c14312b2276a533cd4f5d344fdb02f14da4f5d9bd6b2241" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.891Z", + "updatedAt": "2026-01-06T14:17:57.066Z", "postProcessHash": "bdcf0dccc560a3518d729d39784f91e5a6e035cb7fd4c4dd06e73c7d3b35fb33" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.898Z", + "updatedAt": "2026-01-06T14:17:57.076Z", "postProcessHash": "2d040557545d069d5be6e14e76f9bce8e556222d423fd0700896e6e46530a448" } } @@ -17372,6 +17694,20 @@ "updatedAt": "2025-12-29T16:46:13.775Z", "postProcessHash": "a572a478c5d5764d5e45f002e3bb77821ecac441f393adf01b5e8447f4cd6047" } + }, + "99e2f846d77de74bb239ca9cdf88dd81e23de88aaefb978b6271f90450653b9c": { + "zh": { + "updatedAt": "2026-01-06T14:17:56.998Z", + "postProcessHash": "bc7fcbb48af6ae65bdaa3afa46776a5b9043670e54f4df97814a6962a2cc3952" + }, + "ru": { + "updatedAt": "2026-01-06T14:17:56.999Z", + "postProcessHash": "c69b868e1259612274437e7092b6123c12f9d0b8c006aa44a0529d2f00b72152" + }, + "jp": { + "updatedAt": "2026-01-06T14:17:57.000Z", + "postProcessHash": "ef99ff981ea18019753c8e219e852f2355ff727b8c50c2ad3a26f28ef2365130" + } } }, "cfcb90141d0b37458f1c2f25a8e506c7c2ceb4cb4e4c27f996e474f6e8c5b159": { @@ -17391,15 +17727,15 @@ }, "8dc09979b83996cf7270a50d2537171cb9284da8486fb2b9fe8bf72cae67652b": { "zh": { - "updatedAt": "2025-12-29T16:46:13.921Z", + "updatedAt": "2026-01-06T14:17:57.104Z", "postProcessHash": "10aa74f8e77e321a6f8eb8177f5f5f98bbbbf941b883224fd68dcefb4d366d15" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.921Z", + "updatedAt": "2026-01-06T14:17:57.105Z", "postProcessHash": "cf8b35ffc90cfc68c5795d47f10e24bccc26495032aecbda37f36b369169b409" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.922Z", + "updatedAt": "2026-01-06T14:17:57.105Z", "postProcessHash": "533002ab742a4f8a299f141d67f31c69ce17d950700ed7baa910d0fb6d2f07dd" } } @@ -17421,15 +17757,15 @@ }, "094bd6a73e5366667e9b7cb3b6a424d8a0ecb3eb8cbb79661c670785258b7d97": { "jp": { - "updatedAt": "2025-12-29T16:46:13.766Z", + "updatedAt": "2026-01-06T14:17:56.918Z", "postProcessHash": "95a77cd8524b404b533d0c70b8ae8dd9779cd8545603ef6217338f685d2470ec" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.766Z", + "updatedAt": "2026-01-06T14:17:56.919Z", "postProcessHash": "0c163a7acbd481e5069d84da96c2549a8cd4da4a8739028eba5540d08e78e148" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.767Z", + "updatedAt": "2026-01-06T14:17:56.920Z", "postProcessHash": "3bf77f9be3131c4781e7b3b0887a995921f9c6f13d2e7dac66db0e3329d76e11" } } @@ -17437,15 +17773,15 @@ "eac3b18e7887fa005afb72b037867082f68f247bb61d91f3260e28d28cb1e85a": { "d2aa320a8841951470c1da7b5a35b1b69bf507d11d9b795481a4e587ec4b7bdd": { "jp": { - "updatedAt": "2025-12-29T16:46:13.782Z", + "updatedAt": "2026-01-06T14:17:56.937Z", "postProcessHash": "4982a21a29405b79b47d6a380172c877b004a05241643b9192c715158719e5d9" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.773Z", + "updatedAt": "2026-01-06T14:17:56.926Z", "postProcessHash": "6b5c9b221957fac4ef8239c0f8dceba18a06711ca08893ed618dfa2f44ec7626" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.774Z", + "updatedAt": "2026-01-06T14:17:56.927Z", "postProcessHash": "df1dc8603f27e903752ad7b1ea093fed73668aba85ad1ba19761178db7a0ec11" } } @@ -17453,15 +17789,15 @@ "211a9e255fdac9865968252978823dbe623bf314b09a28779424fb52243ba37e": { "267373ee71eb85826ed3e41dfc0938bb71fbd6c83484df63fbdce933b1a28d1e": { "jp": { - "updatedAt": "2025-12-29T16:46:13.915Z", + "updatedAt": "2026-01-06T14:17:57.096Z", "postProcessHash": "f9b5b192fdcc280be9dbb9ed55948f5cae368a5ebd743a38e2a3a54d67494dcc" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.914Z", + "updatedAt": "2026-01-06T14:17:57.095Z", "postProcessHash": "3ccac402383cc5fa0b0e891acb83bc60eff38b1761a7f3a7287edb9a5a0d7120" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.917Z", + "updatedAt": "2026-01-06T14:17:57.099Z", "postProcessHash": "542cd364f1c030cc5e6fcd57eb0d3bedc531a0395cef3f7e3abccce956cbbc8c" } } @@ -17469,15 +17805,15 @@ "4ba1eac8610621c18306898ccbcb9d4eaf5521b4b230d99cc774ec22219c9a28": { "1aafbee1019940fc3e073990ae3817e08af6f7e2ec670ece7d26a194827351bb": { "jp": { - "updatedAt": "2025-12-29T16:46:13.896Z", + "updatedAt": "2026-01-06T14:17:57.073Z", "postProcessHash": "6d3449efac91033dd32fc88ed893dde985acb51de8799a9f3738fd9ee65fae8d" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.896Z", + "updatedAt": "2026-01-06T14:17:57.072Z", "postProcessHash": "7a33e7c9c658f1291a1e0fbf52e67bcba5373a24f7cedf800a5106e9aa8649dd" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.895Z", + "updatedAt": "2026-01-06T14:17:57.070Z", "postProcessHash": "b6cbbe9f23e9499168c94fe6ab435e7bbe3835b0d4ae9ffa92a2f227c94c7972" } } @@ -17510,15 +17846,15 @@ }, "c6603ac9937d5d5e31933e3c42a639ca004d5a34add1446394d9064bb64fc73e": { "zh": { - "updatedAt": "2025-12-29T16:46:13.923Z", + "updatedAt": "2026-01-06T14:17:57.107Z", "postProcessHash": "9989ad056d28682c7ce48edc8381b3df192c5f4350a5125f65aa277b71ac74fe" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.924Z", + "updatedAt": "2026-01-06T14:17:57.108Z", "postProcessHash": "fc6f51814a661d87e7df3cc1ec3dbe7093fb20a991be5a88e3655ed69dea9af1" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.925Z", + "updatedAt": "2026-01-06T14:17:57.108Z", "postProcessHash": "d4fcbca0e0eb840a4a4ae7b04bf214a8eb7eaa4760be4c16e59414cb333d84a5" } } @@ -17526,15 +17862,15 @@ "67ea1760ac764890c103f9795d76f618a583b0bbbe0d32ad38a77c020d119d40": { "9a32d6666fc830213628b9c378f0039bc1280491f729f8bb75dd81bd764f13e5": { "jp": { - "updatedAt": "2025-12-29T16:46:13.918Z", + "updatedAt": "2026-01-06T14:17:57.100Z", "postProcessHash": "e50fc7b3fe703907682ec664c5a0a64ad131829fd959b57c669b083cec57d0e5" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.916Z", + "updatedAt": "2026-01-06T14:17:57.097Z", "postProcessHash": "430bb3acf81178975b77122fb2a01efb6f5b46e485960b2ea253941320ed5a4a" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.917Z", + "updatedAt": "2026-01-06T14:17:57.098Z", "postProcessHash": "5b5895186f97b20c9fa72c02602be7343bdae51944f319f57523e5c0d268c910" } } @@ -17542,15 +17878,15 @@ "71b7871a9e60b8462bb9bc1ee2ff376b1641403aad826100b88e087426e5841f": { "3ad40142a5980106f0b667308b9b61cd075b9a565aa267c085988df32d9f9d20": { "jp": { - "updatedAt": "2025-12-29T16:46:13.911Z", + "updatedAt": "2026-01-06T14:17:57.091Z", "postProcessHash": "665848ac6abee3873a3328d547f9a4cb435362d80ba0052183b986346aa09406" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.912Z", + "updatedAt": "2026-01-06T14:17:57.093Z", "postProcessHash": "14828546eb38d25f30517793a054171ad3e0eacc8041c52790326953df343d19" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.908Z", + "updatedAt": "2026-01-06T14:17:57.088Z", "postProcessHash": "59c2b5fb6c7d42e28cad5575e24c120017512a12d59c3d2624806c409fcf9fe1" } } @@ -17558,15 +17894,15 @@ "a9dd86f5f7da605aa9337f714a106fa513a631fcf9a168aa7b4e9a3b7ccaa531": { "ea6fc6dcc9635bc1877901795f75089be17712230ae183401a7e6eeaa9cfcf78": { "jp": { - "updatedAt": "2025-12-29T16:46:13.913Z", + "updatedAt": "2026-01-06T14:17:57.093Z", "postProcessHash": "113fa3369921d52a6237371b71a586e3612bf94e1f430822f6237332145dfc34" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.912Z", + "updatedAt": "2026-01-06T14:17:57.092Z", "postProcessHash": "3643c461c3e93e4fcb57e6e774a9db110432c960867d5386baf8b8aeb7761853" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.910Z", + "updatedAt": "2026-01-06T14:17:57.090Z", "postProcessHash": "c0b514a291ed65edec996da0ae5c2147f87747135722c243d37c6b252eeed478" } } @@ -17574,15 +17910,15 @@ "b4b5cab881a02e5c4333f93e3149c6242284e0666d745952f3ccdc86593f7b52": { "112d13bcf3046cf70aa9ad7b11bd473fb40eb530504362a77d2a53dd8f9adac1": { "jp": { - "updatedAt": "2025-12-29T16:46:13.892Z", + "updatedAt": "2026-01-06T14:17:57.068Z", "postProcessHash": "385f087637b7541c5c174ec209ccdd0bcb0c2de109d6c6ec9b15d3efda97d15b" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.894Z", + "updatedAt": "2026-01-06T14:17:57.070Z", "postProcessHash": "c55eb2afa6c1d084d1ee2725110c8958902567088d2a127becfb2e46b357cdb6" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.897Z", + "updatedAt": "2026-01-06T14:17:57.074Z", "postProcessHash": "8820ca4e726b05a378d4d79899c770c42d1beea478570fdb19d2b594c838e555" } } @@ -17590,15 +17926,15 @@ "e21164b6c8802133bb1a3d2aafc3fd517ab74e6f8d293b7d293ae968782a8bd6": { "04d3d33fa3cda8a0df74a6fb806ee0f2d01d7cd25cf9f21c9e07d1830f9a9a6c": { "jp": { - "updatedAt": "2025-12-29T16:46:13.749Z", + "updatedAt": "2026-01-06T14:17:56.897Z", "postProcessHash": "a524efaf30ebec11ce29f375406b40f24a3866c50d41fc611864f46af39e3423" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.748Z", + "updatedAt": "2026-01-06T14:17:56.894Z", "postProcessHash": "e0ad533bf067ab7fbd30c01e533b73ae24c1a766e07584eca811fcd5f976079b" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.749Z", + "updatedAt": "2026-01-06T14:17:56.896Z", "postProcessHash": "aec2be3fa82fa040f39056af6b06678c3f9c997cac5052bfc67db7b9ae97f190" } } @@ -17606,15 +17942,15 @@ "f9aa45e8fc85d0cb2d4c76b0e287f8743a40e6d92257f98ad0691dbde7bc3a9e": { "4866f2bf5a753196ff65a8b94a288fa39116ec9e4deeb7ae77c0598af8d582d9": { "jp": { - "updatedAt": "2025-12-29T16:46:13.901Z", + "updatedAt": "2026-01-06T14:17:57.080Z", "postProcessHash": "8c6422e1872077a7a927e0da1f8eac09e648dc006f0da3d34a6f572879b9fe78" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.900Z", + "updatedAt": "2026-01-06T14:17:57.079Z", "postProcessHash": "91505f8ea4479a5ab7792f93a4d113b64c60ef80a974a2eea10734c68efc62d5" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.893Z", + "updatedAt": "2026-01-06T14:17:57.068Z", "postProcessHash": "7a748a661b3084e76eeab5cbcc9eb176235c66d5a4fcb787d4a98564c1088c32" } } @@ -17622,15 +17958,15 @@ "3e29eb5aca75381e4ec8ade4e6a0cf7d26b53d4a25cb26660ec2c44647941a73": { "c0bfc76e21aac5582f52b976b44aa4baf44b8f76caa3d562ec73e6e4ef161a92": { "jp": { - "updatedAt": "2025-12-29T16:46:14.111Z", + "updatedAt": "2026-01-06T14:17:57.275Z", "postProcessHash": "151bcadd4c923b9862325f9755823cdf859bc84eb95ea470313fb9f022da7c1e" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.118Z", + "updatedAt": "2026-01-06T14:17:57.293Z", "postProcessHash": "f04e068c52d88c2fb0795f73cf0a51b364c93d81c40b3eb8aec196099c746625" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.996Z", + "updatedAt": "2026-01-06T14:17:57.211Z", "postProcessHash": "79ed65cf20bd3d7d227ed95257b609076bb608941f5d29beae688b15945e751f" } } @@ -17638,15 +17974,15 @@ "4b875d4cf08501af46c9a0dc4af0b755918205b50ba44a03d48aab3f7f49ac54": { "658a06aa55917c46e77861ee9b9b9643be0049c255c7052d4f6ae6166e655b01": { "jp": { - "updatedAt": "2025-12-29T16:46:13.998Z", + "updatedAt": "2026-01-06T14:17:57.215Z", "postProcessHash": "69d32dddd32fad80576c63b57429ecca3a122b6c8009136c668dd9946aa770b6" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.110Z", + "updatedAt": "2026-01-06T14:17:57.354Z", "postProcessHash": "fc47ddd4cda9e7fc1901d0f088e327914edcea2e41fa383a95bd3611a9416eb3" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.001Z", + "updatedAt": "2026-01-06T14:17:57.219Z", "postProcessHash": "b824f32e760efa617a347035036762a9b00955e347aa387960eb67d1484fcad7" } } @@ -17654,15 +17990,15 @@ "50ddd976e3ab8042db7b5db277b40561a4de66f66d7343d572a7ddd20ad31bd7": { "0aacc185d8105f7e3ea27585dc11ab225da3bb6c1db23c8daa11af166d8e972a": { "jp": { - "updatedAt": "2025-12-29T16:46:13.998Z", + "updatedAt": "2026-01-06T14:17:57.214Z", "postProcessHash": "b71d9ccd1ce1610b5293d46685379f93a425ba1ebeb5af41a5680d40bbccdedb" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.997Z", + "updatedAt": "2026-01-06T14:17:57.214Z", "postProcessHash": "33c0479a1f1c832896a04c9812ef67922b556fd970fa1e5619dcc12cb6e79727" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.993Z", + "updatedAt": "2026-01-06T14:17:57.209Z", "postProcessHash": "bc8ba07709537907498af4699eb6faab10fe6991e7d12405b80d9007414a49cc" } } @@ -17670,15 +18006,15 @@ "54e7a0d28f060089af44ed7367d75f254a6d1b252f6ea6274e58dbe249470b30": { "4ced947fe881a2f40e14c2be1395d6c2cc3e15fe93e42e71df52ec929c2dcea4": { "ru": { - "updatedAt": "2025-12-29T16:46:13.999Z", + "updatedAt": "2026-01-06T14:17:57.216Z", "postProcessHash": "a0ab3ff0502f3a558e579e695e3243f4f3c27cee9e8d0d061f8226ef8751b75e" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.002Z", + "updatedAt": "2026-01-06T14:17:57.222Z", "postProcessHash": "1393bd754272ca3eb031a5db62ed1a53aef9b0d691bb60a4c2c567b7682fc617" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.110Z", + "updatedAt": "2026-01-06T14:17:57.353Z", "postProcessHash": "d712c11950de830a233a80929ae7ffbbd8376af425cf5ef4c38d66da59e7733a" } } @@ -17686,15 +18022,15 @@ "7a97c0a8a1d7a2b7124253b37f3cdff0f274d654965381e7ee3aeb4db3323631": { "ed2621c01542cd6c73825e5fe7639beff16cce375577d0d908b8b02c4bc1371b": { "jp": { - "updatedAt": "2025-12-29T16:46:13.991Z", + "updatedAt": "2026-01-06T14:17:57.207Z", "postProcessHash": "3521f23fc02f8f15b40e1be4fe94c0a9001f4268d219fe091083624cb31fd86c" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.929Z", + "updatedAt": "2026-01-06T14:17:57.113Z", "postProcessHash": "06cf81681c478bed652df00bedcc52ee5084a7a5561fef99e7a7a73e5ed37f97" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.928Z", + "updatedAt": "2026-01-06T14:17:57.112Z", "postProcessHash": "5ae231908156eec5edf08682d465407b75d665704343b51d291ec447a3c0cb2d" } } @@ -17702,15 +18038,15 @@ "893f6ba96a900463e4a20bfebef45d262bc3a3e1452bbe2f889f333b52e5fee5": { "b3a0a7a9c4f2e4c526bb71ba0bc5e6dac553aa232350b1910ad7fbf035734c06": { "jp": { - "updatedAt": "2025-12-29T16:46:13.934Z", + "updatedAt": "2026-01-06T14:17:57.117Z", "postProcessHash": "d3a1fdf2682c6c39fda93dab6220525c675e6ad3fcd8a788873cd77cff17d94d" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.931Z", + "updatedAt": "2026-01-06T14:17:57.114Z", "postProcessHash": "6c482b591b5e9d9d4e727a00fca4097fbd7cfe77ac03c4867ca3a9d70e357456" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.995Z", + "updatedAt": "2026-01-06T14:17:57.211Z", "postProcessHash": "934c6204deb40439d15110cfa2ed5240d945d9d2ec72c5a6b2d74f63bcbe0eab" } } @@ -17718,15 +18054,15 @@ "95a73804027437518f6cb49fd17638db0b1d6b9361ef329c1d59b49231f45112": { "e13f5fe9c753ab5e1cd5c3b9ef8db4c7e56caa299572d07d0368d8af887e99a3": { "jp": { - "updatedAt": "2025-12-29T16:46:14.002Z", + "updatedAt": "2026-01-06T14:17:57.221Z", "postProcessHash": "9c2fe3ffa79ba72b45bd928c07adacaf95bae456c7d8868d03bc2be9f2d5c66f" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.108Z", + "updatedAt": "2026-01-06T14:17:57.352Z", "postProcessHash": "7b037e53d83390fae8ec37bb8d0ae2a79543ee2e3d5b68302fcd4afa77f32847" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.001Z", + "updatedAt": "2026-01-06T14:17:57.220Z", "postProcessHash": "c9bb4d56ed8417b134cfa3834f4b13600f4f0d7c32be5bf23abc887654212945" } } @@ -17734,15 +18070,15 @@ "b624c3e0df3b6286b5d61538607b9030a6cd27129246f0485ab94c5f1b0efd7c": { "b4c584ccbf84daf8b7fe6aae9e1c393e8220224a9cecec6d5d2024e0cb7aa654": { "jp": { - "updatedAt": "2025-12-29T16:46:14.006Z", + "updatedAt": "2026-01-06T14:17:57.232Z", "postProcessHash": "76be40baa6f7ef3f4f007909fe6a3cdc98fae142dfb129e3869f21a675dc67d1" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.006Z", + "updatedAt": "2026-01-06T14:17:57.232Z", "postProcessHash": "8a5ee8f30cfcfe49679fe5442caa8eaf1c01015da6c413d9b51b5f20aed952ea" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.997Z", + "updatedAt": "2026-01-06T14:17:57.213Z", "postProcessHash": "f08af1c70cd966738ff927a3b82a076aed152b1805ea25755bb9ea2f61c43983" } } @@ -17750,15 +18086,15 @@ "e210bad99f1e8a957566f3f34d0853651d4ef532d83ae50fc1fb032d24e2dd28": { "0b6791886d00299fd2b8b71cf58d276a85916e6880c408cdbef78333d00f1d3a": { "jp": { - "updatedAt": "2025-12-29T16:46:13.991Z", + "updatedAt": "2026-01-06T14:17:57.206Z", "postProcessHash": "19cff1c4cda721d059771ccd6ae2ff3b21a89225bf13aec95f44366453497d01" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.005Z", + "updatedAt": "2026-01-06T14:17:57.230Z", "postProcessHash": "3453a35b1230df47ec563c21dc722846556e8fb25aa1a063d2471ab6057e83b9" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.109Z", + "updatedAt": "2026-01-06T14:17:57.352Z", "postProcessHash": "d587718d4bec41d6390e88a1fe9cd6d9632c97ae6b53ed345d41b131645337a4" } } @@ -17766,15 +18102,15 @@ "e77458d405603be885e941ab39a2c03ea7c893b38a1ed1b1c4a5beb9a703c04f": { "f78ef201b8464bb62128fd17fb1bcf8d3f42f167e5b4f4c8547866c5ecfbc7a9": { "jp": { - "updatedAt": "2025-12-29T16:46:13.992Z", + "updatedAt": "2026-01-06T14:17:57.208Z", "postProcessHash": "c38f352c88fab87be0d6d50ed903032019effeb9700132af50c672ca1232f866" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.996Z", + "updatedAt": "2026-01-06T14:17:57.212Z", "postProcessHash": "c89835beb74eab4ada7bf9930f0d3decb18030eea453559aeb269118bace0878" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.930Z", + "updatedAt": "2026-01-06T14:17:57.202Z", "postProcessHash": "c488256150544f75be46283dcc507d5840abf4da1f24d53de0cc5920d1fdc2ae" } } @@ -17796,15 +18132,15 @@ }, "ba093f0bb10f862c1b3ab5a8127680df2de5bf8ea2343fb692591ccbb3f94238": { "zh": { - "updatedAt": "2025-12-29T16:46:14.035Z", + "updatedAt": "2026-01-06T14:17:57.280Z", "postProcessHash": "0f15e88f5981f22f81eda47d89b9c46a9aff9732937e361360e3b66373345c34" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.035Z", + "updatedAt": "2026-01-06T14:17:57.281Z", "postProcessHash": "7df160e290b6d8f5270c4a66cd9bf7e022e6621cda608e69cbeea6bf926b3e67" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.036Z", + "updatedAt": "2026-01-06T14:17:57.282Z", "postProcessHash": "f0fa28e2ebc4f7bda846978e8e8462352be911b1847b3a81b1d629d96ef8428f" } } @@ -17812,15 +18148,15 @@ "06b6f9b31956eb6e3cebe7421e22abac9ad0de32434585b3bedb572ca22fe779": { "ac6f44e72647bc384df3ba5b105e8bc37e9ce25a9c1c104570232ed738108026": { "jp": { - "updatedAt": "2025-12-29T16:46:14.340Z", + "updatedAt": "2026-01-06T14:17:57.670Z", "postProcessHash": "4ded16e84324c21d80cccb0f32e2b59dfb524128ed95374b8afd9b82be3703d0" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.352Z", + "updatedAt": "2026-01-06T14:17:57.674Z", "postProcessHash": "8ba7d5b07a4398585ffe22c12885f9971a129242ee810d2aea1b550b9ed60302" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.233Z", + "updatedAt": "2026-01-06T14:17:57.538Z", "postProcessHash": "8b9694119bc72b519f92c1cbe5287c592044ef0c31a3c6fe1c7892b736965230" } } @@ -17828,15 +18164,15 @@ "088f126360fc7b556a09516cc41a4880d4599464d2cb1ff9f6ea02417c6df429": { "04f510d66c9b376ce9989e4858fb9d1204bb45b666002f527435e252cc2dc4f8": { "jp": { - "updatedAt": "2025-12-29T16:46:14.411Z", + "updatedAt": "2026-01-06T14:17:57.733Z", "postProcessHash": "26d429dced3e924be0288b69b409282a280615f75a8cf50793820c7daa3cc52d" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.409Z", + "updatedAt": "2026-01-06T14:17:57.732Z", "postProcessHash": "747b02623a400edbd379f0b7729a6fbe2717367aeca268a4df43f9264240c091" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.289Z", + "updatedAt": "2026-01-06T14:17:57.620Z", "postProcessHash": "f60c967a30c0c2541cf3df47e0a4a7cd435e15368c3f841cb3c170584e3d8d23" } } @@ -17844,15 +18180,15 @@ "13195f1c973faf9aadf39f45b6a4df596efad0f6e4df019051e13dc77eb9fdfa": { "948846a8743f4a90ac77c6ba53e93f5386df8d5310a4b8182265798313dc6dc9": { "jp": { - "updatedAt": "2025-12-29T16:46:14.234Z", + "updatedAt": "2026-01-06T14:17:57.623Z", "postProcessHash": "0d3cdbc8ac0e21e20fffba486861b7f728cca6daf83deb19df843409a743b595" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.360Z", + "updatedAt": "2026-01-06T14:17:57.682Z", "postProcessHash": "16b8959c03562365a1cbb3d2e917410e0bf6a6b35a08deda432c22e0cf44405d" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.361Z", + "updatedAt": "2026-01-06T14:17:57.684Z", "postProcessHash": "f1c9902152d0303586d4dd07c2a44651e1cebf0c014ab691c4976ad1526dcc39" } } @@ -17860,15 +18196,15 @@ "2505693dc142fd4f445b3882dc548fa0cc38adca662a63dbfdb437b0f67776ba": { "f86b0dd8e53eca99c2eba408e02d7d92a906e77aee88846c9e24a2d79f1d998e": { "jp": { - "updatedAt": "2025-12-29T16:46:14.234Z", + "updatedAt": "2026-01-06T14:17:57.629Z", "postProcessHash": "1614c93a944a1b328134e1a37678a167d2ee301a6c1adc398ed63391518a4d0c" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.338Z", + "updatedAt": "2026-01-06T14:17:57.666Z", "postProcessHash": "0af0e47384c13918e148385055ea9d888c45e5b1ecf275e68288dd9112a243f6" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.358Z", + "updatedAt": "2026-01-06T14:17:57.681Z", "postProcessHash": "7bcb9cf41f28d7fd33a8c0824cf439fdff3c128b07fd614d554aa8b795cbf553" } } @@ -17876,15 +18212,15 @@ "266e0dc9c395c310374563d981fa2685a69b11a4eb800352e56423b5bd7e2901": { "d344c46f769e848e76522e3e0e64f31e4c4cd999a3de3ea3cc10400f0b2826ae": { "jp": { - "updatedAt": "2025-12-29T16:46:14.397Z", + "updatedAt": "2026-01-06T14:17:57.720Z", "postProcessHash": "4c5981d940d4f50b77744ed6c6d331ba63d29bc8e224e014ae7a4b335b38eafa" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.401Z", + "updatedAt": "2026-01-06T14:17:57.723Z", "postProcessHash": "e0975c283c05181c14e66aa3029bed5f08a52c5d361e5972cb2f803fa60c8f2a" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.404Z", + "updatedAt": "2026-01-06T14:17:57.726Z", "postProcessHash": "8680436c7e2acceb1616b07108a079523e37ff589bf18e873228ad0ce4d0565b" } } @@ -17892,15 +18228,15 @@ "3c3cdb595236de7ad8f9d05838ec2b8bf3f90caa6bca9eb1dbb703fe9b2c5f67": { "22c4567427f06c4ff596058d0963e1977f619d426a1cb0b04f22ad1721307091": { "jp": { - "updatedAt": "2025-12-29T16:46:14.297Z", + "updatedAt": "2026-01-06T14:17:57.632Z", "postProcessHash": "bf81837d3d819fda276ea80241f91504fbc6cfbe4c75b8dd6ecc52949ee7f35b" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.239Z", + "updatedAt": "2026-01-06T14:17:57.631Z", "postProcessHash": "f1948e89bb71bbd33a13b1ae57fc73d67c7ef63f3e92b4875cdd66c820db4890" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.298Z", + "updatedAt": "2026-01-06T14:17:57.635Z", "postProcessHash": "ab03c6921615fe1b548e0c8c69c84cda066a90a6c5be52d6ed8263351870c3e2" } } @@ -17908,15 +18244,15 @@ "3cb2ac954c25f39475156759f2f4f8c8714328c659aaba596322bf83f3e3ecf3": { "da8c2bbfc6c34aa9551b3e0a532d71ec831fc09659ffc38734155072f907743e": { "jp": { - "updatedAt": "2025-12-29T16:46:14.342Z", + "updatedAt": "2026-01-06T14:17:57.672Z", "postProcessHash": "7eb6445aad7bcd8741a2821a620cec91b44f09467c7e75cb58b50554e6ab4fae" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.231Z", + "updatedAt": "2026-01-06T14:17:57.536Z", "postProcessHash": "6b0ec5ab30c8e3aaa3382eb694064c52e4375af00d987965a5f15354fc18eb64" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.337Z", + "updatedAt": "2026-01-06T14:17:57.664Z", "postProcessHash": "e62d98a0f9241d7b429e28d56a1cabab265cd42680e9d149f5bb8358ff4aadcb" } } @@ -17924,15 +18260,15 @@ "3f5009534c38cb29edcc48a3b2c5b50aa0363797569ad9ed3c962e075be3d711": { "e52f05211d11daf47cbab45322de5fb579805427116030493d255d74a6de33e6": { "jp": { - "updatedAt": "2025-12-29T16:46:14.302Z", + "updatedAt": "2026-01-06T14:17:57.640Z", "postProcessHash": "da6647a3338357109a9e71c98a281c675ff0ccc6eac2400de7410101fda587f2" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.303Z", + "updatedAt": "2026-01-06T14:17:57.642Z", "postProcessHash": "c6b0508aba9c34b85142a2a03705452eef4fbd8b77b5dc6f3316a800b20586a3" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.364Z", + "updatedAt": "2026-01-06T14:17:57.687Z", "postProcessHash": "23e348e3f6e0a858bb1bb6bd286eb5b8c39786f2e30bb4f2259975d423d756a0" } } @@ -17940,15 +18276,15 @@ "51d439a5ad94546b36a253aeeb85868911bfe6475f4fefb30756a75f43e01dc0": { "c9a05803f13e75801b4f09b8c52974299028da9cd5533d505c572edbdd11b9f8": { "jp": { - "updatedAt": "2025-12-29T16:46:14.299Z", + "updatedAt": "2026-01-06T14:17:57.636Z", "postProcessHash": "3692154090c647210194e48e8d235a8d3fab6aecb57723f55b016579d6ad9e0b" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.298Z", + "updatedAt": "2026-01-06T14:17:57.636Z", "postProcessHash": "45e0ffddf970ba047db06a432edf70d1f1ee8fba3e8fd8f080aeeb1179e23279" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.299Z", + "updatedAt": "2026-01-06T14:17:57.637Z", "postProcessHash": "1adc214d8c11772026a10afd046f80cb227c0891edc0542b090bf36302be1974" } } @@ -17956,15 +18292,15 @@ "5227584ef900ca7684b844bf9b013a21d6faf12f8833191ac40e941a5fa9878f": { "5405382560ae38c848c605acfb1a4ec134912ef6bcad95aab5381530689e735b": { "jp": { - "updatedAt": "2025-12-29T16:46:14.303Z", + "updatedAt": "2026-01-06T14:17:57.643Z", "postProcessHash": "db291d623c82bf0be6cabd34ec09c0e7287f1b3dcdf7417fb271d06b7398e946" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.305Z", + "updatedAt": "2026-01-06T14:17:57.645Z", "postProcessHash": "4ba80d3d0d5fef5310f4c71708edc047767302d2b2accdf9d1f6e72b37eb321c" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.300Z", + "updatedAt": "2026-01-06T14:17:57.638Z", "postProcessHash": "c630912128d52047b6387f1ad77d02f71b1201662810316e0c4453c1b197f54c" } } @@ -17972,15 +18308,15 @@ "a5397922ad119e6b298a6b4b378a68f864ea43c8323107a35954165809de0589": { "488ca0a5b4cba0af7cf4ca440e3733d6860db7e0e1beb8403ae74e4cfd8e7753": { "jp": { - "updatedAt": "2025-12-29T16:46:14.233Z", + "updatedAt": "2026-01-06T14:17:57.537Z", "postProcessHash": "ee7fe5118f1f915918e457aaf37b8151034d094a2ec845c538cf1f02de610b6b" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.340Z", + "updatedAt": "2026-01-06T14:17:57.669Z", "postProcessHash": "259e3fcbad2e423f4f95e2598e8197a9d37fe98388ac2f5f8a008c211559c140" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.338Z", + "updatedAt": "2026-01-06T14:17:57.665Z", "postProcessHash": "5c96f03aa28e39c27f05050e37d3b1dcd8f7a56d84edec0469cd482116ff06de" } } @@ -17988,15 +18324,15 @@ "c6e56f828d1b34579ba790f93abaa05b29fb89f9585497258413971007a3a246": { "c2f203731c8694cfaf84b37109a789c0a0167657339f75db8fc7b685f948d2ea": { "jp": { - "updatedAt": "2025-12-29T16:46:14.304Z", + "updatedAt": "2026-01-06T14:17:57.644Z", "postProcessHash": "3e76a8f59d18f6225ee654f268b69f1aed52892de1f7e6b3f2bfd8354a9331bb" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.235Z", + "updatedAt": "2026-01-06T14:17:57.630Z", "postProcessHash": "fb7bafe8c44c4b6485098cdc6ebfef2787b49a59cbe4f732a9711915f5e88ab0" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.301Z", + "updatedAt": "2026-01-06T14:17:57.639Z", "postProcessHash": "b53a8f3ed3e55a5e515c287caf6b0b36fcc0f0be0674be137ebbeba22739b55b" } } @@ -18004,15 +18340,15 @@ "c8b0b34a39a4f363d421259bdd17b9dd8d0d01f815eda9607f0d9ef245895275": { "1126bfe846bb5fcdc4b0c7c2bfd10807cc64d6e12d190d2c824329258baf5efb": { "jp": { - "updatedAt": "2025-12-29T16:46:14.297Z", + "updatedAt": "2026-01-06T14:17:57.634Z", "postProcessHash": "09e9eddb32ef60c33303976cec19f0d6b0e1c8b45cf92d5f6d24a2975ebd17a3" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.301Z", + "updatedAt": "2026-01-06T14:17:57.639Z", "postProcessHash": "84059bac2884d72cd9f7574efd93f36080d5aad5e04e4d3aadfa8d6064a260c1" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.302Z", + "updatedAt": "2026-01-06T14:17:57.641Z", "postProcessHash": "166dac43e234873d6d5f9e9bd2f1c6d3fdccadf229243208baf53d37bec41090" } } @@ -18020,15 +18356,15 @@ "ce10e9c3dd234b8bf0fa7265cc3f51606b9f80563a4be89f36f9805412c6a452": { "f80ac33db9f2499ec8763473f9aaab8f92e4f89d4fbb898fbee33da6e7d210d4": { "jp": { - "updatedAt": "2025-12-29T16:46:14.341Z", + "updatedAt": "2026-01-06T14:17:57.671Z", "postProcessHash": "ae32fdb2d16045051938cd28411a12ad8fe667d767aaebf5d6b4d67c012f564c" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.362Z", + "updatedAt": "2026-01-06T14:17:57.684Z", "postProcessHash": "92c10b5ed594970257e0cb43ab422286d6fb4d986cd64a72b32dc6a575e60c61" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.361Z", + "updatedAt": "2026-01-06T14:17:57.683Z", "postProcessHash": "b9907ca70ba6baeede968b8a4c65648c544131269cc2f89e5aabcb42a19baeb6" } } @@ -18036,15 +18372,15 @@ "e8941cfe3ebe51cf895d37bfced51319951864655bb65ed34110cfbbd542b577": { "1724335ae6c5171c92d1126311524dbb7f3ba7d451a7907320b5c0cbe7ebb3aa": { "jp": { - "updatedAt": "2025-12-29T16:46:14.402Z", + "updatedAt": "2026-01-06T14:17:57.724Z", "postProcessHash": "2f22dbb256b6604c5eea6702491fd864115d50bae9e62d76fe52eefeba90f72d" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.339Z", + "updatedAt": "2026-01-06T14:17:57.668Z", "postProcessHash": "3d7bfab33fb3beebc2f47d43d3e73564e8785737cfb98e27af85cd0d18311ae3" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.392Z", + "updatedAt": "2026-01-06T14:17:57.682Z", "postProcessHash": "4632dcc47cf57386beffab1bc32b061d35a434d723cf247c9778e0d56f0d2f49" } } @@ -18052,15 +18388,15 @@ "ee1d174b1119575726aa2ce11719dc7482af9a58eb1e4c20075010bcc5bc200a": { "85b1114daba44b005630b9c50a7b4b79dec7d53f4ef54586f1ecd92f3f5c5d72": { "jp": { - "updatedAt": "2025-12-29T16:46:14.336Z", + "updatedAt": "2026-01-06T14:17:57.663Z", "postProcessHash": "8759b322119c72c85670392c3d59d9d0656f281e25bdc1634c37365240ab22da" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.234Z", + "updatedAt": "2026-01-06T14:17:57.622Z", "postProcessHash": "7e175bd3056ac9f209c0715b0617049aba1e96debb0bda42038f955da0d47c3f" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.357Z", + "updatedAt": "2026-01-06T14:17:57.680Z", "postProcessHash": "5b61ba70e8514da298d0c329b632814a34b6bc2248dca28c62f8ecd6d3d7c6bc" } } @@ -18082,15 +18418,15 @@ }, "b20d70e81bda348fd528b4947ee70de0a4fe33f6d6f802271545a6b73d51fd00": { "ru": { - "updatedAt": "2025-12-29T16:46:14.418Z", + "updatedAt": "2026-01-06T14:17:57.737Z", "postProcessHash": "3bd32c54b204a01e2a86fb8280a09cd82bc5179050924ca29486407bb98c55d0" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.419Z", + "updatedAt": "2026-01-06T14:17:57.738Z", "postProcessHash": "6691c97656e51c65180654ad660da6e1c942573a4ec63a399c706537712ecee8" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.420Z", + "updatedAt": "2026-01-06T14:17:57.739Z", "postProcessHash": "92fd950cb7317283e2030a87741be982f7aceb2f7f04c07ed1e57149847ce737" } } @@ -18098,15 +18434,15 @@ "0de197a09c02a6e7de6b2120720f01b2f26dd69cc09e57640234c52fe619cbe1": { "a3b2b2da1705264e477035d4c4f93d27e7c159e13c8fefc67fdbac404fa1df2f": { "jp": { - "updatedAt": "2025-12-29T16:46:14.405Z", + "updatedAt": "2026-01-06T14:17:57.727Z", "postProcessHash": "0eaef6fd9ff13bab0d54d7a3ef3ea3001fc8d429659cc1898d26bb35c50396ed" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.406Z", + "updatedAt": "2026-01-06T14:17:57.728Z", "postProcessHash": "efa91f04ae6e3c902352ecef6b1d4cc8ca244cffc6058b42322aa90b28484aff" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.389Z", + "updatedAt": "2026-01-06T14:17:57.711Z", "postProcessHash": "99ded51be520e91023b89bc582d9fbd164ff49269b48877bed7911a74821422f" } } @@ -18114,15 +18450,15 @@ "39f0108c94bbc9ceec29295e4a5c4a30bc3ed66e79dcf055c93bcb5e07df95b4": { "f14661437615304886b90084f8db1b8e50ccb8718cce1d8bb57271192cb3f924": { "jp": { - "updatedAt": "2025-12-29T16:46:14.413Z", + "updatedAt": "2026-01-06T14:17:57.735Z", "postProcessHash": "078db896105ca6ec4db4bc231126e5c66fa6bfdd68113a50c4860cda8ffae0f4" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.412Z", + "updatedAt": "2026-01-06T14:17:57.735Z", "postProcessHash": "8d86c67345a9ea56aaf8520bb073f8da4617b4c8bdd3869394546ac6d8ce297b" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.413Z", + "updatedAt": "2026-01-06T14:17:57.736Z", "postProcessHash": "783d7db53fd2d35af5e455fe0cf632085577d1e0042ecb08da164093f170b087" } } @@ -18130,15 +18466,15 @@ "4511c24ad879085d0713bffa28b8695c1a87d24872ce30015bb857f43c961627": { "f33dc7dd4c81c9ff62d672ddd22da52fe2b3790feef29653e27d7dbf105dacdc": { "jp": { - "updatedAt": "2025-12-29T16:46:14.393Z", + "updatedAt": "2026-01-06T14:17:57.713Z", "postProcessHash": "f70ee990ec09fb26a5f18f4e100ccbb8860c3fea679934c49d180427f3ee413e" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.341Z", + "updatedAt": "2026-01-06T14:17:57.671Z", "postProcessHash": "c5dabb6e77b7e3a7b64213dc50b1a7269111bd2c63534df43603fde3de1a3bfd" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.341Z", + "updatedAt": "2026-01-06T14:17:57.670Z", "postProcessHash": "a34f63191b6be3b7343907180388ccdfdc122dd49221329ade5cffc057a87135" } } @@ -18146,15 +18482,15 @@ "7209b7ddab6e5d0aa0edb6dd2a9d28893ced1fa4a5e84eca66e18a12cbc9a471": { "b55f055c6ea298013d180b87459ca4cbef2d564e3a47054885bf85eca5781ed7": { "jp": { - "updatedAt": "2025-12-29T16:46:14.294Z", + "updatedAt": "2026-01-06T14:17:57.626Z", "postProcessHash": "9d7c6b091070d70ac59a7804d5c5355e0515a83464a2e6d21c2f7ff864dfbb91" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.391Z", + "updatedAt": "2026-01-06T14:17:57.712Z", "postProcessHash": "ae02d1de33f53b9fa36346ad18ab138a8405cbce9223d07b05b7d3269acbbe23" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.391Z", + "updatedAt": "2026-01-06T14:17:57.712Z", "postProcessHash": "fbcb85e48a30800d2da009a4b6803780c9be4fef72b2dc0c153bb927d557e745" } } @@ -18162,15 +18498,15 @@ "8d5ac58622d05dc878c50a9901e001b81276e5c37349076f70389f7ec8731cb4": { "2a5bbf839d622f7ef15b7a5b8575e42dcbd0d1ab16bf6f98ab233f94cdbd68b3": { "jp": { - "updatedAt": "2025-12-29T16:46:14.338Z", + "updatedAt": "2026-01-06T14:17:57.667Z", "postProcessHash": "18b4be69e606222dee6eeff4439a023588173f6067b97753c01c40d4321b3163" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.396Z", + "updatedAt": "2026-01-06T14:17:57.719Z", "postProcessHash": "46dfc04ebecf00cc4ca1c8275a4496c6690ba97016fbef74a8901a310763ae09" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.348Z", + "updatedAt": "2026-01-06T14:17:57.673Z", "postProcessHash": "57c03124b61a84ace3932098f02a39ca7907e9e8bff4b0ea3522af558951b399" } } @@ -18178,15 +18514,15 @@ "9da34b15afe0cf84a2c73d8d1acfc85dae89be8c90605898caceecbc4626da99": { "ce873407eda99feac5ab7638cb9c330da28e87de5b88e7f7e35b3b8dba2c1ffc": { "jp": { - "updatedAt": "2025-12-29T16:46:14.395Z", + "updatedAt": "2026-01-06T14:17:57.717Z", "postProcessHash": "e92f062fe32ed6db1f6cd8ab641480e969463c92588a305eb3418d6f57f79083" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.337Z", + "updatedAt": "2026-01-06T14:17:57.664Z", "postProcessHash": "0128fd0a6c6d0679bb03f47ccc10268b47c2c952a3a93e9244e2ff1d1e55cf66" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.336Z", + "updatedAt": "2026-01-06T14:17:57.663Z", "postProcessHash": "3c8581f194bd4a595619f28cd1d6f8f5c0eb99bd330ae6852db48de914423b3a" } } @@ -18208,15 +18544,15 @@ }, "3344d9c5165b7b6377ccf5b01e57c89069ae5db91fb0a15b3bfff8665e277c51": { "zh": { - "updatedAt": "2025-12-29T16:46:14.425Z", + "updatedAt": "2026-01-06T14:17:57.791Z", "postProcessHash": "2daee503c3e4ee8903274928ec611f277e91de26f8de320c342a824bd4dd213e" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.425Z", + "updatedAt": "2026-01-06T14:17:57.791Z", "postProcessHash": "7b11766823726fefc7d4e36cd6e99dbf83d4bded6425ae5267d4a84672ffeea9" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.426Z", + "updatedAt": "2026-01-06T14:17:57.792Z", "postProcessHash": "ef2b33bfd1b548f91e11933a4a379650c7cca63f419932a7ab04e6ac55fbb61c" } } @@ -18224,15 +18560,15 @@ "bc635d7f6a9111bbbc3d31c625fcda3adb9eadc78253335799d1b3a12a509df7": { "b7a3734788840b662f127af66b64815bd7c85bf39dd4cf42306c85eb6f392d01": { "zh": { - "updatedAt": "2025-12-29T16:46:14.401Z", + "updatedAt": "2026-01-06T14:17:57.722Z", "postProcessHash": "f668c1906ecc471622866253444bce4dbbba81ee303815c59461a39cb723e65b" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.403Z", + "updatedAt": "2026-01-06T14:17:57.726Z", "postProcessHash": "85a44378f4f3cc33d096e0e5e4e9a1b39e47c1bd19196f41121eef4d52cda876" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.407Z", + "updatedAt": "2026-01-06T14:17:57.728Z", "postProcessHash": "ce4940bf41e84e024b43ba293b11ad7e70c6003e32344b7b9d319868cda39261" } } @@ -18240,15 +18576,15 @@ "bdf357b395b129f57e836477b2fc57675705bcf48e1acda08c190ab17a75951e": { "3a0381755f449a5032606d2fdab638ca733950978814b42e1aceb74203a2235b": { "jp": { - "updatedAt": "2025-12-29T16:46:14.292Z", + "updatedAt": "2026-01-06T14:17:57.624Z", "postProcessHash": "e733fde436e4d1cdd1b16a3a850b017590f1252e03c72d3b1c4fd59bbdd4021c" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.394Z", + "updatedAt": "2026-01-06T14:17:57.715Z", "postProcessHash": "903f4c0dbb76a9524b16849a407d8357e0ea37f163e6edc0c6a1fa55d2f472b5" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.295Z", + "updatedAt": "2026-01-06T14:17:57.628Z", "postProcessHash": "8bf4c2fbe0c3987eafe627ccde29067e14ebbf8c233a82a46cc1671c961564fc" } } @@ -18256,15 +18592,15 @@ "c54fab4cf7043c79b8ce701279e089e154ad852ea3c4248cb2c8da671cbc17db": { "b6e7b7146868d159e85bc698be8dd009a8755c7a8c993e4406163a4d71a408a9": { "jp": { - "updatedAt": "2025-12-29T16:46:14.339Z", + "updatedAt": "2026-01-06T14:17:57.669Z", "postProcessHash": "41a6188cc374616d128c18df81d3140869c5e20978970ea3aafb1dda27b766f2" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.390Z", + "updatedAt": "2026-01-06T14:17:57.679Z", "postProcessHash": "ab963f9ca2421adabcd658f0f70ac9373a95357be12483dcd252f44b6ac1c080" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.346Z", + "updatedAt": "2026-01-06T14:17:57.672Z", "postProcessHash": "dad5f4be538885d3ffc44200c5dfbf6b1b8625c672101ec45ceb13f43a4aa2c2" } } @@ -18272,15 +18608,15 @@ "c571247fa3e091098d027771a55d5ebe774d6d531b2c5384736de73837552959": { "e5aeca6ca592dd8ef3c7bcf54b278d64dd04a95cd012f8594105429290303c21": { "jp": { - "updatedAt": "2025-12-29T16:46:14.293Z", + "updatedAt": "2026-01-06T14:17:57.625Z", "postProcessHash": "70317a6694045b71857ce268d875cb7550889448d2993dc3d3fc7b6722c93a24" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.403Z", + "updatedAt": "2026-01-06T14:17:57.725Z", "postProcessHash": "e2b642d977e3d55608fd20f37d1a7c6a3cef4c43bc0196a1f39921edd2b4518d" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.353Z", + "updatedAt": "2026-01-06T14:17:57.674Z", "postProcessHash": "040da56fdae7b56e6f28228c7ab6fcbdfbd21c9c5b7ee941c67cedac3dee016f" } } @@ -18288,15 +18624,15 @@ "cc311a7d9ae7be3e04c62efd5c5b7aa8cb9d6075749b29e99939d01baa76e3fe": { "3de10984a294ee3ab3e7105d5ba6c42208236c0f01721e7189efb0af99ca2490": { "jp": { - "updatedAt": "2025-12-29T16:46:14.294Z", + "updatedAt": "2026-01-06T14:17:57.627Z", "postProcessHash": "29a5e7e8e2276cb975fa57965735c0ed62575ecb143ab5f3d5361e08c1bd6d3e" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.355Z", + "updatedAt": "2026-01-06T14:17:57.676Z", "postProcessHash": "d34517dfe6ca1d00aa2d3971abc3c8e0b2314888f922ca70ffedf24cf7f9149a" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.396Z", + "updatedAt": "2026-01-06T14:17:57.718Z", "postProcessHash": "b13aeac53c96a877f01339e80b1c73828a8d998fd096e3a411281dc13eb15b3b" } } @@ -18318,15 +18654,15 @@ }, "6449fcf1aab530d9d7cf4e9c13de053de1d6c1cee853af36c0d25030ea2c0a46": { "ru": { - "updatedAt": "2025-12-29T16:46:14.417Z", + "updatedAt": "2026-01-06T14:17:57.736Z", "postProcessHash": "c500af9f89401d443f4d5fd934b9bc1a7eb3693598c9d2750ad6dd19494219e2" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.418Z", + "updatedAt": "2026-01-06T14:17:57.737Z", "postProcessHash": "2b2f7a83635aeaff5639303c72ff666486e8190274ab7cd433f2af9f5be6914d" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.419Z", + "updatedAt": "2026-01-06T14:17:57.738Z", "postProcessHash": "9b0476bc3fb21e50c11d3fb327fed050d134dbdc55d610447bc5856b77246308" } } @@ -18334,15 +18670,15 @@ "ee343f5a3bf00722c8dacdf2e096fa970da83e5102fcb1446bbc99a4b089a390": { "72f38826fa27979a73a67e5413b3854cc5f5f2bfca9f1efe2890e20dc90a5020": { "jp": { - "updatedAt": "2025-12-29T16:46:14.390Z", + "updatedAt": "2026-01-06T14:17:57.677Z", "postProcessHash": "8ee04804672da1849f96d101120ef07686f843ac51854ee87a6b9feffe00e48b" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.393Z", + "updatedAt": "2026-01-06T14:17:57.714Z", "postProcessHash": "5e9ac9fc9241aaf0d3b912f1158d458cbb6f2eb8adb14a106ec022d6e0ecfe1c" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.286Z", + "updatedAt": "2026-01-06T14:17:57.617Z", "postProcessHash": "8d272f8e62297fac16003c6c6f4e3b944a47e5462e99c1e825eb18dc8ee53c8e" } } @@ -18361,20 +18697,34 @@ "updatedAt": "2025-12-29T16:46:14.295Z", "postProcessHash": "17db5702fdf78b723e8c55866b796e8cf761aa9974781c611aef97cc8e628d9a" } + }, + "6aa78c44dd6167c4589dd9625fd974fdf1d3ba1ca0014129bf7d0da2162d78a4": { + "ru": { + "updatedAt": "2026-01-06T14:17:57.782Z", + "postProcessHash": "d1aefd86e1c4bd5953b47d3486ea8bc3f4e49a2a58b03bc9c642986c3a689ad8" + }, + "jp": { + "updatedAt": "2026-01-06T14:17:57.782Z", + "postProcessHash": "c2930a47ba4ba9334692fac78c484ce644c9c4a72028d6f29026986baf02d5e4" + }, + "zh": { + "updatedAt": "2026-01-06T14:17:57.784Z", + "postProcessHash": "f49874fefb394d61bc29d4761714c350f3f907de59ab7bc5458a722e76944813" + } } }, "fc92ad70da88c48808fdb53f68400c73f6f900eca6a95d544909915d2b22d9f0": { "16c47449f52759987429555de611585f7f1f6d6770d4c1ced0d74ae244ab45df": { "jp": { - "updatedAt": "2025-12-29T16:46:14.392Z", + "updatedAt": "2026-01-06T14:17:57.713Z", "postProcessHash": "313471062279195612d59ec683acc31c310600f389d7a3eb32134b97c60aeadc" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.380Z", + "updatedAt": "2026-01-06T14:17:57.667Z", "postProcessHash": "9ca4c6bba584c6effeecbc9feeb4f2ba429797f14f57181a757ba9f7db7167f5" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.287Z", + "updatedAt": "2026-01-06T14:17:57.618Z", "postProcessHash": "53681e067e663881ec038a649582e0291ad872c6f0ef52be1a328e15d58ee3e2" } } @@ -18382,15 +18732,15 @@ "fd2a3635e203221890fdb75fdb12cad083607f12a05af6e46565b58b28626a3f": { "69e391ff6463d09b09730e7e4366b4c486d3bb1759441114546febf2e97601a2": { "jp": { - "updatedAt": "2025-12-29T16:46:14.296Z", + "updatedAt": "2026-01-06T14:17:57.629Z", "postProcessHash": "459fab8c49fc5cfd4b7051ab1e3046ffda0eefb9e597dd4203225fa9ce33666c" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.306Z", + "updatedAt": "2026-01-06T14:17:57.645Z", "postProcessHash": "6551e263181aaa1489502382270c64bd30c4ab0186d3b55f8e9a7e72d8e83718" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.307Z", + "updatedAt": "2026-01-06T14:17:57.646Z", "postProcessHash": "a6ddfcdbf2ca3d0a02579a9ceabfd35ae2b3d7e23066340fff77852f91425ab8" } } @@ -18398,15 +18748,15 @@ "01730b1ec82c24f14c646ea28a41edd24f15dd6258eadc1f9401688d51eaad3a": { "303c8891cee64e9b8765b1a9436de1274fd2bbe91f843406837e41ba74c6c318": { "jp": { - "updatedAt": "2025-12-29T16:46:14.445Z", + "updatedAt": "2026-01-06T14:17:57.838Z", "postProcessHash": "7b515082c0f5e5420daa3650fa3cc380a73a2574df6744b63416525eff25855d" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.383Z", + "updatedAt": "2026-01-06T14:17:57.821Z", "postProcessHash": "e5854213d96361777bb240e739aebd92cedf07458f92ed47950c11166a299a65" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.458Z", + "updatedAt": "2026-01-06T14:17:57.855Z", "postProcessHash": "fa1230b67b96a704a904f1de343f1a12cfdf4350092fc16e05a0e77cf977ab27" } }, @@ -18425,15 +18775,15 @@ "0f88f2bd27c6a3bc5b20ffd358c1599368da4a7821aed81420035a719675f40a": { "947a7d558e471c72cf79437a217f341c9e6e2083cef8d20956a3839b9c085fa3": { "jp": { - "updatedAt": "2025-12-29T16:46:14.395Z", + "updatedAt": "2026-01-06T14:17:57.717Z", "postProcessHash": "7a7674cd44c5732a1d22f7eb80be0113ccb4abb9fcd8e965e1ddd0288daf21ff" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.424Z", + "updatedAt": "2026-01-06T14:17:57.790Z", "postProcessHash": "76897dda7a216b262f9fad273a7c8f9c71bb0ff8cd8dee04e3bc57ee68cf4af7" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.388Z", + "updatedAt": "2026-01-06T14:17:57.710Z", "postProcessHash": "21554266928d8a59435fddce4d524b142a3da5152ffa9c5452a994868613c990" } } @@ -18441,15 +18791,15 @@ "2407e7afa831d557309ac0a87b9eae46f720441353201d2e2c78ed3e2510ab2a": { "1e84c0fe8d2d9789e16132b70f9a5d9a1b2fb7084db35c324173b1b69a5e7848": { "jp": { - "updatedAt": "2025-12-29T16:46:14.458Z", + "updatedAt": "2026-01-06T14:17:57.855Z", "postProcessHash": "1ad2c752849fdfbb20f6c308bad85f613157d22e1e0b678eed68d0673d963efe" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.512Z", + "updatedAt": "2026-01-06T14:17:57.928Z", "postProcessHash": "2cdcaab8b356572129f29c830ca711f155a7701ebfb44f1e2c55539e917de659" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.459Z", + "updatedAt": "2026-01-06T14:17:57.856Z", "postProcessHash": "e82b89e1c7ca9fc50a8da07984f4770877d72d1f70e42eab095f75da487fdc10" } }, @@ -18468,15 +18818,15 @@ "24f89815412a9281c45be003f0d9b1edaffe253b9fb6e44d0b69114de2a8bb5c": { "856a0875860cb4e9fdc7fca531785d1b4ba67b93fdace5421889ea8cc500ef1f": { "jp": { - "updatedAt": "2025-12-29T16:46:14.305Z", + "updatedAt": "2026-01-06T14:17:57.701Z", "postProcessHash": "c31a3110cac8bd1aeab11f3707f30562d97ba708ab32c236a8a9291417a48448" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.374Z", + "updatedAt": "2026-01-06T14:17:57.701Z", "postProcessHash": "829f91d07931dd3085b9100c55a2f951540dc9aa32795f1dae1727e54db8ee60" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.375Z", + "updatedAt": "2026-01-06T14:17:57.702Z", "postProcessHash": "da28aa5a689409be60c21028eed402af151bf54688659afb3fa26a11a21f1192" } } @@ -18523,15 +18873,15 @@ }, "f5459833366b047db6d8ebe97fc5bcb9620148e2fd14b2c21449a3e28f0cdd0b": { "ru": { - "updatedAt": "2025-12-29T16:46:14.472Z", + "updatedAt": "2026-01-06T14:17:57.876Z", "postProcessHash": "4bdbfdbdfb623ed1965d6d5f9b556d989b994edb693509df60e4eed01a25749e" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.473Z", + "updatedAt": "2026-01-06T14:17:57.877Z", "postProcessHash": "08542587ec02a67797f8950e96e432d1896b261bcb739ee2cfe86338ccb2cabf" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.474Z", + "updatedAt": "2026-01-06T14:17:57.878Z", "postProcessHash": "0f784b1e8bd395d3a0f9deac988e0222e7a1ee1cfbfcfc96301b47ae7cd61ac4" } } @@ -18539,15 +18889,15 @@ "417572f3f0c0dee81daaaf436d03f842c9160631b01f165595d06d9e99f3c6c0": { "bedae71b49b3c79b70e3ad0767d167ca7bf7f0cf3792f2786f3be6e243ac41f5": { "ru": { - "updatedAt": "2025-12-29T16:46:14.371Z", + "updatedAt": "2026-01-06T14:17:57.696Z", "postProcessHash": "9704c671cb50cce74276808cd8e85b877fd221e56b8d65175d61f86869cb36e2" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.373Z", + "updatedAt": "2026-01-06T14:17:57.698Z", "postProcessHash": "05c5d7b1230bf7f5e6d2a0f63e011de905257e29cddd316902cc65c9e91dc96c" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.448Z", + "updatedAt": "2026-01-06T14:17:57.841Z", "postProcessHash": "d4c5adb58897d54fc6aa74a6a3eb46f90f2581a8f24fd2175f825e56cc477405" } } @@ -18555,15 +18905,15 @@ "453e82594457c450e00def5b4a049c6817c1f11b3242ecdc0c113a4fe824bda1": { "3e341e3a84064fbb72d1f07486692fcc58eba4c23ed96700a8697e160736a689": { "jp": { - "updatedAt": "2025-12-29T16:46:14.380Z", + "updatedAt": "2026-01-06T14:17:57.707Z", "postProcessHash": "d305675e8893b97a5f14d21819c22f8d54e6802e30273babc433b417e571fbbe" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.384Z", + "updatedAt": "2026-01-06T14:17:57.708Z", "postProcessHash": "40c8545b6fdfac6c71ef4ccdca262e6a3645408bfaa1cfbfeaa5c8806f7d6c97" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.388Z", + "updatedAt": "2026-01-06T14:17:57.710Z", "postProcessHash": "08c686d2a26be59f7d08e70596c9e77a35d4c08acab39d52ea85c1b6d158297f" } } @@ -18571,15 +18921,15 @@ "4f6f1a6da73f8d186f0a18ad4c69138ec62d12a6b38064449c0eaf1293c82145": { "19880790e9525db190f5e72d85ffc766a344cde65183576c30c03ab560c76bad": { "jp": { - "updatedAt": "2025-12-29T16:46:14.290Z", + "updatedAt": "2026-01-06T14:17:57.691Z", "postProcessHash": "efba5d3cf03613b56d6f3981fee923d11f097de2231bfbeae69bd9eb23db018a" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.408Z", + "updatedAt": "2026-01-06T14:17:57.730Z", "postProcessHash": "52e967087286be0dc72568677362421eaa9771d2de0a11a07b909767907355e3" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.408Z", + "updatedAt": "2026-01-06T14:17:57.731Z", "postProcessHash": "13f6d89618a6a86f039f94f96e69940520c10ce78549c4ef91f17cde999a1b04" } } @@ -18587,15 +18937,15 @@ "544e14c8df8e9aeba587c7a01debdb6de7b8d0dc480e2a471b321fe3cd637687": { "56a8436026a55bc58795064c90dcf48eb1783d7c4aeb6e25f3c6be910d52bfb0": { "jp": { - "updatedAt": "2025-12-29T16:46:14.291Z", + "updatedAt": "2026-01-06T14:17:57.692Z", "postProcessHash": "3309ac26454d7c7a591bb12a8684a11469bd8819568940e1102b21e376b25163" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.397Z", + "updatedAt": "2026-01-06T14:17:57.720Z", "postProcessHash": "e5099c2804de3c48feb8fb4e320f1436e267e05af979556d5e1d37a36d5a1495" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.386Z", + "updatedAt": "2026-01-06T14:17:57.709Z", "postProcessHash": "e90dc6143a0c62219cbee394a9345870a2220ed6e1feaddb05d00a8148c06b93" } } @@ -18831,20 +19181,34 @@ "updatedAt": "2025-12-29T16:46:16.520Z", "postProcessHash": "b661f44fea372f97ed1eb2b9997d99c44a2e4f76e110762fc501da1e62ec324a" } + }, + "da5cd0ba262678f59c9d6d256c3dba20c630c82fe4a9c7194868ef7bb85fee23": { + "ru": { + "updatedAt": "2026-01-06T14:17:57.795Z", + "postProcessHash": "0a975c1fa21dab5cfbee2ccee6b4bb73e24498fa5ca6d5a2449d398f3e768dd9" + }, + "jp": { + "updatedAt": "2026-01-06T14:17:57.798Z", + "postProcessHash": "ad4d7bc45c44ced371b8f9f7686bbd3709b88a50f9b089acded9050cf21341b4" + }, + "zh": { + "updatedAt": "2026-01-06T14:17:57.815Z", + "postProcessHash": "6373fc3d7e051842664c217cafd9e9df8306f9ae4d9e90911ca137feca913b28" + } } }, "596b0a954cde794b5e64f8babd89a81c1359843a6046215dd00cba539357857d": { "af24567e7b2b1b9a842510afc1c41e6a4f7a9634fdd16e4176a76bc4b3c3e091": { "jp": { - "updatedAt": "2025-12-29T16:46:14.389Z", + "updatedAt": "2026-01-06T14:17:57.711Z", "postProcessHash": "88596ffc0ddd693e986f59d9a6079ca8b4a5d728db48c1951819240549fc3f86" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.400Z", + "updatedAt": "2026-01-06T14:17:57.721Z", "postProcessHash": "1a8766ed83b6a019bde334db8a8f4973de29f13e052742469d7b405efb17e26f" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.290Z", + "updatedAt": "2026-01-06T14:17:57.621Z", "postProcessHash": "037f1e27b831a82caa36c74dd376abdac207d5f98eb1f96fbb860880c44b9709" } } @@ -18852,15 +19216,15 @@ "65351c23daaa6ae3579c1740e82b1f56ce6eb541ff65d23ed1f890694f6ea440": { "b999ab8a06deee210039a2eaf91d71da758c776e64c8fc322d876e73e8db2861": { "jp": { - "updatedAt": "2025-12-29T16:46:14.292Z", + "updatedAt": "2026-01-06T14:17:57.696Z", "postProcessHash": "590b31d510aa91a182b8e3d337046e16e9fbba8388d8574d33515ef97bcbc979" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.385Z", + "updatedAt": "2026-01-06T14:17:57.708Z", "postProcessHash": "0cf732da495c32436559f4f2ba0f04c042ded5dd61e10f9ff44c1bc10511223f" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.394Z", + "updatedAt": "2026-01-06T14:17:57.714Z", "postProcessHash": "b59110e02e101aafeaafe32ed72eb7d6b8063c1c8cd09f1422846d575e97ebee" } } @@ -18868,15 +19232,15 @@ "942eceae58e0a094962eb7383ca418c7a0fb355bbdf35ed09b1fb271b8ef0622": { "a06cd352188c57c4dc80e07b3511cf0c55b644a5eac9806b52fee16a901321cc": { "jp": { - "updatedAt": "2025-12-29T16:46:14.291Z", + "updatedAt": "2026-01-06T14:17:57.692Z", "postProcessHash": "d32cd5e7f2ebf1a47c2c2cd968a1dfb8c6c57cd21f5d38abc160498b1a9f78b6" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.395Z", + "updatedAt": "2026-01-06T14:17:57.716Z", "postProcessHash": "d6c162124e1bf92901fa87011b96b27d44b39783580fd49099df23680604ee5d" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.387Z", + "updatedAt": "2026-01-06T14:17:57.709Z", "postProcessHash": "cb123e39f275ac0509fcd9459a9acc36afc1bbd158aaf7cb2e8b8817c27f0ada" } } @@ -18959,6 +19323,20 @@ "updatedAt": "2025-12-29T16:46:14.417Z", "postProcessHash": "48d6ccb9c541eb937a57669edbf0b8bb3905413441f6d43f2b0f59dbca6892fe" } + }, + "615c2565d298e80a5629b3a31f67f35b07ee0a129774356d7a149bedf70e4f67": { + "zh": { + "updatedAt": "2026-01-06T14:17:57.787Z", + "postProcessHash": "76fb0bd697a40072d47c64862085b843fd44c62ca107fa431f78604ab79161f2" + }, + "ru": { + "updatedAt": "2026-01-06T14:17:57.788Z", + "postProcessHash": "7ee4f51063aec1a373f193f1af43f7dd836ec498e1c8ae91cd548c125528de9e" + }, + "jp": { + "updatedAt": "2026-01-06T14:17:57.789Z", + "postProcessHash": "5d9d95768fe6fc8bdbb96c7df2e76a3ceb0e2bdc632f55bc3f266a722f53f2f4" + } } }, "a4265198145ae0d412153c5abd0417df656a57368c80042916957e2c00936a91": { @@ -19067,15 +19445,15 @@ }, "9931802ecdd96dd279cbba1f93021198d1a62e9cbfb04ec3075beff6e7c84d64": { "jp": { - "updatedAt": "2025-12-29T16:46:16.510Z", + "updatedAt": "2026-01-06T14:17:57.741Z", "postProcessHash": "6aa26d343f7cad0dcbdf9d30b8e43daa24468f95c182384cd1dc148469802001" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.523Z", + "updatedAt": "2026-01-06T14:17:57.767Z", "postProcessHash": "c1d5ae3755cf2f3aec94f3e5014da0c23df1c65eca421019ea9895b5ee3e9bbf" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.524Z", + "updatedAt": "2026-01-06T14:17:57.778Z", "postProcessHash": "03c55235691efab4aab7be4c15e49b1d098ed87b6212fa30141ad1a14d071ec5" } } @@ -19083,15 +19461,15 @@ "acaee03135e8e96bcdcf34c15546b735f613d1e5ae560184c16e47ce55501204": { "8a07567dde3044656ee0f3a1ecdd3437e3653bc1dbd011b4bab9edb2c0e04c95": { "jp": { - "updatedAt": "2025-12-29T16:46:14.402Z", + "updatedAt": "2026-01-06T14:17:57.724Z", "postProcessHash": "8648ef54d3c3a8ad4a57813b9b941547469ddf21c48f851421c8b698c7184537" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.288Z", + "updatedAt": "2026-01-06T14:17:57.618Z", "postProcessHash": "e96961a356f3060dc060bd703c21f38ae4030b4f1450be5d96478b989f2d44cb" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.405Z", + "updatedAt": "2026-01-06T14:17:57.727Z", "postProcessHash": "d051e9705019f7043fc12fe120b26dfac0496a205136a79e2c2db1b2f147a5ec" } } @@ -19099,15 +19477,15 @@ "ae900fe149a5b14ee7a25d9f850a7fed9bbb24da3497c1861285d73a625852e6": { "178aea88d150360011d964d55863a4f9f7585cb6ddc5b56d142898d29ed03414": { "jp": { - "updatedAt": "2025-12-29T16:46:14.376Z", + "updatedAt": "2026-01-06T14:17:57.703Z", "postProcessHash": "c3afa345369c294def0cd73965f576695ca2f1dffe6cfe38b85ace606999292f" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.377Z", + "updatedAt": "2026-01-06T14:17:57.704Z", "postProcessHash": "1f5565a091e263cc1dd566eb86c4ece5e263c72e868bebb8faad818d8ac71a9a" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.376Z", + "updatedAt": "2026-01-06T14:17:57.704Z", "postProcessHash": "81e4268a736c31c17047d26664f6a22ed65b7f1a2904a187cf38fc355beb7ea5" } } @@ -19115,15 +19493,15 @@ "cc14be3df8410373edcf3ea623a34273b7005b0668dcb8d261ee3fbada8f972a": { "029f36173935f1b92553f610da6f3be5d9b0976fea74e17265186d40a9f8f8b7": { "jp": { - "updatedAt": "2025-12-29T16:46:14.409Z", + "updatedAt": "2026-01-06T14:17:57.731Z", "postProcessHash": "6da2924223530f0ef8b14d56dba2f4401cbe8fa92983ddfafaf4d1bd6154d41f" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.410Z", + "updatedAt": "2026-01-06T14:17:57.733Z", "postProcessHash": "2ddb2e9b1ed315de0cf07a39a10f4b1ef3bf3b847c44bcd993bf2eaccecd0749" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.411Z", + "updatedAt": "2026-01-06T14:17:57.734Z", "postProcessHash": "967772b2cbad92533c14a24498950a089d0d7df00d4a3e24f7f66bbb9a0d4d85" } } @@ -19131,15 +19509,15 @@ "d8cbf85de396e8d762bfdc573d415e4482bb687b9017d25d153c264728283316": { "62c5c6e1debf8e9f65330683895c791394dfa2b8f1cab9a3413558667b58ec1c": { "jp": { - "updatedAt": "2025-12-29T16:46:14.400Z", + "updatedAt": "2026-01-06T14:17:57.722Z", "postProcessHash": "2252db4dfc3354fb1a7dd1bdf301fb2457479a789de100b8aa96e76dbef61dbc" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.399Z", + "updatedAt": "2026-01-06T14:17:57.721Z", "postProcessHash": "349b791ee8271e741426e4d3a9f83ed6dee72ba5563412acf1b3d7ffa9853d1e" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.407Z", + "updatedAt": "2026-01-06T14:17:57.729Z", "postProcessHash": "70e589e843a5e37904ad0c2668f382fda0cdd8663dad7d6e018049f8965b4076" } } @@ -19294,6 +19672,20 @@ "updatedAt": "2025-12-29T16:46:14.423Z", "postProcessHash": "cecc0b6b27e59dbc068a9a3835a2236320f8145222150a09421419ddd0b777bf" } + }, + "e69a6814d15c9b5efd73066a70fe0fa534334e6a36e32e5f880cccdaacc54f28": { + "ru": { + "updatedAt": "2026-01-06T14:17:57.781Z", + "postProcessHash": "ad8517205badd9e56b617b266bee8db36e09b8a019e00384b96ee7cfc9324476" + }, + "zh": { + "updatedAt": "2026-01-06T14:17:57.784Z", + "postProcessHash": "aaebd49584cd120c4d65300007a78094a5c5858183203948da0793739f62211f" + }, + "jp": { + "updatedAt": "2026-01-06T14:17:57.786Z", + "postProcessHash": "debd5ea8f0d2ee7f190e30b90732277488d1a6c11d416baa2919364d64b95aac" + } } }, "f6c796e2a223d7f3109d7a0e087b02b576111cee44e1affe20a492544e19a35d": { @@ -19327,15 +19719,15 @@ }, "d57f3c60177495ea1ca8703820de553463838ed7e39422a83952f4f795caf7d2": { "jp": { - "updatedAt": "2025-12-29T16:46:16.506Z", + "updatedAt": "2026-01-06T14:17:57.740Z", "postProcessHash": "09b84e104fffecd51f3aef65ed61479edd2e32044e6f85bfb6fc2e7f5301621a" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.511Z", + "updatedAt": "2026-01-06T14:17:57.753Z", "postProcessHash": "a8c1b5911e5f1e18e122d0b2ba3f6b6475749fdedce48aaaec29402fb5ee0cf3" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.512Z", + "updatedAt": "2026-01-06T14:17:57.765Z", "postProcessHash": "af4ecae31266b266df92c7f44121c60e2a6ade6684e0a733b15e57877650db65" } } @@ -19343,15 +19735,15 @@ "063fed20736d4477e2229fcccb85e98116869443c6a55d44a629fcdf41af8097": { "7f5388455b7501e345c1421c779eb60c54a09041e604f2ab4fe8d4e90d30f442": { "jp": { - "updatedAt": "2025-12-29T16:46:14.521Z", + "updatedAt": "2026-01-06T14:17:57.941Z", "postProcessHash": "2ee85dca939ab6df59f6d6235edb24e871de0f61263e541241026cb0344793ac" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.521Z", + "updatedAt": "2026-01-06T14:17:57.940Z", "postProcessHash": "886b514d462ab4dc32934cea98d07d2464572c143db9fe6b3c58ac5500178c13" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.520Z", + "updatedAt": "2026-01-06T14:17:57.938Z", "postProcessHash": "0bc89a48ee02772e488116211cd13115b60501af8dc0ff475e4ee3f0afd9be19" } }, @@ -19381,15 +19773,15 @@ }, "7676a41c6d1e719ba8b13b8d322ace741b11f0fe672d3b38397d5e1d23081fd0": { "zh": { - "updatedAt": "2025-12-29T16:46:14.371Z", + "updatedAt": "2026-01-06T14:17:57.697Z", "postProcessHash": "1d447f51f2f16b63cc6084bd0ecf680602884c7400071565a098bc5a6ab71204" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.372Z", + "updatedAt": "2026-01-06T14:17:57.698Z", "postProcessHash": "d68d18d86c53ee9ec2c23ffa0555df0bf2595ff2106aae04c29ff0b0edcf9a68" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.373Z", + "updatedAt": "2026-01-06T14:17:57.699Z", "postProcessHash": "667a758da511156f927130cbbb98f51cd2f931e696e79e31e7228e43bc91af1b" } } @@ -19397,15 +19789,15 @@ "18909e78fb8faac8cc03a75ea4cd8dd121bcb0a77585782c21cff69accbaf023": { "a2e6924b47ebd77edde457f769848cef9b8dad9baaa33f85fdaea23f6bf1d821": { "zh": { - "updatedAt": "2025-12-29T16:46:14.494Z", + "updatedAt": "2026-01-06T14:17:57.914Z", "postProcessHash": "9a9628d342e8f6dc2dbe7a3a800080b1bb6c5d9a0547e1293c489adb2d090c1b" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.503Z", + "updatedAt": "2026-01-06T14:17:57.919Z", "postProcessHash": "a8397ac4f0be546d168971e8665dea9fabc5aabafcdade39a4feed2fd5874324" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.486Z", + "updatedAt": "2026-01-06T14:17:57.909Z", "postProcessHash": "d0bb911adc260c897a35412b423dce88479a8d0187c98e045b8b822802ad64be" } }, @@ -19424,15 +19816,15 @@ "1c4c51a336d1e6dee310539258abd450be7834df46548255e22fae5d3686a247": { "e554f5f0de4eb19dd4293e28213211802e65c6533c3bb4dcd80a8d90c76744fd": { "jp": { - "updatedAt": "2025-12-29T16:46:14.454Z", + "updatedAt": "2026-01-06T14:17:57.850Z", "postProcessHash": "0c9a0dc0569d3622351fe69d6f34ac345d72f2d53d4bca3e825fae29ec2c8be4" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.516Z", + "updatedAt": "2026-01-06T14:17:57.934Z", "postProcessHash": "e6baa21e7648273d932da2067bd1a2a005aaf37e5d50fa50f849b60c73876f16" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.509Z", + "updatedAt": "2026-01-06T14:17:57.925Z", "postProcessHash": "757c28c9b956e97b74a62d6a04cd75818ad889123651b746b26b68becbd904e9" } }, @@ -19451,15 +19843,15 @@ "39df2af9870d3b0cc9ef00711b97902ed3b5f6df0419aadf0841770290785d7b": { "a18203de1411607a70e1437450eccbf17a073e8daa45c5c42ee8e0cba812d5f3": { "jp": { - "updatedAt": "2025-12-29T16:46:14.436Z", + "updatedAt": "2026-01-06T14:17:57.827Z", "postProcessHash": "02981fe238f07694349cd6662d6f367362aae33ee712552259d82106dbc86164" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.383Z", + "updatedAt": "2026-01-06T14:17:57.821Z", "postProcessHash": "2dc86d5c35a7cb0c66e2f4476717ef823ff2b0d43be1466c4a8d16121a3a20b8" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.370Z", + "updatedAt": "2026-01-06T14:17:57.695Z", "postProcessHash": "72159bce6a7dabffc4c6faa94b55c651524ca392f6ec5c0aaa8b350ebd514991" } } @@ -19467,15 +19859,15 @@ "40220941c00a4eef0a2069b02906e525beca179d4a354e0a2e5a911c363640b5": { "989d53822380f38745d79c1b84562bfb045e678799d0f7110947e9bf5d599700": { "jp": { - "updatedAt": "2025-12-29T16:46:14.445Z", + "updatedAt": "2026-01-06T14:17:57.837Z", "postProcessHash": "4cb09a64312160c87472aad998940f2b29af484bc7b3c887dcd8f01f7b444628" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.378Z", + "updatedAt": "2026-01-06T14:17:57.707Z", "postProcessHash": "5caeea8e13e35337bf86babfa9f5a350f16fab4124cf08f6b4fde5f92b9ba661" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.387Z", + "updatedAt": "2026-01-06T14:17:57.824Z", "postProcessHash": "ab5458588f43582196581f0b965f528004949d9de558e29cfb8606835ebe5b38" } } @@ -19483,15 +19875,15 @@ "505cd1f1060fe51777563a177f877b84419bab382656d36901ea1615cd4c5f44": { "0a35a92e535e80b3a150fd73abbc1751ae0fa2688543577feac7ce7f4de53ae8": { "jp": { - "updatedAt": "2025-12-29T16:46:14.457Z", + "updatedAt": "2026-01-06T14:17:57.854Z", "postProcessHash": "28cc75dc04596015d3174738e4ce4cf3881821aaaeeac59a1df9c1e5f2e179e0" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.438Z", + "updatedAt": "2026-01-06T14:17:57.829Z", "postProcessHash": "f3792aea58cd333414869a80f9af57ebbbe063ad2303cd940ba78aadb4f6008d" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.446Z", + "updatedAt": "2026-01-06T14:17:57.839Z", "postProcessHash": "a7b4d41b65ff170a9ea22f76b938231e6f555de29b2e2144ccc4adb2d49b193d" } } @@ -19499,15 +19891,15 @@ "67e57dc33f46fa357a2eb4f340d87b17225b6a975701da70873323aa80e25052": { "e431ffa5cc74af67d9f087cdd47582b18d0fa8c78bb4467cdddf3350e7c9f2b8": { "jp": { - "updatedAt": "2025-12-29T16:46:14.466Z", + "updatedAt": "2026-01-06T14:17:57.866Z", "postProcessHash": "4bbfe75a58a9a094e4afe17a67997cd41dd863b56c366e909278e821bc0fefae" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.465Z", + "updatedAt": "2026-01-06T14:17:57.865Z", "postProcessHash": "f2c89a8deb708462dcc86022c87e4a3921d196635920e81fafa5cf3a3a743df1" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.466Z", + "updatedAt": "2026-01-06T14:17:57.865Z", "postProcessHash": "dd01575ef0d018272e40eada9c99645d47339060fdeb365da8be4642328e5d6b" } }, @@ -19526,15 +19918,15 @@ "6d56ddb9a5b3ccdf4eae29f57959e9374f0ff177ac9800e0d460527344dc64a0": { "0828f5e8f879eaff39ae8686b298e753cdeacad3c2b4543b71425525219f9c9d": { "jp": { - "updatedAt": "2025-12-29T16:46:14.459Z", + "updatedAt": "2026-01-06T14:17:57.857Z", "postProcessHash": "043d084df1b2276263a134466da06164b4265ae74d8ba73e2a384ca8aec9ab89" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.461Z", + "updatedAt": "2026-01-06T14:17:57.858Z", "postProcessHash": "5a870d87771f7f51b7a2126fe6779416d950675e56336da03e9f9a84fa1a7eab" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.460Z", + "updatedAt": "2026-01-06T14:17:57.858Z", "postProcessHash": "cae86687b0e56a94abcd5d81dfc1d5dcfd77eb47bef57c96077e7be747bf4f20" } }, @@ -19553,15 +19945,15 @@ "839030474f427a460a6acfb9a8caa7662e1cd0c337e35995054bd2c956ad05d2": { "706368d544074057b5fc0c6009711a33093a9475013e238b17fc5efaa65612d1": { "jp": { - "updatedAt": "2025-12-29T16:46:14.440Z", + "updatedAt": "2026-01-06T14:17:57.831Z", "postProcessHash": "9c97c196dc45ecf9fa55e6869537f8c510762e56c80e711f03dd412295366c1a" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.443Z", + "updatedAt": "2026-01-06T14:17:57.835Z", "postProcessHash": "67b8e340c665026a24c580b7982ce697638efb626d0c2b3668b3755abf8b3754" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.453Z", + "updatedAt": "2026-01-06T14:17:57.849Z", "postProcessHash": "868861b6480309268a332e8a4d81284cf6e37f3b30970494e91deef98da56de2" } }, @@ -19580,15 +19972,15 @@ "90511d719daa226bb864d0d2bb0fb993971dffcc30b3fda0d86ebc7ff7157a9f": { "888beb35b0eff4785517b52bba7c01e8651e6b39b235dcf0f4d1b64d155f5311": { "jp": { - "updatedAt": "2025-12-29T16:46:14.385Z", + "updatedAt": "2026-01-06T14:17:57.822Z", "postProcessHash": "b2603fd31d0d5026b262d7af1b7cabc65ff1e139bb6c97efa2851ca85a7b77e1" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.382Z", + "updatedAt": "2026-01-06T14:17:57.820Z", "postProcessHash": "768dd559c19f5d7d908b82245fd265883d14bb8468a48103612a1b8772a84c90" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.451Z", + "updatedAt": "2026-01-06T14:17:57.845Z", "postProcessHash": "fed39490a48dd6c2097df901770349c2aeafc6fe722035b3272b7d395d905bd1" } }, @@ -19607,15 +19999,15 @@ "a0e5cd4bbd52095f645996d5a20cc34d462aed2b014ca882138e4ede52f7b410": { "b82f6c4650551ebe5f3c0e03e15ad59d0e9d79edf78e121c65d4de264d1e000e": { "jp": { - "updatedAt": "2025-12-29T16:46:14.386Z", + "updatedAt": "2026-01-06T14:17:57.823Z", "postProcessHash": "351078a5538a9f6d285579f25a5fae91dd088c6353d1e46d3545616a0cde1ce7" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.388Z", + "updatedAt": "2026-01-06T14:17:57.826Z", "postProcessHash": "7af5dfa84bd1a3b103a94ed818d28d9337e89689410cfac51b8d94c264146d1f" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.370Z", + "updatedAt": "2026-01-06T14:17:57.694Z", "postProcessHash": "e0570f566f1f50b92950d535c27450043b7bb8302d6bbcde7e9b145e0ecd04a0" } } @@ -19623,15 +20015,15 @@ "a65902363effe5836b0d9b1a3304f47945b1560915ce6fb45c560e678eb9a539": { "559af2b30070d162a884137e78494631c1fb2dc0f934eb9c73be1908b21f1a29": { "jp": { - "updatedAt": "2025-12-29T16:46:14.461Z", + "updatedAt": "2026-01-06T14:17:57.859Z", "postProcessHash": "0cdf2a1059f45ae55415862aeba44b5e47925a607e4d77b012f5486531cc4ce4" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.449Z", + "updatedAt": "2026-01-06T14:17:57.842Z", "postProcessHash": "e0b1b777bdf85bf3fcbf38f505ede90154215315a38144ec37db37d9be3c1de0" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.460Z", + "updatedAt": "2026-01-06T14:17:57.857Z", "postProcessHash": "b2c7a87f4087af51695b0055a8903a52792cae36dd0eb232877c7ed54b9971de" } }, @@ -19675,15 +20067,15 @@ }, "d33aa8cc58f9b273dbab671b7f3cba0e4b3f2f013c58de0de96dddcea617223f": { "jp": { - "updatedAt": "2025-12-29T16:46:14.467Z", + "updatedAt": "2026-01-06T14:17:57.867Z", "postProcessHash": "596ad2365d9c68db9c8380f53b60a9d2fa3902c6a71999a36c28c0c71b02c51f" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.467Z", + "updatedAt": "2026-01-06T14:17:57.868Z", "postProcessHash": "d30ed2d04b9182fa0ebb1766f26dc2ed7aa21e6436ec61df4d3ce01f11f4dd21" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.468Z", + "updatedAt": "2026-01-06T14:17:57.868Z", "postProcessHash": "a7a4e38f6ce8a49ddc85618b2865d323850fc026776f09aa7aeb8dfaf62ceb5d" } } @@ -19705,15 +20097,15 @@ }, "a2f2f5104e9e5d4624054cde350c38a62a70bfc58bb3440b149ebfe4b864898f": { "jp": { - "updatedAt": "2025-12-29T16:46:14.475Z", + "updatedAt": "2026-01-06T14:17:57.879Z", "postProcessHash": "9b5002f9741b39f6236c7530fa084ea935e301b9cb79940d707d542fe94deb2c" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.476Z", + "updatedAt": "2026-01-06T14:17:57.880Z", "postProcessHash": "840498c47c9e54c6a190269f652aa3a14f8c2e3418d27010be51fbd1cc299e81" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.476Z", + "updatedAt": "2026-01-06T14:17:57.887Z", "postProcessHash": "cf3aa755f7307c1dca38fce018e303742f515069a175497791a1ee765274c531" } } @@ -19721,15 +20113,15 @@ "bcc86da4edd4f06169f90746ecfdbbcb5c15d530af9bb41d9716c0c160095c27": { "84ddeeec966f0e2dfd116753b726d6198217ab15321a4c0ae1b82e6a8f3e1e66": { "jp": { - "updatedAt": "2025-12-29T16:46:14.378Z", + "updatedAt": "2026-01-06T14:17:57.706Z", "postProcessHash": "2aa69280cfb0677d90703141f55f84a615224c3a0026750f0fc94d0b54642d5d" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.456Z", + "updatedAt": "2026-01-06T14:17:57.853Z", "postProcessHash": "ea45e02a54de9f6813b22f7a95b70089a788d591c03afcacb39d09a65ddaec3b" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.444Z", + "updatedAt": "2026-01-06T14:17:57.836Z", "postProcessHash": "d60f2bfdbd4e141c75ca6b3ed047c27426561db76c9d0be5cf428f82d131dcde" } }, @@ -19773,15 +20165,15 @@ }, "5a44c1fb77ee9dc749b59207e3a6de3893929712872f288d180f8475d0b74851": { "jp": { - "updatedAt": "2025-12-29T16:46:14.526Z", + "updatedAt": "2026-01-06T14:17:57.874Z", "postProcessHash": "8a96a56bcc394179e0752bcd670c5680a4b4a5c07b9da19416e03870003c54cf" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.471Z", + "updatedAt": "2026-01-06T14:17:57.875Z", "postProcessHash": "bd7e3c9814428a9562f4fb341d2976723f1a82f8525c7951017b5480e04553e6" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.472Z", + "updatedAt": "2026-01-06T14:17:57.876Z", "postProcessHash": "71c041ca2f54c874ac75648b712de33a7106326a99aaf1e2b7d940717d6639ee" } } @@ -19789,15 +20181,15 @@ "c3c4a5cfc613b8b144029f13d913022c2d41ebc3c333e2fa61ed8d2f0df5a81b": { "e66af8a0cfcf657334fb0dec46bb2c8ae44a17ff27be743255dec8ebd2d523dd": { "jp": { - "updatedAt": "2025-12-29T16:46:14.463Z", + "updatedAt": "2026-01-06T14:17:57.862Z", "postProcessHash": "5fdcc9009084b9ff1961bc771d5c6bce2272a3210012115a98757c5cab2e0c9e" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.464Z", + "updatedAt": "2026-01-06T14:17:57.863Z", "postProcessHash": "7b9754ed156c08b7b2f0b0a7ab299d93790b9e2e7c27009fd53c974476edf274" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.462Z", + "updatedAt": "2026-01-06T14:17:57.861Z", "postProcessHash": "a174619288f6c43c4957dbdb012c3fdd5d39bb9980a3bf7a5a6eb32531b6ca65" } }, @@ -19816,15 +20208,15 @@ "d559f4bb7e0e75b052f6989f63565615397e09d8f05bc7535ae634a02281b78a": { "41bad05d87569563af64a625d8b65a4688fa0a40d7e5a6a9a09b635d45ce52a7": { "jp": { - "updatedAt": "2025-12-29T16:46:14.464Z", + "updatedAt": "2026-01-06T14:17:57.864Z", "postProcessHash": "3fdd00612e70e3cae7a1e39d26c5b03ee9a92b5e2ceb932c72b8c0f7c033429b" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.463Z", + "updatedAt": "2026-01-06T14:17:57.862Z", "postProcessHash": "72401db958722b24a0bb49f6a278f0d5e3da80b9ae0168640381a0baa39cb377" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.462Z", + "updatedAt": "2026-01-06T14:17:57.860Z", "postProcessHash": "1477fe535605eec7298c1085821274cd1da350565d7f5ab47003e932ef9f1a50" } }, @@ -19843,15 +20235,15 @@ "e54eba7f7c2e2d6d452b2d73f4934f9ba018e180585b2bbdb2f9f14bb9b5510d": { "d88ed4dda50a3c9ee265b067c0abda94e3cba629d2d6c9a695d77d254c4cd372": { "jp": { - "updatedAt": "2025-12-29T16:46:14.369Z", + "updatedAt": "2026-01-06T14:17:57.693Z", "postProcessHash": "cb3906b287649ad685240065e10ff08b549198661923fc9c00d343d61e7acb5b" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.381Z", + "updatedAt": "2026-01-06T14:17:57.819Z", "postProcessHash": "08e63e299dfd1eb81a8949cdc5c84ba8992dd13efef6e23cf22f27e03764013c" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.378Z", + "updatedAt": "2026-01-06T14:17:57.705Z", "postProcessHash": "b913aa5872232e20351dd82f607487ce7085e0a7d2c4fdb3d4f4c821c8a27409" } } @@ -19859,15 +20251,15 @@ "f871545252cead274f81eec090f4a37c79aad733b302ff49eedc5242ba29b1cb": { "5ee24061522cb5a7ed68e5bfa59c658c0cb620eff70e3736f5e3800597533e77": { "jp": { - "updatedAt": "2025-12-29T16:46:14.374Z", + "updatedAt": "2026-01-06T14:17:57.700Z", "postProcessHash": "97fa1940afda204bdfae7ef0698932fb1f20b77b3d6fb6646fa9497a9809f938" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.437Z", + "updatedAt": "2026-01-06T14:17:57.828Z", "postProcessHash": "939fc5a4ad8e6732892b5f5dcf196d5b3fce6ba93fe2421ee64635734622149b" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.437Z", + "updatedAt": "2026-01-06T14:17:57.828Z", "postProcessHash": "efd0113977183b8a85d939d6e198e8e58912431201e2fad5d94295dabc29f316" } } @@ -19875,15 +20267,15 @@ "faffe74d9a382667c3bae357941f229fd75f36539ad2c510a09ec0603f9a2fbe": { "6b948fe473605eff70a23fa450d8b860449256191d68e3b6b1702eb2624fdd18": { "jp": { - "updatedAt": "2025-12-29T16:46:14.450Z", + "updatedAt": "2026-01-06T14:17:57.844Z", "postProcessHash": "fce038ac7eb9a9aea16ee3f0df901d09ccc0fd593f417cba290813b2ce9f95f2" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.384Z", + "updatedAt": "2026-01-06T14:17:57.822Z", "postProcessHash": "5ca99c96764a95d0521b8cd6739cfd4b307ca883c1f9a78b8a30a951b7be8691" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.387Z", + "updatedAt": "2026-01-06T14:17:57.825Z", "postProcessHash": "5d303650a888e4ab0fa6aab3d5ffeecc10fb4e0fb75f0be41fa1964f7542915f" } }, @@ -19902,15 +20294,15 @@ "00f0f8e4c4cba686bdd32c7eb510c5ff9cf2847654153d708f69ef3d1fae55b2": { "4cdabdb9af849dd79c526565751107e9b1abf0b12889130ad0f45424328feb65": { "jp": { - "updatedAt": "2025-12-29T16:46:14.432Z", + "updatedAt": "2026-01-06T14:17:57.900Z", "postProcessHash": "0ba6b57f977f1b517bb4227af1faf73f488661d46a20d72633c00fe8e72a5b1a" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.490Z", + "updatedAt": "2026-01-06T14:17:57.912Z", "postProcessHash": "cd17fafdcd9a2869c413b706e9c5f5ea120fa6a51d6c660a908b2bc4ad37adba" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.436Z", + "updatedAt": "2026-01-06T14:17:57.907Z", "postProcessHash": "4172fce96abb6821ec3afe861bca4d4e47a0eefb1568583cb1ffccd901484bb1" } } @@ -19918,15 +20310,15 @@ "0819a7d3c5f71c0454ca26bc207870bf57571e75b815f9e6048c755eba88da5b": { "7c183351205668c7bd2a340b5ce1c7a91fbae1b7555a939a4d8e6611fda87e09": { "jp": { - "updatedAt": "2025-12-29T16:46:14.541Z", + "updatedAt": "2026-01-06T14:17:57.917Z", "postProcessHash": "3e53250002a908508ba5bfd86b8a9ee2d3f4bda26965ef6075c0213a21787f10" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.492Z", + "updatedAt": "2026-01-06T14:17:57.912Z", "postProcessHash": "17c2033236855663dce4e58b68b5c41ac19d8b7d0a445ddadc98c503874f57df" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.431Z", + "updatedAt": "2026-01-06T14:17:57.897Z", "postProcessHash": "9f57326925ef01eeac617fbc1bdaf13ffbc6f980ba1de6c05f9551ccfd6d7baa" } } @@ -19934,15 +20326,15 @@ "0e624ceaf217ed28aa49746f8a0d8e6f11f50144de84c79c5bfc3cee61b7f1a3": { "2c646c9eed127c879e1e79d90542ee56c28b87e87984ce2e15248bed89ca7aa7": { "jp": { - "updatedAt": "2025-12-29T16:46:14.433Z", + "updatedAt": "2026-01-06T14:17:57.901Z", "postProcessHash": "76364bd2517931a7a74ac987b1cf2738c8bcbafac975d32d17be16f77e0c6c8e" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.434Z", + "updatedAt": "2026-01-06T14:17:57.905Z", "postProcessHash": "12695e98fe6a6a94fe5b55da6421abc3c339df4dc206815448fe5171fc39fb43" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.493Z", + "updatedAt": "2026-01-06T14:17:57.913Z", "postProcessHash": "adac4629354df03ad09b77e6979c201c5c3ac8d7871d6002afed0dba07e40744" } } @@ -19950,15 +20342,15 @@ "224c18d31f8261a76b7a8b634ae516b4db00ea56c8386a0105219e27c840b99a": { "50eb9caa6eab918f879445fa3068f5225b4c5a8c96b081ac18c8bcad6ac27df7": { "jp": { - "updatedAt": "2025-12-29T16:46:14.512Z", + "updatedAt": "2026-01-06T14:17:57.929Z", "postProcessHash": "b4e35146f8a449507e0f86cbceef0422ed1250d4c8b994feebb1dc0fc866cc9e" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.511Z", + "updatedAt": "2026-01-06T14:17:57.927Z", "postProcessHash": "5b80c82d57685d0df09fe0a9c3f49baeb7809892a807e90f0a4e59e395d1c83e" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.454Z", + "updatedAt": "2026-01-06T14:17:57.851Z", "postProcessHash": "9f50654636e31a5dc947bc54e0104cf68d1b070a4e9b3d51aad09dbb7eaca174" } }, @@ -19977,15 +20369,15 @@ "2395cf7e448505fe5dff52c83b83b0eb98f08d6b30b33dff50d6380fa7e5932f": { "773ced00aebc468e3a46c4cc78b523aab8880ec08d2fdf077d970783ea2663cf": { "jp": { - "updatedAt": "2025-12-29T16:46:14.506Z", + "updatedAt": "2026-01-06T14:17:57.922Z", "postProcessHash": "c49850125fff8ee458e8f0de4f26d446c79789229afed8976e76cb416cf0ea87" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.430Z", + "updatedAt": "2026-01-06T14:17:57.818Z", "postProcessHash": "45c1c37276d5c33a5f5b3d6b7adc05b35510be8963cfc596a65ad38d4a373f57" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.490Z", + "updatedAt": "2026-01-06T14:17:57.833Z", "postProcessHash": "48b20004d870affe90e46b6c2dd910d51d8ca94b6c6f348d5aa9bfa118fc4b05" } } @@ -19993,15 +20385,15 @@ "4267fd6d09b46579b7a05881566bd86bc360158a24ce3eb410c8492cdc79fb22": { "8ac15a7c8118a1f822e5766749040b60de68b96aa79518290966e5ca1c45e8d2": { "jp": { - "updatedAt": "2025-12-29T16:46:14.518Z", + "updatedAt": "2026-01-06T14:17:57.936Z", "postProcessHash": "1a4caf55038f820ce76c97d8207335f42c6773ad5d3db3f2bd94f8723b693d78" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.516Z", + "updatedAt": "2026-01-06T14:17:57.934Z", "postProcessHash": "50921be00e63203e3a42fea891298ddaefa29e927974172b5ca1aa1416a6b9d8" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.519Z", + "updatedAt": "2026-01-06T14:17:57.937Z", "postProcessHash": "8de28758f0ce3b17b99392544acc7ac114bf2318094f564239e07391ff75e21a" } }, @@ -20020,15 +20412,15 @@ "56433df9b9399e37671c12717a7e397ab2aec3e086e226fcf8bb3a338e336f38": { "899571967dfce1a8941dff3771b1f23612d934928bb1aef923cfe5bf35044d6d": { "jp": { - "updatedAt": "2025-12-29T16:46:14.503Z", + "updatedAt": "2026-01-06T14:17:57.920Z", "postProcessHash": "bd379b166fc7006f740992c64b23f90eb06403a72369dafc7fc7d3046ffa91c2" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.427Z", + "updatedAt": "2026-01-06T14:17:57.815Z", "postProcessHash": "23a3b084560a0f780be6d8859b515f2e1affc8a675ae74e6659af024a9c12a3a" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.432Z", + "updatedAt": "2026-01-06T14:17:57.898Z", "postProcessHash": "d56aefd816fdd7b0eab0fc11d9979290982a331c22f971264cf0ada5297a8876" } }, @@ -20047,15 +20439,15 @@ "7b92c9515ab243345c2edd443a9f36e432abeb01df31d0d197db37f7733b65f1": { "5ee9cf90ed14f1a1e4f53532e4ddf568dfdf018045fcb0f4857e0860a4f59d17": { "jp": { - "updatedAt": "2025-12-29T16:46:14.511Z", + "updatedAt": "2026-01-06T14:17:57.927Z", "postProcessHash": "161bcac18157e7016c1d54ff844edc6315fd2290d232511d44bb1ce170e372b5" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.458Z", + "updatedAt": "2026-01-06T14:17:57.856Z", "postProcessHash": "595fce49adfcaf7e686f9c9032e310a944cb15e11a7825d1797f0e53e80ecbc4" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.514Z", + "updatedAt": "2026-01-06T14:17:57.931Z", "postProcessHash": "310ac316a791e9d418086b595bc3147dc80c881b2490d7713532656df473cfae" } }, @@ -20074,15 +20466,15 @@ "8150184b8463d89e5a92277a564104c399220d435ffb6ec7e6d2560672bb49d6": { "65ef97770913247f917baecc24d78605da1a7fe09e65d74352bcc872ecee75f3": { "jp": { - "updatedAt": "2025-12-29T16:46:14.510Z", + "updatedAt": "2026-01-06T14:17:57.926Z", "postProcessHash": "1453f5f098df76b5ca801c256f80b92fae4f652eacbf570c1fe82567ff94514c" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.456Z", + "updatedAt": "2026-01-06T14:17:57.853Z", "postProcessHash": "45affd13c720e2c1b1d35ffeae2551fb472564d3c656b6a353dba8b24bb26790" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.455Z", + "updatedAt": "2026-01-06T14:17:57.851Z", "postProcessHash": "6c5e1a9f05f50fa1260b81ddc4d58b1f7f8336f807e6194f95beb17ce3fba731" } }, @@ -20101,15 +20493,15 @@ "8af19e1098601767cbf89d205cfc0d3cd2c79ba5ae84fa11d9cea6cc91850951": { "1ea6cb562e40b65d31dc3a004ea35849a51555792b4b7af61deb33ec7dcef5a2": { "jp": { - "updatedAt": "2025-12-29T16:46:14.452Z", + "updatedAt": "2026-01-06T14:17:57.846Z", "postProcessHash": "d2bdd617c67f6e047b9d8a6df5254f8097312dcf4172407144e09bd1e2ed87b3" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.504Z", + "updatedAt": "2026-01-06T14:17:57.921Z", "postProcessHash": "4f88fc8506e03f3d67d8c61bf8fdc831ea8ae1c9ac4e9a80508c79029ccf91f7" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.457Z", + "updatedAt": "2026-01-06T14:17:57.855Z", "postProcessHash": "fa249089ef796bdaacd00ecc2a1bb51cca8df31e75cfeca32c2a6f2c72ba7889" } }, @@ -20128,15 +20520,15 @@ "8fad6511e155deebc0c7b7055ddf993b7213668bd651d77b46f4fef11c363990": { "00a2be5a931770b44b5dabd0013f35d169228fbee45d460fc63c58245bf78264": { "jp": { - "updatedAt": "2025-12-29T16:46:14.448Z", + "updatedAt": "2026-01-06T14:17:57.842Z", "postProcessHash": "7a9621f3b4e8a8ffbe96ba5464fe444683347f2ae00f3d0b688639c87f4aa0f7" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.442Z", + "updatedAt": "2026-01-06T14:17:57.833Z", "postProcessHash": "d2b05f7c0d65da681eea171c5c4956b1a7c5fb6f7ee665e58b6afad06e39d39a" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.439Z", + "updatedAt": "2026-01-06T14:17:57.830Z", "postProcessHash": "3f0e8016cfe2a85865be2a746b1482dd76a2239fd9394b925a7221ae9e63c7b1" } } @@ -20144,15 +20536,15 @@ "9c4e28b8ca9495afc149856472ed437de0b32bd3bd6c56ac4a4d4e1b43fe6351": { "fac18639f9943a62c5d07663c6a681ee610f19e3b716dd3c1889c591380616e7": { "jp": { - "updatedAt": "2025-12-29T16:46:14.452Z", + "updatedAt": "2026-01-06T14:17:57.845Z", "postProcessHash": "58b569dba3d014cedd2df4d5d39a348da84fce12c256a227aabd07a5edb33817" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.508Z", + "updatedAt": "2026-01-06T14:17:57.924Z", "postProcessHash": "648df7d5555e5874f5757e96751cc39ef2af1a21f1480b6829ec5fe12171735d" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.451Z", + "updatedAt": "2026-01-06T14:17:57.845Z", "postProcessHash": "389058faec7edec8862e8164ba94b80939e9868d11b2c0331710ac7e693879a7" } }, @@ -20171,15 +20563,15 @@ "9fd477532adc3dadf2dfed8071d354140eb7b667bd012aceca5476a9b5aeb7f1": { "cc0409c62d9e4b650b3ab8a4a2c2ea56b508c8a34ed0235cccc67f60cb557c17": { "jp": { - "updatedAt": "2025-12-29T16:46:14.440Z", + "updatedAt": "2026-01-06T14:17:57.831Z", "postProcessHash": "795811d806fd285a9c28b4f7f6543ac1c43c30d3e35570371977dad1a0379382" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.448Z", + "updatedAt": "2026-01-06T14:17:57.841Z", "postProcessHash": "657bb54c5e6324ec9d266a12b27863d1aac5bce2a1bf04dca26dcbada28a1cc7" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.452Z", + "updatedAt": "2026-01-06T14:17:57.847Z", "postProcessHash": "1b07e99d1640c3ed4002128f18be7436f5f8bab510fdc88fb0769d02a374d292" } } @@ -20187,15 +20579,15 @@ "a6ae8bc3564075f789b35e0d49da8a62594a8bb06f9690bba789ef78cfc292e9": { "1bf52ed247c8937e8664e15b1e9b1bcd0e5ac293d7ee7d115a60dc712f220e80": { "jp": { - "updatedAt": "2025-12-29T16:46:14.453Z", + "updatedAt": "2026-01-06T14:17:57.848Z", "postProcessHash": "ec91e4bab186e82dc52ba5563d738cfac173d730298d7ab68c0c278e3ea46c73" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.449Z", + "updatedAt": "2026-01-06T14:17:57.843Z", "postProcessHash": "a992ba42669168eeca7813d412f3efa67e8c9b5cff927b784f366f4de0c0e64a" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.455Z", + "updatedAt": "2026-01-06T14:17:57.852Z", "postProcessHash": "5b4ed66ab55b53826e2d247641da956d91fb8747c6d7c59308354d22872e6c8b" } }, @@ -20214,15 +20606,15 @@ "b24da7e78415a317d4fd792bce74b8acf47ca7b376eb80c5d2a81e9b874b5ec9": { "1b40db05914f87442600e04da552a114b9d6566703fff238531bf2dce4b3fb81": { "jp": { - "updatedAt": "2025-12-29T16:46:14.435Z", + "updatedAt": "2026-01-06T14:17:57.826Z", "postProcessHash": "0a5adcab2242c263ce324b570718ecbc305b0401480411587706453341a363b8" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.443Z", + "updatedAt": "2026-01-06T14:17:57.835Z", "postProcessHash": "1b6794ee7249b73f13435d9b86be2a71cc8363c287c58aa727fd089b938e2220" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.432Z", + "updatedAt": "2026-01-06T14:17:57.823Z", "postProcessHash": "19c2359ec99db4e2a45dad399cffa393e9d1be86afead98aee821b60eb0ef188" } } @@ -20230,15 +20622,15 @@ "bd066e14efb9c286ea6f6324b04ea5e37363afb94dde1cda3efc2008e77fe6c2": { "ac1b069ca0882ed4666acf6095038e0b7cb288b8596cbf3b1ce1e54a9df05e43": { "jp": { - "updatedAt": "2025-12-29T16:46:14.441Z", + "updatedAt": "2026-01-06T14:17:57.832Z", "postProcessHash": "4c4daef5f4db94d5ba3dfb3342a432d6126d936c6b24aad299abf8d454f59253" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.441Z", + "updatedAt": "2026-01-06T14:17:57.832Z", "postProcessHash": "cd4c4a9dfad3fb0b15b19a4936f9b9d3c350bf3ee6672cd306ac3b2ee74dea43" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.515Z", + "updatedAt": "2026-01-06T14:17:57.933Z", "postProcessHash": "2b116109b3b219cc6ba45dc1b4093ddff54f1d36d670c246283cf4b443f4ecad" } } @@ -20246,15 +20638,15 @@ "bf91c67796c6e32777f0840f1d8c0dac89f35de0d14c1139dd6dbf40f832fc76": { "e06158989a858c27f8bd73bda291193cf471adc5e5089c7af3495e699b7133a8": { "jp": { - "updatedAt": "2025-12-29T16:46:14.439Z", + "updatedAt": "2026-01-06T14:17:57.830Z", "postProcessHash": "297e98ea3aad68e9ffbccc0bf7b02257427f6c4ff887359eeb3c67e1b0ea5e6e" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.447Z", + "updatedAt": "2026-01-06T14:17:57.840Z", "postProcessHash": "664a404026abb06703cd561aa2718ad3784397a0b483ed8e10d1c1cc0838b285" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.450Z", + "updatedAt": "2026-01-06T14:17:57.843Z", "postProcessHash": "b71d4ebee0f656cd5cd9e372205f504822ce9ce2852fedb899f65c1cc43c4b0c" } }, @@ -20273,15 +20665,15 @@ "ccb6f7b23e140ff82e19fc0391ef805c0f15507170cf5f60a78b0ea7f7bcf295": { "7b7eb66a4c1f465cbb23aa2d3f377abddba9aaa6d13866786810216306d2eb6e": { "jp": { - "updatedAt": "2025-12-29T16:46:14.442Z", + "updatedAt": "2026-01-06T14:17:57.834Z", "postProcessHash": "1581f26ce67088f94dd7ad8c4aa97df6558268af1f7e3fe67f6d9b7e0da0dde3" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.382Z", + "updatedAt": "2026-01-06T14:17:57.820Z", "postProcessHash": "5248910e7f231cf89e4fa66478d436cb6cb245d90a48485eb1ddf1e004f32c1a" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.440Z", + "updatedAt": "2026-01-06T14:17:57.831Z", "postProcessHash": "184615b9cafb1ae587bacf076cbf14ef80f2781d19660d9337860b4329913a58" } } @@ -20289,15 +20681,15 @@ "d79bc535529875a738bd248165a718dae8d93446b748ae71439f9b822c83972c": { "1a78ff0ba0c6860dc7ce6357e1df29d3b791afd1f3ea81e2713f99d9dd8d0199": { "jp": { - "updatedAt": "2025-12-29T16:46:14.379Z", + "updatedAt": "2026-01-06T14:17:57.818Z", "postProcessHash": "a2d7f5974b6f454ac11680a0bd63edf78ba173f1a97f889a136c1d2e83b28a44" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.450Z", + "updatedAt": "2026-01-06T14:17:57.844Z", "postProcessHash": "daf68967a813f6644d6e2ed1d1363a0eea5c6b9bf84953ca583ad91f17ee721e" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.435Z", + "updatedAt": "2026-01-06T14:17:57.825Z", "postProcessHash": "5861a3e5141fa80c3580faa362da408f3c92042386dd8af88a9423090167520f" } } @@ -20305,15 +20697,15 @@ "ddfce8a030ea9a41c75ffaf59f53e35d31dae419777bf895033c3bb59f724f4f": { "208b0171b9edca76f341fabf5a8721e36aa0acf7bc2a179c676bc7f832d4decf": { "jp": { - "updatedAt": "2025-12-29T16:46:14.510Z", + "updatedAt": "2026-01-06T14:17:57.926Z", "postProcessHash": "357e8595e939e31858b9f811586cad754a77c7cdca0a1a6c9af41affe501f19f" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.513Z", + "updatedAt": "2026-01-06T14:17:57.930Z", "postProcessHash": "9157b73a252cb4140ce2e2eee4f438d01f02b5f1ede2aed8797dd98acb13effc" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.503Z", + "updatedAt": "2026-01-06T14:17:57.918Z", "postProcessHash": "fc92b9ba10dd79e16cb89a683c3085d94b207593160f487dc07df134243d4744" } }, @@ -20332,15 +20724,15 @@ "f181f03d87970ee159e60beef4cf41dfdb497fd8d950cab4164f13908b4a893c": { "7faa2cfd4739cd08c7746e2c9d5cf78d1e43b82946d2327a789aa6199df45737": { "jp": { - "updatedAt": "2025-12-29T16:46:14.446Z", + "updatedAt": "2026-01-06T14:17:57.839Z", "postProcessHash": "62ed74b53cf4ee4d6944c5ed0a0c2ca7de6b3506bb7ab1bcc9a4eb368a27914f" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.514Z", + "updatedAt": "2026-01-06T14:17:57.932Z", "postProcessHash": "a819260f1ca4015ded8e77db92022161ab90d96d087678bb23e243970042f055" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.512Z", + "updatedAt": "2026-01-06T14:17:57.929Z", "postProcessHash": "ac5550f74d4765fd0fdc289c761170f85bfbacc065c0cf55d87f3890f9f7d926" } }, @@ -20398,15 +20790,15 @@ }, "cfccb658dce2deb29ba361f3fe392a39785df1da4c6a5a2d8c806c027d66ebda": { "zh": { - "updatedAt": "2025-12-29T16:46:14.587Z", + "updatedAt": "2026-01-06T14:17:58.048Z", "postProcessHash": "a4ff7df87778686ae1b8a662af71432bc48de04339cf911ab645cd75ad09db40" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.587Z", + "updatedAt": "2026-01-06T14:17:58.049Z", "postProcessHash": "fe37dcc49f6cb5321977dda8c3cee59f62f3ca3e091167f063a1e8675887a700" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.588Z", + "updatedAt": "2026-01-06T14:17:58.050Z", "postProcessHash": "ccab6f7c2d2d0a5f2c10450ea00600d3cf24c0308a4a7da2513211fb0b724e34" } } @@ -20414,15 +20806,15 @@ "0f2ea76e0db5a6d5b78533ea69f6bf742d59e3c92cd69159341e1c7049a2aa97": { "9da14b2a7b04a5c4ff51174e32fb113e58f6e2c9b60265a9616f729614a2c9ba": { "jp": { - "updatedAt": "2025-12-29T16:46:14.550Z", + "updatedAt": "2026-01-06T14:17:58.003Z", "postProcessHash": "89be55f3d587de60e8f8ef4d0d9c0af0a7f561cfa9e07e7888d04257a8147c5e" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.494Z", + "updatedAt": "2026-01-06T14:17:57.963Z", "postProcessHash": "2f6e66107851d8b0f524ff57db90e6a0b36e56f1833139593ce1bdfee4abc106" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.480Z", + "updatedAt": "2026-01-06T14:17:57.894Z", "postProcessHash": "a6b728474bf8f0d1900f629a79c27a183c91d252f1abe242ee02a9f8225a3ab1" } } @@ -20430,15 +20822,15 @@ "10434de80b8f7631a41e8302a81a53ee7a3ba2207f6b8c0e029fb257d3df5290": { "f5fa789355a9b2e73239700688ffe0178dbe2df95ecb160944f05217ee8ad885": { "jp": { - "updatedAt": "2025-12-29T16:46:14.565Z", + "updatedAt": "2026-01-06T14:17:58.032Z", "postProcessHash": "ec58a94ea222bccd3722e1d38c0087048f89d79e13ebd58f2d2448d5df5dd779" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.568Z", + "updatedAt": "2026-01-06T14:17:58.036Z", "postProcessHash": "d53cdac6cc40c72ee1db4a2f45e9f98ceca360c1c3d5873c433a3e06f2ba3d84" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.572Z", + "updatedAt": "2026-01-06T14:17:58.040Z", "postProcessHash": "2ccc2715cbec20718a7d0f36ce3519c5b2ac5f080fb3fe4413a3c4ed9e110249" } }, @@ -20457,15 +20849,15 @@ "11f2e3a49b018a860171016a699fa740752c02bc0aa8f5f79a0c57498338ec5e": { "9a24d918c600da936b99eeeae5ccbfc49470bf55f4b8fb491fe3cfe11f944857": { "jp": { - "updatedAt": "2025-12-29T16:46:14.577Z", + "updatedAt": "2026-01-06T14:17:58.046Z", "postProcessHash": "e4366dce510cc4f48f0d00369e03c85adef4bfafe85989d2196dd532788d4368" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.575Z", + "updatedAt": "2026-01-06T14:17:58.044Z", "postProcessHash": "6a465469d0d34f18f1eb8105d292a3f41535f05c48fbf4aa33662309d59ae45a" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.576Z", + "updatedAt": "2026-01-06T14:17:58.046Z", "postProcessHash": "2fffe74e37a38312472d291a24aacab6175711851f3af240ab29002e3985099b" } }, @@ -20484,15 +20876,15 @@ "259e682225d9b71ca3ea983216e57cd82c14b1caf25f00ea510ceadd3a70a0a7": { "e92b39158d271364bd947f52f560eff998ddd5a35107c0c0db7941eefd4f7424": { "jp": { - "updatedAt": "2025-12-29T16:46:14.517Z", + "updatedAt": "2026-01-06T14:17:57.935Z", "postProcessHash": "2c89c66fd842068f81582782f55bf3db7be45f312e194edd1ecf24710a3c3cf6" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.516Z", + "updatedAt": "2026-01-06T14:17:57.933Z", "postProcessHash": "05a5cc22f9465e028cab2e7e34dcf83f63d324a763ea677cf20d28cef1efbcca" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.514Z", + "updatedAt": "2026-01-06T14:17:57.931Z", "postProcessHash": "271c4a904089c31acc201d494a15da7ceaf4fe5e7fc5b7d5829a38fe7aa462da" } }, @@ -20511,15 +20903,15 @@ "3b9d54215d217a013fc4c62df11f26627fb8449a0489b74cc0f54e6b67f41ecc": { "f789cb25007915b6d83be12f4ecf35805e8a487063a7a59b47c497602ae41559": { "jp": { - "updatedAt": "2025-12-29T16:46:14.485Z", + "updatedAt": "2026-01-06T14:17:57.908Z", "postProcessHash": "b93942550d4f13e4608e61c4919aff309878cec0c1f3b8531deae7b6aa1d0883" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.428Z", + "updatedAt": "2026-01-06T14:17:57.889Z", "postProcessHash": "f5a9da63616a5911181b4d930ac4e090c10fad8359b2633cc9b381bda8c2a7e8" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.431Z", + "updatedAt": "2026-01-06T14:17:57.897Z", "postProcessHash": "e9038374412a2f7b78b931a63f5cde146683313481d475c86aac6f54a44b3fe7" } } @@ -20527,15 +20919,15 @@ "45c1b7f8bb110c2b37f34cc31252826058699640eef30ff8486c08761af44c43": { "605cfdad7a54e1e2f7b6a9998f6bfa8f8ff7b6a25aaa39281d58591fed0758e5": { "jp": { - "updatedAt": "2025-12-29T16:46:14.430Z", + "updatedAt": "2026-01-06T14:17:57.895Z", "postProcessHash": "fbf7e8253d0187de311233bddd5832411c03cd9064e4c0334022e4cb6341f709" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.485Z", + "updatedAt": "2026-01-06T14:17:57.908Z", "postProcessHash": "814ec02cee2de53fe8bd2e1598d25eb4c27881efa08aa2a67b0e31728a2816a4" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.434Z", + "updatedAt": "2026-01-06T14:17:57.904Z", "postProcessHash": "bd21a07fea48c9fca8b6c17b1175156c7875a9f88917b0c68a0eb099c765da9d" } } @@ -20543,15 +20935,15 @@ "4ebe189e35f19f43be4ad13fccce5f58bb2e700e31d412f381923ab97bb21792": { "11290a6b37b6e349be2a192bfb007c68cfed8458df5edab5bc48fab969b1ac0d": { "jp": { - "updatedAt": "2025-12-29T16:46:14.523Z", + "updatedAt": "2026-01-06T14:17:57.943Z", "postProcessHash": "6656edbd39c53530a097a9fd096b5be0b4120bf4d71ff935240d5d533ebcd316" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.520Z", + "updatedAt": "2026-01-06T14:17:57.939Z", "postProcessHash": "ec661db70f0a6dab8f1d9073da84301ffaf57103d2437ea0fb35a65c81e2ef6b" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.522Z", + "updatedAt": "2026-01-06T14:17:57.942Z", "postProcessHash": "a8fb52cca59fcc6a74b7266b07bdf13749495c619d03f29d979e380f0d9af365" } }, @@ -20570,15 +20962,15 @@ "57f74a21cf2fbbfbe54dc4c14d4c397429d32d51ea09651cbcba81a78f831e03": { "9aff12963c1e1db4b1b461b751a4d72394a3a26138c1713efd31eb628aa3b7c1": { "jp": { - "updatedAt": "2025-12-29T16:46:14.538Z", + "updatedAt": "2026-01-06T14:17:57.982Z", "postProcessHash": "66931505a3f15a367d268268cc1984c0bfb65868459f0325fce5d235745abf3a" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.570Z", + "updatedAt": "2026-01-06T14:17:58.036Z", "postProcessHash": "9bcedef2b69689de6ceb5eaa015f9648fde95e1b0ca222853a954b124f444b2b" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.567Z", + "updatedAt": "2026-01-06T14:17:57.935Z", "postProcessHash": "60c620d730dc7e14ea9489f823710af3e1f9b8696e30ec64221c7bfec060ac65" } } @@ -20586,15 +20978,15 @@ "5b953d0cf7f0899bb919bde841ec506eb51ea72c7ba0a6629bb4b5752d8de8e1": { "09d39aeaf27e0704134e70bcefb0e1beae4d8ae180b6967a491e3e56a5ed68c2": { "jp": { - "updatedAt": "2025-12-29T16:46:14.506Z", + "updatedAt": "2026-01-06T14:17:57.923Z", "postProcessHash": "55e3f290a454180d3fdebf903007754cdd354c8ab36a98108a836b9fe9ea8cf3" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.505Z", + "updatedAt": "2026-01-06T14:17:57.921Z", "postProcessHash": "c6e0f37164e3390410417375735500eccc2469268d6b5df33be2a6727c3f8923" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.497Z", + "updatedAt": "2026-01-06T14:17:57.915Z", "postProcessHash": "ceee9f6d78a56dc582c09b2c0d3bd86a5952da0c0335803ecb67b1bdf5af210a" } }, @@ -20613,15 +21005,15 @@ "5e82ab99152b96f656e8dbc01527a2124dec1e8c721a629d4ba5aeccc219db56": { "4fe49458ceaccad1ac8e3af48d763a09070b1428ec46ac6e0a3b4c19aa2aff54": { "jp": { - "updatedAt": "2025-12-29T16:46:14.493Z", + "updatedAt": "2026-01-06T14:17:57.913Z", "postProcessHash": "14cc4128b0b10a523a62d38a67e92df33fab8f0e8c30e0d1de1781422ba78c12" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.497Z", + "updatedAt": "2026-01-06T14:17:57.915Z", "postProcessHash": "773aa462513cdb8bff054c5d168b838ace49fc6139e0481ef4c3cb63f416e2f4" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.508Z", + "updatedAt": "2026-01-06T14:17:57.924Z", "postProcessHash": "182388194a1734545aab27af003dd4a42c7efa700ebd0f375787bd0eb3d5c3fa" } } @@ -20629,15 +21021,15 @@ "61901cc301281214293209e58b53b0298e1dcffad02805348907ec14f5a36253": { "9b549c4be17898687f84e0ef17ef02ef8a374450b44096f17620746288db980c": { "jp": { - "updatedAt": "2025-12-29T16:46:14.483Z", + "updatedAt": "2026-01-06T14:17:57.901Z", "postProcessHash": "bbdf4318da03da611fe8a31f48ca6010e63e573efcfd298fe76bca8becbfcfaf" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.577Z", + "updatedAt": "2026-01-06T14:17:58.047Z", "postProcessHash": "a32ec351922de7bda0e40dadf1288310c24c77040bf83812b464c176fd479c75" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.481Z", + "updatedAt": "2026-01-06T14:17:57.898Z", "postProcessHash": "0e2b65f8bea6a315c3a95a3143b9da2aaf5667649c9cc076a283a01d41e91553" } } @@ -20670,15 +21062,15 @@ }, "7d8a82b95ab47c579e375a385d3c83b071af9d4c18c0cb450f261f337a70c50b": { "zh": { - "updatedAt": "2025-12-29T16:46:14.527Z", + "updatedAt": "2026-01-06T14:17:57.945Z", "postProcessHash": "73dad88c8ad85b8f14e2d118addceb21b4fb94969aec31b006b38dc15c8edf1b" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.527Z", + "updatedAt": "2026-01-06T14:17:57.945Z", "postProcessHash": "1a39ccb183a79ec864320b4cb0d20f1af1558d869a94a612dd7aa43439005fc1" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.528Z", + "updatedAt": "2026-01-06T14:17:57.946Z", "postProcessHash": "f4ae858c609b51d9933de2e0d8d05285217badd6f0c3968982be16de43d8bac3" } } @@ -20686,15 +21078,15 @@ "8232385318fcb8ae5ab151696b217b22f9436e7402f061c4116986347a039995": { "d6b3588b7d8f126d5702902b6c9d58f3929c5d5c37ec39e19523d2d8bfcab2e9": { "jp": { - "updatedAt": "2025-12-29T16:46:14.487Z", + "updatedAt": "2026-01-06T14:17:57.910Z", "postProcessHash": "10b2ade9671e9b326e84a4c06046aa33e06de45d622395c9b51b9df823c2e748" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.479Z", + "updatedAt": "2026-01-06T14:17:57.891Z", "postProcessHash": "3c2a77a0a704ecc81f04ace8ab0c786191a4b1579a8603a66de4ae645e888a6a" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.488Z", + "updatedAt": "2026-01-06T14:17:57.911Z", "postProcessHash": "79042bc73ddf9389bf3cab06e883a46223af592420c0fd89904d3c2cdf968740" } } @@ -20702,15 +21094,15 @@ "92dee0e9ff8e8566f9e9c069b27afdb02424f6cbe89f46ce3425000461a7553a": { "0bf98344271fffe8297f5e0b128fbd8fe78c79025f276feb745ffa937822b839": { "jp": { - "updatedAt": "2025-12-29T16:46:14.507Z", + "updatedAt": "2026-01-06T14:17:57.923Z", "postProcessHash": "adab7cc27d91046c8b9688e59ef4d4c6540b31462a5e2fcca6c9ab8e8eb91ec9" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.517Z", + "updatedAt": "2026-01-06T14:17:57.936Z", "postProcessHash": "241c1d1805d993fe97ce52ff50f86864fb6337c464ec3a63948f93807036a995" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.502Z", + "updatedAt": "2026-01-06T14:17:57.918Z", "postProcessHash": "3e505cdcc2fadbf93a990a3d930aee9b9b622b44f554ba53467f21b1573d11ce" } }, @@ -20729,15 +21121,15 @@ "a4b6a047b28cc22275775b0dd79539a2be86c95aa7ced10a1b187f12caf79320": { "1c1a6afd778c1e57b53ba0589eef4c2e7796b728ad68d2fe6448ef393e873f11": { "jp": { - "updatedAt": "2025-12-29T16:46:14.427Z", + "updatedAt": "2026-01-06T14:17:57.816Z", "postProcessHash": "db3ddb99e9dcb30395a25694148b2cd07f4da975c1947339f53203f1e3536cd6" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.428Z", + "updatedAt": "2026-01-06T14:17:57.817Z", "postProcessHash": "8393352f6720b065afa697e891047626b48bec1aa1ec8ce9a41e12c66bbbc093" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.434Z", + "updatedAt": "2026-01-06T14:17:57.904Z", "postProcessHash": "e6696c664728c64b695908ef46e66ba27faff8384e25d2e4656c69b1c3b3db18" } }, @@ -20781,15 +21173,15 @@ }, "e9856af9b30132699de5de3a9687cf03bf5ff9ec394001b76a5bf7505880303f": { "jp": { - "updatedAt": "2025-12-29T16:46:14.589Z", + "updatedAt": "2026-01-06T14:17:58.051Z", "postProcessHash": "157d6da1006efcf36117af1e159f03192a7a7de03382ff9a7e96abafd2623f62" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.589Z", + "updatedAt": "2026-01-06T14:17:58.052Z", "postProcessHash": "073f5f5ac420fa008eb6bd2f882507630506a8bd3a1789718840d2e0b4715f0a" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.590Z", + "updatedAt": "2026-01-06T14:17:58.053Z", "postProcessHash": "5e813221a03772a438cb94af990f13f4d1da06ec50dbc44e0ca65530bfd9f17d" } } @@ -20797,15 +21189,15 @@ "bb10891887cb78110e7cb4ceb74ff22432d01fac9a3bff7cdeeb1886f79b1a65": { "caa3bae4c975b756d6c9bef7d4ca4f1118fd3ff3418d4538a30aa4c9e33515f9": { "jp": { - "updatedAt": "2025-12-29T16:46:14.492Z", + "updatedAt": "2026-01-06T14:17:57.961Z", "postProcessHash": "cc03bfd832947f7ccbb284f5e432bd20d6ecca4760fe5249f548e026af478d3d" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.554Z", + "updatedAt": "2026-01-06T14:17:58.017Z", "postProcessHash": "3c2fc730849b25473e74ec78163527df9b43821bbc01d94795301972c0a3e82f" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.487Z", + "updatedAt": "2026-01-06T14:17:57.910Z", "postProcessHash": "e1c928cb099b0e029cca4c5d31a640d9e4e5ed040909bce8f5fb191520bf1a0f" } } @@ -20824,15 +21216,15 @@ }, "f874e3ae6b9b2413ff9c4415bbd53d217ecc53aa9c8754f7d8b43a840a56a1dd": { "zh": { - "updatedAt": "2025-12-29T16:46:14.429Z", + "updatedAt": "2026-01-06T14:17:57.893Z", "postProcessHash": "4dca2e2c85d99f11f15073b07452d270b9db1e215afc6115df85c560ad06b8f1" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.429Z", + "updatedAt": "2026-01-06T14:17:57.893Z", "postProcessHash": "3e207ff861cb6feb7c9bd057f983a061043972097bd68ad51611e043f5766f0f" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.429Z", + "updatedAt": "2026-01-06T14:17:57.894Z", "postProcessHash": "356e216474c9719c9df788a03a04c2d439d795edaa87d750da5e2d66013ea9c3" } } @@ -20840,15 +21232,15 @@ "d30ca35ab36b18a178b446411bd0aa3076c904d43108702bb21cd5d8efbcb5a6": { "87455e817468ce7973be52c22bd571c3c34f449207bac87d98cf83d2f67a119b": { "jp": { - "updatedAt": "2025-12-29T16:46:14.519Z", + "updatedAt": "2026-01-06T14:17:57.938Z", "postProcessHash": "d35db1937b055d38c200621ec1783573c20bc5964a4104d2c33daf50478b9af6" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.522Z", + "updatedAt": "2026-01-06T14:17:57.941Z", "postProcessHash": "e6747f1cc59a11bb7a49c0c85324119e2e05921b9f7718ac850ac74718557568" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.518Z", + "updatedAt": "2026-01-06T14:17:57.937Z", "postProcessHash": "1bcf14148a6b3e79b5c3d693410c9c2eadb19f744396e87f12983c1137a8233a" } }, @@ -20867,15 +21259,15 @@ "e39ace6f98adf22617bf02b8e1b5e543cc789b8aca34a357f850131c862245ee": { "18eb1c50ac74effbf464a4c046b94e4cb6fa9eb96d70864437ccfb525503aa01": { "jp": { - "updatedAt": "2025-12-29T16:46:14.504Z", + "updatedAt": "2026-01-06T14:17:57.920Z", "postProcessHash": "f34ac8c090f14b4c4093fc565982eba676b80726c192046d67a518dd202ec468" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.501Z", + "updatedAt": "2026-01-06T14:17:57.916Z", "postProcessHash": "9fc0816d811b1b38275ed9525f4d38edcfd0a3c0bea4f1d13ccd3895db48aaca" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.502Z", + "updatedAt": "2026-01-06T14:17:57.917Z", "postProcessHash": "1b81d10b7222668fc7f03d5f5ba0d27ad9a0eb4572b323b62ade9a611b8c9db0" } } @@ -20883,15 +21275,15 @@ "13087be692dde9b7feef18870d3f79b1d18225ab44ef354f1e90c30366e1c433": { "4c3eaabe73297be96e394821c21a7b410f9fe4c375bf5d324f6eec00d4aab141": { "jp": { - "updatedAt": "2025-12-29T16:46:14.567Z", + "updatedAt": "2026-01-06T14:17:58.034Z", "postProcessHash": "d15a10a3be7d4c65c36a20468a5ccbe61bd0cc1e69f7bca394aff5fef5b9a9bd" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.544Z", + "updatedAt": "2026-01-06T14:17:57.990Z", "postProcessHash": "db2116fc9d77c22de73cdcde1355264d4833ed95a39facfea5292d3230ec156a" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.560Z", + "updatedAt": "2026-01-06T14:17:58.024Z", "postProcessHash": "f669e2512970173554b1de46f827d0a0ed50ddad656a77ef5e44f3789fd983f3" } }, @@ -20910,15 +21302,15 @@ "188f9a9bc3bec2ce321905c8a56a28198b42bc1f90b417b6ac00a4d9cf3c147b": { "8e6933142a9b80421dd489117c3233c45a2645cae67fe6bbf99c75fdf827c9ba": { "jp": { - "updatedAt": "2025-12-29T16:46:14.563Z", + "updatedAt": "2026-01-06T14:17:58.030Z", "postProcessHash": "7463a17bacbc9d279559634d120ff59ddb2d3807dbffcc23ba1b9f730f61636f" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.557Z", + "updatedAt": "2026-01-06T14:17:58.020Z", "postProcessHash": "487cb3251b11b5eb067918f73d3defb98dcbbf390d1ae2ac1caabbf16e4c2fcf" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.556Z", + "updatedAt": "2026-01-06T14:17:58.019Z", "postProcessHash": "cf770c4d100cf7c4819cdd20a1a598abd403f147ac1e30bc0dd6d22b62771559" } } @@ -20926,15 +21318,15 @@ "1c00ec1111d4c97040f8a6b4705c820bc0afe08ce75657d4021750534563cc33": { "b2e299e5c648bc6c75f661d7ddb0d415bf3f4d2d15b1b81f676f8d781e4ab3d6": { "jp": { - "updatedAt": "2025-12-29T16:46:14.539Z", + "updatedAt": "2026-01-06T14:17:57.984Z", "postProcessHash": "90fabaa1f489aa677e3911e3e2c22ee330af3ef3357e554423c3be3efe5758ce" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.495Z", + "updatedAt": "2026-01-06T14:17:57.964Z", "postProcessHash": "6679eec89b7c91f343e16613fa05d9707c9cf0cf5fc27e1cbbfe1c7cbbb45121" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.542Z", + "updatedAt": "2026-01-06T14:17:57.986Z", "postProcessHash": "cb008b031e52d5740d85f2ff41dfedeaae477f00b3203483444cd17af77074c4" } } @@ -20953,15 +21345,15 @@ }, "4b159102b8118d1c5f860203e158167c69c30018a911e2276f3dc980a4d34d58": { "ru": { - "updatedAt": "2025-12-29T16:46:14.633Z", + "updatedAt": "2026-01-06T14:17:58.126Z", "postProcessHash": "d89cfdb9f9bc02fadcb0140595c3144567c319608ae636700d17071b05f957fe" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.634Z", + "updatedAt": "2026-01-06T14:17:58.126Z", "postProcessHash": "3bc636c103801fada5e21f7417202e52d27db18e204239aaf72162fd90d7ed6f" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.634Z", + "updatedAt": "2026-01-06T14:17:58.127Z", "postProcessHash": "4f2e59320a70b5aaddd9c3a3d4fbe25a4a7d0bffa0fb58e0056ee81d6ad6452a" } } @@ -20969,15 +21361,15 @@ "2fe98a07a0771f0c918a105339c7465f1d1800b749a6786ae052b4f5792f8146": { "bc9d4d641f5b9a05f88360a2ee33515689607102fb6c336b63a7598960ba63de": { "jp": { - "updatedAt": "2025-12-29T16:46:14.500Z", + "updatedAt": "2026-01-06T14:17:57.981Z", "postProcessHash": "799d0d56e51449adeaa6f2465d18fa99ac84f766d38d5c35ce539a7e20a645e1" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.554Z", + "updatedAt": "2026-01-06T14:17:58.016Z", "postProcessHash": "c183efca11944f124367b1b2b7f99c9ca5f328dbe4328a9a4840981f9f53391b" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.500Z", + "updatedAt": "2026-01-06T14:17:57.980Z", "postProcessHash": "a0046a384fa5943066d0cd480dae39dabbe136fdbc918f6e52a4e74f97aa8cb7" } } @@ -20985,15 +21377,15 @@ "341051d81c779d41671d446f22d563f3189738d32b9550e3675fa7143546561c": { "7b5212109cba86689f00d93efb9aa6bdd2aad536bac1da86a77d78443cec95c0": { "jp": { - "updatedAt": "2025-12-29T16:46:14.555Z", + "updatedAt": "2026-01-06T14:17:58.018Z", "postProcessHash": "b86184a1e7c45332b09c540f6875e491ef45bfc2942e77b632215d98c5e264e1" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.568Z", + "updatedAt": "2026-01-06T14:17:58.035Z", "postProcessHash": "fa5c4556e8011f86934aed061008f5165b76068c2d058facbef9e751a7591a29" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.566Z", + "updatedAt": "2026-01-06T14:17:58.033Z", "postProcessHash": "de1f02951e7ffb89115f8f5d6be338e93f2938c9af79037f4ffb55d751e4dd9e" } }, @@ -21012,15 +21404,15 @@ "513fe6bad8509823ffdccf71f911e6632a1d6c62bc3828d6880a93c15b106872": { "8b0b91827d9a7c004ba4a826838ebb29f76a0224d429a5d945acb7d900b732fd": { "jp": { - "updatedAt": "2025-12-29T16:46:14.550Z", + "updatedAt": "2026-01-06T14:17:58.000Z", "postProcessHash": "85d9e4f6facbf2633810ecc02b699e945a30c535ef34fd9be2e78542edb6cfc7" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.551Z", + "updatedAt": "2026-01-06T14:17:58.010Z", "postProcessHash": "33d1c11d5809a56b9837c81bf9ec26ce53a2f436357b65407be02d64913f04e2" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.545Z", + "updatedAt": "2026-01-06T14:17:57.992Z", "postProcessHash": "3d11ef68efc02d837d13d3339af85bdabf60e8aff5dfe5e6f929a07e4f30ce45" } } @@ -21028,15 +21420,15 @@ "5aef4c42e18c1cc3dc46fc838620121334ecc389acdb56926a191d15c08904ab": { "7e58d82c11edbb334ceb08f7f620a974944c8ec3e120b7373fd4e03a17ac6cc9": { "jp": { - "updatedAt": "2025-12-29T16:46:14.566Z", + "updatedAt": "2026-01-06T14:17:58.034Z", "postProcessHash": "8b499a1f1ae47523cc19a293cdda41e13d7336a9d08576725845589d1e60cc84" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.572Z", + "updatedAt": "2026-01-06T14:17:58.039Z", "postProcessHash": "794696d349d0f66683b62aefd92e5f920368191d0e385b56eb943145b607cf00" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.565Z", + "updatedAt": "2026-01-06T14:17:58.032Z", "postProcessHash": "af48790cc2c5bf4c2ff094e8ec6d8dd6c7525ea9ea2d8731570099b67d8fb53f" } }, @@ -21055,15 +21447,15 @@ "67b2cf74cdaca50f8911af9d708d0de9b1f69f0efeab9993911fd47c8fe2f59a": { "cfb3d97b019aa58d29e5939b08fabed324c21080592e9c094aeae86aafccb4be": { "jp": { - "updatedAt": "2025-12-29T16:46:14.574Z", + "updatedAt": "2026-01-06T14:17:58.042Z", "postProcessHash": "fe4c5a29c33425ceed7fca6c22a89acecf8496296bc64a9c5979a10428ded9f9" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.571Z", + "updatedAt": "2026-01-06T14:17:58.038Z", "postProcessHash": "31e16e480cf8c83907826182b19bbf8d096663c69462f8afbb8c28df1ad5c1ce" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.477Z", + "updatedAt": "2026-01-06T14:17:57.888Z", "postProcessHash": "824979aaf761c3bbcc7f7033c7f0116b6b64ec55dc0d21489b6ad00cf368b04b" } }, @@ -21082,15 +21474,15 @@ "721c2734aaae37ab2cfa24011429e694a791b3fb975c20c543e63c974c336cde": { "9ecec8ec535a5264bf7ad03315791abb102815a602f895880c47fb817859cf24": { "jp": { - "updatedAt": "2025-12-29T16:46:14.546Z", + "updatedAt": "2026-01-06T14:17:57.994Z", "postProcessHash": "d63b6ce8d5689c0683454cbd56a7c22959ba42fbeda3c13cf034403871cc1146" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.586Z", + "updatedAt": "2026-01-06T14:17:58.048Z", "postProcessHash": "6bc4068a4374571d25b572af3db89e0f585bd8ea5481b2ba03619802273b15d0" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.483Z", + "updatedAt": "2026-01-06T14:17:57.905Z", "postProcessHash": "ef09a569bdb04f5bec81604995b93a08820a4f4889d1614dec747a6372c9f834" } } @@ -21098,15 +21490,15 @@ "72afe36eab2ff12e14d4d91a26552fab2abc011f9a4ccde2047a84210368f35e": { "1560d332f0571ac4c9e52b7b887c8418554ea38f675716836286eda06c730b1d": { "jp": { - "updatedAt": "2025-12-29T16:46:14.553Z", + "updatedAt": "2026-01-06T14:17:58.015Z", "postProcessHash": "22fa1d9affcdfc76f66f842d5d9052dab534ec1a8fedf5a23183648e0a9a9f93" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.549Z", + "updatedAt": "2026-01-06T14:17:57.998Z", "postProcessHash": "adb1ef22623d2e028c62379faf5ce0ee9389d85eb66be5723760250794fcf145" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.547Z", + "updatedAt": "2026-01-06T14:17:57.995Z", "postProcessHash": "1ae1857a335ad6b7fcda6065f10f107532bc74c18518326bf51d5e209cc5f786" } }, @@ -21125,15 +21517,15 @@ "8315916bdb3d69fc26c0b36f0b4378146ed63f736e03228e62d22efe01d9dfd4": { "5856087df98f6740b4472f367157e174efdc961ef37e3c1247d0ced2db5782d4": { "jp": { - "updatedAt": "2025-12-29T16:46:14.482Z", + "updatedAt": "2026-01-06T14:17:57.899Z", "postProcessHash": "468ef70d7c76e9c7923e2c1b3602529f07a1dc781c0753fe6a9d9a80311d61da" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.495Z", + "updatedAt": "2026-01-06T14:17:57.964Z", "postProcessHash": "3465184aea208b2bc9e1adf80585b8495933f091f1e8f8fd4f23eebed4f74215" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.481Z", + "updatedAt": "2026-01-06T14:17:57.896Z", "postProcessHash": "f90dc06da92b8c3823148c69fe9b8a74ad47803e07cf6afc64b21196d34e4c02" } } @@ -21141,15 +21533,15 @@ "989eb966fc80a9e76f90dfcbc66e0dea7d1236c5a18dcfc3951a22c271c46183": { "501b56f9eae0cac02eb27cad28e73a3ea80b0a3e66d207d53190032406e903ec": { "jp": { - "updatedAt": "2025-12-29T16:46:14.552Z", + "updatedAt": "2026-01-06T14:17:58.011Z", "postProcessHash": "40fc2ccd1f620fcf3e12949ae14ef43a5e9024cbaa57ec3cc258fc40dcc2cd9d" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.478Z", + "updatedAt": "2026-01-06T14:17:57.890Z", "postProcessHash": "18532e4f329fd4c78566f3ad855ebbdcfb5c240d3e36f6ca9ab51da494b9c444" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.548Z", + "updatedAt": "2026-01-06T14:17:57.996Z", "postProcessHash": "f4b1c89625b074cc945387aec2720a86f5ab915837bbd7b4743016bf75c6382d" } } @@ -21157,15 +21549,15 @@ "baf8aa50269f83f9ca719a087ec8ad23a44645de6e886fe94ea8e017a880d3bb": { "bcb7bc6405a8a18657a3ca87a61f1366339dfcef97912463438b8f97cd471adb": { "jp": { - "updatedAt": "2025-12-29T16:46:14.484Z", + "updatedAt": "2026-01-06T14:17:57.906Z", "postProcessHash": "9231723491f152e034bb9a37664e0eaff15276b2142d9ef6e66a4a93a8d544f3" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.543Z", + "updatedAt": "2026-01-06T14:17:57.988Z", "postProcessHash": "a28a956661869e60618d66bed6b6364d3a25e738b12520becab7680ebec74820" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.477Z", + "updatedAt": "2026-01-06T14:17:57.888Z", "postProcessHash": "c8be606d38a8d8c9f6a49f7bb271630c1d8e7c1b82060751b61aef26ddfa3fc7" } }, @@ -21184,15 +21576,15 @@ "c3e128b68f1271e67f658e6a27e710c60881f8641ac2288d555daa3208c005f9": { "13e7fbfbc5e808dd0b360b17e6a4fd7a2ba6d1036bc640c856da5cc47ecdadde": { "jp": { - "updatedAt": "2025-12-29T16:46:14.479Z", + "updatedAt": "2026-01-06T14:17:57.892Z", "postProcessHash": "2774b36b3c5cb949afb2ba747cfc04163bf181a2212febecaa09cca889b2d6ef" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.546Z", + "updatedAt": "2026-01-06T14:17:57.993Z", "postProcessHash": "37be96e360b5524bcf64574e116cabfc000ebde77d5cc4c852c060cf88efc4ef" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.480Z", + "updatedAt": "2026-01-06T14:17:57.895Z", "postProcessHash": "4d0bdc5a753e1c40b0203c64643f4d3b936965c1341a7277a86b5945861ce86e" } }, @@ -21211,15 +21603,15 @@ "c484fc5a7f3148583c4468ad2af97f94fd9cc073f7098786a953f31855eb484e": { "bd8825806b6c9a9fcfd0073d67b67df3440ace8280431d5a8c8dad6ef5f213ec": { "jp": { - "updatedAt": "2025-12-29T16:46:14.575Z", + "updatedAt": "2026-01-06T14:17:58.043Z", "postProcessHash": "f78972114aef21607b7b8f9e1265ce628375bdc0825b895f5fcdf8f4e48bf5f7" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.574Z", + "updatedAt": "2026-01-06T14:17:58.042Z", "postProcessHash": "7eed257047daa3afe04317f684615dcbf3c3b722c7d55c3e2e496cc64fec58c1" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.573Z", + "updatedAt": "2026-01-06T14:17:58.041Z", "postProcessHash": "1d3273a068587a537efee554f872470a43e5114fa400c53aa03cc4d984e9fce8" } }, @@ -21238,15 +21630,15 @@ "cb12578467473a3c801b153c6cf4d13a10cf518318fd5f17155acd1793145e1b": { "7416b573c39ce724ff3be3b7fe423ab34f30f16536bf6cf0fdf7d2ba979a33ab": { "jp": { - "updatedAt": "2025-12-29T16:46:14.500Z", + "updatedAt": "2026-01-06T14:17:57.981Z", "postProcessHash": "90e7a938b9e834fed8f5e5a922daf1eb73a22ae0fa362c4b64930cc753b92b8f" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.560Z", + "updatedAt": "2026-01-06T14:17:58.025Z", "postProcessHash": "89c27ea484a952d813be3614eb7e4d9c964bb0358b8b3e57df43af45aee806f6" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.486Z", + "updatedAt": "2026-01-06T14:17:57.909Z", "postProcessHash": "f623612a89e1c21d1bcd40ee3600381403e14d6ec771a414a4f59eae427b619d" } }, @@ -21265,15 +21657,15 @@ "d7f86ec094d4fd68c7ec3902e09e9c8d6f32e759b1104bbeace470bd65c6ae68": { "aa75faa94f785331aff5bdbe2cbf5c4d6e4d398591d7ba48c786aa44ef7c17d8": { "jp": { - "updatedAt": "2025-12-29T16:46:14.547Z", + "updatedAt": "2026-01-06T14:17:57.995Z", "postProcessHash": "434aded90235c4991bf54e3afbdddb76eb48aa37a7d093e285062b2908c45477" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.489Z", + "updatedAt": "2026-01-06T14:17:57.959Z", "postProcessHash": "d286d1dbc1e65775da0aaf967505ca36a440d6e5cdac34d1f8b2daa0b08b7f25" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.492Z", + "updatedAt": "2026-01-06T14:17:57.962Z", "postProcessHash": "ca4d08725cc391e8b91c50123a23168ca7e90057c6da2c40405f0d5a2c3dec87" } } @@ -21281,15 +21673,15 @@ "dae06bb227a02c2e0c6a941ce0fc26005199e52c806d58d5e67386d3ec46f9d2": { "7b4e58d24764fbe8ed14bec5a6c802f2f143b902c16c654c45567175ea3ba639": { "jp": { - "updatedAt": "2025-12-29T16:46:14.542Z", + "updatedAt": "2026-01-06T14:17:57.985Z", "postProcessHash": "1c4929e8188ab915f1dac62aad8013d4590790a20f218456f60ddf3d3aa1bd09" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.559Z", + "updatedAt": "2026-01-06T14:17:58.023Z", "postProcessHash": "96f6dc17e55b3c1df0355219db62fdf87c098106bf1aff54a35e8fef356450e9" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.558Z", + "updatedAt": "2026-01-06T14:17:58.022Z", "postProcessHash": "28b82b5de9f103c12c48b14380ce9372179a0cb89099c286debcdf49d346e0ed" } } @@ -21297,15 +21689,15 @@ "dbffe2a957cf5e50f0d77de216e876face0751f13e47da2a20400d54d5665054": { "de205edb219286909fddbd177c0ceefb00f1d4bfa1753f3d37b2539c40ccb3b4": { "jp": { - "updatedAt": "2025-12-29T16:46:14.562Z", + "updatedAt": "2026-01-06T14:17:58.029Z", "postProcessHash": "0cead01f8a01ace2a7d8c0b96a249cb078878d7c503f81d829941dcf9dbf2ce2" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.564Z", + "updatedAt": "2026-01-06T14:17:58.031Z", "postProcessHash": "6746d035ab2cf5307d5a339c96b634c07a94f4cd5e1bf9f554372be03ef9fb48" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.562Z", + "updatedAt": "2026-01-06T14:17:58.028Z", "postProcessHash": "cdb0960b5ae076eda712174408733bd0b597277ed28cf292fef7101949829471" } } @@ -21313,15 +21705,15 @@ "e05629c59a8527d19506d4c60937f73b19f3d5ee1a52750f68b76b2d39b9d9ea": { "746136ea09bf1fea642a7fffc300c1227b17aefa177ec7ad998a0d64c56bbef6": { "jp": { - "updatedAt": "2025-12-29T16:46:14.552Z", + "updatedAt": "2026-01-06T14:17:58.013Z", "postProcessHash": "4a1509f5faa7dc02934b2ee7f800ffa265f225b661a47242b0b8747269afd78a" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.538Z", + "updatedAt": "2026-01-06T14:17:57.983Z", "postProcessHash": "a795b35a3f86fc3112ab357482aabf06b5da32ef132a1af80e45c7b00a945963" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.551Z", + "updatedAt": "2026-01-06T14:17:58.004Z", "postProcessHash": "946d29d682818eb10140112e5d72ee23c5c1953f86d982af2d7d52d13a4ada36" } } @@ -21340,20 +21732,34 @@ "updatedAt": "2025-12-29T16:46:14.533Z", "postProcessHash": "dceda4085b9a0cd9acde6ad7c6b3139aa5c09a1006f4bced81b9f3232ee62b70" } + }, + "139b82d21c5fea2d5ac76247163de2816b444c411c75943c18e18d438effe81d": { + "zh": { + "updatedAt": "2026-01-06T14:17:58.140Z", + "postProcessHash": "ce555fbe3781a6e216306087c6096f56eb9ccd1f554e9baaad8c0500b8f5852e" + }, + "ru": { + "updatedAt": "2026-01-06T14:17:58.146Z", + "postProcessHash": "b412246b8d432e7709891b28b8c101095fbac390ea7ef1b827fbcfaf35ff7bec" + }, + "jp": { + "updatedAt": "2026-01-06T14:17:58.147Z", + "postProcessHash": "9851d672b16bea9b1cc3f4e94fd2e3351b128c0fb06fd058c1395444b86adbce" + } } }, "19dc76f171fdf3b0cc1a3933538a1ce4395d12a9b9640597e4903ce3f6b18874": { "de4790564f72c39fe581e10e8ac3237721217d6c3c4ea4ad3cd07779bcc8dcf9": { "jp": { - "updatedAt": "2025-12-29T16:46:14.533Z", + "updatedAt": "2026-01-06T14:17:58.091Z", "postProcessHash": "3f778b7058104aa48afc2fec83d83d501ca073098b2b2a700e3ab5ee66498da5" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.534Z", + "updatedAt": "2026-01-06T14:17:58.094Z", "postProcessHash": "3106197c7acd2901ebc93fe21d5c4746aef9e8ac6af4839d32e4c72b904636cc" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.542Z", + "updatedAt": "2026-01-06T14:17:58.102Z", "postProcessHash": "0374a0a02f6d539557660688c9f8d0b1738c47cfff084bbd2ea3a52133955d89" } } @@ -21361,15 +21767,15 @@ "1ce6daa0ad295dac3a93f320fa28494beb73c39ee95608595b498a15a3e40ffa": { "85d971b7567c96e52bcd05d9d21b9c8edef12dd133c8c50e8b309d2d5aa75dc9": { "jp": { - "updatedAt": "2025-12-29T16:46:14.615Z", + "updatedAt": "2026-01-06T14:17:58.176Z", "postProcessHash": "ba99bbdadfc8d183755ec8bbda4e391a53bf253de6080df3a3e36f0c962a55f4" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.616Z", + "updatedAt": "2026-01-06T14:17:58.183Z", "postProcessHash": "415ad3a1c1fcb042b8e430b6269471caf8095f66e71cafbdf9747c5365f935d3" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.614Z", + "updatedAt": "2026-01-06T14:17:58.103Z", "postProcessHash": "c546b61ad45f80fbce914c996be6af73fe47838a93d213ff6fea3d5a3bf9c9b7" } } @@ -21391,15 +21797,15 @@ }, "2554afce44bd3f4cebccea063726825970c68c6da179773a3b1e6603642e7b5e": { "jp": { - "updatedAt": "2025-12-29T16:46:14.640Z", + "updatedAt": "2026-01-06T14:17:58.135Z", "postProcessHash": "933957ea97192a8b053274bf757e76e9e61c20eb6e53ba9e7d59cc8c8638e820" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.640Z", + "updatedAt": "2026-01-06T14:17:58.136Z", "postProcessHash": "9aabf906ce7fd0447878706b6067d00979bf64eebebda71cc36d9a2ec4f447a5" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.641Z", + "updatedAt": "2026-01-06T14:17:58.137Z", "postProcessHash": "39a20f2e47d362bd42b84aa0914e095091ebac6927826e08b71b299a3c16bbc2" } } @@ -21407,15 +21813,15 @@ "6731708fce75a234e44f1b0c956e538194421e979b065c7885b48212f94f5cf7": { "90b07a9d7262bc7ef0366d310777b0b0370a7a92ba12a4e6abc92359b2507413": { "jp": { - "updatedAt": "2025-12-29T16:46:14.619Z", + "updatedAt": "2026-01-06T14:17:58.021Z", "postProcessHash": "ee6c26bdb7d43e2def6a7c60818f344457dfaaca6aa328c1e3502a36de5b93e8" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.535Z", + "updatedAt": "2026-01-06T14:17:57.962Z", "postProcessHash": "2e5b5e0e9daca13f941008fc0dd5b90b53c7f18695ebd1d220f9b0f55bc8aba5" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.617Z", + "updatedAt": "2026-01-06T14:17:58.001Z", "postProcessHash": "3f88e20c5f0c08c238c2096ea51bd3910f2bb0548038b53bd0efd5fa7f3db4da" } }, @@ -21434,15 +21840,15 @@ "70cf97c8fc949e8db59f1ad657a9a53e576e424eaa88498f6a60d5b2e6729885": { "338d9d04b8e82dfebeacc09a54a398e5b4290b074e597a101394bc9922a1ee1c": { "jp": { - "updatedAt": "2025-12-29T16:46:14.539Z", + "updatedAt": "2026-01-06T14:17:57.984Z", "postProcessHash": "d5bf0201aeb67cd67ab8508bee6416bb164da6c2dae316369f6c5e3696e9255c" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.499Z", + "updatedAt": "2026-01-06T14:17:57.979Z", "postProcessHash": "8f75c9c5d3b9168d939f50fc00b27c588c5b862dd97457e2249a8b6318f4e31b" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.498Z", + "updatedAt": "2026-01-06T14:17:57.978Z", "postProcessHash": "91ca42f9743a574b29b90785beb13a1033e24f63b96911b7da66fac8e43d09b3" } } @@ -21450,15 +21856,15 @@ "7fa7f13fb2961efc9814d134b779cc0fe6672bcbaea9bf48e814ee1d05addd82": { "b111ecb2cd1900f390f7f5548b4fb6a727aefd661dda094d15b6c7351b124265": { "jp": { - "updatedAt": "2025-12-29T16:46:14.559Z", + "updatedAt": "2026-01-06T14:17:58.024Z", "postProcessHash": "7cb71d474d484c91a16dc9524701e7a2065b0a35c782deb96e241463a96667da" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.496Z", + "updatedAt": "2026-01-06T14:17:57.977Z", "postProcessHash": "22db558c5d602761878535fd8e304d04883a4e40a6b42a6ab296c3724fe92b96" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.550Z", + "updatedAt": "2026-01-06T14:17:58.000Z", "postProcessHash": "e1af1d2f8d7f50e2b85254ebe352b0e95bf82b48881a552773ae28ccaafbd052" } }, @@ -21499,15 +21905,15 @@ }, "f95ba4c4300ed79512639406575a2a02d4370daf2f9f94b0e2fa01cf5198630c": { "jp": { - "updatedAt": "2025-12-29T16:46:14.635Z", + "updatedAt": "2026-01-06T14:17:58.128Z", "postProcessHash": "8186c47ded7f2ea7c62360f177d054039e2c658b263f98d671fc9289572c0db3" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.636Z", + "updatedAt": "2026-01-06T14:17:58.128Z", "postProcessHash": "0b80195332e3b6768d37ac16d0fc6dec5a2fb580f25c6f31b0e0ef1e845efcf6" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.636Z", + "updatedAt": "2026-01-06T14:17:58.129Z", "postProcessHash": "1789d27fb0c2451882df94d841c27fb510b30f2c59251f0becf0879879510958" } } @@ -21515,15 +21921,15 @@ "998f0f4e3468e7524c434f473537634e659c94f841a46f5563bb39a4ef82c64a": { "cc945ba5712ca0c208a5b68dd98646b082cd93aed560249a34be7216e338325a": { "jp": { - "updatedAt": "2025-12-29T16:46:14.560Z", + "updatedAt": "2026-01-06T14:17:58.026Z", "postProcessHash": "94c1d1afe742dbfcf44aa63a59995e7c10537cc85e34c8212c5c6a13082d28c8" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.556Z", + "updatedAt": "2026-01-06T14:17:58.020Z", "postProcessHash": "87ed451fe4573f3ffabcd4a426f200e1de83868e0257f2b00f72fe343c652c38" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.563Z", + "updatedAt": "2026-01-06T14:17:58.029Z", "postProcessHash": "1c317ab30de91515705ff1e027b1d9fd38556dd5cf3045825f9130677e979ce8" } }, @@ -21567,15 +21973,15 @@ }, "57b63f97f9478a288c7f55f32ebafa835f0f8136885d60aae3fd08b4f0529468": { "zh": { - "updatedAt": "2025-12-29T16:46:14.641Z", + "updatedAt": "2026-01-06T14:17:58.149Z", "postProcessHash": "4cb09648d5f73cee9de563ab656bd51e1bfaa114e7b51b8560afb294937bbfe7" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.642Z", + "updatedAt": "2026-01-06T14:17:58.150Z", "postProcessHash": "cb6b86a533d12b216668ba6aca6527a141be44fe8d421042d34e0ec283c9307f" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.642Z", + "updatedAt": "2026-01-06T14:17:58.150Z", "postProcessHash": "ecc6db66acc524d6010b263f38ad33b1767a85c5e6ec9e6495fa25b6ecc903ca" } } @@ -21583,15 +21989,15 @@ "a725d7aefcb81ca44df79432f1da90c48ccc1821c943c4aea64ec662f97fc340": { "11463482ef7448e6a135decdd6e0c2680b565473c869d4016976dbdd9ebd3fd0": { "jp": { - "updatedAt": "2025-12-29T16:46:14.541Z", + "updatedAt": "2026-01-06T14:17:57.985Z", "postProcessHash": "cc2e3ee543f615b66e8602dd4506bb4aa24794f6176949f6abc04ade3f2a8397" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.544Z", + "updatedAt": "2026-01-06T14:17:57.989Z", "postProcessHash": "d2b20ff03ac89713fda5aba8d4db4deae2959e9c508e0ddc5d67d928d5749bf2" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.554Z", + "updatedAt": "2026-01-06T14:17:58.017Z", "postProcessHash": "9624773d77b2f92736700669fde9526bca854fcad18527806f52d0b2c75cca24" } }, @@ -21610,15 +22016,15 @@ "aff518be70e64a7690e4ccddb5d480073f10c95e3ea3c17ad5f290330ba897bf": { "6a9dc9ad629f0fdf6c6df2ec6b40090ded099d6d2e5c42feac66429630d6b1dc": { "jp": { - "updatedAt": "2025-12-29T16:46:14.626Z", + "updatedAt": "2026-01-06T14:17:58.116Z", "postProcessHash": "d8c67fe085db62e3734bdc90483860940541202a0206fd04b4dcdf6838a1b1ea" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.627Z", + "updatedAt": "2026-01-06T14:17:58.117Z", "postProcessHash": "cc62272c3b75b2d2b12c723881ad20363e8e59daf90463a1b3d758fa58b91c35" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.623Z", + "updatedAt": "2026-01-06T14:17:58.112Z", "postProcessHash": "ed51ad14bb5ea7d5be99e9d26313c10f2f45cbe2494df73d4090543e1470bc52" } }, @@ -21637,15 +22043,15 @@ "b02ce70d6dcff3632894b67e171d3cc1146833fe54d4b06011bbaa8c85a0884d": { "09c5316a4d219ae648cc28e8db671f96b825f4184cd4e8e4a511bae5beff8109": { "zh": { - "updatedAt": "2025-12-29T16:46:14.627Z", + "updatedAt": "2026-01-06T14:17:58.117Z", "postProcessHash": "3eb8b67aa6178ac247ce3e3bd46943b9d3e9dcf3738021a1e75c75bee161b04f" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.628Z", + "updatedAt": "2026-01-06T14:17:58.118Z", "postProcessHash": "f7078e8e29b0338931e680318a6a051d3cc06b9ede900aacc289c57b179c0772" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.630Z", + "updatedAt": "2026-01-06T14:17:58.121Z", "postProcessHash": "99d63daf2fa85550034e3afa2098b113067f8e0defa473a27c9326458903760d" } }, @@ -21678,15 +22084,15 @@ }, "e0350eeb85f102ea8595bba86c09794ac9efb4a53f84a43e1c4269e7b19e9e20": { "ru": { - "updatedAt": "2025-12-29T16:46:14.638Z", + "updatedAt": "2026-01-06T14:17:58.133Z", "postProcessHash": "49505c4455033ae165cc332ca2a27342cecd45a17dfc15444510f9d8b4eddd3f" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.639Z", + "updatedAt": "2026-01-06T14:17:58.134Z", "postProcessHash": "64cf4e4ca2b9e6d1cdcbef7d27c57a717def0e6593a57c2ed58ecd4a2d110d7e" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.639Z", + "updatedAt": "2026-01-06T14:17:58.134Z", "postProcessHash": "0a1726ff915b23271b7a96b3ad0808f6868657856dc0620f9deb314f3013ff33" } } @@ -21694,15 +22100,15 @@ "c5321e7f9f222609b774837230342fd88d3987594612b1a1a987cb8500748344": { "6b17248bc93c579b8212f6684732b598b2781d46fbc0ff7686c6c9716116d43d": { "jp": { - "updatedAt": "2025-12-29T16:46:14.561Z", + "updatedAt": "2026-01-06T14:17:58.027Z", "postProcessHash": "3cc1fd3998316059ffefd5cee65d9f184b5e7522b23df7fe3f28f8b337c36d2e" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.561Z", + "updatedAt": "2026-01-06T14:17:58.027Z", "postProcessHash": "0675f49d6b231b94c7e0f15ebae3ca85041776a63f964a186879dee2bf97ebe6" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.547Z", + "updatedAt": "2026-01-06T14:17:57.996Z", "postProcessHash": "ebf19f9bc1d7b8773ca3afd561117694e31e9e978347b5bf7ab14ebe8b249fd4" } }, @@ -21721,15 +22127,15 @@ "d865d8906bab480f2412b8134877a2a96913a3533480602839cb1425678255d8": { "40e74dd63d675033a626615c8dcb1dc2d2ab2290058dacdabdc77986ec16b1dd": { "jp": { - "updatedAt": "2025-12-29T16:46:14.558Z", + "updatedAt": "2026-01-06T14:17:58.022Z", "postProcessHash": "80f4c833cb40e0e67035367514b25c5394bfacc8398c0d88cf12147e7984f527" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.484Z", + "updatedAt": "2026-01-06T14:17:57.906Z", "postProcessHash": "68b64f9a4e5b3045e0a798c64a1ed87de939871733175279305914a520428705" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.545Z", + "updatedAt": "2026-01-06T14:17:57.991Z", "postProcessHash": "0d71f89e4582e999d37a21225a73f8e39009b89767629fc85d00b791de198422" } }, @@ -21762,15 +22168,15 @@ }, "1b7dd133835665d6348ee4ebf5d1f773ef575a7a261bfe57fe7442844475135e": { "jp": { - "updatedAt": "2025-12-29T16:46:14.637Z", + "updatedAt": "2026-01-06T14:17:58.130Z", "postProcessHash": "95e709bf68482d4d8d3a1bfe7bea826d4f110fc6220ce54f31c883fd6dd53781" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.637Z", + "updatedAt": "2026-01-06T14:17:58.131Z", "postProcessHash": "bd43b9178f07ee14bf774cc2249ca2b24bfbb0e27d3bef01650bec4298675a18" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.638Z", + "updatedAt": "2026-01-06T14:17:58.132Z", "postProcessHash": "ea9edcca71ed75d99420b96a90055c87713a2e33b62b9314036ea9f78e4d8b14" } } @@ -21778,15 +22184,15 @@ "deaf9da7af41c9dbd196870e7d946c2d92a2b4098eacc1d9d67ca6e552d438a5": { "fdf52ca20d97fc34fd94ada024eedfd00d77d9abbb0aed5df8411acf741dbddf": { "jp": { - "updatedAt": "2025-12-29T16:46:14.573Z", + "updatedAt": "2026-01-06T14:17:58.041Z", "postProcessHash": "08797f3ce5dbab576ad9db1461127bfb40cbe6f45237f55ae86fcbf0b6c712d2" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.631Z", + "updatedAt": "2026-01-06T14:17:58.122Z", "postProcessHash": "c126b1def4637bf1e417154ea9111e2f86643e282fb94d7c6384ed06b9bda9b4" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.629Z", + "updatedAt": "2026-01-06T14:17:58.120Z", "postProcessHash": "d1a54dc88951113ac69ec7ea74c8626ca15d9bbb7bb418c8284ded093fc9647b" } } @@ -21794,15 +22200,15 @@ "ed51dd17995f6639353bb7c4089fa97d4f8dc7203bca3e26312cb31005fd949d": { "a382bedb279fccc3ac9fd5b4fe0ce9a876319b2d0652651cf74622f32f475762": { "jp": { - "updatedAt": "2025-12-29T16:46:14.548Z", + "updatedAt": "2026-01-06T14:17:57.997Z", "postProcessHash": "d8eed4a1ca03d83bb245af1d15e1ef90b490f418de4577bc0c5d34810e1f9aa0" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.543Z", + "updatedAt": "2026-01-06T14:17:57.987Z", "postProcessHash": "baf5b518821526ad4e3718386f644c7f7dbfc4ef736d38cf20c46172ace67ea1" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.549Z", + "updatedAt": "2026-01-06T14:17:57.999Z", "postProcessHash": "96936c085528ceef76f976e8c50b55564c8eb02e131cc728223fe824a443ef90" } } @@ -21810,15 +22216,15 @@ "ef55ad557299e30ca7d8ccbe3f701f3efcfb9407e677358fda64040c88c2a0e3": { "b7534a46cfb2aba578904a3ead55b3a917dd6ea809c434df147c1f98e5defeeb": { "jp": { - "updatedAt": "2025-12-29T16:46:14.618Z", + "updatedAt": "2026-01-06T14:17:58.106Z", "postProcessHash": "047fbe8f9e520a9c7cefc69944a99b2b69cc7b8e75ec1a3fbdd5f1f245b522a3" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.619Z", + "updatedAt": "2026-01-06T14:17:58.107Z", "postProcessHash": "6e3d1c642ec7f5d547f3bb89d239fe9bec196004d1a6f550cbf5ba4300e6f9f6" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.535Z", + "updatedAt": "2026-01-06T14:17:58.096Z", "postProcessHash": "4dc62aba9d9299b6e444f9f64dd126b77e8a64248fcc4e3c09e64d3063b36c76" } } @@ -21826,15 +22232,15 @@ "f4e514c65ad19dadd6e36981ced2004e96119143057123e6f8343003c976414b": { "f9be206d9401669361ef8b3907f74e41604e01c3da770a270a3b262d0cf9e0b7": { "jp": { - "updatedAt": "2025-12-29T16:46:14.478Z", + "updatedAt": "2026-01-06T14:17:57.891Z", "postProcessHash": "326ec309a318fce14556a7a369ad30008ebe61da04bd18e94e492746d4cc7a7c" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.489Z", + "updatedAt": "2026-01-06T14:17:57.960Z", "postProcessHash": "c133110c718931fc79d86ac980095183a8669dc48ffb96b339bc6846a467bbba" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.491Z", + "updatedAt": "2026-01-06T14:17:57.961Z", "postProcessHash": "3326416fb96ba78d68e0682d4b188131301061aee39b86b44ca1bc385e3db24e" } } @@ -21842,15 +22248,15 @@ "fde1eb9f476467503483925174bc3e07ff1b6152ca9eca4cbea2189875928f86": { "5b437c2637bdf116e6ae9dd7273b3db889d01e6006e1510d494e0c27992a8abe": { "jp": { - "updatedAt": "2025-12-29T16:46:14.571Z", + "updatedAt": "2026-01-06T14:17:58.038Z", "postProcessHash": "288bef79b82e46c2514f2604af9e2aff31e8c72df2fce2e4ffe5170582e704d8" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.570Z", + "updatedAt": "2026-01-06T14:17:58.037Z", "postProcessHash": "2338f227a44daf7e23429498b59ed22d9c515b0e7106ea6eb0b41e1b8c6d4ce4" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.629Z", + "updatedAt": "2026-01-06T14:17:58.119Z", "postProcessHash": "f97d11fed715174d952fe8f6f36dc631e84d93e7c6794508450f2796098bd203" } }, @@ -21869,15 +22275,15 @@ "025fd49fff3f320d5bf6441808dc379cdaa73f78cddd66059a1f1d989a1102a9": { "5cb5606bdf1fcec7d40bb07c9211307f195d39d691aa2cabd78b397dd79771c5": { "jp": { - "updatedAt": "2025-12-29T16:46:14.591Z", + "updatedAt": "2026-01-06T14:17:58.055Z", "postProcessHash": "dfe7f0af643b5073a1f750c2b1275601db819a15a8ae1433959a2c324749852f" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.653Z", + "updatedAt": "2026-01-06T14:17:58.174Z", "postProcessHash": "5d0afca2f2ec88137b91fba0b4fe5f13fece7614556104790197dbb5325bde73" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.598Z", + "updatedAt": "2026-01-06T14:17:58.156Z", "postProcessHash": "bbef0504f3ae7c8427e93e91bcd51387a9d34e0b621d9c3a053853a17082fdf6" } } @@ -21885,15 +22291,15 @@ "1e4b57e276f3147467bca9c9b34ef7237444bbb31a33e9319c88df9db588b8ef": { "781ade8017e15eb182d04e5802e03ea4655dd91aa963a8d3d6d5e111348f2ef9": { "jp": { - "updatedAt": "2025-12-29T16:46:14.674Z", + "updatedAt": "2026-01-06T14:17:58.205Z", "postProcessHash": "441be2eb88ff14609415ac163c0cdf928e13a8bdc8d90705f6a2bdc00bc72b70" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.660Z", + "updatedAt": "2026-01-06T14:17:58.185Z", "postProcessHash": "c07a6611a98ca5bd875701b66ddba5369087d270de6d991d1ddf6054eec7fcf2" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.652Z", + "updatedAt": "2026-01-06T14:17:58.172Z", "postProcessHash": "035fd3bd6c5e1ef92ed2684bb4b419ca8c6546ce6feae2810832417bf6dac96e" } } @@ -21929,15 +22335,15 @@ }, "9f1b046efcd11d37e2700e8bf4dcf189b4610865472e1b22047ecfe18590b859": { "jp": { - "updatedAt": "2025-12-29T16:46:14.686Z", + "updatedAt": "2026-01-06T14:17:58.221Z", "postProcessHash": "ab662c700bbb1d106d5359bd58fab67691a25485bb4c10fc8e63ecc188f9e794" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.686Z", + "updatedAt": "2026-01-06T14:17:58.221Z", "postProcessHash": "fb06bbefdadbe874515f96424b7457db2728b2eab5c420e3326c441ec56bfd8a" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.687Z", + "updatedAt": "2026-01-06T14:17:58.222Z", "postProcessHash": "9480767591c90b5454d7d567f3b86fccd52f445e3f76e9d0dd18173e60dff603" } } @@ -21945,15 +22351,15 @@ "2d5ce469cb4fcd9ac57756723325805176514ce512b8039ab05e3fde56bb12a1": { "37840663d4e6d0f5bd1b9b294c2b0feff352bd6bdd003b973cd9e9e03ef04b2a": { "jp": { - "updatedAt": "2025-12-29T16:46:14.656Z", + "updatedAt": "2026-01-06T14:17:58.178Z", "postProcessHash": "abdf2ad8154e2f0c04e371069e0ce812b28490dfcca52c636a48bc31a69893ef" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.657Z", + "updatedAt": "2026-01-06T14:17:58.179Z", "postProcessHash": "93e24a1a82f8cf19d087d9dfbb510e0d61163d754e395e43c2b049e13141b7e6" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.658Z", + "updatedAt": "2026-01-06T14:17:58.181Z", "postProcessHash": "2b269feca9802ea9c32e2ffbe85af2f2e35cfb7f5d718e3ea0e344b2af6d264a" } } @@ -21961,15 +22367,15 @@ "344aa60f54b872aa215951fce76265aad2f3f1d6ff8bacd50188b941ce5098c8": { "7a8f03b82b278bf1a01cbbd7ff1923941fcfc7239248c640ae1b2eec075f2bd0": { "jp": { - "updatedAt": "2025-12-29T16:46:14.625Z", + "updatedAt": "2026-01-06T14:17:58.115Z", "postProcessHash": "d195f3aea1a64d0df0d8717641a9688df38863ca293f3a991ed44d14bcbd9310" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.622Z", + "updatedAt": "2026-01-06T14:17:58.111Z", "postProcessHash": "d5779abbf2438f5ab74b9c420222c7b53c5e04d6bfe449ff66519bcbed61fb48" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.625Z", + "updatedAt": "2026-01-06T14:17:58.114Z", "postProcessHash": "177955725fa2738fac2d20e5a3d80ea6051afa1a7c4d965295c2c72269a637f6" } } @@ -21977,15 +22383,15 @@ "53d65ec30475ca0007e7da32916549bd02696879f561f268e8e3a58c0dfe9de5": { "e1d20246377ea7703705aeea779bd04141833d80b87084862959aeb3e9a08c2e": { "jp": { - "updatedAt": "2025-12-29T16:46:14.540Z", + "updatedAt": "2026-01-06T14:17:58.100Z", "postProcessHash": "e37b88880dc4a3151b67d534c113cf3ffd14608e92a0a9544fa46f53c22183fc" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.617Z", + "updatedAt": "2026-01-06T14:17:58.104Z", "postProcessHash": "ff16f55530f46df527f6a7a3f6c3382af2e005108dc14525779e9c067d131d00" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.534Z", + "updatedAt": "2026-01-06T14:17:58.093Z", "postProcessHash": "88ced1772e9dbc83392b462a37534eadfb741a2a77fcccd25442653d50788ffe" } } @@ -21993,15 +22399,15 @@ "5b9f7f3fc45524898a5a0adff01cb46775280fd54d8fbbd51c0cb3cfb2b7e78e": { "1f25423f1068a3269325eb00ebe91d4fe71d603537f5b9e8c9b81de44ef31aaf": { "jp": { - "updatedAt": "2025-12-29T16:46:14.537Z", + "updatedAt": "2026-01-06T14:17:58.100Z", "postProcessHash": "2d0402925aa35166bf8dd9aacfcad988f9bc3e0c509b4ab5b67bcc78aaf9539f" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.536Z", + "updatedAt": "2026-01-06T14:17:58.098Z", "postProcessHash": "e9943e70e0706dcbaabe2c639466cec1b44bd99eaae6787bd0830b33dfa32fda" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.617Z", + "updatedAt": "2026-01-06T14:17:58.105Z", "postProcessHash": "f81cebfa5478a97c99426b4a02e4ffe0ee98efcf1fdb3bae22cd1b8740dc35b9" } }, @@ -22020,15 +22426,15 @@ "5c4dcedff3da1da80fb63b9461c1c89223beee53c37a3b5a538edc528453f0b2": { "620bb0c22df1a23b2a8df3eb395373d44296904b0332797c29514f90a31606b2": { "jp": { - "updatedAt": "2025-12-29T16:46:14.540Z", + "updatedAt": "2026-01-06T14:17:58.101Z", "postProcessHash": "54ebf8cfc447e67dd29ff4030effbe51d137e469e7fbbc854feaad9c45d6ad47" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.537Z", + "updatedAt": "2026-01-06T14:17:58.098Z", "postProcessHash": "3f332c9b05e0c3fb08139ac33e9ae6a72575ca1b7e536f39fe31a7a3058d3055" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.621Z", + "updatedAt": "2026-01-06T14:17:58.109Z", "postProcessHash": "a34c5cbb3a718947ae0df8543bcd8eac808086bdc7644f6b435470e567c06610" } } @@ -22036,15 +22442,15 @@ "719a6d655a54f957cec2c65e95d6651040b93a639ad6aa44861b85ae09c1c5c5": { "fafe4a083f40e8f75644ffb779bcedb7065ad373f06a042ecf2238313aeef393": { "jp": { - "updatedAt": "2025-12-29T16:46:14.531Z", + "updatedAt": "2026-01-06T14:17:57.958Z", "postProcessHash": "7754d3225bdbdbc5126e6a8d9824f7195e66e24feb845fa50b9c90cc79eda924" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.618Z", + "updatedAt": "2026-01-06T14:17:58.106Z", "postProcessHash": "d1f49e394589ff5e1b0b9f46bc1769022382e9c016f0269f3ab385c87a767a0e" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.621Z", + "updatedAt": "2026-01-06T14:17:58.109Z", "postProcessHash": "593ef13ce1953fa1a89269ead27c2e8e2bdcb5acfdb16a2ebcd5789d16cf580b" } } @@ -22052,15 +22458,15 @@ "82b281d3017bb8cc4db38036df8fbbba3430846e468a784c1b2e6d4d8e43b6d7": { "617961c999f1bf6eb48c03b5f56f99b3a7309dba7bcdb74914b6a76f36a56413": { "jp": { - "updatedAt": "2025-12-29T16:46:14.530Z", + "updatedAt": "2026-01-06T14:17:57.957Z", "postProcessHash": "106636907bc361e8882886c38c07f624cdcd045e9478c7e553ad003dfd46bb3e" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.631Z", + "updatedAt": "2026-01-06T14:17:58.123Z", "postProcessHash": "c1e27105fac5aead06a9bf46fa9f267cc2201590d509efd65319dab378d679f1" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.630Z", + "updatedAt": "2026-01-06T14:17:58.121Z", "postProcessHash": "d22ab520d3fa7b2d27954bc458189016337ed5a10f8d8eb5e5be1b7edb8185a1" } } @@ -22068,15 +22474,15 @@ "8cbea57ac40a6d6358183da1d28c1a09304c1b4a5edf96e2c4a808dc6773ba41": { "39a62a98184d3c0536249ba36e562c954047436e58e929927516fea5318e895b": { "jp": { - "updatedAt": "2025-12-29T16:46:14.624Z", + "updatedAt": "2026-01-06T14:17:58.113Z", "postProcessHash": "ab289d102894c33b531c895a6e16f87a5f70863409d8af8032b8efc3e485b674" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.620Z", + "updatedAt": "2026-01-06T14:17:58.108Z", "postProcessHash": "9768561d2c726cfd133b78ccf7a8e3028419dcfea8daa392ebed159bbb676fa6" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.620Z", + "updatedAt": "2026-01-06T14:17:58.108Z", "postProcessHash": "f2500e62a0963b2a92fa3cc9a3f3982c02caef8102f35cdbb74891eb594d3358" } } @@ -22084,15 +22490,15 @@ "940796a1aae864d0eda15bb34a302626f3ad6a2c1d3af60ba921316d95e81a13": { "301a0a16ec26f11dd9fb52328307087f8c2528fea166cdea553309d6e58106d4": { "jp": { - "updatedAt": "2025-12-29T16:46:14.615Z", + "updatedAt": "2026-01-06T14:17:58.104Z", "postProcessHash": "bc81c817b983cbde9e28c9fee06053dfcf6c2b37a61eb8179d3b1da6aea24560" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.614Z", + "updatedAt": "2026-01-06T14:17:58.103Z", "postProcessHash": "296d990a45f0c245ccb6802b3b12ba4a25d0b5604f7e9da6e467579c64ce5472" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.532Z", + "updatedAt": "2026-01-06T14:17:57.959Z", "postProcessHash": "9deaac027d919a62e7a38a1227f0699396a165a8e6c57fd653190def0c95c065" } } @@ -22100,15 +22506,15 @@ "ab91d27df4d8b8148381ccfd51e2bc9b99a1625ef08e73f1d9a0eb197e5397a2": { "a1465aea8fd40bd2a71567dcd05c6ce53e13c60e2ac21919e271ebe1b6782f74": { "jp": { - "updatedAt": "2025-12-29T16:46:14.626Z", + "updatedAt": "2026-01-06T14:17:58.116Z", "postProcessHash": "efb101d14d65b4516a7ea2c183ba5f827368e14c277c611317fa573d984c2031" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.536Z", + "updatedAt": "2026-01-06T14:17:58.096Z", "postProcessHash": "37ed044e7ee372a4dfa8deba40a068b332d419ffe9a2e572a4808f4f628eee65" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.621Z", + "updatedAt": "2026-01-06T14:17:58.110Z", "postProcessHash": "2f1683772e9929148ad2d3d7c0131669cf6d6b796873b950bff22aed365c948f" } } @@ -22116,15 +22522,15 @@ "b7c59a245d47fd54f7c7477cbd498ba2937399586e98674be51c6a7c40b2ae70": { "410fd44fe625de2b185ba9098597ace5e062b1884403c90912660d14d188d9bc": { "jp": { - "updatedAt": "2025-12-29T16:46:14.624Z", + "updatedAt": "2026-01-06T14:17:58.113Z", "postProcessHash": "8f1dd90aa47c158bf6cac672789eba88d912131fa7f1f7e58fe322cea4077669" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.623Z", + "updatedAt": "2026-01-06T14:17:58.112Z", "postProcessHash": "778efb8f9ece15eff21c30d8b6319051e1a0ed05cc0dc31465f99c350c6da66f" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.628Z", + "updatedAt": "2026-01-06T14:17:58.119Z", "postProcessHash": "5cd33b563c2695c3d86d55f74796858c7caf64ae618701102081a1105bf56fa4" } } @@ -22132,15 +22538,15 @@ "d03338e91e1f725469cbc573d2b5a49c055fe39e67ab09e92b408e3e6dce3361": { "fee22f53b36f6d80c05058f7c0b07e16a2dbb531dbf640d90efae0a82972bd4c": { "ru": { - "updatedAt": "2025-12-29T16:46:14.672Z", + "updatedAt": "2026-01-06T14:17:58.203Z", "postProcessHash": "f5d4a602d4e30bc927abb8aac892b5384ed08508c269d65ab002e2d44f8e1786" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.675Z", + "updatedAt": "2026-01-06T14:17:58.206Z", "postProcessHash": "387bc463c2407de24dce6237939d57acad6c6bcd186addf85770ab7fad39e05b" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.668Z", + "updatedAt": "2026-01-06T14:17:58.197Z", "postProcessHash": "1884d8b431a75b4f583edc6ae63bff2e020147341ce5b310fbb482f28a108ffb" } } @@ -22159,15 +22565,15 @@ }, "8c32d9ed79179c36d91c216797451fa357aeb28c845216e5bab97a4007a3b6e7": { "jp": { - "updatedAt": "2025-12-29T16:46:14.632Z", + "updatedAt": "2026-01-06T14:17:58.124Z", "postProcessHash": "98b10da2453259ba71892fb92e0678038bd855e28bdb3c1d824a70764e676637" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.632Z", + "updatedAt": "2026-01-06T14:17:58.124Z", "postProcessHash": "a919d4d8e187ee2ceae4f5a543fea28b28807868a83c383be3b356498a8d9211" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.633Z", + "updatedAt": "2026-01-06T14:17:58.125Z", "postProcessHash": "bd79ec34f07d72d4ca7f5be7416583f10b5766d3c92a63dc97fdef74c6509e4b" } } @@ -22175,15 +22581,15 @@ "07567d62aae7f94a29e9f4d850ede3f6eec697596681ec8f0be305090388b473": { "781c617b76b44e877e7e119770ca6ecc45863cb3bae1a444fe8807d6ebada97d": { "jp": { - "updatedAt": "2025-12-29T16:46:14.661Z", + "updatedAt": "2026-01-06T14:17:58.186Z", "postProcessHash": "93c342f08316e53054369daae6b8e6829eedc35b91bb80e9c5d48465a16aefdd" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.610Z", + "updatedAt": "2026-01-06T14:17:58.165Z", "postProcessHash": "f1d071176fd501894261ea39639d10dabda74aca9145407763387a589b5b2a75" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.664Z", + "updatedAt": "2026-01-06T14:17:58.190Z", "postProcessHash": "50fad18b4998cdb1e53d6875f72caaa66ed5d6db34573e00cb35b03b2f6c4b62" } } @@ -22191,15 +22597,15 @@ "0fb41b547356b6f436429d0cf855f257dafb010e05f7a885625fcb0c5c9d75bd": { "af639a70dc49d1e6f2c4983d593aa1ebfbb63d8f5308bb046693e20ebd771ba0": { "jp": { - "updatedAt": "2025-12-29T16:46:14.736Z", + "updatedAt": "2026-01-06T14:17:58.308Z", "postProcessHash": "7d35ff6166928d35218489320c2420efd28442fc27d482faaec641bdf0363de0" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.736Z", + "updatedAt": "2026-01-06T14:17:58.310Z", "postProcessHash": "e6d40c95883f79ef4105c0707356e3afb910240476d0aa7a04766dedcd5424a6" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.738Z", + "updatedAt": "2026-01-06T14:17:58.313Z", "postProcessHash": "cb80539365d495b0a1818f606b98a9dfc462fa9764cd371512c0ca23b8a0d900" } }, @@ -22243,15 +22649,15 @@ }, "54796ccbbeeb1ea93d42e2b70db8c308cd1fdffc53d164970a94c69e441b4a64": { "ru": { - "updatedAt": "2025-12-29T16:46:14.750Z", + "updatedAt": "2026-01-06T14:17:58.336Z", "postProcessHash": "c326e6e23bb902b7110d0ad8c59381e5d5bd3cd527489c3fc7642c1b5f7534aa" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.751Z", + "updatedAt": "2026-01-06T14:17:58.337Z", "postProcessHash": "a014597e5728de040a810add336d7d4ce9611bfd188a2d84cc7024596d8a24b7" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.751Z", + "updatedAt": "2026-01-06T14:17:58.338Z", "postProcessHash": "121c13b03ffb7b93b9c3a3c0072f858b8c7f6a5d628166771648996b2855d4ed" } } @@ -22273,15 +22679,15 @@ }, "ed6530a742f4dcd13510b074cb9728365af6bdc2c4f73a41543b30fcad89db00": { "jp": { - "updatedAt": "2025-12-29T16:46:14.691Z", + "updatedAt": "2026-01-06T14:17:58.226Z", "postProcessHash": "ea28c294ebd055d66a9e37d6f423d3410dc8b875e646bd1e9fe50afc155680ef" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.691Z", + "updatedAt": "2026-01-06T14:17:58.227Z", "postProcessHash": "212819b26312182de182ebfdd0a4eed2efeb9b9dd6bf496b953209c0b0255f86" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.692Z", + "updatedAt": "2026-01-06T14:17:58.228Z", "postProcessHash": "30bc33db7686d5e887dba88dfa58df7b555c5670df42d0b8817fa12020d4339d" } } @@ -22289,15 +22695,15 @@ "32982205f1155c2c2e05fe89e04c9cd20828fb0a653c7c72c7da8d61c3253607": { "641d2a22f3cbbdbb5877f4694e0f7a70c2d4d0ea47aafe7ac478509d2f4bda90": { "jp": { - "updatedAt": "2025-12-29T16:46:14.682Z", + "updatedAt": "2026-01-06T14:17:58.216Z", "postProcessHash": "6ef6b1c8830961b5da68c66b412c2a9c09faaf5a4e31ba50977bcea6d3e14609" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.683Z", + "updatedAt": "2026-01-06T14:17:58.218Z", "postProcessHash": "6b1ca18d75ad2e5fad5708c7187842aca7f8f6a13cf35ef23fe77882a2763571" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.682Z", + "updatedAt": "2026-01-06T14:17:58.217Z", "postProcessHash": "b4fd5fcb4e60ec8227e98a7813073778dc7fd158462ee0049bc01643a99a692b" } } @@ -22316,15 +22722,15 @@ }, "86296003488064b48670c7fa1dea340b94da850eefa6ecaf62711f1d83875b93": { "zh": { - "updatedAt": "2025-12-29T16:46:14.685Z", + "updatedAt": "2026-01-06T14:17:58.220Z", "postProcessHash": "9c908d9a3bafa8e5a2a2e43478ba61ee83a3db924186828ab6cc873f50897d4d" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.594Z", + "updatedAt": "2026-01-06T14:17:58.060Z", "postProcessHash": "1264a6fa75b0f245c8357b3d5f42ebf4ea1a5f8351256b4b958353ea1956c4e2" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.595Z", + "updatedAt": "2026-01-06T14:17:58.060Z", "postProcessHash": "1f0bdbf46736308c3fab48a073b2bf712c7d759efb8b2d3474808bd7792b0b06" } } @@ -22332,15 +22738,15 @@ "38b350a818493921c30933efc9a00f13c8de2b1d444f825141d01c27a7c0dd78": { "5c8a7b7c41cedb9f12aa1dfb4a692603fdc40391fd020d73e7415f0890b583d6": { "jp": { - "updatedAt": "2025-12-29T16:46:14.663Z", + "updatedAt": "2026-01-06T14:17:58.188Z", "postProcessHash": "d4a917e863f5d4057c14534037a93e2f33fc2e40a3a8ab3101e8463e74f38995" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.607Z", + "updatedAt": "2026-01-06T14:17:58.159Z", "postProcessHash": "6a52c714156422329100a2e0671df9f2a32e36bb12779c05b8c2d5daf057f8c5" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.613Z", + "updatedAt": "2026-01-06T14:17:58.169Z", "postProcessHash": "019026495245179df5194e1b2853ab8112b4f8de9bab2a6d234e9e4e34e2775b" } } @@ -22348,15 +22754,15 @@ "769f4a7a3d111208fa74381508655c4dc5d7dcae5fe2808879e68d3cdc7b3382": { "489e0fb1db1004ec357920c6836eb4613ef37b11126cdd9c08bcfd3ba4aff449": { "jp": { - "updatedAt": "2025-12-29T16:46:14.665Z", + "updatedAt": "2026-01-06T14:17:58.193Z", "postProcessHash": "9d7d6e24ac9dc79b8c872e29e3ce88880a9f6ae1b79406f376e9de1cd9704485" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.670Z", + "updatedAt": "2026-01-06T14:17:58.200Z", "postProcessHash": "dadf78841b1e1015b5ea60c3a20f8cc985ce2035c187ffb7941b2596f9152964" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.592Z", + "updatedAt": "2026-01-06T14:17:58.058Z", "postProcessHash": "6abfedd1d34abd90ef0e4224702d4e26a8d332f9f0d028f5a37420e0cdcaada9" } } @@ -22364,15 +22770,15 @@ "79e713eaf2edf1bc512ae5d02a7d5d250a9659ca697b83603287e03063cf76ed": { "4ae0bd2c9234eb6b17182e97f10042bb3a03df6b39a2c2156858ba7f8c5537c8": { "jp": { - "updatedAt": "2025-12-29T16:46:14.659Z", + "updatedAt": "2026-01-06T14:17:58.183Z", "postProcessHash": "77a73e8da46621162012a971f34e26fd99869102356e223c54b8c14d7989bc25" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.670Z", + "updatedAt": "2026-01-06T14:17:58.199Z", "postProcessHash": "86d35097efeff43f6f2d0b1bbe9a6a09d5a0f1d39591c570290df1ec5e2faa45" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.654Z", + "updatedAt": "2026-01-06T14:17:58.175Z", "postProcessHash": "b88d013076e4d8df90e8742ffa7ab167920d9671a5f98fe9897cd38b6fa7f646" } } @@ -22394,15 +22800,15 @@ }, "dac69c9f1a48df0703ccf242b2ab41d5b0d00c1ae524c38aa088ec3c71db23dd": { "jp": { - "updatedAt": "2025-12-29T16:46:14.699Z", + "updatedAt": "2026-01-06T14:17:58.238Z", "postProcessHash": "bdd632dfba92944bb2ce358d1f72b5e0cae37b3c307b4612f7671dc626e5a2d4" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.700Z", + "updatedAt": "2026-01-06T14:17:58.238Z", "postProcessHash": "33bddfc128f3ffcfd26e0210dc98a85715de427fd8647410cd6e276c19b2e883" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.700Z", + "updatedAt": "2026-01-06T14:17:58.239Z", "postProcessHash": "d177fccb790720395d382145ca8361586444adc55c2e61956544daf3541dd188" } } @@ -22410,15 +22816,15 @@ "8f1cbe44d3d43c4cea34fea884586e29908abcb748f98fa025ccc41b62e45d3e": { "8e89cf7d6f4105f746591f40378eb84bf4bf9932ed4187023e334efc47a4b281": { "jp": { - "updatedAt": "2025-12-29T16:46:14.678Z", + "updatedAt": "2026-01-06T14:17:58.209Z", "postProcessHash": "742477bd5246fead2399453b9f43a8df71492742fc2ae2ad394e9a8469d4745c" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.652Z", + "updatedAt": "2026-01-06T14:17:58.173Z", "postProcessHash": "7d59ae54dcbcaad0f2c899cad612a37cb2cfac1feb3ecd0d89971595bbc11d73" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.671Z", + "updatedAt": "2026-01-06T14:17:58.201Z", "postProcessHash": "72c7adc4ff3a440bde11d7f132668696c22a4a789bc9f7a23324b07d0fa2902a" } } @@ -22426,15 +22832,15 @@ "a094ce3a28e694708179862da79fbac7d2795b1716246328a6d1d45989e4d89f": { "01511979759628779536c4426b3446323cd0ba908ba9e69ed46eef6c4e519583": { "jp": { - "updatedAt": "2025-12-29T16:46:14.662Z", + "updatedAt": "2026-01-06T14:17:58.187Z", "postProcessHash": "9f0f1f7fe8cf38b788f563958b7ec63e98cee9d9bf461720e6af376290aec078" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.659Z", + "updatedAt": "2026-01-06T14:17:58.184Z", "postProcessHash": "4a688834d7278cd50544b1e0ed299904e31361a12d5f65e21d1fa1e5188a10ff" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.612Z", + "updatedAt": "2026-01-06T14:17:58.167Z", "postProcessHash": "28e02e21e67d5706f60df97c0624850b3de2d7769d7a93e4534b909b8b424e0c" } } @@ -22453,15 +22859,15 @@ }, "52272796a3ff10b33a617542859f14d9522e98d92a2f558892a1b3822e8ba86e": { "zh": { - "updatedAt": "2025-12-29T16:46:14.594Z", + "updatedAt": "2026-01-06T14:17:58.059Z", "postProcessHash": "73a0c49402e7ff6d7d16caf3c848de6f1b3b6d4be12b7afa4bc928d651ad5ef5" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.685Z", + "updatedAt": "2026-01-06T14:17:58.219Z", "postProcessHash": "a9423fb9e4c84adc62eda9359d836cb3fc965307287e0ef692e2d43212da8e1a" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.684Z", + "updatedAt": "2026-01-06T14:17:58.218Z", "postProcessHash": "3f33275b4628955c2099782a90595e35e90bc661d96e12b94d5302d8ced57585" } } @@ -22469,15 +22875,15 @@ "b28fb4d49a614d643a46b4d31f46daf5e9fe6cda08176cd2f5e078a055407bab": { "4108560a1744ad0710588b9cd75e007435917814d8b73b2316426c9d931d44c6": { "jp": { - "updatedAt": "2025-12-29T16:46:14.606Z", + "updatedAt": "2026-01-06T14:17:58.159Z", "postProcessHash": "c3436d937689b399827f3d32c2d0e1b2058e0604938f633d2f72824350c56585" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.608Z", + "updatedAt": "2026-01-06T14:17:58.162Z", "postProcessHash": "98d552b7ff0d32d1bcd3bec1f62324033aae398ad57b15ecd2e643f66e9a3130" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.607Z", + "updatedAt": "2026-01-06T14:17:58.162Z", "postProcessHash": "99e0c98707eb9dc6b98d07ec720a227b66e24ec17295ab654c2973f3eda69fba" } } @@ -22499,15 +22905,15 @@ }, "aed29aa437dec69f456fa92733b97d442ebf7db4140e483e2fe6171cd2e19050": { "ru": { - "updatedAt": "2025-12-29T16:46:14.695Z", + "updatedAt": "2026-01-06T14:17:58.235Z", "postProcessHash": "04264a07fb0a6a8035c38e7547cb144227a807013ea16f0104ff7fe847f974b9" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.696Z", + "updatedAt": "2026-01-06T14:17:58.236Z", "postProcessHash": "cbeeffe7dc1cfb69d096c87924b418ace11ddbb30e86db642cd49bbbd1919f53" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.697Z", + "updatedAt": "2026-01-06T14:17:58.237Z", "postProcessHash": "8e37f6ac9b341848e76e34e6cf64b978bc1e70e5600a21544855b14a9b9bb5e7" } } @@ -22515,15 +22921,15 @@ "bfdad58f0ce19b8378572771619d14adf32b34da41695f420ad03ed4496197bf": { "c5d8b4488de9c51f7fa4c711f9885ca220f45c37ba8c7062bb02813316daa7be": { "jp": { - "updatedAt": "2025-12-29T16:46:14.611Z", + "updatedAt": "2026-01-06T14:17:58.097Z", "postProcessHash": "56bc85a10dacc54e721e43713ba466455dd49c28c5f5d02275e1d1a6ee1d3bd4" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.611Z", + "updatedAt": "2026-01-06T14:17:58.099Z", "postProcessHash": "4c6799f98bed0c6177da9a7fb8aca839f36c4c2247b5f1ae8dd443fa756aca0f" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.606Z", + "updatedAt": "2026-01-06T14:17:58.092Z", "postProcessHash": "ff89ae72d4ef8f22810753e91efbdc7e6c2349945d1a09e75dce3018591473dc" } } @@ -22545,15 +22951,15 @@ }, "2d7561d0476ccb3ef1fc21e6405056f11a17b4930a440383d8694697be4e7a78": { "ru": { - "updatedAt": "2025-12-29T16:46:14.695Z", + "updatedAt": "2026-01-06T14:17:58.234Z", "postProcessHash": "d0ba8d31d2d90292d75bd9eb3dfaf4e6cd4935db0749d4c5c98958ef7079475f" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.698Z", + "updatedAt": "2026-01-06T14:17:58.346Z", "postProcessHash": "938a4a3cab17888b0af93fd2265cd749a29b28c9c2a95160c30cff2a69fa8a9e" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.699Z", + "updatedAt": "2026-01-06T14:17:58.351Z", "postProcessHash": "7831e70ae0296460bd4b0e1dce982a25c7aa3978f039e99c8a76e351b8e46ea3" } } @@ -22561,15 +22967,15 @@ "cdbd4e3a0fcbd1a9915e133e9c7749b9e313633614596b23aedac6d6da31105d": { "184622e2d0685a2859808cd7eb92c85650ed8abc39d7a38af056d81ff2c94654": { "jp": { - "updatedAt": "2025-12-29T16:46:14.590Z", + "updatedAt": "2026-01-06T14:17:58.054Z", "postProcessHash": "3becb1781eb00c2880b54f7aadd2b27a80f1b7fc57719d233b25f8f8195040d8" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.657Z", + "updatedAt": "2026-01-06T14:17:58.180Z", "postProcessHash": "d9c588e44cb76a0ae70eb5351eb7f277e885c089bc74ee92a1278af3662495de" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.609Z", + "updatedAt": "2026-01-06T14:17:58.095Z", "postProcessHash": "ddb61b582e6f10aa414c6df2b05302bb9e61332fe1827f701f7d08e054d0cdbc" } } @@ -22577,15 +22983,15 @@ "dedecc80a24539ab5ef48968c83b54eb08fdd06c15720daadff55822ec0b257c": { "5da52f81a0a0c35a9810a8ba27a1945c10ef4931f047eff638a1e08016f6bd12": { "jp": { - "updatedAt": "2025-12-29T16:46:14.673Z", + "updatedAt": "2026-01-06T14:17:58.204Z", "postProcessHash": "e2caeb6305b03911c772a6e24c2859b215f92cda21a8690792ff46576d8a2acd" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.680Z", + "updatedAt": "2026-01-06T14:17:58.211Z", "postProcessHash": "e63a57830bd8c5e3c08995c56c1446111be8a6c8e18b101632f66320b7fe2712" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.612Z", + "updatedAt": "2026-01-06T14:17:58.166Z", "postProcessHash": "7e0273718728afa4951a3153b2870567648387dc53056a19237dce6eaafeafc8" } } @@ -22593,15 +22999,15 @@ "e7ff4d7fd0bd848202048d33c9e285c0b7eaa06b86b242461c43fe7e001d1b39": { "574ff1d32ed4fa6964c51389dc9f9d35f7a76cff9623137d2922ce0856a65215": { "jp": { - "updatedAt": "2025-12-29T16:46:14.671Z", + "updatedAt": "2026-01-06T14:17:58.202Z", "postProcessHash": "35cb6a8bca8c06f15db5738f718c141d0a7f92c21a8548d7f51d4bca2c78ec47" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.662Z", + "updatedAt": "2026-01-06T14:17:58.186Z", "postProcessHash": "7e04c277f18ede2e30ee1daaa5e24c4c83562406caac3118d06ce599a22c81e0" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.668Z", + "updatedAt": "2026-01-06T14:17:58.196Z", "postProcessHash": "eaece6309a2640a52fdf040b34dde3a9331a1bc14e29602217bbc84114f4f8f4" } } @@ -22609,15 +23015,15 @@ "e83fb55099e0c1e7efe462a3fc836fad5d3f3480534f4512599d1bb0307a952a": { "00125ab6f5435064f526a97e752f345080fe710b1445d06711d4011db26a78f3": { "jp": { - "updatedAt": "2025-12-29T16:46:14.681Z", + "updatedAt": "2026-01-06T14:17:58.215Z", "postProcessHash": "8ed7b60b34a02fcba4b34bee1920fb23679aaf7ec065463bad635df9211588d5" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.678Z", + "updatedAt": "2026-01-06T14:17:58.208Z", "postProcessHash": "eebd3c38284b96457ca5e150589c47525b0a95d10b5d06faf4aea4da49739551" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.679Z", + "updatedAt": "2026-01-06T14:17:58.210Z", "postProcessHash": "592858c9d77d7f17b23640cb114c56da4815aad70a30059b902254b193b8d091" } } @@ -22625,15 +23031,15 @@ "022408973e8d05cf5445cbdab59b64e8bcb0e39b91c3c51a44ce2b73d2115e4f": { "6976c8cc844f9c7b24905debc03f2230b626e14b487d48182c047ccf79713f1c": { "jp": { - "updatedAt": "2025-12-29T16:46:14.731Z", + "updatedAt": "2026-01-06T14:17:58.283Z", "postProcessHash": "34422740a064671f687eadfdb7e461d7e3dc026915ca2c8dee3f06b3868ca90e" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.704Z", + "updatedAt": "2026-01-06T14:17:58.242Z", "postProcessHash": "f5d9afcdfeb6c89320e9442e2794ca769d3e52ac2d40b4f7b298953227af191f" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.706Z", + "updatedAt": "2026-01-06T14:17:58.250Z", "postProcessHash": "0b5c35fffb5153111ca9823ccc33ebe92a68df94f8853aca82fd365ec49aad1e" } }, @@ -22652,15 +23058,15 @@ "027f426455e0e6842638722daa037b778ebc144d4ad338fe61f0710ec20e99b4": { "2be41a032801dbfdd8155d04445f268ba662a583888a188a0a1208a4404eea38": { "jp": { - "updatedAt": "2025-12-29T16:46:14.646Z", + "updatedAt": "2026-01-06T14:17:58.246Z", "postProcessHash": "666c4db37602d1215ce622e07e86cbdbbd2561e230779333faaa37a632129d80" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.647Z", + "updatedAt": "2026-01-06T14:17:58.248Z", "postProcessHash": "7a6367e99a87330326b19440316f5814362e4501bfba306f09e16296197c06e6" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.646Z", + "updatedAt": "2026-01-06T14:17:58.245Z", "postProcessHash": "01df08c3ef6979ba7d1708e5545b501fb0903f1947d44153253c9b561b538d2d" } }, @@ -22679,15 +23085,15 @@ "0819d9360d80872f0e20752e84412951fa413fcd532b41e457c8b552f0613288": { "ee4054a86f5571bd3661ca00b9fc4bb113e20c94a5b9daf823b181aa1b238cc5": { "jp": { - "updatedAt": "2025-12-29T16:46:14.726Z", + "updatedAt": "2026-01-06T14:17:58.275Z", "postProcessHash": "203a564b2f5686ff665c9d4f9a4f03ea676c4401e1d08bd7ac5589282b36c5e3" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.728Z", + "updatedAt": "2026-01-06T14:17:58.278Z", "postProcessHash": "7c08347477f902c5bb70075bc9d755af673cdf54905cc4306e338780c7cb8934" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.648Z", + "updatedAt": "2026-01-06T14:17:58.248Z", "postProcessHash": "f4fd2b63b42681cf5d08eec5ffb746fb2b2aa921f782930a7110b94834a832d3" } }, @@ -22728,15 +23134,15 @@ }, "8ca0b7e819a4aa2e29ffcd483e624332d0ed852d5c4bad277c62fbd16669a10c": { "zh": { - "updatedAt": "2025-12-29T16:46:14.743Z", + "updatedAt": "2026-01-06T14:17:58.325Z", "postProcessHash": "6817c57bac2111c8f21bc7a54412e1c846b477c12f1aae830034da47801d0133" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.742Z", + "updatedAt": "2026-01-06T14:17:58.322Z", "postProcessHash": "7eefe28ee3c8a19615333f60a3ec32428d413a0f3bc70e27bb5c4fe5a1d232cf" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.742Z", + "updatedAt": "2026-01-06T14:17:58.323Z", "postProcessHash": "ed82fbdbee79a71b50353299b3e487e5c7c9b14371bf68d1a1a10fec384b57a9" } } @@ -22744,15 +23150,15 @@ "2e14d7ea42f23a61da8855e77c500092cd204a036888c976b84a9a6bf71b8eaf": { "1e988897ad46c538e51b835cd9cd1cf89a4e7059611c53ec91e71868db50124f": { "jp": { - "updatedAt": "2025-12-29T16:46:14.676Z", + "updatedAt": "2026-01-06T14:17:58.208Z", "postProcessHash": "b146445f547882a591093550a6cef63015034394f95254fcdb0f5a2b14ccf972" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.680Z", + "updatedAt": "2026-01-06T14:17:58.212Z", "postProcessHash": "1f54048f933c2fa755446e80dd029a03d74d9958199f943bec438b6f81d8c939" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.667Z", + "updatedAt": "2026-01-06T14:17:58.195Z", "postProcessHash": "eb027c36d2246a34a21605b8b66808df98acbf0f5cc8b1da70bda6348d0100fd" } } @@ -22760,15 +23166,15 @@ "4b67c6e7bd1376012629229475b5e3fc111803b0ff98dbdc8baacee9fbf6cf1f": { "910169fac7a6c3b7cf7b852a7373930f9083cfa0a5232508038d7982a0dbecc2": { "jp": { - "updatedAt": "2025-12-29T16:46:14.674Z", + "updatedAt": "2026-01-06T14:17:58.205Z", "postProcessHash": "f063eb821bf8c843ac6b68fc4d95dd45c4a7874262006fb98f27859f4ad3365e" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.669Z", + "updatedAt": "2026-01-06T14:17:58.198Z", "postProcessHash": "a656ef747d84e52eb1e11f38f12634183c5bd3dc7cc59c6d3a69ec845d87df0c" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.681Z", + "updatedAt": "2026-01-06T14:17:58.216Z", "postProcessHash": "1d0fac447da092abb1828a5b01c8d9a2584fb97d728cfef2e1a8acfad2f2794e" } }, @@ -22812,6 +23218,20 @@ "updatedAt": "2025-12-29T16:46:14.698Z", "postProcessHash": "1bcb1c02f3ce9fccb9f3f9555c01d3b72052ee20fb0f86c3f228bc15c3e1df50" } + }, + "c63626b3c29e24b1c365c6576dce06795b3559927543e5b1ea1fc715e964b443": { + "zh": { + "updatedAt": "2026-01-06T14:17:58.233Z", + "postProcessHash": "afb60b487ecfd82296883701c434756664ce8814ce2dd7b18d8c905ce508feaa" + }, + "jp": { + "updatedAt": "2026-01-06T14:17:58.233Z", + "postProcessHash": "5efabd83c08aff8ea0df29cb8b714e58822ec921ec8e0485f44451fe0ccbee59" + }, + "ru": { + "updatedAt": "2026-01-06T14:17:58.234Z", + "postProcessHash": "8dc279a8056f5b0c128efe9d0071ff6173c20f3b32b8527c15b1e54e9cd12bf4" + } } }, "5564c05bb16d853324ac6b1bc9b36248c158160a7e1fbac14ae9b86cf5514569": { @@ -22853,15 +23273,15 @@ }, "1509c00502930e6c47bcb3aca4d463815899ea73f7fb3add975ad5f6a7683cc8": { "ru": { - "updatedAt": "2025-12-29T16:46:14.688Z", + "updatedAt": "2026-01-06T14:17:58.223Z", "postProcessHash": "7b54306484d75c67307bd8836bf990b3a4360c16440c5650544f3d10d6d040bf" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.689Z", + "updatedAt": "2026-01-06T14:17:58.224Z", "postProcessHash": "37a7b4f062a2459ead13b84f03f6a1c463f31aed1e0b78b0addda73837cc57d8" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.690Z", + "updatedAt": "2026-01-06T14:17:58.225Z", "postProcessHash": "62aa3eaed85495b1c1e9e6c69f869e7e631016aac7d996d804aa0884ed8a70f0" } } @@ -22869,15 +23289,15 @@ "592a7f7d3a8dbeda07da824c065c0da9b3e247906e6dbf77674f6a63df3136da": { "2293abaeae3fe16820f6c7c9a37b91841e60a17efff63af19cb7a8d4a0eb2456": { "jp": { - "updatedAt": "2025-12-29T16:46:14.593Z", + "updatedAt": "2026-01-06T14:17:58.153Z", "postProcessHash": "eacaef5484af1799b1007dd5d56d36082a8d8047f8414a77c7ba1aaafb5542f3" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.676Z", + "updatedAt": "2026-01-06T14:17:58.207Z", "postProcessHash": "e04a09f7c9754c6c5cdf03c5dd62903e0b7808fe87123b5e7679e652b1ae1e88" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.660Z", + "updatedAt": "2026-01-06T14:17:58.185Z", "postProcessHash": "c455af7e497c517f24b590ab69dd81e16fdc526b537d789fce1c8368b734f413" } } @@ -22885,15 +23305,15 @@ "59e3664663d669e021fbd29e32b23a365ecc37fceaccac1e3c9e74f070873d03": { "664e682e3d269a460d26982803f72d705695f346f7f43cd3b62de24703236061": { "jp": { - "updatedAt": "2025-12-29T16:46:14.592Z", + "updatedAt": "2026-01-06T14:17:58.057Z", "postProcessHash": "b00d2ab28ea7902dbdf64ac1da6ff529f3abd363f4b42d06a4d8eb3d7d3e6a51" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.666Z", + "updatedAt": "2026-01-06T14:17:58.194Z", "postProcessHash": "9a2eb6548297d4d8b1bc0aced0dddb963c38a7a8daa4a9e7561ddaa2da828639" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.666Z", + "updatedAt": "2026-01-06T14:17:58.194Z", "postProcessHash": "c11365b42ed045225827854c02f5659742ae2b67b40f8c1e5aeaf3985644df15" } } @@ -22937,15 +23357,15 @@ }, "358028a8345cd832824f72c37f6c4d2f0cc1315ca00371f9be6b9b42cb75e022": { "ru": { - "updatedAt": "2025-12-29T16:46:14.758Z", + "updatedAt": "2026-01-06T14:17:58.348Z", "postProcessHash": "fe604881b2397fca3818b5e4f0ef2102150709762ecdea536e9abf5c8d9ad088" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.760Z", + "updatedAt": "2026-01-06T14:17:58.350Z", "postProcessHash": "c9e15c1ec7db9c5c0c3a6abb748f6b5ea49d2a61d509f31d14bf9b30ac53c8f9" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.762Z", + "updatedAt": "2026-01-06T14:17:58.353Z", "postProcessHash": "d929ca4a9c57145b3c6437b0cb7f2d9ecec4171092d1276146125024fc3648ee" } } @@ -22953,15 +23373,15 @@ "650407ab32a2947c9874bd0fc813344a1675577ba430ba4ddefb9497ceec4df4": { "ad334487bb9276e08638e9be4af54b1205755e694d6c1911d00059d8415fae44": { "jp": { - "updatedAt": "2025-12-29T16:46:14.605Z", + "updatedAt": "2026-01-06T14:17:58.158Z", "postProcessHash": "b78dd148720eaf7b8748a92085590aa1df613e77e2761506c18876b6e04f9c46" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.591Z", + "updatedAt": "2026-01-06T14:17:58.056Z", "postProcessHash": "c1de43aff64acd60a3cb8a3272ac4ca62790b246a95d3ebc9bdf16b9bf094a0f" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.654Z", + "updatedAt": "2026-01-06T14:17:58.176Z", "postProcessHash": "a3ef6174a251a61b2d3838e10802de4d2028146e428af27554becfc2388e203c" } } @@ -22969,15 +23389,15 @@ "77307f3a7d1b826bb6622b0f3ffa4c1f7706494839393590234d7206bbf2be8f": { "017f574127f909641a3e7c014420c6954edb618ef3d438854515fd0f5dd1e298": { "jp": { - "updatedAt": "2025-12-29T16:46:14.655Z", + "updatedAt": "2026-01-06T14:17:58.177Z", "postProcessHash": "2ae8459a89f533f52077935ebf208d1e59a72687681ab09bbe8dc2f00cc7af9a" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.609Z", + "updatedAt": "2026-01-06T14:17:58.164Z", "postProcessHash": "612d2b6d43ea19dcb2247e71b21d902a459f81caed0160cd4aa27b58aba7a1f7" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.605Z", + "updatedAt": "2026-01-06T14:17:58.157Z", "postProcessHash": "6c629899e6563a179a946a76d3080fc7591b76028d28c64908617e464d3fdbc3" } } @@ -22999,15 +23419,15 @@ }, "8f86b16b90906a6a25225377b719eb37d1cd4bb0bf8cdbe11924cf1203a88aec": { "ru": { - "updatedAt": "2025-12-29T16:46:14.696Z", + "updatedAt": "2026-01-06T14:17:58.236Z", "postProcessHash": "3eb6e69b1390329ff263252cc54d1136fb8df4835b7865eb5cf734f852eeda39" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.696Z", + "updatedAt": "2026-01-06T14:17:58.344Z", "postProcessHash": "96a995c2732dbc353cbeeeaab232d6d19584cf944464ae40f184c17e27881151" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.760Z", + "updatedAt": "2026-01-06T14:17:58.352Z", "postProcessHash": "a987741f73addbde685ce018acafc03c030c6e051481d7ddbfdf3aa746cb9cd9" } } @@ -23015,15 +23435,15 @@ "9c50ae2540822f01de38fd832846c44e0815140836bcf8df45e61a172e36831a": { "48e37702889833007771c8e75d0ebddc5a93b178a5f5ae6c2512d72beca89b15": { "jp": { - "updatedAt": "2025-12-29T16:46:14.737Z", + "updatedAt": "2026-01-06T14:17:58.311Z", "postProcessHash": "9b6be6fb616a6b720c5ea8ff6f6e2c8b776b74044005fd71a94ae4aff5eaf6f0" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.732Z", + "updatedAt": "2026-01-06T14:17:58.284Z", "postProcessHash": "35f587805530da90767359b2447526b025c3ab5e2924e1da0c5ca40b66160a4a" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.735Z", + "updatedAt": "2026-01-06T14:17:58.287Z", "postProcessHash": "0e652f4f39fbcaf4e2503a8d71413559a40dbcb3f8b2d27c8af96c1428093c31" } } @@ -23031,15 +23451,15 @@ "a1a93279f18aea8b2a8afde127dc919f6b9381d84fdb78e820af9fa87a4f85d7": { "8ef32573cad40bd5922dd07f6e65cb11c503497f1996866bd36c8bd70fdbb4a4": { "jp": { - "updatedAt": "2025-12-29T16:46:14.593Z", + "updatedAt": "2026-01-06T14:17:58.154Z", "postProcessHash": "1db96cf6f48fc6386fc34cad42e5ce60569e68b84082f3b7655e7afc189be0d0" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.665Z", + "updatedAt": "2026-01-06T14:17:58.192Z", "postProcessHash": "477698bc6caf43414aaa8f930f561f33cc84dac8da89fd0ab9394328c432f647" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.651Z", + "updatedAt": "2026-01-06T14:17:58.170Z", "postProcessHash": "4e718d357e8f431ded918065b2af5ad0ddbbeeb6775fb29f6b5d02ec1338132a" } } @@ -23072,15 +23492,15 @@ }, "922e3ec561d2434450c62f811c35940d32b8f3da62762abc97567f0f822f7ab6": { "ru": { - "updatedAt": "2025-12-29T16:46:14.763Z", + "updatedAt": "2026-01-06T14:17:58.355Z", "postProcessHash": "9b90b6c3052e51b461cf00091f6fefb5e37adde6511b07aa51c54a590b03175a" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.764Z", + "updatedAt": "2026-01-06T14:17:58.356Z", "postProcessHash": "c49039e1bbd98d1d87b2fa5d6b9ed6266c442ecb15bcbff20d4a224f0b73e5a4" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.765Z", + "updatedAt": "2026-01-06T14:17:58.357Z", "postProcessHash": "b976e7faa8b2aa9f88b3aa56304cdaf7d10e767a0dacd0c77ec085f85ce4921d" } } @@ -23088,15 +23508,15 @@ "b1eb514e8efc1da765f03844ec981e8df30e9e90bffe8f559550b33fcb148386": { "dc959ee4adf1fa9bcf35767f2bd90be07a3522cafad54234ab37ea828c51a0d3": { "jp": { - "updatedAt": "2025-12-29T16:46:14.725Z", + "updatedAt": "2026-01-06T14:17:58.273Z", "postProcessHash": "4e252c961d7fbeb0c8cdfca4c7e78ed3d9a47930a490ec0fcff9ba2259ff842a" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.650Z", + "updatedAt": "2026-01-06T14:17:58.269Z", "postProcessHash": "21693b17da6c0672bdc03f490c034f47e0b6c622b12386d8cd5dc15469e81df2" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.649Z", + "updatedAt": "2026-01-06T14:17:58.267Z", "postProcessHash": "8e459ea4edcd0d1973e5c7304439f49adc8b83e453c921767efe5c957a7a30a1" } }, @@ -23115,15 +23535,15 @@ "c35229fb2bf6081a5aa25c5273a6bc76f7fb1f8586da22277f9b09cdfe9c161e": { "96b4bbf5cd710c7028d1dcff43630fc1346305b9fc31fd06b6feaa5771a11a01": { "jp": { - "updatedAt": "2025-12-29T16:46:14.664Z", + "updatedAt": "2026-01-06T14:17:58.191Z", "postProcessHash": "489ed56df62f1d595a270dbd0ac6753a1ee04e3a7e934eff729010c22664f845" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.656Z", + "updatedAt": "2026-01-06T14:17:58.178Z", "postProcessHash": "55d4bad3ef6601ff4ac29315487028318956c6ebcf26b6b3edacc92e05b1663d" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.663Z", + "updatedAt": "2026-01-06T14:17:58.189Z", "postProcessHash": "b77e6ad4d3f104931e983bfe7a2ea4363914b63dbc6a2ccab13a7e6a2c88ca85" } } @@ -23131,15 +23551,15 @@ "c4f683be9ee704aea456e00a9bdadd74b41b2c81a61a807e96857c1248b0f095": { "696664a1a5eef3359a3250235ce385270ef743cd6d7bc089cff42a85307e3ff8": { "jp": { - "updatedAt": "2025-12-29T16:46:14.727Z", + "updatedAt": "2026-01-06T14:17:58.276Z", "postProcessHash": "e655fd62b4e798de954eb13fac8d265d2126b74f5e7b6c2525428141ae8ac016" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.648Z", + "updatedAt": "2026-01-06T14:17:58.260Z", "postProcessHash": "8f8cfbc5f501bb063d9432a89723c4da07e154c6b2337840503024dc92d0a14e" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.650Z", + "updatedAt": "2026-01-06T14:17:58.269Z", "postProcessHash": "e6f5396464416b361ac3e9d6ddbbd3fb8d50cc6fb9c08499b38e8a91be49a8bc" } }, @@ -23172,15 +23592,15 @@ }, "0460cc65e9ab6cbacb813522320787b1c7eedaab17608801f49d6cfef09a73b6": { "ru": { - "updatedAt": "2025-12-29T16:46:14.692Z", + "updatedAt": "2026-01-06T14:17:58.228Z", "postProcessHash": "dd6373eac964239d7528c33bfb170e5fa613959a0d7a6b6ae05d91f44a8616a4" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.693Z", + "updatedAt": "2026-01-06T14:17:58.229Z", "postProcessHash": "aaa04d1149528110f3ef4ed747903c3b9cb60a66848d8bef6fc3e2101f5bcea9" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.694Z", + "updatedAt": "2026-01-06T14:17:58.232Z", "postProcessHash": "c883c881ddc8b9e6da65ff777505179d4fbf04ec75d5ac1792af2cba9decd3ea" } } @@ -23188,15 +23608,15 @@ "fbb5789352a952225705586e3f21b0e7e42cd17127fe8ed8e8ca218112140a27": { "19f784e7b489f48a3d495a2e1c1d68856626b21b4cedf271ef931452b7add1ce": { "jp": { - "updatedAt": "2025-12-29T16:46:14.651Z", + "updatedAt": "2026-01-06T14:17:58.170Z", "postProcessHash": "a7443397bc77ff2b8fd5f507cdaff4a269a7f95abc311b9df4d18fb40b3222c8" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.608Z", + "updatedAt": "2026-01-06T14:17:58.163Z", "postProcessHash": "fbb1fe5021e8a94bc10126cb0aa92a96ba50191ae63422e080d627bbadc3d2b7" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.612Z", + "updatedAt": "2026-01-06T14:17:58.168Z", "postProcessHash": "08a7b2b2a51e05686dd5038688aeb37641f2c362aa13dae98d46a460da87254d" } } @@ -23204,15 +23624,15 @@ "123aeaa56592e54f31fc778623c345f09749d4e0e65e902af7d1a93337a425bf": { "f2e0676875f34dd5520562d2cd21b217af1b44b68311b6c948988adef7f432a4": { "jp": { - "updatedAt": "2025-12-29T16:46:14.709Z", + "updatedAt": "2026-01-06T14:17:58.258Z", "postProcessHash": "5c7d6b3cd3264e06d8d7812df031cf9903d7fb6806ae3e0c9c1635e715368d8e" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.710Z", + "updatedAt": "2026-01-06T14:17:58.262Z", "postProcessHash": "dfca4649f757befedb12c7efa1f2f5aa52881312c7f49b06571e46d85ec75438" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.775Z", + "updatedAt": "2026-01-06T14:17:58.383Z", "postProcessHash": "f99cc87e485f33547973c03d3091f6441b2e51e37d4d74045ecb2fd73552b8bb" } } @@ -23242,15 +23662,15 @@ }, "ad92da9d2ad16e7a7be4a085a208f9676b179473914f697e479282b6f12daed9": { "ru": { - "updatedAt": "2025-12-29T16:46:14.701Z", + "updatedAt": "2026-01-06T14:17:58.240Z", "postProcessHash": "475e89b58d3d798adbf05fee073e0696b66bba68f802f4be5ea3ec4698baa222" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.800Z", + "updatedAt": "2026-01-06T14:17:58.419Z", "postProcessHash": "3a233120071962c816f3e71060ad4203490e4a5ba07384ad2f1e8ee52f0f85fe" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.801Z", + "updatedAt": "2026-01-06T14:17:58.420Z", "postProcessHash": "169f01b2ba1324707096fc2ad5d0a30b11e262fcf5035d89f000a491fe145058" } } @@ -23258,15 +23678,15 @@ "1f24f51d58cccfdaab17312855078466a67ec6632bf8534638b69f8f5f3551c5": { "ac3de3782a6dcd627cb900e0e3c325463324737e43db6385a4a9edbf6ff7796b": { "jp": { - "updatedAt": "2025-12-29T16:46:14.709Z", + "updatedAt": "2026-01-06T14:17:58.253Z", "postProcessHash": "7edebb5b4455ee9e9c1089fc1ae7fd5c58c90de7e9b2131b29c3d5a333bb5413" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.725Z", + "updatedAt": "2026-01-06T14:17:58.274Z", "postProcessHash": "d3d92aaead95731c99241f5a26b9c413958c08d2cb289c50e73d5d7b7da3f96d" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.722Z", + "updatedAt": "2026-01-06T14:17:58.267Z", "postProcessHash": "f748f662fb02e4ad6a394569991a95594d4a56980bf9aa1c82d296dc46583545" } } @@ -23296,15 +23716,15 @@ }, "815d4a3898271eab559a7f43ac7696375da4ce6aed7381829f6d915f3c27b4b1": { "zh": { - "updatedAt": "2025-12-29T16:46:14.743Z", + "updatedAt": "2026-01-06T14:17:58.326Z", "postProcessHash": "17065de62ed7b44e4b1698bb40f7a8779eec4078664cb56e1a186d9fa38532e9" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.744Z", + "updatedAt": "2026-01-06T14:17:58.328Z", "postProcessHash": "47e9915b48ff1af285e05289639fdeeb245d586e0560581915c6df8adeec10a7" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.744Z", + "updatedAt": "2026-01-06T14:17:58.327Z", "postProcessHash": "e6e78e1fe156ca834198b55ab4e07894a30fb985d6ff24d0acc95b01baf0a639" } } @@ -23337,15 +23757,15 @@ }, "73f9c3843d0911358ff3b59488898374e3507df3998b4ea56f713fa0b719ffb4": { "ru": { - "updatedAt": "2025-12-29T16:46:14.808Z", + "updatedAt": "2026-01-06T14:17:58.426Z", "postProcessHash": "d01840932a2e95a9509c1218df82328b17e370383c74228ffab39ad2c7a7a4d4" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.809Z", + "updatedAt": "2026-01-06T14:17:58.426Z", "postProcessHash": "37c648d1a4b4965526ce454b767a33adaae50d4edac74cc23872015ea2309711" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.810Z", + "updatedAt": "2026-01-06T14:17:58.428Z", "postProcessHash": "063f7b7ba2fd906e2de5d28de4675ceb3d8d5b0db82835f60d1a7a885825c043" } } @@ -23378,15 +23798,15 @@ }, "4bba536063f70f6c1d5fc9daa0b7dd89e76ddb62aec38d0c33bffab465f870ae": { "jp": { - "updatedAt": "2025-12-29T16:46:14.748Z", + "updatedAt": "2026-01-06T14:17:58.332Z", "postProcessHash": "0fa316186372674bccdb3deec5c41d2ad868c2935401662f45df504743cb4af0" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.748Z", + "updatedAt": "2026-01-06T14:17:58.333Z", "postProcessHash": "04b6fcdfd4a29b09febcd4364bf6b1055227ce68dc909daf50c68481968e97e4" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.749Z", + "updatedAt": "2026-01-06T14:17:58.333Z", "postProcessHash": "cc497c0c0b87e0c1ba97c3048071abc886123f2f980e97102aaf1719edcfd099" } } @@ -23408,15 +23828,15 @@ }, "f8bdbd53bca6538f858acc151dfed93f2b81613fe33b6e4e9439b3e5dbc4f0ad": { "jp": { - "updatedAt": "2025-12-29T16:46:14.749Z", + "updatedAt": "2026-01-06T14:17:58.334Z", "postProcessHash": "6a96543be452ef8ba10154c87862d55f8fca6d617173c0c60c77af3eabb7e647" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.750Z", + "updatedAt": "2026-01-06T14:17:58.335Z", "postProcessHash": "382769c94b85b7ba959bd47a29b286ec2988bb798fe9e7ccf2205e0c943ace04" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.750Z", + "updatedAt": "2026-01-06T14:17:58.335Z", "postProcessHash": "b242362f1823ee8fd83965433d443d53558278600c5f4144397b39baae9b5a4c" } } @@ -23424,15 +23844,15 @@ "6127321ac3891bee9f802edc9f97eeefd28aa0d40a647d0fa4cda55abfce14ff": { "d3499050f8c6e7b0a1bd1cf5e8bb8e940304335d153d81d9717b6c21c16c2985": { "ru": { - "updatedAt": "2025-12-29T16:46:14.723Z", + "updatedAt": "2026-01-06T14:17:58.268Z", "postProcessHash": "8ae46671d3b105490e167d3a87c01ee84d49ee596d8aead76c92f067bc37db6a" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.712Z", + "updatedAt": "2026-01-06T14:17:58.265Z", "postProcessHash": "117f3f05038b7f990697c7e5ac9c82064349ab5de59d1e7c1df99e016f0b4bce" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.704Z", + "updatedAt": "2026-01-06T14:17:58.244Z", "postProcessHash": "0e72bd7ba5dff39be4c28e8d1e5a311b45f50efe576fb22425b0d6b91af96464" } } @@ -23440,15 +23860,15 @@ "650d9f2cc9a940fe5940498f6e144305c01bbf36d3ee2dc4bbd8968c9f8967c6": { "17de42c037b1a363aacffaae4c43b7e7c471839ed6cecff05326ffc1616e8599": { "jp": { - "updatedAt": "2025-12-29T16:46:14.643Z", + "updatedAt": "2026-01-06T14:17:58.152Z", "postProcessHash": "683b3137fd6d5f8f2ad3a2279a693fe3916216d7fa262a7b9b0d55330bfd7f85" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.740Z", + "updatedAt": "2026-01-06T14:17:58.319Z", "postProcessHash": "aca7860b85451932402e25fd342e73f9cc1e6eb90e58a2dc9526fd94efc757c8" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.643Z", + "updatedAt": "2026-01-06T14:17:58.151Z", "postProcessHash": "a13b4669e710eb100e21d1d41b22517add88a7e4a67b8880d7eae0234fe2c6b4" } } @@ -23456,15 +23876,15 @@ "6813da4ad4c4af5afb1c7574805fe2dd8caa6c96f485a82e9c901ef475f08fee": { "b0517d0f55cd108acdbbe709883cd25fbda01a6703d9b51ff50bd2116dae6e4b": { "jp": { - "updatedAt": "2025-12-29T16:46:14.739Z", + "updatedAt": "2026-01-06T14:17:58.316Z", "postProcessHash": "9a7953083c75ea58505ac2b189ed5a659df72ce0557a628340c2d6d8aebef006" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.738Z", + "updatedAt": "2026-01-06T14:17:58.313Z", "postProcessHash": "7663c76f0b8df2131d956db72a0e2fa03156a59295711221b82957afd5b0e382" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.740Z", + "updatedAt": "2026-01-06T14:17:58.318Z", "postProcessHash": "86ab1e7cf49a04953d1706f3a3db30c945a51c8f4d6a24c2683e8d36c1d9a264" } } @@ -23472,15 +23892,15 @@ "6e6ac7b2f451e9b54c142890ff01e2a80eb23b0ffd7b7bc15c34b94f9502bf82": { "29539529c90b3e9ad079683127ad89b005ba24b80d2ef9588cd0a3e6f7d4d74d": { "jp": { - "updatedAt": "2025-12-29T16:46:14.647Z", + "updatedAt": "2026-01-06T14:17:58.247Z", "postProcessHash": "432b8cdc0f7f934b8e5a6c86ac707524f640bbffe8d341ca3bd71c1ec7950d0d" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.645Z", + "updatedAt": "2026-01-06T14:17:58.245Z", "postProcessHash": "88f899de044e299b047e413b118c8005a05fc5c6c250744447d61293392906cd" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.644Z", + "updatedAt": "2026-01-06T14:17:58.153Z", "postProcessHash": "81bdd517eb9e80922071a640023ee1d5cb289c59aa770319606bd10a9a9a6f8b" } }, @@ -23499,15 +23919,15 @@ "6fb070f1b02c940c98234a8aaec25f6c6469691d330c72faa861b07763ae4725": { "15b7711f236d6afbc710de3e96b101bbdf132f753a46229174d84f106446a055": { "jp": { - "updatedAt": "2025-12-29T16:46:14.791Z", + "updatedAt": "2026-01-06T14:17:58.409Z", "postProcessHash": "328e65509b3b525d59af7353a46e30210fcfd69f1856f6e010fb2562d8ec2416" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.789Z", + "updatedAt": "2026-01-06T14:17:58.405Z", "postProcessHash": "f9b192dcd2780c161f52e17b680aee54e64d4fe73cf0a7a8a2f5bda8503b6b39" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.788Z", + "updatedAt": "2026-01-06T14:17:58.306Z", "postProcessHash": "53a5dacdaf7c0d118bd7ef9181df3efec3384078708632a08506026fae56e7d7" } }, @@ -23526,15 +23946,15 @@ "9d8c420729f6dd40353fd0b37376eb59e28f1b3a71685df761a9e2ad46f35ca4": { "a0b2512b24b1839bef32291210747feaecb9e749d4b925cd5fa1e21347e7f49b": { "jp": { - "updatedAt": "2025-12-29T16:46:14.703Z", + "updatedAt": "2026-01-06T14:17:58.242Z", "postProcessHash": "b4a82e239b778ef26fba270d85b9d8d3ebedc369b5a050b858193f5346f328d5" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.706Z", + "updatedAt": "2026-01-06T14:17:58.249Z", "postProcessHash": "2341f430e8873ebae8f7c1ae8ed81cff33c71f82ef357a2ed2242552271384cf" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.791Z", + "updatedAt": "2026-01-06T14:17:58.407Z", "postProcessHash": "a4b8f60eab0ba2ae5209df01420067e73a0579738535369377942031514b05f8" } }, @@ -23553,15 +23973,15 @@ "9fe9b6ce42a6ad2189bab2836ba94c9f99886df803b81bdc3dec38815dad7c26": { "2a6580470ab1e345d52a27c96f69c6e94d335299083f18b83f4f16b1913c6ee0": { "jp": { - "updatedAt": "2025-12-29T16:46:14.794Z", + "updatedAt": "2026-01-06T14:17:58.414Z", "postProcessHash": "808baf8daedfc597bc678ce4432b3e5df9108df2e781daea16e12c4761738f13" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.793Z", + "updatedAt": "2026-01-06T14:17:58.411Z", "postProcessHash": "6b027add4d660f791cd652609515c4d4c5cb2dcaa61e2d84830c9a1bf265478d" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.740Z", + "updatedAt": "2026-01-06T14:17:58.412Z", "postProcessHash": "7717a3a43c708e3f13638d6bff8c0aa0f2be7c3ab0469e14fd47dd5a1ae83cb3" } } @@ -23616,15 +24036,15 @@ }, "850179f9b1f2dc6f84412cdad94f83447a3b16a7193b34ce3f91cf017f4e8eec": { "zh": { - "updatedAt": "2025-12-29T16:46:14.745Z", + "updatedAt": "2026-01-06T14:17:58.329Z", "postProcessHash": "984b07b4faba1a8f2ead1a5e166c9fd7d97df851118032dc8218df493967d2ea" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.746Z", + "updatedAt": "2026-01-06T14:17:58.330Z", "postProcessHash": "8584792da2e80bb5e60e06e569035647b27f860a93401efad9bb749b0e477664" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.747Z", + "updatedAt": "2026-01-06T14:17:58.331Z", "postProcessHash": "8963717030b677a8ccd95b705ff3c21b6dabcab653a324af1d468142b2a25334" } } @@ -23657,15 +24077,15 @@ }, "ab8b246ab8320171bf38d66be217dee110ef247e8bdbc3c43a1c2e556c03b1ee": { "jp": { - "updatedAt": "2025-12-29T16:46:14.755Z", + "updatedAt": "2026-01-06T14:17:58.342Z", "postProcessHash": "e069363bcef834a1627f55d3d1dce1a7b3f55350348a23e96574e7e34ead5da1" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.756Z", + "updatedAt": "2026-01-06T14:17:58.345Z", "postProcessHash": "b6e897bb2714447715941fe1d68cbe9e3338d624354e5a0bef2aa6474a423751" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.757Z", + "updatedAt": "2026-01-06T14:17:58.347Z", "postProcessHash": "fc12e87abbc4fd6629a3495726fa1f11c6e1cb7cf6fadee82488b958938aa44a" } } @@ -23709,15 +24129,15 @@ }, "7a0621d15cd2288ba8b2f61949eb675384d7e3b944d4301e28bdf99c87a557e1": { "zh": { - "updatedAt": "2025-12-29T16:46:14.752Z", + "updatedAt": "2026-01-06T14:17:58.339Z", "postProcessHash": "b30c96f705b8299691e864dfb21e9bf08082191e8bb842f61e14d93efe676956" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.753Z", + "updatedAt": "2026-01-06T14:17:58.340Z", "postProcessHash": "99ba55fed0ced5c52359803d47edc008b553f42893f2f1a2879c014bc7bbe271" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.754Z", + "updatedAt": "2026-01-06T14:17:58.341Z", "postProcessHash": "9c1e5cf35d5d9708e7a3529c637ad7b6139b479652eb63b9707b168e5edf5d0e" } } @@ -23725,15 +24145,15 @@ "cf53b09fb0c34e1e63e41a10d6bc7a6922adc30f419e11b91aa28c4b6550ff94": { "3e1547b9c7d4792eac2ae0c79197b7137e4dcadce9e0b2767bdbb3facf5009e6": { "jp": { - "updatedAt": "2025-12-29T16:46:14.659Z", + "updatedAt": "2026-01-06T14:17:58.271Z", "postProcessHash": "2ce61454744e23274a05d6b4815ac7942d6815c8261ace32862bef2bee12f1e0" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.727Z", + "updatedAt": "2026-01-06T14:17:58.277Z", "postProcessHash": "188a83c14108290b8534023237455ddfa401b4ef6e7ed80d416661d2ffbe50dd" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.741Z", + "updatedAt": "2026-01-06T14:17:58.320Z", "postProcessHash": "fe1bdd270c33ed5d42691f074c8718ec1e3f45a302abd781c02f730de9e7b34a" } }, @@ -23752,15 +24172,15 @@ "d85a58d074e13f650fae5bc844462e82b569a15037cf4beb81c7fc31334227bd": { "50add6bcb155ef82dcd92ed736aa66054a116b26b9fb26de8e9ff13cfb7af34e": { "jp": { - "updatedAt": "2025-12-29T16:46:14.645Z", + "updatedAt": "2026-01-06T14:17:58.243Z", "postProcessHash": "31401254a90e9a4ba6b81c12a19957ff66b8efa4a23d8655d68f7fe7d96c1ff9" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.735Z", + "updatedAt": "2026-01-06T14:17:58.288Z", "postProcessHash": "cb1509306ca2e71449a2c2006f0d5841b1b4e6bee0bec9fd452ba88106cbc16a" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.733Z", + "updatedAt": "2026-01-06T14:17:58.285Z", "postProcessHash": "504eb7a061178b90fe81b4b9ded85c507b41116581bbd4fe85ebb069890e48b6" } }, @@ -23779,15 +24199,15 @@ "e014a958a8137fc765da9797a531683aae1075024018fdd2793c345a9ea2837d": { "a3692c0caea63dccb572f30b9f84021d898cc0b99e942bba8475e5cddd746e9c": { "jp": { - "updatedAt": "2025-12-29T16:46:14.644Z", + "updatedAt": "2026-01-06T14:17:58.243Z", "postProcessHash": "f2030f357dc5d21928ab4c442ed0cc7aac717f6678928f297a995e4e5912a4ff" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.649Z", + "updatedAt": "2026-01-06T14:17:58.263Z", "postProcessHash": "cc74e5cec84e4d9a2a71f19472d47247e366bbc10d224789d2529175e1781283" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.653Z", + "updatedAt": "2026-01-06T14:17:58.270Z", "postProcessHash": "964a134b825ff1b664c6ac0caff8494f2f74b2755a8c77ee0978ce76e075120d" } } @@ -23884,20 +24304,34 @@ "updatedAt": "2025-12-29T16:46:14.802Z", "postProcessHash": "7aca4b0560fdb20af2d9912412881a2a5549f798db5018616adc2d7ada017fde" } + }, + "02b2f4db262cfb9cc17d4f08cf45c5ff3399775dfeab6e06e58b831d71b37930": { + "zh": { + "updatedAt": "2026-01-06T14:17:58.441Z", + "postProcessHash": "7f3545a0d10b056c4f0b52ed55d4d2a49076060b8d0d786f0d8e90a4097a4448" + }, + "jp": { + "updatedAt": "2026-01-06T14:17:58.442Z", + "postProcessHash": "1672a5b6cb0afe80e88d70d7ad0cff0852edca16b5fe97ca8902cc6c6de443f9" + }, + "ru": { + "updatedAt": "2026-01-06T14:17:58.443Z", + "postProcessHash": "b2ff4817bc130823c9d1a07970735c25176a76b42c2e990a2552541469cdebbc" + } } }, "02fec6942d40034d750c654d9c675a575f12b3a87ec90a6e3786281d265a9b29": { "f8983bc303673b5b9632c8a2f95602dd3f90803ac3e493ee4ff7244ea4b98790": { "jp": { - "updatedAt": "2025-12-29T16:46:14.781Z", + "updatedAt": "2026-01-06T14:17:58.388Z", "postProcessHash": "3e60d91065001f6e17a773783fa77ef356ed382d29f6d5e34a40edf4972f28bc" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.782Z", + "updatedAt": "2026-01-06T14:17:58.389Z", "postProcessHash": "e2870d4616cc270d794bd62520f7e08ed3a170667b50110411a2b00528730e4e" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.779Z", + "updatedAt": "2026-01-06T14:17:58.386Z", "postProcessHash": "7824ea90fbaf03f67e14c4cbe1b6e44286943883cc5c866377e0a0c069ff0d6d" } } @@ -23905,15 +24339,15 @@ "0393512198efa57d46b32a113a35375ccd26518fa34d3bbabef4214d4fb8b53a": { "8103e61160aa52995bd2806ebc1f5871330feb5a4b2c8de0e9221fa8a70d1ac3": { "jp": { - "updatedAt": "2025-12-29T16:46:14.723Z", + "updatedAt": "2026-01-06T14:17:58.474Z", "postProcessHash": "2709dc57a05ea43c2290d862b72d1372b6bbc798278868ef8d98eec7f783e352" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.783Z", + "updatedAt": "2026-01-06T14:17:58.493Z", "postProcessHash": "8e846e7c412d4a1949fd30c043582de544a54c597a24c852d44c1990bb846928" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.722Z", + "updatedAt": "2026-01-06T14:17:58.468Z", "postProcessHash": "2f53143ff00b6a0a45c36e3877bcb57cd092c7e4c23046ac81ba144fa084fcf4" } } @@ -23921,15 +24355,15 @@ "0c5a65f577c71fbc834405efc189e3c50da0f84a64b7f1b1ba76d9fa8e7a3e9c": { "2d31634c588cb2805bebfc13a4cefde978ae8d078f32a88954c1ee076a081d1e": { "jp": { - "updatedAt": "2025-12-29T16:46:14.785Z", + "updatedAt": "2026-01-06T14:17:58.394Z", "postProcessHash": "ec575835d0247d36f644c5266c46868e4f0ca4542c2751d7f480953998468a01" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.773Z", + "updatedAt": "2026-01-06T14:17:58.381Z", "postProcessHash": "a53866db6c1d534308904b9478f6a280e313f69ef8833277a6d218a656f635ba" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.784Z", + "updatedAt": "2026-01-06T14:17:58.394Z", "postProcessHash": "6347eba96c167f12ec493abd68b3b4cd4e1dbd24405f54daf5b42f156410cead" } } @@ -23948,15 +24382,15 @@ }, "734cd9155fefd740d8d08b0c076d7ff45e66e547c017603481aa8c2733e38771": { "zh": { - "updatedAt": "2025-12-29T16:46:14.767Z", + "updatedAt": "2026-01-06T14:17:58.363Z", "postProcessHash": "8868502afe5fb8f19c04dabde3f1fb6e47ca9bd40a199f2b11b6ffe23e4f1ac1" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.768Z", + "updatedAt": "2026-01-06T14:17:58.364Z", "postProcessHash": "904166aaea1483096db86e44a6db0f4599b9db56bdc2893f08a9d65fd7de09d7" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.769Z", + "updatedAt": "2026-01-06T14:17:58.365Z", "postProcessHash": "2b6ea7473dd341b631db658798ee47d0b9ac253a1e8b40bf99615f0d9a44a5d9" } } @@ -23964,15 +24398,15 @@ "16ea5fa75d5d08e032a72f3d2f70dfde100b84192a3a87d58596c7a636e73d4a": { "08b83c6534ed2ed43f2e271298926bbac6bd7c4e552372271ab8f870588ce545": { "jp": { - "updatedAt": "2025-12-29T16:46:14.783Z", + "updatedAt": "2026-01-06T14:17:58.391Z", "postProcessHash": "8dd4da55e7ddd36b6d9ead4d1fbc78cadea5b2939b2869572a923283df5b31e2" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.722Z", + "updatedAt": "2026-01-06T14:17:58.381Z", "postProcessHash": "ad28b4daf1c94d286c4291d204e0360557f065bd1b2c80017c914e165032e82a" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.785Z", + "updatedAt": "2026-01-06T14:17:58.395Z", "postProcessHash": "8b4da39f07bc75592e908129dd7b6e5415d8bc9d93c3ff2011acd090f7f97cd3" } } @@ -24005,15 +24439,15 @@ }, "9dfbc3890163548c593c3e840b6ab02295f82bef9c74690776b53a565aa4013e": { "zh": { - "updatedAt": "2025-12-29T16:46:14.812Z", + "updatedAt": "2026-01-06T14:17:58.432Z", "postProcessHash": "bc38813944faec34655ff1c901ddcbb0cad5534553546f794c70de9891c2601f" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.813Z", + "updatedAt": "2026-01-06T14:17:58.433Z", "postProcessHash": "1f50cc25ce6621f0797f9406a028125430b6a88e3da60ce9939fd84057760194" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.813Z", + "updatedAt": "2026-01-06T14:17:58.434Z", "postProcessHash": "723cdda056ab716f1b639f6087dd2580b916a9397cc823d560f8bba4eba73e98" } } @@ -24021,15 +24455,15 @@ "3e1a6a2d9604853fec0f6b9c21e1534bc36ba5880d4042f71f1d9a03ff9e0c74": { "50a43ff5465e5ed3b333a2938abb5b5a0fe5d616b29d9f1176535339c755b45f": { "jp": { - "updatedAt": "2025-12-29T16:46:14.712Z", + "updatedAt": "2026-01-06T14:17:58.369Z", "postProcessHash": "5a0705618a01eb3b4a560325668cb43ca04563087260896a31eeb025ca6f02d6" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.710Z", + "updatedAt": "2026-01-06T14:17:58.262Z", "postProcessHash": "0b026ba47a86d82886a082357463377404f5e92f5eea6770e50622990f745dd0" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.715Z", + "updatedAt": "2026-01-06T14:17:58.372Z", "postProcessHash": "89e9f6a2cdc98325fba5f0443f7f556668c96c5584fe2ad96f3a6d182b2a3322" } } @@ -24037,15 +24471,15 @@ "3fac7c056527b2656c82dc06a3baca18af73cc6545b9cbc229c03280f867b18b": { "a946c1d0dfa7b8e0e8021716ca512f6f92c6c72a0617c7843fc9f56182195582": { "jp": { - "updatedAt": "2025-12-29T16:46:14.708Z", + "updatedAt": "2026-01-06T14:17:58.252Z", "postProcessHash": "971dc060decc336bdca43a61598211065f5020d06c67faeb55effb8215883783" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.729Z", + "updatedAt": "2026-01-06T14:17:58.280Z", "postProcessHash": "c3e98a59712656d8ba2955f90171272a5c02cd6e19efbbd3aebb26205829c40e" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.731Z", + "updatedAt": "2026-01-06T14:17:58.282Z", "postProcessHash": "35a2b62726e14991f5c58824534b1f55af3f55295d0fc1ae0f67ed9bfc8dbace" } }, @@ -24100,20 +24534,34 @@ "updatedAt": "2025-12-29T16:46:14.721Z", "postProcessHash": "2f5555ebbe804bb2e1b866dda823b70042de4558d5a711886907d3239f1855be" } + }, + "eb5e78dbebe468869763d69042e4144519a9c800f84dbfea7f5c7878c724cea5": { + "zh": { + "updatedAt": "2026-01-06T14:18:00.965Z", + "postProcessHash": "ecb417ea7018b9cf545943194e347605d4d3d1068cf3f2b14bb1562cd9a21d0d" + }, + "jp": { + "updatedAt": "2026-01-06T14:18:00.968Z", + "postProcessHash": "bdd18346113f776b0b6ecccffceb88ffdbc4c1d52657b8fafe4e63c2763f2892" + }, + "ru": { + "updatedAt": "2026-01-06T14:18:00.969Z", + "postProcessHash": "254dd860b03d13e645328a77a6639a41a5a413ccc73dc35823a048caa7f40fea" + } } }, "5eb08e96fd1bc79722d094e6a779abcf8a842d610d831653012ca3687bc9f9d7": { "abb8bce9e0621c2ecf30f9505bbef2d716584c9ef4ba432a4e47ade831354eea": { "jp": { - "updatedAt": "2025-12-29T16:46:14.788Z", + "updatedAt": "2026-01-06T14:17:58.403Z", "postProcessHash": "e3847f2a67c6792d81ecba523ea6534d6dac85eceda442c63e8af215aceb9866" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.733Z", + "updatedAt": "2026-01-06T14:17:58.401Z", "postProcessHash": "7a38dea6f71b14f9ad7407cf6d146423d1fb399a13cc566034a68151a649576b" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.728Z", + "updatedAt": "2026-01-06T14:17:58.397Z", "postProcessHash": "ede884e5af58102cc0f86a526fede16edb524231801909ad9be67b32d2933663" } }, @@ -24210,15 +24658,15 @@ }, "40c2b8550ef29bb87dd8b80a2478e4b9e1cba0cfbb156d18bd230e71ce7e4395": { "ru": { - "updatedAt": "2025-12-29T16:46:14.717Z", + "updatedAt": "2026-01-06T14:17:58.378Z", "postProcessHash": "4250145c8b4ee3115cea5e825a8c5ee1c5c780f11b5dc5403194876e8b17b1a9" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.718Z", + "updatedAt": "2026-01-06T14:17:58.378Z", "postProcessHash": "1fe60d22958e3f51787f40c070269a835dad0d62ebeebdc76d953cf5842e777c" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.718Z", + "updatedAt": "2026-01-06T14:17:58.379Z", "postProcessHash": "f535833d13c711ebf586b96d854f100f2b991ad65f1115c41f23208c7a4e1bf4" } } @@ -24248,6 +24696,20 @@ "updatedAt": "2025-12-29T16:46:14.806Z", "postProcessHash": "46610f4d9e525108e0657f77687e25efef1484cbff8256fbf3a9838cd8031cd6" } + }, + "4485f4c0d18bb2e25037bb2dd9323619b4c1f6816668964ba63e44e53a6f6ea4": { + "zh": { + "updatedAt": "2026-01-06T14:17:58.434Z", + "postProcessHash": "67522ca9a9f4d0cec64595f2316b453c5a89a8d80ba09479aa1fb9251b3b4530" + }, + "ru": { + "updatedAt": "2026-01-06T14:17:58.435Z", + "postProcessHash": "748b4790bc516440871150d37d937392cc6b299e2251d2bf2143b0574443132e" + }, + "jp": { + "updatedAt": "2026-01-06T14:17:58.437Z", + "postProcessHash": "a66c3eff1e767caaa26ec028b31d46c61a7102b849bec96f379bd9b12922f0fa" + } } }, "98a2ade41bd4731a099f797edd596fa78793203056404b35f51d527b8f16a36d": { @@ -24278,15 +24740,15 @@ }, "d59b71c59afa7e923e760ae75fe30c925ef749c972c947d8fdbd5ba2adb8be99": { "zh": { - "updatedAt": "2025-12-29T16:46:14.807Z", + "updatedAt": "2026-01-06T14:17:58.423Z", "postProcessHash": "b068ad8b09154e7b889c352c48b205852b44643c33f506a723bf9c6a3cb938d9" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.818Z", + "updatedAt": "2026-01-06T14:17:58.449Z", "postProcessHash": "2b4d2c3a95b458292c0fd2aa3c92566e154685f7bddb1c608f566c15135fda79" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.819Z", + "updatedAt": "2026-01-06T14:17:58.450Z", "postProcessHash": "664a16fb47207dae9009be1f52e829987f5c54aa54677f8f59a4d925fff6a796" } } @@ -24322,15 +24784,15 @@ }, "a8b46d5c94a63cc5b2a0d02bb24654af60f2a657f671fbd6cdbe116dba93f0e1": { "jp": { - "updatedAt": "2025-12-29T16:46:14.822Z", + "updatedAt": "2026-01-06T14:17:58.456Z", "postProcessHash": "66daf5381b9d8378eea6783818dfe892ba2838891a3e8446c768c3828947d438" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.824Z", + "updatedAt": "2026-01-06T14:17:58.459Z", "postProcessHash": "e50e037ead16db4fd127200b97f9ecc87067d8985ae901377ed4337f337e7f5c" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.826Z", + "updatedAt": "2026-01-06T14:17:58.461Z", "postProcessHash": "24ea231ec7c9944906f34c26cf8384dac422c8318831d7d54ca169775e0ceb20" } } @@ -24338,15 +24800,15 @@ "a005818ddc766e865af1ed1831655cacf269df57fe20666970c25aa1d089714e": { "a21353177e0617a8a2423d2339da6a2715dd92734a60da91f44354edb7bb6df3": { "jp": { - "updatedAt": "2025-12-29T16:46:14.790Z", + "updatedAt": "2026-01-06T14:17:58.406Z", "postProcessHash": "7a0b812c32d2b502a1a9814574908f4967f6f73547ca97f55bfd15788c70819e" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.715Z", + "updatedAt": "2026-01-06T14:17:58.266Z", "postProcessHash": "680b8b14cca1d1e74875907615016a1a70d845b6f9ac965f463746d2d1256d8a" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.792Z", + "updatedAt": "2026-01-06T14:17:58.410Z", "postProcessHash": "0c5069d6624ba2441d3756c401903b94b4f0adc1f6b9c33a4cbbd55a940c0a5c" } }, @@ -24365,15 +24827,15 @@ "a5f04cc970babcbd17a73219fd4d3f1d299602d839f96c355b2d5ca53d5cee5b": { "23193e28103b0087a2e3c305ef54301cdc3541ea5b77ce29af8eb04a17fa6f4e": { "jp": { - "updatedAt": "2025-12-29T16:46:14.705Z", + "updatedAt": "2026-01-06T14:17:58.244Z", "postProcessHash": "fa4a09c9cd643edd4450462b32be7b5ab038ed1230e1cb8d0ff68c40edb641e9" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.708Z", + "updatedAt": "2026-01-06T14:17:58.251Z", "postProcessHash": "84d2b1b9e4f778b2bba2dbd55afdbcde6a5a407f8b9969b949ba4be776b761a7" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.730Z", + "updatedAt": "2026-01-06T14:17:58.281Z", "postProcessHash": "2728343066b30897d620c591948853f3214807e0ddaacd8df7bc60f3f5d62c21" } }, @@ -24403,15 +24865,15 @@ }, "b5127f46fc8d65c84a16ddba167f617184476bc3c5db98f881b3968229929e19": { "ru": { - "updatedAt": "2025-12-29T16:46:14.711Z", + "updatedAt": "2026-01-06T14:17:58.264Z", "postProcessHash": "1f6592afa5325d047a92d4005b0e8954eea03dfd0bbb1e854273552aa3519b79" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.713Z", + "updatedAt": "2026-01-06T14:17:58.265Z", "postProcessHash": "80742ca8aac8df33e9190d562858c19349d861d37a78462cccbe9c3e77089ede" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.796Z", + "updatedAt": "2026-01-06T14:17:58.418Z", "postProcessHash": "df9346336aeba936833c6ef50938380f2563adbf96e760e1669caa2c5e57179a" } }, @@ -24444,15 +24906,15 @@ "c43792a75d02793708f0f9c298dd1e81a2db715e26bb86c9a3a5e14f34e785c4": { "76526beb43a3126f9cd6e8837bdfd7a2b5b294aba899560796a163b8963fb64c": { "jp": { - "updatedAt": "2025-12-29T16:46:14.794Z", + "updatedAt": "2026-01-06T14:17:58.415Z", "postProcessHash": "cafcad036089c03679ccb094517a20ba63b22b4276a4fd5c4ac88148e22af841" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.793Z", + "updatedAt": "2026-01-06T14:17:58.413Z", "postProcessHash": "5cd145a6775e7b9ae1d044606d92ed13830db6f9f0b743c0697f9b9e07111c00" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.795Z", + "updatedAt": "2026-01-06T14:17:58.415Z", "postProcessHash": "75165481bb165e4bdcda4a00a71ee5986e4c55ef64a22e01ed0d279f8b381fcc" } } @@ -24460,15 +24922,15 @@ "d34da7fe047d51a78fb46b67d8b9e61beb3565db263ce630e02ee4fd1c3a415f": { "de2fd7fc7b86f2b80b1c08bd8bb73d8dce37227d7b14b5fc21508b921ca7af10": { "jp": { - "updatedAt": "2025-12-29T16:46:14.729Z", + "updatedAt": "2026-01-06T14:17:58.279Z", "postProcessHash": "5acdab8d074b694e772e4cd5d8eb974d4b3acf50b77763fdc8c77567ca8b63d3" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.734Z", + "updatedAt": "2026-01-06T14:17:58.286Z", "postProcessHash": "c58e7ebc2cad23a761e857123337b5e9ae90d75cc784c4191b93449fed6d7a06" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.726Z", + "updatedAt": "2026-01-06T14:17:58.275Z", "postProcessHash": "2bfc8258ad3d9fdf135fb3831e6a92704849ea101a608f9327ea79c5e87ccb23" } }, @@ -24523,15 +24985,15 @@ }, "8bbcced5c6cfa711a8786fa37e069899c7bd3fd54d16cfeb14af2fc145f159c5": { "zh": { - "updatedAt": "2025-12-29T16:46:14.815Z", + "updatedAt": "2026-01-06T14:17:58.444Z", "postProcessHash": "fca4a983a11f4a7f1df3c34f72a871ede6f3ec119ef25c1b01f15a62574f336d" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.816Z", + "updatedAt": "2026-01-06T14:17:58.445Z", "postProcessHash": "985e150bf4da54f77a8e2264cdd02ec9bf816c190739fdb46a3ce6468d39bf82" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.816Z", + "updatedAt": "2026-01-06T14:17:58.446Z", "postProcessHash": "1341fac7a7919a850fab978948b8ff36d4d166f5a6e5fc22fe3310aaad390027" } } @@ -24553,15 +25015,15 @@ }, "adb40705b070c44706baf5088da64e734c981844d3da1c36326816e439b9dbe3": { "ru": { - "updatedAt": "2025-12-29T16:46:14.817Z", + "updatedAt": "2026-01-06T14:17:58.447Z", "postProcessHash": "33129967bb78a0bddfe804861c2a0fcea7de5e1fe6201326497d21382e9661d9" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.817Z", + "updatedAt": "2026-01-06T14:17:58.448Z", "postProcessHash": "f65fe74705ec18870d617175003545053192f86a7cd8923bb3dde0f32808178b" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.819Z", + "updatedAt": "2026-01-06T14:17:58.452Z", "postProcessHash": "960699095c71b585ab47a818e45fff418b56b7af6c9151576aaa147aa2842a72" } } @@ -24569,15 +25031,15 @@ "f411f73869f1597bddd3a69a70dcdf627b2f48802b68eb1297c49cf998a1d590": { "6c152f17b58caad6637a04e4d427aba059026b111c90e5aa764f040e05e669bb": { "jp": { - "updatedAt": "2025-12-29T16:46:14.724Z", + "updatedAt": "2026-01-06T14:17:58.271Z", "postProcessHash": "331c38927c19c9407728a6943bc5c1100800089fbcec620f2ee27b2c0dbaeaaa" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.724Z", + "updatedAt": "2026-01-06T14:17:58.272Z", "postProcessHash": "9bed1592f00e7bf18dae387703cc34eac541819b3a8c588ad993153015f9f8ee" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.707Z", + "updatedAt": "2026-01-06T14:17:58.251Z", "postProcessHash": "d82b0bd7ba21ffebae0abe4edac136a9d8ceae2ef8fc706a7d7c3c2019c4bfa5" } } @@ -24585,15 +25047,15 @@ "0bba267be6ffcbb62a544c365f5d2cd85d6371c78dc289e5697b0225352a76ea": { "95f85b7c7a43494a5f08ae259de69c8952afb7851b1d9a887ad3107d5e6cbc01": { "jp": { - "updatedAt": "2025-12-29T16:46:14.851Z", + "updatedAt": "2026-01-06T14:17:58.513Z", "postProcessHash": "5678792d3c8237068a96083cdfda49285f99688cc50c0db739e579a0640c30fb" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.843Z", + "updatedAt": "2026-01-06T14:17:58.495Z", "postProcessHash": "ee7eff3af93a21d39396b021afd96e657d0c5cb774c6fd4adcde1ca1d4073940" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.861Z", + "updatedAt": "2026-01-06T14:17:58.525Z", "postProcessHash": "04bc6b4e2abc3728a804964a2237a67bda8a38309da09809b34eb9b8959767b1" } } @@ -24601,15 +25063,15 @@ "12f796f4ae9f25130a8cfc11aff488171e7376f25404278d4e5c173c8bf9ed02": { "55069f671a99d799cfd16eda4312b66b5a321376cc69b52c58ba054f313fa404": { "jp": { - "updatedAt": "2025-12-29T16:46:14.774Z", + "updatedAt": "2026-01-06T14:17:58.480Z", "postProcessHash": "b074d55b8da5114626369121cc74820fdb214ebd596eae0dbb3f06c730ac5a2b" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.781Z", + "updatedAt": "2026-01-06T14:17:58.489Z", "postProcessHash": "5a746eb1b76fff9bbed5d64080534b643b7b11c2dc04a7ee31203a4738cab598" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.774Z", + "updatedAt": "2026-01-06T14:17:58.479Z", "postProcessHash": "61553ae737c53f26871eabf42e1fb78d9b7c3529cdd25940d9b4d7be23de76c1" } } @@ -24617,15 +25079,15 @@ "16c87bceec945d0aeefa7e76d421913b507e3b04716834b3894e9fd3174d2613": { "b43921e7c1caab150d19b0823696bd909b5e9b9dd41fe7847acfc9dabaec0942": { "ru": { - "updatedAt": "2025-12-29T16:46:14.926Z", + "updatedAt": "2026-01-06T14:17:58.609Z", "postProcessHash": "8085e509478f7334aa7227e7769468e5d1ba68f27b4b3e6b040d2913de5732b2" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.925Z", + "updatedAt": "2026-01-06T14:17:58.608Z", "postProcessHash": "d6150b5f43b94cb084e8278e06756702bf513b2ff5723bd6c90e3e02d39eab32" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.924Z", + "updatedAt": "2026-01-06T14:17:58.606Z", "postProcessHash": "8d30a943dd7049ba0ccf50151cc90c3b2cdafdc6cd8c25bdbeaadb833b1914d6" } } @@ -24644,15 +25106,15 @@ }, "7ac8d25006b0218725310bb4f50d2afa2fa76b42500a9587fca779027db7c47f": { "ru": { - "updatedAt": "2025-12-29T16:46:14.715Z", + "updatedAt": "2026-01-06T14:17:58.373Z", "postProcessHash": "41f0082644d4a4e341acf8ed95acb837a3f44144fed311cc690742711f05e572" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.716Z", + "updatedAt": "2026-01-06T14:17:58.376Z", "postProcessHash": "001d9453e1136ec4679b107a6b54d8a93d9e3e92747ba35400e5afbc9b1cd6bb" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.716Z", + "updatedAt": "2026-01-06T14:17:58.377Z", "postProcessHash": "1462e3fbaecc8e057ead79f136061b26e1ca89b36641c27ddf5e690ac48eeb7e" } } @@ -24660,15 +25122,15 @@ "2644c145de6d61cff7556d3efdff355e849b2f38b5c7912fbc2eb07360771f61": { "0e301628684a655bb2d5641c57775c3259b037ac338372d82808d6c91cacbd8c": { "jp": { - "updatedAt": "2025-12-29T16:46:14.702Z", + "updatedAt": "2026-01-06T14:17:58.241Z", "postProcessHash": "f2b0e0b82aaa559bed47f18a4b48dd909fd9f057f2f66af517643e31096a135d" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.714Z", + "updatedAt": "2026-01-06T14:17:58.370Z", "postProcessHash": "45578b07ee8911286f002079e6ebbfaf3eb5a9f0cd61a133d4b2b8e1e2d16c0d" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.711Z", + "updatedAt": "2026-01-06T14:17:58.369Z", "postProcessHash": "658d4a68a280ce778c89ac80066e30dd930a98641d18e8a76ad968b8391fd3b1" } } @@ -24712,15 +25174,15 @@ }, "14d471257eccf8db3c8a5e1c6445ae4d4bfca2f293865def52e164ada32a8ca1": { "jp": { - "updatedAt": "2025-12-29T16:46:14.814Z", + "updatedAt": "2026-01-06T14:17:58.439Z", "postProcessHash": "0729f2b1470d4ddb8ccf93d6abe1f92153d6dc53c15bf87a9e2e8d95d7047f0c" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.810Z", + "updatedAt": "2026-01-06T14:17:58.427Z", "postProcessHash": "bc91cd0012d8fe382eb7164d78d115754aff29f4d52a35a98fd73dd51e65bee9" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.814Z", + "updatedAt": "2026-01-06T14:17:58.438Z", "postProcessHash": "e10f909ea588a70fdb0a4edbda81cd75c817f8e19cff475f3fa3e30490621560" } } @@ -24728,15 +25190,15 @@ "337fa5ffda5b1ce15febb15e28d78f509b83dd0442c0eecb4e5fd5ad01cee570": { "8ad0cc19f45e168f3328286b8c922f25ddb3753ff16efc3a1795161778bbea66": { "jp": { - "updatedAt": "2025-12-29T16:46:14.864Z", + "updatedAt": "2026-01-06T14:17:58.528Z", "postProcessHash": "823a60b3ace40c2800fc852e592988f75c15f8e313fa216d6aa3be8f29aaa8b4" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.868Z", + "updatedAt": "2026-01-06T14:17:58.533Z", "postProcessHash": "dc0e2a44e5d9c51aeb0571d7216cb03a68dae0ebba3bada7c51146ca7cb57a1e" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.766Z", + "updatedAt": "2026-01-06T14:17:58.359Z", "postProcessHash": "83dcbc9085d4dec66330d0d0ba2833465b52fc629dc1f333709fe07edd70e758" } } @@ -24744,15 +25206,15 @@ "3a39c3cb40c4a84e5848358c7bcda5a305e64fba4846580eecea963760143cbd": { "1a63ea8e13a6c3989444c8189eb5c95920d36ded548a2cbb106db39f91e17f56": { "jp": { - "updatedAt": "2025-12-29T16:46:14.850Z", + "updatedAt": "2026-01-06T14:17:58.512Z", "postProcessHash": "27e8ec3a420a04a66d60fed025534b09a101288941296a8b96033153e442282c" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.853Z", + "updatedAt": "2026-01-06T14:17:58.516Z", "postProcessHash": "6106a0595350e37babc47ddad1b2c5041951d533afa9aa4976925aeb154e6df6" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.771Z", + "updatedAt": "2026-01-06T14:17:58.463Z", "postProcessHash": "01534d33f7b61ecb12f83039d48e18394593ca38993aa3b05d91213dc48871e6" } } @@ -24760,15 +25222,15 @@ "3b2a0db3103ecc795ff82061e46875995689dee845c28a19697c2e8b7d78fb8f": { "84bf17e2315c270d4f26795807428c5ef311a937dd6e53a4b6f3a8e26bf5e771": { "jp": { - "updatedAt": "2025-12-29T16:46:14.780Z", + "updatedAt": "2026-01-06T14:17:58.387Z", "postProcessHash": "effb6f58c64072592c934d47c27ff8ac63b1375e2b9fec9654852bfe6bfbee4d" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.775Z", + "updatedAt": "2026-01-06T14:17:58.382Z", "postProcessHash": "16bb312a94c73f8bdf7fcb1b1e5fca2dc77ff3bc920fac25d0e3f4f39c713ca3" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.776Z", + "updatedAt": "2026-01-06T14:17:58.384Z", "postProcessHash": "6046957fbe55f85753686a109f9b0332ea3faf14b2b00ae43adc07ce9983bc1e" } } @@ -24798,15 +25260,15 @@ }, "2a954aa5b3c6ae320f0f704cc2dbd8490f0b40f5d2552a4ea0cc0a372ce7f660": { "jp": { - "updatedAt": "2025-12-29T16:46:14.802Z", + "updatedAt": "2026-01-06T14:17:58.421Z", "postProcessHash": "35470b83cb0d8b6b4f15193d3515acde2b570a7d437513a97c5064b5c5e9d7b0" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.803Z", + "updatedAt": "2026-01-06T14:17:58.421Z", "postProcessHash": "db578e83fd580413077dc822cf93177bd9e44521b11d2626704eb3069213fbc2" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.803Z", + "updatedAt": "2026-01-06T14:17:58.422Z", "postProcessHash": "7786c325675e829199d447fa9849e05aa1dcab70cef06cf36fa0a881320e73d9" } } @@ -24814,15 +25276,15 @@ "548882c1623ad246688470b47967ff13ad16868ecad4f09349b0182efc755985": { "76fc9813a272dfbb6dda3bb0096c7a2eeb3bf0a58d344e26c115c075a8cdf7d0": { "jp": { - "updatedAt": "2025-12-29T16:46:14.867Z", + "updatedAt": "2026-01-06T14:17:58.531Z", "postProcessHash": "2bf55d970632b4d08a9fa5c444688384fff2323d069e49e783b3e4352298b7c8" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.866Z", + "updatedAt": "2026-01-06T14:17:58.530Z", "postProcessHash": "16bce8180cf97da7d78ed8642f98d6432e7e12d21f0ec5c70c5cc992e97556b7" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.863Z", + "updatedAt": "2026-01-06T14:17:58.528Z", "postProcessHash": "49f91781632c023497e1d344e3fdbd663872b9843d97a2e4cd6509e7450efc68" } } @@ -24844,15 +25306,15 @@ }, "bfd788cb0455494079a191feec3015e78bb44921a5bfc35936ecab802a76eb0a": { "jp": { - "updatedAt": "2025-12-29T16:46:14.807Z", + "updatedAt": "2026-01-06T14:17:58.424Z", "postProcessHash": "dcd07eadeca5c14c7493bedc8d5646530d80c25e4744d3fabb752442ba79223f" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.808Z", + "updatedAt": "2026-01-06T14:17:58.425Z", "postProcessHash": "5d4cf6b6900b2d30c5bcf7d5258000928e79d562e6d6bce3cf7b486d03b37067" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.808Z", + "updatedAt": "2026-01-06T14:17:58.425Z", "postProcessHash": "e3a67c6db3fcef5ceb39ba434cfdc15a9de040d286d6d059e9a1459c45728dc5" } } @@ -24860,15 +25322,15 @@ "819fce8b1343a94dee6cf3e428f8d46ff343c43b0d83b49efe18129ccf292430": { "af1d949b76a7c871e4cdce3092a3b2e2b1ea6afca4c4788054f8ff3eddde3ea5": { "jp": { - "updatedAt": "2025-12-29T16:46:14.772Z", + "updatedAt": "2026-01-06T14:17:58.464Z", "postProcessHash": "2111238a4c2eac9d3710a50dc755c6712c30b4cc92349904670129bfec67cdf2" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.839Z", + "updatedAt": "2026-01-06T14:17:58.489Z", "postProcessHash": "1d165a592f79593ebec3ec178e3de7f85b7c689efa0dfcd9ad1840de9e3e687f" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.772Z", + "updatedAt": "2026-01-06T14:17:58.465Z", "postProcessHash": "355fb666a6c6405d55de2e318eb8a04edbd84ea2f10e6b38e0b9f814cbc3ebcd" } } @@ -24876,15 +25338,15 @@ "8756460c34802f52ffc72c46fd775666b61d2134d4e3d1de0bf4111a5a049571": { "483cc85982240fd19d9aaf9161c58f6f4b1f2cdf226fb60169450e02caea8384": { "jp": { - "updatedAt": "2025-12-29T16:46:14.856Z", + "updatedAt": "2026-01-06T14:17:58.520Z", "postProcessHash": "7f8e52ff1a3dcf6fc66cce399a07e85b4bdead3cd2e148abe4f0597e1ed2f33e" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.773Z", + "updatedAt": "2026-01-06T14:17:58.476Z", "postProcessHash": "cdd095be6218a6c5dbdd2cc05fe8074c5d0eb6f530ba8fbb967b0c458d7f818c" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.848Z", + "updatedAt": "2026-01-06T14:17:58.506Z", "postProcessHash": "ccfc3c5894da0a297aa2616e81fdd6c780136a2aa09b1f1313655088bbf706ea" } } @@ -24892,15 +25354,15 @@ "99effff387a3391b66ab69348b19106aa7ae02149e5cdda15d9bd9397ddf4c41": { "635055619056b153a2e20b6a09345d76348336b24340ba32f815de9c85a7f2b0": { "jp": { - "updatedAt": "2025-12-29T16:46:14.796Z", + "updatedAt": "2026-01-06T14:17:58.417Z", "postProcessHash": "be46d40869181d3f808dada82ff0d2f8a8e6d5d153cc91c7bfee780c7316b11d" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.795Z", + "updatedAt": "2026-01-06T14:17:58.416Z", "postProcessHash": "bb1e160cfc7aaa7cd8946c565386700db8b5984d7b328bfb42c72af8e6b87001" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.790Z", + "updatedAt": "2026-01-06T14:17:58.406Z", "postProcessHash": "aff2ee71adabeb9f84d468e926f6611825cd55ded277310e804875b9f697aeec" } } @@ -24922,15 +25384,15 @@ }, "7e878840adfba6f52e66831d03a677e358e504f16aaad9370ff2828b7de36d66": { "ru": { - "updatedAt": "2025-12-29T16:46:14.811Z", + "updatedAt": "2026-01-06T14:17:58.429Z", "postProcessHash": "77be78b113ff1fafb8e0281cb4e6b3f29107481cc640c7ff066072c458256771" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.811Z", + "updatedAt": "2026-01-06T14:17:58.429Z", "postProcessHash": "86e0f11859175988fdeb9fc77483816aabc317de1d0bae66d222a2a1e4822dd9" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.812Z", + "updatedAt": "2026-01-06T14:17:58.431Z", "postProcessHash": "de8bd729a8650ec013581a8a0984ff9718568a0719a86c753c70cb36137c0ce3" } } @@ -24938,15 +25400,15 @@ "ad1402ffed17fc7c6fda3f600f70cf8e3bbe5384d766081c16c2c90b4a775b7f": { "623f2f8c2f6006597fa106e18afad1304117a0a599684c3050b5f92f433dadf9": { "jp": { - "updatedAt": "2025-12-29T16:46:14.851Z", + "updatedAt": "2026-01-06T14:17:58.514Z", "postProcessHash": "a8099cbe05a556cee64ca9cfbfcb2a769035b393cbaea0cd8a1df676563bcf30" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.845Z", + "updatedAt": "2026-01-06T14:17:58.500Z", "postProcessHash": "ffc294b9f5efe4c4c8cf8bdfa02e1e6edb301f751e46c0cb9a3a3f4454435e9c" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.769Z", + "updatedAt": "2026-01-06T14:17:58.367Z", "postProcessHash": "13832ce732ba5ec83691768de15e7b247a8e1a8102a1fcc0d5af5938156c7365" } } @@ -24954,15 +25416,15 @@ "d6127c27c939a8143d6bd93d737c445238b16aea350cd52caa535082aaed407a": { "af21361ca18f3026c0fcb3b223ce74e7a213c2e9016d2f7596b5103f9f243027": { "jp": { - "updatedAt": "2025-12-29T16:46:14.784Z", + "updatedAt": "2026-01-06T14:17:58.392Z", "postProcessHash": "51c02f166e4be626864f7bf6e689e4b9505891330789fdfd5479a0fa3015730f" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.787Z", + "updatedAt": "2026-01-06T14:17:58.398Z", "postProcessHash": "276fb25f69c5ecc0c3df259de37fd320e635c5835c110005efccd638d1b2d19d" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.789Z", + "updatedAt": "2026-01-06T14:17:58.404Z", "postProcessHash": "5beeaeccf167b3026117cfb71bd8bf85c157b8f6b4aaa3166de441727f1c33f4" } } @@ -24970,15 +25432,15 @@ "d679b331b013310d0726e18cff38795d35a48a549ce862414366ed5d37b17a5a": { "6884d15ae61a9e31fa06e9f6cb793ec44513338525d28650cffaeecfdfd55f59": { "jp": { - "updatedAt": "2025-12-29T16:46:14.705Z", + "updatedAt": "2026-01-06T14:17:58.246Z", "postProcessHash": "d477c7b385f2c523eba96509b7ce760950c86333173fe021649afd8e86cee862" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.787Z", + "updatedAt": "2026-01-06T14:17:58.399Z", "postProcessHash": "dfe041c880dca5c8262aae3e31941999c44f114b6d32255ca11765d877a886c0" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.786Z", + "updatedAt": "2026-01-06T14:17:58.398Z", "postProcessHash": "27dc8031e6e1ab1fe7bffb8acc29066cd8ab93920e50b69747f97640d24b2aa3" } } @@ -25000,15 +25462,15 @@ }, "8af9b9ae9836e7c1ab2e61dae5d150658b0fd0a0fe7b1f2b2c377f9e5c41c275": { "ru": { - "updatedAt": "2025-12-29T16:46:14.819Z", + "updatedAt": "2026-01-06T14:17:58.453Z", "postProcessHash": "8bc3a6acd3f81151010c486cc3255650c3cf46d60ff223c5ea75fb61c4e593b4" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.820Z", + "updatedAt": "2026-01-06T14:17:58.453Z", "postProcessHash": "e219c2dd137d2a7275878ec3d684f8f7b8097f068a6971786c42bc128e476cc5" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.820Z", + "updatedAt": "2026-01-06T14:17:58.454Z", "postProcessHash": "4f8c46dfe2b8f490f0f55dd81c0890c1576bea2893780a34607bc0d41b904b45" } } @@ -25016,15 +25478,15 @@ "f5d22ca5e2a60035bc7b1c39046c553ef2238bbf8c611bd22963a3cf3fe67663": { "9a33263baf26f23ddc1d61444b9f0bc17fe15f0d44c6aa520661947f7bc28d34": { "jp": { - "updatedAt": "2025-12-29T16:46:14.782Z", + "updatedAt": "2026-01-06T14:17:58.390Z", "postProcessHash": "1dce294b31e5ac04b1fa6229f4cb78612a5af6accd91c4d81667343df2aa5f66" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.777Z", + "updatedAt": "2026-01-06T14:17:58.385Z", "postProcessHash": "12a7b6c433b9a2774024b007c4971c28c0a48ceaa69433d48c1f79b5f55680c7" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.777Z", + "updatedAt": "2026-01-06T14:17:58.385Z", "postProcessHash": "842264c8e329a99f215715cd845aa0c3147eb003a3db2f684ea4ab4389daa0dc" } } @@ -25032,15 +25494,15 @@ "0d3a0a09b86406c2c362ede819ee030f9d92d058939579cd1229e361973022f8": { "9fc104791c743a764dffa282d540ca4365e02a6a6590d6c336de81ff7f63da24": { "jp": { - "updatedAt": "2025-12-29T16:46:14.766Z", + "updatedAt": "2026-01-06T14:17:58.358Z", "postProcessHash": "fcb325802f33cb167fb58f7a2f88d3589f1f273684080eb0f8fcb8d94db852de" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.913Z", + "updatedAt": "2026-01-06T14:17:58.588Z", "postProcessHash": "d500b36ee678669ecfdef7e942677cc87111e09eedcadb2e52aa4f4e2e28010e" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.915Z", + "updatedAt": "2026-01-06T14:17:58.591Z", "postProcessHash": "3958b45d33bba163ae8a2c8b7bce67fdc96478e6d1caca94e6b0208f8aee0b66" } } @@ -25048,15 +25510,15 @@ "14364235369dc388419efc9e290886ddaa202d5023e8adc55d75a61c89fc336a": { "328695ec26f7fc60b0c8aec17edefe2b5cd222a635c116a01ed4259436be44ae": { "jp": { - "updatedAt": "2025-12-29T16:46:14.845Z", + "updatedAt": "2026-01-06T14:17:58.498Z", "postProcessHash": "33928766b7939bb2ef4cf1f8f8c73ed086e743826edbd7a925e686b3c9a57c59" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.857Z", + "updatedAt": "2026-01-06T14:17:58.520Z", "postProcessHash": "2e364faee5b46c247e85daaef3d2b437f56c616ff10522eeea43cda911806d20" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.862Z", + "updatedAt": "2026-01-06T14:17:58.525Z", "postProcessHash": "1563a8e89e250ee1c35c865fa941b64adb9af53b11e29075973a1eb60c057193" } } @@ -25064,15 +25526,15 @@ "14a65362c725c7a0fae1767f0bdaecab08516f4549961fb82c9b0d3889476e2e": { "4b5208315e755dbc3f295c8a58958e452a782c2f41e4965b7aaafc2ecdf93523": { "jp": { - "updatedAt": "2025-12-29T16:46:14.922Z", + "updatedAt": "2026-01-06T14:17:58.602Z", "postProcessHash": "35d7d5dc6937334f3b23d3b085c18e145f11b78d456c46feaa074f4650635252" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.920Z", + "updatedAt": "2026-01-06T14:17:58.599Z", "postProcessHash": "7e839c964f9083c5aae1272de98bc132e623777c729d3e2c2ca923a799d05945" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.925Z", + "updatedAt": "2026-01-06T14:17:58.607Z", "postProcessHash": "8cf3d30b935ec6598078a75c7171c6d78d3781d0873b47c9d9f848ec33a65332" } } @@ -25080,15 +25542,15 @@ "181aa5509e2dd7724e3095fd6c0f17cf6fedab2635b9af1d57fe9d1e2801ec31": { "bf2760368d2fc3a4c455358f8872f13eb6f6e7b8ccd6d529c68dfa016882d216": { "jp": { - "updatedAt": "2025-12-29T16:46:14.855Z", + "updatedAt": "2026-01-06T14:17:58.519Z", "postProcessHash": "10d9785badcd0cc24e46ec8b1e017b4d62c8fb370ea39ddbde77864a63f3ae82" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.859Z", + "updatedAt": "2026-01-06T14:17:58.523Z", "postProcessHash": "9ed1f590fe2efc90a6477f83bf465c9da7e2f940a000f452d9400219d32cc77c" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.850Z", + "updatedAt": "2026-01-06T14:17:58.512Z", "postProcessHash": "6669451d98f9cd189d4c414cd13efbccf2bdb186ea5d7412928228dc2ebe8514" } } @@ -25096,15 +25558,15 @@ "5181bec59897499f787e1b509cc19c69de2efe0e1437cc2001f2c7dbe8022440": { "54af2191cc8de0b1a73c6bfeceff12420569139b7347df0f18a111a00cfa0d1f": { "jp": { - "updatedAt": "2025-12-29T16:46:14.776Z", + "updatedAt": "2026-01-06T14:17:58.484Z", "postProcessHash": "685bfe4bfa067570b280e30de9ef63ca048946fb37cf9b0e14a45a4292726eb0" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.846Z", + "updatedAt": "2026-01-06T14:17:58.501Z", "postProcessHash": "1a302a4609052af4658efb236bdf661ac362db7fb97257a6456d3e76c84782f6" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.840Z", + "updatedAt": "2026-01-06T14:17:58.491Z", "postProcessHash": "f35c1534a6cb2cd5f47a2130af68292d83181e517bdf83af3fbb4d42153c6b84" } } @@ -25126,15 +25588,15 @@ }, "9a636dcd7511159ef4c382f66e3dfc62985bdf6c0bf17920eb2f774537255b59": { "ru": { - "updatedAt": "2025-12-29T16:46:14.876Z", + "updatedAt": "2026-01-06T14:17:58.539Z", "postProcessHash": "079abef67d91776f21947a578c90d591550558a06d6eca8309109c166b301466" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.877Z", + "updatedAt": "2026-01-06T14:17:58.539Z", "postProcessHash": "a97ef5c0f9cc64b35fad8bf4c45268cd3d3a5930fdd0e7e7bc28a131abca5949" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.878Z", + "updatedAt": "2026-01-06T14:17:58.540Z", "postProcessHash": "52f7ef91c922b3e055e103c1b147766ea8452db446c9b5f7cc710acabe3bce61" } } @@ -25186,6 +25648,20 @@ "updatedAt": "2025-12-29T16:46:14.875Z", "postProcessHash": "ea21f0f27e912b7075b3b7e2badccf7de595611125a4e03e35e9736cdee0a225" } + }, + "f8b398afaf26381ea4bb3ce910890391683f503f322187afc46b5f8c6a4e0c9b": { + "zh": { + "updatedAt": "2026-01-06T14:17:58.541Z", + "postProcessHash": "5eb52a46a3fe665b2f063f4b7c88509dd3a6efd7a83ccf6ad0244e497bd03d3e" + }, + "ru": { + "updatedAt": "2026-01-06T14:17:58.542Z", + "postProcessHash": "ff8e92d124a08b5c16e569466e1ff055c564d457f7aa60e7d2d7061032e9bced" + }, + "jp": { + "updatedAt": "2026-01-06T14:17:58.543Z", + "postProcessHash": "74bab76a2189b7add1f0c13c28c4153eb31ec1267eb523d7a010b4f4420e59a2" + } } }, "6d2c1d43528de97c8dcb1e3618555c13b1ee6ca0cec9035a38fdc267403c6c3a": { @@ -25205,15 +25681,15 @@ }, "8eac25efcb5645444c1807c985da18c4cd21f9960fa2fef6b4e659bbefa4f1b5": { "jp": { - "updatedAt": "2025-12-29T16:46:14.873Z", + "updatedAt": "2026-01-06T14:17:58.537Z", "postProcessHash": "24205b39dc8aa14ba63de2b695389830cade0b4a833e86669a2fab76c5d72d75" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.874Z", + "updatedAt": "2026-01-06T14:17:58.537Z", "postProcessHash": "ef154a7dc53e55663001a07bdb5e20e727fa99afe360c32a74af7ba0937795f7" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.874Z", + "updatedAt": "2026-01-06T14:17:58.538Z", "postProcessHash": "00659067568097758ba5ecd93e89984d7921ed14c54f2b6c2caca1b007f75075" } } @@ -25221,15 +25697,15 @@ "84d27978ad24cbc0448dc0661dc1cf62312406d39568cc877e9bee6c04e93677": { "4120b13b5f03f7c2fd4dd243edcbc718d6bd291d7358050064f6599242eeca09": { "jp": { - "updatedAt": "2025-12-29T16:46:14.780Z", + "updatedAt": "2026-01-06T14:17:58.487Z", "postProcessHash": "44bef36cff7d45a14389fe979190bf2e6bc0c1048290d86c5bd89064de58c34f" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.773Z", + "updatedAt": "2026-01-06T14:17:58.477Z", "postProcessHash": "d52c1eb313215bd608e793854528d02b3e5fefd9fc7f4859784f0c43b1134e91" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.771Z", + "updatedAt": "2026-01-06T14:17:58.380Z", "postProcessHash": "72a3afd4b9e9019096ee63f9dd474c59fae790a15169c872e6f0b7f78101fbdc" } } @@ -25237,15 +25713,15 @@ "993eb4cbf451025e383f5baa954ba930c6f9ae51ff01592c72b8d36662548817": { "6397e782e35c68ed2849d7a8210eb150a2820241365b2424b92b3ac99815d60d": { "jp": { - "updatedAt": "2025-12-29T16:46:14.857Z", + "updatedAt": "2026-01-06T14:17:58.521Z", "postProcessHash": "00b05501b5e3f5a8a5004e4283210272464b1e5bdb201cb1c1e7eb2932ac4ee7" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.849Z", + "updatedAt": "2026-01-06T14:17:58.511Z", "postProcessHash": "401fc08667076aff8967c4d9f19bd32c37bc55abc1ff3861340223fc53dbe84e" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.854Z", + "updatedAt": "2026-01-06T14:17:58.518Z", "postProcessHash": "b977d2ac0f3b085ffd87d073d3b8cb04a3c94bf95d7767f661f6270834c274aa" } } @@ -25253,15 +25729,15 @@ "bc95ac30c6163794df098cb1c5b0c612d68e460c1fee0982a9fde6ad2158ac24": { "d710ab3ea85690006a2ba44bbff81541eaffd450228382acc7544df0e34c7468": { "jp": { - "updatedAt": "2025-12-29T16:46:14.848Z", + "updatedAt": "2026-01-06T14:17:58.507Z", "postProcessHash": "03b8f73755647a6f9a73d7ea26a28a8599953a3b3f67ccf5f33ccfa22b39e1b2" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.863Z", + "updatedAt": "2026-01-06T14:17:58.527Z", "postProcessHash": "6a667df5280163acf1c0347e2f7025726fb2f853d2949b9c744bf29856b44930" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.866Z", + "updatedAt": "2026-01-06T14:17:58.531Z", "postProcessHash": "2c7a3bf72c18949af3f0da6c769cf271b9465c65071a228445a402a66caa3ffa" } } @@ -25269,15 +25745,15 @@ "bdea2c6c34b1129be3efdd889576a52c92a915a41e1639ec5331bfe00948aa9e": { "d5c5bd7080a73f05e45d4b278cac9e1b97c489d95a7c80a8edeeccfbc35abb0e": { "jp": { - "updatedAt": "2025-12-29T16:46:14.857Z", + "updatedAt": "2026-01-06T14:17:58.521Z", "postProcessHash": "d990c930fd772790529caf4c8b40ed0c38e14d55bbc980f2ca2439917a59d705" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.778Z", + "updatedAt": "2026-01-06T14:17:58.485Z", "postProcessHash": "6135359e44350e325ae69b48eba9659309011bcc392a236c3780122003cc3c93" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.860Z", + "updatedAt": "2026-01-06T14:17:58.524Z", "postProcessHash": "89313a4ffc0d8da2df46a3d1083df8adf0a7a77dcbd7804bacf19fbea65da1a4" } } @@ -25285,15 +25761,15 @@ "bef9b0e0b7b38c7969e61c98c564c4f45f4514c4992c99602befb825815d3fe5": { "ecbe5e563d38c0a661a9495fe8b3be6dea6041fe9fe0a6e674428f8d203f2c76": { "jp": { - "updatedAt": "2025-12-29T16:46:14.860Z", + "updatedAt": "2026-01-06T14:17:58.524Z", "postProcessHash": "aefd8ed7e23196fafabc7b262178dc0f913ffd552d5c0fef5ecf94ef94e2928f" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.841Z", + "updatedAt": "2026-01-06T14:17:58.492Z", "postProcessHash": "fb6e568dd534ebc16ac4d8b7d63e98564d71657a2e780c6f68b5088cd4ad98ad" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.843Z", + "updatedAt": "2026-01-06T14:17:58.496Z", "postProcessHash": "86e2c17cfde5ba27ea5111089b307d64faf9edd91ea3922d9b5005fe6a2732bd" } } @@ -25301,15 +25777,15 @@ "c86c73e2e1466ca9839d03145d28d089d50433e69d452f195d963042ce89ac2f": { "f65f3977310bfcdd03981a63ac5b1d00c85b04cbbc5ef4d29c352006d88c1be0": { "jp": { - "updatedAt": "2025-12-29T16:46:14.924Z", + "updatedAt": "2026-01-06T14:17:58.605Z", "postProcessHash": "3affb249b4704de25617e452b79e654d495c5789ce89020a0b5e30f4d6861fa3" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.912Z", + "updatedAt": "2026-01-06T14:17:58.588Z", "postProcessHash": "ae0a2067c28c1196a43e19e849f41085943ba9a4b4a937dc1f7b00d796b15940" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.912Z", + "updatedAt": "2026-01-06T14:17:58.587Z", "postProcessHash": "e07c7a41f5012428d15834b680f86e3d51397170594328b6b71c4570181f7f22" } } @@ -25317,15 +25793,15 @@ "cb9c09aa37313bf52611e34b607eaa3775f6ebfd79387f2120b6b2b2ed4b46e5": { "b033c9754be40272847cfcdbce3fd43701961388f8efc8698510876cb0c0fb40": { "jp": { - "updatedAt": "2025-12-29T16:46:14.853Z", + "updatedAt": "2026-01-06T14:17:58.516Z", "postProcessHash": "5f202645e772cfa9b66ce42db7caf7cd9c28649370139b45f796af57beada41a" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.851Z", + "updatedAt": "2026-01-06T14:17:58.513Z", "postProcessHash": "730476a1d6177985b73e2ce9e31babb9b5812e0263cc712f052ff4f6c5ee9ed5" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.828Z", + "updatedAt": "2026-01-06T14:17:58.466Z", "postProcessHash": "9a9ecf73cdeae1f584fb18ff22d40f31ae6876a3ee16f72f7b3e367557ae3af2" } } @@ -25333,15 +25809,15 @@ "d7bfcfa62fea0cd11e8181ebab38199db1c954694d8230c3cb8be3a89f91c476": { "c1ce68737a5260a794d17040e187ca291588ef715aeba34369597a7058dc2af4": { "jp": { - "updatedAt": "2025-12-29T16:46:14.847Z", + "updatedAt": "2026-01-06T14:17:58.503Z", "postProcessHash": "51402859c884d22290ea75c344927a04ae00189c8f8e0b6cf424923ce42194fd" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.865Z", + "updatedAt": "2026-01-06T14:17:58.597Z", "postProcessHash": "54ff1a28a2b2c504f6475726a7b8d95c416ee5ac95d54d9c96f8fa91c6e8b8a6" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.864Z", + "updatedAt": "2026-01-06T14:17:58.528Z", "postProcessHash": "3a6469bf07e54f04cfc12c78a02a287807cab88d328362ffd483378a94ccaf5d" } } @@ -25349,15 +25825,15 @@ "eb4daa639a63e99d988bfe1cd009befb853ba7171f88047823ca4d63e119f46c": { "db3dcac7ca205ca613bb9129a98b90f70d1edd49164206d1bacd86ccbb885f5f": { "jp": { - "updatedAt": "2025-12-29T16:46:14.919Z", + "updatedAt": "2026-01-06T14:17:58.598Z", "postProcessHash": "390874223e491d069b1dd3221ca600505a5dd17fdd1bf8a45772dcf7a29c9a92" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.909Z", + "updatedAt": "2026-01-06T14:17:58.526Z", "postProcessHash": "fffd4e13f319560ffc5cd9d8c85a129959be5ed09d6fa93f1f2bff1f2d841d63" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.858Z", + "updatedAt": "2026-01-06T14:17:58.522Z", "postProcessHash": "bc4d29ff870a53ed7562c2d522cffae13b795f3170384e8d7fa60d692d8288f1" } } @@ -25365,15 +25841,15 @@ "ece18ee5cf148911a064ac3aabde31461f3fa90405c4631fe64e67bf35b3df8c": { "babc66efa89a5cb73d9a68a0dceb5ae1559780502d074014931e6370f64030af": { "jp": { - "updatedAt": "2025-12-29T16:46:14.869Z", + "updatedAt": "2026-01-06T14:17:58.533Z", "postProcessHash": "e8489df5225c42aeeb337afc284f42a6932fc415547d9d165c5fcd77fa3585cc" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.871Z", + "updatedAt": "2026-01-06T14:17:58.536Z", "postProcessHash": "fb3f91e48b573ae1510cb74842cb88950049f75fa866f8e868600a8e8a0cf623" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.868Z", + "updatedAt": "2026-01-06T14:17:58.532Z", "postProcessHash": "9747aec9f29a3edcd1d969f85304cc67fdd86e8180ef92693560a034845812e9" } } @@ -25381,15 +25857,15 @@ "eec5db41f767e87040d1a1e1a235ad804968c2645819039af5e1306f75ee2ba6": { "3294839c4121817eb15af16f39ea52c308ef56de049782978aa71dcc4c38777a": { "jp": { - "updatedAt": "2025-12-29T16:46:14.849Z", + "updatedAt": "2026-01-06T14:17:58.508Z", "postProcessHash": "8e73962fdd101c2e62d921af7cf6bfcd611836950a8a0cb8d1db79d9a6e3264d" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.840Z", + "updatedAt": "2026-01-06T14:17:58.490Z", "postProcessHash": "828ed2784df3ba01a14af53cd6f589e56bf3e776f7ffd5364deb8e930fa25231" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.841Z", + "updatedAt": "2026-01-06T14:17:58.492Z", "postProcessHash": "2a15f6f7f47d5e64fc0a18680629f70efee2f81fc94f88b441bffd968ddd52c6" } } @@ -25397,15 +25873,15 @@ "fcac219896966a54530a8593af31aa0dd688a431b44e0f3c677722d49352eb30": { "764c0b5706ee7c8505c4e4a557bdfcf617fad088da12e5302081d2d0510f71a1": { "jp": { - "updatedAt": "2025-12-29T16:46:14.842Z", + "updatedAt": "2026-01-06T14:17:58.494Z", "postProcessHash": "c46a33f68796ff442fc2f2db7c5f9e38a7521eb519c7530b909e2ff362ab45b8" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.873Z", + "updatedAt": "2026-01-06T14:17:58.536Z", "postProcessHash": "2320ef01dbf9eb5a1553640f5712cafc6d46582777a4919863d981d756790591" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.778Z", + "updatedAt": "2026-01-06T14:17:58.485Z", "postProcessHash": "d42033c45e605167eb3caf8e814e9bb3389a22994d5a0059f09c2ea825905d35" } } @@ -25413,15 +25889,15 @@ "febea1a8af326ccd97db3bc68c3ffe9b9d02860dfb6225e2ad85613d0fd14f7a": { "96025027a22efdcf22fae68b1f8666c6d43d7197ab56d27461b40b4566ccacf3": { "jp": { - "updatedAt": "2025-12-29T16:46:14.870Z", + "updatedAt": "2026-01-06T14:17:58.535Z", "postProcessHash": "d371f974fa08d437197e7416ad8c0e6e99ebb3ee8a6393ca84c57bbfe2986533" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.867Z", + "updatedAt": "2026-01-06T14:17:58.532Z", "postProcessHash": "3c2dbdc481137884ed5304af881dd0c905b0107837d1e31c20b1919a3f8d62e3" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.869Z", + "updatedAt": "2026-01-06T14:17:58.534Z", "postProcessHash": "d5fc5043501306eb4aa65ce45d7f507b26fb4cdcb111685c0d5ec8a38ca645e2" } } @@ -25429,15 +25905,15 @@ "07413031937c2e03067e44df8e3cbca1210ee434cba21c6bfa6e51fe5d2f01e5": { "1e96680d8322f2acc44b5d97b8bff6f35462189f2158321fb5f3892804e98d6a": { "jp": { - "updatedAt": "2025-12-29T16:46:14.914Z", + "updatedAt": "2026-01-06T14:17:58.589Z", "postProcessHash": "cef6f2b8fec21b8c5b60fdd9873ad8d1d2c74a7c3f5058bc3380e42fd5a927be" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.920Z", + "updatedAt": "2026-01-06T14:17:58.599Z", "postProcessHash": "a3ddeadc4e1879b381bfadbb2031d843f8478bc5446d5def0e928992ce80f058" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.918Z", + "updatedAt": "2026-01-06T14:17:58.595Z", "postProcessHash": "f7ac3c594a2eed9b400fd16f2f343dc74d03423b565b1f90b22a0e6113571560" } } @@ -25445,15 +25921,15 @@ "08048e81a0b10f6fc876c8e10e896bba823ef23c25b37974243d3ce6241e95be": { "fa7004278db4a71dffabfc42db57fec5a575fb3dbd7222d4b9792bf19848b5d0": { "jp": { - "updatedAt": "2025-12-29T16:46:14.835Z", + "updatedAt": "2026-01-06T14:17:58.556Z", "postProcessHash": "c047f92c4d8b3e333bfc3b2d9d815cabf0f7febb6cafaf2cbf0ebe6ae355231f" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.900Z", + "updatedAt": "2026-01-06T14:17:58.564Z", "postProcessHash": "6bb0df5d2bad0f2d93abac68cc948086755c6fbc8b0119e3eed93bc17b873a3e" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.832Z", + "updatedAt": "2026-01-06T14:17:58.554Z", "postProcessHash": "7d2aa2d03bd18e28b40299d5fc2eff1e9953631c931824a01649d384eee38bf9" } } @@ -25461,15 +25937,15 @@ "184cb7accedb381551a80c780323d8467fa7bd7b87d916cb1c6e2e1927c800cd": { "20fbfd2eb1f5b24eda2f90fd903779fd0847f0d888d3b04f4c7e56590eff1492": { "jp": { - "updatedAt": "2025-12-29T16:46:14.923Z", + "updatedAt": "2026-01-06T14:17:58.604Z", "postProcessHash": "d798b8bd51b384227814e49317313fefa2d4d3e214e6d37172b77e5d73674778" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.927Z", + "updatedAt": "2026-01-06T14:17:58.611Z", "postProcessHash": "ab5db232eef7c528acb66d7645fcb05fd23f480136cb52f012a22be0a5475bf2" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.921Z", + "updatedAt": "2026-01-06T14:17:58.601Z", "postProcessHash": "e07793c37b16299df4208dcc9bd5339edfac37c4a4575f9deefd21a78f477162" } } @@ -25477,15 +25953,15 @@ "1f9e1a47c221609e49eb77fb61cad9a84a56bdb680185de6655f77145049570f": { "d2bac435d9afc706018821f07927cba0b34f6719b4e95a2c242a869d2c00be3d": { "jp": { - "updatedAt": "2025-12-29T16:46:14.852Z", + "updatedAt": "2026-01-06T14:17:58.577Z", "postProcessHash": "b36130e4d35207f3d11a01e934cb87f657ab1e620e200e3161aec95f3d8cfeda" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.829Z", + "updatedAt": "2026-01-06T14:17:58.467Z", "postProcessHash": "00cbc6ad5655ff3cf978571dbd077a650d08912709e98d39f8641c679e560892" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.832Z", + "updatedAt": "2026-01-06T14:17:58.482Z", "postProcessHash": "50c1a161f97c9052a7fef13f33e69bf0f868216a66f4a66d6d37f38c3c005c88" } } @@ -25493,15 +25969,15 @@ "1fd11512dba8b586ce114f0a09f748f438a3592e967e6b26fdb70d49b49b5b34": { "528c254f1d39fc4b566d364735917ebd190685375530f8192104891def887095": { "jp": { - "updatedAt": "2025-12-29T16:46:14.899Z", + "updatedAt": "2026-01-06T14:17:58.562Z", "postProcessHash": "9c7d433b3ad4d11286fde2c3b7f2273fbbcd97d4ea9e6e7304c9db80b170e286" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.908Z", + "updatedAt": "2026-01-06T14:17:58.579Z", "postProcessHash": "78c4987294a9a6795316e727c820938ce9c4bc63511b38e1eb3b342369057758" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.829Z", + "updatedAt": "2026-01-06T14:17:58.471Z", "postProcessHash": "784b61382b058c261eee34267dfd0ef43defabf1d0312196b774ceb8571b91cd" } } @@ -25509,15 +25985,15 @@ "22dec589b8fb9f267b747bb6c4caa91619a82b138da7ac22fafdf2a4d36dbe70": { "540a7500cbfe21ee07e22edbd55ff6af883a067d691b6301d93bbec754f9da7f": { "jp": { - "updatedAt": "2025-12-29T16:46:14.836Z", + "updatedAt": "2026-01-06T14:17:58.486Z", "postProcessHash": "a71edf9718a2ec3991ff44c721cd5145642c310e7a4e00cdc2717e738a306a89" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.834Z", + "updatedAt": "2026-01-06T14:17:58.483Z", "postProcessHash": "12b508335387d98355a87482712547e2d6a00444076dc97b612e175a8beddb1f" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.844Z", + "updatedAt": "2026-01-06T14:17:58.497Z", "postProcessHash": "7414336ba3770185961c9109ef11217c8a4f3031c9e0644e9c25f6440155a29e" } } @@ -25525,15 +26001,15 @@ "25a566b63d1b51f62e85f3301907bb9851c8e295092c6c0cbb274855aaf2075a": { "b194d71f6380d7cf9309e9c89f192bff2723d4c46d48e2aa2b48e736c874804d": { "jp": { - "updatedAt": "2025-12-29T16:46:14.859Z", + "updatedAt": "2026-01-06T14:17:58.522Z", "postProcessHash": "0a8632905a12a13164bbe1617093507595fb220b1d902678369a1dfa17870398" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.767Z", + "updatedAt": "2026-01-06T14:17:58.360Z", "postProcessHash": "7e31fdb7eec4faadeff56b78034bcd236ff43f9622f8dfa087cb3d3497e86b2e" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.859Z", + "updatedAt": "2026-01-06T14:17:58.522Z", "postProcessHash": "dda149a9fb8c99bcd9130357ab0ee3d6c68ba59e01112e4cad288e6fa9421e34" } } @@ -25541,15 +26017,15 @@ "2dc1b2de19552e6b04e43bcf12a339877b5cd1caa1251210fa995f871b2381a2": { "8023c7e209034ddbc60f9efb8a61b992915d01ab6dcdc5f5a0b08c1c7a1cf28a": { "jp": { - "updatedAt": "2025-12-29T16:46:14.914Z", + "updatedAt": "2026-01-06T14:17:58.590Z", "postProcessHash": "eba15786e56608350d1caeef75dad29773059fb2542c15006aee5cd31912b6d8" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.904Z", + "updatedAt": "2026-01-06T14:17:58.569Z", "postProcessHash": "6a56cd65043e01b60bc84fcb43f7e4616e87af81f363fda82c2b03d945098cb5" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.916Z", + "updatedAt": "2026-01-06T14:17:58.592Z", "postProcessHash": "8486168186dff5c750e54b7c4fbc627d90ae92e45195e5d021071c62593683c9" } } @@ -25557,15 +26033,15 @@ "356f390220f614f7e13052b738d6bac3386bcb14e99297bc57a7c7bf37c10fd1": { "eed67b4d5e2a37a8d51c1aaf6d8810650b97bd70d00122a88ebb97c212da9ee2": { "jp": { - "updatedAt": "2025-12-29T16:46:14.830Z", + "updatedAt": "2026-01-06T14:17:58.478Z", "postProcessHash": "4bdff42f72d48b7771d7d33b7827030aa266f9938c02efd3c6a94e5878250006" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.848Z", + "updatedAt": "2026-01-06T14:17:58.504Z", "postProcessHash": "9db3373e734361d21273cc5a0729d6c5443a7c2ac272d7858c0f57f3e9464849" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.847Z", + "updatedAt": "2026-01-06T14:17:58.501Z", "postProcessHash": "561356a7cf20164d944d4b9f15656c7d9d466ad586d1a4e767c01c3683fdc995" } } @@ -25573,15 +26049,15 @@ "35c7bfba55131ad9d6116db29b6547a45eabafbca7d547b5501ea16d51eede3f": { "6a8e1ca55281999c6130ae572325abcb150b29cfd12ebe451133060b6c502a1a": { "jp": { - "updatedAt": "2025-12-29T16:46:14.907Z", + "updatedAt": "2026-01-06T14:17:58.579Z", "postProcessHash": "18172b0f262c8cd198d83f2ea882c4d79e65e98aefb17bb9e082057d63c4d386" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.908Z", + "updatedAt": "2026-01-06T14:17:58.580Z", "postProcessHash": "b875b67b3b36e49e22a6cfa4050c910d0b9b10e5862cdd6b992631391fe6b441" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.905Z", + "updatedAt": "2026-01-06T14:17:58.572Z", "postProcessHash": "ca5eedc366b32edf7a57ea49f9ce3cc24398b90b60bbb08c76e63091f29631ac" } } @@ -25589,15 +26065,15 @@ "43b396ef0d459a925fcad74ebe7dbd673c6bb8eab1d24fb377b596b6d6850d5b": { "83184a4d72d70281ddce4c2b92b731c5b7e8f98d6d6bebeedbdc0a053adf947c": { "jp": { - "updatedAt": "2025-12-29T16:46:14.915Z", + "updatedAt": "2026-01-06T14:17:58.590Z", "postProcessHash": "9bdf4a8f1c90b4e48458e9d69bde9e282421e7349b0f055198db826f1ac900f3" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.904Z", + "updatedAt": "2026-01-06T14:17:58.570Z", "postProcessHash": "d5b6e6bd7d4c442b854b88edf85f7b96ad644a54465caab241e5de46679f99fc" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.904Z", + "updatedAt": "2026-01-06T14:17:58.571Z", "postProcessHash": "99896c6d55c9b751ffb36dcdd47021881c57a401987a96537e0aeb77e0203188" } } @@ -25605,15 +26081,15 @@ "4d4c6c8d13e7ac14a5f189e798e199562f2150ad644328ef3e5b7e6d397aacb0": { "7c2190f84db7a1c33916eca37c2632206233059ad999d42ac355995a785c5d81": { "jp": { - "updatedAt": "2025-12-29T16:46:14.915Z", + "updatedAt": "2026-01-06T14:17:58.591Z", "postProcessHash": "7dbfce849c5fa0eb1de39ce86f03bc15418d04712365fb3664d48cf83dd3f7e8" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.910Z", + "updatedAt": "2026-01-06T14:17:58.585Z", "postProcessHash": "5ee70d58e0317af1c01dd29cddd4bfc73d674394fd283dd48fdaa8eda7079ba5" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.827Z", + "updatedAt": "2026-01-06T14:17:58.463Z", "postProcessHash": "64dd723b3025f832c67da4cc88a40064dad3fabaf2ebd6305fbc82ac729c67fd" } } @@ -25621,15 +26097,15 @@ "5f7094d809fbf8e07ca4e02020e14a570a112a588701724679f8375a2bfbecb1": { "d84676e935f15fc8eda0f1c0db79ad9cef52b93ee23e53f9891fe1aaaa1180ba": { "jp": { - "updatedAt": "2025-12-29T16:46:14.828Z", + "updatedAt": "2026-01-06T14:17:58.464Z", "postProcessHash": "90379d43aa54894dba1fec53be8637bd35633cc0bec8540fddc51f1daa52b2a1" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.835Z", + "updatedAt": "2026-01-06T14:17:58.557Z", "postProcessHash": "ee6762e6048445354132eca8b65eddd65abfa0f9461214aa7c89477a47a0c974" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.899Z", + "updatedAt": "2026-01-06T14:17:58.562Z", "postProcessHash": "8253ea2f2633d33ab11318a2fcede0a67a8fe34f26c262b5f50de825f867d592" } } @@ -25637,15 +26113,15 @@ "7c4de22baba4a87ac92a5d821ddef4976b0c230d25c52c53dfeac09fad83b108": { "6f7f34ba690c91122f3ae8820b83f342061fa594ff253407eb57463d3c34c326": { "jp": { - "updatedAt": "2025-12-29T16:46:14.852Z", + "updatedAt": "2026-01-06T14:17:58.515Z", "postProcessHash": "992d6416bf09f5ac068043bf9553de48b82483151b9c3d98fac7373367149948" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.855Z", + "updatedAt": "2026-01-06T14:17:58.518Z", "postProcessHash": "09bbf36dd3bf7adb64f34a9a76b65da2a26e3dff1f786cdc88e410c52595d627" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.842Z", + "updatedAt": "2026-01-06T14:17:58.495Z", "postProcessHash": "f5ea5cf25c9f603bc7797e15789771284cf5c2fa7255b6b3b1ced6be16a6e5d6" } } @@ -25664,15 +26140,15 @@ }, "f45cf9b56a6023b4ace03e8b17976a39ecde2e62ebe59dd94428f3f5fb17bba5": { "jp": { - "updatedAt": "2025-12-29T16:46:14.930Z", + "updatedAt": "2026-01-06T14:17:58.617Z", "postProcessHash": "fe456eb217a3476b3f75556c368ae43d308aaa27ea659ad42ea462ffda5595c8" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.931Z", + "updatedAt": "2026-01-06T14:17:58.617Z", "postProcessHash": "c68b34b85f88a877b4f22fddec87778661deb7c8102e0d50173f29f9ff23b0fb" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.931Z", + "updatedAt": "2026-01-06T14:17:58.618Z", "postProcessHash": "7aba1b0437bca960d53ac296a648e15b8c1438232a07280b5130ff610d699b7f" } } @@ -25680,15 +26156,15 @@ "9d97fe2dc29c4e251fff04450d9d510ccf9c2e831a0489dda3f038dcc1a6a2f3": { "e5572fcb5876d8a6b1d1de543d82369a494fcc0715dd6012be5bbf426e7ac03a": { "jp": { - "updatedAt": "2025-12-29T16:46:14.923Z", + "updatedAt": "2026-01-06T14:17:58.603Z", "postProcessHash": "bb7a5ff30260fd4862ec6233ab1b2ad492c081179d1aa54b6e5d621b637ffcee" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.919Z", + "updatedAt": "2026-01-06T14:17:58.597Z", "postProcessHash": "3721e193b7f88254b53c4d0b81aaa2654fe27bf88de6e5803713592fefa53209" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.921Z", + "updatedAt": "2026-01-06T14:17:58.600Z", "postProcessHash": "b5229b1b64df0e86c3b5f08bc7ae178708965a73fac68f8f1ba20a6fd1a6db66" } } @@ -25696,15 +26172,15 @@ "9e660b008ccbb63b66a28b42d2ca373909f19186af16b9c41ba664f7930e07fe": { "41b27ab4937c7b922d42316551438b4ad659c0ecc6b4fa06f15edf97230d1798": { "jp": { - "updatedAt": "2025-12-29T16:46:14.833Z", + "updatedAt": "2026-01-06T14:17:58.482Z", "postProcessHash": "a457a1295ba746250ecc29b58330d2a08e60b50d30f16bf5f6bb48f5627c9ec0" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.930Z", + "updatedAt": "2026-01-06T14:17:58.616Z", "postProcessHash": "6f4a1979eb4cd2406e954f71b3c1edf1a2d04bd3cb7f0d7659cb18c73fefd2bf" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.856Z", + "updatedAt": "2026-01-06T14:17:58.519Z", "postProcessHash": "0de3b0e189441e4521d0406c60c2d875a99b6b804a86c55865e4ace2f158a729" } } @@ -25712,15 +26188,15 @@ "ac6b549d962e823e381f2519f7e5e9ff23ec0d86da8d61b9555feb375c459654": { "0f0b86bed0cbb0312f32be51c009ca122e78f92ff738c6606ff98754fca7f43c": { "jp": { - "updatedAt": "2025-12-29T16:46:14.918Z", + "updatedAt": "2026-01-06T14:17:58.596Z", "postProcessHash": "af5a938af6ae9a373c84741c791b43a239751f09b505b99cdeededf20a777f6b" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.854Z", + "updatedAt": "2026-01-06T14:17:58.517Z", "postProcessHash": "51ca72913be952490b7a55faa0605eaf64592f45b74c32630bcfbd8c7929a6af" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.917Z", + "updatedAt": "2026-01-06T14:17:58.594Z", "postProcessHash": "cb161701ea0fd2bdd8bdf5745d73b212351371915440c446ab8650baf9ced48f" } } @@ -25728,15 +26204,15 @@ "af7eb4d69ab4cdae0eb49d2ecd090def503798009a9d8e43c2370f01f9a1219d": { "048d3372a598f7a300c38f0ddefba7da299bf7d8ba7fe1a30bbf53fd7ec3546f": { "jp": { - "updatedAt": "2025-12-29T16:46:14.902Z", + "updatedAt": "2026-01-06T14:17:58.567Z", "postProcessHash": "89b70430da49c64119ef9c723656cd87e1fb32cfebaa019fd9e4f99097619fa4" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.836Z", + "updatedAt": "2026-01-06T14:17:58.558Z", "postProcessHash": "3a17a37e6f8b78b6eb1d22df8f3c9741ec4418daef0e3070a8e0919e3f0632af" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.830Z", + "updatedAt": "2026-01-06T14:17:58.472Z", "postProcessHash": "f805a01161bfc591bd8fac367ee88c12e52219dec64679e13d56fa3ed8f114a9" } } @@ -25744,15 +26220,15 @@ "d613460c9b562b02355db0de5e4d5e795d93c8356530d72c4e6943e450e0cd79": { "21c14d0cc95de05e66c6024e0bc731b06c4934474cc10eeacdc8bce66de73868": { "jp": { - "updatedAt": "2025-12-29T16:46:14.929Z", + "updatedAt": "2026-01-06T14:17:58.615Z", "postProcessHash": "6e904c99ddf1c0141552fdb17a1378553537c3a08e8394191fb9534e68634a98" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.916Z", + "updatedAt": "2026-01-06T14:17:58.593Z", "postProcessHash": "f297a08b268e50493e92f6acc7aa6e1a02c90e220e3cf13c87fe4104f73b66c2" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.911Z", + "updatedAt": "2026-01-06T14:17:58.586Z", "postProcessHash": "61517ce520d7f8c088e8bd21582891499d94771262bbeab79611584245ab8b3e" } } @@ -25760,15 +26236,15 @@ "d79d5c1626358051641a02a5df10627db3ec1f8bfe82c284ecff6fc5d29ba24d": { "4b36bae2acf0c20fa2db7f654f8bc8ca933e4db7d7940a5c9c9a26463fe1a7cd": { "jp": { - "updatedAt": "2025-12-29T16:46:14.836Z", + "updatedAt": "2026-01-06T14:17:58.559Z", "postProcessHash": "c87edf55940c5e9238e47f976ee8e49cd7bcdd886782dea6e443d2873170a909" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.861Z", + "updatedAt": "2026-01-06T14:17:58.583Z", "postProcessHash": "ad3e584843032d8a2cb50664b995e9cf83640a55f0205d67feae9a9a0199f8e9" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.862Z", + "updatedAt": "2026-01-06T14:17:58.583Z", "postProcessHash": "4a35adab9c0955de8c03c3133e22c61afabfbabe436ec66820708a23e0a9cd29" } } @@ -25776,15 +26252,15 @@ "09892c5c8c7770850dc4f12c85271ef2eb4054c5c9c132e0c016cfae2c946ba7": { "dc7fead9cdbb478c71bec3f2d3de2e7f32d848c704aedac7d98e3ecb52061139": { "jp": { - "updatedAt": "2025-12-29T16:46:14.973Z", + "updatedAt": "2026-01-06T14:17:58.646Z", "postProcessHash": "14ccfbe1e31c1789cef4e6cd22d6709b3b8da52c667bae8cbc27c9b5f9cfd064" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.899Z", + "updatedAt": "2026-01-06T14:17:58.641Z", "postProcessHash": "a35976bf8820bc5acb71bb01126d3bb644d339f38f51893235f4813f63e20c30" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.975Z", + "updatedAt": "2026-01-06T14:17:58.648Z", "postProcessHash": "ba81abacab62e1f51fde73851e622b0175e8f544c169e6d69e4d47db85cda228" } } @@ -25792,15 +26268,15 @@ "2fcab50b97bbc9aee5c0c03f5a35d374e8c3cdd3db10dc78091477c88a2c1277": { "0a0ef87ced393ab506690dadba9b95b3965777f4f3358eb4d004ea111fe10a51": { "jp": { - "updatedAt": "2025-12-29T16:46:14.838Z", + "updatedAt": "2026-01-06T14:17:58.561Z", "postProcessHash": "c8bce9d3b60a035c22f901b545a48536df80bca154232c568c32029be8ed4abb" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.830Z", + "updatedAt": "2026-01-06T14:17:58.475Z", "postProcessHash": "91509dc646d8f47b3b2af52bd1c127df30842d61bb6933a5e887df7361fdc765" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.839Z", + "updatedAt": "2026-01-06T14:17:58.561Z", "postProcessHash": "2c8f68dd7783fb73f86d04cf2d6a4b1cb957850707144875eb04955b87333aac" } } @@ -25808,15 +26284,15 @@ "326c8895de68add9af3b55b704f3bfc1105c0f592e4c66fcf4716d6ad3d6bd4d": { "67ed218e943e01dfd5ac6127ae3673f4c5704dc7e706fa765d94c11dd7f80e59": { "jp": { - "updatedAt": "2025-12-29T16:46:14.980Z", + "updatedAt": "2026-01-06T14:17:58.653Z", "postProcessHash": "6551a05316b5b1d68b8ca9907a28a78817d58bff04e8ba3622cfb7feeda532f9" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.982Z", + "updatedAt": "2026-01-06T14:17:58.656Z", "postProcessHash": "84e02570ddaefbefb4e5657b699a9395ded838aab32ed8b1f51e1b11ebebff09" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.981Z", + "updatedAt": "2026-01-06T14:17:58.654Z", "postProcessHash": "818455904753978e3e5ff8d317cc64d93e42b23962e9a375f1a11b1a0e5fcbd6" } } @@ -25824,15 +26300,15 @@ "3aef4f3512c85d4057c69557fd85794d38328c9e61205b126b37d4de45a963e9": { "06d1c97a15302255ab6d9a474e72aa8993ccc93d6749dfd1e5e94970da469d29": { "jp": { - "updatedAt": "2025-12-29T16:46:14.971Z", + "updatedAt": "2026-01-06T14:17:58.644Z", "postProcessHash": "e36d7a5ca89ded46a32863a1ca52463f5a2e803cc1b3c9a11ca6ff80f77a84d8" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.898Z", + "updatedAt": "2026-01-06T14:17:58.639Z", "postProcessHash": "6fdec180d980fede032cd966f6afaa594605ffc2adf87194bd798dab3943955f" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.895Z", + "updatedAt": "2026-01-06T14:17:58.552Z", "postProcessHash": "efb4717f2d092fa8a3f0114346c4eb8d3e96e228370719d896b1aae085edda50" } } @@ -25840,15 +26316,15 @@ "467b72fd8dba8502decf3c42bc9358fa8c4d3014dfcfe6b42bb8f4dce198fd62": { "a67f1de09a8a84f9d6443a0df3a49146ce63494d30ed1c458b9929b32d5a4b7b": { "jp": { - "updatedAt": "2025-12-29T16:46:14.976Z", + "updatedAt": "2026-01-06T14:17:58.649Z", "postProcessHash": "3234ccc664d318c1ec00adf690fd21f7ba1f5b680260cc45fef6ca00031cd072" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.982Z", + "updatedAt": "2026-01-06T14:17:58.655Z", "postProcessHash": "5c605b75aedea3f0d914ba69397763f0467a7b14f93c446ed177782bb7466f74" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.984Z", + "updatedAt": "2026-01-06T14:17:58.657Z", "postProcessHash": "d6ac5d74bb986bcc5eb1c3f5d2591b2e4a32a2857242f1d562e626e0143f2b58" } } @@ -25856,15 +26332,15 @@ "4a37cce1f00cda917ca47dd0a1a69934772f9e50b5150732050d2e9f70a019cd": { "f5d8080ef6746049caf9a9d8037b9090eeef2259b54e9f42ef3e6a135b796e6b": { "zh": { - "updatedAt": "2025-12-29T16:46:14.974Z", + "updatedAt": "2026-01-06T14:17:58.647Z", "postProcessHash": "a1e676db929a3ac2f70f4cd03f9b54c7bc7ac7eb60511753972fdf78ecac7772" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.986Z", + "updatedAt": "2026-01-06T14:17:58.659Z", "postProcessHash": "a2ae9a1f8d4ed99c0eac6964f5139f88570a0374bc65e2e31de8ffc0434a963e" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.979Z", + "updatedAt": "2026-01-06T14:17:58.652Z", "postProcessHash": "f22b6231923564f8b9a2fd5a290998c26504896680738378de7dc1d69c04f9c3" } } @@ -25872,15 +26348,15 @@ "4e436a71846d9aca6f15dc8c5445f526f911657bccffd77d51b5a4689a95bbf2": { "1ada5cacc80d636b19794a43afd3d71292a74c9e3f3fa93f182b39eb84ad7355": { "jp": { - "updatedAt": "2025-12-29T16:46:14.907Z", + "updatedAt": "2026-01-06T14:17:58.578Z", "postProcessHash": "8afd1547f9d25eceea449fac9890137f96fd77df0fefa5a30121b7ead3259a3c" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.906Z", + "updatedAt": "2026-01-06T14:17:58.575Z", "postProcessHash": "6b88ce6dd658d514a2bd13058476be4fee5239952cc62595419bf6e6a5c92664" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.911Z", + "updatedAt": "2026-01-06T14:17:58.586Z", "postProcessHash": "b8e4b09d08f7cae1ef94027e5dbc08d760a8da2ea1c7b48a0993131ac5b9cbc0" } } @@ -25888,15 +26364,15 @@ "625ac60abe1e4f7ce4df8ac9bffd1f30f906501c1b636c41e7dee039c1280348": { "eaab285929dea7d9ff8f319faad61a28e866d384a56d15e9eb7a2ea10d96b567": { "jp": { - "updatedAt": "2025-12-29T16:46:14.834Z", + "updatedAt": "2026-01-06T14:17:58.556Z", "postProcessHash": "f79b0bac386dc848818a2cd99d3a1d918c7283fbd3f748a7ed40f88366a662c7" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.908Z", + "updatedAt": "2026-01-06T14:17:58.580Z", "postProcessHash": "dc678b3e11b653ed5021e3dce5f39b394798c79c098a568c3b084dd8b4742cc9" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.905Z", + "updatedAt": "2026-01-06T14:17:58.571Z", "postProcessHash": "683f4b462137504ae32b9c1bd1a1b916ab907e5f5af112f64d0ddeaf3f12d8a3" } } @@ -25904,15 +26380,15 @@ "67c93fd175b134b8986f749e1afceefc6f06a4487d9ef161d2ea74e2be618233": { "5418ed61ccd90e17c44bbf1d4246b7b4344bcf595b331971dc74df17def6dcab": { "jp": { - "updatedAt": "2025-12-29T16:46:14.926Z", + "updatedAt": "2026-01-06T14:17:58.610Z", "postProcessHash": "42914c43262bad40718d51d84a2873ebe94ee73501cb54ec0214dd7608e6d76d" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.922Z", + "updatedAt": "2026-01-06T14:17:58.602Z", "postProcessHash": "6756d2622b2f3bbeaf39edc7d69f0a4c802dac0a4721ea91f186ef7a42bc3b68" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.928Z", + "updatedAt": "2026-01-06T14:17:58.613Z", "postProcessHash": "a7711015568ed800c0da8a66269ec4bc109296daba67641799fea0ee6190e774" } } @@ -25920,15 +26396,15 @@ "8719f0b66c142c6db2cf8773ebaddac3b3d310bd046ca6effa5bb15e73d1a00f": { "9c001ffc30fb8da63ebd6c0931ef3efb9ac209edc160ae449428bb65298622c3": { "jp": { - "updatedAt": "2025-12-29T16:46:14.971Z", + "updatedAt": "2026-01-06T14:17:58.643Z", "postProcessHash": "ed2fe64e33aa67130b940547c707f452382c35e9cb49982c68707ae877ff32ed" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.895Z", + "updatedAt": "2026-01-06T14:17:58.551Z", "postProcessHash": "e7c5d94313bd62cc31120e850d2de2b55387423eb1b91e492b4ca418a48c8dc1" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.975Z", + "updatedAt": "2026-01-06T14:17:58.649Z", "postProcessHash": "809dce573583ed288d406bea0660493250aea46289ee5bfa1621c92601e53175" } } @@ -25936,15 +26412,15 @@ "89ea779c156a999fdf17c325da1e81dd07a635d696dfd5a115e631154d3dbb2a": { "ecc1acdcb21d77d65ebcdd760265565e99254e242903d6b4483da0a6b4a59482": { "jp": { - "updatedAt": "2025-12-29T16:46:14.932Z", + "updatedAt": "2026-01-06T14:17:58.727Z", "postProcessHash": "d784d6de1de62f13462203551bfa64a141104622971f7fd3bc7ccbc7d88e400e" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.910Z", + "updatedAt": "2026-01-06T14:17:58.661Z", "postProcessHash": "6f37ced98256294a18c1b6e7ff28e8fd9d15a9814d3acef764389de9c9318cc0" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.826Z", + "updatedAt": "2026-01-06T14:17:58.544Z", "postProcessHash": "f40b6a0720c3ebc32aa524651433d858792ddadb242f7e38a2ea0e01b4f98454" } } @@ -25952,15 +26428,15 @@ "9b137d113f115786a055cd8fbc160635ea3e53512ae73d845fd749380bc1f381": { "0e565f9a4b2a92384daeaab520393c6426e3c190a2625839b4ead735b7a693f3": { "jp": { - "updatedAt": "2025-12-29T16:46:14.894Z", + "updatedAt": "2026-01-06T14:17:58.551Z", "postProcessHash": "89675941b2fce4d38b001da357e5a9855e1e11add3611c4acaae54db2cbd9491" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.977Z", + "updatedAt": "2026-01-06T14:17:58.650Z", "postProcessHash": "fe851b892d8dee1dfe5b2b5bc891ffb3c6a61cab1b556e61c74628e373684760" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.978Z", + "updatedAt": "2026-01-06T14:17:58.651Z", "postProcessHash": "460ae3878353e63ec46084dc3a108adc9c1335432b3451b38a800becbc8ffc9d" } } @@ -25968,15 +26444,15 @@ "a524ef715c9704a1e92f4f92e0b9799ff822e7bf9860bf751ae2b1ff9edf0afe": { "e0f8014536b364d9d9409cff9471107e76279833faca677b2ccf2c077400b851": { "jp": { - "updatedAt": "2025-12-29T16:46:14.833Z", + "updatedAt": "2026-01-06T14:17:58.555Z", "postProcessHash": "55141a2c62f6535fe32461c33cdeb4c66d4f71681d3a2ef29cb3cb9e1ba45741" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.902Z", + "updatedAt": "2026-01-06T14:17:58.566Z", "postProcessHash": "18b5b965525cfb9ecd31cc564ccb311d006a1fdf899af8c54548659141e2e890" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.903Z", + "updatedAt": "2026-01-06T14:17:58.568Z", "postProcessHash": "2b5fdf0ed802043a9fbfbd8ce27a530cdf591f26f18f17a5507f046d57eb96a6" } } @@ -25984,15 +26460,15 @@ "bc010b67445245013c815d8c8dd2a711a400f2ac89689de6a705df179ad8c706": { "58a5d26b93b4269bbcac95ceeeb1329954babd6a907538f5319432f3ac4e6b22": { "jp": { - "updatedAt": "2025-12-29T16:46:14.898Z", + "updatedAt": "2026-01-06T14:17:58.640Z", "postProcessHash": "da084a9e0b6297bd372acbeeee2aa4af0643530131310fe368e6ec9b4b21187f" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.978Z", + "updatedAt": "2026-01-06T14:17:58.651Z", "postProcessHash": "d99519d7e1397d9e5b0564493ccb69791dfc47b36be3397d8d646b55ce32e0d4" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.896Z", + "updatedAt": "2026-01-06T14:17:58.553Z", "postProcessHash": "d52de13dd601af73044ef3011fe0ff0ad5547a26c53d46d87874ab22531f2499" } } @@ -26000,15 +26476,15 @@ "c0ac70d88c31f863cc7a3f822cfa525fe69266c4bf831f94c2029759cb9726db": { "b931df20b4f6c77ea8d226087a40d67fa3ecf5f9d09ed73922e7aa8f8f763fd7": { "jp": { - "updatedAt": "2025-12-29T16:46:14.970Z", + "updatedAt": "2026-01-06T14:17:58.642Z", "postProcessHash": "10b20af44be4b47f2291dec2bdf7abdea76a1da1952c744f17c9cf21e25e8a3c" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.972Z", + "updatedAt": "2026-01-06T14:17:58.645Z", "postProcessHash": "fd4296e6dd80576996af718b8abd30296dfa7357b42933d70ce7c3e7c810daf4" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.983Z", + "updatedAt": "2026-01-06T14:17:58.656Z", "postProcessHash": "6f8191d0eb492ce40ef08240bbe0a25fda9e5289c1135dd1f032e34cfff8aaba" } } @@ -26016,15 +26492,15 @@ "c58c920060a64568fe6e344fe00a5ce4d720ac37a93628692770ada830c5325e": { "4a343784a2e6508b5e218dd32d01eb13fe7c9d806b2cb07a5c39a775f7b2383d": { "jp": { - "updatedAt": "2025-12-29T16:46:14.929Z", + "updatedAt": "2026-01-06T14:17:58.615Z", "postProcessHash": "14c0c8075603cfbdc35ba4a5a76519fd4bf0490ebf35ad91bfdffdbae72611df" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.928Z", + "updatedAt": "2026-01-06T14:17:58.614Z", "postProcessHash": "b99803b971218d25ed103cac89ceeb6fd171c7121a8702d6f1966d88d80783ee" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.927Z", + "updatedAt": "2026-01-06T14:17:58.613Z", "postProcessHash": "b4164b12856567bcf5e4e6c353a482b3975a12454eff3b9e1abc140fc64477c4" } } @@ -26032,15 +26508,15 @@ "d61225a37fe0c4d963dda12e6171915748b61bb4ea252b20fee7017863e0f8cb": { "e22f186111d1f322fd63ea2a2ab6b8dabcc933c9f1a1d547efbcaa1d9f78faec": { "jp": { - "updatedAt": "2025-12-29T16:46:14.837Z", + "updatedAt": "2026-01-06T14:17:58.559Z", "postProcessHash": "c771d8c6f55fbece9d9f3ff59de20bf74ab962c0aee2ec221895d2c7420c3544" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.831Z", + "updatedAt": "2026-01-06T14:17:58.481Z", "postProcessHash": "6eb114cfe8666006b0758611c3aac91b31dc7065e94a6f160447d69baf610ed0" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.900Z", + "updatedAt": "2026-01-06T14:17:58.562Z", "postProcessHash": "00c10b3a5d4860d68f8f35d76720caf52bde7db8eb7afb934208d6c6151e5d3b" } } @@ -26048,15 +26524,15 @@ "e59d25e659a24273c3eef05daa226fdbfb119134fc9c360fb8f10fa1eda0bc5d": { "cea9fed32032cdfb1fc07ee3fd025b189b279642029231324022cc8c275879fa": { "jp": { - "updatedAt": "2025-12-29T16:46:14.901Z", + "updatedAt": "2026-01-06T14:17:58.564Z", "postProcessHash": "9cd758575ffbcc16c2e2f18bb0267fb929125516a61955c2d93c06d18cf4f322" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.906Z", + "updatedAt": "2026-01-06T14:17:58.573Z", "postProcessHash": "1db63de25f0b2b675acfe2c8c46be9a36faf0e9fe5ed4dedb426914689a7c1d5" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.901Z", + "updatedAt": "2026-01-06T14:17:58.565Z", "postProcessHash": "a510505546d1406937cc84cf51db0bb0dd6a48be8e72146a8549675d44726088" } } @@ -26064,15 +26540,15 @@ "ebcf5c14bcf3f123a8337f0e4d01711d0d5350b19f8fceb4989ba4967a454d71": { "fcbe8a223dbb47bb59f5c3e6880beb175753d21025800e5178cb322086eb6eb5": { "jp": { - "updatedAt": "2025-12-29T16:46:14.831Z", + "updatedAt": "2026-01-06T14:17:58.480Z", "postProcessHash": "64b9312ef816c2ede55e9b508a561fed70e0ec967b18600c2979720ee39c9ddd" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.907Z", + "updatedAt": "2026-01-06T14:17:58.577Z", "postProcessHash": "5b6ad1ce09008d349289cbe40f1b94140903e7cbefd818d2b3daeca930be53e7" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.900Z", + "updatedAt": "2026-01-06T14:17:58.563Z", "postProcessHash": "88e3d4d74579d0e9b9b36271496db60245b893a74392e58b23379fe435f47383" } } @@ -26080,15 +26556,15 @@ "f8131ef0252b8ff50e0e16a5c5a263d8c4c19d0d5eed0109ad5127d0b7f1e617": { "10eec051f15e6d2b7349c390f8baebb76014741ed3b8e31aa94bf797e786189b": { "jp": { - "updatedAt": "2025-12-29T16:46:14.838Z", + "updatedAt": "2026-01-06T14:17:58.560Z", "postProcessHash": "3d55f0daa191f0848a7dc079f86e24fbc6f67775766cd52dd1b59620df91f838" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.909Z", + "updatedAt": "2026-01-06T14:17:58.582Z", "postProcessHash": "dd093dfd6bfc43030edf0867dedb8c4214749d8ee2420027e03ebd679b4a0e6d" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.903Z", + "updatedAt": "2026-01-06T14:17:58.568Z", "postProcessHash": "d454bac44478a0542583ca9d2ec19e218c1cb42b490a33db8214b26aeffe6648" } } @@ -26096,15 +26572,15 @@ "57ad9bdcde77c82a8b9abbf11d3820f549bfb779a29aa35c949fd4b27ff2f01f": { "1e38948feed7f1b2a7b35c47b430e56f07e2438c56f10e45d636ec500990a43d": { "jp": { - "updatedAt": "2025-12-29T16:46:14.977Z", + "updatedAt": "2026-01-06T14:17:58.650Z", "postProcessHash": "0e759574a64ef431fc14e1b20d2e2986c661cd495c22256b89e5d21f3cccf684" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.972Z", + "updatedAt": "2026-01-06T14:17:58.645Z", "postProcessHash": "3a89d22e5846fe4b7e5a5c74ba4f6d5cd159a5d223881832b0db4682fc3b53ea" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.895Z", + "updatedAt": "2026-01-06T14:17:58.552Z", "postProcessHash": "5dc3c642906271bbea33a4948cc0e75044cbecac00d3e5f4c56d48d125ac7148" } } @@ -26112,15 +26588,15 @@ "7ceb6e3c9247297b0f7f32b5bcc5fdd805490fb8b1ac4cb176afdba619355e4d": { "ac6e6531f103ea9f5613e39ee61cfcddac7133be00040a3d2577c40543aa27fe": { "jp": { - "updatedAt": "2025-12-29T16:46:14.974Z", + "updatedAt": "2026-01-06T14:17:58.647Z", "postProcessHash": "5222678502cdde74d1dd2ce20052944b25a572af0d3c9e3439678a9a1847ac55" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.970Z", + "updatedAt": "2026-01-06T14:17:58.642Z", "postProcessHash": "d93021511a07dc2c6d271bb037929ffa9406310d6ed20a9e506bceb9aa4c4e87" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.981Z", + "updatedAt": "2026-01-06T14:17:58.654Z", "postProcessHash": "16614d2e48714f1d8ad04fa8fe115dc8a67718f510260a4930b8d6400b94cda5" } } @@ -26128,15 +26604,15 @@ "b623b9673e0f28805a4afdfc8013cc9c06d3af3bc31cc33238b2d1a449d4888f": { "141f6e9d777628dad68e29e4db62adc7411f17cbe61f3611de81835eed95ff15": { "jp": { - "updatedAt": "2025-12-29T16:46:14.897Z", + "updatedAt": "2026-01-06T14:17:58.639Z", "postProcessHash": "c141a834ed64fd59b77bc90a4dde80bd5c6b817a2b0cf0c60607a8a5e79538fc" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.896Z", + "updatedAt": "2026-01-06T14:17:58.553Z", "postProcessHash": "cb97149d044e92d3a240788ab62ba15d49e2dacee05b5512e5ce05f6446be7ea" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.878Z", + "updatedAt": "2026-01-06T14:17:58.543Z", "postProcessHash": "d8198dd013e61b46c7c14f4f6cd2fbbaad3b0e21ab7db6dc2a5721a4a5a5ccb3" } } @@ -26144,15 +26620,15 @@ "bd529fa629c3f10310f525658df96bc82a80d75ff52d1995cafe1e4b13e747cd": { "ff7e68ef737ee5b8e75daa40f60eb811c121bece05086608bbe25c6ac85d8715": { "jp": { - "updatedAt": "2025-12-29T16:46:14.988Z", + "updatedAt": "2026-01-06T14:17:58.663Z", "postProcessHash": "8b2afc2450b79a64e47289872c8823c1ec0d7b2af61b40e329f4e87124fe5722" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.987Z", + "updatedAt": "2026-01-06T14:17:58.661Z", "postProcessHash": "40a2be239e1b99b896b33aa21da6d688b156cfc690f8da703b7fa217b7a2e5d1" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.988Z", + "updatedAt": "2026-01-06T14:17:58.662Z", "postProcessHash": "b972c4510f48e82349b36b79c124dc35d0f155d60a251354146ab82b4a110348" } } @@ -26160,15 +26636,15 @@ "cbd3fd46a4918ee9b9919e72d00bd7ce3d00418bb1705c843c677adb3e595a3a": { "0613ad7af0509f61658a0f7a5e17e617139bdf209f37e63f862416353f1241ef": { "jp": { - "updatedAt": "2025-12-29T16:46:14.985Z", + "updatedAt": "2026-01-06T14:17:58.658Z", "postProcessHash": "6bcf7018f343959b4fab0b3afdcdb6716c6059a39fe8e09b70ec543fb9879ba8" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.984Z", + "updatedAt": "2026-01-06T14:17:58.657Z", "postProcessHash": "15c4c87192e67a7245b7bfa7f5fe54b54db94828a7bf4ee87059bc3a8a2b31fe" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.973Z", + "updatedAt": "2026-01-06T14:17:58.646Z", "postProcessHash": "ff81f036648e2b8ce9f0d4cfdb0cda455971056ccae4ffb0ef239a1bd04122b8" } } @@ -26176,15 +26652,15 @@ "e1167cae2cc6ec3ff98f99cc5fdc814c1613d183ffc5a294e5002a5c76629f89": { "bdc0fd08e9185e494c67e0405a76d6b5ff3f2a66fb66986f38ad9fb1486504d8": { "jp": { - "updatedAt": "2025-12-29T16:46:14.979Z", + "updatedAt": "2026-01-06T14:17:58.652Z", "postProcessHash": "474993322a1862cded8cdccfceed3fce3320cac1e53091f32d7491dfa345fa8d" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.986Z", + "updatedAt": "2026-01-06T14:17:58.658Z", "postProcessHash": "e748d7e122c091245d9f2a43c5bb8c7308b98ec0b77080669c27449e151f1d53" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.897Z", + "updatedAt": "2026-01-06T14:17:58.554Z", "postProcessHash": "ce0302387106802aed7f1689bb9b2cd3cd5deb7a72d80150f5cdb3aa674ab55f" } } @@ -26192,15 +26668,15 @@ "fddeb9c1bb988ad91fa2ab2fd48f16446790394aee1f2ea892b74b4703663d8e": { "40a994cb1728118007e9bcec1d1e95be3ceda608e471c1a73b546b7c438f8ebe": { "jp": { - "updatedAt": "2025-12-29T16:46:14.971Z", + "updatedAt": "2026-01-06T14:17:58.643Z", "postProcessHash": "91c78667ed7697c106fd48d171942616b0901d41a8f096fa7cf49f601f9abd12" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.013Z", + "updatedAt": "2026-01-06T14:17:58.727Z", "postProcessHash": "e12feb4c8c10053a8eebffa637a5f7ad569956ad0d3ca1c36858268c8ac87fda" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.986Z", + "updatedAt": "2026-01-06T14:17:58.660Z", "postProcessHash": "2876be26466bfe044d57145647a771161f2e4edb1020680a67682caffcdd4051" } } @@ -26208,15 +26684,15 @@ "08bffe1dc74222857bd9847a9079d22910222fbbdc1dd9975d3beb50f284f3ee": { "6ff985dd3eb042cd0776c0981bb360df764da84db1d5f50ba4c7bc2fd4394a58": { "jp": { - "updatedAt": "2025-12-29T16:46:15.109Z", + "updatedAt": "2026-01-06T14:17:58.897Z", "postProcessHash": "6bf45f39a61e8ace8225a623afc0c1c2c1ea015f283ace46c0ea4811a621f9cd" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.107Z", + "updatedAt": "2026-01-06T14:17:58.895Z", "postProcessHash": "a5b60e3ad9fdb455d570127ceae8a0401996406e768f2b07dfea167e94203953" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.109Z", + "updatedAt": "2026-01-06T14:17:58.898Z", "postProcessHash": "18272011fece902334999e53e7749ad33f75e5793a330ba3303ab143aa0656ef" } } @@ -26224,15 +26700,15 @@ "3a9bf422a9a85629cde7696a05524d19ff37ff8a14e26aa9d363708d50ca69ae": { "3106e22f04396e24e2bcfddd311b6bf015d441abff426e8f3e45320a55f20c46": { "jp": { - "updatedAt": "2025-12-29T16:46:15.112Z", + "updatedAt": "2026-01-06T14:17:58.900Z", "postProcessHash": "c6859db8be99ed40507ce1b175f04858bfdafabbb89295bf5f6a5a3923e3c711" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.218Z", + "updatedAt": "2026-01-06T14:17:59.022Z", "postProcessHash": "b3edd646669cb5192b7d7ae9d07c07a98be5a43696c9f508f45bdf8f3cabed71" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.114Z", + "updatedAt": "2026-01-06T14:17:58.902Z", "postProcessHash": "2a0aa1f4477e663ca9dc3cc18f139623ec7d97a456e7697b94413195796e020d" } } @@ -26254,15 +26730,15 @@ }, "57489294759086fdeeedfc2ba10baaba4d5f5d840d7d37b78337e1b12f88cb4d": { "jp": { - "updatedAt": "2025-12-29T16:46:15.218Z", + "updatedAt": "2026-01-06T14:17:59.026Z", "postProcessHash": "13280a9ecfa776d616d0fe8d5afbc07492cec4ab7dbbc05674ea0f132b5aa613" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.219Z", + "updatedAt": "2026-01-06T14:17:59.027Z", "postProcessHash": "618b45e62ec1cea752970b69dc3998e09cd767ca5b4f191413eede6bdd085892" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.221Z", + "updatedAt": "2026-01-06T14:17:59.029Z", "postProcessHash": "bf2a019642534c4667ac77452fef4e82aa8dca4c684caa719e29e76c249024fc" } } @@ -26270,15 +26746,15 @@ "190291cbeb8e03da636d545882454df1f5969a43233fa8547a340888416e0d7a": { "1e21922b278cc488c7ca6142a0b58330666f67ff429c778024409f871aeca347": { "jp": { - "updatedAt": "2025-12-29T16:46:15.087Z", + "updatedAt": "2026-01-06T14:17:58.865Z", "postProcessHash": "09b7edcbe92b4cc6b41ea070ab832c2b7d70f31666c8990a79a1bae55d8d5965" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.096Z", + "updatedAt": "2026-01-06T14:17:58.968Z", "postProcessHash": "404ae15d886d9f74114f0fb2bd6fddf5be90bd468d2104e1ed16405d00b15ad7" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.095Z", + "updatedAt": "2026-01-06T14:17:58.886Z", "postProcessHash": "dc7ddd29affcbec086ea80681be99267f83665f820caeefcf3217abd17f5cf92" } } @@ -26286,15 +26762,15 @@ "1dbfde47d0ccaf8fabcd5ad6a4296155b1b096aae0b5f8d17a8c1b756b2695fb": { "665e7928e61709a3964eb76535bc335c1bee18c8bc09733558199e232956630c": { "jp": { - "updatedAt": "2025-12-29T16:46:15.101Z", + "updatedAt": "2026-01-06T14:17:58.889Z", "postProcessHash": "d6f927fa8271304c2a5e0db1055044b5e260bfd847c8116da151ac3566c88cd9" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.104Z", + "updatedAt": "2026-01-06T14:17:58.891Z", "postProcessHash": "a9f5c1cfc4e1ef3fa1b6348275ba13d3aa2a6c975b68e12e7853b09e83dcfc6d" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.099Z", + "updatedAt": "2026-01-06T14:17:58.887Z", "postProcessHash": "07efbae0ec41f9c3eedf7ca96f607f3c8bfc7d31927c6df9d9ba54a8a4be2532" } } @@ -26302,15 +26778,15 @@ "1e6d8899d944f96b533c9b1689dd0f3c45d1f4d88d4d1edd3d0cd126273c28ae": { "874433a820ac2a172772ed12a2a2e43d64d72b5fa3f8c9060c2ea70f9d9969b6": { "jp": { - "updatedAt": "2025-12-29T16:46:15.105Z", + "updatedAt": "2026-01-06T14:17:58.891Z", "postProcessHash": "c995b5d0f47ce5f1b027f9390faf44db3b19020ade38918f11b31c20cc266bbb" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.107Z", + "updatedAt": "2026-01-06T14:17:58.896Z", "postProcessHash": "ee0c8ac7e05f33ffeef8b5cde7efa779506cce9b9f988c57f867669e4136a233" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.103Z", + "updatedAt": "2026-01-06T14:17:58.890Z", "postProcessHash": "b8a091652c96e14eb803fff7f6cf5feffabce8c04113f694b453a4c7ea73269a" } } @@ -26318,15 +26794,15 @@ "267616b5e710386f1e95782b057051b61f78cf2ab9ab90a87b76171e1110ba0f": { "526635ff55be813366ca95dd8408fe2713af702ad3c42ee3f6df159c36d7d754": { "jp": { - "updatedAt": "2025-12-29T16:46:15.195Z", + "updatedAt": "2026-01-06T14:17:58.985Z", "postProcessHash": "ced14aedc77a7a31cea9926cec6c2faa73298334bc9f80ed102f1936c3780772" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.102Z", + "updatedAt": "2026-01-06T14:17:58.976Z", "postProcessHash": "a40473617567341792692242fad3a712e9388d4c4479b5f8b1dfba340afb097c" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.195Z", + "updatedAt": "2026-01-06T14:17:58.984Z", "postProcessHash": "453e26431bfc4b1ed1e267802d2996d3b172541c53f15cc95efa32a4dc511ea5" } } @@ -26348,15 +26824,15 @@ }, "1cdbef1a85ce5ee89c8646d503bf966161c9b43030761d6ac4c98f501bbc302d": { "ru": { - "updatedAt": "2025-12-29T16:46:15.219Z", + "updatedAt": "2026-01-06T14:17:59.028Z", "postProcessHash": "c499303c5e07970e622f9220e0a050d082b9b169067e5d590bc5d496a966a9d1" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.220Z", + "updatedAt": "2026-01-06T14:17:59.028Z", "postProcessHash": "3e8467f264756de0c19e2db9b67b5f9fbccc6bcd9560930fe7c3d148e945f859" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.220Z", + "updatedAt": "2026-01-06T14:17:59.029Z", "postProcessHash": "aac226d91901a2b5ab75bcd23beefc338a3a04d2f0e9ea7ced778587d6ed3a6c" } } @@ -26364,15 +26840,15 @@ "4887a31d41443a8cec80c653b5cb1471ad7101392e2a0fd85344bf550b4479de": { "5d542d21d2aeff7420ac405c3efb0280de56bfcdabe3edfdeea55aee2ee0816f": { "jp": { - "updatedAt": "2025-12-29T16:46:15.102Z", + "updatedAt": "2026-01-06T14:17:58.889Z", "postProcessHash": "038e9e15c60993beb2c1dc3e65e409f744a260d616898ff4414b6ee59d134509" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.100Z", + "updatedAt": "2026-01-06T14:17:58.888Z", "postProcessHash": "0f7cb1300cd66b806c98209903cf0b403b6cf1bd2375baf65c9e4c1fe8624a08" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.099Z", + "updatedAt": "2026-01-06T14:17:58.888Z", "postProcessHash": "e5dac5bfa18675a022881dd39b4b4d296e5445e1106dd1032935be0d45bb09bb" } } @@ -26380,15 +26856,15 @@ "5e3e9bc17b90a0989880b5acd7291677843b0466fc3c36993015c0a7331f4c86": { "50e422154e7d9340b9ae3e608a02ad691373881011458d12ee9329b251e2ee21": { "jp": { - "updatedAt": "2025-12-29T16:46:15.017Z", + "updatedAt": "2026-01-06T14:17:58.735Z", "postProcessHash": "8dc4919aec6c44aa99842e449ae8525e4ec19e53c72ef06ca7179e620e15ed6b" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.119Z", + "updatedAt": "2026-01-06T14:17:58.909Z", "postProcessHash": "667e8272b44dc50f1b1585795f11681b6750f53cb7008070f8296092a9023d22" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.118Z", + "updatedAt": "2026-01-06T14:17:58.907Z", "postProcessHash": "3590b4b4c1397e6ae6f5a459552b6a5c114b1ee28c624622af655255f6d2e5ca" } } @@ -26396,15 +26872,15 @@ "6820315a7841bbc8c89a60ac5aa8c0fe4457e414cad746f3bed1650c3f297bc6": { "6d8963200cc850f442fe2995954f739d20436c4a7fb4b2ec7f8a636bc53779a7": { "jp": { - "updatedAt": "2025-12-29T16:46:15.120Z", + "updatedAt": "2026-01-06T14:17:58.910Z", "postProcessHash": "b42cb77bcd09cf95b6fe2e0590c0ef7e239283b5b0226c663ce1446cd0f17f27" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.108Z", + "updatedAt": "2026-01-06T14:17:58.897Z", "postProcessHash": "c9fb0e23e2fb0edcfd123a702b09b36edf987b934770062476b2cff21f995d5e" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.112Z", + "updatedAt": "2026-01-06T14:17:58.900Z", "postProcessHash": "6f1331ce102beec47bbaea3e7a939384dbe4af8633e2e9d3462d4f82999dd31d" } } @@ -26451,15 +26927,15 @@ }, "471202315a7332b5fed78d3cf3c810b24c92925ce4ad4a531f1b2fb9e8d5cea2": { "zh": { - "updatedAt": "2025-12-29T16:46:15.145Z", + "updatedAt": "2026-01-06T14:17:58.915Z", "postProcessHash": "7f7cb5199f08dae5caa5b8eab5b5952ea79cd42ee99f708c8dabf398de3af4b1" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.145Z", + "updatedAt": "2026-01-06T14:17:58.917Z", "postProcessHash": "76bb7816bc4c2a05f1f4cba52e1f988d89074eaf418ed89655f76c22346e11ab" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.146Z", + "updatedAt": "2026-01-06T14:17:58.918Z", "postProcessHash": "5c3b0782fa740d44689915d928f7e932154b3d0efc53f2fe2c62df65ab7c3e51" } } @@ -26467,15 +26943,15 @@ "e0c7e0ffde8dc72698165f5f5a97336beb9082111bdd4a6c98f10c02ab69cd27": { "1bd7f94ef79ae4a259d5eb60f577fdcaa8d2926824240d88238ffb4e9d917715": { "ru": { - "updatedAt": "2025-12-29T16:46:15.105Z", + "updatedAt": "2026-01-06T14:17:58.892Z", "postProcessHash": "aad458250fcf49146d858eed34b1b15036b5925d112ba938cb71f5eaf10c5ac3" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.110Z", + "updatedAt": "2026-01-06T14:17:58.899Z", "postProcessHash": "250d180b7a51b9ca725391e39720dac5202613f68f8a25446344db0a4c9c0f11" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.111Z", + "updatedAt": "2026-01-06T14:17:58.899Z", "postProcessHash": "07ee0d8a2e58ef17afc6b600101f1587e2d05bc14e2475461b66af8bb0d006a1" } } @@ -26483,15 +26959,15 @@ "09967fd0502ac05bc286aeb301c2cc87873b2a18ef14f3e2acde54345b2ce839": { "ced484d2a382f8655c9d000bcfd985aa94545bc671aae3824c264e06b17c1fb5": { "jp": { - "updatedAt": "2025-12-29T16:46:15.205Z", + "updatedAt": "2026-01-06T14:17:59.009Z", "postProcessHash": "25e612a0516ad92505f32625c194cf77225ebbb73747160167f6886e76a8f5c7" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.088Z", + "updatedAt": "2026-01-06T14:17:58.865Z", "postProcessHash": "fe37f48bd596bfe1d79107c5a7d5753cc847eddec1bd7db522aaa5de6ee4ca76" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.203Z", + "updatedAt": "2026-01-06T14:17:59.005Z", "postProcessHash": "311dd5e2d1d5457b4608c7bef10f56fad29ed0e580d17b5f3a905eb552aebf5a" } } @@ -26499,15 +26975,15 @@ "181adac272e2abd83cc757fde65fb79cacfbbfdd22c49560ad9938dc95ca360f": { "6aca92cecd7097cb7ee90b10d02efba74d48a3de1843308bf7b14b842592c336": { "jp": { - "updatedAt": "2025-12-29T16:46:15.096Z", + "updatedAt": "2026-01-06T14:17:58.969Z", "postProcessHash": "ff16e19fe54c4b1539e9df770164dc0069ed4f83a15935d5c67cdaea584d3279" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.095Z", + "updatedAt": "2026-01-06T14:17:58.966Z", "postProcessHash": "97c0be61f0ecdcd5eccc3d73ef30aa31bdc6675796a9b5ce3bf1ffea71ea6c9b" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.196Z", + "updatedAt": "2026-01-06T14:17:58.986Z", "postProcessHash": "195e41ea43557113d735d7bbde8d7a817db92533bec85df707b8e1484b5b24e4" } } @@ -26515,15 +26991,15 @@ "1e8da80bc94e12875fbc8b4285abd87a9ebc00408979ef39716bb53ce4293704": { "cca901fd78a63bb4eb045aec0ee20699b9ea63520630a96e5bc254085761c479": { "jp": { - "updatedAt": "2025-12-29T16:46:15.203Z", + "updatedAt": "2026-01-06T14:17:59.004Z", "postProcessHash": "ac807dd0638d1c719fab59a0cdfcc2746255b6ecdfc11f8c2c0ad0da8fda5618" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.205Z", + "updatedAt": "2026-01-06T14:17:59.007Z", "postProcessHash": "be25627ebe25c652bc7c98cc900308259356d5704a75eaa15c905294a0b2936f" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.202Z", + "updatedAt": "2026-01-06T14:17:59.003Z", "postProcessHash": "b3ec740e0767677cda671fc6dae2941a752d8f75d035049c9bda626d27d710e8" } } @@ -26575,15 +27051,15 @@ "352b7210abed12f4834ce3966861f5819c1b015976a552f4d8f3417367d6519c": { "aa0583b1c517ae46447bcd58d7475ba0f4350a3b5974cd1a472f07e84ea2b12b": { "zh": { - "updatedAt": "2025-12-29T16:46:15.257Z", + "updatedAt": "2026-01-06T14:17:59.081Z", "postProcessHash": "6ccc9ba3f7eac5762c1acaf4f499f227a54a6f9f8ab1da3115010df9b1d838be" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.168Z", + "updatedAt": "2026-01-06T14:17:58.953Z", "postProcessHash": "bffc5eea03dd475d76c1fa17c9122fd9bc93b8d80606793f5a421349e6d7e8f1" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.261Z", + "updatedAt": "2026-01-06T14:17:59.087Z", "postProcessHash": "57b5c6d035c29745590d7435d965ccc37b0de09dd96e2a4fdb208b04963c2138" } } @@ -26602,6 +27078,20 @@ "updatedAt": "2025-12-29T16:46:15.201Z", "postProcessHash": "7eb5419a141b2c660ffffd2a5669f42480beca21da0760ff50f3ec48bf20a6b9" } + }, + "4e7a16268063de779fdfaf7662de9e91c79e53cebc2e713a00fb6293abaa3ba4": { + "zh": { + "updatedAt": "2026-01-06T14:17:59.023Z", + "postProcessHash": "9d329bfd4797aa2f9ef8daa51983375bd75dffd059f1ac15ff6418370228bd07" + }, + "jp": { + "updatedAt": "2026-01-06T14:17:59.024Z", + "postProcessHash": "422a3ea067ec6c98c7ae7fb9ef4397be453bffb3705f8034849b3cd8cf58ec41" + }, + "ru": { + "updatedAt": "2026-01-06T14:17:59.025Z", + "postProcessHash": "642913847110d236bd29d65d7ae31083df7255c396dcf3707c0400f6afcb0dff" + } } }, "3e44364087b9660f0daf48e77e2d51e82485581dd45ba3635100c92a48f5cc81": { @@ -26618,15 +27108,15 @@ }, "3203f84f048ca009b9f90eec080070e282108d50d7ba6ea5bc93169f873eac70": { "ru": { - "updatedAt": "2025-12-29T16:46:15.162Z", + "updatedAt": "2026-01-06T14:17:59.019Z", "postProcessHash": "312671350b6276bb213301bda70843d211c7347968c2847569e6c3f0767bc9aa" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.216Z", + "updatedAt": "2026-01-06T14:17:59.021Z", "postProcessHash": "81d944e6f911e30a3ea67ee505e3691b4b417b51e1493364ff2dddf304eb13da" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.020Z", + "updatedAt": "2026-01-06T14:17:58.739Z", "postProcessHash": "c7e307a5d5a7a175d25fb361242f0e5976d70b992ee7c940f09ec0c315822f39" } } @@ -26712,20 +27202,34 @@ "updatedAt": "2025-12-29T16:46:15.092Z", "postProcessHash": "0d5c249b6a76b601b01fc4e1f9c2a5221ce67249072b2833a4d6612c2bbc3f8a" } + }, + "06d38bcb41e6142c8d5f55dd509e5803c42f485dc99d87d73c47b8c9c697da10": { + "jp": { + "updatedAt": "2026-01-06T14:17:59.031Z", + "postProcessHash": "44aa2d28581d13d39eae59ffd7c2bb9587bcfb63a150618b3616425c78e960b9" + }, + "zh": { + "updatedAt": "2026-01-06T14:17:59.032Z", + "postProcessHash": "548962e425f7d80c83a4456f8d39ab972aefec91c3d2ea568feeba986b61fce3" + }, + "ru": { + "updatedAt": "2026-01-06T14:17:59.034Z", + "postProcessHash": "de491a62b4c8f08af17cfa5f0430b7076ce9c269f01fb5dc050c85e1fc29a99c" + } } }, "56a2d0968dd32b192f6e6833bf129bd2a1a73e16d498c9f8a64c8e8cefcb7635": { "85317ab67c21185490c8ce6da9f40ae75c6aa792d046b52122da1555de6a0d7a": { "jp": { - "updatedAt": "2025-12-29T16:46:15.100Z", + "updatedAt": "2026-01-06T14:17:58.974Z", "postProcessHash": "7061c4be758863e297dce5515f1250e17b8956b07083530650681aff7f04fae4" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.196Z", + "updatedAt": "2026-01-06T14:17:58.989Z", "postProcessHash": "913f0ae741ce0bed4d62c148abb57ca5a2b410f49a07180dcd3fe2399602ebe4" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.103Z", + "updatedAt": "2026-01-06T14:17:58.979Z", "postProcessHash": "61a7aa25bd4828451215ec7563fdde7068527ac4c7b9bdbb4a35b1840f2d9195" } } @@ -26733,15 +27237,15 @@ "57fb93819b163681fc7674df87acd51d16808daf3c9a80875363e714ab6b6f0d": { "589fc5521d34b691619a0775483550005c0339c397f9c5eb2ad84a68d38fc0c5": { "jp": { - "updatedAt": "2025-12-29T16:46:15.198Z", + "updatedAt": "2026-01-06T14:17:58.993Z", "postProcessHash": "f38fe5d15ae782de82ad822f4c812a1b078f01b0f7f0a30b7add2258f6884b4d" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.097Z", + "updatedAt": "2026-01-06T14:17:58.969Z", "postProcessHash": "73bd1dd5b6826f7e9847c238c1d1cc5d03ad51cc5a2e549ae118d944413adb05" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.101Z", + "updatedAt": "2026-01-06T14:17:58.975Z", "postProcessHash": "04432823e28ba2e7f6b78d1ae61ed6bd876ef1f9221e930164481f9574eb43f2" } } @@ -26749,15 +27253,15 @@ "5f7acdc3b5ad3c4b70f2e0f6421eedcef49bbf5fe1541b93de796181d282e3f8": { "c3b3c36e1615ad52f46683413733ab6deb9809b9216880d962f14d2b316e6812": { "jp": { - "updatedAt": "2025-12-29T16:46:15.113Z", + "updatedAt": "2026-01-06T14:17:58.901Z", "postProcessHash": "7d2d13d63196ab887365d0c15c913880fc21baf9f1cef25e9066e3ae1cbad08f" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.117Z", + "updatedAt": "2026-01-06T14:17:58.906Z", "postProcessHash": "80cc5e5ae68179516b1790fa48049d73aafd7905faf5278fd8dc275e0b6632e5" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.119Z", + "updatedAt": "2026-01-06T14:17:58.908Z", "postProcessHash": "981b16c00c1b1405454d757cacea41dde3d4d24829f797976c480b1f442526e9" } } @@ -26765,15 +27269,15 @@ "720286aedee663b0895eadfbb8c855cf28e8c889a5c1e959eba2cb56410fe0ea": { "8b424c806172df3664b5a02f66fa091e75d922eace7c6d17ab06a1cd4d48ded0": { "jp": { - "updatedAt": "2025-12-29T16:46:15.097Z", + "updatedAt": "2026-01-06T14:17:58.970Z", "postProcessHash": "f54ee2f588cc52d3291430b589cbf7c83cfc559bced651bb0e521d0e71f7f522" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.197Z", + "updatedAt": "2026-01-06T14:17:58.992Z", "postProcessHash": "4a75bd2f32f043105ae263c777c7c189f54b5147cf3b18f4d764bd2ceb11927e" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.098Z", + "updatedAt": "2026-01-06T14:17:58.970Z", "postProcessHash": "277b227a45093d39d157c5372f84bcb6fec374a9bd5a3f9b46ff6a912fbbfd4e" } } @@ -26795,15 +27299,15 @@ }, "e46974cd333ca66ca510544871953ccc0d2780909e3c85ef50947f379b46ea1d": { "zh": { - "updatedAt": "2025-12-29T16:46:15.144Z", + "updatedAt": "2026-01-06T14:17:59.015Z", "postProcessHash": "0e6a6b6d58f8bff4468aef9eca416f6beb73dfdd59f848a3df5e378bf1be67e9" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.212Z", + "updatedAt": "2026-01-06T14:17:59.016Z", "postProcessHash": "5b60f4411ac89c0906b650af3b7c73ffc031ceec0025ea1353ecdb685fb82a0e" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.144Z", + "updatedAt": "2026-01-06T14:17:59.017Z", "postProcessHash": "db12637d9401f2de7e1b2b685f4d21395b9a073c27df55cc7f53ce01079f5617" } } @@ -26864,15 +27368,15 @@ }, "023158e3cd96336768826b03e01db0efcaaeaf8aa25d91336e8a96073057420c": { "zh": { - "updatedAt": "2025-12-29T16:46:15.212Z", + "updatedAt": "2026-01-06T14:17:59.017Z", "postProcessHash": "97d52513abf062db6b0353d69d7cd0a2b717a5e3ee717185d4dca3da9f188c33" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.213Z", + "updatedAt": "2026-01-06T14:17:59.018Z", "postProcessHash": "36389cfdaa8f79239f8ed1515c067c9d9306898fa71cd9c72bd16a28f5bad84a" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.214Z", + "updatedAt": "2026-01-06T14:17:59.019Z", "postProcessHash": "648d4b52de484a5e99f19e24947a8ba983aea2ccb44b0ebe39f484dc09b02c2b" } } @@ -26880,15 +27384,15 @@ "a27f8d321849f13ef579bf79bd9fb504adce87fc32377cb34f1d87d0247b62fc": { "0af225620d1128bf2b7b6df1fd290b2f9272232c08e057bbcdddcb8da980d877": { "jp": { - "updatedAt": "2025-12-29T16:46:15.115Z", + "updatedAt": "2026-01-06T14:17:58.903Z", "postProcessHash": "2b5bb1969a0fc34960fb19d8595bb6ba72d69cbc2c751632cd36c7a3da69e486" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.121Z", + "updatedAt": "2026-01-06T14:17:58.912Z", "postProcessHash": "d848e406cf956ad44a1d07d62816719b21e87a5d688ee9d9917a1041296704f0" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.121Z", + "updatedAt": "2026-01-06T14:17:58.912Z", "postProcessHash": "c4477f94165890a1442b46db606b315302939228728e4f8fa5c88655f7654c9d" } } @@ -26896,15 +27400,15 @@ "bf4aa8d8478e9cbccac2af56a2392959e788a6b441ae1d334d378fe41c813431": { "03be8e55e0b7b3239928d3c046bcafe55731c78e43aa66ee2a92c237cad32296": { "jp": { - "updatedAt": "2025-12-29T16:46:15.118Z", + "updatedAt": "2026-01-06T14:17:59.002Z", "postProcessHash": "842d6869d4cf9cd88af6c4e60443b5c722baa1a445b72e4123e50b684902a6bf" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.111Z", + "updatedAt": "2026-01-06T14:17:58.995Z", "postProcessHash": "eabf0445060f64126d7611d45f55a08d96ecf5681d38aa335df9b0766980ffd1" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.114Z", + "updatedAt": "2026-01-06T14:17:59.000Z", "postProcessHash": "492969256972767d3b69775223fd76732feeec993b6be246ffeb3dd70b9d0fb2" } } @@ -26912,15 +27416,15 @@ "c6f8d4ed5ef7dc56f976117869cc7a69922f064662bcdd47f24b593a903bb511": { "66256e49527646d9c1360a5db02fe360c867281e0fbebf9751bf3d0a5e4e0116": { "jp": { - "updatedAt": "2025-12-29T16:46:15.194Z", + "updatedAt": "2026-01-06T14:17:58.982Z", "postProcessHash": "6b2beafd2d6fad7ba7ec4a34508288e28f8d2fe9540e686dd56649d6be555c9b" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.197Z", + "updatedAt": "2026-01-06T14:17:58.991Z", "postProcessHash": "d7cdb71c2ae15150357af83116e07ef37d0fbd283f6afa49a66805792dcbfd2d" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.199Z", + "updatedAt": "2026-01-06T14:17:58.994Z", "postProcessHash": "2e2fbaac914d745ef6aca629423a229968cd32f3cffbe233faf61c65fbb30206" } } @@ -26928,15 +27432,15 @@ "cf5cab052feab37e254b75324c3a852334a8eb3c58db22a1686c9494d09f443c": { "d809412f215411acf69b12810108cd424016766dd4d30a992351f8e69bf650e3": { "jp": { - "updatedAt": "2025-12-29T16:46:15.106Z", + "updatedAt": "2026-01-06T14:17:58.895Z", "postProcessHash": "6c12c5413ab5c2b43dccff8b80b62fa00da4321e1c1149ac99b2baaa2ee57abb" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.117Z", + "updatedAt": "2026-01-06T14:17:58.907Z", "postProcessHash": "cb395bb56f10ebf2ce60b0c93f0fa754c730ec9af5b57a76d324303f529480ad" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.018Z", + "updatedAt": "2026-01-06T14:17:58.736Z", "postProcessHash": "3afd93f21ffe56a01d30c7c3a79539d01b26abbce200a7439e6d0096c20c1df9" } } @@ -26944,15 +27448,15 @@ "d9f334133320c651967d1b5b665ba9cb709fe4d09178893258245d70b28c5b25": { "ab1cd75a382114032d421c93d59ddfaae337e9528e1ac6b02cc19764422a2124": { "jp": { - "updatedAt": "2025-12-29T16:46:15.206Z", + "updatedAt": "2026-01-06T14:17:59.010Z", "postProcessHash": "d7aeb58a71b8aa80da022c2c32dfff37b0b9b85306977841597628e212b6883f" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.208Z", + "updatedAt": "2026-01-06T14:17:59.012Z", "postProcessHash": "56b5c71dc6b4b79990de296e84b276fff27833c6c24f58d1b7351f356e3084de" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.205Z", + "updatedAt": "2026-01-06T14:17:59.008Z", "postProcessHash": "fd90a498e88cd59db0422b3cf83fc254d2e99f81f82dc6779554b1728cc9d932" } } @@ -26960,15 +27464,15 @@ "da0fe2e9eb4d4168fde541e5a4aa216882f11f0fe02c65758804bc42306051b7": { "460c5141199908b2fb1f8ada87d50d25899e1061548dd77278916ae9f0194eb1": { "jp": { - "updatedAt": "2025-12-29T16:46:15.120Z", + "updatedAt": "2026-01-06T14:17:58.911Z", "postProcessHash": "ea78bafe923d1c03873b107bca8da28a40f3d4d07141463578762e7f04baff59" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.115Z", + "updatedAt": "2026-01-06T14:17:58.904Z", "postProcessHash": "830a4a6d9fb1f97734b2234e8a0bac72e4499132476d1367e16c649b77a7eec6" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.116Z", + "updatedAt": "2026-01-06T14:17:58.905Z", "postProcessHash": "c969464212636d27de39495bf7090e6fd15176cb0ac1a5c6ca707a25b4c96a5f" } } @@ -26990,15 +27494,15 @@ }, "c58648934ce9b098ac15b34a8c3c77337bad20f7b3d2e02e0513213e245ea4c2": { "zh": { - "updatedAt": "2025-12-29T16:46:15.210Z", + "updatedAt": "2026-01-06T14:17:59.013Z", "postProcessHash": "14b19b590f28feaf667637b65ed3d952265be83e3eb595291ef6f516546230dd" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.210Z", + "updatedAt": "2026-01-06T14:17:59.014Z", "postProcessHash": "66f949d5b45b1a2fbe8808667d165329f5fbccfaa7a725f26026caa0312d3bc6" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.211Z", + "updatedAt": "2026-01-06T14:17:59.015Z", "postProcessHash": "50bd9d9aaa6426194496dc9755d74af1dbed3e9f0f622f349feac7f68c28e6fd" } } @@ -27006,15 +27510,15 @@ "fd5ff75cec53563913c25d3a84cb92ca6b7f928115d7912cef78a22dfc907f29": { "ba4164cf48205f79abd50e8ce1180feb106ddcdda361d67fbf580922f1a8bf3d": { "jp": { - "updatedAt": "2025-12-29T16:46:15.106Z", + "updatedAt": "2026-01-06T14:17:58.893Z", "postProcessHash": "1e603a1a920d7f558eefc9e0de09a2b106e28ccc37230f439f029b7a7cad3327" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.098Z", + "updatedAt": "2026-01-06T14:17:58.887Z", "postProcessHash": "90f592d49615a2c000c187171ac7c60bc16422614438fd3ba4ad96081259342b" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.104Z", + "updatedAt": "2026-01-06T14:17:58.891Z", "postProcessHash": "c95d31d3ecdcbe31471bd5ff8c70efe8481a397f75c8f2a8f3e6ff03fcdfc0ac" } } @@ -27022,15 +27526,15 @@ "176d0068a5182e14c24f7b86a941e2993dd5d5375dda5f359181472f50bb49a6": { "3c0a49ce0175e9ffb151adc18ac51e16f2d58c189a49b071eddff19741b2773b": { "jp": { - "updatedAt": "2025-12-29T16:46:15.262Z", + "updatedAt": "2026-01-06T14:17:59.088Z", "postProcessHash": "d264057c4048da5b061b4236c9332a656f36a65fe5ab5644b96aee307e30af55" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.260Z", + "updatedAt": "2026-01-06T14:17:59.086Z", "postProcessHash": "d54c698e36d634a2aaaa1fbb6952b52f32d72662f281ef6f38de4f9a4d2a3941" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.264Z", + "updatedAt": "2026-01-06T14:17:59.101Z", "postProcessHash": "bcacac99c3f0aa0f2690b95c9286fdcd3e2f05f748b90b73370615f1739cb435" } } @@ -27038,15 +27542,15 @@ "2fc9ece7b731c86425713493bf6fdb0053ccce96ffd9f63a70eea4019cdff660": { "547949490f707e9c4812b2f1acebb85c8f7858c6f4c8d030784a54ffa0f6764b": { "jp": { - "updatedAt": "2025-12-29T16:46:15.252Z", + "updatedAt": "2026-01-06T14:17:59.078Z", "postProcessHash": "dea6f7fec109abafdf25f96253fd53cc000004f2850dce3587d1f3ace5514075" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.190Z", + "updatedAt": "2026-01-06T14:17:59.078Z", "postProcessHash": "7265f98eddf21a6bb177b1cb4386e321fa74648241b47eb6a70320fc82b3ec7f" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.192Z", + "updatedAt": "2026-01-06T14:17:58.967Z", "postProcessHash": "d51a1b5189fe5a8e68daf73908e127dd712986f83bbafde7d3ff7f7cc446e6bc" } } @@ -27054,15 +27558,15 @@ "356a5236e325bbd80f92c622b5549c7f59c011b169fdc94f7b59ad1948f64d59": { "32a464d65d3033a6f94c395c523bdf9d52473033f37bc7b58a4c7d5a3374d78c": { "jp": { - "updatedAt": "2025-12-29T16:46:15.187Z", + "updatedAt": "2026-01-06T14:17:58.961Z", "postProcessHash": "4acc2269ec5e5cfaa3dc7816bf7b9a49d914b45b4db83cfcbf944e10ab34a9bf" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.187Z", + "updatedAt": "2026-01-06T14:17:58.962Z", "postProcessHash": "0e64919e0648e036233b83e4609bac2a7816ff8f1046697732bd46177e240aef" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.187Z", + "updatedAt": "2026-01-06T14:17:58.962Z", "postProcessHash": "75895529652dd220dd1ea6b9408b8e9ad02f8758b571b7de68c67e8da1aa715f" } } @@ -27070,15 +27574,15 @@ "4dcf3a152974b0406b6bb68f5b1c541fe9249595ec4170e386cdf67f9e97d6c8": { "144e0319e32e38db32a1efd639ffc72bf732e5ea7b5d6a3d0883a97e4bec0cf7": { "jp": { - "updatedAt": "2025-12-29T16:46:15.256Z", + "updatedAt": "2026-01-06T14:17:59.080Z", "postProcessHash": "7c0ca8c2c03362dcdfa44ccd6fb6302c865b2ca8fb6c8acfc8374d2b96847a64" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.269Z", + "updatedAt": "2026-01-06T14:17:59.108Z", "postProcessHash": "776c2feae292cf5de1c8753fe2d1cbdc01f1c23a6285fc4a061147cd18637b88" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.262Z", + "updatedAt": "2026-01-06T14:17:59.089Z", "postProcessHash": "2ef8df39390fa80ea657d71972c815fdd77f29162dca768679f240410faa8648" } } @@ -27086,15 +27590,15 @@ "512bf2a261651531d1f44db97f0e2477f9009f4f748fece66e5ca2554439601d": { "f65ce8822ff0abf42d5c376dd8120812baee55885d0c7b7b65bd770ce9d25050": { "jp": { - "updatedAt": "2025-12-29T16:46:15.189Z", + "updatedAt": "2026-01-06T14:17:58.963Z", "postProcessHash": "46c765d2f4be2fbdb711a9e02a09add5997c27529dea3e54692c154744b34396" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.254Z", + "updatedAt": "2026-01-06T14:17:58.979Z", "postProcessHash": "2ad06dbcc0385855cf39082daa8c7aac81f294f4b4ad126edb7fc7bacfabf9f9" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.191Z", + "updatedAt": "2026-01-06T14:17:58.967Z", "postProcessHash": "60d54a031f07ccbc7ceedc6a23b79fccdf4ada0d7d5f728e30ef8aa86f3709a8" } } @@ -27116,15 +27620,15 @@ }, "abf73ca14dd6fa74ca3c54bae95a2c9c707e96a1e9b8d65fe3adff89d65d6266": { "ru": { - "updatedAt": "2025-12-29T16:46:15.177Z", + "updatedAt": "2026-01-06T14:17:58.959Z", "postProcessHash": "349202476968e4660cdd5bb33cd40c5aecc2e84b3d45169c8fd7d0a7be7f4a4b" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.177Z", + "updatedAt": "2026-01-06T14:17:58.960Z", "postProcessHash": "fb5fd103f4dc06ecbe1eadd8e7ee735bfa82daea43b487a8f358a7c9801262a4" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.178Z", + "updatedAt": "2026-01-06T14:17:58.960Z", "postProcessHash": "f5f7057c254781e4cc1a39b371d998d8c1b737d3514f279cee4b6cad22b91490" } } @@ -27132,15 +27636,15 @@ "70760b9ea84a1492768f54f60022928ceed80c33ef8d2cbbe522324f7979123c": { "5172acba2103f95752ebbc8f74579f1012ec0e81bba84d6402deb3f9ab3b0bfa": { "jp": { - "updatedAt": "2025-12-29T16:46:15.270Z", + "updatedAt": "2026-01-06T14:17:59.110Z", "postProcessHash": "2de98e3c660406a075d9bf867ad22d15f9e5ff52636840d6cc16016e7ac5b8c0" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.266Z", + "updatedAt": "2026-01-06T14:17:59.104Z", "postProcessHash": "c6c76ac4046f639a9c6601a50a03afc37d2b564738de295e7a446652c8ecc222" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.265Z", + "updatedAt": "2026-01-06T14:17:59.102Z", "postProcessHash": "f8c98711d4812965c6cc6037b12b02f86d6612b9f659e50c31a3ae6216f6f083" } } @@ -27148,15 +27652,15 @@ "832f10a64dee00c5573ad8927271c0f08e6912344a6142b218901f374557d6d4": { "c00fec44d98d20ecff726432315131e9d6815d1bc6d528bba1cbde655c11121f": { "jp": { - "updatedAt": "2025-12-29T16:46:15.202Z", + "updatedAt": "2026-01-06T14:17:59.003Z", "postProcessHash": "99af1c9693017fab6a0fa9867d69cb3401d604c92cd22ba7625fe3d81b55ca21" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.201Z", + "updatedAt": "2026-01-06T14:17:58.999Z", "postProcessHash": "aadc397b19efea864c02cfc78fcfa598bca94adf6878e5170374a9e963723f6a" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.200Z", + "updatedAt": "2026-01-06T14:17:58.998Z", "postProcessHash": "823fe94b295eae205e00133542e87c27cb5df6badd7ccfb6f3e14c5ba8fdb494" } } @@ -27178,15 +27682,15 @@ }, "77b0de744f2e3f84ad7e012cc0b853730a17828408893ad62a4639722d9c53d3": { "ru": { - "updatedAt": "2025-12-29T16:46:15.214Z", + "updatedAt": "2026-01-06T14:17:59.111Z", "postProcessHash": "5dfc341d9df60abbffd15454e14bcd4ea7c9a1914d3c3fe2d3fd659a1dead893" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.215Z", + "updatedAt": "2026-01-06T14:17:59.112Z", "postProcessHash": "f00c0a912bd1b81acfd4cf9925d27fc225d2701eeae8ecf20717d106ee1a83d5" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.215Z", + "updatedAt": "2026-01-06T14:17:59.113Z", "postProcessHash": "150ace8e85ffcc47c172034de4f4ceddcf4f28548f189cb99ef0bdd0c0fa6b9a" } } @@ -27194,15 +27698,15 @@ "8edf9e4f287ceba4ca2d82f14382e035360e320bcc403a4bd0ffc3569444e7f7": { "0210849faec51fc728046caa3f03b71304bb9c646dc07169ab1c6d9e340a0aec": { "jp": { - "updatedAt": "2025-12-29T16:46:15.200Z", + "updatedAt": "2026-01-06T14:17:58.999Z", "postProcessHash": "8b8d69da71cff2fe1d6d3853a2c5ab5c96616797e78341be5939c6825fb67999" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.194Z", + "updatedAt": "2026-01-06T14:17:58.984Z", "postProcessHash": "8bd136944775f734866af38f97e77f643084b37bb273155f4bd47d773ca6c90e" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.198Z", + "updatedAt": "2026-01-06T14:17:58.993Z", "postProcessHash": "2343bf56ee5cadbd6439b29a12e9bb4a47d8716e250f75f57167d247cb543b59" } } @@ -27210,15 +27714,15 @@ "9c07a7cf8bf10809ed5421b224c9702d1daf802a6511bc28a61380182a3cba5a": { "4e8ed6a1feb2aa52a5a2a4588b3ecb8b8ba68dec83a27b9280790c81f51a60e4": { "jp": { - "updatedAt": "2025-12-29T16:46:15.263Z", + "updatedAt": "2026-01-06T14:17:59.099Z", "postProcessHash": "28fca144efa62b8497f8b505179d25bf4790a34ed4bc08b921f4c426fd008e8e" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.270Z", + "updatedAt": "2026-01-06T14:17:59.110Z", "postProcessHash": "999fb8b88739487517548e63d84cb951e2e1de4de05cffba44ec9fa4ffc841a2" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.268Z", + "updatedAt": "2026-01-06T14:17:59.107Z", "postProcessHash": "2d5fde14c9f42d119a43577f464081efdeac6d02c4fc4d29215e1d5cae8194aa" } } @@ -27237,15 +27741,15 @@ }, "2f0734e7c9a31840e186f5a334fbbbc73d1d52db49e8bbda9d6d1527b330a0f4": { "zh": { - "updatedAt": "2025-12-29T16:46:15.089Z", + "updatedAt": "2026-01-06T14:17:58.956Z", "postProcessHash": "be736703c4d649579a17ef921d87b81de4c10cdc2a520fb710c0d12f84ddd38f" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.217Z", + "updatedAt": "2026-01-06T14:17:59.116Z", "postProcessHash": "2f8b4a182d9152dac73bd53d220210f61986793a60df719c3db560862b891b98" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.216Z", + "updatedAt": "2026-01-06T14:17:59.115Z", "postProcessHash": "b9c8f43bf05411bfe1a264837f48eeb6837f4cba81ebd8b7c9e1a4b573bde453" } } @@ -27253,15 +27757,15 @@ "b39b9077d3c9edfb0122eda19c18f981a977ba3d4b35e87ca4e9808c93c00357": { "c4806c1db71a5a0e8cfe750303156d37b0c67170fa9901e7e2fcd40bc40df990": { "jp": { - "updatedAt": "2025-12-29T16:46:15.193Z", + "updatedAt": "2026-01-06T14:17:58.982Z", "postProcessHash": "8e22f7d0ae01cd5441a3c43bbca7762d30743ef2889cc3f3bdba1289f30d7079" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.199Z", + "updatedAt": "2026-01-06T14:17:58.997Z", "postProcessHash": "04e4ec7308ff65300deab62a9bfd4c92f68c7a17b04868c982d2733cdeaef18f" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.193Z", + "updatedAt": "2026-01-06T14:17:58.980Z", "postProcessHash": "61556b219a8765466edbbc8b083af4e5d652547f585d9485c4a1bef68f05bb57" } } @@ -27269,15 +27773,15 @@ "b57ac847efe3da698e4e7e930e7c66f735f45e722a25a0fa39bc6f7bfcec60cf": { "9c431dd0d8265db20267a05a0e5cddc327c798c7acfd1be5071f066d5a7aee28": { "jp": { - "updatedAt": "2025-12-29T16:46:15.204Z", + "updatedAt": "2026-01-06T14:17:59.006Z", "postProcessHash": "4dd770507d26130a0b1de186e20ebabb0cdc91b51b426da778e92033f3c4fb8c" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.207Z", + "updatedAt": "2026-01-06T14:17:59.012Z", "postProcessHash": "0b36778f4f324d2699d1cf007fd8254840d0bf890383ac55f2d407ddb4e78434" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.206Z", + "updatedAt": "2026-01-06T14:17:59.011Z", "postProcessHash": "df4b2a3d9dd887c33d9b248600cec8dbf89cc9338f043845a4ee58445e92a570" } } @@ -27296,15 +27800,15 @@ }, "a9aaf3d0acf90c263febea571cd562058a89cc9ae231894d698d45f35f8a8089": { "zh": { - "updatedAt": "2025-12-29T16:46:15.170Z", + "updatedAt": "2026-01-06T14:17:58.954Z", "postProcessHash": "266d14ef8281f321f781958564683452b66df0d18de640f9271774a72267f9af" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.271Z", + "updatedAt": "2026-01-06T14:17:59.114Z", "postProcessHash": "203af65382cc7a8246f7f4659e24d0a3bc18e692cec00371a539ee63369e1c01" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.170Z", + "updatedAt": "2026-01-06T14:17:58.955Z", "postProcessHash": "9d4cf0d8dc325d93fbafb13e1f44853e282e2d92a403f37b7facedd8446356c3" } } @@ -27323,15 +27827,15 @@ }, "ec5f228d8cbe81918d49a04cd8723d3de119fd01172ce2e2b1517fecf7a600f2": { "zh": { - "updatedAt": "2025-12-29T16:46:15.171Z", + "updatedAt": "2026-01-06T14:17:58.957Z", "postProcessHash": "c8b039c22bac7fcf18198d32e89a4654d50fc61bd2d9d084e9632491390c0265" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.171Z", + "updatedAt": "2026-01-06T14:17:58.957Z", "postProcessHash": "0a56b38d22764bd93ca0bc535cdc63148881704f4f0c5277920314aa0136a2e1" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.172Z", + "updatedAt": "2026-01-06T14:17:58.958Z", "postProcessHash": "168bf98677f74e48cc878904c21e74389719cd7be775beef762cdeda2fb6148d" } } @@ -27339,15 +27843,15 @@ "e8326b6e3e229b53f7f7616dad224e62d5aabc8c99d1885fa0b294be36436442": { "e0c19959bdee8150958356d19999762296868f26f8c58d573bd31ee946774713": { "jp": { - "updatedAt": "2025-12-29T16:46:15.256Z", + "updatedAt": "2026-01-06T14:17:59.080Z", "postProcessHash": "7825c903a68226800808b53b160bcf8da2f848ca4d42b42874c4b33f5ee767bb" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.258Z", + "updatedAt": "2026-01-06T14:17:59.082Z", "postProcessHash": "5fd49c0d5c3005d4cad28debfc17ca50c16718efbf7ae1a3794dc0bf50bc38ac" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.253Z", + "updatedAt": "2026-01-06T14:17:58.977Z", "postProcessHash": "cca33cfadd9df5ee9334e24c3dee3b0c11041bdcec13ba28d46533fe04acd9cc" } } @@ -27355,15 +27859,15 @@ "f6456b0e678701e28c6a4e322798fee754b4c6d0f806d50583a4b3bd2c244c77": { "b8b48f150dd2033fc11782fa83bfba12af99e2588c361eae29e969d7df966696": { "jp": { - "updatedAt": "2025-12-29T16:46:15.192Z", + "updatedAt": "2026-01-06T14:17:58.972Z", "postProcessHash": "15ad4363c1e880ecd1a91b34436297ffd9469abe98b90995180d65ffd65df71c" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.252Z", + "updatedAt": "2026-01-06T14:17:58.973Z", "postProcessHash": "dde08503690f9559922ea573a2668e7361d7110abc1850853c2b1f2bd7136092" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.191Z", + "updatedAt": "2026-01-06T14:17:58.966Z", "postProcessHash": "6ef16870f4f8d45f0b30cc6c9373fbfba2e12813f228e1eb1bc341e40d4ec294" } } @@ -27371,15 +27875,15 @@ "581431969901be3a99a89764a4cd843b136cf34d9c36a58c385d297bcf0b5576": { "848b4e2ed1094aeeb74cb89d7d3f155262e075c04ec6a136f164406460b1c404": { "jp": { - "updatedAt": "2025-12-29T16:46:15.189Z", + "updatedAt": "2026-01-06T14:17:58.964Z", "postProcessHash": "9cd40743eba518104799e1fbd150de5f268299cbb974e63020ff4e7ce49438bd" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.255Z", + "updatedAt": "2026-01-06T14:17:58.981Z", "postProcessHash": "5f3bd11c85a9a2dad8aab7484a36dbf45bf85baf66e642759a96e5c7b33bfa8a" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.189Z", + "updatedAt": "2026-01-06T14:17:58.964Z", "postProcessHash": "6d6793c8610a3629e1dec8f2147a1ce66c64ddfb82572b7a82f59ca87eeed78e" } } @@ -27387,15 +27891,15 @@ "90b8b253ec086b1363c721e07a29dbd20c3e79932831c40618a9e15eaed1259d": { "558092fa5958f7bf2b9c27c89f455619f6ca6f3513e83b59425458536609e8ef": { "jp": { - "updatedAt": "2025-12-29T16:46:15.259Z", + "updatedAt": "2026-01-06T14:17:59.085Z", "postProcessHash": "0b7ee556656f336e7cc1b432771a317ea784b3f1f5bbee99f16d7e49450ed8d1" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.258Z", + "updatedAt": "2026-01-06T14:17:59.083Z", "postProcessHash": "95fa91b06b664a692091ed41f1dc9c6b179915cbc0b64cbe8e548729c0652441" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.259Z", + "updatedAt": "2026-01-06T14:17:59.084Z", "postProcessHash": "5067a69353b28d4a530ff08bb1d8d3ceca3df2e24af4c32958b8226243e09826" } } @@ -27403,15 +27907,15 @@ "b22d1260a64a32ed7c646aebdc8304e5522445a10e936e31715082f3976c0efb": { "0350b0c4a0edef07c101045887230f235288aae9414af376658d84671b54adbe": { "jp": { - "updatedAt": "2025-12-29T16:46:15.252Z", + "updatedAt": "2026-01-06T14:17:58.973Z", "postProcessHash": "44fb420c25f74f4b0573c204a90574f2267e7ca40b62adabab43f16c6073a133" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.259Z", + "updatedAt": "2026-01-06T14:17:59.085Z", "postProcessHash": "c3d0d267cd3643b29d50a02546510503199f284cecc0fb93451c1c6c3caff48a" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.257Z", + "updatedAt": "2026-01-06T14:17:59.082Z", "postProcessHash": "ce813c8bb18835be3c9ed5ce994207f39493bae8300497938ac45eb0da46f93b" } } @@ -27419,15 +27923,15 @@ "ba3d45a637c836f2218890eff93fee4103508fa1c470944799207121717e02a5": { "f3fd1aa8bafa81bb6a7e865a5de62823158a0afcc7ff7586bf136a8b47ee3a88": { "jp": { - "updatedAt": "2025-12-29T16:46:15.253Z", + "updatedAt": "2026-01-06T14:17:58.978Z", "postProcessHash": "84a0d63ffa335e65eb5dfa8a84e19d4f5c3d3798426a4e9a88b067d3766ba780" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.255Z", + "updatedAt": "2026-01-06T14:17:58.986Z", "postProcessHash": "371f9505f83f8a3f1583ad155231a8b2f4d589e7a0e316230300ab4eba355444" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.190Z", + "updatedAt": "2026-01-06T14:17:58.965Z", "postProcessHash": "6eb41b43a86ba8e8100da932fb52b33a938d140f123624cffd6b43d30413a1f5" } } @@ -27435,15 +27939,15 @@ "fb6facb17dc3579b44508a305bcb4895b64ecd0ac72b1f50f97559b26bc78b2c": { "ad02c360d5787e1cd581329efbb507dd02fe16448697b4344569b5bc44e930ea": { "jp": { - "updatedAt": "2025-12-29T16:46:15.267Z", + "updatedAt": "2026-01-06T14:17:59.105Z", "postProcessHash": "1135f956cab2cce629707b969e309f8731ab86bdf62aa687e52974bd9d2056f8" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.269Z", + "updatedAt": "2026-01-06T14:17:59.109Z", "postProcessHash": "7852bf433f87c284a035d17aec6267f4481575b2dd86ee1c5fe727018ec8fa2c" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.266Z", + "updatedAt": "2026-01-06T14:17:59.104Z", "postProcessHash": "40098e525ee9e446c30af8b121d4a16543ef3808e219e86b556f1b8eb83a491d" } } @@ -27465,15 +27969,15 @@ }, "9a74b99d70640be6312c96bafc766a10a371a04604910c165f2b918fac27bb5c": { "ru": { - "updatedAt": "2025-12-29T16:46:15.511Z", + "updatedAt": "2026-01-06T14:17:59.462Z", "postProcessHash": "0ee9fd2f4339eaa07312c2d9f033cb1ddb20a1156e89fd848199b50add1ab294" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.513Z", + "updatedAt": "2026-01-06T14:17:59.464Z", "postProcessHash": "a9c12bf0ea9cd4ffc7ff81fa80d88284a04b134e9943e7750ed11ae4e5b1f251" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.514Z", + "updatedAt": "2026-01-06T14:17:59.464Z", "postProcessHash": "2b2bbd357fb421547f6f79606446c58108e353a63f8c9c5610ea1b183f05bcd5" } } @@ -27481,15 +27985,15 @@ "26fd7d38f92eb5055170efb295d4a4f87a521a38805a47e252302040001b2050": { "6311029c9bad9285962dc8c797429aff225c5d236c038434dbd0c88cfb8a7048": { "jp": { - "updatedAt": "2025-12-29T16:46:15.401Z", + "updatedAt": "2026-01-06T14:17:59.293Z", "postProcessHash": "d9b5346483ccf6334a5105ca1c30ff8dbbff248c1080bd2b1fc4d5d745aca48d" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.458Z", + "updatedAt": "2026-01-06T14:17:59.413Z", "postProcessHash": "24dc4f8d296569e12ec97723c7fa07d56d086ef04ccafe5253da48eb305b765e" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.405Z", + "updatedAt": "2026-01-06T14:17:59.388Z", "postProcessHash": "392c23af8f16584bf49c5883da5f4e977982041c039ebb7dd2d9a3a98586428e" } } @@ -27497,15 +28001,15 @@ "3f43afba791f6baf15364b9b47e22c85a9f1b3dd6af0e12ec732f9dcec39457f": { "1dd4bcf22efaf403e36fb2a77e769a0046ad25b9ce5480ba0ffe16c707a0ef4e": { "jp": { - "updatedAt": "2025-12-29T16:46:15.476Z", + "updatedAt": "2026-01-06T14:17:59.429Z", "postProcessHash": "dd8fb975228a3458ba44dc1147524b9063fa2889c67c6e5c6ae7f930716c042d" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.459Z", + "updatedAt": "2026-01-06T14:17:59.414Z", "postProcessHash": "635608063008778d6447fa8358008b12c3079ced85ecee9a34b5c43f1607eb3b" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.444Z", + "updatedAt": "2026-01-06T14:17:59.443Z", "postProcessHash": "aaaa5bd1fc11bfbe1fd5a31b330f54fee44c568df82f0755fe36a4deebee72bb" } } @@ -27513,15 +28017,15 @@ "645f7fd9f0334b6f31287f3ff16746bdf9b9befb1bef269261f6079af9ff22a2": { "4cfca9fae37346c2e6b247de1cc83bb1880d5d141f5ad266dea6ae52b8cce258": { "jp": { - "updatedAt": "2025-12-29T16:46:15.411Z", + "updatedAt": "2026-01-06T14:17:59.406Z", "postProcessHash": "abacd8ac876d3c9b874ca4022906c9c48605657aefef9d8da7b95de92440dcd1" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.334Z", + "updatedAt": "2026-01-06T14:17:59.280Z", "postProcessHash": "b15220dff7fa0c2bbb6b7ecb357a7a2a4f965e102cab4f74aaa581c1b6f15770" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.414Z", + "updatedAt": "2026-01-06T14:17:59.301Z", "postProcessHash": "f9f5ccfa1e8f2a332f864e4f30fe3d9cd78d061d3b0b5b38002be9890b0d0c2a" } } @@ -27529,15 +28033,15 @@ "870cee0b248ecbcf72715dfd0eeb85ec9af5efaca8d3edcf0fe8c5264910fd76": { "31443088162bd3a031a32984a7f4bfd930cc979d324a47439b26f35ddd40c4c4": { "jp": { - "updatedAt": "2025-12-29T16:46:15.474Z", + "updatedAt": "2026-01-06T14:17:59.427Z", "postProcessHash": "9b49ad6232da1b55e3433b962c3b120951c38292fb74af0b0a2973d8a04eea17" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.480Z", + "updatedAt": "2026-01-06T14:17:59.436Z", "postProcessHash": "e10211c1d3b3116624202c30f3f42e13c5d68630413e5540ae3ba5ecfa38cb54" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.460Z", + "updatedAt": "2026-01-06T14:17:59.415Z", "postProcessHash": "7a7368b9afa511a300e041416f2a06da520f5b88ae0025a83c31d904a0a7fd40" } } @@ -27545,15 +28049,15 @@ "87cdbf09a8306f33d341ac3e84a3332c186b170f3eaade4500b0517c76c52c33": { "27bd6d01dce2d6441ee156267183789fdfad03cbf3cae1fe51042763a3ae5190": { "jp": { - "updatedAt": "2025-12-29T16:46:15.413Z", + "updatedAt": "2026-01-06T14:17:59.300Z", "postProcessHash": "10de940bc422fd1ea8847a42eed793ba17e3676d57e0b9bae9ab2c9240f1d90f" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.444Z", + "updatedAt": "2026-01-06T14:17:59.364Z", "postProcessHash": "a6cc17570dfc61b9dff9629fc9e8f0c46e380456b65e37fc674ea84c6a2eb1e5" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.416Z", + "updatedAt": "2026-01-06T14:17:59.304Z", "postProcessHash": "17746fc6089ed959715c59597a889785160b2c747d16d8de309c88d405be6383" } } @@ -27561,15 +28065,15 @@ "03d4f9de31c6bf8adc70ca8cc91ea13e8e9e9c9401061a886ff406f2ee77507e": { "31a8fa488c7303d5b196d590f58b9ffddcbbaf82dd7d661a3d06b19f60b7ddc5": { "jp": { - "updatedAt": "2025-12-29T16:46:15.450Z", + "updatedAt": "2026-01-06T14:17:59.371Z", "postProcessHash": "0aa96dd1870db7fe1addeb5a15c590dc536a369f098b119809b27fcb160a8871" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.531Z", + "updatedAt": "2026-01-06T14:17:59.494Z", "postProcessHash": "98c56b63bb026da171a64d4848ddfc8a90bbedfdbc950a9ff512f3a49dc4dab2" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.537Z", + "updatedAt": "2026-01-06T14:17:59.504Z", "postProcessHash": "da3d7ccbd4be86514f0b8d76db690c64fe25f00e1bf3959f2679b42d2b8f71f5" } } @@ -27577,15 +28081,15 @@ "185920906ded891a9d2e00cce1434c3336837203f6a4afa9c0afd1752f259e14": { "fb5ace8ecf41cd7a84a0650f9d96ead8a0c11e0b73eb701d4b8a50861ed41f3c": { "jp": { - "updatedAt": "2025-12-29T16:46:15.475Z", + "updatedAt": "2026-01-06T14:17:59.428Z", "postProcessHash": "17aba8c9eda6d586a1be9d92764b56cd8a2f522b5d580a4aaf2b18cb67980fa1" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.503Z", + "updatedAt": "2026-01-06T14:17:59.447Z", "postProcessHash": "98323875a729d6ef81e69611d73b2ca33b1cd569c050af967a8f88b3d5514a47" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.457Z", + "updatedAt": "2026-01-06T14:17:59.403Z", "postProcessHash": "e996a5702da585fc6cc429ddd01451db98e75baa509ca86608f2efa75476d799" } } @@ -27593,15 +28097,15 @@ "3b5b38cf7b3fbbf741ef360cdeaf09b58c18acb3ff66337f95d902be5f6db59c": { "b37e005c51f403fc9b37bb6c5b5edef44101e2fc840f20186238b36701cc8e6f": { "jp": { - "updatedAt": "2025-12-29T16:46:15.472Z", + "updatedAt": "2026-01-06T14:17:59.425Z", "postProcessHash": "ca1e341b07be4ef743b7314f5656f68624f5fab78dbeecb1551b9283840daf8c" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.479Z", + "updatedAt": "2026-01-06T14:17:59.434Z", "postProcessHash": "786369bd7cd308758497dccb0edbe468640e646f9fd0b91e24591fb5635d68ff" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.409Z", + "updatedAt": "2026-01-06T14:17:59.402Z", "postProcessHash": "c5b05d5fd2bb665f846cc6464dbf0c97a5a2c3699366999859be3f8ae45394a2" } } @@ -27609,15 +28113,15 @@ "3bc42dea80614a09ae6a300caa882b3109109bbf2c1ff3e4a3cad15872847cb5": { "90eb1bd6cd2087520e2d3b6a42056c3549761f9a48d001c400844b96b08b2d5e": { "jp": { - "updatedAt": "2025-12-29T16:46:15.473Z", + "updatedAt": "2026-01-06T14:17:59.426Z", "postProcessHash": "0fbfafe6753379c795c3bece846e4097879575b3ef463243b783bb47af88703e" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.475Z", + "updatedAt": "2026-01-06T14:17:59.428Z", "postProcessHash": "ce445b8e39d3fbed2d151131d8b116da9a9bb6476f2047517c3450a49a13dab7" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.495Z", + "updatedAt": "2026-01-06T14:17:59.441Z", "postProcessHash": "3135375419003a3f02fb6a7f9cbab1803d20daa094bca4ba908e095553722fb6" } } @@ -27625,15 +28129,15 @@ "4864254e07b5f2ba04547ffdc42c9fa734db92774140cb47efb6c312ff52493e": { "6dadcbfab042a7bcad0c4076a815d1b10666957ab124f50642fb026d185c6859": { "jp": { - "updatedAt": "2025-12-29T16:46:15.397Z", + "updatedAt": "2026-01-06T14:17:59.287Z", "postProcessHash": "a0c189af7b622e1a17524651a9364f81de68d2702c7ff16d9057a387b69af9c9" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.496Z", + "updatedAt": "2026-01-06T14:17:59.442Z", "postProcessHash": "817c782da1fe7d732496466147d5ade788f24630ef63881d9ca25474da785692" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.477Z", + "updatedAt": "2026-01-06T14:17:59.433Z", "postProcessHash": "79c83c3aa154c79bf8726bf8465feb8e26c43c289f3e683a60cbeadbb5e73947" } } @@ -27641,15 +28145,15 @@ "4b4055e2a3996b0cc1db8bb8b7f1a428a61fcab906f4eb7fc9e8525523570823": { "fe2aceb75f41309c99fba4ee2a1fcbdba1e53d1591a97e9fee22b69867854012": { "jp": { - "updatedAt": "2025-12-29T16:46:15.528Z", + "updatedAt": "2026-01-06T14:17:59.490Z", "postProcessHash": "af98ff505e460c0110e1a1662ff63c6baab28f333acdd0088144e7cbe184a696" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.549Z", + "updatedAt": "2026-01-06T14:17:59.517Z", "postProcessHash": "948421c3e1abf23e8120eb54d5708aa41f709dfd2d448cbf3254cca3fef07358" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.545Z", + "updatedAt": "2026-01-06T14:17:59.514Z", "postProcessHash": "84ad3d5c36bd5075d34e4b48e4df942398316c37917718843549b39f9718080a" } } @@ -27657,15 +28161,15 @@ "4c57ae2a858123d1bbd05031233c5f830692e6ff38484e60425dc1e644619e86": { "ac07bacf3135df09429ba59c3085014c51cd2dd6322c81c9cf515a50ac42020d": { "jp": { - "updatedAt": "2025-12-29T16:46:15.481Z", + "updatedAt": "2026-01-06T14:17:59.437Z", "postProcessHash": "6111b3143335a4494b11b1e9e094bad047f45fd314afc01605b45a74f7c2cd96" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.481Z", + "updatedAt": "2026-01-06T14:17:59.437Z", "postProcessHash": "7639e4543fb4c76832aef9b34537392b3cb0c95171e9f08a14d2b741632619b3" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.480Z", + "updatedAt": "2026-01-06T14:17:59.436Z", "postProcessHash": "b72a001a1436505d89e571b38956253d9cf50706d70a7e9b21e87518c99f3207" } } @@ -27673,15 +28177,15 @@ "5f4dd4a5e3b9c2038ce5d97add1c57db4cab04802675890f9a71c7e24d65298e": { "54f6ee288acad5771ea6bb244846d3f7f6f97153a3e95cef843610f79d82f51f": { "jp": { - "updatedAt": "2025-12-29T16:46:15.458Z", + "updatedAt": "2026-01-06T14:17:59.405Z", "postProcessHash": "e056bc809c839d0ad66263647f12f71912a49f7c57b9d4e1169fff2283c4f5d3" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.404Z", + "updatedAt": "2026-01-06T14:17:59.388Z", "postProcessHash": "7cc3a1bcfad0e799329cfa70d25ca3db5417d3104ea3f2808a92edcd3fe04c77" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.460Z", + "updatedAt": "2026-01-06T14:17:59.416Z", "postProcessHash": "621e006f1700c63e06745812dbd783d4cf18e1e5383ddbae3fe350237b519d92" } } @@ -27689,15 +28193,15 @@ "8c9ac06d9f96470f385b45eb7382ea57d23824bef86ddd9dcd04eb31af945385": { "8fd53472854410898a96195caacb583e709b2c67f304949a81fcdc9a6ab77a22": { "ru": { - "updatedAt": "2025-12-29T16:46:15.495Z", + "updatedAt": "2026-01-06T14:17:59.442Z", "postProcessHash": "b5d6797ffdc4684cbb0c61ce1959479b14134a77037579d9a1c105a5c2f1ec7c" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.464Z", + "updatedAt": "2026-01-06T14:17:59.421Z", "postProcessHash": "21f99dd641294eb9b2ccb285f893daf868667d6c03eda18025b46d13a446cffe" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.479Z", + "updatedAt": "2026-01-06T14:17:59.435Z", "postProcessHash": "7c834d32b1e8d0fd34bcfeaa5721e8aaa93c80c7a8f3e5e3775c7b6abc6ad07e" } } @@ -27705,15 +28209,15 @@ "96f086ac06293e9e587823d8e326b7bdd10741ec2cca41ecf709e6dfda01a137": { "8cde4367a08c4c85a443e691e36a03de277bcadbc7b5b8042f83da242fb60262": { "jp": { - "updatedAt": "2025-12-29T16:46:15.413Z", + "updatedAt": "2026-01-06T14:17:59.420Z", "postProcessHash": "b53cae564ec2e6a926df37c3b324647c061ab8c942313758e53941fb911b7649" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.409Z", + "updatedAt": "2026-01-06T14:17:59.399Z", "postProcessHash": "5f0614e8ddbe6cacd50bea84167b26eb00120970046ae5cdb7002ef4be0f300d" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.444Z", + "updatedAt": "2026-01-06T14:17:59.444Z", "postProcessHash": "508adbd82073da69ec35818ff2669bd57e163613d9287b2fb34a01a12cd257f7" } } @@ -27721,15 +28225,15 @@ "98763ad1765b4f7ce59ab7c28c03d9f16eb7ba20340f1fd72f141425b73dfcda": { "2b4ac034aba018ed0128e4b4b5e46817e96795dc002eb687680ef694d17118a7": { "jp": { - "updatedAt": "2025-12-29T16:46:15.412Z", + "updatedAt": "2026-01-06T14:17:59.298Z", "postProcessHash": "b244aff5353bea41ae51c0ae589f9b007cef05696a1deb51e2aef51de0a16d74" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.415Z", + "updatedAt": "2026-01-06T14:17:59.303Z", "postProcessHash": "3c364369e548400b5b8f68d69de904605b5d9634aa74981e0e6160f037162899" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.500Z", + "updatedAt": "2026-01-06T14:17:59.365Z", "postProcessHash": "240662d35f9cbd70a717e10ea9f8661ec34e9e300fb7c684e75dccccf968888d" } } @@ -27737,15 +28241,15 @@ "a1f67d04d8c6c016319715cd37f1aaa7fea045040cd960873db250061b59677d": { "c042f748c77a461dd754ffe542382a34bd504df511e412aaa671006d2a6ce920": { "jp": { - "updatedAt": "2025-12-29T16:46:15.441Z", + "updatedAt": "2026-01-06T14:17:59.361Z", "postProcessHash": "397cb04223eb44d1482af620be7685558167e7bc1f37f6ff7b8bcd72ff38b953" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.443Z", + "updatedAt": "2026-01-06T14:17:59.363Z", "postProcessHash": "77b90fbfdc78bbde470a584ef730f0f3793375ebf5469e5a2cbfbfc8cbfc4c48" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.442Z", + "updatedAt": "2026-01-06T14:17:59.362Z", "postProcessHash": "fc399a9f5b01cd8dd7d0b77db118005fa08ede69a3b4600f41869bafec281bcb" } } @@ -27753,15 +28257,15 @@ "b6e6ba59aea8d42356d10f15f3e251c9ecdf84b70f6b284cc535f8f2715be871": { "78c8f7d218a9c211659cb2bb3308ce5d14d1718fcdc5e47d42d5c5f55050e6f9": { "jp": { - "updatedAt": "2025-12-29T16:46:15.416Z", + "updatedAt": "2026-01-06T14:17:59.305Z", "postProcessHash": "1af561a397e1f2b0ae403f5afadf68e6368b3740a6722a520c35b8eb47f87b11" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.415Z", + "updatedAt": "2026-01-06T14:17:59.302Z", "postProcessHash": "c0e5eff4dfa6784e506a8553ddb2cbccb342b7309e3be761ab1a1f34694145be" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.499Z", + "updatedAt": "2026-01-06T14:17:59.365Z", "postProcessHash": "666358cce77ec4294d864f1aad959cf8814c750f4d9c13a2a22a87db1fa17a55" } } @@ -27769,15 +28273,15 @@ "b96f31274279db19ee455ef4a211f35232718d535097413acc9e87b2c16cdee5": { "d1a30df1933d77a7366535efca514780aa4f237e66085e619643f85b025ea495": { "jp": { - "updatedAt": "2025-12-29T16:46:15.407Z", + "updatedAt": "2026-01-06T14:17:59.396Z", "postProcessHash": "792a6e342647ea48c99b305adc66920f6b7eb58715d1de859c9b68c26329c3ed" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.461Z", + "updatedAt": "2026-01-06T14:17:59.418Z", "postProcessHash": "bd2fd3bf12938f24739bc7b5097f2705ca70c79876fe8a06c7895492d91a4aef" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.397Z", + "updatedAt": "2026-01-06T14:17:59.286Z", "postProcessHash": "0d4436ed8265bca29df34212dccf91afdd828ad27c3e42d94cc0b07008205d06" } } @@ -27799,15 +28303,15 @@ }, "aa68e4488567e4ecdb98c0e1d87cb2f8af9cf250171d8fe8fcc1d7b61d24d040": { "zh": { - "updatedAt": "2025-12-29T16:46:15.511Z", + "updatedAt": "2026-01-06T14:17:59.461Z", "postProcessHash": "ec7ffb5d3208b1b9bfc7e7c7870d5bef169e5395509c8739f77f0ea28139f146" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.512Z", + "updatedAt": "2026-01-06T14:17:59.463Z", "postProcessHash": "aa44aaaed457833fcf0b2bbfe124311323248bd29baeff5ea0e4c70eff9dcf25" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.514Z", + "updatedAt": "2026-01-06T14:17:59.465Z", "postProcessHash": "a886de79c207dc31b3e2b30e2d86746ee2d2a2374fa6afc330f027b89adde6f1" } } @@ -27815,15 +28319,15 @@ "c61d725ce51260e373784d5a559f17b1c985d873f35f4f40d34e5dc3c9d30214": { "164319294d8a4a2d8ae935edd6e5941fde821158fce1cb0fdc3c94aa7eba994f": { "jp": { - "updatedAt": "2025-12-29T16:46:15.412Z", + "updatedAt": "2026-01-06T14:17:59.296Z", "postProcessHash": "3d4bb348e802446513f7de4ff23905a2cd4d6dacfb23fa3a0baabde89ce6b659" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.335Z", + "updatedAt": "2026-01-06T14:17:59.203Z", "postProcessHash": "764d34c033809dcc02ece51d8b2bcea4e2cc9c65f9e1f83401ff83d9e4c906f5" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.501Z", + "updatedAt": "2026-01-06T14:17:59.366Z", "postProcessHash": "e94c6be79ea28963118ea49992489524259fb3d81bb25bd7130f06bd2431db5a" } } @@ -27831,15 +28335,15 @@ "c9a3c995b2d1f1da16df65c84fc5fcd7d61a80112b46a37925da4d4c5cdfec2c": { "fe45037d34e9b052151f9190e1da1d3bf5cd89744c552cf345b160f37129f8f8": { "jp": { - "updatedAt": "2025-12-29T16:46:15.500Z", + "updatedAt": "2026-01-06T14:17:59.445Z", "postProcessHash": "bcd5b75d93a82b4d290daa33ab72d0b54fd4a5ee8118bfde1189ef29e81f93e1" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.478Z", + "updatedAt": "2026-01-06T14:17:59.433Z", "postProcessHash": "a76d41f0919dfea1f15244a540afb19723512add1c003fbbddc68ca0aac52761" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.497Z", + "updatedAt": "2026-01-06T14:17:59.444Z", "postProcessHash": "99004e3710aaf1af12829154b3057ca1d90d1e0c1c31bb520cefad9e6af19791" } } @@ -27847,15 +28351,15 @@ "e87d7bb771e6e969df1f4f17a2cea74b1703104f920ba5110ee4c2bc95819b7f": { "c626b9222d67c0a16c11e25def509ff96d4a34afadbccdcc1676284d3fb3c55c": { "jp": { - "updatedAt": "2025-12-29T16:46:15.337Z", + "updatedAt": "2026-01-06T14:17:59.281Z", "postProcessHash": "284e640bfe912bb7e4403cc8506a4b2ca589529414c76f895a3cc52a2079c800" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.442Z", + "updatedAt": "2026-01-06T14:17:59.362Z", "postProcessHash": "0286bf5647ba331f08c9d8324722fa10cc46007b701ed99f07787ddc5c36e7c2" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.410Z", + "updatedAt": "2026-01-06T14:17:59.294Z", "postProcessHash": "c70231b20a97585083aba0222fc952f559c71302b5deb4b8e4a5c53b8738b8c0" } } @@ -27863,15 +28367,15 @@ "f366eb4cbbf4ae87e0ea8145cfd5006bd57589104335fc046ede417d016c390d": { "e26bd50b67b6a44512d1f83c42aa88dd3b0ee7eea44771e913a93704b405e585": { "jp": { - "updatedAt": "2025-12-29T16:46:15.401Z", + "updatedAt": "2026-01-06T14:17:59.292Z", "postProcessHash": "0c68cf491e9333fc7b3760dd51d09ebaf3b00ab1edd349dfc2534f5b85bcf8d9" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.411Z", + "updatedAt": "2026-01-06T14:17:59.295Z", "postProcessHash": "d42d0c574516c4d0645d46342fa743d64b7dc074d711c2f60952f80ecfe94cf5" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.404Z", + "updatedAt": "2026-01-06T14:17:59.293Z", "postProcessHash": "bfe9489d7b160957108ab21680a4082d7bd00cc47e6ceafc564fc3f74e6e0caf" } } @@ -27879,15 +28383,15 @@ "0dec45ecddb0d4b9ff3311f5a670eaeb053be15ec02969e2e3cc776a6771ff5c": { "77a1b67ca7c88505859a9611495e54062c95a3d5051d05c9862ba6120252576d": { "jp": { - "updatedAt": "2025-12-29T16:46:15.526Z", + "updatedAt": "2026-01-06T14:17:59.488Z", "postProcessHash": "3878d919508835373102707335a5a124a853aaf72c41230d23030942be2e76dd" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.542Z", + "updatedAt": "2026-01-06T14:17:59.510Z", "postProcessHash": "6bebf36bb854770d6ac7f8962417ceeaa9e694e1305011efecaa254ebe0786f6" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.489Z", + "updatedAt": "2026-01-06T14:17:59.475Z", "postProcessHash": "dcd125291b52cfaee5018b16b2b8d5b4f07d202dc8fce9e24a8489830df7479a" } } @@ -27895,15 +28399,15 @@ "1345e1194d63be447e8235ac3810d70f7853efd69e98e071d82ffea7cffd7a32": { "40371c6acad0719623ab143c6991d629d5eeef18fd54755245385719989fae91": { "jp": { - "updatedAt": "2025-12-29T16:46:15.533Z", + "updatedAt": "2026-01-06T14:17:59.496Z", "postProcessHash": "264b8a354e88aa7386a3fde62cd9a810f409df6fdc75ecbf805451ddb23c6832" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.490Z", + "updatedAt": "2026-01-06T14:17:59.438Z", "postProcessHash": "bb8bae1d541af25fd66b49904afde7aaed07d5fe62f0ef706fd33e0b050626ab" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.523Z", + "updatedAt": "2026-01-06T14:17:59.484Z", "postProcessHash": "9154967fe3c5037555f883c28d43ebd7f9a963693812ed2121b373135ef87326" } } @@ -27911,15 +28415,15 @@ "1784873802e351d4cbfd164226e7d919a480bb1d6312139fa09de23c15d16a8b": { "8742e923d01dd09dc7d8778dca915632a84b942a268948d3212bfca23e4e87e2": { "jp": { - "updatedAt": "2025-12-29T16:46:15.491Z", + "updatedAt": "2026-01-06T14:17:59.478Z", "postProcessHash": "ba7790130e9847c679550260303e7bd90d29779990d6a01db4d3d0636832461a" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.532Z", + "updatedAt": "2026-01-06T14:17:59.495Z", "postProcessHash": "fb23458ae75693c8bf1bb6c7ec5998493219348445c758f848487f3fe869ef03" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.563Z", + "updatedAt": "2026-01-06T14:17:59.528Z", "postProcessHash": "90ac8e7e636384c34cfbd1039a6fb5c2eb9f6e527100f8822a03300892423488" } } @@ -27927,15 +28431,15 @@ "1976a270e928ec95aa014d1eb571385ad93c7acfac83fd172543fcf63d413493": { "28f4800b7936b39a171e2fb6c8317b4c9829a963ca30e0d8f2cb33e3e1dba27f": { "jp": { - "updatedAt": "2025-12-29T16:46:15.534Z", + "updatedAt": "2026-01-06T14:17:59.498Z", "postProcessHash": "9c5e6083c62927e10a73aff23d771c1a4f64db63a1f23f87414d9e53e0e2f75e" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.491Z", + "updatedAt": "2026-01-06T14:17:59.440Z", "postProcessHash": "00e124094f669e8c8bf09cc520286bd77728faeb3ff3f6b1f71817a05875b6a0" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.453Z", + "updatedAt": "2026-01-06T14:17:59.376Z", "postProcessHash": "31e9210d4396d546263f943540e14b096f498e017068b43794faef186b4785e6" } } @@ -27943,15 +28447,15 @@ "19d053d8db1755b3bac1323b8dc5bdf881a37b3de8c55e8397cfd48c70b492c7": { "a35e75c19a0f228c55c8e74114787fa88e13457d020f241643da1e080c35d9ae": { "jp": { - "updatedAt": "2025-12-29T16:46:15.549Z", + "updatedAt": "2026-01-06T14:17:59.518Z", "postProcessHash": "41f1f122ed49aea4f379b562e4ff9153ba9b9acc5b4df2ca44c56b9f6848902f" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.488Z", + "updatedAt": "2026-01-06T14:17:59.438Z", "postProcessHash": "5c80258df833983c7b274708fa062ca0e3efa0bf48adeedc2fe08df377e78211" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.452Z", + "updatedAt": "2026-01-06T14:17:59.375Z", "postProcessHash": "906cc962434989601007d3957f5aa5adc48130c09e72f84d656bf5a97e2f20cb" } } @@ -27959,15 +28463,15 @@ "1de644041acf945417d447dae1559f7cba704ddb7f42f4989d75f53b3432bcc7": { "0d354a4bc3cf5327de48753ad84ff21b24119bc6b87f048f6f36a86e9a56461f": { "jp": { - "updatedAt": "2025-12-29T16:46:15.524Z", + "updatedAt": "2026-01-06T14:17:59.486Z", "postProcessHash": "6e2dff9ad0146dd7635c9d17238f45532cfd4e9c77baf7206fca280661d82586" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.494Z", + "updatedAt": "2026-01-06T14:17:59.483Z", "postProcessHash": "c38c3bd35f52876fb2b80c04c383769141a2e1168112ec5ffdcadfea6674927f" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.492Z", + "updatedAt": "2026-01-06T14:17:59.480Z", "postProcessHash": "8bf8e0a2c822167174c041a57248197b68656796618771b050fda1c53641866a" } } @@ -27975,15 +28479,15 @@ "21df29d894f5394f8a93a1ff43ddfcea466286f726a703a29d7f5ad5f777ca4f": { "f9004a0faa2530c5a49f802aa2e8e063889d07b4b5779757539ed40941914621": { "jp": { - "updatedAt": "2025-12-29T16:46:15.456Z", + "updatedAt": "2026-01-06T14:17:59.384Z", "postProcessHash": "86cbfcbbccccda6b1c586f4633473a2aed07648d4219b254f5c2b0b5a740349f" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.563Z", + "updatedAt": "2026-01-06T14:17:59.544Z", "postProcessHash": "35c6ec2310dff9264ae0c61fce727423fa5201f162a35406f9282a9dca10d215" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.482Z", + "updatedAt": "2026-01-06T14:17:59.466Z", "postProcessHash": "972ef2602e1592fdcf609d8e878c4b072c9b81bc31eb741ca82d784ef5cd54c9" } } @@ -27991,15 +28495,15 @@ "22ff9a2316c586c12132ac52204a80c3282c99ea70504b739a00fc4e769b9090": { "9b6474c5f66a5e775df7e704ab5583bc77d7b503d80449e41bcb0fdca582d72f": { "jp": { - "updatedAt": "2025-12-29T16:46:15.557Z", + "updatedAt": "2026-01-06T14:17:59.525Z", "postProcessHash": "6ce4e20adc483b9eb412a6ca5b244acbb226d6b82e1408cc9c710afd82e15199" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.455Z", + "updatedAt": "2026-01-06T14:17:59.382Z", "postProcessHash": "ebc87644cdabdb09ee9892ab16418d3b56d467710c44e9aa29aef0a702d37cbf" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.559Z", + "updatedAt": "2026-01-06T14:17:59.525Z", "postProcessHash": "1860a7ea75cf99c380b45e9a1d8a370a4973f732e14beddeba1a719bd6988d7b" } } @@ -28007,15 +28511,15 @@ "642f1cdcfe6481dcca55bd2f485397c27b2cb519506bae85d0903d1022a9a534": { "d58e38a4b38f0454d5c08c7d2887270f277c732f8c21e5a62fa24568ae4fc2a9": { "jp": { - "updatedAt": "2025-12-29T16:46:15.537Z", + "updatedAt": "2026-01-06T14:17:59.503Z", "postProcessHash": "1a9f83ddc292362420c6a52de2657bc7271f5c21ba3ab0abd2ad1bc2a8b1107d" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.451Z", + "updatedAt": "2026-01-06T14:17:59.374Z", "postProcessHash": "22e211ced8488ecf55bca008b238d7ac47d7adabf9e5bf2e3aadc8871c61418f" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.541Z", + "updatedAt": "2026-01-06T14:17:59.509Z", "postProcessHash": "f64d3c780a504461888778408b202e10c4a9fb705b84295aa98d66dd14c51490" } } @@ -28023,15 +28527,15 @@ "76e148edd42e2339581c7f24e0a25ab51ee37d3723b355157641afd3cf2a92ac": { "96f0f82692a94d11ec4bd22df9bf9c367d91f54e7f111247f17715678d4f8a7c": { "jp": { - "updatedAt": "2025-12-29T16:46:15.463Z", + "updatedAt": "2026-01-06T14:17:59.421Z", "postProcessHash": "df55ed088f3c9193ef4a9840731f673deb78f7a7a219e084bbf959d429b57d69" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.408Z", + "updatedAt": "2026-01-06T14:17:59.398Z", "postProcessHash": "87ca586acfde913d4ce97da52a9b9813f1d1c4a076f6bd82679ff6390930efd4" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.457Z", + "updatedAt": "2026-01-06T14:17:59.403Z", "postProcessHash": "50478e4300bedd8a55a138b668e7a6d5575c7ba27f82675dd67a25ea88581634" } } @@ -28039,15 +28543,15 @@ "877ff646acb9d8b60cc0a8c397ec6865271899314d2f8d8c3bc6835ea0a51d87": { "cf8035df5e02498f9892ec6d01d716e4e210be81d6a338a2a670b395f2d05b5f": { "jp": { - "updatedAt": "2025-12-29T16:46:15.459Z", + "updatedAt": "2026-01-06T14:17:59.415Z", "postProcessHash": "fcb554e37e7af4c053e1e672331da8564ae20285875f2210850e6a0609794365" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.407Z", + "updatedAt": "2026-01-06T14:17:59.395Z", "postProcessHash": "65034cf5fce14a18bac91cc847960dfc3da465cc9a759c15b74b2cc209d8c5ea" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.503Z", + "updatedAt": "2026-01-06T14:17:59.448Z", "postProcessHash": "9319090b82e0165e7795cae925d2fc35275c892060b98661ed21ddb13a1ced39" } } @@ -28055,15 +28559,15 @@ "ba2b228d4949b83493253e6cce36fa61e4aab29868007f5c4dea719bd97fe4e3": { "bb371d742e1c3d8bcdd77214bf030643a0331f8f48e7727cbd847a8a32b85ac5": { "jp": { - "updatedAt": "2025-12-29T16:46:15.465Z", + "updatedAt": "2026-01-06T14:17:59.423Z", "postProcessHash": "514a925382e7a5201b4d202fdd21b6f8527498b7239b26432da0b044323f0439" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.502Z", + "updatedAt": "2026-01-06T14:17:59.446Z", "postProcessHash": "b5029fa6b38c05daee2427f694bcc4de7d3c45e00a7991839c51801d6c8662f9" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.398Z", + "updatedAt": "2026-01-06T14:17:59.288Z", "postProcessHash": "8dc81aec40cf12dfdac8ec24b879365aeb6b7a1dab892347e3c8e63f740d96a3" } } @@ -28071,15 +28575,15 @@ "c88c05312ecb48fece611ecb971d8437aee67aab577a01d65950c88e236c100a": { "d28f12f9ff28bee751ec769892ca255d368223c72a14abe462c9cf6ad965a8cc": { "jp": { - "updatedAt": "2025-12-29T16:46:15.533Z", + "updatedAt": "2026-01-06T14:17:59.497Z", "postProcessHash": "918ad5171e00dde35e8ceb4a21227d70175a98a165f3fbb2744b9e45a2677eda" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.550Z", + "updatedAt": "2026-01-06T14:17:59.519Z", "postProcessHash": "a8482fa3c4cf8bf55633b046eb0ed82451e1489e4d7153f1248153f3bb973d84" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.548Z", + "updatedAt": "2026-01-06T14:17:59.516Z", "postProcessHash": "56c91b4ff2d87498b4173aa8a265302f5546e84e4c80c1f657939dfd25c2b812" } } @@ -28087,15 +28591,15 @@ "d517690990eb5a5034e28f3526bde41c42990306742079c31f30f4ed4524ed91": { "9c79376ce670521bff71e976361e6729afb8128c48c2bd62e07e55c58efa6cbc": { "jp": { - "updatedAt": "2025-12-29T16:46:15.403Z", + "updatedAt": "2026-01-06T14:17:59.387Z", "postProcessHash": "957dfd0d6384b88503c8e585ae98dc5e0c273cd6aedf00de4bea5e3f405c5727" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.461Z", + "updatedAt": "2026-01-06T14:17:59.419Z", "postProcessHash": "54755606d721f0dcfc6f2a2cadca5cde84cb6c80f3e4b913cbddcf5d4ebba60c" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.402Z", + "updatedAt": "2026-01-06T14:17:59.385Z", "postProcessHash": "2c35252f68f1a923640589b00e0f8ea0275b103cad7af80698565b052a5e87fe" } } @@ -28103,15 +28607,15 @@ "e226489ddbcee1a5f588fea5844e21dcac309588b3ec1f6bbc9f7bfd26b0953b": { "5792c89f06fcaed31fc80316244e3ff2495629cc4d68214bf2ad0fc8b2cafcae": { "jp": { - "updatedAt": "2025-12-29T16:46:15.403Z", + "updatedAt": "2026-01-06T14:17:59.386Z", "postProcessHash": "57bdd7362459e516623260a58040d69a7a2e1654f40a25903d815f563ad7caf1" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.498Z", + "updatedAt": "2026-01-06T14:17:59.445Z", "postProcessHash": "e65fab7028c7749170d441414b1180e83cb45c68f48da136059e9d47598cfc57" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.406Z", + "updatedAt": "2026-01-06T14:17:59.392Z", "postProcessHash": "6d02fd7f4ac3123851eaa4d294bd5679844a586bbd0b7b55b21e07da1802294b" } } @@ -28119,15 +28623,15 @@ "e3904a052cbf5a3387388c389ae010ddc49649dbbbff19900f769f6e6cbfa1ee": { "e3e518cc255f67640d601fecd3cfb11ea7e915ddf282acc6eabba8311aae5b22": { "jp": { - "updatedAt": "2025-12-29T16:46:15.463Z", + "updatedAt": "2026-01-06T14:17:59.420Z", "postProcessHash": "7915ad17bc085b7ec17f0144206c4a2207cab99de9a6fd3243b28ae3cf206c84" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.462Z", + "updatedAt": "2026-01-06T14:17:59.419Z", "postProcessHash": "f0280b151f5d1abcbf656b7d1e622f5012fa583f4e0757f7f4b5a8eead7e1dce" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.464Z", + "updatedAt": "2026-01-06T14:17:59.422Z", "postProcessHash": "1511a9b0d60c7c3f5b5a39c0c60791b6d91f7741c4afc3cf4b77ffe6fb334b41" } } @@ -28135,15 +28639,15 @@ "e6ad4f2ee58b9c424f0cc4e12e443aa3bb9dfb641432accc87e403a8b0597b0b": { "d64cf4716347332440eb8c9bd7192e0eae84a3f3eb49ad6ba4155f87567e3861": { "jp": { - "updatedAt": "2025-12-29T16:46:15.476Z", + "updatedAt": "2026-01-06T14:17:59.430Z", "postProcessHash": "7d9deb042363000045617733cf181e0e372434880588266736556441925c13e9" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.476Z", + "updatedAt": "2026-01-06T14:17:59.431Z", "postProcessHash": "2d1bee15b8a931170f51bf73787dbb9b01b2a3a6f1d3e50a368339c2ac5c22d1" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.478Z", + "updatedAt": "2026-01-06T14:17:59.434Z", "postProcessHash": "b554123c51646d20702b19c35e17d2e7396e326346254e10bfaac707da27525c" } } @@ -28151,15 +28655,15 @@ "e8d810b58d2fc954739ecb8eae76ec7772a7459c01a08dd48ba208a5ab4b2b58": { "0d3df994d73dcce5dc7c4ae8f510488dca241f13863b2cb49c97f6056079afb1": { "jp": { - "updatedAt": "2025-12-29T16:46:15.495Z", + "updatedAt": "2026-01-06T14:17:59.442Z", "postProcessHash": "1da7a534734fdb80651bdc99bf056a4ad1c82f53a1d3e572d24408624de1db4b" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.405Z", + "updatedAt": "2026-01-06T14:17:59.390Z", "postProcessHash": "f86abc0e6cf798945f18aabb41c62bd3e74bad4c5f748c59300a7d5ddcbfa292" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.457Z", + "updatedAt": "2026-01-06T14:17:59.404Z", "postProcessHash": "5c155421ad507b5748d625f5815793cb034f91f2b5fee29985cea0a41dd8570f" } } @@ -28167,15 +28671,15 @@ "ee906a548fde378c55bde17a104978853c964efcc0ac2037f2cc5f90ff301836": { "f49e9e3f91b64b3519c5cc4cdc59ffcf9a84b52eba96cc9a68e95e42dec254a2": { "jp": { - "updatedAt": "2025-12-29T16:46:15.499Z", + "updatedAt": "2026-01-06T14:17:59.528Z", "postProcessHash": "b817e573aec41425bc346fc4ccc846f18eb70867ba5a2bb1929b46f4044d50a1" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.408Z", + "updatedAt": "2026-01-06T14:17:59.397Z", "postProcessHash": "16a7838061abd7362de6abd0de9885d4cd599be510e2172c833e622cf0eea177" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.458Z", + "updatedAt": "2026-01-06T14:17:59.404Z", "postProcessHash": "886f63c6915cdfa20765f0c93d93966227d2efa4ddecdd0573c991d5ff95e564" } } @@ -28183,15 +28687,15 @@ "f17585a5d8e2bdd6a2ebea5f856955881ef4c473fd73048cf4f26e56bdcb5db2": { "9e7753f5e285750271319abb9baa46c784486772a2b4da88514c28c5141c5c81": { "jp": { - "updatedAt": "2025-12-29T16:46:15.559Z", + "updatedAt": "2026-01-06T14:17:59.526Z", "postProcessHash": "2bb59db28a66ef1976e04dad75819df3273528f2e8031c251bd7368ad8248cc6" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.393Z", + "updatedAt": "2026-01-06T14:17:59.372Z", "postProcessHash": "2421466a61b1aac8b15cc9577d8e35d92e5a9aa296a2d384798032ffb54aadc1" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.494Z", + "updatedAt": "2026-01-06T14:17:59.527Z", "postProcessHash": "31026145b48a3a25e3cf23504031857d68db763b295c41656c99c9197c6f28d8" } } @@ -28199,15 +28703,15 @@ "fdfddb9175ea6844a8f625eb6ff292798d8dda51dbc62ca44009000f3177a4c8": { "a1fbebb2555661587982370786b093295909d4be9fcca7e32ae5eff02acae18d": { "jp": { - "updatedAt": "2025-12-29T16:46:15.406Z", + "updatedAt": "2026-01-06T14:17:59.394Z", "postProcessHash": "bcf0b7534c579de5d06bfd7131c8063bc180e7f1503a2717026df704a17358cc" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.405Z", + "updatedAt": "2026-01-06T14:17:59.389Z", "postProcessHash": "f3b5ff21c5e81dde8155a3e73108c3b04846ae1d871cdc641ea2d7046862d5f7" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.396Z", + "updatedAt": "2026-01-06T14:17:59.285Z", "postProcessHash": "e84fff1d045cf9c71092d91955562c704761eb8e4de0be20cce15599e8ac06f6" } } @@ -28215,15 +28719,15 @@ "04fc2fc59d087b4841db1401316e4d1c9ac88f144242faabf25ec2e969a5215b": { "414e7c4dfb6cd3da8443de0d53c94c82fe3258fa5fdaf93915afe2a8ec3736d4": { "jp": { - "updatedAt": "2025-12-29T16:46:15.556Z", + "updatedAt": "2026-01-06T14:17:59.538Z", "postProcessHash": "4c86c56f8bbddddb5a8a9c4aeaa72d0876ada236a5737a8520fe4f280c9c725c" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.556Z", + "updatedAt": "2026-01-06T14:17:59.539Z", "postProcessHash": "7bfb343026d6ccb406dc3380ab7ca7656dd6e39dd1b4679c4ace9accd20bc7f3" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.519Z", + "updatedAt": "2026-01-06T14:17:59.477Z", "postProcessHash": "0517592404b41898fe197ff6c0fe79142fa39afabaa4d6bb7162b565da6b5a5e" } } @@ -28231,15 +28735,15 @@ "2fe2ff96c504c59daad55285eb365e9e69fcc5eddd301d8a0409670d1de5a9ac": { "79af085e05f9fd1374cba79aa1eea65a5fa7bcadf0fcbabfc3df348faf04e6e8": { "jp": { - "updatedAt": "2025-12-29T16:46:15.531Z", + "updatedAt": "2026-01-06T14:17:59.493Z", "postProcessHash": "6793ff84b8af7d5d8b7da81647f5cc3b4051f37bba8f934deaa1fa048b942794" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.555Z", + "updatedAt": "2026-01-06T14:17:59.538Z", "postProcessHash": "95d415dc64a9f8e8e348ad1e8aaf96140f9954d2b314efdc691084a644878156" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.538Z", + "updatedAt": "2026-01-06T14:17:59.505Z", "postProcessHash": "486a98f503013431b94e683a374be1173e56c396393b30a357cc8c3f36be8f1c" } } @@ -28247,15 +28751,15 @@ "32c8d946bfccbad7f54bc00de27ceee1cc1719758ec7a678b9763d7236502014": { "6c958d1bfa513f4a8e0811e9c383ecdf775c2aa645e088ea7d02462f9209a69c": { "jp": { - "updatedAt": "2025-12-29T16:46:15.530Z", + "updatedAt": "2026-01-06T14:17:59.493Z", "postProcessHash": "09192e3e213aec09b8739b8ca76927cb47ae1931bef0394c1fc8a2d566aa41d4" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.521Z", + "updatedAt": "2026-01-06T14:17:59.481Z", "postProcessHash": "3e40e4930f6f47417242edc9ca907236ef8ae3dae126b9bae198c55ec8c43243" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.520Z", + "updatedAt": "2026-01-06T14:17:59.479Z", "postProcessHash": "dce00b6aa4729edc895c305821b237174224c992efff4e656658184ed365736d" } } @@ -28263,15 +28767,15 @@ "341eea9182cfeebd2c27c019d06a39d1fcf951c990bcd80fa61f11ffc6f9e196": { "aba92e4ddf93c8ac27c276aa33d276f9987cda30270a7b50881edac3ee8d0b71": { "jp": { - "updatedAt": "2025-12-29T16:46:15.541Z", + "updatedAt": "2026-01-06T14:17:59.509Z", "postProcessHash": "33b0e8257b8c2f4f4ff28bd76c8f5cb50b29926015cdbe9c6a3d3140680c5fac" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.455Z", + "updatedAt": "2026-01-06T14:17:59.380Z", "postProcessHash": "d7e3b1da7be143e33e2973304e3d9b7b7f1bbb8a91df883b75b84e7571084d21" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.454Z", + "updatedAt": "2026-01-06T14:17:59.378Z", "postProcessHash": "c889b844f42e4450548262b4874575c28e375220a7c7f4e7caf10500ecaa2d54" } } @@ -28279,15 +28783,15 @@ "3fe31c561edbb5416b22ecceae952bb5b07567cc07d75cd64ad4a2caca7689f8": { "af620cd5ed38d2654712e19961c6712bdc7c780d345e73f17ae49396a20d6df0": { "jp": { - "updatedAt": "2025-12-29T16:46:15.536Z", + "updatedAt": "2026-01-06T14:17:59.502Z", "postProcessHash": "552ca3c3025e1b660cde0afb3552c932d40d1e28e17650a0d92d6efd360000b9" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.535Z", + "updatedAt": "2026-01-06T14:17:59.499Z", "postProcessHash": "bfa1c0d4a034ed09f1d51e3d64db06a614897cb7cb1c7fca57aac4714d6a9c5c" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.534Z", + "updatedAt": "2026-01-06T14:17:59.499Z", "postProcessHash": "368a6907bf13f87c188b962943377089df692c223e1498a2fe4e969486775527" } } @@ -28295,15 +28799,15 @@ "4afdda2989ef4d77a80eb6666ee0e5fd90ac3afbba1e33f8e39a07be3bbd203f": { "6d99a0d2cef83d17f6510958c4402246edefbb9b9d564c2e37e017791950e3bd": { "jp": { - "updatedAt": "2025-12-29T16:46:15.527Z", + "updatedAt": "2026-01-06T14:17:59.488Z", "postProcessHash": "56ca848420db0579611181a512335e8e9c20e6a4a62bcedc9a400b448580fd49" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.544Z", + "updatedAt": "2026-01-06T14:17:59.511Z", "postProcessHash": "f3dede27606f3796bcacba25eadb245278de1f535f359b5fcb8b11fa4a22708b" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.535Z", + "updatedAt": "2026-01-06T14:17:59.501Z", "postProcessHash": "e452b308611a16ff6a5d49bb1169de90c144ab983a5530a85eb50a30af675d7e" } } @@ -28311,15 +28815,15 @@ "4ecdaa59771417d8a6341e9feb60dbd9c4d4fbb10361d6cf230a66334329d458": { "32e97893f5bdae1c411c78d8f927f38c3f5f53f548071542f0aaa587e832cecb": { "jp": { - "updatedAt": "2025-12-29T16:46:15.562Z", + "updatedAt": "2026-01-06T14:17:59.544Z", "postProcessHash": "6fa7c733dd39964546beed0f53e5e1e4e14414c77715500fa3cbb53dc05ec98d" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.560Z", + "updatedAt": "2026-01-06T14:17:59.541Z", "postProcessHash": "3156f159727382e8d9f3b3298437896018350d33392125a9cc43288ac2afb5bd" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.560Z", + "updatedAt": "2026-01-06T14:17:59.542Z", "postProcessHash": "a02dc4b108313d0b914bc561d51cc125d3ac7d1cda8fe5ccdcf72fa59f15fd0d" } } @@ -28327,15 +28831,15 @@ "5ed43729b9d1c584d6d2715ce2c8e0e8690a779f998a5295f954f2f562471776": { "1691e237ea64aacab998e397d87c92e5419d9695a9c24f1829f61653d169f1f3": { "jp": { - "updatedAt": "2025-12-29T16:46:15.452Z", + "updatedAt": "2026-01-06T14:17:59.375Z", "postProcessHash": "395c86a9e7b70849c08b54b6984c93cebbf2b2f422ff8b3d473c6efd88479947" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.525Z", + "updatedAt": "2026-01-06T14:17:59.487Z", "postProcessHash": "fc1a9d18367f8a3d6a05076b965994e3492f45e9709a3de7e34e08b1d46e1f36" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.553Z", + "updatedAt": "2026-01-06T14:17:59.521Z", "postProcessHash": "6b060409870c3d187975de8606d6779468f1af6f0c005684003e6626115f0e66" } } @@ -28359,15 +28863,15 @@ "7043bd98baa35080107f5165fe9bbec5ef39eb9956052fa0c10ef9ac22039a33": { "e6b73b30c4502fd5f9cd04636be35210ae5ea65dc8343c3daaa83eba16905924": { "jp": { - "updatedAt": "2025-12-29T16:46:15.528Z", + "updatedAt": "2026-01-06T14:17:59.489Z", "postProcessHash": "8a1d61040594d0d9100de611970f617272c26a7c61bce51b6c9128637eff016d" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.539Z", + "updatedAt": "2026-01-06T14:17:59.506Z", "postProcessHash": "662951e59bf9b4f70f9d52f9df37f94dd279c3218b9daca00073a5d29b56b15d" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.526Z", + "updatedAt": "2026-01-06T14:17:59.487Z", "postProcessHash": "a76e4822fc70671bd0dd9a751ceab7c2ca15ac69ccef98eed56fa8aa9c336e8e" } } @@ -28375,15 +28879,15 @@ "73cc61c275b13e314a195a2bcdc4cbfb3fba91139f9fd1bffb19f48a659d4e6a": { "190e7c7b34bba92cb96c18d30898280711152aa225a02af84331070d834800de": { "jp": { - "updatedAt": "2025-12-29T16:46:15.548Z", + "updatedAt": "2026-01-06T14:17:59.517Z", "postProcessHash": "69e0ba42d38ec3783b3d6329d5afaa50069a9c0128bb75417f160609d741e31e" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.521Z", + "updatedAt": "2026-01-06T14:17:59.482Z", "postProcessHash": "7381da4ce5840a9d072cdeaf58ee6732466cdf2c1cfd7bd8462576340ec67134" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.540Z", + "updatedAt": "2026-01-06T14:17:59.508Z", "postProcessHash": "b2e3fc3f022ebf971aea816ff0a390da74602ab9b3d63167b6b48215c32548a6" } } @@ -28391,15 +28895,15 @@ "7478bdb164a78a0066fd05a6a86be0fa7a2ddd64b6f73b9baf2265c59d70f4c4": { "e97df2367ee337a5ad2b8ce514b44485caf7b24462a66eac4a3d178503301830": { "jp": { - "updatedAt": "2025-12-29T16:46:15.552Z", + "updatedAt": "2026-01-06T14:17:59.520Z", "postProcessHash": "ee44710816026ff858f7397a9d8fc7762d7ca3bd0a4a0803924d3ef8396cd70f" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.527Z", + "updatedAt": "2026-01-06T14:17:59.488Z", "postProcessHash": "00734b6601a1867da908013690211d8699cd2a04634816b3f5ba80b77e22e13f" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.543Z", + "updatedAt": "2026-01-06T14:17:59.511Z", "postProcessHash": "45aeb32c58e18c79ba802a04a57740e8187a27ddfc5dd140d8ebdebb5aa26a4f" } } @@ -28407,15 +28911,15 @@ "789c0931dffcacd3c5e4bd954c1cc49f734d35378bd8d9f099bac0b7d7de0017": { "58519a4d43db394ea6d5c15ae1e4f7bfc823bcba6a23e04e1f1b0fc5aea36241": { "jp": { - "updatedAt": "2025-12-29T16:46:15.561Z", + "updatedAt": "2026-01-06T14:17:59.543Z", "postProcessHash": "519925965b826324ae5bd063dfb2b1703788007c4d5f519faf2a790d1a28d852" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.561Z", + "updatedAt": "2026-01-06T14:17:59.542Z", "postProcessHash": "7f85a3792d1413e619f9c0099bee003e1d8c713949246ce9a3ba93728bab4773" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.558Z", + "updatedAt": "2026-01-06T14:17:59.540Z", "postProcessHash": "fa80b6a55c42afb1be94872a82b1f9da4d3cc23c661d5c8f42e673447186878d" } } @@ -28423,15 +28927,15 @@ "85409384bc3d4ff1f1449d76a33ced011be9773bdbf0758e6975a6dbd1ee1dae": { "1fee80d8af00c415d442c78b9ad825b9a0656bc47f1eb00d9ac9cec8430f1454": { "jp": { - "updatedAt": "2025-12-29T16:46:15.530Z", + "updatedAt": "2026-01-06T14:17:59.492Z", "postProcessHash": "6a315de42fc209c5b1287ecb783f74ae407f8af05b4f539fdc2872f2128c2a12" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.544Z", + "updatedAt": "2026-01-06T14:17:59.512Z", "postProcessHash": "9672b42b60ad516f490fb3281e40065f600eb7bb8d21b4b7bff69c41c5cc9817" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.535Z", + "updatedAt": "2026-01-06T14:17:59.501Z", "postProcessHash": "a970a84cd18592943bfffefb2b45be71f43302f80ded0a69e8e54ca9cf54c542" } } @@ -28439,15 +28943,15 @@ "940bcfdd1a4ad18a6a6ccd9181dfd460e21675b41985028b535c556f22904357": { "8379073d04e59c3c4b33a28508240fa2ad889504e267a63230a17f0b31b60377": { "jp": { - "updatedAt": "2025-12-29T16:46:15.551Z", + "updatedAt": "2026-01-06T14:17:59.519Z", "postProcessHash": "0aade2e43a61130da226049874fe0947ecb5ed3483b82e1a09e817603ac898cb" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.557Z", + "updatedAt": "2026-01-06T14:17:59.539Z", "postProcessHash": "41629d1c56c4d1882a13d92e7c7084fabab50811b91d70e2a4214c15a15654ec" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.558Z", + "updatedAt": "2026-01-06T14:17:59.540Z", "postProcessHash": "75447afdcc9676b853d6209512eb08553a8d71aa23d87490013108c5acc9b96d" } } @@ -28469,15 +28973,15 @@ }, "d3721cad34be7ac86a0f9a42adc7f63019c0b85eec5c8e982d58f26be401cb19": { "ru": { - "updatedAt": "2025-12-29T16:46:15.564Z", + "updatedAt": "2026-01-06T14:17:59.530Z", "postProcessHash": "7c1319eb03d3f754262c7a87c5526656c43c8dab5d885c014a9e65f5c565e992" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.564Z", + "updatedAt": "2026-01-06T14:17:59.531Z", "postProcessHash": "a25aea5a4741d001a2a67df5aa16e0dbf5f0b0632dc1deb51defd46d8822a236" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.565Z", + "updatedAt": "2026-01-06T14:17:59.531Z", "postProcessHash": "097547a1e3fd157ec062717ff2e125122885e65cc9a86f283a8c01c9929dc7a8" } } @@ -28485,15 +28989,15 @@ "b0371f0c5ed81dd8c1a94c3d4fbb5068eda546a915ea97e900025b7967fdc506": { "1adc889763f86e0775ccdc2cb7db8ac95b53182b5f48d36f86a8daf7373c5e8a": { "jp": { - "updatedAt": "2025-12-29T16:46:15.562Z", + "updatedAt": "2026-01-06T14:17:59.527Z", "postProcessHash": "6b481c40032da70d748601d754cec0f492c982ae950e2d56ce52e82a4b268f4e" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.538Z", + "updatedAt": "2026-01-06T14:17:59.506Z", "postProcessHash": "8fe7995ff7dd434884de0496045c5412a74a45b5810451b0b168dda92755f308" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.524Z", + "updatedAt": "2026-01-06T14:17:59.485Z", "postProcessHash": "818969899c6a81870590b5bbb314e1bc40c9ddc47beceb4e8058ce6425ccdfcc" } } @@ -28501,15 +29005,15 @@ "c720ce0e77810fdc639cfe83c2df1fe9c3d97ef4dd59cba6540e1d9e354f6866": { "3f956529d37242046b0834f1c686e59dd0dda8c1b7de96710b47b1ab8e5544f6": { "jp": { - "updatedAt": "2025-12-29T16:46:15.533Z", + "updatedAt": "2026-01-06T14:17:59.497Z", "postProcessHash": "5b36f94ece8e230d4e65b9d6eead5961c5f51da20c20e25cf1c7f4c477bb22d9" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.453Z", + "updatedAt": "2026-01-06T14:17:59.377Z", "postProcessHash": "2ccd73fe365b2ea6bc10a9c900e4086812c9609599c8529a2bb77b3377e8d061" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.455Z", + "updatedAt": "2026-01-06T14:17:59.380Z", "postProcessHash": "3a80224ca78b369f5fa27bcce394ee05cfdfca55a9d77d26c29d571818cc7fdc" } } @@ -28517,15 +29021,15 @@ "dfd805b622edd8955d58dd44846aeefbda562b1c575f0740533a458f2478f495": { "c61769f8b34a280fa8e6d8215850f12fe517dd969c26c4527ce9543b9b4052d6": { "jp": { - "updatedAt": "2025-12-29T16:46:15.492Z", + "updatedAt": "2026-01-06T14:17:59.479Z", "postProcessHash": "f54df4ae5d531f39347d88045bd1712f08a0894bfdeb8a2d5d94f557d70c958e" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.532Z", + "updatedAt": "2026-01-06T14:17:59.495Z", "postProcessHash": "ad1d5fd67676975863f1b32eede946980fd86a6149acdbccccb38f018f93fc3e" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.493Z", + "updatedAt": "2026-01-06T14:17:59.481Z", "postProcessHash": "1531ee8b3e45c6100af1c4c49e3caba2bb4a5361e57cf076c257dbe9e16a2e84" } } @@ -28558,15 +29062,15 @@ }, "e79ead5303b92c9bda3c72e388c18f072b8c0097fd3675aa3d9c6880a5d05250": { "zh": { - "updatedAt": "2025-12-29T16:46:15.567Z", + "updatedAt": "2026-01-06T14:17:59.532Z", "postProcessHash": "a818b15d02f217495086e1865a96a4a2adeedb8aaaabdc1a6539793e71ec72d8" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.568Z", + "updatedAt": "2026-01-06T14:17:59.533Z", "postProcessHash": "1b52d536501410ec77202c0d96b562210db14844292d641c69b17a315f5d6cba" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.569Z", + "updatedAt": "2026-01-06T14:17:59.534Z", "postProcessHash": "2ab83167442ef4de6e81b827afeb178aef855a17b145fda97a95cb3ea2a00705" } } @@ -28695,15 +29199,15 @@ }, "58debb919a7d3053a1716ec9212ffaf94ce207384714f601969c0fb747dfdd91": { "jp": { - "updatedAt": "2025-12-29T16:46:15.567Z", + "updatedAt": "2026-01-06T14:17:59.554Z", "postProcessHash": "b03497dbdbabb6c6e7dd6a3a6e8517a5d3e843ec75229f0465a978107c3bdf88" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.621Z", + "updatedAt": "2026-01-06T14:17:59.609Z", "postProcessHash": "1906b53c7cd3b7ca01f0586d603f54e7fe9ea03ab3fad0c8b1a01ba3baf702e0" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.621Z", + "updatedAt": "2026-01-06T14:17:59.609Z", "postProcessHash": "71078ba70137baa93983db5b0de97752583e6812112ef0cb983d025cd1436176" } } @@ -28725,15 +29229,15 @@ }, "32d2ee166f6824258a84f2eafdd02babb2aa33db6b53705ef65c8a0b07bd7020": { "jp": { - "updatedAt": "2025-12-29T16:46:15.614Z", + "updatedAt": "2026-01-06T14:17:59.600Z", "postProcessHash": "56b95ab0b0383cc20e10b47594a5776907937218b15d030d763d940a875c36d1" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.615Z", + "updatedAt": "2026-01-06T14:17:59.602Z", "postProcessHash": "9454b40e238c26c3fe0b9178541676944aeea428240ee8287e1a8769d9c310b9" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.620Z", + "updatedAt": "2026-01-06T14:17:59.608Z", "postProcessHash": "0140f01dc6bcb28295344ce387faf778eaf6e3b98816f71c26304503c9a82388" } } @@ -28755,15 +29259,15 @@ }, "1889bf940c0c06de7ea344cd1d5ab5c149733ba8a6f3830132f17bfb94ebc08f": { "zh": { - "updatedAt": "2025-12-29T16:46:15.607Z", + "updatedAt": "2026-01-06T14:17:59.582Z", "postProcessHash": "f1db3792430346a91b76d47a5e2b15dff7f2c6a6139cf42f599e8781428a0c3f" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.617Z", + "updatedAt": "2026-01-06T14:17:59.604Z", "postProcessHash": "5a249566f5916590ae5811412ffe160c6a48221a240c138a6bf879ce4d9dabef" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.619Z", + "updatedAt": "2026-01-06T14:17:59.608Z", "postProcessHash": "b6299fa4a6d61f106bc7b390a10037ac6942822d036d25d1a216e6e5d49c37a1" } } @@ -28787,15 +29291,15 @@ "9f914435087a98e271276ebb87f255c29380082ebf766e89899a246c457e4677": { "71530532e2635eadb067e7bfc1e67c37d37113e6474b6d00295249b91f5e556d": { "jp": { - "updatedAt": "2025-12-29T16:46:15.542Z", + "updatedAt": "2026-01-06T14:17:59.509Z", "postProcessHash": "bb403c4c6451d41c4be772e85067cd6525548c98249a0fece15fbf729db00d57" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.539Z", + "updatedAt": "2026-01-06T14:17:59.507Z", "postProcessHash": "988499514a8ff5ea02057a88e504cdb62a1af881e22a15c7f444f36daf71a6d8" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.544Z", + "updatedAt": "2026-01-06T14:17:59.512Z", "postProcessHash": "304ac2fbb61cfd9ed79c8a7c5cc3c253f7ca45dd20380d989334a524371c533f" } } @@ -28803,15 +29307,15 @@ "b5043154caba774e4d5afd58609e8705791d168d7b610c441a9f5eb0c01aebe8": { "8640bb0e91d0ce2469cf06735ac41d782b10893d26d5a5e4bdd88f4ddcf19c10": { "jp": { - "updatedAt": "2025-12-29T16:46:15.547Z", + "updatedAt": "2026-01-06T14:17:59.515Z", "postProcessHash": "7e56601a8778d066afd82cd888e6b98975e414a743f124ba21c50c072f97a562" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.554Z", + "updatedAt": "2026-01-06T14:17:59.523Z", "postProcessHash": "e09fd6e43c3c5edbce6d33986d804a170927a2a3fb8253cb48ed078c3aa97328" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.552Z", + "updatedAt": "2026-01-06T14:17:59.520Z", "postProcessHash": "0511f8bb68c7a0ab03eb0a3b5a1171bb46bfdee145ac316f2f4f965e02fd0104" } } @@ -28819,15 +29323,15 @@ "b6b46b2ddce58f83297d4fd3e22a20c0689c8846b02b00d6c901ad29353143df": { "6526c7597b3e43dfe18fbc51f8dfea10476408a65acfc8c77d19c20114264de2": { "jp": { - "updatedAt": "2025-12-29T16:46:15.523Z", + "updatedAt": "2026-01-06T14:17:59.485Z", "postProcessHash": "cf882a615cc788a3dea86467f0aa984af4882ce3e7fdf5453ccc6ae84d3093aa" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.545Z", + "updatedAt": "2026-01-06T14:17:59.513Z", "postProcessHash": "f81ed251b67849bcd7cdab599d052c4e83be831fc64128f45f245a3efcf09acc" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.529Z", + "updatedAt": "2026-01-06T14:17:59.491Z", "postProcessHash": "e292900cda9e5da3050874df5d066b2b983937a604dcf7aef206df312682fe65" } } @@ -28835,15 +29339,15 @@ "b760d26fdf8b09ae16032e0dbdd66a6e812e5b85cfc1a2dce387a41c031415a5": { "2a83ac2cbaf9b2ed36fecb623007bef63f6aaaf537e37429095c3057b999a156": { "jp": { - "updatedAt": "2025-12-29T16:46:15.546Z", + "updatedAt": "2026-01-06T14:17:59.514Z", "postProcessHash": "3d202caaf223b1e4ad7d6375133a2a2781554dceb3584d6aa755ae85dca925b8" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.522Z", + "updatedAt": "2026-01-06T14:17:59.484Z", "postProcessHash": "6215b2fa26ee923af659ad622bd02828ee717d586ab5ea9a33b1678a5edb690e" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.454Z", + "updatedAt": "2026-01-06T14:17:59.379Z", "postProcessHash": "0014a11ebcd9886f835705275d63273f24d550a694b5d9b66de2700e7de6805a" } } @@ -28851,15 +29355,15 @@ "c94404af6396786f2d99e4b9e86fe62f37fba23be9fb0992cb4462421350617d": { "8e9c8e608b5e9c9eb4f01785fa62ca818e1a1957a5723d6cb412ed71f639a50b": { "jp": { - "updatedAt": "2025-12-29T16:46:15.550Z", + "updatedAt": "2026-01-06T14:17:59.519Z", "postProcessHash": "3d888b3f0f556a299f1dbc5d507a9cdf8fb8cfef4d66101c1a129d6824fe7009" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.547Z", + "updatedAt": "2026-01-06T14:17:59.516Z", "postProcessHash": "84f52b029d075625aa67c20c2609cddbb954acbfc721ce31ce874145f6ba301e" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.555Z", + "updatedAt": "2026-01-06T14:17:59.524Z", "postProcessHash": "64605067e9f90909ead88b1aac520ad5a306c25b8fcc746b81542c9bd2bd7fbb" } } @@ -28867,15 +29371,15 @@ "cb7281a29c8577f9362237b726ab73efa4133f66aa1f532e94603029a6608325": { "e7e9ff403010f7419e6fe70d3329c7fb4d95f62d59d52fda8025ee90af8ad89c": { "jp": { - "updatedAt": "2025-12-29T16:46:15.554Z", + "updatedAt": "2026-01-06T14:17:59.523Z", "postProcessHash": "a566495ba4b7f285354c15226950e9f2e3ec118c7273badf22e1eb95af4c0e12" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.490Z", + "updatedAt": "2026-01-06T14:17:59.476Z", "postProcessHash": "793ddbd4c8b47639d47308898a4c6e9a6f720810b40c023068ec0c087ab6cc6d" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.543Z", + "updatedAt": "2026-01-06T14:17:59.511Z", "postProcessHash": "a21f16e62780db0aa0627209b7018658c201fc59af53306d64ecf0b9a4f15b0a" } } @@ -28883,15 +29387,15 @@ "cdf00c31e8da5ad17f2b40732cf7e7baf65150deaf7488eac143f7201d1dfb3e": { "3c8db57986756c0b913b89d2204dd19e77508a68267dc6a6d737df290161badc": { "jp": { - "updatedAt": "2025-12-29T16:46:15.546Z", + "updatedAt": "2026-01-06T14:17:59.514Z", "postProcessHash": "1282d52a42d8e711c7b9c99b0989e274172a685cd4d0aec1b6d387ad54f496f8" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.529Z", + "updatedAt": "2026-01-06T14:17:59.491Z", "postProcessHash": "e31ad8fdead4a1cbdbdb9c8e897087df60f0101252e4ec3061cb57eca7707f0f" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.537Z", + "updatedAt": "2026-01-06T14:17:59.504Z", "postProcessHash": "3fe501c8bb5a3286cba447647dbab0d3b13f548282ea07770dcf7cc389389312" } } @@ -29183,15 +29687,15 @@ }, "639d83af49b76398aba7bb6902ceef320a4aabf1ad962028910b6e0814393664": { "jp": { - "updatedAt": "2025-12-29T16:46:15.590Z", + "updatedAt": "2026-01-06T14:17:59.563Z", "postProcessHash": "324a41d89da42d8693b7a995a3e58e85d1ae26538d35c8f9c8227ced3802e0ed" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.590Z", + "updatedAt": "2026-01-06T14:17:59.563Z", "postProcessHash": "bf39a64bd283ed37d17ac02264a69dac6c913a7f002b80636a3666b065ea4b4e" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.601Z", + "updatedAt": "2026-01-06T14:17:59.574Z", "postProcessHash": "5a6cc3d43d6157fc8fe431642919375ad0df6c68df5b1136b8de00c3b0d622ca" } } @@ -29256,15 +29760,15 @@ }, "23df1a3f210ae36fbee02672f7c1844c8ef65279e035404e98a88941e6fa9053": { "zh": { - "updatedAt": "2025-12-29T16:46:15.607Z", + "updatedAt": "2026-01-06T14:17:59.643Z", "postProcessHash": "ce05599359885a9b3eb745cc2191b914d474c55209e6689df33e244843f2c5ec" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.620Z", + "updatedAt": "2026-01-06T14:17:59.678Z", "postProcessHash": "08f91ec154f6e626cc0f4748d5fe2aade434cfa85f560a1e3ab75e8dc148ee11" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.668Z", + "updatedAt": "2026-01-06T14:17:59.661Z", "postProcessHash": "a05f6369bcc5beefd1d42b0aeb5ae44b3eaeb11b33024a29381dd4807b5ca25e" } } @@ -29590,15 +30094,15 @@ }, "d2647145c2d94101125ee723aa9e5decb52c18caa1049630ca036f5548cba052": { "zh": { - "updatedAt": "2025-12-29T16:46:15.572Z", + "updatedAt": "2026-01-06T14:17:59.547Z", "postProcessHash": "606fc3a1105acda244fca1b5491e2f67003b2e62c6041dfc351cdf361fd81c97" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.650Z", + "updatedAt": "2026-01-06T14:17:59.641Z", "postProcessHash": "d2b2f811f98547269e7f6c249306bd4df09fa92a3c15480f9b68c627df1f994a" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.692Z", + "updatedAt": "2026-01-06T14:17:59.756Z", "postProcessHash": "483dde795f3caced89870734e1efbfa72a041abae8a32ae43667a45cc120137a" } } @@ -29636,15 +30140,15 @@ }, "3518312042f8d9b8ab8ba1544014819d1fc6e285de2eb2e2d76c9f2ce6bb741d": { "jp": { - "updatedAt": "2025-12-29T16:46:15.576Z", + "updatedAt": "2026-01-06T14:17:59.550Z", "postProcessHash": "bc14905b85f9f94975ef1613f2cd4e93c71cebd152e2886f48a87c160d1d95ca" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.592Z", + "updatedAt": "2026-01-06T14:17:59.565Z", "postProcessHash": "3e489dac49d30ea062fc03c891d3da04ab2b55f544ca57b30bf8d0427c283300" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.664Z", + "updatedAt": "2026-01-06T14:17:59.655Z", "postProcessHash": "8251ac0b1d7615b3ad73f90386a6e299b84e3b06081bbc9a3b3f855dba17d33e" } } @@ -29666,15 +30170,15 @@ }, "ddfbe793af3045d896f91871193ad43e8f0857ee780e575990766d421947ce7c": { "zh": { - "updatedAt": "2025-12-29T16:46:15.596Z", + "updatedAt": "2026-01-06T14:17:59.568Z", "postProcessHash": "dafd50ad116859d476dfd0994bba8467ba5667fe8155523fcf70f93ac3f7f797" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.598Z", + "updatedAt": "2026-01-06T14:17:59.569Z", "postProcessHash": "a00f2ab081ec50fb7dba485986fa204d99b0eb912d9efb7b680c0822b96b0bf7" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.656Z", + "updatedAt": "2026-01-06T14:17:59.646Z", "postProcessHash": "fe431b7663e3ad38485c6bd8f38527f77e7f11aa40abdd321c2f9f2fcffdf219" } } @@ -29712,15 +30216,15 @@ }, "935bce95ad777f4f1472fdbaf08c045414393a5d7d71717ae25e670f66d73edb": { "jp": { - "updatedAt": "2025-12-29T16:46:15.623Z", + "updatedAt": "2026-01-06T14:17:59.610Z", "postProcessHash": "82a2f679dde4389c6cc936912f88e0555588b3d7b3b943e7e80807745564dd39" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.630Z", + "updatedAt": "2026-01-06T14:17:59.690Z", "postProcessHash": "b480836a1e81367a3809f05216a9249bdf1622a02e85c33add6b9682d64586f2" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.707Z", + "updatedAt": "2026-01-06T14:17:59.714Z", "postProcessHash": "a300169f9c4476a392fb944d5e6ec21822b0b65a20de2a9843fefbd3bfe3d6d6" } } @@ -29758,15 +30262,15 @@ }, "218e5917b388412ceb5a5f229986b3858303477f5bdabe29da483dedb895bb3e": { "jp": { - "updatedAt": "2025-12-29T16:46:15.716Z", + "updatedAt": "2026-01-06T14:17:59.730Z", "postProcessHash": "a93e44879ddf1c89183d6971c057aa0bb148eff02219d4ede5e93f0022977fe3" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.765Z", + "updatedAt": "2026-01-06T14:17:59.789Z", "postProcessHash": "df486443581c22a87caf8836c4f7030862301b7911c73fd9306d95e373666dd4" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.771Z", + "updatedAt": "2026-01-06T14:17:59.796Z", "postProcessHash": "84dec42a8ebf97a292a2ea13bb2981bde057f52a914b5988b4a2c34428c76184" } } @@ -29884,15 +30388,15 @@ }, "fb5645861fa7d58dfe5fd43c78357c426b30b7064af3b315c58c03cc82ed8847": { "jp": { - "updatedAt": "2025-12-29T16:46:15.702Z", + "updatedAt": "2026-01-06T14:17:59.704Z", "postProcessHash": "f9cf0bede277337a8fae5fb23886df0bdad0dcdbeea7dfad31531607da9ec0f3" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.711Z", + "updatedAt": "2026-01-06T14:17:59.724Z", "postProcessHash": "8d5c5db99a363385755f6ba8b942762c1ab1e3ba1394c4d61a2c2d44e95519dd" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.727Z", + "updatedAt": "2026-01-06T14:17:59.740Z", "postProcessHash": "7dfb5eab08b9eabe03ffc7d52d43c85bdf3a60823b61acce87f1c5880006723f" } } @@ -29946,15 +30450,15 @@ }, "97a15920b81675277887cf9c5f8ac949cd07c0d052f7b98a39e8ced88a08865a": { "jp": { - "updatedAt": "2025-12-29T16:46:15.627Z", + "updatedAt": "2026-01-06T14:17:59.683Z", "postProcessHash": "611c58c228da3c8b298a4b867079e1b436e98617b9ee21b6f90b7afe4f23b629" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.630Z", + "updatedAt": "2026-01-06T14:17:59.693Z", "postProcessHash": "3a3aa668a0045527c2b971252399ab2667a978ad35190ba35caad523d9c45310" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.707Z", + "updatedAt": "2026-01-06T14:17:59.713Z", "postProcessHash": "eb95240330150f61af7001266bf1aa323bd941ef88948552c194ac989384ca35" } } @@ -29976,15 +30480,15 @@ }, "c25829bac222bd856be792264b51d90d0d4f69bd7a5a5f6e7502831fd43b4473": { "jp": { - "updatedAt": "2025-12-29T16:46:15.738Z", + "updatedAt": "2026-01-06T14:17:59.751Z", "postProcessHash": "1f81579ab68c52fe4193004197973e2984b86dd5f4808b58bffc7b245ab84798" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.742Z", + "updatedAt": "2026-01-06T14:17:59.755Z", "postProcessHash": "44cb06e64883ac95e57d39937d514a234779bcd3ecac3d9c89deebc9fc368534" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.746Z", + "updatedAt": "2026-01-06T14:17:59.762Z", "postProcessHash": "04a0d294d14a6c21ae7991c8be22b4097643f033f8841770f8f2b5b900f610f5" } } @@ -30038,15 +30542,15 @@ }, "b13192ee675680e41516d0d1e72d49c31a95acc2474ebf4e536f22731c875474": { "zh": { - "updatedAt": "2025-12-29T16:46:15.582Z", + "updatedAt": "2026-01-06T14:17:59.618Z", "postProcessHash": "a3e2ea40029634312940f3843d28898db18427b98a1006875d076e6381cfac80" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.645Z", + "updatedAt": "2026-01-06T14:17:59.715Z", "postProcessHash": "9d93d16bd006a686b3bb7e885e72897a0fae03b29d4ac6b86f06c3ad610c47c3" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.651Z", + "updatedAt": "2026-01-06T14:17:59.719Z", "postProcessHash": "574157932e119c7d277818268917c8951efbd90c0719bc527a060001ea78d49e" } } @@ -30068,15 +30572,15 @@ }, "8be19c355d2e4355b367f9993266c74d4563058fadf8477ed39db7a86a9bc15c": { "jp": { - "updatedAt": "2025-12-29T16:46:15.624Z", + "updatedAt": "2026-01-06T14:17:59.612Z", "postProcessHash": "03c174bb03cb9ad45bc2fa723dbef76ffcc07dd7c50e5977f1794709b6fcea9c" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.702Z", + "updatedAt": "2026-01-06T14:17:59.704Z", "postProcessHash": "18eb158d078dea721288642f8307d81b59f29cc8addf003a6e82b32822ebc539" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.708Z", + "updatedAt": "2026-01-06T14:17:59.715Z", "postProcessHash": "576551e17530ac7b29a120bb62b48a454feceb265004a3998c02804a09552318" } } @@ -30178,15 +30682,15 @@ }, "33fb6cb94a0847dad8d431543ed9b666470fc4f161aedb7ebb702171cd4ce614": { "ru": { - "updatedAt": "2025-12-29T16:46:15.732Z", + "updatedAt": "2026-01-06T14:17:59.745Z", "postProcessHash": "171f17f574be2f56a2db9debf3d2f42a414a81a00f8a215d3b405f7d70d2a21d" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.789Z", + "updatedAt": "2026-01-06T14:17:59.818Z", "postProcessHash": "e88aec9d557bfd245828a20aa110343468617ede077bfae469932e0758b9a8d1" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.792Z", + "updatedAt": "2026-01-06T14:17:59.823Z", "postProcessHash": "0477d436008ff06716897a85dfecd25036347b0977f6285d984587f6e4559cbb" } } @@ -30302,15 +30806,15 @@ }, "5f2da20edb1c7594e9ba1623f0ba0f63f955881845113fac8e5fd12da06a6691": { "zh": { - "updatedAt": "2025-12-29T16:46:15.694Z", + "updatedAt": "2026-01-06T14:17:59.680Z", "postProcessHash": "2a91ccbe038c5ddd52643865758d9002e46537ab454cbdd81edbc67f3061075f" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.769Z", + "updatedAt": "2026-01-06T14:17:59.795Z", "postProcessHash": "a84e993e019dd75f1e82f7af6577d646c82a7f790185c24ce12c853d4f183103" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.782Z", + "updatedAt": "2026-01-06T14:17:59.807Z", "postProcessHash": "054f0fb8a744125ca72ae36026482a80aa3f0353406f55afad14716cfc3ac38c" } } @@ -30492,15 +30996,15 @@ }, "fc0a4c8d85e0d8a4a73a08c5639262e131d0c89a948bc2195c51cfcf9370ada1": { "ru": { - "updatedAt": "2025-12-29T16:46:15.631Z", + "updatedAt": "2026-01-06T14:17:59.694Z", "postProcessHash": "bf2d3da2ac12679c57e95b8d3ed8d7d4bbb26a97dfaa95e5db6693c5851151dc" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.713Z", + "updatedAt": "2026-01-06T14:17:59.727Z", "postProcessHash": "9db6fb6a935c411778293728c03a6f85ffc4908db5ae20e79d4a448dc0975588" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.735Z", + "updatedAt": "2026-01-06T14:17:59.748Z", "postProcessHash": "6c7d9a24c5112b8ba491b696c1a071a15b7c1385a22c724bc0d3046c53b5a124" } } @@ -30538,15 +31042,15 @@ }, "1e4c3abff31a45175d1d0fd8be67c739b67b47545f4129376f1c54f732bb3293": { "zh": { - "updatedAt": "2025-12-29T16:46:15.694Z", + "updatedAt": "2026-01-06T14:17:59.680Z", "postProcessHash": "fe34e30c98ec1d6595248b76b29165f14dfa04d83e49cfda3ab8b0ab4ff91e8b" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.774Z", + "updatedAt": "2026-01-06T14:17:59.799Z", "postProcessHash": "ff284343952af2949d10482b9a9d14d63d6f15e229d0c8175728117e422d7487" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.788Z", + "updatedAt": "2026-01-06T14:17:59.816Z", "postProcessHash": "518cf454b2e41927e346d000af05b257f3875d3cd63822ea2ccbb4c8eda28c73" } } @@ -30568,15 +31072,15 @@ }, "e67f0e542b0a89e1f9ad995205d97a5aef8a07d080f456ae60b467756047833d": { "zh": { - "updatedAt": "2025-12-29T16:46:15.773Z", + "updatedAt": "2026-01-06T14:17:59.798Z", "postProcessHash": "f779b0aab1a9337ddfbe0fcaae8e3b74f11485a54f245360b87039fb829996e7" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.795Z", + "updatedAt": "2026-01-06T14:17:59.827Z", "postProcessHash": "f0398f395ceff61b3a784242543a9b48f87aae757b5f22297125a59332f05ab9" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.796Z", + "updatedAt": "2026-01-06T14:17:59.828Z", "postProcessHash": "e43d78616ed84a1238fa338d970bcacb822478af98fc4b824e2c35ead101fbec" } } @@ -30614,15 +31118,15 @@ }, "3d9ee984f71f2cc3551d2c32fbf3860a41c2d238f217234f85be8f3b68836a2b": { "ru": { - "updatedAt": "2025-12-29T16:46:15.831Z", + "updatedAt": "2026-01-06T14:17:59.887Z", "postProcessHash": "94b9be499e6ae749ce92b86d1455e092b8e02f5e58182793525c70521b318b2a" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.833Z", + "updatedAt": "2026-01-06T14:17:59.890Z", "postProcessHash": "0032491b8a1013871502ec03ab77aaecb4adc7bc5ded6ff7ff852500c3a5de9f" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.842Z", + "updatedAt": "2026-01-06T14:17:59.904Z", "postProcessHash": "b5ecd3966ccda0d256bf5c408ecf0406a56ea252cf7a370452cf12a185353878" } } @@ -30644,15 +31148,15 @@ }, "bc53ac4eb60a410d5eb19f4aa9e6f77eaeffbbce63710272f19538bebb7fb549": { "ru": { - "updatedAt": "2025-12-29T16:46:15.765Z", + "updatedAt": "2026-01-06T14:17:59.789Z", "postProcessHash": "54953388995c1558b7b06cf27d396ddf17db481cff7828b6f100314c98bd3786" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.775Z", + "updatedAt": "2026-01-06T14:17:59.800Z", "postProcessHash": "26652a506345e113fd26d18cb5efee5a26b404b2fdca0b4ced4b3c4572f40702" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.792Z", + "updatedAt": "2026-01-06T14:17:59.822Z", "postProcessHash": "6304664c5d474540a253640cc1bb98789ee02a8e00635422d82d84cff4761fe6" } } @@ -30674,15 +31178,15 @@ }, "aa72b5dfc8162a1668df86df5f4149527504056f33795713a9b58e575e2b84f1": { "zh": { - "updatedAt": "2025-12-29T16:46:15.787Z", + "updatedAt": "2026-01-06T14:17:59.902Z", "postProcessHash": "232e9db828f30482d6b52d58780cc17e1a382ded9ab3e140d64f112c51a0e901" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.839Z", + "updatedAt": "2026-01-06T14:17:59.898Z", "postProcessHash": "aa9c66477dea5b9b4c414cfad48cd25ff10b6e1ab9496fdc601ba83447749fcb" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.842Z", + "updatedAt": "2026-01-06T14:17:59.904Z", "postProcessHash": "34f9581ae5bcf8653f288b51efbb0cbb789898302a079faa8118b62ac7b267e2" } } @@ -30720,15 +31224,15 @@ }, "cdf335e7b143c9c613a88ad8da4ac25be37e70cda56e99b0984c85527b5def51": { "ru": { - "updatedAt": "2025-12-29T16:46:15.790Z", + "updatedAt": "2026-01-06T14:17:59.819Z", "postProcessHash": "2d3ead0e4533edf049e4ab629a318484b57b0d68e47c8237b771142001e08d03" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.800Z", + "updatedAt": "2026-01-06T14:17:59.835Z", "postProcessHash": "3a9d2fbbb07dca65f6424b36822ea826b5aab0ac8ca60b58df4f2c886e002d27" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.802Z", + "updatedAt": "2026-01-06T14:17:59.837Z", "postProcessHash": "e9c53377d90091f3cf7a5a0ac671e707089203896dfeb82fcd7baa4a1e9b32c0" } } @@ -30766,15 +31270,15 @@ }, "e03c394e545dd71915d651f1028be5358a43b2690328cf43c29794c173e6fb3a": { "jp": { - "updatedAt": "2025-12-29T16:46:15.768Z", + "updatedAt": "2026-01-06T14:17:59.794Z", "postProcessHash": "458fdfb4bb5a3249699bb3d1f326c26c3e1957aab613c5e6fbde7a8b4e306a68" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.793Z", + "updatedAt": "2026-01-06T14:17:59.825Z", "postProcessHash": "babf4ecd07900b1be69e8c132b4061df5679d4b3943c86ae299fdedc84a4f4ca" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.795Z", + "updatedAt": "2026-01-06T14:17:59.827Z", "postProcessHash": "7c4eaea18ae53b5bec1c175a411e0e19fe1f79bcc8c7ba93f9e874ad3848fc21" } } @@ -30908,15 +31412,15 @@ }, "47c1f78bac3c3eeb2b58e77327bfbf89669852b6939fffab56118e709bdac3b1": { "zh": { - "updatedAt": "2025-12-29T16:46:15.725Z", + "updatedAt": "2026-01-06T14:17:59.781Z", "postProcessHash": "5487e44f490cce5f500747d2bfc46047647aa2e509e6a72b7f783d68c5acfd27" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.786Z", + "updatedAt": "2026-01-06T14:17:59.813Z", "postProcessHash": "44848ad577abc5699d677935e6b1e864c3c565e7fdd6227fd8883fba37d0f637" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.801Z", + "updatedAt": "2026-01-06T14:17:59.837Z", "postProcessHash": "3322f2cd224844a277ae36e4420829c429d7bb8972682ea9489c3af5c34e3517" } } @@ -30988,15 +31492,15 @@ "15e69bdeb4774e041a333e57689381522781cd859797d0c321068053bd1ac55d": { "ecfdec0409be257ba876146227e2e778ae5f272c3aa56e2fbc1cacb35dd43ca1": { "jp": { - "updatedAt": "2025-12-29T16:46:15.890Z", + "updatedAt": "2026-01-06T14:17:59.971Z", "postProcessHash": "a03bbca893e0cd2cfc23e79b0acc9ac5a546f066e051ed11f90bd798649de7f2" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.888Z", + "updatedAt": "2026-01-06T14:17:59.968Z", "postProcessHash": "9f88953fe1ed38a999afa011a804613b61b802cbdd32ae9cf648503db667a401" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.891Z", + "updatedAt": "2026-01-06T14:17:59.972Z", "postProcessHash": "17f1486fbf6e93eb0b2487158866cb2b81ecfea2aa032e1434b4397c3dfc0cad" } } @@ -31004,15 +31508,15 @@ "2441b704f1648bc3443c9b054ec8854f3764cbbd77801b8747d10f0c1380e055": { "8946d488f9c46e6c14fad461ca002a664b5a2d6561da01977d53a7c95d31e4bc": { "jp": { - "updatedAt": "2025-12-29T16:46:15.889Z", + "updatedAt": "2026-01-06T14:17:59.970Z", "postProcessHash": "8f62b78e498ed7fe41789cfee52083b63c341e0933f095db32f61576cc4b4f91" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.895Z", + "updatedAt": "2026-01-06T14:17:59.989Z", "postProcessHash": "9119a7762b5f4a7e03e896bca1b587151f478a4ae522671beaf2a24f4369ee0a" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.894Z", + "updatedAt": "2026-01-06T14:17:59.977Z", "postProcessHash": "9bc173d87a8bc3e7b4901bb1609b4997e23f7014d4ee69bf3e734929093b0cb6" } } @@ -31020,15 +31524,15 @@ "253c517a16655bd1af2910bca26a946ec5b5257507a84e5c1083bc68edcbaaae": { "383175d865a3e8e5eeeec2ad520a6706a7fe906490a2365a6c124bbbd35fbaea": { "jp": { - "updatedAt": "2025-12-29T16:46:15.752Z", + "updatedAt": "2026-01-06T14:17:59.854Z", "postProcessHash": "43aea793b5cf8221dcd2f4a8c4cd2d0e5c3e911a6561fb339de954a4b6cddf43" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.752Z", + "updatedAt": "2026-01-06T14:17:59.769Z", "postProcessHash": "e281bec70544a0f39febe4e9f758385e1f2ad8fb9992882e8efa6ee9b07014d2" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.752Z", + "updatedAt": "2026-01-06T14:17:59.769Z", "postProcessHash": "3842d35f7adccd887bcb67fb8f4f4b19752611a82aefe1f6fa0ba0352eb41ead" } } @@ -31036,15 +31540,15 @@ "2c3512a703d975c2b75e7502a141cd8a3e8b086796e9dd5b92d66f1f2a58358c": { "f1c375550607f160ff41977c4e39aad3343f7094f427e196bc55d8e72c22aed3": { "jp": { - "updatedAt": "2025-12-29T16:46:15.822Z", + "updatedAt": "2026-01-06T14:17:59.860Z", "postProcessHash": "d7ad8208511c7aea613680bf796cf42fda0a0b0ed15632825e46aa442b442fe8" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.828Z", + "updatedAt": "2026-01-06T14:17:59.870Z", "postProcessHash": "bf073d8e07ad0da3827549db6b8db6e750a01a12b27ff409b1231c5cad41f944" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.887Z", + "updatedAt": "2026-01-06T14:17:59.968Z", "postProcessHash": "08cd4394425921666998d9d59f134304cbb5aa8acfa8a4d42a9c7bba4a2a7444" } } @@ -31052,15 +31556,15 @@ "371cb4852709d9ca0ffc244925c1336472d7b3607e49eb600409ac2634d29c9d": { "2c08ba9df01012e99f6db6d87ed3274138d3991bb7ef1df26cf943bbe938c83c": { "jp": { - "updatedAt": "2025-12-29T16:46:15.818Z", + "updatedAt": "2026-01-06T14:17:59.850Z", "postProcessHash": "096f16e681336a2ea06af0c13920feaa0259ad024599aced6a5ad48156e973e3" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.825Z", + "updatedAt": "2026-01-06T14:17:59.864Z", "postProcessHash": "8188d4725789c52fd30bb0931460a7c4c15860edab7d7a34df46e771292dd2bd" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.822Z", + "updatedAt": "2026-01-06T14:17:59.860Z", "postProcessHash": "89442a5a1d2c716829a8486224becc217c1e2c21a3f1ab5cb0c6c8f679524152" } } @@ -31068,15 +31572,15 @@ "38065e7c3b022c9edd666529a176fb393cfb28490dd15161ec6ac71c2d9529db": { "35e6467692a1dada24e738d0c85e6530cad77f3c956b13d30d9734eec88985a5": { "jp": { - "updatedAt": "2025-12-29T16:46:15.753Z", + "updatedAt": "2026-01-06T14:17:59.770Z", "postProcessHash": "e5b0a9566318bde340263da9186cb0126efed874aca6d986b671f8e0803ff73f" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.754Z", + "updatedAt": "2026-01-06T14:17:59.772Z", "postProcessHash": "b6c61470e8bced13b70862917e96d49e87acc10cf73b346070221ab105b3a065" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.754Z", + "updatedAt": "2026-01-06T14:17:59.771Z", "postProcessHash": "78036361117d1443c66d679ddfc8746b0c3ccf4bb1dac9fb3a19efcd95dcc27a" } } @@ -31084,15 +31588,15 @@ "3c1dbc013406b1c31a215c47a6b9edb7f3dcaf68974dc2c38989fd26dd392af4": { "54d4adf41787f75b127c52923ea0abbe3e269714267d20e9e3f8f38afabbaf56": { "jp": { - "updatedAt": "2025-12-29T16:46:15.748Z", + "updatedAt": "2026-01-06T14:17:59.766Z", "postProcessHash": "7d15bf1371fa44c6d79c4afc732bf47c58f481c2ab0b4c11e31d24aaddacd9ef" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.803Z", + "updatedAt": "2026-01-06T14:17:59.768Z", "postProcessHash": "be55a85cbbd1c824bcc6c722b07a5053912eed0618093602fe6f47b9dcb919b4" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.804Z", + "updatedAt": "2026-01-06T14:17:59.842Z", "postProcessHash": "e32cd339fffd144ed0bbfea1e68ec0baa7a383d6fe11c423fd31a25cf6d2492b" } } @@ -31100,15 +31604,15 @@ "3d0840c01249868fda2bd1e95b3f042cdf2c618bd34004df654106ee3d7fe77b": { "abd6f88511214360a8b3d4a7acb1e68208916aae6edb5e22025418320d437381": { "jp": { - "updatedAt": "2025-12-29T16:46:15.897Z", + "updatedAt": "2026-01-06T14:17:59.992Z", "postProcessHash": "31cebac9f11beac0ffa4cf1efd9fafe774371f93bc3c3a3bdbb791b548ef301b" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.896Z", + "updatedAt": "2026-01-06T14:17:59.990Z", "postProcessHash": "b59b1b14d5ad449baba48f2763724c1342b59ff52a0557e94f1b805893b4df98" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.892Z", + "updatedAt": "2026-01-06T14:17:59.974Z", "postProcessHash": "1e97054db667488bdbbd70008f42d07c6371efa229074e1c693a2b249502225a" } } @@ -31116,15 +31620,15 @@ "3eb17266fde17cf983c1426830939c4712a727fd7eeca3116f2fe348d7489f01": { "d7d5ceeef5f34571ef1e4827cc0966f80aabd85dc08e22be3a3583aa8cbe8a2f": { "jp": { - "updatedAt": "2025-12-29T16:46:15.829Z", + "updatedAt": "2026-01-06T14:17:59.872Z", "postProcessHash": "c35dbc5e683229e1a9c257c36cecb673cb533f68a7a0bf5d94377b3ab87e0cf6" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.886Z", + "updatedAt": "2026-01-06T14:17:59.873Z", "postProcessHash": "ab21c5d536783771bab280754e2184fa157b7fa5eba452ca8db4c5b9a8ce0e88" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.885Z", + "updatedAt": "2026-01-06T14:17:59.873Z", "postProcessHash": "de5a8ea0b3bf74b71d057faa86148b899b60eb2140987e7cf7f83fee2d403916" } } @@ -31146,15 +31650,15 @@ }, "99a6666b20e44f29d20e6caf29fd7827c4bdfeda81a9415cecc2dc9fe856bef5": { "ru": { - "updatedAt": "2025-12-29T16:46:15.833Z", + "updatedAt": "2026-01-06T14:17:59.889Z", "postProcessHash": "07e35c77300a7587567b3768a93b2b80508ac3b3172859300deeba5a4dd12b04" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.840Z", + "updatedAt": "2026-01-06T14:17:59.901Z", "postProcessHash": "3460172eebfac7162b69c3903b91e9f1326381fe008c5811a18f6b7c13d4548f" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.845Z", + "updatedAt": "2026-01-06T14:17:59.907Z", "postProcessHash": "713800ce67609c718aac750cede164c27b065125460309e3539b04ea0a0b668b" } } @@ -31176,15 +31680,15 @@ }, "ee4bbd9542b7606c5b727c578abeb34ddfba5b9ea8033060d04606a731c5d3ed": { "zh": { - "updatedAt": "2025-12-29T16:46:15.779Z", + "updatedAt": "2026-01-06T14:17:59.803Z", "postProcessHash": "927c64ef28e7d442e4cf6810d3572946fb12285a8c628dfe2b72f6f12cadd9a4" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.798Z", + "updatedAt": "2026-01-06T14:17:59.911Z", "postProcessHash": "bc978dc9351da3944b5308f651f55c0eb93b371b192e63732de923afbd62a9a4" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.799Z", + "updatedAt": "2026-01-06T14:17:59.911Z", "postProcessHash": "e9e9352886849adeca67379c462fa21b6a56b84d2f237e54a5fa1857fd168884" } } @@ -31206,15 +31710,15 @@ }, "ec4c59d4a70afc3a0901d810837a71d181734e377f8b82515698a88f7b6f22af": { "ru": { - "updatedAt": "2025-12-29T16:46:15.721Z", + "updatedAt": "2026-01-06T14:17:59.883Z", "postProcessHash": "db2bfa21d59de4c2636b03920791aed5eeba6d8ae945ba08fc5dd0ca7f7b6149" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.728Z", + "updatedAt": "2026-01-06T14:17:59.886Z", "postProcessHash": "803783cd95e9b6bc3ee85443f88a65d52e4e584b9080027bd8ec1618d4a40627" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.732Z", + "updatedAt": "2026-01-06T14:17:59.888Z", "postProcessHash": "fe25270ff86bb604d107211efcd56e0f8b585fbf891e6e65bf36665f9846e5c9" } } @@ -31268,15 +31772,15 @@ }, "3815e6796eb7fb372f0885d556faaf4b30055a71734a4a3e9578c582fc7bb48b": { "ru": { - "updatedAt": "2025-12-29T16:46:15.838Z", + "updatedAt": "2026-01-06T14:17:59.897Z", "postProcessHash": "72ae60bbbc2d844115c69e86998509b54553b67e34490b0ffd67505d5f73f72c" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.846Z", + "updatedAt": "2026-01-06T14:17:59.910Z", "postProcessHash": "976a73275786fc8fbfd349f29efb606fa496bd455f17fa973944e71dc7c9b50c" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.848Z", + "updatedAt": "2026-01-06T14:17:59.917Z", "postProcessHash": "ff4372cc10e1c1272432e2a42059b753c906103894b856220fc5de260e19441d" } } @@ -31298,15 +31802,15 @@ }, "470e74ab7eebb2579c84308192e572144cefc6bfaa7571de163cd8389510e3b5": { "zh": { - "updatedAt": "2025-12-29T16:46:15.757Z", + "updatedAt": "2026-01-06T14:17:59.878Z", "postProcessHash": "b52c479d536a7caf1c609d26753c63effa5f2669d36c1ea4e9564e13b9e4bfda" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.761Z", + "updatedAt": "2026-01-06T14:17:59.884Z", "postProcessHash": "3829c33661249260b1b3e64b3b20255d1f2a438b8c2c6b18f663c1b93925f52a" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.840Z", + "updatedAt": "2026-01-06T14:17:59.900Z", "postProcessHash": "5812680756bc67c45c89d66536628ce59ab5f497eff8d0ac6cc70f7d312490cd" } } @@ -31376,15 +31880,15 @@ }, "99324c0ab17c50cd5c2f90fde61efc6d3cd226498e3cd48b6608eae14516ec2b": { "jp": { - "updatedAt": "2025-12-29T16:46:15.715Z", + "updatedAt": "2026-01-06T14:17:59.774Z", "postProcessHash": "25bc59c82ef63d21dbaed1f76f8562ff97a12b136b064e4f94535b7d7687bc8a" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.722Z", + "updatedAt": "2026-01-06T14:17:59.779Z", "postProcessHash": "dac820c5967aeda9ada3b5370c112fa4dfdd3a828fb6624c618e913465cdaf0e" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.779Z", + "updatedAt": "2026-01-06T14:17:59.803Z", "postProcessHash": "77bb3815b7fb2617f0b30f30fced3a0adb94633b7b731020a5d8be2aaf4c6a6c" } } @@ -31419,15 +31923,15 @@ "04c615906de14bff138af4cdd85c3c07b4fc5433296761dca010e8ef60f78e93": { "91810a26e7bbbe9ffcd2f092006cc98930eec1fb41bd4802d4297bf1f45413c7": { "jp": { - "updatedAt": "2025-12-29T16:46:15.809Z", + "updatedAt": "2026-01-06T14:17:59.923Z", "postProcessHash": "2a1090308e19f6be11ce6b386ee6ee0823b5f5f9f9b7f535961c5382cb3bee64" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.890Z", + "updatedAt": "2026-01-06T14:17:59.971Z", "postProcessHash": "1134a8c5dc114979dbbaea6953657bff6e21c94ef9ccef6e998dda29d88894f8" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.866Z", + "updatedAt": "2026-01-06T14:17:59.950Z", "postProcessHash": "2b29f96541147fa2dfff41017c4d38d354afa44612ddc93ceb6e2708ace74199" } } @@ -31435,15 +31939,15 @@ "1580309aeb8bf89a02431ce4e3958695fd0114d89488a627aab1a37097044adc": { "a04bc210be5bcbbe776786b33eff75770784c182f110822abfb00ecf17ff032d": { "jp": { - "updatedAt": "2025-12-29T16:46:15.894Z", + "updatedAt": "2026-01-06T14:17:59.976Z", "postProcessHash": "3752c7865eb0b53f55216ed4cb69725772774425e14db91467d5ed492d28dcd6" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.825Z", + "updatedAt": "2026-01-06T14:17:59.864Z", "postProcessHash": "b6c4aa915e125d3abeade6a8b010ea7bb778a9c888dd1e33719cc5af04f43261" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.888Z", + "updatedAt": "2026-01-06T14:17:59.969Z", "postProcessHash": "7ebfaf32045ba4aa2a7ee03731f510b1c3d201fc6ae2e8fad44b1d6fe6309894" } } @@ -31451,15 +31955,15 @@ "176150c0e3d077975a3bf364d1abf67e535d6c7aead2f176b61c34aca79abd59": { "844838ff96f065aabb06386cc366cf66f183135f983db2d969bbf61b47c89398": { "jp": { - "updatedAt": "2025-12-29T16:46:15.816Z", + "updatedAt": "2026-01-06T14:17:59.942Z", "postProcessHash": "dfcc5498de6dfeaa3915e95305314aa56a44319eea291164fafe7245448c0483" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.808Z", + "updatedAt": "2026-01-06T14:17:59.922Z", "postProcessHash": "2050ed279294a928e89ec453a5a806ac606956edf78c6447eb82b207b3304026" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.806Z", + "updatedAt": "2026-01-06T14:17:59.844Z", "postProcessHash": "a45b55eaeb7a3f687962780cde27f9a04639513386923b7e5473528fbc03a14c" } } @@ -31467,15 +31971,15 @@ "1a55a8d8cd9d21c74eaa692dca8aac6491f16ba3aee28f43616128e2d9ef200b": { "da55650acb4be1e891fe2ae5f1756740a01821cd992f3a8ca4695951fa27e52c": { "jp": { - "updatedAt": "2025-12-29T16:46:15.819Z", + "updatedAt": "2026-01-06T14:17:59.948Z", "postProcessHash": "effc9bead930e7bb1eca17e01c80d50d3453906cfd5e3be62a1b08c579a95917" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.816Z", + "updatedAt": "2026-01-06T14:17:59.935Z", "postProcessHash": "54f13f1f3e6e9c0a48f2f0ecf2662c95fb214782fa0239f41fb2952c33561624" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.823Z", + "updatedAt": "2026-01-06T14:17:59.962Z", "postProcessHash": "28f1708a9b997a6253c73986620664075db4700929e26a80df9ecb8615007307" } } @@ -31497,15 +32001,15 @@ }, "3c69df1ec9c54c069fdeaaf96176df77e87fe8471ed1824848cb4d4e4df9f41f": { "jp": { - "updatedAt": "2025-12-29T16:46:15.909Z", + "updatedAt": "2026-01-06T14:18:00.034Z", "postProcessHash": "e90ccdaf2fbc628198ece82af0a187cb8bdec9b2cd44e5c3e15fef1cae760c9d" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.909Z", + "updatedAt": "2026-01-06T14:18:00.035Z", "postProcessHash": "e44b260dc03a53fc3dcf2bcf2ccf70b58a99cf1b4eb75f1857001cc4bff06560" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.910Z", + "updatedAt": "2026-01-06T14:18:00.037Z", "postProcessHash": "68ed4e17606a6c9e0a4186eda5c74e783696782ff1d04add81870a16b3d6599a" } } @@ -31513,15 +32017,15 @@ "2365f342aa73537207eea12c5ea5e59b84982495f018fb65d762d8ced77d7432": { "303a2bb1adcbfc7e719c1aac71a6de6454f8a1ba771cf607483f97b277db1bd4": { "jp": { - "updatedAt": "2025-12-29T16:46:15.809Z", + "updatedAt": "2026-01-06T14:17:59.923Z", "postProcessHash": "e9a3954d8156e504747867473f52e9ca2dc923c827454def4fb1fa39a3e5b168" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.806Z", + "updatedAt": "2026-01-06T14:17:59.845Z", "postProcessHash": "66ca2d64baada5fb5cafa50a8a82d0b85a451c114aff8e0e505706aaa69ac23e" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.874Z", + "updatedAt": "2026-01-06T14:17:59.958Z", "postProcessHash": "e81685ad9f2005b647782af40003aeabd47d1b81ea164c60347218ebe4b10658" } } @@ -31529,15 +32033,15 @@ "361b5b1d32de2ebb3e52e8460adeb4b22ec4bc8ca04ceb0e717fedc703a31195": { "10b62158d3216eb8065dd2ff7515e8754275c4c7f5c6d4eed8d2ede3b37286ee": { "zh": { - "updatedAt": "2025-12-29T16:46:15.882Z", + "updatedAt": "2026-01-06T14:17:59.963Z", "postProcessHash": "fe900655753786a3a0d902190a6be99d7440c15457c2cc4fe433d10949a5e91e" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.883Z", + "updatedAt": "2026-01-06T14:17:59.965Z", "postProcessHash": "496fa09f02ad3da8a333dc3893f27f8d3d9838642b9480d06d34b14fbc9d571d" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.883Z", + "updatedAt": "2026-01-06T14:17:59.964Z", "postProcessHash": "1b0de458cca4e068b80eed57fd7f266b83f934891e3ba70f6f1067ecff5878ce" } } @@ -31545,15 +32049,15 @@ "3e3f9cdd02598c16b281b93fb32c30b1be85298c6b705aa31bfbce0e5880e103": { "e9242354e112109aceb1f980cb5bd9997a81807b4b2b9ad51d2e395d6925d743": { "jp": { - "updatedAt": "2025-12-29T16:46:15.802Z", + "updatedAt": "2026-01-06T14:17:59.840Z", "postProcessHash": "a1e6c645176e39da205781de5e5b82e52700f81cc95963109308d15b29ecfee7" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.872Z", + "updatedAt": "2026-01-06T14:17:59.957Z", "postProcessHash": "169481fca9e352f90c0c1212e90690e9a4b701b8b33a9f6bee037d757e46fac6" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.871Z", + "updatedAt": "2026-01-06T14:17:59.955Z", "postProcessHash": "f19650aebbae837c804d88a04fb43ab808e27170f9d660ecd2ba408ab2db1170" } } @@ -31575,15 +32079,15 @@ }, "32785de3bff088ba7874c26e0d20726ae9cde1b9df14a15db8158e2a61c3fa12": { "jp": { - "updatedAt": "2025-12-29T16:46:15.899Z", + "updatedAt": "2026-01-06T14:17:59.997Z", "postProcessHash": "9db081504500ca082934daddea75333b167db9cc22a373705e21e51c7a35e8d9" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.900Z", + "updatedAt": "2026-01-06T14:17:59.998Z", "postProcessHash": "f917d70082f108803a2e2869eb9278c8891d386bbe9bee82b3ecffde5edaa212" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.901Z", + "updatedAt": "2026-01-06T14:17:59.999Z", "postProcessHash": "f02cfe907587711c1a400d49c47314799d9a378373f63dbbad292d1d58eb2c43" } } @@ -31591,15 +32095,15 @@ "49e360371f0bc0d697298f4470438952e521fabefd1b9e98218955be3cdbbcc0": { "974e376db0d1f6bc3a3c2778b18c785b8cbb420855a07c1b3d0cfb100fdf6562": { "jp": { - "updatedAt": "2025-12-29T16:46:15.812Z", + "updatedAt": "2026-01-06T14:17:59.927Z", "postProcessHash": "7a8fca3087fb12294ffae6bd5f755bbfd4859fba68d88f67ae8475906a11a345" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.867Z", + "updatedAt": "2026-01-06T14:17:59.951Z", "postProcessHash": "fdeb776de39e39edd8ee304e483c358eb4ab48a7fb4f81d2adecf6593f83a217" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.812Z", + "updatedAt": "2026-01-06T14:17:59.927Z", "postProcessHash": "84fceb0d3971f255f49edfdba3398df1ccc4bf29049df35cd7945e3a030caf5f" } } @@ -31607,15 +32111,15 @@ "58cd3f4391882ce670046b8d82826c3c127fcee3b6aa2afc15ff717cd3d10d71": { "5015c123581af2b4d332b12ea65e8e6ccfdf0a8a5c76d9fab3a9a30aedfe8767": { "jp": { - "updatedAt": "2025-12-29T16:46:15.827Z", + "updatedAt": "2026-01-06T14:17:59.869Z", "postProcessHash": "8bd574c9ef7deebca4b7ab1821ec7278427aefb75f47068a30dbbc3134ff4bf6" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.829Z", + "updatedAt": "2026-01-06T14:17:59.871Z", "postProcessHash": "97c8f03440aae761b3ba00d1ecd4cbfc5cb5f9b7593c69252fa595dbee01ae11" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.824Z", + "updatedAt": "2026-01-06T14:17:59.862Z", "postProcessHash": "932abb07d594494ecacd915de1d9c4fb79871976556b0029797bfece1ac15346" } } @@ -31653,15 +32157,15 @@ }, "8720e1e02c9c0a5cc72437f52a0bd97076431d01a4ec3031c1ea6f5c92d95c18": { "zh": { - "updatedAt": "2025-12-29T16:46:15.851Z", + "updatedAt": "2026-01-06T14:18:00.003Z", "postProcessHash": "7c296db751ed5ece6c01414ea0470b9a59bbca5745e6656a1ee89b6c86eb1485" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.905Z", + "updatedAt": "2026-01-06T14:18:00.009Z", "postProcessHash": "912558a6db0d25827859904205748f15d4d9b5bfcefb506df313340780fe03ae" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.852Z", + "updatedAt": "2026-01-06T14:18:00.016Z", "postProcessHash": "91b23d20fa7d03c6da8367988f3fefec990e28066671564e1a964b49775b1438" } } @@ -31683,15 +32187,15 @@ }, "4a937e11a15d630832e57cfeac80dd7673539ce179629a732766b38badcdd3c1": { "jp": { - "updatedAt": "2025-12-29T16:46:15.903Z", + "updatedAt": "2026-01-06T14:18:00.001Z", "postProcessHash": "7f641a03d4ff41c784cbb3e701b799cede8e580bc7f6f009048db703c2f3d3b0" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.904Z", + "updatedAt": "2026-01-06T14:18:00.002Z", "postProcessHash": "708a65db34a0debd9ac37ba2dab19b5faffca6672568f0ced6c40fac2b8a5f8f" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.904Z", + "updatedAt": "2026-01-06T14:18:00.003Z", "postProcessHash": "1db517b668d87a4caf78a312ea9d3218a5682305d4536413a691f65cf4cdfcbe" } } @@ -31699,15 +32203,15 @@ "978146b52bf1385e45bd326ef044217c2dcdc8bb47040c12f8ac16274fa8addc": { "229b20a3b9f2e01d63cbf0aa22d459b44b4535cff9593d53b6edbfdd28847fdf": { "jp": { - "updatedAt": "2025-12-29T16:46:15.817Z", + "updatedAt": "2026-01-06T14:17:59.849Z", "postProcessHash": "b9ca39067947cef786dbd137409b88594b9d2f32977f4f40ffa8b59aa773fb6c" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.819Z", + "updatedAt": "2026-01-06T14:17:59.853Z", "postProcessHash": "bc00c70892679b9adc8a4223dcab7537a42c1bcde9b98bbad7e5de779a3b1d93" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.823Z", + "updatedAt": "2026-01-06T14:17:59.861Z", "postProcessHash": "7ac8c3f71c8511ad69ef17a67ed998ee9d4fab1d190947413c40a9fe7bf707b2" } } @@ -31731,15 +32235,15 @@ "bbc79010b259fcfbd187a6891a0f4fb7b780904c181f0266b6753f4d179bbd0b": { "9124cca07daf9271adc7984d01efad4c1a6d47441c45c6be540d3204e5502916": { "jp": { - "updatedAt": "2025-12-29T16:46:15.750Z", + "updatedAt": "2026-01-06T14:17:59.848Z", "postProcessHash": "87704c635095c368e5f89e5ed060240042cc2c41f3b91d595e2f10de09f53111" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.751Z", + "updatedAt": "2026-01-06T14:17:59.851Z", "postProcessHash": "234b7328cc115ab404dd2808d118530081f93e0319a6d00f93a54177e379a11a" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.748Z", + "updatedAt": "2026-01-06T14:17:59.767Z", "postProcessHash": "0ec7cdac4c09347144587a641e279b7facccbc0f3654b68637b003460c370984" } } @@ -31747,15 +32251,15 @@ "c04de4891f93a0ba91486fc9aaf76205c21818b034acf58a753695af7332b3ac": { "783554b75229a238156945270a3356288601a5016510ae7113ea4d4f746a89d9": { "jp": { - "updatedAt": "2025-12-29T16:46:15.892Z", + "updatedAt": "2026-01-06T14:17:59.974Z", "postProcessHash": "32043e15d00a4300bb37977e199d7ca3d5f637da13d6de9d95bc4bec3579e347" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.804Z", + "updatedAt": "2026-01-06T14:17:59.841Z", "postProcessHash": "eccc6675486c6da863129b95b0828a39beb61bce814751b1d449c8f7acfb7f9b" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.893Z", + "updatedAt": "2026-01-06T14:17:59.975Z", "postProcessHash": "0928567d5c1e5356bd7b0d0e3068bb8cc53b42f12202862bec62273b165e9c58" } } @@ -31779,15 +32283,15 @@ "c9f381cce8333661e63bd1e01d8c4f1774748ca4686351ffff148b88e9e703cb": { "e4a9139614a7f11d3b10e77e31631df6b358e364a358b51b7e9d35e161a62d0c": { "jp": { - "updatedAt": "2025-12-29T16:46:15.821Z", + "updatedAt": "2026-01-06T14:17:59.857Z", "postProcessHash": "705053e27bd76029ee3cda704e216687410dd156f266f6392976505d2c80e060" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.826Z", + "updatedAt": "2026-01-06T14:17:59.866Z", "postProcessHash": "00480164cf4bd4f91ff5f2ac9ee361f4a789e31c01e5b035358be468525c509a" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.820Z", + "updatedAt": "2026-01-06T14:17:59.855Z", "postProcessHash": "87449791129ef10364b3c39e8b80392b1834f45c3c2cf456f739f33de0fbc29c" } } @@ -31795,15 +32299,15 @@ "decba6568d82bbae43bf10ae33288e0bb54460fab2d76fb910a5037c036d8b31": { "b3961ee327c6fafcf4999b1abd14b74444d3905528c75bc8bb8c2bfbefbe9765": { "jp": { - "updatedAt": "2025-12-29T16:46:15.750Z", + "updatedAt": "2026-01-06T14:17:59.767Z", "postProcessHash": "8ca57091aeb944193c91aec088d9b72009caafa29b96d4ea385a375d7f96cd2f" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.821Z", + "updatedAt": "2026-01-06T14:17:59.859Z", "postProcessHash": "9239d03284dfc27647b5182fc083c43ec90423b9e967e9542c487d96a8d7b2d1" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.820Z", + "updatedAt": "2026-01-06T14:17:59.856Z", "postProcessHash": "0ee8e82715a4b02b696033e738e4577e6d4fa96011ebd7d3717e528031a29a40" } } @@ -31811,15 +32315,15 @@ "f8499afd2bca127eb328fcbbb1d86926a4b6ed99899c57bf912940e11e81fa53": { "57d37a6031f92bd82e315b49237fe134b84352ea376fc2fb6ae7f50d8a63cb03": { "jp": { - "updatedAt": "2025-12-29T16:46:15.756Z", + "updatedAt": "2026-01-06T14:17:59.874Z", "postProcessHash": "6493b503e9c7d7db7ae546ad8b9518ab546c59c1fbccec074965e8e2ee3c17b3" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.756Z", + "updatedAt": "2026-01-06T14:17:59.876Z", "postProcessHash": "061a487b8433820dc5e9e0fb286d96cf7c73c5af12c6f8017455431a0ef8d63a" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.755Z", + "updatedAt": "2026-01-06T14:17:59.773Z", "postProcessHash": "81357eb326959a9abe7459c72e3455dd2aea4cd21fe7de5fc8ec2cc7829c0c36" } } @@ -31827,15 +32331,15 @@ "00801f2886d2097d3f3fd23c2495271df83abfb95d59a9c9a2b4a905b8ec2d19": { "20cf324bd963db14b9a1a4346dec4811329f6ebe733b3eeeaba7616399e4d20d": { "jp": { - "updatedAt": "2025-12-29T16:46:15.948Z", + "updatedAt": "2026-01-06T14:18:00.134Z", "postProcessHash": "0c63b5c5f2799321d5ff7b2ba8790d44b1826017582cdb33b50e4a16ea80a57e" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.947Z", + "updatedAt": "2026-01-06T14:18:00.133Z", "postProcessHash": "a1bd4c46bc5a1618eb410bc13c723fb42d30de79ae0ef4f82393c7c6fba14739" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.960Z", + "updatedAt": "2026-01-06T14:18:00.154Z", "postProcessHash": "780187fa70d4f277cc1c4d2ef3fff266c7552c3d4855eee710b873377b85b39b" } } @@ -31843,15 +32347,15 @@ "0d7f085589a701521498ae4f2032eff79402e3efaae1bf069e42f610cc1714dc": { "65b6c024a83d6653e55cb1503b9816b66a3ad761b629019961fe3f8f698afb45": { "jp": { - "updatedAt": "2025-12-29T16:46:15.862Z", + "updatedAt": "2026-01-06T14:17:59.941Z", "postProcessHash": "cdc7cd4b6ec4dbc9ee6185c15fcded5ef93e26b7103eb330a278bbcbab74b21a" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.866Z", + "updatedAt": "2026-01-06T14:17:59.949Z", "postProcessHash": "f43070632472ba49b38dc89f947add96ca933bdaede54ad1d7f258e06a82115f" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.944Z", + "updatedAt": "2026-01-06T14:18:00.128Z", "postProcessHash": "212fb0c4f57097656f6b239e1b0f6afe7e70e3fa56f20d6e48f158f2657779ed" } } @@ -31859,15 +32363,15 @@ "1b24b02c3b8b44ef65014e1185ac74c302c13f1cd510990f907cbfb6af75565c": { "153f09d0dc6e1710e949f8df69bcf6dddffcd2f29e7b48e271192abe56431443": { "ru": { - "updatedAt": "2025-12-29T16:46:15.869Z", + "updatedAt": "2026-01-06T14:18:00.115Z", "postProcessHash": "bbb65618b78009fc62eec1238d14cc907afa2e8ba85e015b7690a17e2d53f03f" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.865Z", + "updatedAt": "2026-01-06T14:17:59.949Z", "postProcessHash": "75543c2f6ca499eaa7b068a9ac524ba93e4b9aa63c1af6080ded4d7b17c289bf" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.876Z", + "updatedAt": "2026-01-06T14:18:00.118Z", "postProcessHash": "548724a7936970faf6f84f22e6e4fd12f4d08690871ddffd5cb2076225b4f092" } } @@ -31875,15 +32379,15 @@ "1d3ae6305b61a5daa4272a2fdf5bc89befcde6b3c3cd8ac506e835ebca98d2ce": { "7cfed78448288b1e3ce81098eb348b43d832571045d5f68b5c05727141c3c15b": { "jp": { - "updatedAt": "2025-12-29T16:46:15.962Z", + "updatedAt": "2026-01-06T14:18:00.156Z", "postProcessHash": "5eaaf685c1abf0b55e265522137336990ed604fcd18ab565b586ccaa54989fd5" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.961Z", + "updatedAt": "2026-01-06T14:18:00.154Z", "postProcessHash": "3f9340bb97ac34051e9264d42ad5fb8eba438a95cb6d61f729e7ab0a36824184" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.962Z", + "updatedAt": "2026-01-06T14:18:00.155Z", "postProcessHash": "fdf572967c88881137461421116314be4459cb9aa2fbd73d86d5ce7e79a1e1e9" } } @@ -31905,15 +32409,15 @@ }, "b2d2aa82ba28dad27ecc5169982ab716fc36be7d862e5595ffb1da96f474cda1": { "jp": { - "updatedAt": "2025-12-29T16:46:15.964Z", + "updatedAt": "2026-01-06T14:18:00.158Z", "postProcessHash": "98ffc24fbd6dd15b18ff7989852d41cc7ddb1800cf63280a4f47bcf7c1012515" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.965Z", + "updatedAt": "2026-01-06T14:18:00.159Z", "postProcessHash": "b8447d6f64f68b57f270d8a172a3f3b9bf0a3b297095b66290f175a940714fd8" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.966Z", + "updatedAt": "2026-01-06T14:18:00.160Z", "postProcessHash": "09fcca93398de594358fc2d7574028155519a0b08f625d6853e7faca84c65800" } } @@ -31921,15 +32425,15 @@ "2dbf7fe23f006182359a9db8a0997fc25605a170bbf502414f10a4d0445f3741": { "a3d059702798e7975e6104e13702831f09dab10cf354c44b13f40788c8b697a6": { "jp": { - "updatedAt": "2025-12-29T16:46:15.943Z", + "updatedAt": "2026-01-06T14:18:00.126Z", "postProcessHash": "21e4b25901ffd5be77b4ab569d2602b4ddbbef84b0f88352518ae9baf5ae398b" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.955Z", + "updatedAt": "2026-01-06T14:18:00.140Z", "postProcessHash": "823900b1283282d4b5275f6f9b9c553f331ca881d4a04df6dbda5dc41f6ceb98" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.957Z", + "updatedAt": "2026-01-06T14:18:00.143Z", "postProcessHash": "48dc628dc2677794e6a054092ba912cae0653f3546c52bc480b64b7443ee9f8d" } } @@ -31937,15 +32441,15 @@ "36a66d817a53f3419052a70bb1815a864c606b97c1626029b4822b58ad82c762": { "3d820438e1d508017cfc5d486b3974a03a6f0475286a479dfda2cf575d825e99": { "jp": { - "updatedAt": "2025-12-29T16:46:15.880Z", + "updatedAt": "2026-01-06T14:18:00.126Z", "postProcessHash": "bd1812d203e1172f55a4e7c3077c260cf66bcd4de648363321b21b6ced7eaf9c" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.879Z", + "updatedAt": "2026-01-06T14:18:00.124Z", "postProcessHash": "04cfd59b8aa4ea2b351947cc409e0ed5592714b93559f88727e31871f274eff4" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.881Z", + "updatedAt": "2026-01-06T14:18:00.133Z", "postProcessHash": "084cad5340868e39d05fab1ce8d073367dc8092b3785ce2f084ab01176e23876" } } @@ -31995,15 +32499,15 @@ }, "7c5e7f94f07488009d53adf16ece0ee1fef320fa662628172a65e39ac85ad65b": { "zh": { - "updatedAt": "2025-12-29T16:46:15.966Z", + "updatedAt": "2026-01-06T14:18:00.161Z", "postProcessHash": "d0803a04a30c665126dff69d31e195f6b93d3dedcf02dbfbcfee111d3e9a5dc5" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.967Z", + "updatedAt": "2026-01-06T14:18:00.162Z", "postProcessHash": "95424e8843c33d021bd474f8d8dff0d8801094530926211ce30c0a299cacf661" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.968Z", + "updatedAt": "2026-01-06T14:18:00.163Z", "postProcessHash": "0b5d19d2442b2a147ee5178940d2e7e7c60397e27d2c903e7616981e3a7d3743" } } @@ -32011,15 +32515,15 @@ "43e8a84fbf33b51194a80d037248d79de4e1436f50520586eff76e3d3f2af304": { "f19d15b264b03da92de17398ccc6c09d43af2b4d24b0b7c5e1a05393cd4b3fa6": { "jp": { - "updatedAt": "2025-12-29T16:46:15.956Z", + "updatedAt": "2026-01-06T14:18:00.142Z", "postProcessHash": "16a5d961a77bfaf265b5e159fdf353c7f22f4392f89aeba8f9d278264a803589" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.960Z", + "updatedAt": "2026-01-06T14:18:00.152Z", "postProcessHash": "9471ef173dd3ff2b5f952ade4b17e426a661e6de83053478041421cd2d6e247c" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.953Z", + "updatedAt": "2026-01-06T14:18:00.139Z", "postProcessHash": "75cfffcf59926e99e005b1f1ce2f84b29aa2df6fc4871b708f3fa1da7d488345" } } @@ -32027,15 +32531,15 @@ "519d5b1a64a00744511c1f3e47df4f483237ba323bcad90f4c2eca4ce9a37794": { "f9c93f24237acc26028d821a685b28dcc71dc3b5ef28ed3f611cd0074fd7d695": { "jp": { - "updatedAt": "2025-12-29T16:46:15.897Z", + "updatedAt": "2026-01-06T14:17:59.993Z", "postProcessHash": "b8a73a50f0be9b04552097c496626087e4371b6f0b1f16681756b5b1440ff4c8" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.811Z", + "updatedAt": "2026-01-06T14:17:59.846Z", "postProcessHash": "88d237d75338bca796af5bc25eae4aaeb01972e128716c84937e8c0f74229fa6" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.826Z", + "updatedAt": "2026-01-06T14:17:59.865Z", "postProcessHash": "c05c410292f01a34a5fbffe08f1118bfcc5dda9d162c4441c0017e405067b72d" } } @@ -32043,15 +32547,15 @@ "595165a4c673965a825c2516944ed6da341d1802ba4af0d1f8e1442aba248fa8": { "8396ae84019ca44433161f57c91a29f40404e3a589100e8cca8e8000206607f9": { "jp": { - "updatedAt": "2025-12-29T16:46:15.870Z", + "updatedAt": "2026-01-06T14:17:59.953Z", "postProcessHash": "03a3154ba4f99d31775c62de341551a0904a15612a5e106ecd610731c6c89b68" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.810Z", + "updatedAt": "2026-01-06T14:17:59.924Z", "postProcessHash": "a7301fc43a16530f9c0772c315c12c3631b968b71e3ca09e3fb2bd633d9a43a3" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.811Z", + "updatedAt": "2026-01-06T14:17:59.926Z", "postProcessHash": "9b8d80857be18ce53140734003199f2c285f1ee4de1f4cbb828a0cefce47b3a0" } } @@ -32059,15 +32563,15 @@ "7e455500c000c9cf2e608bee5ea8ceda40748f754e86eb2dfa6fb808fff46087": { "bad6198b79924e96476294bbd990cd527edc29dacccf3bc3408a2a70258e5f0b": { "jp": { - "updatedAt": "2025-12-29T16:46:15.884Z", + "updatedAt": "2026-01-06T14:17:59.966Z", "postProcessHash": "7536119e8bb960242d159afb7e219109e33183f9b24941c9db2f6f6d1769adda" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.885Z", + "updatedAt": "2026-01-06T14:17:59.967Z", "postProcessHash": "7788b3d1d48180baf7b8b1a6b2fde46f49dbf5a562ea3fd92cae27f28f88678b" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.884Z", + "updatedAt": "2026-01-06T14:17:59.966Z", "postProcessHash": "25a825feaec0d17c57564ff96ca6b2cd00227601feb528b6fbb90954f8af8adf" } } @@ -32075,15 +32579,15 @@ "976d169b47215323ef4cab38c850345f280e34b651c35ee7a506d07e901ec587": { "91662735bc3f121c2f531adc960066dfb766691e7210f186029e52bc32f80b4a": { "jp": { - "updatedAt": "2025-12-29T16:46:15.868Z", + "updatedAt": "2026-01-06T14:17:59.952Z", "postProcessHash": "25bf6c4210e412fe0dc57e35bd4d77f2104703c3fc971bb9e0027b363e6ec3a1" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.871Z", + "updatedAt": "2026-01-06T14:17:59.954Z", "postProcessHash": "15731bf08b4141dc85d2d9382827760110448ff2a5a2b6e3337ebf6d606e86b5" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.877Z", + "updatedAt": "2026-01-06T14:17:59.959Z", "postProcessHash": "1a313c2f807ceb551d36fb9f6f8a2da70ef9522d668db3f6808a80eb8e3c4dee" } } @@ -32091,15 +32595,15 @@ "a2d877584716bec8ddf5f64a0ba5fd7a0a6b67f9077bed82dda87ee72bfffb8c": { "8d6d45dafb5a931c179b3f202896d1e34592ec42eecee9e2f9c96e83bc4cc999": { "jp": { - "updatedAt": "2025-12-29T16:46:15.805Z", + "updatedAt": "2026-01-06T14:17:59.843Z", "postProcessHash": "a32793d4eea3360f48735b4612d722d02736736585c6d8b41d1ce74baf47a00d" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.827Z", + "updatedAt": "2026-01-06T14:17:59.868Z", "postProcessHash": "1cb74d207933722f3157bdaabf9065bac95bfe70f2a3d739f8dc62aed3b0d099" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.825Z", + "updatedAt": "2026-01-06T14:17:59.863Z", "postProcessHash": "c4426392275cc604ed30617bcfa06d035f9787d3c9dd8bbffa9e730192879fff" } } @@ -32107,15 +32611,15 @@ "a5c7b243af8ea45f4cac1779bcbf974f63ad2778759dea05635eca542de84b9b": { "d7c29ef5219d22555b84953c119240e3967ba43e9caba2c80886d14046eb7fc2": { "jp": { - "updatedAt": "2025-12-29T16:46:15.807Z", + "updatedAt": "2026-01-06T14:17:59.845Z", "postProcessHash": "9e8b61081dfefe4cf26f5af9fe7ccea595ca71de37b9f717eb56a4467986fdb9" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.813Z", + "updatedAt": "2026-01-06T14:17:59.929Z", "postProcessHash": "baa386238c29cedac978290e6bf3e1b4fb39b7120ae275651fa513cba1782775" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.814Z", + "updatedAt": "2026-01-06T14:17:59.929Z", "postProcessHash": "67385a38c74c6206e6d6497e2ce040344e9f75d1af9135a37a172bf28cc0e9a6" } } @@ -32123,15 +32627,15 @@ "d20916d14ade0ee04f39675be5d395d4a057b6b2238ab20a85bf425d1e48c431": { "1ba41582c1e8ebc8a0609ed6a4c503280d425de63584ec900b123ce79c518b7b": { "jp": { - "updatedAt": "2025-12-29T16:46:15.822Z", + "updatedAt": "2026-01-06T14:17:59.961Z", "postProcessHash": "b37bbf8f70d4ff381bc44de27f923cda8afd8932af6ab0ccdf56f247e157dbc3" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.749Z", + "updatedAt": "2026-01-06T14:17:59.838Z", "postProcessHash": "ef09090d0b1da406f30f2d2ef88e5500baa3004a3fd50e8c52cdca750ea19497" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.749Z", + "updatedAt": "2026-01-06T14:17:59.839Z", "postProcessHash": "47578b12eab28e0038d122bb7cc16afb06ce4397f5509efb013a7ac9e72ca880" } } @@ -32139,15 +32643,15 @@ "e4ba3f71170ffd976d7ad1047d155c73155719b1d252f0fe0608a02ffa3d64ca": { "a6ee74f4a5fa3c471abd0d72cdd9151b4614ba229d109564ac3a2e5c5454bd4e": { "jp": { - "updatedAt": "2025-12-29T16:46:15.813Z", + "updatedAt": "2026-01-06T14:17:59.928Z", "postProcessHash": "8fdeac88a355bc5e9c999c4759031a94714f86fb830be308b4a7df95b8d9281b" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.810Z", + "updatedAt": "2026-01-06T14:17:59.925Z", "postProcessHash": "0878fa62cad5719c555c5ad67562e732776ba2e3f9623709b80a866a17f43cad" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.887Z", + "updatedAt": "2026-01-06T14:17:59.967Z", "postProcessHash": "1513b2feeb6b3569185823c04eb51218b668e9bd67efee9e911db33dbb61fd87" } } @@ -32155,15 +32659,15 @@ "e7b858b48d1c9c70d32c523d9dc6357d0917ee69b16fa5c6a88fd2a2cfac0098": { "092cf9506a86a0643021a3bc1abcb0426387f5124df02aa60181da49a76114c0": { "jp": { - "updatedAt": "2025-12-29T16:46:15.808Z", + "updatedAt": "2026-01-06T14:17:59.921Z", "postProcessHash": "057de8c114d5e2565d5aac3f8a2a3c6d16b8b36d2acef7ae318230128fac4672" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.807Z", + "updatedAt": "2026-01-06T14:17:59.920Z", "postProcessHash": "2558bb03e6acb28ab9102c68ca64a8ac5d03b4074c251bc3d01fb09c84f7381c" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.814Z", + "updatedAt": "2026-01-06T14:17:59.930Z", "postProcessHash": "18ec758d2e81d37396b0f0cc297d00993aef43e8131e3ffd74d69ffe25f04ad3" } } @@ -32185,15 +32689,15 @@ }, "662e45c9473426d729d41ba14b84b19981e128c0928852e9bfd5719a1ca5d925": { "jp": { - "updatedAt": "2025-12-29T16:46:15.898Z", + "updatedAt": "2026-01-06T14:17:59.994Z", "postProcessHash": "b8b007fbd29041940d35fcd578af892d7ed835cc446dee55b6b636ed1f21cd3d" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.898Z", + "updatedAt": "2026-01-06T14:17:59.995Z", "postProcessHash": "7c8211e9a80a10317512ac135a540c2d9e4f449b1a12891aad56149fb5c79182" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.899Z", + "updatedAt": "2026-01-06T14:17:59.996Z", "postProcessHash": "5dbc580d237d8905c20e3e086d899be70f79dffa2dc68bcfa199ba90c4ac6510" } } @@ -32201,15 +32705,15 @@ "ecc50ef743da07587f50e2e433c891d853c4145a43e14073bee65beca199ca9d": { "e3d9d895a670833c385d032550d1d2f2e8ecc66328713f84bde5f6eb645a9a70": { "jp": { - "updatedAt": "2025-12-29T16:46:15.818Z", + "updatedAt": "2026-01-06T14:17:59.851Z", "postProcessHash": "1adb60c10964e84cb9fa5aa44cfb4dcf46127eb0847f2c4e320c36ed4f8a3d3d" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.817Z", + "updatedAt": "2026-01-06T14:17:59.850Z", "postProcessHash": "f6aef821614e275d5b699a1113412f5ae0ebd1936d79e8141ef849bc916ffc2b" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.818Z", + "updatedAt": "2026-01-06T14:17:59.852Z", "postProcessHash": "9c7efdd2a2cb429c34cf4f497e453d024463dde894387383ddc87ddaf6af140b" } } @@ -32217,15 +32721,15 @@ "f811cef1e60d3d76b1890136803c78a8a4f1f5c0702d5e269d8ea318cf5bc7b7": { "8ed2a0a54a6b4cc5249d9184642124cf15bfe670fcebd8151de225c2a95e77c4": { "jp": { - "updatedAt": "2025-12-29T16:46:15.823Z", + "updatedAt": "2026-01-06T14:17:59.862Z", "postProcessHash": "07a969b74918842b9b40ad5f0930842ca3fd27f46d7038b22ef57217837cb43f" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.808Z", + "updatedAt": "2026-01-06T14:17:59.846Z", "postProcessHash": "ea1434f7d0b25aa9966cdac1ce8a014d401fdfb9dbfdef2db4615d3fedfb0eb7" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.815Z", + "updatedAt": "2026-01-06T14:17:59.847Z", "postProcessHash": "824bdc47e1b47312f42b4b7db63ea42e2d16476d86739675fa4fb0be18116a2a" } } @@ -32233,15 +32737,15 @@ "037cf7beb5f9d2290c0e219686b1115e8e4b773c79f541f5c81f9a4989e58cd3": { "3f6353039db49376892bd891e326535ed8f03543ad08cc2ad5b7bbbe193ee94e": { "jp": { - "updatedAt": "2025-12-29T16:46:15.941Z", + "updatedAt": "2026-01-06T14:18:00.122Z", "postProcessHash": "3a8d7ffaa9444e7a288d168a8bee0cc4f5d25733fa495c1df9c6b900dc125a7b" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.946Z", + "updatedAt": "2026-01-06T14:18:00.133Z", "postProcessHash": "38cdec688fafad29cb0196e7d52dcf0ebc79d468fa122d17030733a904c9f5ca" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.945Z", + "updatedAt": "2026-01-06T14:18:00.129Z", "postProcessHash": "ae3addb58b08330f4cf9dcdb567bc37cfb5c2a6a385e959bd8ecd347d82f5333" } } @@ -32249,15 +32753,15 @@ "0a6b34520ca8168f8c366dbf6721239ffec9e0995481a49f17e32bfdf43182b3": { "d12d9428ec537b38678164b4a2d6a7eab105d1f3658778da83f05b64228fece8": { "jp": { - "updatedAt": "2025-12-29T16:46:15.939Z", + "updatedAt": "2026-01-06T14:18:00.113Z", "postProcessHash": "aae8639dfcb4d05330da61c726224576925db03e664398ea060182ed154b13f6" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.939Z", + "updatedAt": "2026-01-06T14:18:00.112Z", "postProcessHash": "930b770730d099618132c293163290633606fc2c848d9efcebd7699b4cc3f891" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.940Z", + "updatedAt": "2026-01-06T14:18:00.117Z", "postProcessHash": "5c3048791b049b2df77d766b505499c6c7ed470e015ac6ac589c3093d7a14d67" } } @@ -32279,15 +32783,15 @@ }, "d2e6795fd686a57efc64918a081f57e414fc97d1c0562d3d870798cc90723fe3": { "jp": { - "updatedAt": "2025-12-29T16:46:15.972Z", + "updatedAt": "2026-01-06T14:18:00.246Z", "postProcessHash": "3ed646a58be37a00dbbea7d816c9ba0f595dfd1c299df740c427758cbc0336c0" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.973Z", + "updatedAt": "2026-01-06T14:18:00.166Z", "postProcessHash": "323ce16abbc176b28329b1ec087b765441d22073dd86e11419011f71f1d3e493" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.974Z", + "updatedAt": "2026-01-06T14:18:00.167Z", "postProcessHash": "1ff47dc98393d0278fe6a7981f4cb2487d40a1ad3d4b21ec95f3ccc1811c336a" } } @@ -32295,15 +32799,15 @@ "4fb36325d48e506203d8d75bcf6b70879d8bb4bd5ac0aef7b03cf1d784b85934": { "e592ec6dc8b770289b11562b8d28fce8a2ed7c9589b8caa85832638eef552890": { "jp": { - "updatedAt": "2025-12-29T16:46:15.950Z", + "updatedAt": "2026-01-06T14:18:00.136Z", "postProcessHash": "0a11ae2d08cff489fc1f0788468662761e288741f8a8798f4515d496b406a178" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.005Z", + "updatedAt": "2026-01-06T14:18:00.201Z", "postProcessHash": "2406618d752663c2a390739311ec8c0a1e2809d1ccd2e2b8a54841192d0f2db7" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.004Z", + "updatedAt": "2026-01-06T14:18:00.200Z", "postProcessHash": "9868d7c5db3e8f3a2f637c31e3fa4e30a6d28dbc8c7bec6f36f9345e96d7ae29" } } @@ -32311,15 +32815,15 @@ "54668b892baede02e5b6a5cbaf788773fafac8277e523ed65fc920f4ea6df2de": { "0163d4482566b616b6e411361068fbb4094a1c1d66cab5c5f906a2faf1fe96f8": { "jp": { - "updatedAt": "2025-12-29T16:46:15.938Z", + "updatedAt": "2026-01-06T14:18:00.111Z", "postProcessHash": "7395fdbd8a4d7865e0a4d9b53e89d3c4a16a2daea8f097d7c14965c6b7ee6ce7" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.937Z", + "updatedAt": "2026-01-06T14:18:00.110Z", "postProcessHash": "0a97782489196b977e009683bbf33b16d0e5e868b49aea49c6df31eeab803ccf" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.938Z", + "updatedAt": "2026-01-06T14:18:00.112Z", "postProcessHash": "5e7c4df17c64524380cc1c650caba6350a4192f770a9f28045b4ff3f34b8a792" } } @@ -32349,6 +32853,20 @@ "updatedAt": "2025-12-29T16:46:15.856Z", "postProcessHash": "7b41cab0620782c7ecf0ac57ba0af3c08d69331461a2d5a5f674a862a2618210" } + }, + "e66b6f5a4d57659961caf6634ac45e8934cccd82eab8e5c2ad511a72d0eca5ec": { + "zh": { + "updatedAt": "2026-01-06T14:18:00.240Z", + "postProcessHash": "c04c8db36584aa44b399c63e459b461635874e0326f39a7ffba0beb17e92ad7e" + }, + "jp": { + "updatedAt": "2026-01-06T14:18:00.241Z", + "postProcessHash": "a3390e3ecd35dcb48735f3f77ccbe77dd069b401311798f3dbd2275fd8075866" + }, + "ru": { + "updatedAt": "2026-01-06T14:18:00.244Z", + "postProcessHash": "f91c5deeebe12041136f5e18e16fb21cbe17a09bc48e451fb25be174aa0bc8c9" + } } }, "5ad0090f8bb37d66ad4ec384fd8c183a6ce6d85bd5c293bdc484cc9f40bbfc3d": { @@ -32379,20 +32897,34 @@ "updatedAt": "2025-12-29T16:46:16.010Z", "postProcessHash": "a81f726f9fc09e57cf9b136aae215f8f68d034288565198a7175fa3ac11199fa" } + }, + "c1a4a991407da18254eb7c1ec70ae9fd4cec78d7d07953e887423e79167efc6f": { + "zh": { + "updatedAt": "2026-01-06T14:18:00.241Z", + "postProcessHash": "a0f5810f75acb2d5b34ef5c3638d177495883c7cd27f9e4a72979edb55313be2" + }, + "ru": { + "updatedAt": "2026-01-06T14:18:00.242Z", + "postProcessHash": "2047e9b9aacef830a26732bd9aac76a2bc38e2b378762361ab3e789432f8de7c" + }, + "jp": { + "updatedAt": "2026-01-06T14:18:00.243Z", + "postProcessHash": "d33d414cff3071a80d30a6242a659125373e4ffae23fde625322609c58fa02a5" + } } }, "67deff08df6c97036b3da071e7956e16555880aeb53c7d8ac63d1316e5f89993": { "8b19006f70430697684ec4194432408cb6d68b05965376bdeba185e83774be1d": { "jp": { - "updatedAt": "2025-12-29T16:46:15.942Z", + "updatedAt": "2026-01-06T14:18:00.125Z", "postProcessHash": "e94aedf66d637b6f275980467625fe2ced852b26c96348a34e422d2ca1f5d695" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.878Z", + "updatedAt": "2026-01-06T14:18:00.121Z", "postProcessHash": "948347908e015afdbe6635bf35f74bc8fe85bdf5e88d596d604d1c4fd8685bba" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.865Z", + "updatedAt": "2026-01-06T14:17:59.947Z", "postProcessHash": "2f58e50197f8aca8c51a76870f33e79c5cb0577bbce8a3d80b7fef2e5c87b277" } } @@ -32400,15 +32932,15 @@ "72054126de2c0ba649ef4842d3a88e42bc8fbabd3ec579abd629308399d48364": { "f53eec1c24f726e22bbfdd53d757a2f052bbadb6e11837183028dab74cbef510": { "jp": { - "updatedAt": "2025-12-29T16:46:15.872Z", + "updatedAt": "2026-01-06T14:17:59.956Z", "postProcessHash": "db6e04c46a89993043fdc233cfc4f01614ae311ae0aa9166fde68bbb9fae5310" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.875Z", + "updatedAt": "2026-01-06T14:17:59.959Z", "postProcessHash": "2e0345e868c14464f470b16f9afcff38db5afb0aaffa421faa3895f30bff1071" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.864Z", + "updatedAt": "2026-01-06T14:17:59.947Z", "postProcessHash": "d2f7a27acf3c587c848427f284be7956df1daf6f1259aa523deae38633ca2fad" } } @@ -32416,15 +32948,15 @@ "79354c33a23d98f8b63fe6e965aef5d6b18cdc962e36d20a3b148d8cf335f86c": { "a1b7db6e0aac3869ff670ca64a57cc2cb592944192a99aea022777ca4d6ae73a": { "jp": { - "updatedAt": "2025-12-29T16:46:15.954Z", + "updatedAt": "2026-01-06T14:18:00.140Z", "postProcessHash": "93a4b0572f7a570ac19a1bb7c6b4fcc6e9a302d86cc00f5dd7ecc31d7c6949dc" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.952Z", + "updatedAt": "2026-01-06T14:18:00.138Z", "postProcessHash": "8d370917236372fa148d93966aecedbba526907c0f06be42cc6b094004c4c9fb" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.958Z", + "updatedAt": "2026-01-06T14:18:00.147Z", "postProcessHash": "84c3d73b9d073bb6366d1dfab1ae09d6ca80ae0d079171bcbf000dcea3477f32" } } @@ -32446,15 +32978,15 @@ }, "c5236c53694f5496976c10e10cfb242a5f6761abbcadfe9e80d1908f602dba5f": { "jp": { - "updatedAt": "2025-12-29T16:46:15.969Z", + "updatedAt": "2026-01-06T14:18:00.164Z", "postProcessHash": "1f729561ac9b4a77977e7dd50594836b4b695bea60fe3402b1ba9754685d2d97" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.970Z", + "updatedAt": "2026-01-06T14:18:00.165Z", "postProcessHash": "167911cc9c2d64ec8773f2d1203860919cd476d84a09882379ed395e8efee2f7" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.971Z", + "updatedAt": "2026-01-06T14:18:00.165Z", "postProcessHash": "a2bec12878342b641ea925432625c60eba771383ce37263ab77617db4ead4af1" } } @@ -32462,15 +32994,15 @@ "9a882460cbd2fdc9c5ff521d87a5f2d2b7ccd55f1ba81bfb3906e7ca923d1c1e": { "437e57c81c3f0872003cb47aa8df2359ae68ecc690d887ec26b6e38a740144f6": { "jp": { - "updatedAt": "2025-12-29T16:46:15.942Z", + "updatedAt": "2026-01-06T14:18:00.122Z", "postProcessHash": "ea724ed9424b5fc970594025ecd8fd8ff562d72523cfc16a43b8fce7978f0a54" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.877Z", + "updatedAt": "2026-01-06T14:18:00.119Z", "postProcessHash": "9167e54acfdf70e9ecbbbc732c5ffce61d92be6b5dbf7032e126c00f7bf7bfe1" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.881Z", + "updatedAt": "2026-01-06T14:18:00.132Z", "postProcessHash": "d479c2fe0dc8c0ea513cd749ee41985de8b730eba039b746e694253e03c23326" } } @@ -32478,15 +33010,15 @@ "ad780b9bfd73ed606b7968549e04e8b3334085724088340ad05f2447559d540f": { "2bddef7ed07c45258897c9370efaa505180d67c313bb2d16ef2c830e5636aa00": { "jp": { - "updatedAt": "2025-12-29T16:46:15.868Z", + "updatedAt": "2026-01-06T14:18:00.114Z", "postProcessHash": "a8e7ef842ff8960a1fa33d98d059a72c14eb538a90144a86ae34bfc538a0c894" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.867Z", + "updatedAt": "2026-01-06T14:17:59.952Z", "postProcessHash": "ab8724c194d83d71ead6579f107c4c4c513907057048b74a1339776792cdf33f" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.863Z", + "updatedAt": "2026-01-06T14:17:59.945Z", "postProcessHash": "d313b64bcf9a377701cd5c8d37aabca63fa293c6dabe91b593fbdb193dcb8b68" } } @@ -32494,15 +33026,15 @@ "ae79c700aca5153218493e8a943d16630b2f7ea345ab07e3105236857b43d93b": { "b1e073c8374abc5e997e5c6b5beb49db3202f0731072d2c28d7fbb0d58ae5e38": { "jp": { - "updatedAt": "2025-12-29T16:46:15.959Z", + "updatedAt": "2026-01-06T14:18:00.150Z", "postProcessHash": "31c8a2b7f0beae62d7cd4f9d5fae1443a384963858d530bae74d0abf3118bf99" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.949Z", + "updatedAt": "2026-01-06T14:18:00.135Z", "postProcessHash": "9cbcba59c2c3b5aa8b4494769ee9e50bc7779b4d55ba206792ec8e3f7c2069e1" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.951Z", + "updatedAt": "2026-01-06T14:18:00.137Z", "postProcessHash": "68ca65f7f28e5f3ba83f5be61f0df5fff9ef83bb4743682b29739f9e8b3a718c" } } @@ -32510,15 +33042,15 @@ "cad443b0bb3344ed063f7aa4c7fc2b79aced5e32830119e2376d8bc59ea14c52": { "7d224b4658e83885570c772a1a61546603db3deadf2539b9ba2ed630cb97e6a6": { "jp": { - "updatedAt": "2025-12-29T16:46:15.875Z", + "updatedAt": "2026-01-06T14:18:00.118Z", "postProcessHash": "2ceefce04ffb0694dcede58b65e6bc3f584f63af1c476c005c3ba69b0681ad58" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.870Z", + "updatedAt": "2026-01-06T14:18:00.116Z", "postProcessHash": "43d234a10781d274be6d498410af17b8822acf97c024f36383b6d379ebc609a8" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.878Z", + "updatedAt": "2026-01-06T14:17:59.961Z", "postProcessHash": "a478e9985eef702a4fd2e7e18eeb582131f09801595d3ad3d42d8098d097b3fa" } } @@ -32526,15 +33058,15 @@ "ceefbdcea6747301b15ae01324b1afd1ac12aa220ed2fe99add6fbe53f6c7269": { "5840e875e6ec0ff5abbf5480df1b95d85a50786763ab037f67b711d24e4e67c7": { "jp": { - "updatedAt": "2025-12-29T16:46:15.874Z", + "updatedAt": "2026-01-06T14:18:00.117Z", "postProcessHash": "4d82cdeeb64d7528c55a9b20653eb13bb0c88a7cb0440919427d4ea49c2f3a02" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.863Z", + "updatedAt": "2026-01-06T14:17:59.944Z", "postProcessHash": "3f229ad78931abbf0ce78e847e5b255bc3480901f102ac1225dbc77819a55051" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.943Z", + "updatedAt": "2026-01-06T14:18:00.127Z", "postProcessHash": "beaeb1c0510d9cc44fb0e9e0f19c97617e2e171797f0e8c9b1d40c5dcb44614b" } } @@ -32542,15 +33074,15 @@ "d4d0c35c5f0beed1c59fef3df7f5bfb3c862a52553491c973702a3bc2127649b": { "57ffcbf7d6cac66182cfea77cf8aba9e7c9e489b22f114253119e9ff7f8c1f83": { "jp": { - "updatedAt": "2025-12-29T16:46:15.815Z", + "updatedAt": "2026-01-06T14:17:59.931Z", "postProcessHash": "c747eeccac4ad64e673b826b973232bf8fda23017a0bf4bda7184a75ea1c50d7" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.891Z", + "updatedAt": "2026-01-06T14:17:59.973Z", "postProcessHash": "f0b59bc50c3c3ca29e605142205fb67a2eeacec3f3a28144c2e98cc7b7df8959" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.896Z", + "updatedAt": "2026-01-06T14:17:59.991Z", "postProcessHash": "8d8a8cb8d753ab6e5b24f14c708b0af76a4843cc46df1b8ec901f48e6cf26808" } } @@ -32558,15 +33090,15 @@ "e14b170922435b64e35287ad9833a81f16ff54cafad9dec0721b50d4150e5eff": { "a7e402c7578841050808aadfed7d6deea52ece0e68f8352e2e942645abf29aa1": { "jp": { - "updatedAt": "2025-12-29T16:46:15.862Z", + "updatedAt": "2026-01-06T14:17:59.943Z", "postProcessHash": "a6953d113273aaaf5f9cd703e87b279b4191d2c6925050fca0e97811613ba5c4" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.864Z", + "updatedAt": "2026-01-06T14:17:59.946Z", "postProcessHash": "cc7399a1177f64d4266fe77442152db5e030f4423e01c0b46db6571d37853efe" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.873Z", + "updatedAt": "2026-01-06T14:18:00.116Z", "postProcessHash": "249050770e8ba433100f495b721cfcd972b66d79aca737d1e8f4334d3b0698c1" } } @@ -32588,15 +33120,15 @@ }, "ef39b2127368b228419d895de6f559803b65472e0ceb4d08e0372e46edb6b607": { "jp": { - "updatedAt": "2025-12-29T16:46:15.901Z", + "updatedAt": "2026-01-06T14:17:59.999Z", "postProcessHash": "24a4a717626eaf9aa8b9d8385db7719c886e6237954a1d7b16edafd5bba18407" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.902Z", + "updatedAt": "2026-01-06T14:18:00.000Z", "postProcessHash": "b3516bde160fe98d7b7c70592dc5e02d3b99035882b3506a48ca5a72e72a531c" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.903Z", + "updatedAt": "2026-01-06T14:18:00.001Z", "postProcessHash": "4cdc8a9177474552cea738f878d90e8c6348b17471f3fada979e3e72b1a404d6" } } @@ -32618,15 +33150,15 @@ }, "1543118a3888757ca01705cc9743f1cd067d80cd7a447957425afdd4434d4cd3": { "ru": { - "updatedAt": "2025-12-29T16:46:15.963Z", + "updatedAt": "2026-01-06T14:18:00.157Z", "postProcessHash": "be70fdabe849ad7df10f19656b81297f75acbd775f9837ef1010232e2882d294" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.964Z", + "updatedAt": "2026-01-06T14:18:00.158Z", "postProcessHash": "a166c3da8d2e5f20951a84090b73b132d2ca638876ccb08a1814ba091f4dd00a" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.965Z", + "updatedAt": "2026-01-06T14:18:00.159Z", "postProcessHash": "c3264226380674182955f5ac7c8de60fcbc61d17f4f1f4860c5464be26795ffb" } } @@ -32634,15 +33166,15 @@ "6d063f7195776042aa3f0a6d982cef56abab4e4b689ea926e2fc79ed09f5a2ff": { "cdca3b6d03d5aff13d620991a578cf9aae185e67396d308d55838c9401281d25": { "jp": { - "updatedAt": "2025-12-29T16:46:15.950Z", + "updatedAt": "2026-01-06T14:18:00.135Z", "postProcessHash": "3a97db2f4213cdb49dcac3dea5097505ac962401daa523edd421141c13ff18c7" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.038Z", + "updatedAt": "2026-01-06T14:18:00.239Z", "postProcessHash": "72176bd7b3dcea3b813f35e3f708edf3db36619258d6afffb0f301bee53475f3" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.947Z", + "updatedAt": "2026-01-06T14:18:00.134Z", "postProcessHash": "9ec3629bff2e3572e992ce05e9b8b352375a006dde482847a5987833cae37308" } } @@ -32661,15 +33193,15 @@ }, "000b1489bccc8788cf74aa6329f6c98ad06511f167f46f1b934a958a5c6ce2b4": { "ru": { - "updatedAt": "2025-12-29T16:46:15.853Z", + "updatedAt": "2026-01-06T14:17:59.934Z", "postProcessHash": "84f883cec4460e59defe88c076a3aa0c372e0d8c9671ab04630752eb42d75086" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.854Z", + "updatedAt": "2026-01-06T14:17:59.935Z", "postProcessHash": "7391407f18a7d31ab4f197c8a98f819131d57be4a2cabec9dd7b1673076cf44c" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.854Z", + "updatedAt": "2026-01-06T14:17:59.936Z", "postProcessHash": "5815ea3eedc0bfb6ce2243f85e598e5fd7687e094540aa546ec7397c90e5854f" } } @@ -32677,15 +33209,15 @@ "99b41ad75a6b23d70cb86b644a533c095785f9bb812c802ab52b650473d678ce": { "aa16d1a33d3312895cbf47d1ede82586dfb4df0a3507111d6cc8823a5446a979": { "jp": { - "updatedAt": "2025-12-29T16:46:16.004Z", + "updatedAt": "2026-01-06T14:18:00.200Z", "postProcessHash": "32ce42679a2c92d69a092e8b1a9c411c4905801b729f74b0290da8383e209201" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.940Z", + "updatedAt": "2026-01-06T14:18:00.114Z", "postProcessHash": "6c169ae4d235a9c1d0dfb4562680280faa583409ffe0def6f758e109e58e28b2" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.951Z", + "updatedAt": "2026-01-06T14:18:00.137Z", "postProcessHash": "7c9c40b3e5b49e192277c1beed49ad527e4478e74e0094f006074cd0aac0f4a3" } } @@ -32693,15 +33225,15 @@ "be4a5f793e39d6e7b18691ba8685878af8c580f898c9f09efc5b93e0979b3902": { "b95eddde3a53a14028e00000ea72057696b55e352e2a30cb66fda415c9ba5d5e": { "jp": { - "updatedAt": "2025-12-29T16:46:15.946Z", + "updatedAt": "2026-01-06T14:18:00.131Z", "postProcessHash": "ebe04f6b0e5add0052a46c4d98f037461beb28f2cea4d340dc0e8d9b671af0da" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.958Z", + "updatedAt": "2026-01-06T14:18:00.148Z", "postProcessHash": "35062a645098ab1cb42eb22ea43f02c0ad74c81ace097c9abb272aa41ed6c219" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.955Z", + "updatedAt": "2026-01-06T14:18:00.141Z", "postProcessHash": "ca5fb42f98bc580f80df3e8056d565981b39b4a489f5ccfaef23f73c60bc4fb6" } } @@ -32709,15 +33241,15 @@ "c6fb4739e8e0ce948c34c03ed0f585498d9b45c24d566dfb8456926c4160207b": { "1d24888ce8aa77edfe5838c52a804ab3149a5d9497f036556a3e08576311a7ea": { "jp": { - "updatedAt": "2025-12-29T16:46:15.953Z", + "updatedAt": "2026-01-06T14:18:00.138Z", "postProcessHash": "206c86770d60be69d78c5041054e095526a3550ca874a551f77b1fc18f589b05" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.957Z", + "updatedAt": "2026-01-06T14:18:00.143Z", "postProcessHash": "de251841d255fbaf6620597f54cae6f3385b897e8cf084b39c5a1489e6a374f1" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.003Z", + "updatedAt": "2026-01-06T14:18:00.153Z", "postProcessHash": "6c02a735bcce5c90ebf88c504b9d7598dbca8faf87728f021d778a9c2314d496" } } @@ -32725,15 +33257,15 @@ "d917e72b0a533c5af5b78c94fe1c05954dfd7ee48fb7ef7ab50f924f25fd68d2": { "b98abd6c9ba813c4b4a7cd9bc3018c8d18d3b4e71c0ec5233cf5d8da0a0f0441": { "jp": { - "updatedAt": "2025-12-29T16:46:15.959Z", + "updatedAt": "2026-01-06T14:18:00.151Z", "postProcessHash": "17c481693171e4d5acbb70e7b51ab23078194384ba76006d35f9af507c69c850" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.006Z", + "updatedAt": "2026-01-06T14:18:00.202Z", "postProcessHash": "adff623f4b8e313dee9b0279574b9e90828288fffb40587f0f77e4dfdffdc54b" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.006Z", + "updatedAt": "2026-01-06T14:18:00.203Z", "postProcessHash": "f3cb5458ea4acdf8b11e8924ee2da06f4f0b614f9abfb89f3ed6f5f7ec17bb6b" } } @@ -32741,15 +33273,15 @@ "e05df611d62735d38ef4d916bb8f4ebe7a8d79a8773dcc1e94584527d5291d29": { "6ed109f9852559b92ce5667c817e8c2bc706b8ada65ecb41dd89ea0a07d5a71d": { "jp": { - "updatedAt": "2025-12-29T16:46:15.943Z", + "updatedAt": "2026-01-06T14:18:00.127Z", "postProcessHash": "b236d87529da82a82c443d416b4d3f238299db9ffcc9d45ef6c2f3318c021580" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.945Z", + "updatedAt": "2026-01-06T14:18:00.131Z", "postProcessHash": "ba16ea7423c96bbf6ae7981c949a17edadef3b84f8b242805232c3ad44a315ba" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.941Z", + "updatedAt": "2026-01-06T14:18:00.120Z", "postProcessHash": "e910f76cd143d052e6fde292752e8dbb209fc9a9650cc2f075077d3956a809df" } } @@ -32757,15 +33289,15 @@ "8e4cc87be65a0de0b75cdf694f1e368b68e721094e28ad05d1ab2af1aa7c97c2": { "b4c7e25600e2e0bab1150a0a7777cdce0d61b9c3e50a9c73e33bae121c92cbba": { "jp": { - "updatedAt": "2025-12-29T16:46:16.237Z", + "updatedAt": "2026-01-06T14:18:00.523Z", "postProcessHash": "713a33d07f67aa81c5e94df9357525eb992cd84e5b8de4b33c75065ae90183e7" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.236Z", + "updatedAt": "2026-01-06T14:18:00.522Z", "postProcessHash": "5cb63e2cbfc805a66153f2a0b7e0eb50431e18a659f8dd0df4e892bb4889105b" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.237Z", + "updatedAt": "2026-01-06T14:18:00.524Z", "postProcessHash": "fcdb53f0eef5ee6d7bcf511efe0e736257a95d4c5d0341c48b91fd888eebe2f4" } } @@ -32773,15 +33305,15 @@ "9dbbdc5c5acc11dc5874d8f84c2ec9210659a18cdd63bcc17e5b9addd0e11761": { "ca5dbd38b58fcc4d7a89bbb3e287de8dd7982f758f2a8e314589026ceed00758": { "jp": { - "updatedAt": "2025-12-29T16:46:16.230Z", + "updatedAt": "2026-01-06T14:18:00.512Z", "postProcessHash": "72aac5265ba0e946d0a5714203f68b03fa3e12de2b70363bc1853794f46c5d5f" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.311Z", + "updatedAt": "2026-01-06T14:18:00.673Z", "postProcessHash": "d0d5c65fb4be1b4d607387f7433e1efab92bd7c402186625d19603b205f0460b" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.227Z", + "updatedAt": "2026-01-06T14:18:00.508Z", "postProcessHash": "ef1caaf6885cdaad84bb404e6a152ab1f7f0cbb3c3fb7e190f4453cfa676f118" } } @@ -32789,15 +33321,15 @@ "a1ae550295a483325655e321e7db058409614a56e29a23b67cbb7b001c387ca1": { "8978ba1f0ad1f751ccb53c78a3aacb61cbebe5e747e9d35fcdd7d9a45f55b790": { "jp": { - "updatedAt": "2025-12-29T16:46:16.228Z", + "updatedAt": "2026-01-06T14:18:00.509Z", "postProcessHash": "7f3bcd4393f59fbfb6d61e50595b4f619303931f2fd4b1fb0045b25aa8c067fc" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.231Z", + "updatedAt": "2026-01-06T14:18:00.513Z", "postProcessHash": "be6f2c0efbd26f47ff866ca052b7bcd3556397e5e4d44a33fc127de0f2bdaee4" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.231Z", + "updatedAt": "2026-01-06T14:18:00.514Z", "postProcessHash": "4d17055463206d0da16a17b80df59d29714f48198e709b60d85fcf69b5a4a6d3" } } @@ -32918,6 +33450,20 @@ "updatedAt": "2025-12-29T16:46:14.526Z", "postProcessHash": "ddbfbabfc9863bc78ef14891de61c33d1ca96791134e6ace78a4514c98aba372" } + }, + "77230363cfce2436b2d657ed709939a5e461336e057a4b0f20caf6c591c78821": { + "jp": { + "updatedAt": "2026-01-06T14:17:57.949Z", + "postProcessHash": "318328402d4a4053ff7ac94c82933b244a4d9e6afdf3cee08490c430d0b9dd32" + }, + "zh": { + "updatedAt": "2026-01-06T14:17:57.951Z", + "postProcessHash": "e798aaf6fd6f6f709981df79596df1b979dd61b2a94578624dbfd065f82a761f" + }, + "ru": { + "updatedAt": "2026-01-06T14:17:57.952Z", + "postProcessHash": "fd1cc4c694c21154bfca41f0bc5e308f728232e1f91c6040a5c3bb4c2d44a331" + } } }, "757c782e8d474da0f84ccfdac904b2cece14a9ace176070652ca6e68725754d8": { @@ -32945,15 +33491,15 @@ }, "2c1f220c37ce6250c1d09472d8843fe73121ffc4161487b87e9f1742e7e27eb5": { "ru": { - "updatedAt": "2025-12-29T16:46:15.092Z", + "updatedAt": "2026-01-06T14:17:58.866Z", "postProcessHash": "92bd31fdbe525fc9dfa2fae611c39bf0a93eb3d0b38a9d0ebd4d54d4a4ff9038" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.093Z", + "updatedAt": "2026-01-06T14:17:58.867Z", "postProcessHash": "9054bf938b070574df6afb1dbba58deb4843b3682e5a63a0e342640950383186" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.093Z", + "updatedAt": "2026-01-06T14:17:58.868Z", "postProcessHash": "1eb07a393b00516086d37a9df00117925c530145f86e5fd65d59ad0e6021734a" } } @@ -32969,15 +33515,15 @@ }, "027d2488fe130352aa6298012c4d7a267915572c0674765bb593b91d195456d9": { "zh": { - "updatedAt": "2025-12-29T16:46:14.407Z", + "updatedAt": "2026-01-06T14:17:57.729Z", "postProcessHash": "cddc24770a56c74f224fc8a924029eb2e83f8d58535d69f2831bf97238a2d949" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.410Z", + "updatedAt": "2026-01-06T14:17:57.732Z", "postProcessHash": "ac201609e6222d857e5f1c6f0ae325b1d2288b3ad77ea808d0906c0823c2c050" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.289Z", + "updatedAt": "2026-01-06T14:17:57.619Z", "postProcessHash": "24582a05f2069fa46e18a7cb381f2fe2345e0ad28b3db4593ee7cc26e3bc840a" } }, @@ -33004,15 +33550,15 @@ }, "2020a467b74c2031b09501bd31ebb2d005e1c3d366aa4673be3ded168b7cf3c3": { "jp": { - "updatedAt": "2025-12-29T16:46:15.261Z", + "updatedAt": "2026-01-06T14:17:59.087Z", "postProcessHash": "75c60a85252e8ac6bebbcb87449ac0d95c378b782a3cf89015b17b0037fe5aac" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.263Z", + "updatedAt": "2026-01-06T14:17:59.100Z", "postProcessHash": "4926ee8caf607b5c9d11526c23729c9b4696ad0118d4b4ade61fabb5d9f18702" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.265Z", + "updatedAt": "2026-01-06T14:17:59.103Z", "postProcessHash": "b32ebbb92a17c951dd50a1d149a4f823a45853441a35c933d264ff73d93c2f3f" } } @@ -33053,15 +33599,15 @@ }, "c2a1456e61256a3e9f1fb43aed222e5eb9d175ce52e8ea3016529a0818a8eabf": { "ru": { - "updatedAt": "2025-12-29T16:46:13.804Z", + "updatedAt": "2026-01-06T14:17:56.972Z", "postProcessHash": "0f2cc2df75c8323cd9e40e0f96eaa3fe7abe675d9e5eff91ea870f3b35ac3d38" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.805Z", + "updatedAt": "2026-01-06T14:17:56.972Z", "postProcessHash": "d4c755417fbf696948e72d6b250083a5a0818a60a7178b637bbe622f29d91083" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.806Z", + "updatedAt": "2026-01-06T14:17:56.973Z", "postProcessHash": "c8eaaeabbb686dc230137747d970bee5adf83a1da3fa42dd407563251f3da0c6" } } @@ -33088,15 +33634,15 @@ }, "a99976a7a738ebb33cada2f4d924528e1f6779ca2332591b2c1eaf27105ec883": { "zh": { - "updatedAt": "2025-12-29T16:46:14.017Z", + "updatedAt": "2026-01-06T14:17:57.246Z", "postProcessHash": "b40dbbba7e989fa9cae3d49b1ad3584a08ea3cb1bb6948112e26d1b0cabb39ff" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.017Z", + "updatedAt": "2026-01-06T14:17:57.246Z", "postProcessHash": "35247abc761d249da7c7cd1664d0eb0ec0717f3cd6840fc13a796bce7c6c6364" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.018Z", + "updatedAt": "2026-01-06T14:17:57.247Z", "postProcessHash": "a3ae6705ce3d926d87770e140ba2b303777239252aa6fb61f48c5ccb6771a084" } } @@ -33123,15 +33669,15 @@ }, "82debe159b38d56f0f7e43e16823ebbfccd913c0fde77cb1d097d676eb7fedb7": { "zh": { - "updatedAt": "2025-12-29T16:46:15.019Z", + "updatedAt": "2026-01-06T14:17:58.738Z", "postProcessHash": "5c48a6036ce8e595022a70b9e858d66352a6518534b20c1ec4e85167e058fcf3" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.019Z", + "updatedAt": "2026-01-06T14:17:58.738Z", "postProcessHash": "0a3ebe55e7cce6d0b2ba9332a43f6bd4eaec3bb4d75a676ad183d96b7bee0249" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.020Z", + "updatedAt": "2026-01-06T14:17:58.739Z", "postProcessHash": "8b4bf1c526076b08848728fd206d4819f32b5cf7115256d25af040ce33c2d199" } } @@ -33211,15 +33757,15 @@ }, "0781ce612a762ef10f00cb9efe8bf0394130132097c5aff0101c915f6a738ce9": { "ru": { - "updatedAt": "2025-12-29T16:46:15.745Z", + "updatedAt": "2026-01-06T14:17:59.760Z", "postProcessHash": "4d42e1e43183ad7aaa4d0b837e55002e56d7ab6459db926621017fe5e7104f11" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.746Z", + "updatedAt": "2026-01-06T14:17:59.763Z", "postProcessHash": "b63c109a5cb17d4f5fabf055217cc7e2a9d95001cf1b9e2cdf237e4736fea15b" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.747Z", + "updatedAt": "2026-01-06T14:17:59.765Z", "postProcessHash": "0274089e94332d48cc427296d5b2cb47a3dc044d7121cf4447664ba8c03521aa" } } @@ -33246,15 +33792,15 @@ }, "0af616e387db07695b2962dde0bbbd92c2ccccdb78cfa45a093fafcc97b3918c": { "jp": { - "updatedAt": "2025-12-29T16:46:14.770Z", + "updatedAt": "2026-01-06T14:17:58.375Z", "postProcessHash": "9e5d7126284e21a1dff3042e5e066b2d38abd111d9e09f4bb2ce08211a90f7f8" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.770Z", + "updatedAt": "2026-01-06T14:17:58.375Z", "postProcessHash": "ac14154c7f55efdaf6746e2fde327eaf827ece801f0db965edd3a4849e764774" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.827Z", + "updatedAt": "2026-01-06T14:17:58.462Z", "postProcessHash": "21b6c30364f68949c60efc6c0a9a429ae433d611affdc616511c1d947ae78015" } }, @@ -33290,15 +33836,15 @@ "466fe68cf77ba8d2f7e6b11a62dcea8f2b8466f8161a1a4fb8352442e971815f": { "0fb852baff9f99f784eb97ea0fe1e81f329d845d7e142f0cf03f1c59b7c10b6e": { "ru": { - "updatedAt": "2025-12-29T16:46:13.282Z", + "updatedAt": "2026-01-06T14:17:56.271Z", "postProcessHash": "a2f861b06cedc87cff28f0e87a874f0ca6810222da9f8e6f3d226dc39ee35ee6" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.330Z", + "updatedAt": "2026-01-06T14:17:56.336Z", "postProcessHash": "35ad145cf388d16f5d4a4011168a1fc7287db6205d3337996d98df0726ff1b0f" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.254Z", + "updatedAt": "2026-01-06T14:17:56.230Z", "postProcessHash": "e2ef30245dbda7c76ba90432299bb9dba01f4246d5ec47d7fb135e93ffb2a722" } }, @@ -33314,15 +33860,15 @@ "16c5698666ea7909d9e1753e9b13a5de1a08200f19d637afa8cab711a0379f73": { "38ea5377628be1984cefdabbe1181d528ddf34276864ec19a7193979c8dca03a": { "zh": { - "updatedAt": "2025-12-29T16:46:13.282Z", + "updatedAt": "2026-01-06T14:17:56.273Z", "postProcessHash": "38ea5377628be1984cefdabbe1181d528ddf34276864ec19a7193979c8dca03a" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.287Z", + "updatedAt": "2026-01-06T14:17:56.278Z", "postProcessHash": "38ea5377628be1984cefdabbe1181d528ddf34276864ec19a7193979c8dca03a" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.277Z", + "updatedAt": "2026-01-06T14:17:56.266Z", "postProcessHash": "38ea5377628be1984cefdabbe1181d528ddf34276864ec19a7193979c8dca03a" } } @@ -33330,15 +33876,15 @@ "85911f3bccb6d5539862e976203980d7d51391821089a818a002e7424e1242da": { "d7b1a435f7e4fe293383e5e8731be7cd7008caf825855a2e246a89ce3676aa9a": { "zh": { - "updatedAt": "2025-12-29T16:46:13.285Z", + "updatedAt": "2026-01-06T14:17:56.275Z", "postProcessHash": "14f020971de21060c9dbbdd97881e50c823b8decb3af6933b6786b810c784b05" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.333Z", + "updatedAt": "2026-01-06T14:17:56.342Z", "postProcessHash": "4ca4488b6240f0969f58775cdd28b38ea19b72d09ed672806dd6066698e103b1" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.271Z", + "updatedAt": "2026-01-06T14:17:56.258Z", "postProcessHash": "2e8935b774707a1fc1094bda03142082e4ee9cad3e7528e694913863d61304b0" } }, @@ -33354,15 +33900,15 @@ "237a635525e427bffb1c840b646e1b41486b8ccabc7712217a3d66d8c582f1b8": { "727edae2b97b38f4fc6c0b0dd353075d4fe831d345dda64ac9471ceaf897e490": { "zh": { - "updatedAt": "2025-12-29T16:46:13.285Z", + "updatedAt": "2026-01-06T14:17:56.276Z", "postProcessHash": "b1a18bb55dc19c1ae6d59cc1d7b85fd42acff628d3ca1636bfb8236189f4e211" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.280Z", + "updatedAt": "2026-01-06T14:17:56.269Z", "postProcessHash": "b1a18bb55dc19c1ae6d59cc1d7b85fd42acff628d3ca1636bfb8236189f4e211" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.276Z", + "updatedAt": "2026-01-06T14:17:56.265Z", "postProcessHash": "b1a18bb55dc19c1ae6d59cc1d7b85fd42acff628d3ca1636bfb8236189f4e211" } }, @@ -33381,15 +33927,15 @@ "7f4450440bea714d4def4ce9d273c25160fbc93f8195d945039db1f03871b626": { "98ef39e86680ea8421985ec9e48a11480382a84780d7c51e21ba7c7c08ba5de3": { "zh": { - "updatedAt": "2025-12-29T16:46:13.288Z", + "updatedAt": "2026-01-06T14:17:56.279Z", "postProcessHash": "f6d43fb3b1bf3cb544f95ff4148624ff3f59c0d98fc9699c1d5e9a552673770f" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.291Z", + "updatedAt": "2026-01-06T14:17:56.281Z", "postProcessHash": "046a9d5b6025a5438969893155368430145da58084c1a1cdb51b2f442bd31728" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.275Z", + "updatedAt": "2026-01-06T14:17:56.264Z", "postProcessHash": "5405f106a4b9fb9d494ea8c8b80b6348537da13d5055b9c84176e33b694b0168" } }, @@ -33408,15 +33954,15 @@ "96339230d0b0662c9043872f701165e62b1dd1a9ee98448c3678014c12742331": { "f9dcd7d2195374981d74d8864cbac9660f4fe55a672e340bfa424e86bd032bd1": { "zh": { - "updatedAt": "2025-12-29T16:46:13.289Z", + "updatedAt": "2026-01-06T14:17:56.279Z", "postProcessHash": "17fc1ce3e7724e08185d6334367acd1551db3403000c885aee694b8cee1b6ffb" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.264Z", + "updatedAt": "2026-01-06T14:17:56.247Z", "postProcessHash": "6e8878bf1b9d227317cb48a45ab9134707488c84ad6fd609253a2e8ba3d90635" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.261Z", + "updatedAt": "2026-01-06T14:17:56.242Z", "postProcessHash": "e30256fb827d3f41b02c4a19420ee45e6f4b22c9f126bc600b0e5d0ad8d78885" } }, @@ -33432,15 +33978,15 @@ "7b1152a9f1bfab485338afd2d917ac4d27b6ac598d4df8c416b5d34f5f2f2dc6": { "e85d9475b25d51b62300a450688edb90649a6b929805c4c6c7dc02c5c82425fb": { "ru": { - "updatedAt": "2025-12-29T16:46:13.290Z", + "updatedAt": "2026-01-06T14:17:56.280Z", "postProcessHash": "4414fe2db8210cb07462ea37b5f252d3d1a08aea83c8048ed4bdfdf8e502b069" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.236Z", + "updatedAt": "2026-01-06T14:17:56.212Z", "postProcessHash": "77b3f7333c54264798591573269c51eb187a6530077b8c89d00454a32b3814c7" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.294Z", + "updatedAt": "2026-01-06T14:17:56.284Z", "postProcessHash": "a1eab45bcabefaf3193bf256217b0716bcdd3e9659c09f81d14218a16fb060f8" } }, @@ -33456,15 +34002,15 @@ "ff3c9f598e696982267c2ce9a91a552bebc66583c1163dc1c4b27f82c5102f1d": { "128e8ba5fd3b5e0981c42ebd31c5b3e87b6845262805a4f4bff3b70534bfda44": { "ru": { - "updatedAt": "2025-12-29T16:46:13.290Z", + "updatedAt": "2026-01-06T14:17:56.281Z", "postProcessHash": "ce53f996740d70842ef68af1655918f3eb1bc9df687c4df73d2d93719080f97c" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.260Z", + "updatedAt": "2026-01-06T14:17:56.240Z", "postProcessHash": "21345561752f0d94aea8069e30373e2f370e4ba9287cafef0820ff4937dc0a05" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.235Z", + "updatedAt": "2026-01-06T14:17:56.209Z", "postProcessHash": "aede207cd5ce2c77e07aaa05b0def28eb8fc4c9a032f7e14fee2a8f389750a35" } }, @@ -33480,15 +34026,15 @@ "0361e95538168e72e0cf9076b4f8a823f82bca2acba30f30499d1d7ab6a5509f": { "d46f5caa45acdc3ea0cac4ee761116eca50f70acb1faa2569b6101636d3704f8": { "zh": { - "updatedAt": "2025-12-29T16:46:13.292Z", + "updatedAt": "2026-01-06T14:17:56.282Z", "postProcessHash": "f0a97c134d3228bd813b9fb2631caeb8537d464977843611fc44a3fd1c12d58e" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.331Z", + "updatedAt": "2026-01-06T14:17:56.337Z", "postProcessHash": "7eff5614e108ffbe8fdbb7cb7a60ce43f1c34abb8dce2015fa7c6e289db7874f" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.333Z", + "updatedAt": "2026-01-06T14:17:56.340Z", "postProcessHash": "8b472718c3b01cc58d0348751f5b161326d90be2ff4adeed0263bb244d13b231" } }, @@ -33504,15 +34050,15 @@ "4914840b74cd4cd05b93446005c1a3f9b45c7e7816eb8b20c953782a78417420": { "66ffb1d1eb8cc149ea48f7ecfeda0ca180b36051bed03928a1992c631dc4c19a": { "zh": { - "updatedAt": "2025-12-29T16:46:13.330Z", + "updatedAt": "2026-01-06T14:17:56.335Z", "postProcessHash": "2387c90b6734fabbf5e34855d9b7087a56a8459199666d9324c3f8ecb8753f8c" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.247Z", + "updatedAt": "2026-01-06T14:17:56.219Z", "postProcessHash": "40abf84cb8f86fa1a58b9ec5523ea457c40aaf25e3b348ce068ffc50600529bd" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.275Z", + "updatedAt": "2026-01-06T14:17:56.263Z", "postProcessHash": "ebfbd37d08e77529f334617e1c65036b6807197b47ecf072231bef4ded2bb5d9" } }, @@ -33528,15 +34074,15 @@ "7c40f4e2df36269b352d83d988edf0d606726b28f6527552e7eea3bbecafdef3": { "199bb81cde4d12c23b1adc97c7e2bce05a479079d23a4bb65c6826ef95452990": { "ru": { - "updatedAt": "2025-12-29T16:46:13.293Z", + "updatedAt": "2026-01-06T14:17:56.283Z", "postProcessHash": "8993be5bf11b6be7d72aa4c611b0e7bad5fc512439bb9d1b6e206fbbbd7cb05a" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.262Z", + "updatedAt": "2026-01-06T14:17:56.244Z", "postProcessHash": "370a91b8533a723d2e4b1549c35c6735c837f2f50c1c4d609903126372f45d30" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.293Z", + "updatedAt": "2026-01-06T14:17:56.283Z", "postProcessHash": "f100216dddcd5aa6d5b2a119631e6cd22084bdd495347e2d2db5afc49cf02124" } }, @@ -33552,15 +34098,15 @@ "1eff56196650aabbed5f57974122db842d54e3093cc55755e2f4b980a957f4ac": { "598e57a0788cdc232382a72f993fe05e0d9a2ec8e815e0b23e6780d39b245171": { "zh": { - "updatedAt": "2025-12-29T16:46:13.331Z", + "updatedAt": "2026-01-06T14:17:56.339Z", "postProcessHash": "029477b5ba4e00e1984a59313be1408fa79f1ed3c7374fc6e054cd934ae87d9f" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.257Z", + "updatedAt": "2026-01-06T14:17:56.234Z", "postProcessHash": "4adeee00af2b7dc1689945fa1a3ea72870eb8d82635d23c24f5afacdaee2d9cc" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.274Z", + "updatedAt": "2026-01-06T14:17:56.262Z", "postProcessHash": "1b1d29c91919156ad092d3fafffbdffcefecd1464f1867980a3effbd3fd97ed9" } }, @@ -33576,15 +34122,15 @@ "3c95fa2e161d494b4ae0ef9bf3131f3b028f13b824f5b7ede9ad688d11b58387": { "904fe0150e0e8c168afe250519fee5a4c27e23da832c312dcab667da64fa503d": { "zh": { - "updatedAt": "2025-12-29T16:46:13.332Z", + "updatedAt": "2026-01-06T14:17:56.340Z", "postProcessHash": "663fef6d20480babb22d86296b66037222d2a2650250a2874eb7d07cc37b3547" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.249Z", + "updatedAt": "2026-01-06T14:17:56.221Z", "postProcessHash": "296904d83e2f05abd0d201b63756e4993fc070bdb04cab19f7310a5f4982f1f8" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.283Z", + "updatedAt": "2026-01-06T14:17:56.273Z", "postProcessHash": "fb4b61ca36d8a883539ca6dce8170010ea218fcd51a23bc648986737dcd53384" } }, @@ -33600,15 +34146,15 @@ "19260fee9e23907e67f7f4589d997bab22cbabd4ffa0aa96806703a3b19aad78": { "1352a2dbb90191a61432180810a0431b454c526d658886e1c33fdb1c71cfc2bc": { "zh": { - "updatedAt": "2025-12-29T16:46:13.233Z", + "updatedAt": "2026-01-06T14:17:56.207Z", "postProcessHash": "a935a5a09bc41067f7e9c61a4009822ddbfaeaf43ca1b00e268f2e7ea3a4e899" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.267Z", + "updatedAt": "2026-01-06T14:17:56.251Z", "postProcessHash": "7032d2644260720142d73bb5705b9bb1dd26018cb12c421cb43c6bd87452858c" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.246Z", + "updatedAt": "2026-01-06T14:17:56.218Z", "postProcessHash": "19e5d22dfabc6b3fdd63975fc744155573e26a0e5e36750f12a91be21edd7e34" } }, @@ -33624,15 +34170,15 @@ "c71190c424029f1f3166b0dc0c975e43b747cc77aaa7477e6c8834baafd715ec": { "40fb6fb53bc03ff95d4c2a5b88f33db598b6bbba4a8c8273a31dff8b7c9a3fcd": { "zh": { - "updatedAt": "2025-12-29T16:46:13.236Z", + "updatedAt": "2026-01-06T14:17:56.211Z", "postProcessHash": "05e82ce73958e29dd50beb65180a9ece7ed4537018031676393d39297799eccb" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.272Z", + "updatedAt": "2026-01-06T14:17:56.260Z", "postProcessHash": "35eb622d4a1673d7a2b49ac6d4fbe5151e7dad205dad7c16e0e36879a5bbb7da" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.268Z", + "updatedAt": "2026-01-06T14:17:56.252Z", "postProcessHash": "54be6d29af47684e74d868f4b06c2de53bcb843f4152ac7556e0c16fc88d749a" } }, @@ -33648,15 +34194,15 @@ "3490c72ebec2d9960e4cc311de931030fc0f1de3f2421d0d2a30876926a983e9": { "20143fdffbf6f144ae3f0a848c2c4135b1dd5359078f18a35f86e5ad0368f0bc": { "ru": { - "updatedAt": "2025-12-29T16:46:13.251Z", + "updatedAt": "2026-01-06T14:17:56.224Z", "postProcessHash": "0e900ad1be8eb2f429c4841464e0b4498a05a4709ef5a077723cbb0fbe51a0d8" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.278Z", + "updatedAt": "2026-01-06T14:17:56.267Z", "postProcessHash": "716d4abd1d53aff3d2fbee3ec30720b9388d98d71e41c650e6551e5ee79417a5" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.279Z", + "updatedAt": "2026-01-06T14:17:56.268Z", "postProcessHash": "97b5b0db4d259d57c1a14c378a7372983c27ab7a03505119698e6d7525f02926" } }, @@ -33672,15 +34218,15 @@ "df1cbab9f5b7839553ad76ad0b3799099daaf2d5817b6bc1eea8369de5c5842a": { "3a49b42cc312e4959cc3883b924f895ba1f241473240bcbd42a5ff859048c600": { "zh": { - "updatedAt": "2025-12-29T16:46:13.326Z", + "updatedAt": "2026-01-06T14:17:56.327Z", "postProcessHash": "5f07fd1c30c64c511b3526fef59eacc817affb1338679fe14f3a924d4969b25a" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.358Z", + "updatedAt": "2026-01-06T14:17:56.378Z", "postProcessHash": "f9d645e97cee935ded980b682b04f4dfb10ed1ef757f1c0a7fa4cacd7075b0c7" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.327Z", + "updatedAt": "2026-01-06T14:17:56.329Z", "postProcessHash": "d942958f2d16a67f98516c8ba7d5e09365cf17b1713224474006387c823f1f17" } }, @@ -33696,15 +34242,15 @@ "d133c163191364466953c00a3494895f7b213291fa7eec0a3286c15ab6588c48": { "5b79efc25b16535ce983e05832f4052257d44d2790af29323a727be1048bc054": { "ru": { - "updatedAt": "2025-12-29T16:46:13.252Z", + "updatedAt": "2026-01-06T14:17:56.226Z", "postProcessHash": "1c12f6285ada04ba5ce9852d4510890ef1abfe836ea02241cb3472a9e193134d" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.250Z", + "updatedAt": "2026-01-06T14:17:56.223Z", "postProcessHash": "de7e11301702e7f96f6fbd025a9103d0ed8c30b19a1bb2d879dbd161c1061ad6" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.245Z", + "updatedAt": "2026-01-06T14:17:56.215Z", "postProcessHash": "179118fead23799b810921a3e169f3bea8d6683c40c860a67c860b97a38b3b54" } }, @@ -33720,15 +34266,15 @@ "5ae13595aec14e94efae48ed27bd30882ef99ca22e926c6eecac01f4a69b6e60": { "4c6c9c998098906955cd0a416322eaf10b8ceb9a33df69bb90b4e0206e58399d": { "ru": { - "updatedAt": "2025-12-29T16:46:13.253Z", + "updatedAt": "2026-01-06T14:17:56.227Z", "postProcessHash": "e095111c0493f9d0840646462377d2df8319e71207872038a26812e8e26fc1b7" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.263Z", + "updatedAt": "2026-01-06T14:17:56.245Z", "postProcessHash": "832ebe1b67ef5ee07034a93035676b1d6ba9f009d34428f33f25ec2daaa43771" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.252Z", + "updatedAt": "2026-01-06T14:17:56.226Z", "postProcessHash": "be346f653831042915548f58d754323148c15bcc68ce4d4da3f3f1cb6843b67e" } }, @@ -33744,15 +34290,15 @@ "52f1e721b650aa5a8bb67053afa7caf447a7332e92f416526d36e8941d726d04": { "8c41257fcdc2d116e76c9a1609bc65adf58513acff260b8f2aa36d74bccf31da": { "zh": { - "updatedAt": "2025-12-29T16:46:13.254Z", + "updatedAt": "2026-01-06T14:17:56.228Z", "postProcessHash": "12bd4e4ebf5e50aa1242bea2b6d42c8a189578955d473976c1297fe908646b19" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.270Z", + "updatedAt": "2026-01-06T14:17:56.256Z", "postProcessHash": "630e5b84780be36656bc937645ed65fb88179d11247d1e85ea1205ed29e6f931" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.272Z", + "updatedAt": "2026-01-06T14:17:56.258Z", "postProcessHash": "82e84b3390f9f8829658dd58e2d16c166aaf2e96fa5c3350c51960492bd5f800" } }, @@ -33768,15 +34314,15 @@ "5a0ce1710868a408e43b0c9859a80ada3b08b93b0d26cb45f2ea004556e9d2b3": { "ccdecf590d1994e9c17ae91e353b32d2f66c08e379ce1eeb73f06a674afd8375": { "ru": { - "updatedAt": "2025-12-29T16:46:13.255Z", + "updatedAt": "2026-01-06T14:17:56.232Z", "postProcessHash": "f6556e33a7a453d18a0af0e707e23c87b926a1ed049f3aa11215b62fd2069a41" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.259Z", + "updatedAt": "2026-01-06T14:17:56.239Z", "postProcessHash": "a2d654d0961b9427057876a5b47403d5864939d9a0cc302f7941e73ea9093498" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.258Z", + "updatedAt": "2026-01-06T14:17:56.237Z", "postProcessHash": "cec459b53ed81777f738433c26adec08ac1214e5d748451d10347b50bf3fdc2f" } }, @@ -33792,15 +34338,15 @@ "9b3e13e23b506d9d9ec9b2c5fbf8b9d2a62e1de7d0175c5f6330498124203aac": { "86c47ff8f3b3666e1a6b49b2c8302b448389e1e3b41ab3b1450e055082821549": { "ru": { - "updatedAt": "2025-12-29T16:46:13.244Z", + "updatedAt": "2026-01-06T14:17:56.214Z", "postProcessHash": "c0defa7229fee6b27c2a2a3244e13cc4c0ed6f0f4c6f6605a86a70bf36b99648" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.248Z", + "updatedAt": "2026-01-06T14:17:56.220Z", "postProcessHash": "8c1816d77d3551c7d6dd5710ccc8274f66e5809dd3cea3606629893483ebfef7" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.286Z", + "updatedAt": "2026-01-06T14:17:56.277Z", "postProcessHash": "96a408123b4168c543a77c179b015d8f620e6307650d53bdf90c2f19ec9ab2a9" } }, @@ -33816,15 +34362,15 @@ "30f843a3827d19f26bae893b6a89699d15924309d3ee0d771f1309eb391c8171": { "a5eb46f97ff75367e3c2a77e86b555adee47157db34a73cbb68c4faa8e14d033": { "ru": { - "updatedAt": "2025-12-29T16:46:13.261Z", + "updatedAt": "2026-01-06T14:17:56.241Z", "postProcessHash": "da0c38fbfabd7c396006ed747fbe0f6aa5c0dfd8e816c461ffaab1707e3a8e7b" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.278Z", + "updatedAt": "2026-01-06T14:17:56.268Z", "postProcessHash": "655ba8e4e20f3b5f89cae3033f51649118b5face2393e69b8ed2d63f7c170bed" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.284Z", + "updatedAt": "2026-01-06T14:17:56.274Z", "postProcessHash": "89278bc5a6e84647177b28cdc478fb16c00eb59607b5d452a4714361a554537e" } }, @@ -33840,15 +34386,15 @@ "15cacb127be1afdc884be3ff13c61ff48d4ae41e28740309f5f445002fb0fa90": { "a9c8fa4f53951ce4026e170171a0517a80777e9037e5bb2f16eab83d3ffaa9cc": { "zh": { - "updatedAt": "2025-12-29T16:46:13.265Z", + "updatedAt": "2026-01-06T14:17:56.248Z", "postProcessHash": "98be0adb514ab99e364abdbbab872ca95c8b60c312d3df36ed607421c9f38c2b" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.280Z", + "updatedAt": "2026-01-06T14:17:56.270Z", "postProcessHash": "c6b1ffeb8a927241e2108dbeb02a8cbb166d5b270f1e7cdf770147d6ef83a7d2" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.258Z", + "updatedAt": "2026-01-06T14:17:56.235Z", "postProcessHash": "100a6e4170215f9fe15c083b750d4be45500a2d7d7846dc224623388d9b9ad91" } }, @@ -33864,15 +34410,15 @@ "941b4aa0aa9dbadd0a190a16a820e2bcff3884350dd172d2d70c5e4bc21490d1": { "429135ca177730d77f47327bd61c6aecd212a21d1a4625d711d13a6e0c6886bd": { "ru": { - "updatedAt": "2025-12-29T16:46:13.328Z", + "updatedAt": "2026-01-06T14:17:56.331Z", "postProcessHash": "429135ca177730d77f47327bd61c6aecd212a21d1a4625d711d13a6e0c6886bd" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.329Z", + "updatedAt": "2026-01-06T14:17:56.332Z", "postProcessHash": "d744ea0501987d0d0496e17c8100a30396b41d2cb02d4b4937b9c75678cffd0f" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.327Z", + "updatedAt": "2026-01-06T14:17:56.330Z", "postProcessHash": "429135ca177730d77f47327bd61c6aecd212a21d1a4625d711d13a6e0c6886bd" } }, @@ -33888,15 +34434,15 @@ "43aa5066af84a8c935f0fb2dab57ea37c855c50a8c4bf2fe5da1196726ec9767": { "8102f53c258449f037fd5c8bfbe1d4547d061cf4c8af817be8f9e6c45a4504b0": { "ru": { - "updatedAt": "2025-12-29T16:46:13.266Z", + "updatedAt": "2026-01-06T14:17:56.250Z", "postProcessHash": "c5c494264909d5f706f37779f7ef7d2444cb21e0a76c174cfa993154925c11f1" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.270Z", + "updatedAt": "2026-01-06T14:17:56.256Z", "postProcessHash": "bc18044844f416597eef2c300fc30d72ea362c8100b916b3cde37fd6397a9e41" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.266Z", + "updatedAt": "2026-01-06T14:17:56.249Z", "postProcessHash": "db0d66c6403ee0503be5db1613463d024904161282eccf111024893eea2c5ac1" } }, @@ -33912,15 +34458,15 @@ "a3a2fbdc5aafe02b0407589bc3e1a8e94202c17584b7025219f1bfd6b9bf4a39": { "4874e6e4325e8473fce83ceca9411bf266bf400e8eb78d3c9e8eec128469d820": { "zh": { - "updatedAt": "2025-12-29T16:46:13.269Z", + "updatedAt": "2026-01-06T14:17:56.255Z", "postProcessHash": "dbe129e41240b3563a495e332c1a7537b68ce199d3cb0d5d8493e657c151ef94" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.281Z", + "updatedAt": "2026-01-06T14:17:56.271Z", "postProcessHash": "1b128db269c12be2125d03f195c663118806c04caea0bed54648c79f2879ccee" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.329Z", + "updatedAt": "2026-01-06T14:17:56.334Z", "postProcessHash": "77dc02c6a2dda09ee7e27e8c8b6c9974f8c700d5e3fc9d9a5857aa16e47a4bc5" } }, @@ -33936,15 +34482,15 @@ "4877e91053b08c2c45734e5085ccf9117e8354554dd8460e2ec3e3afe7aa0ab7": { "1e4f5fb2eb3f3d09c80229402157ba0cccbf2f37d7521185e9cbb71109edeb84": { "ru": { - "updatedAt": "2025-12-29T16:46:13.269Z", + "updatedAt": "2026-01-06T14:17:56.255Z", "postProcessHash": "c416d8bbe6b0a14640ce093aaca194afac08b23afaa8a014e84781695a67e2cb" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.273Z", + "updatedAt": "2026-01-06T14:17:56.261Z", "postProcessHash": "ff50c271592348dfa10d95b4d2fa83784b90178a9865e6dcf8c7996829ea7358" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.263Z", + "updatedAt": "2026-01-06T14:17:56.246Z", "postProcessHash": "d8baabec471b1d32f76513bd2dff9b6de15793884ce64d64d293b113f1e10fab" } }, @@ -33960,15 +34506,15 @@ "a444951bd73cb75b037df1739eb17fc3c4057630058e2cd15b863d55feb1e497": { "be2b70c111bb68681c2eb58d9d87da824e86dac80806aaf1af31eb7e683ee46c": { "zh": { - "updatedAt": "2025-12-29T16:46:13.497Z", + "updatedAt": "2026-01-06T14:17:56.587Z", "postProcessHash": "a69a8cb01764a876458f03b69a78516212b48aaa83276822a31cbe95a9280447" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.510Z", + "updatedAt": "2026-01-06T14:17:56.604Z", "postProcessHash": "f5b00425366d9e5f9f1d74bd931c71c3afdeb85f0fe83d98f4796346c102a5c4" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.520Z", + "updatedAt": "2026-01-06T14:17:56.617Z", "postProcessHash": "41a6112aac463dfc4595f0588fc535754fdabd82c8456928dba0310427926364" } } @@ -33976,15 +34522,15 @@ "b61feee503868b9ae36d297816fda3d2e834c0f1ae6f4deeefcdd9b66b895886": { "4ef342336cc701c4e8d32cd01c1302bec119023fab8a7c695a4baae3e097696f": { "zh": { - "updatedAt": "2025-12-29T16:46:13.334Z", + "updatedAt": "2026-01-06T14:17:56.344Z", "postProcessHash": "897d22cdc95fedfb5bc831477c535f31271b80876df77597db415be5838b4fe8" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.346Z", + "updatedAt": "2026-01-06T14:17:56.364Z", "postProcessHash": "61c41b1a73941c06c3deeb890532ae7848b0430f64dbbb45e0d8c7076d999431" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.348Z", + "updatedAt": "2026-01-06T14:17:56.366Z", "postProcessHash": "bd5bbeaad62d6e4229654b54bce7fb7f79bb7acc0a4df7c38d5a8e1e36fae921" } } @@ -33992,15 +34538,15 @@ "b2e9e9045947db36c00975d8bf16f27ba366df3f4c68a977779fbf5a78b77948": { "046cb0e8076cf8c0b6c68469e0acc454e928a24cf0dfeb0b83292ecb2957f821": { "zh": { - "updatedAt": "2025-12-29T16:46:13.498Z", + "updatedAt": "2026-01-06T14:17:56.587Z", "postProcessHash": "69f8c78a9dd7192f9cf0a1c5436633d814683918858fa04bb2f446ea9d679f7a" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.511Z", + "updatedAt": "2026-01-06T14:17:56.605Z", "postProcessHash": "4b6701c830b320543ff22211f68de3dcb9496b2ae82fd87a53da2108a258f77f" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.507Z", + "updatedAt": "2026-01-06T14:17:56.601Z", "postProcessHash": "50a15c131b000a30b244c4f99accb805712b621a48522d7106ef8d095399bfed" } } @@ -34008,15 +34554,15 @@ "a8580441e057aef43ff213b00764e321caa0062300adad449c1147c6a00554d7": { "803165c43e8eb2cc396419bba2e85a710e5a34fa1c1f8c024a4ef0cd296866fa": { "ru": { - "updatedAt": "2025-12-29T16:46:13.592Z", + "updatedAt": "2026-01-06T14:17:56.704Z", "postProcessHash": "f31c14c692c2d439870e2c7150c30d1c0a074c5b4fb93ca45f9bae4a87c3d2b9" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.578Z", + "updatedAt": "2026-01-06T14:17:56.690Z", "postProcessHash": "30f3a8d9094d10e45dcb119b0a61e90ea813d4635d0115fd60c9791d38e94584" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.560Z", + "updatedAt": "2026-01-06T14:17:56.672Z", "postProcessHash": "ffb811afaa4dfdf9543f7657d891b8b239a93d69a0e4e11bc9e7e696d0cc60c6" } } @@ -34024,15 +34570,15 @@ "581f0a6e4c0d192c8606c68934251365ad7ea4136bd5acf7058f58a76f6d5710": { "ee59cd484bdaa73a60bc061cc701d580ffd417f73fdcd689e3fdd983d9f475d2": { "zh": { - "updatedAt": "2025-12-29T16:46:13.557Z", + "updatedAt": "2026-01-06T14:17:56.667Z", "postProcessHash": "50c626934c76a76e2e75fa9d7c049c0df13b0b5725e77db2d25a13168fd3603f" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.560Z", + "updatedAt": "2026-01-06T14:17:56.670Z", "postProcessHash": "8107a19e4db88645849555abe6df6ec8e3ef104ac58f8840dbb8a407706a8628" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.582Z", + "updatedAt": "2026-01-06T14:17:56.694Z", "postProcessHash": "bfe276699542536286e67e0c4110add1d5cecdca9ff9eb4090bb3dbde9e278c1" } } @@ -34040,15 +34586,15 @@ "8d435bf9e6c99e8e1a52f439de6bcbecd2baf3265ece4535053d1e1416ca45c2": { "0c0d01e2f586c0d713dccf1bdfde13a36570342ea30a52d1914566a1af56d594": { "ru": { - "updatedAt": "2025-12-29T16:46:13.592Z", + "updatedAt": "2026-01-06T14:17:56.705Z", "postProcessHash": "b5fdf0954a5691554dd1c793a5b4d719fcc7984c40ee13ec4f67410eab88c006" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.591Z", + "updatedAt": "2026-01-06T14:17:56.704Z", "postProcessHash": "43b5ba9d9e7e98e549020b79dde6974e9828c53be7d59b16e36f99c5594da813" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.573Z", + "updatedAt": "2026-01-06T14:17:56.685Z", "postProcessHash": "127f17089634bba7ad88f57be5d5a89bbe812d477de0e1f40a59c9dbcd2b000c" } } @@ -34056,15 +34602,15 @@ "ff15f334dd81c6f832484d8628568a040ff836d4668005abe916911afbffe911": { "5255a26915e56655751575c9c47141ed725215520f648de9ddb2650d95ec7c9d": { "ru": { - "updatedAt": "2025-12-29T16:46:13.499Z", + "updatedAt": "2026-01-06T14:17:56.588Z", "postProcessHash": "c60574c31a4505724187b7b5cad83eee803524309299521a30db0ebf8bd17aec" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.507Z", + "updatedAt": "2026-01-06T14:17:56.601Z", "postProcessHash": "3d6724177214f5e12e01de50929a105a2af94385a9af23c66014280f323017dc" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.509Z", + "updatedAt": "2026-01-06T14:17:56.603Z", "postProcessHash": "ae0eaf09bfb68236c84975e8362f394e74b2ded55ef62b036fe243b01ff40435" } } @@ -34072,15 +34618,15 @@ "84d3a07f6bb23015f78e31d1cc93e61eaf670a2dcee7c14342d97b32fb037866": { "e5b0ff50a5b4e2b593b51ad0606dd79a8525ea9ba7bc58e22bd24ad8c5a925cc": { "ru": { - "updatedAt": "2025-12-29T16:46:13.499Z", + "updatedAt": "2026-01-06T14:17:56.588Z", "postProcessHash": "07b6f56c0b906579b68fd0fd1a209a9c7877cf56147e377a2f16765f515d1293" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.601Z", + "updatedAt": "2026-01-06T14:17:56.714Z", "postProcessHash": "579f32273f08ca6cc55b0d613a1c72d20317a18e17b2e7511a0e12b1ac2e0566" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.500Z", + "updatedAt": "2026-01-06T14:17:56.589Z", "postProcessHash": "aba8a8a188565b506f8100d134b363a24314ce75b612fd5ae33b8c2954d405e2" } } @@ -34088,15 +34634,15 @@ "54d5d67f63f4e8a40581478b2c6f0684322d03116d22c84c5ebed5934c483f47": { "04a1c4adbd60bd15811afb47b49c06837b0eb88b3c5f243bc17465571d25d192": { "ru": { - "updatedAt": "2025-12-29T16:46:13.559Z", + "updatedAt": "2026-01-06T14:17:56.669Z", "postProcessHash": "d218f953c26c5b85acae57c8b792f848e540d95a54ec75ebaeccaf5c959f27bb" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.586Z", + "updatedAt": "2026-01-06T14:17:56.698Z", "postProcessHash": "3f3f40675eb3d2cdfdef0eabec565749eb3a9cf8823f2d4bad4b97b0f020b6fb" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.567Z", + "updatedAt": "2026-01-06T14:17:56.679Z", "postProcessHash": "d6074fa42ba9268850aec20b31c2c5758215e6a3735326d3cb91c337fc550304" } } @@ -34115,15 +34661,15 @@ }, "44a2121418c10665853a536dedd7553eb6cfcbb6bb546a6e81e42e329c80cc55": { "zh": { - "updatedAt": "2025-12-29T16:46:13.590Z", + "updatedAt": "2026-01-06T14:17:56.703Z", "postProcessHash": "d6bda9e56bd388821fca08d697b62460ee2da3f7144750f7341c3da0ba109704" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.594Z", + "updatedAt": "2026-01-06T14:17:56.707Z", "postProcessHash": "e967ecd99a86a93a95b860e26598f57e5b23e313b0c5b3ddc1ea558ff60c3d8a" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.593Z", + "updatedAt": "2026-01-06T14:17:56.706Z", "postProcessHash": "188be55915c40ada4125cd538e4ed34362e6f099e6d2ec846e272b53ab64805c" } } @@ -34131,15 +34677,15 @@ "e9c8787fbd5d3ab34de4fbc2069baaf46f6986970cc7b8edaffc49a991d61cf1": { "7b366931a91740ebcbb465a17f5142106ecae677c271c9b69d08fa475ef502a6": { "ru": { - "updatedAt": "2025-12-29T16:46:13.597Z", + "updatedAt": "2026-01-06T14:17:56.711Z", "postProcessHash": "4ead8ffe4624b732fbe4dede640fc270488bd4812504ee0cd5dc64edd8f8d184" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.513Z", + "updatedAt": "2026-01-06T14:17:56.606Z", "postProcessHash": "60d29a44e24697d707c709e7df3c3f9a75047a9f9278eb33ed079c76cc363d51" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.546Z", + "updatedAt": "2026-01-06T14:17:56.655Z", "postProcessHash": "978677d1584966a27761d4f01adcb26eb6b587cf52f014de9038a11c40d5591f" } } @@ -34147,15 +34693,15 @@ "14c0bbca8f7e350393ed679d410ca4b9cd58e0c5ee29885f7e65beae7f51c703": { "82258f2bbaceee1cc2b71c162991c1eb92c67498d494693cd385b4bbbb78fedf": { "zh": { - "updatedAt": "2025-12-29T16:46:13.561Z", + "updatedAt": "2026-01-06T14:17:56.673Z", "postProcessHash": "ae6c618166b1a02456839b9bf23203163673ed14963f4ac519ffe4a98d1be4d0" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.589Z", + "updatedAt": "2026-01-06T14:17:56.701Z", "postProcessHash": "2532ed3a72f32bd9238b9338740f6f2f40f1bd69d66c019bec758d2438f63850" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.556Z", + "updatedAt": "2026-01-06T14:17:56.666Z", "postProcessHash": "8ff38c82865454afc973e19b0f425ffb1cfc8af48c150949242c6e38334ad5ea" } } @@ -34163,15 +34709,15 @@ "dd1f243e110cd8cd4c72fabd62923f7077ed63859ba2c578b1561943fa5490a9": { "38b8464001ddae6ec2a702908a9a44c1549405c54b818345c5ee01e6079833f1": { "ru": { - "updatedAt": "2025-12-29T16:46:13.562Z", + "updatedAt": "2026-01-06T14:17:56.674Z", "postProcessHash": "dfd988f9bd931d0f62129fc532f917b6063872e9db7ad418f6fd10456b767cd8" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.574Z", + "updatedAt": "2026-01-06T14:17:56.686Z", "postProcessHash": "1b51e44d2d6b2b3b520e9f9cab02bed1e37e7741d083185ba87232f90841282a" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.571Z", + "updatedAt": "2026-01-06T14:17:56.682Z", "postProcessHash": "da1985256a75ae72157e2fc4ca3bf9b061c57e073b251534027a7bb848495691" } } @@ -34179,15 +34725,15 @@ "ba14369199fbec0937cc2e6400083d328a65fa21e4191586d4474ff60d50b27a": { "687b275c30319ae8712f2bb22a713be7698df9bf60e3f0a3a92687b0ad5813e5": { "zh": { - "updatedAt": "2025-12-29T16:46:13.442Z", + "updatedAt": "2026-01-06T14:17:56.503Z", "postProcessHash": "c8d9954849548a3263e9b0eb80061e7d4693c67e20195e446dda88803a55f4d5" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.454Z", + "updatedAt": "2026-01-06T14:17:56.521Z", "postProcessHash": "87108a83b9186570711f4b9d3511971bfd4b6e9db4b994af38c60d7df0ef54b9" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.462Z", + "updatedAt": "2026-01-06T14:17:56.533Z", "postProcessHash": "191d52b5d09ba978ab40b360d705b79e405e9e922b3819b2880923ebeeb1a806" } } @@ -34209,15 +34755,15 @@ }, "fab3e9030eaa388b5e956563dbce783f8f80cac027c3fe9357c7981282096f7d": { "ru": { - "updatedAt": "2025-12-29T16:46:13.603Z", + "updatedAt": "2026-01-06T14:17:56.715Z", "postProcessHash": "7bfd5de2fce9d6c835e8f6404422173cc4e4bc3523dab8cc47b92040fb389e3f" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.604Z", + "updatedAt": "2026-01-06T14:17:56.716Z", "postProcessHash": "d53fecf2ba5bc5e130f6178aacfb7627e6e27dfbddac70d3f543fdbdd6bc80f1" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.604Z", + "updatedAt": "2026-01-06T14:17:56.716Z", "postProcessHash": "451ab3ff4d5508242f224a239e289651b3c3a9ec4d44c9ae41b918784aab59d2" } } @@ -34225,15 +34771,15 @@ "6b0a1864f6fd70f19415c4e085caeeff45b83244daed33758454b88d9859c692": { "ecc79a94c617ae9c2438b3b427bea3004cc3f1e8a3f90157b36f8157166a99c0": { "ru": { - "updatedAt": "2025-12-29T16:46:13.295Z", + "updatedAt": "2026-01-06T14:17:56.285Z", "postProcessHash": "7328e13acaae794a00686895198fe25cfe5eb067f892c749f14f3899019cbe8f" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.296Z", + "updatedAt": "2026-01-06T14:17:56.286Z", "postProcessHash": "2cbfcd6a3a217c2df469624b3c932378563e2bf11ca3e6192c22d8bdad69eb17" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.298Z", + "updatedAt": "2026-01-06T14:17:56.288Z", "postProcessHash": "5edb8c427f4061c4bf532253e23ff06bb241dea7f56f992c9ac0ae9894611a72" } } @@ -34241,15 +34787,15 @@ "543d200284e9587853538717503646bf5a945bb43ccdb3b059dbf4eac4c1219f": { "54eb6cb69d7901f33c8b60f1ebf53444695ba214c41ecd088af34c6dde0d4e44": { "ru": { - "updatedAt": "2025-12-29T16:46:13.563Z", + "updatedAt": "2026-01-06T14:17:56.675Z", "postProcessHash": "09a774cec364865b453196c440ec674f37c8819f6e6e3299646b87a9b8cccd1d" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.587Z", + "updatedAt": "2026-01-06T14:17:56.699Z", "postProcessHash": "18300940bd3fbe0bce544b3433d34f143c978387e6c622e4704209dd63c3202e" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.595Z", + "updatedAt": "2026-01-06T14:17:56.708Z", "postProcessHash": "d5784285e90f51c5e6d51300f6404fd3b1d4add13a1906de20009df03ec7a23c" } } @@ -34257,15 +34803,15 @@ "fb3d54543e5565bc4305346ef7c2d5312674405acb6e193ffaf4fb30ddd7ce71": { "df9135ddc19fc1bbbb29d708bd2c3afbd621e4a67a544ede4538a80aa5b420b7": { "zh": { - "updatedAt": "2025-12-29T16:46:13.564Z", + "updatedAt": "2026-01-06T14:17:56.676Z", "postProcessHash": "d4e168bc9ba3c7299b663a8c967d8f663174e0d8101eb437e3f876f5f56a82aa" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.597Z", + "updatedAt": "2026-01-06T14:17:56.710Z", "postProcessHash": "dc9dec5325ec3b560c03ebb60dfcb69614acd3f1defde76e30af6e73dffe845a" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.558Z", + "updatedAt": "2026-01-06T14:17:56.669Z", "postProcessHash": "0428993b2a0635368d8d3708970e2d2625a646297617317fedf5f74acf530001" } } @@ -34273,15 +34819,15 @@ "14b4676b953c664afb277f933e119c8da2f742590c1a9a4bb7b2beee22a7eb7c": { "5ee021b8f49ccf1b18d5dd6f94a9b7418709365c4195a6b0854ae20f5132dd10": { "ru": { - "updatedAt": "2025-12-29T16:46:13.501Z", + "updatedAt": "2026-01-06T14:17:56.590Z", "postProcessHash": "f7d3aea7e4adb0a83741c09f20eeb272ed66eb3ab09bf033773ae75e9dca8d83" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.445Z", + "updatedAt": "2026-01-06T14:17:56.508Z", "postProcessHash": "322b9afc639a9106704da961eae5e243afcd2081ba6a9cf78c6a96da5e9a152e" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.549Z", + "updatedAt": "2026-01-06T14:17:56.658Z", "postProcessHash": "f3d9410444da9ef0d3eac52ca588ad510152ca37a30a3077dabd32c7e3dac7a0" } } @@ -34289,15 +34835,15 @@ "0f67bde502826e1dba901c267e553e40b45a88ea2514fac35224b3011c9eee95": { "40ccc189c309d81655c42b58d6550569ed8e72b0cd53cc36991d1ab17eeb62a2": { "ru": { - "updatedAt": "2025-12-29T16:46:13.501Z", + "updatedAt": "2026-01-06T14:17:56.590Z", "postProcessHash": "333599dc00bf0ed5eaa17824b51287ee845207e8952815a17db448d63e9e7e4c" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.525Z", + "updatedAt": "2026-01-06T14:17:56.624Z", "postProcessHash": "8933570660f6547d74908b107d4fd178e63f1c1b44ce64193cddefecafc5ba04" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.507Z", + "updatedAt": "2026-01-06T14:17:56.600Z", "postProcessHash": "ffeb0d89b04c883c01c798c5c901a15dc5addccdea6bfceeb6b9f47b7bb2e713" } } @@ -34305,15 +34851,15 @@ "93a056e5b771b1f20f3660dfb370f302960d593ccff14a5684b961c760cac61a": { "b34875547efada966d6f58a27a70b1a17213f7251649cd70a29b9fcfe4aeecfe": { "ru": { - "updatedAt": "2025-12-29T16:46:13.564Z", + "updatedAt": "2026-01-06T14:17:56.676Z", "postProcessHash": "8fa36fc7b6781f18ea683d84f55e3c9cb77526c7a5a8450ba81e3a4361a069ea" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.570Z", + "updatedAt": "2026-01-06T14:17:56.681Z", "postProcessHash": "569971bdf74c2ad9b5664b23a720d68ce2429d66f170ac4259d8bbd15c6826cd" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.593Z", + "updatedAt": "2026-01-06T14:17:56.706Z", "postProcessHash": "d3a962ed96c2dc442dea308be94850e0805661c3eb6bbeedaf83ce49e38119ce" } } @@ -34321,15 +34867,15 @@ "ebc5db761ec12b7516bddcdbb93d868ef5c7d1458f56a4288fab25b5e45a980e": { "e20f9f94eb03e49c98c43e022936ac730a22ccaa64a4911703f457858a10f672": { "ru": { - "updatedAt": "2025-12-29T16:46:13.502Z", + "updatedAt": "2026-01-06T14:17:56.591Z", "postProcessHash": "343dfcad413c71040fefbd674aefe668766405519d9e0fa38c00675d72fca7be" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.514Z", + "updatedAt": "2026-01-06T14:17:56.608Z", "postProcessHash": "90820c9820c1c014f58535dd4658a4873488a2c657847aa99b35978254a5a72d" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.525Z", + "updatedAt": "2026-01-06T14:17:56.624Z", "postProcessHash": "1759f76c0922f45c12f0a7a0e6a42b3b0e76f1ea4cb7d77a59b823b79afd6e9e" } } @@ -34337,15 +34883,15 @@ "f016a1612cced253f74884a4791ce47126fba584f3ee773967310982b7597b83": { "cc687fc17daeeb33c7c5bef1a2bc7ce51ba437f92c4354369ab58a024c2123b9": { "ru": { - "updatedAt": "2025-12-29T16:46:13.443Z", + "updatedAt": "2026-01-06T14:17:56.506Z", "postProcessHash": "6a5618a14c838dcf5923004409d7e1f8ca812655a1cb031a9b1a26779e69a4bd" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.547Z", + "updatedAt": "2026-01-06T14:17:56.656Z", "postProcessHash": "c7e64faae60d8f10709fe22b95cef0e05f7789874037f3b456094e010a62b97b" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.447Z", + "updatedAt": "2026-01-06T14:17:56.511Z", "postProcessHash": "e2f69896abe6a444c8c20a9d5f88d9effa159344247f5f2de38d20e8181668f0" } } @@ -34353,15 +34899,15 @@ "f657cce435f5bbd4c37d13d06e137048b8588d93820f3ee19d2b600ed82b6819": { "f4e41d0b3fe1c04866d1690f92f407974255a1b7b269dd34af873b60f54ecb09": { "ru": { - "updatedAt": "2025-12-29T16:46:13.670Z", + "updatedAt": "2026-01-06T14:17:56.781Z", "postProcessHash": "8c0214dd58224cfff2b7b1117bcdae1362d1f9f7cf1ae4cb3891e8367e01fb26" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.577Z", + "updatedAt": "2026-01-06T14:17:56.688Z", "postProcessHash": "7729aa1914b3ae3ec6bde046f8562d1908bc2772e0696dfd0c1233d1972f3af5" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.667Z", + "updatedAt": "2026-01-06T14:17:56.776Z", "postProcessHash": "524c0d09364249bac454cd7267ba2a9e7a79340cdfecbb81781a7d895c9eb8eb" } } @@ -34383,15 +34929,15 @@ }, "7a2277c1f4c5de6544337ab439cc4f7f6f6704d614203478e96bb1aae453c488": { "ru": { - "updatedAt": "2025-12-29T16:46:13.543Z", + "updatedAt": "2026-01-06T14:17:56.651Z", "postProcessHash": "636d9cd5944a6a85e3d8b275e9fa93a748852573e8b990032cfb5df36017ab76" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.544Z", + "updatedAt": "2026-01-06T14:17:56.653Z", "postProcessHash": "96739de3db9e81f8608b35353a447a0804956fb2773515b9d909f4a534b63d55" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.544Z", + "updatedAt": "2026-01-06T14:17:56.654Z", "postProcessHash": "af234a2fcce1546635d436740723b3a5f8dafcfdf611a8312a48d20fc7bc8a0d" } } @@ -34399,15 +34945,15 @@ "bb301384e711a26eac5ab620725ba3651e9a050418e5c4b03409244a6916096a": { "fa37176654ae0b31692c4310f41376cac060e1fac5de1cd5fa4a6795dccc88be": { "ru": { - "updatedAt": "2025-12-29T16:46:13.503Z", + "updatedAt": "2026-01-06T14:17:56.592Z", "postProcessHash": "fa5471ff89c0226a38e50b999de92d42c1683d5883c57fed41822750f5c08a2b" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.542Z", + "updatedAt": "2026-01-06T14:17:56.650Z", "postProcessHash": "66f378585eba035adc97329975619f798d8d03c0c7308c6577a26d4086d156cc" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.512Z", + "updatedAt": "2026-01-06T14:17:56.605Z", "postProcessHash": "f5d1cba45eda9a17dd97ce648afa7a47048f5247cbbb5589efa18b257d58103f" } } @@ -34415,15 +34961,15 @@ "be5b2c5f34f09aeff162abaf45ccf882807b091723c8992305ab5dd6d9d85255": { "a4494efc6991ad7d0de3d84b86e624697071ddfce8e39ebd42923fd6777c8531": { "zh": { - "updatedAt": "2025-12-29T16:46:13.504Z", + "updatedAt": "2026-01-06T14:17:56.594Z", "postProcessHash": "60c6f04bfec3891b311b6c98f310fe5bea538ceb93121b0908b1693775092c79" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.504Z", + "updatedAt": "2026-01-06T14:17:56.595Z", "postProcessHash": "fa7f17ee6d18ea60185075cb5227ffa2b47976735734b1a15715589d333969ed" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.505Z", + "updatedAt": "2026-01-06T14:17:56.596Z", "postProcessHash": "8619037edd0437b1205746861c21a460513f8e5c092fcb6d01fd73285becfd9f" } } @@ -34431,15 +34977,15 @@ "b7ac58ff02407e2eedc607e8ffaadc709667604b213c6400361a10c2a2c6e252": { "ae94f635f518e540a73bbd471cee47b91d539ed719fbffdaf358c667006c4bb0": { "zh": { - "updatedAt": "2025-12-29T16:46:13.504Z", + "updatedAt": "2026-01-06T14:17:56.595Z", "postProcessHash": "9198365aca422eb022abf08a160a409a8aacdd6df5907b72e87f0f22cc06ca11" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.506Z", + "updatedAt": "2026-01-06T14:17:56.598Z", "postProcessHash": "8d1884e5b30236d65b1be1d05c476116cea395b4553cdfa3549aeb943fc51286" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.500Z", + "updatedAt": "2026-01-06T14:17:56.589Z", "postProcessHash": "3339b3303898d39914a3587ccb9abf36df71d277730266f66d6895714b8083b7" } } @@ -34447,15 +34993,15 @@ "f2566c10efb98a7e07538653cda7cc2135c5c1aaaef306a48e8e753ebc662a1e": { "86c47ff8f3b3666e1a6b49b2c8302b448389e1e3b41ab3b1450e055082821549": { "zh": { - "updatedAt": "2025-12-29T16:46:13.301Z", + "updatedAt": "2026-01-06T14:17:56.291Z", "postProcessHash": "8c1816d77d3551c7d6dd5710ccc8274f66e5809dd3cea3606629893483ebfef7" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.299Z", + "updatedAt": "2026-01-06T14:17:56.290Z", "postProcessHash": "c0defa7229fee6b27c2a2a3244e13cc4c0ed6f0f4c6f6605a86a70bf36b99648" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.310Z", + "updatedAt": "2026-01-06T14:17:56.302Z", "postProcessHash": "96a408123b4168c543a77c179b015d8f620e6307650d53bdf90c2f19ec9ab2a9" } } @@ -34463,15 +35009,15 @@ "c3d6ae1d7c3ab47f1321484233d7e2d4c6960c431966f43a50c94da67e615da5": { "7fe2061b7ffe48c965db16b4f632dfa6a0cb32888881320b91a370311396c437": { "ru": { - "updatedAt": "2025-12-29T16:46:13.445Z", + "updatedAt": "2026-01-06T14:17:56.508Z", "postProcessHash": "68c99d929f252ea3754819bd8550b2a2a7794a65733dec05c2fb631087e62dce" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.443Z", + "updatedAt": "2026-01-06T14:17:56.505Z", "postProcessHash": "0f45fa5978c715f5b70bac97a40700cdb702e95641146e734337da0665b66347" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.444Z", + "updatedAt": "2026-01-06T14:17:56.507Z", "postProcessHash": "cbe51f81ff245663766792d694b95ee09dd8d09a492fed40eee4f9251ec512f5" } } @@ -34479,15 +35025,15 @@ "6f8f89ce13c70fe1235d08203ef798a559154950245f81065ab893d0e5c542e3": { "f96e0b809311db6c2baef6eea1807c7d62c21afafa50f43dcaed5dc333127e20": { "zh": { - "updatedAt": "2025-12-29T16:46:13.505Z", + "updatedAt": "2026-01-06T14:17:56.597Z", "postProcessHash": "ed9e3cf9f31df034560bdea315422808f234d9f9b3f28d82950b4b1f08cd6eb8" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.524Z", + "updatedAt": "2026-01-06T14:17:56.623Z", "postProcessHash": "d4e7c4f8edc510e1b92d0928a91c4688aede5e5a4e116a12437845e4e733b166" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.545Z", + "updatedAt": "2026-01-06T14:17:56.655Z", "postProcessHash": "af42ac78de1b3ef4af093dcb3cab937585c253e6d5c6fffa8cc9537e39d3c8be" } } @@ -34495,15 +35041,15 @@ "857f78e82a54d7a2128693b3d739a16697e3d23a8ab3595b336d9da8d6d1d643": { "3fadea060a820d56c666c2cf5cdeb8e49e9c833dfa43de6b17bb735aecf7c763": { "ru": { - "updatedAt": "2025-12-29T16:46:13.548Z", + "updatedAt": "2026-01-06T14:17:56.657Z", "postProcessHash": "8d42b622db5275d19c8b2345622ed89f140fdf3c8dc21016e057ced32b953a8a" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.545Z", + "updatedAt": "2026-01-06T14:17:56.654Z", "postProcessHash": "ae48f70ef7cd6be30bb28a567152140c98665d7b69810e4557151902877df6e6" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.598Z", + "updatedAt": "2026-01-06T14:17:56.712Z", "postProcessHash": "0fa1d64f7d00e47668b5c6ed702b5207ba1b593291d6965c23fe6a95a4d21ad7" } } @@ -34511,15 +35057,15 @@ "98f9d0cfd669fd1fa447820ed42dde75e265419fd66cf20c9292293dd4a825b7": { "ef840aa109bf499596594d13130b402a3f00f31d42de8569556571fe1c214cfc": { "ru": { - "updatedAt": "2025-12-29T16:46:13.568Z", + "updatedAt": "2026-01-06T14:17:56.680Z", "postProcessHash": "bd159b2a23c7f8c3497a7d329c4ea2ea4da4e350b1ddde5131a909664e590036" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.567Z", + "updatedAt": "2026-01-06T14:17:56.679Z", "postProcessHash": "0a155db6dab1c70ab5658bf1841efacec4a7ee27ba36ceaba9bd014af7c9151f" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.562Z", + "updatedAt": "2026-01-06T14:17:56.674Z", "postProcessHash": "70f45a1ef0d746002c2acedc01b7520bac040b80837e2c05be635833b07ce05e" } } @@ -34527,15 +35073,15 @@ "0ccba8d2db72b1884bbc46c41967afaeff1aa84c34d44e471d4f0a6956691e16": { "94c625175686dfb070b11d461168883b7020c135e87e95dc215bd6a1888c5c54": { "ru": { - "updatedAt": "2025-12-29T16:46:13.506Z", + "updatedAt": "2026-01-06T14:17:56.599Z", "postProcessHash": "59bd1cb4c7bd530470c995b1e67c7dabdcf6213fb83ad1d543daf94722afcb69" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.508Z", + "updatedAt": "2026-01-06T14:17:56.602Z", "postProcessHash": "38c35b4d3cca10d0853f982094bffdd938b92744c668ee76c54a1787b62b291c" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.508Z", + "updatedAt": "2026-01-06T14:17:56.602Z", "postProcessHash": "dcb769031d0d88c31280de23e339ec94a17a9909c7584b9a1c2a904e2777a343" } } @@ -34543,15 +35089,15 @@ "c3624723e67987627989b19cf8887d0607b1cfe3b554bdb9b1a4afe0241fb796": { "394ce4286ff89f65fa6b50578d4a94d4eaf540883591642f71afb2825984bad3": { "zh": { - "updatedAt": "2025-12-29T16:46:13.340Z", + "updatedAt": "2026-01-06T14:17:56.353Z", "postProcessHash": "a66cd8437683b26f7af6e64d619aabd6068a06add94b6fd451cb715efdb1c2f7" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.344Z", + "updatedAt": "2026-01-06T14:17:56.361Z", "postProcessHash": "c5c0b3b4e4ca5818f4374dc058baaa8104f9fda8c2649e574f9970deaec7bd1b" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.349Z", + "updatedAt": "2026-01-06T14:17:56.367Z", "postProcessHash": "3af582fd0bd98f1c13b20198470f199d3d7217b42d7bfa57ed3d1a32b3b7b0aa" } } @@ -34559,15 +35105,15 @@ "3f0eaac3f28ba8b2234626f11889b6f51135f12393d659a739adcfe6bb3acaee": { "b93542926f20e8394566dc0612022ddaf2939a3fdd8e5ae25b2ba31cb94de320": { "zh": { - "updatedAt": "2025-12-29T16:46:13.303Z", + "updatedAt": "2026-01-06T14:17:56.293Z", "postProcessHash": "0e031ad4f20b9cbdf52611ad1fc97d0490095f64cf9bee205cae5dd123428d3c" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.313Z", + "updatedAt": "2026-01-06T14:17:56.305Z", "postProcessHash": "bf7a090c88fc25b1be905f3362b42619b3c968fac506f55e335238ba09e63dbe" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.298Z", + "updatedAt": "2026-01-06T14:17:56.289Z", "postProcessHash": "76517663c1b5e21fe516f402de4b06334a38c51059015c4b6d06b8b251767fc5" } } @@ -34575,15 +35121,15 @@ "101a525d5bb936cf99909df3325b1ed7ac0b685ee9889c47f517b4323eba52db": { "fead6f3f426b4d09ad7d10dd975751d5778ec0e92cce0f8ec88ce01950911970": { "zh": { - "updatedAt": "2025-12-29T16:46:13.341Z", + "updatedAt": "2026-01-06T14:17:56.355Z", "postProcessHash": "a66cd8437683b26f7af6e64d619aabd6068a06add94b6fd451cb715efdb1c2f7" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.343Z", + "updatedAt": "2026-01-06T14:17:56.360Z", "postProcessHash": "7c771e7995d98b5339ba5b4491ecc81ed23ca94fc99827cae5103402b977ec9a" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.336Z", + "updatedAt": "2026-01-06T14:17:56.347Z", "postProcessHash": "3af582fd0bd98f1c13b20198470f199d3d7217b42d7bfa57ed3d1a32b3b7b0aa" } } @@ -34605,15 +35151,15 @@ }, "2af46578a95495d588d71822000d88c1ad91983a4942cfbf2fedef2b7ce30c7d": { "zh": { - "updatedAt": "2025-12-29T16:46:13.605Z", + "updatedAt": "2026-01-06T14:17:56.719Z", "postProcessHash": "3a0c0c4af654247f00519a4fdc7f77d9987ca169a6a7374ede369c4a13aaca88" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.605Z", + "updatedAt": "2026-01-06T14:17:56.719Z", "postProcessHash": "c4802cf122bed9e3a782b7bba6714b0a729d91a353ce9f62a91636880875a417" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.606Z", + "updatedAt": "2026-01-06T14:17:56.720Z", "postProcessHash": "81f79a2259c19ec65aebdee562a14cafbad6b818fbfb7027cd6d8db937efb6bd" } } @@ -34621,15 +35167,15 @@ "43bdb45dd285638fe98614183eaf90571d4631d1e726c04b99db3c3faa08af32": { "4ba84b799e9b0e8d9b223c47606c717ef7d6ddd565986bc7b238eb33165681f5": { "ru": { - "updatedAt": "2025-12-29T16:46:13.570Z", + "updatedAt": "2026-01-06T14:17:56.682Z", "postProcessHash": "061bbbdef7b4442bb86b67d55ec21cec63215c4283cfac8c7cf7744e58f0c06a" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.585Z", + "updatedAt": "2026-01-06T14:17:56.697Z", "postProcessHash": "a8265952d50ebcfdc89789be02d25b8e6fd34cc838316ac41eaacf191c8f1c7e" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.579Z", + "updatedAt": "2026-01-06T14:17:56.691Z", "postProcessHash": "a25eb0c3381a78811592f7adf2c919fe3de5884654029b3932871920950b1114" } } @@ -34637,15 +35183,15 @@ "fbc3d920f0695e12f892f5ecdcfa4bc88cf0bb49809defb12c39db77838dee89": { "505618685d75d6489d64b01bd2297e8b2e4ce44b92900a9edcf4d95a5eebb475": { "ru": { - "updatedAt": "2025-12-29T16:46:13.305Z", + "updatedAt": "2026-01-06T14:17:56.295Z", "postProcessHash": "71584fd55158787ba134cbb8d3a0c3613fb8627d2740bffb9b96c977dc3ed2de" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.314Z", + "updatedAt": "2026-01-06T14:17:56.307Z", "postProcessHash": "9f9ab179d137856b44f914b9f1952d53f661c975160f1af482bbf8f15595bba4" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.311Z", + "updatedAt": "2026-01-06T14:17:56.302Z", "postProcessHash": "6b37e8d88ff04277cda84645346cffc2e4efbaec3a1127dc857f68a3f9f2f387" } } @@ -34653,15 +35199,15 @@ "67e6b09bfe484e48895cf047e4050cb1f08398f2f779e27c7acf3ff69d9c5e8d": { "7b905336c6f753917b4e006f53075b8ba27cb105a18643882989eab9b01e424f": { "ru": { - "updatedAt": "2025-12-29T16:46:13.572Z", + "updatedAt": "2026-01-06T14:17:56.684Z", "postProcessHash": "492d0f5d8d0aaf468917753fb9f24560fec8ed2b2bf0cd4a22c35bb08165cc5f" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.596Z", + "updatedAt": "2026-01-06T14:17:56.709Z", "postProcessHash": "74c7e38513e5e670975cf582e5e4335ce7795bd2dcdce704e81dc8eca802e45b" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.558Z", + "updatedAt": "2026-01-06T14:17:56.667Z", "postProcessHash": "f53d5bde6532d08d476d40468e4ed0f725e2d2c9b51b7a93f6628213e3fbb99d" } } @@ -34669,15 +35215,15 @@ "736363d0859d8864ef39d3c2b3906d5ee9e8520ec754a5daaa253102669dbfe3": { "4c2ab8cb337c681d306ce35ffbf49cc6acb8d68b78b1f946b2757bbefd07e898": { "zh": { - "updatedAt": "2025-12-29T16:46:13.511Z", + "updatedAt": "2026-01-06T14:17:56.604Z", "postProcessHash": "9a818e8efcf144aed66c1b1f400b3420628916ac5a200a0980347f5bfe80824d" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.599Z", + "updatedAt": "2026-01-06T14:17:56.712Z", "postProcessHash": "0dd508fc178a876624b3a6ee87cc3dce094bf54a591f560039c6ce4956a5ab0d" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.576Z", + "updatedAt": "2026-01-06T14:17:56.688Z", "postProcessHash": "6103f6733c2182c6a52501f1695ed0c67a515b0d263b5d4530942613f2b88d1b" } } @@ -34710,20 +35256,34 @@ "updatedAt": "2025-12-29T16:46:13.602Z", "postProcessHash": "dd378e08ad5d1e1d7e33c2d2ee9744392f1b09d32296ca9d3c9a6bc35ce99acd" } + }, + "325c5dcfa90fba27e0efaed49648daaa07aecd7c72da3396c490dc43a95b0d7a": { + "jp": { + "updatedAt": "2026-01-06T14:17:56.717Z", + "postProcessHash": "baafb3485754a01b4f61d284a8f3888a04fa084b822ae4fc57510b73e911f135" + }, + "ru": { + "updatedAt": "2026-01-06T14:17:56.717Z", + "postProcessHash": "1df5ca42d8022a9d533109f7e17b5ca3052cb17819c3de2efe64aec6d1854cf5" + }, + "zh": { + "updatedAt": "2026-01-06T14:17:56.718Z", + "postProcessHash": "2f828db2802eaf40066402299706ea64ad3bf8c30999ac5d3071dfeea8df35f0" + } } }, "235b40c46d2961005ce3297b1e97ffe8edc82de828ff56822b9e32359796e9a9": { "c5ef2e83c2e151559f9dd5524371a9d5b3447d2d1d74ee4818d09823d6de408d": { "zh": { - "updatedAt": "2025-12-29T16:46:13.522Z", + "updatedAt": "2026-01-06T14:17:56.620Z", "postProcessHash": "519f0f8085c6634af570c30a243224affddd15b814021513cc2a5008a6659332" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.449Z", + "updatedAt": "2026-01-06T14:17:56.514Z", "postProcessHash": "572d5ed8dc3508cfda34ba0960889ddf1f165b5cd4cc2dbab076864f1e407c77" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.536Z", + "updatedAt": "2026-01-06T14:17:56.642Z", "postProcessHash": "8a8fa81e297ebd605e32db3a795d8ff577af712ba31a991b09f3760322f76400" } } @@ -34731,15 +35291,15 @@ "462cdde9af0d98973a369e372516b17fe788292eab3b5888894d73e9cbffb6cd": { "d745f7b346b2c1bf0d164fbdb236d9160be09038c4c9ffee5d2fe13aaa441118": { "zh": { - "updatedAt": "2025-12-29T16:46:13.460Z", + "updatedAt": "2026-01-06T14:17:56.531Z", "postProcessHash": "de63337cd3cbaa8841cd41506eaa864fcaec48cec5d74792f5ecf4c5e8ad5e5d" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.465Z", + "updatedAt": "2026-01-06T14:17:56.537Z", "postProcessHash": "f5f72bc47f30e9d554030fbf022a7dc4e63babb4dff5880b006b4c8f2b1e24c4" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.458Z", + "updatedAt": "2026-01-06T14:17:56.525Z", "postProcessHash": "2f3ee22a3a89cb53a24567da1aa1d4557cb714c57210a9f0fedd825a5c51118b" } } @@ -34747,15 +35307,15 @@ "710ad55c0afad6985a560346d1622540e29d92eadcee6064888e0cacbfeda384": { "54f1a9cd08afe76cfdeea722af528c57303609afdc34748e3328885c439ce7bf": { "ru": { - "updatedAt": "2025-12-29T16:46:13.350Z", + "updatedAt": "2026-01-06T14:17:56.369Z", "postProcessHash": "fdd83de4abe81a4ed4bb122a604e23067c32dffcd83dba38657e520419b3ae3e" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.341Z", + "updatedAt": "2026-01-06T14:17:56.354Z", "postProcessHash": "d35efe2e0066999e95c6338a2d6836d4ecc51a7416f08e3412a4befa518da96f" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.343Z", + "updatedAt": "2026-01-06T14:17:56.359Z", "postProcessHash": "b12595353bc9683f72c5322d26ffdf1c3fb19f79e2d1da0b1ef02686a14bebc4" } } @@ -34763,15 +35323,15 @@ "0fb5c4c89db0cb83f6bd1cdef9a19071c391929cb24660f2f66de45b10763ba3": { "23aae78ddaf4de455a27e50918cb30da7db97d56977cd4dbe8df7b2e1cd49fc4": { "ru": { - "updatedAt": "2025-12-29T16:46:13.315Z", + "updatedAt": "2026-01-06T14:17:56.308Z", "postProcessHash": "04191fe3fee59a776d496d7a2ccc8c8402fc28c0e5df8dcbebc0ae1f63933d1a" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.309Z", + "updatedAt": "2026-01-06T14:17:56.299Z", "postProcessHash": "7ddf021182820cb62a8d1a7b6d5f2e40827ccf8e55664b97716aa90a96208bcc" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.312Z", + "updatedAt": "2026-01-06T14:17:56.303Z", "postProcessHash": "89bd734baf8aba3cf4c713e0df328b7f6a39b086b4811cd4df5760d775952e02" } } @@ -34779,15 +35339,15 @@ "45c65db56b87943c8cc881cc85fe81f875a263a988b758817095b2448ebeab1c": { "ef02a49eb6596c142aa773eb78cf22212510b6f1bb9809d02c025e4d34ab82d7": { "zh": { - "updatedAt": "2025-12-29T16:46:13.523Z", + "updatedAt": "2026-01-06T14:17:56.621Z", "postProcessHash": "4804ad65fb57bdb9aae2087131d4f787992f6dccc19a450e62271cfa5c710c08" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.442Z", + "updatedAt": "2026-01-06T14:17:56.502Z", "postProcessHash": "30ce8b03c55a5a9b0353c2e07d37c4fb5b4a099916c00a6611284da91756faea" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.523Z", + "updatedAt": "2026-01-06T14:17:56.621Z", "postProcessHash": "9d7cdeabcb3f07fa3fce79db2fc40799c79179bae0f2e83b3ce69ae1e3c3aa11" } } @@ -34795,15 +35355,15 @@ "b58d28384b38660cb355b5217eb858f4bc83ad7155278c40ae4663b230c74fd8": { "f5263d91719fc0aa0d4dc51eba8629ecf707553c3c6fd5144e8f1ca748775d75": { "zh": { - "updatedAt": "2025-12-29T16:46:13.487Z", + "updatedAt": "2026-01-06T14:17:56.574Z", "postProcessHash": "cdf9dce53ddaf9dba1e246859b599821a0ef153ab4c5acd68408082637706b2d" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.424Z", + "updatedAt": "2026-01-06T14:17:56.477Z", "postProcessHash": "ceac3d8cff8871746ae78dacf2ff3d4af6e139977fd74cff746880ff3e14b226" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.479Z", + "updatedAt": "2026-01-06T14:17:56.562Z", "postProcessHash": "a7c30d29fcbdf3fd2b581e7fa039d2ea8d752b662b5fb2f5b3078dc67be51d6c" } } @@ -34811,15 +35371,15 @@ "8d7c4ba98d5f5bbc6e42b2591da7f2b20f246b15396b0ab2075839fef18b5697": { "157c626f8a13dd4dc09e8313f1bf33c397d35bf379c354eb9d973e648827bef2": { "zh": { - "updatedAt": "2025-12-29T16:46:13.408Z", + "updatedAt": "2026-01-06T14:17:56.453Z", "postProcessHash": "634870082c95d1522b45f62a7857160bdc67886b683879bb41d0c890fd99adf8" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.423Z", + "updatedAt": "2026-01-06T14:17:56.476Z", "postProcessHash": "2fa50f3fc2507386389b9a857e9e5ad2630e09d9fe5d9c2b57b28a3bc7025273" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.455Z", + "updatedAt": "2026-01-06T14:17:56.523Z", "postProcessHash": "86f4bc498b5d9b8ee1dd49a68754613cb4a82ebe9517132cb39e331dfa168506" } } @@ -34827,15 +35387,15 @@ "4d0528f558f80f4881563682077f001ad134becf467e305c86fc84dd7697b089": { "42d9d42562a4f705923103bf4a3b7173addf1f1dd5adc163a37dbd936aa49889": { "ru": { - "updatedAt": "2025-12-29T16:46:13.461Z", + "updatedAt": "2026-01-06T14:17:56.533Z", "postProcessHash": "5459db3b31761f3ca76ac094a0185198c84ad1144c88192a14e656f78307d20e" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.455Z", + "updatedAt": "2026-01-06T14:17:56.523Z", "postProcessHash": "42a1736ec7187aa3cafff4334d578962e384feb006b9bf55434a01547cebf836" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.448Z", + "updatedAt": "2026-01-06T14:17:56.511Z", "postProcessHash": "fb96153f83493290a1266b006f0bb1e762a46d537480eb58a9d879e8c5b2375a" } } @@ -34843,15 +35403,15 @@ "a5d93e69125f512b3e1f00266e424585b846115536039af5f58cae578c2829e3": { "ecacb8f11638f831b9c20da459d9a74e871ae3943e5721f34aba4985e3a9d9eb": { "zh": { - "updatedAt": "2025-12-29T16:46:13.409Z", + "updatedAt": "2026-01-06T14:17:56.454Z", "postProcessHash": "f2d38856c09a7f650086f8fda185c29472cc15fca22e4cc6a7d5ca0bf79be929" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.439Z", + "updatedAt": "2026-01-06T14:17:56.498Z", "postProcessHash": "61416b99de4acf86a88713bfba1053e4128c12050492982a6a97df1d26acdd1e" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.440Z", + "updatedAt": "2026-01-06T14:17:56.500Z", "postProcessHash": "7bfb420411dd27ed774c6384024f85f04b9d1c9f2c493bb98fecb28cd0e2ac5b" } } @@ -34873,15 +35433,15 @@ }, "2f641249f3103f7865f16f20a1b9243bb31909125349e4571c47ac9b1b8a6df9": { "ru": { - "updatedAt": "2025-12-29T16:46:13.495Z", + "updatedAt": "2026-01-06T14:17:56.583Z", "postProcessHash": "490d936da845e1372062ec2a262c62f67b4dba3c984ff9bf927995813e5c389d" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.496Z", + "updatedAt": "2026-01-06T14:17:56.584Z", "postProcessHash": "869ae63159b30b906f5cce17489bc69c989354b0d12e7d05b89b0212ff0c6157" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.496Z", + "updatedAt": "2026-01-06T14:17:56.585Z", "postProcessHash": "d1c684122b91b888f0dfba7bed7215889a39854e39dd6abfa5b42c36c3223a3e" } } @@ -34889,15 +35449,15 @@ "2c61f03a4fe808580cff4e8aa1a6939d84eb12b9a43724b98bab278d020bb194": { "4158e73583a46ee61d2835723076f3fd91bdae28b86fb6f4d6ab8870a8146937": { "ru": { - "updatedAt": "2025-12-29T16:46:13.409Z", + "updatedAt": "2026-01-06T14:17:56.455Z", "postProcessHash": "bb27c0e8977f8883fc2bacb1f2138b7e10bb5a6de31b1dacded084da94bc0316" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.404Z", + "updatedAt": "2026-01-06T14:17:56.444Z", "postProcessHash": "786adbbb891856df3581844d21e00478e36dfbf842f3c248032df20ecb3f9680" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.483Z", + "updatedAt": "2026-01-06T14:17:56.568Z", "postProcessHash": "fe25581377d35b8251e8905f61193ae88841991ce7250353d8ab0b3e5c1118df" } } @@ -34905,15 +35465,15 @@ "8fb2e5e5d61ff6b4830012f315c75ccd22ef6f64c4ee7685c2cd3215aabfe79d": { "c393d1a8b5995f5444564d2d762f97bb4815829fdfb74c4739bd527681d89cee": { "zh": { - "updatedAt": "2025-12-29T16:46:13.524Z", + "updatedAt": "2026-01-06T14:17:56.622Z", "postProcessHash": "fce2531e47b053738c341a053a4f1d5a7a259fa5416e8faa549949d51b616f30" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.550Z", + "updatedAt": "2026-01-06T14:17:56.660Z", "postProcessHash": "d5cab276a8a68815b617467166bae5efa3fd5a25c8a8a98dde613df12f0166f6" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.529Z", + "updatedAt": "2026-01-06T14:17:56.630Z", "postProcessHash": "7e615d0aae97110e6a8b2113e47faea783e1149ada9e3db30dcdcfada708785d" } } @@ -34921,15 +35481,15 @@ "1a54cbb6d0259ab1c0a7866c16289a6efb190e3d138af3035a9b892ce04da57d": { "35875b5d8355a345f2dea01781d4a86cccffca2873f0f1c8151df687559a6ee2": { "ru": { - "updatedAt": "2025-12-29T16:46:13.463Z", + "updatedAt": "2026-01-06T14:17:56.534Z", "postProcessHash": "d2834ccf8d420fcb7db1791af2c366819503f1cae26bb00ff87acf9844376d8a" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.470Z", + "updatedAt": "2026-01-06T14:17:56.549Z", "postProcessHash": "353653f590f914f0e36c71ea1015177fa6319fb43e1990c3375afba58d480b19" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.458Z", + "updatedAt": "2026-01-06T14:17:56.526Z", "postProcessHash": "2b2d57a64e6e26bc189f091a8ddf381e8e68492f32a6fbb76c295d67f2d91412" } } @@ -34937,15 +35497,15 @@ "c5c96baff0600024d6bbb610d9cae24faf4a22e4f54fbcc16da6eea5801d716e": { "75a61fac01b9a0c4dc6479a31dfe0ccf020bf8c906301ce66ddb70adc32e62a1": { "ru": { - "updatedAt": "2025-12-29T16:46:13.551Z", + "updatedAt": "2026-01-06T14:17:56.660Z", "postProcessHash": "60de08b9e73291dc6c1821537073c223774439ffb9ce26854d2a030e8c02c31a" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.451Z", + "updatedAt": "2026-01-06T14:17:56.515Z", "postProcessHash": "fbddc0aab46e0e38e842a90822d1797618d82eb5afc9e1d022e431d9a547fbef" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.530Z", + "updatedAt": "2026-01-06T14:17:56.632Z", "postProcessHash": "2c2835f42eb3989f137eb031dd860631073f7b6eb88cdc373a3ba01593d5b27f" } } @@ -34953,15 +35513,15 @@ "be5b364ee73eb51fe865a890d10236c2eae4146ef19afc9755721c110139579f": { "e55f970b0157d55548b665f2a95fc93e3875eadfb7a385687eb591b21d592f97": { "zh": { - "updatedAt": "2025-12-29T16:46:13.374Z", + "updatedAt": "2026-01-06T14:17:56.394Z", "postProcessHash": "e56c845f189f57f778d546fd7b2102b9ed58a2c25d9c8e0dbb92151e3ba279a7" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.338Z", + "updatedAt": "2026-01-06T14:17:56.350Z", "postProcessHash": "aebd0815e50ec9585a3367a1ef158aaefb63ebb42803f65547dbe770a4339bf9" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.380Z", + "updatedAt": "2026-01-06T14:17:56.404Z", "postProcessHash": "6351a2fe0f0e41d9b085dad38a029886e4ef6d20c99581d6fdc43ba41b92b195" } } @@ -34969,15 +35529,15 @@ "4449f60ff9c38182ac376f1ec8ad4f5c377a1d189bf6b8bd0b3f294437ebd1a5": { "b4657b26faf846e566012308f61103c34dbe662b80add135f7d0720222c74ea5": { "zh": { - "updatedAt": "2025-12-29T16:46:13.410Z", + "updatedAt": "2026-01-06T14:17:56.456Z", "postProcessHash": "8073a43fae69ede3a1ae51b2be353a2bf6836ee6bc9657c6471282179c661f61" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.400Z", + "updatedAt": "2026-01-06T14:17:56.435Z", "postProcessHash": "5eb68f4888d23e43f2a29ca42ac2029ee1873a27b20ea38b669d7c7872cfdd03" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.405Z", + "updatedAt": "2026-01-06T14:17:56.446Z", "postProcessHash": "2eea3a7779228eb500f0b41920165c8dc1bf404adf8e44b1365663b944211de5" } } @@ -34985,15 +35545,15 @@ "809f990c2475c0e585de5f7677ad5e69d2c480395ed833dfa2922067881e3350": { "1534d3d5fab78c52b36945dc4157e83845141abc6b963eed5bb780b27e5e23e2": { "zh": { - "updatedAt": "2025-12-29T16:46:13.351Z", + "updatedAt": "2026-01-06T14:17:56.369Z", "postProcessHash": "304d553f81d8f32b45f191a97f030e329dec694c341cebf2f8d4cc6081dfb897" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.375Z", + "updatedAt": "2026-01-06T14:17:56.395Z", "postProcessHash": "632ec9152907e487aa044775fdfeb4adea2ef628229fbeb0ec7d5111aac09d97" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.377Z", + "updatedAt": "2026-01-06T14:17:56.397Z", "postProcessHash": "c4ad0bd0aae172ef66ba1eed1dc722613f248c6cc00edca869716b93af48db9b" } } @@ -35001,15 +35561,15 @@ "8184344ce9b79685863100b25d75f907caba31a6f26b64caf68881e98ea41913": { "8fe3205e82057a29dc0d8aaa2e33ec896cd304ef416bcfb7264bf8da1fbaaa77": { "zh": { - "updatedAt": "2025-12-29T16:46:13.670Z", + "updatedAt": "2026-01-06T14:17:56.780Z", "postProcessHash": "03a5f5a40f8dc3934220239ca07ac797f8920bb49158151891f1bc9ce44975cd" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.669Z", + "updatedAt": "2026-01-06T14:17:56.779Z", "postProcessHash": "d2e64b9ff8d18e67bf0e1b1836e9f5cd5bf7b8d5bf5ec71314aefb01d386f5ad" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.668Z", + "updatedAt": "2026-01-06T14:17:56.778Z", "postProcessHash": "eed284bc3b5f8f5a17ec5f24a1394fdf2dbc3bfd2df7f75f7edb55b647ce0162" } } @@ -35017,15 +35577,15 @@ "0c03db74eb0923183ef12e6e957c01e6d8255d17051d0474807d2dfe15494516": { "8d293de1b22941bb10fe562a4e677c7c7472f7d882ef5aadce39c9033dabb63f": { "zh": { - "updatedAt": "2025-12-29T16:46:13.600Z", + "updatedAt": "2026-01-06T14:17:56.713Z", "postProcessHash": "73d55400f41032841cca8bcfbd887d6421af028cf505d45ff03338f36f727988" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.533Z", + "updatedAt": "2026-01-06T14:17:56.638Z", "postProcessHash": "40468e117ddc0eca1aa83dca340adb06436325664cd746635eff46ea5f1092f6" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.527Z", + "updatedAt": "2026-01-06T14:17:56.626Z", "postProcessHash": "64e00eca368f5b1c24f57423cb65e33e9cda41cc4d35a0422b80e06c226dfd62" } } @@ -35033,15 +35593,15 @@ "a1c0860ae09b803ff5ed9c9a0c438bd6b2800982753e32c40c910f32979fca1d": { "48ad888591a6dabb0298398a02a18436095ab5c603d344f9156ff7e7ccdb28ae": { "zh": { - "updatedAt": "2025-12-29T16:46:13.584Z", + "updatedAt": "2026-01-06T14:17:56.696Z", "postProcessHash": "792d1caba3a0258d816ae731fa188a4112af233ef30eb0ade0b591db73f76271" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.582Z", + "updatedAt": "2026-01-06T14:17:56.693Z", "postProcessHash": "2e1542763054cf7a72ec74976e88e4243e6d66d200e85ef26acc31b6bc656946" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.561Z", + "updatedAt": "2026-01-06T14:17:56.672Z", "postProcessHash": "25dd126d05d40e6d16e0aaaf096cf838a65034b4f00e945e2d7060079be677a8" } } @@ -35049,15 +35609,15 @@ "86a43cc92512a5c918f3385b494d3169c660273f3661eb8dafdc49055b720698": { "60b60a413c29322369042c265eefb3d9aa56d79f8c71fe607cd1ac9eeb60e393": { "zh": { - "updatedAt": "2025-12-29T16:46:13.586Z", + "updatedAt": "2026-01-06T14:17:56.698Z", "postProcessHash": "ded3161d5311eaee733d7805cd602dbf10699324922d3a0022f76fc063a926e9" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.586Z", + "updatedAt": "2026-01-06T14:17:56.697Z", "postProcessHash": "3531ba8b2d1f83b7281805e2e08d7f6d69e5998385d3a5ca0050f885a9594b48" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.566Z", + "updatedAt": "2026-01-06T14:17:56.678Z", "postProcessHash": "071f842f3610436b701fd6b38bd298de096c98654e5a89031c2827a5c22f7738" } } @@ -35065,15 +35625,15 @@ "036300ef3b2f4858d6615f663b03ca7a594a026409e0fe0ca41882745b846afc": { "1ad91e7f68dcee666ce7f7d2260270095678629c6052b5b84bf68dc6d54020c4": { "ru": { - "updatedAt": "2025-12-29T16:46:13.377Z", + "updatedAt": "2026-01-06T14:17:56.398Z", "postProcessHash": "3c2888d7a09e1627ba18e35a9310b6818aa6febecebe1c99265aa6699bee9ec6" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.378Z", + "updatedAt": "2026-01-06T14:17:56.400Z", "postProcessHash": "de04856dad3d8bc67d26f47fd7e33db5e0730335c39fd675e1b193ef9dc5cadf" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.374Z", + "updatedAt": "2026-01-06T14:17:56.394Z", "postProcessHash": "83f08dfcd635bcf146e52a19e0188e81904d73447650c5799a628e1f6548834f" } } @@ -35081,15 +35641,15 @@ "586898784b2000de57eead4932f64db3ae6900471f06aee84b184f3bf8efdf12": { "9c727f0fda6cea3eb8d9add0737f40fd7c2a246e0b779e6a2ea7559741c3af0b": { "zh": { - "updatedAt": "2025-12-29T16:46:13.352Z", + "updatedAt": "2026-01-06T14:17:56.371Z", "postProcessHash": "55daf6e6e1636043971af6d76ef01f5ce2a1c834320168eefcd3f636da6b9fe7" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.379Z", + "updatedAt": "2026-01-06T14:17:56.403Z", "postProcessHash": "2a93c2b6162732704de3342ed51f84e6da676ed91b6b248751f2802b84540b09" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.353Z", + "updatedAt": "2026-01-06T14:17:56.371Z", "postProcessHash": "9cf4cc880cf7f0fcd8a1fd165aa8baa1ce1e12e2aa8f14fcdef93927c4e3b6cb" } } @@ -35108,15 +35668,15 @@ }, "5962997760b38b2cb309d629f1dcf48964113a84f277bdc508e98c8bad0fa965": { "zh": { - "updatedAt": "2025-12-29T16:46:13.438Z", + "updatedAt": "2026-01-06T14:17:56.498Z", "postProcessHash": "e57be5a38a35056e0731c1c24daadd1eadf503373a393ec690f196c7d1cab9ae" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.430Z", + "updatedAt": "2026-01-06T14:17:56.486Z", "postProcessHash": "5d2c2c3ea0ac2596c96eab4ad2d20d1a72a42fe6d80985d5544abdf8ab2259ad" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.430Z", + "updatedAt": "2026-01-06T14:17:56.487Z", "postProcessHash": "6def404d595e172f0aa922586d045d28eb0f06e23225e801949ed59e974fee7e" } } @@ -35124,15 +35684,15 @@ "e79b575c27312875f3076748b2d4de3bfd78216748310c894e316b5c6b915aa6": { "7a7699a4379151bff326d63b86c2e5f5b0c36a7de56625710bbef094f9488e4d": { "zh": { - "updatedAt": "2025-12-29T16:46:13.569Z", + "updatedAt": "2026-01-06T14:17:56.681Z", "postProcessHash": "3d54240fe31b763edad2e0363a2da20ca7d0492cd7987091c22c8f1621b1f19a" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.584Z", + "updatedAt": "2026-01-06T14:17:56.696Z", "postProcessHash": "18246fac39c18429893bfabf32cf0c8993b4a61c6236d5bb4e6f97459582422b" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.571Z", + "updatedAt": "2026-01-06T14:17:56.683Z", "postProcessHash": "2dd83f5a4c2ce5580f27d2ebbfecf5cf162227dac9a63a831b43a22f109ac7a9" } } @@ -35140,15 +35700,15 @@ "c74acd4897e7b7ee4b2df0bff72a35b3b8acbfe976eaa8215f2fcfc031f94ccf": { "720c459362ca150d27eb7701d7e48ce41817e1142bf4ebb8b4e2a87705715ada": { "ru": { - "updatedAt": "2025-12-29T16:46:13.399Z", + "updatedAt": "2026-01-06T14:17:56.433Z", "postProcessHash": "1b4e6cda6189456452254857006b4403498ef4b666c02b1af1328a0022cc1cac" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.480Z", + "updatedAt": "2026-01-06T14:17:56.563Z", "postProcessHash": "4b6198ef3035f486e26a5153cdbf0c1f9f3fe99a2e51dde5e6b6512898a6806a" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.417Z", + "updatedAt": "2026-01-06T14:17:56.467Z", "postProcessHash": "6767b83b8b66f340b28a7000993c89ea59d8a039e5bcc60676b2e2de3a5bb9c3" } } @@ -35156,15 +35716,15 @@ "503329b0d4a76ca6bed899e9672f8b552300a0c87af309f4216ae734b9861fd2": { "675e12d63a5beef8dc9c071b80bc5249b9dc320e87ed8e63ab1dba75742d1c49": { "zh": { - "updatedAt": "2025-12-29T16:46:13.400Z", + "updatedAt": "2026-01-06T14:17:56.434Z", "postProcessHash": "b704c606b356f3a171fba70c6ce71bc5c099843b54d30e01dd00ac95741bdb85" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.407Z", + "updatedAt": "2026-01-06T14:17:56.452Z", "postProcessHash": "2d93877d4177e77fb15d317a85a027c58ac401aa16a3a0e0d36b8d7086cb3b83" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.405Z", + "updatedAt": "2026-01-06T14:17:56.445Z", "postProcessHash": "5201ebeebeb0f38fad123dec53571d050f556a411b01764acc191901d2166595" } } @@ -35172,15 +35732,15 @@ "90f0e15a1b59f060a6f0f952d87af6522508eab261e93dd1ff9d2f135297bc7b": { "b323a03a283828a8dd2bdb1310eabc167e779d51e7e53bc928a0c3475022c6ed": { "zh": { - "updatedAt": "2025-12-29T16:46:13.572Z", + "updatedAt": "2026-01-06T14:17:56.684Z", "postProcessHash": "af197fd421aad318b5acfc40e94f1353338a16286ce2b7940867b5014bebc20c" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.583Z", + "updatedAt": "2026-01-06T14:17:56.695Z", "postProcessHash": "ecdd44f368cab2d6b3163104185a7ec046bc8e500863629786ec0844ac478849" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.575Z", + "updatedAt": "2026-01-06T14:17:56.686Z", "postProcessHash": "5ebd0ae88693b6ace149c505ce402968900d3041055c87ce07b329fb941a2dcf" } } @@ -35188,15 +35748,15 @@ "e1777c4c468ab2516b850e57b6f6bc5a611e182371ea737b4494074aa581da40": { "c93f95ca1da1b0eee11a33d644aec21a8b55b826129592b9eba161908812b369": { "ru": { - "updatedAt": "2025-12-29T16:46:13.448Z", + "updatedAt": "2026-01-06T14:17:56.512Z", "postProcessHash": "836ee4e7f66847d750737872d9d4a59991e855597fbc8e3bd71bf78abec1c59b" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.518Z", + "updatedAt": "2026-01-06T14:17:56.612Z", "postProcessHash": "a9b5953af0eb576e8ccd31667226ac22e5dc58fbf9a8b1ffc47658b1f929d2b6" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.541Z", + "updatedAt": "2026-01-06T14:17:56.649Z", "postProcessHash": "4ad47bfdc7bcdbcdece3681127236bbd12268bb44b79e46724f82eeecd344f11" } } @@ -35204,15 +35764,15 @@ "64e0092d1db56a02e6a5bca8f0b5056cf1f521390ec3925bb3e50df81aa7ac85": { "9a5dd87bf7b220294da0bc415b255ea64029a767c79b1e6a895b5d3d57801055": { "zh": { - "updatedAt": "2025-12-29T16:46:13.452Z", + "updatedAt": "2026-01-06T14:17:56.518Z", "postProcessHash": "6705213bb38bb5cebc1c31867a4fb1a8ac67499ddc647d49a75b98258dea0828" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.516Z", + "updatedAt": "2026-01-06T14:17:56.609Z", "postProcessHash": "c0424f2e2a53b60e9ff3116e0f534d15b1c7ce7d255c701b96fcdcec4890c2c6" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.517Z", + "updatedAt": "2026-01-06T14:17:56.611Z", "postProcessHash": "14f815cddbeb52ab3431dc67df5448f3427371ee5a0030625cea835f6ec3961f" } } @@ -35220,15 +35780,15 @@ "d012409948884982e8bdf1e450327b34af2546383469b4fd132b635459e6f305": { "95aa9403608d32399c22cc7fc263d9ab30a605eea3844947170400f89d7e71d1": { "ru": { - "updatedAt": "2025-12-29T16:46:13.460Z", + "updatedAt": "2026-01-06T14:17:56.532Z", "postProcessHash": "2943af782b90e30c378c93d5a5f7a78c15d59e0ac6a8c5a8411ed22d9a3d56bc" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.454Z", + "updatedAt": "2026-01-06T14:17:56.521Z", "postProcessHash": "f27c0c2cbf8ea5537615adc29303017de4f60a5a4e9ace846574deb87dd3e36b" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.449Z", + "updatedAt": "2026-01-06T14:17:56.513Z", "postProcessHash": "565173b9963589c92d99543cdde600cc8e43f420fe4f56d8f9bf2208312684d9" } } @@ -35236,15 +35796,15 @@ "00174dfb396f321fadf5749558a865565bf4dae8cc5d6fa8f305ef68a7f1c6b2": { "d2f79ac832b7a2d7aaa410633fb001b9e95f4660cc65da2bdbe34ab52df0894a": { "ru": { - "updatedAt": "2025-12-29T16:46:13.526Z", + "updatedAt": "2026-01-06T14:17:56.625Z", "postProcessHash": "a1273037a41f448e543a49cc6b332dcdbdaa76e4508491ee3da2a5c2167f6c54" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.446Z", + "updatedAt": "2026-01-06T14:17:56.509Z", "postProcessHash": "3884ace469a387c8b6ac18e67d74191724952ebc944ff8743ce8561ae5b26bc4" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.452Z", + "updatedAt": "2026-01-06T14:17:56.517Z", "postProcessHash": "695036bf7e01eeee7d215530e63fc8ddaacffc258d6ea3f9d4f62d2125600d51" } } @@ -35252,15 +35812,15 @@ "774db99efcf187fd85ea22f0f07cfb6cf5fb6cc68251b2913b976e914e74a951": { "cc59400f1e7b6cc7c2ce5902dae7bd2a641bff181193f2f3f16b2cc24b094add": { "zh": { - "updatedAt": "2025-12-29T16:46:13.411Z", + "updatedAt": "2026-01-06T14:17:56.457Z", "postProcessHash": "8906063e9e65110a81c13e0b9c9d2e387932429614545c441dfd986b3d5e3ebe" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.422Z", + "updatedAt": "2026-01-06T14:17:56.474Z", "postProcessHash": "27ee50bd3c1244c541a78248e2ae5bba4ed1718c59c5eae4a9500df066c0aefa" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.399Z", + "updatedAt": "2026-01-06T14:17:56.432Z", "postProcessHash": "7021bcca7d62ee663124e800241dbcb400244493f00cc139410d912657fc36d2" } } @@ -35268,15 +35828,15 @@ "4da7a2a8dcc0e8244d17285e749f8d2f66e7c939010b06d93f9506b5e0443395": { "5d4659d3e6e8c514f951b33a0e387bbd5340061d0fa6ede0b8d63a27a889570a": { "zh": { - "updatedAt": "2025-12-29T16:46:13.527Z", + "updatedAt": "2026-01-06T14:17:56.627Z", "postProcessHash": "4f6e6c2465dcb5e419cfb4490536a5e632782fa47282d656d2cc41f1a0173de0" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.535Z", + "updatedAt": "2026-01-06T14:17:56.641Z", "postProcessHash": "af43641fbb074d300c972b709809ed688e65ec09542fe184fd5297f1a0367746" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.549Z", + "updatedAt": "2026-01-06T14:17:56.659Z", "postProcessHash": "7c5b8ba9f23aaf091dc52813bddf19fbfb93d209eee0c1e6613c74cd0a30f883" } } @@ -35284,15 +35844,15 @@ "8a9dc951991e7089ccd4e1eedd2df9ce190a4888a63408845057666bec28693d": { "3ea6e01fdab2aaecd5561d6a3738320c4c955d0937ec5157cb9ac2e69e3fa30b": { "ru": { - "updatedAt": "2025-12-29T16:46:13.528Z", + "updatedAt": "2026-01-06T14:17:56.628Z", "postProcessHash": "525b1b5904bd3a4f1ede52fea7480e84df3a895b478e17d8501531e38f4ba0bb" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.531Z", + "updatedAt": "2026-01-06T14:17:56.634Z", "postProcessHash": "1bd517214395f0da20913a0edf5248fdcdd6177ded8d65d15996da8f3678e9e4" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.527Z", + "updatedAt": "2026-01-06T14:17:56.627Z", "postProcessHash": "5ac84e9d462918541c5dda231eb1f52b194d0965af30acd1b0f408126ccbc350" } } @@ -35300,15 +35860,15 @@ "e0416bafda40f9b0abd3190774a6d8b8b6fecab49f9676913bac6e5e053b382e": { "aa3e533069b101ec06bf29cb5c1935709f54b0a36858f4636f093f238b277647": { "zh": { - "updatedAt": "2025-12-29T16:46:13.412Z", + "updatedAt": "2026-01-06T14:17:56.459Z", "postProcessHash": "6654fea34bc9331452f1f41f95104e4eed60a2895b61576c1e18c6de058c5261" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.402Z", + "updatedAt": "2026-01-06T14:17:56.439Z", "postProcessHash": "7b6402f41ca1c97095c4db7170bc95383e5618534977b9876f767883e3da27c9" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.477Z", + "updatedAt": "2026-01-06T14:17:56.559Z", "postProcessHash": "85db98062773c3ced6f8d4c9d920d46b6af70c01ebfc2f063b2897538f311ce0" } } @@ -35316,15 +35876,15 @@ "6bec8fb9d627bbc8d58479b40c1ff2e2105bf84d0574e514ce2d4a909b35d280": { "9892fa9d4ee47152dab0a70403163228e13146e378a484ac01ec35395c96a186": { "zh": { - "updatedAt": "2025-12-29T16:46:13.583Z", + "updatedAt": "2026-01-06T14:17:56.695Z", "postProcessHash": "3f97f5ce3a5135a571368b8ec9dfc44acfe51f8829295ae38a0216ebe2c79852" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.576Z", + "updatedAt": "2026-01-06T14:17:56.687Z", "postProcessHash": "340ef0ab5180da2ea399e1184659d15f4d800815ffcf1760699f636c136b4d75" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.594Z", + "updatedAt": "2026-01-06T14:17:56.707Z", "postProcessHash": "6b47d544d572cac89965bbe6eca8b89de878792837d01762c3545866eac862a7" } } @@ -35332,15 +35892,15 @@ "d600a99ead8b0977fbdf31462c610327f9207f07a47047e4cfafebac76ac6789": { "ba98a569e23d5a0b5a2bee157907242c18d05d010d12a96d4526528db77500b5": { "zh": { - "updatedAt": "2025-12-29T16:46:13.413Z", + "updatedAt": "2026-01-06T14:17:56.460Z", "postProcessHash": "b440aba6aedb14d8b49197e5b73a22be15fb4100ffaa22b66edc8fe9700a50b3" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.415Z", + "updatedAt": "2026-01-06T14:17:56.464Z", "postProcessHash": "78385117d611fbb9ccc8936ca1a5e91fadc350a437c5e6213143383b1d4681c8" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.406Z", + "updatedAt": "2026-01-06T14:17:56.450Z", "postProcessHash": "79f0ac36b636ffa27a801c3b37c5a05877df71e945e61ffe2075b52802e4c1a4" } } @@ -35348,15 +35908,15 @@ "6c4d95e5c9add2129eec07c7db776b15731e42064678712cecf1b19d27e9fe1e": { "26bab87ac6555b58f09e971a206121597dc934bf1607e0bc1d1c1ca74b3c8ab5": { "zh": { - "updatedAt": "2025-12-29T16:46:13.413Z", + "updatedAt": "2026-01-06T14:17:56.460Z", "postProcessHash": "03b3c36f8339c6f2fdba3e82b24c140e8cbf1e911121e4e0b6eaecae31c9b1b8" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.398Z", + "updatedAt": "2026-01-06T14:17:56.431Z", "postProcessHash": "52821f095c2415db10c2dca47b1c3996708e19d4220cf820c1348f82239305b9" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.415Z", + "updatedAt": "2026-01-06T14:17:56.465Z", "postProcessHash": "2bffbbf8c4e580a60031e783c9b80a917217cdf1b1300cb72155bfaf975d9ab6" } } @@ -35364,15 +35924,15 @@ "c97c8d3fc1255144232e48ef1068845cf9a505bf268924eb00d02e4a764b06d4": { "cbf44b30af8d393437b434943a6b72c84ddfbb0c5021ffa6ee01fcee470fce64": { "zh": { - "updatedAt": "2025-12-29T16:46:13.414Z", + "updatedAt": "2026-01-06T14:17:56.461Z", "postProcessHash": "16318728cd79e90b5a7be57591fab378a0bbd83a947052bc7c5f0b5745651673" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.398Z", + "updatedAt": "2026-01-06T14:17:56.431Z", "postProcessHash": "d070a83781226d5f96f72ae5d7f9ce826325e7c75aa5e539ad4d19e1060d1adb" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.411Z", + "updatedAt": "2026-01-06T14:17:56.458Z", "postProcessHash": "d337dec79e7617affc078de5ea0ae84861cb8eb5ad6098536fd3a0f593bca97c" } } @@ -35380,15 +35940,15 @@ "aa965228754f809fd54c3e57e8b77d0a2e9c4a048e0e68cef7ae8c333114457a": { "f9ce484d23646e185c37dd955d8f8211aaac0ff9716bb25cc7a6c1dfc7722732": { "zh": { - "updatedAt": "2025-12-29T16:46:13.464Z", + "updatedAt": "2026-01-06T14:17:56.536Z", "postProcessHash": "9503c3d1f69c8825baef824f1528bc0bb2b3e8dfe0478382f2da8df3ebc509e0" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.474Z", + "updatedAt": "2026-01-06T14:17:56.555Z", "postProcessHash": "b8d1cb08f2dcc58a31109d5a9acb65feb9decfaba3a792cccacf273b77ee7607" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.450Z", + "updatedAt": "2026-01-06T14:17:56.515Z", "postProcessHash": "65c95b387a59ecae0ba7efbb103fbd9defdbc7fa7980b825d124594c9ae80945" } } @@ -35396,15 +35956,15 @@ "db4a603afaa721633684ab401b86356ad8252b3e4987d3d7f3a1c55750046ef3": { "c71c72e22f263d7e5cb4b6bc6151025b50d1a6999e50ff20143e7d9570eab7e8": { "zh": { - "updatedAt": "2025-12-29T16:46:13.464Z", + "updatedAt": "2026-01-06T14:17:56.536Z", "postProcessHash": "f080705bab0cf6c730ca1b98f4b2d1cace5f5ea774a545034c4b22cd807fb41f" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.491Z", + "updatedAt": "2026-01-06T14:17:56.579Z", "postProcessHash": "a83f89a51480901146348052c7bf4d86bb0100e769064d0a7f0470f84f68a630" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.467Z", + "updatedAt": "2026-01-06T14:17:56.545Z", "postProcessHash": "00ef1cff36e55b37922eb94720f2f12a81e849ca99532e0c56a261d4bff40328" } } @@ -35426,15 +35986,15 @@ }, "deeb4830e0b99b1ec3e055dfeac854f8548d1939d465b5b976f653692a679719": { "ru": { - "updatedAt": "2025-12-29T16:46:13.493Z", + "updatedAt": "2026-01-06T14:17:56.581Z", "postProcessHash": "f6f2deed7263ee2aea93a17e8ff2d670aeddf288f4e82ff8d6598ef2d51df0e7" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.494Z", + "updatedAt": "2026-01-06T14:17:56.582Z", "postProcessHash": "fb2b84a7555135feb54aa1e77b37c0d6603008b8a3920df0993cdb77a91dd3db" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.495Z", + "updatedAt": "2026-01-06T14:17:56.583Z", "postProcessHash": "bb76454149014f7bdc36f7863393db6012f24efc75be9e7938112034bd50338a" } } @@ -35442,15 +36002,15 @@ "baa5800841c33574a763c76d84029b7167e28cd0e383b549d3c87bdde30230b1": { "4e66ec48e4681668b3829e07df4225df08079780a33326c20145dbd63d2cf115": { "ru": { - "updatedAt": "2025-12-29T16:46:13.529Z", + "updatedAt": "2026-01-06T14:17:56.631Z", "postProcessHash": "a3e1431145e4820cfeac27708b19095df00f2180627147668b67ba010acc53cb" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.552Z", + "updatedAt": "2026-01-06T14:17:56.662Z", "postProcessHash": "4b44f18b0ddedb74045f61c47a88c174bb7714e89989b92f29093af11ae54d97" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.519Z", + "updatedAt": "2026-01-06T14:17:56.614Z", "postProcessHash": "928622a94290e5f9b1135290c7e7ecfecec4a052cf03ce15d427f01e1bdebea1" } } @@ -35458,15 +36018,15 @@ "6999f92f0023fe1dd1e922ddaaf1df722f316e49e43a1f46219683d3add8c812": { "9280cf92c0f64187017d3e623d9d06cf5122c9cca98da66abea3317bbf634e3b": { "zh": { - "updatedAt": "2025-12-29T16:46:13.466Z", + "updatedAt": "2026-01-06T14:17:56.540Z", "postProcessHash": "6ff97b094763880e16d5d718c47c75784ae23f08beb66d4d12f81058fb0dd861" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.444Z", + "updatedAt": "2026-01-06T14:17:56.507Z", "postProcessHash": "897b020f973f736f9193a6c129f226d928b1ecb6e212f973125498e8e7cf40cc" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.465Z", + "updatedAt": "2026-01-06T14:17:56.539Z", "postProcessHash": "3d36090e5d2c4b45b214577349e9f255fec1b189eed042a130f6ec2b593e4a44" } } @@ -35474,15 +36034,15 @@ "534c97b1abac407b7ffecba5c237d20ca3ad4c270a44ed90b44e77de585a610d": { "7ba7deb86c597b598ca684677abf36c48f1d224dfbe3c8465bb1e2b40a280f81": { "ru": { - "updatedAt": "2025-12-29T16:46:13.414Z", + "updatedAt": "2026-01-06T14:17:56.463Z", "postProcessHash": "302200241db8ec029ce1fc1be1327078a42f95f7dc85e57fab7aae64a6f4e229" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.437Z", + "updatedAt": "2026-01-06T14:17:56.495Z", "postProcessHash": "7d132f8ed0294f97dc3f86f7fa91d2d4082704018343dbfbc7ca190d18431acc" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.426Z", + "updatedAt": "2026-01-06T14:17:56.481Z", "postProcessHash": "13f52d5e4ad688267a5106fc924dbc7eaff735fdb1c1e8666f68d4f6414883ea" } } @@ -35504,15 +36064,15 @@ }, "dc123045c6b5042b3d614457608b29bb8672c7427fb8fabc62bab111e91f1df2": { "zh": { - "updatedAt": "2025-12-29T16:46:13.492Z", + "updatedAt": "2026-01-06T14:17:56.580Z", "postProcessHash": "afef5ff5646f2a8ed09da0466ec4fc27a38cd605ccb3e01ea9d5141fb643c02c" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.492Z", + "updatedAt": "2026-01-06T14:17:56.580Z", "postProcessHash": "791be4aaaea9e283ef9c6bb75d0c6bb325f9a541bfdd870ae2eafaa14427aa5d" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.493Z", + "updatedAt": "2026-01-06T14:17:56.581Z", "postProcessHash": "21a13800d5f34c249196429ae00fe39e974adc1564ae84ed9bf581127816b50a" } } @@ -35520,15 +36080,15 @@ "89191e0f0f3ac7ad6fcbe90e008723be94527b1dc5730c24b0ef28b7567b621a": { "db61043ee1c3c508cdf7d9dd474714bef6965ab628e609c3b20ddf986ef02cc9": { "zh": { - "updatedAt": "2025-12-29T16:46:13.467Z", + "updatedAt": "2026-01-06T14:17:56.544Z", "postProcessHash": "3a60ec5c6f32e2ed28830463ddf8cb36ca67363c82cbdcf1c20a922abb8a666f" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.475Z", + "updatedAt": "2026-01-06T14:17:56.557Z", "postProcessHash": "bd104930afdc23bbdef920b1961eefa1416d8526ddbbed7763859b2e49ca7224" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.476Z", + "updatedAt": "2026-01-06T14:17:56.559Z", "postProcessHash": "1ca59c0d5b9e148aa49b1b71892dd8f7756410aada66cac7c4e4325108c62d79" } } @@ -35536,15 +36096,15 @@ "e9514b207fd2f0999e54604bcc5f81ff6fdaee6511cc23ec24b5e33bcbd7a748": { "9824c5507b882758b8df0cd7ac8ec6f8ec745839288f88d8cad0156e2ed55258": { "zh": { - "updatedAt": "2025-12-29T16:46:13.488Z", + "updatedAt": "2026-01-06T14:17:56.575Z", "postProcessHash": "99e9cd074d76d74d290b9d6d4126a078557e51309a89f6103debf219016fdc92" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.491Z", + "updatedAt": "2026-01-06T14:17:56.578Z", "postProcessHash": "12b5bec61f8b4c4ea8e3add4e50e71502d03e77656bb8692b2611015ffc5728d" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.490Z", + "updatedAt": "2026-01-06T14:17:56.577Z", "postProcessHash": "0dbbed0b0696605e7e49845d0710f792f6ab4dd5a146d59be9dde9a2caac8fff" } } @@ -35552,15 +36112,15 @@ "bb75403cac8908b2d1e0f7435d3c432ee901f13dfdca991fb73204120a85338c": { "0a7663696896ca536cf8c5b6b0059cce8944689bcec816f2b5c5b41720cbd804": { "zh": { - "updatedAt": "2025-12-29T16:46:13.489Z", + "updatedAt": "2026-01-06T14:17:56.577Z", "postProcessHash": "bb171f436c182f20fa87920fbd5526429a924f8fb07d16208b586fb167ddf36f" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.474Z", + "updatedAt": "2026-01-06T14:17:56.556Z", "postProcessHash": "db1b290173ecf75bb6219030a729ffc935b53aee3ce33ec9ab8cdb7d3642a673" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.457Z", + "updatedAt": "2026-01-06T14:17:56.524Z", "postProcessHash": "9e5201f807825a3dbd9bc4122798d7fce0d6cbe7a829d0f0c5332919796d5c2f" } } @@ -35568,15 +36128,15 @@ "c66448d10c048389547620c0efc34decc72e9f80bc32daa2c49d957e3c02fa1b": { "1f29d5a37e6fed39b5f9602645e28d9fa470dce74a39a6c598dbd0a16867a37c": { "ru": { - "updatedAt": "2025-12-29T16:46:13.531Z", + "updatedAt": "2026-01-06T14:17:56.636Z", "postProcessHash": "fb65084f202689f4ee34716a2315054086519aa0cbfe0c514ca7d1c7017d83a1" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.521Z", + "updatedAt": "2026-01-06T14:17:56.619Z", "postProcessHash": "1af7c5cd828772a70e5756398de03007e47190f46d1528189efceb2618fdec6c" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.528Z", + "updatedAt": "2026-01-06T14:17:56.629Z", "postProcessHash": "550c171f01618c3f88ebee516dd1c84e88a03ab69928b3ce2e5c8ad50661a6ac" } } @@ -35584,15 +36144,15 @@ "7a098dff053dea397b97871863eca7199375f5d95f819134c433310d813f3ae4": { "ea322771a5ea71a865948471da4a31d3c932f43e7f418fbd44d17ba4dd564761": { "zh": { - "updatedAt": "2025-12-29T16:46:13.439Z", + "updatedAt": "2026-01-06T14:17:56.499Z", "postProcessHash": "cf9d893544817147e146efc1771b9a1ca0f0e5eeba0d457eaa5484318fce0877" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.440Z", + "updatedAt": "2026-01-06T14:17:56.500Z", "postProcessHash": "1fb2f666517a50ad85b57c6756b3c2fbcbe69aab1e666c39312a266b641a761b" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.421Z", + "updatedAt": "2026-01-06T14:17:56.473Z", "postProcessHash": "71f525fa17cfbbf6538717b0e1d2b1e002b8322e2cebf89397fa71892eb86fc6" } } @@ -35600,15 +36160,15 @@ "a36c558e3cc8eb2a3b03c01a4286bfac9d72237977464d90e7395a10cf2209e0": { "94ce7d6626e94f915dc3f8c3c80748074f7c1a750f5800beccd7406817b5d19f": { "zh": { - "updatedAt": "2025-12-29T16:46:13.468Z", + "updatedAt": "2026-01-06T14:17:56.548Z", "postProcessHash": "03874ad730b8ccc983836110b6604480a9737c1837b6bfeb35232bd6b437a31f" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.476Z", + "updatedAt": "2026-01-06T14:17:56.558Z", "postProcessHash": "5c669066a06859611730bd1e474aa246bd1ab5c3a3af81808bfb645c65afd830" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.466Z", + "updatedAt": "2026-01-06T14:17:56.542Z", "postProcessHash": "1d1e815a48422873ec06758a996fd1e2361d7667443f494ffbe8db3e0bcffb89" } } @@ -35616,15 +36176,15 @@ "68ae98d78891d0611568e05de511ec72306b7b3511df399280a7ae2c79b3ee06": { "33c7517467d660435f217ea64c4bf7d1325b67636ba929b3ced122cbffac2355": { "zh": { - "updatedAt": "2025-12-29T16:46:13.352Z", + "updatedAt": "2026-01-06T14:17:56.370Z", "postProcessHash": "4594edfe86ecb060298ba8335788c3640098f88f47dc0c9d395ae171a6e962bc" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.355Z", + "updatedAt": "2026-01-06T14:17:56.373Z", "postProcessHash": "ebab7dd27fca2e09d7ac04a138a5490bc5a9f4535402f122012e1ba7d066bd56" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.354Z", + "updatedAt": "2026-01-06T14:17:56.372Z", "postProcessHash": "82cdc6d922cd3ae6acaca325d604fb683f0de235fdf3bdff892a7bbb0b5b4d4b" } } @@ -35632,15 +36192,15 @@ "561284460b1fb2a4c59ce07e83be4fee1a8ff052b66a64ff66141a296715102c": { "30382cd05cdfc447ce68389ab117d0b72fb4faf154b6c67bed6c57d0ed565d98": { "ru": { - "updatedAt": "2025-12-29T16:46:13.534Z", + "updatedAt": "2026-01-06T14:17:56.640Z", "postProcessHash": "c2ec88bbed1ffe486869335e72b7c26cc9a05fffcbb098a5636659b0fbb4cd3d" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.539Z", + "updatedAt": "2026-01-06T14:17:56.647Z", "postProcessHash": "78225e046c02cb6715aac32fb41f664e99a36fecbf97f4ddfddc520a8f888b11" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.540Z", + "updatedAt": "2026-01-06T14:17:56.648Z", "postProcessHash": "2c9a0809aab254d80deefe22e1f422c665e84c1b9eaa75cba91d857bd0ea9f7c" } } @@ -35648,15 +36208,15 @@ "8b014d0b3ce023d8c15fd8c5eb2d350cacf9cf3c41dd4b69ff25dd2351d35db0": { "891d96677ae497189e4ef48d65804e3b886d35381aa01b9dd409f5c32ee066aa": { "ru": { - "updatedAt": "2025-12-29T16:46:13.534Z", + "updatedAt": "2026-01-06T14:17:56.640Z", "postProcessHash": "db2275d81a8a3a743c52a25b99297136dd54e81cb112c2ea658fc6e0c235bf02" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.540Z", + "updatedAt": "2026-01-06T14:17:56.648Z", "postProcessHash": "88d16b7eeb4ba7bd09d8419a2806607334aecccb9ff20174da139fb528ed8fd4" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.535Z", + "updatedAt": "2026-01-06T14:17:56.641Z", "postProcessHash": "1b90d5674bc43919be31dc5a42d57be339a0e221000bd70017b3245af84d6d20" } } @@ -35664,15 +36224,15 @@ "82fa28546b5677c4d98f580e1e222959c159ae3d9905e0932fbfebe2ebde8218": { "5207e407e3f1eccc511c0aaa51164bd35e4d15543e26e8e004002a81d42f5b90": { "ru": { - "updatedAt": "2025-12-29T16:46:13.416Z", + "updatedAt": "2026-01-06T14:17:56.466Z", "postProcessHash": "0e6d9fafac4b1c04ee98d47978a9852b82f14b5d9e48bebb383a365fbeaa02c3" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.420Z", + "updatedAt": "2026-01-06T14:17:56.472Z", "postProcessHash": "25b9e10658488ec6e14643aeba99834cce0e847f4e40dc8e1b42ce8a48ae56e9" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.427Z", + "updatedAt": "2026-01-06T14:17:56.482Z", "postProcessHash": "66cbadbb1d85cdc4ed7875ed010ca5639fd440cf4fe3522bed349a999756c542" } } @@ -35696,15 +36256,15 @@ "2e86bca26b2ac693c6c25e4a60919c546b7872ba88d487d37cba83528dd4c1c0": { "82625a723fba7e62c237b3557661bd75bff3e41b4de031a888fc315f70bf8f60": { "ru": { - "updatedAt": "2025-12-29T16:46:13.418Z", + "updatedAt": "2026-01-06T14:17:56.468Z", "postProcessHash": "0c74ef48906eda3d722896d96351cb0202b348bff5692813cfc602f6434924a8" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.402Z", + "updatedAt": "2026-01-06T14:17:56.437Z", "postProcessHash": "c94e329d96a4bc5e1fa15e93b3a0908e0f47b06633a44b0c917f3ef8cfdae6ab" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.425Z", + "updatedAt": "2026-01-06T14:17:56.480Z", "postProcessHash": "ff110cd5a0a09f204d9600a9952215dc751b5fa312144864f47bd764d03cce1d" } } @@ -35712,15 +36272,15 @@ "03f4f6675beb54a72bd7e3d62bec8c07f1c24ef51dcd84e88ba10e86e3a5a9b7": { "eb1beb44798239cd7a4b527f6d7acf65bd7638560f8fda08cbea63789789cbab": { "ru": { - "updatedAt": "2025-12-29T16:46:13.418Z", + "updatedAt": "2026-01-06T14:17:56.469Z", "postProcessHash": "d4e1d3f3a88823acc2cbaffc89f728261f36b891ff7328529017d519f4eef950" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.486Z", + "updatedAt": "2026-01-06T14:17:56.572Z", "postProcessHash": "5047f562d1ddee3f7676e832e3fc524b46e90aa608de48b80f0c6c3fcdf7926a" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.482Z", + "updatedAt": "2026-01-06T14:17:56.566Z", "postProcessHash": "c0c69bd145c09734a0bc829c2ee4cf005b3390000d72d973e89699a1b4d43a1d" } } @@ -35728,15 +36288,15 @@ "32ffa87be40ab5f31e20d44d8997706429f8284873cee16bf953aa7c8a533e87": { "987df6e0573b5dadab1d721fb8b42546edd8a72a4c4ef547c90da774cfdc0384": { "zh": { - "updatedAt": "2025-12-29T16:46:13.469Z", + "updatedAt": "2026-01-06T14:17:56.549Z", "postProcessHash": "4706ac0730d08f6f1ab820b3dd23f714ceac70570c4ddbee03d9e03c2454e913" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.459Z", + "updatedAt": "2026-01-06T14:17:56.530Z", "postProcessHash": "c1c4898801d8e733cb618ea11acb6b5304ecd7aebbf2e3ceaed32c48cadcbaec" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.463Z", + "updatedAt": "2026-01-06T14:17:56.535Z", "postProcessHash": "9c6d049c1e5b458e861d7ea8cbb6cf42e379708db3305aca6458273bc6c6c9cf" } } @@ -35744,15 +36304,15 @@ "a2e55a90379e6ffc005d5cc760c9bf50e3a6631ad77cd354c2d442860ad851ea": { "a0801c6bb244ad72c6b1b26969b590462545f49f3c2c06d4078fe79f62be5841": { "ru": { - "updatedAt": "2025-12-29T16:46:13.480Z", + "updatedAt": "2026-01-06T14:17:56.563Z", "postProcessHash": "a7421101de676d8725f1e9a90719830f048cf7c4f55bba40e976fce06b8a79fc" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.423Z", + "updatedAt": "2026-01-06T14:17:56.475Z", "postProcessHash": "4f90b32df9ea27d54ae0bfbfbb7d26993d436a1d5d3d5f3eee31df9ce95ceaf6" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.410Z", + "updatedAt": "2026-01-06T14:17:56.457Z", "postProcessHash": "b9baea647e814630f53f82c26636515f4cd26d5922935bb2ef9c526c09add42d" } } @@ -35776,15 +36336,15 @@ "459dcfc8cfcb0c798eda34051037eaf36f0e8bdbf413d5ca0f86faf6d1ae4e24": { "f469d58719f2670441a26ddce21a692caf6821dcb698ad90eba442b062adb5aa": { "ru": { - "updatedAt": "2025-12-29T16:46:13.472Z", + "updatedAt": "2026-01-06T14:17:56.553Z", "postProcessHash": "ff040cd9fe24236f09181c6e594796a5034f5e98af4de461a9878c4ae1381a30" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.456Z", + "updatedAt": "2026-01-06T14:17:56.524Z", "postProcessHash": "da574e6ef07be0f3b7b069fb682901bfc2807ab85e8cb83074e2b232b131c843" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.468Z", + "updatedAt": "2026-01-06T14:17:56.547Z", "postProcessHash": "6b42ca4edbef3cdb1f388d141f95a14eb620e4391540825aeb078d8904beb08d" } } @@ -35806,15 +36366,15 @@ }, "fa11937c9f77b49d2b326572421428eb068fdac15bb5dc5a991c38daf71dc428": { "zh": { - "updatedAt": "2025-12-29T16:46:13.381Z", + "updatedAt": "2026-01-06T14:17:56.405Z", "postProcessHash": "572a573d709a16f3baec2bfdc3bd3721d2e6efc90e55491641860ae948898cb5" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.382Z", + "updatedAt": "2026-01-06T14:17:56.405Z", "postProcessHash": "7010440cab4117dee67a5b15bea468c4a580e9f4404c8c9dc78d421a430d9b75" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.382Z", + "updatedAt": "2026-01-06T14:17:56.406Z", "postProcessHash": "28ba754124f370fca2448c243c6c3c0425231cc78f26bf619a2b5ccc42306ed0" } } @@ -35822,15 +36382,15 @@ "299acd2896dbdcc7fc9ec56b51b4a1990b56dd0fe41acb3e57f9cae1bd915ac7": { "99ca8337276f2850a682286f3aa13f69597377997f305892b1182845150c4e2e": { "zh": { - "updatedAt": "2025-12-29T16:46:13.537Z", + "updatedAt": "2026-01-06T14:17:56.644Z", "postProcessHash": "ef3949259dc24e21fb79e3802c4eea5274192430dfbeb2dfdb7f019999a7cfa5" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.600Z", + "updatedAt": "2026-01-06T14:17:56.714Z", "postProcessHash": "cdd3554a34db824fba17a52aaaf6976ad99f2df2f092f67a98a24f68d9efa182" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.503Z", + "updatedAt": "2026-01-06T14:17:56.593Z", "postProcessHash": "0e310b0ef2e824e076993166fa73b95de34030cd34c0eb690fa3ee7bf3f890ea" } } @@ -35838,15 +36398,15 @@ "3246877b14617a738e90832de040052391f7c8fc094ca44b2455eef30fbf314e": { "d6d3906022ccc3319721785ef9aa9f57093fc737336e72eddec0d952f2c844d7": { "zh": { - "updatedAt": "2025-12-29T16:46:13.589Z", + "updatedAt": "2026-01-06T14:17:56.701Z", "postProcessHash": "0eb77c505f7837923faa463f4268dc3c00e3ca7cc1f11780fc2c3fd6713a825d" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.590Z", + "updatedAt": "2026-01-06T14:17:56.702Z", "postProcessHash": "ef5b34e961c19a6018f60d58cdafb465c5d9c4108984679e3af00c764bbc5642" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.568Z", + "updatedAt": "2026-01-06T14:17:56.680Z", "postProcessHash": "0c3ad89659eaf31e2f42216e60abe0e45e8a3e180a193469c59f20da91122c51" } } @@ -35854,15 +36414,15 @@ "3635e79a2e76bb297d10c5dd4637f4fd94275c1ba1081c959a4f02a8d8049bf6": { "69cff4cb3337c445b437475f175d0c1ab8c863e57aa050035a2284326ea56533": { "zh": { - "updatedAt": "2025-12-29T16:46:13.446Z", + "updatedAt": "2026-01-06T14:17:56.510Z", "postProcessHash": "f22406ca08031b6a3394f44a875745cd9ec929db1612c0396b877c977f95d487" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.516Z", + "updatedAt": "2026-01-06T14:17:56.610Z", "postProcessHash": "a885628c01b5094ed2e356525b3ea3994fdae390b171b6ab920331cad8ff971f" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.538Z", + "updatedAt": "2026-01-06T14:17:56.644Z", "postProcessHash": "e1e174150adfaf8e8721b473f6dad372592fef8313bb8a881ffd04a62701f46c" } } @@ -35870,15 +36430,15 @@ "c3ae4d87db64f55d260d37bff7580e0a1ff638a6c1bebc984889a0f53e882bd1": { "c8ec9fc9c8400c3e7fc2098760f4d554623fe5eaab093ad69821218853b4e3b8": { "ru": { - "updatedAt": "2025-12-29T16:46:13.397Z", + "updatedAt": "2026-01-06T14:17:56.429Z", "postProcessHash": "e274ae697a0536ab47490a0e2a9d6feeb6ee0d10126b80b4b4e57679f84bff97" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.481Z", + "updatedAt": "2026-01-06T14:17:56.564Z", "postProcessHash": "3a7e99e7ece61d7d9df531889a6b6d11f05f85d73edcca2f254ca4e2be75e26a" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.484Z", + "updatedAt": "2026-01-06T14:17:56.571Z", "postProcessHash": "d4a109f15fe81e5bb6cdd804ea6c63f86c09823965630a614d3278e0698b12e5" } } @@ -35886,15 +36446,15 @@ "7974b5d9fc7e953fa4aecd07c2f6f9176f90a9a89310ebe7fcb27dff7fdf734a": { "b66740bd12022ccefeb425eba94ee09c08528b3a5b347793bb597e953e4f21b2": { "ru": { - "updatedAt": "2025-12-29T16:46:13.447Z", + "updatedAt": "2026-01-06T14:17:56.510Z", "postProcessHash": "4fb540261ff285b927f800bb66e4a283bb2310aa16009e7c772a4fe0f13bbae2" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.548Z", + "updatedAt": "2026-01-06T14:17:56.658Z", "postProcessHash": "fa25483e2e6957cb19a580f845a22206763bc0daccca7617ecc4517a8cc7e375" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.530Z", + "updatedAt": "2026-01-06T14:17:56.632Z", "postProcessHash": "ad3f47fa1324975d1fc0061e3b6e88c57ecf19055f9e0f3e1829841545129dbc" } } @@ -35913,15 +36473,15 @@ }, "83c1d1eeea98d87ba3da3231d2806cc372567257839dc62fd43ae5ea90f39c3c": { "zh": { - "updatedAt": "2025-12-29T16:46:13.383Z", + "updatedAt": "2026-01-06T14:17:56.408Z", "postProcessHash": "4be7b915d531026bac17cc0c58f374b06623b727697945f53b908e6ab6b34918" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.384Z", + "updatedAt": "2026-01-06T14:17:56.408Z", "postProcessHash": "342fc35f8b80414635b94f25378ec526b7e2779a24172d6c5e83301a76afd6cd" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.385Z", + "updatedAt": "2026-01-06T14:17:56.409Z", "postProcessHash": "4b6981e212a7a3ce487c1b7ba441a5477ac0d0dd3d2a78d2ce6bd992e6585d5c" } } @@ -35929,15 +36489,15 @@ "51f9cca65edfee082630f0b1fb8e3a29f4ab177d7d5452a9abc2e1f9b56e3c53": { "96fa3e43effb19ba6584f2d1ae472b68548bb3a136e72cc23135e36bd3bd7b5a": { "zh": { - "updatedAt": "2025-12-29T16:46:13.533Z", + "updatedAt": "2026-01-06T14:17:56.639Z", "postProcessHash": "8c88ff5a375c1ceeffa3f48165c097d6293b3928a22952eaf81e32b21c7c9dc8" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.539Z", + "updatedAt": "2026-01-06T14:17:56.645Z", "postProcessHash": "e1e4ef61478d32dbc33d8384fe98356d1e9b78dc34b7451bc1ef490a95103b18" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.519Z", + "updatedAt": "2026-01-06T14:17:56.615Z", "postProcessHash": "48f4ac19ee29aef219cd098515d1ad16b0def9da6a95c000f705025a34a8e224" } } @@ -35945,15 +36505,15 @@ "0f09f5442f4b4bac183a39fe7c4ebb5f27e3e93b8fbdd22c1bf04db43e598523": { "8dd4d3197218cd45163cf27ba0c5e57b39a8db91e1ae9ccb34b1ee6871418db0": { "ru": { - "updatedAt": "2025-12-29T16:46:13.419Z", + "updatedAt": "2026-01-06T14:17:56.470Z", "postProcessHash": "3353fd85956bc7ce0c103255a234f7a6dea763aade2040db6e1b6280745d41c6" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.424Z", + "updatedAt": "2026-01-06T14:17:56.478Z", "postProcessHash": "9a31f945da5957be59092f4b6a3da06aff530461ae6e473a849ae1899830392a" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.427Z", + "updatedAt": "2026-01-06T14:17:56.483Z", "postProcessHash": "2855a909b86f3e628bbef82144b20cf1e1330bbf64e71b377402e8a44159458e" } } @@ -35961,15 +36521,15 @@ "04bd894d54eb7791d6c20efe6b82643d60ba5f94079895df60cd832a967a8b72": { "b4b191db3e0a1686174b935b4a408eec87a5d10accead9bfce53f6fdb0c78147": { "ru": { - "updatedAt": "2025-12-29T16:46:13.420Z", + "updatedAt": "2026-01-06T14:17:56.471Z", "postProcessHash": "ea8955a39b360c5789c530c3b03d98948318d928fbf66f5dee4500c82e04d74c" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.485Z", + "updatedAt": "2026-01-06T14:17:56.571Z", "postProcessHash": "a9a3abe3c958caaa8bcbf17296846516ff0bddb242f35491e4949add096d9555" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.481Z", + "updatedAt": "2026-01-06T14:17:56.565Z", "postProcessHash": "b88a666d313b0230b7cfba55682a3baf805cfa102aec28c09fe178c1094f4a31" } } @@ -35977,15 +36537,15 @@ "ee7cf7082c51841ba27fc19b990495b38b92128a79d2a323ecbca6bb723f0e8e": { "7deda54447cba9acce76845c952c2c7f4ee86488c276f4a335c96e4c55dc6bcd": { "ru": { - "updatedAt": "2025-12-29T16:46:13.470Z", + "updatedAt": "2026-01-06T14:17:56.550Z", "postProcessHash": "00c3737a47fe87076367c5f47d9902ed50003b8ca68e540b557b4ae3dc6bacbe" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.475Z", + "updatedAt": "2026-01-06T14:17:56.557Z", "postProcessHash": "9be2b5c0b3aa8227805010464eed85f607305f134224b9c9f01260fde9c24152" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.473Z", + "updatedAt": "2026-01-06T14:17:56.554Z", "postProcessHash": "fda4b48e08eead05bcf991f16a558e29fc34cff1ef0f1f86ba18974e19fb7119" } } @@ -35993,15 +36553,15 @@ "cbfa6856b07360063ce643d5dc0c1d3cc2418e2639de759af00c6f665fc517e4": { "0140ef2e17d32f74a3b543e6327533884c8025b049e9fdc7af2a729378577a5e": { "ru": { - "updatedAt": "2025-12-29T16:46:13.471Z", + "updatedAt": "2026-01-06T14:17:56.551Z", "postProcessHash": "14ca6cdc3fbc019800d1ab2b245d5f75cfa28484e93aeb91e9a82682a7f0f194" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.472Z", + "updatedAt": "2026-01-06T14:17:56.552Z", "postProcessHash": "6aa71ec4bfb64ac6141da1d33875df04ac54b1fc3ac904c98504f035d296bc4d" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.477Z", + "updatedAt": "2026-01-06T14:17:56.560Z", "postProcessHash": "08b00891741a87bd19db685cd391471622da0a3b2abbe958d09f345186bd2947" } } @@ -36009,15 +36569,15 @@ "c91f782ae583639337bdc49114576cfdd9c9355b699a68919bf1bd023713faef": { "bec2f91a18ab29d790a84a8d99cfc87824936240769c4e0889827b57e2472e09": { "zh": { - "updatedAt": "2025-12-29T16:46:13.596Z", + "updatedAt": "2026-01-06T14:17:56.709Z", "postProcessHash": "96472858f38cb719004a2b08f4486e9d1249be74b467d9efbf04ff6eeac79ca5" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.577Z", + "updatedAt": "2026-01-06T14:17:56.689Z", "postProcessHash": "60e3bb97e6840743363aa52c613a740f152ed9859f31336eec9841ab6a5f350c" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.574Z", + "updatedAt": "2026-01-06T14:17:56.685Z", "postProcessHash": "bce25c2d42faafc7a5ddf46e0bc226db46499d2f2b49ff7faf8865925997ecf1" } } @@ -36025,15 +36585,15 @@ "abdc65a73d328d0f6587eba73db81db937a7f67106eeb840b67ebf52e35e6379": { "3d443c4abc73eddf8e334725cfa0abf5cbeb70f4475566a8d40953e253b629bc": { "zh": { - "updatedAt": "2025-12-29T16:46:13.425Z", + "updatedAt": "2026-01-06T14:17:56.479Z", "postProcessHash": "6e8c387b0796e22e05587e69f740cff2b1340c55bc22aeab98aea2dfd82f39f9" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.484Z", + "updatedAt": "2026-01-06T14:17:56.569Z", "postProcessHash": "2e7fb04929626238e46e7478f004ee07245271484452287ecc0a24fb33d66526" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.487Z", + "updatedAt": "2026-01-06T14:17:56.573Z", "postProcessHash": "21ffa1a2a97ca3e11a0eeb8796e4f9af209867a8691e79d4055e79f3fcf17e4e" } } @@ -36057,15 +36617,15 @@ "fae1576558dadb0c932329389ce8fbcbeee0d35379cb6c996673cd93aad35a13": { "3c3975cd182172060059f7637ba3d00c8b28a90dce27de128e912a0c986041da": { "ru": { - "updatedAt": "2025-12-29T16:46:13.541Z", + "updatedAt": "2026-01-06T14:17:56.649Z", "postProcessHash": "614cb17c66181d2920e36c452dc405016e814644c75aacb604bf1c252b4301f8" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.542Z", + "updatedAt": "2026-01-06T14:17:56.650Z", "postProcessHash": "93c9299c18f94784625059e2cb2f1ba46790078c405a3a2a63ab9069a9c9b633" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.537Z", + "updatedAt": "2026-01-06T14:17:56.643Z", "postProcessHash": "08591097cde9ae41f9e8b63b28285e0acc00a05857d8f8aae827612cb334958d" } } @@ -36073,15 +36633,15 @@ "3f14c9de32cc2309c896fed678c5b28a7dbf39af5a00bc45e0fd013b9c4d05d5": { "30c6636556ee6c7c353538457f6b3b57a9f5c21c15e651b2997b487922e38fc3": { "ru": { - "updatedAt": "2025-12-29T16:46:13.589Z", + "updatedAt": "2026-01-06T14:17:56.702Z", "postProcessHash": "834ec5a0adcb1a1341efe7d9314b190b7a42687672519a15428962cc2960eec8" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.579Z", + "updatedAt": "2026-01-06T14:17:56.691Z", "postProcessHash": "74c57d7e0b7dd734f111d295a1e656005038dbc7f20581049e3874dcc590218f" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.587Z", + "updatedAt": "2026-01-06T14:17:56.699Z", "postProcessHash": "4b2b33173acdf7ee3fed1eac99bba3cd097ed32b6ea6f75f77273ce38c1014a4" } } @@ -36089,15 +36649,15 @@ "6bed7e7a83ecb81ba1dd2bac10ae908f5dca2985a1372a02ea6f37edc19fb8d6": { "d69df1442a7aad94ba9096815aac2b779c3a23eed85dba10c8cf5e643215acf7": { "ru": { - "updatedAt": "2025-12-29T16:46:13.478Z", + "updatedAt": "2026-01-06T14:17:56.561Z", "postProcessHash": "aab08b4a2418477525a978f4a46238f5406d7e7a0d8e64c1566339d1bf635516" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.479Z", + "updatedAt": "2026-01-06T14:17:56.562Z", "postProcessHash": "c460555dbc9fe001deff35d0e77d1690c8c7bc974d77a2df3febb00afa194997" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.490Z", + "updatedAt": "2026-01-06T14:17:56.578Z", "postProcessHash": "a22032f600c4ba2e5190be2b59d67387d0600901cdd6b7ac41c8bc301f3c5799" } } @@ -36105,15 +36665,15 @@ "3e0601c102f0cd71b8eb284da75b1cb579b66391d37fa681cf6d4bc5e1cc1d58": { "4eeb3b260eb5599be93bf2151af54a52820bc5b7145e432d1d16218f6b0c376b": { "zh": { - "updatedAt": "2025-12-29T16:46:13.428Z", + "updatedAt": "2026-01-06T14:17:56.484Z", "postProcessHash": "8c9ca6ca37c11b59d146adcadcd4cb1f20ff8d52b39dc6ea83b7a256ea7d8303" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.429Z", + "updatedAt": "2026-01-06T14:17:56.485Z", "postProcessHash": "1d4f02786441290e20258a1dfc1c1ec5510a202d8700ba77ddf00d579bafd78f" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.441Z", + "updatedAt": "2026-01-06T14:17:56.501Z", "postProcessHash": "b30603cd557bf396848e02bf31809a26f493192fca1378ca4d6ae1b999ff6258" } } @@ -36121,15 +36681,15 @@ "8b38fc05c0c3883d9a4ec8bbf5caa1bbc4260e946b23ad31bf5c97563bd88229": { "58e3bcd0e949f466dc2d6e918d912d126143beea61afa2ee594bb6cb9d60e88d": { "zh": { - "updatedAt": "2025-12-29T16:46:13.437Z", + "updatedAt": "2026-01-06T14:17:56.496Z", "postProcessHash": "1731093040ac25cb68ca0a1fdb6a57f29dc4a7911a56a30d7bb24b6b4a9f5c03" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.438Z", + "updatedAt": "2026-01-06T14:17:56.497Z", "postProcessHash": "0b6b2804cca5aa642b3158e4015fb42946fcb775f91b8bb4926ba7dfc2555031" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.422Z", + "updatedAt": "2026-01-06T14:17:56.475Z", "postProcessHash": "47395f8db473d16f7e3b9ec6d5b79df68df9f702f1fe26967b30fa7fd3d1c38f" } } @@ -36153,15 +36713,15 @@ "6152b4089faf21cb920f0b0e0f015947f4aa6a6539cc24579a8054117329f175": { "58de10c3764c8ae20317dce26cff68631d85677a41b3f5dbd50c51245bb6c66d": { "zh": { - "updatedAt": "2025-12-29T16:46:13.355Z", + "updatedAt": "2026-01-06T14:17:56.374Z", "postProcessHash": "c67d5eba05d200c6caa7c5a51bb8eaaecd050dcc26bb5669bb6b97be68e44b7f" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.379Z", + "updatedAt": "2026-01-06T14:17:56.402Z", "postProcessHash": "585139921121661f916a0b00dba292134c5b6b5aff7ebac71bdc45a241972012" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.376Z", + "updatedAt": "2026-01-06T14:17:56.396Z", "postProcessHash": "c8ca33bb49005fa7bedd89c3f3fac3dc8e599f2f4e4125fccfb49b8d392271e6" } } @@ -36169,15 +36729,15 @@ "bca14edd411fa9f3a8a9611aaacff6972d87258f38acd6410fdf5b4d4cdbaa55": { "6bdb09ec322273b515c242a0a196c778ff9876e649fa65392b8031cb787249d3": { "zh": { - "updatedAt": "2025-12-29T16:46:13.335Z", + "updatedAt": "2026-01-06T14:17:56.345Z", "postProcessHash": "6bdb09ec322273b515c242a0a196c778ff9876e649fa65392b8031cb787249d3" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.335Z", + "updatedAt": "2026-01-06T14:17:56.346Z", "postProcessHash": "6bdb09ec322273b515c242a0a196c778ff9876e649fa65392b8031cb787249d3" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.337Z", + "updatedAt": "2026-01-06T14:17:56.348Z", "postProcessHash": "6bdb09ec322273b515c242a0a196c778ff9876e649fa65392b8031cb787249d3" } } @@ -36185,15 +36745,15 @@ "90b37c7973739db627d82b16799b1a59ebcb776db33ad8298491b0bbbed6c3de": { "73ba6fad372ebd5b4ddf82f283b3e7b1f303a8f02d8ddee4e4e8d3c0290b12ee": { "zh": { - "updatedAt": "2025-12-29T16:46:13.337Z", + "updatedAt": "2026-01-06T14:17:56.349Z", "postProcessHash": "55e7685c978f9f7a6b36fb713a38304e4c08eb71cda0df1ebbfcc979e63fa6bf" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.345Z", + "updatedAt": "2026-01-06T14:17:56.362Z", "postProcessHash": "8100e6f8d0ab8d8023c169f0486dbbd94353250f189a4614e5859b0534e0bcf4" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.339Z", + "updatedAt": "2026-01-06T14:17:56.352Z", "postProcessHash": "b77ca66101de198fe0ac93e0ccb2bdc6a3497a2cc4460b833be2c6089bf9925c" } } @@ -36201,15 +36761,15 @@ "5dcc85853637a46f967236f293c74ce6629e743899ffb1d793ba5c7ffae90dbf": { "6777f02cb4aba6cf43d71fcfd0acc7ed50b7a116661de2ebd8193b82df093941": { "zh": { - "updatedAt": "2025-12-29T16:46:13.300Z", + "updatedAt": "2026-01-06T14:17:56.291Z", "postProcessHash": "4f3e071ab43d54334a281547d68d413eb24ea409b21f7f47cc8f36dc277086a3" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.307Z", + "updatedAt": "2026-01-06T14:17:56.297Z", "postProcessHash": "d702f68396baf04208f935336dd190abdea35259a8d6531ff9c6854f7d0cc043" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.302Z", + "updatedAt": "2026-01-06T14:17:56.293Z", "postProcessHash": "9222eb2bf08a08673a1c668fdfe0cfaa7218f760bffe30e99c4918bc60b72cf2" } } @@ -36217,15 +36777,15 @@ "094593271a536e71ddc700495b0cf0f1048d6ab6c2dad60a929934f0798430ea": { "3dd2ef060c7a1cfaa56099a332e54eba203c50d4214e0f5bf98d281ff70e8d9e": { "ru": { - "updatedAt": "2025-12-29T16:46:13.301Z", + "updatedAt": "2026-01-06T14:17:56.292Z", "postProcessHash": "6cc87da9c91a53af1b6b3ed64af0be54966751ffc0e92099d5616c86c01a18b8" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.313Z", + "updatedAt": "2026-01-06T14:17:56.306Z", "postProcessHash": "0ae3d2a2bc5fd527cc13604c36521dd771b97cc73861fb9abbaa076e80c20494" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.310Z", + "updatedAt": "2026-01-06T14:17:56.301Z", "postProcessHash": "8bbb77c630dec564d3eb6b95ee25f257a110ff3dd150e119152ef7144ef6be08" } } @@ -36233,15 +36793,15 @@ "27e2bd6338f55fdbb9b18fcf67e0a0a67489a58d4e1c0e9ebb6902b05fc36aac": { "8929ff1edb2d47de0f53425237359fc7c4a1036ef99e001d0d30c2d13140051c": { "ru": { - "updatedAt": "2025-12-29T16:46:13.304Z", + "updatedAt": "2026-01-06T14:17:56.295Z", "postProcessHash": "279d818ef873112952ca03b8c0de74d25684de610d95feaa94cd7de419dd8e99" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.306Z", + "updatedAt": "2026-01-06T14:17:56.297Z", "postProcessHash": "e7bd8465230bcc3452c8e715fe1035900c7623e68a13c5a066b9ce0ce3d9bf82" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.297Z", + "updatedAt": "2026-01-06T14:17:56.287Z", "postProcessHash": "a4b7ae7f67d2c3df826d81472ef0867d05fb658bb4a3e2ad5944c88f4aa6e654" } } @@ -36249,15 +36809,15 @@ "19a3aba2f96aa29e64f1d6662e4c6e8d99c98fade3c4d0aa0badaed1632f4c7c": { "dc4c51508caf2bb72e5375d6abe27b369e6eacb14cc00c78c196a37458e79501": { "ru": { - "updatedAt": "2025-12-29T16:46:13.342Z", + "updatedAt": "2026-01-06T14:17:56.357Z", "postProcessHash": "dc4c51508caf2bb72e5375d6abe27b369e6eacb14cc00c78c196a37458e79501" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.348Z", + "updatedAt": "2026-01-06T14:17:56.365Z", "postProcessHash": "dc4c51508caf2bb72e5375d6abe27b369e6eacb14cc00c78c196a37458e79501" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.350Z", + "updatedAt": "2026-01-06T14:17:56.368Z", "postProcessHash": "dc4c51508caf2bb72e5375d6abe27b369e6eacb14cc00c78c196a37458e79501" } } @@ -36265,15 +36825,15 @@ "dfad0bc3b6417f406a00ff9ef3820a57dfc8f664400a7ce0134d81da437d7e07": { "79123cc58b0a88edb3bafb181767cf704d4908d66876b9628ebccd1e31728887": { "zh": { - "updatedAt": "2025-12-29T16:46:13.305Z", + "updatedAt": "2026-01-06T14:17:56.296Z", "postProcessHash": "0ae3d2a2bc5fd527cc13604c36521dd771b97cc73861fb9abbaa076e80c20494" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.309Z", + "updatedAt": "2026-01-06T14:17:56.300Z", "postProcessHash": "6cc87da9c91a53af1b6b3ed64af0be54966751ffc0e92099d5616c86c01a18b8" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.295Z", + "updatedAt": "2026-01-06T14:17:56.285Z", "postProcessHash": "dccec3e19c928e7694d31705709fa3b1a826da9b8f3d16f56bea9732a9d1d8e2" } } @@ -36281,15 +36841,15 @@ "4b87a5344a9b716648c77706eed8254331cf4a6ce21d8a43d267f67270734d1f": { "fb4dfb8f9e647f53e63097ab00045af768eb9222f514d424b3a57634d8f3681e": { "ru": { - "updatedAt": "2025-12-29T16:46:13.345Z", + "updatedAt": "2026-01-06T14:17:56.362Z", "postProcessHash": "d30022e6dec69de3b3dd2260dc515847f66daef723cbef66d737105a9699b19d" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.347Z", + "updatedAt": "2026-01-06T14:17:56.364Z", "postProcessHash": "e095122f42e952d7924c73930f58a3774753f564b3ff4a9c3edf2ade722fe2f4" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.339Z", + "updatedAt": "2026-01-06T14:17:56.351Z", "postProcessHash": "7e380bb32746664f5dc46776c078cb16ddd0dfaec7c6ecba65e66c10f3be2e9f" } } @@ -36297,15 +36857,15 @@ "f0a5d6e46b2ddd583ab900563a42b7687a1b4924afd5d0cb5260268c8952f6d0": { "3a8f69d0d17e9065a46d4d7456a503262e2f2a05ac3d4b37f49520b5f716b1c3": { "zh": { - "updatedAt": "2025-12-29T16:46:13.513Z", + "updatedAt": "2026-01-06T14:17:56.607Z", "postProcessHash": "cdd8fea899b5bdef0a7f4127a6d20bb75bdeca9b60bb966cbc36f23c8099a651" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.515Z", + "updatedAt": "2026-01-06T14:17:56.609Z", "postProcessHash": "42b68726239b044c826e76f5b31713e1716ce44b0b6c19fc42f3235beae2d010" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.497Z", + "updatedAt": "2026-01-06T14:17:56.586Z", "postProcessHash": "55e6605f35579b95042119d65466d978fd994860b70f049c16cc8c6d865c60e8" } } @@ -36313,15 +36873,15 @@ "9027438a5e9e30a2c6e8e4d197b479cebf29c05aaa3a716589f591c0ff697c0d": { "d5d6ea5e34429a4a6f22bad136f5d5eb712bbb922cae22a6c870b906c7befadf": { "zh": { - "updatedAt": "2025-12-29T16:46:13.575Z", + "updatedAt": "2026-01-06T14:17:56.687Z", "postProcessHash": "d174d80b968e05d57ef6cb0f23d12dcd93b7cd927ba524a0b92b22ed0ee26840" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.578Z", + "updatedAt": "2026-01-06T14:17:56.690Z", "postProcessHash": "e5da9ec1e2c5745ee867a1f854f35ca12ff74dab586cf48e577866d4996543cc" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.563Z", + "updatedAt": "2026-01-06T14:17:56.675Z", "postProcessHash": "fe90b32749302d19c1c3f961b9638c72f90b399fe13e780c3233f08804a31105" } } @@ -36329,15 +36889,15 @@ "492b567700669f175480e40ecf1c553c463e77a0bb36e30e76eb3628c35e7db3": { "84c653bd2e6590cbd982437c2304ff4818581c1e60afb256437642c4a3dc66c5": { "ru": { - "updatedAt": "2025-12-29T16:46:13.551Z", + "updatedAt": "2026-01-06T14:17:56.661Z", "postProcessHash": "605260c7c7fad78e50b94866aef89c35f6e2719e3fc655dd39756be33d5069c3" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.518Z", + "updatedAt": "2026-01-06T14:17:56.613Z", "postProcessHash": "80378545aadfe422c53caee6b30dee36dd54199f88913764efd6964fd3143094" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.532Z", + "updatedAt": "2026-01-06T14:17:56.637Z", "postProcessHash": "31aef518ed57ee8ab02fdf4902bd2e827828dacd2482f03a18bbdb29f5ee4a2f" } } @@ -36345,15 +36905,15 @@ "dbc3d877611d9d2c9a27f2ea076decc1afc5907f3c3c02044504a307308653af": { "79b34ec963ce2ab8bc60d33c073caf0fc42c9aed7f3b97c1ed638390938960de": { "zh": { - "updatedAt": "2025-12-29T16:46:13.488Z", + "updatedAt": "2026-01-06T14:17:56.575Z", "postProcessHash": "8b8619fe48a942e76600cc1f22f4064e1c3b8f47823855c1b570c393516f4459" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.459Z", + "updatedAt": "2026-01-06T14:17:56.528Z", "postProcessHash": "fc6661cb434f45d0af02152f3d424c222bfa7962ad80665b75c1533ad63083e3" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.489Z", + "updatedAt": "2026-01-06T14:17:56.576Z", "postProcessHash": "59c70ca936d3311dfe57de8d905526e54a8302096c5faf9279e5eead416036fa" } } @@ -36361,15 +36921,15 @@ "e5b56f33a8458d42151bcbd638d4692704a7d1f97fb2c4ed94143ff1e460a418": { "7eab19fd44668e93c10760c5fe2d6a1421e507a9cec55dfd91ed0fcab85c27f1": { "ru": { - "updatedAt": "2025-12-29T16:46:13.453Z", + "updatedAt": "2026-01-06T14:17:56.520Z", "postProcessHash": "858b36c1f2dc89f0040b3532f200a90fd64038d18ff1395750b0be71191849d0" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.457Z", + "updatedAt": "2026-01-06T14:17:56.525Z", "postProcessHash": "f0154aba4a8879e6389f451b4027fe0f5a1b6d6e648fceadb4ba8171bf5d6081" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.450Z", + "updatedAt": "2026-01-06T14:17:56.514Z", "postProcessHash": "3aebc8161b6b784a161b6562957dfdda69ada72924dc083b391c262699d68eeb" } } @@ -36377,15 +36937,15 @@ "3f3b14a0c691ae2b5345864fd4ad20a184225db1e35ffcbd455da1aeec5f0d48": { "a9c8fa4f53951ce4026e170171a0517a80777e9037e5bb2f16eab83d3ffaa9cc": { "zh": { - "updatedAt": "2025-12-29T16:46:13.312Z", + "updatedAt": "2026-01-06T14:17:56.304Z", "postProcessHash": "98be0adb514ab99e364abdbbab872ca95c8b60c312d3df36ed607421c9f38c2b" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.308Z", + "updatedAt": "2026-01-06T14:17:56.298Z", "postProcessHash": "c6b1ffeb8a927241e2108dbeb02a8cbb166d5b270f1e7cdf770147d6ef83a7d2" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.304Z", + "updatedAt": "2026-01-06T14:17:56.294Z", "postProcessHash": "484551e9ac0b82f75a73cf226db475edde9fbf9f15c772cb60460ca3bd544e55" } } @@ -36393,15 +36953,15 @@ "5b41c30593068b713e26045c49b89ef31bda4b2d25564fc71eeafadaa3a88b3b": { "ecb137fd1463f816c7efffc5bf4c604e7cfa7735755e22327018e286ec755267": { "zh": { - "updatedAt": "2025-12-29T16:46:13.599Z", + "updatedAt": "2026-01-06T14:17:56.713Z", "postProcessHash": "71228041f3ec2db0eaea6df41f727fe8d9fb0c2be58156f7e40029f6cbfeaafd" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.581Z", + "updatedAt": "2026-01-06T14:17:56.693Z", "postProcessHash": "935e2df6e42ef5eae97f3b0f34534f4ddba200017d97d3170e7db9c138c0cc8b" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.565Z", + "updatedAt": "2026-01-06T14:17:56.677Z", "postProcessHash": "8ee6a597195d2d62144b70385821d6d3faa909ba10aaaba5092fb6cbbe5f9d8e" } } @@ -36409,15 +36969,15 @@ "7c145e871f942571130b488686f2c93299c7784ad34d23a45c99e2947f75208c": { "193be2e12900fc92f5c6cf9d55c9d419bf67397ce7c166154cf4356eaee3bb11": { "zh": { - "updatedAt": "2025-12-29T16:46:13.598Z", + "updatedAt": "2026-01-06T14:17:56.711Z", "postProcessHash": "84717246d459b05e668b44cda8f6d98373e4ad33dc1b061182c57ee0bd17bf6e" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.595Z", + "updatedAt": "2026-01-06T14:17:56.708Z", "postProcessHash": "e8092285f85de8c0fef7d0d689529703a23d3563750f97888238640fc9e81345" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.565Z", + "updatedAt": "2026-01-06T14:17:56.678Z", "postProcessHash": "c716efae67f791d006333fb0f57dbadc4ece9e0eaa66931176f3fa87c2382a19" } } @@ -36425,15 +36985,15 @@ "f5b83279dab37d495f5c4fd259883e2f59a812c65ccc8ed0c351f21a2028e710": { "caa363689f97df04d5bdb8cc80dfede581f616ede687804ff5915657268592d2": { "ru": { - "updatedAt": "2025-12-29T16:46:13.580Z", + "updatedAt": "2026-01-06T14:17:56.692Z", "postProcessHash": "6a2c0ad1bdac3f2b0003235f737b0f22c9ea609aa45a68ffb137059978476c05" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.580Z", + "updatedAt": "2026-01-06T14:17:56.692Z", "postProcessHash": "c36543e2adf44d48030e6c03e8f6e8b3839e46aec8b066e1356325acfdd1b129" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.588Z", + "updatedAt": "2026-01-06T14:17:56.700Z", "postProcessHash": "0801238959e627da999d8278755a3887bbcbfc083f7a0870498f6e39dad17d97" } } @@ -36441,15 +37001,15 @@ "bdeb28bdbd403e8a7dbfd53a18daf2d16a5ec80e2b272afff63299b084ee54d4": { "8d2b2934162408394b787a0c9376fd5fc5d3b70e883799983cb40e9cd3caec2b": { "ru": { - "updatedAt": "2025-12-29T16:46:13.521Z", + "updatedAt": "2026-01-06T14:17:56.618Z", "postProcessHash": "eb8a98ada416e3412051b09bd302a439a0f2447cbe3593464e701c38186d586d" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.520Z", + "updatedAt": "2026-01-06T14:17:56.616Z", "postProcessHash": "67c035438edce41a547ba289bea4d3ba574c382a7710ce710b315d1886a6d57b" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.536Z", + "updatedAt": "2026-01-06T14:17:56.642Z", "postProcessHash": "61d36899ec8eae83f9ef7362f78061dfcc8ae137ea5210f1806f0b63f5da2b87" } } @@ -36457,15 +37017,15 @@ "6d9be1cdfeaef3b95b6937fe4da26361e0723bbb44069a88774c3f6c426953ff": { "27c7a63e2afca841ae5e7d6fe8b9f6f3c513769116043f854361c07302afa76a": { "ru": { - "updatedAt": "2025-12-29T16:46:13.483Z", + "updatedAt": "2026-01-06T14:17:56.567Z", "postProcessHash": "1006dd599af5606b93631939ee5182204dda210f40eaca9230c1a08979332500" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.482Z", + "updatedAt": "2026-01-06T14:17:56.567Z", "postProcessHash": "66c062ee29acb9e54a87c9e3fc3c673fe6e290e74f2f50ff249f50be3046b6a4" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.486Z", + "updatedAt": "2026-01-06T14:17:56.573Z", "postProcessHash": "1a8c1a420d54a13339e50585372228446f47e39f99df6bdede1a0c1db91df283" } } @@ -36473,15 +37033,15 @@ "08f3b123bce337ae576d91effb4c4e0aa8ce5818f4196baa0ba59915bd0d269e": { "a29ff4b6f7e821d9ae449a998417a11cc1c6705210186befa92aa45136de5da9": { "ru": { - "updatedAt": "2025-12-29T16:46:13.403Z", + "updatedAt": "2026-01-06T14:17:56.442Z", "postProcessHash": "44d1a2ae998ad3cad0b11c2d2a5116bb4a071a5a82910874917afc080d13c0c0" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.406Z", + "updatedAt": "2026-01-06T14:17:56.448Z", "postProcessHash": "7ddfedd4f1a84318fe59fed15148613e40a0cab80b5f240d51b2dcb0876442a7" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.417Z", + "updatedAt": "2026-01-06T14:17:56.467Z", "postProcessHash": "7c296de0f54e7682022f49c1685b45c553b7b55f0435e812ffff18e2d9236460" } } @@ -36489,15 +37049,15 @@ "0e3c84ac0dcb64d166a9e4cad32d3420219fe50fe305e36aa358456c172e2cf7": { "318568dae18d539030ba9900a07a5c387e0ffd38a7b84468080ad1adcdccfc39": { "ru": { - "updatedAt": "2025-12-29T16:46:13.515Z", + "updatedAt": "2026-01-06T14:17:56.608Z", "postProcessHash": "00c46ce01f15ad9fdeab2f72691d4fab5783030e67224ce2bc3767c72f58a420" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.522Z", + "updatedAt": "2026-01-06T14:17:56.619Z", "postProcessHash": "2b9ed3b6e9abe2f5307e8e4356e714558f9d57c5e41f54eb4943c1e669090501" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.451Z", + "updatedAt": "2026-01-06T14:17:56.516Z", "postProcessHash": "30e8ebe13f8b17e8593ba3dd75e594be4c97930c33a5e77c1286bbfe51aeaa97" } } @@ -36505,15 +37065,15 @@ "808e737b87d86c00037ee9499555e8d37bc7fd2e51f5ef796a4a104d5f453b14": { "4719caa724ba0e2a9f5dae16a0fe1e64ccb82cd37762f0d2649a253c1acc65eb": { "zh": { - "updatedAt": "2025-12-29T16:46:13.403Z", + "updatedAt": "2026-01-06T14:17:56.443Z", "postProcessHash": "dbd1e9397e889a9c7f66a1d040df799ad545fe0ff2974b8186c5a2a90b1bd100" }, "ru": { - "updatedAt": "2025-12-29T16:46:13.407Z", + "updatedAt": "2026-01-06T14:17:56.451Z", "postProcessHash": "010fabb308c8285f625f3d634f1941a9e92cd0b5a1a170e9886d7c0caddc17c2" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.401Z", + "updatedAt": "2026-01-06T14:17:56.436Z", "postProcessHash": "4d677cfe542defa2ba654cec1ee86d16b46db800cef2f502ee7fbdb7f4dd8cdc" } } @@ -36528,15 +37088,15 @@ "66bbf0d8525a651b70357530fa66ca0f30073bb1460c57979838338b1c0d8749": { "9a8d534c4d4974d982e6c1d6d31787e905d1215b8eade3bf1524a2e15a6fa2c0": { "jp": { - "updatedAt": "2025-12-29T16:46:15.916Z", + "updatedAt": "2026-01-06T14:18:00.174Z", "postProcessHash": "818e4633c64fa1a38d9ff6344004d822542d1c75f9ca903990b2dcf9352de3c1" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.916Z", + "updatedAt": "2026-01-06T14:18:00.176Z", "postProcessHash": "3074f61c403e9ebcde3ca106438c8b0831b3ed985093f361160cce11270f7c5a" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.917Z", + "updatedAt": "2026-01-06T14:18:00.176Z", "postProcessHash": "d198a414e81c93bac339df3d0c993ae01ae0b8e4b92cda3d4cc695d15b0343b6" } } @@ -36558,15 +37118,15 @@ }, "5ff15c926dfc750628820d67659c49957d80e0736b5c53610107a4a1b5aacee8": { "ru": { - "updatedAt": "2025-12-29T16:46:14.278Z", + "updatedAt": "2026-01-06T14:17:57.606Z", "postProcessHash": "25c367f99de6b8c9b8491219d20e9b4779220b5fcc2d2f7c2c3da41560f1963a" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.285Z", + "updatedAt": "2026-01-06T14:17:57.616Z", "postProcessHash": "73f38fe11d8d83540a237c342ee11f5632a190766c48d2a0f4680abbda27614f" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.286Z", + "updatedAt": "2026-01-06T14:17:57.617Z", "postProcessHash": "326ac34d724738bee78ff850b9aadd7687c16e499ddd402f85ac2f46824a6d72" } } @@ -36627,6 +37187,20 @@ "updatedAt": "2025-12-29T16:46:15.124Z", "postProcessHash": "d232608e113a17588c09251a9d9214cd54bea3d91dd6fa755f1740c7805c9863" } + }, + "cedd36ab0a9ae586d0941a85d58c34f31d40397a49fd069eafd811a7e524361b": { + "zh": { + "updatedAt": "2026-01-06T14:17:58.941Z", + "postProcessHash": "4fbaf0159c425a19fb3bc445db3566ae06919de27807bbec6d1e8cd796f47bba" + }, + "ru": { + "updatedAt": "2026-01-06T14:17:58.942Z", + "postProcessHash": "67ea42ebcf1bec149b50da94be83be5a879392d2d0a875e48189f3102afa9be5" + }, + "jp": { + "updatedAt": "2026-01-06T14:17:58.943Z", + "postProcessHash": "9ecb4877ef1bc057a1e5e4888a313a03f76a72120ee1571f5221d2452e6e7bad" + } } }, "2ed9dd905d29a21da9ab592836fca34a8ed19a4db4490a78058048382b846b88": { @@ -36646,15 +37220,15 @@ }, "23c1c0751167f704586f1f2741d2139c11bdc3e18d9171479956248e962ce05a": { "jp": { - "updatedAt": "2025-12-29T16:46:16.161Z", + "updatedAt": "2026-01-06T14:18:00.411Z", "postProcessHash": "e8df2bcb501d7bd83ea901feac5f3f1b5dd0a63ae5d6373f0c51f1460ce2eae5" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.162Z", + "updatedAt": "2026-01-06T14:18:00.413Z", "postProcessHash": "2219d882723574c5fb94a42bc8a5896a736d2c404ed32bff39b7abcf6af64bf7" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.163Z", + "updatedAt": "2026-01-06T14:18:00.415Z", "postProcessHash": "0acc1397305cd47e38d0412aeac00407f878ad23728058704c9ed38da329f7a0" } } @@ -36673,15 +37247,15 @@ }, "555a83de7b1fedbbe92860951f89c33d800c65562d765e18c773348463b9d4b1": { "ru": { - "updatedAt": "2025-12-29T16:46:14.528Z", + "updatedAt": "2026-01-06T14:17:57.953Z", "postProcessHash": "116a2b675ce318216d0656ef288102fe75867adc431e2d33b638d05b6ae7ce08" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.523Z", + "updatedAt": "2026-01-06T14:17:57.943Z", "postProcessHash": "52ccd7a199e9f49222a4adfb8d75eee9b6fbc517a524a81e79c09f28f99ea606" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.524Z", + "updatedAt": "2026-01-06T14:17:57.944Z", "postProcessHash": "9bded88240007d88654b734b338ed5db05cbb4b3b941ee678f72589f154a6990" } } @@ -36689,15 +37263,15 @@ "4512096e994b4597d26312dcc20aaa261a25d919afc1ca576d81943eb7dba5e8": { "576c6b22e45a20fa5f3f50de6a9f620190ca1b7786a288fd05ea72e443dae788": { "ru": { - "updatedAt": "2025-12-29T16:46:13.919Z", + "updatedAt": "2026-01-06T14:17:57.101Z", "postProcessHash": "029d7772bdb14d0cc2ca4ecd00965c2dd784bf2737c76648f3b83e2759635ab2" }, "zh": { - "updatedAt": "2025-12-29T16:46:13.920Z", + "updatedAt": "2026-01-06T14:17:57.102Z", "postProcessHash": "87b394d8ba23742c70b4892f614c9b2af257a3ed57ec33b408023a5a240c200b" }, "jp": { - "updatedAt": "2025-12-29T16:46:13.920Z", + "updatedAt": "2026-01-06T14:17:57.103Z", "postProcessHash": "89a6704010a470d3ca4894395bb7ba76be226d708320c4469a6d9e73d2719fac" } } @@ -36705,15 +37279,15 @@ "9b80672ce4026210dce9b9fc8dcdd3cc250a0a78eb37e87ce9abe3344154ce7e": { "9f070809829dec1b3881cdd3a76e90a0533684952dfa123150bed063c8156ad3": { "zh": { - "updatedAt": "2025-12-29T16:46:16.314Z", + "updatedAt": "2026-01-06T14:18:00.676Z", "postProcessHash": "d6f0bfb02224860e5316f55cdbe1f078eaaef6dfbc8ceac40d52bbcbc74e7889" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.314Z", + "updatedAt": "2026-01-06T14:18:00.678Z", "postProcessHash": "dc0e175d9a4354e21f7847481c0b9960644349d9526aee0f39ed08fca2ce1b82" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.315Z", + "updatedAt": "2026-01-06T14:18:00.679Z", "postProcessHash": "1b9b45c62e0d849d1af07fdbdaf20aad3a08a4a6a8cd0c474fc00bc1ccf9732b" } } @@ -36721,15 +37295,15 @@ "0a1ede2587d0348c290fdb39de725568c8976de197436af26758fa11075d7473": { "fb18df11b1efd0c29cdbcd9a0fef8f8e09542882ba6ccb09e3e42d9f3b8aa419": { "zh": { - "updatedAt": "2025-12-29T16:46:16.085Z", + "updatedAt": "2026-01-06T14:18:00.294Z", "postProcessHash": "20238078df25c3c393a1b08d67f0d7c1ef1da44c4d5ef0c56e837d96bfa05f73" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.085Z", + "updatedAt": "2026-01-06T14:18:00.295Z", "postProcessHash": "fad131d8325d92aa35ff9971bd9f0a9f088832d3a7772bae7d6f009a9bca0a9e" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.087Z", + "updatedAt": "2026-01-06T14:18:00.297Z", "postProcessHash": "61cb5e49ae9404c6f3cafb35883443b3bd01080e883c941ccb15540f3788ad78" } } @@ -36737,15 +37311,15 @@ "da9919f6081fce3e44838d15492354e5fcaaf5ba1df1932025abb455a73371cd": { "26a29a023dc785b2118a3802a86be3242a8fc0974f620b1f3dd9f88b5487f270": { "ru": { - "updatedAt": "2025-12-29T16:46:16.086Z", + "updatedAt": "2026-01-06T14:18:00.296Z", "postProcessHash": "d5c11d23ac4cf2a60e71cb6067435604df231648f3571aeee32c06831a24a80c" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.086Z", + "updatedAt": "2026-01-06T14:18:00.296Z", "postProcessHash": "5497ddb1f5ecaf20f9dc00afab30db061fbae296ea973982e7dd45cd7d05a7bb" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.087Z", + "updatedAt": "2026-01-06T14:18:00.298Z", "postProcessHash": "5e1f74ac390b906ee3420254732fae2e45fbaa57783bc7a007df7dd4a4b2529c" } } @@ -36753,15 +37327,15 @@ "ac7187a712fb1dd2ec4b99d07afa7642142917afcb237019fe0349023217d84a": { "a7411d4d7694e45c213e31a1386ab23110ea71b5c356e7e1f65d6234a3dbc706": { "zh": { - "updatedAt": "2025-12-29T16:46:16.323Z", + "updatedAt": "2026-01-06T14:18:00.799Z", "postProcessHash": "3e75fa871dac3525c2b034ff1e5c413bf26c8b7ec606502135a727c96132a215" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.323Z", + "updatedAt": "2026-01-06T14:18:00.799Z", "postProcessHash": "c0408c47cfd0c384b903c0e9aa2fe87011b143001a3a5b5febb3ac453e8ffec4" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.324Z", + "updatedAt": "2026-01-06T14:18:00.800Z", "postProcessHash": "0c2e25dd0967a912d8456001b4e1b597a595f36b9995b3179f3af1445ca5aac7" } } @@ -36769,15 +37343,15 @@ "df727771b8ca27b5603e867ec4b8343352bc1fa11a163cf0163f1986ff16495a": { "1de8f6a14da2e04ad19e927d98ae98cfc1ff2889da2c182f26815bd68008b11c": { "ru": { - "updatedAt": "2025-12-29T16:46:16.324Z", + "updatedAt": "2026-01-06T14:18:00.801Z", "postProcessHash": "90f06229ac76b52e4458230619f2c7315f7e1e6e468c3526263870304a1baaab" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.325Z", + "updatedAt": "2026-01-06T14:18:00.801Z", "postProcessHash": "70e71f1d711c0fe6b4389daa3431b8026eff61bfd1f56f5c7986ae675898356b" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.326Z", + "updatedAt": "2026-01-06T14:18:00.802Z", "postProcessHash": "a98bf2bf5358ab1779744a1a69fa3268d37592ecbf385101159ac8c73f6d476c" } } @@ -36785,15 +37359,15 @@ "bee3b2004d53788e5f38e88026d959b786b2894cb2ba72c12c5157dbbd69a179": { "4ba6ba7fdbf8a52797230b06c5e3ff8b7651ad4369f2fed9cfc5d35f2c0dd766": { "zh": { - "updatedAt": "2025-12-29T16:46:15.055Z", + "updatedAt": "2026-01-06T14:17:58.765Z", "postProcessHash": "8019db0e80f0dd50d449d086afd441dc74e7aa52f097adc058c53814cb10aa5f" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.056Z", + "updatedAt": "2026-01-06T14:17:58.766Z", "postProcessHash": "6fb7b7cf744285b433e89c17fbd341d71d889f5a8a90a94504817211859973ca" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.057Z", + "updatedAt": "2026-01-06T14:17:58.767Z", "postProcessHash": "6b9b84d0b07595db8e0dc2c968595ab957f437dd44e741d7580ddfae321fad4c" } } @@ -36801,15 +37375,15 @@ "a6c6f5caae2bc4e992523fa520ff46dc98d50e97be7ca2cfd33f5fb560936f24": { "514ebc546a4e5252c5c7e937415882da70cdea046cadec162163156329491aa5": { "ru": { - "updatedAt": "2025-12-29T16:46:16.090Z", + "updatedAt": "2026-01-06T14:18:00.306Z", "postProcessHash": "5c4e2e414f86d3ca3ca2dd6c4f0a96833ca2c05f0e504786b4546c0911f5b13a" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.092Z", + "updatedAt": "2026-01-06T14:18:00.308Z", "postProcessHash": "e29c4884826a0ee27abdf0f335faed7c289b3218edf076ba96de349ff8c147b4" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.093Z", + "updatedAt": "2026-01-06T14:18:00.310Z", "postProcessHash": "88cace74587c6e0cb21d0f4e9540543de84584faf9248b267c61645b0222f980" } } @@ -36817,15 +37391,15 @@ "e67d174b415ce4c2fdbc6fd7b6bce5de91b93a7a9bf25d4797f9a44aac12161e": { "46cfa3c0c128e74d7ad1b78e61530adc56ed5270c3e70efc0a1d55bd983af3bd": { "jp": { - "updatedAt": "2025-12-29T16:46:16.090Z", + "updatedAt": "2026-01-06T14:18:00.307Z", "postProcessHash": "8e1798aea9999f3e5dd4e4e24baf25e05e150f4fbd8922d831f58e31b8f25bdf" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.091Z", + "updatedAt": "2026-01-06T14:18:00.308Z", "postProcessHash": "7c5ec73d145d268e85ea7a60f04ae08ec76ac1499b49a1e62a9c49a51663a90f" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.092Z", + "updatedAt": "2026-01-06T14:18:00.309Z", "postProcessHash": "207821a4bfa889ac74e96d840316a31e91caa98591e7ec4e0d45d138552d2f0d" } } @@ -36833,15 +37407,15 @@ "f1146bdada7246e40ee011599f4e70d756fda5c06dccdf28aae91523291ee747": { "e3ebefa63e229faf1b897a45b120c9ff281952a4d3046f3875234901ea8e6c2a": { "ru": { - "updatedAt": "2025-12-29T16:46:16.093Z", + "updatedAt": "2026-01-06T14:18:00.311Z", "postProcessHash": "858e61cfcfe9b99b9edbb9ca76a4eaa95b8e353a041f669449d5758dc904f763" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.095Z", + "updatedAt": "2026-01-06T14:18:00.316Z", "postProcessHash": "292d313e5c2afcf6787e757ea1b1d4f71bb3d3a10b454e26ebb1522094a77f55" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.013Z", + "updatedAt": "2026-01-06T14:18:00.318Z", "postProcessHash": "103805f5eff39336068292e28e5582057570ddf1c3a6d1f3932c8b95a6c76d6f" } } @@ -36849,15 +37423,15 @@ "4d5663d91cca9f4cf1a8dad93fc22f47da7bd7dcc51bbe5f918c6aba79aefdb3": { "e206b0d212636ce33ae29bcdbf0874f98fa62a44121165eda95d08b6c070acc2": { "zh": { - "updatedAt": "2025-12-29T16:46:16.011Z", + "updatedAt": "2026-01-06T14:18:00.311Z", "postProcessHash": "1c20c37829682bc47ef8587f772a705a30090bda019b949bff7159589c82c444" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.011Z", + "updatedAt": "2026-01-06T14:18:00.312Z", "postProcessHash": "70d1459ffdf188a2030e35bb40d3d9b011f33db3ec0ea0681cbc99efe947a16a" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.012Z", + "updatedAt": "2026-01-06T14:18:00.315Z", "postProcessHash": "37338964bd90abbe3a0b7c77c6008930ce846a80456ae1b04481d6fa52a53776" } } @@ -36865,15 +37439,15 @@ "e3392d0decd0ecbef69a20baddaaf6d0d8e9ce11e98b4cff6a7a147b04e9f6e3": { "897ccfd32bf8b08b8e75a245405fea6594d1e37223b4e9523584480a7954e892": { "ru": { - "updatedAt": "2025-12-29T16:46:16.094Z", + "updatedAt": "2026-01-06T14:18:00.313Z", "postProcessHash": "ab73d10ba6cc07cda8f4ed9a400012d2bbd13d3b5bdee498a26890089bb6f4b1" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.094Z", + "updatedAt": "2026-01-06T14:18:00.316Z", "postProcessHash": "f12676d8d3342e89c821b6cd8275feeebfb2d71dd2f424ba8e367b54a0031299" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.095Z", + "updatedAt": "2026-01-06T14:18:00.317Z", "postProcessHash": "08d7bfee5e72e641a3005958bd47b354be20cdf5d228fc3aecff23f6fe9bec21" } } @@ -36881,15 +37455,15 @@ "1d74960d19cfffce8888cab81118f22b3225993226c54bcfa0d0713b5b3f0c27": { "3c551d5a5505a533eb953b4ba5890e910bae7904cad4d322c11b15e64be3fc2b": { "ru": { - "updatedAt": "2025-12-29T16:46:16.454Z", + "updatedAt": "2026-01-06T14:18:00.853Z", "postProcessHash": "d89aafb939f38f051bc56b00b630071ce151369b92ac9a847f0fcab15e78b4b1" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.456Z", + "updatedAt": "2026-01-06T14:18:00.856Z", "postProcessHash": "4cf355fadb307674711a99ac93f9ad7b925e39675947239dd6f836b54d671ba7" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.456Z", + "updatedAt": "2026-01-06T14:18:00.856Z", "postProcessHash": "f19d1aba3d81a47a809cbe8ab2d63bf5c849f9f2212572d7a6717614ebf35eea" } } @@ -36897,15 +37471,15 @@ "9243607f4388d8b5dd308c945fc7401f9e8869cd97f465d96074e0504689cbcf": { "b31cf941c4db533f74a831be91846244d8b2ec416121853471f18bb131058ec3": { "ru": { - "updatedAt": "2025-12-29T16:46:16.454Z", + "updatedAt": "2026-01-06T14:18:00.854Z", "postProcessHash": "417feb561bf06c93c007fde9ff6eae4bf3ca0f334ca81998c64be2d462d8e827" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.455Z", + "updatedAt": "2026-01-06T14:18:00.854Z", "postProcessHash": "b141cead66bfc087a1d26b6953deed5b2ef7709abd1132598e72d6d0681251cb" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.457Z", + "updatedAt": "2026-01-06T14:18:00.858Z", "postProcessHash": "6dff9066f6be4e63370bc43fd72301f87c4338663e01c6d856baf48858b1b2b9" } } @@ -36913,15 +37487,15 @@ "d5d044dbccb47c8cc7503e5219a318800f674322e646562c7a6d66b6cd09dbf5": { "b04f84100c20361b6922a1965990d208a1e25ddad07b50aa60ee2208625eedf4": { "jp": { - "updatedAt": "2025-12-29T16:46:16.455Z", + "updatedAt": "2026-01-06T14:18:00.855Z", "postProcessHash": "99aae156dbf004b0bb49cc6e8a8626cbb235299fcb1f6cd585d7a9fb59b694c1" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.455Z", + "updatedAt": "2026-01-06T14:18:00.855Z", "postProcessHash": "cc372255525e5efca526d7d5cb4728c116b174c2e82b8a2b0010b862e652498f" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.457Z", + "updatedAt": "2026-01-06T14:18:00.857Z", "postProcessHash": "d6adfef5db1abf68c24ec8af455a1e260a973b29d606432c419c41340e64f998" } } @@ -36943,15 +37517,15 @@ }, "50278bd7f10c01113e314ad275d87463e53cfac7e80c433685c54c86a0e4d529": { "zh": { - "updatedAt": "2025-12-29T16:46:16.447Z", + "updatedAt": "2026-01-06T14:18:00.845Z", "postProcessHash": "705e054ee0b9ca6c45cd693e50f0e083dccb08709376e7028e5936561f9b2e44" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.449Z", + "updatedAt": "2026-01-06T14:18:00.847Z", "postProcessHash": "bea20c47f282937986c97bf232a69c41c652b0bef9bc7e140dbffff8a75d3d91" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.453Z", + "updatedAt": "2026-01-06T14:18:00.852Z", "postProcessHash": "7821d09d16972c23a9970e6a2795f69d1852c4e2491ab56f1e4286402f2e70d8" } } @@ -36973,15 +37547,15 @@ }, "935c9ebaeddbc80605b1cfa346e4a1137cfc375bd0dfac1ae9379d32986550cc": { "ru": { - "updatedAt": "2025-12-29T16:46:16.448Z", + "updatedAt": "2026-01-06T14:18:00.846Z", "postProcessHash": "c49a689d8744a66ac1313a14da54cda0b5a4cabb15032dc95bbdd680b7cddb63" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.450Z", + "updatedAt": "2026-01-06T14:18:00.849Z", "postProcessHash": "b928e4b4c8964fb8226bebada289ec1d3a9349701ec79adc3cf5eb043b0845f2" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.451Z", + "updatedAt": "2026-01-06T14:18:00.850Z", "postProcessHash": "25609553a550567b15a8e76f8ba26d540505be86e64ffec52d5486fa4edb12df" } } @@ -37003,15 +37577,15 @@ }, "b4c95b8e68f37454ce62a59f08f0522048d8272603346baa5b2099947c7184b7": { "zh": { - "updatedAt": "2025-12-29T16:46:16.449Z", + "updatedAt": "2026-01-06T14:18:00.848Z", "postProcessHash": "fa914e79de80095144c045acfa9d477e93a20cfe686f506f742365d99b7f076a" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.452Z", + "updatedAt": "2026-01-06T14:18:00.850Z", "postProcessHash": "77f90d5d996662b0ffc702076a84fe75fdd291eaa18d001fcddb2b9afc0930d3" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.452Z", + "updatedAt": "2026-01-06T14:18:00.852Z", "postProcessHash": "f4f3f9c36a4681c7d5b23eeda15b45249bb593ac382d7b1bd5e877baf6c3463e" } } @@ -37033,15 +37607,15 @@ }, "e7fd70effa79724819fbc3bc04f2c2ced9d85b01d80222ab93933c82f9c09269": { "ru": { - "updatedAt": "2025-12-29T16:46:14.363Z", + "updatedAt": "2026-01-06T14:17:57.685Z", "postProcessHash": "ad9eb0568881c44f23cba8287d8973dc9725a322fdcd0cbbf77e5d384818e422" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.363Z", + "updatedAt": "2026-01-06T14:17:57.685Z", "postProcessHash": "cb5ff5c4801c654d8e01c9cba77013dc9634889e6329ce64d0bd4b78f47b143f" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.364Z", + "updatedAt": "2026-01-06T14:17:57.686Z", "postProcessHash": "084f666479feb1d88ec58dc2e4c4ed6cc1374a17f34a3e2869cbcdb752217597" } } @@ -37049,15 +37623,15 @@ "08c008d4e9e8ed1ea2dee5c8e9b616f5393fcb2a1f837535c5e2096475976aea": { "de652559510c4c1e5e5641740641f11478f4604e264f05203d06aee9ac109009": { "jp": { - "updatedAt": "2025-12-29T16:46:14.529Z", + "updatedAt": "2026-01-06T14:17:57.954Z", "postProcessHash": "8b76d67041016a9caa0654a26ad585285eebfe4764998f5b1700415817666b9a" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.529Z", + "updatedAt": "2026-01-06T14:17:57.955Z", "postProcessHash": "e4748ad7a25a743403eb5cfb610f646fc2208d08fbddcbcb4e9a33651fe95a80" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.529Z", + "updatedAt": "2026-01-06T14:17:57.956Z", "postProcessHash": "422c841a674e6d8748c02765769705e747f3bacd71d87264f8749bc959c008f6" } } @@ -37065,15 +37639,15 @@ "dd8162f0ae3469da023cc7d36187e4c98c848bd81db54fab11d0c49cfc2c48da": { "3cd8538ec6896355e9c5296bcd30c793585c1433dd8b0056a863901fb5c7d53f": { "zh": { - "updatedAt": "2025-12-29T16:46:15.324Z", + "updatedAt": "2026-01-06T14:17:59.186Z", "postProcessHash": "1dc06e0770be54dd07ac28d3100cac76a9b91289f842ffc892064687ab981597" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.326Z", + "updatedAt": "2026-01-06T14:17:59.188Z", "postProcessHash": "79231b60db390f1d37daeb02ec83590b7e84eabd20e7f4e267335e60173c4f03" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.328Z", + "updatedAt": "2026-01-06T14:17:59.190Z", "postProcessHash": "3dc5015fd7d25543a42f4b49470c7599c3668ac8636121e71d824ea9d9c55f09" } } @@ -37081,15 +37655,15 @@ "c6b170415d6f781da8bda019534db619c2ba2a2decf35659f8cde5248b05548b": { "d46ae8cd750dfb69d2e7b2527bc6feba4c7de207c8bf2fd990a565e6b7228189": { "zh": { - "updatedAt": "2025-12-29T16:46:15.327Z", + "updatedAt": "2026-01-06T14:17:59.189Z", "postProcessHash": "06eaada15c59a253b2e9c63d470f40c12f8084798c339befa1a0be998c116d2d" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.327Z", + "updatedAt": "2026-01-06T14:17:59.190Z", "postProcessHash": "aac594d2e54eff1d4db3c53bdc23b7e6d6b56d0f1e427fe1dc6b5b98c83443c5" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.328Z", + "updatedAt": "2026-01-06T14:17:59.191Z", "postProcessHash": "907636d8b78d5a2d586574d30895d89346f793a39dfa1730e29d04723ed10dd7" } } @@ -37097,15 +37671,15 @@ "aff1b35f8880a6fcede2015afa2e92e5c993b2eb239ec9d29f305d198411829f": { "0e73b152d8a7540489294048877da58a10ada21a08948251189286ad3dca110b": { "zh": { - "updatedAt": "2025-12-29T16:46:15.329Z", + "updatedAt": "2026-01-06T14:17:59.193Z", "postProcessHash": "cd6136b78d70f399d04a16c4774354f73858884c13e6684146d3b34a72c92ec3" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.330Z", + "updatedAt": "2026-01-06T14:17:59.194Z", "postProcessHash": "217f93a3c9dc4b0ca3ba7e04d4670c0049f0d77c7d24fe57209e4eef162cca9a" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.330Z", + "updatedAt": "2026-01-06T14:17:59.195Z", "postProcessHash": "d0860c782f98d7f9376fe2411b2b3cb70eba5445263351ff47f7d4a853e58bce" } } @@ -37113,15 +37687,15 @@ "7dd65767bfccf1f1b1e4ce96ed14b92656e1081af008be3df2d017dc2d49573b": { "8fee64ec5afe0821586be0facefe2da8fe9aea1b998d6f2c7b52af87722ab258": { "zh": { - "updatedAt": "2025-12-29T16:46:15.387Z", + "updatedAt": "2026-01-06T14:17:59.273Z", "postProcessHash": "daaa3f314b368f6cf6cbda3fbaec49d25454dcee58f793691eb97343ad8b7f8e" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.390Z", + "updatedAt": "2026-01-06T14:17:59.275Z", "postProcessHash": "b3c6d24579275cda4b395b48db82002fe2ba0d298ad13bd1914e86fce3ce4617" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.391Z", + "updatedAt": "2026-01-06T14:17:59.276Z", "postProcessHash": "d40ef5a037cd5e732a282a98c6a14f61c119682e52826874f3bf29487824bc41" } } @@ -37129,15 +37703,15 @@ "6645405d32cac4c6a1c0af50817b851062fde1d54d10ae40790123f0ed24175c": { "63bda8637ed2e96cfb795440478af6face0e4ab3f339e79b1f6df50ad476e969": { "ru": { - "updatedAt": "2025-12-29T16:46:15.388Z", + "updatedAt": "2026-01-06T14:17:59.274Z", "postProcessHash": "cd21f7d56715eee1c824cdfb80620a4b60b98b3b33f87261ba05b8aecdd2c356" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.389Z", + "updatedAt": "2026-01-06T14:17:59.371Z", "postProcessHash": "3433fb59407d108ab7ef6c1f35e65f8b1319fbfa1fe92270c7e48147f46ffe1e" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.389Z", + "updatedAt": "2026-01-06T14:17:59.274Z", "postProcessHash": "3af814a6662739d09e96d95827da67979fb7b6519bdd840ea5eff0e698fa0962" } } @@ -37145,15 +37719,15 @@ "eedde629d3578cffde1c1a360202ead3bcbad997b04e6fd463a56fdea90a5b33": { "fd8e3cc73dae2f42c033bc640159c952cb1d54b439991ed9fc3211aca6868ef0": { "zh": { - "updatedAt": "2025-12-29T16:46:15.905Z", + "updatedAt": "2026-01-06T14:18:00.018Z", "postProcessHash": "d15c182b535f410151f6759cc99248da336ab918964fc56b1c368efabf4ba671" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.906Z", + "updatedAt": "2026-01-06T14:18:00.024Z", "postProcessHash": "e1ad9fd9015da53d725160b29ae6b3e888690d9f1223c60a4b1267e60d4114e8" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.908Z", + "updatedAt": "2026-01-06T14:18:00.030Z", "postProcessHash": "76cccda334b26d8046cf996f01b0f1a4faac4d55aacb3e3e79735133a821ccd3" } } @@ -37161,15 +37735,15 @@ "e6704eb072be250409aa3d2d0610003f3c7ba056ba41b31ba93411f082692b41": { "db4497ceb4087eda93139097e8d364eac788ade10936c85a789b3c3dc4860ec9": { "jp": { - "updatedAt": "2025-12-29T16:46:15.906Z", + "updatedAt": "2026-01-06T14:18:00.020Z", "postProcessHash": "9ea88b216a250d37f9a54d225fe45fceedd55912c57901bab5e038d549ae16eb" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.907Z", + "updatedAt": "2026-01-06T14:18:00.028Z", "postProcessHash": "1b997915f84189f13591cca8abdca0b2242c3a71dfcf9836ae963a97120447f2" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.908Z", + "updatedAt": "2026-01-06T14:18:00.031Z", "postProcessHash": "33e2bd4e2db00889d621669513ed010c315cb2d684c91c937e46041bcfb1b8b8" } } @@ -37177,15 +37751,15 @@ "2b35713b6cd3ec8d9fb99f057a4110c179e217dec9b5217778d2ccbf02ed5ef0": { "bb78d5398f8abe3067972ff9972b9a92403fa0e5ead96f1bfab3d44bf64188f1": { "ru": { - "updatedAt": "2025-12-29T16:46:16.410Z", + "updatedAt": "2026-01-06T14:18:00.803Z", "postProcessHash": "262e2d3ab6b73ba359f6d4ee2be4faa267db9c6020539591a012a890444711a1" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.411Z", + "updatedAt": "2026-01-06T14:18:00.803Z", "postProcessHash": "fe3a93e353f818336456198de86516f7be2a84a5fbb7b733ad23cac82855f277" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.413Z", + "updatedAt": "2026-01-06T14:18:00.805Z", "postProcessHash": "88888f4c6cc655adc88685df166a90e8a9790a65bab9b65c1634edd2a171aa36" } } @@ -37193,15 +37767,15 @@ "02a54bff5b69a75da5618dce18ff5349c7b299090d5eff2550f3873709eb1b79": { "7235cf796b4bd0d3d881eced967712d80abb5ba0a3821b306b501cae4682d0d4": { "ru": { - "updatedAt": "2025-12-29T16:46:15.014Z", + "updatedAt": "2026-01-06T14:17:58.729Z", "postProcessHash": "3e962ef75551a20c656c6232eb839e5d8702e6098f22baf12cfeaf0dd92da494" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.015Z", + "updatedAt": "2026-01-06T14:17:58.730Z", "postProcessHash": "528b43abf59f1afb81cc19c741dfeae09f33991880eb65b0adef5dae84e4fb26" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.015Z", + "updatedAt": "2026-01-06T14:17:58.731Z", "postProcessHash": "848cc90fd9953493bab1bd8df9f9ae0f1a7f49a40d903a3818f80a48168479db" } } @@ -37209,15 +37783,15 @@ "31b5542b32056819e0846a16f5ace98c19094c1713316abbf56f8a90d0828243": { "62ddc4945a194bd2d2a354d4e7ce7ba6118d9b576de668c4a8a562b209627af1": { "jp": { - "updatedAt": "2025-12-29T16:46:14.252Z", + "updatedAt": "2026-01-06T14:17:57.570Z", "postProcessHash": "223c903d21f71d5fa4a354e2aa6f6a1ef5e2f61dbd81070cd393283b4ffa6809" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.257Z", + "updatedAt": "2026-01-06T14:17:57.578Z", "postProcessHash": "5c3d0122faea382bf05739d35ba33e6873a575c5ac6b1eb150453ca1821341d8" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.262Z", + "updatedAt": "2026-01-06T14:17:57.585Z", "postProcessHash": "8ecda6e8f86492642fbced1c82115fb4fdbf20a5e34104966e0c3c7bedbcb3bd" } } @@ -37239,15 +37813,15 @@ }, "2391f243e3b18d3630ba5311778c4620eff4ac3a42dc277b56d1c091f6c9c953": { "zh": { - "updatedAt": "2025-12-29T16:46:14.239Z", + "updatedAt": "2026-01-06T14:17:57.546Z", "postProcessHash": "65e55c9fd2433d3871c88c07aff3669bb087bc8727ee0ef8f8704de96d375b05" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.240Z", + "updatedAt": "2026-01-06T14:17:57.548Z", "postProcessHash": "8aac7849cfc6705cc9fdcfa4f968aadf19745c1af3f1570b2932f288613b209d" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.241Z", + "updatedAt": "2026-01-06T14:17:57.549Z", "postProcessHash": "434ddb10e4fb165e2d281462a78c3f29beb5e87c1c7690c778bdf2861e10e743" } } @@ -37255,15 +37829,15 @@ "dc41f273e60164125c9abeb106731850537c8ccb170100723072ece0a1aca89d": { "ed44ffe66e8c1a1ecf0ca6bc07d18f43272ec161a9e95d0e798e64dfe432b703": { "jp": { - "updatedAt": "2025-12-29T16:46:14.253Z", + "updatedAt": "2026-01-06T14:17:57.570Z", "postProcessHash": "c9ddc8d31a729811f5b2662214f9a12b2bbb8f23d342cbfb52c8ab5a46a88030" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.258Z", + "updatedAt": "2026-01-06T14:17:57.580Z", "postProcessHash": "0a4377016041fb8b7297f3a807fd927648d7a1cf08d083a5ecb69d3549902792" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.259Z", + "updatedAt": "2026-01-06T14:17:57.582Z", "postProcessHash": "650611c3cc9cc5bb11045541db8cf1e7318f4c88736ca2b8f42d12eb7e78740a" } } @@ -37271,15 +37845,15 @@ "d1d7137dd4cb4cc74a1c3c87b1b693b6963f5cfd8bfb5a8b221978ff46d547ec": { "355157027a1047c82f7755ab15b218d98a8e5232865d69edf8a51337a364b541": { "jp": { - "updatedAt": "2025-12-29T16:46:14.256Z", + "updatedAt": "2026-01-06T14:17:57.577Z", "postProcessHash": "1029050c173201d7f5293b2adeb269b977d5a3295bb8f079fbceb5c03ed51f57" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.259Z", + "updatedAt": "2026-01-06T14:17:57.582Z", "postProcessHash": "09a16c323e94b617cab7837a831f79e6f02fae44b78f4e3c73f7f58de06669d9" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.261Z", + "updatedAt": "2026-01-06T14:17:57.584Z", "postProcessHash": "94ddab7ead9c003584e3fb8d2ed82e4f8346881fb99e135c159f7359709ccd90" } } @@ -37301,15 +37875,15 @@ }, "c51b52665f54d1eb390cfe0565080bc7c823e5f4e307ab5532f89adfb5b48f23": { "zh": { - "updatedAt": "2025-12-29T16:46:14.267Z", + "updatedAt": "2026-01-06T14:17:57.590Z", "postProcessHash": "8b688ff68b0be54f62f3f0ca791606373f70b707d2a6d9d1c0f2787294371a35" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.267Z", + "updatedAt": "2026-01-06T14:17:57.591Z", "postProcessHash": "44527fc7a571fd847dab28a76f0ad5f7d7d9798a3acd48c0ffbd4f8ed3322909" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.268Z", + "updatedAt": "2026-01-06T14:17:57.591Z", "postProcessHash": "d50b0438bb60f1b4b4706a4508c2b6a272f416f9a6d60c9f188ac997749bd276" } } @@ -37317,15 +37891,15 @@ "3fcb204cdad24d314545867b26b30c8e2ce3c8125673083ce1f19e64d111d0f8": { "077ad6f53558aa211c87ba3f0dfe9598d755f6cb104a4807d643a2886bf9e455": { "zh": { - "updatedAt": "2025-12-29T16:46:14.260Z", + "updatedAt": "2026-01-06T14:17:57.583Z", "postProcessHash": "b4c3b724356796422782d243286106848e4aee3dc604d0101e65fd051efbe6e3" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.254Z", + "updatedAt": "2026-01-06T14:17:57.572Z", "postProcessHash": "647469ade70aca9e37ada31723e825d6869c066cac1666af6a95c85ed6ff218e" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.256Z", + "updatedAt": "2026-01-06T14:17:57.577Z", "postProcessHash": "871f2fb22ff8a45e8b83ec60e078d64b6558017fbedc0bec957f8be62c96da6d" } } @@ -37333,15 +37907,15 @@ "b701d2b3be52e38549576a01b5af16da4d7053a27d173bd771c94238d014102a": { "e3a18f50221dc64c1bee76f63231dea329aab9c5cd75b0f7b0322e6ddc9aa6ef": { "zh": { - "updatedAt": "2025-12-29T16:46:14.260Z", + "updatedAt": "2026-01-06T14:17:57.583Z", "postProcessHash": "16ccb9f3315353d379349d9a775c4d8832e903c46bf0b71c692a2cdb00f58fc1" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.262Z", + "updatedAt": "2026-01-06T14:17:57.584Z", "postProcessHash": "00d34b00615641ac7e8da888ca0ea1611338d5d5a7cd2498c1ba1e418fcb889e" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.266Z", + "updatedAt": "2026-01-06T14:17:57.589Z", "postProcessHash": "826aaa230351b5940cd24a124ad6e5385a7ed0c1625ddd4ae1b5b7f3dfe4ff19" } } @@ -37349,15 +37923,15 @@ "3b788d59b496c4c56d465414c6ab12510ae2e03d43db20a49c33e170c8bac230": { "ede1435ca6ba7da624f1fd5c02105a76bc397ee37e8dfae6c210c6299befc45d": { "jp": { - "updatedAt": "2025-12-29T16:46:14.263Z", + "updatedAt": "2026-01-06T14:17:57.586Z", "postProcessHash": "b8bcdbaf89ddaccebf638d5801c541d1100446d3d678afc67c777dadb5f17bf8" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.264Z", + "updatedAt": "2026-01-06T14:17:57.587Z", "postProcessHash": "6eb4a9b1dfc2416e8389125a590d3844bc5ca45eaabea893562444061a29c883" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.266Z", + "updatedAt": "2026-01-06T14:17:57.589Z", "postProcessHash": "615e90521b53e0c73f7075fb325eefac8bdf5c431ff1bc56873e776143c605f4" } } @@ -37365,15 +37939,15 @@ "0b3d09fbfd858a696346c837e0e3665233eda4d860f35558d5a0e831b0f95dd6": { "508ab202315b7a243d32e9254bbdf71c1099770e760b6894227b763fef14780c": { "ru": { - "updatedAt": "2025-12-29T16:46:14.252Z", + "updatedAt": "2026-01-06T14:17:57.569Z", "postProcessHash": "5b3320fe43490541b59da541b277f012b19973c974b5111b9d9dc595eed113ad" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.254Z", + "updatedAt": "2026-01-06T14:17:57.572Z", "postProcessHash": "826cc0d2b101188c758e7cb05b26556f0db13808f2badbd6d074f0951f5b0b7e" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.257Z", + "updatedAt": "2026-01-06T14:17:57.579Z", "postProcessHash": "2fd765694c943a85d701f3304e74067516d85632010eb65ef2caf10e7d0edc40" } } @@ -37381,15 +37955,15 @@ "82b95dc055ea4459a44cd3655cb61ba45031aa682c9a84c9a2528eac8addac40": { "fe9a9e2137d1cae06dba9ff8e83ecaa3649ff47e77c5892e5e7eb1529b298c64": { "zh": { - "updatedAt": "2025-12-29T16:46:14.253Z", + "updatedAt": "2026-01-06T14:17:57.571Z", "postProcessHash": "a64adeb60bea74c0e7855fbc22fda1889b57f0d7bbe5b75fa74d74050715fe94" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.255Z", + "updatedAt": "2026-01-06T14:17:57.574Z", "postProcessHash": "f871ef1a184011eeb13f9f2e179e7a9a196915f8c6e0a65a70c1f94f6a4cfbb4" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.255Z", + "updatedAt": "2026-01-06T14:17:57.575Z", "postProcessHash": "5c347fa3c587a47e1f8da191c25bc1172ebf468f13aab2e56660f07687a42c0b" } } @@ -37397,15 +37971,15 @@ "3d362e80810173c1ed6a41a7289fd8d4f0020c46efb31049593b7ac75a19c548": { "35a38f29e12929f2b225b703480bed8e37445662a61cc1d374ec38bd2400c7f2": { "ru": { - "updatedAt": "2025-12-29T16:46:14.258Z", + "updatedAt": "2026-01-06T14:17:57.581Z", "postProcessHash": "caa8af47276f9e0784dccfaef78ce03e65ce6f0e3443971df97f82927256cc0f" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.264Z", + "updatedAt": "2026-01-06T14:17:57.587Z", "postProcessHash": "8c85368140a5d0849694080a449ce111e96b7ac0c49834fe4f5876dc594c7978" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.265Z", + "updatedAt": "2026-01-06T14:17:57.588Z", "postProcessHash": "5f65baefb9542fa626929d14f1152bcbd199d970a5106fb51f5c9c52c34bf1be" } } @@ -37438,20 +38012,34 @@ "updatedAt": "2025-12-29T16:46:16.521Z", "postProcessHash": "94dc11988c93bc5f73e116b71f5d6d1d9b06cf889db043d6b66ba78dd4855aae" } + }, + "a7f893278e56d69b8f3c2d26a4fe144f5a230c31e89bdd16b2638ec595049142": { + "zh": { + "updatedAt": "2026-01-06T14:17:57.599Z", + "postProcessHash": "423c9d7953080e25deee0baeac28eff5ee8819f087ef16fe58d7a201971b058a" + }, + "ru": { + "updatedAt": "2026-01-06T14:17:57.600Z", + "postProcessHash": "8fe681e0d62d2a247a5164392810525351682be55a42e8f4699cbad8fad1f923" + }, + "jp": { + "updatedAt": "2026-01-06T14:17:57.601Z", + "postProcessHash": "377e9529f8b3cca81e02e4ac848925a0b5a868ea4029fd529f441106889a77f3" + } } }, "97051f9ed6bfe4a4835c222886a18620e2f5a22de7909c6713b3a3e177e42f4d": { "f704262606f2b4a75c60220a40a64f12498dbb352d169b41421f799a649f0020": { "ru": { - "updatedAt": "2025-12-29T16:46:16.387Z", + "updatedAt": "2026-01-06T14:18:00.776Z", "postProcessHash": "e41dded37cdaddda5d69d9c4175668b58473b05d8ae7cb26e9e3a7f2bca24b58" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.388Z", + "updatedAt": "2026-01-06T14:18:00.778Z", "postProcessHash": "6b8735bbf42ffe205a08987e70bea48ec1199e20e24b717a7b410118f13ab68e" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.389Z", + "updatedAt": "2026-01-06T14:18:00.779Z", "postProcessHash": "b6364517ac819cee82711b8d2264a53cb265671a7afc73ae2c9f4a358c2643a4" } } @@ -37459,15 +38047,15 @@ "aeb4baa86dc41830e8659e491c583f9f47402f423b6f4e5e173e0afaf804920c": { "d663b35f677fd98fe9ac14aa3b1ec78e7875aeaa79c1b33fc2baf4115ca772ea": { "ru": { - "updatedAt": "2025-12-29T16:46:15.445Z", + "updatedAt": "2026-01-06T14:17:59.367Z", "postProcessHash": "cca6b9cccbd64d51998a7b7383463d1c58f0a3618d71108bdf3c419b675afd3d" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.446Z", + "updatedAt": "2026-01-06T14:17:59.368Z", "postProcessHash": "d3bc40c90d4925197004e72eb25521f314e72dc8a86c61738f114973c3310103" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.446Z", + "updatedAt": "2026-01-06T14:17:59.368Z", "postProcessHash": "817419c31f2f180caa72026cdf69a56b5d3112f68c7934d88b64ced63d26ff59" } } @@ -37486,20 +38074,34 @@ "updatedAt": "2025-12-29T16:46:16.319Z", "postProcessHash": "2bd3963757f6e215bd04a4d043272538cf5441247d3bf2e75556b6fe5b6b1842" } + }, + "aa34df3f50d4a01d21af2f88d15a28f18d67e7a4810a90a0cc4727cf5ea82b69": { + "jp": { + "updatedAt": "2026-01-06T14:18:00.716Z", + "postProcessHash": "00bce62051085ba19c306dcc7e572b361fe7ad079d04f3c234f0a2328ba5c4d1" + }, + "zh": { + "updatedAt": "2026-01-06T14:18:00.716Z", + "postProcessHash": "35564219de9233c37aa418f5ec5a055ed9e6877b39c89efc9baf32da7b38a6df" + }, + "ru": { + "updatedAt": "2026-01-06T14:18:00.718Z", + "postProcessHash": "3fdce7ea62f64f30b0e8dd6921b72066fcc27e87f13465fa20842beea73515e1" + } } }, "af83f5091cbd11c80292e416a1b05ce2de0c7f7901e2bca1093a013082a5575a": { "678dcb77e0f7ad547ac15e7d86adf1ef501cc6aeb7cf85d581c3ddfbe0abad1c": { "jp": { - "updatedAt": "2025-12-29T16:46:16.318Z", + "updatedAt": "2026-01-06T14:18:00.683Z", "postProcessHash": "f56952b366afc943be6f68fb2385e9491b0f7d59d97635ce560c3fe9e533e57a" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.320Z", + "updatedAt": "2026-01-06T14:18:00.684Z", "postProcessHash": "f29f1636894bac08374cd06fccde7813271b4ec2e19d2b3b801166ad9cb16446" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.320Z", + "updatedAt": "2026-01-06T14:18:00.684Z", "postProcessHash": "3b6d0017e7e1d1f51a57982f021ec258c7391615193070e3d17b66d473fd2f94" } } @@ -37518,6 +38120,20 @@ "updatedAt": "2025-12-29T16:46:16.265Z", "postProcessHash": "edcda6fc953e4540557349a115392c6b09fd08233659493412551033c68ad30e" } + }, + "3ffbffa9d955e59e58c75373b0da9127e5f171825b4df9de451802383a8dd379": { + "zh": { + "updatedAt": "2026-01-06T14:18:00.715Z", + "postProcessHash": "016726e28ac74396d20c367821497d2bfc790c6df49debfc14c50388a58f3dcb" + }, + "jp": { + "updatedAt": "2026-01-06T14:18:00.717Z", + "postProcessHash": "5f48e3bc058bcc7f28e20aab16109b0928898bdfa124485622f29d8be31a0ae0" + }, + "ru": { + "updatedAt": "2026-01-06T14:18:00.719Z", + "postProcessHash": "5f64910e8d69f504c6b06895e3308a1b9db4a7bb0ba726005c60a5080f0bba98" + } } }, "b0362e4e3915dc96e6ae2e87c5cc5487b9957506e1cffd6abbd1e82403d17ffa": { @@ -37534,20 +38150,34 @@ "updatedAt": "2025-12-29T16:46:16.446Z", "postProcessHash": "cf48223e107cafdceaeeea39b30ddd28aa769a472ccd6bbe07cb9f85b6ae32f8" } + }, + "7e269d5f1bf4a14c13af18303033cc3b2aa4a4adf4ab648533c2692b66f05f30": { + "jp": { + "updatedAt": "2026-01-06T14:18:00.876Z", + "postProcessHash": "b9201adb694da813cc8305786034777682649f4fddfff91d4d9336ef78406517" + }, + "zh": { + "updatedAt": "2026-01-06T14:18:00.878Z", + "postProcessHash": "427d01075005ee9a4bf3ea3fe64da77a26924b5fe74f89047ca94ec0e1e297f1" + }, + "ru": { + "updatedAt": "2026-01-06T14:18:00.884Z", + "postProcessHash": "e31b458df67d30dd178a8caa985bc6c0cfaec206d8f9a630a7fafe96d19fac1f" + } } }, "f94d1c07dbe7edb42d140939b71f80cf101c3b98f120abfa1161b51cc24c9c4c": { "54f1a9f837227da25d926aebe47c9f5517cad3e4f1a852228489f718e9f666f3": { "zh": { - "updatedAt": "2025-12-29T16:46:16.405Z", + "updatedAt": "2026-01-06T14:18:00.794Z", "postProcessHash": "11c876258878a677210c822c830d07ff751781e32e7a03b1ca6bfe0590f1d699" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.406Z", + "updatedAt": "2026-01-06T14:18:00.794Z", "postProcessHash": "d21718cc85d4eb56b9deddf5cbc22e5e2133e82e6acd74ee0350c088cdfbed8a" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.406Z", + "updatedAt": "2026-01-06T14:18:00.795Z", "postProcessHash": "0c9d7e321e57fdff811f8cf57c29896e3cd723e398b1f9567d9f8dad535f54af" } } @@ -37555,15 +38185,15 @@ "c540099447c0bf60907e62f4962142bf66b74fd2a2024261895ba5b0b67cac88": { "5e9d3e1136b70c06e84c55441565c90389535501b0149158c7e4fb3be8743f6f": { "ru": { - "updatedAt": "2025-12-29T16:46:16.407Z", + "updatedAt": "2026-01-06T14:18:00.795Z", "postProcessHash": "bfcb6c504ee13f8617f33337a25f98a64cff8e4d936cdef2db041457665eb50f" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.407Z", + "updatedAt": "2026-01-06T14:18:00.796Z", "postProcessHash": "ec5a5555ac0b391827671ebb531cb84db1d2caac6a37f9a873c9cf3b0c9991a3" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.408Z", + "updatedAt": "2026-01-06T14:18:00.796Z", "postProcessHash": "00004c4d0be65d28f1334f18ab4686831dc7d6f1fd0b9250864d8a57e6804a56" } } @@ -37571,15 +38201,15 @@ "7bc15bea10e2862f6c3efdc2cc194340c94b45b35e8dd64bf0f822c60827a6b0": { "1a9cf721c4fb224635e0e8b20a2b4e20a3a19008d08a447cb873473f831f23b3": { "zh": { - "updatedAt": "2025-12-29T16:46:15.147Z", + "updatedAt": "2026-01-06T14:17:58.920Z", "postProcessHash": "38828c8cf876ee1ea3b52bfcd5f5299c8c017ec1c97016e93982cc824642aeaa" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.147Z", + "updatedAt": "2026-01-06T14:17:58.920Z", "postProcessHash": "4af9a6683e31c56e50ff265b78b7e7aaf32848511ba8d543854b104f3d562de5" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.148Z", + "updatedAt": "2026-01-06T14:17:58.921Z", "postProcessHash": "c0a2fc4b53ace19c1a439f6eaf947f5821d252fe2aaff5ac9a1e3299b208acee" } } @@ -37598,20 +38228,34 @@ "updatedAt": "2025-12-29T16:46:15.181Z", "postProcessHash": "e1a4cccc759105bb64eef2bc897208395321e7259c127789684ef03112c709da" } + }, + "8123b03a3918fe1164b3ef347dd25d8b636f02d4864e570313b498be4632debc": { + "zh": { + "updatedAt": "2026-01-06T14:17:59.119Z", + "postProcessHash": "99d22fa7d1bdb4f40678620a266a243d9e94f0c06972f7ce9289942d5631de7b" + }, + "jp": { + "updatedAt": "2026-01-06T14:17:59.120Z", + "postProcessHash": "0097cddd4997e6017fcaf00799f10c6f235c6e7446f3d42205bdd77a21c5bf11" + }, + "ru": { + "updatedAt": "2026-01-06T14:17:59.121Z", + "postProcessHash": "9c883470c9a2df3464cee70785c2e6813f3d16b673e9535e6f0c41e74a55135c" + } } }, "be5d20b40a85b6a5539c333aaf8ccbd9f3623d53d929c0185f6e4f69ae3d1646": { "dbbd18de9b48a3a84274ec89fa3279beae72c75c90ef3f66289ec6e72fdef066": { "ru": { - "updatedAt": "2025-12-29T16:46:16.007Z", + "updatedAt": "2026-01-06T14:18:00.203Z", "postProcessHash": "f86e3e4ee9811cd6ef4777c7f433810a9bb48acb7efcc61a778708f33981eeb9" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.008Z", + "updatedAt": "2026-01-06T14:18:00.204Z", "postProcessHash": "9b27ab7aca7f10611415855eda98345560adff965cb3986fc6489bf8ad9d644f" }, "zh": { - "updatedAt": "2025-12-29T16:46:16.008Z", + "updatedAt": "2026-01-06T14:18:00.205Z", "postProcessHash": "7eca9f11f7ae2f785f21ea38dadbe37d84a2fd17b5cfe63aadd42574242a86b5" } } @@ -37619,15 +38263,15 @@ "f89b4a1fd3a7ea6c367efa7098581d5b4d39b032f5268cec93d25726893dd296": { "4a099f2b522ce3e467d7645148156799c4f53c01b732625c9f177f5be6cff8d1": { "zh": { - "updatedAt": "2025-12-29T16:46:16.391Z", + "updatedAt": "2026-01-06T14:18:00.780Z", "postProcessHash": "7dd9795559f340f1a5cacbabe28d6311dda1a1dd59835a0dac42d1b7625790a0" }, "jp": { - "updatedAt": "2025-12-29T16:46:16.391Z", + "updatedAt": "2026-01-06T14:18:00.843Z", "postProcessHash": "bc95c4ff6a38e79990354424a140f3e7adaa2a10bfb497dc36d27c66dfa074c2" }, "ru": { - "updatedAt": "2025-12-29T16:46:16.392Z", + "updatedAt": "2026-01-06T14:18:00.781Z", "postProcessHash": "a9c3d1e4323ffc9cc5e972d5cf73ec1220b2cdc05efbde945ed34a29712676e2" } } @@ -37635,15 +38279,15 @@ "e0a986de2fde0f35af4b9679ab313e9d295cfe52d0910bfeaf4d3436d3ff8355": { "56c5b3b96a1151590d9251fb4be0b7e7a7ba06665bf1df10682a14ca6da1d2c0": { "zh": { - "updatedAt": "2025-12-29T16:46:14.468Z", + "updatedAt": "2026-01-06T14:17:57.869Z", "postProcessHash": "e469d0aeb1b520119a6220252c4177fbf35c944397af9ac816913c3eca15ae1b" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.470Z", + "updatedAt": "2026-01-06T14:17:57.871Z", "postProcessHash": "6de7bb94ed3dc835af0b7b83820d32215b15a604c2d780606c1c8b7712044c32" }, "ru": { - "updatedAt": "2025-12-29T16:46:14.471Z", + "updatedAt": "2026-01-06T14:17:57.873Z", "postProcessHash": "d2a102110ca8a7635fafff8f5e0ba8a5908c973e63dfb43cba40b5f8955f4120" } } @@ -37651,15 +38295,15 @@ "3a0f6627e1faaa02cd88fd146bbd9dbf37c30b1192a2461c4f31e98a1062b671": { "0952c73005dece918466c649ad971d0471bc4a1885e952d2bcf7e1bf9033a038": { "ru": { - "updatedAt": "2025-12-29T16:46:14.469Z", + "updatedAt": "2026-01-06T14:17:57.870Z", "postProcessHash": "1f2500f1c6206ea553360d70082a5b31bdb6885858fc14353527fd081f201fa4" }, "zh": { - "updatedAt": "2025-12-29T16:46:14.469Z", + "updatedAt": "2026-01-06T14:17:57.870Z", "postProcessHash": "5476b08b7ff062adcd949cdd9989d7b0c870584521d85cead395e47fcd110e7a" }, "jp": { - "updatedAt": "2025-12-29T16:46:14.470Z", + "updatedAt": "2026-01-06T14:17:57.872Z", "postProcessHash": "fb9f16bb565f98a58931ba04849f972b7b83ee110f584d9158ba413ac26d848c" } } @@ -37667,15 +38311,15 @@ "e6eabcfc70105b1f0d1ad254f6f0258f7fe814dacd5ecf0f3f746f3d49172a7e": { "6f6ddc9602d73ec6e2f8c0daa90f449eee72b617d2e020421e8bbb726c6aac5b": { "zh": { - "updatedAt": "2025-12-29T16:46:15.565Z", + "updatedAt": "2026-01-06T14:17:59.548Z", "postProcessHash": "afdc3aea62a09e736a2a2159ff2aef10fa81a18a62c524a10969c4e558c23dff" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.604Z", + "updatedAt": "2026-01-06T14:17:59.578Z", "postProcessHash": "ed3f096b08343304b8ab6b8b5831cddc9fa3e53f93ff92c517d21af32db77152" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.608Z", + "updatedAt": "2026-01-06T14:17:59.589Z", "postProcessHash": "2fecbc0372e635cfc95c7a38e02c3a78a0d0d286b8e5b52bc9ca7ac57f2094f3" } } @@ -37683,15 +38327,15 @@ "71cf1951543c76c67dac4c4ddc6bc7792ec1a728e2b006b579d08d5d3f8e3071": { "cad7481aa876f1afddc294c1a3f7a708346cf3d86154dd4135d26526d80adb58": { "jp": { - "updatedAt": "2025-12-29T16:46:15.566Z", + "updatedAt": "2026-01-06T14:17:59.549Z", "postProcessHash": "6b3f830af08259d8dd088f6cf91c34ea934a133e3ae950b3d7419da0d75927d3" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.605Z", + "updatedAt": "2026-01-06T14:17:59.580Z", "postProcessHash": "9066e63251704e800544c0807345fcd9df3b819d3bdcbc85c622f06d4e7a05c7" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.611Z", + "updatedAt": "2026-01-06T14:17:59.595Z", "postProcessHash": "efcc25facb26992f7b0b1c9417969be35f7268d9f73a52206a8cf82c82a50728" } } @@ -37699,15 +38343,15 @@ "287bda35412db2dff2a5601e62ffcb5344b83fdcdfd3a4eaf66c417ca3959c37": { "6448bdd5a56ab7dc8cbaba5d89301a6df29bfdbc44a3809a0639d8f0504cf2b3": { "jp": { - "updatedAt": "2025-12-29T16:46:15.570Z", + "updatedAt": "2026-01-06T14:17:59.545Z", "postProcessHash": "0c13f79479e0ddcadcf5efb953b9f2c00a6e605324ec53bf59b31b95f72fd4c1" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.574Z", + "updatedAt": "2026-01-06T14:17:59.549Z", "postProcessHash": "0fdc8a36527d8cd8520228e15531961ae94d0b5dddc2bdfa0ab3611d7a27b6e6" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.671Z", + "updatedAt": "2026-01-06T14:17:59.666Z", "postProcessHash": "dc13f095d46abc5ae8d82f17b465ef04722316558d54b16ffe085ad0905b0d51" } } @@ -37715,15 +38359,15 @@ "5e01be1e713a33a9ad48689b9ed2cbc000fc7e9210a9214070e19d92e554792e": { "4b852e262b5df2bf99320258205815b6ab1f43dd0b10d903ea3cbf1b44bb84c7": { "ru": { - "updatedAt": "2025-12-29T16:46:15.570Z", + "updatedAt": "2026-01-06T14:17:59.545Z", "postProcessHash": "9af1e4c9a85f239216fc2cc5b6c0ba8e2aeaa7d1f55731228cfbe94969d4a1d2" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.589Z", + "updatedAt": "2026-01-06T14:17:59.561Z", "postProcessHash": "009faf767a8bc789e7cc2452121354a935762b04419721c3f22f8830291941f1" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.662Z", + "updatedAt": "2026-01-06T14:17:59.651Z", "postProcessHash": "228f2abb8be849b1daede958706d10a678756a64c1483cbcaa47e47f604fadb9" } } @@ -37731,15 +38375,15 @@ "bc28b789fb08bc4fe2c3e24e0a97f778066e84bb09a7068fc68087532f94ae1a": { "785d6e1ef604460bdb7f817089b3d3a738f20d6b1144dc7dfdc09da3bb9de836": { "jp": { - "updatedAt": "2025-12-29T16:46:15.571Z", + "updatedAt": "2026-01-06T14:17:59.546Z", "postProcessHash": "19b54ed5467ea97374d3ccab89f79d73cfab1ec9b689d778991ee433d8ec2d7a" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.587Z", + "updatedAt": "2026-01-06T14:17:59.621Z", "postProcessHash": "8036a3418d06748ea32905fa2f5b2497d626b22f1b4264bfd3331d6a0b151f21" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.646Z", + "updatedAt": "2026-01-06T14:17:59.635Z", "postProcessHash": "6a7554bb300e64dd4caf36aba1929399376f58aea9a5be2145dbba230490975c" } } @@ -37747,15 +38391,15 @@ "d54a17dbc3cd2de01d400c90ad162e2930aa4112f3d953fe792c638659383d92": { "5845b81a51ee554abb2b690d87eaaf5f1183157fbc258ec97d8bdefab1d6e59a": { "zh": { - "updatedAt": "2025-12-29T16:46:15.572Z", + "updatedAt": "2026-01-06T14:17:59.546Z", "postProcessHash": "ecaaa8436a7229671accb24b0600f15439c00b7413ab45b13d88912fc88b3504" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.582Z", + "updatedAt": "2026-01-06T14:17:59.553Z", "postProcessHash": "58998b8975c810f20f1b1a0372f58f0bdf6ab9e097d8c71499d42a7cd393f0ae" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.587Z", + "updatedAt": "2026-01-06T14:17:59.559Z", "postProcessHash": "ddebfb77e8a7cf46c9167cbe312de8851211f73b19c12212fcc332409b83c7ff" } } @@ -37763,15 +38407,15 @@ "d3c7eac9ba31d988e33979bcbd776a4a39e63e11a1268eea5326c40325b4eb43": { "273eeb333c91695db08506c1bef3fa930b6e4f76f0fbc0d2291566e144c7f207": { "zh": { - "updatedAt": "2025-12-29T16:46:15.572Z", + "updatedAt": "2026-01-06T14:17:59.547Z", "postProcessHash": "1a5117d7ed94fec5172078207e132ccc8040bc603f321defce2b3972ac420e8d" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.581Z", + "updatedAt": "2026-01-06T14:17:59.618Z", "postProcessHash": "ca1a53ce7c2f504aaeaba56a346c57dc9a79357d7f56f32ab9d65e423b12ca87" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.673Z", + "updatedAt": "2026-01-06T14:17:59.668Z", "postProcessHash": "06fcb04901f2dda5bc91f440b483a73f9d585bc1057b74088c27a12a0330352a" } } @@ -37779,15 +38423,15 @@ "15b8d904586ed91ca733f8d3e7771553079fcafd8f709e3ca79810839917fbb4": { "ed4cfe7544811daeed8b5fe74f1bc10a467a532f2d0577d17403f68ca50226ea": { "zh": { - "updatedAt": "2025-12-29T16:46:15.573Z", + "updatedAt": "2026-01-06T14:17:59.548Z", "postProcessHash": "e4c06ef7c62f4ab55414d4d078571881e3f6189361b969f6ee9d7ccc6440375d" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.635Z", + "updatedAt": "2026-01-06T14:17:59.624Z", "postProcessHash": "75c667761133fa7cdedb86e58e583ca2524765477a14acb1f63a72a190a50521" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.636Z", + "updatedAt": "2026-01-06T14:17:59.625Z", "postProcessHash": "869c74d4783f3b35d9bbb45e8ce7a9ec76e410497240f7857e77a5fdd2df3a24" } } @@ -37795,15 +38439,15 @@ "3758aab5949cbee6a8910e70fa638786089c07f931368cec6fb90d2f9a8a49de": { "eb8ea79a99afa27ae4e9303fa45aa0bab09e600d122e44cdb8f903c3c688a8d2": { "jp": { - "updatedAt": "2025-12-29T16:46:15.573Z", + "updatedAt": "2026-01-06T14:17:59.549Z", "postProcessHash": "bb807b320fe0509d45dd44be4561d92d75fbe9391fe3dd1321740b3ce4b379e0" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.636Z", + "updatedAt": "2026-01-06T14:17:59.571Z", "postProcessHash": "878c4ff60299320dead069dac0b5a62cea5d55cf85ec34f1a41bc548845c6fa7" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.664Z", + "updatedAt": "2026-01-06T14:17:59.655Z", "postProcessHash": "e40cf378e8ae85cb956dddd0c42f6ed3f7aaf6107efba90ce251a49e31e2e14f" } } @@ -37811,15 +38455,15 @@ "fc7aa3ca7a2d5d727ad24bdedf9ff287c5f28bd22de59220a4956eff0f747422": { "added28a6df2c51ded18d45d0eb85dadea60a27707ed95910c705f490d680769": { "jp": { - "updatedAt": "2025-12-29T16:46:15.574Z", + "updatedAt": "2026-01-06T14:17:59.614Z", "postProcessHash": "224109f25b276726efaf0ebe939653b8d90da931637fc429051d85b88422ce22" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.666Z", + "updatedAt": "2026-01-06T14:17:59.657Z", "postProcessHash": "4d99d61f2139ce3037311692da021b3dedb71525662c858913f9a626fc47c937" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.672Z", + "updatedAt": "2026-01-06T14:17:59.667Z", "postProcessHash": "36326bb4ac80f125fb6fb39115db379e5b4d29c0df0603587cdfce0687926faf" } } @@ -37827,15 +38471,15 @@ "0319f555653f28b3e8eab785836a1d9e469d2f86715bb502a40e36f165fd3c09": { "b24260e3ccdfff39cfabe08118451fe444a12ec7d40aca24212dc3a74ee4964f": { "ru": { - "updatedAt": "2025-12-29T16:46:15.575Z", + "updatedAt": "2026-01-06T14:17:59.550Z", "postProcessHash": "cb3448d5e29cb8a09fbe5c44b21ea45ea09c4242799a8262b9323d841528ff91" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.648Z", + "updatedAt": "2026-01-06T14:17:59.639Z", "postProcessHash": "fd5d3a8dc52347c6cfbbfe5a2c9d37837147bf0eebc958e8477e2ed064df11fa" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.673Z", + "updatedAt": "2026-01-06T14:17:59.669Z", "postProcessHash": "37238d02867111a9bbe06b996c82440f412a484473ed1f85c881d4a5e903e1b8" } } @@ -37843,15 +38487,15 @@ "78ad36e3f71fba42be7f6bc5668eaa7240248cf2757d27fc2ce5209740368e87": { "13576bf64e832e7f38c7b241984d6d42bf3e97afa27fedc8340e6b5d15402c68": { "zh": { - "updatedAt": "2025-12-29T16:46:15.575Z", + "updatedAt": "2026-01-06T14:17:59.615Z", "postProcessHash": "95ed682f7447bb9e71e18c9dcadc97624bf96f8b2144d136ea60cabf8e21d389" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.638Z", + "updatedAt": "2026-01-06T14:17:59.626Z", "postProcessHash": "f2e87c723d95f7136d48e71987d39d66f165b82a8f02f13024479d8e55ba961d" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.644Z", + "updatedAt": "2026-01-06T14:17:59.634Z", "postProcessHash": "c4972f0d6d57ce31d17448679b2655529319326405e02c8b1d983b25876bfdac" } } @@ -37859,15 +38503,15 @@ "098dd68bf49c75c0de6c5f4e8ec7f5bf6e9275e147ae4564b6b97c89af8ad482": { "fc013bec5e0da7fa324c2defb563e158463e6563d23058fd14de9e2d31e433cd": { "ru": { - "updatedAt": "2025-12-29T16:46:15.576Z", + "updatedAt": "2026-01-06T14:17:59.616Z", "postProcessHash": "8ce7e3514b8ab2b4c44e6383ca353891a2bc122d61a72551eadfc44d1247cc87" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.648Z", + "updatedAt": "2026-01-06T14:17:59.638Z", "postProcessHash": "1b024d84b4a5c261b46931de1be63def8a3f7a9c955591f652ff61168fd5a022" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.650Z", + "updatedAt": "2026-01-06T14:17:59.641Z", "postProcessHash": "69fa1d34fed9b1c013de20f539319a7acb223618e46266fa1ced22f750422ca0" } } @@ -37875,15 +38519,15 @@ "de638cec3120d62799b5d1bdb56c4ac9ed85ae3442ef269d8a2ed79f3c30fb32": { "4448fba6ec3ab8e8f97c00c072d1f0a5dc1bde08355bb6877303f633cb35de99": { "jp": { - "updatedAt": "2025-12-29T16:46:15.577Z", + "updatedAt": "2026-01-06T14:17:59.616Z", "postProcessHash": "071f4954728f93ab44ee5bcbfbecdb4352d62e5d8f9a1e09ee83f44e56fb7c20" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.640Z", + "updatedAt": "2026-01-06T14:17:59.629Z", "postProcessHash": "51f57eeba8e4f71e3ad159efa28cf7d2383e5d106bb3b009a4ac1df303fc51e9" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.665Z", + "updatedAt": "2026-01-06T14:17:59.656Z", "postProcessHash": "8969a496384ab234534b0db0c81f9b9b7b0341c2688dcfe89f7af576986bfaa0" } } @@ -37891,15 +38535,15 @@ "ae0d627caf603a595b01c69bf7b2425f1dbf6492d3d261286a0ac917cce9b51d": { "b58da719ae42c9f9649d5e5d216a97d9734730a598e21d598e2bc77c4238ae41": { "jp": { - "updatedAt": "2025-12-29T16:46:15.578Z", + "updatedAt": "2026-01-06T14:17:59.617Z", "postProcessHash": "8f55ce9a22fd5af0490ce9630be0bf20ef1249913ecfe6c0b47ece967e0922de" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.640Z", + "updatedAt": "2026-01-06T14:17:59.630Z", "postProcessHash": "cb4a2df68a1887c53e653ae2a9f7e488c53ad6208b7bd50f6b7cc4fc633db86b" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.661Z", + "updatedAt": "2026-01-06T14:17:59.650Z", "postProcessHash": "ec275780425e57841f04df2c34ebf86ff487c13a3bdb64f3dfbc13a332a209a5" } } @@ -37907,15 +38551,15 @@ "b64e8cf2fb95b67bd9547b4347b34d3adb7e40f2f12a760dd0a333a298382f3e": { "45d1ddf4dc67b46164f2daa3841ab05fa780dd68d2b3ae41fcaf1f5c2487b710": { "zh": { - "updatedAt": "2025-12-29T16:46:15.578Z", + "updatedAt": "2026-01-06T14:17:59.687Z", "postProcessHash": "5bc102e779f7a1efef335e981dd848a7e6ad8228e2f115ce90421cf94d73c979" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.626Z", + "updatedAt": "2026-01-06T14:17:59.682Z", "postProcessHash": "f69e15889aad67849941ae2352b8c199324939d0152613b9eec34e2f65cb6166" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.628Z", + "updatedAt": "2026-01-06T14:17:59.686Z", "postProcessHash": "de26278b9c1af555a36b5af645bf9a39d1bdc30cd254af0deb5315b159701406" } } @@ -37923,15 +38567,15 @@ "f0c9d24e3b5e56a33831bdca5c1ca186d5044fe771324a17e526e2d301c5bd34": { "5f7aa85b07f7bd060a38f4b5c6c884ea9ecdecb88332e15be306f5d5edf19c6f": { "ru": { - "updatedAt": "2025-12-29T16:46:15.579Z", + "updatedAt": "2026-01-06T14:17:59.551Z", "postProcessHash": "967732eac35288796a44746a71e8fafc874eff479004a30ef72de1c684d56cfd" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.635Z", + "updatedAt": "2026-01-06T14:17:59.571Z", "postProcessHash": "ef773aaa40c04a9fc22980860cb0f244a489eb1c628e5843f851e095c76b6120" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.670Z", + "updatedAt": "2026-01-06T14:17:59.664Z", "postProcessHash": "5ac3d321dd08b59a387de33d64b34ffbfca9a3db79374b5cb36f6100db08ccf4" } } @@ -37939,15 +38583,15 @@ "41dcec928703fc1d64fcf2c04a01e6c40aa97f71feb84a5755e25632fbf2cefc": { "67d5555603ec20d41cc249da8d6e1ebb3fdd6a38e45a8c5f0b92a314a9f5cf87": { "zh": { - "updatedAt": "2025-12-29T16:46:15.579Z", + "updatedAt": "2026-01-06T14:17:59.617Z", "postProcessHash": "e9029c98d7a305819a5e5a8b51842d7d7bbae57ba25714600f00922d9703381d" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.640Z", + "updatedAt": "2026-01-06T14:17:59.629Z", "postProcessHash": "6ed914d58bf69751e59bb9c9ff30c0f7a95bd0e485304e11e77915d14fc1afa6" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.644Z", + "updatedAt": "2026-01-06T14:17:59.633Z", "postProcessHash": "37d011bd4ac727aa27f08f583aa58b2756cfede81fb01c626adde34aeb976f55" } } @@ -37955,15 +38599,15 @@ "0467e10ab78365a52f5be3e92a37ee43d761cc923d360bded79145de60243bec": { "bbcac2f1090446e9ba3b2f8518aa9920e757cc452a5b1ef552be4cd60bd391a5": { "zh": { - "updatedAt": "2025-12-29T16:46:15.580Z", + "updatedAt": "2026-01-06T14:17:59.552Z", "postProcessHash": "e129a3f356d711e85965eb448d1cc7c7734b133e882efb91c6fe230d889b5cd4" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.647Z", + "updatedAt": "2026-01-06T14:17:59.636Z", "postProcessHash": "6b7a6e313103abb417a8856ca268fbb907e5b01f2553ff02ea55db974b7ee572" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.660Z", + "updatedAt": "2026-01-06T14:17:59.649Z", "postProcessHash": "ccb8cf83707d37adc5825154df02df446524b9dfe19c33f84e4df31174422888" } } @@ -37971,15 +38615,15 @@ "140a9b70ecfe654fc3cf9776b2eeaba68155c77d53ce91ed122bbb0d4c481893": { "bf357fcb7adf9af48c3dcbf187f59d0baf65925ec3ef5d1fa3ec7849a6038f61": { "ru": { - "updatedAt": "2025-12-29T16:46:15.581Z", + "updatedAt": "2026-01-06T14:17:59.553Z", "postProcessHash": "0f530aa6c14982c4f7c5a7eaba380e783919a452439e012d5c6d5313a411816e" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.649Z", + "updatedAt": "2026-01-06T14:17:59.640Z", "postProcessHash": "b3b0b6c42b3d99e9a1b53a530af84faf0b59b283de18613f8ec5b4d318812471" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.691Z", + "updatedAt": "2026-01-06T14:17:59.676Z", "postProcessHash": "2db57bafff13fa3449e963d5f921af1fe686673c6ee5ed07d682835c3dccaec8" } } @@ -37987,15 +38631,15 @@ "682fc501cbcb07f5de64c5e5581d7b2341a35981738d451fa220425d7e0f4247": { "ecee2df0147464123f21384bd821eec416343f0de30245408780925b6fcd69b8": { "zh": { - "updatedAt": "2025-12-29T16:46:15.583Z", + "updatedAt": "2026-01-06T14:17:59.555Z", "postProcessHash": "a1715ff8edc9cf3488ecfcbef1bb7df5bc7e49883fab7e6d137a2d42eba90a44" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.609Z", + "updatedAt": "2026-01-06T14:17:59.593Z", "postProcessHash": "c0adcc6f04e51987aa8fbc47ae388c04538023548c94b31bcb7edf0567e26084" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.611Z", + "updatedAt": "2026-01-06T14:17:59.594Z", "postProcessHash": "e53e4b32b993a377697aac067a3447af7685e33e475fdf046d7d9fd1659cab5d" } } @@ -38003,15 +38647,15 @@ "8df4ae75efe77ab5ff065dc7a108f76aeb1f8d34f1033465c0808da31eacca8d": { "b9432e67d53051ca21387a54116175fc83fc1993a9b1fd489609cb390a69dcec": { "jp": { - "updatedAt": "2025-12-29T16:46:15.583Z", + "updatedAt": "2026-01-06T14:17:59.556Z", "postProcessHash": "0b8a9564f29e75855c5315de240c5b73933fb7493f2cd25d469d01b97c1b7ed3" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.663Z", + "updatedAt": "2026-01-06T14:17:59.654Z", "postProcessHash": "90f793ac603a4cbf00c0d1ce31f145bada76f7524daacb8ae1976f2e5e852565" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.691Z", + "updatedAt": "2026-01-06T14:17:59.673Z", "postProcessHash": "ea46a95a07a420a5545f0cfb6a5bcc51c809cba0577a6ac29c0b9eac55154e38" } } @@ -38019,15 +38663,15 @@ "51b846ac6d8166e39c076768335c72913c928c0e0d2bb0ef46442206f246a99f": { "6ccf4f9b328cea2b3e860c1e9d5f93f5d146f2248255c0bc18fe34278629f659": { "zh": { - "updatedAt": "2025-12-29T16:46:15.584Z", + "updatedAt": "2026-01-06T14:17:59.619Z", "postProcessHash": "b9b34cee6613d438e8d3f5321d7f7e68153cb2f0fde0c8428fd48f445e8bd707" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.594Z", + "updatedAt": "2026-01-06T14:17:59.623Z", "postProcessHash": "a29ffb3642e56658d35a8ce16a967d195303eb15d0f8df5a3d3201b46b058a75" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.639Z", + "updatedAt": "2026-01-06T14:17:59.628Z", "postProcessHash": "90c0035c0a68f3573ac9ba7044753edafc0c144ed5137827c103726c57876f27" } } @@ -38035,15 +38679,15 @@ "e8d4c899680b62d6d57903c6892910aff606758d5b6ab194baecff86ccea8a45": { "cb1a8f51a7813ae2353b02a868997aaf170b8c8b00c8aa3b26d64aa3da35a8f6": { "ru": { - "updatedAt": "2025-12-29T16:46:15.584Z", + "updatedAt": "2026-01-06T14:17:59.620Z", "postProcessHash": "3794f7f7c34ec7ca6ee0fcf9abfa993381b8564f2621e097e7cd3be6262a5139" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.637Z", + "updatedAt": "2026-01-06T14:17:59.626Z", "postProcessHash": "4285ca63eda15f4663956c65255b1cd6798f82e6b0755863f8350aeec4b89877" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.668Z", + "updatedAt": "2026-01-06T14:17:59.660Z", "postProcessHash": "7f73f19e98323daf4ae1807cb06785214809127e618a0c0b11340478f9793609" } } @@ -38051,15 +38695,15 @@ "7bb92b1684a27c2544b2cfde2f01c32b5f60b895ae2dc2bc80426200e5abb73d": { "97061efe78ee58df69ff16769db86792809518dcb885f742336f78b252da141e": { "ru": { - "updatedAt": "2025-12-29T16:46:15.585Z", + "updatedAt": "2026-01-06T14:17:59.556Z", "postProcessHash": "5b7694a3fc3c82377b4d0f4d7cc3ab11bb6736109a68f8d2315306d6edd7a900" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.585Z", + "updatedAt": "2026-01-06T14:17:59.557Z", "postProcessHash": "e758ff9174f279bf57cbec4a19ae2ed4badc69f42e9d74de5283a1a9bbbdf849" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.610Z", + "updatedAt": "2026-01-06T14:17:59.593Z", "postProcessHash": "4ff3945d8bbd0fdb4f55a6d600f7b389d94c0631aa9673f831b8a89e5d9fd975" } } @@ -38067,15 +38711,15 @@ "d75385296098b7ac38f886d94db3c07c19c9f944b4d640d602e2d6134f179225": { "466099734f5c1382937842581472318bb536f7da6e9c43df2c4a336657564543": { "jp": { - "updatedAt": "2025-12-29T16:46:15.586Z", + "updatedAt": "2026-01-06T14:17:59.557Z", "postProcessHash": "7f2649574e5533a0c4a8f410bd73255e89517f3d3e0a033c31eeaa30dec0259c" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.597Z", + "updatedAt": "2026-01-06T14:17:59.569Z", "postProcessHash": "64f21b7d0a79251173a65ad7f35de2a5a6ef7ec452bc032fbe86f6bc930801ba" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.675Z", + "updatedAt": "2026-01-06T14:17:59.671Z", "postProcessHash": "fda4db65ac6735449ddb3be2c811c7e194ce4f028f18ceb5d4009ecdb791fd7c" } } @@ -38083,15 +38727,15 @@ "772ea220589c33e017f182131f7d9c6059f0ecd1b7fb56fe3765aac7a9966c77": { "4e487cbd94bddf44d060f912793e4dabbc5c78d335f1f6ead09423a3843fc2d9": { "jp": { - "updatedAt": "2025-12-29T16:46:15.586Z", + "updatedAt": "2026-01-06T14:17:59.558Z", "postProcessHash": "9c500c3fe9eab87a25e31fbf51b31704ac25d783444bc5bada43fc7ae868e06c" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.591Z", + "updatedAt": "2026-01-06T14:17:59.564Z", "postProcessHash": "adfbcb2d2548549707fa48c9e4aca0e399c8709437c151b9ff5c122ee1f15c70" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.606Z", + "updatedAt": "2026-01-06T14:17:59.581Z", "postProcessHash": "d67cb8b3790a3dad7399d35393b6f16932762e089661da047621759f3b13fc83" } } @@ -38099,15 +38743,15 @@ "379e181b7faaabfb6f7d0c026e8e013c62289b67b57a978e57bf550501755e21": { "4c712449bc6a25e8fc67772e6db99e3eaecfd836c94b0c5a2c1e554b5f2e84f9": { "jp": { - "updatedAt": "2025-12-29T16:46:15.587Z", + "updatedAt": "2026-01-06T14:17:59.621Z", "postProcessHash": "23c06725f89205771e1268648039f98aba5f4937e807ddb207b5a509a14ab9b0" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.661Z", + "updatedAt": "2026-01-06T14:17:59.650Z", "postProcessHash": "7b4d3ea8cdff2d94810dcb4dffacad7f0c27dcade01324642c6a701e02328a27" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.672Z", + "updatedAt": "2026-01-06T14:17:59.667Z", "postProcessHash": "f4d4e60b203e322acdaec77be6aba1934e037cb3519d0a37d6b8070b71e119b9" } } @@ -38115,15 +38759,15 @@ "7c251da2dbe81b103deeee7116a4b06ff881dd075afdcf958d2cd18f7c12aeca": { "1a5f1b2bb756aba7d9ad8a662fb0e53f6364cd442df7de63cb200b60c7423f6e": { "zh": { - "updatedAt": "2025-12-29T16:46:15.588Z", + "updatedAt": "2026-01-06T14:17:59.559Z", "postProcessHash": "e32f2884eb2521ba434968fa511e96816caab2726b4d8e651586a984c62d5fdf" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.589Z", + "updatedAt": "2026-01-06T14:17:59.562Z", "postProcessHash": "3bbdd6ac883848e2a2e7df21dd82530e7ec0a1cf492eaacda2cf366b01d03870" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.614Z", + "updatedAt": "2026-01-06T14:17:59.599Z", "postProcessHash": "1d63652f19e247b8f297a4858a7ef66b591d0e451b446ba213b584a2b745e9f6" } } @@ -38131,15 +38775,15 @@ "315ada727f795c00524971a5261ec9e113515237610e423cf147a9d7db1dc250": { "0c8ae4720e6ab73f543b126cd6cf971a099b8936ce8e1f4efd6ae961d2ab9791": { "ru": { - "updatedAt": "2025-12-29T16:46:15.592Z", + "updatedAt": "2026-01-06T14:17:59.622Z", "postProcessHash": "3b5dd6cfad7b418814524ad98acf93d1c546b8054459b86fc061a54ccbdcc226" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.653Z", + "updatedAt": "2026-01-06T14:17:59.645Z", "postProcessHash": "db46f87caed32c2cbce8c8eb424bb67a3eb4355854a6c583066c2550af9be3a6" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.656Z", + "updatedAt": "2026-01-06T14:17:59.646Z", "postProcessHash": "62fcfdb895f7e9aed709bb14d2e6e0b460db3f959611b1b04f987476e0ac26a0" } } @@ -38147,15 +38791,15 @@ "a00967b5effdd2cc49752bfcba5052a5ccd63f6490b77820ac1e04804f2dfaa4": { "2254985fe22aa363dd35e269447a51de4beab792ce3b864fa85ca11042524984": { "ru": { - "updatedAt": "2025-12-29T16:46:15.592Z", + "updatedAt": "2026-01-06T14:17:59.565Z", "postProcessHash": "dd36e3da048f09898b3bc37a46daae443c75ffe46f5bdbd1cd5d9b58435ac5d2" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.593Z", + "updatedAt": "2026-01-06T14:17:59.566Z", "postProcessHash": "b6ecfe018e7a66bba8a16287430926fadb022c0f2feaa520ca3ffb703d86f30b" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.599Z", + "updatedAt": "2026-01-06T14:17:59.570Z", "postProcessHash": "c9ee3eb0ca2abbe422f950f264310ed867c4da3679869cd8ffd5e7a5fe8d0fd3" } } @@ -38163,15 +38807,15 @@ "85b5ef559dbe9d5c5c4c6951bf64c936cfba36238ce779ba9942047bc8e970d7": { "64ebb0293c1d6c3063c3838bed12b1a65123e969a0c752e70cf614c3e85a0433": { "jp": { - "updatedAt": "2025-12-29T16:46:15.594Z", + "updatedAt": "2026-01-06T14:17:59.566Z", "postProcessHash": "e8e259c9875e6f9b516a77aa71264745a54cbc28a631f54db08300ddc5620962" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.599Z", + "updatedAt": "2026-01-06T14:17:59.570Z", "postProcessHash": "68071cac911c51455c1fa803f7b4b1394c28883bf27bf86fa8b2a8ace6677cb2" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.659Z", + "updatedAt": "2026-01-06T14:17:59.648Z", "postProcessHash": "bd5186e9e77401d2c8630297f02a140eef181b7ff76221de9be8d2922eecfca3" } } @@ -38179,15 +38823,15 @@ "ee932da32b4d04940d8ea58f72634e40727cb5f555ea630d79d362b1089d73fa": { "4e1404cd3236b60cec2b70e8447c7d141a5c3ec7f308569cac3b0268bd76ea76": { "jp": { - "updatedAt": "2025-12-29T16:46:15.595Z", + "updatedAt": "2026-01-06T14:17:59.623Z", "postProcessHash": "82db8a1392a86ab64a46d35ae6c1d8411713e9b3237cd68ca1eb0fc58bc3200a" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.634Z", + "updatedAt": "2026-01-06T14:17:59.624Z", "postProcessHash": "66e1930f7d793e39cfa91e902baa857484b7e7fd5fc77488b2a2c8c63261ee22" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.671Z", + "updatedAt": "2026-01-06T14:17:59.665Z", "postProcessHash": "571b73209359f804328f9f9e30d68dbdc70b05e0d280af0478bb05e8b35e3d9c" } } @@ -38195,15 +38839,15 @@ "01e4784a7b69b2934f905ada7cb00251945c192367acca7e91e3a17e71ffd97b": { "7e86ea6a3d3a4752dfb4d9929d0f1ca951d67421fcdcf916e431b55f70b72eaa": { "jp": { - "updatedAt": "2025-12-29T16:46:15.595Z", + "updatedAt": "2026-01-06T14:17:59.567Z", "postProcessHash": "cfde67c4a21def1892551343f7178dd9a1b71e06fe996cb807a9b88216ebebac" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.602Z", + "updatedAt": "2026-01-06T14:17:59.576Z", "postProcessHash": "6471242f5eca6488fb48fe59c9ae3c78cc80ba7e340c7c3324a51d2bd25b5ecd" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.608Z", + "updatedAt": "2026-01-06T14:17:59.591Z", "postProcessHash": "1a210a615171972bd2ebbba7a9a1933c089f25605f0fb22478f5cb801c85eb96" } } @@ -38211,15 +38855,15 @@ "60b5931073883cb37f0a03633a1fd43eac3f14c1adbbf5fe2d4705059bc1fd84": { "eee06e3b2fd950268620c37f379fdcd36ae198ae3d57e2cf3d48948a87092a0b": { "jp": { - "updatedAt": "2025-12-29T16:46:15.596Z", + "updatedAt": "2026-01-06T14:17:59.568Z", "postProcessHash": "b1c1178ad166428438a6124db0d0b967e2fece155d1daa74c6abf1692e7fb59b" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.601Z", + "updatedAt": "2026-01-06T14:17:59.574Z", "postProcessHash": "61ab9200ae536da2d4201af3f2589842a8b32723ebddfb81e10be951af95c663" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.612Z", + "updatedAt": "2026-01-06T14:17:59.598Z", "postProcessHash": "1e9ba88ad1fcf8528b5bc807a46c39798404f23b231211a462a93d5751e60993" } } @@ -38227,15 +38871,15 @@ "b17c3ccde3d49380da0ad9d486a4c8f90b3563f12d959dbb2da5c37a6003ca62": { "5167167be7a530c1cd915527ba7e5fca86d9a15211cdff530024ebbf861718b3": { "zh": { - "updatedAt": "2025-12-29T16:46:15.600Z", + "updatedAt": "2026-01-06T14:17:59.572Z", "postProcessHash": "370a35bb6e9850b534f0e49c5eeb85382e6a90e26590c263eb5d431ca1ab6c62" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.603Z", + "updatedAt": "2026-01-06T14:17:59.578Z", "postProcessHash": "e50f261bfde41b08ba035fc974bcc296a5279f871f521de5dc166efe3edb319d" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.618Z", + "updatedAt": "2026-01-06T14:17:59.605Z", "postProcessHash": "36c209231a75a360fb6c82e88b744830933dea49a8e4c9485ae33a2d4fe2c6e9" } } @@ -38243,15 +38887,15 @@ "d49dea5e63f9e47f95419fc523f272f15793fb5a69abfe156724bc1871f062a2": { "cae7c1f2c801d11afc484e1ec2ef701f1227f880891a34ee9976022f4ffe8004": { "zh": { - "updatedAt": "2025-12-29T16:46:15.600Z", + "updatedAt": "2026-01-06T14:17:59.573Z", "postProcessHash": "86138158e54cea48a807944caba0fdf57e288a2f34edba9adc91480bfcb58e74" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.605Z", + "updatedAt": "2026-01-06T14:17:59.580Z", "postProcessHash": "dcc9ed1aa4e55f998e76826678ea9e95e99425ef9aaee9c5c45560bf8c0650fa" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.617Z", + "updatedAt": "2026-01-06T14:17:59.603Z", "postProcessHash": "fc9c931d0d9d220f889c57ae4d1923f7f7c6715de2c7700fbdfe0bbfcc88793b" } } @@ -38259,15 +38903,15 @@ "c5fdb351f3918cafaadf3b0b0d1e3f07c33f83fd0b5f0add679ccf776735d54a": { "72753a92cd3b7e5b13319816a69acb7053ec1f86990d483bda1e5a844e3786f8": { "ru": { - "updatedAt": "2025-12-29T16:46:15.602Z", + "updatedAt": "2026-01-06T14:17:59.575Z", "postProcessHash": "b07d9361dbde42273741b453ab240833d287816fc1da18c1b4cfa9dd16e97c3b" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.613Z", + "updatedAt": "2026-01-06T14:17:59.598Z", "postProcessHash": "eb494c8e1d9b8d1b4f86462b339cc8a0ebbf5978b6992261d8c5c27ddc62dfe7" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.615Z", + "updatedAt": "2026-01-06T14:17:59.601Z", "postProcessHash": "7c93e83798024ae68f73df6946539e2b811015a8d3dac5cabe4c8ed6e84844fd" } } @@ -38275,15 +38919,15 @@ "518fd5528dd7407dd5edbfbebf813b5de8d1eeb73d81ce926f6dc4ff67c21e17": { "ee83ce448c18a0f47596932bbf22dbc6bcf1a25e8b584329661d08a66f35d9ad": { "ru": { - "updatedAt": "2025-12-29T16:46:15.603Z", + "updatedAt": "2026-01-06T14:17:59.577Z", "postProcessHash": "8525d604740b2cdd7a7ebddb7c53d0c72f7e3f1ea2cc3f622133405008d2955c" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.604Z", + "updatedAt": "2026-01-06T14:17:59.579Z", "postProcessHash": "b62ae615c5414a523d68451a1a6110edd7c1b8ce174bcf60b8601d7c975f95f3" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.606Z", + "updatedAt": "2026-01-06T14:17:59.642Z", "postProcessHash": "cefa888e1bae53386e619b6793a93b82b10c4893f2dafa000a9375844616f6a2" } } @@ -38291,15 +38935,15 @@ "fba919a21ed8cb4d7dc4bb1f59d29b7637063ca0205a822e30dc80b23cd59206": { "ad508ae314b94f1616bc39ffae6ec8ed37936220a175ac097b257c89f8e46e33": { "ru": { - "updatedAt": "2025-12-29T16:46:15.609Z", + "updatedAt": "2026-01-06T14:17:59.592Z", "postProcessHash": "b696b75d585fb5db4bec838c267cb4762a43f193117c2d048a6e09419b8edc8a" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.612Z", + "updatedAt": "2026-01-06T14:17:59.597Z", "postProcessHash": "1dd62f0e0eccd8652d7cef67792edd5cd96b6bba22ed5ad27422c6d9b04f14d6" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.616Z", + "updatedAt": "2026-01-06T14:17:59.602Z", "postProcessHash": "f566045a9411c917803868eb38f98c0a08a0446822a9ed4e12cfba532050c2ec" } } @@ -38307,15 +38951,15 @@ "c842438cd40d698511eca675eb023d5fe1bf3a13266ebc158328957a3b75ecf3": { "5897a48c297f3053b2c2630d36610593cf3a6b1fd0fcf515fd5ea94329540522": { "ru": { - "updatedAt": "2025-12-29T16:46:15.611Z", + "updatedAt": "2026-01-06T14:17:59.596Z", "postProcessHash": "f39b2a5ad3f3c751d4297222fc90b57b9913732329ffaf4c74f86c34c5e651f7" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.613Z", + "updatedAt": "2026-01-06T14:17:59.599Z", "postProcessHash": "7bfbf45f4312897edf27c7f969f6ffea95b269c5577b8bd5814783076dcfb2bd" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.619Z", + "updatedAt": "2026-01-06T14:17:59.607Z", "postProcessHash": "05caad865125ca5085b94e04fc7bf2f9bb4bd0e3a11ec404049fe28ae24208b4" } } @@ -38323,15 +38967,15 @@ "29f102f32292fa34321337052b3b65f0d56a86fda45c86130b144cce2c40c401": { "73134849dc2c75f6c318ec6909ffa434d3b50d982f5905c474342d27d8996a5d": { "jp": { - "updatedAt": "2025-12-29T16:46:15.618Z", + "updatedAt": "2026-01-06T14:17:59.675Z", "postProcessHash": "fc004acabf5e7e3667b7824b8ef0d32c10c2931088ff00f8a18aa68e93b05a1f" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.622Z", + "updatedAt": "2026-01-06T14:17:59.679Z", "postProcessHash": "5df5461c1886127bd45bc881b03d5f2d7f81af260519f1ee7406a198227205be" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.622Z", + "updatedAt": "2026-01-06T14:17:59.679Z", "postProcessHash": "6d3702b4a937d4d06850fbe8c3c4fae9be49dfe20f9b276b7adbda32b009d11c" } } @@ -38339,15 +38983,15 @@ "2a6b285a0c67716af7568dc13fcb95f6b6b3e3fcdebad9425e7886b8f764ac11": { "508d8d134c676b5f4144d247b608332a7cf751f5d54cb03a8d1de52d5af12950": { "jp": { - "updatedAt": "2025-12-29T16:46:15.622Z", + "updatedAt": "2026-01-06T14:17:59.610Z", "postProcessHash": "7e100ccebd5a00daa1ed53d81ec1c0897718c082e6fd55f9e452e040075de7c1" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.626Z", + "updatedAt": "2026-01-06T14:17:59.683Z", "postProcessHash": "300e74fd5fad9be52c141754fff4af6d29b72ab54a91b0eb5f800677d597f1e9" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.701Z", + "updatedAt": "2026-01-06T14:17:59.703Z", "postProcessHash": "81fe568c20b78d113389a35642dbdfe80031c035ea2bf862f42ac3ca7c1aeed3" } } @@ -38355,15 +38999,15 @@ "07c77e3f59fa505d8421432f2b38c13ca0886f18c0101fdc10e61e2dfcb9f73c": { "457dc30952a22bac6a59ecd1af0e9a32606b6c950738f949849859df4f44d3f5": { "jp": { - "updatedAt": "2025-12-29T16:46:15.623Z", + "updatedAt": "2026-01-06T14:17:59.612Z", "postProcessHash": "23a1be836362ab9908af6f0999722981989bf5cd444c0547e8f87d895c7b55d7" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.625Z", + "updatedAt": "2026-01-06T14:17:59.613Z", "postProcessHash": "ad3417feccb7987afca0b99647d6d914eb6a65d1708506f03af545c071e12945" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.724Z", + "updatedAt": "2026-01-06T14:17:59.737Z", "postProcessHash": "39eed97643c4f258f5577450579152e6bd4b4893ed1bba0fb926aa422398d67a" } } @@ -38371,15 +39015,15 @@ "b01f1077b530acd916a7837890486eb1a26dbc6dd70a2e1e9896ae3e867cae0d": { "667ba00bdaafea37a641152d934de02098b1159cada7fb705e2e24354457c59f": { "zh": { - "updatedAt": "2025-12-29T16:46:15.625Z", + "updatedAt": "2026-01-06T14:17:59.613Z", "postProcessHash": "6430606f9d678cec4c76f9055bd60294fe50caa499b4cc208bb7552425c67b51" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.704Z", + "updatedAt": "2026-01-06T14:17:59.709Z", "postProcessHash": "78c6d5bb41ef1408a5a6aec932b318962c78fa5af671d98f9f70dce86f514dc8" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.726Z", + "updatedAt": "2026-01-06T14:17:59.739Z", "postProcessHash": "1caa34092b3b60bdd00c5488ff824838fd2f71dc234e19bc1c0f1fbd4194c392" } } @@ -38387,15 +39031,15 @@ "5c9551fd940755a1775cc4ec559eebcfb8f584204236eeb0306d5da0a53299b4": { "2f0fdddc391765e7552ee5627838eb00561023753da0798f2eb5c308af525494": { "zh": { - "updatedAt": "2025-12-29T16:46:15.627Z", + "updatedAt": "2026-01-06T14:17:59.684Z", "postProcessHash": "221120d2712a4164ab49f86fa38bd340ca14c50c0ffd334fbd136de456194d47" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.634Z", + "updatedAt": "2026-01-06T14:17:59.699Z", "postProcessHash": "299fd3402393d90230fedd71798aa575edff41fe023523d08ea636ec2f888095" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.700Z", + "updatedAt": "2026-01-06T14:17:59.701Z", "postProcessHash": "d7366fc50615f93d1e0e617ae1b45a7dd67c6a72b17110a23532a92cf59503e9" } } @@ -38403,15 +39047,15 @@ "066bcf5bb96b763c2003d736f47036440bb879c4f2e09e7f65c29b1f1944d45c": { "9cb4255ed9fbbd96fc2c3f9c9da9c4ee0ff0c9d09b6cd86b03c9c2ef61c2ccd6": { "zh": { - "updatedAt": "2025-12-29T16:46:15.628Z", + "updatedAt": "2026-01-06T14:17:59.685Z", "postProcessHash": "b4651d24ee77fb6c449d7977efc14503f8ef66c974b0adc58675ffe4fe3fb8b8" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.711Z", + "updatedAt": "2026-01-06T14:17:59.723Z", "postProcessHash": "d53a35c97afe2f3bdf9b5cd874d42a95f502936ac1d0e4dac1489f2a3ec024b8" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.743Z", + "updatedAt": "2026-01-06T14:17:59.825Z", "postProcessHash": "59d5e346e0eeb25aac32f05f0c16917c0971b2783cf2b0f917f0867d255e9a7d" } } @@ -38419,15 +39063,15 @@ "8a07ed456c70ccf2e5b1e0bdcb77dd7552c97c8bbb3728b399756c4c1a3d3c16": { "1d345bf556942e08130277f97ba309e08a4defc9b11d7874d05f76d8fe80117e": { "zh": { - "updatedAt": "2025-12-29T16:46:15.629Z", + "updatedAt": "2026-01-06T14:17:59.688Z", "postProcessHash": "25184cc2753ddb6630b203be29608de09ecb0ab5a53f4b4ed14d301b445daa94" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.701Z", + "updatedAt": "2026-01-06T14:17:59.702Z", "postProcessHash": "beb3012a7bd2a28df7b0676b6f0dadfa6963e957c5f6800e8ef2faadb51a13a1" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.762Z", + "updatedAt": "2026-01-06T14:17:59.785Z", "postProcessHash": "b3711bb0c7ccfd97f807381ae83a68a0ca873d2d1f0b069917cfa38c647f28e9" } } @@ -38435,15 +39079,15 @@ "34053c23f563be8c5012c45bb31fb26ff894ddd268e8039c5ab5270a57d5a0e9": { "1067653cc67b300e13b730c58ed966e85f9448d9e787379a12d12555f7c684f5": { "zh": { - "updatedAt": "2025-12-29T16:46:15.631Z", + "updatedAt": "2026-01-06T14:17:59.694Z", "postProcessHash": "6f06eb2b65ef8749f68b127c466edc4518ff7c5335765164a36cf16a8487a27f" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.739Z", + "updatedAt": "2026-01-06T14:17:59.752Z", "postProcessHash": "441e9617a892f4410cbd0fe29b5ac2c1de2514f8413729b542d63d2bef0bbe53" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.744Z", + "updatedAt": "2026-01-06T14:17:59.758Z", "postProcessHash": "39f0caf110f28cf81acb3d0865d917f656b435833dff0718ec3ed631fd8f264b" } } @@ -38451,15 +39095,15 @@ "731100b9d228c3aca1553b1cf4bd8d2fd48fcb67c3c009826ccfa6cd42e5af0f": { "d5beb0d7bcc6345d3abbff3c12d8b5adb3bd4c1f44a4db6f5ef791743d61a85b": { "jp": { - "updatedAt": "2025-12-29T16:46:15.632Z", + "updatedAt": "2026-01-06T14:17:59.695Z", "postProcessHash": "6c702a1a630583a4cfebaf85333c2e838f0fbad0a8472baaefa7dcb66c56c30b" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.711Z", + "updatedAt": "2026-01-06T14:17:59.723Z", "postProcessHash": "20e67e23e32e47a28063d6a3f533c9cee065171e97fb9a73ef30b95bdfc7bfd0" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.743Z", + "updatedAt": "2026-01-06T14:17:59.758Z", "postProcessHash": "0ed0a09f5c73510b9a0ec331117f0b4298ca9b58c55607c4bbaefad0047ee5ed" } } @@ -38467,15 +39111,15 @@ "d184822d5cfc89db063dd128ece8d14b00e406f95b0f4803cf6e4ce87a0138f9": { "650ff98cca19a2dfdce6d01d01916001f50df800f67d426106aef6f8dc21a8ef": { "ru": { - "updatedAt": "2025-12-29T16:46:15.633Z", + "updatedAt": "2026-01-06T14:17:59.697Z", "postProcessHash": "8e3a8ca712cd595f12d8c2d925a35c3ad7616f04b1790c4d0f4ce43d40b33dfc" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.712Z", + "updatedAt": "2026-01-06T14:17:59.726Z", "postProcessHash": "d64dce269d27eba92414222bf8a066bb9b5e8500af87d3a6fd460197b15898b4" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.740Z", + "updatedAt": "2026-01-06T14:17:59.753Z", "postProcessHash": "433d0c45508c2cd1a99d6e727110595de1c52334667837078fa7c15866d9e29d" } } @@ -38483,15 +39127,15 @@ "2a51ba0d12e9c728e109b7dca2275b4a48bcff179e7647d063830ec8d8223cdc": { "ef069ae7133835935cc3b2334e45cf58592175eaa644bc250bb125d93edaf895": { "ru": { - "updatedAt": "2025-12-29T16:46:15.637Z", + "updatedAt": "2026-01-06T14:17:59.625Z", "postProcessHash": "848b3255760bcd6b1ccc5731b9b35455ef9cdfd8a4460629892b36a5cca5a571" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.666Z", + "updatedAt": "2026-01-06T14:17:59.659Z", "postProcessHash": "cd846f378dc37e5a6e4829fd19aef58e69cc7abf5676a15df0ef9d5d09d85237" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.691Z", + "updatedAt": "2026-01-06T14:17:59.674Z", "postProcessHash": "73d791d6dd26b0bc0387d298b35123584fc5dfada23b77f69da2bfbed6727aaf" } } @@ -38499,15 +39143,15 @@ "c0749831e3781e6755289691077cf95dcfbb596f086ea053bb8cb046c5de2eb6": { "9d3069103752d7ca844a1c183174fa19c2da720dd6d6e36ea0fe5dcc39917307": { "jp": { - "updatedAt": "2025-12-29T16:46:15.638Z", + "updatedAt": "2026-01-06T14:17:59.627Z", "postProcessHash": "a9a8ee8bff02edf641297e9379b93072834c9339f541db0d54ff0074cdb03fd2" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.639Z", + "updatedAt": "2026-01-06T14:17:59.628Z", "postProcessHash": "8b5f6181d498dcd8c1f793eaad69b82eee55c750e9e2bac3246d51914f3e65a9" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.674Z", + "updatedAt": "2026-01-06T14:17:59.669Z", "postProcessHash": "ab1d41138ce10ed3682c8a86ff40ee8b43b6556647b045b8241e9729d6d9e531" } } @@ -38515,15 +39159,15 @@ "e697b454d1fc49d198827e1543a10194e56b3f042dc7a8a09f51c4032a024967": { "e78240e4fe9de0c8b638170d642e4591ce849f6ebd1735f9b13dd3b3313046a6": { "zh": { - "updatedAt": "2025-12-29T16:46:15.641Z", + "updatedAt": "2026-01-06T14:17:59.630Z", "postProcessHash": "f0ecd38f3a35c702f33f76adfd861bbdb9e606aabe4d8cbbef0c606ca5fbd4ce" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.654Z", + "updatedAt": "2026-01-06T14:17:59.645Z", "postProcessHash": "546ce1d785c78cce91f97d8ae46b933b5c2b3e3140145be492e59c1aada9a775" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.659Z", + "updatedAt": "2026-01-06T14:17:59.647Z", "postProcessHash": "c6763a0daf8eb293e6e3870a8497bed6817e3c85f12c4f52c6c8e4c1ead9e627" } } @@ -38531,15 +39175,15 @@ "9cf8463a74fa9744fcb04b32b6a1b8e4212f75510897996ab2da0f5eb7a89081": { "c4a3e51597cdd65cbc3c54d3f2708110fe693fe5c4265912efd9fe5faadd5f7a": { "jp": { - "updatedAt": "2025-12-29T16:46:15.642Z", + "updatedAt": "2026-01-06T14:17:59.631Z", "postProcessHash": "7d2051e8d679abc2c5a40ebe3a34884a713180820edd18e45eacd9c983e69504" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.652Z", + "updatedAt": "2026-01-06T14:17:59.644Z", "postProcessHash": "edeefdc6d83f3b267365e38b3d435ac37b5205b26eed5564d8e2f21790e3a032" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.655Z", + "updatedAt": "2026-01-06T14:17:59.645Z", "postProcessHash": "b3c0aa88180034f3f039077e1bd9341ee5539dbd6eca0e732d1b904af9c54b3d" } } @@ -38547,15 +39191,15 @@ "d40493ee6c8a1f6af511244b9b9937e6187aa38eccc119083e294473e89b817f": { "26974b7ebf57ae1e8b79e9a166cd2bae217add1c9cf31a126161da976230df07": { "zh": { - "updatedAt": "2025-12-29T16:46:15.643Z", + "updatedAt": "2026-01-06T14:17:59.632Z", "postProcessHash": "4dfbc19ae7ab258650785d578634bd8a5a7f0693f763ce7216d45cf9795748ce" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.653Z", + "updatedAt": "2026-01-06T14:17:59.644Z", "postProcessHash": "8c341588148fd5a8810c8dd8359f520557eec0de0edafa60e0d8cbb8b48b20a0" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.669Z", + "updatedAt": "2026-01-06T14:17:59.663Z", "postProcessHash": "59f2bb27a249888f0c5f32c17b24dbd59a939499ed57dec39e0e9cd881875d28" } } @@ -38563,15 +39207,15 @@ "03a64e47d15ea9c4e452a7a41632c8f1cedebd9ac512e6d9c2158ed0cebcfb55": { "210f3e7f4d8d8a9e6bc6d7028700f78cce08134bbd1030dd72e99ae662b42158": { "ru": { - "updatedAt": "2025-12-29T16:46:15.643Z", + "updatedAt": "2026-01-06T14:17:59.632Z", "postProcessHash": "860f919e00c3dc2b25fb6a5a3c2b58d5cdf938e00debd2e941924409436b2723" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.645Z", + "updatedAt": "2026-01-06T14:17:59.634Z", "postProcessHash": "9ea390d3ea6a601ab2216880bf959bca3027fcf96d4c75ea3d0c85e4039e8a54" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.651Z", + "updatedAt": "2026-01-06T14:17:59.642Z", "postProcessHash": "126f73e825f46fd7a9075082efc4b6ee97bb476ec43d4b2a499d17757b9d3b6e" } } @@ -38579,15 +39223,15 @@ "87d26b5a3cc62c4cc3d237e5813e14f3924683579f74d917af9a9953d3ad7416": { "bd93df6bae4bf753d37b0fe9f26d13e6abef36fe8b9ed61de14446f683394fd3": { "ru": { - "updatedAt": "2025-12-29T16:46:15.646Z", + "updatedAt": "2026-01-06T14:17:59.636Z", "postProcessHash": "e319b85ecb5ea9c5d1b2511ad2b33f18f85a51dabc8727426411e2582e7e2366" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.657Z", + "updatedAt": "2026-01-06T14:17:59.647Z", "postProcessHash": "20cecfe0afa36efafaf194f139ab96d812e5350805f1e06ed9d26c6f30868226" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.663Z", + "updatedAt": "2026-01-06T14:17:59.652Z", "postProcessHash": "dc5084273bd9d4b9e7b45a6aca3439842a3d1edcfdd0ebb612c13fbd61db322c" } } @@ -38595,15 +39239,15 @@ "afe4e70e8653db551d971988a930c22281f8e966013b0535118db73f7c2332a3": { "2acb9c3562a5bdb8863e079e3cacfe5afbac31127c871b83c5d1f8d9fef76de6": { "jp": { - "updatedAt": "2025-12-29T16:46:15.652Z", + "updatedAt": "2026-01-06T14:17:59.643Z", "postProcessHash": "b21a605878b0e897ea70b55fd06cbbb6ff5b66cd780703c5bc323a16c44fc3cb" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.669Z", + "updatedAt": "2026-01-06T14:17:59.662Z", "postProcessHash": "3b38b39ef9d40209d2662e06e51374f3f98b1dca41acc673d2cd5440f765a511" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.674Z", + "updatedAt": "2026-01-06T14:17:59.670Z", "postProcessHash": "3818240bd225c6ba5924f9476c6d144f29b98c33d0dfd5bfed04fb3ef693bff6" } } @@ -38611,15 +39255,15 @@ "f0bc04b71f8713b0fde86384a38e5cc00dd5530c8971266e347c4a152cb436f3": { "8bb71abdb762a3d9e8f79b9a3b2575e70f9eaca9e8c71e286ab3044cb75d3f9f": { "ru": { - "updatedAt": "2025-12-29T16:46:15.658Z", + "updatedAt": "2026-01-06T14:17:59.734Z", "postProcessHash": "980729504e6b7ca3d185d6cdabb24d09089af646f77934b6225e16b443d56a61" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.665Z", + "updatedAt": "2026-01-06T14:17:59.749Z", "postProcessHash": "c0298707f197606759f8ea7db52d5c209ec248ab60af53b81ff3dbbaf74e524e" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.745Z", + "updatedAt": "2026-01-06T14:17:59.761Z", "postProcessHash": "23f5e898b09858c21bd02efade5f18ed69f367f86b492b5086282e44686c136d" } } @@ -38627,15 +39271,15 @@ "b4ba09ba3ecaf3c9d1318712990b1b5ecac9bb3d55da90d75e8d904c07a67af3": { "9505c9ef2f9feb202edd41acc1388d5bd6c856160fdf5a088e1a2455143f664b": { "jp": { - "updatedAt": "2025-12-29T16:46:15.660Z", + "updatedAt": "2026-01-06T14:17:59.648Z", "postProcessHash": "70bc207c39740f42fc96863f160cd032cb75b0a3e0b6366ff8d71f742fdf5961" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.667Z", + "updatedAt": "2026-01-06T14:17:59.660Z", "postProcessHash": "8d0cfa29fae0924eabd4f25fc450201f3ae8c6f521d8415cbea890fe44b6bf89" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.693Z", + "updatedAt": "2026-01-06T14:17:59.677Z", "postProcessHash": "435edb7c8c7ea397ece1e37c6f479821de5ba61c3d8b8a7a9456e97e17cddf08" } } @@ -38643,15 +39287,15 @@ "95317faccfc70118aa8926292dc4a6e0055d5f86c871f72f9f33e87830ebc10b": { "1a71fea9afcb1479e284f0185eea904192d58b57434a8837496eb8f5810c5d2a": { "ru": { - "updatedAt": "2025-12-29T16:46:15.670Z", + "updatedAt": "2026-01-06T14:17:59.664Z", "postProcessHash": "401ca4f3875a6b947a34234566a9bf29db95858e493f965ff7bb886628ead97c" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.693Z", + "updatedAt": "2026-01-06T14:17:59.676Z", "postProcessHash": "ed51d5b1ca0e5b55f695d1edf400f2aa0acbc5acad284192209ee56c162247a3" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.693Z", + "updatedAt": "2026-01-06T14:17:59.678Z", "postProcessHash": "f2d60df3d157431bdd5d7613d363527ba3fdd66885a1805d27e4eb15f125938b" } } @@ -38659,15 +39303,15 @@ "ccda381a3da3bd22f39b2ac9cd985a731f5d44e565638d85f78beab4fff6de05": { "2e6de2cd6d3e1a0cfe188ed1d29543b6bfbc506a3792b1e8048325e256f53aa7": { "zh": { - "updatedAt": "2025-12-29T16:46:15.695Z", + "updatedAt": "2026-01-06T14:17:59.681Z", "postProcessHash": "1d23696bc015824227190e0f04c92fd3501260f6f74e35e4e15bcf4f7c80ced8" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.712Z", + "updatedAt": "2026-01-06T14:17:59.725Z", "postProcessHash": "26044f1570d128b49aa051407baf7908e6ee3179bd89ee0339ac7cc54e5bcf13" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.763Z", + "updatedAt": "2026-01-06T14:17:59.787Z", "postProcessHash": "6985418176cd3b50473ee5650ac8e7b55326ea1f360dd7751c560a5450b1b5c3" } } @@ -38675,15 +39319,15 @@ "3d152527fccedb2bbd0accc2be321321d39bcf6e07cc06229220a309874ca5e7": { "8052dc9dc8a6eb2ed316dedd609724a3be38fbc4d268da8b3d418c9354e335a2": { "zh": { - "updatedAt": "2025-12-29T16:46:15.695Z", + "updatedAt": "2026-01-06T14:17:59.689Z", "postProcessHash": "ed03d134244c3ecab3996e6fcf3dda95acd8d5c6eb23426e07e97f9d1dbce284" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.699Z", + "updatedAt": "2026-01-06T14:17:59.698Z", "postProcessHash": "219dd24f5ab22e7fd770f3e57e6fb0c46bdfb7970d41b4ca807de60429c5858c" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.706Z", + "updatedAt": "2026-01-06T14:17:59.711Z", "postProcessHash": "d233281d9a7dae6cda0df3a744d70bce9cc4af799f7d434836488468b365f41e" } } @@ -38691,15 +39335,15 @@ "22ca1d81d6eb6d97e70640b0f32098041449dfe59098b3c2370fe3f1e7636b18": { "651c0b0e7175c23a1e799c61229dcf5c183764442193357694298a714b98fa31": { "ru": { - "updatedAt": "2025-12-29T16:46:15.696Z", + "updatedAt": "2026-01-06T14:17:59.690Z", "postProcessHash": "a4cec4221e735a7fa23be67058589bd58c990cdc8c5852c386b2d89f877ef7d4" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.698Z", + "updatedAt": "2026-01-06T14:17:59.696Z", "postProcessHash": "9ab0a6671df579ab2c16334e7f02d605cb723618890c9bc5417981ff1fb96374" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.796Z", + "updatedAt": "2026-01-06T14:17:59.829Z", "postProcessHash": "6aaef0c1f494110e9b3dffcb057c249b738e6d725def9bba3b7d8588e69b48d1" } } @@ -38707,15 +39351,15 @@ "9edc2b3b8e114da3507dc0da73f4c2247a3e4accef2cea5001d72be659abd08e": { "8004359ed3899df389bb9fcbc3564a520a634c811d8f1ae5b565248ecfac912b": { "jp": { - "updatedAt": "2025-12-29T16:46:15.696Z", + "updatedAt": "2026-01-06T14:17:59.692Z", "postProcessHash": "8573bf51c0a4d151b8db02407f2b9bd73c3c6273a345b19e5077986aad7521f6" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.767Z", + "updatedAt": "2026-01-06T14:17:59.793Z", "postProcessHash": "330c4d10a3a5b2da5f4217ce0b7c5515da404a6bf2db2b058e79ae0799d31ca8" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.785Z", + "updatedAt": "2026-01-06T14:17:59.812Z", "postProcessHash": "b218fe309ff527cf377fcebd91744fc1c854ad742a23d4c5ded31a7fb41ecfe0" } } @@ -38723,15 +39367,15 @@ "d50028e0f2b346ee42e3fa739f9cc0e41d8ecc541814353e70da5ed24703a0f1": { "f84721631867d434911ef2de4e16365c7e415c049b20b6007565d7b2efa007db": { "jp": { - "updatedAt": "2025-12-29T16:46:15.697Z", + "updatedAt": "2026-01-06T14:17:59.692Z", "postProcessHash": "75d40b0ca9a2ed7baa9bd2d488f27534997297dd2edaf3a4e56ba7b49c07a1bb" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.769Z", + "updatedAt": "2026-01-06T14:17:59.795Z", "postProcessHash": "245c7dc23dc75497a746c6d44b1b22a92b6e05e6b3bc5317b3ec268eb1e2493c" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.775Z", + "updatedAt": "2026-01-06T14:17:59.801Z", "postProcessHash": "9329fdc153444f80c257864a62898147470c5cefea5130a9e0ec807eb396b38b" } } @@ -38739,15 +39383,15 @@ "a057a8b73d13196ec81c673b7b8aebb22eb2ed1291e7f157127c4a9080f0f8f9": { "da5e77151db0fc2843828fbd9527cdd24bca4d7be5d5ad178fc0c06abc119550": { "ru": { - "updatedAt": "2025-12-29T16:46:15.698Z", + "updatedAt": "2026-01-06T14:17:59.697Z", "postProcessHash": "420c10411360d6d88904ade42b38188b10bd110cf5e0516acee12e30e1801aca" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.772Z", + "updatedAt": "2026-01-06T14:17:59.797Z", "postProcessHash": "fce9ae3989699404f138dde96ff3db28358654ba5b86b8c19b52d66a5afd48e3" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.797Z", + "updatedAt": "2026-01-06T14:17:59.830Z", "postProcessHash": "e004cf912e27e4033a27604b27586f1671125be79a7a431b76c62c70f4d00f12" } } @@ -38755,15 +39399,15 @@ "8de67bab20d6f714db67c1466e272914f381e8f56149766b2255bbaa4b8f5c35": { "609df252c8bab2a31e6aa47b29610f92b1208007d54cb1d463de5eb0d6aec19d": { "jp": { - "updatedAt": "2025-12-29T16:46:15.699Z", + "updatedAt": "2026-01-06T14:17:59.700Z", "postProcessHash": "f272bcbe3a10ac52d9031cd687142e75fb72d5b89fc17482da0e321169edcad2" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.708Z", + "updatedAt": "2026-01-06T14:17:59.716Z", "postProcessHash": "6929028a7c1d8183da8a2731a1143c74a4b514fd43c7fb5400dbd1c17148a931" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.709Z", + "updatedAt": "2026-01-06T14:17:59.717Z", "postProcessHash": "767f88078c08d25f21dc43c99bf72400a52f73671243d97f4c299e071e3eb473" } } @@ -38771,15 +39415,15 @@ "93462a9f48514ff706c050c27e66ed2649ac94a300548e90d297896f97f52064": { "c290fbe63c6e188a9aea424d194001d7fbfb06bf2cb38c4865847eba65aca730": { "zh": { - "updatedAt": "2025-12-29T16:46:15.700Z", + "updatedAt": "2026-01-06T14:17:59.701Z", "postProcessHash": "c81670e80940a892111ccd1f62ace7735c8ed772f147066eb327cd73c8dd85c1" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.740Z", + "updatedAt": "2026-01-06T14:17:59.753Z", "postProcessHash": "52756bea742790bf13b9117bc85eedd79df505b634fb01069d0ef4fa701a054c" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.740Z", + "updatedAt": "2026-01-06T14:17:59.754Z", "postProcessHash": "9a291fe69a18b288c671ed4d503129aef68b93ac328fa2dbd5dc5214b6abf1b4" } } @@ -38787,15 +39431,15 @@ "7a3786a0670e99fd28d32c177476b9feb208b620f0ad0f131f02c0e5f7a19913": { "81825815ff586e0cc0b6f8eb495c3ec1f6b033b23cb310836d238d10e753ffc2": { "jp": { - "updatedAt": "2025-12-29T16:46:15.703Z", + "updatedAt": "2026-01-06T14:17:59.706Z", "postProcessHash": "7ced425865fbe441aa687f904379c6a10e3ab30ed7442d7169582644da11a475" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.738Z", + "updatedAt": "2026-01-06T14:17:59.751Z", "postProcessHash": "fe6b9589aa349986659b40ce4deda0b2387d856678b548ffc89d950799424b7b" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.739Z", + "updatedAt": "2026-01-06T14:17:59.751Z", "postProcessHash": "fca930698969cf1caa817153e67385135d8fcea7fcfc8c04c2980e099dc2df6d" } } @@ -38803,15 +39447,15 @@ "9035153c5e8308e28532250f92556306c65ddd9bdcadc3eb155d7c759c7c3ed8": { "31d6a71703f4371e0364f1c78dfe3aab8e07db9086979d911bdb96a380453c3e": { "zh": { - "updatedAt": "2025-12-29T16:46:15.704Z", + "updatedAt": "2026-01-06T14:17:59.708Z", "postProcessHash": "eacff2d0d8131c9b9f41b0f0456578ed10ea94f45ad7491516436261378b4761" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.734Z", + "updatedAt": "2026-01-06T14:17:59.747Z", "postProcessHash": "2a1350eb55bb7f79a79e2361c826b47e234f29c8bb01a41d360b0451a084301a" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.766Z", + "updatedAt": "2026-01-06T14:17:59.791Z", "postProcessHash": "807e5256e14f474a0d3b039cdd784fe3eea7281704c7f71b386a6dd71ebf0eea" } } @@ -38819,15 +39463,15 @@ "165315f70f934db3da98e60680fd25eb1bc971c43f8a899cfed70178f315e566": { "4644fd2ed38824c2be4c17afe001462f929887dff9abd07feb7d6ff28020ad13": { "jp": { - "updatedAt": "2025-12-29T16:46:15.705Z", + "updatedAt": "2026-01-06T14:17:59.710Z", "postProcessHash": "1d5cf24ae775d4a4acdb453b102e82db1d0e539be883c633bdeb63d0f151599b" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.710Z", + "updatedAt": "2026-01-06T14:17:59.721Z", "postProcessHash": "e7fd1a572eefb69ed64bed2d5cf02336fef3fa47c0ae13975f19267476b9f82d" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.725Z", + "updatedAt": "2026-01-06T14:17:59.738Z", "postProcessHash": "9a2fb63613dc8567e9f76e28343d01b54bf6499cdfb939eba12c71f4e5120cca" } } @@ -38835,15 +39479,15 @@ "bbfadc4ee4bb121315c04c0876889ffc3058b07dafd35022fb0eb228edc250f5": { "c22102d67c9ff9a3c48e2427d7809f4f7c8475f226a0ee01e325e42a33a886ea": { "ru": { - "updatedAt": "2025-12-29T16:46:15.705Z", + "updatedAt": "2026-01-06T14:17:59.711Z", "postProcessHash": "57625626de1be50ad26bc7dfb31067684d1da6cac4dff4a636fefc4504d0f827" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.714Z", + "updatedAt": "2026-01-06T14:17:59.729Z", "postProcessHash": "51b3711400683217aee8ab532930b4baaa78766388c1bfd1c359202ff1da089d" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.801Z", + "updatedAt": "2026-01-06T14:17:59.836Z", "postProcessHash": "6c06fc152e8046e539a0e426bccd0fa6e95b36f1a14299642565c7b14d6c462e" } } @@ -38851,15 +39495,15 @@ "e899761a0ec05d85e94d1bbf609ba23d08d836c227fc63174fe070e343be20a7": { "49739ed16159f6c566ea7b0864123100f5d1ffb63b0e819cca9595d8b0b77ae7": { "jp": { - "updatedAt": "2025-12-29T16:46:15.706Z", + "updatedAt": "2026-01-06T14:17:59.712Z", "postProcessHash": "fe31a4b5d37cea74f90f717329388c6db22e668573201cb3129cf3f3ba7d97ae" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.729Z", + "updatedAt": "2026-01-06T14:17:59.741Z", "postProcessHash": "987f14ac3b1aa7562d1b487f15b96ef8a8ee41b85eb803693ec5c96dfdb0a3f6" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.776Z", + "updatedAt": "2026-01-06T14:17:59.801Z", "postProcessHash": "9b1dc67c2acb29ecde55cd765461c74f4cf99c1ac4e965e0c2e9bd3bed75f74e" } } @@ -38867,15 +39511,15 @@ "8d83251b303ce74736cf113240cff170697ef6ddffaadee24f30880bee5e9a34": { "3b251231f14b3872cbf5a8e239d8bd6b581dea43ec25180efeb55b3b24bb2465": { "ru": { - "updatedAt": "2025-12-29T16:46:15.709Z", + "updatedAt": "2026-01-06T14:17:59.720Z", "postProcessHash": "0af68632f36173b04a438417227b5e8be31f9b5d9c3f18297540b8be62583784" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.719Z", + "updatedAt": "2026-01-06T14:17:59.732Z", "postProcessHash": "22dfab20021f9aa4932e1dcc4be6789daf61573dc6d946db839842d15573e3f1" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.724Z", + "updatedAt": "2026-01-06T14:17:59.736Z", "postProcessHash": "c58bae6b245b3f22614e9a78d3b1b2e0620c3957ec9314cef249a16e512bfc1f" } } @@ -38883,15 +39527,15 @@ "f6bfa147a484ac345c385ea40d356a8789c5c7755752075d2917b3d0004636a4": { "6e089058bfafe46eba66bb67ee08382a85211ac7e9828b6783106c648d8a2522": { "zh": { - "updatedAt": "2025-12-29T16:46:15.713Z", + "updatedAt": "2026-01-06T14:17:59.728Z", "postProcessHash": "48be53f5b35f8a0b59a9ad77bbed11433cfe77e943aa5ef400ddc7b0518559dc" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.731Z", + "updatedAt": "2026-01-06T14:17:59.743Z", "postProcessHash": "e83f61dbb96e735c2fd796bb096c05a2b6b097eef652a6398bb2cce97bbdda6d" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.782Z", + "updatedAt": "2026-01-06T14:17:59.806Z", "postProcessHash": "78679b9dd35b580b05907b31a9f50310b81823b6387d837f78976ac89d1d1fdb" } } @@ -38899,15 +39543,15 @@ "b1143460babb03337ff09a18baa6e397aa4ae460b6c1d1490132892f2d4db134": { "8a2ee1a50b5c2cbd8d5d83f1eab885f6f716c8b2b883cbafb5411c5f5ad6f302": { "jp": { - "updatedAt": "2025-12-29T16:46:15.714Z", + "updatedAt": "2026-01-06T14:17:59.729Z", "postProcessHash": "949056ee3c43b94fb2f936c2b173f9d0fcddbacaeac1d622f2a219e407c5b71c" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.718Z", + "updatedAt": "2026-01-06T14:17:59.777Z", "postProcessHash": "fc95b3ebad9667aefc0ccb179f1d6ce0c5d824c09ae70d1e7f13a6ca2f43ef2c" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.773Z", + "updatedAt": "2026-01-06T14:17:59.798Z", "postProcessHash": "2c9d9427161ba0b3806e30b8c845b5c6df94649726d67d72a2bdcd764881d537" } } @@ -38915,15 +39559,15 @@ "b8c3dad4cd60e2362c5e9999e5946f95cb87df2e741741acf9eba62fc936eb0f": { "154c2e552d860ed9b3d67cda4423b2cff92a720c668126809b0f5cd57783685b": { "jp": { - "updatedAt": "2025-12-29T16:46:15.715Z", + "updatedAt": "2026-01-06T14:17:59.775Z", "postProcessHash": "7f6fe148c06bb340cdf8e1ee78bc9b89079a442b9571f6b0585d10133e81f55f" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.723Z", + "updatedAt": "2026-01-06T14:17:59.780Z", "postProcessHash": "b35d2f7edf14c4d9d8f88f651961a7a72b1bd36ba7b343e13fae9e11a9481ba2" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.784Z", + "updatedAt": "2026-01-06T14:17:59.811Z", "postProcessHash": "9c5370ec1bf5a7b9635466ef27a56ce015e908729a72e0a8f65d729060da0ddf" } } @@ -38931,15 +39575,15 @@ "7f478b1594c900aeb1a816ff4f24b309aafb8539c509df6c0367042d5e035fdc": { "cbf5f39379e3109a1dabb026a582c1b343cc818d431d3402f6ee10752d22989b": { "ru": { - "updatedAt": "2025-12-29T16:46:15.716Z", + "updatedAt": "2026-01-06T14:17:59.776Z", "postProcessHash": "2e07ebbf682ec168a0ed638ccd2f2f02b40d35a782505c229dcd265bb2f6e3b8" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.735Z", + "updatedAt": "2026-01-06T14:17:59.782Z", "postProcessHash": "54de51951ba80485515062d544f8d28265e621119597d8b505f5df751e13c5f6" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.763Z", + "updatedAt": "2026-01-06T14:17:59.786Z", "postProcessHash": "057362129fc41572f6734ee7a2d7768c7f24969aa87c0b57aa17c26277e870c6" } } @@ -38947,15 +39591,15 @@ "b9382fbf4b767758f1a6a3992e4b8edc4ec08d809dc86c3026b591b20b303d46": { "1ed4b8f0af7c02eb76d5e8e33c6cd5c1cbd02e4a8a06237fcec3d268c8249dc1": { "jp": { - "updatedAt": "2025-12-29T16:46:15.717Z", + "updatedAt": "2026-01-06T14:17:59.777Z", "postProcessHash": "e009f1b0ef61cc41b824d8ec7da0939749be2be3474d9e33140313151799f710" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.719Z", + "updatedAt": "2026-01-06T14:17:59.778Z", "postProcessHash": "2767ea0ab96ce951e6478a5ffc00d2300c02ae292d9154e430d0937e544f04e5" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.781Z", + "updatedAt": "2026-01-06T14:17:59.805Z", "postProcessHash": "0c4fef5804cf42957a935394fbdbc50a01c4e5c0e35138fb24eb6c9477998076" } } @@ -38963,15 +39607,15 @@ "5420df889e04c3784f0ccb5c0cb4249b2ad531d1850de9cca09fbd406afd6e7d": { "ac85c2e3fd00322daba8c009cadbe1c37400f8a2288703b2d56a762c4044de3a": { "zh": { - "updatedAt": "2025-12-29T16:46:15.717Z", + "updatedAt": "2026-01-06T14:17:59.731Z", "postProcessHash": "e507c72575ec036dfb076ee3ad7f559e162666e99d42ca30cb86874a2dd5f658" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.741Z", + "updatedAt": "2026-01-06T14:17:59.810Z", "postProcessHash": "712bfb49131abb51e2982470e16dad38b6e01c0c3df9ae7d965158d2e3651f6e" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.742Z", + "updatedAt": "2026-01-06T14:17:59.757Z", "postProcessHash": "ba46795b3298fcfa0a1a154335595d1dab233b6c1a9e936e13f8dd93a563f396" } } @@ -38979,15 +39623,15 @@ "dc381ac42ca4d6b8ce4010cf4224871bdc068060758c16597d5f7244681a7014": { "7c0253f2cbb012dc2a0ee138201d8c6f6237d594b4bfd9ebd98078ed9c72c37e": { "jp": { - "updatedAt": "2025-12-29T16:46:15.720Z", + "updatedAt": "2026-01-06T14:17:59.732Z", "postProcessHash": "8cdbf58269dac12fad65f4222a90f8535f641eb7c5b746e0a1991ca19a7291a5" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.778Z", + "updatedAt": "2026-01-06T14:17:59.802Z", "postProcessHash": "7cd644ee44d135ddf08a59839dfb9d2a3c6c32b2bfd83eeb976569463a97a368" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.780Z", + "updatedAt": "2026-01-06T14:17:59.804Z", "postProcessHash": "e5fb2bbd55ed575a1d1c6e87a1c9ce84a96a4656ba392424d0d91bdfb67b83bd" } } @@ -38995,15 +39639,15 @@ "099330b4bd9f57dd2ad7c818a3d331f238cbf1fe531426574ff1eae19142a99f": { "16b3885ede7ba17dc9fb22c68384b92a52b259a5c587e554e439332a7a959ab6": { "jp": { - "updatedAt": "2025-12-29T16:46:15.720Z", + "updatedAt": "2026-01-06T14:17:59.778Z", "postProcessHash": "e94a7dbd167fcda945e50c1b6846f724c66c6095a5d0abc33c30aa56a57bf2e1" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.781Z", + "updatedAt": "2026-01-06T14:17:59.806Z", "postProcessHash": "b5452695518bb2e0ac6aa49152075a7564c3b36e034619f15927bb05c5520145" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.783Z", + "updatedAt": "2026-01-06T14:17:59.808Z", "postProcessHash": "9cca7c06a7df96509938ae49311a2811674a25cbb49e62b96a3353bd794c029f" } } @@ -39011,15 +39655,15 @@ "4426cf97836339c54285ad825dd6402f9da7a5739d0f6ca5609ceb1f544aeead": { "9f24a704b73ae161a96fa7cba08456e39ba3f8998b9c7a95cda8e16d13ac7347": { "jp": { - "updatedAt": "2025-12-29T16:46:15.722Z", + "updatedAt": "2026-01-06T14:17:59.733Z", "postProcessHash": "2890854f038a66b7e512e8316ccdfffce5cacfbf8ead987b472d9148a9453bff" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.736Z", + "updatedAt": "2026-01-06T14:17:59.784Z", "postProcessHash": "c034dcb2590c068561b97910e6326c928556e507cebc150e8218a32eb9828fa6" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.765Z", + "updatedAt": "2026-01-06T14:17:59.790Z", "postProcessHash": "0795b04e45f56d70e68689cdd4b39cf871e3bbbd2d050532fc3705f159739e3f" } } @@ -39027,15 +39671,15 @@ "ddc75e474c73bab1f9d8963045de1ca62bd0375831edbceae35cc2fc30ddbc41": { "a49aeb59a336d142a57ed6a9298555d9943ed9cc82772ec188dfb340d90145e5": { "jp": { - "updatedAt": "2025-12-29T16:46:15.723Z", + "updatedAt": "2026-01-06T14:17:59.735Z", "postProcessHash": "4bff16083584bab2409a58ef50d90d1edb5669e76a6d34476cb69c723225c069" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.730Z", + "updatedAt": "2026-01-06T14:17:59.741Z", "postProcessHash": "3b56d270046aea2fe158372f50a3c8ff399e68b588cc3ee6f0eb4ca8673878dd" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.734Z", + "updatedAt": "2026-01-06T14:17:59.747Z", "postProcessHash": "8ae366df9af8fe0cb5d0ffdfa0f40d1e283a39ca7c857a92f80df1454a988313" } } @@ -39043,15 +39687,15 @@ "657d3fbe2c8e315825fec6c6ac486e6e9f5fbda2ac23921ca56c855bbf5d9cb7": { "088eac2c73ae2d721d5708c29233495b68a7c0d2f8bb878545b8f702a4ce78d1": { "jp": { - "updatedAt": "2025-12-29T16:46:15.727Z", + "updatedAt": "2026-01-06T14:17:59.781Z", "postProcessHash": "98be76b9ee51362931377d7bf5fc37637a04ba2af4d3cbbf143dc1ada7031b28" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.736Z", + "updatedAt": "2026-01-06T14:17:59.783Z", "postProcessHash": "b9513fe1baf6ec278aeb7425ee3728615ef010f570e252ed6658b11e4148c30a" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.791Z", + "updatedAt": "2026-01-06T14:17:59.821Z", "postProcessHash": "188f93125e1392821963802f95e0e9e9bbf2faeaf2fddde0d4424c09b0bd77ac" } } @@ -39059,15 +39703,15 @@ "649970f7e8251847ac32cf3b3d07f5ad6d3f21406d60998e5963db00917adb58": { "def746a4a3dbf15636eaf2798af5fdc0baa1a702ad0185b40b839364eed8b8d2": { "zh": { - "updatedAt": "2025-12-29T16:46:15.728Z", + "updatedAt": "2026-01-06T14:17:59.782Z", "postProcessHash": "d75d569a4a33655ebdee186c7a28ddc32ba91e938d05e5f19bab4587233b4cf7" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.764Z", + "updatedAt": "2026-01-06T14:17:59.788Z", "postProcessHash": "8eb1c999e33c5af0b5f916d3e4fcfb5268dfd6b31c8e6f769a8853ffd659f81f" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.784Z", + "updatedAt": "2026-01-06T14:17:59.809Z", "postProcessHash": "630f816a132e5a276c4f8e341772e271c4732d53db7258186be19554545e678f" } } @@ -39075,15 +39719,15 @@ "c42f5cd2d55821bc812d1aabc4674791a1bb83eb0cf816d7caf866b50c49c211": { "5086e9f7368541db65a1d457bb33a8270c54535d5abbedb1b54f3e41ea6606ab": { "ru": { - "updatedAt": "2025-12-29T16:46:15.731Z", + "updatedAt": "2026-01-06T14:17:59.742Z", "postProcessHash": "d4fadbe44cf90e8f965bd34ba53d0343dd2f61908bd3640e5cc2ce90ec23bccb" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.733Z", + "updatedAt": "2026-01-06T14:17:59.746Z", "postProcessHash": "4dfd0f99f47d659d977bf2276a15a5b2148eb643b07933f57847efda6ea6da65" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.786Z", + "updatedAt": "2026-01-06T14:17:59.814Z", "postProcessHash": "d36cccb11bac59854cdc06dce978266edbf8b699f255fa3e470e7139e3b5d4d6" } } @@ -39091,15 +39735,15 @@ "b432f187aae7e66f2b76ec31bae617d4e878b0e14614a0b2b8596fb9eceb69f8": { "0efe968350155543833e58baafc06ab26217c390c5ee3d39089d6148ad668a2c": { "ru": { - "updatedAt": "2025-12-29T16:46:15.733Z", + "updatedAt": "2026-01-06T14:17:59.745Z", "postProcessHash": "34faaad8c8336d21640e9d9b125a7af1c194db832d47f67bfa3a6a10d4dce4b7" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.770Z", + "updatedAt": "2026-01-06T14:17:59.796Z", "postProcessHash": "e745e14f631d8b4bd8e21afe78579a74b06b954d51a807ea796fbef486f180ee" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.790Z", + "updatedAt": "2026-01-06T14:17:59.820Z", "postProcessHash": "85b01f1df0804f6128d3ef8e2fa37f3338b5cba984e2c65522baab60ba2c18d2" } } @@ -39107,15 +39751,15 @@ "52f3a444571bd39246889cb91e18219caeeb26b36a08ae1060b8804448b29f5c": { "88094af403327f366009ddb0559631fd7b6d0af93edfe6dd17459790539ec484": { "ru": { - "updatedAt": "2025-12-29T16:46:15.737Z", + "updatedAt": "2026-01-06T14:17:59.749Z", "postProcessHash": "8518f59453cdf06b766104eb308fbe294205f8f497afbceb7a4e6ce2a0a01e49" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.737Z", + "updatedAt": "2026-01-06T14:17:59.750Z", "postProcessHash": "de1f9c7b6f94fc14ee60ed1b75000efb5e06b555c16bbeb8595d5f495419d950" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.741Z", + "updatedAt": "2026-01-06T14:17:59.755Z", "postProcessHash": "60dd374277226f539ba1ee652b198a5729ea421e94995fe18640b41074fa2f20" } } @@ -39123,15 +39767,15 @@ "c292ebb4d061c3e56898c83e4f94eb2c27d1614646a15af4b029867c19618b9e": { "32f90832c4e6f789013deb625f4c9027e63352a6bf62847f16020d06a5990526": { "zh": { - "updatedAt": "2025-12-29T16:46:15.757Z", + "updatedAt": "2026-01-06T14:17:59.878Z", "postProcessHash": "7eb0bb11c833ba7d1d52fb5e5a6ac5695009c74c41b89e656202b71765f7d1d4" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.831Z", + "updatedAt": "2026-01-06T14:17:59.887Z", "postProcessHash": "f4dacb3a72c087cae6772ea0f1849e10326b69afa561810f3d110b4cbe3510be" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.835Z", + "updatedAt": "2026-01-06T14:17:59.893Z", "postProcessHash": "74976fd04d35d1cd98e781ba47e13a9f0894ecc2d568f63a154640d36537add8" } } @@ -39139,15 +39783,15 @@ "91cc43bcb0a37386cdc96ea130fc4ba1d1afd46deba388f17a37b0bba438f135": { "09fdd819a3e1cd17f714477d255508a281d10e335be985b3755d28fe6a2310cd": { "ru": { - "updatedAt": "2025-12-29T16:46:15.758Z", + "updatedAt": "2026-01-06T14:17:59.879Z", "postProcessHash": "837c7c1bb0daf9011402fefffcf247e9ae3b74d27ac4e40d23917ede1da23434" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.830Z", + "updatedAt": "2026-01-06T14:17:59.885Z", "postProcessHash": "b762a309968a64e23144333d66ec5a31b552f9a353d20a1960cb4a5c537cf4c3" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.830Z", + "updatedAt": "2026-01-06T14:17:59.885Z", "postProcessHash": "974d097f02c19f3f60c3341b7459b61d8983df8aa16cf07aa310309312236a5b" } } @@ -39155,15 +39799,15 @@ "7e08a27a2047c9f3f9ba35c864bdc9fa208c568957c4532af42c278c98ee887e": { "ac7de3c47165531688736bd7adca639263345f9652e2c1b21030c648f03877e0": { "ru": { - "updatedAt": "2025-12-29T16:46:15.758Z", + "updatedAt": "2026-01-06T14:17:59.880Z", "postProcessHash": "de3c2f7429fa1c53fa17957ddcf1ab0a681fb7c2c5b7e7d7c1dcf55d098a3034" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.760Z", + "updatedAt": "2026-01-06T14:17:59.881Z", "postProcessHash": "afcb4097d4c3469770fc5e0ab7ab19568573dad0e5ae15042d307513dc0c5cc5" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.836Z", + "updatedAt": "2026-01-06T14:17:59.895Z", "postProcessHash": "08fad86d0f5f7332968690d23fa4b15eecba9ddc67c52183f962c21ab9e201b4" } } @@ -39171,15 +39815,15 @@ "5629faee95b763fb7664ac9da0b4986de53da6b099c699b7bf640a88d799b546": { "853191bea76e4778d6741daeac5d19d429447bb400b5af117901a07021b9c033": { "zh": { - "updatedAt": "2025-12-29T16:46:15.759Z", + "updatedAt": "2026-01-06T14:17:59.881Z", "postProcessHash": "6239099beb258fbadecb91fcd292c58b439f19a4fe68215f9857a680384af21b" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.834Z", + "updatedAt": "2026-01-06T14:17:59.891Z", "postProcessHash": "bb895bb81f3bcc6d0d7e547c502146eb230b8b5955df38b987318ebad15b87fe" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.845Z", + "updatedAt": "2026-01-06T14:17:59.909Z", "postProcessHash": "6984047c18d203456a9513f4926b3961ace947c32407eb06967a43513c0463ac" } } @@ -39187,15 +39831,15 @@ "26c5217ac0b15e701ddd1cab87ad158f675c8288e082d4de695e7cd7341b1f94": { "277655e8bbef09f8d431eb22616cbbab6c5ec14eb3d1df2a8fd9793e9c3e6552": { "zh": { - "updatedAt": "2025-12-29T16:46:15.760Z", + "updatedAt": "2026-01-06T14:17:59.883Z", "postProcessHash": "96aeb3b688a50a92756832ea0ba2cfbddbbcd026b3113bc0158dbaea809cf8d7" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.832Z", + "updatedAt": "2026-01-06T14:17:59.889Z", "postProcessHash": "b27f5f03d8419dcbf3667b3985f0edb14c4fec9828db66d80566927316b8f419" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.834Z", + "updatedAt": "2026-01-06T14:17:59.891Z", "postProcessHash": "87aa9406f9e1a1a75eec5790ac6685e34a96b3d0476437c5426873043831a9b9" } } @@ -39203,15 +39847,15 @@ "e693ed330362071f0bed35c488ea566e62b025a0108d2af684c4b739814668c7": { "7edfd82b84ab42688cdb9c67fb7b25354e9dd58b072f0f768bbe3611b9bb813b": { "ru": { - "updatedAt": "2025-12-29T16:46:15.761Z", + "updatedAt": "2026-01-06T14:17:59.784Z", "postProcessHash": "3952dee925996676c7f2d7406a2b89e26c0511970ee54e135f18fcbf400ec03a" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.767Z", + "updatedAt": "2026-01-06T14:17:59.793Z", "postProcessHash": "875012e2c039b577550dbabef65934ddc750e1d3b83e4b513073849456f64592" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.777Z", + "updatedAt": "2026-01-06T14:17:59.802Z", "postProcessHash": "2021e1515c9e328ed818e64a4d969b4b76fdccd7c5acd19daf037e18f69b4f66" } } @@ -39219,15 +39863,15 @@ "ad7d46851e655ce03aafac502e5beaf346b8e4e55b09321a6be9f00518250c82": { "4ca75b76b1ae1232b53655b14db95f9111d2ab13f088a71f8eb64f1d9e229b2d": { "jp": { - "updatedAt": "2025-12-29T16:46:15.761Z", + "updatedAt": "2026-01-06T14:17:59.785Z", "postProcessHash": "1942e3bd0e2e10ed580f939f9d6136494ac2a8f69b93ba26956266ac6cfa09ed" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.774Z", + "updatedAt": "2026-01-06T14:17:59.799Z", "postProcessHash": "4607b082fa70f85625b12fb816cb57ddbff97c4bc42676983d73c9012517485f" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.785Z", + "updatedAt": "2026-01-06T14:17:59.813Z", "postProcessHash": "676b5ca8963bc56cd76a984981205d4c50a17d17e71af5d05a43856857223156" } } @@ -39235,15 +39879,15 @@ "b936e8bce35d7852ed85e8f4556e13a77f9b23e70464987183cd9c115654149a": { "ec761cbd43aed7c0d8b6d4da587500699658228a5cadd12e00bbecb61e14aa78": { "jp": { - "updatedAt": "2025-12-29T16:46:15.762Z", + "updatedAt": "2026-01-06T14:17:59.786Z", "postProcessHash": "7ecbbd2fc42e9a4589c500c4fd8d35c52a02928121535edf1375ac325200ee59" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.766Z", + "updatedAt": "2026-01-06T14:17:59.791Z", "postProcessHash": "9056da2de888d9281c3edd84e6eb8dddb58f87e8517a7f0e5513d3b84cbd01cd" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.772Z", + "updatedAt": "2026-01-06T14:17:59.797Z", "postProcessHash": "0c729bb51964848b9eaa45266b66b518de1526bb11aeafd9346c71ed487b2dae" } } @@ -39251,15 +39895,15 @@ "b2464f5c3b7f06035deaa6e1abe09762c660414271e5d09c762654bb3fdb58d7": { "b6b4b6dda16b5f17f3ba5c631e7a87d48d01820acef469942e4fd3a61997ee16": { "zh": { - "updatedAt": "2025-12-29T16:46:15.764Z", + "updatedAt": "2026-01-06T14:17:59.788Z", "postProcessHash": "ccb2cc4f03237557818796945c0a7faa24a9e36d9e184836e1f1b4dc58588730" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.766Z", + "updatedAt": "2026-01-06T14:17:59.792Z", "postProcessHash": "6aa13d6bff2151de498aff7bfc2535acd9213b881c3c6c6d02a3d6e3d355fa6d" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.789Z", + "updatedAt": "2026-01-06T14:17:59.817Z", "postProcessHash": "f7d3890489b42478467cb644ae0045512d4b5654e8d224417301d07a7c4beae7" } } @@ -39267,15 +39911,15 @@ "cc6091671a0ce3c01bfa58c684bc0d4bfabfbc344a488d404f2548e4eef75ac0": { "4a4333974f20073b6cc7abb436e35c546bb0eee19fe10f4433908801e2557649": { "zh": { - "updatedAt": "2025-12-29T16:46:15.780Z", + "updatedAt": "2026-01-06T14:17:59.804Z", "postProcessHash": "7b228705566f45576e41625a45469e82db8f6b23f96661ae6b844d29e57ae0f7" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.797Z", + "updatedAt": "2026-01-06T14:17:59.831Z", "postProcessHash": "fb071653ca39bcb27f1039f0433fea14a320f788fbd956850226babc100f7bd8" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.798Z", + "updatedAt": "2026-01-06T14:17:59.831Z", "postProcessHash": "688c29a80d14d911a3d9e46acca3eb4b64d5f53f09b88a3597f97c7bd26cf508" } } @@ -39283,15 +39927,15 @@ "b099f45f04f4dbfd64f1c5446660c4cb55e3d6eb1100fba17647193a0f7e3926": { "a1ae9927fd3e193e5123754546b76f002f80a3deba2866f25cbf8cc01c139192": { "ru": { - "updatedAt": "2025-12-29T16:46:15.783Z", + "updatedAt": "2026-01-06T14:17:59.808Z", "postProcessHash": "0037481ce17ce0870510187dc67772018f07e5b04f114c9b741ddda350fa1f5a" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.788Z", + "updatedAt": "2026-01-06T14:17:59.817Z", "postProcessHash": "28badef6735c172e00e07cc214b9c180b200a962f3dd8461ecf5539efdbc5946" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.794Z", + "updatedAt": "2026-01-06T14:17:59.826Z", "postProcessHash": "a625110132dbbe593d6a5e791f6b855ce9092c4757da1820b1da1e865afab890" } } @@ -39299,15 +39943,15 @@ "a6739e229f85ceafdf7b44538dac1ec493be2575ce64dc9901e516185fc9d11f": { "bd79735ec8d05bef71b608b49df4ce728def1403defc0766f7604ea838beefaf": { "zh": { - "updatedAt": "2025-12-29T16:46:15.787Z", + "updatedAt": "2026-01-06T14:17:59.815Z", "postProcessHash": "30b0e52c7aa94eba63401770d068310e1acfe16ddb2af4aacc2918f17de00701" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.793Z", + "updatedAt": "2026-01-06T14:17:59.824Z", "postProcessHash": "2799c69b2da0069519989c684d67b30e39fba73dde356675d660ec23d4bbe7fe" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.798Z", + "updatedAt": "2026-01-06T14:17:59.832Z", "postProcessHash": "5cc85db5cbe099080fddded092e6caab711cc97637f8f05bab1a5bd0e9f4faf5" } } @@ -39315,15 +39959,15 @@ "0a11c2f13e9438957a8acb8e864973715b859c0fff72ab4af67edd0260ce6fb8": { "f5c877dd11ff712ac4ebb48198bb0cdb3274c87cbd1501583cd9720f135ff9b1": { "ru": { - "updatedAt": "2025-12-29T16:46:15.832Z", + "updatedAt": "2026-01-06T14:17:59.888Z", "postProcessHash": "e5ced0c0b61e87122511b44332fc33d3ebb04ca782b0ec61c38b721252ef683c" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.837Z", + "updatedAt": "2026-01-06T14:17:59.896Z", "postProcessHash": "557114d5665059f7b81fcec6687bcbb418e46ca436e428e2dce889e6843d49aa" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.839Z", + "updatedAt": "2026-01-06T14:17:59.899Z", "postProcessHash": "7b2f3bdc3311eacee3d73316f8dce74d76cbfcf30bf46264914bbd022ea8ac37" } } @@ -39331,15 +39975,15 @@ "d1834c533cec164f9e17883b668432cca6a4df374f6c14f7a167dc24187d0fa6": { "4599519fc8ef0303104fd24c0ecd980b6b812cb66e5b1721146121806f6c2f00": { "jp": { - "updatedAt": "2025-12-29T16:46:15.835Z", + "updatedAt": "2026-01-06T14:17:59.892Z", "postProcessHash": "918c42df93c94c9d02963f6ddb2dc6230fc83883a7d012608f57f978c141bfa6" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.848Z", + "updatedAt": "2026-01-06T14:17:59.915Z", "postProcessHash": "8c90f73fee40f42571935aa30f3f4481b24900e315fd7c77a06420b7dd458038" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.850Z", + "updatedAt": "2026-01-06T14:17:59.920Z", "postProcessHash": "cf81b0e1b0171802c87c1c3f18f9f04386d9f3349ca8a5da4188f2708e47b5cc" } } @@ -39347,15 +39991,15 @@ "3ace25cd7096c85cc67436f18851b8583d8389a2a11f87cda49383c555c32c2b": { "3fb1b5769dddb107285e40d1bd253c6d2bc6ba80ad8a0cb21c4be95b92b2e52a": { "ru": { - "updatedAt": "2025-12-29T16:46:15.836Z", + "updatedAt": "2026-01-06T14:17:59.894Z", "postProcessHash": "ee7d3d9cc786bf44ba8aff4640e04b2e8e5377dca177c0523c4fbb5bede3875e" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.837Z", + "updatedAt": "2026-01-06T14:17:59.896Z", "postProcessHash": "60cbcc08a31e142e1efab795d728d8af5342bc0c6aa1d82ff58c363960751519" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.841Z", + "updatedAt": "2026-01-06T14:17:59.903Z", "postProcessHash": "264c55e632e743b2652c745f9f30abe282e3d25f3e606a05debb6d8d1e50fa87" } } @@ -39363,15 +40007,15 @@ "c41a3b8019500817b50088717fce5350fd079de8a904acb9f0b0ede59a0cd9ef": { "3b39934d0903c9856f636d35a1b38da8c7a93ca1f1d3fc53e051ab8e27db6779": { "zh": { - "updatedAt": "2025-12-29T16:46:15.841Z", + "updatedAt": "2026-01-06T14:17:59.901Z", "postProcessHash": "d9e6bac7287e726598bf2019b794cfed070778ac31400f4e3c12ccc22cdffe09" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.844Z", + "updatedAt": "2026-01-06T14:17:59.906Z", "postProcessHash": "ea7b1eeec664a0147b7439abd9fc81ad134c908daf4b0991ac3c4359fcbbe00e" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.845Z", + "updatedAt": "2026-01-06T14:17:59.910Z", "postProcessHash": "7a06859a235ff448e1fb85f75b549e9480d50252563f4dd567eb530ce479f28a" } } @@ -39379,15 +40023,15 @@ "fbaf6dd1d593789aa1afb9a07fe286fc06b93f02723a3df2101aff65ac64cca5": { "988590607c53718011d7d7788e110f875d7797017009d47f55232b4f418f4d70": { "ru": { - "updatedAt": "2025-12-29T16:46:15.843Z", + "updatedAt": "2026-01-06T14:17:59.905Z", "postProcessHash": "c01dd3805272f63b4fea957730cee71ee9355751ebf014ff05331da3be51f881" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.844Z", + "updatedAt": "2026-01-06T14:17:59.907Z", "postProcessHash": "5582960733bf34dc1d7516f819d19255b78901d98faf6b5e0cf9ff1011067cf8" }, "zh": { - "updatedAt": "2025-12-29T16:46:15.847Z", + "updatedAt": "2026-01-06T14:17:59.913Z", "postProcessHash": "2deea152a0b02c82245fd5fabb0f864e76ffb59ba53d1f22ca219f42d969a764" } } @@ -39395,15 +40039,15 @@ "598bb811164d1a5fcb941d710cc2febb47a9026a29589043a221c47f09694481": { "0223a105185c874a145d353d39c0933da28a5057b75a6567ae061bf850842231": { "zh": { - "updatedAt": "2025-12-29T16:46:15.846Z", + "updatedAt": "2026-01-06T14:17:59.912Z", "postProcessHash": "ceec6bd8f25f66a3d072893f57f3d9488b7d6aa44fbc4d95e99ddaac6a8b121e" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.847Z", + "updatedAt": "2026-01-06T14:17:59.914Z", "postProcessHash": "2e93661510234e5fbc19fef1d450b0afa065f1bc836ca6da0cacc64646a4e4e5" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.848Z", + "updatedAt": "2026-01-06T14:17:59.916Z", "postProcessHash": "f26adfb3ceefbb4e9c6faf3dc9860096bd3e8eba7a7052bf032d5e0700111aeb" } } @@ -39411,18 +40055,82 @@ "afef44e8761913f568ff1edf58d2af2c63adb44e075ca57873f65fe66239feeb": { "60eaaf8822ce9c3dd1bd9e88132df29d3705d969913c5021b47a3a53f620ed7d": { "zh": { - "updatedAt": "2025-12-29T16:46:15.849Z", + "updatedAt": "2026-01-06T14:17:59.917Z", "postProcessHash": "1306971039054a9bbaaba786d8a554a28b86dad20783da5d656c7e9e6b5385c4" }, "jp": { - "updatedAt": "2025-12-29T16:46:15.849Z", + "updatedAt": "2026-01-06T14:17:59.918Z", "postProcessHash": "cbc8728224ee5df38908da6c9d345ffd3920a76861275c9901ed1bc8c7af8845" }, "ru": { - "updatedAt": "2025-12-29T16:46:15.850Z", + "updatedAt": "2026-01-06T14:17:59.919Z", "postProcessHash": "6a7001bd743f4fda8c0096011290d5e809c59fce12ea4bb2c376c9526a120efd" } } + }, + "6c91d3c013ac7bc7d495e9fcbe37229a06f30ba87a51f471a120d0444f68182e": { + "704db75218a1c57a28c12794c14c9636e6dda82ba2f63764fbc2a7d327dd3047": { + "zh": { + "updatedAt": "2026-01-06T14:17:58.137Z", + "postProcessHash": "80df6d5c2f8db1364f555b197b9c10b55e492f20738fbf0affce7dc70b7a78b4" + }, + "jp": { + "updatedAt": "2026-01-06T14:17:58.138Z", + "postProcessHash": "11ca135258e3f8bf66cb1ff5da3128aa521761d105e340ecc56e8d042f75d064" + }, + "ru": { + "updatedAt": "2026-01-06T14:17:58.139Z", + "postProcessHash": "538ca2772ca6f59256990fb31b2b594303fe7325f3de5f5a6cd9cb6bc137b991" + } + } + }, + "4473d032f9f09b58816fa33eefa9c58e89d8155dc2f80dfc6156231505bfa050": { + "149558e56598d90d1c2cc57b2a1c7daffe1a2a4ecd88bbf4a54a029b31bf0e6b": { + "zh": { + "updatedAt": "2026-01-06T14:17:58.140Z", + "postProcessHash": "402ef8213a20675de67c416794f68f78ac59003f844127ecd17b27bec2fdc707" + }, + "ru": { + "updatedAt": "2026-01-06T14:17:58.144Z", + "postProcessHash": "e0815e4a5c8224154c51564d73d05b042aea95bbe8d86f8998ec3d75a1a577d3" + }, + "jp": { + "updatedAt": "2026-01-06T14:17:58.148Z", + "postProcessHash": "42379f08c4970e3e6ad4db99f0b4faec5aca010d792788390b01348ea528a642" + } + } + }, + "735fe86ef8a25c059c0006eae7083d28d5946ee1f56566ba6ea8641ca6162d58": { + "d29b70314b816c74b0d4166bf0f0a4634b1e143f8a3b1be20ec65b99325c7f8f": { + "ru": { + "updatedAt": "2026-01-06T14:17:58.857Z", + "postProcessHash": "b9493d95779c8c24d128e878c7cea913656c3125ff1e1d4d2ebf2581130054c4" + }, + "zh": { + "updatedAt": "2026-01-06T14:17:58.860Z", + "postProcessHash": "779b4a06f79fe2c0eee58c4952686528f2a815e57e731cb8c92ee6a57af20a17" + }, + "jp": { + "updatedAt": "2026-01-06T14:17:58.864Z", + "postProcessHash": "da5a4accb6e6f1aafb1668089acdc4f3ab6acda924d30f3a7a53814afea78d0c" + } + } + }, + "dd0498524d241a92eaf18b12615bc9bccb4a99ba435344388297466036d4be50": { + "e62c4344d6dac040cfde2e9f4a6ecf292f528756fed05054a561accc5d84efc1": { + "ru": { + "updatedAt": "2026-01-06T14:18:00.886Z", + "postProcessHash": "61a3a3885d9d34e5c1d7edb21ff43c016f999b311dee690f1eb3863f8b613737" + }, + "zh": { + "updatedAt": "2026-01-06T14:18:00.886Z", + "postProcessHash": "cd58746c9a9c32e4122b90656ab5dd5230d6ac2e7da7f941e3ac9beac188bfbb" + }, + "jp": { + "updatedAt": "2026-01-06T14:18:00.887Z", + "postProcessHash": "0941b5ca56787cb11a55048a01832e317ba1ca84fa6174a6a21a3ffad51bc66c" + } + } } } } diff --git a/i18n/jp/docusaurus-plugin-content-blog/current/profiling-clickhouse-with-llvm-xray.mdx b/i18n/jp/docusaurus-plugin-content-blog/current/profiling-clickhouse-with-llvm-xray.mdx index 21316c6e16c..e04aeb461de 100644 --- a/i18n/jp/docusaurus-plugin-content-blog/current/profiling-clickhouse-with-llvm-xray.mdx +++ b/i18n/jp/docusaurus-plugin-content-blog/current/profiling-clickhouse-with-llvm-xray.mdx @@ -38,7 +38,7 @@ PROFILE](https://clickhouse.com/docs/sql-reference/statements/system#instrument- [system.symbols](https://clickhouse.com/docs/operations/system-tables/symbols) システムテーブルから取得できます。たとえば、実行にどれくらい時間がかかるかを確認するのに便利な `sleepForNanoseconds` 関数をプロファイリングしたいとします。 ```sql -SYSTEM INSTRUMENT ADD `sleepForNanoseconds` PROFILE +SYSTEM INSTRUMENT ADD 'sleepForNanoseconds' PROFILE ``` その後、プロファイリングしたい時間のあいだ動かしてから、停止します。 diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/_placeholders/changelog/_index.md b/i18n/jp/docusaurus-plugin-content-docs/current/_placeholders/changelog/_index.md deleted file mode 100644 index 3b6780b1a1e..00000000000 --- a/i18n/jp/docusaurus-plugin-content-docs/current/_placeholders/changelog/_index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -description: '2025 年の変更履歴' -note: 'このファイルは yarn build で生成されています' -slug: /whats-new/changelog/ -sidebar_position: 2 -sidebar_label: '2025' -title: '変更履歴 2025' -doc_type: 'changelog' ---- \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md b/i18n/jp/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md index 488a1c0ac20..57d0b3c7a02 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md @@ -83,6 +83,21 @@ ClickHouse はオープンソースであるため、ClickHouse の従業員だ | 名前 | デフォルト | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- | +| [allow_experimental_replacing_merge_with_cleanup](/operations/settings/merge-tree-settings#allow_experimental_replacing_merge_with_cleanup) | `0` | +| [allow_experimental_reverse_key](/operations/settings/merge-tree-settings#allow_experimental_reverse_key) | `0` | +| [allow_remote_fs_zero_copy_replication](/operations/settings/merge-tree-settings#allow_remote_fs_zero_copy_replication) | `0` | +| [enable_replacing_merge_with_cleanup_for_min_age_to_force_merge](/operations/settings/merge-tree-settings#enable_replacing_merge_with_cleanup_for_min_age_to_force_merge) | `0` | +| [force_read_through_cache_for_merges](/operations/settings/merge-tree-settings#force_read_through_cache_for_merges) | `0` | +| [merge_selector_algorithm](/operations/settings/merge-tree-settings#merge_selector_algorithm) | `Simple` | +| [merge_selector_enable_heuristic_to_lower_max_parts_to_merge_at_once](/operations/settings/merge-tree-settings#merge_selector_enable_heuristic_to_lower_max_parts_to_merge_at_once) | `0` | +| [merge_selector_heuristic_to_lower_max_parts_to_merge_at_once_exponent](/operations/settings/merge-tree-settings#merge_selector_heuristic_to_lower_max_parts_to_merge_at_once_exponent) | `5` | +| [notify_newest_block_number](/operations/settings/merge-tree-settings#notify_newest_block_number) | `0` | +| [part_moves_between_shards_delay_seconds](/operations/settings/merge-tree-settings#part_moves_between_shards_delay_seconds) | `30` | +| [part_moves_between_shards_enable](/operations/settings/merge-tree-settings#part_moves_between_shards_enable) | `0` | +| [remote_fs_zero_copy_path_compatible_mode](/operations/settings/merge-tree-settings#remote_fs_zero_copy_path_compatible_mode) | `0` | +| [remote_fs_zero_copy_zookeeper_path](/operations/settings/merge-tree-settings#remote_fs_zero_copy_zookeeper_path) | `/clickhouse/zero_copy` | +| [remove_rolled_back_parts_immediately](/operations/settings/merge-tree-settings#remove_rolled_back_parts_immediately) | `1` | +| [shared_merge_tree_virtual_parts_discovery_batch](/operations/settings/merge-tree-settings#shared_merge_tree_virtual_parts_discovery_batch) | `1` | | [allow_experimental_kafka_offsets_storage_in_keeper](/operations/settings/settings#allow_experimental_kafka_offsets_storage_in_keeper) | `0` | | [allow_experimental_delta_lake_writes](/operations/settings/settings#allow_experimental_delta_lake_writes) | `0` | | [automatic_parallel_replicas_mode](/operations/settings/settings#automatic_parallel_replicas_mode) | `0` | @@ -143,21 +158,7 @@ ClickHouse はオープンソースであるため、ClickHouse の従業員だ | [promql_evaluation_time](/operations/settings/settings#promql_evaluation_time) | `auto` | | [allow_experimental_alias_table_engine](/operations/settings/settings#allow_experimental_alias_table_engine) | `0` | | [use_paimon_partition_pruning](/operations/settings/settings#use_paimon_partition_pruning) | `0` | +| [allow_experimental_object_storage_queue_hive_partitioning](/operations/settings/settings#allow_experimental_object_storage_queue_hive_partitioning) | `0` | | [query_plan_optimize_join_order_algorithm](/operations/settings/settings#query_plan_optimize_join_order_algorithm) | `greedy` | -| [allow_experimental_replacing_merge_with_cleanup](/operations/settings/merge-tree-settings#allow_experimental_replacing_merge_with_cleanup) | `0` | -| [allow_experimental_reverse_key](/operations/settings/merge-tree-settings#allow_experimental_reverse_key) | `0` | -| [allow_remote_fs_zero_copy_replication](/operations/settings/merge-tree-settings#allow_remote_fs_zero_copy_replication) | `0` | -| [enable_replacing_merge_with_cleanup_for_min_age_to_force_merge](/operations/settings/merge-tree-settings#enable_replacing_merge_with_cleanup_for_min_age_to_force_merge) | `0` | -| [force_read_through_cache_for_merges](/operations/settings/merge-tree-settings#force_read_through_cache_for_merges) | `0` | -| [merge_selector_algorithm](/operations/settings/merge-tree-settings#merge_selector_algorithm) | `Simple` | -| [merge_selector_enable_heuristic_to_lower_max_parts_to_merge_at_once](/operations/settings/merge-tree-settings#merge_selector_enable_heuristic_to_lower_max_parts_to_merge_at_once) | `0` | -| [merge_selector_heuristic_to_lower_max_parts_to_merge_at_once_exponent](/operations/settings/merge-tree-settings#merge_selector_heuristic_to_lower_max_parts_to_merge_at_once_exponent) | `5` | -| [notify_newest_block_number](/operations/settings/merge-tree-settings#notify_newest_block_number) | `0` | -| [part_moves_between_shards_delay_seconds](/operations/settings/merge-tree-settings#part_moves_between_shards_delay_seconds) | `30` | -| [part_moves_between_shards_enable](/operations/settings/merge-tree-settings#part_moves_between_shards_enable) | `0` | -| [remote_fs_zero_copy_path_compatible_mode](/operations/settings/merge-tree-settings#remote_fs_zero_copy_path_compatible_mode) | `0` | -| [remote_fs_zero_copy_zookeeper_path](/operations/settings/merge-tree-settings#remote_fs_zero_copy_zookeeper_path) | `/clickhouse/zero_copy` | -| [remove_rolled_back_parts_immediately](/operations/settings/merge-tree-settings#remove_rolled_back_parts_immediately) | `1` | -| [shared_merge_tree_virtual_parts_discovery_batch](/operations/settings/merge-tree-settings#shared_merge_tree_virtual_parts_discovery_batch) | `1` | {/*AUTOGENERATED_END*/ } diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_status.md b/i18n/jp/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_status.md index 1a1f3e832ff..6deadc8f8e9 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_status.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_status.md @@ -40,14 +40,25 @@ Enterprise ティアのサービスでは、すべてのリリースチャネル \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/annindexes.md b/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/annindexes.md index f4e3d0122d7..f134bf71d8c 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/annindexes.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/annindexes.md @@ -9,6 +9,7 @@ doc_type: 'guide' import ExperimentalBadge from '@theme/badges/ExperimentalBadge'; + # 厳密ベクトル検索と近似ベクトル検索 {#exact-and-approximate-vector-search} 多次元(ベクトル)空間において、ある点に最も近い N 個の点を見つける問題は、[nearest neighbor search](https://en.wikipedia.org/wiki/Nearest_neighbor_search)(最近傍探索)、または略してベクトル検索と呼ばれます。 @@ -30,9 +31,10 @@ LIMIT ベクトル空間内の点は、配列型の `vectors` 列に格納されます。例えば [Array(Float64)](../../../sql-reference/data-types/array.md)、[Array(Float32)](../../../sql-reference/data-types/array.md)、または [Array(BFloat16)](../../../sql-reference/data-types/array.md) です。 参照ベクトルは定数配列であり、共通テーブル式として与えられます。 -`<DistanceFunction>` は、参照点と格納されているすべての点との距離を計算します。 +`` は、参照点と格納されているすべての点との距離を計算します。 この処理には、利用可能な任意の [distance function](/sql-reference/functions/distance-functions) を使用できます。 -`<N>` は、返すべき近傍点の数を指定します。 +`` は、返すべき近傍点の数を指定します。 + ## 厳密なベクトル検索 {#exact-nearest-neighbor-search} @@ -64,6 +66,7 @@ LIMIT 3; └────┴─────────┘ ``` + ## 近似ベクトル検索 {#approximate-nearest-neighbor-search} ### ベクトル類似度インデックス {#vector-similarity-index} @@ -90,7 +93,7 @@ ENGINE = MergeTree ORDER BY [...] ``` -別の方法として、既存のテーブルにベクトル類似インデックスを追加するには次のようにします。 +別の方法として、既存のテーブルにベクトル類似度インデックスを追加する場合は、次のようにします。 ```sql ALTER TABLE table ADD INDEX vectors TYPE vector_similarity(, , ) [GRANULARITY ]; @@ -136,14 +139,15 @@ ORDER BY [...] これらの HNSW 固有パラメータが利用可能です: -* `` は近傍グラフ内のベクトルの量子化方式を制御します。指定可能な値は `f64`、`f32`、`f16`、`bf16`、`i8`、`b1` です。デフォルト値は `bf16` です。このパラメータは、基盤となるカラム内でのベクトル表現には影響しない点に注意してください。 +* `` は近接グラフ内のベクトルの量子化方式を制御します。指定可能な値は `f64`、`f32`、`f16`、`bf16`、`i8`、`b1` です。デフォルト値は `bf16` です。このパラメータは、基盤となるカラム内でのベクトル表現には影響しない点に注意してください。 * `` は、グラフ内の各ノードあたりの近傍ノード数を制御します。これは HNSW のハイパーパラメータ `M` としても知られています。デフォルト値は `32` です。値 `0` はデフォルト値を使用することを意味します。 * `` は、HNSW グラフ構築時の動的候補リストのサイズを制御します。これは HNSW のハイパーパラメータ `ef_construction` としても知られています。デフォルト値は `128` です。値 `0` はデフォルト値を使用することを意味します。 すべての HNSW 固有パラメータのデフォルト値は、ほとんどのユースケースで良好に機能します。 したがって、HNSW 固有パラメータのカスタマイズは推奨しません。 -さらなる制限があります: +さらに、次の制約が適用されます。 + * ベクター類似度インデックスは、[Array(Float32)](../../../sql-reference/data-types/array.md)、[Array(Float64)](../../../sql-reference/data-types/array.md)、または [Array(BFloat16)](../../../sql-reference/data-types/array.md) 型の列に対してのみ作成できます。`Array(Nullable(Float32))` や `Array(LowCardinality(Float32))` のような nullable や low-cardinality の浮動小数点数配列は使用できません。 * ベクター類似度インデックスは単一列に対してのみ作成しなければなりません。 @@ -169,10 +173,10 @@ Storage consumption = Number of vectors * Dimension * Size of column data type Storage consumption = 1 million * 1536 * 4 (for Float32) = 6.1 GB ``` -ベクトル類似度インデックスで検索を行うには、ディスクから主メモリに完全に読み込まれている必要があります。 -同様に、ベクトルインデックスもメモリ上で完全に構築してからディスクに保存されます。 +ベクター類似度インデックスで検索を行うには、ディスクからメインメモリに完全に読み込まれている必要があります。 +同様に、ベクターインデックスもメモリ上で完全に構築してからディスクに保存されます。 -ベクトルインデックスをロードする際に必要なメモリ使用量: +ベクターインデックスをロードする際に必要なメモリ使用量: ```text Memory for vectors in the index (mv) = Number of vectors * Dimension * Size of quantized data type @@ -181,7 +185,7 @@ Memory for in-memory graph (mg) = Number of vectors * hnsw_max_connections_per_l Memory consumption: mv + mg ``` -[DBpedia データセット](https://huggingface.co/datasets/KShivendu/dbpedia-entities-openai-1M) の例: +[dbpedia データセット](https://huggingface.co/datasets/KShivendu/dbpedia-entities-openai-1M) の例: ```text Memory for vectors in the index (mv) = 1 million * 1536 * 2 (for BFloat16) = 3072 MB @@ -192,13 +196,14 @@ Memory consumption = 3072 + 512 = 3584 MB 上記の式には、事前割り当てバッファやキャッシュなど、ベクトル類似性インデックスがランタイムのデータ構造を割り当てるために必要となる追加メモリは含まれていません。 -#### ベクトル類似性インデックスの使用 {#using-a-vector-similarity-index} + +#### ベクター類似性インデックスの使用 {#using-a-vector-similarity-index} :::note -ベクトル類似性インデックスを使用するには、[compatibility](../../../operations/settings/settings.md) 設定を `''`(デフォルト値)、または `'25.1'` 以降に設定する必要があります。 +ベクター類似性インデックスを使用するには、設定 [compatibility](../../../operations/settings/settings.md) の値が `''`(デフォルト値)、または `'25.1'` 以降である必要があります。 ::: -ベクトル類似性インデックスは、次の形式の SELECT クエリをサポートします。 +ベクター類似性インデックスは、次の形式の SELECT クエリをサポートします。 ```sql WITH [...] AS reference_vector @@ -209,12 +214,12 @@ ORDER BY (vectors, reference_vector) LIMIT ``` -ClickHouse のクエリオプティマイザは、上記のクエリテンプレートと照合し、利用可能なベクトル類似度インデックスを活用します。 -SELECT クエリ内の距離関数がインデックス定義で指定されている距離関数と同じである場合にのみ、そのクエリはベクトル類似度インデックスを使用できます。 +ClickHouse のクエリオプティマイザは、上記のクエリテンプレートに一致させ、利用可能なベクター類似性インデックスを活用しようとします。 +クエリがベクター類似性インデックスを使用できるのは、SELECT クエリ内の距離関数がインデックス定義の距離関数と同じ場合のみです。 -上級ユーザーは、検索時の候補リストのサイズを調整するために、[hnsw_candidate_list_size_for_search](../../../operations/settings/settings.md#hnsw_candidate_list_size_for_search)(HNSW のハイパーパラメータ「ef_search」としても知られる)に任意の値を設定できます(例: `SELECT [...] SETTINGS hnsw_candidate_list_size_for_search = `)。 -この設定のデフォルト値である 256 は、ほとんどのユースケースで良好に機能します。 -この値を大きくすると精度は向上しますが、その分パフォーマンスが低下します。 +上級ユーザーは、検索時の候補リストのサイズを調整するために、設定 [hnsw_candidate_list_size_for_search](../../../operations/settings/settings.md#hnsw_candidate_list_size_for_search)(HNSW ハイパーパラメータ「ef_search」とも呼ばれます)にカスタム値を指定できます(例: `SELECT [...] SETTINGS hnsw_candidate_list_size_for_search = `)。 +この設定のデフォルト値 256 は、ほとんどのユースケースで良好に動作します。 +設定値を高くすると精度は向上しますが、その代わりにパフォーマンスが低下します。 クエリでベクター類似性インデックスを使用する場合、ClickHouse は SELECT クエリで指定された LIMIT `` が妥当な範囲内かどうかをチェックします。 より具体的には、`` が設定値 [max_limit_for_vector_search_queries](../../../operations/settings/settings.md#max_limit_for_vector_search_queries)(デフォルト値は 100)より大きい場合はエラーが返されます。 @@ -233,7 +238,7 @@ ORDER BY L2Distance(vec, reference_vec) ASC LIMIT 10; ``` -返す場合があります +次のような結果を返すことがあります ```result ┌─explain─────────────────────────────────────────────────────────────────────────────────────────┐ @@ -278,15 +283,16 @@ ClickHouse は、post-filtering あるいは pre-filtering 戦略を用いてこ これらの戦略には、それぞれ異なるトレードオフがあります。 -* Post-filtering には、`LIMIT ` 句で要求された行数より少ない結果しか返せない可能性があるという一般的な問題があります。これは、ベクトル類似度インデックスから返された 1 行以上の結果行が、追加フィルターを満たさない場合に発生します。 -* Pre-filtering は、一般的には未解決の問題です。一部の特化したベクトルデータベースは pre-filtering アルゴリズムを提供していますが、ほとんどのリレーショナルデータベース(ClickHouse を含む)は、インデックスを使わない総当たり走査、すなわち厳密な近傍探索へフォールバックします。 -どの戦略が使用されるかは、フィルター条件に依存します。 +* ポストフィルタリングには、`LIMIT ` 句で要求された行数より少ない行しか返さない可能性がある、という一般的な問題があります。この状況は、ベクター類似性インデックスによって返された 1 行以上の結果行が追加フィルターを満たさない場合に発生します。 +* プリフィルタリングは、一般的に未解決の課題です。特定の専用ベクトルデータベースではプリフィルタリングアルゴリズムを提供していますが、ほとんどのリレーショナルデータベース(ClickHouse を含む)は厳密な近傍検索、すなわちインデックスなしの総当たりスキャンにフォールバックします。 + +どの戦略が使われるかは、フィルター条件に依存します。 -*追加フィルターがパーティションキーの一部である場合* +*追加のフィルターがパーティションキーの一部である* 追加のフィルター条件がパーティションキーの一部である場合、ClickHouse はパーティションプルーニングを適用します。 -例として、テーブルが列 `year` によってレンジパーティションされており、次のクエリが実行されるとします。 +例として、テーブルがカラム `year` によってレンジパーティションされており、次のクエリが実行されるとします。 ```sql WITH [0., 2.] AS reference_vec @@ -297,11 +303,11 @@ ORDER BY L2Distance(vec, reference_vec) ASC LIMIT 3; ``` -ClickHouse は、2025 年のパーティション以外をすべてプルーニングします。 +ClickHouse は 2025 年のものを除くすべてのパーティションをプルーニングします。 -*追加フィルタはインデックスを使って評価できない場合があります* +*追加のフィルターはインデックスを用いて評価できない* -追加のフィルタ条件がインデックス(PRIMARY KEY インデックス、スキッピングインデックス)を使って評価できない場合、ClickHouse はポストフィルタリングを適用します。 +追加のフィルター条件がインデックス(プライマリキーインデックス、skipping index)を用いて評価できない場合、ClickHouse はポストフィルタリングを適用します。 *追加のフィルターはプライマリキーインデックスを用いて評価できる* @@ -348,12 +354,13 @@ SETTING vector_search_index_fetch_multiplier = 3.0; ``` ClickHouse は各パーツのベクターインデックスから 3.0 x 10 = 30 個の最近傍を取得し、その後に追加のフィルタを評価します。 -最も近い 10 個の近傍だけが返されます。 +そのうち最も近い 10 個だけが返されます。 `vector_search_index_fetch_multiplier` を設定することでこの問題を軽減できることに注意してください。 -しかし、極端なケース(非常に選択性の高い WHERE 条件)では、要求された行数 N 未満の行しか返されない可能性があります。 +しかし、極端なケース(非常に選択性の高い WHERE 条件)では、要求した行数 N 未満しか返されない可能性があります。 **リスコアリング(再スコアリング)** + ClickHouse のスキップインデックスは一般的にグラニュールレベルでフィルタリングします。つまり、スキップインデックスでのルックアップは(内部的に)一致する可能性のあるグラニュールのリストを返し、その後のスキャンで読み取るデータ量を削減します。 これはスキップインデックス全般ではうまく機能しますが、ベクター類似性インデックスの場合には「粒度のミスマッチ」を引き起こします。 詳しく言うと、ベクター類似性インデックスは、ある参照ベクターに対して最も類似した N 個のベクターの行番号を決定しますが、その後これらの行番号をグラニュール番号に外挿する必要があります。 @@ -397,9 +404,10 @@ Query id: a2a9d0c8-a525-45c1-96ca-c5a11fa66f47 ``` :::note -`vector_search_with_rescoring = 0` で再スコアリングなしのクエリを実行し、かつ並列レプリカを有効にしている場合、再スコアリングにフォールバックして実行されることがあります。 +`vector_search_with_rescoring = 0` でリスコアリングを無効にし、かつ parallel replicas を有効にして実行したクエリでも、リスコアリングにフォールバックする場合があります。 ::: + #### パフォーマンスチューニング {#performance-tuning} **圧縮のチューニング** @@ -437,19 +445,21 @@ CREATE TABLE tab(id Int32, vec Array(Float32) CODEC(NONE), INDEX idx vec TYPE ve **インデックス使用のチューニング** -SELECT クエリでベクトル類似性インデックスを使用するには、それらをメインメモリにロードする必要があります。 -同じベクトル類似性インデックスが繰り返しメインメモリにロードされることを避けるため、ClickHouse はそのようなインデックス用の専用インメモリキャッシュを提供しています。 -このキャッシュが大きいほど、不要なロードの回数は少なくなります。 -キャッシュの最大サイズは、サーバー設定 [vector_similarity_index_cache_size](../../../operations/server-configuration-parameters/settings.md#vector_similarity_index_cache_size) で設定できます。 -デフォルトでは、このキャッシュは最大 5 GB まで拡張できます。 +SELECT クエリは、ベクトル類似度インデックスを利用するために、それらをメインメモリにロードする必要があります。 +同じベクトル類似度インデックスが繰り返しメインメモリにロードされるのを避けるために、ClickHouse はそのようなインデックス用の専用インメモリキャッシュを提供します。 +このキャッシュが大きいほど、不要なロードは少なくなります。 +キャッシュの最大サイズは、サーバー設定 [vector_similarity_index_cache_size](../../../operations/server-configuration-parameters/settings.md#vector_similarity_index_cache_size) を使用して設定できます。 +デフォルトでは、このキャッシュは最大 5 GB まで成長できます。 :::note -ベクトル類似性インデックスキャッシュには、ベクトルインデックスのグラニュールが保存されます。 +ベクトル類似度インデックスキャッシュは、ベクトルインデックスグラニュールを保存します。 個々のベクトルインデックスグラニュールがキャッシュサイズより大きい場合、それらはキャッシュされません。 -そのため、「Estimating storage and memory consumption」の式、または [system.data_skipping_indices](../../../operations/system-tables/data_skipping_indices) に基づいてベクトルインデックスサイズを算出し、それに応じてキャッシュサイズを設定してください。 +したがって、「Estimating storage and memory consumption」に記載の式や [system.data_skipping_indices](../../../operations/system-tables/data_skipping_indices) を基にベクトルインデックスサイズを計算し、それに応じてキャッシュサイズを設定するようにしてください。 ::: -ベクトル類似性インデックスキャッシュの現在のサイズは、[system.metrics](../../../operations/system-tables/metrics.md) に表示されます。 +*ベクトルインデックスキャッシュを確認し、必要に応じて増加させることは、ベクトル検索クエリの低速化を調査する際に最初に行うべきステップであることを、ここで改めて強調します。* + +ベクトル類似度インデックスキャッシュの現在のサイズは、[system.metrics](../../../operations/system-tables/metrics.md) に表示されます。 ```sql SELECT metric, value @@ -457,7 +467,7 @@ FROM system.metrics WHERE metric = 'VectorSimilarityIndexCacheBytes' ``` -特定のクエリ ID に対応するクエリのキャッシュヒットおよびミスは、[system.query_log](../../../operations/system-tables/query_log.md) から取得できます。 +ある query_id を持つクエリのキャッシュヒットおよびミスは、[system.query_log](../../../operations/system-tables/query_log.md) から取得できます。 ```sql SYSTEM FLUSH LOGS query_log; @@ -468,12 +478,13 @@ WHERE type = 'QueryFinish' AND query_id = '<...>' ORDER BY event_time_microseconds; ``` -本番環境でのユースケースでは、すべてのベクトルインデックスが常にメモリ上に保持されるよう、十分な容量のキャッシュを確保することを推奨します。 +本番環境での利用においては、すべてのベクトルインデックスが常にメモリ上に保持されるよう、キャッシュを十分に大きく設定することを推奨します。 **量子化のチューニング** -[量子化](https://huggingface.co/blog/embedding-quantization) は、ベクトルのメモリ使用量と、ベクトルインデックスの構築および走査にかかる計算コストを削減するための手法です。 -ClickHouse のベクトルインデックスは、次の量子化オプションをサポートします: +[Quantization](https://huggingface.co/blog/embedding-quantization) は、ベクトルのメモリフットプリントや、ベクトルインデックスの構築・走査にかかる計算コストを削減するための手法です。 +ClickHouse のベクトルインデックスは、次の量子化オプションをサポートしています。 + | Quantization | Name | Storage per dimension | | -------------- | ----------------- | --------------------- | @@ -508,15 +519,15 @@ result = chclient.query( parameters = params) ``` -埋め込みベクトル(上記スニペットの `search_v`)は、非常に大きな次元数を持つ場合があります。 -たとえば、OpenAI は 1536 次元や 3072 次元の埋め込みベクトルを生成するモデルを提供しています。 -上記のコードでは、ClickHouse Python ドライバは埋め込みベクトルを人間が読める文字列に置き換え、その後 SELECT クエリ全体を文字列として送信します。 -埋め込みベクトルが 1536 個の単精度浮動小数点値で構成されているとすると、送信される文字列は長さが 20 kB に達します。 -これにより、トークナイズ、パース、および数千回におよぶ文字列から浮動小数点への変換で CPU 使用率が高くなります。 -また、ClickHouse サーバーログファイルにも多くのディスク容量が必要となり、`system.query_log` の肥大化も引き起こします。 +埋め込みベクトル(上記スニペット中の `search_v`)は、非常に大きな次元数を持つ場合があります。 +例えば、OpenAI は 1536 あるいは 3072 次元の埋め込みベクトルを生成するモデルを提供しています。 +上記のコードでは、ClickHouse の Python ドライバーは埋め込みベクトルを人間が読める文字列に置き換え、その後 SELECT クエリ全体を文字列として送信します。 +埋め込みベクトルが 1536 個の単精度浮動小数点値から構成されているとすると、送信される文字列長は 20 kB に達します。 +これにより、トークナイズやパース、および数千回におよぶ文字列から浮動小数点値への変換で CPU 使用率が高くなります。 +また、ClickHouse サーバーログファイルにかなりの領域が必要となり、`system.query_log` も肥大化します。 -ほとんどの LLM モデルは、埋め込みベクトルをネイティブな float のリストまたは NumPy 配列として返すことに注意してください。 -そのため、Python アプリケーションでは、参照ベクトルのパラメータを次のようなスタイルでバイナリ形式としてバインドすることを推奨します。 +ほとんどの LLM モデルは、ネイティブな float のリストまたは NumPy 配列として埋め込みベクトルを返す点に注意してください。 +そのため、Python アプリケーションでは、次のようなスタイルを用いて、参照ベクトルパラメータをバイナリ形式でバインドすることを推奨します。 ```python search_v = openai_client.embeddings.create(input = "[Good Books]", model='text-embedding-3-large', dimensions=1536).data[0].embedding @@ -524,17 +535,18 @@ search_v = openai_client.embeddings.create(input = "[Good Books]", model='text-e params = {'$search_v_binary$': np.array(search_v, dtype=np.float32).tobytes()} result = chclient.query( "SELECT id FROM items - ORDER BY cosineDistance(vector, (SELECT reinterpret($search_v_binary$, 'Array(Float32)'))) + ORDER BY cosineDistance(vector, reinterpret($search_v_binary$, 'Array(Float32)')) LIMIT 10" parameters = params) ``` -この例では、参照ベクターはそのままバイナリ形式で送信され、サーバー側で浮動小数点数配列として再解釈されます。 -これにより、サーバー側の CPU 時間を節約し、サーバーログおよび `system.query_log` の肥大化を防ぐことができます。 +この例では、参照ベクトルはバイナリ形式のまま送信され、サーバー側で float の配列として再解釈されます。 +これによりサーバー側の CPU 時間を節約でき、サーバーログおよび `system.query_log` の肥大化も防止できます。 + #### 管理と監視 {#administration} -ベクトル類似性インデックスのディスク上のサイズは、[system.data_skipping_indices](../../../operations/system-tables/data_skipping_indices) から取得できます。 +ベクトル類似度インデックスのディスク上のサイズは、[system.data_skipping_indices](../../../operations/system-tables/data_skipping_indices) から取得できます。 ```sql SELECT database, table, name, formatReadableSize(data_compressed_bytes) @@ -550,6 +562,7 @@ WHERE type = 'vector_similarity'; └──────────┴───────┴──────┴──────────────────────────┘ ``` + #### 通常のスキッピングインデックスとの違い {#differences-to-regular-skipping-indexes} 通常の[スキッピングインデックス](/optimize/skipping-indexes)と同様に、ベクトル類似度インデックスはグラニュール単位で構築され、各インデックスブロックは `GRANULARITY = [N]` 個のグラニュールで構成されます(通常のスキッピングインデックスではデフォルトで `[N]` = 1)。 @@ -565,15 +578,15 @@ WHERE type = 'vector_similarity'; しかし、ClickHouse はディスクからメモリへデータを読み込む際にグラニュールの粒度で処理するため、サブインデックスはマッチした行をグラニュール単位にまで拡張して扱います。 これは、インデックスブロックの粒度でデータをスキップする通常のスキッピングインデックスとは異なります。 -`GRANULARITY` パラメータは、いくつのベクトル類似度サブインデックスを作成するかを決定します。 -より大きな `GRANULARITY` の値では、サブインデックスの数は少なくなる一方、それぞれのサブインデックスはより大きくなり、最終的にはあるカラム(またはカラムのデータパーツ)が単一のサブインデックスしか持たない状態になります。 -その場合、そのサブインデックスはカラム行全体に対する「グローバル」なビューを持ち、関連する行を含むカラム(パーツ)のすべてのグラニュールを直接返すことができます(そのようなグラニュールは最大でも `LIMIT [N]` 個です)。 -次のステップとして、ClickHouse はこれらのグラニュールを読み込み、グラニュール内のすべての行に対して総当たりの距離計算を行うことで、実際に最適な行を特定します。 -`GRANULARITY` の値が小さい場合、それぞれのサブインデックスは最大 `LIMIT N` 個のグラニュールを返します。 -その結果、より多くのグラニュールを読み込んで事後フィルタリングする必要が生じます。 -どちらの場合でも検索精度は同等であり、異なるのは処理パフォーマンスのみであることに注意してください。 -一般的には、ベクトル類似度インデックスに対しては大きな `GRANULARITY` を使用し、ベクトル類似度構造によるメモリ消費が過大になるなどの問題が発生した場合にのみ、より小さな `GRANULARITY` の値に切り替えることを推奨します。 -ベクトル類似度インデックスに対して `GRANULARITY` が指定されていない場合、デフォルト値は 1 億です。 +`GRANULARITY` パラメータは、作成されるベクトル類似度サブインデックスの数を決定します。 +`GRANULARITY` の値が大きいほどサブインデックスの数は少なくなりますが、それぞれのベクトル類似度サブインデックスは大きくなり、最終的にはカラム(またはカラムのデータパーツ)あたりサブインデックスが 1 つだけになる場合もあります。 +その場合、サブインデックスはカラムの全行に対する「グローバル」な視点を持ち、関連する行を含むカラム(パーツ)のグラニュールをすべて直接返すことができます(そのようなグラニュールは最大でも `LIMIT [N]` 個です)。 +第 2 段階として、ClickHouse はそれらのグラニュールをロードし、グラニュール内のすべての行に対して総当たりの距離計算を行うことで、実際に最も適した行を特定します。 +`GRANULARITY` の値が小さい場合、各サブインデックスは最大で `LIMIT N` 個のグラニュールを返します。 +その結果、より多くのグラニュールをロードし、後段でフィルタリングする必要が生じます。 +どちらの場合でも検索精度は同等であり、異なるのは処理性能だけであることに注意してください。 +一般的には、ベクトル類似度インデックスには大きな `GRANULARITY` を使用し、ベクトル類似度構造のメモリ使用量が過大になるなどの問題が発生した場合にのみ、より小さな `GRANULARITY` の値へ切り替えることが推奨されます。 +ベクトル類似度インデックスに対して `GRANULARITY` が明示的に指定されていない場合、デフォルト値は 1 億です。 #### 例 {#approximate-nearest-neighbor-search-example} @@ -589,7 +602,7 @@ ORDER BY L2Distance(vec, reference_vec) ASC LIMIT 3; ``` -戻り値 +次の結果を返します。 ```result ┌─id─┬─vec─────┐ @@ -606,6 +619,7 @@ LIMIT 3; * [dbpedia](../../../getting-started/example-datasets/dbpedia-dataset) * [hackernews](../../../getting-started/example-datasets/hackernews-vector-search-dataset) + ### Quantized Bit (QBit) {#approximate-nearest-neighbor-search-qbit} @@ -621,23 +635,24 @@ ClickHouse は、これらの制約を解決する Quantized Bit (`QBit`) デー 1. 元のフル精度データを保存する。 2. クエリ時に量子化精度を指定できるようにする。 -これは、データをビットグループ化形式(すべてのベクトルの i 番目のビットをまとめて保存する形式)で保存することで実現され、要求された精度レベルだけを読み出せるようにします。これにより、量子化による I/O と計算量の削減による高速化の恩恵を受けつつ、必要に応じて元のデータをすべて利用可能な状態に保てます。最大精度が選択された場合、検索は厳密なもの(完全一致)になります。 +これは、データをビット単位にグループ化した形式(すべてのベクトルについて i 番目のビットをまとめて保存する形式)で格納することで実現されており、要求された精度レベルだけを読み取ることができます。これにより、量子化による I/O と計算の削減による高速化の恩恵を受けつつ、必要に応じて元のすべてのデータを利用できます。最大精度が選択された場合、検索は厳密なものになります。 :::note -`QBit` データ型とそれに関連する距離関数は、現在実験的な機能です。これらを有効にするには、`SET allow_experimental_qbit_type = 1` を実行してください。 -問題が発生した場合は、[ClickHouse リポジトリ](https://github.com/clickhouse/clickhouse/issues) に Issue を作成してください。 +`QBit` データ型とそれに関連する距離関数は現在実験的な機能です。有効化するには、`SET allow_experimental_qbit_type = 1` を実行してください。 +問題が発生した場合は、[ClickHouse リポジトリ](https://github.com/clickhouse/clickhouse/issues) に issue を作成してください。 ::: -`QBit` 型のカラムを宣言するには、次の構文を使用します。 +`QBit` 型のカラムを宣言するには、次の構文を使用します: ```sql column_name QBit(element_type, dimension) ``` -次のとおりです。 +ここで: * `element_type` – 各ベクトル要素の型。サポートされている型は `BFloat16`、`Float32`、`Float64` です -* `dimension` – 各ベクトル内の要素数 +* `dimension` – 各ベクトル内の要素数です + #### `QBit` テーブルの作成とデータの追加 {#qbit-create} @@ -657,6 +672,7 @@ INSERT INTO fruit_animal VALUES ('horse', [-0.61435682, 0.48542571, 1.21091247, -0.62530446, -1.33082533]); ``` + #### `QBit` を使ったベクトル検索 {#qbit-search} L2 距離を用いて、単語 'lemon' を表すベクトルに最も近い近傍を検索します。距離関数の第 3 引数ではビット単位の精度を指定します。値を大きくすると精度は向上しますが、計算コストも増加します。 @@ -684,7 +700,7 @@ ORDER BY distance; └────────┴─────────────────────┘ ``` -**精度を下げた検索:** +**低精度検索:** ```sql SELECT @@ -705,12 +721,13 @@ ORDER BY distance; └────────┴────────────────────┘ ``` -12 ビット量子化では、クエリ実行が高速化されつつ、距離を良好に近似できることに注目してください。相対的な順位付けも概ね一貫しており、依然として「apple」が最も近い一致となっています。 +12 ビット量子化では、クエリ実行を高速化しつつ、距離を良好に近似できていることに注目してください。相対的な順位付けは概ね維持されており、依然として 'apple' が最も近い一致となっています。 :::note -現時点では、高速化の主な要因は、読み取るデータ量が減ることによる I/O の削減です。元のデータが `Float64` のようにビット幅の大きい型であっても、より低い精度を選択すると、同じ幅のデータに対して距離計算が行われますが、精度だけが下がります。 +現時点では、高速化は読み取るデータ量が減ることによる I/O 削減のおかげです。元のデータが `Float64` のような幅の広い型だった場合でも、より低い精度を選択すると、同じビット幅のデータに対して距離計算が行われますが、数値の精度だけが低くなります。 ::: + #### パフォーマンス上の考慮事項 {#qbit-performance} `QBit` のパフォーマンス上の利点は、より低い精度を使用した場合に、ストレージから読み取る必要のあるデータ量が減ることによる I/O 操作の削減から生じます。さらに、`QBit` に格納されているデータが `Float32` であり、`precision` パラメータが 16 以下の場合は、計算量が減ることによる追加のメリットも得られます。`precision` パラメータは、精度と速度のトレードオフを直接制御します。 @@ -721,5 +738,6 @@ ORDER BY distance; ### 参考文献 {#references} ブログ: + - [Vector Search with ClickHouse - Part 1](https://clickhouse.com/blog/vector-search-clickhouse-p1) -- [Vector Search with ClickHouse - Part 2](https://clickhouse.com/blog/vector-search-clickhouse-p2) +- [Vector Search with ClickHouse - Part 2](https://clickhouse.com/blog/vector-search-clickhouse-p2) \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/mergetree.md b/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/mergetree.md index 8c3630299b9..83b9f9c12ba 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/mergetree.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/mergetree.md @@ -402,7 +402,7 @@ bloom_filter([false_positive_rate]) * `Map` :::note Map データ型: キーまたは値に対する索引作成の指定 -`Map` データ型では、クライアントは [`mapKeys`](/sql-reference/functions/tuple-map-functions.md/#mapkeys) または [`mapValues`](/sql-reference/functions/tuple-map-functions.md/#mapvalues) 関数を使用して、索引をキーに対して作成するか、値に対して作成するかを指定できます。 +`Map` データ型では、クライアントは [`mapKeys`](/sql-reference/functions/tuple-map-functions.md/#mapKeys) または [`mapValues`](/sql-reference/functions/tuple-map-functions.md/#mapValues) 関数を使用して、索引をキーに対して作成するか、値に対して作成するかを指定できます。 ::: @@ -522,7 +522,7 @@ sparse_grams(min_ngram_length, max_ngram_length, min_cutoff_length, size_of_bloo | [less(`<`)](/sql-reference/functions/comparison-functions.md/#less) | ✔ | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | | [greater(`>`)](/sql-reference/functions/comparison-functions.md/#greater) | ✔ | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | | [lessOrEquals(`<=`)](/sql-reference/functions/comparison-functions.md/#lessOrEquals) | ✔ | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | -| [以上 (`>=`)](/sql-reference/functions/comparison-functions.md/#greaterOrEquals) | ✔ | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | +| [greaterOrEquals(`>=`)](/sql-reference/functions/comparison-functions.md/#greaterOrEquals) | ✔ | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | | [empty](/sql-reference/functions/array-functions/#empty) | ✔ | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | | [notEmpty](/sql-reference/functions/array-functions/#notEmpty) | ✗ | ✔ | ✗ | ✗ | ✗ | ✔ | ✗ | | [has](/sql-reference/functions/array-functions#has) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | @@ -534,7 +534,10 @@ sparse_grams(min_ngram_length, max_ngram_length, min_cutoff_length, size_of_bloo | [hasTokenCaseInsensitiveOrNull (`*`)](/sql-reference/functions/string-search-functions.md/#hasTokenCaseInsensitiveOrNull) | ✗ | ✗ | ✗ | ✔ | ✗ | ✗ | ✗ | | [hasAnyTokens](/sql-reference/functions/string-search-functions.md/#hasAnyTokens) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | | [hasAllTokens](/sql-reference/functions/string-search-functions.md/#hasAllTokens) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | -| [mapContains](/sql-reference/functions/tuple-map-functions#mapcontains) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | +| [mapContains (mapContainsKey)](/sql-reference/functions/tuple-map-functions#mapContainsKey) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | +| [mapContainsKeyLike](/sql-reference/functions/tuple-map-functions#mapContainsKeyLike) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | +| [mapContainsValue](/sql-reference/functions/tuple-map-functions#mapContainsValue) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | +| [mapContainsValueLike](/sql-reference/functions/tuple-map-functions#mapContainsValueLike) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | `ngrambf_v1` によるクエリ最適化では、定数引数の値が ngram サイズより小さい関数は使用できません。 diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/textindexes.md b/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/textindexes.md index 50e759c2c5f..37972e398db 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/textindexes.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/textindexes.md @@ -28,7 +28,7 @@ ClickHouse のテキストインデックス(["inverted indexes"](https://en.w SET enable_full_text_index = true; ``` -テキストインデックスは、次の構文を使用して [String](/sql-reference/data-types/string.md)、[FixedString](/sql-reference/data-types/fixedstring.md)、[Array(String)](/sql-reference/data-types/array.md)、[Array(FixedString)](/sql-reference/data-types/array.md)、および [Map](/sql-reference/data-types/map.md)(map 関数 [mapKeys](/sql-reference/functions/tuple-map-functions.md/#mapkeys) および [mapValues](/sql-reference/functions/tuple-map-functions.md/#mapvalues) を介して)のカラムに定義できます。 +テキストインデックスは、次の構文を使用して [String](/sql-reference/data-types/string.md)、[FixedString](/sql-reference/data-types/fixedstring.md)、[Array(String)](/sql-reference/data-types/array.md)、[Array(FixedString)](/sql-reference/data-types/array.md)、および [Map](/sql-reference/data-types/map.md)(map 関数 [mapKeys](/sql-reference/functions/tuple-map-functions.md/#mapKeys) および [mapValues](/sql-reference/functions/tuple-map-functions.md/#mapValues) を介して)のカラムに定義できます。 ```sql CREATE TABLE tab @@ -323,7 +323,7 @@ SELECT count() FROM tab WHERE has(array, 'clickhouse'); #### `mapContains` {#functions-example-mapcontains} -[mapContains](/sql-reference/functions/tuple-map-functions#mapcontains) 関数(`mapContainsKey` のエイリアス)は、マップのキーに含まれる単一のトークンにマッチします。 +[mapContains](/sql-reference/functions/tuple-map-functions#mapContainsKey) 関数(`mapContainsKey` のエイリアス)は、マップのキーに含まれる単一のトークンにマッチします。 例: @@ -334,6 +334,18 @@ SELECT count() FROM tab WHERE mapContains(map, 'clickhouse'); ``` +#### `mapContainsKeyLike` と `mapContainsValueLike` {#functions-example-mapcontainslike} + +[mapContainsKeyLike](/sql-reference/functions/tuple-map-functions#mapContainsKeyLike) 関数と [mapContainsValueLike](/sql-reference/functions/tuple-map-functions#mapContainsValueLike) 関数は、マップのキーまたは値(それぞれ対応する関数に応じて)に対してパターンマッチを行います。 + +例: + +```sql +SELECT count() FROM tab WHERE mapContainsKeyLike(map, '% clickhouse %'); +SELECT count() FROM tab WHERE mapContainsValueLike(map, '% clickhouse %'); +``` + + #### `operator[]` {#functions-example-access-operator} アクセス演算子 [operator[]](/sql-reference/operators#access-operators) をテキスト索引と組み合わせて使用し、キーと値をフィルタリングできます。 @@ -414,14 +426,14 @@ SELECT count() FROM logs WHERE has(mapValues(attributes), '192.168.1.1'); -- slo ログ量が増えると、これらのクエリは遅くなります。 解決策は、[Map](/sql-reference/data-types/map.md) のキーと値に対してテキスト索引を作成することです。 -フィールド名や属性タイプでログを検索する必要がある場合は、[mapKeys](/sql-reference/functions/tuple-map-functions.md/#mapkeys) を使用してテキスト索引を作成します。 +フィールド名や属性タイプでログを検索する必要がある場合は、[mapKeys](/sql-reference/functions/tuple-map-functions.md/#mapKeys) を使用してテキスト索引を作成します。 ```sql ALTER TABLE logs ADD INDEX attributes_keys_idx mapKeys(attributes) TYPE text(tokenizer = array); ALTER TABLE posts MATERIALIZE INDEX attributes_keys_idx; ``` -属性の実際のテキスト内容を検索する必要がある場合は、[mapValues](/sql-reference/functions/tuple-map-functions.md/#mapvalues) を使用してテキスト索引を作成します。 +属性値の実際の内容を検索する必要がある場合は、[mapValues](/sql-reference/functions/tuple-map-functions.md/#mapValues) を使用してテキスト索引を作成します。 ```sql ALTER TABLE logs ADD INDEX attributes_vals_idx mapValues(attributes) TYPE text(tokenizer = array); @@ -436,6 +448,9 @@ SELECT * FROM logs WHERE mapContainsKey(attributes, 'rate_limit'); -- fast -- Finds all logs from a specific IP: SELECT * FROM logs WHERE has(mapValues(attributes), '192.168.1.1'); -- fast + +-- Finds all logs where any attribute includes an error: +SELECT * FROM logs WHERE mapContainsValueLike(attributes, '% error %'); -- fast ``` @@ -526,6 +541,7 @@ Positions: 現在、I/O を削減するために、テキストインデックスのデシリアライズ済みの Dictionary ブロック、ヘッダー、およびポスティングリスト向けのキャッシュが用意されています。 これらは設定 [use_text_index_dictionary_cache](/operations/settings/settings#use_text_index_dictionary_cache)、[use_text_index_header_cache](/operations/settings/settings#use_text_index_header_cache)、および [use_text_index_postings_cache](/operations/settings/settings#use_text_index_postings_cache) で有効化できます。 デフォルトでは、すべてのキャッシュは無効になっています。 +キャッシュを削除するには、[SYSTEM DROP TEXT INDEX CACHES](../../../sql-reference/statements/system#drop-text-index-caches) 文を使用します。 キャッシュを構成するには、以下のサーバー設定を参照してください。 diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/index.md b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/index.md index 039ec382065..ceeb1ee8cbf 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/index.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/index.md @@ -1,12 +1,18 @@ --- sidebar_label: 'MySQL から ClickHouse へのデータ取り込み' -description: 'MySQL を ClickHouse Cloud とシームレスに接続する方法について説明します。' +description: 'MySQL または MariaDB データベースから ClickHouse Cloud にデータをシームレスに取り込む方法について説明します。' slug: /integrations/clickpipes/mysql title: 'MySQL から ClickHouse へのデータ取り込み(CDC(変更データキャプチャ)の利用)' doc_type: 'guide' keywords: ['MySQL', 'ClickPipes', 'CDC', 'CDC(変更データキャプチャ)', 'データベースレプリケーション'] --- +import Aurorasvg from '@site/static/images/integrations/logos/amazon_aurora.svg'; +import AFSsvg from '@site/static/images/integrations/logos/azure_database_mysql.svg'; +import CloudSQLsvg from '@site/static/images/integrations/logos/gcp_cloudsql.svg'; +import MariaDBsvg from '@site/static/images/integrations/logos/mariadb.svg'; +import MySQLsvg from '@site/static/images/integrations/logos/mysql.svg'; +import RDSsvg from '@site/static/images/integrations/logos/amazon_rds.svg'; import BetaBadge from '@theme/badges/BetaBadge'; import cp_service from '@site/static/images/integrations/data-ingestion/clickpipes/cp_service.png'; import cp_step0 from '@site/static/images/integrations/data-ingestion/clickpipes/cp_step0.png'; @@ -17,33 +23,38 @@ import select_destination_db from '@site/static/images/integrations/data-ingesti import ch_permissions from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/ch-permissions.jpg' import Image from '@theme/IdealImage'; -# MySQL から ClickHouse へのデータ取り込み(CDC の使用) {#ingesting-data-from-mysql-to-clickhouse-using-cdc} + +# MySQL から ClickHouse へのデータインジェスト(CDC の利用) {#ingesting-data-from-mysql-to-clickhouse-using-cdc} :::info -ClickPipes を使用した MySQL から ClickHouse Cloud へのデータ取り込みは、現在パブリックベータ版です。 +ClickPipes を介して MySQL から ClickHouse Cloud へデータをインジェストする機能は、現在パブリックベータ段階にあります。 ::: -ClickPipes を使用して、ソースの MySQL データベースから ClickHouse Cloud にデータを取り込むことができます。ソースの MySQL データベースは、オンプレミス環境だけでなく、Amazon RDS や Google Cloud SQL などのクラウドサービス上にホストされていても構いません。 - -## 前提条件 {#prerequisites} +MySQL ClickPipe は、MySQL および MariaDB データベースから ClickHouse Cloud へデータを取り込むための、フルマネージドで堅牢な手段を提供します。1 回限りのインジェストを行う **一括ロード(bulk loads)** と、継続的なインジェストを行う **Change Data Capture (CDC)** の両方をサポートします。 -開始するには、まず MySQL データベースが binlog レプリケーション用に正しく設定されていることを確認する必要があります。設定手順は MySQL のデプロイ方法によって異なるため、以下の該当するガイドの手順に従ってください。 +MySQL ClickPipes は、ClickPipes UI を使用して手動でデプロイおよび管理できます。将来的には、[OpenAPI](https://clickhouse.com/docs/cloud/manage/api/swagger#tag/ClickPipes/paths/~1v1~1organizations~1%7BorganizationId%7D~1services~1%7BserviceId%7D~1clickpipes/post) や [Terraform](https://registry.terraform.io/providers/ClickHouse/clickhouse/3.8.1-alpha1/docs/resources/clickpipe) を用いて、MySQL ClickPipes をプログラム的にデプロイおよび管理できるようになる予定です。 -1. [Amazon RDS MySQL](./mysql/source/rds) - -2. [Amazon Aurora MySQL](./mysql/source/aurora) +## 前提条件 {#prerequisites} -3. [Cloud SQL for MySQL](./mysql/source/gcp) +[//]: # "TODO Binlog replication configuration is not needed for one-time ingestion pipes. This has been a source of confusion in the past, so we should also provide the bare minimum requirements for bulk loads to avoid scaring users off." -4. [汎用 MySQL](./mysql/source/generic) +開始するには、まず MySQL データベースが binlog レプリケーション用に正しく設定されていることを確認する必要があります。設定手順は MySQL のデプロイ方法によって異なるため、以下の該当するガイドの手順に従ってください。 -5. [Amazon RDS MariaDB](./mysql/source/rds_maria) +### サポートされているデータソース {#supported-data-sources} -6. [汎用 MariaDB](./mysql/source/generic_maria) +| 名前 | ロゴ | 詳細 | +|----------------------|------|-------------------| +| **Amazon RDS MySQL**

_1 回限りのロード、CDC_ | | [Amazon RDS MySQL](./mysql/source/rds) の設定ガイドに従ってください。 | +| **Amazon Aurora MySQL**

_1 回限りのロード、CDC_ | | [Amazon Aurora MySQL](./mysql/source/aurora) の設定ガイドに従ってください。 | +| **Cloud SQL for MySQL**

_1 回限りのロード、CDC_ | | [Cloud SQL for MySQL](./mysql/source/gcp) の設定ガイドに従ってください。 | +| **Azure Flexible Server for MySQL**

_1 回限りのロード_ | | [Azure Flexible Server for MySQL](./mysql/source/azure-flexible-server-mysql) の設定ガイドに従ってください。 | +| **Self-hosted MySQL**

_1 回限りのロード、CDC_ | | [Generic MySQL](./mysql/source/generic) の設定ガイドに従ってください。 | +| **Amazon RDS MariaDB**

_1 回限りのロード、CDC_ | | [Amazon RDS MariaDB](./mysql/source/rds_maria) の設定ガイドに従ってください。 | +| **Self-hosted MariaDB**

_1 回限りのロード、CDC_ | | [Generic MariaDB](./mysql/source/generic_maria) の設定ガイドに従ってください。 | -ソース MySQL データベースのセットアップが完了したら、ClickPipe の作成に進むことができます。 +ソースの MySQL データベースのセットアップが完了したら、ClickPipe の作成に進むことができます。 ## ClickPipe を作成する {#create-your-clickpipe} @@ -68,14 +79,14 @@ ClickHouse Cloud アカウントにログインしていることを確認しま :::info 接続情報を入力し始める前に、ファイアウォールルールで ClickPipes の IP アドレスをホワイトリストに登録していることを確認してください。次のページで、[ClickPipes の IP アドレス一覧](../index.md#list-of-static-ips)を確認できます。 - さらに詳しい情報については、[このページの冒頭](#prerequisites)にリンクされているソース MySQL セットアップガイドを参照してください。 + 詳細については、[このページの冒頭](#prerequisites)にリンクされているソース MySQL セットアップガイドを参照してください。 ::: 接続情報を入力 #### (オプション)SSH トンネリングを設定する {#optional-set-up-ssh-tunneling} -ソース MySQL データベースがパブリックにアクセス可能でない場合は、SSH トンネリングの詳細を指定できます。 +ソース MySQL データベースがインターネットから直接アクセスできない場合は、SSH トンネリングの詳細を指定できます。 1. 「Use SSH Tunnelling」トグルを有効にします。 2. SSH 接続情報を入力します。 @@ -121,4 +132,4 @@ ClickPipes が SSH トンネルを確立できるように、SSH バスティオ [//]: # "TODO Write a MySQL-specific migration guide and best practices similar to the existing one for PostgreSQL. The current migration guide points to the MySQL table engine, which is not ideal." -MySQL から ClickHouse Cloud へのデータレプリケーション用に ClickPipe のセットアップが完了したら、最適なパフォーマンスを得るために、データのクエリやモデリングに注力できます。MySQL CDC(変更データキャプチャ)およびトラブルシューティングに関するよくある質問については、[MySQL FAQs ページ](/integrations/data-ingestion/clickpipes/mysql/faq.md) を参照してください。 +MySQL から ClickHouse Cloud へのデータレプリケーション用に ClickPipe のセットアップが完了したら、最適なパフォーマンスを得るために、データのクエリやモデリングに注力できます。MySQL CDC(変更データキャプチャ)およびトラブルシューティングに関するよくある質問については、[MySQL FAQs ページ](/integrations/data-ingestion/clickpipes/mysql/faq.md) を参照してください。 \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/azure-flexible-server-mysql.md b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/azure-flexible-server-mysql.md new file mode 100644 index 00000000000..ce09a5084e1 --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/azure-flexible-server-mysql.md @@ -0,0 +1,87 @@ +--- +sidebar_label: 'Azure Flexible Server for MySQL' +description: 'ClickPipes のソースとして Azure Flexible Server for MySQL を設定する' +slug: /integrations/clickpipes/mysql/source/azure-flexible-server-mysql +title: 'Azure Flexible Server for MySQL ソース設定ガイド' +keywords: ['azure', 'flexible server', 'mysql', 'clickpipes', 'binlog'] +doc_type: 'guide' +--- + +import configure_network_security from '@site/static/images/integrations/data-ingestion/clickpipes/mysql/source/azure-flexible-server-mysql/1_configure_network_security.png'; +import Image from '@theme/IdealImage'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + +# Azure Flexible Server for MySQL ソース設定ガイド {#azure-flexible-server-for-mysql-source-setup-guide} + +このステップバイステップガイドでは、[MySQL ClickPipe](../index.md) を使用して、Azure Flexible Server for MySQL を ClickHouse Cloud にデータをレプリケートするように構成する方法を説明します。このサービスでは **一度限りのインジェスト** のみがサポートされています。MySQL CDC に関する一般的な質問については、[MySQL FAQ ページ](/integrations/data-ingestion/clickpipes/mysql/faq.md) を参照してください。 + +:::warning +このサービスでは、**CDC による継続的なインジェストはサポートされていません**。Azure Flexible Server for MySQL では、ClickPipes でフル機能の MySQL CDC を行うために必須となる [`binlog_row_metadata`](https://dev.mysql.com/doc/refman/en/replication-options-binary-log.html#sysvar_binlog_row_metadata) システム変数を `FULL` に設定することができません。 + +この機能の追加を依頼するには、[Azure フィードバックフォーラム](https://feedback.azure.com/d365community/forum/47b1e71d-ee24-ec11-b6e6-000d3a4f0da0) で機能リクエストを送信するか、[この質問](https://learn.microsoft.com/en-us/answers/questions/766047/setting-binlog-row-metadata-to-full-in-azure-db-fo) に投票するか、[Azure サポートにお問い合わせ](https://azure.microsoft.com/en-us/support/create-ticket/)ください。 +::: + +## データベースユーザーを構成する {#configure-database-user} + +管理者権限を持つユーザーとして Azure Flexible Server for MySQL インスタンスに接続し、次のコマンドを実行します。 + +1. ClickPipes 用の専用ユーザーを作成します。 + + ```sql + CREATE USER 'clickpipes_user'@'%' IDENTIFIED BY 'some-password'; + ``` + +2. スキーマに対する権限を付与します。次の例では、`mysql` データベースに対する権限を示しています。レプリケーション対象とする各データベースおよびホストごとに、これらのコマンドを繰り返してください。 + + ```sql + GRANT SELECT ON `mysql`.* TO 'clickpipes_user'@'%'; + ``` + +3. 権限の変更を反映します。 + + ```sql + FLUSH PRIVILEGES; + ``` + +## ネットワーク アクセスを構成する {#configure-network-access} + +:::note +ClickPipes は Azure Private Link 接続をサポートしていません。Azure Flexible Server for MySQL インスタンスへのパブリック アクセスを許可していない場合は、[SSH トンネルを使用](#configure-network-security)して安全に接続できます。Azure Private Link は今後サポート予定です。 +::: + +次に、ClickPipes から Azure Flexible Server for MySQL インスタンスへの接続を許可する必要があります。 + + + + +1. Azure ポータルで **All resources** に移動します。Azure Flexible Server for MySQL インスタンスを選択して **Overview** ページを開きます。 + +2. **Settings** で **Networking** を選択します。**Public access** が有効になっていることを確認します。 + +3. **Firewall rules** セクションで、サービスがデプロイされているリージョンの [ClickPipes 静的 IP アドレス一覧](../../index.md#list-of-static-ips) を入力します。 + + IP 許可リストを使用してパブリック アクセス用のネットワークを構成する + +4. **Save** をクリックして、ネットワーク セキュリティ構成の変更を保存します。 + + + + +Azure Flexible Server for MySQL インスタンスへのパブリック アクセスを許可していない場合は、まず SSH バスティオン ホストをセットアップして、安全なトンネル経由で接続する必要があります。Azure で SSH バスティオン ホストをセットアップするには、次の手順に従います。 + +1. [公式ドキュメント](https://learn.microsoft.com/en-us/azure/virtual-machines/linux/quick-create-portal?tabs=ubuntu)に従って Azure Virtual Machine (VM) を作成して起動します。 + - VM が Azure Flexible Server for MySQL インスタンスと同じ Virtual Network (VNet) 内、または接続性のあるピアリング済み VNet 内にあることを確認します。 + - VM に [静的パブリック IP アドレス](https://learn.microsoft.com/en-us/azure/virtual-network/ip-services/virtual-network-public-ip-address) が割り当てられていることを確認します。ClickPipes を SSH バスティオン ホストに接続する際に、この IP アドレスを使用します。 + +2. SSH バスティオン ホストの Network Security Group (NSG) ルールを更新し、サービスがデプロイされているリージョンの [ClickPipes 静的 IP アドレス一覧](../../index.md#list-of-static-ips) からのトラフィックを許可します。 + +3. Azure Flexible Server for MySQL インスタンスのファイアウォール ルールを更新し、SSH バスティオン ホストの [プライベート IP アドレス](https://learn.microsoft.com/en-us/azure/virtual-network/ip-services/private-ip-addresses) からのトラフィックを許可します。 + + + + +## 次のステップ {#whats-next} + +これで、[ClickPipe を作成](../index.md)し、Azure Flexible Server for MySQL インスタンスから ClickHouse Cloud へのデータ取り込みを開始できます。インスタンスをセットアップする際に使用した接続情報は、ClickPipe を作成する際にも必要になるため、必ず控えておいてください。 \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/alloydb.md b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/alloydb.md index ed3e942b12a..2abc6ad7407 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/alloydb.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/alloydb.md @@ -72,7 +72,7 @@ SHOW wal_level; CREATE USER clickpipes_user PASSWORD 'some-password'; ``` -2. レプリケーションしたいスキーマに対する権限を専用ユーザーに付与します。 +2. 前の手順で作成したユーザーに対し、スキーマ単位の読み取り専用アクセス権を付与します。次の例は、`public` スキーマに対する権限を示しています。レプリケーションしたいテーブルを含む各スキーマについて、このコマンド群を繰り返してください: ```sql GRANT USAGE ON SCHEMA "public" TO clickpipes_user; @@ -80,9 +80,7 @@ SHOW wal_level; ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; ``` - 上記の例は、`public` スキーマに対する権限を示しています。ClickPipes を使ってレプリケーションしたい各スキーマごとに、この一連のコマンドを繰り返してください。 - -3. レプリケーションを管理するための権限を専用ユーザーに付与します: +3. ユーザーにレプリケーション権限を付与します: ```sql ALTER ROLE clickpipes_user REPLICATION; @@ -91,7 +89,7 @@ SHOW wal_level; 4. レプリケーションしたいテーブルを含む [publication](https://www.postgresql.org/docs/current/logical-replication-publication.html) を作成します。パフォーマンスのオーバーヘッドを抑えるため、publication には必要なテーブルのみを含めることを強く推奨します。 :::warning - publication に含まれるすべてのテーブルには、**primary key** が定義されているか、**replica identity** が `FULL` に設定されている必要があります。スコープの決め方については、[Postgres FAQs](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication) を参照してください。 + publication に含まれるいずれのテーブルも、**primary key** が定義されているか、**replica identity** が `FULL` に設定されている必要があります。スコープの決め方については、[Postgres FAQs](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication) を参照してください。 ::: - 特定のテーブルに対する publication を作成するには: @@ -108,10 +106,10 @@ SHOW wal_level; `clickpipes` publication は、指定したテーブルから生成される変更イベントのセットを保持し、後でレプリケーションストリームを取り込む際に使用されます。 -## ネットワークセキュリティを構成する {#configure-network-security} +## ネットワークアクセスを構成する {#configure-network-access} :::note -ClickPipes は Private Service Connect (PSC) 接続をサポートしていません。AlloyDB インスタンスへのパブリックアクセスを許可しない場合は、安全に接続するために[SSH トンネルを使用](#configure-network-security)できます。PSC は今後サポートされる予定です。 +ClickPipes は Private Service Connect (PSC) 接続をサポートしていません。AlloyDB インスタンスへのパブリックアクセスを許可しない場合は、安全に接続するために[SSH トンネルを使用](#configure-network-access)できます。PSC は今後サポートされる予定です。 ::: 次に、ClickPipes から AlloyDB インスタンスへの接続を許可する必要があります。 @@ -123,7 +121,7 @@ ClickPipes は Private Service Connect (PSC) 接続をサポートしていま 2. **Instances in your cluster** までスクロールし、**Edit primary** をクリックします。 -3. **Enable Public IP** チェックボックスをオンにして、パブリックインターネット経由でインスタンスへの接続を許可します。**Authorized external networks** で、サービスをデプロイしているリージョンに対応した [ClickPipes の静的 IP アドレス一覧](../../index.md#list-of-static-ips) を入力します。 +3. **Enable Public IP** チェックボックスをオンにして、パブリックインターネット経由でインスタンスへの接続を許可します。**Authorized external networks** で、サービスをデプロイしているリージョンに対応した [ClickPipes の 静的 IP アドレス一覧](../../index.md#list-of-static-ips) を入力します。 IP 許可リストを使用してパブリックアクセス用のネットワークを構成する diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/aurora.md b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/aurora.md index 27421e932f4..15a09468d61 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/aurora.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/aurora.md @@ -16,6 +16,7 @@ import security_group_in_rds_postgres from '@site/static/images/integrations/dat import edit_inbound_rules from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/rds/edit_inbound_rules.png'; import Image from '@theme/IdealImage'; + # Aurora Postgres ソースのセットアップガイド {#aurora-postgres-source-setup-guide} ## サポートされている Postgres バージョン {#supported-postgres-versions} @@ -65,17 +66,18 @@ postgres=> SHOW wal_sender_timeout ; Aurora PostgreSQL の再起動 + ## データベースユーザーの設定 {#configure-database-user} -Aurora PostgreSQL のライターインスタンスに管理者ユーザーとして接続し、次のコマンドを実行します。 +Aurora PostgreSQL の writer インスタンスに管理者ユーザーで接続し、次のコマンドを実行します。 -1. ClickPipes 用の専用ユーザーを作成します: +1. ClickPipes 専用のユーザーを作成します: ```sql CREATE USER clickpipes_user PASSWORD 'some-password'; ``` -2. スキーマの権限を付与します。次の例では、`public` スキーマに対する権限を示しています。レプリケーション対象とする各スキーマごとに、同様のコマンドを実行してください。 +2. 前の手順で作成したユーザーに、スキーマレベルの読み取り専用アクセス権を付与します。次の例では `public` スキーマに対する権限を示しています。レプリケーションしたいテーブルを含む各スキーマに対して、これらのコマンドを繰り返してください: ```sql GRANT USAGE ON SCHEMA "public" TO clickpipes_user; @@ -83,17 +85,31 @@ Aurora PostgreSQL のライターインスタンスに管理者ユーザーと ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; ``` -3. レプリケーション権限を付与します: +3. ユーザーにレプリケーション権限を付与します: ```sql GRANT rds_replication TO clickpipes_user; ``` -4. レプリケーション用のパブリケーションを作成します: +4. レプリケーションしたいテーブルを含む [publication](https://www.postgresql.org/docs/current/logical-replication-publication.html) を作成します。パフォーマンスへのオーバーヘッドを避けるため、publication には必要なテーブルのみを含めることを強く推奨します。 - ```sql - CREATE PUBLICATION clickpipes_publication FOR ALL TABLES; - ``` + :::warning + publication に含まれるすべてのテーブルは、**primary key** が定義されているか、**replica identity** が `FULL` に設定されている必要があります。publication のスコープ設定に関するガイダンスについては、[Postgres FAQs](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication) を参照してください。 + ::: + + - 特定のテーブル用の publication を作成するには: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2; + ``` + + - 特定のスキーマ内のすべてのテーブル用の publication を作成するには: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public"; + ``` + + `clickpipes` publication には、指定したテーブルから生成される変更イベントの集合が含まれ、後でレプリケーションストリームを取り込むために使用されます。 ## ネットワークアクセスの設定 {#configure-network-access} @@ -132,4 +148,4 @@ Aurora では、適切なインスタンスに自動的にルーティングさ ## 次のステップ {#whats-next} これで、[ClickPipeを作成](../index.md)し、Aurora PostgreSQL クラスターから ClickHouse Cloud へデータの取り込みを開始できます。 -Aurora PostgreSQL クラスターをセットアップした際に使用した接続情報は、ClickPipe の作成時にも必要になるため、必ず控えておいてください。 +Aurora PostgreSQL クラスターをセットアップした際に使用した接続情報は、ClickPipe の作成時にも必要になるため、必ず控えておいてください。 \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/azure-flexible-server-postgres.md b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/azure-flexible-server-postgres.md index 6eb9da31485..9dbedbfffbe 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/azure-flexible-server-postgres.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/azure-flexible-server-postgres.md @@ -13,6 +13,7 @@ import restart from '@site/static/images/integrations/data-ingestion/clickpipes/ import firewall from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/azure-flexible-server-postgres/firewall.png'; import Image from '@theme/IdealImage'; + # Azure Flexible Server for Postgres のソース設定ガイド {#azure-flexible-server-for-postgres-source-setup-guide} ClickPipes は Postgres バージョン 12 以降をサポートしています。 @@ -33,17 +34,17 @@ ClickPipes は Postgres バージョン 12 以降をサポートしています wal_level を変更した後にサーバーを再起動 -## ClickPipes ユーザーの作成と権限付与 {#creating-clickpipes-user-and-granting-permissions} +## ClickPipes 用ユーザーの作成と権限付与 {#creating-clickpipes-user-and-granting-permissions} -管理ユーザーで Azure Flexible Server PostgreSQL に接続し、以下のコマンドを実行します。 +管理ユーザーで Azure Flexible Server Postgres に接続し、以下のコマンドを実行します。 -1. ClickPipes 専用の PostgreSQL ユーザーを作成します。 +1. ClickPipes 専用のユーザーを作成します。 ```sql CREATE USER clickpipes_user PASSWORD 'some-password'; ``` -2. テーブルをレプリケートするスキーマに対して、`clickpipes_user` に読み取り専用アクセス権を付与します。以下の例では、`public` スキーマに対する権限を設定しています。複数のスキーマにアクセス権を付与したい場合は、各スキーマに対してこれら 3 つのコマンドを実行します。 +2. 先ほど作成したユーザーに、スキーマ単位の読み取り専用アクセス権を付与します。次の例では `public` スキーマに対する権限を示しています。レプリケーションしたいテーブルを含む各スキーマに対して、これらのコマンドを繰り返し実行してください。 ```sql GRANT USAGE ON SCHEMA "public" TO clickpipes_user; @@ -51,17 +52,31 @@ ClickPipes は Postgres バージョン 12 以降をサポートしています ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; ``` -3. このユーザーにレプリケーション用のアクセス権を付与します。 +3. ユーザーにレプリケーション権限を付与します。 ```sql ALTER ROLE clickpipes_user REPLICATION; ``` -4. 後で MIRROR(レプリケーション)を作成する際に使用する publication を作成します。 +4. レプリケーションしたいテーブルを含む [publication](https://www.postgresql.org/docs/current/logical-replication-publication.html) を作成します。パフォーマンスへのオーバーヘッドを避けるため、publication には必要なテーブルのみを含めることを強く推奨します。 - ```sql - CREATE PUBLICATION clickpipes_publication FOR ALL TABLES; - ``` + :::warning + publication に含めるテーブルはすべて、**主キー (primary key)** が定義されている _か_、**replica identity** が `FULL` に設定されている必要があります。スコープ設定のガイダンスについては [Postgres FAQ](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication) を参照してください。 + ::: + + - 特定のテーブル用の publication を作成する場合: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2; + ``` + + - 特定スキーマ内のすべてのテーブル用の publication を作成する場合: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public"; + ``` + + `clickpipes` publication には、指定されたテーブルから生成される変更イベントの集合が含まれ、後でレプリケーションストリームを取り込む際に使用されます。 5. `clickpipes_user` に対して `wal_sender_timeout` を 0 に設定します。 @@ -81,4 +96,4 @@ ClickPipes は Postgres バージョン 12 以降をサポートしています ## 次のステップ {#whats-next} これで、[ClickPipe を作成](../index.md)し、Postgres インスタンスから ClickHouse Cloud へデータの取り込みを開始できます。 -ClickPipe の作成プロセスで必要になるため、Postgres インスタンスのセットアップ時に使用した接続情報は必ずメモしておいてください。 +ClickPipe の作成プロセスで必要になるため、Postgres インスタンスのセットアップ時に使用した接続情報は必ずメモしておいてください。 \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/crunchy-postgres.md b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/crunchy-postgres.md index 5b3214f46b6..955cf3e004d 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/crunchy-postgres.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/crunchy-postgres.md @@ -11,6 +11,7 @@ import firewall_rules_crunchy_bridge from '@site/static/images/integrations/data import add_firewall_rules_crunchy_bridge from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/setup/crunchy-postgres/add_firewall_rules_crunchy_bridge.png' import Image from '@theme/IdealImage'; + # Crunchy Bridge Postgres ソース設定ガイド {#crunchy-bridge-postgres-source-setup-guide} ClickPipes は Postgres バージョン 12 以降をサポートしています。 @@ -25,17 +26,18 @@ SHOW max_wal_senders; -- should be 10 SHOW max_replication_slots; -- should be 10 ``` -## ClickPipes 用ユーザーの作成と権限付与 {#creating-clickpipes-user-and-granting-permissions} + +## ClickPipes ユーザーの作成と権限付与 {#creating-clickpipes-user-and-granting-permissions} `postgres` ユーザーで Crunchy Bridge Postgres に接続し、以下のコマンドを実行します。 -1. ClickPipes 専用の Postgres ユーザーを作成します。 +1. ClickPipes 用の専用ユーザーを作成します: ```sql CREATE USER clickpipes_user PASSWORD 'some-password'; ``` -2. テーブルをレプリケートする元となるスキーマに対して、`clickpipes_user` に読み取り専用アクセス権を付与します。以下の例では、`public` スキーマに対する権限を付与しています。複数のスキーマにアクセス権を付与したい場合は、各スキーマごとにこれら 3 つのコマンドを実行してください。 +2. 前の手順で作成したユーザーに対して、スキーマ単位の読み取り専用アクセス権を付与します。次の例は `public` スキーマに対する権限を示しています。レプリケートしたいテーブルを含む各スキーマに対して、これらのコマンドを繰り返してください。 ```sql GRANT USAGE ON SCHEMA "public" TO clickpipes_user; @@ -43,17 +45,31 @@ SHOW max_replication_slots; -- should be 10 ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; ``` -3. このユーザーにレプリケーション権限を付与します。 +3. ユーザーにレプリケーション権限を付与します: ```sql ALTER ROLE clickpipes_user REPLICATION; ``` -4. 今後 MIRROR(レプリケーション)を作成する際に使用する publication を作成します。 +4. レプリケートしたいテーブルを含む [publication](https://www.postgresql.org/docs/current/logical-replication-publication.html) を作成します。パフォーマンスへのオーバーヘッドを避けるため、publication には必要なテーブルのみを含めることを強く推奨します。 - ```sql - CREATE PUBLICATION clickpipes_publication FOR ALL TABLES; - ``` + :::warning + publication に含めるテーブルはすべて、**primary key** が定義されているか、**replica identity** が `FULL` に設定されている必要があります。スコープ設定に関するガイダンスについては [Postgres FAQs](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication) を参照してください。 + ::: + + - 特定のテーブルに対する publication を作成する場合: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2; + ``` + + - 特定のスキーマ内のすべてのテーブルに対する publication を作成する場合: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public"; + ``` + + `clickpipes` publication には、指定したテーブルから生成される変更イベント群が含まれ、後でレプリケーションストリームを取り込むために使用されます。 ## ClickPipes の IP アドレスを許可リストに追加する {#safe-list-clickpipes-ips} @@ -66,4 +82,4 @@ Crunchy Bridge で Firewall Rules を追加して、[ClickPipes IPs](../../index ## 次のステップ {#whats-next} これで、[ClickPipe を作成](../index.md)し、Postgres インスタンスから ClickHouse Cloud へデータの取り込みを開始できます。 -ClickPipe を作成する際に使用するため、Postgres インスタンスのセットアップ時に使用した接続情報を必ずメモしておいてください。 +ClickPipe を作成する際に使用するため、Postgres インスタンスのセットアップ時に使用した接続情報を必ずメモしておいてください。 \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/generic.md b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/generic.md index 9b3a484e7d8..69530590b73 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/generic.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/generic.md @@ -52,31 +52,49 @@ ClickPipes は Postgres バージョン 12 以降をサポートしています ``` 3. 上記のとおり構成に変更を加えた場合は、その変更を反映させるために Postgres インスタンスを再起動する必要があります。 -## 権限とパブリケーションを持つユーザーの作成 {#creating-a-user-with-permissions-and-publication} +## 権限とパブリケーションを設定したユーザーの作成 {#creating-a-user-with-permissions-and-publication} -CDC に必要な権限を持つ ClickPipes 用の新しいユーザーを作成し、 -さらにレプリケーションに使用するパブリケーションも作成します。 +管理者ユーザーとして Postgres インスタンスに接続し、次のコマンドを実行します。 -そのためには、Postgres インスタンスに接続し、次の SQL コマンドを実行します。 +1. ClickPipes 用の専用ユーザーを作成します: -```sql - CREATE USER clickpipes_user PASSWORD 'clickpipes_password'; - GRANT USAGE ON SCHEMA "public" TO clickpipes_user; - GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; - ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; + ```sql + CREATE USER clickpipes_user PASSWORD 'some-password'; + ``` --- Give replication permission to the USER - ALTER USER clickpipes_user REPLICATION; +2. 先ほど作成したユーザーに対して、スキーマレベルの読み取り専用アクセス権を付与します。次の例は `public` スキーマに対する権限を示しています。レプリケーションしたいテーブルを含む各スキーマに対して、これらのコマンドを繰り返してください。 + + ```sql + GRANT USAGE ON SCHEMA "public" TO clickpipes_user; + GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; + ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; + ``` --- Create a publication. We will use this when creating the pipe - CREATE PUBLICATION clickpipes_publication FOR ALL TABLES; -``` +3. ユーザーにレプリケーション権限を付与します。 -:::note + ```sql + ALTER ROLE clickpipes_user REPLICATION; + ``` -`clickpipes_user` と `clickpipes_password` を、使用したいユーザー名とパスワードに置き換えてください。 +4. レプリケーションしたいテーブルを対象とする [パブリケーション](https://www.postgresql.org/docs/current/logical-replication-publication.html) を作成します。パフォーマンスへの余計なオーバーヘッドを避けるため、パブリケーションには必要なテーブルのみを含めることを強く推奨します。 -::: + :::warning + パブリケーションに含めるすべてのテーブルは、**primary key** が定義されているか、**replica identity** が `FULL` に設定されている必要があります。スコープの設定に関するガイダンスについては [Postgres FAQs](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication) を参照してください。 + ::: + + - 特定のテーブルに対するパブリケーションを作成するには: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2; + ``` + + - 特定のスキーマ内のすべてのテーブルに対するパブリケーションを作成するには: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public"; + ``` + + `clickpipes` パブリケーションには、指定したテーブルから生成された変更イベントの集合が含まれ、後にレプリケーションストリームを取り込むために使用されます。 ## pg_hba.conf で ClickPipes ユーザーへの接続を有効にする {#enabling-connections-in-pg_hbaconf-to-the-clickpipes-user} @@ -110,11 +128,12 @@ SELECT pg_reload_conf(); :::note -この値の最適な設定については、ClickPipes チームまでお問い合わせください。 +この値の最適な設定については、ClickPipes チームにお問い合わせください。 ::: + ## 次のステップ {#whats-next} これで、[ClickPipe を作成](../index.md)し、Postgres インスタンスから ClickHouse Cloud へデータの取り込みを開始できます。 -ClickPipe を作成する際に必要になるため、Postgres インスタンスのセットアップ時に使用した接続情報は必ず控えておいてください。 +ClickPipe を作成する際に必要になるため、Postgres インスタンスのセットアップ時に使用した接続情報は必ず控えておいてください。 \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql.md b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql.md index 7d1b090732f..b2d24854666 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql.md @@ -17,6 +17,7 @@ import firewall1 from '@site/static/images/integrations/data-ingestion/clickpipe import firewall2 from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/firewall2.png'; import Image from '@theme/IdealImage'; + # Google Cloud SQL Postgres ソースセットアップガイド {#google-cloud-sql-postgres-source-setup-guide} :::info @@ -40,20 +41,22 @@ Postgres 12 以降のすべてのバージョン 2. Flags タブに移動し、`cloudsql.logical_decoding` を on に、`wal_sender_timeout` を 0 に変更します。これらの変更を反映するには Postgres サーバーの再起動が必要です。 cloudsql.logical_decoding を on に変更 + cloudsql.logical_decoding と wal_sender_timeout を変更 + サーバーを再起動 ## ClickPipes ユーザーの作成と権限付与 {#creating-clickpipes-user-and-granting-permissions} -管理ユーザーで Cloud SQL の Postgres に接続し、以下のコマンドを実行します。 +admin ユーザーで Cloud SQL Postgres に接続し、以下のコマンドを実行します。 -1. ClickPipes 専用の Postgres ユーザーを作成します。 +1. ClickPipes 用の専用ユーザーを作成します: ```sql CREATE USER clickpipes_user PASSWORD 'some-password'; ``` -2. テーブルをレプリケートするスキーマに対して、`clickpipes_user` に読み取り専用アクセスを付与します。以下の例では、`public` スキーマに対する権限を設定しています。複数のスキーマにアクセス権を付与したい場合は、各スキーマごとにこれら 3 つのコマンドを実行してください。 +2. 前の手順で作成したユーザーに対して、スキーマ単位の読み取り専用アクセス権を付与します。次の例では `public` スキーマに対する権限を示しています。レプリケーション対象とするテーブルを含む各スキーマに対して、これらのコマンドを繰り返してください: ```sql GRANT USAGE ON SCHEMA "public" TO clickpipes_user; @@ -61,17 +64,31 @@ Postgres 12 以降のすべてのバージョン ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; ``` -3. このユーザーにレプリケーション用のアクセス権を付与します。 +3. ユーザーにレプリケーション権限を付与します: ```sql ALTER ROLE clickpipes_user REPLICATION; ``` -4. 今後 MIRROR(レプリケーション)を作成する際に使用する publication を作成します。 +4. レプリケーション対象とするテーブルを含む [publication](https://www.postgresql.org/docs/current/logical-replication-publication.html) を作成します。パフォーマンスのオーバーヘッドを避けるため、publication には必要なテーブルだけを含めることを強く推奨します。 - ```sql - CREATE PUBLICATION clickpipes_publication FOR ALL TABLES; - ``` + :::warning + publication に含めるすべてのテーブルには、**primary key** が定義されているか、**replica identity** が `FULL` に設定されている必要があります。スコープの決め方については [Postgres FAQs](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication) を参照してください。 + ::: + + - 特定のテーブル用の publication を作成するには: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2; + ``` + + - 特定のスキーマ内のすべてのテーブル用の publication を作成するには: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public"; + ``` + + `clickpipes` publication には、指定したテーブルから生成された変更イベントのセットが含まれ、後でレプリケーションストリームを取り込むために使用されます。 [//]: # (TODO SSH トンネリングを追加) @@ -101,4 +118,4 @@ SSH Tunneling を使用している場合は、[ClickPipes の IP](../../index.m ## 次のステップ {#whats-next} これで、[ClickPipe を作成](../index.md)して、Postgres インスタンスから ClickHouse Cloud へデータの取り込みを開始できます。 -ClickPipe を作成する際に必要になるため、Postgres インスタンスのセットアップ時に使用した接続情報を必ず控えておいてください。 +ClickPipe を作成する際に必要になるため、Postgres インスタンスのセットアップ時に使用した接続情報を必ず控えておいてください。 \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/neon-postgres.md b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/neon-postgres.md index a4034bbec01..8faccc5be47 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/neon-postgres.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/neon-postgres.md @@ -7,13 +7,13 @@ doc_type: 'guide' keywords: ['clickpipes', 'postgresql', 'CDC(変更データキャプチャ)', 'インジェスト', 'リアルタイム同期'] --- -import neon_commands from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/setup/neon-postgres/neon-commands.png' import neon_enable_replication from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/setup/neon-postgres/neon-enable-replication.png' import neon_enabled_replication from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/setup/neon-postgres/neon-enabled-replication.png' import neon_ip_allow from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/setup/neon-postgres/neon-ip-allow.png' import neon_conn_details from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/setup/neon-postgres/neon-conn-details.png' import Image from '@theme/IdealImage'; + # Neon Postgres ソースセットアップガイド {#neon-postgres-source-setup-guide} 本ガイドでは、ClickPipes でレプリケーション元として利用できる Neon Postgres のセットアップ方法について説明します。 @@ -21,28 +21,47 @@ import Image from '@theme/IdealImage'; ## 権限を持つユーザーの作成 {#creating-a-user-with-permissions} -CDC に適した必要な権限を付与した ClickPipes 用の新しいユーザーを作成し、 -レプリケーションに使用する publication も作成します。 +管理者ユーザーとして Neon インスタンスに接続し、次のコマンドを実行します。 -そのためには、**SQL Editor** タブを開きます。 -ここで、次の SQL コマンドを実行できます。 +1. ClickPipes 専用のユーザーを作成します: -```sql - CREATE USER clickpipes_user PASSWORD 'clickpipes_password'; - GRANT USAGE ON SCHEMA "public" TO clickpipes_user; - GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; - ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; + ```sql + CREATE USER clickpipes_user PASSWORD 'some-password'; + ``` --- Give replication permission to the USER - ALTER USER clickpipes_user REPLICATION; +2. 前の手順で作成したユーザーに対して、スキーマ単位の読み取り専用アクセス権を付与します。次の例では、`public` スキーマに対する権限を示しています。レプリケーションしたいテーブルを含む各スキーマについて、これらのコマンドを繰り返してください。 + + ```sql + GRANT USAGE ON SCHEMA "public" TO clickpipes_user; + GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; + ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; + ``` --- Create a publication. We will use this when creating the mirror - CREATE PUBLICATION clickpipes_publication FOR ALL TABLES; -``` +3. ユーザーにレプリケーション権限を付与します: + + ```sql + ALTER ROLE clickpipes_user REPLICATION; + ``` + +4. レプリケーションしたいテーブルを含む [publication](https://www.postgresql.org/docs/current/logical-replication-publication.html) を作成します。パフォーマンスへのオーバーヘッドを避けるため、publication には必要なテーブルのみを含めることを強く推奨します。 + + :::warning + publication に含めるテーブルには、**主キー** が定義されているか、**replica identity** が `FULL` に設定されている必要があります。スコープ設定のガイドラインについては、[Postgres FAQs](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication) を参照してください。 + ::: -ユーザーとパブリケーションのコマンド + - 特定のテーブルに対する publication を作成する場合: -**Run** をクリックして、パブリケーションとユーザーを作成します。 + ```sql + CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2; + ``` + + - 特定のスキーマ内のすべてのテーブルに対する publication を作成する場合: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public"; + ``` + + `clickpipes` publication には、指定したテーブルから生成される変更イベントのセットが含まれ、後でレプリケーションストリームを取り込むために使用されます。 ## ロジカルレプリケーションを有効化する {#enable-logical-replication} @@ -55,7 +74,7 @@ Neon では、UI からロジカルレプリケーションを有効化できま ロジカルレプリケーションが有効になった状態 -Neon の Postgres インスタンスで、次の設定を確認しましょう: +Neon の Postgres インスタンスで、次の設定を確認しましょう: ```sql SHOW wal_level; -- should be logical @@ -63,13 +82,16 @@ SHOW max_wal_senders; -- should be 10 SHOW max_replication_slots; -- should be 10 ``` + ## IP ホワイトリスト登録(Neon Enterprise プラン向け) {#ip-whitelisting-for-neon-enterprise-plan} + Neon Enterprise プランをご利用の場合、[ClickPipes の IP アドレス](../../index.md#list-of-static-ips) をホワイトリストに登録することで、ClickPipes から Neon Postgres インスタンスへのレプリケーションを許可できます。 そのためには、**Settings** タブをクリックし、**IP Allow** セクションに移動します。 IP 許可画面 ## 接続情報をコピーする {#copy-connection-details} + ユーザーと publication の準備が整い、レプリケーションが有効になったので、新しい ClickPipe を作成するために接続情報をコピーします。 **Dashboard** を開き、接続文字列が表示されているテキストボックスで、 表示を **Parameters Only** に切り替えます。次の手順でこれらのパラメータを使用します。 @@ -79,4 +101,4 @@ Neon Enterprise プランをご利用の場合、[ClickPipes の IP アドレス ## 次のステップ {#whats-next} これで [ClickPipe を作成](../index.md) し、Postgres インスタンスから ClickHouse Cloud へデータの取り込みを開始できます。 -ClickPipe を作成する際に必要になるため、Postgres インスタンスのセットアップ時に使用した接続情報は必ず控えておいてください。 +ClickPipe を作成する際に必要になるため、Postgres インスタンスのセットアップ時に使用した接続情報は必ず控えておいてください。 \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/planetscale.md b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/planetscale.md index 87f6e41576a..af3aa7fea85 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/planetscale.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/planetscale.md @@ -11,6 +11,7 @@ import planetscale_wal_level_logical from '@site/static/images/integrations/data import planetscale_max_slot_wal_keep_size from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/planetscale/planetscale_max_slot_wal_keep_size.png'; import Image from '@theme/IdealImage'; + # PlanetScale for Postgres ソースセットアップガイド {#planetscale-for-postgres-source-setup-guide} :::info @@ -47,31 +48,50 @@ PlanetScale コンソールでこの設定を変更すると、再起動が発 ## 権限とパブリケーションを持つユーザーの作成 {#creating-a-user-with-permissions-and-publication} -CDC に必要な権限を付与した ClickPipes 用の新しいユーザーを作成し、 -あわせてレプリケーションに使用するパブリケーションも作成します。 +デフォルトの `postgres.<...>` ユーザーを使用して PlanetScale Postgres インスタンスに接続し、次のコマンドを実行します。 -そのために、デフォルトの `postgres.<...>` ユーザーを使用して PlanetScale Postgres インスタンスに接続し、次の SQL コマンドを実行します。 +1. ClickPipes 専用のユーザーを作成します: -```sql - CREATE USER clickpipes_user PASSWORD 'clickpipes_password'; - GRANT USAGE ON SCHEMA "public" TO clickpipes_user; --- You may need to grant these permissions on more schemas depending on the tables you're moving - GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; - ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; + ```sql + CREATE USER clickpipes_user PASSWORD 'some-password'; + ``` --- Give replication permission to the USER - ALTER USER clickpipes_user REPLICATION; +2. 前の手順で作成したユーザーに対して、スキーマ単位の読み取り専用アクセス権を付与します。次の例では、`public` スキーマに対する権限を示しています。レプリケーションしたいテーブルを含む各スキーマに対して、これらのコマンドを繰り返してください。 --- Create a publication. We will use this when creating the pipe --- When adding new tables to the ClickPipe, you'll need to manually add them to the publication as well. - CREATE PUBLICATION clickpipes_publication FOR TABLE <...>, <...>, <...>; -``` + ```sql + GRANT USAGE ON SCHEMA "public" TO clickpipes_user; + GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; + ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; + ``` -:::note -`clickpipes_user` と `clickpipes_password` を、必ずご希望のユーザー名とパスワードに置き換えてください。 -::: +3. ユーザーにレプリケーション権限を付与します: + + ```sql + GRANT rds_replication TO clickpipes_user; + ``` + +4. レプリケーションしたいテーブルを含む[パブリケーション](https://www.postgresql.org/docs/current/logical-replication-publication.html)を作成します。パフォーマンスへの余分な負荷を避けるため、パブリケーションには必要なテーブルのみを含めることを強く推奨します。 + + :::warning + パブリケーションに含めるすべてのテーブルは、**primary key** が定義されているか、**replica identity** が `FULL` に設定されている必要があります。スコープ設定の指針については、[Postgres FAQs](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication) を参照してください。 + ::: + + - 特定のテーブルに対するパブリケーションを作成するには: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2; + ``` + + - 特定スキーマ内のすべてのテーブルに対するパブリケーションを作成するには: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public"; + ``` + + `clickpipes` パブリケーションには、指定したテーブルから生成される変更イベント群が含まれ、後でレプリケーション・ストリームを取り込むために使用されます。 ## 注意事項 {#caveats} + 1. PlanetScale Postgres に接続するには、上で作成したユーザー名に現在のブランチ名を付加する必要があります。たとえば、作成したユーザーが `clickpipes_user` という名前だった場合、ClickPipe 作成時に指定する実際のユーザー名は `clickpipes_user`.`branch` とする必要があります。このとき `branch` は、現在の PlanetScale Postgres の[ブランチ](https://planetscale.com/docs/postgres/branching)の "id" を指します。これを手早く確認するには、先ほどユーザー作成に使用した `postgres` ユーザーのユーザー名を参照してください。ピリオド以降の部分がブランチ ID になります。 2. PlanetScale Postgres に接続する CDC パイプには `PSBouncer` ポート(現在 `6432`)を使用しないでください。通常のポート `5432` を使用する必要があります。初回ロード専用のパイプであれば、どちらのポートも使用できます。 3. 必ずプライマリインスタンスのみに接続していることを確認してください。[レプリカインスタンスへの接続](https://planetscale.com/docs/postgres/scaling/replicas#how-to-query-postgres-replicas)は現在サポートされていません。 @@ -79,4 +99,4 @@ CDC に必要な権限を付与した ClickPipes 用の新しいユーザーを ## 次のステップ {#whats-next} これで、[ClickPipe を作成](../index.md)し、Postgres インスタンスから ClickHouse Cloud へデータの取り込みを開始できます。 -ClickPipe を作成する際に利用するため、Postgres インスタンスのセットアップ時に使用した接続情報を必ず控えておいてください。 +ClickPipe を作成する際に利用するため、Postgres インスタンスのセットアップ時に使用した接続情報を必ず控えておいてください。 \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/rds.md b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/rds.md index 8f2c769272e..36d11dce5c6 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/rds.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/rds.md @@ -16,6 +16,7 @@ import security_group_in_rds_postgres from '@site/static/images/integrations/dat import edit_inbound_rules from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/rds/edit_inbound_rules.png'; import Image from '@theme/IdealImage'; + # RDS Postgres ソース設定ガイド {#rds-postgres-source-setup-guide} ## サポートされている Postgres のバージョン {#supported-postgres-versions} @@ -65,17 +66,18 @@ postgres=> SHOW wal_sender_timeout ; RDS Postgres の再起動 + ## データベースユーザーの設定 {#configure-database-user} -管理者権限を持つユーザーで RDS Postgres インスタンスに接続し、次のコマンドを実行します。 +管理ユーザーとして RDS Postgres インスタンスに接続し、次のコマンドを実行します。 -1. ClickPipes 用の専用ユーザーを作成します: +1. ClickPipes 用の専用ユーザーを作成します: ```sql CREATE USER clickpipes_user PASSWORD 'some-password'; ``` -2. スキーマの権限を付与します。次の例では、`public` スキーマに対する権限を示しています。レプリケーションしたい各スキーマに対して、これらのコマンドを繰り返してください: +2. 前の手順で作成したユーザーに、スキーマ単位の読み取り専用アクセス権を付与します。次の例では、`public` スキーマに対する権限を示しています。レプリケーション対象とするテーブルを含む各スキーマに対して、これらのコマンドを繰り返してください: ```sql GRANT USAGE ON SCHEMA "public" TO clickpipes_user; @@ -83,17 +85,31 @@ postgres=> SHOW wal_sender_timeout ; ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; ``` -3. レプリケーション権限を付与します: +3. ユーザーにレプリケーション権限を付与します: ```sql GRANT rds_replication TO clickpipes_user; ``` -4. レプリケーション用のパブリケーションを作成します: +4. レプリケーション対象とするテーブルを含む [publication](https://www.postgresql.org/docs/current/logical-replication-publication.html) を作成します。パフォーマンスへのオーバーヘッドを避けるため、publication には必要なテーブルのみを含めることを強く推奨します。 - ```sql - CREATE PUBLICATION clickpipes_publication FOR ALL TABLES; - ``` + :::warning + publication に含めるテーブルはすべて、**primary key** が定義されているか、**replica identity** が `FULL` に設定されている必要があります。スコープ設定については [Postgres FAQs](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication) を参照してください。 + ::: + + - 特定のテーブルに対する publication を作成するには: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2; + ``` + + - 特定のスキーマ内のすべてのテーブルに対する publication を作成するには: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public"; + ``` + + `clickpipes` publication には、指定したテーブルから生成される変更イベントの一連の集合が含まれ、後でレプリケーションストリームを取り込む際に使用されます。 ## ネットワークアクセスを設定する {#configure-network-access} @@ -110,6 +126,7 @@ RDS インスタンスへのトラフィックを制限する場合は、[ドキ RDS インスタンスへプライベートネットワーク経由で接続するには、AWS PrivateLink を使用できます。接続を設定するには、[ClickPipes 向け AWS PrivateLink セットアップガイド](/knowledgebase/aws-privatelink-setup-for-clickpipes) に従ってください。 ### RDS Proxy の回避策 {#workarounds-for-rds-proxy} + RDS Proxy はロジカルレプリケーション接続をサポートしていません。RDS の IP アドレスが動的で、DNS 名や Lambda 関数を利用できない場合は、次のような代替策があります。 1. cron ジョブを使用して、RDS エンドポイントの IP を定期的に名前解決し、変更されている場合は NLB を更新する。 @@ -120,4 +137,4 @@ RDS Proxy はロジカルレプリケーション接続をサポートしてい ## 次のステップ {#whats-next} これで、[ClickPipe を作成](../index.md)し、Postgres インスタンスから ClickHouse Cloud へデータの取り込みを開始できます。 -ClickPipe を作成する際に必要になるため、Postgres インスタンスをセットアップしたときに使用した接続情報は必ず控えておいてください。 +ClickPipe を作成する際に必要になるため、Postgres インスタンスをセットアップしたときに使用した接続情報は必ず控えておいてください。 \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/supabase.md b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/supabase.md index ec2718008da..020bd545f4b 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/supabase.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/supabase.md @@ -11,6 +11,7 @@ import supabase_commands from '@site/static/images/integrations/data-ingestion/c import supabase_connection_details from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/setup/supabase/supabase-connection-details.jpg' import Image from '@theme/IdealImage'; + # Supabase ソースセットアップガイド {#supabase-source-setup-guide} 本ガイドでは、ClickPipes で利用するための Supabase の Postgres データベースのセットアップ方法について説明します。 @@ -21,38 +22,49 @@ ClickPipes は、シームレスなレプリケーションのために、Supaba ::: -## 権限とレプリケーションスロットを持つユーザーの作成 {#creating-a-user-with-permissions-and-replication-slot} +## 権限およびレプリケーションスロットを持つユーザーの作成 {#creating-a-user-with-permissions-and-replication-slot} -CDC に適した必要な権限を付与した ClickPipes 用の新しいユーザーを作成し、 -レプリケーションに使用するパブリケーションも作成します。 +管理者ユーザーとして Supabase インスタンスに接続し、次のコマンドを実行します。 -そのために、Supabase プロジェクトの **SQL Editor** を開きます。 -ここで、次の SQL コマンドを実行します。 +1. ClickPipes 専用のユーザーを作成します。 -```sql - CREATE USER clickpipes_user PASSWORD 'clickpipes_password'; - GRANT USAGE ON SCHEMA "public" TO clickpipes_user; - GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; - ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; + ```sql + CREATE USER clickpipes_user PASSWORD 'some-password'; + ``` --- Give replication permission to the USER - ALTER USER clickpipes_user REPLICATION; +2. 前の手順で作成したユーザーに対して、スキーマレベルの読み取り専用アクセス権を付与します。次の例は `public` スキーマに対する権限を示しています。レプリケートしたいテーブルを含む各スキーマに対して、これらのコマンドを繰り返してください。 + + ```sql + GRANT USAGE ON SCHEMA "public" TO clickpipes_user; + GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; + ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; + ``` --- Create a publication. We will use this when creating the mirror - CREATE PUBLICATION clickpipes_publication FOR ALL TABLES; -``` +3. ユーザーにレプリケーション権限を付与します。 -ユーザーとパブリケーションのコマンド + ```sql + ALTER ROLE clickpipes_user REPLICATION; + ``` -**Run** をクリックして、パブリケーションとユーザーを準備します。 +4. レプリケートしたいテーブルを含む [publication](https://www.postgresql.org/docs/current/logical-replication-publication.html) を作成します。パフォーマンスへのオーバーヘッドを避けるため、publication には必要なテーブルのみを含めることを強く推奨します。 -:::note + :::warning + publication に含めるすべてのテーブルは、**primary key** が定義されているか、**replica identity** が `FULL` に設定されている必要があります。スコープ設定の指針については [Postgres FAQs](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication) を参照してください。 + ::: -`clickpipes_user` と `clickpipes_password` は、任意のユーザー名とパスワードに置き換えてください。 + - 特定のテーブルに対する publication を作成する場合: -また、ClickPipes でミラーを作成する際には、必ず同じパブリケーション名を使用してください。 + ```sql + CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2; + ``` -::: + - 特定のスキーマ内のすべてのテーブルに対する publication を作成する場合: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public"; + ``` + + `clickpipes` publication には、指定したテーブルから生成される変更イベントの一連の集合が含まれ、後でレプリケーションストリームを取り込む際に使用されます。 ## `max_slot_wal_keep_size` を増やす {#increase-max_slot_wal_keep_size} @@ -88,7 +100,8 @@ ClickPipes の Postgres ユーザーは RLS ポリシーで制限してはいけ ALTER USER clickpipes_user BYPASSRLS; ``` + ## 次のステップ {#whats-next} これで、[ClickPipe を作成](../index.md)し、Postgres インスタンスから ClickHouse Cloud へのデータ取り込みを開始できます。 -Postgres インスタンスをセットアップする際に使用した接続情報は、ClickPipe の作成時にも必要になるため、必ず控えておいてください。 +Postgres インスタンスをセットアップする際に使用した接続情報は、ClickPipe の作成時にも必要になるため、必ず控えておいてください。 \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/timescale.md b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/timescale.md index a791f94ea51..ad44d7ef166 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/timescale.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/timescale.md @@ -9,6 +9,7 @@ doc_type: 'guide' import BetaBadge from '@theme/badges/BetaBadge'; + # TimescaleDB 拡張付き Postgres ソースのセットアップガイド {#postgres-with-timescaledb-source-setup-guide} @@ -58,40 +59,47 @@ Timescale のハイパーテーブル自体には、挿入されたデータは データの一度限りのロード(`Initial Load Only`)のみを行いたい場合は、手順 2 以降をスキップしてください。 ::: -1. ClickPipe 用の Postgres ユーザーを作成し、レプリケーションしたいテーブルに対する `SELECT` 権限を付与します。 +1. ClickPipes 用の Postgres ユーザーを作成します。 -```sql - CREATE USER clickpipes_user PASSWORD 'clickpipes_password'; - GRANT USAGE ON SCHEMA "public" TO clickpipes_user; - -- If desired, you can refine these GRANTs to individual tables alone, instead of the entire schema - -- But when adding new tables to the ClickPipe, you'll need to add them to the user as well. - GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; - ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; -``` + ```sql + CREATE USER clickpipes_user PASSWORD 'some-password'; + ``` -:::note -`clickpipes_user` と `clickpipes_password` は、必ず任意のユーザー名とパスワードに置き換えてください。 -::: +2. 前の手順で作成したユーザーに対して、スキーマレベルの読み取り専用アクセス権を付与します。次の例では、`public` スキーマに対する権限を示しています。レプリケーションしたいテーブルを含む各スキーマに対して、これらのコマンドを繰り返してください。 -2. PostgreSQL のスーパーユーザー/管理ユーザーとして、レプリケーションしたいテーブルおよびハイパーテーブルに加え、**`_timescaledb_internal` スキーマ全体を含む** publication をソースインスタンス上に作成します。ClickPipe を作成する際には、この publication を選択する必要があります。 + ```sql + GRANT USAGE ON SCHEMA "public" TO clickpipes_user; + GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; + ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; + ``` -```sql --- When adding new tables to the ClickPipe, you'll need to add them to the publication as well manually. - CREATE PUBLICATION clickpipes_publication FOR TABLE <...>, <...>, TABLES IN SCHEMA _timescaledb_internal; -``` +3. ユーザーにレプリケーション権限を付与します。 -:::tip -`FOR ALL TABLES` で publication を作成することは推奨しません。その場合、Postgres から ClickPipes へのトラフィック(パイプに含まれていない他のテーブルの変更送信)が増加し、全体的な効率が低下します。 + ```sql + GRANT rds_replication TO clickpipes_user; + ``` -publication を手動で作成する場合は、パイプに追加する前に、対象とするテーブルをすべて publication に追加してください。 -::: +4. レプリケーションしたいテーブルを含む [publication](https://www.postgresql.org/docs/current/logical-replication-publication.html) を作成します。パフォーマンスのオーバーヘッドを避けるため、publication には必要なテーブルのみを含めることを強く推奨します。 -:::info -一部のマネージドサービスでは、スキーマ全体に対する publication を作成するために必要な権限が管理者ユーザーに付与されていません。 -この場合は、プロバイダーにサポートチケットを起票してください。あるいは、この手順と後続の手順をスキップし、一度きりのデータロードを実行することもできます。 -::: + :::warning + publication に含めるテーブルはすべて、**主キー** が定義されているか、**replica identity** が `FULL` に設定されている必要があります。スコープ設定のガイダンスについては、[Postgres FAQs](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication) を参照してください。 + ::: + + * 特定のテーブル向けに publication を作成するには、次のようにします。 + + ```sql + CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2; + ``` + + * 特定スキーマ内のすべてのテーブル向けに publication を作成するには、次のようにします。 -3. 先ほど作成したユーザーにレプリケーション権限を付与します。 + ```sql + CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public"; + ``` + + `clickpipes` publication には、指定したテーブルから生成される変更イベントの集合が含まれ、後でレプリケーションストリームを取り込むために使用されます。 + +5. 先ほど作成したユーザーにレプリケーション権限を付与します。 ```sql -- Give replication permission to the USER @@ -100,7 +108,8 @@ publication を手動で作成する場合は、パイプに追加する前に これらの手順が完了すると、[ClickPipe を作成](../index.md)できるようになります。 + ## ネットワークアクセスの構成 {#configure-network-access} Timescale インスタンスへのトラフィックを制限したい場合は、[ドキュメントに記載されている静的 NAT IP](../../index.md#list-of-static-ips) を許可リストに登録してください。 -具体的な手順はプロバイダーによって異なります。ご利用のプロバイダーがサイドバーに記載されている場合はその手順に従い、記載がない場合はプロバイダーに問い合わせチケットを送信して確認してください。 +具体的な手順はプロバイダーによって異なります。ご利用のプロバイダーがサイドバーに記載されている場合はその手順に従い、記載がない場合はプロバイダーに問い合わせチケットを送信して確認してください。 \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/language-clients/cpp.md b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/language-clients/cpp.md index 8126fcc532c..e55e9e372b4 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/language-clients/cpp.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/language-clients/cpp.md @@ -72,11 +72,11 @@ ClickHouse Cloud インスタンスに接続する方法を示します。 clickhouse::Client client{ clickhouse::ClientOptions{} - .SetHost("your.instance.clickhouse.cloud") - .SetUser("default") - .SetPassword("your-password") + .SetHost("your.instance.clickhouse.cloud") + .SetUser("default") + .SetPassword("your-password") .SetSSLOptions({}) // Enable SSL - .SetPort(9440) // for connections over SS ClickHouse Cloud uses 9440 + .SetPort(9440) // for connections over SSL ClickHouse Cloud uses port 9440 }; ``` diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md index 7c4dfbe86b5..b761f328733 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md @@ -12,6 +12,11 @@ integration: - website: 'https://github.com/ClickHouse/clickhouse-cs' --- +import Image from '@theme/IdealImage'; +import cloud_connect_button from '@site/static/images/_snippets/cloud-connect-button.png'; +import connection_details_csharp from '@site/static/images/_snippets/connection-details-csharp.png'; + + # ClickHouse C# クライアント {#clickhouse-c-client} ClickHouse に接続するための公式の C# クライアントです。 @@ -37,8 +42,6 @@ ClickHouse に接続するための公式の C# クライアントです。 * .NET 9.0 * .NET 10.0 ---- - ## インストール {#installation} NuGet からパッケージをインストールします: @@ -53,7 +56,6 @@ dotnet add package ClickHouse.Driver Install-Package ClickHouse.Driver ``` -*** ## クイックスタート {#quick-start} @@ -67,70 +69,152 @@ using (var connection = new ClickHouseConnection("Host=my.clickhouse;Protocol=ht } ``` -**Dapper** を利用する: -```csharp -using Dapper; -using ClickHouse.Driver.ADO; +## 設定 {#configuration} -using (var connection = new ClickHouseConnection("Host=my.clickhouse")) -{ - var result = await connection.QueryAsync("SELECT name FROM system.databases"); - Console.WriteLine(string.Join('\n', result)); -} -``` +ClickHouse への接続を構成する方法は 2 つあります。 -*** +* **接続文字列:** ホスト、認証情報、その他の接続オプションを指定する、セミコロン区切りのキー/値ペアです。 +* **`ClickHouseClientSettings` オブジェクト:** 設定ファイルから読み込むこともコード内で設定することもできる、厳密に型付けされた構成オブジェクトです。 -## 使用方法 {#usage} +以下に、すべての設定項目、そのデフォルト値、およびそれらが与える影響の一覧を示します。 -### 接続文字列パラメータ {#connection-string} +### 接続設定 {#connection-settings} -| Parameter | Description | Default | -| ------------------- | ----------------------------------------------- | ------------------- | -| `Host` | ClickHouse サーバーアドレス | `localhost` | -| `Port` | ClickHouse サーバーポート | `8123` または `8443`(`Protocol` に依存) | -| `Database` | 初期データベース | `default` | -| `Username` | 認証ユーザー名 | `default` | -| `Password` | 認証パスワード | *(空)* | -| `Protocol` | 接続プロトコル(`http` または `https`) | `http` | -| `Compression` | Gzip 圧縮を有効化 | `true` | -| `UseSession` | 永続的なサーバーセッションを有効化 | `false` | -| `SessionId` | カスタムセッション ID | ランダムな GUID | -| `Timeout` | HTTP タイムアウト(秒) | `120` | -| `UseServerTimezone` | datetime 列にサーバータイムゾーンを使用 | `true` | -| `UseCustomDecimals` | 小数に `ClickHouseDecimal` を使用 | `false` | +| プロパティ | 型 | デフォルト値 | 接続文字列キー | 説明 | +|----------|------|---------|----------------------|-------------| +| Host | `string` | `"localhost"` | `Host` | ClickHouse サーバーのホスト名または IP アドレス | +| Port | `ushort` | 8123 (HTTP) / 8443 (HTTPS) | `Port` | ポート番号。プロトコルに応じたデフォルト値を使用します | +| Username | `string` | `"default"` | `Username` | 認証ユーザー名 | +| Password | `string` | `""` | `Password` | 認証パスワード | +| Database | `string` | `""` | `Database` | デフォルトデータベース。空の場合はサーバー/ユーザーのデフォルトを使用します | +| Protocol | `string` | `"http"` | `Protocol` | 接続プロトコル: `"http"` または `"https"` | +| Path | `string` | `null` | `Path` | リバースプロキシ構成時に使用する URL パス(例: `/clickhouse`) | +| Timeout | `TimeSpan` | 2 minutes | `Timeout` | 操作のタイムアウト値(接続文字列内では秒として保存) | -**例:** `Host=clickhouse;Port=8123;Username=default;Password=;Database=default` +### データ形式とシリアライゼーション {#data-format-serialization} -:::note セッション +| プロパティ | 型 | デフォルト | 接続文字列キー | 説明 | +|----------|------|---------|----------------------|-------------| +| UseCompression | `bool` | `true` | `Compression` | データ転送時に gzip 圧縮を有効にする | +| UseCustomDecimals | `bool` | `true` | `UseCustomDecimals` | 任意精度の数値に `ClickHouseDecimal` を使用。false の場合は .NET の `decimal`(128 ビット上限)を使用 | +| UseFormDataParameters | `bool` | `false` | `UseFormDataParameters` | パラメータを URL のクエリ文字列ではなくフォームデータとして送信 | -`UseSession` フラグを有効にすると、サーバーセッションが永続化され、`SET` 文や一時テーブルを使用できるようになります。セッションは 60 秒間アクティビティがない場合(デフォルトのタイムアウト)にリセットされます。セッションの有効期間は、ClickHouse ステートメントでセッション設定を行うことで延長できます。 +### セッション管理 {#session-management} -`ClickHouseConnection` クラスは通常、並列実行(複数スレッドによる同時クエリ実行)を許可します。しかし、`UseSession` フラグを有効にすると、任意の時点で 1 接続あたり 1 つのアクティブなクエリに制限されます(サーバー側の制約です)。 +| Property | Type | Default | Connection String Key | Description | +|----------|------|---------|----------------------|-------------| +| UseSession | `bool` | `false` | `UseSession` | ステートフルセッションを有効化し、リクエストを直列実行します | +| SessionId | `string` | `null` | `SessionId` | セッション ID。null かつ UseSession が true の場合、自動的に GUID を生成します | +:::note +`UseSession` フラグを有効にすると、サーバーセッションが永続化され、`SET` 文や一時テーブルを使用できるようになります。セッションは 60 秒間アクティビティがない場合(デフォルトのタイムアウト)にリセットされます。セッションの有効期間は、ClickHouse ステートメントまたはサーバー設定でセッション設定を行うことで延長できます。 + +`ClickHouseConnection` クラスは通常、並列実行(複数スレッドによる同時クエリ実行)を許可します。しかし、`UseSession` フラグを有効にすると、任意の時点で 1 接続あたり 1 つのアクティブなクエリに制限されます(これはサーバー側の制約です)。 ::: ---- +### セキュリティ {#security} -### 接続の有効期間とプーリング {#connection-lifetime} +| プロパティ | 型 | 既定値 | 接続文字列キー | 説明 | +|----------|------|---------|----------------------|-------------| +| SkipServerCertificateValidation | `bool` | `false` | — | HTTPS サーバー証明書の検証をスキップします。**本番環境では使用しないでください** | -`ClickHouse.Driver` は内部的に `System.Net.Http.HttpClient` を使用しています。`HttpClient` はエンドポイントごとに接続プールを持ちます。その結果: +### HTTP クライアントの構成 {#http-client-configuration} -* `ClickHouseConnection` オブジェクトは TCP 接続と 1:1 で対応していません。複数のデータベースセッションは、サーバーごとに複数の(デフォルトでは 2 本の)TCP 接続上で多重化されます。 -* `ClickHouseConnection` オブジェクトが破棄された後も、接続が維持される場合があります。 -* この挙動は、カスタムの `HttpClientHandler` を指定した独自の `HttpClient` を渡すことで調整できます。 +| プロパティ | 型 | 既定値 | 接続文字列キー | 説明 | +|----------|------|---------|----------------------|-------------| +| HttpClient | `HttpClient` | `null` | — | カスタム設定済みの HttpClient インスタンス | +| HttpClientFactory | `IHttpClientFactory` | `null` | — | HttpClient インスタンスを作成するためのカスタムファクトリ | +| HttpClientName | `string` | `null` | — | 特定のクライアントを作成するために HttpClientFactory で使用する名前 | + +### ロギングとデバッグ {#logging-debugging} + +| プロパティ | 型 | 既定値 | 接続文字列キー | 説明 | +|----------|------|---------|----------------------|-------------| +| LoggerFactory | `ILoggerFactory` | `null` | — | 診断ログ用の LoggerFactory | +| EnableDebugMode | `bool` | `false` | — | .NET ネットワークトレースを有効にする(ログレベルが Trace に設定された LoggerFactory が必要);**パフォーマンスに大きく影響します** | -DI 環境向けには、HTTP クライアントの設定を共通化できる専用コンストラクター `ClickHouseConnection(string connectionString, IHttpClientFactory httpClientFactory, string httpClientName = "")` が用意されています。 +### カスタム設定とロール {#custom-settings-roles} -**推奨事項:** +| プロパティ | 型 | デフォルト | 接続文字列キー | 説明 | +|----------|------|---------|----------------------|-------------| +| CustomSettings | `IDictionary` | 空 | `set_*` プレフィックス | ClickHouse サーバーの設定。下記の注記を参照 | +| Roles | `IReadOnlyList` | 空 | `Roles` | カンマ区切りの ClickHouse ロール(例: `Roles=admin,reader`) | -* `ClickHouseConnection` はサーバーとの「セッション」を表します。サーバーのバージョンを問い合わせることで機能検出を行うため(接続オープン時にわずかなオーバーヘッドがあります)が、一般的にはこのオブジェクトを何度も生成・破棄しても問題ありません。 -* コネクションの推奨ライフタイムは、複数のクエリにまたがる大きな「トランザクション」あたり 1 つの接続オブジェクトとすることです。接続の開始時にはわずかなオーバーヘッドがあるため、クエリごとに接続オブジェクトを生成することは推奨されません。 -* アプリケーションが大量のトランザクションを扱い、`ClickHouseConnection` オブジェクトの頻繁な生成・破棄が必要な場合は、接続管理に `IHttpClientFactory` または静的な `HttpClient` インスタンスを使用することを推奨します。 +:::note +接続文字列を使用してカスタム設定を指定する場合は、`set_` プレフィックスを使用します(例: `set_max_threads=4`)。ClickHouseClientSettings オブジェクトを使用する場合は、`set_` プレフィックスは使用しないでください。 + +利用可能な設定の一覧は[こちら](https://clickhouse.com/docs/operations/settings/settings)を参照してください。 +::: --- +### 接続文字列の例 {#connection-string-examples} + +#### 基本的な接続 {#basic-connection} + +```text +Host=localhost;Port=8123;Username=default;Password=secret;Database=mydb +``` + + +#### カスタム ClickHouse 設定を利用する {#with-custom-clickhouse-settings} + +```text +Host=localhost;set_max_threads=4;set_readonly=1;set_max_memory_usage=10000000000 +``` + + +## 使用方法 {#usage} + +### 接続 {#connecting} + +ClickHouse に接続するには、接続文字列または `ClickHouseClientSettings` オブジェクトを使用して `ClickHouseConnection` を作成します。利用可能なオプションについては、「[Configuration](#configuration)」セクションを参照してください。 + +ClickHouse Cloud サービスの接続情報は、ClickHouse Cloud コンソールで確認できます。 + +サービスを選択し、**Connect** をクリックします。 + +ClickHouse Cloud サービス接続ボタン + +**C#** を選択します。接続情報が下に表示されます。 + +ClickHouse Cloud の C# 接続情報 + +セルフマネージドの ClickHouse を使用している場合、接続情報は ClickHouse 管理者によって設定されます。 + +接続文字列を使用する場合: + +```csharp +using ClickHouse.Driver.ADO; + +using var connection = new ClickHouseConnection("Host=localhost;Username=default;Password=secret"); +await connection.OpenAsync(); +``` + +または `ClickHouseClientSettings` を使用する: + +```csharp +var settings = new ClickHouseClientSettings +{ + Host = "localhost", + Username = "default", + Password = "secret" +}; +using var connection2 = new ClickHouseConnection(settings); +await connection2.OpenAsync(); +``` + +:::note + +* `ClickHouseConnection` はサーバーとの「セッション」を表します。サーバーのバージョンを問い合わせるクエリを実行して利用可能な機能を検出するため、オープン時にわずかなオーバーヘッドが発生しますが、一般的にはこのオブジェクトを複数回作成および破棄しても安全です。 +* 接続の推奨ライフタイムは、複数のクエリにまたがる大きな「トランザクション」ごとに 1 つの接続オブジェクトとすることです。`ClickHouseConnection` オブジェクトは長期間存続させても構いません。接続の開始時にはわずかなオーバーヘッドがあるため、クエリごとに接続オブジェクトを作成することは推奨されません。 +* アプリケーションが大量のトランザクションを扱い、`ClickHouseConnection` オブジェクトを頻繁に作成・破棄する必要がある場合は、接続を管理するために `IHttpClientFactory` もしくは `HttpClient` の静的インスタンスを使用することを推奨します。 + ::: + +*** + + ### テーブルの作成 {#creating-a-table} 標準的な SQL 構文を使用してテーブルを作成します。 @@ -140,18 +224,19 @@ using ClickHouse.Driver.ADO; using (var connection = new ClickHouseConnection(connectionString)) { - connection.Open(); + await connection.OpenAsync(); using (var command = connection.CreateCommand()) { command.CommandText = "CREATE TABLE IF NOT EXISTS default.my_table (id Int64, name String) ENGINE = Memory"; - command.ExecuteNonQuery(); + await command.ExecuteNonQueryAsync(); } } ``` *** + ### データの挿入 {#inserting-data} パラメータ化されたクエリを使用してデータを挿入します。 @@ -161,22 +246,25 @@ using ClickHouse.Driver.ADO; using (var connection = new ClickHouseConnection(connectionString)) { - connection.Open(); + await connection.OpenAsync(); using (var command = connection.CreateCommand()) { command.AddParameter("id", "Int64", 1); command.AddParameter("name", "String", "test"); command.CommandText = "INSERT INTO default.my_table (id, name) VALUES ({id:Int64}, {name:String})"; - command.ExecuteNonQuery(); + await command.ExecuteNonQueryAsync(); } } ``` *** + ### 一括挿入 {#bulk-insert} +大量の行を挿入するには `ClickHouseBulkCopy` を使用します。ClickHouse のネイティブな行バイナリ形式を使って効率的にデータをストリーミングし、並列で動作し、データをバッチに分割できます。また、大きなパラメータセットによって発生する "URL too long" エラーといった制限も回避できます。 + `ClickHouseBulkCopy` を使用するには、次のものが必要です: * 対象接続(`ClickHouseConnection` インスタンス) @@ -188,7 +276,7 @@ using ClickHouse.Driver.ADO; using ClickHouse.Driver.Copy; using var connection = new ClickHouseConnection(connectionString); -connection.Open(); +await connection.OpenAsync(); using var bulkCopy = new ClickHouseBulkCopy(connection) { @@ -217,9 +305,12 @@ Console.WriteLine($"Rows written: {bulkCopy.RowsWritten}"); *** + ### SELECT クエリの実行 {#performing-select-queries} -SELECT クエリを実行して結果を処理します。 +`ExecuteReader()` または `ExecuteReaderAsync()` を使用して SELECT クエリを実行します。返される `DbDataReader` により、`GetInt64()`、`GetString()`、`GetFieldValue()` などのメソッドを通じて、結果カラムへ型付きでアクセスできます。 + +`Read()` を呼び出して次の行に進みます。行がこれ以上ない場合は `false` を返します。カラムには、インデックス(0 から始まる)またはカラム名でアクセスできます。 ```csharp using ClickHouse.Driver.ADO; @@ -227,13 +318,13 @@ using System.Data; using (var connection = new ClickHouseConnection(connectionString)) { - connection.Open(); - + await connection.OpenAsync(); + using (var command = connection.CreateCommand()) { command.AddParameter("id", "Int64", 10); command.CommandText = "SELECT * FROM default.my_table WHERE id < {id:Int64}"; - using var reader = command.ExecuteReader(); + using var reader = await command.ExecuteReaderAsync(); while (reader.Read()) { Console.WriteLine($"select: Id: {reader.GetInt64(0)}, Name: {reader.GetString(1)}"); @@ -244,179 +335,560 @@ using (var connection = new ClickHouseConnection(connectionString)) *** + +### SQL パラメータ {#sql-parameters} + +ClickHouse では、SQL クエリ内で使用するパラメータの標準的な形式は `{parameter_name:DataType}` です。 + +**例:** + +```sql +SELECT {value:Array(UInt16)} as a +``` + +```sql +SELECT * FROM table WHERE val = {tuple_in_tuple:Tuple(UInt8, Tuple(String, UInt8))} +``` + +```sql +INSERT INTO table VALUES ({val1:Int32}, {val2:Array(UInt8)}) +``` + +:::note +SQL「bind」パラメータは HTTP URI のクエリパラメータとして渡されるため、数が多すぎると「URL too long」例外が発生する可能性があります。ClickHouseBulkInsert を使用すると、この制限を回避できます。 +::: + +*** + + +### Query ID {#query-id} + +クエリを実行するすべてのメソッドは、結果に query_id を含みます。この一意の識別子はクエリごとにクライアントによって割り当てられ、(有効になっている場合)`system.query_log` テーブルからデータを取得したり、長時間実行中のクエリをキャンセルしたりするために使用できます。必要に応じて、ClickHouseCommand オブジェクトでユーザーが query_id を上書きすることもできます。 + +```csharp +var customQueryId = $"qid-{Guid.NewGuid()}"; + +using var command = connection.CreateCommand(); +command.CommandText = "SELECT version()"; +command.QueryId = customQueryId; + +var version = await command.ExecuteScalarAsync(); +Console.WriteLine($"QueryId: {command.QueryId}"); +``` + +:::tip +`QueryId` パラメータを上書きする場合は、呼び出しごとに一意であることを保証する必要があります。ランダムな GUID を使用するのが適しています。 +::: + +*** + + ### 生データストリーミング {#raw-streaming} +特定のフォーマットでデータを直接ストリーミングし、データリーダーを介さずに処理することができます。これは、データを特定のフォーマットでファイルに保存したい場合などに有用です。例えば、次のようにします。 + ```csharp using var command = connection.CreateCommand(); -command.Text = "SELECT * FROM default.my_table LIMIT 100 FORMAT JSONEachRow"; +command.CommandText = "SELECT * FROM default.my_table LIMIT 100 FORMAT JSONEachRow"; using var result = await command.ExecuteRawResultAsync(CancellationToken.None); using var stream = await result.ReadAsStreamAsync(); using var reader = new StreamReader(stream); -var json = reader.ReadToEnd(); +var json = await reader.ReadToEndAsync(); ``` *** -### ネストされたカラムのサポート {#nested-columns} -ClickHouse のネスト型(`Nested(...)`)は、配列と同様のセマンティクスで読み書きできます。 +### Raw ストリームでの挿入 {#raw-stream-insert} -```sql -CREATE TABLE test.nested ( - id UInt32, - params Nested (param_id UInt8, param_val String) -) ENGINE = Memory -``` +`InsertRawStreamAsync` を使用すると、CSV や JSON などの形式、または [ClickHouse がサポートする任意のフォーマット](/docs/interfaces/formats) で、ファイルストリームまたはメモリストリームから直接データを挿入できます。 -```csharp -using var bulkCopy = new ClickHouseBulkCopy(connection) -{ - DestinationTableName = "test.nested" -}; +**CSV ファイルからの挿入:** -var row1 = new object[] { 1, new[] { 1, 2, 3 }, new[] { "v1", "v2", "v3" } }; -var row2 = new object[] { 2, new[] { 4, 5, 6 }, new[] { "v4", "v5", "v6" } }; +```csharp +await using var fileStream = File.OpenRead("data.csv"); -await bulkCopy.WriteToServerAsync(new[] { row1, row2 }); +using var response = await connection.InsertRawStreamAsync( + table: "my_table", + stream: fileStream, + format: "CSV", + columns: ["id", "product", "price"]); // Optional: specify columns ``` +:::note +データ インジェストの挙動を制御するためのオプションについては、[format 設定のドキュメント](/docs/operations/settings/formats)を参照してください。 +::: + *** -### AggregateFunction 列 {#aggregatefunction-columns} -`AggregateFunction(...)` 型の列は、直接クエリしたりデータを挿入したりすることはできません。 +### その他のサンプル {#more-examples} -挿入するには: +さらに実践的な利用例については、GitHub リポジトリの [examples ディレクトリ](https://github.com/ClickHouse/clickhouse-cs/tree/main/examples) を参照してください。 -```sql -INSERT INTO t VALUES (uniqState(1)); -``` +## ベストプラクティス {#best-practices} -選択: +### 接続の有効期間とプーリング {#best-practices-connection-lifetime} -```sql -SELECT uniqMerge(c) FROM t; +`ClickHouse.Driver` は内部的に `System.Net.Http.HttpClient` を使用しています。`HttpClient` はエンドポイントごとに接続プールを持ちます。その結果: + +* `ClickHouseConnection` オブジェクトは TCP 接続と 1:1 で対応していません。複数のデータベースセッションは、サーバーごとに複数の TCP 接続上で多重化されます。 +* `ClickHouseConnection` オブジェクト自体は長期間存続させることができます。下層の実際の TCP 接続は、接続プールによってリサイクルされます。 +* 接続プールの管理は `HttpClient` に任せてください。`ClickHouseConnection` オブジェクトを自前でプーリングしないでください。 +* `ClickHouseConnection` オブジェクトが破棄された後も、接続が維持される場合があります。 +* この挙動は、カスタムの `HttpClientHandler` を使用するカスタムの `HttpClientFactory` または `HttpClient` を渡すことで調整できます。 + +DI 環境向けには、`ClickHouseConnection` が名前付き HTTP クライアントを要求できる専用コンストラクター `ClickHouseConnection(string connectionString, IHttpClientFactory httpClientFactory, string httpClientName = "")` が用意されています。 + +:::important +カスタムの `HttpClient` または `HttpClientFactory` を使用する場合は、ハーフクローズド接続に起因するエラーを回避するために、`PooledConnectionIdleTimeout` をサーバー側の `keep_alive_timeout` より小さい値に設定してください。Cloud デプロイメントにおけるデフォルトの `keep_alive_timeout` は 10 秒です。 +::: + +--- + +### DateTime の扱い {#best-practice-datetime} + +1. **可能な限り UTC を使用する。** タイムスタンプは `DateTime('UTC')` カラムとして保存し、コード内では `DateTimeKind.Utc` を使用します。これによりタイムゾーンに関する曖昧さを排除できます。 + +2. **明示的なタイムゾーン処理には `DateTimeOffset` を使用する。** 常に特定の瞬間を表し、オフセット情報を含みます。 + +3. **HTTP パラメータの型ヒントでタイムゾーンを指定する。** `Unspecified` の DateTime 値を、UTC ではない DateTime カラムに対するパラメータとして使用する場合: + ```csharp + command.AddParameter("dt", value, "DateTime('Europe/Amsterdam')"); + ``` + +--- + +### 非同期インサート {#async-inserts} + +[Async inserts](/docs/optimize/asynchronous-inserts) は、バッチングの責務をクライアントからサーバーに移します。クライアント側でのバッチングを必要とする代わりに、サーバーが受信データをバッファし、設定可能なしきい値に基づいてストレージへフラッシュします。これは、多数のエージェントが小さなペイロードを送信するオブザーバビリティ・ワークロードのような、高い同時実行性が求められるシナリオで有用です。 + +`CustomSettings` または接続文字列を使用して非同期インサートを有効にします: + +```csharp +// Using CustomSettings +var settings = new ClickHouseClientSettings("Host=localhost"); +settings.CustomSettings["async_insert"] = 1; +settings.CustomSettings["wait_for_async_insert"] = 1; // Recommended: wait for flush acknowledgment + +// Or via connection string +// "Host=localhost;set_async_insert=1;set_wait_for_async_insert=1" ``` +**2 つのモード**(`wait_for_async_insert` で制御): + +| Mode | Behavior | Use case | +| ------------------------- | --------------------------------------------------------- | --------------------- | +| `wait_for_async_insert=1` | データがディスクにフラッシュされてから INSERT の応答が返されます。エラーはクライアントに返されます。 | ほとんどのワークロードでの**推奨**設定 | +| `wait_for_async_insert=0` | データがバッファリングされた時点で直ちに INSERT の応答が返されます。データが永続化される保証はありません。 | データ損失が許容される場合のみ | + +:::warning +`wait_for_async_insert=0` の場合、エラーはフラッシュ時にのみ顕在化し、元の INSERT までさかのぼって追跡することはできません。クライアント側でもバックプレッシャーが一切かからないため、サーバー過負荷のリスクがあります。 +::: + +**主要な設定:** + +| Setting | Description | +| ------------------------------- | ------------------------------ | +| `async_insert_max_data_size` | バッファがこのサイズ(バイト数)に達したらフラッシュされます | +| `async_insert_busy_timeout_ms` | このタイムアウト(ミリ秒)経過後にフラッシュされます | +| `async_insert_max_query_number` | この数のクエリが蓄積したらフラッシュされます | + *** -### SQL パラメータ {#sql-parameters} -クエリにパラメータを渡すには、次の形式で ClickHouse のパラメータ書式を使用する必要があります。 +### セッション {#best-practices-sessions} -```sql -{:} -``` +サーバー側でステートフルな機能が必要な場合にのみ、セッションを有効にしてください。たとえば次のような場合です: -**例:** +* 一時テーブル(`CREATE TEMPORARY TABLE`) +* 複数の文にまたがるクエリコンテキストの保持 +* セッションレベルの設定(`SET max_threads = 4`) -```sql -SELECT {value:Array(UInt16)} as value -``` +セッションが有効な場合、同じセッションが同時に使用されないよう、リクエストは直列に処理されます。これは、セッション状態を必要としないワークロードに対してはオーバーヘッドとなります。 -```sql -SELECT * FROM table WHERE val = {tuple_in_tuple:Tuple(UInt8, Tuple(String, UInt8))} -``` +```csharp +var settings = new ClickHouseClientSettings +{ + Host = "localhost", + UseSession = true, + SessionId = "my-session", // Optional -- will be auto-generated if not provided +}; -```sql -INSERT INTO table VALUES ({val1:Int32}, {val2:Array(UInt8)}) +await using var connection = new ClickHouseConnection(settings); +await connection.OpenAsync(); + +await using var cmd1 = connection.CreateCommand("CREATE TEMPORARY TABLE temp_ids (id UInt64)"); +await cmd1.ExecuteNonQueryAsync(); + +await using var cmd2 = connection.CreateCommand("INSERT INTO temp_ids VALUES (1), (2), (3)"); +await cmd2.ExecuteNonQueryAsync(); + +await using var cmd3 = connection.CreateCommand("SELECT * FROM users WHERE id IN (SELECT id FROM temp_ids)"); +await using var reader = await cmd3.ExecuteReaderAsync(); ``` + +## サポートされているデータ型 {#supported-data-types} + +`ClickHouse.Driver` は、すべての ClickHouse のデータ型をサポートします。以下の表では、データベースからデータを読み取る際の ClickHouse の型と .NET のネイティブ型とのマッピングを示します。 + +### 型マッピング: ClickHouse からの読み出し {#clickhouse-native-type-map-reading} + +#### 整数型 {#type-map-reading-integer} + +| ClickHouse 型 | .NET 型 | +|-----------------|-----------| +| Int8 | `sbyte` | +| UInt8 | `byte` | +| Int16 | `short` | +| UInt16 | `ushort` | +| Int32 | `int` | +| UInt32 | `uint` | +| Int64 | `long` | +| UInt64 | `ulong` | +| Int128 | `BigInteger` | +| UInt128 | `BigInteger` | +| Int256 | `BigInteger` | +| UInt256 | `BigInteger` | + +--- + +#### 浮動小数点数型 {#type-map-reading-floating-points} + +| ClickHouse Type | .NET Type | +|-----------------|-----------| +| Float32 | `float` | +| Float64 | `double` | +| BFloat16 | `float` | + +--- + +#### Decimal 型 {#type-map-reading-decimal} + +| ClickHouse Type | .NET Type | +|-----------------|-----------| +| Decimal(P, S) | `decimal` / `ClickHouseDecimal` | +| Decimal32(S) | `decimal` / `ClickHouseDecimal` | +| Decimal64(S) | `decimal` / `ClickHouseDecimal` | +| Decimal128(S) | `decimal` / `ClickHouseDecimal` | +| Decimal256(S) | `decimal` / `ClickHouseDecimal` | + :::note +Decimal 型の変換は、UseCustomDecimals 設定で制御されます。 +::: -* SQL「bind」パラメータは HTTP URI のクエリパラメータとして渡されるため、数が多すぎると「URL too long」例外が発生する可能性があります。 -* レコードを大量に挿入する場合は、Bulk Insert 機能の利用を検討してください。 - ::: +--- + +#### ブール型 {#type-map-reading-boolean} + +| ClickHouse 型 | .NET 型 | +|-----------------|-----------| +| Bool | `bool` | + +--- + +#### 文字列型 {#type-map-reading-strings} + +| ClickHouse 型 | .NET 型 | +|-----------------|-----------| +| String | `string` | +| FixedString(N) | `byte[]` | + +--- + +#### 日付および時刻型 {#type-map-reading-datetime} + +| ClickHouse Type | .NET Type | +| --------------- | ---------- | +| Date | `DateTime` | +| Date32 | `DateTime` | +| DateTime | `DateTime` | +| DateTime32 | `DateTime` | +| DateTime64 | `DateTime` | +| Time | `TimeSpan` | +| Time64 | `TimeSpan` | + +ClickHouse は `DateTime` および `DateTime64` の値を内部的には Unix タイムスタンプ(エポックからの経過秒数またはサブ秒単位)として保存します。保存は常に UTC ですが、カラムにはタイムゾーンを関連付けることができ、そのタイムゾーンに基づいて値の表示および解釈が行われます。 + +`DateTime` 値を読み取る際、`DateTime.Kind` プロパティはカラムのタイムゾーンに基づいて設定されます。 + +| Column Definition | Returned DateTime.Kind | Notes | +| ------------------------------ | ---------------------- | ---------------- | +| `DateTime('UTC')` | `Utc` | 明示的な UTC タイムゾーン | +| `DateTime('Europe/Amsterdam')` | `Unspecified` | オフセットが適用される | +| `DateTime` | `Unspecified` | 壁時計の時刻がそのまま保持される | + +UTC 以外のカラムの場合、返される `DateTime` はそのタイムゾーンにおける壁時計の時刻を表します。そのタイムゾーンに対する正しいオフセットを持つ `DateTimeOffset` を取得するには、`ClickHouseDataReader.GetDateTimeOffset()` を使用してください。 + +```csharp +var reader = (ClickHouseDataReader)await connection.ExecuteReaderAsync( + "SELECT toDateTime('2024-06-15 14:30:00', 'Europe/Amsterdam')"); +reader.Read(); + +var dt = reader.GetDateTime(0); // 2024-06-15 14:30:00, Kind=Unspecified +var dto = reader.GetDateTimeOffset(0); // 2024-06-15 14:30:00 +02:00 (CEST) +``` + +明示的なタイムゾーンを持たないカラム(例: `DateTime('Europe/Amsterdam')` ではなく `DateTime`)の場合、ドライバーは `Kind=Unspecified` の `DateTime` を返します。これにより、タイムゾーンを仮定することなく、保存されている時刻(壁時計ベースの時刻)がそのまま正確に保持されます。 + +明示的なタイムゾーンを持たないカラムに対してタイムゾーンを考慮した動作が必要な場合は、次のいずれかを行ってください。 + +1. カラム定義で明示的なタイムゾーンを使用する: `DateTime('UTC')` または `DateTime('Europe/Amsterdam')` +2. 読み出し後に自分でタイムゾーンを適用する。 *** -## サポートされているデータ型 {#supported-data-types} -`ClickHouse.Driver` は、次の ClickHouse のデータ型を、それぞれ対応する .NET 型にマッピングしてサポートします。 +#### その他の型 {#type-map-reading-other} + +| ClickHouse Type | .NET Type | +|-----------------|-----------| +| UUID | `Guid` | +| IPv4 | `IPAddress` | +| IPv6 | `IPAddress` | +| Nothing | `DBNull` | +| Dynamic | 注記を参照 | +| Json | `JsonObject` | +| Array(T) | `T[]` | +| Tuple(T1, T2, ...) | `Tuple` / `LargeTuple` | +| Map(K, V) | `Dictionary` | +| Nullable(T) | `T?` | +| Enum8 | `string` | +| Enum16 | `string` | +| LowCardinality(T) | T と同じ | +| SimpleAggregateFunction | 基本型と同じ | +| Nested(...) | `Tuple[]` | +| Variant(T1, T2, ...) | 注記を参照 | +| QBit(T, dimension) | `T[]` | -### ブール型 {#boolean-types} +:::note +Dynamic 型および Variant 型は、各行における実際の基本型に対応する型に変換されます。 +::: + +--- + +#### ジオメトリ型 {#type-map-reading-geometry} + +| ClickHouse Type | .NET Type | +|-----------------|-----------| +| Point | `Tuple` | +| Ring | `Tuple[]` | +| LineString | `Tuple[]` | +| Polygon | `Ring[]` | +| MultiLineString | `LineString[]` | +| MultiPolygon | `Polygon[]` | +| Geometry | 注を参照 | + +:::note +Geometry 型は、任意のジオメトリ型を保持できる Variant 型であり、対応する型に変換されます。 +::: + +--- + +### 型マッピング: ClickHouse への書き込み {#clickhouse-native-type-map-writing} + +データを挿入する際、ドライバーは .NET 型を対応する ClickHouse 型に変換します。以下の表は、各 ClickHouse カラム型に対して、どの .NET 型が利用できるかを示します。 -* `Bool` → `bool` +#### 整数型 {#type-map-writing-integer} -### 数値型 {#numeric-types} +| ClickHouse Type | 受け入れ可能な .NET 型 | 備考 | +|-----------------|------------------------|------| +| Int8 | `sbyte`, 任意の `Convert.ToSByte()` 互換の型 | | +| UInt8 | `byte`, 任意の `Convert.ToByte()` 互換の型 | | +| Int16 | `short`, 任意の `Convert.ToInt16()` 互換の型 | | +| UInt16 | `ushort`, 任意の `Convert.ToUInt16()` 互換の型 | | +| Int32 | `int`, 任意の `Convert.ToInt32()` 互換の型 | | +| UInt32 | `uint`, 任意の `Convert.ToUInt32()` 互換の型 | | +| Int64 | `long`, 任意の `Convert.ToInt64()` 互換の型 | | +| UInt64 | `ulong`, 任意の `Convert.ToUInt64()` 互換の型 | | +| Int128 | `BigInteger`, `decimal`, `double`, `float`, `int`, `uint`, `long`, `ulong`, 任意の `Convert.ToInt64()` 互換の型 | | +| UInt128 | `BigInteger`, `decimal`, `double`, `float`, `int`, `uint`, `long`, `ulong`, 任意の `Convert.ToInt64()` 互換の型 | | +| Int256 | `BigInteger`, `decimal`, `double`, `float`, `int`, `uint`, `long`, `ulong`, 任意の `Convert.ToInt64()` 互換の型 | | +| UInt256 | `BigInteger`, `decimal`, `double`, `float`, `int`, `uint`, `long`, `ulong`, 任意の `Convert.ToInt64()` 互換の型 | | -**符号付き整数:** +--- + +#### 浮動小数点型 {#type-map-writing-floating-point} + +| ClickHouse Type | 対応する .NET 型 | 備考 | +|-----------------|------------------|------| +| Float32 | `float`、`Convert.ToSingle()` と互換性のある任意の型 | | +| Float64 | `double`、`Convert.ToDouble()` と互換性のある任意の型 | | +| BFloat16 | `float`、`Convert.ToSingle()` と互換性のある任意の型 | 16 ビットの brain float 形式に切り捨てて変換 | +--- + +#### Boolean 型 {#type-map-writing-boolean} + +| ClickHouse Type | 対応する .NET 型 | 備考 | +|-----------------|------------------|------| +| Bool | `bool` | | -* `Int8` → `sbyte` -* `Int16` → `short` -* `Int32` → `int` -* `Int64` → `long` -* `Int128` → `BigInteger` -* `Int256` → `BigInteger` +--- -**符号なし整数:** +#### 文字列型 {#type-map-writing-strings} -* `UInt8` → `byte` -* `UInt16` → `ushort` -* `UInt32` → `uint` -* `UInt64` → `ulong` -* `UInt128` → `BigInteger` -* `UInt256` → `BigInteger` +| ClickHouse Type | 受け入れ可能な .NET 型 | 備考 | +|-----------------|------------------------|------| +| String | `string`, `Convert.ToString()` 互換の任意の型 | | +| FixedString(N) | `string`, `byte[]` | 文字列は UTF-8 でエンコードされ、パディングまたは切り詰めが行われる。`byte[]` は長さがちょうど N バイトでなければならない | +--- -**浮動小数点数:** +#### 日付および時刻型 {#type-map-writing-datetime} -* `Float32` → `float` -* `Float64` → `double` +| ClickHouse Type | Accepted .NET Types | Notes | +| --------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------- | +| Date | `DateTime`, `DateTimeOffset`, `DateOnly`, NodaTime types | Unix 日数に変換され、UInt16 として扱われます | +| Date32 | `DateTime`, `DateTimeOffset`, `DateOnly`, NodaTime types | Unix 日数に変換され、Int32 として扱われます | +| DateTime | `DateTime`, `DateTimeOffset`, `DateOnly`, NodaTime types | 詳細は以下を参照してください | +| DateTime32 | `DateTime`, `DateTimeOffset`, `DateOnly`, NodaTime types | DateTime と同様の動作です | +| DateTime64 | `DateTime`, `DateTimeOffset`, `DateOnly`, NodaTime types | 精度は Scale パラメータに基づきます | +| Time | `TimeSpan`, `int` | ±999:59:59 に制限されます。int は秒として扱われます | +| Time64 | `TimeSpan`, `decimal`, `double`, `float`, `int`, `long`, `string` | 文字列は `[-]HHH:MM:SS[.fraction]` として解釈され、±999:59:59.999999999 に制限されます | -**Decimal:** +ドライバーは値を書き込む際に `DateTime.Kind` を考慮します: -* `Decimal` → `decimal` -* `Decimal32` → `decimal` -* `Decimal64` → `decimal` -* `Decimal128` → `decimal` -* `Decimal256` → `BigDecimal` +| `DateTime.Kind` | 動作 | +| --------------- | ------------------------------------- | +| `Utc` | 時刻(Instant)は正確に保持されます | +| `Local` | システムのタイムゾーンを用いて UTC に変換され、時刻は保持されます | +| `Unspecified` | 対象カラムのタイムゾーンにおけるローカル時刻(壁時計時刻)として扱われます | -### 文字列型 {#string-types} +`DateTimeOffset` の値は常にその時刻(Instant)を正確に保持します。 -* `String` → `string` -* `FixedString` → `string` +**例: UTC DateTime(Instant が保持される場合)** -### 日付・時刻型 {#date-time-types} +```csharp +var utcTime = new DateTime(2024, 1, 15, 12, 0, 0, DateTimeKind.Utc); +// Stored as 12:00 UTC +// Read from DateTime('Europe/Amsterdam') column: 13:00 (UTC+1) +// Read from DateTime('UTC') column: 12:00 UTC +``` -* `Date` → `DateTime` -* `Date32` → `DateTime` -* `DateTime` → `DateTime` -* `DateTime32` → `DateTime` -* `DateTime64` → `DateTime` +**例:未指定の DateTime(ウォールクロック時間)** -### ネットワーク型 {#network-types} +```csharp +var wallClock = new DateTime(2024, 1, 15, 14, 30, 0, DateTimeKind.Unspecified); +// Written to DateTime('Europe/Amsterdam') column: stored as 14:30 Amsterdam time +// Read back from DateTime('Europe/Amsterdam') column: 14:30 +``` -* `IPv4` → `IPAddress` -* `IPv6` → `IPAddress` +**推奨:** 動作を最もシンプルかつ予測しやすくするため、すべての DateTime 操作で `DateTimeKind.Utc` または `DateTimeOffset` を使用してください。これにより、サーバーのタイムゾーン、クライアントのタイムゾーン、あるいはカラムのタイムゾーンに関わらず、コードが一貫して動作します。 -### 地理データ型 {#geographic-types} -* `Point` → `Tuple` -* `Ring` → `Array of Points` -* `Polygon` → `Array of Rings` +#### HTTP パラメータ vs 一括コピー {#datetime-http-param-vs-bulkcopy} -### 複合型 {#complex-types} +`Unspecified` な DateTime 値を書き込む場合、HTTP パラメータバインディングと一括コピーには重要な違いがあります。 -* `Array(T)` → 任意の型を要素とする `Array` -* `Tuple(T1, T2, ...)` → 任意の型を要素とする `Tuple` -* `Nullable(T)` → 任意の型の `Nullable` 版 -* `Map(K, V)` → `Dictionary` 型 +**Bulk Copy** は、対象カラムのタイムゾーンを把握しており、そのタイムゾーンとして `Unspecified` な値を正しく解釈します。 + +**HTTP Parameters** は、カラムのタイムゾーンを自動的には把握しません。パラメータの型ヒントでタイムゾーンを明示的に指定する必要があります。 + +```csharp +// CORRECT: Timezone in type hint +command.AddParameter("dt", myDateTime, "DateTime('Europe/Amsterdam')"); +command.CommandText = "INSERT INTO table (dt_amsterdam) VALUES ({dt:DateTime('Europe/Amsterdam')})"; + +// INCORRECT: Without timezone hint, interpreted as UTC +command.AddParameter("dt", myDateTime); +command.CommandText = "INSERT INTO table (dt_amsterdam) VALUES ({dt:DateTime})"; +// String value "2024-01-15 14:30:00" interpreted as UTC, not Amsterdam time! +``` + +| `DateTime.Kind` | 対象カラム | HTTP パラメータ (タイムゾーン ヒントあり) | HTTP パラメータ (タイムゾーン ヒントなし) | 一括コピー | +| --------------- | ---------------- | ------------------------- | ------------------------- | ---------------------- | +| `Utc` | UTC | 時刻インスタントが保持される | 時刻インスタントが保持される | 時刻インスタントが保持される | +| `Utc` | Europe/Amsterdam | 時刻インスタントが保持される | 時刻インスタントが保持される | 時刻インスタントが保持される | +| `Local` | 任意 | 時刻インスタントが保持される | 時刻インスタントが保持される | 時刻インスタントが保持される | +| `Unspecified` | UTC | UTC として解釈される | UTC として解釈される | UTC として解釈される | +| `Unspecified` | Europe/Amsterdam | アムステルダムのローカル時間として解釈される | **UTC として解釈される** | アムステルダムのローカル時間として解釈される | + +*** + + +#### Decimal 型 {#type-map-writing-decimal} + +| ClickHouse Type | 対応する .NET 型 | 備考 | +|-----------------|------------------|------| +| Decimal(P,S) | `decimal`, `ClickHouseDecimal`, 任意の `Convert.ToDecimal()` 互換型 | 指定された精度を超えた場合は `OverflowException` をスロー | +| Decimal32 | `decimal`, `ClickHouseDecimal`, 任意の `Convert.ToDecimal()` 互換型 | 最大精度 9 | +| Decimal64 | `decimal`, `ClickHouseDecimal`, 任意の `Convert.ToDecimal()` 互換型 | 最大精度 18 | +| Decimal128 | `decimal`, `ClickHouseDecimal`, 任意の `Convert.ToDecimal()` 互換型 | 最大精度 38 | +| Decimal256 | `decimal`, `ClickHouseDecimal`, 任意の `Convert.ToDecimal()` 互換型 | 最大精度 76 | + +--- + +#### その他の型 {#type-map-writing-other} + +| ClickHouse Type | 受け入れ可能な .NET 型 | 備考 | +|-----------------|------------------------|------| +| UUID | `Guid`, `string` | 文字列は Guid としてパースされる | +| IPv4 | `IPAddress`, `string` | IPv4 である必要がある。文字列は `IPAddress.Parse()` でパースされる | +| IPv6 | `IPAddress`, `string` | IPv6 である必要がある。文字列は `IPAddress.Parse()` でパースされる | +| Nothing | 任意 | 何も書き込まない(no-op) | +| Dynamic | — | **非対応**(`NotImplementedException` をスロー) | +| Json | `string`, `JsonObject`, 任意のオブジェクト | 文字列は JSON としてパースされる。オブジェクトは `JsonSerializer` でシリアライズされる | +| Array(T) | `IList`, `null` | null は空の配列として書き込まれる | +| Tuple(T1, T2, ...) | `ITuple`, `IList` | 要素数はタプルの要素数と一致している必要がある | +| Map(K, V) | `IDictionary` | | +| Nullable(T) | `null`, `DBNull`, または T が受け入れる型 | 値の前に null フラグのバイトを書き込む | +| Enum8 | `string`, `sbyte`, 数値型 | 文字列は Enum の Dictionary から検索される | +| Enum16 | `string`, `short`, 数値型 | 文字列は Enum の Dictionary から検索される | +| LowCardinality(T) | T が受け入れる型 | 基になる型に委譲される | +| SimpleAggregateFunction | 基になる型が受け入れる型 | 基になる型に委譲される | +| Nested(...) | タプルの `IList` | 要素数はフィールド数と一致している必要がある | +| Variant(T1, T2, ...) | T1, T2, ... のいずれかに一致する値 | 型が一致しない場合は `ArgumentException` をスロー | +| QBit(T, dim) | `IList` | Array に委譲される。dim はメタデータとしてのみ扱われる | --- -### DateTime の扱い {#datetime-handling} +#### Geometry 型 {#type-map-writing-geometry} + +| ClickHouse Type | 受け入れ可能な .NET 型 | 備考 | +|-----------------|------------------------|------| +| Point | `System.Drawing.Point`, `ITuple`, `IList` (要素数 2) | | +| Ring | Point の `IList` | | +| LineString | Point の `IList` | | +| Polygon | Ring の `IList` | | +| MultiLineString | LineString の `IList` | | +| MultiPolygon | Polygon の `IList` | | +| Geometry | 上記の任意の Geometry 型 | すべての Geometry 型を含むバリアント型 | + +--- -`ClickHouse.Driver` は、タイムゾーンと `DateTime.Kind` プロパティを正しく扱うようにしています。具体的には次のとおりです。 +#### 書き込みはサポートされません {#type-map-writing-not-supported} -* `DateTime` の値は UTC として返されます。ユーザーは必要に応じて自分で変換するか、`DateTime` インスタンスに対して `ToLocalTime()` メソッドを使用できます。 -* 挿入時には、`DateTime` の値は次のように扱われます。 - * `UTC` の `DateTime` はそのまま挿入されます。これは、ClickHouse が内部的に UTC で値を保存しているためです。 - * `Local` の `DateTime` は、ユーザーのローカルタイムゾーン設定に従って UTC に変換されます。 - * `Unspecified` の `DateTime` は対象カラムのタイムゾーンに属しているとみなされ、そのタイムゾーンに従って UTC に変換されます。 -* タイムゾーンが指定されていないカラムの場合、既定ではクライアントのタイムゾーンが使用されます(従来の動作)。代わりにサーバーのタイムゾーンを使用するには、接続文字列の `UseServerTimezone` フラグを使用できます。 +| ClickHouse Type | 備考 | +|-----------------|-------| +| Dynamic | `NotImplementedException` をスローします | +| AggregateFunction | `AggregateFunctionException` をスローします | --- +### ネスト型の扱い {#nested-type-handling} + +ClickHouse のネスト型(`Nested(...)`)は、配列と同様のセマンティクスで読み書きできます。 + +```sql +CREATE TABLE test.nested ( + id UInt32, + params Nested (param_id UInt8, param_val String) +) ENGINE = Memory +``` + +```csharp +using var bulkCopy = new ClickHouseBulkCopy(connection) +{ + DestinationTableName = "test.nested" +}; + +var row1 = new object[] { 1, new[] { 1, 2, 3 }, new[] { "v1", "v2", "v3" } }; +var row2 = new object[] { 2, new[] { 4, 5, 6 }, new[] { "v4", "v5", "v6" } }; + +await bulkCopy.WriteToServerAsync(new[] { row1, row2 }); +``` + + ## ロギングと診断 {#logging-and-diagnostics} ClickHouse の .NET クライアントは `Microsoft.Extensions.Logging` の抽象 API と統合されており、軽量なオプトイン方式のロギングを提供します。ロギングを有効にすると、ドライバーは接続ライフサイクルイベント、コマンド実行、トランスポート処理、およびバルクコピーアップロードに対して構造化されたメッセージを出力します。ロギングは完全に任意であり、ロガーを構成していないアプリケーションでも追加のオーバーヘッドなしに動作し続けます。 @@ -521,6 +993,7 @@ await connection.OpenAsync(); | `ClickHouse.Driver.Command` | `ClickHouseCommand` | クエリ実行の開始/完了、処理時間、クエリ ID、サーバー統計情報、エラーの詳細。 | | `ClickHouse.Driver.Transport` | `ClickHouseConnection` | 低レベルの HTTP ストリーミングリクエスト、圧縮フラグ、レスポンスステータスコード、転送エラー。 | | `ClickHouse.Driver.BulkCopy` | `ClickHouseBulkCopy` | メタデータの読み込み、バッチ処理、行数、アップロード完了。 | +| `ClickHouse.Driver.NetTrace` | `TraceHelper` | デバッグモードが有効な場合にのみ行われるネットワークトレース。 | #### 例:接続に関する問題の診断 {#logging-config-example} @@ -547,7 +1020,7 @@ await connection.OpenAsync(); ### デバッグモード: ネットワークトレースと診断 {#logging-debugmode} -ネットワークに関する問題の診断を支援するために、ドライバーライブラリには .NET のネットワーク内部処理を低レベルでトレースできるヘルパー機能が含まれています。これを有効にするには、ログレベルを Trace に設定した LoggerFactory を渡し、EnableDebugMode を true に設定する必要があります(または `ClickHouse.Driver.Diagnostic.TraceHelper` クラスを使用して手動で有効化します)。警告: これは非常に冗長なログを大量に生成し、パフォーマンスに影響します。本番環境でデバッグモードを有効にすることは推奨されません。 +ネットワークに関する問題の診断を支援するために、ドライバーライブラリには .NET のネットワーク内部処理を低レベルでトレースできるヘルパー機能が含まれています。これを有効にするには、ログレベルを Trace に設定した LoggerFactory を渡し、EnableDebugMode を true に設定する必要があります(または `ClickHouse.Driver.Diagnostic.TraceHelper` クラスを使用して手動で有効化します)。イベントは `ClickHouse.Driver.NetTrace` カテゴリにログ出力されます。警告: これは非常に冗長なログを大量に生成し、パフォーマンスに影響します。本番環境でデバッグモードを有効にすることは推奨されません。 ```csharp var loggerFactory = LoggerFactory.Create(builder => @@ -564,11 +1037,130 @@ var settings = new ClickHouseClientSettings() }; ``` -*** -### ORM & Dapper サポート {#orm-support} +## OpenTelemetry {#opentelemetry} + +このドライバーは、.NET の [`System.Diagnostics.Activity`](https://learn.microsoft.com/en-us/dotnet/core/diagnostics/distributed-tracing) API を介して、OpenTelemetry による分散トレーシングを組み込みでサポートしています。これを有効にすると、ドライバーはデータベース操作ごとに span を生成し、Jaeger や [OpenTelemetry Collector](https://clickhouse.com/docs/observability/integrating-opentelemetry) 経由の ClickHouse 自身といったオブザーバビリティバックエンドへエクスポートできます。 + +### トレーシングの有効化 {#opentelemetry-enabling} + +ASP.NET Core アプリケーションでは、OpenTelemetry の設定に ClickHouse ドライバーの `ActivitySource` を追加します。 + +```csharp +builder.Services.AddOpenTelemetry() + .WithTracing(tracing => tracing + .AddSource(ClickHouseDiagnosticsOptions.ActivitySourceName) // Subscribe to ClickHouse driver spans + .AddAspNetCoreInstrumentation() + .AddOtlpExporter()); // Or AddJaegerExporter(), etc. +``` + +コンソールアプリケーションやテスト、手動によるセットアップの場合: + +```csharp +using OpenTelemetry; +using OpenTelemetry.Trace; + +var tracerProvider = Sdk.CreateTracerProviderBuilder() + .AddSource(ClickHouseDiagnosticsOptions.ActivitySourceName) + .AddConsoleExporter() + .Build(); +``` + + +### Span attributes {#opentelemetry-attributes} + +各スパンには、標準的な OpenTelemetry のデータベース属性に加えて、デバッグに利用可能な ClickHouse 固有のクエリ統計情報が含まれます。 -`ClickHouse.Driver` は Dapper(いくつかの制限付きで)をサポートします。 +| Attribute | Description | +|-----------|-------------| +| `db.system` | 常に `"clickhouse"` | +| `db.name` | データベース名 | +| `db.user` | ユーザー名 | +| `db.statement` | SQLクエリ(有効化されている場合) | +| `db.clickhouse.read_rows` | クエリによって読み取られた行数 | +| `db.clickhouse.read_bytes` | クエリによって読み取られたバイト数 | +| `db.clickhouse.written_rows` | クエリによって書き込まれた行数 | +| `db.clickhouse.written_bytes` | クエリによって書き込まれたバイト数 | +| `db.clickhouse.elapsed_ns` | サーバー側の実行時間(ナノ秒単位) | + +### 設定オプション {#opentelemetry-configuration} + +`ClickHouseDiagnosticsOptions` を使用してトレースの挙動を制御できます。 + +```csharp +using ClickHouse.Driver.Diagnostic; + +// Include SQL statements in spans (default: false for security) +ClickHouseDiagnosticsOptions.IncludeSqlInActivityTags = true; + +// Truncate long SQL statements (default: 1000 characters) +ClickHouseDiagnosticsOptions.StatementMaxLength = 500; +``` + +:::warning +`IncludeSqlInActivityTags` を有効にすると、トレースに機密データが含まれてしまう可能性があります。本番環境では慎重に使用してください。 +::: + + +## TLS 構成 {#tls-configuration} + +HTTPS 経由で ClickHouse に接続する場合、TLS/SSL の動作をいくつかの方法で設定できます。 + +### カスタム証明書検証 {#custom-certificate-validation} + +カスタム証明書検証ロジックが必要な本番環境では、`ServerCertificateCustomValidationCallback` ハンドラーを構成した独自の `HttpClient` を用意してください: + +```csharp +using System.Net; +using System.Net.Security; +using ClickHouse.Driver.ADO; + +var handler = new HttpClientHandler +{ + // Required when compression is enabled (default) + AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate, + + ServerCertificateCustomValidationCallback = (message, cert, chain, sslPolicyErrors) => + { + // Example: Accept a specific certificate thumbprint + if (cert?.Thumbprint == "YOUR_EXPECTED_THUMBPRINT") + return true; + + // Example: Accept certificates from a specific issuer + if (cert?.Issuer.Contains("YourOrganization") == true) + return true; + + // Default: Use standard validation + return sslPolicyErrors == SslPolicyErrors.None; + }, +}; + +var httpClient = new HttpClient(handler) { Timeout = TimeSpan.FromMinutes(5) }; + +var settings = new ClickHouseClientSettings +{ + Host = "my.clickhouse.server", + Protocol = "https", + HttpClient = httpClient, +}; + +using var connection = new ClickHouseConnection(settings); +await connection.OpenAsync(); +``` + +:::note +カスタム HttpClient を提供する際の重要な注意事項 + +* **自動圧縮解除**: 圧縮を無効にしていない場合(デフォルトでは圧縮は有効です)、`AutomaticDecompression` を有効にする必要があります。 +* **アイドルタイムアウト**: ハーフオープン接続による接続エラーを回避するために、`PooledConnectionIdleTimeout` をサーバーの `keep_alive_timeout`(ClickHouse Cloud の場合は 10 秒)よりも短く設定してください。 + ::: + + +## ORM サポート {#orm-support} + +### Dapper {#orm-support-dapper} + +`ClickHouse.Driver` は Dapper と併用できますが、anonymous objects(匿名オブジェクト)はサポート対象外です。 **動作サンプル:** @@ -587,3 +1179,89 @@ connection.QueryAsync( new { p1 = 42 } ); ``` + + +### Linq2db {#orm-support-linq2db} + +このドライバは、.NET 向けの軽量な ORM / LINQ プロバイダーである [linq2db](https://github.com/linq2db/linq2db) に対応しています。詳細については、プロジェクトの Web サイトを参照してください。 + +**使用例:** + +ClickHouse プロバイダーを使用して `DataConnection` を作成します: + +```csharp +using LinqToDB; +using LinqToDB.Data; +using LinqToDB.DataProvider.ClickHouse; + +var connectionString = "Host=localhost;Port=8123;Database=default"; +var options = new DataOptions() + .UseClickHouse(connectionString, ClickHouseProvider.ClickHouseDriver); + +await using var db = new DataConnection(options); +``` + +テーブルのマッピングは属性または Fluent API 構成を使用して定義できます。クラス名およびプロパティ名がテーブル名およびカラム名と完全に一致している場合は、追加の構成は不要です。 + +```csharp +public class Product +{ + public int Id { get; set; } + public string Name { get; set; } + public decimal Price { get; set; } +} +``` + +**クエリの実行:** + +```csharp +await using var db = new DataConnection(options); + +var products = await db.GetTable() + .Where(p => p.Price > 100) + .OrderByDescending(p => p.Name) + .ToListAsync(); +``` + +**バルクコピー:** + +効率的に一括挿入を行うには `BulkCopyAsync` を使用します。 + +```csharp +await using var db = new DataConnection(options); +var table = db.GetTable(); + +var options = new BulkCopyOptions +{ + MaxBatchSize = 100000, + MaxDegreeOfParallelism = 1, + WithoutSession = true +}; + +await table.BulkCopyAsync(options, products); +``` + + +### Entity Framework Core {#orm-support-ef-core} + +Entity Framework Core は現在サポートされていません。 + +## 制限事項 {#limitations} + +### AggregateFunction 列 {#aggregatefunction-columns} + +`AggregateFunction(...)` 型の列は、直接クエリしたりデータを挿入したりすることはできません。 + +挿入するには: + +```sql +INSERT INTO t VALUES (uniqState(1)); +``` + +選択: + +```sql +SELECT uniqMerge(c) FROM t; +``` + +*** \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/language-clients/java/client/client.mdx b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/language-clients/java/client/client.mdx deleted file mode 100644 index e0e0c8a640b..00000000000 --- a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/language-clients/java/client/client.mdx +++ /dev/null @@ -1,1410 +0,0 @@ ---- -sidebar_label: 'クライアント' -sidebar_position: 2 -keywords: ['clickhouse', 'java', 'client', 'integrate'] -description: 'Java ClickHouseコネクター' -slug: /integrations/language-clients/java/client -title: 'Javaクライアント' -doc_type: 'reference' ---- - -import ClientVersionDropdown from '@theme/ClientVersionDropdown/ClientVersionDropdown'; -import Version from '@theme/ClientVersionDropdown/Version'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; -import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWrapper'; - - - - - -プロトコルを介してDBサーバーと通信するためのJavaクライアントライブラリ。現在の実装は[HTTPインターフェース](/interfaces/http)のみをサポートしています。 -このライブラリは、サーバーにリクエストを送信するための独自のAPIを提供します。また、さまざまなバイナリデータ形式(RowBinary*およびNative*)を扱うためのツールも提供します。 - -## セットアップ {#setup} - -- Maven Central (project web page): https://mvnrepository.com/artifact/com.clickhouse/client-v2 -- Nightly builds (repository link): https://central.sonatype.com/repository/maven-snapshots/ -- Old Nightly builds artifactory (repository link): https://s01.oss.sonatype.org/content/repositories/snapshots/ -
- - - -```xml - - com.clickhouse - client-v2 - 0.9.4 - -``` - - - - -```kotlin -// https://mvnrepository.com/artifact/com.clickhouse/client-v2 -implementation("com.clickhouse:client-v2:0.9.4") -``` - - - -```groovy -// https://mvnrepository.com/artifact/com.clickhouse/client-v2 -implementation 'com.clickhouse:client-v2:0.9.4' -``` - - - -
- -## 初期化 {#initialization} - -Clientオブジェクトは`com.clickhouse.client.api.Client.Builder#build()`によって初期化されます。各クライアントは独自のコンテキストを持ち、オブジェクトはクライアント間で共有されません。 -Builderには、便利なセットアップ用の設定メソッドがあります。 - -例: -```java showLineNumbers - Client client = new Client.Builder() - .addEndpoint("https://clickhouse-cloud-instance:8443/") - .setUsername(user) - .setPassword(password) - .build(); -``` - -`Client`は`AutoCloseable`であり、不要になったら閉じる必要があります。 - -### 認証 {#authentication} - -認証は初期化フェーズでクライアントごとに設定されます。サポートされている認証方法は3つあります:パスワード、アクセストークン、SSLクライアント証明書による認証です。 - -パスワードによる認証には、`setUsername(String)`と`setPassword(String)`を呼び出してユーザー名とパスワードを設定する必要があります: -```java showLineNumbers - Client client = new Client.Builder() - .addEndpoint("https://clickhouse-cloud-instance:8443/") - .setUsername(user) - .setPassword(password) - .build(); -``` - -Authentication by an access token requires setting access token by calling `setAccessToken(String)`: -```java showLineNumbers - Client client = new Client.Builder() - .addEndpoint("https://clickhouse-cloud-instance:8443/") - .setAccessToken(userAccessToken) - .build(); -``` - -Authentication by a SSL Client Certificate require setting username, enabling SSL Authentication, setting a client certificate and a client key by calling `setUsername(String)`, `useSSLAuthentication(boolean)`, `setClientCertificate(String)` and `setClientKey(String)` accordingly: -```java showLineNumbers -Client client = new Client.Builder() - .useSSLAuthentication(true) - .setUsername("some_user") - .setClientCertificate("some_user.crt") - .setClientKey("some_user.key") -``` - -:::note -SSL Authentication may be hard to troubleshoot on production because many errors from SSL libraries provide not enough information. For example, if client certificate and key do not match then server will terminate connection immediately (in case of HTTP it will be connection initiation stage where no HTTP requests are send so no response is sent). - -Please use tools like [openssl](https://docs.openssl.org/master/man1/openssl/) to verify certificates and keys: -- check key integrity: `openssl rsa -in [key-file.key] -check -noout` -- check client certificate has matching CN for a user: - - get CN from an user certificate - `openssl x509 -noout -subject -in [user.cert]` - - verify same value is set in database `select name, auth_type, auth_params from system.users where auth_type = 'ssl_certificate'` (query will output `auth_params` with something like ` {"common_names":["some_user"]}`) - -::: - -## Configuration {#configuration} - -All settings are defined by instance methods (a.k.a configuration methods) that make the scope and context of each value clear. -Major configuration parameters are defined in one scope (client or operation) and do not override each other. - -Configuration is defined during client creation. See `com.clickhouse.client.api.Client.Builder`. - -## Client Configuration {#client-configuration} - - - - -| Method | Arguments | Description | Default | Key | -|--------|-----------|-------------|---------|-----| -| `addEndpoint(String endpoint)` | `endpoint` - URL formatted server address | Adds a server endpoint to list of available servers. Currently only one endpoint is supported. | `none` | `none` | -| `addEndpoint(Protocol protocol, String host, int port, boolean secure)` | `protocol` - connection protocol
`host` - IP or hostname
`secure` - use HTTPS | Adds a server endpoint to list of available servers. Currently only one endpoint is supported. | `none` | `none` | -| `enableConnectionPool(boolean enable)` | `enable` - flag to enable/disable | Sets if a connection pool is enabled | `true` | `connection_pool_enabled` | -| `setMaxConnections(int maxConnections)` | `maxConnections` - number of connections | Sets how many connections can a client open to each server endpoint. | `10` | `max_open_connections` | -| `setConnectionTTL(long timeout, ChronoUnit unit)` | `timeout` - timeout value
`unit` - time unit | Sets connection TTL after which connection will be considered as not active | `-1` | `connection_ttl` | -| `setKeepAliveTimeout(long timeout, ChronoUnit unit)` | `timeout` - timeout value
`unit` - time unit | Sets HTTP connection keep-alive timeout. Set to `0` to disable Keep-Alive. | - | `http_keep_alive_timeout` | -| `setConnectionReuseStrategy(ConnectionReuseStrategy strategy)` | `strategy` - `LIFO` or `FIFO` | Selects which strategy connection pool should use | `FIFO` | `connection_reuse_strategy` | -| `setDefaultDatabase(String database)` | `database` - name of a database | Sets default database. | `default` | `database` | - -
- - - -| Method | Arguments | Description | Default | Key | -|--------|-----------|-------------|---------|-----| -| `setUsername(String username)` | `username` - username for authentication | Sets username for an authentication method that is selected by further configuration | `default` | `user` | -| `setPassword(String password)` | `password` - secret value | Sets a secret for password authentication and effectively selects as authentication method | - | `password` | -| `setAccessToken(String accessToken)` | `accessToken` - access token string | Sets an access token to authenticate with a sets corresponding authentication method | - | `access_token` | -| `useSSLAuthentication(boolean useSSLAuthentication)` | `useSSLAuthentication` - flag to enable SSL auth | Sets SSL Client Certificate as an authentication method. | - | `ssl_authentication` | -| `useHTTPBasicAuth(boolean useBasicAuth)` | `useBasicAuth` - flag to enable/disable | Sets if basic HTTP authentication should be used for user-password authentication. Resolves issues with passwords containing special characters. | `true` | `http_use_basic_auth` | -| `useBearerTokenAuth(String bearerToken)` | `bearerToken` - an encoded bearer token | Specifies whether to use Bearer Authentication and what token to use. The token will be sent as is. | - | `bearer_token` | - - - - - -| Method | Arguments | Description | Default | Key | -|--------|-----------|-------------|---------|-----| -| `setConnectTimeout(long timeout, ChronoUnit unit)` | `timeout` - timeout value
`unit` - time unit | Sets connection initiation timeout for any outgoing connection. | - | `connection_timeout` | -| `setConnectionRequestTimeout(long timeout, ChronoUnit unit)` | `timeout` - timeout value
`unit` - time unit | Sets connection request timeout. This take effect only for getting connection from a pool. | `10000` | `connection_request_timeout` | -| `setSocketTimeout(long timeout, ChronoUnit unit)` | `timeout` - timeout value
`unit` - time unit | Sets socket timeout that affects read and write operations | `0` | `socket_timeout` | -| `setExecutionTimeout(long timeout, ChronoUnit timeUnit)` | `timeout` - timeout value
`timeUnit` - time unit | Sets maximum execution timeout for queries | `0` | `max_execution_time` | -| `retryOnFailures(ClientFaultCause ...causes)` | `causes` - enum constant of `ClientFaultCause` | Sets recoverable/retriable fault types. | `NoHttpResponse` `ConnectTimeout` `ConnectionRequestTimeout` | `client_retry_on_failures` | -| `setMaxRetries(int maxRetries)` | `maxRetries` - number of retries | Sets maximum number of retries for failures defined by `retryOnFailures` | `3` | `retry` | - -
- - - -| Method | Arguments | Description | Default | Key | -|--------|-----------|-------------|---------|-----| -| `setSocketRcvbuf(long size)` | `size` - size in bytes | Sets TCP socket receive buffer. This buffer out of the JVM memory. | `8196` | `socket_rcvbuf` | -| `setSocketSndbuf(long size)` | `size` - size in bytes | Sets TCP socket send buffer. This buffer out of the JVM memory. | `8196` | `socket_sndbuf` | -| `setSocketKeepAlive(boolean value)` | `value` - flag to enable/disable | Sets option `SO_KEEPALIVE` for every TCP socket. TCP Keep Alive enables mechanism that will check liveness of the connection. | - | `socket_keepalive` | -| `setSocketTcpNodelay(boolean value)` | `value` - flag to enable/disable | Sets option `SO_NODELAY` for every TCP socket. This TCP option will make socket to push data as soon as possible. | - | `socket_tcp_nodelay` | -| `setSocketLinger(int secondsToWait)` | `secondsToWait` - number of seconds | Set linger time for every TCP socket created by the client. | - | `socket_linger` | - - - - - -| Method | Arguments | Description | Default | Key | -|--------|-----------|-------------|---------|-----| -| `compressServerResponse(boolean enabled)` | `enabled` - flag to enable/disable | Sets if server should compress its responses. | `true` | `compress` | -| `compressClientRequest(boolean enabled)` | `enabled` - flag to enable/disable | Sets if client should compress its requests. | `false` | `decompress` | -| `useHttpCompression(boolean enabled)` | `enabled` - flag to enable/disable | Sets if HTTP compression should be used for client/server communications if corresponding options are enabled | - | - | -| `appCompressedData(boolean enabled)` | `enabled` - flag to enable/disable | Tell client that compression will be handled by application. | `false` | `app_compressed_data` | -| `setLZ4UncompressedBufferSize(int size)` | `size` - size in bytes | Sets size of a buffer that will receive uncompressed portion of a data stream. | `65536` | `compression.lz4.uncompressed_buffer_size` | -| `disableNativeCompression` | `disable` - flag to disable | Disable native compression. If set to true then native compression will be disabled. | `false` | `disable_native_compression` | - - - - - -| Method | Arguments | Description | Default | Key | -|--------|-----------|-------------|---------|-----| -| `setSSLTrustStore(String path)` | `path` - file path on local system | Sets if client should use SSL truststore for server host validation. | - | `trust_store` | -| `setSSLTrustStorePassword(String password)` | `password` - secret value | Sets password to be used to unlock SSL truststore specified by `setSSLTrustStore` | - | `key_store_password` | -| `setSSLTrustStoreType(String type)` | `type` - truststore type name | Sets type of the truststore specified by `setSSLTrustStore`. | - | `key_store_type` | -| `setRootCertificate(String path)` | `path` - file path on local system | Sets if client should use specified root (CA) certificate for server host to validation. | - | `sslrootcert` | -| `setClientCertificate(String path)` | `path` - file path on local system | Sets client certificate path to be used while initiating SSL connection and to be used by SSL authentication. | - | `sslcert` | -| `setClientKey(String path)` | `path` - file path on local system | Sets client private key to be used for encrypting SSL communication with a server. | - | `ssl_key` | -| `sslSocketSNI(String sni)` | `sni` - server name string | Sets server name to be used for SNI (Server Name Indication) in SSL/TLS connection. | - | `ssl_socket_sni` | - - - - - -| Method | Arguments | Description | Default | Key | -|--------|-----------|-------------|---------|-----| -| `addProxy(ProxyType type, String host, int port)` | `type` - proxy type
`host` - proxy hostname or IP
`port` - proxy port | Sets proxy to be used for communication with a server. | - | `proxy_type`, `proxy_host`, `proxy_port` | -| `setProxyCredentials(String user, String pass)` | `user` - proxy username
`pass` - password | Sets user credentials to authenticate with a proxy. | - | `proxy_user`, `proxy_password` | - -
- - - -| Method | Arguments | Description | Default | Key | -|--------|-----------|-------------|---------|-----| -| `setHttpCookiesEnabled(boolean enabled)` | `enabled` - flag to enable/disable | Set if HTTP cookies should be remembered and sent to server back. | - | - | -| `httpHeader(String key, String value)` | `key` - HTTP header key
`value` - string value | Sets value for a single HTTP header. Previous value is overridden. | `none` | `none` | -| `httpHeader(String key, Collection values)` | `key` - HTTP header key
`values` - list of string values | Sets values for a single HTTP header. Previous value is overridden. | `none` | `none` | -| `httpHeaders(Map headers)` | `headers` - map with HTTP headers | Sets multiple HTTP header values at a time. | `none` | `none` | - -
- - - -| Method | Arguments | Description | Default | Key | -|--------|-----------|-------------|---------|-----| -| `serverSetting(String name, String value)` | `name` - setting name
`value` - setting value | Sets what settings to pass to server along with each query. Individual operation settings may override it. [List of settings](/operations/settings/query-level) | `none` | `none` | -| `serverSetting(String name, Collection values)` | `name` - setting name
`values` - setting values | Sets what settings to pass to server with multiple values, for example [roles](/interfaces/http#setting-role-with-query-parameters) | `none` | `none` | - -
- - - -| Method | Arguments | Description | Default | Key | -|--------|-----------|-------------|---------|-----| -| `useServerTimeZone(boolean useServerTimeZone)` | `useServerTimeZone` - flag to enable/disable | Sets if client should use server timezone when decoding DateTime and Date column values. | `true` | `use_server_time_zone` | -| `useTimeZone(String timeZone)` | `timeZone` - java valid timezone ID | Sets if specified timezone should be used when decoding DateTime and Date column values. Will override server timezone. | - | `use_time_zone` | -| `setServerTimeZone(String timeZone)` | `timeZone` - java valid timezone ID | Sets server side timezone. UTC timezone will be used by default. | `UTC` | `server_time_zone` | - - - - - -| Method | Arguments | Description | Default | Key | -|--------|-----------|-------------|---------|-----| -| `setOption(String key, String value)` | `key` - configuration option key
`value` - option value | Sets raw value of client options. Useful when reading configuration from properties files. | - | - | -| `useAsyncRequests(boolean async)` | `async` - flag to enable/disable | Sets if client should execute request in a separate thread. Disabled by default because application knows better how to organize multi-threaded tasks. | `false` | `async` | -| `setSharedOperationExecutor(ExecutorService executorService)` | `executorService` - executor service instance | Sets executor service for operation tasks. | `none` | `none` | -| `setClientNetworkBufferSize(int size)` | `size` - size in bytes | Sets size of a buffer in application memory space that is used to copy data between socket and application. | `300000` | `client_network_buffer_size` | -| `allowBinaryReaderToReuseBuffers(boolean reuse)` | `reuse` - flag to enable/disable | If enabled, reader will use preallocated buffers to do numbers transcoding. Reduces GC pressure for numeric data. | - | - | -| `columnToMethodMatchingStrategy(ColumnToMethodMatchingStrategy strategy)` | `strategy` - matching strategy implementation | Sets custom strategy to be used for matching DTO class fields and DB columns when registering DTO. | `none` | `none` | -| `setClientName(String clientName)` | `clientName` - application name string | Sets additional information about calling application. Will be passed as `User-Agent` header. | - | `client_name` | -| `registerClientMetrics(Object registry, String name)` | `registry` - Micrometer registry instance
`name` - metrics group name | Registers sensors with Micrometer (https://micrometer.io/) registry instance. | - | - | -| `setServerVersion(String version)` | `version` - server version string | Sets server version to avoid version detection. | - | `server_version` | -| `typeHintMapping(Map typeHintMapping)` | `typeHintMapping` - map of type hints | Sets type hint mapping for ClickHouse types. For example, to make multidimensional arrays be present as Java containers. | - | `type_hint_mapping` | - -
-
-
- -### Server Settings - -Server side settings can be set on the client level once while creation (see `serverSetting` method of the `Builder`) and on operation level (see `serverSetting` for operation settings class). - -```java showLineNumbers - try (Client client = new Client.Builder().addEndpoint(Protocol.HTTP, "localhost", mockServer.port(), false) - .setUsername("default") - .setPassword(ClickHouseServerForTest.getPassword()) - .compressClientRequest(true) - - // Client level - .serverSetting("max_threads", "10") - .serverSetting("async_insert", "1") - .serverSetting("roles", Arrays.asList("role1", "role2")) - - .build()) { - - // Operation level - QuerySettings querySettings = new QuerySettings(); - querySettings.serverSetting("session_timezone", "Europe/Zurich"); - - ... -} -``` -⚠️ When options are set via `setOption` method (either the `Client.Builder` or operation settings class) then server settings name should be prefixed with `clickhouse_setting_`. The `com.clickhouse.client.api.ClientConfigProperties#serverSetting()` may be handy in this case. - -### Custom HTTP Header - -Custom HTTP headers can be set for all operations (client level) or a single one (operation level). -```java showLineNumbers - -QuerySettings settings = new QuerySettings() - .httpHeader(HttpHeaders.REFERER, clientReferer) - .setQueryId(qId); - -``` - -When options are set via `setOption` method (either the `Client.Builder` or operation settings class) then custom header name should be prefixed with `http_header_`. Method `com.clickhouse.client.api.ClientConfigProperties#httpHeader()` may be handy in this case. - -## Common Definitions {#common-definitions} - -### ClickHouseFormat {#clickhouseformat} - -Enum of [supported formats](/interfaces/formats). It includes all formats that ClickHouse supports. - -* `raw` - user should transcode raw data -* `full` - the client can transcode data by itself and accepts a raw data stream -* `-` - operation not supported by ClickHouse for this format - -This client version supports: - -| Format | Input | Output | -|-------------------------------------------------------------------------------------------------------------------------------|:------:|:-------:| -| [TabSeparated](/interfaces/formats/TabSeparated) | raw | raw | -| [TabSeparatedRaw](/interfaces/formats/TabSeparatedRaw) | raw | raw | -| [TabSeparatedWithNames](/interfaces/formats/TabSeparatedWithNames) | raw | raw | -| [TabSeparatedWithNamesAndTypes](/interfaces/formats/TabSeparatedWithNamesAndTypes) | raw | raw | -| [TabSeparatedRawWithNames](/interfaces/formats/TabSeparatedRawWithNames) | raw | raw | -| [TabSeparatedRawWithNamesAndTypes](/interfaces/formats/TabSeparatedRawWithNamesAndTypes) | raw | raw | -| [Template](/interfaces/formats/Template) | raw | raw | -| [TemplateIgnoreSpaces](/interfaces/formats/TemplateIgnoreSpaces) | raw | - | -| [CSV](/interfaces/formats/CSV) | raw | raw | -| [CSVWithNames](/interfaces/formats/CSVWithNames) | raw | raw | -| [CSVWithNamesAndTypes](/interfaces/formats/CSVWithNamesAndTypes) | raw | raw | -| [CustomSeparated](/interfaces/formats/CustomSeparated) | raw | raw | -| [CustomSeparatedWithNames](/interfaces/formats/CustomSeparatedWithNames) | raw | raw | -| [CustomSeparatedWithNamesAndTypes](/interfaces/formats/CustomSeparatedWithNamesAndTypes) | raw | raw | -| [SQLInsert](/interfaces/formats/SQLInsert) | - | raw | -| [Values](/interfaces/formats/Values) | raw | raw | -| [Vertical](/interfaces/formats/Vertical) | - | raw | -| [JSON](/interfaces/formats/JSON) | raw | raw | -| [JSONAsString](/interfaces/formats/JSONAsString) | raw | - | -| [JSONAsObject](/interfaces/formats/JSONAsObject) | raw | - | -| [JSONStrings](/interfaces/formats/JSONStrings) | raw | raw | -| [JSONColumns](/interfaces/formats/JSONColumns) | raw | raw | -| [JSONColumnsWithMetadata](/interfaces/formats/JSONColumnsWithMetadata) | raw | raw | -| [JSONCompact](/interfaces/formats/JSONCompact) | raw | raw | -| [JSONCompactStrings](/interfaces/formats/JSONCompactStrings) | - | raw | -| [JSONCompactColumns](/interfaces/formats/JSONCompactColumns) | raw | raw | -| [JSONEachRow](/interfaces/formats/JSONEachRow) | raw | raw | -| [PrettyJSONEachRow](/interfaces/formats/PrettyJSONEachRow) | - | raw | -| [JSONEachRowWithProgress](/interfaces/formats/JSONEachRowWithProgress) | - | raw | -| [JSONStringsEachRow](/interfaces/formats/JSONStringsEachRow) | raw | raw | -| [JSONStringsEachRowWithProgress](/interfaces/formats/JSONStringsEachRowWithProgress) | - | raw | -| [JSONCompactEachRow](/interfaces/formats/JSONCompactEachRow) | raw | raw | -| [JSONCompactEachRowWithNames](/interfaces/formats/JSONCompactEachRowWithNames) | raw | raw | -| [JSONCompactEachRowWithNamesAndTypes](/interfaces/formats/JSONCompactEachRowWithNamesAndTypes) | raw | raw | -| [JSONCompactStringsEachRow](/interfaces/formats/JSONCompactStringsEachRow) | raw | raw | -| [JSONCompactStringsEachRowWithNames](/interfaces/formats/JSONCompactStringsEachRowWithNames) | raw | raw | -| [JSONCompactStringsEachRowWithNamesAndTypes](/interfaces/formats/JSONCompactStringsEachRowWithNamesAndTypes) | raw | raw | -| [JSONObjectEachRow](/interfaces/formats/JSONObjectEachRow) | raw | raw | -| [BSONEachRow](/interfaces/formats/BSONEachRow) | raw | raw | -| [TSKV](/interfaces/formats/TSKV) | raw | raw | -| [Pretty](/interfaces/formats/Pretty) | - | raw | -| [PrettyNoEscapes](/interfaces/formats/PrettyNoEscapes) | - | raw | -| [PrettyMonoBlock](/interfaces/formats/PrettyMonoBlock) | - | raw | -| [PrettyNoEscapesMonoBlock](/interfaces/formats/PrettyNoEscapesMonoBlock) | - | raw | -| [PrettyCompact](/interfaces/formats/PrettyCompact) | - | raw | -| [PrettyCompactNoEscapes](/interfaces/formats/PrettyCompactNoEscapes) | - | raw | -| [PrettyCompactMonoBlock](/interfaces/formats/PrettyCompactMonoBlock) | - | raw | -| [PrettyCompactNoEscapesMonoBlock](/interfaces/formats/PrettyCompactNoEscapesMonoBlock) | - | raw | -| [PrettySpace](/interfaces/formats/PrettySpace) | - | raw | -| [PrettySpaceNoEscapes](/interfaces/formats/PrettySpaceNoEscapes) | - | raw | -| [PrettySpaceMonoBlock](/interfaces/formats/PrettySpaceMonoBlock) | - | raw | -| [PrettySpaceNoEscapesMonoBlock](/interfaces/formats/PrettySpaceNoEscapesMonoBlock) | - | raw | -| [Prometheus](/interfaces/formats/Prometheus) | - | raw | -| [Protobuf](/interfaces/formats/Protobuf) | raw | raw | -| [ProtobufSingle](/interfaces/formats/ProtobufSingle) | raw | raw | -| [ProtobufList](/interfaces/formats/ProtobufList) | raw | raw | -| [Avro](/interfaces/formats/Avro) | raw | raw | -| [AvroConfluent](/interfaces/formats/AvroConfluent) | raw | - | -| [Parquet](/interfaces/formats/Parquet) | raw | raw | -| [ParquetMetadata](/interfaces/formats/ParquetMetadata) | raw | - | -| [Arrow](/interfaces/formats/Arrow) | raw | raw | -| [ArrowStream](/interfaces/formats/ArrowStream) | raw | raw | -| [ORC](/interfaces/formats/ORC) | raw | raw | -| [One](/interfaces/formats/One) | raw | - | -| [Npy](/interfaces/formats/Npy) | raw | raw | -| [RowBinary](/interfaces/formats/RowBinary) | full | full | -| [RowBinaryWithNames](/interfaces/formats/RowBinaryWithNamesAndTypes) | full | full | -| [RowBinaryWithNamesAndTypes](/interfaces/formats/RowBinaryWithNamesAndTypes) | full | full | -| [RowBinaryWithDefaults](/interfaces/formats/RowBinaryWithDefaults) | full | - | -| [Native](/interfaces/formats/Native) | full | raw | -| [Null](/interfaces/formats/Null) | - | raw | -| [XML](/interfaces/formats/XML) | - | raw | -| [CapnProto](/interfaces/formats/CapnProto) | raw | raw | -| [LineAsString](/interfaces/formats/LineAsString) | raw | raw | -| [Regexp](/interfaces/formats/Regexp) | raw | - | -| [RawBLOB](/interfaces/formats/RawBLOB) | raw | raw | -| [MsgPack](/interfaces/formats/MsgPack) | raw | raw | -| [MySQLDump](/interfaces/formats/MySQLDump) | raw | - | -| [DWARF](/interfaces/formats/DWARF) | raw | - | -| [Markdown](/interfaces/formats/Markdown) | - | raw | -| [Form](/interfaces/formats/Form) | raw | - | - -## Insert API {#insert-api} - -### insert(String tableName, InputStream data, ClickHouseFormat format) {#insertstring-tablename-inputstream-data-clickhouseformat-format} - -Accepts data as an `InputStream` of bytes in the specified format. It is expected that `data` is encoded in the `format`. - -**Signatures** - -```java -CompletableFuture insert(String tableName, InputStream data, ClickHouseFormat format, InsertSettings settings) -CompletableFuture insert(String tableName, InputStream data, ClickHouseFormat format) -``` - -**Parameters** - -`tableName` - a target table name. - -`data` - an input stream of an encoded data. - -`format` - a format in which the data is encoded. - -`settings` - request settings. - -**Return value** - -Future of `InsertResponse` type - result of the operation and additional information like server side metrics. - -**Examples** - -```java showLineNumbers -try (InputStream dataStream = getDataStream()) { - try (InsertResponse response = client.insert(TABLE_NAME, dataStream, ClickHouseFormat.JSONEachRow, - insertSettings).get(3, TimeUnit.SECONDS)) { - - log.info("Insert finished: {} rows written", response.getMetrics().getMetric(ServerMetrics.NUM_ROWS_WRITTEN).getLong()); - } catch (Exception e) { - log.error("Failed to write JSONEachRow data", e); - throw new RuntimeException(e); - } -} - -``` - -### insert(String tableName, List<?> data, InsertSettings settings) {#insertstring-tablename-listlt-data-insertsettings-settings} - -Sends a write request to database. The list of objects is converted into an efficient format and then is sent to a server. The class of the list items should be registered up-front using `register(Class, TableSchema)` method. - -**Signatures** -```java -client.insert(String tableName, List data, InsertSettings settings) -client.insert(String tableName, List data) -``` - -**Parameters** - -`tableName` - name of the target table. - -`data` - collection DTO (Data Transfer Object) objects. - -`settings` - request settings. - -**Return value** - -Future of `InsertResponse` type - the result of the operation and additional information like server side metrics. - -**Examples** - -```java showLineNumbers -// Important step (done once) - register class to pre-compile object serializer according to the table schema. -client.register(ArticleViewEvent.class, client.getTableSchema(TABLE_NAME)); - -List events = loadBatch(); - -try (InsertResponse response = client.insert(TABLE_NAME, events).get()) { - // handle response, then it will be closed and connection that served request will be released. -} -``` - -### InsertSettings {#insertsettings} - -Configuration options for insert operations. - -**Configuration methods** - -| Method | Description | -|----------------------------------------------|----------------------------------------------------------------------------------------------------------------------------| -| `setQueryId(String queryId)` | Sets query ID that will be assigned to the operation. Default: `null`. | -| `setDeduplicationToken(String token)` | Sets the deduplication token. This token will be sent to the server and can be used to identify the query. Default: `null`. | -| `setInputStreamCopyBufferSize(int size)` | Copy buffer size. The buffer is used during write operations to copy data from user-provided input stream to an output stream. Default: `8196`. | -| `serverSetting(String name, String value)` | Sets individual server settings for an operation. | -| `serverSetting(String name, Collection values)` | Sets individual server settings with multiple values for an operation. Items of the collection should be `String` values. | -| `setDBRoles(Collection dbRoles)` | Sets DB roles to be set before executing an operation. Items of the collection should be `String` values. | -| `setOption(String option, Object value)` | Sets a configuration option in raw format. This is not a server setting. | - -### InsertResponse {#insertresponse} - -Response object that holds result of insert operation. It is only available if the client got response from a server. - -:::note -This object should be closed as soon as possible to release a connection because the connection cannot be re-used until all data of previous response is fully read. -::: - -| Method | Description | -|-----------------------------|------------------------------------------------------------------------------------------------------| -| `OperationMetrics getMetrics()` | Returns object with operation metrics. | -| `String getQueryId()` | Returns query ID assigned for the operation by the application (through operation settings or by server). | - -## Query API {#query-api} - -### query(String sqlQuery) {#querystring-sqlquery} - -Sends `sqlQuery` as is. Response format is set by query settings. `QueryResponse` will hold a reference to the response stream that should be consumed by a reader for the supportig format. - -**Signatures** - -```java -CompletableFuture query(String sqlQuery, QuerySettings settings) -CompletableFuture query(String sqlQuery) -``` - -**Parameters** - -`sqlQuery` - a single SQL statement. The Query is sent as is to a server. - -`settings` - request settings. - -**Return value** - -Future of `QueryResponse` type - a result dataset and additional information like server side metrics. The Response object should be closed after consuming the dataset. - -**Examples** - -```java -final String sql = "select * from " + TABLE_NAME + " where title <> '' limit 10"; - -// Default format is RowBinaryWithNamesAndTypesFormatReader so reader have all information about columns -try (QueryResponse response = client.query(sql).get(3, TimeUnit.SECONDS);) { - - // Create a reader to access the data in a convenient way - ClickHouseBinaryFormatReader reader = client.newBinaryFormatReader(response); - - while (reader.hasNext()) { - reader.next(); // Read the next record from stream and parse it - - // get values - double id = reader.getDouble("id"); - String title = reader.getString("title"); - String url = reader.getString("url"); - - // collecting data - } -} catch (Exception e) { - log.error("Failed to read data", e); -} - -// put business logic outside of the reading block to release http connection asap. -``` - -### query(String sqlQuery, Map<String, Object> queryParams, QuerySettings settings) {#querystring-sqlquery-mapltstring-object-queryparams-querysettings-settings} - -Sends `sqlQuery` as is. Additionally will send query parameters so the server can compile the SQL expression. - -**Signatures** -```java -CompletableFuture query(String sqlQuery, Map queryParams, QuerySettings settings) -``` - -**Parameters** - -`sqlQuery` - sql expression with placeholders `{}`. - -`queryParams` - map of variables to complete the sql expression on server. - -`settings` - request settings. - -**Return value** - -Future of `QueryResponse` type - a result dataset and additional information like server side metrics. The Response object should be closed after consuming the dataset. - -**Examples** - -```java showLineNumbers - -// define parameters. They will be sent to the server along with the request. -Map queryParams = new HashMap<>(); -queryParams.put("param1", 2); - -try (QueryResponse response = - client.query("SELECT * FROM " + table + " WHERE col1 >= {param1:UInt32}", queryParams, new QuerySettings()).get()) { - - // Create a reader to access the data in a convenient way - ClickHouseBinaryFormatReader reader = client.newBinaryFormatReader(response); - - while (reader.hasNext()) { - reader.next(); // Read the next record from stream and parse it - - // reading data - } - -} catch (Exception e) { - log.error("Failed to read data", e); -} - -``` - -### queryAll(String sqlQuery) {#queryallstring-sqlquery} - -Queries a data in `RowBinaryWithNamesAndTypes` format. Returns the result as a collection. Read performance is the same as with the reader but more memory is required to hold the whole dataset. - -**Signatures** -```java -List queryAll(String sqlQuery) -``` - -**Parameters** - -`sqlQuery` - sql expression to query data from a server. - -**Return value** - -Complete dataset represented by a list of `GenericRecord` objects that provide access in row style for the result data. - -**Examples** - -```java showLineNumbers -try { - log.info("Reading whole table and process record by record"); - final String sql = "select * from " + TABLE_NAME + " where title <> ''"; - - // Read whole result set and process it record by record - client.queryAll(sql).forEach(row -> { - double id = row.getDouble("id"); - String title = row.getString("title"); - String url = row.getString("url"); - - log.info("id: {}, title: {}, url: {}", id, title, url); - }); -} catch (Exception e) { - log.error("Failed to read data", e); -} -``` - -### QuerySettings {#querysettings} - -Configuration options for query operations. - -**Configuration methods** - -| Method | Description | -|----------------------------------------------|----------------------------------------------------------------------------------------------------------------------------| -| `setQueryId(String queryId)` | Sets query ID that will be assigned to the operation. | -| `setFormat(ClickHouseFormat format)` | Sets response format. See `RowBinaryWithNamesAndTypes` for the full list. | -| `setMaxExecutionTime(Integer maxExecutionTime)` | Sets operation execution time on server. Will not affect read timeout. | -| `waitEndOfQuery(Boolean waitEndOfQuery)` | Requests the server to wait for the end of the query before sending a response. | -| `setUseServerTimeZone(Boolean useServerTimeZone)` | Server timezone (see client config) will be used to parse date/time types in the result of an operation. Default `false`. | -| `setUseTimeZone(String timeZone)` | Requests server to use `timeZone` for time conversion. See [session_timezone](/operations/settings/settings#session_timezone). | -| `serverSetting(String name, String value)` | Sets individual server settings for an operation. | -| `serverSetting(String name, Collection values)` | Sets individual server settings with multiple values for an operation. Items of the collection should be `String` values. | -| `setDBRoles(Collection dbRoles)` | Sets DB roles to be set before executing an operation. Items of the collection should be `String` values. | -| `setOption(String option, Object value)` | Sets a configuration option in raw format. This is not a server setting. | - -### QueryResponse {#queryresponse} - -Response object that holds result of query execution. It is only available if the client got a response from a server. - -:::note -This object should be closed as soon as possible to release a connection because the connection cannot be re-used until all data of previous response is fully read. -::: - -| Method | Description | -|-------------------------------------|------------------------------------------------------------------------------------------------------| -| `ClickHouseFormat getFormat()` | Returns a format in which data in the response is encoded. | -| `InputStream getInputStream()` | Returns uncompressed byte stream of data in the specified format. | -| `OperationMetrics getMetrics()` | Returns object with operation metrics. | -| `String getQueryId()` | Returns query ID assigned for the operation by the application (through operation settings or by server). | -| `TimeZone getTimeZone()` | Returns timezone that should be used for handling Date/DateTime types in the response. | - -### Examples {#examples} - -- Example code is available in [repo](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/client-v2) -- Reference Spring Service [implementation](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/demo-service) - -## Common API {#common-api} - -### getTableSchema(String table) {#gettableschemastring-table} - -Fetches table schema for the `table`. - -**Signatures** - -```java -TableSchema getTableSchema(String table) -TableSchema getTableSchema(String table, String database) -``` - -**Parameters** - -`table` - table name for which schema data should be fetched. - -`database` - database where the target table is defined. - -**Return value** - -Returns a `TableSchema` object with list of table columns. - -### getTableSchemaFromQuery(String sql) {#gettableschemafromquerystring-sql} - -Fetches schema from a SQL statement. - -**Signatures** - -```java -TableSchema getTableSchemaFromQuery(String sql) -``` - -**Parameters** - -`sql` - "SELECT" SQL statement which schema should be returned. - -**Return value** - -Returns a `TableSchema` object with columns matching the `sql` expression. - -### TableSchema {#tableschema} - -### register(Class<?> clazz, TableSchema schema) {#registerclasslt-clazz-tableschema-schema} - -Compiles serialization and deserialization layer for the Java Class to use for writing/reading data with `schema`. The method will create a serializer and deserializer for the pair getter/setter and corresponding column. -Column match is found by extracting its name from a method name. For example, `getFirstName` will be for the column `first_name` or `firstname`. - -**Signatures** - -```java -void register(Class clazz, TableSchema schema) -``` - -**Parameters** - -`clazz` - Class representing the POJO used to read/write data. - -`schema` - Data schema to use for matching with POJO properties. - -**Examples** - -```java showLineNumbers -client.register(ArticleViewEvent.class, client.getTableSchema(TABLE_NAME)); -``` - -## Usage Examples {#usage-examples} - -Complete examples code is stored in the repo in a 'example` [folder](https://github.com/ClickHouse/clickhouse-java/tree/main/examples): - -- [client-v2](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/client-v2) - main set of examples. -- [demo-service](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/demo-service) - example of how to use the client in a Spring Boot application. -- [demo-kotlin-service](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/demo-kotlin-service) - example of how to use the client in Ktor (Kotlin) application. - -## Migration Guide {#migration_guide} - - -Old client (V1) was using `com.clickhouse.client.ClickHouseClient#builder` as start point. The new client (V2) uses similar pattern with `com.clickhouse.client.api.Client.Builder`. Main -differences are: -- no service loader is used to grab implementation. The `com.clickhouse.client.api.Client` is facade class for all kinds of implementation in the future. -- a fewer sources of configuration: one is provided to the builder and one is with operation settings (`QuerySettings`, `InsertSettings`). Previous version had configuration per node and was loading -env. variables in some cases. - -### Configuration Parameters Match {#migration_from_v1_config} - -There are 3 enum classes related to configuration in V1: -- `com.clickhouse.client.config.ClickHouseDefaults` - configuration parameters that supposed to be set in most use cases. Like `USER` and `PASSWORD`. -- `com.clickhouse.client.config.ClickHouseClientOption` - configuration parameters specific for the client. Like `HEALTH_CHECK_INTERVAL`. -- `com.clickhouse.client.http.config.ClickHouseHttpOption` - configuration parameters specific for HTTP interface. Like `RECEIVE_QUERY_PROGRESS`. - -They were designed to group parameters and provide clear separation. However in some cases it lead to a confusion (is there a difference between `com.clickhouse.client.config.ClickHouseDefaults#ASYNC` and -`com.clickhouse.client.config.ClickHouseClientOption#ASYNC`). The new V2 client uses `com.clickhouse.client.api.Client.Builder` as single dictionary of all possible client configuration options.There is -`com.clickhouse.client.api.ClientConfigProperties` where all configuration parameter names are listed. - -Table below shows what old options are supported in the new client and their new meaning. - -**Legend:** ✔ = supported, ✗ = dropped - - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseDefaults#HOST` | `Client.Builder#addEndpoint` | | -| `ClickHouseDefaults#PROTOCOL` | ✗ | Only HTTP supported in V2 | -| `ClickHouseDefaults#DATABASE`
`ClickHouseClientOption#DATABASE` | `Client.Builder#setDefaultDatabase` | | -| `ClickHouseDefaults#USER` | `Client.Builder#setUsername` | | -| `ClickHouseDefaults#PASSWORD` | `Client.Builder#setPassword` | | -| `ClickHouseClientOption#CONNECTION_TIMEOUT` | `Client.Builder#setConnectTimeout` | | -| `ClickHouseClientOption#CONNECTION_TTL` | `Client.Builder#setConnectionTTL` | | -| `ClickHouseHttpOption#MAX_OPEN_CONNECTIONS` | `Client.Builder#setMaxConnections` | | -| `ClickHouseHttpOption#KEEP_ALIVE`
`ClickHouseHttpOption#KEEP_ALIVE_TIMEOUT` | `Client.Builder#setKeepAliveTimeout` | | -| `ClickHouseHttpOption#CONNECTION_REUSE_STRATEGY` | `Client.Builder#setConnectionReuseStrategy` | | -| `ClickHouseHttpOption#USE_BASIC_AUTHENTICATION` | `Client.Builder#useHTTPBasicAuth` | | - -
- - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseDefaults#SSL_CERTIFICATE_TYPE` | ✗ | | -| `ClickHouseDefaults#SSL_KEY_ALGORITHM` | ✗ | | -| `ClickHouseDefaults#SSL_PROTOCOL` | ✗ | | -| `ClickHouseClientOption#SSL` | ✗ | See `Client.Builder#addEndpoint` | -| `ClickHouseClientOption#SSL_MODE` | ✗ | | -| `ClickHouseClientOption#SSL_ROOT_CERTIFICATE` | `Client.Builder#setRootCertificate` | SSL Auth should be enabled by `useSSLAuthentication` | -| `ClickHouseClientOption#SSL_CERTIFICATE` | `Client.Builder#setClientCertificate` | | -| `ClickHouseClientOption#SSL_KEY` | `Client.Builder#setClientKey` | | -| `ClickHouseClientOption#KEY_STORE_TYPE` | `Client.Builder#setSSLTrustStoreType` | | -| `ClickHouseClientOption#TRUST_STORE` | `Client.Builder#setSSLTrustStore` | | -| `ClickHouseClientOption#KEY_STORE_PASSWORD` | `Client.Builder#setSSLTrustStorePassword` | | -| `ClickHouseClientOption#SSL_SOCKET_SNI` | `Client.Builder#sslSocketSNI` | | -| `ClickHouseClientOption#CUSTOM_SOCKET_FACTORY` | ✗ | | -| `ClickHouseClientOption#CUSTOM_SOCKET_FACTORY_OPTIONS` | ✗ | See `Client.Builder#sslSocketSNI` to set SNI | - - - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseClientOption#SOCKET_TIMEOUT` | `Client.Builder#setSocketTimeout` | | -| `ClickHouseClientOption#SOCKET_REUSEADDR` | `Client.Builder#setSocketReuseAddress` | | -| `ClickHouseClientOption#SOCKET_KEEPALIVE` | `Client.Builder#setSocketKeepAlive` | | -| `ClickHouseClientOption#SOCKET_LINGER` | `Client.Builder#setSocketLinger` | | -| `ClickHouseClientOption#SOCKET_IP_TOS` | ✗ | | -| `ClickHouseClientOption#SOCKET_TCP_NODELAY` | `Client.Builder#setSocketTcpNodelay` | | -| `ClickHouseClientOption#SOCKET_RCVBUF` | `Client.Builder#setSocketRcvbuf` | | -| `ClickHouseClientOption#SOCKET_SNDBUF` | `Client.Builder#setSocketSndbuf` | | - - - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseClientOption#COMPRESS` | `Client.Builder#compressServerResponse` | See also `useHttpCompression` | -| `ClickHouseClientOption#DECOMPRESS` | `Client.Builder#compressClientRequest` | See also `useHttpCompression` | -| `ClickHouseClientOption#COMPRESS_ALGORITHM` | ✗ | `LZ4` for non-http. Http uses `Accept-Encoding` | -| `ClickHouseClientOption#DECOMPRESS_ALGORITHM` | ✗ | `LZ4` for non-http. Http uses `Content-Encoding` | -| `ClickHouseClientOption#COMPRESS_LEVEL` | ✗ | | -| `ClickHouseClientOption#DECOMPRESS_LEVEL` | ✗ | | - - - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseClientOption#PROXY_TYPE` | `Client.Builder#addProxy` | | -| `ClickHouseClientOption#PROXY_HOST` | `Client.Builder#addProxy` | | -| `ClickHouseClientOption#PROXY_PORT` | `Client.Builder#addProxy` | | -| `ClickHouseClientOption#PROXY_USERNAME` | `Client.Builder#setProxyCredentials` | | -| `ClickHouseClientOption#PROXY_PASSWORD` | `Client.Builder#setProxyCredentials` | | - - - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseClientOption#MAX_EXECUTION_TIME` | `Client.Builder#setExecutionTimeout` | | -| `ClickHouseClientOption#RETRY` | `Client.Builder#setMaxRetries` | See also `retryOnFailures` | -| `ClickHouseHttpOption#AHC_RETRY_ON_FAILURE` | `Client.Builder#retryOnFailures` | | -| `ClickHouseClientOption#FAILOVER` | ✗ | | -| `ClickHouseClientOption#REPEAT_ON_SESSION_LOCK` | ✗ | | -| `ClickHouseClientOption#SESSION_ID` | ✗ | | -| `ClickHouseClientOption#SESSION_CHECK` | ✗ | | -| `ClickHouseClientOption#SESSION_TIMEOUT` | ✗ | | - - - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseDefaults#SERVER_TIME_ZONE`
`ClickHouseClientOption#SERVER_TIME_ZONE` | `Client.Builder#setServerTimeZone` | | -| `ClickHouseClientOption#USE_SERVER_TIME_ZONE` | `Client.Builder#useServerTimeZone` | | -| `ClickHouseClientOption#USE_SERVER_TIME_ZONE_FOR_DATES` | | | -| `ClickHouseClientOption#USE_TIME_ZONE` | `Client.Builder#useTimeZone` | | - -
- - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseClientOption#BUFFER_SIZE` | `Client.Builder#setClientNetworkBufferSize` | | -| `ClickHouseClientOption#BUFFER_QUEUE_VARIATION` | ✗ | | -| `ClickHouseClientOption#READ_BUFFER_SIZE` | ✗ | | -| `ClickHouseClientOption#WRITE_BUFFER_SIZE` | ✗ | | -| `ClickHouseClientOption#REQUEST_CHUNK_SIZE` | ✗ | | -| `ClickHouseClientOption#REQUEST_BUFFERING` | ✗ | | -| `ClickHouseClientOption#RESPONSE_BUFFERING` | ✗ | | -| `ClickHouseClientOption#MAX_BUFFER_SIZE` | ✗ | | -| `ClickHouseClientOption#MAX_QUEUED_BUFFERS` | ✗ | | -| `ClickHouseClientOption#MAX_QUEUED_REQUESTS` | ✗ | | -| `ClickHouseClientOption#REUSE_VALUE_WRAPPER` | ✗ | | - - - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseDefaults#ASYNC`
`ClickHouseClientOption#ASYNC` | `Client.Builder#useAsyncRequests` | | -| `ClickHouseDefaults#MAX_SCHEDULER_THREADS` | ✗ | see `setSharedOperationExecutor` | -| `ClickHouseDefaults#MAX_THREADS` | ✗ | see `setSharedOperationExecutor` | -| `ClickHouseDefaults#THREAD_KEEPALIVE_TIMEOUT` | see `setSharedOperationExecutor` | | -| `ClickHouseClientOption#MAX_THREADS_PER_CLIENT` | ✗ | | -| `ClickHouseClientOption#MAX_CORE_THREAD_TTL` | ✗ | | - -
- - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseHttpOption#CUSTOM_HEADERS` | `Client.Builder#httpHeaders` | | -| `ClickHouseHttpOption#CUSTOM_PARAMS` | ✗ | See `Client.Builder#serverSetting` | -| `ClickHouseClientOption#CLIENT_NAME` | `Client.Builder#setClientName` | | -| `ClickHouseHttpOption#CONNECTION_PROVIDER` | ✗ | | -| `ClickHouseHttpOption#DEFAULT_RESPONSE` | ✗ | | -| `ClickHouseHttpOption#SEND_HTTP_CLIENT_ID` | ✗ | | -| `ClickHouseHttpOption#AHC_VALIDATE_AFTER_INACTIVITY` | ✗ | Always enabled when Apache Http Client is used | - - - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseDefaults#FORMAT`
`ClickHouseClientOption#FORMAT` | ✗ | Moved to operation settings (`QuerySettings` and `InsertSettings`) | -| `ClickHouseClientOption#QUERY_ID` | ✗ | See `QuerySettings` and `InsertSettings` | -| `ClickHouseClientOption#LOG_LEADING_COMMENT` | ✗ | See `QuerySettings#logComment` and `InsertSettings#logComment` | -| `ClickHouseClientOption#MAX_RESULT_ROWS` | ✗ | Is server side setting | -| `ClickHouseClientOption#RESULT_OVERFLOW_MODE` | ✗ | Is server side setting | -| `ClickHouseHttpOption#RECEIVE_QUERY_PROGRESS` | ✗ | Server side setting | -| `ClickHouseHttpOption#WAIT_END_OF_QUERY` | ✗ | Server side setting | -| `ClickHouseHttpOption#REMEMBER_LAST_SET_ROLES` | `Client#setDBRoles` | Runtime config now. See also `QuerySettings#setDBRoles` and `InsertSettings#setDBRoles` | - -
- - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseClientOption#AUTO_DISCOVERY` | ✗ | | -| `ClickHouseClientOption#LOAD_BALANCING_POLICY` | ✗ | | -| `ClickHouseClientOption#LOAD_BALANCING_TAGS` | ✗ | | -| `ClickHouseClientOption#HEALTH_CHECK_INTERVAL` | ✗ | | -| `ClickHouseClientOption#HEALTH_CHECK_METHOD` | ✗ | | -| `ClickHouseClientOption#NODE_DISCOVERY_INTERVAL` | ✗ | | -| `ClickHouseClientOption#NODE_DISCOVERY_LIMIT` | ✗ | | -| `ClickHouseClientOption#NODE_CHECK_INTERVAL` | ✗ | | -| `ClickHouseClientOption#NODE_GROUP_SIZE` | ✗ | | -| `ClickHouseClientOption#CHECK_ALL_NODES` | ✗ | | - - - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseDefaults#AUTO_SESSION` | ✗ | Session support will be reviewed | -| `ClickHouseDefaults#BUFFERING` | ✗ | | -| `ClickHouseDefaults#MAX_REQUESTS` | ✗ | | -| `ClickHouseDefaults#ROUNDING_MODE` | | | -| `ClickHouseDefaults#SERVER_VERSION`
`ClickHouseClientOption#SERVER_VERSION` | `Client.Builder#setServerVersion` | | -| `ClickHouseDefaults#SRV_RESOLVE` | ✗ | | -| `ClickHouseClientOption#CUSTOM_SETTINGS` | | | -| `ClickHouseClientOption#PRODUCT_NAME` | ✗ | Use client name | -| `ClickHouseClientOption#RENAME_RESPONSE_COLUMN` | ✗ | | -| `ClickHouseClientOption#SERVER_REVISION` | ✗ | | -| `ClickHouseClientOption#TRANSACTION_TIMEOUT` | ✗ | | -| `ClickHouseClientOption#WIDEN_UNSIGNED_TYPES` | ✗ | | -| `ClickHouseClientOption#USE_BINARY_STRING` | ✗ | | -| `ClickHouseClientOption#USE_BLOCKING_QUEUE` | ✗ | | -| `ClickHouseClientOption#USE_COMPILATION` | ✗ | | -| `ClickHouseClientOption#USE_OBJECTS_IN_ARRAYS` | ✗ | | -| `ClickHouseClientOption#MAX_MAPPER_CACHE` | ✗ | | -| `ClickHouseClientOption#MEASURE_REQUEST_TIME` | ✗ | | - -
-
- - -### General Differences - -- Client V2 uses less proprietary classes to increase portability. For example, V2 works with any implementation of `java.io.InputStream` for -writing data to a server. -- Client V2 `async` settings is `off` by default. It means no extra threads and more application control over client. This setting should be `off` for majority of use cases. Enabling `async` will create a separate thread for a request. It only make sense when using application controlled -executor (see `com.clickhouse.client.api.Client.Builder#setSharedOperationExecutor`) - -### Writing Data - -- use any implementation of `java.io.InputStream`. V1 `com.clickhouse.data.ClickHouseInputStream` is supported but NOT recommended. -- once end of input stream is detected it handled accordingly. Previously output stream of a request should be closed. - -__V1 Insert TSV formatted data.__ -```java -InputStream inData = getInData(); -ClickHouseRequest.Mutation request = client.read(server) - .write() - .table(tableName) - .format(ClickHouseFormat.TSV); -ClickHouseConfig config = request.getConfig(); -CompletableFuture future; -try (ClickHousePipedOutputStream requestBody = ClickHouseDataStreamFactory.getInstance() - .createPipedOutputStream(config)) { - // start the worker thread which transfer data from the input into ClickHouse - future = request.data(requestBody.getInputStream()).execute(); - - // Copy data from inData stream to requestBody stream - - // We need to close the stream before getting a response - requestBody.close(); - - try (ClickHouseResponse response = future.get()) { - ClickHouseResponseSummary summary = response.getSummary(); - Assert.assertEquals(summary.getWrittenRows(), numRows, "Num of written rows"); - } -} - -``` - -__V2 Insert TSV formatted data.__ - -```java -InputStream inData = getInData(); -InsertSettings settings = new InsertSettings().setInputStreamCopyBufferSize(8198 * 2); // set copy buffer size -try (InsertResponse response = client.insert(tableName, inData, ClickHouseFormat.TSV, settings).get(30, TimeUnit.SECONDS)) { - - // Insert is complete at this point - -} catch (Exception e) { - // Handle exception -} -``` -- there is a single method to call. No need to create an additional request object. -- request body stream is closed automatically when all data is copied. -- new low-level API is available `com.clickhouse.client.api.Client#insert(java.lang.String, java.util.List, com.clickhouse.client.api.DataStreamWriter, com.clickhouse.data.ClickHouseFormat, com.clickhouse.client.api.insert.InsertSettings)`. `com.clickhouse.client.api.DataStreamWriter` is designed to implement custom data writing logic. For instance, reading data from a -queue. - - -### Reading Data - -- Data is read in `RowBinaryWithNamesAndTypes` format by default. Currently only this format is supported when data binding is required. -- Data can be read as a collection of records using `List com.clickhouse.client.api.Client#queryAll(java.lang.String)` method. It will read data to a memory and release connection. No need for extra handling. `GenericRecord` gives access to data, implements some conversions. - -```java -Collection records = client.queryAll("SELECT * FROM table"); -for (GenericRecord record : records) { - int rowId = record.getInteger("rowID"); - String name = record.getString("name"); - LocalDateTime ts = record.getLocalDateTime("ts"); -} - -``` - -
- - - -Java client library to communicate with a DB server through its protocols. Current implementation supports only [HTTP interface](/interfaces/http). The library provides own API to send requests to a server. - -:::warning Deprecation -This library will be deprecated soon. Use the latest [Java Client](/integrations/language-clients/java/client/client.mdx) for new projects -::: - -## Setup {#v1-setup} - - - - -```xml - - - com.clickhouse - clickhouse-http-client - 0.7.2 - -``` - - - - -```kotlin -// https://mvnrepository.com/artifact/com.clickhouse/clickhouse-http-client -implementation("com.clickhouse:clickhouse-http-client:0.7.2") -``` - - - -```groovy -// https://mvnrepository.com/artifact/com.clickhouse/clickhouse-http-client -implementation 'com.clickhouse:clickhouse-http-client:0.7.2' -``` - - - - -Since version `0.5.0`, the driver uses a new client http library that needs to be added as a dependency. - - - - -```xml - - - org.apache.httpcomponents.client5 - httpclient5 - 5.3.1 - -``` - - - - -```kotlin -// https://mvnrepository.com/artifact/org.apache.httpcomponents.client5/httpclient5 -implementation("org.apache.httpcomponents.client5:httpclient5:5.3.1") -``` - - - -```groovy -// https://mvnrepository.com/artifact/org.apache.httpcomponents.client5/httpclient5 -implementation 'org.apache.httpcomponents.client5:httpclient5:5.3.1' -``` - - - - -## Initialization {#v1-initialization} - -Connection URL Format: `protocol://host[:port][/database][?param[=value][¶m[=value]][#tag[,tag]]`, for example: - -- `http://localhost:8443?ssl=true&sslmode=NONE` -- `https://(https://explorer@play.clickhouse.com:443` - -Connect to a single node: - -```java showLineNumbers -ClickHouseNode server = ClickHouseNode.of("http://localhost:8123/default?compress=0"); -``` -Connect to a cluster with multiple nodes: - -```java showLineNumbers -ClickHouseNodes servers = ClickHouseNodes.of( - "jdbc:ch:http://server1.domain,server2.domain,server3.domain/my_db" - + "?load_balancing_policy=random&health_check_interval=5000&failover=2"); -``` - -## Query API {#v1-query-api} - -```java showLineNumbers -try (ClickHouseClient client = ClickHouseClient.newInstance(ClickHouseProtocol.HTTP); - ClickHouseResponse response = client.read(servers) - .format(ClickHouseFormat.RowBinaryWithNamesAndTypes) - .query("select * from numbers limit :limit") - .params(1000) - .executeAndWait()) { - ClickHouseResponseSummary summary = response.getSummary(); - long totalRows = summary.getTotalRowsToRead(); -} -``` - -## Streaming Query API {#v1-streaming-query-api} - -```java showLineNumbers -try (ClickHouseClient client = ClickHouseClient.newInstance(ClickHouseProtocol.HTTP); - ClickHouseResponse response = client.read(servers) - .format(ClickHouseFormat.RowBinaryWithNamesAndTypes) - .query("select * from numbers limit :limit") - .params(1000) - .executeAndWait()) { - for (ClickHouseRecord r : response.records()) { - int num = r.getValue(0).asInteger(); - // type conversion - String str = r.getValue(0).asString(); - LocalDate date = r.getValue(0).asDate(); - } -} -``` - -See [complete code example](https://github.com/ClickHouse/clickhouse-java/blob/main/examples/client/src/main/java/com/clickhouse/examples/jdbc/Main.java#L73) in the [repo](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/client). - -## Insert API {#v1-insert-api} - -```java showLineNumbers - -try (ClickHouseClient client = ClickHouseClient.newInstance(ClickHouseProtocol.HTTP); - ClickHouseResponse response = client.read(servers).write() - .format(ClickHouseFormat.RowBinaryWithNamesAndTypes) - .query("insert into my_table select c2, c3 from input('c1 UInt8, c2 String, c3 Int32')") - .data(myInputStream) // `myInputStream` is source of data in RowBinary format - .executeAndWait()) { - ClickHouseResponseSummary summary = response.getSummary(); - summary.getWrittenRows(); -} -``` - -See [complete code example](https://github.com/ClickHouse/clickhouse-java/blob/main/examples/client/src/main/java/com/clickhouse/examples/jdbc/Main.java#L39) in the [repo](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/client). - -**RowBinary Encoding** - -RowBinary format is described on its [page](/interfaces/formats/RowBinaryWithNamesAndTypes). - -There is an example of [code](https://github.com/ClickHouse/clickhouse-kafka-connect/blob/main/src/main/java/com/clickhouse/kafka/connect/sink/db/ClickHouseWriter.java#L622). - -## Features {#v1-features} -### Compression {#v1-compression} - -The client will by default use LZ4 compression, which requires this dependency: - - - - -```xml - - - org.lz4 - lz4-java - 1.8.0 - -``` - - - - -```kotlin -// https://mvnrepository.com/artifact/org.lz4/lz4-java -implementation("org.lz4:lz4-java:1.8.0") -``` - - - -```groovy -// https://mvnrepository.com/artifact/org.lz4/lz4-java -implementation 'org.lz4:lz4-java:1.8.0' -``` - - - - -You can choose to use gzip instead by setting `compress_algorithm=gzip` in the connection URL. - -Alternatively, you can disable compression a few ways. - -1. Disable by setting `compress=0` in the connection URL: `http://localhost:8123/default?compress=0` -2. Disable via the client configuration: - -```java showLineNumbers -ClickHouseClient client = ClickHouseClient.builder() - .config(new ClickHouseConfig(Map.of(ClickHouseClientOption.COMPRESS, false))) - .nodeSelector(ClickHouseNodeSelector.of(ClickHouseProtocol.HTTP)) - .build(); -``` - -See the [compression documentation](/data-compression/compression-modes) to learn more about different compression options. - -### Multiple queries {#v1-multiple-queries} - -Execute multiple queries in a worker thread one after another within same session: - -```java showLineNumbers -CompletableFuture> future = ClickHouseClient.send(servers.apply(servers.getNodeSelector()), - "create database if not exists my_base", - "use my_base", - "create table if not exists test_table(s String) engine=Memory", - "insert into test_table values('1')('2')('3')", - "select * from test_table limit 1", - "truncate table test_table", - "drop table if exists test_table"); -List results = future.get(); -``` - -### Named Parameters {#v1-named-parameters} - -You can pass parameters by name rather than relying solely on their position in the parameter list. This capability is available using `params` function. - -```java showLineNumbers -try (ClickHouseClient client = ClickHouseClient.newInstance(ClickHouseProtocol.HTTP); - ClickHouseResponse response = client.read(servers) - .format(ClickHouseFormat.RowBinaryWithNamesAndTypes) - .query("select * from my_table where name=:name limit :limit") - .params("Ben", 1000) - .executeAndWait()) { - //... - } -} -``` - -:::note Parameters -All `params` signatures involving `String` type (`String`, `String[]`, `Map`) assume the keys being passed are valid ClickHouse SQL strings. For instance: - -```java showLineNumbers -try (ClickHouseClient client = ClickHouseClient.newInstance(ClickHouseProtocol.HTTP); - ClickHouseResponse response = client.read(servers) - .format(ClickHouseFormat.RowBinaryWithNamesAndTypes) - .query("select * from my_table where name=:name") - .params(Map.of("name","'Ben'")) - .executeAndWait()) { - //... - } -} -``` - -If you prefer not to parse String objects to ClickHouse SQL manually, you can use the helper function `ClickHouseValues.convertToSqlExpression` located at `com.clickhouse.data`: - -```java showLineNumbers -try (ClickHouseClient client = ClickHouseClient.newInstance(ClickHouseProtocol.HTTP); - ClickHouseResponse response = client.read(servers) - .format(ClickHouseFormat.RowBinaryWithNamesAndTypes) - .query("select * from my_table where name=:name") - .params(Map.of("name", ClickHouseValues.convertToSqlExpression("Ben's"))) - .executeAndWait()) { - //... - } -} -``` - -In the example above, `ClickHouseValues.convertToSqlExpression` will escape the inner single quote, and surround the variable with a valid single quotes. - -Other types, such as `Integer`, `UUID`, `Array` and `Enum` will be converted automatically inside `params`. -::: - -## Node Discovery {#v1-node-discovery} - -Java client provides the ability to discover ClickHouse nodes automatically. Auto-discovery is disabled by default. To manually enable it, set `auto_discovery` to `true`: - -```java -properties.setProperty("auto_discovery", "true"); -``` - -Or in the connection URL: - -```plaintext -jdbc:ch://my-server/system?auto_discovery=true -``` - -If auto-discovery is enabled, there is no need to specify all ClickHouse nodes in the connection URL. Nodes specified in the URL will be treated as seeds, and the Java client will automatically discover more nodes from system tables and/or clickhouse-keeper or zookeeper. - -The following options are responsible for auto-discovery configuration: - -| Property | Default | Description | -|-------------------------|---------|-------------------------------------------------------------------------------------------------------| -| auto_discovery | `false` | Whether the client should discover more nodes from system tables and/or clickhouse-keeper/zookeeper. | -| node_discovery_interval | `0` | Node discovery interval in milliseconds, zero or negative value means one-time discovery. | -| node_discovery_limit | `100` | Maximum number of nodes that can be discovered at a time; zero or negative value means no limit. | - -### Load Balancing {#v1-load-balancing} - -The Java client chooses a ClickHouse node to send requests to, according to the load-balancing policy. In general, the load-balancing policy is responsible for the following things: - -1. Get a node from a managed node list. -2. Managing node's status. -3. Optionally schedule a background process for node discovery (if auto-discovery is enabled) and run a health check. - -Here is a list of options to configure load balancing: - -| Property | Default | Description | -|-----------------------|-------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| load_balancing_policy | `""` | The load-balancing policy can be one of:
  • `firstAlive` - request is sent to the first healthy node from the managed node list
  • `random` - request is sent to a random node from the managed node list
  • `roundRobin` - request is sent to each node from the managed node list, in turn.
  • full qualified class name implementing `ClickHouseLoadBalancingPolicy` - custom load balancing policy
  • If it is not specified the request is sent to the first node from the managed node list | -| load_balancing_tags | `""` | Load balancing tags for filtering out nodes. Requests are sent only to nodes that have the specified tags | -| health_check_interval | `0` | Health check interval in milliseconds, zero or negative value means one-time. | -| health_check_method | `ClickHouseHealthCheckMethod.SELECT_ONE` | Health check method. Can be one of:
  • `ClickHouseHealthCheckMethod.SELECT_ONE` - check with `select 1` query
  • `ClickHouseHealthCheckMethod.PING` - protocol-specific check, which is generally faster
  • | -| node_check_interval | `0` | Node check interval in milliseconds, negative number is treated as zero. The node status is checked if the specified amount of time has passed since the last check.
    The difference between `health_check_interval` and `node_check_interval` is that the `health_check_interval` option schedules the background job, which checks the status for the list of nodes (all or faulty), but `node_check_interval` specifies the amount of time has passed since the last check for the particular node | -| check_all_nodes | `false` | Whether to perform a health check against all nodes or just faulty ones. | - -### Failover and retry {#v1-failover-and-retry} - -Java client provides configuration options to set up failover and retry behavior for failed queries: - -| Property | Default | Description | -|-------------------------|---------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| failover | `0` | Maximum number of times a failover can happen for a request. Zero or a negative value means no failover. Failover sends the failed request to a different node (according to the load-balancing policy) in order to recover from failover. | -| retry | `0` | Maximum number of times retry can happen for a request. Zero or a negative value means no retry. Retry sends a request to the same node and only if the ClickHouse server returns the `NETWORK_ERROR` error code | -| repeat_on_session_lock | `true` | Whether to repeat execution when the session is locked until timed out(according to `session_timeout` or `connect_timeout`). The failed request is repeated if the ClickHouse server returns the `SESSION_IS_LOCKED` error code | - -### Adding custom http headers {#v1-adding-custom-http-headers} - -Java client support HTTP/S transport layer in case we want to add custom HTTP headers to the request. -We should use the custom_http_headers property, and the headers need to be `,` separated. The header key/value should be divided using `=` - -## Java Client support {#v1-java-client-support} - -```java -options.put("custom_http_headers", "X-ClickHouse-Quota=test, X-ClickHouse-Test=test"); -``` - -## JDBC Driver {#v1-jdbc-driver} - -```java -properties.setProperty("custom_http_headers", "X-ClickHouse-Quota=test, X-ClickHouse-Test=test"); -``` - -
    - -
    diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/language-clients/java/jdbc/jdbc.mdx b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/language-clients/java/jdbc/jdbc.mdx deleted file mode 100644 index 6f813bc4748..00000000000 --- a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/language-clients/java/jdbc/jdbc.mdx +++ /dev/null @@ -1,660 +0,0 @@ ---- -sidebar_label: 'JDBC' -sidebar_position: 4 -keywords: ['clickhouse', 'java', 'jdbc', 'driver', 'integrate'] -description: 'ClickHouse JDBCドライバー' -slug: /integrations/language-clients/java/jdbc -title: 'JDBCドライバー' -doc_type: 'reference' ---- - -import ClientVersionDropdown from '@theme/ClientVersionDropdown/ClientVersionDropdown'; -import Version from '@theme/ClientVersionDropdown/Version'; -import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWrapper'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - - - -:::note -`clickhouse-jdbc`は最新のjavaクライアントを使用して標準のJDBCインターフェースを実装しています。 -パフォーマンス/直接アクセスが重要な場合は、最新のjavaクライアントを直接使用することをお勧めします。 -::: - -## 0.7.xからの変更点 {#changes-from-07x} -バージョン0.8では、ドライバーがJDBC仕様により厳密に従うようにしたため、影響を受ける可能性のある削除された機能がいくつかあります: - -| Old Feature | Notes | -|----------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Transaction Support | Early versions of the driver only **simulated** transaction support, which could have unexpected results. | -| Response Column Renaming | `ResultSet` was mutable - for efficiency sake they're now read-only | -| Multi-Statement SQL | Multi-statement support was only **simulated**, now it strictly follows 1:1 | -| Named Parameters | Not part of the JDBC spec | -| Stream-based `PreparedStatement` | Early version of the driver allowed for non-jdbc usage of `PreparedStatement` - if you desire such options, we recommend looking at the [Java Client](/integrations/language-clients/java/client/client.mdx) and its [examples](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/client-v2). | - -:::note -`Date` is stored without timezone, while `DateTime` is stored with timezone. This can lead to unexpected results if you're not careful. -::: - -## Environment requirements {#environment-requirements} - -- [OpenJDK](https://openjdk.java.net) version >= 8 - -### Setup {#setup} - - - - - ```xml - - - com.clickhouse - clickhouse-jdbc - 0.9.4 - all - - ``` - - - - - ```kotlin - // https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc - implementation("com.clickhouse:clickhouse-jdbc:0.9.4:all") - ``` - - - - ```groovy - // https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc - implementation 'com.clickhouse:clickhouse-jdbc:0.9.4:all' - ``` - - - - -## Configuration {#configuration} - -**Driver Class**: `com.clickhouse.jdbc.ClickHouseDriver` - -**URL Syntax**: `jdbc:(ch|clickhouse)[:]://endpoint1[,endpoint2,...][/][?param1=value1¶m2=value2][#tag1,tag2,...]`, for example: - -- `jdbc:clickhouse:http://localhost:8123` -- `jdbc:clickhouse:https://localhost:8443?ssl=true` - -### Connection Properties - -Beyond standard JDBC properties, the driver supports the ClickHouse-specific properties offered by the underlying [java client](/integrations/language-clients/java/client#client-configuration). -Where possible methods will return an `SQLFeatureNotSupportedException` if the feature is not supported. Other custom properties include: - -| Property | Default | Description | -|----------------------------------|---------|----------------------------------------------------------------| -| `disable_frameworks_detection` | `true` | Disable frameworks detection for User-Agent | -| `jdbc_ignore_unsupported_values` | `false` | Suppresses `SQLFeatureNotSupportedException` | -| `clickhouse.jdbc.v1` | `false` | Use older JDBC implementation instead of new JDBC | -| `default_query_settings` | `null` | Allows passing of default query settings with query operations | -| `jdbc_resultset_auto_close` | `true` | Automatically closes `ResultSet` when `Statement` is closed | -| `beta.row_binary_for_simple_insert` | `false` | Use `PreparedStatement` implementation based on `RowBinary` writer. Works only for `INSERT INTO ... VALUES` queries. | - -:::note Server Settings - -All server settings should be prefixed with `clickhouse_setting_` (same as for the client [configuration](/integrations/language-clients/java/client#server-settings)). - - -```java -Properties config = new Properties(); -config.setProperty("user", "default"); -config.setProperty("password", getPassword()); - -// set server setting -config.put(ClientConfigProperties.serverSetting("allow_experimental_time_time64_type"), "1"); - -Connection conn = Driver.connect("jdbc:ch:http://localhost:8123/", config); -``` -::: - -## Supported data types {#supported-data-types} - -JDBC Driver supports the same data formats as the underlying [java client](/integrations/java#supported-data-types). - -### Handling Dates, Times, and Timezones {#handling-dates-times-and-timezones} -`java.sql.Date`, `java.sql.Time`, and `java.sql.Timestamp` can complicate how Timezones are calculated - though they're of course supported, -you may want to consider using the [java.time](https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html) package. `ZonedDateTime` and -`OffsetDateTime` are both great replacements for java.sql.Timestamp, java.sql.Date, and java.sql.Time. - -## Creating Connection {#creating-connection} - -```java -String url = "jdbc:ch://my-server:8123/system"; - -Properties properties = new Properties(); -DataSource dataSource = new DataSource(url, properties);//DataSource or DriverManager are the main entry points -try (Connection conn = dataSource.getConnection()) { -... // do something with the connection -``` - -## Supplying Credentials and Settings {#supplying-credentials-and-settings} - -```java showLineNumbers -String url = "jdbc:ch://localhost:8123?jdbc_ignore_unsupported_values=true&socket_timeout=10"; - -Properties info = new Properties(); -info.put("user", "default"); -info.put("password", "password"); -info.put("database", "some_db"); - -//Creating a connection with DataSource -DataSource dataSource = new DataSource(url, info); -try (Connection conn = dataSource.getConnection()) { -... // do something with the connection -} - -//Alternate approach using the DriverManager -try (Connection conn = DriverManager.getConnection(url, info)) { -... // do something with the connection -} -``` - -## Simple Statement {#simple-statement} - -```java showLineNumbers - -try (Connection conn = dataSource.getConnection(...); - Statement stmt = conn.createStatement()) { - ResultSet rs = stmt.executeQuery("select * from numbers(50000)"); - while(rs.next()) { - // ... - } -} -``` - -## Insert {#insert} - -```java showLineNumbers -try (PreparedStatement ps = conn.prepareStatement("INSERT INTO mytable VALUES (?, ?)")) { - ps.setString(1, "test"); // id - ps.setObject(2, LocalDateTime.now()); // timestamp - ps.addBatch(); - ... - ps.executeBatch(); // stream everything on-hand into ClickHouse -} -``` - -## `HikariCP` {#hikaricp} - -```java showLineNumbers -// connection pooling won't help much in terms of performance, -// because the underlying implementation has its own pool. -// for example: HttpURLConnection has a pool for sockets -HikariConfig poolConfig = new HikariConfig(); -poolConfig.setConnectionTimeout(5000L); -poolConfig.setMaximumPoolSize(20); -poolConfig.setMaxLifetime(300_000L); -poolConfig.setDataSource(new ClickHouseDataSource(url, properties)); - -try (HikariDataSource ds = new HikariDataSource(poolConfig); - Connection conn = ds.getConnection(); - Statement s = conn.createStatement(); - ResultSet rs = s.executeQuery("SELECT * FROM system.numbers LIMIT 3")) { - while (rs.next()) { - // handle row - log.info("Integer: {}, String: {}", rs.getInt(1), rs.getString(1));//Same column but different types - } -} -``` - -## More Information {#more-information} -For more information, see our [GitHub repository](https://github.com/ClickHouse/clickhouse-java) and [Java Client documentation](/integrations/language-clients/java/client/client.mdx). - -## Troubleshooting {#troubleshooting} -### Logging {#logging} -The driver uses [slf4j](https://www.slf4j.org/) for logging, and will use the first available implementation on the `classpath`. - -### Resolving JDBC Timeout on Large Inserts {#resolving-jdbc-timeout-on-large-inserts} - -When performing large inserts in ClickHouse with long execution times, you may encounter JDBC timeout errors like: - -```plaintext -Caused by: java.sql.SQLException: Read timed out, server myHostname [uri=https://hostname.aws.clickhouse.cloud:8443] -``` -These errors can disrupt the data insertion process and affect system stability. To address this issue you may need to adjust a few timeout settings in the client's OS. - -#### Mac OS {#mac-os} - -On Mac OS, the following settings can be adjusted to resolve the issue: - -- `net.inet.tcp.keepidle`: 60000 -- `net.inet.tcp.keepintvl`: 45000 -- `net.inet.tcp.keepinit`: 45000 -- `net.inet.tcp.keepcnt`: 8 -- `net.inet.tcp.always_keepalive`: 1 - -#### Linux {#linux} - -On Linux, the equivalent settings alone may not resolve the issue. Additional steps are required due to the differences in how Linux handles socket keep-alive settings. Follow these steps: - -1. Adjust the following Linux kernel parameters in `/etc/sysctl.conf` or a related configuration file: - - - `net.inet.tcp.keepidle`: 60000 - - `net.inet.tcp.keepintvl`: 45000 - - `net.inet.tcp.keepinit`: 45000 - - `net.inet.tcp.keepcnt`: 8 - - `net.inet.tcp.always_keepalive`: 1 - - `net.ipv4.tcp_keepalive_intvl`: 75 - - `net.ipv4.tcp_keepalive_probes`: 9 - - `net.ipv4.tcp_keepalive_time`: 60 (You may consider lowering this value from the default 300 seconds) - -2. After modifying the kernel parameters, apply the changes by running the following command: - -```shell -sudo sysctl -p -``` - -After Setting those settings, you need to ensure that your client enables the Keep Alive option on the socket: - -```java -properties.setProperty("socket_keepalive", "true"); -``` - - - - - - -`clickhouse-jdbc` implements the standard JDBC interface. Being built on top of [clickhouse-client](/integrations/sql-clients/sql-console), it provides additional features like custom type mapping, transaction support, and standard synchronous `UPDATE` and `DELETE` statements, etc., so that it can be easily used with legacy applications and tools. - -:::note -Latest JDBC (0.7.2) version uses Client-V1 -::: - -`clickhouse-jdbc` API is synchronous, and generally, it has more overheads(e.g., SQL parsing and type mapping/conversion, etc.). Consider [clickhouse-client](/integrations/sql-clients/sql-console) when performance is critical or if you prefer a more direct way to access ClickHouse. - -## Environment requirements {#v07-environment-requirements} - -- [OpenJDK](https://openjdk.java.net) version >= 8 - -### Setup {#v07-setup} - - - - - ```xml - - - com.clickhouse - clickhouse-jdbc - 0.7.2 - - shaded-all - - ``` - - - - - ```kotlin - // https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc - // use uber jar with all dependencies included, change classifier to http for smaller jar - implementation("com.clickhouse:clickhouse-jdbc:0.7.2:shaded-all") - ``` - - - - ```groovy - // https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc - // use uber jar with all dependencies included, change classifier to http for smaller jar - implementation 'com.clickhouse:clickhouse-jdbc:0.7.2:shaded-all' - ``` - - - - -Since version `0.5.0`, we are using Apache HTTP Client that's packed the Client. Since there is not a shared version of the package, you need to add a logger as a dependency. - - - - - ```xml - - - org.slf4j - slf4j-api - 2.0.16 - - ``` - - - - - ```kotlin - // https://mvnrepository.com/artifact/org.slf4j/slf4j-api - implementation("org.slf4j:slf4j-api:2.0.16") - ``` - - - - ```groovy - // https://mvnrepository.com/artifact/org.slf4j/slf4j-api - implementation 'org.slf4j:slf4j-api:2.0.16' - ``` - - - - -## Configuration {#v07-configuration} - -**Driver Class**: `com.clickhouse.jdbc.ClickHouseDriver` - -**URL Syntax**: `jdbc:(ch|clickhouse)[:]://endpoint1[,endpoint2,...][/][?param1=value1¶m2=value2][#tag1,tag2,...]`, for example: - -- `jdbc:ch://localhost` is same as `jdbc:clickhouse:http://localhost:8123` -- `jdbc:ch:https://localhost` is same as `jdbc:clickhouse:http://localhost:8443?ssl=true&sslmode=STRICT` -- `jdbc:ch:grpc://localhost` is same as `jdbc:clickhouse:grpc://localhost:9100` - -**Connection Properties**: - -| Property | Default | Description | -| ------------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `continueBatchOnError` | `false` | Whether to continue batch processing when error occurred | -| `createDatabaseIfNotExist` | `false` | Whether to create database if it does not exist | -| `custom_http_headers` | | comma separated custom http headers, for example: `User-Agent=client1,X-Gateway-Id=123` | -| `custom_http_params` | | comma separated custom http query parameters, for example: `extremes=0,max_result_rows=100` | -| `nullAsDefault` | `0` | `0` - treat null value as is and throw exception when inserting null into non-nullable column; `1` - treat null value as is and disable null-check for inserting; `2` - replace null to default value of corresponding data type for both query and insert | -| `jdbcCompliance` | `true` | Whether to support standard synchronous UPDATE/DELETE and fake transaction | -| `typeMappings` | | Customize mapping between ClickHouse data type and Java class, which will affect result of both [`getColumnType()`](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSetMetaData.html#getColumnType-int-) and [`getObject(Class<>?>`)](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSet.html#getObject-java.lang.String-java.lang.Class-). For example: `UInt128=java.lang.String,UInt256=java.lang.String` | -| `wrapperObject` | `false` | Whether [`getObject()`](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSet.html#getObject-int-) should return java.sql.Array / java.sql.Struct for Array / Tuple. | - -Note: please refer to [JDBC specific configuration](https://github.com/ClickHouse/clickhouse-java/blob/main/clickhouse-jdbc/src/main/java/com/clickhouse/jdbc/JdbcConfig.java) for more. - -## Supported data types {#v07-supported-data-types} - -JDBC Driver supports same data formats as client library does. - -:::note -- AggregatedFunction - :warning: does not support `SELECT * FROM table ...` -- Decimal - `SET output_format_decimal_trailing_zeros=1` in 21.9+ for consistency -- Enum - can be treated as both string and integer -- UInt64 - mapped to `long` (in client-v1) -::: - -## Creating Connection {#v07-creating-connection} - -```java -String url = "jdbc:ch://my-server/system"; // use http protocol and port 8123 by default - -Properties properties = new Properties(); - -ClickHouseDataSource dataSource = new ClickHouseDataSource(url, properties); -try (Connection conn = dataSource.getConnection("default", "password"); - Statement stmt = conn.createStatement()) { -} -``` - -## Simple Statement {#v07-simple-statement} - -```java showLineNumbers - -try (Connection conn = dataSource.getConnection(...); - Statement stmt = conn.createStatement()) { - ResultSet rs = stmt.executeQuery("select * from numbers(50000)"); - while(rs.next()) { - // ... - } -} -``` - -## Insert {#v07-insert} - -:::note -- Use `PreparedStatement` instead of `Statement` -::: - -It's easier to use but slower performance compare to input function (see below): - -```java showLineNumbers -try (PreparedStatement ps = conn.prepareStatement("insert into mytable(* except (description))")) { - ps.setString(1, "test"); // id - ps.setObject(2, LocalDateTime.now()); // timestamp - ps.addBatch(); // parameters will be write into buffered stream immediately in binary format - ... - ps.executeBatch(); // stream everything on-hand into ClickHouse -} -``` - -### With input table function {#with-input-table-function} - -An option with great performance characteristics: - -```java showLineNumbers -try (PreparedStatement ps = conn.prepareStatement( - "insert into mytable select col1, col2 from input('col1 String, col2 DateTime64(3), col3 Int32')")) { - // The column definition will be parsed so the driver knows there are 3 parameters: col1, col2 and col3 - ps.setString(1, "test"); // col1 - ps.setObject(2, LocalDateTime.now()); // col2, setTimestamp is slow and not recommended - ps.setInt(3, 123); // col3 - ps.addBatch(); // parameters will be write into buffered stream immediately in binary format - ... - ps.executeBatch(); // stream everything on-hand into ClickHouse -} -``` -- [input function doc](/sql-reference/table-functions/input/) whenever possible - -### Insert with placeholders {#insert-with-placeholders} - -This option is recommended only for small inserts because it would require a long SQL expression (that will be parsed on client side and it will consume CPU & Memory): - -```java showLineNumbers -try (PreparedStatement ps = conn.prepareStatement("insert into mytable values(trim(?),?,?)")) { - ps.setString(1, "test"); // id - ps.setObject(2, LocalDateTime.now()); // timestamp - ps.setString(3, null); // description - ps.addBatch(); // append parameters to the query - ... - ps.executeBatch(); // issue the composed query: insert into mytable values(...)(...)...(...) -} -``` - -## Handling DateTime and time zones {#handling-datetime-and-time-zones} - -Please to use `java.time.LocalDateTime` or `java.time.OffsetDateTime` instead of `java.sql.Timestamp`, and `java.time.LocalDate` instead of `java.sql.Date`. - -```java showLineNumbers -try (PreparedStatement ps = conn.prepareStatement("select date_time from mytable where date_time > ?")) { - ps.setObject(2, LocalDateTime.now()); - ResultSet rs = ps.executeQuery(); - while(rs.next()) { - LocalDateTime dateTime = (LocalDateTime) rs.getObject(1); - } - ... -} -``` - -## Handling `AggregateFunction` {#handling-aggregatefunction} - -:::note -As of now, only `groupBitmap` is supported. -::: - -```java showLineNumbers -// batch insert using input function -try (ClickHouseConnection conn = newConnection(props); - Statement s = conn.createStatement(); - PreparedStatement stmt = conn.prepareStatement( - "insert into test_batch_input select id, name, value from input('id Int32, name Nullable(String), desc Nullable(String), value AggregateFunction(groupBitmap, UInt32)')")) { - s.execute("drop table if exists test_batch_input;" - + "create table test_batch_input(id Int32, name Nullable(String), value AggregateFunction(groupBitmap, UInt32))engine=Memory"); - Object[][] objs = new Object[][] { - new Object[] { 1, "a", "aaaaa", ClickHouseBitmap.wrap(1, 2, 3, 4, 5) }, - new Object[] { 2, "b", null, ClickHouseBitmap.wrap(6, 7, 8, 9, 10) }, - new Object[] { 3, null, "33333", ClickHouseBitmap.wrap(11, 12, 13) } - }; - for (Object[] v : objs) { - stmt.setInt(1, (int) v[0]); - stmt.setString(2, (String) v[1]); - stmt.setString(3, (String) v[2]); - stmt.setObject(4, v[3]); - stmt.addBatch(); - } - int[] results = stmt.executeBatch(); - ... -} - -// use bitmap as query parameter -try (PreparedStatement stmt = conn.prepareStatement( - "SELECT bitmapContains(my_bitmap, toUInt32(1)) as v1, bitmapContains(my_bitmap, toUInt32(2)) as v2 from {tt 'ext_table'}")) { - stmt.setObject(1, ClickHouseExternalTable.builder().name("ext_table") - .columns("my_bitmap AggregateFunction(groupBitmap,UInt32)").format(ClickHouseFormat.RowBinary) - .content(new ByteArrayInputStream(ClickHouseBitmap.wrap(1, 3, 5).toBytes())) - .asTempTable() - .build()); - ResultSet rs = stmt.executeQuery(); - Assert.assertTrue(rs.next()); - Assert.assertEquals(rs.getInt(1), 1); - Assert.assertEquals(rs.getInt(2), 0); - Assert.assertFalse(rs.next()); -} -``` - -
    - -## Configuring HTTP library {#v07-configuring-http-library} - -The ClickHouse JDBC connector supports three HTTP libraries: [`HttpClient`](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpClient.html), [`HttpURLConnection`](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/net/HttpURLConnection.html), and [Apache `HttpClient`](https://hc.apache.org/httpcomponents-client-5.2.x/). - -:::note -`HttpClient` is only supported in JDK 11 or above. -::: - -The JDBC driver uses `HttpClient` by default. You can change the HTTP library used by the ClickHouse JDBC connector by setting the following property: - -```java -properties.setProperty("http_connection_provider", "APACHE_HTTP_CLIENT"); -``` - -Here is a full list of the corresponding values: - -| Property Value | HTTP Library | -|---------------------|---------------------| -| HTTP_CLIENT | `HttpClient` | -| HTTP_URL_CONNECTION | `HttpURLConnection` | -| APACHE_HTTP_CLIENT | Apache `HttpClient` | - -
    - -## Connect to ClickHouse with SSL {#connect-to-clickhouse-with-ssl} - -To establish a secure JDBC connection to ClickHouse using SSL, you need to configure your JDBC properties to include SSL parameters. This typically involves specifying SSL properties such as `sslmode` and `sslrootcert` in your JDBC URL or Properties object. - -## SSL Properties {#ssl-properties} - -| Name | Default Value | Optional Values | Description | -| ------------------ | ------------- | --------------- |----------------------------------------------------------------------------------| -| `ssl` | false | true, false | Whether to enable SSL/TLS for the connection | -| `sslmode` | strict | strict, none | Whether to verify SSL/TLS certificate | -| `sslrootcert` | | | Path to SSL/TLS root certificates | -| `sslcert` | | | Path to SSL/TLS certificate | -| `sslkey` | | | RSA key in PKCS#8 format | -| `key_store_type` | | JKS, PKCS12 | Specifies the type or format of the `KeyStore`/`TrustStore` file | -| `trust_store` | | | Path to the `TrustStore` file | -| `key_store_password` | | | Password needed to access the `KeyStore` file specified in the `KeyStore` config | - -These properties ensure that your Java application communicates with the ClickHouse server over an encrypted connection, enhancing data security during transmission. - -```java showLineNumbers - String url = "jdbc:ch://your-server:8443/system"; - - Properties properties = new Properties(); - properties.setProperty("ssl", "true"); - properties.setProperty("sslmode", "strict"); // NONE to trust all servers; STRICT for trusted only - properties.setProperty("sslrootcert", "/mine.crt"); - try (Connection con = DriverManager - .getConnection(url, properties)) { - - try (PreparedStatement stmt = con.prepareStatement( - - // place your code here - - } - } -``` - -## Resolving JDBC Timeout on Large Inserts {#v07-resolving-jdbc-timeout-on-large-inserts} - -When performing large inserts in ClickHouse with long execution times, you may encounter JDBC timeout errors like: - -```plaintext -Caused by: java.sql.SQLException: Read timed out, server myHostname [uri=https://hostname.aws.clickhouse.cloud:8443] -``` - -These errors can disrupt the data insertion process and affect system stability. To address this issue you need to adjust a few timeout settings in the client's OS. - -### Mac OS {#v07-mac-os} - -On Mac OS, the following settings can be adjusted to resolve the issue: - -- `net.inet.tcp.keepidle`: 60000 -- `net.inet.tcp.keepintvl`: 45000 -- `net.inet.tcp.keepinit`: 45000 -- `net.inet.tcp.keepcnt`: 8 -- `net.inet.tcp.always_keepalive`: 1 - -### Linux {#v07-linux} - -On Linux, the equivalent settings alone may not resolve the issue. Additional steps are required due to the differences in how Linux handles socket keep-alive settings. Follow these steps: - -1. Adjust the following Linux kernel parameters in `/etc/sysctl.conf` or a related configuration file: - -- `net.inet.tcp.keepidle`: 60000 -- `net.inet.tcp.keepintvl`: 45000 -- `net.inet.tcp.keepinit`: 45000 -- `net.inet.tcp.keepcnt`: 8 -- `net.inet.tcp.always_keepalive`: 1 -- `net.ipv4.tcp_keepalive_intvl`: 75 -- `net.ipv4.tcp_keepalive_probes`: 9 -- `net.ipv4.tcp_keepalive_time`: 60 (You may consider lowering this value from the default 300 seconds) - -2. After modifying the kernel parameters, apply the changes by running the following command: - -```shell -sudo sysctl -p - ``` - -After Setting those settings, you need to ensure that your client enables the Keep Alive option on the socket: - -```java -properties.setProperty("socket_keepalive", "true"); -``` - -:::note -Currently, you must use Apache HTTP Client library when setting the socket keep-alive, as the other two HTTP client libraries supported by `clickhouse-java` do not allow setting socket options. For a detailed guide, see [Configuring HTTP library](#v07-configuring-http-library). -::: - -Alternatively, you can add equivalent parameters to the JDBC URL. - -The default socket and connection timeout for the JDBC driver is 30 seconds. The timeout can be increased to support large data insert operations. Use the `options` method on `ClickHouseClient` together with the `SOCKET_TIMEOUT` and `CONNECTION_TIMEOUT` options as defined by `ClickHouseClientOption`: - -```java showLineNumbers -final int MS_12H = 12 * 60 * 60 * 1000; // 12 h in ms -final String sql = "insert into table_a (c1, c2, c3) select c1, c2, c3 from table_b;"; - -try (ClickHouseClient client = ClickHouseClient.newInstance(ClickHouseProtocol.HTTP)) { - client.read(servers).write() - .option(ClickHouseClientOption.SOCKET_TIMEOUT, MS_12H) - .option(ClickHouseClientOption.CONNECTION_TIMEOUT, MS_12H) - .query(sql) - .executeAndWait(); -} -``` - -
    - -
    diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/interfaces/third-party/client-libraries.md b/i18n/jp/docusaurus-plugin-content-docs/current/interfaces/third-party/client-libraries.md index 8cfb74f23b4..3878a3b0f97 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/interfaces/third-party/client-libraries.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/interfaces/third-party/client-libraries.md @@ -10,7 +10,7 @@ doc_type: 'reference' # サードパーティ開発者によるクライアントライブラリ {#client-libraries-from-third-party-developers} :::note -ClickHouse Inc は、以下に記載されているライブラリをメンテナンスしておらず、その品質を保証するための広範なテストも実施していません。 +ClickHouse Inc は、以下に記載されているライブラリをメンテナンスしておらず、その品質を保証するための包括的なテストも実施していません。 ::: ### Python {#python} @@ -47,19 +47,19 @@ ClickHouse Inc は、以下に記載されているライブラリをメンテ ### Swift {#swift} -* [ClickHouseNIO](https://github.com/patrick-zippenfenig/ClickHouseNIO) -* [ClickHouseVapor ORM](https://github.com/patrick-zippenfenig/ClickHouseVapor) +- [ClickHouseNIO](https://github.com/patrick-zippenfenig/ClickHouseNIO) +- [ClickHouseVapor ORM](https://github.com/patrick-zippenfenig/ClickHouseVapor) ### Node.js {#nodejs} -* [Moose OLAP](https://docs.fiveonefour.com/moose/olap) -* [clickhouse (NodeJs)](https://github.com/TimonKK/clickhouse) -* [node-clickhouse](https://github.com/apla/node-clickhouse) -* [nestjs-clickhouse](https://github.com/depyronick/nestjs-clickhouse) -* [clickhouse-client](https://github.com/depyronick/clickhouse-client) -* [node-clickhouse-orm](https://github.com/zimv/node-clickhouse-orm) -* [clickhouse-ts](https://github.com/bytadaniel/clickhouse-ts) -* [clickcache](https://github.com/bytadaniel/clickcache) +- [Moose OLAP](https://docs.fiveonefour.com/moose/olap) +- [clickhouse (NodeJs)](https://github.com/TimonKK/clickhouse) +- [node-clickhouse](https://github.com/apla/node-clickhouse) +- [nestjs-clickhouse](https://github.com/depyronick/nestjs-clickhouse) +- [clickhouse-client](https://github.com/depyronick/clickhouse-client) +- [node-clickhouse-orm](https://github.com/zimv/node-clickhouse-orm) +- [clickhouse-ts](https://github.com/bytadaniel/clickhouse-ts) +- [clickcache](https://github.com/bytadaniel/clickcache) ### Perl {#perl} @@ -69,8 +69,8 @@ ClickHouse Inc は、以下に記載されているライブラリをメンテ ### Ruby {#ruby} -* [ClickHouse(Ruby)](https://github.com/shlima/click_house) -* [clickhouse-activerecord](https://github.com/PNixx/clickhouse-activerecord) +- [ClickHouse(Ruby)](https://github.com/shlima/click_house) +- [clickhouse-activerecord](https://github.com/PNixx/clickhouse-activerecord) ### Rust {#rust} @@ -95,6 +95,10 @@ ClickHouse Inc は、以下に記載されているライブラリをメンテ * [AORM](https://github.com/TanVD/AORM) +### C++ {#cpp} + +- [userver フレームワーク用 ClickHouse ドライバ](https://userver.tech/dd/ddb/clickhouse_driver.html) + ### C# {#c} * [Octonica.ClickHouseClient](https://github.com/Octonica/ClickHouseClient) @@ -111,9 +115,9 @@ ClickHouse Inc は、以下に記載されているライブラリをメンテ ### Nim {#nim} -* [nim-clickhouse](https://github.com/leonardoce/nim-clickhouse) +- [nim-clickhouse](https://github.com/leonardoce/nim-clickhouse) ### Haskell {#haskell} * [hdbc-clickhouse](https://github.com/zaneli/hdbc-clickhouse) -* [ClickHaskell](https://clickhaskell.dev/) +* [ClickHaskell](https://clickhaskell.dev/) \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/operations/allocation-profiling.md b/i18n/jp/docusaurus-plugin-content-docs/current/operations/allocation-profiling.md index f8138e4bb8f..98657dfbacb 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/operations/allocation-profiling.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/operations/allocation-profiling.md @@ -9,6 +9,7 @@ doc_type: 'guide' import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; + # アロケーションプロファイリング {#allocation-profiling} ClickHouse はグローバルアロケータとして [jemalloc](https://github.com/jemalloc/jemalloc) を使用しています。jemalloc には、アロケーションのサンプリングおよびプロファイリング用のツールが付属しています。 @@ -40,6 +41,7 @@ ClickHouse はグローバルアロケータとして [jemalloc](https://github. ClickHouse はアロケーションが多いアプリケーションであるため、jemalloc のサンプリングによりパフォーマンス上のオーバーヘッドが発生する可能性があります。 ::: + ## `system.trace_log` に jemalloc サンプルを保存する {#storing-jemalloc-samples-in-system-trace-log} すべての jemalloc サンプルを `JemallocSample` 型として `system.trace_log` に格納できます。 @@ -57,6 +59,7 @@ ClickHouse はメモリ割り当てを多用するアプリケーションであ `jemalloc_collect_profile_samples_in_trace_log` 設定を使用して、クエリごとに有効化することもできます。 + ### `system.trace_log` を使用してクエリのメモリ使用量を分析する例 {#example-analyzing-memory-usage-trace-log} まず、jemalloc プロファイラを有効にしてクエリを実行し、そのクエリのサンプルを `system.trace_log` に収集する必要があります。 @@ -78,7 +81,7 @@ Peak memory usage: 12.65 MiB. ``` :::note -ClickHouse を起動するときに `jemalloc_enable_global_profiler` を有効にしている場合、`jemalloc_enable_profiler` を有効にする必要はありません。\ +ClickHouse を `jemalloc_enable_global_profiler` を有効にして起動した場合、`jemalloc_enable_profiler` を有効にする必要はありません。 `jemalloc_collect_global_profile_samples_in_trace_log` と `jemalloc_collect_profile_samples_in_trace_log` についても同様です。 ::: @@ -88,7 +91,7 @@ ClickHouse を起動するときに `jemalloc_enable_global_profiler` を有効 SYSTEM FLUSH LOGS trace_log ``` -そして、各時点において実行したクエリのメモリ使用量を取得するためにクエリします。 +そして、それに対してクエリを実行し、各時点で実行したクエリのメモリ使用量を取得します。 ```sql WITH per_bucket AS @@ -142,7 +145,7 @@ FROM ) ``` -その結果を使って、その時点でどこが最も活発に割り当てを行っていたかを確認できます。 +その結果を使って、その時点でどこからの割り当てが最も活発だったかを確認できます。 ```sql SELECT @@ -175,9 +178,10 @@ GROUP BY ALL ORDER BY per_trace_sum ASC ``` + ## ヒーププロファイルのフラッシュ {#flushing-heap-profiles} -デフォルトでは、ヒーププロファイル用ファイルは `/tmp/jemalloc_clickhouse._pid_._seqnum_.heap` に生成されます。ここで `_pid_` は ClickHouse の PID、`_seqnum_` は現在のヒーププロファイルに対応するグローバルなシーケンス番号です。\ +デフォルトでは、ヒーププロファイル用ファイルは `/tmp/jemalloc_clickhouse._pid_._seqnum_.heap` に生成されます。ここで `_pid_` は ClickHouse の PID、`_seqnum_` は現在のヒーププロファイルに対応するグローバルなシーケンス番号です。 Keeper のデフォルトファイルは `/tmp/jemalloc_keeper._pid_._seqnum_.heap` で、同じルールに従います。 `jemalloc` に現在のプロファイルをフラッシュさせるには、次を実行します。 @@ -198,26 +202,64 @@ Keeper のデフォルトファイルは `/tmp/jemalloc_keeper._pid_._seqnum_.he -`MALLOC_CONF` 環境変数に `prof_prefix` オプションを追加することで、別の保存場所を指定できます。\ +`MALLOC_CONF` 環境変数に `prof_prefix` オプションを追加することで、別の保存場所を指定できます。 例えば、`/data` ディレクトリ内に、ファイル名のプレフィックスを `my_current_profile` としてプロファイルを生成したい場合は、次の環境変数を指定して ClickHouse/Keeper を実行します。 ```sh MALLOC_CONF=prof_prefix:/data/my_current_profile ``` -生成されるファイル名には、プレフィックスに続いて PID とシーケンス番号が付加されます。 +生成されるファイル名は、プレフィックスに PID とシーケンス番号を連結したものになります。 + ## ヒーププロファイルの分析 {#analyzing-heap-profiles} -ヒーププロファイルが生成されたら、それらを分析する必要があります。\ +ヒーププロファイルが生成されたら、それらを分析する必要があります。 そのために、`jemalloc` のツールである [jeprof](https://github.com/jemalloc/jemalloc/blob/dev/bin/jeprof.in) を使用できます。次のいずれかの方法でインストールできます。 -* システムのパッケージマネージャーを使用する -* [jemalloc リポジトリ](https://github.com/jemalloc/jemalloc)をクローンし、ルートディレクトリで `autogen.sh` を実行する。これにより、`bin` ディレクトリ内に `jeprof` スクリプトが作成されます +- システムのパッケージマネージャーを使用する +- [jemalloc リポジトリ](https://github.com/jemalloc/jemalloc)をクローンし、ルートディレクトリで `autogen.sh` を実行する。これにより、`bin` ディレクトリ内に `jeprof` スクリプトが作成されます + +`jeprof` を使用して、ヒーププロファイルからさまざまな形式を生成できます。 +ツールの使い方や提供される各種オプションについては、`jeprof --help` を実行して確認できます。 + +### シンボル情報付きヒーププロファイル {#symbolized-heap-profiles} + +バージョン 26.1 以降では、`SYSTEM JEMALLOC FLUSH PROFILE` を使用してフラッシュを実行すると、ClickHouse は自動的にシンボル情報付きのヒーププロファイルを生成します。 +シンボル情報付きプロファイル(拡張子は `.symbolized`)には関数シンボルが埋め込まれており、ClickHouse のバイナリを用意しなくても `jeprof` で分析できます。 + +たとえば、次のように実行すると: + +```sql +SYSTEM JEMALLOC FLUSH PROFILE +``` + +ClickHouse は、シンボル化されたプロファイルへのパスを返します(例: `/tmp/jemalloc_clickhouse.12345.0.heap.symbolized`)。 + +その後、これを `jeprof` で直接解析できます。 + +```sh +jeprof /tmp/jemalloc_clickhouse.12345.0.heap.symbolized --output_format [ > output_file] +``` :::note -`jeprof` はスタックトレースを生成するために `addr2line` を使用しますが、処理が非常に遅くなる場合があります。\ -そのような場合には、このツールの[代替実装](https://github.com/gimli-rs/addr2line)をインストールすることを推奨します。 + +**バイナリは不要です**: シンボル化されたプロファイル(`.symbolized` ファイル)を使用する場合、`jeprof` に ClickHouse バイナリのパスを指定する必要はありません。これにより、別のマシン上で、あるいはバイナリを更新した後でも、プロファイルをはるかに簡単に分析できるようになります。 + +::: + +古いシンボル化されていないヒーププロファイルがあり、引き続き ClickHouse バイナリにアクセスできる場合は、従来の方法を使用できます。 + +```sh +jeprof path/to/clickhouse path/to/heap/profile --output_format [ > output_file] +``` + +:::note + +シンボル化されていないプロファイルの場合、`jeprof` はスタックトレースを生成するために `addr2line` を使用しますが、処理が非常に遅くなることがあります。 +その場合は、このツールの[代替実装](https://github.com/gimli-rs/addr2line)をインストールすることを推奨します。 + +::: ```bash git clone https://github.com/gimli-rs/addr2line.git --depth=1 --branch=0.23.0 @@ -226,47 +268,64 @@ cargo build --features bin --release cp ./target/release/addr2line path/to/current/addr2line ``` -また、`llvm-addr2line` も同様に問題なく動作します。 +また、`llvm-addr2line` も同様に問題なく動作します(ただし、`llvm-objdump` は `jeprof` とは互換性がない点に注意してください)。 + +その後、次のように指定して使用します: `jeprof --tools addr2line:/usr/bin/llvm-addr2line,nm:/usr/bin/llvm-nm,objdump:/usr/bin/objdump,c++filt:/usr/bin/llvm-cxxfilt` ::: -`jeprof` を使用して、ヒーププロファイルからさまざまな形式を生成できます。 -ツールの使い方や提供される各種オプションについては、`jeprof --help` を実行して確認することを推奨します。 +2つのプロファイルを比較する際には、`--base` 引数を使用できます。 + +```sh +jeprof --base /path/to/first.heap.symbolized /path/to/second.heap.symbolized --output_format [ > output_file] +``` -一般的に、`jeprof` コマンドは次のように使用します。 + +### 例 {#examples} + +シンボル化されたプロファイルを使用する(推奨): + +* 各プロシージャを 1 行に 1 つずつ記載したテキストファイルを生成します: ```sh -jeprof path/to/binary path/to/heap/profile --output_format [ > output_file] +jeprof /tmp/jemalloc_clickhouse.12345.0.heap.symbolized --text > result.txt ``` -2つのプロファイルを比較して、その間にどの割り当てが発生したかを確認したい場合は、`base` 引数を指定します。 +* コールグラフを含む PDF ファイルを生成する: ```sh -jeprof path/to/binary --base path/to/first/heap/profile path/to/second/heap/profile --output_format [ > output_file] +jeprof /tmp/jemalloc_clickhouse.12345.0.heap.symbolized --pdf > result.pdf ``` -### 例 {#examples} +シンボル化されていないプロファイルを使用する場合(バイナリが必要): -* 各プロシージャを1行ごとに記述したテキストファイルを生成したい場合: +* 各関数を 1 行ずつ記述したテキストファイルを生成します。 ```sh -jeprof path/to/binary path/to/heap/profile --text > result.txt +jeprof /path/to/clickhouse /tmp/jemalloc_clickhouse.12345.0.heap --text > result.txt ``` -* コールグラフを含む PDF ファイルを生成したい場合: +* コールグラフを含む PDF ファイルを生成する: ```sh -jeprof path/to/binary path/to/heap/profile --pdf > result.pdf +jeprof /path/to/clickhouse /tmp/jemalloc_clickhouse.12345.0.heap --pdf > result.pdf ``` + ### フレームグラフの生成 {#generating-flame-graph} -`jeprof` を使用すると、フレームグラフの作成に必要な折り畳みスタック(collapsed stacks)を生成できます。 +`jeprof` を使用すると、フレームグラフの作成に必要なコラプスされたスタック(collapsed stacks)を生成できます。 `--collapsed` 引数を使用する必要があります。 ```sh -jeprof path/to/binary path/to/heap/profile --collapsed > result.collapsed +jeprof /tmp/jemalloc_clickhouse.12345.0.heap.symbolized --collapsed > result.collapsed +``` + +あるいは、シンボル情報のないプロファイルの場合: + +```sh +jeprof /path/to/clickhouse /tmp/jemalloc_clickhouse.12345.0.heap --collapsed > result.collapsed ``` その後は、コラプスされたスタックを可視化するために利用できるツールが多数あります。 @@ -274,10 +333,11 @@ jeprof path/to/binary path/to/heap/profile --collapsed > result.collapsed 最も広く使われているのは [FlameGraph](https://github.com/brendangregg/FlameGraph) で、`flamegraph.pl` というスクリプトが含まれています。 ```sh -cat result.collapsed | /path/to/FlameGraph/flamegraph.pl --color=mem --title="メモリ割り当てフレームグラフ" --width 2400 > result.svg +cat result.collapsed | /path/to/FlameGraph/flamegraph.pl --color=mem --title="Allocation Flame Graph" --width 2400 > result.svg ``` -もう 1 つ便利なツールに [speedscope](https://www.speedscope.app/) があり、収集したスタックをよりインタラクティブに分析できます。 +もう 1 つ便利なツールとして [speedscope](https://www.speedscope.app/) があり、収集したスタックをよりインタラクティブに分析できます。 + ## プロファイラ用の追加オプション {#additional-options-for-profiler} @@ -306,6 +366,7 @@ FORMAT Vertical [リファレンス](/operations/system-tables/asynchronous_metrics) + ### システムテーブル `jemalloc_bins` {#system-table-jemalloc_bins} すべてのアリーナから集約された、さまざまなサイズクラス(bin)における jemalloc アロケータによるメモリ割り当てに関する情報を含みます。 diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/operations/settings/merge-tree-settings.md b/i18n/jp/docusaurus-plugin-content-docs/current/operations/settings/merge-tree-settings.md index 72f76205ff6..11fa777d252 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/operations/settings/merge-tree-settings.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/operations/settings/merge-tree-settings.md @@ -488,9 +488,9 @@ ClickHouse Cloud でのみ利用可能です。マージ中に compact パーツ ## dynamic_serialization_version {#dynamic_serialization_version} - + - + Dynamic データ型のシリアル化バージョン。互換性のために必要です。 @@ -522,7 +522,7 @@ Dynamic データ型のシリアル化バージョン。互換性のために必 - + `min_age_to_force_merge_seconds` と `min_age_to_force_merge_on_partition_only` の両設定が、 @@ -1765,9 +1765,9 @@ ClickHouse Cloud でのみ利用可能です。マージ対象として考慮す ## object_serialization_version {#object_serialization_version} - + - + JSON データ型用のシリアル化バージョン。互換性を保つために必要です。 @@ -1797,9 +1797,9 @@ Wide パーツにおける JSON 共有データシリアル化時のバケット ## object_shared_data_serialization_version {#object_shared_data_serialization_version} - + - + JSON データ型内の共有データに対するシリアル化バージョンです。 @@ -1816,9 +1816,9 @@ JSON データ型内の共有データに対するシリアル化バージョン ## object_shared_data_serialization_version_for_zero_level_parts {#object_shared_data_serialization_version_for_zero_level_parts} - + - + この設定では、挿入時に作成されるゼロレベルパーツに対して、JSON 型内の共有データのシリアル化バージョンを個別に指定できます。 ゼロレベルパーツに対しては、共有データのシリアル化として `advanced` を使用しないことを推奨します。挿入時間が大きく増加する可能性があるためです。 diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/operations/settings/settings-formats.md b/i18n/jp/docusaurus-plugin-content-docs/current/operations/settings/settings-formats.md index 64cad011cd3..f7dbd0bc80e 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/operations/settings/settings-formats.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/operations/settings/settings-formats.md @@ -2275,6 +2275,12 @@ SHOW CREATE クエリで使用する識別子のクオートスタイルを設 + 0 — 無効(型の不一致があるとエラーをスローする)。 + 1 — 有効(型の不一致があるフィールドをスキップする)。 +## type_json_use_partial_match_to_skip_paths_by_regexp {#type_json_use_partial_match_to_skip_paths_by_regexp} + + + +有効にすると、JSON オブジェクトを JSON 型としてパースする際に、SKIP REGEXP で指定した正規表現は、パスをスキップするために部分一致でのマッチを行います。無効にすると、完全一致でのマッチが必要になります。 + ## validate_experimental_and_suspicious_types_inside_nested_types {#validate_experimental_and_suspicious_types_inside_nested_types} diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/operations/settings/settings.md b/i18n/jp/docusaurus-plugin-content-docs/current/operations/settings/settings.md index b91c06fc683..c8c6a7a0684 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/operations/settings/settings.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/operations/settings/settings.md @@ -483,6 +483,16 @@ MaterializedPostgreSQL テーブルエンジンの使用を許可します。こ 自然言語処理向けの実験的関数を有効にします。 +## allow_experimental_object_storage_queue_hive_partitioning {#allow_experimental_object_storage_queue_hive_partitioning} + + + + + + + +S3Queue/AzureQueue エンジンで Hive パーティショニングを許可します + ## allow_experimental_parallel_reading_from_replicas {#allow_experimental_parallel_reading_from_replicas} **エイリアス**: `enable_parallel_replicas` @@ -6467,15 +6477,40 @@ SELECT multiMatchAny('abcd', ['ab','bc','c','d']) SETTINGS max_hyperscan_regexp_ ## max_insert_block_size {#max_insert_block_size} +**エイリアス**: `max_insert_block_size_rows` + -テーブルへの挿入時に作成されるブロックのサイズ(行数単位)を指定します。 -この設定が適用されるのは、サーバー側でブロックを形成する場合のみです。 -たとえば HTTP インターフェース経由での INSERT では、サーバーがデータフォーマットをパースし、指定されたサイズのブロックを形成します。 -一方、clickhouse-client を使用する場合はクライアント側でデータがパースされるため、サーバー上の `max_insert_block_size` 設定は挿入されるブロックのサイズに影響しません。 -また、INSERT SELECT を使用する場合にもこの設定は意味を持ちません。データは、SELECT の結果として形成されたブロックと同じブロック単位で挿入されるためです。 +テーブルへの挿入時に作成されるブロックの最大サイズ(行数単位)を指定します。 + +この設定は、フォーマットのパース時におけるブロックの形成を制御します。サーバーが行ベースの入力フォーマット(CSV、TSV、JSONEachRow など)や、任意のインターフェース(HTTP、インラインデータを持つ clickhouse-client、gRPC、PostgreSQL wire protocol)からの Values フォーマットをパースする際に、この設定を使ってブロックを出力するタイミングを決定します。 +注記: clickhouse-client または clickhouse-local を使用してファイルから読み込む場合は、クライアント自身がデータをパースし、この設定はクライアント側に適用されます。 + +次のいずれかの条件が満たされた時点でブロックが出力されます: + +- 最小しきい値(AND): min_insert_block_size_rows と min_insert_block_size_bytes の両方に到達した場合 +- 最大しきい値(OR): max_insert_block_size または max_insert_block_size_bytes のいずれかに到達した場合 + +デフォルト値は max_block_size よりわずかに大きくなっています。これは、特定のテーブルエンジン(`*MergeTree`)が、挿入された各ブロックごとにディスク上にデータパートを形成し、これがかなり大きなエンティティとなるためです。同様に、`*MergeTree` テーブルは挿入時にデータをソートするため、十分に大きなブロックサイズをとることで、より多くのデータを RAM 内でソートできるようにしています。 + +取りうる値: + +- 正の整数。 + +## max_insert_block_size_bytes {#max_insert_block_size_bytes} + + + + + +テーブルに挿入する際に作成されるブロックの最大サイズ(バイト単位)。 + +この設定は max_insert_block_size_rows と連動して、同じコンテキストでのブロックの生成を制御します。これらの設定がいつ、どのように適用されるかの詳細については、max_insert_block_size_rows を参照してください。 + +設定可能な値: -デフォルト値は `max_block_size` よりわずかに大きくなっています。これは、特定のテーブルエンジン(`*MergeTree`)が、挿入された各ブロックごとにディスク上にデータパートを形成し、これがかなり大きなエンティティとなるためです。同様に、`*MergeTree` テーブルは挿入時にデータをソートするため、十分に大きなブロックサイズをとることで、より多くのデータを RAM 内でソートできるようにしています。 +- 正の整数。 +- 0 — ブロックの生成に影響しません。 ## max_insert_delayed_streams_for_parallel_write {#max_insert_delayed_streams_for_parallel_write} @@ -7561,12 +7596,14 @@ INSERT を実行するために必要な最小ディスク空き容量の比率 -`INSERT` クエリでテーブルに挿入できるブロックの最小バイト数を設定します。これより小さいサイズのブロックは、より大きなブロックにまとめられます。 +テーブルに挿入する際に作成されるブロックの最小サイズ(バイト単位)を設定します。 + +この設定は `min_insert_block_size_rows` と連携して動作し、同じコンテキスト(フォーマットのパースおよび `INSERT` 処理)でのブロック形成を制御します。これらの設定がいつ、どのように適用されるかの詳細については `min_insert_block_size_rows` を参照してください。 指定可能な値: - 正の整数。 -- 0 — まとめ処理を無効化。 +- 0 — ブロック形成に関与しません。 ## min_insert_block_size_bytes_for_materialized_views {#min_insert_block_size_bytes_for_materialized_views} @@ -7587,12 +7624,25 @@ INSERT を実行するために必要な最小ディスク空き容量の比率 -`INSERT` クエリによってテーブルに挿入されるブロックの最小行数を設定します。より小さいサイズのブロックは、より大きなブロックにまとめられます。 +テーブルにデータを挿入する際に生成されるブロックの最小サイズ(行数)。 -設定可能な値: +この設定は、次の 2 つのコンテキストでのブロック生成を制御します。 + +1. フォーマットのパース: サーバーが任意のインターフェイス(HTTP、インラインデータ付きの clickhouse-client、gRPC、PostgreSQL ワイヤプロトコル)から行ベースの入力フォーマット(CSV、TSV、JSONEachRow など)をパースする際、この設定を使用してブロックを出力するタイミングを決定します。 +注記: clickhouse-client または clickhouse-local でファイルから読み取る場合、クライアント自身がデータをパースし、この設定はクライアント側に適用されます。 +2. INSERT 操作: INSERT...SELECT クエリの実行中およびデータが materialized view を経由して流れる際、ストレージに書き込まれる前に、この設定に基づいてブロックがまとめられます。 + +フォーマットのパースにおいては、次のいずれかの条件を満たしたときにブロックが出力されます: + +- 最小しきい値(AND): min_insert_block_size_rows と min_insert_block_size_bytes の両方に到達したとき +- 最大しきい値(OR): max_insert_block_size または max_insert_block_size_bytes のいずれかに到達したとき + +INSERT 操作においては、小さいサイズのブロックはより大きなブロックにまとめられ、min_insert_block_size_rows または min_insert_block_size_bytes のいずれかに到達したときに出力されます。 + +許可される値: - 正の整数。 -- 0 — まとめ処理を無効にする。 +- 0 — ブロック生成に関与しません。 ## min_insert_block_size_rows_for_materialized_views {#min_insert_block_size_rows_for_materialized_views} @@ -8053,8 +8103,8 @@ WHERE、PREWHERE、ON、HAVING、QUALIFY の各式において、論理和(OR - [isNull](/sql-reference/functions/functions-for-nulls#isNull) は [null](../../sql-reference/data-types/nullable.md/#finding-null) サブカラムの読み取りに変換されます。 - [isNotNull](/sql-reference/functions/functions-for-nulls#isNotNull) は [null](../../sql-reference/data-types/nullable.md/#finding-null) サブカラムの読み取りに変換されます。 - [count](/sql-reference/aggregate-functions/reference/count) は [null](../../sql-reference/data-types/nullable.md/#finding-null) サブカラムの読み取りに変換されます。 -- [mapKeys](/sql-reference/functions/tuple-map-functions#mapkeys) は [keys](/sql-reference/data-types/map#reading-subcolumns-of-map) サブカラムの読み取りに変換されます。 -- [mapValues](/sql-reference/functions/tuple-map-functions#mapvalues) は [values](/sql-reference/data-types/map#reading-subcolumns-of-map) サブカラムの読み取りに変換されます。 +- [mapKeys](/sql-reference/functions/tuple-map-functions#mapKeys) は [keys](/sql-reference/data-types/map#reading-subcolumns-of-map) サブカラムの読み取りに変換されます。 +- [mapValues](/sql-reference/functions/tuple-map-functions#mapValues) は [values](/sql-reference/data-types/map#reading-subcolumns-of-map) サブカラムの読み取りに変換されます。 設定可能な値: @@ -11276,9 +11326,9 @@ IN 演算子の右辺に副問い合わせまたはテーブル式がある場 ## use_join_disjunctions_push_down {#use_join_disjunctions_push_down} - + - + `JOIN` 条件における OR で接続された部分を、対応する入力側へプッシュダウンする(「部分的プッシュダウン」)ことを有効にします。 これによりストレージエンジンがより早い段階でフィルタリングでき、読み取るデータ量を削減できる場合があります。 @@ -11320,6 +11370,19 @@ IN 演算子の右辺に副問い合わせまたはテーブル式がある場 Paimon テーブル関数で Paimon のパーティションプルーニングを使用します +## use_primary_key {#use_primary_key} + + + + + +MergeTree テーブルのクエリ実行時に、プライマリキーを使用してグラニュールをプルーニングします。 + +可能な値: + +- 0 — 無効。 +- 1 — 有効。 + ## use_query_cache {#use_query_cache} diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/operations/system-tables/index.md b/i18n/jp/docusaurus-plugin-content-docs/current/operations/system-tables/index.md index 1810a3e6659..cb56dcb1f99 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/operations/system-tables/index.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/operations/system-tables/index.md @@ -22,20 +22,20 @@ doc_type: 'reference' | ページ | 概要 | | --------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | | [システムテーブル概要](/operations/system-tables/overview) | システムテーブルとは何か、なぜ有用なのかについての概要。 | -| [INFORMATION_SCHEMA](/operations/system-tables/information_schema) | データベースオブジェクトのメタデータに対する、ほぼ標準化された DBMS 非依存のビューを提供するシステムデータベース。 | +| [INFORMATION_SCHEMA](/operations/system-tables/information_schema) | データベースオブジェクトのメタデータに関する、ほぼ標準化された DBMS 非依存ビューを提供するシステムデータベース。 | | [system.asynchronous_insert_log](/operations/system-tables/asynchronous_insert_log) | 非同期インサートの情報を保持するシステムテーブル。各エントリは、非同期インサート用にバッファリングされた INSERT クエリを表します。 | -| [system.asynchronous_inserts](/operations/system-tables/asynchronous_inserts) | キューに保留されている非同期インサートに関する情報を保持するシステムテーブル。 | +| [system.asynchronous_inserts](/operations/system-tables/asynchronous_inserts) | キュー内で保留中の非同期インサートに関する情報を保持するシステムテーブル。 | | [system.asynchronous_loader](/operations/system-tables/asynchronous_loader) | 最近の非同期ジョブ(ロード中のテーブルなど)に関する情報およびステータスを保持する system テーブルです。テーブルには各ジョブにつき 1 行が格納されます。 | | [system.asynchronous_metric_log](/operations/system-tables/asynchronous_metric_log) | `system.asynchronous_metrics` の履歴値を保持するシステムテーブル。これらの値は一定の時間間隔ごと(デフォルトでは 1 秒ごと)に保存されます。 | | [system.asynchronous_metrics](/operations/system-tables/asynchronous_metrics) | バックグラウンドで定期的に計算されるメトリクスを含むシステムテーブル。例えば、RAM の使用量など。 | | [system.azure_queue_settings](/operations/system-tables/azure_queue_settings) | AzureQueue テーブルの設定に関する情報を含む system テーブル。サーバーのバージョン `24.10` 以降で利用可能です。 | | [system.background_schedule_pool](/operations/system-tables/background_schedule_pool) | バックグラウンドスケジュールプール内のタスクに関する情報を含む system テーブル。 | -| [system.background_schedule_pool_log](/operations/system-tables/background_schedule_pool_log) | バックグラウンドスケジュールプールにおけるタスク実行の履歴を保持するシステムテーブル。 | +| [system.background_schedule_pool_log](/operations/system-tables/background_schedule_pool_log) | バックグラウンドスケジュールプールにおけるタスク実行履歴を保持するシステムテーブル。 | | [system.backup_log](/operations/system-tables/backup_log) | `BACKUP` および `RESTORE` 操作に関する情報を含むログエントリを格納するシステムテーブル。 | | [system.backups](/operations/system-tables/backups) | `BACKUP` および `RESTORE` 操作に関する情報を含むログエントリを格納するシステムテーブル。 | -| [system.blob_storage_log](/operations/system-tables/blob_storage_log) | BLOB ストレージで行われるアップロードや削除など、各種操作に関する情報を含むログエントリを格納するシステムテーブル。 | +| [system.blob_storage_log](/operations/system-tables/blob_storage_log) | BLOB ストレージに対するアップロードや削除など、各種操作に関する情報を含むログエントリを格納するシステムテーブル。 | | [system.build_options](/operations/system-tables/build_options) | ClickHouse サーバーのビルドオプションに関する情報を保持するシステムテーブル。 | -| [system.clusters](/operations/system-tables/clusters) | 設定ファイルで利用可能なクラスタおよびそれらに定義されているサーバーに関する情報を保持するシステムテーブル。 | +| [system.clusters](/operations/system-tables/clusters) | 設定ファイルで定義されているクラスタおよびそれらに定義されているサーバーに関する情報を保持するシステムテーブル。 | | [system.codecs](/operations/system-tables/codecs) | キュー内のコーデックに関する情報を保持するシステムテーブル。 | | [system.columns](/operations/system-tables/columns) | すべてのテーブルのカラムに関する情報を保持するシステムテーブル。 | | [system.contributors](/operations/system-tables/contributors) | コントリビューターに関する情報を保持するシステムテーブル。 | @@ -43,91 +43,91 @@ doc_type: 'reference' | [system.current_roles](/operations/system-tables/current_roles) | 現在のユーザーに対して有効なロールを含むシステムテーブル。 | | [system.dashboards](/operations/system-tables/dashboards) | HTTP インターフェース経由でアクセス可能な `/dashboard` ページで使用されるクエリを含むシステムテーブルです。監視やトラブルシューティングに役立ちます。 | | [system.data_skipping_indices](/operations/system-tables/data_skipping_indices) | すべてのテーブルで定義されているデータスキッピングインデックスに関する情報を保持するシステムテーブル。 | -| [system.data_type_families](/operations/system-tables/data_type_families) | サポートされているデータ型に関する情報を保持するシステムテーブル | +| [system.data_type_families](/operations/system-tables/data_type_families) | サポートされているデータ型に関する情報を保持するシステムテーブル。 | | [system.database_engines](/operations/system-tables/database_engines) | サーバーがサポートするデータベースエンジンの一覧を含むシステムテーブル。 | -| [system.database_replicas](/operations/system-tables/database_replicas) | レプリケートされたデータベースに関する情報および状態を保持するシステムテーブル。 | +| [system.database_replicas](/operations/system-tables/database_replicas) | レプリケートデータベースに関する情報およびステータスを保持するシステムテーブル。 | | [system.databases](/operations/system-tables/databases) | 現在のユーザーが利用できるデータベースに関する情報を保持するシステムテーブル。 | -| [system.dead_letter_queue](/operations/system-tables/dead_letter_queue) | ストリーミングエンジンを介して受信したメッセージのうち、パース時にエラーが発生したものに関する情報を保持するシステムテーブル。 | +| [system.dead_letter_queue](/operations/system-tables/dead_letter_queue) | ストリーミングエンジン経由で受信したメッセージのうち、パース時にエラーとなったものに関する情報を保持するシステムテーブル。 | | [system.delta_lake_metadata_log](/operations/system-tables/delta_lake_metadata_log) | Delta Lake テーブルから読み取られたメタデータファイルに関する情報を保持するシステムテーブル。各エントリはルートメタデータ JSON ファイルを表します。 | | [system.detached_parts](/operations/system-tables/detached_parts) | MergeTree テーブルの切り離されたパーツに関する情報を含むシステムテーブル | -| [system.detached_tables](/operations/system-tables/detached_tables) | 各切り離されたテーブルに関する情報を含むシステムテーブル。 | -| [system.dictionaries](/operations/system-tables/dictionaries) | 辞書に関する情報を保持するシステムテーブル | -| [system.dimensional_metrics](/operations/system-tables/dimensional_metrics) | このテーブルには、即時に計算でき、Prometheus 形式でエクスポート可能なディメンショナルメトリクスが含まれています。常に最新の状態に保たれています。 | -| [system.disks](/operations/system-tables/disks) | サーバー構成で定義されたディスクに関する情報を保持するシステムテーブル。 | +| [system.detached_tables](/operations/system-tables/detached_tables) | 切り離された各テーブルに関する情報を含むシステムテーブル。 | +| [system.dictionaries](/operations/system-tables/dictionaries) | 辞書に関する情報を保持するシステムテーブル。 | +| [system.dimensional_metrics](/operations/system-tables/dimensional_metrics) | このテーブルには、即座に計算でき、Prometheus 形式でエクスポート可能なディメンショナルメトリクスが含まれています。常に最新の状態です。 | +| [system.disks](/operations/system-tables/disks) | サーバー構成で定義されたディスクに関する情報を保持するシステムテーブル | | [system.distributed_ddl_queue](/operations/system-tables/distributed_ddl_queue) | クラスタ上で実行された分散 DDL クエリ(`ON CLUSTER` 句を使用するクエリ)に関する情報を保持するシステムテーブル。 | -| [system.distribution_queue](/operations/system-tables/distribution_queue) | 分片へ送信するためにキューに登録されているローカルファイルに関する情報を保持する system テーブル。 | +| [system.distribution_queue](/operations/system-tables/distribution_queue) | 分片に送信待ちのローカルファイルに関する情報を保持する system テーブル。 | | [system.dns_cache](/operations/system-tables/dns_cache) | キャッシュされた DNS レコードに関する情報を保持するシステムテーブル。 | -| [system.dropped_tables](/operations/system-tables/dropped_tables) | `DROP TABLE` が実行されたテーブルのうち、まだデータの削除処理が完了していないものに関する情報を保持するシステムテーブル | -| [system.dropped_tables_parts](/operations/system-tables/dropped_tables_parts) | `system.dropped_tables` に記録されている削除された MergeTree テーブルのパーツに関する情報を含むシステムテーブル | -| [system.enabled_roles](/operations/system-tables/enabled_roles) | 現時点で有効なすべてのロールを含むシステムテーブルで、現在のユーザーの現在のロールおよびそのロールに付与されているロールも含まれます | +| [system.dropped_tables](/operations/system-tables/dropped_tables) | `DROP TABLE` が実行されたテーブルのうち、まだデータのクリーンアップが完了していないものに関する情報を保持するシステムテーブル | +| [system.dropped_tables_parts](/operations/system-tables/dropped_tables_parts) | `system.dropped_tables` に記録されている、`DROP TABLE` が実行された MergeTree テーブルのパーツに関する情報を保持するシステムテーブル | +| [system.enabled_roles](/operations/system-tables/enabled_roles) | 現時点で有効なすべてのロールを含むシステムテーブルであり、その中には現在のユーザーの現在のロールおよびそのロールに付与されているロールも含まれます | | [system.error_log](/operations/system-tables/system-error-log) | `system.errors` テーブルのエラー値の履歴を保持するシステムテーブルで、その内容は定期的にディスクにフラッシュされます。 | -| [system.errors](/operations/system-tables/errors) | エラーコードとその発生回数を保持するシステムテーブル。 | -| [system.events](/operations/system-tables/events) | システム内で発生したイベントの回数に関する情報を保持するシステムテーブル。 | -| [system.functions](/operations/system-tables/functions) | 通常の関数および集約関数に関する情報を格納するシステムテーブル。 | -| [system.grants](/operations/system-tables/grants) | ClickHouse のユーザーアカウントにどの権限が付与されているかを表示するシステムテーブル。 | +| [system.errors](/operations/system-tables/errors) | エラーコードとそれぞれの発生回数を保持するシステムテーブル。 | +| [system.events](/operations/system-tables/events) | システム内で発生した各種イベントの発生回数に関する情報を保持するシステムテーブル。 | +| [system.functions](/operations/system-tables/functions) | 通常の関数および集約関数に関する情報を保持するシステムテーブル。 | +| [system.grants](/operations/system-tables/grants) | ClickHouse のユーザーアカウントに付与されている権限を表示するシステムテーブル。 | | [system.graphite_retentions](/operations/system-tables/graphite_retentions) | `GraphiteMergeTree` 型エンジンのテーブルで使用される `graphite_rollup` パラメータに関する情報を保持するシステムテーブルです。 | | [system.histogram_metrics](/operations/system-tables/histogram_metrics) | このテーブルには、即時に計算でき、Prometheus 形式でエクスポート可能なヒストグラムメトリクスが含まれています。常に最新の状態に保たれています。 | -| [system.iceberg_history](/operations/system-tables/iceberg_history) | Iceberg テーブルのスナップショット履歴を保持するシステムテーブル | +| [system.iceberg_history](/operations/system-tables/iceberg_history) | Iceberg のスナップショット履歴を保持するシステムテーブル | | [system.iceberg_metadata_log](/operations/system-tables/iceberg_metadata_log) | Iceberg テーブルから読み取られたメタデータファイルに関する情報を格納するシステムテーブル。各エントリは、ルートメタデータファイル、Avro ファイルから抽出されたメタデータ、または Avro ファイル内のエントリのいずれかを表します。 | | [system.instrumentation](/operations/system-tables/instrumentation) | 計測ポイントを保持するシステムテーブル | -| [system.jemalloc_bins](/operations/system-tables/jemalloc_bins) | `jemalloc` アロケータによるメモリ割り当て情報を、サイズクラス(bin)ごとに全アリーナから集約して保持するシステムテーブル。 | +| [system.jemalloc_bins](/operations/system-tables/jemalloc_bins) | `jemalloc` アロケータによるメモリ割り当て情報を、サイズクラス(bin)ごとに、全アリーナから集約して保持するシステムテーブル。 | | [system.kafka_consumers](/operations/system-tables/kafka_consumers) | Kafka コンシューマーに関する情報を格納するシステムテーブル。 | | [system.licenses](/operations/system-tables/licenses) | ClickHouse のソースコードの `contrib` ディレクトリ内にあるサードパーティライブラリのライセンスを格納する system テーブル。 | | [system.masking_policies](/operations/system-tables/masking_policies) | システム内のすべてのマスキングポリシーに関する情報を保持するシステムテーブル。 | | [system.merge_tree_settings](/operations/system-tables/merge_tree_settings) | MergeTree テーブルの設定に関する情報を含む system テーブル。 | -| [system.merges](/operations/system-tables/merges) | MergeTree ファミリーのテーブルにおける、現在進行中のマージおよびパーツ mutation に関する情報を含むシステムテーブル。 | +| [system.merges](/operations/system-tables/merges) | MergeTree ファミリーのテーブルで現在実行中のマージおよびパーツの mutation に関する情報を含むシステムテーブル。 | | [system.metric_log](/operations/system-tables/metric_log) | `system.metrics` および `system.events` テーブルのメトリクス値の履歴を保持するシステムテーブルで、その内容は定期的にディスクにフラッシュされます。 | -| [system.metrics](/operations/system-tables/metrics) | 即時に計算できる、または現在値を表すメトリクスを含むシステムテーブル。 | +| [system.metrics](/operations/system-tables/metrics) | 即座に計算できる、または現在値を持つメトリクスを含むシステムテーブル。 | | [system.moves](/operations/system-tables/moves) | MergeTree テーブルで進行中のデータパーツの移動に関する情報を保持する system テーブルです。各データパーツの移動は 1 行として表されます。 | | [system.mutations](/operations/system-tables/mutations) | MergeTree テーブルに対する mutation とその進行状況に関する情報を保持する system テーブルです。各 mutation コマンドは 1 行として表されます。 | | [system.numbers](/operations/system-tables/numbers) | `number` という名前の単一の UInt64 カラムを持ち、0 から始まるほとんどすべての自然数を含むシステムテーブルです。 | -| [system.numbers_mt](/operations/system-tables/numbers_mt) | `system.numbers` と同様のシステムテーブルですが、読み取りが並列化されており、数値は任意の順序で返されます。 | -| [system.one](/operations/system-tables/one) | `dummy` という単一の UInt8 カラムに値 0 を持つ、1 行のみからなるシステムテーブルです。他の DBMS で見られる `DUAL` テーブルと同様です。 | +| [system.numbers_mt](/operations/system-tables/numbers_mt) | `system.numbers` と同様のシステムテーブルですが、読み取り処理が並列に実行されるため、数値は任意の順序で返されます。 | +| [system.one](/operations/system-tables/one) | 単一の UInt8 型カラム `dummy` を持ち、その値が 0 の 1 行だけからなるシステムテーブルです。他の DBMS における `DUAL` テーブルに相当します。 | | [system.opentelemetry_span_log](/operations/system-tables/opentelemetry_span_log) | 実行されたクエリのトレーススパンに関する情報を保持するシステムテーブル。 | | [system.part_log](/operations/system-tables/part_log) | MergeTree ファミリーのテーブルにおけるデータパーツで発生した、追加やマージなどのイベントに関する情報を格納する system テーブル。 | | [system.parts](/operations/system-tables/parts) | MergeTree テーブルのパーツに関する情報を保持するシステムテーブル | | [system.parts_columns](/operations/system-tables/parts_columns) | MergeTree テーブルのパーツおよびカラムに関する情報を保持するシステムテーブル。 | | [system.processes](/operations/system-tables/processes) | `SHOW PROCESSLIST` クエリを実装するためのシステムテーブル。 | -| [system.processors_profile_log](/operations/system-tables/processors_profile_log) | プロセッサーレベルのプロファイリング情報を保持するシステムテーブル(`EXPLAIN PIPELINE` で確認できます)。 | +| [system.processors_profile_log](/operations/system-tables/processors_profile_log) | プロセッサーレベルでのプロファイリング情報を保持するシステムテーブル(`EXPLAIN PIPELINE` で確認できます)。 | | [system.projection_parts](/operations/system-tables/projection_parts) | MergeTree ファミリーのテーブルにおける PROJECTION パーツに関する情報を保持するシステムテーブル。 | -| [system.projection_parts_columns](/operations/system-tables/projection_parts_columns) | MergeTree ファミリーのテーブルにおける PROJECTION パーツに含まれるカラムに関する情報を保持する system テーブル | -| [system.projections](/operations/system-tables/projections) | すべてのテーブルに存在する PROJECTION に関する情報を保持する system テーブル。 | +| [system.projection_parts_columns](/operations/system-tables/projection_parts_columns) | MergeTree ファミリーのテーブルにおける PROJECTION パーツに含まれるカラムに関する情報を保持するシステムテーブル | +| [system.projections](/operations/system-tables/projections) | すべてのテーブルで定義されている PROJECTION に関する情報を保持する system テーブル。 | | [system.query_cache](/operations/system-tables/query_cache) | クエリキャッシュの内容を表示するシステムテーブル。 | | [system.query_condition_cache](/operations/system-tables/query_condition_cache) | クエリ条件キャッシュの内容を表示するシステムテーブル。 | | [system.query_log](/operations/system-tables/query_log) | 実行されたクエリの開始時刻、処理時間、エラーメッセージなどの情報を保持するシステムテーブルです。 | -| [system.query_metric_log](/operations/system-tables/query_metric_log) | テーブル `system.events` に記録された値に基づき、個々のクエリごとのメモリおよびメトリクス値の履歴を保持するシステムテーブルで、その内容は定期的にディスクにフラッシュされます。 | +| [system.query_metric_log](/operations/system-tables/query_metric_log) | テーブル `system.events` の値を基に、個々のクエリごとのメモリおよびメトリクス値の履歴を保持するシステムテーブルで、その内容は定期的にディスクにフラッシュされます。 | | [system.query_thread_log](/operations/system-tables/query_thread_log) | クエリを実行するスレッドに関する情報を保持するシステムテーブル。例えば、スレッド名、スレッドの開始時刻、クエリ処理時間などを含みます。 | -| [system.query_views_log](/operations/system-tables/query_views_log) | クエリ実行時に動作する依存ビューに関する情報を保持するシステムテーブルです。例えば、ビューの種類や実行時間などが含まれます。 | -| [system.quota_limits](/operations/system-tables/quota_limits) | すべての QUOTA の各間隔ごとの上限に関する情報を含む system テーブルです。1 つの QUOTA に対応する行数は、0 行の場合も含め任意の行数になり得ます。 | -| [system.quota_usage](/operations/system-tables/quota_usage) | 現在の USER による QUOTA の使用状況(どれだけ使用されているか、どれだけ残っているかなど)に関する情報を含む system テーブルです。 | +| [system.query_views_log](/operations/system-tables/query_views_log) | クエリ実行時に実行される従属ビューに関する情報を保持するシステムテーブル。例えば、ビューの種類や実行時間などが含まれます。 | +| [system.quota_limits](/operations/system-tables/quota_limits) | すべての QUOTA の各間隔ごとの上限に関する情報を含む system テーブルです。1 つの QUOTA に対応する行数は、0 行である場合も含め、任意の数になり得ます。 | +| [system.quota_usage](/operations/system-tables/quota_usage) | 現在の USER による QUOTA の使用量(どれだけ使用されているか、どれだけ残っているかなど)に関する情報を含む system テーブルです。 | | [system.quotas](/operations/system-tables/quotas) | QUOTA に関する情報を保持するシステムテーブル。 | | [system.quotas_usage](/operations/system-tables/quotas_usage) | すべてのユーザーによる QUOTA の使用状況に関する情報を含む system テーブルです。 | -| [system.replicas](/operations/system-tables/replicas) | ローカルサーバー上に存在するレプリケートされたテーブルの情報およびステータスを保持するシステムテーブルです。監視に役立ちます。 | -| [system.replicated_fetches](/operations/system-tables/replicated_fetches) | 現在バックグラウンドで実行中のフェッチ処理に関する情報を保持するシステムテーブル。 | +| [system.replicas](/operations/system-tables/replicas) | ローカルサーバー上に存在するレプリケートされたテーブルの情報および状態を保持するシステムテーブルです。監視に役立ちます。 | +| [system.replicated_fetches](/operations/system-tables/replicated_fetches) | 現在バックグラウンドで実行中のフェッチに関する情報を保持するシステムテーブル。 | | [system.replication_queue](/operations/system-tables/replication_queue) | `ReplicatedMergeTree` ファミリーのテーブルに対して、ClickHouse Keeper または ZooKeeper に保存されているレプリケーションキュー内のタスクに関する情報を保持する system テーブルです。 | | [system.resources](/operations/system-tables/resources) | ローカルサーバー上に存在するリソースに関する情報を保持するシステムテーブルで、各リソースにつき 1 行が格納されます。 | | [system.role_grants](/operations/system-tables/role_grants) | ユーザーおよびロールに対するロール付与情報を保持するシステムテーブル。 | | [system.roles](/operations/system-tables/roles) | 設定されているロールに関する情報を保持するシステムテーブル。 | -| [system.row_policies](/operations/system-tables/row_policies) | 特定のテーブルに対するフィルタと、この ROW POLICY を適用すべきロールおよび/またはユーザーの一覧を含むシステムテーブル。 | +| [system.row_policies](/operations/system-tables/row_policies) | 特定のテーブル向けのフィルタと、この ROW POLICY を使用するロールおよび/またはユーザーの一覧を含むシステムテーブル。 | | [system.s3_queue_settings](/operations/system-tables/s3_queue_settings) | S3Queue テーブルの設定に関する情報を含む system テーブルです。サーバーのバージョン `24.10` 以降で利用可能です。 | -| [system.scheduler](/operations/system-tables/scheduler) | ローカルサーバー上に存在するスケジューリングノードに関する情報および状態を保持するシステムテーブル。 | +| [system.scheduler](/operations/system-tables/scheduler) | ローカルサーバー上に存在するスケジューリングノードに関する情報および状態を保持するシステムテーブルです。 | | [system.schema_inference_cache](/operations/system-tables/schema_inference_cache) | キャッシュされたすべてのファイルスキーマに関する情報を保持するシステムテーブル。 | | [system.server_settings](/operations/system-tables/server_settings) | `config.xml` で指定されたサーバーのグローバル設定に関する情報を保持する system テーブル。 | -| [system.session_log](/operations/system-tables/session_log) | すべてのログインおよびログアウトの成功・失敗イベントに関する情報を保持するシステムテーブル。 | +| [system.session_log](/operations/system-tables/session_log) | すべてのログインおよびログアウトイベント(成功・失敗)に関する情報を保持するシステムテーブル。 | | [system.settings](/operations/system-tables/settings) | 現在のユーザーのセッション設定に関する情報を保持するシステムテーブルです。 | | [system.settings_changes](/operations/system-tables/settings_changes) | 以前の ClickHouse バージョンにおける設定変更に関する情報を含むシステムテーブル。 | | [system.settings_profile_elements](/operations/system-tables/settings_profile_elements) | 設定プロファイルの内容(制約、設定の適用対象となるロールおよびユーザー、親設定プロファイル)を表すシステムテーブルです。 | | [system.settings_profiles](/operations/system-tables/settings_profiles) | 設定プロファイルのプロパティを保持する system テーブル。 | -| [system.stack_trace](/operations/system-tables/stack_trace) | すべてのサーバースレッドのスタックトレースを保持するシステムテーブル。開発者がサーバーの内部状態を解析する際に利用できます。 | +| [system.stack_trace](/operations/system-tables/stack_trace) | すべてのサーバースレッドのスタックトレースを保持するシステムテーブル。開発者がサーバーの状態を解析する際に利用できます。 | | [system.storage_policies](/operations/system-tables/storage_policies) | サーバー構成で定義されたストレージポリシーおよびボリュームに関する情報を保持するシステムテーブル。 | -| [system.symbols](/operations/system-tables/symbols) | C++ のエキスパートや ClickHouse エンジニアが `clickhouse` バイナリの内部を解析する際に利用できる情報を含むシステムテーブル。 | +| [system.symbols](/operations/system-tables/symbols) | C++ のエキスパートや ClickHouse エンジニアが `clickhouse` バイナリの内部状態を解析するために利用できる情報を含むシステムテーブル。 | | [system.table_engines](/operations/system-tables/table_engines) | サーバーがサポートするテーブルエンジンおよび各エンジンが提供する機能の説明を含むシステムテーブル。 | -| [system.tables](/operations/system-tables/tables) | サーバーが認識している各テーブルのメタデータを保持するシステムテーブルです。 | +| [system.tables](/operations/system-tables/tables) | サーバーが管理している各テーブルのメタデータを保持するシステムテーブルです。 | | [system.text_log](/operations/system-tables/text_log) | ログエントリを格納するシステムテーブル。 | -| [system.time_zones](/operations/system-tables/time_zones) | ClickHouse サーバーでサポートされているタイムゾーンの一覧を含むシステムテーブル。 | +| [system.time_zones](/operations/system-tables/time_zones) | ClickHouse サーバーがサポートするタイムゾーンの一覧を含むシステムテーブル。 | | [system.trace_log](/operations/system-tables/trace_log) | サンプリングクエリプロファイラによって収集されたスタックトレースを格納するシステムテーブルです。 | -| [system.unicode](/operations/system-tables/unicode) | Unicode 文字とそのプロパティの一覧を含むシステムテーブル。 | -| [system.user_processes](/operations/system-tables/user_processes) | ユーザーごとのメモリ使用量および ProfileEvents の概要把握に役立つ情報を含む system テーブル。 | +| [system.unicode](/operations/system-tables/unicode) | Unicode 文字とその属性の一覧を含むシステムテーブル。 | +| [system.user_processes](/operations/system-tables/user_processes) | ユーザーごとのメモリ使用量および ProfileEvents の概要を把握するのに役立つ情報を含む system テーブル。 | | [system.users](/operations/system-tables/users) | サーバー上で設定されているユーザーアカウントの一覧を含むシステムテーブル。 | | [system.view_refreshes](/operations/system-tables/view_refreshes) | リフレッシャブルmaterialized view に関する情報を保持するシステムテーブルです。 | | [system.warnings](/operations/system-tables/system_warnings) | このテーブルには ClickHouse サーバーに関する警告メッセージが含まれています。 | @@ -135,6 +135,7 @@ doc_type: 'reference' | [system.zookeeper](/operations/system-tables/zookeeper) | ClickHouse Keeper または ZooKeeper が構成されている場合にのみ存在するシステムテーブルです。設定ファイルで定義された Keeper クラスターのデータを提供します。 | | [system.zookeeper_connection](/operations/system-tables/zookeeper_connection) | ZooKeeper が構成されている場合にのみ存在するシステムテーブル。ZooKeeper(補助的な ZooKeeper を含む)への現在の接続を表示します。 | | [system.zookeeper_connection_log](/operations/system-tables/zookeeper_connection_log) | ZooKeeper(補助的な ZooKeeper を含む)への接続履歴を表示します。 | +| [system.zookeeper_info](/operations/system-tables/zookeeper_info) | 利用可能なすべての Keeper ノードの内部状態を出力するシステムテーブルです。 | | [system.zookeeper_log](/operations/system-tables/zookeeper_log) | ZooKeeper サーバーへのリクエストパラメータとその応答に関する情報を保持するシステムテーブルです。 | {/*AUTOGENERATED_END*/ } diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/operations/system-tables/zookeeper_info.md b/i18n/jp/docusaurus-plugin-content-docs/current/operations/system-tables/zookeeper_info.md new file mode 100644 index 00000000000..cff73ebd5be --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/operations/system-tables/zookeeper_info.md @@ -0,0 +1,57 @@ +--- +description: '利用可能なすべての Keeper ノードの内部情報を出力するシステムテーブル。' +keywords: ['システムテーブル', 'zookeeper_info'] +slug: /operations/system-tables/zookeeper_info +title: 'system.zookeeper_info' +doc_type: 'reference' +--- + +import SystemTableCloud from '@site/i18n/jp/docusaurus-plugin-content-docs/current/_snippets/_system_table_cloud.md'; + +# system.zookeeper_info {#systemzookeeper_info} + + + +このテーブルは、ZooKeeper に関する統合的な内部情報を出力し、ノードは config から取得されます。 + +カラム: + +* `zookeeper_cluster_name` ([String](../../sql-reference/data-types/string.md)) — ZooKeeper クラスターの名前。 +* `host` ([String](../../sql-reference/data-types/string.md)) — ClickHouse が接続した ZooKeeper ノードのホスト名または IP アドレス。 +* `port` ([UInt16](../../sql-reference/data-types/int-uint.md)) — ClickHouse が接続した先の ZooKeeper ノードのポート。 +* `index` ([Nullable(UInt8)](../../sql-reference/data-types/int-uint.md)) — ClickHouse が接続した ZooKeeper ノードのインデックス。インデックスは ZooKeeper の設定で定義された値です。接続していない場合、このカラムは NULL です。 +* `is_connected` ([Nullable(UInt8)](../../sql-reference/data-types/int-uint.md)) — ZooKeeper に接続しているかどうか。 +* `is_readonly` ([UInt8](../../sql-reference/data-types/int-uint.md)) — 読み取り専用かどうか。 +* `version` ([String](../../sql-reference/data-types/string.md)) — ZooKeeper のバージョン。 +* `avg_latency` ([UInt64](../../sql-reference/data-types/int-uint.md)) — 平均レイテンシー。 +* `max_latency` ([UInt64](../../sql-reference/data-types/int-uint.md)) — 最大レイテンシー +* `min_latency` ([UInt64](../../sql-reference/data-types/int-uint.md)) — 最小レイテンシー。 +* `packets_received` ([UInt64](../../sql-reference/data-types/int-uint.md)) — 受信したパケット数。 +* `packets_sent` ([UInt64](../../sql-reference/data-types/int-uint.md)) — 送信されたパケットの数。 +* `outstanding_requests` ([UInt64](../../sql-reference/data-types/int-uint.md)) — 処理待ちリクエストの数。 +* `server_state` ([String](../../sql-reference/data-types/string.md)) — サーバー状態。 +* `is_leader` ([UInt8](../../sql-reference/data-types/int-uint.md)) — この ZooKeeper ノードがリーダーかどうかを示します。 +* `znode_count` ([UInt64](../../sql-reference/data-types/int-uint.md)) — znode 数。 +* `watch_count` ([UInt64](../../sql-reference/data-types/int-uint.md)) — ウォッチ数。 +* `ephemerals_count` ([UInt64](../../sql-reference/data-types/int-uint.md)) — エフェメラルノード数。 +* `approximate_data_size` ([UInt64](../../sql-reference/data-types/int-uint.md)) — 概算データサイズ。 +* `followers` ([UInt64](../../sql-reference/data-types/int-uint.md)) — リーダーノードのフォロワー数。このフィールドはリーダーからのみ公開されます。 +* `synced_followers` ([UInt64](../../sql-reference/data-types/int-uint.md)) — リーダーと同期しているフォロワーの数。このフィールドが公開されるのはリーダーのみです。 +* `pending_syncs` ([UInt64](../../sql-reference/data-types/int-uint.md)) — リーダーの保留中の同期数。このフィールドはリーダーでのみ公開されます。 +* `open_file_descriptor_count` ([UInt64](../../sql-reference/data-types/int-uint.md)) — オープンしているファイルディスクリプタの数。Unixプラットフォームでのみ使用可能です。 +* `max_file_descriptor_count` ([UInt64](../../sql-reference/data-types/int-uint.md)) — 最大ファイルディスクリプタ数。Unix プラットフォームでのみ利用可能です。 +* `connections` ([UInt64](../../sql-reference/data-types/int-uint.md)) — ZooKeeper への接続数。 +* `outstanding` ([UInt64](../../sql-reference/data-types/int-uint.md)) — ZooKeeper の未処理リクエスト数(outstanding)。 +* `zxid` ([UInt64](../../sql-reference/data-types/int-uint.md)) — ZooKeeper の zxid。 +* `node_count` ([UInt64](../../sql-reference/data-types/int-uint.md)) — ZooKeeper のノード数。 +* `snapshot_dir_size` ([UInt64](../../sql-reference/data-types/int-uint.md)) — ZooKeeper のスナップショットディレクトリのサイズ。 +* `log_dir_size` ([UInt64](../../sql-reference/data-types/int-uint.md)) — ZooKeeper のログディレクトリのサイズ。 +* `first_log_idx` ([UInt64](../../sql-reference/data-types/int-uint.md)) — ZooKeeper の最初のログインデックス。 +* `first_log_term` ([UInt64](../../sql-reference/data-types/int-uint.md)) — ZooKeeper の最初のログの term。 +* `last_log_idx` ([UInt64](../../sql-reference/data-types/int-uint.md)) — ZooKeeper の最新ログインデックス。 +* `last_log_term` ([UInt64](../../sql-reference/data-types/int-uint.md)) — ZooKeeper における最後のログエントリの term。 +* `last_committed_idx` ([UInt64](../../sql-reference/data-types/int-uint.md)) — ZooKeeper における直近のコミット済み索引。 +* `leader_committed_log_idx` ([UInt64](../../sql-reference/data-types/int-uint.md)) — ZooKeeper リーダーがコミット済みとしたログのインデックス。 +* `target_committed_log_idx` ([UInt64](../../sql-reference/data-types/int-uint.md)) — ZooKeeper におけるターゲットのコミット済みログインデックス。 +* `last_snapshot_idx` ([UInt64](../../sql-reference/data-types/int-uint.md)) — ZooKeeper の最新スナップショットのインデックス。 + g \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/operations/utilities/clickhouse-keeper-http-api.md b/i18n/jp/docusaurus-plugin-content-docs/current/operations/utilities/clickhouse-keeper-http-api.md new file mode 100644 index 00000000000..53d5c403ed6 --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/operations/utilities/clickhouse-keeper-http-api.md @@ -0,0 +1,110 @@ +--- +description: 'ClickHouse Keeper HTTP API および組み込みダッシュボードに関するドキュメント' +sidebar_label: 'Keeper HTTP API' +sidebar_position: 70 +slug: /operations/utilities/clickhouse-keeper-http-api +title: 'Keeper HTTP API およびダッシュボード' +doc_type: 'reference' +--- + +# Keeper HTTP API とダッシュボード {#keeper-http-api-and-dashboard} + +ClickHouse Keeper は、監視・ヘルスチェック・ストレージ管理のための HTTP API と組み込み Web ダッシュボードを提供します。 +このインターフェースを使用すると、運用者は Web ブラウザや HTTP クライアントを通じて、クラスタの状態を確認し、コマンドを実行し、Keeper ストレージを管理できます。 + +## 設定 {#configuration} + +HTTP API を有効にするには、`keeper_server` の設定に `http_control` セクションを追加します。 + +```xml + + + + + 9182 + + + +``` + + +### 設定オプション {#configuration-options} + +| 設定項目 | デフォルト | 説明 | +|--------------------------------------------|-----------|-------------------------------------------------| +| `http_control.port` | - | ダッシュボードおよび API 用の HTTP ポート | +| `http_control.secure_port` | - | HTTPS ポート(SSL 設定が必要) | +| `http_control.readiness.endpoint` | `/ready` | readiness プローブ用のカスタムパス | +| `http_control.storage.session_timeout_ms` | `30000` | ストレージ API 操作のセッションタイムアウト時間 | + +## エンドポイント {#endpoints} + +### ダッシュボード {#dashboard} + +- **Path**: `/dashboard` +- **Method**: GET +- **Description**: Keeper の監視と管理のための埋め込み Web ダッシュボードを返します + +このダッシュボードでは、次の機能を提供します。 + +- クラスタ状態のリアルタイムな可視化 +- ノード監視(ロール、レイテンシ、接続状況) +- ストレージブラウザー +- コマンド実行用インターフェース + +### Readiness Probe {#readiness-probe} + +* **パス**: `/ready`(設定可能) +* **メソッド**: GET +* **説明**: ヘルスチェック用のエンドポイント + +成功時のレスポンス(HTTP 200): + +```json +{ + "status": "ok", + "details": { + "role": "leader", + "hasLeader": true + } +} +``` + + +### Commands API {#commands-api} + +* **Path**: `/api/v1/commands/{command}` +* **Methods**: GET, POST +* **Description**: Four-Letter Word コマンドまたは ClickHouse Keeper Client CLI コマンドを実行します + +Query parameters: + +* `command` - 実行するコマンド +* `cwd` - パスベースのコマンドで使用する作業ディレクトリ (デフォルト: `/`) + +Examples: + +```bash +# Four-Letter Word command +curl http://localhost:9182/api/v1/commands/stat + +# ZooKeeper CLI command +curl "http://localhost:9182/api/v1/commands/ls?command=ls%20'/'&cwd=/" +``` + + +### Storage API {#storage-api} + +- **Base Path**: `/api/v1/storage` +- **Description**: Keeper のストレージ操作用 REST API + +Storage API は REST の慣習に従い、HTTP メソッドで操作種別を表現します: + +| Operation | Path | Method | Status Code | Description | +|-----------|--------------------------------------------|--------|-------------|----------------------------| +| Get | `/api/v1/storage/{path}` | GET | 200 | ノードデータを取得 | +| List | `/api/v1/storage/{path}?children=true` | GET | 200 | 子ノードを一覧表示 | +| Exists | `/api/v1/storage/{path}` | HEAD | 200 | ノードの存在を確認 | +| Create | `/api/v1/storage/{path}` | POST | 201 | 新規ノードを作成 | +| Update | `/api/v1/storage/{path}?version={v}` | PUT | 200 | ノードデータを更新 | +| Delete | `/api/v1/storage/{path}?version={v}` | DELETE | 204 | ノードを削除 | \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/operations/utilities/index.md b/i18n/jp/docusaurus-plugin-content-docs/current/operations/utilities/index.md index ed37c1d7e78..622bb7ba6dc 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/operations/utilities/index.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/operations/utilities/index.md @@ -17,4 +17,6 @@ doc_type: 'landing-page' |[ClickHouse compressor](../../operations/utilities/clickhouse-compressor.md) | データを圧縮および解凍します。| | [clickhouse-disks](../../operations/utilities/clickhouse-disks.md) | 複数の ClickHouse ディスク間で、ファイルに対するファイルシステムのような操作を提供します。| | [clickhouse-odbc-bridge](../../operations/utilities/odbc-bridge.md) | ODBC ドライバー用のプロキシサーバーです。| -| [clickhouse_backupview](../../operations/utilities/backupview.md) | ClickHouse のバックアップを解析するための Python モジュールです。| \ No newline at end of file +| [clickhouse_backupview](../../operations/utilities/backupview.md) | ClickHouse のバックアップを解析するための Python モジュールです。| +| [clickhouse-keeper-client](../../operations/utilities/clickhouse-keeper-client.md) | ClickHouse Keeper と対話するためのクライアントアプリケーションです。| +| [Keeper HTTP API](../../operations/utilities/clickhouse-keeper-http-api.md) | ClickHouse Keeper 用の HTTP API および組み込みダッシュボードです。| \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/data-types/map.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/data-types/map.md index d2437f9e265..98ba9b01ca6 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/data-types/map.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/data-types/map.md @@ -48,7 +48,7 @@ SELECT m['key2'] FROM tab; ``` 指定したキー `k` がマップ内に含まれていない場合、`m[k]` は値型のデフォルト値を返します。例えば、整数型なら `0`、文字列型なら `''` です。 -マップ内にキーが存在するかどうかを確認するには、[mapContains](../../sql-reference/functions/tuple-map-functions#mapcontains) 関数を使用します。 +マップ内にキーが存在するかどうかを確認するには、[mapContains](/sql-reference/functions/tuple-map-functions#mapContainsKey) 関数を使用します。 ```sql CREATE TABLE tab (m Map(String, UInt64)) ENGINE=Memory; @@ -56,7 +56,7 @@ INSERT INTO tab VALUES ({'key1':100}), ({}); SELECT m['key1'] FROM tab; ``` -結果: +結果: ```text ┌─arrayElement(m, 'key1')─┐ diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/other-functions.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/other-functions.md index f1099c0adba..db027648236 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/other-functions.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/other-functions.md @@ -1547,7 +1547,11 @@ FROM numbers(5); 導入バージョン: v25.10 -Point、Ring、Polygon、または MultiPolygon の座標を反転します。Point の場合は座標値を入れ替えます。配列の場合は、各座標ペアに対して同じ変換を再帰的に適用します。 +ジオメトリオブジェクトの x 座標と y 座標を反転します。この操作により緯度と経度が入れ替わるため、異なる座標系間の変換や座標順序の修正に役立ちます。 + +Point の場合は x 座標と y 座標を入れ替えます。複雑なジオメトリ(LineString、Polygon、MultiPolygon、Ring、MultiLineString)の場合は、各座標ペアに対してこの変換を再帰的に適用します。 + +この関数は、個々のジオメトリ型(Point、Ring、Polygon、MultiPolygon、LineString、MultiLineString)と Geometry バリアント型の両方をサポートします。 **構文** @@ -1557,11 +1561,11 @@ flipCoordinates(geometry) **引数** -* `geometry` — 変換するジオメトリ。サポートされる型: Point (Tuple(Float64, Float64))、Ring (Array(Point))、Polygon (Array(Ring))、MultiPolygon (Array(Polygon))。 +* `geometry` — 変換するジオメトリ。サポートされる型: Point (Tuple(Float64, Float64))、Ring (Array(Point))、Polygon (Array(Ring))、MultiPolygon (Array(Polygon))、LineString (Array(Point))、MultiLineString (Array(LineString))、または Geometry (これらのいずれかの型を含む Variant 型)。 **戻り値** -座標が反転されたジオメトリ。型は入力と同じです。[`Point`](/sql-reference/data-types/geo#point) または [`Ring`](/sql-reference/data-types/geo#ring) または [`Polygon`](/sql-reference/data-types/geo#polygon) または [`MultiPolygon`](/sql-reference/data-types/geo#multipolygon)。 +座標が反転されたジオメトリ。型は入力と同じです。[`Point`](/sql-reference/data-types/geo#point) または [`Ring`](/sql-reference/data-types/geo#ring) または [`Polygon`](/sql-reference/data-types/geo#polygon) または [`MultiPolygon`](/sql-reference/data-types/geo#multipolygon) または [`LineString`](/sql-reference/data-types/geo#linestring) または [`MultiLineString`](/sql-reference/data-types/geo#multilinestring) または [`Geometry`](/sql-reference/data-types/geo)。 **例** @@ -1595,6 +1599,27 @@ SELECT flipCoordinates([[(1.0, 2.0), (3.0, 4.0)], [(5.0, 6.0), (7.0, 8.0)]]); [[(2.0, 1.0), (4.0, 3.0)], [(6.0, 5.0), (8.0, 7.0)]] ``` +**geometry_wkt** + +```sql title=Query +SELECT flipCoordinates(readWkt('POINT(10 20)')); +``` + +```response title=Response +(20, 10) +``` + +**geometry_polygon_wkt** + +```sql title=Query +SELECT flipCoordinates(readWkt('POLYGON((0 0, 5 0, 5 5, 0 5, 0 0))')); +``` + +```response title=Response +[[(0, 0), (0, 5), (5, 5), (5, 0), (0, 0)]] +``` + + ## formatQuery {#formatQuery} 導入バージョン: v diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/string-search-functions.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/string-search-functions.md index 1c6accc8c46..1ef3d89e89c 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/string-search-functions.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/string-search-functions.md @@ -15,7 +15,7 @@ doc_type: 'reference' ::: このセクションの関数は、検索対象の文字列(このセクションでは `haystack` と呼ぶ)と検索文字列(`needle` と呼ぶ)が、1 バイトでエンコードされたテキストであることも前提としています。この前提が満たされない場合でも、例外はスローされず、結果は未定義です。UTF-8 エンコードされた文字列での検索は、通常は別の関数バリアントとして提供されます。同様に、UTF-8 用の関数バリアントを使用している場合に、入力文字列が UTF-8 エンコードされたテキストでなくても、例外はスローされず、結果は未定義です。自動的な Unicode 正規化は行われませんが、必要に応じて -[normalizeUTF8*()](https://clickhouse.com../functions/string-functions/) 関数を使用できます。 +[normalizeUTF8*()](/sql-reference/functions/string-functions#normalizeUTF8NFC) 関数を使用できます。 [一般的な文字列関数](string-functions.md)と[文字列置換用の関数](string-replace-functions.md)については別途説明します。 diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md index 7779b0a4d81..604e953ca16 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md @@ -1,1143 +1,11 @@ --- -description: 'タプルマップ関数のドキュメント' -sidebar_label: 'マップ' +description: 'タプル Map 関数のドキュメント' +sidebar_label: 'Map' slug: /sql-reference/functions/tuple-map-functions -title: 'マップ関数' +title: 'Map 関数' doc_type: 'reference' --- -## map {#map} - -キーと値のペアから、[Map(key, value)](../data-types/map.md) 型の値を作成します。 - -**構文** - -```sql -map(key1, value1[, key2, value2, ...]) -``` - -**引数** - -* `key_n` — マップエントリのキー。[Map](../data-types/map.md) のキー型としてサポートされる任意の型。 -* `value_n` — マップエントリの値。[Map](../data-types/map.md) の値型としてサポートされる任意の型。 - -**返り値** - -* `key:value` ペアを含むマップ。[Map(key, value)](../data-types/map.md)。 - -**例** - -クエリ: - -```sql -SELECT map('key1', number, 'key2', number * 2) FROM numbers(3); -``` - -結果: - -```text -┌─map('key1', number, 'key2', multiply(number, 2))─┐ -│ {'key1':0,'key2':0} │ -│ {'key1':1,'key2':2} │ -│ {'key1':2,'key2':4} │ -└──────────────────────────────────────────────────┘ -``` - -## mapFromArrays {#mapfromarrays} - -キーの配列またはマップと値の配列またはマップから map を作成します。 - -この関数は、構文 `CAST([...], 'Map(key_type, value_type)')` の便利な代替手段です。 -たとえば、次のように記述する代わりに - -* `CAST((['aa', 'bb'], [4, 5]), 'Map(String, UInt32)')` や -* `CAST([('aa',4), ('bb',5)], 'Map(String, UInt32)')` - -`mapFromArrays(['aa', 'bb'], [4, 5])` と記述できます。 - -**構文** - -```sql -mapFromArrays(keys, values) -``` - -Alias: `MAP_FROM_ARRAYS(keys, values)` - -**引数** - -* `keys` — マップを作成するためのキーの配列またはマップ。[Array](../data-types/array.md) または [Map](../data-types/map.md) 型です。`keys` が配列の場合、その型として `Array(Nullable(T))` または `Array(LowCardinality(Nullable(T)))` を、NULL 値を含まない限り使用できます。 -* `values` - マップを作成するための値の配列またはマップ。[Array](../data-types/array.md) または [Map](../data-types/map.md) 型です。 - -**戻り値** - -* キー配列および値配列/マップから構築されたマップ。 - -**例** - -クエリ: - -```sql -SELECT mapFromArrays(['a', 'b', 'c'], [1, 2, 3]) -``` - -結果: - -```response -┌─mapFromArrays(['a', 'b', 'c'], [1, 2, 3])─┐ -│ {'a':1,'b':2,'c':3} │ -└───────────────────────────────────────────┘ -``` - -`mapFromArrays` は、[Map](../data-types/map.md) 型の引数も受け付けます。これらは、実行時にタプルの配列にキャストされます。 - -```sql -SELECT mapFromArrays([1, 2, 3], map('a', 1, 'b', 2, 'c', 3)) -``` - -結果: - -```response -┌─mapFromArrays([1, 2, 3], map('a', 1, 'b', 2, 'c', 3))─┐ -│ {1:('a',1),2:('b',2),3:('c',3)} │ -└───────────────────────────────────────────────────────┘ -``` - -```sql -SELECT mapFromArrays(map('a', 1, 'b', 2, 'c', 3), [1, 2, 3]) -``` - -結果: - -```response -┌─mapFromArrays(map('a', 1, 'b', 2, 'c', 3), [1, 2, 3])─┐ -│ {('a',1):1,('b',2):2,('c',3):3} │ -└───────────────────────────────────────────────────────┘ -``` - -## extractKeyValuePairs {#extractkeyvaluepairs} - -キーと値のペアからなる文字列を [Map(String, String)](../data-types/map.md) に変換します。 -パース処理は(ログファイルなどの)ノイズに対して寛容です。 -入力文字列中のキーと値のペアは、キー、キーと値の区切り文字、それに続く値から構成されます。 -キーと値のペア同士は、ペア区切り文字で区切られます。 -キーと値は引用符で囲むことができます。 - -**構文** - -```sql -extractKeyValuePairs(data[, key_value_delimiter[, pair_delimiter[, quoting_character[, unexpected_quoting_character_strategy]]]) -``` - -Alias: - -* `str_to_map` -* `mapFromString` - -**引数** - -* `data` - キーと値のペアを抽出する対象の文字列。[String](../data-types/string.md) または [FixedString](../data-types/fixedstring.md)。 -* `key_value_delimiter` - キーと値を区切る 1 文字の区切り文字。デフォルトは `:`。[String](../data-types/string.md) または [FixedString](../data-types/fixedstring.md)。 -* `pair_delimiters` - ペア同士を区切る文字の集合。デフォルトは ` `、`,`、`;`。[String](../data-types/string.md) または [FixedString](../data-types/fixedstring.md)。 -* `quoting_character` - クオート文字として使われる 1 文字。デフォルトは `"`. [String](../data-types/string.md) または [FixedString](../data-types/fixedstring.md)。 -* `unexpected_quoting_character_strategy` - `read_key` と `read_value` フェーズで、予期しない位置に現れたクオート文字をどのように扱うかの戦略。指定可能な値: `invalid`, `accept`, `promote`。`invalid` はキー/値を破棄し、`WAITING_KEY` 状態に戻る。`accept` は通常の文字として扱う。`promote` は `READ_QUOTED_{KEY/VALUE}` 状態に遷移し、次の文字から読み取りを再開する。 - -**返り値** - -* キーと値のペアの集合。型: [Map(String, String)](../data-types/map.md) - -**使用例** - -クエリ - -```sql -SELECT extractKeyValuePairs('name:neymar, age:31 team:psg,nationality:brazil') AS kv -``` - -結果: - -```Result: -┌─kv──────────────────────────────────────────────────────────────────────┐ -│ {'name':'neymar','age':'31','team':'psg','nationality':'brazil'} │ -└─────────────────────────────────────────────────────────────────────────┘ -``` - -引用文字としてシングルクォート(`'`)を使用する場合: - -```sql -SELECT extractKeyValuePairs('name:\'neymar\';\'age\':31;team:psg;nationality:brazil,last_key:last_value', ':', ';,', '\'') AS kv -``` - -結果: - -```text -┌─kv───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ -│ {'name':'neymar','age':'31','team':'psg','nationality':'brazil','last_key':'last_value'} │ -└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ -``` - -unexpected_quoting_character_strategy の設定例: - -unexpected_quoting_character_strategy=invalid - -```sql -SELECT extractKeyValuePairs('name"abc:5', ':', ' ,;', '\"', 'INVALID') AS kv; -``` - -```text -┌─kv────────────────┐ -│ {'abc':'5'} │ -└───────────────────┘ -``` - -```sql -SELECT extractKeyValuePairs('name"abc":5', ':', ' ,;', '\"', 'INVALID') AS kv; -``` - -```text -┌─kv──┐ -│ {} │ -└─────┘ -``` - -unexpected_quoting_character_strategy=accept - -```sql -SELECT extractKeyValuePairs('name"abc:5', ':', ' ,;', '\"', 'ACCEPT') AS kv; -``` - -```text -┌─kv────────────────┐ -│ {'name"abc':'5'} │ -└───────────────────┘ -``` - -```sql -SELECT extractKeyValuePairs('name"abc":5', ':', ' ,;', '\"', 'ACCEPT') AS kv; -``` - -```text -┌─kv─────────────────┐ -│ {'name"abc"':'5'} │ -└────────────────────┘ -``` - -unexpected_quoting_character_strategy=promote - -```sql -SELECT extractKeyValuePairs('name"abc:5', ':', ' ,;', '\"', 'PROMOTE') AS kv; -``` - -```text -┌─kv──┐ -│ {} │ -└─────┘ -``` - -```sql -SELECT extractKeyValuePairs('name"abc":5', ':', ' ,;', '\"', 'PROMOTE') AS kv; -``` - -```text -┌─kv───────────┐ -│ {'abc':'5'} │ -└──────────────┘ -``` - -エスケープシーケンス(エスケープシーケンス非対応環境向け): - -```sql -SELECT extractKeyValuePairs('age:a\\x0A\\n\\0') AS kv -``` - -結果: - -```text -┌─kv─────────────────────┐ -│ {'age':'a\\x0A\\n\\0'} │ -└────────────────────────┘ -``` - -`toString` でシリアライズされた map の文字列キーと値のペアを復元するには、次のようにします。 - -```sql -SELECT - map('John', '33', 'Paula', '31') AS m, - toString(m) AS map_serialized, - extractKeyValuePairs(map_serialized, ':', ',', '\'') AS map_restored -FORMAT Vertical; -``` - -結果: - -```response -行 1: -────── -m: {'John':'33','Paula':'31'} -map_serialized: {'John':'33','Paula':'31'} -map_restored: {'John':'33','Paula':'31'} -``` - -## extractKeyValuePairsWithEscaping {#extractkeyvaluepairswithescaping} - -`extractKeyValuePairs` と同様ですが、エスケープシーケンスに対応しています。 - -サポートされるエスケープシーケンス: `\x`, `\N`, `\a`, `\b`, `\e`, `\f`, `\n`, `\r`, `\t`, `\v`, `\0`。 -標準的でないエスケープシーケンスは、次のいずれかの場合を除き、そのまま(バックスラッシュを含めて)返されます: -`\\`, `'`, `"`, `backtick`, `/`, `=` または ASCII 制御文字 (c <= 31)。 - -この関数は、事前エスケープや事後エスケープでは対処できないユースケースに適しています。たとえば、次の -入力文字列を考えます: `a: "aaaa\"bbb"`。期待される出力は: `a: aaaa\"bbbb` です。 - -* 事前エスケープ: 事前エスケープすると出力は `a: "aaaa"bbb"` となり、その後 `extractKeyValuePairs` は `a: aaaa` を出力します -* 事後エスケープ: `extractKeyValuePairs` は `a: aaaa\` を出力し、事後エスケープではそれをそのまま保持します。 - -キー内の先頭のエスケープシーケンスはスキップされ、値に対しては無効とみなされます。 - -**例** - -エスケープシーケンスのサポートを有効にした場合の動作例: - -```sql -SELECT extractKeyValuePairsWithEscaping('age:a\\x0A\\n\\0') AS kv -``` - -結果: - -```response -┌─kv────────────────┐ -│ {'age':'a\n\n\0'} │ -└───────────────────┘ -``` - -## mapAdd {#mapadd} - -すべてのキーを集めて、それぞれに対応する値を合計します。 - -**構文** - -```sql -mapAdd(arg1, arg2 [, ...]) -``` - -**引数** - -引数は、2 つの[配列](/sql-reference/data-types/array)から構成される[map](../data-types/map.md)または[tuple](/sql-reference/data-types/tuple)であり、最初の配列の要素がキーを表し、2 番目の配列に各キーに対応する値が含まれます。すべてのキー配列は同じ型でなければならず、すべての値配列は 1 つの型([Int64](/sql-reference/data-types/int-uint#integer-ranges)、[UInt64](/sql-reference/data-types/int-uint#integer-ranges)、または [Float64](/sql-reference/data-types/float))へと昇格可能な要素を含んでいる必要があります。共通の昇格後の型が、結果配列の型として使用されます。 - -**戻り値** - -* 引数に応じて、最初の配列にソート済みのキーを含み、2 番目の配列に値を含む [map](../data-types/map.md) または [tuple](/sql-reference/data-types/tuple) を 1 つ返します。 - -**例** - -`Map` 型を使ったクエリ: - -```sql -SELECT mapAdd(map(1,1), map(1,1)); -``` - -結果: - -```text -┌─mapAdd(map(1, 1), map(1, 1))─┐ -│ {1:2} │ -└──────────────────────────────┘ -``` - -タプルを用いたクエリ: - -```sql -SELECT mapAdd(([toUInt8(1), 2], [1, 1]), ([toUInt8(1), 2], [1, 1])) AS res, toTypeName(res) AS type; -``` - -結果: - -```text -┌─res───────────┬─type───────────────────────────────┐ -│ ([1,2],[2,2]) │ Tuple(Array(UInt8), Array(UInt64)) │ -└───────────────┴────────────────────────────────────┘ -``` - -## mapSubtract {#mapsubtract} - -すべてのキーを集約し、対応する値の差を取ります。 - -**構文** - -```sql -mapSubtract(Tuple(Array, Array), Tuple(Array, Array) [, ...]) -``` - -**引数** - -引数は 2 つの [配列](/sql-reference/data-types/array)から構成される [map](../data-types/map.md) または [tuple](/sql-reference/data-types/tuple) であり、1 つ目の配列の要素がキーを表し、2 つ目の配列が各キーに対応する値を含みます。すべてのキー配列は同じ型である必要があり、すべての値配列は 1 つの共通の型([Int64](/sql-reference/data-types/int-uint#integer-ranges)、[UInt64](/sql-reference/data-types/int-uint#integer-ranges)、または [Float64](/sql-reference/data-types/float))へ昇格される要素を含んでいる必要があります。この共通の昇格後の型が、結果配列の型として使用されます。 - -**戻り値** - -* 引数に応じて 1 つの [map](../data-types/map.md) または [tuple](/sql-reference/data-types/tuple) を返し、1 つ目の配列にはソートされたキーが、2 つ目の配列には値が含まれます。 - -**例** - -`Map` 型を使用したクエリ: - -```sql -SELECT mapSubtract(map(1,1), map(1,1)); -``` - -結果: - -```text -┌─mapSubtract(map(1, 1), map(1, 1))─┐ -│ {1:0} │ -└───────────────────────────────────┘ -``` - -タプルマップを使用したクエリ: - -```sql -SELECT mapSubtract(([toUInt8(1), 2], [toInt32(1), 1]), ([toUInt8(1), 2], [toInt32(2), 1])) AS res, toTypeName(res) AS type; -``` - -結果: - -```text -┌─res────────────┬─type──────────────────────────────┐ -│ ([1,2],[-1,0]) │ Tuple(Array(UInt8), Array(Int64)) │ -└────────────────┴───────────────────────────────────┘ -``` - -## mapPopulateSeries {#mappopulateseries} - -整数キーを持つマップで、欠損しているキーと値のペアを補完します。 -最大値を超えてキーを拡張できるように、最大キーを指定することができます。 -より正確には、この関数は、キーが最小キーから最大キー(指定されていれば引数 `max`)までステップ幅 1 の数列を成し、それぞれに対応する値を持つマップを返します。 -あるキーに対して値が指定されていない場合、そのキーの値としてデフォルト値が使用されます。 -キーが重複している場合、そのキーには(出現順に)最初の値のみが対応付けられます。 - -**構文** - -```sql -mapPopulateSeries(map[, max]) -mapPopulateSeries(keys, values[, max]) -``` - -配列引数の場合、各行ごとに `keys` と `values` の要素数は同じでなければなりません。 - -**Arguments** - -引数は [Maps](../data-types/map.md) か、または 2 つの [Arrays](/sql-reference/data-types/array) で、1 つ目と 2 つ目の配列にはそれぞれキーと、その各キーに対応する値が含まれます。 - -マップされた配列: - -* `map` — 整数キーを持つ Map。 [Map](../data-types/map.md)。 - -または - -* `keys` — キーの配列。 [Array](/sql-reference/data-types/array)([Int](/sql-reference/data-types/int-uint#integer-ranges))。 -* `values` — 値の配列。 [Array](/sql-reference/data-types/array)([Int](/sql-reference/data-types/int-uint#integer-ranges))。 -* `max` — キーの最大値。省略可能。 [Int8, Int16, Int32, Int64, Int128, Int256](/sql-reference/data-types/int-uint#integer-ranges)。 - -**Returned value** - -* 引数に応じて、[Map](../data-types/map.md) または 2 つの [Arrays](/sql-reference/data-types/array) からなる [Tuple](/sql-reference/data-types/tuple) が返されます。前者はソート済みのキー、後者はそれぞれのキーに対応する値です。 - -**Example** - -`Map` 型を使ったクエリ: - -```sql -SELECT mapPopulateSeries(map(1, 10, 5, 20), 6); -``` - -結果: - -```text -┌─mapPopulateSeries(map(1, 10, 5, 20), 6)─┐ -│ {1:10,2:0,3:0,4:0,5:20,6:0} │ -└─────────────────────────────────────────┘ -``` - -マッピングされた配列に対するクエリ: - -```sql -SELECT mapPopulateSeries([1,2,4], [11,22,44], 5) AS res, toTypeName(res) AS type; -``` - -結果: - -```text -┌─res──────────────────────────┬─type──────────────────────────────┐ -│ ([1,2,3,4,5],[11,22,0,44,0]) │ Tuple(Array(UInt8), Array(UInt8)) │ -└──────────────────────────────┴───────────────────────────────────┘ -``` - -## mapKeys {#mapkeys} - -指定された map のキーを返します。 - -この関数は、setting [optimize_functions_to_subcolumns](/operations/settings/settings#optimize_functions_to_subcolumns) を有効にすることで最適化できます。 -この setting を有効にすると、この関数は map 全体ではなく [keys](/sql-reference/data-types/map#reading-subcolumns-of-map) サブカラムだけを読み取ります。 -クエリ `SELECT mapKeys(m) FROM table` は `SELECT m.keys FROM table` に変換されます。 - -**構文** - -```sql -mapKeys(map) -``` - -**引数** - -* `map` — マップ。[Map](../data-types/map.md)。 - -**返される値** - -* `map` に含まれるすべてのキーを含む配列。[Array](../data-types/array.md)。 - -**例** - -クエリ: - -```sql -CREATE TABLE tab (a Map(String, String)) ENGINE = Memory; - -INSERT INTO tab VALUES ({'name':'eleven','age':'11'}), ({'number':'twelve','position':'6.0'}); - -SELECT mapKeys(a) FROM tab; -``` - -結果: - -```text -┌─mapKeys(a)────────────┐ -│ ['name','age'] │ -│ ['number','position'] │ -└───────────────────────┘ -``` - -## mapContains {#mapcontains} - -指定したマップに指定したキーが含まれているかどうかを返します。 - -**構文** - -```sql -mapContains(map, key) -``` - -エイリアス: `mapContainsKey(map, key)` - -**引数** - -* `map` — マップ。[Map](../data-types/map.md)。 -* `key` — キー。型は `map` のキー型と一致している必要があります。 - -**返り値** - -* `map` に `key` が含まれていれば `1`、含まれていなければ `0`。[UInt8](../data-types/int-uint.md)。 - -**例** - -クエリ: - -```sql -CREATE TABLE tab (a Map(String, String)) ENGINE = Memory; - -INSERT INTO tab VALUES ({'name':'eleven','age':'11'}), ({'number':'twelve','position':'6.0'}); - -SELECT mapContains(a, 'name') FROM tab; - -``` - -結果: - -```text -┌─mapContains(a, 'name')─┐ -│ 1 │ -│ 0 │ -└────────────────────────┘ -``` - -## mapContainsKeyLike {#mapcontainskeylike} - -**構文** - -```sql -mapContainsKeyLike(map, pattern) -``` - -**引数** - -* `map` — Map 型。[Map](../data-types/map.md)。 -* `pattern` - マッチさせる文字列パターン。 - -**戻り値** - -* `map` が指定されたパターンにマッチする `key` を含む場合は `1`、含まない場合は `0`。 - -**例** - -クエリ: - -```sql -CREATE TABLE tab (a Map(String, String)) ENGINE = Memory; - -INSERT INTO tab VALUES ({'abc':'abc','def':'def'}), ({'hij':'hij','klm':'klm'}); - -SELECT mapContainsKeyLike(a, 'a%') FROM tab; -``` - -結果: - -```text -┌─mapContainsKeyLike(a, 'a%')─┐ -│ 1 │ -│ 0 │ -└─────────────────────────────┘ -``` - -## mapExtractKeyLike {#mapextractkeylike} - -文字列キーを持つ `Map` と LIKE パターンが与えられると、この関数はキーがそのパターンに一致する要素のみを含む `Map` を返します。 - -**構文** - -```sql -mapExtractKeyLike(map, pattern) -``` - -**引数** - -* `map` — Map 型。[Map](../data-types/map.md)。 -* `pattern` - マッチさせる文字列パターン。 - -**戻り値** - -* 指定したパターンに一致するキーを持つ要素のみを含む Map。一致する要素がない場合は、空の Map が返されます。 - -**例** - -クエリ: - -```sql -CREATE TABLE tab (a Map(String, String)) ENGINE = Memory; - -INSERT INTO tab VALUES ({'abc':'abc','def':'def'}), ({'hij':'hij','klm':'klm'}); - -SELECT mapExtractKeyLike(a, 'a%') FROM tab; -``` - -結果: - -```text -┌─mapExtractKeyLike(a, 'a%')─┐ -│ {'abc':'abc'} │ -│ {} │ -└────────────────────────────┘ -``` - -## mapValues {#mapvalues} - -指定された map の値を返します。 - -この関数は、設定 [optimize_functions_to_subcolumns](/operations/settings/settings#optimize_functions_to_subcolumns) を有効にすることで最適化できます。 -この設定を有効にすると、関数は map 全体ではなく、[values](/sql-reference/data-types/map#reading-subcolumns-of-map) サブカラムのみを読み取ります。 -クエリ `SELECT mapValues(m) FROM table` は `SELECT m.values FROM table` に変換されます。 - -**構文** - -```sql -mapValues(map) -``` - -**引数** - -* `map` — Map 型。[Map](../data-types/map.md)。 - -**戻り値** - -* `map` に含まれるすべての値を格納した配列。[Array](../data-types/array.md)。 - -**例** - -クエリ: - -```sql -CREATE TABLE tab (a Map(String, String)) ENGINE = Memory; - -INSERT INTO tab VALUES ({'name':'eleven','age':'11'}), ({'number':'twelve','position':'6.0'}); - -SELECT mapValues(a) FROM tab; -``` - -結果: - -```text -┌─mapValues(a)─────┐ -│ ['eleven','11'] │ -│ ['twelve','6.0'] │ -└──────────────────┘ -``` - -## mapContainsValue {#mapcontainsvalue} - -指定した map に指定したキーが含まれているかどうかを返します。 - -**構文** - -```sql -mapContainsValue(map, value) -``` - -別名: `mapContainsValue(map, value)` - -**引数** - -* `map` — マップ。[Map](../data-types/map.md)。 -* `value` — 値。型は `map` の値の型と一致している必要があります。 - -**戻り値** - -* `map` に `value` が含まれていれば `1`、含まれていなければ `0`。[UInt8](../data-types/int-uint.md)。 - -**例** - -クエリ: - -```sql -CREATE TABLE tab (a Map(String, String)) ENGINE = Memory; - -INSERT INTO tab VALUES ({'name':'eleven','age':'11'}), ({'number':'twelve','position':'6.0'}); - -SELECT mapContainsValue(a, '11') FROM tab; - -``` - -結果: - -```text -┌─mapContainsValue(a, '11')─┐ -│ 1 │ -│ 0 │ -└───────────────────────────┘ -``` - -## mapContainsValueLike {#mapcontainsvaluelike} - -**構文** - -```sql -mapContainsValueLike(map, pattern) -``` - -**引数** - -* `map` — Map。 [Map](../data-types/map.md)。 -* `pattern` - 照合する文字列パターン。 - -**返り値** - -* `map` に、指定したパターンにマッチする `value` が含まれていれば `1`、含まれていなければ `0`。 - -**例** - -クエリ: - -```sql -CREATE TABLE tab (a Map(String, String)) ENGINE = Memory; - -INSERT INTO tab VALUES ({'abc':'abc','def':'def'}), ({'hij':'hij','klm':'klm'}); - -SELECT mapContainsValueLike(a, 'a%') FROM tab; -``` - -結果: - -```text -┌─mapContainsV⋯ke(a, 'a%')─┐ -│ 1 │ -│ 0 │ -└──────────────────────────┘ -``` - -## mapExtractValueLike {#mapextractvaluelike} - -文字列値を持つ Map と LIKE パターンを指定すると、この関数は値がパターンにマッチする要素のみを含む Map を返します。 - -**構文** - -```sql -mapExtractValueLike(map, pattern) -``` - -**引数** - -* `map` — Map。[Map](../data-types/map.md)。 -* `pattern` - 照合する文字列パターン。 - -**返り値** - -* 値が指定したパターンに一致する要素を含む map。パターンに一致する要素がない場合は、空の map が返されます。 - -**例** - -クエリ: - -```sql -CREATE TABLE tab (a Map(String, String)) ENGINE = Memory; - -INSERT INTO tab VALUES ({'abc':'abc','def':'def'}), ({'hij':'hij','klm':'klm'}); - -SELECT mapExtractValueLike(a, 'a%') FROM tab; -``` - -結果: - -```text -┌─mapExtractValueLike(a, 'a%')─┐ -│ {'abc':'abc'} │ -│ {} │ -└──────────────────────────────┘ -``` - -## mapApply {#mapapply} - -map の各要素に関数を適用します。 - -**構文** - -```sql -mapApply(func, map) -``` - -**引数** - -* `func` — [ラムダ関数](/sql-reference/functions/overview#higher-order-functions)。 -* `map` — [Map](../data-types/map.md)。 - -**返り値** - -* 各要素に対して `func(map1[i], ..., mapN[i])` を適用することで、元のマップから得られるマップを返します。 - -**例** - -クエリ: - -```sql -SELECT mapApply((k, v) -> (k, v * 10), _map) AS r -FROM -( - SELECT map('key1', number, 'key2', number * 2) AS _map - FROM numbers(3) -) -``` - -結果: - -```text -┌─r─────────────────────┐ -│ {'key1':0,'key2':0} │ -│ {'key1':10,'key2':20} │ -│ {'key1':20,'key2':40} │ -└───────────────────────┘ -``` - -## mapFilter {#mapfilter} - -マップの各要素に関数を適用してフィルタリングします。 - -**構文** - -```sql -mapFilter(func, map) -``` - -**引数** - -* `func` - [ラムダ関数](/sql-reference/functions/overview#higher-order-functions)。 -* `map` — [Map](../data-types/map.md)。 - -**戻り値** - -* `func(map1[i], ..., mapN[i])` が 0 以外の値を返す要素のみを含む `map` を返します。 - -**例** - -クエリ: - -```sql -SELECT mapFilter((k, v) -> ((v % 2) = 0), _map) AS r -FROM -( - SELECT map('key1', number, 'key2', number * 2) AS _map - FROM numbers(3) -) -``` - -結果: - -```text -┌─r───────────────────┐ -│ {'key1':0,'key2':0} │ -│ {'key2':2} │ -│ {'key1':2,'key2':4} │ -└─────────────────────┘ -``` - -## mapUpdate {#mapupdate} - -**構文** - -```sql -mapUpdate(map1, map2) -``` - -**引数** - -* `map1` [Map](../data-types/map.md)。 -* `map2` [Map](../data-types/map.md)。 - -**戻り値** - -* `map2` の対応するキーの値で値を更新した `map1` を返します。 - -**例** - -クエリ: - -```sql -SELECT mapUpdate(map('key1', 0, 'key3', 0), map('key1', 10, 'key2', 10)) AS map; -``` - -結果: - -```text -┌─map────────────────────────────┐ -│ {'key3':0,'key1':10,'key2':10} │ -└────────────────────────────────┘ -``` - -## mapConcat {#mapconcat} - -キーの一致に基づいて複数の map を連結します。 -同じキーを持つ要素が複数の入力 map に存在する場合、すべての要素が結果の map に追加されますが、`[]` 演算子でアクセスできるのは最初の要素のみです。 - -**構文** - -```sql -mapConcat(maps) -``` - -**引数** - -* `maps` – 任意数の[Map](../data-types/map.md)。 - -**返される値** - -* 引数として渡された Map を連結した結果の Map を返します。 - -**例** - -クエリ: - -```sql -SELECT mapConcat(map('key1', 1, 'key3', 3), map('key2', 2)) AS map; -``` - -結果: - -```text -┌─map──────────────────────────┐ -│ {'key1':1,'key3':3,'key2':2} │ -└──────────────────────────────┘ -``` - -クエリ: - -```sql -SELECT mapConcat(map('key1', 1, 'key2', 2), map('key1', 3)) AS map, map['key1']; -``` - -結果: - -```text -┌─map──────────────────────────┬─elem─┐ -│ {'key1':1,'key2':2,'key1':3} │ 1 │ -└──────────────────────────────┴──────┘ -``` - -## mapExists([func,], map) {#mapexistsfunc-map} - -`map` 内の少なくとも1つのキーと値のペアについて、`func(key, value)` が0以外を返す場合は1を返します。そうでない場合は0を返します。 - -:::note -`mapExists` は[高階関数](/sql-reference/functions/overview#higher-order-functions)です。 -第1引数としてラムダ関数を渡すことができます。 -::: - -**例** - -クエリ: - -```sql -SELECT mapExists((k, v) -> (v = 1), map('k1', 1, 'k2', 2)) AS res -``` - -結果: - -```response -┌─res─┐ -│ 1 │ -└─────┘ -``` - -## mapAll([func,] map) {#mapallfunc-map} - -`map` 内のすべてのキーと値のペアに対して `func(key, value)` が 0 以外の値を返す場合は 1 を返し、そうでない場合は 0 を返します。 - -:::note -`mapAll` は [高階関数](/sql-reference/functions/overview#higher-order-functions) です。 -第 1 引数としてラムダ関数を渡すことができます。 -::: - -**例** - -クエリ: - -```sql -SELECT mapAll((k, v) -> (v = 1), map('k1', 1, 'k2', 2)) AS res -``` - -結果: - -```response -┌─res─┐ -│ 0 │ -└─────┘ -``` - -## mapSort([func,], map) {#mapsortfunc-map} - -map の要素を昇順に並べ替えます。 -`func` 関数が指定されている場合、map のキーと値に `func` 関数を適用した結果によって並べ替え順が決定されます。 - -**例** - -```sql -SELECT mapSort(map('key2', 2, 'key3', 1, 'key1', 3)) AS map; -``` - -```text -┌─map──────────────────────────┐ -│ {'key1':3,'key2':2,'key3':1} │ -└──────────────────────────────┘ -``` - -```sql -SELECT mapSort((k, v) -> v, map('key2', 2, 'key3', 1, 'key1', 3)) AS map; -``` - -```text -┌─map──────────────────────────┐ -│ {'key3':1,'key2':2,'key1':3} │ -└──────────────────────────────┘ -``` - -詳細については、`arraySort` 関数の[リファレンス](/sql-reference/functions/array-functions#arraySort)を参照してください。 - -## mapPartialSort {#mappartialsort} - -map の要素を昇順にソートします。`limit` 引数によって部分ソートを指定できます。 -`func` 関数が指定された場合、map のキーおよび値に `func` 関数を適用した結果に基づいてソート順が決定されます。 - -**構文** - -```sql -mapPartialSort([func,] limit, map) -``` - -**引数** - -* `func` – map のキーと値に適用する任意の関数。[Lambda function](/sql-reference/functions/overview#higher-order-functions)。 -* `limit` – 範囲 [1..limit] の要素がソートされます。[(U)Int](../data-types/int-uint.md)。 -* `map` – ソートする map。[Map](../data-types/map.md)。 - -**戻り値** - -* 部分的にソートされた map。[Map](../data-types/map.md)。 - -**例** - -```sql -SELECT mapPartialSort((k, v) -> v, 2, map('k1', 3, 'k2', 1, 'k3', 2)); -``` - -```text -┌─mapPartialSort(lambda(tuple(k, v), v), 2, map('k1', 3, 'k2', 1, 'k3', 2))─┐ -│ {'k2':1,'k3':2,'k1':3} │ -└───────────────────────────────────────────────────────────────────────────┘ -``` - -## mapReverseSort([func,], map) {#mapreversesortfunc-map} - -マップの要素を降順にソートします。 -`func` 関数が指定されている場合、マップのキーおよび値に `func` 関数を適用した結果に基づいてソートされます。 - -**例** - -```sql -SELECT mapReverseSort(map('key2', 2, 'key3', 1, 'key1', 3)) AS map; -``` - -```text -┌─map──────────────────────────┐ -│ {'key3':1,'key2':2,'key1':3} │ -└──────────────────────────────┘ -``` - -```sql -SELECT mapReverseSort((k, v) -> v, map('key2', 2, 'key3', 1, 'key1', 3)) AS map; -``` - -```text -┌─map──────────────────────────┐ -│ {'key1':3,'key2':2,'key3':1} │ -└──────────────────────────────┘ -``` - -詳細は、関数 [arrayReverseSort](/sql-reference/functions/array-functions#arrayReverseSort) を参照してください。 - -## mapPartialReverseSort {#mappartialreversesort} - -追加の `limit` 引数により、マップの要素を降順に部分ソートします。 -`func` 関数が指定されている場合は、マップのキーおよび値に `func` 関数を適用した結果に基づいてソート順が決定されます。 - -**構文** - -```sql -mapPartialReverseSort([func,] limit, map) -``` - -**引数** - -* `func` – map のキーと値に適用する任意の関数。[Lambda 関数](/sql-reference/functions/overview#higher-order-functions)。 -* `limit` – 範囲 [1..limit] 内の要素をソートします。[(U)Int](../data-types/int-uint.md)。 -* `map` – ソート対象の map。[Map](../data-types/map.md)。 - -**戻り値** - -* 部分的にソートされた map。[Map](../data-types/map.md)。 - -**例** - -```sql -SELECT mapPartialReverseSort((k, v) -> v, 2, map('k1', 3, 'k2', 1, 'k3', 2)); -``` - -```text -┌─mapPartialReverseSort(lambda(tuple(k, v), v), 2, map('k1', 3, 'k2', 1, 'k3', 2))─┐ -│ {'k1':3,'k3':2,'k2':1} │ -└──────────────────────────────────────────────────────────────────────────────────┘ -``` - {/* 以下のタグの内側の内容は、ドキュメントフレームワークのビルド時に system.functions から自動生成されたドキュメントで置き換えられます。タグを変更または削除しないでください。 diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/select/limit.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/select/limit.md index ad8d372c624..3ad2c514776 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/select/limit.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/select/limit.md @@ -68,7 +68,7 @@ LIMIT n, m :::note - 小数は 0 より大きく 1 より小さい [Float64](../../data-types/float.md) 型の値でなければなりません。 -- 小数で指定された行数は、最も近い整数に丸められます。 +- 小数で指定された行数は、次の整数に切り上げられます。 ::: ## 制限タイプの組み合わせ {#combining-limit-types} diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/select/offset.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/select/offset.md index 2ecb855352b..94d2872f44b 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/select/offset.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/select/offset.md @@ -39,7 +39,7 @@ doc_type: 'reference' SELECT * FROM test_fetch ORDER BY a OFFSET 1 ROW FETCH FIRST 3 ROWS ONLY; ``` -次のクエリと同じです +次のクエリと同一です ```sql SELECT * FROM test_fetch ORDER BY a LIMIT 3 OFFSET 1; diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md index 390e55ed9f9..f242390c40b 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md @@ -31,26 +31,28 @@ SYSTEM RELOAD DICTIONARIES [ON CLUSTER cluster_name] ## SYSTEM RELOAD DICTIONARY {#reload-dictionary} -Dictionary `dictionary_name` を、辞書の状態(LOADED / NOT_LOADED / FAILED)に関係なく完全に再読み込みします。 -Dictionary の更新結果に関係なく、常に `Ok.` を返します。 +Dictionary の状態(LOADED / NOT_LOADED / FAILED)に関係なく、`dictionary_name` という Dictionary を完全に再読み込みします。 +Dictionary の更新結果に関わらず、常に Ok. を返します。 ```sql SYSTEM RELOAD DICTIONARY [ON CLUSTER cluster_name] dictionary_name ``` -Dictionary の状態は `system.dictionaries` テーブルをクエリすることで確認できます。 +Dictionary の状態は、`system.dictionaries` テーブルに対してクエリを実行することで確認できます。 ```sql SELECT name, status FROM system.dictionaries; ``` + ## SYSTEM RELOAD MODELS {#reload-models} :::note -このステートメントと `SYSTEM RELOAD MODEL` は、単に clickhouse-library-bridge から CatBoost モデルをアンロードするだけです。`catboostEvaluate()` 関数は、まだロードされていない場合、初回アクセス時にモデルをロードします。 +このステートメントおよび `SYSTEM RELOAD MODEL` は、CatBoost モデルを clickhouse-library-bridge からアンロードするだけです。関数 `catboostEvaluate()` +は、モデルがまだロードされていない場合、最初のアクセス時にロードします。 ::: -すべてのCatBoostモデルをアンロードします。 +すべての CatBoost モデルをアンロードします。 **構文** @@ -58,9 +60,10 @@ SELECT name, status FROM system.dictionaries; SYSTEM RELOAD MODELS [ON CLUSTER cluster_name] ``` + ## SYSTEM RELOAD MODEL {#reload-model} -`model_path` で指定されたCatBoostモデルを再読み込みします。 +`model_path` にある CatBoost モデルをアンロードします。 **構文** @@ -68,9 +71,10 @@ SYSTEM RELOAD MODELS [ON CLUSTER cluster_name] SYSTEM RELOAD MODEL [ON CLUSTER cluster_name] ``` + ## SYSTEM RELOAD FUNCTIONS {#reload-functions} -設定ファイルから、登録済みの[実行可能なユーザー定義関数](/sql-reference/functions/udf#executable-user-defined-functions)をすべて、またはいずれか1つを再読み込みします。 +登録済みの[実行可能なユーザー定義関数](/sql-reference/functions/udf#executable-user-defined-functions)を、設定ファイルからすべて、またはいずれか 1 つだけ再読み込みします。 **構文** @@ -79,19 +83,21 @@ SYSTEM RELOAD FUNCTIONS [ON CLUSTER cluster_name] SYSTEM RELOAD FUNCTION [ON CLUSTER cluster_name] function_name ``` + ## SYSTEM RELOAD ASYNCHRONOUS METRICS {#reload-asynchronous-metrics} -すべての[非同期メトリクス](../../operations/system-tables/asynchronous_metrics.md)を再計算します。非同期メトリクスは、[asynchronous_metrics_update_period_s](../../operations/server-configuration-parameters/settings.md)設定に基づいて定期的に更新されるため、このステートメントを手動で実行して更新する必要は通常ありません。 +すべての[非同期メトリクス](../../operations/system-tables/asynchronous_metrics.md)を再計算します。非同期メトリクスは、[asynchronous_metrics_update_period_s](../../operations/server-configuration-parameters/settings.md) 設定に基づいて定期的に更新されるため、通常はこのステートメントを使用して手動で更新する必要はありません。 ```sql SYSTEM RELOAD ASYNCHRONOUS METRICS [ON CLUSTER cluster_name] ``` + ## SYSTEM DROP DNS CACHE {#drop-dns-cache} -ClickHouseの内部DNSキャッシュをクリアします。インフラストラクチャを変更する際(別のClickHouseサーバーやディクショナリで使用されるサーバーのIPアドレスを変更する場合など)、古いバージョンのClickHouseではこのコマンドの使用が必要になることがあります。 +ClickHouse の内部 DNS キャッシュをクリアします。インフラストラクチャを変更する場合(別の ClickHouse サーバーやディクショナリで使用されるサーバーの IP アドレスを変更する場合など)、古い ClickHouse バージョンではこのコマンドを使用する必要が生じることがあります。 -より便利(自動的)なキャッシュ管理を行うには、`disable_internal_dns_cache`、`dns_cache_max_entries`、`dns_cache_update_period` パラメータを参照してください。 +より便利な(自動的な)キャッシュ管理については、`disable_internal_dns_cache`、`dns_cache_max_entries`、`dns_cache_update_period` パラメータを参照してください。 ## SYSTEM DROP MARK CACHE {#drop-mark-cache} @@ -101,22 +107,16 @@ ClickHouseの内部DNSキャッシュをクリアします。インフラスト Icebergメタデータキャッシュをクリアします。 -## SYSTEM DROP TEXT INDEX DICTIONARY CACHE {#drop-text-index-dictionary-cache} - -テキストインデックスのDictionaryキャッシュをクリアします。 - -## SYSTEM DROP TEXT INDEX HEADER CACHE {#drop-text-index-header-cache} - -テキストインデックスヘッダーキャッシュをクリアします。 - -## SYSTEM DROP TEXT INDEX POSTINGS CACHE {#drop-text-index-postings-cache} - -テキスト索引のポスティングキャッシュを消去します。 - ## SYSTEM DROP TEXT INDEX POSTINGS CACHE {#drop-text-index-caches} テキスト索引ヘッダーキャッシュ、Dictionaryキャッシュおよびポスティングキャッシュをクリアします。 +これらのキャッシュを個別に削除したい場合は、次のコマンドを実行できます。 + +- `SYSTEM DROP TEXT INDEX HEADER CACHE`, +- `SYSTEM DROP TEXT INDEX DICTIONARY CACHE`, または +- `SYSTEM DROP TEXT INDEX POSTINGS CACHE` + ## SYSTEM DROP REPLICA {#drop-replica} `ReplicatedMergeTree`テーブルの停止したレプリカは、次の構文で削除できます。 @@ -137,7 +137,7 @@ SYSTEM DROP REPLICA 'replica_name' FROM ZKPATH '/path/to/table/in/zk'; ## SYSTEM DROP DATABASE REPLICA {#drop-database-replica} -`Replicated` データベースの不要なレプリカは、以下の構文で削除できます。 +無効になった `Replicated` データベースのレプリカは、次の構文で削除できます。 ```sql SYSTEM DROP DATABASE REPLICA 'replica_name' [FROM SHARD 'shard_name'] FROM DATABASE database; @@ -145,13 +145,14 @@ SYSTEM DROP DATABASE REPLICA 'replica_name' [FROM SHARD 'shard_name']; SYSTEM DROP DATABASE REPLICA 'replica_name' [FROM SHARD 'shard_name'] FROM ZKPATH '/path/to/table/in/zk'; ``` -`SYSTEM DROP REPLICA` と同様ですが、`DROP DATABASE` を実行する対象のデータベースが存在しない場合に、ZooKeeper から `Replicated` データベースのレプリカパスを削除します。なお、このステートメントは `ReplicatedMergeTree` のレプリカは削除しないため、必要に応じて `SYSTEM DROP REPLICA` も実行する必要があります。シャード名とレプリカ名は、データベース作成時に `Replicated` エンジンの引数として指定した名前です。また、これらの名前は `system.clusters` の `database_shard_name` および `database_replica_name` カラムから取得できます。`FROM SHARD` 句が省略された場合、`replica_name` は `shard_name|replica_name` 形式の完全なレプリカ名である必要があります。 +`SYSTEM DROP REPLICA` に似ていますが、`DROP DATABASE` を実行できるデータベースが存在しない場合に使用され、ZooKeeper から `Replicated` データベースのレプリカパスを削除します。なお、これは `ReplicatedMergeTree` のレプリカは削除しないため、必要に応じて `SYSTEM DROP REPLICA` も実行する必要があります。分片名とレプリカ名は、データベース作成時に `Replicated` エンジンの引数で指定した名前です。また、これらの名前は `system.clusters` の `database_shard_name` および `database_replica_name` カラムから取得することもできます。`FROM SHARD` 句が省略されている場合、`replica_name` には `shard_name|replica_name` 形式の完全なレプリカ名を指定する必要があります。 + ## SYSTEM DROP UNCOMPRESSED CACHE {#drop-uncompressed-cache} 非圧縮データキャッシュをクリアします。 -非圧縮データキャッシュは、クエリ/ユーザー/プロファイルレベルの設定 [`use_uncompressed_cache`](../../operations/settings/settings.md#use_uncompressed_cache) によって有効化/無効化されます。 -そのサイズは、サーバーレベルの設定 [`uncompressed_cache_size`](../../operations/server-configuration-parameters/settings.md#uncompressed_cache_size) で設定できます。 +非圧縮データキャッシュは、クエリ/USER/プロファイルレベルの設定 [`use_uncompressed_cache`](../../operations/settings/settings.md#use_uncompressed_cache) によって有効化/無効化を切り替えられます。 +キャッシュのサイズは、サーバーレベルの設定 [`uncompressed_cache_size`](../../operations/server-configuration-parameters/settings.md#uncompressed_cache_size) を使用して構成できます。 ## SYSTEM DROP COMPILED EXPRESSION CACHE {#drop-compiled-expression-cache} @@ -176,54 +177,58 @@ SYSTEM DROP QUERY CACHE TAG '' ## SYSTEM DROP FORMAT SCHEMA CACHE {#system-drop-schema-format} -[`format_schema_path`](../../operations/server-configuration-parameters/settings.md#format_schema_path)から読み込まれたスキーマのキャッシュをクリアします。 +[`format_schema_path`](../../operations/server-configuration-parameters/settings.md#format_schema_path) から読み込まれたスキーマのキャッシュをクリアします。 サポートされている対象: -* Protobuf: インポートされたProtobufメッセージ定義をメモリから削除します。 +* Protobuf: メモリ上のインポート済み Protobuf メッセージ定義を削除します。 * Files: `format_schema_source` が `query` に設定されている場合に生成され、ローカルの [`format_schema_path`](../../operations/server-configuration-parameters/settings.md#format_schema_path) に保存されているスキーマファイルのキャッシュを削除します。 - 注意: 対象を指定しない場合、両方のキャッシュがクリアされます。 + 注: 対象を指定しない場合、両方のキャッシュがクリアされます。 ```sql SYSTEM DROP FORMAT SCHEMA CACHE [FOR Protobuf/Files] ``` + ## SYSTEM FLUSH LOGS {#flush-logs} -バッファされているログメッセージを `system.query_log` などの system テーブルにフラッシュします。多くの system テーブルはデフォルトのフラッシュ間隔が 7.5 秒に設定されているため、主にデバッグ時に役立ちます。 -これにより、メッセージキューが空であっても system テーブルが作成されます。 +バッファリングされているログメッセージを `system.query_log` などの system テーブルにフラッシュします。ほとんどの system テーブルはデフォルトのフラッシュ間隔が 7.5 秒に設定されているため、主にデバッグ時に有用です。 +message queue が空であっても、この操作により system テーブルが作成されます。 ```sql SYSTEM FLUSH LOGS [ON CLUSTER cluster_name] [log_name|[database.table]] [, ...] ``` -すべてをフラッシュしたくない場合は、名前または対象テーブルを渡すことで、特定のログ(1つまたは複数)だけをフラッシュできます。 +すべてをフラッシュしたくない場合は、名前または対象テーブルを指定して、特定のログを 1 つまたは複数だけフラッシュできます。 ```sql SYSTEM FLUSH LOGS query_log, system.query_views_log; ``` + ## SYSTEM RELOAD CONFIG {#reload-config} -ClickHouseの設定を再読み込みします。設定がZooKeeperに保存されている場合に使用します。`SYSTEM RELOAD CONFIG` はZooKeeperに保存されている `USER` の設定は再読み込みせず、`users.xml` に保存されている `USER` の設定のみを再読み込みします。すべての `USER` 設定を再読み込むには `SYSTEM RELOAD USERS` を使用します。 +ClickHouse の構成を再読み込みします。構成が ZooKeeper に保存されている場合に使用します。`SYSTEM RELOAD CONFIG` は ZooKeeper に保存されている `USER` 構成を再読み込まない点に注意してください。`users.xml` に保存されている `USER` 構成のみを再読み込みします。すべての `USER` 構成を再読み込むには `SYSTEM RELOAD USERS` を使用してください。 ```sql SYSTEM RELOAD CONFIG [ON CLUSTER cluster_name] ``` + ## SYSTEM RELOAD USERS {#reload-users} -users.xml、ローカルディスクのアクセスストレージ、ZooKeeper上でレプリケートされているアクセスストレージなど、すべてのアクセスストレージを再読み込みします。 +users.xml、ローカルディスクのアクセスストレージ、ZooKeeper 上のレプリケートされたアクセスストレージを含む、すべてのアクセスストレージを再読み込みします。 ```sql SYSTEM RELOAD USERS [ON CLUSTER cluster_name] ``` + ## SYSTEM SHUTDOWN {#shutdown} -ClickHouse を通常の方法でシャットダウンします(`service clickhouse-server stop` / `kill {$pid_clickhouse-server}` と同様に動作します) +通常のシャットダウン手順と同様に ClickHouse を停止します(`service clickhouse-server stop` / `kill {$pid_clickhouse-server}` と同様) ## SYSTEM KILL {#kill} @@ -252,62 +257,72 @@ SYSTEM INSTRUMENT ADD FUNCTION HANDLER [PARAMETERS] #### LOG {#instrument-add-log} -関数の`ENTRY`または`EXIT`のタイミングで、引数として指定されたテキストとスタックトレースを出力します。 +関数の`ENTRY`または`EXIT`のタイミングで、引数で指定されたテキストとスタックトレースを出力します。 ```sql -SYSTEM INSTRUMENT ADD `QueryMetricLog::startQuery` LOG ENTRY 'this is a log printed at entry' -SYSTEM INSTRUMENT ADD `QueryMetricLog::startQuery` LOG EXIT 'this is a log printed at exit' +SYSTEM INSTRUMENT ADD 'QueryMetricLog::startQuery' LOG ENTRY 'this is a log printed at entry' +SYSTEM INSTRUMENT ADD 'QueryMetricLog::startQuery' LOG EXIT 'this is a log printed at exit' ``` + #### SLEEP {#instrument-add-sleep} -`ENTRY` または `EXIT` のいずれかで、指定した秒数だけスリープします。 +`ENTRY` または `EXIT` のタイミングで、指定した固定の秒数だけスリープします。 ```sql -SYSTEM INSTRUMENT ADD `QueryMetricLog::startQuery` SLEEP ENTRY 0.5 +SYSTEM INSTRUMENT ADD 'QueryMetricLog::startQuery' SLEEP ENTRY 0.5 ``` -または、最小値と最大値を空白で区切って指定することで、一様分布に従うランダムな秒数を与えることができます: +または、最小値と最大値をスペース区切りで指定することで、一様分布に従うランダムな秒数を指定できます: ```sql -SYSTEM INSTRUMENT ADD `QueryMetricLog::startQuery` SLEEP ENTRY 0 1 +SYSTEM INSTRUMENT ADD 'QueryMetricLog::startQuery' SLEEP ENTRY 0 1 ``` + #### PROFILE {#instrument-add-profile} -関数の`ENTRY`から`EXIT`までの処理に要した時間を計測します。 -プロファイリング結果は [`system.trace_log`](../../operations/system-tables/trace_log.md) に保存され、 +関数の `ENTRY` から `EXIT` までに要した時間を測定します。 +プロファイリングの結果は [`system.trace_log`](../../operations/system-tables/trace_log.md) に保存され、 [Chrome Event Trace Format](../../operations/system-tables/trace_log.md#chrome-event-trace-format) に変換できます。 ```sql -SYSTEM INSTRUMENT ADD `QueryMetricLog::startQuery` PROFILE +SYSTEM INSTRUMENT ADD 'QueryMetricLog::startQuery' PROFILE ``` + ### SYSTEM INSTRUMENT REMOVE {#instrument-remove} -以下のいずれかの方法で、単一の計測ポイントを削除します。 +次のいずれかの方法で単一の計測ポイントを削除します: ```sql SYSTEM INSTRUMENT REMOVE ID ``` -いずれも `ALL` パラメータを使用します。 +`ALL` パラメータを使用してすべてを削除します: ```sql SYSTEM INSTRUMENT REMOVE ALL ``` -または、サブクエリから得られる ID の集合: +サブクエリから取得した ID の集合: ```sql SYSTEM INSTRUMENT REMOVE (SELECT id FROM system.instrumentation WHERE handler = 'log') ``` -インストゥルメンテーションポイントのIDは、[`system.instrumentation`](../../operations/system-tables/instrumentation.md) システムテーブルから取得できます。 +または、指定した `function_name` に一致するすべての計測ポイントを対象とする場合: + +```sql +SYSTEM INSTRUMENT REMOVE 'QueryMetricLog::startQuery' +``` + +インストルメンテーションポイントに関する情報は、[`system.instrumentation`](../../operations/system-tables/instrumentation.md) システムテーブルから取得できます。 + ## 分散テーブルの管理 {#managing-distributed-tables} -ClickHouseは[分散](../../engines/table-engines/special/distributed.md)テーブルを管理できます。ユーザーがこれらのテーブルにデータを挿入すると、ClickHouseは最初にクラスターノードに送信すべきデータのキューを作成し、その後非同期に送信します。キュー処理は、[`STOP DISTRIBUTED SENDS`](#stop-distributed-sends)、[FLUSH DISTRIBUTED](#flush-distributed)、[`START DISTRIBUTED SENDS`](#start-distributed-sends) クエリで管理できます。また、[`distributed_foreground_insert`](../../operations/settings/settings.md#distributed_foreground_insert) 設定を使用して、分散データを同期的に挿入することもできます。 +ClickHouse は[分散](../../engines/table-engines/special/distributed.md)テーブルを管理できます。ユーザーがこれらのテーブルにデータを挿入すると、ClickHouse はまずクラスタノードに送信するデータのキューを作成し、その後非同期に送信します。キュー処理は、[`STOP DISTRIBUTED SENDS`](#stop-distributed-sends)、[FLUSH DISTRIBUTED](#flush-distributed)、[`START DISTRIBUTED SENDS`](#start-distributed-sends) クエリで管理できます。[`distributed_foreground_insert`](../../operations/settings/settings.md#distributed_foreground_insert) 設定を使用すると、分散テーブルにデータを同期的に挿入することもできます。 ### SYSTEM STOP DISTRIBUTED SENDS {#stop-distributed-sends} @@ -323,54 +338,58 @@ SYSTEM STOP DISTRIBUTED SENDS [db.] [ON CLUSTER cluster_ ### SYSTEM FLUSH DISTRIBUTED {#flush-distributed} -ClickHouseにクラスタノードへのデータ送信を同期的に実行させます。いずれかのノードが利用できない場合、ClickHouseは例外をスローし、クエリの実行を停止します。すべてのノードがオンラインに復旧すると成功するため、それまでクエリを再試行できます。 +ClickHouse にクラスタノードへデータを同期的に送信させます。いずれかのノードが利用できない場合、ClickHouse は例外をスローし、クエリの実行を停止します。すべてのノードがオンラインに戻れば成功するため、それまでクエリを再実行し続けることができます。 -一部の設定は `SETTINGS` 句で上書きすることもできます。これは、一時的な制限(`max_concurrent_queries_for_all_users` や `max_memory_usage` など)を回避するのに有用です。 +一部の設定は `SETTINGS` 句で上書きすることもできます。これは、一時的な制限(`max_concurrent_queries_for_all_users` や `max_memory_usage` など)を回避したい場合に役立ちます。 ```sql SYSTEM FLUSH DISTRIBUTED [db.] [ON CLUSTER cluster_name] [SETTINGS ...] ``` :::note -保留中の各ブロックは、最初の INSERT クエリの設定でディスクに保存されます。そのため、場合によっては設定を上書きする必要が生じることがあります。 +各保留中のブロックは、最初の INSERT クエリの設定でディスク上に保存されます。そのため、場合によっては設定を上書きしたいこともあります。 ::: + ### SYSTEM START DISTRIBUTED SENDS {#start-distributed-sends} -分散テーブルへのデータ挿入時に、バックグラウンドでのデータ配信を有効化します。 +分散テーブルへのデータ挿入時に、バックグラウンドでのデータ配信を有効にします。 ```sql SYSTEM START DISTRIBUTED SENDS [db.] [ON CLUSTER cluster_name] ``` + ### SYSTEM STOP LISTEN {#stop-listen} -指定されたポートおよびプロトコルでソケットをクローズし、既存のサーバーへの接続を正常に終了します。 +ソケットを閉じ、指定されたプロトコルおよびポートでサーバーへの既存の接続を正常に終了させます。 -ただし、対応するプロトコル設定が clickhouse-server設定で指定されていない場合、このコマンドは何の効果もありません。 +ただし、対応するプロトコルの設定が clickhouse-server の設定で指定されていない場合、このコマンドは何の効果もありません。 ```sql SYSTEM STOP LISTEN [ON CLUSTER cluster_name] [QUERIES ALL | QUERIES DEFAULT | QUERIES CUSTOM | TCP | TCP WITH PROXY | TCP SECURE | HTTP | HTTPS | MYSQL | GRPC | POSTGRESQL | PROMETHEUS | CUSTOM 'protocol'] ``` -* `CUSTOM 'protocol'` 修飾子が指定されている場合、サーバー設定のプロトコルセクションで定義された指定名のカスタムプロトコルが停止されます。 +* `CUSTOM 'protocol'` 修飾子が指定されている場合、サーバー設定の protocols セクションで定義されている、その名前のカスタムプロトコルが停止されます。 * `QUERIES ALL [EXCEPT .. [,..]]` 修飾子が指定されている場合、`EXCEPT` 句で指定されたものを除き、すべてのプロトコルが停止されます。 * `QUERIES DEFAULT [EXCEPT .. [,..]]` 修飾子が指定されている場合、`EXCEPT` 句で指定されたものを除き、すべてのデフォルトプロトコルが停止されます。 * `QUERIES CUSTOM [EXCEPT .. [,..]]` 修飾子が指定されている場合、`EXCEPT` 句で指定されたものを除き、すべてのカスタムプロトコルが停止されます。 + ### SYSTEM START LISTEN {#start-listen} -指定されたプロトコルで新しい接続を受け付けられるようにします。 +指定されたプロトコルで新しい接続を確立できるようにします。 -ただし、指定したポートとプロトコルのサーバーが SYSTEM STOP LISTEN コマンドで停止されていない場合、このコマンドは何の効果もありません。 +ただし、指定されたポートおよびプロトコル上のサーバーが SYSTEM STOP LISTEN コマンドを使用して停止されていない場合、このコマンドを実行しても効果はありません。 ```sql SYSTEM START LISTEN [ON CLUSTER cluster_name] [QUERIES ALL | QUERIES DEFAULT | QUERIES CUSTOM | TCP | TCP WITH PROXY | TCP SECURE | HTTP | HTTPS | MYSQL | GRPC | POSTGRESQL | PROMETHEUS | CUSTOM 'protocol'] ``` -## MergeTreeテーブルの管理 {#managing-mergetree-tables} -ClickHouseは[MergeTree](../../engines/table-engines/mergetree-family/mergetree.md)テーブルにおけるバックグラウンドプロセスを管理できます。 +## MergeTree テーブルの管理 {#managing-mergetree-tables} + +ClickHouse は、[MergeTree](../../engines/table-engines/mergetree-family/mergetree.md) テーブルのバックグラウンドプロセスを管理できます。 ### SYSTEM STOP MERGES {#stop-merges} @@ -390,67 +409,74 @@ SYSTEM STOP MERGES [ON CLUSTER cluster_name] [ON VOLUME | [db.]mer -MergeTree ファミリーのテーブルに対してバックグラウンドマージを開始するためのコマンドです。 +MergeTree ファミリーのテーブルに対してバックグラウンドでのマージ処理を開始できます。 ```sql SYSTEM START MERGES [ON CLUSTER cluster_name] [ON VOLUME | [db.]merge_tree_family_table_name] ``` + ### SYSTEM STOP TTL MERGES {#stop-ttl-merges} -MergeTreeファミリーのテーブルに対して、[TTL expression](../../engines/table-engines/mergetree-family/mergetree.md#table_engine-mergetree-ttl) に従って古いデータをバックグラウンドで削除する処理を停止します。 -テーブルが存在しない場合や、テーブルがMergeTreeエンジンではない場合でも `Ok.` を返します。データベースが存在しない場合はエラーを返します。 +MergeTree ファミリーのテーブルに対して、[TTL expression](../../engines/table-engines/mergetree-family/mergetree.md#table_engine-mergetree-ttl) に基づいてバックグラウンドで古いデータを削除する処理を停止します。 +テーブルが存在しない場合や、テーブルが MergeTree エンジンを使用していない場合でも `Ok.` を返します。データベースが存在しない場合はエラーを返します。 ```sql SYSTEM STOP TTL MERGES [ON CLUSTER cluster_name] [[db.]merge_tree_family_table_name] ``` + ### SYSTEM START TTL MERGES {#start-ttl-merges} -MergeTreeファミリーに属するテーブルに対して、[TTL expression](../../engines/table-engines/mergetree-family/mergetree.md#table_engine-mergetree-ttl) に従って古いデータのバックグラウンド削除を開始します。 -テーブルが存在しない場合でも `Ok.` を返し、データベースが存在しない場合はエラーを返します。 +MergeTree ファミリーのテーブルに対して、[TTL expression](../../engines/table-engines/mergetree-family/mergetree.md#table_engine-mergetree-ttl) に従い、古いデータのバックグラウンド削除を開始します。 +テーブルが存在しない場合でも `Ok.` を返します。データベースが存在しない場合はエラーを返します。 ```sql SYSTEM START TTL MERGES [ON CLUSTER cluster_name] [[db.]merge_tree_family_table_name] ``` + ### SYSTEM STOP MOVES {#stop-moves} -MergeTreeファミリーのテーブルに対して、[TO VOLUME または TO DISK 句を含む有効期限 (TTL) テーブル式](../../engines/table-engines/mergetree-family/mergetree.md#mergetree-table-ttl) に基づくバックグラウンドでのデータ移動を停止するためのコマンドです。 -テーブルが存在しない場合でも `Ok.` を返します。データベースが存在しない場合はエラーを返します。 +MergeTree ファミリーのテーブルに対して、[TO VOLUME または TO DISK 句を伴う TTL テーブル式](../../engines/table-engines/mergetree-family/mergetree.md#mergetree-table-ttl) に基づくバックグラウンドでのデータ移動を停止します。 +テーブルが存在しない場合でも `Ok.` を返します。データベースが存在しない場合にはエラーを返します。 ```sql SYSTEM STOP MOVES [ON CLUSTER cluster_name] [[db.]merge_tree_family_table_name] ``` + ### SYSTEM START MOVES {#start-moves} -MergeTree ファミリーのテーブルに対して、[TO VOLUME および TO DISK 句を含む TTL テーブル式](../../engines/table-engines/mergetree-family/mergetree.md#mergetree-table-ttl) に従い、バックグラウンドでデータ移動を開始します。 -テーブルが存在しない場合でも `Ok.` を返しますが、データベースが存在しない場合はエラーを返します。 +MergeTree ファミリーのテーブルに対して、[TO VOLUME および TO DISK 句を含む TTL テーブル式](../../engines/table-engines/mergetree-family/mergetree.md#mergetree-table-ttl) に従ってバックグラウンドでデータ移動を開始します。 +テーブルが存在しない場合でも `Ok.` を返し、データベースが存在しない場合にはエラーを返します。 ```sql SYSTEM START MOVES [ON CLUSTER cluster_name] [[db.]merge_tree_family_table_name] ``` + ### SYSTEM SYSTEM UNFREEZE {#query_language-system-unfreeze} -指定された名前の凍結されたバックアップを、すべてのディスクから削除します。個別のパーツを凍結解除する方法については、[ALTER TABLE table_name UNFREEZE WITH NAME ](/sql-reference/statements/alter/partition#unfreeze-partition) を参照してください。 +指定した名前の凍結されたバックアップを、すべてのディスクから削除します。個々のパーツの凍結解除については [ALTER TABLE table_name UNFREEZE WITH NAME ](/sql-reference/statements/alter/partition#unfreeze-partition) を参照してください。 ```sql SYSTEM UNFREEZE WITH NAME ``` + ### SYSTEM WAIT LOADING PARTS {#wait-loading-parts} -テーブル内で非同期に読み込み中のすべてのデータパーツ(古いデータパーツ)の読み込みが完了するまで待機します。 +テーブル内の非同期で読み込み中のすべてのデータパーツ(古いバージョンのデータパーツ)が読み込み完了するまで待機します。 ```sql SYSTEM WAIT LOADING PARTS [ON CLUSTER cluster_name] [db.]merge_tree_family_table_name ``` -## ReplicatedMergeTreeテーブルの管理 {#managing-replicatedmergetree-tables} -ClickHouseは、[ReplicatedMergeTree](/engines/table-engines/mergetree-family/replication)テーブルに関連するバックグラウンドのレプリケーション処理を管理できます。 +## ReplicatedMergeTree テーブルの管理 {#managing-replicatedmergetree-tables} + +ClickHouse は、[ReplicatedMergeTree](/engines/table-engines/mergetree-family/replication) テーブルにおけるバックグラウンドで行われるレプリケーション関連の処理を管理できます。 ### SYSTEM STOP FETCHES {#stop-fetches} @@ -467,80 +493,88 @@ SYSTEM STOP FETCHES [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family -`ReplicatedMergeTree`ファミリーのテーブルにおいて、挿入されたパーツのバックグラウンドフェッチを開始します。 -テーブルエンジンの種類や、テーブルやデータベースの存在有無にかかわらず、常に `Ok.` を返します。 +`ReplicatedMergeTree` ファミリーのテーブルに対して、挿入されたパーツのバックグラウンドフェッチを開始する機能を提供します。 +テーブルエンジンの種類に関係なく、またテーブルやデータベースが存在しない場合でも、常に `Ok.` を返します。 ```sql SYSTEM START FETCHES [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name] ``` + ### SYSTEM STOP REPLICATED SENDS {#stop-replicated-sends} -`ReplicatedMergeTree` ファミリーのテーブルで、新しく挿入されたパーツをクラスタ内の他のレプリカへバックグラウンド送信する処理を停止します。 +`ReplicatedMergeTree` ファミリーのテーブルに対して、新しく挿入されたパーツをクラスタ内の他のレプリカへバックグラウンド送信する処理を停止できるようにします。 ```sql SYSTEM STOP REPLICATED SENDS [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name] ``` + ### SYSTEM START REPLICATED SENDS {#start-replicated-sends} -`ReplicatedMergeTree` ファミリーのテーブルに対して、新しく挿入されたパーツをクラスタ内の他のレプリカへ送信するバックグラウンド処理を開始します。 +`ReplicatedMergeTree` ファミリーに属するテーブルに対して、新しく挿入されたパーツをクラスタ内の他のレプリカへバックグラウンドで送信する処理を開始できるようにします。 ```sql SYSTEM START REPLICATED SENDS [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name] ``` + ### SYSTEM STOP REPLICATION QUEUES {#stop-replication-queues} -`ReplicatedMergeTree` ファミリーのテーブルについて、ZooKeeper に保存されているレプリケーションキュー内のバックグラウンドフェッチタスクを停止できます。対象となるバックグラウンドタスクの種類は、マージ、フェッチ、ミューテーション、ON CLUSTER 句付きの DDL ステートメントです。 +`ReplicatedMergeTree` ファミリーに属するテーブルについて、Zookeeper に保存されているレプリケーションキューからのバックグラウンドのフェッチタスクを停止できるようにします。停止対象となるバックグラウンドタスクの種類は、マージ、フェッチ、ミューテーション、ON CLUSTER 句付きの DDL 文です。 ```sql SYSTEM STOP REPLICATION QUEUES [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name] ``` + ### SYSTEM START REPLICATION QUEUES {#start-replication-queues} -`ReplicatedMergeTree` ファミリーのテーブルについて、ZooKeeper に保存されているレプリケーションキューからバックグラウンドでのフェッチタスクを開始する機能を提供します。可能なバックグラウンドタスクの種類は、マージ、フェッチ、ミューテーション、ON CLUSTER 句付きの DDL ステートメントです。 +`ReplicatedMergeTree` ファミリーに属するテーブルについて、ZooKeeper に保存されているレプリケーションキューからバックグラウンドのフェッチタスクを開始できるようにします。可能なバックグラウンドタスクの種類は、マージ、フェッチ、ミューテーション、ON CLUSTER 句付きの DDL 文です。 ```sql SYSTEM START REPLICATION QUEUES [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name] ``` + ### SYSTEM STOP PULLING REPLICATION LOG {#stop-pulling-replication-log} -`ReplicatedMergeTree`テーブルで、レプリケーションログからレプリケーションキューへの新規エントリの取り込みを停止します。 +`ReplicatedMergeTree` テーブルで、レプリケーションログからレプリケーションキューへの新規エントリの取り込みを停止します。 ```sql SYSTEM STOP PULLING REPLICATION LOG [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name] ``` + ### SYSTEM START PULLING REPLICATION LOG {#start-pulling-replication-log} -`SYSTEM STOP PULLING REPLICATION LOG` を解除します。 +`SYSTEM STOP PULLING REPLICATION LOG` を取り消します。 ```sql SYSTEM START PULLING REPLICATION LOG [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name] ``` + ### SYSTEM SYNC REPLICA {#sync-replica} -`ReplicatedMergeTree`テーブルがクラスタ内の他のレプリカと同期されるまで待機しますが、`receive_timeout` 秒を上限とします。 +`ReplicatedMergeTree` テーブルがクラスタ内の他のレプリカと同期されるまで待機しますが、`receive_timeout` 秒を上限とします。 ```sql SYSTEM SYNC REPLICA [ON CLUSTER cluster_name] [db.]replicated_merge_tree_family_table_name [IF EXISTS] [STRICT | LIGHTWEIGHT [FROM 'srcReplica1'[, 'srcReplica2'[, ...]]] | PULL] ``` -このステートメントを実行すると、`[db.]replicated_merge_tree_family_table_name` は共通のレプリケーションログからコマンドを自身のレプリケーションキューにフェッチし、その後クエリはレプリカがフェッチされたすべてのコマンドを処理するまで待機します。以下の修飾子がサポートされています。 +このステートメントを実行すると、`[db.]replicated_merge_tree_family_table_name` は共通のレプリケーションログからコマンドを自身のレプリケーションキューに取り込み、その後クエリはレプリカが取得したすべてのコマンドを処理し終えるまで待機します。以下の修飾子がサポートされています: -* `IF EXISTS`(25.6 以降で利用可能)を指定すると、テーブルが存在しない場合でもクエリはエラーを発生させません。これは、新しいレプリカをクラスターに追加する際、すでにクラスター設定の一部になっているものの、まだテーブルの作成と同期の途中である場合に有用です。 -* `STRICT` 修飾子が指定された場合、クエリはレプリケーションキューが空になるまで待機します。レプリケーションキューに新しいエントリが継続的に追加される場合、`STRICT` バージョンは完了しない可能性があります。 +* `IF EXISTS`(25.6 以降で利用可能)を付けると、テーブルが存在しない場合でもクエリはエラーをスローしません。これは、新しいレプリカをクラスターに追加する際に有用です。この場合、レプリカはすでにクラスター構成の一部になっていても、テーブルの作成と同期の処理中であることがあります。 +* `STRICT` 修飾子が指定された場合、クエリはレプリケーションキューが空になるまで待機します。レプリケーションキューに新しいエントリが継続的に追加される場合、この `STRICT` クエリが完了しない可能性があります。 * `LIGHTWEIGHT` 修飾子が指定された場合、クエリは `GET_PART`、`ATTACH_PART`、`DROP_RANGE`、`REPLACE_RANGE`、`DROP_PART` エントリが処理されるまでのみ待機します。 - 加えて、`LIGHTWEIGHT` 修飾子はオプションの FROM 'srcReplicas' 句をサポートします。ここで 'srcReplicas' は、ソースレプリカ名のカンマ区切りリストです。この拡張により、指定されたソースレプリカから発生したレプリケーションタスクのみに対象を絞ることで、より的を絞った同期が可能になります。 -* `PULL` 修飾子が指定された場合、クエリは ZooKeeper から新しいレプリケーションキューエントリをフェッチしますが、いずれのエントリの処理完了も待機しません。 + さらに、LIGHTWEIGHT 修飾子はオプションの FROM 'srcReplicas' 句をサポートしており、'srcReplicas' はソースレプリカ名のカンマ区切りリストです。この拡張により、指定されたソースレプリカから発生したレプリケーションタスクのみに対象を絞った同期が可能になります。 +* `PULL` 修飾子が指定された場合、クエリは ZooKeeper から新しいレプリケーションキューエントリを取得しますが、何かが処理されるのを待機することはありません。 + ### SYNC DATABASE REPLICA {#sync-database-replica} -指定された[レプリケートデータベース](/engines/database-engines/replicated)が、そのデータベースの DDL キューにあるすべてのスキーマ変更の適用を完了するまで待機します。 +指定した[レプリケーテッドデータベース](/engines/database-engines/replicated)が、そのデータベースの DDL キューからのすべてのスキーマ変更を反映し終えるまで待機します。 **構文** @@ -548,32 +582,34 @@ SYSTEM SYNC REPLICA [ON CLUSTER cluster_name] [db.]replicated_merge_tree_family_ SYSTEM SYNC DATABASE REPLICA replicated_database_name; ``` + ### SYSTEM RESTART REPLICA {#restart-replica} -`ReplicatedMergeTree` テーブルに対して ZooKeeper セッションの状態を再初期化します。現在の状態を信頼できる唯一の情報源である ZooKeeper と比較し、必要に応じて ZooKeeper キューにタスクを追加します。 +`ReplicatedMergeTree` テーブルに対して ZooKeeper セッションの状態を再初期化できるようにし、現在の状態を信頼できる情報源である ZooKeeper 上の状態と比較し、必要に応じて ZooKeeper のキューにタスクを追加します。 ZooKeeper のデータに基づくレプリケーションキューの初期化は、`ATTACH TABLE` ステートメントの場合と同じ方法で行われます。短時間のあいだ、そのテーブルはあらゆる操作に対して利用できなくなります。 ```sql SYSTEM RESTART REPLICA [ON CLUSTER cluster_name] [db.]replicated_merge_tree_family_table_name ``` + ### SYSTEM RESTORE REPLICA {#restore-replica} -データは存在している可能性があるが、ZooKeeper のメタデータが失われたレプリカを復元します。 +データ自体は存在している「可能性がある」が、ZooKeeper のメタデータが失われたレプリカを復元します。 -`ReplicatedMergeTree` の読み取り専用テーブルでのみ動作します。 +読み取り専用の `ReplicatedMergeTree` テーブルに対してのみ動作します。 -次のような状況が発生した後に、このクエリを実行できます: +以下のような状況の後にクエリを実行できます: -- ZooKeeper ルート `/` の消失。 -- レプリカパス `/replicas` の消失。 -- 個々のレプリカパス `/replicas/replica_name/` の消失。 +- ZooKeeper のルート `/` が失われた場合。 +- レプリカのパス `/replicas` が失われた場合。 +- 個々のレプリカのパス `/replicas/replica_name/` が失われた場合。 -レプリカはローカルで見つかったパーツをアタッチして、それらに関する情報を ZooKeeper に送信します。 -メタデータの消失前にレプリカ上に存在していたパーツは、古くなっていない限り他のレプリカから再取得されません(そのため、レプリカの復元は、すべてのデータをネットワーク越しに再ダウンロードすることを意味しません)。 +レプリカはローカルで見つかったパーツをアタッチし、それらに関する情報を ZooKeeper に送信します。 +メタデータ消失前にレプリカ上に存在していたパーツは、古くなっていない限り他のレプリカから再取得されません(つまり、レプリカの復元がネットワーク経由ですべてのデータを再ダウンロードすることを意味するわけではありません)。 :::note -あらゆる状態のパーツは `detached/` ディレクトリに移動されます。データ消失前にアクティブ(コミット済み)だったパーツがアタッチされます。 +すべての状態のパーツが `detached/` フォルダに移動されます。データ消失前にアクティブだった(コミット済みの)パーツはアタッチされます。 ::: ### SYSTEM RESTORE DATABASE REPLICA {#restore-database-replica} @@ -638,7 +674,7 @@ SYSTEM RESTORE REPLICA test ON CLUSTER cluster; ### SYSTEM RESTART REPLICAS {#restart-replicas} -すべての `ReplicatedMergeTree`テーブルに対してZooKeeperセッションの状態を再初期化します。現在の状態を、正とみなすZooKeeper上の状態と比較し、必要に応じてタスクをZooKeeperキューに追加します。 +すべての `ReplicatedMergeTree` テーブルについて ZooKeeper セッションの状態を再初期化する機能です。現在の状態を唯一の正とみなす ZooKeeper 上の状態と比較し、必要に応じて ZooKeeper のキューにタスクを追加します。 ### SYSTEM DROP FILESYSTEM CACHE {#drop-filesystem-cache} @@ -651,7 +687,7 @@ SYSTEM DROP FILESYSTEM CACHE [ON CLUSTER cluster_name] ### SYSTEM SYNC FILE CACHE {#sync-file-cache} :::note -負荷が大きく、悪用されるおそれがあります。 +これは非常に負荷が高く、誤用される可能性があります。 ::: `sync` システムコールを実行します。 @@ -660,9 +696,10 @@ SYSTEM DROP FILESYSTEM CACHE [ON CLUSTER cluster_name] SYSTEM SYNC FILE CACHE [ON CLUSTER cluster_name] ``` + ### SYSTEM LOAD PRIMARY KEY {#load-primary-key} -指定したテーブル、またはすべてのテーブルのプライマリキーをロードします。 +指定したテーブル、またはすべてのテーブルの PRIMARY KEY をロードします。 ```sql SYSTEM LOAD PRIMARY KEY [db.]name @@ -672,9 +709,10 @@ SYSTEM LOAD PRIMARY KEY [db.]name SYSTEM LOAD PRIMARY KEY ``` + ### SYSTEM UNLOAD PRIMARY KEY {#unload-primary-key} -指定したテーブル、またはすべてのテーブルについてプライマリキーをアンロードします。 +指定したテーブル、またはすべてのテーブルの主キーをアンロードします。 ```sql SYSTEM UNLOAD PRIMARY KEY [db.]name @@ -684,11 +722,12 @@ SYSTEM UNLOAD PRIMARY KEY [db.]name SYSTEM UNLOAD PRIMARY KEY ``` -## リフレッシャブルmaterialized viewの管理 {#refreshable-materialized-views} -[リフレッシャブルmaterialized view](../../sql-reference/statements/create/view.md#refreshable-materialized-view)によって実行されるバックグラウンドタスクを制御するためのコマンドです。 +## リフレッシャブルmaterialized view の管理 {#refreshable-materialized-views} -これらを使用する際は、[`system.view_refreshes`](../../operations/system-tables/view_refreshes.md) を監視してください。 +[リフレッシャブルmaterialized view](../../sql-reference/statements/create/view.md#refreshable-materialized-view) によって実行されるバックグラウンドタスクを制御するためのコマンド群です。 + +使用中は [`system.view_refreshes`](../../operations/system-tables/view_refreshes.md) を監視してください。 ### SYSTEM REFRESH VIEW {#refresh-view} @@ -700,7 +739,7 @@ SYSTEM REFRESH VIEW [db.]name ### SYSTEM WAIT VIEW {#wait-view} -現在実行中のリフレッシュが完了するまで待機します。リフレッシュが失敗した場合は例外をスローします。リフレッシュが実行されていない場合は即座に終了し、前回のリフレッシュが失敗している場合は例外をスローします。 +現在実行中のリフレッシュが完了するまで待機します。リフレッシュが失敗した場合は例外をスローします。リフレッシュが実行されていない場合は直ちに完了し、前回のリフレッシュが失敗している場合は例外をスローします。 ### SYSTEM STOP [REPLICATED] VIEW, STOP VIEWS {#stop-view-stop-views} @@ -708,6 +747,11 @@ SYSTEM REFRESH VIEW [db.]name VIEWがReplicatedまたはSharedデータベース内にある場合、`STOP VIEW`は現在のレプリカにのみ影響し、`STOP REPLICATED VIEW`はすべてのレプリカに影響します。 +:::note +停止状態はサーバーの再起動をまたいで保持されることはありません。再起動後は、VIEWのリフレッシュは設定済みのスケジュールに従って再開されます。 +ReplicatedまたはSharedデータベースでは、`SYSTEM STOP VIEW`は現在のレプリカにのみ影響します。すべてのレプリカでの更新を停止するには、`SYSTEM STOP REPLICATED VIEW`を使用してください。 +::: + ```sql SYSTEM STOP VIEW [db.]name ``` @@ -716,11 +760,12 @@ SYSTEM STOP VIEW [db.]name SYSTEM STOP VIEWS ``` + ### SYSTEM START [REPLICATED] VIEW, START VIEWS {#start-view-start-views} -指定された VIEW、またはすべてのリフレッシュ可能な VIEW に対して、定期的なリフレッシュを有効にします。即時のリフレッシュは実行されません。 +指定したビュー、またはすべてのリフレッシュ可能なビューに対して、定期的なリフレッシュを有効化します。即時のリフレッシュは行われません。 -VIEW が Replicated または Shared データベース内にある場合、`START VIEW` は `STOP VIEW` の効果を元に戻し、`START REPLICATED VIEW` は `STOP REPLICATED VIEW` の効果を元に戻します。 +ビューが Replicated または Shared データベース内にある場合、`START VIEW` は `STOP VIEW` の効果を打ち消し、`START REPLICATED VIEW` は `STOP REPLICATED VIEW` の効果を打ち消します。 ```sql SYSTEM START VIEW [db.]name @@ -730,21 +775,23 @@ SYSTEM START VIEW [db.]name SYSTEM START VIEWS ``` + ### SYSTEM CANCEL VIEW {#cancel-view} -現在のレプリカ上で指定されたビューのリフレッシュ処理が進行中であれば、それを中断してキャンセルします。進行中でなければ、何も行いません。 +指定されたビューについて現在のレプリカ上でリフレッシュが実行中の場合、それを中断してキャンセルします。実行中でない場合は何もしません。 ```sql SYSTEM CANCEL VIEW [db.]name ``` + ### SYSTEM WAIT VIEW {#system-wait-view} -実行中のリフレッシュが完了するまで待機します。リフレッシュが実行されていない場合は、即座に戻ります。直近のリフレッシュ試行が失敗している場合は、エラーを返します。 +実行中のリフレッシュが完了するまで待機します。リフレッシュが実行されていない場合は、即座に戻ります。直前のリフレッシュ試行が失敗している場合は、エラーを返します。 -新しいリフレッシャブルmaterialized viewをEMPTYキーワードなしで作成した直後に、初回リフレッシュの完了を待つために使用できます。 +新しいリフレッシャブルmaterialized view を(EMPTY キーワードなしで)作成した直後に、初回リフレッシュの完了を待つ目的で使用できます。 -VIEWがReplicatedまたはSharedデータベースにあり、別のレプリカでリフレッシュが実行されている場合、そのリフレッシュが完了するまで待機します。 +ビューが Replicated または Shared データベース内にあり、別のレプリカでリフレッシュが実行中の場合、そのリフレッシュが完了するまで待機します。 ```sql SYSTEM WAIT VIEW [db.]name diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2017.md b/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2017.md index 0f5205c1fe7..5c07b2bbbbf 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2017.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2017.md @@ -1,6 +1,6 @@ --- slug: /whats-new/changelog/2017 -sidebar_position: 10 +sidebar_position: -2017 sidebar_label: '2017' title: '2017年変更履歴' description: '2017年の変更履歴' @@ -62,7 +62,7 @@ keywords: ['ClickHouse 2017', 'changelog 2017', 'release notes', 'version histor #### ビルドの改善: {#build-improvements} -- いくつかのサードパーティライブラリ(特に Poco)を更新し、git サブモジュールとして取り込みました。 +- いくつかのサードパーティライブラリ(特に Poco)を更新し、git サブモジュール化しました。 ### ClickHouse リリース 1.1.54304, 2017-10-19 {#clickhouse-release-1-1-54304-2017-10-19} @@ -72,8 +72,6 @@ keywords: ['ClickHouse 2017', 'changelog 2017', 'release notes', 'version histor #### バグ修正: {#bug-fixes-1} - - - レプリケーテッドテーブルに対する `ALTER` は、可能な限り早く実行を開始するようになりました。 - 設定 `preferred_block_size_bytes=0` でデータを読み込む際にクラッシュする問題を修正しました。 - `Page Down` キーを押したときに `clickhouse-client` がクラッシュする問題を修正しました。 @@ -100,9 +98,9 @@ keywords: ['ClickHouse 2017', 'changelog 2017', 'release notes', 'version histor - `part ... intersects previous part` というメッセージが出力され、レプリカの一貫性が弱まることがあった問題を修正しました。 - シャットダウン中に ZooKeeper が利用できない場合に、サーバーがハングする問題を修正しました。 -- レプリカを復元する際の過剰なログ出力を削除しました。 +- レプリカを復元する際の過剰なログ出力を抑制しました。 - `UNION ALL` の実装における不具合を修正しました。 -- ブロック内の最初の列が Array 型である場合に発生していた `concat` 関数のエラーを修正しました。 +- ブロック内の最初のカラムが Array 型である場合に発生していた `concat` 関数のエラーを修正しました。 - `system.merges` テーブルで進捗が正しく表示されるようになりました。 ### ClickHouse リリース 1.1.54289, 2017-09-13 {#clickhouse-release-1-1-54289-2017-09-13} @@ -125,8 +123,6 @@ keywords: ['ClickHouse 2017', 'changelog 2017', 'release notes', 'version histor #### バグ修正: {#bug-fixes-3} - - - ZooKeeper で古いノードを削除する処理を改善しました。以前は、非常に頻繁に挿入が行われている場合に古いノードが削除されない場合があり、その結果、サーバーのシャットダウンが遅くなるなどの問題が発生していました。 - ZooKeeper への接続先ホストを選択する際のランダム化処理を修正しました。 - レプリカが `localhost` の場合に、分散クエリで遅延しているレプリカを除外できない問題を修正しました。 @@ -151,7 +147,7 @@ keywords: ['ClickHouse 2017', 'changelog 2017', 'release notes', 'version histor ### ClickHouse リリース 1.1.54284, 2017-08-29 {#clickhouse-release-1-1-54284-2017-08-29} -- これは前バージョン 1.1.54282 のバグ修正リリースです。ZooKeeper のパーツディレクトリで発生していたリークを修正します。 +- これは前バージョン 1.1.54282 のバグ修正リリースです。ZooKeeper のパーツディレクトリで発生していたリークを修正しました。 ### ClickHouse リリース 1.1.54282, 2017-08-23 {#clickhouse-release-1-1-54282-2017-08-23} @@ -165,8 +161,6 @@ keywords: ['ClickHouse 2017', 'changelog 2017', 'release notes', 'version histor #### 新機能: {#new-features-4} - - - SELECT クエリ用にオプションの WITH 句を追加しました。クエリ例: `WITH 1+1 AS a SELECT a, a*a` - Distributed テーブルで同期的に INSERT を実行できるようになりました: すべてのデータがすべてのシャードに保存された後にのみ OK が返されます。これは設定 insert_distributed_sync=1 によって有効化されます。 - 16 バイト識別子を扱うための UUID データ型を追加しました。 @@ -209,8 +203,6 @@ keywords: ['ClickHouse 2017', 'changelog 2017', 'release notes', 'version histor #### バグ修正: {#bug-fixes-4} - - - Merge テーブルを使用した分散テーブルで、`_table` フィールドに条件を指定した SELECT クエリが正しく動作するようになりました。 - ReplicatedMergeTree でデータパーツをチェックする際に発生するまれなレースコンディションを修正しました。 - サーバー起動時の「リーダー選出」中にフリーズする可能性があった問題を修正しました。 @@ -259,8 +251,8 @@ keywords: ['ClickHouse 2017', 'changelog 2017', 'release notes', 'version histor #### 軽微な変更: {#minor-changes} -- アラートがトリガーされた後、ログにフルスタックトレースを出力するようになりました。 -- 起動時の破損/余分なデータパーツ数の検証を緩和しました(誤検知が多すぎたため)。 +- アラートが発報された後、ログに完全なスタックトレースを出力するようになりました。 +- 起動時に行っていた破損/余分なデータパーツ数の検証を緩和しました(誤検知が多すぎたため)。 #### バグ修正: {#bug-fixes-5} @@ -276,4 +268,4 @@ keywords: ['ClickHouse 2017', 'changelog 2017', 'release notes', 'version histor - 定数値のみからなる ORDER BY サブクエリを修正しました。 - 以前は、DROP TABLE の失敗後に Replicated テーブルが不正な状態のまま残ることがありました。 - 結果が空のスカラーサブクエリのエイリアスが失われないようになりました。 -- `.so` ファイルが破損しても、コンパイルを使用するクエリがエラーで失敗しないようになりました。 +- `.so` ファイルが破損しても、コンパイルを使用するクエリがエラーで失敗しないようになりました。 \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2018.md b/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2018.md index d650ab95518..355a8f9f29d 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2018.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2018.md @@ -1,6 +1,6 @@ --- slug: /whats-new/changelog/2018 -sidebar_position: 9 +sidebar_position: -2018 sidebar_label: '2018' title: '2018年の変更履歴' description: '2018年の変更履歴' @@ -8,8 +8,6 @@ doc_type: 'changelog' keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', 'バージョン履歴', '旧リリース'] --- - - ## ClickHouse リリース 18.16 {#clickhouse-release-18-16} ### ClickHouse リリース 18.16.1, 2018-12-21 {#clickhouse-release-18-16-1-2018-12-21} @@ -31,8 +29,6 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', #### 新機能: {#new-features} - - - セミ構造化入力フォーマット(`JSONEachRow`、`TSKV`)でデータをロードする際、欠損フィールドに対して `DEFAULT` 式が評価されます。この機能は `insert_sample_with_metadata` 設定で有効になります。 [#3555](https://github.com/ClickHouse/ClickHouse/pull/3555) - `ALTER TABLE` クエリに、テーブル列の追加や削除時にソートキーを変更するための `MODIFY ORDER BY` アクションが追加されました。これは、このソートキーに基づいてマージ時に追加処理を行う `MergeTree` ファミリーのテーブル、例えば `SummingMergeTree` や `AggregatingMergeTree` などで有用です。 [#3581](https://github.com/ClickHouse/ClickHouse/pull/3581) [#3755](https://github.com/ClickHouse/ClickHouse/pull/3755) - `MergeTree` ファミリーのテーブルに対して、ソートキー(`ORDER BY`)とインデックス(`PRIMARY KEY`)を別々に指定できるようになりました。ソートキーはインデックスより長くすることができます。 [#3581](https://github.com/ClickHouse/ClickHouse/pull/3581) @@ -52,8 +48,6 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', #### バグ修正: {#bug-fixes-1} - - * `LowCardinality` データ型に対する不具合修正とパフォーマンスの改善。`LowCardinality(Nullable(...))` を使用した `GROUP BY`。`extremes` の値の取得。高階関数の処理。`LEFT ARRAY JOIN`。分散 `GROUP BY`。`Array` を返す関数。`ORDER BY` の実行。`Distributed` テーブルへの書き込み (nicelulu)。`Native` プロトコルを実装する旧クライアントからの `INSERT` クエリに対する後方互換性。`JOIN` に対する `LowCardinality` のサポート。単一ストリームでの動作時のパフォーマンス改善。 [#3823](https://github.com/ClickHouse/ClickHouse/pull/3823) [#3803](https://github.com/ClickHouse/ClickHouse/pull/3803) [#3799](https://github.com/ClickHouse/ClickHouse/pull/3799) [#3769](https://github.com/ClickHouse/ClickHouse/pull/3769) [#3744](https://github.com/ClickHouse/ClickHouse/pull/3744) [#3681](https://github.com/ClickHouse/ClickHouse/pull/3681) [#3651](https://github.com/ClickHouse/ClickHouse/pull/3651) [#3649](https://github.com/ClickHouse/ClickHouse/pull/3649) [#3641](https://github.com/ClickHouse/ClickHouse/pull/3641) [#3632](https://github.com/ClickHouse/ClickHouse/pull/3632) [#3568](https://github.com/ClickHouse/ClickHouse/pull/3568) [#3523](https://github.com/ClickHouse/ClickHouse/pull/3523) [#3518](https://github.com/ClickHouse/ClickHouse/pull/3518) * `select_sequential_consistency` オプションの動作を修正しました。以前は、この設定を有効にしていると、新しいパーティションへの書き込みを開始した直後に、不完全な結果が返されることがありました。 [#2863](https://github.com/ClickHouse/ClickHouse/pull/2863) * DDL の `ON CLUSTER` クエリおよび `ALTER UPDATE/DELETE` クエリを実行する際に、データベースが正しく指定されるようになりました。 [#3772](https://github.com/ClickHouse/ClickHouse/pull/3772) [#3460](https://github.com/ClickHouse/ClickHouse/pull/3460) @@ -79,12 +73,8 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', * `Buffer` テーブルからの読み取り中に、対象テーブルに対して同時に `ALTER` または `DROP` を実行した場合に発生していたレースコンディションを修正しました。 [#3719](https://github.com/ClickHouse/ClickHouse/pull/3719) * `max_temporary_non_const_columns` の制限を超えた場合にセグメンテーションフォルトが発生する問題を修正しました。 [#3788](https://github.com/ClickHouse/ClickHouse/pull/3788) - - #### 改善点: {#improvements-1} - - * サーバーは処理済みの設定ファイルを `/etc/clickhouse-server/` ディレクトリには書き込みません。代わりに、`path` 内の `preprocessed_configs` ディレクトリに保存します。これは、`/etc/clickhouse-server/` ディレクトリが `clickhouse` ユーザーに対して書き込み権限を持たないようになっており、その結果セキュリティが向上することを意味します。 [#2443](https://github.com/ClickHouse/ClickHouse/pull/2443) * `min_merge_bytes_to_use_direct_io` オプションはデフォルトで 10 GiB に設定されています。MergeTree ファミリーのテーブルから大きなデータパーツを生成するマージは `O_DIRECT` モードで実行され、これにより不要なページキャッシュの大量な破棄が防止されます。[#3504](https://github.com/ClickHouse/ClickHouse/pull/3504) * 非常に多くのテーブルが存在する場合のサーバー起動を高速化。 [#3398](https://github.com/ClickHouse/ClickHouse/pull/3398) @@ -115,8 +105,6 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', * `rowNumberInAllBlocks` のようなステートフルな関数の動作を修正しました。以前は、クエリ解析の段階からカウントを開始していたため、結果が本来よりも 1 だけ大きい値を出力していました。[Amos Bird](https://github.com/ClickHouse/ClickHouse/pull/3729) * `force_restore_data` ファイルを削除できない場合、エラーメッセージが表示されます。 [Amos Bird](https://github.com/ClickHouse/ClickHouse/pull/3794) - - #### ビルドの改善: {#build-improvements-1} - 潜在的なメモリリークを修正するために `jemalloc` ライブラリを更新しました。 [Amos Bird](https://github.com/ClickHouse/ClickHouse/pull/3557) @@ -132,8 +120,6 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', - `Date` 型と数値を比較する機能を削除しました。`toDate('2018-12-18') = 17883` の代わりに、明示的な型変換である `= toDate(17883)` を使用する必要があります。 [#3687](https://github.com/ClickHouse/ClickHouse/pull/3687) - - ## ClickHouse リリース 18.14 {#clickhouse-release-18-14} ### ClickHouse リリース 18.14.19, 2018-12-19 {#clickhouse-release-18-14-19-2018-12-19} @@ -146,7 +132,7 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', #### ビルドの改善: {#build-improvements-2} -- ARM 上でのビルドに関する修正。 +- ARM 向けビルドに関する修正。 ### ClickHouse リリース 18.14.18, 2018-12-04 {#clickhouse-release-18-14-18-2018-12-04} @@ -181,8 +167,6 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', #### バグ修正: {#bug-fixes-6} - - - クラスターがセキュア接続で構成されている場合(`` フラグ)における `ON CLUSTER` クエリを修正。[#3599](https://github.com/ClickHouse/ClickHouse/pull/3599) #### ビルドの変更: {#build-changes-1} @@ -212,7 +196,7 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', #### バグ修正: {#bug-fixes-8} - 2 つの名前なしサブクエリを結合した際のクラッシュを修正。[#3505](https://github.com/ClickHouse/ClickHouse/pull/3505) -- 外部データベースをクエリする際に、空の `WHERE` 句を持つ誤ったクエリが生成される問題を修正。[hotid](https://github.com/ClickHouse/ClickHouse/pull/3477) +- 外部データベースをクエリする際に、空の `WHERE` 句を含む誤ったクエリが生成される問題を修正。[hotid](https://github.com/ClickHouse/ClickHouse/pull/3477) - ODBC 辞書で誤ったタイムアウト値が使用される問題を修正。[Marek Vavruša](https://github.com/ClickHouse/ClickHouse/pull/3511) ### ClickHouse リリース 18.14.11, 2018-10-29 {#clickhouse-release-18-14-11-2018-10-29} @@ -233,8 +217,6 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', #### 新機能: {#new-features-1} - - - `GROUP BY` 用の `WITH CUBE` 修飾子(代替構文として `GROUP BY CUBE(...)` も利用可能)。 [#3172](https://github.com/ClickHouse/ClickHouse/pull/3172) - `formatDateTime` 関数を追加。 [Alexandr Krasheninnikov](https://github.com/ClickHouse/ClickHouse/pull/2770) - `JDBC` テーブルエンジンと `jdbc` テーブル関数を追加(clickhouse-jdbc-bridge のインストールが必要)。 [Alexandr Krasheninnikov](https://github.com/ClickHouse/ClickHouse/pull/3210) @@ -253,8 +235,6 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', #### 改善点: {#improvements-2} - - * `ORDER BY` と `LIMIT` を含むクエリのメモリ使用量を大幅に削減しました。`max_bytes_before_remerge_sort` 設定を参照してください。 [#3205](https://github.com/ClickHouse/ClickHouse/pull/3205) * `JOIN`(`LEFT`、`INNER` など)が指定されていない場合は、自動的に `INNER JOIN` が使用されます。 [#3147](https://github.com/ClickHouse/ClickHouse/pull/3147) * 修飾付きアスタリスクは `JOIN` を含むクエリでも正しく動作します。 [Winter Zhang](https://github.com/ClickHouse/ClickHouse/pull/3202) @@ -284,12 +264,8 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', * `MergeTree table` からの読み込み時に発生する `open` および `close` システムコールの回数を減らしました。 [#3283](https://github.com/ClickHouse/ClickHouse/pull/3283) * `TRUNCATE TABLE` クエリは任意のレプリカ上で実行できるようになり、クエリはリーダーレプリカに転送されます。[Kirill Shvakov](https://github.com/ClickHouse/ClickHouse/pull/3375) - - #### バグ修正: {#bug-fixes-10} - - * `range_hashed` 辞書用の `Dictionary` テーブルに存在した問題を修正しました。この不具合はバージョン 18.12.17 で発生していました。 [#1702](https://github.com/ClickHouse/ClickHouse/pull/1702) * `range_hashed` ディクショナリの読み込み時に発生していたエラー(メッセージ `Unsupported type Nullable (...)`)を修正しました。このエラーはバージョン 18.12.17 で発生していました。 [#3362](https://github.com/ClickHouse/ClickHouse/pull/3362) * `pointInPolygon` 関数において、多くの頂点が互いに近接して配置されたポリゴンで計算誤差が蓄積することにより発生していた不具合を修正しました。 [#3331](https://github.com/ClickHouse/ClickHouse/pull/3331) [#3341](https://github.com/ClickHouse/ClickHouse/pull/3341) @@ -324,14 +300,10 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', * 等価比較の AND 連鎖を対応する IN 式に置き換える最適化の後、まれなケースで発生する可能性があったセグメンテーションフォルトを修正しました。 [liuyimin-bytedance](https://github.com/ClickHouse/ClickHouse/pull/3339) * `clickhouse-benchmark` に対する軽微な修正: 以前はクライアント情報がサーバーに送信されていませんでしたが、これにより、終了時および反復回数を制限する際の実行クエリ数が、より正確に算出されるようになりました。 [#3351](https://github.com/ClickHouse/ClickHouse/pull/3351) [#3352](https://github.com/ClickHouse/ClickHouse/pull/3352) - - #### 後方互換性のない変更: {#backward-incompatible-changes-1} - `allow_experimental_decimal_type` オプションを削除しました。`Decimal` データ型はデフォルトで利用可能になりました。 [#3329](https://github.com/ClickHouse/ClickHouse/pull/3329) - - ## ClickHouse リリース 18.12 {#clickhouse-release-18-12} ### ClickHouse リリース 18.12.17, 2018-09-16 {#clickhouse-release-18-12-17-2018-09-16} @@ -366,13 +338,11 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', #### 改良 {#improvements-3} -- ミューテーションの間にデータパートが変更されなかった場合、レプリカはそのパートをダウンロードしません。[#3103](https://github.com/ClickHouse/ClickHouse/pull/3103) +- ミューテーション中にデータパートが変更されなかった場合、レプリカはそのパートをダウンロードしなくなりました。[#3103](https://github.com/ClickHouse/ClickHouse/pull/3103) - `clickhouse-client` を使用する際に、設定名のオートコンプリート(補完)が利用可能になりました。[#3106](https://github.com/ClickHouse/ClickHouse/pull/3106) #### バグ修正: {#bug-fixes-12} - - - 挿入時に、`Nested` 型フィールドの要素である配列のサイズを検査する処理を追加しました。 [#3118](https://github.com/ClickHouse/ClickHouse/pull/3118) - `ODBC` ソースおよび `hashed` ストレージを使用した外部辞書の更新時に発生していたエラーを修正しました。このエラーはバージョン 18.12.13 で発生していました。 - `IN` 条件を含むクエリから一時テーブルを作成する際にクラッシュする問題を修正しました。 [Winter Zhang](https://github.com/ClickHouse/ClickHouse/pull/3098) @@ -382,8 +352,6 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', #### 新機能: {#new-features-4} - - * `DECIMAL(digits, scale)` データ型(`Decimal32(scale)`、`Decimal64(scale)`、`Decimal128(scale)`)を追加しました。このデータ型を有効にするには、設定 `allow_experimental_decimal_type` を使用します。 [#2846](https://github.com/ClickHouse/ClickHouse/pull/2846) [#2970](https://github.com/ClickHouse/ClickHouse/pull/2970) [#3008](https://github.com/ClickHouse/ClickHouse/pull/3008) [#3047](https://github.com/ClickHouse/ClickHouse/pull/3047) * `GROUP BY` 用の新しい `WITH ROLLUP` 修飾子(代替構文: `GROUP BY ROLLUP(...)`)。[#2948](https://github.com/ClickHouse/ClickHouse/pull/2948) * `JOIN` を含むクエリでは、SQL 標準に従い、アスタリスク文字はすべてのテーブルに含まれるカラムの一覧に展開されます。ユーザー設定レベルで `asterisk_left_columns_only` を 1 に設定することで、従来の動作に戻せます。 [Winter Zhang](https://github.com/ClickHouse/ClickHouse/pull/2787) @@ -406,8 +374,6 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', * 集約関数の状態を、加算演算子(+)で加算(マージ)できるようになり、さらに、その状態を非負の定数で乗算できるようになりました。 [#3062](https://github.com/ClickHouse/ClickHouse/pull/3062) [#3034](https://github.com/ClickHouse/ClickHouse/pull/3034) * MergeTree ファミリーのテーブルで、仮想カラム `_partition_id` が利用できるようになりました。 [#3089](https://github.com/ClickHouse/ClickHouse/pull/3089) - - #### 実験的機能: {#experimental-features-1} - `LowCardinality(T)` データ型を追加しました。このデータ型は値のローカル辞書を自動的に作成し、辞書を展開することなくデータ処理を行えるようにします。 [#2830](https://github.com/ClickHouse/ClickHouse/pull/2830) @@ -415,8 +381,6 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', #### 改良点: {#improvements-4} - - * 放棄されたレプリカが存在する際に、レプリケーションログが無制限に蓄積し続ける問題を修正しました。大きな遅延があるレプリカ向けに、有効なリカバリーモードを追加しました。 * `GROUP BY` において、複数の集約フィールドを指定している場合に、そのうち 1 つが文字列で残りが固定長型であるときのパフォーマンスを改善しました。 * `PREWHERE` の使用時および式が暗黙的に `PREWHERE` に転送される場合のパフォーマンスが向上しました。` @@ -444,12 +408,8 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', * 多数の `ReplicatedMergeTree` テーブルが存在する場合に、クリーンアップスレッドの定期実行によって発生する周期的な負荷スパイクを回避するため、`ReplicatedMergeTree` テーブルのクリーンアップスレッド実行タイミングにランダム性を持たせました。 * `ATTACH TABLE ... ON CLUSTER` クエリをサポート。 [#3025](https://github.com/ClickHouse/ClickHouse/pull/3025) - - #### バグ修正: {#bug-fixes-13} - - * `Dictionary` テーブルで発生していた問題(`Size of offsets does not match size of column` または `Unknown compression method` という例外がスローされる)を修正しました。このバグはバージョン 18.10.3 で発生していました。[#2913](https://github.com/ClickHouse/ClickHouse/issues/2913) * `vertical` アルゴリズムを用いてマージを行う際に、`CollapsingMergeTree` テーブルのマージ処理で、データパーツの一部が空の場合(これらのパーツは、すべてのデータが削除された場合のマージ処理中または `ALTER DELETE` 実行時に生成される)に発生していたバグを修正しました。 [#3049](https://github.com/ClickHouse/ClickHouse/pull/3049) * `SELECT` を同時に実行している `Memory` テーブルに対して `DROP` または `TRUNCATE` を行う際に発生するレースコンディションを修正しました。この問題によりサーバがクラッシュする可能性がありました。このバグはバージョン 1.1.54388 で導入されました。 [#3038](https://github.com/ClickHouse/ClickHouse/pull/3038) @@ -472,8 +432,6 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', * `SummingMergeTree` でネストされたデータ構造を追加するコードの誤りを修正しました。 * 集約関数の状態用メモリの割り当て時にアラインメントが正しく考慮されるようになり、集約関数の状態を実装する際にアラインメントを必要とする操作を使用できるようになりました。 [chenxing-xc](https://github.com/ClickHouse/ClickHouse/pull/2808) - - #### セキュリティ修正: {#security-fix} - ODBC データソースの安全な利用。ODBC ドライバーとのやり取りは、別プロセスである `clickhouse-odbc-bridge` を介して行われます。サードパーティ製 ODBC ドライバー内の不具合が原因でサーバーの安定性に影響したり、脆弱性につながったりすることがなくなりました。 [#2828](https://github.com/ClickHouse/ClickHouse/pull/2828) [#2879](https://github.com/ClickHouse/ClickHouse/pull/2879) [#2886](https://github.com/ClickHouse/ClickHouse/pull/2886) [#2893](https://github.com/ClickHouse/ClickHouse/pull/2893) [#2921](https://github.com/ClickHouse/ClickHouse/pull/2921) @@ -493,8 +451,6 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', - ビルドのデバッグ時に、`jemalloc` のデバッグオプションを使用するようになりました。 - ZooKeeper と連携するためのライブラリのインターフェースが抽象インターフェースとして宣言されました。 [#2950](https://github.com/ClickHouse/ClickHouse/pull/2950) - - ## ClickHouse リリース 18.10 {#clickhouse-release-18-10} ### ClickHouse リリース 18.10.3, 2018-08-13 {#clickhouse-release-18-10-3-2018-08-13} @@ -524,8 +480,6 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', #### バグ修正: {#bug-fixes-14} - - - ODBC の接続文字列パラメータに対する不要なエスケープを削除しました。これにより接続を確立できない問題が発生していました。この不具合はバージョン 18.6.0 で導入されました。 - レプリケーションキューにおける `REPLACE PARTITION` コマンドの処理ロジックを修正しました。同じパーティションに対する `REPLACE` コマンドが 2 つ存在する場合、不正なロジックにより、そのうちの 1 つがレプリケーションキューに残ったまま実行されないことがありました。[#2814](https://github.com/ClickHouse/ClickHouse/pull/2814) - すべてのデータパーツが空である場合(マージから生成されたパーツ、または `ALTER DELETE` によりすべてのデータが削除された結果として生成されたパーツ)に発生するマージのバグを修正しました。このバグはバージョン 18.1.0 で導入されました。[#2930](https://github.com/ClickHouse/ClickHouse/pull/2930) @@ -533,11 +487,11 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', - サブクエリ内の `UNION ALL` クエリで、`SELECT` クエリの 1 つに重複したカラム名が含まれている場合に発生していた `Block structure mismatch in UNION stream: different number of columns` エラーを修正しました。[Winter Zhang](https://github.com/ClickHouse/ClickHouse/pull/2094) - MySQL サーバーへの接続時に例外が発生した場合のメモリリークを修正しました。 - クエリエラー発生時の clickhouse-client の誤ったレスポンスコードを修正しました。 -- DISTINCT を含むマテリアライズドビューの誤った動作を修正しました。[#2795](https://github.com/ClickHouse/ClickHouse/issues/2795) +- DISTINCT を含む materialized view の誤った動作を修正しました。[#2795](https://github.com/ClickHouse/ClickHouse/issues/2795) #### 後方互換性のない変更 {#backward-incompatible-changes-4} -- Distributed テーブルに対する CHECK TABLE クエリのサポートを削除しました。 +- 分散テーブルに対する CHECK TABLE クエリのサポートを削除しました。 #### ビルドの変更: {#build-changes-3} @@ -547,8 +501,6 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', - サブモジュール由来の mariadb-connector-c を使用するようにしました。[#2785](https://github.com/ClickHouse/ClickHouse/pull/2785) - テストデータの有無に依存する機能テスト用のファイルをリポジトリに追加しました(当面の間、テストデータ自体は含まれていません)。 - - ## ClickHouse Release 18.6 {#clickhouse-release-18-6} ### ClickHouse Release 18.6.0, 2018-08-02 {#clickhouse-release-18-6-0-2018-08-02} @@ -562,9 +514,7 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', #### 改良: {#improvements-6} -- サーバーが自身のバージョンのパッチコンポーネント(patch component)をクライアントへ渡すようになりました。パッチコンポーネントに関するデータは `system.processes` および `query_log` に含まれます。 [#2646](https://github.com/ClickHouse/ClickHouse/pull/2646) - - +- サーバーが自身のバージョンのパッチ番号をクライアントへ渡すようになりました。パッチ番号に関するデータは `system.processes` および `query_log` に含まれます。 [#2646](https://github.com/ClickHouse/ClickHouse/pull/2646) ## ClickHouse リリース 18.5 {#clickhouse-release-18-5} @@ -583,8 +533,6 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', - レプリカの起動時に発生する可能性があったバグを修正しました [#2759](https://github.com/ClickHouse/ClickHouse/pull/2759)。 - - ## ClickHouse リリース 18.4 {#clickhouse-release-18-4} ### ClickHouse リリース 18.4.0, 2018-07-28 {#clickhouse-release-18-4-0-2018-07-28} @@ -614,8 +562,6 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', - `Kafka` エンジンのパラメータが、`Kafka(kafka_broker_list, kafka_topic_list, kafka_group_name, kafka_format[, kafka_schema, kafka_num_consumers])` から `Kafka(kafka_broker_list, kafka_topic_list, kafka_group_name, kafka_format[, kafka_row_delimiter, kafka_schema, kafka_num_consumers])` に変更された。テーブルで `kafka_schema` または `kafka_num_consumers` パラメータを使用している場合は、メタデータファイル `path/metadata/database/table.sql` を手動で編集し、値が `''` の `kafka_row_delimiter` パラメータを追加する必要がある。 - - ## ClickHouse リリース 18.1 {#clickhouse-release-18-1} ### ClickHouse リリース 18.1.0, 2018-07-23 {#clickhouse-release-18-1-0-2018-07-23} @@ -650,8 +596,6 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', - 数値のゼロのみを含む文字列から DateTime への変換は行えません。例: `SELECT toDateTime('0')`。これはテーブルで `DateTime DEFAULT '0'` が動作しない理由でもあり、辞書における `0` が動作しない理由でもあります。解決策: `0` を `0000-00-00 00:00:00` に置き換えてください。 - - ## ClickHouse リリース 1.1 {#clickhouse-release-1-1} ### ClickHouse リリース 1.1.54394, 2018-07-12 {#clickhouse-release-1-1-54394-2018-07-12} @@ -663,7 +607,7 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', #### バグ修正: {#bug-fixes-18} -- レプリケートデータの送信およびダウンロード時の読み書きにおいて、ソケットのタイムアウト(1 秒)が非常に短すぎたために、ネットワークまたはディスクに負荷がある場合に大きなパーツをダウンロードできず(パーツのダウンロードを繰り返し試行する状態になる)、問題が発生していたのを修正しました。この不具合はバージョン 1.1.54388 で発生していました。 +- レプリケートされたデータの送信およびダウンロード時の読み書きにおいて、ソケットのタイムアウト(1 秒)が非常に短すぎたために、ネットワークまたはディスクに負荷がある場合に大きなパーツをダウンロードできず(パーツのダウンロードを繰り返し試行する状態になる)問題が発生していたのを修正しました。この不具合はバージョン 1.1.54388 で発生していました。 - テーブルに重複するデータブロックを挿入した場合に、ZooKeeper で chroot を使用すると問題が発生する不具合を修正しました。 - `has` 関数が Nullable 要素を持つ配列に対して正しく動作するようになりました([#2115](https://github.com/ClickHouse/ClickHouse/issues/2115))。 - `system.tables` テーブルが分散クエリで正しく動作するようになりました。`metadata_modification_time` および `engine_full` カラムは非仮想カラムになりました。また、テーブルからこれらのカラムだけをクエリした場合に発生していたエラーを修正しました。 @@ -690,8 +634,6 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', #### バグ修正: {#bug-fixes-19} - - - ZooKeeper を使用する際、サーバー再起動前のテーブルのセッションおよび読み取り専用状態を復元できなくなる可能性があったバグを修正しました。 - ZooKeeper を使用する際、セッションが中断された場合に古いノードが削除されないことがあるバグを修正しました。 - Float 引数に対する `quantileTDigest` 関数のエラーを修正しました(このバグはバージョン 1.1.54388 で導入されました)([Mikhail Surin](https://github.com/ClickHouse/ClickHouse/pull/2553))。 @@ -729,9 +671,7 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', - `and` の引数を必要な箇所でのみ計算できるようにしました([Anastasia Tsarkova](https://github.com/ClickHouse/ClickHouse/pull/2272))。 - 一部の式に対して、ネイティブコードへの JIT コンパイルが利用可能になりました([pyos](https://github.com/ClickHouse/ClickHouse/pull/2277))。 -#### バグ修正: {#bug-fixes-20} - - +#### Bug Fixes: {#bug-fixes-20} - `DISTINCT` と `ORDER BY` を含むクエリで重複が表示されなくなりました。 - `ARRAY JOIN` と `arrayFilter` を含むクエリで誤った結果が返されなくなりました。 @@ -777,9 +717,7 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', - libtermcap の代わりに libtinfo ライブラリを使用できるようになりました([Georgy Kondratiev](https://github.com/ClickHouse/ClickHouse/pull/2519))。 - Fedora Rawhide におけるヘッダーファイルの競合を修正しました([#2520](https://github.com/ClickHouse/ClickHouse/issues/2520))。 -#### Backward Incompatible Changes: {#backward-incompatible-changes-7} - - +#### 後方互換性のない変更: {#backward-incompatible-changes-7} - `Vertical` と `Pretty*` フォーマットでのエスケープを削除し、`VerticalRaw` フォーマットを削除しました。 - 分散クエリで、バージョン 1.1.54388(またはそれ以降)のサーバーとそれ以前のバージョンのサーバーを同時に使用しており、かつクエリに `AS` キーワードなしの `cast(x, 'Type')` 式が含まれ、さらに `cast` という単語が大文字になっていない場合、`Not found column cast(0, 'UInt8') in block` のようなメッセージとともに例外がスローされます。解決策: クラスター全体のサーバーをアップデートしてください。 @@ -800,7 +738,7 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', #### バグ修正: {#bug-fixes-23} -- ClickHouse が ZooKeeper サーバーへの接続を失った際に、ZooKeeper 内でノードがリークする問題を修正しました。 +- ClickHouse が ZooKeeper サーバーへの接続が切れた際に、ZooKeeper 内のノードがリークする問題を修正しました。 ### ClickHouse Release 1.1.54380, 2018-04-21 {#clickhouse-release-1-1-54380-2018-04-21} @@ -824,14 +762,12 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', #### 後方互換性のない変更: {#backward-incompatible-changes-8} -- `(a, b) IN (SELECT (a, b))` のような式のサポートを削除しました(同等の式 `(a, b) IN (SELECT a, b)` を使用できます)。以前のリリースでは、これらの式は `WHERE` でのフィルタリング結果が不定になるか、エラーの原因となっていました。 +- `(a, b) IN (SELECT (a, b))` のような式のサポートを削除しました(同等の式 `(a, b) IN (SELECT a, b)` を使用できます)。以前のリリースでは、これらの式は `WHERE` 句でのフィルタリング結果が不定になるか、エラーの原因となっていました。 ### ClickHouse Release 1.1.54378, 2018-04-16 {#clickhouse-release-1-1-54378-2018-04-16} #### 新機能: {#new-features-14} - - - サーバーを再起動せずにログレベルを変更できるようになりました。 - `SHOW CREATE DATABASE` クエリを追加しました。 - `query_id` を `clickhouse-client` に渡せるようになりました (elBroom)。 @@ -878,8 +814,6 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', #### Backward Incompatible Changes: {#backward-incompatible-changes-9} - - - 左側に配列が指定された場合の `IN` 式に対する特別な解釈を削除しました。これまでは、式 `arr IN (set)` は「少なくとも 1 つの `arr` の要素が `set` に属している」と解釈されていました。この新しいバージョンで同じ動作を得るには、`arrayExists(x -> x IN (set), arr)` と書いてください。 - Poco ライブラリでデフォルトで誤って有効化されていたソケットオプション `SO_REUSEPORT` の不正な使用を無効にしました。Linux では、listen 用にアドレス `::` と `0.0.0.0` を同時に指定する理由はもはやないことに注意してください。IPv4 および IPv6 の両方で接続待ち受けを行うには(デフォルトのカーネル設定の場合)、`::` だけを使用してください。設定ファイルで `1` を指定することで、以前のバージョンの動作に戻すこともできます。 @@ -914,8 +848,6 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', #### New Features: {#new-features-16} - - * 空の集合に対する `GROUP BY` なしの集約(例: `SELECT count(*) FROM table WHERE 0`)は、SQL 標準に準拠して、集約関数に対して NULL 値を持つ 1 行の結果を返すようになりました。以前の動作(空の結果を返す)に戻すには、`empty_result_for_aggregation_by_empty_set` を 1 に設定してください。 * `UNION ALL` に対して型変換を追加しました。SQL 標準に準拠し、`UNION ALL` の各 `SELECT` 句では異なるエイリアス名を使用できます。 * `LIMIT BY` 句で任意の式を使用できるようになりました。これまでは、`SELECT` 句で得られる列のみを使用することができました。 @@ -952,8 +884,6 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', * `odbc_default_field_size` オプションを追加しました。これにより、ODBC ソースから読み込まれる値の最大サイズを増やすことができます(デフォルトは 1024)。 * `system.processes` テーブルと `SHOW PROCESSLIST` に、`is_cancelled` および `peak_memory_usage` 列が追加されました。 - - #### 改善点: {#improvements-15} - 結果に対する制限およびクォータは、`INSERT SELECT` クエリや `SELECT` サブクエリの中間データには適用されなくなりました。 @@ -1000,8 +930,6 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', #### 後方互換性のない変更: {#backward-incompatible-changes-10} - - - `distributed_ddl_allow_replicated_alter` オプションを削除しました。この動作はデフォルトで有効になっています。 - `strict_insert_defaults` 設定を削除しました。この機能を使用していた場合は、`feedback@clickhouse.com` までご連絡ください。 - `UnsortedMergeTree` エンジンを削除しました。 @@ -1009,8 +937,8 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', ### ClickHouse Release 1.1.54343, 2018-02-05 {#clickhouse-release-1-1-54343-2018-02-05} - 分散 DDL クエリおよび Distributed テーブルのコンストラクタで、クラスタ名を定義するためのマクロのサポートを追加しました: `CREATE TABLE distr ON CLUSTER '{cluster}' (...) ENGINE = Distributed('{cluster}', 'db', 'table')`。 -- `SELECT ... FROM table WHERE expr IN (subquery)` のようなクエリが、`table` のインデックスを使用して処理されるようになりました。 -- Replicated テーブルへの挿入時の重複処理を改善し、レプリケーションキューの実行を遅くしないようにしました。 +- `SELECT ... FROM table WHERE expr IN (subquery)` のようなクエリが、`table` の索引を使用して処理されるようになりました。 +- Replicated テーブルへの挿入時の重複処理を改善し、レプリケーションキューの実行を遅延させないようにしました。 ### ClickHouse Release 1.1.54342, 2018-01-22 {#clickhouse-release-1-1-54342-2018-01-22} @@ -1028,8 +956,6 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', #### 新機能: {#new-features-17} - - - テーブル内での多次元配列およびタプル(`Tuple` データ型)の保存サポートを追加しました。 - `DESCRIBE` および `INSERT` クエリ向けのテーブル関数をサポートしました。`DESCRIBE` でサブクエリを使用できるようにしました。例: `DESC TABLE remote('host', default.hits)`、`DESC TABLE (SELECT 1)`、`INSERT INTO TABLE FUNCTION remote('host', default.hits)`。`INSERT INTO` に加えて `INSERT INTO TABLE` もサポートしました。 - タイムゾーンのサポートを改善しました。`DateTime` データ型に対して、テキストフォーマットでのパースおよびフォーマットに使用されるタイムゾーンを注釈として指定できるようになりました。例: `DateTime('Asia/Istanbul')`。`DateTime` 引数に対して関数内でタイムゾーンが指定された場合、戻り値の型はそのタイムゾーンを保持し、値は期待どおりに表示されます。 @@ -1059,9 +985,7 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', - `clickhouse-local` ツールに `--silent` オプションを追加しました。これは、クエリ実行情報を stderr に出力しないようにします。 - テキストから `Date` 型の値を読み取る際に、月および/または日が 2 桁ではなく 1 桁で指定されるフォーマットのサポートを追加しました(Amos Bird)。 -#### パフォーマンス最適化: {#performance-optimizations} - - +#### パフォーマンスの最適化: {#performance-optimizations} - 文字列引数を取る集約関数 `min`、`max`、`any`、`anyLast`、`anyHeavy`、`argMin`、`argMax` のパフォーマンスを改善しました。 - 関数 `isInfinite`、`isFinite`、`isNaN`、`roundToExp2` のパフォーマンスを改善しました。 @@ -1072,8 +996,6 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', #### バグ修正: {#bug-fixes-28} - - - `DROP` または `DETACH PARTITION` クエリ実行後のデータ重複排除の問題を修正しました。以前のバージョンでは、パーティションを削除して同じデータを再挿入すると、挿入されたブロックが重複と見なされるため、正しく動作しませんでした。 - `POPULATE` を伴う `CREATE MATERIALIZED VIEW` クエリにおいて、`WHERE` 句が誤って解釈される可能性があったバグを修正しました。 - `zookeeper_servers` 設定での `root_path` パラメータの使用に関するバグを修正しました。 @@ -1113,8 +1035,6 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', #### ビルドの改善: {#build-improvements-4} - - - ビルドには `pbuilder` ツールが使用されます。ビルドプロセスはビルドホスト環境にほぼ完全に依存しません。 - 異なる OS バージョンに対して単一のビルド成果物を使用します。パッケージとバイナリは、幅広い Linux システムと互換性を持つように作成されています。 - `clickhouse-test` パッケージを追加しました。機能テストを実行するために使用できます。 @@ -1143,6 +1063,4 @@ keywords: ['ClickHouse 2018', '2018年の変更履歴', 'リリースノート', - クラスターでローリングアップデートを実行する際、一部のレプリカが古いバージョンの ClickHouse を実行しており、他が新しいバージョンを実行しているタイミングでは、レプリケーションはいったん停止し、ログに `unknown parameter 'shard'` というメッセージが表示されます。クラスター内のすべてのレプリカが更新されると、レプリケーションは再開されます。 - クラスターサーバーで異なるバージョンの ClickHouse が動作している場合、次の関数を使用する分散クエリで誤った結果が返される可能性があります: `varSamp`、`varPop`、`stddevSamp`、`stddevPop`、`covarSamp`、`covarPop`、`corr`。すべてのクラスターノードを更新する必要があります。 - - -## [2017 年の変更履歴](./2017.md) {#changelog-for-2017} +## [2017 年の変更履歴](./2017.md) {#changelog-for-2017} \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2019.md b/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2019.md index 63c15bf0b83..a89cf5615e3 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2019.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2019.md @@ -1,6 +1,6 @@ --- slug: /whats-new/changelog/2019 -sidebar_position: 8 +sidebar_position: -2019 sidebar_label: '2019' title: '2019 年の変更履歴' description: '2019 年の変更履歴' @@ -8,16 +8,12 @@ doc_type: 'changelog' keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', 'バージョン履歴', 'レガシーリリース'] --- - - ## ClickHouse リリース 19.17 {#clickhouse-release-v19-17} ### ClickHouse リリース 19.17.6.36, 2019-12-27 {#clickhouse-release-v19-17-6-36-2019-12-27} #### 不具合修正 {#bug-fix} - - * `decompress` における潜在的なバッファオーバーフローを修正しました。悪意のあるユーザーが、バッファ外の読み取りを引き起こすよう細工された圧縮データを渡すことで発生し得る問題がありました。この問題は Yandex の情報セキュリティチームに所属する Eldar Zaitov によって発見されました。 [#8404](https://github.com/ClickHouse/ClickHouse/pull/8404) ([alexey-milovidov](https://github.com/alexey-milovidov)) * サーバーが、UTF-8 検証を必要とする String データ型の値を含むデータを JSON または XML 形式で送信または書き込みできない場合、あるいは結果データを Brotli アルゴリズムで圧縮する場合、その他のいくつかのまれなケースにおいて `std::terminate` によりクラッシュする可能性があった問題を修正しました。 [#8384](https://github.com/ClickHouse/ClickHouse/pull/8384) ([alexey-milovidov](https://github.com/alexey-milovidov)) * ClickHouse の `VIEW` をソースとする固定ディクショナリで、それらを読み取ると `There is no query` エラーが発生していた問題を修正しました。 [#8351](https://github.com/ClickHouse/ClickHouse/pull/8351) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) @@ -48,8 +44,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' * 今後は、`LIMIT BY` と併用して `WITH TIES` を使用した場合に、例外がスローされます。また、`LIMIT BY` とともに `TOP` を使用できるようになりました。 [#7637](https://github.com/ClickHouse/ClickHouse/pull/7637) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) * `invalidate_query` を持つディクショナリのリロード処理を修正し、以前の更新試行時に更新が停止したり例外が発生したりしていた問題を解消しました。 [#8029](https://github.com/ClickHouse/ClickHouse/pull/8029) ([alesapin](https://github.com/alesapin)) - - ### ClickHouse リリース 19.17.4.11, 2019-11-22 {#clickhouse-release-v19-17-4-11-2019-11-22} #### 後方互換性のない変更 {#backward-incompatible-change} @@ -76,8 +70,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### バグ修正 {#bug-fix-1} - - * `Values` で発生していた浮動小数点数の誤解析を修正 [#7817](https://github.com/ClickHouse/ClickHouse/issues/7817) [#7870](https://github.com/ClickHouse/ClickHouse/pull/7870) ([tavplubix](https://github.com/tavplubix)) * trace_log 有効時にごくまれに発生するデッドロックを修正。 [#7838](https://github.com/ClickHouse/ClickHouse/pull/7838) ([filimonov](https://github.com/filimonov)) * それを参照する任意のマテリアライズドビュー (MV) を持つ Kafka テーブルにプロデュースする際のメッセージの重複を防止 [#7265](https://github.com/ClickHouse/ClickHouse/pull/7265) ([Ivan](https://github.com/abyss7)) @@ -101,8 +93,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' * S3、URL、HDFS ストレージを 1 つの引数のみで定義した場合に発生していた例外を修正しました。 [#7618](https://github.com/ClickHouse/ClickHouse/pull/7618) ([Vladimir Chebotarev](https://github.com/excitoon)) * ビューのクエリにおける InterpreterSelectQuery のスコープを修正 [#7601](https://github.com/ClickHouse/ClickHouse/pull/7601) ([Azat Khuzhin](https://github.com/azat)) - - #### 改良 {#improvement} - `Nullable` カラムが認識され、NULL 値が ODBC-bridge によって正しく処理されるようにしました。[#7402](https://github.com/ClickHouse/ClickHouse/pull/7402) ([Vasily Nemkov](https://github.com/Enmk)) @@ -124,9 +114,7 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' - Aggregator の `addBatch` と同様に、`arrayReduce` の処理をベクトル化しました。[#7608](https://github.com/ClickHouse/ClickHouse/pull/7608) ([Amos Bird](https://github.com/amosbird)) - `Kafka` のコンシューム処理のパフォーマンスをわずかに改善しました。[#7475](https://github.com/ClickHouse/ClickHouse/pull/7475) ([Ivan](https://github.com/abyss7)) -#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement} - - +#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement} - CPU アーキテクチャ AARCH64 向けのクロスコンパイルサポートを追加。パッケージャースクリプトをリファクタリング。[#7370](https://github.com/ClickHouse/ClickHouse/pull/7370) [#7539](https://github.com/ClickHouse/ClickHouse/pull/7539) ([Ivan](https://github.com/abyss7)) - パッケージをビルドする際に、darwin-x86_64 と linux-aarch64 のツールチェーンをマウントされた Docker ボリュームに展開 [#7534](https://github.com/ClickHouse/ClickHouse/pull/7534) ([Ivan](https://github.com/abyss7)) @@ -142,8 +130,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' - ClickHouse SQL 方言向けの ANTLR4 文法を追加 [#7595](https://github.com/ClickHouse/ClickHouse/issues/7595) [#7596](https://github.com/ClickHouse/ClickHouse/pull/7596) ([alexey-milovidov](https://github.com/alexey-milovidov)) - - ## ClickHouse リリース 19.16 {#clickhouse-release-v19-16} #### ClickHouse リリース 19.16.14.65, 2020-03-25 {#clickhouse-release-v19-16-14-65-2020-03-25} @@ -186,8 +172,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### 新機能 {#new-feature-2} - - - UINT_MAX を超えるカーディナリティを計算するための uniqCombined64() を導入。 [#7213](https://github.com/ClickHouse/ClickHouse/pull/7213), [#7222](https://github.com/ClickHouse/ClickHouse/pull/7222) ([Azat @@ -232,8 +216,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### バグ修正 {#bug-fix-2} - - - `WHERE IN (SELECT ...)` セクションを含み、`optimize_read_in_order` が使用されている場合に誤ったクエリ結果が返される問題を修正しました。 [#7371](https://github.com/ClickHouse/ClickHouse/pull/7371) ([Anton Popov](https://github.com/CurtizJ)) - プロジェクト外のファイルに依存している MariaDB 認証プラグインを無効にしました。 @@ -271,9 +253,7 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' [#7271](https://github.com/ClickHouse/ClickHouse/pull/7271) ([vzakaznikov](https://github.com/vzakaznikov)) -#### 改良 {#improvement-1} - - +#### 改善 {#improvement-1} - `queue_wait_max_ms` の待機が発生した場合にメッセージを出力。 [#7390](https://github.com/ClickHouse/ClickHouse/pull/7390) ([Azat @@ -281,7 +261,7 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' - 設定 `s3_min_upload_part_size` をテーブルレベルの設定に変更。 [#7059](https://github.com/ClickHouse/ClickHouse/pull/7059) ([Vladimir Chebotarev](https://github.com/excitoon)) -- StorageFactory で TTL をチェック。 +- StorageFactory で有効期限 (TTL) をチェック。 [#7304](https://github.com/ClickHouse/ClickHouse/pull/7304) ([sundyli](https://github.com/sundy-li)) - 部分マージ結合において左側ブロックをまとめて圧縮(最適化)。 @@ -337,8 +317,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement-1} - - * Mac OS 向けのクロスコンパイルで一部の contrib を無効化。 [#7101](https://github.com/ClickHouse/ClickHouse/pull/7101) ([Ivan](https://github.com/abyss7)) * clickhouse_common_io に対する PocoXML への不足していたリンクを追加。 @@ -404,8 +382,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' [#7063](https://github.com/ClickHouse/ClickHouse/pull/7063) ([proller](https://github.com/proller)) - - #### コードのクリーンアップ {#code-cleanup} - 辞書の DDL に備えて設定リポジトリを汎用化。 @@ -444,8 +420,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' [#7350](https://github.com/ClickHouse/ClickHouse/pull/7350) ([tavplubix](https://github.com/tavplubix)) - - ## ClickHouse リリース 19.15 {#clickhouse-release-19-15} ### ClickHouse リリース 19.15.4.10, 2019-10-31 {#clickhouse-release-19-15-4-10-2019-10-31} @@ -496,8 +470,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### 新機能 {#new-feature-3} - - - 階層ストレージ: MergeTree エンジンを使用するテーブルに対して複数のストレージボリュームを利用するためのサポート。新しいデータを SSD に保存し、古いデータを自動的に HDD に移動できます。([例](https://clickhouse.github.io/clickhouse-presentations/meetup30/new_features/#12)) [#4918](https://github.com/ClickHouse/ClickHouse/pull/4918) ([Igr](https://github.com/ObjatieGroba)) [#6489](https://github.com/ClickHouse/ClickHouse/pull/6489) ([alesapin](https://github.com/alesapin)) - `INSERT SELECT` クエリで入力データを読み取るためのテーブル関数 `input` を追加。 [#5450](https://github.com/ClickHouse/ClickHouse/pull/5450) ([palasonic1](https://github.com/palasonic1)) [#6832](https://github.com/ClickHouse/ClickHouse/pull/6832) ([Anton Popov](https://github.com/CurtizJ)) - `hashed` レイアウトと機能的には同等だが、よりメモリ効率の高い `sparse_hashed` 辞書レイアウトを追加。値の取得が遅くなる代わりに、メモリ使用量は約半分になります。 [#6894](https://github.com/ClickHouse/ClickHouse/pull/6894) ([Azat Khuzhin](https://github.com/azat)) @@ -514,8 +486,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### 改善 {#improvement-2} - - - Kafka から読み取られた各メッセージはアトミックに挿入されます。これにより、Kafka エンジンに関する既知のほとんどの問題が解決されます。 [#6950](https://github.com/ClickHouse/ClickHouse/pull/6950) ([Ivan](https://github.com/abyss7)) - 分散クエリのフェイルオーバーを改善。復旧時間が短縮され、さらに設定可能になり、`system.clusters` で確認できるようになりました。 [#6399](https://github.com/ClickHouse/ClickHouse/pull/6399) ([Vasily Nemkov](https://github.com/Enmk)) - `IN` 句で Enum に対する数値を直接サポート。#6766 [#6941](https://github.com/ClickHouse/ClickHouse/pull/6941) ([dimarub2000](https://github.com/dimarub2000)) @@ -537,8 +507,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### バグ修正 {#bug-fix-5} - - - 大きなテーブル上の複雑なキーに対するインデックス解析のパフォーマンス低下を修正しました。#6924 を修正します。 [#7075](https://github.com/ClickHouse/ClickHouse/pull/7075) ([alexey-milovidov](https://github.com/alexey-milovidov)) - Kafka の空のトピックからの SELECT 時にセグメンテーションフォルトを引き起こしていた論理エラーを修正しました。 [#6909](https://github.com/ClickHouse/ClickHouse/pull/6909) ([Ivan](https://github.com/abyss7)) - `MySQLBlockInputStream.cpp` において MySQL 接続が早期にクローズされてしまう問題を修正しました。 [#6882](https://github.com/ClickHouse/ClickHouse/pull/6882) ([Clément Rodriguez](https://github.com/clemrodriguez)) @@ -553,8 +521,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' - パフォーマンス向上のため、bitmap\* 集約関数の状態のシリアライズ形式を変更しました。以前のバージョンでシリアライズされた bitmap\* の状態は読み取ることができません。 [#6908](https://github.com/ClickHouse/ClickHouse/pull/6908) ([Zhichang Yu](https://github.com/yuzhichang)) - - ## ClickHouse リリース 19.14 {#clickhouse-release-19-14} ### ClickHouse リリース 19.14.7.15, 2019-10-02 {#clickhouse-release-19-14-7-15-2019-10-02} @@ -580,8 +546,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### 新機能 {#new-feature-4} - - * `ORDER BY` 向けの `WITH FILL` 修飾子。([#5069](https://github.com/ClickHouse/ClickHouse/issues/5069) の続き) [#6610](https://github.com/ClickHouse/ClickHouse/pull/6610) ([Anton Popov](https://github.com/CurtizJ)) * `LIMIT` 用の `WITH TIES` 修飾子。([#5069](https://github.com/ClickHouse/ClickHouse/issues/5069) の続き) [#6610](https://github.com/ClickHouse/ClickHouse/pull/6610) ([Anton Popov](https://github.com/CurtizJ)) * クオートされていない `NULL` リテラルを NULL としてパースします(設定 `format_csv_unquoted_null_literal_as_null=1` の場合)。このフィールドのデータ型が Nullable 型でない場合は、NULL フィールドをデフォルト値で初期化します(設定 `input_format_null_as_default=1` の場合)。 [#5990](https://github.com/ClickHouse/ClickHouse/issues/5990) [#6055](https://github.com/ClickHouse/ClickHouse/pull/6055) ([tavplubix](https://github.com/tavplubix)) @@ -607,8 +571,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' * Kafka エンジンに `_partition` および `_timestamp` 仮想カラムのサポートを追加しました。 [#6400](https://github.com/ClickHouse/ClickHouse/pull/6400) ([Ivan](https://github.com/abyss7)) * `query_log`、サーバーログ、プロセスリストから、正規表現ベースのルールを使って機密データを削除できるようにしました。[#5710](https://github.com/ClickHouse/ClickHouse/pull/5710) ([filimonov](https://github.com/filimonov)) - - #### 実験的機能 {#experimental-feature-2} - 入出力データ形式 `Template`。入力および出力に対してカスタムフォーマット文字列を指定できます。[#4354](https://github.com/ClickHouse/ClickHouse/issues/4354) [#6727](https://github.com/ClickHouse/ClickHouse/pull/6727) ([tavplubix](https://github.com/tavplubix)) @@ -616,8 +578,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### バグ修正 {#bug-fix-8} - - * このリリースには、19.13 および 19.11 のすべてのバグ修正も含まれています。 * テーブルにスキップインデックスがあり、垂直マージが行われた際にセグメンテーションフォルトが発生する問題を修正。 [#6723](https://github.com/ClickHouse/ClickHouse/pull/6723) ([alesapin](https://github.com/alesapin)) * 複雑なカラムデフォルトを持つカラムごとの TTL を修正しました。以前は、`OPTIMIZE ... FINAL` クエリによって TTL マージを強制した場合、期限切れの値がユーザー指定のカラムデフォルトではなく、型のデフォルト値で置き換えられていました。 [#6796](https://github.com/ClickHouse/ClickHouse/pull/6796) ([Anton Popov](https://github.com/CurtizJ)) @@ -675,8 +635,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' * エラーメッセージ内の誤植 (is → are)。 [#6839](https://github.com/ClickHouse/ClickHouse/pull/6839) ([Denis Zhuravlev](https://github.com/den-crane)) * 型にカンマが含まれている場合、文字列からカラムリストを解析する際に発生していたエラーを修正しました(この問題は `File`、`URL`、`HDFS` ストレージで発生していました)[#6217](https://github.com/ClickHouse/ClickHouse/issues/6217)。 [#6209](https://github.com/ClickHouse/ClickHouse/pull/6209) ([dimarub2000](https://github.com/dimarub2000)) - - #### セキュリティ修正 {#security-fix} - このリリースには、19.13 および 19.11 のすべてのセキュリティ関連バグ修正も含まれています。 @@ -684,8 +642,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### 改善 {#improvement-3} - - * `AND/OR` のための三値論理に基づく正しい実装。 [#6048](https://github.com/ClickHouse/ClickHouse/pull/6048) ([Alexander Kazakov](https://github.com/Akazz)) * これで、TTL 期限切れの値や行は、TTL 情報を持たない古いパーツや古い TTL 情報を持つパーツから、`ALTER ... MODIFY TTL` クエリ実行後などに `OPTIMIZE ... FINAL` クエリを実行することで削除されるようになりました。TTL を伴うマージの割り当ておよび、すべてのマージにおける期限切れ値のフィルタリングを禁止/許可するための `SYSTEM STOP/START TTL MERGES` クエリが追加されました。 [#6274](https://github.com/ClickHouse/ClickHouse/pull/6274) ([Anton Popov](https://github.com/CurtizJ)) * クライアントが使用する ClickHouse の履歴ファイルの保存先を `CLICKHOUSE_HISTORY_FILE` 環境変数で変更可能に。 [#6840](https://github.com/ClickHouse/ClickHouse/pull/6840) ([filimonov](https://github.com/filimonov)) @@ -746,8 +702,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' * `MergeTree` に、新たなオプション `ttl_only_drop_parts`(デフォルトでは無効)が追加されました。これはパーツの部分的なプルーニングを防ぎ、パーツ内のすべての行が期限切れになったときに、そのパーツ全体が削除されるようにするためのものです。 [#6191](https://github.com/ClickHouse/ClickHouse/pull/6191) ([Sergi Vladykin](https://github.com/svladykin)) * set index 関数に対する型チェックを追加。関数が誤った型を受け取った場合は例外をスローする。これにより UBSan を用いたファジングテストの失敗が修正される。 [#6511](https://github.com/ClickHouse/ClickHouse/pull/6511) ([Nikita Vasilev](https://github.com/nikvas0)) - - #### パフォーマンスの改善 {#performance-improvement-2} - `MergeTree` テーブルで、ソートキーと先頭部分(プレフィックス)が一致する `expressions` を持つ場合に、`ORDER BY expressions` 句を用いたクエリを最適化しました。この最適化は `optimize_read_in_order` 設定で制御されます。 [#6054](https://github.com/ClickHouse/ClickHouse/pull/6054) [#6629](https://github.com/ClickHouse/ClickHouse/pull/6629) ([Anton Popov](https://github.com/CurtizJ)) @@ -761,8 +715,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement-4} - - * Compiler(ランタイムでのテンプレートインスタンシエーション)を削除しました。すでにその方式の性能を上回っているためです。 [#6646](https://github.com/ClickHouse/ClickHouse/pull/6646) ([alexey-milovidov](https://github.com/alexey-milovidov)) * gcc-9 における性能低下を、より独立した形で示すための性能テストを追加。 [#6302](https://github.com/ClickHouse/ClickHouse/pull/6302) ([alexey-milovidov](https://github.com/alexey-milovidov)) * テーブル関数 `numbers` のマルチスレッド対応版である `numbers_mt` を追加しました。ハッシュ関数を用いたパフォーマンステストを更新しました。 [#6554](https://github.com/ClickHouse/ClickHouse/pull/6554) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) @@ -839,15 +791,11 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' * 「splitted」ビルドの問題を修正。 [#6618](https://github.com/ClickHouse/ClickHouse/pull/6618) ([alexey-milovidov](https://github.com/alexey-milovidov)) * その他のビルド関連の修正: [#6186](https://github.com/ClickHouse/ClickHouse/pull/6186) ([Amos Bird](https://github.com/amosbird)) [#6486](https://github.com/ClickHouse/ClickHouse/pull/6486) [#6348](https://github.com/ClickHouse/ClickHouse/pull/6348) ([vxider](https://github.com/Vxider)) [#6744](https://github.com/ClickHouse/ClickHouse/pull/6744) ([Ivan](https://github.com/abyss7)) [#6016](https://github.com/ClickHouse/ClickHouse/pull/6016) [#6421](https://github.com/ClickHouse/ClickHouse/pull/6421) [#6491](https://github.com/ClickHouse/ClickHouse/pull/6491) ([proller](https://github.com/proller)) - - #### 後方互換性のない変更 {#backward-incompatible-change-3} - 使用頻度の低いテーブル関数 `catBoostPool` およびストレージ `CatBoostPool` を削除しました。このテーブル関数を使用している場合は、`feedback@clickhouse.com` までメールをお送りください。なお、CatBoost 連携自体は引き続き提供され、サポートされます。 [#6279](https://github.com/ClickHouse/ClickHouse/pull/6279) ([alexey-milovidov](https://github.com/alexey-milovidov)) - デフォルトで `ANY RIGHT JOIN` および `ANY FULL JOIN` を無効化しました。これらを有効にするには、`any_join_distinct_right_table_keys` 設定を有効にしてください。 [#5126](https://github.com/ClickHouse/ClickHouse/issues/5126) [#6351](https://github.com/ClickHouse/ClickHouse/pull/6351) ([Artem Zuikov](https://github.com/4ertus2)) - - ## ClickHouse リリース 19.13 {#clickhouse-release-19-13} ### ClickHouse リリース 19.13.6.51, 2019-10-02 {#clickhouse-release-19-13-6-51-2019-10-02} @@ -875,8 +823,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### バグ修正 {#bug-fix-11} - - - このリリースには、19.11.9.52 および 19.11.10.54 のすべてのバグ修正とセキュリティ修正も含まれます。 - `system.parts` テーブルおよび `ALTER` クエリでのデータレースを修正しました。[#6245](https://github.com/ClickHouse/ClickHouse/issues/6245) [#6513](https://github.com/ClickHouse/ClickHouse/pull/6513) ([alexey-milovidov](https://github.com/alexey-milovidov)) - `sample` と `prewhere` を使用して空の分散テーブルを読み取る場合に発生していた、ストリーム内のヘッダー不一致を修正しました。[#6167](https://github.com/ClickHouse/ClickHouse/issues/6167) ([Lixiang Qian](https://github.com/fancyqlx)) [#6823](https://github.com/ClickHouse/ClickHouse/pull/6823) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) @@ -895,8 +841,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### バグ修正 {#bug-fix-12} - - - `enable_mixed_granularity_parts=1` が設定されたテーブルに対する `ALTER TABLE ... UPDATE` クエリを修正しました。 [#6543](https://github.com/ClickHouse/ClickHouse/pull/6543) ([alesapin](https://github.com/alesapin)) - タプルを含むサブクエリを伴う IN 句を使用した際に発生する NPE を修正しました。 [#6125](https://github.com/ClickHouse/ClickHouse/issues/6125) [#6550](https://github.com/ClickHouse/ClickHouse/pull/6550) ([tavplubix](https://github.com/tavplubix)) - 古いレプリカが再度アクティブになった場合に、DROP PARTITION によって削除されたデータパーツを依然として保持してしまう可能性がある問題を修正しました。 [#6522](https://github.com/ClickHouse/ClickHouse/issues/6522) [#6523](https://github.com/ClickHouse/ClickHouse/pull/6523) ([tavplubix](https://github.com/tavplubix)) @@ -907,14 +851,12 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### セキュリティ修正 {#security-fix-2} -- 攻撃者が ZooKeeper への書き込み権限を持ち、かつ ClickHouse が動作しているネットワークから到達可能なカスタムサーバーを実行できる場合、ClickHouse のレプリカとして動作し ZooKeeper に登録される、カスタムビルドされた悪意のあるサーバーを作成できる可能性があります。別のレプリカがこの悪意あるレプリカからデータパーツをフェッチすると、その際に `clickhouse-server` に対してファイルシステム上の任意のパスへ書き込みを行わせることができるおそれがあります。Yandex の情報セキュリティチームの Eldar Zaitov によって発見されました。 [#6247](https://github.com/ClickHouse/ClickHouse/pull/6247) ([alexey-milovidov](https://github.com/alexey-milovidov)) +- 攻撃者が ZooKeeper への書き込み権限を持ち、かつ ClickHouse が動作しているネットワークから到達可能なカスタムサーバーを実行できる場合、ClickHouse のレプリカとして動作し ZooKeeper に登録される、カスタムビルドされた悪意のあるサーバーを作成できる可能性があります。別のレプリカがこの悪意あるレプリカからデータパーツをフェッチすると、`clickhouse-server` にファイルシステム上の任意のパスへの書き込みを行わせることができるおそれがあります。Yandex の情報セキュリティチームの Eldar Zaitov によって発見されました。 [#6247](https://github.com/ClickHouse/ClickHouse/pull/6247) ([alexey-milovidov](https://github.com/alexey-milovidov)) ### ClickHouse リリース 19.13.2.19, 2019-08-14 {#clickhouse-release-19-13-2-19-2019-08-14} #### 新機能 {#new-feature-5} - - - クエリ単位のサンプリングプロファイラ。 [例](https://gist.github.com/alexey-milovidov/92758583dd41c24c360fdb8d6a4da194)。 [#4247](https://github.com/ClickHouse/ClickHouse/issues/4247) ([laplab](https://github.com/laplab)) [#6124](https://github.com/ClickHouse/ClickHouse/pull/6124) ([alexey-milovidov](https://github.com/alexey-milovidov)) [#6250](https://github.com/ClickHouse/ClickHouse/pull/6250) [#6283](https://github.com/ClickHouse/ClickHouse/pull/6283) [#6386](https://github.com/ClickHouse/ClickHouse/pull/6386) - `COLUMNS('regexp')` 式を使用して、`*` アスタリスクのより高機能な拡張版として動作する列リストを指定できるようになりました。 [#5951](https://github.com/ClickHouse/ClickHouse/pull/5951) ([mfridental](https://github.com/mfridental)), ([alexey-milovidov](https://github.com/alexey-milovidov)) - `CREATE TABLE AS table_function()` が可能になりました。 [#6057](https://github.com/ClickHouse/ClickHouse/pull/6057) ([dimarub2000](https://github.com/dimarub2000)) @@ -941,8 +883,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' - `config.d` ファイルが、設定ファイルと対応するルート要素を持たない場合に例外をスローするようになりました。 [#6123](https://github.com/ClickHouse/ClickHouse/pull/6123) ([dimarub2000](https://github.com/dimarub2000)) - - #### パフォーマンスの改善 {#performance-improvement-3} - `count()` を最適化。可能な場合、最も小さいサイズのカラムを使用するようになりました。 [#6028](https://github.com/ClickHouse/ClickHouse/pull/6028) ([Amos Bird](https://github.com/amosbird)) @@ -953,8 +893,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' - 外部 `libcxx` を使用したビルドを修正しました。 [#6010](https://github.com/ClickHouse/ClickHouse/pull/6010) ([Ivan](https://github.com/abyss7)) - `rdkafka` ライブラリを使用した共有ビルドを修正しました。 [#6101](https://github.com/ClickHouse/ClickHouse/pull/6101) ([Ivan](https://github.com/abyss7)) - - ## ClickHouse リリース 19.11 {#clickhouse-release-19-11} ### ClickHouse リリース 19.11.13.74, 2019-11-01 {#clickhouse-release-19-11-13-74-2019-11-01} @@ -963,7 +901,7 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' - マージ/変更されるパーツのうちの 1 つが空(0 行)の場合に、`ALTER MODIFY COLUMN` および縦方向のマージでまれに発生していたクラッシュを修正。[#6780](https://github.com/ClickHouse/ClickHouse/pull/6780) ([alesapin](https://github.com/alesapin)) - `SIMDJSON` を手動で更新。この変更により、標準エラー出力ファイルが誤った JSON 診断メッセージで埋め尽くされる可能性を解消。[#7548](https://github.com/ClickHouse/ClickHouse/pull/7548) ([Alexander Kazakov](https://github.com/Akazz)) -- 変更処理における `mrk` ファイル拡張子に関するバグを修正。[#7548](https://github.com/ClickHouse/ClickHouse/pull/7548) ([alesapin](https://github.com/alesapin)) +- 変更処理における `mrk` ファイル拡張子に関するバグを修正([alesapin](https://github.com/alesapin)) ### ClickHouse リリース 19.11.12.69, 2019-10-02 {#clickhouse-release-19-11-12-69-2019-10-02} @@ -986,8 +924,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' ### ClickHouse リリース 19.11.9.52, 2019-09-6 {#clickhouse-release-19-11-9-52-2019-09-6} - - - キャッシュ辞書のエラー処理を改善。 [#6737](https://github.com/ClickHouse/ClickHouse/pull/6737) ([Vitaly Baranov](https://github.com/vitlibar)) - 関数 `arrayEnumerateUniqRanked` のバグを修正。 [#6779](https://github.com/ClickHouse/ClickHouse/pull/6779) ([proller](https://github.com/proller)) - JSON から `Tuple` を抽出する際の `JSONExtract` 関数の動作を修正。 [#6718](https://github.com/ClickHouse/ClickHouse/pull/6718) ([Vitaly Baranov](https://github.com/vitlibar)) @@ -1008,21 +944,17 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### バグ修正 {#bug-fix-17} - - -- `enable_mixed_granularity_parts=1` のテーブルに対する `ALTER TABLE ... UPDATE` クエリを修正。[#6543](https://github.com/ClickHouse/ClickHouse/pull/6543) ([alesapin](https://github.com/alesapin)) -- タプルを含むサブクエリを伴う IN 句を使用した際の NPE を修正。[#6125](https://github.com/ClickHouse/ClickHouse/issues/6125) [#6550](https://github.com/ClickHouse/ClickHouse/pull/6550) ([tavplubix](https://github.com/tavplubix)) -- ステールなレプリカが復帰した場合に、`DROP PARTITION` によって削除されたデータパーツを依然として保持している可能性がある問題を修正。[#6522](https://github.com/ClickHouse/ClickHouse/issues/6522) [#6523](https://github.com/ClickHouse/ClickHouse/pull/6523) ([tavplubix](https://github.com/tavplubix)) -- CSV のパースに関する問題を修正。[#6426](https://github.com/ClickHouse/ClickHouse/issues/6426) [#6559](https://github.com/ClickHouse/ClickHouse/pull/6559) ([tavplubix](https://github.com/tavplubix)) -- `system.parts` テーブルと ALTER クエリにおけるデータレースを修正。この修正により [#6245](https://github.com/ClickHouse/ClickHouse/issues/6245) が解決されます。[#6513](https://github.com/ClickHouse/ClickHouse/pull/6513) ([alexey-milovidov](https://github.com/alexey-milovidov)) -- メモリ破損を引き起こす可能性がある mutation における誤ったコードを修正。`system.parts` または `system.parts_columns` からの `SELECT` と `DROP TABLE` の同時実行により発生し得た、アドレス `0x14c0` の読み取りに伴うセグメンテーションフォルトを修正。mutation クエリ準備時のレースコンディションを修正。Replicated テーブルの `OPTIMIZE` と ALTER などの同時変更操作により発生するデッドロックを修正。[#6514](https://github.com/ClickHouse/ClickHouse/pull/6514) ([alexey-milovidov](https://github.com/alexey-milovidov)) +- `enable_mixed_granularity_parts=1` のテーブルに対する `ALTER TABLE ... UPDATE` クエリを修正。 [#6543](https://github.com/ClickHouse/ClickHouse/pull/6543) ([alesapin](https://github.com/alesapin)) +- タプルを含むサブクエリを伴う IN 句を使用した際に発生する NPE を修正。 [#6125](https://github.com/ClickHouse/ClickHouse/issues/6125) [#6550](https://github.com/ClickHouse/ClickHouse/pull/6550) ([tavplubix](https://github.com/tavplubix)) +- 古いレプリカが再度アクティブになった場合に、DROP PARTITION によって削除されたデータパーツを依然として保持してしまう可能性がある問題を修正。 [#6522](https://github.com/ClickHouse/ClickHouse/issues/6522) [#6523](https://github.com/ClickHouse/ClickHouse/pull/6523) ([tavplubix](https://github.com/tavplubix)) +- CSV のパースに関する問題を修正。 [#6426](https://github.com/ClickHouse/ClickHouse/issues/6426) [#6559](https://github.com/ClickHouse/ClickHouse/pull/6559) ([tavplubix](https://github.com/tavplubix)) +- `system.parts` テーブルおよび ALTER クエリにおけるデータレースを修正。この修正により [#6245](https://github.com/ClickHouse/ClickHouse/issues/6245) の問題が解消されます。 [#6513](https://github.com/ClickHouse/ClickHouse/pull/6513) ([alexey-milovidov](https://github.com/alexey-milovidov)) +- メモリ破損を引き起こす可能性のある mutation 処理内の誤ったコードを修正。`system.parts` または `system.parts_columns` に対する `DROP TABLE` と `SELECT` が同時に行われた場合に発生し得る、アドレス `0x14c0` 読み取り時のセグメンテーションフォールトを修正。mutation クエリ準備時の競合状態を修正。Replicated テーブルの `OPTIMIZE` と ALTER などの変更操作が同時に行われた場合に発生するデッドロックを修正。 [#6514](https://github.com/ClickHouse/ClickHouse/pull/6514) ([alexey-milovidov](https://github.com/alexey-milovidov)) ### ClickHouse リリース 19.11.7.40, 2019-08-14 {#clickhouse-release-19-11-7-40-2019-08-14} #### バグ修正 {#bug-fix-18} - - - このバージョンで Kafka 統合が修正されました。 - 定数引数に対して `arrayReduce` を使用した際のセグメンテーションフォルトを修正しました。 [#6326](https://github.com/ClickHouse/ClickHouse/pull/6326) ([alexey-milovidov](https://github.com/alexey-milovidov)) - `toFloat()` の単調性を修正しました。 [#6374](https://github.com/ClickHouse/ClickHouse/pull/6374) ([dimarub2000](https://github.com/dimarub2000)) @@ -1045,8 +977,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### バグ修正 {#bug-fix-19} - - - サーバーが過負荷のときにクエリがハングする可能性を修正しました。 [#6301](https://github.com/ClickHouse/ClickHouse/pull/6301) ([alexey-milovidov](https://github.com/alexey-milovidov)) - `yandexConsistentHash` 関数における FPE を修正しました。これにより [#6304](https://github.com/ClickHouse/ClickHouse/issues/6304) が解決されます。 [#6126](https://github.com/ClickHouse/ClickHouse/pull/6126) ([alexey-milovidov](https://github.com/alexey-milovidov)) - `AggregateFunctionFactory` における `LowCardinality` 型の変換のバグを修正しました。これにより [#6257](https://github.com/ClickHouse/ClickHouse/issues/6257) が解決されます。 [#6281](https://github.com/ClickHouse/ClickHouse/pull/6281) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) @@ -1062,8 +992,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### バグ修正 {#bug-fix-20} - - - アダプティブグラニュラリティ使用時に、セカンダリインデックスのマークを書き込む処理のバグを修正。 [#6126](https://github.com/ClickHouse/ClickHouse/pull/6126) ([alesapin](https://github.com/alesapin)) - 2 段階集約での `GROUP BY` の `WITH ROLLUP` および `WITH CUBE` 修飾子を修正。 [#6225](https://github.com/ClickHouse/ClickHouse/pull/6225) ([Anton Popov](https://github.com/CurtizJ)) - `JSONExtractRaw` 関数で発生していたハングを修正し、[#6195](https://github.com/ClickHouse/ClickHouse/issues/6195) [#6198](https://github.com/ClickHouse/ClickHouse/pull/6198) を解決。 ([alexey-milovidov](https://github.com/alexey-milovidov)) @@ -1080,8 +1008,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement-6} - - - 公式の `rpm` パッケージを追加。[#5740](https://github.com/ClickHouse/ClickHouse/pull/5740) ([proller](https://github.com/proller)) ([alesapin](https://github.com/alesapin)) - `packager` スクリプトで `.rpm` と `.tgz` パッケージをビルドできる機能を追加。[#5769](https://github.com/ClickHouse/ClickHouse/pull/5769) ([alesapin](https://github.com/alesapin)) - 「Arcadia」ビルドシステム向けの修正。[#6223](https://github.com/ClickHouse/ClickHouse/pull/6223) ([proller](https://github.com/proller)) @@ -1105,8 +1031,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### バグ修正 {#bug-fix-21} - - * 非同期更新を行う DNS キャッシュを実装しました。専用スレッドがすべてのホストを解決し、一定間隔(設定値 `dns_cache_update_period`)で DNS キャッシュを更新します。ホストの IP アドレスが頻繁に変更される場合に役立ちます。 [#5857](https://github.com/ClickHouse/ClickHouse/pull/5857) ([Anton Popov](https://github.com/CurtizJ)) * 32 ビット未満の値を扱う列に影響する `Delta` コーデックのセグメンテーションフォールトを修正しました。このバグによりメモリがランダムに破壊されていました。 [#5786](https://github.com/ClickHouse/ClickHouse/pull/5786) ([alesapin](https://github.com/alesapin)) * 非物理カラムを含むブロックにおける TTL マージで発生していたセグメンテーションフォールトを修正。 [#5819](https://github.com/ClickHouse/ClickHouse/pull/5819) ([Anton Popov](https://github.com/CurtizJ)) @@ -1133,12 +1057,8 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' * SystemLogs のシャットダウンの問題を修正 [#5802](https://github.com/ClickHouse/ClickHouse/pull/5802) ([Anton Popov](https://github.com/CurtizJ)) * `invalidate_query` の条件が辞書に依存している場合にハングする問題を修正。 [#6011](https://github.com/ClickHouse/ClickHouse/pull/6011) ([Vitaly Baranov](https://github.com/vitlibar)) - - #### 改善点 {#improvement-6} - - * クラスタ設定で名前解決できないアドレスの指定を許可します。それらは利用不可として扱われ、接続のたびに再度の名前解決が試みられます。これは特に Kubernetes 環境で有用です。これにより [#5714](https://github.com/ClickHouse/ClickHouse/issues/5714) [#5924](https://github.com/ClickHouse/ClickHouse/pull/5924) が修正されました([alexey-milovidov](https://github.com/alexey-milovidov))。 * アイドル状態の TCP 接続をクローズします(デフォルトのタイムアウトは 1 時間)。これは、すべてのサーバー上に複数の分散テーブルを持つ大規模クラスターでは特に重要です。各サーバーが他のすべてのサーバーへの接続プールを保持している可能性があり、ピーク時のクエリ並列実行後に接続がアイドル状態のまま残ってしまうためです。これにより [#5879](https://github.com/ClickHouse/ClickHouse/issues/5879) [#5880](https://github.com/ClickHouse/ClickHouse/pull/5880) が修正されました([alexey-milovidov](https://github.com/alexey-milovidov))。 * `topK` 関数の品質を向上。SavingSpace セットの挙動を変更し、新しい要素の重みが既存の要素より大きい場合は末尾の要素を削除するようにしました。 [#5833](https://github.com/ClickHouse/ClickHouse/issues/5833) [#5850](https://github.com/ClickHouse/ClickHouse/pull/5850) ([Guillaume Tassery](https://github.com/YiuRULE)) @@ -1159,16 +1079,12 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' * `max_ast_elements` パラメータのデフォルト値を更新 [#5933](https://github.com/ClickHouse/ClickHouse/pull/5933) ([Artem Konovalov](https://github.com/izebit)) * 非推奨設定という概念を追加しました。非推奨設定である `allow_experimental_low_cardinality_type` は、指定しても動作に影響はありません。 [0f15c01c6802f7ce1a1494c12c846be8c98944cd](https://github.com/ClickHouse/ClickHouse/commit/0f15c01c6802f7ce1a1494c12c846be8c98944cd) [Alexey Milovidov](https://github.com/alexey-milovidov) - - #### パフォーマンスの改善 {#performance-improvement-4} - Merge テーブルに対する `SELECT` のストリーム数を増やし、スレッドの分散をより均一にします。設定 `max_streams_multiplier_for_merge_tables` を追加しました。これにより、[#5797](https://github.com/ClickHouse/ClickHouse/issues/5797) および [#5915](https://github.com/ClickHouse/ClickHouse/pull/5915) が修正されました ([alexey-milovidov](https://github.com/alexey-milovidov)) #### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement-7} - - * 異なるバージョンの ClickHouse 間でのクライアント/サーバー間通信に対する下位互換性テストを追加しました。 [#5868](https://github.com/ClickHouse/ClickHouse/pull/5868) ([alesapin](https://github.com/alesapin)) * 各コミットおよびプルリクエストごとにテストカバレッジ情報を提供。 [#5896](https://github.com/ClickHouse/ClickHouse/pull/5896) ([alesapin](https://github.com/alesapin)) * アドレスサニタイザと連携してカスタムアロケータ(`Arena` と `ArenaWithFreeLists`)をサポートし、「use-after-free」エラーのデバッグを容易にする。 [#5728](https://github.com/ClickHouse/ClickHouse/pull/5728) ([akuzm](https://github.com/akuzm)) @@ -1205,16 +1121,12 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' * 新しい JIT 機能に関するパフォーマンステストを大規模データセットで実施(リクエスト元: [#5263](https://github.com/ClickHouse/ClickHouse/issues/5263) [#5887](https://github.com/ClickHouse/ClickHouse/pull/5887)([Guillaume Tassery](https://github.com/YiuRULE))) * ストレステストでステートフルテストを実行 [12693e568722f11e19859742f56428455501fd2a](https://github.com/ClickHouse/ClickHouse/commit/12693e568722f11e19859742f56428455501fd2a) ([alesapin](https://github.com/alesapin)) - - #### 後方互換性のない変更 {#backward-incompatible-change-7} - このバージョンでは `Kafka` は正常に動作しません。 - 新しい `MergeTree` テーブルに対して、デフォルトで `adaptive_index_granularity` = 10MB を有効化しました。バージョン 19.11 以降で新しい MergeTree テーブルを作成した場合、19.6 より前のバージョンへのダウングレードは不可能になります。 [#5628](https://github.com/ClickHouse/ClickHouse/pull/5628) ([alesapin](https://github.com/alesapin)) - Yandex.Metrica で使用されていた、古い非公開の組み込みディクショナリを削除しました。関数 `OSIn`、`SEIn`、`OSToRoot`、`SEToRoot`、`OSHierarchy`、`SEHierarchy` は利用できなくなりました。これらの関数を使用している場合は、clickhouse-feedback@yandex-team.com までメールを送ってください。注記: 直前になって、当面のあいだこれらの関数を残すことを決定しました。 [#5780](https://github.com/ClickHouse/ClickHouse/pull/5780) ([alexey-milovidov](https://github.com/alexey-milovidov)) - - ## ClickHouse リリース 19.10 {#clickhouse-release-19-10} ### ClickHouse リリース 19.10.1.5, 2019-07-12 {#clickhouse-release-19-10-1-5-2019-07-12} @@ -1238,9 +1150,7 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' - Float から Decimal への変換時のオーバーフローを修正。[#5607](https://github.com/ClickHouse/ClickHouse/pull/5607) ([coraxster](https://github.com/coraxster)) - `WriteBufferFromHDFS` のデストラクタが呼び出された際にバッファをフラッシュするように変更。これにより `HDFS` への書き込みの問題が解消されます。[#5684](https://github.com/ClickHouse/ClickHouse/pull/5684) ([Xindong Peng](https://github.com/eejoin)) -#### 改良 {#improvement-7} - - +#### 改善 {#improvement-7} - 設定 `input_format_defaults_for_omitted_fields` が有効な場合、`CSV` 内の空セルをデフォルト値として扱います。 [#5625](https://github.com/ClickHouse/ClickHouse/pull/5625) ([akuzm](https://github.com/akuzm)) - 外部辞書の非ブロッキング読み込み。 [#5567](https://github.com/ClickHouse/ClickHouse/pull/5567) ([Vitaly Baranov](https://github.com/vitlibar)) @@ -1258,17 +1168,13 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' - `stat` システムコールの回数を減らすことで、非常に遅いファイルシステム上での MergeTree テーブルのパフォーマンスを改善しました。 [#5648](https://github.com/ClickHouse/ClickHouse/pull/5648) ([alexey-milovidov](https://github.com/alexey-milovidov)) - バージョン 19.6 で導入された、MergeTree テーブルからの読み取りにおけるパフォーマンス低下を修正しました。#5631 を修正。 [#5633](https://github.com/ClickHouse/ClickHouse/pull/5633) ([alexey-milovidov](https://github.com/alexey-milovidov)) -#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement-8} - - +#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement-8} - テスト用の ZooKeeper インターフェイス実装として `TestKeeper` を導入しました [#5643](https://github.com/ClickHouse/ClickHouse/pull/5643) ([alexey-milovidov](https://github.com/alexey-milovidov)) ([levushkin aleksej](https://github.com/alexey-milovidov)) - 今後、`.sql` テストはサーバーごとに分離し、並列かつランダムなデータベース名で実行できるようになりました。これにより、テストをより高速に実行し、カスタムサーバー構成を使用した新しいテストを追加しつつ、異なるテスト同士が互いに影響しないことを保証できます。 [#5554](https://github.com/ClickHouse/ClickHouse/pull/5554) ([Ivan](https://github.com/abyss7)) - パフォーマンス テストから `` と `` を削除しました [#5672](https://github.com/ClickHouse/ClickHouse/pull/5672) ([Olga Khvostikova](https://github.com/stavrolia)) - `Pretty` フォーマット向けの「select_format」パフォーマンス テストを修正しました [#5642](https://github.com/ClickHouse/ClickHouse/pull/5642) ([alexey-milovidov](https://github.com/alexey-milovidov)) - - ## ClickHouse Release 19.9 {#clickhouse-release-19-9} ### ClickHouse Release 19.9.3.31, 2019-07-05 {#clickhouse-release-19-9-3-31-2019-07-05} @@ -1302,8 +1208,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### バグ修正 {#bug-fix-24} - - * Kafka での潜在的なデータ損失を修正 [#5445](https://github.com/ClickHouse/ClickHouse/pull/5445) ([Ivan](https://github.com/abyss7)) * `PrettySpace` フォーマットが列数 0 で呼び出された場合に発生する可能性のある無限ループを修正 [#5560](https://github.com/ClickHouse/ClickHouse/pull/5560) ([Olga Khvostikova](https://github.com/stavrolia)) * 線形モデルにおける UInt32 のオーバーフローのバグを修正。非 const の model 引数に対して ML モデルの eval を許可。 [#5516](https://github.com/ClickHouse/ClickHouse/pull/5516) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) @@ -1323,8 +1227,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' * `dictGetT` 関数で誤った整数値が渡された場合、クラッシュするのではなく例外をスローするようにしました。 [#5446](https://github.com/ClickHouse/ClickHouse/pull/5446) ([Artem Zuikov](https://github.com/4ertus2)) * `system.dictionaries` テーブルのハッシュ辞書における誤った `element_count` と `load_factor` の値を修正。 [#5440](https://github.com/ClickHouse/ClickHouse/pull/5440) ([Azat Khuzhin](https://github.com/azat)) - - #### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement-9} - `Brotli` HTTP 圧縮サポートなし(cmake 変数 `ENABLE_BROTLI=OFF`)でのビルドを修正。[#5521](https://github.com/ClickHouse/ClickHouse/pull/5521) ([Anton Yuzhaninov](https://github.com/citrin)) @@ -1341,16 +1243,12 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' - サブモジュールとしての ClickHouse のビルドを修正。[#5574](https://github.com/ClickHouse/ClickHouse/pull/5574) ([proller](https://github.com/proller)) - JSONExtract のパフォーマンステストを改善。[#5444](https://github.com/ClickHouse/ClickHouse/pull/5444) ([Vitaly Baranov](https://github.com/vitlibar)) - - ## ClickHouse リリース 19.8 {#clickhouse-release-19-8} ### ClickHouse リリース 19.8.3.8, 2019-06-11 {#clickhouse-release-19-8-3-8-2019-06-11} #### 新機能 {#new-features} - - * JSON を扱うための関数を追加しました。[#4686](https://github.com/ClickHouse/ClickHouse/pull/4686) ([hcz](https://github.com/hczhcz)) [#5124](https://github.com/ClickHouse/ClickHouse/pull/5124) ([Vitaly Baranov](https://github.com/vitlibar)) * 多くの言語に存在する `basename` 関数(Python の `os.path.basename`、PHP の `basename` など)と同様の挙動をする関数 `basename` を追加しました。UNIX 系パスと Windows パスの両方で動作します。 [#5136](https://github.com/ClickHouse/ClickHouse/pull/5136) ([Guillaume Tassery](https://github.com/YiuRULE)) * `LIMIT BY` 句に対してオフセット n を指定できるよう、`LIMIT n, m BY` または `LIMIT m OFFSET n BY` 構文を追加しました。 [#5138](https://github.com/ClickHouse/ClickHouse/pull/5138) ([Anton Popov](https://github.com/CurtizJ)) @@ -1371,12 +1269,8 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' * CIDR を使用してサブネット内の IP アドレスの下限値および上限値を計算する関数 `IPv4CIDRtoIPv4Range` と `IPv6CIDRtoIPv6Range` を追加しました。 [#5095](https://github.com/ClickHouse/ClickHouse/pull/5095) ([Guillaume Tassery](https://github.com/YiuRULE)) * HTTP でクエリを送信する際に `send_progress_in_http_headers` 設定が有効な場合に、`X-ClickHouse-Summary` ヘッダーを追加します。通常の `X-ClickHouse-Progress` と同様の情報に加え、そのクエリで挿入された行数やバイト数などの追加情報を返します。 [#5116](https://github.com/ClickHouse/ClickHouse/pull/5116) ([Guillaume Tassery](https://github.com/YiuRULE)) - - #### 改善点 {#improvements} - - * MergeTree ファミリーのテーブルに、パーティションキーの危険な指定を防止する `max_parts_in_total` 設定(デフォルト: 100 000)を追加しました #5166。 [#5171](https://github.com/ClickHouse/ClickHouse/pull/5171) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `clickhouse-obfuscator`: 初期シード値とカラム名を組み合わせて、カラムの位置ではなく各カラム固有のシード値を導出します。これは複数の関連テーブルからなるデータセットを変換することを想定しており、変換後もテーブル同士を JOIN 可能な状態に保つためのものです。 [#5178](https://github.com/ClickHouse/ClickHouse/pull/5178) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 関数 `JSONExtractRaw`、`JSONExtractKeyAndValues` を追加しました。関数 `jsonExtract<type>` を `JSONExtract<type>` にリネームしました。問題が発生した場合、これらの関数は `NULL` ではなく対応する値を返します。関数 `JSONExtract` を変更し、最後の引数から戻り値の型を取得し、Nullable を注入しないようにしました。AVX2 命令が利用できない場合は RapidJSON を用いるフォールバックを実装しました。Simdjson ライブラリを新しいバージョンに更新しました。[#5235](https://github.com/ClickHouse/ClickHouse/pull/5235)([Vitaly Baranov](https://github.com/vitlibar)) @@ -1400,8 +1294,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' * Distributed テーブルへの非同期 INSERT でクエリ設定が反映されるようになりました。 [#4936](https://github.com/ClickHouse/ClickHouse/pull/4936) ([TCeason](https://github.com/TCeason)) * 関数 `leastSqr` を `simpleLinearRegression`、`LinearRegression` を `linearRegression`、`LogisticRegression` を `logisticRegression` に名前変更しました。 [#5391](https://github.com/ClickHouse/ClickHouse/pull/5391) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) - - #### パフォーマンスの改善 {#performance-improvements} - 非レプリケートの MergeTree テーブルのパーツ処理を `ALTER MODIFY` クエリで並列化。[#4639](https://github.com/ClickHouse/ClickHouse/pull/4639) ([Ivan Kush](https://github.com/IvanKush)) @@ -1427,8 +1319,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### ドキュメント {#documentation} - - - `CollapsingMergeTree` のドキュメントを中国語に翻訳しました。 [#5168](https://github.com/ClickHouse/ClickHouse/pull/5168) ([张风啸](https://github.com/AlexZFX)) - テーブルエンジンに関する一部のドキュメントを中国語に翻訳しました。 [#5134](https://github.com/ClickHouse/ClickHouse/pull/5134) @@ -1445,8 +1335,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' - パフォーマンステストの書き方に関する簡単な手順を追加しました。 [#5408](https://github.com/ClickHouse/ClickHouse/pull/5408) ([alesapin](https://github.com/alesapin)) - パフォーマンステストにおいて、create / fill / drop クエリ内で置換を行える機能を追加しました。 [#5367](https://github.com/ClickHouse/ClickHouse/pull/5367) ([Olga Khvostikova](https://github.com/stavrolia)) - - ## ClickHouse リリース 19.7 {#clickhouse-release-19-7} ### ClickHouse リリース 19.7.5.29, 2019-07-05 {#clickhouse-release-19-7-5-29-2019-07-05} @@ -1463,15 +1351,13 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### バグ修正 {#bug-fixes-1} - - - `minmax` INDEX に Null 値がある場合に発生するセグメンテーションフォールトを修正。[#5246](https://github.com/ClickHouse/ClickHouse/pull/5246) ([Nikita Vasilev](https://github.com/nikvas0)) - LIMIT BY 内のすべての入力カラムを出力必須としてマークするように変更。一部の分散クエリで発生していた「Not found column」エラーを修正。[#5407](https://github.com/ClickHouse/ClickHouse/pull/5407) ([Constantin S. Pan](https://github.com/kvap)) - DEFAULT を持つカラムに対する `SELECT .. PREWHERE` で発生する "Column '0' already exists" エラーを修正。[#5397](https://github.com/ClickHouse/ClickHouse/pull/5397) ([proller](https://github.com/proller)) - `ReplicatedMergeTree` に対する `ALTER MODIFY TTL` クエリを修正。[#5539](https://github.com/ClickHouse/ClickHouse/pull/5539/commits) ([Anton Popov](https://github.com/CurtizJ)) - Kafka コンシューマが起動に失敗した場合にサーバーがクラッシュしないように修正。[#5285](https://github.com/ClickHouse/ClickHouse/pull/5285) ([Ivan](https://github.com/abyss7)) - ビットマップ関数が誤った結果を返す問題を修正。[#5359](https://github.com/ClickHouse/ClickHouse/pull/5359) ([Andy Yang](https://github.com/andyyzh)) -- ハッシュディクショナリの element_count を修正(重複を含めないように変更)。[#5440](https://github.com/ClickHouse/ClickHouse/pull/5440) ([Azat Khuzhin](https://github.com/azat)) +- ハッシュ Dictionary の element_count を修正(重複を含めないように変更)。[#5440](https://github.com/ClickHouse/ClickHouse/pull/5440) ([Azat Khuzhin](https://github.com/azat)) - タイムゾーン名として環境変数 TZ の内容を使用するように変更。一部のケースでデフォルトタイムゾーンを正しく検出できるようにした。[#5443](https://github.com/ClickHouse/ClickHouse/pull/5443) ([Ivan](https://github.com/abyss7)) - `dictGetT` 関数内で整数の変換を試みないように変更(正しく動作しないため)。代わりに例外をスローするようにした。[#5446](https://github.com/ClickHouse/ClickHouse/pull/5446) ([Artem Zuikov](https://github.com/4ertus2)) - ExternalData HTTP リクエスト内の設定を修正。[#5455](https://github.com/ClickHouse/ClickHouse/pull/5455) ([Danila @@ -1479,7 +1365,7 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' - パーツがファイルシステムからのみ削除され、ZooKeeper からは削除されない不具合を修正。[#5520](https://github.com/ClickHouse/ClickHouse/pull/5520) ([alesapin](https://github.com/alesapin)) - `bitmapHasAny` 関数でのセグメンテーションフォールトを修正。[#5528](https://github.com/ClickHouse/ClickHouse/pull/5528) ([Zhichang Yu](https://github.com/yuzhichang)) - レプリケーション接続プールが、DNS キャッシュが破棄された後でもホストの解決を再試行しないエラーを修正。[#5534](https://github.com/ClickHouse/ClickHouse/pull/5534) ([alesapin](https://github.com/alesapin)) -- `DROP INDEX IF EXISTS` クエリを修正。これにより、指定されたインデックスが存在しない場合でも、`ALTER TABLE ... DROP INDEX IF EXISTS ...` クエリが例外をスローしないようになった。[#5524](https://github.com/ClickHouse/ClickHouse/pull/5524) ([Gleb Novikov](https://github.com/NanoBjorn)) +- `DROP INDEX IF EXISTS` クエリを修正。これにより、指定された索引が存在しない場合でも、`ALTER TABLE ... DROP INDEX IF EXISTS ...` クエリが例外をスローしないようになった。[#5524](https://github.com/ClickHouse/ClickHouse/pull/5524) ([Gleb Novikov](https://github.com/NanoBjorn)) - `UNION ALL` のスーパータイプのカラムを修正。結果カラムでデータおよびカラム型が不整合となるケースがあった。[#5503](https://github.com/ClickHouse/ClickHouse/pull/5503) ([Artem Zuikov](https://github.com/4ertus2)) - DDL クエリ処理中に ZNONODE をスキップするように修正。以前は、別のノードがタスクキュー内の znode を削除した場合、そのタスクをまだ処理していないが、すでに子ノード一覧を取得していたノードが DDLWorker スレッドを終了させていた。[#5489](https://github.com/ClickHouse/ClickHouse/pull/5489) ([Azat Khuzhin](https://github.com/azat)) - MATERIALIZED カラムを持つ Distributed() テーブルへの INSERT を修正。[#5429](https://github.com/ClickHouse/ClickHouse/pull/5429) ([Azat Khuzhin](https://github.com/azat)) @@ -1488,8 +1374,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### 新機能 {#new-features-2} - - - ユーザーが指定できる設定値の範囲を制限できるようにしました。 これらの制約はユーザー設定プロファイルで構成できます。 [#4931](https://github.com/ClickHouse/ClickHouse/pull/4931) ([Vitaly @@ -1518,7 +1402,7 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### パフォーマンスの改善 {#performance-improvements-1} -- `LIMIT` なしで単一の数値カラムによる `ORDER BY` を行う場合に、ソートに radix ソートを使用するようにしました。 +- `LIMIT` なしで単一の数値カラムでの `ORDER BY` を行う場合に、ソートに radix ソートを使用するようにしました。 [#5106](https://github.com/ClickHouse/ClickHouse/pull/5106), [#4439](https://github.com/ClickHouse/ClickHouse/pull/4439) ([Evgenii Pravda](https://github.com/kvinty), @@ -1536,8 +1420,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvements-1} - - - `clickhouse-test` で UTF-8 文字を正しく出力するようにする。 [#5084](https://github.com/ClickHouse/ClickHouse/pull/5084) ([alexey-milovidov](https://github.com/alexey-milovidov)) @@ -1554,8 +1436,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' [#5110](https://github.com/ClickHouse/ClickHouse/pull/5110) ([proller](https://github.com/proller)) - - ## ClickHouse リリース 19.6 {#clickhouse-release-19-6} ### ClickHouse リリース 19.6.3.18, 2019-06-13 {#clickhouse-release-19-6-3-18-2019-06-13} @@ -1584,8 +1464,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### 改善点 {#improvements-1} - - - 関数 `substringUTF8` に対して、非定数および負の size / length 引数のサポートを追加。 [#4989](https://github.com/ClickHouse/ClickHouse/pull/4989) ([alexey-milovidov](https://github.com/alexey-milovidov)) - LEFT JOIN における右テーブル、RIGHT JOIN における左テーブル、FULL JOIN における両テーブルへのプッシュダウンを無効化。これにより一部のケースで発生していた誤った JOIN 結果を修正。 [#4846](https://github.com/ClickHouse/ClickHouse/pull/4846) ([Ivan](https://github.com/abyss7)) - `clickhouse-copier`: `--task-file` オプションからタスク設定を自動的にアップロードする機能を追加。 [#4876](https://github.com/ClickHouse/ClickHouse/pull/4876) ([proller](https://github.com/proller)) @@ -1610,9 +1488,7 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' - `JOIN` を伴う `SELECT DISTINCT` で結果が誤る可能性がある問題を修正。 [#5001](https://github.com/ClickHouse/ClickHouse/pull/5001) ([Artem Zuikov](https://github.com/4ertus2)) - 少なくとも 2 つの SELECT が system.columns、system.tables、system.parts、system.parts_tables、あるいは Merge 系のテーブルからの SELECT を含む UNION ALL クエリを実行中に、関連テーブルのカラムに対する ALTER を同時に実行した場合に、ごくまれに発生しうるデータレース状態を修正。 [#5189](https://github.com/ClickHouse/ClickHouse/pull/5189) ([alexey-milovidov](https://github.com/alexey-milovidov)) -#### ビルド / テスト / パッケージングの改善 {#buildtestingpackaging-improvements-2} - - +#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvements-2} - 異なるホスト上で clickhouse-server を実行した際のテスト失敗を修正しました [#4713](https://github.com/ClickHouse/ClickHouse/pull/4713) ([Vasily Nemkov](https://github.com/Enmk)) - clickhouse-test: 非TTY環境でカラー制御シーケンスを無効化しました [#4937](https://github.com/ClickHouse/ClickHouse/pull/4937) ([alesapin](https://github.com/alesapin)) @@ -1621,8 +1497,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' - Yandex LFAlloc を ClickHouse に追加し、MarkCache と UncompressedCache のデータを異なる方法で確保することで、セグメンテーションフォルトをより確実に検出できるようにしました [#4995](https://github.com/ClickHouse/ClickHouse/pull/4995) ([Danila Kutenin](https://github.com/danlark1)) - バックポートおよびチェンジログ作成を支援する Python ユーティリティを追加しました [#4949](https://github.com/ClickHouse/ClickHouse/pull/4949) ([Ivan](https://github.com/abyss7)) - - ## ClickHouse リリース 19.5 {#clickhouse-release-19-5} ### ClickHouse リリース 19.5.4.22, 2019-05-13 {#clickhouse-release-19-5-4-22-2019-05-13} @@ -1644,8 +1518,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### 新機能 {#new-features-4} - - - [Hyperscan](https://github.com/intel/hyperscan) による複数の正規表現マッチングが追加されました(関数 `multiMatchAny`、`multiMatchAnyIndex`、`multiFuzzyMatchAny`、`multiFuzzyMatchAnyIndex`)。 [#4780](https://github.com/ClickHouse/ClickHouse/pull/4780), [#4841](https://github.com/ClickHouse/ClickHouse/pull/4841) ([Danila Kutenin](https://github.com/danlark1)) - 関数 `multiSearchFirstPosition` が追加されました。 [#4780](https://github.com/ClickHouse/ClickHouse/pull/4780) ([Danila Kutenin](https://github.com/danlark1)) - テーブルに対して、行ごとの事前定義済み式フィルタを実装しました。 [#4792](https://github.com/ClickHouse/ClickHouse/pull/4792) ([Ivan](https://github.com/abyss7)) @@ -1655,8 +1527,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### 改善 {#improvement-9} - - - `topK` と `topKWeighted` でカスタム `loadFactor` をサポートしました(issue [#4252](https://github.com/ClickHouse/ClickHouse/issues/4252) を修正)。[#4634](https://github.com/ClickHouse/ClickHouse/pull/4634) ([Kirill Danshin](https://github.com/kirillDanshin)) - サンプリングなしのテーブルでも `parallel_replicas_count > 1` を使用できるようにしました(そのようなテーブルではこの設定は単に無視されます)。以前のバージョンでは例外が発生していました。[#4637](https://github.com/ClickHouse/ClickHouse/pull/4637) ([Alexey Elymanov](https://github.com/digitalist)) - `CREATE OR REPLACE VIEW` をサポートしました。1つのステートメントでビューの作成と新しい定義の設定を行えるようになりました。[#4654](https://github.com/ClickHouse/ClickHouse/pull/4654) ([Boris Granveaud](https://github.com/bgranvea)) @@ -1674,8 +1544,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### バグ修正 {#bug-fix-26} - - * メモリ割り当て失敗時に `std::terminate` が呼び出されないようにしました。これにより、期待どおり `std::bad_alloc` 例外がスローされるようになりました。 [#4665](https://github.com/ClickHouse/ClickHouse/pull/4665) ([alexey-milovidov](https://github.com/alexey-milovidov)) * バッファからの読み込み時の `capnproto` の処理を修正。HTTP 経由でファイルが正常に読み込まれないことがある問題を修正。[#4674](https://github.com/ClickHouse/ClickHouse/pull/4674) ([Vladislav](https://github.com/smirnov-vs)) * `OPTIMIZE TABLE FINAL` クエリ実行後に発生するエラー `Unknown log entry type: 0` を修正。 [#4683](https://github.com/ClickHouse/ClickHouse/pull/4683) ([Amos Bird](https://github.com/amosbird)) @@ -1715,8 +1583,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' * `ReplicatedMergeTree*` テーブルファミリーに対して `ON CLUSTER` で実行された場合に、`DROP`、`TRUNCATE`、`OPTIMIZE` クエリが重複して実行される不具合を修正。 [#4991](https://github.com/ClickHouse/ClickHouse/pull/4991) ([alesapin](https://github.com/alesapin)) - - #### 後方互換性のない変更 {#backward-incompatible-change-8} - 設定 `insert_sample_with_metadata` を `input_format_defaults_for_omitted_fields` に名称変更しました。 [#4771](https://github.com/ClickHouse/ClickHouse/pull/4771) ([Artem Zuikov](https://github.com/4ertus2)) @@ -1728,9 +1594,7 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' - インライン化により Volnitsky サーチャーを最適化し、多数の needle または多数の類似 bigram を含むクエリに対して、検索性能を約 5〜10% 向上させました。 [#4862](https://github.com/ClickHouse/ClickHouse/pull/4862) ([Danila Kutenin](https://github.com/danlark1)) - すべての読み取りデータがキャッシュ内に含まれている場合に発生していた、設定 `use_uncompressed_cache` が 0 より大きいときのパフォーマンス問題を修正しました。 [#4913](https://github.com/ClickHouse/ClickHouse/pull/4913) ([alesapin](https://github.com/alesapin)) -#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement-10} - - +#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement-10} - デバッグビルドのハードニング: より細かいメモリマップと ASLR を導入し、mark cache と index にメモリ保護を追加しました。これにより、ASan や MSan では検出できない場合でも、より多くのメモリ破壊バグを発見できるようになります。 [#4632](https://github.com/ClickHouse/ClickHouse/pull/4632) ([alexey-milovidov](https://github.com/alexey-milovidov)) - CMake 変数 `ENABLE_PROTOBUF`、`ENABLE_PARQUET`、`ENABLE_BROTLI` のサポートを追加し、上記の機能を有効/無効にできるようにしました(librdkafka や mysql などで行えることと同様)。 [#4669](https://github.com/ClickHouse/ClickHouse/pull/4669) ([Silviu Caragea](https://github.com/silviucpp)) @@ -1745,16 +1609,12 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' - Thread Sanitizer を用いてコンパイルした場合に `mremap` の使用を無効化しました。驚くべきことに、TSan は `mmap` や `munmap` はフックしますが `mremap` はフックせず、その結果として誤検知が発生していました。stateful テストでの TSan レポートを修正しました。 [#4859](https://github.com/ClickHouse/ClickHouse/pull/4859) ([alexey-milovidov](https://github.com/alexey-milovidov)) - HTTP インターフェイス経由で format schema を使用するテストを追加しました。 [#4864](https://github.com/ClickHouse/ClickHouse/pull/4864) ([Vitaly Baranov](https://github.com/vitlibar)) - - ## ClickHouse リリース 19.4 {#clickhouse-release-19-4} ### ClickHouse リリース 19.4.4.33, 2019-04-17 {#clickhouse-release-19-4-4-33-2019-04-17} #### バグ修正 {#bug-fixes-7} - - * メモリ割り当てが失敗した場合に `std::terminate` を呼び出さないようにしました。これにより、期待どおりに `std::bad_alloc` 例外が送出されるようになりました。 [#4665](https://github.com/ClickHouse/ClickHouse/pull/4665) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `capnproto` によるバッファからの読み込み処理を修正。HTTP 経由でファイルが正常に読み込めないことがありました。 [#4674](https://github.com/ClickHouse/ClickHouse/pull/4674) ([Vladislav](https://github.com/smirnov-vs)) * `OPTIMIZE TABLE FINAL` クエリの実行後に発生するエラー `Unknown log entry type: 0` を修正。 [#4683](https://github.com/ClickHouse/ClickHouse/pull/4683) ([Amos Bird](https://github.com/amosbird)) @@ -1788,8 +1648,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' * 関数 `toISOWeek` における 1970 年の結果を修正しました。 [#4988](https://github.com/ClickHouse/ClickHouse/pull/4988) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `ReplicatedMergeTree*` テーブルファミリーに対して `ON CLUSTER` で実行した際に発生していた、`DROP`、`TRUNCATE`、`OPTIMIZE` クエリの重複実行を修正しました。 [#4991](https://github.com/ClickHouse/ClickHouse/pull/4991) ([alesapin](https://github.com/alesapin)) - - #### 改善 {#improvements-2} - 通常のカラムと `DEFAULT`、`MATERIALIZED`、`ALIAS` カラムを、1 つのリストとしてまとめて保持するようにしました(issue [#2867](https://github.com/ClickHouse/ClickHouse/issues/2867) の修正)。[#4707](https://github.com/ClickHouse/ClickHouse/pull/4707)([Alex Zatelepin](https://github.com/ztlpn)) @@ -1803,13 +1661,13 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### ビルド / テスト / パッケージングの改善 {#buildtestingpackaging-improvement-11} -- 任意のユーザーから clickhouse-server イメージを起動できるようにしました。[#4753](https://github.com/ClickHouse/ClickHouse/pull/4753)([Mikhail f. Shiryaev](https://github.com/Felixoid)) +- 任意のユーザーで clickhouse-server イメージを起動できるようにしました。[#4753](https://github.com/ClickHouse/ClickHouse/pull/4753)([Mikhail f. Shiryaev](https://github.com/Felixoid)) ### ClickHouse Release 19.4.2.7, 2019-03-30 {#clickhouse-release-19-4-2-7-2019-03-30} #### 不具合修正 {#bug-fixes-9} -- カラムに空配列の長いシーケンスが含まれているというまれなケースにおいて、`Array(LowCardinality)` カラムからの読み取りが失敗する問題を修正しました。[#4850](https://github.com/ClickHouse/ClickHouse/pull/4850)([Nikolai Kochetov](https://github.com/KochetovNicolai)) +- カラムに空配列の長いシーケンスが含まれているというまれなケースで、`Array(LowCardinality)` カラムからの読み取りが失敗する問題を修正しました。[#4850](https://github.com/ClickHouse/ClickHouse/pull/4850)([Nikolai Kochetov](https://github.com/KochetovNicolai)) ### ClickHouse Release 19.4.1.3, 2019-03-19 {#clickhouse-release-19-4-1-3-2019-03-19} @@ -1821,8 +1679,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### 新機能 {#new-features-5} - - - `Protobuf` フォーマット(入力および出力、ネストしたデータ構造)を完全にサポート。 [#4174](https://github.com/ClickHouse/ClickHouse/pull/4174) [#4493](https://github.com/ClickHouse/ClickHouse/pull/4493) ([Vitaly Baranov](https://github.com/vitlibar)) - Roaring Bitmap を用いたビットマップ関数を追加。 [#4207](https://github.com/ClickHouse/ClickHouse/pull/4207) ([Andy Yang](https://github.com/andyyzh)) [#4568](https://github.com/ClickHouse/ClickHouse/pull/4568) ([Vitaly Baranov](https://github.com/vitlibar)) - Parquet フォーマットのサポートを追加。 [#4448](https://github.com/ClickHouse/ClickHouse/pull/4448) ([proller](https://github.com/proller)) @@ -1835,8 +1691,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### バグ修正 {#bug-fixes-11} - - * このリリースには、19.3 および 19.1 でのすべてのバグ修正も含まれています。 * data skipping index におけるバグを修正: INSERT 後の granule の順序が誤っていました。 [#4407](https://github.com/ClickHouse/ClickHouse/pull/4407) ([Nikita Vasilev](https://github.com/nikvas0)) * `Nullable` および `LowCardinality` カラムに対する `set` インデックスを修正しました。以前は、`Nullable` または `LowCardinality` カラムに対する `set` インデックスを用いて SELECT クエリを実行すると、`Data type must be deserialized with multiple streams` というエラーが発生していました。 [#4594](https://github.com/ClickHouse/ClickHouse/pull/4594) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) @@ -1858,8 +1712,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' * 述語オプティマイザ使用時の lambda 関数の不具合を修正。 [#4408](https://github.com/ClickHouse/ClickHouse/pull/4408) ([Winter Zhang](https://github.com/zhang2014)) * 複数の JOIN に関する不具合を修正。 [#4595](https://github.com/ClickHouse/ClickHouse/pull/4595) ([Artem Zuikov](https://github.com/4ertus2)) - - #### 改良点 {#improvements-3} - 右側のテーブル列に対して、JOIN の ON 句でエイリアスをサポート。 [#4412](https://github.com/ClickHouse/ClickHouse/pull/4412) ([Artem Zuikov](https://github.com/4ertus2)) @@ -1872,12 +1724,10 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' - 8-bit および 16-bit キー向けに、HashTable の API を使用する適切なルックアップテーブルを利用。 [#4536](https://github.com/ClickHouse/ClickHouse/pull/4536) ([Amos Bird](https://github.com/amosbird)) - 文字列比較のパフォーマンスを改善。 [#4564](https://github.com/ClickHouse/ClickHouse/pull/4564) ([alexey-milovidov](https://github.com/alexey-milovidov)) - distributed DDL キューを別スレッドでクリーンアップし、distributed DDL タスクを処理するメインループを遅くしないようにした。 [#4502](https://github.com/ClickHouse/ClickHouse/pull/4502) ([Alex Zatelepin](https://github.com/ztlpn)) -- `min_bytes_to_use_direct_io` が 1 に設定されている場合、読み取るデータサイズが圧縮ブロック 1 つ分のサイズで過小評価されることがあり、そのため一部のファイルが O_DIRECT モードでオープンされていななかった問題を修正。 [#4526](https://github.com/ClickHouse/ClickHouse/pull/4526) ([alexey-milovidov](https://github.com/alexey-milovidov)) +- `min_bytes_to_use_direct_io` が 1 に設定されている場合、読み取るデータサイズが圧縮ブロック 1 つ分のサイズで過小評価されることがあり、そのため一部のファイルが O_DIRECT モードでオープンされていなかった問題を修正。 [#4526](https://github.com/ClickHouse/ClickHouse/pull/4526) ([alexey-milovidov](https://github.com/alexey-milovidov)) #### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement-12} - - - clang-9 のサポートを追加。[#4604](https://github.com/ClickHouse/ClickHouse/pull/4604) ([alexey-milovidov](https://github.com/alexey-milovidov)) - 誤った `__asm__` 命令を再度修正。[#4621](https://github.com/ClickHouse/ClickHouse/pull/4621) ([Konstantin Podshumok](https://github.com/podshumok)) - コマンドラインから `clickhouse-performance-test` の設定を指定できる機能を追加。[#4437](https://github.com/ClickHouse/ClickHouse/pull/4437) ([alesapin](https://github.com/alesapin)) @@ -1889,8 +1739,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' - macOS でのコンパイルを修正。[#4371](https://github.com/ClickHouse/ClickHouse/pull/4371) ([Vitaly Baranov](https://github.com/vitlibar)) - FreeBSD およびさまざまな変則的なビルド構成向けのビルド修正。[#4444](https://github.com/ClickHouse/ClickHouse/pull/4444) ([proller](https://github.com/proller)) - - ## ClickHouse リリース 19.3 {#clickhouse-release-19-3} ### ClickHouse リリース 19.3.9.1, 2019-04-02 {#clickhouse-release-19-3-9-1-2019-04-02} @@ -1922,9 +1770,7 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' - 分散 DDL が使用されている場合に、サーバーのシャットダウン時にハングアップする問題を修正。[#4472](https://github.com/ClickHouse/ClickHouse/pull/4472) ([Alex Zatelepin](https://github.com/ztlpn)) - 列番号が 10 を超える列に対してテキスト形式をパースする際のエラーメッセージで、誤った列番号が出力されていた問題を修正。[#4484](https://github.com/ClickHouse/ClickHouse/pull/4484) ([alexey-milovidov](https://github.com/alexey-milovidov)) -#### ビルド / テスト / パッケージングの改善 {#buildtestingpackaging-improvements-3} - - +#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvements-3} - AVX を有効にしたビルドを修正。[#4527](https://github.com/ClickHouse/ClickHouse/pull/4527) ([alexey-milovidov](https://github.com/alexey-milovidov)) - コンパイル時のカーネルではなく、既知の安定バージョンに基づいて拡張アカウンティングおよび I/O アカウンティングを有効化。[#4541](https://github.com/ClickHouse/ClickHouse/pull/4541) ([nvartolomei](https://github.com/nvartolomei)) @@ -1955,8 +1801,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' - FreeBSD 向けビルドに関する多数の修正。[#4397](https://github.com/ClickHouse/ClickHouse/pull/4397) ([proller](https://github.com/proller)) - 同じエイリアスを含むサブクエリを持つクエリでのエイリアス置換を修正(issue [#4110](https://github.com/ClickHouse/ClickHouse/issues/4110))。[#4351](https://github.com/ClickHouse/ClickHouse/pull/4351) ([Artem Zuikov](https://github.com/4ertus2)) - - #### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvements-4} - Docker イメージ内でステートレステスト用に `clickhouse-server` を実行できるようになりました。 [#4347](https://github.com/ClickHouse/ClickHouse/pull/4347) ([Vasily Nemkov](https://github.com/Enmk)) @@ -1965,8 +1809,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### 新機能 {#new-features-6} - - - 何らかの理由でスタックしてしまった mutation を削除できるようにする `KILL MUTATION` ステートメントを追加しました。トラブルシューティングを容易にするため、`system.mutations` テーブルに `latest_failed_part`、`latest_fail_time`、`latest_fail_reason` フィールドを追加しました。 [#4287](https://github.com/ClickHouse/ClickHouse/pull/4287) ([Alex Zatelepin](https://github.com/ztlpn)) - Shannon エントロピーを計算する集約関数 `entropy` を追加しました。 [#4238](https://github.com/ClickHouse/ClickHouse/pull/4238) ([Quid37](https://github.com/Quid37)) - クエリ `INSERT INTO tbl VALUES (....` を `query` 部分と `data` 部分に分割せずにサーバーへ送信できるようにしました。 [#4301](https://github.com/ClickHouse/ClickHouse/pull/4301) ([alesapin](https://github.com/alesapin)) @@ -1988,15 +1830,11 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### 実験的機能 {#experimental-features-2} - - - MergeTree テーブルエンジンファミリー向けに、`minmax` および `set` データスキップインデックスを追加しました。 [#4143](https://github.com/ClickHouse/ClickHouse/pull/4143) ([Nikita Vasilev](https://github.com/nikvas0)) - 可能な場合に、`CROSS JOIN` を `INNER JOIN` に変換する機能を追加しました。 [#4221](https://github.com/ClickHouse/ClickHouse/pull/4221) [#4266](https://github.com/ClickHouse/ClickHouse/pull/4266) ([Artem Zuikov](https://github.com/4ertus2)) #### 不具合修正 {#bug-fixes-17} - - * 重複した列がある場合に `JOIN ON` 句で発生していた `Not found column` エラーを修正しました。 [#4279](https://github.com/ClickHouse/ClickHouse/pull/4279) ([Artem Zuikov](https://github.com/4ertus2)) * `START REPLICATED SENDS` コマンドでレプリケート送信を開始できるようにした。 [#4229](https://github.com/ClickHouse/ClickHouse/pull/4229) ([nvartolomei](https://github.com/nvartolomei)) * `Array(LowCardinality)` 引数を取る集約関数の実行に関する不具合を修正しました。 [#4055](https://github.com/ClickHouse/ClickHouse/pull/4055) ([KochetovNicolai](https://github.com/KochetovNicolai)) @@ -2025,8 +1863,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' * 古いデータパーツの削除処理時に `File not found` エラーで失敗する可能性があった、まれなレースコンディションを修正。 [#4378](https://github.com/ClickHouse/ClickHouse/pull/4378) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `/etc/clickhouse-server/config.xml` が欠落していたインストールパッケージの問題を修正。 [#4343](https://github.com/ClickHouse/ClickHouse/pull/4343) ([proller](https://github.com/proller)) - - #### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvements-5} - Debian パッケージ: 設定に従って /etc/clickhouse-server/preprocessed のリンクを修正。 [#4205](https://github.com/ClickHouse/ClickHouse/pull/4205) ([proller](https://github.com/proller)) @@ -2050,8 +1886,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### 後方互換性のない変更 {#backward-incompatible-changes-1} - - - `allow_experimental_low_cardinality_type` 設定を削除しました。`LowCardinality` データ型は本番運用に対応しました。[#4323](https://github.com/ClickHouse/ClickHouse/pull/4323) ([alexey-milovidov](https://github.com/alexey-milovidov)) - 利用可能なメモリ量に応じて、mark キャッシュサイズおよび非圧縮キャッシュサイズを削減するようにしました。[#4240](https://github.com/ClickHouse/ClickHouse/pull/4240) ([Lopatin Konstantin](https://github.com/k-lopatin) - `CREATE TABLE` クエリにキーワード `INDEX` を追加しました。名前が `index` のカラムは、バッククォートまたは二重引用符で囲む必要があります: `` `index` ``。[#4143](https://github.com/ClickHouse/ClickHouse/pull/4143) ([Nikita Vasilev](https://github.com/nikvas0)) @@ -2062,9 +1896,7 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' - `LIMIT` を含まないクエリで `std::sort` を `pdqsort` に置き換えました。[#4236](https://github.com/ClickHouse/ClickHouse/pull/4236) ([Evgenii Pravda](https://github.com/kvinty)) - サーバーがグローバルスレッドプールからスレッドを再利用するようになりました。これにより、一部の特殊なケースでパフォーマンスに影響があります。[#4150](https://github.com/ClickHouse/ClickHouse/pull/4150) ([alexey-milovidov](https://github.com/alexey-milovidov)) -#### 改善点 {#improvements-5} - - +#### 改善 {#improvements-5} - FreeBSD 向けの AIO サポートを実装しました。 [#4305](https://github.com/ClickHouse/ClickHouse/pull/4305) ([urgordeadbeef](https://github.com/urgordeadbeef)) - `SELECT * FROM a JOIN b USING a, b` は、左側のテーブルからの `a` および `b` カラムのみを返すようになりました。 [#4141](https://github.com/ClickHouse/ClickHouse/pull/4141) ([Artem Zuikov](https://github.com/4ertus2)) @@ -2080,8 +1912,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' - サーバーのシャットダウン時間と ALTER の待機時間を改善しました。 [#4372](https://github.com/ClickHouse/ClickHouse/pull/4372) ([alexey-milovidov](https://github.com/alexey-milovidov)) - `replicated_can_become_leader` 設定に関する情報を system.replicas に追加し、レプリカがリーダーになろうとしない場合にログを出力するようにしました。 [#4379](https://github.com/ClickHouse/ClickHouse/pull/4379) ([Alex Zatelepin](https://github.com/ztlpn)) - - ## ClickHouse リリース 19.1 {#clickhouse-release-19-1} ### ClickHouse リリース 19.1.14, 2019-03-14 {#clickhouse-release-19-1-14-2019-03-14} @@ -2096,8 +1926,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' このリリースには、19.3.6 とまったく同じパッチセットが含まれます。 - - ## ClickHouse リリース 19.1 {#clickhouse-release-19-1-1} ### ClickHouse リリース 19.1.9, 2019-02-21 {#clickhouse-release-19-1-9-2019-02-21} @@ -2113,16 +1941,12 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' - /etc/clickhouse-server/config.xml が欠落していたインストールパッケージを修正しました。 [#4343](https://github.com/ClickHouse/ClickHouse/pull/4343) ([proller](https://github.com/proller)) - - ## ClickHouse リリース 19.1 {#clickhouse-release-19-1-2} ### ClickHouse リリース 19.1.7, 2019-02-15 {#clickhouse-release-19-1-7-2019-02-15} #### 不具合修正 {#bug-fixes-20} - - * `joinGet` 関数が正しい型を返し、ロックを適切に処理するように修正しました。 [#4153](https://github.com/ClickHouse/ClickHouse/pull/4153) ([Amos Bird](https://github.com/amosbird)) * サーバーのシャットダウン時にシステムログを再作成しようとした際に発生していたエラーを修正しました。 [#4254](https://github.com/ClickHouse/ClickHouse/pull/4254) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 不具合の修正: `Dictionary` エンジンを使用するデータベースが存在する場合、すべてのディクショナリがサーバー起動時に強制的にロードされており、さらに localhost 上の ClickHouse をソースとするディクショナリがあると、そのディクショナリをロードできない問題を修正しました。 [#4255](https://github.com/ClickHouse/ClickHouse/pull/4255) ([alexey-milovidov](https://github.com/alexey-milovidov)) @@ -2148,8 +1972,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' * `Date` および `DateTime` の比較が誤って行われる不具合を修正。 [#4237](https://github.com/ClickHouse/ClickHouse/pull/4237) ([valexey](https://github.com/valexey)) * 条件演算子(関数 `if`)の分岐で `Date` および `DateTime` 引数が使用された場合に誤った結果が返される問題を修正しました。関数 `if` に汎用的なケースを追加しました。 [#4243](https://github.com/ClickHouse/ClickHouse/pull/4243) ([alexey-milovidov](https://github.com/alexey-milovidov)) - - ### ClickHouse リリース 19.1.6, 2019-01-24 {#clickhouse-release-19-1-6-2019-01-24} #### 新機能 {#new-features-7} @@ -2171,14 +1993,10 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### 実験的機能 {#experimental-features-3} - - - 複数の JOIN のエミュレーションを追加しました(`allow_experimental_multiple_joins_emulation` 設定)。[#3946](https://github.com/ClickHouse/ClickHouse/pull/3946) ([Artem Zuikov](https://github.com/4ertus2)) #### バグ修正 {#bug-fixes-21} - - * メモリ消費を抑えるため、`compiled_expression_cache_size` 設定にデフォルトで上限を設けました。 [#4041](https://github.com/ClickHouse/ClickHouse/pull/4041) ([alesapin](https://github.com/alesapin)) * Replicated テーブルに対する ALTER を実行するスレッドと、ZooKeeper から構成を更新するスレッドでハングアップが発生する原因となっていたバグを修正。 [#2947](https://github.com/ClickHouse/ClickHouse/issues/2947) [#3891](https://github.com/ClickHouse/ClickHouse/issues/3891) [#3934](https://github.com/ClickHouse/ClickHouse/pull/3934) ([Alex Zatelepin](https://github.com/ztlpn)) * 分散 `ALTER` タスクの実行時に発生していたレースコンディションを修正しました。このレースコンディションにより、複数のレプリカが同じタスクを実行しようとし、1つを除くすべてのレプリカが ZooKeeper エラーで失敗していました。 [#3904](https://github.com/ClickHouse/ClickHouse/pull/3904) ([Alex Zatelepin](https://github.com/ztlpn)) @@ -2206,8 +2024,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' * `JOIN ON` 構文と分散テーブルを使用するクエリにおけるカラムエイリアスを修正。 [#3980](https://github.com/ClickHouse/ClickHouse/pull/3980) ([Winter Zhang](https://github.com/zhang2014)) * `quantileTDigest` の内部実装の不具合を修正しました(Artem Vakhrushev によって発見されました)。この不具合は通常の ClickHouse の利用では発生せず、ClickHouse のコードベースをライブラリとして直接利用している場合にのみ影響がありました。 [#3935](https://github.com/ClickHouse/ClickHouse/pull/3935) ([alexey-milovidov](https://github.com/alexey-milovidov)) - - #### 改善点 {#improvements-6} - `ALTER TABLE ADD COLUMN` 文における `IF NOT EXISTS` のサポートと、`DROP/MODIFY/CLEAR/COMMENT COLUMN` における `IF EXISTS` のサポートを追加。 [#3900](https://github.com/ClickHouse/ClickHouse/pull/3900) ([Boris Granveaud](https://github.com/bgranvea)) @@ -2225,8 +2041,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### パフォーマンスの改善 {#performance-improvements-5} - - - MergeTree の設定 `use_minimalistic_part_header_in_zookeeper` を追加。これを有効にすると、Replicated テーブルではコンパクトなパートメタデータを単一のパート znode に保存します。これにより ZooKeeper のスナップショットサイズが大幅に削減される可能性があります(特にテーブルのカラム数が多い場合)。この設定を有効化すると、それをサポートしないバージョンへのダウングレードはできなくなる点に注意してください。 [#3960](https://github.com/ClickHouse/ClickHouse/pull/3960) ([Alex Zatelepin](https://github.com/ztlpn)) - パターンに時間が含まれない場合に、関数 `sequenceMatch` と `sequenceCount` 用の DFA ベースの実装を追加。 [#4004](https://github.com/ClickHouse/ClickHouse/pull/4004) ([Léo Ercolanelli](https://github.com/ercolanelli-leo)) - 整数値のシリアライゼーションのパフォーマンスを改善。 [#3968](https://github.com/ClickHouse/ClickHouse/pull/3968) ([Amos Bird](https://github.com/amosbird)) @@ -2241,8 +2055,6 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' #### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvements-6} - - * PowerPC(`ppc64le`)向けビルドのサポートを追加しました。 [#4132](https://github.com/ClickHouse/ClickHouse/pull/4132) ([Danila Kutenin](https://github.com/danlark1)) * ステートフルな機能テストが一般公開されているデータセット上で実行されるようになりました。 [#3969](https://github.com/ClickHouse/ClickHouse/pull/3969) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Docker または systemd-nspawn 内で `bash: /usr/bin/clickhouse-extract-from-config: Operation not permitted` というメッセージが表示され、サーバーが起動できない問題を修正しました。 [#4136](https://github.com/ClickHouse/ClickHouse/pull/4136) ([alexey-milovidov](https://github.com/alexey-milovidov)) @@ -2268,8 +2080,4 @@ keywords: ['ClickHouse 2019', '2019年 変更履歴', 'リリースノート', ' * `dbms` 内のコメントおよび文字列リテラル中のスペルミスを修正しました。 [#4122](https://github.com/ClickHouse/ClickHouse/pull/4122) ([maiha](https://github.com/maiha)) * コメント内の誤字を修正しました。 [#4089](https://github.com/ClickHouse/ClickHouse/pull/4089) ([Evgenii Pravda](https://github.com/kvinty)) - - - - -## [2018年の変更履歴](./2018.md) {#changelog-for-2018} +## [2018年の変更履歴](./2018.md) {#changelog-for-2018} \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2020.md b/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2020.md index da45a0ffefe..dd36cdcd2e8 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2020.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2020.md @@ -1,6 +1,6 @@ --- slug: /whats-new/changelog/2020 -sidebar_position: 7 +sidebar_position: -2020 sidebar_label: '2020' title: '2020年変更履歴' description: '2020年の変更履歴' @@ -271,7 +271,7 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor #### バグ修正 {#bug-fix-5} -* `query profiler` が有効で、かつ一部の関数に対して(おそらく)壊れた非同期アンワインドテーブルを持つ glibc バージョンの OS 上に ClickHouse がインストールされている場合に、まれに発生する予告なくクラッシュする問題を修正しました。これにより [#15301](https://github.com/ClickHouse/ClickHouse/issues/15301) が修正されます。あわせて [#13098](https://github.com/ClickHouse/ClickHouse/issues/13098) も修正されます。 [#16846](https://github.com/ClickHouse/ClickHouse/pull/16846)([alexey-milovidov](https://github.com/alexey-milovidov))。 +* `query profiler` が有効で、かつ一部の関数に対して(おそらく)壊れた非同期アンワインドテーブルを持つ glibc バージョンの OS 上に ClickHouse がインストールされている場合に、まれに予期せずクラッシュする問題を修正しました。これにより [#15301](https://github.com/ClickHouse/ClickHouse/issues/15301) が修正されます。あわせて [#13098](https://github.com/ClickHouse/ClickHouse/issues/13098) も修正されます。 [#16846](https://github.com/ClickHouse/ClickHouse/pull/16846)([alexey-milovidov](https://github.com/alexey-milovidov))。 ### ClickHouse リリース v20.11.2.1, 2020-11-11 {#clickhouse-release-v201121-2020-11-11} @@ -379,7 +379,7 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor * ハッシュテーブルを事前確保することで、`hashed`/`sparse_hashed` 辞書のロードを高速化しました。[#15454](https://github.com/ClickHouse/ClickHouse/pull/15454) ([Azat Khuzhin](https://github.com/azat)). * これまで単純だった `count` の最適化が、やや複雑なものになりました。パーティション式と完全に一致する述語も最適化できるようになりました。また、`max_parallel_replicas > 1` のときに誤った `count` を返していた [#11092](https://github.com/ClickHouse/ClickHouse/issues/11092) も修正されます。[#15074](https://github.com/ClickHouse/ClickHouse/pull/15074) ([Amos Bird](https://github.com/amosbird)). -#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement-3} +#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement-3} * ステートレステスト向けの flaky チェックを追加しました。これにより、マージ前の段階で潜在的に flaky な機能テストを事前に検出できます。 [#16238](https://github.com/ClickHouse/ClickHouse/pull/16238) ([alesapin](https://github.com/alesapin)). * アマルガメーションではなく、`croaring` に対して適切なバージョンを使用するようにしました。 [#16285](https://github.com/ClickHouse/ClickHouse/pull/16285) ([sundyli](https://github.com/sundy-li)). @@ -660,8 +660,6 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor * ConfigProcessor でファイルパスを連結する際に std::filesystem::path を使用します。 [#14558](https://github.com/ClickHouse/ClickHouse/pull/14558) ([Bharat Nallan](https://github.com/bharatnc)). * 負の大きな整数値で呼び出された場合に `bitShiftLeft()` で発生するデバッグアサーションを修正しました。 [#14697](https://github.com/ClickHouse/ClickHouse/pull/14697) ([Artem Zuikov](https://github.com/4ertus2)). - - ## ClickHouse リリース 20.9 {#clickhouse-release-209} ### ClickHouse リリース v20.9.7.11-stable, 2020-12-07 {#clickhouse-release-v209711-stable-2020-12-07} @@ -700,7 +698,7 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor #### 改善 {#improvement-5} * SNI を要求する `clickhouse-server` のセキュアエンドポイントに接続できるようにしました。これは `clickhouse-server` が TLS プロキシの背後でホストされている場合に有効です。[#16938](https://github.com/ClickHouse/ClickHouse/pull/16938)([filimonov](https://github.com/filimonov))。 -* 条件付き集約関数(例: `avgIf`, `sumIf`, `maxIf`)が対象の行が存在せず、引数が Nullable 型の場合に `NULL` を返すようにしました。[#13964](https://github.com/ClickHouse/ClickHouse/pull/13964)([Winter Zhang](https://github.com/zhang2014))。 +* 条件付き集約関数(例: `avgIf`, `sumIf`, `maxIf`)が対象となる行が存在せず、引数が Nullable 型の場合に `NULL` を返すようにしました。[#13964](https://github.com/ClickHouse/ClickHouse/pull/13964)([Winter Zhang](https://github.com/zhang2014))。 #### バグ修正 {#bug-fix-11} @@ -795,7 +793,7 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor #### 後方互換性のない変更 {#backward-incompatible-change-3} -* 20.5 より古いバージョンからアップグレードする際にローリングアップデートを実行し、クラスタに 20.5 以上と 20.5 未満のバージョンが混在している場合、古いバージョンの ClickHouse ノードを再起動すると、より新しいバージョンが存在する状態で古いバージョンが起動し、`Part ... intersects previous part` エラーが発生する可能性があります。このエラーを防ぐには、まずクラスタ内のすべてのノードに新しい clickhouse-server パッケージをインストールしてから再起動を行ってください(つまり、clickhouse-server を再起動するときには、新しいバージョンで起動するようにします) +* 20.5 より古いバージョンからアップグレードする際にローリングアップデートを実行していて、クラスタに 20.5 以上と 20.5 未満のバージョンが混在している場合、古いバージョンの ClickHouse ノードを再起動すると、より新しいバージョンが存在する状態で古いバージョンが起動し、その結果 `Part ... intersects previous part` エラーが発生する可能性があります。このエラーを防ぐには、まずクラスタ内のすべてのノードに新しい clickhouse-server パッケージをインストールしてから再起動を行ってください(つまり、clickhouse-server を再起動するときには、新しいバージョンで起動されるようにします)。 #### 新機能 {#new-feature-3} @@ -1146,8 +1144,6 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor * robot-clickhouse からの PR をスキップするようにしました。 [#13489](https://github.com/ClickHouse/ClickHouse/pull/13489) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). * Dockerfile を統合テストから `docker/test` ディレクトリへ移動しました。docker_compose ファイルは `runner` Docker コンテナ内で利用可能です。Docker イメージは統合テストではなく CI でビルドされます。[#13448](https://github.com/ClickHouse/ClickHouse/pull/13448) ([Ilya Yatsishin](https://github.com/qoega)). - - ## ClickHouse リリース 20.7 {#clickhouse-release-207} ### ClickHouse リリース v20.7.2.30-stable, 2020-08-31 {#clickhouse-release-v207230-stable-2020-08-31} @@ -1304,7 +1300,7 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor * コンパクトパーツからの読み取り性能を改善しました。コンパクトパーツは実験的な機能です。[#12492](https://github.com/ClickHouse/ClickHouse/pull/12492) ([Anton Popov](https://github.com/CurtizJ)). * `DiskS3` におけるストリーミング最適化を試験的に実装しました。DiskS3 は実験的な機能です。[#12434](https://github.com/ClickHouse/ClickHouse/pull/12434) ([Vladimir Chebotarev](https://github.com/excitoon)). -#### ビルド / テスト / パッケージングの改善 {#buildtestingpackaging-improvement-8} +#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement-8} * `sh` テストのリントには `shellcheck` を使用するようにしました。 [#13200](https://github.com/ClickHouse/ClickHouse/pull/13200) [#13207](https://github.com/ClickHouse/ClickHouse/pull/13207) ([alexey-milovidov](https://github.com/alexey-milovidov)). * GitHub フックでプルリクエストにラベルを自動設定するスクリプトを追加。 [#13183](https://github.com/ClickHouse/ClickHouse/pull/13183) ([alesapin](https://github.com/alesapin)). @@ -1341,8 +1337,6 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor * スタックフレームが大きくなり過ぎないように制御できるコンパイラオプションを追加しました。これにより、小さいスタックサイズのファイバー内でコードを実行しやすくなります。 [#11524](https://github.com/ClickHouse/ClickHouse/pull/11524) ([alexey-milovidov](https://github.com/alexey-milovidov)). * gitignore ファイルを更新。 [#13447](https://github.com/ClickHouse/ClickHouse/pull/13447) ([vladimir-golovchenko](https://github.com/vladimir-golovchenko)). - - ## ClickHouse リリース 20.6 {#clickhouse-release-206} ### ClickHouse リリース v20.6.3.28-stable {#clickhouse-release-v206328-stable} @@ -1455,7 +1449,7 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor * `load_balancing` 用にレプリカ優先度を追加しました(ロードバランシングを手動で優先順位付けするため)。[#11995](https://github.com/ClickHouse/ClickHouse/pull/11995) ([Azat Khuzhin](https://github.com/azat)). * S3 メタデータ内のパスを相対パスに変更し、S3 ブロブをより簡単に扱えるようにしました。[#11892](https://github.com/ClickHouse/ClickHouse/pull/11892) ([Vladimir Chebotarev](https://github.com/excitoon)). -#### パフォーマンスの改良 {#performance-improvement-7} +#### パフォーマンスの改善 {#performance-improvement-7} * ソートキーのプレフィックスを利用することで、`ORDER BY` および `GROUP BY` のパフォーマンスを改善しました(`optimize_aggregation_in_order` 設定で有効化、デフォルトでは無効)。[#11696](https://github.com/ClickHouse/ClickHouse/pull/11696) ([Anton Popov](https://github.com/CurtizJ)). * `set optimize_injective_functions_inside_uniq=1` の場合に、`uniq*()` 内の単射関数を削除するようにしました。[#12337](https://github.com/ClickHouse/ClickHouse/pull/12337) ([Ruslan Kamalov](https://github.com/kamalov-ruslan)). @@ -1463,6 +1457,7 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor * DiskS3 向けに単一パートアップロードを実装しました(実験的機能)。[#12026](https://github.com/ClickHouse/ClickHouse/pull/12026) ([Vladimir Chebotarev](https://github.com/excitoon)). #### 実験的機能 {#experimental-feature-4} + * `MergeTree` ファミリーのテーブルに、データをメモリ上に保持する新しいパーツのインメモリ形式を追加しました。パーツは最初のマージ時に初めてディスクへ書き込まれます。行数またはバイト数が `min_rows_for_compact_part` および `min_bytes_for_compact_part` のしきい値を下回る場合、そのパーツはインメモリ形式で作成されます。さらに、オプション機能として Write-Ahead-Log のサポートがあり、デフォルトで有効で、`in_memory_parts_enable_wal` 設定によって制御されます。[#10697](https://github.com/ClickHouse/ClickHouse/pull/10697) ([Anton Popov](https://github.com/CurtizJ)). #### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement-9} @@ -1880,8 +1875,6 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor * FreeBSD 向けビルドを修正。 [#10150](https://github.com/ClickHouse/ClickHouse/pull/10150) ([Ivan](https://github.com/abyss7)). * pytest フレームワークを使用するクエリテスト向けの新しいビルドを追加しました。 [#10039](https://github.com/ClickHouse/ClickHouse/pull/10039) ([Ivan](https://github.com/abyss7)). - - ## ClickHouse リリース v20.4 {#clickhouse-release-v204} ### ClickHouse リリース v20.4.8.99-stable 2020-08-10 {#clickhouse-release-v204899-stable-2020-08-10} @@ -2086,6 +2079,7 @@ v20.4.3.16-stable からの変更はありません。 ### ClickHouse リリース v20.4.2.9, 2020-05-12 {#clickhouse-release-v20429-2020-05-12} #### 後方互換性のない変更 {#backward-incompatible-change-8} + * システムテーブル(例: `system.query_log`、`system.trace_log`、`system.metric_log`)は、サイズが 10 MiB 未満のパーツに対して compact data part フォーマットを使用するようになりました。compact data part フォーマットはバージョン 20.3 以降でサポートされています。20.3 未満のバージョンにダウングレードする場合は、`/var/lib/clickhouse/data/system/` 内のシステムログ用テーブルデータを手動で削除する必要があります。 * FixedString を含む文字列比較で、比較対象の引数のサイズが異なる場合、小さい文字列が大きい文字列の長さまでパディングされているかのように比較を行います。これは、FixedString データ型が SQL の CHAR 型に対応すると仮定した場合の SQL 互換性のためのものです。これにより [#9272](https://github.com/ClickHouse/ClickHouse/issues/9272) がクローズされました。 [#10363](https://github.com/ClickHouse/ClickHouse/pull/10363)([alexey-milovidov](https://github.com/alexey-milovidov)) * `SHOW CREATE TABLE` を複数行表示にしました。これにより可読性が向上し、MySQL に近い形式になりました。 [#10049](https://github.com/ClickHouse/ClickHouse/pull/10049)([Azat Khuzhin](https://github.com/azat)) @@ -2097,14 +2091,14 @@ v20.4.3.16-stable からの変更はありません。 * カスタム HTTP ハンドラーのサポートを追加。説明については [#5436](https://github.com/ClickHouse/ClickHouse/issues/5436) を参照。[#7572](https://github.com/ClickHouse/ClickHouse/pull/7572)([Winter Zhang](https://github.com/zhang2014)) * MessagePack の入出力フォーマットを追加。 [#9889](https://github.com/ClickHouse/ClickHouse/pull/9889) ([Kruglov Pavel](https://github.com/Avogar)) * Regexp 入力フォーマットを追加しました。 [#9196](https://github.com/ClickHouse/ClickHouse/pull/9196) ([Kruglov Pavel](https://github.com/Avogar)) -* Markdown 文書にテーブルを埋め込めるようにする出力フォーマット `Markdown` を追加しました。 [#10317](https://github.com/ClickHouse/ClickHouse/pull/10317) ([Kruglov Pavel](https://github.com/Avogar)) +* Markdown 文書にテーブルを埋め込むための出力フォーマット `Markdown` を追加しました。 [#10317](https://github.com/ClickHouse/ClickHouse/pull/10317) ([Kruglov Pavel](https://github.com/Avogar)) * 辞書のカスタム設定セクションのサポートを追加しました。また、[#2829](https://github.com/ClickHouse/ClickHouse/issues/2829) の問題も修正しました。 [#10137](https://github.com/ClickHouse/ClickHouse/pull/10137) ([Artem Streltsov](https://github.com/kekekekule)) -* DDL クエリの `CREATE DICTIONARY` でカスタム設定をサポート [#10465](https://github.com/ClickHouse/ClickHouse/pull/10465)([Artem Streltsov](https://github.com/kekekekule)) +* DDL クエリにおける `CREATE DICTIONARY` でカスタム設定をサポートしました [#10465](https://github.com/ClickHouse/ClickHouse/pull/10465)([Artem Streltsov](https://github.com/kekekekule)) * サーバー全体で動作するシンプルなメモリプロファイラを追加しました。サーバーのメモリ使用量が次の割り当て閾値を超えたタイミングで、割り当てコンテキストを収集します。 [#10444](https://github.com/ClickHouse/ClickHouse/pull/10444) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* レプリカが自分でパーツをマージすることを制限し、常に他のレプリカからマージ済みパーツをフェッチするようにする設定 `always_fetch_merged_part` を追加しました。 [#10379](https://github.com/ClickHouse/ClickHouse/pull/10379) ([alesapin](https://github.com/alesapin)) +* レプリカが自分でパーツをマージすることを制限し、常に他のレプリカからマージ済みパーツをダウンロードして取得するようにする設定 `always_fetch_merged_part` を追加しました。 [#10379](https://github.com/ClickHouse/ClickHouse/pull/10379) ([alesapin](https://github.com/alesapin)) * JSONオブジェクトから生データを抽出する関数 `JSONExtractKeysAndValuesRaw` を追加しました [#10378](https://github.com/ClickHouse/ClickHouse/pull/10378) ([hcz](https://github.com/hczhcz)) * OS のメモリ使用量を `system.asynchronous_metrics` に追加。 [#10361](https://github.com/ClickHouse/ClickHouse/pull/10361) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 関数 `least` と `greatest` に汎用版を追加しました。これにより、任意の型の引数を任意個指定して動作させることができます。この変更により [#4767](https://github.com/ClickHouse/ClickHouse/issues/4767) [#10318](https://github.com/ClickHouse/ClickHouse/pull/10318) が修正されました([alexey-milovidov](https://github.com/alexey-milovidov)) +* 関数 `least` と `greatest` に汎用版を追加しました。これにより、任意の型の引数を任意個受け取って動作させることができます。この変更により [#4767](https://github.com/ClickHouse/ClickHouse/issues/4767) [#10318](https://github.com/ClickHouse/ClickHouse/pull/10318) が修正されました([alexey-milovidov](https://github.com/alexey-milovidov)) * これにより、ClickHouse は辞書ソースのタイムアウトを ClickHouse 側で制御するようになりました。キャッシュ辞書の構成に 2 つの新しい設定項目が追加されました。`strict_max_lifetime_seconds` はデフォルトでは `max_lifetime` であり、`query_wait_timeout_milliseconds` はデフォルトで 1 分です。前者の設定は、`allow_read_expired_keys` 設定(有効期限が大きく過ぎたキーの読み取りを禁止するため)と併用する場合にも有用です。 [#10337](https://github.com/ClickHouse/ClickHouse/pull/10337) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) * `query_log` に書き込むエントリをフィルタリングするための `log_queries_min_type` を追加 [#10053](https://github.com/ClickHouse/ClickHouse/pull/10053) ([Azat Khuzhin](https://github.com/azat)) * 関数 `isConstant` を追加しました。この関数は、引数が定数式であるかどうかをチェックし、1 または 0 を返します。開発、デバッグ、およびデモンストレーションを目的としています。 [#10198](https://github.com/ClickHouse/ClickHouse/pull/10198) ([alexey-milovidov](https://github.com/alexey-milovidov)) @@ -2121,6 +2115,7 @@ v20.4.3.16-stable からの変更はありません。 * `DATE` および `TIMESTAMP` SQL 演算子のサポートを追加。例: `SELECT date '2001-01-01'` [#9691](https://github.com/ClickHouse/ClickHouse/pull/9691) ([Artem Zuikov](https://github.com/4ertus2)) #### 実験的機能 {#experimental-feature-6} + * 実験的なデータベースエンジン Atomic を追加しました。これは非ブロッキングな `DROP` および `RENAME TABLE` クエリと、アトミックな `EXCHANGE TABLES t1 AND t2` クエリをサポートします [#7512](https://github.com/ClickHouse/ClickHouse/pull/7512) ([tavplubix](https://github.com/tavplubix)) * S3 上での ReplicatedMergeTree の初期サポートを追加しました(動作はまだ最適とは言えません)[#10126](https://github.com/ClickHouse/ClickHouse/pull/10126) ([Pavel Kovalenko](https://github.com/Jokser)) @@ -2128,166 +2123,164 @@ v20.4.3.16-stable からの変更はありません。 * 依存テーブルを含む場合に、`MATERIALIZED VIEW` の内部クエリで誤ったスカラー結果が返される問題を修正 [#10603](https://github.com/ClickHouse/ClickHouse/pull/10603) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * `readonly=2` かつ `cancel_http_readonly_queries_on_client_close=1` のときに、クライアントが接続を閉じた際に HTTP リクエストがハングする問題を修正しました。 [#10684](https://github.com/ClickHouse/ClickHouse/pull/10684) ([tavplubix](https://github.com/tavplubix)) -* サーバー起動時に例外がスローされた場合に発生する StorageBuffer のセグメンテーションフォルトを修正。 [#10550](https://github.com/ClickHouse/ClickHouse/issues/10550) [#10609](https://github.com/ClickHouse/ClickHouse/pull/10609) を修正([tavplubix](https://github.com/tavplubix)) -* クエリ `SYSTEM DROP DNS CACHE` は、ユーザーが特定の IP アドレスからの接続を許可されているかどうかを確認するために使用されるキャッシュも削除するようになりました [#10608](https://github.com/ClickHouse/ClickHouse/pull/10608) ([tavplubix](https://github.com/tavplubix)) +* サーバー起動時に例外がスローされると発生する StorageBuffer のセグメンテーションフォルトを修正。 [#10550](https://github.com/ClickHouse/ClickHouse/issues/10550) [#10609](https://github.com/ClickHouse/ClickHouse/pull/10609) を修正([tavplubix](https://github.com/tavplubix)) +* クエリ `SYSTEM DROP DNS CACHE` は、ユーザーが特定の IP アドレスからの接続を許可されているかどうかの確認に使用されるキャッシュも削除するようになりました。 [#10608](https://github.com/ClickHouse/ClickHouse/pull/10608) ([tavplubix](https://github.com/tavplubix)) * 1 つのクエリ内で同一の集合に対して複数の `IN` 演算子を使用している場合の処理を修正。 [#10539](https://github.com/ClickHouse/ClickHouse/issues/10539) [#10686](https://github.com/ClickHouse/ClickHouse/pull/10686) を修正 ([Anton Popov](https://github.com/CurtizJ)) * ネストされた型で `generateRandom` がクラッシュする問題を修正しました。[#10583](https://github.com/ClickHouse/ClickHouse/issues/10583) を解決。 [#10734](https://github.com/ClickHouse/ClickHouse/pull/10734)([Nikolai Kochetov](https://github.com/KochetovNicolai)) * マージ後に発生する可能性のあった、`SummingMergeTree` における `LowCardinality(FixedString)` キーカラムのデータ破損を修正。 [#10489](https://github.com/ClickHouse/ClickHouse/issues/10489) を修正。 [#10721](https://github.com/ClickHouse/ClickHouse/pull/10721) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * aggregation_memory_efficient_merge_threads 設定ロジックを修正しました。 [#10667](https://github.com/ClickHouse/ClickHouse/pull/10667) ([palasonic1](https://github.com/palasonic1)) -* 消えてしまう合計値の問題を修正。クエリに `JOIN` または外側の `WHERE` 条件を持つサブクエリが含まれている場合に、合計値がフィルタリングされてしまうことがありました。[#10674](https://github.com/ClickHouse/ClickHouse/issues/10674) [#10698](https://github.com/ClickHouse/ClickHouse/pull/10698)([Nikolai Kochetov](https://github.com/KochetovNicolai))で修正。 -* `distributed_aggregation_memory_efficient` が有効な場合に、リモートクエリが並列実行されない問題を修正。関連する [#10655](https://github.com/ClickHouse/ClickHouse/issues/10655) [#10664](https://github.com/ClickHouse/ClickHouse/pull/10664)([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* `LIMIT` を含むクエリで行数が誤る可能性がある問題を修正。 [#10566](https://github.com/ClickHouse/ClickHouse/issues/10566)、[#10709](https://github.com/ClickHouse/ClickHouse/issues/10709)、[#10660](https://github.com/ClickHouse/ClickHouse/pull/10660) を修正 ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* 消えてしまう TOTALS の問題を修正。クエリに `JOIN` や外側の `WHERE` 条件を持つサブクエリが含まれている場合に、TOTALS がフィルタされてしまうことがありました。[#10674](https://github.com/ClickHouse/ClickHouse/issues/10674) [#10698](https://github.com/ClickHouse/ClickHouse/pull/10698)([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* `distributed_aggregation_memory_efficient` が有効な場合に、リモートクエリが並列実行されない問題を修正。[#10655](https://github.com/ClickHouse/ClickHouse/issues/10655) [#10664](https://github.com/ClickHouse/ClickHouse/pull/10664) を修正([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* `LIMIT` を含むクエリで誤った行数が返される可能性がある問題を修正。 [#10566](https://github.com/ClickHouse/ClickHouse/issues/10566)、[#10709](https://github.com/ClickHouse/ClickHouse/issues/10709)、[#10660](https://github.com/ClickHouse/ClickHouse/pull/10660) を修正 ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * コンパクトパーツを別のコンパクトパーツへマージした後に特定の状況で発生する可能性のあるインデックス破損を修正。 [#10531](https://github.com/ClickHouse/ClickHouse/pull/10531) ([Anton Popov](https://github.com/CurtizJ)) -* Mutation のすべてのパートが完了しているにもかかわらず、`is_done=0` のままハングしてしまう状況を修正しました。 [#10526](https://github.com/ClickHouse/ClickHouse/pull/10526) ([alesapin](https://github.com/alesapin)) -* UTC からのオフセットが小数値のタイムゾーンにおける Unix エポック開始時のオーバーフローを修正。[#9335](https://github.com/ClickHouse/ClickHouse/issues/9335) に対応。[#10513](https://github.com/ClickHouse/ClickHouse/pull/10513)([alexey-milovidov](https://github.com/alexey-milovidov)) +* Mutation のすべてのパーツが完了しているにもかかわらず、`is_done=0` のままハングしてしまう状況を修正しました。 [#10526](https://github.com/ClickHouse/ClickHouse/pull/10526) ([alesapin](https://github.com/alesapin)) +* UTC からのオフセットに小数を持つタイムゾーンで、Unix エポック開始時に発生するオーバーフローを修正。[#9335](https://github.com/ClickHouse/ClickHouse/issues/9335) を修正。[#10513](https://github.com/ClickHouse/ClickHouse/pull/10513)([alexey-milovidov](https://github.com/alexey-milovidov)) * 入力フォーマットの診断機能を改善。[#10204](https://github.com/ClickHouse/ClickHouse/issues/10204) [#10418](https://github.com/ClickHouse/ClickHouse/pull/10418) を修正([tavplubix](https://github.com/tavplubix))。 -* `simpleLinearRegression()` における大きな整数値を扱う際の数値オーバーフローを修正 [#10474](https://github.com/ClickHouse/ClickHouse/pull/10474) ([hcz](https://github.com/hczhcz)) -* Distributed のシャットダウン時の use-after-free を修正し、すべてのバッチの送信完了を待たないようにしました [#10491](https://github.com/ClickHouse/ClickHouse/pull/10491) ([Azat Khuzhin](https://github.com/azat)) -* clickhouse-server の Docker イメージに CA 証明書を追加 [#10476](https://github.com/ClickHouse/ClickHouse/pull/10476) ([filimonov](https://github.com/filimonov)) -* `addressToLine` 関数または AggregateFunctionState 列の使用時にまれに発生し得た無限ループを修正しました。 [#10466](https://github.com/ClickHouse/ClickHouse/pull/10466) ([Alexander Kuzmenkov](https://github.com/akuzm)) +* `simpleLinearRegression()` における大きな整数に対する数値オーバーフローを修正 [#10474](https://github.com/ClickHouse/ClickHouse/pull/10474) ([hcz](https://github.com/hczhcz)) +* Distributed エンジンのシャットダウン時に発生する use-after-free を修正し、すべてのバッチの送信完了を待機しないようにしました [#10491](https://github.com/ClickHouse/ClickHouse/pull/10491) ([Azat Khuzhin](https://github.com/azat)) +* clickhouse-server の Docker イメージに CA 証明書を追加しました [#10476](https://github.com/ClickHouse/ClickHouse/pull/10476) ([filimonov](https://github.com/filimonov)) +* `addressToLine` 関数または AggregateFunctionState 列の使用時にまれに発生する可能性があった無限ループを修正しました。 [#10466](https://github.com/ClickHouse/ClickHouse/pull/10466) ([Alexander Kuzmenkov](https://github.com/akuzm)) * 分散クエリ中に発生する ZooKeeper の "no node error" を処理 [#10050](https://github.com/ClickHouse/ClickHouse/pull/10050) ([Daniel Chen](https://github.com/Phantomape)) * カラムのデフォルト値を変更した後にテーブルを ATTACH できなくなる不具合を修正しました。 [#10441](https://github.com/ClickHouse/ClickHouse/pull/10441) ([alesapin](https://github.com/alesapin)) -* ALIAS 列のデフォルト式の型を列の型へ暗黙的にキャストするようにした [#10563](https://github.com/ClickHouse/ClickHouse/pull/10563) ([Azat Khuzhin](https://github.com/azat)) -* `ATTACH DATABASE` 失敗時に metadata ディレクトリを削除しないようにする [#10442](https://github.com/ClickHouse/ClickHouse/pull/10442) ([Winter Zhang](https://github.com/zhang2014)) +* ALIAS 列では、デフォルト式の型を列の型に暗黙的にキャストするようにしました [#10563](https://github.com/ClickHouse/ClickHouse/pull/10563) ([Azat Khuzhin](https://github.com/azat)) +* `ATTACH DATABASE` が失敗した場合に metadata ディレクトリを削除しないようにする [#10442](https://github.com/ClickHouse/ClickHouse/pull/10442) ([Winter Zhang](https://github.com/zhang2014)) * システムの tzdata への依存を回避しました。CentOS 8 における `Africa/Casablanca` タイムゾーンの読み込みを修正しました。[#10211](https://github.com/ClickHouse/ClickHouse/issues/10211) [#10425](https://github.com/ClickHouse/ClickHouse/pull/10425)([alexey-milovidov](https://github.com/alexey-milovidov)) * クォーラム付きでデータを挿入した後に、そのデータが削除される(DROP PARTITION、TTL など)場合の不具合をいくつか修正しました。これにより INSERT がハングしたり、SELECT で誤って例外が発生したりしていた問題が解消されます。 [#9946](https://github.com/ClickHouse/ClickHouse/issues/9946) [#10188](https://github.com/ClickHouse/ClickHouse/pull/10188) を修正([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) -* BloomFilter インデックス作成時の引数の数と型をチェック [#9623](https://github.com/ClickHouse/ClickHouse/issues/9623) [#10431](https://github.com/ClickHouse/ClickHouse/pull/10431) ([Winter Zhang](https://github.com/zhang2014)) -* `skip_unavailable_shards` よりも `fallback_to_stale_replicas` を使用することを推奨します。そうしないと、両方の設定が指定されていて最新のレプリカが存在しない場合、クエリが失敗します(@alex-zaitsev によるパッチ) [#10422](https://github.com/ClickHouse/ClickHouse/pull/10422) ([Azat Khuzhin](https://github.com/azat)) -* ARRAY JOIN、ORDER BY、LIMIT を含むクエリで不完全な結果が返されることがある問題を修正しました。[#10226](https://github.com/ClickHouse/ClickHouse/issues/10226) を修正。[#10427](https://github.com/ClickHouse/ClickHouse/pull/10427)([Vadim Plakhtinskiy](https://github.com/VadimPlh)) -* DETACH/ATTACH 後に辞書名へデータベース名を追加するように変更。`system.dictionaries` テーブルおよび `SYSTEM RELOAD` クエリの不具合を修正 [#10415](https://github.com/ClickHouse/ClickHouse/pull/10415) ([Azat Khuzhin](https://github.com/azat)) -* processors pipeline における extremes の結果が不正確になる可能性があった問題を修正。 [#10131](https://github.com/ClickHouse/ClickHouse/pull/10131) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* 設定 `distributed_group_by_no_merge` が有効な場合に発生する可能性があったセグメンテーションフォルトを修正しました([#10131](https://github.com/ClickHouse/ClickHouse/issues/10131) により 20.3.7.46 で導入)。[#10399](https://github.com/ClickHouse/ClickHouse/pull/10399)([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* BloomFilter インデックス作成時に引数の数と型を検証するようにしました [#9623](https://github.com/ClickHouse/ClickHouse/issues/9623) [#10431](https://github.com/ClickHouse/ClickHouse/pull/10431) ([Winter Zhang](https://github.com/zhang2014)) +* `skip_unavailable_shards` よりも `fallback_to_stale_replicas` を使用することを推奨します。そうしないと、両方の設定が有効で最新のレプリカが存在しない場合、クエリは失敗します(@alex-zaitsev によるパッチ) [#10422](https://github.com/ClickHouse/ClickHouse/pull/10422) ([Azat Khuzhin](https://github.com/azat)) +* ARRAY JOIN、ORDER BY、LIMIT を含むクエリで不完全な結果が返されることがある問題を修正しました。 [#10226](https://github.com/ClickHouse/ClickHouse/issues/10226) を修正。 [#10427](https://github.com/ClickHouse/ClickHouse/pull/10427)([Vadim Plakhtinskiy](https://github.com/VadimPlh)) +* DETACH/ATTACH 後に辞書名にデータベース名を追加するようにしました。`system.dictionaries` テーブルおよび `SYSTEM RELOAD` クエリの不具合を修正 [#10415](https://github.com/ClickHouse/ClickHouse/pull/10415) ([Azat Khuzhin](https://github.com/azat)) +* processors パイプラインにおける extremes の結果が不正確になる可能性があった問題を修正。 [#10131](https://github.com/ClickHouse/ClickHouse/pull/10131) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* 設定 `distributed_group_by_no_merge` が有効な場合に発生する可能性があったセグメンテーションフォルトを修正しました([#10131](https://github.com/ClickHouse/ClickHouse/issues/10131) により 20.3.7.46 で導入)。 [#10399](https://github.com/ClickHouse/ClickHouse/pull/10399) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * `Array(Tuple(...))` データ型の誤ったフラット化処理を修正。 [#10259](https://github.com/ClickHouse/ClickHouse/issues/10259) [#10390](https://github.com/ClickHouse/ClickHouse/pull/10390) を解決([alexey-milovidov](https://github.com/alexey-milovidov)) -* JOIN 内の定数の列名が JOIN 外の定数の列名と衝突しないように修正 [#9950](https://github.com/ClickHouse/ClickHouse/pull/9950) ([Alexander Kuzmenkov](https://github.com/akuzm)) -* Block::sortColumns() 呼び出し後の列順を修正 [#10826](https://github.com/ClickHouse/ClickHouse/pull/10826) ([Azat Khuzhin](https://github.com/azat)) +* JOIN 内の定数のカラム名が JOIN の外側の定数のカラム名と衝突し得る不具合を修正。[#9950](https://github.com/ClickHouse/ClickHouse/pull/9950) ([Alexander Kuzmenkov](https://github.com/akuzm)) +* Block::sortColumns() 呼び出し後のカラム順序を修正 [#10826](https://github.com/ClickHouse/ClickHouse/pull/10826) ([Azat Khuzhin](https://github.com/azat)) * リモートクエリ実行時に発生する可能性のある `ConcatProcessor` の `Pipeline stuck` エラーを修正。 [#10381](https://github.com/ClickHouse/ClickHouse/pull/10381) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* 集約処理でディスク予約を行わないようにし、[#9241](https://github.com/ClickHouse/ClickHouse/issues/9241) [#10375](https://github.com/ClickHouse/ClickHouse/pull/10375) を修正([Azat Khuzhin](https://github.com/azat))。 -* UTC からのオフセットが正と負の間で変更されたことのあるタイムゾーン(例: Pacific/Kiritimati)における datetime 関数の誤った動作を修正しました。 [#7202](https://github.com/ClickHouse/ClickHouse/issues/7202) および [#10369](https://github.com/ClickHouse/ClickHouse/pull/10369) を修正。([alexey-milovidov](https://github.com/alexey-milovidov)) -* `dictIsIn` 関数で発生する無限ループを回避。#515 を修正 [#10365](https://github.com/ClickHouse/ClickHouse/pull/10365) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 集約処理でディスク予約を行わないよう変更し、[#9241](https://github.com/ClickHouse/ClickHouse/issues/9241) [#10375](https://github.com/ClickHouse/ClickHouse/pull/10375) を修正([Azat Khuzhin](https://github.com/azat)) +* UTC からのオフセットの正負が入れ替わったことのあるタイムゾーン(例: Pacific/Kiritimati)における datetime 関数の誤った動作を修正しました。 [#7202](https://github.com/ClickHouse/ClickHouse/issues/7202) および [#10369](https://github.com/ClickHouse/ClickHouse/pull/10369) を修正。([alexey-milovidov](https://github.com/alexey-milovidov)) +* `dictIsIn` 関数で発生する無限ループを回避しました。#515 を修正 [#10365](https://github.com/ClickHouse/ClickHouse/pull/10365) ([alexey-milovidov](https://github.com/alexey-milovidov)) * デフォルトで GROUP BY の sharding_key 最適化を無効化し、WITH ROLLUP/CUBE/TOTALS で正しく動作するよう修正 [#10516](https://github.com/ClickHouse/ClickHouse/pull/10516) ([Azat Khuzhin](https://github.com/azat)) -* パーツをチェックするときにはエラーコードも確認し、エラーが「メモリ不足」などの場合にはそのパーツを破損としてマークしないようにしました。[#6269](https://github.com/ClickHouse/ClickHouse/issues/6269) [#10364](https://github.com/ClickHouse/ClickHouse/pull/10364) を修正。([alexey-milovidov](https://github.com/alexey-milovidov)) +* パーツをチェックするときにエラーコードも確認し、エラーが「メモリ不足」などの場合はそのパーツを破損としてマークしないようにしました。[#6269](https://github.com/ClickHouse/ClickHouse/issues/6269) [#10364](https://github.com/ClickHouse/ClickHouse/pull/10364) を修正。([alexey-milovidov](https://github.com/alexey-milovidov)) * 読み込まれていない辞書の情報を system テーブルに表示するようにしました。 [#10234](https://github.com/ClickHouse/ClickHouse/pull/10234) ([Vitaly Baranov](https://github.com/vitlibar)) * サーバーがテーブルの起動前にシャットダウンされた場合に発生する StorageBuffer 内のヌルポインタ参照を修正。 [#10641](https://github.com/ClickHouse/ClickHouse/pull/10641) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `ReplicatedMergeTree` における `DROP` と `OPTIMIZE` のレースコンディションを修正しました。`OPTIMIZE` クエリが同時に実行されている場合、`DROP` が ZooKeeper のレプリカパス内に不要なデータを残してしまう可能性がありました。 [#10312](https://github.com/ClickHouse/ClickHouse/pull/10312) ([tavplubix](https://github.com/tavplubix)) -* カンマ区切りと名前付き JOIN を混在させたクエリで発生する「Logical error: CROSS JOIN has expressions」エラーを修正。 [#9910](https://github.com/ClickHouse/ClickHouse/issues/9910) [#10311](https://github.com/ClickHouse/ClickHouse/pull/10311) を修正。([Artem Zuikov](https://github.com/4ertus2)) +* カンマ区切り JOIN と名前付き JOIN を混在させたクエリで発生する「Logical error: CROSS JOIN has expressions」エラーを修正。 [#9910](https://github.com/ClickHouse/ClickHouse/issues/9910) [#10311](https://github.com/ClickHouse/ClickHouse/pull/10311) を修正。([Artem Zuikov](https://github.com/4ertus2)) * `max_bytes_before_external_group_by` を使用したクエリを修正しました。 [#10302](https://github.com/ClickHouse/ClickHouse/pull/10302) ([Artem Zuikov](https://github.com/4ertus2)) * 特定のケースでパーサーの最大再帰深度を制限してしまっていた問題を修正しました。これにより、[#10283](https://github.com/ClickHouse/ClickHouse/issues/10283) が解決されます。この修正により、わずかな非互換性が生じる可能性があります。長くてネストの深いクエリを clickhouse-client 経由で実行しようとすると失敗する場合があるため、その場合は `max_query_size` と `max_parser_depth` の設定を適切に調整してください。 [#10295](https://github.com/ClickHouse/ClickHouse/pull/10295) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 複数の JOIN を含むクエリでも `count(*)` を使用できるようにしました。Fixes [#9853](https://github.com/ClickHouse/ClickHouse/issues/9853) [#10291](https://github.com/ClickHouse/ClickHouse/pull/10291) ([Artem Zuikov](https://github.com/4ertus2)) +* 複数の JOIN を含むクエリで `count(*)` を使用できるようにしました。Fixes [#9853](https://github.com/ClickHouse/ClickHouse/issues/9853) [#10291](https://github.com/ClickHouse/ClickHouse/pull/10291) ([Artem Zuikov](https://github.com/4ertus2)) * `max_rows_to_group_by` と `group_by_overflow_mode = 'break'` を使用した際に発生する `Pipeline stuck` エラーを修正。 [#10279](https://github.com/ClickHouse/ClickHouse/pull/10279) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* DDL クエリを使用して `range_hashed` 辞書を作成する際に発生する「Cannot add column」エラーを修正([#10093](https://github.com/ClickHouse/ClickHouse/issues/10093) を解決)。[#10235](https://github.com/ClickHouse/ClickHouse/pull/10235) ([alesapin](https://github.com/alesapin)) +* DDL クエリを使用して `range_hashed` 辞書を作成する際に発生する「Cannot add column」エラーを修正。[#10093](https://github.com/ClickHouse/ClickHouse/issues/10093) を解決。[#10235](https://github.com/ClickHouse/ClickHouse/pull/10235) ([alesapin](https://github.com/alesapin)) * まれに発生しうる例外 `Cannot drain connections: cancel first` を修正。 [#10239](https://github.com/ClickHouse/ClickHouse/pull/10239) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * ユーザーが ENGINE = Replicated* のテーブルに対して ALTER UPDATE/DELETE を実行しようとした際に、ClickHouse が「Unknown function lambda.」というエラーメッセージを返していたバグを修正しました。非決定的関数のチェックで lambda 式を正しく扱えるようになりました。 [#10237](https://github.com/ClickHouse/ClickHouse/pull/10237) ([Alexander Kazakov](https://github.com/Akazz)) -* Lazy エンジンを使用しているデータベース上で `SELECT ... FROM system.tables` を実行した際に比較的まれに発生していた、StorageSystemTables のセグメンテーションフォルトを修正しました。 [#10209](https://github.com/ClickHouse/ClickHouse/pull/10209) ([Alexander Kazakov](https://github.com/Akazz)) -* `system.numbers` や `system.zeros` のような無限ソースから読み取る際に、本来は LIMIT で停止すべきところを停止せず、クエリが無限に実行されてしまう可能性がある問題を修正。 [#10206](https://github.com/ClickHouse/ClickHouse/pull/10206) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* Date 型に対する "generateRandom" 関数を修正しました。これにより [#9973](https://github.com/ClickHouse/ClickHouse/issues/9973) が解決されます。年 2106 の日付を旧スタイルのパーティション方式を使用する MergeTree テーブルに挿入した際に、パーティション名が年 1970 になってしまうエッジケースを修正しました。 [#10218](https://github.com/ClickHouse/ClickHouse/pull/10218) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Lazy エンジンを使用しているデータベースで `SELECT ... FROM system.tables` を実行した際に比較的まれに発生していた StorageSystemTables のセグメンテーションフォルトを修正しました。 [#10209](https://github.com/ClickHouse/ClickHouse/pull/10209) ([Alexander Kazakov](https://github.com/Akazz)) +* 本来は LIMIT で停止すべきクエリが、`system.numbers` や `system.zeros` のような無限ソースから読み取る際に停止せず、無限に実行されてしまう可能性がある問題を修正。 [#10206](https://github.com/ClickHouse/ClickHouse/pull/10206) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* Date 型に対する `generateRandom` 関数を修正しました。これにより [#9973](https://github.com/ClickHouse/ClickHouse/issues/9973) が解決されます。年 2106 の日付を旧スタイルのパーティション方式を使用する MergeTree テーブルに挿入した際に、パーティション名が年 1970 になってしまうエッジケースを修正しました。 [#10218](https://github.com/ClickHouse/ClickHouse/pull/10218) ([alexey-milovidov](https://github.com/alexey-milovidov)) * View のテーブル定義が SELECT クエリと一致しない場合に型を変換するようにしました。これにより [#10180](https://github.com/ClickHouse/ClickHouse/issues/10180) と [#10022](https://github.com/ClickHouse/ClickHouse/issues/10022)、[#10217](https://github.com/ClickHouse/ClickHouse/pull/10217) が修正されました ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 曜日が火曜日または木曜日の RFC-2822 形式の文字列を正しく処理できるように `parseDateTimeBestEffort` を修正しました。これにより [#10082](https://github.com/ClickHouse/ClickHouse/issues/10082) および [#10214](https://github.com/ClickHouse/ClickHouse/pull/10214) が修正されました ([alexey-milovidov](https://github.com/alexey-milovidov)) +* RFC-2822 形式の日付文字列で曜日が火曜日または木曜日の場合の `parseDateTimeBestEffort` の動作を修正しました。これにより [#10082](https://github.com/ClickHouse/ClickHouse/issues/10082) および [#10214](https://github.com/ClickHouse/ClickHouse/pull/10214) が解決されました ([alexey-milovidov](https://github.com/alexey-milovidov)) * JOIN 内の定数のカラム名が JOIN の外側の定数のカラム名と衝突し得る不具合を修正。[#10207](https://github.com/ClickHouse/ClickHouse/pull/10207) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 特定のケースで `arrayJoin` 関数が存在する場合の move-to-prewhere 最適化を修正しました。これにより [#10092](https://github.com/ClickHouse/ClickHouse/issues/10092) および [#10195](https://github.com/ClickHouse/ClickHouse/pull/10195) の問題が修正されました([alexey-milovidov](https://github.com/alexey-milovidov))。 -* ネイティブな mysql-connector-java (JDBC) で SCRAMBLE に区切り文字が現れる問題を修正 [#10140](https://github.com/ClickHouse/ClickHouse/pull/10140) ([BohuTANG](https://github.com/BohuTANG)) -* データベースが指定されていない場合のアクセスチェック時に、現在のデータベースを使用するよう修正。 [#10192](https://github.com/ClickHouse/ClickHouse/pull/10192) ([Vitaly Baranov](https://github.com/vitlibar)) -* compact パーツを持つテーブルに対する ALTER を修正。 [#10130](https://github.com/ClickHouse/ClickHouse/pull/10130) ([Anton Popov](https://github.com/CurtizJ)) -* `allow_nondeterministic_mutations` 設定を追加し、`mutations` における非決定的関数の使用制限を緩和できるようにしました。 [#10186](https://github.com/ClickHouse/ClickHouse/pull/10186) ([filimonov](https://github.com/filimonov)) -* 辞書に対して呼び出される `DROP TABLE` の問題を修正 [#10165](https://github.com/ClickHouse/ClickHouse/pull/10165) ([Azat Khuzhin](https://github.com/azat)) +* ネイティブな mysql-connector-java (JDBC) において SCRAMBLE に区切り文字が出現する問題を修正 [#10140](https://github.com/ClickHouse/ClickHouse/pull/10140) ([BohuTANG](https://github.com/BohuTANG)) +* データベースが指定されていない場合に、アクセスチェックで現在のデータベースを使用するよう修正。 [#10192](https://github.com/ClickHouse/ClickHouse/pull/10192) ([Vitaly Baranov](https://github.com/vitlibar)) +* コンパクトパーツを持つテーブルに対する ALTER 文を修正。 [#10130](https://github.com/ClickHouse/ClickHouse/pull/10130) ([Anton Popov](https://github.com/CurtizJ)) +* `allow_nondeterministic_mutations` 設定を追加し、ミューテーションで非決定的関数を使用する際の制限を緩和できるようにしました。 [#10186](https://github.com/ClickHouse/ClickHouse/pull/10186) ([filimonov](https://github.com/filimonov)) +* 辞書に対して誤って `DROP TABLE` が実行される問題を修正 [#10165](https://github.com/ClickHouse/ClickHouse/pull/10165) ([Azat Khuzhin](https://github.com/azat)) * Distributed テーブルに対して `INSERT` を行う際、構造が一致しない場合にはブロックを変換するように変更 [#10135](https://github.com/ClickHouse/ClickHouse/pull/10135) ([Azat Khuzhin](https://github.com/azat)) -* 挿入ブロックがパーティションキーによって複数のパーツに分割された場合、行数が(全パーツの合計として)誤ってログに記録されていました。 [#10138](https://github.com/ClickHouse/ClickHouse/pull/10138) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* いくつかの引数チェックを追加し、MySQL Database Engine に識別子引数のサポートを追加 [#10077](https://github.com/ClickHouse/ClickHouse/pull/10077) ([Winter Zhang](https://github.com/zhang2014)) +* 挿入されたブロックがパーティションキーによって複数のパーツに分割された場合、行数が(全パーツの合計として)誤ってログに記録されていました。 [#10138](https://github.com/ClickHouse/ClickHouse/pull/10138) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* いくつかの引数チェックを追加し、MySQL Database Engine で識別子引数をサポートするようにしました [#10077](https://github.com/ClickHouse/ClickHouse/pull/10077) ([Winter Zhang](https://github.com/zhang2014)) * 新しいレプリカを作成する際の `index_granularity_bytes` の誤ったチェックを修正し、[#10098](https://github.com/ClickHouse/ClickHouse/issues/10098) を解決。[#10121](https://github.com/ClickHouse/ClickHouse/pull/10121)([alesapin](https://github.com/alesapin)) * テーブルにスキップインデックスが含まれている場合に `CHECK TABLE` クエリで発生していたバグを修正。 [#10068](https://github.com/ClickHouse/ClickHouse/pull/10068) ([alesapin](https://github.com/alesapin)) -* シャードが 1 つしかないネストされたテーブルにおける Distributed-over-Distributed の問題を修正 [#9997](https://github.com/ClickHouse/ClickHouse/pull/9997) ([Azat Khuzhin](https://github.com/azat)) +* シャードが 1 つしかない場合のネストされたテーブルにおける Distributed-over-Distributed の問題を修正 [#9997](https://github.com/ClickHouse/ClickHouse/pull/9997) ([Azat Khuzhin](https://github.com/azat)) * `JOIN` と `UNION ALL` を含むクエリで行が失われる可能性のある不具合を修正しました。 [#9826](https://github.com/ClickHouse/ClickHouse/issues/9826)、 [#10113](https://github.com/ClickHouse/ClickHouse/issues/10113) を解決。 ... [#10099](https://github.com/ClickHouse/ClickHouse/pull/10099) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* ローカルの ClickHouse サーバーをソースとして使用する場合の辞書のバグを修正しました。辞書とソース側の型が互換性のない場合に、メモリ破損を引き起こす可能性がありました。 [#10071](https://github.com/ClickHouse/ClickHouse/pull/10071) ([alesapin](https://github.com/alesapin)) -* 古い ClickHouse バージョンからのアップグレード時に、`/table/replicas/replica_name/metadata` ノードが存在しない場合にレプリケーテッドテーブルが起動できない問題を修正しました。[#10037](https://github.com/ClickHouse/ClickHouse/issues/10037) を修正。[#10095](https://github.com/ClickHouse/ClickHouse/pull/10095)([alesapin](https://github.com/alesapin)) +* ローカルの ClickHouse サーバーをソースとして使用する辞書で発生していたバグを修正しました。辞書とソース側の型が互換性のない場合にメモリ破損を引き起こす可能性がありました。 [#10071](https://github.com/ClickHouse/ClickHouse/pull/10071) ([alesapin](https://github.com/alesapin)) +* 古い ClickHouse バージョンからアップグレードする際に、`/table/replicas/replica_name/metadata` ノードが存在しない場合にレプリケーテッドテーブルが起動できない問題を修正しました。[#10037](https://github.com/ClickHouse/ClickHouse/issues/10037) を修正。[#10095](https://github.com/ClickHouse/ClickHouse/pull/10095)([alesapin](https://github.com/alesapin)) * エラー `Cannot clone block with columns because block has 0 columns ... While executing GroupingAggregatedTransform` を修正しました。これは、`distributed_aggregation_memory_efficient` 設定が有効になっていて、分散クエリが異なるシャードから単一レベルおよび 2 レベルの集約が混在したデータを読み込んだ際に発生していました。 [#10063](https://github.com/ClickHouse/ClickHouse/pull/10063) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* 起動時にマテリアライズドビューを持つデータベースの ATTACH が失敗した際に発生するデッドロックを修正 [#10054](https://github.com/ClickHouse/ClickHouse/pull/10054) ([Azat Khuzhin](https://github.com/azat)) +* 起動時に materialized view を含むデータベースの ATTACH が失敗した場合に発生するデッドロックを修正 [#10054](https://github.com/ClickHouse/ClickHouse/pull/10054) ([Azat Khuzhin](https://github.com/azat)) * 末尾にゼロバイトを含む文字列キーに対する GROUP BY で発生する可能性があったセグメンテーションフォルトを修正しました([#8636](https://github.com/ClickHouse/ClickHouse/issues/8636), [#8925](https://github.com/ClickHouse/ClickHouse/issues/8925))。... [#10025](https://github.com/ClickHouse/ClickHouse/pull/10025)([Alexander Kuzmenkov](https://github.com/akuzm)) -* 分散クエリにおいて、エイリアスが修飾付き列名を上書きしてしまうことで誤った結果が返される不具合を修正。Fixes [#9672](https://github.com/ClickHouse/ClickHouse/issues/9672) [#9714](https://github.com/ClickHouse/ClickHouse/issues/9714) [#9972](https://github.com/ClickHouse/ClickHouse/pull/9972) ([Artem Zuikov](https://github.com/4ertus2)) -* `SYSTEM RESTART REPLICAS` で発生しうるデッドロックを修正 [#9955](https://github.com/ClickHouse/ClickHouse/pull/9955) ([tavplubix](https://github.com/tavplubix)) +* 分散クエリにおいて、エイリアスが修飾付きカラム名を上書きしてしまうことで誤った結果が返される不具合を修正。Fixes [#9672](https://github.com/ClickHouse/ClickHouse/issues/9672) [#9714](https://github.com/ClickHouse/ClickHouse/issues/9714) [#9972](https://github.com/ClickHouse/ClickHouse/pull/9972) ([Artem Zuikov](https://github.com/4ertus2)) +* `SYSTEM RESTART REPLICAS` で発生する可能性があるデッドロックを修正 [#9955](https://github.com/ClickHouse/ClickHouse/pull/9955) ([tavplubix](https://github.com/tavplubix)) * リモートクエリ実行に使用するスレッド数の扱いを修正しました(20.3 以降で発生していたパフォーマンス低下を解消)。これは、`Distributed` テーブルからのクエリがローカルシャードとリモートシャードで同時に実行された場合に発生していました。 [#9965](https://github.com/ClickHouse/ClickHouse/issues/9965) [#9971](https://github.com/ClickHouse/ClickHouse/pull/9971) に対応([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* `ATTACH PART` において、アタッチされたパーツが自動的に削除されてしまう可能性のあった `DeleteOnDestroy` ロジックを修正し、いくつかのテストを追加しました [#9410](https://github.com/ClickHouse/ClickHouse/pull/9410) ([Vladimir Chebotarev](https://github.com/excitoon)) +* `ATTACH PART` において、アタッチされたパーツが自動的に削除される可能性のあった `DeleteOnDestroy` ロジックを修正し、いくつかのテストを追加しました [#9410](https://github.com/ClickHouse/ClickHouse/pull/9410) ([Vladimir Chebotarev](https://github.com/excitoon)) * サーバーの起動時に `ON CLUSTER` DDL クエリがフリーズしてしまう不具合を修正。 [#9927](https://github.com/ClickHouse/ClickHouse/pull/9927) ([Gagan Arneja](https://github.com/garneja)) * 一部のデータベースに対するクエリ処理のある段階で必要なテーブルが取得されていなかった不具合を修正しました。[#9699](https://github.com/ClickHouse/ClickHouse/issues/9699) を解決。[#9949](https://github.com/ClickHouse/ClickHouse/pull/9949) ([achulkov2](https://github.com/achulkov2)) * `JOIN` が `TOTALS` と併用された場合に発生する 'Not found column in block' エラーを修正。[#9839](https://github.com/ClickHouse/ClickHouse/issues/9839) [#9939](https://github.com/ClickHouse/ClickHouse/pull/9939) に対応 ([Artem Zuikov](https://github.com/4ertus2)) -* `CREATE USER` コマンドで指定された複数ホストの解析を修正 [#9924](https://github.com/ClickHouse/ClickHouse/pull/9924) ([Vitaly Baranov](https://github.com/vitlibar)) -* Join テーブルエンジン向けの `TRUNCATE` を修正([#9917](https://github.com/ClickHouse/ClickHouse/issues/9917))。[#9920](https://github.com/ClickHouse/ClickHouse/pull/9920)([Amos Bird](https://github.com/amosbird)) +* `CREATE USER` コマンドで複数のホストを指定した場合の解析を修正 [#9924](https://github.com/ClickHouse/ClickHouse/pull/9924) ([Vitaly Baranov](https://github.com/vitlibar)) +* Join テーブルエンジンにおける `TRUNCATE` を修正([#9917](https://github.com/ClickHouse/ClickHouse/issues/9917))。[#9920](https://github.com/ClickHouse/ClickHouse/pull/9920)([Amos Bird](https://github.com/amosbird)) * `ReplicatedMergeTree` における `DROP` と `OPTIMIZE` の間の競合状態を修正。 [#9901](https://github.com/ClickHouse/ClickHouse/pull/9901) ([alesapin](https://github.com/alesapin)) * `optimize_skip_unused_shards` が設定されている場合の Distributed テーブルにおける `DISTINCT` の動作を修正。 [#9808](https://github.com/ClickHouse/ClickHouse/pull/9808) ([Azat Khuzhin](https://github.com/azat)) -* ALTER 文で発生する "scalar does not exist" エラーを修正 ([#9878](https://github.com/ClickHouse/ClickHouse/issues/9878)). ... [#9904](https://github.com/ClickHouse/ClickHouse/pull/9904) ([Amos Bird](https://github.com/amosbird)) -* `distributed_product_mode='local'` における修飾名のエラーを修正。 [#4756](https://github.com/ClickHouse/ClickHouse/issues/4756) [#9891](https://github.com/ClickHouse/ClickHouse/pull/9891) を解決 ([Artem Zuikov](https://github.com/4ertus2)) -* INSERT クエリに対して、シャードは例外をスローするのではなく、発行元から渡された設定を自身の制約に合わせてクランプ(切り詰め)するようになりました。この修正により、異なる制約を持つシャードに対しても INSERT クエリを送信できるようになります。この変更は、修正 [#9447](https://github.com/ClickHouse/ClickHouse/issues/9447) をさらに改善するものです。 [#9852](https://github.com/ClickHouse/ClickHouse/pull/9852) ([Vitaly Baranov](https://github.com/vitlibar)) -* `offsets.commit.timeout.ms` の間に `__consumer_offsets` トピックで十分な数のレプリカが利用可能でない場合、Kafka broker がコミットを拒否することがあるため、オフセットをコミットする際にリトライ処理を追加しました [#9884](https://github.com/ClickHouse/ClickHouse/pull/9884) ([filimonov](https://github.com/filimonov)) -* `WHERE` で基になるテーブルの仮想カラムを使用した場合の Distributed エンジンの動作を修正 [#9847](https://github.com/ClickHouse/ClickHouse/pull/9847) ([Azat Khuzhin](https://github.com/azat)) -* 関数引数で指定されたタイムゾーンが正しく使用されていなかった一部のケースを修正しました。 [#9574](https://github.com/ClickHouse/ClickHouse/pull/9574) ([Vasily Nemkov](https://github.com/Enmk)) +* ALTER で発生する「scalar does not exist」エラーを修正([#9878](https://github.com/ClickHouse/ClickHouse/issues/9878))。 ... [#9904](https://github.com/ClickHouse/ClickHouse/pull/9904) ([Amos Bird](https://github.com/amosbird)) +* `distributed_product_mode='local'` 設定時の修飾名に関するエラーを修正。 [#4756](https://github.com/ClickHouse/ClickHouse/issues/4756) [#9891](https://github.com/ClickHouse/ClickHouse/pull/9891) を修正 ([Artem Zuikov](https://github.com/4ertus2)) +* INSERT クエリに対して、シャードは例外をスローするのではなく、発行元から渡された設定を自身の制約範囲に収まるよう調整するようになりました。この修正により、異なる制約を持つシャードに対しても INSERT クエリを送信できるようになります。この変更は、修正 [#9447](https://github.com/ClickHouse/ClickHouse/issues/9447) をさらに改善するものです。 [#9852](https://github.com/ClickHouse/ClickHouse/pull/9852) ([Vitaly Baranov](https://github.com/vitlibar)) +* `offsets.commit.timeout.ms` の間に `__consumer_offsets` トピックで十分な数のレプリカが利用可能でない場合、Kafka ブローカーがコミットを拒否することがあるため、Kafka ブローカーにオフセットをコミットする際にリトライ処理を追加しました [#9884](https://github.com/ClickHouse/ClickHouse/pull/9884) ([filimonov](https://github.com/filimonov)) +* `WHERE` 句で基となるテーブルの仮想カラムを使用した場合の Distributed エンジンの動作を修正 [#9847](https://github.com/ClickHouse/ClickHouse/pull/9847) ([Azat Khuzhin](https://github.com/azat)) +* 関数引数で指定されたタイムゾーンが正しく使用されない場合があった問題を修正しました。 [#9574](https://github.com/ClickHouse/ClickHouse/pull/9574) ([Vasily Nemkov](https://github.com/Enmk)) * `SET distributed_product_mode = 'local'` が設定されている環境で、分散テーブルに対するクエリに PREWHERE と WHERE の両方が含まれている場合に発生する「Different expressions with the same alias」エラーを修正。 [#9871](https://github.com/ClickHouse/ClickHouse/pull/9871) ([Artem Zuikov](https://github.com/4ertus2)) * 複合主キーを持つテーブルに対するミューテーションで発生していた過剰なメモリ消費を修正しました。これにより [#9850](https://github.com/ClickHouse/ClickHouse/issues/9850) が解決されました。 [#9860](https://github.com/ClickHouse/ClickHouse/pull/9860) ([alesapin](https://github.com/alesapin)) -* 設定 `allow_introspection_functions` に基づくイントロスペクション関数の権限付与の計算を修正。 [#9840](https://github.com/ClickHouse/ClickHouse/pull/9840) ([Vitaly Baranov](https://github.com/vitlibar)) -* max_distributed_connections を修正(Processor 使用時および未使用時の両方) [#9673](https://github.com/ClickHouse/ClickHouse/pull/9673) ([Azat Khuzhin](https://github.com/azat)) -* クライアントで発生する可能性のある例外 `Got 0 in totals chunk, expected 1` を修正しました。これは、JOIN の右側のテーブルの行数が 0 行である場合に、`JOIN` を含むクエリで発生していました。例: `select * from system.one t1 join system.one t2 on t1.dummy = t2.dummy limit 0 FORMAT TabSeparated;`。[#9777](https://github.com/ClickHouse/ClickHouse/issues/9777) を修正。... [#9823](https://github.com/ClickHouse/ClickHouse/pull/9823)([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* テーブルリスト外(例:WHERE 句内)で `COMMA JOIN` を含むサブクエリに対して発生する 'COMMA to CROSS JOIN rewriter is not enabled or cannot rewrite query' エラーを修正しました。これにより [#9782](https://github.com/ClickHouse/ClickHouse/issues/9782) および [#9830](https://github.com/ClickHouse/ClickHouse/pull/9830) が修正されました([Artem Zuikov](https://github.com/4ertus2))。 +* 設定 `allow_introspection_functions` に基づくイントロスペクション関数の権限付与の計算ロジックを修正。 [#9840](https://github.com/ClickHouse/ClickHouse/pull/9840) ([Vitaly Baranov](https://github.com/vitlibar)) +* max_distributed_connections を修正(processors パイプライン使用時および未使用時の両方) [#9673](https://github.com/ClickHouse/ClickHouse/pull/9673) ([Azat Khuzhin](https://github.com/azat)) +* クライアントで発生する可能性のある例外 `Got 0 in totals chunk, expected 1` を修正しました。これは、`JOIN` を含むクエリで右側の結合テーブルに行が 0 行しか存在しない場合に発生していました。例: `select * from system.one t1 join system.one t2 on t1.dummy = t2.dummy limit 0 FORMAT TabSeparated;`。[#9777](https://github.com/ClickHouse/ClickHouse/issues/9777) を修正。... [#9823](https://github.com/ClickHouse/ClickHouse/pull/9823)([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* テーブルリスト外(例:WHERE 句内)で `COMMA JOIN` を使用しているサブクエリに対して発生する 'COMMA to CROSS JOIN rewriter is not enabled or cannot rewrite query' エラーを修正しました。これにより [#9782](https://github.com/ClickHouse/ClickHouse/issues/9782) および [#9830](https://github.com/ClickHouse/ClickHouse/pull/9830) が修正されました([Artem Zuikov](https://github.com/4ertus2))。 * `optimize_skip_unused_shards` が設定されていて、キーの式をそのフィールド型に変換できない場合にサーバーがクラッシュする問題を修正 [#9804](https://github.com/ClickHouse/ClickHouse/pull/9804) ([Azat Khuzhin](https://github.com/azat)) * `splitByString` の空文字列の扱いを修正。 [#9767](https://github.com/ClickHouse/ClickHouse/pull/9767) ([hcz](https://github.com/hczhcz)) -* compact parts に対して壊れていた `ALTER TABLE DELETE COLUMN` クエリを修正。 [#9779](https://github.com/ClickHouse/ClickHouse/pull/9779) ([alesapin](https://github.com/alesapin)) +* compact パーツに対して正常に動作していなかった `ALTER TABLE DELETE COLUMN` クエリを修正。 [#9779](https://github.com/ClickHouse/ClickHouse/pull/9779) ([alesapin](https://github.com/alesapin)) * processors パイプラインを使用する HTTP 経由のクエリで欠落していた `rows_before_limit_at_least` を修正しました。これにより [#9730](https://github.com/ClickHouse/ClickHouse/issues/9730) および [#9757](https://github.com/ClickHouse/ClickHouse/pull/9757) が解決されました。([Nikolai Kochetov](https://github.com/KochetovNicolai)) * `ALTER` クエリ(ミューテーション)における過剰なメモリ消費を修正しました。これにより、[#9533](https://github.com/ClickHouse/ClickHouse/issues/9533) と [#9670](https://github.com/ClickHouse/ClickHouse/issues/9670) が解決されます。[#9754](https://github.com/ClickHouse/ClickHouse/pull/9754)([alesapin](https://github.com/alesapin)) * 「Cannot schedule a task」エラーが永続的に発生し得る問題を修正。 [#9154](https://github.com/ClickHouse/ClickHouse/pull/9154) ([Azat Khuzhin](https://github.com/azat)) * 外部ディクショナリの DDL におけるバックスクオートの扱いに関するバグを修正。[#9619](https://github.com/ClickHouse/ClickHouse/issues/9619) を修正。[#9734](https://github.com/ClickHouse/ClickHouse/pull/9734)([alesapin](https://github.com/alesapin)) * `text_log` のデータ競合を修正しました。これは実際の不具合に対応するものではありません。 [#9726](https://github.com/ClickHouse/ClickHouse/pull/9726) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 以前のバージョンでユーザーがミューテーションを実行している場合にレプリケーションが機能しなくなる不具合を修正しました。この修正は [#9645](https://github.com/ClickHouse/ClickHouse/issues/9645) を解決します。 [#9652](https://github.com/ClickHouse/ClickHouse/pull/9652) ([alesapin](https://github.com/alesapin)) +* 以前のバージョンでユーザーがミューテーションを実行していた場合にレプリケーションが動作しなくなるバグを修正しました。この修正は [#9645](https://github.com/ClickHouse/ClickHouse/issues/9645) を解決します。 [#9652](https://github.com/ClickHouse/ClickHouse/pull/9652) ([alesapin](https://github.com/alesapin)) * `sumKahan` と `sumWithOverflow` の誤った内部関数名を修正しました。この不具合により、リモートクエリでこれらの関数を使用すると例外が発生していました。 [#9636](https://github.com/ClickHouse/ClickHouse/pull/9636) ([Azat Khuzhin](https://github.com/azat)) * 設定 `use_compact_format_in_distributed_parts_names` を追加しました。これにより、`Distributed` テーブルへの `INSERT` クエリで、よりコンパクトな形式でファイルを書き込めるようになります。この変更により [#9647](https://github.com/ClickHouse/ClickHouse/issues/9647) が修正されました。 [#9653](https://github.com/ClickHouse/ClickHouse/pull/9653) ([alesapin](https://github.com/alesapin)) -* JOIN キーに LowCardinality 型を使用した RIGHT および FULL JOIN を修正。 [#9610](https://github.com/ClickHouse/ClickHouse/pull/9610) ([Artem Zuikov](https://github.com/4ertus2)) -* `MergeTreeRangeReader` で発生する可能性があった例外 `Size of filter does not match size of column` および `Invalid number of rows in Chunk` を修正しました。これらは一部の状況で `PREWHERE` を実行している際に発生することがありました。 [#9612](https://github.com/ClickHouse/ClickHouse/pull/9612) ([Anton Popov](https://github.com/CurtizJ)) -* 内部レプリケーションを使用する Distributed テーブルに対する `ALTER ON CLUSTER` を許可します。これにより [#3268](https://github.com/ClickHouse/ClickHouse/issues/3268) [#9617](https://github.com/ClickHouse/ClickHouse/pull/9617) が修正されます([shinoi2](https://github.com/shinoi2)) -* `time + 1` のような単純な算術式(`time + INTERVAL 1 SECOND` のような式とは異なり)を書いた場合に、タイムゾーンが保持されていなかった問題を修正しました。これにより [#5743](https://github.com/ClickHouse/ClickHouse/issues/5743) [#9323](https://github.com/ClickHouse/ClickHouse/pull/9323) が修正されました([alexey-milovidov](https://github.com/alexey-milovidov)) - - +* JOIN キーで LowCardinality 型を使用した RIGHT および FULL JOIN を修正。 [#9610](https://github.com/ClickHouse/ClickHouse/pull/9610) ([Artem Zuikov](https://github.com/4ertus2)) +* `MergeTreeRangeReader` で発生する可能性があった例外 `Size of filter does not match size of column` および `Invalid number of rows in Chunk` を修正しました。これらは特定のケースで `PREWHERE` を実行している際に発生することがありました。 [#9612](https://github.com/ClickHouse/ClickHouse/pull/9612) ([Anton Popov](https://github.com/CurtizJ)) +* 内部レプリケーションを使用する Distributed テーブルでも `ALTER ON CLUSTER` を使用できるようにしました。これにより [#3268](https://github.com/ClickHouse/ClickHouse/issues/3268) [#9617](https://github.com/ClickHouse/ClickHouse/pull/9617) が修正されます([shinoi2](https://github.com/shinoi2)) +* `time + 1` のような単純な算術式(`time + INTERVAL 1 SECOND` のような式とは対照的)を使用した場合にタイムゾーンが保持されない問題を修正しました。これにより [#5743](https://github.com/ClickHouse/ClickHouse/issues/5743) [#9323](https://github.com/ClickHouse/ClickHouse/pull/9323) が修正されました([alexey-milovidov](https://github.com/alexey-milovidov)) #### 改善 {#improvement-16} * DateTime を文字列リテラルと比較する際にタイムゾーンを使用するようにしました。これにより [#5206](https://github.com/ClickHouse/ClickHouse/issues/5206) が修正されました。 [#10515](https://github.com/ClickHouse/ClickHouse/pull/10515) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* テキスト入力フォーマットから `Decimal` 値をパースできない場合に、冗長な診断情報を出力します。 [#10205](https://github.com/ClickHouse/ClickHouse/pull/10205) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 分散/バッファスケジュールプール向けにタスク/メモリのメトリクスを追加 [#10449](https://github.com/ClickHouse/ClickHouse/pull/10449) ([Azat Khuzhin](https://github.com/azat)) +* テキスト入力フォーマットから `Decimal` 値をパースできない場合に、詳細な診断情報を出力します。 [#10205](https://github.com/ClickHouse/ClickHouse/pull/10205) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 分散/バッファスケジュールプールのタスク/メモリ用メトリクスを追加 [#10449](https://github.com/ClickHouse/ClickHouse/pull/10449) ([Azat Khuzhin](https://github.com/azat)) * clickhouse-local および HTTP インターフェイスにおける `SELECT DISTINCT` クエリの結果が、準備でき次第すぐに表示されるようにしました。これにより [#8951](https://github.com/ClickHouse/ClickHouse/issues/8951) [#9559](https://github.com/ClickHouse/ClickHouse/pull/9559) が修正されました([alexey-milovidov](https://github.com/alexey-milovidov))。 * `clickhouse-copier` で分割を行う際に、`cityHash64(PRIMARY KEY) % N == n` の代わりに `SAMPLE OFFSET` クエリを使用できるようになりました。この機能を使用するには、コマンドライン引数として `--experimental-use-sample-offset 1` を指定してください。 [#10414](https://github.com/ClickHouse/ClickHouse/pull/10414) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) -* 最初の列の値に BOM を含めることがありえない場合、TSV 内の BOM をパースできるようにしました。これにより [#10301](https://github.com/ClickHouse/ClickHouse/issues/10301) [#10424](https://github.com/ClickHouse/ClickHouse/pull/10424) が修正されました([alexey-milovidov](https://github.com/alexey-milovidov))。 +* 最初の列の値に BOM が含まれないことが保証されている場合、TSV の BOM をパースできるようにしました。これにより [#10301](https://github.com/ClickHouse/ClickHouse/issues/10301) [#10424](https://github.com/ClickHouse/ClickHouse/pull/10424) が修正されました([alexey-milovidov](https://github.com/alexey-milovidov))。 * Avro のネストされたフィールドの挿入サポートを追加 [#10354](https://github.com/ClickHouse/ClickHouse/pull/10354) ([Andrew Onyshchuk](https://github.com/oandrew)) * 同じ型が指定されている場合には、データ非変更モードでもカラムの変更を許可するようにしました。 [#10382](https://github.com/ClickHouse/ClickHouse/pull/10382) ([Vladimir Chebotarev](https://github.com/excitoon)) -* `optimize_skip_unused_shards` が設定されている場合に、GROUP BY 句のシャーディングキーに対して `distributed_group_by_no_merge` を自動適用 [#10341](https://github.com/ClickHouse/ClickHouse/pull/10341) ([Azat Khuzhin](https://github.com/azat)) -* GROUP BY sharding_key を用いた分散クエリ向けに LIMIT/LIMIT BY/ORDER BY を使ったクエリを最適化 [#10373](https://github.com/ClickHouse/ClickHouse/pull/10373) ([Azat Khuzhin](https://github.com/azat)) +* `optimize_skip_unused_shards` が設定されている場合、GROUP BY 句のシャーディングキーに対して `distributed_group_by_no_merge` が自動適用されるようにしました [#10341](https://github.com/ClickHouse/ClickHouse/pull/10341) ([Azat Khuzhin](https://github.com/azat)) +* GROUP BY で sharding_key を用いる分散クエリに対して、LIMIT/LIMIT BY/ORDER BY を含むクエリを最適化 [#10373](https://github.com/ClickHouse/ClickHouse/pull/10373) ([Azat Khuzhin](https://github.com/azat)) * サーバーの合計メモリ使用量を制限するために、設定 `max_server_memory_usage` を追加しました。メトリクス `MemoryTracking` は、誤差なく算出されるようになりました。設定 `max_memory_usage_for_all_queries` は廃止されており、現在は何の効果もありません。これにより [#10293](https://github.com/ClickHouse/ClickHouse/issues/10293) がクローズされました。 [#10362](https://github.com/ClickHouse/ClickHouse/pull/10362) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `system_tables_lazy_load` 設定オプションを追加しました。`false` に設定すると、ログを含むシステムテーブルはサーバー起動時に読み込まれます。[Alexander Burmak](https://github.com/Alex-Burmak)、[Svyatoslav Tkhon Il Pak](https://github.com/DeifyTheGod)、[#9642](https://github.com/ClickHouse/ClickHouse/pull/9642) [#10359](https://github.com/ClickHouse/ClickHouse/pull/10359)([alexey-milovidov](https://github.com/alexey-milovidov)) * 分散送信でバックグラウンドスレッドプール (background_schedule_pool_size) を使用 [#10263](https://github.com/ClickHouse/ClickHouse/pull/10263) ([Azat Khuzhin](https://github.com/azat)) -* バックグラウンドバッファのフラッシュにバックグラウンドスレッドプールを使用するようにした。 [#10315](https://github.com/ClickHouse/ClickHouse/pull/10315) ([Azat Khuzhin](https://github.com/azat)) -* 不完全に書き込まれた部分を削除するための特別なケース 1 件への対応を行いました。これにより [#9940](https://github.com/ClickHouse/ClickHouse/issues/9940) が修正されました。[#10221](https://github.com/ClickHouse/ClickHouse/pull/10221) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* バックグラウンドバッファのフラッシュにバックグラウンドスレッドプールを使用するようにしました。 [#10315](https://github.com/ClickHouse/ClickHouse/pull/10315) ([Azat Khuzhin](https://github.com/azat)) +* 不完全に書き込まれたパーツを削除する 1 つの特殊ケースをサポートしました。これにより [#9940](https://github.com/ClickHouse/ClickHouse/issues/9940) が修正されました。[#10221](https://github.com/ClickHouse/ClickHouse/pull/10221) ([alexey-milovidov](https://github.com/alexey-milovidov)) * GROUP BY を最適化する際には、この種の関数の手動リストではなく isInjective() を使用する。 [#10342](https://github.com/ClickHouse/ClickHouse/pull/10342) ([Azat Khuzhin](https://github.com/azat)) -* クライアントが接続直後に RST パケットを送信した場合に、ログにエラーメッセージを出力しないようにしました。これは keepalived と VRRP を用いた IPVS バランサーで一般的な挙動です。これにより [#1851](https://github.com/ClickHouse/ClickHouse/issues/1851) [#10274](https://github.com/ClickHouse/ClickHouse/pull/10274) が修正されました([alexey-milovidov](https://github.com/alexey-milovidov))。 -* 浮動小数点型で `+inf` をパースできるようにしました。これにより [#1839](https://github.com/ClickHouse/ClickHouse/issues/1839) および [#10272](https://github.com/ClickHouse/ClickHouse/pull/10272) が解決されました([alexey-milovidov](https://github.com/alexey-milovidov))。 +* クライアントが接続直後に RST パケットを送信した場合に、ログにエラーメッセージを出力しないようにしました。これは keepalived と VRRP を用いた IPVS バランサーで一般的な動作です。これにより [#1851](https://github.com/ClickHouse/ClickHouse/issues/1851) [#10274](https://github.com/ClickHouse/ClickHouse/pull/10274) が修正されました([alexey-milovidov](https://github.com/alexey-milovidov))。 +* 浮動小数点型で `+inf` をパースできるようにしました。これにより [#1839](https://github.com/ClickHouse/ClickHouse/issues/1839) および [#10272](https://github.com/ClickHouse/ClickHouse/pull/10272) がクローズされました([alexey-milovidov](https://github.com/alexey-milovidov))。 * Nested 型用の `generateRandom` テーブル関数を実装しました。これにより [#9903](https://github.com/ClickHouse/ClickHouse/issues/9903) および [#10219](https://github.com/ClickHouse/ClickHouse/pull/10219) がクローズされました([alexey-milovidov](https://github.com/alexey-milovidov)) -* MySQL プロトコル経由で一部のクライアントが ClickHouse と通信できるようにするため、MySQL 互換インターフェイスで `max_allowed_packed` を提供しました。 [#10199](https://github.com/ClickHouse/ClickHouse/pull/10199) ([BohuTANG](https://github.com/BohuTANG)) -* GLOBAL IN でリテラルの使用を許可 (例: `SELECT * FROM remote('localhost', system.one) WHERE dummy global in (0)`) [#10196](https://github.com/ClickHouse/ClickHouse/pull/10196) ([Azat Khuzhin](https://github.com/azat)) -* clickhouse-client のインタラクティブモードにおけるさまざまな細かな問題を修正 [#10194](https://github.com/ClickHouse/ClickHouse/pull/10194) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* MySQL 互換インターフェイスで `max_allowed_packed` を提供し、一部のクライアントが MySQL プロトコル経由で ClickHouse と通信できるようにしました。 [#10199](https://github.com/ClickHouse/ClickHouse/pull/10199) ([BohuTANG](https://github.com/BohuTANG)) +* GLOBAL IN でリテラルを使用できるようにしました(例: `SELECT * FROM remote('localhost', system.one) WHERE dummy global in (0)`)[#10196](https://github.com/ClickHouse/ClickHouse/pull/10196) ([Azat Khuzhin](https://github.com/azat)) +* clickhouse-client のインタラクティブモードにおける細かな不具合をいくつか修正 [#10194](https://github.com/ClickHouse/ClickHouse/pull/10194) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 不要な辞書の読み込みを回避(`system.tables`、`DROP/SHOW CREATE TABLE`) [#10164](https://github.com/ClickHouse/ClickHouse/pull/10164)([Azat Khuzhin](https://github.com/azat)) -* RWLock の更新: `getLock()` に timeout パラメータを追加し、実装を phase-fair になるように再設計 [#10073](https://github.com/ClickHouse/ClickHouse/pull/10073) ([Alexander Kazakov](https://github.com/Akazz)) -* ネイティブな mysql-connector-java(JDBC) との互換性を向上 [#10021](https://github.com/ClickHouse/ClickHouse/pull/10021) ([BohuTANG](https://github.com/BohuTANG)) -* 関数 `toString` は単調と見なされ、String または LowCardinality(String) 型の引数に対して恒真な条件として適用された場合でも、インデックス解析に使用できます。 [#10110](https://github.com/ClickHouse/ClickHouse/pull/10110) ([Amos Bird](https://github.com/amosbird)) +* RWLock の更新: `getLock()` に timeout パラメータを追加し、実装を phase-fair となるように再設計しました [#10073](https://github.com/ClickHouse/ClickHouse/pull/10073) ([Alexander Kazakov](https://github.com/Akazz)) +* ネイティブ mysql-connector-java (JDBC) との互換性を強化 [#10021](https://github.com/ClickHouse/ClickHouse/pull/10021) ([BohuTANG](https://github.com/BohuTANG)) +* 関数 `toString` は単調関数と見なされ、String または LowCardinality(String) 型の引数に対して恒等的に適用されている場合でも、インデックス解析に使用できます。 [#10110](https://github.com/ClickHouse/ClickHouse/pull/10110) ([Amos Bird](https://github.com/amosbird)) * `{CREATE|DROP} USER/ROLE/ROW POLICY/SETTINGS PROFILE/QUOTA` および `GRANT` コマンドで `ON CLUSTER` 句が使用できるようになりました。 [#9811](https://github.com/ClickHouse/ClickHouse/pull/9811) ([Vitaly Baranov](https://github.com/vitlibar)) -* S3 URI の virtual-hosted-style サポート [#9998](https://github.com/ClickHouse/ClickHouse/pull/9998) ([Pavel Kovalenko](https://github.com/Jokser)) -* 引数を取らない辞書のレイアウト型を、辞書 DDL クエリ内で丸括弧なしで指定できるようになりました。 [#10057](https://github.com/ClickHouse/ClickHouse/issues/10057) を修正。 [#10064](https://github.com/ClickHouse/ClickHouse/pull/10064)([alesapin](https://github.com/alesapin)) +* S3 URI に対する virtual hosted-style 形式のサポート [#9998](https://github.com/ClickHouse/ClickHouse/pull/9998) ([Pavel Kovalenko](https://github.com/Jokser)) +* 引数を取らない辞書のレイアウト型を、辞書 DDL クエリ内で丸括弧なしで指定できるようになりました。これにより [#10057](https://github.com/ClickHouse/ClickHouse/issues/10057) が修正されました。 [#10064](https://github.com/ClickHouse/ClickHouse/pull/10064)([alesapin](https://github.com/alesapin)) * ファイルパスで先頭ゼロ付きの数値範囲を使用できるようにしました [#9989](https://github.com/ClickHouse/ClickHouse/pull/9989) ([Olga Khvostikova](https://github.com/stavrolia)) * CROSS JOIN のメモリ使用量を改善。 [#10029](https://github.com/ClickHouse/ClickHouse/pull/10029) ([Artem Zuikov](https://github.com/4ertus2)) -* リモートテーブルの構造を取得する際に、クラスタ内のすべてのシャードへの接続を試み、skip_unavailable_shards が有効な場合には利用不能なシャードをスキップするようにしました。 [#7278](https://github.com/ClickHouse/ClickHouse/pull/7278) ([nvartolomei](https://github.com/nvartolomei)) +* クラスタ内のすべてのシャードへの接続を試み、skip_unavailable_shards が有効な場合には利用不能なシャードをスキップするようにしました。 [#7278](https://github.com/ClickHouse/ClickHouse/pull/7278) ([nvartolomei](https://github.com/nvartolomei)) * `system.tables` テーブルに `total_rows` と `total_bytes` を追加。 [#9919](https://github.com/ClickHouse/ClickHouse/pull/9919) ([Azat Khuzhin](https://github.com/azat)) * System log テーブルでは、デフォルトで polymorphic parts が使用されるようになりました。 [#9905](https://github.com/ClickHouse/ClickHouse/pull/9905) ([Anton Popov](https://github.com/CurtizJ)) -* system.settings/merge_tree_settings に type 列を追加 [#9909](https://github.com/ClickHouse/ClickHouse/pull/9909) ([Azat Khuzhin](https://github.com/azat)) +* system.settings/merge_tree_settings に type カラムを追加 [#9909](https://github.com/ClickHouse/ClickHouse/pull/9909) ([Azat Khuzhin](https://github.com/azat)) * サーバー起動時のできるだけ早い段階で、利用可能な CPU 命令をチェックするようにしました。 [#9888](https://github.com/ClickHouse/ClickHouse/pull/9888) ([alexey-milovidov](https://github.com/alexey-milovidov)) * ミューテーションから `ORDER BY` ステージを削除しました。これは、単一スレッドで単一のソート済みパートから読み取るためです。あわせて、ミューテーション内の行がソートキーで並べ替えられていて、その順序が崩れていないことを検証するチェックも追加しました。 [#9886](https://github.com/ClickHouse/ClickHouse/pull/9886) ([alesapin](https://github.com/alesapin)) -* 左辺に FixedString を取る LIKE 演算子を実装しました。これは TPC-DS クエリをより良くサポートするために必要です。 [#9890](https://github.com/ClickHouse/ClickHouse/pull/9890) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 左辺に FixedString を取る LIKE 演算子を実装しました。これは TPC-DS クエリをより適切にサポートするために必要です。 [#9890](https://github.com/ClickHouse/ClickHouse/pull/9890) ([alexey-milovidov](https://github.com/alexey-milovidov)) * ネストされた Distributed テーブルでは `force_optimize_skip_unused_shards` を無効化する `force_optimize_skip_unused_shards_no_nested` を追加 [#9812](https://github.com/ClickHouse/ClickHouse/pull/9812) ([Azat Khuzhin](https://github.com/azat)) -* これにより、MergeTree のデータパーツに対するカラムサイズは一度だけ計算されるようになりました。 [#9827](https://github.com/ClickHouse/ClickHouse/pull/9827) ([alesapin](https://github.com/alesapin)) -* `optimize_skip_unused_shards` で定数式を評価できるようにした(例:`SELECT * FROM foo_dist WHERE key=xxHash32(0)`) [#8846](https://github.com/ClickHouse/ClickHouse/pull/8846) ([Azat Khuzhin](https://github.com/azat)) -* TTL 式で `Date` または `DateTime` 列を使用しているかどうかのチェックが削除されました。 [#9967](https://github.com/ClickHouse/ClickHouse/pull/9967) ([Vladimir Chebotarev](https://github.com/excitoon)) -* DiskS3 におけるハードリンク実装の最適化。 [#9760](https://github.com/ClickHouse/ClickHouse/pull/9760) ([Pavel Kovalenko](https://github.com/Jokser)) -* `set multiple_joins_rewriter_version = 2` を設定すると、衝突していない列名をそのまま保持する、複数 JOIN 書き換えの第 2 バージョンが有効になります。これにより、`USING` を伴う複数の JOIN をサポートし、サブクエリを含む JOIN に対しても `select *` を使用できるようになります。 [#9739](https://github.com/ClickHouse/ClickHouse/pull/9739) ([Artem Zuikov](https://github.com/4ertus2)) +* MergeTree のデータパーツに対しては、カラムサイズが一度だけ計算されるようになりました。 [#9827](https://github.com/ClickHouse/ClickHouse/pull/9827) ([alesapin](https://github.com/alesapin)) +* `optimize_skip_unused_shards` で定数式を評価できるようにした(例: `SELECT * FROM foo_dist WHERE key=xxHash32(0)`) [#8846](https://github.com/ClickHouse/ClickHouse/pull/8846) ([Azat Khuzhin](https://github.com/azat)) +* TTL 式で `Date` または `DateTime` カラムを使用しているかどうかをチェックする処理を削除しました。 [#9967](https://github.com/ClickHouse/ClickHouse/pull/9967) ([Vladimir Chebotarev](https://github.com/excitoon)) +* DiskS3 におけるハードリンクの最適な実装。 [#9760](https://github.com/ClickHouse/ClickHouse/pull/9760) ([Pavel Kovalenko](https://github.com/Jokser)) +* `set multiple_joins_rewriter_version = 2` を設定すると、衝突していないカラム名をそのまま保持する、複数 JOIN の書き換えの第 2 バージョンが有効になります。これにより、`USING` を伴う複数の JOIN をサポートし、サブクエリを含む JOIN に対しても `select *` を使用できるようになります。 [#9739](https://github.com/ClickHouse/ClickHouse/pull/9739) ([Artem Zuikov](https://github.com/4ertus2)) * StorageMergeTree 向け「非ブロッキング」ALTER の実装 [#9606](https://github.com/ClickHouse/ClickHouse/pull/9606) ([alesapin](https://github.com/alesapin)) * DiskS3 に対する MergeTree の完全サポートを追加 [#9646](https://github.com/ClickHouse/ClickHouse/pull/9646) ([Pavel Kovalenko](https://github.com/Jokser)) * `splitByString` を拡張し、区切り文字列として空文字列もサポートするようにしました。 [#9742](https://github.com/ClickHouse/ClickHouse/pull/9742) ([hcz](https://github.com/hczhcz)) @@ -2314,16 +2307,16 @@ v20.4.3.16-stable からの変更はありません。 * ClickHouse-Extras 由来の AWS SDK ライブラリのフォークを使用 [#10527](https://github.com/ClickHouse/ClickHouse/pull/10527) ([Pavel Kovalenko](https://github.com/Jokser)) * 新しい ALTER RENAME COLUMN クエリの統合テストを追加。 [#10654](https://github.com/ClickHouse/ClickHouse/pull/10654) ([vzakaznikov](https://github.com/vzakaznikov)) -* 関数 `now64` を誤った引数で呼び出した場合に発生しうる符号付き整数オーバーフローを修正しました。この修正により [#8973](https://github.com/ClickHouse/ClickHouse/issues/8973) と [#10511](https://github.com/ClickHouse/ClickHouse/pull/10511) が解決されました([alexey-milovidov](https://github.com/alexey-milovidov)) -* fuzzer と sanitizer の設定を分離し、ビルド設定を Oss-fuzz と互換性を持たせました。 [#10494](https://github.com/ClickHouse/ClickHouse/pull/10494) ([kyprizel](https://github.com/kyprizel)) +* 関数 `now64` を誤った引数で呼び出した場合に発生する可能性のある符号付き整数オーバーフローを修正しました。この修正により [#8973](https://github.com/ClickHouse/ClickHouse/issues/8973) と [#10511](https://github.com/ClickHouse/ClickHouse/pull/10511) が解決されました([alexey-milovidov](https://github.com/alexey-milovidov)) +* fuzzer と sanitizer の設定を分離し、ビルド設定を OSS-Fuzz と互換にしました。 [#10494](https://github.com/ClickHouse/ClickHouse/pull/10494) ([kyprizel](https://github.com/kyprizel)) * clang-10 向けの clang-tidy 修正。 [#10420](https://github.com/ClickHouse/ClickHouse/pull/10420) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* エラーメッセージに絶対パスを表示する。そうしない場合、KDevelop が正しいファイルに移動できず、代わりに新しいファイルを開いてしまう。 [#10434](https://github.com/ClickHouse/ClickHouse/pull/10434) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* エラーメッセージに絶対パスを表示するようにしました。そうしないと、KDevelop が正しいファイルに移動できず、新しいファイルを開いてしまいます。 [#10434](https://github.com/ClickHouse/ClickHouse/pull/10434) ([alexey-milovidov](https://github.com/alexey-milovidov)) * AddressSanitizer を有効にした CI ストレステストで発生するエラーを調査するために、`ASAN_OPTIONS` 環境変数を追加しました。 [#10440](https://github.com/ClickHouse/ClickHouse/pull/10440) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) * clang ビルドで ThinLTO を有効化(試験的)。 [#10435](https://github.com/ClickHouse/ClickHouse/pull/10435) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* システムに Z3 ソルバーがインストールされている場合に意図せず発生する可能性がある、Z3 への依存関係を削除。 [#10426](https://github.com/ClickHouse/ClickHouse/pull/10426) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* システムに Z3 ソルバーがインストールされている場合に誤って導入される可能性がある Z3 への依存関係を削除。 [#10426](https://github.com/ClickHouse/ClickHouse/pull/10426) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 統合テスト用の Docker ファイルを docker/ ディレクトリに移動。 [#10335](https://github.com/ClickHouse/ClickHouse/pull/10335) ([Ilya Yatsishin](https://github.com/qoega)) * CI で `clang-10` を使用できるようにしました。これにより [#10238](https://github.com/ClickHouse/ClickHouse/issues/10238) が修正されていることを確認しています。[#10384](https://github.com/ClickHouse/ClickHouse/pull/10384) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* OpenSSL を upstream の master に更新しました。`OpenSSL SSL_read: error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error` および `SSL Exception: error:2400006E:random number generator::error retrieving entropy` というメッセージとともに TLS 接続が失敗することがある問題を修正しました。この問題はバージョン 20.1 で発生していました。 [#8956](https://github.com/ClickHouse/ClickHouse/pull/8956) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* OpenSSL を upstream の master ブランチに更新しました。`OpenSSL SSL_read: error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error` および `SSL Exception: error:2400006E:random number generator::error retrieving entropy` というメッセージとともに TLS 接続が失敗する場合がある問題を修正しました。この問題はバージョン 20.1 で発生していました。 [#8956](https://github.com/ClickHouse/ClickHouse/pull/8956) ([alexey-milovidov](https://github.com/alexey-milovidov)) * clang-10 を用いたビルドを修正。 [#10238](https://github.com/ClickHouse/ClickHouse/issues/10238) [#10370](https://github.com/ClickHouse/ClickHouse/pull/10370) ([Amos Bird](https://github.com/amosbird)) * [マテリアライズドビューに対する Parallel INSERT のパフォーマンステストを追加](https://github.com/ClickHouse/ClickHouse/pull/10052)。[#10345](https://github.com/ClickHouse/ClickHouse/pull/10345) ([vxider](https://github.com/Vxider)) * 不安定なテスト `test_settings_constraints_distributed.test_insert_clamps_settings` を修正。 [#10346](https://github.com/ClickHouse/ClickHouse/pull/10346) ([Vitaly Baranov](https://github.com/vitlibar)) @@ -2331,43 +2324,41 @@ v20.4.3.16-stable からの変更はありません。 * junit_to_html ツールでテスト結果を JSONEachRow 形式に変換 [#10323](https://github.com/ClickHouse/ClickHouse/pull/10323) ([Ilya Yatsishin](https://github.com/qoega)) * cctz を更新しました。 [#10215](https://github.com/ClickHouse/ClickHouse/pull/10215) ([alexey-milovidov](https://github.com/alexey-milovidov)) * プレーンな JUnit XML レポートから HTML レポートを作成できるようにしました。 [#10247](https://github.com/ClickHouse/ClickHouse/pull/10247) ([Ilya Yatsishin](https://github.com/qoega)) -* 最小コンパイラバージョンのチェックを更新し、問題 [#10250](https://github.com/ClickHouse/ClickHouse/issues/10250) の根本原因を修正 [#10256](https://github.com/ClickHouse/ClickHouse/pull/10256)([alexey-milovidov](https://github.com/alexey-milovidov)) +* 最小コンパイラバージョンのチェックを更新し、問題 [#10250](https://github.com/ClickHouse/ClickHouse/issues/10250) の根本原因を修正しました [#10256](https://github.com/ClickHouse/ClickHouse/pull/10256)([alexey-milovidov](https://github.com/alexey-milovidov)) * 分散テーブルに対する Live View テーブルの初期サポート [#10179](https://github.com/ClickHouse/ClickHouse/pull/10179) ([vzakaznikov](https://github.com/vzakaznikov)) * MergeTreeIndexFullText における(誤検知の)MSan レポートを修正しました。この問題が最初に発生したのは [#9968](https://github.com/ClickHouse/ClickHouse/issues/9968) です。[#10801](https://github.com/ClickHouse/ClickHouse/pull/10801)([alexey-milovidov](https://github.com/alexey-milovidov)) * clickhouse-docker-util [#10151](https://github.com/ClickHouse/ClickHouse/pull/10151) ([filimonov](https://github.com/filimonov)) -* pdqsort を最近のバージョンに更新 [#10171](https://github.com/ClickHouse/ClickHouse/pull/10171) ([Ivan](https://github.com/abyss7)) +* pdqsort を最新バージョンに更新 [#10171](https://github.com/ClickHouse/ClickHouse/pull/10171) ([Ivan](https://github.com/abyss7)) * libdivide を v3.0 に更新 [#10169](https://github.com/ClickHouse/ClickHouse/pull/10169) ([Ivan](https://github.com/abyss7)) * ポリモーフィックパーツ有効時のチェックを追加。 [#10086](https://github.com/ClickHouse/ClickHouse/pull/10086) ([Anton Popov](https://github.com/CurtizJ)) * FreeBSD 向けクロスコンパイルビルドを追加し、[#9465](https://github.com/ClickHouse/ClickHouse/issues/9465) および [#9643](https://github.com/ClickHouse/ClickHouse/pull/9643) を修正 ([Ivan](https://github.com/abyss7)) * [#6924](https://github.com/ClickHouse/ClickHouse/issues/6924) および [#6980](https://github.com/ClickHouse/ClickHouse/pull/6980) 向けのパフォーマンステストを追加 ([filimonov](https://github.com/filimonov)) * パフォーマンステストを改善するため、`File` エンジンに `/dev/null` サポートを追加 [#8455](https://github.com/ClickHouse/ClickHouse/pull/8455) ([Amos Bird](https://github.com/amosbird)) * /dbms 配下のすべてのフォルダを1階層上に移動 [#9974](https://github.com/ClickHouse/ClickHouse/pull/9974) ([Ivan](https://github.com/abyss7)) -* 単一スレッドで MergeTree から読み取る際に順序が保持されることを検証するテストを追加。 [#9670](https://github.com/ClickHouse/ClickHouse/issues/9670) [#9762](https://github.com/ClickHouse/ClickHouse/pull/9762) への追加([alexey-milovidov](https://github.com/alexey-milovidov)) +* 単一スレッドで MergeTree から読み取る際に、読み取りが順序どおりに行われることを検証するテストを追加。 [#9670](https://github.com/ClickHouse/ClickHouse/issues/9670) [#9762](https://github.com/ClickHouse/ClickHouse/pull/9762) への追加([alexey-milovidov](https://github.com/alexey-milovidov)) * レースコンディションを回避するように `00964_live_view_watch_events_heartbeat.py` テストを修正。 [#9944](https://github.com/ClickHouse/ClickHouse/pull/9944) ([vzakaznikov](https://github.com/vzakaznikov)) * 統合テスト `test_settings_constraints` を修正 [#9962](https://github.com/ClickHouse/ClickHouse/pull/9962) ([Vitaly Baranov](https://github.com/vitlibar)) -* 各関数を個別ファイルに分割、第12弾。 [#9922](https://github.com/ClickHouse/ClickHouse/pull/9922) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 各関数を個別ファイルに分割、第12弾。[#9922](https://github.com/ClickHouse/ClickHouse/pull/9922) ([alexey-milovidov](https://github.com/alexey-milovidov)) * タプルの配列の処理が極端に遅いケースに対する性能テストを追加しました。 [#9872](https://github.com/ClickHouse/ClickHouse/pull/9872) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* zstd を 1.4.4 に更新しました。パフォーマンスと圧縮率がわずかに改善されています。異なるバージョンの ClickHouse を実行しているレプリカが混在している場合、`Data after merge is not byte-identical to data on another replicas.` という妥当なエラーメッセージと、その説明が表示されることがあります。これらのメッセージは想定された動作であり、心配する必要はありません。 [#10663](https://github.com/ClickHouse/ClickHouse/pull/10663) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* zstd を 1.4.4 に更新しました。パフォーマンスと圧縮率がわずかに改善されています。異なるバージョンの ClickHouse を実行しているレプリカが混在している場合、`Data after merge is not byte-identical to data on another replicas.` という妥当なエラーメッセージとその説明が表示される場合があります。これらのメッセージは想定された動作であり、心配する必要はありません。 [#10663](https://github.com/ClickHouse/ClickHouse/pull/10663) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `system.stack_trace` での TSan レポートを修正。 [#9832](https://github.com/ClickHouse/ClickHouse/pull/9832) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `clock_getres` への依存関係を削除しました。 [#9833](https://github.com/ClickHouse/ClickHouse/pull/9833) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `clang-tidy` を使用した識別子名のチェックを追加しました。 [#9799](https://github.com/ClickHouse/ClickHouse/pull/9799) ([alexey-milovidov](https://github.com/alexey-milovidov)) * "builder" Docker イメージを更新。このイメージは CI では使用されませんが、開発者にとって有用です。 [#9809](https://github.com/ClickHouse/ClickHouse/pull/9809) ([alexey-milovidov](https://github.com/alexey-milovidov)) * CI ではもはや使用されていない旧 `performance-test` ツールを削除しました。`clickhouse-performance-test` も優れたツールですが、現在は、環境のさまざまな変化に左右されることなく信頼性の高い結果を得るために、高度な統計的手法を用いて比較テストを実行する、はるかに優れたツールを使用しています。 [#9796](https://github.com/ClickHouse/ClickHouse/pull/9796) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* clang-static-analyzer によるチェックをほとんどすべて追加しました。 [#9765](https://github.com/ClickHouse/ClickHouse/pull/9765) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* clang-static-analyzer のチェックを大半追加しました。 [#9765](https://github.com/ClickHouse/ClickHouse/pull/9765) ([alexey-milovidov](https://github.com/alexey-milovidov)) * MongoDB URI サポートに向けて Poco を 1.9.3 に更新。 [#6892](https://github.com/ClickHouse/ClickHouse/pull/6892) ([Alexander Kuzmenkov](https://github.com/akuzm)) * `-DUSE_STATIC_LIBRARIES=0 -DENABLE_JEMALLOC=0` を指定したビルドを修正 [#9651](https://github.com/ClickHouse/ClickHouse/pull/9651) ([Artem Zuikov](https://github.com/4ertus2)) * 変更ログ用スクリプトでは、マージコミットがリリースブランチに cherry-pick された場合、コミットの説明から PR 名を取得します。 [#9708](https://github.com/ClickHouse/ClickHouse/pull/9708) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * バックポート用スクリプトで `vX.X-conflicts` タグをサポートする。 [#9705](https://github.com/ClickHouse/ClickHouse/pull/9705) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * バックポート用スクリプトの `auto-label` を修正。 [#9685](https://github.com/ClickHouse/ClickHouse/pull/9685) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * Darwin のクロスビルドで libc++ を使用し、ネイティブビルドとの一貫性を持たせました。 [#9665](https://github.com/ClickHouse/ClickHouse/pull/9665) ([Hui Wang](https://github.com/huiwang)) -* 不安定だったテスト `01017_uniqCombined_memory_usage` を修正。[#7236](https://github.com/ClickHouse/ClickHouse/issues/7236) の続き。[#9667](https://github.com/ClickHouse/ClickHouse/pull/9667)([alexey-milovidov](https://github.com/alexey-milovidov)) -* ネイティブな macOS Clang コンパイラ用のビルドを修正 [#9649](https://github.com/ClickHouse/ClickHouse/pull/9649) ([Ivan](https://github.com/abyss7)) -* `pthread_mutex_lock` および `pthread_mutex_unlock` 関数の周辺にさまざまなグリッチを挿入できるようにした。 [#9635](https://github.com/ClickHouse/ClickHouse/pull/9635) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 不安定だったテスト `01017_uniqCombined_memory_usage` を修正。 [#7236](https://github.com/ClickHouse/ClickHouse/issues/7236) の続き。 [#9667](https://github.com/ClickHouse/ClickHouse/pull/9667)([alexey-milovidov](https://github.com/alexey-milovidov)) +* ネイティブ macOS の Clang コンパイラ向けビルドを修正 [#9649](https://github.com/ClickHouse/ClickHouse/pull/9649) ([Ivan](https://github.com/abyss7)) +* `pthread_mutex_lock` および `pthread_mutex_unlock` 関数の周辺にさまざまな擬似不具合を挿入できるようにした。 [#9635](https://github.com/ClickHouse/ClickHouse/pull/9635) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `packager` スクリプトに `clang-tidy` のサポートを追加。 [#9625](https://github.com/ClickHouse/ClickHouse/pull/9625) ([alexey-milovidov](https://github.com/alexey-milovidov)) * バンドルされていない msgpack を使用できるようにした。 [#10168](https://github.com/ClickHouse/ClickHouse/pull/10168) ([Azat Khuzhin](https://github.com/azat)) - - ## ClickHouse リリース v20.3 {#clickhouse-release-v203} ### ClickHouse リリース v20.3.21.2-lts, 2020-11-02 {#clickhouse-release-v203212-lts-2020-11-02} @@ -2398,9 +2389,9 @@ v20.4.3.16-stable からの変更はありません。 #### 改善 {#improvement-17} -* compact part でカスタム codec をサポートしました。[#12183](https://github.com/ClickHouse/ClickHouse/pull/12183)([Anton Popov](https://github.com/CurtizJ))。 +* コンパクトなパーツでカスタムコーデックをサポートしました。[#12183](https://github.com/ClickHouse/ClickHouse/pull/12183)([Anton Popov](https://github.com/CurtizJ))。 -### ClickHouse release v20.3.18.10-lts, 2020-09-08 {#clickhouse-release-v2031810-lts-2020-09-08} +### ClickHouse リリース v20.3.18.10-lts, 2020-09-08 {#clickhouse-release-v2031810-lts-2020-09-08} #### バグ修正 {#bug-fix-36} @@ -2419,7 +2410,7 @@ v20.4.3.16-stable からの変更はありません。 * LowCardinality を用いる非常に短いクエリをわずかに最適化しました。[#14129](https://github.com/ClickHouse/ClickHouse/pull/14129)([Anton Popov](https://github.com/CurtizJ))。 -#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement-16} +#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement-16} * clang-10 への移行後に HashTable で発生した UBSan レポート(nullptr に 0 を加算していた処理)を修正しました。[#10638](https://github.com/ClickHouse/ClickHouse/pull/10638) ([alexey-milovidov](https://github.com/alexey-milovidov))。 @@ -2563,11 +2554,11 @@ v20.4.3.16-stable からの変更はありません。 #### パフォーマンス改善 {#performance-improvement-14} -* 外部ディクショナリを読み込む関数の各呼び出し時に、ディクショナリの取得とアクセス権チェックを一度だけ行うようにしました。 [#10928](https://github.com/ClickHouse/ClickHouse/pull/10928) ([Vitaly Baranov](https://github.com/vitlibar)). +* 外部 Dictionary を読み込む関数の各呼び出し時に、Dictionary の取得とアクセス権チェックを一度だけ行うようにしました。 [#10928](https://github.com/ClickHouse/ClickHouse/pull/10928) ([Vitaly Baranov](https://github.com/vitlibar)). #### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement-17} -* フレークが発生していた統合テストをいくつか修正しました。 [#11355](https://github.com/ClickHouse/ClickHouse/pull/11355) ([alesapin](https://github.com/alesapin)). +* 不安定だった統合テストをいくつか修正しました。 [#11355](https://github.com/ClickHouse/ClickHouse/pull/11355) ([alesapin](https://github.com/alesapin)). ### ClickHouse リリース v20.3.10.75-lts 2020-05-23 {#clickhouse-release-v2031075-lts-2020-05-23} @@ -2625,20 +2616,21 @@ v20.4.3.16-stable からの変更はありません。 * UTC からのオフセットが正から負、またはその逆に変更されたタイムゾーン(例: Pacific/Kiritimati)における datetime 関数の誤った挙動を修正しました。これにより [#7202](https://github.com/ClickHouse/ClickHouse/issues/7202) [#10369](https://github.com/ClickHouse/ClickHouse/pull/10369) が修正されました([alexey-milovidov](https://github.com/alexey-milovidov)) * `distributed_group_by_no_merge` 有効時に発生する可能性のあるセグメンテーションフォルトを修正(20.3.7.46 で [#10131](https://github.com/ClickHouse/ClickHouse/issues/10131) により導入されたもの)。[#10399](https://github.com/ClickHouse/ClickHouse/pull/10399)([Nikolai Kochetov](https://github.com/KochetovNicolai)) * `Array(Tuple(...))` データ型の誤ったフラット化処理を修正しました。これにより [#10259](https://github.com/ClickHouse/ClickHouse/issues/10259) と [#10390](https://github.com/ClickHouse/ClickHouse/pull/10390) が修正されました([alexey-milovidov](https://github.com/alexey-milovidov)) -* Aggregator でのディスク領域の予約を廃止しました。これによりディスク領域の予約に関するバグが修正され、本来であれば正常に完了できた大規模な external aggregation が失敗してしまう可能性があった問題を解消します [#10375](https://github.com/ClickHouse/ClickHouse/pull/10375) ([Azat Khuzhin](https://github.com/azat)) +* Aggregator でのディスク領域の予約を廃止しました。これによりディスク領域の予約に関するバグが修正され、本来であれば正常に完了できた大規模な external aggregation が失敗してしまう可能性があった問題を解消しました。 [#10375](https://github.com/ClickHouse/ClickHouse/pull/10375) ([Azat Khuzhin](https://github.com/azat)) * `ReplicatedMergeTree` における `DROP` と `OPTIMIZE` のレースコンディションを修正しました。`OPTIMIZE` クエリが同時に実行されている場合、`DROP` が ZooKeeper 上のレプリカパスに不要なデータを残してしまうことがありました。 [#10312](https://github.com/ClickHouse/ClickHouse/pull/10312) ([tavplubix](https://github.com/tavplubix)) * カラムのデフォルト値を変更した後にサーバーがテーブルをアタッチできなくなる不具合を修正しました。 [#10441](https://github.com/ClickHouse/ClickHouse/pull/10441) ([alesapin](https://github.com/alesapin)) * テーブルをロードする前に `ATTACH DATABASE` が失敗した場合でも `metadata` ディレクトリを削除しないようにする。 [#10442](https://github.com/ClickHouse/ClickHouse/pull/10442) ([Winter Zhang](https://github.com/zhang2014)) -* いくつかのデータが `quorum` を指定して挿入された後、`DROP PARTITION` や `TTL` などによって削除され、その結果として `INSERT` がハングしたり、`SELECT` で誤検出の例外が発生したりする不具合を複数修正しました。これにより [#9946](https://github.com/ClickHouse/ClickHouse/issues/9946) および [#10188](https://github.com/ClickHouse/ClickHouse/pull/10188) が修正されています([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) -* リモートクエリで発生する可能性があった `ConcatProcessor` の `Pipeline stuck` エラーを修正。 [#10381](https://github.com/ClickHouse/ClickHouse/pull/10381) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* いくつかのデータが `quorum` を指定して挿入された後、`DROP PARTITION` や `TTL` などによって削除され、その結果 `INSERT` がハングしたり、`SELECT` で誤検出による例外が発生したりする不具合を複数修正しました。これにより [#9946](https://github.com/ClickHouse/ClickHouse/issues/9946) および [#10188](https://github.com/ClickHouse/ClickHouse/pull/10188) が修正されています([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) +* リモートクエリで発生する可能性のあった `ConcatProcessor` の `Pipeline stuck` エラーを修正しました。 [#10381](https://github.com/ClickHouse/ClickHouse/pull/10381) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * バッファから `HashMap` を読み込もうとした際にコンパイルエラーの原因となっていた `HashTable` の誤った動作を修正しました。 [#10386](https://github.com/ClickHouse/ClickHouse/pull/10386) ([palasonic1](https://github.com/palasonic1)) * 複数の JOIN を含むクエリで `count(*)` を使用できるようにしました。[#9853](https://github.com/ClickHouse/ClickHouse/issues/9853) [#10291](https://github.com/ClickHouse/ClickHouse/pull/10291) を修正しました([Artem Zuikov](https://github.com/4ertus2))。 * `skip_unavailable_shards` よりも `fallback_to_stale_replicas` を優先してください。そうしないと、両方の設定を指定していて最新のレプリカが存在しない場合、クエリは失敗します(@alex-zaitsev によるパッチ)。修正:[#2564](https://github.com/ClickHouse/ClickHouse/issues/2564)。[#10422](https://github.com/ClickHouse/ClickHouse/pull/10422)([Azat Khuzhin](https://github.com/azat)) * ARRAY JOIN、ORDER BY、LIMIT を含むクエリで結果が欠落する場合がある問題を修正しました。これにより [#10226](https://github.com/ClickHouse/ClickHouse/issues/10226) が修正されました。著者: [Vadim Plakhtinskiy](https://github.com/VadimPlh)。[#10427](https://github.com/ClickHouse/ClickHouse/pull/10427)([alexey-milovidov](https://github.com/alexey-milovidov)) -* BloomFilter インデックス作成時に引数の数と型をチェックするようにしました [#9623](https://github.com/ClickHouse/ClickHouse/issues/9623) [#10431](https://github.com/ClickHouse/ClickHouse/pull/10431) ([Winter Zhang](https://github.com/zhang2014)) +* BloomFilter インデックスを作成する際に、引数の数と型をチェックするようにしました [#9623](https://github.com/ClickHouse/ClickHouse/issues/9623) [#10431](https://github.com/ClickHouse/ClickHouse/pull/10431) ([Winter Zhang](https://github.com/zhang2014)) #### パフォーマンスの改善 {#performance-improvement-15} -* `IN` 演算子の右辺に明示的に定義されたセットがあり、左辺にタプルがあるクエリのパフォーマンスを改善しました。これにより、バージョン 20.3 におけるパフォーマンス低下(リグレッション)が解消されます。[#9740](https://github.com/ClickHouse/ClickHouse/pull/9740), [#10385](https://github.com/ClickHouse/ClickHouse/pull/10385) ([Anton Popov](https://github.com/CurtizJ)) + +* `IN` 演算子の右辺に明示的に定義された Set があり、左辺にタプルがあるクエリのパフォーマンスを改善しました。これにより、バージョン 20.3 におけるパフォーマンス低下(リグレッション)が解消されます。[#9740](https://github.com/ClickHouse/ClickHouse/pull/9740), [#10385](https://github.com/ClickHouse/ClickHouse/pull/10385) ([Anton Popov](https://github.com/CurtizJ)) ### ClickHouse release v20.3.7.46, 2020-04-17 {#clickhouse-release-v203746-2020-04-17} @@ -2715,12 +2707,14 @@ v20.4.3.16-stable からの変更はありません。 ### ClickHouse リリース v20.3.4.10, 2020-03-20 {#clickhouse-release-v203410-2020-03-20} #### バグ修正 {#bug-fix-47} + * このリリースには、20.1.8.41 のすべてのバグ修正も含まれています。 * HTTP 経由のクエリ(processors パイプラインを使用)で `rows_before_limit_at_least` が欠落していた問題を修正しました。これにより [#9730](https://github.com/ClickHouse/ClickHouse/issues/9730) が解決されています。 [#9757](https://github.com/ClickHouse/ClickHouse/pull/9757)([Nikolai Kochetov](https://github.com/KochetovNicolai)) ### ClickHouse リリース v20.3.3.6, 2020-03-17 {#clickhouse-release-v20336-2020-03-17} #### バグ修正 {#bug-fix-48} + * このリリースには、20.1.7.38 のすべてのバグ修正も含まれています。 * 以前のバージョンでユーザーが mutation を実行していた場合にレプリケーションが動作しなくなるバグを修正しました。これにより [#9645](https://github.com/ClickHouse/ClickHouse/issues/9645) が解決されています。 [#9652](https://github.com/ClickHouse/ClickHouse/pull/9652)([alesapin](https://github.com/alesapin))。これによりバージョン 20.3 は再び後方互換性を持つようになります。 * `INSERT` クエリのファイルを、よりコンパクトな形式で `Distributed` テーブルに書き込めるようにする設定 `use_compact_format_in_distributed_parts_names` を追加しました。これにより [#9647](https://github.com/ClickHouse/ClickHouse/issues/9647) が解決されています。 [#9653](https://github.com/ClickHouse/ClickHouse/pull/9653)([alesapin](https://github.com/alesapin))。これによりバージョン 20.3 は再び後方互換性を持つようになります。 @@ -2741,40 +2735,39 @@ v20.4.3.16-stable からの変更はありません。 * ログ設定の変更を反映するには、サーバーを再起動する必要があります。これは、削除されたログファイルに対してサーバーがログ出力を続けてしまう不具合を避けるための一時的な回避策です([#8696](https://github.com/ClickHouse/ClickHouse/issues/8696) を参照)。[#8707](https://github.com/ClickHouse/ClickHouse/pull/8707)([Alexander Kuzmenkov](https://github.com/akuzm)) * 設定 `experimental_use_processors` はデフォルトで有効になっています。この設定により、新しいクエリパイプラインが使用されます。これは内部的なリファクタリングであり、ユーザーからは変更が分からない想定です。もし何か問題が発生した場合は、値を 0 に戻してください。 [#8768](https://github.com/ClickHouse/ClickHouse/pull/8768) ([alexey-milovidov](https://github.com/alexey-milovidov)) - - #### 新機能 {#new-feature-11} * `Avro` および `AvroConfluent` の入力/出力フォーマットを追加 [#8571](https://github.com/ClickHouse/ClickHouse/pull/8571) ([Andrew Onyshchuk](https://github.com/oandrew)) [#8957](https://github.com/ClickHouse/ClickHouse/pull/8957) ([Andrew Onyshchuk](https://github.com/oandrew)) [#8717](https://github.com/ClickHouse/ClickHouse/pull/8717) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* `cache` 辞書における期限切れキーのマルチスレッドかつノンブロッキングな更新(古い値の読み取りを許可するオプション付き)。 [#8303](https://github.com/ClickHouse/ClickHouse/pull/8303) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) +* `cache` 辞書における期限切れキーのマルチスレッドかつノンブロッキングな更新(古い値の読み取りを許可できるオプション付き)。 [#8303](https://github.com/ClickHouse/ClickHouse/pull/8303) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) * クエリ `ALTER ... MATERIALIZE TTL` を追加しました。このクエリは、TTL によって期限切れとなったデータを強制的に削除するミューテーションを実行し、すべてのパーツにおける TTL のメタ情報を再計算します。 [#8775](https://github.com/ClickHouse/ClickHouse/pull/8775) ([Anton Popov](https://github.com/CurtizJ)) * 必要に応じて HashJoin からディスク上の MergeJoin に切り替える [#9082](https://github.com/ClickHouse/ClickHouse/pull/9082) ([Artem Zuikov](https://github.com/4ertus2)) * `ALTER TABLE` に `MOVE PARTITION` コマンドを追加 [#4729](https://github.com/ClickHouse/ClickHouse/issues/4729) [#6168](https://github.com/ClickHouse/ClickHouse/pull/6168) ([Guillaume Tassery](https://github.com/YiuRULE)) * 構成ファイルからストレージ設定をオンザフライで再読み込みできるようにしました。 [#8594](https://github.com/ClickHouse/ClickHouse/pull/8594) ([Vladimir Chebotarev](https://github.com/excitoon)) -* `storage_policy` を、現在と同等以上にリッチなポリシーへ変更できるようにしました。 [#8107](https://github.com/ClickHouse/ClickHouse/pull/8107) ([Vladimir Chebotarev](https://github.com/excitoon)) +* `storage_policy` を、現在のものと同等以上の機能を持つポリシーに変更できるようにしました。 [#8107](https://github.com/ClickHouse/ClickHouse/pull/8107) ([Vladimir Chebotarev](https://github.com/excitoon)) * S3 ストレージおよびテーブル関数でグロブ/ワイルドカードがサポートされるようになりました。 [#8851](https://github.com/ClickHouse/ClickHouse/pull/8851) ([Vladimir Chebotarev](https://github.com/excitoon)) * `FixedString(N)` データ型向けに `bitAnd`、`bitOr`、`bitXor`、`bitNot` を実装しました。 [#9091](https://github.com/ClickHouse/ClickHouse/pull/9091) ([Guillaume Tassery](https://github.com/YiuRULE)) * 関数 `bitCount` を追加しました。これにより [#8702](https://github.com/ClickHouse/ClickHouse/issues/8702) が修正されました。 [#8708](https://github.com/ClickHouse/ClickHouse/pull/8708) ([alexey-milovidov](https://github.com/alexey-milovidov)) [#8749](https://github.com/ClickHouse/ClickHouse/pull/8749) ([ikopylov](https://github.com/ikopylov)) * 指定したスキーマに従うランダムな行を生成するための `generateRandom` テーブル関数を追加しました。これにより、任意のテスト用テーブルにデータを投入できるようになります。 [#8994](https://github.com/ClickHouse/ClickHouse/pull/8994) ([Ilya Yatsishin](https://github.com/qoega)) * `JSONEachRowFormat`: 最上位が配列で、その中にオブジェクトが含まれている特殊なケースをサポート。 [#8860](https://github.com/ClickHouse/ClickHouse/pull/8860) ([Kruglov Pavel](https://github.com/Avogar)) * これで、`ALIAS` のデフォルト式を持つ列に依存する `DEFAULT` 式を持つ列を作成できるようになりました。 [#9489](https://github.com/ClickHouse/ClickHouse/pull/9489) ([alesapin](https://github.com/alesapin)) -* `clickhouse-obfuscator` でソースデータのサイズより大きい `--limit` を指定できるようにしました。データは異なる乱数シードで繰り返されます。 [#9155](https://github.com/ClickHouse/ClickHouse/pull/9155) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* `groupArray` と同様の関数 `groupArraySample` を、リザーバサンプリングアルゴリズムに基づいて追加しました。 [#8286](https://github.com/ClickHouse/ClickHouse/pull/8286) ([Amos Bird](https://github.com/amosbird)) +* `clickhouse-obfuscator` でソースデータのサイズを超える値を `--limit` に指定できるようにしました。データは異なる乱数シードで繰り返されます。 [#9155](https://github.com/ClickHouse/ClickHouse/pull/9155) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* `groupArray` と同様の関数 `groupArraySample` を、リザーバサンプリングアルゴリズムを用いて追加しました。 [#8286](https://github.com/ClickHouse/ClickHouse/pull/8286) ([Amos Bird](https://github.com/amosbird)) * これで、`cache`/`complex_key_cache` 辞書の更新キューのサイズをシステムメトリクス経由で監視できるようになりました。 [#9413](https://github.com/ClickHouse/ClickHouse/pull/9413) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) -* CSV 出力形式で、設定 `output_format_csv_crlf_end_of_line` を 1 にした場合、行区切りとして CRLF を使用できるようにしました [#8934](https://github.com/ClickHouse/ClickHouse/pull/8934) [#8935](https://github.com/ClickHouse/ClickHouse/pull/8935) [#8963](https://github.com/ClickHouse/ClickHouse/pull/8963) ([Mikhail Korotov](https://github.com/millb)) +* CSV 出力フォーマットで、設定 `output_format_csv_crlf_end_of_line` を 1 にした場合、行区切りとして CRLF を使用できるようにしました [#8934](https://github.com/ClickHouse/ClickHouse/pull/8934) [#8935](https://github.com/ClickHouse/ClickHouse/pull/8935) [#8963](https://github.com/ClickHouse/ClickHouse/pull/8963) ([Mikhail Korotov](https://github.com/millb)) * [H3](https://github.com/uber/h3) API のさらなる関数を実装: `h3GetBaseCell`、`h3HexAreaM2`、`h3IndexesAreNeighbors`、`h3ToChildren`、`h3ToString` および `stringToH3` [#8938](https://github.com/ClickHouse/ClickHouse/pull/8938) ([Nico Mandery](https://github.com/nmandery)) * 新しい設定 `max_parser_depth` が導入され、スタックサイズの上限を制御して、大規模で複雑なクエリも処理できるようになりました。これにより、[#6681](https://github.com/ClickHouse/ClickHouse/issues/6681) および [#7668](https://github.com/ClickHouse/ClickHouse/issues/7668) が修正されました。[#8647](https://github.com/ClickHouse/ClickHouse/pull/8647)([Maxim Smirnov](https://github.com/qMBQx8GH)) * 未使用シャードをスキップできない場合に例外をスローするための設定 `force_optimize_skip_unused_shards` を追加 [#8805](https://github.com/ClickHouse/ClickHouse/pull/8805) ([Azat Khuzhin](https://github.com/azat)) -* `Distributed` エンジンで送信するデータの保存先として使用する複数のディスク/ボリュームを構成できるようにした [#8756](https://github.com/ClickHouse/ClickHouse/pull/8756) ([Azat Khuzhin](https://github.com/azat)) +* `Distributed` エンジンにおいて、送信用データの保存先として使用する複数のディスク/ボリュームを構成できるようにした [#8756](https://github.com/ClickHouse/ClickHouse/pull/8756) ([Azat Khuzhin](https://github.com/azat)) * 一時データ保存用のストレージポリシー(``)をサポート。 [#8750](https://github.com/ClickHouse/ClickHouse/pull/8750) ([Azat Khuzhin](https://github.com/azat)) -* データ送信前に例外がスローされた場合に設定される `X-ClickHouse-Exception-Code` HTTP ヘッダーを追加しました。これは [#4971](https://github.com/ClickHouse/ClickHouse/issues/4971) の実装です。 [#8786](https://github.com/ClickHouse/ClickHouse/pull/8786) ([Mikhail Korotov](https://github.com/millb)) +* データ送信前に例外がスローされた場合に設定される `X-ClickHouse-Exception-Code` HTTP ヘッダーを追加しました。これにより [#4971](https://github.com/ClickHouse/ClickHouse/issues/4971) が実装されました。 [#8786](https://github.com/ClickHouse/ClickHouse/pull/8786) ([Mikhail Korotov](https://github.com/millb)) * 関数 `ifNotFinite` を追加しました。これは単なる構文シュガーです: `ifNotFinite(x, y) = isFinite(x) ? x : y`。 [#8710](https://github.com/ClickHouse/ClickHouse/pull/8710) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `system.dictionaries` テーブルに `last_successful_update_time` 列を追加しました [#9394](https://github.com/ClickHouse/ClickHouse/pull/9394) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) -* 圧縮なしのディスク上サイズを返す `blockSerializedSize` 関数を追加 [#8952](https://github.com/ClickHouse/ClickHouse/pull/8952) ([Azat Khuzhin](https://github.com/azat)) +* 圧縮前のディスク上のサイズを返す `blockSerializedSize` 関数を追加 [#8952](https://github.com/ClickHouse/ClickHouse/pull/8952) ([Azat Khuzhin](https://github.com/azat)) * 関数 `moduloOrZero` を追加 [#9358](https://github.com/ClickHouse/ClickHouse/pull/9358) ([hcz](https://github.com/hczhcz)) * システムテーブル `system.zeros` と `system.zeros_mt`、およびテーブル関数 `zeros()` と `zeros_mt()` を追加しました。テーブル(およびテーブル関数)は、`zero` という名前で型が `UInt8` の単一カラムのみを持ち、このカラムには 0 が入ります。これは、多数の行を最速で生成するためのテスト用途として必要なものです。これにより [#6604](https://github.com/ClickHouse/ClickHouse/issues/6604) [#9593](https://github.com/ClickHouse/ClickHouse/pull/9593) が修正されました([Nikolai Kochetov](https://github.com/KochetovNicolai)) #### 実験的機能 {#experimental-feature-7} + * `MergeTree` ファミリーのテーブルにおいて、すべてのカラムを 1 つのファイルに格納する新しいコンパクトなパーツ形式を追加しました。これにより、小規模かつ高頻度な挿入のパフォーマンスが向上します。従来の形式(カラムごとに 1 ファイル)は、現在はワイド形式と呼ばれます。データの保存形式は `min_bytes_for_wide_part` および `min_rows_for_wide_part` の設定で制御されます。 [#8290](https://github.com/ClickHouse/ClickHouse/pull/8290) ([Anton Popov](https://github.com/CurtizJ)) * `Log`、`TinyLog`、`StripeLog` テーブルに対する S3 ストレージのサポートを追加しました。 [#8862](https://github.com/ClickHouse/ClickHouse/pull/8862) ([Pavel Kovalenko](https://github.com/Jokser)) @@ -2784,89 +2777,87 @@ v20.4.3.16-stable からの変更はありません。 * テーブル作成時に、名前のないタプルの配列が `Nested` 構造としてフラット化されてしまう不具合を修正。 [#8866](https://github.com/ClickHouse/ClickHouse/pull/8866) ([achulkov2](https://github.com/achulkov2)) * `File` テーブルまたは `file` テーブル関数で、glob パターンにマッチするファイルが多すぎる場合に「Too many open files」エラーが発生する可能性があった問題を修正しました。現在はファイルを遅延的にオープンするようになりました。これにより [#8857](https://github.com/ClickHouse/ClickHouse/issues/8857) [#8861](https://github.com/ClickHouse/ClickHouse/pull/8861) が解決されています([alexey-milovidov](https://github.com/alexey-milovidov)) * DROP TEMPORARY TABLE は、一時テーブルだけを削除するようになりました。 [#8907](https://github.com/ClickHouse/ClickHouse/pull/8907) ([Vitaly Baranov](https://github.com/vitlibar)) -* サーバーのシャットダウン時やテーブルの DETACH/ATTACH 時に、古いパーティションを削除します。 [#8602](https://github.com/ClickHouse/ClickHouse/pull/8602) ([Guillaume Tassery](https://github.com/YiuRULE)) +* サーバーのシャットダウン時やテーブルの DETACH/ATTACH 時に古いパーティションを削除するようにしました。 [#8602](https://github.com/ClickHouse/ClickHouse/pull/8602) ([Guillaume Tassery](https://github.com/YiuRULE)) * デフォルトディスクが `data` サブディレクトリを基準に空き容量を計算する方法を変更しました。`data` ディレクトリが別のデバイスにマウントされている場合(まれなケース)に、空き容量が正しく計算されない問題を修正しました。これにより [#7441](https://github.com/ClickHouse/ClickHouse/issues/7441) [#9257](https://github.com/ClickHouse/ClickHouse/pull/9257) が解決されました ([Mikhail Korotov](https://github.com/millb)) * `IN ()` を含むカンマ(クロス)JOINを許可。 [#9251](https://github.com/ClickHouse/ClickHouse/pull/9251) ([Artem Zuikov](https://github.com/4ertus2)) * WHERE 句に [NOT] LIKE 演算子が含まれている場合に、CROSS JOIN を INNER JOIN に書き換えられるようにしました。 [#9229](https://github.com/ClickHouse/ClickHouse/pull/9229) ([Artem Zuikov](https://github.com/4ertus2)) * `distributed_aggregation_memory_efficient` 設定を有効にした状態で `GROUP BY` を実行した際に、誤った結果が返される可能性がある問題を修正。 [#9134](https://github.com/ClickHouse/ClickHouse/issues/9134) を修正。 [#9289](https://github.com/ClickHouse/ClickHouse/pull/9289)([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* ヒットしたキーが、キャッシュ辞書のメトリクスでミスとしてカウントされていました。 [#9411](https://github.com/ClickHouse/ClickHouse/pull/9411) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) -* [#8598](https://github.com/ClickHouse/ClickHouse/issues/8598) で導入されたレプリケーションプロトコルの互換性の問題を修正。 [#9412](https://github.com/ClickHouse/ClickHouse/pull/9412) ([alesapin](https://github.com/alesapin)) +* キャッシュ辞書のメトリクスで、ヒットしたキーがミスとしてカウントされていました。 [#9411](https://github.com/ClickHouse/ClickHouse/pull/9411) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) +* [#8598](https://github.com/ClickHouse/ClickHouse/issues/8598) で導入されたレプリケーションプロトコルの非互換性を修正。 [#9412](https://github.com/ClickHouse/ClickHouse/pull/9412) ([alesapin](https://github.com/alesapin)) * `ReplicatedMergeTree` テーブルの起動時に発生していた `queue_task_handle` のレースコンディションを修正しました。 [#9552](https://github.com/ClickHouse/ClickHouse/pull/9552) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `SHOW TABLES NOT LIKE` クエリで `NOT` トークンが正しく動作していませんでした [#8727](https://github.com/ClickHouse/ClickHouse/issues/8727) [#8940](https://github.com/ClickHouse/ClickHouse/pull/8940) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 関数 `h3EdgeLengthM` に範囲チェックを追加しました。このチェックがないと、バッファーオーバーフローが発生する可能性があります。 [#8945](https://github.com/ClickHouse/ClickHouse/pull/8945) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 10 個を超える引数に対する三項論理演算子のバッチ計算で発生していたバグを修正しました。 [#8718](https://github.com/ClickHouse/ClickHouse/pull/8718) ([Alexander Kazakov](https://github.com/Akazz)) * セグメンテーションフォールトや `Inconsistent number of columns got from MergeTreeRangeReader` 例外が発生する可能性のあった PREWHERE 最適化の不具合を修正。 [#9024](https://github.com/ClickHouse/ClickHouse/pull/9024) ([Anton Popov](https://github.com/CurtizJ)) -* セキュア接続において、実際にはタイムアウトを超過していないにもかかわらず、query profiler が有効化されているとランダムに発生していた予期しない `Timeout exceeded while reading from socket` 例外を修正しました。また、SSL ハンドシェイクは通常の TCP 接続よりも遅いため、セキュア接続向けに使用される `connect_timeout_with_failover_ms` と同様の役割を持つ `connect_timeout_with_failover_secure_ms` 設定(デフォルト 100ms)も追加しました [#9026](https://github.com/ClickHouse/ClickHouse/pull/9026) ([tavplubix](https://github.com/tavplubix)) -* mutation の完了処理において、`parts_to_do=0` かつ `is_done=0` の状態で mutation がハングする可能性があるバグを修正。 [#9022](https://github.com/ClickHouse/ClickHouse/pull/9022) ([alesapin](https://github.com/alesapin)) -* `partial_merge_join` 設定を使って新しい ANY JOIN ロジックを利用できるようになりました。`partial_merge_join=1` を指定することで、`ANY|ALL|SEMI LEFT` および `ALL INNER` JOIN を実行できます。 [#8932](https://github.com/ClickHouse/ClickHouse/pull/8932) ([Artem Zuikov](https://github.com/4ertus2)) -* シャードは、例外をスローする代わりに、呼び出し元から取得した設定値を自分自身の制約に合わせて調整するようになりました。この修正により、異なる制約を持つシャードに対してもクエリを送信できるようになりました。 [#9447](https://github.com/ClickHouse/ClickHouse/pull/9447) ([Vitaly Baranov](https://github.com/vitlibar)) +* セキュア接続で、実際にはタイムアウトを超過していないにもかかわらず、query profiler が有効化されているとランダムに発生していた予期しない `Timeout exceeded while reading from socket` 例外を修正しました。また、SSL ハンドシェイクは通常の TCP 接続よりも遅いため、セキュア接続で使用される `connect_timeout_with_failover_ms` と同様の役割を持つ `connect_timeout_with_failover_secure_ms` 設定(デフォルト 100ms)も追加しました。 [#9026](https://github.com/ClickHouse/ClickHouse/pull/9026) ([tavplubix](https://github.com/tavplubix)) +* ミューテーションの完了処理において、`parts_to_do=0` かつ `is_done=0` の状態でミューテーションがハングする可能性があるバグを修正。 [#9022](https://github.com/ClickHouse/ClickHouse/pull/9022) ([alesapin](https://github.com/alesapin)) +* `partial_merge_join` 設定で新しい ANY JOIN ロジックを利用できるようになりました。`partial_merge_join=1` を指定することで、`ANY|ALL|SEMI LEFT` および `ALL INNER` JOIN を実行できます。 [#8932](https://github.com/ClickHouse/ClickHouse/pull/8932) ([Artem Zuikov](https://github.com/4ertus2)) +* シャードは、例外をスローする代わりに、呼び出し元から取得した設定値を自分自身の制約内に収まるよう補正するようになりました。この修正により、異なる制約を持つシャードに対してもクエリを送信できるようになりました。 [#9447](https://github.com/ClickHouse/ClickHouse/pull/9447) ([Vitaly Baranov](https://github.com/vitlibar)) * `MergeTreeReadPool` におけるメモリ管理の問題を修正しました。 [#8791](https://github.com/ClickHouse/ClickHouse/pull/8791) ([Vladimir Chebotarev](https://github.com/excitoon)) -* 文字列 `e` を引数に指定して呼び出した場合の `toDecimal*OrNull()` 関数ファミリーの動作を修正([#8312](https://github.com/ClickHouse/ClickHouse/issues/8312) [#8764](https://github.com/ClickHouse/ClickHouse/pull/8764))([Artem Zuikov](https://github.com/4ertus2))。 +* Fix `toDecimal*OrNull()` functions family when called with string `e`. Fixes [#8312](https://github.com/ClickHouse/ClickHouse/issues/8312) [#8764](https://github.com/ClickHouse/ClickHouse/pull/8764) ([Artem Zuikov](https://github.com/4ertus2)) * `FORMAT Null` がクライアントに一切データを送信しないようにしました。 [#8767](https://github.com/ClickHouse/ClickHouse/pull/8767) ([Alexander Kuzmenkov](https://github.com/akuzm)) -* `LiveViewBlockInputStream` 内のタイムスタンプが更新されない不具合を修正しました。`LIVE VIEW` は実験的な機能です。 [#8644](https://github.com/ClickHouse/ClickHouse/pull/8644) ([vxider](https://github.com/Vxider)) [#8625](https://github.com/ClickHouse/ClickHouse/pull/8625) ([vxider](https://github.com/Vxider)) +* `LiveViewBlockInputStream` においてタイムスタンプが更新されない不具合を修正しました。`LIVE VIEW` は実験的な機能です。 [#8644](https://github.com/ClickHouse/ClickHouse/pull/8644) ([vxider](https://github.com/Vxider)) [#8625](https://github.com/ClickHouse/ClickHouse/pull/8625) ([vxider](https://github.com/Vxider)) * 古い TTL 式を削除できなかった `ALTER MODIFY TTL` の不具合を修正しました。 [#8422](https://github.com/ClickHouse/ClickHouse/pull/8422) ([Vladimir Chebotarev](https://github.com/excitoon)) * MergeTreeIndexSet における UBSan の報告を修正しました。これにより [#9250](https://github.com/ClickHouse/ClickHouse/issues/9250) と [#9365](https://github.com/ClickHouse/ClickHouse/pull/9365) が修正されました([alexey-milovidov](https://github.com/alexey-milovidov)) * `haystack` がゼロバイトの場合の `match` 関数および `extract` 関数の動作を修正しました。`haystack` が定数の場合の動作が誤っていました。これにより [#9160](https://github.com/ClickHouse/ClickHouse/issues/9160) [#9163](https://github.com/ClickHouse/ClickHouse/pull/9163) ([alexey-milovidov](https://github.com/alexey-milovidov)) [#9345](https://github.com/ClickHouse/ClickHouse/pull/9345) ([alexey-milovidov](https://github.com/alexey-milovidov)) を修正しました。 * Apache Avro サードパーティライブラリのデストラクタが例外をスローしないようにしました。 [#9066](https://github.com/ClickHouse/ClickHouse/pull/9066) ([Andrew Onyshchuk](https://github.com/oandrew)) * `Kafka` からポーリングしたバッチを部分的にコミットしないでください。データに欠落が生じる可能性があります。 [#8876](https://github.com/ClickHouse/ClickHouse/pull/8876) ([filimonov](https://github.com/filimonov)) -* `joinGet` の nullable な戻り値型に関する問題を修正。 [#8919](https://github.com/ClickHouse/ClickHouse/issues/8919) [#9014](https://github.com/ClickHouse/ClickHouse/pull/9014) ([Amos Bird](https://github.com/amosbird)) -* `T64` コーデックで圧縮された際のデータ非互換性を修正。[#9016](https://github.com/ClickHouse/ClickHouse/pull/9016)([Artem Zuikov](https://github.com/4ertus2))影響を受けるバージョンで誤った圧縮/伸長処理を引き起こしていた `T64` 圧縮コーデック内のデータ型IDを修正。[#9033](https://github.com/ClickHouse/ClickHouse/pull/9033)([Artem Zuikov](https://github.com/4ertus2)) -* 設定 `enable_early_constant_folding` を追加し、エラーの原因となる一部のケースでは無効化しました。 [#9010](https://github.com/ClickHouse/ClickHouse/pull/9010) ([Artem Zuikov](https://github.com/4ertus2)) -* VIEW に対する述語プッシュダウンオプティマイザを修正し、テストを有効にした [#9011](https://github.com/ClickHouse/ClickHouse/pull/9011) ([Winter Zhang](https://github.com/zhang2014)) -* `File` ストレージからの読み取り時に発生する可能性がある `Merge` テーブルのセグメンテーションフォルトを修正 [#9387](https://github.com/ClickHouse/ClickHouse/pull/9387) ([tavplubix](https://github.com/tavplubix)) -* `ATTACH PARTITION FROM`、`REPLACE PARTITION`、`MOVE TO TABLE` においてストレージポリシーのチェックを追加しました。これがないと、再起動後にパーツのデータへアクセスできなくなり、ClickHouse が起動できなくなる可能性がありました。 [#9383](https://github.com/ClickHouse/ClickHouse/pull/9383) ([Vladimir Chebotarev](https://github.com/excitoon)) -* テーブルに TTL が設定されている場合の ALTER クエリを修正。[#8800](https://github.com/ClickHouse/ClickHouse/pull/8800) ([Anton Popov](https://github.com/CurtizJ)) -* `SYSTEM RELOAD ALL DICTIONARIES` が実行されている最中に、いずれかの辞書が変更・追加・削除されている場合に発生し得る競合状態を修正しました。 [#8801](https://github.com/ClickHouse/ClickHouse/pull/8801) ([Vitaly Baranov](https://github.com/vitlibar)) +* `joinGet` の `Nullable` な戻り値型に関する問題を修正。 [#8919](https://github.com/ClickHouse/ClickHouse/issues/8919) [#9014](https://github.com/ClickHouse/ClickHouse/pull/9014) ([Amos Bird](https://github.com/amosbird)) +* `T64` コーデックで圧縮したデータの非互換性を修正。[#9016](https://github.com/ClickHouse/ClickHouse/pull/9016)([Artem Zuikov](https://github.com/4ertus2))影響を受けるバージョンで誤った圧縮/伸長が行われていた `T64` 圧縮コーデック内のデータ型 ID を修正。[#9033](https://github.com/ClickHouse/ClickHouse/pull/9033)([Artem Zuikov](https://github.com/4ertus2)) +* 設定 `enable_early_constant_folding` を追加し、エラーを引き起こす一部のケースでは無効化しました。 [#9010](https://github.com/ClickHouse/ClickHouse/pull/9010) ([Artem Zuikov](https://github.com/4ertus2)) +* VIEW 使用時の述語プッシュダウンオプティマイザを修正し、テストを有効化しました [#9011](https://github.com/ClickHouse/ClickHouse/pull/9011) ([Winter Zhang](https://github.com/zhang2014)) +* `File` ストレージからの読み取り時に発生する可能性がある `Merge` テーブルのセグメンテーションフォールトを修正 [#9387](https://github.com/ClickHouse/ClickHouse/pull/9387) ([tavplubix](https://github.com/tavplubix)) +* `ATTACH PARTITION FROM`、`REPLACE PARTITION`、`MOVE TO TABLE` においてストレージポリシーのチェックを追加しました。このチェックがないと、再起動後にパーツのデータへアクセス不能になり、ClickHouse が起動できなくなる可能性がありました。 [#9383](https://github.com/ClickHouse/ClickHouse/pull/9383) ([Vladimir Chebotarev](https://github.com/excitoon)) +* テーブルに TTL が設定されている場合の ALTER クエリを修正。 [#8800](https://github.com/ClickHouse/ClickHouse/pull/8800) ([Anton Popov](https://github.com/CurtizJ)) +* `SYSTEM RELOAD ALL DICTIONARIES` が実行されている最中に、いずれかの辞書が変更・追加・削除されている場合に発生し得るレースコンディションを修正しました。 [#8801](https://github.com/ClickHouse/ClickHouse/pull/8801) ([Vitaly Baranov](https://github.com/vitlibar)) * 以前のバージョンでは、`Memory` データベースエンジンのデータパスが空に設定されていたため、テーブルはデータベースのデータディレクトリ(例: `/var/lib/clickhouse/db_name`)ではなく、`path` ディレクトリ(例: `/var/lib/clickhouse/`)に作成されていました。 [#8753](https://github.com/ClickHouse/ClickHouse/pull/8753) ([tavplubix](https://github.com/tavplubix)) -* デフォルトディスクまたはポリシーが存在しないとする誤ったログメッセージを修正しました。 [#9530](https://github.com/ClickHouse/ClickHouse/pull/9530) ([Vladimir Chebotarev](https://github.com/excitoon)) -* 配列型に対する bloom_filter インデックスでの not(has()) を修正。 [#9407](https://github.com/ClickHouse/ClickHouse/pull/9407) ([achimbab](https://github.com/achimbab)) -* `Log` エンジンを使用するテーブルで、先頭列(複数可)をエイリアスにすることを許可 [#9231](https://github.com/ClickHouse/ClickHouse/pull/9231) ([Ivan](https://github.com/abyss7)) -* 1 つのスレッドで `MergeTree` テーブルから読み込む際の範囲の順序を修正しました。この問題により、`MergeTreeRangeReader` による例外発生や誤ったクエリ結果につながる可能性がありました。 [#9050](https://github.com/ClickHouse/ClickHouse/pull/9050) ([Anton Popov](https://github.com/CurtizJ)) +* デフォルトディスクまたはポリシーが存在しないと誤って報告していたログメッセージを修正しました。 [#9530](https://github.com/ClickHouse/ClickHouse/pull/9530) ([Vladimir Chebotarev](https://github.com/excitoon)) +* 配列型の bloom_filter インデックスに対する not(has()) を修正。 [#9407](https://github.com/ClickHouse/ClickHouse/pull/9407) ([achimbab](https://github.com/achimbab)) +* `Log` エンジンを使用するテーブルで、先頭列(複数可)をエイリアス列として定義することを許可。 [#9231](https://github.com/ClickHouse/ClickHouse/pull/9231) ([Ivan](https://github.com/abyss7)) +* 1 つのスレッドで `MergeTree` テーブルから読み込む際のレンジ順序を修正しました。この問題により、`MergeTreeRangeReader` からの例外発生や誤ったクエリ結果につながる可能性がありました。 [#9050](https://github.com/ClickHouse/ClickHouse/pull/9050) ([Anton Popov](https://github.com/CurtizJ)) * `reinterpretAsFixedString` が `String` ではなく `FixedString` を返すように変更しました。 [#9052](https://github.com/ClickHouse/ClickHouse/pull/9052) ([Andrew Onyshchuk](https://github.com/oandrew)) -* ユーザーに、詳細なエラー説明の代わりに `Success` と表示される誤ったエラーメッセージが極めてまれに返されるケースを回避しました。 [#9457](https://github.com/ClickHouse/ClickHouse/pull/9457) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 行テンプレートが空の場合でも `Template` フォーマットを使用してクラッシュしないようにしました。 [#8785](https://github.com/ClickHouse/ClickHouse/pull/8785) ([Alexander Kuzmenkov](https://github.com/akuzm)) -* システムテーブル用のメタデータファイルが誤った場所に作成される可能性があった問題を修正しました [#8653](https://github.com/ClickHouse/ClickHouse/pull/8653)([tavplubix](https://github.com/tavplubix))。[#8581](https://github.com/ClickHouse/ClickHouse/issues/8581) を解決します。 -* キャッシュ辞書における `exception_ptr` のデータレースを修正 [#8303](https://github.com/ClickHouse/ClickHouse/issues/8303)。[#9379](https://github.com/ClickHouse/ClickHouse/pull/9379) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) +* ユーザーに、詳細なエラー説明の代わりに `Success` と表示される誤ったエラーメッセージが極めてまれに返される問題を回避しました。 [#9457](https://github.com/ClickHouse/ClickHouse/pull/9457) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 行テンプレートが空の状態でも `Template` フォーマットを使用してクラッシュしないようにしました。 [#8785](https://github.com/ClickHouse/ClickHouse/pull/8785) ([Alexander Kuzmenkov](https://github.com/akuzm)) +* システムテーブル用のメタデータファイルが誤った場所に作成される可能性があった問題を修正しました。 [#8653](https://github.com/ClickHouse/ClickHouse/pull/8653)([tavplubix](https://github.com/tavplubix))。[#8581](https://github.com/ClickHouse/ClickHouse/issues/8581) を解決します。 +* キャッシュ辞書における `exception_ptr` のデータ競合を修正 [#8303](https://github.com/ClickHouse/ClickHouse/issues/8303)。[#9379](https://github.com/ClickHouse/ClickHouse/pull/9379) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) * クエリ `ATTACH TABLE IF NOT EXISTS` に対しては例外をスローしないようにしました。以前は、`IF NOT EXISTS` 句が付いていても、テーブルがすでに存在する場合に例外がスローされていました。 [#8967](https://github.com/ClickHouse/ClickHouse/pull/8967) ([Anton Popov](https://github.com/CurtizJ)) -* 例外メッセージの閉じ括弧の欠落を修正。 [#8811](https://github.com/ClickHouse/ClickHouse/pull/8811) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* インタラクティブモードで clickhouse-client を起動した際に表示されるメッセージ `Possible deadlock avoided` を抑止しました。 [#9455](https://github.com/ClickHouse/ClickHouse/pull/9455) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 例外メッセージで閉じ括弧が抜けていた問題を修正。 [#8811](https://github.com/ClickHouse/ClickHouse/pull/8811) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* インタラクティブモードで clickhouse-client を起動した際にメッセージ `Possible deadlock avoided` が表示されないようにしました。 [#9455](https://github.com/ClickHouse/ClickHouse/pull/9455) ([alexey-milovidov](https://github.com/alexey-milovidov)) * base64 エンコードされた値の末尾のパディングが不正な形式になる可能性がある問題を修正。base64 ライブラリを更新。これにより [#9491](https://github.com/ClickHouse/ClickHouse/issues/9491) が解決され、[#9492](https://github.com/ClickHouse/ClickHouse/issues/9492) および [#9500](https://github.com/ClickHouse/ClickHouse/pull/9500) がクローズされました([alexey-milovidov](https://github.com/alexey-milovidov)) -* 例外がサフィックスの読み取り後からコミット前までの間に発生するまれなケースで、`Kafka` 内のデータが失われる問題を防止。 [#9378](https://github.com/ClickHouse/ClickHouse/issues/9378) [#9507](https://github.com/ClickHouse/ClickHouse/pull/9507) を修正。([filimonov](https://github.com/filimonov)) -* `DROP TABLE IF EXISTS` で発生する例外を修正 [#8663](https://github.com/ClickHouse/ClickHouse/pull/8663) ([Nikita Vasilev](https://github.com/nikvas0)) -* 旧形式の `MergeTree` テーブルエンジンファミリーに対してユーザーが `ALTER MODIFY SETTING` を実行しようとした際にクラッシュが発生していた問題を修正。 [#9435](https://github.com/ClickHouse/ClickHouse/pull/9435) ([alesapin](https://github.com/alesapin)) +* 例外がサフィックスの読み取り後からコミット前までの間に発生するまれなケースで、`Kafka` 内のデータが失われることを防止。 [#9378](https://github.com/ClickHouse/ClickHouse/issues/9378) [#9507](https://github.com/ClickHouse/ClickHouse/pull/9507) を修正。([filimonov](https://github.com/filimonov)) +* `DROP TABLE IF EXISTS` で発生していた例外を修正しました [#8663](https://github.com/ClickHouse/ClickHouse/pull/8663) ([Nikita Vasilev](https://github.com/nikvas0)) +* 旧形式の `MergeTree` テーブルエンジンファミリーに対して、ユーザーが `ALTER MODIFY SETTING` を実行しようとするとクラッシュしていた問題を修正。 [#9435](https://github.com/ClickHouse/ClickHouse/pull/9435) ([alesapin](https://github.com/alesapin)) * JSON関連関数において、Int64に収まらないUInt64の値をサポート。SIMDJSONをmasterブランチに更新。これにより [#9209](https://github.com/ClickHouse/ClickHouse/issues/9209) [#9344](https://github.com/ClickHouse/ClickHouse/pull/9344) を修正([alexey-milovidov](https://github.com/alexey-milovidov)) -* 非厳密単調な関数インデックス使用時における反転述語の評価を修正。 [#9223](https://github.com/ClickHouse/ClickHouse/pull/9223) ([Alexander Kazakov](https://github.com/Akazz)) -* `GROUP BY` で `IN` 定数の畳み込みを行わないように変更 [#8868](https://github.com/ClickHouse/ClickHouse/pull/8868) ([Amos Bird](https://github.com/amosbird)) +* 非厳密単調な関数インデックスを使用した場合の反転述語の実行を修正。 [#9223](https://github.com/ClickHouse/ClickHouse/pull/9223) ([Alexander Kazakov](https://github.com/Akazz)) +* `GROUP BY` で `IN` 述語に対する定数畳み込みを行わないように変更 [#8868](https://github.com/ClickHouse/ClickHouse/pull/8868) ([Amos Bird](https://github.com/amosbird)) * `ALTER DELETE` ミューテーションによってインデックスの破損が発生するバグを修正しました。これにより [#9019](https://github.com/ClickHouse/ClickHouse/issues/9019) および [#8982](https://github.com/ClickHouse/ClickHouse/issues/8982) が修正されます。さらに、`ReplicatedMergeTree` の `ALTER` クエリで発生する極めてまれなレースコンディションも修正しました。[#9048](https://github.com/ClickHouse/ClickHouse/pull/9048) ([alesapin](https://github.com/alesapin)) * 設定 `compile_expressions` が有効になっている場合、`Nullable` 型を使用すると `LLVMExecutableFunction` で `unexpected column` エラーが発生することがあります [#8910](https://github.com/ClickHouse/ClickHouse/pull/8910) ([Guillaume Tassery](https://github.com/YiuRULE)) * `Kafka` エンジンに対する複数の修正: 1) コンシューマグループのリバランス中に発生していた重複データを修正。2) 複数パーティションから 1 回の poll でデータを取得し、一部だけをコミットした場合にまれに発生していた「穴」を修正(現在は取得したメッセージブロック全体を常に処理・コミットするようになっています)。3) ブロックサイズによるフラッシュ処理を修正(それ以前はタイムアウトによるフラッシュのみが正しく機能していました)。4) より適切なサブスクリプション手順(割り当てフィードバック付き)。5) テストがより高速に動作するように調整(デフォルトのインターバルとタイムアウトを使用)。データがこれまでドキュメントどおりにブロックサイズ単位でフラッシュされていなかったことにより、この PR によってデフォルト設定ではパフォーマンスが低下する可能性があります(最適とはいえない、より頻繁かつ小さいフラッシュが発生するため)。この変更適用後にパフォーマンス上の問題が発生した場合は、テーブルの `kafka_max_block_size` をより大きな値に増やしてください(例: `CREATE TABLE ...Engine=Kafka ... SETTINGS ... kafka_max_block_size=524288`)。修正 [#7259](https://github.com/ClickHouse/ClickHouse/issues/7259) [#8917](https://github.com/ClickHouse/ClickHouse/pull/8917) ([filimonov](https://github.com/filimonov)) * PREWHERE 最適化後に一部のクエリで発生する `Parameter out of bound` 例外を修正しました。 [#8914](https://github.com/ClickHouse/ClickHouse/pull/8914) ([Baudouin Giard](https://github.com/bgiard)) -* `arrayZip` 関数の引数で const/非 const が混在していたケースを修正しました。 [#8705](https://github.com/ClickHouse/ClickHouse/pull/8705) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* `arrayZip` 関数の引数で const/非 const が混在していた場合の不具合を修正しました。 [#8705](https://github.com/ClickHouse/ClickHouse/pull/8705) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `CREATE` クエリの実行時に、ストレージエンジンの引数に含まれる定数式を折りたたんで評価するようにしました。データベース名が空の場合は、現在のデータベースに置き換えます。[#6508](https://github.com/ClickHouse/ClickHouse/issues/6508)、[#3492](https://github.com/ClickHouse/ClickHouse/issues/3492)、[#9262](https://github.com/ClickHouse/ClickHouse/pull/9262) を修正 ([tavplubix](https://github.com/tavplubix)) * `a DEFAULT b, b DEFAULT a` のような単純な循環エイリアスを持つカラムを作成または追加することはできなくなりました。 [#9603](https://github.com/ClickHouse/ClickHouse/pull/9603) ([alesapin](https://github.com/alesapin)) -* `ALTER TABLE MOVE` を使用している場合に、元のパーツを破損させうる二重移動に関するバグを修正しました。 [#8680](https://github.com/ClickHouse/ClickHouse/pull/8680) ([Vladimir Chebotarev](https://github.com/excitoon)) +* 元のパーツが破損する可能性のある二重移動のバグを修正しました。これは `ALTER TABLE MOVE` を使用している場合に該当します。 [#8680](https://github.com/ClickHouse/ClickHouse/pull/8680) ([Vladimir Chebotarev](https://github.com/excitoon)) * `interval` 識別子がバッククォートなしでも正しくパースされるようにしました。また、`interval` 識別子をバッククォートまたは二重引用符で囲んだ場合でもクエリを実行できない不具合を修正しました。これにより [#9124](https://github.com/ClickHouse/ClickHouse/issues/9124) が修正されました。[#9142](https://github.com/ClickHouse/ClickHouse/pull/9142)([alexey-milovidov](https://github.com/alexey-milovidov)) -* `bitTestAll`/`bitTestAny` 関数のファジングテストと誤動作を修正しました。 [#9143](https://github.com/ClickHouse/ClickHouse/pull/9143) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* `bitTestAll`/`bitTestAny` 関数に対するファジーテストおよび不正な動作を修正しました。 [#9143](https://github.com/ClickHouse/ClickHouse/pull/9143) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `LIMIT n WITH TIES` において、n 行目と等しい行が多数存在する場合にクラッシュや誤った行数が発生しうる問題を修正。 [#9464](https://github.com/ClickHouse/ClickHouse/pull/9464) ([tavplubix](https://github.com/tavplubix)) -* `insert_quorum` を有効にして書き込まれたパーツに対するミューテーションを修正。 [#9463](https://github.com/ClickHouse/ClickHouse/pull/9463) ([alesapin](https://github.com/alesapin)) -* `Poco::HTTPServer` の破棄時に発生するデータ競合を修正しました。これは、サーバーを起動してすぐにシャットダウンした場合に発生する可能性がありました。 [#9468](https://github.com/ClickHouse/ClickHouse/pull/9468) ([Anton Popov](https://github.com/CurtizJ)) -* 存在しないテーブルに対して `SHOW CREATE TABLE a_table_that_does_not_exist` を実行した際に、誤解を招きかねないエラーメッセージが表示されていた不具合を修正。 [#8899](https://github.com/ClickHouse/ClickHouse/pull/8899) ([achulkov2](https://github.com/achulkov2)) -* `SELECT` 句に定数があり、かつ `ORDER BY` 句と `LIMIT` 句がある場合の、特定のまれなケースで発生していた `Parameters are out of bound` 例外を修正しました。 [#8892](https://github.com/ClickHouse/ClickHouse/pull/8892) ([Guillaume Tassery](https://github.com/YiuRULE)) -* 完了済みのミューテーションに `is_done=0` のステータスが設定されてしまうことがあるミューテーションのファイナライゼーションを修正。 [#9217](https://github.com/ClickHouse/ClickHouse/pull/9217) ([alesapin](https://github.com/alesapin)) -* 動作しないため、MergeTree テーブルに対する旧構文での `ALTER ADD INDEX` の実行を禁止しました。 [#8822](https://github.com/ClickHouse/ClickHouse/pull/8822) ([Mikhail Korotov](https://github.com/millb)) -* サーバーの起動中は、`LIVE VIEW` が依存するテーブルにアクセスしないようにし、サーバーが起動できるようにします。また、`LIVE VIEW` をデタッチする際には、その依存関係を削除します。`LIVE VIEW` は実験的な機能です。 [#8824](https://github.com/ClickHouse/ClickHouse/pull/8824) ([tavplubix](https://github.com/tavplubix)) +* `insert_quorum` を有効な状態で書き込まれたパーツに対するミューテーションを修正。 [#9463](https://github.com/ClickHouse/ClickHouse/pull/9463) ([alesapin](https://github.com/alesapin)) +* `Poco::HTTPServer` の破棄時に発生するデータレースを修正しました。サーバーを起動してすぐにシャットダウンした場合に発生することがありました。 [#9468](https://github.com/ClickHouse/ClickHouse/pull/9468) ([Anton Popov](https://github.com/CurtizJ)) +* 存在しないテーブルに対して `SHOW CREATE TABLE a_table_that_does_not_exist` を実行したときに、誤解を招くおそれのあるエラーメッセージが表示されていた不具合を修正。 [#8899](https://github.com/ClickHouse/ClickHouse/pull/8899) ([achulkov2](https://github.com/achulkov2)) +* `SELECT` 句に定数があり、かつ `ORDER BY` 句と `LIMIT` 句を含むクエリで、ごくまれに発生していた `Parameters are out of bound` 例外を修正しました。 [#8892](https://github.com/ClickHouse/ClickHouse/pull/8892) ([Guillaume Tassery](https://github.com/YiuRULE)) +* 完了済みの mutation に `is_done=0` ステータスが付く場合がある mutation の完了処理を修正。 [#9217](https://github.com/ClickHouse/ClickHouse/pull/9217) ([alesapin](https://github.com/alesapin)) +* 動作しないため、MergeTree テーブルに対する旧構文での `ALTER ADD INDEX` が実行できないようにしました。 [#8822](https://github.com/ClickHouse/ClickHouse/pull/8822) ([Mikhail Korotov](https://github.com/millb)) +* サーバーの起動中は、`LIVE VIEW` が依存しているテーブルにアクセスしないようにし、サーバーが起動できるようにします。また、`LIVE VIEW` を DETACH する際には、その依存関係を削除します。`LIVE VIEW` は実験的な機能です。 [#8824](https://github.com/ClickHouse/ClickHouse/pull/8824) ([tavplubix](https://github.com/tavplubix)) * `PREWHERE` 実行中に発生する可能性がある `MergeTreeRangeReader` のセグメンテーションフォールトを修正。 [#9106](https://github.com/ClickHouse/ClickHouse/pull/9106) ([Anton Popov](https://github.com/CurtizJ)) -* カラム TTL に関連して発生しうるチェックサム不一致を修正。[#9451](https://github.com/ClickHouse/ClickHouse/pull/9451)([Anton Popov](https://github.com/CurtizJ)) -* ボリュームが 1 つだけの場合に、TTL ルールによってバックグラウンドでパーツが移動されなくなる不具合を修正しました。 [#8672](https://github.com/ClickHouse/ClickHouse/pull/8672) ([Vladimir Chebotarev](https://github.com/excitoon)) -* `Method createColumn() is not implemented for data type Set` という問題を修正しました。これにより [#7799](https://github.com/ClickHouse/ClickHouse/issues/7799) が解決されました。[#8674](https://github.com/ClickHouse/ClickHouse/pull/8674)([alexey-milovidov](https://github.com/alexey-milovidov)) -* これにより、`MUTATION` の最終処理をより頻繁に行うようにしました。 [#9427](https://github.com/ClickHouse/ClickHouse/pull/9427) ([alesapin](https://github.com/alesapin)) -* 定数を 1 減らすことで `intDiv` を修正 [#9351](https://github.com/ClickHouse/ClickHouse/pull/9351) ([hcz](https://github.com/hczhcz)) -* `BlockIO` におけるレースコンディションが発生する可能性のある問題を修正。 [#9356](https://github.com/ClickHouse/ClickHouse/pull/9356) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* 誤ったパラメータで作成された `Kafka` テーブルを使用/削除しようとするとサーバが異常終了するバグを修正しました。 [#9513](https://github.com/ClickHouse/ClickHouse/pull/9513) ([filimonov](https://github.com/filimonov)) -* OS が `timer_create` 関数に対して誤った結果を返す場合のワークアラウンドを追加しました。 [#8837](https://github.com/ClickHouse/ClickHouse/pull/8837) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* `min_marks_for_seek` パラメータの使用方法に関する不具合を修正しました。Distributed テーブルにシャーディングキーが存在しない場合に未使用のシャードをスキップしようとした際のエラーメッセージを修正しました。 [#8908](https://github.com/ClickHouse/ClickHouse/pull/8908) ([Azat Khuzhin](https://github.com/azat)) - - +* カラム TTL に関連して発生しうるチェックサム不一致を修正。 [#9451](https://github.com/ClickHouse/ClickHouse/pull/9451) ([Anton Popov](https://github.com/CurtizJ)) +* ボリュームが 1 つだけの場合に、TTL ルールによってバックグラウンドでパーツが移動されない不具合を修正しました。 [#8672](https://github.com/ClickHouse/ClickHouse/pull/8672) ([Vladimir Chebotarev](https://github.com/excitoon)) +* `Method createColumn() is not implemented for data type Set` という問題を修正しました。これにより [#7799](https://github.com/ClickHouse/ClickHouse/issues/7799) が解決されました。[#8674](https://github.com/ClickHouse/ClickHouse/pull/8674) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* ミューテーションの最終処理をより頻繁に試みるようにしました。 [#9427](https://github.com/ClickHouse/ClickHouse/pull/9427) ([alesapin](https://github.com/alesapin)) +* `intDiv` の定数 -1 の扱いを修正 [#9351](https://github.com/ClickHouse/ClickHouse/pull/9351) ([hcz](https://github.com/hczhcz)) +* `BlockIO` で発生しうるレースコンディションを修正。 [#9356](https://github.com/ClickHouse/ClickHouse/pull/9356) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* 不正なパラメータで作成された `Kafka` テーブルを使用/削除しようとするとサーバーがクラッシュするバグを修正しました。 [#9513](https://github.com/ClickHouse/ClickHouse/pull/9513) ([filimonov](https://github.com/filimonov)) +* OS が `timer_create` 関数で誤った結果を返す場合のワークアラウンドを追加しました。 [#8837](https://github.com/ClickHouse/ClickHouse/pull/8837) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* `min_marks_for_seek` パラメータ使用時の不具合を修正しました。Distributed テーブルにシャーディングキーが存在しない場合に、未使用のシャードをスキップしようとした際に表示されるエラーメッセージを修正しました。 [#8908](https://github.com/ClickHouse/ClickHouse/pull/8908) ([Azat Khuzhin](https://github.com/azat)) #### 改善 {#improvement-20} @@ -2874,43 +2865,44 @@ v20.4.3.16-stable からの変更はありません。 * CROSS を、テーブル修飾のない列名を含む `WHERE` 句付きの INNER JOIN に書き換えられるようにした。 [#9512](https://github.com/ClickHouse/ClickHouse/pull/9512) ([Artem Zuikov](https://github.com/4ertus2)) * `SHOW TABLES` および `SHOW DATABASES` クエリで `WHERE` 句と `FROM` / `IN` 句をサポートするようにした [#9076](https://github.com/ClickHouse/ClickHouse/pull/9076) ([sundyli](https://github.com/sundy-li)) * 設定 `deduplicate_blocks_in_dependent_materialized_views` を追加しました。 [#9070](https://github.com/ClickHouse/ClickHouse/pull/9070) ([urykhy](https://github.com/urykhy)) -* 最近の変更により、MySQL クライアントがバイナリ文字列を 16 進数表記で出力するようになり、人間にとって読めなくなりました([#9032](https://github.com/ClickHouse/ClickHouse/issues/9032))。ClickHouse での回避策は、文字列カラムを UTF-8 としてマークすることですが、これは常にそうとは限らないものの、通常は当てはまります。[#9079](https://github.com/ClickHouse/ClickHouse/pull/9079)([Yuriy Baranov](https://github.com/yurriy)) +* 最近の変更により、MySQL クライアントがバイナリ文字列を 16 進数表記で出力するようになり、人間には読めなくなりました([#9032](https://github.com/ClickHouse/ClickHouse/issues/9032))。ClickHouse での回避策は、文字列カラムを UTF-8 としてマークすることで、これは常にそうとは限らないものの、通常はそうです。[#9079](https://github.com/ClickHouse/ClickHouse/pull/9079)([Yuriy Baranov](https://github.com/yurriy)) * `sumMap` に String および FixedString キーのサポートを追加 [#8903](https://github.com/ClickHouse/ClickHouse/pull/8903) ([Baudouin Giard](https://github.com/bgiard)) * SummingMergeTree の Map で文字列キーをサポート [#8933](https://github.com/ClickHouse/ClickHouse/pull/8933) ([Baudouin Giard](https://github.com/bgiard)) -* スレッドが例外をスローした場合でも、スレッドプールに対してスレッドの終了を通知するようにしました [#8736](https://github.com/ClickHouse/ClickHouse/pull/8736) ([Ding Xiang Fei](https://github.com/dingxiangfei2009)) +* スレッドが例外をスローした場合でも、スレッドプールにスレッドの終了を通知するようにしました [#8736](https://github.com/ClickHouse/ClickHouse/pull/8736) ([Ding Xiang Fei](https://github.com/dingxiangfei2009)) * `clickhouse-benchmark` で `query_id` を設定可能にしました [#9416](https://github.com/ClickHouse/ClickHouse/pull/9416) ([Anton Popov](https://github.com/CurtizJ)) -* `ALTER TABLE ... PARTITION partition` クエリで不正な式が含まれることを許可しないようにしました。これは [#7192](https://github.com/ClickHouse/ClickHouse/issues/7192) [#8835](https://github.com/ClickHouse/ClickHouse/pull/8835) に対応します([alexey-milovidov](https://github.com/alexey-milovidov)) +* `ALTER TABLE ... PARTITION partition` クエリで不正な式を含められないようにしました。これは [#7192](https://github.com/ClickHouse/ClickHouse/issues/7192) [#8835](https://github.com/ClickHouse/ClickHouse/pull/8835) に対応します([alexey-milovidov](https://github.com/alexey-milovidov)) * テーブル `system.table_engines` は、`supports_ttl` や `supports_sort_order` などの機能対応状況に関する情報を提供するようになりました。 [#8830](https://github.com/ClickHouse/ClickHouse/pull/8830) ([Max Akhmedov](https://github.com/zlobober)) * デフォルトで `system.metric_log` を有効にします。これには、ProfileEvents と CurrentMetrics の値が `collect_interval_milliseconds` 間隔(デフォルトでは 1 秒)で収集された行が含まれます。このテーブルは非常に小さく(通常はメガバイトオーダーのサイズ)であり、このデータをデフォルトで収集するのは妥当です。[#9225](https://github.com/ClickHouse/ClickHouse/pull/9225)([alexey-milovidov](https://github.com/alexey-milovidov)) -* グループ内のすべてのスレッドで query profiler を初期化し、例えば insert クエリを完全にプロファイルできるようにしました。これにより [#6964](https://github.com/ClickHouse/ClickHouse/issues/6964) と [#8874](https://github.com/ClickHouse/ClickHouse/pull/8874) が修正されました ([Ivan](https://github.com/abyss7)) +* グループ内のすべてのスレッドに対してクエリプロファイラを初期化します。例えば、これにより INSERT クエリの完全なプロファイリングが可能になります。これにより [#6964](https://github.com/ClickHouse/ClickHouse/issues/6964) と [#8874](https://github.com/ClickHouse/ClickHouse/pull/8874) が修正されました ([Ivan](https://github.com/abyss7)) * 以前の構文が `CREATE TEMPORARY TABLE ...` と一貫していなかったため、現在は一時的な `LIVE VIEW` を `CREATE TEMPORARY LIVE VIEW ...` ではなく `CREATE LIVE VIEW name WITH TIMEOUT [42] ...` で作成するようになりました。 [#9131](https://github.com/ClickHouse/ClickHouse/pull/9131) ([tavplubix](https://github.com/tavplubix)) * `system.text_log` テーブルに書き込まれるエントリを制限するための text_log.level 設定パラメータを追加 [#8809](https://github.com/ClickHouse/ClickHouse/pull/8809) ([Azat Khuzhin](https://github.com/azat)) * TTL ルールに基づいてダウンロードしたパーツをディスク/ボリュームに配置できるようにした [#8598](https://github.com/ClickHouse/ClickHouse/pull/8598) ([Vladimir Chebotarev](https://github.com/excitoon)) -* 外部 MySQL 辞書向けに、MySQL コネクションプールを辞書間で共有できるようにしました。このオプションにより、MySQL サーバーへの接続数を大幅に削減できます。 [#9409](https://github.com/ClickHouse/ClickHouse/pull/9409) ([Clément Rodriguez](https://github.com/clemrodriguez)) +* 外部 MySQL 辞書に対して、MySQL コネクションプールを共通化し、辞書間で共有できるようにしました。このオプションにより、MySQL サーバーへの接続数を大幅に削減できます。 [#9409](https://github.com/ClickHouse/ClickHouse/pull/9409) ([Clément Rodriguez](https://github.com/clemrodriguez)) * `clickhouse-benchmark` の出力において、補間値ではなく、各分位点に対して最も近いクエリの実行時間を表示するように変更しました。いずれかのクエリの実行時間に実際に対応する値を表示した方が望ましいためです。 [#8712](https://github.com/ClickHouse/ClickHouse/pull/8712) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Kafka へのデータ挿入時にメッセージキーとタイムスタンプを追加できるようにしました。[#7198](https://github.com/ClickHouse/ClickHouse/issues/7198) [#8969](https://github.com/ClickHouse/ClickHouse/pull/8969) を修正([filimonov](https://github.com/filimonov)) -* サーバーをターミナル上で実行している場合、スレッド番号、クエリ ID、ログの優先度を色分けして表示するようにしました。これにより、開発者が相関付けられたログメッセージをより読みやすく確認できるようになります。 [#8961](https://github.com/ClickHouse/ClickHouse/pull/8961) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Kafka へのデータ挿入時にメッセージにキーとタイムスタンプを追加できるようにしました。これにより [#7198](https://github.com/ClickHouse/ClickHouse/issues/7198) [#8969](https://github.com/ClickHouse/ClickHouse/pull/8969) が修正されました([filimonov](https://github.com/filimonov)) +* サーバーをターミナルから実行している場合、スレッド番号、クエリ ID、ログの優先度を色分けして表示するようにしました。これにより、開発者が相関付けられたログメッセージをより読みやすく確認できるようになります。 [#8961](https://github.com/ClickHouse/ClickHouse/pull/8961) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `Ordinary` データベースでテーブルをロードする際の例外メッセージを改善しました。 [#9527](https://github.com/ClickHouse/ClickHouse/pull/9527) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 集約関数状態を要素とする配列向けに `arraySlice` を実装しました。これにより [#9388](https://github.com/ClickHouse/ClickHouse/issues/9388) および [#9391](https://github.com/ClickHouse/ClickHouse/pull/9391) が修正されました([alexey-milovidov](https://github.com/alexey-milovidov)) +* 集約関数の状態を要素とする配列向けに `arraySlice` を実装しました。これにより、[#9388](https://github.com/ClickHouse/ClickHouse/issues/9388) および [#9391](https://github.com/ClickHouse/ClickHouse/pull/9391) が修正されました([alexey-milovidov](https://github.com/alexey-milovidov)) * IN 演算子の右辺で定数関数や定数配列を使用できるようにしました。 [#8813](https://github.com/ClickHouse/ClickHouse/pull/8813) ([Anton Popov](https://github.com/CurtizJ)) * system.replicas のデータ取得中に ZooKeeper の例外が発生した場合、その情報を別の列に表示するようにしました。これは [#9137](https://github.com/ClickHouse/ClickHouse/issues/9137) [#9138](https://github.com/ClickHouse/ClickHouse/pull/9138)([alexey-milovidov](https://github.com/alexey-milovidov))の実装です。 * 破棄時に MergeTree のデータパーツをアトミックに削除するように変更。 [#8402](https://github.com/ClickHouse/ClickHouse/pull/8402) ([Vladimir Chebotarev](https://github.com/excitoon)) -* Distributed テーブルで行レベルセキュリティをサポート。 [#8926](https://github.com/ClickHouse/ClickHouse/pull/8926) ([Ivan](https://github.com/abyss7)) -* 設定値に付与されたサフィックス(KB、KiB など)を認識できるようになりました。 [#8072](https://github.com/ClickHouse/ClickHouse/pull/8072) ([Mikhail Korotov](https://github.com/millb)) +* Distributed テーブルで行レベルセキュリティをサポートしました。 [#8926](https://github.com/ClickHouse/ClickHouse/pull/8926) ([Ivan](https://github.com/abyss7)) +* 設定値に指定されたサフィックス(KB、KiB など)を認識できるようになりました。 [#8072](https://github.com/ClickHouse/ClickHouse/pull/8072) ([Mikhail Korotov](https://github.com/millb)) * 大規模な JOIN の結果を構築する際にメモリ不足 (out of memory) が発生しないようにしました。 [#8637](https://github.com/ClickHouse/ClickHouse/pull/8637) ([Artem Zuikov](https://github.com/4ertus2)) * `clickhouse-client` のインタラクティブモードでの補完候補にクラスタ名を追加しました。 [#8709](https://github.com/ClickHouse/ClickHouse/pull/8709) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* グループ内のすべてのスレッドに対してクエリプロファイラを初期化します。例えば、これにより INSERT クエリの完全なプロファイリングが可能になります [#8820](https://github.com/ClickHouse/ClickHouse/pull/8820) ([Ivan](https://github.com/abyss7)) +* グループ内のすべてのスレッドで query profiler を初期化し、例えば insert クエリを完全にプロファイルできるようにしました。[#8820](https://github.com/ClickHouse/ClickHouse/pull/8820) ([Ivan](https://github.com/abyss7)) * `system.query_log` テーブルに `exception_code` カラムを追加しました。 [#8770](https://github.com/ClickHouse/ClickHouse/pull/8770) ([Mikhail Korotov](https://github.com/millb)) * デフォルトのサーバー設定ファイルでポート `9004` の MySQL 互換サーバーを有効にしました。設定例中のパスワード生成コマンドを修正しました。 [#8771](https://github.com/ClickHouse/ClickHouse/pull/8771) ([Yuriy Baranov](https://github.com/yurriy)) * ファイルシステムが読み取り専用の場合でも、シャットダウン時に異常終了しないようにしました。これにより [#9094](https://github.com/ClickHouse/ClickHouse/issues/9094) [#9100](https://github.com/ClickHouse/ClickHouse/pull/9100) が修正されました([alexey-milovidov](https://github.com/alexey-milovidov)) -* HTTP POST クエリで `length` が必須となる場合の例外メッセージを改善。 [#9453](https://github.com/ClickHouse/ClickHouse/pull/9453) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* HTTP POST クエリで `length` が必須となる場合の例外メッセージを改善しました。 [#9453](https://github.com/ClickHouse/ClickHouse/pull/9453) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `HDFS` および `File` エンジンならびに `hdfs` および `file` テーブル関数に `_path` と `_file` の仮想列を追加 [#8489](https://github.com/ClickHouse/ClickHouse/pull/8489) ([Olga Khvostikova](https://github.com/stavrolia)) * `MATERIALIZED VIEW` の内部テーブルに新しいカラムを追加した場合に、そのビューに対する挿入で発生していた `Cannot find column` エラーを修正しました。 [#8766](https://github.com/ClickHouse/ClickHouse/pull/8766) [#8788](https://github.com/ClickHouse/ClickHouse/pull/8788) ([vzakaznikov](https://github.com/vzakaznikov)) [#8788](https://github.com/ClickHouse/ClickHouse/issues/8788) [#8806](https://github.com/ClickHouse/ClickHouse/pull/8806) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) [#8803](https://github.com/ClickHouse/ClickHouse/pull/8803) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* ネイティブのクライアント-サーバープロトコルにおける progress の扱いを修正し、(ログと同様に)最終更新の後に progress を送信するようにしました。これは、ネイティブプロトコルを使用している一部のサードパーティーツールにのみ影響する可能性があります。 [#9495](https://github.com/ClickHouse/ClickHouse/pull/9495) ([Azat Khuzhin](https://github.com/azat)) +* ネイティブのクライアント-サーバープロトコルにおける progress の送信方法を修正し、(ログと同様に)最終更新後に progress を送信するようにしました。これは、ネイティブプロトコルを使用している一部のサードパーティーツールにのみ関係する可能性があります。 [#9495](https://github.com/ClickHouse/ClickHouse/pull/9495) ([Azat Khuzhin](https://github.com/azat)) * MySQL プロトコルを使用しているクライアント接続数を追跡するシステムメトリクスを追加。([#9013](https://github.com/ClickHouse/ClickHouse/issues/9013)) [#9015](https://github.com/ClickHouse/ClickHouse/pull/9015) ([Eugene Klimov](https://github.com/Slach)) -* 今後、HTTP レスポンスには、`SELECT timezone()` が返すタイムゾーン値と同じ値が設定された `X-ClickHouse-Timezone` ヘッダーが含まれます。 [#9493](https://github.com/ClickHouse/ClickHouse/pull/9493) ([Denis Glazachev](https://github.com/traceon)) +* 今後は、HTTP レスポンスに含まれる `X-ClickHouse-Timezone` ヘッダーに、`SELECT timezone()` が返すものと同じタイムゾーン値が設定されます。 [#9493](https://github.com/ClickHouse/ClickHouse/pull/9493) ([Denis Glazachev](https://github.com/traceon)) #### パフォーマンスの改善 {#performance-improvement-16} + * IN を使用したインデックス解析のパフォーマンスを改善。[#9261](https://github.com/ClickHouse/ClickHouse/pull/9261) ([Anton Popov](https://github.com/CurtizJ)) * Logical Functions において、よりシンプルかつ効率的なコードに変更し、コードをクリーンアップ。[#8718](https://github.com/ClickHouse/ClickHouse/issues/8718) [#8728](https://github.com/ClickHouse/ClickHouse/pull/8728) のフォローアップ。([Alexander Kazakov](https://github.com/Akazz)) * C++20 の機能を用いて、より厳密なエイリアシングを保証することで、全体的なパフォーマンスを改善(影響を受けるクエリで 5%〜200% 向上)。[#9304](https://github.com/ClickHouse/ClickHouse/pull/9304) ([Amos Bird](https://github.com/amosbird)) @@ -2925,54 +2917,52 @@ v20.4.3.16-stable からの変更はありません。 #### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement-20} * Windows Subsystem for Linux 上で例外処理が正しく動作するようになりました。詳細は [https://github.com/ClickHouse-Extras/libunwind/pull/3](https://github.com/ClickHouse-Extras/libunwind/pull/3) を参照してください。これにより [#6480](https://github.com/ClickHouse/ClickHouse/issues/6480) と [#9564](https://github.com/ClickHouse/ClickHouse/pull/9564) が解決されました([sobolevsv](https://github.com/sobolevsv))。 -* `clickhouse-client` の対話的な行編集機能のために `readline` を `replxx` に置き換えました [#8416](https://github.com/ClickHouse/ClickHouse/pull/8416) ([Ivan](https://github.com/abyss7)) +* `clickhouse-client` の対話的な行編集のために `readline` を `replxx` に置き換えました [#8416](https://github.com/ClickHouse/ClickHouse/pull/8416) ([Ivan](https://github.com/abyss7)) * FunctionsComparison におけるビルド時間を短縮し、テンプレートのインスタンス化回数を削減しました。 [#9324](https://github.com/ClickHouse/ClickHouse/pull/9324) ([alexey-milovidov](https://github.com/alexey-milovidov)) * CI での `clang-tidy` 連携を追加しました。あわせて [#6044](https://github.com/ClickHouse/ClickHouse/issues/6044) [#9566](https://github.com/ClickHouse/ClickHouse/pull/9566) も参照してください([alexey-milovidov](https://github.com/alexey-milovidov)) * CI で ClickHouse をリンクする際に、`gcc` の場合でも `lld` を使用するようになりました。 [#9049](https://github.com/ClickHouse/ClickHouse/pull/9049) ([alesapin](https://github.com/alesapin)) * `THREAD_FUZZER_*` 環境変数が設定されている場合に、スレッドスケジューリングをランダム化し、意図的な不具合(グリッチ)を挿入できるようにしました。これによりテストが容易になります。 [#9459](https://github.com/ClickHouse/ClickHouse/pull/9459) ([alexey-milovidov](https://github.com/alexey-milovidov)) * ステートレステストでセキュアソケットを有効にする [#9288](https://github.com/ClickHouse/ClickHouse/pull/9288) ([tavplubix](https://github.com/tavplubix)) -* SPLIT_SHARED_LIBRARIES=OFF の堅牢性を向上 [#9156](https://github.com/ClickHouse/ClickHouse/pull/9156) ([Azat Khuzhin](https://github.com/azat)) +* SPLIT_SHARED_LIBRARIES=OFF をより堅牢にしました [#9156](https://github.com/ClickHouse/ClickHouse/pull/9156) ([Azat Khuzhin](https://github.com/azat)) * CI 環境でサーバーがランダムにハングする場合にも "performance_introspection_and_logging" テストが安定して動作するようにしました。あわせて [#9515](https://github.com/ClickHouse/ClickHouse/issues/9515) および [#9528](https://github.com/ClickHouse/ClickHouse/pull/9528) も参照してください([alexey-milovidov](https://github.com/alexey-milovidov))。 * スタイルチェックで XML を検証するようにしました。 [#9550](https://github.com/ClickHouse/ClickHouse/pull/9550) ([alexey-milovidov](https://github.com/alexey-milovidov)) * テスト `00738_lock_for_inner_table` における競合状態(レースコンディション)を修正しました。このテストは `sleep` に依存していました。 [#9555](https://github.com/ClickHouse/ClickHouse/pull/9555) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `once` 型のパフォーマンス テストを削除しました。これは、すべてのパフォーマンス テストを統計的な比較モード(より信頼性が高い)で実行するために必要です。 [#9557](https://github.com/ClickHouse/ClickHouse/pull/9557) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 算術関数のパフォーマンステストを追加しました。 [#9326](https://github.com/ClickHouse/ClickHouse/pull/9326) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `sumMap` および `sumMapWithOverflow` 集約関数のパフォーマンス テストを追加しました。[#8933](https://github.com/ClickHouse/ClickHouse/issues/8933) [#8947](https://github.com/ClickHouse/ClickHouse/pull/8947) に対するフォローアップです([alexey-milovidov](https://github.com/alexey-milovidov))。 -* スタイルチェックで ErrorCodes のスタイルを統一。 [#9370](https://github.com/ClickHouse/ClickHouse/pull/9370) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* スタイルチェックで ErrorCodes のスタイルを保証するようにしました。 [#9370](https://github.com/ClickHouse/ClickHouse/pull/9370) ([alexey-milovidov](https://github.com/alexey-milovidov)) * テスト履歴用スクリプトを追加。 [#8796](https://github.com/ClickHouse/ClickHouse/pull/8796) ([alesapin](https://github.com/alesapin)) * GCC の警告オプション `-Wsuggest-override` を追加し、`override` キーワードを使用すべき箇所をすべて特定して修正しました。 [#8760](https://github.com/ClickHouse/ClickHouse/pull/8760) ([kreuzerkrieg](https://github.com/kreuzerkrieg)) -* Mac OS X では必ず定義されているはずの weak symbol を無視する [#9538](https://github.com/ClickHouse/ClickHouse/pull/9538) ([削除されたユーザー](https://github.com/ghost)) +* Mac OS X では定義されているはずの weak symbol を無視する [#9538](https://github.com/ClickHouse/ClickHouse/pull/9538) ([削除されたユーザー](https://github.com/ghost)) * パフォーマンステストにおいて一部のクエリの実行時間を正規化しました。これは、すべてのパフォーマンステストを比較モードで実行するための準備の一環です。 [#9565](https://github.com/ClickHouse/ClickHouse/pull/9565) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* pytest を使用したクエリテストをサポートするために一部のテストを修正 [#9062](https://github.com/ClickHouse/ClickHouse/pull/9062) ([Ivan](https://github.com/abyss7)) -* MSan ビルドで SSL を有効化し、ステートレステスト実行時にサーバーが起動に失敗しないようにする [#9531](https://github.com/ClickHouse/ClickHouse/pull/9531) ([tavplubix](https://github.com/tavplubix)) -* テスト結果でのデータベース置換処理を修正 [#9384](https://github.com/ClickHouse/ClickHouse/pull/9384) ([Ilya Yatsishin](https://github.com/qoega)) +* pytest によるクエリテストをサポートするため、一部のテストを修正 [#9062](https://github.com/ClickHouse/ClickHouse/pull/9062) ([Ivan](https://github.com/abyss7)) +* MSan ビルドで SSL を有効化し、ステートレステスト実行時にサーバーの起動が失敗しないようにする [#9531](https://github.com/ClickHouse/ClickHouse/pull/9531) ([tavplubix](https://github.com/tavplubix)) +* テスト結果におけるデータベース置換処理を修正 [#9384](https://github.com/ClickHouse/ClickHouse/pull/9384) ([Ilya Yatsishin](https://github.com/qoega)) * 各種プラットフォーム向けのビルド修正 [#9381](https://github.com/ClickHouse/ClickHouse/pull/9381) ([proller](https://github.com/proller)) [#8755](https://github.com/ClickHouse/ClickHouse/pull/8755) ([proller](https://github.com/proller)) [#8631](https://github.com/ClickHouse/ClickHouse/pull/8631) ([proller](https://github.com/proller)) * stateless-with-coverage テスト用の Docker イメージに disks セクションを追加 [#9213](https://github.com/ClickHouse/ClickHouse/pull/9213) ([Pavel Kovalenko](https://github.com/Jokser)) * gRPC でビルドする際にソースツリー内のファイルを使用しないようにする [#9588](https://github.com/ClickHouse/ClickHouse/pull/9588) ([Amos Bird](https://github.com/amosbird)) -* Context から SessionCleaner を削除することでビルド時間をわずかに短縮。SessionCleaner のコードをより簡素化。 [#9232](https://github.com/ClickHouse/ClickHouse/pull/9232) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Context から SessionCleaner を削除してビルド時間をわずかに短縮し、SessionCleaner のコードをより簡潔にしました。 [#9232](https://github.com/ClickHouse/ClickHouse/pull/9232) ([alexey-milovidov](https://github.com/alexey-milovidov)) * clickhouse-test スクリプトにおけるハングしたクエリのチェックを更新 [#8858](https://github.com/ClickHouse/ClickHouse/pull/8858) ([Alexander Kazakov](https://github.com/Akazz)) * リポジトリから不要なファイルを削除しました。 [#8843](https://github.com/ClickHouse/ClickHouse/pull/8843) ([alexey-milovidov](https://github.com/alexey-milovidov)) * math のパフォーマンステストのタイプを `once` から `loop` に変更しました。 [#8783](https://github.com/ClickHouse/ClickHouse/pull/8783) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* コードベース向けのインタラクティブなコードブラウザ形式の HTML レポートを生成できる Docker イメージを追加。 [#8781](https://github.com/ClickHouse/ClickHouse/pull/8781) ([alesapin](https://github.com/alesapin)) [Woboq Code Browser](https://clickhouse-test-reports.s3.yandex.net/codebrowser/ClickHouse/dbms/index.html) を参照。 +* コードベース向けのインタラクティブなコードブラウザ HTML レポートを生成できる Docker イメージを追加。 [#8781](https://github.com/ClickHouse/ClickHouse/pull/8781) ([alesapin](https://github.com/alesapin)) [Woboq Code Browser](https://clickhouse-test-reports.s3.yandex.net/codebrowser/ClickHouse/dbms/index.html) を参照。 * MSan 環境で発生する一部のテスト失敗を抑制。 [#8780](https://github.com/ClickHouse/ClickHouse/pull/8780) ([Alexander Kuzmenkov](https://github.com/akuzm)) * "exception while insert" テストを高速化。このテストは debug-with-coverage ビルドで頻繁にタイムアウトします。 [#8711](https://github.com/ClickHouse/ClickHouse/pull/8711) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `libcxx` と `libcxxabi` を master ブランチに更新しました。[#9304](https://github.com/ClickHouse/ClickHouse/issues/9304) および [#9308](https://github.com/ClickHouse/ClickHouse/pull/9308) に向けた準備です([alexey-milovidov](https://github.com/alexey-milovidov)) * 不安定なテスト `00910_zookeeper_test_alter_compression_codecs` を修正。 [#9525](https://github.com/ClickHouse/ClickHouse/pull/9525) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 重複したリンカフラグを整理し、リンカが予期しないシンボルを参照しに行かないようにしました。 [#9433](https://github.com/ClickHouse/ClickHouse/pull/9433) ([Amos Bird](https://github.com/amosbird)) -* テストイメージに `clickhouse-odbc` ドライバーを追加しました。これにより、ClickHouse 独自の ODBC ドライバーを介した ClickHouse 間の連携をテストできるようになります。 [#9348](https://github.com/ClickHouse/ClickHouse/pull/9348) ([filimonov](https://github.com/filimonov)) +* 重複したリンカフラグを整理し、リンカが予期しないシンボルを参照しようとしないようにしました。 [#9433](https://github.com/ClickHouse/ClickHouse/pull/9433) ([Amos Bird](https://github.com/amosbird)) +* テストイメージに `clickhouse-odbc` ドライバーを追加しました。これにより、ClickHouse 独自の ODBC ドライバー経由で ClickHouse 同士の相互動作をテストできるようになります。 [#9348](https://github.com/ClickHouse/ClickHouse/pull/9348) ([filimonov](https://github.com/filimonov)) * ユニットテストの複数のバグを修正。 [#9047](https://github.com/ClickHouse/ClickHouse/pull/9047) ([alesapin](https://github.com/alesapin)) * 存在しない `include` ディレクトリをすべて検出して排除するために、`-Wmissing-include-dirs` GCC 警告を有効にしました。これは主に CMake スクリプトのエラーに起因します [#8704](https://github.com/ClickHouse/ClickHouse/pull/8704) ([kreuzerkrieg](https://github.com/kreuzerkrieg)) * クエリプロファイラを使用できない場合の理由を記述します。これは [#9049](https://github.com/ClickHouse/ClickHouse/issues/9049) および [#9144](https://github.com/ClickHouse/ClickHouse/pull/9144)([alexey-milovidov](https://github.com/alexey-milovidov))に対応するものです。 -* OpenSSL を upstream の master に更新しました。TLS 接続が失敗し、`OpenSSL SSL_read: error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error` や `SSL Exception: error:2400006E:random number generator::error retrieving entropy` というメッセージが表示されることがある問題を修正しました。この問題はバージョン 20.1 で発生していました。 [#8956](https://github.com/ClickHouse/ClickHouse/pull/8956) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* OpenSSL を upstream の master に更新しました。TLS 接続が失敗し、`OpenSSL SSL_read: error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error` や `SSL Exception: error:2400006E:random number generator::error retrieving entropy` というメッセージが表示される場合がある問題を修正しました。この問題はバージョン 20.1 で発生していました。 [#8956](https://github.com/ClickHouse/ClickHouse/pull/8956) ([alexey-milovidov](https://github.com/alexey-milovidov)) * サーバー用 Dockerfile を更新 [#8893](https://github.com/ClickHouse/ClickHouse/pull/8893) ([Ilya Mazaev](https://github.com/ne-ray)) -* build-gcc-from-sources スクリプトの細かな修正 [#8774](https://github.com/ClickHouse/ClickHouse/pull/8774) ([Michael Nacharov](https://github.com/mnach)) +* build-gcc-from-sources スクリプトの軽微な修正 [#8774](https://github.com/ClickHouse/ClickHouse/pull/8774) ([Michael Nacharov](https://github.com/mnach)) * `number` 列を使用していないパフォーマンステストでは、`numbers` を `zeros` に置き換えました。これにより、よりクリーンなテスト結果が得られます。 [#9600](https://github.com/ClickHouse/ClickHouse/pull/9600) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * Column コンストラクタで `initializer_list` を使用した際にスタックオーバーフローが発生する問題を修正。 [#9367](https://github.com/ClickHouse/ClickHouse/pull/9367) ([Deleted user](https://github.com/ghost)) * librdkafka を v1.3.0 にアップグレードし、Mac OS X でバンドルされた `rdkafka` と `gsasl` ライブラリを有効にしました。 [#9000](https://github.com/ClickHouse/ClickHouse/pull/9000) ([Andrew Onyshchuk](https://github.com/oandrew)) * GCC 9.2.0 向けのビルド修正 [#9306](https://github.com/ClickHouse/ClickHouse/pull/9306) ([vxider](https://github.com/Vxider)) - - ## ClickHouse リリース v20.1 {#clickhouse-release-v201} ### ClickHouse リリース v20.1.16.120-stable 2020-60-26 {#clickhouse-release-v20116120-stable-2020-60-26} @@ -3073,7 +3063,7 @@ v20.4.3.16-stable からの変更はありません。 #### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement-21} -* clickhouse-server の Docker イメージに CA証明書を追加しました。 [#10476](https://github.com/ClickHouse/ClickHouse/pull/10476) ([filimonov](https://github.com/filimonov)). +* clickhouse-server の Docker イメージに CA 証明書を追加しました。 [#10476](https://github.com/ClickHouse/ClickHouse/pull/10476) ([filimonov](https://github.com/filimonov)). ### ClickHouse リリース v20.1.10.70, 2020-04-17 {#clickhouse-release-v2011070-2020-04-17} @@ -3118,15 +3108,16 @@ v20.4.3.16-stable からの変更はありません。 #### 改善 {#improvement-21} -* mutation では単一スレッドで単一の順序付けられたパートから読み込むため、mutation からは `ORDER BY` ステージを削除。また、mutation 内の行の順序がソートキー順に並んでおり、その順序が崩れていないことをチェックする処理を追加。[#9886](https://github.com/ClickHouse/ClickHouse/pull/9886) ([alesapin](https://github.com/alesapin))。 +* mutation では単一スレッドで単一のソート済みパーツから読み込むため、`ORDER BY` ステージを削除。また、mutation 内の行がソートキー順に並んでおり、その順序が崩れていないことを検証するチェックを追加。[#9886](https://github.com/ClickHouse/ClickHouse/pull/9886) ([alesapin](https://github.com/alesapin))。 #### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement-23} -* 重複したリンカフラグを整理し、リンカが予期しないシンボルを探索しないようにしました。[#9433](https://github.com/ClickHouse/ClickHouse/pull/9433) ([Amos Bird](https://github.com/amosbird))。 +* 重複したリンカフラグを整理し、リンカが予期しないシンボルを検索しないようにする。[#9433](https://github.com/ClickHouse/ClickHouse/pull/9433) ([Amos Bird](https://github.com/amosbird))。 ### ClickHouse リリース v20.1.8.41, 2020-03-20 {#clickhouse-release-v201841-2020-03-20} #### バグ修正 {#bug-fix-57} + * `ParallelAggregatingBlockInputStream::Handler::onFinish/onFinishThread` 内の未処理例外が原因で、`Cannot schedule a task` エラーが恒久的に発生しうる問題を修正しました。この修正は [#6833](https://github.com/ClickHouse/ClickHouse/issues/6833) を解決します。[#9154](https://github.com/ClickHouse/ClickHouse/pull/9154)([Azat Khuzhin](https://github.com/azat)) * `ALTER` クエリ(mutations)でメモリ消費量が過大になる問題を修正しました。この修正は [#9533](https://github.com/ClickHouse/ClickHouse/issues/9533) および [#9670](https://github.com/ClickHouse/ClickHouse/issues/9670) を解決します。[#9754](https://github.com/ClickHouse/ClickHouse/pull/9754)([alesapin](https://github.com/alesapin)) * 外部ディクショナリの DDL におけるバッククォート処理のバグを修正しました。この修正は [#9619](https://github.com/ClickHouse/ClickHouse/issues/9619) を解決します。[#9734](https://github.com/ClickHouse/ClickHouse/pull/9734)([alesapin](https://github.com/alesapin)) @@ -3137,18 +3128,18 @@ v20.4.3.16-stable からの変更はありません。 * `sumKahan` と `sumWithOverflow` の内部関数名の誤りを修正しました。これらの関数をリモートクエリで使用した際に、例外が発生していました。 [#9636](https://github.com/ClickHouse/ClickHouse/pull/9636) ([Azat Khuzhin](https://github.com/azat))。この問題はすべての ClickHouse リリースに影響していました。 * 内部レプリケーションを使用する `Distributed` テーブルに対する `ALTER ON CLUSTER` を許可するようにしました。これにより [#3268](https://github.com/ClickHouse/ClickHouse/issues/3268) を修正しました。 [#9617](https://github.com/ClickHouse/ClickHouse/pull/9617)([shinoi2](https://github.com/shinoi2))。この問題はすべての ClickHouse リリースで発生していました。 -* `MergeTreeRangeReader` において発生しうる例外 `Size of filter does not match size of column` および `Invalid number of rows in Chunk` を修正しました。これらは一部のケースで `PREWHERE` 句の実行中に発生する可能性がありました。[#9132](https://github.com/ClickHouse/ClickHouse/issues/9132) を修正。[#9612](https://github.com/ClickHouse/ClickHouse/pull/9612)([Anton Popov](https://github.com/CurtizJ)) +* `MergeTreeRangeReader` において発生しうる例外 `Size of filter does not match size of column` および `Invalid number of rows in Chunk` を修正しました。これらは一部のケースで `PREWHERE` 句の実行中に発生する可能性がありました。これにより [#9132](https://github.com/ClickHouse/ClickHouse/issues/9132) が修正されました。 [#9612](https://github.com/ClickHouse/ClickHouse/pull/9612)([Anton Popov](https://github.com/CurtizJ)) * 問題を修正しました。`time + 1` のような単純な算術式で記述した場合に(`time + INTERVAL 1 SECOND` のような式とは対照的に)、タイムゾーンが保持されていませんでした。この修正は [#5743](https://github.com/ClickHouse/ClickHouse/issues/5743) を解決します。 [#9323](https://github.com/ClickHouse/ClickHouse/pull/9323)([alexey-milovidov](https://github.com/alexey-milovidov))。この問題はすべての ClickHouse リリースに影響していました。 * これにより、`a DEFAULT b, b DEFAULT a` のような単純な循環エイリアスを持つカラムを作成または追加することはできなくなりました。 [#9603](https://github.com/ClickHouse/ClickHouse/pull/9603) ([alesapin](https://github.com/alesapin)) -* base64 エンコードされた値の末尾のパディングが不正な形式になる場合がある不具合を修正しました。base64 ライブラリを更新しました。これにより [#9491](https://github.com/ClickHouse/ClickHouse/issues/9491) が解決され、[#9492](https://github.com/ClickHouse/ClickHouse/issues/9492) [#9500](https://github.com/ClickHouse/ClickHouse/pull/9500) がクローズされました([alexey-milovidov](https://github.com/alexey-milovidov))。 +* base64 エンコードされた値の末尾のパディングが不正な形式になることがある問題を修正しました。base64 ライブラリを更新しました。これにより [#9491](https://github.com/ClickHouse/ClickHouse/issues/9491) が解決され、[#9492](https://github.com/ClickHouse/ClickHouse/issues/9492) [#9500](https://github.com/ClickHouse/ClickHouse/pull/9500) がクローズされました([alexey-milovidov](https://github.com/alexey-milovidov))。 * `Poco::HTTPServer` の破棄時に発生するデータレースを修正しました。サーバーが起動してすぐにシャットダウンされた場合に発生する可能性がありました。 [#9468](https://github.com/ClickHouse/ClickHouse/pull/9468) ([Anton Popov](https://github.com/CurtizJ)) * `LIMIT n WITH TIES` で、n 番目の行と同一の行が多数存在する場合にクラッシュや行数の誤りが発生する可能性がある問題を修正。 [#9464](https://github.com/ClickHouse/ClickHouse/pull/9464) ([tavplubix](https://github.com/tavplubix)) * カラム TTL によって発生し得るチェックサム不一致を修正。 [#9451](https://github.com/ClickHouse/ClickHouse/pull/9451) ([Anton Popov](https://github.com/CurtizJ)) * 古い形式の `MergeTree` テーブルエンジンファミリーに対してユーザーが `ALTER MODIFY SETTING` を実行しようとした際に発生するクラッシュの問題を修正。 [#9435](https://github.com/ClickHouse/ClickHouse/pull/9435) ([alesapin](https://github.com/alesapin)) -* これからは mutations の finalize がより頻繁に実行されるようになりました。 [#9427](https://github.com/ClickHouse/ClickHouse/pull/9427) ([alesapin](https://github.com/alesapin)) +* mutations の finalize 処理がより頻繁に実行されるようになりました。 [#9427](https://github.com/ClickHouse/ClickHouse/pull/9427) ([alesapin](https://github.com/alesapin)) * [#8598](https://github.com/ClickHouse/ClickHouse/issues/8598) によって導入されたレプリケーションプロトコルの非互換性を修正。 [#9412](https://github.com/ClickHouse/ClickHouse/pull/9412) ([alesapin](https://github.com/alesapin)) * 配列型の bloom_filter インデックスにおける not(has()) の動作を修正。 [#9407](https://github.com/ClickHouse/ClickHouse/pull/9407) ([achimbab](https://github.com/achimbab)) -* `haystack` がゼロバイトの場合の `match` 関数および `extract` 関数の動作を修正しました。`haystack` が定数のときの動作が不正でした。これにより [#9160](https://github.com/ClickHouse/ClickHouse/issues/9160) [#9163](https://github.com/ClickHouse/ClickHouse/pull/9163) ([alexey-milovidov](https://github.com/alexey-milovidov)) [#9345](https://github.com/ClickHouse/ClickHouse/pull/9345) ([alexey-milovidov](https://github.com/alexey-milovidov)) が修正されます。 +* `haystack` がゼロバイトの場合の `match` 関数および `extract` 関数の動作を修正しました。`haystack` が定数のときの動作が誤っていました。これにより [#9160](https://github.com/ClickHouse/ClickHouse/issues/9160) [#9163](https://github.com/ClickHouse/ClickHouse/pull/9163) ([alexey-milovidov](https://github.com/alexey-milovidov)) [#9345](https://github.com/ClickHouse/ClickHouse/pull/9345) ([alexey-milovidov](https://github.com/alexey-milovidov)) を修正します。 #### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement-24} @@ -3206,12 +3197,14 @@ v20.4.3.16-stable からの変更はありません。 [#9513](https://github.com/ClickHouse/ClickHouse/pull/9513) [(filimonov)](https://github.com/filimonov) #### 新機能 {#new-feature-12} + * マテリアライズドビューを持つテーブルへの冪等な挿入の挙動を制御するために、`deduplicate_blocks_in_dependent_materialized_views` オプションを追加しました。この新機能は、Altinity からの特別なリクエストによりバグ修正リリースに追加されました。 [#9070](https://github.com/ClickHouse/ClickHouse/pull/9070) [(urykhy)](https://github.com/urykhy) ### ClickHouse リリース v20.1.2.4, 2020-01-22 {#clickhouse-release-v20124-2020-01-22} #### 後方互換性のない変更 {#backward-incompatible-change-10} + * 設定 `merge_tree_uniform_read_distribution` を廃止しました。サーバーは依然としてこの設定を認識しますが、効果はありません。 [#8308](https://github.com/ClickHouse/ClickHouse/pull/8308) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 関数 `greatCircleDistance` の戻り値の型を `Float32` に変更しました。これは、計算結果が現在 `Float32` であるためです。 [#7993](https://github.com/ClickHouse/ClickHouse/pull/7993) ([alexey-milovidov](https://github.com/alexey-milovidov)) * クエリパラメータは、エスケープ済み形式で表現されることが求められるようになりました。たとえば、文字列 `ab` を渡すには `a\tb` または `a\b` と記述する必要があり、それに対応して URL では `a%5Ctb` または `a%5C%09b` と記述します。これは、`\N` として NULL を渡せるようにするために必要な変更です。これにより [#7488](https://github.com/ClickHouse/ClickHouse/issues/7488) が修正されます。 [#8517](https://github.com/ClickHouse/ClickHouse/pull/8517) ([alexey-milovidov](https://github.com/alexey-milovidov)) @@ -3232,10 +3225,10 @@ v20.4.3.16-stable からの変更はありません。 * 離散特徴量の情報値を計算する集約関数 `categoricalInformationValue` を追加。 [#8117](https://github.com/ClickHouse/ClickHouse/pull/8117) ([hcz](https://github.com/hczhcz)) * `CSV`、`TSV`、`JSONEachRow` 形式のデータファイルのパースを並列化し、高速化しました。 [#7780](https://github.com/ClickHouse/ClickHouse/pull/7780) ([Alexander Kuzmenkov](https://github.com/akuzm)) * バンカーズラウンディングを行う `bankerRound` 関数を追加。 [#8112](https://github.com/ClickHouse/ClickHouse/pull/8112) ([hcz](https://github.com/hczhcz)) -* リージョン名の組み込み辞書で、さらに多くの言語をサポートするようにしました: 'ru', 'en', 'ua', 'uk', 'by', 'kz', 'tr', 'de', 'uz', 'lv', 'lt', 'et', 'pt', 'he', 'vi'. [#8189](https://github.com/ClickHouse/ClickHouse/pull/8189) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* リージョン名用の組み込み辞書でサポートする言語を追加しました: 'ru', 'en', 'ua', 'uk', 'by', 'kz', 'tr', 'de', 'uz', 'lv', 'lt', 'et', 'pt', 'he', 'vi'. [#8189](https://github.com/ClickHouse/ClickHouse/pull/8189) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `ANY JOIN` ロジックの一貫性が向上しました。これにより、`t1 ANY LEFT JOIN t2` は `t2 ANY RIGHT JOIN t1` と同等になりました。 [#7665](https://github.com/ClickHouse/ClickHouse/pull/7665) ([Artem Zuikov](https://github.com/4ertus2)) * `ANY INNER JOIN` の従来の挙動を有効にするための設定 `any_join_distinct_right_table_keys` を追加しました。 [#7665](https://github.com/ClickHouse/ClickHouse/pull/7665) ([Artem Zuikov](https://github.com/4ertus2)) -* 新しい `SEMI` および `ANTI JOIN` を追加しました。以前の `ANY INNER JOIN` の動作は、現在は `SEMI LEFT JOIN` として利用できます。 [#7665](https://github.com/ClickHouse/ClickHouse/pull/7665) ([Artem Zuikov](https://github.com/4ertus2)) +* 新しい `SEMI` および `ANTI JOIN` を追加しました。`ANY INNER JOIN` の従来の挙動は、現在は `SEMI LEFT JOIN` として利用できます。 [#7665](https://github.com/ClickHouse/ClickHouse/pull/7665) ([Artem Zuikov](https://github.com/4ertus2)) * `File` エンジンおよび `file` テーブル関数に `Distributed` フォーマットを追加し、`Distributed` テーブルへの非同期インサートによって生成された `.bin` ファイルを読み込めるようにしました。 [#8535](https://github.com/ClickHouse/ClickHouse/pull/8535) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * `runningAccumulate` にオプションのリセット列引数を追加し、新しいキー値ごとに集計結果をリセットできるようにしました。 [#8326](https://github.com/ClickHouse/ClickHouse/pull/8326) ([Sergey Kononenko](https://github.com/kononencheg)) * ClickHouse を Prometheus のエンドポイントとして利用できる機能を追加。 [#7900](https://github.com/ClickHouse/ClickHouse/pull/7900) ([vdimir](https://github.com/Vdimir)) @@ -3244,96 +3237,94 @@ v20.4.3.16-stable からの変更はありません。 * H3 ライブラリと整合するよう、地球半径の値を変更しました。 [#8105](https://github.com/ClickHouse/ClickHouse/pull/8105) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 入力および出力用に `JSONCompactEachRow` と `JSONCompactEachRowWithNamesAndTypes` フォーマットを追加しました。 [#7841](https://github.com/ClickHouse/ClickHouse/pull/7841) ([Mikhail Korotov](https://github.com/millb)) * ファイル関連のテーブルエンジンおよびテーブル関数(`File`、`S3`、`URL`、`HDFS`)に、追加のエンジンパラメータまたはファイル拡張子に応じて `gzip` ファイルを読み書きできる機能を追加しました。 [#7840](https://github.com/ClickHouse/ClickHouse/pull/7840) ([Andrey Bodrov](https://github.com/apbodrov)) -* `randomASCII(length)` 関数を追加しました。この関数は、ランダムな [ASCII](https://en.wikipedia.org/wiki/ASCII#Printable_characters) 印字可能文字から構成される文字列を生成します。 [#8401](https://github.com/ClickHouse/ClickHouse/pull/8401) ([BayoNet](https://github.com/BayoNet)) -* `JSON` 文字列から未パースの JSON 配列要素をそのまま含む配列を返す関数 `JSONExtractArrayRaw` を追加。 [#8081](https://github.com/ClickHouse/ClickHouse/pull/8081) ([Oleg Matrokhin](https://github.com/errx)) +* `randomASCII(length)` 関数を追加しました。この関数は、[ASCII](https://en.wikipedia.org/wiki/ASCII#Printable_characters) の表示可能文字からなるランダムな文字列を生成します。 [#8401](https://github.com/ClickHouse/ClickHouse/pull/8401) ([BayoNet](https://github.com/BayoNet)) +* `JSON` 文字列から、パースされていない JSON 配列要素をそのまま格納した配列を返す関数 `JSONExtractArrayRaw` を追加。 [#8081](https://github.com/ClickHouse/ClickHouse/pull/8081) ([Oleg Matrokhin](https://github.com/errx)) * 同じ長さの複数の配列を1つのタプルの配列に結合する `arrayZip` 関数を追加。 [#8149](https://github.com/ClickHouse/ClickHouse/pull/8149) ([Winter Zhang](https://github.com/zhang2014)) -* 設定された `TTL` 式に従ってディスク間でデータを移動できる機能を、`*MergeTree` テーブルエンジンファミリーに追加。 [#8140](https://github.com/ClickHouse/ClickHouse/pull/8140) ([Vladimir Chebotarev](https://github.com/excitoon)) +* 設定された `TTL` 式に従ってディスク間でデータを移動できる機能を、`*MergeTree` テーブルエンジンファミリーに追加しました。 [#8140](https://github.com/ClickHouse/ClickHouse/pull/8140) ([Vladimir Chebotarev](https://github.com/excitoon)) * 加重平均を計算するための新しい集約関数 `avgWeighted` を追加しました。 [#7898](https://github.com/ClickHouse/ClickHouse/pull/7898) ([Andrey Bodrov](https://github.com/apbodrov)) -* `TSV`、`TSKV`、`CSV`、`JSONEachRow` フォーマットでは、並列解析が既定で有効になりました。 [#7894](https://github.com/ClickHouse/ClickHouse/pull/7894) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) -* `H3` ライブラリの地理空間関数 `h3GetResolution`、`h3EdgeAngle`、`h3EdgeLength`、`h3IsValid`、`h3kRing` をいくつか追加しました。 [#8034](https://github.com/ClickHouse/ClickHouse/pull/8034) ([Konstantin Malanchev](https://github.com/hombit)) +* `TSV`、`TSKV`、`CSV`、`JSONEachRow` フォーマットでは、並列パースがデフォルトで有効になりました。 [#7894](https://github.com/ClickHouse/ClickHouse/pull/7894) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) +* `H3` ライブラリの地理空間関数 `h3GetResolution`、`h3EdgeAngle`、`h3EdgeLength`、`h3IsValid`、`h3kRing` を複数追加しました。 [#8034](https://github.com/ClickHouse/ClickHouse/pull/8034) ([Konstantin Malanchev](https://github.com/hombit)) * ファイル関連のストレージおよびテーブル関数で、Brotli(`br`)圧縮をサポートしました。これにより、[#8156](https://github.com/ClickHouse/ClickHouse/issues/8156) が修正されました。[#8526](https://github.com/ClickHouse/ClickHouse/pull/8526)([alexey-milovidov](https://github.com/alexey-milovidov)) * `SimpleAggregationFunction` 型に `groupBit*` 関数を追加しました。 [#8485](https://github.com/ClickHouse/ClickHouse/pull/8485) ([Guillaume Tassery](https://github.com/YiuRULE)) - - #### バグ修正 {#bug-fix-60} * `Distributed` エンジンを使用するテーブルのリネーム処理を修正。問題 [#7868](https://github.com/ClickHouse/ClickHouse/issues/7868) を修正。[#8306](https://github.com/ClickHouse/ClickHouse/pull/8306) ([tavplubix](https://github.com/tavplubix)) -* 辞書で、ClickHouse 以外の SQL 方言では任意の文字列内の属性に `EXPRESSION` を使用できるようになりました。 [#8098](https://github.com/ClickHouse/ClickHouse/pull/8098) ([alesapin](https://github.com/alesapin)) +* 辞書で、ClickHouse 以外の SQL 方言において任意の文字列属性に `EXPRESSION` を使用できるようになりました。 [#8098](https://github.com/ClickHouse/ClickHouse/pull/8098) ([alesapin](https://github.com/alesapin)) * 不具合のあった `INSERT SELECT FROM mysql(...)` クエリを修正。この変更により [#8070](https://github.com/ClickHouse/ClickHouse/issues/8070) および [#7960](https://github.com/ClickHouse/ClickHouse/issues/7960) が解決される。 [#8234](https://github.com/ClickHouse/ClickHouse/pull/8234) ([tavplubix](https://github.com/tavplubix)) -* `JSONEachRow` からデフォルトの `Tuple` を挿入する際に発生するエラー "Mismatch column sizes" を修正。 この変更により [#5653](https://github.com/ClickHouse/ClickHouse/issues/5653) が解決されます。 [#8606](https://github.com/ClickHouse/ClickHouse/pull/8606) ([tavplubix](https://github.com/tavplubix)) +* `JSONEachRow` からデフォルトの `Tuple` を挿入する際に発生するエラー "Mismatch column sizes" を修正。この変更により [#5653](https://github.com/ClickHouse/ClickHouse/issues/5653) が解決されます。 [#8606](https://github.com/ClickHouse/ClickHouse/pull/8606) ([tavplubix](https://github.com/tavplubix)) * これにより、`LIMIT BY` と併用して `WITH TIES` を使用した場合に例外がスローされるようになりました。また、`LIMIT BY` と併用して `TOP` も使用できるようになりました。これにより [#7472](https://github.com/ClickHouse/ClickHouse/issues/7472) が修正されました。 [#7637](https://github.com/ClickHouse/ClickHouse/pull/7637) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) * `clickhouse-odbc-bridge` バイナリにおける最新の glibc バージョンへの意図しない依存を修正しました。 [#8046](https://github.com/ClickHouse/ClickHouse/pull/8046) ([Amos Bird](https://github.com/amosbird)) -* `*MergeTree` エンジンファミリーの check 関数のバグを修正しました。これにより、最後の granule と最後の mark(non-final)の行数が同じ場合でもチェックが失敗しないようになりました。 [#8047](https://github.com/ClickHouse/ClickHouse/pull/8047) ([alesapin](https://github.com/alesapin)) +* `*MergeTree` エンジンファミリーの `check` 関数のバグを修正しました。これにより、最後の granule と最後の mark(non-final)の行数が等しい場合でもチェックが失敗しないようになりました。 [#8047](https://github.com/ClickHouse/ClickHouse/pull/8047) ([alesapin](https://github.com/alesapin)) * 基礎となる数値型がテーブルで指定された型と同一の場合に、`ALTER` クエリ実行後の `Enum*` カラムへの挿入が正しく動作しない問題を修正しました。これにより [#7836](https://github.com/ClickHouse/ClickHouse/issues/7836) が解決されます。 [#7908](https://github.com/ClickHouse/ClickHouse/pull/7908) ([Anton Popov](https://github.com/CurtizJ)) * 関数 `substring` に対して、負の非定数「size」引数を許可しました。本来は許可されるべきところが、誤って禁止されていました。この変更により [#4832](https://github.com/ClickHouse/ClickHouse/issues/4832) が修正されました。[#7703](https://github.com/ClickHouse/ClickHouse/pull/7703)([alexey-milovidov](https://github.com/alexey-milovidov)) * `(O|J)DBC` テーブルエンジンに誤った数の引数が渡された場合に発生するパースのバグを修正。 [#7709](https://github.com/ClickHouse/ClickHouse/pull/7709) ([alesapin](https://github.com/alesapin)) * syslog にログを送信する際、実行中の ClickHouse プロセスのコマンド名を使用するように変更しました。以前のバージョンでは、コマンド名の代わりに空文字列が使用されていました。 [#8460](https://github.com/ClickHouse/ClickHouse/pull/8460) ([Michael Nacharov](https://github.com/mnach)) -* `localhost` の許可ホストチェックを修正。この PR では、[#8241](https://github.com/ClickHouse/ClickHouse/pull/8241) で提供された解決策を訂正します。[#8342](https://github.com/ClickHouse/ClickHouse/pull/8342)([Vitaly Baranov](https://github.com/vitlibar)) -* 長い文字列引数を扱う `argMin` および `argMax` 関数で、結果が `runningAccumulate` 関数で使用される場合にまれに発生するクラッシュを修正しました。これにより [#8325](https://github.com/ClickHouse/ClickHouse/issues/8325) および [#8341](https://github.com/ClickHouse/ClickHouse/pull/8341) が解決されました ([dinosaur](https://github.com/769344359)) +* `localhost` が許可ホストかどうかのチェック処理を修正。この PR では、[#8241](https://github.com/ClickHouse/ClickHouse/pull/8241) で提供された解決策を修正します。[#8342](https://github.com/ClickHouse/ClickHouse/pull/8342)([Vitaly Baranov](https://github.com/vitlibar)) +* 長い文字列引数に対する `argMin` および `argMax` 関数で、結果が `runningAccumulate` 関数で使用される場合にまれに発生するクラッシュを修正しました。これにより [#8325](https://github.com/ClickHouse/ClickHouse/issues/8325) および [#8341](https://github.com/ClickHouse/ClickHouse/pull/8341) が解決されました ([dinosaur](https://github.com/769344359)) * `Buffer` エンジンを使用するテーブルにおけるメモリのオーバーコミットを修正。 [#8345](https://github.com/ClickHouse/ClickHouse/pull/8345) ([Azat Khuzhin](https://github.com/azat)) -* 引数の1つとして `NULL` を受け取り、NULL 以外を返すことができる関数における潜在的なバグを修正しました。 [#8196](https://github.com/ClickHouse/ClickHouse/pull/8196) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 引数の1つとして `NULL` を受け取り、NULL 以外の値を返す可能性がある関数における潜在的なバグを修正しました。 [#8196](https://github.com/ClickHouse/ClickHouse/pull/8196) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `MergeTree` テーブルエンジンのバックグラウンド処理のためのスレッドプールにおけるメトリクス計算を改善。 [#8194](https://github.com/ClickHouse/ClickHouse/pull/8194) ([Vladimir Chebotarev](https://github.com/excitoon)) -* 行レベルのテーブルフィルタがある場合の `WHERE` 句内での `IN` 関数の動作を修正。これにより [#6687](https://github.com/ClickHouse/ClickHouse/issues/6687) [#8357](https://github.com/ClickHouse/ClickHouse/pull/8357) を修正 ([Ivan](https://github.com/abyss7)) -* 設定値として指定された整数値が最後まで完全にパースされなかった場合、例外がスローされるようになりました。 [#7678](https://github.com/ClickHouse/ClickHouse/pull/7678) ([Mikhail Korotov](https://github.com/millb)) -* 2つを超えるローカルシャードを持つ分散テーブルへのクエリで集約関数を使用した際に例外が発生する問題を修正。 [#8164](https://github.com/ClickHouse/ClickHouse/pull/8164) ([小路](https://github.com/nicelulu)) +* 行レベルのテーブルフィルタがある場合の `WHERE` 句内での `IN` 関数の動作を修正。これにより [#6687](https://github.com/ClickHouse/ClickHouse/issues/6687) [#8357](https://github.com/ClickHouse/ClickHouse/pull/8357) が解決されました ([Ivan](https://github.com/abyss7)) +* 設定値として指定された整数値を全てパースできなかった場合、例外がスローされるようになりました。 [#7678](https://github.com/ClickHouse/ClickHouse/pull/7678) ([Mikhail Korotov](https://github.com/millb)) +* ローカルシャードが 2 つを超える分散テーブルへのクエリで集約関数を使用した際に例外が発生する問題を修正。 [#8164](https://github.com/ClickHouse/ClickHouse/pull/8164) ([小路](https://github.com/nicelulu)) * Bloom filter が長さ 0 の配列も処理できるようになり、冗長な計算を行わなくなりました。 [#8242](https://github.com/ClickHouse/ClickHouse/pull/8242) ([achimbab](https://github.com/achimbab)) -* クライアントホストが許可されているかを確認する処理を修正し、`users.xml` で指定された `host_regexp` とクライアントホストを照合するようにしました。 [#8241](https://github.com/ClickHouse/ClickHouse/pull/8241) ([Vitaly Baranov](https://github.com/vitlibar)) -* 複数の `JOIN ON` 句で誤検知を引き起こしていた列の曖昧さチェックを緩和しました。 [#8385](https://github.com/ClickHouse/ClickHouse/pull/8385) ([Artem Zuikov](https://github.com/4ertus2)) -* `String` データ型の値(`UTF-8` 検証が必要)を含むデータを `JSON` または `XML` 形式で送信または書き込めない場合、あるいは Brotli アルゴリズムで結果データを圧縮する場合やその他の稀なケースにサーバーがクラッシュ(`std::terminate`)する可能性があった不具合を修正しました。これにより [#7603](https://github.com/ClickHouse/ClickHouse/issues/7603) [#8384](https://github.com/ClickHouse/ClickHouse/pull/8384) が修正されました([alexey-milovidov](https://github.com/alexey-milovidov)) -* CI によって検出された `StorageDistributedDirectoryMonitor` のレースコンディションを修正。これにより [#8364](https://github.com/ClickHouse/ClickHouse/issues/8364) を解決。[#8383](https://github.com/ClickHouse/ClickHouse/pull/8383)([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* `*MergeTree` テーブルエンジンファミリーにおけるバックグラウンドでのマージ処理が、ストレージポリシーのボリュームの順序をこれまでより正確に保持するようになりました。 [#8549](https://github.com/ClickHouse/ClickHouse/pull/8549) ([Vladimir Chebotarev](https://github.com/excitoon)) +* クライアントホストが許可されているかを確認するロジックを修正し、クライアントホストを `users.xml` で指定された `host_regexp` と照合するようにしました。 [#8241](https://github.com/ClickHouse/ClickHouse/pull/8241) ([Vitaly Baranov](https://github.com/vitlibar)) +* 複数の `JOIN ON` 句で誤検知を引き起こしていたカラムの曖昧さチェックを緩和しました。 [#8385](https://github.com/ClickHouse/ClickHouse/pull/8385) ([Artem Zuikov](https://github.com/4ertus2)) +* `String` データ型の値(`UTF-8` 検証が必要)を含むデータを `JSON` または `XML` 形式で送信または書き込みできない場合、あるいは Brotli アルゴリズムで結果データを圧縮する際やその他のまれなケースにサーバーがクラッシュ(`std::terminate`)する可能性があった不具合を修正しました。これにより [#7603](https://github.com/ClickHouse/ClickHouse/issues/7603) [#8384](https://github.com/ClickHouse/ClickHouse/pull/8384) が修正されました([alexey-milovidov](https://github.com/alexey-milovidov)) +* CI によって検出された `StorageDistributedDirectoryMonitor` のデータレースを修正。これにより [#8364](https://github.com/ClickHouse/ClickHouse/issues/8364) を解決。[#8383](https://github.com/ClickHouse/ClickHouse/pull/8383)([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* `*MergeTree` テーブルエンジンファミリーにおけるバックグラウンドでのマージ処理が、ストレージポリシーで定義されたボリューム順序をこれまでより正確に保持するようになりました。 [#8549](https://github.com/ClickHouse/ClickHouse/pull/8549) ([Vladimir Chebotarev](https://github.com/excitoon)) * テーブルエンジン `Kafka` は `Native` フォーマットで正しく動作するようになりました。これにより [#6731](https://github.com/ClickHouse/ClickHouse/issues/6731) [#7337](https://github.com/ClickHouse/ClickHouse/issues/7337) [#8003](https://github.com/ClickHouse/ClickHouse/issues/8003) が修正されました。 [#8016](https://github.com/ClickHouse/ClickHouse/pull/8016) ([filimonov](https://github.com/filimonov)) -* ヘッダー付きの固定フォーマット(`CSVWithNames` など)で、テーブルエンジン `Kafka` に対して EOF に関する例外をスローしていた問題を修正しました。[#8016](https://github.com/ClickHouse/ClickHouse/pull/8016) ([filimonov](https://github.com/filimonov)) +* ヘッダー付きフォーマット(`CSVWithNames` など)で、テーブルエンジン `Kafka` に対して EOF に関する例外をスローしていた問題を修正しました。[#8016](https://github.com/ClickHouse/ClickHouse/pull/8016) ([filimonov](https://github.com/filimonov)) * `IN` 句の右側でサブクエリからセットを作成する処理に存在したバグを修正しました。これにより、[#5767](https://github.com/ClickHouse/ClickHouse/issues/5767) および [#2542](https://github.com/ClickHouse/ClickHouse/issues/2542) が解決されました。 [#7755](https://github.com/ClickHouse/ClickHouse/pull/7755) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) * ストレージ `File` からの読み取り時に発生する可能性のあるクラッシュを修正。 [#7756](https://github.com/ClickHouse/ClickHouse/pull/7756) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* `list` 型カラムを含む `Parquet` 形式ファイルの読み込みを修正しました。 [#8334](https://github.com/ClickHouse/ClickHouse/pull/8334) ([maxulan](https://github.com/maxulan)) -* `max_parallel_replicas > 1` の場合に、サンプリングキーに依存した `PREWHERE` 条件を含む分散クエリで発生する `Not found column` エラーを修正。 [#7913](https://github.com/ClickHouse/ClickHouse/pull/7913) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* テーブルのエイリアスに依存する `PREWHERE` 句を使用しているクエリで、主キー条件によって結果セットが空になった場合に発生していた `Not found column` エラーを修正しました。 [#7911](https://github.com/ClickHouse/ClickHouse/pull/7911) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* `Nullable` 型の引数を取る場合の関数 `rand` と `randConstant` の戻り値の型を修正しました。これらの関数は常に `UInt32` を返し、`Nullable(UInt32)` を返すことはなくなりました。 [#8204](https://github.com/ClickHouse/ClickHouse/pull/8204) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* `list` 型のカラムを含む `Parquet` 形式ファイルの読み込みを修正しました。 [#8334](https://github.com/ClickHouse/ClickHouse/pull/8334) ([maxulan](https://github.com/maxulan)) +* `max_parallel_replicas > 1` の場合に、サンプリングキーに依存する `PREWHERE` 条件を含む分散クエリで発生する `Not found column` エラーを修正。 [#7913](https://github.com/ClickHouse/ClickHouse/pull/7913) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* テーブルのエイリアスに依存する `PREWHERE` 条件を使用しているクエリで、主キー条件によって結果セットが空になった場合に発生していた `Not found column` エラーを修正。 [#7911](https://github.com/ClickHouse/ClickHouse/pull/7911) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* `Nullable` 型の引数を取る場合の `rand` 関数と `randConstant` 関数の戻り値の型を修正しました。これらの関数は常に `UInt32` を返し、`Nullable(UInt32)` を返すことはなくなりました。 [#8204](https://github.com/ClickHouse/ClickHouse/pull/8204) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * `WITH FILL` 式に対する述語プッシュダウンを無効化しました。これにより [#7784](https://github.com/ClickHouse/ClickHouse/issues/7784) が修正されました。 [#7789](https://github.com/ClickHouse/ClickHouse/pull/7789) ([Winter Zhang](https://github.com/zhang2014)) * `FINAL` 句使用時に `SummingMergeTree` テーブルで `count()` の結果が誤っていた問題を修正。 [#3280](https://github.com/ClickHouse/ClickHouse/issues/3280) [#7786](https://github.com/ClickHouse/ClickHouse/pull/7786) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) * リモートサーバーからの定数関数で誤った結果が返される可能性があった問題を修正しました。これは、`version()` や `uptime()` など、サーバーごとに異なる定数値を返す関数を含むクエリで発生していました。この修正により [#7666](https://github.com/ClickHouse/ClickHouse/issues/7666) が解決されました。[#7689](https://github.com/ClickHouse/ClickHouse/pull/7689)([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* 誤った結果を引き起こしていた push-down predicate 最適化の複雑なバグを修正しました。これにより、push-down predicate 最適化に関する多くの問題が解決されます。 [#8503](https://github.com/ClickHouse/ClickHouse/pull/8503) ([Winter Zhang](https://github.com/zhang2014)) +* 誤った結果を招いていた push-down predicate 最適化の複雑なバグを修正しました。これにより、push-down predicate 最適化に関する多くの問題が解決されます。 [#8503](https://github.com/ClickHouse/ClickHouse/pull/8503) ([Winter Zhang](https://github.com/zhang2014)) * `CREATE TABLE .. AS dictionary` クエリで発生するクラッシュを修正。 [#8508](https://github.com/ClickHouse/ClickHouse/pull/8508) ([Azat Khuzhin](https://github.com/azat)) -* `.g4` ファイル内の ClickHouse 構文をいくつか改善しました。 [#8294](https://github.com/ClickHouse/ClickHouse/pull/8294) ([taiyang-li](https://github.com/taiyang-li)) -* `Join` エンジンを使用するテーブルとの `JOIN` においてクラッシュを引き起こしていたバグを修正しました。これにより、[#7556](https://github.com/ClickHouse/ClickHouse/issues/7556) [#8254](https://github.com/ClickHouse/ClickHouse/issues/8254) [#7915](https://github.com/ClickHouse/ClickHouse/issues/7915) [#8100](https://github.com/ClickHouse/ClickHouse/issues/8100) が修正されます。 [#8298](https://github.com/ClickHouse/ClickHouse/pull/8298) ([Artem Zuikov](https://github.com/4ertus2)) +* `.g4` ファイル内の ClickHouse の構文定義をいくつか改善しました。 [#8294](https://github.com/ClickHouse/ClickHouse/pull/8294) ([taiyang-li](https://github.com/taiyang-li)) +* `Join` エンジンを使用するテーブルとの `JOIN` でクラッシュを引き起こしていたバグを修正しました。これにより [#7556](https://github.com/ClickHouse/ClickHouse/issues/7556) [#8254](https://github.com/ClickHouse/ClickHouse/issues/8254) [#7915](https://github.com/ClickHouse/ClickHouse/issues/7915) [#8100](https://github.com/ClickHouse/ClickHouse/issues/8100) が修正されます。 [#8298](https://github.com/ClickHouse/ClickHouse/pull/8298) ([Artem Zuikov](https://github.com/4ertus2)) * `CREATE DATABASE` 時に発生していた不要な辞書の再読み込みを修正。 [#7916](https://github.com/ClickHouse/ClickHouse/pull/7916) ([Azat Khuzhin](https://github.com/azat)) * `StorageFile` および `StorageHDFS` からの読み取り時のストリーム数の上限を設定しました。[#7650](https://github.com/ClickHouse/ClickHouse/issues/7650) を修正。 [#7981](https://github.com/ClickHouse/ClickHouse/pull/7981) ([alesapin](https://github.com/alesapin)) -* `ALTER ... MODIFY ... CODEC` クエリで、ユーザーがデフォルト式と CODEC の両方を指定した場合に発生するバグを修正。Issue [8593](https://github.com/ClickHouse/ClickHouse/issues/8593) を修正。 [#8614](https://github.com/ClickHouse/ClickHouse/pull/8614) ([alesapin](https://github.com/alesapin)) +* `ALTER ... MODIFY ... CODEC` クエリで、ユーザーがデフォルト式と CODEC の両方を指定した場合に発生するバグを修正。問題 [#8593](https://github.com/ClickHouse/ClickHouse/issues/8593) を修正。 [#8614](https://github.com/ClickHouse/ClickHouse/pull/8614) ([alesapin](https://github.com/alesapin)) * `SimpleAggregateFunction(LowCardinality)` 型の列のバックグラウンドマージ時に発生するエラーを修正。 [#8613](https://github.com/ClickHouse/ClickHouse/pull/8613) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * 関数 `toDateTime64` の型チェックを修正しました。 [#8375](https://github.com/ClickHouse/ClickHouse/pull/8375) ([Vasily Nemkov](https://github.com/Enmk)) -* Join エンジンを使用し、未サポートの `join_use_nulls` 設定を有効にした状態での `LEFT` または `FULL JOIN` でも、サーバーがクラッシュしなくなりました。 [#8479](https://github.com/ClickHouse/ClickHouse/pull/8479) ([Artem Zuikov](https://github.com/4ertus2)) -* `DROP DICTIONARY IF EXISTS db.dict` クエリは、`db` が存在しない場合でも例外をスローしなくなりました。 [#8185](https://github.com/ClickHouse/ClickHouse/pull/8185) ([Vitaly Baranov](https://github.com/vitlibar)) -* テーブル関数(`file`、`mysql`、`remote`)で、削除済みの `IStorage` オブジェクトへの参照を使用していたことに起因してクラッシュが発生し得る問題を修正。テーブル関数への挿入時に指定されたカラムのパースが誤っていた問題を修正。 [#7762](https://github.com/ClickHouse/ClickHouse/pull/7762) ([tavplubix](https://github.com/tavplubix)) -* `clickhouse-server` を起動する前に、ネットワークが起動していることを確認します。これにより [#7507](https://github.com/ClickHouse/ClickHouse/issues/7507) が修正されます。 [#8570](https://github.com/ClickHouse/ClickHouse/pull/8570) ([Zhichang Yu](https://github.com/yuzhichang)) +* 未サポートの `join_use_nulls` 設定を使用した `Join` エンジンの `LEFT` または `FULL JOIN` でも、サーバーがクラッシュしなくなりました。 [#8479](https://github.com/ClickHouse/ClickHouse/pull/8479) ([Artem Zuikov](https://github.com/4ertus2)) +* `DROP DICTIONARY IF EXISTS db.dict` クエリでは、`db` が存在しない場合でも例外がスローされなくなりました。 [#8185](https://github.com/ClickHouse/ClickHouse/pull/8185) ([Vitaly Baranov](https://github.com/vitlibar)) +* テーブル関数(`file`、`mysql`、`remote`)で、削除済みの `IStorage` オブジェクトへの参照を使用したことによりクラッシュが発生し得る問題を修正。テーブル関数への挿入時に指定されたカラムの解析が誤っていた問題を修正。 [#7762](https://github.com/ClickHouse/ClickHouse/pull/7762) ([tavplubix](https://github.com/tavplubix)) +* `clickhouse-server` を起動する前に、ネットワークが有効になっていることを確認します。これにより [#7507](https://github.com/ClickHouse/ClickHouse/issues/7507) が修正されます。 [#8570](https://github.com/ClickHouse/ClickHouse/pull/8570) ([Zhichang Yu](https://github.com/yuzhichang)) * セキュア接続時のタイムアウト処理を修正し、クエリが無期限にハングしないようにしました。これにより [#8126](https://github.com/ClickHouse/ClickHouse/issues/8126) が解決されました。[#8128](https://github.com/ClickHouse/ClickHouse/pull/8128)([alexey-milovidov](https://github.com/alexey-milovidov)) -* `clickhouse-copier` の同時ワーカー間で発生していた不要な競合を修正。 [#7816](https://github.com/ClickHouse/ClickHouse/pull/7816) ([Ding Xiang Fei](https://github.com/dingxiangfei2009)) -* `mutations` は、対応する `mutation version` が現在の `mutation version` より大きい場合でも、アタッチされたパーツをスキップしないようになりました。 [#7812](https://github.com/ClickHouse/ClickHouse/pull/7812) ([Zhichang Yu](https://github.com/yuzhichang)) [#8250](https://github.com/ClickHouse/ClickHouse/pull/8250) ([alesapin](https://github.com/alesapin)) +* `clickhouse-copier` の同時に動作するワーカー間で発生していた不要な競合を修正。 [#7816](https://github.com/ClickHouse/ClickHouse/pull/7816) ([Ding Xiang Fei](https://github.com/dingxiangfei2009)) +* `mutations` は、`mutation version` が現在の `mutation version` より大きいアタッチ済みパーツであってもスキップしないようになりました。 [#7812](https://github.com/ClickHouse/ClickHouse/pull/7812) ([Zhichang Yu](https://github.com/yuzhichang)) [#8250](https://github.com/ClickHouse/ClickHouse/pull/8250) ([alesapin](https://github.com/alesapin)) * 別のディスクへの移動後およびサーバー再起動後に発生する `*MergeTree` データパーツの冗長なコピーを無視するようにしました。 [#7810](https://github.com/ClickHouse/ClickHouse/pull/7810) ([Vladimir Chebotarev](https://github.com/excitoon)) * `LowCardinality`を含む`JOIN`キーを使用した`FULL JOIN`時のクラッシュを修正。 [#8252](https://github.com/ClickHouse/ClickHouse/pull/8252) ([Artem Zuikov](https://github.com/4ertus2)) -* `INSERT INTO tbl (x, y, x)` のように、`INSERT` クエリ内で同じカラム名を複数回使用することは禁止されました。これにより [#5465](https://github.com/ClickHouse/ClickHouse/issues/5465)、[#7681](https://github.com/ClickHouse/ClickHouse/issues/7681) が修正されました。[#7685](https://github.com/ClickHouse/ClickHouse/pull/7685)([alesapin](https://github.com/alesapin)) -* 不明な CPU 向けに物理 CPU コア数を検出するためのフォールバックを追加しました(論理 CPU コア数を使用)。これにより [#5239](https://github.com/ClickHouse/ClickHouse/issues/5239) を修正しました。[#7726](https://github.com/ClickHouse/ClickHouse/pull/7726)([alexey-milovidov](https://github.com/alexey-milovidov)) -* マテリアライズド列およびエイリアス列で発生する `There's no column` エラーを修正。 [#8210](https://github.com/ClickHouse/ClickHouse/pull/8210) ([Artem Zuikov](https://github.com/4ertus2)) +* `INSERT INTO tbl (x, y, x)` のように、`INSERT` クエリ内で同じカラム名を複数回指定することはできなくなりました。これにより [#5465](https://github.com/ClickHouse/ClickHouse/issues/5465)、[#7681](https://github.com/ClickHouse/ClickHouse/issues/7681) が修正されました。[#7685](https://github.com/ClickHouse/ClickHouse/pull/7685)([alesapin](https://github.com/alesapin)) +* 不明な CPU で物理 CPU コア数を検出する際のフォールバックとして、論理 CPU コア数を使用するようにしました。これにより [#5239](https://github.com/ClickHouse/ClickHouse/issues/5239) を修正しました。[#7726](https://github.com/ClickHouse/ClickHouse/pull/7726)([alexey-milovidov](https://github.com/alexey-milovidov)) +* マテリアライズドカラムおよびエイリアスカラムで発生する `There's no column` エラーを修正。 [#8210](https://github.com/ClickHouse/ClickHouse/pull/8210) ([Artem Zuikov](https://github.com/4ertus2)) * `TABLE` または `DICTIONARY` 修飾子なしで `EXISTS` クエリが使用された場合(`EXISTS t` のようなもの)に発生していたサーバークラッシュを修正しました。これにより、[#8172](https://github.com/ClickHouse/ClickHouse/issues/8172) が修正されます。この不具合はバージョン 19.17 から発生していました。[#8213](https://github.com/ClickHouse/ClickHouse/pull/8213) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `SimpleAggregateFunction` 列使用時にまれに `"Sizes of columns does not match"` エラーが発生するバグを修正。 [#7790](https://github.com/ClickHouse/ClickHouse/pull/7790) ([Boris Granveaud](https://github.com/bgranvea)) * `allow_databases` が空のユーザーにすべてのデータベースへのアクセス権が与えられていたバグを修正(`allow_dictionaries` も同様)。 [#7793](https://github.com/ClickHouse/ClickHouse/pull/7793) ([DeifyTheGod](https://github.com/DeifyTheGod)) -* サーバーがクライアントとの接続をすでに切断していた場合に発生するクライアントクラッシュを修正。 [#8071](https://github.com/ClickHouse/ClickHouse/pull/8071) ([Azat Khuzhin](https://github.com/azat)) -* プライマリキーのプレフィックスと、それに続く非プライマリキー列を組み合わせてソートする場合の `ORDER BY` の動作を修正。 [#7759](https://github.com/ClickHouse/ClickHouse/pull/7759) ([Anton Popov](https://github.com/CurtizJ)) -* テーブル内に修飾された列が存在するかどうかを確認します。これにより [#6836](https://github.com/ClickHouse/ClickHouse/issues/6836) が修正されます。[#7758](https://github.com/ClickHouse/ClickHouse/pull/7758) ([Artem Zuikov](https://github.com/4ertus2)) -* マージ完了直後に実行された `ALTER MOVE` が、指定したパーツではなくそのスーパー パーツを移動してしまう問題を修正。 [#8103](https://github.com/ClickHouse/ClickHouse/issues/8103) を修正。 [#8104](https://github.com/ClickHouse/ClickHouse/pull/8104)([Vladimir Chebotarev](https://github.com/excitoon)) +* サーバー側がクライアントとの接続をすでに切断している場合に発生するクライアントのクラッシュを修正。 [#8071](https://github.com/ClickHouse/ClickHouse/pull/8071) ([Azat Khuzhin](https://github.com/azat)) +* プライマリキーのプレフィックスに続けて非プライマリキー列でソートする場合の `ORDER BY` の動作を修正。 [#7759](https://github.com/ClickHouse/ClickHouse/pull/7759) ([Anton Popov](https://github.com/CurtizJ)) +* テーブル内に修飾付きカラムが存在するかどうかをチェックするようにしました。これにより [#6836](https://github.com/ClickHouse/ClickHouse/issues/6836) が修正されます。[#7758](https://github.com/ClickHouse/ClickHouse/pull/7758) ([Artem Zuikov](https://github.com/4ertus2)) +* マージ完了直後に実行された `ALTER MOVE` が、指定したパーツではなくそのスーパーパーツを移動してしまう問題を修正。 [#8103](https://github.com/ClickHouse/ClickHouse/issues/8103) を修正。 [#8104](https://github.com/ClickHouse/ClickHouse/pull/8104)([Vladimir Chebotarev](https://github.com/excitoon)) * 列数の異なる `UNION` を使用した場合にサーバーがクラッシュする可能性のあった問題を修正。 [#7279](https://github.com/ClickHouse/ClickHouse/issues/7279) を修正。 [#7929](https://github.com/ClickHouse/ClickHouse/pull/7929)([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* 負のサイズ指定時の `substr` 関数の結果部分文字列のサイズを修正しました。 [#8589](https://github.com/ClickHouse/ClickHouse/pull/8589) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* これにより、バックグラウンドスレッドプール内の空きスレッドが十分にない場合、サーバーは `MergeTree` のパーツのミューテーションを実行しなくなりました。 [#8588](https://github.com/ClickHouse/ClickHouse/pull/8588) ([tavplubix](https://github.com/tavplubix)) -* `UNION ALL` AST のフォーマットに関する軽微な誤記を修正。 [#7999](https://github.com/ClickHouse/ClickHouse/pull/7999) ([litao91](https://github.com/litao91)) +* 負の `size` 引数指定時における `substr` 関数の結果部分文字列のサイズを修正しました。 [#8589](https://github.com/ClickHouse/ClickHouse/pull/8589) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* バックグラウンドスレッドプールの空きスレッドが不足している場合、サーバーは `MergeTree` のパーツミューテーションを実行しなくなりました。 [#8588](https://github.com/ClickHouse/ClickHouse/pull/8588) ([tavplubix](https://github.com/tavplubix)) +* `UNION ALL` AST のフォーマットでの軽微な誤記を修正。 [#7999](https://github.com/ClickHouse/ClickHouse/pull/7999) ([litao91](https://github.com/litao91)) * 負の数に対する誤ったブルームフィルタの結果を修正しました。これにより [#8317](https://github.com/ClickHouse/ClickHouse/issues/8317) を解決しました。 [#8566](https://github.com/ClickHouse/ClickHouse/pull/8566) ([Winter Zhang](https://github.com/zhang2014)) -* `decompress` におけるバッファオーバーフローの可能性を修正しました。悪意のあるユーザーが、バッファ範囲外の読み取りを引き起こすよう細工された圧縮データを渡すことができてしまう不具合がありました。この問題は Yandex の情報セキュリティチームの Eldar Zaitov 氏によって発見されました。 [#8404](https://github.com/ClickHouse/ClickHouse/pull/8404) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* `decompress` におけるバッファオーバーフローが発生しうる問題を修正しました。悪意のあるユーザーが、バッファ範囲外の読み取りを引き起こすよう細工された圧縮データを渡すことで悪用可能な不具合がありました。この問題は Yandex の情報セキュリティチームの Eldar Zaitov 氏によって発見されました。 [#8404](https://github.com/ClickHouse/ClickHouse/pull/8404) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `arrayIntersect` において、整数オーバーフローにより誤った結果が返される問題を修正。 [#7777](https://github.com/ClickHouse/ClickHouse/pull/7777) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* `OPTIMIZE TABLE` クエリは、オフラインのレプリカが操作を実行するのを待機しなくなりました。 [#8314](https://github.com/ClickHouse/ClickHouse/pull/8314) ([javi santana](https://github.com/javisantana)) +* `OPTIMIZE TABLE` クエリは、オフライン状態のレプリカがこの操作を実行するのを待つことはなくなりました。 [#8314](https://github.com/ClickHouse/ClickHouse/pull/8314) ([javi santana](https://github.com/javisantana)) * `Replicated*MergeTree` テーブルの `ALTER TTL` パーサーを修正。 [#8318](https://github.com/ClickHouse/ClickHouse/pull/8318) ([Vladimir Chebotarev](https://github.com/excitoon)) * サーバーとクライアント間の通信を修正し、クエリ失敗後でもサーバーが一時テーブルの情報を読み取れるようにしました。 [#8084](https://github.com/ClickHouse/ClickHouse/pull/8084) ([Azat Khuzhin](https://github.com/azat)) * 集約ビットマップとスカラーのビットマップの積集合を求める際に発生する `bitmapAnd` 関数のエラーを修正。 [#8082](https://github.com/ClickHouse/ClickHouse/pull/8082) ([Yue Huang](https://github.com/moon03432)) -* ZooKeeper Programmer's Guide に従って `ZXid` の定義を見直し、`clickhouse-cluster-copier` のバグを修正しました。 [#8088](https://github.com/ClickHouse/ClickHouse/pull/8088) ([Ding Xiang Fei](https://github.com/dingxiangfei2009)) +* ZooKeeper Programmer's Guide に従って `ZXid` の定義を調整し、それにより `clickhouse-cluster-copier` のバグを修正しました。 [#8088](https://github.com/ClickHouse/ClickHouse/pull/8088) ([Ding Xiang Fei](https://github.com/dingxiangfei2009)) * `odbc` テーブル関数が `external_table_functions_use_nulls` 設定に従うようになりました。 [#7506](https://github.com/ClickHouse/ClickHouse/pull/7506) ([Vasily Nemkov](https://github.com/Enmk)) * まれに発生するデータレースを引き起こしていたバグを修正しました。 [#8143](https://github.com/ClickHouse/ClickHouse/pull/8143) ([Alexander Kazakov](https://github.com/Akazz)) * `SYSTEM RELOAD DICTIONARY` は、`update_field` を無視して辞書を完全に再読み込みするようになりました。これにより [#7440](https://github.com/ClickHouse/ClickHouse/issues/7440) が修正されました。 [#8037](https://github.com/ClickHouse/ClickHouse/pull/8037)([Vitaly Baranov](https://github.com/vitlibar)) @@ -3341,33 +3332,31 @@ v20.4.3.16-stable からの変更はありません。 * `Values` フォーマットにおける `Float*` のパース処理を修正しました。これにより [#7817](https://github.com/ClickHouse/ClickHouse/issues/7817) が解決されました。 [#7870](https://github.com/ClickHouse/ClickHouse/pull/7870) ([tavplubix](https://github.com/tavplubix)) * `*MergeTree` テーブルエンジンファミリーの一部のバックグラウンド処理で領域を予約できない場合に発生していたクラッシュを修正しました。 [#7873](https://github.com/ClickHouse/ClickHouse/pull/7873) ([Vladimir Chebotarev](https://github.com/excitoon)) * `SimpleAggregateFunction(LowCardinality)` カラムを含むテーブルでマージ操作がクラッシュする問題を修正しました。これにより [#8515](https://github.com/ClickHouse/ClickHouse/issues/8515) が解決されています。[#8522](https://github.com/ClickHouse/ClickHouse/pull/8522)([Azat Khuzhin](https://github.com/azat)) -* ICU のすべてのロケールに対するサポートを復元し、定数式に照合順序を適用できるようにしました。また、`system.collations` テーブルに言語名を追加しました。 [#8051](https://github.com/ClickHouse/ClickHouse/pull/8051) ([alesapin](https://github.com/alesapin)) +* ICU の全ロケール対応を復元し、定数式に対して照合順序を適用できるようにしました。また、`system.collations` テーブルに言語名を追加しました。 [#8051](https://github.com/ClickHouse/ClickHouse/pull/8051) ([alesapin](https://github.com/alesapin)) * 最小有効期間がゼロの外部辞書(`LIFETIME(MIN 0 MAX N)`、`LIFETIME(N)`)がバックグラウンドで更新されない問題を修正。 [#7983](https://github.com/ClickHouse/ClickHouse/pull/7983) ([alesapin](https://github.com/alesapin)) -* ClickHouse をソースとする external dictionary がクエリにサブクエリを含む場合に発生するクラッシュを修正。 [#8351](https://github.com/ClickHouse/ClickHouse/pull/8351) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* ClickHouse をソースとする外部辞書で、クエリにサブクエリが含まれている場合に発生するクラッシュを修正。 [#8351](https://github.com/ClickHouse/ClickHouse/pull/8351) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * エンジン `URL` を使用するテーブルでのファイル拡張子の誤った解析を修正しました。これにより [#8157](https://github.com/ClickHouse/ClickHouse/issues/8157) が解決されます。 [#8419](https://github.com/ClickHouse/ClickHouse/pull/8419) ([Andrey Bodrov](https://github.com/apbodrov)) * キーを持たない `*MergeTree` テーブルに対する `CHECK TABLE` クエリを修正。 [#7543](https://github.com/ClickHouse/ClickHouse/issues/7543) の不具合を修正。 [#7979](https://github.com/ClickHouse/ClickHouse/pull/7979) ([alesapin](https://github.com/alesapin)) * `Float64` の MySQL 型への変換処理を修正しました。 [#8079](https://github.com/ClickHouse/ClickHouse/pull/8079) ([Yuriy Baranov](https://github.com/yurriy)) -* テーブルがサーバークラッシュにより完全には削除されなかった場合、サーバーはそのテーブルの復元とロードを試みます。 [#8176](https://github.com/ClickHouse/ClickHouse/pull/8176) ([tavplubix](https://github.com/tavplubix)) +* テーブルがサーバークラッシュにより完全に削除されていなかった場合、サーバーはそのテーブルの復元と再読み込みを試みます。 [#8176](https://github.com/ClickHouse/ClickHouse/pull/8176) ([tavplubix](https://github.com/tavplubix)) * 存在しないファイルに対して挿入を行う際に、テーブル関数 `file` がクラッシュする問題を修正しました。この場合はファイルを作成してから挿入を処理するようになりました。 [#8177](https://github.com/ClickHouse/ClickHouse/pull/8177) ([Olga Khvostikova](https://github.com/stavrolia)) -* `trace_log` が有効になっている場合に発生し得るまれなデッドロックを修正しました。 [#7838](https://github.com/ClickHouse/ClickHouse/pull/7838) ([filimonov](https://github.com/filimonov)) -* DDL クエリから作成された `RangeHashed` 外部ディクショナリで、`Date` 以外の型も扱えるようにしました。 [7899](https://github.com/ClickHouse/ClickHouse/issues/7899) を修正。 [#8275](https://github.com/ClickHouse/ClickHouse/pull/8275)([alesapin](https://github.com/alesapin)) -* `now64()` が別の関数の結果を引数として呼び出された場合に発生するクラッシュを修正。 [#8270](https://github.com/ClickHouse/ClickHouse/pull/8270) ([Vasily Nemkov](https://github.com/Enmk)) +* `trace_log` が有効になっている場合にまれに発生しうるデッドロックを修正しました。 [#7838](https://github.com/ClickHouse/ClickHouse/pull/7838) ([filimonov](https://github.com/filimonov)) +* DDL クエリから作成された `RangeHashed` 外部ディクショナリで、`Date` 以外の型も扱えるようにしました。 Fixes [7899](https://github.com/ClickHouse/ClickHouse/issues/7899). [#8275](https://github.com/ClickHouse/ClickHouse/pull/8275) ([alesapin](https://github.com/alesapin)) +* `now64()` が別の関数の結果を引数にして呼び出された場合に発生するクラッシュを修正。 [#8270](https://github.com/ClickHouse/ClickHouse/pull/8270) ([Vasily Nemkov](https://github.com/Enmk)) * MySQL ワイヤプロトコル経由の接続におけるクライアント IP アドレス検出のバグを修正しました。 [#7743](https://github.com/ClickHouse/ClickHouse/pull/7743) ([Dmitry Muzyka](https://github.com/dmitriy-myz)) * `arraySplit` 関数における空配列の処理を修正しました。これにより [#7708](https://github.com/ClickHouse/ClickHouse/issues/7708) が解決されました。[#7747](https://github.com/ClickHouse/ClickHouse/pull/7747) ([hcz](https://github.com/hczhcz)) * 別の実行中の `clickhouse-server` の `pid-file` が削除される可能性があった問題を修正しました。 [#8487](https://github.com/ClickHouse/ClickHouse/pull/8487) ([Weiqing Xu](https://github.com/weiqxu)) * `invalidate_query` を持つディクショナリのリロード処理を修正しました。これにより、以前の更新試行で更新が停止し、いくつかの例外が発生していました。 [#8029](https://github.com/ClickHouse/ClickHouse/pull/8029) ([alesapin](https://github.com/alesapin)) -* 関数 `arrayReduce` における二重解放("double free")を引き起こす可能性のある不具合と、メモリリークを引き起こす可能性のある集約関数コンビネータ `Resample` の不具合を修正しました。集約関数 `aggThrow` を追加しました。この関数はテスト用途で使用できます。 [#8446](https://github.com/ClickHouse/ClickHouse/pull/8446) ([alexey-milovidov](https://github.com/alexey-milovidov)) - - +* 関数 `arrayReduce` における "double free" を引き起こす可能性のある不具合と、メモリリークを引き起こす可能性のある集約関数コンビネータ `Resample` の不具合を修正しました。集約関数 `aggThrow` を追加しました。この関数はテスト用途として使用できます。 [#8446](https://github.com/ClickHouse/ClickHouse/pull/8446) ([alexey-milovidov](https://github.com/alexey-milovidov)) #### 改善 {#improvement-22} * `S3` テーブルエンジン使用時のログ出力を改善しました。 [#8251](https://github.com/ClickHouse/ClickHouse/pull/8251) ([Grigory Pervakov](https://github.com/GrigoryPervakov)) -* `clickhouse-local` を引数なしで呼び出した場合にヘルプメッセージを出力するようにした。これにより [#5335](https://github.com/ClickHouse/ClickHouse/issues/5335) が修正された。 [#8230](https://github.com/ClickHouse/ClickHouse/pull/8230) ([Andrey Nagorny](https://github.com/Melancholic)) +* `clickhouse-local` を引数なしで呼び出した場合にヘルプメッセージを出力するようにしました。これにより [#5335](https://github.com/ClickHouse/ClickHouse/issues/5335) が修正されました。 [#8230](https://github.com/ClickHouse/ClickHouse/pull/8230) ([Andrey Nagorny](https://github.com/Melancholic)) * `ALTER UPDATE/DELETE` クエリの完了を同期的に待てるようにする設定 `mutations_sync` を追加しました。 [#8237](https://github.com/ClickHouse/ClickHouse/pull/8237) ([alesapin](https://github.com/alesapin)) * `config.xml` 内で、`format_schema_path` と同様の方法で相対パスの `user_files_path` を設定できるようにしました。 [#7632](https://github.com/ClickHouse/ClickHouse/pull/7632) ([hcz](https://github.com/hczhcz)) * `-OrZero` 接尾辞を持つ変換関数において、不正な型に対して例外をスローするように変更。 [#7880](https://github.com/ClickHouse/ClickHouse/pull/7880) ([Andrey Konyaev](https://github.com/akonyaev90)) -* 分散クエリでシャードにデータを送信する際のヘッダー形式を簡素化しました。 [#8044](https://github.com/ClickHouse/ClickHouse/pull/8044) ([Vitaly Baranov](https://github.com/vitlibar)) +* 分散クエリで分片にデータを送信する際のヘッダー形式を簡素化しました。 [#8044](https://github.com/ClickHouse/ClickHouse/pull/8044) ([Vitaly Baranov](https://github.com/vitlibar)) * `Live View` テーブルエンジンのリファクタリング。 [#8519](https://github.com/ClickHouse/ClickHouse/pull/8519) ([vzakaznikov](https://github.com/vzakaznikov)) * DDL クエリから作成された外部辞書に対して追加チェックを行うようにしました。 [#8127](https://github.com/ClickHouse/ClickHouse/pull/8127) ([alesapin](https://github.com/alesapin)) * `FINAL` と `SAMPLE` を同時に使用した場合(例: `select count() from table final sample 1/2`)に発生する `Column ... already exists` エラーを修正。[#5186](https://github.com/ClickHouse/ClickHouse/issues/5186) を解決。 [#7907](https://github.com/ClickHouse/ClickHouse/pull/7907) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) @@ -3375,41 +3364,39 @@ v20.4.3.16-stable からの変更はありません。 * `Kafka` テーブルを対象とするサブクエリで `MaterializedView` を使用できるようにしました。 [#8197](https://github.com/ClickHouse/ClickHouse/pull/8197) ([filimonov](https://github.com/filimonov)) * ディスク間でのバックグラウンド移動処理は、専用のスレッドプールで実行されるようになりました。 [#7670](https://github.com/ClickHouse/ClickHouse/pull/7670) ([Vladimir Chebotarev](https://github.com/excitoon)) * `SYSTEM RELOAD DICTIONARY` は同期的に実行されるようになりました。 [#8240](https://github.com/ClickHouse/ClickHouse/pull/8240) ([Vitaly Baranov](https://github.com/vitlibar)) -* スタックトレースは、仮想メモリアドレス(オブジェクトファイルがロードされた位置)ではなく、物理アドレス(オブジェクトファイル内のオフセット)を表示するようになりました。これにより、バイナリがポジションインディペンデントで ASLR が有効な場合でも `addr2line` を使用できるようになります。この変更により [#8360](https://github.com/ClickHouse/ClickHouse/issues/8360) が修正されました。[#8387](https://github.com/ClickHouse/ClickHouse/pull/8387)([alexey-milovidov](https://github.com/alexey-milovidov)) +* スタックトレースは、仮想メモリアドレス(オブジェクトファイルがロードされた位置)ではなく、物理アドレス(オブジェクトファイル内のオフセット)を表示するようになりました。これにより、バイナリが位置独立で ASLR が有効な場合でも `addr2line` を使用できるようになります。この変更により [#8360](https://github.com/ClickHouse/ClickHouse/issues/8360) が修正されました。 [#8387](https://github.com/ClickHouse/ClickHouse/pull/8387) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 行レベルセキュリティフィルタの新しい構文 `...
    ` に対応しました。 [#5779](https://github.com/ClickHouse/ClickHouse/issues/5779) を修正。 [#8381](https://github.com/ClickHouse/ClickHouse/pull/8381) ([Ivan](https://github.com/abyss7)) * `cityHash` 関数が `Decimal` 型および `UUID` 型でも動作するようになりました。これにより [#5184](https://github.com/ClickHouse/ClickHouse/issues/5184) が修正されました。 [#7693](https://github.com/ClickHouse/ClickHouse/pull/7693) ([Mikhail Korotov](https://github.com/millb)) -* アダプティブな粒度の実装により不要になったため、システムログから固定インデックス粒度(1024)を削除しました。 [#7698](https://github.com/ClickHouse/ClickHouse/pull/7698) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* アダプティブな粒度の実装により不要になったため、システムログから固定のインデックス粒度(1024)を削除しました。 [#7698](https://github.com/ClickHouse/ClickHouse/pull/7698) ([alexey-milovidov](https://github.com/alexey-milovidov)) * ClickHouse が SSL なしでコンパイルされている場合に、MySQL 互換サーバーを有効化しました。 [#7852](https://github.com/ClickHouse/ClickHouse/pull/7852) ([Yuriy Baranov](https://github.com/yurriy)) -* サーバー側で分散バッチのチェックサムを計算するようになり、バッチ内のデータが破損している場合に、より詳細なエラーが得られるようになりました。 [#7914](https://github.com/ClickHouse/ClickHouse/pull/7914) ([Azat Khuzhin](https://github.com/azat)) -* `MySQL` データベースエンジンで `DROP DATABASE`、`DETACH TABLE`、`DROP TABLE`、`ATTACH TABLE` をサポートしました。 [#8202](https://github.com/ClickHouse/ClickHouse/pull/8202) ([Winter Zhang](https://github.com/zhang2014)) +* サーバー側で分散バッチに対してチェックサムを計算するようになり、バッチ内のデータが破損している場合に、より詳細なエラーメッセージが得られるようになりました。 [#7914](https://github.com/ClickHouse/ClickHouse/pull/7914) ([Azat Khuzhin](https://github.com/azat)) +* `MySQL` データベースエンジン向けに `DROP DATABASE`、`DETACH TABLE`、`DROP TABLE`、`ATTACH TABLE` のサポートを追加しました。 [#8202](https://github.com/ClickHouse/ClickHouse/pull/8202) ([Winter Zhang](https://github.com/zhang2014)) * S3 テーブル関数およびテーブルエンジンに認証を追加しました。 [#7623](https://github.com/ClickHouse/ClickHouse/pull/7623) ([Vladimir Chebotarev](https://github.com/excitoon)) -* 未定義のディスク上にあるデータパーツが見落とされないようにするため、異なるディスク上に存在する `MergeTree` の余分なパーツを検査するチェックを追加しました。 [#8118](https://github.com/ClickHouse/ClickHouse/pull/8118) ([Vladimir Chebotarev](https://github.com/excitoon)) -* Mac クライアントおよびサーバーでの SSL サポートを有効化。 [#8297](https://github.com/ClickHouse/ClickHouse/pull/8297) ([Ivan](https://github.com/abyss7)) +* 未定義のディスク上のデータパーツを見落とさないよう、異なるディスクに存在する `MergeTree` の余分なパーツを検出するチェックを追加しました。 [#8118](https://github.com/ClickHouse/ClickHouse/pull/8118) ([Vladimir Chebotarev](https://github.com/excitoon)) +* Mac クライアントおよびサーバーでの SSL サポートを有効にしました。 [#8297](https://github.com/ClickHouse/ClickHouse/pull/8297) ([Ivan](https://github.com/abyss7)) * ClickHouse は、MySQL Federated サーバーとして動作できるようになりました([https://dev.mysql.com/doc/refman/5.7/en/federated-create-server.html](https://dev.mysql.com/doc/refman/5.7/en/federated-create-server.html) を参照)。 [#7717](https://github.com/ClickHouse/ClickHouse/pull/7717) ([Maxim Fedotov](https://github.com/MaxFedotov)) * `clickhouse-client` は、マルチクエリがオンでかつマルチラインがオフのときにのみ `bracketed-paste` を有効にするようになりました。これにより [#7757](https://github.com/ClickHouse/ClickHouse/issues/7757) が修正されました。[#7761](https://github.com/ClickHouse/ClickHouse/pull/7761) ([Amos Bird](https://github.com/amosbird)) * `if` 関数が `Array(Decimal)` をサポートするようになりました。 [#7721](https://github.com/ClickHouse/ClickHouse/pull/7721) ([Artem Zuikov](https://github.com/4ertus2)) * `arrayDifference`、`arrayCumSum`、`arrayCumSumNegative` 関数で Decimal 型をサポート。 [#7724](https://github.com/ClickHouse/ClickHouse/pull/7724) ([Artem Zuikov](https://github.com/4ertus2)) * `system.dictionaries` テーブルに `lifetime` 列を追加しました。 [#6820](https://github.com/ClickHouse/ClickHouse/issues/6820) [#7727](https://github.com/ClickHouse/ClickHouse/pull/7727) ([kekekekule](https://github.com/kekekekule)) * `*MergeTree` テーブルエンジンにおける、異なるディスク上の既存パーツのチェック処理を改善しました。 [#7660](https://github.com/ClickHouse/ClickHouse/issues/7660) に対応します。 [#8440](https://github.com/ClickHouse/ClickHouse/pull/8440)([Vladimir Chebotarev](https://github.com/excitoon)) -* `S3` とのやり取りに `AWS SDK` を統合し、すべての S3 機能を追加設定なしで利用できるようにしました。 [#8011](https://github.com/ClickHouse/ClickHouse/pull/8011) ([Pavel Kovalenko](https://github.com/Jokser)) +* `S3` 連携向けに `AWS SDK` を統合し、すべての S3 機能を追加設定なしで利用できるようにしました。 [#8011](https://github.com/ClickHouse/ClickHouse/pull/8011) ([Pavel Kovalenko](https://github.com/Jokser)) * `Live View` テーブルでサブクエリがサポートされるようになりました。 [#7792](https://github.com/ClickHouse/ClickHouse/pull/7792) ([vzakaznikov](https://github.com/vzakaznikov)) -* `TTL` 式で `Date` または `DateTime` 列が使用されているかどうかを確認するチェックが削除されました。 [#7920](https://github.com/ClickHouse/ClickHouse/pull/7920) ([Vladimir Chebotarev](https://github.com/excitoon)) +* `TTL` 式で `Date` または `DateTime` カラムの使用を確認するチェックを削除しました。 [#7920](https://github.com/ClickHouse/ClickHouse/pull/7920) ([Vladimir Chebotarev](https://github.com/excitoon)) * ディスク情報が `system.detached_parts` テーブルに追加されました。 [#7833](https://github.com/ClickHouse/ClickHouse/pull/7833) ([Vladimir Chebotarev](https://github.com/excitoon)) * `max_(table|partition)_size_to_drop` の設定値は、再起動なしで変更できるようになりました。 [#7779](https://github.com/ClickHouse/ClickHouse/pull/7779) ([Grigory Pervakov](https://github.com/GrigoryPervakov)) -* エラーメッセージの使い勝手をわずかに改善しました。`Stack trace:` の下にある行を削除しないようにユーザーへ注意を促します。 [#7897](https://github.com/ClickHouse/ClickHouse/pull/7897) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* エラーメッセージの使い勝手をわずかに改善しました。`Stack trace:` の下にある行は削除しないようユーザーに注意するようにしました。 [#7897](https://github.com/ClickHouse/ClickHouse/pull/7897) ([alexey-milovidov](https://github.com/alexey-milovidov)) * [#7935](https://github.com/ClickHouse/ClickHouse/issues/7935) 以降、`Kafka` エンジンからのメッセージをさまざまなフォーマットでより適切に読み取れるように改善。 [#8035](https://github.com/ClickHouse/ClickHouse/pull/8035) ([Ivan](https://github.com/abyss7)) * `sha2_password` 認証プラグインをサポートしていない MySQL クライアントとの互換性を改善しました。 [#8036](https://github.com/ClickHouse/ClickHouse/pull/8036) ([Yuriy Baranov](https://github.com/yurriy)) -* MySQL 互換サーバーでより多様な列型をサポートしました。 [#7975](https://github.com/ClickHouse/ClickHouse/pull/7975) ([Yuriy Baranov](https://github.com/yurriy)) +* MySQL 互換サーバーでより多くのカラム型をサポートしました。 [#7975](https://github.com/ClickHouse/ClickHouse/pull/7975) ([Yuriy Baranov](https://github.com/yurriy)) * `MergeTree` テーブルを基盤とする `Merge`、`Buffer`、および `Materilized View` ストレージに対する `ORDER BY` の最適化を実装しました。 [#8130](https://github.com/ClickHouse/ClickHouse/pull/8130) ([Anton Popov](https://github.com/CurtizJ)) -* 今後は常に `getrandom` の POSIX 実装を使用し、3.17 未満の古いカーネルとの互換性を向上させます。 [#7940](https://github.com/ClickHouse/ClickHouse/pull/7940) ([Amos Bird](https://github.com/amosbird)) -* MOVE TTL ルールで、移動先が有効かどうかをより厳密にチェックするようにしました。 [#8410](https://github.com/ClickHouse/ClickHouse/pull/8410) ([Vladimir Chebotarev](https://github.com/excitoon)) +* `getrandom` の POSIX 実装を常に使用するようにし、バージョン 3.17 未満の古いカーネルとの互換性を向上させました。 [#7940](https://github.com/ClickHouse/ClickHouse/pull/7940) ([Amos Bird](https://github.com/amosbird)) +* MOVE TTL ルールにおいて、移動先が有効な場所かどうかのチェックを強化しました。 [#8410](https://github.com/ClickHouse/ClickHouse/pull/8410) ([Vladimir Chebotarev](https://github.com/excitoon)) * `Distributed` テーブルエンジンにおける破損した挿入バッチの検出を改善。 [#7933](https://github.com/ClickHouse/ClickHouse/pull/7933) ([Azat Khuzhin](https://github.com/azat)) * 将来のミューテーション処理対象となるパーツ名の配列を格納するカラムを `system.mutations` テーブルに追加。 [#8179](https://github.com/ClickHouse/ClickHouse/pull/8179) ([alesapin](https://github.com/alesapin)) * プロセッサ用の並列マージソートの最適化。 [#8552](https://github.com/ClickHouse/ClickHouse/pull/8552) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* 設定項目 `mark_cache_min_lifetime` は現在は廃止されており、効果はありません。以前のバージョンでは、`mark_cache_min_lifetime` 秒間データを保持するために、マークキャッシュがメモリ上で `mark_cache_size` を超えて増加する場合がありました。これは混乱を招き、想定以上のメモリ使用量につながっており、特にメモリ制約の厳しいシステムでは問題となっていました。このリリースをインストールした後にパフォーマンスの低下が見られる場合は、`mark_cache_size` を増やしてください。 [#8484](https://github.com/ClickHouse/ClickHouse/pull/8484) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* `tid` を全体で使用できるようにするための準備。これは [#7477](https://github.com/ClickHouse/ClickHouse/issues/7477) に必要です。[#8276](https://github.com/ClickHouse/ClickHouse/pull/8276)([alexey-milovidov](https://github.com/alexey-milovidov)) - - +* 設定項目 `mark_cache_min_lifetime` は現在は廃止されており、何も行いません。以前のバージョンでは、`mark_cache_min_lifetime` 秒の間データを保持できるように、マークキャッシュがメモリ上で `mark_cache_size` を超えて成長する場合がありました。これは混乱を招き、想定以上のメモリ使用量につながっており、特にメモリ制約の厳しいシステムでは問題となっていました。このリリースをインストールした後にパフォーマンスの低下が見られる場合は、`mark_cache_size` を増やしてください。 [#8484](https://github.com/ClickHouse/ClickHouse/pull/8484) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* `tid` をあらゆる箇所で使用できるようにするための準備作業。これは [#7477](https://github.com/ClickHouse/ClickHouse/issues/7477) に必要です。[#8276](https://github.com/ClickHouse/ClickHouse/pull/8276)([alexey-milovidov](https://github.com/alexey-milovidov)) #### パフォーマンスの改善 {#performance-improvement-17} @@ -3423,7 +3410,7 @@ v20.4.3.16-stable からの変更はありません。 * 浮動小数点数のフォーマット処理のパフォーマンスを最大6倍高速化しました。 [#8542](https://github.com/ClickHouse/ClickHouse/pull/8542) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `modulo` 関数のパフォーマンスを改善しました。 [#7750](https://github.com/ClickHouse/ClickHouse/pull/7750) ([Amos Bird](https://github.com/amosbird)) * 単一カラムキーでの `ORDER BY` とマージの最適化。 [#8335](https://github.com/ClickHouse/ClickHouse/pull/8335) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* `arrayReduce`、`-Array` および `-State` コンビネータの実装を改善。 [#7710](https://github.com/ClickHouse/ClickHouse/pull/7710) ([Amos Bird](https://github.com/amosbird)) +* `arrayReduce`、`-Array` および `-State` コンビネータの実装を改善。 [#7710](https://github.com/ClickHouse/ClickHouse/pull/7710) ([Amos Bird](https://github.com/amosbird)) * これにより、`PREWHERE` は少なくとも `WHERE` と同等の効率で動作するように最適化されているはずです。 [#7769](https://github.com/ClickHouse/ClickHouse/pull/7769) ([Amos Bird](https://github.com/amosbird)) * `round` および `roundBankers` における負の数の取り扱いを改善しました。 [#8229](https://github.com/ClickHouse/ClickHouse/pull/8229) ([hcz](https://github.com/hczhcz)) * `DoubleDelta` と `Gorilla` コーデックのデコード性能をおよそ 30~40% 向上しました。これにより [#7082](https://github.com/ClickHouse/ClickHouse/issues/7082) が修正されました。 [#8019](https://github.com/ClickHouse/ClickHouse/pull/8019) ([Vasily Nemkov](https://github.com/Enmk)) @@ -3434,11 +3421,9 @@ v20.4.3.16-stable からの変更はありません。 * `if` チェーンは `multiIf` として最適化されるようになりました。 [#8355](https://github.com/ClickHouse/ClickHouse/pull/8355) ([kamalov-ruslan](https://github.com/kamalov-ruslan)) * 19.15 で発生した `Kafka` テーブルエンジンのパフォーマンス低下を修正します。これにより [#7261](https://github.com/ClickHouse/ClickHouse/issues/7261) が修正されます。 [#7935](https://github.com/ClickHouse/ClickHouse/pull/7935) ([filimonov](https://github.com/filimonov)) * Debian パッケージの `gcc` がデフォルトで有効にしている場合がある「pie」コード生成を削除しました。 [#8483](https://github.com/ClickHouse/ClickHouse/pull/8483) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* データ形式の並列パース [#6553](https://github.com/ClickHouse/ClickHouse/pull/6553) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) +* データフォーマットの並列パース [#6553](https://github.com/ClickHouse/ClickHouse/pull/6553) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) * 式を含む `Values` 用の最適化パーサをデフォルトで有効にしました(`input_format_values_deduce_templates_of_expressions=1`)。 [#8231](https://github.com/ClickHouse/ClickHouse/pull/8231) ([tavplubix](https://github.com/tavplubix)) - - #### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement-25} * `ARM` 向けおよび最小モードでのビルドを修正。 [#8304](https://github.com/ClickHouse/ClickHouse/pull/8304) ([proller](https://github.com/proller)) @@ -3447,36 +3432,36 @@ v20.4.3.16-stable からの変更はありません。 * バンドル版 `curl` のビルドを完全にサイレントにする。 [#8232](https://github.com/ClickHouse/ClickHouse/pull/8232) [#8203](https://github.com/ClickHouse/ClickHouse/pull/8203) ([Pavel Kovalenko](https://github.com/Jokser)) * いくつかの `MemorySanitizer` 警告を修正。 [#8235](https://github.com/ClickHouse/ClickHouse/pull/8235) ([Alexander Kuzmenkov](https://github.com/akuzm)) * `CMakeLists.txt` で `add_warning` および `no_warning` マクロを使用するように変更。 [#8604](https://github.com/ClickHouse/ClickHouse/pull/8604) ([Ivan](https://github.com/abyss7)) -* 統合テストを改善するために、Minio による S3 互換オブジェクトストレージ([https://min.io/](https://min.io/))のサポートを追加しました。 [#7863](https://github.com/ClickHouse/ClickHouse/pull/7863) [#7875](https://github.com/ClickHouse/ClickHouse/pull/7875) ([Pavel Kovalenko](https://github.com/Jokser)) -* `libc` ヘッダーを contrib にインポートしました。これにより、さまざまなシステム間でビルドをより一貫したものにできます(`x86_64-linux-gnu` のみ)。 [#5773](https://github.com/ClickHouse/ClickHouse/pull/5773) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 統合テストを改善するため、Minio の S3 互換オブジェクトストレージ([https://min.io/](https://min.io/))のサポートを追加しました。 [#7863](https://github.com/ClickHouse/ClickHouse/pull/7863) [#7875](https://github.com/ClickHouse/ClickHouse/pull/7875) ([Pavel Kovalenko](https://github.com/Jokser)) +* `libc` ヘッダーを contrib にインポートしました。これにより、さまざまなシステム間でビルドの一貫性を高められます(`x86_64-linux-gnu` のみ)。 [#5773](https://github.com/ClickHouse/ClickHouse/pull/5773) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 一部のライブラリから `-fPIC` を削除しました。 [#8464](https://github.com/ClickHouse/ClickHouse/pull/8464) ([alexey-milovidov](https://github.com/alexey-milovidov)) * curl 用の `CMakeLists.txt` をクリーンアップ。詳細は [https://github.com/ClickHouse/ClickHouse/pull/8011#issuecomment-569478910](https://github.com/ClickHouse/ClickHouse/pull/8011#issuecomment-569478910) および [#8459](https://github.com/ClickHouse/ClickHouse/pull/8459) を参照 ([alexey-milovidov](https://github.com/alexey-milovidov)) * `CapNProto` ライブラリでのサイレント警告。 [#8220](https://github.com/ClickHouse/ClickHouse/pull/8220) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 短い文字列用に最適化されたハッシュテーブルのパフォーマンステストを追加。 [#7679](https://github.com/ClickHouse/ClickHouse/pull/7679) ([Amos Bird](https://github.com/amosbird)) * これにより、`MADV_FREE` が利用できない場合でも、ClickHouse を `AArch64` 上でビルドできるようになりました。これによって [#8027](https://github.com/ClickHouse/ClickHouse/issues/8027) が解決されました。 [#8243](https://github.com/ClickHouse/ClickHouse/pull/8243) ([Amos Bird](https://github.com/amosbird)) * `zlib-ng` を更新して MemorySanitizer 関連の問題を修正しました。 [#7182](https://github.com/ClickHouse/ClickHouse/pull/7182) [#8206](https://github.com/ClickHouse/ClickHouse/pull/8206) ([Alexander Kuzmenkov](https://github.com/akuzm)) -* 非 Linux システムでは内部 MySQL ライブラリを有効化します。OS パッケージの利用は非常に不安定で、通常はまったく動作しないためです。これにより [#5765](https://github.com/ClickHouse/ClickHouse/issues/5765) が修正されます。[#8426](https://github.com/ClickHouse/ClickHouse/pull/8426)([alexey-milovidov](https://github.com/alexey-milovidov)) -* `libc++` を有効にした後に、一部のシステムでビルドが通らない問題を修正しました。この変更は [#8374](https://github.com/ClickHouse/ClickHouse/issues/8374) に取って代わるものです。 [#8380](https://github.com/ClickHouse/ClickHouse/pull/8380) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 非 Linux システムでは同梱の MySQL ライブラリを有効にします。OS パッケージ版の利用は非常に不安定で、通常はまったく動作しないためです。これにより [#5765](https://github.com/ClickHouse/ClickHouse/issues/5765) が修正されます。[#8426](https://github.com/ClickHouse/ClickHouse/pull/8426)([alexey-milovidov](https://github.com/alexey-milovidov)) +* `libc++` を有効にした後に、一部のシステムでビルドできなかった問題を修正しました。この変更は [#8374](https://github.com/ClickHouse/ClickHouse/issues/8374) に取って代わるものです。 [#8380](https://github.com/ClickHouse/ClickHouse/pull/8380) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `Field` メソッドをより型安全にし、より多くのエラーを検出できるようにしました。 [#7386](https://github.com/ClickHouse/ClickHouse/pull/7386) [#8209](https://github.com/ClickHouse/ClickHouse/pull/8209) ([Alexander Kuzmenkov](https://github.com/akuzm)) * `libc-headers` サブモジュールに不足していたファイルを追加しました。 [#8507](https://github.com/ClickHouse/ClickHouse/pull/8507) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* パフォーマンステストの出力で誤っていた `JSON` のクォートを修正。 [#8497](https://github.com/ClickHouse/ClickHouse/pull/8497) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* パフォーマンステスト出力における誤った `JSON` のクオートを修正。 [#8497](https://github.com/ClickHouse/ClickHouse/pull/8497) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * `std::exception` と `Poco::Exception` に対してもスタックトレースが表示されるようになりました。以前のバージョンでは `DB::Exception` の場合にのみ表示されていました。これにより診断性が向上します。 [#8501](https://github.com/ClickHouse/ClickHouse/pull/8501) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 最新の glibc バージョン向けに `clock_gettime` と `clock_nanosleep` を移植しました。 [#8054](https://github.com/ClickHouse/ClickHouse/pull/8054) ([Amos Bird](https://github.com/amosbird)) +* 新しい glibc バージョン向けに `clock_gettime` と `clock_nanosleep` を移植しました。 [#8054](https://github.com/ClickHouse/ClickHouse/pull/8054) ([Amos Bird](https://github.com/amosbird)) * 開発者向けサンプル設定で `part_log` を有効化。 [#8609](https://github.com/ClickHouse/ClickHouse/pull/8609) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* `01036_no_superfluous_dict_reload_on_create_database*` におけるリロードの非同期処理の挙動を修正。[#8111](https://github.com/ClickHouse/ClickHouse/pull/8111)([Azat Khuzhin](https://github.com/azat)) -* コーデックのパフォーマンステストを修正。 [#8615](https://github.com/ClickHouse/ClickHouse/pull/8615) ([Vasily Nemkov](https://github.com/Enmk)) +* `01036_no_superfluous_dict_reload_on_create_database*` における非同期リロードの挙動を修正。[#8111](https://github.com/ClickHouse/ClickHouse/pull/8111)([Azat Khuzhin](https://github.com/azat)) +* コーデックの性能テストを修正。 [#8615](https://github.com/ClickHouse/ClickHouse/pull/8615) ([Vasily Nemkov](https://github.com/Enmk)) * `.tgz` ビルド用のインストールスクリプトとそのドキュメントを追加。 [#8612](https://github.com/ClickHouse/ClickHouse/pull/8612) [#8591](https://github.com/ClickHouse/ClickHouse/pull/8591) ([alesapin](https://github.com/alesapin)) * 古い `ZSTD` テストを削除しました(2016 年に作成されたもので、ZSTD の 1.0 以前のバージョンに存在したバグを再現するためのものです)。これにより、[#8618](https://github.com/ClickHouse/ClickHouse/issues/8618) が解決されました。 [#8619](https://github.com/ClickHouse/ClickHouse/pull/8619)([alexey-milovidov](https://github.com/alexey-milovidov)) * Mac OS Catalina におけるビルドを修正。 [#8600](https://github.com/ClickHouse/ClickHouse/pull/8600) ([meo](https://github.com/meob)) -* コーデックの性能テストで使用する行数を増やし、結果の差がより明確に表れるようにしました。 [#8574](https://github.com/ClickHouse/ClickHouse/pull/8574) ([Vasily Nemkov](https://github.com/Enmk)) +* コーデックのパフォーマンステストで使用する行数を増やし、結果の差がより明確に表れるようにしました。 [#8574](https://github.com/ClickHouse/ClickHouse/pull/8574) ([Vasily Nemkov](https://github.com/Enmk)) * デバッグビルドでは、`LOGICAL_ERROR` 例外をアサーション失敗として扱うようにし、気付きやすくします。 [#8475](https://github.com/ClickHouse/ClickHouse/pull/8475) ([Alexander Kuzmenkov](https://github.com/akuzm)) * フォーマット関連のパフォーマンステストの再現性を高めました。 [#8477](https://github.com/ClickHouse/ClickHouse/pull/8477) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* MemorySanitizer の不具合を修正するために `lz4` を更新。[#8181](https://github.com/ClickHouse/ClickHouse/pull/8181) ([Alexander Kuzmenkov](https://github.com/akuzm)) +* `lz4` を更新して MemorySanitizer の不具合を修正しました。[#8181](https://github.com/ClickHouse/ClickHouse/pull/8181) ([Alexander Kuzmenkov](https://github.com/akuzm)) * 例外処理時に発生する既知の MemorySanitizer の誤検知を抑制。 [#8182](https://github.com/ClickHouse/ClickHouse/pull/8182) ([Alexander Kuzmenkov](https://github.com/akuzm)) * `build/docker/build.sh` 内の `gcc` と `g++` をバージョン 9 に更新 [#7766](https://github.com/ClickHouse/ClickHouse/pull/7766) ([TLightSky](https://github.com/tlightsky)) -* `PREWHERE` の方が `WHERE` よりも遅いことを検証するパフォーマンステストケースを追加。 [#7768](https://github.com/ClickHouse/ClickHouse/pull/7768) ([Amos Bird](https://github.com/amosbird)) -* 不安定なテスト 1 件の修正に向けた進捗。 [#8621](https://github.com/ClickHouse/ClickHouse/pull/8621) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* `libunwind` 由来のデータに対する MemorySanitizer の報告を回避。 [#8539](https://github.com/ClickHouse/ClickHouse/pull/8539) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* `PREWHERE` の方が `WHERE` よりも遅いことを確認するためのパフォーマンステストケースを追加。 [#7768](https://github.com/ClickHouse/ClickHouse/pull/7768) ([Amos Bird](https://github.com/amosbird)) +* 不安定なテスト 1 件の修正に向けて作業を進めました。 [#8621](https://github.com/ClickHouse/ClickHouse/pull/8621) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* `libunwind` 由来のデータに対する MemorySanitizer によるレポートを回避。 [#8539](https://github.com/ClickHouse/ClickHouse/pull/8539) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `libc++` を最新版に更新しました。 [#8324](https://github.com/ClickHouse/ClickHouse/pull/8324) ([alexey-milovidov](https://github.com/alexey-milovidov)) * ICU ライブラリをソースコードからビルドするようにしました。これにより [#6460](https://github.com/ClickHouse/ClickHouse/issues/6460) が解決します。 [#8219](https://github.com/ClickHouse/ClickHouse/pull/8219) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `libressl` から `openssl` に切り替えました。この変更により、ClickHouse は TLS 1.3 と SNI をサポートします。これにより [#8171](https://github.com/ClickHouse/ClickHouse/issues/8171) が修正されました。[#8218](https://github.com/ClickHouse/ClickHouse/pull/8218) ([alexey-milovidov](https://github.com/alexey-milovidov)) @@ -3484,39 +3469,41 @@ v20.4.3.16-stable からの変更はありません。 * `.deb` ベースの Linux ディストリビューション向けにデフォルトパスワードファイルのパーミッションを修正。 [#8075](https://github.com/ClickHouse/ClickHouse/pull/8075) ([proller](https://github.com/proller)) * `clickhouse-test` における `clickhouse-server` の PID 取得方法を改善しました。 [#8063](https://github.com/ClickHouse/ClickHouse/pull/8063) ([Alexander Kazakov](https://github.com/Akazz)) * contrib/googletest を v1.10.0 に更新しました。 [#8587](https://github.com/ClickHouse/ClickHouse/pull/8587) ([Alexander Burmak](https://github.com/Alex-Burmak)) -* `base64` ライブラリでの ThreadSanitizer レポートを修正しました。また、このライブラリを最新バージョンに更新しましたが、これは特に重要ではありません。この変更により [#8397](https://github.com/ClickHouse/ClickHouse/issues/8397) が修正されました。 [#8403](https://github.com/ClickHouse/ClickHouse/pull/8403) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* `base64` ライブラリでの ThreadSanitizer レポートを修正しました。また、このライブラリを最新版に更新しましたが、これは特に重要ではありません。これにより [#8397](https://github.com/ClickHouse/ClickHouse/issues/8397) が修正されました。 [#8403](https://github.com/ClickHouse/ClickHouse/pull/8403) ([alexey-milovidov](https://github.com/alexey-milovidov)) * プロセッサ用の `00600_replace_running_query` を修正。 [#8272](https://github.com/ClickHouse/ClickHouse/pull/8272) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * `CMakeLists.txt` を簡素化するために `tcmalloc` のサポートを削除しました。 [#8310](https://github.com/ClickHouse/ClickHouse/pull/8310) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* リリース向けの gcc ビルドでは、`libstdc++` の代わりに `libc++` を使用するようになりました。これまで `libc++` は clang の場合にのみ使用されていました。これにより、ビルド構成の一貫性と移植性が向上します。 [#8311](https://github.com/ClickHouse/ClickHouse/pull/8311) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* リリース向けの gcc ビルドでは、`libstdc++` の代わりに `libc++` を使用するようになりました。これまで `libc++` は clang 使用時にのみ利用されていました。これにより、ビルド構成の一貫性と移植性が向上します。 [#8311](https://github.com/ClickHouse/ClickHouse/pull/8311) ([alexey-milovidov](https://github.com/alexey-milovidov)) * MemorySanitizer を使用したビルドで ICU ライブラリを有効にしました。 [#8222](https://github.com/ClickHouse/ClickHouse/pull/8222) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `CapNProto` ライブラリからの警告を抑制する。 [#8224](https://github.com/ClickHouse/ClickHouse/pull/8224) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* `tcmalloc` 向けの特別なコードパスを削除しました。もはやサポートされていないためです。 [#8225](https://github.com/ClickHouse/ClickHouse/pull/8225) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* CI のカバレッジタスクでは、カバレッジレポートを保存できるよう、サーバーを正常終了させるようにしました。これにより、最近発生していた不完全なカバレッジレポートの問題を修正しました。 [#8142](https://github.com/ClickHouse/ClickHouse/pull/8142) ([alesapin](https://github.com/alesapin)) +* `tcmalloc` 向けの特別なコードパスを削除しました。サポート対象ではなくなったためです。 [#8225](https://github.com/ClickHouse/ClickHouse/pull/8225) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* CI のカバレッジタスクでは、カバレッジレポートを保存できるようサーバーを正常終了させるように変更しました。これにより、最近発生していたカバレッジレポートが不完全になる問題を解消しました。 [#8142](https://github.com/ClickHouse/ClickHouse/pull/8142) ([alesapin](https://github.com/alesapin)) * すべてのコーデックについて、`Float64` および `UInt64` 値に対するパフォーマンス テストを実施。[#8349](https://github.com/ClickHouse/ClickHouse/pull/8349)([Vasily Nemkov](https://github.com/Enmk)) -* `termcap` は現在では強く非推奨であり、さまざまな問題の原因となります(例: 「up」cap が欠けている、複数行の代わりに `^J` がエコーされる など)。`terminfo` または同梱の `ncurses` を使用してください。 [#7737](https://github.com/ClickHouse/ClickHouse/pull/7737) ([Amos Bird](https://github.com/amosbird)) +* `termcap` は強く非推奨となっており、さまざまな問題の原因になります(例: 「up」cap が欠けている、複数行出力の代わりに `^J` がエコーされる など)。`terminfo` または同梱の `ncurses` を使用してください。 [#7737](https://github.com/ClickHouse/ClickHouse/pull/7737) ([Amos Bird](https://github.com/amosbird)) * `test_storage_s3` 統合テストを修正。 [#7734](https://github.com/ClickHouse/ClickHouse/pull/7734) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* ディスクに実際に書き込むことなく、指定したフォーマットのファイルにブロックを挿入できるようにする `StorageFile(<format>, null)` をサポートしました。これはパフォーマンス テストに必要です。 [#8455](https://github.com/ClickHouse/ClickHouse/pull/8455) ([Amos Bird](https://github.com/amosbird)) +* ディスクに実際に書き込むことなく、指定したフォーマットのファイルにブロックを挿入できるようにする `StorageFile(, null)` をサポートしました。これはパフォーマンス テストに必要です。 [#8455](https://github.com/ClickHouse/ClickHouse/pull/8455) ([Amos Bird](https://github.com/amosbird)) * 機能テストに引数 `--print-time` を追加し、テストごとの実行時間を表示するようにしました。 [#8001](https://github.com/ClickHouse/ClickHouse/pull/8001) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * RPN を評価する際の `KeyCondition` にアサートを追加しました。これにより gcc-9 の警告が解消されます。 [#8279](https://github.com/ClickHouse/ClickHouse/pull/8279) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* CI ビルドで CMake オプションを出力するようにした。 [#8273](https://github.com/ClickHouse/ClickHouse/pull/8273) ([Alexander Kuzmenkov](https://github.com/akuzm)) -* 一部のサイズが大きいライブラリについてはデバッグ情報を生成しないようにしました。 [#8271](https://github.com/ClickHouse/ClickHouse/pull/8271) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* CI ビルド時に CMake オプションを出力するようにしました。 [#8273](https://github.com/ClickHouse/ClickHouse/pull/8273) ([Alexander Kuzmenkov](https://github.com/akuzm)) +* 一部の肥大化したライブラリではデバッグ情報を生成しないようにしました。 [#8271](https://github.com/ClickHouse/ClickHouse/pull/8271) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `log_to_console.xml` がインタラクティブかどうかに関係なく、常に stderr にログを出力するようにしました。 [#8395](https://github.com/ClickHouse/ClickHouse/pull/8395) ([Alexander Kuzmenkov](https://github.com/akuzm)) * `clickhouse-performance-test` ツールから未使用の機能をいくつか削除しました。 [#8555](https://github.com/ClickHouse/ClickHouse/pull/8555) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 対応する `clang-X` バージョンを持つ `lld-X` も検索するようになりました。 [#8092](https://github.com/ClickHouse/ClickHouse/pull/8092) ([alesapin](https://github.com/alesapin)) +* 対応する `clang-X` バージョンの `lld-X` も検索するようになりました。 [#8092](https://github.com/ClickHouse/ClickHouse/pull/8092) ([alesapin](https://github.com/alesapin)) * Parquet のビルド処理を改善。 [#8421](https://github.com/ClickHouse/ClickHouse/pull/8421) ([maxulan](https://github.com/maxulan)) -* GCC 警告をさらに追加 [#8221](https://github.com/ClickHouse/ClickHouse/pull/8221) ([kreuzerkrieg](https://github.com/kreuzerkrieg)) +* GCC の警告をさらに追加 [#8221](https://github.com/ClickHouse/ClickHouse/pull/8221) ([kreuzerkrieg](https://github.com/kreuzerkrieg)) * Arch Linux 用パッケージで、クライアントだけでなく ClickHouse サーバーも実行できるようになりました。 [#8534](https://github.com/ClickHouse/ClickHouse/pull/8534) ([Vladimir Chebotarev](https://github.com/excitoon)) * プロセッサを使用したテストを修正。ごく小さなパフォーマンスの改善。 [#7672](https://github.com/ClickHouse/ClickHouse/pull/7672) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * contrib/protobuf を更新。 [#8256](https://github.com/ClickHouse/ClickHouse/pull/8256) ([Matwey V. Kornilov](https://github.com/matwey)) -* 新年の祝いに C++20 への移行を準備中。「C++ のフォースが ClickHouse とともにありますように。」[#8447](https://github.com/ClickHouse/ClickHouse/pull/8447) ([Amos Bird](https://github.com/amosbird)) +* 新年のお祝いとして C++20 への移行を準備中。「C++ のフォースが ClickHouse と共にあらんことを。」[#8447](https://github.com/ClickHouse/ClickHouse/pull/8447) ([Amos Bird](https://github.com/amosbird)) #### 実験的機能 {#experimental-feature-8} + * 実験的な設定 `min_bytes_to_use_mmap_io` を追加しました。これにより、カーネルからユーザー空間へのデータコピーを行わずに大きなファイルを読み取ることができます。この設定はデフォルトでは無効になっています。`mmap`/`munmap` は低速であるため、推奨されるしきい値は約 64 MB です。 [#8520](https://github.com/ClickHouse/ClickHouse/pull/8520) ([alexey-milovidov](https://github.com/alexey-milovidov)) * アクセス制御システムの一部としてクォータを再設計しました。新しいテーブル `system.quotas`、新しい関数 `currentQuota`、`currentQuotaKey`、新しい SQL 構文 `CREATE QUOTA`、`ALTER QUOTA`、`DROP QUOTA`、`SHOW QUOTA` を追加しました。 [#7257](https://github.com/ClickHouse/ClickHouse/pull/7257) ([Vitaly Baranov](https://github.com/vitlibar)) * 例外をスローする代わりに、警告を出して不明な設定をスキップできるようにしました。 [#7653](https://github.com/ClickHouse/ClickHouse/pull/7653) ([Vitaly Baranov](https://github.com/vitlibar)) * アクセス制御システムの一部として行ポリシーを再設計しました。新しいテーブル `system.row_policies`、新しい関数 `currentRowPolicies()`、新しい SQL 構文 `CREATE POLICY`、`ALTER POLICY`、`DROP POLICY`、`SHOW CREATE POLICY`、`SHOW POLICIES` を追加しました。 [#7808](https://github.com/ClickHouse/ClickHouse/pull/7808) ([Vitaly Baranov](https://github.com/vitlibar)) #### セキュリティ修正 {#security-fix} -* `File` テーブルエンジンを使用するテーブルで、ディレクトリ構造を読み取れてしまう可能性があった問題を修正しました。これにより [#8536](https://github.com/ClickHouse/ClickHouse/issues/8536) が解決されます。 [#8537](https://github.com/ClickHouse/ClickHouse/pull/8537) ([alexey-milovidov](https://github.com/alexey-milovidov)) -## [2019年の変更履歴](./2019.md) {#changelog-for-2019} +* `File` テーブルエンジンを使用するテーブルで、ディレクトリ構造を読み取られてしまう可能性があった問題を修正しました。これにより [#8536](https://github.com/ClickHouse/ClickHouse/issues/8536) が解決されます。 [#8537](https://github.com/ClickHouse/ClickHouse/pull/8537) ([alexey-milovidov](https://github.com/alexey-milovidov)) + +## [2019年の変更履歴](./2019.md) {#changelog-for-2019} \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2021.md b/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2021.md index 86c0791d146..d79a6c81a48 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2021.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2021.md @@ -1,6 +1,6 @@ --- slug: /whats-new/changelog/2021 -sidebar_position: 6 +sidebar_position: -2021 sidebar_label: '2021' title: '2021年変更履歴' description: '2021年の変更履歴' diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2022.md b/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2022.md index 6098d3b55cc..4640395d77e 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2022.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2022.md @@ -1,6 +1,6 @@ --- slug: /whats-new/changelog/2022 -sidebar_position: 5 +sidebar_position: -2022 sidebar_label: '2022' title: '2022年の変更履歴' description: '2022年の変更履歴' diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2023.md b/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2023.md index 75de4ebe124..ead6d586d37 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2023.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2023.md @@ -1,6 +1,6 @@ --- slug: /whats-new/changelog/2023 -sidebar_position: 4 +sidebar_position: -2023 sidebar_label: '2023' title: '2023年の変更履歴' description: '2023年の変更履歴' diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2024.md b/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2024.md new file mode 100644 index 00000000000..ad5921f39bc --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2024.md @@ -0,0 +1,2003 @@ +--- +slug: /whats-new/changelog/2024 +sidebar_position: -2024 +sidebar_label: '2024' +title: '2024年の変更履歴' +description: '2024年の変更履歴' +keywords: ['ClickHouse 2024', '2024年の変更履歴', 'リリースノート', 'バージョン履歴', '新機能'] +doc_type: 'changelog' +--- + +### 目次 {#table-of-contents} + +**[ClickHouse リリース v24.12、2024-12-19](/whats-new/changelog/2024#a-id2412a-clickhouse-release-2412-2024-12-19)**
    +**[ClickHouse リリース v24.11、2024-11-26](/whats-new/changelog/2024#a-id2411a-clickhouse-release-2411-2024-11-26)**
    +**[ClickHouse リリース v24.10、2024-10-31](/whats-new/changelog/2024#a-id2410a-clickhouse-release-2410-2024-10-31)**
    +**[ClickHouse リリース v24.9、2024-09-26](/whats-new/changelog/2024#a-id249a-clickhouse-release-249-2024-09-26)**
    +**[ClickHouse リリース v24.8 LTS、2024-08-20](/whats-new/changelog/2024#a-id248a-clickhouse-release-248-lts-2024-08-20)**
    +**[ClickHouse リリース v24.7、2024-07-30](/whats-new/changelog/2024#a-id247a-clickhouse-release-247-2024-07-30)**
    +**[ClickHouse リリース v24.6、2024-07-01](/whats-new/changelog/2024#a-id246a-clickhouse-release-246-2024-07-01)**
    +**[ClickHouse リリース v24.5、2024-05-30](/whats-new/changelog/2024#a-id245a-clickhouse-release-245-2024-05-30)**
    +**[ClickHouse リリース v24.4、2024-04-30](/whats-new/changelog/2024#a-id244a-clickhouse-release-244-2024-04-30)**
    +**[ClickHouse リリース v24.3 LTS、2024-03-26](/whats-new/changelog/2024#a-id243a-clickhouse-release-243-lts-2024-03-27)**
    +**[ClickHouse リリース v24.2、2024-02-29](/whats-new/changelog/2024#a-id242a-clickhouse-release-242-2024-02-29)**
    +**[ClickHouse リリース v24.1、2024-01-30](/whats-new/changelog/2024#a-id241a-clickhouse-release-241-2024-01-30)**
    +**[2023 年の変更履歴](/whats-new/changelog/2023/)**
    + +### ClickHouse リリース 24.12(2024-12-19)。[プレゼンテーション](https://presentations.clickhouse.com/2024-release-24.12/)、[ビデオ](https://www.youtube.com/watch?v=bv-ut-Q6vnc) {#a-id2412a-clickhouse-release-2412-2024-12-19} + + + +#### 下位互換性のない変更 {#backward-incompatible-change} + +* 関数 `greatest` および `least` は、これまでは引数のいずれかが NULL の場合に NULL を返していましたが、今後は NULL の入力値を無視します。たとえば、`SELECT greatest(1, 2, NULL)` は 2 を返します。これにより PostgreSQL と互換性のある動作になりますが、NULL を返す MySQL との互換性は失われます。以前の動作を維持したい場合は、設定 `least_greatest_legacy_null_behavior`(デフォルト: `false`)を `true` に設定してください。 [#65519](https://github.com/ClickHouse/ClickHouse/pull/65519) [#73344](https://github.com/ClickHouse/ClickHouse/pull/73344) ([kevinyhzou](https://github.com/KevinyhZou)). +* 新しい MongoDB 連携機能がデフォルトになりました。レガシー MongoDB ドライバ(Poco ドライバをベースとしたもの)を引き続き使用したいユーザーは、サーバー設定 `use_legacy_mongodb_integration` を有効にできます。 [#73359](https://github.com/ClickHouse/ClickHouse/pull/73359) ([Kirill Nikiforov](https://github.com/allmazz). + +#### 新機能 {#new-feature} + +* `JSON`/`Dynamic`/`Variant` 型を experimental 機能から beta に移行しました。 [#72294](https://github.com/ClickHouse/ClickHouse/pull/72294) ([Pavel Kruglov](https://github.com/Avogar))。この変更および関連するすべての修正を 24.11 にもバックポートしました。 +* [Iceberg data storage](https://iceberg.apache.org/spec/#file-system-operations) 形式のスキーマ進化機能により、ユーザーはテーブルのスキーマを柔軟に変更できます。カラムの順序やカラム名、単純な型の拡張などは、内部的に変更可能です。[#69445](https://github.com/ClickHouse/ClickHouse/pull/69445) ([Daniil Ivanik](https://github.com/divanik))。 +* Iceberg REST Catalog との統合: Iceberg という新しいデータベースエンジンを導入し、カタログ全体を ClickHouse に統合できるようにしました。 [#71542](https://github.com/ClickHouse/ClickHouse/pull/71542) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `MergeTree` テーブルのプライマリキー索引用キャッシュを追加しました(テーブル設定 `use_primary_key_cache` で有効化可能)。プライマリキー索引でレイジーロードとキャッシュの両方が有効な場合、プライマリキー索引は常にメモリ上に保持するのではなく、Mark キャッシュと同様にオンデマンドでキャッシュへロードされます。データパーツの insert / merge / fetch 時およびテーブルの再起動時にプライマリキー索引を事前ウォームアップする機能を追加しました(設定 `prewarm_primary_key_cache` で有効化可能)。これにより、共有ストレージ上の巨大なテーブルのメモリ使用量を削減でき、1 千兆行を超えるテーブルでテスト済みです。 [#72102](https://github.com/ClickHouse/ClickHouse/pull/72102) ([Anton Popov](https://github.com/CurtizJ)). [#72750](https://github.com/ClickHouse/ClickHouse/pull/72750) ([Alexander Gololobov](https://github.com/davenger)). +* 指定したテーブル、またはテーブルが指定されていない場合はすべてのテーブルについて、すべてのパーツのプライマリキーインデックスをロードする `SYSTEM LOAD PRIMARY KEY` コマンドを実装しました。これはベンチマークに役立ち、クエリ実行時の追加レイテンシーを防ぐのに有用です。 [#66252](https://github.com/ClickHouse/ClickHouse/pull/66252) [#67733](https://github.com/ClickHouse/ClickHouse/pull/67733) ([ZAWA_ll](https://github.com/Zawa-ll)). +* `MergeTree` テーブルを `ReplicatedMergeTree` として、またその逆にもアタッチできるクエリを追加しました。`ATTACH TABLE ... AS REPLICATED` および `ATTACH TABLE ... AS NOT REPLICATED`。 [#65401](https://github.com/ClickHouse/ClickHouse/pull/65401) ([Kirill](https://github.com/kirillgarbar)). +* 新しい設定 `http_response_headers` により、HTTP レスポンスヘッダーをカスタマイズできるようになりました。たとえば、データベースに保存されている画像をブラウザに画像として表示させることができます。これにより [#59620](https://github.com/ClickHouse/ClickHouse/issues/59620) が解決されました。 [#72656](https://github.com/ClickHouse/ClickHouse/pull/72656)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `DateTime64` を秒単位の固定精度の `Int64` 値に変換する関数 `toUnixTimestamp64Second` を追加しました。これにより、日時が Unix エポックより前の場合に負の値を返せるようになりました。 [#70597](https://github.com/ClickHouse/ClickHouse/pull/70597) ([zhanglistar](https://github.com/zhanglistar)). [#73146](https://github.com/ClickHouse/ClickHouse/pull/73146) ([Robert Schulze](https://github.com/rschu1ze)). +* 新しい設定 `enforce_index_structure_match_on_partition_manipulation` を追加し、ソーステーブルの PROJECTION およびセカンダリ索引の集合がターゲットテーブルのそれらの集合の部分集合である場合に ATTACH を許可するようにしました。[#70602](https://github.com/ClickHouse/ClickHouse/issues/70602) をクローズ。[#70603](https://github.com/ClickHouse/ClickHouse/pull/70603)([zwy991114](https://github.com/zwy991114))。 +* ALTER USER `{ADD|MODIFY|DROP SETTING}`、ALTER USER `{ADD|DROP PROFILE}` の構文を追加しました。同様の構文が ALTER ROLE および ALTER PROFILE にも追加されています。これにより、設定のセット全体をすべて置き換える代わりに、個別に変更できるようになりました。 [#72050](https://github.com/ClickHouse/ClickHouse/pull/72050) ([pufit](https://github.com/pufit)). +* `arrayPRAUC` 関数を追加しました。この関数は Precision-Recall 曲線の AUC(Area Under the Curve)を計算します。 [#72073](https://github.com/ClickHouse/ClickHouse/pull/72073) ([Emmanuel](https://github.com/emmanuelsdias))。 +* 配列型向けに `indexOfAssumeSorted` 関数を追加しました。非減少順(昇順)にソートされた配列に対する検索を最適化します。効果が現れるのは、非常に大きな配列(10万要素超)の場合です。 [#72517](https://github.com/ClickHouse/ClickHouse/pull/72517) ([Eric Kurbanov](https://github.com/erickurbanov))。 +* 集約関数 `groupConcat` で、第 2 引数として区切り文字を任意に指定できるようになりました。 [#72540](https://github.com/ClickHouse/ClickHouse/pull/72540) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* `from` 引数に含まれる文字が `to` 引数より多い場合に、余分な文字の削除をサポートするように `translate` 関数が拡張されました。例: `SELECT translate('clickhouse', 'clickhouse', 'CLICK')` は、`CLICK` を返すようになりました。 [#71441](https://github.com/ClickHouse/ClickHouse/pull/71441) ([shuai.xu](https://github.com/shuai-xu)). + +#### 実験的機能 {#experimental-features} + +* MergeTree の新しい設定 `allow_experimental_reverse_key` が追加され、MergeTree のソートキーで降順ソートをサポートするようになりました。これは時系列分析、特に TopN クエリに有用です。使用例: `ENGINE = MergeTree ORDER BY (time DESC, key)` - `time` フィールドを降順にソートします。 [#71095](https://github.com/ClickHouse/ClickHouse/pull/71095) ([Amos Bird](https://github.com/amosbird))。 + +#### パフォーマンスの向上 {#performance-improvement} + +* JOIN の並べ替え。クエリプランで inner(ビルド)側として扱う JOIN の片側のテーブルを選択できるオプションを追加しました。これは `query_plan_join_swap_table` で制御され、`auto` に設定可能です。このモードでは、ClickHouse は行数が最も少ないテーブルを選択しようとします。 [#71577](https://github.com/ClickHouse/ClickHouse/pull/71577) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* `join_algorithm` 設定が `default` に設定されている場合(該当する場合)、`parallel_hash` アルゴリズムが使用されるようになりました。`parallel_hash` が使用できない場合には、従来の 2 つの方式(`direct` および `hash`)が引き続き使用候補となります。 [#70788](https://github.com/ClickHouse/ClickHouse/pull/70788) ([Nikita Taranov](https://github.com/nickitat)). +* `WHERE` と `ON` の式から共通部分を抽出し、JOIN 時に使用されるハッシュテーブルの数を削減するオプションを追加しました。これは、JOIN の ON 条件が、異なる OR 句内で AND で結合された共通部分を含んでいる場合に有効です。`optimize_extract_common_expressions = 1` で有効化できます。 [#71537](https://github.com/ClickHouse/ClickHouse/pull/71537) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* `SELECT` において、インデックスが作成されているカラムが `LowCardinality(String)` に CAST されている場合でもインデックスを使用できるようにしました。これは、一部のテーブルが `String` 型のカラムを持ち、別のテーブルが `LowCardinality(String)` 型のカラムを持つような Merge テーブルに対してクエリを実行する場合などに発生し得ます。 [#71598](https://github.com/ClickHouse/ClickHouse/pull/71598) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* 並列レプリカを用いたクエリ実行時に `local` プランが有効な場合、ワーカー側では索引解析を実行しません。コーディネーターは、自身(クエリの発行元)側での索引解析に基づき、ワーカーが読み取る範囲を選択します。これにより、並列レプリカを用いる短時間のクエリでも、単一ノードのクエリと同等の低レイテンシーで実行できます。 [#72109](https://github.com/ClickHouse/ClickHouse/pull/72109) ([Igor Nikonov](https://github.com/devcrafter))。 +* オブジェクトストレージディスク向けに `clickhouse disks remove --recursive` のメモリ使用量を削減しました。 [#67323](https://github.com/ClickHouse/ClickHouse/pull/67323) ([Kirill](https://github.com/kirillgarbar))。 +* [#57631](https://github.com/ClickHouse/ClickHouse/pull/57631) で導入された、コンパクトなパーツ内の単一カラムに対するサブカラム読み取りの最適化を復元しました。これは誤って削除されていました。[#72285](https://github.com/ClickHouse/ClickHouse/pull/72285)([Pavel Kruglov](https://github.com/Avogar))。 +* コンパレータ内の呼び出しをデバーチャル化することで、`LowCardinality(String)` カラムのソートを高速化しました。 [#72337](https://github.com/ClickHouse/ClickHouse/pull/72337) ([Alexander Gololobov](https://github.com/davenger)). +* 一部の単純なデータ型に対して `argMin`/`argMax` 関数を最適化しました。 [#72350](https://github.com/ClickHouse/ClickHouse/pull/72350) ([alesapin](https://github.com/alesapin))。 +* メモリトラッカーにおける共有ロックの利用を最適化し、ロック競合を低減することで、CPU コア数が非常に多いシステムでのパフォーマンスを向上します。 [#72375](https://github.com/ClickHouse/ClickHouse/pull/72375) ([Jiebin Sun](https://github.com/jiebinn))。 +* 新しい設定 `use_async_executor_for_materialized_views` を追加。materialized view のクエリを非同期かつ必要に応じてマルチスレッドで実行することで、INSERT 中の materialized view の処理を高速化できる一方、より多くのメモリを消費する可能性がある。 [#72497](https://github.com/ClickHouse/ClickHouse/pull/72497) ([alesapin](https://github.com/alesapin))。 +* 集約関数の状態(データ型 `AggregateFunction` および分散クエリ内)のデシリアライズ処理の性能を向上しました。フォーマット `RowBinary` のパース性能もわずかに向上しました。 [#72818](https://github.com/ClickHouse/ClickHouse/pull/72818) ([Anton Popov](https://github.com/CurtizJ)). +* テーブルのキー順に、パラレルレプリカでの読み取り時のレンジを分割することで、読み取り時のメモリ消費を削減しました。 [#72173](https://github.com/ClickHouse/ClickHouse/pull/72173) ([JIaQi](https://github.com/JiaQiTang98)). +* 挿入バッチ内のパーティションキーの値が単一の場合、MergeTree への挿入を高速化しました。 [#72348](https://github.com/ClickHouse/ClickHouse/pull/72348) ([alesapin](https://github.com/alesapin)). +* バックアップから復元する際に、テーブルの作成を並列で実行できるようにしました。このPR以前は、`RESTORE` コマンドは常に単一スレッドでテーブルを作成していたため、多数のテーブルを含むバックアップの場合は遅くなる可能性がありました。 [#72427](https://github.com/ClickHouse/ClickHouse/pull/72427) ([Vitaly Baranov](https://github.com/vitlibar))。 +* マークキャッシュが大きい場合、それを削除するのに目立って時間がかかることがあります。この処理の間、コンテキストミューテックスを保持していると、多くの他の処理がブロックされ、新しいクライアント接続ですらミューテックスが解放されるまで確立できません。そもそも同期のためにこのミューテックスを保持しておく必要はなく、`shared_ptr` を介してキャッシュへのローカル参照を持つだけで十分です。 [#72749](https://github.com/ClickHouse/ClickHouse/pull/72749) ([Alexander Gololobov](https://github.com/davenger))。 + +#### 改善点 {#improvement} + +* `allow_experimental_join_condition` 設定を削除し、非等値条件がデフォルトで許可されるようにしました。 [#69910](https://github.com/ClickHouse/ClickHouse/pull/69910) ([Vladimir Cherkasov](https://github.com/vdimir)). +* サーバー設定ファイル(users.xml)で定義された Settings がクライアント側にも適用されるようになりました。`date_time_output_format` などのフォーマット用 Settings に便利です。 [#71178](https://github.com/ClickHouse/ClickHouse/pull/71178) ([Michael Kolupaev](https://github.com/al13n321)). +* サーバー/USER のメモリ使用量に応じて、`GROUP BY` / `ORDER BY` 処理を自動的にディスクベースに切り替えます。`max_bytes_ratio_before_external_group_by` / `max_bytes_ratio_before_external_sort` クエリ設定で制御できます。[#71406](https://github.com/ClickHouse/ClickHouse/pull/71406) ([Azat Khuzhin](https://github.com/azat))。 +* 新しいキャンセルロジックを追加しました: `CancellationChecker` は開始されたすべてのクエリのタイムアウトを監視し、タイムアウトに達したクエリを停止します。 [#69880](https://github.com/ClickHouse/ClickHouse/pull/69880) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* `Object` 型から `JSON` 型への ALTER をサポートし、非推奨となった Object 型から簡単に移行できるようにしました。 [#71784](https://github.com/ClickHouse/ClickHouse/pull/71784) ([Pavel Kruglov](https://github.com/Avogar)). +* Enum に定義されていない値を Set で許可しました。[#72662](https://github.com/ClickHouse/ClickHouse/issues/72662) を修正。 [#72686](https://github.com/ClickHouse/ClickHouse/pull/72686)([zhanglistar](https://github.com/zhanglistar))。 +* `Enum` データ型で LIKE などの文字列検索演算子をサポートし、[#72661](https://github.com/ClickHouse/ClickHouse/issues/72661) を実装しました。 [#72732](https://github.com/ClickHouse/ClickHouse/pull/72732)([zhanglistar](https://github.com/zhanglistar))。 +* 一部の意味のない `ALTER USER` クエリが受け付けられていました。[#71227](https://github.com/ClickHouse/ClickHouse/issues/71227) を修正しました。[#71286](https://github.com/ClickHouse/ClickHouse/pull/71286)([Arthur Passos](https://github.com/arthurpassos))。 +* 分散 `INSERT ... SELECT` のクエリプランを構築する際に、設定 `prefer_locahost_replica` を考慮するようにしました。 [#72190](https://github.com/ClickHouse/ClickHouse/pull/72190) ([filimonov](https://github.com/filimonov)). +* Azure が Iceberg 仕様に違反し、誤って Iceberg v1 を Iceberg v2 とラベル付けしていました。この問題は[ここで説明されています](https://github.com/ClickHouse/ClickHouse/issues/72091)。Azure Iceberg Writer は、仕様に反する Iceberg メタデータファイル(およびマニフェストファイル)を作成します。その結果、(Azure がそのように書いているため)v2 リーダーで v1 Iceberg 形式のメタデータを読み取ろうとしており、さらにマニフェストファイル内に対応するフィールドが作成されていなかった場合にエラーを発生させるようにしました。[#72277](https://github.com/ClickHouse/ClickHouse/pull/72277)([Daniil Ivanik](https://github.com/divanik))。 +* `CREATE MATERIALIZED VIEW` のクエリで `UNION [ALL]` を使用できるようになりました。動作は `JOIN` を使用した materialized view と同じで、`SELECT` 式内の最初のテーブルだけが挿入のトリガーとして機能し、他のすべてのテーブルは無視されます。ただし、最初のテーブルへの参照が複数ある場合(たとえば、自身との UNION など)の場合は、それらすべてが挿入されたデータブロックとして処理されます。 [#72347](https://github.com/ClickHouse/ClickHouse/pull/72347) ([alesapin](https://github.com/alesapin)). +* ClickHouse を Dictionary のソースとして使用する場合のソースクエリ検証を追加しました。 [#72548](https://github.com/ClickHouse/ClickHouse/pull/72548) ([Alexey Katsman](https://github.com/alexkats)). +* ClickHouse が設定の再読み込み時にも ZooKeeper の変更を確実に検知できるようにしました。 [#72593](https://github.com/ClickHouse/ClickHouse/pull/72593) ([Azat Khuzhin](https://github.com/azat)). +* キャッシュされたマークのメモリ使用量の推定をより適切にし、キャッシュ全体のメモリ使用量を削減。 [#72630](https://github.com/ClickHouse/ClickHouse/pull/72630) ([Antonio Andelic](https://github.com/antonio2368)). +* 新しい `StartupScriptsExecutionState` メトリクスを追加しました。このメトリクスは次の 3 つの値を取ります: 0 = スタートアップスクリプトがまだ完了していない、1 = スタートアップスクリプトが正常に実行された、2 = スタートアップスクリプトの実行が失敗した。Cloud において、特にベース構成へのリリース後にスタートアップスクリプトが正常に実行されているかどうかを把握する必要があるため、このメトリクスが必要です。 [#72637](https://github.com/ClickHouse/ClickHouse/pull/72637) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* 新しい `MergeTreeIndexGranularityInternalArraysTotalSize` メトリクスを `system.metrics` に追加しました。このメトリクスは、大規模なデータセットを持ち、高い +* レプリケーテッドテーブルの作成時にリトライ処理を追加。 [#72682](https://github.com/ClickHouse/ClickHouse/pull/72682) ([Vitaly Baranov](https://github.com/vitlibar)). +* 非アクティブなパーツも含めた合計バイト数をカウントできるよう、`system.tables` に `total_bytes_with_inactive` を追加しました。 [#72690](https://github.com/ClickHouse/ClickHouse/pull/72690) ([Kai Zhu](https://github.com/nauu)). +* MergeTree の設定を `system.settings_changes` に追加しました。 [#72694](https://github.com/ClickHouse/ClickHouse/pull/72694) ([Raúl Marín](https://github.com/Algunenano)). +* `notEmpty` 関数で JSON 型をサポートしました。 [#72741](https://github.com/ClickHouse/ClickHouse/pull/72741) ([Pavel Kruglov](https://github.com/Avogar))。 +* GCS S3 エラー `AuthenticationRequired` の解析に対応しました。 [#72753](https://github.com/ClickHouse/ClickHouse/pull/72753) ([Vitaly Baranov](https://github.com/vitlibar))。 +* 関数 `ifNull` および `coalesce` で `Dynamic` 型をサポートしました。 [#72772](https://github.com/ClickHouse/ClickHouse/pull/72772) ([Pavel Kruglov](https://github.com/Avogar)). +* 関数 `toFloat64`、`touInt32` などで `Dynamic` をサポートしました。 [#72989](https://github.com/ClickHouse/ClickHouse/pull/72989) ([Pavel Kruglov](https://github.com/Avogar)). +* S3 リクエスト用の設定 `http_max_fields`、`http_max_field_name_size`、`http_max_field_value_size` を追加し、バックアップの作成や復元時に S3 API レスポンスを解析する際にこれらを使用するようにしました。 [#72778](https://github.com/ClickHouse/ClickHouse/pull/72778) ([Vitaly Baranov](https://github.com/vitlibar)). +* Storage S3(Azure)Queue において、このメタデータを使用している最後のテーブルが削除された後にのみ、ClickHouse Keeper 内のテーブルメタデータを削除するように変更しました。 [#72810](https://github.com/ClickHouse/ClickHouse/pull/72810) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `JoinBuildTableRowCount`/`JoinProbeTableRowCount`/`JoinResultRowCount` プロファイルイベントを追加しました。 [#72842](https://github.com/ClickHouse/ClickHouse/pull/72842) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* MergeTree のソートキーおよびスキップ索引でサブカラムをサポートしました。 [#72644](https://github.com/ClickHouse/ClickHouse/pull/72644) ([Pavel Kruglov](https://github.com/Avogar)). + +#### バグ修正(公式安定版リリースにおけるユーザーに見える不具合) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* MergeTree で、パーツを detached ディレクトリへ移動する操作が(オブジェクトストレージ上での操作が原因で)失敗した後に、パーツ同士が交差する可能性があった問題を修正しました。 [#70476](https://github.com/ClickHouse/ClickHouse/pull/70476) ([Azat Khuzhin](https://github.com/azat)). +* テーブル名が長すぎる場合のエラー検知を修正し、許容される最大長を示す診断メッセージを出力するようにしました。新しい関数 `getMaxTableNameLengthForDatabase` を追加しました。 [#70810](https://github.com/ClickHouse/ClickHouse/pull/70810) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* `clickhouse-library-bridge`(このプログラムは安全ではないライブラリを実行できるようにします)のクラッシュ後に発生していたゾンビプロセスの問題を修正しました。 [#71301](https://github.com/ClickHouse/ClickHouse/pull/71301) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* `plain_rewritable` ディスクでディレクトリの作成に失敗した際に、トランザクションのロールバック中に発生していた NoSuchKey エラーを修正しました。 [#71439](https://github.com/ClickHouse/ClickHouse/pull/71439) ([Julia Kartseva](https://github.com/jkartseva)). +* `Pretty` JSON フォーマットにおける `Dynamic` 値のシリアル化を修正。 [#71923](https://github.com/ClickHouse/ClickHouse/pull/71923) ([Pavel Kruglov](https://github.com/Avogar)). +* `File`/`S3`/`URL`/`HDFS`/`Azure` エンジンの CREATE クエリに、自動的に推論されたフォーマット名を追加しました。以前はサーバーを再起動するたびにフォーマット名が推論され、指定されたデータファイルが削除されていると、サーバー起動時にエラーが発生していました。 [#72108](https://github.com/ClickHouse/ClickHouse/pull/72108) ([Pavel Kruglov](https://github.com/Avogar)). +* 古いアナライザを使用している場合に `JOIN ON` 句の式内で UDF を使用すると発生するバグを修正。 [#72179](https://github.com/ClickHouse/ClickHouse/pull/72179) ([Raúl Marín](https://github.com/Algunenano))。 +* `StorageObjectStorage` のいくつかの小さなバグを修正します。`use_hive_partitioning` をデフォルトで有効にする必要があります。 [#72185](https://github.com/ClickHouse/ClickHouse/pull/72185) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* `min_age_to_force_merge_on_partition_only` が、すでに 1 つのパーツにマージ済みの同じパーティションを繰り返しマージしようとしてハングし、複数のパーツを持つパーティションをマージしない問題を修正。 [#72209](https://github.com/ClickHouse/ClickHouse/pull/72209) ([Christoph Wurm](https://github.com/cwurm))。 +* まれなケースですが、スパースなカラムを処理する際に発生していた `SimpleSquashingChunksTransform` のクラッシュを修正しました。 [#72226](https://github.com/ClickHouse/ClickHouse/pull/72226) ([Vladimir Cherkasov](https://github.com/vdimir)). +* `GraceHashJoin` 内のデータレースを修正しました。これにより、結合結果から一部の行が欠落する可能性がありました。 [#72233](https://github.com/ClickHouse/ClickHouse/pull/72233) ([Nikita Taranov](https://github.com/nickitat)). +* `enable_block_number_column` 設定が有効な場合における、マテリアライズドされた `_block_number` カラムを含む `ALTER DELETE` クエリの問題を修正しました。 [#72261](https://github.com/ClickHouse/ClickHouse/pull/72261) ([Anton Popov](https://github.com/CurtizJ)). +* `ConcurrentHashJoin` のコンストラクタ内などで `ColumnDynamic::dumpStructure()` が並行して呼び出された場合に発生していたデータレースを修正しました。 [#72278](https://github.com/ClickHouse/ClickHouse/pull/72278) ([Nikita Taranov](https://github.com/nickitat))。 +* `ORDER BY ... WITH FILL` で重複したカラムがある場合に生じる可能性がある `LOGICAL_ERROR` を修正。 [#72387](https://github.com/ClickHouse/ClickHouse/pull/72387) ([Vladimir Cherkasov](https://github.com/vdimir)). +* `optimize_functions_to_subcolumns` を適用した後、複数の箇所で発生していた型の不一致を修正しました。 [#72394](https://github.com/ClickHouse/ClickHouse/pull/72394) ([Anton Popov](https://github.com/CurtizJ)). +* `AWS_CONTAINER_AUTHORIZATION_TOKEN_PATH` の代わりに `AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE` を使用するようにしました。[#71074](https://github.com/ClickHouse/ClickHouse/issues/71074) を修正。 [#72397](https://github.com/ClickHouse/ClickHouse/pull/72397)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* `BACKUP DATABASE db EXCEPT TABLES db.table` クエリのパースに失敗する問題を修正しました。 [#72429](https://github.com/ClickHouse/ClickHouse/pull/72429) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* 空の `Variant` を作成できないようにしました。[#72454](https://github.com/ClickHouse/ClickHouse/pull/72454) ([Pavel Kruglov](https://github.com/Avogar)). +* `system.merges` における `result_part_path` の無効な形式を修正。 [#72567](https://github.com/ClickHouse/ClickHouse/pull/72567) ([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 要素が 1 つだけのグロブ(`{file}` など)の解析処理を修正しました。 [#72572](https://github.com/ClickHouse/ClickHouse/pull/72572) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* `ARRAY JOIN` を含む分散クエリにおいて、フォロワーサーバー向けのクエリ生成を修正しました。[#69276](https://github.com/ClickHouse/ClickHouse/issues/69276) を修正します。 [#72608](https://github.com/ClickHouse/ClickHouse/pull/72608)([Dmitry Novik](https://github.com/novikd))。 +* `DateTime64` 型同士の `IN` 演算(`DateTime64 IN DateTime64`)で結果が返らないバグを修正しました。 [#72640](https://github.com/ClickHouse/ClickHouse/pull/72640) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* `flatten_nested=0` で作成されたテーブルを持つ Replicated データベースに新しいレプリカを追加する際に発生していたメタデータの不整合を修正しました。 [#72685](https://github.com/ClickHouse/ClickHouse/pull/72685) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Keeper の内部通信向けの高度な SSL 構成を修正。 [#72730](https://github.com/ClickHouse/ClickHouse/pull/72730) ([Antonio Andelic](https://github.com/antonio2368))。 +* S3Queue の unordered モードで、`tracked_files_limit` の設定値が S3 のファイル出現頻度よりも小さい場合に発生していた「No such key」エラーを修正しました。 [#72738](https://github.com/ClickHouse/ClickHouse/pull/72738) ([Kseniia Sumarokova](https://github.com/kssenii)). +* ローカルに該当ユーザーが存在しない場合に RemoteQueryExecutor でスローされる例外を修正。 [#72759](https://github.com/ClickHouse/ClickHouse/pull/72759) ([Andrey Zvonov](https://github.com/zvonand)). +* マテリアライズされた `_block_number` カラムを持つミューテーションの不具合を修正しました(`enable_block_number_column` 設定が有効な場合)。 [#72854](https://github.com/ClickHouse/ClickHouse/pull/72854) ([Anton Popov](https://github.com/CurtizJ)). +* バックアップ内に空のファイルが含まれている場合でも、プレーンな書き換え可能ディスクでのバックアップ/リストアが正しく動作するよう修正しました。 [#72858](https://github.com/ClickHouse/ClickHouse/pull/72858) ([Kseniia Sumarokova](https://github.com/kssenii)). +* DistributedAsyncInsertDirectoryQueue における挿入のキャンセルを適切に行えるよう修正しました。 [#72885](https://github.com/ClickHouse/ClickHouse/pull/72885) ([Antonio Andelic](https://github.com/antonio2368)). +* 誤ったデータをスパースなカラムにパースする際にクラッシュする不具合を修正しました(`enable_parsing_to_custom_serialization` 設定を有効にしている場合に発生する可能性があります)。[#72891](https://github.com/ClickHouse/ClickHouse/pull/72891) ([Anton Popov](https://github.com/CurtizJ)). +* バックアップ復元時にクラッシュが発生する可能性のあった問題を修正。 [#72947](https://github.com/ClickHouse/ClickHouse/pull/72947) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `ON` 句に不等号を用いた複雑な条件が含まれている場合に発生する可能性があった `parallel_hash` JOIN メソッドのバグを修正しました。 [#72993](https://github.com/ClickHouse/ClickHouse/pull/72993) ([Nikita Taranov](https://github.com/nickitat)). +* JSON のパース時にはデフォルトのフォーマット設定を使用して、不正なデシリアライズを防ぎます。[#73043](https://github.com/ClickHouse/ClickHouse/pull/73043) ([Pavel Kruglov](https://github.com/Avogar))。 +* サポートされていないストレージを使用するトランザクションで発生していたクラッシュを修正。 [#73045](https://github.com/ClickHouse/ClickHouse/pull/73045) ([Raúl Marín](https://github.com/Algunenano)). +* `MemoryTracking` と `MemoryResident` の差分が増え続ける場合に、メモリトラッキングが過大評価される可能性があった問題を修正しました。 [#73081](https://github.com/ClickHouse/ClickHouse/pull/73081) ([Azat Khuzhin](https://github.com/azat)). +* Tuple のパース中に重複した JSON キーをチェックするようになりました。以前はこれにより、パース中に論理エラー `Invalid number of rows in Chunk` が発生する可能性がありました。 [#73082](https://github.com/ClickHouse/ClickHouse/pull/73082) ([Pavel Kruglov](https://github.com/Avogar)). + +#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement} + +* これまで `/utils` フォルダに格納され、ソースからの手動コンパイルが必要だった小さなユーティリティはすべて、メインの ClickHouse バンドルに統合されました。これにより次の issue が解決されました: [#72404](https://github.com/ClickHouse/ClickHouse/issues/72404)。[#72426](https://github.com/ClickHouse/ClickHouse/pull/72426)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* 22.3 で導入された `/etc/systemd/system/clickhouse-server.service` の削除処理を廃止しました。[#39323](https://github.com/ClickHouse/ClickHouse/issues/39323)。[#72259](https://github.com/ClickHouse/ClickHouse/pull/72259)([Mikhail f. Shiryaev](https://github.com/Felixoid))。 +* メモリ/CPU 制限によりコンパイルが失敗するのを避けるため、大きな翻訳単位を分割しました。[#72352](https://github.com/ClickHouse/ClickHouse/pull/72352)([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 +* OSX: ICU サポート付きでビルドし、照合順序、文字セット変換、その他のローカライゼーション機能を有効にしました。[#73083](https://github.com/ClickHouse/ClickHouse/pull/73083)([Raúl Marín](https://github.com/Algunenano))。 + +### ClickHouse リリース 24.11(2024-11-26)。[プレゼンテーション](https://presentations.clickhouse.com/2024-release-24.11/)、[動画](https://www.youtube.com/watch?v=0hpTvtq__4g) {#a-id2411a-clickhouse-release-2411-2024-11-26} + + + +#### 後方互換性のない変更 {#backward-incompatible-change-1} + +* システムテーブル `generate_series` および `generateSeries` を削除しました。これらは誤って追加されていました: [#59390](https://github.com/ClickHouse/ClickHouse/issues/59390)。[#71091](https://github.com/ClickHouse/ClickHouse/pull/71091)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `StorageExternalDistributed` を削除しました。[#70600](https://github.com/ClickHouse/ClickHouse/issues/70600) をクローズします。[#71176](https://github.com/ClickHouse/ClickHouse/pull/71176)([flynn](https://github.com/ucasfl))。 +* テーブルエンジン Kafka、NATS、RabbitMQ は、`SOURCES` 階層内でそれぞれ専用の権限でカバーされるようになりました。これらのエンジン種別でテーブルを作成するデフォルト以外のデータベースユーザーには、該当する権限を追加してください。[#71250](https://github.com/ClickHouse/ClickHouse/pull/71250)([Christoph Wurm](https://github.com/cwurm))。 +* 実行前に、完全な mutation クエリ(サブクエリを含む)を検証するようになりました。これにより、誤って無効なクエリを実行してしまい、有効な mutation をブロックする不要な mutation が蓄積されることを防ぎます。[#71300](https://github.com/ClickHouse/ClickHouse/pull/71300)([Christoph Wurm](https://github.com/cwurm))。 +* ファイルシステムキャッシュの設定項目 `skip_download_if_exceeds_query_cache` を `filesystem_cache_skip_download_if_exceeds_per_query_cache_write_limit` に改名しました。[#71578](https://github.com/ClickHouse/ClickHouse/pull/71578)([Kseniia Sumarokova](https://github.com/kssenii))。 +* `deltaSumTimestamp` における `Enum` および `UInt128` と `UInt256` 引数のサポートを削除しました。また、`deltaSumTimestamp` の第2引数(「timestamp」)としての `Int8`、`UInt8`、`Int16`、`UInt16` のサポートも削除しました。[#71790](https://github.com/ClickHouse/ClickHouse/pull/71790)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* Dictionary storage、dictionary テーブル関数、または Dictionary 自体への直接 `SELECT` により dictionary からデータを直接取得する場合、Dictionary に対する `SELECT` 権限または `dictGet` 権限のいずれかがあれば十分になりました。これは ACL 回避を防ぐこれまでの試み(https://github.com/ClickHouse/ClickHouse/pull/57362 および https://github.com/ClickHouse/ClickHouse/pull/65359)と整合するものであり、後者を後方互換にします。[#72051](https://github.com/ClickHouse/ClickHouse/pull/72051)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 + +#### 実験的機能 {#experimental-feature} + +* すべての実験的/ベータ機能を無効化するグローバルスイッチとして `allow_feature_tier` を実装しました。[#71841](https://github.com/ClickHouse/ClickHouse/pull/71841) [#71145](https://github.com/ClickHouse/ClickHouse/pull/71145) ([Raúl Marín](https://github.com/Algunenano)). +* JSON サブカラム用ファイルで特殊記号がエスケープされていないことにより発生し得る `No such file or directory` エラーを修正しました。[#71182](https://github.com/ClickHouse/ClickHouse/pull/71182) ([Pavel Kruglov](https://github.com/Avogar)). +* String から JSON への ALTER をサポートしました。この PR では、JSON 型および Dynamic 型のシリアライゼーションを新しいバージョン V2 に変更しています。古いバージョン V1 も、`merge_tree_use_v1_object_and_dynamic_serialization` を有効化することで引き続き使用できます(アップグレード時に、問題なくバージョンをロールバックできるようにするために利用できます)。[#70442](https://github.com/ClickHouse/ClickHouse/pull/70442) ([Pavel Kruglov](https://github.com/Avogar)). +* JSON 文字列からのシリアライズ/デシリアライズを通じて、Map/Tuple/Object から新しい JSON への単純な CAST を実装しました。[#71320](https://github.com/ClickHouse/ClickHouse/pull/71320) ([Pavel Kruglov](https://github.com/Avogar)). +* 予期しない結果を招く可能性があるため、デフォルトでは ORDER BY/GROUP BY/PARTITION BY/PRIMARY KEY に Variant/Dynamic 型を使用できないようにしました。[#69731](https://github.com/ClickHouse/ClickHouse/pull/69731) ([Pavel Kruglov](https://github.com/Avogar)). +* 混乱を避けるため、min/max 関数で Dynamic/Variant 型の使用を禁止しました。[#71761](https://github.com/ClickHouse/ClickHouse/pull/71761) ([Pavel Kruglov](https://github.com/Avogar)). + +#### 新機能 {#new-feature-1} + +* ワークロードおよびリソース管理を記述するための SQL 構文を追加しました。 https://clickhouse.com/docs/operations/workload-scheduling. [#69187](https://github.com/ClickHouse/ClickHouse/pull/69187) ([Sergei Trifonov](https://github.com/serxa)). +* 新しいデータ型 `BFloat16` を追加しました。これは、8 ビットの指数部と符号部、および 7 ビットの仮数部をもつ 16 ビット浮動小数点数を表します。これにより [#44206](https://github.com/ClickHouse/ClickHouse/issues/44206) および [#49937](https://github.com/ClickHouse/ClickHouse/issues/49937) が解決されます。 [#64712](https://github.com/ClickHouse/ClickHouse/pull/64712) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 現在のユーザー/ロールに特定の権限が付与されているかどうか、また対応するテーブル/カラムがメモリ内に存在するかどうかを確認する `CHECK GRANT` クエリを追加しました。 [#68885](https://github.com/ClickHouse/ClickHouse/pull/68885) ([Unalian](https://github.com/Unalian)). +* `iceberg[S3;HDFS;Azure]Cluster`, `deltaLakeCluster`, `hudiCluster` テーブル関数を追加しました。 [#72045](https://github.com/ClickHouse/ClickHouse/pull/72045) ([Mikhail Artemenko](https://github.com/Michicosun)). +* http_handlers(`dynamic_query_handler` / `predefined_query_handler`)でユーザー名/パスワードを設定できるようにしました。 [#70725](https://github.com/ClickHouse/ClickHouse/pull/70725) ([Azat Khuzhin](https://github.com/azat)). +* ORDER BY WITH FILL 演算子における staleness 句のサポートを追加しました。 [#71151](https://github.com/ClickHouse/ClickHouse/pull/71151) ([Mikhail Artemenko](https://github.com/Michicosun)). +* 各認証方式に独自の有効期限を持たせられるようにし、USER エンティティからは削除しました。 [#70090](https://github.com/ClickHouse/ClickHouse/pull/70090) ([Arthur Passos](https://github.com/arthurpassos)). +* 新しい関数 `parseDateTime64`, `parseDateTime64OrNull`, `parseDateTime64OrZero` を追加しました。既存の関数 `parseDateTime`(およびそのバリエーション)と比較して、`DateTime` ではなく `DateTime64` 型の値を返します。 [#71581](https://github.com/ClickHouse/ClickHouse/pull/71581) ([kevinyhzou](https://github.com/KevinyhZou)). + +#### パフォーマンスの改善 {#performance-improvement-1} + +* パーツにおいて粒度が一定である場合、インデックス粒度の値に対するメモリ使用量を最適化しました。パーツに対して常に一定の粒度を選択できる機能(`use_const_adaptive_granularity` 設定)を追加し、メモリ上で常に最適化されるようにしました。これにより、大規模なワークロード(共有ストレージ上で数兆行規模)において、データパーツのメタデータ(インデックス粒度の値)によるメモリ使用量が継続的に増加することを防げます。 [#71786](https://github.com/ClickHouse/ClickHouse/pull/71786) ([Anton Popov](https://github.com/CurtizJ))。 +* `join_algorithm = 'parallel_hash'` の場合、並列処理のためにスレッド間で分配する際に、入力ブロック内のカラムをコピーしなくなりました。 [#67782](https://github.com/ClickHouse/ClickHouse/pull/67782) ([Nikita Taranov](https://github.com/nickitat))。 +* 互いに交差しないパーツに対して `Replacing` マージアルゴリズムを最適化しました。 [#70977](https://github.com/ClickHouse/ClickHouse/pull/70977) ([Anton Popov](https://github.com/CurtizJ)). +* metrics および system.detached_parts で、読み取り専用ディスクおよび write-once ディスク上のデタッチされたパーツを一覧表示しないようにしました。 [#71086](https://github.com/ClickHouse/ClickHouse/pull/71086) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 重い非同期メトリクスはデフォルトでは計算しないようにしました。この機能は [#40332](https://github.com/ClickHouse/ClickHouse/issues/40332) で導入されましたが、特定の一社のためだけに必要な重いバックグラウンドジョブを持つのは好ましくありません。[#71087](https://github.com/ClickHouse/ClickHouse/pull/71087)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `plain_rewritable` ディスクについて: ディレクトリを一覧表示する際にオブジェクトストレージ API を呼び出さないようにします。これはコスト効率が悪くなる可能性があるためです。代わりに、ファイル名のリストをメモリ内に保持します。その代償として、初期ロード時間の増加と、ファイル名を保持するために必要なメモリ量の増加が発生します。[#70823](https://github.com/ClickHouse/ClickHouse/pull/70823)([Julia Kartseva](https://github.com/jkartseva))。 +* クリティカルリージョンを縮小することで、`system.query_metric_log` の収集間隔におけるパフォーマンスと精度を改善しました。 [#71473](https://github.com/ClickHouse/ClickHouse/pull/71473) ([Pablo Marcos](https://github.com/pamarcos)). +* 仮想行を生成して読み取り順序を最適化し、特に複数のパーツが存在する場合にマージソート時の読み取りデータ量を削減。 [#62125](https://github.com/ClickHouse/ClickHouse/pull/62125) ([Shichao Jin](https://github.com/jsc0218)). +* サーバー設定 `async_load_system_database` を追加しました。これにより、システムデータベースの読み込みが完了していなくてもサーバーを起動できるようになります。システムテーブルが多数ある場合でも、ClickHouse をより高速に起動するのに役立ちます。 [#69847](https://github.com/ClickHouse/ClickHouse/pull/69847) ([Sergei Trifonov](https://github.com/serxa)). +* `clickhouse-compressor` に `--threads` パラメータを追加し、データを並列に圧縮できるようにしました。 [#70860](https://github.com/ClickHouse/ClickHouse/pull/70860) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* `prewarm_mark_cache` という設定を追加しました。これにより、挿入、マージ、パーツのフェッチ、およびテーブルの起動時に、mark を mark cache にロードできるようになります。 [#71053](https://github.com/ClickHouse/ClickHouse/pull/71053) ([Anton Popov](https://github.com/CurtizJ)). +* MergeTree テーブルエンジンファミリーでのメモリフットプリントを削減するため、メモリ上の index_granularity 配列を縮小しました。 [#71595](https://github.com/ClickHouse/ClickHouse/pull/71595) ([alesapin](https://github.com/alesapin)). +* ディスクを介さない読み取りに対してファイルシステムキャッシュ設定 `boundary_alignment` を無効化し、キャッシュを利用するスタンドアロンのリモートファイルからの読み取り性能を向上させました。 [#71827](https://github.com/ClickHouse/ClickHouse/pull/71827) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `SELECT * FROM table LIMIT ...` のようなクエリでは、実際には使用されない場合でも、以前はパートの索引が読み込まれていました。 [#71866](https://github.com/ClickHouse/ClickHouse/pull/71866) ([Alexander Gololobov](https://github.com/davenger))。 +* `parallel_replicas_local_plan` をデフォルトで有効にしました。クエリの起点ノード側で完全なローカルプランを構築することで、リソース消費を抑えつつ parallel replicas のパフォーマンスを向上させ、より多くのクエリ最適化を適用できる余地が生まれます。 [#70171](https://github.com/ClickHouse/ClickHouse/pull/70171) ([Igor Nikonov](https://github.com/devcrafter)). + +#### 改善点 {#improvement-1} + +* ファイルを引数として指定し、`ch queries.sql` のように ClickHouse を実行できるようになりました。 [#71589](https://github.com/ClickHouse/ClickHouse/pull/71589) ([Raúl Marín](https://github.com/Algunenano)). +* `Vertical` フォーマット(クエリの末尾を `\G` で終えると有効になるフォーマット)は、次のような Pretty フォーマットの機能を備えました: - 数値の千の位ごとの桁区切りのハイライト - 読み取りやすい数値チップの表示 [#71630](https://github.com/ClickHouse/ClickHouse/pull/71630) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* クラスター内の他のノードに、クエリの発行元から外部ユーザーロールをプッシュできるようにしました。外部認証基盤(LDAP など)にアクセスできるのが発行元ノードだけの場合に便利です。 [#70332](https://github.com/ClickHouse/ClickHouse/pull/70332) ([Andrey Zvonov](https://github.com/zvonand)). +* 集約関数 `any` に対して `anyRespectNulls`、`firstValueRespectNulls`、`anyValueRespectNulls` のエイリアスを追加しました。さらに、集約関数 `anyLast` に対して `anyLastRespectNulls` および `lastValueRespectNulls` のエイリアスも追加しました。これにより、`anyLast_respect_nullsStateIf` の代わりに `SELECT anyLastRespectNullsStateIf` のように、キャメルケースのみを用いた、アンダースコアとの混在がないより自然な構文を使用できるようになります。 [#71403](https://github.com/ClickHouse/ClickHouse/pull/71403) ([Peter Nguyen](https://github.com/petern48)). +* `date_time_utc` 設定パラメータを追加し、JSON ログのフォーマットで RFC 3339/ISO8601 形式の UTC 日時をサポートできるようにしました。 [#71560](https://github.com/ClickHouse/ClickHouse/pull/71560) ([Ali](https://github.com/xogoodnow))。 +* S3 エンドポイントでのユーザー認証向けに新しいヘッダータイプ(`access_header`)を追加しました。これにより、優先度が最も低いアクセスヘッダーを取得でき、その値は、他のソース(たとえばテーブルスキーマや名前付きコレクション)から取得される `access_key_id` によって上書きされるようになりました。 [#71011](https://github.com/ClickHouse/ClickHouse/pull/71011) ([MikhailBurdukov](https://github.com/MikhailBurdukov))。 +* 定数配列と定数としてキャプチャされた引数を持つ高階関数は、定数を返すようになりました。 [#58400](https://github.com/ClickHouse/ClickHouse/pull/58400) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* クエリプランのステップ名(`EXPLAIN PLAN json=1`)およびパイプラインのプロセッサ名(`EXPLAIN PIPELINE compact=0,graph=1`)に、一意の ID がサフィックスとして付与されるようになりました。これにより、プロセッサプロファイラーの出力および OpenTelemetry トレースを、EXPLAIN の出力と紐付けることができます。 [#63518](https://github.com/ClickHouse/ClickHouse/pull/63518) ([qhsong](https://github.com/qhsong)). +* Azure Blob Storage への書き込み後にオブジェクトが存在するかどうかを確認するオプションを追加しました。この動作は `check_objects_after_upload` を設定することで制御できます。 [#64847](https://github.com/ClickHouse/ClickHouse/pull/64847) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). +* `clickhouse-local` でデフォルトのデータベースとして `Atomic` を使用するようにしました。 [#50647](https://github.com/ClickHouse/ClickHouse/issues/50647) の項目 1 と 5 に対応します。 [#44817](https://github.com/ClickHouse/ClickHouse/issues/44817) をクローズします。 [#68024](https://github.com/ClickHouse/ClickHouse/pull/68024)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 例外は、エラーをクライアントに通知するために HTTP プロトコルに違反します。 [#68800](https://github.com/ClickHouse/ClickHouse/pull/68800) ([Sema Checherinda](https://github.com/CheSema))。 +* `replica_dir` を作成し、DDLWorker でレプリカをアクティブとしてマークすることで、分散 DDL クエリを実行しているホストをレポートできるようにしました。 [#69658](https://github.com/ClickHouse/ClickHouse/pull/69658) ([tuanpach](https://github.com/tuanpach)). +* distributed_ddl_output_mode が *_only_active に設定されている場合、データベースに対する ON CLUSTER クエリではアクティブなレプリカのみを待機するようにしました。 [#69660](https://github.com/ClickHouse/ClickHouse/pull/69660) ([tuanpach](https://github.com/tuanpach)). +* `ON CLUSTER` バックアップおよびリストアのエラー処理とキャンセル動作を改善しました: - あるホストでバックアップまたはリストアが失敗した場合、他のホスト上のバックアップ/リストアも自動的にキャンセルされます - 一部のホストが失敗し、他のホストが処理を継続している状況でも、不可解なエラーが出力されないようにしました - あるホストでバックアップまたはリストアがキャンセルされた場合、他のホスト上のバックアップ/リストアも自動的にキャンセルされます - `test_disallow_concurrency` に関する問題を修正し、同時実行の無効化がより適切に動作するようにしました - バックアップおよびリストアが ZooKeeper 切断に対して、これまでよりもはるかに堅牢になりました。 [#70027](https://github.com/ClickHouse/ClickHouse/pull/70027) ([Vitaly Baranov](https://github.com/vitlibar)). +* ストレージ S3Queue で一部の設定に対する `ALTER TABLE ... MODIFY/RESET SETTING ...` をサポートしました。 [#70811](https://github.com/ClickHouse/ClickHouse/pull/70811) ([Kseniia Sumarokova](https://github.com/kssenii)). +* サーバー証明書の再読み込み手順と同様に、クライアント証明書も再読み込みできるようにしました。 [#70997](https://github.com/ClickHouse/ClickHouse/pull/70997) ([Roman Antonov](https://github.com/Romeo58rus)). +* クライアント履歴サイズを設定可能にし、デフォルト値を増やしました。 [#71014](https://github.com/ClickHouse/ClickHouse/pull/71014) ([Jiří Kozlovský](https://github.com/jirislav)). +* Parquet ネイティブリーダーで Boolean 型をサポート。 [#71055](https://github.com/ClickHouse/ClickHouse/pull/71055) ([Arthur Passos](https://github.com/arthurpassos))。 +* S3 とやり取りする際に、"Malformed message" など、より多くの種類のエラーをリトライ対象としました。 [#71088](https://github.com/ClickHouse/ClickHouse/pull/71088) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 一部のS3関連メッセージのログレベルを下げました。 [#71090](https://github.com/ClickHouse/ClickHouse/pull/71090) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* スペースを含む名前の HDFS ファイルへの書き込みをサポートしました。 [#71105](https://github.com/ClickHouse/ClickHouse/pull/71105) ([exmy](https://github.com/exmy)). +* レプリケートされたテーブル、辞書、およびビューの数を制限する設定を追加しました。 [#71179](https://github.com/ClickHouse/ClickHouse/pull/71179) ([Kirill](https://github.com/kirillgarbar)). +* `AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE` が利用可能な場合は、`AWS_CONTAINER_AUTHORIZATION_TOKEN` の代わりに `AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE` を使用するようにしました。[#71074](https://github.com/ClickHouse/ClickHouse/issues/71074) を修正します。[#71269](https://github.com/ClickHouse/ClickHouse/pull/71269)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* `ReplicatedMergeTree` の再起動スレッドから `metadata_version` ZooKeeper ノードの作成処理を削除しました。このノードを作成する必要があるシナリオは、ユーザーが 20.4 より前のバージョンから 24.10 より後のバージョンへ直接アップグレードした場合のみです。ClickHouse は 1 年以上の期間をまたぐアップグレードをサポートしていないため、ノードを作成するのではなく、例外をスローしてユーザーに段階的なアップグレードを求めるべきです。[#71385](https://github.com/ClickHouse/ClickHouse/pull/71385)([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* 高度なダッシュボードにホスト単位のダッシュボード `Overview (host)` と `Cloud overview (host)` を追加。 [#71422](https://github.com/ClickHouse/ClickHouse/pull/71422) ([alesapin](https://github.com/alesapin)). +* `clickhouse-local` はデフォルトで暗黙の SELECT を使用しており、計算機として利用できます。暗黙の SELECT モードにおける構文ハイライトを改善しました。 [#71620](https://github.com/ClickHouse/ClickHouse/pull/71620) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* コマンドラインアプリケーションで、複数の文を含むクエリでも構文がハイライト表示されます。 [#71622](https://github.com/ClickHouse/ClickHouse/pull/71622) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* コマンドラインアプリケーションは、エラー発生時に 0 以外の終了コードを返すようになりました。以前のバージョンでは、`disks` アプリケーションはエラー発生時でも終了コード 0 を返しており、他のアプリケーションも、エラー 256(`PARTITION_ALREADY_EXISTS`)および 512(`SET_NON_GRANTED_ROLE`)の場合に終了コード 0 を返していました。 [#71623](https://github.com/ClickHouse/ClickHouse/pull/71623) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* user/group が ID で指定されている場合に `clickhouse su` が失敗していました。このパッチで `UID:GID` 形式も受け付けるようになりました。 [#71626](https://github.com/ClickHouse/ClickHouse/pull/71626) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* `filesystem_cache_prefer_bigger_buffer_size` 設定により、filesystem cache におけるメモリバッファ拡張を無効化できるようにしました。 [#71640](https://github.com/ClickHouse/ClickHouse/pull/71640) ([Kseniia Sumarokova](https://github.com/kssenii)). +* ファイルシステムキャッシュのバックグラウンドダウンロード時の最大ファイルセグメントサイズを制御するための個別設定 `background_download_max_file_segment_size` を追加しました。 [#71648](https://github.com/ClickHouse/ClickHouse/pull/71648) ([Kseniia Sumarokova](https://github.com/kssenii)). +* JSON 型のパースをわずかに改善しました: JSON パスに対応する現在のブロックに複数の型の値が含まれている場合、専用のベストエフォート順序で型を試し、最適な型を選択するようにしました。 [#71785](https://github.com/ClickHouse/ClickHouse/pull/71785) ([Pavel Kruglov](https://github.com/Avogar))。 +* 以前は、`system.asynchronous_metrics` から読み取る際、並行して実行されている更新処理が完了するまで待機していました。システムに高い負荷がかかっている場合、この処理には長時間かかる可能性があります。この変更により、これまでに収集された値を常に読み取れるようになりました。 [#71798](https://github.com/ClickHouse/ClickHouse/pull/71798) ([Alexander Gololobov](https://github.com/davenger)). +* S3Queue および AzureQueue: `polling_max_timeout_ms` を 10 分、`polling_backoff_ms` を 30 秒に設定。[#71817](https://github.com/ClickHouse/ClickHouse/pull/71817)([Kseniia Sumarokova](https://github.com/kssenii))。 +* `history` 期間の 1 回の期間内に `HostResolver` を 3 回更新するようにしました。[#71863](https://github.com/ClickHouse/ClickHouse/pull/71863) ([Sema Checherinda](https://github.com/CheSema)). +* 高度なダッシュボードの HTML ページに、`system.dashboards` テーブル内のダッシュボードを選択するためのドロップダウンセレクターを追加しました。[#72081](https://github.com/ClickHouse/ClickHouse/pull/72081) ([Sergei Trifonov](https://github.com/serxa))。 +* 認証後にデフォルトデータベースが存在するかを確認するようにしました。[#71097](https://github.com/ClickHouse/ClickHouse/issues/71097) を修正。 [#71140](https://github.com/ClickHouse/ClickHouse/pull/71140)([Konstantin Bogdanov](https://github.com/thevar1able))。 + +#### バグ修正(公式安定版でのユーザーに見える不具合) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-1} + +* `ATTACH PART` クエリの実行時に重複排除されたパーツが、`attaching_` プレフィックスが付いたままになることはなくなりました。 [#65636](https://github.com/ClickHouse/ClickHouse/pull/65636) ([Kirill](https://github.com/kirillgarbar)). +* `IN` 関数で DateTime64 型の精度が失われるバグを修正しました。 [#67230](https://github.com/ClickHouse/ClickHouse/pull/67230) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* `ORDER BY ... WITH FILL` で `IGNORE/RESPECT NULLS` を指定した関数を使用する際に起こり得る論理エラーを修正しました。 [#57609](https://github.com/ClickHouse/ClickHouse/issues/57609) をクローズしました。 [#68234](https://github.com/ClickHouse/ClickHouse/pull/68234)([Vladimir Cherkasov](https://github.com/vdimir))。 +* メモリ制限に達した場合、`Native` フォーマットでの非同期挿入においてまれに発生していた論理エラーを修正しました。 [#68965](https://github.com/ClickHouse/ClickHouse/pull/68965) ([Anton Popov](https://github.com/CurtizJ))。 +* EPHEMERAL カラムに対する CREATE TABLE 文の COMMENT を修正しました。 [#70458](https://github.com/ClickHouse/ClickHouse/pull/70458) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* LowCardinality(Nullable) を使用した JSONExtract 関数における論理エラーを修正。 [#70549](https://github.com/ClickHouse/ClickHouse/pull/70549) ([Pavel Kruglov](https://github.com/Avogar))。 +* 同じ ZooKeeper パス (zk path) を持つ別のレプリカが存在する場合に、`system drop replica` がその zk パスを削除できるようにしました。 [#70642](https://github.com/ClickHouse/ClickHouse/pull/70642) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* AggregateFunctionGroupArraySorted におけるクラッシュおよびメモリリークを修正。 [#70820](https://github.com/ClickHouse/ClickHouse/pull/70820) ([Michael Kolupaev](https://github.com/al13n321)). +* URL エンジンで、ユーザー指定ヘッダーにより Content-Type を上書きできるようにしました。 [#70859](https://github.com/ClickHouse/ClickHouse/pull/70859) ([Artem Iurin](https://github.com/ortyomka))。 +* `StorageS3Queue` で発生していた論理エラー「既に存在するため /processed に永続ノードを作成できません」を修正。 [#70984](https://github.com/ClickHouse/ClickHouse/pull/70984) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 特定の状況下で、名前付きセッションが終了せず、無期限にハングし続ける問題を修正しました。 [#70998](https://github.com/ClickHouse/ClickHouse/pull/70998) ([Márcio Martins](https://github.com/marcio-absmartly)). +* PROJECTION における論理削除の rebuild オプションで `_row_exists` カラムを考慮していなかった不具合を修正しました。 [#71089](https://github.com/ClickHouse/ClickHouse/pull/71089) ([Shichao Jin](https://github.com/jsc0218)). +* Oracle Linux UEK 6.10 上での実行時に発生する `AT_* is out of range` 問題を修正。 [#71109](https://github.com/ClickHouse/ClickHouse/pull/71109) ([Örjan Fors](https://github.com/op))。 +* 予期しないレースコンディションにより、`system.query_metric_log` に誤った値が記録される不具合を修正。 [#71124](https://github.com/ClickHouse/ClickHouse/pull/71124) ([Pablo Marcos](https://github.com/pamarcos)). +* quantileExactWeightedInterpolated の集約関数名の不整合を修正しました。このバグは [https://github.com/ClickHouse/ClickHouse/pull/69619](https://github.com/ClickHouse/ClickHouse/pull/69619) で導入されました。cc @Algunenano. [#71168](https://github.com/ClickHouse/ClickHouse/pull/71168) ([李扬](https://github.com/taiyang-li)). +* 関数比較で Dynamic を使用した場合に発生する bad_weak_ptr 例外を修正。 [#71183](https://github.com/ClickHouse/ClickHouse/pull/71183) ([Pavel Kruglov](https://github.com/Avogar)). +* 読み込む 7z ファイルがローカルマシン上にあることを確認します。 [#71184](https://github.com/ClickHouse/ClickHouse/pull/71184) ([Daniil Ivanik](https://github.com/divanik)). +* HTTP および Async Inserts 経由の Native フォーマットで format 設定が無視されていた問題を修正。 [#71193](https://github.com/ClickHouse/ClickHouse/pull/71193) ([Pavel Kruglov](https://github.com/Avogar)). +* `use_query_cache = 1` を設定して実行した SELECT クエリでも、システムテーブル名がリテラルとして現れる場合に拒否されることがなくなりました。例えば `SELECT * FROM users WHERE name = 'system.metrics' SETTINGS use_query_cache = true;` は現在は問題なく動作します。 [#71254](https://github.com/ClickHouse/ClickHouse/pull/71254) ([Robert Schulze](https://github.com/rschu1ze))。 +* enable_filesystem_cache=1 を指定した状態で、ストレージ構成のディスクにキャッシュ設定がない場合にメモリ使用量が増加していた不具合を修正しました。 [#71261](https://github.com/ClickHouse/ClickHouse/pull/71261) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Dynamic カラムからの LowCardinality Dictionary デシリアライズ時に発生する可能性のある「Cannot read all data」エラーを修正しました。 [#71299](https://github.com/ClickHouse/ClickHouse/pull/71299) ([Pavel Kruglov](https://github.com/Avogar)). +* クライアントにおける並列出力フォーマットで、クリーンアップが不完全になる問題を修正。 [#71304](https://github.com/ClickHouse/ClickHouse/pull/71304) ([Raúl Marín](https://github.com/Algunenano))。 +* Named Collection で不足していたエスケープ解除処理を追加しました。この修正がない場合、clickhouse-server を起動できません。 [#71308](https://github.com/ClickHouse/ClickHouse/pull/71308) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* ネイティブプロトコル経由で空ブロックを伴う非同期インサートを修正。 [#71312](https://github.com/ClickHouse/ClickHouse/pull/71312) ([Anton Popov](https://github.com/CurtizJ))。 +* 誤ったワイルドカードを用いて権限を付与した際の AST フォーマットの不整合を修正。[#71309](https://github.com/ClickHouse/ClickHouse/issues/71309)。[#71332](https://github.com/ClickHouse/ClickHouse/pull/71332)([pufit](https://github.com/pufit))。 +* データパーツのデストラクタに try/catch を追加して、std::terminate の発生を防ぎます。 [#71364](https://github.com/ClickHouse/ClickHouse/pull/71364) ([alesapin](https://github.com/alesapin)). +* JSON 型ヒント内の疑わしい型や実験的な型をチェック。 [#71369](https://github.com/ClickHouse/ClickHouse/pull/71369) ([Pavel Kruglov](https://github.com/Avogar)). +* Linux以外のOSでもメモリワーカースレッドを起動するようにした([#71051](https://github.com/ClickHouse/ClickHouse/issues/71051) を修正)。[#71384](https://github.com/ClickHouse/ClickHouse/pull/71384)([Alexandre Snarskii](https://github.com/snar))。 +* Variant 型のカラムを含む Chunk で発生するエラー "Invalid number of rows in Chunk" を修正。 [#71388](https://github.com/ClickHouse/ClickHouse/pull/71388) ([Pavel Kruglov](https://github.com/Avogar))。 +* 古い PostgreSQL バージョンで「column "attgenerated" does not exist」というエラーが発生する問題を修正し、[#60651](https://github.com/ClickHouse/ClickHouse/issues/60651) を解決しました。[#71396](https://github.com/ClickHouse/ClickHouse/pull/71396) ([0xMihalich](https://github.com/0xMihalich))。 +* サーバーログがスパム的に出力されるのを避けるため、認証失敗の試行は、これまでの `ERROR` レベルではなく `DEBUG` レベルでログ出力されるようになりました。 [#71405](https://github.com/ClickHouse/ClickHouse/pull/71405) ([Robert Schulze](https://github.com/rschu1ze)). +* `mongodb` テーブル関数に誤った引数(例: `NULL`)を渡した際にクラッシュが発生する不具合を修正。 [#71426](https://github.com/ClickHouse/ClickHouse/pull/71426) ([Vladimir Cherkasov](https://github.com/vdimir)). +* optimize_rewrite_array_exists_to_has によるクラッシュの問題を修正。 [#71432](https://github.com/ClickHouse/ClickHouse/pull/71432) ([Raúl Marín](https://github.com/Algunenano)). +* INSERT 時における `max_insert_delayed_streams_for_parallel_write` 設定の扱いを修正しました。以前は正しく動作しておらず、複数のパーティションにデータを書き込む INSERT でメモリ使用量が過大になる可能性がありました。 [#71474](https://github.com/ClickHouse/ClickHouse/pull/71474) ([Anton Popov](https://github.com/CurtizJ)). +* arrayJoin が `WHERE` 条件内に現れる可能性がある場合に発生しうる `Argument for function must be constant`(旧アナライザ)エラーを修正。 [https://github.com/ClickHouse/ClickHouse/pull/65414](https://github.com/ClickHouse/ClickHouse/pull/65414) 以降のリグレッション。 [#71476](https://github.com/ClickHouse/ClickHouse/pull/71476)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* カラム数が 0 の場合に SortCursor がクラッシュしないようにしました(旧アナライザ)。 [#71494](https://github.com/ClickHouse/ClickHouse/pull/71494) ([Raúl Marín](https://github.com/Algunenano)). +* 初期化されていない ORC データにより発生する Date32 型の範囲外エラーを修正しました。詳細については [https://github.com/apache/incubator-gluten/issues/7823](https://github.com/apache/incubator-gluten/issues/7823) を参照してください。 [#71500](https://github.com/ClickHouse/ClickHouse/pull/71500) ([李扬](https://github.com/taiyang-li))。 +* Dynamic 型および JSON 型に対して、wide part におけるカラムサイズの計算を修正。 [#71526](https://github.com/ClickHouse/ClickHouse/pull/71526) ([Pavel Kruglov](https://github.com/Avogar)). +* materialized view 内のクエリが CTE と組み合わせて IN を使用している場合の Analyzer の不具合を修正。[#65598](https://github.com/ClickHouse/ClickHouse/issues/65598) をクローズ。[#71538](https://github.com/ClickHouse/ClickHouse/pull/71538)([Maksim Kita](https://github.com/kitaisreal))。 +* CONSTRAINT 内で UDF を使用した場合にクラッシュする問題を修正しました。 [#71541](https://github.com/ClickHouse/ClickHouse/pull/71541) ([Raúl Marín](https://github.com/Algunenano)). +* bitShift 関数で範囲外となった場合にエラーをスローする代わりに、0 またはデフォルト文字を返すようにしました。 [#71580](https://github.com/ClickHouse/ClickHouse/pull/71580) ([Pablo Marcos](https://github.com/pamarcos)). +* 特定のエンジンを使用する materialized view の利用時にサーバーがクラッシュする問題を修正しました。 [#71593](https://github.com/ClickHouse/ClickHouse/pull/71593) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* 定数配列へのエイリアスを含むネストしたデータ構造での array join により、ヌルポインタ参照が発生していました。これにより[#71677](https://github.com/ClickHouse/ClickHouse/issues/71677)がクローズされました。[#71678](https://github.com/ClickHouse/ClickHouse/pull/71678) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 空のタプルを指定して ALTER を実行した際に発生する LOGICAL_ERROR を修正しました。これにより [#71647](https://github.com/ClickHouse/ClickHouse/issues/71647) が解決されます。 [#71679](https://github.com/ClickHouse/ClickHouse/pull/71679) ([Amos Bird](https://github.com/amosbird))。 +* NOT IN 演算子が使用されている場合、パーティションカラムに対する述語内の定数集合を変換しないようにしました。 [#71695](https://github.com/ClickHouse/ClickHouse/pull/71695) ([Eduard Karacharov](https://github.com/korowa)). +* より分かりやすくするため、`docker init` スクリプト失敗時のログメッセージを修正。 [#71734](https://github.com/ClickHouse/ClickHouse/pull/71734) ([Андрей](https://github.com/andreineustroev))。 +* LowCardinality(Nullable) から Dynamic への CAST を修正しました。これにより、以前は `Bad cast from type DB::ColumnVector to DB::ColumnNullable` というエラーが発生する可能性がありました。 [#71742](https://github.com/ClickHouse/ClickHouse/pull/71742) ([Pavel Kruglov](https://github.com/Avogar)). +* DateTime64 型の主キーに対する WHERE 条件で toDayOfWeek 関数により発生する例外を修正。 [#71849](https://github.com/ClickHouse/ClickHouse/pull/71849) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* スパースカラムにパースした後のデフォルト値の補完処理を修正しました。 [#71854](https://github.com/ClickHouse/ClickHouse/pull/71854) ([Anton Popov](https://github.com/CurtizJ)). +* 分散テーブル上で入力が ALIAS の場合に GROUPING 関数で発生していたエラーを修正し、[#68602](https://github.com/ClickHouse/ClickHouse/issues/68602) をクローズ。[#71855](https://github.com/ClickHouse/ClickHouse/pull/71855)([Vladimir Cherkasov](https://github.com/vdimir))。 +* `allow_experimental_join_condition` を使用した場合に発生する可能性があったクラッシュを修正。[#71693](https://github.com/ClickHouse/ClickHouse/issues/71693) をクローズ。[#71857](https://github.com/ClickHouse/ClickHouse/pull/71857)([Vladimir Cherkasov](https://github.com/vdimir))。 +* `WITH TIES` 句を使用した SELECT 文で、十分な行数が返らないことがある問題を修正しました。 [#71886](https://github.com/ClickHouse/ClickHouse/pull/71886) ([wxybear](https://github.com/wxybear))。 +* arrayWithConstant の評価でカラムが配列サイズ制限を超えていると誤判定され、その結果発生していた TOO_LARGE_ARRAY_SIZE 例外を修正しました。 [#71894](https://github.com/ClickHouse/ClickHouse/pull/71894) ([Udi](https://github.com/udiz)). +* `clickhouse-benchmark` が、1 秒を超える時間がかかるクエリに対して誤ったメトリクスを報告していました。 [#71898](https://github.com/ClickHouse/ClickHouse/pull/71898) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* clickhouse-client における進捗インジケーターと進捗テーブル間のデータレースを修正しました。この問題は FROM INFILE を使用した場合に表面化します。INSERT クエリの実行中にキーストロークをフックし、進捗テーブルの表示を切り替えられるようにしました。 [#71901](https://github.com/ClickHouse/ClickHouse/pull/71901) ([Julia Kartseva](https://github.com/jkartseva)). +* クラスタの自動検出に補助的な Keeper を使用するようにしました。 [#71911](https://github.com/ClickHouse/ClickHouse/pull/71911) ([Anton Ivashkin](https://github.com/ianton-ru)). +* 24.6 で不具合が発生していた system.s3/azure_queue_log の rows_processed カラムを修正しました。[#69975](https://github.com/ClickHouse/ClickHouse/issues/69975) をクローズ。[#71946](https://github.com/ClickHouse/ClickHouse/pull/71946)([Kseniia Sumarokova](https://github.com/kssenii))。 +* `s3` / `s3Cluster` 関数が不完全な結果を返したり、例外を送出したりする場合がある問題を修正しました。これは、s3 の URI でグロブパターン(`pattern/*` のような)を使用し、かつキー `pattern/` を持つ空オブジェクトが存在している場合(そのようなオブジェクトは S3 コンソールによって自動的に作成されます)に発生していました。あわせて、設定 `s3_skip_empty_files` のデフォルト値を `false` から `true` に変更しました。[#71947](https://github.com/ClickHouse/ClickHouse/pull/71947)([Nikita Taranov](https://github.com/nickitat))。 +* clickhouse-client の構文ハイライトで発生していたクラッシュを修正しました。[#71864](https://github.com/ClickHouse/ClickHouse/issues/71864) をクローズしました。[#71949](https://github.com/ClickHouse/ClickHouse/pull/71949) ([Nikolay Degterinsky](https://github.com/evillique))。 +* `ORDER BY` 句で、最初の引数が定数であるバイナリ単調関数を使用した `MergeTree` テーブルで発生する `Illegal type` エラーを修正。[#71941](https://github.com/ClickHouse/ClickHouse/issues/71941) を修正。[#71966](https://github.com/ClickHouse/ClickHouse/pull/71966)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* サブクエリ内で使用される EXPLAIN AST では、SELECT クエリのみが許可されます。その他の種類のクエリを使用すると、論理エラー('Bad cast from type DB::ASTCreateQuery to DB::ASTSelectWithUnionQuery' または `Inconsistent AST formatting`)が発生します。 [#71982](https://github.com/ClickHouse/ClickHouse/pull/71982) ([Pavel Kruglov](https://github.com/Avogar)). +* `clickhouse-client` でレコードを挿入する際、クライアントはサーバーからカラム定義を取得します。しかし、その定義を書き込む順序に不具合がありました。本来は [statistics, ttl, settings] の順であるべきでした。[#71991](https://github.com/ClickHouse/ClickHouse/pull/71991)([Han Fei](https://github.com/hanfei1991))。 +* `format_alter_commands_with_parentheses` が有効な場合の `MOVE PARTITION ... TO TABLE ...` の ALTER コマンドのフォーマットを修正しました。 [#72080](https://github.com/ClickHouse/ClickHouse/pull/72080) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* 並列レプリカを使用するクエリにおける RIGHT / FULL JOIN を修正しました。これにより、RIGHT JOIN は並列レプリカで実行できるようになり(右側テーブルの読み取りが分散されます)が、FULL JOIN はノード間で並列化できず、ローカルでのみ実行されます。 [#71162](https://github.com/ClickHouse/ClickHouse/pull/71162) ([Igor Nikonov](https://github.com/devcrafter)). +* 制限されたシステムコールにより、Docker コンテナ内の ClickHouse が標準エラー出力に「get_mempolicy: Operation not permitted」と出力してしまう問題を修正しました。 [#70900](https://github.com/ClickHouse/ClickHouse/pull/70900) ([filimonov](https://github.com/filimonov)). +* attach スレッドではなく再起動スレッドで ZooKeeper 内の metadata_version レコードを修正するようにしました。 [#70297](https://github.com/ClickHouse/ClickHouse/pull/70297) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* これはサポート対象外で、今後完全に削除される予定の「zero-copy」レプリケーションに対する修正です。zero-copy レプリケーションを使用する ReplicatedMergeTree において、その blob を使用しているノードが存在する場合には、その blob を削除しないようにしました。 [#71186](https://github.com/ClickHouse/ClickHouse/pull/71186) ([Antonio Andelic](https://github.com/antonio2368))。 +* サポート対象外であり、今後完全に削除される予定の「zero-copy」レプリケーションに対する修正です。Keeper が利用不能な場合のデータ損失を防ぐため、パーツを zero-copy ディスクへ移動する前に zero-copy 共有ロックを取得するようにしました。 [#71845](https://github.com/ClickHouse/ClickHouse/pull/71845) ([Aleksei Filatov](https://github.com/aalexfvk))。 + +### ClickHouse リリース 24.10(2024-10-31)。[プレゼンテーション](https://presentations.clickhouse.com/2024-release-24.10/)、[動画](https://www.youtube.com/watch?v=AamIAjURp4U) {#a-id2410a-clickhouse-release-2410-2024-10-31} + + + +#### 後方互換性のない変更 {#backward-incompatible-change-2} + +* サブクエリがかっこで囲まれている `UNION` を含むクエリチェーンにおいて、`FORMAT` の前に `SETTINGS` を記述できるようにしました。これにより [#39712](https://github.com/ClickHouse/ClickHouse/issues/39712) が解決されます。クエリ内で SETTINGS 句が連続して 2 回指定されている場合の動作を変更しました。対応するサブクエリに対しては、最も近い SETTINGS 句が優先されます。以前のバージョンでは、最も外側の SETTINGS 句が内側より優先される場合がありました。 [#68614](https://github.com/ClickHouse/ClickHouse/pull/68614)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `[PRE]WHERE` 句のフィルター条件の並べ替えが、デフォルトで許可されるようになりました。これは `allow_reorder_prewhere_conditions` を `false` に設定することで無効化できます。 [#70657](https://github.com/ClickHouse/ClickHouse/pull/70657)([Nikita Taranov](https://github.com/nickitat))。 +* ライセンス上の互換性がない `idxd-config` ライブラリを削除しました。これに伴い、実験的な Intel DeflateQPL コーデックも削除されました。 [#70987](https://github.com/ClickHouse/ClickHouse/pull/70987)([Alexey Milovidov](https://github.com/alexey-milovidov))。 + +#### 新機能 {#new-feature-2} + +* ワイルドカード付きプレフィックスに対するアクセス権を付与できるようになりました。`GRANT SELECT ON db.table_pefix_* TO user`。[#65311](https://github.com/ClickHouse/ClickHouse/pull/65311)([pufit](https://github.com/pufit))。 +* クエリの実行中にスペースキーを押すと、クライアントに詳細なメトリクスを含むリアルタイムのテーブルが表示されます。`clickhouse-client` では、新しい `--progress-table` オプションを使用してこれをグローバルに有効化できます。新しい `--enable-progress-table-toggle` は `--progress-table` オプションに関連付けられており、Ctrl+Space キーを押すことで進行状況テーブルの描画を切り替えます。[#63689](https://github.com/ClickHouse/ClickHouse/pull/63689) ([Maria Khristenko](https://github.com/mariaKhr)), [#70423](https://github.com/ClickHouse/ClickHouse/pull/70423) ([Julia Kartseva](https://github.com/jkartseva))。 +* ETag とファイルパスから生成したハッシュをキャッシュキーとして使用し、オブジェクトストレージのテーブルエンジンおよびデータレイクで読み取りファイルをキャッシュできるようにしました。 [#70135](https://github.com/ClickHouse/ClickHouse/pull/70135) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `CREATE TABLE ... CLONE AS ...` クエリでテーブルを作成できるようになりました。これにより、元のテーブルのスキーマをクローンし、その後すべてのパーティションを新しく作成したテーブルにアタッチします。この機能は `MergeTree` ファミリーのテーブルでのみ利用可能です。 [#65015](https://github.com/ClickHouse/ClickHouse/issues/65015) をクローズ。 [#69091](https://github.com/ClickHouse/ClickHouse/pull/69091)([tuanpach](https://github.com/tuanpach))。 +* 新しい system テーブル `system.query_metric_log` を追加しました。このテーブルには、個々のクエリに対して `system.events` テーブルから取得したメモリ使用量およびメトリクス値の履歴が含まれ、定期的にディスクに書き出されます。 [#66532](https://github.com/ClickHouse/ClickHouse/pull/66532) ([Pablo Marcos](https://github.com/pamarcos))。 +* 暗黙の SELECT を用いることで、`ch "1 + 2"` のような電卓スタイルの式を実行するシンプルな SELECT クエリを記述できます。この挙動は新しい設定 `implicit_select` によって制御されます。[#68502](https://github.com/ClickHouse/ClickHouse/pull/68502)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* clickhouse local で、フォーマット変換を行うためのショートカットとして `--copy` モードがサポートされました [#68503](https://github.com/ClickHouse/ClickHouse/issues/68503)。[#68583](https://github.com/ClickHouse/ClickHouse/pull/68583)([Denis Hananein](https://github.com/denis-hananein))。 +* `/merges` パスで利用可能な、マージ処理を可視化するための組み込みの HTML ページを追加しました。 [#70821](https://github.com/ClickHouse/ClickHouse/pull/70821) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `arrayUnion` 関数のサポートを追加しました。 [#68989](https://github.com/ClickHouse/ClickHouse/pull/68989) ([Peter Nguyen](https://github.com/petern48))。 +* パラメータ付き SQL エイリアスを許可。 [#50665](https://github.com/ClickHouse/ClickHouse/pull/50665) ([Anton Kozlov](https://github.com/tonickkozlov)). +* 新しい集約関数 `quantileExactWeightedInterpolated` は、`quantileExactWeighted` に基づく補間付きのバージョンです。すでに `quantileExactInterpolatedWeighted` があるのに、なぜ新たに `quantileExactWeightedInterpolated` が必要なのかと疑問に思う人もいるかもしれません。理由は、新しい関数の方が古いものよりも精度が高いためです。これは Spark との互換性を確保するためのものです。 [#69619](https://github.com/ClickHouse/ClickHouse/pull/69619) ([李扬](https://github.com/taiyang-li))。 +* 新しい関数 `arrayElementOrNull`。配列のインデックスが範囲外の場合や Map のキーが見つからない場合には `NULL` を返します。 [#69646](https://github.com/ClickHouse/ClickHouse/pull/69646) ([李扬](https://github.com/taiyang-li))。 +* `config.xml` ファイル内の新しい `message_regexp` および `message_regexp_negative` フィールドを通じて正規表現を指定し、ログをフィルタリングできるようにしました。ログのフィルタリングは、開発者にとって最も直感的な体験となるよう、整形済みでカラー付けされていないテキストに対して適用されます。 [#69657](https://github.com/ClickHouse/ClickHouse/pull/69657) ([Peter Nguyen](https://github.com/petern48)). +* `RIPEMD160` 関数を追加しました。文字列の RIPEMD-160 暗号学的ハッシュを計算する関数です。例: `SELECT HEX(RIPEMD160('The quick brown fox jumps over the lazy dog'))` は `37F332F68DB77BD9D7EDD4969571AD671CF9DD3B` を返します。 [#70087](https://github.com/ClickHouse/ClickHouse/pull/70087) ([Dergousov Maxim](https://github.com/m7kss1)). +* `HDFS` 上の `Iceberg` テーブルの読み込みをサポートしました。 [#70268](https://github.com/ClickHouse/ClickHouse/pull/70268) ([flynn](https://github.com/ucasfl)). +* これまで `INSERT ... WITH ...` のみをサポートしていましたが、`WITH ... INSERT` 形式の CTE もサポートするようになりました。 [#70593](https://github.com/ClickHouse/ClickHouse/pull/70593) ([Shichao Jin](https://github.com/jsc0218)). +* MongoDB 連携機能: すべての MongoDB 型のサポート、MongoDB 側での WHERE および ORDER BY 文のサポート、MongoDB がサポートしない式を使用できないようにする制限を追加しました。新しい連携機能はデフォルトでは無効になっているため、使用するにはサーバー設定で `` を `false` に設定してください。[#63279](https://github.com/ClickHouse/ClickHouse/pull/63279)([Kirill Nikiforov](https://github.com/allmazz))。 +* 現在のプロファイルにカスタム設定が見つからない場合でも、例外を発生させずにデフォルト値を返すための新しい関数 `getSettingOrDefault` が追加されました。 [#69917](https://github.com/ClickHouse/ClickHouse/pull/69917) ([Shankar](https://github.com/shiyer7474))。 + +#### Experimental feature {#experimental-feature-1} + +* リフレッシャブルmaterialized view は本番環境で利用可能になりました。 [#70550](https://github.com/ClickHouse/ClickHouse/pull/70550) ([Michael Kolupaev](https://github.com/al13n321))。また、リフレッシャブルmaterialized view は Replicated データベースでもサポートされるようになりました。 [#60669](https://github.com/ClickHouse/ClickHouse/pull/60669) ([Michael Kolupaev](https://github.com/al13n321))。 +* Parallel replicas は experimental から beta に移行されました。parallel replicas アルゴリズムの動作を制御する関連設定が再設計されています。概要をおさらいすると、ClickHouse には複数のレプリカを用いた並列読み取りのための 4 種類のアルゴリズムがあり、これは `parallel_replicas_mode` 設定で切り替えます。デフォルト値は `read_tasks` です。加えて、トグルスイッチ型の設定 `enable_parallel_replicas` が追加されました。 [#63151](https://github.com/ClickHouse/ClickHouse/pull/63151) ([Alexey Milovidov](https://github.com/alexey-milovidov)), ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* `Dynamic` 内部の型に対して関数を実行することで、ほとんどの関数で `Dynamic` 型をサポートしました。 [#69691](https://github.com/ClickHouse/ClickHouse/pull/69691) ([Pavel Kruglov](https://github.com/Avogar))。 +* `RowBinary` フォーマットにおいて、`input_format_binary_read_json_as_string/output_format_binary_write_json_as_string` 設定により、`JSON` 型をバイナリ文字列として読み書きできるようにしました。 [#70288](https://github.com/ClickHouse/ClickHouse/pull/70288) ([Pavel Kruglov](https://github.com/Avogar))。 +* Native フォーマットで、`JSON` カラムを単一の String カラムとしてシリアライズ/デシリアライズできるようにしました。出力には `output_format_native_write_json_as_string` 設定を使用します。入力では、カラムデータの前にシリアライズバージョン `1` を指定します。 [#70312](https://github.com/ClickHouse/ClickHouse/pull/70312) ([Pavel Kruglov](https://github.com/Avogar))。 +* MergeTree テーブル向けに、特別な(experimental)マージセレクターモードを導入しました。これは、パーツ数の上限に近いパーティションに対して、より積極的にマージを行うものです。この動作は MergeTree レベルの設定 `merge_selector_use_blurry_base` によって制御されます。 [#70645](https://github.com/ClickHouse/ClickHouse/pull/70645) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* Avro の `Union` 型と ClickHouse の `Variant` 型との間で、汎用的なシリアライズ/デシリアライズを実装しました。これにより [#69713](https://github.com/ClickHouse/ClickHouse/issues/69713) が解決されます。 [#69712](https://github.com/ClickHouse/ClickHouse/pull/69712) ([Jiří Kozlovský](https://github.com/jirislav))。 + +#### パフォーマンスの向上 {#performance-improvement-2} + +* `IDisk` と `IObjectStorage` をリファクタリングしてパフォーマンスを向上させました。`plain` および `plain_rewritable` オブジェクトストレージ上のテーブルの初期化が高速になります。[#68146](https://github.com/ClickHouse/ClickHouse/pull/68146)([Alexey Milovidov](https://github.com/alexey-milovidov)、[Julia Kartseva](https://github.com/jkartseva))。`plain_rewritable` ディスク上でファイルまたはディレクトリの存在を判定する際、コスト効率が悪くなり得るため、LIST オブジェクトストレージ API を呼び出さないようにしました。[#70852](https://github.com/ClickHouse/ClickHouse/pull/70852)([Julia Kartseva](https://github.com/jkartseva))。`plain_rewritable` ディスクでのオブジェクトストレージ HEAD API リクエストの回数を削減しました。[#70915](https://github.com/ClickHouse/ClickHouse/pull/70915)([Julia Kartseva](https://github.com/jkartseva))。 +* データを直接スパースカラムにパースできる機能を追加しました。 [#69828](https://github.com/ClickHouse/ClickHouse/pull/69828) ([Anton Popov](https://github.com/CurtizJ)). +* 欠損値が多いフォーマット(例: `JSONEachRow`)のパース処理の性能を改善しました。 [#69875](https://github.com/ClickHouse/ClickHouse/pull/69875) ([Anton Popov](https://github.com/CurtizJ)). +* Parquet の row group の並列読み取りと、シングルスレッドモードにおける row group のプリフェッチをサポートしました。 [#69862](https://github.com/ClickHouse/ClickHouse/pull/69862) ([LiuNeng](https://github.com/liuneng1994)). +* `pointInPolygon` に対して minmax 索引をサポートしました。 [#62085](https://github.com/ClickHouse/ClickHouse/pull/62085) ([JackyWoo](https://github.com/JackyWoo)). +* Parquet ファイルの読み込み時に Bloom フィルターを使用するようになりました。 [#62966](https://github.com/ClickHouse/ClickHouse/pull/62966) ([Arthur Passos](https://github.com/arthurpassos)). +* ロックフリーなパーツのリネームにより、INSERT が(パーツロックにより)SELECT に影響しないようにしました(通常の状況で `fsync_part_directory` を有効にした場合、INSERT と並列に実行される SELECT の QPS が 2 倍に向上し、高負荷時にはさらに効果が大きくなります)。なお、現時点では `ReplicatedMergeTree` のみが対象です。 [#64955](https://github.com/ClickHouse/ClickHouse/pull/64955) ([Azat Khuzhin](https://github.com/azat)). +* `materialize ttl` で `ttl_only_drop_parts` を考慮し、有効期限 (TTL) を再計算してパーツを空のパーツに置き換えることで削除する際に、必要なカラムだけを読み取るようにしました。 [#65488](https://github.com/ClickHouse/ClickHouse/pull/65488) ([Andrey Zvonov](https://github.com/zvonand)). +* `ThreadPool` 内でのスレッド生成処理を最適化し、ロック競合を最小限に抑えました。スレッド生成はクリティカルセクションの外で行われるようになり、高負荷時のジョブスケジューリングやスレッド管理で発生する遅延を回避します。これにより、高い同時実行負荷下でも ClickHouse の応答性が大きく向上します。 [#68694](https://github.com/ClickHouse/ClickHouse/pull/68694) ([filimonov](https://github.com/filimonov))。 +* `ORC` から `LowCardinality` 文字列カラムを読み取れるようにしました。 [#69481](https://github.com/ClickHouse/ClickHouse/pull/69481) ([李扬](https://github.com/taiyang-li))。 +* `part_log`、`query_views_log`、`filesystem_cache_log` などのシステムログにおける `ProfileEvents` に `LowCardinality` を使用します。 [#70152](https://github.com/ClickHouse/ClickHouse/pull/70152) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* `fromUnixTimestamp`/`toUnixTimestamp` 関数のパフォーマンスを改善しました。 [#71042](https://github.com/ClickHouse/ClickHouse/pull/71042) ([kevinyhzou](https://github.com/KevinyhZou))。 +* ブロッキング I/O から読み込む場合でも、サーバー全体でページキャッシュからの非ブロッキング読み取りを無効化しないようにしました。これは、単一のファイルシステム(例: tmpfs)のみが `preadv2` システムコールをサポートしておらず、他のファイルシステムはサポートしている場合に、パフォーマンスの低下を招いていました。 [#70299](https://github.com/ClickHouse/ClickHouse/pull/70299) ([Antonio Andelic](https://github.com/antonio2368)). +* `ALTER TABLE .. REPLACE PARTITION` は、他のパーティションで発生する mutation や merge をこれ以上待機しなくなりました。 [#59138](https://github.com/ClickHouse/ClickHouse/pull/59138) ([Vasily Nemkov](https://github.com/Enmk)). +* Keeper から ACL を同期する際には検証を行わないようにしました。作成時に検証されるためです。本来は大きな問題にはなりませんが、ユーザーが何万件、あるいはそれ以上作成されている環境では、不要なハッシュ検証によりサーバー起動時(Keeper からすべてを同期するタイミング)に長時間を要する可能性があります。 [#70644](https://github.com/ClickHouse/ClickHouse/pull/70644) ([Raúl Marín](https://github.com/Algunenano))。 + +#### 改善点 {#improvement-2} + +* `CREATE TABLE AS` は、`PRIMARY KEY`、`ORDER BY` などの句(`MergeTree` テーブルのもの)をコピーするようになりました。 [#69739](https://github.com/ClickHouse/ClickHouse/pull/69739) ([sakulali](https://github.com/sakulali))。 +* Keeper で 64 ビット XID をサポートできるようになりました。`use_xid_64` 設定値で有効化できます。 [#69908](https://github.com/ClickHouse/ClickHouse/pull/69908) ([Antonio Andelic](https://github.com/antonio2368))。 +* Bool 型設定のコマンドライン引数は、引数に値が指定されていない場合に true と見なされます(例: `clickhouse-client --optimize_aggregation_in_order --query "SELECT 1"`)。 [#70459](https://github.com/ClickHouse/ClickHouse/pull/70459) ([davidtsuk](https://github.com/davidtsuk)). +* ほとんどいっぱいのディスクへの挿入を防止するため、ユーザーレベルの設定 `min_free_disk_bytes_to_perform_insert` および `min_free_disk_perform_to_throw_insert` を追加しました。 [#69755](https://github.com/ClickHouse/ClickHouse/pull/69755) ([Marco Vilas Boas](https://github.com/marco-vb))。 +* 設定に関する組み込みドキュメントは、ウェブサイト上のドキュメントよりも必ず詳細かつ完全なものになります。これは、ウェブサイトのドキュメントをソースコードから常に自動生成するようにするための第一歩です。これには長期的に次のような利点があります。- すべての設定が必ず含まれること、- デフォルト値が古くなる心配がないこと、- ClickHouse の各バージョンごとにこのドキュメントを生成できること、- インターネット接続がなくてもサーバー自身がドキュメントを表示できること、です。ウェブサイト上のドキュメントをソースコードから生成するようにしました。[#70289](https://github.com/ClickHouse/ClickHouse/pull/70289) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 関数 `replace` で `needle` に空文字列を指定できるようにし、PostgreSQL と同じ動作になりました。 [#69918](https://github.com/ClickHouse/ClickHouse/pull/69918) ([zhanglistar](https://github.com/zhanglistar)). +* 関数 `replaceRegexp*` で needle に空文字列を指定できるようにしました。 [#70053](https://github.com/ClickHouse/ClickHouse/pull/70053) ([zhanglistar](https://github.com/zhanglistar)). +* `data/database_name/` ディレクトリ内のテーブルに対するシンボリックリンクは、デフォルトディスク上の `store/...` ディレクトリではなく、ストレージポリシーに基づきテーブルデータの実際のパスを指すように作成されるようになりました。 [#61777](https://github.com/ClickHouse/ClickHouse/pull/61777) ([Kirill](https://github.com/kirillgarbar)). +* `JSON` から `Enum` フィールドをパースする際、整数値を表す文字列は、対応する `Enum` 要素として解釈されるようになりました。これにより [#65119](https://github.com/ClickHouse/ClickHouse/issues/65119) がクローズされました。 [#66801](https://github.com/ClickHouse/ClickHouse/pull/66801) ([scanhex12](https://github.com/scanhex12)). +* `TRIM` で `LEADING` または `TRAILING` に空文字列を指定した場合は、変更を伴わない no-op として扱うようにしました。[#67792](https://github.com/ClickHouse/ClickHouse/issues/67792) をクローズ。[#68455](https://github.com/ClickHouse/ClickHouse/pull/68455)([Peter Nguyen](https://github.com/petern48))。 +* `cast(timestamp as String)` における Spark との互換性を改善。[#69179](https://github.com/ClickHouse/ClickHouse/pull/69179)([Wenzheng Liu](https://github.com/lwz9103))。 +* `enable_analyzer` が `true` に設定されている場合、定数式の計算には常に新しい analyzer が使用されるようになりました。定数式に対して `SELECT` クエリを使用することなく、`executable` テーブル関数の引数を計算できるようになりました。 [#69292](https://github.com/ClickHouse/ClickHouse/pull/69292) ([Dmitry Novik](https://github.com/novikd))。 +* 識別子に特殊文字を含めることを禁止する設定 `enable_secure_identifiers` を追加しました。 [#69411](https://github.com/ClickHouse/ClickHouse/pull/69411) ([tuanpach](https://github.com/tuanpach)). +* `SHOW CREATE TABLE` クエリ結果における識別子のクオート挙動を定義するために `show_create_query_identifier_quoting_rule` を追加しました。設定可能な値は次のとおりです: - `user_display`: 識別子がキーワードである場合。 - `when_necessary`: 識別子が `{"distinct", "all", "table"}` のいずれかであり、かつ曖昧さを招く可能性がある場合(カラム名や Dictionary 属性名など)。 - `always`: 常に識別子をクオートします。 [#69448](https://github.com/ClickHouse/ClickHouse/pull/69448) ([tuanpach](https://github.com/tuanpach))。 +* アクセスエンティティの依存関係の復元を改善 [#69563](https://github.com/ClickHouse/ClickHouse/pull/69563) ([Vitaly Baranov](https://github.com/vitlibar))。 +* `clickhouse-client` やその他の CLI アプリケーションを実行した際、サーバーが過負荷で起動が遅くなり、その間に `SELECT` のようなクエリを入力し始めると、以前のバージョンでは、ウェルカムメッセージを出力する前に端末エコーの残りの内容が表示されてしまい、`ClickHouse local version 24.10.1.1.` ではなく `SELECTClickHouse local version 24.10.1.1.` のように表示されていました。この問題はすでに修正済みです。これにより [#31696](https://github.com/ClickHouse/ClickHouse/issues/31696) がクローズされました。[#69856](https://github.com/ClickHouse/ClickHouse/pull/69856)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `system.replicas` テーブルに新しいカラム `readonly_duration` を追加しました。アラートで実際の読み取り専用レプリカとセンチネルレプリカを区別できるようにするためです。 [#69871](https://github.com/ClickHouse/ClickHouse/pull/69871) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* `join_output_by_rowlist_perkey_rows_threshold` SETTING の型を符号なし整数に変更しました。 [#69886](https://github.com/ClickHouse/ClickHouse/pull/69886) ([kevinyhzou](https://github.com/KevinyhZou)). +* OpenTelemetry のスパンログを拡張し、クエリ設定を含めるようにしました。 [#70011](https://github.com/ClickHouse/ClickHouse/pull/70011) ([sharathks118](https://github.com/sharathks118)). +* ラムダの結果型が想定外の場合に、高階配列関数の診断情報を追加しました。 [#70093](https://github.com/ClickHouse/ClickHouse/pull/70093) ([ttanay](https://github.com/ttanay)). +* Keeper の改善: クラスター変更時のロック回数を削減。 [#70275](https://github.com/ClickHouse/ClickHouse/pull/70275) ([Antonio Andelic](https://github.com/antonio2368))。 +* `SHOW GRANTS` コマンドに `WITH IMPLICIT` および `FINAL` キーワードを追加しました。暗黙的な権限付与に関する軽微なバグを修正しました: [#70094](https://github.com/ClickHouse/ClickHouse/issues/70094)。[#70293](https://github.com/ClickHouse/ClickHouse/pull/70293)([pufit](https://github.com/pufit))。 +* MergeTree の設定において `compatibility` を考慮するようにしました。`compatibility` の値はサーバー起動時に `default` プロファイルから取得され、それに応じて MergeTree のデフォルト設定が変更されます。その後に `compatibility` 設定を変更しても、MergeTree の設定には影響しません。 [#70322](https://github.com/ClickHouse/ClickHouse/pull/70322) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* サーバー間通信中にエラーが発生した場合に、大きな HTTP レスポンスボディがログに大量出力されないようにしました。 [#70487](https://github.com/ClickHouse/ClickHouse/pull/70487) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* 一度に移動可能なパーツ数の上限を制御するための新しい設定 `max_parts_to_move` を追加しました。 [#70520](https://github.com/ClickHouse/ClickHouse/pull/70520) ([Vladimir Cherkasov](https://github.com/vdimir)). +* 特定のログメッセージの出力頻度を制限しました。 [#70601](https://github.com/ClickHouse/ClickHouse/pull/70601) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* `PART` 修飾子付きの `CHECK TABLE` がクライアントで正しくフォーマットされていませんでした。 [#70660](https://github.com/ClickHouse/ClickHouse/pull/70660) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* Parquet ネイティブ writer でカラム索引およびオフセット索引の書き込みをサポート。 [#70669](https://github.com/ClickHouse/ClickHouse/pull/70669) ([LiuNeng](https://github.com/liuneng1994)). +* `DateTime64` について、マイクロ秒とタイムゾーンを joda 構文でパースできるようになりました(「joda」は日付と時刻のための一般的な Java ライブラリであり、「joda 構文」はそのライブラリの書式スタイルを指します)。 [#70737](https://github.com/ClickHouse/ClickHouse/pull/70737) ([kevinyhzou](https://github.com/KevinyhZou))。 +* クラウドストレージが[バッチ削除](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html)をサポートしているかどうかを判定する方法を変更しました。 [#70786](https://github.com/ClickHouse/ClickHouse/pull/70786) ([Vitaly Baranov](https://github.com/vitlibar))。 +* ネイティブリーダーにおける Parquet ページ v2 のサポート。 [#70807](https://github.com/ClickHouse/ClickHouse/pull/70807) ([Arthur Passos](https://github.com/arthurpassos)). +* テーブルに `storage_policy` と `disk` の両方が設定されているかをチェックする機能を追加しました。`disk` SETTING を使用している場合に、新しいストレージポリシーが既存のポリシーと互換性があるかをチェックする機能も追加しました。[#70839](https://github.com/ClickHouse/ClickHouse/pull/70839) ([Kirill](https://github.com/kirillgarbar))。 +* `system.s3_queue_settings` と `system.azure_queue_settings` を追加しました。 [#70841](https://github.com/ClickHouse/ClickHouse/pull/70841) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 関数 `base58Encode` と `base58Decode` は、`FixedString` 型の引数を受け取れるようになりました。例: `SELECT base58Encode(toFixedString('plaintext', 9));`。 [#70846](https://github.com/ClickHouse/ClickHouse/pull/70846) ([Faizan Patel](https://github.com/faizan2786)). +* part log のすべてのエントリ種別に `partition` カラムを追加しました。以前は一部のエントリにのみ設定されていました。これにより [#70819](https://github.com/ClickHouse/ClickHouse/issues/70819) が解決されました。[#70848](https://github.com/ClickHouse/ClickHouse/pull/70848)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* マージ処理の分析と可視化を行いやすくするために、`MergeStart` および `MutateStart` イベントを `system.part_log` に追加しました。 [#70850](https://github.com/ClickHouse/ClickHouse/pull/70850) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* マージされたソースパーツ数に関するプロファイルイベントを追加しました。これにより、本番環境での MergeTree のファンアウトを監視できます。 [#70908](https://github.com/ClickHouse/ClickHouse/pull/70908) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* バックグラウンドでのファイルシステムキャッシュへのダウンロード機能が再度有効化されました。 [#70929](https://github.com/ClickHouse/ClickHouse/pull/70929) ([Nikita Taranov](https://github.com/nickitat)). +* プロフェッショナル用途向けのみ使用可能な新しいマージセレクタアルゴリズム `Trivial` を追加しました。これは `Simple` マージセレクタよりも性能が低いアルゴリズムです。 [#70969](https://github.com/ClickHouse/ClickHouse/pull/70969) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `CREATE OR REPLACE VIEW` のアトミックなサポート。 [#70536](https://github.com/ClickHouse/ClickHouse/pull/70536) ([tuanpach](https://github.com/tuanpach)) +* 集約関数 `windowFunnel` に `strict_once` モードを追加し、1つのイベントが複数の条件に一致する場合に複数回カウントされないようにしました。[#21835](https://github.com/ClickHouse/ClickHouse/issues/21835) を解決。 [#69738](https://github.com/ClickHouse/ClickHouse/pull/69738) ([Vladimir Cherkasov](https://github.com/vdimir))。 + +#### バグ修正(公式安定版リリースにおけるユーザーに影響する誤動作) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-2} + +* グローバルコンテキストオブジェクトに構成の更新を適用します。これにより、[#62308](https://github.com/ClickHouse/ClickHouse/issues/62308) のような問題が解決されます。 [#62944](https://github.com/ClickHouse/ClickHouse/pull/62944) ([Amos Bird](https://github.com/amosbird))。 +* `ReadSettings` でデフォルト値のみが使用され、ユーザーが設定した値が反映されていなかった問題を修正しました。[#65625](https://github.com/ClickHouse/ClickHouse/pull/65625) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 符号付き引数を使用した場合に `sumMapFiltered` で発生していた型不一致の問題を修正。 [#58408](https://github.com/ClickHouse/ClickHouse/pull/58408) ([Chen768959](https://github.com/Chen768959)). +* オプションのタイムゾーン引数が渡された場合における `toHour` 類似変換関数の単調性を修正。 [#60264](https://github.com/ClickHouse/ClickHouse/pull/60264) ([Amos Bird](https://github.com/amosbird)). +* `Merge` テーブルに対する `supportsPrewhere` のチェックを緩和しました。この変更により [#61064](https://github.com/ClickHouse/ClickHouse/issues/61064) が修正されます。チェックは [#60082](https://github.com/ClickHouse/ClickHouse/issues/60082) で過度に厳格化されていました。[#61091](https://github.com/ClickHouse/ClickHouse/pull/61091) ([Amos Bird](https://github.com/amosbird))。 +* `concurrent_threads_soft_limit_num` 制限が正しく適用されるように、`use_concurrency_control` SETTING の処理を修正しました。これにより、以前は正しく動作していなかった並行実行制御がデフォルトで有効になります。 [#61473](https://github.com/ClickHouse/ClickHouse/pull/61473) ([Sergei Trifonov](https://github.com/serxa)). +* `NOT` などの他の関数内で `IS NULL` チェックが行われている場合に誤った結果を招く可能性があった `JOIN ON` 節の誤った最適化を修正しました。[#67915](https://github.com/ClickHouse/ClickHouse/issues/67915) を修正しました。[#68049](https://github.com/ClickHouse/ClickHouse/pull/68049)([Vladimir Cherkasov](https://github.com/vdimir))。 +* テーブルの `CREATE` クエリを無効にしてしまうような `ALTER` クエリの実行を防止しました。 [#68574](https://github.com/ClickHouse/ClickHouse/pull/68574) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* `negate`(`-`)および `NOT` 関数におけるタプルと配列に対する AST のフォーマットの不整合を修正しました。 [#68600](https://github.com/ClickHouse/ClickHouse/pull/68600) ([Vladimir Cherkasov](https://github.com/vdimir)). +* デシリアライズ中に不完全な型が `Dynamic` に挿入されてしまう不具合を修正しました。これにより `Parameter out of bound` エラーが発生する可能性がありました。 [#69291](https://github.com/ClickHouse/ClickHouse/pull/69291) ([Pavel Kruglov](https://github.com/Avogar)). +* 本番環境での使用は推奨されない実験的機能であるゼロコピー レプリケーション: ゼロコピーを用いた ReplicatedMergeTree で `restore replica` 実行後に発生する無限ループを修正。[#69293](https://github.com/CljmnickHouse/ClickHouse/pull/69293)([MikhailBurdukov](https://github.com/MikhailBurdukov))。 +* ストレージ `S3Queue` において、`processing_threads_num` のデフォルト値を CPU コア数と同じ値に戻しました。 [#69384](https://github.com/ClickHouse/ClickHouse/pull/69384) ([Kseniia Sumarokova](https://github.com/kssenii)). +* ネストされた繰り返しフィールドを持つ protobuf をネストされたカラムにデシリアライズ/シリアライズする際に、try/catch フローを経由しないようにしました([#41971](https://github.com/ClickHouse/ClickHouse/issues/41971) を修正)。[#69556](https://github.com/ClickHouse/ClickHouse/pull/69556)([Eliot Hautefeuille](https://github.com/hileef))。 +* PostgreSQL エンジンで FixedString 型カラムへの挿入時に発生していたクラッシュを修正。 [#69584](https://github.com/ClickHouse/ClickHouse/pull/69584) ([Pavel Kruglov](https://github.com/Avogar))。 +* `create view t as (with recursive 42 as ttt select ttt);` を実行するとクラッシュしてしまう不具合を修正しました。 [#69676](https://github.com/ClickHouse/ClickHouse/pull/69676) ([Han Fei](https://github.com/hanfei1991)). +* 値の型が DateTime64 の場合に 'Bad get' 例外をスローしていた `maxMapState` を修正しました。 [#69787](https://github.com/ClickHouse/ClickHouse/pull/69787) ([Michael Kolupaev](https://github.com/al13n321)). +* `useDefaultImplementationForLowCardinalityColumns` をオーバーライドして `true` を返すようにすることで、`LowCardinality` カラムに対する `getSubcolumn` を修正しました。 [#69831](https://github.com/ClickHouse/ClickHouse/pull/69831) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* 分散テーブルの DROP が失敗した場合に、分散送信が永続的にブロックされる問題を修正。 [#69843](https://github.com/ClickHouse/ClickHouse/pull/69843) ([Azat Khuzhin](https://github.com/azat)). +* NaN キーを含む WITH FILL 付きのクエリがキャンセルできない問題を修正しました。これにより [#69261](https://github.com/ClickHouse/ClickHouse/issues/69261) が解決しました。 [#69845](https://github.com/ClickHouse/ClickHouse/pull/69845) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 古い互換性値を使用している場合のアナライザーのデフォルト値を修正。 [#69895](https://github.com/ClickHouse/ClickHouse/pull/69895) ([Raúl Marín](https://github.com/Algunenano)). +* 古いテーブルを DROP する際には、CREATE OR REPLACE VIEW 実行時に依存関係をチェックしないようにしました。以前は、再作成される VIEW に依存するテーブルが存在すると、CREATE OR REPLACE クエリが失敗していました。 [#69907](https://github.com/ClickHouse/ClickHouse/pull/69907) ([Pavel Kruglov](https://github.com/Avogar))。 +* Decimal に関する変更。[#69730](https://github.com/ClickHouse/ClickHouse/issues/69730) を修正。[#69978](https://github.com/ClickHouse/ClickHouse/pull/69978)([Arthur Passos](https://github.com/arthurpassos))。 +* DEFINER/INVOKER がパラメータ付きビューでも動作するようになりました。 [#69984](https://github.com/ClickHouse/ClickHouse/pull/69984) ([pufit](https://github.com/pufit)). +* VIEW の definer のパース処理を修正しました。 [#69985](https://github.com/ClickHouse/ClickHouse/pull/69985) ([pufit](https://github.com/pufit)). +* `Date` または `Date32` 引数を含むクエリの結果がタイムゾーンによって変わる不具合を修正しました。 [#70036](https://github.com/ClickHouse/ClickHouse/pull/70036) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* ネストされたビューと `WHERE` 条件を含むクエリで発生する `Block structure mismatch` エラーを修正し、[#66209](https://github.com/ClickHouse/ClickHouse/issues/66209) を解決しました。[#70054](https://github.com/ClickHouse/ClickHouse/pull/70054)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* `tuple` 関数を評価する際に、異なる名前付きタプル間で同じカラムを再利用しないようにしました。これにより [#70022](https://github.com/ClickHouse/ClickHouse/issues/70022) が修正されました。 [#70103](https://github.com/ClickHouse/ClickHouse/pull/70103) ([Amos Bird](https://github.com/amosbird))。 +* 範囲内のリテラルを置き換える際に LOGICAL_ERROR が誤って発生していた問題を修正。 [#70122](https://github.com/ClickHouse/ClickHouse/pull/70122) ([Pablo Marcos](https://github.com/pamarcos)). +* ALTER TABLE MODIFY COLUMN/クエリの実行中に Nullable(Nothing) 型をチェックし、そのようなデータ型を持つテーブルが作成されるのを防ぐようになりました。 [#70123](https://github.com/ClickHouse/ClickHouse/pull/70123) ([Pavel Kruglov](https://github.com/Avogar))。 +* 不正なクエリ `JOIN ... ON *` に対して適切なエラーメッセージを出力するようにしました。[#68650](https://github.com/ClickHouse/ClickHouse/issues/68650) をクローズしました。 [#70124](https://github.com/ClickHouse/ClickHouse/pull/70124) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* スキップ索引により誤った結果が返される問題を修正。 [#70127](https://github.com/ClickHouse/ClickHouse/pull/70127) ([Raúl Marín](https://github.com/Algunenano)). +* ColumnObject/ColumnTuple の decompress メソッドにおけるデータレースを修正しました。この問題により、解放後のヒープ領域を使用してしまう可能性がありました。 [#70137](https://github.com/ClickHouse/ClickHouse/pull/70137) ([Pavel Kruglov](https://github.com/Avogar))。 +* Dynamic 型を使用した ALTER COLUMN でハングする可能性があった問題を修正しました。 [#70144](https://github.com/ClickHouse/ClickHouse/pull/70144) ([Pavel Kruglov](https://github.com/Avogar)). +* ClickHouse は、より多くの種類のエラーを再試行可能なエラーとして扱うようになり、そのようなエラーが発生してもデータパーツを破損としてマークしないようになりました。 [#70145](https://github.com/ClickHouse/ClickHouse/pull/70145) ([alesapin](https://github.com/alesapin)). +* JSON サブカラムの Dynamic 型作成時に `max_types` パラメータが正しく使用されるようにしました。 [#70147](https://github.com/ClickHouse/ClickHouse/pull/70147) ([Pavel Kruglov](https://github.com/Avogar)). +* bcrypt パスワード認証メソッドを使用しているユーザーで、`system.query_log` にパスワードが表示されてしまう問題を修正。[#70148](https://github.com/ClickHouse/ClickHouse/pull/70148) ([Nikolay Degterinsky](https://github.com/evillique)). +* ネイティブインターフェイス(InterfaceNativeSendBytes)のイベントカウンターを修正しました。 [#70153](https://github.com/ClickHouse/ClickHouse/pull/70153) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 +* JSON カラムに関連して発生しうるクラッシュを修正しました。 [#70172](https://github.com/ClickHouse/ClickHouse/pull/70172) ([Pavel Kruglov](https://github.com/Avogar))。 +* arrayMin と arrayMax に関する複数の問題を修正。 [#70207](https://github.com/ClickHouse/ClickHouse/pull/70207) ([Raúl Marín](https://github.com/Algunenano)). +* JSON 型パーサーが設定 allow_simdjson を尊重するようになりました。 [#70218](https://github.com/ClickHouse/ClickHouse/pull/70218) ([Pavel Kruglov](https://github.com/Avogar)). +* 2つのSELECT文と `INTERSECT` を含む materialized view を作成する際に発生していたヌルポインタ参照を修正しました。例: `CREATE MATERIALIZED VIEW v0 AS (SELECT 1) INTERSECT (SELECT 1);`。[#70264](https://github.com/ClickHouse/ClickHouse/pull/70264)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 起動スクリプトでグローバル設定を変更しないでください。以前のバージョンでは、起動スクリプト内で設定を変更すると、その設定がグローバルに適用されていました。[#70310](https://github.com/ClickHouse/ClickHouse/pull/70310)([Antonio Andelic](https://github.com/antonio2368))。 +* `Dynamic` 型に対して max_types パラメータを減らす `ALTER` を行うとサーバがクラッシュする可能性があった問題を修正しました。 [#70328](https://github.com/ClickHouse/ClickHouse/pull/70328) ([Pavel Kruglov](https://github.com/Avogar)). +* 不正な WITH FILL の使用により発生していたクラッシュを修正しました。 [#70338](https://github.com/ClickHouse/ClickHouse/pull/70338) ([Raúl Marín](https://github.com/Algunenano)). +* `SYSTEM DROP FORMAT SCHEMA CACHE FOR Protobuf` で発生する可能性があった use-after-free を修正しました。 [#70358](https://github.com/ClickHouse/ClickHouse/pull/70358) ([Azat Khuzhin](https://github.com/azat)). +* GROUP BY で JSON サブオブジェクトのサブカラムを使用すると発生していたクラッシュを修正。 [#70374](https://github.com/ClickHouse/ClickHouse/pull/70374) ([Pavel Kruglov](https://github.com/Avogar)). +* 行を含まないパーツについては、垂直マージ時のプリフェッチを行わないようにしました。 [#70452](https://github.com/ClickHouse/ClickHouse/pull/70452) ([Antonio Andelic](https://github.com/antonio2368)). +* `WHERE` 句でラムダ関数を使用した場合に発生するクラッシュを修正。 [#70464](https://github.com/ClickHouse/ClickHouse/pull/70464) ([Raúl Marín](https://github.com/Algunenano)). +* データベース `Replicated` 上で、セカンダリレプリカ側でテーブル関数のソースが利用できない場合に `CREATE ... AS table_function(...)` によるテーブル作成が正しく動作しない問題を修正しました。 [#70511](https://github.com/ClickHouse/ClickHouse/pull/70511) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* `wait_for_async_insert=1` の場合、非同期挿入時のすべての出力を無視するようにしました。 [#62644](https://github.com/ClickHouse/ClickHouse/issues/62644) をクローズ。 [#70530](https://github.com/ClickHouse/ClickHouse/pull/70530)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* system.remote_data_paths からシャドウディレクトリを走査する際に frozen_metadata.txt を無視するようになりました。 [#70590](https://github.com/ClickHouse/ClickHouse/pull/70590) ([Aleksei Filatov](https://github.com/aalexfvk)). +* アラインされていないメモリ上で状態付きウィンドウ関数を作成する際の不具合を修正。 [#70631](https://github.com/ClickHouse/ClickHouse/pull/70631) ([Raúl Marín](https://github.com/Algunenano)). +* 非空のデフォルト式を持つ `Array` 型のカラムを追加した後に、`SELECT` クエリやマージ処理でまれに発生していたクラッシュを修正しました。 [#70695](https://github.com/ClickHouse/ClickHouse/pull/70695) ([Anton Popov](https://github.com/CurtizJ)). +* テーブル関数 s3 への INSERT がクエリ設定を反映するようになりました。 [#70696](https://github.com/ClickHouse/ClickHouse/pull/70696) ([Vladimir Cherkasov](https://github.com/vdimir)). +* サポートされていないフィールドをスキップする設定が有効になっている場合に、protobuf スキーマの推論時に発生していた無限再帰を修正しました。 [#70697](https://github.com/ClickHouse/ClickHouse/pull/70697) ([Raúl Marín](https://github.com/Algunenano)). +* デフォルトで enable_named_columns_in_function_tuple を無効化しました。 [#70833](https://github.com/ClickHouse/ClickHouse/pull/70833) ([Raúl Marín](https://github.com/Algunenano)). +* サーバーの CPU コア数から自動的に決定された場合に、S3Queue テーブルエンジンの設定 processing_threads_num が有効になっていなかった問題を修正。 [#70837](https://github.com/ClickHouse/ClickHouse/pull/70837) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 集計状態における名前付きタプル引数を正規化するようにしました。これにより、[#69732](https://github.com/ClickHouse/ClickHouse/issues/69732) が修正されました。 [#70853](https://github.com/ClickHouse/ClickHouse/pull/70853) ([Amos Bird](https://github.com/amosbird))。 +* 2 レベルのハッシュテーブルにおける負のゼロに起因する論理エラーを修正しました。これにより [#70973](https://github.com/ClickHouse/ClickHouse/issues/70973) が解決されました。[#70979](https://github.com/ClickHouse/ClickHouse/pull/70979)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 分散および並列レプリカ環境での `limit by` および `limit with ties` を修正。 [#70880](https://github.com/ClickHouse/ClickHouse/pull/70880) ([Nikita Taranov](https://github.com/nickitat)). + +### ClickHouse リリース 24.9(2024-09-26)[プレゼンテーション](https://presentations.clickhouse.com/2024-release-24.9/)、[動画](https://www.youtube.com/watch?v=ray6wJGCHbs) {#a-id249a-clickhouse-release-249-2024-09-26} + + + +#### 後方互換性のない変更 {#backward-incompatible-change-3} + +* `a[b].c` のような式が、名前付きタプルに対して、また任意の式からの名前付き添字(例: `expr().name`)に対してサポートされるようになりました。これは JSON を処理する際に有用です。この変更により [#54965](https://github.com/ClickHouse/ClickHouse/issues/54965) がクローズされます。以前のバージョンでは、`expr().name` 形式の式は `tupleElement(expr(), name)` としてパースされ、クエリアナライザは対応するタプル要素ではなくカラム `name` を検索していました。一方、新しいバージョンでは `tupleElement(expr(), 'name')` として解釈されるように変更されています。ほとんどの場合、以前のバージョンは正しく動作していませんでしたが、この変更が非互換性を引き起こし得る非常に特殊なシナリオは考えられます。例えば、タプル要素の名前を、そのタプル要素自身の名前とは異なる名前のカラムまたは別名に保存している場合です: `SELECT 'b' AS a, CAST([tuple(123)] AS 'Array(Tuple(b UInt8))') AS t, t[1].a`。そのようなクエリを実際に使用している可能性は極めて低いと考えられますが、この変更は潜在的に後方互換性のない変更としてマークする必要があります。 [#68435](https://github.com/ClickHouse/ClickHouse/pull/68435) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 設定 `print_pretty_type_names` が有効な場合、`SHOW CREATE TABLE` 文、`formatQuery` 関数、および `clickhouse-client` と `clickhouse-local` の対話モードにおいて、`Tuple` データ型が Pretty 形式で出力されるようになりました。以前のバージョンでは、この設定は `DESCRIBE` クエリと `toTypeName` にのみ適用されていました。この変更により [#65753](https://github.com/ClickHouse/ClickHouse/issues/65753) がクローズされます。 [#68492](https://github.com/ClickHouse/ClickHouse/pull/68492) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `Replicated` データベースでテーブルを作成する際に、UUID を明示的に指定することはできなくなりました。また、Replicated データベース内の *MergeTree テーブルについて、Keeper パスおよびレプリカ名を明示的に指定することも禁止されました。これにより、新しい設定 `database_replicated_allow_explicit_uuid` が導入され、`database_replicated_allow_replicated_engine_arguments` の型が Bool から UInt64 に変更されます。 [#66104](https://github.com/ClickHouse/ClickHouse/pull/66104) ([Alexander Tokmakov](https://github.com/tavplubix))。 + +#### 新機能 {#new-feature-3} + +* 1人のユーザーに対して、1つだけでなく複数の認証方法を利用できるようにしました。認証方法は、最後に追加された方法にリセットできるようになりました。しばらくの間、一部のインスタンスを 24.8 で、別のインスタンスを 24.9 で稼働させたい場合は、その期間中の潜在的な非互換性を避けるために、`max_authentication_methods_per_user` = 1 に設定しておくことを推奨します。[#65277](https://github.com/ClickHouse/ClickHouse/pull/65277)([Arthur Passos](https://github.com/arthurpassos))。 +* `ATTACH PARTITION ALL FROM` のサポートを追加しました。 [#61987](https://github.com/ClickHouse/ClickHouse/pull/61987) ([Kirill Nikiforov](https://github.com/allmazz)). +* `input_format_json_empty_as_default` SETTING を追加しました。有効にすると、JSON 入力内の空のフィールドをデフォルト値として扱います。[#59339](https://github.com/ClickHouse/ClickHouse/issues/59339) をクローズしました。 [#66782](https://github.com/ClickHouse/ClickHouse/pull/66782)([Alexis Arnaud](https://github.com/a-a-f))。 +* 文字列の一部を別の文字列で置換する関数 `overlay` および `overlayUTF8` を追加しました。例: `SELECT overlay('Hello New York', 'Jersey', 11)` は `Hello New Jersey` を返します。 [#66933](https://github.com/ClickHouse/ClickHouse/pull/66933) ([李扬](https://github.com/taiyang-li))。 +* パーティションにおける論理削除のサポートを追加しました `DELETE FROM [db.]table [ON CLUSTER cluster] [IN PARTITION partition_expr] WHERE expr; ` [#67805](https://github.com/ClickHouse/ClickHouse/pull/67805) ([sunny](https://github.com/sunny19930321)). +* `Interval` データ型について、異なる単位(秒や分など)の値同士を比較できるようにし、その際には最小スーパータイプに変換してから比較するようになりました。 [#68057](https://github.com/ClickHouse/ClickHouse/pull/68057) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* CREATE 文で `IF NOT EXISTS` の動作をデフォルトにする `create_if_not_exists` 設定を追加しました。 [#68164](https://github.com/ClickHouse/ClickHouse/pull/68164) ([Peter Nguyen](https://github.com/petern48))。 +* Azure およびローカル環境から `Iceberg` テーブルを読み取れるようにしました。 [#68210](https://github.com/ClickHouse/ClickHouse/pull/68210) ([Daniil Ivanik](https://github.com/divanik)). +* クエリキャッシュのエントリをタグで削除できるようになりました。たとえば、`SELECT 1 SETTINGS use_query_cache = true, query_cache_tag = 'abc'` で作成されたエントリは、`SYSTEM DROP QUERY CACHE TAG 'abc'` によって削除できます。 [#68477](https://github.com/ClickHouse/ClickHouse/pull/68477) ([Michał Tabaszewski](https://github.com/pinsvin00)). +* 名前付きコレクション用のストレージ暗号化を追加。 [#68615](https://github.com/ClickHouse/ClickHouse/pull/68615) ([Pablo Marcos](https://github.com/pamarcos))。 +* `URL` テーブルエンジンに仮想カラム `_headers` を追加しました。[#65026](https://github.com/ClickHouse/ClickHouse/issues/65026) をクローズしました。[#68867](https://github.com/ClickHouse/ClickHouse/pull/68867)([flynn](https://github.com/ucasfl))。 +* 利用可能なプロジェクションを管理するための `system.projections` テーブルを追加。 [#68901](https://github.com/ClickHouse/ClickHouse/pull/68901) ([Jordi Villar](https://github.com/jrdi)). +* Spark 互換性のため、新しい関数 `arrayZipUnaligned` を追加しました(Spark では `arrays_zip` という名前)。これは元の `arrayZip` を拡張したもので、未整列の配列を扱うことができます。 [#69030](https://github.com/ClickHouse/ClickHouse/pull/69030) ([李扬](https://github.com/taiyang-li))。 +* Keeper クライアントのコマンドラインアプリケーションに `cp`/`mv` コマンドを追加し、ノードのアトミックなコピー/移動を行えるようにしました。 [#69034](https://github.com/ClickHouse/ClickHouse/pull/69034) ([Mikhail Artemenko](https://github.com/Michicosun)). +* 関数 `arrayAUC` に、正規化処理をスキップできる引数 `scale`(デフォルト: `true`)を追加しました(issue [#69609](https://github.com/ClickHouse/ClickHouse/issues/69609))。 [#69717](https://github.com/ClickHouse/ClickHouse/pull/69717)([gabrielmcg44](https://github.com/gabrielmcg44))。 + +#### 実験的機能 {#experimental-feature-2} + +* テキストフォーマットでスキーマ推論を行う際、カラム/配列要素に対して複数の型が候補となる場合に `Variant` 型を推論できるようにする `input_format_try_infer_variants` SETTING を追加しました。 [#63798](https://github.com/ClickHouse/ClickHouse/pull/63798) ([Shaun Struwig](https://github.com/Blargian)). +* JSON カラムの型の内容をより良く解析するための集約関数 `distinctDynamicTypes` / `distinctJSONPaths` / `distinctJSONPathsAndTypes` を追加しました。 [#68463](https://github.com/ClickHouse/ClickHouse/pull/68463) ([Kruglov Pavel](https://github.com/Avogar)). +* コンシステントハッシュにより並列レプリカ間でマークの分配単位を決定する新しいアルゴリズムを導入しました。異なる読み取りパターンに対して異なる数のマークを選択することで、パフォーマンスを向上させます。 [#68424](https://github.com/ClickHouse/ClickHouse/pull/68424) ([Nikita Taranov](https://github.com/nickitat)). +* これまで並列レプリカのアナウンス処理におけるパート重複排除ロジックのアルゴリズムの計算量は O(n^2) であり、多数のパート(またはパーティション)を持つテーブルでは無視できない時間がかかることがありました。この変更により計算量は O(n*log(n)) になります。 [#69596](https://github.com/ClickHouse/ClickHouse/pull/69596) ([Alexander Gololobov](https://github.com/davenger)). +* リフレッシャブルmaterialized view の改善: 既存テーブル全体を上書きするのではなく行を追加するアペンドモード(`... REFRESH EVERY 1 MINUTE APPEND ...`)、再試行(デフォルトでは無効で、クエリの SETTINGS セクションで設定)、現在実行中のリフレッシュが完了するまで待機する `SYSTEM WAIT VIEW ` クエリ、およびいくつかの不具合修正を追加しました。 [#58934](https://github.com/ClickHouse/ClickHouse/pull/58934) ([Michael Kolupaev](https://github.com/al13n321)). +* 新しい(実験的な)統計情報の種別として `min_max` を追加しました。これは数値カラムに対する範囲述語、例えば `x < 100` の推定をサポートします。 [#67013](https://github.com/ClickHouse/ClickHouse/pull/67013) ([JackyWoo](https://github.com/JackyWoo)). +* Variant/Dynamic カラムに対する castOrDefault を改善し、内部型同士が全く変換不可能な場合でも動作するようにしました。 [#67150](https://github.com/ClickHouse/ClickHouse/pull/67150) ([Kruglov Pavel](https://github.com/Avogar)). +* MaterializedPostgreSQL を通じてカラムのサブセットのレプリケーションが利用可能になりました。 [#33748](https://github.com/ClickHouse/ClickHouse/issues/33748) を解決しました。 [#69092](https://github.com/ClickHouse/ClickHouse/pull/69092) ([Kruglov Kirill](https://github.com/1on)). + +#### パフォーマンスの改善 {#performance-improvement-3} + +* Hive パーティショニングに対して、必要なファイルのみを読み込むように実装しました。[#68963](https://github.com/ClickHouse/ClickHouse/pull/68963) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* LEFT または INNER ハッシュ JOIN においてテーブルキーが高密度な場合に、右テーブルをキーで並べ替えることで JOIN のパフォーマンスを改善しました。[#60341](https://github.com/ClickHouse/ClickHouse/pull/60341) ([kevinyhzou](https://github.com/KevinyhZou)). +* 行のリストを遅延的に追加することで、ALL JOIN のパフォーマンスを改善しました。[#63677](https://github.com/ClickHouse/ClickHouse/pull/63677) ([kevinyhzou](https://github.com/KevinyhZou)). +* 再起動を高速化するために、ブート処理中にファイルシステムキャッシュのメタデータを非同期にロードするようにしました(`load_metadata_asynchronously` 設定で制御)。[#65736](https://github.com/ClickHouse/ClickHouse/pull/65736) ([Daniel Pozo Escalona](https://github.com/danipozo)). +* 関数 `array` および `map` を最適化し、いくつかの一般的なケースを大幅に高速に処理できるようにしました。[#67707](https://github.com/ClickHouse/ClickHouse/pull/67707) ([李扬](https://github.com/taiyang-li)). +* 特にカラムに NULL が含まれていない場合に、ORC 文字列の読み取りに対して軽微な最適化を行うことで高速化しました。[#67794](https://github.com/ClickHouse/ClickHouse/pull/67794) ([李扬](https://github.com/taiyang-li)). +* マージ処理のステップのスケジューリングにかかるオーバーヘッドを削減することで、マージ全体のパフォーマンスを改善しました。[#68016](https://github.com/ClickHouse/ClickHouse/pull/68016) ([Anton Popov](https://github.com/CurtizJ)). +* プロファイルが設定されておらず、クレデンシャルも設定されておらず、かつ IMDS が利用できない場合(たとえばクラウド環境外のマシンからパブリックバケットに対してクエリを実行している場合)に、S3 へのリクエストを高速化しました。これにより [#52771](https://github.com/ClickHouse/ClickHouse/issues/52771) がクローズされます。[#68082](https://github.com/ClickHouse/ClickHouse/pull/68082) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 一部のパフォーマンス改善のために、`RowInputFormatWithNamesAndTypes` においてフォーマットリーダーの仮想関数呼び出しを排除しました。[#68437](https://github.com/ClickHouse/ClickHouse/pull/68437) ([李扬](https://github.com/taiyang-li)). +* CPU 使用率を最大化するため、group by キーで集約する際に `uniq` 集約関数に対して並列マージを追加しました。[#68441](https://github.com/ClickHouse/ClickHouse/pull/68441) ([Jiebin Sun](https://github.com/jiebinn)). +* ユーザーが `ORC` 出力フォーマットで文字列カラムに対して辞書エンコーディングを有効化できるように、`output_format_orc_dictionary_key_size_threshold` 設定を追加しました。これにより出力される `ORC` ファイルサイズが削減され、読み取りパフォーマンスが大幅に向上します。[#68591](https://github.com/ClickHouse/ClickHouse/pull/68591) ([李扬](https://github.com/taiyang-li)). +* ノードとそのすべての部分木を削除する新しい Keeper リクエスト `RemoveRecursive` を導入しました。[#69332](https://github.com/ClickHouse/ClickHouse/pull/69332) ([Mikhail Artemenko](https://github.com/Michicosun)). +* ベクトル類似性索引を持つテーブルへの挿入時に、ベクトル索引へのデータ追加を並列化することで、挿入パフォーマンスを高速化しました。[#69493](https://github.com/ClickHouse/ClickHouse/pull/69493) ([flynn](https://github.com/ucasfl)). +* 適応的な書き込みバッファサイズを使用することで、JSON への INSERT のメモリ使用量を削減しました。`wide` パートの JSON カラムによって作成される多数のファイルは少量のデータしか含まないことが多く、それらに対して 1MB のバッファを割り当てるのは意味がありません。[#69272](https://github.com/ClickHouse/ClickHouse/pull/69272) ([Kruglov Pavel](https://github.com/Avogar)). +* クエリが不要に大量のスレッドを生成しないようにするため、並行ハッシュ JOIN のスレッドプールにスレッドを返さないようにしました。[#69406](https://github.com/ClickHouse/ClickHouse/pull/69406) ([Duc Canh Le](https://github.com/canhld94)). + +#### 改善点 {#improvement-3} + +* CREATE TABLE AS は、PRIMARY KEY や ORDER BY などの句をコピーするようになりました。現在は MergeTree ファミリーのテーブルエンジンに対してのみ対応しています。 [#69076](https://github.com/ClickHouse/ClickHouse/pull/69076) ([sakulali](https://github.com/sakulali)). +* 小さなエンティティのパース処理に関連するコードベースの一部を強化しました。次の(軽微な)バグが見つかり、修正されました: - `DeltaLake` テーブルが Bool 型でパーティション分割されている場合、パーティション値が常に false として解釈されてしまう不具合; - `ExternalDistributed` テーブルが、指定されたアドレスのうち単一の分片しか使用していなかった不具合; `max_threads` 設定などの値が `auto(N)` ではなく `'auto(N)'` として出力されていた不具合。[#52503](https://github.com/ClickHouse/ClickHouse/pull/52503)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* CPU 使用量の算出には、システム全体のメトリクスではなく cgroup 固有のメトリクスを使用するよう変更。 [#62003](https://github.com/ClickHouse/ClickHouse/pull/62003) ([Nikita Taranov](https://github.com/nickitat)). +* リモートの S3 ディスクに対する I/O スケジューリングは、`bandwidth_limit` による帯域制限の問題を解決するため、(S3 リクエスト全体ではなく)HTTP ソケットストリームのレベルで行われるようになりました。 [#65182](https://github.com/ClickHouse/ClickHouse/pull/65182) ([Sergei Trifonov](https://github.com/serxa)). +* 関数 `upperUTF8` と `lowerUTF8` は以前、キリル文字のみを大文字化・小文字化できました。この制限は解消され、任意の言語の文字を大文字化・小文字化できるようになりました。例: `SELECT upperUTF8('Süden')` は、現在は `SÜDEN` を返します。 [#65761](https://github.com/ClickHouse/ClickHouse/pull/65761) ([李扬](https://github.com/taiyang-li)). +* プロジェクションを持つテーブルで論理削除が発生する場合、これまでは(デフォルトでは)例外をスローするか、論理削除の際にプロジェクションを削除するかのいずれかをユーザーが選択する必要がありましたが、新たに第三の選択肢として、論理削除を実行した後にプロジェクションを再構築できるようになりました。 [#66169](https://github.com/ClickHouse/ClickHouse/pull/66169) ([jsc0218](https://github.com/jsc0218)). +* IP ファミリに基づいて接続をブロックできるようにするため、2 つのオプション(`dns_allow_resolve_names_to_ipv4` と `dns_allow_resolve_names_to_ipv6`)が追加されました。[#66895](https://github.com/ClickHouse/ClickHouse/pull/66895) ([MikhailBurdukov](https://github.com/MikhailBurdukov))。 +* clickhouse-client で Ctrl-Z を無視する動作(ignore_shell_suspend)を設定可能にしました。 [#67134](https://github.com/ClickHouse/ClickHouse/pull/67134) ([Azat Khuzhin](https://github.com/azat)). +* JSON 出力フォーマットにおける UTF-8 検証を改善しました。結果データに特定のバイト列が含まれている場合でも、有効な JSON が生成されることを保証します。 [#67938](https://github.com/ClickHouse/ClickHouse/pull/67938) ([mwoenker](https://github.com/mwoenker)). +* マージおよびミューテーションの解析性を高めるために、profile events を追加しました。 [#68015](https://github.com/ClickHouse/ClickHouse/pull/68015) ([Anton Popov](https://github.com/CurtizJ)). +* ODBC: サーバー設定から `http_max_tries` を取得するように変更しました。 [#68128](https://github.com/ClickHouse/ClickHouse/pull/68128) ([Rodolphe Dugé de Bernonville](https://github.com/RodolpheDuge)). +* X.509 の SubjectAltName 拡張におけるユーザー識別でワイルドカードをサポート。 [#68236](https://github.com/ClickHouse/ClickHouse/pull/68236) ([Marco Vilas Boas](https://github.com/marco-vb)). +* 日時スキーマの推論を改善しました。`DateTime64` は日時に小数部分がある場合にのみ使用され、それ以外の場合は通常の `DateTime` が使用されるようになりました。Date/DateTime の推論はこれまでより厳密になり、特に `date_time_input_format='best_effort'` の場合に、コーナーケースで文字列から誤って日時を推論してしまうことを防ぎます。 [#68382](https://github.com/ClickHouse/ClickHouse/pull/68382) ([Kruglov Pavel](https://github.com/Avogar)). +* 辞書における named collection 関連の旧コードを削除し、DDL で作成された named collection を辞書で利用できる新しいコードに置き換えました。[#60936](https://github.com/ClickHouse/ClickHouse/issues/60936) をクローズし、[#36890](https://github.com/ClickHouse/ClickHouse/issues/36890) をクローズしました。[#68412](https://github.com/ClickHouse/ClickHouse/pull/68412)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 外部 HTTP 認証器には、デフォルト設定だった HTTP/1.0 の代わりに HTTP/1.1 を使用するようにしました。 [#68456](https://github.com/ClickHouse/ClickHouse/pull/68456) ([Aleksei Filatov](https://github.com/aalexfvk)). +* スレッドプールの内部観察のための新しいメトリクス群を追加し、スレッドプールのパフォーマンスと動作に関するより深い知見を得られるようにしました。 [#68674](https://github.com/ClickHouse/ClickHouse/pull/68674) ([filimonov](https://github.com/filimonov)). +* `Values` フォーマットを使用した非同期インサート時にクエリパラメータをサポートしました。 [#68741](https://github.com/ClickHouse/ClickHouse/pull/68741) ([Anton Popov](https://github.com/CurtizJ)). +* `dateTrunc` と `toStartOfInterval` で `Date32` をサポートするようになりました。 [#68874](https://github.com/ClickHouse/ClickHouse/pull/68874) ([LiuNeng](https://github.com/liuneng1994)). +* `system.processors_profile_log` に `plan_step_name` および `plan_step_description` カラムを追加。 [#68954](https://github.com/ClickHouse/ClickHouse/pull/68954) ([Alexander Gololobov](https://github.com/davenger))。 +* 組み込み辞書でスペイン語をサポート。 [#69035](https://github.com/ClickHouse/ClickHouse/pull/69035) ([Vasily Okunev](https://github.com/VOkunev)). +* 短い障害情報メッセージに CPU アーキテクチャを追加しました。 [#69037](https://github.com/ClickHouse/ClickHouse/pull/69037) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* リトライ中に新しい Keeper 接続を確立できない場合、クエリがより早期に失敗するようになりました。 [#69148](https://github.com/ClickHouse/ClickHouse/pull/69148) ([Raúl Marín](https://github.com/Algunenano)). +* DatabaseFactory を更新し、ユーザー定義のデータベースエンジンでも引数、設定、およびテーブルのオーバーライドを指定できるようにしました(StorageFactory と同様)。[#69201](https://github.com/ClickHouse/ClickHouse/pull/69201) ([NikBarykin](https://github.com/NikBarykin)). +* すべての外部テーブルエンジンおよびテーブル関数を `Null` エンジンに置き換えるリストアモード(`restore_replace_external_engines_to_null`、`restore_replace_external_table_functions_to_null` の各設定)は、テーブルに SETTINGS がある場合に失敗していました。現在は、この場合にテーブル定義から SETTINGS を削除するようになり、そのようなテーブルもリストアできるようになりました。 [#69253](https://github.com/ClickHouse/ClickHouse/pull/69253) ([Ilya Yatsishin](https://github.com/qoega)). +* CLICKHOUSE_PASSWORD が、ClickHouse イメージの entrypoint スクリプトで XML 用に正しくエスケープされるようになりました。 [#69301](https://github.com/ClickHouse/ClickHouse/pull/69301) ([aohoyd](https://github.com/aohoyd)). +* `arrayZip`/`arrayZipUnaligned` に空の引数を許可しました。これは [https://github.com/ClickHouse/ClickHouse/pull/65887](https://github.com/ClickHouse/ClickHouse/pull/65887) における concat と同様の挙動です。Gluten CH Backend における Spark 互換性を確保するための変更です。[#69576](https://github.com/ClickHouse/ClickHouse/pull/69576) ([李扬](https://github.com/taiyang-li))。 +* Keeper の内部通信に対して、より高度な SSL オプション(例: パスフレーズ付き秘密鍵)をサポート。 [#69582](https://github.com/ClickHouse/ClickHouse/pull/69582) ([Antonio Andelic](https://github.com/antonio2368)). +* 多数のパーツやパーティションを持つ大きなテーブルでは、インデックス解析に無視できない時間がかかることがあります。この変更により、その段階で重いクエリを中断できるようになります。 [#69606](https://github.com/ClickHouse/ClickHouse/pull/69606) ([Alexander Gololobov](https://github.com/davenger)). +* `gcs` テーブル関数で機密情報をマスク。 [#69611](https://github.com/ClickHouse/ClickHouse/pull/69611) ([Vitaly Baranov](https://github.com/vitlibar)). +* 行数を減らすマージ時に projection を再構築するようにしました。 [#62364](https://github.com/ClickHouse/ClickHouse/pull/62364) ([cangyin](https://github.com/cangyin)). + +#### バグ修正(公式安定版リリースにおけるユーザー影響のある不具合){#bug-fix-user-visible-misbehavior-in-an-official-stable-release-3} + +* 実験的かつサポート対象外の MaterializedPostgreSQL エンジンにおいて、PostgreSQL の dbname に "-" が含まれている場合のテーブルのアタッチ処理を修正。 [#62730](https://github.com/ClickHouse/ClickHouse/pull/62730) ([takakawa](https://github.com/takakawa))。 +* 実験的であり完全に非サポートの MaterializedPostgreSQL エンジンにおいて、adnum の順序付けが壊れている場合の生成カラムに関するエラーを修正しました [#63161](https://github.com/ClickHouse/ClickHouse/issues/63161)。同じく実験的で完全に非サポートの MaterializedPostgreSQL エンジンにおいて、テーブル内に生成カラムが存在する場合に、デフォルト値として nextval 式を使用する id カラムで発生していたエラーを修正しました。さらに、`[a-z1-9-]` 以外の文字を含むパブリケーションを削除する際のエラーを修正しました [#67664](https://github.com/ClickHouse/ClickHouse/pull/67664) ([Kruglov Kirill](https://github.com/1on))。 +* 左側テーブルの Nullable カラムをサポートするように Storage Join を修正。[#61247](https://github.com/ClickHouse/ClickHouse/issues/61247) をクローズ。[#66926](https://github.com/ClickHouse/ClickHouse/pull/66926) ([vdimir](https://github.com/vdimir))。 +* `IN` 演算子に Decimal() への変換が含まれている場合に、parallel replicas(およびクエリの分散実行)で誤ったクエリ結果が返される問題を修正しました。このバグは新しいアナライザーによって導入されました。 [#67234](https://github.com/ClickHouse/ClickHouse/pull/67234) ([Igor Nikonov](https://github.com/devcrafter)). +* `ALTER MODIFY ORDER BY` によりメタデータの不整合が発生する不具合を修正しました。 [#67436](https://github.com/ClickHouse/ClickHouse/pull/67436) ([iceFireser](https://github.com/iceFireser)) +* 関数 `fromModifiedJulianDay` の上限値を修正しました。本来は `9999-12-31` とすべきところを、誤って `9999-01-01` に設定していました。 [#67583](https://github.com/ClickHouse/ClickHouse/pull/67583) ([PHO](https://github.com/depressed-pho))。 +* `IN` クエリで、タプル内で索引が先頭にない場合に発生する不具合を修正しました。 [#67626](https://github.com/ClickHouse/ClickHouse/pull/67626) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* `RoleCache` の有効期限処理を修正。 [#67748](https://github.com/ClickHouse/ClickHouse/pull/67748) ([Vitaly Baranov](https://github.com/vitlibar)). +* VIEW へのフラッシュが遅いために、WindowView でブロックが欠落する問題を修正。 [#67983](https://github.com/ClickHouse/ClickHouse/pull/67983) ([Raúl Marín](https://github.com/Algunenano))。 +* 不正な日付形式が原因で発生していた MSan の問題を修正しました。 [#68105](https://github.com/ClickHouse/ClickHouse/pull/68105) ([JackyWoo](https://github.com/JackyWoo)) +* ファイル内のデータ型が要求された型と大きく異なる場合(例: `... FROM file('a.parquet', Parquet, 'x String')` だが、ファイル側は `x Int64` の場合)に、Parquet フィルタリングがクラッシュする問題を修正しました。この修正が適用されていない場合は、回避策として `input_format_parquet_filter_push_down = 0` を使用してください。 [#68131](https://github.com/ClickHouse/ClickHouse/pull/68131) ([Michael Kolupaev](https://github.com/al13n321)). +* [#67091](https://github.com/ClickHouse/ClickHouse/issues/67091) で発生していた `lag`/`lead` のクラッシュを修正。 [#68262](https://github.com/ClickHouse/ClickHouse/pull/68262) ([lgbo](https://github.com/lgbo-ustc))。 +* クエリがキャンセルされた際に発生する Postgres のクラッシュを修正しました。 [#68288](https://github.com/ClickHouse/ClickHouse/pull/68288) ([Kseniia Sumarokova](https://github.com/kssenii)). +* [https://github.com/ClickHouse/ClickHouse/pull/61984](https://github.com/ClickHouse/ClickHouse/pull/61984) の後も、`schema_inference_make_columns_nullable=0` によって Parquet/Arrow フォーマットでカラムが `Nullable` になる場合がありました。この変更は後方互換性がなく、ユーザーは動作の変化に気付きました。この PR により、`schema_inference_make_columns_nullable=0` は以前と同様に動作するようになり(`Nullable` カラムは推論されません)、さらにこの設定に新しい値 `auto` を導入します。`auto` は、データに null 許容に関する情報がある場合にのみカラムを `Nullable` にします。[#68298](https://github.com/ClickHouse/ClickHouse/pull/68298) ([Kruglov Pavel](https://github.com/Avogar))。 +* [#50868](https://github.com/ClickHouse/ClickHouse/issues/50868) を修正しました。分散クエリ内のネストされたサブクエリから返される小さな DateTime64 定数値が誤って Null に変換されてしまう問題があり、その結果としてエラーが発生したり、クエリ結果が不正確になる可能性がありました。[#68323](https://github.com/ClickHouse/ClickHouse/pull/68323) ([Shankar](https://github.com/shiyer7474))。 +* クエリ `SYSTEM SYNC REPLICA` で欠落していた同期レプリカモードを修正。 [#68326](https://github.com/ClickHouse/ClickHouse/pull/68326) ([Duc Canh Le](https://github.com/canhld94)). +* キー条件におけるバグを修正。 [#68354](https://github.com/ClickHouse/ClickHouse/pull/68354) ([Han Fei](https://github.com/hanfei1991)). +* LDAP 外部ユーザーディレクトリで使用されているロールを削除または名前を変更するとクラッシュする問題を修正。 [#68355](https://github.com/ClickHouse/ClickHouse/pull/68355) ([Andrey Zvonov](https://github.com/zvonand)). +* `system.view_refreshes` の Progress カラムで値が 1 を超えてしまう不具合を修正しました [#68377](https://github.com/ClickHouse/ClickHouse/issues/68377)。 [#68378](https://github.com/ClickHouse/ClickHouse/pull/68378) ([megao](https://github.com/jetgm))。 +* regexp フラグを正しく処理するようにしました。 [#68389](https://github.com/ClickHouse/ClickHouse/pull/68389) ([Han Fei](https://github.com/hanfei1991))。 +* PostgreSQL形式のキャスト演算子(`::`)が、SQL形式の16進およびバイナリ文字列リテラルに対しても正しく動作するようになりました(例:`SELECT x'414243'::String`)。これにより [#68324](https://github.com/ClickHouse/ClickHouse/issues/68324) が解決されました。 [#68482](https://github.com/ClickHouse/ClickHouse/pull/68482) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* [https://github.com/ClickHouse/ClickHouse/pull/68131](https://github.com/ClickHouse/ClickHouse/pull/68131) に対する軽微なパッチ。[#68494](https://github.com/ClickHouse/ClickHouse/pull/68494)([Chang chen](https://github.com/baibaichen))。 +* [#68239](https://github.com/ClickHouse/ClickHouse/issues/68239) 整数 `n` を指定した場合の `SAMPLE n` を修正。[#68499](https://github.com/ClickHouse/ClickHouse/pull/68499)([Denis Hananein](https://github.com/denis-hananein))。 +* 2 つの分布のサイズが等しくない場合の `mann-whitney-utest` のバグを修正。 [#68556](https://github.com/ClickHouse/ClickHouse/pull/68556) ([Han Fei](https://github.com/hanfei1991)). +* 予期しない再起動後に、破損したパーツに覆われているパーツの処理が異常となり、ReplicatedMergeTree のレプリケーションを開始できなくなる問題を修正しました。 [#68584](https://github.com/ClickHouse/ClickHouse/pull/68584) ([baolin](https://github.com/baolinhuang)). +* 空の配列またはタプルに対して関数 `sipHash64Keyed`、`sipHash128Keyed`、`sipHash128ReferenceKeyed` を適用した際に発生していた `LOGICAL_ERROR` を修正しました。 [#68630](https://github.com/ClickHouse/ClickHouse/pull/68630) ([Robert Schulze](https://github.com/rschu1ze)). +* Full text index が複数のカラムに対して作成された場合に誤ったカラムをフィルタリングしてしまうことがありました。原因は、異なるカラム間で `row_id` をリセットしていなかったためで、再現手順は `tests/queries/0_stateless/03228_full_text_with_multi_col.sql` にあります。 [#68644](https://github.com/ClickHouse/ClickHouse/pull/68644) ([siyuan](https://github.com/linkwk7)). +* Replicated テーブルを作成する際に、replica_name に無効な文字 '\t' および '\n' が含まれていると、LogEntry 内の 'source replica' が正しく解釈されない問題を修正しました。GitHub issue [#68640](https://github.com/ClickHouse/ClickHouse/issues/68640) で報告されています。[#68645](https://github.com/ClickHouse/ClickHouse/pull/68645)([Zhigao Hong](https://github.com/zghong))。 +* 分散テーブルに仮想カラム `_table` と `_database` を再度追加しました。これらはバージョン 24.3 まで利用可能でした。 [#68672](https://github.com/ClickHouse/ClickHouse/pull/68672) ([Anton Popov](https://github.com/CurtizJ)). +* Variant カラムの並べ替え処理中に発生する可能性のある `Size of permutation (0) is less than required (...)` エラーを修正。 [#68681](https://github.com/ClickHouse/ClickHouse/pull/68681) ([Kruglov Pavel](https://github.com/Avogar)). +* 新しい JSON カラムに関連して発生する可能性のある `DB::Exception: Block structure mismatch in joined block stream: different columns:` エラーが発生する問題を修正。[#68686](https://github.com/ClickHouse/ClickHouse/pull/68686) ([Kruglov Pavel](https://github.com/Avogar))。 +* `sipHash(64/128)Keyed` 関数で、配列をキーとする Map をハッシュ化する際のマテリアライズされた定数キーに関する問題を修正しました。[#68731](https://github.com/ClickHouse/ClickHouse/pull/68731)([Salvatore Mesoraca](https://github.com/aiven-sal))。 +* `ColumnsDescription::toString` が各カラムを同一の `IAST::FormatState` オブジェクトを使ってフォーマットするようにしました。これにより、ディスクおよび ZooKeeper に書き込まれるカラムのメタデータが一貫した形式になります。 [#68733](https://github.com/ClickHouse/ClickHouse/pull/68733) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* GROUPING SETS における集約結果のマージ処理を修正。 [#68744](https://github.com/ClickHouse/ClickHouse/pull/68744) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* ReplicatedMergeTree テーブルを作成し、カラムに対して ALTER を行った後に MODIFY STATISTICS を実行すると発生していた論理エラーを修正しました。 [#68820](https://github.com/ClickHouse/ClickHouse/pull/68820) ([Han Fei](https://github.com/hanfei1991)). +* analyzer におけるサブクエリ由来の動的サブカラムの解決処理を修正。 [#68824](https://github.com/ClickHouse/ClickHouse/pull/68824) ([Kruglov Pavel](https://github.com/Avogar)). +* DeltaLake における複合型メタデータの解析処理を修正。[#68739](https://github.com/ClickHouse/ClickHouse/issues/68739) をクローズ。[#68836](https://github.com/ClickHouse/ClickHouse/pull/68836)([Kseniia Sumarokova](https://github.com/kssenii))。 +* `ALTER ADD/MODIFY COLUMN` クエリによって、挿入は完了しているがテーブルへのフラッシュ前のタイミングでテーブルのメタデータが変更された場合に発生する非同期挿入の問題を修正しました。 [#68837](https://github.com/ClickHouse/ClickHouse/pull/68837) ([Anton Popov](https://github.com/CurtizJ)). +* `array` に空のタプルを渡したときに予期しない例外が発生していた問題を修正しました。これにより [#68618](https://github.com/ClickHouse/ClickHouse/issues/68618) が解決されます。 [#68848](https://github.com/ClickHouse/ClickHouse/pull/68848) ([Amos Bird](https://github.com/amosbird))。 +* 純粋なメタデータのみを対象とする `MUTATIONS` コマンドのパースを修正。 [#68935](https://github.com/ClickHouse/ClickHouse/pull/68935) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* anyHeavy ステートのマージ中に誤った結果が生じる可能性があった問題を修正。 [#68950](https://github.com/ClickHouse/ClickHouse/pull/68950) ([Raúl Marín](https://github.com/Algunenano)). +* `optimize_functions_to_subcolumns` 設定を有効にしている場合の materialized view への書き込みを修正しました。 [#68951](https://github.com/ClickHouse/ClickHouse/pull/68951) ([Anton Popov](https://github.com/CurtizJ)). +* const Dynamic カラムのメソッドで serializations cache を使用しないようにしました。これを使用すると、集計中に未初期化の値が使われたり、レースコンディションが発生したりする可能性がありました。 [#68953](https://github.com/ClickHouse/ClickHouse/pull/68953) ([Kruglov Pavel](https://github.com/Avogar)). +* JSON 型のパース時に、一部のケースでデフォルトとして `null` を挿入すべき場面で発生していたパースエラーを修正。 [#68955](https://github.com/ClickHouse/ClickHouse/pull/68955) ([Kruglov Pavel](https://github.com/Avogar))。 +* 一部の圧縮レスポンスで `Content-Encoding` ヘッダーが送信されない不具合を修正。 [#64802](https://github.com/ClickHouse/ClickHouse/issues/64802)。 [#68975](https://github.com/ClickHouse/ClickHouse/pull/68975) ([Konstantin Bogdanov](https://github.com/thevar1able))。 +* パスが誤って連結されて `//` が含まれてしまうケースがあったため、パスの正規化によりこの問題を解消しました。 [#69066](https://github.com/ClickHouse/ClickHouse/pull/69066) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* 非同期挿入が空の場合に発生する論理エラーを修正。 [#69080](https://github.com/ClickHouse/ClickHouse/pull/69080) ([Han Fei](https://github.com/hanfei1991)). +* `clickhouse-client` において、クエリのキャンセル中に発生する進捗表示のデータレースを修正しました。 [#69081](https://github.com/ClickHouse/ClickHouse/pull/69081) ([Sergei Trifonov](https://github.com/serxa)). +* コサイン距離を距離関数として使用した場合に、ベクトル類似度索引(現在は実験的機能)が利用されていなかった不具合を修正しました。 [#69090](https://github.com/ClickHouse/ClickHouse/pull/69090) ([flynn](https://github.com/ucasfl))。 +* この変更は、初回の作成処理中にサーバー障害が発生した後に、再度 Replicated データベースを作成しようとするとエラーになる可能性があった問題に対処します。 [#69102](https://github.com/ClickHouse/ClickHouse/pull/69102) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* `input_format_csv_try_infer_numbers_from_strings = 1` の場合でも、CSV で String から Bool 型を推論しないようにしました。これは、文字列から bool 値を読み取ることを許可していないためです。[#69109](https://github.com/ClickHouse/ClickHouse/pull/69109) ([Kruglov Pavel](https://github.com/Avogar)). +* `--multiquery` が有効な場合に、クライアント側で発生していた EXPLAIN AST INSERT クエリのパースエラーを修正しました。 [#69123](https://github.com/ClickHouse/ClickHouse/pull/69123) ([wxybear](https://github.com/wxybear)). +* サブクエリ内の `UNION` 句が、並列レプリカを使用するクエリで正しく処理されず、LOGICAL_ERROR `Duplicate announcement received for replica` が発生する原因となっていました。 [#69146](https://github.com/ClickHouse/ClickHouse/pull/69146) ([Igor Nikonov](https://github.com/devcrafter)). +* s3Cluster における structure 引数の伝播処理を修正しました。以前は、s3Cluster 内のレプリカにクエリを送信する際に、カラムの `DEFAULT` 式が失われてしまう場合がありました。 [#69147](https://github.com/ClickHouse/ClickHouse/pull/69147) ([Kruglov Pavel](https://github.com/Avogar)). +* 式を宛先の型に変換する際に、Values フォーマットの設定を反映するようにしました。 [#69149](https://github.com/ClickHouse/ClickHouse/pull/69149) ([Kruglov Pavel](https://github.com/Avogar)). +* `clickhouse-client --queries-file` が読み取り専用ユーザーで動作しない問題を修正しました(以前は `readonly` モードで `log_comment` SETTING を変更できず失敗していました)。 [#69175](https://github.com/ClickHouse/ClickHouse/pull/69175) ([Azat Khuzhin](https://github.com/azat)). +* 先に終了したプロセスにパイプされた場合の clickhouse-client におけるデータレースを修正しました。 [#69186](https://github.com/ClickHouse/ClickHouse/pull/69186) ([vdimir](https://github.com/vdimir))。 +* JSON/Dynamic 型に対する `uniq` および `GROUP BY` が誤った結果を返す問題を修正しました。 [#69203](https://github.com/ClickHouse/ClickHouse/pull/69203) ([Kruglov Pavel](https://github.com/Avogar)). +* 非同期挿入時の INFILE のフォーマット検出を修正しました。FORMAT 句でフォーマットが明示的に定義されていない場合、INFILE のファイル拡張子から自動的に検出されるようになりました。 [#69237](https://github.com/ClickHouse/ClickHouse/pull/69237) ([Julia Kartseva](https://github.com/jkartseva))。 +* [この issue](https://github.com/ClickHouse/ClickHouse/pull/59946#issuecomment-1943653197) 以降、本番環境では、`metadata_version` ノードの値が `0` のままであり、かつ対応するテーブルの `metadata` ノードのバージョンとは一致していないテーブルレプリカが多数存在する状態になっていました。このため、そのようなレプリカでは `alter` クエリが失敗していました。 [#69274](https://github.com/ClickHouse/ClickHouse/pull/69274) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* `Fields` 周りの問題を回避するため、`Dynamic` 型を主キーとしては安全でない型としてマークしました。 [#69311](https://github.com/ClickHouse/ClickHouse/pull/69311) ([Kruglov Pavel](https://github.com/Avogar)). +* アクセスエンティティ間の依存関係の復元処理を改善。 [#69346](https://github.com/ClickHouse/ClickHouse/pull/69346) ([Vitaly Baranov](https://github.com/vitlibar)). +* 挿入用の接続の取得がすべて失敗した場合に発生していた未定義動作を修正しました。 [#69390](https://github.com/ClickHouse/ClickHouse/pull/69390) ([Pablo Marcos](https://github.com/pamarcos)). +* [#69135](https://github.com/ClickHouse/ClickHouse/issues/69135) をクローズしました。`cross` join で結合済みデータを再利用しようとしていますが、現時点の ClickHouse ではそのようなケースは発生しません。`reuseJoinedData` 内で `have_compressed` を保持しておく方がよいです。[#69404](https://github.com/ClickHouse/ClickHouse/pull/69404)([lgbo](https://github.com/lgbo-ustc))。 +* `materialize()` 関数が、スパースなカラムを引数に取った場合に完全なカラムを返すようにしました。 [#69429](https://github.com/ClickHouse/ClickHouse/pull/69429) ([Alexander Gololobov](https://github.com/davenger)). +* 関数 `sqidDecode` で発生していた `LOGICAL_ERROR` を修正([#69450](https://github.com/ClickHouse/ClickHouse/issues/69450))。[#69451](https://github.com/ClickHouse/ClickHouse/pull/69451)([Robert Schulze](https://github.com/rschu1ze))。 +* 24.6 における s3queue の問題、または DATABASE REPLICATED を使用した CREATE クエリに対する簡易的な修正。 [#69454](https://github.com/ClickHouse/ClickHouse/pull/69454) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `INSERT INTO ... SELECT` または `CREATE TABLE AS SELECT` クエリでの squashing 処理によりメモリ消費が過大になっていた問題を修正しました。 [#69469](https://github.com/ClickHouse/ClickHouse/pull/69469) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* テーブル名にドットを含む場合でも、`SHOW COLUMNS` および `SHOW INDEX` 文が正しく動作するようになりました。 [#69514](https://github.com/ClickHouse/ClickHouse/pull/69514) ([Salvatore Mesoraca](https://github.com/aiven-sal))。 +* `overflow` モードが `throw` 以外に設定されたクエリに対するクエリキャッシュの使用は、禁止されました。これにより、途中で切り詰められた不正確なクエリ結果がクエリキャッシュに保存されてしまう可能性のある状況を防止します (issue [#67476](https://github.com/ClickHouse/ClickHouse/issues/67476)). [#69549](https://github.com/ClickHouse/ClickHouse/pull/69549) ([Robert Schulze](https://github.com/rschu1ze)). +* `prewhere` への移動時にも条件の元の順序を保持するように修正しました。以前は順序が変わることがあり、順序が重要な場合にクエリが失敗する可能性がありました。 [#69560](https://github.com/ClickHouse/ClickHouse/pull/69560) ([Kruglov Pavel](https://github.com/Avogar)). +* ZNOAUTH エラー発生後の Keeper におけるマルチリクエストの前処理を修正。 [#69627](https://github.com/ClickHouse/ClickHouse/pull/69627) ([Antonio Andelic](https://github.com/antonio2368)). +* DatabaseReplicated で新しいレプリカを作成する際に、WHERE 句を含む有効期限 (TTL) が原因で発生する可能性があった METADATA_MISMATCH を修正しました。 [#69736](https://github.com/ClickHouse/ClickHouse/pull/69736) ([Nikolay Degterinsky](https://github.com/evillique)). +* `StorageS3(Azure)Queue` の設定項目 `tracked_file_ttl_sec` を修正しました。`tracked_file_ttl_sec` というキー名で keeper に書き込んでいましたが、`tracked_files_ttl_sec` として読み出しており、これはタイプミスでした。 [#69742](https://github.com/ClickHouse/ClickHouse/pull/69742) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* gethyperrectangleforrowgroup で tryconvertfieldtotype を使用するよう変更。 [#69745](https://github.com/ClickHouse/ClickHouse/pull/69745) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* "Fix prewhere without columns and without adaptive index granularity (almost w/o anything)"' の変更をリバートしました。これらの変更をリバートしたことにより、古い ClickHouse リリース(おそらく 2021 年以前)で生成されたデータパーツを読み取る際に、エラーが発生する可能性があります。 [#68897](https://github.com/ClickHouse/ClickHouse/pull/68897) ([Alexander Gololobov](https://github.com/davenger)). + +### ClickHouse リリース 24.8 LTS、2024-08-20。[プレゼンテーション](https://presentations.clickhouse.com/2024-release-24.8/)、[動画](https://www.youtube.com/watch?v=AeLmp2jc51k) {#a-id248a-clickhouse-release-248-lts-2024-08-20} + + + +#### 後方互換性のない変更 {#backward-incompatible-change-4} + +* `clickhouse-client` と `clickhouse-local` のデフォルトが、単一クエリモードではなくマルチクエリモードになりました。例えば、以前は `clickhouse-client -q "SELECT 1; SELECT 2"` を実行するには `--multiquery`(または `-n`)を付ける必要がありましたが、現在はそのまま動作します。`--multiquery/-n` スイッチは不要になりました。マルチクエリ文内の INSERT クエリは、その `FORMAT` 句に基づいて特別に扱われます。FORMAT が `VALUES`(最も一般的なケース)の場合、INSERT 文の終端はクエリ末尾のセミコロン `;` で表されます。それ以外の FORMAT(例: `CSV` や `JSONEachRow`)の場合、INSERT 文の終端はクエリ末尾の 2 つの改行 `\n\n` で表されます。[#63898](https://github.com/ClickHouse/ClickHouse/pull/63898)([FFish](https://github.com/wxybear))。 +* 以前のバージョンでは、`LowCardinality` データ型に対して、データ型名に `WithDictionary` を付与することで代替構文を使用することができました。これは初期の暫定的な実装であり、ドキュメント化も一般公開もされていませんでした。現在、この構文は非推奨になりました。この構文を使用している場合は、テーブルに対して ALTER を実行し、データ型名を `LowCardinality` に変更する必要があります。[#66842](https://github.com/ClickHouse/ClickHouse/pull/66842)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 分散先テーブルと組み合わせて使用されるストレージ `Buffer` における論理エラーを修正しました。これは後方互換性のない変更です。分散先テーブルと共に `Buffer` を使用するクエリは、そのテーブルがクエリ中に複数回登場する場合(例: 自己結合)、動作しなくなる可能性があります。[#67015](https://github.com/ClickHouse/ClickHouse/pull/67015)([vdimir](https://github.com/vdimir))。 +* 以前のバージョンでは、ガンマ関数に基づく乱数分布(カイ二乗、スチューデント、フィッシャーなど)の関数をゼロに近い負の引数で呼び出した場合、計算に非常に長い時間がかかる、または無限ループに陥ることがありました。新しいバージョンでは、これらの関数をゼロまたは負の引数で呼び出すと、例外がスローされます。これにより [#67297](https://github.com/ClickHouse/ClickHouse/issues/67297) が解決されました。[#67326](https://github.com/ClickHouse/ClickHouse/pull/67326)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* システムテーブル `text_log` がデフォルトで有効になりました。これは以前のバージョンとの互換性を完全に維持していますが、ローカルディスク上のディスク使用量がわずかに増加していることに気付くかもしれません(このシステムテーブルはごく少量のディスク容量しか使用しません)。[#67428](https://github.com/ClickHouse/ClickHouse/pull/67428)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 以前のバージョンでは、非常に大きな配列の生成を要求した場合、`arrayWithConstant` が遅くなることがありました。新しいバージョンでは、1 つの配列あたり 1 GB に制限されます。これにより [#32754](https://github.com/ClickHouse/ClickHouse/issues/32754) が解決されました。[#67741](https://github.com/ClickHouse/ClickHouse/pull/67741)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* REPLACE 修飾子のフォーマットを修正しました(かっこを省略できないようにしました)。[#67774](https://github.com/ClickHouse/ClickHouse/pull/67774)([Azat Khuzhin](https://github.com/azat))。 +* [#68349](https://github.com/ClickHouse/ClickHouse/issues/68349) でバックポート済み: `Dynamic` 型を再実装しました。動的データ型の上限に達した場合、新しい型は String にキャストされるのではなく、バイナリ形式でデータ型がバイナリエンコードされた特別なデータ構造に保存されます。これにより、かつて `Dynamic` カラムに挿入されたあらゆる型を、サブカラムとして読み出すことが可能になりました。[#68132](https://github.com/ClickHouse/ClickHouse/pull/68132)([Kruglov Pavel](https://github.com/Avogar))。 + +#### 新機能 {#new-feature-4} + +* 特定のエンジンでのマージ処理および `OPTIMIZE DEDUPLICATE` クエリ時のプロジェクションを制御するために、新しい `MergeTree` 設定 `deduplicate_merge_projection_mode` を追加しました。サポートされるオプションは、`throw`(*MergeTree エンジンでプロジェクションが完全にはサポートされていない場合に例外をスロー)、`drop`(一貫してマージできない場合にマージ中のプロジェクションを削除)、`rebuild`(プロジェクションをゼロから再構築する。これはコストの高い処理です)です。 [#66672](https://github.com/ClickHouse/ClickHouse/pull/66672) ([jsc0218](https://github.com/jsc0218)). +* S3 テーブルエンジンに `_etag` 仮想カラムを追加し、[#65312](https://github.com/ClickHouse/ClickHouse/issues/65312) を修正。 [#65386](https://github.com/ClickHouse/ClickHouse/pull/65386)([skyoct](https://github.com/skyoct))。 +* クエリキャッシュにタグ付け用(ネームスペース)のメカニズムを追加しました。同じクエリでも異なるタグが付いている場合、クエリキャッシュでは別物として扱われます。例: `SELECT 1 SETTINGS use_query_cache = 1, query_cache_tag = 'abc'` と `SELECT 1 SETTINGS use_query_cache = 1, query_cache_tag = 'def'` は、異なるクエリキャッシュエントリとして保存されます。 [#68235](https://github.com/ClickHouse/ClickHouse/pull/68235) ([sakulali](https://github.com/sakulali))。 +* `LEFT/RIGHT SEMI/ANTI/ANY JOIN` など、より多くの JOIN strictness の種類で、左テーブルと右テーブルの両方のカラムを参照する不等号条件(例: `t1.y < t2.y`)をサポートしました(`allow_experimental_join_condition` 設定を参照)。[#64281](https://github.com/ClickHouse/ClickHouse/pull/64281) ([lgbo](https://github.com/lgbo-ustc)). +* Hive スタイルのパーティショニングを、`File`、`URL`、`S3`、`AzureBlobStorage`、`HDFS` といった異なるエンジンで解釈できるようにしました。Hive スタイルのパーティショニングでは、データをパーティションごとのサブディレクトリに整理することで、大規模データセットに対するクエリおよび管理を効率化します。現時点では、対応する名前とデータを持つ仮想カラムを作成するのみです。後続の PR で、適切なデータフィルタリング(パフォーマンス向上)が導入される予定です。[#65997](https://github.com/ClickHouse/ClickHouse/pull/65997)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* Spark 互換性のために関数 `printf` を追加(既存の関数 `format` も引き続き使用可能)。 [#66257](https://github.com/ClickHouse/ClickHouse/pull/66257) ([李扬](https://github.com/taiyang-li))。 +* テストに役立つよう、外部エンジンおよび外部テーブル関数を `Null` エンジンに置き換えるためのオプション `restore_replace_external_engines_to_null` と `restore_replace_external_table_functions_to_null` を追加しました。これは RESTORE および明示的なテーブル作成時に有効です。 [#66536](https://github.com/ClickHouse/ClickHouse/pull/66536) ([Ilya Yatsishin](https://github.com/qoega)). +* 関数 `readWKTLineString` を使用して、`WKT` 形式の `MULTILINESTRING` ジオメトリを読み込めるようになりました。 [#67647](https://github.com/ClickHouse/ClickHouse/pull/67647) ([Jacob Reckhard](https://github.com/jacobrec))。 +* 新しいテーブル関数 `fuzzQuery` を追加しました。この関数は、指定したクエリ文字列にランダムなバリエーションを加えることができます。例: `SELECT query FROM fuzzQuery('SELECT 1') LIMIT 5;`。[#67655](https://github.com/ClickHouse/ClickHouse/pull/67655) ([pufit](https://github.com/pufit))。 +* すべての切り離されたパーティションを削除するクエリ `ALTER TABLE ... DROP DETACHED PARTITION ALL` を追加しました。 [#67885](https://github.com/ClickHouse/ClickHouse/pull/67885) ([Duc Canh Le](https://github.com/canhld94)). +* 新しい設定 `rows_before_aggregation` を有効にすると、クエリ応答に統計情報 `rows_before_aggregation_at_least` が追加されます。この統計情報は、集約前に読み取られた行数を表します。分散クエリのコンテキストでは、`limit` なしで `group by` や `max` の集約関数を使用している場合、`rows_before_aggregation_at_least` はクエリによって対象となった行数を反映できます。 [#66084](https://github.com/ClickHouse/ClickHouse/pull/66084) ([morning-color](https://github.com/morning-color)). +* `Join` テーブルに対する `OPTIMIZE` クエリをサポートし、メモリ使用量を削減できるようにしました。 [#67883](https://github.com/ClickHouse/ClickHouse/pull/67883) ([Duc Canh Le](https://github.com/canhld94)). +* URL に `&run=1` を追加すると、Play でクエリを即時実行できるようになりました [#66457](https://github.com/ClickHouse/ClickHouse/pull/66457) ([Aleksandr Musorin](https://github.com/AVMusorin))。 + +#### 実験的機能 {#experimental-feature-3} + +* 新しい `JSON` データ型を実装しました。 [#66444](https://github.com/ClickHouse/ClickHouse/pull/66444) ([Kruglov Pavel](https://github.com/Avogar)). +* 新しい `TimeSeries` テーブルエンジンを追加しました。 [#64183](https://github.com/ClickHouse/ClickHouse/pull/64183) ([Vitaly Baranov](https://github.com/vitlibar)). +* オフセットを Kafka にコミットするのではなく Keeper に保存する、新しい実験的な `Kafka` ストレージエンジンを追加しました。これにより、キューからの消費に対する ClickHouse テーブルへのコミットがアトミックになります。 [#57625](https://github.com/ClickHouse/ClickHouse/pull/57625) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* 並列レプリカに対して、(読み取りカラムサイズに依存するという意味で)アダプティブな読み取りタスクサイズ計算方式を使用するようにしました。 [#60377](https://github.com/ClickHouse/ClickHouse/pull/60377) ([Nikita Taranov](https://github.com/nickitat)). +* 統計タイプ `count_min`(count-min sketch)を追加しました。これは `col = 'val'` のような等価述語に対する選択性推定を提供します。サポートされるデータ型は string、date、datetime、および数値型です。 [#65521](https://github.com/ClickHouse/ClickHouse/pull/65521) ([JackyWoo](https://github.com/JackyWoo)). + +#### パフォーマンスの改善 {#performance-improvement-4} + +* 設定 `optimize_functions_to_subcolumns` をデフォルトで有効化しました。 [#68053](https://github.com/ClickHouse/ClickHouse/pull/68053) ([Anton Popov](https://github.com/CurtizJ)). +* オブジェクトストレージ内の MergeTree データとは別に、`plain_rewritable` ディスクディレクトリのメタデータを `__meta` レイアウトに保存するようにしました。また、`plain_rewritable` ディスクをフラットなディレクトリ構造に移行しました。 [#65751](https://github.com/ClickHouse/ClickHouse/pull/65751) ([Julia Kartseva](https://github.com/jkartseva)). +* すべてのサブカラム向けに必要なメモリを事前に確保することで、`String`/`Array`/`Map`/`Variant`/`Dynamic` 型に対するカラムの「squashing」(`INSERT` クエリで発生する処理)を改善しました。 [#67043](https://github.com/ClickHouse/ClickHouse/pull/67043) ([Kruglov Pavel](https://github.com/Avogar)). +* `SYSTEM FLUSH LOGS` を高速化し、シャットダウン時にログをフラッシュするようにしました。 [#67472](https://github.com/ClickHouse/ClickHouse/pull/67472) ([Sema Checherinda](https://github.com/CheSema)). +* マージ処理のスケジューリングステップのオーバーヘッドを削減することで、マージの全体的なパフォーマンスを改善しました。 [#68016](https://github.com/ClickHouse/ClickHouse/pull/68016) ([Anton Popov](https://github.com/CurtizJ)). +* `DROP DATABASE` クエリにおけるテーブル削除を高速化し、`database_catalog_drop_table_concurrency` のデフォルト値を 16 に引き上げました。 [#67228](https://github.com/ClickHouse/ClickHouse/pull/67228) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* ORC 書き込み時に配列カラムに対して過剰な容量を割り当てないようにしました。Array カラムの場合、パフォーマンスが 15% 向上しました。 [#67879](https://github.com/ClickHouse/ClickHouse/pull/67879) ([李扬](https://github.com/taiyang-li)). +* 非レプリケートな MergeTree テーブルに対するミューテーションを大幅に高速化しました。 [#66911](https://github.com/ClickHouse/ClickHouse/pull/66911) [#66909](https://github.com/ClickHouse/ClickHouse/pull/66909) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + +#### 改善点 {#improvement-4} + +* `allow_experimental_analyzer` の Setting は `enable_analyzer` にリネームされました。古い名前はエイリアスとして引き続き利用できます。これは、Analyzer がもはやベータ版ではなく、本番利用が想定された正式な機能になったことを意味します。 [#66438](https://github.com/ClickHouse/ClickHouse/pull/66438) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* 日付・時刻のスキーマ推論を改善しました。日時値に小数部がある場合にのみ DateTime64 を使用し、それ以外では通常の DateTime を使用します。Date/DateTime の推論はこれまでより厳密になり、とくに `date_time_input_format='best_effort'` の場合には、特殊なケースで文字列を日付・時刻として推論してしまうことを避けるようになりました。 [#68382](https://github.com/ClickHouse/ClickHouse/pull/68382) ([Kruglov Pavel](https://github.com/Avogar)). +* ClickHouse server は新しい設定項目 `max_keep_alive_requests` をサポートするようになりました。サーバーへの keep-alive HTTP 接続に対しては、`keep_alive_timeout` と組み合わせて動作します。アイドルタイムアウトがまだ経過していなくても、その接続経由で処理されたリクエスト数が `max_keep_alive_requests` を超えた場合、その接続はサーバーによって切断されます。 [#61793](https://github.com/ClickHouse/ClickHouse/pull/61793) ([Nikita Taranov](https://github.com/nickitat))。 +* 高度なダッシュボードにさまざまな改善を行いました。これにより [#67697](https://github.com/ClickHouse/ClickHouse/issues/67697) をクローズしました。これにより [#63407](https://github.com/ClickHouse/ClickHouse/issues/63407) をクローズしました。これにより [#51129](https://github.com/ClickHouse/ClickHouse/issues/51129) をクローズしました。これにより [#61204](https://github.com/ClickHouse/ClickHouse/issues/61204) をクローズしました。 [#67701](https://github.com/ClickHouse/ClickHouse/pull/67701)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 分散テーブルを作成する際に REMOTE への権限付与は不要になりました。Distributed エンジンへの権限付与だけで十分です。 [#65419](https://github.com/ClickHouse/ClickHouse/pull/65419) ([jsc0218](https://github.com/jsc0218)). +* Docker イメージ内で keeper 向けのログを明示的に渡さないようにし、上書きできるようにしました。 [#65564](https://github.com/ClickHouse/ClickHouse/pull/65564) ([Azat Khuzhin](https://github.com/azat)). +* `BACKUP` および `RESTORE` クエリ向けに `use_same_password_for_base_backup` 設定を導入し、パスワード保護されたアーカイブに対する増分バックアップの作成およびそこからの復元を可能にしました。 [#66214](https://github.com/ClickHouse/ClickHouse/pull/66214) ([Samuele](https://github.com/sguerrini97)). +* `ATTACH` クエリでは `async_load_databases` を無視するようにしました(以前は、テーブルがアタッチされる前に ATTACH クエリの実行が完了して返ってしまう可能性がありました)。 [#66240](https://github.com/ClickHouse/ClickHouse/pull/66240) ([Azat Khuzhin](https://github.com/azat)). +* リソース不足により拒否された接続に対するログとメトリクスを追加しました。 [#66410](https://github.com/ClickHouse/ClickHouse/pull/66410) ([Alexander Tokmakov](https://github.com/tavplubix)). +* MongoDB エンジンで `UUID` 型を正しくサポートするようにしました。 [#66671](https://github.com/ClickHouse/ClickHouse/pull/66671) ([Azat Khuzhin](https://github.com/azat)). +* レプリケーションラグおよび復旧時間に関するメトリクスを追加。 [#66703](https://github.com/ClickHouse/ClickHouse/pull/66703) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* `DiskS3NoSuchKeyErrors` メトリクスを追加しました。 [#66704](https://github.com/ClickHouse/ClickHouse/pull/66704) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* すべてのテーブルエンジンで `COMMENT` 句を使用できるようにしました。 [#66832](https://github.com/ClickHouse/ClickHouse/pull/66832) ([Joe Lynch](https://github.com/joelynch))。 +* 関数 `mapFromArrays` は、最初の引数として `Map(K, V)` 型を受け取れるようになりました。たとえば、`SELECT mapFromArrays(map('a', 4, 'b', 4), ['aa', 'bb'])` は動作するようになり、`{('a',4):'aa',('b',4):'bb'}` を返します。さらに、1 番目の引数が Array の場合、実際の配列要素が `NULL` でない限り、`Array(Nullable(T))` や `Array(LowCardinality(Nullable(T)))` 型も使用できるようになりました。 [#67103](https://github.com/ClickHouse/ClickHouse/pull/67103) ([李扬](https://github.com/taiyang-li)). +* `clickhouse-local` の設定を `~/.clickhouse-local` から読み込むようになりました。 [#67135](https://github.com/ClickHouse/ClickHouse/pull/67135) ([Azat Khuzhin](https://github.com/azat)). +* `input_format_orc_read_use_writer_time_zone` 設定を `input_format_orc_reader_timezone` にリネームし、ユーザーが読み取り側のタイムゾーンを設定できるようにしました。 [#67175](https://github.com/ClickHouse/ClickHouse/pull/67175) ([kevinyhzou](https://github.com/KevinyhZou)). +* HTTP 接続直後にピア側によってすぐにリセットされた場合に発生する `Socket is not connected` エラーのログレベルを下げ、[#34218](https://github.com/ClickHouse/ClickHouse/issues/34218) をクローズしました。 [#67177](https://github.com/ClickHouse/ClickHouse/pull/67177) ([vdimir](https://github.com/vdimir)). +* 設定ファイルから `system.dashboards` のダッシュボードを読み込めるようにしました(設定されると、デフォルトのダッシュボードプリセットを上書きします)。 [#67232](https://github.com/ClickHouse/ClickHouse/pull/67232) ([Azat Khuzhin](https://github.com/azat)). +* SQL におけるウィンドウ関数は、一般的にスネークケースで記述されます。ClickHouse では `camelCase` を使用しているため、新しいエイリアスとして `denseRank()` と `percentRank()` が作成されました。これらの新しい関数は、元の `dense_rank()` と `percent_rank()` 関数とまったく同じように呼び出すことができます。スネークケースと camelCase の両方の構文が引き続き使用可能です。各関数に対する新しいテストも追加されました。これにより [#67042](https://github.com/ClickHouse/ClickHouse/issues/67042) がクローズされました。 [#67334](https://github.com/ClickHouse/ClickHouse/pull/67334) ([Peter Nguyen](https://github.com/petern48))。 +* 設定ファイルが `.xml`、`.yml`、`.yaml` 以外の場合に、その形式を自動判別します。ファイルが < で始まる場合は XML、それ以外の場合は YAML と見なされます。これは、パイプから設定ファイルを渡すときに便利です: `clickhouse-server --config-file <(echo "hello: world")`。 [#67391](https://github.com/ClickHouse/ClickHouse/pull/67391) ([sakulali](https://github.com/sakulali)). +* 関数 `formatDateTime` と `formatDateTimeInJodaSyntax` は、format パラメータを省略可能として扱うようになりました。指定されていない場合、フォーマット文字列 `%Y-%m-%d %H:%i:%s` および `yyyy-MM-dd HH:mm:ss` が既定値として使用されます。例: `SELECT parseDateTime('2021-01-04 23:12:34')` は、現在は DateTime 値 `2021-01-04 23:12:34` を返します(以前は例外がスローされていました)。[#67399](https://github.com/ClickHouse/ClickHouse/pull/67399)([Robert Schulze](https://github.com/rschu1ze))。 +* KeeperMap で、タイムアウトや接続断により失敗した Keeper リクエストを自動的に再試行するようにしました。 [#67448](https://github.com/ClickHouse/ClickHouse/pull/67448) ([Antonio Andelic](https://github.com/antonio2368))。 +* Aarch64 Linux 向けビルドで `-no-pie` を有効化し、ClickHouse 再起動後でもスタックトレースを適切に解析およびシンボル解決できるようにしました。 [#67916](https://github.com/ClickHouse/ClickHouse/pull/67916) ([filimonov](https://github.com/filimonov)). +* マージおよびミューテーションの挙動をより詳細に把握できるよう、profile events を追加しました。 [#68015](https://github.com/ClickHouse/ClickHouse/pull/68015) ([Anton Popov](https://github.com/CurtizJ)). +* レプリカなしの `MergeTree` における不要なログ出力を削除。[#68238](https://github.com/ClickHouse/ClickHouse/pull/68238)([Daniil Ivanik](https://github.com/divanik))。 + +#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement-1} + +* 統合テストに対するフレークチェックが、テスト内のさらなる問題を検出して信頼性を高めるために、各テストケースを複数回実行するようになりました。同一の環境でテストケースを複数回実行するために `pytest-repeat` ライブラリを使用しています。テストケースを成功させるには、テストケースの最後にテーブルやその他のエンティティをクリーンアップすることが重要です。必要なコンテナを一度だけ起動すればよいため、pytest を複数回実行するよりも、繰り返し実行の方がはるかに高速です。[#66986](https://github.com/ClickHouse/ClickHouse/pull/66986) ([Ilya Yatsishin](https://github.com/qoega))。 +* ClickHouse で CLion を使用できない問題を解消しました。以前のバージョンでは、CLion がキー入力のたびに 1 分程度フリーズしていました。この変更により [#66994](https://github.com/ClickHouse/ClickHouse/issues/66994) が解決されます。[#66995](https://github.com/ClickHouse/ClickHouse/pull/66995) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 新しい Linux カーネルにおける高い ASLR エントロピーが原因で、sanitizer による再実行時に発生していた getauxval のクラッシュを回避しました。[#67081](https://github.com/ClickHouse/ClickHouse/pull/67081) ([Raúl Marín](https://github.com/Algunenano))。 +* クライアントコードの一部を単一のファイルに抽出し、デバッグビルドであっても可能な限り高いレベルの最適化をそれらに適用しました。これにより [#65745](https://github.com/ClickHouse/ClickHouse/issues/65745) が解決されます。[#67215](https://github.com/ClickHouse/ClickHouse/pull/67215) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 + +#### 不具合修正 {#bug-fix} + +* 実験的な Variant データ型にのみ適用されます。Variant 型と AggregateFunction 型を組み合わせた場合に発生していたクラッシュを修正しました。 [#67122](https://github.com/ClickHouse/ClickHouse/pull/67122) ([Kruglov Pavel](https://github.com/Avogar)). +* 接続が存在しない場合に DistributedAsyncInsert がクラッシュしていた問題を修正。 [#67219](https://github.com/ClickHouse/ClickHouse/pull/67219) ([Pablo Marcos](https://github.com/pamarcos)). +* `tuple()` 引数を使用した場合に `uniq` および `uniqTheta` がクラッシュする不具合を修正。[#67303](https://github.com/ClickHouse/ClickHouse/issues/67303) をクローズ。[#67306](https://github.com/ClickHouse/ClickHouse/pull/67306)([flynn](https://github.com/ucasfl))。 +* [#66026](https://github.com/ClickHouse/ClickHouse/issues/66026) を修正。`ReplaceTableNodeToDummyVisitor` において、未解決のテーブル関数引数を走査しないようにしました。[#67522](https://github.com/ClickHouse/ClickHouse/pull/67522)([Dmitry Novik](https://github.com/novikd))。 +* `JSONMergePatch` 関数で発生する可能性のあったスタックオーバーフローを修正しました。この関数名は、以前の名前が誤っていたため `jsonMergePatch` から `JSONMergePatch` に変更しましたが、互換性のため以前の名前も引き続き利用可能です。この関数内でのエラー診断を改善しました。これにより [#67304](https://github.com/ClickHouse/ClickHouse/issues/67304) が解決されました。[#67756](https://github.com/ClickHouse/ClickHouse/pull/67756)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 特別に作成されたクエリによってトリガーされ、hopEnd、hopStart、tumbleEnd、tumbleStart を介してサーバーがクラッシュしていた NULL ポインタ逆参照を修正しました。 [#68098](https://github.com/ClickHouse/ClickHouse/pull/68098) ([Salvatore Mesoraca](https://github.com/aiven-sal))。 +* サブクエリを使用してフィルタリングする際に、一部の system テーブルで `Not-ready Set` が発生する問題を修正しました。 [#66018](https://github.com/ClickHouse/ClickHouse/pull/66018) ([Michael Kolupaev](https://github.com/al13n321)). +* `ALTER ADD COLUMN` クエリの後のサブカラムの読み取り処理を修正しました。 [#66243](https://github.com/ClickHouse/ClickHouse/pull/66243) ([Anton Popov](https://github.com/CurtizJ)). +* 外部データベースエンジン(`PostgreSQL` など)に送信されるクエリ内の boolean リテラルの扱いを修正しました。 [#66282](https://github.com/ClickHouse/ClickHouse/pull/66282) ([vdimir](https://github.com/vdimir)). +* 別名付きの `JOIN ON` 式を含むクエリの整形を修正しました。例えば、`... JOIN t2 ON (x = y) AS e ORDER BY x` は `... JOIN t2 ON ((x = y) AS e) ORDER BY x` のように整形されるべきです。 [#66312](https://github.com/ClickHouse/ClickHouse/pull/66312) ([vdimir](https://github.com/vdimir))。 +* `cluster()` のサーバー間シークレットに関する動作を修正し、従来どおり元のユーザーを保持するようにしました。 [#66364](https://github.com/ClickHouse/ClickHouse/pull/66364) ([Azat Khuzhin](https://github.com/azat)). +* null を含む Array フィールドを Array(Variant) に変換する際に発生する可能性があった実行時エラーを修正。 [#66727](https://github.com/ClickHouse/ClickHouse/pull/66727) ([Kruglov Pavel](https://github.com/Avogar)). +* Context::getDDLWorker でまれに発生するデッドロックを修正しました。 [#66843](https://github.com/ClickHouse/ClickHouse/pull/66843) ([Alexander Gololobov](https://github.com/davenger)). +* 不完全な DROP 後に KeeperMap テーブルを作成できない問題を修正。[#66865](https://github.com/ClickHouse/ClickHouse/pull/66865) ([Antonio Andelic](https://github.com/antonio2368))。 +* `s3_plain_rewritable` ディスクへリストアする際に発生していた「Broken part」エラーを修正。 [#66881](https://github.com/ClickHouse/ClickHouse/pull/66881) ([Vitaly Baranov](https://github.com/vitlibar)). +* まれに、ディスク上の予期しないプロジェクションが原因で、ClickHouse がパーツを破損していると誤認してしまうことがありました。この問題は既に修正済みです。 [#66898](https://github.com/ClickHouse/ClickHouse/pull/66898) ([alesapin](https://github.com/alesapin)). +* スキーマ推論におけるフォーマットの誤検出を修正し、{`Format {} doesn't support schema inference.`} という論理エラーが発生し得る問題を解消しました。 [#66899](https://github.com/ClickHouse/ClickHouse/pull/66899) ([Kruglov Pavel](https://github.com/Avogar)). +* 並列レプリカ使用時のクエリキャンセル時に発生する可能性のあるデッドロックを修正。 [#66905](https://github.com/ClickHouse/ClickHouse/pull/66905) ([Nikita Taranov](https://github.com/nickitat)). +* `database_replicated_allow_heavy_create` が設定されている場合でも、`CREATE AS SELECT` を禁止するようにしました。23.12 では無条件に禁止されていましたが、未リリースの 24.7 ではこの SETTING が有効な場合に誤って許可されていました。 [#66980](https://github.com/ClickHouse/ClickHouse/pull/66980) ([vdimir](https://github.com/vdimir)). +* `max_rows_to_read` 制限が設定されている場合に、`numbers` からの読み取り時に誤って例外がスローされることがありました。これにより [#66992](https://github.com/ClickHouse/ClickHouse/issues/66992) がクローズされました。 [#66996](https://github.com/ClickHouse/ClickHouse/pull/66996) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* lagInFrame および leadInFrame ウィンドウ関数に適切な型変換を追加し、msan テストを修正。 [#67091](https://github.com/ClickHouse/ClickHouse/pull/67091) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* 以前は TRUNCATE DATABASE が DROP DATABASE クエリと同様にレプリケーションを停止してしまう問題がありましたが、これを修正しました。 [#67129](https://github.com/ClickHouse/ClickHouse/pull/67129) ([Alexander Tokmakov](https://github.com/tavplubix)). +* `clickhouse-local` で独立したクライアントコンテキストを使用するようにしました。 [#67133](https://github.com/ClickHouse/ClickHouse/pull/67133) ([Vitaly Baranov](https://github.com/vitlibar))。 +* 1 分片のみを持つ `Distriburted` テーブル上の `Merge` テーブルから読み取るクエリで発生していた `Cannot convert column because it is non constant in source stream but must be constant in result.` エラーを修正。 [#67146](https://github.com/ClickHouse/ClickHouse/pull/67146) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* `enable_order_by_all` 無効時および並列レプリカ環境(分散クエリを含む)における `ORDER BY all` の動作を正しくしました。 [#67153](https://github.com/ClickHouse/ClickHouse/pull/67153) ([Igor Nikonov](https://github.com/devcrafter)). +* スキーマキャッシュにおける `input_format_max_bytes_to_read_for_schema_inference` の誤った使用を修正。 [#67157](https://github.com/ClickHouse/ClickHouse/pull/67157) ([Kruglov Pavel](https://github.com/Avogar))。 +* 単一の Nullable キーでの GROUP BY 中に例外が発生した場合に、count distinct のメモリリークが発生する問題を修正。 [#67171](https://github.com/ClickHouse/ClickHouse/pull/67171) ([Jet He](https://github.com/compasses)). +* OUTER JOIN を INNER JOIN に変換する最適化で発生していたエラーを修正しました。これにより [#67156](https://github.com/ClickHouse/ClickHouse/issues/67156) および [#66447](https://github.com/ClickHouse/ClickHouse/issues/66447) がクローズされます。このバグは [https://github.com/ClickHouse/ClickHouse/pull/62907](https://github.com/ClickHouse/ClickHouse/pull/62907) の変更で導入されました。[#67178](https://github.com/ClickHouse/ClickHouse/pull/67178)([Maksim Kita](https://github.com/kitaisreal))。 +* エラー `Conversion from AggregateFunction(name, Type) to AggregateFunction(name, Nullable(Type)) is not supported` を修正。`optimize_rewrite_aggregate_function_with_if` 最適化が原因だったバグ。[#67112](https://github.com/ClickHouse/ClickHouse/issues/67112) を修正。[#67229](https://github.com/ClickHouse/ClickHouse/pull/67229)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 関数 IN の左辺として空のタプルを使用した場合にクエリがハングする不具合を修正。 [#67295](https://github.com/ClickHouse/ClickHouse/pull/67295) ([Duc Canh Le](https://github.com/canhld94)). +* 未知のフィールドをスキップする際にスタックオーバーフローを引き起こす、非常に深くネストされた JSON データを作成できてしまう問題がありました。この修正により [#67292](https://github.com/ClickHouse/ClickHouse/issues/67292) がクローズされました。[#67324](https://github.com/ClickHouse/ClickHouse/pull/67324)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 起動時に発生した例外の後に `ReplicatedMergeTree` テーブルを再アタッチする処理を修正。 [#67360](https://github.com/ClickHouse/ClickHouse/pull/67360) ([Antonio Andelic](https://github.com/antonio2368)). +* `Aggregator` において、スレッドグループからの誤ったデタッチ処理により発生していたセグメンテーションフォルトを修正。 [#67385](https://github.com/ClickHouse/ClickHouse/pull/67385) ([Antonio Andelic](https://github.com/antonio2368)). +* PK に非決定的関数が指定されているもう 1 つのケースを修正しました。 [#67395](https://github.com/ClickHouse/ClickHouse/pull/67395) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* `bloom_filter` 索引が、`(k=2)=(k=2)` や `has([1,2,3], k)` のようなやや奇妙な条件を含むクエリを失敗させてしまう問題を修正しました。 [#67423](https://github.com/ClickHouse/ClickHouse/pull/67423) ([Michael Kolupaev](https://github.com/al13n321)). +* アーカイブでない場合に `::` を含むファイル名や URI を正しく解析できるようにしました。 [#67433](https://github.com/ClickHouse/ClickHouse/pull/67433) ([Antonio Andelic](https://github.com/antonio2368)). +* WriteBuffer がキャンセルされた場合に、~WriteBufferFromS3 内のタスクの待機処理を修正。 [#67459](https://github.com/ClickHouse/ClickHouse/pull/67459) ([Kseniia Sumarokova](https://github.com/kssenii)). +* RESTORE 実行中に一時パートディレクトリが削除されないように保護するようにしました。 [#67491](https://github.com/ClickHouse/ClickHouse/pull/67491) ([Vitaly Baranov](https://github.com/vitlibar))。 +* ネストされた短絡評価関数の実行を修正しました。 [#67520](https://github.com/ClickHouse/ClickHouse/pull/67520) ([Kruglov Pavel](https://github.com/Avogar)). +* `Logical error: Expected the argument №N of type T to have X rows, but it has 0` を修正しました。このエラーは、新しいアナライザ使用時に、`GROUP BY` 句内に定数式を含むリモートクエリで発生する可能性がありました。 [#67536](https://github.com/ClickHouse/ClickHouse/pull/67536) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* NULL を含むタプルでの JOIN を修正: 新しい analyzer を使用した場合、`JOIN ON` 句内のタプルに `NULL` を含む一部のクエリで誤った結果が返されていました。 [#67538](https://github.com/ClickHouse/ClickHouse/pull/67538) ([vdimir](https://github.com/vdimir)). +* 退避不可のキャッシュが満杯になっている場合に、`FileCache::freeSpaceRatioKeepingThreadFunc()` が不要に再スケジュールされる問題を修正。 [#67540](https://github.com/ClickHouse/ClickHouse/pull/67540) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* HTTP インターフェイス経由でのストリーム系エンジン(Kafka、RabbitMQ、NATS)への挿入に関する不具合を修正。 [#67554](https://github.com/ClickHouse/ClickHouse/pull/67554) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* 小さい `DateTime64` 値に対して誤った結果を返していた関数 `toStartOfWeek` を修正しました。 [#67558](https://github.com/ClickHouse/ClickHouse/pull/67558) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* 再帰CTEを使用するVIEWの作成を修正。 [#67587](https://github.com/ClickHouse/ClickHouse/pull/67587) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* filesystem cache における `Logical error: 'file_offset_of_buffer_end <= read_until_position'` の不具合を修正しました。[#57508](https://github.com/ClickHouse/ClickHouse/issues/57508) をクローズ。[#67623](https://github.com/ClickHouse/ClickHouse/pull/67623)([Kseniia Sumarokova](https://github.com/kssenii))。 +* [#62282](https://github.com/ClickHouse/ClickHouse/issues/62282) を修正しました。`convertFieldToString()` の呼び出しを削除し、データ型ごとのシリアライズ処理コードを追加しました。パラメータ値がデータ型インスタンスを返す関数または式である場合、複数のデータ型に対するパラメータ化されたビューの置換が正しく動作していませんでした。[#67654](https://github.com/ClickHouse/ClickHouse/pull/67654)([Shankar](https://github.com/shiyer7474))。 +* `percent_rank` で発生していたクラッシュを修正しました。`percent_rank` のデフォルトのフレームタイプは `range unbounded preceding and unbounded following` に変更されました。`IWindowFunction` のデフォルトのウィンドウフレームが考慮されるようになり、SQL 内でウィンドウフレームが定義されていないウィンドウ関数も、適切に異なる `WindowTransfomer` に振り分けられるようになりました。 [#67661](https://github.com/ClickHouse/ClickHouse/pull/67661) ([lgbo](https://github.com/lgbo-ustc)). +* UNION を使用する SQL UDF の再読み込みの問題を修正しました。以前は、サーバーを再起動すると UDF が無効になってしまうことがありました。 [#67665](https://github.com/ClickHouse/ClickHouse/pull/67665) ([Antonio Andelic](https://github.com/antonio2368))。 +* 実験的な Variant 型を使用し、Tuples および Maps を引数に取る `if` 関数で `use_variant_as_common_type` 設定を有効にしている場合に発生し得る論理エラー「Unexpected return type from if」を修正しました。 [#67687](https://github.com/ClickHouse/ClickHouse/pull/67687) ([Kruglov Pavel](https://github.com/Avogar)). +* Linux カーネルのバグにより、クエリが `TimerDescriptor::drain` 内でハングする可能性がありました。これにより [#37686](https://github.com/ClickHouse/ClickHouse/issues/37686) がクローズされました。 [#67702](https://github.com/ClickHouse/ClickHouse/pull/67702) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `RESTORE ON CLUSTER` コマンドの完了動作を修正しました。 [#67720](https://github.com/ClickHouse/ClickHouse/pull/67720) ([Vitaly Baranov](https://github.com/vitlibar)). +* 読み込み中に `CANNOT_SCHEDULE_TASK` が発生した場合に Dictionary がハングする不具合を修正。 [#67751](https://github.com/ClickHouse/ClickHouse/pull/67751) ([Azat Khuzhin](https://github.com/azat)). +* `c` 列にブルームフィルター索引がある場合の `SELECT count() FROM t WHERE cast(c = 1 or c = 9999 AS Bool) SETTINGS use_skip_indexes=1` のようなクエリが、正しく動作するようになりました。 [#67781](https://github.com/ClickHouse/ClickHouse/pull/67781)([jsc0218](https://github.com/jsc0218))。 +* 集計キーおよびフィルターなしの集計を行う一部のクエリで誤った集計結果が返される問題を修正しました。[#67419](https://github.com/ClickHouse/ClickHouse/issues/67419) をクローズ。[#67804](https://github.com/ClickHouse/ClickHouse/pull/67804)([vdimir](https://github.com/vdimir))。 +* ALTER の ADD/MODIFY COLUMN で、実験的または疑わしいデータ型を検証するようにしました。 [#67911](https://github.com/ClickHouse/ClickHouse/pull/67911) ([Kruglov Pavel](https://github.com/Avogar)). +* 分散クエリにおける定数畳み込み後の DateTime64 パースを修正し、[#66773](https://github.com/ClickHouse/ClickHouse/issues/66773) をクローズしました。[#67920](https://github.com/ClickHouse/ClickHouse/pull/67920)([vdimir](https://github.com/vdimir))。 +* 述語内に非決定論的関数が含まれている場合に `count()` の結果が誤ることがあった問題を修正。 [#67922](https://github.com/ClickHouse/ClickHouse/pull/67922) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* 使用可能な CPU 数が制限されているコンテナ化環境において、スレッド数の最大ソフトリミットの計算を修正しました。 [#67963](https://github.com/ClickHouse/ClickHouse/pull/67963) ([Robert Schulze](https://github.com/rschu1ze)). +* `checksums.txt` には存在するがディスク上には存在しない PROJECTION について、ClickHouse はそのパーツが破損しているとは見なさなくなりました。 [#68003](https://github.com/ClickHouse/ClickHouse/pull/68003) ([alesapin](https://github.com/alesapin))。 +* 新しいアナライザー使用時の、未変更パーツをスキップする処理を修正しました。以前はアナライザーが有効な場合、述語に基づけばこのパーツには影響しないはずのミューテーションであっても、そのパーツ内のデータが書き換えられてしまう可能性がありました。 [#68052](https://github.com/ClickHouse/ClickHouse/pull/68052) ([Anton Popov](https://github.com/CurtizJ))。 +* `OFFSET` を使用するサブクエリでソートを削除してしまう誤った最適化を除去しました。[#67906](https://github.com/ClickHouse/ClickHouse/issues/67906) を修正。[#68099](https://github.com/ClickHouse/ClickHouse/pull/68099)([Graham Campbell](https://github.com/GrahamCampbell))。 +* 集約プロジェクションの最適化において発生する `Block structure mismatch in AggregatingStep stream: different types` エラーの修正を試みました。 [#68107](https://github.com/ClickHouse/ClickHouse/pull/68107) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* クエリのキャンセル時に発生する Postgres のクラッシュの修正を試みました。 [#68288](https://github.com/ClickHouse/ClickHouse/pull/68288) ([Kseniia Sumarokova](https://github.com/kssenii)). +* クエリ `SYSTEM SYNC REPLICA` で sync replica モードが欠落していた問題を修正。[#68326](https://github.com/ClickHouse/ClickHouse/pull/68326) ([Duc Canh Le](https://github.com/canhld94)). + +### ClickHouse リリース 24.7(2024-07-30)。[プレゼンテーション資料](https://presentations.clickhouse.com/2024-release-24.7/)、[動画](https://www.youtube.com/watch?v=GerQFdJCk7A) {#a-id247a-clickhouse-release-247-2024-07-30} + + + +#### 後方互換性のない変更 {#backward-incompatible-change-5} + +* Replicated データベースで `CRATE MATERIALIZED VIEW ... ENGINE Replicated*MergeTree POPULATE AS SELECT ...` を使用することを禁止しました。[#63963](https://github.com/ClickHouse/ClickHouse/pull/63963) ([vdimir](https://github.com/vdimir)). +* `clickhouse-keeper-client` は、`ls '/hello/world'` のような文字列リテラル内のパスのみを受け付け、`ls /hello/world` のような裸のパス文字列は受け付けません。[#65494](https://github.com/ClickHouse/ClickHouse/pull/65494) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* メトリクス `KeeperOutstandingRequets` は `KeeperOutstandingRequests` にリネームされました。[#66206](https://github.com/ClickHouse/ClickHouse/pull/66206) ([Robert Schulze](https://github.com/rschu1ze)). +* `system.functions` テーブルから `is_deterministic` フィールドを削除しました。[#66630](https://github.com/ClickHouse/ClickHouse/pull/66630) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 関数 `tuple` は、クエリ内で名前付きタプルの構築を試みるようになりました(`enable_named_columns_in_function_tuple` で制御)。タプルから名前を抽出する関数 `tupleNames` を導入しました。[#54881](https://github.com/ClickHouse/ClickHouse/pull/54881) ([Amos Bird](https://github.com/amosbird)). +* Materialized Views に対する重複排除の動作を変更しました。次のような多数のケースを修正しました: - 宛先テーブル上: データが 2 つ以上のブロックに分割され、並列挿入時にそのブロックが重複と見なされるケース。 - MV の宛先テーブル上: 集約処理により、異なる入力データに対しても MV が同じデータを頻繁に生成する結果、同一ブロックが重複排除されるケース。 - MV の宛先テーブル上: 異なる MV から来た同一ブロックが重複排除されるケース。[#61601](https://github.com/ClickHouse/ClickHouse/pull/61601) ([Sema Checherinda](https://github.com/CheSema)). +* 関数 `bitShiftLeft` および `bitShitfRight` は、シフト位置が範囲外の場合にエラーを返すようになりました。[#65838](https://github.com/ClickHouse/ClickHouse/pull/65838) ([Pablo Marcos](https://github.com/pamarcos)). + +#### 新機能 {#new-feature-5} + +* `full_sorting_join` アルゴリズムでの `ASOF JOIN` をサポートしました。[#55051](https://github.com/ClickHouse/ClickHouse/pull/55051) ([vdimir](https://github.com/vdimir))。 +* `clickhouse-client` で JWT 認証をサポートしました(ClickHouse Cloud でのみ利用可能)。[#62829](https://github.com/ClickHouse/ClickHouse/pull/62829) ([Konstantin Bogdanov](https://github.com/thevar1able))。 +* SQL 関数 `changeYear`, `changeMonth`, `changeDay`, `changeHour`, `changeMinute`, `changeSecond` を追加しました。たとえば、`SELECT changeMonth(toDate('2024-06-14'), 7)` は日付 `2024-07-14` を返します。[#63186](https://github.com/ClickHouse/ClickHouse/pull/63186) ([cucumber95](https://github.com/cucumber95))。 +* 起動スクリプトを導入しました。これにより、起動段階で事前設定されたクエリを実行できます。[#64889](https://github.com/ClickHouse/ClickHouse/pull/64889) ([pufit](https://github.com/pufit))。 +* クライアントが自己署名証明書で稼働しているサーバーにセキュアな TCP で接続できるようにするため、クライアント設定で `accept_invalid_certificate` をサポートしました。これは、対応する `openSSL` クライアント設定 `verificationMode=none` + `invalidCertificateHandler.name=AcceptCertificateHandler` の省略形として利用できます。[#65238](https://github.com/ClickHouse/ClickHouse/pull/65238) ([peacewalker122](https://github.com/peacewalker122))。 +* テーブル system.errors に含まれるエラー値の履歴を保持し、定期的にディスクへフラッシュする system.error_log を追加しました。[#65381](https://github.com/ClickHouse/ClickHouse/pull/65381) ([Pablo Marcos](https://github.com/pamarcos))。 +* 集約関数 `groupConcat` を追加しました。`arrayStringConcat( groupArray(column), ',')` とほぼ同等です。文字列の区切り文字と、処理する要素数という 2 つのパラメータを受け取ることができます。[#65451](https://github.com/ClickHouse/ClickHouse/pull/65451) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* AzureQueue ストレージを追加しました。[#65458](https://github.com/ClickHouse/ClickHouse/pull/65458) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* Parquet ファイルにページ索引を書き込むかどうかを制御するための新しい設定を追加しました。[#65475](https://github.com/ClickHouse/ClickHouse/pull/65475) ([lgbo](https://github.com/lgbo-ustc))。 +* コンソール(有効な場合)へのログレベルを制御するための `logger.console_log_level` サーバー設定を導入しました。[#65559](https://github.com/ClickHouse/ClickHouse/pull/65559) ([Azat Khuzhin](https://github.com/azat))。 +* テーブル関数 `file` で、ディレクトリパスの末尾にワイルドカード `*` を自動的に付加するようにしました。[#66019](https://github.com/ClickHouse/ClickHouse/pull/66019) ([Zhidong (David) Guo](https://github.com/Gun9niR))。 +* 非対話モードのクライアントに `--memory-usage` オプションを追加しました。[#66393](https://github.com/ClickHouse/ClickHouse/pull/66393) ([vdimir](https://github.com/vdimir))。 +* clickhouse-disks 用の対話型クライアントを作成し、ローカルディレクトリからローカルディスクを追加できるようにしました。[#64446](https://github.com/ClickHouse/ClickHouse/pull/64446) ([Daniil Ivanik](https://github.com/divanik))。 +* プロジェクションを持つテーブルで論理削除が行われる場合、ユーザーは(デフォルトの)例外を投げるか、あるいはプロジェクションを DROP するかを選択できるようになりました。[#65594](https://github.com/ClickHouse/ClickHouse/pull/65594) ([jsc0218](https://github.com/jsc0218))。 +* すべてのデタッチされたテーブルに関する主要な情報を持つ system テーブルを追加しました。[#65400](https://github.com/ClickHouse/ClickHouse/pull/65400) ([Konstantin Morozov](https://github.com/k-morozov))。 + +#### 実験的機能 {#experimental-feature-4} + +* `Variant` データ型のバイナリシリアライズ形式を変更しました。単一の variant しか持たない、または NULL 値のみを持つ granule について、同じ discriminator を複数回書き込まないようにするために `compact` モードを追加しました。デフォルトで有効な MergeTree の設定 `use_compact_variant_discriminators_serialization` を追加しました。なお、Variant 型は依然として実験的であり、シリアライゼーションにおける後方互換性のない変更は許容されます。 [#62774](https://github.com/ClickHouse/ClickHouse/pull/62774) ([Kruglov Pavel](https://github.com/Avogar)). +* clickhouse-keeper のオンディスクのバックエンドストレージをサポートしました。 [#56626](https://github.com/ClickHouse/ClickHouse/pull/56626) ([Han Fei](https://github.com/hanfei1991)). +* JSONExtract 関数をリファクタリングし、実験的な Dynamic 型を含む、より多くの型をサポートしました。 [#66046](https://github.com/ClickHouse/ClickHouse/pull/66046) ([Kruglov Pavel](https://github.com/Avogar)). +* `Variant` および `Dynamic` のサブカラム向けに null map サブカラムをサポートしました。 [#66178](https://github.com/ClickHouse/ClickHouse/pull/66178) ([Kruglov Pavel](https://github.com/Avogar)). +* 変更された `Memory` テーブルからの `Dynamic` サブカラムの読み取りを修正しました。以前は、Memory テーブルで ALTER によって Dynamic 型の `max_types` パラメータが変更された場合、その後のサブカラム読み取りが誤った結果を返す可能性がありました。 [#66066](https://github.com/ClickHouse/ClickHouse/pull/66066) ([Kruglov Pavel](https://github.com/Avogar)). +* カスタムキーを用いた parallel replicas の使用時に `cluster_for_parallel_replicas` をサポートしました。これにより、MergeTree テーブルでカスタムキーと parallel replicas を組み合わせて使用できるようになります。 [#65453](https://github.com/ClickHouse/ClickHouse/pull/65453) ([Antonio Andelic](https://github.com/antonio2368)). + +#### パフォーマンスの改善 {#performance-improvement-5} + +* int から string への変換アルゴリズムを、より高速なもの(変更を加えた amdn/itoa から、変更を加えた jeaiii/itoa へ)に置き換えました。[#61661](https://github.com/ClickHouse/ClickHouse/pull/61661) ([Raúl Marín](https://github.com/Algunenano))。 +* `parallel_hash` アルゴリズムで `join` によって作成されるハッシュテーブルのサイズを収集してキャッシュするようにしました。この情報は、後続のクエリ実行時にハッシュテーブルの事前確保に利用され、ハッシュテーブルのリサイズにかかる時間を削減します。[#64553](https://github.com/ClickHouse/ClickHouse/pull/64553) ([Nikita Taranov](https://github.com/nickitat))。 +* バッファリングを利用することで、`ORDER BY` で主キーを指定し、高い選択性を持つ条件を含む `WHERE` 句を持つクエリを最適化しました。これは設定 `read_in_order_use_buffering`(デフォルトで有効)によって制御され、クエリのメモリ使用量が増加する可能性があります。[#64607](https://github.com/ClickHouse/ClickHouse/pull/64607) ([Anton Popov](https://github.com/CurtizJ))。 +* `plain_rewritable` メタデータの読み込みパフォーマンスを改善しました。[#65634](https://github.com/ClickHouse/ClickHouse/pull/65634) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 読み取り専用ディスク上でテーブルをアタッチする際に、古いパーツをロードしないことで、使用するリソースを削減しました。[#65635](https://github.com/ClickHouse/ClickHouse/pull/65635) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* Set インデックスに対して minmax ハイパーレクタングルをサポートしました。[#65676](https://github.com/ClickHouse/ClickHouse/pull/65676) ([AntiTopQuark](https://github.com/AntiTopQuark))。 +* 古いパーツのプライマリインデックスをアンロードして、総メモリ使用量を削減しました。[#65852](https://github.com/ClickHouse/ClickHouse/pull/65852) ([Anton Popov](https://github.com/CurtizJ))。 +* `replaceRegexpAll` および `replaceRegexpOne` 関数が、パターンが単純(メタ文字・パターンクラス・フラグ・グルーピング文字などを含まない)な場合に大幅に高速化されました(Taiyang Li 氏に感謝します)。[#66185](https://github.com/ClickHouse/ClickHouse/pull/66185) ([Robert Schulze](https://github.com/rschu1ze))。 +* S3 リクエスト: クエリの再試行時間を短縮し、バックアップの再試行回数を増やしました。クエリについては 8.5 分で 100 回の再試行、バックアップリストアについては 1.2 時間で 1000 回の再試行を行います。[#65232](https://github.com/ClickHouse/ClickHouse/pull/65232) ([Sema Checherinda](https://github.com/CheSema))。 +* クエリプランの LIMIT 最適化をサポートしました。PostgreSQL ストレージおよびテーブル関数に対する LIMIT のプッシュダウンをサポートしました。[#65454](https://github.com/ClickHouse/ClickHouse/pull/65454) ([Maksim Kita](https://github.com/kitaisreal))。 +* ZooKeeper の負荷分散を改善しました。`fallback_session_lifetime` に関係なく、最適なノードが利用可能になるまで現在のセッションが期限切れにならないようになり、AZ(アベイラビリティゾーン)対応のバランシングを追加しました。[#65570](https://github.com/ClickHouse/ClickHouse/pull/65570) ([Alexander Tokmakov](https://github.com/tavplubix))。 +* DatabaseCatalog が、最大で database_catalog_drop_table_concurrency 個のスレッドを使用してテーブルをより高速に削除するようになりました。[#66065](https://github.com/ClickHouse/ClickHouse/pull/66065) ([Sema Checherinda](https://github.com/CheSema))。 + +#### 改善点 {#improvement-5} + +* ZooKeeper の負荷分散を改善しました。`fallback_session_lifetime` が設定されていても、最適なノードが利用可能になるまで現在のセッションは失効しません。AZ を考慮したバランシングのサポートを追加しました。 [#65570](https://github.com/ClickHouse/ClickHouse/pull/65570) ([Alexander Tokmakov](https://github.com/tavplubix))。 +* `optimize_trivial_insert_select` 設定はデフォルトで無効になっています。ほとんどのケースでは有益です。とはいえ、もし `INSERT SELECT` が遅くなったりメモリ使用量が増加している場合は、この設定を再度有効化するか、`SET compatibility = '24.6'` を実行してください。 [#58970](https://github.com/ClickHouse/ClickHouse/pull/58970)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `clickhouse-client` または `clickhouse-local` がクラッシュした場合に、スタックトレースおよび診断情報を出力します。 [#61109](https://github.com/ClickHouse/ClickHouse/pull/61109) ([Alexander Tokmakov](https://github.com/tavplubix))。 +* `SHOW INDEX | INDEXES | INDICES | KEYS` の結果は、以前はプライマリキーのカラム名でソートされていました。これは直感的ではないため、現在はプライマリキーを構成するカラムの位置順でソートされるようになりました。 [#61131](https://github.com/ClickHouse/ClickHouse/pull/61131) ([Robert Schulze](https://github.com/rschu1ze))。 +* Materialized Views の重複排除の動作を変更しました。次のような多くのケースに対応しています: - 宛先テーブルで: データが 2 つ以上のブロックに分割され、それらのブロックが並列に挿入される場合に、そのブロックが重複として扱われてしまう。 - MV の宛先テーブルで: 集約処理の結果、異なる入力データに対しても MV がしばしば同一の結果データを生成し、その同一ブロックが重複排除される。 - MV の宛先テーブルで: 異なる MV から来た同一のブロックが重複排除される。 [#61601](https://github.com/ClickHouse/ClickHouse/pull/61601) ([Sema Checherinda](https://github.com/CheSema)). +* パーティション化された DeltaLake データの読み取りをサポート。データ本体ではなくメタデータを読み取ることで DeltaLake スキーマを推論。 [#63201](https://github.com/ClickHouse/ClickHouse/pull/63201) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Composable protocols において、TLS レイヤーでは `certificateFile` と `privateKeyFile` パラメータのみが受け付けられていました。 [https://clickhouse.com/docs/operations/settings/composable-protocols](https://clickhouse.com/docs/operations/settings/composable-protocols)。[#63985](https://github.com/ClickHouse/ClickHouse/pull/63985)([Anton Ivashkin](https://github.com/ianton-ru))。 +* WHERE 句の評価に主キーを使用する SELECT クエリの数を示すプロファイルイベント `SelectQueriesWithPrimaryKeyUsage` を追加しました。 [#64492](https://github.com/ClickHouse/ClickHouse/pull/64492) ([0x01f](https://github.com/0xfei)). +* `StorageS3Queue` に関連する修正と改善。サーバー上の物理 CPU コア数に応じて `s3queue_processing_threads_num` のデフォルト値を自動的に決定するように変更(以前のデフォルト値である 1 の代わり)。`s3queue_loading_retries` のデフォルト値を 10 に設定。`system.s3queue` の例外カラムで「Uncaught exception」という曖昧な表示になり得る問題を修正。`MEMORY_LIMIT_EXCEEDED` 例外が発生した場合にリトライ回数を増やさないように変更。ファイルのコミット処理を、テーブルへの挿入が完全に終了した後の段階に移動し、挿入されていない状態でファイルがコミットされてしまうことを防止。コミットおよびフラッシュのタイミングをより細かく制御できるように、`s3queue_max_processed_files_before_commit`、`s3queue_max_processed_rows_before_commit`、`s3queue_max_processed_bytes_before_commit`、`s3queue_max_processing_time_sec_before_commit` の各設定を追加。[#65046](https://github.com/ClickHouse/ClickHouse/pull/65046)([Kseniia Sumarokova](https://github.com/kssenii))。 +* パラメータ化された VIEW 関数でエイリアスをサポートしました(新しいアナライザーのみ)。 [#65190](https://github.com/ClickHouse/ClickHouse/pull/65190) ([Kseniia Sumarokova](https://github.com/kssenii)). +* azureBlobStorage のログでアカウントキーがマスクされるように更新。[#65273](https://github.com/ClickHouse/ClickHouse/pull/65273)([SmitaRKulkarni](https://github.com/SmitaRKulkarni))。 +* `PARTITION BY` 式の一部となっているフィルタ式を含む `IN` 述語に対して、パーティション・プルーニングを行うようにしました。 [#65335](https://github.com/ClickHouse/ClickHouse/pull/65335) ([Eduard Karacharov](https://github.com/korowa)). +* `arrayMin`/`arrayMax` は、比較可能なすべてのデータ型に適用可能になりました。 [#65455](https://github.com/ClickHouse/ClickHouse/pull/65455) ([pn](https://github.com/chloro-pn))。 +* cgroups v2 におけるメモリアカウンティングを改善し、ページキャッシュが占有している分を除外するようにしました。 [#65470](https://github.com/ClickHouse/ClickHouse/pull/65470) ([Nikita Taranov](https://github.com/nickitat))。 +* EmbeddedRocksDB テーブルに挿入するために chunk をシリアライズする際に、各行ごとにフォーマット設定を作成しないようにしました。 [#65474](https://github.com/ClickHouse/ClickHouse/pull/65474) ([Duc Canh Le](https://github.com/canhld94)). +* `clickhouse-local` のプロンプトを `:)` だけになるように短縮しました。`getFQDNOrHostName()` は macOS 上で時間がかかりすぎるうえ、そもそも `clickhouse-local` のプロンプトにホスト名は不要です。[#65510](https://github.com/ClickHouse/ClickHouse/pull/65510)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 低スペックの仮想マシン上で、jemalloc が CPU ごとの arena に関するメッセージを出力しないようにしました。 [#65532](https://github.com/ClickHouse/ClickHouse/pull/65532) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* デフォルトでファイルシステムキャッシュのバックグラウンドダウンロードを無効化しました。バックグラウンドダウンロードスレッドを使用すると、メモリの解放がクエリコンテキストの外側で行われる一方で(バッファの割り当てはクエリコンテキスト内で行われる)、その結果として「Memory limit exceeded」が発生する可能性がある問題を修正した後に、再度有効化する予定です。また、バックグラウンドワーカーがダウンロードできる最大サイズを定義するための個別の設定を追加する必要があります(現在は max_file_segment_size によって制限されていますが、これは大きすぎる可能性があります)。 [#65534](https://github.com/ClickHouse/ClickHouse/pull/65534) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* `` という新しい設定オプションを追加し、ClickHouse が設定を再読み込みする間隔を指定できるようにしました。 [#65545](https://github.com/ClickHouse/ClickHouse/pull/65545) ([alesapin](https://github.com/alesapin))。 +* ClickHouse のデータ型向けにバイナリエンコーディングを実装し、その仕様をドキュメントに追加しました。Dynamic binary serialization でこれを利用し、RowBinaryWithNamesAndTypes フォーマットおよび Native フォーマットで設定(settings)から利用できるようにしました。[#65546](https://github.com/ClickHouse/ClickHouse/pull/65546) ([Kruglov Pavel](https://github.com/Avogar)). +* サーバー設定 `compiled_expression_cache_size` および `compiled_expression_cache_elements_size` が `system.server_settings` に表示されるようになりました。 [#65584](https://github.com/ClickHouse/ClickHouse/pull/65584) ([Robert Schulze](https://github.com/rschu1ze))。 +* x509 の SubjectAltName 拡張に基づくユーザー識別のサポートを追加しました。 [#65626](https://github.com/ClickHouse/ClickHouse/pull/65626) ([Anton Kozlov](https://github.com/tonickkozlov))。 +* `clickhouse-local` は、設定ファイル内で指定された `max_server_memory_usage` および `max_server_memory_usage_to_ram_ratio` に従います。また、`clickhouse-server` と同様に、デフォルトでシステムメモリ合計の 90% を最大メモリ使用量として設定します。 [#65697](https://github.com/ClickHouse/ClickHouse/pull/65697) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* ファイルを ClickHouse にバックアップするスクリプトを追加。 [#65699](https://github.com/ClickHouse/ClickHouse/pull/65699) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* PostgreSQL ソースでのクエリキャンセルをサポート。 [#65722](https://github.com/ClickHouse/ClickHouse/pull/65722) ([Maksim Kita](https://github.com/kitaisreal)). +* 分散クエリにおいて、`allow_experimental_analyzer` がクエリの発行元によって制御されるようにしました。これにより、バージョンが混在するクラスタ環境での互換性と動作の正しさが保証されます。 [#65777](https://github.com/ClickHouse/ClickHouse/pull/65777) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* Keeper で cgroup の CPU 制限を考慮するようにしました。 [#65819](https://github.com/ClickHouse/ClickHouse/pull/65819) ([Antonio Andelic](https://github.com/antonio2368)). +* 空の引数でも `concat` 関数を使用できるようにしました(`:) select concat();`)。 [#65887](https://github.com/ClickHouse/ClickHouse/pull/65887) ([李扬](https://github.com/taiyang-li)). +* `clickhouse-local` で named collections を制御できるようになりました。 [#65973](https://github.com/ClickHouse/ClickHouse/pull/65973) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Azure 関連のプロファイルイベントを改善。 [#65999](https://github.com/ClickHouse/ClickHouse/pull/65999) ([alesapin](https://github.com/alesapin)). +* ORC ファイルを、書き込み時のタイムゾーンを使用して読み取ることをサポートしました。 [#66025](https://github.com/ClickHouse/ClickHouse/pull/66025) ([kevinyhzou](https://github.com/KevinyhZou)). +* PostgreSQL への接続を制御するための設定を追加しました。`postgresql_connection_attempt_timeout` 設定は、接続 URL の `connect_timeout` パラメータに渡す値を指定します。`postgresql_connection_pool_retries` 設定は、PostgreSQL エンドポイントへの接続を確立する際の再試行回数を指定します。[#66232](https://github.com/ClickHouse/ClickHouse/pull/66232)([Dmitry Novik](https://github.com/novikd))。 +* `system.processors_profile_log` 内の `input_wait_elapsed_us` / `elapsed_us` の値の不正確さを軽減しました。 [#66239](https://github.com/ClickHouse/ClickHouse/pull/66239) ([Azat Khuzhin](https://github.com/azat)). +* ファイルシステムキャッシュ用のProfileEventsを改善しました。 [#66249](https://github.com/ClickHouse/ClickHouse/pull/66249) ([zhukai](https://github.com/nauu)). +* レプリケートストレージで名前付きコレクションの管理を行う際に、クエリ内の `ON CLUSTER` 句を無視するための設定を追加しました。 [#66288](https://github.com/ClickHouse/ClickHouse/pull/66288) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* 関数 `generateSnowflakeID` では、大規模クラスター環境における衝突を防ぐために、マシンIDをパラメーターとして指定できるようになりました。 [#66374](https://github.com/ClickHouse/ClickHouse/pull/66374) ([ZAWA_ll](https://github.com/Zawa-ll)). +* インタラクティブモードで `Ctrl+Z` によるサスペンドを無効化しました。これはよくある落とし穴であり、ほとんどすべてのユーザーにとって想定された動作ではありません。端末アプリケーションをバックグラウンドにサスペンドできることを便利だと感じるような、かなり特殊なパワーユーザーもごく一部にはいるかもしれませんが、私自身はそのような人を一人も知りません。 [#66511](https://github.com/ClickHouse/ClickHouse/pull/66511) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* Dictionaries におけるプライマリキー型を検証するためのオプションを追加しました。このオプションがない場合、simple レイアウトでは任意のカラム型が自動的に UInt64 に変換されます。 [#66595](https://github.com/ClickHouse/ClickHouse/pull/66595) ([MikhailBurdukov](https://github.com/MikhailBurdukov))。 + +#### バグ修正(公式安定版でユーザーが認識できる不具合) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-4} + +* CREATE/REPLACE/RENAME/EXCHANGE クエリにおいて循環依存関係を検出し、循環依存関係がある場合は例外をスローするようにしました。以前は、このような循環依存関係がサーバーの起動時にデッドロックを引き起こす可能性がありました。また、依存関係の作成処理に関するいくつかのバグも修正しました。 [#65405](https://github.com/ClickHouse/ClickHouse/pull/65405) ([Kruglov Pavel](https://github.com/Avogar))。 +* 関数呼び出しにおいて `LowCardinality` カラムのサイズが予期せず変化してしまう問題を修正しました。 [#65298](https://github.com/ClickHouse/ClickHouse/pull/65298) ([Raúl Marín](https://github.com/Algunenano))。 +* maxIntersections で発生していたクラッシュを修正。 [#65689](https://github.com/ClickHouse/ClickHouse/pull/65689) ([Raúl Marín](https://github.com/Algunenano)). +* 再起動後にユーザー定義で設定した `VALID UNTIL` 句がリセットされてしまう問題を修正しました。 [#66409](https://github.com/ClickHouse/ClickHouse/pull/66409) ([Nikolay Degterinsky](https://github.com/evillique))。 +* `SHOW MERGES` の残り時間のカラムを修正。 [#66735](https://github.com/ClickHouse/ClickHouse/pull/66735) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `Query was cancelled` が clickhouse-client で 2 回出力されることがありました。この問題を修正しました。 [#66005](https://github.com/ClickHouse/ClickHouse/pull/66005) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* `MaterializedMySQL`(サポート対象外の実験的機能)を使用し、MySQL の NULL フィールドを ClickHouse の NOT NULL フィールドにマッピングする TABLE OVERRIDE を用いた場合に発生していたクラッシュを修正しました。 [#54649](https://github.com/ClickHouse/ClickHouse/pull/54649) ([Filipp Ozinov](https://github.com/bakwc))。 +* `PREWHERE` 式がカラムを一切読み込まず、かつテーブルに adaptive index granularity が存在しない(非常に古いテーブル)場合に発生する論理エラーを修正しました。 [#59173](https://github.com/ClickHouse/ClickHouse/pull/59173) ([Alexander Gololobov](https://github.com/davenger)). +* クエリのキャンセル時に使用されるキャンセルバッファの不具合を修正しました。 [#64478](https://github.com/ClickHouse/ClickHouse/pull/64478) ([Sema Checherinda](https://github.com/CheSema)). +* `columns.txt` が存在しない場合の、メタデータからパーツのカラムを補完する処理を修正。 [#64757](https://github.com/ClickHouse/ClickHouse/pull/64757) ([Azat Khuzhin](https://github.com/azat)). +* `ALTER TABLE ... ON CLUSTER ... MODIFY SQL SECURITY` を実行するとクラッシュする不具合を修正しました。 [#64957](https://github.com/ClickHouse/ClickHouse/pull/64957) ([pufit](https://github.com/pufit)). +* AccessControl 破棄時のクラッシュを修正: 明示的なシャットダウン処理を追加。 [#64993](https://github.com/ClickHouse/ClickHouse/pull/64993) ([Vitaly Baranov](https://github.com/vitlibar))。 +* 関数 `uniq*` の引数に含まれる単射関数を再帰的に削除するようにしました。以前は正しく動作していましたが、新しいアナライザーで動作しなくなっていました。 [#65140](https://github.com/ClickHouse/ClickHouse/pull/65140) ([Duc Canh Le](https://github.com/canhld94)). +* CTE を使用したクエリで、予期しない PROJECTION 名が付く問題を修正しました。 [#65267](https://github.com/ClickHouse/ClickHouse/pull/65267) ([wudidapaopao](https://github.com/wudidapaopao)). +* 直接クエリまたは `Dictionary` テーブルエンジン経由で Dictionary にアクセスする際に、`dictGet` 権限を必須としました。 [#65359](https://github.com/ClickHouse/ClickHouse/pull/65359) ([Joe Lynch](https://github.com/joelynch)). +* 増分バックアップ利用時のユーザーごとの S3 認証を修正しました。 [#65481](https://github.com/ClickHouse/ClickHouse/pull/65481) ([Antonio Andelic](https://github.com/antonio2368)). +* `read-in-order` 最適化が有効になっている場合に、`FINAL` を含むクエリでは `non-intersecting-parts` 最適化を無効化しました。以前は、これによりクエリ結果が不正になる可能性がありました。この修正がマージされるまでの回避策としては、`do_not_merge_across_partitions_select_final` と `split_parts_ranges_into_intersecting_and_non_intersecting_final` を無効化してください。 [#65505](https://github.com/ClickHouse/ClickHouse/pull/65505) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* リストバッチ内のすべてのファイルがフィルタ条件によって除外された場合に、`Index out of bound for blob metadata` という例外が発生する問題を修正しました。 [#65523](https://github.com/ClickHouse/ClickHouse/pull/65523) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* projection の重複排除マージ時に発生していた NOT_FOUND_COLUMN_IN_BLOCK エラーを修正。 [#65573](https://github.com/ClickHouse/ClickHouse/pull/65573) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* MergeJoin のバグを修正しました。スパースシリアライゼーションのカラムが、必要な変換が行われていないにもかかわらず、そのネストされた型のカラムとして扱われてしまう場合がありました。 [#65632](https://github.com/ClickHouse/ClickHouse/pull/65632) ([Nikita Taranov](https://github.com/nickitat)). +* 互換性レベル「23.4」が正しく適用されない不具合を修正しました。 [#65737](https://github.com/ClickHouse/ClickHouse/pull/65737) ([cw5121](https://github.com/cw5121)). +* Nullable フィールドを含む ODBC テーブルの不具合を修正。 [#65738](https://github.com/ClickHouse/ClickHouse/pull/65738) ([Rodolphe Dugé de Bernonville](https://github.com/RodolpheDuge)). +* 致命的なエラー発生時に発生する可能性があった `TCPHandler` のデータレースを修正。 [#65744](https://github.com/ClickHouse/ClickHouse/pull/65744) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `%F` および `%D` プレースホルダーを使用した関数 `parseDateTime` で誤った例外が発生する問題を修正しました。 [#65768](https://github.com/ClickHouse/ClickHouse/pull/65768) ([Antonio Andelic](https://github.com/antonio2368)). +* `PostgreSQL` からデータを読み出すクエリに対して、ClickHouse のクエリが終了したら内部の `PostgreSQL` クエリをキャンセルするように変更しました。そうしない場合、内部の `PostgreSQL` クエリが終了するまで `ClickHouse` のクエリをキャンセルできません。 [#65771](https://github.com/ClickHouse/ClickHouse/pull/65771) ([Maksim Kita](https://github.com/kitaisreal)). +* old analyzer と dictGetOrDefault を使用している場合のショートサーキットロジックの不具合を修正しました。 [#65802](https://github.com/ClickHouse/ClickHouse/pull/65802) ([jsc0218](https://github.com/jsc0218))。 +* EmbeddedRocksDB で有効期限 (TTL) 付きの書き込みを行うと壊れた SST ファイルが生成されるバグを修正しました。 [#65816](https://github.com/ClickHouse/ClickHouse/pull/65816) ([Duc Canh Le](https://github.com/canhld94)). +* 関数 `bitTest`、`bitTestAll`、`bitTestAny` は、指定されたビットインデックスが範囲外の場合にエラーを返すようになりました [#65818](https://github.com/ClickHouse/ClickHouse/pull/65818)([Pablo Marcos](https://github.com/pamarcos))。 +* `join_any_take_last_row` SETTING がハッシュ結合を使用する任意のクエリでサポートされるようになりました。 [#65820](https://github.com/ClickHouse/ClickHouse/pull/65820) ([vdimir](https://github.com/vdimir)). +* `IS NULL` チェックを含む JOIN 条件の処理を改善しました(たとえば `ON (a = b AND (a IS NOT NULL) AND (b IS NOT NULL) ) OR ( (a IS NULL) AND (b IS NULL) )` は `ON a <=> b` に書き換えます)。また、`IS NULL` 以外の条件も含まれている場合に発生していた誤った最適化を修正しました。 [#65835](https://github.com/ClickHouse/ClickHouse/pull/65835) ([vdimir](https://github.com/vdimir)). +* S3Queue で発生していたメモリ使用量が増加し続ける問題を修正。 [#65839](https://github.com/ClickHouse/ClickHouse/pull/65839) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `arrayAUC` における同値(タイ)の扱いを修正し、sklearn と一致させました。 [#65840](https://github.com/ClickHouse/ClickHouse/pull/65840) ([gabrielmcg44](https://github.com/gabrielmcg44)). +* MySQL サーバープロトコルの TLS 接続における潜在的な問題を修正しました。 [#65917](https://github.com/ClickHouse/ClickHouse/pull/65917) ([Azat Khuzhin](https://github.com/azat)). +* MySQL クライアントプロトコルにおける TLS 接続の不具合を修正しました。 [#65938](https://github.com/ClickHouse/ClickHouse/pull/65938) ([Azat Khuzhin](https://github.com/azat)). +* タイムアウトが 0 の場合における `SSL_ERROR_WANT_READ`/`SSL_ERROR_WANT_WRITE` の扱いを修正。 [#65941](https://github.com/ClickHouse/ClickHouse/pull/65941) ([Azat Khuzhin](https://github.com/azat)). +* `input_format_csv_skip_first_lines/input_format_tsv_skip_first_lines/input_format_csv_try_infer_numbers_from_strings/input_format_csv_try_infer_strings_from_quoted_tuples` という、結果のスキーマを変更しうる設定をスキーマ推論キャッシュに新たに追加しました。これにより、これらの設定を変更した場合でもスキーマ推論の結果が誤ったものになることを防ぎます。 [#65980](https://github.com/ClickHouse/ClickHouse/pull/65980) ([Kruglov Pavel](https://github.com/Avogar)). +* S3 engine と S3 table function における Column _size は、アーカイブ自体のサイズではなく、アーカイブ内のファイルサイズを表します。 [#65993](https://github.com/ClickHouse/ClickHouse/pull/65993) ([Daniil Ivanik](https://github.com/divanik)). +* analyzer における動的サブカラム解決の不具合を修正し、動的サブカラムの読み取り時にカラム全体を読み込まないようにしました。 [#66004](https://github.com/ClickHouse/ClickHouse/pull/66004) ([Kruglov Pavel](https://github.com/Avogar)). +* from_env における replace オーバーライド使用時の設定マージを修正。 [#66034](https://github.com/ClickHouse/ClickHouse/pull/66034) ([Azat Khuzhin](https://github.com/azat)). +* シャットダウン時に `GRPCServer` がハングする可能性のあった問題を修正。 [#66061](https://github.com/ClickHouse/ClickHouse/pull/66061) ([Vitaly Baranov](https://github.com/vitlibar)). +* 関数 `has` において、非定数の `LowCardinality` 引数を取る場合の不具合を複数修正しました。 [#66088](https://github.com/ClickHouse/ClickHouse/pull/66088) ([Anton Popov](https://github.com/CurtizJ)). +* `groupArrayIntersect` を修正しました。`merge()` 関数で誤った動作をする問題がありました。また、数値データおよび汎用データに対する `deserialise()` の動作も修正しました。 [#66103](https://github.com/ClickHouse/ClickHouse/pull/66103) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* `unbin`/`unhex` 実装におけるバッファオーバーフローの不具合を修正しました。 [#66106](https://github.com/ClickHouse/ClickHouse/pull/66106) ([Nikita Taranov](https://github.com/nickitat)). +* [#64760](https://github.com/ClickHouse/ClickHouse/issues/64760) で導入された `merge-filters` 最適化を無効にしました。最適化が 2 つのフィルタ式をマージし、短絡評価を適用しない場合に例外が発生する可能性があります。[#66126](https://github.com/ClickHouse/ClickHouse/pull/66126)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* サーバーが、負のブロックサイズの配列としてエンコードされた Avro ファイルをパースできなかった問題を修正しました。これは現在の Avro 仕様では許可されています。 [#66130](https://github.com/ClickHouse/ClickHouse/pull/66130) ([Serge Klochkov](https://github.com/slvrtrn)). +* ZooKeeper クライアントのバグを修正しました。ZooKeeper からハードウェアエラーを受信した後、セッションが使用不能な状態に陥ったままになることがありました。例えば、これは ClickHouse Keeper の「soft memory limit」が原因で発生する可能性があります。[#66140](https://github.com/ClickHouse/ClickHouse/pull/66140) ([Alexander Tokmakov](https://github.com/tavplubix))。 +* SumIfToCountIfVisitor と符号付き整数に関連する問題を修正。[#66146](https://github.com/ClickHouse/ClickHouse/pull/66146) ([Raúl Marín](https://github.com/Algunenano))。 +* 分散クエリで、まれに結果からデータが欠落する問題を修正しました。 [#66174](https://github.com/ClickHouse/ClickHouse/pull/66174) ([vdimir](https://github.com/vdimir)). +* StorageDeltaLake におけるメタデータフィールドの解析順序を修正。 [#66211](https://github.com/ClickHouse/ClickHouse/pull/66211) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `distributed_ddl_output_mode` の `none_only_active` モード使用時に `TIMEOUT_EXCEEDED` をスローしないようにしました。 [#66218](https://github.com/ClickHouse/ClickHouse/pull/66218) ([Alexander Tokmakov](https://github.com/tavplubix)). +* 索引を使用できない場合の `system.numbers_mt` に対する LIMIT の扱いを修正。 [#66231](https://github.com/ClickHouse/ClickHouse/pull/66231) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 +* Docker などのコンテナでサーバーが動作している場合に、cgroups v2 で指定された使用可能な CPU コア数の最大値を ClickHouse サーバーが正しく検出できるように修正しました。より具体的には、コンテナはしばしば名前が空の root cgroup 内でプロセスを実行しますが、その場合、ClickHouse は cgroups v2 によって設定された CPU 制限を無視していました。 [#66237](https://github.com/ClickHouse/ClickHouse/pull/66237) ([filimonov](https://github.com/filimonov))。 +* 制約内で `IN` を使用するサブクエリを用いた場合に発生する `Not-ready set` エラーを修正しました。 [#66261](https://github.com/ClickHouse/ClickHouse/pull/66261) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* S3 または AzureBlobStorage へのコピー時のエラー報告を修正しました。 [#66295](https://github.com/ClickHouse/ClickHouse/pull/66295) ([Vitaly Baranov](https://github.com/vitlibar)). +* watchdog がリンク解除された(ローテーション済みの)ログファイルのファイルディスクリプタを保持しないようにしました。[#66334](https://github.com/ClickHouse/ClickHouse/pull/66334) ([Aleksei Filatov](https://github.com/aalexfvk))。 +* `logicalexpressionoptimizerpass` が定数の論理型を失うバグを修正。 [#66344](https://github.com/ClickHouse/ClickHouse/pull/66344) ([pn](https://github.com/chloro-pn))。 +* `group_by_use_nulls=true` と新しい analyzer の使用時に発生する `Column identifier is already registered` エラーを修正。 [#66400](https://github.com/ClickHouse/ClickHouse/pull/66400) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* PostgreSQL などの外部エンジンのテーブルを `JOIN` およびフィルタ条件とともに利用するクエリにおいて、過度に積極的なフィルタプッシュダウンが原因で誤った結果が返る可能性がある問題を修正しました。今後は、外部テーブルとの外部結合の場合、`WHERE` 句の条件は外部データベースへ送信されなくなります。 [#66402](https://github.com/ClickHouse/ClickHouse/pull/66402) ([vdimir](https://github.com/vdimir)). +* クロス結合で不足していたカラムのマテリアライゼーションを追加しました。 [#66413](https://github.com/ClickHouse/ClickHouse/pull/66413) ([lgbo](https://github.com/lgbo-ustc)). +* 新しいアナライザーを有効にした環境で、`GROUP BY` キーに定数式を含むクエリを実行した際に発生する `Cannot find column` エラーを修正しました。 [#66433](https://github.com/ClickHouse/ClickHouse/pull/66433) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* 配列のネストレベルが不正な場合に Npy フォーマットからのインポート中に発生しうる論理エラーを防止し、他の種類のエラーに対するテストを修正しました。 [#66461](https://github.com/ClickHouse/ClickHouse/pull/66461) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 述語に非決定的関数が含まれている場合に count() の結果が誤っていた問題を修正。 [#66510](https://github.com/ClickHouse/ClickHouse/pull/66510) ([Duc Canh Le](https://github.com/canhld94)). +* `Allocator::realloc` におけるメモリ使用量を正しくトラッキングするように修正しました。 [#66548](https://github.com/ClickHouse/ClickHouse/pull/66548) ([Antonio Andelic](https://github.com/antonio2368)). +* 空のタプルをハッシュ化する際に未初期化メモリを読み込んでしまう不具合を修正。 [#66562](https://github.com/ClickHouse/ClickHouse/pull/66562) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* `WINDOW` を含むクエリで無効な結果が返されることがある問題を修正しました。これは、`PARTITION` カラムがスパースシリアライゼーションを使用しており、かつウィンドウ関数が並列実行される場合に発生する可能性がありました。 [#66579](https://github.com/ClickHouse/ClickHouse/pull/66579) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* ローカルストレージ内の名前付きコレクションを削除できない不具合を修正。 [#66599](https://github.com/ClickHouse/ClickHouse/pull/66599) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* `ColumnTuple::insertManyFrom` で `column_length` が更新されない不具合を修正。 [#66626](https://github.com/ClickHouse/ClickHouse/pull/66626) ([lgbo](https://github.com/lgbo-ustc)). +* 式 `(column IS NULL)` を含むクエリで発生する `Unknown identifier` および `Column is not under aggregate function` エラーを修正しました。このバグは、無効化された analyzer の場合にのみ [#65088](https://github.com/ClickHouse/ClickHouse/issues/65088) によって誘発されていました。[#66654](https://github.com/ClickHouse/ClickHouse/pull/66654)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 新しいアナライザー使用時に、スカラサブクエリが IN 演算子の最初の引数として使用されている場合に発生していた `Method getResultType is not supported for QUERY query node` エラーを修正しました。[#66655](https://github.com/ClickHouse/ClickHouse/pull/66655) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Variant サブカラムの読み取り時に発生する可能性のある PARAMETER_OUT_OF_BOUND エラーを修正しました。 [#66659](https://github.com/ClickHouse/ClickHouse/pull/66659) ([Kruglov Pavel](https://github.com/Avogar)). +* `DROP COLUMN` 後にマージ処理がまれに停止したままになることがある不具合を修正。 [#66707](https://github.com/ClickHouse/ClickHouse/pull/66707) ([Raúl Marín](https://github.com/Algunenano))。 +* リモートソースからの `INSERT SELECT` 実行時に発生していた `isUniqTypes` アサーションを修正。 [#66722](https://github.com/ClickHouse/ClickHouse/pull/66722) ([Sema Checherinda](https://github.com/CheSema)). +* PrometheusRequestHandler の論理エラーを修正しました。 [#66621](https://github.com/ClickHouse/ClickHouse/pull/66621) ([Vitaly Baranov](https://github.com/vitlibar))。 +* `indexHint` 関数の fuzzer によって検出されたケースを修正しました。 [#66286](https://github.com/ClickHouse/ClickHouse/pull/66286) ([Anton Popov](https://github.com/CurtizJ))。 +* 'create table b empty as a' の AST フォーマットを修正しました。 [#64951](https://github.com/ClickHouse/ClickHouse/pull/64951) ([Michael Kolupaev](https://github.com/al13n321)). + +### ClickHouse 24.6 リリース(2024-07-01)。[プレゼンテーション](https://presentations.clickhouse.com/2024-release-24.6/)、[動画](https://www.youtube.com/watch?v=BK-x8lpvOQw) {#a-id246a-clickhouse-release-246-2024-07-01} + + + +#### 後方互換性のない変更 {#backward-incompatible-change-6} + +* データベースとテーブルの非同期ロードがデフォルトで有効になりました。`config.xml` 内の `async_load_databases` を参照してください。この変更は機能的には完全に互換性がありますが、動作に違いが生じる可能性があります。以前のバージョンと同様に `async_load_databases` が false の場合、すべてのテーブルがロードされるまでサーバーは接続を受け付けません。新バージョンと同様に `async_load_databases` が true の場合、サーバーはすべてのテーブルがロードされる前に接続を受け付けることができます。まだロードされていないテーブルに対してクエリが実行された場合、そのテーブルのロード完了まで待機し、それにはかなりの時間を要する可能性があります。この挙動は、サーバーが負荷分散環境下の大規模な分散システムの一部である場合に影響を与え得ます。前者の場合、ロードバランサーは接続拒否を受け取り、別のサーバーへ素早くフェイルオーバーできます。後者の場合、ロードバランサーはまだテーブルをロード中のサーバーに接続し、そのクエリのレイテンシーは高くなります。さらに、待機状態のクエリが多数蓄積すると、それらが同時に処理を開始する「thundering herd」問題を引き起こす可能性があります。これは高負荷な分散バックエンドでのみ差異を生む可能性があります。この問題を回避するには、`async_load_databases` の値を false に設定してください。 [#57695](https://github.com/ClickHouse/ClickHouse/pull/57695)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `MergeTree` テーブルに対して `replace_long_file_name_to_hash` 設定がデフォルトで有効になりました。 [#64457](https://github.com/ClickHouse/ClickHouse/pull/64457)([Anton Popov](https://github.com/CurtizJ))。この設定は完全に互換性があり、アップグレード時に追加の操作は不要です。この新しいデータ形式は 23.9 以降のすべてのバージョンでサポートされています。この設定を有効にすると、23.8 以前のバージョンへのダウングレードはできなくなります。 +* 一部の不正なクエリは、パースのより早い段階で失敗するようになりました。注: 文字列リテラルなしで `kql` テーブル関数に渡されたインライン KQL 式(実験的な Kusto 言語)のサポートを無効化しました。例えば `kql('garbage | trash')` や `kql($$garbage | trash$$)` を書くべきところで `kql(garbage | trash)` と書くケースです。この機能は意図せず導入されており、本来存在すべきではありませんでした。 [#61500](https://github.com/ClickHouse/ClickHouse/pull/61500)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* ストレージ `S3Queue` の `Ordered` モードにおける並列処理を再設計しました。この PR は、`s3queue_processing_threads_num` または `s3queue_total_shards_num` 設定を使用していた場合、Ordered モードに対して後方互換性がありません。設定 `s3queue_total_shards_num` は削除されました。以前は `s3queue_allow_experimental_sharded_mode` が有効な場合にのみ使用が許可されていましたが、これは現在非推奨です。新しい設定 `s3queue_buckets` が追加されました。 [#64349](https://github.com/ClickHouse/ClickHouse/pull/64349)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 新しい関数 `snowflakeIDToDateTime`, `snowflakeIDToDateTime64`, `dateTimeToSnowflakeID`, `dateTime64ToSnowflakeID` が追加されました。既存の関数 `snowflakeToDateTime`, `snowflakeToDateTime64`, `dateTimeToSnowflake`, `dateTime64ToSnowflake` と異なり、新しい関数は `generateSnowflakeID` 関数と互換性があります。すなわち、`generateSnowflakeID` によって生成された Snowflake ID を受け取り、`generateSnowflakeID` と同じ型(`UInt64`)の Snowflake ID を生成します。さらに、新しい関数は `generateSnowflakeID` と同様に UNIX エポック(1970-01-01)をデフォルトとします。必要に応じて、Twitter/X のエポックである 2010-11-04(UNIX エポックからの経過ミリ秒 1288834974657 など)、別のエポックを渡すこともできます。古い変換関数は非推奨となり、移行期間後に削除されます。引き続き使用する必要がある場合は、`allow_deprecated_snowflake_conversion_functions` 設定を有効にしてください。 [#64948](https://github.com/ClickHouse/ClickHouse/pull/64948)([Robert Schulze](https://github.com/rschu1ze))。 + +#### 新機能 {#new-feature-6} + +* ClickHouse Keeper で名前付きコレクションを保存できるようにしました。 [#64574](https://github.com/ClickHouse/ClickHouse/pull/64574) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 空タプルをサポートしました。 [#55061](https://github.com/ClickHouse/ClickHouse/pull/55061) ([Amos Bird](https://github.com/amosbird))。 +* Hilbert 曲線のエンコードおよびデコード関数を追加しました。 [#60156](https://github.com/ClickHouse/ClickHouse/pull/60156) ([Artem Mustafin](https://github.com/Artemmm91)). +* `hilbertEncode` を用いた索引解析をサポートしました。 [#64662](https://github.com/ClickHouse/ClickHouse/pull/64662) ([Artem Mustafin](https://github.com/Artemmm91)). +* 関数 `readWKTLineString` による WKT 形式の `LINESTRING` ジオメトリの読み取りをサポートしました。 [#62519](https://github.com/ClickHouse/ClickHouse/pull/62519) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* 別ディスク上のパーツをアタッチできるようにしました。 [#63087](https://github.com/ClickHouse/ClickHouse/pull/63087) ([Unalian](https://github.com/Unalian)). +* Twitter 形式の Snowflake ID を生成するための新しい SQL 関数 `generateSnowflakeID` を追加しました。 [#63577](https://github.com/ClickHouse/ClickHouse/pull/63577) ([Danila Puzov](https://github.com/kazalika))。 +* `merge_workload` と `mutation_workload` の設定を追加し、マージ処理、ミューテーション処理、およびその他のワークロード間でのリソースの利用と共有を制御できるようにしました。 [#64061](https://github.com/ClickHouse/ClickHouse/pull/64061) ([Sergei Trifonov](https://github.com/serxa))。 +* `=` 演算子で `IPv4` 型と `IPv6` 型を比較できるようになりました。 [#64292](https://github.com/ClickHouse/ClickHouse/pull/64292) ([Francisco J. Jurado Moreno](https://github.com/Beetelbrox)). +* 2 項演算の数学関数 (pow, atan2, max2, min2, hypot) で Decimal 型の引数をサポートしました。 [#64582](https://github.com/ClickHouse/ClickHouse/pull/64582) ([Mikhail Gorshkov](https://github.com/mgorshkov)). +* SQL 関数 `parseReadableSize`(および `OrNull` と `OrZero` のバリアント)を追加しました。 [#64742](https://github.com/ClickHouse/ClickHouse/pull/64742) ([Francisco J. Jurado Moreno](https://github.com/Beetelbrox)). +* `CREATE` クエリで作成できるデータベースまたはテーブルの数を制限するためのサーバー設定 `max_table_num_to_throw` および `max_database_num_to_throw` を追加しました。 [#64781](https://github.com/ClickHouse/ClickHouse/pull/64781) ([Xu Jia](https://github.com/XuJia0210)). +* `s3` / `file` / `hdfs` / `url` / `azureBlobStorage` などのファイルライクなストレージに `_time` 仮想カラムを追加。 [#64947](https://github.com/ClickHouse/ClickHouse/pull/64947) ([Ilya Golshtein](https://github.com/ilejn)). +* 新しい関数 `base64URLEncode`、`base64URLDecode`、`tryBase64URLDecode` が追加されました。 [#64991](https://github.com/ClickHouse/ClickHouse/pull/64991) ([Mikhail Gorshkov](https://github.com/mgorshkov)). +* 2つのUTF-8文字列間の[編集距離](https://en.wikipedia.org/wiki/Edit_distance)を計算する新しい関数 `editDistanceUTF8` を追加しました。 [#65269](https://github.com/ClickHouse/ClickHouse/pull/65269) ([LiuNeng](https://github.com/liuneng1994))。 +* カスタム HTTP ハンドラーでカスタムレスポンスヘッダーをサポートできるように、`http_response_headers` 設定を追加しました。 [#63562](https://github.com/ClickHouse/ClickHouse/pull/63562) ([Grigorii](https://github.com/GSokol)). +* クエリ結果を無限ループで返すための新しいテーブル関数 `loop` を追加しました。 [#63452](https://github.com/ClickHouse/ClickHouse/pull/63452) ([Sariel](https://github.com/sarielwxm))。テスト用途に便利です。 +* `system.query_log` に 2 つのカラム `used_privileges` と `missing_privileges` が追加されました。`used_privileges` にはクエリの実行中に確認された権限が格納され、`missing_privileges` には必要な権限のうち不足しているものが格納されます。 [#64597](https://github.com/ClickHouse/ClickHouse/pull/64597) ([Alexey Katsman](https://github.com/alexkats)). +* 設定 `output_format_pretty_display_footer_column_names` を追加しました。この設定を有効にすると、行数の多いテーブル(デフォルトでは 50 行以上)の末尾にカラム名が表示されます。表示の対象となる最小行数のしきい値は、`output_format_pretty_display_footer_column_names_min_rows` によって制御されます。 [#65144](https://github.com/ClickHouse/ClickHouse/pull/65144) ([Shaun Struwig](https://github.com/Blargian)). + +#### 実験的機能 {#experimental-feature-5} + +* 型「number of distinct values」の統計情報を導入。[#59357](https://github.com/ClickHouse/ClickHouse/pull/59357) ([Han Fei](https://github.com/hanfei1991)). +* ReplicatedMergeTree で統計情報をサポート。[#64934](https://github.com/ClickHouse/ClickHouse/pull/64934) ([Han Fei](https://github.com/hanfei1991)). +* `Replicated` データベースに「replica group」が設定されている場合、すべてのグループのレプリカを含むクラスタを自動的に作成。[#64312](https://github.com/ClickHouse/ClickHouse/pull/64312) ([Alexander Tokmakov](https://github.com/tavplubix)). +* 範囲フィルタを使用する際に、動的な分片を持つ並列レプリカによるクエリの並列化方法を制御できるように、`parallel_replicas_custom_key_range_lower` と `parallel_replicas_custom_key_range_upper` の設定を追加。[#64604](https://github.com/ClickHouse/ClickHouse/pull/64604) ([josh-hildred](https://github.com/josh-hildred)). + +#### パフォーマンス改善 {#performance-improvement-6} + +* `PRIMARY KEY` で設定された順序を維持したまま、サイズ最適化のために挿入時に行を再配置できる機能を追加しました。この挙動は設定項目 `optimize_row_order`(デフォルトではオフ)で制御されます。 [#63578](https://github.com/ClickHouse/ClickHouse/pull/63578) ([Igor Markelov](https://github.com/ElderlyPassionFruit))。 +* Parquet のバイナリを ClickHouse のカラムに直接読み込めるネイティブな Parquet リーダーを追加しました。`input_format_parquet_use_native_reader` という設定で制御されます(既定では無効です)。[#60361](https://github.com/ClickHouse/ClickHouse/pull/60361)([ZhiHong Zhang](https://github.com/copperybean))。 +* クエリのフィルタ条件が MergeTree テーブルから厳密な範囲を選択できる場合に、部分的な trivial count の最適化をサポートしました。 [#60463](https://github.com/ClickHouse/ClickHouse/pull/60463) ([Amos Bird](https://github.com/amosbird))。 +* マルチスレッド `INSERT` において、複数スレッドからの chunk を単一の transform で集約することで、最大メモリ使用量を削減しました。[#61047](https://github.com/ClickHouse/ClickHouse/pull/61047) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 固定的なメモリ割り当てを使用し、余分なバッファの割り当てを回避することで、Azure オブジェクトストレージ使用時のメモリ使用量を削減しました。 [#63160](https://github.com/ClickHouse/ClickHouse/pull/63160) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)). +* `ColumnNullable::size` における仮想関数呼び出しの回数を削減しました。 [#60556](https://github.com/ClickHouse/ClickHouse/pull/60556) ([HappenLee](https://github.com/HappenLee)). +* 正規表現引数が1文字のときの `splitByRegexp` の処理を高速化。 [#62696](https://github.com/ClickHouse/ClickHouse/pull/62696) ([Robert Schulze](https://github.com/rschu1ze)). +* 使用されているキーの最小値と最大値を追跡することで、8-bit および 16-bit キーを用いる集約を高速化しました。これにより、検証が必要なセルの数を削減できます。 [#62746](https://github.com/ClickHouse/ClickHouse/pull/62746) ([Jiebin Sun](https://github.com/jiebinn))。 +* 左辺が `LowCardinality` で右辺が定数の集合である場合の `IN` 演算子を最適化しました。 [#64060](https://github.com/ClickHouse/ClickHouse/pull/64060) ([Zhiguo Zhou](https://github.com/ZhiguoZh)). +* `ConcurrentHashJoin` 内のハッシュテーブルの初期化と破棄にスレッドプールを使用します。 [#64241](https://github.com/ClickHouse/ClickHouse/pull/64241) ([Nikita Taranov](https://github.com/nickitat)). +* スパースなカラムを持つテーブルにおける縦方向マージを最適化しました。 [#64311](https://github.com/ClickHouse/ClickHouse/pull/64311) ([Anton Popov](https://github.com/CurtizJ)). +* 垂直マージ処理中にリモートファイルシステムからデータをプリフェッチできるようにしました。これにより、データをリモートファイルシステムに保存しているテーブルの垂直マージのレイテンシが改善されます。 [#64314](https://github.com/ClickHouse/ClickHouse/pull/64314) ([Anton Popov](https://github.com/CurtizJ))。 +* `ColumnSparse::filter` の `isDefault` への冗長な呼び出しを削減して、パフォーマンスを改善しました。 [#64426](https://github.com/ClickHouse/ClickHouse/pull/64426) ([Jiebin Sun](https://github.com/jiebinn)). +* 複数の非同期 `getChildren` リクエストを発行することで、`find_super_nodes` および `find_big_family` の keeper-client コマンドを高速化しました。 [#64628](https://github.com/ClickHouse/ClickHouse/pull/64628) ([Alexander Gololobov](https://github.com/davenger)). +* Nullable な数値型引数を取る `least`/`greatest` 関数を改善しました。 [#64668](https://github.com/ClickHouse/ClickHouse/pull/64668) ([KevinyhZou](https://github.com/KevinyhZou)). +* クエリプラン内の連続する 2 つのフィルタリングステップを 1 つにマージできるようにしました。これにより、フィルター条件を親ステップからプッシュダウンできる場合に、フィルタープッシュダウン最適化が改善されます。 [#64760](https://github.com/ClickHouse/ClickHouse/pull/64760) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* vertical final の実装における不具合のある最適化を削除し、vertical final アルゴリズムをデフォルトで再度有効にしました。 [#64783](https://github.com/ClickHouse/ClickHouse/pull/64783) ([Duc Canh Le](https://github.com/canhld94)). +* フィルター式から ALIAS ノードを削除しました。これにより、新しいアナライザ使用時の `PREWHERE` を含むクエリのパフォーマンスがわずかに向上します。 [#64793](https://github.com/ClickHouse/ClickHouse/pull/64793) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* OpenSSL のセッションキャッシュを再有効化。 [#65111](https://github.com/ClickHouse/ClickHouse/pull/65111) ([Robert Schulze](https://github.com/rschu1ze)). +* 挿入時にスキップ索引および統計のマテリアライズを無効化するための設定(`materialize_skip_indexes_on_insert` および `materialize_statistics_on_insert`)を追加しました。 [#64391](https://github.com/ClickHouse/ClickHouse/pull/64391) ([Anton Popov](https://github.com/CurtizJ)). +* 割り当てられたメモリサイズを使用して行グループのサイズを計算し、単一スレッドモードにおける Parquet writer のピークメモリ使用量を削減しました。 [#64424](https://github.com/ClickHouse/ClickHouse/pull/64424) ([LiuNeng](https://github.com/liuneng1994)). +* スパースカラムのイテレータを改善し、`size` の呼び出し回数を削減。 [#64497](https://github.com/ClickHouse/ClickHouse/pull/64497) ([Jiebin Sun](https://github.com/jiebinn)). +* Azure Blob Storage へのバックアップ時にサーバーサイドコピーを使用するよう条件を更新。 [#64518](https://github.com/ClickHouse/ClickHouse/pull/64518) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)). +* 多数のスキップ索引を持つテーブルに対する垂直マージ処理のメモリ使用量を最適化しました。 [#64580](https://github.com/ClickHouse/ClickHouse/pull/64580) ([Anton Popov](https://github.com/CurtizJ)). + +#### 改善 {#improvement-6} + +* systemテーブルに対して `SHOW CREATE TABLE` を実行すると、そのテーブルがなぜ必要なのかを説明する、各テーブル固有の非常に便利なコメントが表示されるようになりました。 [#63788](https://github.com/ClickHouse/ClickHouse/pull/63788) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* 関数 `round()`, `roundBankers()`, `floor()`, `ceil()` および `trunc()` の第2引数(scale)には、定数以外の値も指定できるようになりました。 [#64798](https://github.com/ClickHouse/ClickHouse/pull/64798) ([Mikhail Gorshkov](https://github.com/mgorshkov)). +* 新しいディスクを追加した際に `Distributed` テーブルの storage policy をホットリロードできるようにしました。 [#58285](https://github.com/ClickHouse/ClickHouse/pull/58285) ([Duc Canh Le](https://github.com/canhld94)). +* 高負荷状態のサービスにおけるスレッドスケジューリング時に発生しうる、MergeTree の索引解析でのデッドロックを回避しました。 [#59427](https://github.com/ClickHouse/ClickHouse/pull/59427) ([Sean Haynes](https://github.com/seandhaynes)). +* S3 プロキシのサポートおよびトンネリングに関するいくつかの軽微なコーナーケースを修正しました。 [#63427](https://github.com/ClickHouse/ClickHouse/pull/63427) ([Arthur Passos](https://github.com/arthurpassos)). +* io_uring の再送の可視性を向上。プロファイルイベント `IOUringSQEsResubmits` の名前を `IOUringSQEsResubmitsAsync` に変更し、新しいイベント `IOUringSQEsResubmitsSync` を追加。 [#63699](https://github.com/ClickHouse/ClickHouse/pull/63699) ([Tomer Shafir](https://github.com/tomershafir)). +* メタデータストレージ用ディスクの空き容量を確保するための新しい設定項目 `metadata_keep_free_space_bytes` を追加しました。 [#64128](https://github.com/ClickHouse/ClickHouse/pull/64128) ([MikhailBurdukov](https://github.com/MikhailBurdukov))。 +* `plain_rewritable` メタデータストレージによって作成および削除されるディレクトリ数と、ローカルとリモートの対応関係を保持するインメモリマップ内のエントリ数を追跡するメトリクスを追加しました。 [#64175](https://github.com/ClickHouse/ClickHouse/pull/64175) ([Julia Kartseva](https://github.com/jkartseva)). +* クエリキャッシュは、同一のクエリであっても設定が異なる場合は別のものとして扱うようになりました。これにより、`limit` や `additional_table_filters` などの異なる設定がクエリ結果に影響するケースでの堅牢性が向上します。 [#64205](https://github.com/ClickHouse/ClickHouse/pull/64205) ([Robert Schulze](https://github.com/rschu1ze))。 +* オブジェクトストレージで、非標準的なエラーコード `QpsLimitExceeded` を再試行可能なエラーとして扱うようにしました。 [#64225](https://github.com/ClickHouse/ClickHouse/pull/64225) ([Sema Checherinda](https://github.com/CheSema)). +* このテーブル用の ZooKeeper パスがすでに存在する場合、MergeTree テーブルを ReplicatedMergeTree テーブルに変換することを禁止しました。 [#64244](https://github.com/ClickHouse/ClickHouse/pull/64244) ([Kirill](https://github.com/kirillgarbar)). +* 平均的な出力ブロックのバイト数を制御するための新しい設定 `input_format_parquet_prefer_block_bytes` を追加し、`input_format_parquet_max_block_size` のデフォルト値を 65409 に変更しました。 [#64427](https://github.com/ClickHouse/ClickHouse/pull/64427) ([LiuNeng](https://github.com/liuneng1994)). +* `no_proxy` 環境変数および ClickHouse のプロキシ設定で指定されたホストに対しては、プロキシをバイパスできるようにしました。 [#63314](https://github.com/ClickHouse/ClickHouse/pull/63314) ([Arthur Passos](https://github.com/arthurpassos)). +* Keeper を起動する際には、グローバルスレッドプール内のスレッド数が常に十分に確保されるようにしました。 [#64444](https://github.com/ClickHouse/ClickHouse/pull/64444) ([Duc Canh Le](https://github.com/canhld94)). +* ユーザーの設定ファイルに由来する設定は、オブジェクトストレージ上の `MergeTree` に対するマージおよびミューテーションには影響しません。 [#64456](https://github.com/ClickHouse/ClickHouse/pull/64456) ([alesapin](https://github.com/alesapin)). +* オブジェクトストレージで、非標準エラーコード `TotalQpsLimitExceeded` を再試行可能なエラーとして扱えるようにしました。 [#64520](https://github.com/ClickHouse/ClickHouse/pull/64520) ([Sema Checherinda](https://github.com/CheSema)). +* オープンソース版および ClickHouse Cloud 版の両方で Advanced Dashboard を更新し、「Maximum concurrent network connections」のチャートを含めるようにしました。 [#64610](https://github.com/ClickHouse/ClickHouse/pull/64610) ([Thom O'Connor](https://github.com/thomoco)). +* `zeros_mt` と `generateRandom` の進捗報告を改善。 [#64804](https://github.com/ClickHouse/ClickHouse/pull/64804) ([Raúl Marín](https://github.com/Algunenano)). +* サンプリングが現在有効かどうかを示すために、非同期メトリック `jemalloc.profile.active` を追加しました。これは `prof.active` に加えて使用される有効化の仕組みであり、呼び出しスレッドがサンプリングを行うには両方が有効である必要があります。 [#64842](https://github.com/ClickHouse/ClickHouse/pull/64842) ([Unalian](https://github.com/Unalian)). +* `allow_experimental_join_condition` の重要マークを削除しました。このマークにより、バージョンが混在したクラスタにおいて分散クエリが正常に実行されない可能性がありました。 [#65008](https://github.com/ClickHouse/ClickHouse/pull/65008) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* サーバー側の非同期メトリクス `DiskGetObjectThrottler*` および `DiskGetObjectThrottler*` を追加しました。これらは、ディスク設定 `s3_max_get_rps` と `s3_max_put_rps` で定義された 1 秒あたりのリクエスト数のレート制限と、ディスクでスロットリングの上限に達することなく送信できる現在のリクエスト可能数を反映します。メトリクスは、上限が設定されている各ディスクごとに定義されます。 [#65050](https://github.com/ClickHouse/ClickHouse/pull/65050) ([Sergei Trifonov](https://github.com/serxa)). +* `Poco::ThreadPool` 用のグローバルなトレースコレクタを初期化(Keeper などで必要)。[#65239](https://github.com/ClickHouse/ClickHouse/pull/65239) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* ユーザー作成時の `bcrypt_hash` のバリデーションを追加しました。 [#65242](https://github.com/ClickHouse/ClickHouse/pull/65242) ([Raúl Marín](https://github.com/Algunenano))。 +* `PREWHERE` の処理中および処理後に読み取られた行数を計測するためのプロファイルイベントを追加。 [#64198](https://github.com/ClickHouse/ClickHouse/pull/64198) ([Nikita Taranov](https://github.com/nickitat))。 +* 並列レプリカ利用時の `EXPLAIN PLAN` にクエリを出力。 [#64298](https://github.com/ClickHouse/ClickHouse/pull/64298) ([vdimir](https://github.com/vdimir)). +* `allow_deprecated_functions` を `allow_deprecated_error_prone_window_functions` に名前変更しました。 [#64358](https://github.com/ClickHouse/ClickHouse/pull/64358) ([Raúl Marín](https://github.com/Algunenano)). +* `file` テーブル関数において、ファイルディスクリプタにも `max_read_buffer_size` の設定が適用されるようにしました。 [#64532](https://github.com/ClickHouse/ClickHouse/pull/64532) ([Azat Khuzhin](https://github.com/azat)). +* 未対応のストレージに対しては、materialized view であってもトランザクションを無効化するようにしました。 [#64918](https://github.com/ClickHouse/ClickHouse/pull/64918) ([alesapin](https://github.com/alesapin)). +* 旧アナライザでの `QUALIFY` 句の使用を禁止しました。旧アナライザは `QUALIFY` を無視していたため、ミューテーションで予期しないデータ削除が発生する可能性がありました。 [#65356](https://github.com/ClickHouse/ClickHouse/pull/65356) ([Dmitry Novik](https://github.com/novikd)). + +#### バグ修正(公式安定版リリースにおけるユーザーにとって目に見える不具合) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-5} + +* Apache ORC ライブラリのバグを修正しました: すべてのプラットフォームにおける符号なし型および ARM 上の Int8 について、書き込み時の ORC 統計値の計算を修正しました。 [#64563](https://github.com/ClickHouse/ClickHouse/pull/64563) ([Michael Kolupaev](https://github.com/al13n321)). +* CSV 形式における Tuple の扱いと解釈を、従来の ClickHouse の動作に戻しました。この変更により、実質的に [https://github.com/ClickHouse/ClickHouse/pull/60994](https://github.com/ClickHouse/ClickHouse/pull/60994) は取り消され、次のいくつかの設定でのみ利用可能となります: `output_format_csv_serialize_tuple_into_separate_columns`、`input_format_csv_deserialize_separate_columns_into_tuple`、および `input_format_csv_try_infer_strings_from_quoted_tuples`。 [#65170](https://github.com/ClickHouse/ClickHouse/pull/65170) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* 特定の状況下で、必要な `GRANT` がないにもかかわらず、ユーザーが `default` データベース上で自身の権限を昇格できてしまう権限エラーを修正しました。 [#64769](https://github.com/ClickHouse/ClickHouse/pull/64769) ([pufit](https://github.com/pufit)). +* UniqInjectiveFunctionsEliminationPass と uniqCombined が原因のクラッシュを修正しました。 [#65188](https://github.com/ClickHouse/ClickHouse/pull/65188) ([Raúl Marín](https://github.com/Algunenano)). +* セッション終了時に発生するダイジェスト不一致の原因となっていた ClickHouse Keeper のバグを修正しました。 [#65198](https://github.com/ClickHouse/ClickHouse/pull/65198) ([Aleksei Filatov](https://github.com/aalexfvk))。 +* Distinct コンビネータに対して正しいメモリアライメントを行うようにしました。以前は、このコンビネータの使用時に不正なメモリ割り当てが行われ、クラッシュが発生する可能性がありました。 [#65379](https://github.com/ClickHouse/ClickHouse/pull/65379) ([Antonio Andelic](https://github.com/antonio2368)). +* `DISTINCT` とウィンドウ関数の併用時にクラッシュが発生する問題を修正しました。 [#64767](https://github.com/ClickHouse/ClickHouse/pull/64767) ([Igor Nikonov](https://github.com/devcrafter))。 +* 'set' スキップ索引が IN 句および indexHint() 使用時に正しく動作しなかった問題を修正しました。 [#62083](https://github.com/ClickHouse/ClickHouse/pull/62083) ([Michael Kolupaev](https://github.com/al13n321)). +* パラメータ化されたビューの値を代入する際に関数を実行できるようになりました。 [#63502](https://github.com/ClickHouse/ClickHouse/pull/63502) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni))。 +* Parquet におけるメモリトラッキングを修正しました。 [#63584](https://github.com/ClickHouse/ClickHouse/pull/63584) ([Michael Kolupaev](https://github.com/al13n321)). +* `Tuple(Map(LowCardinality(String), String), ...)` 型のカラムの読み込み処理を修正しました。 [#63956](https://github.com/ClickHouse/ClickHouse/pull/63956) ([Anton Popov](https://github.com/CurtizJ))。 +* 異なる種類(式と関数)のエイリアス間で循環参照が発生した場合の `Cyclic aliases` エラーを修正しました。 [#63993](https://github.com/ClickHouse/ClickHouse/pull/63993) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* この修正により、クエリパイプライン内の各ビューについて、適切な定義者を持つ正しい再定義済みコンテキストが使用されるようになります。 [#64079](https://github.com/ClickHouse/ClickHouse/pull/64079) ([pufit](https://github.com/pufit)). +* analyzer を修正: INTERPOLATE を使用時に発生していた「Not found column」エラーを修正しました。 [#64096](https://github.com/ClickHouse/ClickHouse/pull/64096) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 +* ファイルを格納しているディスクとは異なる認証情報を持つ S3 バケットにバックアップを作成できない問題を修正しました。 [#64153](https://github.com/ClickHouse/ClickHouse/pull/64153) ([Antonio Andelic](https://github.com/antonio2368)). +* クエリキャッシュは、異なるデータベースに対する同一内容のクエリを別のものとして区別するようになりました。以前の挙動には、テーブルの読み取り権限が不足している場合でも、その制限を回避するために悪用されうる問題がありました。 [#64199](https://github.com/ClickHouse/ClickHouse/pull/64199) ([Robert Schulze](https://github.com/rschu1ze))。 +* StatusFile 内の ~WriteBufferFromFileDescriptor で捕捉されない例外が発生した際にプロセスが異常終了する可能性があった問題を修正。 [#64206](https://github.com/ClickHouse/ClickHouse/pull/64206) ([Kruglov Pavel](https://github.com/Avogar)). +* `ARRAY JOIN` を含む分散クエリで発生していた `duplicate alias` エラーを修正しました。 [#64226](https://github.com/ClickHouse/ClickHouse/pull/64226) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* string から integer への想定外の accurateCast が行われる問題を修正。 [#64255](https://github.com/ClickHouse/ClickHouse/pull/64255) ([wudidapaopao](https://github.com/wudidapaopao)). +* OR グループ内に相互に排他的なアトムが含まれている場合の CNF の単純化を修正しました。 [#64256](https://github.com/ClickHouse/ClickHouse/pull/64256) ([Eduard Karacharov](https://github.com/korowa)). +* Query Tree のサイズ検証を修正。 [#64377](https://github.com/ClickHouse/ClickHouse/pull/64377) ([Dmitry Novik](https://github.com/novikd)). +* `PREWHERE` を含む `Buffer` テーブルで発生する `Logical error: Bad cast` の問題を修正。 [#64388](https://github.com/ClickHouse/ClickHouse/pull/64388) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* `blob_storage_log` をオブジェクトストレージ上に保存している場合の再帰的なロギングを防止しました。 [#64393](https://github.com/ClickHouse/ClickHouse/pull/64393) ([vdimir](https://github.com/vdimir))。 +* デフォルト式を持つテーブルに対する `CREATE TABLE AS` クエリにおける不具合を修正しました。 [#64455](https://github.com/ClickHouse/ClickHouse/pull/64455) ([Anton Popov](https://github.com/CurtizJ)). +* `optimize_read_in_order` が Nullable 型のキーを持つテーブルでの ORDER BY ... NULLS FIRST / LAST 句に対して正しく動作するように修正しました。 [#64483](https://github.com/ClickHouse/ClickHouse/pull/64483) ([Eduard Karacharov](https://github.com/korowa)). +* エイリアス付きの `GLOBAL IN` を含むクエリで発生していた `Expression nodes list expected 1 projection names` および `Unknown expression or identifier` エラーを修正しました。 [#64517](https://github.com/ClickHouse/ClickHouse/pull/64517) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* 定数 CTE を `GROUP BY` キーに含む分散クエリで発生していた `Cannot find column` エラーを修正。 [#64519](https://github.com/ClickHouse/ClickHouse/pull/64519) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* バックアップからの復元処理が、まだ復元されていない definer を持つ MV の作成によって妨げられている場合に発生するクラッシュループを修正しました。 [#64595](https://github.com/ClickHouse/ClickHouse/pull/64595) ([pufit](https://github.com/pufit)). +* フォーマッタが生成する文字列の長さが奇数で、かつ最後の文字が `0` の場合に、関数 `formatDateTimeInJodaSyntax` の出力が正しくなるよう修正しました。たとえば、`SELECT formatDateTimeInJodaSyntax(toDate('2012-05-29'), 'D')` は、以前は `15` を返していましたが、現在は正しく `150` を返します。 [#64614](https://github.com/ClickHouse/ClickHouse/pull/64614) ([LiuNeng](https://github.com/liuneng1994)). +* `-If` コンビネータがすでに使用されている場合は、集約の書き換えを行わないようにしました。 [#64638](https://github.com/ClickHouse/ClickHouse/pull/64638) ([Dmitry Novik](https://github.com/novikd))。 +* float 型の型推論を修正(バッファが小さい場合。具体的には `--max_read_buffer_size 1` のとき)。 [#64641](https://github.com/ClickHouse/ClickHouse/pull/64641) ([Azat Khuzhin](https://github.com/azat)). +* 式を用いた有効期限 (TTL) が正しく動作しなくなる可能性のあった不具合を修正しました。 [#64694](https://github.com/ClickHouse/ClickHouse/pull/64694) ([alesapin](https://github.com/alesapin)). +* 新しい analyzer において、常に真となる `WHERE` および `PREWHERE` 式が削除されてしまう問題を修正。 [#64695](https://github.com/ClickHouse/ClickHouse/pull/64695) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* `startsWith`、`endsWith`、`match`、`multiSearchAny` の結果を使ってフィルタリングする際に、トークンベースのテキストインデックス(`ngrambf` 、`full_text`)が不要な部分を過剰に除去してしまう問題を修正しました。 [#64720](https://github.com/ClickHouse/ClickHouse/pull/64720) ([Eduard Karacharov](https://github.com/korowa))。 +* `UTF8::computeWidth` 関数における ANSI CSI エスケープシーケンス処理の誤動作を修正しました。 [#64756](https://github.com/ClickHouse/ClickHouse/pull/64756) ([Shaun Struwig](https://github.com/Blargian))。 +* サブクエリ間で `ORDER BY` / `LIMIT BY` が誤って削除されてしまう不具合を修正しました。 [#64766](https://github.com/ClickHouse/ClickHouse/pull/64766) ([Raúl Marín](https://github.com/Algunenano)). +* 混在した結合条件に含まれる Set に対するサブクエリを用いた不等結合(experimental)を修正。 [#64775](https://github.com/ClickHouse/ClickHouse/pull/64775) ([lgbo](https://github.com/lgbo-ustc)). +* `plain_rewritable` ディスク上のローカルキャッシュで発生していたクラッシュを修正。 [#64778](https://github.com/ClickHouse/ClickHouse/pull/64778) ([Julia Kartseva](https://github.com/jkartseva)). +* Keeper の修正:`mntr` コマンドで `zk_latest_snapshot_size` に対して正しい値を返すように修正。 [#64784](https://github.com/ClickHouse/ClickHouse/pull/64784) ([Antonio Andelic](https://github.com/antonio2368)). +* `Nested` カラムを対象にした `ARRAY JOIN` を含む分散クエリで発生していた `Cannot find column` エラーを修正しました。[#64755](https://github.com/ClickHouse/ClickHouse/issues/64755) を解決。 [#64801](https://github.com/ClickHouse/ClickHouse/pull/64801) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* SLRU キャッシュポリシーで発生していたメモリリークを修正。 [#64803](https://github.com/ClickHouse/ClickHouse/pull/64803) ([Kseniia Sumarokova](https://github.com/kssenii)). +* S3 からデータを読み取るクエリ、HTTP プロトコル経由のクエリ、非同期挿入など、いくつかの種類のクエリでメモリトラッキングが正しく行われない可能性があった問題を修正しました。 [#64844](https://github.com/ClickHouse/ClickHouse/pull/64844) ([Anton Popov](https://github.com/CurtizJ)). +* materialized view がソーステーブルとは異なる型のカラムを持つ場合に、その materialized view から `PREWHERE` 付きで読み取るクエリで発生していた `Block structure mismatch` エラーを修正しました。 [#64611](https://github.com/ClickHouse/ClickHouse/issues/64611) を修正しました。 [#64855](https://github.com/ClickHouse/ClickHouse/pull/64855) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* TTL を設定したテーブルで、サブクエリ + レプリケートされたデータベース + 並列レプリカ (parallel replicas) + analyzer を組み合わせた場合に、まれにクラッシュする不具合を修正しました。発生頻度は非常に低いですが、TTL とサブクエリの併用は行わないでください。 [#64858](https://github.com/ClickHouse/ClickHouse/pull/64858) ([alesapin](https://github.com/alesapin)). +* 大規模なバッチ削除時に `blob_storage_log` で `Delete` イベントが重複して記録される問題を修正。 [#64924](https://github.com/ClickHouse/ClickHouse/pull/64924) ([vdimir](https://github.com/vdimir)). +* 設定ファイルに [Zoo]Keeper からの include が含まれている場合に、サーバー起動後に発生することがあった [Zoo]Keeper の `Session moved to another server` エラーを修正しました。[#64986](https://github.com/ClickHouse/ClickHouse/pull/64986) ([Alexander Tokmakov](https://github.com/tavplubix)). +* パラメーター化された VIEW に対して正しく動作していなかった `ALTER MODIFY COMMENT` クエリを修正しました [https://github.com/ClickHouse/ClickHouse/pull/54211](https://github.com/ClickHouse/ClickHouse/pull/54211)。 [#65031](https://github.com/ClickHouse/ClickHouse/pull/65031) ([Nikolay Degterinsky](https://github.com/evillique))。 +* `cluster_secure_connection` パラメータが有効な場合の DatabaseReplicated における `host_id` の扱いを修正しました。以前は、このパラメータが有効であっても、DatabaseReplicated によってクラスター内で作成されるすべての接続がセキュアなものになっていませんでした。 [#65054](https://github.com/ClickHouse/ClickHouse/pull/65054) ([Nikolay Degterinsky](https://github.com/evillique))。 +* StorageMerge での `PREWHERE` 最適化後に発生する `Not-ready Set` エラーを修正。 [#65057](https://github.com/ClickHouse/ClickHouse/pull/65057) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* File-like ストレージで finalized バッファへの書き込みを行わないように修正。 [#65063](https://github.com/ClickHouse/ClickHouse/pull/65063) ([Kruglov Pavel](https://github.com/Avogar)). +* 循環エイリアスがある場合にクエリが無限に実行され続ける可能性がある問題を修正。 [#64849](https://github.com/ClickHouse/ClickHouse/issues/64849) を修正。 [#65081](https://github.com/ClickHouse/ClickHouse/pull/65081)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* `INTERPOLATE (alias)` を含むリモートクエリで `Unknown expression identifier` エラーが発生する問題を修正しました(new analyzer)。[#64636](https://github.com/ClickHouse/ClickHouse/issues/64636) を修正。[#65090](https://github.com/ClickHouse/ClickHouse/pull/65090)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 集計処理の外側に算術演算を押し出す最適化を修正しました。新しいアナライザーでは、この最適化が一度しか適用されていませんでした。 [#65104](https://github.com/ClickHouse/ClickHouse/pull/65104) ([Dmitry Novik](https://github.com/novikd)). +* 新しいアナライザーでの集約関数名の書き換え処理を修正。 [#65110](https://github.com/ClickHouse/ClickHouse/pull/65110) ([Dmitry Novik](https://github.com/novikd)). +* クライアントソケットからリクエストボディ(の一部)を読み取っている最中に受信タイムアウトが発生した場合、`200 OK` ではなく `5xx` を返すようにしました。 [#65118](https://github.com/ClickHouse/ClickHouse/pull/65118) ([Julian Maicher](https://github.com/jmaicher)). +* ヘッジリクエストで発生し得るクラッシュを修正。 [#65206](https://github.com/ClickHouse/ClickHouse/pull/65206) ([Azat Khuzhin](https://github.com/azat)). +* Hashed および Hashed_Array Dictionary におけるショートサーキット評価のバグを修正し、未初期化の数値が読み出されてさまざまなエラーが発生する可能性があった問題を解消しました。 [#65256](https://github.com/ClickHouse/ClickHouse/pull/65256) ([jsc0218](https://github.com/jsc0218)). +* この PR は、IN 演算子の型変換処理中に、定数(IN 演算子の 2 番目のパラメータ)の型情報が常に保持されるようにします。そうしないと、型情報が失われることで、DateTime から Date への変換のように、一部の変換が失敗する可能性があります。この不具合を修正します([#64487](https://github.com/ClickHouse/ClickHouse/issues/64487))。[#65315](https://github.com/ClickHouse/ClickHouse/pull/65315)([pn](https://github.com/chloro-pn))。 + +#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement-2} + +* LLVM XRay のサポートを追加。[#64592](https://github.com/ClickHouse/ClickHouse/pull/64592) [#64837](https://github.com/ClickHouse/ClickHouse/pull/64837) ([Tomer Shafir](https://github.com/tomershafir)). +* S3/HDFS/Azure ストレージ実装を、IObjectStorage で動作する単一クラスに統合。同様に *Cluster、データレイクおよび Queue ストレージについても統合。[#59767](https://github.com/ClickHouse/ClickHouse/pull/59767) ([Kseniia Sumarokova](https://github.com/kssenii)). +* MergeTreeData および DataPart への依存を取り除くために、data part writer をリファクタリング。[#63620](https://github.com/ClickHouse/ClickHouse/pull/63620) ([Alexander Gololobov](https://github.com/davenger)). +* `KeyCondition` とキー解析をリファクタリングし、PartitionPruner と単純な COUNT の最適化を改善。これは [#60463](https://github.com/ClickHouse/ClickHouse/issues/60463) から分離されたもの。[#61459](https://github.com/ClickHouse/ClickHouse/pull/61459) ([Amos Bird](https://github.com/amosbird)). +* すべての関数が正しいサイズのカラムで呼び出されていることを検証するアサーションを導入。[#63723](https://github.com/ClickHouse/ClickHouse/pull/63723) ([Raúl Marín](https://github.com/Algunenano)). +* ClickHouse サーバーデーモンを起動するために `rc` init スクリプトを使用する場合、`network` サービスを必須とするように変更。[#60650](https://github.com/ClickHouse/ClickHouse/pull/60650) ([Chun-Sheng, Li](https://github.com/peter279k)). +* いくつかの遅いテストの規模を縮小。[#64387](https://github.com/ClickHouse/ClickHouse/pull/64387) [#64452](https://github.com/ClickHouse/ClickHouse/pull/64452) ([Raúl Marín](https://github.com/Algunenano)). +* keeper-bench を使用して ZooKeeper のログをリプレイ実行。[#62481](https://github.com/ClickHouse/ClickHouse/pull/62481) ([Antonio Andelic](https://github.com/antonio2368)). + +### ClickHouse リリース 24.5(2024-05-30)。[プレゼンテーション](https://presentations.clickhouse.com/2024-release-24.5/)、[動画](https://www.youtube.com/watch?v=dURnKjLuZLg) {#a-id245a-clickhouse-release-245-2024-05-30} + + + +#### 後方互換性のない変更 {#backward-incompatible-change-7} + +* 「inverted indexes」を、より技術色が薄くユーザーフレンドリーな名称である「full-text indexes」に名称変更しました。これにより内部のテーブルメタデータも変更され、既存の(実験的な)inverted indexes を持つテーブルは利用できなくなります。アップグレード前にそのような索引を必ず DROP し、アップグレード後に再度作成してください。[#62884](https://github.com/ClickHouse/ClickHouse/pull/62884)([Robert Schulze](https://github.com/rschu1ze))。 +* 関数 `neighbor`、`runningAccumulate`、`runningDifferenceStartingWithFirstValue`、`runningDifference` の使用は非推奨になりました(エラーを起こしやすいため)。代わりに適切なウィンドウ関数を使用する必要があります。これらを再度有効にするには、`allow_deprecated_error_prone_window_functions = 1` を設定するか、`compatibility = '24.4'` 以下を設定してください。[#63132](https://github.com/ClickHouse/ClickHouse/pull/63132)([Nikita Taranov](https://github.com/nickitat))。 +* `system.columns` からのクエリは、多数のカラムが存在し、かつ多くのデータベースまたはテーブルに `SHOW TABLES` の権限が付与されていない場合でも、より高速に動作するようになります。以前のバージョンでは、対応するテーブルに `SHOW TABLES` を付与せずに個々のカラムに `SHOW COLUMNS` を付与した場合、`system.columns` テーブルにはこれらのカラムが表示されていましたが、新しいバージョンではそのテーブル全体をスキップすることに注意してください。また、クエリを遅くしていたトレースログメッセージ「Access granted」と「Access denied」を削除しました。[#63439](https://github.com/ClickHouse/ClickHouse/pull/63439)([Alexey Milovidov](https://github.com/alexey-milovidov))。 + +#### 新機能 {#new-feature-7} + +* `application/x-www-form-urlencoded` 形式の単一レコードを読み書きするための `Form` フォーマットを追加しました。 [#60199](https://github.com/ClickHouse/ClickHouse/pull/60199) ([Shaun Struwig](https://github.com/Blargian)). +* CROSS JOIN で圧縮を有効にできるようになりました。 [#60459](https://github.com/ClickHouse/ClickHouse/pull/60459) ([p1rattttt](https://github.com/p1rattttt)). +* サイズが上限を超える場合に、一時ファイル上で `CROSS JOIN` を実行できるようになりました。 [#63432](https://github.com/ClickHouse/ClickHouse/pull/63432) ([p1rattttt](https://github.com/p1rattttt)). +* 左表および右表の両方のカラムを含む不等条件での JOIN をサポートします(例: `t1.y < t2.y`)。有効化するには、`SET allow_experimental_join_condition = 1` を実行します。 [#60920](https://github.com/ClickHouse/ClickHouse/pull/60920) ([lgbo](https://github.com/lgbo-ustc))。 +* `Map` のキーとして `Float32`、`Float64`、`Array(T)`、`Map(K, V)` および `Tuple(T1, T2, ...)` を使用できるようになりました。[#54537](https://github.com/ClickHouse/ClickHouse/issues/54537) をクローズ。[#59318](https://github.com/ClickHouse/ClickHouse/pull/59318) ([李扬](https://github.com/taiyang-li))。 +* `EmbeddedRocksDB` に対して、RocksDB の組み込み memtable に依存するのではなく、SST ファイルを作成して取り込むことでバルクロード機能を導入しました。これにより、特に StorageEmbeddedRocksDB テーブルへの長時間実行される insert クエリにおいて、インポート速度が向上します。さらに、`EmbeddedRocksDB` テーブル用の設定を導入しました。 [#59163](https://github.com/ClickHouse/ClickHouse/pull/59163) [#63324](https://github.com/ClickHouse/ClickHouse/pull/63324) ([Duc Canh Le](https://github.com/canhld94))。 +* `input_format_tsv_crlf_end_of_line` という設定を使用することで、TSV 形式で CRLF をパースできるようになりました。 [#56257](https://github.com/ClickHouse/ClickHouse/issues/56257) をクローズ。 [#59747](https://github.com/ClickHouse/ClickHouse/pull/59747)([Shaun Struwig](https://github.com/Blargian))。 +* 省略されたフィールドに NULL 値を強制的に設定する新しい設定 `input_format_force_null_for_omitted_fields`。 [#60887](https://github.com/ClickHouse/ClickHouse/pull/60887) ([Constantine Peresypkin](https://github.com/pkit))。 +* 以前は、S3 ストレージおよび `s3` テーブル関数は、tarball、zip、7z などのアーカイブファイルからの `SELECT` をサポートしていませんでした。現在は、S3 内のアーカイブに含まれるファイルを順次走査できるようになりました。 [#62259](https://github.com/ClickHouse/ClickHouse/pull/62259) ([Daniil Ivanik](https://github.com/divanik))。 +* 条件関数 `clamp` をサポート。 [#62377](https://github.com/ClickHouse/ClickHouse/pull/62377) ([skyoct](https://github.com/skyoct)). +* `NPy` 出力フォーマットを追加しました。[#62430](https://github.com/ClickHouse/ClickHouse/pull/62430) ([豪肥肥](https://github.com/HowePa)). +* `Raw` フォーマットを `TSVRaw` の同義語として扱うようにした。[#63394](https://github.com/ClickHouse/ClickHouse/pull/63394) ([Unalian](https://github.com/Unalian))。 +* 新しい SQL 関数 `generateUUIDv7` を追加し、バージョン 7 UUID(ランダムな成分を持つタイムスタンプベースの UUID)を生成できるようにしました。さらに、UUID からバイト列を抽出する新しい関数 `UUIDToNum` と、バージョン 7 UUID からタイムスタンプ成分を抽出する新しい関数 `UUIDv7ToDateTime` を追加しました。 [#62852](https://github.com/ClickHouse/ClickHouse/pull/62852) ([Alexey Petrunyaka](https://github.com/pet74alex))。 +* Linux および macOS 上で、プログラムの stdout が圧縮拡張子を持つファイルにリダイレクトされている場合、何も行わないのではなく、対応する圧縮方式で出力を圧縮するようにしました(`INTO OUTFILE` と同様の動作になります)。 [#63662](https://github.com/ClickHouse/ClickHouse/pull/63662) ([v01dXYZ](https://github.com/v01dXYZ)). +* アタッチされたテーブルが多数ある場合の警告メッセージを変更し、テーブル、ビュー、およびディクショナリを区別できるようにしました。 [#64180](https://github.com/ClickHouse/ClickHouse/pull/64180) ([Francisco J. Jurado Moreno](https://github.com/Beetelbrox)). +* ClickHouse サーバーの `azureBlobStorage` 関数で Azure Workload Identity を使用して Azure Blob Storage への認証を行えるようにしました。config で `use_workload_identity` パラメータが設定されている場合、認証には [workload identity](https://github.com/Azure/azure-sdk-for-cpp/tree/main/sdk/identity/azure-identity#authenticate-azure-hosted-applications) が使用されます。[#57881](https://github.com/ClickHouse/ClickHouse/pull/57881)([Vinay Suryadevara](https://github.com/vinay92-ch))。 +* `system.parts_columns` テーブルに有効期限 (TTL) に関する情報を追加。 [#63200](https://github.com/ClickHouse/ClickHouse/pull/63200) ([litlig](https://github.com/litlig)). + +#### 実験的機能 {#experimental-features-1} + +* 事前にすべての型を把握していなくても、任意の型の値を保存できる `Dynamic` データ型を実装しました。`Dynamic` 型は `allow_experimental_dynamic_type` 設定を有効にすると利用できます。参考: [#54864](https://github.com/ClickHouse/ClickHouse/issues/54864)、[#63058](https://github.com/ClickHouse/ClickHouse/pull/63058)([Kruglov Pavel](https://github.com/Avogar))。 +* MySQL への接続なしで `MaterializedMySQL` データベースを作成できるようにしました。[#63397](https://github.com/ClickHouse/ClickHouse/pull/63397)([Kirill](https://github.com/kirillgarbar))。 +* ある DDL タスクが同じエラーで連続して `max_retries_before_automatic_recovery` 回(デフォルトでは 100 回)以上失敗した場合に、Replicated データベースのレプリカを自動的に lost とマークし、リカバリを開始するようにしました。また、エントリ実行の初期段階で例外がスローされた場合に DDL エントリがスキップされてしまう可能性があったバグも修正しました。[#63549](https://github.com/ClickHouse/ClickHouse/pull/63549)([Alexander Tokmakov](https://github.com/tavplubix))。 +* `StorageS3Queue` において、`s3queue_tracked_file_ttl_sec` と `s3queue_traked_files_limit` に処理に失敗したファイルも含めてカウントするようにしました。[#63638](https://github.com/ClickHouse/ClickHouse/pull/63638)([Kseniia Sumarokova](https://github.com/kssenii))。 + +#### パフォーマンスの改善 {#performance-improvement-7} + +* ファイルシステムキャッシュでの競合をさらに削減しました (パート4)。バックグラウンドで追加のエビクションを行うことで(`keep_free_space_size(elements)_ratio` によって制御)、ファイルシステムキャッシュが上限まで埋まらないようにできます。これにより、クエリのための空き領域予約(`tryReserve` メソッド)へのプレッシャーが軽減されます。また、可能な限りロックフリーな方法で実行されるため、通常のキャッシュ利用をブロックしないはずです。 [#61250](https://github.com/ClickHouse/ClickHouse/pull/61250) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 新しく作成された PROJECTION ブロックのマージを `INSERT` 実行中にスキップするようにしました。 [#59405](https://github.com/ClickHouse/ClickHouse/pull/59405) ([Nikita Taranov](https://github.com/nickitat)). +* 文字列関数 `...UTF8` について、入力文字列がすべて ASCII 文字であれば ASCII として処理するようにしました。https://github.com/apache/doris/pull/29799 から着想を得ています。全体として 1.07~1.62 倍の高速化が得られました。ピークメモリ使用量も一部のケースで減少している点に注意してください。 [#61632](https://github.com/ClickHouse/ClickHouse/pull/61632) ([李扬](https://github.com/taiyang-li)). +* StorageS3 における選択 (`{}`) グロブのパフォーマンスを改善しました。 [#62120](https://github.com/ClickHouse/ClickHouse/pull/62120) ([Andrey Zvonov](https://github.com/zvonand)). +* HostResolver が各 IP アドレスを複数回保持していました。リモートホストが複数の IP を持ち、何らかの理由(例えばファイアウォールルール)で一部の IP へのアクセスのみ許可され、一部は禁止されている場合、禁止された IP のレコードのうち最初のものだけが失敗としてマークされ、それ以外の禁止 IP も各試行ごとに選択されて失敗し得る状態でした。この問題を修正しても、120 秒ごとに DNS キャッシュが破棄され、IP が再び選択され得る状態になっていました。 [#62652](https://github.com/ClickHouse/ClickHouse/pull/62652) ([Anton Ivashkin](https://github.com/ianton-ru)). +* 多数のカラムがある場合に、マージ時のソートを 2 倍高速化し、メモリ使用量を制御するための新しい設定 `prefer_merge_sort_block_bytes` を追加しました。 [#62904](https://github.com/ClickHouse/ClickHouse/pull/62904) ([LiuNeng](https://github.com/liuneng1994)). +* `clickhouse-local` の起動がより高速になりました。以前のバージョンでは、誤って一時ディレクトリを削除していませんでしたが、現在は削除されます。これにより [#62941](https://github.com/ClickHouse/ClickHouse/issues/62941) が解決されます。 [#63074](https://github.com/ClickHouse/ClickHouse/pull/63074) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 新しいアナライザーに対するマイクロ最適化を行いました。 [#63429](https://github.com/ClickHouse/ClickHouse/pull/63429) ([Raúl Marín](https://github.com/Algunenano)). +* `DateTime` を `DateTime64` と比較する場合にも索引の解析が機能するようになりました。これにより [#63441](https://github.com/ClickHouse/ClickHouse/issues/63441) が解決されます。 [#63443](https://github.com/ClickHouse/ClickHouse/pull/63443) [#63532](https://github.com/ClickHouse/ClickHouse/pull/63532) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 型 `set` の索引について、不要なデータを削除することで、若干(約 1.5 倍)高速化しました。 [#64098](https://github.com/ClickHouse/ClickHouse/pull/64098) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* ファイルシステムキャッシュへの書き込み時にデータをコピーしないようにしました。 [#63401](https://github.com/ClickHouse/ClickHouse/pull/63401) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Azure Blob Storage を用いたバックアップで multicopy を使用するようになりました。 [#64116](https://github.com/ClickHouse/ClickHouse/pull/64116) ([alesapin](https://github.com/alesapin)). +* 異なるコンテナ間でも Azure 向けの native copy を使用できるようにしました。 [#64154](https://github.com/ClickHouse/ClickHouse/pull/64154) ([alesapin](https://github.com/alesapin)). +* Azure 向けの native copy を最終的に有効化しました。 [#64182](https://github.com/ClickHouse/ClickHouse/pull/64182) ([alesapin](https://github.com/alesapin)). + +#### 改良点 {#improvement-7} + +* `clickhouse-local` と、そのショートカットである `clickhouse` および `ch` で、位置引数としてクエリまたはクエリを記述したファイルを指定して実行できるようにしました。例: `ch "SELECT 1"`, `ch --param_test Hello "SELECT {test:String}"`, `ch query.sql`。これにより [#62361](https://github.com/ClickHouse/ClickHouse/issues/62361) がクローズされました。 [#63081](https://github.com/ClickHouse/ClickHouse/pull/63081) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* ローカルおよび Azure (azure_blob_storage) のオブジェクトストレージで plain_rewritable メタデータを有効にしました。 [#63365](https://github.com/ClickHouse/ClickHouse/pull/63365) ([Julia Kartseva](https://github.com/jkartseva)). +* 英語スタイルの Unicode 引用符(例: “Hello”、'world')をサポートしました。一般的にはあまり望ましくない仕様ですが、Google Docs のようなワードプロセッサでクエリを入力する場合には役立ちます。これにより [#58634](https://github.com/ClickHouse/ClickHouse/issues/58634) が解決されました。[#63381](https://github.com/ClickHouse/ClickHouse/pull/63381)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* INSERT クエリのカラムリストで末尾のカンマを使用できるようにしました。例えば、`INSERT INTO test (a, b, c, ) VALUES ...` のように記述できます。 [#63803](https://github.com/ClickHouse/ClickHouse/pull/63803) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `Regexp` フォーマットの例外メッセージを改善。 [#63804](https://github.com/ClickHouse/ClickHouse/pull/63804) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `Values` フォーマットで末尾のコンマも許可されるようになりました。例えば、次のクエリが実行可能です: `INSERT INTO test (a, b, c) VALUES (4, 5, 6,);`。 [#63810](https://github.com/ClickHouse/ClickHouse/pull/63810) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* RabbitMQ が破損したメッセージに対して nack を送信するようにしました。Closes [#45350](https://github.com/ClickHouse/ClickHouse/issues/45350). [#60312](https://github.com/ClickHouse/ClickHouse/pull/60312) ([Kseniia Sumarokova](https://github.com/kssenii)). +* サンプリングクエリプロファイラの使用時など、非同期スタックのアンワインド処理中にデバッグ情報を解釈している際に発生していたクラッシュを修正しました。これにより [#60460](https://github.com/ClickHouse/ClickHouse/issues/60460) が解決されます。 [#60468](https://github.com/ClickHouse/ClickHouse/pull/60468) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* ディスクの場合とストレージの場合で、S3 エラー 'no key' に対して異なるメッセージを出力するようにしました。 [#61108](https://github.com/ClickHouse/ClickHouse/pull/61108) ([Sema Checherinda](https://github.com/CheSema)). +* プログレスバーは、`system.zeros`、`system.zeros_mt`(`system.numbers` および `system.numbers_mt` ではすでに対応済み)からの LIMIT を伴う単純なクエリや、`generateRandom` テーブル関数に対しても動作するようになります。さらに、レコードの総数が `max_rows_to_read` 制限を超える場合は、より早いタイミングで例外をスローします。これにより [#58183](https://github.com/ClickHouse/ClickHouse/issues/58183) がクローズされました。 [#61823](https://github.com/ClickHouse/ClickHouse/pull/61823) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* YAML 設定での「Merge Key」サポート(YAML の少し風変わりな機能なので、気にしなくて構いません)。 [#62685](https://github.com/ClickHouse/ClickHouse/pull/62685) ([Azat Khuzhin](https://github.com/azat)). +* Replicated ソースで非決定的関数が使用された場合のエラーメッセージを改善しました。 [#62896](https://github.com/ClickHouse/ClickHouse/pull/62896) ([Grégoire Pineau](https://github.com/lyrixx)). +* `remote` から使用される Distributed over Distributed 用の interserver secret を修正。 [#63013](https://github.com/ClickHouse/ClickHouse/pull/63013) ([Azat Khuzhin](https://github.com/azat)). +* YAML ファイルで `include_from` をサポートしました。ただし、代わりに `config.d` を使用することを推奨します [#63106](https://github.com/ClickHouse/ClickHouse/pull/63106) ([Eduard Karacharov](https://github.com/korowa))。 +* skim の候補から選択した後でも、ターミナルの既存の入力内容が保持されるようになりました。 [#63261](https://github.com/ClickHouse/ClickHouse/pull/63261) ([FlameFactory](https://github.com/FlameFactory)). +* フィールドの幅(Pretty フォーマットや `visibleWidth` 関数において)が、ANSI エスケープシーケンスを正しく無視するようになりました。 [#63270](https://github.com/ClickHouse/ClickHouse/pull/63270) ([Shaun Struwig](https://github.com/Blargian))。 +* 必要に応じて、エラーコード `NUMBER_OF_ARGUMENTS_DOESNT_MATCH` の使用箇所を、より正確なエラーコードに置き換えました。 [#63406](https://github.com/ClickHouse/ClickHouse/pull/63406) ([Yohann Jardin](https://github.com/yohannj)). +* `os_user` と `client_hostname` が、clickhouse-client でのコマンドライン補完用クエリにおいて正しく設定されるようになりました。これにより [#63430](https://github.com/ClickHouse/ClickHouse/issues/63430) が解決されました。 [#63433](https://github.com/ClickHouse/ClickHouse/pull/63433) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `max_block_size` が 0 の場合は、デフォルト値に自動的に補正されるようにしました。 [#63587](https://github.com/ClickHouse/ClickHouse/pull/63587) ([Antonio Andelic](https://github.com/antonio2368)). +* バイナリの変更を検出した際に名前を自動的に変更できるようにするため、trace_log テーブルに build_id の ALIAS カラムを追加しました。これは [#52086](https://github.com/ClickHouse/ClickHouse/issues/52086) への対応です。[#63656](https://github.com/ClickHouse/ClickHouse/pull/63656)([Zimu Li](https://github.com/woodlzm))。 +* オブジェクトストレージディスクでの truncate 操作を有効化しました。 [#63693](https://github.com/ClickHouse/ClickHouse/pull/63693) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* キーワードリストの読み込みはサーバーのリビジョンに依存するようになり、古いバージョンの ClickHouse サーバーでは無効化されます。CC @azat。 [#63786](https://github.com/ClickHouse/ClickHouse/pull/63786) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* ClickHouse のディスクは、実際のメタデータフォーマットバージョンを取得するためにサーバー設定を読み取るようになりました。 [#63831](https://github.com/ClickHouse/ClickHouse/pull/63831) ([Sema Checherinda](https://github.com/CheSema)). +* stdout が TTY でない場合に Pretty フォーマットの制限(`output_format_pretty_max_rows`/`output_format_pretty_max_value_width`)を無効にするようにしました。 [#63942](https://github.com/ClickHouse/ClickHouse/pull/63942) ([Azat Khuzhin](https://github.com/azat)). +* ClickHouse を AWS Lambda 内で使用する場合でも例外処理が機能するようになりました。作者: [Alexey Coolnev](https://github.com/acoolnev)。 [#64014](https://github.com/ClickHouse/ClickHouse/pull/64014) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* HTTP 経由で渡された無効な圧縮データに対しては、`CORRUPTED_DATA` ではなく `CANNOT_DECOMPRESS` をスローするようにしました。 [#64036](https://github.com/ClickHouse/ClickHouse/pull/64036) ([vdimir](https://github.com/vdimir)). +* Pretty フォーマットで単一の大きな数値に表示されるツールチップが、Nullable および LowCardinality でも動作するようになりました。これにより [#61993](https://github.com/ClickHouse/ClickHouse/issues/61993) がクローズされました。 [#64084](https://github.com/ClickHouse/ClickHouse/pull/64084) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* インデックスを用いたパーツフィルタリング処理の周辺で、メトリクス、ログ、スレッド名を追加。 [#64130](https://github.com/ClickHouse/ClickHouse/pull/64130) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* `ATTACH` 時には `allow_suspicious_primary_key` を無視し、`ALTER` 時に検証するようにしました。 [#64202](https://github.com/ClickHouse/ClickHouse/pull/64202) ([Azat Khuzhin](https://github.com/azat)). + +#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement-3} + +* ClickHouse は clang-18 でビルドするようになりました。clang-tidy-18 による多くの新しいチェックを有効化しました。[#60469](https://github.com/ClickHouse/ClickHouse/pull/60469) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* ClickHouse の新しいプラットフォームとして、loongarch64 を実験的にサポートしました。[#63733](https://github.com/ClickHouse/ClickHouse/pull/63733) ([qiangxuhui](https://github.com/qiangxuhui)). +* Dockerfile は https://github.com/docker-library/official-images/pull/15846 にて Docker 公式ライブラリによるレビューを受けました。[#63400](https://github.com/ClickHouse/ClickHouse/pull/63400) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* CI の各ビルドについて、各翻訳単位に含まれるすべてのシンボル情報を CI データベースに収集するようにしました。これにより [#63494](https://github.com/ClickHouse/ClickHouse/issues/63494) がクローズされます。[#63495](https://github.com/ClickHouse/ClickHouse/pull/63495) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Apache Datasketches ライブラリを更新しました。これにより [#63858](https://github.com/ClickHouse/ClickHouse/issues/63858) が解消されます。[#63923](https://github.com/ClickHouse/ClickHouse/pull/63923) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* バイナリをクロスコンパイルする際に、aarch64 Linux 向けの GRPC サポートを有効化しました。[#64072](https://github.com/ClickHouse/ClickHouse/pull/64072) ([alesapin](https://github.com/alesapin)). +* aarch64 上での SIGSEGV 発生時のスタックアンワインドを修正しました(シグナル用スタックが小さいことが原因)。[#64058](https://github.com/ClickHouse/ClickHouse/pull/64058) ([Azat Khuzhin](https://github.com/azat)). + +#### 不具合修正 {#bug-fix-1} + +* デフォルトで `enable_vertical_final` 設定を無効化しました。この機能にはバグがあるため、使用しないでください。[#64543](https://github.com/ClickHouse/ClickHouse/issues/64543)。 [#64544](https://github.com/ClickHouse/ClickHouse/pull/64544) ([Alexander Tokmakov](https://github.com/tavplubix))。 +* 複数の分片を使用している場合にバックアップが作成できない問題を修正 [#57684](https://github.com/ClickHouse/ClickHouse/pull/57684) ([Vitaly Baranov](https://github.com/vitlibar))。 +* CREATE クエリのカラムリストから MV の内部テーブルへのプロジェクション/索引/プライマリキーの受け渡しを修正しました [#59183](https://github.com/ClickHouse/ClickHouse/pull/59183) ([Azat Khuzhin](https://github.com/azat)). +* boundRatio の誤ったマージを修正 [#60532](https://github.com/ClickHouse/ClickHouse/pull/60532) ([Tao Wang](https://github.com/wangtZJU))。 +* 一部の関数を const な低カーディナリティカラムに対して呼び出すとクラッシュする問題を修正 [#61966](https://github.com/ClickHouse/ClickHouse/pull/61966) ([Michael Kolupaev](https://github.com/al13n321))。 +* テーブルが adaptive granularity を使用していない場合に、`FINAL` 付きクエリが誤った結果を返す問題を修正 [#62432](https://github.com/ClickHouse/ClickHouse/pull/62432) ([Duc Canh Le](https://github.com/canhld94))。 +* メモリコントローラ用の cgroups v2 サポート検出を改善 [#62903](https://github.com/ClickHouse/ClickHouse/pull/62903) ([Robert Schulze](https://github.com/rschu1ze))。 +* クライアントでの外部テーブル再利用時の不具合を修正しました [#62964](https://github.com/ClickHouse/ClickHouse/pull/62964)([Azat Khuzhin](https://github.com/azat))。 +* `untuple` と未解決ラムダに起因するクラッシュを修正。 [#63131](https://github.com/ClickHouse/ClickHouse/pull/63131) ([Raúl Marín](https://github.com/Algunenano))。 +* 接続受け付けのためのサーバーの早すぎる待受開始を修正 [#63181](https://github.com/ClickHouse/ClickHouse/pull/63181) ([alesapin](https://github.com/alesapin))。 +* `DROP PART` コマンド実行後に再起動した際の、交差しているパーツの問題を修正 [#63202](https://github.com/ClickHouse/ClickHouse/pull/63202) ([Han Fei](https://github.com/hanfei1991))。 +* 起動時に SQL セキュリティのデフォルト設定が正しく読み込まれるよう修正しました [#63209](https://github.com/ClickHouse/ClickHouse/pull/63209) ([pufit](https://github.com/pufit)). +* JOIN フィルタプッシュダウン時の filter join に関する不具合を修正 [#63234](https://github.com/ClickHouse/ClickHouse/pull/63234) ([Maksim Kita](https://github.com/kitaisreal)). +* AzureObjectStorage::listObjects の無限ループを修正 [#63257](https://github.com/ClickHouse/ClickHouse/pull/63257) ([Julia Kartseva](https://github.com/jkartseva)). +* CROSS JOIN が join_algorithm 設定を無視する不具合 [#63273](https://github.com/ClickHouse/ClickHouse/pull/63273) ([vdimir](https://github.com/vdimir)). +* WriteBufferToFileSegment および StatusFile の finalize 処理の不具合を修正 [#63346](https://github.com/ClickHouse/ClickHouse/pull/63346) ([vdimir](https://github.com/vdimir)). +* まれなケースで、ALTER の後に実行される SELECT クエリで発生する論理エラーを修正 [#63353](https://github.com/ClickHouse/ClickHouse/pull/63353) ([alesapin](https://github.com/alesapin))。 +* `session_timezone` を使用して `X-ClickHouse-Timezone` ヘッダーを修正 [#63377](https://github.com/ClickHouse/ClickHouse/pull/63377) ([Andrey Zvonov](https://github.com/zvonand))。 +* `WITH ROLLUP` を使用したグルーピングと `LowCardinality` 型の併用時に発生するデバッグアサーションを修正。 [#63398](https://github.com/ClickHouse/ClickHouse/pull/63398) ([Raúl Marín](https://github.com/Algunenano)). +* group_by_use_nulls に関する軽微な修正 [#63405](https://github.com/ClickHouse/ClickHouse/pull/63405) ([vdimir](https://github.com/vdimir))。 +* テーブルメタデータからプロジェクションが削除されているが、パーツ側には依然としてプロジェクションが含まれている場合の、プロジェクションパーツのバックアップ/リストア処理を修正しました [#63426](https://github.com/ClickHouse/ClickHouse/pull/63426) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* MySQL の Dictionary ソースを修正しました [#63481](https://github.com/ClickHouse/ClickHouse/pull/63481) ([vdimir](https://github.com/vdimir)). +* データなしの AsyncInsertFlush で QueryFinish を挿入 [#63483](https://github.com/ClickHouse/ClickHouse/pull/63483) ([Raúl Marín](https://github.com/Algunenano)). +* Fix: system.query_log の used_dictionaries が空になる不具合を修正 [#63487](https://github.com/ClickHouse/ClickHouse/pull/63487) ([Eduard Karacharov](https://github.com/korowa)). +* `MergeTreePrefetchedReadPool` の安全性を向上しました [#63513](https://github.com/ClickHouse/ClickHouse/pull/63513) ([Antonio Andelic](https://github.com/antonio2368)). +* Sentry を有効化している場合に、終了時に発生するクラッシュを修正(OpenSSL が Sentry より先に破棄されていたことが原因)[#63548](https://github.com/ClickHouse/ClickHouse/pull/63548) ([Azat Khuzhin](https://github.com/azat)). +* Keyed ハッシュにおける Array および Map のサポートを修正 [#63628](https://github.com/ClickHouse/ClickHouse/pull/63628) ([Salvatore Mesoraca](https://github.com/aiven-sal))。 +* Parquet および(場合によっては)StorageMerge に対するフィルタープッシュダウンの不具合を修正 [#63642](https://github.com/ClickHouse/ClickHouse/pull/63642) ([Michael Kolupaev](https://github.com/al13n321))。 +* ZooKeeper パスが既に存在する場合は Replicated への変換を行わないようにしました [#63670](https://github.com/ClickHouse/ClickHouse/pull/63670) ([Kirill](https://github.com/kirillgarbar)). +* Analyzer: VIEW が必要なカラムのみを読み込むようになりました [#63688](https://github.com/ClickHouse/ClickHouse/pull/63688) ([Maksim Kita](https://github.com/kitaisreal))。 +* Analyzer: WINDOW の再定義を禁止 [#63694](https://github.com/ClickHouse/ClickHouse/pull/63694) ([Dmitry Novik](https://github.com/novikd)). +* flatten_nested は experimental な Replicated データベースで正常に動作していませんでした。 [#63695](https://github.com/ClickHouse/ClickHouse/pull/63695) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* [#63653](https://github.com/ClickHouse/ClickHouse/issues/63653) [#63722](https://github.com/ClickHouse/ClickHouse/pull/63722) を修正([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* Array(Nothing) から Map(Nothing, Nothing) へのキャストを許可しました [#63753](https://github.com/ClickHouse/ClickHouse/pull/63753) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* partial_merge join における ILLEGAL_COLUMN エラーを修正 [#63755](https://github.com/ClickHouse/ClickHouse/pull/63755) ([vdimir](https://github.com/vdimir))。 +* 修正: ウィンドウ関数における冗長な `DISTINCT` を削除 [#63776](https://github.com/ClickHouse/ClickHouse/pull/63776) ([Igor Nikonov](https://github.com/devcrafter))。 +* SYSTEM UNLOAD PRIMARY KEY でクラッシュが発生する可能性のあった問題を修正しました [#63778](https://github.com/ClickHouse/ClickHouse/pull/63778) ([Raúl Marín](https://github.com/Algunenano))。 +* 循環するエイリアスが重複していたクエリを修正しました。 [#63791](https://github.com/ClickHouse/ClickHouse/pull/63791) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* `TokenIterator` を、本来意図されていたとおり遅延評価にした [#63801](https://github.com/ClickHouse/ClickHouse/pull/63801) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* S3 URI の `endpoint_subpath` 設定を追加 [#63806](https://github.com/ClickHouse/ClickHouse/pull/63806)([Julia Kartseva](https://github.com/jkartseva))。 +* `ParallelReadBuffer` におけるデッドロックを修正 [#63814](https://github.com/ClickHouse/ClickHouse/pull/63814) ([Antonio Andelic](https://github.com/antonio2368))。 +* JOIN フィルタのプッシュダウンにおける等価カラムの処理を修正 [#63819](https://github.com/ClickHouse/ClickHouse/pull/63819) ([Maksim Kita](https://github.com/kitaisreal))。 +* Lazy データベースで DROP を実行した後に、すべてのディスクからデータを削除するようにしました。 [#63848](https://github.com/ClickHouse/ClickHouse/pull/63848) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* parallel replicas と new analyzer を使用している MV からの読み取り時に誤った結果が返る問題を修正 [#63861](https://github.com/ClickHouse/ClickHouse/pull/63861) ([Nikita Taranov](https://github.com/nickitat))。 +* keeper-client の `find_super_nodes` および `find_big_family` コマンドの不具合を修正 [#63862](https://github.com/ClickHouse/ClickHouse/pull/63862) ([Alexander Gololobov](https://github.com/davenger))。 +* lambda の実行名を更新 [#63864](https://github.com/ClickHouse/ClickHouse/pull/63864) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* CPU/Real profiler によって発生する SIGSEGV を修正 [#63865](https://github.com/ClickHouse/ClickHouse/pull/63865) ([Azat Khuzhin](https://github.com/azat))。 +* `EXPLAIN CURRENT TRANSACTION` クエリを修正。[#63926](https://github.com/ClickHouse/ClickHouse/pull/63926)([Anton Popov](https://github.com/CurtizJ))。 +* analyzer を修正: “turtles all the way down...” 状態になっていた問題を修正。 [#63930](https://github.com/ClickHouse/ClickHouse/pull/63930) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 +* `plain_rewritable` ディスクで一部の ALTER TABLE コマンドが使用できるようになりました [#63933](https://github.com/ClickHouse/ClickHouse/pull/63933) ([Julia Kartseva](https://github.com/jkartseva))。 +* 分散クエリにおける再帰CTEの修正 [#63939](https://github.com/ClickHouse/ClickHouse/pull/63939) ([Maksim Kita](https://github.com/kitaisreal)). +* Analyzer: COLUMNS の解決ロジックを修正 [#63962](https://github.com/ClickHouse/ClickHouse/pull/63962) ([Dmitry Novik](https://github.com/novikd)). +* analyzer 使用時の LIMIT BY と skip_unused_shards [#63983](https://github.com/ClickHouse/ClickHouse/pull/63983) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 一部の不要なコード(experimental Kusto)に対する修正 [#63992](https://github.com/ClickHouse/ClickHouse/pull/63992) ([Yong Wang](https://github.com/kashwy))。 +* 信頼できないバイナリ入力を、より安全な方法でデシリアライズするようにしました [#64024](https://github.com/ClickHouse/ClickHouse/pull/64024) ([Robert Schulze](https://github.com/rschu1ze)). +* MergeTree ファミリー以外のテーブルを対象とする Distributed テーブルに対し、SETTING `final` = 1 を指定したクエリの解析を修正。 [#64037](https://github.com/ClickHouse/ClickHouse/pull/64037) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* recoverLostReplica に不足していた設定を追加 [#64040](https://github.com/ClickHouse/ClickHouse/pull/64040) ([Raúl Marín](https://github.com/Algunenano))。 +* analyzer を用いた SQL のセキュリティアクセスチェックの不具合を修正しました [#64079](https://github.com/ClickHouse/ClickHouse/pull/64079) ([pufit](https://github.com/pufit))。 +* Fix analyzer: DAG では `interpolate` 式のみが使用されるように修正 [#64096](https://github.com/ClickHouse/ClickHouse/pull/64096) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Azure バックアップで、非ネイティブコピーの場合に `max_upload_part_size` ではなく読み取りバッファサイズである 1 MiB 単位でマルチパートブロックを書き込むように修正しました [#64117](https://github.com/ClickHouse/ClickHouse/pull/64117) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* バックアップコピー時のフォールバック処理を正しく行うよう修正 [#64153](https://github.com/ClickHouse/ClickHouse/pull/64153) ([Antonio Andelic](https://github.com/antonio2368)). +* CREATE TABLE を materialized view として作成する際に発生する LOGICAL_ERROR を防止 [#64174](https://github.com/ClickHouse/ClickHouse/pull/64174) ([Raúl Marín](https://github.com/Algunenano)). +* Query Cache: 異なるデータベースに対する同一のクエリを別のクエリとして扱うようにしました [#64199](https://github.com/ClickHouse/ClickHouse/pull/64199) ([Robert Schulze](https://github.com/rschu1ze))。 +* Keeper において `text_log` を無視するようにしました [#64218](https://github.com/ClickHouse/ClickHouse/pull/64218) ([Antonio Andelic](https://github.com/antonio2368)). +* 論理エラーを修正: prewhere 句を使用する Buffer テーブルでの不正なキャスト。 [#64388](https://github.com/ClickHouse/ClickHouse/pull/64388) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). + +### ClickHouse リリース 24.4(2024-04-30)。[プレゼンテーション](https://presentations.clickhouse.com/2024-release-24.4/)、[動画](https://www.youtube.com/watch?v=dtUqgcfOGmE) {#a-id244a-clickhouse-release-244-2024-04-30} + + + +#### アップグレードに関する注意事項 {#upgrade-notes} + +* `clickhouse-odbc-bridge` と `clickhouse-library-bridge` は、現在は別々のパッケージになっています。これにより [#61677](https://github.com/ClickHouse/ClickHouse/issues/61677) がクローズされました。 [#62114](https://github.com/ClickHouse/ClickHouse/pull/62114)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* レプリカからの実験的な並列読み取りで使用される `max_parallel_replicas` を、意味をなさないため `0` に設定できないようにしました。[#60140](https://github.com/ClickHouse/ClickHouse/issues/60140) をクローズ。 [#61201](https://github.com/ClickHouse/ClickHouse/pull/61201)([Kruglov Pavel](https://github.com/Avogar))。 +* 非推奨の `LIVE VIEW` 機能の一部である `INSERT WATCH` クエリのサポートを削除しました。 [#62382](https://github.com/ClickHouse/ClickHouse/pull/62382)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `optimize_monotonous_functions_in_order_by` 設定を削除しました。 [#63004](https://github.com/ClickHouse/ClickHouse/pull/63004)([Raúl Marín](https://github.com/Algunenano))。 +* `Replicated` データベースエンジンから experimental タグを削除しました。現在はベータ段階です。 [#62937](https://github.com/ClickHouse/ClickHouse/pull/62937)([Justin de Guzman](https://github.com/justindeguzman))。 + +#### 新機能 {#new-feature-8} + +* 再帰 CTE をサポートしました。[#62074](https://github.com/ClickHouse/ClickHouse/pull/62074)([Maksim Kita](https://github.com/kitaisreal))。 +* `QUALIFY` 句をサポートしました。[#47819](https://github.com/ClickHouse/ClickHouse/issues/47819) をクローズしました。[#62619](https://github.com/ClickHouse/ClickHouse/pull/62619)([Maksim Kita](https://github.com/kitaisreal))。 +* テーブルエンジンに対する権限付与が可能になり、既存ユーザーの挙動には影響しないようになりました。[#60117](https://github.com/ClickHouse/ClickHouse/pull/60117)([jsc0218](https://github.com/jsc0218))。 +* INSERT 操作をサポートし、ローカルにメタデータを保存する必要がない書き換え可能な S3 ディスクを追加しました。主なユースケースは system テーブル用です。[#61116](https://github.com/ClickHouse/ClickHouse/pull/61116)([Julia Kartseva](https://github.com/jkartseva))。 +* クライアントでの入力中のシンタックスハイライトが、(以前のレキサーレベルではなく)構文レベルで動作するようになりました。[#62123](https://github.com/ClickHouse/ClickHouse/pull/62123)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `DROP TABLE a, b, c` のように、複数テーブルを同時に削除することをサポートしました。[#58705](https://github.com/ClickHouse/ClickHouse/pull/58705)([zhongyuankai](https://github.com/zhongyuankai))。 +* `ALTER MODIFY SETTING` による memory テーブルの設定変更をサポートしました。例: `ALTER TABLE memory MODIFY SETTING min_rows_to_keep = 100, max_rows_to_keep = 1000;`。[#62039](https://github.com/ClickHouse/ClickHouse/pull/62039)([zhongyuankai](https://github.com/zhongyuankai))。 +* HTTP インターフェイスに `role` クエリパラメータを追加しました。これは `SET ROLE x` と同様に動作し、ステートメントが実行される前にロールを適用します。HTTP インターフェイスでは複数ステートメントが許可されず、`SET ROLE x` とステートメント本体を同時に送信できないという制限を、この方法で回避できます。`?role=x&role=y` のように複数ロールを指定することも可能で、これは `SET ROLE x, y` と同等です。[#62669](https://github.com/ClickHouse/ClickHouse/pull/62669)([Serge Klochkov](https://github.com/slvrtrn))。 +* テーブルのプライマリキーによるメモリ使用量を解放するための `SYSTEM UNLOAD PRIMARY KEY` を追加しました。[#62738](https://github.com/ClickHouse/ClickHouse/pull/62738)([Pablo Marcos](https://github.com/pamarcos))。 +* `system.text_log` に `value1`, `value2`, ..., `value10` カラムを追加しました。これらのカラムには、メッセージのフォーマットに使用された値が格納されます。[#59619](https://github.com/ClickHouse/ClickHouse/pull/59619)([Alexey Katsman](https://github.com/alexkats))。 +* 挿入時に割り当てられた、ブロック内での元の行番号を保持する永続仮想カラム `_block_offset` を追加しました。カラム `_block_offset` の永続化は、MergeTree の設定 `enable_block_offset_column` によって有効化できます。パーツの最小ブロック番号または mutation バージョンのいずれかを含む仮想カラム `_part_data_version` を追加しました。永続仮想カラム `_block_number` は、もはや実験的とは見なされません。[#60676](https://github.com/ClickHouse/ClickHouse/pull/60676)([Anton Popov](https://github.com/CurtizJ))。 +* JSON 入力フォーマットで不正なエスケープシーケンスを保存できるようにするための設定 `input_format_json_throw_on_bad_escape_sequence` を追加しました。これを無効にすると、不正なエスケープシーケンスを許容して保存できます。[#61889](https://github.com/ClickHouse/ClickHouse/pull/61889)([Kruglov Pavel](https://github.com/Avogar))。 + +#### パフォーマンスの改善 {#performance-improvement-8} + +* 等価な Set を用いた JOIN フィルターのプッシュダウンの改善。 [#61216](https://github.com/ClickHouse/ClickHouse/pull/61216) ([Maksim Kita](https://github.com/kitaisreal))。 +* `JOIN` の後のフィルタが常にデフォルト値の行だけを除外する場合に、`OUTER JOIN` を `INNER JOIN` に変換する最適化を適用します。この最適化は `query_plan_convert_outer_join_to_inner_join` 設定で制御でき、デフォルトで有効になっています。 [#62907](https://github.com/ClickHouse/ClickHouse/pull/62907) ([Maksim Kita](https://github.com/kitaisreal)). +* AWS S3 向けの改善。クライアントはサーバーにヘッダー 'Keep-Alive: timeout=X' を送信する必要があります。クライアントがそのヘッダーを含むサーバーからのレスポンスを受信した場合は、サーバーから送られてきた値を使用しなければなりません。また、接続クローズ時の競合状態を避けるため、クライアント側では期限切れ間近の接続は使用しない方が望ましいです。[#62249](https://github.com/ClickHouse/ClickHouse/pull/62249) ([Sema Checherinda](https://github.com/CheSema))。 +* SELECT クエリに対する mutation のオーバーヘッドを削減 (v2)。 [#60856](https://github.com/ClickHouse/ClickHouse/pull/60856) ([Azat Khuzhin](https://github.com/azat))。 +* PODArray 内でより頻繁に呼び出される関数が、強制的にインライン展開されるようになりました。 [#61144](https://github.com/ClickHouse/ClickHouse/pull/61144) ([李扬](https://github.com/taiyang-li))。 +* 必要なカラムをすべて読み終えた時点でオブジェクトの残りの部分をスキップすることで、JSON のパースを高速化しました。 [#62210](https://github.com/ClickHouse/ClickHouse/pull/62210) ([lgbo](https://github.com/lgbo-ustc)). +* file/s3/hdfs/url/... テーブル関数からの単純な `INSERT SELECT` のパフォーマンスを改善しました。並列パースに使用するスレッド数を制御するために、個別の `max_parsing_threads` SETTING を追加しました。 [#62404](https://github.com/ClickHouse/ClickHouse/pull/62404) ([Kruglov Pavel](https://github.com/Avogar)). +* 関数 `to_utc_timestamp` と `from_utc_timestamp` が約 2 倍高速化されました。 [#62583](https://github.com/ClickHouse/ClickHouse/pull/62583) ([KevinyhZou](https://github.com/KevinyhZou)). +* Functions `parseDateTimeOrNull`、`parseDateTimeOrZero`、`parseDateTimeInJodaSyntaxOrNull` および `parseDateTimeInJodaSyntaxOrZero` は、入力にほとんど解析不能な値が含まれている場合に、従来より大幅に(10倍〜1000倍)高速に動作するようになりました。 [#62634](https://github.com/ClickHouse/ClickHouse/pull/62634) ([LiuNeng](https://github.com/liuneng1994))。 +* `system.query_cache` に対する SELECT 文が、クエリキャッシュに多数のエントリ(例: 100,000 件超)が含まれている場合に、これまでより顕著に高速化されました。 [#62671](https://github.com/ClickHouse/ClickHouse/pull/62671) ([Robert Schulze](https://github.com/rschu1ze))。 +* ファイルシステムキャッシュの競合をさらに削減(パート3):空き容量の予約を試みる際にロックを取得せずに、ファイルシステムからの削除を実行するよう変更しました。 [#61163](https://github.com/ClickHouse/ClickHouse/pull/61163) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* ファイルシステムキャッシュの動的なサイズ変更を高速化しました。 [#61723](https://github.com/ClickHouse/ClickHouse/pull/61723) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `INVALIDATE_QUERY` を使用する Dictionary のソースが、起動時に 2 回再読み込みされることがなくなりました。 [#62050](https://github.com/ClickHouse/ClickHouse/pull/62050) ([vdimir](https://github.com/vdimir)). +* 主キーを含むブール式の後に冗長な `= 1` または `= 0` が追加されると、プライマリインデックスが使用されなくなる問題を修正しました。例えば、`SELECT * FROM WHERE IN () = 1` および `SELECT * FROM
    WHERE NOT IN () = 0` の両方が、本来はプライマリインデックスを利用できるにもかかわらず全表スキャンを実行していました。 [#62142](https://github.com/ClickHouse/ClickHouse/pull/62142) ([josh-hildred](https://github.com/josh-hildred)). +* `system.remote_data_paths` から結果全体を 1 つの大きな chunk に蓄積するのではなく、chunk のストリームを返すようにしました。これにより、メモリ消費を抑えつつ、途中経過の表示やクエリのキャンセルが可能になります。 [#62613](https://github.com/ClickHouse/ClickHouse/pull/62613) ([Alexander Gololobov](https://github.com/davenger)). + +#### 実験的機能 {#experimental-feature-6} + +* `azure_allow_parallel_part_upload` 設定により、Azure Blob Storage 向けの並列書き込みバッファをサポートしました。[#62534](https://github.com/ClickHouse/ClickHouse/pull/62534) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)) +* Userspace page cache が静的 Web ストレージ(`disk(type = web)`)でも動作するようになりました。クライアント設定 `use_page_cache_for_disks_without_file_cache=1` を使用して有効化できます。[#61911](https://github.com/ClickHouse/ClickHouse/pull/61911) ([Michael Kolupaev](https://github.com/al13n321)) +* `Variant` 型で Bool および数値のバリアント値を疑わしいものとして扱わないようにしました。[#61999](https://github.com/ClickHouse/ClickHouse/pull/61999) ([Kruglov Pavel](https://github.com/Avogar)) +* パース処理を用いて、String から `Variant` への変換を改善しました。[#62005](https://github.com/ClickHouse/ClickHouse/pull/62005) ([Kruglov Pavel](https://github.com/Avogar)) +* JSONExtract 関数での `Variant` のサポートを追加しました。[#62014](https://github.com/ClickHouse/ClickHouse/pull/62014) ([Kruglov Pavel](https://github.com/Avogar)) +* 型 `Variant` を比較可能としてマークし、主キーで使用できるようにしました。[#62693](https://github.com/ClickHouse/ClickHouse/pull/62693) ([Kruglov Pavel](https://github.com/Avogar)) + +#### 改善 {#improvement-8} + +* 利便性のため、`SELECT * FROM numbers()` は `SELECT * FROM system.numbers` と同様に、制限なしで動作します。 [#61969](https://github.com/ClickHouse/ClickHouse/pull/61969) ([YenchangChan](https://github.com/YenchangChan)). +* Kafka 設定に対して、コンシューマー用/プロデューサー用の個別タグを導入しました。これにより、コンシューマー用プロパティがプロデューサーインスタンスに、またその逆が指定されている場合に、librdkafka(多くのバグを含む品質の低い C ライブラリ)から出力される警告(例: `Configuration property session.timeout.ms is a consumer property and will be ignored by this producer instance`)を回避できます。Closes: [#58983](https://github.com/ClickHouse/ClickHouse/issues/58983)。[#58956](https://github.com/ClickHouse/ClickHouse/pull/58956)([Aleksandr Musorin](https://github.com/AVMusorin))。 +* 関数 `date_diff` と `age` は、結果をマイクロ秒精度ではなくナノ秒精度で計算するようになりました。また、これらの関数では `unit` パラメータの値として `nanosecond`(または `nanoseconds`、`ns`)も指定できるようになりました。 [#61409](https://github.com/ClickHouse/ClickHouse/pull/61409) ([Austin Kothig](https://github.com/kothiga))。 +* `date_trunc` にナノ秒、マイクロ秒、ミリ秒単位を追加しました。 [#62335](https://github.com/ClickHouse/ClickHouse/pull/62335) ([Misz606](https://github.com/Misz606)). +* 証明書の再読み込み時に証明書チェーンも再読み込みするようにしました。 [#61671](https://github.com/ClickHouse/ClickHouse/pull/61671) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* そのレプリカパスにアクティブなレプリカが存在する場合はテーブルを `ATTACH` できないようにして、エラー [#60432](https://github.com/ClickHouse/ClickHouse/issues/60432) の発生を防ぐようにしました。 [#61876](https://github.com/ClickHouse/ClickHouse/pull/61876) ([Arthur Passos](https://github.com/arthurpassos))。 +* `clickhouse-local` において `input` のサポートを実装しました。 [#61923](https://github.com/ClickHouse/ClickHouse/pull/61923) ([Azat Khuzhin](https://github.com/azat)). +* `strictness` が `ANY` の `Join` テーブルエンジンは、再読み込み後も結果が一貫するようになりました。同じキーを持つ複数の行が挿入された場合、最初の行が優先されるようになりました(以前は、テーブルのロード時にランダムに選択されていました)。close [#51027](https://github.com/ClickHouse/ClickHouse/issues/51027)。 [#61972](https://github.com/ClickHouse/ClickHouse/pull/61972) ([vdimir](https://github.com/vdimir))。 +* Apache Arrow スキーマから Nullable カラム型を自動推論します。 [#61984](https://github.com/ClickHouse/ClickHouse/pull/61984) ([Maksim Kita](https://github.com/kitaisreal)). +* 集計時の集約状態の並列マージをキャンセルできるようにしました。例: `uniqExact`。 [#61992](https://github.com/ClickHouse/ClickHouse/pull/61992) ([Maksim Kita](https://github.com/kitaisreal))。 +* `system.keywords` をサジェストの生成に使用し、内部処理のあらゆる箇所でも同様に利用するようにしました。 [#62000](https://github.com/ClickHouse/ClickHouse/pull/62000) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* `ReplicatedMergeTree` に対する `OPTIMIZE FINAL` は、現在進行中のマージ処理が完了するのを待ってから、最終マージのスケジューリングを再試行するようになりました。これにより、通常の `MergeTree` の動作により近い挙動になります。 [#62067](https://github.com/ClickHouse/ClickHouse/pull/62067) ([Nikita Taranov](https://github.com/nickitat)). +* Hive のテキストファイルからデータを読み取る際、これまでは Hive テキストファイルの最初の行を使って入力フィールド数をその行のフィールド数に合わせて調整していましたが、最初の行のフィールド数が Hive テーブルで定義されたカラム数と一致しない場合がありました。例えば Hive テーブルが 3 カラムを持つように `test_tbl(a Int32, b Int32, c Int32)` と定義されているのに、テキストファイルの最初の行にはフィールドが 2 つしかない場合です。この状況では、入力フィールド数は 2 にリサイズされてしまい、その後の行に 3 フィールドが存在しても 3 つ目のフィールドが読み取られず、デフォルト値の 0 が設定されてしまいますが、これは正しくありませんでした。[#62086](https://github.com/ClickHouse/ClickHouse/pull/62086) ([KevinyhZou](https://github.com/KevinyhZou)). +* `CREATE AS` はテーブルコメントをコピーします。 [#62117](https://github.com/ClickHouse/ClickHouse/pull/62117) ([Pablo Marcos](https://github.com/pamarcos)). +* zookeeper テーブルにクエリの進行状況を追加しました。 [#62152](https://github.com/ClickHouse/ClickHouse/pull/62152) ([JackyWoo](https://github.com/JackyWoo))。 +* トレースコレクター(Real および CPU)をサーバー全体で有効化できるようにしました。 [#62189](https://github.com/ClickHouse/ClickHouse/pull/62189) ([alesapin](https://github.com/alesapin)). +* 設定 `lightweight_deletes_sync` を追加しました(デフォルト値: 2 - すべてのレプリカが同期的に完了するまで待機)。この設定は `mutations_sync` に似ていますが、論理削除の動作のみに影響します。 [#62195](https://github.com/ClickHouse/ClickHouse/pull/62195) ([Anton Popov](https://github.com/CurtizJ)). +* カスタム設定の値を解析する際に、ブール値と整数を区別するようにしました。`SET custom_a = true; SET custom_b = 1;` [#62206](https://github.com/ClickHouse/ClickHouse/pull/62206)([Vitaly Baranov](https://github.com/vitlibar))。 +* AWS Private Link Interface エンドポイントを介した S3 アクセスに対応しました。 [#60021](https://github.com/ClickHouse/ClickHouse/issues/60021)、[#31074](https://github.com/ClickHouse/ClickHouse/issues/31074)、[#53761](https://github.com/ClickHouse/ClickHouse/issues/53761) をクローズしました。 [#62208](https://github.com/ClickHouse/ClickHouse/pull/62208) ([Arthur Passos](https://github.com/arthurpassos))。 +* UDF 用のディレクトリが存在しない場合に、clickhouse-client がそれを作成しないようにしました。これにより [#59597](https://github.com/ClickHouse/ClickHouse/issues/59597) が解決されました。[#62366](https://github.com/ClickHouse/ClickHouse/pull/62366)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* クエリキャッシュは、system テーブル(`system.*`、`information_schema.*`、`INFORMATION_SCHEMA.*`)に対するクエリ結果をキャッシュしなくなりました。 [#62376](https://github.com/ClickHouse/ClickHouse/pull/62376) ([Robert Schulze](https://github.com/rschu1ze)). +* `MOVE PARTITION TO TABLE` クエリは、パーツ数の上限を超えることを避けるために、実行が遅延されたり、`TOO_MANY_PARTS` 例外をスローしたりする場合があります。同じ `INSERT` クエリに対して適用されるものと同一の設定および制限が適用されます(`max_parts_in_total`、`parts_to_delay_insert`、`parts_to_throw_insert`、`inactive_parts_to_throw_insert`、`inactive_parts_to_delay_insert`、`max_avg_part_size_for_too_many_parts`、`min_delay_to_insert_ms` および `max_delay_to_insert` の各設定を参照)。 [#62420](https://github.com/ClickHouse/ClickHouse/pull/62420) ([Sergei Trifonov](https://github.com/serxa)). +* macOS におけるデフォルトのインストールディレクトリを `/usr/bin` から `/usr/local/bin` に変更しました。これは、macOS El Capitan (2015) で導入された Apple の System Integrity Protection により、`sudo` を使用しても `/usr/bin` への書き込みを行えないためです。 [#62489](https://github.com/ClickHouse/ClickHouse/pull/62489) ([haohang](https://github.com/yokofly))。 +* `transform` 関数が常に最初に一致した値を返すようにしました。 [#62518](https://github.com/ClickHouse/ClickHouse/pull/62518) ([Raúl Marín](https://github.com/Algunenano))。 +* システムテーブル `blob_storage_log` に不足していた `hostname` カラムを追加しました。 [#62456](https://github.com/ClickHouse/ClickHouse/pull/62456) ([Jayme Bird](https://github.com/jaymebrd)). +* 他の system テーブルとの整合性を保つため、`system.backup_log` にカラム `event_time` が追加されました。 [#62541](https://github.com/ClickHouse/ClickHouse/pull/62541) ([Jayme Bird](https://github.com/jaymebrd))。 +* テーブル `system.backup_log` は、他の `_log` テーブルエンジンと同様に、`event_date, event_time` を「default」ソートキーとして持つようになりました。 [#62667](https://github.com/ClickHouse/ClickHouse/pull/62667) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* `RESTORE` 実行時にテーブルの DEFAULT 式が評価されないようにしました。 [#62601](https://github.com/ClickHouse/ClickHouse/pull/62601) ([Vitaly Baranov](https://github.com/vitlibar)). +* S3 ストレージおよびバックアップにも、S3 ディスクと同じデフォルトの keep-alive 設定が必要になりました。 [#62648](https://github.com/ClickHouse/ClickHouse/pull/62648) ([Sema Checherinda](https://github.com/CheSema)). +* 単一のテーブルを利用する複数のコンシューマからのログメッセージを識別できるようにするため、多数のバグで悪名高い C ライブラリである librdkafka のクライアント識別子をログメッセージに追加しました。 [#62813](https://github.com/ClickHouse/ClickHouse/pull/62813) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Replicated データベースの ZooKeeper パスで `{uuid}` および `{database}` という特殊なマクロを使用できるようにしました。 [#62818](https://github.com/ClickHouse/ClickHouse/pull/62818) ([Vitaly Baranov](https://github.com/vitlibar))。 +* HTTP リクエストで、別の認証スキームを使用する場合でも quota key を利用できるようにしました。 [#62842](https://github.com/ClickHouse/ClickHouse/pull/62842) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `clickhouse client` と `clickhouse local` におけるコマンドライン引数 `--help` の出力をより簡潔にしました。これまでの詳細な出力は、今後は `--help --verbose` によって生成されます。 [#62973](https://github.com/ClickHouse/ClickHouse/pull/62973) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* `log_bin_use_v1_row_events` は MySQL 8.3 で削除されたため、それに対応して実験的な `MaterializedMySQL` エンジンを調整しました [#60479](https://github.com/ClickHouse/ClickHouse/issues/60479)。[#63101](https://github.com/ClickHouse/ClickHouse/pull/63101)([Eugene Klimov](https://github.com/Slach))。作者: Nikolay Yankin。 + +#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement-4} + +* Rust の依存関係をベンダリングし、C++ と同様に、Rust コード(ちょっとした遊び心のある機能に使っているもの)を適切な方法でビルドできるようにした。 [#62297](https://github.com/ClickHouse/ClickHouse/pull/62297) ([Raúl Marín](https://github.com/Algunenano))。 +* ClickHouse は現在、BoringSSL の代わりに OpenSSL 3.2 を使用しています。 [#59870](https://github.com/ClickHouse/ClickHouse/pull/59870) ([Robert Schulze](https://github.com/rschu1ze))。なお、OpenSSL は一般的に、(私たちがパッチを当てる必要があった、サニタイザによるレポートがゼロではないことや、生成ファイルを伴う複雑なビルドシステムなど)エンジニアリング面の文化は劣るものの、互換性は優れています。 +* ストレステストでは 2 分の 1 の確率で DROP クエリを無視し、Memory/JOIN テーブルのアップグレードチェックでは DROP を無視する代わりに TRUNCATE を使用するようにしました。 [#61476](https://github.com/ClickHouse/ClickHouse/pull/61476) ([Kruglov Pavel](https://github.com/Avogar)). +* Keeper の Docker イメージから /etc/clickhouse-keeper および /var/log/clickhouse-keeper のボリュームを削除しました。 [#61683](https://github.com/ClickHouse/ClickHouse/pull/61683) ([Tristan](https://github.com/Tristan971)). +* Analyzerがデフォルトで有効になったことで関連性を失ったすべての問題に対するテストを追加。Closes: [#55794](https://github.com/ClickHouse/ClickHouse/issues/55794) Closes: [#49472](https://github.com/ClickHouse/ClickHouse/issues/49472) Closes: [#44414](https://github.com/ClickHouse/ClickHouse/issues/44414) Closes: [#13843](https://github.com/ClickHouse/ClickHouse/issues/13843) Closes: [#55803](https://github.com/ClickHouse/ClickHouse/issues/55803) Closes: [#48308](https://github.com/ClickHouse/ClickHouse/issues/48308) Closes: [#45535](https://github.com/ClickHouse/ClickHouse/issues/45535) Closes: [#44365](https://github.com/ClickHouse/ClickHouse/issues/44365) Closes: [#44153](https://github.com/ClickHouse/ClickHouse/issues/44153) Closes: [#42399](https://github.com/ClickHouse/ClickHouse/issues/42399) Closes: [#27115](https://github.com/ClickHouse/ClickHouse/issues/27115) Closes: [#23162](https://github.com/ClickHouse/ClickHouse/issues/23162) Closes: [#15395](https://github.com/ClickHouse/ClickHouse/issues/15395) Closes: [#15411](https://github.com/ClickHouse/ClickHouse/issues/15411) Closes: [#14978](https://github.com/ClickHouse/ClickHouse/issues/14978) Closes: [#17319](https://github.com/ClickHouse/ClickHouse/issues/17319) Closes: [#11813](https://github.com/ClickHouse/ClickHouse/issues/11813) Closes: [#13210](https://github.com/ClickHouse/ClickHouse/issues/13210) Closes: [#23053](https://github.com/ClickHouse/ClickHouse/issues/23053) Closes: [#37729](https://github.com/ClickHouse/ClickHouse/issues/37729) Closes: [#32639](https://github.com/ClickHouse/ClickHouse/issues/32639) Closes: [#9954](https://github.com/ClickHouse/ClickHouse/issues/9954) Closes: [#41964](https://github.com/ClickHouse/ClickHouse/issues/41964) Closes: [#54317](https://github.com/ClickHouse/ClickHouse/issues/54317) Closes: [#7520](https://github.com/ClickHouse/ClickHouse/issues/7520) Closes: [#36973](https://github.com/ClickHouse/ClickHouse/issues/36973) Closes: [#40955](https://github.com/ClickHouse/ClickHouse/issues/40955) Closes: [#19687](https://github.com/ClickHouse/ClickHouse/issues/19687) Closes: [#23104](https://github.com/ClickHouse/ClickHouse/issues/23104) Closes: [#21584](https://github.com/ClickHouse/ClickHouse/issues/21584) Closes: [#23344](https://github.com/ClickHouse/ClickHouse/issues/23344) Closes: [#22627](https://github.com/ClickHouse/ClickHouse/issues/22627) Closes: [#10276](https://github.com/ClickHouse/ClickHouse/issues/10276) Closes: [#19687](https://github.com/ClickHouse/ClickHouse/issues/19687) Closes: [#4567](https://github.com/ClickHouse/ClickHouse/issues/4567) Closes: [#17710](https://github.com/ClickHouse/ClickHouse/issues/17710) Closes: [#11068](https://github.com/ClickHouse/ClickHouse/issues/11068) Closes: [#24395](https://github.com/ClickHouse/ClickHouse/issues/24395) Closes: [#23416](https://github.com/ClickHouse/ClickHouse/issues/23416) Closes: [#23162](https://github.com/ClickHouse/ClickHouse/issues/23162) Closes: [#25655](https://github.com/ClickHouse/ClickHouse/issues/25655) Closes: [#11757](https://github.com/ClickHouse/ClickHouse/issues/11757) Closes: [#6571](https://github.com/ClickHouse/ClickHouse/issues/6571) Closes: [#4432](https://github.com/ClickHouse/ClickHouse/issues/4432) Closes: [#8259](https://github.com/ClickHouse/ClickHouse/issues/8259) Closes: [#9233](https://github.com/ClickHouse/ClickHouse/issues/9233) Closes: [#14699](https://github.com/ClickHouse/ClickHouse/issues/14699) Closes: [#27068](https://github.com/ClickHouse/ClickHouse/issues/27068) Closes: [#28687](https://github.com/ClickHouse/ClickHouse/issues/28687) Closes: [#28777](https://github.com/ClickHouse/ClickHouse/issues/28777) Closes: [#29734](https://github.com/ClickHouse/ClickHouse/issues/29734) Closes: [#61238](https://github.com/ClickHouse/ClickHouse/issues/61238) Closes: [#33825](https://github.com/ClickHouse/ClickHouse/issues/33825) Closes: [#35608](https://github.com/ClickHouse/ClickHouse/issues/35608) Closes: [#29838](https://github.com/ClickHouse/ClickHouse/issues/29838) Closes: [#35652](https://github.com/ClickHouse/ClickHouse/issues/35652) Closes: [#36189](https://github.com/ClickHouse/ClickHouse/issues/36189) Closes: [#39634](https://github.com/ClickHouse/ClickHouse/issues/39634) Closes: [#47432](https://github.com/ClickHouse/ClickHouse/issues/47432) Closes: [#54910](https://github.com/ClickHouse/ClickHouse/issues/54910) Closes: [#57321](https://github.com/ClickHouse/ClickHouse/issues/57321) Closes: [#59154](https://github.com/ClickHouse/ClickHouse/issues/59154) Closes: [#61014](https://github.com/ClickHouse/ClickHouse/issues/61014) Closes: [#61950](https://github.com/ClickHouse/ClickHouse/issues/61950) Closes: [#55647](https://github.com/ClickHouse/ClickHouse/issues/55647) Closes: [#61947](https://github.com/ClickHouse/ClickHouse/issues/61947). [#62185](https://github.com/ClickHouse/ClickHouse/pull/62185) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* アナライザーによって既に不要になった、または修正された issue に対するテストをさらに追加しました。クローズ: [#58985](https://github.com/ClickHouse/ClickHouse/issues/58985) クローズ: [#59549](https://github.com/ClickHouse/ClickHouse/issues/59549) クローズ: [#36963](https://github.com/ClickHouse/ClickHouse/issues/36963) クローズ: [#39453](https://github.com/ClickHouse/ClickHouse/issues/39453) クローズ: [#56521](https://github.com/ClickHouse/ClickHouse/issues/56521) クローズ: [#47552](https://github.com/ClickHouse/ClickHouse/issues/47552) クローズ: [#56503](https://github.com/ClickHouse/ClickHouse/issues/56503) クローズ: [#59101](https://github.com/ClickHouse/ClickHouse/issues/59101) クローズ: [#50271](https://github.com/ClickHouse/ClickHouse/issues/50271) クローズ: [#54954](https://github.com/ClickHouse/ClickHouse/issues/54954) クローズ: [#56466](https://github.com/ClickHouse/ClickHouse/issues/56466) クローズ: [#11000](https://github.com/ClickHouse/ClickHouse/issues/11000) クローズ: [#10894](https://github.com/ClickHouse/ClickHouse/issues/10894) クローズ: [https://github.com/ClickHouse/ClickHouse/issues/448](https://github.com/ClickHouse/ClickHouse/issues/448) クローズ: [#8030](https://github.com/ClickHouse/ClickHouse/issues/8030) クローズ: [#32139](https://github.com/ClickHouse/ClickHouse/issues/32139) クローズ: [#47288](https://github.com/ClickHouse/ClickHouse/issues/47288) クローズ: [#50705](https://github.com/ClickHouse/ClickHouse/issues/50705) クローズ: [#54511](https://github.com/ClickHouse/ClickHouse/issues/54511) クローズ: [#55466](https://github.com/ClickHouse/ClickHouse/issues/55466) クローズ: [#58500](https://github.com/ClickHouse/ClickHouse/issues/58500) クローズ: [#39923](https://github.com/ClickHouse/ClickHouse/issues/39923) クローズ: [#39855](https://github.com/ClickHouse/ClickHouse/issues/39855) クローズ: [#4596](https://github.com/ClickHouse/ClickHouse/issues/4596) クローズ: [#47422](https://github.com/ClickHouse/ClickHouse/issues/47422) クローズ: [#33000](https://github.com/ClickHouse/ClickHouse/issues/33000) クローズ: [#14739](https://github.com/ClickHouse/ClickHouse/issues/14739) クローズ: [#44039](https://github.com/ClickHouse/ClickHouse/issues/44039) クローズ: [#8547](https://github.com/ClickHouse/ClickHouse/issues/8547) クローズ: [#22923](https://github.com/ClickHouse/ClickHouse/issues/22923) クローズ: [#23865](https://github.com/ClickHouse/ClickHouse/issues/23865) クローズ: [#29748](https://github.com/ClickHouse/ClickHouse/issues/29748) クローズ: [#4222](https://github.com/ClickHouse/ClickHouse/issues/4222)。 [#62457](https://github.com/ClickHouse/ClickHouse/pull/62457) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* OpenSSL が動的リンクされている場合のビルドエラーを修正しました(注: これは一般的にはサポートされておらず、IBM の s390x プラットフォームでのみ必要です)。 [#62888](https://github.com/ClickHouse/ClickHouse/pull/62888) ([Harry Lee](https://github.com/HarryLeeIBM)). + +#### バグ修正(公式安定版リリースにおけるユーザーに見える不具合) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-6} + +* クォーラム挿入トランザクションを取り消す際に発生していた論理エラーを修正。 [#61953](https://github.com/ClickHouse/ClickHouse/pull/61953) ([Han Fei](https://github.com/hanfei1991)). +* FILTER 句を伴う COUNT(*) 使用時のパーサーエラーを修正 [#61357](https://github.com/ClickHouse/ClickHouse/pull/61357) ([Duc Canh Le](https://github.com/canhld94))。 +* `group_by_use_nulls` と grouping sets、analyzer、materialize/constant の組み合わせ時に発生する論理エラーを修正。 [#61567](https://github.com/ClickHouse/ClickHouse/pull/61567) ([Kruglov Pavel](https://github.com/Avogar)). +* 移動済みパーツを削除する前にマージをキャンセルする [#61610](https://github.com/ClickHouse/ClickHouse/pull/61610) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Apache Arrow で発生していた異常終了を修正 [#61720](https://github.com/ClickHouse/ClickHouse/pull/61720) ([Kruglov Pavel](https://github.com/Avogar)). +* 特定のディスクに対応する正しいパス上で `convert_to_replicated` フラグを検索するようにしました [#61769](https://github.com/ClickHouse/ClickHouse/pull/61769) ([Kirill](https://github.com/kirillgarbar)). +* distributed_foreground_insert/distributed_background_insert_batch において発生する可能性のある接続のデータ競合を修正 [#61867](https://github.com/ClickHouse/ClickHouse/pull/61867) ([Azat Khuzhin](https://github.com/azat))。 +* 行入力フォーマットでスキップ可能にするため、CANNOT_PARSE_ESCAPE_SEQUENCE エラーをパースエラーとしてマークするようにしました [#61883](https://github.com/ClickHouse/ClickHouse/pull/61883) ([Kruglov Pavel](https://github.com/Avogar))。 +* http_wait_end_of_query が使用されている場合の HTTP 出力フォーマットにおける例外メッセージの書き出しを修正しました [#61951](https://github.com/ClickHouse/ClickHouse/pull/61951) ([Kruglov Pavel](https://github.com/Avogar))。 +* LowCardinality と JSONExtact 関数の併用時の問題を正しく修正しました [#61957](https://github.com/ClickHouse/ClickHouse/pull/61957) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Row Policy に式が設定されていない場合に Engine Merge がクラッシュする不具合 [#61971](https://github.com/ClickHouse/ClickHouse/pull/61971) ([Ilya Golshtein](https://github.com/ilejn)). +* WriteBufferAzureBlobStorage のデストラクタで発生する未処理例外を修正 [#61988](https://github.com/ClickHouse/ClickHouse/pull/61988) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)). +* ReplicatedMergeTree でカラム定義のない CREATE TABLE 文の処理を修正 [#62040](https://github.com/ClickHouse/ClickHouse/pull/62040) ([Azat Khuzhin](https://github.com/azat))。 +* 複合シャーディングキー使用時の `optimize_skip_unused_shards_rewrite_in` を修正 [#62047](https://github.com/ClickHouse/ClickHouse/pull/62047) ([Azat Khuzhin](https://github.com/azat))。 +* ReadWriteBufferFromHTTP がリダイレクト時に Host ヘッダーを正しく設定するよう修正 [#62068](https://github.com/ClickHouse/ClickHouse/pull/62068) ([Sema Checherinda](https://github.com/CheSema)). +* 外部テーブルでデータ型 `Bool` をパースできない問題を修正 [#62115](https://github.com/ClickHouse/ClickHouse/pull/62115) ([Duc Canh Le](https://github.com/canhld94))。 +* Analyzer: クエリパラメータ解決の不具合を修正 [#62186](https://github.com/ClickHouse/ClickHouse/pull/62186) ([Dmitry Novik](https://github.com/novikd)). +* 読み取り専用モードでのパーツ復元を修正 [#62207](https://github.com/ClickHouse/ClickHouse/pull/62207) ([Vitaly Baranov](https://github.com/vitlibar)). +* SQL UDF を含む索引定義でクラッシュが発生する問題を修正 [#62225](https://github.com/ClickHouse/ClickHouse/pull/62225) ([vdimir](https://github.com/vdimir))。 +* analyzer 使用時に generateRandom で NULL が乱数シードとして使用される問題を修正。 [#62248](https://github.com/ClickHouse/ClickHouse/pull/62248) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Distinct Transform で const カラムを正しく扱うようにしました [#62250](https://github.com/ClickHouse/ClickHouse/pull/62250) ([Antonio Andelic](https://github.com/antonio2368))。 +* FINAL 修飾子付きクエリのパーツスプリッタを修正しました [#62268](https://github.com/ClickHouse/ClickHouse/pull/62268) ([Nikita Taranov](https://github.com/nickitat)). +* Analyzer: パラメータ化された VIEW に対するエイリアスの解決を修正 [#62274](https://github.com/ClickHouse/ClickHouse/pull/62274) ([Dmitry Novik](https://github.com/novikd))。 +* Analyzer: 親スコープからの名前解決の不具合を修正 [#62281](https://github.com/ClickHouse/ClickHouse/pull/62281) ([Dmitry Novik](https://github.com/novikd)). +* Nullable な非ネイティブ数値カラムに対する argMax を修正 [#62285](https://github.com/ClickHouse/ClickHouse/pull/62285) ([Raúl Marín](https://github.com/Algunenano)). +* Ordinary データベースにおける materialized view の BACKUP および RESTORE の不具合を修正 [#62295](https://github.com/ClickHouse/ClickHouse/pull/62295) ([Vitaly Baranov](https://github.com/vitlibar))。 +* Context 内のスカラー値で発生するデータレースを修正 [#62305](https://github.com/ClickHouse/ClickHouse/pull/62305) ([Kruglov Pavel](https://github.com/Avogar))。 +* materialized view のプライマリキーを修正 [#62319](https://github.com/ClickHouse/ClickHouse/pull/62319) ([Murat Khairulin](https://github.com/mxwell)). +* マルチスレッド挿入パイプライン非対応のテーブルに対しては構築しないようにしました [#62333](https://github.com/ClickHouse/ClickHouse/pull/62333) ([vdimir](https://github.com/vdimir)). +* 分散クエリにおける位置引数の処理を行うアナライザーを修正 [#62362](https://github.com/ClickHouse/ClickHouse/pull/62362) ([flynn](https://github.com/ucasfl))。 +* analyzer における Merge エンジンでの additional_table_filters によるフィルタープッシュダウンを修正 [#62398](https://github.com/ClickHouse/ClickHouse/pull/62398) ([Kruglov Pavel](https://github.com/Avogar))。 +* analyzer を使用する GLOBAL IN テーブルクエリを修正。 [#62409](https://github.com/ClickHouse/ClickHouse/pull/62409) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* パーティション書き込み時に S3/HDFS/Azure 向けエンジンで `truncate_on_insert` / `create_new_file_on_insert` 設定が正しく反映されるようにしました [#62425](https://github.com/ClickHouse/ClickHouse/pull/62425) ([Kruglov Pavel](https://github.com/Avogar)). +* AzureBlobStorage 用のバックアップ復元パスを修正。[#62447](https://github.com/ClickHouse/ClickHouse/pull/62447) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni))。 +* SimpleSquashingChunksTransform を修正 [#62451](https://github.com/ClickHouse/ClickHouse/pull/62451)([Nikita Taranov](https://github.com/nickitat))。 +* ネストされたラムダのキャプチャを修正。 [#62462](https://github.com/ClickHouse/ClickHouse/pull/62462) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* protobuf の再帰型を読み取る際のクラッシュを回避 [#62506](https://github.com/ClickHouse/ClickHouse/pull/62506) ([Raúl Marín](https://github.com/Algunenano))。 +* 1つのパーティションを同一パーティションへ移動する操作に関するバグを修正 [#62524](https://github.com/ClickHouse/ClickHouse/pull/62524) ([helifu](https://github.com/helifu))。 +* LIMIT におけるスカラーサブクエリの不具合を修正 [#62567](https://github.com/ClickHouse/ClickHouse/pull/62567) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* 実験的かつサポート対象外で、そもそもあまり気に入っていない Hive エンジンで発生していたセグメンテーションフォールトを修正しました。 [#62578](https://github.com/ClickHouse/ClickHouse/pull/62578) ([Nikolay Degterinsky](https://github.com/evillique)). +* groupArraySorted 関数におけるメモリリークを修正 [#62597](https://github.com/ClickHouse/ClickHouse/pull/62597) ([Antonio Andelic](https://github.com/antonio2368))。 +* largestTriangleThreeBuckets 関数におけるクラッシュを修正 [#62646](https://github.com/ClickHouse/ClickHouse/pull/62646) ([Raúl Marín](https://github.com/Algunenano))。 +* より大きな分解能に対する tumble[Start,End] および hop[Start,End] の動作を修正 [#62705](https://github.com/ClickHouse/ClickHouse/pull/62705)([Jordi Villar](https://github.com/jrdi))。 +* argMin/argMax コンビネータの状態を修正しました [#62708](https://github.com/ClickHouse/ClickHouse/pull/62708) ([Raúl Marín](https://github.com/Algunenano))。 +* キャッシュロック競合の最適化により一時データのキャッシュが失敗していた問題を修正 [#62715](https://github.com/ClickHouse/ClickHouse/pull/62715) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* `mergeTreeIndex` 関数で発生するクラッシュを修正 [#62762](https://github.com/ClickHouse/ClickHouse/pull/62762) ([Anton Popov](https://github.com/CurtizJ)). +* 修正: 更新: ネストされたマテリアライズドカラム: サイズチェックの不具合を修正 [#62773](https://github.com/ClickHouse/ClickHouse/pull/62773) ([Eliot Hautefeuille](https://github.com/hileef)). +* analyzer を使用した CTE において FINAL 修飾子が適用されない問題を修正 [#62811](https://github.com/ClickHouse/ClickHouse/pull/62811) ([Duc Canh Le](https://github.com/canhld94))。 +* `JSON` フォーマットと HTTP インターフェースの使用時に `formatRow` 関数で発生するクラッシュを修正 [#62840](https://github.com/ClickHouse/ClickHouse/pull/62840) ([Anton Popov](https://github.com/CurtizJ))。 +* Azure: エンドポイントオブジェクトから最終的な URL を組み立てる処理を修正 [#62850](https://github.com/ClickHouse/ClickHouse/pull/62850) ([Daniel Pozo Escalona](https://github.com/danipozo)). +* GCD コーデックの不具合を修正 [#62853](https://github.com/ClickHouse/ClickHouse/pull/62853) ([Nikita Taranov](https://github.com/nickitat))。 +* ハイパーレクタングルにおける LowCardinality(Nullable) キーの不具合を修正 [#62866](https://github.com/ClickHouse/ClickHouse/pull/62866)([Amos Bird](https://github.com/amosbird))。 +* 入力値が UInt32 を超える場合に、joda 構文使用時の fromUnixtimestamp が正しく動作するよう修正 [#62901](https://github.com/ClickHouse/ClickHouse/pull/62901) ([KevinyhZou](https://github.com/KevinyhZou))。 +* sum(Nullable) に対して optimize_rewrite_aggregate_function_with_if を無効化しました [#62912](https://github.com/ClickHouse/ClickHouse/pull/62912) ([Raúl Marín](https://github.com/Algunenano))。 +* ソーステーブル側のカラム型が異なる StorageBuffer に対する PREWHERE を修正。 [#62916](https://github.com/ClickHouse/ClickHouse/pull/62916) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* キャッシュキー用ディレクトリの作成失敗時の処理を一時データキャッシュが誤って行っていた問題を修正しました [#62925](https://github.com/ClickHouse/ClickHouse/pull/62925) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* gRPC: IPv6 ピアとの接続時に発生するクラッシュを修正 [#62978](https://github.com/ClickHouse/ClickHouse/pull/62978) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* レプリケートフェッチ中に発生する可能性のある CHECKSUM_DOESNT_MATCH(およびその他)を修正 [#62987](https://github.com/ClickHouse/ClickHouse/pull/62987) ([Azat Khuzhin](https://github.com/azat))。 +* キャッシュ内の一時データに関連して発生する未捕捉例外による異常終了を修正しました [#62998](https://github.com/ClickHouse/ClickHouse/pull/62998)([Kseniia Sumarokova](https://github.com/kssenii))。 +* `optimize_rewrite_aggregate_function_with_if` の暗黙的な型変換を修正 [#62999](https://github.com/ClickHouse/ClickHouse/pull/62999) ([Raúl Marín](https://github.com/Algunenano)). +* ~RestorerFromBackup で未処理の例外が発生する問題を修正 [#63040](https://github.com/ClickHouse/ClickHouse/pull/63040) ([Vitaly Baranov](https://github.com/vitlibar))。 +* セカンダリクエリの GROUP BY キーからサーバー定数を削除しないようにしました。[#63047](https://github.com/ClickHouse/ClickHouse/pull/63047) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* abs 関数の単調性を誤判定していた問題を修正 [#63097](https://github.com/ClickHouse/ClickHouse/pull/63097) ([Duc Canh Le](https://github.com/canhld94))。 +* MongoDB エンジンでの SSL ハンドシェイクに使用するサーバー名を設定 [#63122](https://github.com/ClickHouse/ClickHouse/pull/63122)([Alexander Gololobov](https://github.com/davenger))。 +* MongoDB ワイヤプロトコルのバージョンチェックにおいて、"config" の代わりにユーザーが指定した db を使用するように変更 [#63126](https://github.com/ClickHouse/ClickHouse/pull/63126) ([Alexander Gololobov](https://github.com/davenger))。 + +### ClickHouse 24.3 LTS リリース(2024-03-27)。[プレゼンテーション](https://presentations.clickhouse.com/2024-release-24.3/)、[動画](https://www.youtube.com/watch?v=FGhdXXXTuTg) {#a-id243a-clickhouse-release-243-lts-2024-03-27} + + + +#### アップグレード時の注意事項 {#upgrade-notes-1} + +* `allow_experimental_analyzer` SETTING はデフォルトで有効になっており、クエリ解析を互換性と機能の完全性に優れた新しい実装に切り替えます。この "analyzer" 機能は、experimental ではなく beta と見なされます。従来の動作に戻したい場合は、`compatibility` を `24.2` に設定するか、`allow_experimental_analyzer` SETTING を無効にしてください。[YouTube の動画](https://www.youtube.com/watch?v=zhrOYQpgvkk)も参照してください。 +* ClickHouse は、通常は UTF-8 を想定しているものの、String データ型に任意のバイナリデータを格納できます。一方で、Parquet/ORC/Arrow の String は UTF-8 のみをサポートします。そのため、ClickHouse の String データ型に対応させる Arrow 側のデータ型として、String と Binary のどちらを使うかを選択できます。これは `output_format_parquet_string_as_string`、`output_format_orc_string_as_string`、`output_format_arrow_string_as_string` という設定で制御されます。Binary のほうがより正確で互換性も高いものの、多くの場合、デフォルトで String を使用するほうがユーザーの期待に合致します。 +* 新しい ClickHouse バージョンでは、関数 `geoDistance`、`greatCircleDistance`、`greatCircleAngle` は、すべての引数が Float64 の場合、内部計算および戻り値の型として 64 ビットの倍精度浮動小数点数型を使用します。これにより [#58476](https://github.com/ClickHouse/ClickHouse/issues/58476) が解決されます。以前のバージョンでは、これらの関数は常に Float32 を使用していました。`geo_distance_returns_float64_on_float64_arguments` を `false` に設定するか、`compatibility` を `24.2` 以前に設定することで、従来の動作に切り替えることができます。[#61848](https://github.com/ClickHouse/ClickHouse/pull/61848)([Alexey Milovidov](https://github.com/alexey-milovidov))。[Geet Patel](https://github.com/geetptl) との共同作業。 +* メモリ内データパーツの旧式機能はバージョン 23.5 から非推奨となり、バージョン 23.10 以降はサポートされていません。今回、その残っていたコードが削除されました。[#55186](https://github.com/ClickHouse/ClickHouse/issues/55186) および [#45409](https://github.com/ClickHouse/ClickHouse/issues/45409) の継続対応です。メモリ内データパーツは、バージョン 23.5 より前かつ MergeTree テーブルに対して対応する SETTINGS を手動で指定して有効化した場合にのみ利用可能だったため、メモリ内データパーツを使用している可能性は低いと考えられます。メモリ内データパーツが存在するか確認するには、次のクエリを実行してください: `SELECT part_type, count() FROM system.parts GROUP BY part_type ORDER BY part_type`。メモリ内データパーツの利用を無効化するには、`ALTER TABLE ... MODIFY SETTING min_bytes_for_compact_part = DEFAULT, min_rows_for_compact_part = DEFAULT` を実行してください。古い ClickHouse リリースからアップグレードする前に、メモリ内データパーツが存在しないことをまず確認してください。もしメモリ内データパーツが存在する場合は、まずその利用を無効化し、メモリ内データパーツがなくなるまで待ってからアップグレードを続行してください。[#61127](https://github.com/ClickHouse/ClickHouse/pull/61127)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `system.zookeeper` テーブルにおいて、実際にはマイクロ秒単位で計測されていることを反映するため、カラム名を `duration_ms` から `duration_microseconds` に変更しました。 [#60774](https://github.com/ClickHouse/ClickHouse/pull/60774) ([Duc Canh Le](https://github.com/canhld94)). +* クエリレベルの設定 `async_insert` と `deduplicate_blocks_in_dependent_materialized_views` が同時に有効になっている場合、受信した INSERT クエリを拒否します。この動作は設定 `throw_if_deduplication_in_dependent_materialized_views_enabled_with_async_insert` によって制御されており、デフォルトで有効です。これは [https://github.com/ClickHouse/ClickHouse/pull/59699](https://github.com/ClickHouse/ClickHouse/pull/59699) の継続であり、[https://github.com/ClickHouse/ClickHouse/pull/59915](https://github.com/ClickHouse/ClickHouse/pull/59915) のブロックを解除するために必要な変更です。 [#60888](https://github.com/ClickHouse/ClickHouse/pull/60888) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* ユーティリティ `clickhouse-copier` は GitHub 上の別リポジトリに移動されました: [https://github.com/ClickHouse/copier](https://github.com/ClickHouse/copier)。バンドルには同梱されなくなりましたが、引き続き個別にダウンロードして利用できます。これにより次の Issue がクローズされます: [#60734](https://github.com/ClickHouse/ClickHouse/issues/60734) [#60540](https://github.com/ClickHouse/ClickHouse/issues/60540) [#60250](https://github.com/ClickHouse/ClickHouse/issues/60250) [#52917](https://github.com/ClickHouse/ClickHouse/issues/52917) [#51140](https://github.com/ClickHouse/ClickHouse/issues/51140) [#47517](https://github.com/ClickHouse/ClickHouse/issues/47517) [#47189](https://github.com/ClickHouse/ClickHouse/issues/47189) [#46598](https://github.com/ClickHouse/ClickHouse/issues/46598) [#40257](https://github.com/ClickHouse/ClickHouse/issues/40257) [#36504](https://github.com/ClickHouse/ClickHouse/issues/36504) [#35485](https://github.com/ClickHouse/ClickHouse/issues/35485) [#33702](https://github.com/ClickHouse/ClickHouse/issues/33702) [#26702](https://github.com/ClickHouse/ClickHouse/issues/26702)。 +* MySQL との互換性を高めるため、互換エイリアス `locate` はデフォルトで引数 `(needle, haystack[, start_pos])` を受け付けるようになりました。以前の挙動である `(haystack, needle, [, start_pos])` は、`function_locate_has_mysql_compatible_argument_order = 0` を設定することで復元できます。 [#61092](https://github.com/ClickHouse/ClickHouse/pull/61092) ([Robert Schulze](https://github.com/rschu1ze)). +* `MergeTree` テーブルの `ORDER BY` 句で `SimpleAggregateFunction` を使用することを、デフォルトで禁止しました(`AggregateFunction` と同様に禁止されますが、いずれも比較不能であることが理由です)。これらを許可するには `allow_suspicious_primary_key` を使用してください。 [#61399](https://github.com/ClickHouse/ClickHouse/pull/61399) ([Azat Khuzhin](https://github.com/azat)). +* `Ordinary` データベースエンジンは非推奨になりました。サーバーがこれを使用している場合、`clickhouse-client` で警告が表示されます。この変更により [#52229](https://github.com/ClickHouse/ClickHouse/issues/52229) がクローズされました。[#56942](https://github.com/ClickHouse/ClickHouse/pull/56942)([shabroo](https://github.com/shabroo))。 + +#### 新機能 {#new-feature-9} + +* バックアップの読み書きで `tar` をサポートしました(`zip` に加えて)。[#59535](https://github.com/ClickHouse/ClickHouse/pull/59535)([josh-hildred](https://github.com/josh-hildred))。 +* S3 Express バケットをサポートしました。[#59965](https://github.com/ClickHouse/ClickHouse/pull/59965)([Nikita Taranov](https://github.com/nickitat))。 +* 別のディスクからパーツをアタッチできるようにしました(ハードリンクではなくコピーを使用)。[#60112](https://github.com/ClickHouse/ClickHouse/pull/60112)([Unalian](https://github.com/Unalian))。 +* サイズ上限付きの `Memory` テーブルを追加しました。`min_bytes_to_keep, max_bytes_to_keep, min_rows_to_keep, max_rows_to_keep` の各設定で制御します。[#60612](https://github.com/ClickHouse/ClickHouse/pull/60612)([Jake Bamrah](https://github.com/JakeBamrah))。 +* 待機中クエリと実行中クエリの個数に対する制限を分離しました。`async_load_databases` により待機しているクエリ数を制限する新しいサーバー設定 `max_waiting_queries` を追加しました。既存の実行中クエリ数の上限は、待機中クエリをカウントしなくなりました。[#61053](https://github.com/ClickHouse/ClickHouse/pull/61053)([Sergei Trifonov](https://github.com/serxa))。 +* パーサーに含まれるすべてのキーワードを格納するテーブル `system.keywords` を追加しました。主に、より良いファジングおよびシンタックスハイライトのために使用されます。[#51808](https://github.com/ClickHouse/ClickHouse/pull/51808)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* `ATTACH PARTITION ALL` をサポートしました。[#61107](https://github.com/ClickHouse/ClickHouse/pull/61107)([Kirill Nikiforov](https://github.com/allmazz))。 +* 新しい関数 `getClientHTTPHeader` を追加しました。これにより [#54665](https://github.com/ClickHouse/ClickHouse/issues/54665) がクローズされます。@lingtaolf との共同作業です。[#61820](https://github.com/ClickHouse/ClickHouse/pull/61820)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `generate_series` をテーブル関数として追加しました(既存の `numbers` 関数に対する PostgreSQL 互換の別名)。この関数は、自然数の等差数列を持つテーブルを生成します。[#59390](https://github.com/ClickHouse/ClickHouse/pull/59390)([divanik](https://github.com/divanik))。 +* `topK`/`topkWeighed` 用のモードを追加し、値の個数とその誤差を返せるようにしました。[#54508](https://github.com/ClickHouse/ClickHouse/pull/54508)([UnamedRus](https://github.com/UnamedRus))。 +* 型 `DateTime` または `DateTime64` の値に対してミリ秒成分を返す関数 `toMillisecond` を追加しました。[#60281](https://github.com/ClickHouse/ClickHouse/pull/60281)([Shaun Struwig](https://github.com/Blargian))。 +* clickhouse-server 向けに HTTP リダイレクトハンドラを設定可能にしました。たとえば、`/` を Play UI へリダイレクトさせることができます。[#60390](https://github.com/ClickHouse/ClickHouse/pull/60390)([Alexey Milovidov](https://github.com/alexey-milovidov))。 + +#### 性能改善 {#performance-improvement-9} + +* 不要でコストの高いメモリコピーを回避するよう、関数 `dotProduct` を最適化しました。 [#60928](https://github.com/ClickHouse/ClickHouse/pull/60928) ([Robert Schulze](https://github.com/rschu1ze))。 +* 256ビット整数の出力処理が30倍高速化されました。 [#61100](https://github.com/ClickHouse/ClickHouse/pull/61100) ([Raúl Marín](https://github.com/Algunenano)). +* テーブルのプライマリキーにほとんど有用でないカラムが含まれている場合、それらをメモリに保持しないようにできます。これは新しい設定 `primary_key_ratio_of_unique_prefix_values_to_skip_suffix_columns` によって制御され、デフォルト値は `0.9` です。これは、複合プライマリキーにおいて、あるカラムの値が全体の少なくとも 0.9 の割合で変化する場合、その後ろに続くカラムはロードされないことを意味します。 [#60255](https://github.com/ClickHouse/ClickHouse/pull/60255) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 複数の `Nullable` カラムが関与する場合のシリアライズされた集約メソッドのパフォーマンスを改善しました。 [#55809](https://github.com/ClickHouse/ClickHouse/pull/55809) ([Amos Bird](https://github.com/amosbird)). +* ALL JOIN のパフォーマンスを改善するために、JSON 出力を遅延生成するようにしました。 [#58278](https://github.com/ClickHouse/ClickHouse/pull/58278) ([LiuNeng](https://github.com/liuneng1994)). +* AWS S3 などの外部サービスへの HTTP/HTTPS 接続を、すべてのユースケースで再利用できるようにしました。レスポンスが 3xx や 4xx の場合でも接続は再利用されます。 [#58845](https://github.com/ClickHouse/ClickHouse/pull/58845) ([Sema Checherinda](https://github.com/CheSema)). +* 集約関数 `argMin` / `argMax` / `any` / `anyLast` / `anyHeavy` および `ORDER BY {u8/u16/u32/u64/i8/i16/u32/i64) LIMIT 1` クエリに対する改善。[#58640](https://github.com/ClickHouse/ClickHouse/pull/58640)([Raúl Marín](https://github.com/Algunenano))。 +* カラムフィルタに対する軽微な最適化。場合によってはピークメモリ使用量を元の 44% まで削減できます。 [#59698](https://github.com/ClickHouse/ClickHouse/pull/59698) ([李扬](https://github.com/taiyang-li))。 +* 結果型の基になる型が数値の場合、`multiIf` 関数が列指向で実行されるようにしました。[#60384](https://github.com/ClickHouse/ClickHouse/pull/60384) ([李扬](https://github.com/taiyang-li))。 +* ミューテックスの性能を向上(ほぼ2倍高速化)。 [#60823](https://github.com/ClickHouse/ClickHouse/pull/60823) ([Azat Khuzhin](https://github.com/azat)). +* 分散クエリの完了時に複数の接続を並行してドレインできるようにしました。 [#60845](https://github.com/ClickHouse/ClickHouse/pull/60845) ([lizhuoyu5](https://github.com/lzydmxy)). +* Nullable な数値型または Nullable な文字列型のカラム間でのデータ移動を最適化し、一部のマイクロベンチマークにおける性能を向上しました。 [#60846](https://github.com/ClickHouse/ClickHouse/pull/60846) ([李扬](https://github.com/taiyang-li)). +* ファイルシステムキャッシュに対する操作が、ロック競合の影響を受けにくくなりました。 [#61066](https://github.com/ClickHouse/ClickHouse/pull/61066) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 誤ったコンパイラ最適化を防ぐことで ARRAY JOIN およびその他の JOIN を最適化しました。[#61074](https://github.com/ClickHouse/ClickHouse/issues/61074) をクローズ。[#61075](https://github.com/ClickHouse/ClickHouse/pull/61075)([李扬](https://github.com/taiyang-li))。 +* 構文エラーを含むクエリにおいて、正規表現付きの `COLUMNS` マッチャーが含まれている場合、正規表現は本来一度だけコンパイルされるべきところを、パーサのバックトラッキングのたびに毎回コンパイルされていました。これは根本的な誤りでした。コンパイル済みの正規表現は AST に格納されていました。しかし AST の A は "abstract" を意味しており、重量級オブジェクトを含むべきではありません。AST の一部はパース中に作成されたり破棄されたりし得て、その過程には多数のバックトラッキングも含まれます。これによりパース側での低速化を招き、その結果、読み取り専用ユーザーによる DoS 攻撃を許してしまう可能性があります。しかし、より本質的な問題は、これによりファザー(fuzzer)の進捗が妨げられることです。 [#61543](https://github.com/ClickHouse/ClickHouse/pull/61543) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 単一値に対する `IN` 演算子の最適化を行う新しいアナライザーパスを追加しました。 [#61564](https://github.com/ClickHouse/ClickHouse/pull/61564) ([LiuNeng](https://github.com/liuneng1994)). +* DNSResolver は解決済み IP アドレスの Set をシャッフルし、複数の AWS S3 エンドポイントを均等に利用できるようにします。 [#60965](https://github.com/ClickHouse/ClickHouse/pull/60965) ([Sema Checherinda](https://github.com/CheSema)). + +#### 実験的機能 {#experimental-feature-7} + +* Azure Blob Storage に対する並列読み取りをサポートしました。これにより、実験的な Azure オブジェクトストレージのパフォーマンスが向上します。 [#61503](https://github.com/ClickHouse/ClickHouse/pull/61503) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)). +* Azure Blob Storage 向けに、S3 と同様の非同期 `WriteBuffer` を追加しました。これにより、実験的な Azure オブジェクトストレージのパフォーマンスが向上します。 [#59929](https://github.com/ClickHouse/ClickHouse/pull/59929) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)). +* Azure Blob Storage を使用する際、バックアップ I/O にマネージド ID を使用するようにしました。ClickHouse が存在しないコンテナを作成しようとするのを防ぐための設定を追加しました。このコンテナの作成にはストレージアカウントレベルの権限が必要です。 [#61785](https://github.com/ClickHouse/ClickHouse/pull/61785) ([Daniel Pozo Escalona](https://github.com/danipozo)). +* `parallel_replicas_allow_in_with_subquery = 1` という設定を追加しました。これにより、IN 句のサブクエリを並列レプリカで使用できるようになります。 [#60950](https://github.com/ClickHouse/ClickHouse/pull/60950) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* ゼロコピー レプリケーションに対する変更です。テーブルが削除される場合、そのテーブルに関連するすべてのゼロコピー用ロックを削除する必要があり、これらのロックを含むディレクトリも削除しなければなりません。 [#57575](https://github.com/ClickHouse/ClickHouse/pull/57575) ([Sema Checherinda](https://github.com/CheSema)). + +#### 改善点 {#improvement-9} + +* `MergeTree` をデフォルトのテーブルエンジンとして使用するようにしました。 [#60524](https://github.com/ClickHouse/ClickHouse/pull/60524) ([Alexey Milovidov](https://github.com/alexey-milovidov)) +* `output_format_pretty_row_numbers` をデフォルトで有効にしました。使い勝手が向上します。 [#61791](https://github.com/ClickHouse/ClickHouse/pull/61791) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 以前のバージョンでは、Pretty フォーマットの一部で、数値の見た目があまり「きれい」ではありませんでした。 [#61794](https://github.com/ClickHouse/ClickHouse/pull/61794) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `SHOW CREATE TABLE` クエリの結果のように、結果セット内に値が 1 つしかない場合は、Pretty フォーマットで長い値が切り詰められなくなりました。 [#61795](https://github.com/ClickHouse/ClickHouse/pull/61795) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* `clickhouse-local` と同様に、`clickhouse-client` でも `--format` オプションの同義語として `--output-format` オプションが利用できるようになりました。これにより [#59848](https://github.com/ClickHouse/ClickHouse/issues/59848) がクローズされました。 [#61797](https://github.com/ClickHouse/ClickHouse/pull/61797) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `stdout` がターミナルであり、かつ出力フォーマットが指定されていない場合、`clickhouse-client` および同様のツールは、インタラクティブモードと同様に、デフォルトで `PrettyCompact` を使用します。`clickhouse-client` と `clickhouse-local` は、入力および出力フォーマットに関するコマンドライン引数を一貫した方法で処理します。これにより [#61272](https://github.com/ClickHouse/ClickHouse/issues/61272) が解決されました。 [#61800](https://github.com/ClickHouse/ClickHouse/pull/61800) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 可読性を向上させるため、Pretty フォーマットで桁グループをアンダースコアで区切って表示できるようになりました。これは新しい設定 `output_format_pretty_highlight_digit_groups` によって制御できます。 [#61802](https://github.com/ClickHouse/ClickHouse/pull/61802) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `SYSTEM FLUSH DISTRIBUTED` で初期の INSERT SETTINGS を上書きできるようにしました。 [#61832](https://github.com/ClickHouse/ClickHouse/pull/61832) ([Azat Khuzhin](https://github.com/azat)). +* ソートや集約などにおける処理時間および入出力バイト数のプロセッサプロファイリングを、デフォルトで有効化しました。 [#61096](https://github.com/ClickHouse/ClickHouse/pull/61096) ([Azat Khuzhin](https://github.com/azat)). +* Filesystem データベースで拡張子のないファイルをサポートしました。 [#60795](https://github.com/ClickHouse/ClickHouse/pull/60795) ([Kruglov Pavel](https://github.com/Avogar)). +* すべてのフォーマット名を大文字・小文字を区別しないようにしました。たとえば、Tsv でも TSV でも tsv でも、さらには rowbinary でも同じです。 [#60420](https://github.com/ClickHouse/ClickHouse/pull/60420)([豪肥肥](https://github.com/HowePa))。今後もできれば正しい表記で書いてもらえるとありがたいです。たとえば `JSON` 😇 であって `Json` 🤮 ではなく、という具合に。ただし、実際にはお好みの綴りで書いていただいて構いません。 +* `distributed_ddl_output_mode` SETTING に `none_only_active` モードを追加しました。 [#60340](https://github.com/ClickHouse/ClickHouse/pull/60340) ([Alexander Tokmakov](https://github.com/tavplubix)). +* 高度なダッシュボードで、複数系列グラフの色設定がわずかに改善されました。 [#60391](https://github.com/ClickHouse/ClickHouse/pull/60391) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Advanced ダッシュボードでは、スクロールしてもコントロールが常に表示されるようになりました。これにより、ページの上部までスクロールし直さずに新しいチャートを追加できます。 [#60692](https://github.com/ClickHouse/ClickHouse/pull/60692) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* materialized view に対して `MODIFY COLUMN` クエリを実行する際、すべてのカラムが存在することを確認するために、内部テーブルの構造をチェックするようになりました。 [#47427](https://github.com/ClickHouse/ClickHouse/pull/47427) ([sunny](https://github.com/sunny19930321)). +* String 型と Enum 型は、配列、UNION クエリ、条件式など、同じコンテキストで使用できるようになりました。これにより、[#60726](https://github.com/ClickHouse/ClickHouse/issues/60726) が解決されました。[#60727](https://github.com/ClickHouse/ClickHouse/pull/60727)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* クエリ処理のための外部データの構造内で Enum を宣言できるようにしました(クエリ専用に即座に用意できる一時テーブルです)。 [#57857](https://github.com/ClickHouse/ClickHouse/pull/57857) ([Duc Canh Le](https://github.com/canhld94))。 +* マージするパーツを選択する際に論理削除された行を考慮し、結果として生成されるパーツのディスクサイズをより正確に見積もるようにしました。 [#58223](https://github.com/ClickHouse/ClickHouse/pull/58223) ([Zhuo Qiu](https://github.com/jewelzqiu))。 +* より多くの system テーブルのカラムにコメントを追加しました。これは [https://github.com/ClickHouse/ClickHouse/pull/58356](https://github.com/ClickHouse/ClickHouse/pull/58356) の継続です。 [#59016](https://github.com/ClickHouse/ClickHouse/pull/59016) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* `PREWHERE` で仮想カラムを使用できるようになりました。これは `_part_offset` のような非 const な仮想カラムに対して有用です。[#59033](https://github.com/ClickHouse/ClickHouse/pull/59033) ([Amos Bird](https://github.com/amosbird))。仮想カラムの全体的な使い勝手が改善されました。`PREWHERE` で仮想カラムを使用することが許可されました(`_part_offset` のような非 const な仮想カラムに対して有用です)。仮想カラムに関する組み込みドキュメントが、`describe_include_virtual_columns` 設定を有効にした `DESCRIBE` クエリ内で、カラムのコメントとして利用できるようになりました。[#60205](https://github.com/ClickHouse/ClickHouse/pull/60205) ([Anton Popov](https://github.com/CurtizJ))。 +* 固定のキーを使用する代わりに、オブジェクトストレージがオブジェクト削除の可否を判定するためのキーを生成するようになりました。 [#59495](https://github.com/ClickHouse/ClickHouse/pull/59495) ([Sema Checherinda](https://github.com/CheSema)). +* オブジェクトストレージのタイプとして "local_blob_storage" の代わりに "local" を許可しました。 [#60165](https://github.com/ClickHouse/ClickHouse/pull/60165) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `DETACH` / サーバーシャットダウン時および `SYSTEM FLUSH DISTRIBUTED` 実行時に、Distributed engine の保留中の INSERT ブロックを並列フラッシュできるようにしました(並列処理は、テーブルにマルチディスクポリシーが設定されている場合にのみ有効です(現時点では Distributed engine のすべてのテーブルがこれに該当します))。 [#60225](https://github.com/ClickHouse/ClickHouse/pull/60225) ([Azat Khuzhin](https://github.com/azat)). +* マージ処理でリードスルーキャッシュを強制的に利用するための設定を追加しました。 [#60308](https://github.com/ClickHouse/ClickHouse/pull/60308) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* MySQL 互換プロトコルの改善。Issue [#57598](https://github.com/ClickHouse/ClickHouse/issues/57598) では、トランザクション処理に関する挙動の相違が指摘されています。トランザクションがアクティブでない状態で COMMIT/ROLLBACK を発行すると、MySQL の挙動とは異なりエラーとして報告されていました。[#60338](https://github.com/ClickHouse/ClickHouse/pull/60338)([PapaToemmsn](https://github.com/PapaToemmsn))。 +* 関数 `substring` に新しい別名 `byteSlice` が追加されました。[#60494](https://github.com/ClickHouse/ClickHouse/pull/60494)([Robert Schulze](https://github.com/rschu1ze))。 +* サーバー設定 `dns_cache_max_size` を `dns_cache_max_entries` に名称変更し、曖昧さを減らしました。 [#60500](https://github.com/ClickHouse/ClickHouse/pull/60500) ([Kirill Nikiforov](https://github.com/allmazz)). +* `SHOW INDEX | INDEXES | INDICES | KEYS` は、もはやプライマリキーのカラムによるソートを行わなくなりました(これは直感的ではありませんでした)。 [#60514](https://github.com/ClickHouse/ClickHouse/pull/60514) ([Robert Schulze](https://github.com/rschu1ze))。 +* Keeper の改善: 無効なスナップショットが検出された場合には、データ損失を防ぐため起動処理を中止するようにしました。 [#60537](https://github.com/ClickHouse/ClickHouse/pull/60537) ([Antonio Andelic](https://github.com/antonio2368)). +* tzdata を 2024a に更新しました。 [#60768](https://github.com/ClickHouse/ClickHouse/pull/60768) ([Raúl Marín](https://github.com/Algunenano))。 +* Keeper の改善: Keeper の設定で `leadership_expiry_ms` をサポート。 [#60806](https://github.com/ClickHouse/ClickHouse/pull/60806) ([Brokenice0415](https://github.com/Brokenice0415)). +* `input_format_try_infer_exponent_floats` の設定に関係なく、JSON 形式中の指数表記の数値は常に推論するようにしました。JSON オブジェクトからの named Tuple の推論時に、例外を投げる代わりに曖昧なパスに対して String 型を使用できるようにする `input_format_json_use_string_type_for_ambiguous_paths_in_named_tuples_inference_from_objects` 設定を追加しました。[#60808](https://github.com/ClickHouse/ClickHouse/pull/60808) ([Kruglov Pavel](https://github.com/Avogar))。 +* MySQL の構文で一般的に使用される `START TRANSACTION` 構文のサポートを追加し、[https://github.com/ClickHouse/ClickHouse/discussions/60865](https://github.com/ClickHouse/ClickHouse/discussions/60865) を解決しました。 [#60886](https://github.com/ClickHouse/ClickHouse/pull/60886) ([Zach Naimon](https://github.com/ArctypeZach))。 +* full-sorting merge join アルゴリズムで NULL を最大値/最小値として扱えるようにするフラグを追加しました。これにより、Apache Spark のような他の SQL システムと動作を互換にできます。 [#60896](https://github.com/ClickHouse/ClickHouse/pull/60896) ([loudongfeng](https://github.com/loudongfeng)). +* `clickhouse-client` と `clickhouse-local` で、ファイル拡張子から出力フォーマットを自動検出できるようになりました。 [#61036](https://github.com/ClickHouse/ClickHouse/pull/61036) ([豪肥肥](https://github.com/HowePa)). +* Linux の CGroups の値が変更された場合に、実行時のメモリ制限を更新するようにしました。 [#61049](https://github.com/ClickHouse/ClickHouse/pull/61049) ([Han Fei](https://github.com/hanfei1991)). +* 関数 `toUInt128OrZero` を、誤って見落としていたため追加しました(この誤りは [https://github.com/ClickHouse/ClickHouse/pull/945](https://github.com/ClickHouse/ClickHouse/pull/945) に関連しています)。互換性エイリアスである `FROM_UNIXTIME` と `DATE_FORMAT`(これらは ClickHouse ネイティブのものではなく、MySQL 互換性のためにのみ存在します)について、SQL 互換エイリアスとして期待されるとおり大文字小文字を区別しないようにしました。 [#61114](https://github.com/ClickHouse/ClickHouse/pull/61114) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* アクセスチェックが改善され、対象ユーザーがそもそもその権限や付与権限(GRANT 権限)を持っていない場合でも、未保有の権限を REVOKE できるようになりました。例: `GRANT SELECT ON *.* TO user1; REVOKE SELECT ON system.* FROM user1;`。 [#61115](https://github.com/ClickHouse/ClickHouse/pull/61115) ([pufit](https://github.com/pufit))。 +* `Nullable` カラムに対する `has()` 関数の不具合を修正しました([#60214](https://github.com/ClickHouse/ClickHouse/issues/60214))。 [#61249](https://github.com/ClickHouse/ClickHouse/pull/61249)([Mikhail Koviazin](https://github.com/mkmkme))。 +* 現在、サブツリー `` に対する設定の置換処理で、属性 `merge="true"` を指定できるようになりました。この属性が指定されている場合、ClickHouse はそのサブツリーを既存の設定とマージし、指定されていない場合のデフォルト動作は、新しい内容を設定に追記することになります。 [#61299](https://github.com/ClickHouse/ClickHouse/pull/61299) ([alesapin](https://github.com/alesapin))。 +* 仮想メモリマッピング用の非同期メトリクス `VMMaxMapCount` と `VMNumMaps` を追加。[#60662](https://github.com/ClickHouse/ClickHouse/issues/60662) を解決。[#61354](https://github.com/ClickHouse/ClickHouse/pull/61354)([Tuan Pham Anh](https://github.com/tuanpavn))。 +* 一時データを作成するすべての箇所(たとえば外部メモリソートや外部メモリによる GROUP BY)で `temporary_files_codec` 設定が使用されるようになりました。以前は `partial_merge` JOIN アルゴリズムでのみ適用されていました。 [#61456](https://github.com/ClickHouse/ClickHouse/pull/61456) ([Maksim Kita](https://github.com/kitaisreal))。 +* クエリの構文解析の複雑さを制限できる新しい設定 `max_parser_backtracks` を追加しました。 [#61502](https://github.com/ClickHouse/ClickHouse/pull/61502) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* ファイルシステムキャッシュを動的にリサイズする際のコンテンションを減らしました。 [#61524](https://github.com/ClickHouse/ClickHouse/pull/61524) ([Kseniia Sumarokova](https://github.com/kssenii)). +* StorageS3 queue のシャーディングモードは、今後実装を書き換える予定のため無効化しました。 [#61537](https://github.com/ClickHouse/ClickHouse/pull/61537) ([Kseniia Sumarokova](https://github.com/kssenii)). +* タイプミスを修正: `use_leagcy_max_level` を `use_legacy_max_level` に変更しました。 [#61545](https://github.com/ClickHouse/ClickHouse/pull/61545) ([William Schoeffel](https://github.com/wiledusc))。 +* `system.blob_storage_log` 内の重複したエントリの一部を削除しました。 [#61622](https://github.com/ClickHouse/ClickHouse/pull/61622) ([YenchangChan](https://github.com/YenchangChan)). +* MySQL 互換性のためのエイリアスとして `current_user` 関数を追加しました。 [#61770](https://github.com/ClickHouse/ClickHouse/pull/61770) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* 混在した x86-64 / ARM クラスターにおける浮動小数点の集約関数状態の不整合を修正 [#60610](https://github.com/ClickHouse/ClickHouse/pull/60610)([Harry Lee](https://github.com/HarryLeeIBM))。 + +#### ビルド/テスト/パッケージングの改良 {#buildtestingpackaging-improvement-5} + +* リアルタイムクエリプロファイラが AArch64 でも動作するようになりました。以前のバージョンでは、プログラムがシステムコール内で時間を消費していない場合にのみ動作していました。[#60807](https://github.com/ClickHouse/ClickHouse/pull/60807) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* ClickHouse のバージョン情報が Docker ラベルに追加されました。[#54224](https://github.com/ClickHouse/ClickHouse/issues/54224) をクローズします。[#60949](https://github.com/ClickHouse/ClickHouse/pull/60949) ([Nikolay Monkov](https://github.com/nikmonkov))。 +* `prqlc` を 0.11.3 にアップグレードしました。[#60616](https://github.com/ClickHouse/ClickHouse/pull/60616) ([Maximilian Roos](https://github.com/max-sixty))。 +* `clickhouse-local` に汎用的なクエリテキスト fuzzer を追加しました。[#61508](https://github.com/ClickHouse/ClickHouse/pull/61508) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 + +#### バグ修正(公式安定版リリースにおけるユーザーから見て明らかな不具合) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-7} + +* MergeTree における finished_mutations_to_keep=0 の挙動を修正(ドキュメントでは 0 を指定するとすべてを保持するとされている) [#60031](https://github.com/ClickHouse/ClickHouse/pull/60031) ([Azat Khuzhin](https://github.com/azat)). +* FINAL 最適化に何らかの不具合があり、その内容について著者は次のように述べています: "PartsSplitter invalid ranges for the same part". [#60041](https://github.com/ClickHouse/ClickHouse/pull/60041) ([Maksim Kita](https://github.com/kitaisreal)). +* 実験的機能でサポート対象外である Apache Hive に不具合がありました。 [#60262](https://github.com/ClickHouse/ClickHouse/pull/60262) ([shanfengp](https://github.com/Aed-p)). +* 実験的な parallel replicas 機能の改善: parallel replicas の構成が変更された場合に再解析を強制するようにしました [#60362](https://github.com/ClickHouse/ClickHouse/pull/60362) ([Raúl Marín](https://github.com/Algunenano)). +* 新しいディスク構成オプションにおける plain metadata 型の利用を修正しました [#60396](https://github.com/ClickHouse/ClickHouse/pull/60396) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* mapContainsKeyLike で発生する論理エラー 'Cannot capture column because it has incompatible type' を修正しました [#60451](https://github.com/ClickHouse/ClickHouse/pull/60451) ([Kruglov Pavel](https://github.com/Avogar)). +* CREATE TABLE においてスカラーサブクエリを評価しないようにしました。 [#60464](https://github.com/ClickHouse/ClickHouse/pull/60464) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* 多くの行がエラーによりスキップされる場合に並列パースで発生するデッドロックを修正 [#60516](https://github.com/ClickHouse/ClickHouse/pull/60516) ([Kruglov Pavel](https://github.com/Avogar))。 +* 実験的な KQL(Kusto)サポートに不具合があり、`max_query_size_for_kql_compound_operator` を修正しました: [#60534](https://github.com/ClickHouse/ClickHouse/pull/60534) ([Yong Wang](https://github.com/kashwy))。 +* Keeper に対する修正: コミットログ待機時のタイムアウトを追加 [#60544](https://github.com/ClickHouse/ClickHouse/pull/60544) ([Antonio Andelic](https://github.com/antonio2368)). +* 日付型については数値形式のヒントを出力しないようにしました [#60577](https://github.com/ClickHouse/ClickHouse/pull/60577) ([Raúl Marín](https://github.com/Algunenano)). +* フィルタで非決定的関数を使用する場合の MergeTree からの読み取りを修正 [#60586](https://github.com/ClickHouse/ClickHouse/pull/60586) ([Kruglov Pavel](https://github.com/Avogar))。 +* 互換性設定で不正な値型が指定された場合に発生する論理エラーを修正 [#60596](https://github.com/ClickHouse/ClickHouse/pull/60596) ([Kruglov Pavel](https://github.com/Avogar)). +* fix(prql): パニックハンドラーをより堅牢に [#60615](https://github.com/ClickHouse/ClickHouse/pull/60615) ([Maximilian Roos](https://github.com/max-sixty)). +* Decimal および Date 型の引数に対する `intDiv` を修正。 [#60672](https://github.com/ClickHouse/ClickHouse/pull/60672) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* Fix: ALTER MODIFY クエリ内の CTE を展開するよう修正 [#60682](https://github.com/ClickHouse/ClickHouse/pull/60682) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* 非 Atomic/Ordinary データベースエンジン(例: Memory)における system.parts を修正。 [#60689](https://github.com/ClickHouse/ClickHouse/pull/60689) ([Azat Khuzhin](https://github.com/azat)). +* パラメータ化された VIEW で発生する「Invalid storage definition in metadata file」エラーを修正 [#60708](https://github.com/ClickHouse/ClickHouse/pull/60708) ([Azat Khuzhin](https://github.com/azat))。 +* CompressionCodecMultiple のバッファオーバーフローを修正しました。[#60731](https://github.com/ClickHouse/ClickHouse/pull/60731)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* SQL/JSON から不正なデータを削除 [#60738](https://github.com/ClickHouse/ClickHouse/pull/60738) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 集約関数 quantileGK における誤ったアサーションを削除。 [#60740](https://github.com/ClickHouse/ClickHouse/pull/60740) ([李扬](https://github.com/taiyang-li))。 +* streams を 1 に設定して insert-select および insert_deduplication_token のバグを修正 [#60745](https://github.com/ClickHouse/ClickHouse/pull/60745) ([Jordi Villar](https://github.com/jrdi))。 +* サポートされていないマルチパートアップロード操作でカスタムメタデータヘッダーを設定できないようにしました [#60748](https://github.com/ClickHouse/ClickHouse/pull/60748) ([Francisco J. Jurado Moreno](https://github.com/Beetelbrox))。 +* toStartOfInterval の不具合を修正 [#60763](https://github.com/ClickHouse/ClickHouse/pull/60763) ([Andrey Zvonov](https://github.com/zvonand))。 +* arrayEnumerateRanked で発生していたクラッシュを修正 [#60764](https://github.com/ClickHouse/ClickHouse/pull/60764) ([Raúl Marín](https://github.com/Algunenano)). +* INSERT SELECT JOIN で `input()` を使用した際にクラッシュするバグを修正 [#60765](https://github.com/ClickHouse/ClickHouse/pull/60765) ([Kruglov Pavel](https://github.com/Avogar))。 +* サブクエリで allow_experimental_analyzer の値が異なる場合に発生するクラッシュを修正 [#60770](https://github.com/ClickHouse/ClickHouse/pull/60770) ([Dmitry Novik](https://github.com/novikd)). +* S3 からの読み取り時の再帰処理を削除しました [#60849](https://github.com/ClickHouse/ClickHouse/pull/60849) ([Antonio Andelic](https://github.com/antonio2368)). +* HashedDictionaryParallelLoader でエラー発生時にフリーズする可能性のあった不具合を修正。 [#60926](https://github.com/ClickHouse/ClickHouse/pull/60926) ([vdimir](https://github.com/vdimir))。 +* Replicated データベースでの非同期 RESTORE を修正(実験的な機能) [#60934](https://github.com/ClickHouse/ClickHouse/pull/60934) ([Antonio Andelic](https://github.com/antonio2368)). +* ネイティブプロトコル経由での `Log` テーブルへの非同期挿入で発生していたデッドロックを修正 [#61055](https://github.com/ClickHouse/ClickHouse/pull/61055) ([Anton Popov](https://github.com/CurtizJ))。 +* RangeHashedDictionary 向けの dictGetOrDefault におけるデフォルト引数の遅延評価の問題を修正。 [#61196](https://github.com/ClickHouse/ClickHouse/pull/61196) ([Kruglov Pavel](https://github.com/Avogar))。 +* groupArraySorted の複数の不具合を修正 [#61203](https://github.com/ClickHouse/ClickHouse/pull/61203) ([Raúl Marín](https://github.com/Algunenano)). +* スタンドアロンバイナリ版 Keeper の再構成を修正 [#61233](https://github.com/ClickHouse/ClickHouse/pull/61233)([Antonio Andelic](https://github.com/antonio2368))。 +* S3 エンジンでの session_token の扱いを修正 [#61234](https://github.com/ClickHouse/ClickHouse/pull/61234) ([Kruglov Pavel](https://github.com/Avogar)). +* 集約関数 `uniqExact` で発生する可能性がある誤った結果を修正しました [#61257](https://github.com/ClickHouse/ClickHouse/pull/61257) ([Anton Popov](https://github.com/CurtizJ))。 +* SHOW DATABASE コマンドのバグを修正。[#61269](https://github.com/ClickHouse/ClickHouse/pull/61269)([Raúl Marín](https://github.com/Algunenano))。 +* RabbitMQ ストレージにおける MATERIALIZED カラム使用時の論理エラーを修正 [#61320](https://github.com/ClickHouse/ClickHouse/pull/61320) ([vdimir](https://github.com/vdimir))。 +* CREATE OR REPLACE DICTIONARY を修正しました [#61356](https://github.com/ClickHouse/ClickHouse/pull/61356)([Vitaly Baranov](https://github.com/vitlibar))。 +* 外部 ON CLUSTER を使用する ATTACH クエリを修正しました。 [#61365](https://github.com/ClickHouse/ClickHouse/pull/61365) ([Nikolay Degterinsky](https://github.com/evillique))。 +* Nullable キーに対する連続キーの最適化を修正 [#61393](https://github.com/ClickHouse/ClickHouse/pull/61393) ([Anton Popov](https://github.com/CurtizJ)). +* actions DAG の分割に関する不具合を修正 [#61458](https://github.com/ClickHouse/ClickHouse/pull/61458) ([Raúl Marín](https://github.com/Algunenano)). +* 失敗した RESTORE の終了処理に関する不具合を修正 [#61466](https://github.com/ClickHouse/ClickHouse/pull/61466) ([Vitaly Baranov](https://github.com/vitlibar))。 +* 互換性設定使用時に async_insert_use_adaptive_busy_timeout が正しく無効化されるよう修正 [#61468](https://github.com/ClickHouse/ClickHouse/pull/61468) ([Raúl Marín](https://github.com/Algunenano)). +* リストアプールでのキューイングを可能にしました [#61475](https://github.com/ClickHouse/ClickHouse/pull/61475) ([Nikita Taranov](https://github.com/nickitat))。 +* UUID で system.parts を読み取る際に生じていた不整合を修正しました。 [#61479](https://github.com/ClickHouse/ClickHouse/pull/61479) ([Dan Wu](https://github.com/wudanzy))。 +* `ALTER QUERY MODIFY SQL SECURITY` の不具合を修正しました [#61480](https://github.com/ClickHouse/ClickHouse/pull/61480)([pufit](https://github.com/pufit))。 +* window view(実験的機能)におけるクラッシュを修正 [#61526](https://github.com/ClickHouse/ClickHouse/pull/61526) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* `repeat` が非ネイティブの整数型で正しく動作しない問題を修正 [#61527](https://github.com/ClickHouse/ClickHouse/pull/61527) ([Antonio Andelic](https://github.com/antonio2368)). +* クライアントの `-s` 引数の問題を修正 [#61530](https://github.com/ClickHouse/ClickHouse/pull/61530) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* arrayPartialReverseSort におけるクラッシュを修正 [#61539](https://github.com/ClickHouse/ClickHouse/pull/61539)([Raúl Marín](https://github.com/Algunenano))。 +* const 位置指定での文字列検索の不具合を修正 [#61547](https://github.com/ClickHouse/ClickHouse/pull/61547) ([Antonio Andelic](https://github.com/antonio2368)). +* DateTime64 型で使用した場合にエラーを引き起こしていた `addDays` を修正 [#61561](https://github.com/ClickHouse/ClickHouse/pull/61561) ([Shuai li](https://github.com/loneylee)). +* JSONExtract に対する LowCardinality 型の入力を禁止 [#61617](https://github.com/ClickHouse/ClickHouse/pull/61617) ([Julia Kartseva](https://github.com/jkartseva))。 +* 重複排除を伴う非同期挿入時の `system.part_log` を修正 [#61620](https://github.com/ClickHouse/ClickHouse/pull/61620) ([Antonio Andelic](https://github.com/antonio2368))。 +* system.parts で発生する `Non-ready set` 例外を修正しました。 [#61666](https://github.com/ClickHouse/ClickHouse/pull/61666) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* REPLACE_RANGE における actual_part_name の不具合を修正(`Entry actual part isn't empty yet`)[#61675](https://github.com/ClickHouse/ClickHouse/pull/61675)([Alexander Tokmakov](https://github.com/tavplubix))。 +* 不正な UTF-8 を対象とする `multiSearchAllPositionsCaseInsensitiveUTF8` におけるサニタイザーレポートを修正しました [#61749](https://github.com/ClickHouse/ClickHouse/pull/61749) ([pufit](https://github.com/pufit))。 +* Nullable カラムで RANGE フレームがサポートされていなかった問題を修正。 [#61766](https://github.com/ClickHouse/ClickHouse/pull/61766) ([YuanLiu](https://github.com/ditgittube)). + +### ClickHouse リリース 24.2(2024-02-29)。[プレゼンテーション](https://presentations.clickhouse.com/2024-release-24.2/)、[動画](https://www.youtube.com/watch?v=iN2y-TK8f3A) {#a-id242a-clickhouse-release-242-2024-02-29} + + + +#### 後方互換性のない変更 {#backward-incompatible-change-8} + +* ネストした型における疑わしい/実験的な型を検証するようにしました。これまでは、Array/Tuple/Map のようなネストした型では(JSON を除き)そのような型を検証していませんでした。[#59385](https://github.com/ClickHouse/ClickHouse/pull/59385) ([Kruglov Pavel](https://github.com/Avogar)). +* スレッド数およびブロックサイズに対する健全性チェックを追加しました。[#60138](https://github.com/ClickHouse/ClickHouse/pull/60138) ([Raúl Marín](https://github.com/Algunenano)). +* デフォルトでは指数表記の浮動小数点数を推論しないようにしました。以前の挙動を復元するための `input_format_try_infer_exponent_floats` 設定を追加しました(デフォルトでは無効)。[#59476](https://github.com/ClickHouse/ClickHouse/issues/59476) をクローズします。[#59500](https://github.com/ClickHouse/ClickHouse/pull/59500) ([Kruglov Pavel](https://github.com/Avogar)). +* `ALTER` 操作を丸括弧で囲めるようにしました。括弧を出力するかどうかは `format_alter_operations_with_parentheses` 設定で制御できます。デフォルトでは、整形済みクエリにおいて括弧が出力されます。これは、整形済みの `ALTER` 操作を(たとえば mutation などの)メタデータとして格納している箇所があるためです。この新しい構文により、`ALTER` 操作がリストで終わるクエリがより明確になります。例: 旧構文では `ALTER TABLE x MODIFY TTL date GROUP BY a, b, DROP COLUMN c` は正しくパースできません。新構文では `ALTER TABLE x (MODIFY TTL date GROUP BY a, b), (DROP COLUMN c)` というクエリとなり、明確です。古いバージョンはこの新しい構文を読み取ることができないため、新旧バージョンの ClickHouse が同一クラスタ内で混在している場合に、新構文の利用が問題を引き起こす可能性があります。[#59532](https://github.com/ClickHouse/ClickHouse/pull/59532) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* materialized view に関するセキュリティ問題を修正しました。この問題により、必要な権限がないにもかかわらずテーブルへの挿入が可能になっていました。修正では、ユーザーが materialized view だけでなく、その基盤となるすべてのテーブルへの挿入権限も持っていることを検証します。これは、以前は動作していた一部のクエリが、現在は `Not enough privileges` で失敗し得ることを意味します。この問題に対処するため、本リリースでは VIEW 向けの SQL セキュリティという新機能を導入しました https://clickhouse.com/docs/sql-reference/statements/create/view#sql_security。[#54901](https://github.com/ClickHouse/ClickHouse/pull/54901) [#60439](https://github.com/ClickHouse/ClickHouse/pull/60439) ([pufit](https://github.com/pufit)). + +#### 新機能 {#new-feature-10} + +* `view` / `materialized view` で definer USER を指定できる新しい構文を追加しました。これにより、背後のテーブルに対して明示的に権限を付与しなくても、`VIEW` から `SELECT` / `INSERT` を実行できるようになります。つまり、`VIEW` が権限(GRANT)をカプセル化します。 [#54901](https://github.com/ClickHouse/ClickHouse/pull/54901) [#60439](https://github.com/ClickHouse/ClickHouse/pull/60439) ([pufit](https://github.com/pufit)). +* `file/s3/hdfs/url/azureBlobStorage` エンジンでスキーマ推論を行う際、ファイルフォーマットが不明な場合に自動検出を試みるようにしました。[#50576](https://github.com/ClickHouse/ClickHouse/issues/50576) をクローズしました。[#59092](https://github.com/ClickHouse/ClickHouse/pull/59092)([Kruglov Pavel](https://github.com/Avogar))。 +* 非同期挿入タイムアウトの自動調整機能を実装しました。次の設定項目が追加されました: async_insert_poll_timeout_ms、async_insert_use_adaptive_busy_timeout、async_insert_busy_timeout_min_ms、async_insert_busy_timeout_max_ms、async_insert_busy_timeout_increase_rate、async_insert_busy_timeout_decrease_rate。 [#58486](https://github.com/ClickHouse/ClickHouse/pull/58486) ([Julia Kartseva](https://github.com/jkartseva))。 +* 連続ログイン失敗の最大回数に対してQUOTAを設定できるようになりました。 [#54737](https://github.com/ClickHouse/ClickHouse/pull/54737) ([Alexey Gerasimchuck](https://github.com/Demilivor)). +* 新しい集約関数 `groupArrayIntersect`。[#49862](https://github.com/ClickHouse/ClickHouse/issues/49862) のフォローアップ。 [#59598](https://github.com/ClickHouse/ClickHouse/pull/59598)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* `AzureBlobStorage` の Backup & Restore をサポート。[#50747](https://github.com/ClickHouse/ClickHouse/issues/50747) を解決。[#56988](https://github.com/ClickHouse/ClickHouse/pull/56988)([SmitaRKulkarni](https://github.com/SmitaRKulkarni))。 +* ユーザーは、`format_template_row` の代替として `format_schema_rows_template` を使用し、クエリ内でテンプレート文字列を直接指定できるようになりました。[#31363](https://github.com/ClickHouse/ClickHouse/issues/31363) を解決。[#59088](https://github.com/ClickHouse/ClickHouse/pull/59088)([Shaun Struwig](https://github.com/Blargian))。 +* 異なる種類の MergeTree テーブルを Replicated エンジンへ自動変換する機能を実装しました。テーブルのデータディレクトリ(`/clickhouse/store/xxx/xxxyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy/`)内に空の `convert_to_replicated` ファイルを作成すると、次回サーバー起動時にそのテーブルが自動的に変換されます。 [#57798](https://github.com/ClickHouse/ClickHouse/pull/57798) ([Kirill](https://github.com/kirillgarbar))。 +* 空のパーティションに対応する ZooKeeper ノードを削除するクエリ `ALTER TABLE table FORGET PARTITION partition` を追加しました。 [#59507](https://github.com/ClickHouse/ClickHouse/pull/59507) ([Sergei Trifonov](https://github.com/serxa))。これはエキスパートレベルの機能です。 +* NATS テーブルエンジンで JWT クレデンシャルファイルのサポートを追加。 [#59543](https://github.com/ClickHouse/ClickHouse/pull/59543) ([Nickolaj Jepsen](https://github.com/nickolaj-jepsen))。 +* `system.dns_cache` テーブルを実装しました。DNS の問題のデバッグに役立ちます。 [#59856](https://github.com/ClickHouse/ClickHouse/pull/59856) ([Kirill Nikiforov](https://github.com/allmazz)). +* codec `LZ4HC` は、新たにレベル 2 を指定できるようになりました。これは、これまでの最小レベルである 3 よりも高速に動作しますが、その分圧縮率は低下します。以前のバージョンでは、`LZ4HC(2)` 以下の指定はすべて `LZ4HC(3)` と同一の挙動でした。Author: [Cyan4973](https://github.com/Cyan4973)。[#60090](https://github.com/ClickHouse/ClickHouse/pull/60090) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `system.dns_cache` テーブルを実装しました。これは DNS の問題のデバッグに有用です。新しいサーバー設定項目 `dns_cache_max_size` を追加しました。 [#60257](https://github.com/ClickHouse/ClickHouse/pull/60257) ([Kirill Nikiforov](https://github.com/allmazz))。 +* `merge` テーブル関数で、`merge(['db_name', ] 'tables_regexp')` のような単一引数形式をサポートしました。 [#60372](https://github.com/ClickHouse/ClickHouse/pull/60372) ([豪肥肥](https://github.com/HowePa)). +* 負の位置引数をサポートしました。[#57736](https://github.com/ClickHouse/ClickHouse/issues/57736) をクローズしました。[#58292](https://github.com/ClickHouse/ClickHouse/pull/58292) ([flynn](https://github.com/ucasfl))。 +* `user` キーを使用して、設定ファイル内の特定の S3 設定ごとに許可されるユーザーの集合を指定できるようにしました。 [#60144](https://github.com/ClickHouse/ClickHouse/pull/60144) ([Antonio Andelic](https://github.com/antonio2368)). +* テーブル関数 `mergeTreeIndex` を追加しました。これは `MergeTree` テーブルの索引ファイルおよびマークファイルの内容を表します。内部構造の確認(イントロスペクション)に使用できます。構文: `mergeTreeIndex(database, table, [with_marks = true])`。ここで `database.table` は `MergeTree` エンジンを使用する既存のテーブルです。[#58140](https://github.com/ClickHouse/ClickHouse/pull/58140)([Anton Popov](https://github.com/CurtizJ))。 + +#### 実験的機能 {#experimental-feature-8} + +* Tukey のフェンスアルゴリズムを使用して系列データ内の外れ値を検出する関数 `seriesOutliersDetectTukey` を追加しました。[#58632](https://github.com/ClickHouse/ClickHouse/pull/58632)([Bhavna Jindal](https://github.com/bhavnajindal))。この挙動は次回のパッチリリースで変更される予定であることに注意してください。 +* 各行に対して Variant 型名を持つ Enum を返す関数 `variantType` を追加しました。[#59398](https://github.com/ClickHouse/ClickHouse/pull/59398)([Kruglov Pavel](https://github.com/Avogar))。 +* parallel replicas(analyzer 使用時のみ)で `LEFT JOIN`、`ALL INNER JOIN`、および単純なサブクエリをサポートしました。新しい設定 `parallel_replicas_prefer_local_join` により、ローカルの `JOIN` 実行(デフォルト)と `GLOBAL JOIN` のどちらを使用するかを選択できます。すべてのテーブルは `cluster_for_parallel_replicas` 内のすべてのレプリカ上に存在している必要があります。新しい設定 `min_external_table_block_size_rows` および `min_external_table_block_size_bytes` は、一時テーブルに送信される小さなブロックをまとめるために使用されます(analyzer 使用時のみ)。[#58916](https://github.com/ClickHouse/ClickHouse/pull/58916)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 新しいレプリカの追加または復旧中に、`Replicated` データベースでのテーブルの同時作成を許可しました。[#59277](https://github.com/ClickHouse/ClickHouse/pull/59277)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* `Variant` 値に対する比較演算子と、`Variant` カラムへの適切な Field の挿入を実装しました。デフォルトでは、類似した Variant 型を持つ `Variant` 型の作成を許可しません(設定 `allow_suspicious_variant_types` を有効にした場合のみ許可)。[#59996](https://github.com/ClickHouse/ClickHouse/issues/59996) をクローズ。[#59850](https://github.com/ClickHouse/ClickHouse/issues/59850) をクローズ。[#60198](https://github.com/ClickHouse/ClickHouse/pull/60198)([Kruglov Pavel](https://github.com/Avogar))。 +* CTE を使用する parallel replicas における JOIN(analyzer 未使用時)を無効化しました。[#59239](https://github.com/ClickHouse/ClickHouse/pull/59239)([Raúl Marín](https://github.com/Algunenano))。 + +#### パフォーマンスの向上 {#performance-improvement-10} + +* プライマリキーで使用されるメモリ量が少なくなります。 [#60049](https://github.com/ClickHouse/ClickHouse/pull/60049) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* プライマリキーおよびその他の一部の操作でのメモリ使用量を削減しました。 [#60050](https://github.com/ClickHouse/ClickHouse/pull/60050) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* テーブルの主キーは、最初のアクセス時にメモリに遅延ロードされます。これは、新しい MergeTree の設定 `primary_key_lazy_load` によって制御されており、デフォルトで有効になっています。これにはいくつかの利点があります: - 使用されていないテーブルについてはロードされないこと; - メモリが不足している場合、サーバー起動時ではなく最初の使用時に例外がスローされること。一方で、いくつかの欠点もあります: - 主キーのロードにかかるレイテンシが、接続を受け付ける前ではなく最初のクエリ時に発生するため、理論上は「thundering-herd」問題を引き起こす可能性があること。これにより [#11188](https://github.com/ClickHouse/ClickHouse/issues/11188) が解決されました。 [#60093](https://github.com/ClickHouse/ClickHouse/pull/60093) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* ベクトル検索で使用するベクトル化された距離関数。 [#58866](https://github.com/ClickHouse/ClickHouse/pull/58866) ([Robert Schulze](https://github.com/rschu1ze)). +* ベクトル検索向けのベクトル化関数 `dotProduct` を追加しました。 [#60202](https://github.com/ClickHouse/ClickHouse/pull/60202) ([Robert Schulze](https://github.com/rschu1ze))。 +* `dictGetOrDefault` 関数にショートサーキット機能を追加しました。[#52098](https://github.com/ClickHouse/ClickHouse/issues/52098) をクローズしました。[#57767](https://github.com/ClickHouse/ClickHouse/pull/57767)([jsc0218](https://github.com/jsc0218))。 +* Keeper の改善: `latest_logs_cache_size_threshold` と `commit_logs_cache_size_threshold` により制御されるメモリ内キャッシュに保持するログ量を制限しました。 [#59460](https://github.com/ClickHouse/ClickHouse/pull/59460) ([Antonio Andelic](https://github.com/antonio2368))。 +* Keeper の改善: データノードのサイズをさらに削減。 [#59592](https://github.com/ClickHouse/ClickHouse/pull/59592) ([Antonio Andelic](https://github.com/antonio2368))。 +* 結果型が `Float*/Decimal*/*Int*` の場合の `if` 関数における分岐ミスを引き続き最適化し、[https://github.com/ClickHouse/ClickHouse/pull/57885](https://github.com/ClickHouse/ClickHouse/pull/57885) のフォローアップを行いました。 [#59148](https://github.com/ClickHouse/ClickHouse/pull/59148) ([李扬](https://github.com/taiyang-li))。 +* 入力の型が `Map` の場合に `if` 関数を最適化し、最大約 10 倍の高速化を実現しました。 [#59413](https://github.com/ClickHouse/ClickHouse/pull/59413) ([李扬](https://github.com/taiyang-li))。 +* `Int8` 型に対して strict aliasing を実装し(`UInt8` 型および他のすべての整数型では既に実装済み)、パフォーマンスを向上しました。 [#59485](https://github.com/ClickHouse/ClickHouse/pull/59485) ([Raúl Marín](https://github.com/Algunenano)). +* bigint および big decimal 型に対する条件付き sum/avg のパフォーマンスを、ブランチミスの削減により最適化しました。 [#59504](https://github.com/ClickHouse/ClickHouse/pull/59504) ([李扬](https://github.com/taiyang-li)). +* アクティブなミューテーションがある状態での SELECT のパフォーマンスを改善。 [#59531](https://github.com/ClickHouse/ClickHouse/pull/59531) ([Azat Khuzhin](https://github.com/azat)). +* AVX2 で関数 `isNotNull` を最適化しました。 [#59621](https://github.com/ClickHouse/ClickHouse/pull/59621) ([李扬](https://github.com/taiyang-li))。 +* ソート済みまたはほぼソートされたデータ向けの ASOF JOIN のパフォーマンスを改善しました。 [#59731](https://github.com/ClickHouse/ClickHouse/pull/59731) ([Maksim Kita](https://github.com/kitaisreal)). +* `async_insert_max_data_size` の以前のデフォルト値は 1 MB で、小さすぎることが判明しました。新しい値は 10 MiB になります。 [#59536](https://github.com/ClickHouse/ClickHouse/pull/59536) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* RESTORE コマンドの実行時に、バックアップからテーブルのメタデータを読み取る処理で複数スレッドを使用するようにしました。 [#60040](https://github.com/ClickHouse/ClickHouse/pull/60040) ([Vitaly Baranov](https://github.com/vitlibar))。 +* `StorageBuffer` に 1 つを超える分片(`num_layers` > 1)がある場合、バックグラウンドでのフラッシュ処理は複数スレッドで全ての分片に対して同時に実行されるようになりました。 [#60111](https://github.com/ClickHouse/ClickHouse/pull/60111) ([alesapin](https://github.com/alesapin)). + +#### 改善点 {#improvement-10} + +* 出力フォーマットが `Pretty` フォーマットで、ブロックが 1 つの数値のみから成り、その値が 100 万を超える場合、テーブルの右側に読みやすい形式の数値が表示されます。 [#60379](https://github.com/ClickHouse/ClickHouse/pull/60379) ([rogeryk](https://github.com/rogeryk)). +* `split_parts_ranges_into_intersecting_and_non_intersecting_final` と `split_intersecting_parts_ranges_into_layers_final` の設定を追加しました。これらの設定は、`FINAL` を伴うクエリに対する最適化を無効化するためのもので、本来はデバッグ用途のみを想定しています。 [#59705](https://github.com/ClickHouse/ClickHouse/pull/59705) ([Maksim Kita](https://github.com/kitaisreal))。実際にはそれだけでなく、パフォーマンスを犠牲にする代わりにメモリ使用量を抑えることもできます。 +* `extract_kvp_max_pairs_per_row` という設定を `extract_key_value_pairs_max_pairs_per_row` にリネーム。不必要な省略が設定名に含まれていたという問題は、[https://github.com/ClickHouse/ClickHouse/pull/43606](https://github.com/ClickHouse/ClickHouse/pull/43606) で導入されていた。この設定に関するドキュメントを修正。[#59683](https://github.com/ClickHouse/ClickHouse/pull/59683) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#59960](https://github.com/ClickHouse/ClickHouse/pull/59960) ([jsc0218](https://github.com/jsc0218)). +* `DEFAULT` または `MATERIALIZED` 式を持つカラムに対して `ALTER COLUMN MATERIALIZE` を実行した場合、セマンティクスどおりに正確に動作するようになりました。 [#58023](https://github.com/ClickHouse/ClickHouse/pull/58023) ([Duc Canh Le](https://github.com/canhld94)). +* ミューテーション処理中のエラー時に指数バックオフロジックを有効化しました。これにより CPU 使用率、メモリ使用量、およびログファイルサイズが削減されます。 [#58036](https://github.com/ClickHouse/ClickHouse/pull/58036) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* `InitialQuery` プロファイルイベントのカウントを改善。[#58195](https://github.com/ClickHouse/ClickHouse/pull/58195)([Unalian](https://github.com/Unalian))。 +* `storage_configuration` で `volume_priority` を指定できるようにしました。 [#58533](https://github.com/ClickHouse/ClickHouse/pull/58533) ([Andrey Zvonov](https://github.com/zvonand)). +* `T64` コーデックに `Date32` 型のサポートを追加。[#58738](https://github.com/ClickHouse/ClickHouse/pull/58738)([Hongbin Ma](https://github.com/binmahone))。 +* 複数の要素を持つ型で末尾のカンマを許可するようにしました。 [#59119](https://github.com/ClickHouse/ClickHouse/pull/59119) ([Aleksandr Musorin](https://github.com/AVMusorin)). +* 分散テーブルエンジンの設定は、サーバーの設定ファイル内で指定できるようになりました(MergeTree の設定と同様)。例えば、` false ` のように指定します。 [#59291](https://github.com/ClickHouse/ClickHouse/pull/59291) ([Azat Khuzhin](https://github.com/azat)). +* `system.zookeeper` を読み取る際に、切断やセッション有効期限切れを再試行するようになりました。これは、特にフォルトインジェクションによる切断が発生している状況で、`system.zookeeper` テーブルから多数の行を読み取る場合に有用です。 [#59388](https://github.com/ClickHouse/ClickHouse/pull/59388) ([Alexander Gololobov](https://github.com/davenger)). +* `input_format_values_interpret_expressions=0` の場合、先頭にゼロが付いた数値を 8 進数として解釈しなくなりました。 [#59403](https://github.com/ClickHouse/ClickHouse/pull/59403) ([Joanna Hulboj](https://github.com/jh0x)). +* 起動時および設定ファイルが変更されるたびに、ClickHouse は合計メモリトラッカーに設定されているハードメモリ制限を更新します。これらの制限は、さまざまなサーバー設定および(Linux 上の)cgroups の制限に基づいて計算されます。以前は、`/sys/fs/cgroup/memory.max`(cgroups v2 用)の設定がハードコードされていました。その結果、`/sys/fs/cgroup/my/nested/group/memory.max` のようなネストされたグループ(階層)に対して設定された cgroup v2 のメモリ制限は無視されていました。この問題は修正されました。v1 のメモリ制限の動作は変わっていません。[#59435](https://github.com/ClickHouse/ClickHouse/pull/59435)([Robert Schulze](https://github.com/rschu1ze))。 +* `INSERT` 実行時に、PK/PROJECTION/セカンダリインデックスの計算に要した時間を観測できる新しいプロファイルイベントを追加しました。 [#59436](https://github.com/ClickHouse/ClickHouse/pull/59436) ([Nikita Taranov](https://github.com/nickitat)). +* Ordered モードの S3Queue に対して、作成時に設定 `s3queue_last_processed_path` を使用して開始点を定義できるようにしました。 [#59446](https://github.com/ClickHouse/ClickHouse/pull/59446) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `clickhouse-local` の `system.tables` でもシステムテーブルに対するコメントを利用できるようにしました。 [#59493](https://github.com/ClickHouse/ClickHouse/pull/59493) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* `system.zookeeper` テーブル: 以前は結果全体をメモリ上に蓄積し、1 つの大きな chunk として返していました。この変更により、`system.zookeeper` から多数の行を読み取る際のメモリ消費を抑え、中間的な進捗(これまでに読み取られた行数)を表示できるようになり、結果セットが大きい場合の接続タイムアウトも回避できるようになります。 [#59545](https://github.com/ClickHouse/ClickHouse/pull/59545) ([Alexander Gololobov](https://github.com/davenger)). +* ダッシュボードが、URL の #hash 部分の圧縮済み状態と未圧縮状態の両方を理解できるようになりました(後方互換性のため)。[#59124](https://github.com/ClickHouse/ClickHouse/issues/59124) の継続。[#59548](https://github.com/ClickHouse/ClickHouse/pull/59548)([Amos Bird](https://github.com/amosbird))。 +* codec `DEFLATE_QPL` で使用されている Intel QPL を v1.3.1 から v1.4.0 に更新しました。また、ポーリングのタイムアウト機構のバグも修正しました。いくつかのケースで、タイムアウトが発生した際にタイムアウトが正しく機能せず、IAA と CPU が同じバッファを同時に処理してしまうことがあることを確認しました。現時点では、IAA コーデックのステータスが QPL_STS_BEING_PROCESSED ではないことを確認してから SW コーデックにフォールバックするようにしています。[#59551](https://github.com/ClickHouse/ClickHouse/pull/59551) ([jasperzhu](https://github.com/jinjunzh))。 +* ClickHouse Cloud では、アップグレードが自動的かつシームレスに行われるため、サーバーバージョンに関する警告を表示しないようにしました。 [#59657](https://github.com/ClickHouse/ClickHouse/pull/59657) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 自己解凍後、一時バイナリはコピーされるのではなく移動されるようになりました。 [#59661](https://github.com/ClickHouse/ClickHouse/pull/59661) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Apple macOS におけるスタックのアンワインド処理を修正しました。これにより [#53653](https://github.com/ClickHouse/ClickHouse/issues/53653) が解決します。[#59690](https://github.com/ClickHouse/ClickHouse/pull/59690)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* `max_parser_depth` 設定を誤って非常に大きな値に設定してしまった場合でも、パーサーでスタックオーバーフローを検出するようにしました。これにより [#59622](https://github.com/ClickHouse/ClickHouse/issues/59622) が解決します。 [#59697](https://github.com/ClickHouse/ClickHouse/pull/59697)([Alexey Milovidov](https://github.com/alexey-milovidov))。 [#60434](https://github.com/ClickHouse/ClickHouse/pull/60434) +* Kafka ストレージにおける XML および SQL から作成された named collection の挙動を統一しました。 [#59710](https://github.com/ClickHouse/ClickHouse/pull/59710) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* `merge_max_block_size_bytes` が十分に小さく設定されており、テーブルに横に長い行(文字列やタプル)が含まれている場合、バックグラウンドマージが無限ループに陥って進まなくなることがありました。この問題を修正しました。[https://github.com/ClickHouse/ClickHouse/pull/59340](https://github.com/ClickHouse/ClickHouse/pull/59340) のフォローアップです。 [#59812](https://github.com/ClickHouse/ClickHouse/pull/59812) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* CREATE TABLE で明示的に指定されている場合は、replica_path で uuid を許可するようにしました。 [#59908](https://github.com/ClickHouse/ClickHouse/pull/59908) ([Azat Khuzhin](https://github.com/azat))。 +* `system.tables` システムテーブルに ReplicatedMergeTree テーブル用のカラム `metadata_version` を追加しました。 [#59942](https://github.com/ClickHouse/ClickHouse/pull/59942) ([Maksim Kita](https://github.com/kitaisreal)). +* Keeper の改善: Prometheus には Keeper 関連のメトリクスおよびイベントのみを送信するようにしました。 [#59945](https://github.com/ClickHouse/ClickHouse/pull/59945) ([Antonio Andelic](https://github.com/antonio2368)). +* ダッシュボードは、アップグレード後に system テーブルの構造が変更されていても、異なる ClickHouse バージョンにまたがるメトリクスを表示します。 [#59967](https://github.com/ClickHouse/ClickHouse/pull/59967) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* ファイルからAZ情報を読み込めるようになりました。 [#59976](https://github.com/ClickHouse/ClickHouse/pull/59976) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Keeper の改善: Disk 関連の操作失敗時に再試行を追加しました。 [#59980](https://github.com/ClickHouse/ClickHouse/pull/59980) ([Antonio Andelic](https://github.com/antonio2368)). +* 新しい設定 `backups.remove_backup_files_after_failure` を追加: ` true `。 [#60002](https://github.com/ClickHouse/ClickHouse/pull/60002) ([Vitaly Baranov](https://github.com/vitlibar))。 +* S3 ファイルのコピー時に、GCP が `GATEWAY_TIMEOUT` HTTP エラーコード付きの `Internal Error` を返した場合、GCP 経由のコピーからバッファへのコピーにフォールバックするようにしました。 [#60164](https://github.com/ClickHouse/ClickHouse/pull/60164) ([Maksim Kita](https://github.com/kitaisreal)). +* `ULIDStringToDateTime` の短絡実行。 [#60211](https://github.com/ClickHouse/ClickHouse/pull/60211) ([Juan Madurga](https://github.com/jlmadurga)). +* `system.backups` および `system.backup_log` テーブルに `query_id` カラムを追加しました。`error` カラムにエラーのスタックトレースを追加しました。 [#60220](https://github.com/ClickHouse/ClickHouse/pull/60220) ([Maksim Kita](https://github.com/kitaisreal)). +* MySQL ポート経由の接続では、QuickSight をそのまま利用できるようにするため、`prefer_column_name_to_alias = 1` の設定が自動的に有効になりました。加えて、`mysql_map_string_to_text_in_show_columns` と `mysql_map_fixed_string_to_text_in_show_columns` の各設定もデフォルトで有効になり、こちらも MySQL 接続にのみ影響します。これにより、より多くの BI ツールとの互換性が向上します。[#60365](https://github.com/ClickHouse/ClickHouse/pull/60365) ([Robert Schulze](https://github.com/rschu1ze))。 +* JavaScript コード内のレースコンディションを修正し、チャートが重なって二重に表示される不具合を解消しました。 [#60392](https://github.com/ClickHouse/ClickHouse/pull/60392) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + +#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement-6} + +* カバレッジ収集とイントロスペクションを行うビルドおよびテストを追加しました。[#56102](https://github.com/ClickHouse/ClickHouse/issues/56102) の継続です。 [#58792](https://github.com/ClickHouse/ClickHouse/pull/58792) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* CMake のクロスコンパイル用ツールチェーン変数が設定されている場合に、`corrosion-cmake` 内の Rust ツールチェーンを更新するようにしました。 [#59309](https://github.com/ClickHouse/ClickHouse/pull/59309) ([Aris Tritas](https://github.com/aris-aiven))。 +* ASTLiterals に対していくつかの fuzzing を追加しました。 [#59383](https://github.com/ClickHouse/ClickHouse/pull/59383) ([Raúl Marín](https://github.com/Algunenano))。 +* ClickHouse コンテナ起動時に毎回 initdb スクリプトを実行したい場合は、環境変数 `CLICKHOUSE_ALWAYS_RUN_INITDB_SCRIPTS` を設定する必要があります。 [#59808](https://github.com/ClickHouse/ClickHouse/pull/59808) ([Alexander Nikolaev](https://github.com/AlexNik))。 +* 汎用的な ClickHouse コンポーネント(server/client など)を無効化する機能を削除しましたが、ODBC や keeper など追加のライブラリを必要とする一部のコンポーネントについては、引き続き無効化可能なままとしました。 [#59857](https://github.com/ClickHouse/ClickHouse/pull/59857) ([Azat Khuzhin](https://github.com/azat))。 +* Query fuzzer がクエリ内の SETTINGS を fuzzing するようにしました。 [#60087](https://github.com/ClickHouse/ClickHouse/pull/60087) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* clang-19(master)で ClickHouse をビルドするためのサポートを追加しました。 [#60448](https://github.com/ClickHouse/ClickHouse/pull/60448) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 + +#### バグ修正(公式安定版リリースにおけるユーザーに見える不具合) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-8} + +* TTL WHERE で発生する「Non-ready set」エラーの不具合を修正しました。 [#57430](https://github.com/ClickHouse/ClickHouse/pull/57430) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* `quantilesGK` 関数のバグを修正 [#58216](https://github.com/ClickHouse/ClickHouse/pull/58216) ([李扬](https://github.com/taiyang-li))。 +* Decimal 引数に対する `intDiv` の不正な動作を修正しました [#59243](https://github.com/ClickHouse/ClickHouse/pull/59243) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* FixedString 入力に対する `translate` の不具合を修正 [#59356](https://github.com/ClickHouse/ClickHouse/pull/59356) ([Raúl Marín](https://github.com/Algunenano)). +* Keeper におけるダイジェスト計算の不具合を修正 [#59439](https://github.com/ClickHouse/ClickHouse/pull/59439) ([Antonio Andelic](https://github.com/antonio2368))。 +* デバッグシンボルを含まないバイナリのスタックトレースを修正 [#59444](https://github.com/ClickHouse/ClickHouse/pull/59444) ([Azat Khuzhin](https://github.com/azat)). +* カラム固有の設定を指定した場合の `ASTAlterCommand::formatImpl` を修正しました。 [#59445](https://github.com/ClickHouse/ClickHouse/pull/59445) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Analyzer を用いて `SELECT * FROM [...] ORDER BY ALL` を修正しました [#59462](https://github.com/ClickHouse/ClickHouse/pull/59462) ([zhongyuankai](https://github.com/zhongyuankai)). +* 分散クエリのキャンセル時に発生し得る捕捉されない例外を修正 [#59487](https://github.com/ClickHouse/ClickHouse/pull/59487) ([Azat Khuzhin](https://github.com/azat)). +* 複合型に対する MAX のルールを permutation と揃えました [#59498](https://github.com/ClickHouse/ClickHouse/pull/59498) ([Raúl Marín](https://github.com/Algunenano)). +* `update_insert_deduplication_token_in_dependent_materialized_views` を渡したときのコーナーケースを修正。 [#59544](https://github.com/ClickHouse/ClickHouse/pull/59544) ([Jordi Villar](https://github.com/jrdi))。 +* 空の値に対して arrayElement / map を適用した際の結果が誤っていた問題を修正 [#59594](https://github.com/ClickHouse/ClickHouse/pull/59594) ([Raúl Marín](https://github.com/Algunenano))。 +* 空の状態をマージする際に topK がクラッシュする不具合を修正 [#59603](https://github.com/ClickHouse/ClickHouse/pull/59603) ([Raúl Marín](https://github.com/Algunenano))。 +* 定数シャーディングキーを持つ分散テーブルの問題を修正 [#59606](https://github.com/ClickHouse/ClickHouse/pull/59606) ([Vitaly Baranov](https://github.com/vitlibar))。 +* WingFuzz により発見された KQL の不具合を修正 [#59626](https://github.com/ClickHouse/ClickHouse/pull/59626) ([Yong Wang](https://github.com/kashwy))。 +* AsynchronousBoundedReadBuffer で発生していた "Read beyond last offset" エラーを修正 [#59630](https://github.com/ClickHouse/ClickHouse/pull/59630) ([Vitaly Baranov](https://github.com/vitlibar))。 +* RewriteSumFunctionWithSumAndCountVisitor で関数エイリアスを維持する [#59658](https://github.com/ClickHouse/ClickHouse/pull/59658) ([Raúl Marín](https://github.com/Algunenano)). +* 初期クエリ以外のクエリにおける開始時刻を修正 [#59662](https://github.com/ClickHouse/ClickHouse/pull/59662) ([Raúl Marín](https://github.com/Algunenano)). +* `minmax` スキップ索引の引数の型を検証するようにしました [#59733](https://github.com/ClickHouse/ClickHouse/pull/59733) ([Anton Popov](https://github.com/CurtizJ))。 +* FixedString 型を入力とする leftPad / rightPad 関数を修正 [#59739](https://github.com/ClickHouse/ClickHouse/pull/59739) ([Raúl Marín](https://github.com/Algunenano))。 +* 関数 `countMatches` における AST fuzzer 関連の問題を修正 [#59752](https://github.com/ClickHouse/ClickHouse/pull/59752) ([Robert Schulze](https://github.com/rschu1ze))。 +* RabbitMQ: ack も nack も行われないメッセージが発生する不具合を修正 [#59775](https://github.com/ClickHouse/ClickHouse/pull/59775) ([Kseniia Sumarokova](https://github.com/kssenii)). +* StorageURL がクエリの一部を単一スレッドで実行していた問題を修正 [#59833](https://github.com/ClickHouse/ClickHouse/pull/59833) ([Michael Kolupaev](https://github.com/al13n321)). +* S3Queue: 未初期化の値を修正 [#59897](https://github.com/ClickHouse/ClickHouse/pull/59897) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 括弧で囲まれたパーティション式の構文解析を修正 [#59901](https://github.com/ClickHouse/ClickHouse/pull/59901) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 +* HTTP 経由で使用した場合の JSONColumnsWithMetadata フォーマットで発生するクラッシュを修正 [#59925](https://github.com/ClickHouse/ClickHouse/pull/59925) ([Kruglov Pavel](https://github.com/Avogar))。 +* Analyzer で返り値が変わってしまう場合には sum を count に書き換えないようにしました [#59926](https://github.com/ClickHouse/ClickHouse/pull/59926) ([Azat Khuzhin](https://github.com/azat)). +* UniqExactSet の読み取り時のクラッシュを修正 [#59928](https://github.com/ClickHouse/ClickHouse/pull/59928) ([Maksim Kita](https://github.com/kitaisreal))。 +* ReplicatedMergeTree における無効な metadata_version の修正 [#59946](https://github.com/ClickHouse/ClickHouse/pull/59946) ([Maksim Kita](https://github.com/kitaisreal)). +* `StorageDistributed` のデータレースを修正 [#59987](https://github.com/ClickHouse/ClickHouse/pull/59987) ([Nikita Taranov](https://github.com/nickitat))。 +* Docker: オプションが無効な場合ではなく有効な場合に init スクリプトを実行するように修正 [#59991](https://github.com/ClickHouse/ClickHouse/pull/59991) ([jktng](https://github.com/jktng))。 +* `SQLite` 向けの、シングルクォートを含む INSERT 文を修正(シングルクォートをバックスラッシュではなくクォートでエスケープするように変更)[#60015](https://github.com/ClickHouse/ClickHouse/pull/60015)([Azat Khuzhin](https://github.com/azat))。 +* `arrayFold` のいくつかの論理エラーを修正。 [#60022](https://github.com/ClickHouse/ClickHouse/pull/60022) ([Raúl Marín](https://github.com/Algunenano))。 +* optimize_uniq_to_count がカラムエイリアスを削除してしまう不具合を修正。 [#60026](https://github.com/ClickHouse/ClickHouse/pull/60026) ([Raúl Marín](https://github.com/Algunenano)). +* S3Queue テーブルを DROP する際に発生しうる例外を修正 [#60036](https://github.com/ClickHouse/ClickHouse/pull/60036) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* 単一のリテラルに対する `NOT` の書式を修正。[#60042](https://github.com/ClickHouse/ClickHouse/pull/60042)([Raúl Marín](https://github.com/Algunenano))。 +* DDLLogEntry でハードコードされた 4096 の代わりに、コンテキストからの max_query_size を使用するように変更 [#60083](https://github.com/ClickHouse/ClickHouse/pull/60083) ([Kruglov Pavel](https://github.com/Avogar))。 +* `table` という名前のテーブルを含むクエリのフォーマットの不整合を修正。構造が線形でない場合の `UNION ALL`、`INTERSECT`、`EXCEPT` を含むクエリの誤ったフォーマットを修正。これにより #52349 がクローズされた。`SYSTEM ... DROP FILESYSTEM CACHE`、`SYSTEM ... REFRESH/START/STOP/CANCEL/TEST VIEW`、`SYSTEM ENABLE/DISABLE FAILPOINT` を含む `SYSTEM` クエリの誤ったフォーマットを修正。パラメータ化された DDL クエリのフォーマットを修正。`DESCRIBE FILESYSTEM CACHE` クエリのフォーマットを修正。`SET param_...`(パラメータを設定するクエリ)の誤ったフォーマットを修正。`CREATE INDEX` クエリの誤ったフォーマットを修正。`CREATE USER` および類似クエリのフォーマットの不整合を修正。`CREATE SETTINGS PROFILE` のフォーマットの不整合を修正。`ALTER ... MODIFY REFRESH` の誤ったフォーマットを修正。フレームオフセットが式だった場合のウィンドウ関数のフォーマットの不整合を修正。`plus` などの演算子を実装する関数の後に使用された場合の `RESPECT NULLS` と `IGNORE NULLS` のフォーマットの不整合を修正。`SYSTEM SYNC REPLICA ... LIGHTWEIGHT FROM ...` の極端に悪いフォーマットを修正。`GROUP BY GROUPING SETS ... WITH ROLLUP/CUBE/TOTALS` を含む無効なクエリのフォーマットの不整合を修正。`GRANT CURRENT GRANTS` のフォーマットの不整合を修正。`CREATE TABLE (... COLLATE)` のフォーマットの不整合を修正。さらに、サブクエリ内の `EXPLAIN` の誤ったフォーマットを修正(#60102)。ラムダ関数の誤ったフォーマットを修正(#60012)。将来この種のひどいフォーマットを見逃さないようにチェックを追加。[#60095](https://github.com/ClickHouse/ClickHouse/pull/60095)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* サブクエリ内の EXPLAIN 出力の書式の不整合を修正 [#60102](https://github.com/ClickHouse/ClickHouse/pull/60102) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* Nullable 使用時に発生する cosineDistance のクラッシュを修正 [#60150](https://github.com/ClickHouse/ClickHouse/pull/60150) ([Raúl Marín](https://github.com/Algunenano))。 +* 文字列表現の bool 値を bool 型にキャストできるようにしました [#60160](https://github.com/ClickHouse/ClickHouse/pull/60160) ([Robert Schulze](https://github.com/rschu1ze))。 +* `system.s3queue_log` を修正 [#60166](https://github.com/ClickHouse/ClickHouse/pull/60166) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* Nullable な集約関数名を指定した場合の `arrayReduce` の不具合を修正 [#60188](https://github.com/ClickHouse/ClickHouse/pull/60188) ([Raúl Marín](https://github.com/Algunenano))。 +* `S3Queue` の機密情報をマスク [#60233](https://github.com/ClickHouse/ClickHouse/pull/60233) ([Kseniia Sumarokova](https://github.com/kssenii)). +* HTTP の例外コードを修正。 [#60252](https://github.com/ClickHouse/ClickHouse/pull/60252) ([Austin Kothig](https://github.com/kothiga)). +* S3Queue:バグを修正(不安定だったテスト `test_storage_s3_queue/test.py::test_shards_distributed` も併せて修正) [#60282](https://github.com/ClickHouse/ClickHouse/pull/60282) ([Kseniia Sumarokova](https://github.com/kssenii)). +* IPv6 を扱うハッシュ関数における未初期化値の使用および誤った結果を修正 [#60359](https://github.com/ClickHouse/ClickHouse/pull/60359) ([Kruglov Pavel](https://github.com/Avogar))。 +* null 引数の処理に関する OptimizeDateOrDateTimeConverterWithPreimageVisitor を修正 [#60453](https://github.com/ClickHouse/ClickHouse/pull/60453) ([Raúl Marín](https://github.com/Algunenano))。 +* KQL または PRQL 方言を使用するクライアントのいずれかから送信された分散テーブルクエリがレプリカ上で実行できなかった軽微なバグを修正しました。 [#59674](https://github.com/ClickHouse/ClickHouse/issues/59674). [#60470](https://github.com/ClickHouse/ClickHouse/pull/60470) ([Alexey Milovidov](https://github.com/alexey-milovidov)) [#59674](https://github.com/ClickHouse/ClickHouse/pull/59674) ([Austin Kothig](https://github.com/kothiga)). + +### ClickHouse 24.1 リリース(2024-01-30)。[プレゼンテーション](https://presentations.clickhouse.com/2024-release-24.1/)、[動画](https://www.youtube.com/watch?v=pBF9g0wGAGs) {#a-id241a-clickhouse-release-241-2024-01-30} + + + +#### 後方互換性のない変更 {#backward-incompatible-change-9} + +* 設定 `print_pretty_type_names` がデフォルトで有効になりました。旧来の挙動を維持したい場合は、この設定を無効にするか、`SET compatibility = '23.12'` を実行してください。 [#57726](https://github.com/ClickHouse/ClickHouse/pull/57726) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* MergeTree の設定 `clean_deleted_rows` は非推奨となり、もはや効果を持ちません。`OPTIMIZE` に対する `CLEANUP` キーワードは、デフォルトでは許可されません(`allow_experimental_replacing_merge_with_cleanup` が有効化されている場合を除く)。[#58316](https://github.com/ClickHouse/ClickHouse/pull/58316) ([Alexander Tokmakov](https://github.com/tavplubix)). +* 関数 `reverseDNSQuery` は利用できなくなりました。これにより [#58368](https://github.com/ClickHouse/ClickHouse/issues/58368) がクローズされます。 [#58369](https://github.com/ClickHouse/ClickHouse/pull/58369) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 設定ファイル内のアクセス制御を改善するため、さまざまな変更が有効になりました。これらの変更は挙動に影響するため、`access_control_improvements` セクションの `config.xml` を確認してください。確信が持てない場合は、設定ファイル内の値を前バージョンと同じに保ってください。 [#58584](https://github.com/ClickHouse/ClickHouse/pull/58584) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* NaN 値を扱う際の `sumMapFiltered` の動作が改善されました。NaN 値は(ランダムではなく)末尾に配置され、任意の値とは異なるものとして扱われます。また、`-0` も `0` と等しいものとして扱われるようになりました。0 の値は破棄されるため、`-0` の値も破棄されます。 [#58959](https://github.com/ClickHouse/ClickHouse/pull/58959) ([Raúl Marín](https://github.com/Algunenano)). +* 関数 `visibleWidth` はドキュメントに記載されているとおりに動作するようになります。以前のバージョンでは、`lengthUTF8` 関数と同様に、文字列のシリアライズ後のコードポイント数を数えるだけで、ゼロ幅文字や結合文字、全角文字、タブ、削除文字を考慮していませんでした。今後はこれらを考慮した挙動に変更されています。旧来の挙動を維持したい場合は、`function_visible_width_behavior` を `0` に設定するか、`compatibility` を `23.12` 以下に設定してください。 [#59022](https://github.com/ClickHouse/ClickHouse/pull/59022) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* `Kusto` 方言は、次の 2 つのバグが修正されるまで無効化されています: [#59037](https://github.com/ClickHouse/ClickHouse/issues/59037) および [#59036](https://github.com/ClickHouse/ClickHouse/issues/59036)。 [#59305](https://github.com/ClickHouse/ClickHouse/pull/59305) ([Alexey Milovidov](https://github.com/alexey-milovidov)). `Kusto` を使用しようとすると、必ず例外が発生します。 +* `FINAL` 修飾子のより効率的な実装により、`max_threads = 1` の場合であっても順序が維持されることは、もはや保証されません。これまでの挙動に依存している場合は、`enable_vertical_final` を 0 に設定するか、`compatibility` を `23.12` に設定してください。 + +#### 新機能 {#new-feature-11} + +* 他のデータ型のユニオンを表す Variant データ型を実装しました。型 `Variant(T1, T2, ..., TN)` は、この型の各行は `T1`、`T2`、…、`TN` のいずれか、またはいずれでもない値(`NULL` 値)を持つことを意味します。Variant 型は `allow_experimental_variant_type` 設定を有効にすると利用可能です。参考: [#54864](https://github.com/ClickHouse/ClickHouse/issues/54864)。[#58047](https://github.com/ClickHouse/ClickHouse/pull/58047)([Kruglov Pavel](https://github.com/Avogar))。 +* 特定の設定(現在は `min_compress_block_size` と `max_compress_block_size`)は、カラム単位で指定できるようになり、対応するテーブルレベルの設定よりも優先されます。例: `CREATE TABLE tab (col String SETTINGS (min_compress_block_size = 81920, max_compress_block_size = 163840)) ENGINE = MergeTree ORDER BY tuple();`。 [#55201](https://github.com/ClickHouse/ClickHouse/pull/55201)([Duc Canh Le](https://github.com/canhld94))。 +* `quantileDD` 集約関数と、それに対応する `quantilesDD` および `medianDD` を追加しました。これは DDSketch [https://www.vldb.org/pvldb/vol12/p2195-masson.pdf](https://www.vldb.org/pvldb/vol12/p2195-masson.pdf) に基づいています。### ユーザー向け変更に関するドキュメントエントリ。[#56342](https://github.com/ClickHouse/ClickHouse/pull/56342)([Srikanth Chekuri](https://github.com/srikanthccv))。 +* 任意の種類のメタデータ型を用いた任意の種類のオブジェクトストレージを構成できるようにしました。[#58357](https://github.com/ClickHouse/ClickHouse/pull/58357) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `distributed_ddl_output_mode` に `null_status_on_timeout_only_active` と `throw_only_active` のモードを追加し、非アクティブなレプリカを待つ必要がなくなりました。 [#58350](https://github.com/ClickHouse/ClickHouse/pull/58350) ([Alexander Tokmakov](https://github.com/tavplubix)). +* 部分配列を計算するための関数 `arrayShingles` を追加しました。例えば、`arrayShingles([1, 2, 3, 4, 5], 3)` は `[[1,2,3],[2,3,4],[3,4,5]]` を返します。 [#58396](https://github.com/ClickHouse/ClickHouse/pull/58396) ([Zheng Miao](https://github.com/zenmiao7)). +* IDNA 標準に従って国際化ドメイン名を ASCII 表現に変換する際に有用な関数 `punycodeEncode`、`punycodeDecode`、`idnaEncode`、`idnaDecode` を追加しました。 [#58454](https://github.com/ClickHouse/ClickHouse/pull/58454) ([Robert Schulze](https://github.com/rschu1ze))。 +* 文字列の類似度を計算する関数 `dramerauLevenshteinDistance`、`jaroSimilarity`、`jaroWinklerSimilarity` を追加しました。 [#58531](https://github.com/ClickHouse/ClickHouse/pull/58531) ([Robert Schulze](https://github.com/rschu1ze)). +* 出力圧縮レベルを変更するための `output_format_compression_level` と、出力の圧縮方式が `zstd` の場合に圧縮ウィンドウサイズを明示的に設定し、ロングレンジモードを有効化するための `output_format_compression_zstd_window_log` という 2 つの設定を追加しました。これは `INTO OUTFILE` およびテーブル関数 `file`、`url`、`hdfs`、`s3`、`azureBlobStorage` への書き込み時に適用されます。[#58539](https://github.com/ClickHouse/ClickHouse/pull/58539) ([Duc Canh Le](https://github.com/canhld94)). +* 出力先がターミナルでない場合は、Pretty フォーマットでの ANSI エスケープシーケンスを自動的に無効化するようにしました。また、`output_format_pretty_color` 設定に新たに `auto` モードを追加しました。[#58614](https://github.com/ClickHouse/ClickHouse/pull/58614) ([Shaun Struwig](https://github.com/Blargian))。 +* [Sqids](https://sqids.org/) をデコードする `sqidDecode` 関数を追加しました。 [#58544](https://github.com/ClickHouse/ClickHouse/pull/58544) ([Robert Schulze](https://github.com/rschu1ze))。 +* JSON 入力フォーマットで Bool 値を String 値として読み取れるようになりました。これは、デフォルトで有効な `input_format_json_read_bools_as_strings` SETTING によって制御されます。 [#58561](https://github.com/ClickHouse/ClickHouse/pull/58561) ([Kruglov Pavel](https://github.com/Avogar)). +* 時系列データを季節性成分、トレンド成分、および残差成分に分解する関数 `seriesDecomposeSTL` を追加しました。 [#57078](https://github.com/ClickHouse/ClickHouse/pull/57078) ([Bhavna Jindal](https://github.com/bhavnajindal)). +* MaterializedMySQL 向けの MySQL Binlog Client を導入: 1 つの binlog 接続で複数のデータベースを扱えるようにしました。 [#57323](https://github.com/ClickHouse/ClickHouse/pull/57323) ([Val Doroshchuk](https://github.com/valbok))。 +* Intel QuickAssist Technology (QAT) は、ハードウェアアクセラレーションによる圧縮および暗号処理を提供します。ClickHouse に、新しい圧縮コーデック `ZSTD_QAT` が追加され、zstd 圧縮に QAT を利用できるようになりました。このコーデックは [Intel's QATlib](https://github.com/intel/qatlib) と [Intel's QAT ZSTD Plugin](https://github.com/intel/QAT-ZSTD-Plugin) を使用します。現時点では、ハードウェアで高速化されるのは圧縮のみです(QAT を初期化できなかった場合はソフトウェアによるフォールバックが行われます)。伸長処理は常にソフトウェアで実行されます。[#57509](https://github.com/ClickHouse/ClickHouse/pull/57509) ([jasperzhu](https://github.com/jinjunzh))。 +* S3 ディスク用にオブジェクトストレージのキーを生成する新しい方式を実装しました。キーのフォーマットは、ディスク定義内の `key_template` オプションを用いて、`re2` 正規表現構文で定義できるようになりました。 [#57663](https://github.com/ClickHouse/ClickHouse/pull/57663) ([Sema Checherinda](https://github.com/CheSema))。 +* テーブル system.dropped_tables_parts には、system.dropped_tables テーブルのパーツ(DROP されたが、まだ物理的には削除されていないテーブル)が含まれます。 [#58038](https://github.com/ClickHouse/ClickHouse/pull/58038) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* テーブルに紐付けられる materialized view の数を制限する設定 `max_materialized_views_size_for_table` を追加しました。 [#58068](https://github.com/ClickHouse/ClickHouse/pull/58068) ([zhongyuankai](https://github.com/zhongyuankai)). +* `clickhouse-format` の改良: `VALUES` を使用した INSERT クエリのサポート、コメントのサポート(出力するには `--comments` を使用)、長いクエリに対してのみ複数行フォーマットを行うための `--max_line_length` オプションのサポート。 [#58246](https://github.com/ClickHouse/ClickHouse/pull/58246) ([vdimir](https://github.com/vdimir))。 +* `system.parts` を含むすべての system テーブルを `clickhouse-local` でアタッチできるようにしました。これにより [#58312](https://github.com/ClickHouse/ClickHouse/issues/58312) がクローズされます。[#58359](https://github.com/ClickHouse/ClickHouse/pull/58359)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 関数 `transform` が `Enum` データ型をサポートするようになりました。これにより [#58241](https://github.com/ClickHouse/ClickHouse/issues/58241) がクローズされました。[#58360](https://github.com/ClickHouse/ClickHouse/pull/58360)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* テーブル `system.database_engines` を追加。 [#58390](https://github.com/ClickHouse/ClickHouse/pull/58390) ([Bharat Nallan](https://github.com/bharatnc))。データベースエンジンをコードベース内で個別に登録可能に。 [#58365](https://github.com/ClickHouse/ClickHouse/pull/58365) ([Bharat Nallan](https://github.com/bharatnc))。インタープリタを個別に登録可能に。 [#58443](https://github.com/ClickHouse/ClickHouse/pull/58443) ([Bharat Nallan](https://github.com/bharatnc))。 +* `SYSTEM SYNC REPLICA LIGHTWEIGHT` クエリ向けに `FROM <Replicas>` 修飾子を追加しました。`FROM` 修飾子を使用すると、指定されたソースレプリカに加えて、ZooKeeper 上に存在しないレプリカや `source_replica` が空のレプリカに対してのみ、フェッチおよび drop-range の完了を待機するようになります。[#58393](https://github.com/ClickHouse/ClickHouse/pull/58393) ([Jayme Bird](https://github.com/jaymebrd))。 +* `update_insert_deduplication_token_in_dependent_materialized_views` SETTING を追加しました。この SETTING により、依存する materialized view への INSERT 時に、テーブル識別子を用いて INSERT の重複排除トークンを更新できるようになります。[#59165](https://github.com/ClickHouse/ClickHouse/issues/59165) をクローズします。 [#59238](https://github.com/ClickHouse/ClickHouse/pull/59238) ([Maksim Kita](https://github.com/kitaisreal))。 +* 非同期メトリクスを更新する `SYSTEM RELOAD ASYNCHRONOUS METRICS` ステートメントを追加しました。主にテストや開発時の利用に役立ちます。 [#53710](https://github.com/ClickHouse/ClickHouse/pull/53710) ([Robert Schulze](https://github.com/rschu1ze))。 + +#### パフォーマンスの改善 {#performance-improvement-11} + +* 並列レプリカのコーディネーションが、より高い並列性とキャッシュ局所性を実現するように書き換えられました。数百のレプリカにおいて線形にスケールすることが検証されています。また、順序どおりに読み取ることもサポートしました。[#57968](https://github.com/ClickHouse/ClickHouse/pull/57968) ([Nikita Taranov](https://github.com/nickitat))。 +* HTTP の送信バッファリングを、ネイティブ ClickHouse バッファに置き換えました。インターフェイスごとのバイト数を計測するメトリクスを追加しました。 [#56064](https://github.com/ClickHouse/ClickHouse/pull/56064) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* 分散クエリでは、`uniqExact` の大きな集約状態が並列にマージされるようになりました。 [#59009](https://github.com/ClickHouse/ClickHouse/pull/59009) ([Nikita Taranov](https://github.com/nickitat)). +* `MergeTree` テーブルからの読み取り後のメモリ使用量を削減しました。 [#59290](https://github.com/ClickHouse/ClickHouse/pull/59290) ([Anton Popov](https://github.com/CurtizJ)). +* vertical マージにおけるメモリ使用量を削減しました。 [#59340](https://github.com/ClickHouse/ClickHouse/pull/59340) ([Anton Popov](https://github.com/CurtizJ)). +* より多くのケースで Keeper の起動時に大量のメモリを消費しないようにしました。 [#58455](https://github.com/ClickHouse/ClickHouse/pull/58455) ([Antonio Andelic](https://github.com/antonio2368)). +* Keeper の改善: 保存ノードに対して Keeper が使用するメモリ量を削減。 [#59002](https://github.com/ClickHouse/ClickHouse/pull/59002) ([Antonio Andelic](https://github.com/antonio2368)). +* よりキャッシュ効率の高い最終実装となりました。動作変更に関する注意: 以前は、単一ストリームで読み取りを行う(例: `max_threads = 1`)`FINAL` 修飾子付きクエリは、明示的に `ORDER BY` 句を指定しなくてもソートされた出力を生成していました。`enable_vertical_final = true` の場合(これはデフォルトで有効です)、この挙動はもはや保証されません。[#54366](https://github.com/ClickHouse/ClickHouse/pull/54366)([Duc Canh Le](https://github.com/canhld94))。 +* `ReadBufferFromIStream`(S3 からの読み取りなどに使用される)での不要なコピー処理を回避しました。 [#56961](https://github.com/ClickHouse/ClickHouse/pull/56961) ([Nikita Taranov](https://github.com/nickitat))。 +* 入力が Array(Map)/Array(Array(Num))/Array(Array(String))/Array(BigInt)/Array(Decimal) の場合に、arrayElement 関数を最適化しました。以前の実装では、必要以上に多くのメモリアロケーションを行っていました。この最適化により、とくに入力型が Array(Map) の場合に、最大で約 6 倍の高速化が得られます。 [#56403](https://github.com/ClickHouse/ClickHouse/pull/56403) ([李扬](https://github.com/taiyang-li)). +* コンパクトなパーツから1つのカラムに含まれる複数のサブカラムを読み取る際、そのカラムの読み取りを1回にまとめました。 [#57631](https://github.com/ClickHouse/ClickHouse/pull/57631) ([Kruglov Pavel](https://github.com/Avogar)). +* `sum(column + constant)` 関数の AST を書き換えました。Analyzer の最適化パスとして利用可能です [#57853](https://github.com/ClickHouse/ClickHouse/pull/57853) ([Jiebin Sun](https://github.com/jiebinn))。 +* 関数 `match` の評価時に、スキッピングインデックス `ngrambf_v1` および `tokenbf_v1` を利用するようになりました。 [#57882](https://github.com/ClickHouse/ClickHouse/pull/57882) ([凌涛](https://github.com/lingtaolf)). +* 関数 `match` の評価に反転インデックスが利用されるようになりました。 [#58284](https://github.com/ClickHouse/ClickHouse/pull/58284) ([凌涛](https://github.com/lingtaolf))。 +* MergeTree `FINAL` は、同じ L0 以外のパーツ内の行同士を比較しません。 [#58142](https://github.com/ClickHouse/ClickHouse/pull/58142) ([Duc Canh Le](https://github.com/canhld94))。 +* `iota` 呼び出し(配列を連番で埋める処理)を高速化。 [#58271](https://github.com/ClickHouse/ClickHouse/pull/58271) ([Raúl Marín](https://github.com/Algunenano)). +* 非数値型に対する MIN/MAX の高速化。 [#58334](https://github.com/ClickHouse/ClickHouse/pull/58334) ([Raúl Marín](https://github.com/Algunenano)). +* BMI2/SSE の intrinsics を利用して、フィルターの組み合わせ(マルチステージ `PREWHERE` など)を最適化しました [#58800](https://github.com/ClickHouse/ClickHouse/pull/58800) ([Zhiguo Zhou](https://github.com/ZhiguoZh))。 +* `clickhouse-local` が使用するスレッド数を 1 つ減らしました。 [#58968](https://github.com/ClickHouse/ClickHouse/pull/58968) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Nullable型での `multiIf` 関数のパフォーマンスを改善しました。 [#57745](https://github.com/ClickHouse/ClickHouse/pull/57745) ([KevinyhZou](https://github.com/KevinyhZou)). +* 未使用の jemalloc ページを解放する `SYSTEM JEMALLOC PURGE` を追加し、プロファイラが有効な場合に jemalloc プロファイルを制御する `SYSTEM JEMALLOC [ ENABLE | DISABLE | FLUSH ] PROFILE` を追加しました。Keeper には jemalloc 関連の 4LW コマンドを追加しました。jemalloc の統計情報をダンプする `jmst`、およびプロファイラが有効な場合に jemalloc プロファイルを制御する `jmfp`、`jmep`、`jmdp` です。 [#58665](https://github.com/ClickHouse/ClickHouse/pull/58665) ([Antonio Andelic](https://github.com/antonio2368)). +* S3 へのバックアップ時のメモリ使用量を削減しました。 [#58962](https://github.com/ClickHouse/ClickHouse/pull/58962) ([Vitaly Baranov](https://github.com/vitlibar)). + +#### 改善点 {#improvement-11} + +* すべての system テーブルのカラムにコメント(簡潔な説明)を追加しました。これにはいくつか理由があります。- system テーブルは頻繁に利用しており、開発者にとって特定のカラムの目的や意味を理解するのが非常に難しい場合があります。- system テーブルは(新規追加や既存の変更を含めて)頻繁に変更されるため、それらに関するドキュメントは常に古くなりがちです。例えば、[`system.parts`](/operations/system-tables/parts) のドキュメントページを参照してください。多くのカラムが記載されていません。- 最終的には、ClickHouse 自体からドキュメントを直接生成できるようにしたいと考えています。 [#58356](https://github.com/ClickHouse/ClickHouse/pull/58356)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* サブクエリにエイリアスを付けなくても `PASTE JOIN` を使用するクエリを実行できるようにしました。 [#58654](https://github.com/ClickHouse/ClickHouse/pull/58654) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* macOS での `MySQL`/`MariaDB` 統合を有効化。これにより [#21191](https://github.com/ClickHouse/ClickHouse/issues/21191) がクローズされました。 [#46316](https://github.com/ClickHouse/ClickHouse/pull/46316) ([Alexey Milovidov](https://github.com/alexey-milovidov)) ([Robert Schulze](https://github.com/rschu1ze))。 +* `max_rows_in_set_to_optimize_join` を既定で無効にしました。 [#56396](https://github.com/ClickHouse/ClickHouse/pull/56396) ([vdimir](https://github.com/vdimir)). +* `ON CLUSTER` DDL クエリおよび Replicated データベースエンジンにおいて、ホスト名の解決を回避できるようにする `` 構成パラメータを追加しました。これにより、クラスタ定義の変更があった場合にキューが詰まって停止する可能性が軽減されます。 [#57573](https://github.com/ClickHouse/ClickHouse/issues/57573) をクローズしました。 [#57603](https://github.com/ClickHouse/ClickHouse/pull/57603)([Nikolay Degterinsky](https://github.com/evillique))。 +* ファイルシステムキャッシュ用の `load_metadata_threads` を 16 に増やし、サーバーの起動時間を短縮しました。 [#57732](https://github.com/ClickHouse/ClickHouse/pull/57732) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* マージ/ミューテーションのスループットを制限できる機能を追加しました(`max_mutations_bandwidth_for_server` / `max_merges_bandwidth_for_server`)。[#57877](https://github.com/ClickHouse/ClickHouse/pull/57877)([Azat Khuzhin](https://github.com/azat))。 +* system テーブル `system.server_settings` 内のドキュメント化されていなかった (boolean) カラム `is_hot_reloadable` を、`No`、`Yes`、`IncreaseOnly`、`DecreaseOnly` の値を取りうる (Enum8) カラム `changeable_without_restart` に置き換えました。また、このカラムについてもドキュメント化しました。 [#58029](https://github.com/ClickHouse/ClickHouse/pull/58029) ([skyoct](https://github.com/skyoct)). +* クラスターディスカバリでユーザー名とパスワードの設定に対応し、[#58063](https://github.com/ClickHouse/ClickHouse/issues/58063) をクローズ。 [#58123](https://github.com/ClickHouse/ClickHouse/pull/58123) ([vdimir](https://github.com/vdimir))。 +* `ALTER TABLE ... PART` でクエリパラメータのサポートを追加。 [#58297](https://github.com/ClickHouse/ClickHouse/pull/58297) ([Azat Khuzhin](https://github.com/azat))。 +* Kafka テーブル向けのコンシューマをオンデマンドで作成し(ただし最後に使用されてから `kafka_consumers_pool_ttl_ms` で指定された一定期間は保持する)ことで、`system.kafka_consumers` の統計情報に関する問題(誰も Kafka テーブルから読み取っていない場合にはコンシュームされず、その結果、メモリリークが発生し、テーブルの detach が遅くなる)を修正します。また、この PR によって `system.kafka_consumers` の統計情報が再度デフォルトで有効化されます。 [#58310](https://github.com/ClickHouse/ClickHouse/pull/58310) ([Azat Khuzhin](https://github.com/azat)). +* `sparkbar` の別名として `sparkBar` を追加。 [#58335](https://github.com/ClickHouse/ClickHouse/pull/58335) ([凌涛](https://github.com/lingtaolf)). +* `GCS` へのアップロード後に `ComposeObject` リクエストを送信しないようにしました。 [#58343](https://github.com/ClickHouse/ClickHouse/pull/58343) ([Azat Khuzhin](https://github.com/azat)). +* 構成 XML で名前にドットを含むキーを正しく処理できるようにしました。 [#58354](https://github.com/ClickHouse/ClickHouse/pull/58354) ([Azat Khuzhin](https://github.com/azat)). +* 関数 `format` が定数引数に対して定数を返すようにしました。これにより [#58355](https://github.com/ClickHouse/ClickHouse/issues/58355) が解決されました。 [#58358](https://github.com/ClickHouse/ClickHouse/pull/58358)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `max_execution_time` と `max_estimated_execution_time` を切り離すための設定 `max_estimated_execution_time` を追加。 [#58402](https://github.com/ClickHouse/ClickHouse/pull/58402) ([Zhang Yifan](https://github.com/zhangyifan27)). +* 無効なデータベースエンジン名が指定された場合にヒントを表示するようになりました。 [#58444](https://github.com/ClickHouse/ClickHouse/pull/58444) ([Bharat Nallan](https://github.com/bharatnc)). +* Arrow Dictionary における索引の型をより細かく制御するための設定を追加しました。Arrow の推奨に従い、デフォルトで符号付き整数型の索引を使用するようにしました。[#57401](https://github.com/ClickHouse/ClickHouse/issues/57401) をクローズ。[#58519](https://github.com/ClickHouse/ClickHouse/pull/58519)([Kruglov Pavel](https://github.com/Avogar))。 +* [#58575](https://github.com/ClickHouse/ClickHouse/issues/58575) を実装し、Docker イメージ実行時に `CLICKHOUSE_PASSWORD_FILE` 環境変数をサポートしました。[#58583](https://github.com/ClickHouse/ClickHouse/pull/58583)([Eyal Halpern Shalev](https://github.com/Eyal-Shalev))。 +* 多数のストリームを使用してデータを読み込む必要がある一部のクエリを実行すると、以前は `"Paste JOIN requires sorted tables only"` というエラーが発生していました。現在は、そのようなケースではストリーム数が 1 に縮小されるようになりました。 [#58608](https://github.com/ClickHouse/ClickHouse/pull/58608) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* INVALID_IDENTIFIER エラー時のメッセージを改善。 [#58703](https://github.com/ClickHouse/ClickHouse/pull/58703) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* normalizeQuery での符号付き数値リテラルの処理を改善。 [#58710](https://github.com/ClickHouse/ClickHouse/pull/58710) ([Salvatore Mesoraca](https://github.com/aiven-sal))。 +* MySQL の Point データ型をサポート。 [#58721](https://github.com/ClickHouse/ClickHouse/pull/58721) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Float32 カラムと const 文字列を比較する際、文字列を Float64 ではなく Float32 として読み取るようにしました。 [#58724](https://github.com/ClickHouse/ClickHouse/pull/58724) ([Raúl Marín](https://github.com/Algunenano)). +* S3 互換性を向上し、ECloud EOS ストレージのサポートを追加。 [#58786](https://github.com/ClickHouse/ClickHouse/pull/58786) ([xleoken](https://github.com/xleoken)). +* `KILL QUERY` によってバックアップ/リストアをキャンセルできるようになりました。このPRでは、実行中のバックアップおよびリストアが `system.processes` に表示されるようにもなりました。さらに、サーバー設定に新しい設定項目 `shutdown_wait_backups_and_restores`(デフォルト=true)が追加され、サーバーのシャットダウン時に、実行中のすべてのバックアップおよびリストアの完了を待つか、それらをキャンセルするかを選択できるようになりました。 [#58804](https://github.com/ClickHouse/ClickHouse/pull/58804) ([Vitaly Baranov](https://github.com/vitlibar))。 +* Avro 形式で ZSTD コーデックをサポートしました。[#58735](https://github.com/ClickHouse/ClickHouse/issues/58735) をクローズしました。[#58805](https://github.com/ClickHouse/ClickHouse/pull/58805)([flynn](https://github.com/ucasfl))。 +* MySQL インターフェースで `net_write_timeout` と `net_read_timeout` の設定がサポートされました。`net_write_timeout` は ClickHouse のネイティブな設定である `send_timeout` に、同様に `net_read_timeout` は `receive_timeout` に変換されます。MySQL の `sql_select_limit` 設定を、ステートメント全体が大文字の場合にしか設定できなかった問題を修正しました。[#58835](https://github.com/ClickHouse/ClickHouse/pull/58835) ([Serge Klochkov](https://github.com/slvrtrn))。 +* 同じ名前のDictionaryとテーブルを作成しようとして競合が発生した場合の例外メッセージを、よりわかりやすいものにしました。 [#58841](https://github.com/ClickHouse/ClickHouse/pull/58841) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* カスタムディスク(SQL から作成されたもの)の場合は、サーバー設定で必ず `filesystem_caches_path`(すべてのファイルシステムキャッシュに共通のディレクトリプレフィックス)または `custom_cached_disks_base_directory`(カスタムディスクから作成されたファイルシステムキャッシュにのみ共通のディレクトリプレフィックス)のいずれかを指定してください。`custom_cached_disks_base_directory` はカスタムディスクに対して `filesystem_caches_path` よりも優先され、`custom_cached_disks_base_directory` が存在しない場合にのみ `filesystem_caches_path` が使用されます。ファイルシステムキャッシュの設定項目 `path` は必ずそのディレクトリ配下である必要があり、そうでない場合はディスクの作成を防ぐために例外がスローされます。これは、古いバージョンで作成されたディスクが存在し、その後サーバーをアップグレードした場合には影響せず、その場合はサーバーが正常に起動できるように例外はスローされません。`custom_cached_disks_base_directory` はデフォルトのサーバー設定に `/var/lib/clickhouse/caches/` として追加されました。[#57825](https://github.com/ClickHouse/ClickHouse/issues/57825) をクローズ。[#58869](https://github.com/ClickHouse/ClickHouse/pull/58869)([Kseniia Sumarokova](https://github.com/kssenii))。 +* MySQL インターフェースが `SHOW WARNINGS` / `SHOW COUNT(*) WARNINGS` クエリに対応しましたが、返される結果は常に空の結果セットです。[#58929](https://github.com/ClickHouse/ClickHouse/pull/58929)([Serge Klochkov](https://github.com/slvrtrn))。 +* 並列分散 `INSERT SELECT` を実行する際に、利用できないレプリカをスキップするようにしました。 [#58931](https://github.com/ClickHouse/ClickHouse/pull/58931) ([Alexander Tokmakov](https://github.com/tavplubix)). +* 構造化ログの JSON 形式を有効にした際に、ログレベルを数値ではなく、人間が読みやすい単語(文字列表現)で表示するようにしました。 [#58936](https://github.com/ClickHouse/ClickHouse/pull/58936) ([Tim Liou](https://github.com/wheatdog)). +* MySQL インターフェイスで、データ型エイリアスにより `CAST(x AS SIGNED)` および `CAST(x AS UNSIGNED)` 文がサポートされました。`SIGNED` は Int64 を、`UNSIGNED` は UInt64 を表します。これにより、Looker Studio などの BI ツールとの互換性が向上します。 [#58954](https://github.com/ClickHouse/ClickHouse/pull/58954) ([Serge Klochkov](https://github.com/slvrtrn))。 +* Docker コンテナ内の作業ディレクトリをデータパスに変更。 [#58975](https://github.com/ClickHouse/ClickHouse/pull/58975) ([cangyin](https://github.com/cangyin)). +* Azure Blob Storage 向けの設定項目 `azure_max_unexpected_write_error_retries` を追加しました。これは、azure セクション配下の設定ファイルからも指定できます。 [#59001](https://github.com/ClickHouse/ClickHouse/pull/59001) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni))。 +* 破損したデータレイクテーブルが存在していてもサーバーを起動できるようにしました。 [#58625](https://github.com/ClickHouse/ClickHouse/issues/58625) をクローズしました。 [#59080](https://github.com/ClickHouse/ClickHouse/pull/59080)([Kseniia Sumarokova](https://github.com/kssenii))。 +* `Iceberg` テーブルエンジンでスキーマの進化を無視し、テーブル作成時にユーザーが指定したスキーマ、またはテーブル作成時にメタデータから解析された最新のスキーマを使用してすべてのデータを読み取れるようにしました。これは、デフォルトでは無効になっている `iceberg_engine_ignore_schema_evolution` という設定で行われます。この設定を有効にすると、進化したスキーマがある場合でもすべてのデータファイルが同じスキーマで読み取られるため、結果が不正確になる可能性がある点に注意してください。 [#59133](https://github.com/ClickHouse/ClickHouse/pull/59133) ([Kruglov Pavel](https://github.com/Avogar)). +* 読み取り専用/一度だけ書き込み可能なストレージに対する可変操作(`INSERT`/`ALTER`/`OPTIMIZE`/...)を禁止し、適切な `TABLE_IS_READ_ONLY` エラーを返すようにして(不要な残りデータが発生しないようにする)。一度だけ書き込み可能なディスク上での `CREATE`/`ATTACH` 時に、`format_version.txt` などの不要なファイルが残らないようにする。`ReplicatedMergeTree` に対する `DROP` を(`MergeTree` と同様に)無視する。`s3_plain`(`MetadataStorageFromPlainObjectStorage::iterateDirectory`)でのディレクトリ走査処理を修正。読み取り専用ディスクは `web`、一度だけ書き込み可能なディスクは `s3_plain` であることに注意。[#59170](https://github.com/ClickHouse/ClickHouse/pull/59170)([Azat Khuzhin](https://github.com/azat))。 +* 実験的な `_block_number` カラムにおいて、`ALTER` と `merge` を複雑に組み合わせて実行した際に論理エラーを引き起こす可能性があったバグを修正しました。[#56202](https://github.com/ClickHouse/ClickHouse/issues/56202) を解決し、[#58601](https://github.com/ClickHouse/ClickHouse/issues/58601) を置き換えます。[#59295](https://github.com/ClickHouse/ClickHouse/pull/59295)([alesapin](https://github.com/alesapin))。 +* Play UI が JSON 内で例外が返されていることを認識できるようになりました。 [#52853](https://github.com/ClickHouse/ClickHouse/issues/52853) への調整。 [#59303](https://github.com/ClickHouse/ClickHouse/pull/59303)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `/binary` HTTP ハンドラーで、クエリ文字列内で user、host、および任意で password を指定できるようになりました。 [#59311](https://github.com/ClickHouse/ClickHouse/pull/59311) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 圧縮インメモリテーブルに対するバックアップをサポートしました。これにより [#57893](https://github.com/ClickHouse/ClickHouse/issues/57893) が解決されました。 [#59315](https://github.com/ClickHouse/ClickHouse/pull/59315) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `BACKUP` および `RESTORE` クエリで `FORMAT` 句が利用可能になりました。 [#59338](https://github.com/ClickHouse/ClickHouse/pull/59338) ([Vitaly Baranov](https://github.com/vitlibar)). +* 関数 `concatWithSeparator` は、これまでは `String` および `FixedString` 型の引数のみをサポートしていましたが、任意の型の引数をサポートするようになりました。たとえば、`SELECT concatWithSeparator('.', 'number', 1)` は `number.1` を返します。 [#59341](https://github.com/ClickHouse/ClickHouse/pull/59341) ([Robert Schulze](https://github.com/rschu1ze))。 + +#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement-7} + +* clickhouse バイナリのエイリアスを改善し(引数に応じて `ch` / `clickhouse` が `clickhouse-local` または `clickhouse` になります)、新しいエイリアス向けに bash 補完を追加しました。[#58344](https://github.com/ClickHouse/ClickHouse/pull/58344) ([Azat Khuzhin](https://github.com/azat)). +* すべての設定変更が設定変更履歴に反映されていることを検証するために、CI に settings の変更チェックを追加しました。[#58555](https://github.com/ClickHouse/ClickHouse/pull/58555) ([Kruglov Pavel](https://github.com/Avogar)). +* stateful テストで、S3 から直接アタッチされたテーブルを使用するようにしました。[#58791](https://github.com/ClickHouse/ClickHouse/pull/58791) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* `fuzzer.log` 全体を、最後の 100k 行だけではなくアーカイブとして保存するようにしました。`tail -n 100000` により、テーブル定義を含む行が削除されてしまうことがよくあります。例: [#58821](https://github.com/ClickHouse/ClickHouse/pull/58821) ([Dmitry Novik](https://github.com/novikd)). +* Aarch64 を搭載した macOS 上で Rust を有効化しました(これにより、クライアントで skim を用いたファジー検索と PRQL 言語が利用可能になります。ただし、darwin 上で ClickHouse をホストしている人はほとんどいないと思われるため、主にクライアントのファジー検索のためと言えるでしょう)。[#59272](https://github.com/ClickHouse/ClickHouse/pull/59272) ([Azat Khuzhin](https://github.com/azat)). +* x86_64 と ARM が混在するクラスタにおける集約の問題を修正しました。[#59132](https://github.com/ClickHouse/ClickHouse/pull/59132) ([Harry Lee](https://github.com/HarryLeeIBM)). + +#### バグ修正(公式安定版リリースにおけるユーザー影響のある不具合) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-9} + +* ネストされた LowCardinality に対する結合キーの変換を追加 [#51550](https://github.com/ClickHouse/ClickHouse/pull/51550) ([vdimir](https://github.com/vdimir)). +* flatten_nested=1 の場合に実際の Nested 型のみをフラット化し、すべての Array(Tuple) をフラット化しないようにしました [#56132](https://github.com/ClickHouse/ClickHouse/pull/56132) ([Kruglov Pavel](https://github.com/Avogar))。 +* 挿入時の PROJECTION と `aggregate_functions_null_for_empty` 設定に関するバグを修正しました。 [#56944](https://github.com/ClickHouse/ClickHouse/pull/56944) ([Amos Bird](https://github.com/amosbird)). +* 古くなったプロファイル UUID が原因で発生する可能性があった例外を修正しました [#57263](https://github.com/ClickHouse/ClickHouse/pull/57263) ([Vasily Nemkov](https://github.com/Enmk))。 +* StreamingFormatExecutor での読み取りバッファの取り扱いを修正 [#57438](https://github.com/ClickHouse/ClickHouse/pull/57438) ([Kruglov Pavel](https://github.com/Avogar))。 +* ビューへのプッシュ処理中に、対象テーブルが削除されているマテリアライズドビューを無視するようにしました [#57520](https://github.com/ClickHouse/ClickHouse/pull/57520) ([Kruglov Pavel](https://github.com/Avogar)). +* ALTER_METADATA と MERGE_PARTS の間で発生しうるレースコンディションを解消しました [#57755](https://github.com/ClickHouse/ClickHouse/pull/57755) ([Azat Khuzhin](https://github.com/azat))。 +* ROLLUP を伴う GROUP BY における式の順序のバグを修正 [#57786](https://github.com/ClickHouse/ClickHouse/pull/57786) ([Chen768959](https://github.com/Chen768959))。 +* 廃止された「ゼロコピー」レプリケーション機能に関する修正:壊れた detached パーツを含むレプリカを削除した後に BLOB が失われる不具合を修正 [#58333](https://github.com/ClickHouse/ClickHouse/pull/58333) ([Alexander Tokmakov](https://github.com/tavplubix))。 +* user_files_path 内のシンボリックリンクをユーザーが利用できるようにしました [#58447](https://github.com/ClickHouse/ClickHouse/pull/58447) ([Duc Canh Le](https://github.com/canhld94))。 +* graphite テーブルに集約関数が存在しない場合に発生していたクラッシュを修正。 [#58453](https://github.com/ClickHouse/ClickHouse/pull/58453) ([Duc Canh Le](https://github.com/canhld94))。 +* materialized view での複数回の読み取りを可能にするため、StorageKafka からの読み取りを遅延させるようにしました [#58477](https://github.com/ClickHouse/ClickHouse/pull/58477) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 +* パーツが交差する異常なケースを修正 [#58482](https://github.com/ClickHouse/ClickHouse/pull/58482) ([Alexander Tokmakov](https://github.com/tavplubix))。 +* LIMIT 句のみのクエリで MergeTreePrefetchedReadPool を無効化 [#58505](https://github.com/ClickHouse/ClickHouse/pull/58505) ([Maksim Kita](https://github.com/kitaisreal)). +* 復元処理中でも ordinary データベースを有効化 [#58520](https://github.com/ClickHouse/ClickHouse/pull/58520) ([Jihyuk Bok](https://github.com/tomahawk28))。 +* ORC/Parquet/... に対する Apache Hive のスレッドプール読み取りを修正しました。 [#58537](https://github.com/ClickHouse/ClickHouse/pull/58537) ([sunny](https://github.com/sunny19930321)). +* `system.backup_log` の `base_backup_name` カラムに含まれる認証情報を非表示化 [#58550](https://github.com/ClickHouse/ClickHouse/pull/58550) ([Daniel Pozo Escalona](https://github.com/danipozo))。 +* ミリ秒およびマイクロ秒単位の値の丸めにおける `toStartOfInterval` の修正 [#58557](https://github.com/ClickHouse/ClickHouse/pull/58557) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* ConcurrentHashJoin で `max_joined_block_rows` を無効化。[#58595](https://github.com/ClickHouse/ClickHouse/pull/58595) ([vdimir](https://github.com/vdimir))。 +* 旧アナライザーにおける Nullable を使用した JOIN を修正。[#58596](https://github.com/ClickHouse/ClickHouse/pull/58596) ([vdimir](https://github.com/vdimir))。 +* `makeDateTime64`: 非定数の fraction 引数を許可 [#58597](https://github.com/ClickHouse/ClickHouse/pull/58597) ([Robert Schulze](https://github.com/rschu1ze)). +* インラインフレームのシンボル化中に発生する可能性のある NULL デリファレンスを修正 [#58607](https://github.com/ClickHouse/ClickHouse/pull/58607) ([Azat Khuzhin](https://github.com/azat))。 +* 再作成されたユーザーやロール切り替え時のクエリキャッシュエントリの分離性を改善 [#58611](https://github.com/ClickHouse/ClickHouse/pull/58611) ([Robert Schulze](https://github.com/rschu1ze)). +* PROJECTION の最適化を行う際に、パーティションキー解析が正しく機能していなかった問題を修正。 [#58638](https://github.com/ClickHouse/ClickHouse/pull/58638) ([Amos Bird](https://github.com/amosbird)). +* クエリキャッシュ: ユーザー単位の QUOTA を修正 [#58731](https://github.com/ClickHouse/ClickHouse/pull/58731) ([Robert Schulze](https://github.com/rschu1ze)). +* 並列ウィンドウ関数におけるストリームのパーティション分割を修正 [#58739](https://github.com/ClickHouse/ClickHouse/pull/58739) ([Dmitry Novik](https://github.com/novikd))。 +* addBatchLookupTable8 において、例外スロー時に発生していた destroy の二重呼び出しを修正 [#58745](https://github.com/ClickHouse/ClickHouse/pull/58745) ([Raúl Marín](https://github.com/Algunenano))。 +* シャットダウン中は Keeper でリクエストを処理しないように修正 [#58765](https://github.com/ClickHouse/ClickHouse/pull/58765) ([Antonio Andelic](https://github.com/antonio2368)). +* `SlabsPolygonIndex::find` におけるヌルポインタ参照を修正 [#58771](https://github.com/ClickHouse/ClickHouse/pull/58771)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* LowCardinality(Nullable) カラムに対する JSONExtract 関数の不具合を修正 [#58808](https://github.com/ClickHouse/ClickHouse/pull/58808) ([vdimir](https://github.com/vdimir))。 +* CREATE および DROP で非常に多くのテーブルを作成・削除する際に発生していた、メモリ使用量が予期せず増加し続ける問題を修正しました。 [#58831](https://github.com/ClickHouse/ClickHouse/pull/58831) ([Maksim Kita](https://github.com/kitaisreal)). +* マテリアライズドビュー(mv)における multiple read file ログの保存 [#58877](https://github.com/ClickHouse/ClickHouse/pull/58877)([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 +* S3 のアクセスキー ID に制限を追加。 [#58900](https://github.com/ClickHouse/ClickHouse/pull/58900) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* `suggestions` 読み込み中に `clickhouse-local` がクラッシュする可能性があった問題を修正 [#58907](https://github.com/ClickHouse/ClickHouse/pull/58907) ([Kruglov Pavel](https://github.com/Avogar))。 +* `indexHint` 使用時にクラッシュする問題を修正 [#58911](https://github.com/ClickHouse/ClickHouse/pull/58911) ([Dmitry Novik](https://github.com/novikd))。 +* サーバー再起動時にヘッダーが失われる StorageURL を修正 [#58933](https://github.com/ClickHouse/ClickHouse/pull/58933) ([Michael Kolupaev](https://github.com/al13n321))。 +* Analyzer: 挿入ブロックを用いたストレージ置換を修正 [#58958](https://github.com/ClickHouse/ClickHouse/pull/58958) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* ReadBufferFromZipArchive のシーク処理を修正 [#58966](https://github.com/ClickHouse/ClickHouse/pull/58966) ([Michael Kolupaev](https://github.com/al13n321)). +* 実験的な反転インデックス(本番環境では使用しないでください)に対する修正:反転インデックスに対する `DROP INDEX` により、永続ストレージから関連するすべてのファイルが削除されるようになりました [#59040](https://github.com/ClickHouse/ClickHouse/pull/59040) ([mochi](https://github.com/MochiXu))。 +* query_factories_info で発生するデータレースを修正 [#59049](https://github.com/ClickHouse/ClickHouse/pull/59049) ([Kseniia Sumarokova](https://github.com/kssenii)). +* "Too many redirects" エラー発生時の再試行を無効化 [#59099](https://github.com/ClickHouse/ClickHouse/pull/59099) ([skyoct](https://github.com/skyoct)). +* 未起動のデータベースのシャットダウン時に発生するデッドロックを修正 [#59137](https://github.com/ClickHouse/ClickHouse/pull/59137) ([Sergei Trifonov](https://github.com/serxa))。 +* 修正: 分散クエリにおける LIMIT BY と LIMIT [#59153](https://github.com/ClickHouse/ClickHouse/pull/59153) ([Igor Nikonov](https://github.com/devcrafter)). +* `toString` において Nullable なタイムゾーンを指定した場合に発生するクラッシュを修正 [#59190](https://github.com/ClickHouse/ClickHouse/pull/59190) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 不正なファイルパスにより Iceberg メタデータで発生する異常終了を修正 [#59275](https://github.com/ClickHouse/ClickHouse/pull/59275) ([Kruglov Pavel](https://github.com/Avogar))。 +* Rust ターゲットの `select` で使用するアーキテクチャ名を修正 [#59307](https://github.com/ClickHouse/ClickHouse/pull/59307)([p1rattttt](https://github.com/p1rattttt))。 +* IN 句内のサブクエリを含む `system.tables` へのクエリで発生する「not-ready set」に関する論理エラーを修正。 [#59351](https://github.com/ClickHouse/ClickHouse/pull/59351) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). + +## [2023 年の変更履歴](/whats-new/changelog/2023) {#changelog-for-2023} \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2025.md b/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2025.md new file mode 100644 index 00000000000..f568966e57d --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/2025.md @@ -0,0 +1,2728 @@ +--- +slug: /whats-new/changelog/2025 +sidebar_position: -2025 +sidebar_label: '2025' +title: '2025年の変更履歴' +description: '2025年の変更履歴' +keywords: ['ClickHouse 2025', '変更履歴 2025', 'リリースノート', 'バージョン履歴', '新機能'] +doc_type: 'changelog' +--- + +### 目次 {#table-of-contents} + +**[ClickHouse リリース v25.12, 2025-12-18](#2512)**
    +**[ClickHouse リリース v25.11, 2025-11-27](#2511)**
    +**[ClickHouse リリース v25.10, 2025-10-30](#2510)**
    +**[ClickHouse リリース v25.9, 2025-09-25](#259)**
    +**[ClickHouse リリース v25.8 LTS, 2025-08-28](#258)**
    +**[ClickHouse リリース v25.7, 2025-07-24](#257)**
    +**[ClickHouse リリース v25.6, 2025-06-26](#256)**
    +**[ClickHouse リリース v25.5, 2025-05-22](#255)**
    +**[ClickHouse リリース v25.4, 2025-04-22](#254)**
    +**[ClickHouse リリース v25.3 LTS, 2025-03-20](#253)**
    +**[ClickHouse リリース v25.2, 2025-02-27](#252)**
    +**[ClickHouse リリース v25.1, 2025-01-28](#251)**
    +**[2024 年の変更履歴](https://clickhouse.com/docs/whats-new/changelog/2024/)**
    +**[2023 年の変更履歴](https://clickhouse.com/docs/whats-new/changelog/2023/)**
    +**[2022 年の変更履歴](https://clickhouse.com/docs/whats-new/changelog/2022/)**
    +**[2021 年の変更履歴](https://clickhouse.com/docs/whats-new/changelog/2021/)**
    +**[2020 年の変更履歴](https://clickhouse.com/docs/whats-new/changelog/2020/)**
    +**[2019 年の変更履歴](https://clickhouse.com/docs/whats-new/changelog/2019/)**
    +**[2018 年の変更履歴](https://clickhouse.com/docs/whats-new/changelog/2018/)**
    +**[2017 年の変更履歴](https://clickhouse.com/docs/whats-new/changelog/2017/)**
    + +### ClickHouse リリース 25.12, 2025-12-18 {#2512} + +#### 後方互換性を損なう変更 {#backward-incompatible-change} + +* ALTER MODIFY COLUMN は、Nullable カラムを非 Nullable 型に変換する際に、明示的な DEFAULT の指定が必須になりました。以前はこのような ALTER 文は `cannot convert null to not null` エラーによって行き詰まることがありましたが、現在では NULL がカラムのデフォルト式で置き換えられます。[#5985](https://github.com/ClickHouse/ClickHouse/issues/5985) を解決します。 [#84770](https://github.com/ClickHouse/ClickHouse/pull/84770) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* Ngram tokenizer は、設定された長さ N 未満の ngram を返さなくなります。Text Search は、検索トークンが空の場合、行を返さなくなります。[#89757](https://github.com/ClickHouse/ClickHouse/pull/89757) ([George Larionov](https://github.com/george-larionov)). +* `String` から `Nullable(String)` へのカラムの `ALTER` を行う場合、データに対するミューテーションは行いません。しかし `uniq` 集約関数については、異なるデータ構造を使用します。Nullable カラムに対しては、ネストされた uniq アグリゲータを伴う `AggregateFunctionNull` を使用します。`AggregateFunctionNull` は追加の bool フラグをシリアライズします。このため、statistics ファイルとの互換性がなくなります。この問題の修正として、シリアライズ時に対象が Nullable カラムであるかどうかを記録するフラグを追加しました。statistics のフォーマットは変更されており、古いフォーマットの statistics が存在する場合、サーバーがクラッシュする可能性があります。この PR [#90904](https://github.com/ClickHouse/ClickHouse/pull/90904) はクラッシュを修正し、既存の statistics がレガシーフォーマットを使用している場合に例外をスローします。例外を回避するには、`ALTER TABLE table MATERIALIZE STATISTICS ALL` を実行して statistics を再生成し、この問題を修正する必要があります。 [#90311](https://github.com/ClickHouse/ClickHouse/pull/90311) ([Han Fei](https://github.com/hanfei1991))。 +* `allow_not_comparable_types_in_order_by`/`allow_not_comparable_types_in_comparison_functions` の設定を削除しました。ORDER BY 句や比較関数で比較不能な型を許可すると、論理エラーや予期しない結果を招く可能性があります。これにより、[#90028](https://github.com/ClickHouse/ClickHouse/issues/90028) が解決されます。[#90527](https://github.com/ClickHouse/ClickHouse/pull/90527)([Pavel Kruglov](https://github.com/Avogar))。 +* `check_query_single_value_result` SETTING のデフォルト値を `true` から `false` に変更しました。これにより、`CHECK TABLE` は集約結果(1 = 正常、0 = エラー検出)ではなく、各パーツごとの詳細な結果を返すようになります。以前の動作と比較して、この方がユーザーの期待により沿った挙動と考えられます。 [#91009](https://github.com/ClickHouse/ClickHouse/pull/91009) ([Robert Schulze](https://github.com/rschu1ze))。 +* 暗黙的な索引に関する複数の修正を行いました。表示されたり Keeper のメタデータとして保存されたりするスキーマには、`add_minmax_index_for_numeric_columns` や `add_minmax_index_for_string_columns` のような設定によって作成される暗黙的な索引は含まれません。このため、新しいバージョンで ReplicatedMergeTree テーブルを作成または更新する際、古いリリースにレプリカが存在しているとメタデータエラーが発生する可能性があります。そのような場合は、クラスタ全体のアップグレードが完了するまで、古いレプリカに DDL 文を送信してください。 [#91429](https://github.com/ClickHouse/ClickHouse/pull/91429) ([Raúl Marín](https://github.com/Algunenano)). +* `receive_timeout` によってクエリがタイムアウトした場合に、clickhouse-client が非ゼロの終了コード (159 - TIMEOUT_EXCEEDED) を返すように変更しました。これまでは、タイムアウト時にも終了コード 0 (成功) を返していたため、スクリプトや自動化ツールがタイムアウトによる失敗を検知しづらい状態でした。 [#91432](https://github.com/ClickHouse/ClickHouse/pull/91432) ([Sav](https://github.com/sberss))。 +* これらのテーブルでのマージ動作が未定義であるため、空の `ORDER BY` キーを持つ特殊な `MergeTree` テーブル(`ReplacingMergeTree`、`CollapsingMergeTree` など)を作成することは、現在は禁止されています。それでもそのようなテーブルを作成する必要がある場合は、`allow_suspicious_primary_key` SETTING を有効にしてください。 [#91569](https://github.com/ClickHouse/ClickHouse/pull/91569) ([Anton Popov](https://github.com/CurtizJ))。 +* `bitShiftLeft` と `bitShiftRight` 関数を修正し、型のサイズとちょうど同じだけシフトした場合は 0 または空の値を返すようにしました。 [#91943](https://github.com/ClickHouse/ClickHouse/pull/91943) ([Pablo Marcos](https://github.com/pamarcos))。 +* [#88380](https://github.com/ClickHouse/ClickHouse/pull/88380) のフォローアップです。この PR では、プロジェクションにおける位置指定引数の無効化を後方互換性のない変更として扱います。加えて、プロジェクション内に位置指定引数が存在する場合でも ClickHouse クラスターを安全にアップグレードできるようにするための `enable_positional_arguments_for_projections` 設定を導入しています。 [#92007](https://github.com/ClickHouse/ClickHouse/pull/92007)([Dmitry Novik](https://github.com/novikd))。 + +#### 新機能 {#new-feature} + +* ユーザーは、従来のファイルを保持または削除するオプションに加えて、処理済みファイルを移動またはタグ付けするように S3/Azure Queue テーブルを構成できるようになりました。[#72944](https://github.com/ClickHouse/ClickHouse/issues/72944) を解決しました。[#86907](https://github.com/ClickHouse/ClickHouse/pull/86907)([Murat Khairulin](https://github.com/mxwell))。 +* ストレージ S3/Azure Queue に `commit_on_select` 設定を追加しました(処理済みデータをコミットするかどうか、および `after_processing` アクションを適用するかどうかを制御します)。デフォルト値は `false` で、SELECT 実行時のアタッチされたマテリアライズドビューのチェック処理を修正しました。 [#91450](https://github.com/ClickHouse/ClickHouse/pull/91450) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 本番環境での問題をデバッグし、決定論的にプロファイルするために、XRay を使用して実行時にインストルメンテーションを追加できるようにしました。[#74249](https://github.com/ClickHouse/ClickHouse/issues/74249) を解決しました。[#89173](https://github.com/ClickHouse/ClickHouse/pull/89173)([Pablo Marcos](https://github.com/pamarcos))。 +* `IN` の第 2 引数に非定数も指定できるようになりました。また、第 2 引数としてタプルもサポートします。[#77906](https://github.com/ClickHouse/ClickHouse/pull/77906)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* geometry 型に対する面積と周長を計算する関数。 [#89047](https://github.com/ClickHouse/ClickHouse/pull/89047) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* `dictGetKeys` 関数を実装しました。この関数は、属性値が指定した値と等しい Dictionary のキー(複数可)を返します。クエリ単位のリバースルックアップキャッシュを使用し、繰り返し行われるルックアップの高速化のために、そのサイズを `max_reverse_dictionary_lookup_cache_size_bytes` SETTING で調整できます。 [#89197](https://github.com/ClickHouse/ClickHouse/pull/89197) ([Nihal Z. Miaji](https://github.com/nihalzp))。 +* 入力 JSON が JSON 型内の明示的な型付きパスにキャストできない場合でも、JSON 型への INSERT/型キャストで例外を発生させないようにする `type_json_skip_invalid_typed_paths` SETTING を追加しました。その場合は、型付きパスの null/ゼロ値を使用します。 [#89886](https://github.com/ClickHouse/ClickHouse/pull/89886) ([Max Justus Spransy](https://github.com/maxjustus)). +* MergeTree テーブルで `direct`(ネストループ方式)結合をサポートしました。使用するには、設定で唯一のオプションとして `join_algorithm = 'direct'` を指定します。 [#89920](https://github.com/ClickHouse/ClickHouse/pull/89920)([Vladimir Cherkasov](https://github.com/vdimir))。 +* iceberg に対する `CREATE` 操作での `ORDER BY` のサポートと、`INSERT` 時のソートに対応。 [#89916](https://github.com/ClickHouse/ClickHouse/issues/89916) を解決。 [#90141](https://github.com/ClickHouse/ClickHouse/pull/90141) ([Konstantin Vedernikov](https://github.com/scanhex12))。 +* `ALTER TABLE ... ADD PROJECTION` に新たに追加された `WITH SETTINGS` 句を通じて利用できる、PROJECTION レベルの設定を追加しました。これらの設定により、各 PROJECTION ごとに `index_granularity` や `index_granularity_bytes` などの一部の MergeTree ストレージパラメータを上書きできるようになります。[#90158](https://github.com/ClickHouse/ClickHouse/pull/90158) ([Amos Bird](https://github.com/amosbird))。 +* `HMAC(algorithm, message, key)` SQL 関数を、[#73900](https://github.com/ClickHouse/ClickHouse/issues/73900) および [#38775](https://github.com/ClickHouse/ClickHouse/issues/38775) の対応の一環として追加。[#90837](https://github.com/ClickHouse/ClickHouse/pull/90837)([Mikhail f. Shiryaev](https://github.com/Felixoid))。 +* 最初の引数が定数配列のときにプライマリキーとデータスキッピングインデックスを利用できるよう、`has` 関数のサポートを追加しました。[#90980](https://github.com/ClickHouse/ClickHouse/issues/90980) をクローズ。[#91023](https://github.com/ClickHouse/ClickHouse/pull/91023)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* 新しい入出力フォーマット `Buffers` を実装しました。このフォーマットは `Native` に似ていますが、`Native` と異なり、カラム名やカラム型などのメタデータは保存しません。[#84017](https://github.com/ClickHouse/ClickHouse/issues/84017) をクローズ。[#91156](https://github.com/ClickHouse/ClickHouse/pull/91156)([Nihal Z. Miaji](https://github.com/nihalzp) による)。 +* Cluster テーブル関数でのファイルの並列読み込みに使用するストリーム数を制御するための `max_streams_for_files_processing_in_cluster_functions` SETTING を追加しました。[#90223](https://github.com/ClickHouse/ClickHouse/issues/90223) をクローズしました。[#91323](https://github.com/ClickHouse/ClickHouse/pull/91323)([Pavel Kruglov](https://github.com/Avogar))。 +* 行レベルセキュリティ用のデータマスキング機能(ClickHouse Cloud でのみ利用可能)。これを `clickhouse-client` でサポートするためのデータマスキングポリシー用パーサーを追加。 [#90552](https://github.com/ClickHouse/ClickHouse/pull/90552) ([pufit](https://github.com/pufit)). +* `windowFunnel` 集約関数に `allow_reentry` オプションを追加しました。`strict_order` と併用すると、ファネル分析を停止する代わりに、順序違反となるイベントを無視します。これにより、リフレッシュを含むユーザージャーニー(A->A->B)や、戻る操作を含むナビゲーション(A->B->A->C)でも、コンバージョン率を過小に算出することなく処理できるようになります。 [#86916](https://github.com/ClickHouse/ClickHouse/pull/86916) ([Lee ChaeRok](https://github.com/LeeChaeRok)). +* Keeper の ZooKeeper 互換機能: STATISTICS 付きで CREATE できるようになりました。 [#88797](https://github.com/ClickHouse/ClickHouse/pull/88797) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* ClickHouse Keeper における ZooKeeper 永続ウォッチのサポート。続き(パート 2): [https://github.com/ClickHouse/ClickHouse/pull/78207](https://github.com/ClickHouse/ClickHouse/pull/78207)。 [#88813](https://github.com/ClickHouse/ClickHouse/pull/88813)([Konstantin Vedernikov](https://github.com/scanhex12))。 +* MergeTree の設定 `alter_column_secondary_index_mode` を追加し、ミューテーション実行中にセカンダリ索引をどのように処理するかを制御できるようにしました。指定可能な値は throw、drop、rebuild、compatibility です。 [#77797](https://github.com/ClickHouse/ClickHouse/issues/77797) をクローズしました。 [#89335](https://github.com/ClickHouse/ClickHouse/pull/89335)([Raúl Marín](https://github.com/Algunenano))。 +* `Time` と `Time64` データ型が本番利用に十分な品質となったため、`enable_time_time64_type` SETTING はデフォルトで有効化されました。[#89345](https://github.com/ClickHouse/ClickHouse/pull/89345) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* `delta_lake_snapshot_start_version`、`delta_lake_snapshot_end_version` の設定を使用した `deltaLake` テーブル関数経由で、DeltaLake CDF の読み取りをサポートします。CDF(Change Data Feed。Delta テーブルのバージョン間で、挿入・更新・削除などの行レベルのデータ変更を自動的に取得してクエリできるようにする機能)は、DeltaLake では `delta.enableChangeDataFeed` によって有効化されます。データとともに提供されるカラムは `_change_type`、`_commit_version`、`_commit_timestamp` です。[#90431](https://github.com/ClickHouse/ClickHouse/pull/90431)([Kseniia Sumarokova](https://github.com/kssenii))。 +* タプル要素へのアクセスで負のインデックスをサポートしました(例:`tuple.-1`)。[#91665](https://github.com/ClickHouse/ClickHouse/pull/91665)([Amos Bird](https://github.com/amosbird))。 + +#### 実験的機能 {#experimental-feature} + +* TODO: Text インデックスフォーマット v3 を導入し、Beta ステータスに昇格させます。 +* 設定 `automatic_parallel_replicas_mode` によって制御される、並列レプリカを用いてクエリを自動実行するための新しいロジックが導入されました。通常の単一ノード実行時に、ClickHouse は後のプランニング段階で参照される統計情報を収集します。統計情報から並列レプリカが有益である可能性が高いと判断された場合、ClickHouse はそのクエリを並列レプリカで自動的に実行します。現在のところ、対応しているクエリの範囲はかなり限定的です。 [#87541](https://github.com/ClickHouse/ClickHouse/pull/87541) ([Nikita Taranov](https://github.com/nickitat))。 +* `--login` を使用して Cloud の認証情報により ClickHouse Cloud インスタンスへアクセスできます。 [#89261](https://github.com/ClickHouse/ClickHouse/pull/89261) ([Krishna Mannem](https://github.com/kcmannem))。 +* セッションレベルの設定 `aggregate_function_input_format` を追加し、`AggregateFunction` カラムを持つテーブルへの `INSERT` クエリを改善しました。これにより、シリアライズされた状態、生の値、もしくは配列としてデータを挿入できるようになります。 [#88088](https://github.com/ClickHouse/ClickHouse/pull/88088) ([Punith Nandyappa Subashchandra](https://github.com/punithns97))。 + +#### パフォーマンスの向上 {#performance-improvement} + +* `ORDER BY...LIMIT N` クエリに対して skip index と動的なしきい値フィルターを用いることで、処理される行数を大幅に削減して最適化しました。 [#89835](https://github.com/ClickHouse/ClickHouse/pull/89835) ([Shankar Iyer](https://github.com/shankar-iyer)). +* ClickHouse は、`AND` と `OR` が混在したフィルター条件を含む WHERE 句に対して、skip index を用いた索引の解析を行うようになりました。以前は、skip index を利用するためには WHERE 句がフィルター条件の連言(AND)のみで構成されている必要がありました。新しい設定 `use_skip_indexes_for_disjunctions`(デフォルト: on)でこの機能を制御できます。(issue [#75228](https://github.com/ClickHouse/ClickHouse/issues/75228))。[#87781](https://github.com/ClickHouse/ClickHouse/pull/87781)([Shankar Iyer](https://github.com/shankar-iyer))。 +* LEFT/INNER JOIN 操作において、左側のテーブルからの読み取り順序を保持し、その順序を後続のステップで利用できるようにしました。この挙動は設定 `query_plan_read_in_order_through_join` で無効化できます。LEFT/INNER JOIN に対する読み取り最適化として virtual row のサポートも追加しました(設定 `read_in_order_use_virtual_row` を参照)。 [#89815](https://github.com/ClickHouse/ClickHouse/pull/89815) ([Vladimir Cherkasov](https://github.com/vdimir)). +* 遅延マテリアライズカラムの上限値を引き上げてパフォーマンスを改善。 [#90309](https://github.com/ClickHouse/ClickHouse/pull/90309) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* 大きな `minmax` 索引(granule が数百万単位)が存在する場合、ユーザーは索引解析のレイテンシが低減していることを確認できるはずです。 [#90428](https://github.com/ClickHouse/ClickHouse/pull/90428) ([Shankar Iyer](https://github.com/shankar-iyer)). +* INNER JOIN 向けに単純な DPsize 結合順序再配置アルゴリズムを実装。新しい実験的な設定で、どのアルゴリズムをどの順序で使用するかを制御できます。例えば、`query_plan_optimize_join_order_algorithm='dpsize,greedy'` は、まず DPsize を試し、フォールバックとして greedy を使用することを意味します。 [#91002](https://github.com/ClickHouse/ClickHouse/pull/91002) ([Alexander Gololobov](https://github.com/davenger)). +* クエリが行数上限に達した時点で即座に失敗するようにしました。 [#61872](https://github.com/ClickHouse/ClickHouse/issues/61872) を解決します。 [#62804](https://github.com/ClickHouse/ClickHouse/pull/62804) ([Sean Haynes](https://github.com/seandhaynes))。 +* [#84477](https://github.com/clickhouse/clickhouse/pull/84477) により、`insert select from s3Cluster(...)` クエリで並列分散実行を行う際に使用できる `select` クエリに関する制約が追加されました。この変更により、以前は使用できなかった `where` の使用が可能になりました。[#84611](https://github.com/ClickHouse/ClickHouse/pull/84611) ([Igor Nikonov](https://github.com/devcrafter))。 +* ハッシュテーブルを走査する際にキーをプリフェッチし、キャッシュミスを最小限に抑えるようにしました。 [#84708](https://github.com/ClickHouse/ClickHouse/pull/84708) ([lgbo](https://github.com/lgbo-ustc)). +* `histogram` 集約関数を最適化し、ポイント配列の末尾部分のみをソートし、単調な入力に対してはソートをスキップすることで、約 10% の高速化を実現しました。 [#85760](https://github.com/ClickHouse/ClickHouse/pull/85760) ([MakarDev](https://github.com/MakarDev))。 +* `like`、`equals`、`has` などの関数を含む述語に対して、テキスト索引から構築された追加の予備フィルタを活用することでフィルタリング性能を向上させました。この最適化は `query_plan_text_index_add_hint` SETTING で有効化できます。`Map` データ型のカラムに対するテキスト索引の利用も改善しました。[#88550](https://github.com/ClickHouse/ClickHouse/pull/88550) ([Anton Popov](https://github.com/CurtizJ)). +* 事前計算された可能なキー値の Set に対してより高速にルックアップすることで、繰り返し発生する逆引き Dictionary ルックアップを最適化しました。[#7968](https://github.com/ClickHouse/ClickHouse/issues/7968) をクローズ。[#88971](https://github.com/ClickHouse/ClickHouse/pull/88971)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* `topK` 集約関数のパフォーマンスと挙動を改善しました。 [#90091](https://github.com/ClickHouse/ClickHouse/pull/90091) ([Raúl Marín](https://github.com/Algunenano)). +* `Decimal` の比較演算のパフォーマンスを改善しました。 [#28192](https://github.com/ClickHouse/ClickHouse/issues/28192) を解決しました。 [#90153](https://github.com/ClickHouse/ClickHouse/pull/90153)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* Apache Paimon 関数でパーティションプルーニングをサポートし、[https://github.com/ClickHouse/ClickHouse/pull/84423](https://github.com/ClickHouse/ClickHouse/pull/84423) の対応を拡張しました。 [#90253](https://github.com/ClickHouse/ClickHouse/pull/90253) ([JIaQi](https://github.com/JiaQiTang98)). +* 動的ディスパッチを用いて、論理関数に高度な SIMD 演算を適用します。 [#90432](https://github.com/ClickHouse/ClickHouse/pull/90432) ([Raúl Marín](https://github.com/Algunenano)). +* 結果カラムを不要にゼロで初期化しないことで、JIT 関数のパフォーマンスを改善しました。 [#90449](https://github.com/ClickHouse/ClickHouse/pull/90449) ([Raúl Marín](https://github.com/Algunenano)). +* 動的ディスパッチを用いて`T64`の伸長処理を高速化。 [#90610](https://github.com/ClickHouse/ClickHouse/pull/90610) ([Raúl Marín](https://github.com/Algunenano)). +* MergeTree リーダーでのインプレース フィルタリングを最適化。[#87119](https://github.com/ClickHouse/ClickHouse/issues/87119) を解決。[#90630](https://github.com/ClickHouse/ClickHouse/pull/90630) ([Xiaozhe Yu](https://github.com/wudidapaopao))。 +* 選択されるマージ候補の対象範囲をより狭めるための追加のヒューリスティックを導入しました。より小さな範囲でマージを行うことで書き込み増幅は増加しますが、その一方で `TOO_MANY_PARTS` エラーの発生を防ぐのに役立ちます。 [#91163](https://github.com/ClickHouse/ClickHouse/pull/91163) ([Mikhail Artemenko](https://github.com/Michicosun))。 +* グロブパターンで作成された S3 テーブルに対して `_path` フィルタ値をプッシュダウンすることでクエリのパフォーマンスを向上させ、S3 上でのリスト操作を回避できるようにしました。`s3_path_filter_limit` 設定で制御されます。 [#91165](https://github.com/ClickHouse/ClickHouse/pull/91165) ([Eduard Karacharov](https://github.com/korowa))。 +* 動的ディスパッチを用いて、WHERE 句内でのカラムから bool 型への変換を高速化しました。 [#91203](https://github.com/ClickHouse/ClickHouse/pull/91203) ([Raúl Marín](https://github.com/Algunenano)). +* 動的ディスパッチを用いて単一の数値ブロックのソートを高速化。 [#91213](https://github.com/ClickHouse/ClickHouse/pull/91213) ([Raúl Marín](https://github.com/Algunenano)). +* クエリプランから未使用カラムを削除する最適化を追加しました。この変更により [#75152](https://github.com/ClickHouse/ClickHouse/issues/75152) が解決されました。[#76487](https://github.com/ClickHouse/ClickHouse/pull/76487)([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 +* `query_plan_optimize_join_order_limit` のデフォルト値が `10` に変更されました。 [#89312](https://github.com/ClickHouse/ClickHouse/pull/89312) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `allow_statistics_optimize` 設定をデフォルトで有効にし、JOIN のオプティマイザがカラム統計情報を使用するようにしました。 [#89332](https://github.com/ClickHouse/ClickHouse/pull/89332) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `ANTI` JOIN に対する JOIN ランタイムフィルタのサポートを追加しました。また、ロック競合を減らすためにランタイムフィルタの実装をリファクタリングしました。 [#89710](https://github.com/ClickHouse/ClickHouse/pull/89710) ([Dmitry Novik](https://github.com/novikd))。 +* `system.metric_log` テーブル(デフォルトで有効)のマージ処理時のメモリ使用量を削減するために、`min_bytes_for_wide_part` および `vertical_merge_algorithm_min_bytes_to_activate` を 128MB に設定します。 [#89811](https://github.com/ClickHouse/ClickHouse/pull/89811) ([filimonov](https://github.com/filimonov)). +* PREWHERE で inverted index を使用できるようにしました。 [#89975](https://github.com/ClickHouse/ClickHouse/issues/89975) を解決しました。 [#89977](https://github.com/ClickHouse/ClickHouse/pull/89977)([Peng Jian](https://github.com/fastio))。 +* GCP OAuth を使用している場合には S3 プロバイダーを追加しないようにし、GCS 上でのパフォーマンスを改善しました。 [#91706](https://github.com/ClickHouse/ClickHouse/pull/91706) ([Antonio Andelic](https://github.com/antonio2368)). + +#### 改良 {#improvement} + +* `FINAL` の後にのみ ROW POLICY を適用するようクエリを制御できる新しい設定 `apply_row_policy_after_final` を追加しました。これにより、ROW POLICY を伴う ReplacingMergeTree の動作がより正しくなります。 [#90986](https://github.com/ClickHouse/ClickHouse/issues/90986) を修正しました。 [#91065](https://github.com/ClickHouse/ClickHouse/pull/91065)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* `Pretty` フォーマットでは、名前付きタプルが Pretty JSON として表示されるようになりました。これにより [#65022](https://github.com/ClickHouse/ClickHouse/issues/65022) が解決されました。 [#91779](https://github.com/ClickHouse/ClickHouse/pull/91779) ([Mostafa Mohamed Salah](https://github.com/Sasao4o))。 +* `system.error_log` テーブルに `last_error_time`、`last_error_message`、`last_error_query_id`、`last_error_trace` フィールドを新たに追加しました。 [#89879](https://github.com/ClickHouse/ClickHouse/pull/89879) ([Narasimha Pakeer](https://github.com/npakeer)). +* CLI クライアントで、`--no-server-client-version-message` または `false` を指定することで、「ClickHouse server version is older than ClickHouse client. It may indicate that the server is out of date and can be upgraded」というメッセージを表示しないようにできるようになりました。 [#87784](https://github.com/ClickHouse/ClickHouse/pull/87784) ([Larry Snizek](https://github.com/larry-cdn77))。 +* パーツが重複排除されたことを示すエラーメッセージを追加。 [#80264](https://github.com/ClickHouse/ClickHouse/pull/80264) ([Aleksandr Musorin](https://github.com/AVMusorin)). +* Kafka テーブルに対する materialized view のターゲットテーブルを報告できるように、`system.kafka_consumers` に `dependencies` カラムと `missing_dependencies` カラムを追加しました。また、`KafkaMVNotReady` カウンタを追加しました。[#85346](https://github.com/ClickHouse/ClickHouse/pull/85346) ([Ilya Golshtein](https://github.com/ilejn))。 +* これにより、`remote` および `native` プロトコル経由の挿入でもテーブルのデフォルト式が正しく動作するようになりました。 [#87972](https://github.com/ClickHouse/ClickHouse/issues/87972) をクローズしました。 [#88540](https://github.com/ClickHouse/ClickHouse/pull/88540)([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 +* `PSI_*_*` 非同期メトリクスの収集を無効化できるようにしました。 [#88557](https://github.com/ClickHouse/ClickHouse/pull/88557) ([MikhailBurdukov](https://github.com/MikhailBurdukov))。 +* `Nullable` 型カラム向けにスパースシリアライゼーションのサポートを追加しました。これは [#44539](https://github.com/ClickHouse/ClickHouse/issues/44539) の継続です。[#88999](https://github.com/ClickHouse/ClickHouse/pull/88999) ([Amos Bird](https://github.com/amosbird))。 +* `plain-rewritable` ディスクは独自の実装とレイアウトを持つようにしました。通常の `plain` ディスクをベースにしないようにしています。 [#89807](https://github.com/ClickHouse/ClickHouse/pull/89807) ([Mikhail Artemenko](https://github.com/Michicosun)). +* HTTP の例外応答には final zero chunk が含まれないようにしました。 [#89998](https://github.com/ClickHouse/ClickHouse/pull/89998) ([Kaviraj Kanagaraj](https://github.com/kavirajk)). +* ハンドシェイク時に、`last_zxid_seen (クライアントから提供される値) > last_processed_zxid` の場合にクライアントを拒否する keeper サーバー側のチェックを追加しました。これにより、ラグのあるレプリカにクライアントが再接続した際に、古い状態を読み取ってしまうことを防止します。 [#90016](https://github.com/ClickHouse/ClickHouse/pull/90016) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* `Kafka` テーブルエンジンの調整可能な設定として `kafka_consumer_reschedule_ms` を追加し、コンシューマーが新しいデータを待機する際のスリープ時間を調整できるようにしました。[#89204](https://github.com/ClickHouse/ClickHouse/issues/89204) を解決しました。[#90112](https://github.com/ClickHouse/ClickHouse/pull/90112)([Jeremy Aguilon](https://github.com/JerAguilon))。 +* 診断性を向上させるために、新しいカラム `parts_in_progress_names` を `system.mutations` に追加しました。 [#90155](https://github.com/ClickHouse/ClickHouse/pull/90155) ([Shaohua Wang](https://github.com/tiandiwonder))。 +* S3 ライブラリによる XML レスポンスの解析時にネットワークエラーが発生した場合にリトライするようにしました。 [#90216](https://github.com/ClickHouse/ClickHouse/pull/90216) ([Sema Checherinda](https://github.com/CheSema)). +* keeper を別のサーバープロセスとして実行し、大規模なリージョンで Prometheus に過度な負荷がかからないようにするため、引き続き keeper 関連のメトリクスのみを公開するようにしました。 [#90244](https://github.com/ClickHouse/ClickHouse/pull/90244) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* 従来の `~/.clickhouse-client/` の場所に加えて、XDG Base Directory のパス(例: `~/.config/clickhouse/config.xml`)からも ClickHouse Client の設定を読み込めるようにしました。[#89882](https://github.com/ClickHouse/ClickHouse/issues/89882) を解決。[#90306](https://github.com/ClickHouse/ClickHouse/pull/90306)([Wujun Jiang](https://github.com/rainac1))。 +* Keeper における append リクエストのバッチに対してバイトサイズの上限を追加しました。上限は `keeper_server.coordination_settings.max_requests_append_bytes_size` で制御されます。 [#90342](https://github.com/ClickHouse/ClickHouse/pull/90342) ([Antonio Andelic](https://github.com/antonio2368)). +* Iceberg 向けに、パーティション数が過度に増加するのを防ぐための設定を追加。[#90365](https://github.com/ClickHouse/ClickHouse/pull/90365) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* ガードレールの制限に近づいたときの警告メッセージを更新し、現在値と例外をスローする値を表示するようにしました。 [#90438](https://github.com/ClickHouse/ClickHouse/pull/90438) ([Nikita Fomichev](https://github.com/fm4v)). +* `system.filesystem_cache` テーブル内で chunk をストリーミングし、キャッシュ状態のすべてを 1 つの chunk にまとめて作成しないようにしました。ファイルシステムキャッシュの状態を読み取る処理は、大きなキャッシュの場合には長時間かかり、多くのメモリを消費する可能性があるため、大規模なデプロイメントではストリーミングが不可欠です。[#90508](https://github.com/ClickHouse/ClickHouse/pull/90508)([Kseniia Sumarokova](https://github.com/kssenii))。 +* Hive のパーティション処理における誤った例外メッセージを修正:スペースが 1 つ不足していました。 [#90685](https://github.com/ClickHouse/ClickHouse/pull/90685) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* ベクトル類似性索引キャッシュ内のエントリは、テーブルのパーツが削除されるか、より新しいパーツに置き換えられたときに削除されるようになりました。これ以前は、キャッシュのエビクションによって、怠惰な方式でのみクリアされていました。 [#90750](https://github.com/ClickHouse/ClickHouse/pull/90750) ([Shankar Iyer](https://github.com/shankar-iyer)). +* chdig(コマンドライン ClickHouse 診断ツール)を [v25.12.1](https://github.com/azat/chdig/releases/tag/v25.12.1) にバージョンアップ。 [#91394](https://github.com/ClickHouse/ClickHouse/pull/91394)([Azat Khuzhin](https://github.com/azat))。 +* 事前署名付きURLが S3 でも利用できるようになりました。これにより [#65032](https://github.com/ClickHouse/ClickHouse/issues/65032) がクローズされました。[#90827](https://github.com/ClickHouse/ClickHouse/pull/90827)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* テキスト索引が `ReplacingMergeTree` テーブルでも利用できるようになりました。 [#90908](https://github.com/ClickHouse/ClickHouse/pull/90908) ([Elmi Ahmadov](https://github.com/ahmadov)). +* 認証前に返される HTTP エラー応答に ClickHouse サーバーのバージョンが含まれないようにしました。 [#91003](https://github.com/ClickHouse/ClickHouse/pull/91003) ([filimonov](https://github.com/filimonov)). +* `http` クライアント接続の `hard_limit` に到達した場合、`HTTP_CONNECTION_LIMIT_REACHED` 例外がスローされるようになりました。ディスク接続では、この値は `20000` に設定されています。 [#91016](https://github.com/ClickHouse/ClickHouse/pull/91016) ([Sema Checherinda](https://github.com/CheSema)). +* バックグラウンドジョブの状態をより詳細に把握できるようにするため、`system.background_schedule_pool{,_log}` を導入しました。 [#91157](https://github.com/ClickHouse/ClickHouse/pull/91157) ([Azat Khuzhin](https://github.com/azat)). +* Web UI のクエリエディタで、現在選択している行を `Ctrl+/`(Mac では `Cmd+/`)で簡単にコメントアウト/コメント解除できるようになりました。これにより、テスト中にクエリの一部を一時的に無効化しやすくなります。 [#91160](https://github.com/ClickHouse/ClickHouse/pull/91160) ([Samuel K.](https://github.com/OpenGLShaders)). +* `system.completions` を常にアクセス可能なテーブル一覧に追加しました。 [#91166](https://github.com/ClickHouse/ClickHouse/pull/91166) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* プロファイルイベント `FailedInitialQuery` と `FailedInitialSelectQuery` を追加しました。 [#91172](https://github.com/ClickHouse/ClickHouse/pull/91172) ([RinChanNOW](https://github.com/RinChanNOWWW)). +* `merge_tree_use_prefixes_deserialization_thread_pool` SETTING を尊重し、thread pool を常に使用するのではなく設定に従うようにすることで、多数のサブカラムを持つ JSON カラムのサンプルを読み取る際に発生する可能性があったスレッドプールの枯渇を修正しました。 [#91208](https://github.com/ClickHouse/ClickHouse/pull/91208) ([Raufs Dunamalijevs](https://github.com/rienath))。 +* `tupleElement` で `JSON` 型をサポートしました。[#81630](https://github.com/ClickHouse/ClickHouse/issues/81630) をクローズしました。[#91327](https://github.com/ClickHouse/ClickHouse/pull/91327)([Pavel Kruglov](https://github.com/Avogar))。 +* ユーザースペースページキャッシュが有効な場合に誤検知されていたメモリ制限エラーを修正しました。 [#91361](https://github.com/ClickHouse/ClickHouse/pull/91361) ([Michael Kolupaev](https://github.com/al13n321)). +* Ngrams tokenizer は `ngram_length = 1` でビルドできるようになりました。[#91529](https://github.com/ClickHouse/ClickHouse/pull/91529) ([George Larionov](https://github.com/george-larionov)). +* `SELECT` ですでにサポートされているのと同様に、`INSERT INTO FUNCTION` で使用する関数内でもストレージ設定をサポートするようにしました。[#89386](https://github.com/ClickHouse/ClickHouse/issues/89386) をクローズします。[#91707](https://github.com/ClickHouse/ClickHouse/pull/91707)([Kseniia Sumarokova](https://github.com/kssenii))。 +* データレイクに対する truncate クエリでは、何も行わず黙って無視するのではなく、"not implemented" をスローするようにしました。[#86604](https://github.com/ClickHouse/ClickHouse/issues/86604) をクローズします。[#91713](https://github.com/ClickHouse/ClickHouse/pull/91713)([Kseniia Sumarokova](https://github.com/kssenii))。 +* parquet v3 リーダーで最大メッセージサイズを設定し、`DB::Exception: apache::thrift::transport::TTransportException: MaxMessageSize reached` が発生しないようにしました。 [#91737](https://github.com/ClickHouse/ClickHouse/pull/91737) ([Arthur Passos](https://github.com/arthurpassos)). +* `insert_select_deduplicate` という設定を追加しました。これにより、INSERT SELECT 時の挿入の重複排除をどのように扱うかが、より明確になります。一般的には、この種のクエリに対して重複排除を行うことはできませんが、テーブルが変更されておらず、かつ結果がソートされている場合には、リトライ時に重複排除を行うことが可能です。INSERT 元が同一であることは追跡できませんが、SELECT クエリの結果がソートされているかどうかは検査できます。もっとも、一般的なケースでそれを検査するのは非常に難しいことが分かりましたが、`ORDER BY ALL` を用いた単純なケースであれば容易です。現時点では、ここでのロジックは実際には正しく動作していません。重複排除を試みてはいるものの、ほとんどの場合、SELECT が異なるデータを返すため、ブロック間の重複を検出できていません。[#91830](https://github.com/ClickHouse/ClickHouse/pull/91830)([Sema Checherinda](https://github.com/CheSema))。 +* `Array` から `QBit` 型へのキャスト時に暗黙の型変換を許可しました。整数および浮動小数点数の配列は、明示的な型キャストなしで `QBit` カラムに直接挿入できるようになりました。 [#91846](https://github.com/ClickHouse/ClickHouse/pull/91846) ([Raufs Dunamalijevs](https://github.com/rienath))。 +* `CapnProto` メッセージのサイズ上限を追加しました。`format_capn_proto_max_message_size` で変更できます。[#91888](https://github.com/ClickHouse/ClickHouse/pull/91888) ([Antonio Andelic](https://github.com/antonio2368))。 +* マークキャッシュのメトリクスを、クエリのみを対象として計測するように調整しました([#83415](https://github.com/ClickHouse/ClickHouse/issues/83415) で `MarkCacheHits`/`MarkCacheMisses` がマージ処理でもカウントされるように更新されましたが、この PR でその挙動を元に戻します)。[#91910](https://github.com/ClickHouse/ClickHouse/pull/91910)([Azat Khuzhin](https://github.com/azat))。 +* ローカル接続時に `client_info.interface` が `TCP` に設定されてしまう問題を修正。 [#91933](https://github.com/ClickHouse/ClickHouse/pull/91933) ([Konstantin Bogdanov](https://github.com/thevar1able)) +* ACME クライアント設定の `refresh_certificates_task_interval` パラメータは、値を秒単位で指定する必要があります。 [#92211](https://github.com/ClickHouse/ClickHouse/pull/92211) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* `system.*_log` のパーツに関するイベントを `system.part_log` に記録します。 [#92217](https://github.com/ClickHouse/ClickHouse/pull/92217) ([Azat Khuzhin](https://github.com/azat)). + +#### バグ修正(公式安定版リリースにおけるユーザーに影響する不具合) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* `Time` および `Time64` データ型のスーパータイプに関連する `PREWHERE` の一部のバグを修正します。[#84544](https://github.com/ClickHouse/ClickHouse/issues/84544) を解決します。[#84715](https://github.com/ClickHouse/ClickHouse/pull/84715)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* カスタム設定を反映できるよう、使用前に `DNSResolver` を初期化するようにしました。[#76296](https://github.com/ClickHouse/ClickHouse/issues/76296) を修正。[#81302](https://github.com/ClickHouse/ClickHouse/pull/81302)([Zhigao Hong](https://github.com/zghong))。 +* 一部のケースにおいて、名前にドットを含むカラムからサブカラムを読み取れない問題を修正しました。[#81261](https://github.com/ClickHouse/ClickHouse/issues/81261)、[#82058](https://github.com/ClickHouse/ClickHouse/issues/82058)、[#88169](https://github.com/ClickHouse/ClickHouse/issues/88169) を解決します。[#87205](https://github.com/ClickHouse/ClickHouse/pull/87205)([Pavel Kruglov](https://github.com/Avogar))。 +* `GenerateRandom` エンジンがリテラルでない引数でクラッシュする問題を修正。`LOGICAL_ERROR` の代わりに、より明確なメッセージとともに `BAD_ARGUMENTS` を返すようにしました。 [#88157](https://github.com/ClickHouse/ClickHouse/pull/88157) ([Shafi Ahmed](https://github.com/ita004)). +* `UNION` が含まれる場合に未使用の PROJECTION カラムが削除されない問題を修正しました。 [#88180](https://github.com/ClickHouse/ClickHouse/issues/88180) を解決します。 [#88350](https://github.com/ClickHouse/ClickHouse/pull/88350)([Sema Checherinda](https://github.com/CheSema))。 +* `JOIN` の最適化において、主キーが降順ソートされている場合に誤った分片が行われていた問題を修正しました。[#88512](https://github.com/ClickHouse/ClickHouse/issues/88512) を解決します。[#88794](https://github.com/ClickHouse/ClickHouse/pull/88794)([Amos Bird](https://github.com/amosbird))。 +* s3queue_keeper_fault_injection_probablility を再度有効化し、問題を修正しました。 [#88800](https://github.com/ClickHouse/ClickHouse/pull/88800) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 有効期限 (TTL) でカラムが早期に削除されることに起因する複数の問題を修正しました。[#88002](https://github.com/ClickHouse/ClickHouse/issues/88002) を解決します。[#88860](https://github.com/ClickHouse/ClickHouse/pull/88860)([Amos Bird](https://github.com/amosbird))。 +* temporary_files_buffer_size が 0 に設定された場合に例外をスローするようになりました。[#88900](https://github.com/ClickHouse/ClickHouse/issues/88900) を修正します。 [#88917](https://github.com/ClickHouse/ClickHouse/pull/88917)([Vladimir Cherkasov](https://github.com/vdimir))。 +* 述語に `NULL` 定数が含まれている場合に、`Set` 索引の解析中に発生していた `Bad get` エラーを修正しました。これにより、[#84856](https://github.com/ClickHouse/ClickHouse/issues/84856) および [#82974](https://github.com/ClickHouse/ClickHouse/issues/82974) が解決されています。 [#89429](https://github.com/ClickHouse/ClickHouse/pull/89429)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* エラー `Cannot add subcolumn X.Y: column with this name already exists` を修正。[#89599](https://github.com/ClickHouse/ClickHouse/issues/89599) を解決。[#89602](https://github.com/ClickHouse/ClickHouse/pull/89602)([Azat Khuzhin](https://github.com/azat))。 +* `theilsU` 関数および `contingency` 関数で誤った結果が生じる原因となっていたバグを修正しました。 [#89760](https://github.com/ClickHouse/ClickHouse/pull/89760) ([Nihal Z. Miaji](https://github.com/nihalzp))。 +* エイリアスの安定性に関する問題を修正: SharedDatabaseCatalog 使用時の StrictnessLevel を修正し、ターゲットとして別のエイリアスを指定することを禁止し、さらに追加のインターフェース (getSerializationHints, supportsReplication, getStoragePolicy, totalBytesUncompressed, lifetimeRows, lifetimeBytes, storesDataOnDisk, tryLockForShare, lockForShare) を実装しました。 [#89106](https://github.com/ClickHouse/ClickHouse/issues/89106) を解決。 [#89812](https://github.com/ClickHouse/ClickHouse/pull/89812)([Kai Zhu](https://github.com/nauu))。 +* `IN` 内に `ARRAY JOIN` があり、`enable_lazy_columns_replication` 設定が有効な場合に、リモートクエリの実行中に発生する可能性のあるクラッシュを修正しました。[#90361](https://github.com/ClickHouse/ClickHouse/issues/90361) を解決します。[#89997](https://github.com/ClickHouse/ClickHouse/pull/89997) ([Pavel Kruglov](https://github.com/Avogar))。 +* 複数の JOIN を行う際に `analyzer_compatibility_join_using_top_level_identifier` を使用した場合に発生する可能性のある論理エラーを修正。[#90010](https://github.com/ClickHouse/ClickHouse/pull/90010)([Vladimir Cherkasov](https://github.com/vdimir))。 +* 一部のケースでテキスト形式の文字列から誤った DateTime64 値が推論される問題を修正しました。[#89368](https://github.com/ClickHouse/ClickHouse/issues/89368) を解決します。 [#90013](https://github.com/ClickHouse/ClickHouse/pull/90013)([Pavel Kruglov](https://github.com/Avogar))。 +* 集計状態やその他のソースからデータをデシリアライズする際にサイズを検査するようにしました。 [#90031](https://github.com/ClickHouse/ClickHouse/pull/90031) ([Raúl Marín](https://github.com/Algunenano)). +* ボリュームの特性に基づいてパーツのレンジを分割し、コールドボリュームに対する有効期限 (TTL) に基づくドロップマージを有効化しました。このパッチ適用後は、最大 TTL が現在時刻より前のパーツはコールドストレージから削除されます。アルゴリズムは **単一パーツのドロップ** のみをスケジュールします。 [#90059](https://github.com/ClickHouse/ClickHouse/pull/90059) ([Mikhail Artemenko](https://github.com/Michicosun))。 +* `kafka_handle_error_mode = 'dead_letter_queue'` という設定を指定して Kafka テーブルを作成した場合に、テーブル `system.dead_letter_queue` が構成されていないとサーバーがクラッシュすることがありました。この問題を修正しました。[#87573](https://github.com/ClickHouse/ClickHouse/issues/87573) を解決します。[#90064](https://github.com/ClickHouse/ClickHouse/pull/90064)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* `ARRAY JOIN` を使用した挿入時に、`enable_lazy_columns_replication` 設定が有効な場合に発生する可能性がある `Column with Array type is not represented by ColumnArray column: Replicated` というエラーを修正しました。[#90066](https://github.com/ClickHouse/ClickHouse/pull/90066) ([Pavel Kruglov](https://github.com/Avogar))。 +* 誤った破棄順序が原因で、サーバーの正常なシャットダウン時に発生していたクラッシュを修正しました。[#82420](https://github.com/ClickHouse/ClickHouse/issues/82420) を解決します。 [#90076](https://github.com/ClickHouse/ClickHouse/pull/90076) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* ステップサイズが大きい場合に `numbers` システムテーブルで発生する論理エラーと剰余演算のバグを修正しました。[#83398](https://github.com/ClickHouse/ClickHouse/issues/83398) をクローズします。[#90123](https://github.com/ClickHouse/ClickHouse/pull/90123)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* ネイティブ writer を用いた単一スレッドでの書き込み時に、Parquet への書き込みで元の順序が保持されない問題を修正しました。 [https://github.com/ClickHouse/ClickHouse/pull/64424/files](https://github.com/ClickHouse/ClickHouse/pull/64424/files) の一部を取り消します。 [#90126](https://github.com/ClickHouse/ClickHouse/pull/90126) ([Arthur Passos](https://github.com/arthurpassos))。 +* LIMIT/OFFSET 式には定数ノードの最適化を適用しないようにしました。[#89607](https://github.com/ClickHouse/ClickHouse/issues/89607) を修正しました。[#90156](https://github.com/ClickHouse/ClickHouse/pull/90156)([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 +* Hive パーティション分割の非互換性を修正し、25.8 への円滑なアップグレードを可能にしました(アップグレード時に発生していたエラー `All hive partitioning columns must be present in the schema` を解消)。 [#90202](https://github.com/ClickHouse/ClickHouse/pull/90202) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Glue カタログを使用している場合に、timestamp カラムを含む Iceberg テーブルで JSON 例外が発生する問題を修正。[#90210](https://github.com/ClickHouse/ClickHouse/issues/90210) を解決。[#90209](https://github.com/ClickHouse/ClickHouse/pull/90209)([Alsu Giliazova](https://github.com/alsugiliazova))。 +* part が持つ行数が index_granularity より少ない場合に、MergeTreeReaderIndex で行数の不整合が発生する問題を修正しました。[#89691](https://github.com/ClickHouse/ClickHouse/issues/89691) を解決します。[#90254](https://github.com/ClickHouse/ClickHouse/pull/90254)([Peng Jian](https://github.com/fastio))。 +* `nan`/`inf` の無限値を含む `WITH FILL` クエリの不具合を修正しました。[#69261](https://github.com/ClickHouse/ClickHouse/issues/69261) を解決します。[#90255](https://github.com/ClickHouse/ClickHouse/pull/90255)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* query_plan_use_logical_join_step=0 および JOIN の ON 句における残余条件で発生する「column not found」エラーを修正。 [#88635](https://github.com/ClickHouse/ClickHouse/issues/88635) を解決。 [#90279](https://github.com/ClickHouse/ClickHouse/pull/90279)([Vladimir Cherkasov](https://github.com/vdimir))。 +* 集約 PROJECTION の最適化を使用する一部のクエリを修正しました。 [#90288](https://github.com/ClickHouse/ClickHouse/pull/90288) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* コンパクトパーツにおける JSON からのサブカラム読み取り処理のバグを修正しました。このバグにより `CANNOT_READ_ALL_DATA` エラーが発生する可能性がありました。 [#90264](https://github.com/ClickHouse/ClickHouse/issues/90264) を解決します。 [#90302](https://github.com/ClickHouse/ClickHouse/pull/90302)([Pavel Kruglov](https://github.com/Avogar))。 +* manifest ファイルでソート順が指定されていない(またはテーブルの default_sort_order と一致していない)場合、ClickHouse は Iceberg に対して read-in-order 最適化を使用しなくなりました。 [#89178](https://github.com/ClickHouse/ClickHouse/issues/89178) を修正しました。 [#90304](https://github.com/ClickHouse/ClickHouse/pull/90304)([alesapin](https://github.com/alesapin))。 +* Time および Time64 が、DateTime および DateTime64 からの変換の際にタイムゾーンを正しく扱うようになりました(`DateTime[64]` としてユーザーに表示される場合と同じタイムゾーンで時刻が表示されます)。[#89896](https://github.com/ClickHouse/ClickHouse/issues/89896) を解決しました。 [#90310](https://github.com/ClickHouse/ClickHouse/pull/90310)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* `SELECT CAST(CAST(now(), 'Time'), 'Time64')` が誤った結果を返していた不具合を修正しました。[#88349](https://github.com/ClickHouse/ClickHouse/issues/88349) をクローズしました。[#90324](https://github.com/ClickHouse/ClickHouse/pull/90324)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* randomStringUTF8 で整数オーバーフローが発生した際にクラッシュする問題を修正しました。 [#90326](https://github.com/ClickHouse/ClickHouse/pull/90326) ([Michael Kolupaev](https://github.com/al13n321)). +* `multicluster_root_path` を使用するマルチクラスタ構成で、クラスタディスカバリの更新が遅延したり ZooKeeper の更新が欠落したりしないように修正しました。 [#90341](https://github.com/ClickHouse/ClickHouse/pull/90341) ([RinChanNOW](https://github.com/RinChanNOWWW))。 +* 存在しない JSON パスに対する prewhere 句で、index_granularity_bytes=0 の場合に発生しうる潜在的な論理エラーを修正しました。[#86924](https://github.com/ClickHouse/ClickHouse/issues/86924) を解決します。 [#90375](https://github.com/ClickHouse/ClickHouse/pull/90375)([Pavel Kruglov](https://github.com/Avogar))。 +* `L2DistanceTransposed` において、precision 引数が有効な範囲を超えた場合にクラッシュしていたバグを修正しました。 [#90401](https://github.com/ClickHouse/ClickHouse/issues/90401) をクローズ。 [#90405](https://github.com/ClickHouse/ClickHouse/pull/90405)([Raufs Dunamalijevs](https://github.com/rienath))。 +* `Array(Dynamic)` を引数に取る `arrayUnion` で発生する可能性のある論理エラーを修正しました。[#90270](https://github.com/ClickHouse/ClickHouse/issues/90270) を解決します。[#90409](https://github.com/ClickHouse/ClickHouse/pull/90409)([Pavel Kruglov](https://github.com/Avogar))。 +* 1つの ALTER 文内で同一の Nested カラムをリネームおよび変更する際に発生しうる論理エラーを修正しました。[#90406](https://github.com/ClickHouse/ClickHouse/issues/90406) を解決します。[#90412](https://github.com/ClickHouse/ClickHouse/pull/90412)([Pavel Kruglov](https://github.com/Avogar))。 +* HTTP パラメータからの JSON/Dynamic/Variant 値のパース処理を修正。[#88925](https://github.com/ClickHouse/ClickHouse/issues/88925) を解決。[#90430](https://github.com/ClickHouse/ClickHouse/pull/90430)([Pavel Kruglov](https://github.com/Avogar))。 +* Hive のパーティション処理において、静的な `KeyValuePairExtractor` が原因でファイルの同時読み取り時にデータ破損やクラッシュを引き起こしていたレースコンディションを修正しました。 [#90474](https://github.com/ClickHouse/ClickHouse/pull/90474) ([Paresh Joshi](https://github.com/pareshjoshij)). +* 配列の参照ベクトル(デフォルトでは `Array(Float64)`)と、要素型が `Float64` ではない(`Float32`、`BFloat16`)`QBit` カラムを組み合わせて使用した場合に、`L2DistanceTransposed` で誤った距離計算が行われていた問題を修正しました。この関数は現在、参照ベクトルを `QBit` の要素型に合わせて自動的にキャストするようになりました。[#89976](https://github.com/ClickHouse/ClickHouse/issues/89976) を解決します。[#90485](https://github.com/ClickHouse/ClickHouse/pull/90485)([Raufs Dunamalijevs](https://github.com/rienath))。 +* 負の引数を渡した場合に `toDateTimeOrNull` が NULL を返してしまうバグを修正しました。 [#90490](https://github.com/ClickHouse/ClickHouse/pull/90490) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* `Arrow` フォーマットでの `LowCardinality(Bool/Date32)` の出力時に発生し得た論理エラーを修正しました。[#83883](https://github.com/ClickHouse/ClickHouse/issues/83883) を解決します。[#90505](https://github.com/ClickHouse/ClickHouse/pull/90505)([Pavel Kruglov](https://github.com/Avogar))。 +* 一部の不正な入力に対して不正な値を返していた IPv4 解析関数(例: `IPv4StringToNumOrDefault`)を修正しました。[#90544](https://github.com/ClickHouse/ClickHouse/issues/90544) を解決しました。[#87583](https://github.com/ClickHouse/ClickHouse/issues/87583) を解決しました。[#90545](https://github.com/ClickHouse/ClickHouse/pull/90545)([Michael Kolupaev](https://github.com/al13n321))。 +* ローカルホストチェック中にアドレス解決に失敗した場合に markReplicasActive を再試行するよう変更: DDLTask における自己ホストチェック中に例外が発生した場合、警告ログを出力します。DDLWorker::markReplicasActive では、ローカルホストが見つからず、かつクラスタ内にホスト ID が存在する場合に、再試行のための例外をスローします。 [#90556](https://github.com/ClickHouse/ClickHouse/pull/90556) ([Tuan Pham Anh](https://github.com/tuanpach))。 +* `equals` 関数のまれなケースが原因で発生していた論理エラーを修正。[#88142](https://github.com/ClickHouse/ClickHouse/issues/88142) をクローズ。[#90557](https://github.com/ClickHouse/ClickHouse/pull/90557)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* おそらく `test_ssh/test.py::test_paramiko_password` における ThreadSanitizer のクラッシュを修正しました。 [#90612](https://github.com/ClickHouse/ClickHouse/pull/90612) ([Govind R Nair](https://github.com/Revertionist))。 +* `concatWithSeparator` 関数で、非文字列の定数カラムを使用した場合に発生する論理エラーを修正。[#90596](https://github.com/ClickHouse/ClickHouse/issues/90596) をクローズ。[#90655](https://github.com/ClickHouse/ClickHouse/pull/90655)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* `INTO OUTFILE` のフォーマットを修正し、[#90207](https://github.com/ClickHouse/ClickHouse/issues/90207) を解決しました。[#90656](https://github.com/ClickHouse/ClickHouse/pull/90656)([Azat Khuzhin](https://github.com/azat))。 +* `allow_statistics_optimize=1` が有効な状態でサブクエリを含む mutation を実行した際に発生しうるクラッシュを修正しました。[#90626](https://github.com/ClickHouse/ClickHouse/issues/90626) を解決します。[#90664](https://github.com/ClickHouse/ClickHouse/pull/90664)([Azat Khuzhin](https://github.com/azat))。 +* `GROUP BY` と併用した `LIMIT BY` に対するアナライザーの検証ロジックを修正し、`LIMIT BY` が `GROUP BY` に含まれないカラムを使用している場合に、`NOT_FOUND_COLUMN_IN_BLOCK` ではなく正しいエラー `NOT_AN_AGGREGATE` を返すようにしました。[#89713](https://github.com/ClickHouse/ClickHouse/issues/89713) をクローズ。[#90665](https://github.com/ClickHouse/ClickHouse/pull/90665)([xiaohuanlin](https://github.com/xiaohuanlin))。 +* `LowCardinality` カラムをパーティションキーで使用する際に発生する型キャストエラーを修正しました。 [#89412](https://github.com/ClickHouse/ClickHouse/issues/89412) をクローズしました。 [#90666](https://github.com/ClickHouse/ClickHouse/pull/90666)([xiaohuanlin](https://github.com/xiaohuanlin))。 +* `shardNum()` などの非決定論的関数から折り畳まれた定数を含むフィルタ述語を持つクエリが、誤ってクエリ条件キャッシュを使用してしまう問題を修正しました。 [#90692](https://github.com/ClickHouse/ClickHouse/pull/90692) ([Eduard Karacharov](https://github.com/korowa)). +* JOIN の ON 句で `EXISTS` 関数を使用するクエリで発生していたセグメンテーションフォルトを修正しました。クエリは単に `INVALID_JOIN_ON_EXPRESSION` エラーを返すようになりました。[#90698](https://github.com/ClickHouse/ClickHouse/issues/90698) をクローズしました。 [#90719](https://github.com/ClickHouse/ClickHouse/pull/90719)([Vladimir Cherkasov](https://github.com/vdimir))。 +* デフォルトデータベースをテーブルなしで使用した場合に AccessRightsElement で発生していた論理エラー 'Inconsistent AST formatting' を修正。[#90742](https://github.com/ClickHouse/ClickHouse/pull/90742)([Pablo Marcos](https://github.com/pamarcos))。 +* `remote` テーブル関数でターゲットホストとして `localhost` を使用した場合の `ALTER UPDATE` クエリに対するアクセス権限の検証処理を修正しました。 [#90761](https://github.com/ClickHouse/ClickHouse/pull/90761) ([pufit](https://github.com/pufit)). +* named collections のシークレットの非表示動作が `display_secrets_in_show_and_select` と `format_display_secrets_in_show_and_select` に依存するよう修正しました。 [#90765](https://github.com/ClickHouse/ClickHouse/pull/90765) ([Pablo Marcos](https://github.com/pamarcos)). +* `enable_shared_storage_snapshot_in_query` を無効化(メモリリークを引き起こすため)。 [#90770](https://github.com/ClickHouse/ClickHouse/pull/90770) ([Azat Khuzhin](https://github.com/azat))。 +* parallel replicas が有効な状態で RIGHT JOIN と分散テーブルを使用した際に発生する重複データの問題を修正。 [#90806](https://github.com/ClickHouse/ClickHouse/pull/90806) ([zoomxi](https://github.com/zoomxi)). +* JSON 内の共有データおよび動的パスが不整合な状態となり、論理エラーや予期しない結果を引き起こす可能性があった問題を修正しました。 [#90816](https://github.com/ClickHouse/ClickHouse/pull/90816) ([Pavel Kruglov](https://github.com/Avogar)). +* SharedCatalog(Cloud 専用機能)の CSE における、dictGet() と辞書名を含む ALTER MODIFY QUERY の問題を修正。 [#90860](https://github.com/ClickHouse/ClickHouse/pull/90860) ([Azat Khuzhin](https://github.com/azat)). +* String 集約状態のインメモリシリアライズ処理の互換性を修正しました。シリアライズ形式が異なると、異なるバージョンのインスタンスで同じ集約クエリを実行した場合に、結果が重複する可能性がありました。新しいシリアライズ方式は `serialize_string_in_memory_with_zero_byte` で有効化できます。 [#90880](https://github.com/ClickHouse/ClickHouse/pull/90880) ([Antonio Andelic](https://github.com/antonio2368))。 +* 頻繁に INSERT が行われる場合の Buffer のバックグラウンドでのフラッシュ処理を修正。 [#90892](https://github.com/ClickHouse/ClickHouse/pull/90892) ([Azat Khuzhin](https://github.com/azat)). +* system.licenses に contrib/ の親フォルダを表示しないようにしました。 [#90901](https://github.com/ClickHouse/ClickHouse/pull/90901) ([Raúl Marín](https://github.com/Algunenano)). +* JSON/Dynamic/Variant カラムの読み取り時にメモリ使用量が高くなる問題を修正。 [#90907](https://github.com/ClickHouse/ClickHouse/pull/90907) ([Pavel Kruglov](https://github.com/Avogar)). +* base58Decode 関数のバッファ割り当てを修正しました。 [#90909](https://github.com/ClickHouse/ClickHouse/pull/90909) ([Antonio Andelic](https://github.com/antonio2368)) +* `finish=true` フラグ付きのレスポンス送信後に、レプリカから別の読み取りリクエストを受信した場合に発生する可能性のあった論理エラーを修正しました。これは `MergeTreeReadPoolParallelReplicas` 内の論理的なレースコンディションが原因でしたが、実際に発生する可能性は非常に低いものでした。 [#90921](https://github.com/ClickHouse/ClickHouse/pull/90921) ([Nikita Taranov](https://github.com/nickitat))。 +* 部分的な権限取り消し時のワイルドカード権限チェックを修正し、テストをさらに追加。 [#90922](https://github.com/ClickHouse/ClickHouse/pull/90922) ([pufit](https://github.com/pufit)). +* `Nested` `LowCardinality` カラムに対する `SummingMergeTree` 集約を修正しました。 [#90927](https://github.com/ClickHouse/ClickHouse/pull/90927) ([Ivan Babrou](https://github.com/bobrik))。 +* ワイルドカードを用いた取り消し時のグローバル権限の扱いを修正。ワイルドカードで付与された権限を取り消した際に、`CREATE USER` のようなグローバルレベルの権限まで誤って取り消されてしまう問題を修正。 [#90928](https://github.com/ClickHouse/ClickHouse/pull/90928) ([pufit](https://github.com/pufit)). +* Azure の Blob 一覧取得時に発生し得る無限ループを修正。 [#90947](https://github.com/ClickHouse/ClickHouse/pull/90947) ([Julia Kartseva](https://github.com/jkartseva)). +* 過剰な Buffer フラッシュを修正しました(CPU を無駄に消費し、大量のログを出力していました)。 [#91000](https://github.com/ClickHouse/ClickHouse/pull/91000) ([Azat Khuzhin](https://github.com/azat)). +* ... adaptive_write_buffer_initial_size を 0 に設定することを禁止しました。 [#91001](https://github.com/ClickHouse/ClickHouse/pull/91001) ([Pedro Ferreira](https://github.com/PedroTadim))。 +* Compact パーツで `write_marks_for_substreams_in_compact_parts` が無効になっている場合に、JSON のサブオブジェクト読み取り中、パスが共有データと動的パスの両方になり得るケースで発生していたバグを修正。 [#91014](https://github.com/ClickHouse/ClickHouse/pull/91014) ([Pavel Kruglov](https://github.com/Avogar)). +* 引数なしの dictGet を含む CTE で発生する std::out_of_range 例外を修正。[#91027](https://github.com/ClickHouse/ClickHouse/issues/91027) をクローズ。[#91022](https://github.com/ClickHouse/ClickHouse/pull/91022)([Pavel Kruglov](https://github.com/Avogar))。 +* ミューテーションでマテリアライズドカラムから動的サブカラムを読み取る処理を修正しました。[#90653](https://github.com/ClickHouse/ClickHouse/issues/90653) をクローズしました。[#91040](https://github.com/ClickHouse/ClickHouse/pull/91040)([Pavel Kruglov](https://github.com/Avogar))。 +* 空配列と `isNull` 関数を併用した場合に `arrayFilter` 関数が動作しない問題を修正しました。[#73849](https://github.com/ClickHouse/ClickHouse/issues/73849) をクローズしました。[#91105](https://github.com/ClickHouse/ClickHouse/pull/91105)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* テーブルのカラムのいずれかが空のタプル型カラムである場合に `ARRAY JOIN` で発生していた論理エラーを修正。[#90801](https://github.com/ClickHouse/ClickHouse/issues/90801) をクローズ。[#91123](https://github.com/ClickHouse/ClickHouse/pull/91123)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* 古いパーツに対して `alter add column` で追加されたカラムが遅延マテリアライズされる問題を修正。 [#91142](https://github.com/ClickHouse/ClickHouse/pull/91142) ([Pavel Kruglov](https://github.com/Avogar))。 +* Summing/Aggregating/Coalescing MergeTree における JSON カラムのマージ処理を修正しました。以前は、パーツへの書き込み時に予期しない動的なパスが発生する可能性がありました。 [#91151](https://github.com/ClickHouse/ClickHouse/pull/91151) ([Pavel Kruglov](https://github.com/Avogar)). +* コンパクトなパーツへの書き込み時に、セグメンテーションフォルトを引き起こす可能性のある動的構造の不整合を修正しました。 [#91152](https://github.com/ClickHouse/ClickHouse/pull/91152) ([Pavel Kruglov](https://github.com/Avogar)). +* 指数表記で表現されたサブノーマルな浮動小数点数の解析を修正しました。[#78903](https://github.com/ClickHouse/ClickHouse/issues/78903) をクローズします。[#91162](https://github.com/ClickHouse/ClickHouse/pull/91162)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* 暗黙的スキーマを持つソースからのサブクエリを用いた `INSERT SELECT` におけるスキーマ推論の誤りを修正。 [#91204](https://github.com/ClickHouse/ClickHouse/pull/91204) ([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 +* [https://github.com/clickhouse/clickhouse/issues/91206](https://github.com/clickhouse/clickhouse/issues/91206) を修正しました。統計情報付きでテーブルを作成し、データを書き込み、その後統計情報の一つを削除すると、再度読み込む際にクラッシュしていました。これは、シリアライズとデシリアライズで同じ型の統計情報が存在することを前提としていたためです。この修正では、現在のメタデータにシリアライズ済みの統計情報が含まれているかを確認し、含まれていない場合はダミーの統計情報を作成してデシリアライズのみを行い、その統計情報をスキップするようにしました。 [#91227](https://github.com/ClickHouse/ClickHouse/pull/91227) ([Han Fei](https://github.com/hanfei1991))。 +* CoalescingMergeTree のカラムへ JSON/Dynamic と LowCardinality から成る Tuple を挿入する際の不具合を修正しました。 [#91215](https://github.com/ClickHouse/ClickHouse/issues/91215) をクローズしました。 [#91270](https://github.com/ClickHouse/ClickHouse/pull/91270)([Pavel Kruglov](https://github.com/Avogar))。 +* `SYSTEM DROP FILESYSTEM CACHE ON CLUSTER` の不具合を修正。 [#91304](https://github.com/ClickHouse/ClickHouse/pull/91304) ([Anton Ivashkin](https://github.com/ianton-ru)). +* 論理エラー「Bad cast from type DB::ColumnSparse to DB::ColumnNullable」が発生する可能性があった問題を修正しました。 [#91284](https://github.com/ClickHouse/ClickHouse/issues/91284) をクローズしました。 [#91309](https://github.com/ClickHouse/ClickHouse/pull/91309)([Pavel Kruglov](https://github.com/Avogar))。 +* 悪意を持って細工されたバイトストリームが、本来は不可能なはずのネストした QBit 型としてデシリアライズされることでサーバーがクラッシュする問題を修正しました。これは悪用されるとサーバーをクラッシュさせることに利用される可能性がありました。 [#91313](https://github.com/ClickHouse/ClickHouse/pull/91313) ([Raufs Dunamalijevs](https://github.com/rienath)). +* Replicated データベースにおいて引数が空の Alias テーブルの問題を修正。[#91378](https://github.com/ClickHouse/ClickHouse/issues/91378) を解決。[#91382](https://github.com/ClickHouse/ClickHouse/pull/91382)([Kai Zhu](https://github.com/nauu))。 +* この設定は現在 false に設定されているため、非同期挿入キューがリモートサーバーにフラッシュされる際には、挿入は常に同期的に実行されます。ユーザーごとにこの設定が True にされている場合でも同様です。 [#91386](https://github.com/ClickHouse/ClickHouse/pull/91386) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* マージアルゴリズムのヘッダーからスパースカラムを削除しました。 [#91377](https://github.com/ClickHouse/ClickHouse/issues/91377) をクローズ。 [#91396](https://github.com/ClickHouse/ClickHouse/pull/91396)([Pavel Kruglov](https://github.com/Avogar))。 +* 25.8 における Hive パーティショニングのバグを修正しました。このバグにより、本来は発生すべきでない例外 `A hive partitioned file can't contain only partition columns` が誤ってスローされてしまう可能性がありました。 [#91403](https://github.com/ClickHouse/ClickHouse/pull/91403) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Dictionary タイプが Hierarchy をサポートしているにもかかわらず、どのカラムも `HIERARCHICAL` ではない場合に、`NULL` が原因で `dictGetDescendants` がクラッシュする問題を修正しました。[#92026](https://github.com/ClickHouse/ClickHouse/issues/92026) および [#92121](https://github.com/ClickHouse/ClickHouse/issues/92121) をクローズ。[#91420](https://github.com/ClickHouse/ClickHouse/pull/91420)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* `IN` 関数でラムダ式と非定数タプル引数が使用された場合にクラッシュする問題を修正しました。[#91379](https://github.com/ClickHouse/ClickHouse/issues/91379) をクローズしました。 [#91446](https://github.com/ClickHouse/ClickHouse/pull/91446)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* MaterializedView への挿入によって、並列書き込みをサポートしないストレージで並列書き込みが開始されてしまう問題を修正しました。 [#91449](https://github.com/ClickHouse/ClickHouse/pull/91449) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* Ytsaurus の XML 辞書における null 値の処理を修正しました。 [#91465](https://github.com/ClickHouse/ClickHouse/pull/91465) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* `SET param_q=[1,2,3,4]; SELECT {q:QBit(Float32,4)}` のようなクエリパラメータを使用した場合に `QBit` 型でエラーが発生する問題を修正しました。 [#91488](https://github.com/ClickHouse/ClickHouse/pull/91488) ([Raufs Dunamalijevs](https://github.com/rienath)). +* 定数式で untuple が使用された場合に LOGICAL_ERROR が発生する問題を修正。 [#91507](https://github.com/ClickHouse/ClickHouse/pull/91507) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* `librdkafka` においてデータレースが発生する可能性のあった問題を修正しました。 [#91521](https://github.com/ClickHouse/ClickHouse/pull/91521) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 +* `remote` 関数のアスタリスク引数が原因で発生していた論理エラーを修正しました。[#90568](https://github.com/ClickHouse/ClickHouse/issues/90568) をクローズ。[#91524](https://github.com/ClickHouse/ClickHouse/pull/91524)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* Date 型および DateTime64 型に対して ORC フォーマットから読み込む際に発生していたオーバーフローを修正しました。[#70976](https://github.com/ClickHouse/ClickHouse/issues/70976) をクローズ。[#91572](https://github.com/ClickHouse/ClickHouse/pull/91572)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* Object Storage テーブルエンジンに対する ALTER を禁止しました。たとえば、ALTER ADD PROJECTION を実行すると、Object Storage エンジンは PROJECTION をサポートしていないため、サーバーを再起動できなくなる可能性がありました。 [#91573](https://github.com/ClickHouse/ClickHouse/pull/91573) ([Nikolay Degterinsky](https://github.com/evillique)). +* 非定数の参照ベクトル(例: テーブル由来のもの)を使用した場合に [`L2DistanceTransposed`](https://clickhouse.com/docs/sql-reference/functions/distance-functions#L2DistanceTransposed) が誤った結果を返す問題を修正しました。[#91517](https://github.com/ClickHouse/ClickHouse/issues/91517)。[#91593](https://github.com/ClickHouse/ClickHouse/pull/91593)([Raufs Dunamalijevs](https://github.com/rienath))。 +* ディスパッチ段階で FALSE 条件の JOIN を行うと `LOGICAL_ERROR` が返されるバグを修正しました。[#91173](https://github.com/ClickHouse/ClickHouse/issues/91173) をクローズ。[#91598](https://github.com/ClickHouse/ClickHouse/pull/91598)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* "additional filter" を伴う join で発生していたメモリ使用量増加の問題を修正し、[#91011](https://github.com/ClickHouse/ClickHouse/issues/91011) をクローズしました。[#91664](https://github.com/ClickHouse/ClickHouse/pull/91664) ([Vladimir Cherkasov](https://github.com/vdimir)). +* VIEW を使用し、並列レプリカを有効にした状態での JOIN クエリを修正しました。 [#91813](https://github.com/ClickHouse/ClickHouse/pull/91813) ([Igor Nikonov](https://github.com/devcrafter))。 +* Delta Lake の設定 `delta_lake_snapshot_version` を修正しました。この設定は、テーブルエンジン(テーブル関数ではない)で、以前にスナップショットバージョンを使用した後に値 -1(無効)を指定して使用すると、不正な結果を返す可能性がありました。 [#87676](https://github.com/ClickHouse/ClickHouse/issues/87676) をクローズ。 [#91818](https://github.com/ClickHouse/ClickHouse/pull/91818)([Kseniia Sumarokova](https://github.com/kssenii))。 +* RecursiveCTEChunkGenerator で発生する LOGICAL_ERROR を修正。 [#91827](https://github.com/ClickHouse/ClickHouse/pull/91827) ([Pablo Marcos](https://github.com/pamarcos)). +* FINAL と PREWHERE を使用するクエリで発生していたブロック構造の不整合を修正。 [#91847](https://github.com/ClickHouse/ClickHouse/pull/91847) ([Antonio Andelic](https://github.com/antonio2368)). +* `join_use_nulls` を複数の JOIN および CROSS JOIN と併用した際の論理エラーを修正。 [#91853](https://github.com/ClickHouse/ClickHouse/pull/91853) ([Vladimir Cherkasov](https://github.com/vdimir)). +* 共有データおよび動的パスにおいてパスが重複した JSON を修復するための機構を追加しました。これは、[https://github.com/ClickHouse/ClickHouse/pull/90816](https://github.com/ClickHouse/ClickHouse/pull/90816) で修正されたバグが原因で発生する可能性がありました。[#91886](https://github.com/ClickHouse/ClickHouse/pull/91886) ([Pavel Kruglov](https://github.com/Avogar))。 +* DICTIONARY_V2 でエンコードされ、NULL 値のみを含む文字列カラムを読み取る際の ORC リーダーのバグを修正しました。 [#91889](https://github.com/ClickHouse/ClickHouse/pull/91889) ([Peng Jian](https://github.com/fastio)). +* Tuple カラムにおけるスパースおよび Nullable サブストリーム間のシリアライズの不整合を修正しました。この不整合により、読み取り中にパーツが破損したりクラッシュしたりする可能性がありました。この修正は [https://github.com/ClickHouse/ClickHouse/pull/91851](https://github.com/ClickHouse/ClickHouse/pull/91851) に対応するものです。@Algunenano この変更でプライベートリポジトリ内のストレステストが解消されるか確認してもらえますか?@CurtizJ こちらも合わせてご確認いただけますか?ありがとうございます。 [#91932](https://github.com/ClickHouse/ClickHouse/pull/91932) ([Amos Bird](https://github.com/amosbird))。 +* plain-rewritable ディスク上でバックアップを作成する際に発生するエラー `Directory '{}' does not exist (LOGICAL_ERROR)` を修正しました。 [#91935](https://github.com/ClickHouse/ClickHouse/pull/91935) ([Julia Kartseva](https://github.com/jkartseva)). +* 名前付きコレクションを使用して MongoDB に接続する際にクラッシュしないように修正。 [#91959](https://github.com/ClickHouse/ClickHouse/pull/91959) ([Antonio Andelic](https://github.com/antonio2368)). +* コンパクトなパーツに対して一部の `ALTER` クエリを実行した後に発生する可能性があった「TOO_MANY_MARKS」エラーを修正しました。 [#91980](https://github.com/ClickHouse/ClickHouse/pull/91980) ([alesapin](https://github.com/alesapin)). +* [https://github.com/clickhouse/clickhouse/issues/87417](https://github.com/clickhouse/clickhouse/issues/87417) をクローズ。v1 フォーマットの書き込みスキーマに誤りがありました。必須項目であるため、"added_snapshot_id" の型は "null, long" ではなく "long" であるべきです。これにより Spark など他のシステムとの互換性がなくなっていたため、バグとなっていました。マニフェストファイルを混在させると、このバグが発生します。[#92078](https://github.com/ClickHouse/ClickHouse/pull/92078)([Han Fei](https://github.com/hanfei1991))。 +* 以前のバージョンで命名スタイルが誤っていた `readWKT` と `readWKB` の名称を修正しました。 [#92094](https://github.com/ClickHouse/ClickHouse/pull/92094) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `midpoint` 関数における多数の論理エラー、オーバーフロー、および機能上の不具合を修正しました。[#91816](https://github.com/ClickHouse/ClickHouse/issues/91816) をクローズしました。[#92102](https://github.com/ClickHouse/ClickHouse/pull/92102)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* 特定のサブカラム(例: 文字列サイズ)をスパースエンコーディングを使用して読み取る際に誤った結果が返されることがあった問題を修正しました。 [#92156](https://github.com/ClickHouse/ClickHouse/pull/92156) ([Pavel Kruglov](https://github.com/Avogar))。 +* `system.view_refreshes` が `No macro 'replica' in config` エラーで失敗する不具合を修正しました。 [#92203](https://github.com/ClickHouse/ClickHouse/pull/92203) ([Michael Kolupaev](https://github.com/al13n321)). +* フォーマット処理における UDF `replace` の問題を修正。 [#92210](https://github.com/ClickHouse/ClickHouse/pull/92210) ([Raúl Marín](https://github.com/Algunenano)). +* `ddlworker::markreplicasactive` でアクティブなホストが見つからず、かつ `remote_servers` にいくつかの host_ids が存在する場合、例外を投げる代わりに警告ログを出力するようにしました。 [#92223](https://github.com/ClickHouse/ClickHouse/pull/92223) ([Tuan Pham Anh](https://github.com/tuanpach))。 +* 演算子 `IN` および `NOT IN` を丸括弧で囲むようにしました。[#85075](https://github.com/ClickHouse/ClickHouse/issues/85075) を修正。[#92225](https://github.com/ClickHouse/ClickHouse/pull/92225)([Mikhail f. Shiryaev](https://github.com/Felixoid))。 +* KeeperMap と Memory テーブルのバックアップ処理を修正しました。これら 2 つのエンジンのいずれかを使用するテーブルで `max_compress_block_size` を `0` に設定してバックアップを作成すると、クラッシュする可能性がありました。 [#92237](https://github.com/ClickHouse/ClickHouse/pull/92237) ([Antonio Andelic](https://github.com/antonio2368))。 +* Log エンジンから String 型データと .size サブカラムの両方を読み込む際にクラッシュする問題を修正しました。これにより [#89909](https://github.com/ClickHouse/ClickHouse/issues/89909) が修正されます。これには [#92290](https://github.com/ClickHouse/ClickHouse/issues/92290) の一部のコミットが含まれます。[#92341](https://github.com/ClickHouse/ClickHouse/pull/92341)([Amos Bird](https://github.com/amosbird))。 +* `caseWithExpression` 関数の引数で `Nothing` 型を使用したことにより発生していた論理エラーを修正しました。[#85354](https://github.com/ClickHouse/ClickHouse/issues/85354) をクローズしました。[#92351](https://github.com/ClickHouse/ClickHouse/pull/92351)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* MEMORY_LIMIT_EXCEEDED 発生後に集約関数がクラッシュする可能性があった問題を修正しました。 [#92390](https://github.com/ClickHouse/ClickHouse/pull/92390) ([Azat Khuzhin](https://github.com/azat)). + +#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement} + +* CI で `clang-21` を使用するように変更。[#87074](https://github.com/ClickHouse/ClickHouse/pull/87074) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* クロスコンパイル時に CMake からのダウンロードを行わないように変更。[#90506](https://github.com/ClickHouse/ClickHouse/pull/90506) ([Raúl Marín](https://github.com/Algunenano)). + +### ClickHouse リリース 25.11(2025-11-27) {#2511} + +#### 後方互換性のない変更 {#backward-incompatible-change} + +* 非推奨となっていた `Object` 型を削除しました。[#85718](https://github.com/ClickHouse/ClickHouse/pull/85718) ([Pavel Kruglov](https://github.com/Avogar))。 +* 廃止予定だった `LIVE VIEW` 機能を削除しました。`LIVE VIEW` を使用している場合は、新しいバージョンへのアップグレードはできません。[#88706](https://github.com/ClickHouse/ClickHouse/pull/88706) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 以前のバージョンでは `Geometry` 型は `String` へのエイリアスでしたが、現在は独立したフル機能の型になりました。[#83344](https://github.com/ClickHouse/ClickHouse/pull/83344) ([scanhex12](https://github.com/scanhex12))。 +* MergeTree テーブルの Wide 形式のデータパートにおける `Variant` 型サブカラム向けに作成されるファイル名をエスケープするようにしました。この変更により、Variant/Dynamic/JSON データ型を持つ古いテーブルとの互換性が失われます。この変更は、Variant 内に特殊記号を含む型(`\` を含む特定のタイムゾーンを持つ DateTime など)の保存の問題を修正します。エスケープは、MergeTree の設定 `escape_variant_subcolumn_filenames` を変更することで無効化できます(互換性を維持するには、MergeTree 用の設定ファイルでこの設定を無効にするか、アップグレード前に `compatibility` 設定を以前のバージョンに設定してください)。[#69590](https://github.com/ClickHouse/ClickHouse/issues/69590) を解決します。[#87300](https://github.com/ClickHouse/ClickHouse/pull/87300) ([Pavel Kruglov](https://github.com/Avogar))。 +* 既定で `String` データ型に対して `with_size_stream` シリアル化形式を有効にしました。この変更は後方互換性がありますが、新しいシリアル化形式はバージョン 25.10 以降でのみサポートされているため、25.10 より前のバージョンへのダウングレードはできません。25.9 以前へのダウングレードの可能性を残したい場合は、サーバー設定の `merge_tree` セクションで `serialization_info_version` を `basic` に、`string_serialization_version` を `single_stream` に設定してください。[#89329](https://github.com/ClickHouse/ClickHouse/pull/89329) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* クライアントが例外をより確実に解析できるように、HTTP レスポンス結果に対する例外タグ付けをサポートしました。[#75175](https://github.com/ClickHouse/ClickHouse/issues/75175) を解決します。設定 `http_write_exception_in_output_format` は、フォーマット間の一貫性のためデフォルトでは無効になっています。[#88818](https://github.com/ClickHouse/ClickHouse/pull/88818) ([Kaviraj Kanagaraj](https://github.com/kavirajk))。既存の動作を壊さない想定ではあります(最悪の場合でも例外メッセージに奇妙な文字列が追加されるだけです)が、注意喚起の意味から、変更ログのカテゴリとしては「Backward Incompatible Change」を使用するのが妥当です(例外メッセージをどのような「雑な」スクリプトがパースしているか分からないためです)。 +* 共有オブジェクトストレージパス上に複数の `plain-rewritable` ディスクを作成することを禁止しました。これは、異なるメタデータストレージトランザクション間で衝突が発生した際に未定義の動作を引き起こす可能性があるためです。[#89038](https://github.com/ClickHouse/ClickHouse/pull/89038) ([Mikhail Artemenko](https://github.com/Michicosun))。 +* Kafka ストレージの SASL 設定の優先順位を修正しました。CREATE TABLE クエリで指定されたテーブルレベルの SASL 設定が、設定ファイルにある consumer/producer 固有の設定を正しく上書きするようになりました。[#89401](https://github.com/ClickHouse/ClickHouse/pull/89401) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 +* Parquet のタイムゾーンなしタイムスタンプ(isAdjustedToUTC=false)は、これまでの DateTime64(...) ではなく DateTime64(..., 'UTC') として読み込まれるようになりました。これは、UTC タイムスタンプを文字列に変換したときに正しいローカル時刻の表現が得られるという点で、従来よりも誤りが少ない動作です。以前の動作を再現するには `input_format_parquet_local_time_as_utc = 0` を使用してください。[#87469](https://github.com/ClickHouse/ClickHouse/issues/87469) を解決します。[#87872](https://github.com/ClickHouse/ClickHouse/pull/87872) ([Michael Kolupaev](https://github.com/al13n321))。 +* `T64` コーデックに対する小さな改善として、圧縮要素サイズと整列していないデータ型を受け付けないようにしました。そうしないとバグが発生するためです。[#89282](https://github.com/ClickHouse/ClickHouse/issues/89282) を解決します。[#89432](https://github.com/ClickHouse/ClickHouse/pull/89432) ([yanglongwei](https://github.com/ylw510))。 + +#### 新機能 {#new-feature} + +* `Geometry` 型を導入しました。`Geometry` 型に対して `WKB` および `WKT` 形式での読み取りをサポートします。以前のバージョンでは `Geometry` 型は `String` のエイリアスでしたが、現在はフル機能の独立した型になりました。[#83344](https://github.com/ClickHouse/ClickHouse/pull/83344) ([scanhex12](https://github.com/scanhex12)). +* ユーザーのなりすまし(impersonation)をサポートするために、新しい SQL ステートメント `EXECUTE AS` を追加しました。[#39048](https://github.com/ClickHouse/ClickHouse/issues/39048) を解決しました。[#70775](https://github.com/ClickHouse/ClickHouse/pull/70775)([Shankar](https://github.com/shiyer7474))。 +* `naiveBayesClassifier` 関数を追加し、n-gram に基づくナイーブベイズ法でテキストを分類できるようにしました。 [#88677](https://github.com/ClickHouse/ClickHouse/pull/88677) ([Nihal Z. Miaji](https://github.com/nihalzp))。 +* テーブルの一部を割合で抽出できるよう、小数の `LIMIT` および `OFFSET` をサポートしました。[#81892](https://github.com/ClickHouse/ClickHouse/issues/81892) をクローズ。[#88755](https://github.com/ClickHouse/ClickHouse/pull/88755)([Ahmed Gouda](https://github.com/0xgouda))。 +* Microsoft OneLake カタログ向け ClickHouse のサブシステム。 [#89366](https://github.com/ClickHouse/ClickHouse/pull/89366) ([scanhex12](https://github.com/scanhex12)). +* 配列内の必要な数の次元をアンラップし、Tuple カラム内のポインタを入れ替える `flipCoordinates` 関数を追加しました。[#79469](https://github.com/ClickHouse/ClickHouse/issues/79469) を解決しました。[#79634](https://github.com/ClickHouse/ClickHouse/pull/79634)([Sachin Kumar Singh](https://github.com/sachinkumarsingh092))。 +* Unicode 文字とそのプロパティの一覧を含む `system.unicode` テーブルを追加しました。[#80055](https://github.com/ClickHouse/ClickHouse/issues/80055) をクローズしました。 [#80857](https://github.com/ClickHouse/ClickHouse/pull/80857) ([wxybear](https://github.com/wxybear)). +* マージ後の Wide パートにおける動的サブカラム数を、データ型で指定されたパラメータに関係なく制限できるようにするため、新しい MergeTree 設定 `merge_max_dynamic_subcolumns_in_wide_part` を追加しました。 [#87646](https://github.com/ClickHouse/ClickHouse/pull/87646) ([Pavel Kruglov](https://github.com/Avogar))。 +* `cume_dist` ウィンドウ関数のサポートを追加し、[#86920](https://github.com/ClickHouse/ClickHouse/issues/86920) を修正しました。 [#88102](https://github.com/ClickHouse/ClickHouse/pull/88102) ([Manuel](https://github.com/raimannma))。 +* テキスト索引の構築時に、新しい引数 `preprocessor` を追加できるようになりました。この引数には、トークン化の前に各ドキュメントを変換する任意の式を指定できます。 [#88272](https://github.com/ClickHouse/ClickHouse/pull/88272) ([Jimmy Aguilar Mena](https://github.com/Ergus))。 +* `X-ClickHouse-Progress` と `X-ClickHouse-Summary` に `memory_usage` フィールドを追加しました。これにより、クライアント側でクエリのメモリ使用量をリアルタイムに収集できます。 [#88393](https://github.com/ClickHouse/ClickHouse/pull/88393) ([Christoph Wurm](https://github.com/cwurm))。 +* `INTO OUTFILE` のために親ディレクトリを自動作成し、出力パスが存在しない場合のエラーを防ぐ setting `into_outfile_create_parent_directories` を追加しました。これにより、クエリが結果を階層化されたディレクトリに書き込むワークフローが簡素化されます。[#88610](https://github.com/ClickHouse/ClickHouse/issues/88610) を解決しました。[#88795](https://github.com/ClickHouse/ClickHouse/pull/88795)([Saksham](https://github.com/Saksham10-11))。 +* 一時テーブル向けの `CREATE OR REPLACE` 構文をサポートしました。[#35888](https://github.com/ClickHouse/ClickHouse/issues/35888) をクローズ。[#89450](https://github.com/ClickHouse/ClickHouse/pull/89450)([Aleksandr Musorin](https://github.com/AVMusorin))。 +* 配列 `arr` から `elem` と等しいすべての要素を削除するための `arrayRemove` のサポートを追加しました。これは Postgres との互換性のためだけに必要なもので、ClickHouse にはすでにそれよりはるかに強力な `arrayFilter` 関数があります。[#52099](https://github.com/ClickHouse/ClickHouse/issues/52099) を解決しました。[#89585](https://github.com/ClickHouse/ClickHouse/pull/89585)([tiwarysaurav](https://github.com/tiwarysaurav))。 +* 平均値を計算するスカラー関数 `midpoint` を追加。[#89029](https://github.com/ClickHouse/ClickHouse/issues/89029) を解決。[#89679](https://github.com/ClickHouse/ClickHouse/pull/89679)([simonmichal](https://github.com/simonmichal))。 +* Web UI にダウンロードボタンが追加されました。UI には結果の一部しか表示されていない場合でも、このボタンから結果全体をダウンロードできます。 [#89768](https://github.com/ClickHouse/ClickHouse/pull/89768) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `arrow_flight_request_descriptor_type` SETTING を追加し、コマンド形式の descriptor を要求する Dremio およびその他の Arrow Flight サーバーをサポート。[#89523](https://github.com/ClickHouse/ClickHouse/issues/89523) を実装。[#89826](https://github.com/ClickHouse/ClickHouse/pull/89826)([Shreyas Ganesh](https://github.com/shreyasganesh0))。 +* 引数と対応する極値を返す新しい集約関数 `argAndMin` と `argAndMax` を追加しました。以前のバージョンでは、引数としてタプルを使用することで同様のことも実現できました。 [#89884](https://github.com/ClickHouse/ClickHouse/pull/89884) ([AbdAlRahman Gad](https://github.com/AbdAlRahmanGad))。 +* Parquet チェックサムの書き込みおよび検証用の設定を追加。 [#79012](https://github.com/ClickHouse/ClickHouse/pull/79012) ([Michael Kolupaev](https://github.com/al13n321)). +* Kafka テーブルエンジンに `kafka_schema_registry_skip_bytes` 設定を追加し、メッセージペイロードをパースする前にエンベロープヘッダーのバイト列(例: AWS Glue Schema Registry の 19 バイトのプレフィックス)をスキップできるようにしました。これにより、メタデータヘッダーを追加するスキーマレジストリから ClickHouse がメッセージを消費できるようになります。 [#89621](https://github.com/ClickHouse/ClickHouse/pull/89621) ([Taras Polishchuk](https://github.com/wake-up-neo)). +* `h3PolygonToCells` 関数を追加しました。これにより、ジオメトリ領域を H3 の六角形セルで埋めることができます。 [#33991](https://github.com/ClickHouse/ClickHouse/issues/33991) を解決しました。 [#66262](https://github.com/ClickHouse/ClickHouse/pull/66262)([Zacharias Knudsen](https://github.com/zachasme))。 +* S3 内の BLOB に関連付けられているすべてのタグを含む新しい仮想カラム `_tags` (`Map(String, String)`) を追加しました(なお、BLOB にタグがない場合は追加のリクエストは発生しません)。[#72945](https://github.com/ClickHouse/ClickHouse/issues/72945) を解決。[#77773](https://github.com/ClickHouse/ClickHouse/pull/77773)([Zicong Qu](https://github.com/zicongleoqu))。 + +#### 実験的機能 {#experimental-feature} + +* Let's Encrypt などの ACME プロバイダから TLS 証明書を取得する機能をサポートしました([RFC 8555](https://datatracker.ietf.org/doc/html/rfc8555))。これにより、分散クラスタ上で TLS を自動的に設定できるようになります。 [#66315](https://github.com/ClickHouse/ClickHouse/pull/66315) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Prometheus HTTP Query API の一部をサポートしました。有効化するには、設定ファイルの `` セクションに型が `query_api` のルールを追加します。サポートされるハンドラは `/api/v1/query_range` と `/api/v1/query` です。 [#86132](https://github.com/ClickHouse/ClickHouse/pull/86132) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* フルテキスト検索が(従来の実験的段階から)ベータ版になりました。 [#88928](https://github.com/ClickHouse/ClickHouse/pull/88928) ([Robert Schulze](https://github.com/rschu1ze)). +* `Alias` を実験的機能に移行しました。`allow_experimental_alias_table_engine = 1` を設定することで有効化できます。 [#89712](https://github.com/ClickHouse/ClickHouse/pull/89712) ([Kai Zhu](https://github.com/nauu)). + +#### パフォーマンスの向上 {#performance-improvement} + +* Parquet リーダー v3 がデフォルトで有効です。 [#88827](https://github.com/ClickHouse/ClickHouse/pull/88827) ([Michael Kolupaev](https://github.com/al13n321)). +* 分散実行: タスクをファイル単位ではなく行グループ ID 単位で分割するように改善。 [#87508](https://github.com/ClickHouse/ClickHouse/pull/87508) ([scanhex12](https://github.com/scanhex12)). +* `RIGHT` および `FULL` JOIN が ConcurrentHashJoin を使用するようになりました。これにより、これらの種類の JOIN はより高い並列度で実行されます。さまざまな RIGHT および FULL JOIN を含むケースで、性能が最大 2 倍向上します。[#78027](https://github.com/ClickHouse/ClickHouse/issues/78027) を解決しました。 [#78462](https://github.com/ClickHouse/ClickHouse/pull/78462)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* クエリ内の定数式で扱う大きな値の最適化。[#72880](https://github.com/ClickHouse/ClickHouse/issues/72880) をクローズ。[#81104](https://github.com/ClickHouse/ClickHouse/pull/81104)([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 +* 1万以上のパーツを持つテーブルに対してパーティションプルーニングを多用する `SELECT` クエリが最大8倍高速になりました。 [#85535](https://github.com/ClickHouse/ClickHouse/pull/85535) ([James Morrison](https://github.com/jawm))。 +* クエリが集約状態に fixed hash map を使用する場合(小さな整数での GROUP BY)、ClickHouse はクエリを高速化するために集約状態のマージを並列化します。 [#87366](https://github.com/ClickHouse/ClickHouse/pull/87366) ([Jianfei Hu](https://github.com/incfly)). +* `_part_offset` の SELECT と異なる ORDER BY を使用する PROJECTION をセカンダリインデックスとして利用できるようにしました。有効化すると、一部のクエリ述語に対しては、PROJECTION のパーツから読み取り、PREWHERE フェーズで行を効率的にフィルタリングするためのビットマップを生成できるようになります。これは、[#80343](https://github.com/ClickHouse/ClickHouse/issues/80343) に続く、PROJECTION INDEX 実装の第 3 段階です。[#81021](https://github.com/ClickHouse/ClickHouse/pull/81021)([Amos Bird](https://github.com/amosbird))。 +* まれな Aarch64 システムおよび、他のアーキテクチャ/カーネルの組み合わせでも発生し得る問題に対して、VDSO を修正しました。 [#86096](https://github.com/ClickHouse/ClickHouse/pull/86096) ([Tomas Hulata](https://github.com/tombokombo)). +* コードの単純化と[選択アルゴリズム](https://clickhouse.com/blog/lz4-compression-in-clickhouse#how-to-choose-the-best-algorithm)の調整により、LZ4 伸張の速度を向上しました。 [#88360](https://github.com/ClickHouse/ClickHouse/pull/88360) ([Raúl Marín](https://github.com/Algunenano)). +* S3 は内部的にキー名プレフィックスに基づいてオブジェクトをパーティション分割し、パーティションごとの高いリクエストレートに自動的にスケールします。この変更により、2 つの新しい BACKUP 設定 `data_file_name_generator` と `data_file_name_prefix_length` が追加されました。`data_file_name_generator=checksum` の場合、バックアップデータファイルはその内容のハッシュに基づいて命名されます。例: checksum が `abcd1234ef567890abcd1234ef567890` で、`data_file_name_prefix_length = 3` の場合、生成されるパスは `abc/d1234ef567890abcd1234ef567890` となります。このようなキーの分布により、S3 のパーティション間での負荷分散が強化され、スロットリングのリスクが低減します。 [#88418](https://github.com/ClickHouse/ClickHouse/pull/88418) ([Julia Kartseva](https://github.com/jkartseva))。 +* Dictionary ブロックのキャッシュと、トークン検索に二分探索ではなくハッシュテーブルを使用することで、テキスト索引のパフォーマンスを向上しました。 [#88786](https://github.com/ClickHouse/ClickHouse/pull/88786) ([Elmi Ahmadov](https://github.com/ahmadov)). +* クエリで `optimize_read_in_order` と `query_plan_optimize_lazy_materialization` の両方を同時に利用できるようになりました。[#88767](https://github.com/ClickHouse/ClickHouse/issues/88767) を解決しました。[#88866](https://github.com/ClickHouse/ClickHouse/pull/88866)([Manuel](https://github.com/raimannma))。 +* `DISTINCT` を含むクエリに対して集約プロジェクションを使用するようにしました。 [#86925](https://github.com/ClickHouse/ClickHouse/issues/86925) をクローズしました。 [#88894](https://github.com/ClickHouse/ClickHouse/pull/88894)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* 連続した実行でのパフォーマンスを向上させるため、posting list をキャッシュするようにしました。 [#88912](https://github.com/ClickHouse/ClickHouse/pull/88912) ([Elmi Ahmadov](https://github.com/ahmadov)). +* 入力のソート順が LIMIT BY キーと一致する場合に、ストリーミング LIMIT BY 変換を実行するようにしました。 [#88969](https://github.com/ClickHouse/ClickHouse/pull/88969) ([Eduard Karacharov](https://github.com/korowa)). +* 特定の状況で、`ANY LEFT JOIN` または `ANY RIGHT JOIN` を `ALL INNER JOIN` に書き換えられるようになりました。 [#89403](https://github.com/ClickHouse/ClickHouse/pull/89403) ([Dmitry Novik](https://github.com/novikd)). +* ログ出力時のオーバーヘッドを削減し、エントリごとのアトミック操作数を減らしました。 [#89651](https://github.com/ClickHouse/ClickHouse/pull/89651) ([Sergei Trifonov](https://github.com/serxa)). +* 複数の `JOIN` を含むクエリでランタイムフィルタが有効な場合に、複数のランタイムフィルタが追加されたとき、新しく追加されたフィルタステップが他のステップより前にプッシュダウンされるように実装しました。 [#89725](https://github.com/ClickHouse/ClickHouse/pull/89725) ([Alexander Gololobov](https://github.com/davenger)). +* ハッシュテーブルのマージ時のオーバーヘッドを削減することで、いくつかの `uniqExact` 操作をわずかに高速化しました。 [#89727](https://github.com/ClickHouse/ClickHouse/pull/89727) ([Raúl Marín](https://github.com/Algunenano)). +* 遅延マテリアライゼーションで処理される行数の上限を 10 から 100 に引き上げました。 [#89772](https://github.com/ClickHouse/ClickHouse/pull/89772) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `allow_special_serialization_kinds_in_output_formats` の設定をデフォルトで有効化しました。これにより、一部の行形式の出力フォーマットで Sparse/Replicated カラムを出力する際のメモリ使用量が減少し、クエリの処理速度が向上します。 [#89402](https://github.com/ClickHouse/ClickHouse/pull/89402) ([Pavel Kruglov](https://github.com/Avogar)). +* `ALTER TABLE ... FREEZE` クエリでの並列実行を追加しました。 [#71743](https://github.com/ClickHouse/ClickHouse/pull/71743) ([Kirill](https://github.com/kirillgarbar)). +* bcrypt 認証にキャッシュを追加。 [#87115](https://github.com/ClickHouse/ClickHouse/pull/87115) ([Nikolay Degterinsky](https://github.com/evillique)). +* `FINAL` を指定したクエリで使用されるスキップ索引が、プライマリキーを構成するカラム上にある場合、他のパーツに対してプライマリキーの交差を確認する追加ステップは不要となり、現在は実行されなくなりました。 [#85897](https://github.com/ClickHouse/ClickHouse/issues/85897) を解決しました。 [#88368](https://github.com/ClickHouse/ClickHouse/pull/88368)([Shankar Iyer](https://github.com/shankar-iyer))。 +* 最適化オプション `enable_lazy_columns_replication` がデフォルトになったため、JOIN 時のメモリ使用量を削減できます。[#89316](https://github.com/ClickHouse/ClickHouse/pull/89316)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* パーツ向けにテーブル単位の `ColumnsDescription` キャッシュを導入し、多数のパーツと多数のカラムを含むテーブルでのメモリ使用量を削減します。 [#89352](https://github.com/ClickHouse/ClickHouse/pull/89352) ([Azat Khuzhin](https://github.com/azat))。 +* テキスト索引のデシリアライズされたヘッダー向けキャッシュを導入し、I/O を削減してクエリパフォーマンスを向上しました。キャッシュは次の新しいサーバー設定で構成できます: - `text_index_header_cache_policy` - `text_index_header_cache_size` - `text_index_header_cache_max_entries` - `text_index_header_cache_size_ratio`。 [#89513](https://github.com/ClickHouse/ClickHouse/pull/89513) ([Elmi Ahmadov](https://github.com/ahmadov))。 + +#### 改良 {#improvement} + +* `use_variant_as_common_type` が設定されている場合、必要に応じて `UNION` は `Variant` 型に型を統一するようになりました。[#82772](https://github.com/ClickHouse/ClickHouse/issues/82772) を解決。[#83246](https://github.com/ClickHouse/ClickHouse/pull/83246)([Mithun p](https://github.com/mithunputhusseri))。 +* SQL で定義されたロールを、`users.xml` で定義されたユーザーに付与できるようになりました。 [#88139](https://github.com/ClickHouse/ClickHouse/pull/88139) ([c-end](https://github.com/c-end)). +* 辞書やリフレッシャブルmaterialized view などが内部的に実行する内部クエリもログに記録し、新しい `is_internal` カラムを `system.query_log` に追加しました。 [#83277](https://github.com/ClickHouse/ClickHouse/pull/83277) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* `IS NOT DISTINCT FROM`(`<=>`)演算子を拡張しました。逆演算である `IS DISTINCT FROM` をサポートし、`Nullable(UInt32)` と `Nullable(Int64)` のような、型が異なる互換性のある数値オペランドにも対応しました。[#86763](https://github.com/ClickHouse/ClickHouse/issues/86763) を解決。[#87581](https://github.com/ClickHouse/ClickHouse/pull/87581)([yanglongwei](https://github.com/ylw510))。 +* インタラクティブモードの `clickhouse-client` および `clickhouse-local` で、カーソル位置にある識別子と同名のコマンドライン上の識別子がハイライトされるようになりました。 [#89689](https://github.com/ClickHouse/ClickHouse/pull/89689) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 出力フォーマットに関する設定は、クエリキャッシュには影響しなくなりました。また、クエリキャッシュでは `http_response_headers` 設定は無視されます。これは、Web UI からキャッシュ済み結果をダウンロードするなどの機能を実装できるようにするためです。[#89756](https://github.com/ClickHouse/ClickHouse/pull/89756) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* HTTP インターフェイスは、クエリ結果キャッシュが使用されている場合に `Age` ヘッダーと `Expires` ヘッダーを返します。`Age` ヘッダーの有無で結果がキャッシュ由来かどうかが分かり、`Expires` も初回の書き込み時に設定されます。新しいプロファイルイベントを導入しました: `QueryCacheAgeSeconds`, `QueryCacheReadRows`, `QueryCacheReadBytes`, `QueryCacheWrittenRows`, `QueryCacheWrittenBytes`。 [#89759](https://github.com/ClickHouse/ClickHouse/pull/89759) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `disable_insertion_and_mutation` が有効(つまり ClickHouse Cloud の読み取り専用ウェアハウス)な場合でも、remote テーブルおよびデータレイク テーブルへの挿入を許可しました。 [#88549](https://github.com/ClickHouse/ClickHouse/pull/88549) ([Alexander Tokmakov](https://github.com/tavplubix))。 +* クエリ `SYSTEM DROP TEXT INDEX CACHES` を追加。 [#90287](https://github.com/ClickHouse/ClickHouse/pull/90287) ([Anton Popov](https://github.com/CurtizJ)). +* 一貫性の保証を強化するため、デフォルトで `enable_shared_storage_snapshot_in_query` を有効化しました。悪影響はないはずです。 [#82634](https://github.com/ClickHouse/ClickHouse/pull/82634) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `send_profile_events` SETTING を追加しました。これにより、クライアントはプロファイルイベントを利用していない場合のネットワークトラフィックを削減できます。 [#89588](https://github.com/ClickHouse/ClickHouse/pull/89588) ([Kaviraj Kanagaraj](https://github.com/kavirajk)). +* クエリ単位で近傍セグメントのバックグラウンドでのダウンロードを無効化できるようにしました。 [#89524](https://github.com/ClickHouse/ClickHouse/issues/89524) を修正しました。 [#89668](https://github.com/ClickHouse/ClickHouse/pull/89668) ([tanner-bruce](https://github.com/tanner-bruce)). +* ReplicatedMergeTree テーブルで故障したディスクが存在する場合でも、`FETCH PARTITION` を使用できるようになりました。 [#58663](https://github.com/ClickHouse/ClickHouse/pull/58663) ([Duc Canh Le](https://github.com/canhld94)). +* MySQL データベースエンジンで MySQL テーブルスキーマを取得する際に発生していた未捕捉例外を修正。 [#69358](https://github.com/ClickHouse/ClickHouse/pull/69358) ([Duc Canh Le](https://github.com/canhld94)). +* すべての DDL `ON CLUSTER` クエリは、アクセス権限の検証をより適切に行えるよう、元のクエリ発行ユーザーのコンテキストで実行されるようになりました。 [#71334](https://github.com/ClickHouse/ClickHouse/pull/71334) ([pufit](https://github.com/pufit))。 +* `Parquet` において、論理型 `UUID` を持つ `FixedString(16)` で表現された `UUID` のサポートを追加しました。 [#74484](https://github.com/ClickHouse/ClickHouse/pull/74484) ([alekseev-maksim](https://github.com/alekseev-maksim)). +* サーバー以外のバイナリでは、デフォルトで ThreadFuzzer を無効化します。 [#89115](https://github.com/ClickHouse/ClickHouse/pull/89115) ([Raúl Marín](https://github.com/Algunenano)). +* クエリプランの最適化が相関サブクエリの入力サブプランにも反映されるよう、そのマテリアライズを遅らせました。 [#79890](https://github.com/ClickHouse/ClickHouse/issues/79890) の一部。 [#85455](https://github.com/ClickHouse/ClickHouse/pull/85455)([Dmitry Novik](https://github.com/novikd))。 +* clickhouse-client で、`SELECT` を含む `CREATE OR REPLACE TABLE` クエリのプログレスバー、ログ、およびパフォーマンス統計情報を表示できるようになりました。`SELECT` が非常に時間のかかる処理であっても、このクエリがタイムアウトすることはなくなりました。[#38416](https://github.com/ClickHouse/ClickHouse/issues/38416) を解決しました。 [#87247](https://github.com/ClickHouse/ClickHouse/pull/87247)([Diskein](https://github.com/Diskein))。 +* ハッシュ関数で `JSON` 型および `Dynamic` 型をサポートします。これにより [#87734](https://github.com/ClickHouse/ClickHouse/issues/87734) を解決します。[#87791](https://github.com/ClickHouse/ClickHouse/pull/87791)([Pavel Kruglov](https://github.com/Avogar))。 +* ArrowFlight サーバーの未実装部分を実装しました。 [#88013](https://github.com/ClickHouse/ClickHouse/pull/88013) ([Vitaly Baranov](https://github.com/vitlibar)). +* Keeper のリクエスト実行各ステージの所要時間を計測するために、サーバーおよび Keeper 向けに複数のヒストグラム型メトリクスを追加します。サーバーには次のメトリクスが追加されます: `keeper_client_queue_duration_milliseconds`, `keeper_client_send_duration_milliseconds`, `keeper_client_roundtrip_duration_milliseconds`。Keeper には次のメトリクスが追加されます: `keeper_server_preprocess_request_duration_milliseconds`, `keeper_server_process_request_duration_milliseconds`, `keeper_server_queue_duration_milliseconds`, `keeper_server_send_duration_milliseconds`。 [#88158](https://github.com/ClickHouse/ClickHouse/pull/88158) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* `EXPLAIN` クエリに `input_headers` オプションを追加し、各ステップに入力ヘッダーを含められるようにしました。 [#88311](https://github.com/ClickHouse/ClickHouse/pull/88311) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* スロットラーによって遅延された S3 および AzureBlobStorage リクエストの数をカウントするための profile events を追加しました。ディスク関連およびディスク非関連の ThrottlerCount profile events の不整合を修正しました。これにより、AzureBlobStorage に対する HTTP DELETE リクエストはスロットルされなくなりました。 [#88535](https://github.com/ClickHouse/ClickHouse/pull/88535) ([Sergei Trifonov](https://github.com/serxa)). +* テーブルレベルの統計情報のキャッシュ機能を追加し、2 つの設定を導入しました。MergeTree の設定 `refresh_statistics_interval` は統計情報キャッシュを更新する間隔を指定し、0 の場合はキャッシュが作成されません。セッション設定 `use_statistics_cache` はクエリでテーブルレベルの統計情報キャッシュを使用するかどうかを指定します。より精度の高い統計情報が必要な場合には、キャッシュを無視することを選択できます。[#88670](https://github.com/ClickHouse/ClickHouse/pull/88670) ([Han Fei](https://github.com/hanfei1991))。 +* `Array` および `Map` のバイナリデシリアライズ処理を修正し、サイズ制限を検証する際に `max_binary_string_size` ではなく `max_binary_array_size` 設定を使用するようにしました。これにより、`RowBinary` 形式の読み取り時に適切な制限が適用されるようになります。 [#88744](https://github.com/ClickHouse/ClickHouse/pull/88744) ([Raufs Dunamalijevs](https://github.com/rienath))。 +* マージ処理を実行するバックグラウンドプールで使用するために `LockGuardWithStopWatch` クラスを導入し、利用するようにしました。ミューテックスが 1 秒以上保持されている場合、またはスレッドが 1 秒以内にその取得ができずに待たされている場合には、警告メッセージが出力されます。`MergeMutateSelectedEntry` のデストラクタ内にあった重い処理を `finalize` メソッドへ移動し、`MergeTreeBackground` executor でロックを長時間保持しないようにしました。 [#88898](https://github.com/ClickHouse/ClickHouse/pull/88898) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* エンドポイントでリージョンが指定されていない場合に、S3 向けのオプトインが必要な AWS リージョンを自動的に利用できるようにしました。参考: [opt-in AWS regions](https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-regions.html)。[#88930](https://github.com/ClickHouse/ClickHouse/pull/88930)([Andrey Zvonov](https://github.com/zvonand))。 +* clickhouse-client で pager 実行中に Ctrl-C を押すことでクエリをキャンセルできるようになりました。 [#80778](https://github.com/ClickHouse/ClickHouse/issues/80778) を解決します。 [#88935](https://github.com/ClickHouse/ClickHouse/pull/88935) ([Grigorii](https://github.com/GSokol))。 +* Web UI は、値が負の場合でもテーブル内にバーを表示します。これにより、正と負の値で色分けされた、左右両方向に伸びる棒グラフを表示できます。 [#89016](https://github.com/ClickHouse/ClickHouse/pull/89016) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* Keeper に保存される `SharedMergeTree` のメタデータ量を削減するため、`shared_merge_tree_create_per_replica_metadata_nodes` を無効にしました。 [#89036](https://github.com/ClickHouse/ClickHouse/pull/89036) ([Alexander Tokmakov](https://github.com/tavplubix))。 +* `S3Queue` がサーバー設定 `disable_insertion_and_mutation` に従うようにしました。 [#89048](https://github.com/ClickHouse/ClickHouse/pull/89048) ([Raúl Marín](https://github.com/Algunenano)). +* `25.6` では、S3 で再パーティショニングが発生し、10 分を超えて S3 からスローダウンエラーが返される場合でもバックアップが成功するよう、`s3_retry_attempts` のデフォルト値を 500 に設定しました。 [#89051](https://github.com/ClickHouse/ClickHouse/pull/89051) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* `kafka_compression_codec` および `kafka_compression_level` 設定を使用して、両方の Kafka エンジンにおける Kafka producer の圧縮方式と圧縮レベルを指定できるようになりました。 [#89073](https://github.com/ClickHouse/ClickHouse/pull/89073) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* `system.columns` に新しいカラム `statistics` を追加し、このテーブルに構築されている統計情報の種類を示します。ある種類の統計情報が自動的に作成される場合は、接尾辞として (auto) が表示されます。 [#89086](https://github.com/ClickHouse/ClickHouse/pull/89086) ([Han Fei](https://github.com/hanfei1991))。 +* `*Cluster` テーブル関数にクラスタ名ではなく汎用展開表現が渡された場合のエラーメッセージを改善。 [#89093](https://github.com/ClickHouse/ClickHouse/pull/89093) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* YTsaurus: データソースとして replicated_table を使用可能にしました。 [#89107](https://github.com/ClickHouse/ClickHouse/pull/89107) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* CLI で、先頭が空白文字のクエリは履歴に保存されなくなりました。 [#89116](https://github.com/ClickHouse/ClickHouse/pull/89116) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* `hasAnyTokens` または `hasAllTokens` 関数の入力として String 型配列をサポートします。 [#89124](https://github.com/ClickHouse/ClickHouse/pull/89124) ([Elmi Ahmadov](https://github.com/ahmadov)). +* plain-rewritable ディスクにおけるメタデータのメモリ内保存方式を変更し、ディレクトリのネスト構造まわりの多数のバグを解消しました。 [#89125](https://github.com/ClickHouse/ClickHouse/pull/89125) ([Mikhail Artemenko](https://github.com/Michicosun)). +* Iceberg テーブルへのクエリで `IN` 式内に含まれるサブクエリは、パーティションプルーニングの解析の前に適切に事前計算されるようになりました。 [#89177](https://github.com/ClickHouse/ClickHouse/pull/89177) ([Daniil Ivanik](https://github.com/divanik)). +* `create_table_empty_primary_key_by_default` をデフォルトで有効化しました。これは使い勝手の面でより優れています。 [#89333](https://github.com/ClickHouse/ClickHouse/pull/89333) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* `SHOW CREATE DATABASE` で無効なクエリが生成される場合や、`system.databases` から `engine_full` をクエリする場合に発生する `Backup` データベースエンジン内の誤ったコードを修正しました。[#89477](https://github.com/ClickHouse/ClickHouse/issues/89477) をクローズしました。[#89341](https://github.com/ClickHouse/ClickHouse/pull/89341)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 以前のバージョンでは、`CREATE TABLE` クエリでテーブルエンジンを指定しなかった場合、`create_table_empty_primary_key_by_default` 設定は機能していませんでした。 [#89342](https://github.com/ClickHouse/ClickHouse/pull/89342) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* `chdig` を v25.11.1 に更新しました。ログの大幅な改善およびその他のさまざまな強化が含まれています([25.11 のリリースノート](https://github.com/azat/chdig/releases/tag/v25.11.1))。[#89957](https://github.com/ClickHouse/ClickHouse/pull/89957)([Azat Khuzhin](https://github.com/azat))。([25.10 のリリースノート](https://github.com/azat/chdig/releases/tag/v25.10.1))。[#89452](https://github.com/ClickHouse/ClickHouse/pull/89452)([Azat Khuzhin](https://github.com/azat))。 +* Web UI のクエリ用テキストエリアのリサイズハンドルを横幅いっぱいに広げ、少し使いやすくしました。なお、この変更以前は iPad の Safari ではブラウザ標準のリサイズ機能が利用できませんでしたが、変更後は、やり方をご存じであれば少なくともテキストエリア下端をドラッグしてサイズ変更できるようになりました。 [#89457](https://github.com/ClickHouse/ClickHouse/pull/89457) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* ハッシュ結合の結果生成におけるメモリ使用状況のトラッキングを改善しました。以前は、結合結果の生成中に行われる一時的なメモリ割り当てが正しく追跡されておらず、メモリ制限の超過につながる可能性がありました。 [#89560](https://github.com/ClickHouse/ClickHouse/pull/89560) ([Azat Khuzhin](https://github.com/azat)). +* 非同期サーバーログ: フラッシュを早め、デフォルトのキューサイズを拡大。 [#89597](https://github.com/ClickHouse/ClickHouse/pull/89597) ([Raúl Marín](https://github.com/Algunenano)). +* `system.asynchronous_metrics` 内の誤った `FilesystemCacheBytes` などを修正。ファイルシステムキャッシュに対する `SYSTEM` クエリは 1 回だけ実行するように変更。同じパスを指すキャッシュについては、`system.filesystem_caches` 内の同一パスを参照するアトミックなビューを追加。 [#89640](https://github.com/ClickHouse/ClickHouse/pull/89640) ([Azat Khuzhin](https://github.com/azat)). +* `system.view_refreshes` 内の一部のカラムの説明をより明確にしました。 [#89701](https://github.com/ClickHouse/ClickHouse/pull/89701) ([Tuan Pham Anh](https://github.com/tuanpach))。 +* STS エンドポイントと連携して取得した S3 認証情報をキャッシュし、異なる関数呼び出し間で再利用できるようにしました。キャッシュされる認証情報の数は `s3_credentials_provider_max_cache_size` で制御できます。 [#89734](https://github.com/ClickHouse/ClickHouse/pull/89734) ([Antonio Andelic](https://github.com/antonio2368))。 +* その下に複数の式ステップが存在する場合に、runtime filter pushdown が正しく動作しない問題を修正しました。 [#89741](https://github.com/ClickHouse/ClickHouse/pull/89741) ([Alexander Gololobov](https://github.com/davenger)). +* システムメモリが 5GB 未満の場合、デフォルトで実行ファイルを mlock しないようにしました。 [#89751](https://github.com/ClickHouse/ClickHouse/pull/89751) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Web UI の型ヒントがテーブルヘッダーにはみ出さなくなりました。ツールチップの表示も修正され、テーブルヘッダーの背後に隠れなくなりました。 [#89753](https://github.com/ClickHouse/ClickHouse/pull/89753) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* Web UI でテーブルのプロパティを表示できるようになりました。行数またはバイト数をクリックすると、`system.tables` に対するクエリが表示されます。テーブルエンジンをクリックすると、`SHOW TABLES` が表示されます。 [#89771](https://github.com/ClickHouse/ClickHouse/pull/89771) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `append` 方式の書き込みを実装していないディスクを使用するテーブルで `non_replicated_deduplication_window` をサポート。[#87281](https://github.com/ClickHouse/ClickHouse/issues/87281) を解決。[#89796](https://github.com/ClickHouse/ClickHouse/pull/89796)([Tuan Pham Anh](https://github.com/tuanpach))。 +* `SYSTEM FLUSH ASYNC INSERT QUEUE` コマンドでフラッシュするテーブルのリストを指定できるようになりました。 [#89915](https://github.com/ClickHouse/ClickHouse/pull/89915) ([Sema Checherinda](https://github.com/CheSema)). +* `system.part_log` に重複排除ブロックの ID を保存するようにしました。 [#89928](https://github.com/ClickHouse/ClickHouse/pull/89928) ([Sema Checherinda](https://github.com/CheSema)). +* ファイルシステムキャッシュ設定 `keep_free_space_remove_batch` のデフォルト値を 10 から 100 に変更しました。より最適な値であるためです。 [#90030](https://github.com/ClickHouse/ClickHouse/pull/90030) ([Kseniia Sumarokova](https://github.com/kssenii)). +* TTL DROP マージタイプを導入し、このタイプのマージ後には次回の delete TTL マージスケジュールを更新しないようにしました。 [#90077](https://github.com/ClickHouse/ClickHouse/pull/90077) ([Mikhail Artemenko](https://github.com/Michicosun)). +* S3Queue のクリーンアップ中に実行される RemoveRecursive Keeper リクエストのノード数上限を、より低い値に設定しました。 [#90201](https://github.com/ClickHouse/ClickHouse/pull/90201) ([Antonio Andelic](https://github.com/antonio2368)). +* ログが空の場合でもテーブルの作成を待つように `SYSTEM FLUSH LOGS` クエリを変更しました。 [#89408](https://github.com/ClickHouse/ClickHouse/pull/89408) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* 複数のリモート分片をまたぐ分散マージ型集約、または `IN` 述語内のサブクエリが存在する場合に `rows_before_limit_at_least` が誤った値になる問題を修正しました。これにより [#63280](https://github.com/ClickHouse/ClickHouse/issues/63280) を解決しました。 [#63511](https://github.com/ClickHouse/ClickHouse/pull/63511) ([Amos Bird](https://github.com/amosbird))。 +* `INSERT INTO ... SELECT` クエリの後に `0 rows in set` が表示されてしまう問題を修正しました。 [#47800](https://github.com/ClickHouse/ClickHouse/issues/47800) をクローズしました。 [#79462](https://github.com/ClickHouse/ClickHouse/pull/79462)([Engel Danila](https://github.com/aaaengel))。 + +#### バグ修正(公式安定版リリースにおけるユーザーに影響する不具合) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* 定数引数とショートサーキット評価を使用する `multiIf` の不具合を修正。[#72714](https://github.com/ClickHouse/ClickHouse/issues/72714) をクローズ。[#84546](https://github.com/ClickHouse/ClickHouse/pull/84546)([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 +* サブクエリ制約を持つテーブルからの SELECT 時に発生する論理エラーを修正しました。 [#84190](https://github.com/ClickHouse/ClickHouse/issues/84190) を解決します。 [#85575](https://github.com/ClickHouse/ClickHouse/pull/85575) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* 疑問符(?)を含む URI を使用する特定のクエリで発生していたバグを修正しました。 [#85663](https://github.com/ClickHouse/ClickHouse/pull/85663) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* `EXPLAIN indexes = 1` の出力でカラムが一部欠落することがあった問題を修正しました。[#86696](https://github.com/ClickHouse/ClickHouse/issues/86696) を解決します。 [#87083](https://github.com/ClickHouse/ClickHouse/pull/87083)([Michael Kolupaev](https://github.com/al13n321))。 +* 並列レプリカ使用時に `Cannot add subcolumn with parallel replicas` エラーが発生する可能性があった問題を修正しました。Closes [#84888](https://github.com/ClickHouse/ClickHouse/issues/84888). [#87514](https://github.com/ClickHouse/ClickHouse/pull/87514) ([Pavel Kruglov](https://github.com/Avogar)). +* parquet writer において、`created_by` 文字列を正しいフォーマットで出力するようにしました(例: `ClickHouse version 25.10.1 (build 5b1dfb14925db8901a4e9202cd5d63c11ecfbb9f)`、従来の `ClickHouse v25.9.1.1-testing` ではなく)。古い parquet-mr によって書き込まれた不正な形式のファイルとの互換性を確保するために、parquet reader を修正しました。 [#87735](https://github.com/ClickHouse/ClickHouse/pull/87735) ([Michael Kolupaev](https://github.com/al13n321)). +* `cramersV`、`cramersVBiasCorrected`、`theilsU`、`contingency` において誤った結果の原因となっていた φ 二乗の計算を修正。 [#87831](https://github.com/ClickHouse/ClickHouse/pull/87831) ([Nihal Z. Miaji](https://github.com/nihalzp))。 +* JSON 内で Float 型と Bool 型が混在する配列の読み取りを修正しました。以前はこのようなデータを挿入すると例外が発生していました。 [#88008](https://github.com/ClickHouse/ClickHouse/pull/88008) ([Pavel Kruglov](https://github.com/Avogar)). +* TCPHandler で QueryState に shared_ptr を使用し、setProgressCallback、setFileProgressCallback、setBlockMarshallingCallback 内で状態が無効になっているかどうかを検出できるようにしました。 [#88201](https://github.com/ClickHouse/ClickHouse/pull/88201) ([Tuan Pham Anh](https://github.com/tuanpach)). +* query_plan_optimize_join_order_limit > 1 の場合の CROSS JOIN の再順序付け時に発生する論理エラーを修正。[#89409](https://github.com/ClickHouse/ClickHouse/issues/89409) をクローズ。[#88286](https://github.com/ClickHouse/ClickHouse/pull/88286)([Vladimir Cherkasov](https://github.com/vdimir))。 +* Fix [#88426](https://github.com/ClickHouse/ClickHouse/issues/88426) 1. Alias テーブルでの明示的なカラム定義を禁止し、カラムをターゲットテーブルから自動的にロードするようにしました。これにより、エイリアステーブルが常にターゲットテーブルのスキーマと一致するようになります。 2. IStorage から委譲するメソッドを増やしました。 [#88552](https://github.com/ClickHouse/ClickHouse/pull/88552) ([Kai Zhu](https://github.com/nauu)). +* 復旧後に Replicated データベースのレプリカが、`Failed to marked query-0004647339 as finished (finished=No node, synced=No node)` のようなメッセージを長時間にわたって出力し続けてしまうことがありましたが、この問題は修正されました。 [#88671](https://github.com/ClickHouse/ClickHouse/pull/88671) ([Alexander Tokmakov](https://github.com/tavplubix)). +* サブクエリを含む新しいアナライザーで発生する可能性があった "Context has expired" エラーを修正。 [#88694](https://github.com/ClickHouse/ClickHouse/pull/88694) ([Azat Khuzhin](https://github.com/azat)). +* input_format_parquet_local_file_min_bytes_for_seek が 0 に設定されている場合に発生していた Parquet リーダーのセグメンテーションフォールトを修正しました。[#78456](https://github.com/ClickHouse/ClickHouse/issues/78456) を解決しました。[#88784](https://github.com/ClickHouse/ClickHouse/pull/88784)([Animesh](https://github.com/anibilthare))。 +* PK が降順の場合に `min(PK)` / `max(PK)` の結果が誤っていた問題を修正しました。これにより [#83619](https://github.com/ClickHouse/ClickHouse/issues/83619) が解決されます。 [#88796](https://github.com/ClickHouse/ClickHouse/pull/88796) ([Amos Bird](https://github.com/amosbird)). +* 内部テーブルの DROP 時に、設定 max_table_size_to_drop および max_partition_size_to_drop によるサイズ制限が正しく伝播されるよう修正しました。 [#88812](https://github.com/ClickHouse/ClickHouse/pull/88812) ([Nikolay Degterinsky](https://github.com/evillique)). +* `top_k` が単一の引数で呼び出された場合でも threshold パラメータが正しく反映されるように修正しました。[#88757](https://github.com/ClickHouse/ClickHouse/issues/88757) をクローズします。 [#88867](https://github.com/ClickHouse/ClickHouse/pull/88867) ([Manuel](https://github.com/raimannma)). +* SSL 接続を必要とする ArrowFlight エンドポイントのソース(AWS ALB の背後にあるものなど)が、特定のデータセットを正しくリクエストできるようになりました。 [#88868](https://github.com/ClickHouse/ClickHouse/pull/88868) ([alex-shchetkov](https://github.com/alex-shchetkov)). +* 非マテリアライズされた Nested(Tuple(...))(ALTER によって追加されたもの)の処理を修正。[#83133](https://github.com/ClickHouse/ClickHouse/issues/83133) を修正。[#88879](https://github.com/ClickHouse/ClickHouse/pull/88879)([Azat Khuzhin](https://github.com/azat))。 +* 関数 `reverseUTF8` のバグを修正しました。以前のバージョンでは、長さ 4 の UTF-8 コードポイントのバイト順を誤って反転していました。これにより [#88913](https://github.com/ClickHouse/ClickHouse/issues/88913) がクローズされました。 [#88914](https://github.com/ClickHouse/ClickHouse/pull/88914) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* icebergS3Cluster プロトコルを修正しました。Iceberg クラスタ関数でスキーマ進化、位置指定削除、および等価削除をサポートするようになりました。[#88287](https://github.com/ClickHouse/ClickHouse/issues/88287) を解決しました。[#88919](https://github.com/ClickHouse/ClickHouse/pull/88919)([Yang Jiang](https://github.com/Ted-Jiang))。 +* 分散テーブルに対して parallel replicas を使用するクエリについて、parallel_replicas_support_projection を無効化しました。これにより [#88899](https://github.com/ClickHouse/ClickHouse/issues/88899) がクローズされました。 [#88922](https://github.com/ClickHouse/ClickHouse/pull/88922) ([zoomxi](https://github.com/zoomxi))。 +* 内部的な CAST でコンテキストを伝搬するようにしました。cast-settings が伝搬されていなかった複数の問題を修正しました。[#88873](https://github.com/ClickHouse/ClickHouse/issues/88873) をクローズ。[#78025](https://github.com/ClickHouse/ClickHouse/issues/78025) をクローズ。[#88929](https://github.com/ClickHouse/ClickHouse/pull/88929)([Manuel](https://github.com/raimannma))。 +* file() 関数で、glob パターンからファイルフォーマットを取得する処理を修正しました。[#88920](https://github.com/ClickHouse/ClickHouse/issues/88920) を解決します。[#88947](https://github.com/ClickHouse/ClickHouse/pull/88947)([Vitaly Baranov](https://github.com/vitlibar))。 +* SQL SECURITY DEFINER を使用して VIEW を作成する際に、アクセス権 `SET DEFINER :definer` をチェックしないようにしました。 [#88968](https://github.com/ClickHouse/ClickHouse/pull/88968) ([pufit](https://github.com/pufit))。 +* `L2DistanceTransposed(vec1, vec2, p)` において、部分的な `QBit` 読み取りの最適化により、`p` が `Nullable` の場合に戻り値の型から誤って `Nullable` が削除されていたことが原因で発生していた `LOGICAL_ERROR` を修正しました。 [#88974](https://github.com/ClickHouse/ClickHouse/pull/88974) ([Raufs Dunamalijevs](https://github.com/rienath)). +* 未知のカタログタイプでクラッシュする不具合を修正しました。[#88819](https://github.com/ClickHouse/ClickHouse/issues/88819) を解決します。 [#88987](https://github.com/ClickHouse/ClickHouse/pull/88987) ([scanhex12](https://github.com/scanhex12))。 +* これにより、[#88081](https://github.com/ClickHouse/ClickHouse/issues/88081) をクローズします。 [#88988](https://github.com/ClickHouse/ClickHouse/pull/88988)([scanhex12](https://github.com/scanhex12))。 +* スキッピングインデックスの解析における性能劣化を修正しました。 [#89004](https://github.com/ClickHouse/ClickHouse/pull/89004) ([Anton Popov](https://github.com/CurtizJ)). +* 存在しないロールが割り当てられたユーザーから clusterAllReplicas を実行しようとした際に発生する ACCESS_ENTITY_NOT_FOUND エラーが発生していた問題を修正しました。[#87670](https://github.com/ClickHouse/ClickHouse/issues/87670) を解決しました。 [#89068](https://github.com/ClickHouse/ClickHouse/pull/89068)([pufit](https://github.com/pufit))。 +* CHECK 制約によるスパースカラムの処理を修正。 [#88637](https://github.com/ClickHouse/ClickHouse/issues/88637) をクローズ。 [#89076](https://github.com/ClickHouse/ClickHouse/pull/89076)([Eduard Karacharov](https://github.com/korowa))。 +* MergeTreeReaderTextIndex で仮想カラムを埋める処理において行数を誤ってカウントしていた問題を修正しました。この不具合により LOGICAL_ERROR が発生してクラッシュしていました。 [#89095](https://github.com/ClickHouse/ClickHouse/pull/89095) ([Peng Jian](https://github.com/fastio)). +* マージの準備中に例外が発生した場合に、有効期限 (TTL) マージカウンターがリークするのを防止しました。 [#89019](https://github.com/ClickHouse/ClickHouse/issues/89019) を解決しました。 [#89127](https://github.com/ClickHouse/ClickHouse/pull/89127)([save-my-heart](https://github.com/save-my-heart))。 +* base32/base58 のエンコード/デコード処理に必要なバッファサイズの計算を修正。 [#89133](https://github.com/ClickHouse/ClickHouse/pull/89133) ([Antonio Andelic](https://github.com/antonio2368)). +* シャットダウン処理とバックグラウンドで実行される `INSERT` の間のレースコンディションにより Distributed で発生していた use-after-free を修正しました。[#88640](https://github.com/ClickHouse/ClickHouse/issues/88640) を解決します。[#89136](https://github.com/ClickHouse/ClickHouse/pull/89136)([Azat Khuzhin](https://github.com/azat))。 +* Parquet のパース中に、ミュータブルな例外オブジェクトに起因してデータレースが発生しうる問題を回避しました。 [#88385](https://github.com/ClickHouse/ClickHouse/issues/88385) を修正。 [#89174](https://github.com/ClickHouse/ClickHouse/pull/89174)([Azat Khuzhin](https://github.com/azat))。 +* リフレッシャブルmaterialized view: refresh 中にソーステーブルが完全に削除された場合に、まれにサーバーがクラッシュする不具合を修正。 [#89203](https://github.com/ClickHouse/ClickHouse/pull/89203) ([Michael Kolupaev](https://github.com/al13n321)). +* HTTP インターフェイスで圧縮ストリーム送信中にエラーを返す際に、バッファをフラッシュするようにしました。 [#89256](https://github.com/ClickHouse/ClickHouse/pull/89256) ([Alexander Tokmakov](https://github.com/tavplubix)). +* クエリマスキングルールが DDL 文に誤って適用されないようにしました。 [#89272](https://github.com/ClickHouse/ClickHouse/pull/89272) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* MergeTreeReaderTextIndex で仮想カラムを埋める際の行数カウントが誤っており、LOGICAL_ERROR によるクラッシュが発生する問題を修正しました。 [#89095](https://github.com/ClickHouse/ClickHouse/issues/89095) を再オープンします。 [#89303](https://github.com/ClickHouse/ClickHouse/pull/89303) ([Jimmy Aguilar Mena](https://github.com/Ergus))。 +* Statistics countmin が LowCardinality(Nullable(String)) の estimate データ型をサポートしておらず、LOGICAL_ERROR が発生していた問題を修正。 [#89343](https://github.com/ClickHouse/ClickHouse/pull/89343) ([Han Fei](https://github.com/hanfei1991)). +* 主キーのカラム型が IN 関数の右辺のカラム型と異なる場合に、IN 関数でクラッシュ/未定義動作が発生する可能性がありました。例: SELECT string_column, int_column FROM test_table WHERE (string_column, int_column) IN (SELECT '5', 'not a number')。多くの行が選択され、その中に型の互換性のない値を含む行が存在する場合に発生します。 [#89367](https://github.com/ClickHouse/ClickHouse/pull/89367) ([Ilya Golshtein](https://github.com/ilejn)). +* `countIf(*)` の引数が切り詰められる不具合を修正しました。[#89372](https://github.com/ClickHouse/ClickHouse/issues/89372) をクローズ。[#89373](https://github.com/ClickHouse/ClickHouse/pull/89373)([Manuel](https://github.com/raimannma))。 +* ミューテーションにおける統計用の非圧縮チェックサムが失われないようにしました。 [#89381](https://github.com/ClickHouse/ClickHouse/pull/89381) ([Azat Khuzhin](https://github.com/azat)). +* L2DistanceTransposed(vec1, vec2, p) において、部分的な QBit 読み取りの最適化により、p が LowCardinality(Nullable(T)) の場合に戻り値の型から Nullable が誤って削除され、LOGICAL_ERROR が発生していた問題を修正しました。[#88362](https://github.com/ClickHouse/ClickHouse/issues/88362) を解決します。 [#89397](https://github.com/ClickHouse/ClickHouse/pull/89397)([Raufs Dunamalijevs](https://github.com/rienath))。 +* タプル本体に対するスパースシリアライゼーションが誤っている(古いバージョンの ClickHouse によって書き込まれた)テーブルの読み込みを修正。 [#89405](https://github.com/ClickHouse/ClickHouse/pull/89405) ([Azat Khuzhin](https://github.com/azat)). +* `deduplicate_merge_projection_mode='ignore'` 使用時に、有効期限 (TTL) により本体が空になったものの、非空の PROJECTION を含むパーツのマージ処理が誤っていた問題を修正しました。[#89430](https://github.com/ClickHouse/ClickHouse/issues/89430) を解決します。[#89458](https://github.com/ClickHouse/ClickHouse/pull/89458)([Amos Bird](https://github.com/amosbird))。 +* 重複カラムを含む full_sorting_merge 結合における論理エラーを修正しました。[#86957](https://github.com/ClickHouse/ClickHouse/issues/86957) を解決します。[#89495](https://github.com/ClickHouse/ClickHouse/pull/89495)([Vladimir Cherkasov](https://github.com/vdimir))。 +* ローテーション時に changelog が正しくリネームされなかった場合に、Keeper の起動時に changelog の読み込みが失敗する問題を修正しました。 [#89496](https://github.com/ClickHouse/ClickHouse/pull/89496) ([Antonio Andelic](https://github.com/antonio2368)). +* 一意な右テーブルキーを持つテーブルに対して OR 条件を使用した場合に発生していた、誤った JOIN 結果が返される問題を修正しました。[#89391](https://github.com/ClickHouse/ClickHouse/issues/89391) を解決します。[#89512](https://github.com/ClickHouse/ClickHouse/pull/89512)([Vladimir Cherkasov](https://github.com/vdimir))。 +* analyzer および PK IN (subquery) 使用時に発生する可能性のある「Context has expired」エラーを修正 (v2)。[#89433](https://github.com/ClickHouse/ClickHouse/issues/89433) を修正。[#89527](https://github.com/ClickHouse/ClickHouse/pull/89527)([Azat Khuzhin](https://github.com/azat))。 +* 大文字のカラム名が設定されているテーブルに対する MaterializedPostgreSQL のレプリケーションの不具合を修正しました。[#72363](https://github.com/ClickHouse/ClickHouse/issues/72363) を解決します。[#89530](https://github.com/ClickHouse/ClickHouse/pull/89530)([Danylo Osipchuk](https://github.com/Lenivaya))。 +* 集約関数の状態に LowCardinality(String) 型のカラムのシリアル化された値が含まれている場合にクラッシュする問題を修正しました。 [#89550](https://github.com/ClickHouse/ClickHouse/pull/89550) ([Pavel Kruglov](https://github.com/Avogar)). +* `enable_lazy_columns_replication` 設定を有効にした状態で、JOIN の右側で `ARRAY JOIN` を使用した場合にクラッシュする不具合を修正しました。 [#89551](https://github.com/ClickHouse/ClickHouse/pull/89551) ([Pavel Kruglov](https://github.com/Avogar)). +* query_plan_convert_join_to_in での論理エラーを修正。[#89066](https://github.com/ClickHouse/ClickHouse/issues/89066) を解決。[#89554](https://github.com/ClickHouse/ClickHouse/pull/89554)([Vladimir Cherkasov](https://github.com/vdimir))。 +* 変換できない型が一致しないカラムと定数を含む条件を推定しようとした際に、統計推定器で発生していた例外を修正しました。 [#89596](https://github.com/ClickHouse/ClickHouse/pull/89596) ([Han Fei](https://github.com/hanfei1991)). +* ランタイムフィルタは、サポートされている結合アルゴリズム、すなわちハッシュ結合に対してのみ追加されるようになりました。ランタイムフィルタは、結合アルゴリズムがまず右側を完全に読み込んでから左側を読む場合にのみ構築できますが、たとえば FullSortingMergeJoin は両側を同時に読み込みます。[#89220](https://github.com/ClickHouse/ClickHouse/issues/89220) を修正しました。[#89652](https://github.com/ClickHouse/ClickHouse/pull/89652)([Alexander Gololobov](https://github.com/davenger))。 +* `sparseGrams` トークナイザー使用時における `hasAnyTokens`、`hasAllTokens`、`tokens` 関数の並行実行時の不具合を修正。[#89605](https://github.com/ClickHouse/ClickHouse/issues/89605) を解決。[#89665](https://github.com/ClickHouse/ClickHouse/pull/89665)([Elmi Ahmadov](https://github.com/ahmadov))。 +* 一部のケースで、join ランタイムフィルターにより発生していた論理エラーやクラッシュを修正しました。[#89062](https://github.com/ClickHouse/ClickHouse/issues/89062) を修正します。 [#89666](https://github.com/ClickHouse/ClickHouse/pull/89666) ([Alexander Gololobov](https://github.com/davenger))。 +* `enable_lazy_columns_replication` が有効な場合に、Map カラムに対する ARRAY JOIN の実行中に発生する可能性のある論理エラーを修正しました。 [#89705](https://github.com/ClickHouse/ClickHouse/issues/89705) をクローズ。 [#89717](https://github.com/ClickHouse/ClickHouse/pull/89717)([Pavel Kruglov](https://github.com/Avogar))。 +* キャンセル中のリモートクエリにおいて、切断後にリモートサーバーから読み取ろうとしてクラッシュする問題を回避しました。[#89468](https://github.com/ClickHouse/ClickHouse/issues/89468) を解決します。[#89740](https://github.com/ClickHouse/ClickHouse/pull/89740)([Azat Khuzhin](https://github.com/azat))。 +* PROJECTION 索引の読み取りパスにおけるレースコンディションを修正しました。[#89497](https://github.com/ClickHouse/ClickHouse/issues/89497) を解決します。[#89762](https://github.com/ClickHouse/ClickHouse/pull/89762)([Peng Jian](https://github.com/fastio))。 +* projection 索引の読み取りで競合状態を引き起こす可能性のあったバグを修正しました。[#89497](https://github.com/ClickHouse/ClickHouse/issues/89497) を解決しました。 [#89775](https://github.com/ClickHouse/ClickHouse/pull/89775) ([Amos Bird](https://github.com/amosbird))。 +* パーティションを持たないテーブルに対する Paimon テーブル関数の処理を修正しました。[#89690](https://github.com/ClickHouse/ClickHouse/issues/89690) の問題を解決します。[#89793](https://github.com/ClickHouse/ClickHouse/pull/89793)([JIaQi](https://github.com/JiaQiTang98))。 +* 高度な JSON 共有データシリアライゼーションにおけるパスおよびそのサブカラムの読み取り時に発生する可能性があった論理エラーを修正しました。 [#89805](https://github.com/ClickHouse/ClickHouse/issues/89805) をクローズします。 [#89819](https://github.com/ClickHouse/ClickHouse/pull/89819)([Pavel Kruglov](https://github.com/Avogar))。 +* データ型のバイナリ逆シリアル化で発生し得るスタックオーバーフローを修正しました。 [#88710](https://github.com/ClickHouse/ClickHouse/issues/88710) をクローズしました。 [#89822](https://github.com/ClickHouse/ClickHouse/pull/89822)([Pavel Kruglov](https://github.com/Avogar))。 +* `IN` 関数内の空タプルに関する論理エラーを修正しました。 [#88343](https://github.com/ClickHouse/ClickHouse/issues/88343) をクローズしました。 [#89850](https://github.com/ClickHouse/ClickHouse/pull/89850)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* 互換性のため、旧アナライザーでは `optimize_injective_functions_in_group_by` の設定に関係なく、`GROUP BY` から単射関数を削除するようにしました。[#89854](https://github.com/ClickHouse/ClickHouse/issues/89854) を解決しました。[#89870](https://github.com/ClickHouse/ClickHouse/pull/89870)([Raufs Dunamalijevs](https://github.com/rienath))。 +* たとえばメモリ上限によってマージが中断された場合、`merge mutate background executor` はロックなしでマージタスクに対して `cancel` を呼び出しますが、この場合、部分的に作成された結果パートは削除されません(完了しておらず、この段階では可視状態ではなかったため)。その後、マージタスクが破棄され、それに伴い結果パートの破棄がトリガーされます。これによりディスクトランザクションがロールバックされ、S3 からデータが削除されます。最終的に、このガーベジクリーンアップ処理は `merge mutate background executor` のロックの下で実行されるようになりました。[#89875](https://github.com/ClickHouse/ClickHouse/pull/89875)([Mikhail Artemenko](https://github.com/Michicosun))。 +* `reverse` および `CAST` 関数における空タプルの論理エラーを修正。[#89137](https://github.com/ClickHouse/ClickHouse/issues/89137) をクローズ。[#89908](https://github.com/ClickHouse/ClickHouse/pull/89908)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* ClickHouse では、デフォルトで `SHOW DATABASES` クエリの結果にデータレイクカタログ データベースが表示されるようになりました。 [#89914](https://github.com/ClickHouse/ClickHouse/pull/89914) ([alesapin](https://github.com/alesapin)). +* バックアップで GCS のネイティブコピーを使用する処理を修正しました。誤ったクライアントのクローン処理により、GCS のネイティブコピーが常に失敗し、データを手動で読み書きするという最適でない方法が使用されていました。 [#89923](https://github.com/ClickHouse/ClickHouse/pull/89923) ([Antonio Andelic](https://github.com/antonio2368)). +* base32Encode のバッファサイズ計算を修正しました。サイズが 5 未満の文字列カラムに対して base32Encode を実行するとクラッシュが発生する可能性がありました。[#89911](https://github.com/ClickHouse/ClickHouse/issues/89911) を解消します。[#89929](https://github.com/ClickHouse/ClickHouse/pull/89929)([Antonio Andelic](https://github.com/antonio2368))。 +* `SHOW COLUMNS` および `SHOW FUNCTIONS` クエリの誤ったエスケープ処理を修正しました。 [#89942](https://github.com/ClickHouse/ClickHouse/pull/89942) ([alesapin](https://github.com/alesapin)). +* MongoDB エンジンにおいて、ユーザー名に「@」文字が含まれる場合の URL 検証処理を修正しました。以前は、不適切なエンコードにより「@」を含むユーザー名でエラーが発生していました。 [#89970](https://github.com/ClickHouse/ClickHouse/pull/89970) ([Kai Zhu](https://github.com/nauu)). +* [#90592](https://github.com/ClickHouse/ClickHouse/issues/90592) にバックポート: `IN` 内で `ARRAY JOIN` を使用し、`enable_lazy_columns_replication` 設定が有効な場合にリモートクエリで発生し得るクラッシュを修正。[#90361](https://github.com/ClickHouse/ClickHouse/issues/90361) を解決。[#89997](https://github.com/ClickHouse/ClickHouse/pull/89997)([Pavel Kruglov](https://github.com/Avogar))。 +* [#90448](https://github.com/ClickHouse/ClickHouse/issues/90448) でバックポート済み: 一部のケースにおいて、テキスト形式の `String` から不正な `DateTime64` 値が推論される問題を修正。 [#89368](https://github.com/ClickHouse/ClickHouse/issues/89368) を解決。 [#90013](https://github.com/ClickHouse/ClickHouse/pull/90013)([Pavel Kruglov](https://github.com/Avogar))。 +* `BSONEachRow` および `MsgPack` で、空のタプルカラムが原因で発生していた論理エラーを修正。[#89814](https://github.com/ClickHouse/ClickHouse/issues/89814) および [#71536](https://github.com/ClickHouse/ClickHouse/issues/71536) をクローズ。[#90018](https://github.com/ClickHouse/ClickHouse/pull/90018)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* [#90457](https://github.com/ClickHouse/ClickHouse/issues/90457) にバックポート: 集約状態やその他のソースからデータをデシリアライズする際にサイズチェックを行うようにしました。[#90031](https://github.com/ClickHouse/ClickHouse/pull/90031)([Raúl Marín](https://github.com/Algunenano))。 +* 重複したカラムを含む JOIN で `Invalid number of rows in Chunk` エラーが発生する可能性があった問題を修正しました。[#89411](https://github.com/ClickHouse/ClickHouse/issues/89411) を解決しました。[#90053](https://github.com/ClickHouse/ClickHouse/pull/90053)([Vladimir Cherkasov](https://github.com/vdimir))。 +* [#90588](https://github.com/ClickHouse/ClickHouse/issues/90588) でバックポート済み: `enable_lazy_columns_replication` 設定を有効にした状態で `ARRAY JOIN` を使用して挿入を行う際に、`Column with Array type is not represented by ColumnArray column: Replicated` というエラーが発生する可能性がある不具合を修正しました。[#90066](https://github.com/ClickHouse/ClickHouse/pull/90066)([Pavel Kruglov](https://github.com/Avogar))。 +* user_files 内でドットで始まるファイルを許可するようにしました。[#89662](https://github.com/ClickHouse/ClickHouse/issues/89662) をクローズ。[#90079](https://github.com/ClickHouse/ClickHouse/pull/90079)([Raúl Marín](https://github.com/Algunenano))。 +* [#90647](https://github.com/ClickHouse/ClickHouse/issues/90647) にバックポート: 大きなステップサイズを使用した場合に `numbers` システムテーブルで発生する論理エラーおよび剰余計算のバグを修正。[#83398](https://github.com/ClickHouse/ClickHouse/issues/83398) をクローズ。[#90123](https://github.com/ClickHouse/ClickHouse/pull/90123)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* Dictionary 引数の解析で発生していた整数オーバーフローを修正しました。 [#78506](https://github.com/ClickHouse/ClickHouse/issues/78506) をクローズ。 [#90171](https://github.com/ClickHouse/ClickHouse/pull/90171)([Raúl Marín](https://github.com/Algunenano))。 +* [#90468](https://github.com/ClickHouse/ClickHouse/issues/90468) でバックポート済み: 25.8 へのスムーズなアップグレードを妨げていた hive パーティショニングとの非互換性を修正(アップグレード時に発生していたエラー `All hive partitioning columns must be present in the schema` を修正)。[#90202](https://github.com/ClickHouse/ClickHouse/pull/90202)([Kseniia Sumarokova](https://github.com/kssenii))。 +* `SELECT` クエリでクエリ条件キャッシュが有効になっている場合に、論理更新の後に誤ったクエリ結果が返される可能性がある問題を修正しました。[#90176](https://github.com/ClickHouse/ClickHouse/issues/90176) を修正。[#90054](https://github.com/ClickHouse/ClickHouse/issues/90054) を修正。 [#90204](https://github.com/ClickHouse/ClickHouse/pull/90204)([Anton Popov](https://github.com/CurtizJ))。 +* 誤った形式の分片ディレクトリ名を解析する際に StorageDistributed がクラッシュする不具合を修正しました。 [#90243](https://github.com/ClickHouse/ClickHouse/pull/90243) ([Aleksandr Musorin](https://github.com/AVMusorin)). +* `LogicalExpressionOptimizerPass` において、文字列から整数または boolean への暗黙的な型変換を処理するようにしました。[#89803](https://github.com/ClickHouse/ClickHouse/issues/89803) を解決します。[#90245](https://github.com/ClickHouse/ClickHouse/pull/90245)([Elmi Ahmadov](https://github.com/ahmadov))。 +* テーブル定義内の特定の skip index の不正なフォーマットを修正しました。この問題により `METADATA_MISMATCH` が発生し、Replicated Database における新しいレプリカの作成が失敗していました。 [#90251](https://github.com/ClickHouse/ClickHouse/pull/90251) ([Nikolay Degterinsky](https://github.com/evillique)). +* [#90381](https://github.com/ClickHouse/ClickHouse/issues/90381) でバックポート済み: part の行数が index_granularity より少ない場合に、MergeTreeReaderIndex で行数が一致しない問題を修正しました。[#89691](https://github.com/ClickHouse/ClickHouse/issues/89691) を解決します。[#90254](https://github.com/ClickHouse/ClickHouse/pull/90254)([Peng Jian](https://github.com/fastio))。 +* [#90608](https://github.com/ClickHouse/ClickHouse/issues/90608) でバックポート済み: コンパクトパーツで JSON からサブカラムを読み取る際に `CANNOT_READ_ALL_DATA` エラーにつながる可能性があったバグを修正しました。 [#90264](https://github.com/ClickHouse/ClickHouse/issues/90264) を解決します。 [#90302](https://github.com/ClickHouse/ClickHouse/pull/90302)([Pavel Kruglov](https://github.com/Avogar))。 +* 2 つの引数を取る場合に動作しなかった `trim`、`ltrim`、`rtrim` 関数を修正しました。 [#90170](https://github.com/ClickHouse/ClickHouse/issues/90170) をクローズしました。 [#90305](https://github.com/ClickHouse/ClickHouse/pull/90305)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* [#90625](https://github.com/ClickHouse/ClickHouse/issues/90625) にバックポート: `index_granularity_bytes=0` のときに、存在しない JSON path に対する prewhere で発生しうる論理エラーを修正。 [#86924](https://github.com/ClickHouse/ClickHouse/issues/86924) を解決。 [#90375](https://github.com/ClickHouse/ClickHouse/pull/90375) ([Pavel Kruglov](https://github.com/Avogar)). +* [#90484](https://github.com/ClickHouse/ClickHouse/issues/90484) にバックポート: `L2DistanceTransposed` において、`precision` 引数が有効な範囲を超えるとクラッシュする不具合を修正しました。[#90401](https://github.com/ClickHouse/ClickHouse/issues/90401) をクローズ。[#90405](https://github.com/ClickHouse/ClickHouse/pull/90405)([Raufs Dunamalijevs](https://github.com/rienath))。 +* [#90577](https://github.com/ClickHouse/ClickHouse/issues/90577) にバックポート済み: 配列参照ベクトル(デフォルトは `Array(Float64)`)を、要素型が `Float64` 以外(`Float32`、`BFloat16`)の `QBit` カラムと併用した場合に、`L2DistanceTransposed` で距離計算が誤っていた問題を修正しました。この関数は、`QBit` の要素型に一致するように参照ベクトルを自動的にキャストするようになりました。[#89976](https://github.com/ClickHouse/ClickHouse/issues/89976) を解決しました。[#90485](https://github.com/ClickHouse/ClickHouse/pull/90485)([Raufs Dunamalijevs](https://github.com/rienath))。 +* [#90601](https://github.com/ClickHouse/ClickHouse/issues/90601) でバックポート済み: `equals` 関数で発生するまれなケースが原因の論理エラーを修正。[#88142](https://github.com/ClickHouse/ClickHouse/issues/88142) をクローズ。[#90557](https://github.com/ClickHouse/ClickHouse/pull/90557)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* `Tuple` 型に対する `CoalescingMergeTree` の不具合を修正しました。 [#88828](https://github.com/ClickHouse/ClickHouse/pull/88828) ([scanhex12](https://github.com/scanhex12)). + +#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement} + +* initdb の SQL スクリプトとオーバーライドされた TCP ポートを使用して Docker 内で ClickHouse を実行する際に発生する `Connection refused` エラーを修正。[#88042](https://github.com/ClickHouse/ClickHouse/pull/88042) ([Grigorii](https://github.com/GSokol)). +* ClickHouse の新しいプラットフォームとして e2k を実験的にサポート。[#90159](https://github.com/ClickHouse/ClickHouse/pull/90159) ([Ramil Sattarov](https://github.com/r-a-sattarov)). +* CMake から残っていた `FindPackage` の使用を削除。ビルドがシステムパッケージに依存しないようにした。[#89380](https://github.com/ClickHouse/ClickHouse/pull/89380) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* CMake 構成時のビルドでコンパイラキャッシュを使用(例: `protoc`)。[#89613](https://github.com/ClickHouse/ClickHouse/pull/89613) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* FreeBSD 13.4 の sysroot を使用。[#89617](https://github.com/ClickHouse/ClickHouse/pull/89617) ([Konstantin Bogdanov](https://github.com/thevar1able)). + +### ClickHouse 25.10 リリース, 2025-10-31 {#2510} + +#### 後方互換性を損なう変更 {#backward-incompatible-change} + +* デフォルトの `schema_inference_make_columns_nullable` SETTING を変更し、すべてを Nullable にするのではなく、Parquet/ORC/Arrow のメタデータに含まれるカラムの `Nullable` かどうかの情報を反映するようにしました。テキストフォーマットについては変更ありません。 [#71499](https://github.com/ClickHouse/ClickHouse/pull/71499) ([Michael Kolupaev](https://github.com/al13n321)). +* クエリ結果キャッシュは `log_comment` 設定を無視するようになり、クエリで `log_comment` だけを変更しても、もはやキャッシュミスの要因にはなりません。ユーザーが意図的に `log_comment` を変化させることでキャッシュを分割していた可能性がわずかにあります。この変更によりその挙動は変わるため、後方互換性のない変更となります。この目的には `query_cache_tag` 設定を使用してください。 [#79878](https://github.com/ClickHouse/ClickHouse/pull/79878) ([filimonov](https://github.com/filimonov)). +* 以前のバージョンでは、演算子の実装関数と同じ名前のテーブル関数を含むクエリのフォーマットに一貫性がありませんでした。[#81601](https://github.com/ClickHouse/ClickHouse/issues/81601) をクローズ。[#81977](https://github.com/ClickHouse/ClickHouse/issues/81977) をクローズ。[#82834](https://github.com/ClickHouse/ClickHouse/issues/82834) をクローズ。[#82835](https://github.com/ClickHouse/ClickHouse/issues/82835) をクローズ。EXPLAIN SYNTAX クエリは、今後は常に演算子をフォーマットするわけではありません。この新しい挙動は、構文を説明するという目的をより適切に反映します。`clickhouse-format`、`formatQuery` などは、クエリ内で関数呼び出しとして記述されている場合には、関数を演算子としてフォーマットしません。[#82825](https://github.com/ClickHouse/ClickHouse/pull/82825)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `JOIN` キーで `Dynamic` 型を使用することを禁止しました。`Dynamic` 型の値を `Dynamic` ではない型と比較すると、予期しない結果を招く可能性があるためです。`Dynamic` カラムは、必要な型に明示的にキャストすることを推奨します。 [#86358](https://github.com/ClickHouse/ClickHouse/pull/86358) ([Pavel Kruglov](https://github.com/Avogar)). +* `storage_metadata_write_full_object_key` サーバーオプションはデフォルトで有効になっており、現時点では無効にできません。これは後方互換性のある変更です。注意喚起としてお知らせします。この変更は 25.x 系のリリースとしか前方互換性がありません。つまり、新しいリリースからロールバックする必要がある場合は、25.x 系のいずれかのリリースにのみダウングレードできます。 [#87335](https://github.com/ClickHouse/ClickHouse/pull/87335) ([Sema Checherinda](https://github.com/CheSema)). +* 挿入レートが低い場合に ZooKeeper 上に保存される znode の数を減らすため、`replicated_deduplication_window_seconds` の値を 1 週間から 1 時間に短縮しました。 [#87414](https://github.com/ClickHouse/ClickHouse/pull/87414) ([Sema Checherinda](https://github.com/CheSema)). +* 設定 `query_plan_use_new_logical_join_step` の名前を `query_plan_use_logical_join_step` に変更しました。 [#87679](https://github.com/ClickHouse/ClickHouse/pull/87679) ([Vladimir Cherkasov](https://github.com/vdimir)). +* 新しい構文により、テキスト索引の tokenizer パラメータをより柔軟に指定できるようになりました。 [#87997](https://github.com/ClickHouse/ClickHouse/pull/87997) ([Elmi Ahmadov](https://github.com/ahmadov)). +* 既存の関数 `hasToken` との一貫性を高めるため、関数 `searchAny` と `searchAll` の名称をそれぞれ `hasAnyTokens` と `hasAllTokens` に変更しました。 [#88109](https://github.com/ClickHouse/ClickHouse/pull/88109) ([Robert Schulze](https://github.com/rschu1ze)). +* ファイルシステムキャッシュから `cache_hits_threshold` を削除しました。この機能は SLRU キャッシュポリシーを導入する前に外部コントリビューターによって追加されたものですが、現在は SLRU があるため、両方をサポートし続ける意味はありません。 [#88344](https://github.com/ClickHouse/ClickHouse/pull/88344) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `min_free_disk_ratio_to_perform_insert` と `min_free_disk_bytes_to_perform_insert` 設定の動作を、次の 2 点でわずかに変更しました: - 挿入を拒否すべきかどうかを判定する際に、利用可能バイト数ではなく予約されていないバイト数を使用するようにしました。バックグラウンドマージやミューテーションの予約量が、設定されているしきい値と比べて小さい場合にはあまり重要ではないかもしれませんが、こちらの方がより正確です。 - これらの設定を system テーブルには適用しないようにしました。この理由は、`query_log` のようなテーブルを引き続き更新できるようにしたいためです。これはデバッグに大いに役立ちます。system テーブルに書き込まれるデータは通常、実データと比べて小さいため、妥当な `min_free_disk_ratio_to_perform_insert` のしきい値を設定しておけば、より長い期間にわたって書き込みを継続できるはずです。[#88468](https://github.com/ClickHouse/ClickHouse/pull/88468) ([c-end](https://github.com/c-end)). +* Keeper の内部レプリケーションに対して非同期モードを有効にしました。これにより、Keeper は従来と同じ動作を維持しつつ、パフォーマンスが向上する可能性があります。23.9 より古いバージョンからアップデートする場合は、まず 23.9 以上にアップデートしてから、さらに 25.10 以上にアップデートする必要があります。アップデート前に `keeper_server.coordination_settings.async_replication` を 0 に設定しておき、アップデート完了後に再度有効化することもできます。 [#88515](https://github.com/ClickHouse/ClickHouse/pull/88515) ([Antonio Andelic](https://github.com/antonio2368))。 + +#### 新機能 {#new-feature} + +* 負の `LIMIT` および負の `OFFSET` のサポートを追加。 [#28913](https://github.com/ClickHouse/ClickHouse/issues/28913) をクローズ。 [#88411](https://github.com/ClickHouse/ClickHouse/pull/88411) ([Nihal Z. Miaji](https://github.com/nihalzp))。 +* `Alias` エンジンは、別のテーブルへのプロキシを作成します。すべての読み取りおよび書き込み操作は対象テーブルに転送され、エイリアス自体はデータを保持せず、対象テーブルへの参照のみを保持します。 [#87965](https://github.com/ClickHouse/ClickHouse/pull/87965) ([Kai Zhu](https://github.com/nauu))。 +* 演算子 `IS NOT DISTINCT FROM`(`<=>`)を完全にサポート。 [#88155](https://github.com/ClickHouse/ClickHouse/pull/88155) ([simonmichal](https://github.com/simonmichal)). +* `MergeTree` テーブル内の、適用可能なすべてのカラムに対して統計を自動作成する機能を追加しました。作成する統計の種類をカンマ区切りで指定するテーブルレベルの設定 `auto_statistics_types` を追加しました(例: `auto_statistics_types = 'minmax, uniq, countmin'`)。[#87241](https://github.com/ClickHouse/ClickHouse/pull/87241) ([Anton Popov](https://github.com/CurtizJ))。 +* テキスト向けの新しいブルームフィルター索引 `sparse_gram`。 [#79985](https://github.com/ClickHouse/ClickHouse/pull/79985) ([scanhex12](https://github.com/scanhex12))。 +* 数値の基数変換を行うための新しい `conv` 関数が追加されました。現在は基数 2〜36 をサポートしています。 [#83058](https://github.com/ClickHouse/ClickHouse/pull/83058) ([hp](https://github.com/hp77-creator)). +* `LIMIT BY ALL` 構文のサポートを追加しました。`GROUP BY ALL` や `ORDER BY ALL` と同様に、`LIMIT BY ALL` は SELECT 句に含まれるすべての非集約式に自動的に展開され、それらを LIMIT BY のキーとして使用します。例えば、`SELECT id, name, count(*) FROM table GROUP BY id LIMIT 1 BY ALL` は `SELECT id, name, count(*) FROM table GROUP BY id LIMIT 1 BY id, name` と等価です。この機能により、SELECT で選択した非集約カラムすべてを LIMIT BY の対象にしたい場合に、それらを明示的に列挙することなくクエリを簡潔に記述できます。[#59152](https://github.com/ClickHouse/ClickHouse/issues/59152) をクローズしました。[#84079](https://github.com/ClickHouse/ClickHouse/pull/84079)([Surya Kant Ranjan](https://github.com/iit2009046))。 +* ClickHouse で Apache Paimon をクエリできるようにしました。この統合により、ClickHouse ユーザーは Paimon のデータレイクストレージに直接アクセスできるようになります。 [#84423](https://github.com/ClickHouse/ClickHouse/pull/84423) ([JIaQi](https://github.com/JiaQiTang98)). +* `studentTTestOneSample` 集約関数を追加しました。 [#85436](https://github.com/ClickHouse/ClickHouse/pull/85436) ([Dylan](https://github.com/DylanBlakemore))。 +* 集約関数 `quantilePrometheusHistogram` は、ヒストグラムバケットの上限値と累積値を引数として受け取り、分位点が属するバケットの上限値と下限値の間で線形補間を行います。クラシックなヒストグラムに対する PromQL の関数 `histogram_quantile` と同様に動作します。 [#86294](https://github.com/ClickHouse/ClickHouse/pull/86294) ([Stephen Chi](https://github.com/stephchi0)). +* Delta Lake メタデータファイル向けの新しい system テーブルを追加しました。 [#87263](https://github.com/ClickHouse/ClickHouse/pull/87263) ([scanhex12](https://github.com/scanhex12))。 +* `ALTER TABLE REWRITE PARTS` を追加しました。これはテーブルのパーツを最初から再作成し、新しい設定をすべて使用して書き換えます(`use_const_adaptive_granularity` のように、一部の設定は新しいパーツに対してのみ適用されるため)。 [#87774](https://github.com/ClickHouse/ClickHouse/pull/87774) ([Azat Khuzhin](https://github.com/azat))。 +* `SYSTEM RECONNECT ZOOKEEPER` コマンドを追加し、ZooKeeper との接続の切断と再接続を強制的に行えるようにしました([https://github.com/ClickHouse/ClickHouse/issues/87317](https://github.com/ClickHouse/ClickHouse/issues/87317))。[#87318](https://github.com/ClickHouse/ClickHouse/pull/87318)([Pradeep Chhetri](https://github.com/chhetripradeep))。 +* `max_named_collection_num_to_warn` および `max_named_collection_num_to_throw` の設定によって、名前付きコレクションの数を制限できるようにしました。新しいメトリック `NamedCollection` とエラー `TOO_MANY_NAMED_COLLECTIONS` を追加しました。 [#87343](https://github.com/ClickHouse/ClickHouse/pull/87343) ([Pablo Marcos](https://github.com/pamarcos))。 +* `startsWith` および `endsWith` 関数の大文字小文字を区別しない最適化版である `startsWithCaseInsensitive`、`endsWithCaseInsensitive`、`startsWithCaseInsensitiveUTF8`、`endsWithCaseInsensitiveUTF8` を追加しました。 [#87374](https://github.com/ClickHouse/ClickHouse/pull/87374) ([Guang Zhao](https://github.com/zheguang))。 +* サーバー設定の "resources_and_workloads" セクションを使用して、SQL で `WORKLOAD` および `RESOURCE` 定義を指定できるようにしました。 [#87430](https://github.com/ClickHouse/ClickHouse/pull/87430) ([Sergei Trifonov](https://github.com/serxa))。 +* ワイドパーツとして作成するための最小レベルを指定できる新しいテーブル設定 `min_level_for_wide_part` を追加しました。 [#88179](https://github.com/ClickHouse/ClickHouse/pull/88179) ([Christoph Wurm](https://github.com/cwurm)). +* Keeper クライアントに、`cp` と `mv` コマンドの再帰版である `cpr` および `mvr` を追加しました。 [#88570](https://github.com/ClickHouse/ClickHouse/pull/88570) ([Mikhail Artemenko](https://github.com/Michicosun)). +* 挿入時のマテリアライズ対象から除外するスキップ索引のリストを指定するためのセッション設定(`exclude_materialize_skip_indexes_on_insert`)を追加しました。マージ処理中のマテリアライズ対象から除外するスキップ索引のリストを指定するための MergeTree テーブル設定(`exclude_materialize_skip_indexes_on_merge`)を追加しました。 [#87252](https://github.com/ClickHouse/ClickHouse/pull/87252) ([George Larionov](https://github.com/george-larionov)). + +#### 実験的機能 {#experimental-feature} + +* ベクトルをビットスライス形式で格納する `QBit` データ型と、パラメータによって精度と速度のトレードオフを制御できる近似ベクトル検索を行える `L2DistanceTransposed` 関数を実装しました。 [#87922](https://github.com/ClickHouse/ClickHouse/pull/87922) ([Raufs Dunamalijevs](https://github.com/rienath)). +* 関数 `searchAll` および `searchAny` は、テキストカラムを含まないカラムに対しても動作するようになりました。その場合、デフォルトのトークナイザーを使用します。 [#87722](https://github.com/ClickHouse/ClickHouse/pull/87722) ([Jimmy Aguilar Mena](https://github.com/Ergus)). + +#### パフォーマンスの向上 {#performance-improvement} + +* JOIN および ARRAY JOIN において、遅延カラムレプリケーションを実装しました。Sparse や Replicated などの特殊なカラム表現を、一部の出力フォーマットで通常のカラムに変換しないようにしました。これにより、メモリ内での不要なデータコピーを回避します。 [#88752](https://github.com/ClickHouse/ClickHouse/pull/88752) ([Pavel Kruglov](https://github.com/Avogar)). +* MergeTree テーブルのトップレベル String カラムに、圧縮率の向上および効率的なサブカラムアクセスを可能にするためのオプションの `.size` サブカラムシリアライゼーションを追加しました。シリアライゼーションのバージョン管理および空文字列を扱う式の最適化のための新しい MergeTree 設定を導入しました。 [#82850](https://github.com/ClickHouse/ClickHouse/pull/82850) ([Amos Bird](https://github.com/amosbird))。 +* Iceberg に対して `read in order` をサポートしました。 [#88454](https://github.com/ClickHouse/ClickHouse/pull/88454) ([scanhex12](https://github.com/scanhex12)). +* 実行時に右側のサブツリーから Bloom filter を構築し、それを左側のサブツリーのスキャンに渡すことで、一部の JOIN クエリを高速化できるようになりました。これは、`SELECT avg(o_totalprice) FROM orders, customer, nation WHERE c_custkey = o_custkey AND c_nationkey=n_nationkey AND n_name = 'FRANCE'` のようなクエリで有効です。 [#84772](https://github.com/ClickHouse/ClickHouse/pull/84772) ([Alexander Gololobov](https://github.com/davenger))。 +* Query Condition Cache (QCC) と索引解析の順序および統合方法をリファクタリングすることで、クエリパフォーマンスを改善しました。QCC によるフィルタリングは、プライマリキーおよびスキップ索引の解析より前に適用されるようになり、不要な索引計算を削減できます。索引解析は複数の範囲フィルタをサポートするよう拡張され、そのフィルタリング結果は QCC に再度保存されるようになりました。これにより、索引解析が実行時間の大半を占めるクエリ、特にスキップ索引(ベクトル索引や転置インデックスなど)に依存するクエリの速度が大幅に向上します。 [#82380](https://github.com/ClickHouse/ClickHouse/pull/82380) ([Amos Bird](https://github.com/amosbird))。 +* 小さなクエリを高速化するための細かな最適化を多数実施。 [#83096](https://github.com/ClickHouse/ClickHouse/pull/83096) ([Raúl Marín](https://github.com/Algunenano)). +* ネイティブプロトコルでログおよびプロファイルイベントを圧縮します。100 個以上のレプリカを含むクラスターでは、非圧縮のプロファイルイベントだけで 1〜10 MB/秒の帯域を消費し、インターネット接続が遅い場合には進行状況バーの更新が遅くなります。これにより [#82533](https://github.com/ClickHouse/ClickHouse/issues/82533) が解決されました。 [#83586](https://github.com/ClickHouse/ClickHouse/pull/83586) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 大文字小文字を区別する文字列検索(`WHERE URL LIKE '%google%'` のようなフィルタ処理)のパフォーマンスを、[StringZilla](https://github.com/ashvardanian/StringZilla) ライブラリを用い、利用可能な場合は SIMD CPU 命令を使用することで改善しました。[#84161](https://github.com/ClickHouse/ClickHouse/pull/84161)([Raúl Marín](https://github.com/Algunenano))。 +* テーブルに型 `SimpleAggregateFunction(anyLast)` のカラムが存在する場合に、AggregatingMergeTree テーブルに対して `FINAL` 付きで `SELECT` を実行する際のメモリ割り当ておよびメモリコピーを削減しました。 [#84428](https://github.com/ClickHouse/ClickHouse/pull/84428) ([Duc Canh Le](https://github.com/canhld94)). +* `JOIN` の述語における論理和条件のプッシュダウンを行うロジックを追加します。例として、TPC-H Q7 において 2 つのテーブル n1 と n2 上の条件 `(n1.n_name = 'FRANCE' AND n2.n_name = 'GERMANY') OR (n1.n_name = 'GERMANY' AND n2.n_name = 'FRANCE')` がある場合、各テーブルごとに個別の部分的なフィルタ条件を抽出します。すなわち、n1 に対しては `n1.n_name = 'FRANCE' OR n1.n_name = 'GERMANY'`、n2 に対しては `n2.n_name = 'GERMANY' OR n2.n_name = 'FRANCE'` を抽出します。 [#84735](https://github.com/ClickHouse/ClickHouse/pull/84735) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 新しいデフォルト設定 `optimize_rewrite_like_perfect_affix` により、前方一致または後方一致パターンを持つ `LIKE` のパフォーマンスを向上しました。 [#85920](https://github.com/ClickHouse/ClickHouse/pull/85920) ([Guang Zhao](https://github.com/zheguang))。 +* 複数の文字列/数値カラムで GROUP BY を行う際に、サイズの大きなシリアライズ済みキーによって生じていたパフォーマンス低下を修正しました。これは [#83884](https://github.com/ClickHouse/ClickHouse/pull/83884) のフォローアップです。[#85924](https://github.com/ClickHouse/ClickHouse/pull/85924)([李扬](https://github.com/taiyang-li))。 +* キーごとに多数の一致が発生するハッシュ結合におけるメモリ使用量を削減するために、新しい `joined_block_split_single_row` 設定を追加しました。これにより、左テーブルの単一行に対する一致であっても、ハッシュ結合結果を chunk 単位に分割できるようになります。これは、左テーブルの 1 行が右テーブルの数千または数百万行と一致する場合に特に有用です。以前は、すべての一致を一度にメモリ上に具体化する必要がありました。この変更によりピーク時のメモリ使用量は削減されますが、CPU 使用量が増加する可能性があります。 [#87913](https://github.com/ClickHouse/ClickHouse/pull/87913) ([Vladimir Cherkasov](https://github.com/vdimir)). +* SharedMutex を改良し、多数のクエリが同時に実行される場合の性能を向上しました。 [#87491](https://github.com/ClickHouse/ClickHouse/pull/87491) ([Raúl Marín](https://github.com/Algunenano)). +* ほとんどが頻度の低いトークンで構成されるドキュメントに対するテキスト索引の構築パフォーマンスを改善しました。 [#87546](https://github.com/ClickHouse/ClickHouse/pull/87546) ([Anton Popov](https://github.com/CurtizJ)). +* Field デストラクタの典型的なケースを高速化しました(多数の小さなクエリを処理する際のパフォーマンスを改善)。 [#87631](https://github.com/ClickHouse/ClickHouse/pull/87631) ([Raúl Marín](https://github.com/Algunenano)). +* JOIN 最適化中に実行時ハッシュテーブル統計の再計算をスキップするようにし(JOIN を含むすべてのクエリのパフォーマンスが向上)、新しいプロファイルイベント `JoinOptimizeMicroseconds` と `QueryPlanOptimizeMicroseconds` を追加しました。 [#87683](https://github.com/ClickHouse/ClickHouse/pull/87683) ([Vladimir Cherkasov](https://github.com/vdimir)). +* MergeTreeLazy リーダーでマークをキャッシュに保存し、ダイレクト I/O を回避できるようにしました。これにより、ORDER BY と小さな LIMIT を含むクエリのパフォーマンスが向上します。 [#87989](https://github.com/ClickHouse/ClickHouse/pull/87989) ([Nikita Taranov](https://github.com/nickitat))。 +* `is_deleted` カラムを持つ `ReplacingMergeTree` テーブルに対する `FINAL` 句付きの SELECT クエリの実行が、2 つの既存の最適化による並列化の改善により高速化されました。1. テーブル内で単一の `part` しか持たないパーティションに対する `do_not_merge_across_partitions_select_final` 最適化。2. テーブル内のその他の選択された範囲を `intersecting / non-intersecting` に分割し、`FINAL` マージ処理を通過する必要があるのは intersecting 範囲のみにしたこと。 [#88090](https://github.com/ClickHouse/ClickHouse/pull/88090) ([Shankar Iyer](https://github.com/shankar-iyer)). +* フェイルポイントを使用しない場合の影響を軽減しました(デバッグが有効でないときのデフォルトのコードパス)。 [#88196](https://github.com/ClickHouse/ClickHouse/pull/88196) ([Raúl Marín](https://github.com/Algunenano)). +* `uuid` でフィルタする `system.tables` へのフルスキャンを行わないようにしました(ログや ZooKeeper のパスから UUID しか取得できない場合に便利です)。 [#88379](https://github.com/ClickHouse/ClickHouse/pull/88379) ([Azat Khuzhin](https://github.com/azat)). +* 関数 `tokens`、`hasAllTokens`、`hasAnyTokens` のパフォーマンスが向上しました。 [#88416](https://github.com/ClickHouse/ClickHouse/pull/88416) ([Anton Popov](https://github.com/CurtizJ))。 +* 一部のケースで JOIN クエリのパフォーマンスをわずかに向上させるため、`AddedColumns::appendFromBlock` をインライン化しました。 [#88455](https://github.com/ClickHouse/ClickHouse/pull/88455) ([Nikita Taranov](https://github.com/nickitat)). +* クライアントの自動補完機能は、複数の system テーブルを問い合わせるのではなく `system.completions` を使用することで、より高速かつ一貫性のあるものになりました。 [#84694](https://github.com/ClickHouse/ClickHouse/pull/84694) ([|2ustam](https://github.com/RuS2m))。 +* Dictionary の圧縮方式を制御するための新しいテキスト索引パラメータ `dictionary_block_frontcoding_compression` を追加しました。デフォルトで有効になっており、`front-coding` 圧縮を使用します。 [#87175](https://github.com/ClickHouse/ClickHouse/pull/87175) ([Elmi Ahmadov](https://github.com/ahmadov)). +* `min_insert_block_size_rows_for_materialized_views` および `min_insert_block_size_bytes_for_materialized_views` の設定に応じて、materialized view に挿入する前に、すべてのスレッドからのデータを 1 つにまとめてから挿入するようになりました。以前は、`parallel_view_processing` が有効な場合、特定の materialized view への挿入を行う各スレッドがそれぞれ独立してデータをまとめて挿入していたため、生成されるパーツの数が多くなる可能性がありました。 [#87280](https://github.com/ClickHouse/ClickHouse/pull/87280) ([Antonio Andelic](https://github.com/antonio2368)). +* 一時ファイルへの書き込み用バッファのサイズを制御するための設定 `temporary_files_buffer_size` を追加。* `LowCardinality` カラムに対して、`scatter` 操作(たとえば Grace ハッシュ結合で使用)時のメモリ消費を最適化。 [#88237](https://github.com/ClickHouse/ClickHouse/pull/88237) ([Vladimir Cherkasov](https://github.com/vdimir)). +* テキストインデックスの並列レプリカからの直接読み取りをサポートしました。オブジェクトストレージからのテキストインデックス読み取りのパフォーマンスを改善しました。 [#88262](https://github.com/ClickHouse/ClickHouse/pull/88262) ([Anton Popov](https://github.com/CurtizJ))。 +* データレイクカタログのテーブルを対象とするクエリでは、分散処理のためにパラレルレプリカが使用されるようになりました。 [#88273](https://github.com/ClickHouse/ClickHouse/pull/88273) ([scanhex12](https://github.com/scanhex12)). +* "to_remove_small_parts_at_right" と名付けられたバックグラウンドマージアルゴリズムのチューニング用内部ヒューリスティクスが、マージ範囲スコアの計算より前に実行されるようになりました。これ以前は、マージセレクタは広いマージ範囲を選択し、その後でその末尾をフィルタリングしていました。修正: [#85374](https://github.com/ClickHouse/ClickHouse/issues/85374)。[#88736](https://github.com/ClickHouse/ClickHouse/pull/88736) ([Mikhail Artemenko](https://github.com/Michicosun))。 + +#### 改良 {#improvement} + +* 関数 `generateSerialID` が、系列名として非定数引数をサポートするようになりました。 [#83750](https://github.com/ClickHouse/ClickHouse/issues/83750) をクローズしました。 [#88270](https://github.com/ClickHouse/ClickHouse/pull/88270)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 新しいシーケンスの開始値をカスタマイズできるように、`generateSerialID` 関数にオプションの `start_value` パラメータを追加しました。 [#88085](https://github.com/ClickHouse/ClickHouse/pull/88085) ([Manuel](https://github.com/raimannma)). +* `clickhouse-format` に `--semicolons_inline` オプションを追加し、クエリをフォーマットする際にセミコロンが新しい行ではなく末尾行に付くようにしました。 [#88018](https://github.com/ClickHouse/ClickHouse/pull/88018) ([Jan Rada](https://github.com/ZelvaMan)). +* Keeper で設定が上書きされている場合でも、サーバーレベルのスロットリングを設定可能にしました。[#73964](https://github.com/ClickHouse/ClickHouse/issues/73964) をクローズ。[#74066](https://github.com/ClickHouse/ClickHouse/pull/74066) ([JIaQi](https://github.com/JiaQiTang98))。 +* `mannWhitneyUTest` は、両方のサンプルが同一の値のみを含む場合に、例外をスローしなくなりました。現在は SciPy と整合的な有効な結果を返します。これにより次の Issue がクローズされました: [#79814](https://github.com/ClickHouse/ClickHouse/issues/79814)。[#80009](https://github.com/ClickHouse/ClickHouse/pull/80009)([DeanNeaht](https://github.com/DeanNeaht))。 +* メタデータトランザクションがコミットされたとき、ディスクのオブジェクトストレージに対する書き換えトランザクションが既存のリモート BLOB を削除するようになりました。 [#81787](https://github.com/ClickHouse/ClickHouse/pull/81787) ([Sema Checherinda](https://github.com/CheSema)). +* 最適化の前後で結果型の `LowCardinality` が異なる場合における冗長な等価比較式の最適化パスを修正しました。 [#82651](https://github.com/ClickHouse/ClickHouse/pull/82651) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* HTTP クライアントが `Expect: 100-continue` に加えてヘッダー `X-ClickHouse-100-Continue: defer` を設定した場合、ClickHouse は QUOTA 検証に通過するまでクライアントに `100 Continue` レスポンスを送信しないため、いずれ破棄されるリクエストボディの送信によるネットワーク帯域の無駄を防ぎます。これは、クエリを URL のクエリ文字列で送信し、データをリクエストボディで送信する INSERT クエリで特に有効です。リクエストボディを最後まで送信せずにリクエストを中止すると、HTTP/1.1 におけるコネクションを再利用できなくなりますが、新しいコネクションを確立することで追加されるレイテンシは、大量データの INSERT 全体の所要時間と比べると通常は無視できる程度です。 [#84304](https://github.com/ClickHouse/ClickHouse/pull/84304) ([c-end](https://github.com/c-end)). +* S3 ストレージを使用する `DATABASE ENGINE = Backup` 利用時に、ログ内の S3 認証情報がマスクされるようになりました。 [#85336](https://github.com/ClickHouse/ClickHouse/pull/85336) ([Kenny Sun](https://github.com/hwabis)). +* クエリプラン最適化の効果が相関サブクエリの入力サブプランからも見えるようにするため、そのマテリアライズを遅延させました。 [#79890](https://github.com/ClickHouse/ClickHouse/issues/79890) の一部。 [#85455](https://github.com/ClickHouse/ClickHouse/pull/85455)([Dmitry Novik](https://github.com/novikd))。 +* SYSTEM DROP DATABASE REPLICA に対する変更: - データベースを指定してドロップする、あるいはレプリカ全体をドロップする場合: データベース内の各テーブルのレプリカもドロップされる - 'WITH TABLES' が指定されている場合は、各ストレージのレプリカもドロップされる - それ以外の場合はロジックは変わらず、データベースのレプリカのみがドロップされる - Keeper パス付きでデータベースレプリカをドロップする場合: - 'WITH TABLES' が指定されている場合: - データベースを Atomic データベースとして復元する - Keeper 内のステートメントから RMT テーブルを復元する - データベースをドロップする(復元されたテーブルもドロップされる) - それ以外の場合は、指定された Keeper パス上のレプリカのみをドロップする。 [#85637](https://github.com/ClickHouse/ClickHouse/pull/85637) ([Tuan Pham Anh](https://github.com/tuanpach)). +* `materialize` 関数を含む場合の有効期限 (TTL) のフォーマットの不整合を修正しました。[#82828](https://github.com/ClickHouse/ClickHouse/issues/82828) をクローズしました。[#85749](https://github.com/ClickHouse/ClickHouse/pull/85749)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* Iceberg テーブルの状態はストレージオブジェクトには保存されなくなりました。これにより、ClickHouse における Iceberg を同時実行クエリでも利用できるようになります。 [#86062](https://github.com/ClickHouse/ClickHouse/pull/86062) ([Daniil Ivanik](https://github.com/divanik))。 +* `use_persistent_processing_nodes = 1` の場合の処理ノードと同様に、S3Queue の ordered モードにおける bucket lock を永続モードにしました。テストに Keeper のフォールトインジェクションを追加しました。 [#86628](https://github.com/ClickHouse/ClickHouse/pull/86628) ([Kseniia Sumarokova](https://github.com/kssenii)). +* フォーマット名にタイプミスがある場合にヒントを表示するようにしました。[#86761](https://github.com/ClickHouse/ClickHouse/issues/86761) をクローズしました。 [#87092](https://github.com/ClickHouse/ClickHouse/pull/87092)([flynn](https://github.com/ucasfl))。 +* リモートレプリカは、PROJECTION が存在しない場合、索引の解析をスキップするようになりました。[#87096](https://github.com/ClickHouse/ClickHouse/pull/87096) ([zoomxi](https://github.com/zoomxi)). +* ytsaurus テーブルで UTF-8 エンコーディングを無効にできるようにしました。 [#87150](https://github.com/ClickHouse/ClickHouse/pull/87150) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* `s3_slow_all_threads_after_retryable_error` をデフォルトで無効にしました。 [#87198](https://github.com/ClickHouse/ClickHouse/pull/87198) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* テーブル関数 `arrowflight` を `arrowFlight` に名称変更。 [#87249](https://github.com/ClickHouse/ClickHouse/pull/87249) ([Vitaly Baranov](https://github.com/vitlibar)). +* `clickhouse-benchmark` を更新し、CLI フラグで `_` の代わりに `-` を使用できるようにしました。 [#87251](https://github.com/ClickHouse/ClickHouse/pull/87251) ([Ahmed Gouda](https://github.com/0xgouda))。 +* シグナルハンドラ内での `system.crash_log` へのフラッシュを同期的に行うようにしました。 [#87253](https://github.com/ClickHouse/ClickHouse/pull/87253) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* `ORDER BY` 句を含まないトップレベルの `SELECT` クエリに `ORDER BY rand()` を自動で挿入する `inject_random_order_for_select_without_order_by` 設定を追加しました。 [#87261](https://github.com/ClickHouse/ClickHouse/pull/87261) ([Rui Zhang](https://github.com/zhangruiddn)). +* `joinGet` のエラーメッセージを改善し、`join_keys` の数が `right_table_keys` の数と一致しない場合に、その旨を正しく示すようにしました。 [#87279](https://github.com/ClickHouse/ClickHouse/pull/87279) ([Isak Ellmer](https://github.com/spinojara)). +* 書き込みトランザクション中に任意の Keeper ノードの stat を確認できるようにしました。これにより、ABA 問題の検出に役立ちます。 [#87282](https://github.com/ClickHouse/ClickHouse/pull/87282) ([Mikhail Artemenko](https://github.com/Michicosun)). +* 高負荷な ytsaurus リクエストを heavy プロキシにリダイレクトするようにしました。 [#87342](https://github.com/ClickHouse/ClickHouse/pull/87342) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* ディスクトランザクション由来のメタデータに対して、unlink/rename/removeRecursive/removeDirectory などの操作のロールバック処理と、あらゆるワークロードでのハードリンク数を修正し、インターフェイスをより汎用的にして他のメタストアでも再利用できるよう簡素化しました。 [#87358](https://github.com/ClickHouse/ClickHouse/pull/87358) ([Mikhail Artemenko](https://github.com/Michicosun)). +* Keeper に対する `TCP_NODELAY` を無効化できる `keeper_server.tcp_nodelay` 構成パラメータを追加しました。 [#87363](https://github.com/ClickHouse/ClickHouse/pull/87363) (Copilot)。 +* `clickhouse-benchmarks` で `--connection` をサポートしました。これは `clickhouse-client` でサポートされているものと同様で、クライアントの `config.xml` / `config.yaml` の `connections_credentials` パス以下に事前定義された接続を指定することで、コマンドライン引数で明示的にユーザー名/パスワードを指定する必要を避けられます。`clickhouse-benchmark` に `--accept-invalid-certificate` のサポートを追加しました。[#87370](https://github.com/ClickHouse/ClickHouse/pull/87370) ([Azat Khuzhin](https://github.com/azat))。 +* `max_insert_threads` の設定が Iceberg テーブルにも適用されるようになりました。 [#87407](https://github.com/ClickHouse/ClickHouse/pull/87407) ([alesapin](https://github.com/alesapin))。 +* `PrometheusMetricsWriter` にヒストグラムおよびディメンション付きメトリクスを追加しました。これにより、`PrometheusRequestHandler` ハンドラーは必要なメトリクスを一通り備えるようになり、Cloud 環境で信頼性が高く低オーバーヘッドなメトリクス収集に利用できるようになりました。 [#87521](https://github.com/ClickHouse/ClickHouse/pull/87521) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* 関数 `hasToken` は、空のトークンに対してはマッチ数ゼロを返すようになりました(以前は例外をスローしていました)。 [#87564](https://github.com/ClickHouse/ClickHouse/pull/87564) ([Jimmy Aguilar Mena](https://github.com/Ergus)). +* `Array` および `Map`(`mapKeys` と `mapValues`)の値に対するテキストインデックスのサポートを追加しました。サポートされる関数は `mapContainsKey` と `has` です。 [#87602](https://github.com/ClickHouse/ClickHouse/pull/87602) ([Elmi Ahmadov](https://github.com/ahmadov))。 +* 有効期限が切れたグローバル ZooKeeper セッション数を示す新しい `ZooKeeperSessionExpired` メトリクスを追加。 [#87613](https://github.com/ClickHouse/ClickHouse/pull/87613) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* バックアップ専用の設定(たとえば backup_slow_all_threads_after_retryable_s3_error)を持つ S3 ストレージクライアントを、バックアップ先へのサーバーサイド(ネイティブ)コピーに使用するようにしました。s3_slow_all_threads_after_retryable_error を廃止しました。 [#87660](https://github.com/ClickHouse/ClickHouse/pull/87660) ([Julia Kartseva](https://github.com/jkartseva)). +* 実験的機能である `make_distributed_plan` を使用したクエリプランのシリアライズ時に、`max_joined_block_size_rows` および `max_joined_block_size_bytes` の設定が正しく処理されない問題を修正。 [#87675](https://github.com/ClickHouse/ClickHouse/pull/87675) ([Vladimir Cherkasov](https://github.com/vdimir)). +* `enable_http_compression` 設定がデフォルトで有効になりました。これは、クライアントが HTTP 圧縮を受け入れる場合、サーバーがそれを使用することを意味します。ただし、この変更にはいくつかのデメリットがあります。クライアントは `bzip2` のような計算コストの高い圧縮方式を要求でき、これは現実的ではなく、サーバーのリソース消費を増加させます(ただし、これは大きな結果セットが転送される場合にのみ顕在化します)。クライアントは `gzip` を要求することもでき、これはそれほど悪くはありませんが、`zstd` と比較すると最適とは言えません。[#71591](https://github.com/ClickHouse/ClickHouse/issues/71591) をクローズ。[#87703](https://github.com/ClickHouse/ClickHouse/pull/87703)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `system.server_settings` に新しいエントリ `keeper_hosts` を追加し、ClickHouse が接続可能な [Zoo]Keeper ホストの一覧を参照できるようにしました。 [#87718](https://github.com/ClickHouse/ClickHouse/pull/87718) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* 履歴調査を容易にするために、system ダッシュボードに `from` と `to` の値を追加しました。 [#87823](https://github.com/ClickHouse/ClickHouse/pull/87823) ([Mikhail f. Shiryaev](https://github.com/Felixoid))。 +* Iceberg の SELECT に対するパフォーマンス計測用の情報をさらに追加。 [#87903](https://github.com/ClickHouse/ClickHouse/pull/87903) ([Daniil Ivanik](https://github.com/divanik)). +* Filesystem キャッシュの改善: キャッシュ領域を同時に予約しているスレッド間で、キャッシュ優先度イテレータを再利用するようにしました。 [#87914](https://github.com/ClickHouse/ClickHouse/pull/87914) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `Keeper` に対するリクエストサイズを制限できるようにしました(`ZooKeeper` の `jute.maxbuffer` と同様の `max_request_size` SETTING。後方互換性のためデフォルトは OFF で、今後のリリースで有効化される予定です)。 [#87952](https://github.com/ClickHouse/ClickHouse/pull/87952) ([Azat Khuzhin](https://github.com/azat))。 +* `clickhouse-benchmark` はデフォルトでエラーメッセージにスタックトレースを含めないようにしました。 [#87954](https://github.com/ClickHouse/ClickHouse/pull/87954) ([Ahmed Gouda](https://github.com/0xgouda)). +* マークがキャッシュに存在する場合は、スレッドプールを利用した非同期マーク読み込み(`load_marks_asynchronously=1`)は使用しないでください(プールが逼迫している可能性があり、マークがすでにキャッシュ内にあってもクエリの待ち時間が増えるなどのペナルティを受けるため)。 [#87967](https://github.com/ClickHouse/ClickHouse/pull/87967) ([Azat Khuzhin](https://github.com/azat)). +* Ytsaurus: カラムの一部のみを指定して CREATE TABLE/テーブル関数/辞書を作成できるようにしました。 [#87982](https://github.com/ClickHouse/ClickHouse/pull/87982) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* 今後、`system.zookeeper_connection_log` はデフォルトで有効になり、Keeper セッションに関する情報を取得するために利用できます。 [#88011](https://github.com/ClickHouse/ClickHouse/pull/88011) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* 重複した外部テーブルが渡された場合の TCP と HTTP の挙動を一貫させました。HTTP では、一時テーブルを複数回渡すことが許可されています。 [#88032](https://github.com/ClickHouse/ClickHouse/pull/88032) ([Sema Checherinda](https://github.com/CheSema)). +* Arrow/ORC/Parquet の読み取り用に使用していたカスタム MemoryPools を削除しました。[#84082](https://github.com/ClickHouse/ClickHouse/pull/84082) により、すべてのアロケーションを追跡するようになったため、このコンポーネントは不要になりました。[#88035](https://github.com/ClickHouse/ClickHouse/pull/88035)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* 引数を指定せずに `Replicated` データベースを作成できるようにしました。 [#88044](https://github.com/ClickHouse/ClickHouse/pull/88044) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* `clickhouse-keeper-client`: clickhouse-keeper の TLS ポートへの接続をサポートし、フラグ名は clickhouse-client と同じもののままとしました。 [#88065](https://github.com/ClickHouse/ClickHouse/pull/88065) ([Pradeep Chhetri](https://github.com/chhetripradeep)). +* メモリ制限を超過したためにバックグラウンドのマージが拒否された回数を追跡する新しいプロファイルイベントを追加しました。 [#88084](https://github.com/ClickHouse/ClickHouse/pull/88084) ([Grant Holly](https://github.com/grantholly-clickhouse))。 +* CREATE/ALTER TABLE のカラムのデフォルト式を検証するアナライザーを有効にしました。 [#88087](https://github.com/ClickHouse/ClickHouse/pull/88087) ([Max Justus Spransy](https://github.com/maxjustus)). +* 内部のクエリプランニングを改善し、`CROSS JOIN` に JoinStepLogical を使用するようにしました。 [#88151](https://github.com/ClickHouse/ClickHouse/pull/88151) ([Vladimir Cherkasov](https://github.com/vdimir)). +* `hasAnyTokens` 関数に `hasAnyToken`、`hasAllTokens` 関数に `hasAllToken` というエイリアスを追加しました。 [#88162](https://github.com/ClickHouse/ClickHouse/pull/88162) ([George Larionov](https://github.com/george-larionov)). +* グローバルサンプリングプロファイラをデフォルトで有効にしました(クエリに関連しないサーバースレッドも含まれます)。すべてのスレッドのスタックトレースを、CPU 時間および実時間の両方について 10 秒ごとに収集します。 [#88209](https://github.com/ClickHouse/ClickHouse/pull/88209) ([Alexander Tokmakov](https://github.com/tavplubix))。 +* コピーおよびコンテナ作成機能で発生していた 'Content-Length' の問題を修正した Azure SDK へ更新。 [#88278](https://github.com/ClickHouse/ClickHouse/pull/88278) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). +* MySQL との互換性を高めるため、関数 `lag` を大文字小文字を区別しないようにしました。 [#88322](https://github.com/ClickHouse/ClickHouse/pull/88322) ([Lonny Kapelushnik](https://github.com/lonnylot)). +* `clickhouse-server` ディレクトリから `clickhouse-local` を起動できるようにしました。以前のバージョンでは、`Cannot parse UUID: .` というエラーが発生していました。これにより、サーバーを起動せずに `clickhouse-local` を起動してサーバーのデータベースを操作できるようになりました。 [#88383](https://github.com/ClickHouse/ClickHouse/pull/88383) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `keeper_server.coordination_settings.check_node_acl_on_remove` 設定を追加しました。有効な場合は、各ノードを削除する前に、そのノード自身および親ノードの両方の ACL が検証されます。無効な場合は、親ノードの ACL のみが検証されます。 [#88513](https://github.com/ClickHouse/ClickHouse/pull/88513) ([Antonio Andelic](https://github.com/antonio2368)). +* `Vertical` フォーマットを使用する場合、`JSON` カラムが見やすく整形して表示されるようになりました。[#81794](https://github.com/ClickHouse/ClickHouse/issues/81794) をクローズします。[#88524](https://github.com/ClickHouse/ClickHouse/pull/88524)([Frank Rosner](https://github.com/FRosner))。 +* `clickhouse-client` のファイル(例: クエリ履歴)をホームディレクトリ直下ではなく、[XDG Base Directories](https://specifications.freedesktop.org/basedir-spec/latest/index.html) 仕様で定義された場所に保存するようになりました。すでに存在している場合は、引き続き `~/.clickhouse-client-history` が使用されます。 [#88538](https://github.com/ClickHouse/ClickHouse/pull/88538) ([Konstantin Bogdanov](https://github.com/thevar1able))。 +* `GLOBAL IN` に起因するメモリリークを修正([https://github.com/ClickHouse/ClickHouse/issues/88615](https://github.com/ClickHouse/ClickHouse/issues/88615))。 [#88617](https://github.com/ClickHouse/ClickHouse/pull/88617)([pranavmehta94](https://github.com/pranavmehta94))。 +* 文字列引数を受け取れるように、hasAny/hasAllTokens にオーバーロードを追加しました。 [#88679](https://github.com/ClickHouse/ClickHouse/pull/88679) ([George Larionov](https://github.com/george-larionov)). +* `clickhouse-keeper` がブート時に起動できるようにするステップを postinstall スクリプトに追加しました。 [#88746](https://github.com/ClickHouse/ClickHouse/pull/88746) ([YenchangChan](https://github.com/YenchangChan)). +* Web UI では、キー入力のたびではなく、貼り付け時にのみ認証情報をチェックするようにしました。これにより、設定が誤っている LDAP サーバーで発生していた問題を回避します。この変更により [#85777](https://github.com/ClickHouse/ClickHouse/issues/85777) が解決されました。 [#88769](https://github.com/ClickHouse/ClickHouse/pull/88769) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* CONSTRAINT 違反時の例外メッセージの長さを制限しました。以前のバージョンでは、非常に長い文字列が挿入された場合に、同様に非常に長い例外メッセージが出力され、それが `query_log` に書き込まれてしまうことがありました。[#87032](https://github.com/ClickHouse/ClickHouse/issues/87032) をクローズ。[#88801](https://github.com/ClickHouse/ClickHouse/pull/88801)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* テーブル作成時に ArrowFlight サーバーからデータセットの構造を取得する処理を修正。 [#87542](https://github.com/ClickHouse/ClickHouse/pull/87542) ([Vitaly Baranov](https://github.com/vitlibar)). + +#### バグ修正(公式安定版リリースにおけるユーザーに影響する不具合) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* GeoParquet が原因でクライアントプロトコルエラーが発生していた問題を修正しました。 [#84020](https://github.com/ClickHouse/ClickHouse/pull/84020) ([Michael Kolupaev](https://github.com/al13n321)). +* イニシエーターノード上のサブクエリ内で、`shardNum()` のようなホスト依存関数の解決処理を修正。 [#84409](https://github.com/ClickHouse/ClickHouse/pull/84409) ([Eduard Karacharov](https://github.com/korowa))。 +* `parseDateTime64BestEffort`、`change{Year,Month,Day}`、`makeDateTime64` など、いくつかの日時関連関数において、エポック以前の日付で小数秒を含む値の扱いが誤っていた問題を修正しました。これまでは、小数秒部分を秒に加算すべきところを減算していました。たとえば `parseDateTime64BestEffort('1969-01-01 00:00:00.468')` は、本来 `1969-01-01 00:00:00.468` を返すべきところで `1968-12-31 23:59:59.532` を返していました。 [#85396](https://github.com/ClickHouse/ClickHouse/pull/85396) ([xiaohuanlin](https://github.com/xiaohuanlin)). +* 同じ ALTER ステートメント内でカラムの状態が変化した場合に、ALTER COLUMN IF EXISTS コマンドが失敗する問題を修正しました。DROP COLUMN IF EXISTS、MODIFY COLUMN IF EXISTS、COMMENT COLUMN IF EXISTS、RENAME COLUMN IF EXISTS などのコマンドは、同一ステートメント内のそれ以前のコマンドによってカラムが削除されたケースを正しく処理するようになりました。 [#86046](https://github.com/ClickHouse/ClickHouse/pull/86046) ([xiaohuanlin](https://github.com/xiaohuanlin)). +* サポート対象範囲外の日付に対する Date/DateTime/DateTime64 型の推論を修正。 [#86184](https://github.com/ClickHouse/ClickHouse/pull/86184) ([Pavel Kruglov](https://github.com/Avogar)). +* `AggregateFunction(quantileDD)` カラムに対してユーザーが送信した一部の有効なデータが、マージ処理中に無限再帰に陥ってクラッシュを引き起こす可能性があった問題を修正しました。 [#86560](https://github.com/ClickHouse/ClickHouse/pull/86560) ([Raphaël Thériault](https://github.com/raphael-theriault-swi)). +* `cluster` テーブル関数として作成されたテーブルで JSON/Dynamic 型をサポートしました。 [#86821](https://github.com/ClickHouse/ClickHouse/pull/86821) ([Pavel Kruglov](https://github.com/Avogar))。 +* CTE 内で計算される関数の結果が、クエリ内で非決定的になっていた問題を修正。 [#86967](https://github.com/ClickHouse/ClickHouse/pull/86967) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* 主キーのカラム上で pointInPolygon を使用した EXPLAIN で発生していた LOGICAL_ERROR を修正。 [#86971](https://github.com/ClickHouse/ClickHouse/pull/86971) ([Michael Kolupaev](https://github.com/al13n321)). +* 名前にパーセントエンコードされたシーケンスを含むデータレイクテーブルを修正しました。 [#86626](https://github.com/ClickHouse/ClickHouse/issues/86626) をクローズしました。 [#87020](https://github.com/ClickHouse/ClickHouse/pull/87020)([Anton Ivashkin](https://github.com/ianton-ru))。 +* `optimize_functions_to_subcolumns` を使用した `OUTER JOIN` において、Nullable なカラムに対する `IS NULL` の誤った動作を修正しました。[#78625](https://github.com/ClickHouse/ClickHouse/issues/78625) をクローズしました。[#87058](https://github.com/ClickHouse/ClickHouse/pull/87058)([Vladimir Cherkasov](https://github.com/vdimir))。 +* `max_temporary_data_on_disk_size` 制限のトラッキングにおいて、一時データの解放を誤って計上していた問題を修正しました。[#87118](https://github.com/ClickHouse/ClickHouse/issues/87118) をクローズ。[#87140](https://github.com/ClickHouse/ClickHouse/pull/87140) ([JIaQi](https://github.com/JiaQiTang98))。 +* 関数 checkHeaders は、提供されたヘッダーを適切に検証し、禁止されているヘッダーを拒否するようになりました。原作者: Michael Anastasakis (@michael-anastasakis)。[#87172](https://github.com/ClickHouse/ClickHouse/pull/87172)([Raúl Marín](https://github.com/Algunenano))。 +* すべての数値型に対して `toDate` と `toDate32` の動作を同一にしました。int16 からのキャスト時における Date32 のアンダーフロー検査を修正しました。 [#87176](https://github.com/ClickHouse/ClickHouse/pull/87176) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* 複数の `JOIN` を含むクエリで、特に `LEFT` / `INNER JOIN` の後に `RIGHT JOIN` が続く場合に、parallel replicas の利用時に発生していた論理エラーを修正しました。 [#87178](https://github.com/ClickHouse/ClickHouse/pull/87178) ([Igor Nikonov](https://github.com/devcrafter)). +* スキーマ推論キャッシュで `input_format_try_infer_variants` 設定が考慮されるようにしました。 [#87180](https://github.com/ClickHouse/ClickHouse/pull/87180) ([Pavel Kruglov](https://github.com/Avogar)). +* pathStartsWith 関数が、指定したプレフィックス配下のパスにのみマッチするように修正しました。 [#87181](https://github.com/ClickHouse/ClickHouse/pull/87181) ([Raúl Marín](https://github.com/Algunenano)). +* `_row_number` 仮想カラムおよび Iceberg の positioned delete 操作における論理エラーを修正しました。 [#87220](https://github.com/ClickHouse/ClickHouse/pull/87220) ([Michael Kolupaev](https://github.com/al13n321)). +* `const` ブロックと非 `const` ブロックが混在していたことにより `JOIN` で発生していた、`LOGICAL_ERROR` "Too large size passed to allocator" を修正しました。 [#87231](https://github.com/ClickHouse/ClickHouse/pull/87231) ([Azat Khuzhin](https://github.com/azat)). +* 別の `MergeTree` テーブルを読み取るサブクエリを含む論理更新で発生していた不具合を修正しました。 [#87285](https://github.com/ClickHouse/ClickHouse/pull/87285) ([Anton Popov](https://github.com/CurtizJ)). +* ROW POLICY が有効な場合に正しく動作しなかった move-to-prewhere 最適化を修正しました。[#85118](https://github.com/ClickHouse/ClickHouse/issues/85118) の継続対応です。[#69777](https://github.com/ClickHouse/ClickHouse/issues/69777) をクローズします。[#83748](https://github.com/ClickHouse/ClickHouse/issues/83748) をクローズします。[#87303](https://github.com/ClickHouse/ClickHouse/pull/87303) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* データパーツ内に存在しないデフォルト式を持つカラムへのパッチ適用の問題を修正しました。 [#87347](https://github.com/ClickHouse/ClickHouse/pull/87347) ([Anton Popov](https://github.com/CurtizJ)). +* MergeTree テーブルで重複するパーティションフィールド名を使用した場合にセグメンテーションフォルトが発生していた問題を修正しました。 [#87365](https://github.com/ClickHouse/ClickHouse/pull/87365) ([xiaohuanlin](https://github.com/xiaohuanlin)). +* EmbeddedRocksDB のアップグレード処理を修正。 [#87392](https://github.com/ClickHouse/ClickHouse/pull/87392) ([Raúl Marín](https://github.com/Algunenano)). +* オブジェクトストレージ上のテキスト索引からの直接読み込みの問題を修正しました。 [#87399](https://github.com/ClickHouse/ClickHouse/pull/87399) ([Anton Popov](https://github.com/CurtizJ)). +* 存在しないエンジンに対する権限が作成できないようにしました。 [#87419](https://github.com/ClickHouse/ClickHouse/pull/87419) ([Jitendra](https://github.com/jitendra1411)). +* `s3_plain_rewritable` に対しては「not found」エラーのみを無視するようにしました(それ以外のエラーを無視するとあらゆる問題につながる可能性があります)。 [#87426](https://github.com/ClickHouse/ClickHouse/pull/87426) ([Azat Khuzhin](https://github.com/azat))。 +* YTSaurus ソースおよび *range_hashed レイアウトを使用する辞書を修正しました。 [#87490](https://github.com/ClickHouse/ClickHouse/pull/87490) ([MikhailBurdukov](https://github.com/MikhailBurdukov))。 +* 空のタプル配列の作成を修正。 [#87520](https://github.com/ClickHouse/ClickHouse/pull/87520) ([Pavel Kruglov](https://github.com/Avogar)). +* 一時テーブル作成時に不正なカラムをチェックするようにしました。 [#87524](https://github.com/ClickHouse/ClickHouse/pull/87524) ([Pavel Kruglov](https://github.com/Avogar)). +* Hive のパーティションカラムをフォーマットヘッダーに含めないようにしました。 [#87515](https://github.com/ClickHouse/ClickHouse/issues/87515) を修正しました。 [#87528](https://github.com/ClickHouse/ClickHouse/pull/87528)([Arthur Passos](https://github.com/arthurpassos))。 +* テキストフォーマット使用時の DeltaLake におけるフォーマットからの読み取り準備処理を修正。 [#87529](https://github.com/ClickHouse/ClickHouse/pull/87529) ([Pavel Kruglov](https://github.com/Avogar)). +* Buffer テーブルに対する SELECT および INSERT のアクセス検証を修正しました。 [#87545](https://github.com/ClickHouse/ClickHouse/pull/87545) ([pufit](https://github.com/pufit)). +* S3 テーブルに対してデータスキッピング索引を作成できないようにしました。 [#87554](https://github.com/ClickHouse/ClickHouse/pull/87554) ([Bharat Nallan](https://github.com/bharatnc)). +* 非同期ロギングにおいてトラッキングされているメモリがリークし(10時間で約100GiBに達する大きなドリフトが発生しうる)、`text_log` においてもほぼ同程度のドリフトが発生しうる問題を回避しました。 [#87584](https://github.com/ClickHouse/ClickHouse/pull/87584) ([Azat Khuzhin](https://github.com/azat))。 +* View または Materialized View の SELECT の設定によってグローバルなサーバー設定が上書きされてしまう可能性があったバグを修正しました。この問題は、当該 View が非同期に削除され、バックグラウンドのクリーンアップが完了する前にサーバーが再起動された場合に発生する可能性がありました。 [#87603](https://github.com/ClickHouse/ClickHouse/pull/87603) ([Alexander Tokmakov](https://github.com/tavplubix))。 +* メモリ過負荷警告を計算する際、可能であればユーザースペースページキャッシュのバイト数を除外するように修正しました。 [#87610](https://github.com/ClickHouse/ClickHouse/pull/87610) ([Bharat Nallan](https://github.com/bharatnc)). +* CSV デシリアライズ時の型の並びが誤っていると `LOGICAL_ERROR` が発生していたバグを修正しました。 [#87622](https://github.com/ClickHouse/ClickHouse/pull/87622) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* 実行可能ディクショナリに対する `command_read_timeout` の処理が誤っていた問題を修正。[#87627](https://github.com/ClickHouse/ClickHouse/pull/87627) ([Azat Khuzhin](https://github.com/azat))。 +* 新しい analyzer 使用時に、置換されたカラムでフィルタリングした場合、WHERE 句における SELECT * REPLACE の動作が誤っていた問題を修正しました。 [#87630](https://github.com/ClickHouse/ClickHouse/pull/87630) ([xiaohuanlin](https://github.com/xiaohuanlin)). +* `Distributed` テーブル上で `Merge` を使用した場合の二段階集約処理を修正しました。 [#87687](https://github.com/ClickHouse/ClickHouse/pull/87687) ([c-end](https://github.com/c-end)). +* 右側の行リストが使用されていない場合の HashJoin アルゴリズムにおける出力ブロックの生成を修正。 [#87401](https://github.com/ClickHouse/ClickHouse/issues/87401) を修正。 [#87699](https://github.com/ClickHouse/ClickHouse/pull/87699) ([Dmitry Novik](https://github.com/novikd))。 +* 索引解析を適用した結果、読み取るデータが存在しない場合に、誤った並列レプリカ読み取りモードが選択されてしまう可能性がありました。 [#87653](https://github.com/ClickHouse/ClickHouse/issues/87653) をクローズしました。 [#87700](https://github.com/ClickHouse/ClickHouse/pull/87700) ([zoomxi](https://github.com/zoomxi)). +* Glue における `timestamp` / `timestamptz` カラムの処理を修正。 [#87733](https://github.com/ClickHouse/ClickHouse/pull/87733) ([Andrey Zvonov](https://github.com/zvonand)). +* この変更により、[#86587](https://github.com/ClickHouse/ClickHouse/issues/86587) がクローズされました。 [#87761](https://github.com/ClickHouse/ClickHouse/pull/87761)([scanhex12](https://github.com/scanhex12))。 +* PostgreSQL インターフェースでの boolean 値の書き込みを修正。 [#87762](https://github.com/ClickHouse/ClickHouse/pull/87762) ([Artem Yurov](https://github.com/ArtemYurov))。 +* CTE を含む INSERT SELECT クエリで発生していた不明なテーブルに関するエラーを修正。[#85368](https://github.com/ClickHouse/ClickHouse/issues/85368)。[#87789](https://github.com/ClickHouse/ClickHouse/pull/87789)([Guang Zhao](https://github.com/zheguang))。 +* Nullable 内に含められない Variants から NULL な map サブカラムを読み取る処理を修正。 [#87798](https://github.com/ClickHouse/ClickHouse/pull/87798) ([Pavel Kruglov](https://github.com/Avogar)). +* セカンダリノードでクラスタ上のデータベースを完全に削除できなかった場合のエラー処理を修正。 [#87802](https://github.com/ClickHouse/ClickHouse/pull/87802) ([Tuan Pham Anh](https://github.com/tuanpach)). +* 複数の skip index 関連のバグを修正。 [#87817](https://github.com/ClickHouse/ClickHouse/pull/87817) ([Raúl Marín](https://github.com/Algunenano))。 +* AzureBlobStorage において、まずネイティブコピーを試行し、'Unauthroized' エラーが発生した場合に読み書きでのコピーに切り替えるように更新しました(AzureBlobStorage で、ソースとデスティネーションでストレージアカウントが異なる場合、'Unauthorized' エラーが発生します)。また、構成でエンドポイントが定義されている場合に "use_native_copy" が適用されない問題を修正しました。 [#87826](https://github.com/ClickHouse/ClickHouse/pull/87826) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). +* ArrowStream ファイルに一意でない Dictionary が含まれている場合、ClickHouse がクラッシュする問題がありました。 [#87863](https://github.com/ClickHouse/ClickHouse/pull/87863) ([Ilya Golshtein](https://github.com/ilejn)). +* approx_top_k および finalizeAggregation 使用時に発生する致命的な不具合を修正。 [#87892](https://github.com/ClickHouse/ClickHouse/pull/87892) ([Jitendra](https://github.com/jitendra1411)). +* 最後のブロックが空の場合に、プロジェクション付きマージが正しく行われない不具合を修正しました。 [#87928](https://github.com/ClickHouse/ClickHouse/pull/87928) ([Raúl Marín](https://github.com/Algunenano)). +* 引数型が GROUP BY で許可されていない場合に、GROUP BY から単射関数を削除しないようにしました。 [#87958](https://github.com/ClickHouse/ClickHouse/pull/87958) ([Pavel Kruglov](https://github.com/Avogar)). +* `session_timezone` SETTING をクエリで使用した場合に、datetime ベースのキーに対する granule/パーティションの除外処理が正しく行われない問題を修正。 [#87987](https://github.com/ClickHouse/ClickHouse/pull/87987) ([Eduard Karacharov](https://github.com/korowa))。 +* PostgreSQL インターフェイスで、クエリ実行後に影響を受けた行数を返すようになりました。 [#87990](https://github.com/ClickHouse/ClickHouse/pull/87990) ([Artem Yurov](https://github.com/ArtemYurov)). +* 誤った結果を引き起こす可能性があるため、PASTE JOIN に対するフィルタープッシュダウンの利用を制限しました。 [#88078](https://github.com/ClickHouse/ClickHouse/pull/88078) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* [https://github.com/ClickHouse/ClickHouse/pull/84503](https://github.com/ClickHouse/ClickHouse/pull/84503) で導入された権限チェックに対し、評価を行う前に URI の正規化を適用します。[#88089](https://github.com/ClickHouse/ClickHouse/pull/88089)([pufit](https://github.com/pufit))。 +* 新しいアナライザで ARRAY JOIN COLUMNS() がどのカラムにも一致しない場合に発生していた論理エラーを修正。 [#88091](https://github.com/ClickHouse/ClickHouse/pull/88091) ([xiaohuanlin](https://github.com/xiaohuanlin)). +* "High ClickHouse memory usage" 警告を、ページキャッシュを除外するように修正。 [#88092](https://github.com/ClickHouse/ClickHouse/pull/88092) ([Azat Khuzhin](https://github.com/azat)). +* `MergeTree` テーブルにカラム TTL が設定されている場合に発生しうるデータ破損を修正しました。 [#88095](https://github.com/ClickHouse/ClickHouse/pull/88095) ([Anton Popov](https://github.com/CurtizJ))。 +* 外部データベース(`PostgreSQL`/`SQLite`/...)に不正なテーブルが接続されている状態で `system.tables` を読み込む際に発生しうる未処理例外を修正。 [#88105](https://github.com/ClickHouse/ClickHouse/pull/88105) ([Azat Khuzhin](https://github.com/azat))。 +* 空のタプルを引数として呼び出した場合に `mortonEncode` および `hilbertEncode` 関数がクラッシュする不具合を修正しました。[#88110](https://github.com/ClickHouse/ClickHouse/pull/88110) ([xiaohuanlin](https://github.com/xiaohuanlin)). +* クラスタ内に非アクティブなレプリカが存在する場合でも、`ON CLUSTER` クエリがより短い時間で完了するようになりました。 [#88153](https://github.com/ClickHouse/ClickHouse/pull/88153) ([alesapin](https://github.com/alesapin)). +* DDL worker がレプリカの Set から古くなったホストをクリーンアップするようになりました。これにより ZooKeeper に保存されるメタデータの量が削減されます。 [#88154](https://github.com/ClickHouse/ClickHouse/pull/88154) ([alesapin](https://github.com/alesapin)). +* cgroups を使用しない環境で ClickHouse を実行できない問題を修正しました(誤って cgroups が非同期メトリクスの必須要件になっていました)。 [#88164](https://github.com/ClickHouse/ClickHouse/pull/88164) ([Azat Khuzhin](https://github.com/azat)). +* エラー発生時にディレクトリ移動操作を正しくロールバックできるようにしました。ルートだけでなく、実行中に変更されたすべての `prefix.path` オブジェクトを書き換える必要があります。 [#88198](https://github.com/ClickHouse/ClickHouse/pull/88198) ([Mikhail Artemenko](https://github.com/Michicosun)). +* `ColumnLowCardinality` における `is_shared` フラグの伝播を修正しました。これは、ハッシュ値がすでに計算されて `ReverseIndex` にキャッシュされた後で、新しい値がカラムに挿入された場合に、誤った GROUP BY の結果をもたらす可能性がありました。 [#88213](https://github.com/ClickHouse/ClickHouse/pull/88213) ([Nikita Taranov](https://github.com/nickitat))。 +* ワークロード設定 `max_cpu_share` を修正しました。これにより、ワークロード設定 `max_cpus` が指定されていなくても使用できるようになりました。 [#88217](https://github.com/ClickHouse/ClickHouse/pull/88217) ([Neerav](https://github.com/neeravsalaria)). +* サブクエリを含む非常に重い mutation が prepare 段階でスタックしてしまう不具合を修正しました。これらの mutation は `SYSTEM STOP MERGES` で停止できるようになりました。 [#88241](https://github.com/ClickHouse/ClickHouse/pull/88241) ([alesapin](https://github.com/alesapin)). +* これで相関サブクエリがオブジェクトストレージでも動作するようになりました。 [#88290](https://github.com/ClickHouse/ClickHouse/pull/88290) ([alesapin](https://github.com/alesapin)). +* `system.projections` および `system.data_skipping_indices` にアクセス中は DataLake データベースの初期化を行わないようにしました。 [#88330](https://github.com/ClickHouse/ClickHouse/pull/88330) ([Azat Khuzhin](https://github.com/azat))。 +* `show_data_lake_catalogs_in_system_tables` が明示的に有効化されている場合にのみ、データレイクのカタログが system のイントロスペクション用テーブルに表示されるようになりました。 [#88341](https://github.com/ClickHouse/ClickHouse/pull/88341) ([alesapin](https://github.com/alesapin)). +* DatabaseReplicated が `interserver_http_host` 設定に正しく従うように修正しました。 [#88378](https://github.com/ClickHouse/ClickHouse/pull/88378) ([xiaohuanlin](https://github.com/xiaohuanlin))。 +* 位置引数は、内部クエリ段階では妥当ではないため、PROJECTION を定義するコンテキストでは明示的に無効になりました。これにより [#48604](https://github.com/ClickHouse/ClickHouse/issues/48604) が修正されました。 [#88380](https://github.com/ClickHouse/ClickHouse/pull/88380) ([Amos Bird](https://github.com/amosbird))。 +* `countMatches` 関数が二乗時間の計算量になっていた問題を修正しました。 [#88400](https://github.com/ClickHouse/ClickHouse/issues/88400) をクローズしました。 [#88401](https://github.com/ClickHouse/ClickHouse/pull/88401)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* KeeperMap テーブルに対する `ALTER COLUMN ... COMMENT` コマンドがレプリケートされ、Replicated データベースのメタデータにコミットされてすべてのレプリカに伝播されるようにしました。[#88077](https://github.com/ClickHouse/ClickHouse/issues/88077) をクローズ。 [#88408](https://github.com/ClickHouse/ClickHouse/pull/88408)([Eduard Karacharov](https://github.com/korowa))。 +* Database Replicated データベースにおける Materialized Views で、誤った循環依存が検出され、新しいレプリカをデータベースに追加できなくなっていた問題を修正しました。 [#88423](https://github.com/ClickHouse/ClickHouse/pull/88423) ([Nikolay Degterinsky](https://github.com/evillique)). +* `group_by_overflow_mode` が `any` に設定されている場合のスパースなカラムの集計処理を修正しました。 [#88440](https://github.com/ClickHouse/ClickHouse/pull/88440) ([Eduard Karacharov](https://github.com/korowa))。 +* 複数の FULL JOIN USING 句と `query_plan_use_logical_join_step=0` を併用した場合に「column not found」エラーが発生する問題を修正しました。[#88103](https://github.com/ClickHouse/ClickHouse/issues/88103) をクローズしました。[#88473](https://github.com/ClickHouse/ClickHouse/pull/88473)([Vladimir Cherkasov](https://github.com/vdimir))。 +* ノード数が 10 を超える大規模クラスタでは、`[941] 67c45db4-4df4-4879-87c5-25b8d1e0d414 <Trace>: RestoreCoordinationOnCluster The version of node /clickhouse/backups/restore-7c551a77-bd76-404c-bad0-3213618ac58e/stage/num_hosts changed (attempt #9), will try again` というエラーにより、復元が失敗する確率が高くなります。`num_hosts` ノードが多数のホストによって同時に上書きされてしまいます。この修正により、試行回数を制御する設定が動的になりました。[#87721](https://github.com/ClickHouse/ClickHouse/issues/87721) をクローズします。[#88484](https://github.com/ClickHouse/ClickHouse/pull/88484)([Mikhail f. Shiryaev](https://github.com/Felixoid))。 +* この PR は 23.8 以前との互換性を確保するためだけのものです。互換性の問題はこの PR によって導入されました: [https://github.com/ClickHouse/ClickHouse/pull/54240](https://github.com/ClickHouse/ClickHouse/pull/54240)。この SQL は `enable_analyzer=0` の場合に失敗します(23.8 より前では問題ありませんでした)。[#88491](https://github.com/ClickHouse/ClickHouse/pull/88491) ([JIaQi](https://github.com/JiaQiTang98))。 +* 大きな値を DateTime に変換する際の `accurateCast` エラーメッセージで発生する UBSAN の整数オーバーフローを修正しました。 [#88520](https://github.com/ClickHouse/ClickHouse/pull/88520) ([xiaohuanlin](https://github.com/xiaohuanlin)). +* タプル型に対する CoalescingMergeTree を修正しました。これにより [#88469](https://github.com/ClickHouse/ClickHouse/issues/88469) がクローズされました。 [#88526](https://github.com/ClickHouse/ClickHouse/pull/88526)([scanhex12](https://github.com/scanhex12))。 +* `iceberg_format_version=1` に対する DELETE 操作を禁止しました。これにより [#88444](https://github.com/ClickHouse/ClickHouse/issues/88444) がクローズされました。 [#88532](https://github.com/ClickHouse/ClickHouse/pull/88532) ([scanhex12](https://github.com/scanhex12)). +* このパッチでは、フォルダ階層の深さに依存せずに `plain-rewritable` ディスクを移動する操作の不具合を修正します。 [#88586](https://github.com/ClickHouse/ClickHouse/pull/88586) ([Mikhail Artemenko](https://github.com/Michicosun))。 +* `*cluster` 関数における SQL SECURITY DEFINER の動作を修正しました。 [#88588](https://github.com/ClickHouse/ClickHouse/pull/88588) ([Julian Maicher](https://github.com/jmaicher)). +* 内部の const PREWHERE カラムが同時に変更されることで発生し得るクラッシュを修正しました。 [#88605](https://github.com/ClickHouse/ClickHouse/pull/88605) ([Azat Khuzhin](https://github.com/azat)). +* テキスト索引からの読み取りを修正し、`use_skip_indexes_on_data_read` および `use_query_condition_cache` 設定が有効な場合にクエリ条件キャッシュを利用できるようにしました。 [#88660](https://github.com/ClickHouse/ClickHouse/pull/88660) ([Anton Popov](https://github.com/CurtizJ)). +* `Poco::Net::HTTPChunkedStreamBuf::readFromDevice` からスローされる `Poco::TimeoutException` 例外が原因で SIGABRT によるクラッシュが発生する問題を修正。 [#88668](https://github.com/ClickHouse/ClickHouse/pull/88668) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* [#88910](https://github.com/ClickHouse/ClickHouse/issues/88910) にバックポートされました: リカバリ後、Replicated データベースのレプリカが長時間にわたり `Failed to marked query-0004647339 as finished (finished=No node, synced=No node)` のようなメッセージを出力し続けてスタックした状態になることがありましたが、この問題は修正されました。 [#88671](https://github.com/ClickHouse/ClickHouse/pull/88671) ([Alexander Tokmakov](https://github.com/tavplubix))。 +* 設定を再読み込みした後に ClickHouse が初回接続を行う場合に、`system.zookeeper_connection_log` へ追記できない問題を修正。 [#88728](https://github.com/ClickHouse/ClickHouse/pull/88728) ([Antonio Andelic](https://github.com/antonio2368))。 +* `date_time_overflow_behavior = 'saturate'` を使用して DateTime64 を Date に変換する際、タイムゾーンを扱う場合に範囲外の値に対して誤った結果となる可能性があった不具合を修正しました。 [#88737](https://github.com/ClickHouse/ClickHouse/pull/88737) ([Manuel](https://github.com/raimannma)). +* キャッシュを有効にした S3 テーブルエンジンで発生する「having zero bytes」エラーを修正する N 回目の試み。 [#88740](https://github.com/ClickHouse/ClickHouse/pull/88740) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `loop` テーブル関数に対する SELECT 時のアクセス検証を修正しました。 [#88802](https://github.com/ClickHouse/ClickHouse/pull/88802) ([pufit](https://github.com/pufit)). +* 非同期ロギングが失敗した際に例外を捕捉して、プログラムが異常終了しないようにしました。 [#88814](https://github.com/ClickHouse/ClickHouse/pull/88814) ([Raúl Marín](https://github.com/Algunenano)). +* [#89060](https://github.com/ClickHouse/ClickHouse/issues/89060) にバックポート: 単一の引数で呼び出されたときに `top_k` が threshold パラメータを正しく反映するように修正。[#88757](https://github.com/ClickHouse/ClickHouse/issues/88757) をクローズ。[#88867](https://github.com/ClickHouse/ClickHouse/pull/88867)([Manuel](https://github.com/raimannma))。 +* [#88944](https://github.com/ClickHouse/ClickHouse/issues/88944) にバックポートされました: 関数 `reverseUTF8` のバグを修正しました。以前のバージョンでは、長さ 4 の UTF-8 コードポイントのバイト列を誤って反転していました。これにより [#88913](https://github.com/ClickHouse/ClickHouse/issues/88913) がクローズされます。 [#88914](https://github.com/ClickHouse/ClickHouse/pull/88914)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* [#88980](https://github.com/ClickHouse/ClickHouse/issues/88980) にバックポート: SQL SECURITY DEFINER 付きでビューを作成する際に、`SET DEFINER :definer` へのアクセス権を検査しないようにしました。[#88968](https://github.com/ClickHouse/ClickHouse/pull/88968)([pufit](https://github.com/pufit))。 +* [#89058](https://github.com/ClickHouse/ClickHouse/issues/89058) にバックポート済み: 部分的な `QBit` 読み取りの最適化により、`p` が `Nullable` の場合に戻り値の型から誤って `Nullable` が削除されてしまっていた `L2DistanceTransposed(vec1, vec2, p)` 内の `LOGICAL_ERROR` を修正しました。[#88974](https://github.com/ClickHouse/ClickHouse/pull/88974)([Raufs Dunamalijevs](https://github.com/rienath))。 +* [#89167](https://github.com/ClickHouse/ClickHouse/issues/89167) にバックポート済み: 不明なカタログタイプにより発生するクラッシュを修正。 [#88819](https://github.com/ClickHouse/ClickHouse/issues/88819) を解決。 [#88987](https://github.com/ClickHouse/ClickHouse/pull/88987)([scanhex12](https://github.com/scanhex12))。 +* [#89028](https://github.com/ClickHouse/ClickHouse/issues/89028) にバックポート済み: スキップインデックスの解析で発生していたパフォーマンス低下を修正しました。[#89004](https://github.com/ClickHouse/ClickHouse/pull/89004) ([Anton Popov](https://github.com/CurtizJ))。 + +#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement} + +* `postgres` ライブラリのバージョン 18.0 を使用。 [#87647](https://github.com/ClickHouse/ClickHouse/pull/87647) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* FreeBSD 向けに ICU を有効化。 [#87891](https://github.com/ClickHouse/ClickHouse/pull/87891) ([Raúl Marín](https://github.com/Algunenano)). +* 動的ディスパッチを SSE 4 ではなく SSE 4.2 に対して行っている場合には、SSE 4.2 を使用。 [#88029](https://github.com/ClickHouse/ClickHouse/pull/88029) ([Raúl Marín](https://github.com/Algunenano)). +* `Speculative Store Bypass Safe` が利用できない場合に `NO_ARMV81_OR_HIGHER` フラグを必須にしない。 [#88051](https://github.com/ClickHouse/ClickHouse/pull/88051) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* ClickHouse が `ENABLE_LIBFIU=OFF` でビルドされている場合、failpoint 関連の関数は no-op(何もしない処理)となり、パフォーマンスに影響しなくなる。この場合、`SYSTEM ENABLE/DISABLE FAILPOINT` クエリは `SUPPORT_IS_DISABLED` エラーを返す。 [#88184](https://github.com/ClickHouse/ClickHouse/pull/88184) ([c-end](https://github.com/c-end)). + +### ClickHouse リリース 25.9、2025-09-25 {#259} + +#### 非互換の変更 {#backward-incompatible-change} + +* IPv4/IPv6 に対する意味のない二項演算を無効化しました: IPv4/IPv6 と非整数型との加算 / 減算は無効になりました。以前は浮動小数点型との演算を許可し、一部の他の型(たとえば DateTime)では論理エラーを投げていました。 [#86336](https://github.com/ClickHouse/ClickHouse/pull/86336) ([Raúl Marín](https://github.com/Algunenano)). +* 設定 `allow_dynamic_metadata_for_data_lakes` を非推奨化しました。現在では、すべての Iceberg テーブルが、各クエリを実行する前にストレージから最新のテーブルスキーマを取得しようとします。 [#86366](https://github.com/ClickHouse/ClickHouse/pull/86366) ([Daniil Ivanik](https://github.com/divanik)). +* `OUTER JOIN ... USING` 句からの coalesced カラムの解決方法を、より一貫性があるように変更しました: 以前は、OUTER JOIN で USING カラムと修飾付きカラム (`a, t1.a, t2.a`) の両方を選択した場合、USING カラムが誤って `t1.a` に解決され、左側に一致がない右テーブルの行に対して 0/NULL を表示していました。現在では、USING 句内の識別子は常に coalesced カラムに解決され、修飾付き識別子は、クエリ内にどの識別子が存在しているかに関係なく、非 coalesced カラムに解決されます。たとえば: ```sql SELECT a, t1.a, t2.a FROM (SELECT 1 as a WHERE 0) t1 FULL JOIN (SELECT 2 as a) t2 USING (a) -- 変更前: a=0, t1.a=0, t2.a=2 (誤り - 'a' が t1.a に解決されている) -- 変更後: a=2, t1.a=0, t2.a=2 (正しい - 'a' は coalesced)。 [#80848](https://github.com/ClickHouse/ClickHouse/pull/80848) ([Vladimir Cherkasov](https://github.com/vdimir)). +* レプリケーテッドテーブルの重複排除ウィンドウを 10000 まで拡大しました。これは後方互換性は保たれていますが、多数のテーブルが存在する状況では、この変更によって高いリソース消費が発生しうるシナリオが想定されます。 [#86820](https://github.com/ClickHouse/ClickHouse/pull/86820) ([Sema Checherinda](https://github.com/CheSema)). + +#### 新機能 {#new-feature} + +* NATS エンジンで新しい `nats_stream` と `nats_consumer` の設定を指定することで、NATS JetStream を利用してメッセージを購読できるようになりました。 [#84799](https://github.com/ClickHouse/ClickHouse/pull/84799) ([Dmitry Novikov](https://github.com/dmitry-sles-novikov)). +* `arrowFlight` テーブル関数に認証および SSL のサポートを追加しました。[#87120](https://github.com/ClickHouse/ClickHouse/pull/87120) ([Vitaly Baranov](https://github.com/vitlibar))。 +* AWS がサポートする Intelligent-Tiering を指定できる `storage_class_name` という名前の新しいパラメータを `S3` テーブルエンジンおよび `s3` テーブル関数に追加しました。キー・バリュー形式と位置指定形式(非推奨)の両方をサポートします。 [#87122](https://github.com/ClickHouse/ClickHouse/pull/87122) ([alesapin](https://github.com/alesapin))。 +* Iceberg テーブルエンジン用の `ALTER UPDATE`。 [#86059](https://github.com/ClickHouse/ClickHouse/pull/86059) ([scanhex12](https://github.com/scanhex12))。 +* SELECT 文で Iceberg メタデータファイルを取得できるように、system テーブル `iceberg_metadata_log` を追加。[#86152](https://github.com/ClickHouse/ClickHouse/pull/86152) ([scanhex12](https://github.com/scanhex12)). +* `Iceberg` および `DeltaLake` テーブルで、ストレージレベルの設定項目 `disk` によるカスタムディスク構成がサポートされるようになりました。 [#86778](https://github.com/ClickHouse/ClickHouse/pull/86778) ([scanhex12](https://github.com/scanhex12)). +* データレイクディスクで Azure をサポートしました。 [#87173](https://github.com/ClickHouse/ClickHouse/pull/87173) ([scanhex12](https://github.com/scanhex12)). +* Azure Blob Storage 上での `Unity` カタログをサポート。[#80013](https://github.com/ClickHouse/ClickHouse/pull/80013)([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 +* `Iceberg` 書き込みで追加のフォーマット(`ORC`、`Avro`)をサポートしました。これにより [#86179](https://github.com/ClickHouse/ClickHouse/issues/86179) が解決されました。 [#87277](https://github.com/ClickHouse/ClickHouse/pull/87277) ([scanhex12](https://github.com/scanhex12))。 +* データベース レプリカに関する情報を保持する新しいシステムテーブル `database_replicas` を追加。 [#83408](https://github.com/ClickHouse/ClickHouse/pull/83408) ([Konstantin Morozov](https://github.com/k-morozov)). +* 一方の配列から他方の配列を集合として差し引く関数 `arrayExcept` を追加しました。 [#82368](https://github.com/ClickHouse/ClickHouse/pull/82368) ([Joanna Hulboj](https://github.com/jh0x))。 +* 新しい `system.aggregated_zookeeper_log` テーブルを追加しました。このテーブルには、セッション ID、親パス、オペレーション種別ごとにグループ化された ZooKeeper オペレーションの統計情報(例: オペレーション数、平均レイテンシ、エラー数)が記録されており、定期的にディスクにフラッシュされます。 [#85102](https://github.com/ClickHouse/ClickHouse/pull/85102) [#87208](https://github.com/ClickHouse/ClickHouse/pull/87208) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* 新しい関数 `isValidASCII` を追加しました。入力文字列または FixedString が ASCII バイト(0x00~0x7F)のみから成る場合は 1 を返し、それ以外の場合は 0 を返します。[#85377](https://github.com/ClickHouse/ClickHouse/issues/85377) をクローズしました。... [#85786](https://github.com/ClickHouse/ClickHouse/pull/85786)([rajat mohan](https://github.com/rajatmohan22))。 +* ブール型設定は引数なしで指定できます(例:`SET use_query_cache;`)。これは値を true に設定することと同等です。[#85800](https://github.com/ClickHouse/ClickHouse/pull/85800) ([thraeka](https://github.com/thraeka))。 +* 新しい設定オプション `logger.startupLevel` と `logger.shutdownLevel` により、それぞれ ClickHouse の起動時およびシャットダウン時のログレベルを上書き設定できるようになりました。 [#85967](https://github.com/ClickHouse/ClickHouse/pull/85967) ([Lennard Eijsackers](https://github.com/Blokje5)). +* 集約関数 `timeSeriesChangesToGrid` および `timeSeriesResetsToGrid`。`timeSeriesRateToGrid` と同様に動作し、開始タイムスタンプ、終了タイムスタンプ、ステップ、ルックバックウィンドウのパラメータに加えて、タイムスタンプと値の 2 つの引数を受け取りますが、各ウィンドウごとに少なくとも 1 サンプル(従来の 2 サンプルではなく)を必要とします。PromQL の `changes`/`resets` を計算し、パラメータで定義されたタイムグリッドの各タイムスタンプについて、指定されたウィンドウ内でサンプル値が変化または減少した回数をカウントします。戻り値の型は `Array(Nullable(Float64))` です。 [#86010](https://github.com/ClickHouse/ClickHouse/pull/86010) ([Stephen Chi](https://github.com/stephchi0))。 +* 一時テーブルと同様の構文(`CREATE TEMPORARY VIEW`)を用いて一時ビューを作成できるようになりました。 [#86432](https://github.com/ClickHouse/ClickHouse/pull/86432) ([Aly Kafoury](https://github.com/AlyHKafoury))。 +* CPU およびメモリ使用量に関する警告を `system.warnings` テーブルに追加。 [#86838](https://github.com/ClickHouse/ClickHouse/pull/86838) ([Bharat Nallan](https://github.com/bharatnc))。 +* `Protobuf` 入力で `oneof` インジケータをサポートしました。oneof の一部の存在を示すための特別なカラムを使用できます。メッセージに [oneof](https://protobuf.dev/programming-guides/proto3/#oneof) が含まれていて、`input_format_protobuf_oneof_presence` が設定されている場合、ClickHouse はどの oneof フィールドが見つかったかを示すカラムを設定します。[#82885](https://github.com/ClickHouse/ClickHouse/pull/82885)([Ilya Golshtein](https://github.com/ilejn))。 +* jemalloc の内部ツールに基づくアロケーションプロファイリングを改善しました。グローバル jemalloc プロファイラは、`jemalloc_enable_global_profiler` 設定で有効化できるようになりました。サンプリングされたグローバルなアロケーションおよびデアロケーションは、`jemalloc_collect_global_profile_samples_in_trace_log` 設定を有効にすることで、`JemallocSample` 型として `system.trace_log` に保存できます。jemalloc プロファイリングは、`jemalloc_enable_profiler` SETTING を用いてクエリごとに有効化できるようになりました。`system.trace_log` へのサンプル保存は、`jemalloc_collect_profile_samples_in_trace_log` SETTING を用いてクエリ単位で制御できます。jemalloc をより新しいバージョンに更新しました。 [#85438](https://github.com/ClickHouse/ClickHouse/pull/85438) ([Antonio Andelic](https://github.com/antonio2368))。 +* Iceberg テーブルを `DROP` した際にファイルを削除するための新しい設定を追加しました。これにより [#86211](https://github.com/ClickHouse/ClickHouse/issues/86211) がクローズされました。 [#86501](https://github.com/ClickHouse/ClickHouse/pull/86501) ([scanhex12](https://github.com/scanhex12))。 + +#### 実験的機能 {#experimental-feature} + +* 反転テキスト索引を、RAM に収まりきらない規模のデータセットにもスケールするよう、ゼロから再設計しました。 [#86485](https://github.com/ClickHouse/ClickHouse/pull/86485) ([Anton Popov](https://github.com/CurtizJ)). +* 結合の並べ替えで統計情報を使用するようになりました。この機能は `allow_statistics_optimize = 1` と `query_plan_optimize_join_order_limit = 10` を設定することで有効化できます。 [#86822](https://github.com/ClickHouse/ClickHouse/pull/86822) ([Han Fei](https://github.com/hanfei1991)). +* `alter table ... materialize statistics all` 構文をサポートし、テーブルのすべての統計情報をマテリアライズできるようにしました。 [#87197](https://github.com/ClickHouse/ClickHouse/pull/87197) ([Han Fei](https://github.com/hanfei1991)). + +#### パフォーマンスの向上 {#performance-improvement} + +* 読み取り時にスキップ索引を用いてデータパーツをフィルタリングし、不要な索引読み取りを削減できるようにしました。新しい設定 `use_skip_indexes_on_data_read` によって制御されます(デフォルトでは無効)。この変更は [#75774](https://github.com/ClickHouse/ClickHouse/issues/75774) に対応するものです。また、[#81021](https://github.com/ClickHouse/ClickHouse/issues/81021) と共通の基盤となる実装も含まれています。 [#81526](https://github.com/ClickHouse/ClickHouse/pull/81526) ([Amos Bird](https://github.com/amosbird))。 +* `query_plan_optimize_join_order_limit` セtting によって制御される、JOIN を自動で並べ替えてパフォーマンスを向上させる JOIN order optimization を追加しました。なお、現時点での JOIN order optimization は統計情報のサポートが限定的であり、主にストレージエンジンからの行数推定に依存しています。より高度な統計情報の収集およびカーディナリティ推定は、今後のリリースで追加される予定です。**アップグレード後に JOIN クエリで問題が発生した場合** は、一時的な回避策として `SET query_plan_use_new_logical_join_step = 0` を設定して新しい実装を無効化し、問題を報告して調査にご協力ください。**USING 句からの識別子解決に関する注意**: `OUTER JOIN ... USING` 句における coalesced カラムの解決方法を、より一貫性のある動作に変更しました。以前は、OUTER JOIN において USING で指定したカラムと修飾付きカラム(`a, t1.a, t2.a`)の両方を選択した場合、USING カラムが誤って `t1.a` に解決され、左テーブルに対応する行がない右テーブルの行について 0/NULL が表示されていました。現在は、USING 句からの識別子は常に coalesced カラムに解決され、修飾付き識別子は、クエリ内に他にどの識別子が存在していても、非 coalesced カラムに解決されます。例: ```sql SELECT a, t1.a, t2.a FROM (SELECT 1 as a WHERE 0) t1 FULL JOIN (SELECT 2 as a) t2 USING (a) -- 変更前: a=0, t1.a=0, t2.a=2 (誤り - 'a' が t1.a に解決されている) -- 変更後: a=2, t1.a=0, t2.a=2 (正しい - 'a' は coalesced)。 [#80848](https://github.com/ClickHouse/ClickHouse/pull/80848) ([Vladimir Cherkasov](https://github.com/vdimir)). +* データレイク向けの分散 `INSERT SELECT`。 [#86783](https://github.com/ClickHouse/ClickHouse/pull/86783) ([scanhex12](https://github.com/scanhex12)). +* `func(primary_column) = 'xx'` や `column in (xxx)` といった条件に対する PREWHERE 最適化を改善しました。[#85529](https://github.com/ClickHouse/ClickHouse/pull/85529) ([李扬](https://github.com/taiyang-li))。 +* JOIN の書き換えを実装しました。1. マッチした行またはマッチしなかった行に対してフィルタ条件が常に偽となる場合、`LEFT ANY JOIN` および `RIGHT ANY JOIN` を `SEMI`/`ANTI` JOIN に変換します。この最適化は、新しい設定 `query_plan_convert_any_join_to_semi_or_anti_join` によって制御されます。2. 片側のマッチしなかった行に対してフィルタ条件が常に偽となる場合、`FULL ALL JOIN` を `LEFT ALL` または `RIGHT ALL` JOIN に変換します。 [#86028](https://github.com/ClickHouse/ClickHouse/pull/86028) ([Dmitry Novik](https://github.com/novikd))。 +* 論理削除の実行後における vertical merge の性能を改善しました。 [#86169](https://github.com/ClickHouse/ClickHouse/pull/86169) ([Anton Popov](https://github.com/CurtizJ)). +* `LEFT/RIGHT` join において非マッチの行が多数ある場合の `HashJoin` のパフォーマンスをわずかに最適化しました。 [#86312](https://github.com/ClickHouse/ClickHouse/pull/86312) ([Nikita Taranov](https://github.com/nickitat))。 +* Radix sort:コンパイラが SIMD を利用し、より効率的にプリフェッチできるようにしました。Intel CPU の場合にのみソフトウェアプリフェッチを使用するため、dynamic dispatch を用いています。[https://github.com/ClickHouse/ClickHouse/pull/77029](https://github.com/ClickHouse/ClickHouse/pull/77029) における @taiyang-li の作業を継続したものです。[#86378](https://github.com/ClickHouse/ClickHouse/pull/86378)([Raúl Marín](https://github.com/Algunenano))。 +* 多数のパーツを含むテーブルに対する短いクエリの実行性能を改善しました(`deque` の代わりに `devector` を使用して `MarkRanges` を最適化)。[#86933](https://github.com/ClickHouse/ClickHouse/pull/86933)([Azat Khuzhin](https://github.com/azat))。 +* `join` モードにおけるパッチパーツ適用処理のパフォーマンスを改善しました。[#87094](https://github.com/ClickHouse/ClickHouse/pull/87094) ([Anton Popov](https://github.com/CurtizJ)). +* `query_condition_cache_selectivity_threshold` という設定(デフォルト値: 1.0)を追加しました。この設定は、選択度が低い述語のスキャン結果を query condition cache への格納対象から除外します。これにより、キャッシュのヒット率が低下する代わりに、query condition cache のメモリ消費量を削減できます。 [#86076](https://github.com/ClickHouse/ClickHouse/pull/86076) ([zhongyuankai](https://github.com/zhongyuankai)). +* Iceberg への書き込み時のメモリ使用量を削減しました。 [#86544](https://github.com/ClickHouse/ClickHouse/pull/86544) ([scanhex12](https://github.com/scanhex12)). + +#### 改良 {#improvement} + +* 単一の挿入操作で Iceberg に複数のデータファイルを書き込めるようになりました。上限を制御するための新しい設定 `iceberg_insert_max_rows_in_data_file` と `iceberg_insert_max_bytes_in_data_file` を追加しました。 [#86275](https://github.com/ClickHouse/ClickHouse/pull/86275) ([scanhex12](https://github.com/scanhex12)). +* Delta Lake に挿入されるデータファイルに対して行数およびバイト数の上限を追加しました。`delta_lake_insert_max_rows_in_data_file` および `delta_lake_insert_max_bytes_in_data_file` の設定で制御できます。 [#86357](https://github.com/ClickHouse/ClickHouse/pull/86357) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* Iceberg 書き込み時のパーティションで利用できる型をさらにサポートしました。これにより [#86206](https://github.com/ClickHouse/ClickHouse/issues/86206) がクローズされました。 [#86298](https://github.com/ClickHouse/ClickHouse/pull/86298)([scanhex12](https://github.com/scanhex12))。 +* S3 のリトライポリシーを設定可能にし、config XML ファイルを変更した際に S3 ディスクの設定をホットリロードできるようにしました。 [#82642](https://github.com/ClickHouse/ClickHouse/pull/82642) ([RinChanNOW](https://github.com/RinChanNOWWW)). +* S3(Azure)Queue テーブルエンジンを改善し、ZooKeeper への接続が失われても重複を発生させることなく処理を継続できるようにしました。S3Queue の `use_persistent_processing_nodes` 設定を有効にする必要があります(`ALTER TABLE MODIFY SETTING` により変更可能)。[#85995](https://github.com/ClickHouse/ClickHouse/pull/85995)([Kseniia Sumarokova](https://github.com/kssenii))。 +* materialized view を作成する際に、`TO` 句の後ろでクエリパラメータを使用できるようになりました。例えば、`CREATE MATERIALIZED VIEW mv TO {to_table:Identifier} AS SELECT * FROM src_table` のように指定します。[#84899](https://github.com/ClickHouse/ClickHouse/pull/84899) ([Diskein](https://github.com/Diskein))。 +* `Kafka2` テーブルエンジンに誤った設定が指定された場合に表示されるユーザー向けの指示を、より明確になるよう改善しました。 [#83701](https://github.com/ClickHouse/ClickHouse/pull/83701) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* `Time` 型に対してタイムゾーンを指定することはできなくなりました(そもそも意味がないためです)。 [#84689](https://github.com/ClickHouse/ClickHouse/pull/84689) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* `best_effort` モードでの Time/Time64 型のパースに関連するロジックを簡素化し、一部のバグを回避しました。 [#84730](https://github.com/ClickHouse/ClickHouse/pull/84730) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* `deltaLakeAzure` と同様にクラスターモード対応の関数として `deltaLakeAzureCluster` 関数を追加し、`deltaLakeCluster` のエイリアスとして `deltaLakeS3Cluster` 関数を追加しました。 [#85358](https://github.com/ClickHouse/ClickHouse/issues/85358) を解決しました。 [#85547](https://github.com/ClickHouse/ClickHouse/pull/85547)([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 +* 通常のコピー操作に対してもバックアップ時と同様に `azure_max_single_part_copy_size` 設定を適用するようにしました。 [#85767](https://github.com/ClickHouse/ClickHouse/pull/85767) ([Ilya Golshtein](https://github.com/ilejn)). +* S3 オブジェクトストレージで再試行可能なエラーが発生した場合に、S3 クライアントスレッドを減速させるようにしました。これにより、既存の設定 `backup_slow_all_threads_after_retryable_s3_error` が S3 ディスクにも適用され、より汎用的な名前 `s3_slow_all_threads_after_retryable_error` に変更されました。 [#85918](https://github.com/ClickHouse/ClickHouse/pull/85918) ([Julia Kartseva](https://github.com/jkartseva)). +* 設定項目 allow_experimental_variant/dynamic/json および enable_variant/dynamic/json を非推奨としてマークしました。現在は、これら 3 種類の型はすべて無条件に有効になっています。 [#85934](https://github.com/ClickHouse/ClickHouse/pull/85934) ([Pavel Kruglov](https://github.com/Avogar)). +* `http_handlers` で、スキーマおよびホスト名:ポートを含む完全な URL 文字列(`full_url` ディレクティブ)によるフィルタリングをサポートしました。 [#86155](https://github.com/ClickHouse/ClickHouse/pull/86155) ([Azat Khuzhin](https://github.com/azat)). +* 新しい設定 `allow_experimental_delta_lake_writes` を追加。[#86180](https://github.com/ClickHouse/ClickHouse/pull/86180)([Kseniia Sumarokova](https://github.com/kssenii))。 +* init.d スクリプトでの systemd の検出ロジックを修正し、「Install packages」チェックが失敗する問題を解消しました。 [#86187](https://github.com/ClickHouse/ClickHouse/pull/86187) ([Azat Khuzhin](https://github.com/azat)). +* 新しい `startup_scripts_failure_reason` 次元メトリクスを追加しました。このメトリクスは、起動スクリプトの失敗につながるさまざまなエラーの種類を区別するために必要です。特にアラート用途では、一時的なエラー(例: `MEMORY_LIMIT_EXCEEDED` や `KEEPER_EXCEPTION`)と一時的ではないエラーを区別する必要があります。 [#86202](https://github.com/ClickHouse/ClickHouse/pull/86202) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* Iceberg テーブルのパーティションで `identity` 関数を省略できるようにしました。 [#86314](https://github.com/ClickHouse/ClickHouse/pull/86314) ([scanhex12](https://github.com/scanhex12)). +* 特定のチャンネルに対してのみ JSON 形式でのログ出力を有効にできるようになりました。これを行うには、`logger.formatting.channel` を `syslog`/`console`/`errorlog`/`log` のいずれかに設定します。 [#86331](https://github.com/ClickHouse/ClickHouse/pull/86331) ([Azat Khuzhin](https://github.com/azat))。 +* `WHERE` 句でネイティブな数値を使用できるようにしました。これらはすでに論理関数の引数としては使用可能でした。これにより、filter push-down や move-to-prewhere といった最適化が容易になります。[#86390](https://github.com/ClickHouse/ClickHouse/pull/86390)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* メタデータが破損している Catalog に対して `SYSTEM DROP REPLICA` を実行した際に発生していたエラーを修正しました。 [#86391](https://github.com/ClickHouse/ClickHouse/pull/86391) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Azure ではアクセス権のプロビジョニングにかなり長い時間がかかる場合があるため、ディスクアクセスチェック(`skip_access_check = 0`)のために追加のリトライを行うようにしました。 [#86419](https://github.com/ClickHouse/ClickHouse/pull/86419) ([Alexander Tokmakov](https://github.com/tavplubix)). +* `timeSeries*()` 関数における staleness window を、左開・右閉の区間としました。 [#86588](https://github.com/ClickHouse/ClickHouse/pull/86588) ([Vitaly Baranov](https://github.com/vitlibar))。 +* `FailedInternal*Query` プロファイルイベントを追加しました。[#86627](https://github.com/ClickHouse/ClickHouse/pull/86627) ([Shane Andrade](https://github.com/mauidude)). +* 設定ファイルで追加した、名前にドットを含むユーザーの処理を修正しました。 [#86633](https://github.com/ClickHouse/ClickHouse/pull/86633) ([Mikhail Koviazin](https://github.com/mkmkme))。 +* クエリのメモリ使用量用の非同期メトリクス(`QueriesMemoryUsage` および `QueriesPeakMemoryUsage`)を追加。 [#86669](https://github.com/ClickHouse/ClickHouse/pull/86669) ([Azat Khuzhin](https://github.com/azat))。 +* `clickhouse-benchmark --precise` フラグを使用すると、QPS やその他のインターバルごとのメトリクスをより正確に計測・レポートできます。クエリの実行時間がレポート間隔 `--delay D` と同程度の場合でも、一貫した QPS を得るのに役立ちます。 [#86684](https://github.com/ClickHouse/ClickHouse/pull/86684) ([Sergei Trifonov](https://github.com/serxa))。 +* 一部のスレッド(merge/mutate、クエリ、materialized view、zookeeper クライアント)により高い/低い優先度を割り当てられるよう、Linux スレッドの nice 値を設定可能にしました。 [#86703](https://github.com/ClickHouse/ClickHouse/pull/86703) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* 競合状態が原因でマルチパートアップロード中に元の例外が失われた場合に発生する、誤解を招きやすい「specified upload does not exist」エラーを修正しました。 [#86725](https://github.com/ClickHouse/ClickHouse/pull/86725) ([Julia Kartseva](https://github.com/jkartseva)). +* `EXPLAIN` クエリにおけるクエリプランの説明文の長さを制限しました。`EXPLAIN` 以外のクエリについてはこの説明文を生成しないようにしました。`query_plan_max_step_description_length` という設定を追加しました。 [#86741](https://github.com/ClickHouse/ClickHouse/pull/86741) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* クエリプロファイラ(`query_profiler_real_time_period_ns` / `query_profiler_cpu_time_period_ns`)向けに、CANNOT_CREATE_TIMER を回避することを目的として、保留中のシグナルを調整できる機能を追加しました。さらに自己診断のために `/proc/self/status` から `SigQ` を収集するようにしました(`ProcessSignalQueueSize` が `ProcessSignalQueueLimit` に近づいている場合、CANNOT_CREATE_TIMER エラーが発生する可能性が高くなります)。 [#86760](https://github.com/ClickHouse/ClickHouse/pull/86760) ([Azat Khuzhin](https://github.com/azat))。 +* Keeper における `RemoveRecursive` リクエストのパフォーマンスを改善しました。 [#86789](https://github.com/ClickHouse/ClickHouse/pull/86789) ([Antonio Andelic](https://github.com/antonio2368)). +* JSON 型データの出力時に `PrettyJSONEachRow` で生成される余分な空白を削除しました。 [#86819](https://github.com/ClickHouse/ClickHouse/pull/86819) ([Pavel Kruglov](https://github.com/Avogar)). +* Plain 書き換え可能ディスクでディレクトリが削除される際に、`prefix.path` の blob サイズを記録するようにしました。 [#86908](https://github.com/ClickHouse/ClickHouse/pull/86908) ([alesapin](https://github.com/alesapin)). +* リモートの ClickHouse インスタンス(ClickHouse Cloud を含む)に対するパフォーマンステストをサポートするようになりました。使用例:`tests/performance/scripts/perf.py tests/performance/math.xml --runs 10 --user <username> --password <password> --host <hostname> --port <port> --secure`。 [#86995](https://github.com/ClickHouse/ClickHouse/pull/86995)([Raufs Dunamalijevs](https://github.com/rienath))。 +* 大量(16MiB超)のメモリを割り当てることが分かっている一部の処理(ソート、非同期挿入、ファイルログ)で、メモリ制限が正しく守られるようにしました。 [#87035](https://github.com/ClickHouse/ClickHouse/pull/87035) ([Azat Khuzhin](https://github.com/azat)). +* `network_compression_method` に設定された値がサポートされている汎用コーデックでない場合に、例外をスローします。 [#87097](https://github.com/ClickHouse/ClickHouse/pull/87097) ([Robert Schulze](https://github.com/rschu1ze)). +* システムテーブル `system.query_cache` は、以前は共有エントリ、または同一のユーザーおよびロールに属する非共有エントリのみを返していましたが、現在は *すべての* クエリ結果キャッシュエントリを返すようになりました。非共有エントリは本来 *クエリ結果* を公開しない設計であり、一方で `system.query_cache` は *クエリ文字列* を返すだけなので問題ありません。これにより、このシステムテーブルの挙動は `system.query_log` により近いものになります。[#87104](https://github.com/ClickHouse/ClickHouse/pull/87104)([Robert Schulze](https://github.com/rschu1ze))。 +* `parseDateTime` 関数で短絡評価を有効にしました。 [#87184](https://github.com/ClickHouse/ClickHouse/pull/87184) ([Pavel Kruglov](https://github.com/Avogar))。 +* `system.parts_columns` に新しいカラム `statistics` を追加。 [#87259](https://github.com/ClickHouse/ClickHouse/pull/87259) ([Han Fei](https://github.com/hanfei1991)). + +#### バグ修正(公式安定版リリースにおけるユーザーに影響する不具合) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* レプリケートされたデータベースおよび内部でレプリケーションされるテーブルに対しては、`ALTER` クエリの結果は発行元ノード上でのみ検証されます。これにより、すでにコミット済みの `ALTER` クエリが他のノードで停止してしまう状況が修正されます。 [#83849](https://github.com/ClickHouse/ClickHouse/pull/83849) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 +* `BackgroundSchedulePool` 内のタスクの種類ごとの数を制限しました。1 つの種類のタスクがすべてのスロットを占有し、他のタスクが飢餓状態になる状況を回避します。また、タスク同士が互いに待ち合うことによるデッドロックも防ぎます。これはサーバー設定 `background_schedule_pool_max_parallel_tasks_per_type_ratio` によって制御されます。 [#84008](https://github.com/ClickHouse/ClickHouse/pull/84008) ([Alexander Tokmakov](https://github.com/tavplubix))。 +* データベースのレプリカをリカバリする際に、テーブルが適切にシャットダウンされるようにしました。不適切なシャットダウンにより、データベースレプリカのリカバリ中に一部のテーブルエンジンで LOGICAL_ERROR が発生する可能性がありました。 [#84744](https://github.com/ClickHouse/ClickHouse/pull/84744) ([Antonio Andelic](https://github.com/antonio2368)). +* データベース名のタイプミス修正用ヒントを生成する際に権限を確認するようにしました。 [#85371](https://github.com/ClickHouse/ClickHouse/pull/85371) ([Dmitry Novik](https://github.com/novikd))。 +* 1. Hive カラムに対する LowCardinality のサポート 2. 仮想カラムより前に Hive カラムを埋める([https://github.com/ClickHouse/ClickHouse/pull/81040](https://github.com/ClickHouse/ClickHouse/pull/81040) に必要)3. Hive で空のフォーマットを指定した場合の LOGICAL_ERROR を修正 [#85528](https://github.com/ClickHouse/ClickHouse/issues/85528) 4. Hive のパーティションカラムのみが存在する場合のチェックを修正 5. すべての Hive カラムがスキーマで指定されていることを検証 6. Hive を用いた parallel_replicas_cluster の部分的な修正 7. Hive ユーティリティの extractKeyValuePairs で順序付きコンテナを使用([https://github.com/ClickHouse/ClickHouse/pull/81040](https://github.com/ClickHouse/ClickHouse/pull/81040) に必要)。[#85538](https://github.com/ClickHouse/ClickHouse/pull/85538)([Arthur Passos](https://github.com/arthurpassos))。 +* `IN` 関数の第 1 引数に対する不要な最適化が行われないようにし、配列マッピング使用時にエラーになることがあった問題を修正。[#85546](https://github.com/ClickHouse/ClickHouse/pull/85546)([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 +* parquet ファイルを書き込む際に、iceberg の source id と parquet 名の対応付けがスキーマに従って調整されていませんでした。この PR では、現在のスキーマではなく、各 iceberg データファイルに対応するスキーマを処理するようにしました。 [#85829](https://github.com/ClickHouse/ClickHouse/pull/85829) ([Daniil Ivanik](https://github.com/divanik)). +* ファイルオープンとは別にファイルサイズを読み取る処理を修正しました。これは、`5.10` リリース以前の Linux カーネルに存在したバグへの対応として導入された [https://github.com/ClickHouse/ClickHouse/pull/33372](https://github.com/ClickHouse/ClickHouse/pull/33372) に関連します。 [#85837](https://github.com/ClickHouse/ClickHouse/pull/85837) ([Konstantin Bogdanov](https://github.com/thevar1able))。 +* ClickHouse Keeper は、カーネルレベルで IPv6 が無効化されているシステム(例: ipv6.disable=1 の RHEL)でも起動に失敗しなくなりました。最初の IPv6 リスナーの起動に失敗した場合は、IPv4 リスナーへのフォールバックを試みるようになりました。 [#85901](https://github.com/ClickHouse/ClickHouse/pull/85901) ([jskong1124](https://github.com/jskong1124)). +* このPRは[#77990](https://github.com/ClickHouse/ClickHouse/issues/77990)をクローズします。globalJoin に TableFunctionRemote の並列レプリカ対応を追加しました。[#85929](https://github.com/ClickHouse/ClickHouse/pull/85929)([zoomxi](https://github.com/zoomxi))。 +* orcschemareader::initializeifneeded() 内のヌルポインタ参照を修正。この PR は次の issue に対応します: [#85292](https://github.com/ClickHouse/ClickHouse/issues/85292) ### ユーザー向け変更のドキュメント項目。[#85951](https://github.com/ClickHouse/ClickHouse/pull/85951) ([yanglongwei](https://github.com/ylw510)). +* FROM 句内の相関サブクエリについて、外側のクエリのカラムを使用している場合にのみ許可するチェックを追加しました。[#85469](https://github.com/ClickHouse/ClickHouse/issues/85469) を修正。[#85402](https://github.com/ClickHouse/ClickHouse/issues/85402) を修正。[#85966](https://github.com/ClickHouse/ClickHouse/pull/85966)([Dmitry Novik](https://github.com/novikd))。 +* 他のカラムの `MATERIALIZED` 式でサブカラムが使用されているカラムに対する `ALTER UPDATE` を修正しました。以前は、式内でサブカラムを使用している `MATERIALIZED` カラムが正しく更新されていませんでした。 [#85985](https://github.com/ClickHouse/ClickHouse/pull/85985) ([Pavel Kruglov](https://github.com/Avogar)). +* PK またはパーティション式で使用されているサブカラムを含むカラムを変更できないようにしました。 [#86005](https://github.com/ClickHouse/ClickHouse/pull/86005) ([Pavel Kruglov](https://github.com/Avogar)). +* DeltaLake ストレージにおいて、デフォルト以外のカラムマッピングモード使用時のサブカラム読み取りの不具合を修正しました。 [#86064](https://github.com/ClickHouse/ClickHouse/pull/86064) ([Kseniia Sumarokova](https://github.com/kssenii)) +* Enum ヒントを含む JSON パスで誤ったデフォルト値が使用されていた問題を修正。 [#86065](https://github.com/ClickHouse/ClickHouse/pull/86065) ([Pavel Kruglov](https://github.com/Avogar))。 +* DataLake hive カタログ URL の解析時に入力をサニタイズするよう修正。[#86018](https://github.com/ClickHouse/ClickHouse/issues/86018) をクローズ。[#86092](https://github.com/ClickHouse/ClickHouse/pull/86092)([rajat mohan](https://github.com/rajatmohan22))。 +* ファイルシステムキャッシュの動的リサイズ中に発生する論理エラーを修正。 [#86122](https://github.com/ClickHouse/ClickHouse/issues/86122) および [https://github.com/ClickHouse/clickhouse-core-incidents/issues/473](https://github.com/ClickHouse/clickhouse-core-incidents/issues/473) をクローズ。 [#86130](https://github.com/ClickHouse/ClickHouse/pull/86130)([Kseniia Sumarokova](https://github.com/kssenii))。 +* DatabaseReplicatedSettings において `logs_to_keep` に `NonZeroUInt64` を使用するようにしました。 [#86142](https://github.com/ClickHouse/ClickHouse/pull/86142) ([Tuan Pham Anh](https://github.com/tuanpach))。 +* テーブル(例: `ReplacingMergeTree`)を `index_granularity_bytes = 0` という設定で作成していた場合、skip index を使用する `FINAL` クエリで例外が発生していました。この例外はすでに修正されています。 [#86147](https://github.com/ClickHouse/ClickHouse/pull/86147) ([Shankar Iyer](https://github.com/shankar-iyer)). +* UB を排除し、Iceberg のパーティション式の解析に関する問題を修正します。 [#86166](https://github.com/ClickHouse/ClickHouse/pull/86166) ([Daniil Ivanik](https://github.com/divanik)). +* 単一の INSERT ステートメント内で const ブロックと non-const ブロックが混在している場合にクラッシュが発生する不具合を修正。 [#86230](https://github.com/ClickHouse/ClickHouse/pull/86230) ([Azat Khuzhin](https://github.com/azat))。 +* SQL からディスクを作成する際、デフォルトで `/etc/metrika.xml` の include を処理するようになりました。 [#86232](https://github.com/ClickHouse/ClickHouse/pull/86232) ([alekar](https://github.com/alekar)). +* String から JSON への変換における accurateCastOrNull/accurateCastOrDefault を修正。 [#86240](https://github.com/ClickHouse/ClickHouse/pull/86240) ([Pavel Kruglov](https://github.com/Avogar)). +* iceberg エンジンで、'/' を含まないディレクトリを扱えるようにしました。 [#86249](https://github.com/ClickHouse/ClickHouse/pull/86249) ([scanhex12](https://github.com/scanhex12)). +* replaceRegex で、FixedString 型の haystack と空の needle の組み合わせで発生していたクラッシュを修正しました。 [#86270](https://github.com/ClickHouse/ClickHouse/pull/86270) ([Raúl Marín](https://github.com/Algunenano)). +* ALTER UPDATE Nullable(JSON) の実行時に発生していたクラッシュを修正。 [#86281](https://github.com/ClickHouse/ClickHouse/pull/86281) ([Pavel Kruglov](https://github.com/Avogar)). +* system.tables で欠落していたカラム定義を修正。 [#86295](https://github.com/ClickHouse/ClickHouse/pull/86295) ([Raúl Marín](https://github.com/Algunenano))。 +* LowCardinality(Nullable(T)) から Dynamic への型キャストを修正。 [#86365](https://github.com/ClickHouse/ClickHouse/pull/86365) ([Pavel Kruglov](https://github.com/Avogar)). +* DeltaLake への書き込み時に発生していた論理エラーを修正。[#86175](https://github.com/ClickHouse/ClickHouse/issues/86175) をクローズ。[#86367](https://github.com/ClickHouse/ClickHouse/pull/86367)([Kseniia Sumarokova](https://github.com/kssenii))。 +* plain_rewritable disk で Azure Blob Storage から空の blob を読み込む際に発生する `416 The range specified is invalid for the current size of the resource. The range specified is invalid for the current size of the resource` エラーを修正しました。 [#86400](https://github.com/ClickHouse/ClickHouse/pull/86400) ([Julia Kartseva](https://github.com/jkartseva)). +* GROUP BY Nullable(JSON) の不具合を修正。 [#86410](https://github.com/ClickHouse/ClickHouse/pull/86410) ([Pavel Kruglov](https://github.com/Avogar)). +* materialized view に関する不具合を修正しました。特定の MV を一度作成して削除した後、同じ名前で再作成すると正しく動作しない場合がありました。 [#86413](https://github.com/ClickHouse/ClickHouse/pull/86413) ([Alexander Tokmakov](https://github.com/tavplubix))。 +* *cluster 関数から読み取る際、すべてのレプリカが利用不能な場合はエラーとするようになりました。 [#86414](https://github.com/ClickHouse/ClickHouse/pull/86414) ([Julian Maicher](https://github.com/jmaicher)). +* `Buffer` テーブルが原因で発生していた `MergesMutationsMemoryTracking` のメモリリークを修正し、`Kafka` などからストリーミングする際の `query_views_log` を修正しました。 [#86422](https://github.com/ClickHouse/ClickHouse/pull/86422) ([Azat Khuzhin](https://github.com/azat)). +* エイリアスストレージで参照しているテーブルを削除した後の `SHOW TABLES` の動作を修正。 [#86433](https://github.com/ClickHouse/ClickHouse/pull/86433) ([RinChanNOW](https://github.com/RinChanNOWWW))。 +* send_chunk_header を有効にした状態で、HTTP プロトコル経由で UDF が呼び出された場合に chunk ヘッダーが欠落していた問題を修正。 [#86469](https://github.com/ClickHouse/ClickHouse/pull/86469) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* jemalloc のプロファイルフラッシュが有効になっている場合に発生する可能性のあるデッドロックを修正。 [#86473](https://github.com/ClickHouse/ClickHouse/pull/86473) ([Azat Khuzhin](https://github.com/azat)). +* DeltaLake テーブルエンジンにおけるサブカラム読み取りの不具合を修正。Closes [#86204](https://github.com/ClickHouse/ClickHouse/issues/86204). [#86477](https://github.com/ClickHouse/ClickHouse/pull/86477) ([Kseniia Sumarokova](https://github.com/kssenii)). +* DDL タスク処理時の衝突を回避するために、ループバックホスト ID を適切に処理するようにしました。. [#86479](https://github.com/ClickHouse/ClickHouse/pull/86479) ([Tuan Pham Anh](https://github.com/tuanpach)). +* numeric/decimal 型のカラムを持つ Postgres データベースエンジンのテーブルにおける detach/attach の問題を修正しました。 [#86480](https://github.com/ClickHouse/ClickHouse/pull/86480) ([Julian Maicher](https://github.com/jmaicher))。 +* getSubcolumnType における未初期化メモリの使用を修正。 [#86498](https://github.com/ClickHouse/ClickHouse/pull/86498) ([Raúl Marín](https://github.com/Algunenano))。 +* 関数 `searchAny` および `searchAll` は、needle が空の状態で呼び出された場合、現在は `true`(いわゆる「すべてにマッチ」)を返すようになりました。以前は `false` を返していました。(issue [#86300](https://github.com/ClickHouse/ClickHouse/issues/86300))。[#86500](https://github.com/ClickHouse/ClickHouse/pull/86500)([Elmi Ahmadov](https://github.com/ahmadov))。 +* 最初のバケットに値がない場合に関数 `timeSeriesResampleToGridWithStaleness()` が正しく動作しない問題を修正しました。 [#86507](https://github.com/ClickHouse/ClickHouse/pull/86507) ([Vitaly Baranov](https://github.com/vitlibar))。 +* `merge_tree_min_read_task_size` を 0 に設定した場合に発生するクラッシュを修正。 [#86527](https://github.com/ClickHouse/ClickHouse/pull/86527) ([yanglongwei](https://github.com/ylw510)). +* 読み取り時に各データファイルのフォーマットをテーブルの引数ではなく Iceberg メタデータから取得するように変更しました。 [#86529](https://github.com/ClickHouse/ClickHouse/pull/86529) ([Daniil Ivanik](https://github.com/divanik)). +* シャットダウン時のログフラッシュ中に発生する例外を無視して SIGSEGV を回避し、シャットダウンをより安全にしました。 [#86546](https://github.com/ClickHouse/ClickHouse/pull/86546) ([Azat Khuzhin](https://github.com/azat)). +* サイズが 0 バイトのパートファイルを含むクエリで Backup データベースエンジンが例外をスローしていた問題を修正。 [#86563](https://github.com/ClickHouse/ClickHouse/pull/86563) ([Max Justus Spransy](https://github.com/maxjustus)). +* send_chunk_header が有効にされていて、HTTP プロトコル経由で UDF が呼び出された場合に chunk ヘッダーが欠落していた問題を修正。 [#86606](https://github.com/ClickHouse/ClickHouse/pull/86606) ([Vladimir Cherkasov](https://github.com/vdimir)). +* keeper セッションの有効期限切れにより発生していた、S3Queue の論理エラー「Expected current processor {} to be equal to {}」を修正。 [#86615](https://github.com/ClickHouse/ClickHouse/pull/86615) ([Kseniia Sumarokova](https://github.com/kssenii)). +* INSERT とプルーニングにおける Null 値の扱いに関するバグを修正しました。これにより [#86407](https://github.com/ClickHouse/ClickHouse/issues/86407) がクローズされました。 [#86630](https://github.com/ClickHouse/ClickHouse/pull/86630) ([scanhex12](https://github.com/scanhex12)). +* Iceberg メタデータキャッシュが無効な場合でも、ファイルシステムキャッシュを無効化しないようにしました。 [#86635](https://github.com/ClickHouse/ClickHouse/pull/86635) ([Daniil Ivanik](https://github.com/divanik)). +* Parquet リーダー v3 において発生していた 'Deadlock in Parquet::ReadManager (single-threaded)' エラーを修正。 [#86644](https://github.com/ClickHouse/ClickHouse/pull/86644) ([Michael Kolupaev](https://github.com/al13n321)). +* ArrowFlight の `listen_host` での IPv6 サポートを修正しました。 [#86664](https://github.com/ClickHouse/ClickHouse/pull/86664) ([Vitaly Baranov](https://github.com/vitlibar))。 +* `ArrowFlight` ハンドラーのシャットダウン処理を修正。この PR は [#86596](https://github.com/ClickHouse/ClickHouse/issues/86596) を修正します。[#86665](https://github.com/ClickHouse/ClickHouse/pull/86665)([Vitaly Baranov](https://github.com/vitlibar))。 +* `describe_compact_output=1` を有効にした分散クエリの問題を修正しました。 [#86676](https://github.com/ClickHouse/ClickHouse/pull/86676) ([Azat Khuzhin](https://github.com/azat)). +* ウィンドウ定義の解析およびクエリパラメータの適用処理を修正。 [#86720](https://github.com/ClickHouse/ClickHouse/pull/86720) ([Azat Khuzhin](https://github.com/azat)). +* `PARTITION BY` を指定してテーブルを作成する際に、パーティションのワイルドカードを使用していないにもかかわらず、以前(25.8 より前)のバージョンでは問題なく動作していたケースで例外 `Partition strategy wildcard can not be used without a '_partition_id' wildcard.` が発生していた問題を修正しました。 [https://github.com/ClickHouse/clickhouse-private/issues/37567](https://github.com/ClickHouse/clickhouse-private/issues/37567) をクローズしました。 [#86748](https://github.com/ClickHouse/ClickHouse/pull/86748)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 並列クエリが単一のロックを取得しようとした際に発生する LogicalError を修正。[#86751](https://github.com/ClickHouse/ClickHouse/pull/86751) ([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 +* RowBinary 入力フォーマットで JSON 共有データに NULL が書き込まれる問題を修正し、ColumnObject に追加の検証をいくつか導入。 [#86812](https://github.com/ClickHouse/ClickHouse/pull/86812) ([Pavel Kruglov](https://github.com/Avogar)). +* 空の Tuple と `LIMIT` の組み合わせ時の順列処理の不具合を修正。 [#86828](https://github.com/ClickHouse/ClickHouse/pull/86828) ([Pavel Kruglov](https://github.com/Avogar)). +* 永続 processing ノード用に個別の keeper ノードを使用しないよう修正しました。修正内容: [https://github.com/ClickHouse/ClickHouse/pull/85995](https://github.com/ClickHouse/ClickHouse/pull/85995)。[#86406](https://github.com/ClickHouse/ClickHouse/issues/86406) をクローズ。[#86841](https://github.com/ClickHouse/ClickHouse/pull/86841)([Kseniia Sumarokova](https://github.com/kssenii))。 +* Replicated データベースにおいて、TimeSeries エンジンテーブルが新しいレプリカの作成を妨げていた問題を修正。 [#86845](https://github.com/ClickHouse/ClickHouse/pull/86845) ([Nikolay Degterinsky](https://github.com/evillique)). +* 特定の Keeper ノードが存在しないタスクがある場合の `system.distributed_ddl_queue` に対するクエリ処理を修正しました。 [#86848](https://github.com/ClickHouse/ClickHouse/pull/86848) ([Antonio Andelic](https://github.com/antonio2368)). +* 解凍済みブロックの末尾でのシーク処理を修正。 [#86906](https://github.com/ClickHouse/ClickHouse/pull/86906) ([Pavel Kruglov](https://github.com/Avogar))。 +* Iceberg Iterator の非同期実行中にスローされる例外を処理しました。 [#86932](https://github.com/ClickHouse/ClickHouse/pull/86932) ([Daniil Ivanik](https://github.com/divanik)). +* 大きな前処理済み XML 設定ファイルの保存処理を修正しました。 [#86934](https://github.com/ClickHouse/ClickHouse/pull/86934) ([c-end](https://github.com/c-end)). +* system.iceberg_metadata_log テーブルで date フィールドの値が正しく設定されない問題を修正。 [#86961](https://github.com/ClickHouse/ClickHouse/pull/86961) ([Daniil Ivanik](https://github.com/divanik)). +* `WHERE` 句付きの `TTL` が無限に再計算される不具合を修正しました。 [#86965](https://github.com/ClickHouse/ClickHouse/pull/86965) ([Anton Popov](https://github.com/CurtizJ)). +* `ROLLUP` および `CUBE` 修飾子を使用した際に `uniqExact` 関数が誤った結果を返す可能性があった不具合を修正しました。 [#87014](https://github.com/ClickHouse/ClickHouse/pull/87014) ([Nikita Taranov](https://github.com/nickitat)). +* `parallel_replicas_for_cluster_functions` 設定が 1 の場合に、`url()` テーブル関数でテーブルスキーマを解決できない問題を修正しました。 [#87029](https://github.com/ClickHouse/ClickHouse/pull/87029) ([Konstantin Bogdanov](https://github.com/thevar1able))。 +* PREWHERE の出力を複数のステップに分割した場合でも正しくキャストされるように修正しました。 [#87040](https://github.com/ClickHouse/ClickHouse/pull/87040) ([Antonio Andelic](https://github.com/antonio2368)). +* `ON CLUSTER` 句を伴う論理更新に関する不具合を修正しました。 [#87043](https://github.com/ClickHouse/ClickHouse/pull/87043) ([Anton Popov](https://github.com/CurtizJ)). +* いくつかの集約関数状態における String 引数との互換性を修正。 [#87049](https://github.com/ClickHouse/ClickHouse/pull/87049) ([Pavel Kruglov](https://github.com/Avogar))。 +* OpenAI から取得したモデル名が正しく渡されていなかった問題を修正しました。 [#87100](https://github.com/ClickHouse/ClickHouse/pull/87100) ([Kaushik Iska](https://github.com/iskakaushik)). +* EmbeddedRocksDB: パスは user_files ディレクトリ配下でなければならない。 [#87109](https://github.com/ClickHouse/ClickHouse/pull/87109) ([Raúl Marín](https://github.com/Algunenano)). +* 25.1 より前のバージョンで作成された KeeperMap テーブルにおいて、DROP クエリ実行後も ZooKeeper にデータが残り続ける問題を修正。 [#87112](https://github.com/ClickHouse/ClickHouse/pull/87112) ([Nikolay Degterinsky](https://github.com/evillique)). +* Parquet 読み込み時の map および array フィールド ID の読み取りを修正。 [#87136](https://github.com/ClickHouse/ClickHouse/pull/87136) ([scanhex12](https://github.com/scanhex12))。 +* 遅延マテリアライゼーションにおいて、配列サイズのサブカラムを持つ配列の読み取りを修正。 [#87139](https://github.com/ClickHouse/ClickHouse/pull/87139) ([Pavel Kruglov](https://github.com/Avogar)). +* Dynamic 型の引数を取る CASE 関数の不具合を修正。 [#87177](https://github.com/ClickHouse/ClickHouse/pull/87177) ([Pavel Kruglov](https://github.com/Avogar)). +* CSV で空文字列から空配列を読み取る処理を修正。[#87182](https://github.com/ClickHouse/ClickHouse/pull/87182) ([Pavel Kruglov](https://github.com/Avogar))。 +* 非相関な `EXISTS` で誤った結果が返る可能性がある問題を修正しました。これは [https://github.com/ClickHouse/ClickHouse/pull/85481](https://github.com/ClickHouse/ClickHouse/pull/85481) で導入された `execute_exists_as_scalar_subquery=1` により不正な動作をするようになっており、`25.8` に影響していました。[#86415](https://github.com/ClickHouse/ClickHouse/issues/86415) を修正します。 [#87207](https://github.com/ClickHouse/ClickHouse/pull/87207)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* iceberg_metadata_log が設定されていない状態でユーザーが Iceberg メタデータのデバッグ情報を取得しようとした場合にエラーをスローするようにし、nullptr 参照アクセスを修正しました。 [#87250](https://github.com/ClickHouse/ClickHouse/pull/87250) ([Daniil Ivanik](https://github.com/divanik)). + +#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement} + +* abseil-cpp 20250814.0 との互換性の問題を修正。https://github.com/abseil/abseil-cpp/issues/1923。 [#85970](https://github.com/ClickHouse/ClickHouse/pull/85970) ([Yuriy Chernyshov](https://github.com/georgthegreat)). +* スタンドアロン WASM lexer のビルドをフラグで切り替えられるよう変更。 [#86505](https://github.com/ClickHouse/ClickHouse/pull/86505) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* `vmull_p64` 命令をサポートしない古い ARM CPU 上での crc32c のビルドを修正。 [#86521](https://github.com/ClickHouse/ClickHouse/pull/86521) ([Pablo Marcos](https://github.com/pamarcos)). +* `openldap` 2.6.10 を使用。 [#86623](https://github.com/ClickHouse/ClickHouse/pull/86623) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* darwin 上で `memalign` をインターセプトしようとしないように修正。 [#86769](https://github.com/ClickHouse/ClickHouse/pull/86769) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* `krb5` 1.22.1-final を使用。 [#86836](https://github.com/ClickHouse/ClickHouse/pull/86836) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* `list-licenses.sh` における Rust crate 名の展開処理を修正。 [#87305](https://github.com/ClickHouse/ClickHouse/pull/87305) ([Konstantin Bogdanov](https://github.com/thevar1able)). + +### ClickHouse 25.8 LTS リリース, 2025-08-28 {#258} + +#### 後方互換性のない変更 {#backward-incompatible-change} + +* JSON 内で異なる型の値を含む配列に対して、名前のない `Tuple` の代わりに `Array(Dynamic)` を推論するように変更しました。以前の挙動を使用するには、設定 `input_format_json_infer_array_of_dynamic_from_array_of_different_types` を無効化してください。 [#80859](https://github.com/ClickHouse/ClickHouse/pull/80859) ([Pavel Kruglov](https://github.com/Avogar)). +* 一貫性とシンプルさのために、S3 レイテンシメトリクスをヒストグラムに移行しました。 [#82305](https://github.com/ClickHouse/ClickHouse/pull/82305) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* ドットを含む識別子が複合識別子としてパースされるのを防ぐため、デフォルト式ではそのような識別子をバッククォートで囲むことを必須にしました。 [#83162](https://github.com/ClickHouse/ClickHouse/pull/83162) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* 遅延マテリアライゼーションは、アナライザ有効時(デフォルト)にのみ有効になるようにしました。これは、アナライザなしの場合の保守を避けるためであり、我々の経験では(例えば条件内で `indexHint()` を使用する場合など)いくつか問題があるためです。 [#83791](https://github.com/ClickHouse/ClickHouse/pull/83791) ([Igor Nikonov](https://github.com/devcrafter)). +* Parquet 出力フォーマットにおいて、`Enum` 型の値をデフォルトで、論理型 `ENUM` を持つ `BYTE_ARRAY` として書き出すようにしました。 [#84169](https://github.com/ClickHouse/ClickHouse/pull/84169) ([Pavel Kruglov](https://github.com/Avogar)). +* MergeTree の設定 `write_marks_for_substreams_in_compact_parts` をデフォルトで有効化しました。これにより、新しく作成された Compact パーツからサブカラムを読み取る際のパフォーマンスが大幅に向上します。バージョン 25.5 未満のサーバーは、新しい Compact パーツを読み取ることができなくなります。 [#84171](https://github.com/ClickHouse/ClickHouse/pull/84171) ([Pavel Kruglov](https://github.com/Avogar)). +* 以前の `concurrent_threads_scheduler` のデフォルト値は `round_robin` でしたが、単一スレッドクエリ(例: INSERT)が多数存在する状況では不公平であることが判明しました。この変更により、より安全な代替である `fair_round_robin` スケジューラがデフォルトになります。 [#84747](https://github.com/ClickHouse/ClickHouse/pull/84747) ([Sergei Trifonov](https://github.com/serxa)). +* ClickHouse は PostgreSQL 形式の heredoc 構文(`$tag$ string contents... $tag$`、いわゆる dollar-quoted 文字列リテラル)をサポートしています。以前のバージョンではタグに対する制約が緩く、句読点や空白を含む任意の文字を使用できました。これは、ドル文字で始まる識別子との間でパースのあいまいさを引き起こします。一方 PostgreSQL では、タグには単語文字のみが許可されています。この問題を解決するため、heredoc のタグには単語文字のみを含むように制限しました。 [#84731](https://github.com/ClickHouse/ClickHouse/issues/84731) をクローズします。 [#84846](https://github.com/ClickHouse/ClickHouse/pull/84846) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* `azureBlobStorage`、`deltaLakeAzure`、`icebergAzure` 関数は、`AZURE` 権限を正しく検証するように更新されました。すべてのクラスタ版関数(`-Cluster` 関数)は、対応する非クラスタ版に対して権限を検証するようになりました。加えて、`icebergLocal` および `deltaLakeLocal` 関数は `FILE` 権限チェックを強制するようになりました。 [#84938](https://github.com/ClickHouse/ClickHouse/pull/84938) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* テーブルエンジンレベルの設定である `allow_dynamic_metadata_for_data_lakes` をデフォルトで有効化しました。 [#85044](https://github.com/ClickHouse/ClickHouse/pull/85044) ([Daniil Ivanik](https://github.com/divanik)). +* デフォルトで、JSON フォーマットにおいて 64 ビット整数を文字列としてクォートしないようにしました。 [#74079](https://github.com/ClickHouse/ClickHouse/pull/74079) ([Pavel Kruglov](https://github.com/Avogar)) + +#### 新機能 {#new-feature} + +* PromQL 方言の基本的なサポートが追加されました。これを使用するには、clickhouse-client で `dialect='promql'` を設定し、`promql_table_name='X'` という設定で TimeSeries テーブルを指定し、`rate(ClickHouseProfileEvents_ReadCompressedBytes[1m])[5m:1m]` のようなクエリを実行します。さらに、PromQL クエリを SQL でラップして `SELECT * FROM prometheusQuery('up', ...);` のように実行することもできます。現時点でサポートされているのは `rate`、`delta`、`increase` の各関数のみです。単項/二項演算子には未対応です。HTTP API も未対応です。[#75036](https://github.com/ClickHouse/ClickHouse/pull/75036)([Vitaly Baranov](https://github.com/vitlibar))。 +* AI による SQL 生成は、利用可能な場合には環境変数 `ANTHROPIC_API_KEY` および `OPENAI_API_KEY` から自動的にキーを取得して推論できるようになりました。これにより、この機能を設定不要(ゼロコンフィグ)で利用できるオプションが提供されます。 [#83787](https://github.com/ClickHouse/ClickHouse/pull/83787) ([Kaushik Iska](https://github.com/iskakaushik)). +* [ArrowFlight RPC](https://arrow.apache.org/docs/format/Flight.html) プロトコルのサポートを実装しました。以下を追加しました: - 新しいテーブル関数 `arrowflight`。 [#74184](https://github.com/ClickHouse/ClickHouse/pull/74184) ([zakr600](https://github.com/zakr600)). +* すべてのテーブルで `_table` 仮想カラムがサポートされるようになりました(`Merge` エンジンのテーブルだけではありません)。これは特に UNION ALL を使用するクエリで有用です。 [#63665](https://github.com/ClickHouse/ClickHouse/pull/63665) ([Xiaozhe Yu](https://github.com/wudidapaopao))。 +* 外部集約やソートに任意のストレージポリシー(S3 のようなオブジェクトストレージなど)を使用できるようにしました。 [#84734](https://github.com/ClickHouse/ClickHouse/pull/84734) ([Azat Khuzhin](https://github.com/azat)). +* 明示的に指定された IAM ロールを用いた AWS S3 認証を実装しました。GCS 向けの OAuth を実装しました。これらの機能は最近まで ClickHouse Cloud でのみ利用可能でしたが、今回オープンソース化されました。オブジェクトストレージ向けの接続パラメータのシリアル化など、いくつかのインターフェースを統一しました。 [#84011](https://github.com/ClickHouse/ClickHouse/pull/84011) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Iceberg TableEngine 向けの position delete をサポートしました。 [#83094](https://github.com/ClickHouse/ClickHouse/pull/83094) ([Daniil Ivanik](https://github.com/divanik)). +* Iceberg の Equality Delete をサポート。 [#85843](https://github.com/ClickHouse/ClickHouse/pull/85843) ([Han Fei](https://github.com/hanfei1991)). +* CREATE ステートメントに対する Iceberg 書き込みを追加。[#83927](https://github.com/ClickHouse/ClickHouse/issues/83927) をクローズ。[#83983](https://github.com/ClickHouse/ClickHouse/pull/83983)([Konstantin Vedernikov](https://github.com/scanhex12))。 +* 書き込み用 Glue カタログのサポートを追加しました。 [#84136](https://github.com/ClickHouse/ClickHouse/pull/84136) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* 書き込み用の Iceberg REST カタログを追加。 [#84684](https://github.com/ClickHouse/ClickHouse/pull/84684) ([Konstantin Vedernikov](https://github.com/scanhex12))。 +* すべての Iceberg の position delete ファイルをデータファイルにマージします。これにより、Iceberg ストレージ内の Parquet ファイルの数とサイズを削減できます。構文: `OPTIMIZE TABLE table_name`。 [#85250](https://github.com/ClickHouse/ClickHouse/pull/85250) ([Konstantin Vedernikov](https://github.com/scanhex12))。 +* Iceberg テーブルに対する `DROP TABLE` をサポートしました(REST/Glue カタログからの削除とテーブルに関するメタデータの削除)。 [#85395](https://github.com/ClickHouse/ClickHouse/pull/85395) ([Konstantin Vedernikov](https://github.com/scanhex12))。 +* merge-on-read フォーマットの Iceberg テーブルに対する `ALTER DELETE` mutation をサポート。 [#85549](https://github.com/ClickHouse/ClickHouse/pull/85549) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* DeltaLake への書き込みをサポートしました。[#79603](https://github.com/ClickHouse/ClickHouse/issues/79603) をクローズしました。[#85564](https://github.com/ClickHouse/ClickHouse/pull/85564) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* テーブルエンジン `DeltaLake` で特定のスナップショットバージョンを読み取れるようにするための設定 `delta_lake_snapshot_version` を追加しました。 [#85295](https://github.com/ClickHouse/ClickHouse/pull/85295) ([Kseniia Sumarokova](https://github.com/kssenii)). +* min-max プルーニングのために、メタデータ(マニフェストエントリ)に、より詳細な Iceberg 統計情報(カラムサイズ、下限値および上限値)を書き込むようにしました。 [#85746](https://github.com/ClickHouse/ClickHouse/pull/85746) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* Iceberg で単純な型のカラムの追加・削除・変更をサポート。 [#85769](https://github.com/ClickHouse/ClickHouse/pull/85769) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* Iceberg: version-hint ファイルへの書き込みをサポートしました。これにより [#85097](https://github.com/ClickHouse/ClickHouse/issues/85097) がクローズされます。 [#85130](https://github.com/ClickHouse/ClickHouse/pull/85130) ([Konstantin Vedernikov](https://github.com/scanhex12))。 +* 一時ユーザーによって作成されたビューは、実際のユーザーのコピーを保存するようになり、一時ユーザーが削除されても無効化されなくなりました。 [#84763](https://github.com/ClickHouse/ClickHouse/pull/84763) ([pufit](https://github.com/pufit)). +* ベクトル類似度索引がバイナリ量子化を新たにサポートしました。バイナリ量子化によりメモリ消費量が大幅に削減され、距離計算が高速化されることでベクトル索引の構築プロセスも高速になります。また、既存の設定 `vector_search_postfilter_multiplier` は廃止され、より汎用的な設定 `vector_search_index_fetch_multiplier` に置き換えられました。 [#85024](https://github.com/ClickHouse/ClickHouse/pull/85024) ([Shankar Iyer](https://github.com/shankar-iyer)). +* `s3` または `s3Cluster` テーブルエンジン/関数で key-value 形式の引数を指定できるようになりました。例えば、`s3('url', CSV, structure = 'a Int32', compression_method = 'gzip')` のように指定できます。 [#85134](https://github.com/ClickHouse/ClickHouse/pull/85134) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* Kafka のようなエンジンから受信したエラーメッセージを保持するための新しいシステムテーブル(「dead letter queue」)。 [#68873](https://github.com/ClickHouse/ClickHouse/pull/68873) ([Ilya Golshtein](https://github.com/ilejn)). +* Replicated データベース向けに新しい SYSTEM RESTORE DATABASE REPLICA コマンドを追加しました。ReplicatedMergeTree における既存の restore 機能と同様に動作します。 [#73100](https://github.com/ClickHouse/ClickHouse/pull/73100) ([Konstantin Morozov](https://github.com/k-morozov)). +* PostgreSQL プロトコルで `COPY` コマンドがサポートされるようになりました。 [#74344](https://github.com/ClickHouse/ClickHouse/pull/74344) ([Konstantin Vedernikov](https://github.com/scanhex12))。 +* MySQL プロトコルに対応した C# クライアントを追加しました。これにより [#83992](https://github.com/ClickHouse/ClickHouse/issues/83992) がクローズされました。 [#84397](https://github.com/ClickHouse/ClickHouse/pull/84397) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* Hive パーティションスタイルでの読み取りおよび書き込みをサポートしました。 [#76802](https://github.com/ClickHouse/ClickHouse/pull/76802) ([Arthur Passos](https://github.com/arthurpassos))。 +* `zookeeper_connection_log` システムテーブルを追加し、ZooKeeper 接続に関する履歴情報を保存するようにしました。 [#79494](https://github.com/ClickHouse/ClickHouse/pull/79494) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 +* サーバー設定 `cpu_slot_preemption` は、ワークロードに対してプリエンプティブな CPU スケジューリングを有効にし、ワークロード間で CPU 時間を max-min 公平に割り当てることを保証します。CPU スロットリング用の新しいワークロード設定 `max_cpus`、`max_cpu_share`、`max_burst_cpu_seconds` が追加されました。詳細: [https://clickhouse.com/docs/operations/workload-scheduling#cpu_scheduling](https://clickhouse.com/docs/operations/workload-scheduling#cpu_scheduling)。[#80879](https://github.com/ClickHouse/ClickHouse/pull/80879)([Sergei Trifonov](https://github.com/serxa))。 +* 設定されたクエリ数または時間のしきい値に達した後に TCP 接続を切断します。これにより、ロードバランサの背後にあるクラスタノード間で、より均一に接続が分散されるようになります。[#68000](https://github.com/ClickHouse/ClickHouse/issues/68000) を解決。[#81472](https://github.com/ClickHouse/ClickHouse/pull/81472)([Kenny Sun](https://github.com/hwabis))。 +* Parallel replicas を使用するクエリで PROJECTION を利用できるようになりました。 [#82659](https://github.com/ClickHouse/ClickHouse/issues/82659). [#82807](https://github.com/ClickHouse/ClickHouse/pull/82807) ([zoomxi](https://github.com/zoomxi)). +* DESCRIBE (SELECT ...) に加えて DESCRIBE SELECT もサポートします。 [#82947](https://github.com/ClickHouse/ClickHouse/pull/82947) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* mysql_port および postgresql_port でセキュアな接続を必須にしました。 [#82962](https://github.com/ClickHouse/ClickHouse/pull/82962) ([tiandiwonder](https://github.com/tiandiwonder)). +* `JSONExtractCaseInsensitive`(および他の `JSONExtract` のバリアント)を使用して、大文字小文字を区別しない JSON キー検索を行えるようになりました。 [#83770](https://github.com/ClickHouse/ClickHouse/pull/83770) ([Alistair Evans](https://github.com/alistairjevans)). +* `system.completions` テーブルを導入し、[#81889](https://github.com/ClickHouse/ClickHouse/issues/81889) をクローズ。[#83833](https://github.com/ClickHouse/ClickHouse/pull/83833) ([|2ustam](https://github.com/RuS2m))。 +* 新しい関数 `nowInBlock64` を追加しました。使用例:`SELECT nowInBlock64(6)` は `2025-07-29 17:09:37.775725` を返します。 [#84178](https://github.com/ClickHouse/ClickHouse/pull/84178) ([Halersson Paris](https://github.com/halersson))。 +* AzureBlobStorage に extra_credentials を追加し、client_id および tenant_id を用いて認証できるようになりました。 [#84235](https://github.com/ClickHouse/ClickHouse/pull/84235) ([Pablo Marcos](https://github.com/pamarcos)). +* DateTime 値を UUIDv7 に変換する関数 `dateTimeToUUIDv7` を追加しました。使用例:`SELECT dateTimeToUUIDv7(toDateTime('2025-08-15 18:57:56'))` は `0198af18-8320-7a7d-abd3-358db23b9d5c` を返します。 [#84319](https://github.com/ClickHouse/ClickHouse/pull/84319) ([samradovich](https://github.com/samradovich))。 +* `timeSeriesDerivToGrid` および `timeSeriesPredictLinearToGrid` 集約関数で、指定された開始タイムスタンプ・終了タイムスタンプ・ステップで定義される時間グリッドにデータを再サンプリングし、それぞれ PromQL の `deriv` および `predict_linear` と同様の計算を行います。 [#84328](https://github.com/ClickHouse/ClickHouse/pull/84328) ([Stephen Chi](https://github.com/stephchi0)). +* 2 つの新しい TimeSeries 関数を追加しました: - `timeSeriesRange(start_timestamp, end_timestamp, step)`、- `timeSeriesFromGrid(start_timestamp, end_timestamp, step, values)`。[#85435](https://github.com/ClickHouse/ClickHouse/pull/85435)([Vitaly Baranov](https://github.com/vitlibar))。 +* 新しい構文 `GRANT READ ON S3('s3://foo/.*') TO user` が追加されました。 [#84503](https://github.com/ClickHouse/ClickHouse/pull/84503) ([pufit](https://github.com/pufit)). +* `Hash` を新しい出力フォーマットとして追加しました。結果のすべてのカラムおよび行に対して単一のハッシュ値を計算します。たとえば、データ転送がボトルネックとなるユースケースで、結果の「フィンガープリント」を計算するのに有用です。例: `SELECT arrayJoin(['abc', 'def']), 42 FORMAT Hash` は `e5f9e676db098fdb9530d2059d8c23ef` を返します。 [#84607](https://github.com/ClickHouse/ClickHouse/pull/84607) ([Robert Schulze](https://github.com/rschu1ze))。 +* Keeper の Multi クエリで任意のウォッチを設定できる機能を追加しました。 [#84964](https://github.com/ClickHouse/ClickHouse/pull/84964) ([Mikhail Artemenko](https://github.com/Michicosun)). +* `clickhouse-benchmark` ツールに、並列クエリ数を徐々に増加させるモードを有効にできる `--max-concurrency` オプションを追加しました。 [#85623](https://github.com/ClickHouse/ClickHouse/pull/85623) ([Sergei Trifonov](https://github.com/serxa))。 +* 部分集約済みメトリクスのサポートを追加。 [#85328](https://github.com/ClickHouse/ClickHouse/pull/85328) ([Mikhail Artemenko](https://github.com/Michicosun)). + +#### 実験的機能 {#experimental-feature} + +* 相関サブクエリのサポートがデフォルトで有効になり、実験的機能ではなくなりました。 [#85107](https://github.com/ClickHouse/ClickHouse/pull/85107) ([Dmitry Novik](https://github.com/novikd)). +* Unity、Glue、REST、および Hive Metastore のデータレイクカタログが実験的機能からベータ版に昇格しました。 [#85848](https://github.com/ClickHouse/ClickHouse/pull/85848) ([Melvyn Peignon](https://github.com/melvynator)). +* 論理更新と削除が実験的機能からベータ版に昇格しました。 +* ベクター類似度索引を用いた近似ベクター検索が GA になりました。 [#85888](https://github.com/ClickHouse/ClickHouse/pull/85888) ([Robert Schulze](https://github.com/rschu1ze)). +* Ytsaurus テーブルエンジンおよびテーブル関数。 [#77606](https://github.com/ClickHouse/ClickHouse/pull/77606) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* これまでは、テキスト索引データは複数のセグメントに分割されていました(デフォルトの各セグメントサイズは 256 MiB)。これはテキスト索引構築時のメモリ消費を抑える場合がありますが、その一方でディスク上の必要容量を増大させ、クエリの応答時間を延ばしていました。 [#84590](https://github.com/ClickHouse/ClickHouse/pull/84590) ([Elmi Ahmadov](https://github.com/ahmadov)). + +#### パフォーマンスの向上 {#performance-improvement} + +* 新しい Parquet リーダーの実装。従来より高速で、ページレベルのフィルタープッシュダウンと PREWHERE をサポートします。現在は実験的機能です。`input_format_parquet_use_native_reader_v3` 設定を有効にして使用します。[#82789](https://github.com/ClickHouse/ClickHouse/pull/82789) ([Michael Kolupaev](https://github.com/al13n321))。 +* Azure Blob Storage 用の Azure ライブラリにおける公式 HTTP トランスポートを、独自実装の HTTP クライアントに置き換えました。このクライアント向けに、S3 の設定を反映した複数の設定項目を導入しました。Azure と S3 の両方に対して、かなり短い接続タイムアウトを導入しました。Azure プロファイルのイベントおよびメトリクスの可視性を改善しました。新しいクライアントはデフォルトで有効になっており、Azure Blob Storage 上でのコールドクエリのレイテンシが大幅に改善されます。以前の `Curl` クライアントは、`azure_sdk_use_native_client=false` を設定することで元に戻すことができます。 [#83294](https://github.com/ClickHouse/ClickHouse/pull/83294) ([alesapin](https://github.com/alesapin))。以前の公式 Azure クライアント実装は、レイテンシのスパイクが 5 秒から数分に及ぶひどい状態だったため、本番環境には不適切でした。その問題のある実装はすでに廃止しており、この点について非常に誇りに思っています。 +* 索引をファイルサイズの昇順で処理します。最終的な索引の処理順序では、まず minmax 索引とベクター索引(それぞれ単純さと選択性の高さによる)を優先し、その後にその他の小さな索引を処理します。minmax / ベクター索引の中でも、より小さい索引が優先されます。 [#84094](https://github.com/ClickHouse/ClickHouse/pull/84094) ([Maruth Goyal](https://github.com/maruthgoyal)). +* MergeTree の設定 `write_marks_for_substreams_in_compact_parts` をデフォルトで有効にしました。これにより、新しく作成された Compact パーツからサブカラムを読み取る際のパフォーマンスが大幅に向上します。バージョンが 25.5 未満のサーバーは、新しい Compact パーツを読み取ることができません。 [#84171](https://github.com/ClickHouse/ClickHouse/pull/84171) ([Pavel Kruglov](https://github.com/Avogar))。 +* `azureBlobStorage` テーブルエンジン: スロットル制限を回避するため、可能な場合にはマネージド ID の認証トークンをキャッシュして再利用するようにしました。 [#79860](https://github.com/ClickHouse/ClickHouse/pull/79860) ([Nick Blakely](https://github.com/niblak)). +* 結合の右側テーブルが結合キーのカラムによって関数的に決定される(すべての行で結合キーの値が一意である)場合、`ALL` の `LEFT`/`INNER` JOIN は自動的に `RightAny` に変換されます。 [#84010](https://github.com/ClickHouse/ClickHouse/pull/84010) ([Nikita Taranov](https://github.com/nickitat))。 +* サイズの大きなカラムを含む JOIN のメモリ消費を制限するために、`max_joined_block_size_rows` に加えて `max_joined_block_size_bytes` を追加しました。 [#83869](https://github.com/ClickHouse/ClickHouse/pull/83869) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* 新しいロジック(`enable_producing_buckets_out_of_order_in_aggregation` 設定で制御され、デフォルトで有効)が追加され、メモリ効率の高い集約処理中に一部のバケットを順不同で出力できるようになりました。一部の集約バケットのマージに他よりも著しく時間がかかる場合、イニシエータがその間にバケット ID が高いバケットを先にマージできるようにすることで、パフォーマンスが向上します。欠点としてはメモリ使用量が増加する可能性がありますが、それほど大きくはないはずです。[#80179](https://github.com/ClickHouse/ClickHouse/pull/80179)([Nikita Taranov](https://github.com/nickitat))。 +* `optimize_rewrite_regexp_functions` 設定(デフォルトで有効)を導入しました。これにより、特定の正規表現パターンが検出された場合に、オプティマイザーが `replaceRegexpAll`、`replaceRegexpOne`、および `extract` の一部の呼び出しを、より単純で効率的な形式に書き換えられるようになります。(issue [#81981](https://github.com/ClickHouse/ClickHouse/issues/81981))。[#81992](https://github.com/ClickHouse/ClickHouse/pull/81992)([Amos Bird](https://github.com/amosbird))。 +* ハッシュ JOIN のメインループ外で `max_joined_block_rows` を処理するようにしました。ALL JOIN でのパフォーマンスがわずかに向上します。 [#83216](https://github.com/ClickHouse/ClickHouse/pull/83216) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* より細かい粒度の min-max 索引を優先的に処理するようにしました。[#75381](https://github.com/ClickHouse/ClickHouse/issues/75381) をクローズしました。[#83798](https://github.com/ClickHouse/ClickHouse/pull/83798) ([Maruth Goyal](https://github.com/maruthgoyal)). +* `DISTINCT` ウィンドウ集約が線形時間で実行されるようにし、`sumDistinct` のバグを修正しました。[#79792](https://github.com/ClickHouse/ClickHouse/issues/79792) をクローズしました。[#52253](https://github.com/ClickHouse/ClickHouse/issues/52253) をクローズしました。[#79859](https://github.com/ClickHouse/ClickHouse/pull/79859)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* ベクトル類似度索引を使用するベクトル検索クエリは、ストレージ読み取りと CPU 使用量の削減により、完了までのレイテンシが低くなりました。 [#83803](https://github.com/ClickHouse/ClickHouse/pull/83803) ([Shankar Iyer](https://github.com/shankar-iyer)). +* 並列レプリカ間でのワークロード分散時のキャッシュ局所性を改善するための Rendezvous ハッシュ。 [#82511](https://github.com/ClickHouse/ClickHouse/pull/82511) ([Anton Ivashkin](https://github.com/ianton-ru)). +* If コンビネータ用に addManyDefaults を実装し、これにより If コンビネータを用いる集約関数がより高速に動作するようになりました。 [#83870](https://github.com/ClickHouse/ClickHouse/pull/83870) ([Raúl Marín](https://github.com/Algunenano)). +* 複数の文字列または数値カラムで GROUP BY する場合に、シリアライズキーの計算を列指向で行うようにしました。 [#83884](https://github.com/ClickHouse/ClickHouse/pull/83884) ([李扬](https://github.com/taiyang-li)). +* 並列レプリカ読み出しに対する索引解析の結果が空の範囲となる場合には、フルスキャンを行わないようにしました。 [#84971](https://github.com/ClickHouse/ClickHouse/pull/84971) ([Eduard Karacharov](https://github.com/korowa)). +* パフォーマンステストの安定性向上を狙い、-falign-functions=64 を試しました。 [#83920](https://github.com/ClickHouse/ClickHouse/pull/83920) ([Azat Khuzhin](https://github.com/azat)). +* ブルームフィルター索引が、`column` が `Array` 型ではない場合の `has([c1, c2, ...], column)` のような条件にも使用されるようになりました。これにより、そのようなクエリの性能が向上し、`IN` 演算子を用いる場合と同程度の効率で実行できるようになります。 [#83945](https://github.com/ClickHouse/ClickHouse/pull/83945) ([Doron David](https://github.com/dorki))。 +* CompressedReadBufferBase::readCompressedData における不要な memcpy 関数呼び出しを削減しました。 [#83986](https://github.com/ClickHouse/ClickHouse/pull/83986) ([Raúl Marín](https://github.com/Algunenano))。 +* 一時データを削除して `largestTriangleThreeBuckets` を最適化しました。 [#84479](https://github.com/ClickHouse/ClickHouse/pull/84479) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* コードを簡素化して文字列デシリアライズを最適化しました。[#38564](https://github.com/ClickHouse/ClickHouse/issues/38564) をクローズします。 [#84561](https://github.com/ClickHouse/ClickHouse/pull/84561)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 並列レプリカ用の最小タスクサイズの計算を修正しました。 [#84752](https://github.com/ClickHouse/ClickHouse/pull/84752) ([Nikita Taranov](https://github.com/nickitat)). +* `Join` モードにおけるパッチパーツ適用のパフォーマンスを改善しました。 [#85040](https://github.com/ClickHouse/ClickHouse/pull/85040) ([Anton Popov](https://github.com/CurtizJ)). +* ゼロバイトを削除しました。[#85062](https://github.com/ClickHouse/ClickHouse/issues/85062) をクローズします。いくつかの小さなバグを修正しました。関数 `structureToProtobufSchema`、`structureToCapnProtoSchema` はゼロ終端バイトを正しく配置せず、代わりに改行を使用していました。この問題により出力から改行が欠落し、ゼロバイトに依存する他の関数(`logTrace`、`demangle`、`extractURLParameter`、`toStringCutToZero`、`encrypt` / `decrypt` など)を使用した際にバッファオーバーフローを引き起こす可能性がありました。`regexp_tree` Dictionary レイアウトは、ゼロバイトを含む文字列の処理をサポートしていませんでした。`formatRowNoNewline` 関数は、`Values` フォーマット、または行末に改行を持たない他の任意のフォーマットで呼び出された場合、出力の最後の文字を誤って切り捨てていました。`stem` 関数には例外安全性の不具合があり、非常にまれなシナリオでメモリリークにつながる可能性がありました。`initcap` 関数は `FixedString` 引数に対して誤った動作をしていました。すなわち、ブロック内の前の文字列が単語文字で終わっている場合、文字列の先頭にある単語の開始位置を認識できていませんでした。Apache `ORC` フォーマットに存在したセキュリティ脆弱性を修正しました。これにより、初期化されていないメモリが読み出される可能性がありました。関数 `replaceRegexpAll` と、そのエイリアスである `REGEXP_REPLACE` の動作を変更しました。これらの関数は、`^a*|a*$` や `^|.*` のように、直前のマッチが文字列全体を処理している場合であっても、文字列末尾で空マッチを行えるようになりました。これは JavaScript、Perl、Python、PHP、Ruby のセマンティクスに準拠しますが、PostgreSQL のセマンティクスとは異なります。多くの関数の実装を単純化し、最適化しました。いくつかの関数について、誤っていたドキュメントを修正しました。String カラムおよび String カラムを含む複合型に対する `byteSize` の出力が変更されたことに留意してください(空文字列 1 個あたり 9 バイトから 8 バイトへと変更されました)が、これは正常な挙動です。[#85063](https://github.com/ClickHouse/ClickHouse/pull/85063)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 単一の行を返すためだけに定数をマテリアライズする場合、そのマテリアライズを最適化しました。 [#85071](https://github.com/ClickHouse/ClickHouse/pull/85071) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* delta-kernel-rs バックエンドによるファイルの並列処理を改善。 [#85642](https://github.com/ClickHouse/ClickHouse/pull/85642) ([Azat Khuzhin](https://github.com/azat)). +* 新しい設定 enable_add_distinct_to_in_subqueries が導入されました。有効にすると、ClickHouse は分散クエリにおける IN 句内のサブクエリに DISTINCT を自動的に追加します。これにより、分片間で転送される一時テーブルのサイズを大幅に削減し、ネットワーク効率を向上させることができます。注意:これはトレードオフであり、ネットワーク転送量は削減されますが、各ノードで追加のマージ(重複排除)処理が必要になります。ネットワーク転送がボトルネックとなっており、マージ処理のコストが許容できる場合にこの設定を有効にしてください。 [#81908](https://github.com/ClickHouse/ClickHouse/pull/81908) ([fhw12345](https://github.com/fhw12345)). +* 実行可能なユーザー定義関数におけるクエリのメモリトラッキングのオーバーヘッドを削減。 [#83929](https://github.com/ClickHouse/ClickHouse/pull/83929) ([Eduard Karacharov](https://github.com/korowa)). +* ストレージ `DeltaLake` において、内部の `delta-kernel-rs` フィルタリング(統計情報およびパーティションプルーニング)を実装。 [#84006](https://github.com/ClickHouse/ClickHouse/pull/84006) ([Kseniia Sumarokova](https://github.com/kssenii)). +* オンザフライで更新されるカラム、またはより細かい粒度でパッチパーツによって更新されるカラムに依存するスキップインデックスの無効化を、よりきめ細かく制御するようにしました。現在は、スキップインデックスはオンザフライで行われるミューテーションやパッチパーツの影響を受けたパーツでのみ使用されません。以前は、これらのインデックスはすべてのパーツに対して無効化されていました。[#84241](https://github.com/ClickHouse/ClickHouse/pull/84241)([Anton Popov](https://github.com/CurtizJ))。 +* 暗号化された named collection 用の `encrypted_buffer` に必要最小限のメモリだけを割り当てるようにしました。 [#84432](https://github.com/ClickHouse/ClickHouse/pull/84432) ([Pablo Marcos](https://github.com/pamarcos)). +* 第一引数が定数配列(集合)、第二引数が索引付きカラム(部分集合)の場合にブルームフィルター索引(通常、ngram、token)を利用できるようサポートが改善され、より効率的にクエリを実行できるようになりました。 [#84700](https://github.com/ClickHouse/ClickHouse/pull/84700) ([Doron David](https://github.com/dorki))。 +* Keeper におけるストレージロックの競合を軽減。 [#84732](https://github.com/ClickHouse/ClickHouse/pull/84732) ([Antonio Andelic](https://github.com/antonio2368)). +* `WHERE` に対する `read_in_order_use_virtual_row` の不足していたサポートを追加しました。これにより、`PREWHERE` に完全にはプッシュダウンされなかったフィルタを含むクエリで、より多くのパーツを読み飛ばすことが可能になります。 [#84835](https://github.com/ClickHouse/ClickHouse/pull/84835) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 各データファイルごとにオブジェクトを明示的に保持することなく、Iceberg テーブル上のオブジェクトを非同期にイテレーションできるようにしました。 [#85369](https://github.com/ClickHouse/ClickHouse/pull/85369) ([Daniil Ivanik](https://github.com/divanik)). +* 非相関な `EXISTS` をスカラサブクエリとして実行するようにしました。これにより、スカラサブクエリキャッシュを利用したり、結果を定数畳み込みできるようになり、索引に対して有用です。互換性のため、新しい設定項目 `execute_exists_as_scalar_subquery=1` を追加しました。 [#85481](https://github.com/ClickHouse/ClickHouse/pull/85481) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). + +#### 改良 {#improvement} + +* `database_replicated` 設定を追加し、DatabaseReplicatedSettings のデフォルト値を定義できるようにしました。Replicated データベースの CREATE クエリ内にその設定が指定されていない場合、この設定の値が使用されます。 [#85127](https://github.com/ClickHouse/ClickHouse/pull/85127) ([Tuan Pham Anh](https://github.com/tuanpach)). +* Web UI (play) のテーブル列をリサイズ可能にしました。 [#84012](https://github.com/ClickHouse/ClickHouse/pull/84012) ([Doron David](https://github.com/dorki)). +* `iceberg_metadata_compression_method` 設定により、圧縮された `.metadata.json` ファイルをサポートしました。すべての ClickHouse の圧縮方式をサポートします。これにより [#84895](https://github.com/ClickHouse/ClickHouse/issues/84895) がクローズされました。 [#85196](https://github.com/ClickHouse/ClickHouse/pull/85196) ([Konstantin Vedernikov](https://github.com/scanhex12))。 +* `EXPLAIN indexes = 1` の出力に、読み取る範囲の数を表示するようになりました。 [#79938](https://github.com/ClickHouse/ClickHouse/pull/79938) ([Christoph Wurm](https://github.com/cwurm)). +* ORC 圧縮ブロックサイズを設定するための設定を導入し、Spark や Hive と整合させるためにデフォルト値を 64KB から 256KB に更新しました。 [#80602](https://github.com/ClickHouse/ClickHouse/pull/80602) ([李扬](https://github.com/taiyang-li)). +* Wide パーツに `columns_substreams.txt` ファイルを追加し、そのパーツ内に保存されているすべてのサブストリームを記録・追跡できるようにしました。これにより、JSON や Dynamic 型におけるダイナミックストリームを把握するために、これらのカラムを一部読み出してダイナミックストリームの一覧を取得する必要がなくなります(たとえばカラムサイズを計算する場合など)。また、すべてのダイナミックストリームが `system.parts_columns` に反映されるようになりました。 [#81091](https://github.com/ClickHouse/ClickHouse/pull/81091) ([Pavel Kruglov](https://github.com/Avogar)). +* 既定では機密データを非表示にするため、`clickhouse format` に CLI フラグ `--show_secrets` を追加しました。 [#81524](https://github.com/ClickHouse/ClickHouse/pull/81524) ([Nikolai Ryzhov](https://github.com/Dolaxom)). +* S3 の読み取りおよび書き込みリクエストは、S3 リクエスト全体ではなく HTTP ソケットレベルで帯域制限されるようになり、`max_remote_read_network_bandwidth_for_server` および `max_remote_write_network_bandwidth_for_server` による帯域制限との問題を回避します。 [#81837](https://github.com/ClickHouse/ClickHouse/pull/81837) ([Sergei Trifonov](https://github.com/serxa))。 +* 同一カラムに対し、ウィンドウ関数の異なるウィンドウごとに異なる照合順序を使用できるようにしました。 [#82877](https://github.com/ClickHouse/ClickHouse/pull/82877) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* マージセレクタをシミュレート、可視化、比較できるツールを追加。 [#71496](https://github.com/ClickHouse/ClickHouse/pull/71496) ([Sergei Trifonov](https://github.com/serxa)). +* `address_expression` 引数でクラスターが指定されている場合に、並列レプリカを用いた `remote*` テーブル関数をサポートしました。また、[#73295](https://github.com/ClickHouse/ClickHouse/issues/73295) も修正しました。 [#82904](https://github.com/ClickHouse/ClickHouse/pull/82904) ([Igor Nikonov](https://github.com/devcrafter))。 +* バックアップファイルを書き込む際のすべてのログメッセージを TRACE レベルに設定しました。 [#82907](https://github.com/ClickHouse/ClickHouse/pull/82907) ([Hans Krutzer](https://github.com/hkrutzer)). +* 特殊な名前やコーデックを持つユーザー定義関数が、SQL フォーマッタによって一貫性のないフォーマットになる場合がありました。これにより [#83092](https://github.com/ClickHouse/ClickHouse/issues/83092) がクローズされます。[#83644](https://github.com/ClickHouse/ClickHouse/pull/83644)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* JSON 型で Time 型および Time64 型を使用できるようになりました。 [#83784](https://github.com/ClickHouse/ClickHouse/pull/83784) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 並列レプリカを用いた結合では、`join logical step` が使用されるようになりました。並列レプリカを使用する結合クエリで問題が発生した場合は、`SET query_plan_use_new_logical_join_step=0` を設定してから Issue を報告してください。 [#83801](https://github.com/ClickHouse/ClickHouse/pull/83801) ([Vladimir Cherkasov](https://github.com/vdimir)). +* 複数ノードでの `cluster_function_process_archive_on_multiple_nodes` の互換性の問題を修正。 [#83968](https://github.com/ClickHouse/ClickHouse/pull/83968) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `S3Queue` テーブルレベルでマテリアライズドビュー(MV)の挿入設定を変更できるようにしました。新たに `S3Queue` レベルの設定 `min_insert_block_size_rows_for_materialized_views` と `min_insert_block_size_bytes_for_materialized_views` を追加しました。デフォルトではプロファイルレベルの設定が使用され、`S3Queue` レベルの設定がそれらを上書きします。 [#83971](https://github.com/ClickHouse/ClickHouse/pull/83971) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* ミューテーションで影響を受けた行数の上限を示すプロファイルイベント `MutationAffectedRowsUpperBound` を追加しました。例えば、`ALTER UPDATE` や `ALTER DELETE` クエリにおいて条件を満たす行の総数などです。 [#83978](https://github.com/ClickHouse/ClickHouse/pull/83978) ([Anton Popov](https://github.com/CurtizJ)). +* cgroup の情報(該当する場合、つまり `memory_worker_use_cgroup` が有効であり、cgroup が利用可能な場合)を使用して、メモリトラッカー(`memory_worker_correct_memory_tracker`)を調整するようにしました。 [#83981](https://github.com/ClickHouse/ClickHouse/pull/83981) ([Azat Khuzhin](https://github.com/azat))。 +* MongoDB: 文字列から数値型への暗黙的な変換。以前は、ClickHouse テーブルの数値カラムに対して MongoDB ソースから文字列値が受信された場合、例外がスローされていました。現在では、エンジンが文字列から数値を自動的にパースしようとします。[#81167](https://github.com/ClickHouse/ClickHouse/issues/81167) をクローズします。 [#84069](https://github.com/ClickHouse/ClickHouse/pull/84069)([Kirill Nikiforov](https://github.com/allmazz))。 +* `Nullable` な数値に対する `Pretty` フォーマットで、桁区切りをハイライト表示するようにしました。 [#84070](https://github.com/ClickHouse/ClickHouse/pull/84070) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Dashboard: ツールチップが上端でコンテナを越えて表示されなくなりました。 [#84072](https://github.com/ClickHouse/ClickHouse/pull/84072) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* ダッシュボード上のドットの見栄えをわずかに向上させました。 [#84074](https://github.com/ClickHouse/ClickHouse/pull/84074) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Dashboard の favicon をわずかに改善しました。 [#84076](https://github.com/ClickHouse/ClickHouse/pull/84076) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Web UI: ブラウザにパスワードを保存させることができるようにしました。また、URL の値も記憶するようにしました。 [#84087](https://github.com/ClickHouse/ClickHouse/pull/84087) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* `apply_to_children` 設定を使用して特定の Keeper ノードに追加の ACL を適用できるようにしました。 [#84137](https://github.com/ClickHouse/ClickHouse/pull/84137) ([Antonio Andelic](https://github.com/antonio2368)). +* MergeTree における Variant の "compact" 判別子シリアライゼーションの利用を修正しました。以前は、本来使用できる一部のケースで使用されていませんでした。 [#84141](https://github.com/ClickHouse/ClickHouse/pull/84141) ([Pavel Kruglov](https://github.com/Avogar)). +* サーバー設定 `logs_to_keep` をレプリケートデータベースの設定に追加しました。これにより、レプリケートデータベースに対するデフォルトの `logs_to_keep` パラメータを変更できます。値を小さくすると ZNode の数(特に多くのデータベースが存在する場合)が減少し、値を大きくすると欠落しているレプリカが、より長い期間経過した後でも追いつけるようになります。 [#84183](https://github.com/ClickHouse/ClickHouse/pull/84183) ([Alexey Khatskevich](https://github.com/Khatskevich))。 +* JSON 型の解析時に JSON キー内のドットをエスケープするための `json_type_escape_dots_in_keys` という設定を追加しました。この設定はデフォルトでは無効です。 [#84207](https://github.com/ClickHouse/ClickHouse/pull/84207) ([Pavel Kruglov](https://github.com/Avogar))。 +* クローズされた接続から読み取らないようにするため、EOF を確認する前に接続がキャンセルされているかどうかをチェックするようにしました。[#83893](https://github.com/ClickHouse/ClickHouse/issues/83893) を修正。[#84227](https://github.com/ClickHouse/ClickHouse/pull/84227)([Raufs Dunamalijevs](https://github.com/rienath))。 +* Web UI におけるテキスト選択時の色合いをわずかに調整しました。違いが大きく現れるのは、ダークモードで選択されたテーブルセルの場合のみです。以前のバージョンでは、テキストと選択範囲の背景色とのコントラストが十分ではありませんでした。 [#84258](https://github.com/ClickHouse/ClickHouse/pull/84258) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 内部チェックを簡素化することで、クライアント接続向けのサーバーのシャットダウン処理を改善しました。 [#84312](https://github.com/ClickHouse/ClickHouse/pull/84312) ([Raufs Dunamalijevs](https://github.com/rienath)). +* デバッグ時にテストログレベルでも式ビジターのログが冗長になりすぎる可能性があるため、それらを無効化できるようにする設定 `delta_lake_enable_expression_visitor_logging` を追加しました。 [#84315](https://github.com/ClickHouse/ClickHouse/pull/84315) ([Kseniia Sumarokova](https://github.com/kssenii)). +* cgroup レベルおよびシステム全体レベルのメトリクスが、現在はまとめて報告されます。cgroup レベルのメトリクスは `CGroup` という名前で、OS レベルのメトリクス(procfs から収集されるもの)は `OS` という名前です。 [#84317](https://github.com/ClickHouse/ClickHouse/pull/84317) ([Nikita Taranov](https://github.com/nickitat)). +* Web UI のチャート表示を少し改善しました。大きな変更ではありませんが、以前より良くなっています。 [#84326](https://github.com/ClickHouse/ClickHouse/pull/84326) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Replicated データベースの設定 `max_retries_before_automatic_recovery` のデフォルト値を 10 に変更し、一部の状況でより迅速に復旧できるようにしました。 [#84369](https://github.com/ClickHouse/ClickHouse/pull/84369) ([Alexander Tokmakov](https://github.com/tavplubix))。 +* クエリパラメータ付き CREATE USER ステートメントのフォーマットを修正しました(例: `CREATE USER {username:Identifier} IDENTIFIED WITH no_password`)。 [#84376](https://github.com/ClickHouse/ClickHouse/pull/84376) ([Azat Khuzhin](https://github.com/azat)). +* バックアップおよびリストア処理時に使用される S3 リトライのバックオフ戦略を構成するため、`backup_restore_s3_retry_initial_backoff_ms`、`backup_restore_s3_retry_max_backoff_ms`、`backup_restore_s3_retry_jitter_factor` を追加しました。 [#84421](https://github.com/ClickHouse/ClickHouse/pull/84421) ([Julia Kartseva](https://github.com/jkartseva)). +* S3Queue の ordered モードの修正: shutdown が呼び出された場合に、より早く終了するよう修正しました。 [#84463](https://github.com/ClickHouse/ClickHouse/pull/84463) ([Kseniia Sumarokova](https://github.com/kssenii)). +* pyiceberg から読み取れるような iceberg への書き込みをサポートしました。 [#84466](https://github.com/ClickHouse/ClickHouse/pull/84466) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* KeyValue ストレージのプライマリキー(例: EmbeddedRocksDB、KeeperMap)に対して `IN` / `GLOBAL IN` フィルタをプッシュダウンする際に、Set の値の型変換を許可するようにしました。 [#84515](https://github.com/ClickHouse/ClickHouse/pull/84515) ([Eduard Karacharov](https://github.com/korowa))。 +* chdig を [25.7.1](https://github.com/azat/chdig/releases/tag/v25.7.1) に更新。 [#84521](https://github.com/ClickHouse/ClickHouse/pull/84521) ([Azat Khuzhin](https://github.com/azat))。 +* UDF 実行中に発生する低レベルエラーは、これまではさまざまなエラーコードが返されていましたが、現在はエラーコード `UDF_EXECUTION_FAILED` で失敗するように統一されました。 [#84547](https://github.com/ClickHouse/ClickHouse/pull/84547) ([Xu Jia](https://github.com/XuJia0210))。 +* KeeperClient に `get_acl` コマンドを追加。 [#84641](https://github.com/ClickHouse/ClickHouse/pull/84641) ([Antonio Andelic](https://github.com/antonio2368))。 +* データレイクテーブルエンジンにスナップショットバージョンを追加しました。 [#84659](https://github.com/ClickHouse/ClickHouse/pull/84659) ([Pete Hampton](https://github.com/pjhampton)). +* `ConcurrentBoundedQueue` のサイズに関するディメンション付きメトリクスを追加しました。キュー種別(そのキューの用途)とキュー ID(そのキューの現在のインスタンスに対してランダムに生成される ID)をラベルとして持ちます。 [#84675](https://github.com/ClickHouse/ClickHouse/pull/84675) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* `system.columns` テーブルで、既存の `name` カラムのエイリアスとして `column` が利用できるようになりました。 [#84695](https://github.com/ClickHouse/ClickHouse/pull/84695) ([Yunchi Pang](https://github.com/yunchipang)). +* ローカルメタデータを持つディスクなどでパーツ探索の対象を制限するための新しい MergeTree 設定 `search_orphaned_parts_drives`。 [#84710](https://github.com/ClickHouse/ClickHouse/pull/84710) ([Ilya Golshtein](https://github.com/ilejn)). +* Keeper に 4LW `lgrq` を追加し、受信リクエストのログ出力を切り替えられるようにしました。 [#84719](https://github.com/ClickHouse/ClickHouse/pull/84719) ([Antonio Andelic](https://github.com/antonio2368)). +* 外部認証の `forward_headers` を大文字小文字を区別せずに一致判定するようにしました。 [#84737](https://github.com/ClickHouse/ClickHouse/pull/84737) ([ingodwerust](https://github.com/ingodwerust)). +* `encrypt_decrypt` ツールが暗号化された ZooKeeper への接続をサポートするようになりました。 [#84764](https://github.com/ClickHouse/ClickHouse/pull/84764) ([Roman Vasin](https://github.com/rvasin)) +* `system.errors` テーブルにフォーマット文字列を格納するカラムを追加しました。このカラムは、アラートルールで同じエラータイプごとにグループ化するために必要です。 [#84776](https://github.com/ClickHouse/ClickHouse/pull/84776) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* `clickhouse-format` で `--hilite` のエイリアスとして `--highlight` を受け付けるように更新しました。- `clickhouse-client` で `--highlight` のエイリアスとして `--hilite` を受け付けるように更新しました。- この変更を反映するように `clickhouse-format` のドキュメントを更新しました。[#84806](https://github.com/ClickHouse/ClickHouse/pull/84806) ([Rishabh Bhardwaj](https://github.com/rishabh1815769))。 +* 複合型に対するフィールド ID 指定の Iceberg 読み取りを修正。 [#84821](https://github.com/ClickHouse/ClickHouse/pull/84821) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* `SlowDown` などのエラーによって発生するリトライストームの際に、単一のリトライ可能なエラーが発生した時点ですべてのスレッドの処理を遅くすることで S3 への負荷を軽減する、新しい `backup_slow_all_threads_after_retryable_s3_error` SETTING を導入しました。 [#84854](https://github.com/ClickHouse/ClickHouse/pull/84854) ([Julia Kartseva](https://github.com/jkartseva)). +* レプリケーテッド DB における append 以外の RMV DDL では、古い一時テーブルを作成してリネームする処理をスキップするようにしました。 [#84858](https://github.com/ClickHouse/ClickHouse/pull/84858) ([Tuan Pham Anh](https://github.com/tuanpach))。 +* `keeper_server.coordination_settings.latest_logs_cache_entry_count_threshold` および `keeper_server.coordination_settings.commit_logs_cache_entry_count_threshold` を使用して、Keeper ログエントリキャッシュのサイズをエントリ数ベースで制限できるようにしました。 [#84877](https://github.com/ClickHouse/ClickHouse/pull/84877) ([Antonio Andelic](https://github.com/antonio2368)). +* サポート対象外のアーキテクチャでも `simdjson` を使用できるようにしました(従来は `CANNOT_ALLOCATE_MEMORY` エラーを引き起こしていました)。 [#84966](https://github.com/ClickHouse/ClickHouse/pull/84966) ([Azat Khuzhin](https://github.com/azat)). +* 非同期ロギング: 制限値を調整可能にし、内部状態を確認するための機能を追加。 [#85105](https://github.com/ClickHouse/ClickHouse/pull/85105) ([Raúl Marín](https://github.com/Algunenano)). +* 削除対象となるすべてのオブジェクトをまとめて収集し、オブジェクトストレージの削除処理を1回の実行で行うようにしました。 [#85316](https://github.com/ClickHouse/ClickHouse/pull/85316) ([Mikhail Artemenko](https://github.com/Michicosun)). +* Iceberg の現在の positional delete file の実装では、すべてのデータをメモリ上に保持します。positional delete file が大きくなることはよくあるため、これはかなりコストが高くなり得ます。この実装では、Parquet delete file の最後の row-group のみをメモリ上に保持することで、コストを大幅に削減しています。[#85329](https://github.com/ClickHouse/ClickHouse/pull/85329)([Konstantin Vedernikov](https://github.com/scanhex12))。 +* chdig: 画面に残る表示の不具合を修正し、エディタでクエリを編集した後に発生するクラッシュを修正、`PATH` 内で `editor` を検索するように変更、[25.8.1](https://github.com/azat/chdig/releases/tag/v25.8.1) に更新。[#85341](https://github.com/ClickHouse/ClickHouse/pull/85341)([Azat Khuzhin](https://github.com/azat))。 +* 不足していた `partition_columns_in_data_file` を Azure の構成に追加。 [#85373](https://github.com/ClickHouse/ClickHouse/pull/85373) ([Arthur Passos](https://github.com/arthurpassos))。 +* 関数 `timeSeries*ToGrid` でステップ 0 を許可しました。これは [#75036](https://github.com/ClickHouse/ClickHouse/pull/75036) の一部です。[#85390](https://github.com/ClickHouse/ClickHouse/pull/85390)([Vitaly Baranov](https://github.com/vitlibar))。 +* `system.tables` システムテーブルにデータレイクのテーブルを追加するかどうかを制御する `show_data_lake_catalogs_in_system_tables` フラグを追加。 [#85384](https://github.com/ClickHouse/ClickHouse/issues/85384) を解決。 [#85411](https://github.com/ClickHouse/ClickHouse/pull/85411) ([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 +* `remote_fs_zero_copy_zookeeper_path` にマクロ展開のサポートを追加しました。 [#85437](https://github.com/ClickHouse/ClickHouse/pull/85437) ([Mikhail Koviazin](https://github.com/mkmkme)). +* clickhouse-client の AI の見た目が少し改善されました。 [#85447](https://github.com/ClickHouse/ClickHouse/pull/85447) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 既存のデプロイメントに対して `trace_log.symbolize` をデフォルトで有効化しました。 [#85456](https://github.com/ClickHouse/ClickHouse/pull/85456) ([Azat Khuzhin](https://github.com/azat)). +* 複合識別子を含むより多くのケースに対応しました。特に、`ARRAY JOIN` と旧アナライザーとの互換性が改善されています。従来の挙動を維持するため、新しい設定項目 `analyzer_compatibility_allow_compound_identifiers_in_unflatten_nested` を導入しました。 [#85492](https://github.com/ClickHouse/ClickHouse/pull/85492) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* system.columns のテーブルのカラムサイズを取得する際に UNKNOWN_DATABASE を無視するようにしました。 [#85632](https://github.com/ClickHouse/ClickHouse/pull/85632) ([Azat Khuzhin](https://github.com/azat)). +* パッチパーツ内の非圧縮データサイズの合計に対する上限(テーブル設定 `max_uncompressed_bytes_in_patches`)を追加しました。これにより、論理更新の後に `SELECT` クエリの実行が大幅に低速化することを防ぐとともに、論理更新の不適切な利用を抑止します。 [#85641](https://github.com/ClickHouse/ClickHouse/pull/85641) ([Anton Popov](https://github.com/CurtizJ)). +* `GRANT READ/WRITE` のソース種別および `GRANT TABLE ENGINE` のテーブルエンジンを識別できるようにするため、`system.grants` に `parameter` カラムを追加しました。 [#85643](https://github.com/ClickHouse/ClickHouse/pull/85643) ([MikhailBurdukov](https://github.com/MikhailBurdukov))。 +* パラメータ付きのカラム(例: Decimal(8))の後に続く `CREATE DICTIONARY` クエリ内のカラムで、末尾のカンマがあっても正しくパースされるよう修正しました。 [#85586](https://github.com/ClickHouse/ClickHouse/issues/85586) をクローズ。 [#85653](https://github.com/ClickHouse/ClickHouse/pull/85653)([Nikolay Degterinsky](https://github.com/evillique))。 +* 関数 `nested` が内部配列をサポートするようになりました。 [#85719](https://github.com/ClickHouse/ClickHouse/pull/85719) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* 外部ライブラリによって行われるすべてのアロケーションが、ClickHouse のメモリトラッカーで把握され、正しく計上されるようになりました。これにより、一部のクエリで報告されるメモリ使用量が「増加」したように見えたり、`MEMORY_LIMIT_EXCEEDED` によるエラーが発生したりする可能性があります。 [#84082](https://github.com/ClickHouse/ClickHouse/pull/84082) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). + +#### バグ修正(公式安定版リリースにおけるユーザーに影響する不具合) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* このPRでは、REST カタログ経由で Iceberg テーブルに対してクエリを実行する際のメタデータ解決処理を修正します。... [#80562](https://github.com/ClickHouse/ClickHouse/pull/80562) ([Saurabh Kumar Ojha](https://github.com/saurabhojha)). +* DDLWorker および DatabaseReplicatedDDLWorker の markReplicasActive を修正しました。 [#81395](https://github.com/ClickHouse/ClickHouse/pull/81395) ([Tuan Pham Anh](https://github.com/tuanpach))。 +* パースに失敗した際の Dynamic カラムのロールバック処理を修正。[#82169](https://github.com/ClickHouse/ClickHouse/pull/82169) ([Pavel Kruglov](https://github.com/Avogar))。 +* 関数 `trim` がすべて定数の引数で呼び出された場合、出力として定数文字列を生成するようになりました(バグ [#78796](https://github.com/ClickHouse/ClickHouse/issues/78796))。[#82900](https://github.com/ClickHouse/ClickHouse/pull/82900)([Robert Schulze](https://github.com/rschu1ze))。 +* `optimize_syntax_fuse_functions` が有効な場合に発生する、重複したサブクエリに関する論理エラーを修正し、[#75511](https://github.com/ClickHouse/ClickHouse/issues/75511) をクローズ。[#83300](https://github.com/ClickHouse/ClickHouse/pull/83300)([Vladimir Cherkasov](https://github.com/vdimir))。 +* `WHERE ... IN ()` 句を含み、かつクエリ条件キャッシュ(`use_query_condition_cache` SETTING)が有効になっているクエリで、誤った結果が返されることがあった問題を修正しました。 [#83445](https://github.com/ClickHouse/ClickHouse/pull/83445) ([LB7666](https://github.com/acking-you)). +* これまで `gcs` 関数の利用には特別な権限は不要でしたが、今後は利用時に `GRANT READ ON S3` 権限が付与されているかを確認するようになります。[#70567](https://github.com/ClickHouse/ClickHouse/issues/70567) をクローズします。[#83503](https://github.com/ClickHouse/ClickHouse/pull/83503)([pufit](https://github.com/pufit))。 +* s3Cluster() からレプリケートされた MergeTree テーブルへの INSERT SELECT 実行時に、利用不能なノードをスキップするようになりました。 [#83676](https://github.com/ClickHouse/ClickHouse/pull/83676) ([Igor Nikonov](https://github.com/devcrafter)). +* 実験的トランザクションで使用される MergeTree において、`plain_rewritable` / `plain` メタデータタイプへの追記書き込みが以前は単純に無視されていた問題を修正しました。 [#83695](https://github.com/ClickHouse/ClickHouse/pull/83695) ([Tuan Pham Anh](https://github.com/tuanpach))。 +* Avro schema registry の認証情報をマスクし、ユーザーやログからは表示されないようにしました。 [#83713](https://github.com/ClickHouse/ClickHouse/pull/83713) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* `add_minmax_index_for_numeric_columns=1` または `add_minmax_index_for_string_columns=1` を指定して MergeTree テーブルを作成した場合に、その後の ALTER 操作で索引がマテリアライズされることで、新しいレプリカ上で Replicated データベースが正しく初期化されなくなる問題を修正しました。 [#83751](https://github.com/ClickHouse/ClickHouse/pull/83751) ([Nikolay Degterinsky](https://github.com/evillique))。 +* parquet writer が Decimal 型に対する統計情報 (min/max) を誤って出力していた問題を修正しました。 [#83754](https://github.com/ClickHouse/ClickHouse/pull/83754) ([Michael Kolupaev](https://github.com/al13n321)). +* `LowCardinality(Float32|Float64|BFloat16)` 型における NaN 値のソート処理を修正。 [#83786](https://github.com/ClickHouse/ClickHouse/pull/83786) ([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 +* バックアップからリストアする際に、definer user がバックアップに含まれていない場合があり、その結果バックアップ全体が無効になってしまう可能性がありました。これを修正するために、リストア中の対象テーブル作成時に行っていた権限チェックを延期し、実行時にのみチェックするようにしました。 [#83818](https://github.com/ClickHouse/ClickHouse/pull/83818) ([pufit](https://github.com/pufit)). +* 誤った `INSERT` 実行後に接続が切断状態のまま残っていたために発生していたクライアントのクラッシュを修正。 [#83842](https://github.com/ClickHouse/ClickHouse/pull/83842) ([Azat Khuzhin](https://github.com/azat)). +* analyzer が有効な場合、`remote` テーブル関数の `view(...)` 引数内で任意のテーブルを参照できるようにしました。これにより [#78717](https://github.com/ClickHouse/ClickHouse/issues/78717) および [#79377](https://github.com/ClickHouse/ClickHouse/issues/79377) の問題を修正しました。[#83844](https://github.com/ClickHouse/ClickHouse/pull/83844)([Dmitry Novik](https://github.com/novikd))。 +* jsoneachrowwithprogress における onprogress の呼び出しが、最終処理と同期して行われるようになりました。 [#83879](https://github.com/ClickHouse/ClickHouse/pull/83879) ([Sema Checherinda](https://github.com/CheSema)). +* これにより [#81303](https://github.com/ClickHouse/ClickHouse/issues/81303) がクローズされました。 [#83892](https://github.com/ClickHouse/ClickHouse/pull/83892)([Konstantin Vedernikov](https://github.com/scanhex12))。 +* const 引数と非 const 引数が混在している colorSRGBToOKLCH/colorOKLCHToSRGB を修正。 [#83906](https://github.com/ClickHouse/ClickHouse/pull/83906) ([Azat Khuzhin](https://github.com/azat)). +* RowBinary format における NULL 値を含む JSON パスの書き込みに関する不具合を修正。 [#83923](https://github.com/ClickHouse/ClickHouse/pull/83923) ([Pavel Kruglov](https://github.com/Avogar)). +* Date から DateTime64 へのキャスト時に、2106-02-07 より大きい値がオーバーフローしていた問題を修正しました。 [#83982](https://github.com/ClickHouse/ClickHouse/pull/83982) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* `filesystem_prefetches_limit` が(`MergeTreePrefetchedReadPool` からの場合だけでなく)常に適用されるようになりました。 [#83999](https://github.com/ClickHouse/ClickHouse/pull/83999) ([Azat Khuzhin](https://github.com/azat)). +* `MATERIALIZE COLUMN` クエリにより `checksums.txt` に予期しないファイルが書き込まれ、最終的にデータパーツが detached 状態になってしまう稀なバグを修正しました。 [#84007](https://github.com/ClickHouse/ClickHouse/pull/84007) ([alesapin](https://github.com/alesapin)). +* 不等号条件で JOIN を実行する際、一方のカラムが `LowCardinality` でもう一方が定数である場合に発生していた、`Expected single dictionary argument for function` という論理エラーを修正しました。[#81779](https://github.com/ClickHouse/ClickHouse/issues/81779) をクローズしました。 [#84019](https://github.com/ClickHouse/ClickHouse/pull/84019) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 構文ハイライトを有効にしたインタラクティブモードで clickhouse client を使用するとクラッシュする問題を修正しました。[#84025](https://github.com/ClickHouse/ClickHouse/pull/84025) ([Bharat Nallan](https://github.com/bharatnc))。 +* 再帰 CTE と組み合わせて `query condition cache` を使用した場合に誤った結果が返る問題を修正しました(issue [#81506](https://github.com/ClickHouse/ClickHouse/issues/81506))。[#84026](https://github.com/ClickHouse/ClickHouse/pull/84026)([zhongyuankai](https://github.com/zhongyuankai))。 +* パーツの定期的なリフレッシュ処理で例外を適切に処理するようにしました。 [#84083](https://github.com/ClickHouse/ClickHouse/pull/84083) ([Azat Khuzhin](https://github.com/azat)). +* 等価比較の被演算子の型が異なる場合や、定数を参照している場合に、フィルタを JOIN 条件へマージする処理を修正しました。これにより [#83432](https://github.com/ClickHouse/ClickHouse/issues/83432) を修正しました。 [#84145](https://github.com/ClickHouse/ClickHouse/pull/84145)([Dmitry Novik](https://github.com/novikd))。 +* テーブルに PROJECTION が存在し、`lightweight_mutation_projection_mode = 'rebuild'` が設定されていて、ユーザーがテーブル内の任意のブロックからすべての行を削除する lightweight delete を実行した場合に、まれに発生する ClickHouse のクラッシュを修正しました。 [#84158](https://github.com/ClickHouse/ClickHouse/pull/84158) ([alesapin](https://github.com/alesapin))。 +* バックグラウンドで動作するキャンセルチェック用スレッドによって発生していたデッドロックを修正。 [#84203](https://github.com/ClickHouse/ClickHouse/pull/84203) ([Antonio Andelic](https://github.com/antonio2368))。 +* 不正な `WINDOW` 定義に対して無限再帰的な解析が行われる問題を修正しました。[#83131](https://github.com/ClickHouse/ClickHouse/issues/83131) を修正します。[#84242](https://github.com/ClickHouse/ClickHouse/pull/84242)([Dmitry Novik](https://github.com/novikd))。 +* Bech32 のエンコーディングおよびデコーディングが誤った結果を生成していたバグを修正しました。このバグは、テストに使用していたアルゴリズムのオンライン実装にも同じ問題が存在していたため、当初は検出されませんでした。 [#84257](https://github.com/ClickHouse/ClickHouse/pull/84257) ([George Larionov](https://github.com/george-larionov)). +* `array()` 関数における空タプルの誤った構築方法を修正しました。これにより [#84202](https://github.com/ClickHouse/ClickHouse/issues/84202) が解決されました。 [#84297](https://github.com/ClickHouse/ClickHouse/pull/84297) ([Amos Bird](https://github.com/amosbird))。 +* parallel replicas を有効にした状態で、複数の INNER JOIN の後に RIGHT JOIN が続くクエリで発生する `LOGICAL_ERROR` を修正しました。このようなクエリでは parallel replicas を使用しないでください。[#84299](https://github.com/ClickHouse/ClickHouse/pull/84299)([Vladimir Cherkasov](https://github.com/vdimir))。 +* 以前は、`set` 索引が、グラニュールがフィルタを通過したかどうかを判定する際に `Nullable` カラムを考慮していませんでした(issue [#75485](https://github.com/ClickHouse/ClickHouse/issues/75485))。[#84305](https://github.com/ClickHouse/ClickHouse/pull/84305)([Elmi Ahmadov](https://github.com/ahmadov))。 +* ClickHouse は、テーブル型が小文字で指定されている Glue カタログからもテーブルを読み取れるようになりました。 [#84316](https://github.com/ClickHouse/ClickHouse/pull/84316) ([alesapin](https://github.com/alesapin))。 +* JOIN またはサブクエリが存在する場合には、テーブル関数を対応する cluster 版に置き換えないでください。 [#84335](https://github.com/ClickHouse/ClickHouse/pull/84335) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* `IAccessStorage` における logger の使用を修正。 [#84365](https://github.com/ClickHouse/ClickHouse/pull/84365) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* テーブル内のすべてのカラムを更新する論理更新で発生していた論理エラーを修正しました。 [#84380](https://github.com/ClickHouse/ClickHouse/pull/84380) ([Anton Popov](https://github.com/CurtizJ)). +* Codec `DoubleDelta` は、数値型のカラムにのみ適用できるようになりました。特に、`FixedString` カラムは `DoubleDelta` を使用して圧縮できなくなりました。([#80220](https://github.com/ClickHouse/ClickHouse/issues/80220) の修正)。 [#84383](https://github.com/ClickHouse/ClickHouse/pull/84383) ([Jimmy Aguilar Mena](https://github.com/Ergus))。 +* `MinMax` 索引の評価時に、NaN 値との比較で正しい範囲条件が使用されていませんでした。 [#84386](https://github.com/ClickHouse/ClickHouse/pull/84386) ([Elmi Ahmadov](https://github.com/ahmadov)). +* 遅延マテリアライゼーションを使用した Variant カラムの読み取りを修正。 [#84400](https://github.com/ClickHouse/ClickHouse/pull/84400) ([Pavel Kruglov](https://github.com/Avogar)). +* `zoutofmemory` をハードウェアエラーとして扱うようにしました。そうしないと論理エラーをスローします。詳しくは [https://github.com/clickhouse/clickhouse-core-incidents/issues/877](https://github.com/clickhouse/clickhouse-core-incidents/issues/877) を参照してください。 [#84420](https://github.com/ClickHouse/ClickHouse/pull/84420) ([Han Fei](https://github.com/hanfei1991))。 +* `no_password` で作成されたユーザーが、サーバー設定 `allow_no_password` を 0 に変更した後にログインを試みた際にサーバーがクラッシュする不具合を修正しました。 [#84426](https://github.com/ClickHouse/ClickHouse/pull/84426) ([Shankar Iyer](https://github.com/shankar-iyer)). +* Keeper の changelog への順不同の書き込みを修正しました。以前は、changelog への書き込みが進行中の状態で、ロールバックにより出力先のファイルが同時に変更される可能性がありました。これにより、ログの不整合やデータ損失が発生するおそれがありました。 [#84434](https://github.com/ClickHouse/ClickHouse/pull/84434) ([Antonio Andelic](https://github.com/antonio2368)). +* テーブルからすべての有効期限 (TTL) が削除された場合、MergeTree は TTL に関連する処理を一切行わないようになりました。 [#84441](https://github.com/ClickHouse/ClickHouse/pull/84441) ([alesapin](https://github.com/alesapin)). +* LIMIT を伴う並列分散 INSERT SELECT が許可されていましたが、本来は許可されるべきではなく、ターゲットテーブルでデータの重複を引き起こしていました。 [#84477](https://github.com/ClickHouse/ClickHouse/pull/84477) ([Igor Nikonov](https://github.com/devcrafter)). +* データレイクにおける仮想カラムを用いたファイルのプルーニングを修正。 [#84520](https://github.com/ClickHouse/ClickHouse/pull/84520) ([Kseniia Sumarokova](https://github.com/kssenii)). +* rocksdb ストレージを使用する Keeper において、イテレータが破棄されていなかったことによるリークを修正しました。 [#84523](https://github.com/ClickHouse/ClickHouse/pull/84523) ([Azat Khuzhin](https://github.com/azat)). +* ALTER MODIFY ORDER BY がソートキー内の有効期限 (TTL) カラムを検証していなかった不具合を修正しました。これにより、ALTER 処理時に ORDER BY 句で有効期限 (TTL) カラムが使用されている場合は正しく拒否されるようになり、テーブルの破損が発生する可能性を防ぎます。 [#84536](https://github.com/ClickHouse/ClickHouse/pull/84536) ([xiaohuanlin](https://github.com/xiaohuanlin)). +* 互換性のため、25.5 より前のバージョンに対する `allow_experimental_delta_kernel_rs` の値を `false` に変更しました。 [#84587](https://github.com/ClickHouse/ClickHouse/pull/84587) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* マニフェストファイルからスキーマを取得するのをやめ、各スナップショットごとに関連するスキーマを独立して保存するようにしました。各データファイルに対して、そのファイルに対応するスナップショットから関連するスキーマを推論します。以前の動作では、status が existing のエントリを含むマニフェストファイルについて、Iceberg の仕様に違反していました。 [#84588](https://github.com/ClickHouse/ClickHouse/pull/84588) ([Daniil Ivanik](https://github.com/divanik))。 +* Keeper の設定 `rotate_log_storage_interval = 0` によって ClickHouse がクラッシュする問題を修正しました。(issue [#83975](https://github.com/ClickHouse/ClickHouse/issues/83975)). [#84637](https://github.com/ClickHouse/ClickHouse/pull/84637) ([George Larionov](https://github.com/george-larionov)). +* S3Queue のロジックエラー「Table is already registered」を修正。[#84433](https://github.com/ClickHouse/ClickHouse/issues/84433) をクローズ。[https://github.com/ClickHouse/ClickHouse/pull/83530](https://github.com/ClickHouse/ClickHouse/pull/83530) の変更以降で発生していた不具合。[#84677](https://github.com/ClickHouse/ClickHouse/pull/84677)([Kseniia Sumarokova](https://github.com/kssenii))。 +* RefreshTask で 'view' から ZooKeeper を取得する際に 'mutex' をロックするように修正しました。 [#84699](https://github.com/ClickHouse/ClickHouse/pull/84699) ([Tuan Pham Anh](https://github.com/tuanpach)). +* 外部ソート使用時にレイジーカラムを使用すると発生する `CORRUPTED_DATA` エラーを修正しました。 [#84738](https://github.com/ClickHouse/ClickHouse/pull/84738) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* ストレージ `DeltaLake` における delta-kernel 使用時のカラムプルーニングの問題を修正しました。[#84543](https://github.com/ClickHouse/ClickHouse/issues/84543) をクローズしました。[#84745](https://github.com/ClickHouse/ClickHouse/pull/84745)([Kseniia Sumarokova](https://github.com/kssenii))。 +* DeltaLake ストレージの delta-kernel で認証情報を更新するように修正しました。 [#84751](https://github.com/ClickHouse/ClickHouse/pull/84751) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 接続トラブル発生後に不要な内部バックアップが開始される不具合を修正しました。 [#84755](https://github.com/ClickHouse/ClickHouse/pull/84755) ([Vitaly Baranov](https://github.com/vitlibar)). +* 遅延しているリモートソースに対してクエリを実行した際に、ベクターの範囲外アクセスが発生する可能性があった問題を修正しました。 [#84820](https://github.com/ClickHouse/ClickHouse/pull/84820) ([George Larionov](https://github.com/george-larionov)). +* `ngram` および `no_op` トークナイザーを使用した際に、空の入力トークンが原因で (実験的な) テキスト索引がクラッシュしなくなりました。 [#84849](https://github.com/ClickHouse/ClickHouse/pull/84849) ([Robert Schulze](https://github.com/rschu1ze)). +* `ReplacingMergeTree` および `CollapsingMergeTree` エンジンを使用するテーブルに対する論理更新の不具合を修正しました。 [#84851](https://github.com/ClickHouse/ClickHouse/pull/84851) ([Anton Popov](https://github.com/CurtizJ)). +* object queue エンジンを使用するテーブルで、すべての設定がテーブルメタデータに正しく保存されるように修正しました。 [#84860](https://github.com/ClickHouse/ClickHouse/pull/84860) ([Antonio Andelic](https://github.com/antonio2368)). +* Keeper が返すウォッチの合計数を修正。 [#84890](https://github.com/ClickHouse/ClickHouse/pull/84890) ([Antonio Andelic](https://github.com/antonio2368)). +* 25.7 より前のバージョンのサーバー上で作成された `ReplicatedMergeTree` エンジンを使用するテーブルに対する論理更新の問題を修正しました。 [#84933](https://github.com/ClickHouse/ClickHouse/pull/84933) ([Anton Popov](https://github.com/CurtizJ))。 +* `ALTER TABLE ... REPLACE PARTITION` クエリを実行した後に、レプリケーションなしの `MergeTree` エンジンを使用するテーブルに対する論理更新が正しく動作しない問題を修正しました。 [#84941](https://github.com/ClickHouse/ClickHouse/pull/84941) ([Anton Popov](https://github.com/CurtizJ)). +* クエリ内の真偽値リテラルに対するカラム名の生成を、"1"/"0" ではなく "true"/"false" を使用するように修正し、真偽値リテラルと整数リテラルとの間でカラム名が競合しないようにしました。 [#84945](https://github.com/ClickHouse/ClickHouse/pull/84945) ([xiaohuanlin](https://github.com/xiaohuanlin)). +* バックグラウンドスケジュールプールおよび executor におけるメモリトラッキングのずれを修正。 [#84946](https://github.com/ClickHouse/ClickHouse/pull/84946) ([Azat Khuzhin](https://github.com/azat)). +* Merge テーブルエンジンにおける、ソート順が不正確になる可能性のある問題を修正しました。 [#85025](https://github.com/ClickHouse/ClickHouse/pull/85025) ([Xiaozhe Yu](https://github.com/wudidapaopao))。 +* DiskEncrypted の未実装だった API を実装しました。 [#85028](https://github.com/ClickHouse/ClickHouse/pull/85028) ([Azat Khuzhin](https://github.com/azat)). +* 分散クエリコンテキストで相関サブクエリが使用されている場合にクラッシュを回避するためのチェックを追加しました。[#82205](https://github.com/ClickHouse/ClickHouse/issues/82205) を修正しました。[#85030](https://github.com/ClickHouse/ClickHouse/pull/85030)([Dmitry Novik](https://github.com/novikd))。 +* Iceberg は、`SELECT` クエリ間で関連するスナップショットバージョンをキャッシュしようとせず、常にスナップショットを正しく解決するようになりました。以前の Iceberg スナップショットのキャッシュの試みは、タイムトラベル機能を用いた Iceberg テーブルの利用時に問題を引き起こしていました。 [#85038](https://github.com/ClickHouse/ClickHouse/pull/85038) ([Daniil Ivanik](https://github.com/divanik))。 +* `AzureIteratorAsync` における二重解放の不具合を修正。 [#85064](https://github.com/ClickHouse/ClickHouse/pull/85064) ([Nikita Taranov](https://github.com/nickitat)). +* JWT で識別される USER を作成しようとしたときのエラーメッセージを改善。 [#85072](https://github.com/ClickHouse/ClickHouse/pull/85072) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* `ReplicatedMergeTree` におけるパッチパーツのクリーンアップ処理を修正しました。以前は、パッチパーツを実体化するマージ済みまたはミューテート済みパーツが別のレプリカからダウンロードされるまで、論理更新の結果が一時的にレプリカ上に反映されない場合がありました。 [#85121](https://github.com/ClickHouse/ClickHouse/pull/85121) ([Anton Popov](https://github.com/CurtizJ)). +* 型が異なる場合に mv で発生していた illegal_type_of_argument エラーを修正しました。 [#85135](https://github.com/ClickHouse/ClickHouse/pull/85135) ([Sema Checherinda](https://github.com/CheSema)). +* delta-kernel 実装で発生していたセグメンテーションフォルトを修正。 [#85160](https://github.com/ClickHouse/ClickHouse/pull/85160) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* メタデータファイルの移動に長時間を要する場合のレプリケーテッドデータベースの復旧処理を修正しました。 [#85177](https://github.com/ClickHouse/ClickHouse/pull/85177) ([Tuan Pham Anh](https://github.com/tuanpach))。 +* `additional_table_filters expression` 設定内で `IN (subquery)` を含む場合に発生する `Not-ready Set` の問題を修正しました。 [#85210](https://github.com/ClickHouse/ClickHouse/pull/85210) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* SYSTEM DROP REPLICA クエリ中の不要な `getStatus()` 呼び出しを除去しました。バックグラウンドでテーブルが削除されている場合に `Shutdown for storage is called` 例外が投げられるケースを修正しました。 [#85220](https://github.com/ClickHouse/ClickHouse/pull/85220) ([Nikolay Degterinsky](https://github.com/evillique)). +* `DeltaLake` エンジンの delta-kernel 実装におけるレースコンディションを修正しました。 [#85221](https://github.com/ClickHouse/ClickHouse/pull/85221) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `DeltaLake` エンジンで delta-kernel を無効化した状態におけるパーティション化データの読み取りを修正しました。これは 25.7 で動作しなくなっていました([https://github.com/ClickHouse/ClickHouse/pull/81136](https://github.com/ClickHouse/ClickHouse/pull/81136))。[#85223](https://github.com/ClickHouse/ClickHouse/pull/85223)([Kseniia Sumarokova](https://github.com/kssenii))。 +* CREATE OR REPLACE および RENAME クエリに対し、抜けていたテーブル名の長さチェックを追加しました。 [#85326](https://github.com/ClickHouse/ClickHouse/pull/85326) ([Michael Kolupaev](https://github.com/al13n321)). +* DEFINER が削除されている場合に、Replicated データベースの新しいレプリカで RMV を作成できない問題を修正しました。 [#85327](https://github.com/ClickHouse/ClickHouse/pull/85327) ([Nikolay Degterinsky](https://github.com/evillique)). +* 複合型の Iceberg への書き込み処理を修正。 [#85330](https://github.com/ClickHouse/ClickHouse/pull/85330) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* 複合型に対する下限値および上限値の指定はサポートされていません。 [#85332](https://github.com/ClickHouse/ClickHouse/pull/85332) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* オブジェクトストレージ関数から分散テーブルまたはリモートテーブル関数経由で読み取る際の論理エラーを修正。修正: [#84658](https://github.com/ClickHouse/ClickHouse/issues/84658)、[#85173](https://github.com/ClickHouse/ClickHouse/issues/85173)、[#52022](https://github.com/ClickHouse/ClickHouse/issues/52022)。[#85359](https://github.com/ClickHouse/ClickHouse/pull/85359)([alesapin](https://github.com/alesapin))。 +* 壊れたプロジェクションを含むパーツのバックアップ処理を修正しました。 [#85362](https://github.com/ClickHouse/ClickHouse/pull/85362) ([Antonio Andelic](https://github.com/antonio2368)). +* 安定するまでのリリースでは、プロジェクションで `_part_offset` カラムを使用できないようにしました。 [#85372](https://github.com/ClickHouse/ClickHouse/pull/85372) ([Sema Checherinda](https://github.com/CheSema)). +* JSON に対する ALTER UPDATE の実行中に発生するクラッシュおよびデータ破損を修正。 [#85383](https://github.com/ClickHouse/ClickHouse/pull/85383) ([Pavel Kruglov](https://github.com/Avogar)). +* 順序を逆方向に読み取る最適化を利用する parallel replicas のクエリで、誤った結果が返される可能性がありました。 [#85406](https://github.com/ClickHouse/ClickHouse/pull/85406) ([Igor Nikonov](https://github.com/devcrafter)). +* String のデシリアライズ中に MEMORY_LIMIT_EXCEEDED が発生した場合に未定義動作(クラッシュ)が起こる可能性があった問題を修正しました。 [#85440](https://github.com/ClickHouse/ClickHouse/pull/85440) ([Azat Khuzhin](https://github.com/azat)). +* 誤っていたメトリクス KafkaAssignedPartitions および KafkaConsumersWithAssignment を修正。 [#85494](https://github.com/ClickHouse/ClickHouse/pull/85494) ([Ilya Golshtein](https://github.com/ilejn)). +* PREWHERE 句(明示的指定・自動適用のいずれの場合も)が使用されているときに、処理済みバイト数の統計値が過小に報告される問題を修正しました。 [#85495](https://github.com/ClickHouse/ClickHouse/pull/85495) ([Michael Kolupaev](https://github.com/al13n321)). +* S3 リクエストレートのスローダウンに関する早期リターン条件を修正しました。再試行可能なエラーにより全スレッドが一時停止されている場合にスローダウン動作を有効にする条件として、`s3_slow_all_threads_after_network_error` と `backup_slow_all_threads_after_retryable_s3_error` の両方が真であることを要求するのではなく、いずれか一方が真であればよいように変更しました。 [#85505](https://github.com/ClickHouse/ClickHouse/pull/85505) ([Julia Kartseva](https://github.com/jkartseva))。 +* このPRは、REST カタログ経由で Iceberg テーブルに対してクエリを実行する際のメタデータ解決処理の不具合を修正します。... [#85531](https://github.com/ClickHouse/ClickHouse/pull/85531) ([Saurabh Kumar Ojha](https://github.com/saurabhojha)). +* `log_comment` または `insert_deduplication_token` の設定を変更する非同期 INSERT で、まれにクラッシュする不具合を修正しました。 [#85540](https://github.com/ClickHouse/ClickHouse/pull/85540) ([Anton Popov](https://github.com/CurtizJ)). +* HTTP 経由で multipart/form-data を使用した場合、date_time_input_format のようなパラメータは無視されていました。 [#85570](https://github.com/ClickHouse/ClickHouse/pull/85570) ([Sema Checherinda](https://github.com/CheSema)). +* icebergS3Cluster および icebergAzureCluster テーブル関数におけるシークレットのマスク処理を修正。 [#85658](https://github.com/ClickHouse/ClickHouse/pull/85658) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* `JSONExtract` で JSON 数値を Decimal 型に変換する際に発生していた精度の損失を修正しました。これにより、JSON 内の数値はもとの小数表現どおりに保持され、浮動小数点による丸め誤差を回避できるようになりました。 [#85665](https://github.com/ClickHouse/ClickHouse/pull/85665) ([ssive7b](https://github.com/ssive7b)). +* `DROP COLUMN` の後に、同じ `ALTER` ステートメント内で `COMMENT COLUMN IF EXISTS` を使用した際に発生していた `LOGICAL_ERROR` を修正しました。`IF EXISTS` 句は、同一ステートメント内でカラムが削除されている場合に、コメント操作を正しくスキップするようになりました。[#85688](https://github.com/ClickHouse/ClickHouse/pull/85688) ([xiaohuanlin](https://github.com/xiaohuanlin)). +* Delta Lake 用のキャッシュからの読み取り回数を修正。 [#85704](https://github.com/ClickHouse/ClickHouse/pull/85704) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 巨大な文字列を扱う際に発生する CoalescingMergeTree のセグメンテーションフォールトを修正しました。これにより [#84582](https://github.com/ClickHouse/ClickHouse/issues/84582) がクローズされました。[#85709](https://github.com/ClickHouse/ClickHouse/pull/85709)([Konstantin Vedernikov](https://github.com/scanhex12))。 +* iceberg 書き込み時にメタデータのタイムスタンプを更新するよう修正。 [#85711](https://github.com/ClickHouse/ClickHouse/pull/85711) ([Konstantin Vedernikov](https://github.com/scanhex12))。 +* `distributed_depth` を *Cluster 関数の指標として使用していたのは誤りであり、データ重複の原因となる可能性があります。代わりに `client_info.collaborate_with_initiator` を使用してください。 [#85734](https://github.com/ClickHouse/ClickHouse/pull/85734) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Spark は position delete ファイルを読み込めません。 [#85762](https://github.com/ClickHouse/ClickHouse/pull/85762) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* `send_logs_source_regexp` を修正([#85105](https://github.com/ClickHouse/ClickHouse/issues/85105) の非同期ロギングのリファクタリング後に発生した問題)。 [#85797](https://github.com/ClickHouse/ClickHouse/pull/85797) ([Azat Khuzhin](https://github.com/azat))。 +* MEMORY_LIMIT_EXCEEDED エラー発生時に update_field を使用する辞書で発生する可能性のあった不整合を修正しました。 [#85807](https://github.com/ClickHouse/ClickHouse/pull/85807) ([Azat Khuzhin](https://github.com/azat)). +* `Distributed` 宛先テーブルに対する並列分散 `INSERT SELECT` で、`WITH` ステートメント由来のグローバル定数をサポートするようになりました。以前は、このクエリで `Unknown expression identifier` エラーがスローされることがありました。[#85811](https://github.com/ClickHouse/ClickHouse/pull/85811) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* `deltaLakeAzure`、`deltaLakeCluster`、`icebergS3Cluster` および `icebergAzureCluster` の資格情報をマスクするようにしました。 [#85889](https://github.com/ClickHouse/ClickHouse/pull/85889) ([Julian Maicher](https://github.com/jmaicher))。 +* `DatabaseReplicated` を使用して `CREATE ... AS (SELECT * FROM s3Cluster(...))` を実行した際に発生していた論理エラーを修正しました。 [#85904](https://github.com/ClickHouse/ClickHouse/pull/85904) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* `url()` テーブル関数が送信する HTTP リクエストについて、非標準ポートへアクセスする際に Host ヘッダーにポート番号を正しく含めるよう修正しました。これにより、開発環境で一般的な、カスタムポート上で動作する MinIO などの S3 互換サービスに対して事前署名付き URL を使用する場合に発生していた認証エラーが解消されます。(Fixes [#85898](https://github.com/ClickHouse/ClickHouse/issues/85898)). [#85921](https://github.com/ClickHouse/ClickHouse/pull/85921) ([Tom Quist](https://github.com/tomquist)). +* これにより、Unity Catalog は非 Delta テーブルの場合、異常なデータ型を含むスキーマを無視するようになりました。[#85699](https://github.com/ClickHouse/ClickHouse/issues/85699) を修正。[#85950](https://github.com/ClickHouse/ClickHouse/pull/85950)([alesapin](https://github.com/alesapin))。 +* Iceberg のフィールドの null 許容性を修正。 [#85977](https://github.com/ClickHouse/ClickHouse/pull/85977) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* `Replicated` データベースのリカバリ処理におけるバグを修正しました。テーブル名に `%` 記号が含まれている場合、リカバリ中に異なる名前でテーブルが再作成される可能性がありました。 [#85987](https://github.com/ClickHouse/ClickHouse/pull/85987) ([Alexander Tokmakov](https://github.com/tavplubix))。 +* 空の `Memory` テーブルを復元する際に `BACKUP_ENTRY_NOT_FOUND` エラーにより復元が失敗する問題を修正。[#86012](https://github.com/ClickHouse/ClickHouse/pull/86012) ([Julia Kartseva](https://github.com/jkartseva)). +* 分散テーブルに対する ALTER 実行時に sharding_key の検査を追加しました。これまでは、不正な ALTER によってテーブル定義が壊れ、サーバーの再起動が必要になることがありました。 [#86015](https://github.com/ClickHouse/ClickHouse/pull/86015) ([Nikolay Degterinsky](https://github.com/evillique)). +* 空の Iceberg 削除ファイルが作成されないようになりました。 [#86061](https://github.com/ClickHouse/ClickHouse/pull/86061) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* 大きすぎる設定値によって S3Queue テーブルおよびレプリカの再起動が動作しなくなる問題を修正しました。 [#86074](https://github.com/ClickHouse/ClickHouse/pull/86074) ([Nikolay Degterinsky](https://github.com/evillique)). + +#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement} + +* デフォルトで、S3 を用いたテストに暗号化ディスクを使用するようにしました。 [#59898](https://github.com/ClickHouse/ClickHouse/pull/59898) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* インテグレーションテストでストリップされていないデバッグシンボルを取得するために、`clickhouse` バイナリを使用するようにしました。 [#83779](https://github.com/ClickHouse/ClickHouse/pull/83779) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* 内部の libxml2 を 2.14.4 から 2.14.5 に更新しました。 [#84230](https://github.com/ClickHouse/ClickHouse/pull/84230) ([Robert Schulze](https://github.com/rschu1ze)). +* 内部の curl を 8.14.0 から 8.15.0 に更新しました。 [#84231](https://github.com/ClickHouse/ClickHouse/pull/84231) ([Robert Schulze](https://github.com/rschu1ze)). +* CI におけるキャッシュ用のメモリ使用量を削減し、エビクション動作に対するテストを改善しました。 [#84676](https://github.com/ClickHouse/ClickHouse/pull/84676) ([alesapin](https://github.com/alesapin)). + +### ClickHouse 25.7 リリース(2025-07-24){#257} + +#### 後方互換性のない変更 {#backward-incompatible-change} + +* `extractKeyValuePairs` 関数の変更: 新しい引数 `unexpected_quoting_character_strategy` を追加しました。これは、クォートされていないキーまたは値を読み取っているときに、予期せず `quoting_character` が見つかった場合の挙動を制御します。値として指定できるのは `invalid`、`accept`、`promote` のいずれかです。`invalid` はキーを破棄し、キー待ち状態に戻ります。`accept` はそれをキーの一部として扱います。`promote` は直前の文字を破棄し、クォートされたキーとしてのパースを開始します。加えて、クォートされた値をパースした後は、ペア区切り文字が見つかった場合にのみ次のキーをパースします。[#80657](https://github.com/ClickHouse/ClickHouse/pull/80657) ([Arthur Passos](https://github.com/arthurpassos)). +* `countMatches` 関数でゼロバイト一致をサポートしました。従来の動作を維持したいユーザーは、設定 `count_matches_stop_at_empty_match` を有効にできます。[#81676](https://github.com/ClickHouse/ClickHouse/pull/81676) ([Elmi Ahmadov](https://github.com/ahmadov)). +* BACKUP の生成時に、専用のサーバー設定 (`max_backup_bandwidth_for_server`、`max_mutations_bandwidth_for_server`、`max_merges_bandwidth_for_server`) に加えて、ローカル用 (`max_local_read_bandwidth_for_server` および `max_local_write_bandwidth_for_server`) とリモート用 (`max_remote_read_network_bandwidth_for_server` および `max_remote_write_network_bandwidth_for_server`) のサーバー全体のスロットル機構を使用するようにしました。[#81753](https://github.com/ClickHouse/ClickHouse/pull/81753) ([Sergei Trifonov](https://github.com/serxa)). +* 挿入可能なカラムを持たないテーブルの作成を禁止しました。[#81835](https://github.com/ClickHouse/ClickHouse/pull/81835) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* アーカイブ内のファイル単位で cluster 関数の処理を並列化しました。以前のバージョンでは、アーカイブ全体(zip、tar、7z など)が 1 つの作業単位でした。新しい設定 `cluster_function_process_archive_on_multiple_nodes` を追加し、デフォルトは `true` です。`true` に設定すると、cluster 関数でアーカイブを処理する際のパフォーマンスが向上します。以前のバージョンでアーカイブ付きの cluster 関数を使用している場合、25.7+ へのアップグレード時の互換性とエラー回避のためには `false` に設定する必要があります。[#82355](https://github.com/ClickHouse/ClickHouse/pull/82355) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `SYSTEM RESTART REPLICAS` クエリが、Lazy データベース内のテーブルに対するアクセス権がない場合でもそれらのテーブルを起動させており、しかもそれらのテーブルが同時に drop されている最中に発生していました。注: 現在は、`SYSTEM RESTART REPLICAS` は `SHOW TABLES` の権限を持つデータベース内のレプリカのみを再起動します。これは自然な挙動です。[#83321](https://github.com/ClickHouse/ClickHouse/pull/83321) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + +#### 新機能 {#new-feature} + +* `MergeTree` ファミリーのテーブルに対する論理更新のサポートを追加しました。論理更新は、新しい構文 `UPDATE <table> SET col1 = val1, col2 = val2, ... WHERE <condition>` を用いて実行できます。論理更新を利用した論理削除機能を実装しました。これは `lightweight_delete_mode = 'lightweight_update'` を設定することで有効化できます。 [#82004](https://github.com/ClickHouse/ClickHouse/pull/82004) ([Anton Popov](https://github.com/CurtizJ))。 +* Iceberg のスキーマ進化で複合データ型をサポート。 [#73714](https://github.com/ClickHouse/ClickHouse/pull/73714) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* Iceberg テーブルへの `INSERT` をサポートしました。 [#82692](https://github.com/ClickHouse/ClickHouse/pull/82692) ([Konstantin Vedernikov](https://github.com/scanhex12))。 +* Iceberg のデータファイルをフィールド ID で読み取れるようにしました。これにより Iceberg との互換性が向上します。メタデータ内のフィールドをリネームしても、基盤となる Parquet ファイル内の別名のフィールドへマッピングできます。これにより [#83065](https://github.com/ClickHouse/ClickHouse/issues/83065) がクローズされました。 [#83653](https://github.com/ClickHouse/ClickHouse/pull/83653)([Konstantin Vedernikov](https://github.com/scanhex12))。 +* ClickHouse で Iceberg 向けの圧縮 `metadata.json` ファイルがサポートされるようになりました。[#70874](https://github.com/ClickHouse/ClickHouse/issues/70874) を修正しました。[#81451](https://github.com/ClickHouse/ClickHouse/pull/81451)([alesapin](https://github.com/alesapin))。 +* Glue カタログで `TimestampTZ` をサポートするようになりました。これにより [#81654](https://github.com/ClickHouse/ClickHouse/issues/81654) がクローズされました。[#83132](https://github.com/ClickHouse/ClickHouse/pull/83132)([Konstantin Vedernikov](https://github.com/scanhex12))。 +* AI を活用した SQL 生成機能を ClickHouse クライアントに追加しました。クエリの先頭に `??` を付けて入力することで、自然言語による記述から SQL クエリを生成できるようになりました。OpenAI および Anthropic のプロバイダーをサポートし、スキーマの自動検出に対応します。 [#83314](https://github.com/ClickHouse/ClickHouse/pull/83314) ([Kaushik Iska](https://github.com/iskakaushik)). +* Geo 型を WKB 形式で出力する関数を追加しました。 [#82935](https://github.com/ClickHouse/ClickHouse/pull/82935) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* ソース用に新しいアクセス種別 `READ` と `WRITE` を導入し、ソースに関連する従来のすべてのアクセス種別は非推奨になりました。これまでの `GRANT S3 ON *.* TO user` は、今後は `GRANT READ, WRITE ON S3 TO user` となります。これにより、ソースに対する `READ` と `WRITE` 権限を分離して付与することも可能になります。例: `GRANT READ ON * TO user`, `GRANT WRITE ON S3 TO user`。この機能は `access_control_improvements.enable_read_write_grants` という設定で制御され、デフォルトでは無効になっています。[#73659](https://github.com/ClickHouse/ClickHouse/pull/73659) ([pufit](https://github.com/pufit)). +* NumericIndexedVector: ビットスライスおよび Roaring Bitmap 圧縮を基盤とした新しいベクターデータ構造であり、構築・分析・要素単位の算術演算のための 20 以上の関数を備えています。ストレージ使用量を削減し、スパースデータに対する結合、フィルタおよび集約処理を高速化できます。[#70582](https://github.com/ClickHouse/ClickHouse/issues/70582) および T. Xiong と Y. Wang による VLDB 2024 掲載論文 [“Large-Scale Metric Computation in Online Controlled Experiment Platform” paper](https://arxiv.org/abs/2405.08411) を実装しています。 [#74193](https://github.com/ClickHouse/ClickHouse/pull/74193) ([FriendLey](https://github.com/FriendLey))。 +* ワークロード設定 `max_waiting_queries` がサポートされるようになりました。クエリキューのサイズを制限するために使用できます。上限に達した場合、それ以降のすべてのクエリは `SERVER_OVERLOADED` エラーで失敗します。[#81250](https://github.com/ClickHouse/ClickHouse/pull/81250)([Oleg Doronin](https://github.com/dorooleg))。 +* 金融関数を追加:`financialInternalRateOfReturnExtended` (`XIRR`)、`financialInternalRateOfReturn` (`IRR`)、`financialNetPresentValueExtended` (`XNPV`)、`financialNetPresentValue` (`NPV`)。[#81599](https://github.com/ClickHouse/ClickHouse/pull/81599)([Joanna Hulboj](https://github.com/jh0x))。 +* 2 つのポリゴンの交差を判定するための地理空間関数 `polygonsIntersectCartesian` と `polygonsIntersectSpherical` を追加しました。 [#81882](https://github.com/ClickHouse/ClickHouse/pull/81882) ([Paul Lamb](https://github.com/plamb))。 +* MergeTree ファミリーのテーブルで `_part_granule_offset` 仮想カラムをサポートしました。このカラムは、各データパーツ内で各行が属する granule/mark の 0 始まりのインデックスを示します。これは [#79572](https://github.com/ClickHouse/ClickHouse/issues/79572) に対応するものです。[#82341](https://github.com/ClickHouse/ClickHouse/pull/82341) ([Amos Bird](https://github.com/amosbird))。[#82341](https://github.com/ClickHouse/ClickHouse/pull/82341) ([Amos Bird](https://github.com/amosbird)) +* sRGB 色空間と OkLCH 色空間の間で色を変換するための SQL 関数 `colorSRGBToOkLCH` と `colorOkLCHToSRGB` を追加しました。 [#83679](https://github.com/ClickHouse/ClickHouse/pull/83679) ([Fgrtue](https://github.com/Fgrtue))。 +* `CREATE USER` クエリでユーザー名にパラメータを指定できるようになりました。 [#81387](https://github.com/ClickHouse/ClickHouse/pull/81387) ([Diskein](https://github.com/Diskein)). +* `system.formats` テーブルに、HTTP コンテンツタイプやスキーマ推論の対応状況など、フォーマットに関する拡張情報が含まれるようになりました。 [#81505](https://github.com/ClickHouse/ClickHouse/pull/81505) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 + +#### 実験的機能 {#experimental-feature} + +* テキスト索引を検索するための汎用ツールとして、`searchAny` および `searchAll` 関数を追加しました。 [#80641](https://github.com/ClickHouse/ClickHouse/pull/80641) ([Elmi Ahmadov](https://github.com/ahmadov)). +* テキスト索引で新しい `split` トークナイザーをサポートしました。 [#81752](https://github.com/ClickHouse/ClickHouse/pull/81752) ([Elmi Ahmadov](https://github.com/ahmadov)). +* `text` 索引のデフォルトの索引粒度の値を 64 に変更しました。これにより、社内ベンチマークにおける平均的なテストクエリの期待されるパフォーマンスが向上します。 [#82162](https://github.com/ClickHouse/ClickHouse/pull/82162) ([Jimmy Aguilar Mena](https://github.com/Ergus)). +* 256 ビットのビットマップは、状態から出るラベルを順序付きで格納しますが、遷移先の状態はハッシュテーブル内に現れる順序でディスクに保存されます。そのため、ディスクから読み込む際に、ラベルが誤った次の状態を指してしまう可能性があります。 [#82783](https://github.com/ClickHouse/ClickHouse/pull/82783) ([Elmi Ahmadov](https://github.com/ahmadov)). +* テキスト索引における FST ツリーの blob に対して zstd 圧縮を有効化しました。 [#83093](https://github.com/ClickHouse/ClickHouse/pull/83093) ([Elmi Ahmadov](https://github.com/ahmadov)). +* ベクトル類似度索引をベータ版に昇格しました。ベクトル類似度索引を使用するには、有効化が必要なエイリアス設定 `enable_vector_similarity_index` を導入しました。 [#83459](https://github.com/ClickHouse/ClickHouse/pull/83459) ([Robert Schulze](https://github.com/rschu1ze)). +* 実験的なゼロコピー・レプリケーションに関連する実験的な `send_metadata` ロジックを削除しました。これは一度も使用されておらず、このコードをサポートしている人もいませんでした。さらに、これに関連するテストも存在しなかったため、かなり前から壊れていた可能性が高いです。 [#82508](https://github.com/ClickHouse/ClickHouse/pull/82508) ([alesapin](https://github.com/alesapin)). +* `StorageKafka2` を `system.kafka_consumers` に統合しました。 [#82652](https://github.com/ClickHouse/ClickHouse/pull/82652) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* `(a < 1 and a > 0) or b = 3` のような複雑な CNF/DNF を、STATISTICS に基づいて推定するようにしました。 [#82663](https://github.com/ClickHouse/ClickHouse/pull/82663) ([Han Fei](https://github.com/hanfei1991)). + +#### パフォーマンスの向上 {#performance-improvement} + +* 非同期ロギングを導入しました。ログを低速なデバイスに出力する場合でも、クエリが遅延しなくなりました。 [#82516](https://github.com/ClickHouse/ClickHouse/pull/82516) ([Raúl Marín](https://github.com/Algunenano))。キュー内に保持されるエントリ数に上限を設けました。 [#83214](https://github.com/ClickHouse/ClickHouse/pull/83214) ([Raúl Marín](https://github.com/Algunenano))。 +* Parallel distributed INSERT SELECT は、各 shard(分片)上で独立して INSERT SELECT が実行されるモードにおいて、デフォルトで有効になりました。`parallel_distributed_insert_select` SETTING を参照してください。 [#83040](https://github.com/ClickHouse/ClickHouse/pull/83040) ([Igor Nikonov](https://github.com/devcrafter)). +* 集約クエリに、`Nullable` ではないカラムに対する単一の `count()` 関数のみが含まれている場合、ハッシュテーブルの探索時に集約ロジックが完全にインライン化されます。これにより、集約状態を割り当てて維持する必要がなくなり、メモリ使用量と CPU オーバーヘッドが大幅に削減されます。これは部分的に [#81982](https://github.com/ClickHouse/ClickHouse/issues/81982) に対処するものです。 [#82104](https://github.com/ClickHouse/ClickHouse/pull/82104) ([Amos Bird](https://github.com/amosbird))。 +* `HashJoin` のパフォーマンスを改善しました。典型的なキーが 1 カラムのみの場合には、ハッシュマップに対する余分なループ処理を削除し、さらに `null_map` および `join_mask` が常に `true` または `false` である場合には、そのチェックを省略するようにしました。 [#82308](https://github.com/ClickHouse/ClickHouse/pull/82308) ([Nikita Taranov](https://github.com/nickitat))。 +* `-If` コンビネータに対する軽微な最適化。 [#78454](https://github.com/ClickHouse/ClickHouse/pull/78454) ([李扬](https://github.com/taiyang-li)). +* ベクトル類似度インデックスを使用するベクトル検索クエリは、ストレージの読み取り回数と CPU 使用量が削減されることで、より低レイテンシで完了します。 [#79103](https://github.com/ClickHouse/ClickHouse/pull/79103) ([Shankar Iyer](https://github.com/shankar-iyer)). +* `filterPartsByQueryConditionCache` においても `merge_tree_min_{rows,bytes}_for_seek` を考慮するようにし、索引によるフィルタリングを行う他のメソッドと整合するようにしました。[#80312](https://github.com/ClickHouse/ClickHouse/pull/80312) ([李扬](https://github.com/taiyang-li))。 +* `TOTALS` ステップ以降のパイプライン処理をマルチスレッド化しました。 [#80331](https://github.com/ClickHouse/ClickHouse/pull/80331) ([UnamedRus](https://github.com/UnamedRus)). +* `Redis` および `KeeperMap` ストレージのキーによるフィルタリングを修正。 [#81833](https://github.com/ClickHouse/ClickHouse/pull/81833) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* 新しい設定 `min_joined_block_size_rows`(`min_joined_block_size_bytes` と同様。デフォルトは 65409)を追加し、JOIN の入力および出力ブロックに対する最小ブロックサイズ(行数)を制御できるようにしました(JOIN アルゴリズムが対応している場合)。小さいブロックはまとめて結合されます。 [#81886](https://github.com/ClickHouse/ClickHouse/pull/81886) ([Nikita Taranov](https://github.com/nickitat))。 +* `ATTACH PARTITION` で全キャッシュがクリアされることはなくなりました。 [#82377](https://github.com/ClickHouse/ClickHouse/pull/82377) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 同値類を使用して冗長な JOIN 操作を削除することで、相関サブクエリ向けに生成されるプランを最適化します。すべての相関カラムに対して同値な式が存在する場合、`query_plan_correlated_subqueries_use_substitution` 設定が有効になっていれば、`CROSS JOIN` は生成されません。[#82435](https://github.com/ClickHouse/ClickHouse/pull/82435)([Dmitry Novik](https://github.com/novikd))。 +* `EXISTS` 関数の引数として使用されている場合、相関サブクエリでは必要なカラムのみを読み取るようにしました。 [#82443](https://github.com/ClickHouse/ClickHouse/pull/82443) ([Dmitry Novik](https://github.com/novikd)). +* クエリ解析中のクエリツリーの比較をわずかに高速化しました。 [#82617](https://github.com/ClickHouse/ClickHouse/pull/82617) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* `ProfileEvents` の `Counter` にアラインメントを追加し、フォールスシェアリングを減らしました。 [#82697](https://github.com/ClickHouse/ClickHouse/pull/82697) ([Jiebin Sun](https://github.com/jiebinn))。 +* [#82308](https://github.com/ClickHouse/ClickHouse/issues/82308) で行われた `null_map` と `JoinMask` の最適化が、複数の OR 条件を含む JOIN のケースにも適用されました。また、`KnownRowsHolder` データ構造も最適化されました。[#83041](https://github.com/ClickHouse/ClickHouse/pull/83041)([Nikita Taranov](https://github.com/nickitat))。 +* フラグへの各アクセス時にハッシュを計算することを避けるため、JOIN フラグにはプレーンな `std::vector` を使用します。 [#83043](https://github.com/ClickHouse/ClickHouse/pull/83043) ([Nikita Taranov](https://github.com/nickitat))。 +* `HashJoin` が `lazy` 出力モードを使用している場合、結果カラム用のメモリを事前に確保しないようにしました。これは、特に一致件数が少ない場合には非効率的です。さらに、結合が完了した後であれば一致件数を正確に把握できるため、より精度の高い事前確保が可能です。[#83304](https://github.com/ClickHouse/ClickHouse/pull/83304)([Nikita Taranov](https://github.com/nickitat))。 +* パイプライン構築時のポートヘッダーでのメモリコピーを最小化しました。元の[PR](https://github.com/ClickHouse/ClickHouse/pull/70105)は[heymind](https://github.com/heymind)によるものです。[#83381](https://github.com/ClickHouse/ClickHouse/pull/83381)([Raúl Marín](https://github.com/Algunenano))。 +* RocksDB ストレージ使用時の clickhouse-keeper の起動を改善しました。 [#83390](https://github.com/ClickHouse/ClickHouse/pull/83390) ([Antonio Andelic](https://github.com/antonio2368)). +* 高い同時実行負荷がかかる状況でのロック競合を減らすため、ストレージスナップショットデータの作成中はロックを保持しないようにしました。 [#83510](https://github.com/ClickHouse/ClickHouse/pull/83510) ([Duc Canh Le](https://github.com/canhld94)). +* パースエラーが発生しない場合にシリアライザを再利用することで、`ProtobufSingle` 入力形式のパフォーマンスを向上させました。 [#83613](https://github.com/ClickHouse/ClickHouse/pull/83613) ([Eduard Karacharov](https://github.com/korowa)). +* 短いクエリを高速化するためのパイプライン構築処理のパフォーマンスを改善しました。 [#83631](https://github.com/ClickHouse/ClickHouse/pull/83631) ([Raúl Marín](https://github.com/Algunenano)). +* 短いクエリを高速化するため、`MergeTreeReadersChain::getSampleBlock` を最適化しました。[#83875](https://github.com/ClickHouse/ClickHouse/pull/83875)([Raúl Marín](https://github.com/Algunenano))。 +* 非同期リクエストによりデータカタログでのテーブル一覧表示を高速化。 [#81084](https://github.com/ClickHouse/ClickHouse/pull/81084) ([alesapin](https://github.com/alesapin)). +* `s3_slow_all_threads_after_network_error` 設定が有効な場合、S3 のリトライ処理にジッターを導入しました。 [#81849](https://github.com/ClickHouse/ClickHouse/pull/81849) ([zoomxi](https://github.com/zoomxi))。 + +#### 改良 {#improvement} + +* 可読性を高めるために、括弧を複数の色で色分けして表示するようにしました。 [#82538](https://github.com/ClickHouse/ClickHouse/pull/82538) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* LIKE/REGEXP パターンを入力しているときにメタ文字をハイライト表示するようにしました。これは既に `clickhouse-format` や `clickhouse-client` の echo 出力では対応済みでしたが、今回コマンドプロンプトでも行われるようになりました。[#82871](https://github.com/ClickHouse/ClickHouse/pull/82871)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `clickhouse-format` 内およびクライアントの echo 出力でのハイライトは、コマンドラインプロンプトでのハイライトと同様に動作します。[#82874](https://github.com/ClickHouse/ClickHouse/pull/82874) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `plain_rewritable` ディスクがデータベースメタデータ用のディスクとして利用できるようになりました。データベースディスクとしての利用をサポートするため、`plain_rewritable` に `moveFile` と `replaceFile` メソッドを実装しました。 [#79424](https://github.com/ClickHouse/ClickHouse/pull/79424) ([Tuan Pham Anh](https://github.com/tuanpach)). +* `PostgreSQL`、`MySQL`、`DataLake` データベースのバックアップを許可しました。これらのデータベースのバックアップでは、定義のみが保存され、中身のデータは保存されません。[#79982](https://github.com/ClickHouse/ClickHouse/pull/79982)([Nikolay Degterinsky](https://github.com/evillique))。 +* 設定 `allow_experimental_join_condition` は、現在は常に許可されているため、廃止予定としてマークされました。 [#80566](https://github.com/ClickHouse/ClickHouse/pull/80566) ([Vladimir Cherkasov](https://github.com/vdimir)). +* ClickHouse の非同期メトリクスに pressure メトリクスを追加しました。 [#80779](https://github.com/ClickHouse/ClickHouse/pull/80779) ([Xander Garbett](https://github.com/Garbett1)). +* マークキャッシュからのエビクションを追跡するためのメトリクス `MarkCacheEvictedBytes`、`MarkCacheEvictedMarks`、`MarkCacheEvictedFiles` を追加しました(issue [#60989](https://github.com/ClickHouse/ClickHouse/issues/60989))。[#80799](https://github.com/ClickHouse/ClickHouse/pull/80799)([Shivji Kumar Jha](https://github.com/shiv4289))。 +* Parquet の enum 型を、[仕様](https://github.com/apache/parquet-format/blob/master/LogicalTypes.md#enum)で規定されているとおり byte array(バイト配列)として書き込めるようにしました。[#81090](https://github.com/ClickHouse/ClickHouse/pull/81090) ([Arthur Passos](https://github.com/arthurpassos))。 +* `DeltaLake` テーブルエンジンの改善: delta-kernel-rs に `ExpressionVisitor` API が追加されており、この PR ではその API を実装し、パーティションカラムの式変換に適用しています(これにより、これまでコード内で使用していた、delta-kernel-rs における古く非推奨となっている方式を置き換えます)。将来的には、この `ExpressionVisitor` により、統計情報に基づくプルーニングや、`DeltaLake` 固有のいくつかの機能も実装できるようになります。さらに、この変更の目的は、`DeltaLakeCluster` テーブルエンジンでパーティションプルーニングをサポートすることです(構文解析された式の結果である ActionsDAG はシリアライズされ、データパスと一緒にイニシエータから送信されます。プルーニングに必要なこの種の情報は、データファイル一覧時のメタ情報としてのみ利用可能であり、その処理はイニシエータだけが行いますが、各読み取りサーバ上のデータに対して適用される必要があるためです)。 [#81136](https://github.com/ClickHouse/ClickHouse/pull/81136) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* 名前付きタプルのスーパータイプを導出する際に要素名を保持するようにしました。 [#81345](https://github.com/ClickHouse/ClickHouse/pull/81345) ([lgbo](https://github.com/lgbo-ustc)). +* StorageKafka2 において、以前にコミットされたオフセットに依存しないよう、消費したメッセージを手動でカウントするようにしました。 [#81662](https://github.com/ClickHouse/ClickHouse/pull/81662) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* `clickhouse-keeper-utils` を追加しました。ClickHouse Keeper データを管理および分析するための新しいコマンドラインツールです。このツールは、スナップショットおよびチェンジログからの状態のダンプ取得、チェンジログファイルの分析、特定のログ範囲の抽出をサポートします。 [#81677](https://github.com/ClickHouse/ClickHouse/pull/81677) ([Antonio Andelic](https://github.com/antonio2368)). +* 合計およびユーザーごとのネットワークスロットルはリセットされないようになり、`max_network_bandwidth_for_all_users` と `max_network_bandwidth_for_all_users` の制限値が超過されることがなくなりました。 [#81729](https://github.com/ClickHouse/ClickHouse/pull/81729) ([Sergei Trifonov](https://github.com/serxa))。 +* 出力フォーマットとして GeoParquet 形式への書き込みをサポートしました。 [#81784](https://github.com/ClickHouse/ClickHouse/pull/81784) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* 未完了のデータミューテーションの影響下にあるカラムの名前を変更してしまう場合は、`RENAME COLUMN` の ALTER ミューテーションを開始できないようにしました。 [#81823](https://github.com/ClickHouse/ClickHouse/pull/81823) ([Mikhail Artemenko](https://github.com/Michicosun))。 +* `Connection` ヘッダーは、接続を維持すべきだと判断できた時点で、ヘッダー群の最後に送信されるようになりました。 [#81951](https://github.com/ClickHouse/ClickHouse/pull/81951) ([Sema Checherinda](https://github.com/CheSema)). +* `listen_backlog`(デフォルト 4096)に基づいて、TCP サーバーのキュー長(デフォルト 64)を調整するようにしました。 [#82045](https://github.com/ClickHouse/ClickHouse/pull/82045) ([Azat Khuzhin](https://github.com/azat))。 +* `max_local_read_bandwidth_for_server` と `max_local_write_bandwidth_for_server` を、サーバーを再起動することなく動的に再読み込みできるようにしました。 [#82083](https://github.com/ClickHouse/ClickHouse/pull/82083) ([Kai Zhu](https://github.com/nauu)). +* `TRUNCATE TABLE system.warnings` を使用して `system.warnings` テーブルからすべての警告を削除できるようにしました。 [#82087](https://github.com/ClickHouse/ClickHouse/pull/82087) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* データレイククラスタ関数におけるパーティションプルーニングを修正。 [#82131](https://github.com/ClickHouse/ClickHouse/pull/82131) ([Kseniia Sumarokova](https://github.com/kssenii)). +* DeltaLakeCluster テーブル関数でのパーティション化されたデータの読み取りを修正しました。この PR では cluster 関数群のプロトコルバージョンを引き上げ、イニシエーターからレプリカへ追加情報を送信できるようにしています。この追加情報には delta-kernel の transform 式が含まれており、パーティションカラム(および将来的には生成カラムなどの他の情報)をパースするために必要です。 [#82132](https://github.com/ClickHouse/ClickHouse/pull/82132) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* 関数 `reinterpret` は、`T` が固定長データ型である場合に `Array(T)` への変換をサポートするようになりました(issue [#82621](https://github.com/ClickHouse/ClickHouse/issues/82621))。[#83399](https://github.com/ClickHouse/ClickHouse/pull/83399)([Shankar Iyer](https://github.com/shankar-iyer))。 +* database Datalake が、よりわかりやすい例外をスローするようになりました。 [#81211](https://github.com/ClickHouse/ClickHouse/issues/81211) を修正しました。 [#82304](https://github.com/ClickHouse/ClickHouse/pull/82304)([alesapin](https://github.com/alesapin))。 +* `HashJoin::needUsedFlagsForPerRightTableRow` から false を返すことで CROSS JOIN の動作を改善。 [#82379](https://github.com/ClickHouse/ClickHouse/pull/82379) ([lgbo](https://github.com/lgbo-ustc)). +* map カラムの読み書きを Tuple の Array として行えるようにしました。 [#82408](https://github.com/ClickHouse/ClickHouse/pull/82408) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* [Rust](https://clickhouse.com/blog/rust) クレートのライセンスを `system.licenses` に一覧できるようにしました。 [#82440](https://github.com/ClickHouse/ClickHouse/pull/82440) ([Raúl Marín](https://github.com/Algunenano))。 +* `{uuid}` のようなマクロを、S3Queue テーブルエンジンの `keeper_path` 設定項目で使用できるようになりました。 [#82463](https://github.com/ClickHouse/ClickHouse/pull/82463) ([Nikolay Degterinsky](https://github.com/evillique))。 +* Keeper の改善: バックグラウンドスレッドでディスク間の changelog ファイルを移動するようにしました。以前は、changelog を別のディスクへ移動する処理が完了するまで、Keeper 全体がブロックされていました。これにより、移動処理に時間がかかる場合(例: S3 ディスクへの移動)には、パフォーマンスの低下を招いていました。 [#82485](https://github.com/ClickHouse/ClickHouse/pull/82485) ([Antonio Andelic](https://github.com/antonio2368)). +* Keeper の改善: 新しい設定項目 `keeper_server.cleanup_old_and_ignore_new_acl` を追加しました。有効化すると、すべてのノードの ACL が消去され、新しいリクエストに対する ACL は無視されます。ノードから ACL を完全に削除することが目的の場合は、新しいスナップショットが作成されるまで、この設定を有効のままにしておくことが重要です。 [#82496](https://github.com/ClickHouse/ClickHouse/pull/82496) ([Antonio Andelic](https://github.com/antonio2368)). +* S3Queue テーブルエンジンを使用するテーブルでのストリーミングを無効化できる新しいサーバー設定 `s3queue_disable_streaming` を追加しました。この設定はサーバーを再起動せずに変更できます。 [#82515](https://github.com/ClickHouse/ClickHouse/pull/82515) ([Kseniia Sumarokova](https://github.com/kssenii)). +* ファイルシステムキャッシュの動的リサイズ機能をリファクタリングし、イントロスペクションのためのログをさらに追加しました。 [#82556](https://github.com/ClickHouse/ClickHouse/pull/82556) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 設定ファイルがない場合でも、`clickhouse-server` はデフォルト設定と同様に PostgreSQL 用のポート 9005 をリッスンします。 [#82633](https://github.com/ClickHouse/ClickHouse/pull/82633) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* `ReplicatedMergeTree::executeMetadataAlter` では、StorageID を取得し、DDLGuard を取得せずに `IDatabase::alterTable` を呼び出そうとします。この間に、問題となっているテーブルを別のテーブルと技術的には入れ替えることができるため、定義を取得すると誤ったテーブルの定義を取得してしまう可能性があります。これを回避するため、`IDatabase::alterTable` を呼び出そうとする際に UUID が一致するかどうかを確認するチェックを別途追加しました。[#82666](https://github.com/ClickHouse/ClickHouse/pull/82666) ([Nikolay Degterinsky](https://github.com/evillique))。 +* 読み取り専用のリモートディスクを使用するデータベースをアタッチする際は、`DatabaseCatalog` にテーブル UUID を手動で追加する必要があります。 [#82670](https://github.com/ClickHouse/ClickHouse/pull/82670) ([Tuan Pham Anh](https://github.com/tuanpach))。 +* `NumericIndexedVector` で `nan` および `inf` を使用できないようにしました。これにより [#82239](https://github.com/ClickHouse/ClickHouse/issues/82239) などが修正されました。 [#82681](https://github.com/ClickHouse/ClickHouse/pull/82681)([Raufs Dunamalijevs](https://github.com/rienath))。 +* `X-ClickHouse-Progress` および `X-ClickHouse-Summary` ヘッダーのフォーマットでゼロ値を省略しないようにしました。 [#82727](https://github.com/ClickHouse/ClickHouse/pull/82727) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Keeper の改善: world:anyone ACL に対して特定の権限をサポート。 [#82755](https://github.com/ClickHouse/ClickHouse/pull/82755) ([Antonio Andelic](https://github.com/antonio2368)). +* SummingMergeTree テーブルで、合計対象として明示的に列挙されているカラムを対象とする `RENAME COLUMN` や `DROP COLUMN` を許可しないようにしました。[#81836](https://github.com/ClickHouse/ClickHouse/issues/81836) をクローズしました。[#82821](https://github.com/ClickHouse/ClickHouse/pull/82821)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `Decimal` から `Float32` への変換精度を改善しました。`Decimal` から `BFloat16` への変換を実装しました。[#82660](https://github.com/ClickHouse/ClickHouse/issues/82660) をクローズしました。 [#82823](https://github.com/ClickHouse/ClickHouse/pull/82823)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* Web UI のスクロールバーの見た目が少し良くなりました。 [#82869](https://github.com/ClickHouse/ClickHouse/pull/82869) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 組み込み設定を備えた `clickhouse-server` で、HTTP OPTIONS レスポンスを返すことにより Web UI を利用できるようになりました。 [#82870](https://github.com/ClickHouse/ClickHouse/pull/82870) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* config 内のパスに対して追加の Keeper ACL を指定できるようになりました。特定のパスに追加の ACL を設定する場合は、config の `zookeeper.path_acls` の下に定義してください。 [#82898](https://github.com/ClickHouse/ClickHouse/pull/82898) ([Antonio Andelic](https://github.com/antonio2368)). +* ミューテーションのスナップショットは、可視パーツのスナップショットから構築されるようになりました。また、スナップショットで使用されるミューテーションカウンタは、含まれるミューテーションに基づいて再計算されます。 [#82945](https://github.com/ClickHouse/ClickHouse/pull/82945) ([Mikhail Artemenko](https://github.com/Michicosun)). +* Keeper がソフトメモリ制限により書き込みを拒否した場合に、ProfileEvent を追加するようにしました。 [#82963](https://github.com/ClickHouse/ClickHouse/pull/82963) ([Xander Garbett](https://github.com/Garbett1)). +* `commit_time` と `commit_id` のカラムを `system.s3queue_log` に追加。 [#83016](https://github.com/ClickHouse/ClickHouse/pull/83016) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 場合によっては、メトリクスに複数のディメンション(次元)が必要になることがあります。たとえば、単一のカウンタではなく、エラーコードごとに失敗したマージやミューテーションをカウントしたい場合です。そのために、この要件を満たす `system.dimensional_metrics` を導入し、最初のディメンション付きメトリクスとして `failed_merges` を追加しました。 [#83030](https://github.com/ClickHouse/ClickHouse/pull/83030) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* ClickHouse クライアントで不明な設定に関する警告を集約し、サマリとしてログに記録するようにしました。 [#83042](https://github.com/ClickHouse/ClickHouse/pull/83042) ([Bharat Nallan](https://github.com/bharatnc))。 +* ClickHouse クライアントは、接続エラー発生時にローカルポート番号を報告するようになりました。 [#83050](https://github.com/ClickHouse/ClickHouse/pull/83050) ([Jianfei Hu](https://github.com/incfly))。 +* `AsynchronousMetrics` におけるエラー処理がわずかに改善されました。`/sys/block` ディレクトリが存在するがアクセスできない場合、サーバーはブロックデバイスの監視なしで起動します。[#79229](https://github.com/ClickHouse/ClickHouse/issues/79229) をクローズしました。 [#83115](https://github.com/ClickHouse/ClickHouse/pull/83115)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `SystemLogs` のシャットダウン順序を変更し、通常テーブルの後かつシステムテーブルの前に行うようにしました(以前は通常テーブルの前に行っていました)。 [#83134](https://github.com/ClickHouse/ClickHouse/pull/83134) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `S3Queue` のシャットダウン処理のログを追加しました。 [#83163](https://github.com/ClickHouse/ClickHouse/pull/83163) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `Time` および `Time64` を `MM:SS`、`M:SS`、`SS`、`S` 形式として解釈できるようになりました。 [#83299](https://github.com/ClickHouse/ClickHouse/pull/83299) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* `distributed_ddl_output_mode='*_only_active'` の場合、`max_replication_lag_to_enqueue` を超えるレプリケーションラグを持つ新規またはリカバリ済みのレプリカを待たないようにしました。これにより、新しいレプリカが初期化またはリカバリ完了後にアクティブになったものの、初期化中に大量のレプリケーションログを蓄積していた場合に発生していた `DDL task is not finished on some hosts` を回避しやすくなります。あわせて、レプリケーションログが `max_replication_lag_to_enqueue` 未満になるまで待機する `SYSTEM SYNC DATABASE REPLICA STRICT` クエリも実装しました。[#83302](https://github.com/ClickHouse/ClickHouse/pull/83302) ([Alexander Tokmakov](https://github.com/tavplubix))。 +* 例外メッセージ内に過度に長い式処理の説明を出力しないようにしました。 [#83164](https://github.com/ClickHouse/ClickHouse/issues/83164) をクローズ。 [#83350](https://github.com/ClickHouse/ClickHouse/pull/83350)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* パーツのプレフィックスおよびサフィックスを解析する機能を追加し、非定数カラムのカバレッジも検証できるようにしました。 [#83377](https://github.com/ClickHouse/ClickHouse/pull/83377) ([Mikhail Artemenko](https://github.com/Michicosun)). +* 名前付きコレクション使用時に、ODBC および JDBC 間のパラメータ名を統一しました。 [#83410](https://github.com/ClickHouse/ClickHouse/pull/83410) ([Andrey Zvonov](https://github.com/zvonand)). +* ストレージのシャットダウン中に `getStatus` は `ErrorCodes::ABORTED` 例外をスローします。以前はこの結果、select クエリが失敗していましたが、現在は `ErrorCodes::ABORTED` 例外を捕捉して明示的に無視するようになりました。 [#83435](https://github.com/ClickHouse/ClickHouse/pull/83435) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* `MergeParts` エントリの part_log のプロファイルイベントに、`UserTimeMicroseconds`、`SystemTimeMicroseconds`、`RealTimeMicroseconds` などのプロセスリソースのメトリクスを追加。 [#83460](https://github.com/ClickHouse/ClickHouse/pull/83460) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* Keeper において、新しい種類のリクエストを可能にする `create_if_not_exists`、`check_not_exists`、`remove_recursive` の各 feature flag をデフォルトで有効にしました。 [#83488](https://github.com/ClickHouse/ClickHouse/pull/83488) ([Antonio Andelic](https://github.com/antonio2368))。 +* サーバーのシャットダウン時にテーブルを停止する前に、S3(Azure など)Queue のストリーミングを停止するようになりました。 [#83530](https://github.com/ClickHouse/ClickHouse/pull/83530) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `JSON`入力フォーマットで `Date` / `Date32` を整数値として扱えるようにしました。 [#83597](https://github.com/ClickHouse/ClickHouse/pull/83597) ([MikhailBurdukov](https://github.com/MikhailBurdukov)) +* 特定の状況での PROJECTION の読み込みおよび追加に関する例外メッセージを、より読みやすくしました。 [#83728](https://github.com/ClickHouse/ClickHouse/pull/83728) ([Robert Schulze](https://github.com/rschu1ze)). +* `clickhouse-server` のバイナリのチェックサム整合性検証をスキップできる設定オプションを追加しました。 [#83637](https://github.com/ClickHouse/ClickHouse/issues/83637) を解決します。 [#83749](https://github.com/ClickHouse/ClickHouse/pull/83749)([Rafael Roquetto](https://github.com/rafaelroquetto))。 + +#### バグ修正(公式安定版リリースにおけるユーザーに影響する不具合) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* 誤って [#79465](https://github.com/ClickHouse/ClickHouse/issues/79465) で変更されていた `clickhouse-benchmark` の `--reconnect` オプションのデフォルト値を修正。 [#82677](https://github.com/ClickHouse/ClickHouse/pull/82677)([Alexey Milovidov](https://github.com/alexey-milovidov) による)。 +* `CREATE DICTIONARY` のフォーマットの不整合を修正しました。[#82105](https://github.com/ClickHouse/ClickHouse/issues/82105) をクローズ。[#82829](https://github.com/ClickHouse/ClickHouse/pull/82829)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `materialize` 関数を含む有効期限 (TTL) のフォーマットの不整合を修正しました。[#82828](https://github.com/ClickHouse/ClickHouse/issues/82828) をクローズしました。[#82831](https://github.com/ClickHouse/ClickHouse/pull/82831)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `INTO OUTFILE` などの出力オプションを含むサブクエリに対する `EXPLAIN AST` のフォーマットの不整合を修正しました。[#82826](https://github.com/ClickHouse/ClickHouse/issues/82826) をクローズ。[#82840](https://github.com/ClickHouse/ClickHouse/pull/82840)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* エイリアスが許可されていないコンテキストにおける、エイリアス付き括弧表現の書式の不整合を修正しました。[#82836](https://github.com/ClickHouse/ClickHouse/issues/82836) をクローズ。[#82837](https://github.com/ClickHouse/ClickHouse/issues/82837) をクローズ。[#82867](https://github.com/ClickHouse/ClickHouse/pull/82867)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 集約関数の状態を IPv4 と乗算する際に、適切なエラーコードが返されるようにしました。 [#82817](https://github.com/ClickHouse/ClickHouse/issues/82817) をクローズ。 [#82818](https://github.com/ClickHouse/ClickHouse/pull/82818)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* ファイルシステムキャッシュにおける「Having zero bytes but range is not finished」という論理エラーを修正。 [#81868](https://github.com/ClickHouse/ClickHouse/pull/81868) ([Kseniia Sumarokova](https://github.com/kssenii)). +* TTL によって行が削除された場合に、それに依存しているアルゴリズム(例えば `minmax_count_projection`)の正しさを保証するため、min-max 索引を再計算します。これにより [#77091](https://github.com/ClickHouse/ClickHouse/issues/77091) が解決されます。[#77166](https://github.com/ClickHouse/ClickHouse/pull/77166) ([Amos Bird](https://github.com/amosbird))。 +* `ORDER BY ... LIMIT BY ... LIMIT N` を組み合わせたクエリにおいて、ORDER BY が PartialSorting として実行される場合、カウンター `rows_before_limit_at_least` は、ソート処理で消費された行数ではなく、LIMIT 句で処理された行数を反映するようになりました。 [#78999](https://github.com/ClickHouse/ClickHouse/pull/78999) ([Eduard Karacharov](https://github.com/korowa))。 +* オルタネーションを含み、先頭の選択肢がリテラルでない `regexp` を用いた token/ngram 索引でのフィルタリングにおいて発生していた、過剰な granule スキップを修正。 [#79373](https://github.com/ClickHouse/ClickHouse/pull/79373) ([Eduard Karacharov](https://github.com/korowa))。 +* `<=>` 演算子と Join ストレージにおける論理エラーを修正し、クエリが適切なエラーコードを返すようになりました。 [#80165](https://github.com/ClickHouse/ClickHouse/pull/80165) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* `remote` 関数ファミリーと併用した場合に `loop` 関数がクラッシュする不具合を修正しました。`loop(remote(...))` において LIMIT 句が正しく適用されるようにしました。 [#80299](https://github.com/ClickHouse/ClickHouse/pull/80299) ([Julia Kartseva](https://github.com/jkartseva)). +* Unix エポック (1970-01-01) より前および最大日付 (2106-02-07 06:28:15) より後の日付を処理する際の `to_utc_timestamp` および `from_utc_timestamp` 関数の誤った動作を修正しました。これらの関数は、値をそれぞれエポック開始時刻と最大日付に正しく切り詰めるようになりました。 [#80498](https://github.com/ClickHouse/ClickHouse/pull/80498) ([Surya Kant Ranjan](https://github.com/iit2009046)). +* 一部のクエリを parallel replicas で実行した場合、initiator 側では順序付き読み取りの最適化を適用できる一方、リモートノード側では適用できないことがありました。その結果、parallel replicas のコーディネーター(initiator 上)とリモートノードで異なる読み取りモードが使用され、論理エラーが発生していました。 [#80652](https://github.com/ClickHouse/ClickHouse/pull/80652) ([Igor Nikonov](https://github.com/devcrafter))。 +* カラム型がNullableに変更された際のprojectionのmaterialize時に発生していた論理エラーを修正しました。 [#80741](https://github.com/ClickHouse/ClickHouse/pull/80741) ([Pavel Kruglov](https://github.com/Avogar)). +* TTL 更新時に、TTL GROUP BY での有効期限 (TTL) の再計算が誤っていた問題を修正しました。 [#81222](https://github.com/ClickHouse/ClickHouse/pull/81222) ([Evgeniy Ulasik](https://github.com/H0uston)). +* Parquet の Bloom フィルターが、`WHERE function(key) IN (...)` のような条件を `WHERE key IN (...)` であるかのように誤って扱っていた不具合を修正しました。 [#81255](https://github.com/ClickHouse/ClickHouse/pull/81255) ([Michael Kolupaev](https://github.com/al13n321)). +* マージ処理中に例外が発生した際に `Aggregator` がクラッシュする可能性のあった問題を修正しました。 [#81450](https://github.com/ClickHouse/ClickHouse/pull/81450) ([Nikita Taranov](https://github.com/nickitat)). +* `InterpreterInsertQuery::extendQueryLogElemImpl` を修正し、必要に応じてデータベース名およびテーブル名にバッククオートを追加するようにしました(例:名前に `-` のような特殊文字が含まれている場合)。 [#81528](https://github.com/ClickHouse/ClickHouse/pull/81528) ([Ilia Shvyrialkin](https://github.com/Harzu)). +* 左辺引数が null でサブクエリ結果が Nullable ではない場合に、`transform_null_in=1` 設定時の `IN` の実行を修正。 [#81584](https://github.com/ClickHouse/ClickHouse/pull/81584) ([Pavel Kruglov](https://github.com/Avogar)). +* 既存テーブルからの読み取り時に実行される default/materialize 式について、experimental/suspicious 型を検証しないようにしました。 [#81618](https://github.com/ClickHouse/ClickHouse/pull/81618) ([Pavel Kruglov](https://github.com/Avogar)). +* TTL 式で dict が使用されている場合に、マージ処理中に "Context has expired" エラーが発生する問題を修正しました。 [#81690](https://github.com/ClickHouse/ClickHouse/pull/81690) ([Azat Khuzhin](https://github.com/azat)). +* `cast` 関数の単調性を修正しました。 [#81722](https://github.com/ClickHouse/ClickHouse/pull/81722) ([zoomxi](https://github.com/zoomxi))。 +* スカラ相関サブクエリの処理中に必要なカラムが読み込まれない問題を修正しました。[#81716](https://github.com/ClickHouse/ClickHouse/issues/81716) に対する修正です。[#81805](https://github.com/ClickHouse/ClickHouse/pull/81805)([Dmitry Novik](https://github.com/novikd))。 +* 以前のバージョンでは、サーバーが `/js` へのリクエストに対して過剰なコンテンツを返していました。これにより [#61890](https://github.com/ClickHouse/ClickHouse/issues/61890) が解決されました。[#81895](https://github.com/ClickHouse/ClickHouse/pull/81895)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* これまで、`MongoDB` テーブルエンジン定義では、`host:port` 引数にパスコンポーネントを含めることができましたが、そのパスコンポーネントは黙って無視されていました。MongoDB 連携機能では、そのようなテーブルのロードを拒否していました。この修正により、*`MongoDB` エンジンの引数が 5 つある場合には、そのようなテーブルのロードを許可し、引数で指定されたデータベース名を使用しつつパスコンポーネントを無視するようにしました*。*注意:* この修正は、新規に作成されたテーブルや `mongo` テーブル関数を使用したクエリ、ならびに Dictionary のソースおよび named collection には適用されません。 [#81942](https://github.com/ClickHouse/ClickHouse/pull/81942) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* マージ中に例外が発生した場合に `Aggregator` がクラッシュする可能性があった問題を修正しました。 [#82022](https://github.com/ClickHouse/ClickHouse/pull/82022) ([Nikita Taranov](https://github.com/nickitat))。 +* クエリで定数の別名カラムのみが使用されている場合のフィルタ解析を修正しました。 [#79448](https://github.com/ClickHouse/ClickHouse/issues/79448) を修正。 [#82037](https://github.com/ClickHouse/ClickHouse/pull/82037) ([Dmitry Novik](https://github.com/novikd)). +* GROUP BY および SET の有効期限 (TTL) で同じカラムを指定した場合に発生する LOGICAL_ERROR と、その後のクラッシュを修正しました。 [#82054](https://github.com/ClickHouse/ClickHouse/pull/82054) ([Pablo Marcos](https://github.com/pamarcos))。 +* シークレットマスキング処理における S3 テーブル関数の引数検証を修正し、潜在的な `LOGICAL_ERROR` の発生を防止。[#80620](https://github.com/ClickHouse/ClickHouse/issues/80620) をクローズ。[#82056](https://github.com/ClickHouse/ClickHouse/pull/82056) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* Iceberg のデータレースを修正。 [#82088](https://github.com/ClickHouse/ClickHouse/pull/82088) ([Azat Khuzhin](https://github.com/azat)). +* `DatabaseReplicated::getClusterImpl` を修正しました。`hosts` の最初の要素(または複数の要素)が `id == DROPPED_MARK` であり、同じ分片に対する他の要素が存在しない場合、`shards` の最初の要素が空のベクタとなり、`std::out_of_range` が発生していました。 [#82093](https://github.com/ClickHouse/ClickHouse/pull/82093) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* arraySimilarity におけるコピーペーストの誤りを修正し、UInt32 および Int32 の重みの使用を禁止。テストおよびドキュメントを更新。 [#82103](https://github.com/ClickHouse/ClickHouse/pull/82103) ([Mikhail f. Shiryaev](https://github.com/Felixoid))。 +* `WHERE` 句および `IndexSet` の条件下で `arrayJoin` を含むクエリにおいて発生していた `Not found column` エラーを修正しました。 [#82113](https://github.com/ClickHouse/ClickHouse/pull/82113) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Glue カタログ統合のバグを修正。これにより、サブカラムの一部が Decimal 型であるネストしたデータ型のテーブル(例: `map<string, decimal(9, 2)>`)を ClickHouse が読み取れるようになった。[#81301](https://github.com/ClickHouse/ClickHouse/issues/81301) を修正。[#82114](https://github.com/ClickHouse/ClickHouse/pull/82114)([alesapin](https://github.com/alesapin))。 +* SummingMergeTree において、25.5 で [https://github.com/ClickHouse/ClickHouse/pull/79051](https://github.com/ClickHouse/ClickHouse/pull/79051) によって導入されたパフォーマンス低下を修正しました。[#82130](https://github.com/ClickHouse/ClickHouse/pull/82130)([Pavel Kruglov](https://github.com/Avogar))。 +* URI 経由で設定を渡した場合、最後の値のみが有効になります。 [#82137](https://github.com/ClickHouse/ClickHouse/pull/82137) ([Sema Checherinda](https://github.com/CheSema)). +* Iceberg における「Context has expired」エラーを修正。 [#82146](https://github.com/ClickHouse/ClickHouse/pull/82146) ([Azat Khuzhin](https://github.com/azat)). +* メモリ逼迫時のリモートクエリで発生しうるデッドロックを修正。 [#82160](https://github.com/ClickHouse/ClickHouse/pull/82160) ([Kirill](https://github.com/kirillgarbar)). +* `numericIndexedVectorPointwiseAdd`、`numericIndexedVectorPointwiseSubtract`、`numericIndexedVectorPointwiseMultiply`、`numericIndexedVectorPointwiseDivide` 関数を大きな数値に対して適用した際にオーバーフローが発生していた問題を修正しました。 [#82165](https://github.com/ClickHouse/ClickHouse/pull/82165) ([Raufs Dunamalijevs](https://github.com/rienath))。 +* Materialized View が INSERT クエリを取りこぼす原因となっていたテーブル依存関係のバグを修正しました。 [#82222](https://github.com/ClickHouse/ClickHouse/pull/82222) ([Nikolay Degterinsky](https://github.com/evillique)). +* サジェスションスレッドとメインクライアントスレッド間で発生する可能性のあったデータレースを修正。 [#82233](https://github.com/ClickHouse/ClickHouse/pull/82233) ([Azat Khuzhin](https://github.com/azat)). +* ClickHouse はスキーマ進化後でも Glue カタログから Iceberg テーブルを読み込めるようになりました。 [#81272](https://github.com/ClickHouse/ClickHouse/issues/81272) を修正しました。 [#82301](https://github.com/ClickHouse/ClickHouse/pull/82301) ([alesapin](https://github.com/alesapin))。 +* 非同期メトリクス用の設定 `asynchronous_metrics_update_period_s` と `asynchronous_heavy_metrics_update_period_s` の検証を修正しました。 [#82310](https://github.com/ClickHouse/ClickHouse/pull/82310) ([Bharat Nallan](https://github.com/bharatnc))。 +* 複数の JOIN を含むクエリで matcher を解決する処理における論理エラーを修正し、[#81969](https://github.com/ClickHouse/ClickHouse/issues/81969) をクローズしました。[#82421](https://github.com/ClickHouse/ClickHouse/pull/82421)([Vladimir Cherkasov](https://github.com/vdimir))。 +* AWS ECS トークンに有効期限を追加し、再読み込み可能にしました。 [#82422](https://github.com/ClickHouse/ClickHouse/pull/82422) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* `CASE` 関数で `NULL` 引数が正しく処理されない不具合を修正しました。 [#82436](https://github.com/ClickHouse/ClickHouse/pull/82436) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* クライアント内のデータレース(グローバルコンテキストを使用しないようにすることで回避)および `session_timezone` のオーバーライドを修正しました。以前は、`session_timezone` が `users.xml`/クライアントオプションで非空に設定され、クエリコンテキストでは空に設定されている場合、本来とは異なり `users.xml` の値が使用されていましたが、現在は常にクエリコンテキストがグローバルコンテキストより優先されます。 [#82444](https://github.com/ClickHouse/ClickHouse/pull/82444) ([Azat Khuzhin](https://github.com/azat))。 +* 外部テーブルエンジンにおけるキャッシュバッファの境界アライメント無効化処理を修正しました。この処理は [https://github.com/ClickHouse/ClickHouse/pull/81868](https://github.com/ClickHouse/ClickHouse/pull/81868) で正しく動作していませんでした。 [#82493](https://github.com/ClickHouse/ClickHouse/pull/82493)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 型変換されたキーで key-value ストレージを JOIN した場合に発生していたクラッシュを修正しました。 [#82497](https://github.com/ClickHouse/ClickHouse/pull/82497) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* ログおよび `query_log` で named collection の値が隠されてしまう問題を修正。 [#82405](https://github.com/ClickHouse/ClickHouse/issues/82405) をクローズ。 [#82510](https://github.com/ClickHouse/ClickHouse/pull/82510) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* セッション終了時のログ出力で、`user_id` が空になる場合にクラッシュする可能性があった問題を修正しました。 [#82513](https://github.com/ClickHouse/ClickHouse/pull/82513) ([Bharat Nallan](https://github.com/bharatnc)). +* Time のパース処理で msan の問題が発生する可能性があったケースを修正しました。この変更では次の Issue を修正しています: [#82477](https://github.com/ClickHouse/ClickHouse/issues/82477)。 [#82514](https://github.com/ClickHouse/ClickHouse/pull/82514) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* サーバーの処理がハングしないようにするため、`threadpool_writer_pool_size` をゼロに設定できないようにしました。 [#82532](https://github.com/ClickHouse/ClickHouse/pull/82532) ([Bharat Nallan](https://github.com/bharatnc))。 +* 相関付けられたカラムに対する ROW POLICY 式の解析中に発生する `LOGICAL_ERROR` を修正。 [#82618](https://github.com/ClickHouse/ClickHouse/pull/82618) ([Dmitry Novik](https://github.com/novikd))。 +* `enable_shared_storage_snapshot_in_query = 1` の場合に、`mergeTreeProjection` テーブル関数で親メタデータを誤って使用していた不具合を修正しました。これは [#82634](https://github.com/ClickHouse/ClickHouse/issues/82634) に対応する修正です。[#82638](https://github.com/ClickHouse/ClickHouse/pull/82638)([Amos Bird](https://github.com/amosbird))。 +* 関数 `trim{Left,Right,Both}` は、入力文字列型 "FixedString(N)" をサポートするようになりました。例えば、`SELECT trimBoth(toFixedString('abc', 3), 'ac')` が動作するようになりました。 [#82691](https://github.com/ClickHouse/ClickHouse/pull/82691) ([Robert Schulze](https://github.com/rschu1ze)). +* AzureBlobStorage において、ネイティブコピーのために認証方法を比較する際に例外が発生した場合は、読み取りしてからコピーする(つまり非ネイティブコピー)処理にフォールバックするようコードを更新しました。 [#82693](https://github.com/ClickHouse/ClickHouse/pull/82693) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). +* 空要素が含まれる場合の `groupArraySample` / `groupArrayLast` のデシリアライズ処理を修正しました(入力が空だった場合に、デシリアライズがバイナリデータの一部を読み飛ばしてしまう可能性があり、その結果、データ読み取り時の破損や TCP プロトコルでの UNKNOWN_PACKET_FROM_SERVER エラーを引き起こすおそれがありました)。数値型および日時型には影響しません。[#82763](https://github.com/ClickHouse/ClickHouse/pull/82763)([Pedro Ferreira](https://github.com/PedroTadim))。 +* 空の `Memory` テーブルのバックアップ処理を修正し、バックアップ復元が `BACKUP_ENTRY_NOT_FOUND` エラーで失敗していた問題を解消しました。 [#82791](https://github.com/ClickHouse/ClickHouse/pull/82791) ([Julia Kartseva](https://github.com/jkartseva)). +* union/intersect/except_default_mode の書き換え時の例外安全性を修正。[#82664](https://github.com/ClickHouse/ClickHouse/issues/82664) を解決。[#82820](https://github.com/ClickHouse/ClickHouse/pull/82820)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 非同期テーブルのロードジョブの数を追跡するようにしました。実行中のジョブが存在する場合は、`TransactionLog::removeOldEntries` で `tail_ptr` を更新しないようにしました。 [#82824](https://github.com/ClickHouse/ClickHouse/pull/82824) ([Tuan Pham Anh](https://github.com/tuanpach))。 +* Iceberg におけるデータレースを修正。 [#82841](https://github.com/ClickHouse/ClickHouse/pull/82841) ([Azat Khuzhin](https://github.com/azat)). +* 25.6 で導入された `use_skip_indexes_if_final_exact_mode` 最適化において、`MergeTree` エンジンの設定やデータ分布によっては、適切な候補範囲を選択できない場合がありました。この問題はすでに修正されています。 [#82879](https://github.com/ClickHouse/ClickHouse/pull/82879) ([Shankar Iyer](https://github.com/shankar-iyer)). +* SCRAM_SHA256_PASSWORD 型の AST から解析する際に認証データの salt が設定されるようにしました。 [#82888](https://github.com/ClickHouse/ClickHouse/pull/82888) ([Tuan Pham Anh](https://github.com/tuanpach)). +* キャッシュ機能を持たない Database 実装を使用している場合、対応するテーブルのメタデータは、カラムが返された後に削除され、参照が無効化されます。 [#82939](https://github.com/ClickHouse/ClickHouse/pull/82939) ([buyval01](https://github.com/buyval01)). +* `Merge` ストレージを使用するテーブルとの JOIN 式を含むクエリに対するフィルタの書き換え処理を修正。[#82092](https://github.com/ClickHouse/ClickHouse/issues/82092) を修正。[#82950](https://github.com/ClickHouse/ClickHouse/pull/82950)([Dmitry Novik](https://github.com/novikd))。 +* QueryMetricLog で発生していた LOGICAL_ERROR「Mutex cannot be NULL」を修正。[#82979](https://github.com/ClickHouse/ClickHouse/pull/82979)([Pablo Marcos](https://github.com/pamarcos))。 +* 可変長フォーマッタ(例:`%M`)とフォーマッタ `%f` を併用した場合に、関数 `formatDateTime` が誤った出力を行っていた問題を修正しました。 [#83020](https://github.com/ClickHouse/ClickHouse/pull/83020) ([Robert Schulze](https://github.com/rschu1ze)). +* セカンダリクエリが常に VIEW からすべてのカラムを読み取る場合に、analyzer 有効化によって発生していたパフォーマンス低下の問題を修正しました。[#81718](https://github.com/ClickHouse/ClickHouse/issues/81718) を修正します。[#83036](https://github.com/ClickHouse/ClickHouse/pull/83036)([Dmitry Novik](https://github.com/novikd))。 +* 読み取り専用ディスク上でバックアップを復元する際に表示される誤解を招くエラーメッセージを修正。 [#83051](https://github.com/ClickHouse/ClickHouse/pull/83051) ([Julia Kartseva](https://github.com/jkartseva)). +* 依存関係を持たないテーブルの作成時には循環依存関係のチェックを行わないようにしました。これにより、[https://github.com/ClickHouse/ClickHouse/pull/65405](https://github.com/ClickHouse/ClickHouse/pull/65405) によって導入された、数千のテーブルを作成するユースケースでのパフォーマンス低下が解消されます。[#83077](https://github.com/ClickHouse/ClickHouse/pull/83077)([Pavel Kruglov](https://github.com/Avogar))。 +* 負の Time 値が暗黙的にテーブルに読み込まれてしまう問題を修正し、ドキュメントの記述を分かりやすくしました。 [#83091](https://github.com/ClickHouse/ClickHouse/pull/83091) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* `lowCardinalityKeys` 関数が共有 Dictionary の無関係なパーツを使用しないようになりました。 [#83118](https://github.com/ClickHouse/ClickHouse/pull/83118) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* Materialized Views におけるサブカラムの利用に関するリグレッションを修正しました。これにより次の問題が修正されます: [#82784](https://github.com/ClickHouse/ClickHouse/issues/82784)。 [#83221](https://github.com/ClickHouse/ClickHouse/pull/83221) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* 失敗した `INSERT` の後に接続が切断状態のまま残っていたためクライアントがクラッシュする問題を修正。 [#83253](https://github.com/ClickHouse/ClickHouse/pull/83253) ([Azat Khuzhin](https://github.com/azat))。 +* 空のカラムを含むブロックのサイズを計算する際に発生していたクラッシュを修正しました。 [#83271](https://github.com/ClickHouse/ClickHouse/pull/83271) ([Raúl Marín](https://github.com/Algunenano)). +* UNION における Variant 型で発生する可能性のあるクラッシュを修正。 [#83295](https://github.com/ClickHouse/ClickHouse/pull/83295) ([Pavel Kruglov](https://github.com/Avogar)). +* 未サポートの SYSTEM クエリに対して clickhouse-local が LOGICAL_ERROR を返していた問題を修正。 [#83333](https://github.com/ClickHouse/ClickHouse/pull/83333) ([Surya Kant Ranjan](https://github.com/iit2009046)). +* S3 クライアント向けの `no_sign_request` を修正しました。これは、S3 リクエストに署名しないように明示的に設定するために使用できます。エンドポイントベースの設定を使用して、特定のエンドポイントごとに定義することもできます。 [#83379](https://github.com/ClickHouse/ClickHouse/pull/83379) ([Antonio Andelic](https://github.com/antonio2368))。 +* CPU スケジューリングが有効な状態で負荷下で実行された場合に、設定 'max_threads=1' を指定したクエリでクラッシュが発生する可能性がある問題を修正しました。 [#83387](https://github.com/ClickHouse/ClickHouse/pull/83387) ([Fan Ziqi](https://github.com/f2quantum)). +* CTE 定義内で同名の別のテーブル式を参照している場合に発生する `TOO_DEEP_SUBQUERIES` 例外を修正。 [#83413](https://github.com/ClickHouse/ClickHouse/pull/83413) ([Dmitry Novik](https://github.com/novikd))。 +* `REVOKE S3 ON system.*` を実行した際に `*.*` に対する S3 権限まで誤って取り消されてしまう不具合を修正しました。この変更により [#83417](https://github.com/ClickHouse/ClickHouse/issues/83417) が解決されました。 [#83420](https://github.com/ClickHouse/ClickHouse/pull/83420) ([pufit](https://github.com/pufit))。 +* クエリ間で async_read_counters を共有しないよう修正しました。 [#83423](https://github.com/ClickHouse/ClickHouse/pull/83423) ([Azat Khuzhin](https://github.com/azat)). +* サブクエリに FINAL が含まれている場合は並列レプリカを無効にします。 [#83455](https://github.com/ClickHouse/ClickHouse/pull/83455) ([zoomxi](https://github.com/zoomxi)). +* `role_cache_expiration_time_seconds` 設定の構成時に発生する軽微な整数オーバーフロー問題を修正しました(issue [#83374](https://github.com/ClickHouse/ClickHouse/issues/83374))。[#83461](https://github.com/ClickHouse/ClickHouse/pull/83461)([wushap](https://github.com/wushap))。 +* [https://github.com/ClickHouse/ClickHouse/pull/79963](https://github.com/ClickHouse/ClickHouse/pull/79963) で紛れ込んだバグを修正しました。ディファイナー付きの MV(マテリアライズドビュー)に挿入する際には、権限チェックはディファイナーに付与された権限を使用する必要があります。この修正により [#79951](https://github.com/ClickHouse/ClickHouse/issues/79951) が解決されます。[#83502](https://github.com/ClickHouse/ClickHouse/pull/83502)([pufit](https://github.com/pufit))。 +* Iceberg の配列要素および map 値と、それらのすべてのネストされたサブフィールドに対して、境界値に基づくファイルプルーニングを無効化しました。 [#83520](https://github.com/ClickHouse/ClickHouse/pull/83520) ([Daniil Ivanik](https://github.com/divanik)). +* 一時データストレージとして使用している場合に発生する可能性のある、ファイルキャッシュが初期化されていないことによるエラーを修正しました。 [#83539](https://github.com/ClickHouse/ClickHouse/pull/83539) ([Bharat Nallan](https://github.com/bharatnc))。 +* Keeper の修正: セッション終了時に ephemeral ノードが削除された際に total watch カウントが正しく更新されない問題を修正しました。 [#83583](https://github.com/ClickHouse/ClickHouse/pull/83583) ([Antonio Andelic](https://github.com/antonio2368))。 +* max_untracked_memory に関する誤ったメモリ管理を修正しました。 [#83607](https://github.com/ClickHouse/ClickHouse/pull/83607) ([Azat Khuzhin](https://github.com/azat)). +* `INSERT SELECT` と `UNION ALL` を組み合わせたクエリにおいて、一部の稀なケースでヌルポインタ参照が発生する可能性がありました。これにより [#83618](https://github.com/ClickHouse/ClickHouse/issues/83618) が解決されました。 [#83643](https://github.com/ClickHouse/ClickHouse/pull/83643) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 論理エラーを引き起こす可能性があったため、`max_insert_block_size` にゼロ値を設定することを禁止しました。 [#83688](https://github.com/ClickHouse/ClickHouse/pull/83688) ([Bharat Nallan](https://github.com/bharatnc))。 +* block_size_bytes=0 の場合に estimateCompressionRatio() で発生する無限ループを修正しました。 [#83704](https://github.com/ClickHouse/ClickHouse/pull/83704) ([Azat Khuzhin](https://github.com/azat)). +* `IndexUncompressedCacheBytes`/`IndexUncompressedCacheCells`/`IndexMarkCacheBytes`/`IndexMarkCacheFiles` メトリクスを修正(以前は、`Cache` 接頭辞なしのメトリクスに含められていました)。 [#83730](https://github.com/ClickHouse/ClickHouse/pull/83730) ([Azat Khuzhin](https://github.com/azat)). +* `BackgroundSchedulePool` のシャットダウン時に、タスク側からスレッドを join することが原因で発生し得た強制終了と、ユニットテストで発生していた可能性のあるハングを修正しました。 [#83769](https://github.com/ClickHouse/ClickHouse/pull/83769) ([Azat Khuzhin](https://github.com/azat)). +* 名前の衝突が発生する場合でも、新しいアナライザが `WITH` 句内から外側のエイリアスを参照できるようにする後方互換性用の設定を導入しました。 [#82700](https://github.com/ClickHouse/ClickHouse/issues/82700) を修正します。 [#83797](https://github.com/ClickHouse/ClickHouse/pull/83797) ([Dmitry Novik](https://github.com/novikd))。 +* ライブラリブリッジのクリーンアップ中のコンテキストの再帰的ロックが原因で、シャットダウン時に発生するデッドロックを修正。 [#83824](https://github.com/ClickHouse/ClickHouse/pull/83824) ([Azat Khuzhin](https://github.com/azat)). + +#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement} + +* ClickHouse の lexer 用に最小限の C ライブラリ(10 KB)をビルドしました。これは [#80977](https://github.com/ClickHouse/ClickHouse/issues/80977) の対応に必要です。[#81347](https://github.com/ClickHouse/ClickHouse/pull/81347)([Alexey Milovidov](https://github.com/alexey-milovidov))。スタンドアロンの lexer 用テストを追加し、テストタグ `fasttest-only` を追加しました。[#82472](https://github.com/ClickHouse/ClickHouse/pull/82472)([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 +* Nix サブモジュールの input を検査するチェックを追加しました。[#81691](https://github.com/ClickHouse/ClickHouse/pull/81691)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* ローカルホスト上でインテグレーションテストを実行しようとした際に発生し得る一連の問題を修正しました。[#82135](https://github.com/ClickHouse/ClickHouse/pull/82135)([Oleg Doronin](https://github.com/dorooleg))。 +* Mac および FreeBSD で SymbolIndex をコンパイルできるようにしました(ただし動作するのは ELF システムである Linux と FreeBSD のみです)。[#82347](https://github.com/ClickHouse/ClickHouse/pull/82347)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* Azure SDK を v1.15.0 に更新しました。[#82747](https://github.com/ClickHouse/ClickHouse/pull/82747)([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 +* ビルドシステムに google-cloud-cpp の storage モジュールを追加しました。[#82881](https://github.com/ClickHouse/ClickHouse/pull/82881)([Pablo Marcos](https://github.com/pamarcos))。 +* Docker Official Library の要件を満たすように、clickhouse-server 用の `Dockerfile.ubuntu` を変更しました。[#83039](https://github.com/ClickHouse/ClickHouse/pull/83039)([Mikhail f. Shiryaev](https://github.com/Felixoid))。 +* `curl clickhouse.com` へのビルドのアップロード処理を修正するため、[#83158](https://github.com/ClickHouse/ClickHouse/issues/83158) に対するフォローアップを行いました。[#83463](https://github.com/ClickHouse/ClickHouse/pull/83463)([Mikhail f. Shiryaev](https://github.com/Felixoid))。 +* `clickhouse/clickhouse-server` および公式 `clickhouse` イメージに `busybox` バイナリとインストール用ツールを追加しました。[#83735](https://github.com/ClickHouse/ClickHouse/pull/83735)([Mikhail f. Shiryaev](https://github.com/Felixoid))。 +* ClickHouse サーバーのホストを指定するための `CLICKHOUSE_HOST` 環境変数のサポートを追加し、既存の `CLICKHOUSE_USER` および `CLICKHOUSE_PASSWORD` 環境変数と一貫性を持たせました。これにより、クライアントや設定ファイルを直接変更することなく、より簡単に設定できるようになります。[#83659](https://github.com/ClickHouse/ClickHouse/pull/83659)([Doron David](https://github.com/dorki))。 + +### ClickHouse 25.6 リリース、2025-06-26 {#256} + +#### 下位互換性のない変更 {#backward-incompatible-change} + +* これまで、関数 `countMatches` は、パターンが空文字列を許容していても、最初の空マッチが発生した時点でカウントを停止していました。この問題を解消するために、`countMatches` は空マッチが発生した場合に 1 文字分進めて実行を継続するようになりました。従来の挙動を維持したいユーザーは、設定 `count_matches_stop_at_empty_match` を有効化してください。 [#81676](https://github.com/ClickHouse/ClickHouse/pull/81676) ([Elmi Ahmadov](https://github.com/ahmadov)). +* マイナー: サーバーの `backup_threads` および `restore_threads` の設定が 0 にならないように強制しました。 [#80224](https://github.com/ClickHouse/ClickHouse/pull/80224) ([Raúl Marín](https://github.com/Algunenano)). +* マイナー: `String` に対する `bitNot` が、内部メモリ表現としてヌル終端文字列を返すように修正しました。これはユーザーから見える挙動には影響しないはずですが、著者がこの変更を明示しておきたいとしています。 [#80791](https://github.com/ClickHouse/ClickHouse/pull/80791) ([Azat Khuzhin](https://github.com/azat)). + +#### 新機能 {#new-feature} + +* 新しいデータ型 `Time` ([H]HH:MM:SS) および `Time64` ([H]HH:MM:SS[.fractional]) を追加し、これらと他のデータ型の間で利用する基本的なキャスト関数や補助関数を追加しました。既存の関数 `toTime` との互換性を保つための設定を追加し、設定 `use_legacy_to_time` は当面、従来の動作を維持するように構成されています。 [#81217](https://github.com/ClickHouse/ClickHouse/pull/81217) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). また、Time/Time64 間の比較をサポートしました。 [#80327](https://github.com/ClickHouse/ClickHouse/pull/80327) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* 新しい CLI ツール [`chdig`](https://github.com/azat/chdig/) — ClickHouse 向けの TUI インターフェイス(`top` のような UI)で、ClickHouse の一部として追加されました。[#79666](https://github.com/ClickHouse/ClickHouse/pull/79666)([Azat Khuzhin](https://github.com/azat))。 +* `Atomic` および `Ordinary` データベースエンジンで `disk` 設定をサポートし、テーブルのメタデータファイルを保存するディスクを指定できるようにしました。 [#80546](https://github.com/ClickHouse/ClickHouse/pull/80546) ([Tuan Pham Anh](https://github.com/tuanpach))。これにより、外部ストレージ上のデータベースをアタッチできるようになります。 +* 新しい種類の MergeTree エンジン `CoalescingMergeTree` — バックグラウンドマージの際に、最初の非 NULL 値を採用します。これにより [#78869](https://github.com/ClickHouse/ClickHouse/issues/78869) が解決されました。 [#79344](https://github.com/ClickHouse/ClickHouse/pull/79344) ([scanhex12](https://github.com/scanhex12))。 +* WKB("Well-Known Binary"、GIS アプリケーションで使用される、さまざまなジオメトリ型をバイナリでエンコードするフォーマット)を読み取る関数をサポートしました。[#43941](https://github.com/ClickHouse/ClickHouse/issues/43941) を参照してください。[#80139](https://github.com/ClickHouse/ClickHouse/pull/80139)([scanhex12](https://github.com/scanhex12))。 +* ワークロード向けにクエリ スロットのスケジューリングを追加しました。詳細は [workload scheduling](https://clickhouse.com/docs/operations/workload-scheduling#query_scheduling) を参照してください。 [#78415](https://github.com/ClickHouse/ClickHouse/pull/78415) ([Sergei Trifonov](https://github.com/serxa))。 +* `timeSeries*` ヘルパー関数により、時系列データを扱う際のいくつかのユースケースを高速化できます: - 指定された開始タイムスタンプ、終了タイムスタンプ、およびステップに従ってデータを時間グリッドに再サンプリングする - PromQL 風の `delta`、`rate`、`idelta`、`irate` を計算する。 [#80590](https://github.com/ClickHouse/ClickHouse/pull/80590) ([Alexander Gololobov](https://github.com/davenger)). +* `mapContainsValuesLike`/`mapContainsValues`/`mapExtractValuesLike` 関数を追加し、map の値でフィルタリングできるようにするとともに、これらの関数をブルームフィルターベースの索引でもサポートしました。 [#78171](https://github.com/ClickHouse/ClickHouse/pull/78171) ([UnamedRus](https://github.com/UnamedRus)). +* `settings constraints` で禁止する値の Set を指定できるようになりました。 [#78499](https://github.com/ClickHouse/ClickHouse/pull/78499) ([Bharat Nallan](https://github.com/bharatnc)). +* 単一のクエリ内のすべてのサブクエリで同じストレージスナップショットを共有できるようにする `enable_shared_storage_snapshot_in_query` 設定を追加しました。これにより、クエリ内で同じテーブルが複数回参照される場合でも、そのテーブルからの読み取りの一貫性が保証されます。[#79471](https://github.com/ClickHouse/ClickHouse/pull/79471) ([Amos Bird](https://github.com/amosbird))。 +* `JSON`カラムを`Parquet`に直接書き込み、`Parquet`から`JSON`カラムを直接読み取れるようになりました。 [#79649](https://github.com/ClickHouse/ClickHouse/pull/79649) ([Nihal Z. Miaji](https://github.com/nihalzp)). +* `pointInPolygon` に `MultiPolygon` のサポートを追加しました。 [#79773](https://github.com/ClickHouse/ClickHouse/pull/79773) ([Nihal Z. Miaji](https://github.com/nihalzp)). +* `deltaLakeLocal` テーブル関数経由で、ローカルファイルシステムにマウントされた Delta テーブルをクエリできるようにしました。 [#79781](https://github.com/ClickHouse/ClickHouse/pull/79781) ([roykim98](https://github.com/roykim98))。 +* String から DateTime への型変換時のパースモードを選択できる新しい設定項目 `cast_string_to_date_time_mode` を追加しました。[#80210](https://github.com/ClickHouse/ClickHouse/pull/80210) ([Pavel Kruglov](https://github.com/Avogar))。たとえば、ベストエフォートモードに設定できます。 +* Bitcoin の Bech アルゴリズムを利用するための `bech32Encode` および `bech32Decode` 関数を追加しました(issue [#40381](https://github.com/ClickHouse/ClickHouse/issues/40381))。[#80239](https://github.com/ClickHouse/ClickHouse/pull/80239)([George Larionov](https://github.com/glarik))。 +* MergeTree のパーツ名を解析するための SQL 関数を追加しました。 [#80573](https://github.com/ClickHouse/ClickHouse/pull/80573) ([Mikhail Artemenko](https://github.com/Michicosun)). +* クエリで参照されるパーツを、それらが配置されているディスク名でフィルタリングできるよう、新しい仮想カラム `_disk_name` を導入しました。 [#80650](https://github.com/ClickHouse/ClickHouse/pull/80650) ([tanner-bruce](https://github.com/tanner-bruce)). +* 埋め込み Web ツールの一覧を表示するランディングページを追加しました。ブラウザー類似のユーザーエージェントでアクセスされた場合に表示されます。 [#81129](https://github.com/ClickHouse/ClickHouse/pull/81129) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* `arrayFirst`、`arrayFirstIndex`、`arrayLast` および `arrayLastIndex` 関数は、フィルタ式によって返される NULL 値を除外するようになりました。以前のバージョンでは、Nullable 型のフィルタ結果はサポートされていませんでした。[#81113](https://github.com/ClickHouse/ClickHouse/issues/81113) を修正。[#81197](https://github.com/ClickHouse/ClickHouse/pull/81197)([Lennard Eijsackers](https://github.com/Blokje5))。 +* `USE name` の代わりに `USE DATABASE name` と記述できるようになりました。 [#81307](https://github.com/ClickHouse/ClickHouse/pull/81307) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 利用可能なコーデックを確認できる新しい system テーブル `system.codecs` を追加しました。(issue [#81525](https://github.com/ClickHouse/ClickHouse/issues/81525)). [#81600](https://github.com/ClickHouse/ClickHouse/pull/81600) ([Jimmy Aguilar Mena](https://github.com/Ergus)). +* `lag` および `lead` ウィンドウ関数のサポートを追加。 [#9887](https://github.com/ClickHouse/ClickHouse/issues/9887) をクローズ。 [#82108](https://github.com/ClickHouse/ClickHouse/pull/82108)([Dmitry Novik](https://github.com/novikd))。 +* 関数 `tokens` で、ログ向けの新しいトークナイザー `split` がサポートされるようになりました。 [#80195](https://github.com/ClickHouse/ClickHouse/pull/80195) ([Robert Schulze](https://github.com/rschu1ze))。 +* `clickhouse-local` に `--database` 引数のサポートを追加しました。既に作成済みのデータベースに切り替えることができます。これにより [#44115](https://github.com/ClickHouse/ClickHouse/issues/44115) がクローズされます。 [#81465](https://github.com/ClickHouse/ClickHouse/pull/81465) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 + +#### 実験的機能 {#experimental-feature} + +* ClickHouse Keeper を使用して `Kafka2` に対して Kafka のリバランスに類似したロジックを実装しました。各レプリカに対して 2 種類のパーティションロック(恒久ロックと一時ロック)をサポートします。レプリカは可能な限り長く恒久ロックを保持しようとし、任意の時点でそのレプリカ上の恒久ロックは `all_topic_partitions / active_replicas_count`(ここで `all_topic_partitions` はすべてのパーティション数、`active_replicas_count` はアクティブなレプリカ数)を超えません。もしそれより多くなった場合、レプリカはいくつかのパーティションを解放します。一部のパーティションはレプリカによって一時的に保持されます。レプリカ上の一時ロックの最大数は動的に変化し、他のレプリカがいくつかのパーティションを恒久ロックとして取得できるようにします。一時ロックを更新する際、レプリカはいったんそれらをすべて解放し、別のパーティションを再度取得しようとします。[#78726](https://github.com/ClickHouse/ClickHouse/pull/78726)([Daria Fomina](https://github.com/sinfillo))。 +* 実験的なテキスト索引の改良として、キーと値のペアによる明示的なパラメータ指定をサポートしました。現在サポートされているパラメータは、必須の `tokenizer` と、オプションの `max_rows_per_postings_list` および `ngram_size` の 2 つです。[#80262](https://github.com/ClickHouse/ClickHouse/pull/80262)([Elmi Ahmadov](https://github.com/ahmadov))。 +* 以前は、セグメント ID をディスク上の (`.gin_sid`) ファイルを読み書きしてオンザフライで更新していたため、`packed` ストレージは全文索引でサポートされていませんでした。`packed` ストレージでは、コミットされていないファイルから値を読み出すことはサポートされておらず、これが問題の原因となっていました。現在はこの問題は解消されています。[#80852](https://github.com/ClickHouse/ClickHouse/pull/80852)([Elmi Ahmadov](https://github.com/ahmadov))。 +* `gin` 型の実験的な索引(PostgreSQL ハッカーたちの内輪ネタなので気に入っていませんでした)は `text` に名称変更されました。既存の `gin` 型索引は引き続きロード可能ですが、検索で使用しようとすると例外をスローし(代わりに `text` 索引を提案します)、使用できません。[#80855](https://github.com/ClickHouse/ClickHouse/pull/80855)([Robert Schulze](https://github.com/rschu1ze))。 + +#### パフォーマンスの向上 {#performance-improvement} + +* 複数のプロジェクションによるフィルタリングをサポートし、パートレベルのフィルタリングに 1 つ以上のプロジェクションを使用できるようにしました。これにより [#55525](https://github.com/ClickHouse/ClickHouse/issues/55525) が解決されます。これは、[#78429](https://github.com/ClickHouse/ClickHouse/issues/78429) に続く、プロジェクション索引を実装するための第 2 段階の変更です。[#80343](https://github.com/ClickHouse/ClickHouse/pull/80343)([Amos Bird](https://github.com/amosbird))。 +* ファイルシステムキャッシュのデフォルトのキャッシュポリシーとして `SLRU` を使用するようにしました。 [#75072](https://github.com/ClickHouse/ClickHouse/pull/75072) ([Kseniia Sumarokova](https://github.com/kssenii)). +* クエリパイプラインの Resize ステップで発生する競合状態を解消しました。 [#77562](https://github.com/ClickHouse/ClickHouse/pull/77562) ([Zhiguo Zhou](https://github.com/ZhiguoZh)). +* ネットワーク接続に関連付けられた単一スレッドではなく、ブロックの圧縮/解凍およびシリアライズ/デシリアライズ処理をパイプラインスレッドにオフロードするオプションを導入しました。`enable_parallel_blocks_marshalling` 設定で制御できます。これにより、クエリの発行元ノードとリモートノード間で大量のデータを転送する分散クエリが高速化されます。 [#78694](https://github.com/ClickHouse/ClickHouse/pull/78694) ([Nikita Taranov](https://github.com/nickitat)). +* ブルームフィルターの全タイプに対するパフォーマンス改善。[OpenHouse カンファレンスの動画](https://www.youtube.com/watch?v=yIVz0NKwQvA\&pp=ygUQb3BlbmhvdXNlIG9wZW5haQ%3D%3D) [#79800](https://github.com/ClickHouse/ClickHouse/pull/79800)([Delyan Kratunov](https://github.com/dkratunov))。 +* いずれか一方の Set が空の場合に、`UniqExactSet::merge` に高速パスを導入しました。また、LHS 側の Set が 2 レベルで RHS 側が 1 レベルの場合でも、RHS 側を 2 レベルに変換しないようにしました。 [#79971](https://github.com/ClickHouse/ClickHouse/pull/79971) ([Nikita Taranov](https://github.com/nickitat))。 +* 2 レベルのハッシュテーブル使用時におけるメモリ再利用効率を改善し、ページフォールトを削減しました。これにより `GROUP BY` を高速化します。 [#80245](https://github.com/ClickHouse/ClickHouse/pull/80245) ([Jiebin Sun](https://github.com/jiebinn))。 +* クエリ条件キャッシュにおける不要な更新を避け、ロック競合を軽減しました。 [#80247](https://github.com/ClickHouse/ClickHouse/pull/80247) ([Jiebin Sun](https://github.com/jiebinn)). +* `concatenateBlocks` に対する軽微な最適化。並列ハッシュ結合にも有効である可能性があります。 [#80328](https://github.com/ClickHouse/ClickHouse/pull/80328) ([李扬](https://github.com/taiyang-li)). +* 主キー範囲からマーク範囲を選択する際、主キーが関数でラップされていると二分探索を使用できませんでした。この PR はこの制限を緩和し、主キーが常に単調な関数チェーンでラップされている場合や、RPN に常に真となる要素が含まれている場合でも二分探索を適用できるようにします。[#45536](https://github.com/ClickHouse/ClickHouse/issues/45536) をクローズします。[#80597](https://github.com/ClickHouse/ClickHouse/pull/80597)([zoomxi](https://github.com/zoomxi))。 +* `Kafka` エンジンのシャットダウン速度を改善しました(複数の `Kafka` テーブルがある場合に発生していた余分な 3 秒の遅延を解消)。 [#80796](https://github.com/ClickHouse/ClickHouse/pull/80796) ([Azat Khuzhin](https://github.com/azat)). +* Async inserts: メモリ使用量を削減し、INSERT クエリのパフォーマンスを向上。 [#80972](https://github.com/ClickHouse/ClickHouse/pull/80972) ([Raúl Marín](https://github.com/Algunenano)). +* ログテーブルが無効になっている場合はプロセッサのプロファイルを行わないようにしました。 [#81256](https://github.com/ClickHouse/ClickHouse/pull/81256) ([Raúl Marín](https://github.com/Algunenano))。これにより、非常に短いクエリの処理が高速になります。 +* ソースが要求される長さと完全に一致する場合の `toFixedString` の処理を高速化しました。 [#81257](https://github.com/ClickHouse/ClickHouse/pull/81257) ([Raúl Marín](https://github.com/Algunenano)). +* USER に制限がない場合は QUOTA の値を処理しないようにしました。 [#81549](https://github.com/ClickHouse/ClickHouse/pull/81549) ([Raúl Marín](https://github.com/Algunenano))。これにより、ごく短いクエリの実行が高速になります。 +* メモリトラッキングにおける性能退行を修正しました。 [#81694](https://github.com/ClickHouse/ClickHouse/pull/81694) ([Michael Kolupaev](https://github.com/al13n321)). +* 分散クエリに対するシャーディングキー最適化を改善しました。 [#78452](https://github.com/ClickHouse/ClickHouse/pull/78452) ([fhw12345](https://github.com/fhw12345)). +* Parallel replicas: すべての読み取りタスクが他のレプリカに割り当てられている場合は、使用されていない低速なレプリカの完了を待たないようにしました。 [#80199](https://github.com/ClickHouse/ClickHouse/pull/80199) ([Igor Nikonov](https://github.com/devcrafter)). +* Parallel replicas では個別の接続タイムアウトが使用されるようになりました。`parallel_replicas_connect_timeout_ms` 設定を参照してください。以前は、`connect_timeout_with_failover_ms` および `connect_timeout_with_failover_secure_ms` 設定が parallel replicas クエリの接続タイムアウト値として使用されていました(デフォルトは 1 秒)。[#80421](https://github.com/ClickHouse/ClickHouse/pull/80421)([Igor Nikonov](https://github.com/devcrafter))。 +* ジャーナリング対応のファイルシステムでは、`mkdir` はファイルシステムのジャーナルに書き込まれ、それがディスクに永続化されます。ディスクが遅い場合、この処理に時間がかかることがあります。これを reserve ロックのスコープ外に移動しました。 [#81371](https://github.com/ClickHouse/ClickHouse/pull/81371) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* 最初の読み取りクエリが実行されるまで Iceberg マニフェストファイルの読み込みを遅延するようにしました。 [#81619](https://github.com/ClickHouse/ClickHouse/pull/81619) ([Daniil Ivanik](https://github.com/divanik))。 +* 該当する場合、`GLOBAL [NOT] IN` 述語を `PREWHERE` 句に移動できるようにしました。 [#79996](https://github.com/ClickHouse/ClickHouse/pull/79996) ([Eduard Karacharov](https://github.com/korowa))。 + +#### 改良 {#improvement} + +* `EXPLAIN SYNTAX` は新しいアナライザーを使用するようになりました。クエリツリーから構築された AST を返します。クエリツリーを AST に変換する前に適用するパスの回数を制御するためのオプション `query_tree_passes` を追加しました。 [#74536](https://github.com/ClickHouse/ClickHouse/pull/74536) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* Native フォーマットにおいて Dynamic と JSON 向けのフラットなシリアル化を実装しました。これにより、Dynamic の shared variant や JSON の shared data のような特別な構造を使わずに、Dynamic および JSON データをシリアル化/デシリアライズできるようになります。このシリアル化は `output_format_native_use_flattened_dynamic_and_json_serialization` を設定することで有効にできます。また、このシリアル化は、さまざまな言語で実装されたクライアントにおいて、TCP プロトコル経由で Dynamic および JSON をより容易にサポートするために利用できます。 [#80499](https://github.com/ClickHouse/ClickHouse/pull/80499) ([Pavel Kruglov](https://github.com/Avogar)). +* エラー `AuthenticationRequired` が発生した場合に `S3` の認証情報を更新するようにしました。 [#77353](https://github.com/ClickHouse/ClickHouse/pull/77353) ([Vitaly Baranov](https://github.com/vitlibar)). +* `system.asynchronous_metrics` に Dictionary 関連のメトリクスを追加しました。`DictionaryMaxUpdateDelay` - Dictionary 更新遅延の最大値(秒)。`DictionaryTotalFailedUpdates` - 直近の正常なロード以降、すべての Dictionary で発生したエラーの総数。[#78175](https://github.com/ClickHouse/ClickHouse/pull/78175) ([Vlad](https://github.com/codeworse)). +* 破損したテーブルを保存するために作成された可能性があるデータベースに関する警告を追加。 [#78841](https://github.com/ClickHouse/ClickHouse/pull/78841) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 +* `S3Queue`、`AzureQueue` エンジンに `_time` 仮想カラムを追加しました。 [#78926](https://github.com/ClickHouse/ClickHouse/pull/78926) ([Anton Ivashkin](https://github.com/ianton-ru))。 +* CPU 過負荷時の接続ドロップを制御する設定をホットリロードに対応しました。 [#79052](https://github.com/ClickHouse/ClickHouse/pull/79052) ([Alexey Katsman](https://github.com/alexkats)). +* Azure Blob Storage 上のプレーンディスクに対して、`system.tables` で報告されるデータパスにコンテナープレフィックスを追加し、S3 および GCP と報告内容の一貫性を持たせました。[#79241](https://github.com/ClickHouse/ClickHouse/pull/79241) ([Julia Kartseva](https://github.com/jkartseva)). +* `clickhouse-client` と `local` で、`param_`(アンダースコア)に加えて `param-`(ダッシュ)形式のクエリパラメータも受け付けるようになりました。これによって [#63093](https://github.com/ClickHouse/ClickHouse/issues/63093) が解決されました。 [#79429](https://github.com/ClickHouse/ClickHouse/pull/79429)([Engel Danila](https://github.com/aaaengel))。 +* チェックサムを有効にしてローカルからリモートの S3 へデータをコピーする際の帯域幅割引について、詳細な警告メッセージを追加。 [#79464](https://github.com/ClickHouse/ClickHouse/pull/79464) ([VicoWu](https://github.com/VicoWu)). +* 以前は、`input_format_parquet_max_block_size = 0`(無効な値)を指定すると ClickHouse がハングしていましたが、この問題は修正されました。これにより [#79394](https://github.com/ClickHouse/ClickHouse/issues/79394) がクローズされました。 [#79601](https://github.com/ClickHouse/ClickHouse/pull/79601) ([abashkeev](https://github.com/abashkeev))。 +* `startup_scripts` に `throw_on_error` 設定を追加しました。`throw_on_error` が true の場合、すべてのクエリが正常に完了しない限りサーバーは起動しません。デフォルト値は `throw_on_error` が false で、従来どおりの動作が維持されます。 [#79732](https://github.com/ClickHouse/ClickHouse/pull/79732) ([Aleksandr Musorin](https://github.com/AVMusorin)). +* 任意の種類の `http_handlers` に `http_response_headers` を追加できるようにしました。 [#79975](https://github.com/ClickHouse/ClickHouse/pull/79975) ([Andrey Zvonov](https://github.com/zvonand)). +* 関数 `reverse` は `Tuple` データ型もサポートするようになりました。これにより [#80053](https://github.com/ClickHouse/ClickHouse/issues/80053) がクローズされました。[#80083](https://github.com/ClickHouse/ClickHouse/pull/80083)([flynn](https://github.com/ucasfl))。 +* [#75817](https://github.com/ClickHouse/ClickHouse/issues/75817) を解決し、`system.zookeeper` テーブルから `auxiliary_zookeepers` データを取得できるようにしました。 [#80146](https://github.com/ClickHouse/ClickHouse/pull/80146) ([Nikolay Govorov](https://github.com/mrdimidium))。 +* サーバーの TCP ソケットに関する非同期メトリクスを追加し、オブザーバビリティを向上させました。[#80187](https://github.com/ClickHouse/ClickHouse/issues/80187) をクローズしました。 [#80188](https://github.com/ClickHouse/ClickHouse/pull/80188)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `anyLast_respect_nulls` と `any_respect_nulls` を `SimpleAggregateFunction` としてサポートするようになりました。 [#80219](https://github.com/ClickHouse/ClickHouse/pull/80219) ([Diskein](https://github.com/Diskein)). +* レプリケートされたデータベースに対する不要な`adjustCreateQueryForBackup`呼び出しを削除しました。 [#80282](https://github.com/ClickHouse/ClickHouse/pull/80282) ([Vitaly Baranov](https://github.com/vitlibar))。 +* `clickhouse-local` で、`-- --config.value='abc'` のように `--` の後ろに続く追加オプションを、`=` 記号なしでも指定できるようにしました。[#80292](https://github.com/ClickHouse/ClickHouse/issues/80292) をクローズしました。 [#80293](https://github.com/ClickHouse/ClickHouse/pull/80293)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `SHOW ... LIKE` クエリ内のメタ文字を強調表示するようにしました。これにより [#80275](https://github.com/ClickHouse/ClickHouse/issues/80275) が解決されました。[#80297](https://github.com/ClickHouse/ClickHouse/pull/80297)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `clickhouse-local` で SQL UDF を永続化。以前に作成された関数は起動時にロードされます。これにより [#80085](https://github.com/ClickHouse/ClickHouse/issues/80085) がクローズされました。 [#80300](https://github.com/ClickHouse/ClickHouse/pull/80300) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 事前の DISTINCT ステップの EXPLAIN プランにおける説明を修正しました。 [#80330](https://github.com/ClickHouse/ClickHouse/pull/80330) ([UnamedRus](https://github.com/UnamedRus)). +* ODBC/JDBC で名前付きコレクションを使用可能にしました。 [#80334](https://github.com/ClickHouse/ClickHouse/pull/80334) ([Andrey Zvonov](https://github.com/zvonand)). +* 読み取り専用ディスクおよび故障ディスクの数のメトリクスを追加。DiskLocalCheckThread の開始時にインジケーターをログに記録します。 [#80391](https://github.com/ClickHouse/ClickHouse/pull/80391) ([VicoWu](https://github.com/VicoWu)). +* `s3_plain_rewritable` ストレージで PROJECTION をサポートしました。以前のバージョンでは、PROJECTION を参照する S3 内のメタデータオブジェクトは、移動されても更新されませんでした。[#70258](https://github.com/ClickHouse/ClickHouse/issues/70258) をクローズ。[#80393](https://github.com/ClickHouse/ClickHouse/pull/80393)([Sav](https://github.com/sberss))。 +* `SYSTEM UNFREEZE` コマンドは、読み取り専用ディスクおよび一度だけ書き込み可能なディスク上のパーツを検索しなくなりました。これにより [#80430](https://github.com/ClickHouse/ClickHouse/issues/80430) が解決されました。 [#80432](https://github.com/ClickHouse/ClickHouse/pull/80432)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* マージされたパーツに関するログメッセージのレベルを下げました。 [#80476](https://github.com/ClickHouse/ClickHouse/pull/80476) ([Hans Krutzer](https://github.com/hkrutzer)). +* Iceberg テーブルに対するパーティションプルーニングの既定動作を変更しました。 [#80583](https://github.com/ClickHouse/ClickHouse/pull/80583) ([Melvyn Peignon](https://github.com/melvynator)). +* 索引検索アルゴリズムのオブザーバビリティ向上のために、2 つの新しい ProfileEvents `IndexBinarySearchAlgorithm` と `IndexGenericExclusionSearchAlgorithm` を追加しました。 [#80679](https://github.com/ClickHouse/ClickHouse/pull/80679) ([Pablo Marcos](https://github.com/pamarcos))。 +* 古いカーネルでの `MADV_POPULATE_WRITE` の非サポートについては、ログに出力しないようにしました(ログを不要に汚さないため)。 [#80704](https://github.com/ClickHouse/ClickHouse/pull/80704) ([Robert Schulze](https://github.com/rschu1ze)). +* `TTL` 式で `Date32` および `DateTime64` がサポートされるように追加されました。 [#80710](https://github.com/ClickHouse/ClickHouse/pull/80710) ([Andrey Zvonov](https://github.com/zvonand)). +* `max_merge_delayed_streams_for_parallel_write` の互換性のための値を調整しました。 [#80760](https://github.com/ClickHouse/ClickHouse/pull/80760) ([Azat Khuzhin](https://github.com/azat)). +* クラッシュを修正: デストラクタ内で一時ファイル(ディスク上に一時データをスピルするために使用)を削除しようとした際に例外がスローされると、プログラムが異常終了してしまう可能性がある問題を修正しました。 [#80776](https://github.com/ClickHouse/ClickHouse/pull/80776) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* `SYSTEM SYNC REPLICA` に `IF EXISTS` 修飾子を追加しました。 [#80810](https://github.com/ClickHouse/ClickHouse/pull/80810) ([Raúl Marín](https://github.com/Algunenano)). +* "Having zero bytes, but read range is not finished..." という内容の例外メッセージを拡張し、`system.filesystem_cache` に finished_download_time カラムを追加。[#80849](https://github.com/ClickHouse/ClickHouse/pull/80849) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `indexes = 1` を指定して `EXPLAIN` を実行した場合、その出力に検索アルゴリズムのセクションを追加しました。そこには「binary search」または「generic exclusion search」のいずれかが表示されます。 [#80881](https://github.com/ClickHouse/ClickHouse/pull/80881) ([Pablo Marcos](https://github.com/pamarcos))。 +* 2024年初頭、新しいアナライザがデフォルトで有効になっていなかったため、MySQL ハンドラでは `prefer_column_name_to_alias` が true にハードコードされていました。現在は、ハードコードを解除できるようになりました。 [#80916](https://github.com/ClickHouse/ClickHouse/pull/80916) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* `system.iceberg_history` には、glue や iceberg rest のようなカタログデータベースの履歴も表示されるようになりました。また、一貫性のために、`system.iceberg_history` 内の `table_name` および `database_name` カラムを、それぞれ `table` と `database` に名称変更しました。 [#80975](https://github.com/ClickHouse/ClickHouse/pull/80975) ([alesapin](https://github.com/alesapin)). +* `merge` テーブル関数で読み取り専用モードを許可し、その利用時に `CREATE TEMPORARY TABLE` 権限が不要になるようにしました。 [#80981](https://github.com/ClickHouse/ClickHouse/pull/80981) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* インメモリキャッシュの内部観測性を改善しました(これまで `system.asynchronouse_metrics` では不完全だったキャッシュ情報を `system.metrics` で公開)。インメモリキャッシュのサイズ(バイト単位)を `dashboard.html` に追加しました。`VectorSimilarityIndexCacheSize` / `IcebergMetadataFilesCacheSize` は `VectorSimilarityIndexCacheBytes` / `IcebergMetadataFilesCacheBytes` に名称変更しました。 [#81023](https://github.com/ClickHouse/ClickHouse/pull/81023) ([Azat Khuzhin](https://github.com/azat))。 +* `system.rocksdb` から読み取る際に、`RocksDB` テーブルを格納できないエンジンを持つデータベースを無視するようにしました。 [#81083](https://github.com/ClickHouse/ClickHouse/pull/81083) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* `clickhouse-local` の設定ファイルで `filesystem_caches` と `named_collections` を利用可能にしました。 [#81105](https://github.com/ClickHouse/ClickHouse/pull/81105) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `INSERT` クエリにおける `PARTITION BY` のシンタックスハイライトを修正しました。以前のバージョンでは、`PARTITION BY` がキーワードとしてハイライトされていませんでした。 [#81106](https://github.com/ClickHouse/ClickHouse/pull/81106) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* Web UI に小さな改善を 2 つ加えました。- `CREATE` や `INSERT` のような出力を伴わないクエリを正しく処理するようにしました(つい最近まで、これらのクエリではスピナーが無限に回り続けていました)。- テーブルをダブルクリックした際に、先頭までスクロールするようにしました。 [#81131](https://github.com/ClickHouse/ClickHouse/pull/81131) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `MemoryResidentWithoutPageCache` メトリクスは、ユーザースペースのページキャッシュを除いたサーバープロセスの物理メモリ使用量を、バイト単位で表します。これにより、ユーザースペースのページキャッシュが利用されている場合でも、実際のメモリ使用量をより正確に把握できます。ユーザースペースのページキャッシュが無効化されている場合、この値は `MemoryResident` と等しくなります。 [#81233](https://github.com/ClickHouse/ClickHouse/pull/81233) ([Jayme Bird](https://github.com/jaymebrd))。 +* クライアント、ローカルサーバー、Keeper クライアント、および Disks アプリで手動で記録された例外を「ログ済み」としてマークし、同じ例外が二重にログ出力されないようにしました。 [#81271](https://github.com/ClickHouse/ClickHouse/pull/81271) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* `use_skip_indexes_if_final` および `use_skip_indexes_if_final_exact_mode` の既定値が `True` になりました。これにより、`FINAL` 句を含むクエリは(該当する場合)スキップ索引を使用してグラニュールを絞り込み、さらに一致する主キー範囲に対応する追加のグラニュールも読み取るようになります。以前の、近似的で厳密ではない結果を返す挙動を必要とするユーザーは、慎重に評価したうえで `use_skip_indexes_if_final_exact_mode` を FALSE に設定できます。[#81331](https://github.com/ClickHouse/ClickHouse/pull/81331) ([Shankar Iyer](https://github.com/shankar-iyer))。 +* Web UI で複数のクエリがある場合、カーソル位置のクエリが実行されます。 [#80977](https://github.com/ClickHouse/ClickHouse/issues/80977) の継続対応です。 [#81354](https://github.com/ClickHouse/ClickHouse/pull/81354) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* この PR は、変換関数の単調性チェックにおける `is_strict` の実装上の問題を解決します。現在、一部の変換関数(`toFloat64(UInt32)` や `toDate(UInt8)` など)が、本来は true を返すべきところで誤って `is_strict` を false と返しています。 [#81359](https://github.com/ClickHouse/ClickHouse/pull/81359) ([zoomxi](https://github.com/zoomxi))。 +* `KeyCondition` が連続した範囲に一致するかどうかをチェックする際、キーに非厳密な関数チェーンが適用されている場合は、`Constraint::POINT` を `Constraint::RANGE` に変換する必要がある場合があります。たとえば、`toDate(event_time) = '2025-06-03'` は `event_time` に対して次のような範囲を意味します: ['2025-06-03 00:00:00', '2025-06-04 00:00:00')。この PR により、この挙動が修正されました。 [#81400](https://github.com/ClickHouse/ClickHouse/pull/81400) ([zoomxi](https://github.com/zoomxi)). +* `clickhouse`/`ch` のエイリアスは、`--host` または `--port` が指定されている場合、`clickhouse-local` ではなく `clickhouse-client` を呼び出すようになりました。[#79422](https://github.com/ClickHouse/ClickHouse/issues/79422) のフォローアップ。[#65252](https://github.com/ClickHouse/ClickHouse/issues/65252) をクローズ。[#81509](https://github.com/ClickHouse/ClickHouse/pull/81509)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* Keeper の応答時間分布データが得られたので、メトリクス用のヒストグラムのバケットを調整できるようになりました。 [#81516](https://github.com/ClickHouse/ClickHouse/pull/81516) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* プロファイルイベント `PageCacheReadBytes` を追加しました。[#81742](https://github.com/ClickHouse/ClickHouse/pull/81742) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* ファイルシステムキャッシュの論理エラー「Having zero bytes but range is not finished」を修正。 [#81868](https://github.com/ClickHouse/ClickHouse/pull/81868) ([Kseniia Sumarokova](https://github.com/kssenii)). + +#### バグ修正(公式安定版リリースにおけるユーザーに影響する不具合) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* `SELECT EXCEPT` クエリを使用するパラメータ付きビューを修正。 [#49447](https://github.com/ClickHouse/ClickHouse/issues/49447) を解決。 [#57380](https://github.com/ClickHouse/ClickHouse/pull/57380) ([Nikolay Degterinsky](https://github.com/evillique))。 +* Analyzer: JOIN でのカラム型の昇格後にカラムの PROJECTION 名を修正。[#63345](https://github.com/ClickHouse/ClickHouse/issues/63345) をクローズ。[#63519](https://github.com/ClickHouse/ClickHouse/pull/63519) ([Dmitry Novik](https://github.com/novikd))。 +* analyzer_compatibility_join_using_top_level_identifier が有効な場合に、カラム名の競合が発生するケースでの論理エラーを修正しました。 [#75676](https://github.com/ClickHouse/ClickHouse/pull/75676) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* `allow_push_predicate_ast_for_distributed_subqueries` が有効な場合の、プッシュダウンされた述語における CTE の扱いを修正。[#75647](https://github.com/ClickHouse/ClickHouse/issues/75647) および [#79672](https://github.com/ClickHouse/ClickHouse/issues/79672) を修正。[#77316](https://github.com/ClickHouse/ClickHouse/pull/77316)([Dmitry Novik](https://github.com/novikd))。 +* `SYSTEM SYNC REPLICA LIGHTWEIGHT 'foo'` が、指定したレプリカが存在しない場合でも成功を報告してしまう問題を修正しました。コマンドは、同期を試みる前に Keeper 内にレプリカが存在するかを正しく検証するようになりました。 [#78405](https://github.com/ClickHouse/ClickHouse/pull/78405) ([Jayme Bird](https://github.com/jaymebrd)). +* `ON CLUSTER` クエリの `CONSTRAINT` セクションで `currentDatabase` 関数が使用されていた、非常に限定的なケースで発生していたクラッシュを修正しました。[#78100](https://github.com/ClickHouse/ClickHouse/issues/78100) をクローズしました。[#79070](https://github.com/ClickHouse/ClickHouse/pull/79070)([pufit](https://github.com/pufit))。 +* サーバー間クエリにおける外部ロールの伝達処理を修正。[#79099](https://github.com/ClickHouse/ClickHouse/pull/79099)([Andrey Zvonov](https://github.com/zvonand))。 +* SingleValueDataGeneric で Field の代わりに IColumn を使用するようにしました。これにより、`Dynamic/Variant/JSON` 型に対する `argMax` など一部の集約関数で誤った戻り値が返される問題が修正されました。 [#79166](https://github.com/ClickHouse/ClickHouse/pull/79166) ([Pavel Kruglov](https://github.com/Avogar))。 +* Azure Blob Storage 向けの `use_native_copy` および `allow_azure_native_copy` 設定の適用を修正し、認証情報が一致する場合にのみネイティブコピーを使用するよう更新しました。これにより [#78964](https://github.com/ClickHouse/ClickHouse/issues/78964) が解決されました。[#79561](https://github.com/ClickHouse/ClickHouse/pull/79561) ([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 +* このカラムが相関付けられているかどうかをチェックする際に、カラムの起源スコープが不明な場合に発生していた論理エラーを修正しました。[#78183](https://github.com/ClickHouse/ClickHouse/issues/78183) を修正しました。[#79451](https://github.com/ClickHouse/ClickHouse/issues/79451) を修正しました。[#79727](https://github.com/ClickHouse/ClickHouse/pull/79727)([Dmitry Novik](https://github.com/novikd))。 +* ColumnConst と Analyzer を使用した grouping sets で誤った結果が返される問題を修正しました。 [#79743](https://github.com/ClickHouse/ClickHouse/pull/79743) ([Andrey Zvonov](https://github.com/zvonand)). +* ローカルレプリカが古くなっている状態で分散テーブルを読み取る際に、ローカル分片の結果が重複する問題を修正しました。 [#79761](https://github.com/ClickHouse/ClickHouse/pull/79761) ([Eduard Karacharov](https://github.com/korowa)). +* 負の符号ビットを持つ NaN のソート順を修正しました。 [#79847](https://github.com/ClickHouse/ClickHouse/pull/79847) ([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 +* GROUP BY ALL で `GROUPING` 句が考慮されなくなりました。 [#79915](https://github.com/ClickHouse/ClickHouse/pull/79915) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* `TopK` / `TopKWeighted` 関数において、容量を使い切っていない場合でも過大な誤差を引き起こしていた、誤った状態のマージ処理を修正しました。[#79939](https://github.com/ClickHouse/ClickHouse/pull/79939) ([Joel Höner](https://github.com/athre0z)). +* `azure_blob_storage` オブジェクトストレージでも `readonly` 設定が尊重されるようにしました。 [#79954](https://github.com/ClickHouse/ClickHouse/pull/79954) ([Julia Kartseva](https://github.com/jkartseva)). +* バックスラッシュでエスケープされた文字を含む `match(column, '^…')` を使用した際に発生していた、誤ったクエリ結果が返される問題およびメモリ不足によるクラッシュを修正しました。 [#79969](https://github.com/ClickHouse/ClickHouse/pull/79969) ([filimonov](https://github.com/filimonov)). +* データレイクでの Hive パーティショニングを無効化。次の問題の一部を解決します: [https://github.com/issues/assigned?issue=ClickHouse%7CClickHouse%7C79937](https://github.com/issues/assigned?issue=ClickHouse%7CClickHouse%7C79937)。[#80005](https://github.com/ClickHouse/ClickHouse/pull/80005)([Daniil Ivanik](https://github.com/divanik))。 +* ラムダ式を含むスキップインデックスが適用されない問題を修正しました。これは、索引定義内の高レベル関数がクエリ内のものと完全に一致する場合に発生していました。 [#80025](https://github.com/ClickHouse/ClickHouse/pull/80025) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* レプリカがレプリケーションログから ATTACH_PART コマンドを実行してパーツをアタッチする際のメタデータバージョンを修正。 [#80038](https://github.com/ClickHouse/ClickHouse/pull/80038) ([Aleksei Filatov](https://github.com/aalexfvk)). +* Executable User Defined Functions (eUDF) の名前は、他の関数と異なり `system.query_log` テーブルの `used_functions` カラムに追加されていませんでした。このPRでは、リクエストで eUDF が使用されていた場合に、その eUDF の名前が追加されるようにしました。 [#80073](https://github.com/ClickHouse/ClickHouse/pull/80073) ([Kyamran](https://github.com/nibblerenush))。 +* Arrow フォーマットでの LowCardinality(FixedString) の論理エラーを修正しました。 [#80156](https://github.com/ClickHouse/ClickHouse/pull/80156) ([Pavel Kruglov](https://github.com/Avogar)). +* Merge エンジンからのサブカラムの読み取りを修正。 [#80158](https://github.com/ClickHouse/ClickHouse/pull/80158) ([Pavel Kruglov](https://github.com/Avogar)). +* `KeyCondition` における数値型の比較に関する不具合を修正しました。[#80207](https://github.com/ClickHouse/ClickHouse/pull/80207) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 遅延マテリアライゼーションがプロジェクションを持つテーブルに対して適用された場合に発生する AMBIGUOUS_COLUMN_NAME を修正しました。 [#80251](https://github.com/ClickHouse/ClickHouse/pull/80251) ([Igor Nikonov](https://github.com/devcrafter)). +* 暗黙的なプロジェクション使用時に、LIKE 'ab_c%' のような文字列プレフィックスフィルタに対する COUNT の最適化が誤っていた不具合を修正。これにより [#80250](https://github.com/ClickHouse/ClickHouse/issues/80250) が解決されます。 [#80261](https://github.com/ClickHouse/ClickHouse/pull/80261) ([Amos Bird](https://github.com/amosbird))。 +* MongoDB ドキュメント内の入れ子になった数値フィールドが文字列として誤ってシリアライズされる問題を修正しました。MongoDB から読み込んだドキュメントに対する最大ネスト深度の制限を撤廃しました。 [#80289](https://github.com/ClickHouse/ClickHouse/pull/80289) ([Kirill Nikiforov](https://github.com/allmazz)). +* Replicated データベースにおける RMT のメタデータ検査の厳密さを緩和しました。 [#80296](https://github.com/ClickHouse/ClickHouse/issues/80296) をクローズしました。 [#80298](https://github.com/ClickHouse/ClickHouse/pull/80298)([Nikolay Degterinsky](https://github.com/evillique))。 +* PostgreSQL ストレージ用の DateTime および DateTime64 のテキスト表現を修正しました。 [#80301](https://github.com/ClickHouse/ClickHouse/pull/80301) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* `StripeLog` テーブルでタイムゾーン付きの `DateTime` を許可しました。これにより [#44120](https://github.com/ClickHouse/ClickHouse/issues/44120) が解決されました。[#80304](https://github.com/ClickHouse/ClickHouse/pull/80304)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* クエリプランのステップで行数が変化する場合は、非決定的関数を含む述語に対するフィルタのプッシュダウンを無効化しました。 [#40273](https://github.com/ClickHouse/ClickHouse/issues/40273) を修正。 [#80329](https://github.com/ClickHouse/ClickHouse/pull/80329)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* サブカラムを含むプロジェクションで発生する可能性のある論理エラーやクラッシュを修正。 [#80333](https://github.com/ClickHouse/ClickHouse/pull/80333) ([Pavel Kruglov](https://github.com/Avogar)). +* `ON` 式が自明な等価条件でない場合に、logical JOIN のフィルタープッシュダウン最適化によって発生していた `NOT_FOUND_COLUMN_IN_BLOCK` エラーを修正しました。[#79647](https://github.com/ClickHouse/ClickHouse/issues/79647) と [#77848](https://github.com/ClickHouse/ClickHouse/issues/77848) を修正しました。[#80360](https://github.com/ClickHouse/ClickHouse/pull/80360)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* パーティション化されたテーブルでキーを逆順に読み取る際に誤った結果が返される不具合を修正しました。これにより [#79987](https://github.com/ClickHouse/ClickHouse/issues/79987) が修正されました。 [#80448](https://github.com/ClickHouse/ClickHouse/pull/80448) ([Amos Bird](https://github.com/amosbird))。 +* Nullable キーを持ち、optimize_read_in_order が有効なテーブルで発生していた誤ったソート順を修正しました。 [#80515](https://github.com/ClickHouse/ClickHouse/pull/80515) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* SYSTEM STOP REPLICATED VIEW を使用して materialized view を一時停止していた場合に、リフレッシャブルmaterialized view の DROP が完了せずハングする問題を修正しました。 [#80543](https://github.com/ClickHouse/ClickHouse/pull/80543) ([Michael Kolupaev](https://github.com/al13n321)). +* 定数タプルを含む分散クエリで発生する「Cannot find column」エラーを修正。 [#80596](https://github.com/ClickHouse/ClickHouse/pull/80596) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* `join_use_nulls` を使用する分散テーブルでの `shardNum` 関数を修正。 [#80612](https://github.com/ClickHouse/ClickHouse/pull/80612) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Merge エンジンで、一部のテーブルにのみ存在するカラムを読み込む際に誤った結果が返される問題を修正しました。 [#80643](https://github.com/ClickHouse/ClickHouse/pull/80643) ([Pavel Kruglov](https://github.com/Avogar)). +* `replxx` のハングが原因となり得た SSH プロトコル違反を修正。 [#80688](https://github.com/ClickHouse/ClickHouse/pull/80688) ([Azat Khuzhin](https://github.com/azat)). +* iceberg_history テーブル内のタイムスタンプが正しく記録されるようになりました。 [#80711](https://github.com/ClickHouse/ClickHouse/pull/80711) ([Melvyn Peignon](https://github.com/melvynator)). +* Dictionary の登録に失敗した場合に発生する可能性があったクラッシュを修正(`CREATE DICTIONARY` が `CANNOT_SCHEDULE_TASK` で失敗すると、Dictionary レジストリ内にダングリングポインタが残る可能性があり、その後のクラッシュにつながっていた問題を修正)。 [#80714](https://github.com/ClickHouse/ClickHouse/pull/80714) ([Azat Khuzhin](https://github.com/azat)). +* オブジェクトストレージ向けテーブル関数における、要素が1つだけの enum グロブパターンの扱いを修正しました。 [#80716](https://github.com/ClickHouse/ClickHouse/pull/80716) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Tuple(Dynamic) と String を扱う比較関数の結果型が誤っていた問題を修正し、それにより発生していた論理エラーを解消しました。 [#80728](https://github.com/ClickHouse/ClickHouse/pull/80728) ([Pavel Kruglov](https://github.com/Avogar)). +* Unity Catalog 向けにサポートされていなかったデータ型 `timestamp_ntz` を追加。[#79535](https://github.com/ClickHouse/ClickHouse/issues/79535) および [#79875](https://github.com/ClickHouse/ClickHouse/issues/79875) を修正。[#80740](https://github.com/ClickHouse/ClickHouse/pull/80740)([alesapin](https://github.com/alesapin))。 +* `IN cte` を含む分散クエリで発生する `THERE_IS_NO_COLUMN` エラーを修正しました([#75032](https://github.com/ClickHouse/ClickHouse/issues/75032))。[#80757](https://github.com/ClickHouse/ClickHouse/pull/80757)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 外部 ORDER BY においてファイル数が過剰になり、メモリ使用量が過大になる問題を修正。 [#80777](https://github.com/ClickHouse/ClickHouse/pull/80777) ([Azat Khuzhin](https://github.com/azat)). +* このPRにより [#80742](https://github.com/ClickHouse/ClickHouse/issues/80742) がクローズされる可能性があります。 [#80783](https://github.com/ClickHouse/ClickHouse/pull/80783) ([zoomxi](https://github.com/zoomxi))。 +* Kafka で、`get_member_id()` が NULL から `std::string` を生成していたためにクラッシュする不具合を修正しました(おそらくブローカーへの接続に失敗した場合にのみ発生していた問題です)。 [#80793](https://github.com/ClickHouse/ClickHouse/pull/80793) ([Azat Khuzhin](https://github.com/azat))。 +* Kafka エンジンをシャットダウンする前に consumer の終了を正しく待機するよう修正しました(シャットダウン後にアクティブな consumer が残っていると、さまざまなデバッグアサーションが発火したり、テーブルが drop/detach された後もバックグラウンドで broker からデータを読み続けてしまう可能性があります)。 [#80795](https://github.com/ClickHouse/ClickHouse/pull/80795) ([Azat Khuzhin](https://github.com/azat)). +* `predicate-push-down` 最適化が原因で発生していた `NOT_FOUND_COLUMN_IN_BLOCK` を修正。[#80443](https://github.com/ClickHouse/ClickHouse/issues/80443) を解決。[#80834](https://github.com/ClickHouse/ClickHouse/pull/80834)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* USING 句付き JOIN におけるテーブル関数内で、アスタリスク (`*`) マッチャーを解決する処理の論理的な誤りを修正しました。 [#80894](https://github.com/ClickHouse/ClickHouse/pull/80894) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Iceberg メタデータファイルキャッシュにおけるメモリ使用量の計上を修正。 [#80904](https://github.com/ClickHouse/ClickHouse/pull/80904) ([Azat Khuzhin](https://github.com/azat)). +* Nullable なパーティションキー使用時の誤ったパーティショニングを修正。 [#80913](https://github.com/ClickHouse/ClickHouse/pull/80913) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* 分散クエリで述語プッシュダウン(`allow_push_predicate_ast_for_distributed_subqueries=1`)を有効にしている場合に、ソーステーブルがイニシエーターノード上に存在しないと発生していた `Table does not exist` エラーの問題を修正しました。 [#77281](https://github.com/ClickHouse/ClickHouse/issues/77281)。 [#80915](https://github.com/ClickHouse/ClickHouse/pull/80915)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 名前付きウィンドウを用いるネストされた関数の論理エラーを修正。 [#80926](https://github.com/ClickHouse/ClickHouse/pull/80926) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* Nullable および浮動小数点カラムに対する extremes の動作を修正。 [#80970](https://github.com/ClickHouse/ClickHouse/pull/80970) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* system.tables からのクエリ実行時に発生し得るクラッシュを修正(メモリプレッシャー時に発生する可能性が高い)。 [#80976](https://github.com/ClickHouse/ClickHouse/pull/80976) ([Azat Khuzhin](https://github.com/azat)). +* ファイル拡張子から圧縮形式を判別するファイルに対する、truncate を伴う atomic rename 操作を修正しました。 [#80979](https://github.com/ClickHouse/ClickHouse/pull/80979) ([Pablo Marcos](https://github.com/pamarcos))。 +* ErrorCodes::getName を修正。 [#81032](https://github.com/ClickHouse/ClickHouse/pull/81032) ([RinChanNOW](https://github.com/RinChanNOWWW))。 +* Unity Catalog で、すべてのテーブルに対する権限がない場合にユーザーがテーブルを一覧表示できないバグを修正しました。この修正により、すべてのテーブルが正しく一覧表示され、アクセス制限されたテーブルを読み取ろうとすると例外がスローされます。 [#81044](https://github.com/ClickHouse/ClickHouse/pull/81044) ([alesapin](https://github.com/alesapin)). +* `SHOW TABLES` クエリ実行時に、データレイクカタログからのエラーや予期しない応答を ClickHouse が無視するようになりました。これにより [#79725](https://github.com/ClickHouse/ClickHouse/issues/79725) が修正されました。 [#81046](https://github.com/ClickHouse/ClickHouse/pull/81046)([alesapin](https://github.com/alesapin))。 +* JSONExtract および JSON 型の解析で、整数値からの DateTime64 の解析を修正しました。 [#81050](https://github.com/ClickHouse/ClickHouse/pull/81050) ([Pavel Kruglov](https://github.com/Avogar)). +* スキーマ推論キャッシュに date_time_input_format 設定を反映するようにしました。 [#81052](https://github.com/ClickHouse/ClickHouse/pull/81052) ([Pavel Kruglov](https://github.com/Avogar)). +* `INSERT` の実行開始後、カラムが送信される前にテーブルが `DROP` された場合にクラッシュが発生する不具合を修正。 [#81053](https://github.com/ClickHouse/ClickHouse/pull/81053) ([Azat Khuzhin](https://github.com/azat)). +* quantileDeterministic における未初期化値の使用の問題を修正。 [#81062](https://github.com/ClickHouse/ClickHouse/pull/81062) ([Azat Khuzhin](https://github.com/azat))。 +* metadatastoragefromdisk ディスクトランザクションでのハードリンク数の管理を修正し、テストを追加。 [#81066](https://github.com/ClickHouse/ClickHouse/pull/81066) ([Sema Checherinda](https://github.com/CheSema)). +* 他の関数と異なり、ユーザー定義関数 (UDF) の名前が `system.query_log` テーブルに追加されていませんでした。このPRでは、リクエスト内でUDFが使用された場合に、そのUDF名を2つのカラム `used_executable_user_defined_functions` または `used_sql_user_defined_functions` のいずれかに追加するようにしました。 [#81101](https://github.com/ClickHouse/ClickHouse/pull/81101) ([Kyamran](https://github.com/nibblerenush))。 +* HTTP プロトコル経由でテキストフォーマット(`JSON`、`Values` など)を使用した INSERT 時に、`Enum` フィールドを省略した場合に発生する可能性があった `Too large size ... passed to allocator` エラーやクラッシュを修正しました。 [#81145](https://github.com/ClickHouse/ClickHouse/pull/81145) ([Anton Popov](https://github.com/CurtizJ)). +* non-MT の MV にプッシュされる INSERT ブロック内のスパースなカラムで発生する LOGICAL_ERROR を修正。 [#81161](https://github.com/ClickHouse/ClickHouse/pull/81161) ([Azat Khuzhin](https://github.com/azat)). +* `distributed_product_mode_local=local` とクロスレプリケーションを併用した場合に発生する `Unknown table expression identifier` エラーを修正。 [#81162](https://github.com/ClickHouse/ClickHouse/pull/81162) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* Parquet ファイルに対してフィルタリングを行った後の行数を誤ってキャッシュしていた問題を修正しました。 [#81184](https://github.com/ClickHouse/ClickHouse/pull/81184) ([Michael Kolupaev](https://github.com/al13n321)). +* 相対パスのキャッシュディレクトリを使用している場合の `fs cache max_size_to_total_space` 設定を修正しました。 [#81237](https://github.com/ClickHouse/ClickHouse/pull/81237) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Parquet 形式で const タプルまたは map を出力する際に clickhouse-local がクラッシュしていた問題を修正しました。 [#81249](https://github.com/ClickHouse/ClickHouse/pull/81249) ([Michael Kolupaev](https://github.com/al13n321)). +* ネットワーク経由で受信した配列オフセットを検証するようにしました。 [#81269](https://github.com/ClickHouse/ClickHouse/pull/81269) ([Azat Khuzhin](https://github.com/azat)). +* 空のテーブルを結合しウィンドウ関数を使用するクエリにおける特定のコーナーケースを修正しました。このバグにより並列ストリーム数が爆発的に増加し、その結果 OOM が発生していました。 [#81299](https://github.com/ClickHouse/ClickHouse/pull/81299) ([Alexander Gololobov](https://github.com/davenger))。 +* datalake の Cluster 関数(`deltaLakeCluster`、`icebergCluster` など)に対する修正: (1) 古い analyzer で `Cluster` 関数を使用した際に `DataLakeConfiguration` で発生しうるセグメンテーションフォールトを修正; (2) 重複して行われていたデータレイクメタデータ更新(余分なオブジェクトストレージリクエスト)を解消; (3) フォーマットが明示的に指定されていない場合の、オブジェクトストレージでの冗長な一覧取得を修正(これはすでに非クラスターデータレイクエンジンでは行われていたもの)。[#81300](https://github.com/ClickHouse/ClickHouse/pull/81300)([Kseniia Sumarokova](https://github.com/kssenii))。 +* `force_restore_data` フラグで失われた Keeper メタデータを復元できるようにしました。 [#81324](https://github.com/ClickHouse/ClickHouse/pull/81324) ([Raúl Marín](https://github.com/Algunenano)). +* delta-kernel における region エラーを修正。[#79914](https://github.com/ClickHouse/ClickHouse/issues/79914) の不具合に対応。[#81353](https://github.com/ClickHouse/ClickHouse/pull/81353)([Kseniia Sumarokova](https://github.com/kssenii))。 +* divideOrNull に対する誤った JIT を無効化。 [#81370](https://github.com/ClickHouse/ClickHouse/pull/81370) ([Raúl Marín](https://github.com/Algunenano)). +* MergeTree テーブルでパーティションのカラム名が長い場合に発生する挿入エラーを修正しました。 [#81390](https://github.com/ClickHouse/ClickHouse/pull/81390) ([hy123q](https://github.com/haoyangqian)). +* [#81957](https://github.com/ClickHouse/ClickHouse/issues/81957) にバックポート済み。マージ中に例外が発生した場合に `Aggregator` がクラッシュする可能性がある問題を修正しました。[#81450](https://github.com/ClickHouse/ClickHouse/pull/81450)([Nikita Taranov](https://github.com/nickitat))。 +* 複数のマニフェストファイルの内容をメモリに保持しないようにしました。 [#81470](https://github.com/ClickHouse/ClickHouse/pull/81470) ([Daniil Ivanik](https://github.com/divanik)). +* バックグラウンドプール (`background_.*pool_size`) のシャットダウン時に発生する可能性のあるクラッシュを修正しました。 [#81473](https://github.com/ClickHouse/ClickHouse/pull/81473) ([Azat Khuzhin](https://github.com/azat)). +* `URL` エンジンを使用してテーブルに書き込む際に `Npy` フォーマットで発生していた範囲外読み取りを修正しました。これにより [#81356](https://github.com/ClickHouse/ClickHouse/issues/81356) が解決されます。[#81502](https://github.com/ClickHouse/ClickHouse/pull/81502)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* Web UI が `NaN%` を表示する可能性があります(JavaScript 特有の問題)。 [#81507](https://github.com/ClickHouse/ClickHouse/pull/81507) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `database_replicated_enforce_synchronous_settings=1` 設定有効時の `DatabaseReplicated` の動作を修正しました。 [#81564](https://github.com/ClickHouse/ClickHouse/pull/81564) ([Azat Khuzhin](https://github.com/azat))。 +* LowCardinality(Nullable(...)) 型のソート順を修正しました。 [#81583](https://github.com/ClickHouse/ClickHouse/pull/81583) ([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 +* サーバーは、ソケットからリクエストを完全に読み込んでいない場合、HTTP 接続を保持すべきではありません。 [#81595](https://github.com/ClickHouse/ClickHouse/pull/81595) ([Sema Checherinda](https://github.com/CheSema)). +* スカラーな相関サブクエリが、射影式の結果を Nullable として返すようにしました。相関サブクエリが空の結果セットを生成する場合の不具合を修正しました。 [#81632](https://github.com/ClickHouse/ClickHouse/pull/81632) ([Dmitry Novik](https://github.com/novikd))。 +* `ReplicatedMergeTree` に対する `ATTACH` 実行時に発生する `Unexpected relative path for a deduplicated part` を修正。 [#81647](https://github.com/ClickHouse/ClickHouse/pull/81647) ([Azat Khuzhin](https://github.com/azat))。 +* クエリ設定 `use_iceberg_partition_pruning` は、クエリコンテキストではなくグローバルコンテキストを使用しているため、Iceberg ストレージに対しては反映されません。デフォルト値が true であるため致命的ではありませんが、この PR で修正されます。 [#81673](https://github.com/ClickHouse/ClickHouse/pull/81673) ([Han Fei](https://github.com/hanfei1991)). +* [#82128](https://github.com/ClickHouse/ClickHouse/issues/82128) にバックポート: TTL 式で dict を使用している場合のマージ中に発生する「Context has expired」エラーを修正。[#81690](https://github.com/ClickHouse/ClickHouse/pull/81690) ([Azat Khuzhin](https://github.com/azat)). +* MergeTree の設定項目 `merge_max_block_size` が 0 ではない値であることを検証する処理を追加しました。 [#81693](https://github.com/ClickHouse/ClickHouse/pull/81693) ([Bharat Nallan](https://github.com/bharatnc)). +* ハングしてしまう `DROP VIEW ` クエリに関する `clickhouse-local` の問題を修正しました。 [#81705](https://github.com/ClickHouse/ClickHouse/pull/81705) ([Bharat Nallan](https://github.com/bharatnc))。 +* 一部の場合における StorageRedis の JOIN を修正。 [#81736](https://github.com/ClickHouse/ClickHouse/pull/81736) ([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 +* old analyzer が有効な状態で空の `USING ()` を指定した場合に `ConcurrentHashJoin` がクラッシュする問題を修正。 [#81754](https://github.com/ClickHouse/ClickHouse/pull/81754) ([Nikita Taranov](https://github.com/nickitat))。 +* Keeper の修正: ログ内に不正なエントリがある場合、新しいログをコミットしないようにブロックします。以前は、リーダーが一部のログを誤って適用しても、フォロワーがダイジェスト不一致を検出して処理を中断するにもかかわらず、新しいログのコミットを続行していました。 [#81780](https://github.com/ClickHouse/ClickHouse/pull/81780) ([Antonio Andelic](https://github.com/antonio2368)). +* スカラー相関付きサブクエリの処理中に必要なカラムが読み込まれない問題を修正しました。 [#81716](https://github.com/ClickHouse/ClickHouse/issues/81716) を修正します。 [#81805](https://github.com/ClickHouse/ClickHouse/pull/81805)([Dmitry Novik](https://github.com/novikd))。 +* 誰かが私たちのコードにKustoの記述を散在させていたので、整理しました。これにより [#81643](https://github.com/ClickHouse/ClickHouse/issues/81643) がクローズされます。 [#81885](https://github.com/ClickHouse/ClickHouse/pull/81885) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 以前のバージョンでは、`/js` へのリクエストに対してサーバーが過剰な量のコンテンツを返していました。これにより [#61890](https://github.com/ClickHouse/ClickHouse/issues/61890) が解決されました。[#81895](https://github.com/ClickHouse/ClickHouse/pull/81895)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 以前は、`MongoDB` テーブルエンジンの定義で `host:port` 引数にパスコンポーネントを含めることができましたが、このパスコンポーネントは暗黙的に無視されていました。MongoDB 連携機能では、そのようなテーブルの読み込みを拒否していました。この修正により、*`MongoDB` エンジンが 5 つの引数を取る場合には、そのようなテーブルの読み込みを許可し、引数に含まれるデータベース名を使用したうえでパスコンポーネントを無視します*。*注意:* この修正は、新規に作成されたテーブルや `mongo` テーブル関数を用いたクエリ、Dictionary ソースおよび named collections には適用されません。[#81942](https://github.com/ClickHouse/ClickHouse/pull/81942) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* マージ処理中に例外が発生した際に `Aggregator` がクラッシュする可能性があった問題を修正しました。 [#82022](https://github.com/ClickHouse/ClickHouse/pull/82022) ([Nikita Taranov](https://github.com/nickitat)). +* `arraySimilarity` におけるコピー&ペーストによる誤りを修正し、重みとしての `UInt32` および `Int32` の使用を禁止しました。テストとドキュメントを更新しました。 [#82103](https://github.com/ClickHouse/ClickHouse/pull/82103) ([Mikhail f. Shiryaev](https://github.com/Felixoid))。 +* サジェスチョンスレッドとメインクライアントスレッドの間で発生しうるデータレースを修正。 [#82233](https://github.com/ClickHouse/ClickHouse/pull/82233) ([Azat Khuzhin](https://github.com/azat)). + +#### ビルド/テスト/パッケージングに関する改善 {#buildtestingpackaging-improvement} + +* `postgres` 16.9 を使用するようにしました。 [#81437](https://github.com/ClickHouse/ClickHouse/pull/81437) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* `openssl` 3.2.4 を使用するようにしました。 [#81438](https://github.com/ClickHouse/ClickHouse/pull/81438) ([Konstantin Bogdanov](https://github.com/thevar1able))。 +* `abseil-cpp` 2025-01-27 を使用するように更新しました。 [#81440](https://github.com/ClickHouse/ClickHouse/pull/81440) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* `mongo-c-driver` 1.30.4 を使用。 [#81449](https://github.com/ClickHouse/ClickHouse/pull/81449) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* `krb5` 1.21.3-final を使用します。 [#81453](https://github.com/ClickHouse/ClickHouse/pull/81453) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* `orc` 2.1.2 を使用するようにしました。 [#81455](https://github.com/ClickHouse/ClickHouse/pull/81455) ([Konstantin Bogdanov](https://github.com/thevar1able))。 +* `grpc` 1.73.0 を使用するようにしました。 [#81629](https://github.com/ClickHouse/ClickHouse/pull/81629) ([Konstantin Bogdanov](https://github.com/thevar1able))。 +* `delta-kernel-rs` を v0.12.1 に更新。 [#81707](https://github.com/ClickHouse/ClickHouse/pull/81707) ([Konstantin Bogdanov](https://github.com/thevar1able))。 +* `c-ares` を `v1.34.5` に更新しました。 [#81159](https://github.com/ClickHouse/ClickHouse/pull/81159) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* CVE-2025-5025 および CVE-2025-4947 に対処するため、`curl` を 8.14 へアップグレードしました。 [#81171](https://github.com/ClickHouse/ClickHouse/pull/81171) ([larryluogit](https://github.com/larryluogit)). +* `libarchive` を 3.7.9 にアップグレードし、以下の脆弱性に対応しました:CVE-2024-20696 CVE-2025-25724 CVE-2024-48958 CVE-2024-57970 CVE-2025-1632 CVE-2024-48957 CVE-2024-48615。 [#81174](https://github.com/ClickHouse/ClickHouse/pull/81174) ([larryluogit](https://github.com/larryluogit)). +* `libxml2` を 2.14.3 に更新しました。 [#81187](https://github.com/ClickHouse/ClickHouse/pull/81187) ([larryluogit](https://github.com/larryluogit)). +* vendored Rust のソースコードを `CARGO_HOME` にコピーしないようにしました。 [#79560](https://github.com/ClickHouse/ClickHouse/pull/79560) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* 独自のエンドポイントに置き換えることで、Sentry ライブラリへの依存を排除しました。 [#80236](https://github.com/ClickHouse/ClickHouse/pull/80236) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* Dependabot のアラートに対応するため、CI イメージ内の Python 依存関係を更新しました。 [#80658](https://github.com/ClickHouse/ClickHouse/pull/80658) ([Raúl Marín](https://github.com/Algunenano)). +* 起動時に、Keeper 向けのフォルトインジェクションが有効な場合でもテストがより堅牢になるよう、Keeper からレプリケーテッド DDL の停止フラグを読み取る処理を再試行するようにしました。 [#80964](https://github.com/ClickHouse/ClickHouse/pull/80964) ([Alexander Gololobov](https://github.com/davenger)). +* Ubuntu アーカイブの URL で https を使用するように変更。 [#81016](https://github.com/ClickHouse/ClickHouse/pull/81016) ([Raúl Marín](https://github.com/Algunenano)). +* テストイメージの Python 依存関係を更新しました。 [#81042](https://github.com/ClickHouse/ClickHouse/pull/81042) ([dependabot[bot]](https://github.com/apps/dependabot))。 +* Nix ビルド向けに `flake.nix` を導入しました。 [#81463](https://github.com/ClickHouse/ClickHouse/pull/81463) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* ビルド時に `delta-kernel-rs` がネットワーク アクセスを必要とする問題を修正しました。[#80609](https://github.com/ClickHouse/ClickHouse/issues/80609) をクローズしました。[#81602](https://github.com/ClickHouse/ClickHouse/pull/81602)([Konstantin Bogdanov](https://github.com/thevar1able))。記事 [A Year of Rust in ClickHouse](https://clickhouse.com/blog/rust) もご覧ください。 + +### ClickHouse 25.5 リリース、2025-05-22 {#255} + +#### 後方互換性のない変更 {#backward-incompatible-change} + +* 関数 `geoToH3` は、他の幾何関数と同様に、入力を (lat, lon, res) の順序で受け取るようになりました。以前と同じ順序 (lon, lat, res) を維持したいユーザーは、setting `geotoh3_argument_order = 'lon_lat'` を設定できます。[#78852](https://github.com/ClickHouse/ClickHouse/pull/78852)([Pratima Patel](https://github.com/pratimapatel2008))。 +* ファイルシステムキャッシュの設定項目 `allow_dynamic_cache_resize` を追加しました。デフォルトは `false` で、ファイルシステムキャッシュの動的リサイズを許可するかどうかを制御します。理由: 特定の環境(ClickHouse Cloud)では、すべてのスケーリングイベントはプロセスの再起動によって行われるため、この機能を明示的に無効化して動作をより厳密に制御し、安全策としたいためです。この PR は後方互換性のない変更としてマークされています。以前のバージョンでは、特別な設定なしに動的キャッシュリサイズがデフォルトで有効になっていたためです。[#79148](https://github.com/ClickHouse/ClickHouse/pull/79148)([Kseniia Sumarokova](https://github.com/kssenii))。 +* レガシー索引型 `annoy` および `usearch` のサポートを削除しました。これらは長い間スタブであり、レガシー索引を使用しようとするすべての試みは、いずれにせよエラーを返していました。まだ `annoy` および `usearch` の索引を保持している場合は、削除してください。[#79802](https://github.com/ClickHouse/ClickHouse/pull/79802)([Robert Schulze](https://github.com/rschu1ze))。 +* サーバー設定 `format_alter_commands_with_parentheses` を削除しました。この設定は 24.2 で導入され、デフォルトでは無効化されていましたが、25.2 でデフォルト有効化されました。新しいフォーマットをサポートしない LTS バージョンが存在しないため、この設定を削除できます。[#79970](https://github.com/ClickHouse/ClickHouse/pull/79970)([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 +* `DeltaLake` ストレージの `delta-kernel-rs` 実装をデフォルトで有効化しました。[#79541](https://github.com/ClickHouse/ClickHouse/pull/79541)([Kseniia Sumarokova](https://github.com/kssenii))。 +* `URL` からの読み取りで複数回のリダイレクトが発生する場合、設定 `enable_url_encoding` はチェーン内のすべてのリダイレクトに対して正しく適用されます。[#79563](https://github.com/ClickHouse/ClickHouse/pull/79563)([Shankar Iyer](https://github.com/shankar-iyer))。設定 `enble_url_encoding` のデフォルト値は、現在 `false` に設定されています。[#80088](https://github.com/ClickHouse/ClickHouse/pull/80088)([Shankar Iyer](https://github.com/shankar-iyer))。 + +#### 新機能 {#new-feature} + +* WHERE 句でスカラー相関サブクエリをサポートしました。[#6697](https://github.com/ClickHouse/ClickHouse/issues/6697) をクローズ。[#79600](https://github.com/ClickHouse/ClickHouse/pull/79600)([Dmitry Novik](https://github.com/novikd))。単純なケースにおいて、射影リストでの相関サブクエリをサポートしました。[#79925](https://github.com/ClickHouse/ClickHouse/pull/79925)([Dmitry Novik](https://github.com/novikd))。[#76078](https://github.com/ClickHouse/ClickHouse/pull/76078)([Dmitry Novik](https://github.com/novikd))。これで TPC-H テストスイートを 100% カバーできるようになりました。 +* ベクトル類似度索引を使用したベクトル検索機能が、これまでの実験的段階からベータ版になりました。 [#80164](https://github.com/ClickHouse/ClickHouse/pull/80164) ([Robert Schulze](https://github.com/rschu1ze))。 +* `Parquet` フォーマットで geo データ型をサポートしました。これにより [#75317](https://github.com/ClickHouse/ClickHouse/issues/75317) がクローズされました。[#79777](https://github.com/ClickHouse/ClickHouse/pull/79777) ([scanhex12](https://github.com/scanhex12)). +* インデックス作成および検索のために部分文字列を抽出する堅牢なアルゴリズム「sparse-ngrams」を計算するための新しい関数 `sparseGrams`、`sparseGramsHashes`、`sparseGramsHashesUTF8`、`sparseGramsUTF8` を追加しました。 [#79517](https://github.com/ClickHouse/ClickHouse/pull/79517) ([scanhex12](https://github.com/scanhex12))。 +* `clickhouse-local`(およびその短縮エイリアス名である `ch`)は、処理対象の入力データが存在する場合に、暗黙的な `FROM table` を使用するようになりました。これにより [#65023](https://github.com/ClickHouse/ClickHouse/issues/65023) が解決されました。また、通常のファイルを処理する際に `--input-format` が指定されていない場合、`clickhouse-local` でフォーマットの自動判別が行われるようになりました。[#79085](https://github.com/ClickHouse/ClickHouse/pull/79085)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `stringBytesUniq` と `stringBytesEntropy` 関数を追加し、ランダムまたは暗号化されている可能性があるデータを検索できるようにしました。 [#79350](https://github.com/ClickHouse/ClickHouse/pull/79350) ([Sachin Kumar Singh](https://github.com/sachinkumarsingh092))。 +* Base32 形式のエンコードおよびデコード用の関数を追加しました。 [#79809](https://github.com/ClickHouse/ClickHouse/pull/79809) ([Joanna Hulboj](https://github.com/jh0x))。 +* `getServerSetting` および `getMergeTreeSetting` 関数を追加。#78318 をクローズ。[#78439](https://github.com/ClickHouse/ClickHouse/pull/78439) ([NamNguyenHoai](https://github.com/NamHoaiNguyen))。 +* `version-hint.text` ファイルを活用するための新しい `iceberg_enable_version_hint` 設定を追加しました。[#78594](https://github.com/ClickHouse/ClickHouse/pull/78594)([Arnaud Briche](https://github.com/arnaudbriche))。 +* `LIKE` キーワードでフィルタリングして、データベース内の特定のテーブルだけを TRUNCATE できるようになりました。 [#78597](https://github.com/ClickHouse/ClickHouse/pull/78597) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* `MergeTree` ファミリーのテーブルで `_part_starting_offset` 仮想カラムをサポートしました。このカラムは、現在のパーツリストに基づいてクエリ時に計算される、それ以前のすべてのパーツにおける累積行数を表します。累積値はクエリ実行全体を通して保持され、パーツのプルーニング後も有効なままです。この動作をサポートするため、関連する内部ロジックをリファクタリングしました。[#79417](https://github.com/ClickHouse/ClickHouse/pull/79417) ([Amos Bird](https://github.com/amosbird))。 +* 右辺の引数がゼロの場合に NULL を返す関数 `divideOrNull`, `moduloOrNull`, `intDivOrNull`, `positiveModuloOrNull` を追加。[#78276](https://github.com/ClickHouse/ClickHouse/pull/78276) ([kevinyhzou](https://github.com/KevinyhZou)). +* ClickHouse のベクター検索は、プリフィルタリングとポストフィルタリングの両方をサポートし、より細かく制御できる関連設定を提供するようになりました (issue [#78161](https://github.com/ClickHouse/ClickHouse/issues/78161)). [#79854](https://github.com/ClickHouse/ClickHouse/pull/79854) ([Shankar Iyer](https://github.com/shankar-iyer)). +* [`icebergHash`](https://iceberg.apache.org/spec/#appendix-b-32-bit-hash-requirements) 関数と [`icebergBucket`](https://iceberg.apache.org/spec/#bucket-transform-details) 関数を追加しました。[`bucket transfom`](https://iceberg.apache.org/spec/#partitioning) でパーティション化された `Iceberg` テーブルにおけるデータファイルのプルーニングをサポートします。[#79262](https://github.com/ClickHouse/ClickHouse/pull/79262)([Daniil Ivanik](https://github.com/divanik))。 + +#### 実験的機能 {#experimental-feature} + +* 新しい `Time`/`Time64` データ型を追加しました: `Time` (HHH:MM:SS) と `Time64` (HHH:MM:SS.`<fractional>`)、および他のデータ型と相互運用するためのいくつかの基本的なキャスト関数・関連関数を追加しました。また、キャスト関数で関数 toTime が必要になるため、既存の関数名 toTime を toTimeWithFixedDate に変更しました。 [#75735](https://github.com/ClickHouse/ClickHouse/pull/75735) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Iceberg データレイク向けの Hive metastore カタログを追加しました。 [#77677](https://github.com/ClickHouse/ClickHouse/pull/77677) ([scanhex12](https://github.com/scanhex12)). +* `full_text` 型の索引の名称を `gin` に変更しました。これは PostgreSQL や他のデータベースでより一般的な用語に従うものです。`full_text` 型の既存の索引は引き続き読み込み可能ですが、検索で使用しようとすると例外をスローし、その代わりに `gin` 索引の使用を提案します。 [#79024](https://github.com/ClickHouse/ClickHouse/pull/79024) ([Robert Schulze](https://github.com/rschu1ze)). + +#### パフォーマンスの向上 {#performance-improvement} + +* Compact パーツ形式を変更し、各サブストリームごとにマークを保存して個々のサブカラムを読み取れるようにしました。古い Compact 形式は読み取りでは引き続きサポートされており、書き込みでも MergeTree の設定 `write_marks_for_substreams_in_compact_parts` を使用して有効化できます。compact パーツのストレージが変更されるため、より安全にアップグレードできるよう、デフォルトでは無効になっています。今後のいずれかのリリースでデフォルト有効になります。[#77940](https://github.com/ClickHouse/ClickHouse/pull/77940)([Pavel Kruglov](https://github.com/Avogar))。 +* サブカラムを含む条件式を PREWHERE 句に移動できるようにしました。 [#79489](https://github.com/ClickHouse/ClickHouse/pull/79489) ([Pavel Kruglov](https://github.com/Avogar)). +* セカンダリインデックスの式を複数のグラニュールに対して同時に評価することで、高速化しました。 [#64109](https://github.com/ClickHouse/ClickHouse/pull/64109) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* `compile_expressions`(通常の式フラグメント向けの JIT コンパイラ)をデフォルトで有効化しました。これにより、[#51264](https://github.com/ClickHouse/ClickHouse/issues/51264) と [#56386](https://github.com/ClickHouse/ClickHouse/issues/56386) および [#66486](https://github.com/ClickHouse/ClickHouse/issues/66486) が解決されました。[#79907](https://github.com/ClickHouse/ClickHouse/pull/79907)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 新しい設定 `use_skip_indexes_in_final_exact_mode` が追加されました。`ReplacingMergeTree` テーブルに対するクエリに FINAL 句が含まれている場合、スキップ索引に基づいてテーブル範囲のみを読み込むと、不正確な結果が返される可能性があります。この設定により、スキップ索引で返された主キー範囲と重複する新しいパーツを走査することで、正しい結果が返されることを保証します。無効化するには 0、有効化するには 1 を設定します。 [#78350](https://github.com/ClickHouse/ClickHouse/pull/78350) ([Shankar Iyer](https://github.com/shankar-iyer)). +* オブジェクトストレージクラスターのテーブル関数(例: `s3Cluster`)は、キャッシュの局所性を改善するため、コンシステントハッシュに基づいて読み取り対象のファイルをレプリカに割り当てるようになりました。 [#77326](https://github.com/ClickHouse/ClickHouse/pull/77326) ([Andrej Hoos](https://github.com/adikus)). +* `S3Queue`/`AzureQueue` で `INSERT` の処理を並列実行できるようにし、パフォーマンスを改善しました(キュー設定 `parallel_inserts=true` で有効化可能)。これまでは S3Queue/AzureQueue はパイプラインの最初の部分(ダウンロード、パース)のみ並列化でき、`INSERT` は単一スレッドでした。また、`INSERT` がほぼ常にボトルネックとなっていました。現在では `processing_threads_num` に対してほぼ線形にスケールします。[#77671](https://github.com/ClickHouse/ClickHouse/pull/77671)([Azat Khuzhin](https://github.com/azat))。S3Queue/AzureQueue における `max_processed_files_before_commit` の上限適用がより公平になりました。[#79363](https://github.com/ClickHouse/ClickHouse/pull/79363)([Azat Khuzhin](https://github.com/azat))。 +* 右側テーブルのサイズがしきい値未満の場合に `hash` アルゴリズムへフォールバックするためのしきい値(`parallel_hash_join_threshold` 設定で制御)を導入しました。 [#76185](https://github.com/ClickHouse/ClickHouse/pull/76185) ([Nikita Taranov](https://github.com/nickitat))。 +* 並列レプリカが有効な場合の読み取りタスクのサイズを決定する際に、レプリカ数を基準として使用するようにしました。これにより、読み取るデータ量がそれほど大きくない場合でも、レプリカ間での作業分散がより良好になります。 [#78695](https://github.com/ClickHouse/ClickHouse/pull/78695) ([Nikita Taranov](https://github.com/nickitat))。 +* 分散集約の最終段階で `uniqExact` 状態を並列にマージできるようにしました。 [#78703](https://github.com/ClickHouse/ClickHouse/pull/78703) ([Nikita Taranov](https://github.com/nickitat))。 +* キー付きの集約における `uniqExact` 状態の並列マージで発生し得るパフォーマンス低下を修正しました。 [#78724](https://github.com/ClickHouse/ClickHouse/pull/78724) ([Nikita Taranov](https://github.com/nickitat))。 +* Azure Storage への List Blobs API 呼び出し回数を削減しました。 [#78860](https://github.com/ClickHouse/ClickHouse/pull/78860) ([Julia Kartseva](https://github.com/jkartseva)). +* 並列レプリカを使用した分散 INSERT SELECT のパフォーマンスを改善しました。 [#79441](https://github.com/ClickHouse/ClickHouse/pull/79441) ([Azat Khuzhin](https://github.com/azat)). +* `LogSeriesLimiter` がインスタンス生成のたびにクリーンアップを行わないようにし、高い並行性のシナリオにおけるロック競合とパフォーマンス低下を回避しました。 [#79864](https://github.com/ClickHouse/ClickHouse/pull/79864) ([filimonov](https://github.com/filimonov)). +* 単純な COUNT の最適化によりクエリを高速化しました。 [#79945](https://github.com/ClickHouse/ClickHouse/pull/79945) ([Raúl Marín](https://github.com/Algunenano)). +* 一部の `Decimal` 演算に対するインライン展開を改善しました。 [#79999](https://github.com/ClickHouse/ClickHouse/pull/79999) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* `input_format_parquet_bloom_filter_push_down` のデフォルト値を true に設定しました。また、SETTINGS の変更履歴における誤りを修正しました。 [#80058](https://github.com/ClickHouse/ClickHouse/pull/80058) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* すべての行が削除されるパーツに対する `ALTER ... DELETE` mutation を最適化しました。このような場合、mutation を実行せず、元のパーツの代わりに空のパーツを作成するようになりました。[#79307](https://github.com/ClickHouse/ClickHouse/pull/79307) ([Anton Popov](https://github.com/CurtizJ))。 +* 可能な場合、Compact パーツへの挿入時にブロックを余分にコピーしないようにしました。 [#79536](https://github.com/ClickHouse/ClickHouse/pull/79536) ([Pavel Kruglov](https://github.com/Avogar)). +* 入力フォーマットで作成されるブロックのサイズをバイト単位で制限する設定 `input_format_max_block_size_bytes` を追加しました。行に大きな値が含まれる場合のデータインポート時の過剰なメモリ使用を抑制するのに役立ちます。 [#79495](https://github.com/ClickHouse/ClickHouse/pull/79495) ([Pavel Kruglov](https://github.com/Avogar))。 +* スレッドおよび async_socket_for_remote/use_hedge_requests のガードページを削除しました。`FiberStack` における割り当て方式を `mmap` から `aligned_alloc` に変更しました。この変更により VMA が分割されるため、高負荷時には vm.max_map_count に到達する可能性があります。 [#79147](https://github.com/ClickHouse/ClickHouse/pull/79147) ([Sema Checherinda](https://github.com/CheSema)). +* Parallel Replicas を用いた遅延マテリアライズ。 [#79401](https://github.com/ClickHouse/ClickHouse/pull/79401) ([Igor Nikonov](https://github.com/devcrafter)). + +#### 改良 {#improvement} + +* 設定 `lightweight_deletes_sync = 0`、`apply_mutations_on_fly = 1` を使用して、論理削除を動的に適用できるようにしました。 [#79281](https://github.com/ClickHouse/ClickHouse/pull/79281) ([Anton Popov](https://github.com/CurtizJ)). +* 端末上で Pretty フォーマットのデータを表示している場合、後続のブロックが同じカラム幅を持つときは、カーソルを上に移動して前のブロックから続けて表示し、前のブロックと連結できるようになりました。これにより [#79333](https://github.com/ClickHouse/ClickHouse/issues/79333) がクローズされました。この機能は新しい設定項目 `output_format_pretty_glue_chunks` で制御されます。 [#79339](https://github.com/ClickHouse/ClickHouse/pull/79339) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `isIPAddressInRange` 関数を拡張し、`String`、`IPv4`、`IPv6`、`Nullable(String)`、`Nullable(IPv4)`、`Nullable(IPv6)` データ型をサポートするようにしました。 [#78364](https://github.com/ClickHouse/ClickHouse/pull/78364) ([YjyJeff](https://github.com/YjyJeff))。 +* `PostgreSQL` エンジンのコネクションプーラー設定を動的に変更できるようになりました。 [#78414](https://github.com/ClickHouse/ClickHouse/pull/78414) ([Samay Sharma](https://github.com/samay-sharma)). +* 通常の PROJECTION で `_part_offset` を指定可能にしました。これは PROJECTION 用インデックスを構築するための最初のステップです。[#58224](https://github.com/ClickHouse/ClickHouse/issues/58224) と組み合わせて使用でき、#63207 の改善にも役立ちます。 [#78429](https://github.com/ClickHouse/ClickHouse/pull/78429) ([Amos Bird](https://github.com/amosbird)). +* `system.named_collections` に新しいカラム(`create_query` と `source`)を追加しました。 [#78179](https://github.com/ClickHouse/ClickHouse/issues/78179) をクローズしました。 [#78582](https://github.com/ClickHouse/ClickHouse/pull/78582)([MikhailBurdukov](https://github.com/MikhailBurdukov))。 +* システムテーブル `system.query_condition_cache` に新しいフィールド `condition` を追加しました。このフィールドには、クエリ条件キャッシュのキーとして使用されるハッシュの元となるプレーンテキストの条件式が格納されます。 [#78671](https://github.com/ClickHouse/ClickHouse/pull/78671) ([Robert Schulze](https://github.com/rschu1ze)). +* ベクトル類似度インデックスを `BFloat16` カラム上でも作成できるようになりました。 [#78850](https://github.com/ClickHouse/ClickHouse/pull/78850) ([Robert Schulze](https://github.com/rschu1ze))。 +* ベストエフォートの `DateTime64` 解析で、小数部を含む UNIX タイムスタンプをサポートするようになりました。 [#78908](https://github.com/ClickHouse/ClickHouse/pull/78908) ([Pavel Kruglov](https://github.com/Avogar)). +* ストレージ `DeltaLake` の delta-kernel 実装において、カラムマッピングモードの不具合を修正し、スキーマ進化向けのテストを追加。 [#78921](https://github.com/ClickHouse/ClickHouse/pull/78921) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* Values フォーマットでの `Variant` カラムへの insert 時に、値の変換をより適切に行うよう改善しました。 [#78923](https://github.com/ClickHouse/ClickHouse/pull/78923) ([Pavel Kruglov](https://github.com/Avogar)). +* `tokens` 関数が拡張され、追加の「tokenizer」引数およびその他の tokenizer 固有の引数を受け取れるようになりました。[#79001](https://github.com/ClickHouse/ClickHouse/pull/79001)([Elmi Ahmadov](https://github.com/ahmadov))。 +* `SHOW CLUSTER` ステートメントは、引数で指定されたマクロ(存在する場合)を展開するようになりました。 [#79006](https://github.com/ClickHouse/ClickHouse/pull/79006) ([arf42](https://github.com/arf42))。 +* ハッシュ関数で、配列、タプル、マップ内の `NULL` がサポートされるようになりました(issues [#48365](https://github.com/ClickHouse/ClickHouse/issues/48365) および [#48623](https://github.com/ClickHouse/ClickHouse/issues/48623))。[#79008](https://github.com/ClickHouse/ClickHouse/pull/79008)([Michael Kolupaev](https://github.com/al13n321))。 +* cctz を 2025a に更新しました。 [#79043](https://github.com/ClickHouse/ClickHouse/pull/79043) ([Raúl Marín](https://github.com/Algunenano))。 +* UDF の stderr のデフォルト処理を "log_last" に変更。利便性が向上します。 [#79066](https://github.com/ClickHouse/ClickHouse/pull/79066) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Web UI でタブの取り消し(Undo)が可能になりました。これにより [#71284](https://github.com/ClickHouse/ClickHouse/issues/71284) が解決されました。[#79084](https://github.com/ClickHouse/ClickHouse/pull/79084)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `recoverLostReplica` の実行中に設定を削除するようにし、次の PR と同様の動作としました: [https://github.com/ClickHouse/ClickHouse/pull/78637](https://github.com/ClickHouse/ClickHouse/pull/78637)。 [#79113](https://github.com/ClickHouse/ClickHouse/pull/79113) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* Parquet インデックスのプルーニングをプロファイリングするためのプロファイルイベント `ParquetReadRowGroups` と `ParquetPrunedRowGroups` を追加しました。 [#79180](https://github.com/ClickHouse/ClickHouse/pull/79180) ([flynn](https://github.com/ucasfl)). +* クラスタ上のデータベースに対する `ALTER` をサポート。 [#79242](https://github.com/ClickHouse/ClickHouse/pull/79242) ([Tuan Pham Anh](https://github.com/tuanpach)). +* QueryMetricLog の統計収集で取りこぼされた実行を明示的にスキップするようにし、そうしない場合にログが現在時刻に追いつくまで長時間かかってしまう問題を回避します。 [#79257](https://github.com/ClickHouse/ClickHouse/pull/79257) ([Mikhail Artemenko](https://github.com/Michicosun)). +* `Arrow` ベースのフォーマット読み取りに対する細かな最適化をいくつか行いました。 [#79308](https://github.com/ClickHouse/ClickHouse/pull/79308) ([Bharat Nallan](https://github.com/bharatnc)). +* `allow_archive_path_syntax` の設定が誤って experimental としてマークされていました。experimental な設定がデフォルトで有効になることを防ぐためのテストを追加しました。 [#79320](https://github.com/ClickHouse/ClickHouse/pull/79320) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* ページキャッシュ設定をクエリごとに調整可能にしました。これは、実験をより高速に行えるようにするとともに、高スループットかつ低レイテンシーなクエリ向けにきめ細かいチューニングを行えるようにするためです。 [#79337](https://github.com/ClickHouse/ClickHouse/pull/79337) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 典型的な 64 ビットハッシュのように見える数値については、Pretty 形式で数値ヒントを出力しないようにしました。これにより [#79334](https://github.com/ClickHouse/ClickHouse/issues/79334) が解決されました。[#79338](https://github.com/ClickHouse/ClickHouse/pull/79338)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 高度なダッシュボード上のグラフの色は、対応するクエリのハッシュから計算されるようになりました。これにより、ダッシュボードをスクロールしている際にグラフを識別して見つけやすくなります。 [#79341](https://github.com/ClickHouse/ClickHouse/pull/79341) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 非同期メトリック `FilesystemCacheCapacity` を追加しました。`cache` 仮想ファイルシステムの総容量を表し、グローバルなインフラストラクチャ監視に役立ちます。 [#79348](https://github.com/ClickHouse/ClickHouse/pull/79348) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* system.parts へのアクセスを最適化し、要求された場合にのみカラム/索引のサイズを読み取るようにしました。 [#79352](https://github.com/ClickHouse/ClickHouse/pull/79352) ([Azat Khuzhin](https://github.com/azat)). +* `'SHOW CLUSTER '` クエリに対して、すべてのフィールドではなく関連するフィールドのみを計算するようにしました。 [#79368](https://github.com/ClickHouse/ClickHouse/pull/79368) ([Tuan Pham Anh](https://github.com/tuanpach)). +* `DatabaseCatalog` 向けにストレージ設定を指定可能にしました。 [#79407](https://github.com/ClickHouse/ClickHouse/pull/79407) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `DeltaLake` でローカルストレージをサポートしました。 [#79416](https://github.com/ClickHouse/ClickHouse/pull/79416) ([Kseniia Sumarokova](https://github.com/kssenii)). +* delta-kernel-rs を有効化するためのクエリレベルの設定 `allow_experimental_delta_kernel_rs` を追加しました。 [#79418](https://github.com/ClickHouse/ClickHouse/pull/79418) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Azure/S3 BLOB ストレージからの BLOB 一覧取得時に発生し得た無限ループを修正しました。 [#79425](https://github.com/ClickHouse/ClickHouse/pull/79425) ([Alexander Gololobov](https://github.com/davenger)). +* ファイルシステムキャッシュの設定 `max_size_ratio_to_total_space` を追加しました。 [#79460](https://github.com/ClickHouse/ClickHouse/pull/79460) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `clickhouse-benchmark` の `reconnect` オプションを再構成し、再接続回数に応じて 0、1、または N を値として指定できるようにしました。 [#79465](https://github.com/ClickHouse/ClickHouse/pull/79465) ([Sachin Kumar Singh](https://github.com/sachinkumarsingh092)). +* 異なる `plain_rewritable` ディスク上にあるテーブルに対しても `ALTER TABLE ... MOVE|REPLACE PARTITION` が許可されるようになりました。 [#79566](https://github.com/ClickHouse/ClickHouse/pull/79566) ([Julia Kartseva](https://github.com/jkartseva))。 +* 参照ベクトルが `Array(BFloat16)` 型の場合にも、ベクトル類似度の索引が使用されるようになりました。 [#79745](https://github.com/ClickHouse/ClickHouse/pull/79745) ([Shankar Iyer](https://github.com/shankar-iyer)). +* last_error_message、last_error_trace、および query_id を system.error_log テーブルに追加。関連チケット [#75816](https://github.com/ClickHouse/ClickHouse/issues/75816)。[#79836](https://github.com/ClickHouse/ClickHouse/pull/79836)([Andrei Tinikov](https://github.com/Dolso))。 +* クラッシュレポートの送信を既定で有効化しました。これはサーバーの設定ファイルで無効にできます。 [#79838](https://github.com/ClickHouse/ClickHouse/pull/79838) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* システムテーブル `system.functions` に、各関数が初めて導入された ClickHouse のバージョンが表示されるようになりました。 [#79839](https://github.com/ClickHouse/ClickHouse/pull/79839) ([Robert Schulze](https://github.com/rschu1ze))。 +* `access_control_improvements.enable_user_name_access_type` SETTING を追加しました。この SETTING により、[https://github.com/ClickHouse/ClickHouse/pull/72246](https://github.com/ClickHouse/ClickHouse/pull/72246) で導入されたユーザー/ロールごとの厳密な権限付与を有効化/無効化できます。25.1 より古いレプリカを含むクラスターを使用している場合は、この SETTING を無効にすることを検討してください。[#79842](https://github.com/ClickHouse/ClickHouse/pull/79842)([pufit](https://github.com/pufit))。 +* `ASTSelectWithUnionQuery::clone()` メソッドの適切な実装において、`is_normalized` フィールドも考慮されるようになりました。これにより [#77569](https://github.com/ClickHouse/ClickHouse/issues/77569) の問題の解決に役立つ可能性があります。 [#79909](https://github.com/ClickHouse/ClickHouse/pull/79909) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* EXCEPT 演算子を含む一部のクエリにおける一貫性のない整形を修正しました。EXCEPT 演算子の左辺が `*` で終わる場合、整形後のクエリから括弧が失われ、その結果 `EXCEPT` 修飾子付きの `*` として解釈されてしまいます。これらのクエリは fuzzer によって検出されたものであり、実際に利用される可能性は低いと考えられます。この変更により [#79950](https://github.com/ClickHouse/ClickHouse/issues/79950) がクローズされました。[#79952](https://github.com/ClickHouse/ClickHouse/pull/79952)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `JSON` 型のパースを、バリアントのデシリアライズ順序をキャッシュすることでわずかに改善しました。 [#79984](https://github.com/ClickHouse/ClickHouse/pull/79984) ([Pavel Kruglov](https://github.com/Avogar)). +* `s3_slow_all_threads_after_network_error` 設定を追加。 [#80035](https://github.com/ClickHouse/ClickHouse/pull/80035) ([Vitaly Baranov](https://github.com/vitlibar))。 +* マージ対象として選択されたパーツに関するログレベルが誤って Information レベルになっていました。[#80061](https://github.com/ClickHouse/ClickHouse/issues/80061) をクローズしました。[#80062](https://github.com/ClickHouse/ClickHouse/pull/80062)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* trace-visualizer: ツールチップとステータスメッセージに runtime/share を追加。 [#79040](https://github.com/ClickHouse/ClickHouse/pull/79040) ([Sergei Trifonov](https://github.com/serxa)). +* trace-visualizer: ClickHouse サーバーからのデータ読み込みをサポートしました。 [#79042](https://github.com/ClickHouse/ClickHouse/pull/79042) ([Sergei Trifonov](https://github.com/serxa)). +* 失敗したマージに関するメトリクスを追加。 [#79228](https://github.com/ClickHouse/ClickHouse/pull/79228) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* `clickhouse-benchmark` は、最大反復回数が指定されている場合、その最大反復回数に対する割合を表示します。 [#79346](https://github.com/ClickHouse/ClickHouse/pull/79346) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* system.parts テーブルの可視化ツールを追加。 [#79437](https://github.com/ClickHouse/ClickHouse/pull/79437) ([Sergei Trifonov](https://github.com/serxa)). +* クエリのレイテンシーを解析するためのツールを追加。 [#79978](https://github.com/ClickHouse/ClickHouse/pull/79978) ([Sergei Trifonov](https://github.com/serxa)). + +#### バグ修正(公式安定版リリースにおけるユーザーに影響する不具合) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* パーツ内で欠落しているカラムの名称変更処理を修正。 [#76346](https://github.com/ClickHouse/ClickHouse/pull/76346) ([Anton Popov](https://github.com/CurtizJ)). +* materialized view が開始されるタイミングが遅くなり、例えば、その materialized view にストリーミングする Kafka テーブルより後に開始してしまうことがありました。 [#72123](https://github.com/ClickHouse/ClickHouse/pull/72123) ([Ilya Golshtein](https://github.com/ilejn)). +* `analyzer` 有効時の `VIEW` 作成における `SELECT` クエリの書き換えを修正。[#75956](https://github.com/ClickHouse/ClickHouse/issues/75956) をクローズ。[#76356](https://github.com/ClickHouse/ClickHouse/pull/76356)([Dmitry Novik](https://github.com/novikd))。 +* サーバーからの `async_insert` 設定の適用処理(`apply_settings_from_server` 経由)を修正(以前はクライアント側で `Unknown packet 11 from server` エラーが発生してしまっていた)。 [#77578](https://github.com/ClickHouse/ClickHouse/pull/77578) ([Azat Khuzhin](https://github.com/azat)). +* Replicated データベースにおいて、新たに追加されたレプリカでリフレッシャブルmaterialized view が動作しない問題を修正しました。 [#77774](https://github.com/ClickHouse/ClickHouse/pull/77774) ([Michael Kolupaev](https://github.com/al13n321)). +* リフレッシャブルmaterialized viewによりバックアップが壊れる不具合を修正しました。 [#77893](https://github.com/ClickHouse/ClickHouse/pull/77893) ([Michael Kolupaev](https://github.com/al13n321)). +* `transform` において古い条件で誤ってスローされていた論理エラーを修正。 [#78247](https://github.com/ClickHouse/ClickHouse/pull/78247) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* 一部のケースでアナライザ使用時にセカンダリ索引が適用されていなかった問題を修正しました。[#65607](https://github.com/ClickHouse/ClickHouse/issues/65607) および [#69373](https://github.com/ClickHouse/ClickHouse/issues/69373) を修正しました。 [#78485](https://github.com/ClickHouse/ClickHouse/pull/78485) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* HTTP プロトコルで圧縮を有効にした場合の profile events(`NetworkSendElapsedMicroseconds` / `NetworkSendBytes`)のダンプ処理を修正しました(誤差がバッファサイズ(通常は約 1 MiB)を超えないようにしました)。 [#78516](https://github.com/ClickHouse/ClickHouse/pull/78516) ([Azat Khuzhin](https://github.com/azat)). +* JOIN ... USING に ALIAS カラム が含まれている場合に LOGICAL_ERROR を発生させていたアナライザを修正し、適切なエラーを返すようにしました。 [#78618](https://github.com/ClickHouse/ClickHouse/pull/78618) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* analyzer を修正: `SELECT` に位置引数が含まれている場合に `CREATE VIEW ... ON CLUSTER` が失敗していた不具合を解消。 [#78663](https://github.com/ClickHouse/ClickHouse/pull/78663) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 +* `SELECT` にスカラーサブクエリが含まれている場合に、スキーマを自動推論するテーブル関数への `INSERT SELECT` で発生する `Block structure mismatch` エラーを修正。 [#78677](https://github.com/ClickHouse/ClickHouse/pull/78677) ([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 +* analyzer を修正: 分散テーブルに対して prefer_global_in_and_join=1 を有効にしている場合、SELECT クエリ内の `in` 関数が `globalIn` に置き換えられるようにしました。 [#78749](https://github.com/ClickHouse/ClickHouse/pull/78749) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* `MongoDB` エンジンを使用するテーブル、または `mongodb` テーブル関数を参照する複数種類の `SELECT` クエリを修正しました。対象には、`WHERE` 句内で定数値の暗黙的な型変換が行われるクエリ(例: `WHERE datetime = '2025-03-10 00:00:00'`)や、`LIMIT` および `GROUP BY` を含むクエリが含まれます。以前は、これらのクエリが誤った結果を返す可能性がありました。 [#78777](https://github.com/ClickHouse/ClickHouse/pull/78777) ([Anton Popov](https://github.com/CurtizJ)). +* 異なる JSON 型間の変換を修正しました。現在は、String への/からの変換を介した単純なキャストで行われます。パフォーマンスは低下しますが、結果は 100% 正確です。 [#78807](https://github.com/ClickHouse/ClickHouse/pull/78807) ([Pavel Kruglov](https://github.com/Avogar))。 +* Dynamic 型から Interval 型への変換時の論理エラーを修正。 [#78813](https://github.com/ClickHouse/ClickHouse/pull/78813) ([Pavel Kruglov](https://github.com/Avogar)). +* JSON パースエラー時のカラムのロールバック処理を修正。 [#78836](https://github.com/ClickHouse/ClickHouse/pull/78836) ([Pavel Kruglov](https://github.com/Avogar)). +* JOIN において定数エイリアスカラムを使用した場合に発生する「bad cast」エラーを修正。 [#78848](https://github.com/ClickHouse/ClickHouse/pull/78848) ([Vladimir Cherkasov](https://github.com/vdimir)). +* materialized view において、ビューと対象テーブルで型が異なるカラムに対する PREWHERE 句を許可しないようにしました。 [#78889](https://github.com/ClickHouse/ClickHouse/pull/78889) ([Pavel Kruglov](https://github.com/Avogar)). +* Variantカラムの不正なバイナリデータを解析する際に発生する論理エラーを修正。 [#78982](https://github.com/ClickHouse/ClickHouse/pull/78982) ([Pavel Kruglov](https://github.com/Avogar)). +* Parquet バッチサイズが 0 に設定されている場合は例外をスローするようにしました。以前は output_format_parquet_batch_size = 0 のとき、ClickHouse がハングしていましたが、この問題を修正しました。 [#78991](https://github.com/ClickHouse/ClickHouse/pull/78991) ([daryawessely](https://github.com/daryawessely)). +* コンパクトパーツにおける basic format を用いた variant discriminator のデシリアライズを修正しました。この問題は [https://github.com/ClickHouse/ClickHouse/pull/55518](https://github.com/ClickHouse/ClickHouse/pull/55518) で導入されました。 [#79000](https://github.com/ClickHouse/ClickHouse/pull/79000) ([Pavel Kruglov](https://github.com/Avogar))。 +* `complex_key_ssd_cache` 型の辞書は、ゼロ以下の `block_size` および `write_buffer_size` パラメータを拒否するようになりました(issue [#78314](https://github.com/ClickHouse/ClickHouse/issues/78314))。[#79028](https://github.com/ClickHouse/ClickHouse/pull/79028)([Elmi Ahmadov](https://github.com/ahmadov))。 +* SummingMergeTree で非集約カラムに対して Field を使用しないでください。SummingMergeTree で使用される Dynamic/Variant 型との組み合わせにより、予期しないエラーが発生する可能性があります。 [#79051](https://github.com/ClickHouse/ClickHouse/pull/79051) ([Pavel Kruglov](https://github.com/Avogar)). +* analyzer においてヘッダーが異なる Distributed 宛先テーブルを使用する materialized view からの読み取りの問題を修正しました。[#79059](https://github.com/ClickHouse/ClickHouse/pull/79059)([Pavel Kruglov](https://github.com/Avogar))。 +* バッチ挿入を行うテーブルに対して `arrayUnion()` が余分な(誤った)値を返すバグを修正しました。[#75057](https://github.com/ClickHouse/ClickHouse/issues/75057) を修正。[#79079](https://github.com/ClickHouse/ClickHouse/pull/79079)([Peter Nguyen](https://github.com/petern48))。 +* `OpenSSLInitializer` 内のセグメンテーションフォルトを修正し、[#79092](https://github.com/ClickHouse/ClickHouse/issues/79092) をクローズ。 [#79097](https://github.com/ClickHouse/ClickHouse/pull/79097) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* S3 の ListObject に対して常に prefix を設定するようにしました。 [#79114](https://github.com/ClickHouse/ClickHouse/pull/79114) ([Azat Khuzhin](https://github.com/azat)). +* バッチ挿入を行うテーブルで arrayUnion() が余分な(誤った)値を返していたバグを修正しました([#79157](https://github.com/ClickHouse/ClickHouse/issues/79157))。[#79158](https://github.com/ClickHouse/ClickHouse/pull/79158)([Peter Nguyen](https://github.com/petern48))。 +* フィルタープッシュダウン後に発生する論理エラーを修正。 [#79164](https://github.com/ClickHouse/ClickHouse/pull/79164) ([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 +* HTTP ベースのエンドポイントで使用される delta-kernel 実装を用いた DeltaLake テーブルエンジンの問題を修正し、NOSIGN を修正しました。 [#78124](https://github.com/ClickHouse/ClickHouse/issues/78124) をクローズ。 [#79203](https://github.com/ClickHouse/ClickHouse/pull/79203)([Kseniia Sumarokova](https://github.com/kssenii))。 +* Keeper の修正: 失敗したマルチリクエストに対して watch が発火しないように修正しました。 [#79247](https://github.com/ClickHouse/ClickHouse/pull/79247) ([Antonio Andelic](https://github.com/antonio2368)). +* `IN` で Dynamic 型および JSON 型の使用を禁止しました。現在の `IN` の実装では、それらを使用すると不正確な結果につながる可能性があります。これらの型に対する `IN` の適切なサポートは複雑であり、将来対応が行われる可能性があります。[#79282](https://github.com/ClickHouse/ClickHouse/pull/79282) ([Pavel Kruglov](https://github.com/Avogar))。 +* JSON 型解析時の重複パスチェックを修正。 [#79317](https://github.com/ClickHouse/ClickHouse/pull/79317) ([Pavel Kruglov](https://github.com/Avogar))。 +* SecureStreamSocket の接続に関する問題を修正。 [#79383](https://github.com/ClickHouse/ClickHouse/pull/79383) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* データを含む plain_rewritable ディスクの読み込みの不具合を修正。[#79439](https://github.com/ClickHouse/ClickHouse/pull/79439)([Julia Kartseva](https://github.com/jkartseva))。 +* MergeTree の Wide パーツにおける動的サブカラム検出でクラッシュする問題を修正。 [#79466](https://github.com/ClickHouse/ClickHouse/pull/79466) ([Pavel Kruglov](https://github.com/Avogar))。 +* テーブル名の長さは初回の CREATE クエリに対してのみ検証するようにしました。下位互換性の問題を避けるため、後続の CREATE については検証しません。 [#79488](https://github.com/ClickHouse/ClickHouse/pull/79488) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* スパースなカラムを持つテーブルで、複数のケースにおいて発生していた `Block structure mismatch` エラーを修正しました。 [#79491](https://github.com/ClickHouse/ClickHouse/pull/79491) ([Anton Popov](https://github.com/CurtizJ))。 +* 「Logical Error: Can't set alias of * of Asterisk on alias」というエラーが発生する2つのケースを修正。[#79505](https://github.com/ClickHouse/ClickHouse/pull/79505) ([Raúl Marín](https://github.com/Algunenano)). +* Atomic データベースの名前変更時に誤ったパスを使用していた不具合を修正しました。 [#79569](https://github.com/ClickHouse/ClickHouse/pull/79569) ([Tuan Pham Anh](https://github.com/tuanpach)). +* JSON カラムを他のカラムと併用した ORDER BY の動作を修正。 [#79591](https://github.com/ClickHouse/ClickHouse/pull/79591) ([Pavel Kruglov](https://github.com/Avogar)). +* `use_hedged_requests` と `allow_experimental_parallel_reading_from_replicas` が両方とも無効になっている場合に、remote からの読み取り時に結果が重複する問題を修正。 [#79599](https://github.com/ClickHouse/ClickHouse/pull/79599) ([Eduard Karacharov](https://github.com/korowa))。 +* Unity Catalog 使用時に delta-kernel 実装で発生するクラッシュを修正。 [#79677](https://github.com/ClickHouse/ClickHouse/pull/79677) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 自動検出クラスタ向けマクロの解決に対応しました。 [#79696](https://github.com/ClickHouse/ClickHouse/pull/79696) ([Anton Ivashkin](https://github.com/ianton-ru)). +* 不正な `page_cache_limits` の設定を適切に処理するようにしました。 [#79805](https://github.com/ClickHouse/ClickHouse/pull/79805) ([Bharat Nallan](https://github.com/bharatnc)). +* 可変長の書式指定子(例:`%W`、曜日を表す `Monday` や `Tuesday` など)の後に複合書式指定子(複数の要素を一度に出力する書式指定子。例:`%D`、アメリカ式日付 `05/04/25`)が続く場合に誤った結果となっていた SQL 関数 `formatDateTime` の動作を修正しました。 [#79835](https://github.com/ClickHouse/ClickHouse/pull/79835) ([Robert Schulze](https://github.com/rschu1ze))。 +* IcebergS3 は COUNT 関数の最適化をサポートしていますが、IcebergS3Cluster はサポートしていません。その結果、クラスターモードでの count() の結果がレプリカ数の倍数になる場合があります。 [#79844](https://github.com/ClickHouse/ClickHouse/pull/79844) ([wxybear](https://github.com/wxybear)) +* 遅延マテリアライゼーションを使用しており、PROJECTION が適用されるまでクエリ実行にカラムが一切使用されない場合に発生する AMBIGUOUS_COLUMN_NAME エラーを修正しました。例: SELECT * FROM t ORDER BY rand() LIMIT 5。 [#79926](https://github.com/ClickHouse/ClickHouse/pull/79926) ([Igor Nikonov](https://github.com/devcrafter))。 +* クエリ `CREATE DATABASE datalake ENGINE = DataLakeCatalog(\'http://catalog:8181\', \'admin\', \'password\')` に含まれるパスワードをマスクしました。 [#79941](https://github.com/ClickHouse/ClickHouse/pull/79941) ([Han Fei](https://github.com/hanfei1991)). +* JOIN USING でエイリアスを指定できるようになりました。カラム名が変更されている場合(例:ARRAY JOIN によるリネーム)に、このエイリアスを指定します。 [#73707](https://github.com/ClickHouse/ClickHouse/issues/73707) を修正。 [#79942](https://github.com/ClickHouse/ClickHouse/pull/79942)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* UNION を含む materialized view が新しいレプリカ上でも正しく動作するようにしました。 [#80037](https://github.com/ClickHouse/ClickHouse/pull/80037) ([Samay Sharma](https://github.com/samay-sharma)). +* SQL 関数 `parseDateTime` の書式指定子 `%e` は、これまでは先頭をスペースでパディングした日(例: ` 3`)のみを受け付けていましたが、現在は 1 桁の日(例: `3`)も認識するようになりました。これにより、MySQL と互換性のある動作になります。以前の動作を保持したい場合は、設定 `parsedatetime_e_requires_space_padding = 1` を有効にしてください。(issue [#78243](https://github.com/ClickHouse/ClickHouse/issues/78243))。 [#80057](https://github.com/ClickHouse/ClickHouse/pull/80057)([Robert Schulze](https://github.com/rschu1ze))。 +* ClickHouse のログに出力されていた `Cannot find 'kernel' in '[...]/memory.stat'` という警告を修正しました(issue [#77410](https://github.com/ClickHouse/ClickHouse/issues/77410))。 [#80129](https://github.com/ClickHouse/ClickHouse/pull/80129)([Robert Schulze](https://github.com/rschu1ze))。 +* スタックオーバーフローによるクラッシュを防ぐために、FunctionComparison 内でスタックサイズをチェックするようにしました。 [#78208](https://github.com/ClickHouse/ClickHouse/pull/78208) ([Julia Kartseva](https://github.com/jkartseva)). +* `system.workloads` からの SELECT クエリ実行時に発生するレースコンディションを修正。 [#78743](https://github.com/ClickHouse/ClickHouse/pull/78743) ([Sergei Trifonov](https://github.com/serxa))。 +* 修正: 分散クエリでの遅延マテリアライズを修正。 [#78815](https://github.com/ClickHouse/ClickHouse/pull/78815) ([Igor Nikonov](https://github.com/devcrafter)). +* `Array(Bool)` から `Array(FixedString)` への変換の不具合を修正。 [#78863](https://github.com/ClickHouse/ClickHouse/pull/78863) ([Nikita Taranov](https://github.com/nickitat)) +* Parquet バージョンの選択をより分かりやすくしました。 [#78818](https://github.com/ClickHouse/ClickHouse/pull/78818) ([Michael Kolupaev](https://github.com/al13n321)). +* `ReservoirSampler` の自己マージ処理を修正。 [#79031](https://github.com/ClickHouse/ClickHouse/pull/79031) ([Nikita Taranov](https://github.com/nickitat)). +* クライアントコンテキスト内での挿入テーブルの格納を修正。 [#79046](https://github.com/ClickHouse/ClickHouse/pull/79046) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* `AggregatingSortedAlgorithm` と `SummingSortedAlgorithm` のデータメンバーの破棄順序を修正しました。 [#79056](https://github.com/ClickHouse/ClickHouse/pull/79056) ([Nikita Taranov](https://github.com/nickitat)). +* `enable_user_name_access_type` が `DEFINER` アクセスタイプに影響を与えないようにしました。 [#80026](https://github.com/ClickHouse/ClickHouse/pull/80026) ([pufit](https://github.com/pufit)). +* `system` データベースのメタデータが Keeper 上にある場合、`system` データベースへのクエリがハングすることがある問題を修正。 [#79304](https://github.com/ClickHouse/ClickHouse/pull/79304) ([Mikhail Artemenko](https://github.com/Michicosun))。 + +#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement} + +* `chcache` バイナリを毎回再ビルドするのではなく、ビルド済みのものを再利用できるようにしました。 [#78851](https://github.com/ClickHouse/ClickHouse/pull/78851) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* NATS の一時停止待ち処理を追加しました。 [#78987](https://github.com/ClickHouse/ClickHouse/pull/78987) ([Dmitry Novikov](https://github.com/dmitry-sles-novikov)). +* ARM ビルドが誤って amd64compat として公開されていた問題を修正しました。 [#79122](https://github.com/ClickHouse/ClickHouse/pull/79122) ([Alexander Gololobov](https://github.com/davenger)). +* OpenSSL 向けに事前生成されたアセンブリを使用するようにしました。 [#79386](https://github.com/ClickHouse/ClickHouse/pull/79386) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* `clang20` を用いたビルドが可能になるよう修正しました。 [#79588](https://github.com/ClickHouse/ClickHouse/pull/79588) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* `chcache`: Rust 製キャッシュ機能のサポートを追加しました。 [#78691](https://github.com/ClickHouse/ClickHouse/pull/78691) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* `zstd` のアセンブリファイルにアンワインド情報を追加しました。 [#79288](https://github.com/ClickHouse/ClickHouse/pull/79288) ([Michael Kolupaev](https://github.com/al13n321)). + +### ClickHouse リリース 25.4(2025-04-22) {#254} + +#### 後方互換性のない変更 {#backward-incompatible-change} + +* `allow_materialized_view_with_bad_select` が `false` の場合、materialized view のすべてのカラムがターゲットテーブルと一致しているかをチェックするようにしました。 [#74481](https://github.com/ClickHouse/ClickHouse/pull/74481) ([Christoph Wurm](https://github.com/cwurm)). +* `dateTrunc` が負の Date/DateTime 引数で使用される場合の動作を修正しました。 [#77622](https://github.com/ClickHouse/ClickHouse/pull/77622) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* レガシーな `MongoDB` 連携を削除しました。サーバー設定 `use_legacy_mongodb_integration` は廃止され、現在は何も行いません。 [#77895](https://github.com/ClickHouse/ClickHouse/pull/77895) ([Robert Schulze](https://github.com/rschu1ze)). +* `SummingMergeTree` の検証ロジックを強化し、パーティションキーまたはソートキーで使用されているカラムでは集約をスキップするようにしました。 [#78022](https://github.com/ClickHouse/ClickHouse/pull/78022) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). + +#### 新機能 {#new-feature} + +* ワークロード向けに CPU スロットスケジューリング機能を追加しました。詳細は[ドキュメント](https://clickhouse.com/docs/operations/workload-scheduling#cpu_scheduling)を参照してください。[#77595](https://github.com/ClickHouse/ClickHouse/pull/77595)([Sergei Trifonov](https://github.com/serxa))。 +* `--path` コマンドライン引数を指定すると、`clickhouse-local` は再起動後もデータベースを保持するようになりました。これにより [#50647](https://github.com/ClickHouse/ClickHouse/issues/50647) および [#49947](https://github.com/ClickHouse/ClickHouse/issues/49947) が解決されました。[#71722](https://github.com/ClickHouse/ClickHouse/pull/71722)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* サーバーが過負荷状態にある場合、クエリを拒否します。この判断は、待機時間(`OSCPUWaitMicroseconds`)とビジー時間(`OSCPUVirtualTimeMicroseconds`)の比率に基づいて行われます。この比率が `min_os_cpu_wait_time_ratio_to_throw` と `max_os_cpu_wait_time_ratio_to_throw` の間にある場合(これらはクエリレベルの設定です)、クエリは一定の確率で破棄されます。 [#63206](https://github.com/ClickHouse/ClickHouse/pull/63206) ([Alexey Katsman](https://github.com/alexkats))。 +* `Iceberg` のタイムトラベル: 特定のタイムスタンプ時点の状態として `Iceberg` テーブルをクエリできるようにするための設定を追加。 [#71072](https://github.com/ClickHouse/ClickHouse/pull/71072) ([Brett Hoerner](https://github.com/bretthoerner)). [#77439](https://github.com/ClickHouse/ClickHouse/pull/77439) ([Daniil Ivanik](https://github.com/divanik)). +* `Iceberg` メタデータ用のインメモリキャッシュ。クエリの高速化のために、マニフェストファイルとそのリスト、および `metadata.json` を保持します。 [#77156](https://github.com/ClickHouse/ClickHouse/pull/77156) ([Han Fei](https://github.com/hanfei1991)). +* Azure Blob Storage 向けに `DeltaLake` テーブルエンジンをサポートしました。[#68043](https://github.com/ClickHouse/ClickHouse/issues/68043) を修正しました。[#74541](https://github.com/ClickHouse/ClickHouse/pull/74541)([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 +* デシリアライズされたベクトル類似度索引向けのインメモリキャッシュを追加しました。これにより、近似最近傍 (ANN) 検索クエリの繰り返し実行が高速化されます。新しいキャッシュのサイズは、サーバー設定 `vector_similarity_index_cache_size` および `vector_similarity_index_cache_max_entries` で制御されます。この機能は、従来のリリースにあったスキップ索引キャッシュ機能を置き換えます。[#77905](https://github.com/ClickHouse/ClickHouse/pull/77905)([Shankar Iyer](https://github.com/shankar-iyer))。 +* DeltaLake でパーティションプルーニングをサポートしました。 [#78486](https://github.com/ClickHouse/ClickHouse/pull/78486) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 読み取り専用の `MergeTree` テーブルに対するバックグラウンドリフレッシュをサポートし、無制限の数の分散リーダーから更新可能テーブルへのクエリ実行を可能にします(ClickHouse ネイティブなデータレイク)。 [#76467](https://github.com/ClickHouse/ClickHouse/pull/76467) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* データベースのメタデータファイルを保存するためにカスタムディスクを使用できるようになりました。現在はグローバルなサーバーレベルでのみ設定できます。 [#77365](https://github.com/ClickHouse/ClickHouse/pull/77365) ([Tuan Pham Anh](https://github.com/tuanpach))。 +* plain_rewritable ディスクで ALTER TABLE ... ATTACH|DETACH|MOVE|REPLACE PARTITION がサポートされました。 [#77406](https://github.com/ClickHouse/ClickHouse/pull/77406) ([Julia Kartseva](https://github.com/jkartseva)). +* `Kafka` テーブルエンジン向けに、`SASL` 構成および認証情報を指定するテーブル設定を追加しました。これにより、設定ファイルや名前付きコレクションを使用せずに、`CREATE TABLE` 文内で直接、Kafka および Kafka 互換システム向けの SASL ベース認証を構成できるようになります。 [#78810](https://github.com/ClickHouse/ClickHouse/pull/78810) ([Christoph Wurm](https://github.com/cwurm))。 +* MergeTree テーブルに対して `default_compression_codec` を設定できるようになりました。これは、対象カラムについて CREATE クエリで圧縮コーデックが明示的に指定されていない場合に使用されます。これにより [#42005](https://github.com/ClickHouse/ClickHouse/issues/42005) が解決されました。 [#66394](https://github.com/ClickHouse/ClickHouse/pull/66394) ([gvoelfin](https://github.com/gvoelfin))。 +* クラスタ設定に `bind_host` 設定を追加し、ClickHouse が分散接続で特定のネットワークを使用できるようにしました。 [#74741](https://github.com/ClickHouse/ClickHouse/pull/74741) ([Todd Yocum](https://github.com/toddyocum))。 +* `system.tables` に新しいカラム `parametrized_view_parameters` を追加しました。 [https://github.com/clickhouse/clickhouse/issues/66756](https://github.com/clickhouse/clickhouse/issues/66756) をクローズします。 [#75112](https://github.com/ClickHouse/ClickHouse/pull/75112) ([NamNguyenHoai](https://github.com/NamHoaiNguyen)). +* データベースコメントの変更を許可します。Closes [#73351](https://github.com/ClickHouse/ClickHouse/issues/73351) ### ユーザー向け変更に関するドキュメントエントリ。[#75622](https://github.com/ClickHouse/ClickHouse/pull/75622) ([NamNguyenHoai](https://github.com/NamHoaiNguyen)). +* PostgreSQL 互換プロトコルでの `SCRAM-SHA-256` 認証サポート。 [#76839](https://github.com/ClickHouse/ClickHouse/pull/76839) ([scanhex12](https://github.com/scanhex12)). +* `arrayLevenshteinDistance`、`arrayLevenshteinDistanceWeighted`、`arraySimilarity` 関数を追加しました。 [#77187](https://github.com/ClickHouse/ClickHouse/pull/77187) ([Mikhail f. Shiryaev](https://github.com/Felixoid))。 +* 設定 `parallel_distributed_insert_select` が、`ReplicatedMergeTree` テーブルへの `INSERT SELECT` に対しても有効になりました(以前は Distributed テーブルが必要でした)。[#78041](https://github.com/ClickHouse/ClickHouse/pull/78041) ([Igor Nikonov](https://github.com/devcrafter))。 +* `toInterval` 関数を導入しました。この関数は value と unit の 2 つの引数を取り、値を指定した `Interval` 型に変換します。 [#78723](https://github.com/ClickHouse/ClickHouse/pull/78723) ([Andrew Davis](https://github.com/pulpdrew))。 +* iceberg テーブル関数およびエンジンで、ルート `metadata.json` ファイルを特定するための、いくつかの便利な方法を追加しました。 [#78455](https://github.com/ClickHouse/ClickHouse/issues/78455) をクローズしました。 [#78475](https://github.com/ClickHouse/ClickHouse/pull/78475)([Daniil Ivanik](https://github.com/divanik))。 +* ClickHouse の SSH プロトコルでパスワードベース認証をサポート。 [#78586](https://github.com/ClickHouse/ClickHouse/pull/78586) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). + +#### 実験的機能 {#experimental-feature} + +* `WHERE` 句内の `EXISTS` 式の引数として相関サブクエリをサポート。[#72459](https://github.com/ClickHouse/ClickHouse/issues/72459) をクローズ。[#76078](https://github.com/ClickHouse/ClickHouse/pull/76078)([Dmitry Novik](https://github.com/novikd))。 +* 関数 `sparseGrams` および `sparseGramsHashes` に ASCII 版および UTF-8 版を追加。作成者: [scanhex12](https://github.com/scanhex12)。[#78176](https://github.com/ClickHouse/ClickHouse/pull/78176)([Pervakov Grigorii](https://github.com/GrigoryPervakov))。今後のバージョンで実装が変更される予定があるため、使用しないでください。 + +#### パフォーマンスの向上 {#performance-improvement} + +* ORDER BY および LIMIT の適用後にデータを読み込む lazy カラムにより、パフォーマンスを最適化しました。 [#55518](https://github.com/ClickHouse/ClickHouse/pull/55518) ([Xiaozhe Yu](https://github.com/wudidapaopao)). +* クエリ条件キャッシュがデフォルトで有効になりました。 [#79080](https://github.com/ClickHouse/ClickHouse/pull/79080) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `col->insertFrom()` への呼び出しをデバーチャル化することで、JOIN 結果の構築を高速化しました。 [#77350](https://github.com/ClickHouse/ClickHouse/pull/77350) ([Alexander Gololobov](https://github.com/davenger)). +* 可能な場合には、フィルタクエリプランのステップにある等価条件を JOIN 条件にマージし、ハッシュテーブルのキーとして利用できるようにしました。 [#78877](https://github.com/ClickHouse/ClickHouse/pull/78877) ([Dmitry Novik](https://github.com/novikd)). +* JOIN キーが両方のパーツで PK のプレフィックスになっている場合、JOIN に動的分片を使用します。この最適化は `query_plan_join_shard_by_pk_ranges` 設定で有効化できます(デフォルトでは無効です)。 [#74733](https://github.com/ClickHouse/ClickHouse/pull/74733) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* `Iceberg` のデータプルーニングで、カラムの下限値および上限値(境界値)に基づく処理をサポートしました。[#77638](https://github.com/ClickHouse/ClickHouse/issues/77638) を修正しました。[#78242](https://github.com/ClickHouse/ClickHouse/pull/78242)([alesapin](https://github.com/alesapin))。 +* `Iceberg` 向けの簡易な count 最適化を実装しました。これにより、フィルターなしで `count()` を用いるクエリはより高速に実行されます。[#77639](https://github.com/ClickHouse/ClickHouse/issues/77639) をクローズしました。[#78090](https://github.com/ClickHouse/ClickHouse/pull/78090) ([alesapin](https://github.com/alesapin))。 +* `max_merge_delayed_streams_for_parallel_write` を使用して、マージ処理が並列にフラッシュできるカラム数を構成できるようにしました(これにより、S3 への垂直マージにおけるメモリ使用量がおよそ 1/25 まで削減されるはずです)。[#77922](https://github.com/ClickHouse/ClickHouse/pull/77922)([Azat Khuzhin](https://github.com/azat))。 +* キャッシュがマージなどで受動的に使用される場合は、`filesystem_cache_prefer_bigger_buffer_size` を無効にします。これにより、マージ時のメモリ消費量が削減されます。 [#77898](https://github.com/ClickHouse/ClickHouse/pull/77898) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 並列レプリカ機能が有効な場合、読み取りタスクのサイズを決定する際にレプリカ数を基準とするようにしました。これにより、読み取るデータ量がそれほど大きくない場合でも、レプリカ間でのワークロード分散が向上します。 [#78695](https://github.com/ClickHouse/ClickHouse/pull/78695) ([Nikita Taranov](https://github.com/nickitat))。 +* `ORC` フォーマットで非同期 I/O プレフェッチをサポートし、リモート I/O レイテンシを隠すことで全体的なパフォーマンスを向上させます。 [#70534](https://github.com/ClickHouse/ClickHouse/pull/70534) ([李扬](https://github.com/taiyang-li))。 +* 非同期挿入が使用するメモリを事前割り当てして、パフォーマンスを向上させました。 [#74945](https://github.com/ClickHouse/ClickHouse/pull/74945) ([Ilya Golshtein](https://github.com/ilejn)). +* `multiRead` が利用可能な箇所では単一の `get` リクエストを使用しないようにすることで、レプリカ数の増加に伴い Keeper に大きな負荷を与える可能性があった Keeper へのリクエスト数を削減しました。 [#56862](https://github.com/ClickHouse/ClickHouse/pull/56862) ([Nikolay Degterinsky](https://github.com/evillique))。 +* Nullable 引数に対する関数実行の軽微な最適化。 [#76489](https://github.com/ClickHouse/ClickHouse/pull/76489) ([李扬](https://github.com/taiyang-li)). +* `arraySort` の最適化。 [#76850](https://github.com/ClickHouse/ClickHouse/pull/76850) ([李扬](https://github.com/taiyang-li))。 +* 同一パートのマークをマージし、一度にクエリ条件キャッシュに書き込むことで、ロック取得のオーバーヘッドを削減しました。 [#77377](https://github.com/ClickHouse/ClickHouse/pull/77377) ([zhongyuankai](https://github.com/zhongyuankai)). +* ブラケット展開が1つだけ含まれるクエリに対する `s3Cluster` のパフォーマンスを最適化しました。 [#77686](https://github.com/ClickHouse/ClickHouse/pull/77686) ([Tomáš Hromada](https://github.com/gyfis)). +* 単一の Nullable または LowCardinality カラムに対する ORDER BY を最適化。 [#77789](https://github.com/ClickHouse/ClickHouse/pull/77789) ([李扬](https://github.com/taiyang-li)). +* `Native` フォーマットのメモリ使用量を最適化。 [#78442](https://github.com/ClickHouse/ClickHouse/pull/78442) ([Azat Khuzhin](https://github.com/azat)). +* 軽微な最適化:型キャストが必要な場合は、`count(if(...))` を `countIf` に書き換えないようにしました。[#78564](https://github.com/ClickHouse/ClickHouse/issues/78564) をクローズしました。[#78565](https://github.com/ClickHouse/ClickHouse/pull/78565)([李扬](https://github.com/taiyang-li))。 +* `hasAll` 関数で `tokenbf_v1`、`ngrambf_v1` のフルテキストスキップインデックスを利用できるようになりました。 [#77662](https://github.com/ClickHouse/ClickHouse/pull/77662) ([UnamedRus](https://github.com/UnamedRus)). +* ベクトル類似性インデックスにより、メインメモリが最大で 2 倍まで過剰に確保されてしまう可能性がありました。この修正ではメモリ割り当て戦略を見直し、メモリ使用量を削減するとともに、ベクトル類似性インデックスキャッシュの効率を向上させています。(issue [#78056](https://github.com/ClickHouse/ClickHouse/issues/78056)). [#78394](https://github.com/ClickHouse/ClickHouse/pull/78394) ([Shankar Iyer](https://github.com/shankar-iyer)). +* `system.metric_log` テーブルに対してスキーマ種別を指定する `schema_type` 設定を導入しました。利用可能なスキーマは 3 種類あります。`wide` -- 現在のスキーマで、各メトリクス/イベントが個別のカラムに格納されます(個々のカラムを読む場合に最も高効率)、`transposed` -- `system.asynchronous_metric_log` に類似しており、メトリクス/イベントが行として格納されます。そして最も興味深いのが `transposed_with_wide_view` -- 内部テーブルは `transposed` スキーマで作成しつつ、クエリを内部テーブルに対するものへ変換する `wide` スキーマの VIEW もあわせて導入します。`transposed_with_wide_view` では、VIEW に対するサブ秒精度はサポートされておらず、`event_time_microseconds` は後方互換性のためのエイリアスにすぎません。 [#78412](https://github.com/ClickHouse/ClickHouse/pull/78412) ([alesapin](https://github.com/alesapin))。 + +#### 改良 {#improvement} + +* `Distributed` クエリのクエリプランをシリアライズできるようになりました。新しい設定項目 `serialize_query_plan` が追加されています。有効化すると、`Distributed` テーブルからのクエリはリモートクエリ実行のためにシリアライズされたクエリプランを使用します。これにより TCP プロトコルに新しいパケットタイプが導入され、このパケットを処理できるようにするには、サーバーの設定に `true` を追加する必要があります。 [#69652](https://github.com/ClickHouse/ClickHouse/pull/69652) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* `JSON` 型およびサブカラムの VIEW からの読み取りをサポート。 [#76903](https://github.com/ClickHouse/ClickHouse/pull/76903) ([Pavel Kruglov](https://github.com/Avogar)). +* ALTER DATABASE ... ON CLUSTER をサポートしました。 [#79242](https://github.com/ClickHouse/ClickHouse/pull/79242) ([Tuan Pham Anh](https://github.com/tuanpach)). +* リフレッシャブルmaterialized viewのリフレッシュ処理が `system.query_log` に記録されるようになりました。 [#71333](https://github.com/ClickHouse/ClickHouse/pull/71333) ([Michael Kolupaev](https://github.com/al13n321))。 +* ユーザー定義関数 (UDF) は、その設定における新しい SETTING によって決定的 (deterministic) であるとマークできるようになりました。また、クエリキャッシュは、クエリ内で呼び出される UDF が決定的かどうかを確認するようになりました。この場合、クエリ結果がキャッシュされます。(Issue [#59988](https://github.com/ClickHouse/ClickHouse/issues/59988)). [#77769](https://github.com/ClickHouse/ClickHouse/pull/77769) ([Jimmy Aguilar Mena](https://github.com/Ergus)). +* あらゆる種類のレプリケーテッドタスクに対してバックオフロジックを有効にしました。これにより、CPU 使用率、メモリ使用量、ログファイルサイズを削減できるようになります。`max_postpone_time_for_failed_mutations_ms` に類似した新しい設定 `max_postpone_time_for_failed_replicated_fetches_ms`、`max_postpone_time_for_failed_replicated_merges_ms`、`max_postpone_time_for_failed_replicated_tasks_ms` を追加しました。 [#74576](https://github.com/ClickHouse/ClickHouse/pull/74576) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* `system.errors` に `query_id` を追加。 [#75815](https://github.com/ClickHouse/ClickHouse/issues/75815) をクローズ。 [#76581](https://github.com/ClickHouse/ClickHouse/pull/76581)([Vladimir Baikov](https://github.com/bkvvldmr))。 +* `UInt128` から `IPv6` への変換をサポートしました。これにより、`IPv6` に対する `bitAnd` 演算および算術演算が可能になり、その結果を `IPv6` に再変換できるようになります。[#76752](https://github.com/ClickHouse/ClickHouse/issues/76752) をクローズしました。これにより、`IPv6` に対する `bitAnd` 演算の結果も `IPv6` に再変換できるようになります。[#57707](https://github.com/ClickHouse/ClickHouse/pull/57707) も参照してください。[#76928](https://github.com/ClickHouse/ClickHouse/pull/76928)([Muzammil Abdul Rehman](https://github.com/muzammilar))。 +* デフォルトでは、`Variant` 型のテキスト形式において特別な `Bool` 値はパースされません。`allow_special_bool_values_inside_variant` 設定を使用して有効化できます。 [#76974](https://github.com/ClickHouse/ClickHouse/pull/76974) ([Pavel Kruglov](https://github.com/Avogar))。 +* セッションレベルおよびサーバーレベルで、低い `priority` を持つクエリのタスク単位の待機時間を設定可能にしました。 [#77013](https://github.com/ClickHouse/ClickHouse/pull/77013) ([VicoWu](https://github.com/VicoWu)). +* JSON データ型の値に対する比較処理を実装しました。JSON オブジェクトを Map 型と同様に比較できるようになりました。 [#77397](https://github.com/ClickHouse/ClickHouse/pull/77397) ([Pavel Kruglov](https://github.com/Avogar))。 +* `system.kafka_consumers` による権限管理のサポートを改善し、内部の `librdkafka` エラーを転送するようにしました(なお、このライブラリの出来は正直かなりひどいです)。 [#77700](https://github.com/ClickHouse/ClickHouse/pull/77700) ([Ilya Golshtein](https://github.com/ilejn)). +* Buffer テーブルエンジンの設定の検証機能を追加しました。 [#77840](https://github.com/ClickHouse/ClickHouse/pull/77840) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* `HDFS` での `pread` を有効化または無効化できる設定 `enable_hdfs_pread` を追加しました。 [#77885](https://github.com/ClickHouse/ClickHouse/pull/77885) ([kevinyhzou](https://github.com/KevinyhZou)). +* ZooKeeper の `multi` 読み取りおよび書き込みリクエスト数向けのプロファイルイベントを追加しました。 [#77888](https://github.com/ClickHouse/ClickHouse/pull/77888) ([JackyWoo](https://github.com/JackyWoo))。 +* `disable_insertion_and_mutation` が有効な場合でも、一時テーブルの作成および挿入を行えるようになりました。 [#77901](https://github.com/ClickHouse/ClickHouse/pull/77901) ([Xu Jia](https://github.com/XuJia0210))。 +* `max_insert_delayed_streams_for_parallel_write` を 100 に減らしました。 [#77919](https://github.com/ClickHouse/ClickHouse/pull/77919) ([Azat Khuzhin](https://github.com/azat)). +* `yyy` のような Joda 構文(Java の世界のものです)における年のパースを修正しました。 [#77973](https://github.com/ClickHouse/ClickHouse/pull/77973) ([李扬](https://github.com/taiyang-li)). +* `MergeTree` テーブルのパーツのアタッチは、そのブロック順に実行されるようになりました。これは `ReplacingMergeTree` のような特殊なマージアルゴリズムにとって重要です。この変更により [#71009](https://github.com/ClickHouse/ClickHouse/issues/71009) がクローズされました。 [#77976](https://github.com/ClickHouse/ClickHouse/pull/77976) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* クエリマスキングルールで、マッチが発生した場合に `LOGICAL_ERROR` をスローできるようになりました。これにより、あらかじめ定義したパスワードがログのどこかに漏洩していないかを検出しやすくなります。 [#78094](https://github.com/ClickHouse/ClickHouse/pull/78094) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* MySQL との互換性を向上させるため、`information_schema.tables` にカラム `index_length_column` を追加しました。 [#78119](https://github.com/ClickHouse/ClickHouse/pull/78119) ([Paweł Zakrzewski](https://github.com/KrzaQ)). +* `TotalMergeFailures` と `NonAbortedMergeFailures` という 2 つの新しいメトリックを導入。これらのメトリックは、短時間に多数のマージ失敗が発生するケースを検出するために必要です。 [#78150](https://github.com/ClickHouse/ClickHouse/pull/78150) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* キーが指定されていないパススタイルの場合の S3 URL のパース不具合を修正。 [#78185](https://github.com/ClickHouse/ClickHouse/pull/78185) ([Arthur Passos](https://github.com/arthurpassos)). +* 非同期メトリクス `BlockActiveTime`、`BlockDiscardTime`、`BlockWriteTime`、`BlockQueueTime`、`BlockReadTime` で誤った値が報告される問題を修正しました(変更前は 1 秒が誤って 0.001 として報告されていました)。 [#78211](https://github.com/ClickHouse/ClickHouse/pull/78211) ([filimonov](https://github.com/filimonov))。 +* StorageS3(Azure)Queue に対して materialized view へプッシュする際に発生するエラーについて、`loading_retries` で設定されたリトライ回数の上限が適用されるようにしました。これ以前は、そのようなエラーは無期限にリトライされていました。 [#78313](https://github.com/ClickHouse/ClickHouse/pull/78313) ([Kseniia Sumarokova](https://github.com/kssenii)). +* DeltaLake の `delta-kernel-rs` 実装で、パフォーマンスと進捗バーの問題を修正。 [#78368](https://github.com/ClickHouse/ClickHouse/pull/78368) ([Kseniia Sumarokova](https://github.com/kssenii)). +* ランタイムディスクで `include`、`from_env`、`from_zk` をサポートしました。[#78177](https://github.com/ClickHouse/ClickHouse/issues/78177) をクローズ。[#78470](https://github.com/ClickHouse/ClickHouse/pull/78470)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 長時間実行中のミューテーションに対して、`system.warnings` テーブルに動的な警告を追加しました。 [#78658](https://github.com/ClickHouse/ClickHouse/pull/78658) ([Bharat Nallan](https://github.com/bharatnc)). +* システムテーブル `system.query_condition_cache` にフィールド `condition` を追加しました。これは、クエリ条件キャッシュでキーとして使用されるハッシュの元となる、プレーンテキストの条件を保存します。[#78671](https://github.com/ClickHouse/ClickHouse/pull/78671) ([Robert Schulze](https://github.com/rschu1ze)). +* Hive パーティションで空値を許可できるようにしました。 [#78816](https://github.com/ClickHouse/ClickHouse/pull/78816) ([Arthur Passos](https://github.com/arthurpassos)). +* `BFloat16` に対する `IN` 句の型変換を修正しました(つまり、`SELECT toBFloat16(1) IN [1, 2, 3];` は今では `1` を返します)。[#78754](https://github.com/ClickHouse/ClickHouse/issues/78754) をクローズしました。[#78839](https://github.com/ClickHouse/ClickHouse/pull/78839)([Raufs Dunamalijevs](https://github.com/rienath))。 +* `disk = ...` が設定されている場合、MergeTree において他のディスク上のパーツをチェックしないようにしました。 [#78855](https://github.com/ClickHouse/ClickHouse/pull/78855) ([Azat Khuzhin](https://github.com/azat)). +* `system.query_log` 内の `used_data_type_families` におけるデータ型が、正準名で記録されるようにしました。 [#78972](https://github.com/ClickHouse/ClickHouse/pull/78972) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `recoverLostReplica` 実行時の設定クリーンアップを、[#78637](https://github.com/ClickHouse/ClickHouse/pull/78637) と同様の方法で行うようにしました。 [#79113](https://github.com/ClickHouse/ClickHouse/pull/79113) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* INFILE のスキーマ推論に挿入カラムを使用できるようにしました。 [#78490](https://github.com/ClickHouse/ClickHouse/pull/78490) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). + +#### バグ修正(公式安定版リリースにおけるユーザーに影響する不具合) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* 集約プロジェクションで `count(Nullable)` が使用されている場合の誤ったプロジェクション解析を修正しました。これにより [#74495](https://github.com/ClickHouse/ClickHouse/issues/74495) が修正されます。この PR ではさらに、プロジェクションが使用される理由/使用されない理由を明確にするために、プロジェクション解析まわりのログをいくつか追加しています。[#74498](https://github.com/ClickHouse/ClickHouse/pull/74498)([Amos Bird](https://github.com/amosbird))。 +* `DETACH PART` 実行時に発生する `Part <...> does not contain in snapshot of previous virtual parts. (PART_IS_TEMPORARILY_LOCKED)` エラーを修正しました。 [#76039](https://github.com/ClickHouse/ClickHouse/pull/76039) ([Aleksei Filatov](https://github.com/aalexfvk))。 +* アナライザでリテラルを含む式を持つスキップ索引が動作しない問題を修正し、索引の解析時に自明なキャストを削除しました。 [#77229](https://github.com/ClickHouse/ClickHouse/pull/77229) ([Pavel Kruglov](https://github.com/Avogar)). +* `close_session` クエリパラメータが効かず、名前付きセッションが `session_timeout` 後にのみ閉じられていたバグを修正しました。 [#77336](https://github.com/ClickHouse/ClickHouse/pull/77336) ([Alexey Katsman](https://github.com/alexkats)). +* Materialized Views がアタッチされていない NATS サーバーからのメッセージ受信を修正しました。 [#77392](https://github.com/ClickHouse/ClickHouse/pull/77392) ([Dmitry Novikov](https://github.com/dmitry-sles-novikov)). +* 空の `FileLog` から `merge` テーブル関数経由で読み取る際の論理エラーを修正し、[#75575](https://github.com/ClickHouse/ClickHouse/issues/75575) をクローズしました。[#77441](https://github.com/ClickHouse/ClickHouse/pull/77441)([Vladimir Cherkasov](https://github.com/vdimir))。 +* 共有された variant からの `Dynamic` シリアライゼーションでデフォルトのフォーマット設定を使用するよう修正しました。 [#77572](https://github.com/ClickHouse/ClickHouse/pull/77572) ([Pavel Kruglov](https://github.com/Avogar)). +* ローカルディスク上のテーブルデータパスの存在チェックを修正。 [#77608](https://github.com/ClickHouse/ClickHouse/pull/77608) ([Tuan Pham Anh](https://github.com/tuanpach)). +* 一部の型における定数値のリモート送信を修正。 [#77634](https://github.com/ClickHouse/ClickHouse/pull/77634) ([Pavel Kruglov](https://github.com/Avogar))。 +* S3/AzureQueue において、有効期限切れのコンテキストが原因で発生していたクラッシュを修正。 [#77720](https://github.com/ClickHouse/ClickHouse/pull/77720) ([Kseniia Sumarokova](https://github.com/kssenii)). +* RabbitMQ、Nats、Redis、AzureQueue のテーブルエンジンで認証情報が表示されないようにしました。 [#77755](https://github.com/ClickHouse/ClickHouse/pull/77755) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `argMin`/`argMax` における `NaN` の比較時の未定義動作を修正しました。 [#77756](https://github.com/ClickHouse/ClickHouse/pull/77756) ([Raúl Marín](https://github.com/Algunenano)). +* マージおよびミューテーションの処理が、書き込むブロックを生成しない場合でもキャンセルされたかどうかを定期的に確認するようにしました。 [#77766](https://github.com/ClickHouse/ClickHouse/pull/77766) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Replicated データベースで、新しく追加されたレプリカでは動作していなかったリフレッシャブルmaterialized view の問題を修正しました。 [#77774](https://github.com/ClickHouse/ClickHouse/pull/77774) ([Michael Kolupaev](https://github.com/al13n321)). +* `NOT_FOUND_COLUMN_IN_BLOCK` エラー発生時にクラッシュが起きる可能性があった不具合を修正。 [#77854](https://github.com/ClickHouse/ClickHouse/pull/77854) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* データの投入中に S3/AzureQueue で発生していたクラッシュを修正しました。 [#77878](https://github.com/ClickHouse/ClickHouse/pull/77878) ([Bharat Nallan](https://github.com/bharatnc)). +* SSH サーバーでの履歴に対するファジー検索を無効化(`skim` ライブラリを必要とするため)。 [#78002](https://github.com/ClickHouse/ClickHouse/pull/78002) ([Azat Khuzhin](https://github.com/azat))。 +* インデックスが設定されていないカラムに対するベクトル検索クエリについて、テーブル内の別のベクトルカラムにベクトル類似度索引が定義されている場合に誤った結果が返される問題を修正しました(Issue [#77978](https://github.com/ClickHouse/ClickHouse/issues/77978))。[#78069](https://github.com/ClickHouse/ClickHouse/pull/78069)([Shankar Iyer](https://github.com/shankar-iyer))。 +* "The requested output format {} is binary... Do you want to output it anyway? [y/N]" というプロンプトメッセージ内のごく小さな誤りを修正。 [#78095](https://github.com/ClickHouse/ClickHouse/pull/78095) ([Azat Khuzhin](https://github.com/azat)). +* `toStartOfInterval` で origin 引数が 0 の場合に発生するバグを修正しました。 [#78096](https://github.com/ClickHouse/ClickHouse/pull/78096) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* HTTP インターフェースで、空の `session_id` クエリパラメータを指定することを禁止しました。 [#78098](https://github.com/ClickHouse/ClickHouse/pull/78098) ([Alexey Katsman](https://github.com/alexkats)). +* `ALTER` クエリの直後に実行された `RENAME` クエリが原因で `Replicated` データベースのメタデータが上書きされてしまう可能性があった問題を修正しました。 [#78107](https://github.com/ClickHouse/ClickHouse/pull/78107) ([Nikolay Degterinsky](https://github.com/evillique))。 +* `NATS` エンジンにおけるクラッシュを修正。 [#78108](https://github.com/ClickHouse/ClickHouse/pull/78108) ([Dmitry Novikov](https://github.com/dmitry-sles-novikov)). +* SSH 用組み込みクライアントでの history_file 作成を試みないようにしました(以前のバージョンでは作成は常に失敗していましたが、試行自体は行われていました)。 [#78112](https://github.com/ClickHouse/ClickHouse/pull/78112) ([Azat Khuzhin](https://github.com/azat)). +* `RENAME DATABASE` または `DROP TABLE` クエリの実行後に `system.detached_tables` が誤った情報を表示していた問題を修正しました。 [#78126](https://github.com/ClickHouse/ClickHouse/pull/78126) ([Nikolay Degterinsky](https://github.com/evillique))。 +* `Replicated` データベースでテーブル数が多すぎる場合のチェックに関する不具合を、[#77274](https://github.com/ClickHouse/ClickHouse/pull/77274) の変更後に発生していたものとして修正しました。あわせて、`ReplicatedMergeTree` や `KeeperMap` の場合に Keeper 内に管理対象外のノードが作成されるのを防ぐため、ストレージを作成する前にチェックを実行するようにしました。 [#78127](https://github.com/ClickHouse/ClickHouse/pull/78127) ([Nikolay Degterinsky](https://github.com/evillique))。 +* `S3Queue` メタデータの初期化が同時に行われた場合に発生する可能性があったクラッシュを修正しました。 [#78131](https://github.com/ClickHouse/ClickHouse/pull/78131) ([Azat Khuzhin](https://github.com/azat)). +* `groupArray*` 関数は、これまで実行を試みていた Int 型の `max_size` 引数に 0 が指定された場合についても、すでに UInt 型で行われているのと同様に、`BAD_ARGUMENTS` エラーを返すようになりました。 [#78140](https://github.com/ClickHouse/ClickHouse/pull/78140) ([Eduard Karacharov](https://github.com/korowa)). +* ローカルテーブルが切り離される前に削除されていた場合に、失われたレプリカを復旧する際にクラッシュしないようにしました。 [#78173](https://github.com/ClickHouse/ClickHouse/pull/78173) ([Raúl Marín](https://github.com/Algunenano)). +* `system.s3_queue_settings` の "alterable" カラムが常に `false` を返していた不具合を修正。[#78187](https://github.com/ClickHouse/ClickHouse/pull/78187) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Azure アクセス署名がユーザーやログに表示されないようにマスクしました。 [#78189](https://github.com/ClickHouse/ClickHouse/pull/78189) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Wide パーツで接頭辞付きサブストリームのプリフェッチが正しく行われない問題を修正。 [#78205](https://github.com/ClickHouse/ClickHouse/pull/78205) ([Pavel Kruglov](https://github.com/Avogar)). +* キー配列が `LowCardinality(Nullable)` 型の場合に `mapFromArrays` で発生していたクラッシュや誤った結果を修正しました。 [#78240](https://github.com/ClickHouse/ClickHouse/pull/78240) ([Eduard Karacharov](https://github.com/korowa))。 +* delta-kernel-rs の認証オプションを修正。 [#78255](https://github.com/ClickHouse/ClickHouse/pull/78255) ([Kseniia Sumarokova](https://github.com/kssenii)). +* レプリカの `disable_insertion_and_mutation` が true の場合、Refreshable Materialized Views のタスクをスケジュールしないようにしました。タスクは挿入処理を伴うため、`disable_insertion_and_mutation` が true の場合は失敗します。 [#78277](https://github.com/ClickHouse/ClickHouse/pull/78277) ([Xu Jia](https://github.com/XuJia0210)). +* `Merge` エンジンの背後にあるテーブルへのアクセスを検証するようにしました。 [#78339](https://github.com/ClickHouse/ClickHouse/pull/78339) ([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 +* `Distributed` テーブルに対するクエリで、`FINAL` 修飾子が無視されることがありました。 [#78428](https://github.com/ClickHouse/ClickHouse/pull/78428) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* `bitmapMin` は、ビットマップが空の場合に uint32_max(入力型がそれより大きい場合には uint64_max)を返します。これは、空の roaring_bitmap に対する最小値の挙動と一致します。 [#78444](https://github.com/ClickHouse/ClickHouse/pull/78444) ([wxybear](https://github.com/wxybear))。 +* `distributed_aggregation_memory_efficient` が有効な場合、FROM 句の読み取り直後におけるクエリ処理の並列化を無効化しました。これは論理エラーを引き起こす可能性があったためです。Closes [#76934](https://github.com/ClickHouse/ClickHouse/issues/76934). [#78500](https://github.com/ClickHouse/ClickHouse/pull/78500) ([flynn](https://github.com/ucasfl)). +* `max_streams_to_max_threads_ratio` SETTING を適用した結果、計画されたストリーム数が 0 になってしまう場合でも、読み取り用に少なくとも 1 つのストリームが設定されるようになりました。 [#78505](https://github.com/ClickHouse/ClickHouse/pull/78505) ([Eduard Karacharov](https://github.com/korowa))。 +* ストレージ `S3Queue` で発生していた論理エラー「Cannot unregister: table uuid is not registered」を修正しました。 [#78285](https://github.com/ClickHouse/ClickHouse/issues/78285) をクローズしました。 [#78541](https://github.com/ClickHouse/ClickHouse/pull/78541)([Kseniia Sumarokova](https://github.com/kssenii))。 +* ClickHouse は、cgroups v1 と v2 の両方が有効になっているシステムで、自身が属する cgroup v2 を判別できるようになりました。 [#78566](https://github.com/ClickHouse/ClickHouse/pull/78566) ([Grigory Korolev](https://github.com/gkorolev)). +* テーブルレベルの設定を指定して使用すると、`-Cluster` テーブル関数が失敗していました。 [#78587](https://github.com/ClickHouse/ClickHouse/pull/78587) ([Daniil Ivanik](https://github.com/divanik)). +* INSERT 時に ReplicatedMergeTree がトランザクションをサポートしていない場合のチェックを強化しました。 [#78633](https://github.com/ClickHouse/ClickHouse/pull/78633) ([Azat Khuzhin](https://github.com/azat)). +* ATTACH 時にクエリ設定をクリーンアップするように修正しました。 [#78637](https://github.com/ClickHouse/ClickHouse/pull/78637) ([Raúl Marín](https://github.com/Algunenano)). +* `iceberg_metadata_file_path` に無効なパスが指定された場合にクラッシュする問題を修正しました。 [#78688](https://github.com/ClickHouse/ClickHouse/pull/78688) ([alesapin](https://github.com/alesapin)). +* `DeltaLake` テーブルエンジンの delta-kernel-s 実装において、読み取りスキーマがテーブルスキーマと異なり、かつパーティションカラムが存在する場合に「カラムが見つかりません」エラーが発生する問題を修正しました。 [#78690](https://github.com/ClickHouse/ClickHouse/pull/78690) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 名前付きセッションをクローズするようにスケジュールした後(ただしタイムアウトが実際に発生する前)に、同じ名前で新しい名前付きセッションを作成すると、新しいセッションまで、最初のセッションがクローズされるはずだったタイミングでクローズされてしまう問題を修正しました。 [#78698](https://github.com/ClickHouse/ClickHouse/pull/78698) ([Alexey Katsman](https://github.com/alexkats)). +* `MongoDB` エンジンを使用するテーブル、または `mongodb` テーブル関数から読み取るいくつかのタイプの `SELECT` クエリを修正しました。修正対象は、`WHERE` 句内で定数値が暗黙的に型変換されるクエリ(例: `WHERE datetime = '2025-03-10 00:00:00'`)、および `LIMIT` と `GROUP BY` を含むクエリです。以前は誤った結果を返すことがありました。 [#78777](https://github.com/ClickHouse/ClickHouse/pull/78777) ([Anton Popov](https://github.com/CurtizJ))。 +* `CHECK TABLE` 実行中でもテーブルのシャットダウンがブロックされないようにしました。 [#78782](https://github.com/ClickHouse/ClickHouse/pull/78782) ([Raúl Marín](https://github.com/Algunenano)). +* Keeper の修正: すべてのケースでエフェメラルカウントが正しく計算されるよう修正。 [#78799](https://github.com/ClickHouse/ClickHouse/pull/78799) ([Antonio Andelic](https://github.com/antonio2368)). +* `view` 以外のテーブル関数を使用した場合に `StorageDistributed` で発生する誤ったキャストを修正しました。[#78464](https://github.com/ClickHouse/ClickHouse/issues/78464) をクローズしました。[#78828](https://github.com/ClickHouse/ClickHouse/pull/78828)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* `tupleElement(*, 1)` のフォーマットの一貫性を修正しました。[#78639](https://github.com/ClickHouse/ClickHouse/issues/78639) をクローズしました。[#78832](https://github.com/ClickHouse/ClickHouse/pull/78832)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* `ssd_cache` 型の辞書は、0 または負の値の `block_size` および `write_buffer_size` パラメータを拒否するようになりました(issue [#78314](https://github.com/ClickHouse/ClickHouse/issues/78314))。[#78854](https://github.com/ClickHouse/ClickHouse/pull/78854)([Elmi Ahmadov](https://github.com/ahmadov))。 +* 異常終了後に ALTER を実行した場合に Refreshable MATERIALIZED VIEW がクラッシュする不具合を修正しました。 [#78858](https://github.com/ClickHouse/ClickHouse/pull/78858) ([Azat Khuzhin](https://github.com/azat)). +* `CSV` フォーマットにおける不正な `DateTime` 値のパース処理を修正しました。 [#78919](https://github.com/ClickHouse/ClickHouse/pull/78919) ([Pavel Kruglov](https://github.com/Avogar))。 +* Keeper の修正: 失敗した multi リクエストで watch が発火しないようにしました。 [#79247](https://github.com/ClickHouse/ClickHouse/pull/79247) ([Antonio Andelic](https://github.com/antonio2368))。 +* min-max 値が明示的に指定されているにもかかわらず `NULL` になっている場合に、Iceberg テーブルの読み取りに失敗していた問題を修正しました。そのような不正なファイルを生成していたのは Go Iceberg ライブラリであることが判明しました。Closes [#78740](https://github.com/ClickHouse/ClickHouse/issues/78740). [#78764](https://github.com/ClickHouse/ClickHouse/pull/78764) ([flynn](https://github.com/ucasfl)). + +#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement} + +* Rust において CPU ターゲットの機能を考慮し、すべてのクレートで LTO を有効化しました。 [#78590](https://github.com/ClickHouse/ClickHouse/pull/78590) ([Raúl Marín](https://github.com/Algunenano)). + +### ClickHouse 25.3 LTS リリース、2025-03-20 {#253} + +#### 後方互換性のない変更 {#backward-incompatible-change} + +* レプリケートされたデータベースに対する TRUNCATE を禁止しました。 [#76651](https://github.com/ClickHouse/ClickHouse/pull/76651) ([Bharat Nallan](https://github.com/bharatnc)). +* 索引キャッシュをスキップする変更を元に戻しました。 [#77447](https://github.com/ClickHouse/ClickHouse/pull/77447) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). + +#### 新機能 {#new-feature} + +* `JSON` データ型が本番利用に対応しました。詳しくは [https://jsonbench.com/](https://jsonbench.com/) を参照してください。`Dynamic` および `Variant` データ型も本番利用に対応しました。[#77785](https://github.com/ClickHouse/ClickHouse/pull/77785)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* clickhouse-server 向けに SSH プロトコルを導入しました。これにより、任意の SSH クライアントを使用して ClickHouse に接続できるようになりました。その結果、次の issue がクローズされました: [#74340](https://github.com/ClickHouse/ClickHouse/issues/74340)。[#74989](https://github.com/ClickHouse/ClickHouse/pull/74989)([George Gamezardashvili](https://github.com/Infjoker))。 +* parallel replicas が有効な場合は、テーブル関数を対応する -Cluster 版に置き換えます。[#65024](https://github.com/ClickHouse/ClickHouse/issues/65024) を修正します。[#70659](https://github.com/ClickHouse/ClickHouse/pull/70659)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* Userspace Page Cache の新しい実装により、OS のページキャッシュに依存せず、プロセス内メモリ上にデータをキャッシュできるようになります。これは、データがローカルファイルシステムキャッシュでバックされていないリモートの仮想ファイルシステム上に格納されている場合に有用です。 [#70509](https://github.com/ClickHouse/ClickHouse/pull/70509) ([Michael Kolupaev](https://github.com/al13n321)). +* 同時実行クエリ間での CPU スロットの割り当て方法を制御するサーバー設定 `concurrent_threads_scheduler` を追加しました。`round_robin`(従来の挙動)または `fair_round_robin` を指定でき、INSERT と SELECT 間での CPU 割り当ての不公平さの問題に対処します。 [#75949](https://github.com/ClickHouse/ClickHouse/pull/75949) ([Sergei Trifonov](https://github.com/serxa))。 +* `estimateCompressionRatio` 集約関数を追加しました。 [#70801](https://github.com/ClickHouse/ClickHouse/issues/70801)、[#76661](https://github.com/ClickHouse/ClickHouse/pull/76661)([Tariq Almawash](https://github.com/talmawash))。 +* 関数 `arraySymmetricDifference` を追加しました。複数の配列引数のうち、すべての引数に共通して含まれていない要素をすべて返します。例: `SELECT arraySymmetricDifference([1, 2], [2, 3])` は `[1, 3]` を返します。(issue [#61673](https://github.com/ClickHouse/ClickHouse/issues/61673))。[#76231](https://github.com/ClickHouse/ClickHouse/pull/76231)([Filipp Abapolov](https://github.com/pheepa))。 +* Iceberg 用 storage/table 関数の設定項目 `iceberg_metadata_file_path` により、読み込むメタデータファイルを明示的に指定できるようにしました。 [#47412](https://github.com/ClickHouse/ClickHouse/issues/47412) を修正。 [#77318](https://github.com/ClickHouse/ClickHouse/pull/77318) ([alesapin](https://github.com/alesapin))。 +* ブロックチェーンの実装、特に EVM ベースのシステムで一般的に使用される `keccak256` ハッシュ関数を追加しました。 [#76669](https://github.com/ClickHouse/ClickHouse/pull/76669) ([Arnaud Briche](https://github.com/arnaudbriche)). +* 3 つの新しい関数を追加。`icebergTruncate` は仕様に準拠([https://iceberg.apache.org/spec/#truncate-transform-details](https://iceberg.apache.org/spec/#truncate-transform-details))、`toYearNumSinceEpoch` および `toMonthNumSinceEpoch` を追加。`Iceberg` エンジンのパーティションプルーニングで `truncate` 変換をサポート。[#77403](https://github.com/ClickHouse/ClickHouse/pull/77403)([alesapin](https://github.com/alesapin))。 +* `LowCardinality(Decimal)` データ型をサポートしました [#72256](https://github.com/ClickHouse/ClickHouse/issues/72256)。[#72833](https://github.com/ClickHouse/ClickHouse/pull/72833)([zhanglistar](https://github.com/zhanglistar))。 +* `FilterTransformPassedRows` と `FilterTransformPassedBytes` のプロファイルイベントでは、クエリ実行中にフィルタリングされた行数とバイト数が示されます。 [#76662](https://github.com/ClickHouse/ClickHouse/pull/76662) ([Onkar Deshpande](https://github.com/onkar)). +* ヒストグラム型メトリクスをサポートしました。インターフェースは Prometheus クライアントと非常によく似ており、値に対応するバケット内のカウンタをインクリメントするには、単に `observe(value)` を呼び出すだけです。ヒストグラムメトリクスは `system.histogram_metrics` を通じて公開されます。 [#75736](https://github.com/ClickHouse/ClickHouse/pull/75736) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* 明示的な値に対して分岐できる非定数 `CASE` をサポート。 [#77399](https://github.com/ClickHouse/ClickHouse/pull/77399) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 + +#### 実験的機能 {#experimental-feature} + +* AWS S3 およびローカルファイルシステム上の Delta Lake テーブルに対して、[Unity Catalog のサポート](https://www.databricks.com/product/unity-catalog)を追加しました。[#76988](https://github.com/ClickHouse/ClickHouse/pull/76988) ([alesapin](https://github.com/alesapin))。 +* Iceberg テーブル向けに AWS Glue サービスカタログとの実験的な連携機能を導入しました。[#77257](https://github.com/ClickHouse/ClickHouse/pull/77257) ([alesapin](https://github.com/alesapin))。 +* 動的なクラスタの自動検出機能を追加しました。これにより、既存の _node_ の自動検出機能が拡張されます。ClickHouse は、`` を使用して共通の ZooKeeper パス配下で新しい _clusters_ を自動的に検出して登録できるようになりました。[#76001](https://github.com/ClickHouse/ClickHouse/pull/76001) ([Anton Ivashkin](https://github.com/ianton-ru))。 +* 新しい設定 `enable_replacing_merge_with_cleanup_for_min_age_to_force_merge` により、設定可能なタイムアウト後にパーティション全体を自動的にクリーンアップマージできるようになりました。[#76440](https://github.com/ClickHouse/ClickHouse/pull/76440) ([Christoph Wurm](https://github.com/cwurm))。 + +#### パフォーマンス改善 {#performance-improvement} + +* 繰り返し使用される条件によるクエリパフォーマンスを向上させるため、クエリ条件キャッシュを実装しました。条件を満たさないデータ範囲を、一時的なインデックスとしてメモリ上に保持します。後続のクエリはこのインデックスを利用します。 [#67768](https://github.com/ClickHouse/ClickHouse/issues/67768) [#69236](https://github.com/ClickHouse/ClickHouse/pull/69236) をクローズしました。 ([zhongyuankai](https://github.com/zhongyuankai)) +* パーツ削除時にキャッシュからデータを積極的に削除するようにしました。データ量がそれより少ない場合でも、キャッシュが最大サイズまで成長しないようにします。 [#76641](https://github.com/ClickHouse/ClickHouse/pull/76641) ([Alexey Milovidov](https://github.com/alexey-milovidov)) +* 算術計算で Int256 と UInt256 を clang の組み込み型 i256 に置き換え、パフォーマンスを向上させました [#70502](https://github.com/ClickHouse/ClickHouse/issues/70502)。 [#73658](https://github.com/ClickHouse/ClickHouse/pull/73658) ([李扬](https://github.com/taiyang-li)) +* 一部のケース(例: 空の array カラム)では、データパーツに空ファイルが含まれることがあります。テーブルがメタデータとオブジェクトストレージが分離されたストレージ構成のディスク上にある場合、そのようなファイルについては空の blob の書き込みをスキップし、メタデータのみを保存できるようにしました。 [#75860](https://github.com/ClickHouse/ClickHouse/pull/75860) ([Alexander Gololobov](https://github.com/davenger)) +* Decimal32/Decimal64/DateTime64 に対する min/max のパフォーマンスを改善しました。 [#76570](https://github.com/ClickHouse/ClickHouse/pull/76570) ([李扬](https://github.com/taiyang-li)) +* クエリコンパイル(`compile_expressions` 設定)は、マシンタイプを考慮するようになりました。これにより、そのようなクエリが大幅に高速化されます。 [#76753](https://github.com/ClickHouse/ClickHouse/pull/76753) ([ZhangLiStar](https://github.com/zhanglistar)) +* `arraySort` を最適化しました。 [#76850](https://github.com/ClickHouse/ClickHouse/pull/76850) ([李扬](https://github.com/taiyang-li)) +* マージなど、キャッシュが受動的に使用される場合には `filesystem_cache_prefer_bigger_buffer_size` を無効化しました。 [#77898](https://github.com/ClickHouse/ClickHouse/pull/77898) ([Kseniia Sumarokova](https://github.com/kssenii)) +* 一部のコード箇所で `preserve_most` 属性を適用し、わずかにより良いコード生成を可能にしました。 [#67778](https://github.com/ClickHouse/ClickHouse/pull/67778) ([Nikita Taranov](https://github.com/nickitat)) +* ClickHouse サーバーのシャットダウンを高速化しました(2.5 秒の遅延を除去)。 [#76550](https://github.com/ClickHouse/ClickHouse/pull/76550) ([Azat Khuzhin](https://github.com/azat)) +* ReadBufferFromS3 およびその他のリモート読み取りバッファで不要なアロケーションを回避し、メモリ消費を半分に削減しました。 [#76692](https://github.com/ClickHouse/ClickHouse/pull/76692) ([Sema Checherinda](https://github.com/CheSema)) +* zstd を 1.5.5 から 1.5.7 に更新しました。これにより、いくつかの[パフォーマンス向上](https://github.com/facebook/zstd/releases/tag/v1.5.7)につながる可能性があります。 [#77137](https://github.com/ClickHouse/ClickHouse/pull/77137) ([Pradeep Chhetri](https://github.com/chhetripradeep)) +* Wide パーツ内の JSON カラムのプリフェッチ中のメモリ使用量を削減しました。これは、ClickHouse Cloud のような共有ストレージ上で ClickHouse を使用する場合に特に有効です。 [#77640](https://github.com/ClickHouse/ClickHouse/pull/77640) ([Pavel Kruglov](https://github.com/Avogar)) + +#### 改良 {#improvement} + +* `TRUNCATE` が `INTO OUTFILE` と共に使用される場合に、アトミックなリネームをサポートするようにしました。[#70323](https://github.com/ClickHouse/ClickHouse/issues/70323) を解決します。[#77181](https://github.com/ClickHouse/ClickHouse/pull/77181)([Onkar Deshpande](https://github.com/onkar))。 +* `NaN` や `inf` を float 型の設定値として使用することはできなくなりました。そもそも妥当な使い方ではありませんでしたが。 [#77546](https://github.com/ClickHouse/ClickHouse/pull/77546) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* `compatibility` 設定に関わらず、analyzer が無効になっている場合は parallel replicas をデフォルトで無効にするようにしました。この挙動は、`parallel_replicas_only_with_analyzer` を明示的に `false` に設定することで変更できます。 [#77115](https://github.com/ClickHouse/ClickHouse/pull/77115) ([Igor Nikonov](https://github.com/devcrafter)). +* クライアントリクエストのヘッダーから外部 HTTP 認証器に転送するヘッダーのリストを定義できるようになりました。 [#77054](https://github.com/ClickHouse/ClickHouse/pull/77054) ([inv2004](https://github.com/inv2004)). +* タプル型カラム内のフィールドに対して、カラム名の大文字・小文字を区別しないマッチングを正しく扱うようにしました。 [https://github.com/apache/incubator-gluten/issues/8324](https://github.com/apache/incubator-gluten/issues/8324) をクローズ。 [#73780](https://github.com/ClickHouse/ClickHouse/pull/73780) ([李扬](https://github.com/taiyang-li))。 +* Codec Gorilla のパラメータは、常に .sql ファイル内のテーブルメタデータに保存されるようになりました。これにより次の issue が解決されました: [#70072](https://github.com/ClickHouse/ClickHouse/issues/70072)。[#74814](https://github.com/ClickHouse/ClickHouse/pull/74814)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* 特定のデータレイク向けにパース処理を強化しました(Sequence ID のパース: マニフェストファイル内のシーケンス識別子をパースする機能を追加、Avro メタデータのパース: 将来の拡張が容易になるよう Avro メタデータパーサーを再設計)。 [#75010](https://github.com/ClickHouse/ClickHouse/pull/75010) ([Daniil Ivanik](https://github.com/divanik))。 +* `system.opentelemetry_span_log` テーブルのデフォルト ORDER BY から trace_id を除外しました。 [#75907](https://github.com/ClickHouse/ClickHouse/pull/75907) ([Azat Khuzhin](https://github.com/azat)). +* 暗号化(`encrypted_by` 属性)は、任意の設定ファイル(config.xml、users.xml、入れ子になった設定ファイル)に適用できるようになりました。これまでは、トップレベルの config.xml ファイルに対してのみ有効でした。 [#75911](https://github.com/ClickHouse/ClickHouse/pull/75911) ([Mikhail Gorshkov](https://github.com/mgorshkov)). +* `system.warnings` テーブルを改善し、追加・更新・削除が可能な動的な警告メッセージを追加できるようにしました。 [#76029](https://github.com/ClickHouse/ClickHouse/pull/76029) ([Bharat Nallan](https://github.com/bharatnc)). +* このPRでは、すべての `DROP` 操作を順序として先に記述する必要があるため、`ALTER USER user1 ADD PROFILES a, DROP ALL PROFILES` というクエリは実行できなくなりました。 [#76242](https://github.com/ClickHouse/ClickHouse/pull/76242) ([pufit](https://github.com/pufit)). +* SYNC REPLICA に対するさまざまな強化(エラーメッセージの改善、テストの充実、サニティチェックの追加)。 [#76307](https://github.com/ClickHouse/ClickHouse/pull/76307) ([Azat Khuzhin](https://github.com/azat))。 +* バックアップ時に `Access Denied` が発生して S3 へのマルチパートコピーが失敗した場合に、正しいフォールバック処理を行うようにしました。バケット間で異なるクレデンシャルを使用してバックアップを行う場合、マルチパートコピーで `Access Denied` エラーが発生することがあります。 [#76515](https://github.com/ClickHouse/ClickHouse/pull/76515) ([Antonio Andelic](https://github.com/antonio2368)). +* librdkafka(ひどい代物)をバージョン 2.8.0(代物の質は特に良くなってはいない)にアップグレードし、Kafka テーブルのシャットダウンシーケンスを改善して、テーブル削除時およびサーバー再起動時の遅延を低減しました。`engine=Kafka` は、テーブルが削除されたときにコンシューマグループから明示的に離脱しなくなりました。その代わり、コンシューマは非アクティブな状態が `session_timeout_ms`(デフォルト: 45 秒)続いた後に自動的に削除されるまで、グループに留まります。 [#76621](https://github.com/ClickHouse/ClickHouse/pull/76621)([filimonov](https://github.com/filimonov))。 +* S3 リクエスト設定の検証処理を修正。 [#76658](https://github.com/ClickHouse/ClickHouse/pull/76658) ([Vitaly Baranov](https://github.com/vitlibar))。 +* `server_settings` や `settings` のようなシステムテーブルには、`default` 値用のカラムがあり便利です。これらを `merge_tree_settings` および `replicated_merge_tree_settings` にも追加しました。 [#76942](https://github.com/ClickHouse/ClickHouse/pull/76942) ([Diego Nieto](https://github.com/lesandie)). +* `CurrentMetrics::QueryPreempted` と同様のロジックを持つ `ProfileEvents::QueryPreempted` を追加しました。 [#77015](https://github.com/ClickHouse/ClickHouse/pull/77015) ([VicoWu](https://github.com/VicoWu))。 +* 以前は、Replicated データベースがクエリで指定された認証情報をログに出力してしまうことがありました。この問題は修正されました。これにより次の問題が解決されます: [#77123](https://github.com/ClickHouse/ClickHouse/issues/77123)。[#77133](https://github.com/ClickHouse/ClickHouse/pull/77133)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* `plain_rewritable disk` に対して ALTER TABLE DROP PARTITION が利用できるようになりました。 [#77138](https://github.com/ClickHouse/ClickHouse/pull/77138) ([Julia Kartseva](https://github.com/jkartseva)). +* バックアップ/リストア用の設定 `allow_s3_native_copy` は、現在は次の 3 つの値をサポートするようになりました: - `False` - S3 ネイティブコピーは使用されません。 - `True`(従来のデフォルト)- ClickHouse は最初に S3 ネイティブコピーを試行し、失敗した場合は読み取り+書き込み方式にフォールバックします。 - `'auto'`(新しいデフォルト)- ClickHouse は最初にソースとデスティネーションの認証情報を比較します。同一であれば、まず S3 ネイティブコピーを試行し、その後読み取り+書き込み方式にフォールバックする場合があります。異なる場合は、最初から読み取り+書き込み方式を使用します。 [#77401](https://github.com/ClickHouse/ClickHouse/pull/77401) ([Vitaly Baranov](https://github.com/vitlibar))。 +* Delta Lake テーブルエンジンの Delta カーネルで AWS セッショントークンおよび環境認証情報の利用をサポートしました。 [#77661](https://github.com/ClickHouse/ClickHouse/pull/77661) ([Kseniia Sumarokova](https://github.com/kssenii)). + +#### バグ修正(公式安定版リリースにおけるユーザーに影響する不具合) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* 非同期分散 INSERT で保留中バッチの処理中にハングする問題(`No such file or directory` などにより発生)を修正。 [#72939](https://github.com/ClickHouse/ClickHouse/pull/72939) ([Azat Khuzhin](https://github.com/azat))。 +* INDEX 分析中の日時変換を改善し、暗黙的な Date から DateTime への変換に対して飽和動作を強制するようにしました。これにより、日時の範囲制限が原因で発生し得た INDEX 分析結果の不正確さが解消されます。この変更により [#73307](https://github.com/ClickHouse/ClickHouse/issues/73307) を修正しました。また、デフォルト値である `date_time_overflow_behavior = 'ignore'` 設定時における明示的な `toDateTime` 変換の動作も修正しました。[#73326](https://github.com/ClickHouse/ClickHouse/pull/73326)([Amos Bird](https://github.com/amosbird))。 +* UUID とテーブル名の間のレースコンディションに起因するさまざまなバグを修正しました(たとえば、`RENAME` と `RESTART REPLICA` のレースコンディションが解消されます。同時に `RENAME` と `SYSTEM RESTART REPLICA` を実行した場合に、誤ったレプリカを再起動してしまったり、あるいはテーブルの一つが `Table X is being restarted` 状態のまま取り残されてしまう可能性がありました)。 [#76308](https://github.com/ClickHouse/ClickHouse/pull/76308) ([Azat Khuzhin](https://github.com/azat)). +* 非同期インサートを有効にし、ブロックサイズが不揃いな状態で `insert into ... from file ...` を実行した際、最初のブロックサイズが `async_max_size` 未満で 2 番目のブロックサイズが `async_max_size` を超える場合、2 番目のブロックがインサートされずにデータ損失が発生する問題を修正。2 番目のブロックのデータは `squashing` に残留したままとなっていました。 [#76343](https://github.com/ClickHouse/ClickHouse/pull/76343) ([Han Fei](https://github.com/hanfei1991)). +* `system.data_skipping_indices` においてフィールド名 'marks' を 'marks_bytes' に変更しました。 [#76374](https://github.com/ClickHouse/ClickHouse/pull/76374) ([Robert Schulze](https://github.com/rschu1ze)). +* 動的ファイルシステムキャッシュのリサイズ時に、削除処理中に予期しないエラーが発生した際の処理を修正しました。 [#76466](https://github.com/ClickHouse/ClickHouse/pull/76466) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 並列ハッシュにおける `used_flag` の初期化を修正しました。これによりサーバーがクラッシュする可能性がありました。 [#76580](https://github.com/ClickHouse/ClickHouse/pull/76580) ([Nikita Taranov](https://github.com/nickitat)). +* PROJECTION 内で `defaultProfiles` 関数を呼び出した際に発生する論理エラーを修正。 [#76627](https://github.com/ClickHouse/ClickHouse/pull/76627) ([pufit](https://github.com/pufit)). +* Web UI でブラウザによる対話的な Basic 認証を要求しないようにしました。[#76319](https://github.com/ClickHouse/ClickHouse/issues/76319) をクローズします。[#76637](https://github.com/ClickHouse/ClickHouse/pull/76637)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 分散テーブルからブール値リテラルを SELECT した際に発生する THERE_IS_NO_COLUMN 例外を修正。 [#76656](https://github.com/ClickHouse/ClickHouse/pull/76656) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* テーブルディレクトリ内のサブパスが、より適切な方法で選択されるようになりました。 [#76681](https://github.com/ClickHouse/ClickHouse/pull/76681) ([Daniil Ivanik](https://github.com/divanik)). +* サブカラムを含む主キー (PK) を持つテーブルを ALTER した後に発生するエラー `Not found column in block` を修正しました。[https://github.com/ClickHouse/ClickHouse/pull/72644](https://github.com/ClickHouse/ClickHouse/pull/72644) 適用後は、[https://github.com/ClickHouse/ClickHouse/pull/74403](https://github.com/ClickHouse/ClickHouse/pull/74403) が必要です。[#76686](https://github.com/ClickHouse/ClickHouse/pull/76686)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* NULL ショートサーキットのパフォーマンステストを追加し、バグを修正しました。 [#76708](https://github.com/ClickHouse/ClickHouse/pull/76708) ([李扬](https://github.com/taiyang-li)). +* 出力の書き込みバッファをファイナライズする前にフラッシュするようにしました。いくつかの出力フォーマット(例: `JSONEachRowWithProgressRowOutputFormat`)のファイナライズ時に発生していた `LOGICAL_ERROR` を修正しました。 [#76726](https://github.com/ClickHouse/ClickHouse/pull/76726) ([Antonio Andelic](https://github.com/antonio2368))。 +* MongoDBのバイナリUUIDへの対応を追加しました([#74452](https://github.com/ClickHouse/ClickHouse/issues/74452)) - テーブル関数使用時のMongoDBへのWHEREプッシュダウンを修正しました([#72210](https://github.com/ClickHouse/ClickHouse/issues/72210)) - MongoDBのバイナリUUIDはClickHouseのUUIDにのみ変換されるように、MongoDBとClickHouse間の型マッピングを変更しました。これにより、将来のあいまいさや予期せぬ動作を防ぐことができます。- 後方互換性を維持したまま、OIDのマッピングを修正しました。[#76762](https://github.com/ClickHouse/ClickHouse/pull/76762)([Kirill Nikiforov](https://github.com/allmazz))。 +* JSON サブカラムのプレフィックス並列デシリアライズにおける例外処理を修正。[#76809](https://github.com/ClickHouse/ClickHouse/pull/76809) ([Pavel Kruglov](https://github.com/Avogar))。 +* 負の整数に対する `lgamma` 関数の動作を修正。 [#76840](https://github.com/ClickHouse/ClickHouse/pull/76840) ([Ilya Kataev](https://github.com/IlyaKataev)). +* 明示的に定義された primary key に対する reverse key analysis を修正しました。[#76654](https://github.com/ClickHouse/ClickHouse/issues/76654) と同様の問題です。 [#76846](https://github.com/ClickHouse/ClickHouse/pull/76846) ([Amos Bird](https://github.com/amosbird))。 +* JSON フォーマットでの Bool 値の Pretty 表示を修正しました。 [#76905](https://github.com/ClickHouse/ClickHouse/pull/76905) ([Pavel Kruglov](https://github.com/Avogar)). +* 非同期挿入中にエラーが発生した際、不正な JSON カラムのロールバック処理によりクラッシュする可能性があった問題を修正しました。 [#76908](https://github.com/ClickHouse/ClickHouse/pull/76908) ([Pavel Kruglov](https://github.com/Avogar)). +* 以前は、`multiIf` がプランニング時と本実行時で異なる型のカラムを返す場合がありました。これにより、C++ の観点から未定義動作を引き起こすコードが生成されていました。 [#76914](https://github.com/ClickHouse/ClickHouse/pull/76914) ([Nikita Taranov](https://github.com/nickitat))。 +* MergeTree における定数 Nullable キーのシリアライズ処理が誤っていた問題を修正しました。これにより [#76939](https://github.com/ClickHouse/ClickHouse/issues/76939) が修正されます。 [#76985](https://github.com/ClickHouse/ClickHouse/pull/76985) ([Amos Bird](https://github.com/amosbird))。 +* `BFloat16` 値のソート処理を修正しました。この修正により [#75487](https://github.com/ClickHouse/ClickHouse/issues/75487) がクローズされます。さらに [#75669](https://github.com/ClickHouse/ClickHouse/issues/75669) もクローズされます。 [#77000](https://github.com/ClickHouse/ClickHouse/pull/77000)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* パーツ整合性チェックで一時的なサブカラムをスキップするチェックを追加することで、Variant サブカラムを含む JSON のバグを修正しました。 [#72187](https://github.com/ClickHouse/ClickHouse/issues/72187)。 [#77034](https://github.com/ClickHouse/ClickHouse/pull/77034)([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 +* `Values` フォーマットで Template をパースする際の型不一致によりクラッシュする問題を修正。 [#77071](https://github.com/ClickHouse/ClickHouse/pull/77071) ([Pavel Kruglov](https://github.com/Avogar))。 +* EmbeddedRocksDB テーブルの主キーにサブカラムを含めて作成できないようにしました。以前はそのようなテーブルを作成できましたが、SELECT クエリが失敗していました。 [#77074](https://github.com/ClickHouse/ClickHouse/pull/77074) ([Pavel Kruglov](https://github.com/Avogar))。 +* 述語をリモート側にプッシュダウンする際にリテラル型が考慮されていなかったため、分散クエリで不正な比較が行われていた問題を修正。 [#77093](https://github.com/ClickHouse/ClickHouse/pull/77093) ([Duc Canh Le](https://github.com/canhld94)). +* 例外により Kafka テーブル作成時にクラッシュする問題を修正。 [#77121](https://github.com/ClickHouse/ClickHouse/pull/77121) ([Pavel Kruglov](https://github.com/Avogar)). +* Kafka および RabbitMQ エンジンで JSON およびサブカラムのサポートを追加しました。 [#77122](https://github.com/ClickHouse/ClickHouse/pull/77122) ([Pavel Kruglov](https://github.com/Avogar)). +* MacOS での例外スタックのアンワインド処理を修正。[#77126](https://github.com/ClickHouse/ClickHouse/pull/77126)([Eduard Karacharov](https://github.com/korowa))。 +* getSubcolumn 関数における 'null' サブカラムの読み取りを修正。 [#77163](https://github.com/ClickHouse/ClickHouse/pull/77163) ([Pavel Kruglov](https://github.com/Avogar)). +* Array 型および未サポート関数での bloom filter 索引の不具合を修正。 [#77271](https://github.com/ClickHouse/ClickHouse/pull/77271) ([Pavel Kruglov](https://github.com/Avogar)). +* テーブル数に関する制限は、初回の CREATE クエリ実行時にのみチェックするようにしました。 [#77274](https://github.com/ClickHouse/ClickHouse/pull/77274) ([Nikolay Degterinsky](https://github.com/evillique)). +* バグではありません: `SELECT toBFloat16(-0.0) == toBFloat16(0.0)` は、これまで `false` を返していましたが、現在は正しく `true` を返すようになりました。これにより、`Float32` および `Float64` と挙動が一貫するようになりました。 [#77290](https://github.com/ClickHouse/ClickHouse/pull/77290) ([Shankar Iyer](https://github.com/shankar-iyer)). +* デバッグビルドでクラッシュを引き起こす可能性がある、未初期化の `key_index` 変数への誤った参照が行われる不具合を修正しました(この未初期化参照は、後続のコードが例外をスローする可能性が高いため、リリースビルドでは問題になりません)。 ### ユーザー向け変更に関するドキュメントのエントリ。 [#77305](https://github.com/ClickHouse/ClickHouse/pull/77305) ([wxybear](https://github.com/wxybear)). +* Bool 値を持つパーティションの名前付けを修正しました。これは [https://github.com/ClickHouse/ClickHouse/pull/74533](https://github.com/ClickHouse/ClickHouse/pull/74533) によって不正な状態になっていました。 [#77319](https://github.com/ClickHouse/ClickHouse/pull/77319) ([Pavel Kruglov](https://github.com/Avogar))。 +* 内部に Nullable 要素を含むタプルと文字列の比較の不具合を修正しました。例えば、この変更より前は、タプル `(1, null)` と文字列 `'(1,null)'` の比較でエラーが発生していました。別の例として、Nullable カラムである `a` を含むタプル `(1, a)` と文字列 `'(1, 2)'` の比較も同様です。この変更により、これらの問題が解消されました。 [#77323](https://github.com/ClickHouse/ClickHouse/pull/77323) ([Alexey Katsman](https://github.com/alexkats)). +* ObjectStorageQueueSource で発生していたクラッシュを修正しました。この不具合は [https://github.com/ClickHouse/ClickHouse/pull/76358](https://github.com/ClickHouse/ClickHouse/pull/76358) で導入されました。 [#77325](https://github.com/ClickHouse/ClickHouse/pull/77325) ([Pavel Kruglov](https://github.com/Avogar))。 +* `input` と併用した場合の `async_insert` を修正。 [#77340](https://github.com/ClickHouse/ClickHouse/pull/77340) ([Azat Khuzhin](https://github.com/azat)). +* Fix: `WITH FILL` が、ソートカラムがプランナーによって削除された場合に NOT_FOUND_COLUMN_IN_BLOCK で失敗する可能性がある問題を修正。INTERPOLATE 式に対して計算される DAG の不整合に関連する同様の問題も修正。 [#77343](https://github.com/ClickHouse/ClickHouse/pull/77343) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 +* 無効な AST ノードに対するエイリアス設定まわりで発生していた複数の LOGICAL_ERROR を修正しました。 [#77445](https://github.com/ClickHouse/ClickHouse/pull/77445) ([Raúl Marín](https://github.com/Algunenano)). +* filesystem cache の実装において、ファイルセグメントの書き込み中のエラー処理の不具合を修正しました。 [#77471](https://github.com/ClickHouse/ClickHouse/pull/77471) ([Kseniia Sumarokova](https://github.com/kssenii)). +* カタログから提供される適切なメタデータファイルを DatabaseIceberg が使用するようにしました。[#75187](https://github.com/ClickHouse/ClickHouse/issues/75187) をクローズ。[#77486](https://github.com/ClickHouse/ClickHouse/pull/77486) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* `query cache` は UDF を非決定的であるものと仮定するようになりました。これに伴い、UDF を含むクエリの結果はキャッシュされなくなりました。以前は、ユーザーが非決定的な UDF を定義した場合でも、その結果が誤ってキャッシュされてしまうことがありました(issue [#77553](https://github.com/ClickHouse/ClickHouse/issues/77553))。[#77633](https://github.com/ClickHouse/ClickHouse/pull/77633)([Jimmy Aguilar Mena](https://github.com/Ergus))。 +* `enable_filesystem_cache_log` SETTING が有効な場合にのみ動作していた system.filesystem_cache_log の問題を修正。 [#77650](https://github.com/ClickHouse/ClickHouse/pull/77650) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `defaultRoles` 関数を PROJECTION 内で呼び出した場合に発生する論理エラーを修正しました。[#76627](https://github.com/ClickHouse/ClickHouse/issues/76627) に対するフォローアップです。[#77667](https://github.com/ClickHouse/ClickHouse/pull/77667)([pufit](https://github.com/pufit))。 +* 関数 `arrayResize` の第2引数として `Nullable` 型を指定することは、現在は許可されていません。これまでは、第2引数が `Nullable` の場合に、エラーが発生したり誤った結果が返されたりする可能性がありました。(issue [#48398](https://github.com/ClickHouse/ClickHouse/issues/48398)). [#77724](https://github.com/ClickHouse/ClickHouse/pull/77724) ([Manish Gill](https://github.com/mgill25)). +* 書き込み対象のブロックが一切生成されない場合でも、マージおよびミューテーションがキャンセルされたかどうかを定期的に確認するようにしました。 [#77766](https://github.com/ClickHouse/ClickHouse/pull/77766) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 + +#### ビルド/テスト/パッケージング関連の改善 {#buildtestingpackaging-improvement} + +* `clickhouse-odbc-bridge` と `clickhouse-library-bridge` を、別リポジトリ https://github.com/ClickHouse/odbc-bridge/ に分離しました。 [#76225](https://github.com/ClickHouse/ClickHouse/pull/76225) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Rust のクロスコンパイルを修正し、Rust を完全に無効化できるようにしました。 [#76921](https://github.com/ClickHouse/ClickHouse/pull/76921) ([Raúl Marín](https://github.com/Algunenano)). + +### ClickHouse 25.2 リリース, 2025-02-27 {#252} + +#### 後方互換性のない変更 {#backward-incompatible-change} + +* `async_load_databases` をデフォルトで完全に有効化しました(`config.xml` をアップグレードしていないインストールでも同様です)。[#74772](https://github.com/ClickHouse/ClickHouse/pull/74772)([Azat Khuzhin](https://github.com/azat))。 +* `JSONCompactEachRowWithProgress` と `JSONCompactStringsEachRowWithProgress` フォーマットを追加しました。[#69989](https://github.com/ClickHouse/ClickHouse/issues/69989) の継続です。`JSONCompactWithNames` と `JSONCompactWithNamesAndTypes` は今後 "totals" を出力しません。これは実装上の誤りだったと考えられます。[#75037](https://github.com/ClickHouse/ClickHouse/pull/75037)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* ALTER コマンドの一覧の曖昧さをなくすため、`format_alter_operations_with_parentheses` のデフォルト値を true に変更しました(https://github.com/ClickHouse/ClickHouse/pull/59532 を参照)。これにより 24.3 より前のクラスターとのレプリケーションは動作しなくなります。古いリリースを使用しているクラスターをアップグレードする場合は、サーバー設定でこの設定を無効にするか、先に 24.3 にアップグレードしてください。[#75302](https://github.com/ClickHouse/ClickHouse/pull/75302)([Raúl Marín](https://github.com/Algunenano))。 +* 正規表現を使用してログメッセージをフィルタリングする機能を削除しました。実装にデータレースがあったため、削除する必要がありました。[#75577](https://github.com/ClickHouse/ClickHouse/pull/75577)([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 +* `min_chunk_bytes_for_parallel_parsing` 設定は、もはや 0 を指定できなくなりました。これにより [#71110](https://github.com/ClickHouse/ClickHouse/issues/71110) が修正されます。[#75239](https://github.com/ClickHouse/ClickHouse/pull/75239)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* キャッシュ設定内の設定を検証するようにしました。存在しない設定はこれまでは無視されていましたが、今後はエラーをスローし、設定から削除する必要があります。[#75452](https://github.com/ClickHouse/ClickHouse/pull/75452)([Kseniia Sumarokova](https://github.com/kssenii))。 + +#### 新機能 {#new-feature} + +* 型 `Nullable(JSON)` をサポートしました。[#73556](https://github.com/ClickHouse/ClickHouse/pull/73556) ([Pavel Kruglov](https://github.com/Avogar)). +* DEFAULT および MATERIALIZED 式でサブカラムをサポートしました。[#74403](https://github.com/ClickHouse/ClickHouse/pull/74403) ([Pavel Kruglov](https://github.com/Avogar)). +* `output_format_parquet_write_bloom_filter` 設定(デフォルトで有効)を使用した Parquet のブルームフィルター書き込みをサポートしました。[#71681](https://github.com/ClickHouse/ClickHouse/pull/71681) ([Michael Kolupaev](https://github.com/al13n321)). +* Web UI に対話的なデータベースナビゲーション機能が追加されました。[#75777](https://github.com/ClickHouse/ClickHouse/pull/75777) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* ストレージポリシーで読み取り専用ディスクと読み書き可能ディスクを組み合わせて使用できるようになりました(複数ボリュームまたは複数ディスクとして構成可能)。これによりボリューム全体からデータを読み取ることができ、挿入は書き込み可能なディスクが優先されます(いわゆる Copy-on-Write のストレージポリシー)。[#75862](https://github.com/ClickHouse/ClickHouse/pull/75862) ([Azat Khuzhin](https://github.com/azat)). +* 新しい Database エンジン `DatabaseBackup` が追加され、バックアップからテーブル/データベースを即座にアタッチできるようになりました。[#75725](https://github.com/ClickHouse/ClickHouse/pull/75725) ([Maksim Kita](https://github.com/kitaisreal)). +* Postgres ワイヤプロトコルでのプリペアドステートメントをサポートしました。[#75035](https://github.com/ClickHouse/ClickHouse/pull/75035) ([scanhex12](https://github.com/scanhex12)). +* データベースレイヤーなしで ATTACH テーブルできる機能を追加しました。これは Web、S3 などの外部仮想ファイルシステム上の MergeTree テーブルに対して有用です。[#75788](https://github.com/ClickHouse/ClickHouse/pull/75788) ([Azat Khuzhin](https://github.com/azat)). +* 2 つの文字列の一部同士を比較する新しい文字列比較関数 `compareSubstrings` を追加しました。例: `SELECT compareSubstrings('Saxony', 'Anglo-Saxon', 0, 6, 5) AS result` は「文字列 'Saxon' と 'Anglo-Saxon' について、最初の文字列ではオフセット 0、2 番目の文字列ではオフセット 5 から、それぞれ 6 バイト分を辞書順で比較する」という意味です。[#74070](https://github.com/ClickHouse/ClickHouse/pull/74070) ([lgbo](https://github.com/lgbo-ustc)). +* 新しい関数 `initialQueryStartTime` が追加されました。現在のクエリの開始時刻を返します。この値は、分散クエリ中はすべての分片で同一です。[#75087](https://github.com/ClickHouse/ClickHouse/pull/75087) ([Roman Lomonosov](https://github.com/lomik)). +* MySQL 向けに、named collection を用いた SSL 認証をサポートしました。[#59111](https://github.com/ClickHouse/ClickHouse/issues/59111) をクローズしました。[#59452](https://github.com/ClickHouse/ClickHouse/pull/59452) ([Nikolay Degterinsky](https://github.com/evillique)). + +#### 実験的機能 {#experimental-features} + +* 新しい設定 `enable_adaptive_memory_spill_scheduler` を追加しました。この設定により、同一クエリ内の複数の Grace JOIN が合計のメモリ使用量を監視し、MEMORY_LIMIT_EXCEEDED を防ぐために外部ストレージへのスピルを適応的にトリガーできるようになります。 [#72728](https://github.com/ClickHouse/ClickHouse/pull/72728) ([lgbo](https://github.com/lgbo-ustc)). +* 新しい実験的な `Kafka` テーブルエンジンが Keeper の機能フラグを完全に尊重するようにしました。 [#76004](https://github.com/ClickHouse/ClickHouse/pull/76004) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* ライセンス上の問題により v24.10 で削除されていた (Intel) QPL コーデックを復元しました。 [#76021](https://github.com/ClickHouse/ClickHouse/pull/76021) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* HDFS との統合で、`dfs.client.use.datanode.hostname` 構成オプションのサポートを追加しました。 [#74635](https://github.com/ClickHouse/ClickHouse/pull/74635) ([Mikhail Tiukavkin](https://github.com/freshertm)). + +#### パフォーマンスの改善 {#performance-improvement} + +* S3 上の Wide パーツにおける JSON カラム全体の読み取りパフォーマンスを改善しました。サブカラム接頭辞のデシリアライズ用プリフェッチの追加、デシリアライズ済み接頭辞のキャッシュ、サブカラム接頭辞の並列デシリアライズにより実現しています。これにより、`SELECT data FROM table` のようなクエリでは S3 からの JSON カラム読み取りが 4 倍、`SELECT data FROM table LIMIT 10` のようなクエリでは約 10 倍高速になります。[#74827](https://github.com/ClickHouse/ClickHouse/pull/74827) ([Pavel Kruglov](https://github.com/Avogar)). +* `max_rows_in_join = max_bytes_in_join = 0` の場合に `parallel_hash` 内で発生していた不要な競合を修正しました。[#75155](https://github.com/ClickHouse/ClickHouse/pull/75155) ([Nikita Taranov](https://github.com/nickitat)). +* オプティマイザにより結合の左右が入れ替えられた場合に、`ConcurrentHashJoin` で事前確保が二重に行われていた問題を修正しました。[#75149](https://github.com/ClickHouse/ClickHouse/pull/75149) ([Nikita Taranov](https://github.com/nickitat)). +* 一部の JOIN シナリオでのわずかな改善として、出力行数を事前計算し、その分のメモリを予約するようにしました。[#75376](https://github.com/ClickHouse/ClickHouse/pull/75376) ([Alexander Gololobov](https://github.com/davenger)). +* `WHERE a < b AND b < c AND c < 5` のようなクエリに対して、新しい比較条件(`a < 5 AND b < 5`)を推論してフィルタリング能力を向上させることができるようにしました。[#73164](https://github.com/ClickHouse/ClickHouse/pull/73164) ([Shichao Jin](https://github.com/jsc0218)). +* Keeper の改善: パフォーマンス向上のため、インメモリストレージへコミットする際のダイジェスト計算を無効化しました。これは `keeper_server.digest_enabled_on_commit` 設定で有効化できます。リクエストの前処理時には引き続きダイジェストが計算されます。[#75490](https://github.com/ClickHouse/ClickHouse/pull/75490) ([Antonio Andelic](https://github.com/antonio2368)). +* 可能な場合に、JOIN の ON 句からフィルタ式をプッシュダウンするようにしました。[#75536](https://github.com/ClickHouse/ClickHouse/pull/75536) ([Vladimir Cherkasov](https://github.com/vdimir)). +* MergeTree において、カラムおよび索引のサイズを遅延評価するようにしました。[#75938](https://github.com/ClickHouse/ClickHouse/pull/75938) ([Pavel Kruglov](https://github.com/Avogar)). +* `MATERIALIZE TTL` において `ttl_only_drop_parts` を再び尊重するようにしました。TTL を再計算してパーツを空のパーツに置き換えることで削除するため、必要なカラムのみを読み取ります。[#72751](https://github.com/ClickHouse/ClickHouse/pull/72751) ([Andrey Zvonov](https://github.com/zvonand)). +* plain_rewritable メタデータファイル向けの書き込みバッファサイズを削減しました。[#75758](https://github.com/ClickHouse/ClickHouse/pull/75758) ([Julia Kartseva](https://github.com/jkartseva)). +* 一部のウィンドウ関数でメモリ使用量を削減しました。[#65647](https://github.com/ClickHouse/ClickHouse/pull/65647) ([lgbo](https://github.com/lgbo-ustc)). +* parquet Bloom フィルタと min/max 索引を同時に評価するようにしました。これは `x = 3 or x > 5` かつ data = [1, 2, 4, 5] のようなケースを正しくサポートするために必要です。[#71383](https://github.com/ClickHouse/ClickHouse/pull/71383) ([Arthur Passos](https://github.com/arthurpassos)). +* `Executable` ストレージに渡されたクエリは、もはやシングルスレッド実行に限定されません。[#70084](https://github.com/ClickHouse/ClickHouse/pull/70084) ([yawnt](https://github.com/yawnt)). +* ALTER TABLE FETCH PARTITION においてパーツを並列にフェッチするようにしました(スレッドプールのサイズは `max_fetch_partition_thread_pool_size` で制御されます)。[#74978](https://github.com/ClickHouse/ClickHouse/pull/74978) ([Azat Khuzhin](https://github.com/azat)). +* `indexHint` 関数を用いた述語を `PREWHERE` に移動できるようにしました。[#74987](https://github.com/ClickHouse/ClickHouse/pull/74987) ([Anton Popov](https://github.com/CurtizJ)). + +#### 改良 {#improvement} + +* `LowCardinality` カラムのメモリ内サイズの計算を修正しました。 [#74688](https://github.com/ClickHouse/ClickHouse/pull/74688) ([Nikita Taranov](https://github.com/nickitat)). +* `processors_profile_log` テーブルに、30 日の有効期限 (TTL) を持つデフォルト設定が適用されました。 [#66139](https://github.com/ClickHouse/ClickHouse/pull/66139) ([Ilya Yatsishin](https://github.com/qoega)). +* クラスタ設定で分片に名前を設定できるようにしました。 [#72276](https://github.com/ClickHouse/ClickHouse/pull/72276) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* Prometheus remote write レスポンスの成功ステータスコードを 200/OK から 204/NoContent に変更しました。 [#74170](https://github.com/ClickHouse/ClickHouse/pull/74170) ([Michael Dempsey](https://github.com/bluestealth)). +* `max_remote_read_network_bandwidth_for_serve` と `max_remote_write_network_bandwidth_for_server` を、サーバーを再起動せずに動的に再読み込みできるようにしました。[#74206](https://github.com/ClickHouse/ClickHouse/pull/74206) ([Kai Zhu](https://github.com/nauu))。 +* バックアップの作成時に、チェックサムの計算に blob パスを使用できるようにしました。 [#74729](https://github.com/ClickHouse/ClickHouse/pull/74729) ([Vitaly Baranov](https://github.com/vitlibar)). +* `system.query_cache` にクエリ ID カラムを追加しました([#68205](https://github.com/ClickHouse/ClickHouse/issues/68205) を解決)。[#74982](https://github.com/ClickHouse/ClickHouse/pull/74982)([NamHoaiNguyen](https://github.com/NamHoaiNguyen))。 +* `ALTER TABLE ... FREEZE ...` クエリを、`KILL QUERY` またはタイムアウト値(`max_execution_time`)による自動処理でキャンセルできるようになりました。 [#75016](https://github.com/ClickHouse/ClickHouse/pull/75016) ([Kirill](https://github.com/kirillgarbar)). +* `groupUniqArrayArrayMap` を `SimpleAggregateFunction` としてサポートする機能を追加しました。 [#75034](https://github.com/ClickHouse/ClickHouse/pull/75034) ([Miel Donkers](https://github.com/mdonkers))。 +* データベースエンジン `Iceberg` でカタログの認証情報設定を非表示にしました。 [#74559](https://github.com/ClickHouse/ClickHouse/issues/74559) をクローズしました。 [#75080](https://github.com/ClickHouse/ClickHouse/pull/75080)([Kseniia Sumarokova](https://github.com/kssenii))。 +* `intExp2` / `intExp10`: 未定義だった動作を明確化:引数が小さすぎる場合は 0 を返し、大きすぎる場合は `18446744073709551615` を返し、`NaN` の場合は例外をスローします。 [#75312](https://github.com/ClickHouse/ClickHouse/pull/75312) ([Vitaly Baranov](https://github.com/vitlibar)). +* `DatabaseIceberg` のカタログ設定で `s3.endpoint` をネイティブにサポートしました。 [#74558](https://github.com/ClickHouse/ClickHouse/issues/74558) をクローズしました。 [#75375](https://github.com/ClickHouse/ClickHouse/pull/75375) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* ユーザーが `SYSTEM DROP REPLICA` を実行する際に十分な権限を持っていない場合、黙って失敗するのではなくエラーを報告するようにしました。 [#75377](https://github.com/ClickHouse/ClickHouse/pull/75377) ([Bharat Nallan](https://github.com/bharatnc)). +* いずれかのシステムログがフラッシュに失敗した回数を示す ProfileEvent を追加しました。 [#75466](https://github.com/ClickHouse/ClickHouse/pull/75466) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 復号および解凍処理に対するチェックと追加のログ出力を追加しました。 [#75471](https://github.com/ClickHouse/ClickHouse/pull/75471) ([Vitaly Baranov](https://github.com/vitlibar)). +* `parseTimeDelta` 関数でマイクロ記号(U+00B5)のサポートを追加しました。これにより、マイクロ記号(U+00B5)とギリシャ文字 μ(U+03BC)の両方がマイクロ秒の有効な表現として認識され、ClickHouse の動作が Go の実装と一致します([time.go を参照](https://github.com/golang/go/blob/ad7b46ee4ac1cee5095d64b01e8cf7fcda8bee5e/src/time/time.go#L983C19-L983C20) および [time/format.go](https://github.com/golang/go/blob/ad7b46ee4ac1cee5095d64b01e8cf7fcda8bee5e/src/time/format.go#L1608-L1609))。 [#75472](https://github.com/ClickHouse/ClickHouse/pull/75472) ([Vitaly Orlov](https://github.com/orloffv))。 +* サーバー側の設定 (`send_settings_to_client`) を、クライアント側の設定 (`apply_settings_from_server`) に置き換えました。この設定は、クライアント側コード(例: INSERT データのパース処理やクエリ出力の整形)が、サーバーの `users.xml` およびユーザープロファイルに定義された設定を使用すべきかどうかを制御します。これを無効にすると、クライアントのコマンドライン、セッション、およびクエリからの設定のみが使用されます。これはネイティブクライアントにのみ適用され(例: HTTP には適用されません)、またクエリ処理の大部分(サーバー側で実行される部分)には適用されない点に注意してください。 [#75478](https://github.com/ClickHouse/ClickHouse/pull/75478) ([Michael Kolupaev](https://github.com/al13n321)). +* 構文エラーに対するエラーメッセージを改善しました。これまでは、クエリが大きすぎて、長さが制限を超えるトークンが非常に長い文字列リテラルだった場合、その非常に長いトークンの 2 つの例に挟まれて、本来の原因に関するメッセージが途中で失われていました。UTF-8 文字を含むクエリがエラーメッセージ内で不正に切り詰められる問題を修正しました。クエリ断片が過剰に引用符で囲まれてしまう問題を修正しました。これにより [#75473](https://github.com/ClickHouse/ClickHouse/issues/75473) がクローズされました。[#75561](https://github.com/ClickHouse/ClickHouse/pull/75561)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* ストレージ `S3(Azure)Queue` に profile events を追加しました。 [#75618](https://github.com/ClickHouse/ClickHouse/pull/75618) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 互換性維持のため、サーバーからクライアントへの設定送信 (`send_settings_to_client=false`) を無効化しました(この機能は、利便性向上のため、後にクライアント側の設定として再実装される予定です)。 [#75648](https://github.com/ClickHouse/ClickHouse/pull/75648) ([Michael Kolupaev](https://github.com/al13n321)). +* バックグラウンドスレッドで定期的に読み取られる複数のソースからの情報を用いて内部メモリトラッカーを補正するための設定 `memory_worker_correct_memory_tracker` を追加しました。 [#75714](https://github.com/ClickHouse/ClickHouse/pull/75714) ([Antonio Andelic](https://github.com/antonio2368)). +* `system.processes` にカラム `normalized_query_hash` を追加しました。注意: `normalizedQueryHash` 関数を使えばその場で容易に計算できますが、今後の変更に備えるために必要です。 [#75756](https://github.com/ClickHouse/ClickHouse/pull/75756) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* `system.tables` をクエリしても、もはや存在しないデータベース上に作成された `Merge` テーブルがあっても例外は発生しません。複雑な処理を行うことを許可していないため、`Hive` テーブルから `getTotalRows` メソッドを削除しました。 [#75772](https://github.com/ClickHouse/ClickHouse/pull/75772) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* バックアップの `start_time` と `end_time` をマイクロ秒単位で保存するようにしました。 [#75929](https://github.com/ClickHouse/ClickHouse/pull/75929) ([Aleksandr Musorin](https://github.com/AVMusorin)). +* RSS による補正が行われない内部グローバルメモリトラッカーの値を示す `MemoryTrackingUncorrected` メトリクスを追加しました。 [#75935](https://github.com/ClickHouse/ClickHouse/pull/75935) ([Antonio Andelic](https://github.com/antonio2368)). +* `PostgreSQL` や `MySQL` のテーブル関数で、`localhost:1234/handle` のようなエンドポイントをパースできるようにしました。これにより、[https://github.com/ClickHouse/ClickHouse/pull/52503](https://github.com/ClickHouse/ClickHouse/pull/52503) で導入されたリグレッション(退行バグ)を修正しました。 [#75944](https://github.com/ClickHouse/ClickHouse/pull/75944) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* サーバー設定 `throw_on_unknown_workload` を追加しました。この設定により、`workload` 設定に未知の値が指定されたクエリに対する動作を選択できます。無制限なアクセスを許可する(デフォルト)か、`RESOURCE_ACCESS_DENIED` エラーをスローするかを切り替えられます。すべてのクエリでワークロードスケジューリングを利用させたい場合に役立ちます。 [#75999](https://github.com/ClickHouse/ClickHouse/pull/75999) ([Sergei Trifonov](https://github.com/serxa))。 +* 不要な場合には、`ARRAY JOIN` 内でサブカラムを `getSubcolumn` に書き換えないようにしました。 [#76018](https://github.com/ClickHouse/ClickHouse/pull/76018) ([Pavel Kruglov](https://github.com/Avogar)). +* テーブル読み込み時のコーディネーションエラーを再試行するようにしました。 [#76020](https://github.com/ClickHouse/ClickHouse/pull/76020) ([Alexander Tokmakov](https://github.com/tavplubix)). +* `SYSTEM FLUSH LOGS` で個々のログをフラッシュできるようになりました。 [#76132](https://github.com/ClickHouse/ClickHouse/pull/76132) ([Raúl Marín](https://github.com/Algunenano)). +* `/binary` サーバーのページを改良しました。Morton 曲線の代わりに Hilbert 曲線を使用します。正方形内に 512 MB 分のアドレスを表示し、これにより正方形全体がより隙間なく埋まるようにしました(以前のバージョンでは、アドレスは正方形の半分しか埋めていませんでした)。アドレスの色付けを、関数名ではなくライブラリ名に基づいて行うようにしました。表示領域外にも、より余裕をもってスクロールできるようにしました。 [#76192](https://github.com/ClickHouse/ClickHouse/pull/76192) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* TOO_MANY_SIMULTANEOUS_QUERIES エラーが発生した場合に、ON CLUSTER クエリを再試行するようにしました。 [#76352](https://github.com/ClickHouse/ClickHouse/pull/76352) ([Patrick Galbraith](https://github.com/CaptTofu)). +* サーバーの CPU の相対的な不足度合いを算出する `CPUOverload` 非同期メトリクスを追加。 [#76404](https://github.com/ClickHouse/ClickHouse/pull/76404) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* `output_format_pretty_max_rows` のデフォルト値を 10000 から 1000 に変更しました。使い勝手の観点から、この方が望ましいと考えています。 [#76407](https://github.com/ClickHouse/ClickHouse/pull/76407) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + +#### バグ修正(公式安定版リリースにおけるユーザーに影響する不具合) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* クエリの解釈中に発生した例外を、クエリで指定されたカスタムフォーマットで整形するよう修正しました。これまでのバージョンでは、例外はクエリで指定されたフォーマットではなくデフォルトフォーマットで整形されていました。これにより [#55422](https://github.com/ClickHouse/ClickHouse/issues/55422) が解決されます。 [#74994](https://github.com/ClickHouse/ClickHouse/pull/74994) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* SQLite の型マッピングを修正し、整数型を `int64`、浮動小数点型を `float64` に対応付け。 [#73853](https://github.com/ClickHouse/ClickHouse/pull/73853) ([Joanna Hulboj](https://github.com/jh0x))。 +* 親スコープからの識別子の解決を修正しました。`WITH` 句内の式に対してエイリアスを使用できるようにしました。[#58994](https://github.com/ClickHouse/ClickHouse/issues/58994) を修正。[#62946](https://github.com/ClickHouse/ClickHouse/issues/62946) を修正。[#63239](https://github.com/ClickHouse/ClickHouse/issues/63239) を修正。[#65233](https://github.com/ClickHouse/ClickHouse/issues/65233) を修正。[#71659](https://github.com/ClickHouse/ClickHouse/issues/71659) を修正。[#71828](https://github.com/ClickHouse/ClickHouse/issues/71828) を修正。[#68749](https://github.com/ClickHouse/ClickHouse/issues/68749) を修正。[#66143](https://github.com/ClickHouse/ClickHouse/pull/66143)([Dmitry Novik](https://github.com/novikd))。 +* `negate` 関数の単調性を修正しました。以前のバージョンでは、`x` が主キーである場合にクエリ `select * from a where -x = -42;` を実行すると、誤った結果が返されることがありました。 [#71440](https://github.com/ClickHouse/ClickHouse/pull/71440) ([Michael Kolupaev](https://github.com/al13n321)). +* arrayIntersect における空のタプルの処理を修正しました。これにより [#72578](https://github.com/ClickHouse/ClickHouse/issues/72578) を修正しています。[#72581](https://github.com/ClickHouse/ClickHouse/pull/72581)([Amos Bird](https://github.com/amosbird))。 +* JSON サブオブジェクトのサブカラムの読み取りで誤ったプレフィックスが使用されていた問題を修正。 [#73182](https://github.com/ClickHouse/ClickHouse/pull/73182) ([Pavel Kruglov](https://github.com/Avogar)). +* クライアントとサーバー間の通信で Native フォーマットの設定が正しく伝播されるように修正しました。 [#73924](https://github.com/ClickHouse/ClickHouse/pull/73924) ([Pavel Kruglov](https://github.com/Avogar)). +* 一部のストレージで未サポートの型を検出するようにしました。 [#74218](https://github.com/ClickHouse/ClickHouse/pull/74218) ([Pavel Kruglov](https://github.com/Avogar))。 +* macOS 上の PostgreSQL インターフェイス経由で実行した `INSERT INTO SELECT` クエリにより発生していたクラッシュを修正しました(issue [#72938](https://github.com/ClickHouse/ClickHouse/issues/72938))。 [#74231](https://github.com/ClickHouse/ClickHouse/pull/74231)([Artem Yurov](https://github.com/ArtemYurov))。 +* レプリケーテッドデータベース内の初期化されていない `max_log_ptr` を修正しました。 [#74336](https://github.com/ClickHouse/ClickHouse/pull/74336) ([Konstantin Morozov](https://github.com/k-morozov)). +* interval 型の挿入時に発生していたクラッシュを修正しました(issue [#74299](https://github.com/ClickHouse/ClickHouse/issues/74299))。[#74478](https://github.com/ClickHouse/ClickHouse/pull/74478)([NamHoaiNguyen](https://github.com/NamHoaiNguyen))。 +* 定数 JSON リテラルの整形処理を修正しました。これまで、別のサーバーにクエリを送信する際に構文エラーが発生する可能性がありました。 [#74533](https://github.com/ClickHouse/ClickHouse/pull/74533) ([Pavel Kruglov](https://github.com/Avogar)). +* 暗黙的な PROJECTION が有効な場合に、定数パーティション式を使用した CREATE クエリが不正になる問題を修正しました。これにより [#74596](https://github.com/ClickHouse/ClickHouse/issues/74596) が修正されます。[#74634](https://github.com/ClickHouse/ClickHouse/pull/74634)([Amos Bird](https://github.com/amosbird))。 +* INSERT が例外で終了した後に、接続が壊れたまま残ることがないようにしました。 [#74740](https://github.com/ClickHouse/ClickHouse/pull/74740) ([Azat Khuzhin](https://github.com/azat)). +* 中間状態のままになっていた接続を再利用しないように修正しました。 [#74749](https://github.com/ClickHouse/ClickHouse/pull/74749) ([Azat Khuzhin](https://github.com/azat)). +* JSON 型宣言をパースする際、型名が大文字でない場合にクラッシュする問題を修正。 [#74784](https://github.com/ClickHouse/ClickHouse/pull/74784) ([Pavel Kruglov](https://github.com/Avogar)). +* Keeper: 接続が確立される前に切断されていた場合に発生する logical_error を修正。 [#74844](https://github.com/ClickHouse/ClickHouse/pull/74844) ([Michael Kolupaev](https://github.com/al13n321)). +* `AzureBlobStorage` を使用しているテーブルが存在する場合にサーバーが起動できない問題を修正しました。テーブルは Azure へのリクエストを送信することなく読み込まれます。 [#74880](https://github.com/ClickHouse/ClickHouse/pull/74880) ([Alexey Katsman](https://github.com/alexkats)). +* BACKUP および RESTORE 操作において、`query_log` 内の `used_privileges` と `missing_privileges` フィールドが記録されない問題を修正。 [#74887](https://github.com/ClickHouse/ClickHouse/pull/74887) ([Alexey Katsman](https://github.com/alexkats)). +* HDFS の select リクエスト中に SASL エラーが発生した場合に Kerberos チケットをリフレッシュするようにしました。 [#74930](https://github.com/ClickHouse/ClickHouse/pull/74930) ([inv2004](https://github.com/inv2004)). +* startup_scripts 内の Replicated データベースへのクエリを修正。 [#74942](https://github.com/ClickHouse/ClickHouse/pull/74942) ([Azat Khuzhin](https://github.com/azat)). +* `JOIN ON` 句で `NULL` セーフな比較が使用されている場合に、型エイリアスが付けられた式に起因する問題を修正しました。 [#74970](https://github.com/ClickHouse/ClickHouse/pull/74970) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* remove 操作が失敗した場合に、part の状態を deleting から outdated にロールバックするようにしました。 [#74985](https://github.com/ClickHouse/ClickHouse/pull/74985) ([Sema Checherinda](https://github.com/CheSema)). +* 以前のバージョンでは、スカラーサブクエリが存在する場合、データフォーマットの初期化中に(サブクエリの処理から蓄積された)進捗の書き込みを開始しており、これは HTTP ヘッダーが書き出される前に行われていました。その結果、X-ClickHouse-QueryId や X-ClickHouse-Format などの HTTP ヘッダーや Content-Type が失われていました。 [#74991](https://github.com/ClickHouse/ClickHouse/pull/74991) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* `database_replicated_allow_replicated_engine_arguments=0` 設定時の `CREATE TABLE AS...` クエリを修正しました。 [#75000](https://github.com/ClickHouse/ClickHouse/pull/75000) ([Bharat Nallan](https://github.com/bharatnc)). +* INSERT 実行時の例外発生後にクライアント側の接続が異常な状態のまま残る問題を修正。 [#75030](https://github.com/ClickHouse/ClickHouse/pull/75030) ([Azat Khuzhin](https://github.com/azat)). +* PSQL レプリケーション中の未捕捉例外により発生していたクラッシュの問題を修正。 [#75062](https://github.com/ClickHouse/ClickHouse/pull/75062) ([Azat Khuzhin](https://github.com/azat))。 +* SASL により任意の RPC 呼び出しが失敗する可能性があり、この修正により、krb5 チケットの有効期限が切れている場合に呼び出しを再実行できるようになりました。 [#75063](https://github.com/ClickHouse/ClickHouse/pull/75063) ([inv2004](https://github.com/inv2004)). +* 設定 `optimize_function_to_subcolumns` が有効な場合の `Array`、`Map`、`Nullable(..)` カラムに対する索引(プライマリおよびセカンダリ)の扱いを修正しました。以前は、これらのカラムに対する索引が無視されることがありました。 [#75081](https://github.com/ClickHouse/ClickHouse/pull/75081) ([Anton Popov](https://github.com/CurtizJ)). +* inner テーブルを持つ materialized view を作成する際には、`flatten_nested` を無効化するようにしました。このようにフラット化されたカラムは使用できないためです。 [#75085](https://github.com/ClickHouse/ClickHouse/pull/75085) ([Christoph Wurm](https://github.com/cwurm))。 +* forwarded_for フィールド内の一部の IPv6 アドレス(::ffff:1.1.1.1 など)が誤って解釈され、その結果、例外とともにクライアント接続が切断される問題を修正。 [#75133](https://github.com/ClickHouse/ClickHouse/pull/75133) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* LowCardinality の Nullable データ型に対する NULL セーフな JOIN の処理を修正しました。以前は、`IS NOT DISTINCT FROM`、`<=>`、`a IS NULL AND b IS NULL OR a == b` のような NULL セーフな比較を伴う JOIN の ON 句が、LowCardinality カラムで正しく動作していませんでした。 [#75143](https://github.com/ClickHouse/ClickHouse/pull/75143) ([Vladimir Cherkasov](https://github.com/vdimir)). +* NumRowsCache の total_number_of_rows をカウントする際に key_condition が指定されていないことを検証するようにしました。 [#75164](https://github.com/ClickHouse/ClickHouse/pull/75164) ([Daniil Ivanik](https://github.com/divanik)). +* 新しいアナライザーで、未使用の補間を含むクエリの問題を修正しました。 [#75173](https://github.com/ClickHouse/ClickHouse/pull/75173) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* INSERT と CTE の併用時にクラッシュを引き起こすバグを修正。 [#75188](https://github.com/ClickHouse/ClickHouse/pull/75188) ([Shichao Jin](https://github.com/jsc0218)). +* Keeper の修正:ログのロールバック時に、破損した changelog に書き込まないようにしました。[#75197](https://github.com/ClickHouse/ClickHouse/pull/75197) ([Antonio Andelic](https://github.com/antonio2368))。 +* 適切な箇所では `BFloat16` をスーパータイプとして使用するようにしました。これにより次の issue がクローズされました: [#74404](https://github.com/ClickHouse/ClickHouse/issues/74404)。[#75236](https://github.com/ClickHouse/ClickHouse/pull/75236)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* any_join_distinct_right_table_keys と JOIN 句の ON 条件での OR を併用した場合に、結合結果で予期しないデフォルト値が発生していた問題を修正。 [#75262](https://github.com/ClickHouse/ClickHouse/pull/75262) ([Vladimir Cherkasov](https://github.com/vdimir)). +* azureblobstorage テーブルエンジンの認証情報をマスクするよう修正しました。 [#75319](https://github.com/ClickHouse/ClickHouse/pull/75319) ([Garrett Thomas](https://github.com/garrettthomaskth)). +* PostgreSQL、MySQL、SQLite などの外部データベースに対して、ClickHouse が誤ってフィルタープッシュダウンを行ってしまうことがある問題を修正しました。これにより、次の issue が解決されました: [#71423](https://github.com/ClickHouse/ClickHouse/issues/71423)。[#75320](https://github.com/ClickHouse/ClickHouse/pull/75320)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* Protobuf 形式での出力中に、並行して `SYSTEM DROP FORMAT SCHEMA CACHE` クエリが実行されると発生しうる Protobuf スキーマキャッシュのクラッシュを修正しました。 [#75357](https://github.com/ClickHouse/ClickHouse/pull/75357) ([Pavel Kruglov](https://github.com/Avogar))。 +* `HAVING` からのフィルタが並列レプリカでプッシュダウンされる場合に発生し得る、論理エラーまたは未初期化メモリ使用の問題を修正しました。 [#75363](https://github.com/ClickHouse/ClickHouse/pull/75363) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* `icebergS3`、`icebergAzure` テーブル関数およびテーブルエンジンで機密情報を非表示にしました。 [#75378](https://github.com/ClickHouse/ClickHouse/pull/75378) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 計算結果として空文字列となるトリム文字を指定した `TRIM` 関数が、正しく処理されるようになりました。例:`SELECT TRIM(LEADING concat('') FROM 'foo')`(Issue [#69922](https://github.com/ClickHouse/ClickHouse/issues/69922))。[#75399](https://github.com/ClickHouse/ClickHouse/pull/75399)([Manish Gill](https://github.com/mgill25))。 +* IOutputFormat のデータレースを修正。 [#75448](https://github.com/ClickHouse/ClickHouse/pull/75448) ([Pavel Kruglov](https://github.com/Avogar))。 +* 分散テーブル上での JOIN で Array 型の JSON サブカラムを使用した際に発生する可能性のある、`Elements ... and ... of Nested data structure ... (Array columns) have different array sizes` というエラーを修正しました。 [#75512](https://github.com/ClickHouse/ClickHouse/pull/75512) ([Pavel Kruglov](https://github.com/Avogar)). +* `CODEC(ZSTD, DoubleDelta)` 使用時に発生するデータ破損を修正しました。[#70031](https://github.com/ClickHouse/ClickHouse/issues/70031) をクローズ。[#75548](https://github.com/ClickHouse/ClickHouse/pull/75548)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* allow_feature_tier と compatibility MergeTree 設定の相互作用を修正しました。 [#75635](https://github.com/ClickHouse/ClickHouse/pull/75635) ([Raúl Marín](https://github.com/Algunenano)). +* ファイルが再試行された際に、system.s3queue_log 内の processed_rows の値が誤って記録される問題を修正。[#75666](https://github.com/ClickHouse/ClickHouse/pull/75666) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* materialized view が URL エンジンに書き込みを行う際に接続障害が発生した場合、`materialized_views_ignore_errors` の設定が正しく適用されるようにしました。 [#75679](https://github.com/ClickHouse/ClickHouse/pull/75679) ([Christoph Wurm](https://github.com/cwurm)). +* 異なる型のカラム間で複数の非同期の `RENAME` クエリ(`alter_sync = 0`)を実行した後に、`MergeTree` テーブルから読み取る際にまれに発生していたクラッシュを修正しました。[#75693](https://github.com/ClickHouse/ClickHouse/pull/75693) ([Anton Popov](https://github.com/CurtizJ))。 +* 一部の `UNION ALL` を含むクエリで発生していた `Block structure mismatch in QueryPipeline stream` エラーを修正。[#75715](https://github.com/ClickHouse/ClickHouse/pull/75715) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* PK カラムを `ALTER MODIFY` した際に、その PK を持つ PROJECTION を再構築するようにしました。以前は、PROJECTION の PK に使用されているカラムを `ALTER MODIFY` した後の `SELECT` 時に `CANNOT_READ_ALL_DATA` エラーが発生する可能性がありました。 [#75720](https://github.com/ClickHouse/ClickHouse/pull/75720) ([Pavel Kruglov](https://github.com/Avogar)). +* スカラーサブクエリに対する `ARRAY JOIN` の結果が analyzer 使用時に誤っていた問題を修正しました。 [#75732](https://github.com/ClickHouse/ClickHouse/pull/75732) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* `DistinctSortedStreamTransform` におけるヌルポインタ参照を修正しました。 [#75734](https://github.com/ClickHouse/ClickHouse/pull/75734) ([Nikita Taranov](https://github.com/nickitat))。 +* `allow_suspicious_ttl_expressions` の挙動を修正しました。 [#75771](https://github.com/ClickHouse/ClickHouse/pull/75771) ([Aleksei Filatov](https://github.com/aalexfvk))。 +* 関数 `translate` における未初期化メモリの読み取りを修正しました。これにより [#75592](https://github.com/ClickHouse/ClickHouse/issues/75592) が解決されました。 [#75794](https://github.com/ClickHouse/ClickHouse/pull/75794) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* Native フォーマットにおいて、JSON 文字列のフォーマットにフォーマット設定が伝播されるようにしました。 [#75832](https://github.com/ClickHouse/ClickHouse/pull/75832) ([Pavel Kruglov](https://github.com/Avogar)). +* v24.12 において結合アルゴリズムとして parallel hash をデフォルトで有効化したことを、設定変更履歴に記録しました。これにより、互換性レベルに v24.12 より古いバージョンが設定されている場合、ClickHouse は引き続き非 parallel hash アルゴリズムを用いて結合を実行します。 [#75870](https://github.com/ClickHouse/ClickHouse/pull/75870) ([Robert Schulze](https://github.com/rschu1ze)). +* 暗黙的に追加された min-max インデックスを持つテーブルを新しいテーブルにコピーできない問題を修正しました(issue [#75677](https://github.com/ClickHouse/ClickHouse/issues/75677))。[#75877](https://github.com/ClickHouse/ClickHouse/pull/75877)([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 +* `clickhouse-library-bridge` はファイルシステムから任意のライブラリを開くことができるため、その性質上、分離された環境内でのみ実行するのが安全です。`clickhouse-server` の近くで実行された際の脆弱性を防ぐため、設定で指定された場所にあるライブラリのみをパスとして許可するよう制限します。この脆弱性は **Arseniy Dugin** によって [ClickHouse Bug Bounty Program](https://github.com/ClickHouse/ClickHouse/issues/38986) を通じて発見されました。[#75954](https://github.com/ClickHouse/ClickHouse/pull/75954)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* いくつかのメタデータのシリアライゼーションに JSON を使用していましたが、これは誤りでした。JSON は、ゼロバイトを含む文字列リテラル内のバイナリデータをサポートしないためです。SQL クエリにはバイナリデータや不正な UTF-8 を含めることができるので、メタデータファイル側でもこれをサポートする必要があります。同時に、ClickHouse の `JSONEachRow` などのフォーマットは、バイナリデータの完全なラウンドトリップを優先し、JSON 標準からあえて逸脱することでこの問題を回避しています。その背景については、こちらを参照してください: [https://github.com/ClickHouse/ClickHouse/pull/73668#issuecomment-2560501790](https://github.com/ClickHouse/ClickHouse/pull/73668#issuecomment-2560501790)。解決策は、`Poco::JSON` ライブラリを ClickHouse における JSON 形式のシリアライゼーションと一貫させることです。これにより [#73668](https://github.com/ClickHouse/ClickHouse/issues/73668) がクローズされます。 [#75963](https://github.com/ClickHouse/ClickHouse/pull/75963) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* ストレージ `S3Queue` におけるコミット上限チェックを修正。 [#76104](https://github.com/ClickHouse/ClickHouse/pull/76104) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* 自動索引(`add_minmax_index_for_numeric_columns`/`add_minmax_index_for_string_columns`)を有効にした MergeTree テーブルの ATTACH を修正。 [#76139](https://github.com/ClickHouse/ClickHouse/pull/76139) ([Azat Khuzhin](https://github.com/azat)). +* ジョブの親スレッドのスタックトレース(`enable_job_stack_trace` 設定)が出力されない問題を修正しました。また、`enable_job_stack_trace` 設定がスレッドに正しく伝播されず、その結果スタックトレースの内容が常にこの設定を反映しない場合がある問題を修正しました。 [#76191](https://github.com/ClickHouse/ClickHouse/pull/76191) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* `ALTER RENAME` に対して誤って `CREATE USER` 権限を要求していた権限チェックを修正しました。[#74372](https://github.com/ClickHouse/ClickHouse/issues/74372) をクローズしました。 [#76241](https://github.com/ClickHouse/ClickHouse/pull/76241)([pufit](https://github.com/pufit))。 +* ビッグエンディアンアーキテクチャ上で FixedString を使用する reinterpretAs を修正。 [#76253](https://github.com/ClickHouse/ClickHouse/pull/76253) ([Azat Khuzhin](https://github.com/azat)). +* S3Queue における論理エラー「Expected current processor {} to be equal to {} for bucket {}」を修正しました。 [#76358](https://github.com/ClickHouse/ClickHouse/pull/76358) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Memory データベースにおける ALTER のデッドロックを修正。 [#76359](https://github.com/ClickHouse/ClickHouse/pull/76359) ([Azat Khuzhin](https://github.com/azat)). +* `WHERE` 句の条件に `pointInPolygon` 関数が含まれている場合の索引解析における論理エラーを修正しました。 [#76360](https://github.com/ClickHouse/ClickHouse/pull/76360) ([Anton Popov](https://github.com/CurtizJ))。 +* シグナルハンドラー内の潜在的に危険な呼び出しを修正。 [#76549](https://github.com/ClickHouse/ClickHouse/pull/76549) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* PartsSplitter における逆順キーのサポートを修正しました。これにより [#73400](https://github.com/ClickHouse/ClickHouse/issues/73400) が修正されました。[#73418](https://github.com/ClickHouse/ClickHouse/pull/73418) ([Amos Bird](https://github.com/amosbird))。 + +#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement} + +* ARM および Intel Mac の両方で HDFS のビルドをサポート。[#74244](https://github.com/ClickHouse/ClickHouse/pull/74244) ([Yan Xin](https://github.com/yxheartipp)). +* Darwin 向けクロスコンパイル時に ICU と GRPC を有効化。[#75922](https://github.com/ClickHouse/ClickHouse/pull/75922) ([Raúl Marín](https://github.com/Algunenano)). +* 組み込み LLVM をバージョン 19 に更新。[#75148](https://github.com/ClickHouse/ClickHouse/pull/75148) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Docker イメージでデフォルトユーザーのネットワークアクセスを無効化。[#75259](https://github.com/ClickHouse/ClickHouse/pull/75259) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). すべての clickhouse-server 関連の処理を 1 つの関数にまとめ、`entrypoint.sh` でデフォルトバイナリを起動する場合にのみ実行されるように変更。長らく先送りされていた改善で、[#50724](https://github.com/ClickHouse/ClickHouse/issues/50724) で提案されていたもの。`users.xml` から値を取得するためのスイッチ `--users` を `clickhouse-extract-from-config` に追加。[#75643](https://github.com/ClickHouse/ClickHouse/pull/75643) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* バイナリから約 20 MB のデッドコードを削除。[#76226](https://github.com/ClickHouse/ClickHouse/pull/76226) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + +### ClickHouse 25.1 リリース, 2025-01-28 {#251} + +#### 下位互換性のない変更 {#backward-incompatible-change} + +* `JSONEachRowWithProgress` は、進捗が発生するたびに進捗情報を書き出すようになりました。以前のバージョンでは、進捗は結果の各ブロックごとにしか表示されず、ほとんど役に立ちませんでした。進捗の表示方法を変更し、ゼロ値は表示しないようにしました。これにより [#70800](https://github.com/ClickHouse/ClickHouse/issues/70800) が解決されました。 [#73834](https://github.com/ClickHouse/ClickHouse/pull/73834) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* `Merge` テーブルは、基になるテーブル群の構造を、それらのカラムの和集合を取り、共通の型を導出することで統一するようになりました。これにより [#64864](https://github.com/ClickHouse/ClickHouse/issues/64864) が解決されました。特定のケースでは、この変更は下位互換性がない可能性があります。一例として、テーブル間に共通の型が存在しないが、先頭のテーブルの型への変換は依然として可能なケースが挙げられます(UInt64 と Int64、あるいは任意の数値型と String の組み合わせなど)。以前の挙動に戻したい場合は、`merge_table_max_tables_to_look_for_schema_inference` を `1` に設定するか、`compatibility` を `24.12` 以前に設定してください。 [#73956](https://github.com/ClickHouse/ClickHouse/pull/73956) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Parquet 出力フォーマットは、Date および DateTime カラムを、生の数値として書き出すのではなく、Parquet がサポートする日付/時刻型に変換するようになりました。`DateTime` は `DateTime64(3)`(以前は `UInt32`)になりました。`output_format_parquet_datetime_as_uint32` を設定すると、以前の挙動に戻せます。`Date` は `Date32`(以前は `UInt16`)になります。 [#70950](https://github.com/ClickHouse/ClickHouse/pull/70950) ([Michael Kolupaev](https://github.com/al13n321)). +* 既定では、`ORDER BY` および `less/greater/equal/etc` といった比較関数で、`JSON` / `Object` / `AggregateFunction` のような比較不能な型は許可されなくなりました。 [#73276](https://github.com/ClickHouse/ClickHouse/pull/73276) ([Pavel Kruglov](https://github.com/Avogar)). +* 廃止予定だった `MaterializedMySQL` データベースエンジンは削除され、利用できなくなりました。 [#73879](https://github.com/ClickHouse/ClickHouse/pull/73879) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* `mysql` dictionary ソースは、もはや `SHOW TABLE STATUS` クエリを実行しなくなりました。これは、最近の MySQL バージョンおよび InnoDB テーブルでは、このクエリが何の有用な情報も提供しないためです。これにより [#72636](https://github.com/ClickHouse/ClickHouse/issues/72636) が解決されました。この変更は下位互換性がありますが、気付いてもらえるようにこのカテゴリに含めています。 [#73914](https://github.com/ClickHouse/ClickHouse/pull/73914) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* `CHECK TABLE` クエリには、新たに個別の `CHECK` 権限が必要になりました。以前のバージョンでは、これらのクエリを実行するには `SHOW TABLES` 権限だけで十分でした。しかし、`CHECK TABLE` クエリは高負荷になり得るうえ、`SELECT` クエリ向けの通常のクエリ複雑性制限はこれには適用されませんでした。そのため、DoS の可能性につながっていました。 [#74471](https://github.com/ClickHouse/ClickHouse/pull/74471) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 関数 `h3ToGeo()` は、結果を(幾何関数における標準的な順序である)`(lat, lon)` の順で返すようになりました。従来の `(lon, lat)` の結果順序を維持したいユーザーは、`h3togeo_lon_lat_result_order = true` を設定してください。 [#74719](https://github.com/ClickHouse/ClickHouse/pull/74719) ([Manish Gill](https://github.com/mgill25)). +* 新しい MongoDB ドライバーがデフォルトになりました。従来のドライバーを引き続き使用したいユーザーは、サーバー設定 `use_legacy_mongodb_integration` を true に設定してください。 [#73359](https://github.com/ClickHouse/ClickHouse/pull/73359) ([Robert Schulze](https://github.com/rschu1ze)). + +#### 新機能 {#new-feature} + +* `SELECT` クエリ送信直後、その実行中に、未完了(バックグラウンドプロセスでまだマテリアライズされていない)のミューテーションを即時に適用できるようになりました。`apply_mutations_on_fly` を設定することで有効化できます。 [#74877](https://github.com/ClickHouse/ClickHouse/pull/74877) ([Anton Popov](https://github.com/CurtizJ)). +* `Iceberg` テーブルで、時間ベースの変換パーティション操作に対するパーティションプルーニングを実装しました。 [#72044](https://github.com/ClickHouse/ClickHouse/pull/72044) ([Daniil Ivanik](https://github.com/divanik))。 +* MergeTree のソートキーおよびスキップ索引でサブカラムをサポートしました。 [#72644](https://github.com/ClickHouse/ClickHouse/pull/72644) ([Pavel Kruglov](https://github.com/Avogar)). +* `Apache Arrow`/`Parquet`/`ORC` からの `HALF_FLOAT` 値の読み取りをサポートしました(`Float32` として読み込みます)。これにより [#72960](https://github.com/ClickHouse/ClickHouse/issues/72960) がクローズされました。IEEE-754 の half float は `BFloat16` と同じではないことに注意してください。[#73835](https://github.com/ClickHouse/ClickHouse/issues/73835) をクローズしました。[#73836](https://github.com/ClickHouse/ClickHouse/pull/73836)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `system.trace_log` テーブルに、シンボル化されたスタックトレースを格納する 2 つの新しいカラム `symbols` と `lines` が追加されます。これにより、プロファイル情報の収集とエクスポートが容易になります。これは `trace_log` 内のサーバー設定値 `symbolize` によって制御され、デフォルトで有効になっています。 [#73896](https://github.com/ClickHouse/ClickHouse/pull/73896) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* テーブル内でオートインクリメントの連番を生成するために使用できる新しい関数 `generateSerialID` を追加しました。[kazalika](https://github.com/kazalika) による [#64310](https://github.com/ClickHouse/ClickHouse/issues/64310) の継続対応です。これにより [#62485](https://github.com/ClickHouse/ClickHouse/issues/62485) がクローズされました。[#73950](https://github.com/ClickHouse/ClickHouse/pull/73950)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* DDL クエリに対して、`query1 PARALLEL WITH query2 PARALLEL WITH query3 ... PARALLEL WITH queryN` という構文を追加しました。これは、クエリ `{query1, query2, ... queryN}` を互いに並列実行できる(かつ、その方が望ましい)ことを意味します。[#73983](https://github.com/ClickHouse/ClickHouse/pull/73983)([Vitaly Baranov](https://github.com/vitlibar))。 +* デシリアライズ済みのスキッピング索引グラニュール用のインメモリキャッシュを追加しました。これにより、スキッピング索引を使用する繰り返しクエリの実行が高速化されます。新しいキャッシュのサイズは、サーバー設定 `skipping_index_cache_size` と `skipping_index_cache_max_entries` によって制御されます。このキャッシュ追加の主な動機はベクトル類似度索引であり、これらは今回の変更によって大幅に高速化されました。 [#70102](https://github.com/ClickHouse/ClickHouse/pull/70102) ([Robert Schulze](https://github.com/rschu1ze)). +* 現在、組み込みの Web UI では、クエリ実行中に進行状況バーが表示されます。そこからクエリをキャンセルできます。合計レコード数と、速度に関する詳細な情報を表示します。データが到着し次第、テーブルをインクリメンタルにレンダリングできます。HTTP 圧縮を有効化しました。テーブルのレンダリングが高速になりました。テーブルヘッダーが固定表示(スティッキー)になりました。セルを選択し、矢印キーで移動できるようになりました。選択したセルのアウトラインによってセルが小さくなってしまう問題を修正しました。セルはマウスホバーでは拡大されず、選択時のみ拡大されるようになりました。受信データのレンダリングをいつ停止するかの判断は、サーバー側ではなくクライアント側で行われます。数値の桁区切りをハイライト表示します。全体的なデザインが刷新され、より大胆になりました。サーバーへ到達可能かどうかと認証情報の正しさを確認し、サーバーバージョンと稼働時間を表示します。クラウドアイコンは、Safari を含むあらゆるフォントで輪郭表示されます。ネストされたデータ型内の大きな整数も、より適切にレンダリングされます。inf/nan を正しく表示します。カラムヘッダーにマウスオーバーすると、そのデータ型を表示します。 [#74204](https://github.com/ClickHouse/ClickHouse/pull/74204) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* MergeTree によって管理されるカラムに対して、設定 `add_minmax_index_for_numeric_columns`(数値カラム用)および `add_minmax_index_for_string_columns`(文字列カラム用)を使用し、デフォルトで min-max(スキップ)索引を作成できる機能を追加しました。現時点ではどちらの設定も無効化されているため、まだ動作の変更はありません。 [#74266](https://github.com/ClickHouse/ClickHouse/pull/74266) ([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 +* `system.query_log`、ネイティブプロトコルの ClientInfo、およびサーバーログに `script_query_number` と `script_line_number` フィールドを追加しました。これにより [#67542](https://github.com/ClickHouse/ClickHouse/issues/67542) がクローズされました。この機能の立ち上げに先立って貢献した [#68133](https://github.com/ClickHouse/ClickHouse/issues/68133) での [pinsvin00](https://github.com/pinsvin00) の働きに感謝します。 [#74477](https://github.com/ClickHouse/ClickHouse/pull/74477)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* パターン内の最長のイベントチェーンに対して、一致したイベントのタイムスタンプを返す集約関数 `sequenceMatchEvents` を追加しました。 [#72349](https://github.com/ClickHouse/ClickHouse/pull/72349) ([UnamedRus](https://github.com/UnamedRus))。 +* 関数 `arrayNormalizedGini` を追加。 [#72823](https://github.com/ClickHouse/ClickHouse/pull/72823) ([flynn](https://github.com/ucasfl))。 +* `DateTime64` に対するマイナス演算子のサポートを追加し、`DateTime64` 同士および `DateTime` との減算を可能にしました。 [#74482](https://github.com/ClickHouse/ClickHouse/pull/74482) ([Li Yin](https://github.com/liyinsg))。 + +#### 実験的機能 {#experimental-features} + +* `BFloat16` データ型が本番利用可能になりました。 [#73840](https://github.com/ClickHouse/ClickHouse/pull/73840) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + +#### パフォーマンスの向上 {#performance-improvement} + +* 関数 `indexHint` を最適化しました。これにより、関数 `indexHint` の引数としてのみ使用されているカラムはテーブルから読み出されなくなりました。 [#74314](https://github.com/ClickHouse/ClickHouse/pull/74314) ([Anton Popov](https://github.com/CurtizJ))。もし `indexHint` 関数がエンタープライズ向けデータアーキテクチャの中核を成しているのであれば、この最適化は大きな助けになるでしょう。 +* `parallel_hash` JOIN アルゴリズムに対する `max_joined_block_size_rows` 設定の計算をより正確にしました。これにより、`hash` アルゴリズムと比較してメモリ消費量が増加してしまうことを避けられます。[#74630](https://github.com/ClickHouse/ClickHouse/pull/74630)([Nikita Taranov](https://github.com/nickitat))。 +* `MergingAggregated` ステップに対して、クエリプランレベルでの述語プッシュダウン最適化をサポートしました。これにより、`analyzer` を使用する一部のクエリのパフォーマンスが向上します。[#74073](https://github.com/ClickHouse/ClickHouse/pull/74073) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* `parallel_hash` JOIN アルゴリズムの probe フェーズから、左テーブルのブロックをハッシュで分割する処理が削除されました。 [#73089](https://github.com/ClickHouse/ClickHouse/pull/73089) ([Nikita Taranov](https://github.com/nickitat)). +* RowBinary 入力形式を最適化。[#63805](https://github.com/ClickHouse/ClickHouse/issues/63805) をクローズしました。[#65059](https://github.com/ClickHouse/ClickHouse/pull/65059)([Pavel Kruglov](https://github.com/Avogar))。 +* `optimize_on_insert` が有効な場合、レベル 1 のパーツとして書き込みます。これにより、新しく書き込まれたパーツに対する `FINAL` 付きクエリに複数の最適化を適用できるようになります。 [#73132](https://github.com/ClickHouse/ClickHouse/pull/73132) ([Anton Popov](https://github.com/CurtizJ))。 +* 一部の低レベルな最適化により、文字列のデシリアライズ処理を高速化しました。 [#65948](https://github.com/ClickHouse/ClickHouse/pull/65948) ([Nikita Taranov](https://github.com/nickitat)). +* マージ処理などでレコード間の等値比較を行う際、まず値が異なる可能性が最も高いカラムから行の比較を開始するようにしました。 [#63780](https://github.com/ClickHouse/ClickHouse/pull/63780) ([UnamedRus](https://github.com/UnamedRus)). +* 右側の結合テーブルをキーで再ランク付けし、grace hash join のパフォーマンスを向上。 [#72237](https://github.com/ClickHouse/ClickHouse/pull/72237) ([kevinyhzou](https://github.com/KevinyhZou)). +* `arrayROCAUC` と `arrayAUCPR` が曲線全体に対する部分面積を計算できるようにし、その計算を巨大なデータセットに対して並列化できるようにしました。 [#72904](https://github.com/ClickHouse/ClickHouse/pull/72904) ([Emmanuel](https://github.com/emmanuelsdias)). +* 多数のアイドル状態のスレッドを生成しないようにしました。 [#72920](https://github.com/ClickHouse/ClickHouse/pull/72920) ([Guo Wangyang](https://github.com/guowangy)). +* テーブル関数で波括弧による展開のみを行う場合には、BLOB ストレージのキーを列挙しないようにしました。[#73333](https://github.com/ClickHouse/ClickHouse/issues/73333) をクローズしました。[#73518](https://github.com/ClickHouse/ClickHouse/pull/73518) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Nullable 引数に対して実行される関数の短絡評価を最適化。 [#73820](https://github.com/ClickHouse/ClickHouse/pull/73820) ([李扬](https://github.com/taiyang-li)). +* 非関数カラムには `maskedExecute` を適用しないようにし、ショートサーキット実行のパフォーマンスを改善しました。 [#73965](https://github.com/ClickHouse/ClickHouse/pull/73965) ([lgbo](https://github.com/lgbo-ustc)). +* `Kafka`/`NATS`/`RabbitMQ`/`FileLog` の入力フォーマットでのヘッダー自動検出を無効化し、パフォーマンスを向上させました。 [#74006](https://github.com/ClickHouse/ClickHouse/pull/74006) ([Azat Khuzhin](https://github.com/azat))。 +* `GROUPING SETS` を用いた集計の後に、より高い並列度でパイプラインを実行するようにしました。 [#74082](https://github.com/ClickHouse/ClickHouse/pull/74082) ([Nikita Taranov](https://github.com/nickitat)). +* `MergeTreeReadPool` におけるクリティカルセクションの範囲を縮小しました。 [#74202](https://github.com/ClickHouse/ClickHouse/pull/74202) ([Guo Wangyang](https://github.com/guowangy)). +* Parallel replicas のパフォーマンスを改善しました。parallel replicas プロトコルに関係しないパケットについては、クエリのイニシエーター側でのデシリアライズが、常にパイプラインスレッド内で行われるようになりました。以前は、パイプラインのスケジューリングを担当するスレッドで実行されることがあり、その結果、イニシエーターの応答性が低下し、パイプライン実行が遅延する可能性がありました。[#74398](https://github.com/ClickHouse/ClickHouse/pull/74398) ([Igor Nikonov](https://github.com/devcrafter))。 +* Keeper における大規模な複数リクエストのパフォーマンスを改善。 [#74849](https://github.com/ClickHouse/ClickHouse/pull/74849) ([Antonio Andelic](https://github.com/antonio2368))。 +* ログラッパーを値として扱い、ヒープに割り当てないようにしました。 [#74034](https://github.com/ClickHouse/ClickHouse/pull/74034) ([Mikhail Artemenko](https://github.com/Michicosun)). +* MySQL および Postgres の Dictionary レプリカへの接続をバックグラウンドで再接続し、対応する Dictionary へのリクエストが遅延しないようにしました。 [#71101](https://github.com/ClickHouse/ClickHouse/pull/71101) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Parallel replicas 機能では、レプリカ選択を改善するためにレプリカの可用性に関する過去の情報を利用していましたが、接続できない場合にレプリカのエラー数が更新されていませんでした。この PR により、レプリカが利用不能な場合にはエラー数が更新されるようになりました。 [#72666](https://github.com/ClickHouse/ClickHouse/pull/72666) ([zoomxi](https://github.com/zoomxi))。 +* マージ処理中にスキップ索引の作成を抑制する MergeTree の設定 `materialize_skip_indexes_on_merge` を追加しました。これにより、スキップ索引がいつ作成されるかを `ALTER TABLE [..] MATERIALIZE INDEX [...]` を通じて明示的に制御できます。スキップ索引の構築コストが高い場合(例: ベクター類似度索引)に有用です。 [#74401](https://github.com/ClickHouse/ClickHouse/pull/74401) ([Robert Schulze](https://github.com/rschu1ze))。 +* Storage(S3/Azure)Queue における Keeper へのリクエストを最適化しました。 [#74410](https://github.com/ClickHouse/ClickHouse/pull/74410) ([Kseniia Sumarokova](https://github.com/kssenii)). [#74538](https://github.com/ClickHouse/ClickHouse/pull/74538) ([Kseniia Sumarokova](https://github.com/kssenii)). +* デフォルトで並列レプリカを最大 `1000` 個まで使用可能になりました。 [#74504](https://github.com/ClickHouse/ClickHouse/pull/74504) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* S3 ディスクからの読み取り時の HTTP セッション再利用を改善 ([#72401](https://github.com/ClickHouse/ClickHouse/issues/72401))。 [#74548](https://github.com/ClickHouse/ClickHouse/pull/74548) ([Julian Maicher](https://github.com/jmaicher))。 + +#### 改良 {#improvement} + +* 暗黙的な ENGINE を持つ CREATE TABLE クエリで SETTINGS が利用可能になり、ENGINE の設定とクエリ設定を混在して指定できるようになりました。 [#73120](https://github.com/ClickHouse/ClickHouse/pull/73120) ([Raúl Marín](https://github.com/Algunenano)). +* `use_hive_partitioning` をデフォルトで有効にします。 [#71636](https://github.com/ClickHouse/ClickHouse/pull/71636) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 異なるパラメータを持つ JSON 型間での CAST および ALTER をサポートしました。 [#72303](https://github.com/ClickHouse/ClickHouse/pull/72303) ([Pavel Kruglov](https://github.com/Avogar)). +* JSONカラム値の等値比較をサポートしました。 [#72991](https://github.com/ClickHouse/ClickHouse/pull/72991) ([Pavel Kruglov](https://github.com/Avogar)). +* JSON サブカラムを含む識別子のフォーマットを改善し、不要なバッククォートが付かないようにしました。 [#73085](https://github.com/ClickHouse/ClickHouse/pull/73085) ([Pavel Kruglov](https://github.com/Avogar)). +* インタラクティブなメトリクス表示を改善しました。並列レプリカからのメトリクスがすべて表示されない不具合を修正しました。メトリクスは最新の更新時刻が新しい順、その後名前の辞書順で表示します。古くなったメトリクス(stale)は表示しません。 [#71631](https://github.com/ClickHouse/ClickHouse/pull/71631) ([Julia Kartseva](https://github.com/jkartseva)). +* JSON 出力フォーマットをデフォルトで整形表示するようにしました。これを制御するための新しい設定 `output_format_json_pretty_print` を追加し、デフォルトで有効化しました。 [#72148](https://github.com/ClickHouse/ClickHouse/pull/72148) ([Pavel Kruglov](https://github.com/Avogar)). +* `LowCardinality(UUID)` をデフォルトで許可するようにしました。これは ClickHouse Cloud のお客様の間で実用的であることが確認されています。 [#73826](https://github.com/ClickHouse/ClickHouse/pull/73826) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* インストール中のメッセージを改善しました。 [#73827](https://github.com/ClickHouse/ClickHouse/pull/73827) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* ClickHouse Cloud のパスワードリセット時のメッセージを改善。 [#73831](https://github.com/ClickHouse/ClickHouse/pull/73831) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* ファイルへの追記を行えない File テーブルのエラーメッセージを改善。 [#73832](https://github.com/ClickHouse/ClickHouse/pull/73832) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* ユーザーが誤ってターミナルでバイナリ形式(Native、Parquet、Avro など)の出力を要求した場合に、確認を求めるようにしました。これにより [#59524](https://github.com/ClickHouse/ClickHouse/issues/59524) がクローズされました。 [#73833](https://github.com/ClickHouse/ClickHouse/pull/73833)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* ターミナル上での可読性を高めるため、Pretty および Vertical フォーマットで末尾の空白をハイライト表示するようにしました。この動作は `output_format_pretty_highlight_trailing_spaces` 設定で制御されます。最初の実装は [#72996](https://github.com/ClickHouse/ClickHouse/issues/72996) にて [Braden Burns](https://github.com/bradenburns) によって行われました。[#71590](https://github.com/ClickHouse/ClickHouse/issues/71590) をクローズします。[#73847](https://github.com/ClickHouse/ClickHouse/pull/73847)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `clickhouse-client` と `clickhouse-local` は、標準入力がファイルからリダイレクトされている場合、その圧縮形式を自動検出します。これにより [#70865](https://github.com/ClickHouse/ClickHouse/issues/70865) がクローズされました。[#73848](https://github.com/ClickHouse/ClickHouse/pull/73848)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* Pretty 形式では、長すぎるカラム名をデフォルトで切り詰めるようにしました。これは `output_format_pretty_max_column_name_width_cut_to` と `output_format_pretty_max_column_name_width_min_chars_to_cut` の設定で制御できます。これは [#66502](https://github.com/ClickHouse/ClickHouse/issues/66502) における [tanmaydatta](https://github.com/tanmaydatta) の作業の継続です。[#65968](https://github.com/ClickHouse/ClickHouse/issues/65968) をクローズします。[#73851](https://github.com/ClickHouse/ClickHouse/pull/73851)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `Pretty` フォーマットをさらに見やすくしました。直前のブロックの出力からあまり時間が経っていない場合は、ブロックをまとめて表示します。これは新しい設定 `output_format_pretty_squash_consecutive_ms`(デフォルト 50 ms)および `output_format_pretty_squash_max_wait_ms`(デフォルト 1000 ms)で制御されます。[#49537](https://github.com/ClickHouse/ClickHouse/issues/49537) の継続です。この変更により [#49153](https://github.com/ClickHouse/ClickHouse/issues/49153) がクローズされました。[#73852](https://github.com/ClickHouse/ClickHouse/pull/73852)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 現在マージ中のソースパーツ数を示すメトリクスを追加しました。これにより [#70809](https://github.com/ClickHouse/ClickHouse/issues/70809) がクローズされました。 [#73868](https://github.com/ClickHouse/ClickHouse/pull/73868) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 出力先がターミナルの場合、`Vertical` フォーマットでカラムをハイライト表示します。これは `output_format_pretty_color` 設定で無効化できます。 [#73898](https://github.com/ClickHouse/ClickHouse/pull/73898) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* MySQL 互換性を拡張し、`mysqlsh`(Oracle 製の高機能な MySQL CLI)が ClickHouse に接続できるレベルまで高まりました。これはテストの実施を容易にするために必要な改善です。 [#73912](https://github.com/ClickHouse/ClickHouse/pull/73912) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Pretty フォーマットで、テーブルセル内に複数行のフィールドを描画できるようになり、可読性が向上します。これはデフォルトで有効になっており、`output_format_pretty_multiline_fields` 設定で制御できます。[#64094](https://github.com/ClickHouse/ClickHouse/issues/64094) における [Volodyachan](https://github.com/Volodyachan) の作業の継続です。この変更により [#56912](https://github.com/ClickHouse/ClickHouse/issues/56912) がクローズされました。[#74032](https://github.com/ClickHouse/ClickHouse/pull/74032)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* ブラウザー上で動作する JavaScript から `X-ClickHouse` HTTP ヘッダーを参照できるようにしました。これによりアプリケーションの開発がより容易になります。 [#74180](https://github.com/ClickHouse/ClickHouse/pull/74180) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* `JSONEachRowWithProgress` フォーマットには、メタデータ付きのイベントに加えて、合計値および極値も含まれるようになりました。さらに、`rows_before_limit_at_least` と `rows_before_aggregation` も含まれます。このフォーマットは、部分的な結果の後に例外が発生した場合でも、例外を正しく出力します。進捗情報には経過ナノ秒が含まれるようになりました。終了時に最終の進捗イベントが 1 回発行されます。クエリ実行中の進捗情報は、`interactive_delay` 設定の値より高い頻度では出力されません。 [#74181](https://github.com/ClickHouse/ClickHouse/pull/74181) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* Play UI 上で砂時計アイコンがスムーズに回転するようになりました。 [#74182](https://github.com/ClickHouse/ClickHouse/pull/74182) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* HTTP レスポンスが圧縮されている場合でも、パケットは到着し次第すぐに送信します。これにより、ブラウザは進捗通知用のパケットと圧縮データの両方を受信できるようになります。 [#74201](https://github.com/ClickHouse/ClickHouse/pull/74201) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 出力レコード数が N = `output_format_pretty_max_rows` を超える場合、先頭の N 行だけを表示する代わりに、出力テーブルを途中で分割し、先頭から N/2 行と末尾から N/2 行を表示します。[#64200](https://github.com/ClickHouse/ClickHouse/issues/64200) の継続です。これにより [#59502](https://github.com/ClickHouse/ClickHouse/issues/59502) がクローズされます。[#73929](https://github.com/ClickHouse/ClickHouse/pull/73929)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* ハッシュ結合アルゴリズムが有効な場合に、より汎用的な結合計画アルゴリズムを使用可能にしました。 [#71926](https://github.com/ClickHouse/ClickHouse/pull/71926) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 +* `DateTime64` 型カラムに対して bloom_filter インデックスを作成できるようになりました。 [#66416](https://github.com/ClickHouse/ClickHouse/pull/66416) ([Yutong Xiao](https://github.com/YutSean)). +* `min_age_to_force_merge_seconds` と `min_age_to_force_merge_on_partition_only` が両方とも有効な場合、パーツのマージ処理は最大バイト数制限を無視します。 [#73656](https://github.com/ClickHouse/ClickHouse/pull/73656) ([Kai Zhu](https://github.com/nauu))。 +* トレーサビリティ向上のために、OpenTelemetry スパンログテーブルに HTTP ヘッダーを追加しました。[#70516](https://github.com/ClickHouse/ClickHouse/pull/70516) ([jonymohajanGmail](https://github.com/jonymohajanGmail))。 +* `orc` 形式のファイルを書き込む際に、常に `GMT` タイムゾーンではなく、任意のタイムゾーンを指定して使用できるようにしました。 [#70615](https://github.com/ClickHouse/ClickHouse/pull/70615) ([kevinyhzou](https://github.com/KevinyhZou)). +* クラウド間でバックアップを書き込む際に、I/O スケジューリング設定を考慮するようにしました。 [#71093](https://github.com/ClickHouse/ClickHouse/pull/71093) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* `system.asynchronous_metrics` に `metric` カラムのエイリアスである `name` を追加。 [#71164](https://github.com/ClickHouse/ClickHouse/pull/71164) ([megao](https://github.com/jetgm)). +* 歴史的な理由により、クエリ `ALTER TABLE MOVE PARTITION TO TABLE` は専用の `ALTER_MOVE_PARTITION` 権限ではなく、`SELECT` と `ALTER DELETE` 権限をチェックしていました。この PR で、このアクセス種別を利用するようにしました。互換性のため、`SELECT` と `ALTER DELETE` が付与されている場合には、この権限も暗黙的に付与されますが、この動作は将来のリリースで廃止される予定です。[#16403](https://github.com/ClickHouse/ClickHouse/issues/16403) をクローズしました。[#71632](https://github.com/ClickHouse/ClickHouse/pull/71632)([pufit](https://github.com/pufit))。 +* ソートキー内のカラムをマテリアライズしようとした際にソート順が乱れてしまうのを許容するのではなく、例外をスローするようにしました。 [#71891](https://github.com/ClickHouse/ClickHouse/pull/71891) ([Peter Nguyen](https://github.com/petern48)). +* `EXPLAIN QUERY TREE` にシークレットを表示しないようにしました。[#72025](https://github.com/ClickHouse/ClickHouse/pull/72025) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* "native" リーダーで Parquet の整数論理型をサポートしました。 [#72105](https://github.com/ClickHouse/ClickHouse/pull/72105) ([Arthur Passos](https://github.com/arthurpassos)). +* デフォルトユーザーにパスワードが必要な場合、ブラウザーで対話的に認証情報を要求するようにしました。以前のバージョンではサーバーは HTTP 403 を返していましたが、現在では HTTP 401 を返します。 [#72198](https://github.com/ClickHouse/ClickHouse/pull/72198) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* アクセス種別 `CREATE_USER`、`ALTER_USER`、`DROP_USER`、`CREATE_ROLE`、`ALTER_ROLE`、`DROP_ROLE` をグローバルなものからパラメーター付きのものに変更しました。これにより、アクセス管理に関する権限を、より細かい粒度で付与できるようになりました。[#72246](https://github.com/ClickHouse/ClickHouse/pull/72246) ([pufit](https://github.com/pufit))。 +* `system.mutations` に `latest_fail_error_code_name` カラムを追加しました。スタックした mutation に関する新しいメトリクスを導入し、クラウドで発生したエラーのグラフを構築するためにこのカラムが必要です。また、必要に応じて、ノイズの少ない新しいアラートを追加できるようにします。 [#72398](https://github.com/ClickHouse/ClickHouse/pull/72398) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* `ATTACH PARTITION` クエリでのメモリアロケーション量を削減しました。 [#72583](https://github.com/ClickHouse/ClickHouse/pull/72583) ([Konstantin Morozov](https://github.com/k-morozov)). +* `max_bytes_before_external_sort` の制限がクエリ全体のメモリ消費量に依存するように変更しました(以前は 1 つのソートスレッドあたりのソートブロック内のバイト数を基準としていましたが、現在は `max_bytes_before_external_group_by` と同じ意味を持ち、全スレッドを通したクエリ全体のメモリ使用量に対する総量制限となります)。さらに、ディスク上のブロックサイズを制御するための設定 `min_external_sort_block_bytes` を追加しました。 [#72598](https://github.com/ClickHouse/ClickHouse/pull/72598) ([Azat Khuzhin](https://github.com/azat))。 +* trace collector が課すメモリ制限を無視するようにしました。 [#72606](https://github.com/ClickHouse/ClickHouse/pull/72606) ([Azat Khuzhin](https://github.com/azat)). +* サーバー設定 `dictionaries_lazy_load` と `wait_dictionaries_load_at_startup` を `system.server_settings` に追加しました [#72664](https://github.com/ClickHouse/ClickHouse/pull/72664) ([Christoph Wurm](https://github.com/cwurm))。 +* `BACKUP`/`RESTORE` クエリの一部として指定できる設定の一覧に `max_backup_bandwidth` を追加しました。 [#72665](https://github.com/ClickHouse/ClickHouse/pull/72665) ([Christoph Wurm](https://github.com/cwurm))。 +* ReplicatedMergeTree エンジンで出現するレプリカパーツに対するログレベルを引き下げ、レプリケーション構成のクラスターで生成されるログ量を抑えました。 [#72876](https://github.com/ClickHouse/ClickHouse/pull/72876) ([mor-akamai](https://github.com/morkalfon)). +* 選言(OR 条件)における共通式の抽出を改善しました。すべての選言項に共通部分式が存在しない場合でも、結果のフィルタ式を簡略化できるようにしました。[#71537](https://github.com/ClickHouse/ClickHouse/issues/71537) の継続です。[#73271](https://github.com/ClickHouse/ClickHouse/pull/73271) ([Dmitry Novik](https://github.com/novikd))。 +* ストレージ `S3Queue`/`AzureQueue` において、設定を指定せずに作成されたテーブルにも設定を追加できるようになりました。 [#73283](https://github.com/ClickHouse/ClickHouse/pull/73283) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `least` および `greatest` 関数が `NULL` 引数を、常に `NULL` を返して処理するか(`true` の場合)、無視して処理するか(`false` の場合)を制御する設定 `least_greatest_legacy_null_behavior`(デフォルト: `false`)を導入しました。 [#73344](https://github.com/ClickHouse/ClickHouse/pull/73344) ([Robert Schulze](https://github.com/rschu1ze)). +* ObjectStorageQueueMetadata のクリーンアップスレッドで Keeper のマルチリクエストを使用するようになりました。 [#73357](https://github.com/ClickHouse/ClickHouse/pull/73357) ([Antonio Andelic](https://github.com/antonio2368))。 +* ClickHouse が cgroup の制御下で実行されている場合でも、システム負荷、プロセススケジューリング、メモリなどに関連するシステム全体の非同期メトリクスを引き続き収集します。これらは、ClickHouse がホスト上で多くのリソースを消費している唯一のプロセスである場合に、有用な指標となる可能性があります。 [#73369](https://github.com/ClickHouse/ClickHouse/pull/73369) ([Nikita Taranov](https://github.com/nickitat))。 +* ストレージ `S3Queue` で、24.6 以前に作成された古い順序付きテーブルを、バケットを用いた新しい構造へ移行できるようにしました。 [#73467](https://github.com/ClickHouse/ClickHouse/pull/73467) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 既存の `system.s3queue` と同様の `system.azure_queue` を追加しました。 [#73477](https://github.com/ClickHouse/ClickHouse/pull/73477) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 関数 `parseDateTime64`(およびそのバリアント)は、1970年以前 / 2106年以降の日付の入力値に対して正しい結果を返すようになりました。例: `SELECT parseDateTime64InJodaSyntax('2200-01-01 00:00:00.000', 'yyyy-MM-dd HH:mm:ss.SSS')`。 [#73594](https://github.com/ClickHouse/ClickHouse/pull/73594) ([zhanglistar](https://github.com/zhanglistar))。 +* ユーザーから報告されていた `clickhouse-disks` の使い勝手に関するいくつかの問題に対処しました。[#67136](https://github.com/ClickHouse/ClickHouse/issues/67136) をクローズしました。[#73616](https://github.com/ClickHouse/ClickHouse/pull/73616)([Daniil Ivanik](https://github.com/divanik))。 +* storage S3(Azure)Queue でのコミット設定を変更できるようにしました。(コミット設定は `max_processed_files_before_commit`、`max_processed_rows_before_commit`、`max_processed_bytes_before_commit`、`max_processing_time_sec_before_commit` です)。 [#73635](https://github.com/ClickHouse/ClickHouse/pull/73635) ([Kseniia Sumarokova](https://github.com/kssenii)). +* ストレージ S3(Azure)Queue において、コミット制限 SETTINGS と比較できるように、ソース間の進捗状況を集約できるようにしました。 [#73641](https://github.com/ClickHouse/ClickHouse/pull/73641) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `BACKUP`/`RESTORE` クエリでコア設定をサポートしました。 [#73650](https://github.com/ClickHouse/ClickHouse/pull/73650) ([Vitaly Baranov](https://github.com/vitlibar))。 +* Parquet 出力時に `output_format_compression_level` が考慮されるようになりました。 [#73651](https://github.com/ClickHouse/ClickHouse/pull/73651) ([Arthur Passos](https://github.com/arthurpassos)). +* Apache Arrow の `fixed_size_list` をサポート対象外の型として扱うのではなく、`Array` として読み込めるようにしました。 [#73654](https://github.com/ClickHouse/ClickHouse/pull/73654) ([Julian Meyers](https://github.com/J-Meyers)). +* 2つのバックアップエンジン `Memory`(バックアップを現在のユーザーセッション内に保持)と `Null`(バックアップをどこにも保持しないテスト用)を追加。[#73690](https://github.com/ClickHouse/ClickHouse/pull/73690)([Vitaly Baranov](https://github.com/vitlibar))。 +* `concurrent_threads_soft_limit_num` と `concurrent_threads_soft_limit_num_ratio_to_cores` をサーバーの再起動なしに変更可能になりました。 [#73713](https://github.com/ClickHouse/ClickHouse/pull/73713) ([Sergei Trifonov](https://github.com/serxa))。 +* `formatReadable` 関数で拡張数値型(`Decimal` やビッグ整数)をサポートしました。 [#73765](https://github.com/ClickHouse/ClickHouse/pull/73765) ([Raúl Marín](https://github.com/Algunenano))。 +* Postgres のワイヤプロトコル互換で TLS をサポート。 [#73812](https://github.com/ClickHouse/ClickHouse/pull/73812) ([scanhex12](https://github.com/scanhex12)). +* 関数 `isIPv4String` は、正しい形式の IPv4 アドレスの後ろにゼロバイトが続いている場合に true を返していましたが、この場合には false を返すべきでした。[#65387](https://github.com/ClickHouse/ClickHouse/issues/65387) の継続対応です。[#73946](https://github.com/ClickHouse/ClickHouse/pull/73946)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* MySQL ワイヤープロトコルにおけるエラーコードを MySQL と互換性を持たせました。 [#56831](https://github.com/ClickHouse/ClickHouse/issues/56831) の継続対応です。 [#50957](https://github.com/ClickHouse/ClickHouse/issues/50957) をクローズします。 [#73948](https://github.com/ClickHouse/ClickHouse/pull/73948)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `IN`、`NOT IN` などの演算子で使用される列挙型リテラルを列挙型に対して検証し、リテラルが有効な列挙型値でない場合は例外をスローするための設定 `validate_enum_literals_in_opearators` を追加しました。 [#73985](https://github.com/ClickHouse/ClickHouse/pull/73985) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* Storage `S3(Azure)Queue` で、コミット設定で定義された単一バッチ内のすべてのファイルを、単一の Keeper トランザクションでコミットするようにしました。 [#73991](https://github.com/ClickHouse/ClickHouse/pull/73991) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 実行可能UDFおよび辞書のヘッダー検出を無効化しました(Function 'X': wrong result, expected Y row(s), actual Y-1 という誤結果が発生する可能性がありました)。 [#73992](https://github.com/ClickHouse/ClickHouse/pull/73992) ([Azat Khuzhin](https://github.com/azat)). +* `EXPLAIN PLAN` に `distributed` オプションを追加しました。これにより、`EXPLAIN distributed=1 ...` ではリモートプランが `ReadFromParallelRemote*` ステップに付加されるようになりました。[#73994](https://github.com/ClickHouse/ClickHouse/pull/73994) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* Dynamic 引数に対する not/xor の戻り値型を正しくしました。 [#74013](https://github.com/ClickHouse/ClickHouse/pull/74013) ([Pavel Kruglov](https://github.com/Avogar)). +* テーブル作成後でも `add_implicit_sign_column_constraint_for_collapsing_engine` を変更できるようにしました。 [#74014](https://github.com/ClickHouse/ClickHouse/pull/74014) ([Christoph Wurm](https://github.com/cwurm)). +* materialized view の SELECT クエリでサブカラムをサポートしました。 [#74030](https://github.com/ClickHouse/ClickHouse/pull/74030) ([Pavel Kruglov](https://github.com/Avogar)). +* `clickhouse-client` でカスタムプロンプトを設定する簡単な方法が 3 つ用意されました。1. コマンドラインパラメータ `--prompt` を使う方法、2. 設定ファイル内の `[...]` の `settings` から設定する方法、3. 同じく設定ファイル内の接続ごとの設定 `[...]` から行う方法です。 [#74168](https://github.com/ClickHouse/ClickHouse/pull/74168) ([Christoph Wurm](https://github.com/cwurm))。 +* ClickHouse Client でポート 9440 への接続時にセキュア接続かどうかを自動検出するようにしました。 [#74212](https://github.com/ClickHouse/ClickHouse/pull/74212) ([Christoph Wurm](https://github.com/cwurm)). +* `http_handlers` でユーザー名だけでユーザーを認証できるようにしました(以前はパスワードの入力も必要でした)。 [#74221](https://github.com/ClickHouse/ClickHouse/pull/74221) ([Azat Khuzhin](https://github.com/azat)). +* 代替クエリ言語である PRQL と KQL へのサポートが、実験的機能としてマークされました。これらを使用するには、`allow_experimental_prql_dialect = 1` および `allow_experimental_kusto_dialect = 1` の SETTING を指定します。 [#74224](https://github.com/ClickHouse/ClickHouse/pull/74224) ([Robert Schulze](https://github.com/rschu1ze))。 +* より多くの集約関数でデフォルトの `Enum` 型を返せるようになりました。 [#74272](https://github.com/ClickHouse/ClickHouse/pull/74272) ([Raúl Marín](https://github.com/Algunenano)). +* `OPTIMIZE TABLE` で、既存のキーワード `FINAL` の代替としてキーワード `FORCE` を指定できるようになりました。 [#74342](https://github.com/ClickHouse/ClickHouse/pull/74342) ([Robert Schulze](https://github.com/rschu1ze))。 +* サーバーのシャットダウンに時間がかかりすぎる場合にアラートをトリガーするために必要となる `IsServerShuttingDown` メトリクスを追加しました。 [#74429](https://github.com/ClickHouse/ClickHouse/pull/74429) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* EXPLAIN に Iceberg テーブルの名前を追加しました。 [#74485](https://github.com/ClickHouse/ClickHouse/pull/74485) ([alekseev-maksim](https://github.com/alekseev-maksim)). +* 旧アナライザー使用時に RECURSIVE CTE を利用した場合、より適切なエラーメッセージを表示するようにしました。 [#74523](https://github.com/ClickHouse/ClickHouse/pull/74523) ([Raúl Marín](https://github.com/Algunenano)). +* `system.errors` に拡張エラーメッセージを表示できるようにしました。 [#74574](https://github.com/ClickHouse/ClickHouse/pull/74574) ([Vitaly Baranov](https://github.com/vitlibar)). +* clickhouse-keeper とのクライアント通信でパスワードを使用できるようにしました。サーバーおよびクライアントに対して適切なSSL設定を行っている場合、この機能の有用性はそれほど高くありませんが、一部のケースでは依然として有用です。パスワードは16文字を超えることはできません。Keeper Auth モデルとは関連していない機能です。 [#74673](https://github.com/ClickHouse/ClickHouse/pull/74673) ([alesapin](https://github.com/alesapin)). +* config reloader のエラーコードを追加。 [#74746](https://github.com/ClickHouse/ClickHouse/pull/74746) ([Garrett Thomas](https://github.com/garrettthomaskth)). +* MySQL および PostgreSQL のテーブル関数とエンジンにおいて、IPv6 アドレスのサポートを追加しました。 [#74796](https://github.com/ClickHouse/ClickHouse/pull/74796) ([Mikhail Koviazin](https://github.com/mkmkme)). +* `divideDecimal` に対してショートサーキット最適化を実装しました。 [#74280](https://github.com/ClickHouse/ClickHouse/issues/74280) を修正。 [#74843](https://github.com/ClickHouse/ClickHouse/pull/74843)([Kevin Mingtarja](https://github.com/kevinmingtarja))。 +* 起動スクリプト内でUSERを定義できるようになりました。 [#74894](https://github.com/ClickHouse/ClickHouse/pull/74894) ([pufit](https://github.com/pufit)). +* Azure SAS トークンのサポートを追加しました。 [#72959](https://github.com/ClickHouse/ClickHouse/pull/72959) ([Azat Khuzhin](https://github.com/azat)). + +#### バグ修正(公式安定版リリースにおけるユーザーに影響する不具合) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* 圧縮コーデックがサポートしている場合にのみ Parquet の圧縮レベルを設定するようにしました。 [#74659](https://github.com/ClickHouse/ClickHouse/pull/74659) ([Arthur Passos](https://github.com/arthurpassos)). +* 修飾子付きの照合ロケールを使用した場合にエラーが発生していた退行バグを修正しました。例えば、`SELECT arrayJoin(['kk 50', 'KK 01', ' KK 2', ' KK 3', 'kk 1', 'x9y99', 'x9y100']) item ORDER BY item ASC COLLATE 'tr-u-kn-true-ka-shifted` が正常に動作するようになりました。[#73544](https://github.com/ClickHouse/ClickHouse/pull/73544)([Robert Schulze](https://github.com/rschu1ze))。 +* keeper-client で SEQUENTIAL ノードを作成できなかった不具合を修正。 [#64177](https://github.com/ClickHouse/ClickHouse/pull/64177) ([Duc Canh Le](https://github.com/canhld94)). +* `position` 関数群における文字数カウントの誤りを修正。 [#71003](https://github.com/ClickHouse/ClickHouse/pull/71003) ([思维](https://github.com/heymind)). +* アクセスエンティティに対する `RESTORE` 操作で、一部の権限取り消しが正しく処理されていなかったため、本来よりも多くの権限を要求していました。この PR で問題を修正します。[#71853](https://github.com/ClickHouse/ClickHouse/issues/71853) をクローズします。[#71958](https://github.com/ClickHouse/ClickHouse/pull/71958)([pufit](https://github.com/pufit))。 +* `ALTER TABLE REPLACE/MOVE PARTITION FROM/TO TABLE` 実行後に処理が一時的に停止してしまう問題を解消しました。バックグラウンドタスクのスケジューリングに使用される設定を正しく取得するようにしました。 [#72024](https://github.com/ClickHouse/ClickHouse/pull/72024) ([Aleksei Filatov](https://github.com/aalexfvk)). +* 一部の入力および出力フォーマット(例: Parquet、Arrow)における空タプルの処理を修正。 [#72616](https://github.com/ClickHouse/ClickHouse/pull/72616) ([Michael Kolupaev](https://github.com/al13n321)). +* ワイルドカードを含むデータベース/テーブルに対するカラムレベルの GRANT SELECT/INSERT 文は、今後はエラーを返すようになりました。 [#72646](https://github.com/ClickHouse/ClickHouse/pull/72646) ([Johann Gan](https://github.com/johanngan)). +* 対象のアクセスエンティティに暗黙的な権限付与があるために `REVOKE ALL ON *.*` を実行できない場合がある問題を修正。 [#72872](https://github.com/ClickHouse/ClickHouse/pull/72872) ([pufit](https://github.com/pufit)). +* formatDateTime スカラー関数での正のタイムゾーンのフォーマットを修正。 [#73091](https://github.com/ClickHouse/ClickHouse/pull/73091) ([ollidraese](https://github.com/ollidraese)). +* PROXYv1 経由での接続時に `auth_use_forwarded_address` が設定されている場合、送信元ポートが正しく反映されるよう修正しました。これまではプロキシのポートが誤って使用されていました。`currentQueryID()` 関数を追加しました。 [#73095](https://github.com/ClickHouse/ClickHouse/pull/73095) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* TCPHandler から NativeWriter にフォーマット設定を伝播させ、`output_format_native_write_json_as_string` のような設定が正しく適用されるようにしました。 [#73179](https://github.com/ClickHouse/ClickHouse/pull/73179) ([Pavel Kruglov](https://github.com/Avogar)). +* StorageObjectStorageQueue で発生していたクラッシュを修正。 [#73274](https://github.com/ClickHouse/ClickHouse/pull/73274) ([Kseniia Sumarokova](https://github.com/kssenii)). +* サーバーのシャットダウン中にまれに発生するリフレッシャブルmaterialized viewのクラッシュを修正。 [#73323](https://github.com/ClickHouse/ClickHouse/pull/73323) ([Michael Kolupaev](https://github.com/al13n321)). +* `formatDateTime` 関数の `%f` プレースホルダは、小数点以下の秒を常に 6 桁で出力するようになりました。これにより、MySQL の `DATE_FORMAT` 関数と互換性のある動作になります。以前の動作は、`formatdatetime_f_prints_scale_number_of_digits = 1` 設定を使用することで復元できます。 [#73324](https://github.com/ClickHouse/ClickHouse/pull/73324) ([ollidraese](https://github.com/ollidraese))。 +* `S3` ストレージおよびテーブル関数からの読み取り時における `_etag` カラムによるフィルタリングを修正しました。 [#73353](https://github.com/ClickHouse/ClickHouse/pull/73353) ([Anton Popov](https://github.com/CurtizJ)). +* 旧アナライザー使用時に、`JOIN ON` 式内で `IN (subquery)` が使用されると発生していた `Not-ready Set is passed as the second argument for function 'in'` エラーを修正。 [#73382](https://github.com/ClickHouse/ClickHouse/pull/73382) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* Dynamic および JSON カラムに対する squash 処理の準備ロジックを修正しました。以前は、型/パスの上限にまだ達していない場合でも、一部のケースで共有バリアント/共有データに新しい型が挿入されてしまうことがありました。 [#73388](https://github.com/ClickHouse/ClickHouse/pull/73388) ([Pavel Kruglov](https://github.com/Avogar))。 +* 型のバイナリデコード時にサイズの破損をチェックし、過大なメモリアロケーションを防止しました。 [#73390](https://github.com/ClickHouse/ClickHouse/pull/73390) ([Pavel Kruglov](https://github.com/Avogar)). +* parallel replicas を有効にした single-replica クラスターからの読み取り時に発生する論理エラーを修正しました。 [#73403](https://github.com/ClickHouse/ClickHouse/pull/73403) ([Michael Kolupaev](https://github.com/al13n321)). +* ZooKeeper および旧バージョンの Keeper 使用時の ObjectStorageQueue の不具合を修正。 [#73420](https://github.com/ClickHouse/ClickHouse/pull/73420) ([Antonio Andelic](https://github.com/antonio2368))。 +* デフォルトで Hive パーティショニングを有効にするために必要な修正を実装しました。 [#73479](https://github.com/ClickHouse/ClickHouse/pull/73479) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* ベクトル類似性索引作成時のデータレースを修正。 [#73517](https://github.com/ClickHouse/ClickHouse/pull/73517) ([Antonio Andelic](https://github.com/antonio2368)). +* Dictionary のソースに誤ったデータを持つ関数が含まれている場合に発生していたセグメンテーションフォールトを修正。 [#73535](https://github.com/ClickHouse/ClickHouse/pull/73535) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* storage S3(Azure)Queue における挿入失敗時の再試行処理を修正。[#70951](https://github.com/ClickHouse/ClickHouse/issues/70951) をクローズ。[#73546](https://github.com/ClickHouse/ClickHouse/pull/73546)([Kseniia Sumarokova](https://github.com/kssenii))。 +* `LowCardinality` 要素を含むタプルに対して、`optimize_functions_to_subcolumns` 設定が有効な場合に発生することがあった `tupleElement` 関数のエラーを修正しました。 [#73548](https://github.com/ClickHouse/ClickHouse/pull/73548) ([Anton Popov](https://github.com/CurtizJ))。 +* 範囲指定が後続する enum グロブのパースを修正。[#73473](https://github.com/ClickHouse/ClickHouse/issues/73473) を修正。[#73569](https://github.com/ClickHouse/ClickHouse/pull/73569)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 非レプリケートテーブルに対するサブクエリ内で `parallel_replicas_for_non_replicated_merge_tree` が無視されていた問題を修正しました。 [#73584](https://github.com/ClickHouse/ClickHouse/pull/73584) ([Igor Nikonov](https://github.com/devcrafter)). +* タスクをスケジュールできない場合に `std::logical_error` 例外がスローされる不具合を修正しました。この問題はストレステスト中に発見されました。 [#73629](https://github.com/ClickHouse/ClickHouse/pull/73629) ([Alexander Gololobov](https://github.com/davenger))。 +* 分散クエリに対して誤った処理ステージが適用されることによる論理エラーを回避するため、`EXPLAIN SYNTAX` でクエリを解釈しないようにしました。[#65205](https://github.com/ClickHouse/ClickHouse/issues/65205) を修正。[#73634](https://github.com/ClickHouse/ClickHouse/pull/73634)([Dmitry Novik](https://github.com/novikd))。 +* Dynamic カラムで発生しうるデータ不整合を修正しました。`Nested columns sizes are inconsistent with local_discriminators column size` という論理エラーが発生する可能性のある問題を修正しました。 [#73644](https://github.com/ClickHouse/ClickHouse/pull/73644) ([Pavel Kruglov](https://github.com/Avogar)). +* `FINAL` と `SAMPLE` を含むクエリで発生する `NOT_FOUND_COLUMN_IN_BLOCK` エラーを修正しました。`CollapsingMergeTree` に対する `FINAL` 付きの SELECT 文で誤った結果となる問題を修正し、`FINAL` の最適化を有効化しました。 [#73682](https://github.com/ClickHouse/ClickHouse/pull/73682) ([Anton Popov](https://github.com/CurtizJ)). +* LIMIT BY COLUMNS で発生していたクラッシュを修正。 [#73686](https://github.com/ClickHouse/ClickHouse/pull/73686) ([Raúl Marín](https://github.com/Algunenano)). +* 通常の PROJECTION の使用が強制されており、クエリが定義済みの PROJECTION と完全に一致しているにもかかわらず、その PROJECTION が選択されずにエラーが発生する不具合を修正しました。 [#73700](https://github.com/ClickHouse/ClickHouse/pull/73700) ([Shichao Jin](https://github.com/jsc0218)). +* Dynamic/Object 構造のデシリアライズ処理を修正しました。これが原因で CANNOT_READ_ALL_DATA 例外が発生する可能性がありました。 [#73767](https://github.com/ClickHouse/ClickHouse/pull/73767) ([Pavel Kruglov](https://github.com/Avogar)). +* バックアップからパーツを復元する際に `metadata_version.txt` をスキップします。 [#73768](https://github.com/ClickHouse/ClickHouse/pull/73768) ([Vitaly Baranov](https://github.com/vitlibar)). +* LIKE と組み合わせた Enum への CAST 時に発生していたセグメンテーションフォルトを修正しました。 [#73775](https://github.com/ClickHouse/ClickHouse/pull/73775) ([zhanglistar](https://github.com/zhanglistar)). +* ディスクとして動作しない S3 Express バケットの不具合を修正しました。 [#73777](https://github.com/ClickHouse/ClickHouse/pull/73777) ([Sameer Tamsekar](https://github.com/stamsekar)). +* CollapsingMergeTree テーブルで、無効な sign カラム値を持つ行もマージできるようにしました。 [#73864](https://github.com/ClickHouse/ClickHouse/pull/73864) ([Christoph Wurm](https://github.com/cwurm)). +* オフラインのレプリカが存在する状態で DDL をクエリするとエラーになる問題を修正。 [#73876](https://github.com/ClickHouse/ClickHouse/pull/73876) ([Tuan Pham Anh](https://github.com/tuanpach)). +* ネストされたタプルのフィールド名として 'keys', 'values' が明示的に指定されていない `Map` を作成できてしまうことが原因で、`map()` 型同士の比較がまれに失敗する問題を修正しました。 [#73878](https://github.com/ClickHouse/ClickHouse/pull/73878) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* `GROUP BY ALL` 句を解決する際にウィンドウ関数を無視するようにしました。これにより [#73501](https://github.com/ClickHouse/ClickHouse/issues/73501) を修正しました。[#73916](https://github.com/ClickHouse/ClickHouse/pull/73916)([Dmitry Novik](https://github.com/novikd))。 +* 暗黙的な権限の扱いを修正(以前はワイルドカードとして扱われていた)。 [#73932](https://github.com/ClickHouse/ClickHouse/pull/73932) ([Azat Khuzhin](https://github.com/azat)). +* ネストされた `Map` の作成時における高いメモリ使用量を修正。 [#73982](https://github.com/ClickHouse/ClickHouse/pull/73982) ([Pavel Kruglov](https://github.com/Avogar))。 +* 空キーを含むネストされた JSON のパースを修正。 [#73993](https://github.com/ClickHouse/ClickHouse/pull/73993) ([Pavel Kruglov](https://github.com/Avogar)). +* Fix: 別のエイリアスから参照されており、かつ逆順で選択された場合に、そのエイリアスが PROJECTION に追加されないことがある問題を修正。 [#74033](https://github.com/ClickHouse/ClickHouse/pull/74033) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Azure 用の plain_rewritable ディスクの初期化時に発生する "object not found" エラーを無視するようにしました。 [#74059](https://github.com/ClickHouse/ClickHouse/pull/74059) ([Julia Kartseva](https://github.com/jkartseva)). +* enum 型および空テーブルに対する `any` と `anyLast` の挙動の不具合を修正。 [#74061](https://github.com/ClickHouse/ClickHouse/pull/74061) ([Joanna Hulboj](https://github.com/jh0x))。 +* ユーザーが Kafka テーブルエンジンでキーワード引数を指定した場合に発生する不具合を修正しました。 [#74064](https://github.com/ClickHouse/ClickHouse/pull/74064) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* Storage `S3Queue` の設定で、プレフィックス `s3queue_` 付きと無しの間で変更する際の問題を修正しました。 [#74075](https://github.com/ClickHouse/ClickHouse/pull/74075) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `allow_push_predicate_ast_for_distributed_subqueries` という設定を追加しました。これにより、analyzer を用いた分散クエリに対して AST ベースの述語プッシュダウンが有効になります。これは、クエリプランのシリアライズに対応した分散クエリがサポートされるまでの一時的な対応策です。[#66878](https://github.com/ClickHouse/ClickHouse/issues/66878) [#69472](https://github.com/ClickHouse/ClickHouse/issues/69472) [#65638](https://github.com/ClickHouse/ClickHouse/issues/65638) [#68030](https://github.com/ClickHouse/ClickHouse/issues/68030) [#73718](https://github.com/ClickHouse/ClickHouse/issues/73718) をクローズしました。[#74085](https://github.com/ClickHouse/ClickHouse/pull/74085)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* [#73095](https://github.com/ClickHouse/ClickHouse/issues/73095) の変更以降、`forwarded_for` フィールドにポートが含まれることがあり、その結果ポート付きのホスト名を解決できなくなる問題を修正しました。[#74116](https://github.com/ClickHouse/ClickHouse/pull/74116) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 +* `ALTER TABLE (DROP STATISTICS ...) (DROP STATISTICS ...)` の誤ったフォーマットを修正しました。 [#74126](https://github.com/ClickHouse/ClickHouse/pull/74126) ([Han Fei](https://github.com/hanfei1991)). +* Issue [#66112](https://github.com/ClickHouse/ClickHouse/issues/66112) を修正。 [#74128](https://github.com/ClickHouse/ClickHouse/pull/74128) ([Anton Ivashkin](https://github.com/ianton-ru))。 +* `CREATE TABLE` でテーブルエンジンとして `Loop` を使用することはできなくなりました。以前はこの組み合わせによりセグメンテーションフォルトが発生していました。 [#74137](https://github.com/ClickHouse/ClickHouse/pull/74137) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* PostgreSQL および SQLite のテーブル関数に対する SQL インジェクションを防ぐためのセキュリティ上の問題を修正しました。 [#74144](https://github.com/ClickHouse/ClickHouse/pull/74144) ([Pablo Marcos](https://github.com/pamarcos))。 +* 圧縮された Memory エンジンのテーブルからサブカラムを読み取る際に発生するクラッシュを修正。[#74009](https://github.com/ClickHouse/ClickHouse/issues/74009) を修正。 [#74161](https://github.com/ClickHouse/ClickHouse/pull/74161)([Nikita Taranov](https://github.com/nickitat))。 +* system.detached_tables へのクエリで無限ループが発生する問題を修正しました。 [#74190](https://github.com/ClickHouse/ClickHouse/pull/74190) ([Konstantin Morozov](https://github.com/k-morozov)). +* s3queue でファイルを失敗としてマークする際の論理エラーを修正。 [#74216](https://github.com/ClickHouse/ClickHouse/pull/74216) ([Kseniia Sumarokova](https://github.com/kssenii)). +* ベースバックアップからの `RESTORE` におけるネイティブコピー設定(`allow_s3_native_copy`/`allow_azure_native_copy`)を修正しました。 [#74286](https://github.com/ClickHouse/ClickHouse/pull/74286) ([Azat Khuzhin](https://github.com/azat)). +* データベース内の detached テーブル数が `max_block_size` の倍数となる場合に発生していた不具合を修正しました。 [#74289](https://github.com/ClickHouse/ClickHouse/pull/74289) ([Konstantin Morozov](https://github.com/k-morozov))。 +* ソースと宛先で認証情報が異なる場合の ObjectStorage(例:S3)経由のコピー処理を修正しました。 [#74331](https://github.com/ClickHouse/ClickHouse/pull/74331) ([Azat Khuzhin](https://github.com/azat))。 +* GCS のネイティブコピーにおける「JSON API の Rewrite メソッドを使用する」設定の検出を修正しました。 [#74338](https://github.com/ClickHouse/ClickHouse/pull/74338) ([Azat Khuzhin](https://github.com/azat)). +* `BackgroundMergesAndMutationsPoolSize` の誤った計算を修正しました(誤って実際の値の 2 倍として計算されていました)。[#74509](https://github.com/ClickHouse/ClickHouse/pull/74509) ([alesapin](https://github.com/alesapin))。 +* Cluster Discovery を有効にした際に Keeper の watch がリークしていた不具合を修正。 [#74521](https://github.com/ClickHouse/ClickHouse/pull/74521) ([RinChanNOW](https://github.com/RinChanNOWWW)). +* UBSan によって報告されたメモリアラインメントに関する問題を修正しました。 [#74512](https://github.com/ClickHouse/ClickHouse/issues/74512)。 [#74534](https://github.com/ClickHouse/ClickHouse/pull/74534)([Arthur Passos](https://github.com/arthurpassos))。 +* テーブル作成時における KeeperMap の並行クリーンアップ処理を修正。 [#74568](https://github.com/ClickHouse/ClickHouse/pull/74568) ([Antonio Andelic](https://github.com/antonio2368)). +* `EXCEPT` または `INTERSECT` が存在する場合、正しいクエリ結果を維持するために、サブクエリ内で未使用の PROJECTION カラムを削除しないようにしました。[#73930](https://github.com/ClickHouse/ClickHouse/issues/73930) を修正しました。[#66465](https://github.com/ClickHouse/ClickHouse/issues/66465) を修正しました。[#74577](https://github.com/ClickHouse/ClickHouse/pull/74577)([Dmitry Novik](https://github.com/novikd))。 +* `Tuple` カラムを持ち、スパースシリアライゼーションが有効になっているテーブル間での `INSERT SELECT` クエリの不具合を修正しました。 [#74698](https://github.com/ClickHouse/ClickHouse/pull/74698) ([Anton Popov](https://github.com/CurtizJ)). +* 関数 `right` が const の負のオフセットに対して誤って動作していました。 [#74701](https://github.com/ClickHouse/ClickHouse/pull/74701) ([Daniil Ivanik](https://github.com/divanik)). +* クライアント側での不正な伸長処理が原因で gzip 圧縮データの挿入が失敗することがある問題を修正。 [#74707](https://github.com/ClickHouse/ClickHouse/pull/74707) ([siyuan](https://github.com/linkwk7)). +* ワイルドカードを含む権限付与に対する部分的な取り消しにより、想定より多くの権限が取り消されることがありました。[#74263](https://github.com/ClickHouse/ClickHouse/issues/74263) をクローズしました。[#74751](https://github.com/ClickHouse/ClickHouse/pull/74751)([pufit](https://github.com/pufit))。 +* Keeper: ディスク上のログエントリの読み取りを修正。 [#74785](https://github.com/ClickHouse/ClickHouse/pull/74785) ([Antonio Andelic](https://github.com/antonio2368)). +* SYSTEM REFRESH/START/STOP VIEW の権限チェックを修正しました。特定の VIEW に対するクエリを実行する際に `*.*` への GRANT を持っている必要はなくなり、その VIEW への権限だけがあれば十分です。 [#74789](https://github.com/ClickHouse/ClickHouse/pull/74789) ([Alexander Tokmakov](https://github.com/tavplubix))。 +* `hasColumnInTable` 関数がエイリアスカラムを考慮していなかった問題を修正し、エイリアスカラムにも対応するようにしました。 [#74841](https://github.com/ClickHouse/ClickHouse/pull/74841) ([Bharat Nallan](https://github.com/bharatnc)). +* Azure Blob Storage 上にあり空のカラムを含むテーブルのデータパーツマージ処理中に発生する FILE_DOESNT_EXIST エラーを修正。 [#74892](https://github.com/ClickHouse/ClickHouse/pull/74892) ([Julia Kartseva](https://github.com/jkartseva)). +* 一時テーブルとの結合時のプロジェクション列名を修正し、[#68872](https://github.com/ClickHouse/ClickHouse/issues/68872) をクローズしました。 [#74897](https://github.com/ClickHouse/ClickHouse/pull/74897)([Vladimir Cherkasov](https://github.com/vdimir))。 + +#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement} + +* 汎用インストールスクリプトが、macOS 上でもインストールを促すようになりました。 [#74339](https://github.com/ClickHouse/ClickHouse/pull/74339) ([Alexey Milovidov](https://github.com/alexey-milovidov)). \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/cloud.md b/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/cloud.md index 6fcc529657f..1077fb3434c 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/cloud.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/cloud.md @@ -1,5 +1,5 @@ --- -sidebar_position: 1 +sidebar_position: -9999 sidebar_label: 'クラウド' title: 'クラウドの変更履歴' slug: /whats-new/changelog/cloud diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/index.md b/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/index.md index 2905f72a9af..05f857222ec 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/index.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/changelog/index.md @@ -1,2460 +1,14 @@ --- -description: '2025年の変更履歴' +description: '2026年の変更履歴' note: "このファイルは yarn build によって生成されたものです" slug: /whats-new/changelog/ -sidebar_position: 2 -sidebar_label: '2025' -title: '2025年の変更履歴' +sidebar_position: -9998 +sidebar_label: '2026' +title: '2026年の変更履歴' doc_type: 'changelog' --- -### 目次 {#table-of-contents} - -**[ClickHouse リリース v25.11, 2025-11-27](#2511)**
    -**[ClickHouse リリース v25.10, 2025-10-30](#2510)**
    -**[ClickHouse リリース v25.9, 2025-09-25](#259)**
    -**[ClickHouse リリース v25.8 LTS, 2025-08-28](#258)**
    -**[ClickHouse リリース v25.7, 2025-07-24](#257)**
    -**[ClickHouse リリース v25.6, 2025-06-26](#256)**
    -**[ClickHouse リリース v25.5, 2025-05-22](#255)**
    -**[ClickHouse リリース v25.4, 2025-04-22](#254)**
    -**[ClickHouse リリース v25.3 LTS, 2025-03-20](#253)**
    -**[ClickHouse リリース v25.2, 2025-02-27](#252)**
    -**[ClickHouse リリース v25.1, 2025-01-28](#251)**
    -**[2024 年の変更履歴](https://clickhouse.com/docs/whats-new/changelog/2024/)**
    -**[2023 年の変更履歴](https://clickhouse.com/docs/whats-new/changelog/2023/)**
    -**[2022 年の変更履歴](https://clickhouse.com/docs/whats-new/changelog/2022/)**
    -**[2021 年の変更履歴](https://clickhouse.com/docs/whats-new/changelog/2021/)**
    -**[2020 年の変更履歴](https://clickhouse.com/docs/whats-new/changelog/2020/)**
    -**[2019 年の変更履歴](https://clickhouse.com/docs/whats-new/changelog/2019/)**
    -**[2018 年の変更履歴](https://clickhouse.com/docs/whats-new/changelog/2018/)**
    -**[2017 年の変更履歴](https://clickhouse.com/docs/whats-new/changelog/2017/)**
    - -### ClickHouse リリース 25.11、2025-11-27 {#2511} - -#### 後方非互換な変更 {#backward-incompatible-change} - -* 非推奨の `Object` 型を削除しました。 [#85718](https://github.com/ClickHouse/ClickHouse/pull/85718) ([Pavel Kruglov](https://github.com/Avogar)). -* 非推奨となっていた `LIVE VIEW` 機能を削除しました。`LIVE VIEW` を使用している場合、この新しいバージョンにはアップグレードできません。[#88706](https://github.com/ClickHouse/ClickHouse/pull/88706) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 以前のバージョンでは、`Geometry` 型は `String` 型のエイリアスでしたが、現在はフル機能を備えた独立した型になりました。 [#83344](https://github.com/ClickHouse/ClickHouse/pull/83344) ([scanhex12](https://github.com/scanhex12))。 -* MergeTree テーブルの Wide 形式データパートにおける `Variant` 型サブカラム用に作成されるファイル名をエスケープします。この変更により、Variant/Dynamic/JSON データ型を含む既存テーブルとの互換性が失われます。この変更は、Variant 内に特殊文字を含む型(`\` を含む特定のタイムゾーン付き DateTime など)を保存できない問題を修正します。エスケープは、MergeTree 設定 `escape_variant_subcolumn_filenames` を変更することで無効化できます(互換性を維持するには、MergeTree の設定でこの設定を無効にするか、アップグレード前のバージョンに合わせて `compatibility` 設定を指定してください)。[#69590](https://github.com/ClickHouse/ClickHouse/issues/69590) を解決します。[#87300](https://github.com/ClickHouse/ClickHouse/pull/87300)([Pavel Kruglov](https://github.com/Avogar))。 -* `String` データ型に対して、デフォルトで `with_size_stream` シリアル化フォーマットを有効にします。この変更自体は後方互換性がありますが、新しいシリアル化フォーマットはバージョン 25.10 以降でのみサポートされるため、25.10 より前のバージョンへはダウングレードできなくなります。25.9 以前へのダウングレードを可能な状態に保ちたい場合は、サーバー構成の `merge_tree` セクションで、`serialization_info_version` を `basic` に、`string_serialization_version` を `single_stream` に設定してください。 [#89329](https://github.com/ClickHouse/ClickHouse/pull/89329) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* HTTP レスポンスの結果に対する例外のタグ付けをサポートし、クライアントが例外をより確実にパースできるようにしました。[#75175](https://github.com/ClickHouse/ClickHouse/issues/75175) を解決します。設定 `http_write_exception_in_output_format` は、フォーマット間の一貫性を保つためデフォルトでは無効になっています。[#88818](https://github.com/ClickHouse/ClickHouse/pull/88818)([Kaviraj Kanagaraj](https://github.com/kavirajk))。既存の挙動を壊すことは想定していません(最悪の場合でも、例外メッセージに妙な文字列が追加されるだけです)が、それでも注意喚起のためにチェンジログのカテゴリとして「Backward Incompatible Change」を使用しておくのが妥当です(どのようなやっつけスクリプトが例外メッセージをパースしているか分からないためです)。 -* 共有オブジェクトストレージパス上に複数の `plain-rewritable` ディスクを作成することを禁止しました。これは、異なるメタデータストレージトランザクションの衝突時に未定義の動作を引き起こす可能性があるためです。[#89038](https://github.com/ClickHouse/ClickHouse/pull/89038) ([Mikhail Artemenko](https://github.com/Michicosun))。 -* Kafka storage の SASL 設定の適用順序を修正しました。CREATE TABLE 文で指定されたテーブルレベルの SASL 設定が、構成ファイルのコンシューマ/プロデューサ固有の設定を正しく上書きするようになりました。 [#89401](https://github.com/ClickHouse/ClickHouse/pull/89401) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* タイムゾーンなしの Parquet タイムスタンプ (isAdjustedToUTC=false) は、これまでの DateTime64(...) ではなく、DateTime64(..., 'UTC') として読み込まれるようになりました。この変更により、そのような UTC タイムスタンプを文字列に変換した際に、正しいローカル時刻の表現が得られるため、以前の挙動よりも誤りが少なくなります。従来の動作に戻すには `input_format_parquet_local_time_as_utc = 0` を使用してください。 [#87469](https://github.com/ClickHouse/ClickHouse/issues/87469) を解決。 [#87872](https://github.com/ClickHouse/ClickHouse/pull/87872)([Michael Kolupaev](https://github.com/al13n321))。 -* `T64` コーデックに対する小さな改善として、これまでバグを引き起こしていた、圧縮要素サイズに揃っていないデータ型を受け付けないようになりました。 [#89282](https://github.com/ClickHouse/ClickHouse/issues/89282) を解決しました。 [#89432](https://github.com/ClickHouse/ClickHouse/pull/89432) ([yanglongwei](https://github.com/ylw510))。 - -#### 新機能 {#new-feature} - -* `Geometry` 型を導入しました。この型に対して `WKB` および `WKT` フォーマットの読み取りをサポートしました。以前のバージョンでは、`Geometry` 型は `String` へのエイリアスでしたが、現在は完全な機能を備えた型になりました。 [#83344](https://github.com/ClickHouse/ClickHouse/pull/83344) ([scanhex12](https://github.com/scanhex12)). -* ユーザーのインパーソネーションをサポートするために、新しい SQL 文 `EXECUTE AS` を追加しました。[#39048](https://github.com/ClickHouse/ClickHouse/issues/39048) を解決します。[#70775](https://github.com/ClickHouse/ClickHouse/pull/70775)([Shankar](https://github.com/shiyer7474))。 -* n-gram ベースの Naive Bayes を用いてテキストを分類する `naiveBayesClassifier` 関数を追加。 [#88677](https://github.com/ClickHouse/ClickHouse/pull/88677) ([Nihal Z. Miaji](https://github.com/nihalzp)). -* テーブルの一部を選択できるよう、`LIMIT` および `OFFSET` で小数を指定できるようにしました。 [#81892](https://github.com/ClickHouse/ClickHouse/issues/81892) をクローズしました。 [#88755](https://github.com/ClickHouse/ClickHouse/pull/88755)([Ahmed Gouda](https://github.com/0xgouda))。 -* Microsoft OneLake カタログ用の ClickHouse サブシステム。 [#89366](https://github.com/ClickHouse/ClickHouse/pull/89366) ([scanhex12](https://github.com/scanhex12)). -* 配列内の指定した次元数を展開し、Tuple カラム内のポインタを入れ替える `flipCoordinates` 関数を追加しました。[#79469](https://github.com/ClickHouse/ClickHouse/issues/79469) を解決します。[#79634](https://github.com/ClickHouse/ClickHouse/pull/79634)([Sachin Kumar Singh](https://github.com/sachinkumarsingh092))。 -* Unicode 文字とそのプロパティの一覧を含む `system.unicode` テーブルを追加。[#80055](https://github.com/ClickHouse/ClickHouse/issues/80055) をクローズ。[#80857](https://github.com/ClickHouse/ClickHouse/pull/80857)([wxybear](https://github.com/wxybear))。 -* 新しい MergeTree の設定 `merge_max_dynamic_subcolumns_in_wide_part` を追加し、データ型で指定されたパラメータに関係なく、マージ後の Wide パートにおける動的サブカラム数を制限できるようにしました。 [#87646](https://github.com/ClickHouse/ClickHouse/pull/87646) ([Pavel Kruglov](https://github.com/Avogar)). -* `cume_dist` ウィンドウ関数のサポートを追加しました。[#86920](https://github.com/ClickHouse/ClickHouse/issues/86920) を修正しました。[#88102](https://github.com/ClickHouse/ClickHouse/pull/88102)([Manuel](https://github.com/raimannma))。 -* テキストインデックスの構築時に、新たな引数 `preprocessor` を指定できるようになりました。この引数には、トークン化の前に各ドキュメントを変換する任意の式を指定できます。 [#88272](https://github.com/ClickHouse/ClickHouse/pull/88272)([Jimmy Aguilar Mena](https://github.com/Ergus))。 -* `X-ClickHouse-Progress` と `X-ClickHouse-Summary` に `memory_usage` フィールドを追加しました。これにより、クエリのメモリ使用量をクライアント側でリアルタイムに収集できます。 [#88393](https://github.com/ClickHouse/ClickHouse/pull/88393) ([Christoph Wurm](https://github.com/cwurm)). -* `INTO OUTFILE` で出力先パスのディレクトリが存在しない場合でもエラーにならないよう、親ディレクトリを自動作成する設定 `into_outfile_create_parent_directories` を追加しました。これにより、クエリがネストしたディレクトリに結果を書き出すワークフローを簡素化できます。 [#88610](https://github.com/ClickHouse/ClickHouse/issues/88610) を解決しました。 [#88795](https://github.com/ClickHouse/ClickHouse/pull/88795) ([Saksham](https://github.com/Saksham10-11)). -* 一時テーブルに対する `CREATE OR REPLACE` 構文をサポートしました。[#35888](https://github.com/ClickHouse/ClickHouse/issues/35888) をクローズしました。[#89450](https://github.com/ClickHouse/ClickHouse/pull/89450)([Aleksandr Musorin](https://github.com/AVMusorin))。 -* 配列 `arr` から `elem` と等しいすべての要素を削除するための `arrayRemove` のサポートを追加しました。これは Postgres との互換性を保つためにのみ必要なものであり、ClickHouse にはすでに、はるかに強力な `arrayFilter` 関数があります。[#52099](https://github.com/ClickHouse/ClickHouse/issues/52099) を解決しました。[#89585](https://github.com/ClickHouse/ClickHouse/pull/89585)([tiwarysaurav](https://github.com/tiwarysaurav))。 -* 平均値を計算する `midpoint` スカラー関数を導入しました。[#89029](https://github.com/ClickHouse/ClickHouse/issues/89029) を解決しました。[#89679](https://github.com/ClickHouse/ClickHouse/pull/89679)([simonmichal](https://github.com/simonmichal))。 -* Web UI にダウンロードボタンが追加されました。UI 上で結果の一部しか表示されていない場合でも、結果全体をダウンロードできます。 [#89768](https://github.com/ClickHouse/ClickHouse/pull/89768) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* コマンド形式のディスクリプタを必要とする Dremio およびその他の Arrow Flight サーバーをサポートするために、`arrow_flight_request_descriptor_type` 設定を追加しました。[#89523](https://github.com/ClickHouse/ClickHouse/issues/89523) を実装。[#89826](https://github.com/ClickHouse/ClickHouse/pull/89826)([Shreyas Ganesh](https://github.com/shreyasganesh0))。 -* 引数とそれに対応する極値を返す新しい集約関数 `argAndMin` および `argAndMax` を追加しました。以前のバージョンでも、引数としてタプルを使用することで同様のことが可能でした。 [#89884](https://github.com/ClickHouse/ClickHouse/pull/89884) ([AbdAlRahman Gad](https://github.com/AbdAlRahmanGad))。 -* Parquet チェックサムの書き込みおよび検証のための設定。[#79012](https://github.com/ClickHouse/ClickHouse/pull/79012) ([Michael Kolupaev](https://github.com/al13n321)). -* Kafka テーブルエンジンに `kafka_schema_registry_skip_bytes` 設定を追加し、メッセージペイロードをパースする前にエンベロープヘッダーのバイト(例: AWS Glue Schema Registry の 19 バイトプレフィックス)をスキップできるようにしました。これにより、メタデータヘッダーを付加するスキーマレジストリからのメッセージを ClickHouse が取り込めるようになります。 [#89621](https://github.com/ClickHouse/ClickHouse/pull/89621) ([Taras Polishchuk](https://github.com/wake-up-neo)). -* ジオメトリを h3 の六角形で埋めることができる `h3PolygonToCells` 関数を追加しました。[#33991](https://github.com/ClickHouse/ClickHouse/issues/33991) を解決します。[#66262](https://github.com/ClickHouse/ClickHouse/pull/66262)([Zacharias Knudsen](https://github.com/zachasme))。 -* S3 内の BLOB に関連付けられているすべてのタグを含む新しい仮想カラム `_tags`(`Map(String, String)`)を追加しました(注: BLOB にタグが付与されていない場合は、追加のリクエストは行われません)。 [#72945](https://github.com/ClickHouse/ClickHouse/issues/72945) を解決しました。[#77773](https://github.com/ClickHouse/ClickHouse/pull/77773)([Zicong Qu](https://github.com/zicongleoqu))。 - -#### 実験的機能 {#experimental-feature} - -* Let's Encrypt などの ACME プロバイダからの TLS 証明書取得をサポートしました([RFC 8555](https://datatracker.ietf.org/doc/html/rfc8555))。これにより、分散クラスタでの TLS の自動構成が可能になります。[#66315](https://github.com/ClickHouse/ClickHouse/pull/66315)([Konstantin Bogdanov](https://github.com/thevar1able))。 -* Prometheus HTTP Query API の一部をサポートしました。有効化するには、設定ファイルの `` セクションに `query_api` 型のルールを追加します。サポートされるハンドラは `/api/v1/query_range` と `/api/v1/query` です。[#86132](https://github.com/ClickHouse/ClickHouse/pull/86132)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 -* フルテキスト検索は、これまでの実験的段階からベータ段階へ移行しました。[#88928](https://github.com/ClickHouse/ClickHouse/pull/88928)([Robert Schulze](https://github.com/rschu1ze))。 -* `Alias` を実験的機能として扱うよう変更しました。`allow_experimental_alias_table_engine = 1` を設定することで有効化できます。[#89712](https://github.com/ClickHouse/ClickHouse/pull/89712)([Kai Zhu](https://github.com/nauu))。 - -#### パフォーマンスの向上 {#performance-improvement} - -* Parquet リーダー v3 はデフォルトで有効です。 [#88827](https://github.com/ClickHouse/ClickHouse/pull/88827) ([Michael Kolupaev](https://github.com/al13n321))。 -* 分散実行: タスクをファイル単位ではなく行グループIDごとに分割するように改善。 [#87508](https://github.com/ClickHouse/ClickHouse/pull/87508) ([scanhex12](https://github.com/scanhex12)). -* `RIGHT` および `FULL` JOIN は、現在 ConcurrentHashJoin を使用するようになりました。これにより、これらの種類の JOIN はより高い並列度で実行されます。さまざまなケースで RIGHT および FULL JOIN のパフォーマンスが最大 2 倍まで向上します。[#78027](https://github.com/ClickHouse/ClickHouse/issues/78027) を解決しました。[#78462](https://github.com/ClickHouse/ClickHouse/pull/78462)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* クエリ内の定数式における大きな値の処理を最適化。[#72880](https://github.com/ClickHouse/ClickHouse/issues/72880) をクローズ。[#81104](https://github.com/ClickHouse/ClickHouse/pull/81104)([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 -* 1万以上のパーツを持つテーブルで大規模なパーティションプルーニングを行う場合、`SELECT` クエリが最大8倍高速に。 [#85535](https://github.com/ClickHouse/ClickHouse/pull/85535) ([James Morrison](https://github.com/jawm))。 -* クエリが固定ハッシュマップを使って集約状態を保持する場合(小さな整数での GROUP BY)、ClickHouse はクエリを高速化するために、その集約状態を並列にマージするようになりました。 [#87366](https://github.com/ClickHouse/ClickHouse/pull/87366) ([Jianfei Hu](https://github.com/incfly)). -* `_part_offset` を SELECT し、異なる ORDER BY を使用するプロジェクションをセカンダリインデックスとして利用できるようにします。有効にすると、特定のクエリ述語を用いてプロジェクションパーツから読み取り、PREWHERE ステージ中に行を効率的にフィルタリングするためのビットマップを生成できます。これは、[#80343](https://github.com/ClickHouse/ClickHouse/issues/80343) に続く、プロジェクションインデックスを実装するための 3 番目のステップです。[#81021](https://github.com/ClickHouse/ClickHouse/pull/81021)([Amos Bird](https://github.com/amosbird))。 -* まれな Aarch64 システムおよびその他のアーキテクチャ/カーネルの組み合わせで発生しうる問題に対して VDSO を修正しました。 [#86096](https://github.com/ClickHouse/ClickHouse/pull/86096) ([Tomas Hulata](https://github.com/tombokombo)). -* コードを簡素化し、[選択アルゴリズム](https://clickhouse.com/blog/lz4-compression-in-clickhouse#how-to-choose-the-best-algorithm)を調整することで、LZ4 の伸長処理の速度を向上させました。 [#88360](https://github.com/ClickHouse/ClickHouse/pull/88360) ([Raúl Marín](https://github.com/Algunenano)). -* S3 は内部的にオブジェクトをキー名プレフィックスに基づいてパーティション分割し、パーティションごとの高いリクエストレートに自動的に対応できるようスケールします。この変更により、2 つの新しい BACKUP 設定 `data_file_name_generator` と `data_file_name_prefix_length` が導入されました。`data_file_name_generator=checksum` の場合、バックアップデータファイルは内容のハッシュ値に基づいて命名されます。例: `checksum = abcd1234ef567890abcd1234ef567890` かつ `data_file_name_prefix_length = 3` のとき、生成されるパスは `abc/d1234ef567890abcd1234ef567890` になります。このようなキーの分布により、S3 パーティション間での負荷分散が強化され、スロットリングのリスクが低減されます。 [#88418](https://github.com/ClickHouse/ClickHouse/pull/88418) ([Julia Kartseva](https://github.com/jkartseva))。 -* 辞書ブロックをキャッシュし、トークン検索においてバイナリ検索の代わりにハッシュテーブルを使用することで、テキストインデックスのパフォーマンスを改善しました。 [#88786](https://github.com/ClickHouse/ClickHouse/pull/88786) ([Elmi Ahmadov](https://github.com/ahmadov)). -* クエリで `optimize_read_in_order` と `query_plan_optimize_lazy_materialization` を同時に利用できるようになりました。これにより [#88767](https://github.com/ClickHouse/ClickHouse/issues/88767) が解消されました。[#88866](https://github.com/ClickHouse/ClickHouse/pull/88866)([Manuel](https://github.com/raimannma))。 -* `DISTINCT` を含むクエリに対して集約プロジェクションを使用するようにしました。 [#86925](https://github.com/ClickHouse/ClickHouse/issues/86925) をクローズしました。 [#88894](https://github.com/ClickHouse/ClickHouse/pull/88894) ([Nihal Z. Miaji](https://github.com/nihalzp))。 -* 連続実行時のパフォーマンスを向上させるため、posting lists をキャッシュするようにしました。 [#88912](https://github.com/ClickHouse/ClickHouse/pull/88912) ([Elmi Ahmadov](https://github.com/ahmadov)). -* 入力データのソート順が LIMIT BY キーと一致する場合に、ストリーミング LIMIT BY トランスフォームを実行するようになりました。 [#88969](https://github.com/ClickHouse/ClickHouse/pull/88969) ([Eduard Karacharov](https://github.com/korowa)). -* 一部のケースにおいて `ANY LEFT JOIN` または `ANY RIGHT JOIN` を `ALL INNER JOIN` に書き換えできるようになりました。 [#89403](https://github.com/ClickHouse/ClickHouse/pull/89403) ([Dmitry Novik](https://github.com/novikd)). -* ログのオーバーヘッドを削減:エントリあたりのアトミック操作の回数を減らしました。 [#89651](https://github.com/ClickHouse/ClickHouse/pull/89651) ([Sergei Trifonov](https://github.com/serxa)). -* 複数の `JOIN` を含むクエリでランタイムフィルターが有効な場合に、複数のランタイムフィルターが追加されたときは、新しく追加されたフィルターステップを他のステップより優先してプッシュダウンするように実装しました。 [#89725](https://github.com/ClickHouse/ClickHouse/pull/89725) ([Alexander Gololobov](https://github.com/davenger)). -* ハッシュテーブルのマージ処理に伴うオーバーヘッドを削減することで、一部の `uniqExact` の処理をわずかに高速化しました。 [#89727](https://github.com/ClickHouse/ClickHouse/pull/89727) ([Raúl Marín](https://github.com/Algunenano)). -* レイジーマテリアライゼーションで処理される行数の上限を 10 から 100 に引き上げました。 [#89772](https://github.com/ClickHouse/ClickHouse/pull/89772) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* `allow_special_serialization_kinds_in_output_formats` をデフォルトで有効にしました。これによりメモリ使用量が減少し、一部の行形式の出力フォーマットにおける Sparse/Replicated カラムの出力クエリ速度が向上します。 [#89402](https://github.com/ClickHouse/ClickHouse/pull/89402) ([Pavel Kruglov](https://github.com/Avogar)). -* `ALTER TABLE ... FREEZE` クエリに並列処理を追加しました。 [#71743](https://github.com/ClickHouse/ClickHouse/pull/71743) ([Kirill](https://github.com/kirillgarbar)). -* bcrypt 認証にキャッシュを追加。 [#87115](https://github.com/ClickHouse/ClickHouse/pull/87115) ([Nikolay Degterinsky](https://github.com/evillique)). -* `FINAL` クエリで使用されるスキップインデックスがプライマリキーを構成するカラム上にある場合、他のパーツでプライマリキーとの交差を確認する追加ステップは不要となり、実行されなくなりました。これにより [#85897](https://github.com/ClickHouse/ClickHouse/issues/85897) が解決されました。[#88368](https://github.com/ClickHouse/ClickHouse/pull/88368)([Shankar Iyer](https://github.com/shankar-iyer))。 -* 最適化設定 `enable_lazy_columns_replication` がデフォルトになり、JOIN におけるメモリ使用量が削減されます。 [#89316](https://github.com/ClickHouse/ClickHouse/pull/89316) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* パーツ向けに `ColumnsDescription` のテーブル単位キャッシュを導入し、多数のパーツや多数のカラムを含むテーブルでのメモリ使用量を削減しました。 [#89352](https://github.com/ClickHouse/ClickHouse/pull/89352) ([Azat Khuzhin](https://github.com/azat)). -* テキストインデックスのデシリアライズ済みヘッダー用キャッシュを導入し、I/O を削減してクエリのパフォーマンスを向上しました。キャッシュは次の新しいサーバー設定で構成できます: - `text_index_header_cache_policy` - `text_index_header_cache_size` - `text_index_header_cache_max_entries` - `text_index_header_cache_size_ratio`。 [#89513](https://github.com/ClickHouse/ClickHouse/pull/89513) ([Elmi Ahmadov](https://github.com/ahmadov))。 - -#### 改善点 {#improvement} - -* `use_variant_as_common_type` が設定されている場合、UNION は必要に応じて型を `Variant` で統一する必要があります。[#82772](https://github.com/ClickHouse/ClickHouse/issues/82772) を解決します。[#83246](https://github.com/ClickHouse/ClickHouse/pull/83246)([Mithun p](https://github.com/mithunputhusseri))。 -* SQL で定義したロールを、`users.xml` で定義されたユーザーに付与できるようになりました。 [#88139](https://github.com/ClickHouse/ClickHouse/pull/88139) ([c-end](https://github.com/c-end)). -* 内部クエリ(辞書、リフレッシュ可能なマテリアライズドビューなどによって内部的に実行されるもの)をログに記録するようにし、新しい `is_internal` 列を `system.query_log` に追加しました。 [#83277](https://github.com/ClickHouse/ClickHouse/pull/83277) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* `IS NOT DISTINCT FROM` (`<=>`) 演算子を拡張しました。逆の `IS DISTINCT FROM` をサポートし、互換性のある異なる型の数値オペランド(例: `Nullable(UInt32)` と `Nullable(Int64)`)同士もサポートします。[#86763](https://github.com/ClickHouse/ClickHouse/issues/86763) を解決します。[#87581](https://github.com/ClickHouse/ClickHouse/pull/87581) ([yanglongwei](https://github.com/ylw510))。 -* `clickhouse-client` と `clickhouse-local` のインタラクティブモードでは、現在カーソルがある識別子と同じ名前の識別子がコマンドライン上でハイライト表示されるようになりました。 [#89689](https://github.com/ClickHouse/ClickHouse/pull/89689) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 出力フォーマット関連の設定は、クエリキャッシュには影響しなくなりました。また、クエリキャッシュは `http_response_headers` 設定を無視するようになりました。これは、Web UI でキャッシュからクエリ結果をダウンロードするといった機能を実装できるようにするためです。 [#89756](https://github.com/ClickHouse/ClickHouse/pull/89756) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* クエリ結果キャッシュが使用されている場合、HTTP インターフェイスは `Age` および `Expires` ヘッダーを返します。`Age` ヘッダーの有無によって結果がキャッシュから取得されたものかどうかが分かり、`Expires` は最初の書き込み時に設定されます。新しいプロファイルイベントを追加しました: `QueryCacheAgeSeconds`, `QueryCacheReadRows`, `QueryCacheReadBytes`, `QueryCacheWrittenRows`, `QueryCacheWrittenBytes`。 [#89759](https://github.com/ClickHouse/ClickHouse/pull/89759) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* `disable_insertion_and_mutation` を有効にしている場合(ClickHouse Cloud の読み取り専用ウェアハウスであることを意味します)でも、リモートテーブルおよびデータレイクテーブルへの挿入を許可しました。 [#88549](https://github.com/ClickHouse/ClickHouse/pull/88549) ([Alexander Tokmakov](https://github.com/tavplubix)). -* クエリ `SYSTEM DROP TEXT INDEX CACHES` を追加しました。 [#90287](https://github.com/ClickHouse/ClickHouse/pull/90287) ([Anton Popov](https://github.com/CurtizJ)). -* より良い一貫性を保証するため、`enable_shared_storage_snapshot_in_query` をデフォルトで有効化しました。欠点はない想定です。 [#82634](https://github.com/ClickHouse/ClickHouse/pull/82634) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* `send_profile_events` 設定を追加しました。この設定により、クライアントはプロファイルイベントを使用しない場合にネットワークトラフィックを削減できます。 [#89588](https://github.com/ClickHouse/ClickHouse/pull/89588) ([Kaviraj Kanagaraj](https://github.com/kavirajk))。 -* クエリごとに近接セグメントのバックグラウンドダウンロードを無効化できるようにしました。 [#89524](https://github.com/ClickHouse/ClickHouse/issues/89524) を修正しました。 [#89668](https://github.com/ClickHouse/ClickHouse/pull/89668)([tanner-bruce](https://github.com/tanner-bruce))。 -* レプリケーテッド MergeTree テーブルで壊れたディスクがある場合でも `FETCH PARTITION` を実行できるようになりました。 [#58663](https://github.com/ClickHouse/ClickHouse/pull/58663) ([Duc Canh Le](https://github.com/canhld94)). -* MySQL データベースエンジンにおいて MySQL テーブルスキーマを取得する際に発生していた捕捉されない例外を修正。 [#69358](https://github.com/ClickHouse/ClickHouse/pull/69358) ([Duc Canh Le](https://github.com/canhld94)). -* すべての DDL `ON CLUSTER` クエリは、アクセス権限の検証をより適切に行うため、元のクエリのユーザーコンテキストで実行されるようになりました。 [#71334](https://github.com/ClickHouse/ClickHouse/pull/71334) ([pufit](https://github.com/pufit)). -* `Parquet` における `UUID` のサポートを、論理型 `UUID` を持つ `FixedString(16)` で表現されている場合に追加しました。 [#74484](https://github.com/ClickHouse/ClickHouse/pull/74484) ([alekseev-maksim](https://github.com/alekseev-maksim)). -* サーバー以外のバイナリでは、ThreadFuzzer をデフォルトで無効化しました。 [#89115](https://github.com/ClickHouse/ClickHouse/pull/89115) ([Raúl Marín](https://github.com/Algunenano)). -* 相関サブクエリの入力サブプランのマテリアライズを遅延させることで、そのサブプランにもクエリプランの最適化が反映されるようにしました。 [#79890](https://github.com/ClickHouse/ClickHouse/issues/79890) の一部。 [#85455](https://github.com/ClickHouse/ClickHouse/pull/85455)([Dmitry Novik](https://github.com/novikd))。 -* `clickhouse-client` では、`SELECT` を伴う `CREATE OR REPLACE TABLE` クエリに対して、進捗バー、ログ、およびパフォーマンス統計を確認できるようになりました。このクエリは、`SELECT` の実行に時間がかかる場合でもタイムアウトを引き起こすことはなくなりました。これにより [#38416](https://github.com/ClickHouse/ClickHouse/issues/38416) が解決されました。 [#87247](https://github.com/ClickHouse/ClickHouse/pull/87247) ([Diskein](https://github.com/Diskein))。 -* ハッシュ関数が `JSON` 型および `Dynamic` 型をサポートするようになりました。[#87734](https://github.com/ClickHouse/ClickHouse/issues/87734) が解決されました。[#87791](https://github.com/ClickHouse/ClickHouse/pull/87791)([Pavel Kruglov](https://github.com/Avogar))。 -* ArrowFlight サーバーの未実装部分を実装。 [#88013](https://github.com/ClickHouse/ClickHouse/pull/88013) ([Vitaly Baranov](https://github.com/vitlibar)). -* サーバーおよび keeper 向けに複数のヒストグラム型メトリクスを追加し、keeper リクエストの実行各段階の所要時間を計測できるようにします。サーバーには次のメトリクスが追加されます: `keeper_client_queue_duration_milliseconds`, `keeper_client_send_duration_milliseconds`, `keeper_client_roundtrip_duration_milliseconds`。keeper には次のメトリクスが追加されます: `keeper_server_preprocess_request_duration_milliseconds`, `keeper_server_process_request_duration_milliseconds`, `keeper_server_queue_duration_milliseconds`, `keeper_server_send_duration_milliseconds`。[#88158](https://github.com/ClickHouse/ClickHouse/pull/88158) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 -* `EXPLAIN` クエリに `input_headers` オプションを追加し、ステップに入力ヘッダーを含められるようにしました。 [#88311](https://github.com/ClickHouse/ClickHouse/pull/88311) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* スロットリングにより遅延された S3 および AzureBlobStorage リクエストの数をカウントするためのプロファイルイベントを追加しました。ディスク関連と非ディスク関連の ThrottlerCount プロファイルイベントの不整合を修正しました。これにより、AzureBlobStorage への HTTP DELETE リクエストはスロットリングされなくなりました。 [#88535](https://github.com/ClickHouse/ClickHouse/pull/88535) ([Sergei Trifonov](https://github.com/serxa))。 -* テーブルレベルの統計情報をキャッシュできるようにし、2 つの設定を追加しました。MergeTree の設定 `refresh_statistics_interval` は統計情報キャッシュを更新する間隔を指定し、0 の場合はキャッシュは作成されません。セッション設定 `use_statistics_cache` は、クエリでテーブルレベルの統計情報キャッシュを使用するかどうかを指定します。より良い統計情報が必要な場合には、このキャッシュを無視して(キャッシュを使わずに)実行することを選択できます。 [#88670](https://github.com/ClickHouse/ClickHouse/pull/88670) ([Han Fei](https://github.com/hanfei1991)). -* `Array` および `Map` のバイナリデシリアライズ処理を修正し、サイズ制限の検証時に `max_binary_string_size` ではなく `max_binary_array_size` 設定を使用するようにしました。これにより、`RowBinary` 形式を読み込む際に適切な制限が適用されるようになりました。 [#88744](https://github.com/ClickHouse/ClickHouse/pull/88744) ([Raufs Dunamalijevs](https://github.com/rienath)). -* マージを実行するバックグラウンドプールで使用するための `LockGuardWithStopWatch` クラスを導入しました。ミューテックスが 1 秒以上保持されている場合、またはスレッドが 1 秒以内にミューテックスを取得できずに待ち続けている場合には、警告メッセージが出力されます。`MergeMutateSelectedEntry` のデストラクタにあった重い処理を `finalize` メソッドに移動し、`MergeTreeBackground` エグゼキュータでロックを長時間保持しないようにしました。 [#88898](https://github.com/ClickHouse/ClickHouse/pull/88898) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* エンドポイントでリージョンが指定されていない場合に、S3 用にオプトインが必要な AWS リージョンを自動的に使用できるようにしました。参考: [オプトインが必要な AWS リージョン](https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-regions.html)。 [#88930](https://github.com/ClickHouse/ClickHouse/pull/88930) ([Andrey Zvonov](https://github.com/zvonand))。 -* ユーザーは、pager 実行中でも clickhouse-client で Ctrl-C を押してクエリをキャンセルできるようになりました。[#80778](https://github.com/ClickHouse/ClickHouse/issues/80778) を解決しました。[#88935](https://github.com/ClickHouse/ClickHouse/pull/88935) ([Grigorii](https://github.com/GSokol))。 -* Web UI は、値が負の場合でもテーブル内にバーを表示します。そのため、負の側と正の側でバーの色を変えた、正負両側の棒グラフを表示できます。 [#89016](https://github.com/ClickHouse/ClickHouse/pull/89016) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Keeper に保存される `SharedMergeTree` のメタデータ量を減らすため、`shared_merge_tree_create_per_replica_metadata_nodes` を無効化しました。 [#89036](https://github.com/ClickHouse/ClickHouse/pull/89036) ([Alexander Tokmakov](https://github.com/tavplubix)). -* `S3Queue` がサーバー設定 `disable_insertion_and_mutation` に従うようにしました。 [#89048](https://github.com/ClickHouse/ClickHouse/pull/89048) ([Raúl Marín](https://github.com/Algunenano)). -* S3 の再パーティショニングが発生し、S3 が 10 分を超えて SlowDown エラーを返し続ける場合でもバックアップが成功するように、25.6 では `s3_retry_attempts` のデフォルト値を 500 に設定しました。 [#89051](https://github.com/ClickHouse/ClickHouse/pull/89051) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 -* `kafka_compression_codec` と `kafka_compression_level` の設定を使用して、両方の Kafka エンジンで Kafka プロデューサーの圧縮方式を指定できるようになりました。 [#89073](https://github.com/ClickHouse/ClickHouse/pull/89073) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 -* `system.columns` に新しい列 `statistics` を追加し、このテーブルに対して作成されている統計情報の種類を示します。統計情報の種類が自動的に作成された場合は、サフィックスとして (auto) が表示されます。 [#89086](https://github.com/ClickHouse/ClickHouse/pull/89086) ([Han Fei](https://github.com/hanfei1991)). -* `*Cluster` テーブル関数にクラスタ名ではなくジェネリック展開 (generic expansion) が渡された場合のエラーメッセージを改善しました。 [#89093](https://github.com/ClickHouse/ClickHouse/pull/89093) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* YTsaurus: データソースとして `replicated_table` を使用できるようにしました。 [#89107](https://github.com/ClickHouse/ClickHouse/pull/89107) ([MikhailBurdukov](https://github.com/MikhailBurdukov))。 -* 空白から始まるクエリは、CLI の履歴に保存されなくなりました。 [#89116](https://github.com/ClickHouse/ClickHouse/pull/89116) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* `hasAnyTokens` または `hasAllTokens` 関数の引数として `String` 型の配列をサポートしました。 [#89124](https://github.com/ClickHouse/ClickHouse/pull/89124) ([Elmi Ahmadov](https://github.com/ahmadov)). -* plain-rewritable ディスクでのメタデータのメモリ上での保存方法を変更し、ディレクトリのネスト構造まわりの多数のバグを解消しました。 [#89125](https://github.com/ClickHouse/ClickHouse/pull/89125) ([Mikhail Artemenko](https://github.com/Michicosun)). -* Iceberg テーブルをクエリする際に `IN` 式内に含まれるサブクエリは、パーティションプルーニング解析の前に事前に正しく計算されるようになりました。 [#89177](https://github.com/ClickHouse/ClickHouse/pull/89177) ([Daniil Ivanik](https://github.com/divanik)). -* `create_table_empty_primary_key_by_default` をデフォルトで有効化しました。利便性の観点からこの方が優れています。 [#89333](https://github.com/ClickHouse/ClickHouse/pull/89333) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* `SHOW CREATE DATABASE` で無効なクエリが生成される場合や、`system.databases` から `engine_full` をクエリした場合に発生し得る `Backup` データベースエンジン内の誤ったコードを修正しました。 [#89477](https://github.com/ClickHouse/ClickHouse/issues/89477) をクローズしました。 [#89341](https://github.com/ClickHouse/ClickHouse/pull/89341)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 以前のバージョンでは、CREATE TABLE クエリでテーブルエンジンを指定しなかった場合、設定 `create_table_empty_primary_key_by_default` は有効になりませんでした。 [#89342](https://github.com/ClickHouse/ClickHouse/pull/89342) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* `chdig` を v25.11.1 にアップデートしました。ログ出力の大幅な改善およびそのほかさまざまな強化を含みます([25.11 のリリースノート](https://github.com/azat/chdig/releases/tag/v25.11.1))。[#89957](https://github.com/ClickHouse/ClickHouse/pull/89957)([Azat Khuzhin](https://github.com/azat))。([25.10 のリリースノート](https://github.com/azat/chdig/releases/tag/v25.10.1))。[#89452](https://github.com/ClickHouse/ClickHouse/pull/89452)([Azat Khuzhin](https://github.com/azat))。 -* Web UI のクエリ用 textarea のリサイズハンドルを全幅にし、少しだけ使いやすくしました。また、ブラウザー標準のリサイズ機能は iPad 上の Safari では利用できませんでしたが、この変更により、知ってさえいれば少なくとも textarea の下端をドラッグしてサイズ変更できるようになりました。 [#89457](https://github.com/ClickHouse/ClickHouse/pull/89457) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* ハッシュ結合の結果生成時のメモリトラッキングを改善しました。以前は、結合結果を生成する際の一時的なメモリ割り当てが適切にトラッキングされておらず、メモリ制限を超過する可能性がありました。 [#89560](https://github.com/ClickHouse/ClickHouse/pull/89560) ([Azat Khuzhin](https://github.com/azat)). -* Async server log: フラッシュをより早く実行し、デフォルトのキューサイズを増やしました。 [#89597](https://github.com/ClickHouse/ClickHouse/pull/89597) ([Raúl Marín](https://github.com/Algunenano)). -* `system.asynchronous_metrics` 内の誤った `FilesystemCacheBytes`(およびその他の値)を修正しました。ファイルシステムキャッシュに対する `SYSTEM` クエリを 1 回だけ実行するようにしました。同じパスを指すキャッシュ向けに、`system.filesystem_caches` 内に Atomic なビューを導入しました。[#89640](https://github.com/ClickHouse/ClickHouse/pull/89640) ([Azat Khuzhin](https://github.com/azat)). -* `system.view_refreshes` の一部の列の説明をより明確にしました。 [#89701](https://github.com/ClickHouse/ClickHouse/pull/89701) ([Tuan Pham Anh](https://github.com/tuanpach)). -* STS エンドポイントとやり取りする際に S3 認証情報をキャッシュし、異なる関数呼び出し間で再利用できるようにしました。キャッシュされる認証情報の数は `s3_credentials_provider_max_cache_size` で制御できます。 [#89734](https://github.com/ClickHouse/ClickHouse/pull/89734) ([Antonio Andelic](https://github.com/antonio2368)). -* 複数の式ステップが後続する場合の runtime filter のプッシュダウンの動作を修正しました。 [#89741](https://github.com/ClickHouse/ClickHouse/pull/89741) ([Alexander Gololobov](https://github.com/davenger)). -* システムメモリが 5GB 未満の場合、デフォルトでは実行可能ファイルを mlock しないようにしました。 [#89751](https://github.com/ClickHouse/ClickHouse/pull/89751) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Web UI における型ヒントがテーブルヘッダーからはみ出さないようになりました。また、ツールチップの表示も修正され、テーブルヘッダーの背後に隠れて表示されることがなくなりました。 [#89753](https://github.com/ClickHouse/ClickHouse/pull/89753) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Web UI 上にテーブルのプロパティを表示できるようにしました。行数またはバイト数をクリックすると、`system.tables` からのクエリが表示されます。テーブルエンジンをクリックすると、`SHOW TABLES` が表示されます。 [#89771](https://github.com/ClickHouse/ClickHouse/pull/89771) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 追記書き込みをサポートしていないディスクを使用するテーブルに対しても `non_replicated_deduplication_window` をサポートしました。[#87281](https://github.com/ClickHouse/ClickHouse/issues/87281) を解決しました。[#89796](https://github.com/ClickHouse/ClickHouse/pull/89796)([Tuan Pham Anh](https://github.com/tuanpach))。 -* コマンド `SYSTEM FLUSH ASYNC INSERT QUEUE` でフラッシュ対象のテーブルのリストを指定できるようにしました。[#89915](https://github.com/ClickHouse/ClickHouse/pull/89915) ([Sema Checherinda](https://github.com/CheSema)). -* 重複排除ブロック ID を `system.part_log` に記録するようにしました。 [#89928](https://github.com/ClickHouse/ClickHouse/pull/89928) ([Sema Checherinda](https://github.com/CheSema)). -* ファイルシステムキャッシュ設定 `keep_free_space_remove_batch` のデフォルト値を 10 から 100 に変更しました。より適切な値であるためです。 [#90030](https://github.com/ClickHouse/ClickHouse/pull/90030) ([Kseniia Sumarokova](https://github.com/kssenii)). -* TTL DROP マージタイプを導入し、この種のマージ後には DELETE TTL マージの次回スケジュールを更新しないようにしました。 [#90077](https://github.com/ClickHouse/ClickHouse/pull/90077) ([Mikhail Artemenko](https://github.com/Michicosun)). -* S3Queue のクリーンアップ中の RemoveRecursive Keeper リクエストについて、より小さいノード数の上限を使用するようにしました。 [#90201](https://github.com/ClickHouse/ClickHouse/pull/90201) ([Antonio Andelic](https://github.com/antonio2368)). -* `SYSTEM FLUSH LOGS` クエリが、ログが空の場合でもテーブルの作成完了を待機するようになりました。 [#89408](https://github.com/ClickHouse/ClickHouse/pull/89408) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* 分散マージ集約で複数のリモートシャードが関与している場合、または `IN` サブクエリがある場合に誤った `rows_before_limit_at_least` が設定される問題を修正しました。これにより [#63280](https://github.com/ClickHouse/ClickHouse/issues/63280) が修正されました。[#63511](https://github.com/ClickHouse/ClickHouse/pull/63511) ([Amos Bird](https://github.com/amosbird))。 -* `INSERT INTO ... SELECT` クエリ実行後に `0 rows in set` と表示される問題を修正しました。 [#47800](https://github.com/ClickHouse/ClickHouse/issues/47800) をクローズしました。 [#79462](https://github.com/ClickHouse/ClickHouse/pull/79462)([Engel Danila](https://github.com/aaaengel))。 - -#### バグ修正(公式安定版リリースでユーザーに影響する誤動作) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* 定数引数および短絡評価を用いる `multiIf` を修正。 [#72714](https://github.com/ClickHouse/ClickHouse/issues/72714) をクローズ。 [#84546](https://github.com/ClickHouse/ClickHouse/pull/84546)([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 -* サブクエリによる制約付きテーブルに対して `SELECT` を実行した際に発生する論理エラーを修正しました。[#84190](https://github.com/ClickHouse/ClickHouse/issues/84190) を解決します。[#85575](https://github.com/ClickHouse/ClickHouse/pull/85575)([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 -* 疑問符(?)を含む URI を使用する特殊なクエリで発生していたバグを修正しました。 [#85663](https://github.com/ClickHouse/ClickHouse/pull/85663) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* `EXPLAIN indexes = 1` の出力で、まれに列が欠落することがあった問題を修正しました。[#86696](https://github.com/ClickHouse/ClickHouse/issues/86696) を解決しました。 [#87083](https://github.com/ClickHouse/ClickHouse/pull/87083)([Michael Kolupaev](https://github.com/al13n321))。 -* 並列レプリカでサブカラムを追加できなくなる可能性のあった不具合を修正しました。 [#84888](https://github.com/ClickHouse/ClickHouse/issues/84888) をクローズ。 [#87514](https://github.com/ClickHouse/ClickHouse/pull/87514)([Pavel Kruglov](https://github.com/Avogar))。 -* parquet writer において、`created_by` 文字列を正しい形式で出力するようにしました(例:`ClickHouse version 25.10.1 (build 5b1dfb14925db8901a4e9202cd5d63c11ecfbb9f)`、従来の `ClickHouse v25.9.1.1-testing` ではなく)。古い parquet-mr が書き出した不正なファイルとの互換性を確保するため、parquet reader を修正しました。 [#87735](https://github.com/ClickHouse/ClickHouse/pull/87735) ([Michael Kolupaev](https://github.com/al13n321)). -* `cramersV`、`cramersVBiasCorrected`、`theilsU`、`contingency` において、誤った結果の原因となっていた φ二乗値の計算を修正しました。 [#87831](https://github.com/ClickHouse/ClickHouse/pull/87831) ([Nihal Z. Miaji](https://github.com/nihalzp))。 -* JSON 内の Float 型と Bool 型が混在する配列の読み取りを修正しました。以前はこのようなデータを挿入すると例外がスローされていました。 [#88008](https://github.com/ClickHouse/ClickHouse/pull/88008) ([Pavel Kruglov](https://github.com/Avogar)). -* TCPHandler において QueryState に shared_ptr を使用し、setProgressCallback、setFileProgressCallback、および setBlockMarshallingCallback で状態が無効になっているかどうかを検出できるようにしました。 [#88201](https://github.com/ClickHouse/ClickHouse/pull/88201) ([Tuan Pham Anh](https://github.com/tuanpach)). -* query_plan_optimize_join_order_limit > 1 のときのクロス JOIN の順序変更における論理エラーを修正し、[#89409](https://github.com/ClickHouse/ClickHouse/issues/89409) をクローズ。[#88286](https://github.com/ClickHouse/ClickHouse/pull/88286)([Vladimir Cherkasov](https://github.com/vdimir))。 -* [#88426](https://github.com/ClickHouse/ClickHouse/issues/88426) を修正。1. Alias テーブルでの明示的なカラム定義を禁止し、カラムはターゲットテーブルから自動的に読み込まれるようにしました。これにより、Alias テーブルが常にターゲットテーブルのスキーマと一致することを保証します。2. IStorage からより多くのメソッドをプロキシするようにしました。[#88552](https://github.com/ClickHouse/ClickHouse/pull/88552)([Kai Zhu](https://github.com/nauu))。 -* 復旧後、Replicated データベースのレプリカが長時間にわたって `Failed to marked query-0004647339 as finished (finished=No node, synced=No node)` のようなメッセージを出力し続けてスタックすることがありましたが、修正されました。 [#88671](https://github.com/ClickHouse/ClickHouse/pull/88671) ([Alexander Tokmakov](https://github.com/tavplubix))。 -* サブクエリを含む新しいアナライザで発生し得る "Context has expired" エラーを修正。 [#88694](https://github.com/ClickHouse/ClickHouse/pull/88694) ([Azat Khuzhin](https://github.com/azat)). -* input_format_parquet_local_file_min_bytes_for_seek を 0 に設定した場合に Parquet リーダーで発生していたセグメンテーションフォルトを修正しました。 [#78456](https://github.com/ClickHouse/ClickHouse/issues/78456) を解決しました。 [#88784](https://github.com/ClickHouse/ClickHouse/pull/88784) ([Animesh](https://github.com/anibilthare))。 -* PK が逆順に並んでいる場合に、min(PK)/max(PK) が誤った結果になる問題を修正しました。これにより [#83619](https://github.com/ClickHouse/ClickHouse/issues/83619) が解決されました。 [#88796](https://github.com/ClickHouse/ClickHouse/pull/88796) ([Amos Bird](https://github.com/amosbird)). -* 内部テーブルを DROP する際に、`max_table_size_to_drop` および `max_partition_size_to_drop` 設定によるサイズ制限が正しく適用されるように修正。 [#88812](https://github.com/ClickHouse/ClickHouse/pull/88812) ([Nikolay Degterinsky](https://github.com/evillique)). -* 単一の引数で呼び出された場合に、`top_k` が `threshold` パラメータを正しく考慮するように修正しました。[#88757](https://github.com/ClickHouse/ClickHouse/issues/88757) をクローズ。[#88867](https://github.com/ClickHouse/ClickHouse/pull/88867)([Manuel](https://github.com/raimannma))。 -* SSL 接続が必要な ArrowFlight エンドポイントソース(AWS ALB 配下など)から、特定のデータセットを正しく要求できるようになりました。 [#88868](https://github.com/ClickHouse/ClickHouse/pull/88868) ([alex-shchetkov](https://github.com/alex-shchetkov))。 -* ALTER によって追加されたマテリアライズされていない Nested(Tuple(...)) の処理を修正。[#83133](https://github.com/ClickHouse/ClickHouse/issues/83133) を修正。[#88879](https://github.com/ClickHouse/ClickHouse/pull/88879)([Azat Khuzhin](https://github.com/azat))。 -* 関数 `reverseUTF8` のバグを修正しました。以前のバージョンでは、長さ 4 バイトの UTF-8 コードポイントのバイト列を誤って逆順にしていました。この変更により [#88913](https://github.com/ClickHouse/ClickHouse/issues/88913) がクローズされます。 [#88914](https://github.com/ClickHouse/ClickHouse/pull/88914) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* icebergS3Cluster プロトコルを修正しました。`iceberg` クラスタ関数でスキーマ進化および位置削除と等価削除をサポートしました。 [#88287](https://github.com/ClickHouse/ClickHouse/issues/88287) を解決しました。 [#88919](https://github.com/ClickHouse/ClickHouse/pull/88919) ([Yang Jiang](https://github.com/Ted-Jiang)). -* 分散テーブル上で parallel replicas を使用するクエリに対して `parallel_replicas_support_projection` を無効化しました。[#88899](https://github.com/ClickHouse/ClickHouse/issues/88899) をクローズ。[#88922](https://github.com/ClickHouse/ClickHouse/pull/88922)([zoomxi](https://github.com/zoomxi))。 -* 内部キャスト時にコンテキストを伝播する。伝播されていなかった cast 設定に関する複数の問題を修正。Closes [#88873](https://github.com/ClickHouse/ClickHouse/issues/88873). Closes [#78025](https://github.com/ClickHouse/ClickHouse/issues/78025). [#88929](https://github.com/ClickHouse/ClickHouse/pull/88929) ([Manuel](https://github.com/raimannma)). -* file() 関数におけるグロブパターンからのファイル形式の取得処理を修正。 [#88920](https://github.com/ClickHouse/ClickHouse/issues/88920) を解決。 [#88947](https://github.com/ClickHouse/ClickHouse/pull/88947)([Vitaly Baranov](https://github.com/vitlibar))。 -* SQL SECURITY DEFINER でビューを作成する際に `SET DEFINER :definer` へのアクセス権チェックを行わないようにしました。[#88968](https://github.com/ClickHouse/ClickHouse/pull/88968) ([pufit](https://github.com/pufit)). -* 部分的な `QBit` 読み取り向けの最適化により、`p` が `Nullable` の場合に戻り値の型から誤って `Nullable` が削除されていた `L2DistanceTransposed(vec1, vec2, p)` における `LOGICAL_ERROR` を修正しました。 [#88974](https://github.com/ClickHouse/ClickHouse/pull/88974) ([Raufs Dunamalijevs](https://github.com/rienath))。 -* 不明なカタログ型によるクラッシュを修正しました。[#88819](https://github.com/ClickHouse/ClickHouse/issues/88819) を解決しました。[#88987](https://github.com/ClickHouse/ClickHouse/pull/88987) ([scanhex12](https://github.com/scanhex12)). -* これにより [#88081](https://github.com/ClickHouse/ClickHouse/issues/88081) をクローズします。 [#88988](https://github.com/ClickHouse/ClickHouse/pull/88988)([scanhex12](https://github.com/scanhex12))。 -* スキップインデックスの解析時のパフォーマンス低下を修正。 [#89004](https://github.com/ClickHouse/ClickHouse/pull/89004) ([Anton Popov](https://github.com/CurtizJ)). -* 存在しないロールが割り当てられているユーザーによる `clusterAllReplicas` の実行時に発生する `ACCESS_ENTITY_NOT_FOUND` エラーを修正。[#87670](https://github.com/ClickHouse/ClickHouse/issues/87670) を解決。[#89068](https://github.com/ClickHouse/ClickHouse/pull/89068)([pufit](https://github.com/pufit))。 -* CHECK 制約によるスパース列の処理を修正。[#88637](https://github.com/ClickHouse/ClickHouse/issues/88637) をクローズ。[#89076](https://github.com/ClickHouse/ClickHouse/pull/89076)([Eduard Karacharov](https://github.com/korowa))。 -* MergeTreeReaderTextIndex で仮想カラムを埋める際の誤った行数の扱いを修正し、LOGICAL_ERROR によるクラッシュが発生していた問題を解消しました。 [#89095](https://github.com/ClickHouse/ClickHouse/pull/89095) ([Peng Jian](https://github.com/fastio)). -* マージ準備中に例外が発生した際に TTL マージカウンタがリークするのを防止します。[#89019](https://github.com/ClickHouse/ClickHouse/issues/89019) を解決します。 [#89127](https://github.com/ClickHouse/ClickHouse/pull/89127)([save-my-heart](https://github.com/save-my-heart))。 -* base32/base58 エンコードおよびデコード処理に必要なバッファサイズの計算を修正しました。 [#89133](https://github.com/ClickHouse/ClickHouse/pull/89133) ([Antonio Andelic](https://github.com/antonio2368)). -* シャットダウンとバックグラウンドの `INSERT` の競合により Distributed テーブルエンジンで発生する use-after-free を修正。[#88640](https://github.com/ClickHouse/ClickHouse/issues/88640) を解決。[#89136](https://github.com/ClickHouse/ClickHouse/pull/89136)([Azat Khuzhin](https://github.com/azat))。 -* Parquet のパース時にミュータブルな例外が原因で発生しうるデータレースを回避しました。 [#88385](https://github.com/ClickHouse/ClickHouse/issues/88385) を修正。 [#89174](https://github.com/ClickHouse/ClickHouse/pull/89174)([Azat Khuzhin](https://github.com/azat))。 -* リフレッシュ可能なマテリアライズドビュー: リフレッシュ中にソーステーブルが完全に削除された場合に発生するまれなサーバークラッシュを修正しました。 [#89203](https://github.com/ClickHouse/ClickHouse/pull/89203) ([Michael Kolupaev](https://github.com/al13n321)). -* HTTP インターフェイスで圧縮ストリーム送信中にエラーを返す際にバッファをフラッシュするようにしました。 [#89256](https://github.com/ClickHouse/ClickHouse/pull/89256) ([Alexander Tokmakov](https://github.com/tavplubix)). -* クエリマスキングルールが DDL ステートメントに誤って適用されないようにしました。 [#89272](https://github.com/ClickHouse/ClickHouse/pull/89272) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). -* MergeTreeReaderTextIndex で仮想カラムを埋める際の行数カウントの誤りにより LOGICAL_ERROR でクラッシュする問題を修正しました。[#89095](https://github.com/ClickHouse/ClickHouse/issues/89095) を再オープンします。 [#89303](https://github.com/ClickHouse/ClickHouse/pull/89303) ([Jimmy Aguilar Mena](https://github.com/Ergus))。 -* Statistics countmin が LowCardinality(Nullable(String)) の estimate データ型をサポートしておらず、LOGICAL_ERROR が発生していた問題を修正しました。 [#89343](https://github.com/ClickHouse/ClickHouse/pull/89343) ([Han Fei](https://github.com/hanfei1991)). -* `IN` 関数で、主キー列の型が `IN` 関数の右側の列の型と異なる場合に、クラッシュまたは未定義動作が発生する可能性がある問題。例: `SELECT string_column, int_column FROM test_table WHERE (string_column, int_column) IN (SELECT '5', 'not a number')`。多数の行が選択され、その中に互換性のない型を含む行が存在する場合に発生することがあります。 [#89367](https://github.com/ClickHouse/ClickHouse/pull/89367) ([Ilya Golshtein](https://github.com/ilejn)). -* `countIf(*)` の引数が途中で切り捨てられる問題を修正。 [#89372](https://github.com/ClickHouse/ClickHouse/issues/89372) をクローズ。 [#89373](https://github.com/ClickHouse/ClickHouse/pull/89373)([Manuel](https://github.com/raimannma))。 -* ミューテーション統計用の非圧縮チェックサムが失われないようにしました。 [#89381](https://github.com/ClickHouse/ClickHouse/pull/89381) ([Azat Khuzhin](https://github.com/azat)). -* `p` が `LowCardinality(Nullable(T))` の場合に、QBit の部分読み出しの最適化によって戻り値の型から誤って `Nullable` が削除されていた `L2DistanceTransposed(vec1, vec2, p)` で発生していた `LOGICAL_ERROR` を修正しました。 [#88362](https://github.com/ClickHouse/ClickHouse/issues/88362) を解決します。 [#89397](https://github.com/ClickHouse/ClickHouse/pull/89397)([Raufs Dunamalijevs](https://github.com/rienath))。 -* 古いバージョンの ClickHouse が書き込んだタプル本体に対して、不正な sparse シリアライゼーションでエンコードされたテーブルの読み込みを修正しました。 [#89405](https://github.com/ClickHouse/ClickHouse/pull/89405) ([Azat Khuzhin](https://github.com/azat)). -* `deduplicate_merge_projection_mode='ignore'` を使用している場合に、TTL によって空になったパーツと、空でないプロジェクションを含むパーツとのマージ処理が誤って行われていた問題を修正しました。 [#89430](https://github.com/ClickHouse/ClickHouse/issues/89430) を解決します。 [#89458](https://github.com/ClickHouse/ClickHouse/pull/89458)([Amos Bird](https://github.com/amosbird))。 -* 重複したカラムを含む `full_sorting_merge` 結合における論理エラーを修正しました。[#86957](https://github.com/ClickHouse/ClickHouse/issues/86957) を解決しました。 [#89495](https://github.com/ClickHouse/ClickHouse/pull/89495)([Vladimir Cherkasov](https://github.com/vdimir))。 -* ローテーション時にチェンジログが正しくリネームされなかった場合の、Keeper 起動時におけるチェンジログの読み取り処理を修正しました。 [#89496](https://github.com/ClickHouse/ClickHouse/pull/89496) ([Antonio Andelic](https://github.com/antonio2368)). -* 右側テーブルの一意キーに対して OR 条件を使用した場合に発生する誤った JOIN 結果を修正します。[#89391](https://github.com/ClickHouse/ClickHouse/issues/89391) を解決します。[#89512](https://github.com/ClickHouse/ClickHouse/pull/89512) ([Vladimir Cherkasov](https://github.com/vdimir))。 -* analyzer と PK IN (subquery) の組み合わせで発生しうる「Context has expired」の問題を修正 (v2)。[#89433](https://github.com/ClickHouse/ClickHouse/issues/89433) を修正。[#89527](https://github.com/ClickHouse/ClickHouse/pull/89527)([Azat Khuzhin](https://github.com/azat))。 -* 大文字のカラム名を持つテーブルの MaterializedPostgreSQL レプリケーションを修正しました。[#72363](https://github.com/ClickHouse/ClickHouse/issues/72363) を解決します。[#89530](https://github.com/ClickHouse/ClickHouse/pull/89530)([Danylo Osipchuk](https://github.com/Lenivaya))。 -* 集約関数の状態に `LowCardinality(String)` 列のシリアライズ済みの値が含まれている場合にクラッシュが発生する問題を修正しました。 [#89550](https://github.com/ClickHouse/ClickHouse/pull/89550) ([Pavel Kruglov](https://github.com/Avogar)). -* `enable_lazy_columns_replication` 設定を有効にした状態で、JOIN の右側で `ARRAY JOIN` を使用した際にクラッシュが発生する問題を修正。 [#89551](https://github.com/ClickHouse/ClickHouse/pull/89551) ([Pavel Kruglov](https://github.com/Avogar)). -* query_plan_convert_join_to_in の論理的な誤りを修正。[#89066](https://github.com/ClickHouse/ClickHouse/issues/89066) を解決。[#89554](https://github.com/ClickHouse/ClickHouse/pull/89554)([Vladimir Cherkasov](https://github.com/vdimir))。 -* 変換できない型不一致のカラムと定数を含む条件を推定しようとした際に、統計推定器で発生していた例外を修正しました。 [#89596](https://github.com/ClickHouse/ClickHouse/pull/89596) ([Han Fei](https://github.com/hanfei1991)). -* 実行時フィルターは、ハッシュ結合などサポートされている結合アルゴリズムに対してのみ追加するようにしました。フィルターは、結合アルゴリズムがまず右側をすべて読み終えてから左側を読み始める場合にのみ構築できますが、例えば FullSortingMergeJoin は両側を同時に読みます。 [#89220](https://github.com/ClickHouse/ClickHouse/issues/89220) を修正しました。 [#89652](https://github.com/ClickHouse/ClickHouse/pull/89652)([Alexander Gololobov](https://github.com/davenger))。 -* `sparseGrams` トークナイザー使用時における `hasAnyTokens`、`hasAllTokens`、`tokens` 関数の同時実行に関する問題を修正しました。[#89605](https://github.com/ClickHouse/ClickHouse/issues/89605) を解決します。 [#89665](https://github.com/ClickHouse/ClickHouse/pull/89665)([Elmi Ahmadov](https://github.com/ahmadov))。 -* 一部のケースで発生していた、`JOIN` ランタイムフィルタに起因する論理エラー/クラッシュを修正しました。[#89062](https://github.com/ClickHouse/ClickHouse/issues/89062) を修正。[#89666](https://github.com/ClickHouse/ClickHouse/pull/89666)([Alexander Gololobov](https://github.com/davenger))。 -* `enable_lazy_columns_replication` が有効な状態で Map 列に対して ARRAY JOIN を行う際に発生する可能性のある論理エラーを修正しました。[#89705](https://github.com/ClickHouse/ClickHouse/issues/89705) をクローズ。[#89717](https://github.com/ClickHouse/ClickHouse/pull/89717)([Pavel Kruglov](https://github.com/Avogar))。 -* キャンセル処理中のリモートクエリにおいて、切断後にリモートサーバーから読み込もうとしてクラッシュする問題を回避しました。[#89468](https://github.com/ClickHouse/ClickHouse/issues/89468) を解決。[#89740](https://github.com/ClickHouse/ClickHouse/pull/89740)([Azat Khuzhin](https://github.com/azat))。 -* プロジェクションインデックスの読み取りパスにおけるレースコンディションを解消しました。 [#89497](https://github.com/ClickHouse/ClickHouse/issues/89497) を解決しました。 [#89762](https://github.com/ClickHouse/ClickHouse/pull/89762)([Peng Jian](https://github.com/fastio))。 -* プロジェクションインデックスの読み取りにおいてレースコンディションを引き起こす可能性があったバグを修正し、[#89497](https://github.com/ClickHouse/ClickHouse/issues/89497) を解決しました。 [#89775](https://github.com/ClickHouse/ClickHouse/pull/89775) ([Amos Bird](https://github.com/amosbird))。 -* パーティションを持たないテーブルに対する Paimon テーブル関数の処理を修正しました。[#89690](https://github.com/ClickHouse/ClickHouse/issues/89690) を解決しました。[#89793](https://github.com/ClickHouse/ClickHouse/pull/89793)([JIaQi](https://github.com/JiaQiTang98))。 -* 高度な JSON 共有データシリアライゼーションにおいて、パスおよびそのサブカラムの読み取り時に発生しうる論理エラーを修正しました。 [#89805](https://github.com/ClickHouse/ClickHouse/issues/89805) をクローズ。 [#89819](https://github.com/ClickHouse/ClickHouse/pull/89819) ([Pavel Kruglov](https://github.com/Avogar))。 -* データ型のバイナリデシリアライズで発生する可能性のあったスタックオーバーフローを修正し、[#88710](https://github.com/ClickHouse/ClickHouse/issues/88710) をクローズ。[#89822](https://github.com/ClickHouse/ClickHouse/pull/89822)([Pavel Kruglov](https://github.com/Avogar))。 -* `IN` 関数内で空のタプルが使われた場合に発生する論理エラーを修正。[#88343](https://github.com/ClickHouse/ClickHouse/issues/88343) をクローズ。[#89850](https://github.com/ClickHouse/ClickHouse/pull/89850)([Nihal Z. Miaji](https://github.com/nihalzp))。 -* 互換性維持のため、旧アナライザーでは `optimize_injective_functions_in_group_by` の設定にかかわらず `GROUP BY` から単射関数を除去します。 [#89854](https://github.com/ClickHouse/ClickHouse/issues/89854) を解決します。 [#89870](https://github.com/ClickHouse/ClickHouse/pull/89870) ([Raufs Dunamalijevs](https://github.com/rienath))。 -* たとえばメモリ制限などによってマージが中断された場合、merge mutate background executor はロックなしでマージタスクに対して `cancel` を呼び出しますが、この場合、部分的に作成された結果パーツは削除されません(完了しておらず、この段階では可視状態にもなっていなかったため)。その後、マージタスクが破棄され、それに伴い結果パーツの破棄がトリガーされます。これによりディスクトランザクションがロールバックされ、S3 からデータが削除されます。最終的に、このガベージクリーンアップは merge mutate background executor のロック取得下で実行されるようになりました。 [#89875](https://github.com/ClickHouse/ClickHouse/pull/89875) ([Mikhail Artemenko](https://github.com/Michicosun)). -* `reverse` 関数および `CAST` 関数内で空のタプルを扱う際の論理エラーを修正しました。 [#89137](https://github.com/ClickHouse/ClickHouse/issues/89137) をクローズしました。 [#89908](https://github.com/ClickHouse/ClickHouse/pull/89908) ([Nihal Z. Miaji](https://github.com/nihalzp))。 -* ClickHouse は、デフォルトで `SHOW DATABASES` クエリにデータレイクカタログのデータベースを表示するようになりました。 [#89914](https://github.com/ClickHouse/ClickHouse/pull/89914) ([alesapin](https://github.com/alesapin)). -* バックアップにおける GCS のネイティブコピーの利用を修正しました。不適切なクライアントのクローン処理が原因で、GCS のネイティブコピーが常に失敗し、データを自前で読み書きするという最適でない方法が使用されていました。 [#89923](https://github.com/ClickHouse/ClickHouse/pull/89923) ([Antonio Andelic](https://github.com/antonio2368)). -* base32Encode のバッファサイズ計算を修正しました。サイズが 5 未満の文字列を含むカラムに対して base32Encode を計算するとクラッシュにつながる可能性がありました。 [#89911](https://github.com/ClickHouse/ClickHouse/issues/89911) を解決します。 [#89929](https://github.com/ClickHouse/ClickHouse/pull/89929)([Antonio Andelic](https://github.com/antonio2368))。 -* `SHOW COLUMNS` と `SHOW FUNCTIONS` クエリにおける誤ったエスケープ処理を修正。[#89942](https://github.com/ClickHouse/ClickHouse/pull/89942) ([alesapin](https://github.com/alesapin))。 -* ユーザー名に '@' 文字を含む場合の MongoDB エンジンにおける URL 検証を修正しました。これまでは、'@' を含むユーザー名が不適切なエンコードによりエラーを引き起こしていました。 [#89970](https://github.com/ClickHouse/ClickHouse/pull/89970) ([Kai Zhu](https://github.com/nauu)). -* [#90592](https://github.com/ClickHouse/ClickHouse/issues/90592) でバックポート: `IN` 句内で `ARRAY JOIN` を使用し、かつ `enable_lazy_columns_replication` 設定が有効な場合に発生しうるリモートクエリのクラッシュを修正。[#90361](https://github.com/ClickHouse/ClickHouse/issues/90361) を解決します。[#89997](https://github.com/ClickHouse/ClickHouse/pull/89997)([Pavel Kruglov](https://github.com/Avogar))。 -* [#90448](https://github.com/ClickHouse/ClickHouse/issues/90448) でバックポート済み: 一部のケースで発生していた、テキスト形式における `String` からの不正な `DateTime64` 値の推論を修正。 [#89368](https://github.com/ClickHouse/ClickHouse/issues/89368) を解決。 [#90013](https://github.com/ClickHouse/ClickHouse/pull/90013) ([Pavel Kruglov](https://github.com/Avogar))。 -* `BSONEachRow` と `MsgPack` における空のタプルカラムに起因する論理エラーを修正。[#89814](https://github.com/ClickHouse/ClickHouse/issues/89814) および [#71536](https://github.com/ClickHouse/ClickHouse/issues/71536) をクローズ。[#90018](https://github.com/ClickHouse/ClickHouse/pull/90018)([Nihal Z. Miaji](https://github.com/nihalzp))。 -* [#90457](https://github.com/ClickHouse/ClickHouse/issues/90457) でバックポートされました: 集約状態およびその他のソースからのデータをデシリアライズする際にサイズチェックを行うようにしました。 [#90031](https://github.com/ClickHouse/ClickHouse/pull/90031)([Raúl Marín](https://github.com/Algunenano))。 -* 重複カラムを含む JOIN で発生する可能性のある `Invalid number of rows in Chunk` エラーを修正しました。[#89411](https://github.com/ClickHouse/ClickHouse/issues/89411) を解消しました。[#90053](https://github.com/ClickHouse/ClickHouse/pull/90053)([Vladimir Cherkasov](https://github.com/vdimir))。 -* [#90588](https://github.com/ClickHouse/ClickHouse/issues/90588) でバックポート: `enable_lazy_columns_replication` 設定を有効にした状態で `ARRAY JOIN` を使用して挿入を行う際に発生する可能性のあるエラー `Column with Array type is not represented by ColumnArray column: Replicated` を修正しました。 [#90066](https://github.com/ClickHouse/ClickHouse/pull/90066) ([Pavel Kruglov](https://github.com/Avogar)). -* `user_files` で先頭がドットのファイルを許可しました。Closes [#89662](https://github.com/ClickHouse/ClickHouse/issues/89662). [#90079](https://github.com/ClickHouse/ClickHouse/pull/90079) ([Raúl Marín](https://github.com/Algunenano)). -* [#90647](https://github.com/ClickHouse/ClickHouse/issues/90647) でバックポート: 大きなステップサイズを使用した場合に `numbers` システムテーブルで発生する論理エラーと剰余演算のバグを修正。[#83398](https://github.com/ClickHouse/ClickHouse/issues/83398) をクローズ。[#90123](https://github.com/ClickHouse/ClickHouse/pull/90123)([Nihal Z. Miaji](https://github.com/nihalzp))。 -* 辞書引数の解析時に発生する整数オーバーフローを修正。Closes [#78506](https://github.com/ClickHouse/ClickHouse/issues/78506). [#90171](https://github.com/ClickHouse/ClickHouse/pull/90171) ([Raúl Marín](https://github.com/Algunenano)). -* [#90468](https://github.com/ClickHouse/ClickHouse/issues/90468) にバックポート済み: 25.8 へのスムーズなアップグレードを妨げていた Hive パーティショニングの非互換性を修正(アップグレード中に発生するエラー `All hive partitioning columns must be present in the schema` を解消)。[#90202](https://github.com/ClickHouse/ClickHouse/pull/90202)([Kseniia Sumarokova](https://github.com/kssenii))。 -* クエリ条件キャッシュが有効な状態での `SELECT` クエリにおいて、軽量更新後に誤ったクエリ結果が返される可能性があった問題を修正しました。[#90176](https://github.com/ClickHouse/ClickHouse/issues/90176) を修正。[#90054](https://github.com/ClickHouse/ClickHouse/issues/90054) を修正。[#90204](https://github.com/ClickHouse/ClickHouse/pull/90204)([Anton Popov](https://github.com/CurtizJ))。 -* 不正な形式のシャードディレクトリ名を解析する際に `StorageDistributed` がクラッシュする問題を修正。 [#90243](https://github.com/ClickHouse/ClickHouse/pull/90243) ([Aleksandr Musorin](https://github.com/AVMusorin)). -* `LogicalExpressionOptimizerPass` において、文字列から整数またはブール値への暗黙的な変換を正しく処理するようにしました。[#89803](https://github.com/ClickHouse/ClickHouse/issues/89803) を解決します。[#90245](https://github.com/ClickHouse/ClickHouse/pull/90245)([Elmi Ahmadov](https://github.com/ahmadov))。 -* テーブル定義内の特定の skip index の誤った形式を修正しました。これが原因で `METADATA_MISMATCH` が発生し、Replicated Database における新しいレプリカの作成が失敗していました。 [#90251](https://github.com/ClickHouse/ClickHouse/pull/90251) ([Nikolay Degterinsky](https://github.com/evillique)). -* [#90381](https://github.com/ClickHouse/ClickHouse/issues/90381) でバックポート済み: パーツの行数が `index_granularity` より少ない場合に、MergeTreeReaderIndex で行数の不一致が発生する問題を修正しました。 [#89691](https://github.com/ClickHouse/ClickHouse/issues/89691) を解決します。 [#90254](https://github.com/ClickHouse/ClickHouse/pull/90254)([Peng Jian](https://github.com/fastio))。 -* [#90608](https://github.com/ClickHouse/ClickHouse/issues/90608) にバックポート: コンパクトパーツ内で JSON からサブカラムを読み取る際に `CANNOT_READ_ALL_DATA` エラーを引き起こす可能性があったバグを修正。[#90264](https://github.com/ClickHouse/ClickHouse/issues/90264) を解決。[#90302](https://github.com/ClickHouse/ClickHouse/pull/90302)([Pavel Kruglov](https://github.com/Avogar))。 -* 2 つの引数を指定した場合に `trim`、`ltrim`、`rtrim` 関数が動作しない問題を修正しました。 [#90170](https://github.com/ClickHouse/ClickHouse/issues/90170) をクローズしました。 [#90305](https://github.com/ClickHouse/ClickHouse/pull/90305)([Nihal Z. Miaji](https://github.com/nihalzp))。 -* [#90625](https://github.com/ClickHouse/ClickHouse/issues/90625) にバックポート済み: `index_granularity_bytes=0` の場合に、存在しない JSON パスに対する `prewhere` で発生し得る論理エラーを修正。[#86924](https://github.com/ClickHouse/ClickHouse/issues/86924) を解決。[#90375](https://github.com/ClickHouse/ClickHouse/pull/90375)([Pavel Kruglov](https://github.com/Avogar))。 -* [#90484](https://github.com/ClickHouse/ClickHouse/issues/90484) にバックポート済み: 精度引数が有効な範囲を超えた場合にクラッシュを引き起こしていた `L2DistanceTransposed` のバグを修正しました。[#90401](https://github.com/ClickHouse/ClickHouse/issues/90401) をクローズします。[#90405](https://github.com/ClickHouse/ClickHouse/pull/90405)([Raufs Dunamalijevs](https://github.com/rienath))。 -* [#90577](https://github.com/ClickHouse/ClickHouse/issues/90577) にバックポート: 配列参照ベクトル(デフォルトで `Array(Float64)`)を、要素型が `Float64` 以外(`Float32`、`BFloat16`)の `QBit` カラムとともに使用した場合に、`L2DistanceTransposed` で距離計算が誤って行われていた問題を修正しました。この関数は、参照ベクトルを自動的に `QBit` の要素型にキャストするようになりました。[#89976](https://github.com/ClickHouse/ClickHouse/issues/89976) を解決します。[#90485](https://github.com/ClickHouse/ClickHouse/pull/90485)([Raufs Dunamalijevs](https://github.com/rienath))。 -* [#90601](https://github.com/ClickHouse/ClickHouse/issues/90601) にバックポート済み:`equals` 関数におけるまれなケースによって発生する論理エラーを修正しました。[#88142](https://github.com/ClickHouse/ClickHouse/issues/88142) をクローズ。[#90557](https://github.com/ClickHouse/ClickHouse/pull/90557)([Nihal Z. Miaji](https://github.com/nihalzp))。 -* `Tuple` 型に対する `CoalescingMergeTree` の処理を修正。 [#88828](https://github.com/ClickHouse/ClickHouse/pull/88828) ([scanhex12](https://github.com/scanhex12)). - -#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement} - -* initdb 用 SQL スクリプトと TCP ポートの上書きを伴う Docker 上での ClickHouse 実行時に発生する Connection refused エラーを修正。[#88042](https://github.com/ClickHouse/ClickHouse/pull/88042) ([Grigorii](https://github.com/GSokol))。 -* ClickHouse の新しいプラットフォームとして e2k を実験的にサポート。[#90159](https://github.com/ClickHouse/ClickHouse/pull/90159) ([Ramil Sattarov](https://github.com/r-a-sattarov))。 -* CMake から残っていた `FindPackage` の使用箇所を削除。ビルドがシステムパッケージに依存しないようにする。[#89380](https://github.com/ClickHouse/ClickHouse/pull/89380) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* CMake 構成時のビルドでコンパイラキャッシュを使用(例: `protoc`)。[#89613](https://github.com/ClickHouse/ClickHouse/pull/89613) ([Konstantin Bogdanov](https://github.com/thevar1able))。 -* FreeBSD 13.4 の sysroot を使用。[#89617](https://github.com/ClickHouse/ClickHouse/pull/89617) ([Konstantin Bogdanov](https://github.com/thevar1able))。 - -### ClickHouse リリース 25.10、2025-10-31 {#2510} - -#### 後方互換性を損なう変更 {#backward-incompatible-change} - -* デフォルトの `schema_inference_make_columns_nullable` 設定を変更し、すべてを Nullable にするのではなく、Parquet/ORC/Arrow のメタデータに含まれるカラムが Nullable かどうかの情報を尊重するようにしました。テキストフォーマットについては変更ありません。 [#71499](https://github.com/ClickHouse/ClickHouse/pull/71499) ([Michael Kolupaev](https://github.com/al13n321))。 -* クエリ結果キャッシュは `log_comment` 設定を無視するようになったため、クエリで `log_comment` のみを変更しても、キャッシュミスを強制的に発生させることはなくなりました。`log_comment` を変化させることで、意図的にキャッシュをセグメント化していたユーザーが、少数ながら存在していた可能性があります。この変更によりその挙動が変わるため、後方互換性がありません。その目的には `query_cache_tag` 設定を使用してください。[#79878](https://github.com/ClickHouse/ClickHouse/pull/79878) ([filimonov](https://github.com/filimonov))。 -* 以前のバージョンでは、テーブル関数の名前が演算子の実装用関数と同じであるクエリで、フォーマットに一貫性がありませんでした。[#81601](https://github.com/ClickHouse/ClickHouse/issues/81601) をクローズします。[#81977](https://github.com/ClickHouse/ClickHouse/issues/81977) をクローズします。[#82834](https://github.com/ClickHouse/ClickHouse/issues/82834) をクローズします。[#82835](https://github.com/ClickHouse/ClickHouse/issues/82835) をクローズします。EXPLAIN SYNTAX クエリでは、常に演算子がフォーマットされるとは限らなくなりました。この新しい挙動は、構文を説明するという本来の目的をより正確に反映しています。`clickhouse-format`、`formatQuery` などは、クエリ内で関数形式で記述されている場合、その関数を演算子としてフォーマットしません。[#82825](https://github.com/ClickHouse/ClickHouse/pull/82825)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* `JOIN` キーで `Dynamic` 型を使用することを禁止しました。`Dynamic` 型の値が非 `Dynamic` 型と比較されると、予期しない結果になる可能性があります。`Dynamic` 列は、必要な型に明示的にキャストすることを推奨します。 [#86358](https://github.com/ClickHouse/ClickHouse/pull/86358) ([Pavel Kruglov](https://github.com/Avogar)). -* `storage_metadata_write_full_object_key` サーバーオプションはデフォルトでオンになっており、現時点ではオフに設定できません。これは後方互換性を維持する変更です。注意喚起のための情報です。この変更は 25.x リリースとのみ前方互換性があります。つまり、新しいリリースをロールバックする必要がある場合は、25.x 系の任意のリリースにのみダウングレードできます。 [#87335](https://github.com/ClickHouse/ClickHouse/pull/87335) ([Sema Checherinda](https://github.com/CheSema)). -* 挿入レートが低い場合に ZooKeeper 上に保存される znode を減らすため、`replicated_deduplication_window_seconds` を 1 週間から 1 時間に短縮しました。 [#87414](https://github.com/ClickHouse/ClickHouse/pull/87414) ([Sema Checherinda](https://github.com/CheSema)). -* 設定 `query_plan_use_new_logical_join_step` の名前を `query_plan_use_logical_join_step` に変更しました。 [#87679](https://github.com/ClickHouse/ClickHouse/pull/87679) ([Vladimir Cherkasov](https://github.com/vdimir)). -* 新しい構文により、テキストインデックスの `tokenizer` パラメータをより柔軟に指定できるようになりました。 [#87997](https://github.com/ClickHouse/ClickHouse/pull/87997) ([Elmi Ahmadov](https://github.com/ahmadov)). -* 既存の関数 `hasToken` との一貫性を高めるため、関数 `searchAny` と `searchAll` の名称をそれぞれ `hasAnyTokens` と `hasAllTokens` に変更しました。 [#88109](https://github.com/ClickHouse/ClickHouse/pull/88109) ([Robert Schulze](https://github.com/rschu1ze)). -* ファイルシステムキャッシュから `cache_hits_threshold` を削除しました。この機能は SLRU キャッシュポリシーを導入する前に外部コントリビューターによって追加されたものですが、現在は SLRU キャッシュポリシーがあるため、両方をサポートし続ける意味はありません。 [#88344](https://github.com/ClickHouse/ClickHouse/pull/88344) ([Kseniia Sumarokova](https://github.com/kssenii)). -* `min_free_disk_ratio_to_perform_insert` と `min_free_disk_bytes_to_perform_insert` 設定の動作に対して、2 つの細かな変更を行いました。- INSERT を拒否すべきかどうかを判断する際に、利用可能(available)バイト数ではなく未予約(unreserved)バイト数を使用するようにしました。バックグラウンドマージやミューテーションのための予約領域が、設定されたしきい値と比べて小さい場合にはあまり重要ではないかもしれませんが、こちらのほうがより正しいと考えられます。- これらの設定を system テーブルには適用しないようにしました。その理由は、`query_log` のようなテーブルを引き続き更新したいからです。これはデバッグに非常に役立ちます。system テーブルに書き込まれるデータは通常、実データと比べて小さいため、妥当な `min_free_disk_ratio_to_perform_insert` のしきい値であれば、かなり長い間処理を継続できるはずです。 [#88468](https://github.com/ClickHouse/ClickHouse/pull/88468) ([c-end](https://github.com/c-end))。 -* Keeper の内部レプリケーションの非同期モードを有効にします。Keeper は、これまでと同じ動作を維持しつつ、パフォーマンスが向上する可能性があります。23.9 より前のバージョンから更新する場合は、まず 23.9 以降に更新してから 25.10 以降に更新する必要があります。更新前に `keeper_server.coordination_settings.async_replication` を 0 に設定し、更新完了後に再度有効化することもできます。 [#88515](https://github.com/ClickHouse/ClickHouse/pull/88515) ([Antonio Andelic](https://github.com/antonio2368))。 - -#### 新機能 {#new-feature} - -* 負の `LIMIT` と `OFFSET` のサポートを追加。 [#28913](https://github.com/ClickHouse/ClickHouse/issues/28913) をクローズ。 [#88411](https://github.com/ClickHouse/ClickHouse/pull/88411) ([Nihal Z. Miaji](https://github.com/nihalzp))。 -* `Alias` エンジンは、別のテーブルへのプロキシを作成します。すべての読み取り・書き込み操作はターゲットテーブルに転送され、エイリアス自体はデータを保持せず、ターゲットテーブルへの参照のみを保持します。 [#87965](https://github.com/ClickHouse/ClickHouse/pull/87965) ([Kai Zhu](https://github.com/nauu)). -* 演算子 `IS NOT DISTINCT FROM` (`<=>`) のサポートを完全に実装しました。 [#88155](https://github.com/ClickHouse/ClickHouse/pull/88155) ([simonmichal](https://github.com/simonmichal)). -* `MergeTree` テーブル内の要件を満たすすべてのカラムに対して、統計情報を自動的に作成する機能を追加しました。作成する統計情報の種類をカンマ区切りで指定するテーブルレベルの設定 `auto_statistics_types` を追加しました(例: `auto_statistics_types = 'minmax, uniq, countmin'`)。[#87241](https://github.com/ClickHouse/ClickHouse/pull/87241)([Anton Popov](https://github.com/CurtizJ))。 -* テキスト用の新しいブルームフィルターインデックス `sparse_gram` を追加。[#79985](https://github.com/ClickHouse/ClickHouse/pull/79985)([scanhex12](https://github.com/scanhex12))。 -* 数値の基数変換を行う新しい関数 `conv` が追加され、現在は基数 `2-36` をサポートしています。 [#83058](https://github.com/ClickHouse/ClickHouse/pull/83058) ([hp](https://github.com/hp77-creator))。 -* `LIMIT BY ALL` 構文のサポートを追加しました。`GROUP BY ALL` や `ORDER BY ALL` と同様に、`LIMIT BY ALL` は SELECT 句内のすべての非集約式を自動的に展開し、それらを LIMIT BY のキーとして使用します。たとえば、`SELECT id, name, count(*) FROM table GROUP BY id LIMIT 1 BY ALL` は `SELECT id, name, count(*) FROM table GROUP BY id LIMIT 1 BY id, name` と同等です。この機能により、選択された非集約列すべてで LIMIT BY を行いたいが、それらを明示的に列挙したくない場合に、クエリを簡潔に記述できます。[#59152](https://github.com/ClickHouse/ClickHouse/issues/59152) をクローズしました。[#84079](https://github.com/ClickHouse/ClickHouse/pull/84079)([Surya Kant Ranjan](https://github.com/iit2009046))。 -* ClickHouse から Apache Paimon をクエリ可能にするサポートを追加しました。この統合により、ClickHouse ユーザーは Paimon のデータレイク ストレージに直接アクセスできるようになります。 [#84423](https://github.com/ClickHouse/ClickHouse/pull/84423) ([JIaQi](https://github.com/JiaQiTang98))。 -* `studentTTestOneSample` 集約関数を追加しました。 [#85436](https://github.com/ClickHouse/ClickHouse/pull/85436) ([Dylan](https://github.com/DylanBlakemore))。 -* 集約関数 `quantilePrometheusHistogram` は、ヒストグラムバケットの上限値と累積値を引数として受け取り、分位点が位置するバケットの下限値と上限値の間で線形補間を行います。従来型ヒストグラムに対する PromQL の `histogram_quantile` 関数と同様に動作します。 [#86294](https://github.com/ClickHouse/ClickHouse/pull/86294) ([Stephen Chi](https://github.com/stephchi0)). -* Delta Lake のメタデータファイル用の新しいシステムテーブル。 [#87263](https://github.com/ClickHouse/ClickHouse/pull/87263) ([scanhex12](https://github.com/scanhex12)). -* `ALTER TABLE REWRITE PARTS` を追加しました。これはテーブルのパーツをゼロから書き換え、新しい設定をすべて使用して再生成します(`use_const_adaptive_granularity` のように、新しいパーツに対してのみ適用されるものがあるため)。 [#87774](https://github.com/ClickHouse/ClickHouse/pull/87774) ([Azat Khuzhin](https://github.com/azat))。 -* `SYSTEM RECONNECT ZOOKEEPER` コマンドを追加し、ZooKeeper の切断と再接続を強制的に行えるようにしました([https://github.com/ClickHouse/ClickHouse/issues/87317](https://github.com/ClickHouse/ClickHouse/issues/87317))。[#87318](https://github.com/ClickHouse/ClickHouse/pull/87318)([Pradeep Chhetri](https://github.com/chhetripradeep))。 -* `max_named_collection_num_to_warn` と `max_named_collection_num_to_throw` を設定することで、名前付きコレクションの数を制限します。新しいメトリクス `NamedCollection` およびエラー `TOO_MANY_NAMED_COLLECTIONS` を追加しました。 [#87343](https://github.com/ClickHouse/ClickHouse/pull/87343) ([Pablo Marcos](https://github.com/pamarcos)). -* `startsWith` および `endsWith` 関数に、大文字小文字を区別しない最適化されたバリアントである `startsWithCaseInsensitive`、`endsWithCaseInsensitive`、`startsWithCaseInsensitiveUTF8`、`endsWithCaseInsensitiveUTF8` を追加しました。 [#87374](https://github.com/ClickHouse/ClickHouse/pull/87374) ([Guang Zhao](https://github.com/zheguang)). -* サーバー設定の "resources_and_workloads" セクションを通じて、SQL で `WORKLOAD` および `RESOURCE` 定義を指定できるようにしました。 [#87430](https://github.com/ClickHouse/ClickHouse/pull/87430) ([Sergei Trifonov](https://github.com/serxa)). -* パートをワイドパートとして作成するための最小レベルを指定できる新しいテーブル設定 `min_level_for_wide_part` を追加。 [#88179](https://github.com/ClickHouse/ClickHouse/pull/88179) ([Christoph Wurm](https://github.com/cwurm))。 -* Keeper クライアントに `cp`-`cpr` および `mv`-`mvr` コマンドの再帰版を追加しました。 [#88570](https://github.com/ClickHouse/ClickHouse/pull/88570) ([Mikhail Artemenko](https://github.com/Michicosun)). -* 挿入時にマテリアライズ対象から除外するスキップインデックスのリストを指定するセッション設定(`exclude_materialize_skip_indexes_on_insert`)を追加しました。マージ処理時にマテリアライズ対象から除外するスキップインデックスのリストを指定する MergeTree テーブル設定(`exclude_materialize_skip_indexes_on_merge`)を追加しました。 [#87252](https://github.com/ClickHouse/ClickHouse/pull/87252) ([George Larionov](https://github.com/george-larionov))。 - -#### 実験的機能 {#experimental-feature} - -* ベクトルをビットスライス形式で格納する `QBit` データ型と、パラメータによって精度と速度のトレードオフを制御しながら近似ベクトル検索を可能にする `L2DistanceTransposed` 関数を実装しました。 [#87922](https://github.com/ClickHouse/ClickHouse/pull/87922) ([Raufs Dunamalijevs](https://github.com/rienath)). -* 関数 `searchAll` と `searchAny` は、テキスト列を含まないカラム上でも動作するようになりました。その場合、デフォルトのトークナイザが使用されます。 [#87722](https://github.com/ClickHouse/ClickHouse/pull/87722) ([Jimmy Aguilar Mena](https://github.com/Ergus)). - -#### パフォーマンスの向上 {#performance-improvement} - -* JOIN および ARRAY JOIN において、lazy columns replication を実装しました。一部の出力フォーマットでは、Sparse や Replicated のような特殊なカラム表現を完全なカラムに変換しないようにしました。これにより、メモリ内での不要なデータコピーを避けられます。 [#88752](https://github.com/ClickHouse/ClickHouse/pull/88752) ([Pavel Kruglov](https://github.com/Avogar)). -* MergeTree テーブルのトップレベルの String カラムに対して、圧縮効率を向上させ、サブカラムへの効率的なアクセスを可能にするオプションの `.size` サブカラムのシリアライゼーションを追加しました。シリアライゼーションのバージョン制御および空文字列に対する式の最適化のための新しい MergeTree 設定を導入しました。 [#82850](https://github.com/ClickHouse/ClickHouse/pull/82850) ([Amos Bird](https://github.com/amosbird))。 -* Iceberg に対する順序どおりの読み取りのサポート。 [#88454](https://github.com/ClickHouse/ClickHouse/pull/88454) ([scanhex12](https://github.com/scanhex12)). -* 実行時に右側サブツリーから Bloom フィルターを構築し、このフィルターを左側サブツリーのスキャンに渡すことで、一部の JOIN クエリの処理を高速化します。これは、`SELECT avg(o_totalprice) FROM orders, customer, nation WHERE c_custkey = o_custkey AND c_nationkey=n_nationkey AND n_name = 'FRANCE'` のようなクエリで有効な場合があります。 [#84772](https://github.com/ClickHouse/ClickHouse/pull/84772) ([Alexander Gololobov](https://github.com/davenger)). -* Query Condition Cache (QCC) の適用順序およびインデックス解析との連携をリファクタリングすることで、クエリのパフォーマンスを改善しました。QCC によるフィルタリングは、プライマリキーおよびスキップインデックスの解析より前に適用されるようになり、不要なインデックス計算が削減されます。インデックス解析は複数の範囲フィルタをサポートするよう拡張され、そのフィルタリング結果は QCC に書き戻されるようになりました。これにより、インデックス解析が実行時間の大部分を占めるクエリ、特にスキップインデックス(例: ベクターインデックスやインバーテッドインデックス)に依存するクエリが大幅に高速化されます。[#82380](https://github.com/ClickHouse/ClickHouse/pull/82380) ([Amos Bird](https://github.com/amosbird))。 -* 小規模クエリを高速化するための細かな最適化を多数実施。[#83096](https://github.com/ClickHouse/ClickHouse/pull/83096) ([Raúl Marín](https://github.com/Algunenano))。 -* ネイティブプロトコルでログとプロファイルイベントを圧縮します。100 レプリカ以上のクラスターでは、未圧縮のプロファイルイベントは 1~10 MB/秒に達し、インターネット接続が遅い場合はプログレスバーの動きが鈍くなります。これにより [#82533](https://github.com/ClickHouse/ClickHouse/issues/82533) が解決されました。[#83586](https://github.com/ClickHouse/ClickHouse/pull/83586)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 大文字小文字を区別する文字列検索(`WHERE URL LIKE '%google%'` のようなフィルタリング操作)のパフォーマンスを、[StringZilla](https://github.com/ashvardanian/StringZilla) ライブラリを使用し、利用可能な場合には SIMD CPU 命令も活用することで向上させました。[#84161](https://github.com/ClickHouse/ClickHouse/pull/84161)([Raúl Marín](https://github.com/Algunenano))。 -* テーブルに `SimpleAggregateFunction(anyLast)` 型のカラムがある場合に、`FINAL` を付けて AggregatingMergeTree テーブルから `SELECT` する際のメモリ割り当ておよびメモリコピーを削減しました。 [#84428](https://github.com/ClickHouse/ClickHouse/pull/84428) ([Duc Canh Le](https://github.com/canhld94)). -* `JOIN` 述語における論理和条件(OR)のプッシュダウンロジックを実装します。例として、TPC-H Q7 で 2 つのテーブル n1 と n2 に対する条件 `(n1.n_name = 'FRANCE' AND n2.n_name = 'GERMANY') OR (n1.n_name = 'GERMANY' AND n2.n_name = 'FRANCE')` がある場合、それぞれのテーブルに対して個別の部分フィルタを抽出します。具体的には、n1 には `n1.n_name = 'FRANCE' OR n1.n_name = 'GERMANY'` を、n2 には `n2.n_name = 'GERMANY' OR n2.n_name = 'FRANCE'` を適用します。[#84735](https://github.com/ClickHouse/ClickHouse/pull/84735)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* 新しいデフォルト設定 `optimize_rewrite_like_perfect_affix` により、接頭辞または接尾辞を持つ `LIKE` のパフォーマンスを向上させます。 [#85920](https://github.com/ClickHouse/ClickHouse/pull/85920) ([Guang Zhao](https://github.com/zheguang)). -* 複数の文字列/数値カラムで `GROUP BY` を行う際に、巨大なシリアライズキーによって発生していたパフォーマンス低下を修正。これは [#83884](https://github.com/ClickHouse/ClickHouse/pull/83884) のフォローアップです。[#85924](https://github.com/ClickHouse/ClickHouse/pull/85924)([李扬](https://github.com/taiyang-li))。 -* `joined_block_split_single_row` という新しい設定を追加し、多数の一致が発生するハッシュ結合におけるメモリ使用量を削減します。これにより、左テーブルの1行に対する一致結果についてもチャンクに分割できるようになり、左テーブルの1行が右テーブルの数千〜数百万行と一致するようなケースで特に有用です。以前は、すべての一致行を一度にメモリ上にマテリアライズする必要がありました。この変更によりピーク時のメモリ使用量は削減されますが、CPU使用量が増加する可能性があります。 [#87913](https://github.com/ClickHouse/ClickHouse/pull/87913) ([Vladimir Cherkasov](https://github.com/vdimir))。 -* SharedMutex を改善し、多数の同時実行クエリ時のパフォーマンスを向上。 [#87491](https://github.com/ClickHouse/ClickHouse/pull/87491) ([Raúl Marín](https://github.com/Algunenano)). -* 主に出現頻度の低いトークンで構成されるドキュメントにおけるテキストインデックス構築の性能を改善しました。 [#87546](https://github.com/ClickHouse/ClickHouse/pull/87546) ([Anton Popov](https://github.com/CurtizJ)). -* Field デストラクタの一般的なケースを高速化し、大量の小さなクエリに対するパフォーマンスを改善しました。 [#87631](https://github.com/ClickHouse/ClickHouse/pull/87631) ([Raúl Marín](https://github.com/Algunenano)). -* JOIN の最適化中にランタイムのハッシュテーブル統計情報の再計算をスキップするようにしました(JOIN を含むすべてのクエリのパフォーマンスが向上します)。新しいプロファイルイベント `JoinOptimizeMicroseconds` と `QueryPlanOptimizeMicroseconds` を追加しました。[#87683](https://github.com/ClickHouse/ClickHouse/pull/87683) ([Vladimir Cherkasov](https://github.com/vdimir))。 -* MergeTreeLazy リーダーでマークをキャッシュに保存し、ダイレクト I/O を回避できるようにしました。これにより、ORDER BY と小さな LIMIT を指定したクエリのパフォーマンスが向上します。 [#87989](https://github.com/ClickHouse/ClickHouse/pull/87989) ([Nikita Taranov](https://github.com/nickitat)). -* `is_deleted` 列を持つ `ReplacingMergeTree` テーブルに対する `FINAL` 句付きの SELECT クエリが、既存の 2 つの最適化による並列化の改善により、これまでより高速に実行されるようになりました。1. 単一の `part` しか持たないパーティションに対して適用される `do_not_merge_across_partitions_select_final` 最適化。2. テーブル内のその他の選択レンジを `intersecting / non-intersecting` に分割し、`intersecting` なレンジだけが FINAL のマージ変換処理を通過するようにしたこと。[#88090](https://github.com/ClickHouse/ClickHouse/pull/88090) ([Shankar Iyer](https://github.com/shankar-iyer)). -* デバッグが無効な場合のデフォルトコードパスにおいて、fail points を使用しないことによる影響を軽減しました。 [#88196](https://github.com/ClickHouse/ClickHouse/pull/88196) ([Raúl Marín](https://github.com/Algunenano)). -* `uuid` でフィルタした `system.tables` に対するフルスキャンを回避(ログや ZooKeeper のパスから UUID だけが分かっている場合に有用)。 [#88379](https://github.com/ClickHouse/ClickHouse/pull/88379) ([Azat Khuzhin](https://github.com/azat)). -* 関数 `tokens`、`hasAllTokens`、`hasAnyTokens` の性能を改善しました。 [#88416](https://github.com/ClickHouse/ClickHouse/pull/88416) ([Anton Popov](https://github.com/CurtizJ)). -* 一部のケースにおいて JOIN のパフォーマンスをわずかに向上させるために、`AddedColumns::appendFromBlock` をインライン展開しました。 [#88455](https://github.com/ClickHouse/ClickHouse/pull/88455) ([Nikita Taranov](https://github.com/nickitat)). -* クライアントのオートコンプリート機能は、複数のシステムテーブルへのクエリを発行するのではなく `system.completions` を使用することで、より高速かつ一貫性の高い動作になります。 [#84694](https://github.com/ClickHouse/ClickHouse/pull/84694) ([|2ustam](https://github.com/RuS2m))。 -* 辞書圧縮を制御するための新しいテキストインデックスパラメータ `dictionary_block_frontcoding_compression` を追加しました。デフォルトでは有効で、`front-coding` 圧縮が使用されます。 [#87175](https://github.com/ClickHouse/ClickHouse/pull/87175) ([Elmi Ahmadov](https://github.com/ahmadov))。 -* 設定 `min_insert_block_size_rows_for_materialized_views` および `min_insert_block_size_bytes_for_materialized_views` に応じて、すべてのスレッドからのデータをマテリアライズドビューに挿入する前にまとめてから挿入するように変更しました。以前は、`parallel_view_processing` が有効な場合、特定のマテリアライズドビューに挿入する各スレッドがそれぞれ独立してデータをまとめており、その結果、生成されるパーツの数が多くなる可能性がありました。 [#87280](https://github.com/ClickHouse/ClickHouse/pull/87280) ([Antonio Andelic](https://github.com/antonio2368)). -* 一時ファイルの書き込みで使用されるバッファサイズを制御するための設定 `temporary_files_buffer_size` を追加。* `LowCardinality` 列に対する `scatter` 操作(例えば grace hash join で使用される)のメモリ消費を最適化。 [#88237](https://github.com/ClickHouse/ClickHouse/pull/88237) ([Vladimir Cherkasov](https://github.com/vdimir)). -* 並列レプリカ対応のテキストインデックスからの直接読み取りをサポートしました。オブジェクトストレージ上のテキストインデックスの読み取り性能を改善しました。 [#88262](https://github.com/ClickHouse/ClickHouse/pull/88262) ([Anton Popov](https://github.com/CurtizJ)). -* Data Lake カタログ内のテーブルを対象とするクエリでは、分散処理のために並列レプリカが利用されます。 [#88273](https://github.com/ClickHouse/ClickHouse/pull/88273) ([scanhex12](https://github.com/scanhex12)). -* "to_remove_small_parts_at_right" という名前のバックグラウンドマージのアルゴリズムをチューニングするための内部ヒューリスティックが、マージ範囲スコアの計算より前に実行されるようになりました。それ以前は、マージセレクタは幅の広いマージを選択してから、その末尾部分をフィルタリングしていました。修正: [#85374](https://github.com/ClickHouse/ClickHouse/issues/85374)。[#88736](https://github.com/ClickHouse/ClickHouse/pull/88736) ([Mikhail Artemenko](https://github.com/Michicosun))。 - -#### 改善点 {#improvement} - -* 関数 `generateSerialID` で、シリーズ名として非定数の引数を指定できるようになりました。Issue [#83750](https://github.com/ClickHouse/ClickHouse/issues/83750) をクローズしました。[#88270](https://github.com/ClickHouse/ClickHouse/pull/88270)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 新しい系列の開始値を指定できるよう、`generateSerialID` 関数にオプションの `start_value` パラメータを追加しました。 [#88085](https://github.com/ClickHouse/ClickHouse/pull/88085) ([Manuel](https://github.com/raimannma)). -* `clickhouse-format` に `--semicolons_inline` オプションを追加し、セミコロンが改行されず最終行に配置されるようにクエリを整形できるようにしました。 [#88018](https://github.com/ClickHouse/ClickHouse/pull/88018) ([Jan Rada](https://github.com/ZelvaMan)). -* Keeper で設定が上書きされている場合でも、サーバーレベルのスロットリングを設定できるようにしました。[#73964](https://github.com/ClickHouse/ClickHouse/issues/73964) を解決。[#74066](https://github.com/ClickHouse/ClickHouse/pull/74066)([JIaQi](https://github.com/JiaQiTang98))。 -* `mannWhitneyUTest` は、両方のサンプルが同一の値のみを含む場合でも例外をスローしなくなりました。SciPy と一貫した有効な結果を返すようになりました。これにより Issue: [#79814](https://github.com/ClickHouse/ClickHouse/issues/79814) がクローズされました。[#80009](https://github.com/ClickHouse/ClickHouse/pull/80009) ([DeanNeaht](https://github.com/DeanNeaht))。 -* ディスクオブジェクトストレージの Rewrite トランザクションは、メタデータトランザクションがコミットされた場合、以前のリモート BLOB を削除するようになりました。 [#81787](https://github.com/ClickHouse/ClickHouse/pull/81787) ([Sema Checherinda](https://github.com/CheSema)). -* 最適化の前後で結果型の `LowCardinality` が異なる場合でも、冗長な等値式に対する最適化処理が正しく動作するよう修正しました。 [#82651](https://github.com/ClickHouse/ClickHouse/pull/82651) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* HTTP クライアントが `Expect: 100-continue` に加えて `X-ClickHouse-100-Continue: defer` ヘッダーを設定すると、ClickHouse はクォータ検証に合格するまでクライアントに `100 Continue` レスポンスを送信しないため、最終的に破棄されるリクエストボディを送信することによるネットワーク帯域の無駄を防げます。これは、クエリを URL のクエリ文字列で送信し、データをリクエストボディで送信する INSERT クエリの場合に関係します。ボディ全体を送信せずにリクエストを中止すると、HTTP/1.1 でのコネクション再利用はできなくなりますが、新しいコネクションを開くことで生じる追加レイテンシは、大量データの INSERT における全体の処理時間と比べると通常は無視できる程度です。[#84304](https://github.com/ClickHouse/ClickHouse/pull/84304)([c-end](https://github.com/c-end))。 -* S3 ストレージを使用する `DATABASE ENGINE = Backup` の利用時に、ログに出力される S3 の認証情報をマスクするようにしました。 [#85336](https://github.com/ClickHouse/ClickHouse/pull/85336) ([Kenny Sun](https://github.com/hwabis)). -* クエリプランの最適化が相関サブクエリの入力サブプランからも見えるように、そのマテリアライズを遅延させました。[#79890](https://github.com/ClickHouse/ClickHouse/issues/79890) の一部。[#85455](https://github.com/ClickHouse/ClickHouse/pull/85455)([Dmitry Novik](https://github.com/novikd))。 -* SYSTEM DROP DATABASE REPLICA の変更: - データベースを指定してドロップする場合、またはレプリカ全体をドロップする場合: データベース内の各テーブルのレプリカも併せてドロップされます - `WITH TABLES` が指定されている場合、各ストレージのレプリカをドロップします - それ以外の場合、ロジックは変更されず、データベースレプリカのみをドロップします - Keeper パスを指定してデータベースレプリカをドロップする場合: - `WITH TABLES` が指定されている場合: - データベースを Atomic として復元します - Keeper 内のステートメントから RMT テーブルを復元します - データベースをドロップします (復元されたテーブルも同時にドロップされます) - それ以外の場合は、指定された Keeper パス上のレプリカのみをドロップします。 [#85637](https://github.com/ClickHouse/ClickHouse/pull/85637) ([Tuan Pham Anh](https://github.com/tuanpach)). -* TTL に `materialize` 関数が含まれている場合のフォーマットの不整合を修正しました。[#82828](https://github.com/ClickHouse/ClickHouse/issues/82828) をクローズしました。[#85749](https://github.com/ClickHouse/ClickHouse/pull/85749)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* Iceberg テーブルの状態は、今後はストレージオブジェクト内には保存されません。これにより、ClickHouse における Iceberg は同時実行クエリ環境でも利用可能になる想定です。 [#86062](https://github.com/ClickHouse/ClickHouse/pull/86062) ([Daniil Ivanik](https://github.com/divanik)). -* `use_persistent_processing_nodes = 1` の場合の処理ノードと同様に、S3Queue の ordered モードにおける bucket lock を永続モードとします。テストに Keeper のフォルトインジェクションを追加します。 [#86628](https://github.com/ClickHouse/ClickHouse/pull/86628) ([Kseniia Sumarokova](https://github.com/kssenii)). -* ユーザーがフォーマット名をタイプミスした場合にヒントを表示するようにしました。 [#86761](https://github.com/ClickHouse/ClickHouse/issues/86761) をクローズ。 [#87092](https://github.com/ClickHouse/ClickHouse/pull/87092)([flynn](https://github.com/ucasfl))。 -* プロジェクションが存在しない場合、リモートレプリカはインデックスの解析をスキップします。 [#87096](https://github.com/ClickHouse/ClickHouse/pull/87096) ([zoomxi](https://github.com/zoomxi)). -* ytsaurus テーブルに対して UTF-8 エンコーディングを無効化できるようにしました。 [#87150](https://github.com/ClickHouse/ClickHouse/pull/87150) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). -* `s3_slow_all_threads_after_retryable_error` をデフォルトで無効にしました。 [#87198](https://github.com/ClickHouse/ClickHouse/pull/87198) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* テーブル関数 `arrowflight` の名前を `arrowFlight` に変更しました。 [#87249](https://github.com/ClickHouse/ClickHouse/pull/87249) ([Vitaly Baranov](https://github.com/vitlibar)). -* `clickhouse-benchmark` を更新し、CLI フラグで `_` の代わりに `-` を使用できるようにしました。 [#87251](https://github.com/ClickHouse/ClickHouse/pull/87251) ([Ahmed Gouda](https://github.com/0xgouda)). -* シグナルハンドリング時の `system.crash_log` へのフラッシュを同期処理にしました。[#87253](https://github.com/ClickHouse/ClickHouse/pull/87253) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* `inject_random_order_for_select_without_order_by` 設定を追加しました。この設定は、`ORDER BY` 句が指定されていないトップレベルの `SELECT` クエリに `ORDER BY rand()` を自動的に挿入します。 [#87261](https://github.com/ClickHouse/ClickHouse/pull/87261) ([Rui Zhang](https://github.com/zhangruiddn))。 -* `joinGet` のエラーメッセージを改善し、`join_keys` の数が `right_table_keys` の数と一致していないことを正しく示すようにしました。 [#87279](https://github.com/ClickHouse/ClickHouse/pull/87279) ([Isak Ellmer](https://github.com/spinojara)). -* 書き込みトランザクション中に任意の Keeper ノードの stat を確認できるようにしました。これにより、ABA 問題の検出に役立ちます。 [#87282](https://github.com/ClickHouse/ClickHouse/pull/87282) ([Mikhail Artemenko](https://github.com/Michicosun)). -* 重い ytsaurus リクエストを heavy プロキシにリダイレクトするようにしました。 [#87342](https://github.com/ClickHouse/ClickHouse/pull/87342) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). -* ディスクトランザクション由来のメタデータに対して、あらゆるワークロードにおける `unlink`/`rename`/`removeRecursive`/`removeDirectory`/その他の操作のロールバックおよびハードリンク数を修正し、インターフェイスを簡素化してより汎用的なものとすることで、他のメタストアでも再利用できるようにしました。 [#87358](https://github.com/ClickHouse/ClickHouse/pull/87358) ([Mikhail Artemenko](https://github.com/Michicosun)). -* Keeper で `TCP_NODELAY` を無効化できる `keeper_server.tcp_nodelay` 設定パラメータを追加しました。 [#87363](https://github.com/ClickHouse/ClickHouse/pull/87363) (Copilot)。 -* `clickhouse-benchmarks` で `--connection` をサポートしました。これは `clickhouse-client` でサポートされているものと同じで、クライアントの `config.xml`/`config.yaml` の `connections_credentials` パス配下に事前定義した接続を指定することで、コマンドライン引数で明示的にユーザー名およびパスワードを指定する必要がなくなります。`clickhouse-benchmark` に `--accept-invalid-certificate` のサポートを追加しました。 [#87370](https://github.com/ClickHouse/ClickHouse/pull/87370) ([Azat Khuzhin](https://github.com/azat)). -* `max_insert_threads` の設定が Iceberg テーブルでも有効になりました。 [#87407](https://github.com/ClickHouse/ClickHouse/pull/87407) ([alesapin](https://github.com/alesapin)). -* `PrometheusMetricsWriter` にヒストグラムおよび次元メトリクスを追加しました。これにより、`PrometheusRequestHandler` で必要なメトリクスが一通り揃い、クラウド環境における信頼性が高く低オーバーヘッドなメトリクス収集に利用できるようになります。[#87521](https://github.com/ClickHouse/ClickHouse/pull/87521)([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 -* 関数 `hasToken` は、空のトークンを指定した場合、以前は例外をスローしていましたが、現在はマッチ件数 0 を返すようになりました。 [#87564](https://github.com/ClickHouse/ClickHouse/pull/87564) ([Jimmy Aguilar Mena](https://github.com/Ergus))。 -* `Array` および `Map`(`mapKeys` と `mapValues`)の値に対するテキストインデックス対応を追加しました。サポートされる関数は `mapContainsKey` と `has` です。 [#87602](https://github.com/ClickHouse/ClickHouse/pull/87602) ([Elmi Ahmadov](https://github.com/ahmadov)). -* 有効期限が切れたグローバル ZooKeeper セッションの数を示す新しい `ZooKeeperSessionExpired` メトリクスを追加しました。 [#87613](https://github.com/ClickHouse/ClickHouse/pull/87613) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* バックアップ先へのサーバーサイド(ネイティブ)コピーには、バックアップ専用の設定(たとえば backup_slow_all_threads_after_retryable_s3_error)を持つ S3 ストレージクライアントを使用します。s3_slow_all_threads_after_retryable_error を非推奨にします。 [#87660](https://github.com/ClickHouse/ClickHouse/pull/87660) ([Julia Kartseva](https://github.com/jkartseva)). -* 実験的機能である `make_distributed_plan` を用いたクエリプランのシリアライズ時に、設定 `max_joined_block_size_rows` および `max_joined_block_size_bytes` が誤って処理されていた問題を修正しました。 [#87675](https://github.com/ClickHouse/ClickHouse/pull/87675) ([Vladimir Cherkasov](https://github.com/vdimir)). -* 設定 `enable_http_compression` はデフォルトで有効になりました。これは、クライアントが HTTP 圧縮を受け入れる場合、サーバーがそれを使用することを意味します。ただし、この変更にはいくつかのデメリットがあります。クライアントは `bzip2` のような重い圧縮方式をリクエストすることができ、これは現実的ではなく、サーバーのリソース消費を増大させます(ただし、これは大きな結果が転送される場合にのみ顕在化します)。クライアントは `gzip` をリクエストすることもできます。これはそれほど悪くはありませんが、`zstd` と比較すると最適ではありません。[#71591](https://github.com/ClickHouse/ClickHouse/issues/71591) をクローズします。[#87703](https://github.com/ClickHouse/ClickHouse/pull/87703)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* `system.server_settings` に新しいエントリ `keeper_hosts` を追加し、ClickHouse が接続可能な [Zoo]Keeper ホストの一覧を参照できるようにしました。[#87718](https://github.com/ClickHouse/ClickHouse/pull/87718)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 -* 過去データの調査を容易にするため、システムダッシュボードに `from` と `to` の値を追加しました。 [#87823](https://github.com/ClickHouse/ClickHouse/pull/87823) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). -* Iceberg の SELECT クエリでのパフォーマンス追跡用の情報を追加。[#87903](https://github.com/ClickHouse/ClickHouse/pull/87903) ([Daniil Ivanik](https://github.com/divanik)). -* ファイルシステムキャッシュの改善: キャッシュ内の領域を並行して確保するスレッド間で、キャッシュ優先度イテレータを再利用するようにしました。 [#87914](https://github.com/ClickHouse/ClickHouse/pull/87914) ([Kseniia Sumarokova](https://github.com/kssenii)). -* `Keeper` 向けのリクエストサイズを制限できるようにしました(`max_request_size` 設定。`ZooKeeper` の `jute.maxbuffer` と同等で、後方互換性のためデフォルトは OFF のままですが、今後のリリースで設定される予定です)。 [#87952](https://github.com/ClickHouse/ClickHouse/pull/87952) ([Azat Khuzhin](https://github.com/azat)). -* `clickhouse-benchmark` がデフォルトでエラーメッセージにスタックトレースを含めないように変更しました。 [#87954](https://github.com/ClickHouse/ClickHouse/pull/87954) ([Ahmed Gouda](https://github.com/0xgouda)). -* マークがキャッシュ内にある場合には、スレッドプールによる非同期マーク読み込み(`load_marks_asynchronously=1`)を利用しないでください(プールに負荷がかかっていると、マークがすでにキャッシュに存在していても、クエリがそのためのペナルティを支払うことになるため)。 [#87967](https://github.com/ClickHouse/ClickHouse/pull/87967) ([Azat Khuzhin](https://github.com/azat))。 -* Ytsaurus: カラムのサブセットのみを含むテーブル/テーブル関数/ディクショナリを作成できるようにしました。 [#87982](https://github.com/ClickHouse/ClickHouse/pull/87982) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). -* 今後は、`system.zookeeper_connection_log` がデフォルトで有効になり、Keeper セッションに関する情報の取得に利用できます。 [#88011](https://github.com/ClickHouse/ClickHouse/pull/88011) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 -* 重複した外部テーブルが渡された場合の TCP と HTTP の動作を一貫させました。HTTP では、一時テーブルを複数回渡すことができます。 [#88032](https://github.com/ClickHouse/ClickHouse/pull/88032) ([Sema Checherinda](https://github.com/CheSema))。 -* Arrow/ORC/Parquet 読み取り用のカスタム MemoryPool を削除しました。[#84082](https://github.com/ClickHouse/ClickHouse/pull/84082) 以降は、いずれにせよすべての割り当てを追跡するようになったため、このコンポーネントは不要になったようです。[#88035](https://github.com/ClickHouse/ClickHouse/pull/88035)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 -* 引数を指定せずに `Replicated` データベースを作成できるようにしました。 [#88044](https://github.com/ClickHouse/ClickHouse/pull/88044) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* `clickhouse-keeper-client`: clickhouse-keeper の TLS ポートへの接続をサポートし、フラグ名は `clickhouse-client` と同一に保ちました。 [#88065](https://github.com/ClickHouse/ClickHouse/pull/88065) ([Pradeep Chhetri](https://github.com/chhetripradeep)). -* メモリ制限を超過したためにバックグラウンドマージが拒否された回数を追跡する新しいプロファイルイベントを追加しました。 [#88084](https://github.com/ClickHouse/ClickHouse/pull/88084) ([Grant Holly](https://github.com/grantholly-clickhouse))。 -* CREATE/ALTER TABLE の列デフォルト式を検証するアナライザーを有効化。 [#88087](https://github.com/ClickHouse/ClickHouse/pull/88087) ([Max Justus Spransy](https://github.com/maxjustus)). -* 内部クエリプランの改善: `CROSS JOIN` に JoinStepLogical を使用。 [#88151](https://github.com/ClickHouse/ClickHouse/pull/88151) ([Vladimir Cherkasov](https://github.com/vdimir)). -* `hasAnyTokens` 関数のエイリアスとして `hasAnyToken` を、`hasAllTokens` 関数のエイリアスとして `hasAllToken` を追加しました。 [#88162](https://github.com/ClickHouse/ClickHouse/pull/88162) ([George Larionov](https://github.com/george-larionov))。 -* グローバルなサンプリングプロファイラをデフォルトで有効化しました(つまり、クエリに関連しないサーバースレッドも対象とする)。すべてのスレッドについて、CPU 時間および実時間の両方で 10 秒ごとにスタックトレースを収集します。 [#88209](https://github.com/ClickHouse/ClickHouse/pull/88209) ([Alexander Tokmakov](https://github.com/tavplubix))。 -* コピーおよびコンテナー作成機能で発生していた 'Content-Length' の問題への修正を取り込むよう、Azure SDK を更新。 [#88278](https://github.com/ClickHouse/ClickHouse/pull/88278) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). -* 関数 `lag` を MySQL との互換性向上のために大文字小文字を区別しないようにしました。 [#88322](https://github.com/ClickHouse/ClickHouse/pull/88322) ([Lonny Kapelushnik](https://github.com/lonnylot)). -* `clickhouse-server` ディレクトリから `clickhouse-local` を起動できるようにしました。以前のバージョンでは、`Cannot parse UUID: .` というエラーが発生していました。これにより、サーバーを起動せずに `clickhouse-local` を起動し、サーバーのデータベースを操作できるようになりました。 [#88383](https://github.com/ClickHouse/ClickHouse/pull/88383) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* `keeper_server.coordination_settings.check_node_acl_on_remove` 設定を追加しました。有効になっている場合、各ノード削除の前に、そのノード自身と親ノードの両方の ACL が検証されます。無効になっている場合は、親ノードの ACL のみが検証されます。 [#88513](https://github.com/ClickHouse/ClickHouse/pull/88513) ([Antonio Andelic](https://github.com/antonio2368)). -* `Vertical` フォーマット使用時に `JSON` カラムが整形表示されるようになりました。[#81794](https://github.com/ClickHouse/ClickHouse/issues/81794) をクローズ。[#88524](https://github.com/ClickHouse/ClickHouse/pull/88524)([Frank Rosner](https://github.com/FRosner))。 -* `clickhouse-client` のファイル(例: クエリ履歴)をホームディレクトリのルートではなく、[XDG Base Directories](https://specifications.freedesktop.org/basedir-spec/latest/index.html) 仕様で規定された場所に保存するようにしました。`~/.clickhouse-client-history` がすでに存在する場合は、引き続きそちらが使用されます。[#88538](https://github.com/ClickHouse/ClickHouse/pull/88538) ([Konstantin Bogdanov](https://github.com/thevar1able))。 -* `GLOBAL IN` によるメモリリークを修正しました([https://github.com/ClickHouse/ClickHouse/issues/88615](https://github.com/ClickHouse/ClickHouse/issues/88615))。[#88617](https://github.com/ClickHouse/ClickHouse/pull/88617)([pranavmehta94](https://github.com/pranavmehta94))。 -* hasAny/hasAllTokens に文字列入力を受け付けるオーバーロードを追加しました。 [#88679](https://github.com/ClickHouse/ClickHouse/pull/88679) ([George Larionov](https://github.com/george-larionov)). -* `clickhouse-keeper` がブート時に自動起動するように、postinstall スクリプトにステップを追加。 [#88746](https://github.com/ClickHouse/ClickHouse/pull/88746) ([YenchangChan](https://github.com/YenchangChan)). -* Web UI では、すべてのキー入力のたびにではなく、貼り付け時にのみ認証情報を検証するようにしました。これにより、誤構成された LDAP サーバーによる問題を回避できます。これにより [#85777](https://github.com/ClickHouse/ClickHouse/issues/85777) がクローズされました。[#88769](https://github.com/ClickHouse/ClickHouse/pull/88769)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 制約違反が発生した場合の例外メッセージの長さを制限するようにしました。以前のバージョンでは、非常に長い文字列が挿入されたときに、同様に非常に長い例外メッセージが生成され、それが `query_log` に書き込まれてしまうことがありました。この変更により [#87032](https://github.com/ClickHouse/ClickHouse/issues/87032) がクローズされました。[#88801](https://github.com/ClickHouse/ClickHouse/pull/88801)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* テーブル作成時に ArrowFlight サーバーからデータセット構造を取得する処理を修正。 [#87542](https://github.com/ClickHouse/ClickHouse/pull/87542) ([Vitaly Baranov](https://github.com/vitlibar)). - -#### バグ修正(公式安定版リリースでユーザーに影響する誤動作) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* クライアントプロトコルエラーの原因となっていた GeoParquet を修正。 [#84020](https://github.com/ClickHouse/ClickHouse/pull/84020) ([Michael Kolupaev](https://github.com/al13n321)). -* イニシエーターノード上のサブクエリ内で、`shardNum()` などのホスト依存関数の解決を修正しました。 [#84409](https://github.com/ClickHouse/ClickHouse/pull/84409) ([Eduard Karacharov](https://github.com/korowa)). -* `parseDateTime64BestEffort`、`change{Year,Month,Day}`、`makeDateTime64` などの各種日時関連関数において、エポック以前の日付で小数秒を含む値を誤って処理してしまう不具合を修正しました。以前は、秒に小数部分を加算すべきところで減算していました。たとえば、`parseDateTime64BestEffort('1969-01-01 00:00:00.468')` は、本来 `1969-01-01 00:00:00.468` を返すべきところ、`1968-12-31 23:59:59.532` を返していました。 [#85396](https://github.com/ClickHouse/ClickHouse/pull/85396) ([xiaohuanlin](https://github.com/xiaohuanlin))。 -* 同一の ALTER ステートメント内でカラムの状態が変更される場合に、ALTER COLUMN IF EXISTS コマンドが失敗する問題を修正しました。DROP COLUMN IF EXISTS、MODIFY COLUMN IF EXISTS、COMMENT COLUMN IF EXISTS、RENAME COLUMN IF EXISTS などのコマンドは、同一ステートメント内の前のコマンドでカラムが削除されているケースを正しく処理するようになりました。 [#86046](https://github.com/ClickHouse/ClickHouse/pull/86046) ([xiaohuanlin](https://github.com/xiaohuanlin)). -* サポート対象範囲外の日付に対する Date/DateTime/DateTime64 型の推論を修正しました。 [#86184](https://github.com/ClickHouse/ClickHouse/pull/86184) ([Pavel Kruglov](https://github.com/Avogar)). -* 一部の有効なユーザー送信データが `AggregateFunction(quantileDD)` カラムに含まれていると、マージ処理中に無限再帰が発生してクラッシュする問題を修正します。 [#86560](https://github.com/ClickHouse/ClickHouse/pull/86560) ([Raphaël Thériault](https://github.com/raphael-theriault-swi))。 -* `cluster` テーブル関数で作成されたテーブルで JSON/Dynamic 型をサポートしました。 [#86821](https://github.com/ClickHouse/ClickHouse/pull/86821) ([Pavel Kruglov](https://github.com/Avogar)). -* クエリ内で CTE で計算される関数の結果が非決定的になる不具合を修正。 [#86967](https://github.com/ClickHouse/ClickHouse/pull/86967) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* 主キー列に対する pointInPolygon を用いた EXPLAIN で発生する LOGICAL_ERROR を修正。 [#86971](https://github.com/ClickHouse/ClickHouse/pull/86971) ([Michael Kolupaev](https://github.com/al13n321)). -* 名前にパーセントエンコードされたシーケンスを含むデータレイクテーブルを修正。[#86626](https://github.com/ClickHouse/ClickHouse/issues/86626) をクローズ。[#87020](https://github.com/ClickHouse/ClickHouse/pull/87020)([Anton Ivashkin](https://github.com/ianton-ru))。 -* `optimize_functions_to_subcolumns` を使用した `OUTER JOIN` における Nullable カラムでの `IS NULL` の誤った動作を修正し、[#78625](https://github.com/ClickHouse/ClickHouse/issues/78625) をクローズしました。 [#87058](https://github.com/ClickHouse/ClickHouse/pull/87058)([Vladimir Cherkasov](https://github.com/vdimir))。 -* `max_temporary_data_on_disk_size` 制限の追跡において、一時データの解放を誤って計上していた問題を修正しました。[#87118](https://github.com/ClickHouse/ClickHouse/issues/87118) をクローズしました。[#87140](https://github.com/ClickHouse/ClickHouse/pull/87140)([JIaQi](https://github.com/JiaQiTang98))。 -* 関数 `checkHeaders` は、提供されたヘッダーを適切に検証し、禁止されているヘッダーを拒否するようになりました。元の著者: Michael Anastasakis (@michael-anastasakis)。[#87172](https://github.com/ClickHouse/ClickHouse/pull/87172)([Raúl Marín](https://github.com/Algunenano))。 -* すべての数値型に対して `toDate` と `toDate32` が同じ動作をするようにしました。int16 からのキャスト時における Date32 のアンダーフローの検査を修正しました。 [#87176](https://github.com/ClickHouse/ClickHouse/pull/87176) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* 複数の JOIN を含むクエリで、特に LEFT/INNER JOIN の後に RIGHT JOIN が続く場合に、parallel replicas で発生していた論理エラーを修正しました。 [#87178](https://github.com/ClickHouse/ClickHouse/pull/87178) ([Igor Nikonov](https://github.com/devcrafter)). -* スキーマ推論キャッシュで `input_format_try_infer_variants` 設定を考慮するようにしました。 [#87180](https://github.com/ClickHouse/ClickHouse/pull/87180) ([Pavel Kruglov](https://github.com/Avogar)). -* `pathStartsWith` がプレフィックス直下のパスにのみマッチするように変更しました。 [#87181](https://github.com/ClickHouse/ClickHouse/pull/87181) ([Raúl Marín](https://github.com/Algunenano)). -* `_row_number` 仮想カラムと Iceberg の位置指定削除における論理エラーを修正しました。 [#87220](https://github.com/ClickHouse/ClickHouse/pull/87220) ([Michael Kolupaev](https://github.com/al13n321))。 -* const ブロックと非 const ブロックが混在していたことが原因で `JOIN` で発生していた「Too large size passed to allocator」`LOGICAL_ERROR` を修正。 [#87231](https://github.com/ClickHouse/ClickHouse/pull/87231) ([Azat Khuzhin](https://github.com/azat)). -* 他の `MergeTree` テーブルを読み取るサブクエリを伴う軽量更新を修正しました。 [#87285](https://github.com/ClickHouse/ClickHouse/pull/87285) ([Anton Popov](https://github.com/CurtizJ)). -* 行ポリシーが存在する場合に機能していなかった move-to-prewhere 最適化を修正しました。[#85118](https://github.com/ClickHouse/ClickHouse/issues/85118) の後続対応です。[#69777](https://github.com/ClickHouse/ClickHouse/issues/69777) をクローズします。[#83748](https://github.com/ClickHouse/ClickHouse/issues/83748) をクローズします。[#87303](https://github.com/ClickHouse/ClickHouse/pull/87303)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* データパーツ内に存在しない、デフォルト式を持つ列へのパッチ適用の問題を修正しました。 [#87347](https://github.com/ClickHouse/ClickHouse/pull/87347) ([Anton Popov](https://github.com/CurtizJ)). -* MergeTree テーブルでパーティションの列名が重複している場合に発生していたセグメンテーションフォルトを修正しました。 [#87365](https://github.com/ClickHouse/ClickHouse/pull/87365) ([xiaohuanlin](https://github.com/xiaohuanlin)). -* EmbeddedRocksDB のアップグレード処理を修正。[#87392](https://github.com/ClickHouse/ClickHouse/pull/87392) ([Raúl Marín](https://github.com/Algunenano)). -* オブジェクトストレージ上にあるテキストインデックスからの直接読み取りを修正しました。 [#87399](https://github.com/ClickHouse/ClickHouse/pull/87399) ([Anton Popov](https://github.com/CurtizJ)). -* 存在しないエンジンに対する権限が作成されてしまうのを防止しました。 [#87419](https://github.com/ClickHouse/ClickHouse/pull/87419) ([Jitendra](https://github.com/jitendra1411)). -* `s3_plain_rewritable` に対しては「not found」エラーのみを無視するようにしました(それ以外のエラーを無視すると、あらゆる問題を引き起こす可能性があります)。 [#87426](https://github.com/ClickHouse/ClickHouse/pull/87426) ([Azat Khuzhin](https://github.com/azat)). -* YTSaurus ソースおよび *range_hashed レイアウトを使用するディクショナリを修正しました。 [#87490](https://github.com/ClickHouse/ClickHouse/pull/87490) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). -* 空タプルの配列を作成する際の処理を修正。 [#87520](https://github.com/ClickHouse/ClickHouse/pull/87520) ([Pavel Kruglov](https://github.com/Avogar)). -* 一時テーブル作成時に不正なカラムをチェックするようにしました。 [#87524](https://github.com/ClickHouse/ClickHouse/pull/87524) ([Pavel Kruglov](https://github.com/Avogar)). -* Hive パーティション列をフォーマットヘッダーに含めないようにしました。次の問題を修正: [#87515](https://github.com/ClickHouse/ClickHouse/issues/87515). [#87528](https://github.com/ClickHouse/ClickHouse/pull/87528) ([Arthur Passos](https://github.com/arthurpassos)). -* テキストフォーマット使用時の DeltaLake におけるフォーマットからの読み込み準備を修正。 [#87529](https://github.com/ClickHouse/ClickHouse/pull/87529) ([Pavel Kruglov](https://github.com/Avogar)). -* Buffer テーブルに対する SELECT および INSERT 時のアクセス検証を修正。 [#87545](https://github.com/ClickHouse/ClickHouse/pull/87545) ([pufit](https://github.com/pufit)). -* S3 テーブルに対する data skipping index の作成を禁止しました。 [#87554](https://github.com/ClickHouse/ClickHouse/pull/87554) ([Bharat Nallan](https://github.com/bharatnc)). -* 非同期ロギングにおけるトラッキング対象メモリのリークを回避しました(10時間で約100GiBもの大きなドリフトが発生し得る問題)、および `text_log` におけるリークも回避しました(ほぼ同様のドリフトが発生する可能性がありました)。 [#87584](https://github.com/ClickHouse/ClickHouse/pull/87584) ([Azat Khuzhin](https://github.com/azat)). -* ビューまたはマテリアライズドビューの SELECT クエリ設定が、グローバルなサーバー設定を上書きしてしまう可能性のある不具合を修正しました。この問題は、該当ビューが非同期に削除され、バックグラウンドでのクリーンアップが完了する前にサーバーが再起動された場合に発生する可能性がありました。 [#87603](https://github.com/ClickHouse/ClickHouse/pull/87603) ([Alexander Tokmakov](https://github.com/tavplubix))。 -* メモリ過負荷の警告を計算する際に、可能であればユーザー空間ページキャッシュのバイト数を除外します。 [#87610](https://github.com/ClickHouse/ClickHouse/pull/87610) ([Bharat Nallan](https://github.com/bharatnc)). -* CSV デシリアライズ時の型の順序が誤っている場合に `LOGICAL_ERROR` が発生していたバグを修正しました。 [#87622](https://github.com/ClickHouse/ClickHouse/pull/87622) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* 実行可能ディクショナリにおける `command_read_timeout` の不正な扱いを修正しました。 [#87627](https://github.com/ClickHouse/ClickHouse/pull/87627) ([Azat Khuzhin](https://github.com/azat)). -* 新しい analyzer で、置換されたカラムでフィルタリングする際の `WHERE` 句における `SELECT * REPLACE` の誤った動作を修正しました。 [#87630](https://github.com/ClickHouse/ClickHouse/pull/87630) ([xiaohuanlin](https://github.com/xiaohuanlin)). -* `Distributed` 上で `Merge` を使用した場合の二段階集約処理を修正しました。 [#87687](https://github.com/ClickHouse/ClickHouse/pull/87687) ([c-end](https://github.com/c-end)). -* `right row list` が使用されていない場合の HashJoin アルゴリズムにおける出力ブロック生成を修正しました。[#87401](https://github.com/ClickHouse/ClickHouse/issues/87401) を解決します。 [#87699](https://github.com/ClickHouse/ClickHouse/pull/87699)([Dmitry Novik](https://github.com/novikd))。 -* インデックス解析の結果、読み取るデータが存在しない場合に、Parallel replicas の読み取りモードが誤って選択される可能性がありました。 [#87653](https://github.com/ClickHouse/ClickHouse/issues/87653) をクローズしました。 [#87700](https://github.com/ClickHouse/ClickHouse/pull/87700) ([zoomxi](https://github.com/zoomxi))。 -* Glue での `timestamp` / `timestamptz` 列の処理を修正。[#87733](https://github.com/ClickHouse/ClickHouse/pull/87733) ([Andrey Zvonov](https://github.com/zvonand))。 -* これにより [#86587](https://github.com/ClickHouse/ClickHouse/issues/86587) がクローズされます。 [#87761](https://github.com/ClickHouse/ClickHouse/pull/87761)([scanhex12](https://github.com/scanhex12))。 -* PostgreSQL インターフェースにおける Boolean 値の書き込み処理を修正。 [#87762](https://github.com/ClickHouse/ClickHouse/pull/87762) ([Artem Yurov](https://github.com/ArtemYurov))。 -* CTE を使用した INSERT SELECT クエリで発生する「unknown table」エラーを修正。 [#85368](https://github.com/ClickHouse/ClickHouse/issues/85368)。 [#87789](https://github.com/ClickHouse/ClickHouse/pull/87789) ([Guang Zhao](https://github.com/zheguang))。 -* Nullable の内部に含められない Variant から null の map サブカラムを読み取る処理を修正。 [#87798](https://github.com/ClickHouse/ClickHouse/pull/87798) ([Pavel Kruglov](https://github.com/Avogar)). -* セカンダリノードでクラスタ上のデータベースを完全に削除できなかった場合のエラー処理を修正しました。 [#87802](https://github.com/ClickHouse/ClickHouse/pull/87802) ([Tuan Pham Anh](https://github.com/tuanpach)). -* 複数の skip インデックスに関するバグを修正しました。[#87817](https://github.com/ClickHouse/ClickHouse/pull/87817) ([Raúl Marín](https://github.com/Algunenano))。 -* AzureBlobStorage において、まずネイティブコピーを試行し、「Unauthroized」エラーが発生した場合に読み取り&書き込みに切り替えるよう更新しました(AzureBlobStorage では、ソースとデスティネーションでストレージアカウントが異なる場合、「Unauthorized」エラーが発生します)。また、設定で endpoint が定義されている場合に "use_native_copy" が適用されるよう修正しました。 [#87826](https://github.com/ClickHouse/ClickHouse/pull/87826) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). -* ArrowStream ファイルに一意ではない辞書が含まれている場合に ClickHouse がクラッシュする不具合がありました。 [#87863](https://github.com/ClickHouse/ClickHouse/pull/87863) ([Ilya Golshtein](https://github.com/ilejn)). -* approx_top_k および finalizeAggregation 使用時に発生する致命的な問題を修正。 [#87892](https://github.com/ClickHouse/ClickHouse/pull/87892) ([Jitendra](https://github.com/jitendra1411)). -* 最後のブロックが空の場合のプロジェクションを使用したマージを修正しました。 [#87928](https://github.com/ClickHouse/ClickHouse/pull/87928) ([Raúl Marín](https://github.com/Algunenano))。 -* 引数型が GROUP BY で許可されていない場合には、`injective` 関数を GROUP BY から削除しないようにしました。 [#87958](https://github.com/ClickHouse/ClickHouse/pull/87958) ([Pavel Kruglov](https://github.com/Avogar)). -* クエリで `session_timezone` 設定を使用した場合に、datetime ベースのキーに対する granule / パーティションの除外が誤って行われていた問題を修正。[#87987](https://github.com/ClickHouse/ClickHouse/pull/87987) ([Eduard Karacharov](https://github.com/korowa)). -* PostgreSQL インターフェースで、クエリ実行後に影響を受けた行数を返すようになりました。 [#87990](https://github.com/ClickHouse/ClickHouse/pull/87990) ([Artem Yurov](https://github.com/ArtemYurov)). -* 誤った結果を招く可能性があるため、PASTE JOIN に対するフィルタープッシュダウンの適用を制限しました。 [#88078](https://github.com/ClickHouse/ClickHouse/pull/88078) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* [https://github.com/ClickHouse/ClickHouse/pull/84503](https://github.com/ClickHouse/ClickHouse/pull/84503) で導入された権限チェックの評価前に、URI の正規化を適用します。[#88089](https://github.com/ClickHouse/ClickHouse/pull/88089)([pufit](https://github.com/pufit))。 -* 新しいアナライザーで `ARRAY JOIN COLUMNS()` がどの列にもマッチしない場合に発生する論理エラーを修正。 [#88091](https://github.com/ClickHouse/ClickHouse/pull/88091) ([xiaohuanlin](https://github.com/xiaohuanlin)). -* 「High ClickHouse memory usage」警告でページキャッシュを除外するように修正。 [#88092](https://github.com/ClickHouse/ClickHouse/pull/88092) ([Azat Khuzhin](https://github.com/azat)). -* `TTL` が設定された `MergeTree` テーブルでデータ破損を引き起こす可能性のあった問題を修正しました。 [#88095](https://github.com/ClickHouse/ClickHouse/pull/88095) ([Anton Popov](https://github.com/CurtizJ)). -* 外部データベース(`PostgreSQL` / `SQLite` / ...)がアタッチされており、その中に不正なテーブルが存在する場合に、`system.tables` を読み取る際に発生しうる未捕捉例外を修正しました。 [#88105](https://github.com/ClickHouse/ClickHouse/pull/88105) ([Azat Khuzhin](https://github.com/azat)). -* 空のタプル引数で呼び出された場合にクラッシュする `mortonEncode` および `hilbertEncode` 関数の不具合を修正しました。 [#88110](https://github.com/ClickHouse/ClickHouse/pull/88110) ([xiaohuanlin](https://github.com/xiaohuanlin)). -* これにより、クラスタ内に非アクティブなレプリカが存在する場合でも、`ON CLUSTER` クエリの実行時間が短くなります。 [#88153](https://github.com/ClickHouse/ClickHouse/pull/88153) ([alesapin](https://github.com/alesapin))。 -* DDL worker がレプリカセットから古いホストをクリーンアップするようになりました。これにより ZooKeeper に保存されるメタデータ量が削減されます。 [#88154](https://github.com/ClickHouse/ClickHouse/pull/88154) ([alesapin](https://github.com/alesapin)). -* cgroups なしで ClickHouse を実行できない問題を修正(非同期メトリクス用に誤って cgroups が必須要件となっていた)。 [#88164](https://github.com/ClickHouse/ClickHouse/pull/88164) ([Azat Khuzhin](https://github.com/azat)). -* エラーが発生した場合にディレクトリ移動操作を正しく取り消せるようにしました。実行中に変更されたルートのものだけでなく、変更されたすべての `prefix.path` オブジェクトを書き戻す必要があります。 [#88198](https://github.com/ClickHouse/ClickHouse/pull/88198) ([Mikhail Artemenko](https://github.com/Michicosun)). -* `ColumnLowCardinality` における `is_shared` フラグの伝搬を修正しました。`ReverseIndex` でハッシュ値がすでに事前に計算およびキャッシュされた後にそのカラムに新しい値が挿入されると、誤った GROUP BY の結果を引き起こす可能性がありました。 [#88213](https://github.com/ClickHouse/ClickHouse/pull/88213) ([Nikita Taranov](https://github.com/nickitat))。 -* ワークロード設定 `max_cpu_share` の挙動を修正しました。これにより、`max_cpus` ワークロード設定を指定しなくても使用できるようになりました。 [#88217](https://github.com/ClickHouse/ClickHouse/pull/88217) ([Neerav](https://github.com/neeravsalaria)). -* サブクエリを含む非常に重い mutation が prepare ステージで行き詰まってしまうバグを修正しました。現在は `SYSTEM STOP MERGES` を使用してこれらの mutation を停止できるようになりました。 [#88241](https://github.com/ClickHouse/ClickHouse/pull/88241) ([alesapin](https://github.com/alesapin)). -* 相関サブクエリがオブジェクトストレージでも動作するようになりました。 [#88290](https://github.com/ClickHouse/ClickHouse/pull/88290) ([alesapin](https://github.com/alesapin)). -* `system.projections` および `system.data_skipping_indices` にアクセスしている間は DataLake データベースを初期化しないようにしました。 [#88330](https://github.com/ClickHouse/ClickHouse/pull/88330) ([Azat Khuzhin](https://github.com/azat)). -* 今後は、`show_data_lake_catalogs_in_system_tables` が明示的に有効化されている場合にのみ、データレイクカタログがイントロスペクション用の system テーブルに表示されます。 [#88341](https://github.com/ClickHouse/ClickHouse/pull/88341) ([alesapin](https://github.com/alesapin)). -* DatabaseReplicated が `interserver_http_host` 設定を参照するように修正しました。 [#88378](https://github.com/ClickHouse/ClickHouse/pull/88378) ([xiaohuanlin](https://github.com/xiaohuanlin)). -* 位置引数は、Projections を定義するコンテキストでは明示的に無効化されました。これは、この内部クエリ処理段階では位置引数が適切でないためです。この変更により [#48604](https://github.com/ClickHouse/ClickHouse/issues/48604) が修正されました。 [#88380](https://github.com/ClickHouse/ClickHouse/pull/88380) ([Amos Bird](https://github.com/amosbird))。 -* `countMatches` 関数の二乗オーダーの計算量を改善しました。[#88400](https://github.com/ClickHouse/ClickHouse/issues/88400) をクローズ。[#88401](https://github.com/ClickHouse/ClickHouse/pull/88401)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* KeeperMap テーブルに対する `ALTER COLUMN ... COMMENT` コマンドをレプリケート対象とし、Replicated データベースのメタデータにコミットして、すべてのレプリカへ伝播されるようにしました。[#88077](https://github.com/ClickHouse/ClickHouse/issues/88077) をクローズ。[#88408](https://github.com/ClickHouse/ClickHouse/pull/88408)([Eduard Karacharov](https://github.com/korowa))。 -* DatabaseReplicated におけるマテリアライズドビューの誤った循環依存関係の検出を修正し、新しいレプリカをデータベースに追加することを妨げていた問題を解消しました。 [#88423](https://github.com/ClickHouse/ClickHouse/pull/88423) ([Nikolay Degterinsky](https://github.com/evillique)). -* `group_by_overflow_mode` が `any` に設定されている場合のスパース列に対する集約を修正しました。 [#88440](https://github.com/ClickHouse/ClickHouse/pull/88440) ([Eduard Karacharov](https://github.com/korowa)). -* `query_plan_use_logical_join_step=0` を複数の FULL JOIN USING 句と併用した際に発生する「column not found」エラーを修正しました。[#88103](https://github.com/ClickHouse/ClickHouse/issues/88103) をクローズしました。 [#88473](https://github.com/ClickHouse/ClickHouse/pull/88473) ([Vladimir Cherkasov](https://github.com/vdimir))。 -* ノード数が 10 を超える大規模クラスタでは、`[941] 67c45db4-4df4-4879-87c5-25b8d1e0d414 : RestoreCoordinationOnCluster The version of node /clickhouse/backups/restore-7c551a77-bd76-404c-bad0-3213618ac58e/stage/num_hosts changed (attempt #9), will try again` というエラーにより復元処理が失敗する可能性が高くなります。`num_hosts` ノードが多数のホストによって同時に上書きされてしまいます。この修正により、試行回数を制御する設定が動的に調整されるようになりました。[#87721](https://github.com/ClickHouse/ClickHouse/issues/87721) をクローズしました。[#88484](https://github.com/ClickHouse/ClickHouse/pull/88484)([Mikhail f. Shiryaev](https://github.com/Felixoid))。 -* この PR は 23.8 およびそれ以前との互換性を確保するためだけのものです。互換性の問題は次の PR によって導入されました: [https://github.com/ClickHouse/ClickHouse/pull/54240](https://github.com/ClickHouse/ClickHouse/pull/54240) この SQL は `enable_analyzer=0` の場合に失敗します(23.8 より前のバージョンでは問題ありません)。[#88491](https://github.com/ClickHouse/ClickHouse/pull/88491)([JIaQi](https://github.com/JiaQiTang98))。 -* 大きな値を DateTime 型に変換する際の `accurateCast` のエラーメッセージで発生していた UBSAN による整数オーバーフローを修正しました。[#88520](https://github.com/ClickHouse/ClickHouse/pull/88520)([xiaohuanlin](https://github.com/xiaohuanlin))。 -* タプル型用の CoalescingMergeTree の不具合を修正しました。これにより [#88469](https://github.com/ClickHouse/ClickHouse/issues/88469) がクローズされました。[#88526](https://github.com/ClickHouse/ClickHouse/pull/88526)([scanhex12](https://github.com/scanhex12))。 -* `iceberg_format_version=1` に対する削除を禁止しました。これにより [#88444](https://github.com/ClickHouse/ClickHouse/issues/88444) が解決されました。[#88532](https://github.com/ClickHouse/ClickHouse/pull/88532)([scanhex12](https://github.com/scanhex12))。 -* このパッチは、任意の深さのディレクトリに対する `plain-rewritable` ディスクの移動処理を修正します。 [#88586](https://github.com/ClickHouse/ClickHouse/pull/88586) ([Mikhail Artemenko](https://github.com/Michicosun))。 -* *cluster 関数における SQL SECURITY DEFINER の動作を修正。 [#88588](https://github.com/ClickHouse/ClickHouse/pull/88588) ([Julian Maicher](https://github.com/jmaicher)). -* 基盤となる const PREWHERE 列の同時実行されるミューテーションにより発生しうるクラッシュを修正。 [#88605](https://github.com/ClickHouse/ClickHouse/pull/88605) ([Azat Khuzhin](https://github.com/azat)). -* テキストインデックスからの読み取りを修正し、`use_skip_indexes_on_data_read` および `use_query_condition_cache` 設定を有効にしてクエリ条件キャッシュを有効化しました。 [#88660](https://github.com/ClickHouse/ClickHouse/pull/88660) ([Anton Popov](https://github.com/CurtizJ)). -* `Poco::Net::HTTPChunkedStreamBuf::readFromDevice` からスローされた `Poco::TimeoutException` により、SIGABRT でクラッシュします。[#88668](https://github.com/ClickHouse/ClickHouse/pull/88668)([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 -* [#88910](https://github.com/ClickHouse/ClickHouse/issues/88910) にバックポート済み: リカバリ後、Replicated データベースのレプリカが `Failed to marked query-0004647339 as finished (finished=No node, synced=No node)` のようなメッセージを長時間にわたって出力し続けてハングしてしまうことがありましたが、この問題は修正されました。[#88671](https://github.com/ClickHouse/ClickHouse/pull/88671) ([Alexander Tokmakov](https://github.com/tavplubix))。 -* 設定のリロード後に ClickHouse が初めて接続する場合の `system.zookeeper_connection_log` への追記処理を修正。 [#88728](https://github.com/ClickHouse/ClickHouse/pull/88728) ([Antonio Andelic](https://github.com/antonio2368)). -* `date_time_overflow_behavior = 'saturate'` を使用している場合に、タイムゾーンを扱う際、範囲外の値を DateTime64 から Date に変換すると誤った結果が返される可能性があったバグを修正しました。 [#88737](https://github.com/ClickHouse/ClickHouse/pull/88737) ([Manuel](https://github.com/raimannma)). -* キャッシュを有効にした S3 テーブルエンジンで発生する「having zero bytes error」を修正する N 回目の試み。 [#88740](https://github.com/ClickHouse/ClickHouse/pull/88740) ([Kseniia Sumarokova](https://github.com/kssenii)). -* `loop` テーブル関数に対する SELECT 時のアクセス検証を修正。 [#88802](https://github.com/ClickHouse/ClickHouse/pull/88802) ([pufit](https://github.com/pufit)). -* 非同期ロギングが失敗した際に例外を捕捉し、プログラムが異常終了するのを防ぎます。 [#88814](https://github.com/ClickHouse/ClickHouse/pull/88814) ([Raúl Marín](https://github.com/Algunenano)). -* [#89060](https://github.com/ClickHouse/ClickHouse/issues/89060) にバックポート済み: `top_k` が単一の引数で呼び出された場合に、threshold パラメータを正しく考慮するように修正。 [#88757](https://github.com/ClickHouse/ClickHouse/issues/88757) をクローズ。 [#88867](https://github.com/ClickHouse/ClickHouse/pull/88867)([Manuel](https://github.com/raimannma))。 -* [#88944](https://github.com/ClickHouse/ClickHouse/issues/88944) にバックポート済み: 関数 `reverseUTF8` のバグを修正しました。以前のバージョンでは、4 バイト長の UTF-8 コードポイントのバイト列を誤って反転していました。この修正により [#88913](https://github.com/ClickHouse/ClickHouse/issues/88913) がクローズされます。[#88914](https://github.com/ClickHouse/ClickHouse/pull/88914)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* [#88980](https://github.com/ClickHouse/ClickHouse/issues/88980) にバックポート済み:SQL SECURITY DEFINER を指定してビューを作成する際に、`SET DEFINER :definer` へのアクセスをチェックしないようになりました。[#88968](https://github.com/ClickHouse/ClickHouse/pull/88968) ([pufit](https://github.com/pufit))。 -* [#89058](https://github.com/ClickHouse/ClickHouse/issues/89058) でバックポート済み: `p` が `Nullable` の場合に、部分的な `QBit` 読み取りの最適化によって戻り値の型から誤って `Nullable` が削除されていたため、`L2DistanceTransposed(vec1, vec2, p)` における `LOGICAL_ERROR` を修正しました。[#88974](https://github.com/ClickHouse/ClickHouse/pull/88974)([Raufs Dunamalijevs](https://github.com/rienath))。 -* [#89167](https://github.com/ClickHouse/ClickHouse/issues/89167) でバックポート: 不明なカタログ種別の場合にクラッシュする問題を修正。[#88819](https://github.com/ClickHouse/ClickHouse/issues/88819) を解決。[#88987](https://github.com/ClickHouse/ClickHouse/pull/88987)([scanhex12](https://github.com/scanhex12))。 -* [#89028](https://github.com/ClickHouse/ClickHouse/issues/89028) でバックポート済み: skipping index の解析におけるパフォーマンス低下を修正しました。[#89004](https://github.com/ClickHouse/ClickHouse/pull/89004)([Anton Popov](https://github.com/CurtizJ))。 - -#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement} - -* `postgres` ライブラリのバージョン 18.0 を使用するように変更。 [#87647](https://github.com/ClickHouse/ClickHouse/pull/87647) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* FreeBSD 向けに ICU を有効化。 [#87891](https://github.com/ClickHouse/ClickHouse/pull/87891) ([Raúl Marín](https://github.com/Algunenano)). -* 動的ディスパッチの対象が SSE 4.2 の場合は、SSE 4 ではなく SSE 4.2 を使用。 [#88029](https://github.com/ClickHouse/ClickHouse/pull/88029) ([Raúl Marín](https://github.com/Algunenano)). -* `Speculative Store Bypass Safe` が利用できない場合に、`NO_ARMV81_OR_HIGHER` フラグを必須としないよう変更。 [#88051](https://github.com/ClickHouse/ClickHouse/pull/88051) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* ClickHouse が `ENABLE_LIBFIU=OFF` でビルドされている場合、フェイルポイント関連の関数は no-op(何もしない処理)となり、パフォーマンスに影響を与えなくなります。この場合、`SYSTEM ENABLE/DISABLE FAILPOINT` クエリは `SUPPORT_IS_DISABLED` エラーを返します。 [#88184](https://github.com/ClickHouse/ClickHouse/pull/88184) ([c-end](https://github.com/c-end)). - -### ClickHouse リリース 25.9、2025-09-25 {#259} - -#### 後方互換性のない変更 {#backward-incompatible-change} - -* IPv4/IPv6 に対する意味のない二項演算を無効化: IPv4/IPv6 と整数型以外の型との加算 / 減算を無効化しました。以前は浮動小数点型との演算を許可しており、他のいくつかの型(`DateTime` など)に対しては論理エラーをスローしていました。[#86336](https://github.com/ClickHouse/ClickHouse/pull/86336) ([Raúl Marín](https://github.com/Algunenano)). -* 設定 `allow_dynamic_metadata_for_data_lakes` を非推奨化しました。現在では、すべての Iceberg テーブルが、各クエリを実行する前にストレージから最新のテーブルスキーマを取得しようとします。[#86366](https://github.com/ClickHouse/ClickHouse/pull/86366) ([Daniil Ivanik](https://github.com/divanik)). -* `OUTER JOIN ... USING` 句からの coalesce された列の解決方法を、より一貫したものに変更しました。以前は、OUTER JOIN で USING 列と修飾された列(`a, t1.a, t2.a`)の両方を選択した場合、USING 列が誤って `t1.a` に解決され、左側にマッチしない右側テーブルの行に対して 0/NULL を表示していました。現在は、USING 句の識別子は常に coalesce された列に解決され、修飾された識別子は、クエリ内にどの識別子が存在するかにかかわらず、非 coalesce 列に解決されます。例えば: ```sql SELECT a, t1.a, t2.a FROM (SELECT 1 as a WHERE 0) t1 FULL JOIN (SELECT 2 as a) t2 USING (a) -- 以前: a=0, t1.a=0, t2.a=2(誤り - 'a' が t1.a に解決されている) -- 現在: a=2, t1.a=0, t2.a=2(正しい - 'a' は coalesce されている)。[#80848](https://github.com/ClickHouse/ClickHouse/pull/80848) ([Vladimir Cherkasov](https://github.com/vdimir)). -* レプリケートテーブルの重複排除ウィンドウを 10000 まで増加させました。これは完全に互換性がありますが、多数のテーブルが存在する場合、この変更によって高いリソース消費が発生しうるシナリオが考えられます。[#86820](https://github.com/ClickHouse/ClickHouse/pull/86820) ([Sema Checherinda](https://github.com/CheSema)). - -#### 新機能 {#new-feature} - -* ユーザーは、NATS エンジン用の新しい設定項目 `nats_stream` と `nats_consumer` を指定することで、NATS JetStream を使用してメッセージを取得できるようになりました。 [#84799](https://github.com/ClickHouse/ClickHouse/pull/84799) ([Dmitry Novikov](https://github.com/dmitry-sles-novikov))。 -* `arrowFlight` テーブル関数に認証と SSL のサポートを追加しました。 [#87120](https://github.com/ClickHouse/ClickHouse/pull/87120) ([Vitaly Baranov](https://github.com/vitlibar))。 -* `storage_class_name` という名前の新しいパラメータを `S3` テーブルエンジンおよび `s3` テーブル関数に追加し、AWS が提供する Intelligent-Tiering を指定できるようにしました。キー・バリュー形式および位置指定形式(非推奨)の両方をサポートします。 [#87122](https://github.com/ClickHouse/ClickHouse/pull/87122) ([alesapin](https://github.com/alesapin))。 -* Iceberg テーブルエンジン用の `ALTER UPDATE`。 [#86059](https://github.com/ClickHouse/ClickHouse/pull/86059) ([scanhex12](https://github.com/scanhex12)). -* SELECT ステートメントの実行時に Iceberg メタデータファイルを取得できるシステムテーブル `iceberg_metadata_log` を追加。[#86152](https://github.com/ClickHouse/ClickHouse/pull/86152) ([scanhex12](https://github.com/scanhex12))。 -* `Iceberg` および `DeltaLake` テーブルで、ストレージレベルの設定 `disk` を使用したカスタムディスク構成をサポートしました。 [#86778](https://github.com/ClickHouse/ClickHouse/pull/86778) ([scanhex12](https://github.com/scanhex12)). -* データレイク用ディスクで Azure をサポートしました。 [#87173](https://github.com/ClickHouse/ClickHouse/pull/87173) ([scanhex12](https://github.com/scanhex12)). -* Azure Blob Storage 上での `Unity` カタログをサポートしました。 [#80013](https://github.com/ClickHouse/ClickHouse/pull/80013) ([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 -* `Iceberg` への書き込みで、より多くのフォーマット(`ORC`、`Avro`)をサポートしました。これにより [#86179](https://github.com/ClickHouse/ClickHouse/issues/86179) が解決されました。[#87277](https://github.com/ClickHouse/ClickHouse/pull/87277)([scanhex12](https://github.com/scanhex12))。 -* データベースレプリカに関する情報を保持する新しいシステムテーブル `database_replicas` を追加しました。 [#83408](https://github.com/ClickHouse/ClickHouse/pull/83408) ([Konstantin Morozov](https://github.com/k-morozov))。 -* 一方の配列から、別の配列を集合として扱って差し引く関数 `arrayExcept` を追加しました。 [#82368](https://github.com/ClickHouse/ClickHouse/pull/82368) ([Joanna Hulboj](https://github.com/jh0x)). -* 新しい `system.aggregated_zookeeper_log` テーブルを追加しました。このテーブルには、ZooKeeper の操作に関する統計情報(例: 操作回数、平均レイテンシ、エラー数)が、セッション ID、親パス、および操作種別ごとにグループ化されて格納されており、一定間隔でディスクに書き出されます。 [#85102](https://github.com/ClickHouse/ClickHouse/pull/85102) [#87208](https://github.com/ClickHouse/ClickHouse/pull/87208) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 -* 新しい関数 `isValidASCII` を追加。入力の String または FixedString が ASCII バイト(0x00〜0x7F)のみを含む場合は 1 を返し、それ以外の場合は 0 を返します。[#85377](https://github.com/ClickHouse/ClickHouse/issues/85377) をクローズします。... [#85786](https://github.com/ClickHouse/ClickHouse/pull/85786)([rajat mohan](https://github.com/rajatmohan22))。 -* ブール値の設定は、引数なしで指定できます。例えば `SET use_query_cache;` のように記述すると、true に設定したことと同等になります。 [#85800](https://github.com/ClickHouse/ClickHouse/pull/85800) ([thraeka](https://github.com/thraeka))。 -* New configuration options: `logger.startupLevel` & `logger.shutdownLevel` により、ClickHouse の起動時およびシャットダウン時のログレベルをそれぞれ上書きできるようになりました。 [#85967](https://github.com/ClickHouse/ClickHouse/pull/85967) ([Lennard Eijsackers](https://github.com/Blokje5)). -* 集約関数 `timeSeriesChangesToGrid` および `timeSeriesResetsToGrid`。`timeSeriesRateToGrid` と同様に動作し、開始タイムスタンプ、終了タイムスタンプ、ステップ、ルックバックウィンドウといったパラメータに加えて、タイムスタンプと値の 2 つの引数を受け取りますが、各ウィンドウで少なくとも 2 サンプルを必要とするのではなく、1 サンプル以上あればよい点が異なります。PromQL の `changes`/`resets` を計算し、パラメータで定義されるタイムグリッドの各タイムスタンプについて、指定されたウィンドウ内でサンプル値が変化または減少した回数をカウントします。戻り値の型は `Array(Nullable(Float64))` です。 [#86010](https://github.com/ClickHouse/ClickHouse/pull/86010) ([Stephen Chi](https://github.com/stephchi0))。 -* 一時テーブルと同様の構文(`CREATE TEMPORARY VIEW`)を用いて一時ビューを作成できるようにしました。 [#86432](https://github.com/ClickHouse/ClickHouse/pull/86432) ([Aly Kafoury](https://github.com/AlyHKafoury))。 -* CPU およびメモリ使用量に関する警告を `system.warnings` テーブルに追加。 [#86838](https://github.com/ClickHouse/ClickHouse/pull/86838) ([Bharat Nallan](https://github.com/bharatnc))。 -* `Protobuf` 入力で `oneof` インジケーターをサポートしました。oneof のどの部分が存在するかを示すために、専用のカラムを使用できます。メッセージに [oneof](https://protobuf.dev/programming-guides/proto3/#oneof) が含まれていて、かつ `input_format_protobuf_oneof_presence` が設定されている場合、ClickHouse はどの oneof フィールドが見つかったかを示すカラムを自動的に設定します。 [#82885](https://github.com/ClickHouse/ClickHouse/pull/82885) ([Ilya Golshtein](https://github.com/ilejn)). -* jemalloc の内部ツールに基づいてアロケーションプロファイリングを改善しました。グローバル jemalloc プロファイラは、設定 `jemalloc_enable_global_profiler` を有効化することで利用可能になりました。サンプリングされたグローバルなアロケーションおよび解放は、設定 `jemalloc_collect_global_profile_samples_in_trace_log` を有効化することで、`JemallocSample` 型として `system.trace_log` に保存できるようになりました。jemalloc プロファイリングは、設定 `jemalloc_enable_profiler` を用いて、クエリごとに個別に有効化できるようになりました。`system.trace_log` へのサンプルの保存は、設定 `jemalloc_collect_profile_samples_in_trace_log` を使用してクエリ単位で制御できます。jemalloc を新しいバージョンに更新しました。 [#85438](https://github.com/ClickHouse/ClickHouse/pull/85438) ([Antonio Andelic](https://github.com/antonio2368))。 -* Iceberg テーブルを `DROP` した際にファイルを削除するための新しい設定を追加しました。これにより [#86211](https://github.com/ClickHouse/ClickHouse/issues/86211) が解決されました。 [#86501](https://github.com/ClickHouse/ClickHouse/pull/86501) ([scanhex12](https://github.com/scanhex12))。 - -#### 実験的機能 {#experimental-feature} - -* 反転テキストインデックスをゼロから再実装し、RAM に収まりきらないデータセットに対してもスケーラブルにしました。 [#86485](https://github.com/ClickHouse/ClickHouse/pull/86485) ([Anton Popov](https://github.com/CurtizJ)). -* JOIN の順序付けが統計情報を利用するようになりました。この機能は `allow_statistics_optimize = 1` および `query_plan_optimize_join_order_limit = 10` を設定することで有効化できます。 [#86822](https://github.com/ClickHouse/ClickHouse/pull/86822) ([Han Fei](https://github.com/hanfei1991)). -* `alter table ... materialize statistics all` をサポートしました。これによりテーブルのすべての統計情報がマテリアライズされます。 [#87197](https://github.com/ClickHouse/ClickHouse/pull/87197) ([Han Fei](https://github.com/hanfei1991)). - -#### パフォーマンスの向上 {#performance-improvement} - -* 読み取り時にスキップインデックスを使用してデータパーツをフィルタリングし、不要なインデックスの読み取りを削減できるようにしました。新しい設定 `use_skip_indexes_on_data_read`(デフォルトでは無効)で制御されます。[#75774](https://github.com/ClickHouse/ClickHouse/issues/75774) に対応しています。また、[#81021](https://github.com/ClickHouse/ClickHouse/issues/81021) と共通の基盤となる変更も一部含まれています。[#81526](https://github.com/ClickHouse/ClickHouse/pull/81526)([Amos Bird](https://github.com/amosbird))。 -* `query_plan_optimize_join_order_limit` 設定で制御される、パフォーマンス向上のために JOIN を自動的に並べ替える JOIN 順序最適化を追加しました。なお、この JOIN 順序最適化は現時点では統計情報の利用が限定的であり、主にストレージエンジンからの行数推定に依存しています。より高度な統計情報の収集とカーディナリティ推定は、今後のリリースで追加される予定です。**アップグレード後に JOIN クエリで問題が発生した場合**、一時的な回避策として `SET query_plan_use_new_logical_join_step = 0` を設定して新しい実装を無効化し、調査のために問題を報告してください。**USING 句からの識別子解決に関する注意**: `OUTER JOIN ... USING` 句から得られる coalesce された列の解決方法を、より一貫性のある動作に変更しました。以前は、OUTER JOIN で USING 句の列と修飾付き列 (`a, t1.a, t2.a`) の両方を選択した場合、USING 句の列が誤って `t1.a` に解決され、左側に対応する行がない右テーブルの行で 0/NULL が表示されていました。現在は、USING 句からの識別子は常に coalesce された列に解決され、修飾付き識別子は、クエリ内にどのような他の識別子が存在するかに関わらず、非 coalesce な列に解決されます。例えば: ```sql SELECT a, t1.a, t2.a FROM (SELECT 1 as a WHERE 0) t1 FULL JOIN (SELECT 2 as a) t2 USING (a) -- 変更前: a=0, t1.a=0, t2.a=2 (誤り - 'a' が t1.a に解決されている) -- 変更後: a=2, t1.a=0, t2.a=2 (正しい - 'a' が coalesce されている)。 [#80848](https://github.com/ClickHouse/ClickHouse/pull/80848) ([Vladimir Cherkasov](https://github.com/vdimir)). -* データレイク向けの分散 `INSERT SELECT`。 [#86783](https://github.com/ClickHouse/ClickHouse/pull/86783) ([scanhex12](https://github.com/scanhex12))。 -* `func(primary_column) = 'xx'` や `column in (xxx)` のような条件に対する PREWHERE の最適化を改善しました。 [#85529](https://github.com/ClickHouse/ClickHouse/pull/85529) ([李扬](https://github.com/taiyang-li))。 -* JOIN の書き換えを実装しました。1. フィルタ条件が一致行または不一致行に対して常に偽となる場合、`LEFT ANY JOIN` と `RIGHT ANY JOIN` を `SEMI`/`ANTI` JOIN に変換します。この最適化は、新しい設定 `query_plan_convert_any_join_to_semi_or_anti_join` によって制御されます。2. いずれか一方の側の不一致行に対してフィルタ条件が常に偽となる場合、`FULL ALL JOIN` を `LEFT ALL` または `RIGHT ALL` JOIN に変換します。 [#86028](https://github.com/ClickHouse/ClickHouse/pull/86028) ([Dmitry Novik](https://github.com/novikd))。 -* 軽量削除を実行した後の垂直マージのパフォーマンスを改善しました。 [#86169](https://github.com/ClickHouse/ClickHouse/pull/86169) ([Anton Popov](https://github.com/CurtizJ)). -* `LEFT/RIGHT` 結合で不一致行が多数存在する場合の `HashJoin` のパフォーマンスをわずかに改善しました。 [#86312](https://github.com/ClickHouse/ClickHouse/pull/86312) ([Nikita Taranov](https://github.com/nickitat)). -* 基数ソート:コンパイラによるSIMDの活用と、より効率的なプリフェッチを支援します。Intel CPUでのみソフトウェアプリフェッチを行うために、動的ディスパッチを使用します。[@taiyang-li](https://github.com/taiyang-li) による [https://github.com/ClickHouse/ClickHouse/pull/77029](https://github.com/ClickHouse/ClickHouse/pull/77029) の作業を継続したものです。[#86378](https://github.com/ClickHouse/ClickHouse/pull/86378)([Raúl Marín](https://github.com/Algunenano))。 -* 多数のパーツを持つテーブルに対する短いクエリのパフォーマンスを向上させました(`MarkRanges` を `deque` ではなく `devector` を使って最適化)。 [#86933](https://github.com/ClickHouse/ClickHouse/pull/86933) ([Azat Khuzhin](https://github.com/azat)). -* JOIN モードにおけるパッチパーツ適用処理のパフォーマンスを改善しました。 [#87094](https://github.com/ClickHouse/ClickHouse/pull/87094) ([Anton Popov](https://github.com/CurtizJ)). -* 設定 `query_condition_cache_selectivity_threshold`(デフォルト値: 1.0)を追加しました。選択度が低い述語のスキャン結果を query condition cache への挿入対象から除外します。これにより、キャッシュヒット率が低下する代わりに、query condition cache のメモリ消費量を削減できます。 [#86076](https://github.com/ClickHouse/ClickHouse/pull/86076) ([zhongyuankai](https://github.com/zhongyuankai)). -* Iceberg への書き込み時のメモリ使用量を削減。 [#86544](https://github.com/ClickHouse/ClickHouse/pull/86544) ([scanhex12](https://github.com/scanhex12)). - -#### 改善点 {#improvement} - -* 1 回の INSERT で Iceberg に複数のデータファイルを書き込めるようにしました。上限を制御するために、新しい設定 `iceberg_insert_max_rows_in_data_file` および `iceberg_insert_max_bytes_in_data_file` を追加しました。 [#86275](https://github.com/ClickHouse/ClickHouse/pull/86275) ([scanhex12](https://github.com/scanhex12)). -* Delta Lake に挿入されるデータファイルごとの行数/バイト数の上限を追加しました。`delta_lake_insert_max_rows_in_data_file` および `delta_lake_insert_max_bytes_in_data_file` の設定で制御されます。[#86357](https://github.com/ClickHouse/ClickHouse/pull/86357) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Iceberg 書き込みで、より多くのパーティション種別をサポートしました。これにより [#86206](https://github.com/ClickHouse/ClickHouse/issues/86206) がクローズされました。[#86298](https://github.com/ClickHouse/ClickHouse/pull/86298)([scanhex12](https://github.com/scanhex12))。 -* S3 のリトライ戦略を設定可能にし、設定 XML ファイルの変更に応じて S3 ディスクの設定をホットリロードできるようにしました。 [#82642](https://github.com/ClickHouse/ClickHouse/pull/82642) ([RinChanNOW](https://github.com/RinChanNOWWW)). -* S3(Azure)Queue テーブルエンジンを改良し、ZooKeeper の接続喪失が発生しても重複が生じることなく処理を継続できるようにしました。S3Queue の設定 `use_persistent_processing_nodes` を有効にする必要があります(`ALTER TABLE MODIFY SETTING` で変更できます)。 [#85995](https://github.com/ClickHouse/ClickHouse/pull/85995) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* `TO` の後にクエリパラメータを指定してマテリアライズドビューを作成できます。例:`CREATE MATERIALIZED VIEW mv TO {to_table:Identifier} AS SELECT * FROM src_table`。 [#84899](https://github.com/ClickHouse/ClickHouse/pull/84899) ([Diskein](https://github.com/Diskein))。 -* `Kafka2` テーブルエンジンで誤った設定が指定された場合に、ユーザー向けの案内がより明確になるよう改善しました。 [#83701](https://github.com/ClickHouse/ClickHouse/pull/83701) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* `Time` 型にタイムゾーンを指定することはできなくなりました(もともとその指定には意味がありませんでした)。 [#84689](https://github.com/ClickHouse/ClickHouse/pull/84689) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* `best_effort` モードでの Time/Time64 のパース処理に関するロジックを簡素化し、いくつかのバグを回避しました。 [#84730](https://github.com/ClickHouse/ClickHouse/pull/84730) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* `deltaLakeAzureCluster` 関数(クラスターモード用の `deltaLakeAzure` と同様)および `deltaLakeS3Cluster` 関数(`deltaLakeCluster` のエイリアス)を追加しました。[#85358](https://github.com/ClickHouse/ClickHouse/issues/85358) を解決しました。[#85547](https://github.com/ClickHouse/ClickHouse/pull/85547)([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 -* `azure_max_single_part_copy_size` 設定をバックアップ時と同様に通常のコピー操作にも適用するようにしました。 [#85767](https://github.com/ClickHouse/ClickHouse/pull/85767) ([Ilya Golshtein](https://github.com/ilejn)). -* S3 Object Storage において、リトライ可能なエラー発生時に S3 クライアントスレッドをスローダウンするようにしました。この変更により、従来の設定 `backup_slow_all_threads_after_retryable_s3_error` を S3 ディスクにも適用し、より汎用的な名前である `s3_slow_all_threads_after_retryable_error` に変更しました。 [#85918](https://github.com/ClickHouse/ClickHouse/pull/85918) ([Julia Kartseva](https://github.com/jkartseva)). -* Mark 設定において、allow_experimental_variant/dynamic/json と enable_variant/dynamic/json は非推奨となりました。現在は、これら 3 種類はすべて無条件に有効になっています。 [#85934](https://github.com/ClickHouse/ClickHouse/pull/85934) ([Pavel Kruglov](https://github.com/Avogar)). -* `http_handlers` で、スキーマおよびホスト:ポートを含む完全な URL 文字列によるフィルタリング(`full_url` ディレクティブ)をサポートしました。 [#86155](https://github.com/ClickHouse/ClickHouse/pull/86155) ([Azat Khuzhin](https://github.com/azat)). -* 新しい設定 `allow_experimental_delta_lake_writes` を追加。[#86180](https://github.com/ClickHouse/ClickHouse/pull/86180)([Kseniia Sumarokova](https://github.com/kssenii))。 -* init.d スクリプトでの systemd 検出を修正し、「Install packages」チェックの不具合を解消しました。 [#86187](https://github.com/ClickHouse/ClickHouse/pull/86187) ([Azat Khuzhin](https://github.com/azat))。 -* 新しい `startup_scripts_failure_reason` 次元メトリクスを追加します。このメトリクスは、起動スクリプトの失敗を引き起こすさまざまなエラー種別を区別するために必要です。特にアラート用途では、一時的なエラー(例: `MEMORY_LIMIT_EXCEEDED` や `KEEPER_EXCEPTION`)と非一時的なエラーを区別する必要があります。[#86202](https://github.com/ClickHouse/ClickHouse/pull/86202)([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 -* Iceberg テーブルのパーティション指定で `identity` 関数を省略できるようにしました。 [#86314](https://github.com/ClickHouse/ClickHouse/pull/86314) ([scanhex12](https://github.com/scanhex12)). -* 特定のチャネルに対してのみ JSON 形式のログ出力を有効にできるようにしました。この機能を利用するには、`logger.formatting.channel` を `syslog` / `console` / `errorlog` / `log` のいずれかに設定します。 [#86331](https://github.com/ClickHouse/ClickHouse/pull/86331) ([Azat Khuzhin](https://github.com/azat))。 -* `WHERE` 句でネイティブの数値を使用できるようにしました。これらはすでに論理関数の引数としては利用可能でした。これにより、filter-push-down および move-to-prewhere の最適化が容易になります。 [#86390](https://github.com/ClickHouse/ClickHouse/pull/86390) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* 破損したメタデータを持つ Catalog に対して `SYSTEM DROP REPLICA` を実行した場合に発生していたエラーを修正しました。 [#86391](https://github.com/ClickHouse/ClickHouse/pull/86391) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* Azure ではアクセスのプロビジョニングにかなり時間がかかる場合があるため、ディスクアクセスチェック(`skip_access_check = 0`)に追加のリトライを行うようにしました。 [#86419](https://github.com/ClickHouse/ClickHouse/pull/86419) ([Alexander Tokmakov](https://github.com/tavplubix)). -* `timeSeries*()` 関数における staleness window を左開き・右閉じの区間となるよう変更しました。 [#86588](https://github.com/ClickHouse/ClickHouse/pull/86588) ([Vitaly Baranov](https://github.com/vitlibar)). -* `FailedInternal*Query` プロファイルイベントを追加しました。 [#86627](https://github.com/ClickHouse/ClickHouse/pull/86627) ([Shane Andrade](https://github.com/mauidude))。 -* 設定ファイル経由で追加された、名前にドットを含むユーザーの扱いを修正。 [#86633](https://github.com/ClickHouse/ClickHouse/pull/86633) ([Mikhail Koviazin](https://github.com/mkmkme)). -* クエリのメモリ使用量に関する非同期メトリクス(`QueriesMemoryUsage` および `QueriesPeakMemoryUsage`)を追加しました。 [#86669](https://github.com/ClickHouse/ClickHouse/pull/86669) ([Azat Khuzhin](https://github.com/azat)). -* `clickhouse-benchmark --precise` フラグを使用すると、QPS およびその他のインターバルごとのメトリクスをより正確にレポートできます。これにより、クエリの実行時間がレポート間隔 `--delay D` と同程度の場合でも、一貫した QPS を取得しやすくなります。 [#86684](https://github.com/ClickHouse/ClickHouse/pull/86684) ([Sergei Trifonov](https://github.com/serxa)). -* Linux スレッドの nice 値を構成可能にし、特定のスレッド(merge/mutate、query、マテリアライズドビュー、ZooKeeper クライアント)により高いまたは低い優先度を割り当てられるようにしました。 [#86703](https://github.com/ClickHouse/ClickHouse/pull/86703) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* 競合状態によりマルチパートアップロードで元の例外が失われた場合に発生していた、誤解を招く「specified upload does not exist」エラーを修正しました。 [#86725](https://github.com/ClickHouse/ClickHouse/pull/86725) ([Julia Kartseva](https://github.com/jkartseva)). -* `EXPLAIN` クエリにおけるクエリプランの説明の長さを制限しました。`EXPLAIN` 以外のクエリではこの説明を生成しないようにしました。設定項目 `query_plan_max_step_description_length` を追加しました。 [#86741](https://github.com/ClickHouse/ClickHouse/pull/86741) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* クエリプロファイラ(`query_profiler_real_time_period_ns` / `query_profiler_cpu_time_period_ns`)で `CANNOT_CREATE_TIMER` を回避できるよう、ペンディングシグナルを調整可能にしました。また、自己診断のために `/proc/self/status` から `SigQ` を収集するようにしました(`ProcessSignalQueueSize` が `ProcessSignalQueueLimit` に近づいている場合、`CANNOT_CREATE_TIMER` エラーが発生する可能性が高くなります)。 [#86760](https://github.com/ClickHouse/ClickHouse/pull/86760) ([Azat Khuzhin](https://github.com/azat)). -* Keeper における `RemoveRecursive` リクエストのパフォーマンスを改善しました。 [#86789](https://github.com/ClickHouse/ClickHouse/pull/86789) ([Antonio Andelic](https://github.com/antonio2368)). -* JSON 型の出力時に `PrettyJSONEachRow` で余分な空白を削除するようにしました。 [#86819](https://github.com/ClickHouse/ClickHouse/pull/86819) ([Pavel Kruglov](https://github.com/Avogar)). -* プレーンなリライト可能ディスクにおいてディレクトリ削除時に、`prefix.path` の blob サイズを書き込むようにしました。 [#86908](https://github.com/ClickHouse/ClickHouse/pull/86908) ([alesapin](https://github.com/alesapin)). -* リモートの ClickHouse インスタンス(ClickHouse Cloud を含む)に対するパフォーマンス テストをサポートします。使用例: `tests/performance/scripts/perf.py tests/performance/math.xml --runs 10 --user --password --host --port --secure`。 [#86995](https://github.com/ClickHouse/ClickHouse/pull/86995) ([Raufs Dunamalijevs](https://github.com/rienath))。 -* 大量(16MiB 超)のメモリを割り当てることが分かっている一部の処理(ソート、非同期インサート、file log)で、メモリ制限に従うようにしました。 [#87035](https://github.com/ClickHouse/ClickHouse/pull/87035) ([Azat Khuzhin](https://github.com/azat)). -* `network_compression_method` にサポートされていない汎用コーデックが設定された場合に、例外をスローするようにしました。 [#87097](https://github.com/ClickHouse/ClickHouse/pull/87097) ([Robert Schulze](https://github.com/rschu1ze)). -* システムテーブル `system.query_cache` は、以前は共有エントリ、または同一ユーザーかつ同一ロールに属する非共有エントリのみを返していましたが、現在は *すべての* クエリ結果キャッシュのエントリを返すようになりました。非共有エントリは *クエリ結果* を開示しないことが前提とされており、`system.query_cache` が返すのは *クエリ文字列* だけであるため、これは問題ありません。これにより、このシステムテーブルの挙動は `system.query_log` により近いものになりました。[#87104](https://github.com/ClickHouse/ClickHouse/pull/87104)([Robert Schulze](https://github.com/rschu1ze))。 -* `parseDateTime` 関数で短絡評価を有効にしました。 [#87184](https://github.com/ClickHouse/ClickHouse/pull/87184) ([Pavel Kruglov](https://github.com/Avogar)). -* `system.parts_columns` に新しい列 `statistics` を追加しました。 [#87259](https://github.com/ClickHouse/ClickHouse/pull/87259) ([Han Fei](https://github.com/hanfei1991))。 - -#### バグ修正(公式安定版リリースでユーザーに影響する誤動作) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* レプリケートされたデータベースおよび内部的にレプリケートされたテーブルに対する `ALTER` クエリの結果は、クエリを開始したノード上でのみ検証されます。これにより、すでにコミット済みの `ALTER` クエリが他のノード上でハングしたままになる状況が解消されます。 [#83849](https://github.com/ClickHouse/ClickHouse/pull/83849) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 -* `BackgroundSchedulePool` 内で、各種タスク数に上限を設けました。これにより、ある種のタスクがすべてのスロットを占有し、他のタスクが飢餓状態になる状況を防止します。また、タスク同士が互いの完了待ちになることで発生するデッドロックも回避します。この挙動はサーバー設定 `background_schedule_pool_max_parallel_tasks_per_type_ratio` によって制御されます。 [#84008](https://github.com/ClickHouse/ClickHouse/pull/84008) ([Alexander Tokmakov](https://github.com/tavplubix))。 -* データベースレプリカの復旧時にテーブルが正しくシャットダウンされるようにしました。不適切なシャットダウンにより、データベースレプリカ復旧中に一部のテーブルエンジンで `LOGICAL_ERROR` が発生する可能性がありました。 [#84744](https://github.com/ClickHouse/ClickHouse/pull/84744) ([Antonio Andelic](https://github.com/antonio2368)). -* データベース名のタイプミス修正候補を生成する際に、アクセス権限を確認するようにしました。 [#85371](https://github.com/ClickHouse/ClickHouse/pull/85371) ([Dmitry Novik](https://github.com/novikd)). -* 1. Hive カラムに対する LowCardinality 2. 仮想カラムより前に Hive カラムを設定([https://github.com/ClickHouse/ClickHouse/pull/81040](https://github.com/ClickHouse/ClickHouse/pull/81040) に必要)3. Hive 用フォーマットが空の場合の LOGICAL_ERROR [#85528](https://github.com/ClickHouse/ClickHouse/issues/85528) 4. Hive のパーティションカラムだけが存在する場合のチェックを修正 5. すべての Hive カラムがスキーマで指定されていることをアサート 6. Hive を用いた parallel_replicas_cluster の部分的な修正 7. Hive ユーティリティの extractkeyValuePairs で順序付きコンテナを使用([https://github.com/ClickHouse/ClickHouse/pull/81040](https://github.com/ClickHouse/ClickHouse/pull/81040) に必要)。[#85538](https://github.com/ClickHouse/ClickHouse/pull/85538)([Arthur Passos](https://github.com/arthurpassos))。 -* 配列マッピング使用時にエラーを引き起こすことがあった `IN` 関数の第1引数への不要な最適化を防止しました。 [#85546](https://github.com/ClickHouse/ClickHouse/pull/85546) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* Parquet ファイルを書き込んだ際に、Iceberg の source id と Parquet ファイル名のマッピングがスキーマに合わせて調整されていませんでした。この PR では、現在のスキーマではなく、各 Iceberg データファイルに対応するスキーマを処理するようにしました。 [#85829](https://github.com/ClickHouse/ClickHouse/pull/85829) ([Daniil Ivanik](https://github.com/divanik))。 -* ファイルを開く処理とは別にファイルサイズを読み取っていた処理を修正しました。これは、`5.10` リリース以前の Linux カーネルのバグに対応して導入された変更 [https://github.com/ClickHouse/ClickHouse/pull/33372](https://github.com/ClickHouse/ClickHouse/pull/33372) に関連しています。[#85837](https://github.com/ClickHouse/ClickHouse/pull/85837)([Konstantin Bogdanov](https://github.com/thevar1able))。 -* カーネルレベルで IPv6 が無効化されているシステム(例: `ipv6.disable=1` が設定された RHEL)でも、ClickHouse Keeper が起動に失敗しなくなりました。最初の IPv6 リスナーの起動に失敗した場合は、IPv4 リスナーへのフォールバックを試みるようになりました。 [#85901](https://github.com/ClickHouse/ClickHouse/pull/85901) ([jskong1124](https://github.com/jskong1124)). -* この PR で [#77990](https://github.com/ClickHouse/ClickHouse/issues/77990) をクローズします。globalJoin において parallel replicas 用の TableFunctionRemote のサポートを追加しました。[#85929](https://github.com/ClickHouse/ClickHouse/pull/85929) ([zoomxi](https://github.com/zoomxi))。 -* orcschemareader::initializeifneeded() 内のヌルポインタ参照を修正しました。この PR では次の issue を解決しています: [#85292](https://github.com/ClickHouse/ClickHouse/issues/85292) ### ユーザー向け変更に関するドキュメントエントリ。 [#85951](https://github.com/ClickHouse/ClickHouse/pull/85951) ([yanglongwei](https://github.com/ylw510)). -* FROM 句内の相関サブクエリに対し、外側クエリの列を使用している場合にのみ許可するチェックを追加しました。[#85469](https://github.com/ClickHouse/ClickHouse/issues/85469) を修正しました。[#85402](https://github.com/ClickHouse/ClickHouse/issues/85402) を修正しました。[#85966](https://github.com/ClickHouse/ClickHouse/pull/85966)([Dmitry Novik](https://github.com/novikd))。 -* 他のカラムの `MATERIALIZED` 式でサブカラムが使用されているカラムに対する `ALTER UPDATE` の挙動を修正しました。以前は、式内でサブカラムを参照している `MATERIALIZED` カラムが正しく更新されていませんでした。 [#85985](https://github.com/ClickHouse/ClickHouse/pull/85985) ([Pavel Kruglov](https://github.com/Avogar)). -* PK またはパーティション式でサブカラムが使用されているカラムの変更を禁止しました。 [#86005](https://github.com/ClickHouse/ClickHouse/pull/86005) ([Pavel Kruglov](https://github.com/Avogar)). -* ストレージ DeltaLake において、非デフォルトのカラムマッピングモード使用時のサブカラム読み取りを修正。 [#86064](https://github.com/ClickHouse/ClickHouse/pull/86064) ([Kseniia Sumarokova](https://github.com/kssenii)). -* JSON 内で Enum ヒント付きのパスに対して誤ったデフォルト値が使用されていた問題を修正。[#86065](https://github.com/ClickHouse/ClickHouse/pull/86065)([Pavel Kruglov](https://github.com/Avogar))。 -* DataLake Hive カタログ URL の解析時に入力のサニタイズを行うようにしました。Closes [#86018](https://github.com/ClickHouse/ClickHouse/issues/86018). [#86092](https://github.com/ClickHouse/ClickHouse/pull/86092) ([rajat mohan](https://github.com/rajatmohan22)). -* ファイルシステムキャッシュの動的リサイズ中に発生する論理エラーを修正。[#86122](https://github.com/ClickHouse/ClickHouse/issues/86122) をクローズ。 [https://github.com/ClickHouse/clickhouse-core-incidents/issues/473](https://github.com/ClickHouse/clickhouse-core-incidents/issues/473) をクローズ。 [#86130](https://github.com/ClickHouse/ClickHouse/pull/86130)([Kseniia Sumarokova](https://github.com/kssenii))。 -* DatabaseReplicatedSettings で `logs_to_keep` に `NonZeroUInt64` を使用するようにしました。 [#86142](https://github.com/ClickHouse/ClickHouse/pull/86142) ([Tuan Pham Anh](https://github.com/tuanpach)). -* テーブル(例:`ReplacingMergeTree`)が設定 `index_granularity_bytes = 0` で作成されていた場合、スキップインデックスを使用した `FINAL` クエリの実行時に例外がスローされていました。この例外は現在修正されています。 [#86147](https://github.com/ClickHouse/ClickHouse/pull/86147) ([Shankar Iyer](https://github.com/shankar-iyer)). -* UB を除去し、Iceberg のパーティション式のパース処理における問題を修正します。 [#86166](https://github.com/ClickHouse/ClickHouse/pull/86166) ([Daniil Ivanik](https://github.com/divanik))。 -* 1 つの INSERT 内に const ブロックと non-const ブロックが混在している場合にクラッシュする問題を修正。 [#86230](https://github.com/ClickHouse/ClickHouse/pull/86230) ([Azat Khuzhin](https://github.com/azat)). -* SQL でディスクを作成する際には、デフォルトで `/etc/metrika.xml` 内の `include` を処理するようになりました。 [#86232](https://github.com/ClickHouse/ClickHouse/pull/86232) ([alekar](https://github.com/alekar)). -* String から JSON への accurateCastOrNull/accurateCastOrDefault の動作を修正。 [#86240](https://github.com/ClickHouse/ClickHouse/pull/86240) ([Pavel Kruglov](https://github.com/Avogar)). -* iceberg エンジンで「/」を含まないディレクトリをサポートするようにしました。 [#86249](https://github.com/ClickHouse/ClickHouse/pull/86249) ([scanhex12](https://github.com/scanhex12)). -* `replaceRegex` が `FixedString` 型の haystack と空の needle を処理する際にクラッシュする問題を修正しました。 [#86270](https://github.com/ClickHouse/ClickHouse/pull/86270) ([Raúl Marín](https://github.com/Algunenano)). -* ALTER UPDATE Nullable(JSON) 実行時に発生するクラッシュを修正。 [#86281](https://github.com/ClickHouse/ClickHouse/pull/86281) ([Pavel Kruglov](https://github.com/Avogar)). -* system.tables で不足していたカラム定義子を修正。 [#86295](https://github.com/ClickHouse/ClickHouse/pull/86295) ([Raúl Marín](https://github.com/Algunenano)). -* LowCardinality(Nullable(T)) から Dynamic へのキャストを修正しました。 [#86365](https://github.com/ClickHouse/ClickHouse/pull/86365) ([Pavel Kruglov](https://github.com/Avogar))。 -* DeltaLake への書き込み時に発生する論理エラーを修正。[#86175](https://github.com/ClickHouse/ClickHouse/issues/86175) をクローズ。[#86367](https://github.com/ClickHouse/ClickHouse/pull/86367)([Kseniia Sumarokova](https://github.com/kssenii))。 -* plain_rewritable disk を使用して Azure Blob Storage から空の blob を読み取る際に発生する `416 The range specified is invalid for the current size of the resource. The range specified is invalid for the current size of the resource` エラーを修正。 [#86400](https://github.com/ClickHouse/ClickHouse/pull/86400) ([Julia Kartseva](https://github.com/jkartseva)). -* GROUP BY Nullable(JSON) の不具合を修正。 [#86410](https://github.com/ClickHouse/ClickHouse/pull/86410) ([Pavel Kruglov](https://github.com/Avogar)). -* マテリアライズドビューのバグを修正しました。同じ名前で作成されたマテリアライズドビューを削除してから再作成すると、正しく動作しない場合がありました。 [#86413](https://github.com/ClickHouse/ClickHouse/pull/86413) ([Alexander Tokmakov](https://github.com/tavplubix)). -* *cluster 関数から読み込む際に、すべてのレプリカが使用不能な場合は失敗するようにしました。 [#86414](https://github.com/ClickHouse/ClickHouse/pull/86414) ([Julian Maicher](https://github.com/jmaicher)). -* `Buffer` テーブルに起因する `MergesMutationsMemoryTracking` のリークを修正し、`Kafka` などからのストリーミング向けの `query_views_log` を修正。 [#86422](https://github.com/ClickHouse/ClickHouse/pull/86422) ([Azat Khuzhin](https://github.com/azat)). -* エイリアスストレージの参照テーブルを削除した後の `SHOW TABLES` の動作を修正しました。 [#86433](https://github.com/ClickHouse/ClickHouse/pull/86433) ([RinChanNOW](https://github.com/RinChanNOWWW))。 -* `send_chunk_header` が有効になっていて、UDF が HTTP プロトコル経由で呼び出された場合にチャンクヘッダーが欠落する問題を修正しました。 [#86469](https://github.com/ClickHouse/ClickHouse/pull/86469) ([Vladimir Cherkasov](https://github.com/vdimir)). -* jemalloc のプロファイルフラッシュが有効になっている場合に発生しうるデッドロックを修正しました。 [#86473](https://github.com/ClickHouse/ClickHouse/pull/86473) ([Azat Khuzhin](https://github.com/azat)). -* DeltaLake テーブルエンジンでのサブカラム読み取りを修正。[#86204](https://github.com/ClickHouse/ClickHouse/issues/86204) をクローズ。[#86477](https://github.com/ClickHouse/ClickHouse/pull/86477)([Kseniia Sumarokova](https://github.com/kssenii))。 -* DDL タスク処理時の衝突を回避するため、ループバックホスト ID を適切に扱うようにしました。 [#86479](https://github.com/ClickHouse/ClickHouse/pull/86479) ([Tuan Pham Anh](https://github.com/tuanpach)). -* numeric/decimal 型の列を持つ PostgreSQL database engine テーブルに対する DETACH/ATTACH 操作を修正。 [#86480](https://github.com/ClickHouse/ClickHouse/pull/86480) ([Julian Maicher](https://github.com/jmaicher)). -* getSubcolumnType における未初期化メモリの使用を修正しました。 [#86498](https://github.com/ClickHouse/ClickHouse/pull/86498) ([Raúl Marín](https://github.com/Algunenano)). -* 空の needle で呼び出されたとき、関数 `searchAny` および `searchAll` は、現在では `true`(いわゆる「すべてにマッチする」)を返すようになりました。以前は `false` を返していました。(issue [#86300](https://github.com/ClickHouse/ClickHouse/issues/86300))。[#86500](https://github.com/ClickHouse/ClickHouse/pull/86500)([Elmi Ahmadov](https://github.com/ahmadov))。 -* 最初のバケットに値が存在しない場合の `timeSeriesResampleToGridWithStaleness()` 関数の動作を修正しました。 [#86507](https://github.com/ClickHouse/ClickHouse/pull/86507) ([Vitaly Baranov](https://github.com/vitlibar)). -* `merge_tree_min_read_task_size` が 0 に設定されていたことが原因で発生するクラッシュを修正。[#86527](https://github.com/ClickHouse/ClickHouse/pull/86527) ([yanglongwei](https://github.com/ylw510)). -* 読み取り時に各データファイルのフォーマットを Iceberg のメタデータから取得するようにしました(以前はテーブル引数から取得していました)。 [#86529](https://github.com/ClickHouse/ClickHouse/pull/86529) ([Daniil Ivanik](https://github.com/divanik))。 -* シャットダウン時のログフラッシュ中に発生する例外を無視し、シャットダウンをより安全にしました(SIGSEGV を回避するため)。 [#86546](https://github.com/ClickHouse/ClickHouse/pull/86546) ([Azat Khuzhin](https://github.com/azat)). -* ゼロサイズのパートファイルを含むクエリで Backup データベースエンジンが例外を投げてしまう問題を修正。 [#86563](https://github.com/ClickHouse/ClickHouse/pull/86563) ([Max Justus Spransy](https://github.com/maxjustus)). -* send_chunk_header が有効な状態で、UDF が HTTP プロトコル経由で呼び出された場合にチャンクヘッダーが欠落する問題を修正しました。 [#86606](https://github.com/ClickHouse/ClickHouse/pull/86606) ([Vladimir Cherkasov](https://github.com/vdimir)). -* keeper のセッション有効期限切れが原因で発生していた、S3Queue の論理エラー「Expected current processor {} to be equal to {}」を修正しました。 [#86615](https://github.com/ClickHouse/ClickHouse/pull/86615) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* INSERT および pruning における Nullability のバグを修正しました。これにより [#86407](https://github.com/ClickHouse/ClickHouse/issues/86407) がクローズされました。 [#86630](https://github.com/ClickHouse/ClickHouse/pull/86630) ([scanhex12](https://github.com/scanhex12)). -* Iceberg メタデータキャッシュが無効化されている場合でも、ファイルシステムキャッシュは無効化されないようにしました。 [#86635](https://github.com/ClickHouse/ClickHouse/pull/86635) ([Daniil Ivanik](https://github.com/divanik)). -* parquet reader v3 における「Deadlock in Parquet::ReadManager (single-threaded)」エラーを修正しました。[#86644](https://github.com/ClickHouse/ClickHouse/pull/86644) ([Michael Kolupaev](https://github.com/al13n321))。 -* ArrowFlight の `listen_host` における IPv6 対応を修正。 [#86664](https://github.com/ClickHouse/ClickHouse/pull/86664) ([Vitaly Baranov](https://github.com/vitlibar)). -* `ArrowFlight` ハンドラーのシャットダウン時の処理を修正しました。この PR は [#86596](https://github.com/ClickHouse/ClickHouse/issues/86596) を修正します。[#86665](https://github.com/ClickHouse/ClickHouse/pull/86665)([Vitaly Baranov](https://github.com/vitlibar))。 -* `describe_compact_output=1` 使用時の分散クエリを修正。 [#86676](https://github.com/ClickHouse/ClickHouse/pull/86676) ([Azat Khuzhin](https://github.com/azat)). -* ウィンドウ定義の解析とクエリパラメータの適用を修正。 [#86720](https://github.com/ClickHouse/ClickHouse/pull/86720) ([Azat Khuzhin](https://github.com/azat)). -* `PARTITION BY` を指定してパーティションのワイルドカードなしでテーブルを作成する際に、例外 `Partition strategy wildcard can not be used without a '_partition_id' wildcard.` が発生する問題を修正しました。この操作は 25.8 より前のバージョンでは正常に動作していました。この修正により、[https://github.com/ClickHouse/clickhouse-private/issues/37567](https://github.com/ClickHouse/clickhouse-private/issues/37567) をクローズしました。 [#86748](https://github.com/ClickHouse/ClickHouse/pull/86748) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* 並列クエリが単一ロックを取得しようとした場合に発生する LogicalError を修正。 [#86751](https://github.com/ClickHouse/ClickHouse/pull/86751) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* RowBinary 入力フォーマットにおいて JSON 共有データに NULL が書き込まれる問題を修正し、ColumnObject に追加のバリデーションをいくつか導入。 [#86812](https://github.com/ClickHouse/ClickHouse/pull/86812) ([Pavel Kruglov](https://github.com/Avogar)). -* LIMIT 使用時の空の Tuple の順列処理を修正。 [#86828](https://github.com/ClickHouse/ClickHouse/pull/86828) ([Pavel Kruglov](https://github.com/Avogar))。 -* 永続処理ノードに対しては、個別の Keeper ノードを使用しないようにしました。[https://github.com/ClickHouse/ClickHouse/pull/85995](https://github.com/ClickHouse/ClickHouse/pull/85995) に対する修正です。[#86406](https://github.com/ClickHouse/ClickHouse/issues/86406) をクローズします。 [#86841](https://github.com/ClickHouse/ClickHouse/pull/86841) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* TimeSeries エンジンのテーブルが Replicated Database で新しいレプリカを作成できなくなる問題を修正しました。 [#86845](https://github.com/ClickHouse/ClickHouse/pull/86845) ([Nikolay Degterinsky](https://github.com/evillique)). -* タスクに特定の Keeper ノードが含まれていない場合に `system.distributed_ddl_queue` をクエリできない問題を修正しました。 [#86848](https://github.com/ClickHouse/ClickHouse/pull/86848) ([Antonio Andelic](https://github.com/antonio2368)). -* 解凍済みブロック末尾でのシーク処理を修正。 [#86906](https://github.com/ClickHouse/ClickHouse/pull/86906) ([Pavel Kruglov](https://github.com/Avogar)). -* Iceberg Iterator の非同期実行中に発生する例外の処理。 [#86932](https://github.com/ClickHouse/ClickHouse/pull/86932) ([Daniil Ivanik](https://github.com/divanik)). -* 大きな事前処理済み XML 設定ファイルの保存処理を修正。 [#86934](https://github.com/ClickHouse/ClickHouse/pull/86934) ([c-end](https://github.com/c-end)). -* system.iceberg_metadata_log テーブルにおける date フィールドの値設定を修正。 [#86961](https://github.com/ClickHouse/ClickHouse/pull/86961) ([Daniil Ivanik](https://github.com/divanik)). -* `WHERE` を伴う `TTL` が無限に再計算される問題を修正しました。 [#86965](https://github.com/ClickHouse/ClickHouse/pull/86965) ([Anton Popov](https://github.com/CurtizJ)). -* `ROLLUP` および `CUBE` 修飾子を使用した場合に `uniqExact` 関数が誤った結果となる可能性があった問題を修正しました。 [#87014](https://github.com/ClickHouse/ClickHouse/pull/87014) ([Nikita Taranov](https://github.com/nickitat))。 -* `parallel_replicas_for_cluster_functions` 設定が 1 に設定されている場合に、`url()` テーブル関数でテーブルスキーマを解決できない問題を修正。 [#87029](https://github.com/ClickHouse/ClickHouse/pull/87029) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* PREWHERE を複数のステップに分割した際に、その出力が正しくキャストされるようにしました。 [#87040](https://github.com/ClickHouse/ClickHouse/pull/87040) ([Antonio Andelic](https://github.com/antonio2368)). -* `ON CLUSTER` 句を使用する軽量更新の不具合を修正しました。 [#87043](https://github.com/ClickHouse/ClickHouse/pull/87043) ([Anton Popov](https://github.com/CurtizJ)). -* 一部の集約関数の状態における String 引数との互換性を修正しました。 [#87049](https://github.com/ClickHouse/ClickHouse/pull/87049) ([Pavel Kruglov](https://github.com/Avogar)). -* OpenAI からのモデル名が渡されていなかった問題を修正しました。 [#87100](https://github.com/ClickHouse/ClickHouse/pull/87100) ([Kaushik Iska](https://github.com/iskakaushik)). -* EmbeddedRocksDB: パスは user_files ディレクトリ配下である必要があります。 [#87109](https://github.com/ClickHouse/ClickHouse/pull/87109) ([Raúl Marín](https://github.com/Algunenano)). -* 25.1 より前に作成された KeeperMap テーブルで、DROP クエリ実行後も ZooKeeper にデータが残る問題を修正しました。 [#87112](https://github.com/ClickHouse/ClickHouse/pull/87112) ([Nikolay Degterinsky](https://github.com/evillique)). -* Parquet 読み込み時の map および array フィールド ID の処理を修正しました。[#87136](https://github.com/ClickHouse/ClickHouse/pull/87136) ([scanhex12](https://github.com/scanhex12)). -* 遅延マテリアライゼーションにおける配列サイズ用サブカラムを持つ配列の読み取りを修正。 [#87139](https://github.com/ClickHouse/ClickHouse/pull/87139) ([Pavel Kruglov](https://github.com/Avogar)). -* Dynamic 型の引数を取る CASE 関数を修正。 [#87177](https://github.com/ClickHouse/ClickHouse/pull/87177) ([Pavel Kruglov](https://github.com/Avogar))。 -* CSV における空文字列からの空配列の読み取りを修正。[#87182](https://github.com/ClickHouse/ClickHouse/pull/87182)([Pavel Kruglov](https://github.com/Avogar))。 -* 相関付けられていない `EXISTS` で誤った結果が返される可能性のある問題を修正しました。これは、[https://github.com/ClickHouse/ClickHouse/pull/85481](https://github.com/ClickHouse/ClickHouse/pull/85481) で導入された `execute_exists_as_scalar_subquery=1` によって発生したもので、`25.8` に影響します。[#86415](https://github.com/ClickHouse/ClickHouse/issues/86415) を修正します。[#87207](https://github.com/ClickHouse/ClickHouse/pull/87207)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* `iceberg_metadata_log` が未設定の状態でユーザーが Iceberg メタデータのデバッグ情報を取得しようとした場合にエラーを送出し、ヌルポインタアクセスを修正します。 [#87250](https://github.com/ClickHouse/ClickHouse/pull/87250) ([Daniil Ivanik](https://github.com/divanik)). - -#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement} - -* abseil-cpp 20250814.0 との互換性問題を修正しました。https://github.com/abseil/abseil-cpp/issues/1923。 [#85970](https://github.com/ClickHouse/ClickHouse/pull/85970) ([Yuriy Chernyshov](https://github.com/georgthegreat)). -* スタンドアロン WASM lexer のビルドをフラグで制御するようにしました。 [#86505](https://github.com/ClickHouse/ClickHouse/pull/86505) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* `vmull_p64` 命令をサポートしない古い ARM CPU 上での crc32c のビルドを修正しました。 [#86521](https://github.com/ClickHouse/ClickHouse/pull/86521) ([Pablo Marcos](https://github.com/pamarcos)). -* `openldap` 2.6.10 を使用するようにしました。 [#86623](https://github.com/ClickHouse/ClickHouse/pull/86623) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* darwin で `memalign` をフックしようとしないようにしました。 [#86769](https://github.com/ClickHouse/ClickHouse/pull/86769) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* `krb5` 1.22.1-final を使用するようにしました。 [#86836](https://github.com/ClickHouse/ClickHouse/pull/86836) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* `list-licenses.sh` における Rust クレート名の展開処理を修正しました。 [#87305](https://github.com/ClickHouse/ClickHouse/pull/87305) ([Konstantin Bogdanov](https://github.com/thevar1able)). - -### ClickHouse 25.8 LTS リリース(2025-08-28) {#258} - -#### 後方互換性のない変更 {#backward-incompatible-change} - -* JSON 内で異なる型を持つ値の配列に対して、名前なし `Tuple` の代わりに `Array(Dynamic)` を推論するようにしました。以前の動作を利用するには、設定 `input_format_json_infer_array_of_dynamic_from_array_of_different_types` を無効にしてください。 [#80859](https://github.com/ClickHouse/ClickHouse/pull/80859) ([Pavel Kruglov](https://github.com/Avogar)). -* 一貫性とシンプルさのために、S3 レイテンシメトリクスをヒストグラムメトリクスへ移行しました。 [#82305](https://github.com/ClickHouse/ClickHouse/pull/82305) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* デフォルト式中のドットを含む識別子について、それらが複合識別子としてパースされるのを防ぐために、バッククォートで囲むことを必須にしました。 [#83162](https://github.com/ClickHouse/ClickHouse/pull/83162) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* Lazy materialization はアナライザ有効時(デフォルト)にのみ有効になります。これは、アナライザなしの構成を保守対象としないようにするためです。弊社の経験上、アナライザなしの運用にはいくつか問題があるためです(たとえば条件内で `indexHint()` を使用する場合など)。 [#83791](https://github.com/ClickHouse/ClickHouse/pull/83791) ([Igor Nikonov](https://github.com/devcrafter)). -* Parquet 出力フォーマットにおいて、デフォルトで `Enum` 型の値を、`ENUM` 論理型を持つ `BYTE_ARRAY` として書き出すようにしました。 [#84169](https://github.com/ClickHouse/ClickHouse/pull/84169) ([Pavel Kruglov](https://github.com/Avogar)). -* MergeTree 設定 `write_marks_for_substreams_in_compact_parts` をデフォルトで有効化しました。これにより、新しく作成された Compact パートからサブカラムを読み取る際の性能が大きく向上します。バージョン 25.5 未満のサーバーは新しい Compact パートを読み取ることができません。 [#84171](https://github.com/ClickHouse/ClickHouse/pull/84171) ([Pavel Kruglov](https://github.com/Avogar)). -* 以前の `concurrent_threads_scheduler` のデフォルト値は `round_robin` でしたが、多数の単一スレッドのクエリ(例: INSERT)が存在する場合には不公平であることが分かりました。この変更により、より安全な代替である `fair_round_robin` スケジューラがデフォルトになります。 [#84747](https://github.com/ClickHouse/ClickHouse/pull/84747) ([Sergei Trifonov](https://github.com/serxa)). -* ClickHouse は PostgreSQL スタイルのヒアドキュメント構文 `$tag$ string contents... $tag$`(ドル引用符付き文字列リテラルとしても知られる)をサポートしています。以前のバージョンではタグに対する制約が少なく、句読点や空白を含む任意の文字を使用できました。これは、先頭をドル記号から始めることができる識別子との間に構文解析上の曖昧さを生じさせます。一方で、PostgreSQL ではタグには単語文字のみが許可されています。この問題を解決するために、ヒアドキュメントのタグに含められる文字を単語文字のみに制限しました。これにより [#84731](https://github.com/ClickHouse/ClickHouse/issues/84731) がクローズされます。 [#84846](https://github.com/ClickHouse/ClickHouse/pull/84846) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 関数 `azureBlobStorage`、`deltaLakeAzure`、`icebergAzure` は、`AZURE` 権限を正しく検証するように更新されました。すべてのクラスタ版の関数(`-Cluster` 関数)は、対応する非クラスタ版の関数に対して権限を検証するようになりました。加えて、`icebergLocal` および `deltaLakeLocal` 関数は `FILE` 権限チェックを必須とするようになりました。 [#84938](https://github.com/ClickHouse/ClickHouse/pull/84938) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* `allow_dynamic_metadata_for_data_lakes` 設定(Table Engine レベルの設定)をデフォルトで有効化しました。 [#85044](https://github.com/ClickHouse/ClickHouse/pull/85044) ([Daniil Ivanik](https://github.com/divanik)). -* JSON フォーマットにおいて、64 ビット整数をデフォルトでクオートしないようにしました。 [#74079](https://github.com/ClickHouse/ClickHouse/pull/74079) ([Pavel Kruglov](https://github.com/Avogar)) - -#### 新機能 {#new-feature} - -* PromQL 方言の基本的なサポートが追加されました。これを使用するには、clickhouse-client で `dialect='promql'` を設定し、設定 `promql_table_name='X'` を用いて TimeSeries テーブルを参照するようにし、`rate(ClickHouseProfileEvents_ReadCompressedBytes[1m])[5m:1m]` のようなクエリを実行します。さらに、PromQL クエリを SQL でラップすることもできます: `SELECT * FROM prometheusQuery('up', ...);`。現時点では `rate`、`delta`、`increase` 関数のみがサポートされています。単項/二項演算子は未対応です。HTTP API もサポートされていません。[#75036](https://github.com/ClickHouse/ClickHouse/pull/75036)([Vitaly Baranov](https://github.com/vitlibar))。 -* AI による SQL 自動生成機能は、利用可能な場合には環境変数 `ANTHROPIC_API_KEY` と `OPENAI_API_KEY` を自動検出できるようになりました。これにより、この機能を設定不要(ゼロコンフィグ)で利用できるようになります。 [#83787](https://github.com/ClickHouse/ClickHouse/pull/83787) ([Kaushik Iska](https://github.com/iskakaushik)). -* [ArrowFlight RPC](https://arrow.apache.org/docs/format/Flight.html) プロトコルのサポートを、次を追加することで実装しました: - 新しいテーブル関数 `arrowflight`。 [#74184](https://github.com/ClickHouse/ClickHouse/pull/74184) ([zakr600](https://github.com/zakr600)). -* これにより、すべてのテーブルが `_table` 仮想カラムをサポートするようになりました(`Merge` エンジンを使用するテーブルだけでなく)、特に UNION ALL を使用するクエリで有用です。 [#63665](https://github.com/ClickHouse/ClickHouse/pull/63665) ([Xiaozhe Yu](https://github.com/wudidapaopao))。 -* 外部集約/ソートに対して任意のストレージポリシー(S3 などのオブジェクトストレージを含む)を利用できるようにしました。 [#84734](https://github.com/ClickHouse/ClickHouse/pull/84734) ([Azat Khuzhin](https://github.com/azat)). -* 明示的に指定した IAM ロールを用いた AWS S3 認証を実装しました。GCS 向けに OAuth を実装しました。これらの機能は最近まで ClickHouse Cloud でのみ利用可能でしたが、今回オープンソース化されました。オブジェクトストレージの接続パラメータのシリアル化など、一部のインターフェイスを統一しました。[#84011](https://github.com/ClickHouse/ClickHouse/pull/84011) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Iceberg TableEngine で position delete をサポートしました。 [#83094](https://github.com/ClickHouse/ClickHouse/pull/83094) ([Daniil Ivanik](https://github.com/divanik)). -* Iceberg の Equality Delete をサポート。 [#85843](https://github.com/ClickHouse/ClickHouse/pull/85843) ([Han Fei](https://github.com/hanfei1991)). -* CREATE 時の Iceberg への書き込みをサポート。[#83927](https://github.com/ClickHouse/ClickHouse/issues/83927) をクローズ。[#83983](https://github.com/ClickHouse/ClickHouse/pull/83983) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* 書き込みに対応した Glue カタログ。[#84136](https://github.com/ClickHouse/ClickHouse/pull/84136) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* 書き込み用 Iceberg REST カタログ。 [#84684](https://github.com/ClickHouse/ClickHouse/pull/84684) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* すべての Iceberg の position delete ファイルをデータファイルにマージします。これにより、Iceberg ストレージ内の Parquet ファイルの数とサイズを削減できます。構文:`OPTIMIZE TABLE table_name`。 [#85250](https://github.com/ClickHouse/ClickHouse/pull/85250) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* Iceberg 向けの `DROP TABLE` をサポート(REST/Glue カタログからのテーブル削除およびテーブルメタデータの削除)。 [#85395](https://github.com/ClickHouse/ClickHouse/pull/85395) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* merge-on-read 形式の Iceberg テーブルにおいて ALTER DELETE ミューテーションをサポートしました。 [#85549](https://github.com/ClickHouse/ClickHouse/pull/85549) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* DeltaLake への書き込みのサポートを追加。 [#79603](https://github.com/ClickHouse/ClickHouse/issues/79603) をクローズ。 [#85564](https://github.com/ClickHouse/ClickHouse/pull/85564) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* テーブルエンジン `DeltaLake` で特定のスナップショットバージョンを読み取れるようにするための設定 `delta_lake_snapshot_version` を追加しました。 [#85295](https://github.com/ClickHouse/ClickHouse/pull/85295) ([Kseniia Sumarokova](https://github.com/kssenii)). -* min-max プルーニングのために、メタデータ(マニフェストエントリ)に Iceberg の統計情報(カラムサイズ、下限値および上限値)をより多く書き込むようにしました。 [#85746](https://github.com/ClickHouse/ClickHouse/pull/85746) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* 単純な型のカラムに対する Iceberg テーブルでの追加/削除/変更をサポートしました。 [#85769](https://github.com/ClickHouse/ClickHouse/pull/85769) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* Iceberg:version-hint ファイルへの書き込みをサポートしました。これにより [#85097](https://github.com/ClickHouse/ClickHouse/issues/85097) が解決しました。[#85130](https://github.com/ClickHouse/ClickHouse/pull/85130)([Konstantin Vedernikov](https://github.com/scanhex12))。 -* 一時ユーザーによって作成されたビューは、実際のユーザー情報のコピーを保持するようになり、一時ユーザーが削除された後でも無効化されなくなりました。 [#84763](https://github.com/ClickHouse/ClickHouse/pull/84763)([pufit](https://github.com/pufit))。 -* ベクトル類似性インデックスがバイナリ量子化をサポートするようになりました。バイナリ量子化によりメモリ使用量が大幅に削減され、距離計算が高速になることでベクトルインデックスの構築も高速化されます。また、既存の設定 `vector_search_postfilter_multiplier` は非推奨となり、より汎用的な設定である `vector_search_index_fetch_multiplier` に置き換えられました。[#85024](https://github.com/ClickHouse/ClickHouse/pull/85024)([Shankar Iyer](https://github.com/shankar-iyer))。 -* `s3` および `s3Cluster` テーブルエンジン/テーブル関数でキー・バリュー形式の引数指定が可能になりました。例えば、`s3('url', CSV, structure = 'a Int32', compression_method = 'gzip')` のように指定できます。[#85134](https://github.com/ClickHouse/ClickHouse/pull/85134)([Kseniia Sumarokova](https://github.com/kssenii))。 -* Kafka などのエンジンからの不正な受信メッセージを保持するための新しいシステムテーブル(いわゆる「dead letter queue」)。 [#68873](https://github.com/ClickHouse/ClickHouse/pull/68873) ([Ilya Golshtein](https://github.com/ilejn))。 -* Replicated データベース向けに、ReplicatedMergeTree の既存のリストア機能と同様の新しい `SYSTEM RESTORE DATABASE REPLICA` ステートメントが追加されました。 [#73100](https://github.com/ClickHouse/ClickHouse/pull/73100) ([Konstantin Morozov](https://github.com/k-morozov)). -* PostgreSQL プロトコルが `COPY` コマンドをサポートするようになりました。 [#74344](https://github.com/ClickHouse/ClickHouse/pull/74344) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* MySQL プロトコル向け C# クライアントのサポートを追加しました。これにより [#83992](https://github.com/ClickHouse/ClickHouse/issues/83992) が解決されました。[#84397](https://github.com/ClickHouse/ClickHouse/pull/84397)([Konstantin Vedernikov](https://github.com/scanhex12))。 -* Hive パーティション形式での読み取りと書き込みのサポートを追加。 [#76802](https://github.com/ClickHouse/ClickHouse/pull/76802) ([Arthur Passos](https://github.com/arthurpassos)). -* `zookeeper_connection_log` システムテーブルを追加し、ZooKeeper への接続に関する履歴情報を保存できるようにしました。 [#79494](https://github.com/ClickHouse/ClickHouse/pull/79494) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 -* サーバー設定 `cpu_slot_preemption` は、ワークロードに対するプリエンプティブな CPU スケジューリングを有効にし、ワークロード間での CPU 時間の max-min 公平な割り当てを保証します。CPU スロットリング用の新しいワークロード設定が追加されました:`max_cpus`、`max_cpu_share`、`max_burst_cpu_seconds`。詳細: [https://clickhouse.com/docs/operations/workload-scheduling#cpu_scheduling](https://clickhouse.com/docs/operations/workload-scheduling#cpu_scheduling)。 [#80879](https://github.com/ClickHouse/ClickHouse/pull/80879) ([Sergei Trifonov](https://github.com/serxa))。 -* 設定されたクエリ数または時間のしきい値に達した後に TCP 接続を切断します。これにより、ロードバランサー配下のクラスタノード間で接続の分布をより均一にできます。[#68000](https://github.com/ClickHouse/ClickHouse/issues/68000) を解決します。 [#81472](https://github.com/ClickHouse/ClickHouse/pull/81472)([Kenny Sun](https://github.com/hwabis))。 -* パラレルレプリカでクエリにプロジェクションを使用できるようになりました。 [#82659](https://github.com/ClickHouse/ClickHouse/issues/82659)。 [#82807](https://github.com/ClickHouse/ClickHouse/pull/82807) ([zoomxi](https://github.com/zoomxi)). -* DESCRIBE (SELECT ...) に加えて DESCRIBE SELECT もサポートしました。[#82947](https://github.com/ClickHouse/ClickHouse/pull/82947) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* mysql_port および postgresql_port でセキュア接続を必須とするようにしました。 [#82962](https://github.com/ClickHouse/ClickHouse/pull/82962) ([tiandiwonder](https://github.com/tiandiwonder)). -* `JSONExtractCaseInsensitive`(および `JSONExtract` のその他のバリアント)を使用して、大文字小文字を区別しない JSON キー検索を行えるようになりました。 [#83770](https://github.com/ClickHouse/ClickHouse/pull/83770) ([Alistair Evans](https://github.com/alistairjevans)). -* `system.completions` テーブルを導入し、[#81889](https://github.com/ClickHouse/ClickHouse/issues/81889) をクローズ。[#83833](https://github.com/ClickHouse/ClickHouse/pull/83833)([|2ustam](https://github.com/RuS2m))。 -* 新しい関数 `nowInBlock64` を追加しました。使用例:`SELECT nowInBlock64(6)` は `2025-07-29 17:09:37.775725` を返します。 [#84178](https://github.com/ClickHouse/ClickHouse/pull/84178) ([Halersson Paris](https://github.com/halersson))。 -* AzureBlobStorage において client_id と tenant_id を用いた認証を行うための extra_credentials を追加しました。 [#84235](https://github.com/ClickHouse/ClickHouse/pull/84235) ([Pablo Marcos](https://github.com/pamarcos)). -* `DateTime` の値を UUIDv7 に変換する関数 `dateTimeToUUIDv7` を追加しました。使用例:`SELECT dateTimeToUUIDv7(toDateTime('2025-08-15 18:57:56'))` は `0198af18-8320-7a7d-abd3-358db23b9d5c` を返します。 [#84319](https://github.com/ClickHouse/ClickHouse/pull/84319) ([samradovich](https://github.com/samradovich)). -* `timeSeriesDerivToGrid` および `timeSeriesPredictLinearToGrid` 集約関数は、指定された開始タイムスタンプ、終了タイムスタンプ、およびステップで定義される時間グリッドにデータを再サンプリングし、それぞれ PromQL ライクな `deriv` と `predict_linear` を計算します。 [#84328](https://github.com/ClickHouse/ClickHouse/pull/84328) ([Stephen Chi](https://github.com/stephchi0)). -* 2 つの新しい TimeSeries 関数を追加しました: - `timeSeriesRange(start_timestamp, end_timestamp, step)`、- `timeSeriesFromGrid(start_timestamp, end_timestamp, step, values)`。[#85435](https://github.com/ClickHouse/ClickHouse/pull/85435)([Vitaly Baranov](https://github.com/vitlibar))。 -* 新しい構文 `GRANT READ ON S3('s3://foo/.*') TO user` が追加されました。 [#84503](https://github.com/ClickHouse/ClickHouse/pull/84503) ([pufit](https://github.com/pufit)). -* 新しい出力フォーマットとして `Hash` を追加しました。結果のすべての列および行に対して単一のハッシュ値を計算します。これは、たとえばデータ転送がボトルネックとなるユースケースで、結果の「フィンガープリント」を計算するのに有用です。例: `SELECT arrayJoin(['abc', 'def']), 42 FORMAT Hash` は `e5f9e676db098fdb9530d2059d8c23ef` を返します。 [#84607](https://github.com/ClickHouse/ClickHouse/pull/84607) ([Robert Schulze](https://github.com/rschu1ze)). -* Keeper Multi クエリで任意のウォッチを設定できる機能を追加しました。 [#84964](https://github.com/ClickHouse/ClickHouse/pull/84964) ([Mikhail Artemenko](https://github.com/Michicosun)). -* `clickhouse-benchmark` ツールにオプション `--max-concurrency` を追加し、並列クエリ数を段階的に増加させるモードを有効にします。 [#85623](https://github.com/ClickHouse/ClickHouse/pull/85623) ([Sergei Trifonov](https://github.com/serxa)). -* 部分集約メトリクスのサポートを追加しました。 [#85328](https://github.com/ClickHouse/ClickHouse/pull/85328) ([Mikhail Artemenko](https://github.com/Michicosun)). - -#### 実験的機能 {#experimental-feature} - -* 相関付きサブクエリのサポートをデフォルトで有効化しました。もはや実験的機能ではありません。 [#85107](https://github.com/ClickHouse/ClickHouse/pull/85107) ([Dmitry Novik](https://github.com/novikd)). -* Unity、Glue、REST、Hive Metastore のデータレイクカタログを実験的段階からベータ版へ昇格しました。 [#85848](https://github.com/ClickHouse/ClickHouse/pull/85848) ([Melvyn Peignon](https://github.com/melvynator)). -* 軽量な更新および削除機能を実験的段階からベータ版へ昇格しました。 -* ベクトル類似度インデックスを用いた近似ベクトル検索が GA になりました。 [#85888](https://github.com/ClickHouse/ClickHouse/pull/85888) ([Robert Schulze](https://github.com/rschu1ze)). -* Ytsaurus テーブルエンジンおよびテーブル関数を追加しました。 [#77606](https://github.com/ClickHouse/ClickHouse/pull/77606) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). -* 以前は、テキストインデックスのデータは複数のセグメントに分割されていました(各セグメントサイズはデフォルトで 256 MiB でした)。これはテキストインデックス構築時のメモリ使用量を削減できる場合がありますが、その一方でディスク上の必要容量を増加させ、クエリ応答時間も長くします。 [#84590](https://github.com/ClickHouse/ClickHouse/pull/84590) ([Elmi Ahmadov](https://github.com/ahmadov)). - -#### パフォーマンスの向上 {#performance-improvement} - -* 新しい Parquet リーダーの実装です。従来より高速で、ページレベルのフィルタープッシュダウンおよび PREWHERE をサポートします。現在は実験的機能です。有効化するには設定 `input_format_parquet_use_native_reader_v3` を使用します。[#82789](https://github.com/ClickHouse/ClickHouse/pull/82789)([Michael Kolupaev](https://github.com/al13n321))。 -* Azure Blob Storage 向けの公式 Azure ライブラリにおける HTTP トランスポートを、独自実装の HTTP クライアントに置き換えました。S3 の設定を反映した複数の設定項目を、このクライアントに導入しました。Azure と S3 の両方に対して、かなり短めの接続タイムアウトを導入しました。Azure プロファイルのイベントおよびメトリクスに対する可観測性も改善しました。新しいクライアントはデフォルトで有効化されており、Azure Blob Storage 上のコールドクエリに対してレイテンシを大幅に改善します。従来の `Curl` クライアントは、`azure_sdk_use_native_client=false` を設定することで戻すことができます。 [#83294](https://github.com/ClickHouse/ClickHouse/pull/83294) ([alesapin](https://github.com/alesapin))。従来の公式 Azure クライアント実装は、本番環境での利用には適さず、レイテンシが 5 秒から数分にまで及ぶ深刻なスパイクが発生していました。その問題の大きかった実装を廃止できたことを、私たちは非常に誇りに思っています。 -* インデックスをファイルサイズの小さい順に処理します。全体としてのインデックスの処理順序では、まず(それぞれ単純さと選択性に優れるため)minmax インデックスとベクターインデックスを優先し、その後はその他のインデックスを小さいものから処理します。minmax/ベクターインデックスの間でも、より小さいインデックスが優先されます。[#84094](https://github.com/ClickHouse/ClickHouse/pull/84094) ([Maruth Goyal](https://github.com/maruthgoyal))。 -* MergeTree の設定 `write_marks_for_substreams_in_compact_parts` をデフォルトで有効化しました。これにより、新しく作成された Compact パーツからサブカラムを読み取る際のパフォーマンスが大幅に向上します。バージョン 25.5 未満のサーバーは、新しい Compact パーツを読み取ることができません。[#84171](https://github.com/ClickHouse/ClickHouse/pull/84171)([Pavel Kruglov](https://github.com/Avogar))。 -* `azureBlobStorage` テーブルエンジン:可能な場合はマネージド ID 認証トークンをキャッシュして再利用し、レート制限の発生を避けるようにしました。 [#79860](https://github.com/ClickHouse/ClickHouse/pull/79860) ([Nick Blakely](https://github.com/niblak)). -* 右側が結合キー列によって一意に決まる場合(すべての行で結合キー値が一意である場合)、`ALL` `LEFT` / `INNER` JOIN は自動的に `RightAny` に変換されます。 [#84010](https://github.com/ClickHouse/ClickHouse/pull/84010) ([Nikita Taranov](https://github.com/nickitat))。 -* `max_joined_block_size_rows` に加えて `max_joined_block_size_bytes` を追加し、サイズの大きいカラムを含む JOIN におけるメモリ使用量を制限できるようにしました。 [#83869](https://github.com/ClickHouse/ClickHouse/pull/83869) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* 新しいロジック(設定 `enable_producing_buckets_out_of_order_in_aggregation` によって制御され、デフォルトで有効になっています)が追加され、メモリ効率の高い集約中に一部のバケットを順不同で送信できるようになりました。特定の集約バケットのマージに他よりもかなり長い時間がかかる場合に、イニシエーターがその間にバケット ID のより大きいバケットをマージできるようにすることで、パフォーマンスが向上します。デメリットはメモリ使用量が増加する可能性があることですが(有意な増加にはならないはずです)。[#80179](https://github.com/ClickHouse/ClickHouse/pull/80179)([Nikita Taranov](https://github.com/nickitat))。 -* `optimize_rewrite_regexp_functions` 設定(デフォルトで有効)を導入しました。この設定により、特定の正規表現パターンが検出された場合、オプティマイザが一部の `replaceRegexpAll`、`replaceRegexpOne`、`extract` 関数呼び出しを、より単純で効率的な形に書き換えることができます。(issue [#81981](https://github.com/ClickHouse/ClickHouse/issues/81981))。[#81992](https://github.com/ClickHouse/ClickHouse/pull/81992)([Amos Bird](https://github.com/amosbird))。 -* ハッシュ JOIN のメインループ外で `max_joined_block_rows` を処理するようにしました。ALL JOIN でのパフォーマンスがわずかに向上します。 [#83216](https://github.com/ClickHouse/ClickHouse/pull/83216) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* より高い粒度の min-max インデックスを先に処理するようにしました。[#75381](https://github.com/ClickHouse/ClickHouse/issues/75381) を解決します。[#83798](https://github.com/ClickHouse/ClickHouse/pull/83798)([Maruth Goyal](https://github.com/maruthgoyal))。 -* `DISTINCT` ウィンドウ集約を線形時間で実行できるようにし、`sumDistinct` のバグを修正。Closes [#79792](https://github.com/ClickHouse/ClickHouse/issues/79792)。Closes [#52253](https://github.com/ClickHouse/ClickHouse/issues/52253)。[#79859](https://github.com/ClickHouse/ClickHouse/pull/79859)([Nihal Z. Miaji](https://github.com/nihalzp))。 -* ベクトル類似インデックスを利用するベクトル検索クエリは、ストレージの読み取り回数と CPU 使用量が削減されたことで、より低いレイテンシで完了するようになりました。 [#83803](https://github.com/ClickHouse/ClickHouse/pull/83803) ([Shankar Iyer](https://github.com/shankar-iyer)). -* 並列レプリカ間のワークロード分散におけるキャッシュ局所性を向上させる Rendezvous ハッシュ。[#82511](https://github.com/ClickHouse/ClickHouse/pull/82511) ([Anton Ivashkin](https://github.com/ianton-ru)). -* If コンビネータ用に addManyDefaults を実装し、If コンビネータを含む集約関数の動作がより高速になりました。 [#83870](https://github.com/ClickHouse/ClickHouse/pull/83870) ([Raúl Marín](https://github.com/Algunenano)). -* 複数の文字列または数値列で `GROUP BY` する際に、シリアライズされたキーを列指向で計算するようにしました。 [#83884](https://github.com/ClickHouse/ClickHouse/pull/83884) ([李扬](https://github.com/taiyang-li)). -* インデックス解析の結果、並列レプリカの読み取りに対して空の範囲となる場合に、フルスキャンを行わないようにしました。 [#84971](https://github.com/ClickHouse/ClickHouse/pull/84971) ([Eduard Karacharov](https://github.com/korowa)). -* より安定したパフォーマンステストのために -falign-functions=64 を試す。 [#83920](https://github.com/ClickHouse/ClickHouse/pull/83920) ([Azat Khuzhin](https://github.com/azat)). -* ブルームフィルターインデックスは、`column` が `Array` 型ではない場合の `has([c1, c2, ...], column)` のような条件にも使用されるようになりました。これにより、そのようなクエリのパフォーマンスが向上し、`IN` 演算子と同等の効率で実行できるようになります。[#83945](https://github.com/ClickHouse/ClickHouse/pull/83945)([Doron David](https://github.com/dorki))。 -* CompressedReadBufferBase::readCompressedData における不要な memcpy 呼び出しを減らしました。[#83986](https://github.com/ClickHouse/ClickHouse/pull/83986) ([Raúl Marín](https://github.com/Algunenano)). -* 一時データの削除により `largestTriangleThreeBuckets` を最適化。 [#84479](https://github.com/ClickHouse/ClickHouse/pull/84479) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* コードの簡素化によって文字列のデシリアライズ処理を最適化。Closes [#38564](https://github.com/ClickHouse/ClickHouse/issues/38564)。[#84561](https://github.com/ClickHouse/ClickHouse/pull/84561) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 並列レプリカにおける最小タスクサイズの計算を修正しました。[#84752](https://github.com/ClickHouse/ClickHouse/pull/84752) ([Nikita Taranov](https://github.com/nickitat))。 -* `Join` モードにおけるパッチパーツ適用処理のパフォーマンスを改善。[#85040](https://github.com/ClickHouse/ClickHouse/pull/85040) ([Anton Popov](https://github.com/CurtizJ)). -* ゼロバイトを削除しました。[#85062](https://github.com/ClickHouse/ClickHouse/issues/85062) をクローズします。いくつかの小さなバグを修正しました。関数 `structureToProtobufSchema` と `structureToCapnProtoSchema` は、終端のゼロバイトを正しく付加できておらず、その代わりに改行文字を使用していました。これにより、出力から改行が欠落し、ゼロバイトに依存する他の関数(`logTrace`、`demangle`、`extractURLParameter`、`toStringCutToZero`、`encrypt` / `decrypt` など)を使用した際にバッファオーバーフローが発生する可能性がありました。`regexp_tree` 辞書レイアウトは、ゼロバイトを含む文字列の処理をサポートしていませんでした。`Values` フォーマット、あるいは行末に改行を含まないその他のフォーマットで呼び出された `formatRowNoNewline` 関数は、出力の最後の文字を誤って切り落としていました。関数 `stem` には例外安全性の不具合があり、非常にまれなシナリオでメモリリークを引き起こす可能性がありました。`initcap` 関数は `FixedString` 引数に対して誤った動作をしていました。ブロック内の前の文字列が単語構成文字で終わっている場合、文字列の先頭にある単語の開始を認識できませんでした。Apache `ORC` フォーマットのセキュリティ脆弱性を修正しました。これは初期化されていないメモリの露出につながる可能性がありました。関数 `replaceRegexpAll` とそれに対応するエイリアス `REGEXP_REPLACE` の動作を変更しました。これらは、`^a*|a*$` や `^|.*` のように、直前のマッチが文字列全体を処理した場合でも、文字列末尾で空マッチを行えるようになりました。この挙動は JavaScript、Perl、Python、PHP、Ruby のセマンティクスに対応しますが、PostgreSQL のセマンティクスとは異なります。多くの関数の実装が単純化および最適化されました。いくつかの関数のドキュメントが誤っていたため修正しました。`byteSize` の出力について、String 列および String 列で構成される複合型では(空文字列 1 つあたり 9 バイトから 8 バイトへと)変更されている点に注意してください。これは想定された挙動です。[#85063](https://github.com/ClickHouse/ClickHouse/pull/85063)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 単一行を返すためだけに定数をマテリアライズしている場合の定数マテリアライズ処理を最適化しました。 [#85071](https://github.com/ClickHouse/ClickHouse/pull/85071) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* delta-kernel-rs バックエンドを用いた並列ファイル処理を改善しました。 [#85642](https://github.com/ClickHouse/ClickHouse/pull/85642) ([Azat Khuzhin](https://github.com/azat)). -* 新しい設定項目 `enable_add_distinct_to_in_subqueries` が導入されました。有効にすると、ClickHouse は分散クエリにおける `IN` 句内のサブクエリに自動的に `DISTINCT` を追加します。これにより、シャード間で転送される一時テーブルのサイズを大幅に削減し、ネットワーク効率を向上させることができます。注意:これはトレードオフです。ネットワーク転送量は削減されますが、各ノードで追加のマージ(重複排除)処理が必要になります。ネットワーク転送がボトルネックとなっており、マージ処理のコストが許容できる場合に、この設定を有効にしてください。[#81908](https://github.com/ClickHouse/ClickHouse/pull/81908)([fhw12345](https://github.com/fhw12345))。 -* 実行可能なユーザー定義関数におけるクエリメモリトラッキングのオーバーヘッドを削減。 [#83929](https://github.com/ClickHouse/ClickHouse/pull/83929) ([Eduard Karacharov](https://github.com/korowa)). -* ストレージ `DeltaLake` に、内部用の `delta-kernel-rs` フィルタリング機能(統計情報およびパーティションのプルーニング)を実装しました。 [#84006](https://github.com/ClickHouse/ClickHouse/pull/84006) ([Kseniia Sumarokova](https://github.com/kssenii)). -* オンザフライで更新される列やパッチパーツによって更新される列に依存するスキップインデックスの無効化を、よりきめ細かく制御するようにしました。これにより、スキップインデックスはオンザフライのミューテーションやパッチパーツの影響を受けたパーツでのみ使用されず、以前のようにすべてのパーツでインデックスが無効化されることはなくなりました。 [#84241](https://github.com/ClickHouse/ClickHouse/pull/84241) ([Anton Popov](https://github.com/CurtizJ)). -* 暗号化された名前付きコレクション用の encrypted_buffer に必要最小限のメモリのみを割り当てるようにしました。 [#84432](https://github.com/ClickHouse/ClickHouse/pull/84432) ([Pablo Marcos](https://github.com/pamarcos)). -* Bloom filter インデックス(regular、ngram、token)について、第 1 引数が定数配列(集合)、第 2 引数がインデックス付きカラム(部分集合)の場合にも利用されるようサポートを改善し、より効率的なクエリ実行を可能にしました。 [#84700](https://github.com/ClickHouse/ClickHouse/pull/84700) ([Doron David](https://github.com/dorki))。 -* Keeper におけるストレージロックの競合を軽減。 [#84732](https://github.com/ClickHouse/ClickHouse/pull/84732) ([Antonio Andelic](https://github.com/antonio2368))。 -* `WHERE` に対して不足していた `read_in_order_use_virtual_row` のサポートを追加しました。これにより、フィルタが完全には `PREWHERE` にプッシュダウンされていないクエリにおいて、追加のパーツの読み取りをスキップできるようになります。 [#84835](https://github.com/ClickHouse/ClickHouse/pull/84835) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* 各データファイルごとにオブジェクトを明示的に保持することなく、Iceberg テーブルからオブジェクトを非同期にイテレートできるようにしました。 [#85369](https://github.com/ClickHouse/ClickHouse/pull/85369) ([Daniil Ivanik](https://github.com/divanik)). -* 非相関な `EXISTS` をスカラサブクエリとして実行します。これにより、スカラサブクエリキャッシュを使用し、結果を定数畳み込みできるようになり、インデックスの利用に有利になります。後方互換性のために、新しい設定 `execute_exists_as_scalar_subquery=1` が追加されました。 [#85481](https://github.com/ClickHouse/ClickHouse/pull/85481) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 - -#### 改善点 {#improvement} - -* `database_replicated` 設定を追加し、DatabaseReplicatedSettings のデフォルト値を定義します。Replicated DB の CREATE クエリでこの設定が指定されていない場合は、この設定の値が使用されます。 [#85127](https://github.com/ClickHouse/ClickHouse/pull/85127) ([Tuan Pham Anh](https://github.com/tuanpach))。 -* Web UI(play)でテーブルの列をリサイズ可能にしました。 [#84012](https://github.com/ClickHouse/ClickHouse/pull/84012) ([Doron David](https://github.com/dorki))。 -* `iceberg_metadata_compression_method` 設定によって圧縮された `.metadata.json` ファイルのサポートを追加しました。ClickHouse のすべての圧縮方式に対応しています。これにより [#84895](https://github.com/ClickHouse/ClickHouse/issues/84895) がクローズされました。[#85196](https://github.com/ClickHouse/ClickHouse/pull/85196)([Konstantin Vedernikov](https://github.com/scanhex12))。 -* `EXPLAIN indexes = 1` の出力に、読み取られる範囲の数を表示するようにしました。 [#79938](https://github.com/ClickHouse/ClickHouse/pull/79938) ([Christoph Wurm](https://github.com/cwurm))。 -* ORC 圧縮ブロックサイズを設定するための設定項目を導入し、Spark や Hive と整合性を保つために、そのデフォルト値を 64KB から 256KB に更新しました。[#80602](https://github.com/ClickHouse/ClickHouse/pull/80602) ([李扬](https://github.com/taiyang-li))。 -* Wide パーツに `columns_substreams.txt` ファイルを追加し、そのパーツに保存されているすべてのサブストリームを追跡するようにしました。これにより、JSON および Dynamic 型における動的ストリームを追跡する際に、動的ストリームの一覧を取得するためだけに(たとえばカラムサイズ計算のために)これらのカラムのサンプルを読み取る必要がなくなります。また、すべての動的ストリームが `system.parts_columns` に反映されるようになりました。 [#81091](https://github.com/ClickHouse/ClickHouse/pull/81091) ([Pavel Kruglov](https://github.com/Avogar))。 -* 機密データをデフォルトで非表示にするための CLI フラグ --show_secrets を clickhouse format に追加しました。 [#81524](https://github.com/ClickHouse/ClickHouse/pull/81524) ([Nikolai Ryzhov](https://github.com/Dolaxom)). -* S3 の読み取りおよび書き込みリクエストは、`max_remote_read_network_bandwidth_for_server` と `max_remote_write_network_bandwidth_for_server` による帯域制限の問題を回避するため、S3 リクエスト全体ではなく HTTP ソケットレベルでスロットルされるようになりました。 [#81837](https://github.com/ClickHouse/ClickHouse/pull/81837) ([Sergei Trifonov](https://github.com/serxa))。 -* 同じ列に対して、ウィンドウ(ウィンドウ関数用)ごとに異なる照合順序を使用できるようにしました。[#82877](https://github.com/ClickHouse/ClickHouse/pull/82877) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 -* マージセレクタをシミュレート・可視化・比較するためのツールを追加。 [#71496](https://github.com/ClickHouse/ClickHouse/pull/71496) ([Sergei Trifonov](https://github.com/serxa)). -* `address_expression` 引数でクラスタが指定されている場合に、並列レプリカ付きの `remote*` テーブル関数のサポートを追加しました。また、[#73295](https://github.com/ClickHouse/ClickHouse/issues/73295) を修正しました。[#82904](https://github.com/ClickHouse/ClickHouse/pull/82904)([Igor Nikonov](https://github.com/devcrafter))。 -* バックアップファイル書き込み用のすべてのログメッセージのログレベルを TRACE に設定しました。 [#82907](https://github.com/ClickHouse/ClickHouse/pull/82907) ([Hans Krutzer](https://github.com/hkrutzer))。 -* 通常とは異なる名前やコーデックを持つユーザー定義関数は、SQL フォーマッタによって一貫性のない形式でフォーマットされる場合があります。これにより [#83092](https://github.com/ClickHouse/ClickHouse/issues/83092) がクローズされました。[#83644](https://github.com/ClickHouse/ClickHouse/pull/83644) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* ユーザーは JSON 型内で Time 型および Time64 型を使用できるようになりました。 [#83784](https://github.com/ClickHouse/ClickHouse/pull/83784) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* 並列レプリカを用いた JOIN は、現在 JOIN の論理ステップ(`join logical step`)を使用するようになりました。並列レプリカを用いる JOIN クエリで問題が発生した場合は、`SET query_plan_use_new_logical_join_step=0` を試し、問題を報告してください。 [#83801](https://github.com/ClickHouse/ClickHouse/pull/83801) ([Vladimir Cherkasov](https://github.com/vdimir))。 -* cluster_function_process_archive_on_multiple_nodes の複数ノード環境での互換性を修正。 [#83968](https://github.com/ClickHouse/ClickHouse/pull/83968) ([Kseniia Sumarokova](https://github.com/kssenii)). -* `S3Queue` テーブルレベルでマテリアライズドビュー向けの挿入設定を変更できるようにしました。新たに `S3Queue` レベルの設定として `min_insert_block_size_rows_for_materialized_views` と `min_insert_block_size_bytes_for_materialized_views` を追加しました。デフォルトではプロファイルレベルの設定が使用されますが、`S3Queue` レベルの設定がある場合はそれが優先されます。 [#83971](https://github.com/ClickHouse/ClickHouse/pull/83971) ([Kseniia Sumarokova](https://github.com/kssenii)). -* プロファイルイベント `MutationAffectedRowsUpperBound` を追加しました。このイベントは、ミューテーションで影響を受けた行数(例:`ALTER UPDATE` や `ALTER DELETE` クエリで条件を満たす行の合計数)を示します。 [#83978](https://github.com/ClickHouse/ClickHouse/pull/83978) ([Anton Popov](https://github.com/CurtizJ))。 -* cgroup の情報(該当する場合、`memory_worker_use_cgroup` が有効で cgroup が利用可能な場合)を使用して、メモリトラッカー(`memory_worker_correct_memory_tracker`)を調整します。 [#83981](https://github.com/ClickHouse/ClickHouse/pull/83981) ([Azat Khuzhin](https://github.com/azat)). -* MongoDB: 文字列から数値型への暗黙的パースをサポート。以前は、MongoDB ソースから ClickHouse テーブル内の数値カラムに文字列値が渡された場合、例外がスローされていました。現在は、エンジンが文字列から数値を自動的にパースしようとします。これにより [#81167](https://github.com/ClickHouse/ClickHouse/issues/81167) がクローズされました。[#84069](https://github.com/ClickHouse/ClickHouse/pull/84069)([Kirill Nikiforov](https://github.com/allmazz))。 -* `Nullable` な数値に対しても、`Pretty` フォーマットで桁グループをハイライト表示できるようにしました。 [#84070](https://github.com/ClickHouse/ClickHouse/pull/84070) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Dashboard: ツールチップがコンテナの上端からはみ出さなくなりました。 [#84072](https://github.com/ClickHouse/ClickHouse/pull/84072) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* ダッシュボード上のドットの見た目をわずかに改善しました。 [#84074](https://github.com/ClickHouse/ClickHouse/pull/84074) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Dashboard の favicon をわずかに改善しました。 [#84076](https://github.com/ClickHouse/ClickHouse/pull/84076) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Web UI: ブラウザがパスワードを保存できるようにしました。また、URL フィールドの値も記憶されるようにしました。 [#84087](https://github.com/ClickHouse/ClickHouse/pull/84087) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 特定の Keeper ノードに対して `apply_to_children` 設定を使用して追加の ACL を適用できるようにしました。 [#84137](https://github.com/ClickHouse/ClickHouse/pull/84137) ([Antonio Andelic](https://github.com/antonio2368)). -* MergeTree における Variant 判別子の「compact」形式シリアライゼーションの利用を修正しました。以前は、利用可能な場合でも一部のケースで使用されていませんでした。 [#84141](https://github.com/ClickHouse/ClickHouse/pull/84141) ([Pavel Kruglov](https://github.com/Avogar)). -* Replicated データベース設定にサーバー設定 `logs_to_keep` を追加し、レプリケーテッドデータベースの `logs_to_keep` のデフォルト値を変更できるようにしました。値を小さくすると ZNode の数(特にデータベースが多数ある場合)が減少し、値を大きくすると欠落しているレプリカがより長い時間が経過した後でも追いつけるようになります。 [#84183](https://github.com/ClickHouse/ClickHouse/pull/84183) ([Alexey Khatskevich](https://github.com/Khatskevich))。 -* JSON 型解析時に JSON キー内のドットをエスケープするための設定 `json_type_escape_dots_in_keys` を追加しました。この設定はデフォルトで無効です。 [#84207](https://github.com/ClickHouse/ClickHouse/pull/84207) ([Pavel Kruglov](https://github.com/Avogar)). -* 閉じられたコネクションから読み込むことを防ぐため、EOF を確認する前にコネクションがキャンセルされているかどうかをチェックするようにしました。[#83893](https://github.com/ClickHouse/ClickHouse/issues/83893) を修正。[#84227](https://github.com/ClickHouse/ClickHouse/pull/84227)([Raufs Dunamalijevs](https://github.com/rienath))。 -* Web UI におけるテキスト選択時の色をわずかに改善しました。違いが顕著なのは、ダークモード時に選択されたテーブルセルのみです。以前のバージョンでは、テキストと選択範囲の背景色とのコントラストが不十分でした。 [#84258](https://github.com/ClickHouse/ClickHouse/pull/84258) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 内部チェックを簡素化することで、クライアント接続に対するサーバーのシャットダウン処理を改善しました。 [#84312](https://github.com/ClickHouse/ClickHouse/pull/84312) ([Raufs Dunamalijevs](https://github.com/rienath)). -* `delta_lake_enable_expression_visitor_logging` 設定を追加し、式ビジターのログを無効化できるようにしました。これは、デバッグ時に test ログレベルであってもログの出力量が多すぎる場合があるためです。 [#84315](https://github.com/ClickHouse/ClickHouse/pull/84315) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* Cgroup レベルおよびシステム全体のメトリクスが、まとめて報告されるようになりました。Cgroup レベルのメトリクス名は `CGroup<Metric>`、OS レベルのメトリクス(procfs から収集されるもの)の名前は `OS<Metric>` です。 [#84317](https://github.com/ClickHouse/ClickHouse/pull/84317) ([Nikita Taranov](https://github.com/nickitat))。 -* Web UI のチャートがわずかに改善されました。大きな変更ではありませんが、少し良くなりました。 [#84326](https://github.com/ClickHouse/ClickHouse/pull/84326) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Replicated データベース設定 `max_retries_before_automatic_recovery` のデフォルト値を 10 に変更し、一部のケースでより迅速に復旧できるようにしました。 [#84369](https://github.com/ClickHouse/ClickHouse/pull/84369) ([Alexander Tokmakov](https://github.com/tavplubix)). -* クエリパラメータを含む `CREATE USER` のフォーマットを修正しました(例: `CREATE USER {username:Identifier} IDENTIFIED WITH no_password`)。 [#84376](https://github.com/ClickHouse/ClickHouse/pull/84376)([Azat Khuzhin](https://github.com/azat))。 -* バックアップおよびリストア処理中に使用される S3 のリトライバックオフ戦略を構成するために、`backup_restore_s3_retry_initial_backoff_ms`、`backup_restore_s3_retry_max_backoff_ms`、`backup_restore_s3_retry_jitter_factor` を導入しました。 [#84421](https://github.com/ClickHouse/ClickHouse/pull/84421) ([Julia Kartseva](https://github.com/jkartseva)). -* S3Queue の ordered モードの修正: `shutdown` が呼び出された場合に早期に終了するようにしました。 [#84463](https://github.com/ClickHouse/ClickHouse/pull/84463) ([Kseniia Sumarokova](https://github.com/kssenii)). -* pyiceberg から読み取り可能な Iceberg テーブルへの書き込みをサポートしました。 [#84466](https://github.com/ClickHouse/ClickHouse/pull/84466) ([Konstantin Vedernikov](https://github.com/scanhex12))。 -* KeyValue ストレージのプライマリキー(例: EmbeddedRocksDB、KeeperMap)に対して `IN` / `GLOBAL IN` フィルターをプッシュダウンする際に、Set の値の型変換を許可しました。 [#84515](https://github.com/ClickHouse/ClickHouse/pull/84515) ([Eduard Karacharov](https://github.com/korowa)). -* chdig を [25.7.1](https://github.com/azat/chdig/releases/tag/v25.7.1) に更新。[#84521](https://github.com/ClickHouse/ClickHouse/pull/84521) ([Azat Khuzhin](https://github.com/azat))。 -* UDF 実行中に発生する低レベルエラーは、現在はエラーコード `UDF_EXECUTION_FAILED` で失敗するようになりました。以前は状況に応じて異なるエラーコードが返される可能性がありました。 [#84547](https://github.com/ClickHouse/ClickHouse/pull/84547) ([Xu Jia](https://github.com/XuJia0210)). -* KeeperClient に `get_acl` コマンドを追加しました。[#84641](https://github.com/ClickHouse/ClickHouse/pull/84641)([Antonio Andelic](https://github.com/antonio2368))。 -* データレイクテーブルエンジンにスナップショットバージョンを追加しました。 [#84659](https://github.com/ClickHouse/ClickHouse/pull/84659) ([Pete Hampton](https://github.com/pjhampton)). -* `ConcurrentBoundedQueue` のサイズを表すディメンション付きメトリクスを追加しました。キュー種別(そのキューの用途)およびキュー ID(キューの現在のインスタンスごとにランダムに生成される ID)でラベル付けされます。 [#84675](https://github.com/ClickHouse/ClickHouse/pull/84675) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 -* `system.columns` テーブルで、既存の `name` カラムに対するエイリアスとして `column` が利用できるようになりました。 [#84695](https://github.com/ClickHouse/ClickHouse/pull/84695) ([Yunchi Pang](https://github.com/yunchipang)). -* 新しい MergeTree 設定 `search_orphaned_parts_drives` により、たとえばローカルメタデータを持つディスクなど、パーツを検索する対象ディスクの範囲を制限できるようになりました。 [#84710](https://github.com/ClickHouse/ClickHouse/pull/84710) ([Ilya Golshtein](https://github.com/ilejn)). -* Keeper に 4LW コマンド `lgrq` を追加し、受信リクエストのログ出力をオン/オフ切り替えられるようにしました。 [#84719](https://github.com/ClickHouse/ClickHouse/pull/84719) ([Antonio Andelic](https://github.com/antonio2368)). -* external auth の forward_headers を大文字と小文字を区別せずに照合するようにしました。 [#84737](https://github.com/ClickHouse/ClickHouse/pull/84737) ([ingodwerust](https://github.com/ingodwerust))。 -* `encrypt_decrypt` ツールが暗号化された ZooKeeper 接続をサポートするようになりました。[#84764](https://github.com/ClickHouse/ClickHouse/pull/84764) ([Roman Vasin](https://github.com/rvasin))。 -* `system.errors` にフォーマット文字列用のカラムを追加しました。このカラムは、アラートルールで同じエラー種別ごとにグループ化するために必要です。 [#84776](https://github.com/ClickHouse/ClickHouse/pull/84776) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 -* `clickhouse-format` を更新し、`--hilite` のエイリアスとして `--highlight` を受け付けるようにしました。- `clickhouse-client` を更新し、`--highlight` のエイリアスとして `--hilite` を受け付けるようにしました。- 変更内容を反映するように `clickhouse-format` のドキュメントを更新しました。 [#84806](https://github.com/ClickHouse/ClickHouse/pull/84806) ([Rishabh Bhardwaj](https://github.com/rishabh1815769)). -* Iceberg の複合型に対するフィールド ID ベースの読み取りを修正。 [#84821](https://github.com/ClickHouse/ClickHouse/pull/84821) ([Konstantin Vedernikov](https://github.com/scanhex12))。 -* `SlowDown` などのエラーによって発生するリトライストーム時に、1 つのリトライ可能なエラーを検知した時点ですべてのスレッドを減速させることで S3 への負荷を軽減するための新しい設定 `backup_slow_all_threads_after_retryable_s3_error` を導入しました。 [#84854](https://github.com/ClickHouse/ClickHouse/pull/84854) ([Julia Kartseva](https://github.com/jkartseva))。 -* Replicated DB における append 以外の RMV DDL で使用される既存の一時テーブルの作成およびリネーム処理をスキップします。 [#84858](https://github.com/ClickHouse/ClickHouse/pull/84858) ([Tuan Pham Anh](https://github.com/tuanpach))。 -* Keeper のログエントリキャッシュサイズを、`keeper_server.coordination_settings.latest_logs_cache_entry_count_threshold` と `keeper_server.coordination_settings.commit_logs_cache_entry_count_threshold` を使用して、エントリ数に基づいて制限します。 [#84877](https://github.com/ClickHouse/ClickHouse/pull/84877) ([Antonio Andelic](https://github.com/antonio2368))。 -* サポートされていないアーキテクチャでも `simdjson` を使用できるようにしました(以前は `CANNOT_ALLOCATE_MEMORY` エラーが発生していました)。[#84966](https://github.com/ClickHouse/ClickHouse/pull/84966) ([Azat Khuzhin](https://github.com/azat))。 -* Async logging: 制限を調整可能にし、内部状態の可視化機能を追加。 [#85105](https://github.com/ClickHouse/ClickHouse/pull/85105) ([Raúl Marín](https://github.com/Algunenano)). -* オブジェクトストレージに対する削除を 1 回の操作で実行できるよう、削除対象のオブジェクトをすべて収集するようにしました。 [#85316](https://github.com/ClickHouse/ClickHouse/pull/85316) ([Mikhail Artemenko](https://github.com/Michicosun)). -* Iceberg における現在の positional delete ファイルの実装では、すべてのデータを RAM に保持します。positional delete ファイルが大きくなることはよくあるため、これはかなりコストが高くなり得ます。私の実装では、Parquet delete ファイルの最後の row group だけを RAM に保持するため、コストを大幅に削減できます。 [#85329](https://github.com/ClickHouse/ClickHouse/pull/85329) ([Konstantin Vedernikov](https://github.com/scanhex12))。 -* chdig: 画面に残る表示の残りを修正し、エディタでクエリを編集した後にクラッシュする問題を修正し、`path` 内で `editor` を検索するようにし、[25.8.1](https://github.com/azat/chdig/releases/tag/v25.8.1) に更新しました。 [#85341](https://github.com/ClickHouse/ClickHouse/pull/85341) ([Azat Khuzhin](https://github.com/azat)). -* 不足していた `partition_columns_in_data_file` を Azure 設定に追加しました。 [#85373](https://github.com/ClickHouse/ClickHouse/pull/85373) ([Arthur Passos](https://github.com/arthurpassos))。 -* 関数 `timeSeries*ToGrid` でステップ値 0 を許可します。これは [#75036](https://github.com/ClickHouse/ClickHouse/pull/75036) の一部です。[#85390](https://github.com/ClickHouse/ClickHouse/pull/85390)([Vitaly Baranov](https://github.com/vitlibar))。 -* show_data_lake_catalogs_in_system_tables フラグを追加し、system.tables にデータレイクテーブルを追加するかどうかを制御できるようにしました。[#85384](https://github.com/ClickHouse/ClickHouse/issues/85384) を解決。[#85411](https://github.com/ClickHouse/ClickHouse/pull/85411)([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 -* `remote_fs_zero_copy_zookeeper_path` におけるマクロ展開のサポートを追加しました。 [#85437](https://github.com/ClickHouse/ClickHouse/pull/85437) ([Mikhail Koviazin](https://github.com/mkmkme)). -* clickhouse-client における AI の表示がわずかに改善されました。 [#85447](https://github.com/ClickHouse/ClickHouse/pull/85447) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 既存のデプロイメントで trace_log.symbolize がデフォルトで有効になるようにしました。 [#85456](https://github.com/ClickHouse/ClickHouse/pull/85456) ([Azat Khuzhin](https://github.com/azat)). -* 複合識別子に関するより多くのケースを解決できるようにしました。特に、`ARRAY JOIN` と旧アナライザとの互換性が向上しています。従来の動作を維持するための新しい設定 `analyzer_compatibility_allow_compound_identifiers_in_unflatten_nested` を導入しました。 [#85492](https://github.com/ClickHouse/ClickHouse/pull/85492) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* system.columns テーブルの列サイズを取得する際に UNKNOWN_DATABASE を無視するようにしました。 [#85632](https://github.com/ClickHouse/ClickHouse/pull/85632) ([Azat Khuzhin](https://github.com/azat)). -* パッチパーツに含まれる非圧縮バイト数の合計に対する上限(テーブル設定 `max_uncompressed_bytes_in_patches`)を追加しました。これにより、論理更新後の SELECT クエリが大幅に遅くなることを防ぎ、論理更新の悪用も防ぎます。 [#85641](https://github.com/ClickHouse/ClickHouse/pull/85641) ([Anton Popov](https://github.com/CurtizJ)). -* `GRANT READ/WRITE` のソースタイプおよび `GRANT TABLE ENGINE` のテーブルエンジンを判定できるように、`system.grants` に `parameter` カラムを追加しました。 [#85643](https://github.com/ClickHouse/ClickHouse/pull/85643) ([MikhailBurdukov](https://github.com/MikhailBurdukov))。 -* `CREATE DICTIONARY` クエリ内で、パラメータ付きのカラム(例: `Decimal(8)`)に続くカラムの末尾にあるカンマのパース処理を修正しました。 [#85586](https://github.com/ClickHouse/ClickHouse/issues/85586) をクローズしました。 [#85653](https://github.com/ClickHouse/ClickHouse/pull/85653)([Nikolay Degterinsky](https://github.com/evillique))。 -* `nested` 関数で内部配列をサポートするようにしました。 [#85719](https://github.com/ClickHouse/ClickHouse/pull/85719) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* 外部ライブラリによって行われるすべてのメモリ割り当てが、ClickHouse のメモリトラッカーによっても追跡され、正しく計上されるようになりました。これにより、一部のクエリでは報告されるメモリ使用量が「増加」したように見えたり、`MEMORY_LIMIT_EXCEEDED` で失敗する可能性があります。 [#84082](https://github.com/ClickHouse/ClickHouse/pull/84082) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). - -#### バグ修正(公式安定版リリースでユーザーに影響する誤動作) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* この PR では、REST カタログ経由で Iceberg テーブルをクエリする際のメタデータ解決処理を修正しました。... [#80562](https://github.com/ClickHouse/ClickHouse/pull/80562) ([Saurabh Kumar Ojha](https://github.com/saurabhojha)). -* DDLWorker と DatabaseReplicatedDDLWorker における `markReplicasActive` の不具合を修正。 [#81395](https://github.com/ClickHouse/ClickHouse/pull/81395) ([Tuan Pham Anh](https://github.com/tuanpach)). -* パース失敗時の Dynamic 列のロールバック処理を修正。 [#82169](https://github.com/ClickHouse/ClickHouse/pull/82169) ([Pavel Kruglov](https://github.com/Avogar)). -* 関数 `trim` がすべて定数の入力で呼び出された場合に、定数の出力文字列を生成するようになりました(バグ [#78796](https://github.com/ClickHouse/ClickHouse/issues/78796))。[#82900](https://github.com/ClickHouse/ClickHouse/pull/82900)([Robert Schulze](https://github.com/rschu1ze))。 -* `optimize_syntax_fuse_functions` が有効な場合に発生する、重複サブクエリに起因する論理エラーを修正。[#75511](https://github.com/ClickHouse/ClickHouse/issues/75511) をクローズ。[#83300](https://github.com/ClickHouse/ClickHouse/pull/83300)([Vladimir Cherkasov](https://github.com/vdimir))。 -* `WHERE ... IN (<subquery>)` 句を含み、クエリ条件キャッシュ(設定 `use_query_condition_cache`)が有効になっているクエリで誤った結果が返される問題を修正しました。 [#83445](https://github.com/ClickHouse/ClickHouse/pull/83445) ([LB7666](https://github.com/acking-you))。 -* これまで `gcs` 関数は利用にあたって特別なアクセス権を必要としていませんでしたが、現在は使用時に `GRANT READ ON S3` 権限が必要になります。これにより [#70567](https://github.com/ClickHouse/ClickHouse/issues/70567) がクローズされました。[#83503](https://github.com/ClickHouse/ClickHouse/pull/83503)([pufit](https://github.com/pufit))。 -* s3Cluster() からレプリケーテッド MergeTree への INSERT SELECT 実行時に、利用できないノードをスキップするようにしました。 [#83676](https://github.com/ClickHouse/ClickHouse/pull/83676) ([Igor Nikonov](https://github.com/devcrafter)). -* 実験的トランザクション用の `MergeTree` において、`plain_rewritable`/`plain` メタデータ型を使用した append 書き込みの処理を修正しました。これらのメタデータ型は以前は単純に無視されていました。 [#83695](https://github.com/ClickHouse/ClickHouse/pull/83695) ([Tuan Pham Anh](https://github.com/tuanpach)). -* Avro スキーマレジストリの認証情報がユーザーやログに表示されないようマスクするようにしました。 [#83713](https://github.com/ClickHouse/ClickHouse/pull/83713) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* `add_minmax_index_for_numeric_columns=1` または `add_minmax_index_for_string_columns=1` を指定して MergeTree テーブルを作成した場合に、そのインデックスが後の ALTER 操作でマテリアライズされると、新しいレプリカ上で Replicated データベースを正しく初期化できなくなる不具合を修正しました。 [#83751](https://github.com/ClickHouse/ClickHouse/pull/83751) ([Nikolay Degterinsky](https://github.com/evillique))。 -* Decimal 型に対して誤った統計情報(最小値/最大値)を出力していた Parquet writer を修正しました。 [#83754](https://github.com/ClickHouse/ClickHouse/pull/83754) ([Michael Kolupaev](https://github.com/al13n321)). -* `LowCardinality(Float32|Float64|BFloat16)` 型における NaN 値のソート処理を修正しました。 [#83786](https://github.com/ClickHouse/ClickHouse/pull/83786) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* バックアップから復元する際に、`DEFINER` ユーザーがバックアップされていない場合があり、その結果バックアップ全体が無効になってしまう可能性があります。これを解決するため、復元時の対象テーブル作成時に行っていた権限チェックを延期し、実行時にのみチェックするようにしました。 [#83818](https://github.com/ClickHouse/ClickHouse/pull/83818) ([pufit](https://github.com/pufit))。 -* 失敗した `INSERT` 実行後に接続が切断された状態のままになることでクライアントがクラッシュする問題を修正。 [#83842](https://github.com/ClickHouse/ClickHouse/pull/83842) ([Azat Khuzhin](https://github.com/azat)). -* アナライザーが有効な場合、`remote` テーブル関数の `view(...)` 引数内で任意のテーブルを参照できるようにしました。[#78717](https://github.com/ClickHouse/ClickHouse/issues/78717) を修正。[#79377](https://github.com/ClickHouse/ClickHouse/issues/79377) を修正。[#83844](https://github.com/ClickHouse/ClickHouse/pull/83844)([Dmitry Novik](https://github.com/novikd))。 -* `jsoneachrowwithprogress` における `Onprogress` の呼び出しが finalization と同期されるようになりました。 [#83879](https://github.com/ClickHouse/ClickHouse/pull/83879) ([Sema Checherinda](https://github.com/CheSema)). -* これにより [#81303](https://github.com/ClickHouse/ClickHouse/issues/81303) をクローズします。 [#83892](https://github.com/ClickHouse/ClickHouse/pull/83892) ([Konstantin Vedernikov](https://github.com/scanhex12))。 -* const 引数と非 const 引数が混在する場合の colorSRGBToOKLCH/colorOKLCHToSRGB の不具合を修正。 [#83906](https://github.com/ClickHouse/ClickHouse/pull/83906) ([Azat Khuzhin](https://github.com/azat)). -* RowBinary フォーマットで NULL 値を含む JSON パスを書き込む処理を修正。 [#83923](https://github.com/ClickHouse/ClickHouse/pull/83923) ([Pavel Kruglov](https://github.com/Avogar)). -* Date から DateTime64 へのキャスト時に、2106-02-07 より大きな値がオーバーフローする問題を修正しました。 [#83982](https://github.com/ClickHouse/ClickHouse/pull/83982) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* 常に `filesystem_prefetches_limit` を適用するようにしました(`MergeTreePrefetchedReadPool` のみの場合ではなく)。 [#83999](https://github.com/ClickHouse/ClickHouse/pull/83999) ([Azat Khuzhin](https://github.com/azat)). -* `MATERIALIZE COLUMN` クエリにより、まれに `checksums.txt` に想定外のファイルが含まれ、最終的にデータパーツが detached されてしまうバグを修正。[#84007](https://github.com/ClickHouse/ClickHouse/pull/84007) ([alesapin](https://github.com/alesapin)). -* 一方の列が `LowCardinality` 型で、もう一方が定数である場合に、不等号条件で JOIN を実行すると発生していた論理エラー `Expected single dictionary argument for function` を修正しました。 [#81779](https://github.com/ClickHouse/ClickHouse/issues/81779) をクローズ。 [#84019](https://github.com/ClickHouse/ClickHouse/pull/84019)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 構文ハイライトを有効にした対話モードでの使用時に発生していた clickhouse client のクラッシュを修正。 [#84025](https://github.com/ClickHouse/ClickHouse/pull/84025) ([Bharat Nallan](https://github.com/bharatnc)). -* クエリ条件キャッシュを再帰 CTE と併用した場合に誤った結果が返される問題を修正しました(issue [#81506](https://github.com/ClickHouse/ClickHouse/issues/81506))。[#84026](https://github.com/ClickHouse/ClickHouse/pull/84026)([zhongyuankai](https://github.com/zhongyuankai))。 -* パーツの定期リフレッシュでの例外処理を適切に行うようにしました。 [#84083](https://github.com/ClickHouse/ClickHouse/pull/84083) ([Azat Khuzhin](https://github.com/azat)). -* 等価条件のオペランドの型が異なる場合や定数を参照している場合に、フィルタが JOIN 条件へマージされる処理を修正しました。 [#83432](https://github.com/ClickHouse/ClickHouse/issues/83432) を修正。 [#84145](https://github.com/ClickHouse/ClickHouse/pull/84145)([Dmitry Novik](https://github.com/novikd))。 -* テーブルにプロジェクションが存在し、`lightweight_mutation_projection_mode = 'rebuild'` が設定されている状態で、ユーザーがテーブル内の任意のブロックからすべての行を削除する軽量な削除を実行した場合に、まれに発生する ClickHouse のクラッシュを修正。[#84158](https://github.com/ClickHouse/ClickHouse/pull/84158) ([alesapin](https://github.com/alesapin)). -* バックグラウンドのキャンセルチェック用スレッドが原因のデッドロックを修正しました。 [#84203](https://github.com/ClickHouse/ClickHouse/pull/84203) ([Antonio Andelic](https://github.com/antonio2368)). -* 不正な `WINDOW` 定義に対して無限再帰的な解析が行われる問題を修正。[#83131](https://github.com/ClickHouse/ClickHouse/issues/83131) を修正。[#84242](https://github.com/ClickHouse/ClickHouse/pull/84242)([Dmitry Novik](https://github.com/novikd))。 -* Bech32 のエンコードおよびデコードが誤動作する原因となっていたバグを修正しました。このバグは、テストに使用していたアルゴリズムのオンライン実装にも同じ問題があったため、当初は検出されませんでした。[#84257](https://github.com/ClickHouse/ClickHouse/pull/84257)([George Larionov](https://github.com/george-larionov))。 -* `array()` 関数における空タプルの誤った生成を修正しました。これにより [#84202](https://github.com/ClickHouse/ClickHouse/issues/84202) の問題が解決されます。 [#84297](https://github.com/ClickHouse/ClickHouse/pull/84297) ([Amos Bird](https://github.com/amosbird))。 -* 並列レプリカを使用し、複数の INNER 結合の後に RIGHT 結合が続くクエリで発生していた `LOGICAL_ERROR` を修正しました。このようなクエリでは並列レプリカを使用しないでください。[#84299](https://github.com/ClickHouse/ClickHouse/pull/84299) ([Vladimir Cherkasov](https://github.com/vdimir))。 -* 以前は、フィルターを通過したかどうかを判定する際に、`set` インデックスが `Nullable` カラムを考慮していませんでした(issue [#75485](https://github.com/ClickHouse/ClickHouse/issues/75485))。[#84305](https://github.com/ClickHouse/ClickHouse/pull/84305)([Elmi Ahmadov](https://github.com/ahmadov))。 -* ClickHouse は、テーブルタイプが小文字で指定されている場合でも Glue カタログからテーブルを読み取れるようになりました。 [#84316](https://github.com/ClickHouse/ClickHouse/pull/84316) ([alesapin](https://github.com/alesapin)). -* JOIN やサブクエリがある場合は、テーブル関数を対応する cluster バージョンに置き換えないでください。[#84335](https://github.com/ClickHouse/ClickHouse/pull/84335) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* `IAccessStorage` における logger の使用方法を修正。 [#84365](https://github.com/ClickHouse/ClickHouse/pull/84365) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* テーブル内のすべてのカラムを更新する軽量更新で発生していた論理エラーを修正しました。 [#84380](https://github.com/ClickHouse/ClickHouse/pull/84380) ([Anton Popov](https://github.com/CurtizJ))。 -* Codec `DoubleDelta` は、数値型のカラムにのみ適用できるようになりました。特に、`FixedString` カラムはもはや `DoubleDelta` を使用して圧縮することはできません([#80220](https://github.com/ClickHouse/ClickHouse/issues/80220) の修正)。[#84383](https://github.com/ClickHouse/ClickHouse/pull/84383)([Jimmy Aguilar Mena](https://github.com/Ergus))。 -* `MinMax` インデックスの評価時に、NaN 値との比較で正しい範囲が使用されていませんでした。 [#84386](https://github.com/ClickHouse/ClickHouse/pull/84386) ([Elmi Ahmadov](https://github.com/ahmadov)). -* 遅延マテリアライズを用いた Variant 列の読み取りを修正。 [#84400](https://github.com/ClickHouse/ClickHouse/pull/84400) ([Pavel Kruglov](https://github.com/Avogar)). -* `zoutofmemory` をハードウェアエラーとして扱うようにする。そうしないと論理エラーがスローされます。詳細は [https://github.com/clickhouse/clickhouse-core-incidents/issues/877](https://github.com/clickhouse/clickhouse-core-incidents/issues/877) を参照してください。 [#84420](https://github.com/ClickHouse/ClickHouse/pull/84420) ([Han Fei](https://github.com/hanfei1991))。 -* サーバー設定 `allow_no_password` を 0 に変更した後に、`no_password` で作成されたユーザーがログインを試みると発生していたサーバークラッシュを修正しました。 [#84426](https://github.com/ClickHouse/ClickHouse/pull/84426) ([Shankar Iyer](https://github.com/shankar-iyer)). -* Keeper のチェンジログへの順序が前後する書き込みを修正しました。以前は、チェンジログへの書き込みが処理中の状態で残っている一方で、ロールバックによって出力先ファイルが並行して変更される可能性がありました。これによりログが不整合になり、データ損失が発生するおそれがありました。 [#84434](https://github.com/ClickHouse/ClickHouse/pull/84434) ([Antonio Andelic](https://github.com/antonio2368))。 -* これにより、テーブルからすべての TTL 設定が削除された場合、MergeTree は TTL に関連する処理を一切行わなくなります。 [#84441](https://github.com/ClickHouse/ClickHouse/pull/84441) ([alesapin](https://github.com/alesapin)). -* LIMIT 付きの並列分散 INSERT SELECT が許可されていましたが、本来これは不正であり、対象テーブルでデータの重複を招いていました。 [#84477](https://github.com/ClickHouse/ClickHouse/pull/84477) ([Igor Nikonov](https://github.com/devcrafter)). -* データレイクでの仮想カラムを用いたファイルプルーニングを修正。 [#84520](https://github.com/ClickHouse/ClickHouse/pull/84520) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* RocksDB ストレージを使用する Keeper でのメモリリークを修正(イテレータが破棄されていなかった)。 [#84523](https://github.com/ClickHouse/ClickHouse/pull/84523) ([Azat Khuzhin](https://github.com/azat)). -* ALTER MODIFY ORDER BY がソートキーに含まれる TTL カラムを検証していなかった問題を修正しました。TTL カラムが ALTER 操作時に ORDER BY 句で使用された場合には、テーブル破損の可能性を防ぐため、現在は正しく拒否されるようになりました。 [#84536](https://github.com/ClickHouse/ClickHouse/pull/84536) ([xiaohuanlin](https://github.com/xiaohuanlin)). -* 互換性のため、`allow_experimental_delta_kernel_rs` の 25.5 以前での値を `false` に変更。 [#84587](https://github.com/ClickHouse/ClickHouse/pull/84587) ([Kseniia Sumarokova](https://github.com/kssenii)). -* マニフェストファイルからスキーマを取得することをやめ、各スナップショットごとに関連するスキーマを個別に保存するようにしました。各データファイルについて、そのファイルに対応するスナップショットから関連するスキーマを推論します。以前の動作は、status が existing のエントリを含むマニフェストファイルに関する Iceberg 仕様に違反していました。 [#84588](https://github.com/ClickHouse/ClickHouse/pull/84588) ([Daniil Ivanik](https://github.com/divanik))。 -* Keeper 設定 `rotate_log_storage_interval = 0` により ClickHouse がクラッシュする不具合を修正しました (issue [#83975](https://github.com/ClickHouse/ClickHouse/issues/83975))。[#84637](https://github.com/ClickHouse/ClickHouse/pull/84637) ([George Larionov](https://github.com/george-larionov))。 -* S3Queue の論理エラー「Table is already registered」を修正。[#84433](https://github.com/ClickHouse/ClickHouse/issues/84433) をクローズ。[https://github.com/ClickHouse/ClickHouse/pull/83530](https://github.com/ClickHouse/ClickHouse/pull/83530) により発生した不具合。[#84677](https://github.com/ClickHouse/ClickHouse/pull/84677)([Kseniia Sumarokova](https://github.com/kssenii))。 -* RefreshTask で 'view' から zookeeper を取得する際に 'mutex' をロックするようにした。 [#84699](https://github.com/ClickHouse/ClickHouse/pull/84699) ([Tuan Pham Anh](https://github.com/tuanpach)). -* lazy columns を外部ソートと併用した場合に `CORRUPTED_DATA` エラーが発生する問題を修正。 [#84738](https://github.com/ClickHouse/ClickHouse/pull/84738) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* `DeltaLake` ストレージにおける delta-kernel 使用時のカラムプルーニングを修正。[#84543](https://github.com/ClickHouse/ClickHouse/issues/84543) をクローズ。[#84745](https://github.com/ClickHouse/ClickHouse/pull/84745)([Kseniia Sumarokova](https://github.com/kssenii))。 -* ストレージ DeltaLake の delta-kernel で認証情報を更新しました。 [#84751](https://github.com/ClickHouse/ClickHouse/pull/84751) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 接続障害発生後に余分な内部バックアップが開始されてしまう問題を修正。 [#84755](https://github.com/ClickHouse/ClickHouse/pull/84755) ([Vitaly Baranov](https://github.com/vitlibar)). -* 遅延しているリモートソースをクエリした際に、ベクターの範囲外アクセスが発生する可能性があった問題を修正しました。 [#84820](https://github.com/ClickHouse/ClickHouse/pull/84820) ([George Larionov](https://github.com/george-larionov)). -* `ngram` および `no_op` トークナイザー使用時に、空の入力トークンによって(実験的な)テキストインデックスがクラッシュしなくなりました。 [#84849](https://github.com/ClickHouse/ClickHouse/pull/84849) ([Robert Schulze](https://github.com/rschu1ze)). -* `ReplacingMergeTree` および `CollapsingMergeTree` エンジンを使用するテーブルに対する軽量更新 (lightweight updates) の不具合を修正しました。 [#84851](https://github.com/ClickHouse/ClickHouse/pull/84851) ([Anton Popov](https://github.com/CurtizJ)). -* ObjectQueue エンジンを使用するテーブルですべての設定がテーブルメタデータに正しく保存されるようにしました。 [#84860](https://github.com/ClickHouse/ClickHouse/pull/84860) ([Antonio Andelic](https://github.com/antonio2368)). -* Keeper が返すウォッチ数の合計値を修正。 [#84890](https://github.com/ClickHouse/ClickHouse/pull/84890) ([Antonio Andelic](https://github.com/antonio2368)). -* 25.7 より前のバージョンのサーバー上で作成された `ReplicatedMergeTree` エンジンのテーブルに対する軽量な更新を修正しました。 [#84933](https://github.com/ClickHouse/ClickHouse/pull/84933) ([Anton Popov](https://github.com/CurtizJ)). -* `ALTER TABLE ... REPLACE PARTITION` クエリ実行後に、非レプリケートの `MergeTree` エンジンを使用するテーブルに対する軽量更新が正しく動作しない問題を修正しました。 [#84941](https://github.com/ClickHouse/ClickHouse/pull/84941) ([Anton Popov](https://github.com/CurtizJ)). -* クエリ内で真偽値リテラルと整数リテラルの列名が衝突しないよう、真偽値リテラルの列名生成で "1"/"0" ではなく "true"/"false" を使用するよう修正しました。 [#84945](https://github.com/ClickHouse/ClickHouse/pull/84945) ([xiaohuanlin](https://github.com/xiaohuanlin)). -* バックグラウンドスケジュールプールおよびエグゼキュータでのメモリトラッキングのずれを修正。 [#84946](https://github.com/ClickHouse/ClickHouse/pull/84946) ([Azat Khuzhin](https://github.com/azat)). -* Merge テーブルエンジンにおけるソートの不整合が発生し得る問題を修正します。 [#85025](https://github.com/ClickHouse/ClickHouse/pull/85025) ([Xiaozhe Yu](https://github.com/wudidapaopao)). -* DiskEncrypted 向けに未実装だった API を実装。 [#85028](https://github.com/ClickHouse/ClickHouse/pull/85028) ([Azat Khuzhin](https://github.com/azat)). -* 分散コンテキストで相関サブクエリが使用されている場合にクラッシュを回避するチェックを追加しました。[#82205](https://github.com/ClickHouse/ClickHouse/issues/82205) を修正します。[#85030](https://github.com/ClickHouse/ClickHouse/pull/85030)([Dmitry Novik](https://github.com/novikd))。 -* Iceberg は、`SELECT` クエリ間で関連するスナップショットバージョンをキャッシュせず、常にその都度スナップショットを正しく解決するようになりました。以前に Iceberg スナップショットをキャッシュしようとした試みは、タイムトラベル機能を使用する Iceberg テーブルで問題を引き起こしていました。 [#85038](https://github.com/ClickHouse/ClickHouse/pull/85038) ([Daniil Ivanik](https://github.com/divanik))。 -* `AzureIteratorAsync` における二重解放の不具合を修正しました。[#85064](https://github.com/ClickHouse/ClickHouse/pull/85064) ([Nikita Taranov](https://github.com/nickitat))。 -* JWT で認証されるユーザーを作成しようとした際のエラーメッセージを改善。 [#85072](https://github.com/ClickHouse/ClickHouse/pull/85072) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* `ReplicatedMergeTree` におけるパッチパーツのクリーンアップ処理を修正しました。以前は、パッチパーツをマテリアライズするマージ済みまたはミューテーション済みパーツが別のレプリカからダウンロードされるまで、軽量な UPDATE の結果が一時的にレプリカ上で見えない場合がありました。 [#85121](https://github.com/ClickHouse/ClickHouse/pull/85121) ([Anton Popov](https://github.com/CurtizJ)). -* 型が異なる場合に mv で発生する illegal_type_of_argument エラーを修正。 [#85135](https://github.com/ClickHouse/ClickHouse/pull/85135) ([Sema Checherinda](https://github.com/CheSema)). -* delta-kernel 実装におけるセグメンテーションフォルトを修正。 [#85160](https://github.com/ClickHouse/ClickHouse/pull/85160) ([Kseniia Sumarokova](https://github.com/kssenii)). -* メタデータファイルの移動に長時間を要する場合のレプリケーテッドデータベースの復旧処理を修正。[#85177](https://github.com/ClickHouse/ClickHouse/pull/85177) ([Tuan Pham Anh](https://github.com/tuanpach))。 -* `additional_table_filters expression` 設定内の `IN (subquery)` における `Not-ready Set` の問題を修正。 [#85210](https://github.com/ClickHouse/ClickHouse/pull/85210) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* SYSTEM DROP REPLICA クエリの実行中に行われる不要な `getStatus()` 呼び出しを削除しました。バックグラウンドでテーブルが削除されている際に、`Shutdown for storage is called` という例外がスローされるケースを修正しました。 [#85220](https://github.com/ClickHouse/ClickHouse/pull/85220) ([Nikolay Degterinsky](https://github.com/evillique))。 -* `DeltaLake` エンジンの delta-kernel 実装におけるレースコンディションを修正。 [#85221](https://github.com/ClickHouse/ClickHouse/pull/85221) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* `DeltaLake` エンジンで delta-kernel を無効化した状態でのパーティションデータの読み取りを修正しました。これは 25.7 で動作しなくなっていました([https://github.com/ClickHouse/ClickHouse/pull/81136](https://github.com/ClickHouse/ClickHouse/pull/81136))。[#85223](https://github.com/ClickHouse/ClickHouse/pull/85223)([Kseniia Sumarokova](https://github.com/kssenii))。 -* CREATE OR REPLACE クエリおよび RENAME クエリに、これまで行われていなかったテーブル名の長さチェックを追加しました。 [#85326](https://github.com/ClickHouse/ClickHouse/pull/85326) ([Michael Kolupaev](https://github.com/al13n321)). -* DEFINER が削除されている場合に、Replicated データベースの新しいレプリカ上で RMV を作成できない問題を修正しました。 [#85327](https://github.com/ClickHouse/ClickHouse/pull/85327) ([Nikolay Degterinsky](https://github.com/evillique)). -* 複合型の Iceberg への書き込みを修正。[#85330](https://github.com/ClickHouse/ClickHouse/pull/85330) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* 複合型に対する下限値および上限値の書き込みはサポートされていません。 [#85332](https://github.com/ClickHouse/ClickHouse/pull/85332) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* Distributed テーブルまたは remote テーブル関数経由でオブジェクトストレージ関連関数から読み取る際の論理エラーを修正しました。修正対象: [#84658](https://github.com/ClickHouse/ClickHouse/issues/84658)、[#85173](https://github.com/ClickHouse/ClickHouse/issues/85173)、[#52022](https://github.com/ClickHouse/ClickHouse/issues/52022)。[#85359](https://github.com/ClickHouse/ClickHouse/pull/85359)([alesapin](https://github.com/alesapin))。 -* 壊れたプロジェクションを含むパーツのバックアップ処理を修正。 [#85362](https://github.com/ClickHouse/ClickHouse/pull/85362) ([Antonio Andelic](https://github.com/antonio2368)). -* `_part_offset` カラムが安定するまでは、リリースにおいてプロジェクションで使用できないようにしました。 [#85372](https://github.com/ClickHouse/ClickHouse/pull/85372) ([Sema Checherinda](https://github.com/CheSema)). -* JSON に対する ALTER UPDATE 時のクラッシュおよびデータ破損を修正。 [#85383](https://github.com/ClickHouse/ClickHouse/pull/85383) ([Pavel Kruglov](https://github.com/Avogar)). -* 逆順読み取りによる最適化を使用する並列レプリカのクエリで、誤った結果が返されることがありました。 [#85406](https://github.com/ClickHouse/ClickHouse/pull/85406) ([Igor Nikonov](https://github.com/devcrafter)). -* String のデシリアライズ中に `MEMORY_LIMIT_EXCEEDED` が発生した場合の、潜在的な未定義動作(クラッシュ)を修正。 [#85440](https://github.com/ClickHouse/ClickHouse/pull/85440) ([Azat Khuzhin](https://github.com/azat)). -* 誤っていた KafkaAssignedPartitions および KafkaConsumersWithAssignment メトリクスを修正。[#85494](https://github.com/ClickHouse/ClickHouse/pull/85494)([Ilya Golshtein](https://github.com/ilejn))。 -* PREWHERE(明示的指定・自動適用のいずれの場合も)使用時に、処理済みバイト数の統計が過小に計上される問題を修正。 [#85495](https://github.com/ClickHouse/ClickHouse/pull/85495) ([Michael Kolupaev](https://github.com/al13n321)). -* S3 リクエストレート低下時の早期リターン条件を修正しました。リトライ可能なエラーにより全スレッドが一時停止されている場合のスローダウン動作を有効にする際に、`s3_slow_all_threads_after_network_error` と `backup_slow_all_threads_after_retryable_s3_error` の両方が true であることを必須とするのではなく、いずれか一方が true であればよいように変更しました。 [#85505](https://github.com/ClickHouse/ClickHouse/pull/85505) ([Julia Kartseva](https://github.com/jkartseva)). -* このPRは、REST カタログを介して Iceberg テーブルをクエリするときのメタデータ解決処理を修正します。... [#85531](https://github.com/ClickHouse/ClickHouse/pull/85531) ([Saurabh Kumar Ojha](https://github.com/saurabhojha)). -* `log_comment` または `insert_deduplication_token` の設定を変更する非同期 INSERT において、まれにクラッシュする問題を修正しました。 [#85540](https://github.com/ClickHouse/ClickHouse/pull/85540) ([Anton Popov](https://github.com/CurtizJ)). -* HTTP で multipart/form-data を使用した場合、date_time_input_format などのパラメータが無視されていました。 [#85570](https://github.com/ClickHouse/ClickHouse/pull/85570) ([Sema Checherinda](https://github.com/CheSema))。 -* icebergS3Cluster および icebergAzureCluster テーブル関数におけるシークレット情報のマスキングを修正しました。 [#85658](https://github.com/ClickHouse/ClickHouse/pull/85658) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). -* `JSONExtract` で JSON の数値を Decimal 型に変換する際に発生していた精度損失を修正しました。これにより、JSON の数値は浮動小数点の丸め誤差を避けつつ、元の10進表現を正確に保持できるようになりました。 [#85665](https://github.com/ClickHouse/ClickHouse/pull/85665) ([ssive7b](https://github.com/ssive7b))。 -* `DROP COLUMN` の後、同じ `ALTER` 文内で `COMMENT COLUMN IF EXISTS` を使用した際に発生していた `LOGICAL_ERROR` を修正しました。これにより、同じ文の中で列が削除されている場合、`IF EXISTS` 句がコメント操作を正しくスキップするようになりました。 [#85688](https://github.com/ClickHouse/ClickHouse/pull/85688) ([xiaohuanlin](https://github.com/xiaohuanlin)). -* Delta Lake のキャッシュからの読み取り回数を修正。 [#85704](https://github.com/ClickHouse/ClickHouse/pull/85704) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 長い文字列に対する CoalescingMergeTree のセグメンテーションフォルトを修正。これにより [#84582](https://github.com/ClickHouse/ClickHouse/issues/84582) がクローズされます。 [#85709](https://github.com/ClickHouse/ClickHouse/pull/85709) ([Konstantin Vedernikov](https://github.com/scanhex12))。 -* Iceberg 書き込みでメタデータのタイムスタンプを更新。[#85711](https://github.com/ClickHouse/ClickHouse/pull/85711)([Konstantin Vedernikov](https://github.com/scanhex12))。 -* `distributed_depth` を *Cluster 関数* の指標として使用するのは誤りであり、データが重複する可能性があります。代わりに `client_info.collaborate_with_initiator` を使用してください。 [#85734](https://github.com/ClickHouse/ClickHouse/pull/85734) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Spark は position delete ファイルを読み込めません。 [#85762](https://github.com/ClickHouse/ClickHouse/pull/85762) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* 非同期ログ出力のリファクタリング([#85105](https://github.com/ClickHouse/ClickHouse/issues/85105))後の send_logs_source_regexp を修正。[#85797](https://github.com/ClickHouse/ClickHouse/pull/85797)([Azat Khuzhin](https://github.com/azat))。 -* MEMORY_LIMIT_EXCEEDED エラー発生時に、update_field を使用する辞書において発生し得る不整合を修正しました。 [#85807](https://github.com/ClickHouse/ClickHouse/pull/85807) ([Azat Khuzhin](https://github.com/azat)). -* `Distributed` 宛先テーブルに対する並列分散 `INSERT SELECT` クエリにおいて、`WITH` 句からのグローバル定数をサポートしました。以前は、このクエリで `Unknown expression identifier` エラーがスローされる可能性がありました。 [#85811](https://github.com/ClickHouse/ClickHouse/pull/85811) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* `deltaLakeAzure`、`deltaLakeCluster`、`icebergS3Cluster`、`icebergAzureCluster` の認証情報をマスクするようにしました。 [#85889](https://github.com/ClickHouse/ClickHouse/pull/85889) ([Julian Maicher](https://github.com/jmaicher)). -* `DatabaseReplicated` 使用時に `CREATE ... AS (SELECT * FROM s3Cluster(...))` を実行しようとした際に発生する論理エラーを修正しました。 [#85904](https://github.com/ClickHouse/ClickHouse/pull/85904) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* `url()` テーブル関数によって行われる HTTP リクエストについて、標準以外のポートへアクセスする際に Host ヘッダーにポート番号が正しく含まれるように修正しました。これにより、開発環境で一般的なカスタムポートで動作する MinIO などの S3 互換サービスに対して事前署名付き URL を使用する場合に発生していた認証エラーが解消されます([#85898](https://github.com/ClickHouse/ClickHouse/issues/85898) を修正)。[#85921](https://github.com/ClickHouse/ClickHouse/pull/85921)([Tom Quist](https://github.com/tomquist))。 -* これで、Unity Catalog は Delta 以外のテーブルの場合に、異常なデータ型を含むスキーマを無視するようになります。[#85699](https://github.com/ClickHouse/ClickHouse/issues/85699) の問題を修正。[#85950](https://github.com/ClickHouse/ClickHouse/pull/85950)([alesapin](https://github.com/alesapin))。 -* Iceberg におけるフィールドの NULL 許容設定を修正。 [#85977](https://github.com/ClickHouse/ClickHouse/pull/85977) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* `Replicated` データベースのリカバリにおけるバグを修正しました。テーブル名に `%` 記号が含まれている場合、リカバリ時に異なる名前のテーブルが再作成されてしまう可能性がありました。 [#85987](https://github.com/ClickHouse/ClickHouse/pull/85987) ([Alexander Tokmakov](https://github.com/tavplubix)). -* 空の `Memory` テーブルを復元する際に発生する `BACKUP_ENTRY_NOT_FOUND` エラーが原因で、バックアップの復元が失敗する問題を修正。[#86012](https://github.com/ClickHouse/ClickHouse/pull/86012) ([Julia Kartseva](https://github.com/jkartseva))。 -* Distributed テーブルで `sharding_key` を ALTER する際の検証を追加しました。以前は誤った ALTER によりテーブル定義が壊れ、サーバーの再起動が必要になる場合がありました。 [#86015](https://github.com/ClickHouse/ClickHouse/pull/86015) ([Nikolay Degterinsky](https://github.com/evillique)). -* 空の Iceberg 削除ファイルを作成しないようにしました。 [#86061](https://github.com/ClickHouse/ClickHouse/pull/86061) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* 大きな設定値が原因で S3Queue テーブルやレプリカの再起動が失敗する問題を修正。 [#86074](https://github.com/ClickHouse/ClickHouse/pull/86074) ([Nikolay Degterinsky](https://github.com/evillique)). - -#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement} - -* デフォルトで、S3 を使用するテストに暗号化ディスクを使用するようにしました。 [#59898](https://github.com/ClickHouse/ClickHouse/pull/59898) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* 統合テストで、ストリップされていないデバッグシンボルを取得するために `clickhouse` バイナリを使用するようにしました。 [#83779](https://github.com/ClickHouse/ClickHouse/pull/83779) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). -* 内部で利用している libxml2 を 2.14.4 から 2.14.5 に更新しました。 [#84230](https://github.com/ClickHouse/ClickHouse/pull/84230) ([Robert Schulze](https://github.com/rschu1ze)). -* 内部で利用している curl を 8.14.0 から 8.15.0 に更新しました。 [#84231](https://github.com/ClickHouse/ClickHouse/pull/84231) ([Robert Schulze](https://github.com/rschu1ze)). -* CI でキャッシュに使用するメモリを削減し、キャッシュエビクションに関するテストを改善しました。 [#84676](https://github.com/ClickHouse/ClickHouse/pull/84676) ([alesapin](https://github.com/alesapin)). - -### ClickHouse リリース 25.7、2025-07-24 {#257} - -#### 後方互換性のない変更 {#backward-incompatible-change} - -* `extractKeyValuePairs` 関数の変更: 引数 `unexpected_quoting_character_strategy` を新たに導入しました。これは、クオートされていないキーや値を読み取っているときに、想定外の `quoting_character` が見つかった場合の挙動を制御します。値として指定できるのは `invalid`、`accept`、`promote` のいずれかです。`invalid` はそのキーを破棄し、キー待ち状態に戻ります。`accept` はそれをキーの一部として扱います。`promote` は直前の文字を破棄し、クオートされたキーとしてパースを開始します。加えて、クオートされた値をパースした後は、ペア区切り文字が見つかった場合にのみ次のキーをパースします。 [#80657](https://github.com/ClickHouse/ClickHouse/pull/80657) ([Arthur Passos](https://github.com/arthurpassos)). -* `countMatches` 関数でゼロバイトのマッチをサポートしました。従来の動作を維持したいユーザーは、設定 `count_matches_stop_at_empty_match` を有効にできます。 [#81676](https://github.com/ClickHouse/ClickHouse/pull/81676) ([Elmi Ahmadov](https://github.com/ahmadov)). -* BACKUP の生成時に、専用のサーバー設定(`max_backup_bandwidth_for_server`、`max_mutations_bandwidth_for_server`、`max_merges_bandwidth_for_server`)に加えて、ローカル用(`max_local_read_bandwidth_for_server` と `max_local_write_bandwidth_for_server`)およびリモート用(`max_remote_read_network_bandwidth_for_server` と `max_remote_write_network_bandwidth_for_server`)のサーバー全体のスロットラを使用するようにしました。 [#81753](https://github.com/ClickHouse/ClickHouse/pull/81753) ([Sergei Trifonov](https://github.com/serxa)). -* 挿入可能なカラムを持たないテーブルの作成を禁止しました。 [#81835](https://github.com/ClickHouse/ClickHouse/pull/81835) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* アーカイブ内のファイル単位で cluster 関数を並列実行するようにしました。以前のバージョンでは、zip、tar、7z などのアーカイブ全体が 1 単位の処理対象でした。新しい設定 `cluster_function_process_archive_on_multiple_nodes` を追加し、デフォルト値は `true` です。`true` に設定すると、cluster 関数でアーカイブを処理する際のパフォーマンスが向上します。互換性維持および、以前のバージョンでアーカイブ付きの cluster 関数を使用している場合に 25.7+ へのアップグレード中のエラーを回避するためには、`false` に設定する必要があります。 [#82355](https://github.com/ClickHouse/ClickHouse/pull/82355) ([Kseniia Sumarokova](https://github.com/kssenii)). -* `SYSTEM RESTART REPLICAS` クエリが、当該データベースへのアクセス権がない場合でも Lazy データベース内のテーブルをウェイクアップしており、そのテーブルが同時に DROP されている最中に発生していました。注: 現在は `SYSTEM RESTART REPLICAS` は、`SHOW TABLES` の権限を持つデータベース内のレプリカのみを再起動します。これは自然な挙動です。 [#83321](https://github.com/ClickHouse/ClickHouse/pull/83321) ([Alexey Milovidov](https://github.com/alexey-milovidov)). - -#### 新機能 {#new-feature} - -* `MergeTree` ファミリーのテーブルで論理更新(lightweight update)がサポートされました。論理更新は新しい構文 `UPDATE <table> SET col1 = val1, col2 = val2, ... WHERE <condition>` で使用できます。さらに、論理更新を利用した論理削除(lightweight delete)の実装が追加されました。`lightweight_delete_mode = 'lightweight_update'` を設定すると有効になります。 [#82004](https://github.com/ClickHouse/ClickHouse/pull/82004) ([Anton Popov](https://github.com/CurtizJ)). -* Iceberg スキーマの進化で複合型をサポートしました。 [#73714](https://github.com/ClickHouse/ClickHouse/pull/73714) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* Iceberg テーブルへの INSERT をサポートしました。 [#82692](https://github.com/ClickHouse/ClickHouse/pull/82692) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* Iceberg データファイルをフィールド ID に基づいて読み取るようにしました。これにより Iceberg との互換性が向上します。メタデータ内のフィールドは名前を変更しても、基盤となる Parquet ファイル内の別の名前にマッピングできます。この変更により [#83065](https://github.com/ClickHouse/ClickHouse/issues/83065) が解決されました。[#83653](https://github.com/ClickHouse/ClickHouse/pull/83653)([Konstantin Vedernikov](https://github.com/scanhex12))。 -* ClickHouse は Iceberg 向けの圧縮された `metadata.json` ファイルをサポートするようになりました。 [#70874](https://github.com/ClickHouse/ClickHouse/issues/70874) を修正しました。 [#81451](https://github.com/ClickHouse/ClickHouse/pull/81451)([alesapin](https://github.com/alesapin))。 -* Glue カタログで `TimestampTZ` をサポートするようにしました。これにより [#81654](https://github.com/ClickHouse/ClickHouse/issues/81654) が解決されました。[#83132](https://github.com/ClickHouse/ClickHouse/pull/83132) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* ClickHouse クライアントに AI 搭載の SQL 生成機能を追加しました。これにより、クエリ文字列の先頭に `??` を付けることで、自然言語による説明から SQL クエリを生成できるようになりました。OpenAI および Anthropic をプロバイダーとしてサポートし、自動スキーマ検出に対応しています。[#83314](https://github.com/ClickHouse/ClickHouse/pull/83314)([Kaushik Iska](https://github.com/iskakaushik))。 -* Geo 型を WKB 形式で出力するための関数を追加しました。 [#82935](https://github.com/ClickHouse/ClickHouse/pull/82935) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* ソース向けに `READ` と `WRITE` の 2 種類の新しいアクセス種別が導入され、ソースに関連するそれまでのすべてのアクセス種別は非推奨となりました。以前は `GRANT S3 ON *.* TO user` でしたが、現在は `GRANT READ, WRITE ON S3 TO user` となります。これにより、ソースに対する `READ` と `WRITE` の権限を分離して付与することも可能になります。例えば、`GRANT READ ON * TO user`、`GRANT WRITE ON S3 TO user` のように指定できます。この機能は設定 `access_control_improvements.enable_read_write_grants` によって制御され、デフォルトでは無効になっています。[#73659](https://github.com/ClickHouse/ClickHouse/pull/73659) ([pufit](https://github.com/pufit))。 -* NumericIndexedVector: ビットスライス方式の Roaring Bitmap 圧縮を基盤とする新しいベクターデータ構造で、構築・解析・要素ごとの算術演算のための 20 以上の関数を備えています。疎なデータに対するストレージ使用量を削減し、結合・フィルタリング・集約処理を高速化できます。[#70582](https://github.com/ClickHouse/ClickHouse/issues/70582) および T. Xiong と Y. Wang による VLDB 2024 掲載論文 [“Large-Scale Metric Computation in Online Controlled Experiment Platform”](https://arxiv.org/abs/2405.08411) を実装したものです。[#74193](https://github.com/ClickHouse/ClickHouse/pull/74193)([FriendLey](https://github.com/FriendLey))。 -* ワークロード設定 `max_waiting_queries` がサポートされるようになりました。クエリキューのサイズを制限するために使用できます。上限に達すると、それ以降のすべてのクエリは `SERVER_OVERLOADED` エラーで終了します。 [#81250](https://github.com/ClickHouse/ClickHouse/pull/81250) ([Oleg Doronin](https://github.com/dorooleg))。 -* 財務関数を追加: `financialInternalRateOfReturnExtended` (`XIRR`), `financialInternalRateOfReturn` (`IRR`), `financialNetPresentValueExtended` (`XNPV`), `financialNetPresentValue` (`NPV`)。[#81599](https://github.com/ClickHouse/ClickHouse/pull/81599)([Joanna Hulboj](https://github.com/jh0x))。 -* 2 つのポリゴンが交差しているかどうかを判定するための地理空間関数 `polygonsIntersectCartesian` および `polygonsIntersectSpherical` を追加。[#81882](https://github.com/ClickHouse/ClickHouse/pull/81882)([Paul Lamb](https://github.com/plamb))。 -* MergeTree ファミリーのテーブルで `_part_granule_offset` 仮想カラムをサポートしました。このカラムは、各行が所属するデータパーツ内でのグラニュール/マークの 0 ベースのインデックスを示します。これは [#79572](https://github.com/ClickHouse/ClickHouse/issues/79572) に対処するものです。[#82341](https://github.com/ClickHouse/ClickHouse/pull/82341)([Amos Bird](https://github.com/amosbird))。[#82341](https://github.com/ClickHouse/ClickHouse/pull/82341)([Amos Bird](https://github.com/amosbird)) -* sRGB および OkLCH カラー空間間で色を変換するための SQL 関数 `colorSRGBToOkLCH` および `colorOkLCHToSRGB` を追加しました。 [#83679](https://github.com/ClickHouse/ClickHouse/pull/83679) ([Fgrtue](https://github.com/Fgrtue)). -* `CREATE USER` クエリでユーザー名にパラメータを使用できるようにしました。 [#81387](https://github.com/ClickHouse/ClickHouse/pull/81387) ([Diskein](https://github.com/Diskein)). -* `system.formats` テーブルに、HTTP コンテンツタイプやスキーマ推論機能など、フォーマットに関する拡張情報が含まれるようになりました。 [#81505](https://github.com/ClickHouse/ClickHouse/pull/81505) ([Alexey Milovidov](https://github.com/alexey-milovidov)). - -#### 実験的機能 {#experimental-feature} - -* テキストインデックスを検索するための汎用ツールとして、関数 `searchAny` と `searchAll` を追加しました。[#80641](https://github.com/ClickHouse/ClickHouse/pull/80641) ([Elmi Ahmadov](https://github.com/ahmadov)). -* テキストインデックスで新しい `split` tokenizer をサポートしました。[#81752](https://github.com/ClickHouse/ClickHouse/pull/81752) ([Elmi Ahmadov](https://github.com/ahmadov)). -* `text` インデックスのデフォルトのインデックス粒度値を 64 に変更しました。これにより、社内ベンチマークにおける平均的なテストクエリの期待される性能が向上します。[#82162](https://github.com/ClickHouse/ClickHouse/pull/82162) ([Jimmy Aguilar Mena](https://github.com/Ergus)). -* 256 ビットのビットマップは状態の出辺ラベルを順序付きで保存しますが、出辺の状態自体はハッシュテーブル内に現れる順序でディスクに保存されます。そのため、ディスクから読み出す際に、あるラベルが誤った次の状態を指してしまう可能性がありました。[#82783](https://github.com/ClickHouse/ClickHouse/pull/82783) ([Elmi Ahmadov](https://github.com/ahmadov)). -* テキストインデックス内の FST ツリー BLOB に対して zstd 圧縮を有効化しました。[#83093](https://github.com/ClickHouse/ClickHouse/pull/83093) ([Elmi Ahmadov](https://github.com/ahmadov)). -* ベクトル類似性インデックスをベータ版に昇格しました。ベクトル類似性インデックスを利用するには、エイリアス設定 `enable_vector_similarity_index` を有効にする必要があります。[#83459](https://github.com/ClickHouse/ClickHouse/pull/83459) ([Robert Schulze](https://github.com/rschu1ze)). -* 実験的なゼロコピー複製に関連する実験的な `send_metadata` ロジックを削除しました。これは一度も使用されておらず、このコードをサポートしている人もいませんでした。さらに、これに関連するテストもまったく存在しなかったため、かなり前から壊れていた可能性が高いです。[#82508](https://github.com/ClickHouse/ClickHouse/pull/82508) ([alesapin](https://github.com/alesapin)). -* `StorageKafka2` を `system.kafka_consumers` に統合しました。[#82652](https://github.com/ClickHouse/ClickHouse/pull/82652) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* 統計情報に基づいて、複雑な CNF/DNF(例: `(a < 1 and a > 0) or b = 3`)を推定できるようにしました。[#82663](https://github.com/ClickHouse/ClickHouse/pull/82663) ([Han Fei](https://github.com/hanfei1991)). - -#### パフォーマンスの向上 {#performance-improvement} - -* 非同期ロギングを導入しました。ログが低速なデバイスに出力される場合でも、クエリ処理がブロックされなくなりました。[#82516](https://github.com/ClickHouse/ClickHouse/pull/82516) ([Raúl Marín](https://github.com/Algunenano))。キューに保持されるエントリ数の上限を設けました。[#83214](https://github.com/ClickHouse/ClickHouse/pull/83214) ([Raúl Marín](https://github.com/Algunenano))。 -* Parallel distributed INSERT SELECT は、INSERT SELECT が各シャードで独立して実行されるモードではデフォルトで有効になっています。`parallel_distributed_insert_select` 設定を参照してください。 [#83040](https://github.com/ClickHouse/ClickHouse/pull/83040) ([Igor Nikonov](https://github.com/devcrafter)). -* 集約クエリに、`Nullable` ではないカラムに対する単一の `count()` 関数のみが含まれている場合、ハッシュテーブルの走査時に集約ロジックが完全にインライン化されます。これにより、集約状態の割り当てや維持が不要となり、メモリ使用量と CPU オーバーヘッドが大幅に削減されます。これは [#81982](https://github.com/ClickHouse/ClickHouse/issues/81982) を部分的に解決するものです。[#82104](https://github.com/ClickHouse/ClickHouse/pull/82104)([Amos Bird](https://github.com/amosbird))。 -* `HashJoin` のパフォーマンスを最適化しました。典型的な、キー列が 1 つだけの場合にはハッシュマップに対する追加ループを削除し、さらに `null_map` および `join_mask` が常に `true` / `false` となるケースでは、それらのチェックも除去しました。 [#82308](https://github.com/ClickHouse/ClickHouse/pull/82308) ([Nikita Taranov](https://github.com/nickitat)). -* `-If` コンビネータに対する軽微な最適化。 [#78454](https://github.com/ClickHouse/ClickHouse/pull/78454) ([李扬](https://github.com/taiyang-li))。 -* ベクター類似性インデックスを使用したベクター検索クエリが、ストレージ読み取り回数と CPU 使用量の削減により、より低レイテンシで完了するようになりました。 [#79103](https://github.com/ClickHouse/ClickHouse/pull/79103) ([Shankar Iyer](https://github.com/shankar-iyer)). -* `filterPartsByQueryConditionCache` において `merge_tree_min_{rows,bytes}_for_seek` を考慮するようにし、インデックスを使ってフィルタリングする他のメソッドと動作を揃えました。 [#80312](https://github.com/ClickHouse/ClickHouse/pull/80312) ([李扬](https://github.com/taiyang-li))。 -* `TOTALS` ステップ以降のパイプラインをマルチスレッド化しました。 [#80331](https://github.com/ClickHouse/ClickHouse/pull/80331) ([UnamedRus](https://github.com/UnamedRus)). -* `Redis` および `KeeperMap` ストレージに対するキーによるフィルタリングを修正しました。 [#81833](https://github.com/ClickHouse/ClickHouse/pull/81833) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* 新しい設定 `min_joined_block_size_rows`(`min_joined_block_size_bytes` に類似、デフォルトは 65409)を追加し、JOIN の入力および出力ブロック(結合アルゴリズムが対応している場合)の最小ブロックサイズ(行数)を制御できるようにしました。小さいブロックはまとめられます。 [#81886](https://github.com/ClickHouse/ClickHouse/pull/81886) ([Nikita Taranov](https://github.com/nickitat))。 -* `ATTACH PARTITION` によって、もはやすべてのキャッシュがクリアされることはなくなりました。 [#82377](https://github.com/ClickHouse/ClickHouse/pull/82377) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 相関サブクエリに対して、同値類を利用して冗長な JOIN 操作を削除することで、生成される実行プランを最適化します。すべての相関列に対して等価な式が存在する場合、`query_plan_correlated_subqueries_use_substitution` 設定が有効になっていれば、`CROSS JOIN` は生成されません。[#82435](https://github.com/ClickHouse/ClickHouse/pull/82435)([Dmitry Novik](https://github.com/novikd))。 -* 関数 `EXISTS` の引数であると判断される相関サブクエリでは、必要な列のみを読み取るようにしました。 [#82443](https://github.com/ClickHouse/ClickHouse/pull/82443) ([Dmitry Novik](https://github.com/novikd)). -* クエリ解析中のクエリツリーの比較処理をわずかに高速化しました。 [#82617](https://github.com/ClickHouse/ClickHouse/pull/82617) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* ProfileEvents の Counter にアラインメントを追加し、false sharing を低減しました。 [#82697](https://github.com/ClickHouse/ClickHouse/pull/82697) ([Jiebin Sun](https://github.com/jiebinn)). -* [#82308](https://github.com/ClickHouse/ClickHouse/issues/82308) で行われた `null_map` と `JoinMask` の最適化が、複数の OR 条件を含む JOIN の場合にも適用されました。また、`KnownRowsHolder` データ構造も最適化されました。[#83041](https://github.com/ClickHouse/ClickHouse/pull/83041)([Nikita Taranov](https://github.com/nickitat))。 -* JOIN フラグには、フラグにアクセスするたびにハッシュを計算することを避けるため、プレーンな `std::vector` が使用されます。 [#83043](https://github.com/ClickHouse/ClickHouse/pull/83043) ([Nikita Taranov](https://github.com/nickitat)). -* `HashJoin` が `lazy` 出力モードを使用する場合、結果カラム用のメモリを事前に確保しないでください。これは、特に一致数が少ない場合には非効率的です。さらに、結合の完了後には正確な一致件数が分かるため、より正確に事前割り当てを行えます。 [#83304](https://github.com/ClickHouse/ClickHouse/pull/83304) ([Nikita Taranov](https://github.com/nickitat)). -* パイプライン構築時のポートヘッダーでのメモリコピーを最小化。元の[PR](https://github.com/ClickHouse/ClickHouse/pull/70105)は[heymind](https://github.com/heymind)によるもの。[#83381](https://github.com/ClickHouse/ClickHouse/pull/83381)([Raúl Marín](https://github.com/Algunenano))。 -* rocksdb ストレージ使用時の clickhouse-keeper の起動を改善しました。 [#83390](https://github.com/ClickHouse/ClickHouse/pull/83390) ([Antonio Andelic](https://github.com/antonio2368)). -* 高い同時実行負荷時のロック競合を減らすため、ロックを保持したままストレージスナップショットデータを作成しないようにしました。 [#83510](https://github.com/ClickHouse/ClickHouse/pull/83510) ([Duc Canh Le](https://github.com/canhld94)). -* パースエラーが発生しない場合にシリアライザを再利用することで、`ProtobufSingle` 入力フォーマットのパフォーマンスを向上しました。 [#83613](https://github.com/ClickHouse/ClickHouse/pull/83613) ([Eduard Karacharov](https://github.com/korowa)). -* 短いクエリを高速化するためのパイプライン構築処理のパフォーマンスを改善。 [#83631](https://github.com/ClickHouse/ClickHouse/pull/83631) ([Raúl Marín](https://github.com/Algunenano)). -* 短いクエリを高速化するため、`MergeTreeReadersChain::getSampleBlock` を最適化しました。 [#83875](https://github.com/ClickHouse/ClickHouse/pull/83875) ([Raúl Marín](https://github.com/Algunenano)). -* データカタログにおけるテーブル一覧の表示を、非同期リクエストにより高速化しました。 [#81084](https://github.com/ClickHouse/ClickHouse/pull/81084) ([alesapin](https://github.com/alesapin)). -* `s3_slow_all_threads_after_network_error` 設定が有効な場合、S3 の再試行メカニズムにジッターを導入しました。 [#81849](https://github.com/ClickHouse/ClickHouse/pull/81849) ([zoomxi](https://github.com/zoomxi)). - -#### 改善点 {#improvement} - -* 可読性を高めるため、括弧を複数の色で表示するようにしました。 [#82538](https://github.com/ClickHouse/ClickHouse/pull/82538) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* LIKE/REGEXP パターンを入力している際にメタ文字をハイライトするようにしました。これはすでに `clickhouse-format` および `clickhouse-client` の echo 出力では実装されていましたが、今回からコマンドプロンプトでも行われるようになりました。 [#82871](https://github.com/ClickHouse/ClickHouse/pull/82871) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* `clickhouse-format` におけるハイライトとクライアントの echo 出力におけるハイライトは、コマンドラインプロンプトでのハイライトと同様に動作します。 [#82874](https://github.com/ClickHouse/ClickHouse/pull/82874) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 現在、`plain_rewritable` ディスクをデータベースメタデータ用のディスクとして利用できるようになりました。データベースディスクとしてサポートするために、`plain_rewritable` に `moveFile` および `replaceFile` メソッドを実装しました。 [#79424](https://github.com/ClickHouse/ClickHouse/pull/79424) ([Tuan Pham Anh](https://github.com/tuanpach))。 -* `PostgreSQL`、`MySQL`、`DataLake` データベースのバックアップを許可しました。これらのデータベースのバックアップでは、データベース内のデータではなく定義のみが保存されます。 [#79982](https://github.com/ClickHouse/ClickHouse/pull/79982) ([Nikolay Degterinsky](https://github.com/evillique)). -* `allow_experimental_join_condition` の設定は、現在は常に許可されているため、非推奨としてマークされました。 [#80566](https://github.com/ClickHouse/ClickHouse/pull/80566) ([Vladimir Cherkasov](https://github.com/vdimir))。 -* ClickHouse の非同期メトリクスにプレッシャーメトリクスを追加。 [#80779](https://github.com/ClickHouse/ClickHouse/pull/80779) ([Xander Garbett](https://github.com/Garbett1)). -* マークキャッシュからのエビクションを追跡するためのメトリクス `MarkCacheEvictedBytes`、`MarkCacheEvictedMarks`、`MarkCacheEvictedFiles` を追加しました(issue [#60989](https://github.com/ClickHouse/ClickHouse/issues/60989))。[#80799](https://github.com/ClickHouse/ClickHouse/pull/80799)([Shivji Kumar Jha](https://github.com/shiv4289))。 -* Parquet の enum を、[仕様](https://github.com/apache/parquet-format/blob/master/LogicalTypes.md#enum) で規定されているとおりバイト配列として書き込めるようにしました。 [#81090](https://github.com/ClickHouse/ClickHouse/pull/81090) ([Arthur Passos](https://github.com/arthurpassos)). -* `DeltaLake` テーブルエンジンの改善: delta-kernel-rs には `ExpressionVisitor` API があり、この PR で実装されてパーティション列の式変換に適用されています(これは、従来コードで使用していた、delta-kernel-rs 側で非推奨となっていた古い方式を置き換えるものです)。将来的には、この `ExpressionVisitor` により、統計情報に基づくプルーニングや、いくつかの Delta Lake 独自機能も実装できるようになります。さらに、この変更の目的は、`DeltaLakeCluster` テーブルエンジンでのパーティションプルーニングをサポートすることです(パースされた式の結果である ActionsDAG はシリアライズされ、データパスとともにイニシエータから送信されます。というのも、この種のプルーニングに必要な情報はデータファイル一覧のメタ情報としてのみ利用可能であり、この処理はイニシエータだけが実行しますが、その情報は各リーディングサーバ上のデータに適用される必要があるためです)。[#81136](https://github.com/ClickHouse/ClickHouse/pull/81136)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 名前付きタプルのスーパータイプ導出時に、要素名を保持するようにしました。 [#81345](https://github.com/ClickHouse/ClickHouse/pull/81345) ([lgbo](https://github.com/lgbo-ustc)). -* StorageKafka2 で以前にコミットされたオフセットに依存しないように、消費済みメッセージを手動でカウントするようにしました。 [#81662](https://github.com/ClickHouse/ClickHouse/pull/81662) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* `clickhouse-keeper-utils` を追加しました。ClickHouse Keeper のデータを管理および分析するための新しいコマンドラインツールです。このツールでは、スナップショットやチェンジログからの状態のダンプ、チェンジログファイルの分析、特定のログ範囲の抽出が可能です。 [#81677](https://github.com/ClickHouse/ClickHouse/pull/81677) ([Antonio Andelic](https://github.com/antonio2368))。 -* 合計およびユーザーごとのネットワークスロットルは決してリセットされないようになり、`max_network_bandwidth_for_all_users` と `max_network_bandwidth_for_all_users` の制限値を超過しないことが保証されます。 [#81729](https://github.com/ClickHouse/ClickHouse/pull/81729) ([Sergei Trifonov](https://github.com/serxa))。 -* GeoParquet 形式での出力をサポートしました。 [#81784](https://github.com/ClickHouse/ClickHouse/pull/81784) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* 未完了のデータミューテーションの影響を現在受けているカラムを `RENAME COLUMN` でリネームしようとする `ALTER` ミューテーションは開始されないようになりました。 [#81823](https://github.com/ClickHouse/ClickHouse/pull/81823) ([Mikhail Artemenko](https://github.com/Michicosun)). -* `Connection` ヘッダーは、接続を維持すべきかが判明した時点で、ほかのヘッダー送信の最後に送信されるようになりました。 [#81951](https://github.com/ClickHouse/ClickHouse/pull/81951) ([Sema Checherinda](https://github.com/CheSema)). -* `listen_backlog`(デフォルト値 4096)に基づいて、TCP サーバーのキュー(デフォルト値 64)を調整しました。 [#82045](https://github.com/ClickHouse/ClickHouse/pull/82045) ([Azat Khuzhin](https://github.com/azat)). -* サーバーを再起動することなく `max_local_read_bandwidth_for_server` と `max_local_write_bandwidth_for_server` を動的にリロードできるようにしました。 [#82083](https://github.com/ClickHouse/ClickHouse/pull/82083) ([Kai Zhu](https://github.com/nauu)). -* `TRUNCATE TABLE system.warnings` を使用して `system.warnings` テーブルからすべての警告を削除できるようにするサポートを追加しました。 [#82087](https://github.com/ClickHouse/ClickHouse/pull/82087) ([Vladimir Cherkasov](https://github.com/vdimir))。 -* データレイククラスタ関数のパーティションプルーニングを修正。 [#82131](https://github.com/ClickHouse/ClickHouse/pull/82131) ([Kseniia Sumarokova](https://github.com/kssenii)). -* DeltaLakeCluster テーブル関数でパーティション分割されたデータを読み取る処理を修正しました。この PR ではクラスター関数のプロトコルバージョンを引き上げ、イニシエーターからレプリカへ追加情報を送信できるようにしています。この追加情報には、パーティション列を解析するために必要な delta-kernel の変換式(および将来的には生成列などの他の情報)が含まれます。 [#82132](https://github.com/ClickHouse/ClickHouse/pull/82132) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* `reinterpret` 関数は、固定サイズのデータ型 `T` を要素とする `Array(T)` への変換をサポートするようになりました(issue [#82621](https://github.com/ClickHouse/ClickHouse/issues/82621))。[#83399](https://github.com/ClickHouse/ClickHouse/pull/83399)([Shankar Iyer](https://github.com/shankar-iyer))。 -* Database Datalake が、よりわかりやすい例外をスローするようになりました。 [#81211](https://github.com/ClickHouse/ClickHouse/issues/81211) を修正しました。 [#82304](https://github.com/ClickHouse/ClickHouse/pull/82304) ([alesapin](https://github.com/alesapin))。 -* `HashJoin::needUsedFlagsForPerRightTableRow` が false を返すようにして、CROSS JOIN を改善しました。 [#82379](https://github.com/ClickHouse/ClickHouse/pull/82379) ([lgbo](https://github.com/lgbo-ustc)). -* Map型カラムを Array of Tuples として読み書きできるようにしました。 [#82408](https://github.com/ClickHouse/ClickHouse/pull/82408) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). -* `system.licenses` で [Rust](https://clickhouse.com/blog/rust) クレートのライセンスを一覧表示できるようにしました。 [#82440](https://github.com/ClickHouse/ClickHouse/pull/82440) ([Raúl Marín](https://github.com/Algunenano))。 -* `{uuid}` のようなマクロが、S3Queue テーブルエンジンの `keeper_path` 設定で使用できるようになりました。 [#82463](https://github.com/ClickHouse/ClickHouse/pull/82463) ([Nikolay Degterinsky](https://github.com/evillique)). -* Keeper の改良: changelog ファイルのディスク間での移動をバックグラウンドスレッドで行うようにしました。以前は、changelog を別のディスクに移動する際、移動が完了するまで Keeper 全体がブロックされていました。その結果、移動処理に長時間を要する場合(例: S3 ディスクへの移動)にはパフォーマンスが低下していました。[#82485](https://github.com/ClickHouse/ClickHouse/pull/82485) ([Antonio Andelic](https://github.com/antonio2368))。 -* Keeper の改良: 新しい設定 `keeper_server.cleanup_old_and_ignore_new_acl` を追加しました。有効化すると、すべてのノードで既存の ACL が消去され、新規リクエストに対する ACL は無視されます。ノードから ACL を完全に削除することが目的の場合は、新しいスナップショットが作成されるまでこの設定を有効のままにしておくことが重要です。 [#82496](https://github.com/ClickHouse/ClickHouse/pull/82496) ([Antonio Andelic](https://github.com/antonio2368)). -* S3Queue テーブルエンジンを使用するテーブルでのストリーミングを無効化する新しいサーバー設定 `s3queue_disable_streaming` を追加しました。この設定はサーバーの再起動なしに変更できます。 [#82515](https://github.com/ClickHouse/ClickHouse/pull/82515) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* ファイルシステムキャッシュの動的リサイズ機能をリファクタリングし、デバッグや調査に役立つログをさらに追加しました。 [#82556](https://github.com/ClickHouse/ClickHouse/pull/82556) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 設定ファイルがない `clickhouse-server` も、デフォルト設定と同様に PostgreSQL ポート 9005 をリッスンします。 [#82633](https://github.com/ClickHouse/ClickHouse/pull/82633) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* `ReplicatedMergeTree::executeMetadataAlter` では、StorageID を取得し、DDLGuard を取得せずに `IDatabase::alterTable` を呼び出そうとします。その間に対象のテーブルを別のテーブルと入れ替えられてしまう可能性があるため、定義を取得する際に誤ったものを取得してしまうおそれがあります。これを防ぐために、`IDatabase::alterTable` を呼び出そうとするときに UUID が一致するかどうかを別途チェックするようにしました。 [#82666](https://github.com/ClickHouse/ClickHouse/pull/82666) ([Nikolay Degterinsky](https://github.com/evillique))。 -* 読み取り専用のリモートディスクでデータベースをアタッチする際には、テーブルの UUID を手動で DatabaseCatalog に追加する必要があります。 [#82670](https://github.com/ClickHouse/ClickHouse/pull/82670) ([Tuan Pham Anh](https://github.com/tuanpach)). -* `NumericIndexedVector` で `nan` および `inf` をユーザーが使用できないようにしました。[#82239](https://github.com/ClickHouse/ClickHouse/issues/82239) と、その他いくつかの問題を修正しました。[#82681](https://github.com/ClickHouse/ClickHouse/pull/82681)([Raufs Dunamalijevs](https://github.com/rienath))。 -* `X-ClickHouse-Progress` ヘッダーおよび `X-ClickHouse-Summary` ヘッダーのフォーマットで、ゼロ値を省略しないようにしました。 [#82727](https://github.com/ClickHouse/ClickHouse/pull/82727) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 -* Keeper の改良: world:anyone ACL に対する特定権限のサポートを追加。 [#82755](https://github.com/ClickHouse/ClickHouse/pull/82755) ([Antonio Andelic](https://github.com/antonio2368)). -* SummingMergeTree で合計対象として明示的に指定された列を含む `RENAME COLUMN` や `DROP COLUMN` を許可しないようにしました。[#81836](https://github.com/ClickHouse/ClickHouse/issues/81836) をクローズします。 [#82821](https://github.com/ClickHouse/ClickHouse/pull/82821) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* `Decimal` から `Float32` への変換の精度を向上。`Decimal` から `BFloat16` への変換を実装。[#82660](https://github.com/ClickHouse/ClickHouse/issues/82660) をクローズ。[#82823](https://github.com/ClickHouse/ClickHouse/pull/82823)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* Web UI のスクロールバーの見た目がわずかに改善されました。 [#82869](https://github.com/ClickHouse/ClickHouse/pull/82869) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 埋め込み設定付きの `clickhouse-server` は、HTTP OPTIONS 応答を返すことで Web UI を利用可能にします。 [#82870](https://github.com/ClickHouse/ClickHouse/pull/82870) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 設定ファイル内のパスに対して追加の Keeper ACL を指定できるようにしました。特定のパスに追加の ACL を付与したい場合は、設定ファイルの `zookeeper.path_acls` 配下で定義してください。 [#82898](https://github.com/ClickHouse/ClickHouse/pull/82898) ([Antonio Andelic](https://github.com/antonio2368)). -* 今後は、mutation スナップショットが可視部分のスナップショットから構築されるようになります。また、スナップショットで使用される mutation カウンタも、含まれている mutation に基づいて再計算されます。 [#82945](https://github.com/ClickHouse/ClickHouse/pull/82945) ([Mikhail Artemenko](https://github.com/Michicosun)). -* ソフトメモリ制限により Keeper が書き込みを拒否した際に ProfileEvent を追加。 [#82963](https://github.com/ClickHouse/ClickHouse/pull/82963) ([Xander Garbett](https://github.com/Garbett1)). -* `system.s3queue_log` に `commit_time`、`commit_id` の列を追加しました。 [#83016](https://github.com/ClickHouse/ClickHouse/pull/83016) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 場合によっては、メトリクスに複数のディメンションが必要になることがあります。たとえば、単一のカウンタを持つのではなく、エラーコードごとに失敗したマージやミューテーションの回数をカウントしたい場合です。この目的のために、まさにそれを実現する `system.dimensional_metrics` を導入し、最初の次元付きメトリクスとして `failed_merges` を追加しました。 [#83030](https://github.com/ClickHouse/ClickHouse/pull/83030) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 -* clickhouse client における不明な設定項目に関する警告を集約し、要約としてログに記録するようにしました。 [#83042](https://github.com/ClickHouse/ClickHouse/pull/83042) ([Bharat Nallan](https://github.com/bharatnc)). -* ClickHouse クライアントが接続エラー発生時にローカルポートを報告するようになりました。 [#83050](https://github.com/ClickHouse/ClickHouse/pull/83050) ([Jianfei Hu](https://github.com/incfly)). -* `AsynchronousMetrics` におけるエラー処理を若干改善しました。`/sys/block` ディレクトリが存在するもののアクセスできない場合、サーバーはブロックデバイスの監視を行わずに起動します。[#79229](https://github.com/ClickHouse/ClickHouse/issues/79229) をクローズ。[#83115](https://github.com/ClickHouse/ClickHouse/pull/83115)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* SystemLogs を通常テーブルの後(従来の「通常テーブルの前」ではなく、system テーブルの前)にシャットダウンするように変更。 [#83134](https://github.com/ClickHouse/ClickHouse/pull/83134) ([Kseniia Sumarokova](https://github.com/kssenii)). -* `S3Queue` のシャットダウン処理に関するログを追加しました。 [#83163](https://github.com/ClickHouse/ClickHouse/pull/83163) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* `Time` と `Time64` を `MM:SS`、`M:SS`、`SS`、`S` の形式でパースできるようになりました。 [#83299](https://github.com/ClickHouse/ClickHouse/pull/83299) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* `distributed_ddl_output_mode='*_only_active'` の場合、`max_replication_lag_to_enqueue` を超えるレプリケーションラグを持つ新規または復旧済みレプリカを待機しないようにしました。これにより、新しいレプリカが初期化やリカバリを完了してアクティブになったものの、初期化中に大量のレプリケーションログを蓄積していた場合に発生しうる `DDL task is not finished on some hosts` エラーを回避しやすくなります。あわせて、レプリケーションログが `max_replication_lag_to_enqueue` 未満になるまで待機する `SYSTEM SYNC DATABASE REPLICA STRICT` クエリを実装しました。 [#83302](https://github.com/ClickHouse/ClickHouse/pull/83302) ([Alexander Tokmakov](https://github.com/tavplubix))。 -* 例外メッセージに含める式アクションの説明を、過度に長く出力しないようにしました。Closes [#83164](https://github.com/ClickHouse/ClickHouse/issues/83164). [#83350](https://github.com/ClickHouse/ClickHouse/pull/83350) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* パーツのプレフィックスおよびサフィックスを解析し、非定数カラムのカバレッジもチェックできるようにしました。 [#83377](https://github.com/ClickHouse/ClickHouse/pull/83377) ([Mikhail Artemenko](https://github.com/Michicosun)). -* 名前付きコレクション使用時の ODBC および JDBC のパラメータ名を統一しました。 [#83410](https://github.com/ClickHouse/ClickHouse/pull/83410) ([Andrey Zvonov](https://github.com/zvonand)). -* ストレージのシャットダウン中は、`getStatus` は `ErrorCodes::ABORTED` 例外をスローします。以前は、これにより SELECT クエリが失敗していました。現在では、`ErrorCodes::ABORTED` 例外を捕捉し、意図的に無視するようにしています。 [#83435](https://github.com/ClickHouse/ClickHouse/pull/83435) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* `MergeParts` エントリ向けの part_log プロファイルイベントに、`UserTimeMicroseconds`、`SystemTimeMicroseconds`、`RealTimeMicroseconds` などのプロセスリソースのメトリクスを追加しました。[#83460](https://github.com/ClickHouse/ClickHouse/pull/83460)([Vladimir Cherkasov](https://github.com/vdimir))。 -* `create_if_not_exists`、`check_not_exists`、`remove_recursive` のフィーチャーフラグを Keeper でデフォルトで有効化し、新しい種類のリクエストを可能にします。 [#83488](https://github.com/ClickHouse/ClickHouse/pull/83488) ([Antonio Andelic](https://github.com/antonio2368))。 -* サーバー停止時には、テーブルをシャットダウンする前に S3(Azure など)Queue のストリーミングを停止するようにしました。 [#83530](https://github.com/ClickHouse/ClickHouse/pull/83530) ([Kseniia Sumarokova](https://github.com/kssenii)). -* `JSON` 入力フォーマットで `Date` / `Date32` を整数として使用可能にしました。 [#83597](https://github.com/ClickHouse/ClickHouse/pull/83597) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). -* 特定の状況において、プロジェクションの読み込みおよび追加時の例外メッセージを、より読みやすくしました。 [#83728](https://github.com/ClickHouse/ClickHouse/pull/83728) ([Robert Schulze](https://github.com/rschu1ze)). -* `clickhouse-server` のバイナリに対するチェックサムによる整合性検査をスキップできる設定オプションを導入しました。 [#83637](https://github.com/ClickHouse/ClickHouse/issues/83637) を解決しました。 [#83749](https://github.com/ClickHouse/ClickHouse/pull/83749)([Rafael Roquetto](https://github.com/rafaelroquetto))。 - -#### バグ修正(公式安定版リリースでユーザーに影響する誤動作) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* `clickhouse-benchmark` の `--reconnect` オプションに対して誤って設定されていたデフォルト値を修正しました。このデフォルト値は [#79465](https://github.com/ClickHouse/ClickHouse/issues/79465) で誤って変更されていました。[#82677](https://github.com/ClickHouse/ClickHouse/pull/82677)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* `CREATE DICTIONARY` のフォーマットの不整合を修正しました。[#82105](https://github.com/ClickHouse/ClickHouse/issues/82105) をクローズしました。 [#82829](https://github.com/ClickHouse/ClickHouse/pull/82829)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* `materialize` 関数を含む TTL のフォーマットの不整合を修正。[#82828](https://github.com/ClickHouse/ClickHouse/issues/82828) をクローズ。[#82831](https://github.com/ClickHouse/ClickHouse/pull/82831)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* INTO OUTFILE などの出力オプションを含むサブクエリに対する `EXPLAIN AST` のフォーマットが一貫していなかった問題を修正しました。[#82826](https://github.com/ClickHouse/ClickHouse/issues/82826) をクローズします。[#82840](https://github.com/ClickHouse/ClickHouse/pull/82840)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* エイリアスが許可されていないコンテキストにおける、エイリアス付き括弧表現のフォーマットの不整合を修正しました。Closes [#82836](https://github.com/ClickHouse/ClickHouse/issues/82836)。Closes [#82837](https://github.com/ClickHouse/ClickHouse/issues/82837)。[#82867](https://github.com/ClickHouse/ClickHouse/pull/82867) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* IPv4 と集約関数の状態を乗算しようとした際に、適切なエラーコードを返すようにしました。 [#82817](https://github.com/ClickHouse/ClickHouse/issues/82817) をクローズ。 [#82818](https://github.com/ClickHouse/ClickHouse/pull/82818)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* ファイルシステムキャッシュ内の論理エラー「Having zero bytes but range is not finished」を修正しました。 [#81868](https://github.com/ClickHouse/ClickHouse/pull/81868) ([Kseniia Sumarokova](https://github.com/kssenii)). -* TTL によって行が削除された際に、それに依存する `minmax_count_projection` などのアルゴリズムの正しさを保証するため、min-max インデックスを再計算します。これにより [#77091](https://github.com/ClickHouse/ClickHouse/issues/77091) が解決されます。[#77166](https://github.com/ClickHouse/ClickHouse/pull/77166)([Amos Bird](https://github.com/amosbird))。 -* `ORDER BY ... LIMIT BY ... LIMIT N` を組み合わせたクエリにおいて、ORDER BY が PartialSorting として実行される場合、カウンタ `rows_before_limit_at_least` は、これまでのソート変換で消費された行数ではなく、LIMIT 句で消費された行数を表すようになりました。 [#78999](https://github.com/ClickHouse/ClickHouse/pull/78999) ([Eduard Karacharov](https://github.com/korowa))。 -* 先頭の代替パターンがリテラルでないオルタネーションを含む `regexp` を用いて token/ngram インデックスに対してフィルタリングを行う場合に、グラニュールを過剰にスキップしてしまう問題を修正しました。 [#79373](https://github.com/ClickHouse/ClickHouse/pull/79373) ([Eduard Karacharov](https://github.com/korowa)). -* `<=>` 演算子と Join ストレージの論理エラーを修正し、クエリが適切なエラーコードを返すようにしました。 [#80165](https://github.com/ClickHouse/ClickHouse/pull/80165) ([Vladimir Cherkasov](https://github.com/vdimir)). -* `remote` 関数ファミリーと併用した場合に `loop` 関数でクラッシュが発生する問題を修正しました。`loop(remote(...))` で LIMIT 句が順守されるようにしました。 [#80299](https://github.com/ClickHouse/ClickHouse/pull/80299) ([Julia Kartseva](https://github.com/jkartseva)). -* Unix epoch(1970-01-01)以前および最大日時(2106-02-07 06:28:15)以降の日付を扱う際の `to_utc_timestamp` および `from_utc_timestamp` 関数の誤った動作を修正しました。これらの関数は、値をそれぞれ Unix エポックの開始時刻および最大日時に正しくクランプするようになりました。 [#80498](https://github.com/ClickHouse/ClickHouse/pull/80498) ([Surya Kant Ranjan](https://github.com/iit2009046)). -* 一部のクエリでは、並列レプリカで実行した際に、読み取り順序の最適化がイニシエーター側では適用される一方で、リモートノード側では適用できない場合がありました。その結果、並列レプリカのコーディネーター(イニシエーター上)とリモートノードで異なる読み取りモードが使用され、論理的なエラーが発生していました。 [#80652](https://github.com/ClickHouse/ClickHouse/pull/80652) ([Igor Nikonov](https://github.com/devcrafter)). -* カラム型が Nullable 型に変更された場合に、materialize projection の実行中に発生する論理エラーを修正。 [#80741](https://github.com/ClickHouse/ClickHouse/pull/80741) ([Pavel Kruglov](https://github.com/Avogar)). -* TTL を更新する際に TTL GROUP BY で TTL が誤って再計算される不具合を修正。 [#81222](https://github.com/ClickHouse/ClickHouse/pull/81222) ([Evgeniy Ulasik](https://github.com/H0uston)). -* Parquet のブルームフィルターが、`WHERE function(key) IN (...)` のような条件を `WHERE key IN (...)` であるかのように誤って適用していた問題を修正しました。 [#81255](https://github.com/ClickHouse/ClickHouse/pull/81255) ([Michael Kolupaev](https://github.com/al13n321)). -* マージ処理中の例外発生時に `Aggregator` がクラッシュする可能性のあった不具合を修正しました。 [#81450](https://github.com/ClickHouse/ClickHouse/pull/81450) ([Nikita Taranov](https://github.com/nickitat)). -* `InterpreterInsertQuery::extendQueryLogElemImpl` を修正し、必要に応じて(たとえば名前に `-` のような特殊文字が含まれている場合)データベース名およびテーブル名をバッククォートで囲むようにしました。 [#81528](https://github.com/ClickHouse/ClickHouse/pull/81528) ([Ilia Shvyrialkin](https://github.com/Harzu)). -* 左側の引数が null で、サブクエリ結果が non-nullable の場合における、`transform_null_in=1` 設定時の `IN` 実行を修正。 [#81584](https://github.com/ClickHouse/ClickHouse/pull/81584) ([Pavel Kruglov](https://github.com/Avogar))。 -* 既存テーブルから読み取る際の default/materialize 式の実行時に、実験的な型や疑わしい型を検証しないようにしました。 [#81618](https://github.com/ClickHouse/ClickHouse/pull/81618) ([Pavel Kruglov](https://github.com/Avogar)). -* TTL 式で dict が使用されている場合に、マージ中に発生する "Context has expired" エラーを修正。 [#81690](https://github.com/ClickHouse/ClickHouse/pull/81690) ([Azat Khuzhin](https://github.com/azat)). -* cast 関数の単調性を修正。 [#81722](https://github.com/ClickHouse/ClickHouse/pull/81722) ([zoomxi](https://github.com/zoomxi))。 -* スカラー相関サブクエリの処理中に必要な列が読み込まれない問題を修正しました。 [#81716](https://github.com/ClickHouse/ClickHouse/issues/81716) を解決します。 [#81805](https://github.com/ClickHouse/ClickHouse/pull/81805)([Dmitry Novik](https://github.com/novikd))。 -* 以前のバージョンでは、`/js` へのリクエストに対してサーバーが不要に多くのコンテンツを返していました。この変更により [#61890](https://github.com/ClickHouse/ClickHouse/issues/61890) が解決されました。[#81895](https://github.com/ClickHouse/ClickHouse/pull/81895)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 以前は、`MongoDB` テーブルエンジンの定義で `host:port` 引数にパスコンポーネントを含めることができましたが、これは暗黙的に無視されていました。`MongoDB` 連携機能は、そのようなテーブルのロードを拒否していました。この修正により、*`MongoDB` エンジンが 5 つの引数を取る場合には、そのようなテーブルもロード可能とし、引数で指定されたデータベース名を用いつつパスコンポーネントを無視します*。*注:* この修正は、新しく作成されたテーブルや `mongo` テーブル関数を使ったクエリ、ならびにディクショナリのソースおよび named collection には適用されません。[#81942](https://github.com/ClickHouse/ClickHouse/pull/81942)([Vladimir Cherkasov](https://github.com/vdimir))。 -* マージ中に例外が発生した場合に `Aggregator` がクラッシュする可能性のあった問題を修正しました。 [#82022](https://github.com/ClickHouse/ClickHouse/pull/82022) ([Nikita Taranov](https://github.com/nickitat)). -* クエリで定数のエイリアス列のみが使用されている場合のフィルタ解析を修正します。[#79448](https://github.com/ClickHouse/ClickHouse/issues/79448) を解決。[#82037](https://github.com/ClickHouse/ClickHouse/pull/82037) ([Dmitry Novik](https://github.com/novikd))。 -* GROUP BY および SET の TTL で同じカラムを使用した場合に発生する LOGICAL_ERROR とそれに続くクラッシュを修正しました。 [#82054](https://github.com/ClickHouse/ClickHouse/pull/82054) ([Pablo Marcos](https://github.com/pamarcos)). -* シークレットマスキング処理における S3 テーブル関数の引数検証を修正し、発生しうる `LOGICAL_ERROR` を防止しました。[#80620](https://github.com/ClickHouse/ClickHouse/issues/80620) をクローズしました。[#82056](https://github.com/ClickHouse/ClickHouse/pull/82056)([Vladimir Cherkasov](https://github.com/vdimir))。 -* Iceberg におけるデータレースを修正しました。 [#82088](https://github.com/ClickHouse/ClickHouse/pull/82088) ([Azat Khuzhin](https://github.com/azat)). -* `DatabaseReplicated::getClusterImpl` を修正しました。`hosts` の先頭の要素(または先頭の複数要素)が `id == DROPPED_MARK` であり、かつ同じシャードに属する他の要素が存在しない場合、`shards` の先頭要素が空のベクタとなり、`std::out_of_range` が発生していました。 [#82093](https://github.com/ClickHouse/ClickHouse/pull/82093)([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 -* `arraySimilarity` におけるコピーペーストの誤りを修正し、`UInt32` および `Int32` を重みとして使用できないようにしました。あわせてテストとドキュメントを更新しました。 [#82103](https://github.com/ClickHouse/ClickHouse/pull/82103) ([Mikhail f. Shiryaev](https://github.com/Felixoid))。 -* `WHERE` 句と `IndexSet` の条件下で `arrayJoin` を含むクエリで発生する `Not found column` エラーを修正。 [#82113](https://github.com/ClickHouse/ClickHouse/pull/82113) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* Glue Catalog 連携のバグを修正しました。これにより、一部のサブカラムに decimal 型を含むネストしたデータ型を持つテーブルを ClickHouse で読み取れるようになりました。例: `map`。[#81301](https://github.com/ClickHouse/ClickHouse/issues/81301) を修正。[#82114](https://github.com/ClickHouse/ClickHouse/pull/82114)([alesapin](https://github.com/alesapin))。 -* [https://github.com/ClickHouse/ClickHouse/pull/79051](https://github.com/ClickHouse/ClickHouse/pull/79051) で 25.5 に導入された SummingMergeTree におけるパフォーマンス低下を修正しました。 [#82130](https://github.com/ClickHouse/ClickHouse/pull/82130) ([Pavel Kruglov](https://github.com/Avogar)). -* URI 経由で設定を渡す場合、最後の値が優先されます。 [#82137](https://github.com/ClickHouse/ClickHouse/pull/82137) ([Sema Checherinda](https://github.com/CheSema)). -* Iceberg における「Context has expired」エラーを修正しました。[#82146](https://github.com/ClickHouse/ClickHouse/pull/82146) ([Azat Khuzhin](https://github.com/azat)). -* サーバーがメモリ逼迫時のリモートクエリで発生しうるデッドロックを修正しました。 [#82160](https://github.com/ClickHouse/ClickHouse/pull/82160) ([Kirill](https://github.com/kirillgarbar)). -* 大きな数値に対して適用した際に発生していた `numericIndexedVectorPointwiseAdd`、`numericIndexedVectorPointwiseSubtract`、`numericIndexedVectorPointwiseMultiply`、`numericIndexedVectorPointwiseDivide` 関数のオーバーフローを修正しました。 [#82165](https://github.com/ClickHouse/ClickHouse/pull/82165) ([Raufs Dunamalijevs](https://github.com/rienath))。 -* テーブルの依存関係が原因でマテリアライズドビューが INSERT クエリを取り漏らす不具合を修正。 [#82222](https://github.com/ClickHouse/ClickHouse/pull/82222) ([Nikolay Degterinsky](https://github.com/evillique)). -* サジェスションスレッドとメインのクライアントスレッド間で発生する可能性のあるデータ競合を修正。 [#82233](https://github.com/ClickHouse/ClickHouse/pull/82233) ([Azat Khuzhin](https://github.com/azat)). -* これにより、ClickHouse はスキーマ進化後でも Glue カタログから Iceberg テーブルを読み取れるようになりました。[#81272](https://github.com/ClickHouse/ClickHouse/issues/81272) を修正しました。[#82301](https://github.com/ClickHouse/ClickHouse/pull/82301)([alesapin](https://github.com/alesapin))。 -* 非同期メトリクス設定 `asynchronous_metrics_update_period_s` および `asynchronous_heavy_metrics_update_period_s` の検証を修正しました。 [#82310](https://github.com/ClickHouse/ClickHouse/pull/82310) ([Bharat Nallan](https://github.com/bharatnc))。 -* 複数の JOIN を含むクエリにおけるマッチャー解決時の論理エラーを修正し、[#81969](https://github.com/ClickHouse/ClickHouse/issues/81969) をクローズしました。 [#82421](https://github.com/ClickHouse/ClickHouse/pull/82421) ([Vladimir Cherkasov](https://github.com/vdimir))。 -* AWS ECS トークンに有効期限を追加し、再読み込み可能にしました。 [#82422](https://github.com/ClickHouse/ClickHouse/pull/82422) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* `CASE` 関数での `NULL` 引数に関するバグを修正しました。[#82436](https://github.com/ClickHouse/ClickHouse/pull/82436)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* クライアントのデータレースを(グローバルコンテキストを使用しないようにすることで)修正し、`session_timezone` のオーバーライド動作を修正しました(以前は、`session_timezone` がたとえば `users.xml` やクライアントオプションで空でない値に設定され、クエリコンテキストでは空に設定されていた場合、本来は誤りであるにもかかわらず `users.xml` の値が使用されていました。現在は、クエリコンテキストが常にグローバルコンテキストより優先されます)。 [#82444](https://github.com/ClickHouse/ClickHouse/pull/82444) ([Azat Khuzhin](https://github.com/azat)). -* 外部テーブルエンジンにおけるキャッシュ済みバッファの境界アライメントを無効化する処理を修正しました。この処理は [https://github.com/ClickHouse/ClickHouse/pull/81868](https://github.com/ClickHouse/ClickHouse/pull/81868) で壊れていました。 [#82493](https://github.com/ClickHouse/ClickHouse/pull/82493) ([Kseniia Sumarokova](https://github.com/kssenii)). -* キーバリューストレージが型キャストされたキーで `JOIN` された場合に発生するクラッシュを修正。 [#82497](https://github.com/ClickHouse/ClickHouse/pull/82497) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* ログおよび `query_log` 内で named collection の値を非表示にする処理を修正しました。[#82405](https://github.com/ClickHouse/ClickHouse/issues/82405) をクローズしました。[#82510](https://github.com/ClickHouse/ClickHouse/pull/82510)([Kseniia Sumarokova](https://github.com/kssenii))。 -* セッション終了時に `user_id` が空になる場合があり、その際にログ出力時にクラッシュが発生する可能性がある問題を修正しました。 [#82513](https://github.com/ClickHouse/ClickHouse/pull/82513) ([Bharat Nallan](https://github.com/bharatnc)). -* Time のパース処理で msan の問題が発生し得るケースを修正します。この修正は次の問題を解決します: [#82477](https://github.com/ClickHouse/ClickHouse/issues/82477)。[#82514](https://github.com/ClickHouse/ClickHouse/pull/82514)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* `threadpool_writer_pool_size` を 0 に設定できないようにし、サーバーの処理が行き詰まらないようにしました。 [#82532](https://github.com/ClickHouse/ClickHouse/pull/82532) ([Bharat Nallan](https://github.com/bharatnc))。 -* 相関付けられた列に対する行ポリシー式の解析中に発生する `LOGICAL_ERROR` を修正。 [#82618](https://github.com/ClickHouse/ClickHouse/pull/82618) ([Dmitry Novik](https://github.com/novikd)). -* `enable_shared_storage_snapshot_in_query = 1` のときに `mergeTreeProjection` テーブル関数で親メタデータが誤って使用される問題を修正しました。これは [#82634](https://github.com/ClickHouse/ClickHouse/issues/82634) に対応するものです。[#82638](https://github.com/ClickHouse/ClickHouse/pull/82638)([Amos Bird](https://github.com/amosbird))。 -* 関数 `trim{Left,Right,Both}` が、型「FixedString(N)」の入力文字列をサポートするようになりました。たとえば、`SELECT trimBoth(toFixedString('abc', 3), 'ac')` を実行できるようになりました。 [#82691](https://github.com/ClickHouse/ClickHouse/pull/82691) ([Robert Schulze](https://github.com/rschu1ze)). -* AzureBlobStorage において、ネイティブコピーを行う際に認証方法を比較し、その際に例外が発生した場合は、読み取りとコピー(つまり非ネイティブコピー)にフォールバックするようにコードを更新しました。 [#82693](https://github.com/ClickHouse/ClickHouse/pull/82693) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). -* 空要素が存在する場合の `groupArraySample` / `groupArrayLast` のデシリアライズを修正しました(入力が空の場合にデシリアライズ処理がバイナリの一部をスキップしてしまう可能性があり、これによりデータ読み取り時の破損や TCP プロトコルにおける UNKNOWN_PACKET_FROM_SERVER を引き起こす可能性がありました)。数値型および日付時刻型には影響しません。[#82763](https://github.com/ClickHouse/ClickHouse/pull/82763)([Pedro Ferreira](https://github.com/PedroTadim))。 -* 空の `Memory` テーブルのバックアップ処理を修正し、バックアップの復元時に `BACKUP_ENTRY_NOT_FOUND` エラーで失敗する問題を解消しました。 [#82791](https://github.com/ClickHouse/ClickHouse/pull/82791) ([Julia Kartseva](https://github.com/jkartseva)). -* union/intersect/except_default_mode の書き換え処理における例外安全性を修正。[#82664](https://github.com/ClickHouse/ClickHouse/issues/82664) をクローズ。[#82820](https://github.com/ClickHouse/ClickHouse/pull/82820)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 非同期テーブルの読み込みジョブの数を追跡するようにしました。実行中のジョブがある場合は、`TransactionLog::removeOldEntries` 内で `tail_ptr` を更新しないようにしました。 [#82824](https://github.com/ClickHouse/ClickHouse/pull/82824) ([Tuan Pham Anh](https://github.com/tuanpach)). -* Iceberg で発生していたデータレースを修正。[#82841](https://github.com/ClickHouse/ClickHouse/pull/82841) ([Azat Khuzhin](https://github.com/azat)). -* 25.6 で導入された `use_skip_indexes_if_final_exact_mode` 最適化を有効化した場合、`MergeTree` エンジンの設定やデータ分布によっては、適切な候補範囲を選択できないことがありました。この問題は解消されました。 [#82879](https://github.com/ClickHouse/ClickHouse/pull/82879) ([Shankar Iyer](https://github.com/shankar-iyer)). -* SCRAM_SHA256_PASSWORD 型の AST から認証データをパースする際に salt を設定するようにしました。 [#82888](https://github.com/ClickHouse/ClickHouse/pull/82888) ([Tuan Pham Anh](https://github.com/tuanpach)). -* キャッシュしない Database 実装を使用している場合、カラムが返されて参照が無効になった後に、対応するテーブルのメタデータが削除されます。 [#82939](https://github.com/ClickHouse/ClickHouse/pull/82939) ([buyval01](https://github.com/buyval01)). -* `Merge` ストレージのテーブルとの JOIN 式を含むクエリに対するフィルタの変更処理を修正。[#82092](https://github.com/ClickHouse/ClickHouse/issues/82092) を修正。[#82950](https://github.com/ClickHouse/ClickHouse/pull/82950)([Dmitry Novik](https://github.com/novikd))。 -* QueryMetricLog における LOGICAL_ERROR 「Mutex cannot be NULL」を修正。 [#82979](https://github.com/ClickHouse/ClickHouse/pull/82979) ([Pablo Marcos](https://github.com/pamarcos)). -* フォーマッタ `%f` を可変長フォーマッタ(例:`%M`)と併用した場合に、関数 `formatDateTime` で誤った出力が行われる不具合を修正しました。 [#83020](https://github.com/ClickHouse/ClickHouse/pull/83020) ([Robert Schulze](https://github.com/rschu1ze)). -* analyzer を有効にした状態で、セカンダリクエリが VIEW から常にすべてのカラムを読み取ってしまう場合に発生するパフォーマンス低下を修正しました。[#81718](https://github.com/ClickHouse/ClickHouse/issues/81718) を修正。[#83036](https://github.com/ClickHouse/ClickHouse/pull/83036)([Dmitry Novik](https://github.com/novikd))。 -* 読み取り専用ディスク上でバックアップを復元する際に表示される誤解を招くエラーメッセージを修正。 [#83051](https://github.com/ClickHouse/ClickHouse/pull/83051) ([Julia Kartseva](https://github.com/jkartseva)). -* 依存関係を持たない `CREATE TABLE` では循環依存関係のチェックを行わないようにしました。これにより、[https://github.com/ClickHouse/ClickHouse/pull/65405](https://github.com/ClickHouse/ClickHouse/pull/65405) で導入された、数千個のテーブルを作成するようなユースケースでのパフォーマンス低下が解消されます。[#83077](https://github.com/ClickHouse/ClickHouse/pull/83077)([Pavel Kruglov](https://github.com/Avogar))。 -* 負の Time 値がテーブルに暗黙的に読み込まれていた問題を修正し、ドキュメントの記述も分かりやすくしました。 [#83091](https://github.com/ClickHouse/ClickHouse/pull/83091) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* `lowCardinalityKeys` 関数が共有ディクショナリの無関係な部分を使用しないようにしました。 [#83118](https://github.com/ClickHouse/ClickHouse/pull/83118) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* マテリアライズドビューのサブカラム利用時に発生していたリグレッションを修正しました。これにより、次の問題が解消されました: [#82784](https://github.com/ClickHouse/ClickHouse/issues/82784)。[#83221](https://github.com/ClickHouse/ClickHouse/pull/83221) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 -* 不正な INSERT 実行後に接続が切断された状態のまま残ることでクライアントがクラッシュする問題を修正しました。 [#83253](https://github.com/ClickHouse/ClickHouse/pull/83253) ([Azat Khuzhin](https://github.com/azat)). -* 空のカラムを持つブロックのサイズを計算する際に発生していたクラッシュを修正しました。 [#83271](https://github.com/ClickHouse/ClickHouse/pull/83271) ([Raúl Marín](https://github.com/Algunenano)). -* UNION 内の Variant 型で発生し得るクラッシュを修正。[#83295](https://github.com/ClickHouse/ClickHouse/pull/83295) ([Pavel Kruglov](https://github.com/Avogar)). -* サポートされていない SYSTEM クエリに対して clickhouse-local で発生していた LOGICAL_ERROR を修正。 [#83333](https://github.com/ClickHouse/ClickHouse/pull/83333) ([Surya Kant Ranjan](https://github.com/iit2009046)). -* S3 クライアント向けの `no_sign_request` 設定を修正しました。これは、S3 リクエストに署名しないことを明示的に指定するために使用できます。エンドポイント単位の設定を使用して、特定のエンドポイントに対して定義することもできます。 [#83379](https://github.com/ClickHouse/ClickHouse/pull/83379) ([Antonio Andelic](https://github.com/antonio2368)). -* CPU スケジューリングが有効な状態で負荷がかかっているときに、設定 'max_threads=1' を指定したクエリを実行すると発生する可能性があるクラッシュを修正します。 [#83387](https://github.com/ClickHouse/ClickHouse/pull/83387) ([Fan Ziqi](https://github.com/f2quantum)). -* CTE 定義が同名の別のテーブル式を参照している場合に発生する `TOO_DEEP_SUBQUERIES` 例外の問題を修正。 [#83413](https://github.com/ClickHouse/ClickHouse/pull/83413) ([Dmitry Novik](https://github.com/novikd)). -* `REVOKE S3 ON system.*` を実行した際に、`*.*` に対する S3 権限まで取り消されてしまう誤動作を修正しました。これにより [#83417](https://github.com/ClickHouse/ClickHouse/issues/83417) が修正されました。[#83420](https://github.com/ClickHouse/ClickHouse/pull/83420)([pufit](https://github.com/pufit))。 -* クエリ間で async_read_counters を共有しないようにしました。 [#83423](https://github.com/ClickHouse/ClickHouse/pull/83423) ([Azat Khuzhin](https://github.com/azat)). -* サブクエリに FINAL が含まれている場合は Parallel Replicas を無効化するようにしました。 [#83455](https://github.com/ClickHouse/ClickHouse/pull/83455) ([zoomxi](https://github.com/zoomxi)). -* 設定 `role_cache_expiration_time_seconds` の構成で発生していた軽微な整数オーバーフローを修正しました(issue [#83374](https://github.com/ClickHouse/ClickHouse/issues/83374))。[#83461](https://github.com/ClickHouse/ClickHouse/pull/83461)([wushap](https://github.com/wushap))。 -* [https://github.com/ClickHouse/ClickHouse/pull/79963](https://github.com/ClickHouse/ClickHouse/pull/79963) によって導入されたバグを修正します。definer 付きの MV に対して `INSERT` を行う場合、権限チェックでは definer に付与された権限を使用する必要があります。これにより [#79951](https://github.com/ClickHouse/ClickHouse/issues/79951) が解決されます。[#83502](https://github.com/ClickHouse/ClickHouse/pull/83502)([pufit](https://github.com/pufit))。 -* iceberg の配列要素および iceberg の map の値と、そのすべてのネストしたサブフィールドに対する境界値ベースのファイルプルーニングを無効化しました。 [#83520](https://github.com/ClickHouse/ClickHouse/pull/83520) ([Daniil Ivanik](https://github.com/divanik)). -* 一時データストレージとして使用する際に発生する可能性のある file cache の未初期化エラーを修正。 [#83539](https://github.com/ClickHouse/ClickHouse/pull/83539) ([Bharat Nallan](https://github.com/bharatnc)). -* Keeper の修正: セッション終了時にエフェメラルノードが削除された際に、ウォッチの総数が正しく更新されるようにしました。 [#83583](https://github.com/ClickHouse/ClickHouse/pull/83583) ([Antonio Andelic](https://github.com/antonio2368)). -* max_untracked_memory 周辺の誤ったメモリ管理を修正。 [#83607](https://github.com/ClickHouse/ClickHouse/pull/83607) ([Azat Khuzhin](https://github.com/azat)). -* ある一部のケースにおいて、`INSERT SELECT` と `UNION ALL` の組み合わせによりヌルポインタ逆参照が発生する可能性がありました。この変更により [#83618](https://github.com/ClickHouse/ClickHouse/issues/83618) が解決されました。[#83643](https://github.com/ClickHouse/ClickHouse/pull/83643)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* `max_insert_block_size` にゼロ値を指定できないようにしました。ゼロ値を指定すると論理エラーを引き起こす可能性があるためです。 [#83688](https://github.com/ClickHouse/ClickHouse/pull/83688) ([Bharat Nallan](https://github.com/bharatnc)). -* estimateCompressionRatio() において block_size_bytes=0 の場合に発生する無限ループを修正。 [#83704](https://github.com/ClickHouse/ClickHouse/pull/83704) ([Azat Khuzhin](https://github.com/azat)). -* `IndexUncompressedCacheBytes`/`IndexUncompressedCacheCells`/`IndexMarkCacheBytes`/`IndexMarkCacheFiles` メトリクスを修正しました(以前は `Cache` プレフィックスの付かないメトリクスに含められていました)。[#83730](https://github.com/ClickHouse/ClickHouse/pull/83730)([Azat Khuzhin](https://github.com/azat))。 -* `BackgroundSchedulePool` のシャットダウン中に、タスク側からスレッドを join することが原因となり得たアボートと、(ユニットテストで発生していた)ハングの可能性を修正しました。 [#83769](https://github.com/ClickHouse/ClickHouse/pull/83769) ([Azat Khuzhin](https://github.com/azat)). -* 名前の競合が発生する場合に、新しい analyzer が WITH 句内で外側のエイリアスを参照できるようにする後方互換性設定を導入しました。 [#82700](https://github.com/ClickHouse/ClickHouse/issues/82700) を修正しました。 [#83797](https://github.com/ClickHouse/ClickHouse/pull/83797)([Dmitry Novik](https://github.com/novikd))。 -* シャットダウン時にライブラリブリッジのクリーンアップ中の再帰的なコンテキストロックにより発生するデッドロックを修正。 [#83824](https://github.com/ClickHouse/ClickHouse/pull/83824) ([Azat Khuzhin](https://github.com/azat)). - -#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement} - -* ClickHouse の lexer 用に最小限の C ライブラリ(10 KB)をビルドしました。これは [#80977](https://github.com/ClickHouse/ClickHouse/issues/80977) に必要です。[#81347](https://github.com/ClickHouse/ClickHouse/pull/81347)([Alexey Milovidov](https://github.com/alexey-milovidov))。スタンドアロン lexer 用のテストを追加し、テストタグ `fasttest-only` を追加しました。[#82472](https://github.com/ClickHouse/ClickHouse/pull/82472)([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 -* Nix サブモジュールの input に対するチェックを追加しました。[#81691](https://github.com/ClickHouse/ClickHouse/pull/81691)([Konstantin Bogdanov](https://github.com/thevar1able))。 -* localhost 上で統合テストを実行しようとした際に発生しうる問題を修正しました。[#82135](https://github.com/ClickHouse/ClickHouse/pull/82135)([Oleg Doronin](https://github.com/dorooleg))。 -* Mac と FreeBSD で SymbolIndex をコンパイル可能にしました。(ただし、実際に動作するのは ELF システムである Linux および FreeBSD のみです。)[#82347](https://github.com/ClickHouse/ClickHouse/pull/82347)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* Azure SDK を v1.15.0 に更新しました。[#82747](https://github.com/ClickHouse/ClickHouse/pull/82747)([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 -* google-cloud-cpp の storage モジュールをビルドシステムに追加しました。[#82881](https://github.com/ClickHouse/ClickHouse/pull/82881)([Pablo Marcos](https://github.com/pamarcos))。 -* Docker Official Library の要件を満たすように、clickhouse-server 用の `Dockerfile.ubuntu` を変更しました。[#83039](https://github.com/ClickHouse/ClickHouse/pull/83039)([Mikhail f. Shiryaev](https://github.com/Felixoid))。 -* `curl clickhouse.com` へのビルドのアップロードを修正するため、[#83158](https://github.com/ClickHouse/ClickHouse/issues/83158) のフォローアップを行いました。[#83463](https://github.com/ClickHouse/ClickHouse/pull/83463)([Mikhail f. Shiryaev](https://github.com/Felixoid))。 -* `clickhouse/clickhouse-server` および公式 `clickhouse` イメージに `busybox` バイナリとインストール用ツールを追加しました。[#83735](https://github.com/ClickHouse/ClickHouse/pull/83735)([Mikhail f. Shiryaev](https://github.com/Felixoid))。 -* ClickHouse サーバーのホストを指定するための `CLICKHOUSE_HOST` 環境変数のサポートを追加し、既存の `CLICKHOUSE_USER` および `CLICKHOUSE_PASSWORD` 環境変数と整合させました。これにより、クライアントや設定ファイルを直接変更することなく、より簡単に設定できるようになります。[#83659](https://github.com/ClickHouse/ClickHouse/pull/83659)([Doron David](https://github.com/dorki))。 - -### ClickHouse リリース 25.6、2025-06-26 {#256} - -#### 下位互換性のない変更 {#backward-incompatible-change} - -* これまでは、関数 `countMatches` はパターンが空文字列を許容していても、最初の空のマッチが発生した時点でカウントを停止していました。この問題を解消するため、`countMatches` は空のマッチが発生した場合に 1 文字分だけ進めて処理を継続するようになりました。従来の動作を維持したいユーザーは、設定 `count_matches_stop_at_empty_match` を有効にできます。 [#81676](https://github.com/ClickHouse/ClickHouse/pull/81676) ([Elmi Ahmadov](https://github.com/ahmadov)). -* 軽微: サーバー設定 `backup_threads` および `restore_threads` がゼロ以外の値になるように強制しました。 [#80224](https://github.com/ClickHouse/ClickHouse/pull/80224) ([Raúl Marín](https://github.com/Algunenano)). -* 軽微: `String` に対する `bitNot` が、内部メモリ表現としてゼロ終端された文字列を返すように修正しました。これはユーザーから見える動作には影響しないはずですが、著者はこの変更を明示しておきたいと考えています。 [#80791](https://github.com/ClickHouse/ClickHouse/pull/80791) ([Azat Khuzhin](https://github.com/azat)). - -#### 新機能 {#new-feature} - -* 新しいデータ型: `Time` ([H]HH:MM:SS) および `Time64` ([H]HH:MM:SS[.fractional])、ならびに他のデータ型と連携するためのいくつかの基本的なキャスト関数および各種関数を追加しました。既存の関数 `toTime` との互換性を保つための設定を追加しました。設定 `use_legacy_to_time` は、当面は従来の動作を維持する値に設定されています。 [#81217](https://github.com/ClickHouse/ClickHouse/pull/81217) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。Time/Time64 型同士の比較をサポートしました。 [#80327](https://github.com/ClickHouse/ClickHouse/pull/80327) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* 新しい CLI ツール [`chdig`](https://github.com/azat/chdig/) は、ClickHouse 用の TUI インターフェイス(top 風)で、ClickHouse の一部として提供されます。[#79666](https://github.com/ClickHouse/ClickHouse/pull/79666)([Azat Khuzhin](https://github.com/azat))。 -* `Atomic` および `Ordinary` データベースエンジンで `disk` 設定に対応し、テーブルのメタデータファイルを保存するディスクを指定できるようにしました。 [#80546](https://github.com/ClickHouse/ClickHouse/pull/80546) ([Tuan Pham Anh](https://github.com/tuanpach))。これにより、外部ソース上のデータベースをアタッチできるようになります。 -* 新しい種類の MergeTree、`CoalescingMergeTree` - このエンジンはバックグラウンドマージ時に最初の非 Null の値を採用します。これにより [#78869](https://github.com/ClickHouse/ClickHouse/issues/78869) が解決されました。[#79344](https://github.com/ClickHouse/ClickHouse/pull/79344)([scanhex12](https://github.com/scanhex12))。 -* WKB(「Well-Known Binary」は、GIS アプリケーションで使用される、さまざまなジオメトリ型のバイナリ形式によるエンコード方式)を読み取る関数をサポートします。詳細は [#43941](https://github.com/ClickHouse/ClickHouse/issues/43941) を参照してください。 [#80139](https://github.com/ClickHouse/ClickHouse/pull/80139)([scanhex12](https://github.com/scanhex12))。 -* ワークロード向けにクエリスロットのスケジューリングを追加しました。詳細は [workload scheduling](https://clickhouse.com/docs/operations/workload-scheduling#query_scheduling) を参照してください。 [#78415](https://github.com/ClickHouse/ClickHouse/pull/78415) ([Sergei Trifonov](https://github.com/serxa))。 -* 時系列データを扱う際の一部のユースケースを高速化するための `timeSeries*` ヘルパー関数:- 開始タイムスタンプ、終了タイムスタンプ、ステップ幅を指定して、データを時間グリッドに再サンプリングする - PromQL 風の `delta`、`rate`、`idelta`、`irate` を計算する。[#80590](https://github.com/ClickHouse/ClickHouse/pull/80590)([Alexander Gololobov](https://github.com/davenger))。 -* `mapContainsValuesLike`/`mapContainsValues`/`mapExtractValuesLike` 関数を追加し、map の値に対するフィルタリングと Bloom filter ベースのインデックスでの利用を可能にしました。 [#78171](https://github.com/ClickHouse/ClickHouse/pull/78171) ([UnamedRus](https://github.com/UnamedRus)). -* 設定制約で許可されない値の集合を指定できるようになりました。 [#78499](https://github.com/ClickHouse/ClickHouse/pull/78499) ([Bharat Nallan](https://github.com/bharatnc)). -* 単一のクエリ内のすべてのサブクエリで同一のストレージスナップショットを共有できるようにする設定 `enable_shared_storage_snapshot_in_query` を追加しました。これにより、クエリ内で同じテーブルが複数回参照される場合でも、そのテーブルからの読み取りに一貫性が保たれます。 [#79471](https://github.com/ClickHouse/ClickHouse/pull/79471) ([Amos Bird](https://github.com/amosbird)). -* `JSON` カラムを `Parquet` に書き込み、`Parquet` から `JSON` カラムを直接読み取れるようにしました。 [#79649](https://github.com/ClickHouse/ClickHouse/pull/79649) ([Nihal Z. Miaji](https://github.com/nihalzp)). -* `pointInPolygon` が `MultiPolygon` をサポートするようになりました。 [#79773](https://github.com/ClickHouse/ClickHouse/pull/79773) ([Nihal Z. Miaji](https://github.com/nihalzp)). -* ローカルファイルシステムにマウントされた Delta テーブルを `deltaLakeLocal` テーブル関数を使用してクエリできるようにサポートを追加しました。 [#79781](https://github.com/ClickHouse/ClickHouse/pull/79781) ([roykim98](https://github.com/roykim98))。 -* 新しい設定 `cast_string_to_date_time_mode` を追加しました。これにより、String からの CAST 時に DateTime のパースモードを選択できるようになります。 [#80210](https://github.com/ClickHouse/ClickHouse/pull/80210) ([Pavel Kruglov](https://github.com/Avogar))。たとえば、ベストエフォートモードに設定できます。 -* Bitcoin の Bech アルゴリズムを扱うための `bech32Encode` および `bech32Decode` 関数を追加しました(issue [#40381](https://github.com/ClickHouse/ClickHouse/issues/40381))。[#80239](https://github.com/ClickHouse/ClickHouse/pull/80239)([George Larionov](https://github.com/glarik))。 -* MergeTree パーツ名を解析するための SQL 関数を追加しました。 [#80573](https://github.com/ClickHouse/ClickHouse/pull/80573) ([Mikhail Artemenko](https://github.com/Michicosun)). -* クエリで選択されたパーツを、それらが存在するディスクによってフィルタリングできるようにするため、新しい仮想カラム `_disk_name` を導入しました。 [#80650](https://github.com/ClickHouse/ClickHouse/pull/80650) ([tanner-bruce](https://github.com/tanner-bruce)). -* 埋め込み Web ツールの一覧を表示するランディングページを追加。ブラウザのようなユーザーエージェントからリクエストされた場合に表示されます。 [#81129](https://github.com/ClickHouse/ClickHouse/pull/81129) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* `arrayFirst`、`arrayFirstIndex`、`arrayLast`、`arrayLastIndex` 関数は、フィルター式によって返される NULL 値を除外します。以前のバージョンでは、Nullable なフィルター結果はサポートされていませんでした。[#81113](https://github.com/ClickHouse/ClickHouse/issues/81113) を修正します。[#81197](https://github.com/ClickHouse/ClickHouse/pull/81197)([Lennard Eijsackers](https://github.com/Blokje5))。 -* `USE name` の代わりに `USE DATABASE name` と書けるようになりました。 [#81307](https://github.com/ClickHouse/ClickHouse/pull/81307) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* 利用可能なコーデックを確認するための新しいシステムテーブル `system.codecs` を追加しました(issue [#81525](https://github.com/ClickHouse/ClickHouse/issues/81525))。[#81600](https://github.com/ClickHouse/ClickHouse/pull/81600)([Jimmy Aguilar Mena](https://github.com/Ergus))。 -* `lag` および `lead` ウィンドウ関数をサポートします。 [#9887](https://github.com/ClickHouse/ClickHouse/issues/9887) をクローズしました。 [#82108](https://github.com/ClickHouse/ClickHouse/pull/82108)([Dmitry Novik](https://github.com/novikd))。 -* 関数 `tokens` は、ログに適した新しいトークナイザー `split` をサポートするようになりました。 [#80195](https://github.com/ClickHouse/ClickHouse/pull/80195) ([Robert Schulze](https://github.com/rschu1ze)). -* `clickhouse-local` に `--database` 引数のサポートを追加しました。これにより、既に作成済みのデータベースに切り替えることができます。この変更により [#44115](https://github.com/ClickHouse/ClickHouse/issues/44115) が解決されました。 [#81465](https://github.com/ClickHouse/ClickHouse/pull/81465) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 - -#### 実験的機能 {#experimental-feature} - -* ClickHouse Keeper を用いて、`Kafka2` に対して Kafka のリバランスに類似したロジックを実装しました。各レプリカについて 2 種類のパーティションロック(永続ロックと一時ロック)をサポートします。レプリカは可能な限り長く永続ロックを保持しようとしますが、任意の時点でレプリカ上の永続ロックの数は `all_topic_partitions / active_replicas_count`(ここで `all_topic_partitions` はすべてのパーティション数、`active_replicas_count` はアクティブなレプリカ数)を超えません。もしそれより多くなった場合、レプリカはいくつかのパーティションを解放します。また、一部のパーティションはレプリカによって一時的に保持されます。レプリカ上の一時ロックの最大数は動的に変化し、他のレプリカがいくつかのパーティションを永続ロックとして取得できるようにします。一時ロックを更新する際、レプリカはいったんそれらをすべて解放し、別のパーティションを再度取得しようとします。[#78726](https://github.com/ClickHouse/ClickHouse/pull/78726)([Daria Fomina](https://github.com/sinfillo))。 -* 実験的なテキストインデックスの改良として、キーと値のペアによる明示的なパラメータ指定をサポートしました。現在サポートされているパラメータは、必須の `tokenizer` と、オプションの `max_rows_per_postings_list` および `ngram_size` の 2 つです。[#80262](https://github.com/ClickHouse/ClickHouse/pull/80262)([Elmi Ahmadov](https://github.com/ahmadov))。 -* 以前は、セグメント ID をディスク上の (`.gin_sid`) ファイルを読み書きすることでオンザフライに更新していたため、全文インデックスでは `packed` ストレージはサポートされていませんでした。`packed` ストレージの場合、未コミットのファイルから値を読み出すことはサポートされておらず、これが問題につながっていました。現在はこの問題は解消されています。[#80852](https://github.com/ClickHouse/ClickHouse/pull/80852)([Elmi Ahmadov](https://github.com/ahmadov))。 -* 実験的な `gin` 型インデックス(PostgreSQL ハッカーたちの内輪ネタなので私は好みではありません)は `text` に改名されました。既存の `gin` 型インデックスは引き続きロード可能ですが、検索でそれらを使用しようとすると例外をスローし(代わりに `text` インデックスを提案します)、利用できません。[#80855](https://github.com/ClickHouse/ClickHouse/pull/80855)([Robert Schulze](https://github.com/rschu1ze))。 - -#### パフォーマンスの向上 {#performance-improvement} - -* 複数のプロジェクションを用いたフィルタリングをサポートし、パートレベルのフィルタリングで複数のプロジェクションを使用できるようにしました。これは [#55525](https://github.com/ClickHouse/ClickHouse/issues/55525) への対応です。これは、[#78429](https://github.com/ClickHouse/ClickHouse/issues/78429) に続く、プロジェクションインデックスを実装するための第 2 段階となる変更です。[#80343](https://github.com/ClickHouse/ClickHouse/pull/80343)([Amos Bird](https://github.com/amosbird))。 -* デフォルトでファイルシステムキャッシュに `SLRU` キャッシュポリシーを使用します。 [#75072](https://github.com/ClickHouse/ClickHouse/pull/75072) ([Kseniia Sumarokova](https://github.com/kssenii)). -* クエリパイプラインにおける Resize ステップでの競合状態を解消しました。 [#77562](https://github.com/ClickHouse/ClickHouse/pull/77562) ([Zhiguo Zhou](https://github.com/ZhiguoZh)). -* ネットワーク接続に紐づく単一スレッドではなく、パイプラインスレッドにブロックの圧縮/解凍およびシリアル化/逆シリアル化処理をオフロードするオプションを導入しました。設定 `enable_parallel_blocks_marshalling` で制御できます。これにより、イニシエータとリモートノード間で大量のデータを転送する分散クエリの高速化が見込まれます。 [#78694](https://github.com/ClickHouse/ClickHouse/pull/78694) ([Nikita Taranov](https://github.com/nickitat))。 -* すべての Bloom フィルター型のパフォーマンスを改善。[OpenHouse カンファレンスの動画](https://www.youtube.com/watch?v=yIVz0NKwQvA\&pp=ygUQb3BlbmhvdXNlIG9wZW5haQ%3D%3D) [#79800](https://github.com/ClickHouse/ClickHouse/pull/79800)([Delyan Kratunov](https://github.com/dkratunov))。 -* 片方の集合が空の場合に `UniqExactSet::merge` に高速パスを導入しました。また、LHS の集合が 2 レベルで RHS が 1 レベルの場合、RHS を 2 レベルに変換しないようにしました。 [#79971](https://github.com/ClickHouse/ClickHouse/pull/79971) ([Nikita Taranov](https://github.com/nickitat))。 -* 2レベルハッシュテーブルの使用時におけるメモリ再利用効率を改善し、ページフォールトを削減しました。これにより GROUP BY を高速化します。 [#80245](https://github.com/ClickHouse/ClickHouse/pull/80245) ([Jiebin Sun](https://github.com/jiebinn)). -* クエリ条件キャッシュで不要な更新を避け、ロック競合を削減しました。 [#80247](https://github.com/ClickHouse/ClickHouse/pull/80247) ([Jiebin Sun](https://github.com/jiebinn)). -* `concatenateBlocks` に対する軽微な最適化。並列ハッシュ結合にも効果がある可能性が高い。[#80328](https://github.com/ClickHouse/ClickHouse/pull/80328) ([李扬](https://github.com/taiyang-li))。 -* 主キー範囲からマーク範囲を選択する際、主キーが関数でラップされている場合には二分探索を使用できませんでした。このPRによりこの制限が緩和され、主キーが常に単調な関数のチェーンでラップされている場合、またはRPNに常に真となる要素が含まれている場合には、引き続き二分探索を適用できるようになりました。[#45536](https://github.com/ClickHouse/ClickHouse/issues/45536) をクローズします。 [#80597](https://github.com/ClickHouse/ClickHouse/pull/80597)([zoomxi](https://github.com/zoomxi))。 -* `Kafka` エンジンのシャットダウン速度を改善しました(複数の `Kafka` テーブルがある場合に発生していた余分な 3 秒の遅延を解消)。 [#80796](https://github.com/ClickHouse/ClickHouse/pull/80796) ([Azat Khuzhin](https://github.com/azat)). -* 非同期インサート: INSERT クエリのメモリ使用量を削減し、パフォーマンスを向上させます。 [#80972](https://github.com/ClickHouse/ClickHouse/pull/80972) ([Raúl Marín](https://github.com/Algunenano)). -* ログテーブルが無効になっている場合はプロセッサのプロファイリングを行わないようにしました。 [#81256](https://github.com/ClickHouse/ClickHouse/pull/81256) ([Raúl Marín](https://github.com/Algunenano))。これにより、ごく短いクエリの実行が高速化されます。 -* ソースが要求どおりの値である場合に `toFixedString` を高速化。 [#81257](https://github.com/ClickHouse/ClickHouse/pull/81257) ([Raúl Marín](https://github.com/Algunenano)). -* ユーザーにクォータ制限がない場合はクォータ値を処理しないようにしました。[#81549](https://github.com/ClickHouse/ClickHouse/pull/81549)([Raúl Marín](https://github.com/Algunenano))。これにより、ごく短いクエリの実行が高速になります。 -* メモリトラッキングにおける性能低下の問題を修正しました。 [#81694](https://github.com/ClickHouse/ClickHouse/pull/81694) ([Michael Kolupaev](https://github.com/al13n321)). -* 分散クエリにおけるシャーディングキーの最適化を改善しました。 [#78452](https://github.com/ClickHouse/ClickHouse/pull/78452) ([fhw12345](https://github.com/fhw12345)). -* 並列レプリカ: すべての読み取りタスクが他のレプリカに割り当てられている場合、未使用かつ遅いレプリカを待機しないようにしました。 [#80199](https://github.com/ClickHouse/ClickHouse/pull/80199) ([Igor Nikonov](https://github.com/devcrafter)). -* 並列レプリカでは、接続タイムアウトが個別の設定で管理されるようになりました。`parallel_replicas_connect_timeout_ms` 設定を参照してください。それ以前は、並列レプリカクエリの接続タイムアウト値として `connect_timeout_with_failover_ms`/`connect_timeout_with_failover_secure_ms` 設定が使用されていました(デフォルト値は 1 秒)。[#80421](https://github.com/ClickHouse/ClickHouse/pull/80421)([Igor Nikonov](https://github.com/devcrafter))。 -* ジャーナリング対応ファイルシステムでは、`mkdir` はディスクに永続化されるファイルシステムのジャーナルに書き込まれます。ディスクが遅い場合、これに長い時間がかかることがあります。これを `reserve lock` のスコープ外に移動しました。 [#81371](https://github.com/ClickHouse/ClickHouse/pull/81371) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Iceberg のマニフェストファイルの読み込みを、最初の読み取りクエリが実行されるまで遅延させました。 [#81619](https://github.com/ClickHouse/ClickHouse/pull/81619) ([Daniil Ivanik](https://github.com/divanik)). -* 該当する場合、`GLOBAL [NOT] IN` 述語を `PREWHERE` 句に移動できるようにしました。 [#79996](https://github.com/ClickHouse/ClickHouse/pull/79996) ([Eduard Karacharov](https://github.com/korowa)). - -#### 改善点 {#improvement} - -* `EXPLAIN SYNTAX` は新しいアナライザーを使用するようになりました。クエリツリーから構築された AST を返します。クエリツリーを AST に変換する前に適用されるパス数を制御するためのオプション `query_tree_passes` が追加されました。 [#74536](https://github.com/ClickHouse/ClickHouse/pull/74536) ([Vladimir Cherkasov](https://github.com/vdimir))。 -* Dynamic と JSON 向けに、フラット化されたシリアル化を行う Native フォーマットでの実装を追加しました。これにより、Dynamic 用の shared variant や JSON 用の shared data のような特別な構造を用いることなく、Dynamic および JSON データをシリアル化/デシリアル化できます。このシリアル化は、`output_format_native_use_flattened_dynamic_and_json_serialization` を設定することで有効化できます。また、このシリアル化は、さまざまな言語で実装されたクライアントにおいて、TCP プロトコル経由で Dynamic および JSON をより簡単にサポートするために利用できます。[#80499](https://github.com/ClickHouse/ClickHouse/pull/80499) ([Pavel Kruglov](https://github.com/Avogar)). -* エラー `AuthenticationRequired` 発生後に `S3` の認証情報を再取得するようにしました。 [#77353](https://github.com/ClickHouse/ClickHouse/pull/77353) ([Vitaly Baranov](https://github.com/vitlibar)). -* `system.asynchronous_metrics` にディクショナリ関連のメトリクスを追加しました。- `DictionaryMaxUpdateDelay` - ディクショナリ更新の最大遅延時間(秒)。- `DictionaryTotalFailedUpdates` - すべてのディクショナリで、最後に正常に読み込まれてから以降に発生したエラーの回数。[#78175](https://github.com/ClickHouse/ClickHouse/pull/78175) ([Vlad](https://github.com/codeworse))。 -* 破損したテーブルを退避する目的で作成された可能性があるデータベースについての警告を追加。 [#78841](https://github.com/ClickHouse/ClickHouse/pull/78841) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* `S3Queue`、`AzureQueue` エンジンに `_time` 仮想カラムを追加。[#78926](https://github.com/ClickHouse/ClickHouse/pull/78926)([Anton Ivashkin](https://github.com/ianton-ru))。 -* CPU 過負荷時の接続ドロップを制御する設定をホットリロード対応にしました。 [#79052](https://github.com/ClickHouse/ClickHouse/pull/79052) ([Alexey Katsman](https://github.com/alexkats)). -* Azure Blob Storage 上のプレーンディスクで、`system.tables` に報告されるデータパスにコンテナプレフィックスを追加し、S3 および GCP と一貫した形式で報告されるようにしました。 [#79241](https://github.com/ClickHouse/ClickHouse/pull/79241) ([Julia Kartseva](https://github.com/jkartseva)). -* 現在 clickhouse-client と local は、`param_`(アンダースコア)に加えて `param-`(ダッシュ)としてもクエリパラメータを受け付けます。これにより [#63093](https://github.com/ClickHouse/ClickHouse/issues/63093) が解決されました。[#79429](https://github.com/ClickHouse/ClickHouse/pull/79429)([Engel Danila](https://github.com/aaaengel))。 -* ローカルからリモート S3 へデータをコピーする際にチェックサムを有効にした場合の帯域幅割引に関する詳細な警告メッセージ。 [#79464](https://github.com/ClickHouse/ClickHouse/pull/79464) ([VicoWu](https://github.com/VicoWu))。 -* 以前は、`input_format_parquet_max_block_size = 0`(無効な値)の場合、ClickHouse がハングする問題がありましたが、この問題は修正されました。これにより [#79394](https://github.com/ClickHouse/ClickHouse/issues/79394) がクローズされました。[#79601](https://github.com/ClickHouse/ClickHouse/pull/79601)([abashkeev](https://github.com/abashkeev))。 -* `startup_scripts` に `throw_on_error` 設定を追加しました。`throw_on_error` が true の場合、すべてのクエリが正常に完了しない限りサーバーは起動しません。デフォルトでは `throw_on_error` は false であり、以前の動作が維持されます。 [#79732](https://github.com/ClickHouse/ClickHouse/pull/79732) ([Aleksandr Musorin](https://github.com/AVMusorin))。 -* 任意の種類の `http_handlers` で `http_response_headers` を追加できるようになりました。 [#79975](https://github.com/ClickHouse/ClickHouse/pull/79975) ([Andrey Zvonov](https://github.com/zvonand)). -* 関数 `reverse` が `Tuple` データ型をサポートするようになりました。[#80053](https://github.com/ClickHouse/ClickHouse/issues/80053) をクローズします。[#80083](https://github.com/ClickHouse/ClickHouse/pull/80083)([flynn](https://github.com/ucasfl))。 -* [#75817](https://github.com/ClickHouse/ClickHouse/issues/75817) を解決しました。`system.zookeeper` テーブルから `auxiliary_zookeepers` のデータを取得できるようにしました。[#80146](https://github.com/ClickHouse/ClickHouse/pull/80146) ([Nikolay Govorov](https://github.com/mrdimidium))。 -* サーバーの TCP ソケットに関する非同期メトリクスを追加しました。これによりオブザーバビリティが向上します。[#80187](https://github.com/ClickHouse/ClickHouse/issues/80187) をクローズしました。[#80188](https://github.com/ClickHouse/ClickHouse/pull/80188)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* `anyLast_respect_nulls` と `any_respect_nulls` を `SimpleAggregateFunction` としてサポートするようにしました。 [#80219](https://github.com/ClickHouse/ClickHouse/pull/80219) ([Diskein](https://github.com/Diskein)). -* レプリケーテッドデータベース向けの不要な `adjustCreateQueryForBackup` の呼び出しを削除しました。 [#80282](https://github.com/ClickHouse/ClickHouse/pull/80282) ([Vitaly Baranov](https://github.com/vitlibar)). -* `-- --config.value='abc'` のような `--` の後に続く追加オプションを、`clickhouse-local` で `=` 記号なしでも受け付けるようにしました。[#80292](https://github.com/ClickHouse/ClickHouse/issues/80292) をクローズ。[#80293](https://github.com/ClickHouse/ClickHouse/pull/80293)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* `SHOW ... LIKE` クエリ内のメタ文字をハイライト表示します。これにより [#80275](https://github.com/ClickHouse/ClickHouse/issues/80275) がクローズされます。[#80297](https://github.com/ClickHouse/ClickHouse/pull/80297)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* `clickhouse-local` で SQL UDF を永続化できるようにしました。以前に作成された関数は起動時に読み込まれるようになります。これにより [#80085](https://github.com/ClickHouse/ClickHouse/issues/80085) が解決されました。[#80300](https://github.com/ClickHouse/ClickHouse/pull/80300) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 予備的な DISTINCT ステップの explain plan における説明を修正。 [#80330](https://github.com/ClickHouse/ClickHouse/pull/80330) ([UnamedRus](https://github.com/UnamedRus))。 -* ODBC/JDBC で名前付きコレクションを使用可能にしました。 [#80334](https://github.com/ClickHouse/ClickHouse/pull/80334) ([Andrey Zvonov](https://github.com/zvonand)). -* 読み取り専用ディスクおよび故障ディスクの数に関するメトリクスを追加。DiskLocalCheckThread の開始をログに記録するインジケーターを追加。[#80391](https://github.com/ClickHouse/ClickHouse/pull/80391) ([VicoWu](https://github.com/VicoWu))。 -* `s3_plain_rewritable` ストレージでプロジェクションをサポートするようにしました。以前のバージョンでは、移動されたときにプロジェクションを参照している S3 内のメタデータオブジェクトが更新されませんでした。 [#70258](https://github.com/ClickHouse/ClickHouse/issues/70258) をクローズ。 [#80393](https://github.com/ClickHouse/ClickHouse/pull/80393) ([Sav](https://github.com/sberss))。 -* `SYSTEM UNFREEZE` コマンドは、readonly および write-once ディスク上のパーツを参照しなくなりました。これにより [#80430](https://github.com/ClickHouse/ClickHouse/issues/80430) が解決されました。 [#80432](https://github.com/ClickHouse/ClickHouse/pull/80432) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* マージされたパーツ関連のメッセージのログレベルを引き下げました。 [#80476](https://github.com/ClickHouse/ClickHouse/pull/80476) ([Hans Krutzer](https://github.com/hkrutzer)). -* Iceberg テーブルに対するパーティションプルーニングのデフォルト動作を変更しました。 [#80583](https://github.com/ClickHouse/ClickHouse/pull/80583) ([Melvyn Peignon](https://github.com/melvynator))。 -* インデックス検索アルゴリズムの可観測性向上のために、2 つの新しい ProfileEvents `IndexBinarySearchAlgorithm` と `IndexGenericExclusionSearchAlgorithm` を追加しました。[#80679](https://github.com/ClickHouse/ClickHouse/pull/80679)([Pablo Marcos](https://github.com/pamarcos))。 -* 古いカーネルで `MADV_POPULATE_WRITE` がサポートされていないことについて、ログに警告を出さないようにしました(ログがノイズで埋まるのを防ぐため)。 [#80704](https://github.com/ClickHouse/ClickHouse/pull/80704) ([Robert Schulze](https://github.com/rschu1ze)). -* `TTL` 式で `Date32` および `DateTime64` 型をサポートしました。 [#80710](https://github.com/ClickHouse/ClickHouse/pull/80710) ([Andrey Zvonov](https://github.com/zvonand)). -* `max_merge_delayed_streams_for_parallel_write` の互換性用の値を調整しました。 [#80760](https://github.com/ClickHouse/ClickHouse/pull/80760) ([Azat Khuzhin](https://github.com/azat)). -* クラッシュの修正:デストラクタ内で一時ファイル(ディスク上に一時データを退避するために使用されます)を削除しようとした際に例外がスローされると、プログラムが異常終了する可能性がありました。 [#80776](https://github.com/ClickHouse/ClickHouse/pull/80776) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* `SYSTEM SYNC REPLICA` に `IF EXISTS` 修飾子を追加しました。[#80810](https://github.com/ClickHouse/ClickHouse/pull/80810) ([Raúl Marín](https://github.com/Algunenano))。 -* "Having zero bytes, but read range is not finished..." に関する例外メッセージを詳細化し、`system.filesystem_cache` に finished_download_time 列を追加しました。 [#80849](https://github.com/ClickHouse/ClickHouse/pull/80849) ([Kseniia Sumarokova](https://github.com/kssenii)). -* `EXPLAIN` を indexes = 1 と併用した場合、出力に検索アルゴリズムのセクションを追加しました。そこには「binary search」または「generic exclusion search」のいずれかが表示されます。 [#80881](https://github.com/ClickHouse/ClickHouse/pull/80881) ([Pablo Marcos](https://github.com/pamarcos)). -* 2024年初めには、新しい analyzer がデフォルトで有効化されていなかったため、MySQL ハンドラーでは `prefer_column_name_to_alias` が true にハードコードされていました。現在は、このハードコードを解除できるようになりました。 [#80916](https://github.com/ClickHouse/ClickHouse/pull/80916) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* `system.iceberg_history` で glue や iceberg rest のようなカタログデータベースの履歴も表示されるようになりました。また、一貫性のため、`system.iceberg_history` 内の `table_name` および `database_name` 列名をそれぞれ `table` および `database` に変更しました。 [#80975](https://github.com/ClickHouse/ClickHouse/pull/80975) ([alesapin](https://github.com/alesapin))。 -* `merge` テーブル関数で読み取り専用モードをサポートし、使用時に `CREATE TEMPORARY TABLE` 権限を必要としないようにしました。 [#80981](https://github.com/ClickHouse/ClickHouse/pull/80981) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* インメモリキャッシュの観測性を改善(不完全な `system.asynchronouse_metrics` ではなく、`system.metrics` でキャッシュに関する情報を公開)。インメモリキャッシュのサイズ(バイト単位)を `dashboard.html` に追加しました。`VectorSimilarityIndexCacheSize` / `IcebergMetadataFilesCacheSize` は `VectorSimilarityIndexCacheBytes` / `IcebergMetadataFilesCacheBytes` にリネームされました。[#81023](https://github.com/ClickHouse/ClickHouse/pull/81023) ([Azat Khuzhin](https://github.com/azat))。 -* `system.rocksdb` から読み取る際に、`RocksDB` テーブルを保持できないエンジンを使用するデータベースを無視するようにしました。 [#81083](https://github.com/ClickHouse/ClickHouse/pull/81083) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* `clickhouse-local` の設定ファイルで `filesystem_caches` と `named_collections` を許可できるようにしました。 [#81105](https://github.com/ClickHouse/ClickHouse/pull/81105) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* `INSERT` クエリ内での `PARTITION BY` のシンタックスハイライトを修正しました。以前のバージョンでは、`PARTITION BY` がキーワードとしてハイライトされていませんでした。[#81106](https://github.com/ClickHouse/ClickHouse/pull/81106)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* Web UI における 2 つの小さな改善: - `CREATE` や `INSERT` のような出力を持たないクエリを正しく処理するようにしました(つい最近まで、これらのクエリはスピナーが無限に回転し続けていました); - テーブルをダブルクリックした際に、先頭までスクロールするようにしました。 [#81131](https://github.com/ClickHouse/ClickHouse/pull/81131) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* `MemoryResidentWithoutPageCache` メトリクスは、ユーザー空間のページキャッシュを除いた、サーバープロセスが使用している物理メモリ量をバイト単位で示します。これは、ユーザー空間のページキャッシュが利用されている場合に、実際のメモリ使用量をより正確に把握するのに役立ちます。ユーザー空間のページキャッシュが無効化されている場合、この値は `MemoryResident` と等しくなります。 [#81233](https://github.com/ClickHouse/ClickHouse/pull/81233) ([Jayme Bird](https://github.com/jaymebrd))。 -* クライアント、ローカルサーバー、Keeper クライアントおよび Disks アプリで手動で記録された例外に「ログ済み」マークを付け、二重にログが記録されないようにしました。 [#81271](https://github.com/ClickHouse/ClickHouse/pull/81271) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* `use_skip_indexes_if_final` と `use_skip_indexes_if_final_exact_mode` の設定は、デフォルトで `True` に設定されるようになりました。`FINAL` 句を含むクエリは、(該当する場合)スキップインデックスを使用してグラニュールを絞り込み、一致する主キー範囲に対応する追加のグラニュールも読み取るようになります。近似的/不正確な結果という従来の挙動が必要なユーザーは、慎重に評価したうえで `use_skip_indexes_if_final_exact_mode` を FALSE に設定できます。 [#81331](https://github.com/ClickHouse/ClickHouse/pull/81331) ([Shankar Iyer](https://github.com/shankar-iyer)). -* Web UI で複数のクエリがある場合、カーソル位置にあるクエリが実行されます。 [#80977](https://github.com/ClickHouse/ClickHouse/issues/80977) の継続です。 [#81354](https://github.com/ClickHouse/ClickHouse/pull/81354)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* このPRは、変換関数の単調性チェックにおける `is_strict` の実装上の問題を修正します。現在、`toFloat64(UInt32)` や `toDate(UInt8)` などの一部の変換関数は、本来は true を返すべきところで、`is_strict` を誤って false として返しています。[#81359](https://github.com/ClickHouse/ClickHouse/pull/81359) ([zoomxi](https://github.com/zoomxi))。 -* `KeyCondition` が連続した範囲にマッチするかをチェックする際、キーが非厳密な関数チェーンでラップされている場合には、`Constraint::POINT` を `Constraint::RANGE` に変換する必要が生じることがあります。たとえば、`toDate(event_time) = '2025-06-03'` は、`event_time` に対して [`2025-06-03 00:00:00`, `2025-06-04 00:00:00`) の範囲を意味します。この PR はこの動作を修正します。 [#81400](https://github.com/ClickHouse/ClickHouse/pull/81400) ([zoomxi](https://github.com/zoomxi)). -* `clickhouse`/`ch` エイリアスは、`--host` または `--port` が指定されている場合、`clickhouse-local` ではなく `clickhouse-client` を呼び出します。[#79422](https://github.com/ClickHouse/ClickHouse/issues/79422) の継続。[#65252](https://github.com/ClickHouse/ClickHouse/issues/65252) をクローズ。[#81509](https://github.com/ClickHouse/ClickHouse/pull/81509)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* keeper のレスポンス時間分布データが取得できたので、メトリクス用のヒストグラムバケットをチューニングできるようになりました。 [#81516](https://github.com/ClickHouse/ClickHouse/pull/81516) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* プロファイルイベント `PageCacheReadBytes` を追加。 [#81742](https://github.com/ClickHouse/ClickHouse/pull/81742) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* ファイルシステムキャッシュで発生する論理エラー「Having zero bytes but range is not finished」を修正しました。 [#81868](https://github.com/ClickHouse/ClickHouse/pull/81868) ([Kseniia Sumarokova](https://github.com/kssenii)). - -#### バグ修正(公式安定版リリースでユーザーに影響する誤動作) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* パラメータ化されたビューでの SELECT EXCEPT クエリの問題を修正し、[#49447](https://github.com/ClickHouse/ClickHouse/issues/49447) をクローズ。[#57380](https://github.com/ClickHouse/ClickHouse/pull/57380)([Nikolay Degterinsky](https://github.com/evillique))。 -* Analyzer: JOIN におけるカラム型の昇格後に、カラムプロジェクション名を修正。[#63345](https://github.com/ClickHouse/ClickHouse/issues/63345) をクローズ。[#63519](https://github.com/ClickHouse/ClickHouse/pull/63519)([Dmitry Novik](https://github.com/novikd))。 -* analyzer_compatibility_join_using_top_level_identifier が有効な場合に、列名の衝突が発生する場合の論理エラーを修正しました。 [#75676](https://github.com/ClickHouse/ClickHouse/pull/75676) ([Vladimir Cherkasov](https://github.com/vdimir))。 -* `allow_push_predicate_ast_for_distributed_subqueries` が有効な場合に、プッシュダウンされた述語における CTE の扱いを修正しました。[#75647](https://github.com/ClickHouse/ClickHouse/issues/75647) を修正しました。[#79672](https://github.com/ClickHouse/ClickHouse/issues/79672) を修正しました。[#77316](https://github.com/ClickHouse/ClickHouse/pull/77316)([Dmitry Novik](https://github.com/novikd))。 -* `SYSTEM SYNC REPLICA LIGHTWEIGHT 'foo'` が、指定したレプリカが存在しない場合でも成功として扱ってしまう問題を修正しました。このコマンドは、同期を試行する前に Keeper 上にレプリカが存在することを正しく検証するようになりました。 [#78405](https://github.com/ClickHouse/ClickHouse/pull/78405) ([Jayme Bird](https://github.com/jaymebrd)). -* `ON CLUSTER` クエリの `CONSTRAINT` セクション内で `currentDatabase` 関数を使用したごく限定的なケースで発生するクラッシュを修正しました。[#78100](https://github.com/ClickHouse/ClickHouse/issues/78100) をクローズします。 [#79070](https://github.com/ClickHouse/ClickHouse/pull/79070) ([pufit](https://github.com/pufit)). -* サーバー間クエリにおける外部ロールの伝達を修正。 [#79099](https://github.com/ClickHouse/ClickHouse/pull/79099) ([Andrey Zvonov](https://github.com/zvonand)). -* SingleValueDataGeneric では、Field の代わりに IColumn を使用するようにしてください。`Dynamic/Variant/JSON` 型に対する `argMax` など、一部の集約関数で誤った戻り値が返される問題が修正されます。[#79166](https://github.com/ClickHouse/ClickHouse/pull/79166) ([Pavel Kruglov](https://github.com/Avogar)). -* Azure Blob Storage 用の use_native_copy および allow_azure_native_copy 設定の適用を修正し、認証情報が一致する場合にのみネイティブコピーを使用するように更新しました。これにより [#78964](https://github.com/ClickHouse/ClickHouse/issues/78964) が解決されました。 [#79561](https://github.com/ClickHouse/ClickHouse/pull/79561) ([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 -* 列が相関付けられているかどうかをチェックする際に、その列の起源スコープが不明であることに起因して発生していた論理エラーを修正。[#78183](https://github.com/ClickHouse/ClickHouse/issues/78183) を修正。[#79451](https://github.com/ClickHouse/ClickHouse/issues/79451) を修正。[#79727](https://github.com/ClickHouse/ClickHouse/pull/79727)([Dmitry Novik](https://github.com/novikd))。 -* ColumnConst と Analyzer を使用した grouping sets で誤った結果が出る問題を修正。 [#79743](https://github.com/ClickHouse/ClickHouse/pull/79743) ([Andrey Zvonov](https://github.com/zvonand)). -* ローカルレプリカが古い状態のときに Distributed テーブルから読み取る際に発生する、ローカルシャードにおける結果の重複を修正しました。 [#79761](https://github.com/ClickHouse/ClickHouse/pull/79761) ([Eduard Karacharov](https://github.com/korowa)). -* 負の符号ビットを持つ NaN の並び順を修正しました。 [#79847](https://github.com/ClickHouse/ClickHouse/pull/79847) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* `GROUP BY ALL` は `GROUPING` 句を考慮しないようになりました。 [#79915](https://github.com/ClickHouse/ClickHouse/pull/79915) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* `TopK` / `TopKWeighted` 関数において、容量が尽きていない場合でも過大な誤差が発生していた誤った状態マージ処理を修正しました。 [#79939](https://github.com/ClickHouse/ClickHouse/pull/79939) ([Joel Höner](https://github.com/athre0z)). -* `azure_blob_storage` オブジェクトストレージで `readonly` 設定が尊重されるようにしました。 [#79954](https://github.com/ClickHouse/ClickHouse/pull/79954) ([Julia Kartseva](https://github.com/jkartseva)). -* `match(column, '^…')` をバックスラッシュでエスケープされた文字と併用した際に発生していた、クエリ結果が誤る問題およびメモリ不足によるクラッシュを修正しました。 [#79969](https://github.com/ClickHouse/ClickHouse/pull/79969) ([filimonov](https://github.com/filimonov)). -* データレイクに対する Hive パーティショニングを無効化します。 [https://github.com/issues/assigned?issue=ClickHouse%7CClickHouse%7C79937](https://github.com/issues/assigned?issue=ClickHouse%7CClickHouse%7C79937) を部分的に解決します。 [#80005](https://github.com/ClickHouse/ClickHouse/pull/80005)([Daniil Ivanik](https://github.com/divanik))。 -* ラムダ式を含む skip index が適用されない問題を修正しました。インデックス定義内の高水準関数がクエリ内のものと完全に一致する場合にも、正しく適用されるようにしました。 [#80025](https://github.com/ClickHouse/ClickHouse/pull/80025) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* レプリケーションログから ATTACH_PART コマンドを実行するレプリカでパーツをアタッチする際のメタデータバージョンを修正しました。 [#80038](https://github.com/ClickHouse/ClickHouse/pull/80038) ([Aleksei Filatov](https://github.com/aalexfvk)). -* Executable User Defined Functions (eUDF) の名前は、他の関数とは異なり、`system.query_log` テーブルの `used_functions` カラムに追加されませんでした。この PR では、リクエストで eUDF が使用された場合に、その eUDF 名が追加されるようにしました。 [#80073](https://github.com/ClickHouse/ClickHouse/pull/80073) ([Kyamran](https://github.com/nibblerenush))。 -* LowCardinality(FixedString) を用いた Arrow フォーマットにおける論理エラーを修正しました。 [#80156](https://github.com/ClickHouse/ClickHouse/pull/80156) ([Pavel Kruglov](https://github.com/Avogar)). -* Merge エンジンからのサブカラム読み取りを修正。 [#80158](https://github.com/ClickHouse/ClickHouse/pull/80158) ([Pavel Kruglov](https://github.com/Avogar)). -* `KeyCondition` における数値型の比較処理に関するバグを修正しました。 [#80207](https://github.com/ClickHouse/ClickHouse/pull/80207) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* projection を持つテーブルに対して lazy materialization を適用した場合に発生する `AMBIGUOUS_COLUMN_NAME` を修正しました。 [#80251](https://github.com/ClickHouse/ClickHouse/pull/80251) ([Igor Nikonov](https://github.com/devcrafter)). -* 暗黙的プロジェクション使用時に、`LIKE 'ab_c%'` のような文字列プレフィックスフィルタに対して誤った `count` の最適化が行われていた問題を修正しました。これにより [#80250](https://github.com/ClickHouse/ClickHouse/issues/80250) が修正されます。[#80261](https://github.com/ClickHouse/ClickHouse/pull/80261)([Amos Bird](https://github.com/amosbird))。 -* MongoDB ドキュメント内のネストされた数値フィールドが文字列として誤ってシリアル化される問題を修正しました。MongoDB から取得するドキュメントの最大深度制限を撤廃しました。 [#80289](https://github.com/ClickHouse/ClickHouse/pull/80289) ([Kirill Nikiforov](https://github.com/allmazz)). -* Replicated データベースにおける RMT のメタデータチェックをより緩く行うようにしました。 [#80296](https://github.com/ClickHouse/ClickHouse/issues/80296) をクローズ。 [#80298](https://github.com/ClickHouse/ClickHouse/pull/80298)([Nikolay Degterinsky](https://github.com/evillique))。 -* PostgreSQL ストレージ用の DateTime および DateTime64 のテキスト表現を修正しました。 [#80301](https://github.com/ClickHouse/ClickHouse/pull/80301) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* `StripeLog` テーブルでタイムゾーン付きの `DateTime` を許可するようにしました。これにより [#44120](https://github.com/ClickHouse/ClickHouse/issues/44120) が解決されます。[#80304](https://github.com/ClickHouse/ClickHouse/pull/80304)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* クエリプランのステップで行数が変わる場合は、非決定的関数を含む述語に対するフィルタープッシュダウンを行わないようにしました。 [#40273](https://github.com/ClickHouse/ClickHouse/issues/40273) を修正。 [#80329](https://github.com/ClickHouse/ClickHouse/pull/80329)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* サブカラムを含むプロジェクションで発生し得る論理エラーやクラッシュを修正。 [#80333](https://github.com/ClickHouse/ClickHouse/pull/80333) ([Pavel Kruglov](https://github.com/Avogar)). -* `ON` 句が単純な等価条件でない場合に、論理 JOIN ステップに対するフィルタープッシュダウンの最適化が原因で発生する `NOT_FOUND_COLUMN_IN_BLOCK` エラーを修正。[#79647](https://github.com/ClickHouse/ClickHouse/issues/79647) と [#77848](https://github.com/ClickHouse/ClickHouse/issues/77848) を修正。[#80360](https://github.com/ClickHouse/ClickHouse/pull/80360)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* パーティション化テーブルで逆順のキーを読み取る際に誤った結果が返る不具合を修正しました。この修正は [#79987](https://github.com/ClickHouse/ClickHouse/issues/79987) に対応するものです。[#80448](https://github.com/ClickHouse/ClickHouse/pull/80448)([Amos Bird](https://github.com/amosbird))。 -* Nullable キーを持つテーブルで、optimize_read_in_order が有効な場合に誤った並び順になる問題を修正しました。 [#80515](https://github.com/ClickHouse/ClickHouse/pull/80515) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* `SYSTEM STOP REPLICATED VIEW` を使用してリフレッシュ可能なマテリアライズドビューを一時停止している場合に、その DROP がハングする問題を修正しました。 [#80543](https://github.com/ClickHouse/ClickHouse/pull/80543) ([Michael Kolupaev](https://github.com/al13n321)). -* 分散クエリで定数タプルを使用した場合に発生する 'Cannot find column' エラーの問題を修正。 [#80596](https://github.com/ClickHouse/ClickHouse/pull/80596) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* `join_use_nulls` 使用時の Distributed テーブルにおける `shardNum` 関数を修正。 [#80612](https://github.com/ClickHouse/ClickHouse/pull/80612) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* Merge エンジン配下のテーブルの一部にしか存在しないカラムを読み取る際に、誤った結果が返る問題を修正しました。 [#80643](https://github.com/ClickHouse/ClickHouse/pull/80643) ([Pavel Kruglov](https://github.com/Avogar)). -* replxx のハングが原因となり得る SSH プロトコルの問題を修正。 [#80688](https://github.com/ClickHouse/ClickHouse/pull/80688) ([Azat Khuzhin](https://github.com/azat)). -* `iceberg_history` テーブル内のタイムスタンプが正しくなるよう修正しました。 [#80711](https://github.com/ClickHouse/ClickHouse/pull/80711) ([Melvyn Peignon](https://github.com/melvynator))。 -* 辞書の登録に失敗した場合に発生しうるクラッシュを修正しました(`CREATE DICTIONARY` が `CANNOT_SCHEDULE_TASK` で失敗した際に、辞書レジストリ内にダングリングポインタが残る可能性があり、その後クラッシュにつながっていました)。 [#80714](https://github.com/ClickHouse/ClickHouse/pull/80714) ([Azat Khuzhin](https://github.com/azat)). -* オブジェクトストレージ用テーブル関数における単一要素の enum グロブの処理を修正しました。 [#80716](https://github.com/ClickHouse/ClickHouse/pull/80716) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Tuple(Dynamic) と String の比較関数における誤った結果型を修正し、論理エラーを引き起こしていた問題を解消しました。 [#80728](https://github.com/ClickHouse/ClickHouse/pull/80728) ([Pavel Kruglov](https://github.com/Avogar)). -* Unity Catalog 向けに不足していたサポート対象データ型 `timestamp_ntz` を追加しました。[#79535](https://github.com/ClickHouse/ClickHouse/issues/79535)、[#79875](https://github.com/ClickHouse/ClickHouse/issues/79875) を修正しました。[#80740](https://github.com/ClickHouse/ClickHouse/pull/80740)([alesapin](https://github.com/alesapin))。 -* `IN cte` を含む分散クエリで発生していた `THERE_IS_NO_COLUMN` エラーを修正。[#75032](https://github.com/ClickHouse/ClickHouse/issues/75032) を解決。[#80757](https://github.com/ClickHouse/ClickHouse/pull/80757)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* 外部 ORDER BY でファイル数が過剰になる問題(メモリ使用量が過大になる原因)を修正。 [#80777](https://github.com/ClickHouse/ClickHouse/pull/80777) ([Azat Khuzhin](https://github.com/azat)). -* このPRは、[#80742](https://github.com/ClickHouse/ClickHouse/issues/80742) をクローズする可能性があります。[#80783](https://github.com/ClickHouse/ClickHouse/pull/80783)([zoomxi](https://github.com/zoomxi))。 -* Kafka において get_member_id() が NULL から std::string を生成していたことにより発生していたクラッシュを修正しました (ブローカーへの接続に失敗した場合にのみ発生していた問題と思われます)。 [#80793](https://github.com/ClickHouse/ClickHouse/pull/80793) ([Azat Khuzhin](https://github.com/azat)). -* Kafka エンジンをシャットダウンする前にコンシューマーの終了を適切に待機するようにしました(シャットダウン後もコンシューマーがアクティブなままだと、さまざまなデバッグアサーションがトリガーされる可能性があり、またテーブルが drop / detach された後もバックグラウンドでブローカーからデータを読み続けてしまう場合があります)。 [#80795](https://github.com/ClickHouse/ClickHouse/pull/80795) ([Azat Khuzhin](https://github.com/azat))。 -* `predicate-push-down` 最適化により発生する `NOT_FOUND_COLUMN_IN_BLOCK` を修正しました。これにより [#80443](https://github.com/ClickHouse/ClickHouse/issues/80443) を解決します。 [#80834](https://github.com/ClickHouse/ClickHouse/pull/80834)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* USING を伴う JOIN におけるテーブル関数内のアスタリスク(`*`)マッチャーの解決時に発生する論理エラーを修正。 [#80894](https://github.com/ClickHouse/ClickHouse/pull/80894) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Iceberg メタデータファイルキャッシュのメモリ計上を修正。 [#80904](https://github.com/ClickHouse/ClickHouse/pull/80904) ([Azat Khuzhin](https://github.com/azat)). -* NULL 許容パーティションキーで誤ったパーティション分割が行われる問題を修正。 [#80913](https://github.com/ClickHouse/ClickHouse/pull/80913) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* 述語プッシュダウン(`allow_push_predicate_ast_for_distributed_subqueries=1`)を有効にした分散クエリで、イニシエータ上にソーステーブルが存在しない場合に発生する `Table does not exist` エラーを修正しました。この変更は [#77281](https://github.com/ClickHouse/ClickHouse/issues/77281) の問題を解決します。 [#80915](https://github.com/ClickHouse/ClickHouse/pull/80915)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* 名前付きウィンドウを使用するネストされた関数における論理エラーを修正。 [#80926](https://github.com/ClickHouse/ClickHouse/pull/80926) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* Nullable および浮動小数点列に対する extremes の処理を修正。 [#80970](https://github.com/ClickHouse/ClickHouse/pull/80970) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* system.tables からのクエリ中に発生し得るクラッシュを修正しました(メモリプレッシャーがかかっている状況で発生しやすい問題)。 [#80976](https://github.com/ClickHouse/ClickHouse/pull/80976) ([Azat Khuzhin](https://github.com/azat)). -* ファイル拡張子から圧縮形式を推論するファイルに対して、truncate を伴うアトミックなリネーム処理を修正。 [#80979](https://github.com/ClickHouse/ClickHouse/pull/80979) ([Pablo Marcos](https://github.com/pamarcos))。 -* ErrorCodes::getName を修正。 [#81032](https://github.com/ClickHouse/ClickHouse/pull/81032) ([RinChanNOW](https://github.com/RinChanNOWWW))。 -* Unity Catalog で、ユーザーにすべてのテーブルへの権限がない場合にテーブル一覧を取得できないバグを修正しました。この修正により、すべてのテーブルが正しく一覧表示されるようになり、アクセス制限されたテーブルを読み取ろうとした場合には例外がスローされます。 [#81044](https://github.com/ClickHouse/ClickHouse/pull/81044) ([alesapin](https://github.com/alesapin)). -* これにより、`SHOW TABLES` クエリにおいて、ClickHouse はデータレイクカタログからのエラーや予期しない応答を無視するようになりました。[#79725](https://github.com/ClickHouse/ClickHouse/issues/79725) を修正。[#81046](https://github.com/ClickHouse/ClickHouse/pull/81046)([alesapin](https://github.com/alesapin))。 -* JSONExtract および JSON 型のパースにおける、整数値からの DateTime64 の読み取りを修正。 [#81050](https://github.com/ClickHouse/ClickHouse/pull/81050) ([Pavel Kruglov](https://github.com/Avogar)). -* スキーマ推論キャッシュに date_time_input_format 設定を反映するようにしました。 [#81052](https://github.com/ClickHouse/ClickHouse/pull/81052) ([Pavel Kruglov](https://github.com/Avogar)). -* クエリ開始後からカラム送信前の間にテーブルが DROP された場合に INSERT がクラッシュする問題を修正。 [#81053](https://github.com/ClickHouse/ClickHouse/pull/81053) ([Azat Khuzhin](https://github.com/azat)). -* quantileDeterministic における未初期化値の使用を修正しました。 [#81062](https://github.com/ClickHouse/ClickHouse/pull/81062) ([Azat Khuzhin](https://github.com/azat)). -* `metadatastoragefromdisk` ディスクのトランザクションにおけるハードリンク数の管理を修正し、テストを追加。 [#81066](https://github.com/ClickHouse/ClickHouse/pull/81066) ([Sema Checherinda](https://github.com/CheSema)). -* 他の関数と異なり、ユーザー定義関数 (UDF) の名前は `system.query_log` テーブルに追加されていませんでした。このPRでは、リクエスト内でUDFが使用された場合、そのUDF名を `used_executable_user_defined_functions` または `used_sql_user_defined_functions` のいずれか一方の列に追加するよう実装しています。 [#81101](https://github.com/ClickHouse/ClickHouse/pull/81101) ([Kyamran](https://github.com/nibblerenush)). -* HTTP プロトコル経由でテキスト形式(`JSON`、`Values` など)を用いてデータを挿入する際に、`Enum` フィールドを省略した場合に発生していた `Too large size ... passed to allocator` エラーや、クラッシュが起こりうる問題を修正しました。 [#81145](https://github.com/ClickHouse/ClickHouse/pull/81145) ([Anton Popov](https://github.com/CurtizJ)). -* non-MT の MV にプッシュされる INSERT ブロックに Sparse 列が含まれている場合の LOGICAL_ERROR を修正。 [#81161](https://github.com/ClickHouse/ClickHouse/pull/81161) ([Azat Khuzhin](https://github.com/azat)). -* クロスレプリケーション環境で `distributed_product_mode_local=local` を使用した際に発生する `Unknown table expression identifier` エラーを修正。 [#81162](https://github.com/ClickHouse/ClickHouse/pull/81162) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* フィルタリング後の Parquet ファイルにおける行数のキャッシュが誤っていた問題を修正しました。 [#81184](https://github.com/ClickHouse/ClickHouse/pull/81184) ([Michael Kolupaev](https://github.com/al13n321)). -* 相対キャッシュパス使用時の `fs cache max_size_to_total_space` 設定を修正しました。 [#81237](https://github.com/ClickHouse/ClickHouse/pull/81237) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Parquet 形式で const タプルやマップを出力する際に clickhouse-local がクラッシュする問題を修正しました。 [#81249](https://github.com/ClickHouse/ClickHouse/pull/81249) ([Michael Kolupaev](https://github.com/al13n321)). -* ネットワーク経由で受信した配列オフセットを検証するようにしました。 [#81269](https://github.com/ClickHouse/ClickHouse/pull/81269) ([Azat Khuzhin](https://github.com/azat)). -* 空のテーブルを `JOIN` し、ウィンドウ関数を使用するクエリにおける一部のコーナーケースを修正しました。このバグにより並列ストリーム数が爆発的に増加し、その結果 OOM が発生していました。 [#81299](https://github.com/ClickHouse/ClickHouse/pull/81299) ([Alexander Gololobov](https://github.com/davenger)). -* datalake クラスター関数(`deltaLakeCluster`、`icebergCluster` など)に対する修正: (1) 旧アナライザで `Cluster` 関数を使用した場合に `DataLakeConfiguration` で発生する可能性のあったセグメンテーションフォルトを修正; (2) 重複していた data lake メタデータ更新(不要なオブジェクトストレージへのリクエスト)を削除; (3) フォーマットが明示的に指定されていない場合のオブジェクトストレージでの不要なリスト処理を修正(非クラスター data lake エンジンではすでに行われていたもの)。 [#81300](https://github.com/ClickHouse/ClickHouse/pull/81300) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* force_restore_data フラグで失われた Keeper メタデータを復旧できるようにしました。 [#81324](https://github.com/ClickHouse/ClickHouse/pull/81324) ([Raúl Marín](https://github.com/Algunenano)). -* delta-kernel におけるリージョンエラーを修正し、[#79914](https://github.com/ClickHouse/ClickHouse/issues/79914) を解消。 [#81353](https://github.com/ClickHouse/ClickHouse/pull/81353)([Kseniia Sumarokova](https://github.com/kssenii))。 -* divideOrNull に対する誤った JIT を無効化しました。 [#81370](https://github.com/ClickHouse/ClickHouse/pull/81370) ([Raúl Marín](https://github.com/Algunenano))。 -* パーティション列名が長い MergeTree テーブルで発生する INSERT エラーを修正。 [#81390](https://github.com/ClickHouse/ClickHouse/pull/81390) ([hy123q](https://github.com/haoyangqian)). -* [#81957](https://github.com/ClickHouse/ClickHouse/issues/81957) にバックポート済み: マージ処理中に例外が発生した場合に `Aggregator` がクラッシュする可能性のあった問題を修正しました。 [#81450](https://github.com/ClickHouse/ClickHouse/pull/81450) ([Nikita Taranov](https://github.com/nickitat))。 -* 複数の manifest ファイルの内容をメモリに保持しないようにしました。[#81470](https://github.com/ClickHouse/ClickHouse/pull/81470) ([Daniil Ivanik](https://github.com/divanik))。 -* シャットダウン時にバックグラウンドプール(`background_.*pool_size`)で発生する可能性があるクラッシュを修正。[#81473](https://github.com/ClickHouse/ClickHouse/pull/81473) ([Azat Khuzhin](https://github.com/azat)). -* `URL` エンジンを使用してテーブルに書き込みを行う際に発生していた `Npy` フォーマットでの境界外読み取りを修正。これにより [#81356](https://github.com/ClickHouse/ClickHouse/issues/81356) をクローズします。[#81502](https://github.com/ClickHouse/ClickHouse/pull/81502)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* Web UI に `NaN%` が表示される可能性があります(よくある JavaScript の問題によるものです)。[#81507](https://github.com/ClickHouse/ClickHouse/pull/81507)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* `database_replicated_enforce_synchronous_settings=1` が設定されている場合の `DatabaseReplicated` を修正。 [#81564](https://github.com/ClickHouse/ClickHouse/pull/81564) ([Azat Khuzhin](https://github.com/azat)). -* LowCardinality(Nullable(...)) 型のソート順を修正しました。 [#81583](https://github.com/ClickHouse/ClickHouse/pull/81583) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* ソケットからリクエストを最後まで読み取っていない場合、サーバーが HTTP 接続を維持しないようにしました。 [#81595](https://github.com/ClickHouse/ClickHouse/pull/81595) ([Sema Checherinda](https://github.com/CheSema)). -* スカラー相関サブクエリが射影式の Nullable な結果を返すようにしました。相関サブクエリが空の結果セットを生成する場合の不具合を修正しました。 [#81632](https://github.com/ClickHouse/ClickHouse/pull/81632) ([Dmitry Novik](https://github.com/novikd)). -* `ReplicatedMergeTree` への `ATTACH` 中に発生する `Unexpected relative path for a deduplicated part` エラーを修正。 [#81647](https://github.com/ClickHouse/ClickHouse/pull/81647) ([Azat Khuzhin](https://github.com/azat)). -* クエリ設定 `use_iceberg_partition_pruning` は、クエリコンテキストではなくグローバルコンテキストを使用しているため、Iceberg ストレージでは有効になりません。デフォルト値が true であるため致命的ではありませんが、この PR によって修正されます。 [#81673](https://github.com/ClickHouse/ClickHouse/pull/81673) ([Han Fei](https://github.com/hanfei1991)). -* [#82128](https://github.com/ClickHouse/ClickHouse/issues/82128) にバックポート: TTL 式で dict を使用している場合にマージ処理中に発生する「Context has expired」エラーを修正。 [#81690](https://github.com/ClickHouse/ClickHouse/pull/81690) ([Azat Khuzhin](https://github.com/azat)). -* `merge_max_block_size` がゼロ以外であることを保証するために、MergeTree 設定へのバリデーションを追加しました。 [#81693](https://github.com/ClickHouse/ClickHouse/pull/81693) ([Bharat Nallan](https://github.com/bharatnc)). -* `DROP VIEW` クエリがハングする問題が発生していた `clickhouse-local` を修正しました。 [#81705](https://github.com/ClickHouse/ClickHouse/pull/81705) ([Bharat Nallan](https://github.com/bharatnc)). -* 一部のケースにおける StorageRedis の JOIN を修正しました。[#81736](https://github.com/ClickHouse/ClickHouse/pull/81736) ([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 -* 空の `USING ()` を使用し旧アナライザが有効な場合に発生する `ConcurrentHashJoin` のクラッシュを修正。 [#81754](https://github.com/ClickHouse/ClickHouse/pull/81754) ([Nikita Taranov](https://github.com/nickitat)). -* Keeper の修正: ログに無効なエントリが存在する場合は、新しいログの commit をブロックするようにしました。これまでは、leader が一部のログを誤って適用しても、follower がダイジェストの不一致を検知して中断しているにもかかわらず、新しいログの commit を継続していました。 [#81780](https://github.com/ClickHouse/ClickHouse/pull/81780) ([Antonio Andelic](https://github.com/antonio2368)). -* スカラー相関サブクエリの処理中に必須列が読み込まれない問題を修正しました。[#81716](https://github.com/ClickHouse/ClickHouse/issues/81716) を修正しました。[#81805](https://github.com/ClickHouse/ClickHouse/pull/81805)([Dmitry Novik](https://github.com/novikd))。 -* 誰かがコードのあちこちに Kusto を紛れ込ませていましたが、きれいに掃除しました。これで [#81643](https://github.com/ClickHouse/ClickHouse/issues/81643) がクローズされます。[#81885](https://github.com/ClickHouse/ClickHouse/pull/81885)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 以前のバージョンでは、`/js` へのリクエストに対してサーバーが不要に多くのコンテンツを返していました。これにより [#61890](https://github.com/ClickHouse/ClickHouse/issues/61890) がクローズされました。 [#81895](https://github.com/ClickHouse/ClickHouse/pull/81895)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* これまで、`MongoDB` テーブルエンジンの定義では、`host:port` 引数にパスコンポーネントを含めることができましたが、これは暗黙的に無視されていました。`mongodb` 統合では、そのようなテーブルの読み込みを拒否していました。この修正により、*`MongoDB` エンジンが 5 つの引数を持つ場合には、そのようなテーブルの読み込みを許可し、引数から取得したデータベース名を使用しつつパスコンポーネントを無視します。* *注:* この修正は、新しく作成されたテーブルや `mongo` テーブル関数を用いたクエリ、ディクショナリソースおよび名前付きコレクションには適用されません。 [#81942](https://github.com/ClickHouse/ClickHouse/pull/81942) ([Vladimir Cherkasov](https://github.com/vdimir)). -* マージ処理中に例外が発生した場合に `Aggregator` がクラッシュし得る不具合を修正しました。 [#82022](https://github.com/ClickHouse/ClickHouse/pull/82022) ([Nikita Taranov](https://github.com/nickitat))。 -* `arraySimilarity` におけるコピーペーストの誤りを修正し、重みとしての `UInt32` と `Int32` の使用を禁止しました。テストとドキュメントを更新しました。 [#82103](https://github.com/ClickHouse/ClickHouse/pull/82103) ([Mikhail f. Shiryaev](https://github.com/Felixoid))。 -* suggestion スレッドとメインクライアントスレッド間のデータレースが発生する可能性を修正。 [#82233](https://github.com/ClickHouse/ClickHouse/pull/82233) ([Azat Khuzhin](https://github.com/azat)). - -#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement} - -* `postgres` 16.9 を使用。 [#81437](https://github.com/ClickHouse/ClickHouse/pull/81437) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* `openssl` 3.2.4 を使用。 [#81438](https://github.com/ClickHouse/ClickHouse/pull/81438) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* `abseil-cpp` 2025-01-27 を使用します。 [#81440](https://github.com/ClickHouse/ClickHouse/pull/81440) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* `mongo-c-driver` 1.30.4 を使用します。[#81449](https://github.com/ClickHouse/ClickHouse/pull/81449) ([Konstantin Bogdanov](https://github.com/thevar1able))。 -* `krb5` 1.21.3-final を使用します。[#81453](https://github.com/ClickHouse/ClickHouse/pull/81453)([Konstantin Bogdanov](https://github.com/thevar1able))。 -* `orc` 2.1.2 を使用するよう変更。 [#81455](https://github.com/ClickHouse/ClickHouse/pull/81455) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* `grpc` 1.73.0 を使用します。 [#81629](https://github.com/ClickHouse/ClickHouse/pull/81629) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* `delta-kernel-rs` v0.12.1 を使用するようにしました。 [#81707](https://github.com/ClickHouse/ClickHouse/pull/81707) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* `c-ares` を `v1.34.5` に更新しました。 [#81159](https://github.com/ClickHouse/ClickHouse/pull/81159) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* CVE-2025-5025 と CVE-2025-4947 に対応するため、`curl` を 8.14 にアップグレード。 [#81171](https://github.com/ClickHouse/ClickHouse/pull/81171) ([larryluogit](https://github.com/larryluogit)). -* `libarchive` を 3.7.9 にアップグレードして、次の脆弱性に対処します: CVE-2024-20696 CVE-2025-25724 CVE-2024-48958 CVE-2024-57970 CVE-2025-1632 CVE-2024-48957 CVE-2024-48615。 [#81174](https://github.com/ClickHouse/ClickHouse/pull/81174) ([larryluogit](https://github.com/larryluogit))。 -* `libxml2` を 2.14.3 にアップグレード。 [#81187](https://github.com/ClickHouse/ClickHouse/pull/81187) ([larryluogit](https://github.com/larryluogit))。 -* ベンダリングされた Rust ソースコードを `CARGO_HOME` にコピーしないようにしました。 [#79560](https://github.com/ClickHouse/ClickHouse/pull/79560) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* 独自のエンドポイントに置き換えて、Sentryライブラリへの依存をなくしました。 [#80236](https://github.com/ClickHouse/ClickHouse/pull/80236) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* Dependabot のアラートに対応するため、CI イメージ内の Python の依存関係を更新しました。 [#80658](https://github.com/ClickHouse/ClickHouse/pull/80658) ([Raúl Marín](https://github.com/Algunenano)). -* Keeper に対してフォールトインジェクションが有効な場合にテストをより堅牢にするため、起動時に Keeper から複製 DDL の停止フラグを再読み取りするようにしました。 [#80964](https://github.com/ClickHouse/ClickHouse/pull/80964) ([Alexander Gololobov](https://github.com/davenger)). -* Ubuntu アーカイブの URL には HTTPS を使用するようにしました。[#81016](https://github.com/ClickHouse/ClickHouse/pull/81016) ([Raúl Marín](https://github.com/Algunenano)). -* テストイメージの Python 依存関係を更新。 [#81042](https://github.com/ClickHouse/ClickHouse/pull/81042) ([dependabot[bot]](https://github.com/apps/dependabot)). -* Nix ビルド用に `flake.nix` を導入。 [#81463](https://github.com/ClickHouse/ClickHouse/pull/81463) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* ビルド時にネットワークアクセスが必要だった `delta-kernel-rs` を修正。[#80609](https://github.com/ClickHouse/ClickHouse/issues/80609) をクローズ。[#81602](https://github.com/ClickHouse/ClickHouse/pull/81602)([Konstantin Bogdanov](https://github.com/thevar1able))。[A Year of Rust in ClickHouse](https://clickhouse.com/blog/rust) の記事も参照してください。 - -### ClickHouse リリース 25.5、2025-05-22 {#255} - -#### 後方互換性のない変更 {#backward-incompatible-change} - -* 関数 `geoToH3` は、他の幾何関数と同様に、入力を (lat, lon, res) の順序で受け取るようになりました。以前の引数の順序 (lon, lat, res) を維持したい場合は、設定 `geotoh3_argument_order = 'lon_lat'` を使用してください。[#78852](https://github.com/ClickHouse/ClickHouse/pull/78852)([Pratima Patel](https://github.com/pratimapatel2008))。 -* ファイルシステムキャッシュの設定 `allow_dynamic_cache_resize` を追加しました。デフォルトは `false` で、この設定を `true` にするとファイルシステムキャッシュの動的リサイズを許可します。理由: 一部の環境(ClickHouse Cloud)では、すべてのスケーリングイベントがプロセスの再起動を通じて行われ、この機能を明示的に無効化して挙動をより細かく制御したいこと、また安全性の観点からです。この PR は後方互換性のない変更としてマークされています。以前のバージョンでは、特別な設定なしに動的キャッシュリサイズがデフォルトで有効だったためです。[#79148](https://github.com/ClickHouse/ClickHouse/pull/79148)([Kseniia Sumarokova](https://github.com/kssenii))。 -* レガシーインデックス型 `annoy` と `usearch` のサポートを削除しました。これらは長い間スタブであり、レガシーインデックスを使用しようとするあらゆる試みは常にエラーを返していました。まだ `annoy` や `usearch` インデックスを保持している場合は、削除してください。[#79802](https://github.com/ClickHouse/ClickHouse/pull/79802)([Robert Schulze](https://github.com/rschu1ze))。 -* サーバー設定 `format_alter_commands_with_parentheses` を削除しました。この設定は 24.2 で導入され、デフォルトでは無効化されていました。25.2 でデフォルト有効になりました。新しいフォーマットをサポートしない LTS バージョンは存在しないため、この設定を削除できます。[#79970](https://github.com/ClickHouse/ClickHouse/pull/79970)([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 -* `DeltaLake` ストレージの `delta-kernel-rs` 実装をデフォルトで有効化しました。[#79541](https://github.com/ClickHouse/ClickHouse/pull/79541)([Kseniia Sumarokova](https://github.com/kssenii))。 -* `URL` からの読み取りで複数回のリダイレクトが発生する場合、設定 `enable_url_encoding` がチェーン内のすべてのリダイレクトに対して正しく適用されるようになりました。[#79563](https://github.com/ClickHouse/ClickHouse/pull/79563)([Shankar Iyer](https://github.com/shankar-iyer))。設定 `enble_url_encoding` のデフォルト値は、現在 `false` に設定されています。[#80088](https://github.com/ClickHouse/ClickHouse/pull/80088)([Shankar Iyer](https://github.com/shankar-iyer))。 - -#### 新機能 {#new-feature} - -* `WHERE` 句でのスカラー相関サブクエリをサポートしました。[#6697](https://github.com/ClickHouse/ClickHouse/issues/6697) がクローズされました。[#79600](https://github.com/ClickHouse/ClickHouse/pull/79600)([Dmitry Novik](https://github.com/novikd))。単純なケースでは、射影リスト内の相関サブクエリもサポートしました。[#79925](https://github.com/ClickHouse/ClickHouse/pull/79925)([Dmitry Novik](https://github.com/novikd))。[#76078](https://github.com/ClickHouse/ClickHouse/pull/76078)([Dmitry Novik](https://github.com/novikd))。これにより、TPC-H テストスイートを 100% カバーできるようになりました。 -* ベクトル類似性インデックスを用いたベクトル検索が、これまでのexperimentalからbetaになりました。 [#80164](https://github.com/ClickHouse/ClickHouse/pull/80164) ([Robert Schulze](https://github.com/rschu1ze))。 -* `Parquet` フォーマットで geo 型をサポートしました。これにより [#75317](https://github.com/ClickHouse/ClickHouse/issues/75317) がクローズされました。[#79777](https://github.com/ClickHouse/ClickHouse/pull/79777)([scanhex12](https://github.com/scanhex12))。 -* インデックス作成および検索のための部分文字列抽出に用いる堅牢なアルゴリズムである「sparse-ngrams」を計算する新しい関数 `sparseGrams`、`sparseGramsHashes`、`sparseGramsHashesUTF8`、`sparseGramsUTF8` を追加。 [#79517](https://github.com/ClickHouse/ClickHouse/pull/79517) ([scanhex12](https://github.com/scanhex12)). -* `clickhouse-local`(およびその短縮エイリアスである `ch`)は、処理対象の入力データが存在する場合に、暗黙的な `FROM table` を使用するようになりました。これにより、[#65023](https://github.com/ClickHouse/ClickHouse/issues/65023) がクローズされました。また、通常のファイルを処理する際に `--input-format` が指定されていない場合、`clickhouse-local` でフォーマットの自動推論が有効になりました。[#79085](https://github.com/ClickHouse/ClickHouse/pull/79085)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* ランダムまたは暗号化されている可能性のあるデータを検索するための `stringBytesUniq` 関数と `stringBytesEntropy` 関数を追加しました。 [#79350](https://github.com/ClickHouse/ClickHouse/pull/79350) ([Sachin Kumar Singh](https://github.com/sachinkumarsingh092))。 -* Base32 のエンコードおよびデコードを行う関数を追加しました。 [#79809](https://github.com/ClickHouse/ClickHouse/pull/79809) ([Joanna Hulboj](https://github.com/jh0x)). -* `getServerSetting` と `getMergeTreeSetting` 関数を追加し、#78318 をクローズ。[#78439](https://github.com/ClickHouse/ClickHouse/pull/78439) ([NamNguyenHoai](https://github.com/NamHoaiNguyen))。 -* 新しい `iceberg_enable_version_hint` 設定を追加し、`version-hint.text` ファイルを利用できるようにしました。 [#78594](https://github.com/ClickHouse/ClickHouse/pull/78594) ([Arnaud Briche](https://github.com/arnaudbriche)). -* `LIKE` キーワードでフィルタして、データベース内の特定のテーブルだけを TRUNCATE できるようになりました。 [#78597](https://github.com/ClickHouse/ClickHouse/pull/78597) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* `MergeTree` ファミリーのテーブルで `_part_starting_offset` 仮想カラムをサポートしました。このカラムは、現在のパート一覧に基づきクエリ実行時に計算される、先行するすべてのパートの累積行数を表します。累積値はクエリ実行全体を通して保持され、パートのプルーニング後でも有効なままです。この挙動をサポートするため、関連する内部ロジックをリファクタリングしました。 [#79417](https://github.com/ClickHouse/ClickHouse/pull/79417) ([Amos Bird](https://github.com/amosbird)). -* 右側の引数がゼロの場合に NULL を返すようにするため、`divideOrNull`、`moduloOrNull`、`intDivOrNull`、`positiveModuloOrNull` 関数を追加しました。 [#78276](https://github.com/ClickHouse/ClickHouse/pull/78276) ([kevinyhzou](https://github.com/KevinyhZou)). -* ClickHouse のベクター検索は、プレフィルタリングとポストフィルタリングの両方をサポートし、よりきめ細かな制御のための関連設定も提供します (issue [#78161](https://github.com/ClickHouse/ClickHouse/issues/78161)). [#79854](https://github.com/ClickHouse/ClickHouse/pull/79854) ([Shankar Iyer](https://github.com/shankar-iyer)). -* [`icebergHash`](https://iceberg.apache.org/spec/#appendix-b-32-bit-hash-requirements) 関数と [`icebergBucket`](https://iceberg.apache.org/spec/#bucket-transform-details) 関数を追加しました。[`bucket transfom`](https://iceberg.apache.org/spec/#partitioning) でパーティション分割された `Iceberg` テーブルにおけるデータファイルのプルーニングに対応しました。[#79262](https://github.com/ClickHouse/ClickHouse/pull/79262) ([Daniil Ivanik](https://github.com/divanik))。 - -#### 実験的機能 {#experimental-feature} - -* 新しい `Time` / `Time64` データ型:`Time` (HHH:MM:SS) および `Time64` (HHH:MM:SS.``) と、基本的なキャスト関数および他のデータ型と相互作用するための関数を追加しました。また、既存の関数名 `toTime` を `toTimeWithFixedDate` に変更しました。これは、キャスト関数で `toTime` 関数が必要となるためです。 [#75735](https://github.com/ClickHouse/ClickHouse/pull/75735) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Iceberg データレイク向けの Hive metastore カタログを追加しました。 [#77677](https://github.com/ClickHouse/ClickHouse/pull/77677) ([scanhex12](https://github.com/scanhex12)). -* `full_text` 型のインデックスは `gin` に改名されました。これは PostgreSQL および他のデータベースでより一般的な用語に合わせたものです。既存の `full_text` 型インデックスは引き続き読み込み可能ですが、検索で使用しようとすると例外がスローされ(その際に代わりに `gin` インデックスを提案します)、使用できなくなります。 [#79024](https://github.com/ClickHouse/ClickHouse/pull/79024) ([Robert Schulze](https://github.com/rschu1ze)). - -#### パフォーマンスの向上 {#performance-improvement} - -* Compact パーツ形式を変更し、各サブストリームごとにマークを保存して個々のサブカラムを読み取れるようにしました。従来の Compact 形式は読み取りでは引き続きサポートされており、MergeTree 設定 `write_marks_for_substreams_in_compact_parts` を使用することで書き込みにも有効化できます。Compact パーツのストレージ仕様が変更されるため、より安全にアップグレードできるよう、デフォルトでは無効になっています。今後のいずれかのリリースでデフォルトで有効になる予定です。 [#77940](https://github.com/ClickHouse/ClickHouse/pull/77940) ([Pavel Kruglov](https://github.com/Avogar)). -* サブカラムを含む条件を `prewhere` に移動できるようにしました。 [#79489](https://github.com/ClickHouse/ClickHouse/pull/79489) ([Pavel Kruglov](https://github.com/Avogar)). -* 複数のグラニュールをまとめて対象に式を評価することで、セカンダリインデックスの処理を高速化しました。 [#64109](https://github.com/ClickHouse/ClickHouse/pull/64109) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* `compile_expressions`(通常の式の一部に対する JIT コンパイラ)をデフォルトで有効化しました。これにより [#51264](https://github.com/ClickHouse/ClickHouse/issues/51264) と [#56386](https://github.com/ClickHouse/ClickHouse/issues/56386) および [#66486](https://github.com/ClickHouse/ClickHouse/issues/66486) がクローズされました。[#79907](https://github.com/ClickHouse/ClickHouse/pull/79907)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 新しい設定 `use_skip_indexes_in_final_exact_mode` が導入されました。`ReplacingMergeTree` テーブルに対するクエリで FINAL 句が指定されている場合、スキップインデックスに基づいてテーブル範囲のみを読み取ると、誤った結果が返される可能性があります。この設定を有効にすると、スキップインデックスで返された主キー範囲と重複する新しいパーツを走査することで、正しい結果が返されるようにできます。無効にするには 0、有効にするには 1 を設定します。 [#78350](https://github.com/ClickHouse/ClickHouse/pull/78350)([Shankar Iyer](https://github.com/shankar-iyer))。 -* オブジェクトストレージクラスターのテーブル関数(例: `s3Cluster`)は、キャッシュローカリティを改善するため、コンシステントハッシュに基づいて読み取り用のファイルをレプリカに割り当てるようになりました。 [#77326](https://github.com/ClickHouse/ClickHouse/pull/77326) ([Andrej Hoos](https://github.com/adikus)) -* `S3Queue`/`AzureQueue` のパフォーマンスを、`INSERT` を並列に実行できるようにすることで改善しました(キュー設定で `parallel_inserts=true` を有効化すると利用可能)。これまでは S3Queue/AzureQueue はパイプラインの前半(ダウンロード、パース)のみ並列実行でき、`INSERT` は単一スレッドでした。また、`INSERT` がボトルネックとなることがほとんどです。今回の変更により、`processing_threads_num` に対してほぼ線形にスケールするようになりました。 [#77671](https://github.com/ClickHouse/ClickHouse/pull/77671)([Azat Khuzhin](https://github.com/azat))。S3Queue/AzureQueue における `max_processed_files_before_commit` の扱いが、より公平になるよう改善しました。 [#79363](https://github.com/ClickHouse/ClickHouse/pull/79363)([Azat Khuzhin](https://github.com/azat))。 -* 右側テーブルのサイズが閾値未満の場合に `hash` アルゴリズムへフォールバックするための閾値(`parallel_hash_join_threshold` 設定で調整可能)を導入しました。 [#76185](https://github.com/ClickHouse/ClickHouse/pull/76185) ([Nikita Taranov](https://github.com/nickitat)). -* 並列レプリカを有効にした読み取りでは、タスクの大きさを決定する際にレプリカ数を使用するようになりました。これにより、読み取るデータ量がそれほど大きくない場合でも、レプリカ間の処理負荷の分散が改善されます。 [#78695](https://github.com/ClickHouse/ClickHouse/pull/78695) ([Nikita Taranov](https://github.com/nickitat)). -* 分散集約の最終段階で `uniqExact` 状態を並列にマージできるようにしました。 [#78703](https://github.com/ClickHouse/ClickHouse/pull/78703) ([Nikita Taranov](https://github.com/nickitat)). -* キー付き集約における `uniqExact` 状態の並列マージ時に発生しうるパフォーマンス低下を修正。 [#78724](https://github.com/ClickHouse/ClickHouse/pull/78724) ([Nikita Taranov](https://github.com/nickitat)). -* Azure Storage への List Blobs API 呼び出し回数を削減しました。 [#78860](https://github.com/ClickHouse/ClickHouse/pull/78860) ([Julia Kartseva](https://github.com/jkartseva)). -* 分散 INSERT SELECT の並列レプリカ使用時のパフォーマンスを改善。 [#79441](https://github.com/ClickHouse/ClickHouse/pull/79441) ([Azat Khuzhin](https://github.com/azat)). -* 高い並行性の環境においてロック競合と性能劣化を避けるため、`LogSeriesLimiter` がコンストラクタ呼び出しのたびにクリーンアップを実行しないようにしました。 [#79864](https://github.com/ClickHouse/ClickHouse/pull/79864) ([filimonov](https://github.com/filimonov)). -* 単純な count 最適化によりクエリの実行を高速化しました。 [#79945](https://github.com/ClickHouse/ClickHouse/pull/79945) ([Raúl Marín](https://github.com/Algunenano)). -* `Decimal` を使用する一部の演算のインライン化を改善しました。 [#79999](https://github.com/ClickHouse/ClickHouse/pull/79999) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* `input_format_parquet_bloom_filter_push_down` をデフォルトで true に設定しました。また、設定変更履歴の誤りを修正しました。[#80058](https://github.com/ClickHouse/ClickHouse/pull/80058) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* すべての行を削除すべきパーツに対する `ALTER ... DELETE` ミューテーションを最適化しました。これにより、そのような場合にはミューテーションを実行せず、元のパーツを作り直す代わりに空のパーツが作成されるようになりました。 [#79307](https://github.com/ClickHouse/ClickHouse/pull/79307) ([Anton Popov](https://github.com/CurtizJ)). -* 可能な場合には、Compact パートへの挿入時にブロックの余分なコピーを行わないようにしました。 [#79536](https://github.com/ClickHouse/ClickHouse/pull/79536) ([Pavel Kruglov](https://github.com/Avogar)). -* `input_format_max_block_size_bytes` 設定を追加し、入力フォーマットで作成されるブロックをバイト単位で制限できるようにしました。これにより、行に大きな値が含まれるデータをインポートする際の過剰なメモリ使用量を回避するのに役立ちます。 [#79495](https://github.com/ClickHouse/ClickHouse/pull/79495) ([Pavel Kruglov](https://github.com/Avogar))。 -* スレッドおよび async_socket_for_remote/use_hedge_requests のガードページを削除しました。`FiberStack` におけるアロケーション方式を `mmap` から `aligned_alloc` に変更しました。これは VMA を分割し、高負荷時には vm.max_map_count の上限に達する可能性があるためです。[#79147](https://github.com/ClickHouse/ClickHouse/pull/79147)([Sema Checherinda](https://github.com/CheSema))。 -* 並列レプリカにおける遅延マテリアライゼーション。 [#79401](https://github.com/ClickHouse/ClickHouse/pull/79401) ([Igor Nikonov](https://github.com/devcrafter)). - -#### 改善点 {#improvement} - -* `lightweight_deletes_sync = 0` および `apply_mutations_on_fly = 1` の設定により、軽量削除をオンザフライで適用できるようにしました。 [#79281](https://github.com/ClickHouse/ClickHouse/pull/79281) ([Anton Popov](https://github.com/CurtizJ)). -* ターミナルにpretty形式でデータが表示されており、その後続のブロックが同じ列幅を持つ場合、カーソルを上方向に移動して前のブロックに連結し、前のブロックから連続して表示できます。これにより [#79333](https://github.com/ClickHouse/ClickHouse/issues/79333) が解決されました。この機能は新しい設定 `output_format_pretty_glue_chunks` によって制御されます。 [#79339](https://github.com/ClickHouse/ClickHouse/pull/79339) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* `isIPAddressInRange` 関数を拡張し、`String`、`IPv4`、`IPv6`、`Nullable(String)`、`Nullable(IPv4)`、`Nullable(IPv6)` データ型をサポート。 [#78364](https://github.com/ClickHouse/ClickHouse/pull/78364) ([YjyJeff](https://github.com/YjyJeff)). -* `PostgreSQL` エンジンの接続プール設定を動的に変更できるようになりました。 [#78414](https://github.com/ClickHouse/ClickHouse/pull/78414) ([Samay Sharma](https://github.com/samay-sharma)). -* 通常のプロジェクションにおいて `_part_offset` を指定できるようにしました。これはプロジェクションインデックスを構築するための第一歩です。[#58224](https://github.com/ClickHouse/ClickHouse/issues/58224) と組み合わせて利用でき、#63207 の改善にも役立ちます。 [#78429](https://github.com/ClickHouse/ClickHouse/pull/78429) ([Amos Bird](https://github.com/amosbird))。 -* `system.named_collections` に新しいカラム(`create_query` と `source`)を追加しました。 [#78179](https://github.com/ClickHouse/ClickHouse/issues/78179) をクローズしました。 [#78582](https://github.com/ClickHouse/ClickHouse/pull/78582)([MikhailBurdukov](https://github.com/MikhailBurdukov))。 -* システムテーブル `system.query_condition_cache` に新しいフィールド `condition` を追加しました。クエリ条件キャッシュでキーとして使用されるハッシュの元となるプレーンテキストの条件を保存します。 [#78671](https://github.com/ClickHouse/ClickHouse/pull/78671) ([Robert Schulze](https://github.com/rschu1ze)). -* `BFloat16` 型の列に対してベクトル類似インデックスを作成できるようになりました。 [#78850](https://github.com/ClickHouse/ClickHouse/pull/78850) ([Robert Schulze](https://github.com/rschu1ze)). -* 小数部を含む Unixタイムスタンプを、`DateTime64` のベストエフォート解析でサポートするようにしました。 [#78908](https://github.com/ClickHouse/ClickHouse/pull/78908) ([Pavel Kruglov](https://github.com/Avogar))。 -* ストレージ `DeltaLake` の delta-kernel 実装において、カラムマッピングモードを修正し、スキーマエボリューション用のテストを追加しました。 [#78921](https://github.com/ClickHouse/ClickHouse/pull/78921) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* `Values` フォーマットでの `Variant` 列への挿入時の値変換を改善しました。 [#78923](https://github.com/ClickHouse/ClickHouse/pull/78923) ([Pavel Kruglov](https://github.com/Avogar)). -* `tokens` 関数が拡張され、追加の `tokenizer` 引数およびさらに tokenizer 固有の引数を受け取れるようになりました。 [#79001](https://github.com/ClickHouse/ClickHouse/pull/79001) ([Elmi Ahmadov](https://github.com/ahmadov))。 -* `SHOW CLUSTER` ステートメントは、引数内に含まれるマクロがあればそれらを展開するようになりました。 [#79006](https://github.com/ClickHouse/ClickHouse/pull/79006) ([arf42](https://github.com/arf42))。 -* ハッシュ関数が、配列、タプル、およびマップ内の `NULL` をサポートするようになりました(issues [#48365](https://github.com/ClickHouse/ClickHouse/issues/48365) および [#48623](https://github.com/ClickHouse/ClickHouse/issues/48623))。[#79008](https://github.com/ClickHouse/ClickHouse/pull/79008)([Michael Kolupaev](https://github.com/al13n321))。 -* cctz を 2025a に更新しました。 [#79043](https://github.com/ClickHouse/ClickHouse/pull/79043) ([Raúl Marín](https://github.com/Algunenano)). -* UDF のデフォルト stderr 処理を "log_last" に変更しました。ユーザビリティが向上します。 [#79066](https://github.com/ClickHouse/ClickHouse/pull/79066) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Web UI でタブ操作を元に戻せるようにしました。これにより [#71284](https://github.com/ClickHouse/ClickHouse/issues/71284) がクローズされました。[#79084](https://github.com/ClickHouse/ClickHouse/pull/79084)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* `recoverLostReplica` 中で設定を削除するようにしました。実装は次の対応と同様です: [https://github.com/ClickHouse/ClickHouse/pull/78637](https://github.com/ClickHouse/ClickHouse/pull/78637)。 [#79113](https://github.com/ClickHouse/ClickHouse/pull/79113) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 -* プロファイルイベント `ParquetReadRowGroups` および `ParquetPrunedRowGroups` を追加し、Parquet インデックスのプルーニング処理をプロファイリングできるようにしました。 [#79180](https://github.com/ClickHouse/ClickHouse/pull/79180) ([flynn](https://github.com/ucasfl)). -* クラスター上のデータベースに対する `ALTER` をサポート。 [#79242](https://github.com/ClickHouse/ClickHouse/pull/79242) ([Tuan Pham Anh](https://github.com/tuanpach)). -* `QueryMetricLog` の統計収集で、実行されずに取り逃した回を明示的にスキップするようにし、そうしない場合にログが現在時刻に追いつくまで長時間かかってしまう問題を防ぎます。 [#79257](https://github.com/ClickHouse/ClickHouse/pull/79257) ([Mikhail Artemenko](https://github.com/Michicosun)). -* `Arrow` ベースのフォーマットの読み取りに関する軽微な最適化を行いました。[#79308](https://github.com/ClickHouse/ClickHouse/pull/79308) ([Bharat Nallan](https://github.com/bharatnc))。 -* 設定 `allow_archive_path_syntax` は誤って experimental とマークされていました。experimental な設定がデフォルトで有効にならないことを保証するテストを追加しました。 [#79320](https://github.com/ClickHouse/ClickHouse/pull/79320) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* ページキャッシュ設定をクエリ単位で調整可能にしました。これにより、高スループットかつ低レイテンシーなクエリ向けに微調整したり、より高速に実験できるようになります。 [#79337](https://github.com/ClickHouse/ClickHouse/pull/79337) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 典型的な 64 ビットハッシュのように見える数値については、見栄えの良い形式で数値ツールチップを表示しないようにしました。これにより [#79334](https://github.com/ClickHouse/ClickHouse/issues/79334) がクローズされました。[#79338](https://github.com/ClickHouse/ClickHouse/pull/79338)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 高度なダッシュボードのグラフの色は、対応するクエリのハッシュから計算されます。これにより、ダッシュボードをスクロールしているときでも、グラフを記憶し、見つけやすくなります。 [#79341](https://github.com/ClickHouse/ClickHouse/pull/79341) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 非同期メトリクスである `FilesystemCacheCapacity` を追加しました。これは `cache` 仮想ファイルシステムの総容量を表し、グローバルなインフラストラクチャ監視に役立ちます。 [#79348](https://github.com/ClickHouse/ClickHouse/pull/79348) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* system.parts へのアクセスを最適化し、要求された場合にのみ列/インデックスのサイズを読み取るようにした。 [#79352](https://github.com/ClickHouse/ClickHouse/pull/79352) ([Azat Khuzhin](https://github.com/azat)). -* クエリ `SHOW CLUSTER ` に対して、すべてのフィールドではなく必要なフィールドのみを計算するようにしました。 [#79368](https://github.com/ClickHouse/ClickHouse/pull/79368) ([Tuan Pham Anh](https://github.com/tuanpach)). -* `DatabaseCatalog` のストレージ設定を指定できるようにしました。 [#79407](https://github.com/ClickHouse/ClickHouse/pull/79407) ([Kseniia Sumarokova](https://github.com/kssenii)). -* `DeltaLake` でローカルストレージをサポートしました。 [#79416](https://github.com/ClickHouse/ClickHouse/pull/79416) ([Kseniia Sumarokova](https://github.com/kssenii)). -* delta-kernel-rs を有効化するためのクエリレベル設定 `allow_experimental_delta_kernel_rs` を追加しました。 [#79418](https://github.com/ClickHouse/ClickHouse/pull/79418) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Azure/S3 BLOB ストレージからの BLOB 一覧取得時に発生しうる無限ループを修正。 [#79425](https://github.com/ClickHouse/ClickHouse/pull/79425) ([Alexander Gololobov](https://github.com/davenger))。 -* ファイルシステムキャッシュの設定 `max_size_ratio_to_total_space` を追加しました。 [#79460](https://github.com/ClickHouse/ClickHouse/pull/79460) ([Kseniia Sumarokova](https://github.com/kssenii)). -* `clickhouse-benchmark` について、再接続の挙動に応じて `reconnect` オプションに 0、1、または N を指定できるように変更しました。 [#79465](https://github.com/ClickHouse/ClickHouse/pull/79465) ([Sachin Kumar Singh](https://github.com/sachinkumarsingh092)). -* 異なる `plain_rewritable` ディスク上にあるテーブルに対して `ALTER TABLE ... MOVE|REPLACE PARTITION` を実行できるようにしました。 [#79566](https://github.com/ClickHouse/ClickHouse/pull/79566) ([Julia Kartseva](https://github.com/jkartseva)). -* 参照ベクトルが `Array(BFloat16)` 型の場合にも、ベクトル類似度インデックスが使用されるようになりました。 [#79745](https://github.com/ClickHouse/ClickHouse/pull/79745) ([Shankar Iyer](https://github.com/shankar-iyer)). -* last_error_message、last_error_trace、および query_id を system.error_log テーブルに追加しました。関連チケット [#75816](https://github.com/ClickHouse/ClickHouse/issues/75816)。[#79836](https://github.com/ClickHouse/ClickHouse/pull/79836)([Andrei Tinikov](https://github.com/Dolso))。 -* クラッシュレポートの送信をデフォルトで有効にしました。サーバーの設定ファイルで無効化できます。 [#79838](https://github.com/ClickHouse/ClickHouse/pull/79838) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* システムテーブル `system.functions` に、各関数が最初に導入された ClickHouse バージョンが表示されるようになりました。[#79839](https://github.com/ClickHouse/ClickHouse/pull/79839) ([Robert Schulze](https://github.com/rschu1ze)). -* `access_control_improvements.enable_user_name_access_type` 設定を追加しました。この設定により、[https://github.com/ClickHouse/ClickHouse/pull/72246](https://github.com/ClickHouse/ClickHouse/pull/72246) で導入されたユーザー/ロールに対する厳密な権限付与を有効/無効にできます。25.1 より古いバージョンのレプリカを含むクラスタを使用している場合は、この設定をオフにすることを検討してください。[#79842](https://github.com/ClickHouse/ClickHouse/pull/79842)([pufit](https://github.com/pufit))。 -* `ASTSelectWithUnionQuery::clone()` メソッドの適切な実装では、`is_normalized` フィールドも考慮するようになりました。これにより、[#77569](https://github.com/ClickHouse/ClickHouse/issues/77569) の解決に役立つ可能性があります。[#79909](https://github.com/ClickHouse/ClickHouse/pull/79909)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 -* `EXCEPT` 演算子を含む一部クエリの書式の不整合を修正しました。`EXCEPT` 演算子の左辺が `*` で終わる場合、整形後のクエリから括弧が失われ、その結果、`EXCEPT` 修飾子付きの `*` としてパースされていました。これらのクエリは fuzzer によって検出されたもので、実際の利用環境で見つかる可能性は低いと考えられます。この変更により [#79950](https://github.com/ClickHouse/ClickHouse/issues/79950) がクローズされました。[#79952](https://github.com/ClickHouse/ClickHouse/pull/79952)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* バリアントのデシリアライズ順序をキャッシュすることで、`JSON` 型のパースをわずかに改善しました。 [#79984](https://github.com/ClickHouse/ClickHouse/pull/79984) ([Pavel Kruglov](https://github.com/Avogar)) -* 設定 `s3_slow_all_threads_after_network_error` を追加しました。 [#80035](https://github.com/ClickHouse/ClickHouse/pull/80035) ([Vitaly Baranov](https://github.com/vitlibar)). -* 選択されたマージ対象パーツに関するログレベルが誤っていました(Information)。[#80061](https://github.com/ClickHouse/ClickHouse/issues/80061) をクローズ。[#80062](https://github.com/ClickHouse/ClickHouse/pull/80062)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* trace-visualizer: ツールチップおよびステータスメッセージに runtime/share を追加。 [#79040](https://github.com/ClickHouse/ClickHouse/pull/79040) ([Sergei Trifonov](https://github.com/serxa)). -* trace-visualizer: ClickHouse サーバーからデータを読み込めるようにしました。 [#79042](https://github.com/ClickHouse/ClickHouse/pull/79042) ([Sergei Trifonov](https://github.com/serxa)). -* 失敗したマージに関するメトリクスを追加しました。 [#79228](https://github.com/ClickHouse/ClickHouse/pull/79228) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* `clickhouse-benchmark` は、最大イテレーション数が指定されている場合、その値に基づいて割合を表示します。 [#79346](https://github.com/ClickHouse/ClickHouse/pull/79346) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* system.parts テーブル用のビジュアライザーを追加。 [#79437](https://github.com/ClickHouse/ClickHouse/pull/79437) ([Sergei Trifonov](https://github.com/serxa)). -* クエリレイテンシーを分析するためのツールを追加。 [#79978](https://github.com/ClickHouse/ClickHouse/pull/79978) ([Sergei Trifonov](https://github.com/serxa)). - -#### バグ修正(公式安定版リリースでユーザーに影響する誤動作) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* データパーツ内で欠落しているカラムのリネーム処理を修正しました。 [#76346](https://github.com/ClickHouse/ClickHouse/pull/76346) ([Anton Popov](https://github.com/CurtizJ)). -* マテリアライズドビューの開始タイミングが遅くなり、例えばそれにストリームを送っている Kafka テーブルより後に開始されてしまうことがありました。 [#72123](https://github.com/ClickHouse/ClickHouse/pull/72123) ([Ilya Golshtein](https://github.com/ilejn)). -* analyzer 有効化時の `VIEW` 作成における `SELECT` クエリの書き換えを修正。[#75956](https://github.com/ClickHouse/ClickHouse/issues/75956) をクローズ。[#76356](https://github.com/ClickHouse/ClickHouse/pull/76356)([Dmitry Novik](https://github.com/novikd))。 -* サーバー側から(`apply_settings_from_server` 経由で)`async_insert` を適用する処理を修正しました(以前はクライアント側で `Unknown packet 11 from server` エラーを引き起こしていました)。 [#77578](https://github.com/ClickHouse/ClickHouse/pull/77578) ([Azat Khuzhin](https://github.com/azat)). -* Replicated データベースにおいて、新しく追加されたレプリカで refresh 可能なマテリアライズドビューが動作しない問題を修正しました。 [#77774](https://github.com/ClickHouse/ClickHouse/pull/77774) ([Michael Kolupaev](https://github.com/al13n321)). -* バックアップが壊れる原因となっていたリフレッシュ可能なマテリアライズドビューを修正。 [#77893](https://github.com/ClickHouse/ClickHouse/pull/77893) ([Michael Kolupaev](https://github.com/al13n321)). -* `transform` の旧発火ロジックにおける論理エラーを修正。 [#78247](https://github.com/ClickHouse/ClickHouse/pull/78247) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* アナライザー使用時にセカンダリインデックスが適用されない場合があった問題を修正しました。[#65607](https://github.com/ClickHouse/ClickHouse/issues/65607) および [#69373](https://github.com/ClickHouse/ClickHouse/issues/69373) を修正しました。[#78485](https://github.com/ClickHouse/ClickHouse/pull/78485)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* HTTP プロトコルで圧縮が有効な場合のプロファイルイベント(`NetworkSendElapsedMicroseconds`/`NetworkSendBytes`)のダンプ処理を修正しました(誤差はバッファサイズ、通常は約 1MiB を超えないはずです)。 [#78516](https://github.com/ClickHouse/ClickHouse/pull/78516) ([Azat Khuzhin](https://github.com/azat)). -* JOIN ... USING が ALIAS 列を含む場合に LOGICAL_ERROR を発生させていたアナライザーを修正し、適切なエラーを返すようにしました。 [#78618](https://github.com/ClickHouse/ClickHouse/pull/78618) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* アナライザーを修正: SELECT 文に位置指定引数が含まれていると CREATE VIEW ... ON CLUSTER が失敗する問題を修正。 [#78663](https://github.com/ClickHouse/ClickHouse/pull/78663) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* `SELECT` にスカラーサブクエリが含まれている場合に、スキーマ推論を行うテーブル関数に対する `INSERT SELECT` で発生する `Block structure mismatch` エラーを修正。 [#78677](https://github.com/ClickHouse/ClickHouse/pull/78677) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* アナライザを修正: Distributed テーブルに対する SELECT クエリで設定 prefer_global_in_and_join=1 が有効な場合、SELECT クエリ内の `in` 関数が `globalIn` に置き換えられるようにしました。 [#78749](https://github.com/ClickHouse/ClickHouse/pull/78749) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* `MongoDB` エンジンまたは `mongodb` テーブル関数を使用するテーブルからデータを読み取る、複数の種類の `SELECT` クエリを修正しました。具体的には、`WHERE` 句内での定数値の暗黙的な型変換を伴うクエリ(例: `WHERE datetime = '2025-03-10 00:00:00'`)、および `LIMIT` と `GROUP BY` を含むクエリです。以前は、これらのクエリで誤った結果が返されることがありました。 [#78777](https://github.com/ClickHouse/ClickHouse/pull/78777) ([Anton Popov](https://github.com/CurtizJ)). -* 異なる JSON 型間の変換を修正しました。現在は、String への/からの変換を経由して単純にキャストすることで実行されます。効率は低下しますが、結果は常に正確です。 [#78807](https://github.com/ClickHouse/ClickHouse/pull/78807) ([Pavel Kruglov](https://github.com/Avogar)). -* Dynamic 型を Interval へ変換する際に発生していた論理エラーを修正しました。 [#78813](https://github.com/ClickHouse/ClickHouse/pull/78813) ([Pavel Kruglov](https://github.com/Avogar)). -* JSON パースエラー時のカラムのロールバック処理を修正。 [#78836](https://github.com/ClickHouse/ClickHouse/pull/78836) ([Pavel Kruglov](https://github.com/Avogar)). -* 定数エイリアス列を使用した JOIN 時に発生する「bad cast」エラーを修正。 [#78848](https://github.com/ClickHouse/ClickHouse/pull/78848) ([Vladimir Cherkasov](https://github.com/vdimir)). -* ビューとターゲットテーブルで列の型が異なる場合、その列に対するマテリアライズドビューでの prewhere 句を許可しないようにしました。 [#78889](https://github.com/ClickHouse/ClickHouse/pull/78889) ([Pavel Kruglov](https://github.com/Avogar)). -* Variant 列の不正なバイナリデータをパースする際に発生する論理エラーを修正。 [#78982](https://github.com/ClickHouse/ClickHouse/pull/78982) ([Pavel Kruglov](https://github.com/Avogar)). -* Parquet バッチサイズが 0 に設定されている場合に例外をスローするようにしました。以前は `output_format_parquet_batch_size = 0` のときに ClickHouse がハングしていましたが、この問題は修正されました。 [#78991](https://github.com/ClickHouse/ClickHouse/pull/78991) ([daryawessely](https://github.com/daryawessely)). -* コンパクトパーツの基本フォーマットにおける variant discriminator のデシリアライズ処理を修正しました。この問題は [https://github.com/ClickHouse/ClickHouse/pull/55518](https://github.com/ClickHouse/ClickHouse/pull/55518) で導入されました。[#79000](https://github.com/ClickHouse/ClickHouse/pull/79000)([Pavel Kruglov](https://github.com/Avogar))。 -* `complex_key_ssd_cache` タイプの辞書は、`block_size` および `write_buffer_size` パラメータが 0 または負の値である場合、それらのパラメータを拒否するようになりました(issue [#78314](https://github.com/ClickHouse/ClickHouse/issues/78314))。[#79028](https://github.com/ClickHouse/ClickHouse/pull/79028)([Elmi Ahmadov](https://github.com/ahmadov))。 -* SummingMergeTree で非集約カラムに Field を使用するのは避けてください。SummingMergeTree で使用される Dynamic/Variant 型で予期しないエラーが発生する可能性があります。 [#79051](https://github.com/ClickHouse/ClickHouse/pull/79051) ([Pavel Kruglov](https://github.com/Avogar)). -* analyzer においてヘッダーが異なる場合に、Distributed 宛先テーブルを持つマテリアライズドビューからの読み取りが正しく行われない問題を修正しました。 [#79059](https://github.com/ClickHouse/ClickHouse/pull/79059) ([Pavel Kruglov](https://github.com/Avogar)). -* バッチ挿入が行われるテーブルにおいて、`arrayUnion()` が余分な(誤った)値を返していたバグを修正しました。[#75057](https://github.com/ClickHouse/ClickHouse/issues/75057) の問題を修正しました。[#79079](https://github.com/ClickHouse/ClickHouse/pull/79079)([Peter Nguyen](https://github.com/petern48))。 -* `OpenSSLInitializer` で発生していたセグメンテーションフォルトを修正。[#79092](https://github.com/ClickHouse/ClickHouse/issues/79092) をクローズ。[#79097](https://github.com/ClickHouse/ClickHouse/pull/79097)([Konstantin Bogdanov](https://github.com/thevar1able))。 -* S3 の ListObject に対しては常に prefix を設定するようにしました。 [#79114](https://github.com/ClickHouse/ClickHouse/pull/79114) ([Azat Khuzhin](https://github.com/azat)). -* バッチ挿入を行うテーブルで、arrayUnion() が余分な(誤った)値を返すバグを修正しました。[#79157](https://github.com/ClickHouse/ClickHouse/issues/79157) を修正します。[#79158](https://github.com/ClickHouse/ClickHouse/pull/79158)([Peter Nguyen](https://github.com/petern48))。 -* フィルタープッシュダウン後に発生する論理エラーを修正。 [#79164](https://github.com/ClickHouse/ClickHouse/pull/79164) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* HTTP ベースのエンドポイントで使用される delta-kernel 実装向けの DeltaLake テーブルエンジンを修正し、NOSIGN を修正しました。Closes [#78124](https://github.com/ClickHouse/ClickHouse/issues/78124). [#79203](https://github.com/ClickHouse/ClickHouse/pull/79203) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Keeper の修正: 失敗した multi リクエストで watch が発火しないようにしました。 [#79247](https://github.com/ClickHouse/ClickHouse/pull/79247) ([Antonio Andelic](https://github.com/antonio2368)). -* `IN` での Dynamic 型および JSON 型の使用を禁止しました。`IN` の現在の実装では、これらを使用すると誤った結果につながる可能性があります。`IN` でこれらの型を正しくサポートすることは複雑であり、将来的に対応される可能性があります。 [#79282](https://github.com/ClickHouse/ClickHouse/pull/79282) ([Pavel Kruglov](https://github.com/Avogar)). -* JSON 型のパース時における重複パスのチェックを修正。 [#79317](https://github.com/ClickHouse/ClickHouse/pull/79317) ([Pavel Kruglov](https://github.com/Avogar)). -* SecureStreamSocket の接続に関する問題を修正。 [#79383](https://github.com/ClickHouse/ClickHouse/pull/79383) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* plain_rewritable ディスク上のデータの読み込みを修正。 [#79439](https://github.com/ClickHouse/ClickHouse/pull/79439) ([Julia Kartseva](https://github.com/jkartseva)). -* MergeTree の Wide パーツにおける動的サブカラム検出時に発生していたクラッシュを修正しました。 [#79466](https://github.com/ClickHouse/ClickHouse/pull/79466) ([Pavel Kruglov](https://github.com/Avogar)). -* テーブル名の長さは、テーブルを初めて作成するクエリに対してのみ検証します。後方互換性の問題を避けるため、2回目以降の作成では検証しません。 [#79488](https://github.com/ClickHouse/ClickHouse/pull/79488) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* スパースカラムを含むテーブルにおいて、いくつかのケースで発生していたエラー `Block structure mismatch` を修正しました。 [#79491](https://github.com/ClickHouse/ClickHouse/pull/79491) ([Anton Popov](https://github.com/CurtizJ)). -* 「Logical Error: Can't set alias of * of Asterisk on alias」が発生する2つのケースを修正します。[#79505](https://github.com/ClickHouse/ClickHouse/pull/79505) ([Raúl Marín](https://github.com/Algunenano)). -* Atomic データベースの名前変更時に誤ったパスが使用される問題を修正。 [#79569](https://github.com/ClickHouse/ClickHouse/pull/79569) ([Tuan Pham Anh](https://github.com/tuanpach)). -* JSON列と他の列を組み合わせた ORDER BY の問題を修正しました。[#79591](https://github.com/ClickHouse/ClickHouse/pull/79591) ([Pavel Kruglov](https://github.com/Avogar))。 -* `use_hedged_requests` と `allow_experimental_parallel_reading_from_replicas` の両方が無効な場合に、リモート読み取り時に結果が重複する問題を修正しました。 [#79599](https://github.com/ClickHouse/ClickHouse/pull/79599) ([Eduard Karacharov](https://github.com/korowa)). -* Unity Catalog 使用時に delta-kernel 実装がクラッシュする問題を修正。 [#79677](https://github.com/ClickHouse/ClickHouse/pull/79677) ([Kseniia Sumarokova](https://github.com/kssenii)). -* autodiscovery クラスター用のマクロを解決するようにしました。 [#79696](https://github.com/ClickHouse/ClickHouse/pull/79696) ([Anton Ivashkin](https://github.com/ianton-ru)). -* 不正に設定された `page_cache_limits` を適切に扱うようにしました。 [#79805](https://github.com/ClickHouse/ClickHouse/pull/79805) ([Bharat Nallan](https://github.com/bharatnc)). -* SQL 関数 `formatDateTime` で、長さが可変のフォーマッタ(例: `%W`、曜日 `Monday` `Tuesday` など)の直後に、複合フォーマッタ(複数の要素を一度に出力するフォーマッタ。例: `%D`、米国形式の日付 `05/04/25` など)が指定された場合の結果を修正しました。 [#79835](https://github.com/ClickHouse/ClickHouse/pull/79835) ([Robert Schulze](https://github.com/rschu1ze)). -* IcebergS3 は count の最適化をサポートしていますが、IcebergS3Cluster はサポートしていません。そのため、クラスターモードで返される count() の結果が、レプリカ数を掛けた値になる場合があります。 [#79844](https://github.com/ClickHouse/ClickHouse/pull/79844) ([wxybear](https://github.com/wxybear)). -* クエリの実行で投影段階まで列が一切使用されない場合の遅延マテリアライゼーションにおいて発生する AMBIGUOUS_COLUMN_NAME エラーを修正しました。例: SELECT * FROM t ORDER BY rand() LIMIT 5。 [#79926](https://github.com/ClickHouse/ClickHouse/pull/79926) ([Igor Nikonov](https://github.com/devcrafter))。 -* クエリ `CREATE DATABASE datalake ENGINE = DataLakeCatalog(\'http://catalog:8181\', \'admin\', \'password\')` 内のパスワードを非表示にしました。 [#79941](https://github.com/ClickHouse/ClickHouse/pull/79941) ([Han Fei](https://github.com/hanfei1991)). -* JOIN USING でエイリアスを指定できるようにしました。列名が変更された場合(たとえば ARRAY JOIN の結果として)に、このエイリアスを指定します。[#73707](https://github.com/ClickHouse/ClickHouse/issues/73707) を修正しました。[#79942](https://github.com/ClickHouse/ClickHouse/pull/79942)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* UNION を含むマテリアライズドビューが新しいレプリカでも正しく動作するようにしました。 [#80037](https://github.com/ClickHouse/ClickHouse/pull/80037) ([Samay Sharma](https://github.com/samay-sharma)). -* SQL 関数 `parseDateTime` の書式指定子 `%e` は、これまでは空白でのパディング(例: ` 3`)が必要でしたが、現在は 1 桁の日(例: `3`)も認識するようになりました。これにより、MySQL と互換性のある動作になります。以前の動作を維持するには、設定 `parsedatetime_e_requires_space_padding = 1` を 1 に設定してください(issue [#78243](https://github.com/ClickHouse/ClickHouse/issues/78243))。[#80057](https://github.com/ClickHouse/ClickHouse/pull/80057)([Robert Schulze](https://github.com/rschu1ze))。 -* ClickHouse のログに出力される `Cannot find 'kernel' in '[...]/memory.stat'` という警告メッセージを修正しました(issue [#77410](https://github.com/ClickHouse/ClickHouse/issues/77410))。[#80129](https://github.com/ClickHouse/ClickHouse/pull/80129)([Robert Schulze](https://github.com/rschu1ze))。 -* スタックオーバーフローによるクラッシュを防ぐため、FunctionComparison でスタックサイズをチェックするようにしました。 [#78208](https://github.com/ClickHouse/ClickHouse/pull/78208) ([Julia Kartseva](https://github.com/jkartseva)). -* `system.workloads` からの SELECT 中に発生するレースコンディションを修正しました。 [#78743](https://github.com/ClickHouse/ClickHouse/pull/78743) ([Sergei Trifonov](https://github.com/serxa)). -* 修正: 分散クエリにおける遅延マテリアライゼーション。 [#78815](https://github.com/ClickHouse/ClickHouse/pull/78815) ([Igor Nikonov](https://github.com/devcrafter)). -* `Array(Bool)` から `Array(FixedString)` への変換の不具合を修正。 [#78863](https://github.com/ClickHouse/ClickHouse/pull/78863) ([Nikita Taranov](https://github.com/nickitat)). -* Parquet バージョンの選択をより分かりやすくしました。 [#78818](https://github.com/ClickHouse/ClickHouse/pull/78818) ([Michael Kolupaev](https://github.com/al13n321)). -* `ReservoirSampler` の自己マージ処理を修正しました。 [#79031](https://github.com/ClickHouse/ClickHouse/pull/79031) ([Nikita Taranov](https://github.com/nickitat)). -* クライアントコンテキストにおける挿入テーブルのストレージを修正。 [#79046](https://github.com/ClickHouse/ClickHouse/pull/79046) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* `AggregatingSortedAlgorithm` と `SummingSortedAlgorithm` のデータメンバーの破棄順序を修正しました。 [#79056](https://github.com/ClickHouse/ClickHouse/pull/79056) ([Nikita Taranov](https://github.com/nickitat)). -* `enable_user_name_access_type` が `DEFINER` アクセスタイプに影響を与えないようにしました。 [#80026](https://github.com/ClickHouse/ClickHouse/pull/80026) ([pufit](https://github.com/pufit)). -* Keeper にシステムデータベースのメタデータが配置されている場合、システムデータベースに対するクエリがハングすることがある問題を修正。 [#79304](https://github.com/ClickHouse/ClickHouse/pull/79304) ([Mikhail Artemenko](https://github.com/Michicosun)). - -#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement} - -* `chcache` バイナリを毎回再ビルドするのではなく、ビルド済みのものを再利用できるようにしました。 [#78851](https://github.com/ClickHouse/ClickHouse/pull/78851) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* NATS のポーズ待ち処理を追加しました。 [#78987](https://github.com/ClickHouse/ClickHouse/pull/78987) ([Dmitry Novikov](https://github.com/dmitry-sles-novikov)). -* ARM ビルドが誤って amd64compat として公開されていた問題を修正しました。 [#79122](https://github.com/ClickHouse/ClickHouse/pull/79122) ([Alexander Gololobov](https://github.com/davenger)). -* OpenSSL 向けに、あらかじめ生成されたアセンブリコードを使用するようにしました。 [#79386](https://github.com/ClickHouse/ClickHouse/pull/79386) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* `clang20` でビルド可能になるよう修正しました。 [#79588](https://github.com/ClickHouse/ClickHouse/pull/79588) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* `chcache`: Rust キャッシュ機構のサポートを追加しました。 [#78691](https://github.com/ClickHouse/ClickHouse/pull/78691) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* `zstd` のアセンブリファイルにアンワインド情報を追加しました。 [#79288](https://github.com/ClickHouse/ClickHouse/pull/79288) ([Michael Kolupaev](https://github.com/al13n321)). - -### ClickHouse リリース 25.4, 2025-04-22 {#254} - -#### 後方互換性のない変更 {#backward-incompatible-change} - -* `allow_materialized_view_with_bad_select` が `false` の場合、マテリアライズドビュー内のすべてのカラムが対象テーブルと一致しているかを検査するようになりました。 [#74481](https://github.com/ClickHouse/ClickHouse/pull/74481) ([Christoph Wurm](https://github.com/cwurm)). -* `dateTrunc` が負の Date/DateTime 引数と共に使用されるケースを修正しました。 [#77622](https://github.com/ClickHouse/ClickHouse/pull/77622) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* レガシーな `MongoDB` 連携機能を削除しました。サーバー設定 `use_legacy_mongodb_integration` は廃止され、現在は効果を持ちません。 [#77895](https://github.com/ClickHouse/ClickHouse/pull/77895) ([Robert Schulze](https://github.com/rschu1ze)). -* パーティションキーまたはソートキーで使用されているカラムについては集約をスキップするように、`SummingMergeTree` の検証ロジックを強化しました。 [#78022](https://github.com/ClickHouse/ClickHouse/pull/78022) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). - -#### 新機能 {#new-feature} - -* ワークロード用に CPU スロットスケジューリングを追加しました。詳細は[ドキュメント](https://clickhouse.com/docs/operations/workload-scheduling#cpu_scheduling)を参照してください。[#77595](https://github.com/ClickHouse/ClickHouse/pull/77595)([Sergei Trifonov](https://github.com/serxa))。 -* `clickhouse-local` は、`--path` コマンドライン引数を指定した場合、再起動後もデータベースを保持します。これにより [#50647](https://github.com/ClickHouse/ClickHouse/issues/50647) がクローズされました。これにより [#49947](https://github.com/ClickHouse/ClickHouse/issues/49947) がクローズされました。[#71722](https://github.com/ClickHouse/ClickHouse/pull/71722)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* サーバーが過負荷状態のときにクエリを拒否します。判断は、待ち時間(`OSCPUWaitMicroseconds`)とビジー時間(`OSCPUVirtualTimeMicroseconds`)の比率に基づいて行われます。この比率が `min_os_cpu_wait_time_ratio_to_throw` と `max_os_cpu_wait_time_ratio_to_throw` の間にある場合(これらはクエリレベルの設定)、一定の確率でクエリが破棄されます。 [#63206](https://github.com/ClickHouse/ClickHouse/pull/63206)([Alexey Katsman](https://github.com/alexkats))。 -* `Iceberg` のタイムトラベル: 特定のタイムスタンプ時点の `Iceberg` テーブルをクエリできる設定を追加。 [#71072](https://github.com/ClickHouse/ClickHouse/pull/71072) ([Brett Hoerner](https://github.com/bretthoerner)). [#77439](https://github.com/ClickHouse/ClickHouse/pull/77439) ([Daniil Ivanik](https://github.com/divanik)). -* `Iceberg` メタデータのインメモリキャッシュ。マニフェストファイル/リストおよび `metadata.json` を保持することで、クエリの実行を高速化します。 [#77156](https://github.com/ClickHouse/ClickHouse/pull/77156) ([Han Fei](https://github.com/hanfei1991))。 -* `DeltaLake` テーブルエンジンの Azure Blob Storage 対応を追加しました。[#68043](https://github.com/ClickHouse/ClickHouse/issues/68043) を修正しました。[#74541](https://github.com/ClickHouse/ClickHouse/pull/74541)([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 -* デシリアライズ済みのベクトル類似性インデックス用にインメモリキャッシュを追加しました。これにより、繰り返し実行される近似最近傍 (ANN) 検索クエリが高速化されます。この新しいキャッシュのサイズは、サーバー設定 `vector_similarity_index_cache_size` および `vector_similarity_index_cache_max_entries` で制御されます。この機能は、以前のリリースにおけるスキッピングインデックスキャッシュ機能を置き換えるものです。 [#77905](https://github.com/ClickHouse/ClickHouse/pull/77905) ([Shankar Iyer](https://github.com/shankar-iyer)). -* Delta Lake でパーティションプルーニングをサポートしました。 [#78486](https://github.com/ClickHouse/ClickHouse/pull/78486) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 読み取り専用の `MergeTree` テーブルでバックグラウンドリフレッシュをサポートし、更新可能なテーブルに対して無制限の分散リーダーからクエリできるようにします(ClickHouse ネイティブのデータレイク)。 [#76467](https://github.com/ClickHouse/ClickHouse/pull/76467) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* データベースのメタデータファイルを保存するためにカスタムディスクを使用できるようになりました。現在、これはサーバー全体の設定としてのみ構成できます。 [#77365](https://github.com/ClickHouse/ClickHouse/pull/77365) ([Tuan Pham Anh](https://github.com/tuanpach))。 -* plain_rewritable ディスクで `ALTER TABLE ... ATTACH|DETACH|MOVE|REPLACE PARTITION` がサポートされるようになりました。 [#77406](https://github.com/ClickHouse/ClickHouse/pull/77406) ([Julia Kartseva](https://github.com/jkartseva)). -* `Kafka` テーブルエンジンに、`SASL` 構成および認証情報用のテーブル設定を追加しました。これにより、構成ファイルや名前付きコレクションを使用することなく、`CREATE TABLE` 文で直接、Kafka および Kafka 互換システムに対する SASL ベースの認証を設定できるようになります。 [#78810](https://github.com/ClickHouse/ClickHouse/pull/78810) ([Christoph Wurm](https://github.com/cwurm))。 -* MergeTree テーブルに対して `default_compression_codec` を設定できるようにしました。この設定は、対象のカラムに対して CREATE 文で圧縮コーデックが明示的に定義されていない場合に使用されます。これにより [#42005](https://github.com/ClickHouse/ClickHouse/issues/42005) が解決されました。[#66394](https://github.com/ClickHouse/ClickHouse/pull/66394) ([gvoelfin](https://github.com/gvoelfin))。 -* 分散接続で特定のネットワークを使用できるようにするため、clusters の設定に `bind_host` を追加しました。 [#74741](https://github.com/ClickHouse/ClickHouse/pull/74741) ([Todd Yocum](https://github.com/toddyocum)). -* `system.tables` に `parametrized_view_parameters` という新しいカラムを追加しました。 [https://github.com/clickhouse/clickhouse/issues/66756](https://github.com/clickhouse/clickhouse/issues/66756) をクローズしました。 [#75112](https://github.com/ClickHouse/ClickHouse/pull/75112) ([NamNguyenHoai](https://github.com/NamHoaiNguyen)). -* データベースコメントを変更可能にしました。[#73351](https://github.com/ClickHouse/ClickHouse/issues/73351) をクローズ。### ユーザー向け変更のドキュメント用エントリ。[#75622](https://github.com/ClickHouse/ClickHouse/pull/75622)([NamNguyenHoai](https://github.com/NamHoaiNguyen))。 -* PostgreSQL 互換プロトコルでの `SCRAM-SHA-256` 認証をサポート。[#76839](https://github.com/ClickHouse/ClickHouse/pull/76839) ([scanhex12](https://github.com/scanhex12))。 -* 関数 `arrayLevenshteinDistance`、`arrayLevenshteinDistanceWeighted`、`arraySimilarity` を追加。[#77187](https://github.com/ClickHouse/ClickHouse/pull/77187)([Mikhail f. Shiryaev](https://github.com/Felixoid))。 -* 設定 `parallel_distributed_insert_select` は、`ReplicatedMergeTree` への `INSERT SELECT` に対しても有効になりました(以前は Distributed テーブルが必要でした)。 [#78041](https://github.com/ClickHouse/ClickHouse/pull/78041) ([Igor Nikonov](https://github.com/devcrafter))。 -* `toInterval` 関数を導入しました。この関数は 2 つの引数(値と単位)を受け取り、その値を対応する `Interval` 型に変換します。[#78723](https://github.com/ClickHouse/ClickHouse/pull/78723) ([Andrew Davis](https://github.com/pulpdrew))。 -* iceberg テーブル関数およびエンジンにおいて、ルートの `metadata.json` ファイルを解決するための複数の便利な方法を追加しました。[#78455](https://github.com/ClickHouse/ClickHouse/issues/78455) をクローズしました。[#78475](https://github.com/ClickHouse/ClickHouse/pull/78475)([Daniil Ivanik](https://github.com/divanik))。 -* ClickHouse の SSH プロトコルでパスワードベースの認証をサポートしました。 [#78586](https://github.com/ClickHouse/ClickHouse/pull/78586) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 - -#### 実験的機能 {#experimental-feature} - -* `WHERE` 句の `EXISTS` 式の引数として相関サブクエリをサポートしました。[#72459](https://github.com/ClickHouse/ClickHouse/issues/72459) をクローズ。[#76078](https://github.com/ClickHouse/ClickHouse/pull/76078)([Dmitry Novik](https://github.com/novikd))。 -* 関数 `sparseGrams` および `sparseGramsHashes` に、ASCII 版と UTF8 版を追加しました。作者: [scanhex12](https://github.com/scanhex12)。[#78176](https://github.com/ClickHouse/ClickHouse/pull/78176)([Pervakov Grigorii](https://github.com/GrigoryPervakov))。これらの関数は使用しないでください。実装は今後のバージョンで変更されます。 - -#### パフォーマンスの向上 {#performance-improvement} - -* ORDER BY と LIMIT の適用後にデータを読み取る lazy column を用いてパフォーマンスを最適化します。 [#55518](https://github.com/ClickHouse/ClickHouse/pull/55518) ([Xiaozhe Yu](https://github.com/wudidapaopao)). -* クエリ条件キャッシュをデフォルトで有効にしました。 [#79080](https://github.com/ClickHouse/ClickHouse/pull/79080) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* `col->insertFrom()` への呼び出しをデバーチャライゼーションすることで JOIN 結果の構築を高速化しました。 [#77350](https://github.com/ClickHouse/ClickHouse/pull/77350) ([Alexander Gololobov](https://github.com/davenger)). -* フィルタのクエリプランステップにある等価条件を、可能な場合は JOIN 条件にマージして、ハッシュテーブルのキーとして利用できるようにしました。 [#78877](https://github.com/ClickHouse/ClickHouse/pull/78877) ([Dmitry Novik](https://github.com/novikd))。 -* 両方のテーブルで JOIN キーが PK の先頭部分になっている場合、JOIN に動的シャーディングを使用します。この最適化は `query_plan_join_shard_by_pk_ranges` 設定で有効にできます(デフォルトでは無効)。[#74733](https://github.com/ClickHouse/ClickHouse/pull/74733) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* 列の下限値および上限値に基づく `Iceberg` データのプルーニングをサポートしました。[#77638](https://github.com/ClickHouse/ClickHouse/issues/77638) を修正しました。[#78242](https://github.com/ClickHouse/ClickHouse/pull/78242)([alesapin](https://github.com/alesapin))。 -* `Iceberg` 向けの単純な `count` 最適化を実装しました。これにより、フィルタなしの `count()` を含むクエリが高速になります。[#77639](https://github.com/ClickHouse/ClickHouse/issues/77639) をクローズ。[#78090](https://github.com/ClickHouse/ClickHouse/pull/78090)([alesapin](https://github.com/alesapin))。 -* `max_merge_delayed_streams_for_parallel_write` を使用して、マージ処理が並列にフラッシュできる列数を構成できるようにしました(これにより、S3 への縦型マージのメモリ使用量がおよそ 1/25 に削減されます)。 [#77922](https://github.com/ClickHouse/ClickHouse/pull/77922) ([Azat Khuzhin](https://github.com/azat)). -* キャッシュがマージなどで受動的に使用される場合は、`filesystem_cache_prefer_bigger_buffer_size` を無効にします。これにより、マージ処理時のメモリ消費量を抑えることができます。 [#77898](https://github.com/ClickHouse/ClickHouse/pull/77898) ([Kseniia Sumarokova](https://github.com/kssenii)). -* parallel replicas を有効にした読み取り時のタスクサイズの決定に、レプリカ数を利用するようになりました。これにより、読み取るデータ量がそれほど多くない場合でも、レプリカ間での負荷分散がより良好になります。[#78695](https://github.com/ClickHouse/ClickHouse/pull/78695)([Nikita Taranov](https://github.com/nickitat))。 -* `ORC` フォーマットにおいて非同期 I/O プリフェッチをサポートし、リモート I/O レイテンシを隠蔽することで全体の性能を向上しました。 [#70534](https://github.com/ClickHouse/ClickHouse/pull/70534) ([李扬](https://github.com/taiyang-li)). -* 非同期インサートに使用されるメモリを事前割り当てしてパフォーマンスを向上させます。[#74945](https://github.com/ClickHouse/ClickHouse/pull/74945) ([Ilya Golshtein](https://github.com/ilejn))。 -* `multiRead` が利用可能な箇所では単一の `get` リクエストの使用を廃止することで、Keeper へのリクエスト数を削減しました。これにより、レプリカ数の増加時に単一の `get` リクエストが Keeper に対して発生させうる大きな負荷を回避できます。 [#56862](https://github.com/ClickHouse/ClickHouse/pull/56862) ([Nikolay Degterinsky](https://github.com/evillique)). -* Nullable 引数に対する関数実行の軽微な最適化。[#76489](https://github.com/ClickHouse/ClickHouse/pull/76489)([李扬](https://github.com/taiyang-li))。 -* `arraySort` を最適化しました。 [#76850](https://github.com/ClickHouse/ClickHouse/pull/76850) ([李扬](https://github.com/taiyang-li)). -* 同一パートのマークをマージして一括でクエリ条件キャッシュに書き込むことで、ロックのオーバーヘッドを削減しました。 [#77377](https://github.com/ClickHouse/ClickHouse/pull/77377) ([zhongyuankai](https://github.com/zhongyuankai)). -* 1 つだけブラケット展開を行うクエリに対して `s3Cluster` のパフォーマンスを最適化しました。[#77686](https://github.com/ClickHouse/ClickHouse/pull/77686) ([Tomáš Hromada](https://github.com/gyfis))。 -* 単一の Nullable 列または LowCardinality 列に対する ORDER BY を最適化しました。[#77789](https://github.com/ClickHouse/ClickHouse/pull/77789) ([李扬](https://github.com/taiyang-li))。 -* `Native` 形式のメモリ使用量を最適化しました。 [#78442](https://github.com/ClickHouse/ClickHouse/pull/78442) ([Azat Khuzhin](https://github.com/azat)). -* 些細な最適化: 型キャストが必要な場合は `count(if(...))` を `countIf` に書き換えないようにする。[#78564](https://github.com/ClickHouse/ClickHouse/issues/78564) をクローズ。[#78565](https://github.com/ClickHouse/ClickHouse/pull/78565)([李扬](https://github.com/taiyang-li))。 -* `hasAll` 関数で `tokenbf_v1`、`ngrambf_v1` の全文スキップインデックスを利用できるようになりました。 [#77662](https://github.com/ClickHouse/ClickHouse/pull/77662) ([UnamedRus](https://github.com/UnamedRus))。 -* ベクトル類似性インデックスがメインメモリを最大 2 倍まで過剰に割り当ててしまう可能性がありました。この修正では、メモリ割り当て戦略を見直すことでメモリ消費量を削減し、ベクトル類似性インデックスキャッシュの有効性を向上させます(issue [#78056](https://github.com/ClickHouse/ClickHouse/issues/78056))。[#78394](https://github.com/ClickHouse/ClickHouse/pull/78394)([Shankar Iyer](https://github.com/shankar-iyer))。 -* `system.metric_log` テーブルに対してスキーマタイプを指定するための設定 `schema_type` を導入しました。利用可能なスキーマは 3 種類あります。`wide` — 現行のスキーマで、各メトリクス/イベントが個別のカラムに配置されます(個々のカラムを読む処理に最も効率的)、`transposed` — `system.asynchronous_metric_log` に類似しており、メトリクス/イベントが行として格納されます。そして、最も興味深い `transposed_with_wide_view` — 内部テーブルは `transposed` スキーマで作成しつつ、そのテーブルに対するクエリを変換して実行する `wide` スキーマのビューも提供する方式です。`transposed_with_wide_view` ではビューのサブ秒解像度はサポートされず、`event_time_microseconds` は後方互換性のためのエイリアスにすぎません。 [#78412](https://github.com/ClickHouse/ClickHouse/pull/78412) ([alesapin](https://github.com/alesapin))。 - -#### 改善点 {#improvement} - -* `Distributed` クエリのクエリプランをシリアライズできるようになりました。新しい設定 `serialize_query_plan` が追加されました。有効化すると、`Distributed` テーブルからのクエリは、リモートクエリ実行時にシリアライズされたクエリプランを使用します。これにより TCP プロトコルに新しいパケットタイプが導入されるため、このパケットを処理できるようにするには、サーバー設定に `true` を追加する必要があります。 [#69652](https://github.com/ClickHouse/ClickHouse/pull/69652) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* ビューからの `JSON` 型およびサブカラムの読み取りが可能になりました。 [#76903](https://github.com/ClickHouse/ClickHouse/pull/76903) ([Pavel Kruglov](https://github.com/Avogar)). -* ALTER DATABASE ... ON CLUSTER がサポートされました。 [#79242](https://github.com/ClickHouse/ClickHouse/pull/79242) ([Tuan Pham Anh](https://github.com/tuanpach)). -* リフレッシュ可能なマテリアライズドビューのリフレッシュが `system.query_log` に記録されるようになりました。 [#71333](https://github.com/ClickHouse/ClickHouse/pull/71333) ([Michael Kolupaev](https://github.com/al13n321)). -* ユーザー定義関数 (UDF) を、その設定内の新しい設定項目によって決定的としてマークできるようになりました。また、クエリキャッシュは、クエリ内で呼び出される UDF が決定的かどうかを確認するようになりました。決定的である場合、そのクエリ結果がキャッシュされます。(Issue [#59988](https://github.com/ClickHouse/ClickHouse/issues/59988)). [#77769](https://github.com/ClickHouse/ClickHouse/pull/77769) ([Jimmy Aguilar Mena](https://github.com/Ergus)). -* あらゆる種類のレプリケーションタスクに対してバックオフロジックを有効化しました。これにより、CPU 使用率、メモリ使用量、およびログファイルのサイズを削減できるようになります。`max_postpone_time_for_failed_mutations_ms` に類似した新しい設定項目として、`max_postpone_time_for_failed_replicated_fetches_ms`、`max_postpone_time_for_failed_replicated_merges_ms`、`max_postpone_time_for_failed_replicated_tasks_ms` を追加しました。 [#74576](https://github.com/ClickHouse/ClickHouse/pull/74576) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). -* `system.errors` に `query_id` を追加しました。[#75815](https://github.com/ClickHouse/ClickHouse/issues/75815) をクローズしました。[#76581](https://github.com/ClickHouse/ClickHouse/pull/76581)([Vladimir Baikov](https://github.com/bkvvldmr))。 -* `UInt128` から `IPv6` への変換をサポートしました。これにより、`IPv6` に対する `bitAnd` 演算や算術演算、および結果の `IPv6` への再変換が可能になります。[#76752](https://github.com/ClickHouse/ClickHouse/issues/76752) をクローズします。これにより、`IPv6` に対する `bitAnd` 演算の結果も再度 `IPv6` に変換できるようになります。[#57707](https://github.com/ClickHouse/ClickHouse/pull/57707) も参照してください。[#76928](https://github.com/ClickHouse/ClickHouse/pull/76928)([Muzammil Abdul Rehman](https://github.com/muzammilar))。 -* デフォルトでは、`Variant` 型内のテキスト形式で特殊な `Bool` 値をパースしないようになりました。これを有効にするには、設定 `allow_special_bool_values_inside_variant` を使用します。 [#76974](https://github.com/ClickHouse/ClickHouse/pull/76974) ([Pavel Kruglov](https://github.com/Avogar)). -* セッションレベルおよびサーバーレベルの両方で、低い `priority` のクエリに対するタスクごとの待機時間を設定できるようにしました。 [#77013](https://github.com/ClickHouse/ClickHouse/pull/77013) ([VicoWu](https://github.com/VicoWu)). -* JSON データ型の値の比較を実装しました。これにより、JSON オブジェクトを Map と同様に比較できるようになりました。 [#77397](https://github.com/ClickHouse/ClickHouse/pull/77397) ([Pavel Kruglov](https://github.com/Avogar))。 -* `system.kafka_consumers` による権限管理のサポートを改善。内部の `librdkafka` エラーを転送するようにした(なお、このライブラリには大きな問題があることを付記しておく)。 [#77700](https://github.com/ClickHouse/ClickHouse/pull/77700) ([Ilya Golshtein](https://github.com/ilejn)). -* Buffer テーブルエンジンの設定の検証を追加しました。 [#77840](https://github.com/ClickHouse/ClickHouse/pull/77840) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* `HDFS` での `pread` を有効化または無効化するための設定 `enable_hdfs_pread` を追加。 [#77885](https://github.com/ClickHouse/ClickHouse/pull/77885) ([kevinyhzou](https://github.com/KevinyhZou)). -* ZooKeeper の `multi` 読み取りおよび書き込みリクエスト数用のプロファイルイベントを追加しました。 [#77888](https://github.com/ClickHouse/ClickHouse/pull/77888) ([JackyWoo](https://github.com/JackyWoo)). -* `disable_insertion_and_mutation` が有効な場合でも一時テーブルの作成および挿入を許可できるようにしました。 [#77901](https://github.com/ClickHouse/ClickHouse/pull/77901) ([Xu Jia](https://github.com/XuJia0210)). -* `max_insert_delayed_streams_for_parallel_write` を 100 に減らしました。 [#77919](https://github.com/ClickHouse/ClickHouse/pull/77919) ([Azat Khuzhin](https://github.com/azat)). -* `yyy` のような Joda 構文(ちなみに、これは Java の世界のものです)における年の解析を修正。 [#77973](https://github.com/ClickHouse/ClickHouse/pull/77973) ([李扬](https://github.com/taiyang-li)) -* `MergeTree` テーブルのパーツのアタッチ処理は、そのブロック順に従って実行されます。これは、`ReplacingMergeTree` などの特殊なマージアルゴリズムにとって重要です。これにより [#71009](https://github.com/ClickHouse/ClickHouse/issues/71009) がクローズされます。[#77976](https://github.com/ClickHouse/ClickHouse/pull/77976)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* クエリマスキングルールは、一致が発生した場合に `LOGICAL_ERROR` をスローできるようになりました。これにより、あらかじめ定義したパスワードがログ内のどこかで漏えいしていないかを検証しやすくなります。 [#78094](https://github.com/ClickHouse/ClickHouse/pull/78094) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* MySQL との互換性を向上させるため、`information_schema.tables` に `index_length_column` 列を追加しました。 [#78119](https://github.com/ClickHouse/ClickHouse/pull/78119) ([Paweł Zakrzewski](https://github.com/KrzaQ)). -* 2 つの新しいメトリクス `TotalMergeFailures` と `NonAbortedMergeFailures` を導入しました。これらのメトリクスは、短期間に過度に多くのマージが失敗するケースを検出するためのものです。 [#78150](https://github.com/ClickHouse/ClickHouse/pull/78150) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 -* パススタイル使用時にキーが指定されていない場合の誤った S3 URL の解析を修正。 [#78185](https://github.com/ClickHouse/ClickHouse/pull/78185) ([Arthur Passos](https://github.com/arthurpassos)). -* `BlockActiveTime`、`BlockDiscardTime`、`BlockWriteTime`、`BlockQueueTime`、`BlockReadTime` の非同期メトリクスで誤った値が報告されていた問題を修正しました(変更前は 1 秒が誤って 0.001 と報告されていました)。 [#78211](https://github.com/ClickHouse/ClickHouse/pull/78211) ([filimonov](https://github.com/filimonov)). -* StorageS3(Azure)Queue のマテリアライズドビューへのプッシュ処理中に発生するエラーに対して、`loading_retries` の上限が適用されるようにしました。これ以前は、そのようなエラーは無制限に再試行されていました。 [#78313](https://github.com/ClickHouse/ClickHouse/pull/78313) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Delta Lake の `delta-kernel-rs` 実装で、パフォーマンスとプログレスバーを修正しました。 [#78368](https://github.com/ClickHouse/ClickHouse/pull/78368) ([Kseniia Sumarokova](https://github.com/kssenii)). -* ランタイムディスクで `include`、`from_env`、`from_zk` をサポートするようにしました。[#78177](https://github.com/ClickHouse/ClickHouse/issues/78177) をクローズ。[#78470](https://github.com/ClickHouse/ClickHouse/pull/78470)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 長時間実行中の mutation に対する動的な警告を `system.warnings` テーブルに追加しました。 [#78658](https://github.com/ClickHouse/ClickHouse/pull/78658) ([Bharat Nallan](https://github.com/bharatnc))。 -* システムテーブル `system.query_condition_cache` にフィールド `condition` を追加しました。これは、クエリ条件キャッシュでキーとして使用されるハッシュの元となるプレーンテキストの条件式を保存します。 [#78671](https://github.com/ClickHouse/ClickHouse/pull/78671) ([Robert Schulze](https://github.com/rschu1ze))。 -* Hive のパーティションで空の値を許可できるようにしました。 [#78816](https://github.com/ClickHouse/ClickHouse/pull/78816) ([Arthur Passos](https://github.com/arthurpassos)). -* `BFloat16` における `IN` 句の型変換を修正しました(つまり、`SELECT toBFloat16(1) IN [1, 2, 3];` は今後 `1` を返します)。[#78754](https://github.com/ClickHouse/ClickHouse/issues/78754) をクローズしました。[#78839](https://github.com/ClickHouse/ClickHouse/pull/78839)([Raufs Dunamalijevs](https://github.com/rienath))。 -* `MergeTree` で `disk = ...` が設定されている場合は、他のディスク上のパーツをチェックしないようにしました。 [#78855](https://github.com/ClickHouse/ClickHouse/pull/78855) ([Azat Khuzhin](https://github.com/azat)). -* `system.query_log` の `used_data_type_families` 内のデータ型が正規名で記録されるようにしました。 [#78972](https://github.com/ClickHouse/ClickHouse/pull/78972) ([Kseniia Sumarokova](https://github.com/kssenii)). -* `recoverLostReplica` のクリーンアップ設定を、[#78637](https://github.com/ClickHouse/ClickHouse/pull/78637) と同様にしました。[#79113](https://github.com/ClickHouse/ClickHouse/pull/79113)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 -* INFILE のスキーマ推論で挿入列を使用するようにしました。 [#78490](https://github.com/ClickHouse/ClickHouse/pull/78490) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). - -#### バグ修正(公式安定版リリースでユーザーに影響する誤動作) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* 集約プロジェクションで `count(Nullable)` が使用された場合の誤ったプロジェクション解析を修正しました。これにより[#74495](https://github.com/ClickHouse/ClickHouse/issues/74495) が解決されます。このPRではまた、プロジェクションがなぜ使用されるのか、あるいはなぜ使用されないのかを明確にするため、プロジェクション解析まわりのログも追加しました。[#74498](https://github.com/ClickHouse/ClickHouse/pull/74498) ([Amos Bird](https://github.com/amosbird))。 -* `DETACH PART` の実行中に発生する `Part <...> does not contain in snapshot of previous virtual parts. (PART_IS_TEMPORARILY_LOCKED)` エラーを修正。 [#76039](https://github.com/ClickHouse/ClickHouse/pull/76039) ([Aleksei Filatov](https://github.com/aalexfvk)). -* アナライザーでリテラルを含む式を使用するスキップインデックスが動作しない問題を修正し、インデックスの解析時に自明なキャストを削除しました。 [#77229](https://github.com/ClickHouse/ClickHouse/pull/77229) ([Pavel Kruglov](https://github.com/Avogar)). -* `close_session` クエリパラメータが機能せず、その結果、名前付きセッションが `session_timeout` 経過後にしかクローズされなかったバグを修正。 [#77336](https://github.com/ClickHouse/ClickHouse/pull/77336) ([Alexey Katsman](https://github.com/alexkats))。 -* マテリアライズドビューなしで NATS サーバーからメッセージを受信できない問題を修正しました。[#77392](https://github.com/ClickHouse/ClickHouse/pull/77392) ([Dmitry Novikov](https://github.com/dmitry-sles-novikov))。 -* 空の `FileLog` から `merge` テーブル関数経由で読み込み時に発生する論理エラーを修正。 [#75575](https://github.com/ClickHouse/ClickHouse/issues/75575) をクローズ。 [#77441](https://github.com/ClickHouse/ClickHouse/pull/77441)([Vladimir Cherkasov](https://github.com/vdimir))。 -* 共有バリアント由来の `Dynamic` シリアライゼーションでデフォルトのフォーマット設定を使用するようにしました。 [#77572](https://github.com/ClickHouse/ClickHouse/pull/77572) ([Pavel Kruglov](https://github.com/Avogar)). -* ローカルディスク上のテーブルデータパスの存在チェックを修正。[#77608](https://github.com/ClickHouse/ClickHouse/pull/77608)([Tuan Pham Anh](https://github.com/tuanpach))。 -* 一部の型における定数値のリモート送信を修正しました。 [#77634](https://github.com/ClickHouse/ClickHouse/pull/77634) ([Pavel Kruglov](https://github.com/Avogar)). -* S3/AzureQueue において、有効期限切れのコンテキストによりクラッシュが発生する問題を修正しました。 [#77720](https://github.com/ClickHouse/ClickHouse/pull/77720) ([Kseniia Sumarokova](https://github.com/kssenii)). -* RabbitMQ、Nats、Redis、AzureQueue テーブルエンジンで資格情報を非表示にするようにしました。 [#77755](https://github.com/ClickHouse/ClickHouse/pull/77755) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* `argMin` および `argMax` における `NaN` 比較の未定義動作を修正。 [#77756](https://github.com/ClickHouse/ClickHouse/pull/77756) ([Raúl Marín](https://github.com/Algunenano)). -* 操作が書き込み用のブロックを一切生成しない場合でも、マージおよびミューテーションがキャンセルされているかどうかを定期的に確認するようにしました。 [#77766](https://github.com/ClickHouse/ClickHouse/pull/77766) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* Replicated データベースにおいて、新たに追加されたレプリカで refreshable マテリアライズドビューが動作しない問題を修正しました。 [#77774](https://github.com/ClickHouse/ClickHouse/pull/77774) ([Michael Kolupaev](https://github.com/al13n321)). -* `NOT_FOUND_COLUMN_IN_BLOCK` エラー発生時にクラッシュする可能性があった問題を修正。 [#77854](https://github.com/ClickHouse/ClickHouse/pull/77854) ([Vladimir Cherkasov](https://github.com/vdimir))。 -* データの投入中に S3/AzureQueue で発生していたクラッシュを修正。 [#77878](https://github.com/ClickHouse/ClickHouse/pull/77878) ([Bharat Nallan](https://github.com/bharatnc)). -* SSH サーバーでの履歴のあいまい検索機能を無効化しました(`skim` ライブラリが必要なため)。 [#78002](https://github.com/ClickHouse/ClickHouse/pull/78002) ([Azat Khuzhin](https://github.com/azat))。 -* インデックス未作成のカラムに対するベクトル検索クエリが、同じテーブル内にベクトル類似度インデックスが定義された別のベクトルカラムが存在する場合に誤った結果を返していた不具合を修正しました。(Issue [#77978](https://github.com/ClickHouse/ClickHouse/issues/77978))。[#78069](https://github.com/ClickHouse/ClickHouse/pull/78069) ([Shankar Iyer](https://github.com/shankar-iyer))。 -* ごく小さな誤りがあったプロンプト "The requested output format {} is binary... Do you want to output it anyway? [y/N]" を修正しました。 [#78095](https://github.com/ClickHouse/ClickHouse/pull/78095) ([Azat Khuzhin](https://github.com/azat)). -* `toStartOfInterval` の origin 引数がゼロのときに発生していたバグを修正しました。 [#78096](https://github.com/ClickHouse/ClickHouse/pull/78096) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* HTTP インターフェイスで、`session_id` クエリパラメータに空値を指定できないようにしました。 [#78098](https://github.com/ClickHouse/ClickHouse/pull/78098) ([Alexey Katsman](https://github.com/alexkats)). -* `ALTER` クエリの直後に実行された `RENAME` クエリが原因で `Replicated` データベースのメタデータが上書きされてしまう可能性があった問題を修正しました。 [#78107](https://github.com/ClickHouse/ClickHouse/pull/78107) ([Nikolay Degterinsky](https://github.com/evillique)). -* `NATS` エンジンのクラッシュを修正。 [#78108](https://github.com/ClickHouse/ClickHouse/pull/78108) ([Dmitry Novikov](https://github.com/dmitry-sles-novikov)). -* SSH 向け埋め込みクライアントで `history_file` を作成しようとしないようにしました(以前のバージョンでは、作成は常に失敗していましたが、試行自体は行われていました)。 [#78112](https://github.com/ClickHouse/ClickHouse/pull/78112) ([Azat Khuzhin](https://github.com/azat)). -* `RENAME DATABASE` または `DROP TABLE` クエリの実行後に `system.detached_tables` が誤った情報を表示する問題を修正。 [#78126](https://github.com/ClickHouse/ClickHouse/pull/78126) ([Nikolay Degterinsky](https://github.com/evillique)). -* [#77274](https://github.com/ClickHouse/ClickHouse/pull/77274) の後に `Replicated` データベースでテーブル数が多すぎる場合のチェックを修正しました。また、`ReplicatedMergeTree` や `KeeperMap` の場合に Keeper に管理されないノードが作成されるのを避けるため、ストレージを作成する前にチェックを実行するようにしました。 [#78127](https://github.com/ClickHouse/ClickHouse/pull/78127)([Nikolay Degterinsky](https://github.com/evillique))。 -* 並行して実行される `S3Queue` メタデータ初期化が原因となり得るクラッシュを修正しました。 [#78131](https://github.com/ClickHouse/ClickHouse/pull/78131) ([Azat Khuzhin](https://github.com/azat)). -* `groupArray*` 関数は、これまでは実行を試みていた `max_size` 引数の Int 型で値が 0 の場合について、UInt 型の場合と同様に `BAD_ARGUMENTS` エラーを返すようになりました。 [#78140](https://github.com/ClickHouse/ClickHouse/pull/78140) ([Eduard Karacharov](https://github.com/korowa)). -* ローカルテーブルがデタッチされる前に削除されていた場合でも、失われたレプリカの復旧時にクラッシュしないようにしました。 [#78173](https://github.com/ClickHouse/ClickHouse/pull/78173) ([Raúl Marín](https://github.com/Algunenano)). -* `system.s3_queue_settings` の "alterable" 列が常に `false` を返していた問題を修正しました。 [#78187](https://github.com/ClickHouse/ClickHouse/pull/78187) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Azure アクセス署名をマスクし、ユーザーからもログ上でも見えないようにしました。 [#78189](https://github.com/ClickHouse/ClickHouse/pull/78189) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Wide パーツ内で、プレフィックスを持つサブストリームのプリフェッチ処理を修正。[#78205](https://github.com/ClickHouse/ClickHouse/pull/78205) ([Pavel Kruglov](https://github.com/Avogar)). -* `LowCardinality(Nullable)` 型のキー配列で `mapFromArrays` がクラッシュしたり誤った結果を返したりする問題を修正しました。 [#78240](https://github.com/ClickHouse/ClickHouse/pull/78240) ([Eduard Karacharov](https://github.com/korowa)). -* delta-kernel-rs の auth オプションを修正しました。 [#78255](https://github.com/ClickHouse/ClickHouse/pull/78255) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* レプリカの `disable_insertion_and_mutation` が true の場合、Refreshable マテリアライズドビューのタスクをスケジュールしないようにしました。このタスクは挿入処理を行うため、`disable_insertion_and_mutation` が true の場合には失敗します。 [#78277](https://github.com/ClickHouse/ClickHouse/pull/78277) ([Xu Jia](https://github.com/XuJia0210)). -* `Merge` エンジンで、基盤となるテーブルへのアクセスを検証するようにしました。 [#78339](https://github.com/ClickHouse/ClickHouse/pull/78339) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* `Distributed` テーブルをクエリする際には、`FINAL` 修飾子は無視されます。 [#78428](https://github.com/ClickHouse/ClickHouse/pull/78428) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* `bitmapMin` は、ビットマップが空の場合に uint32_max(入力型がそれより大きい場合は uint64_max)を返します。これは、空の roaring_bitmap における最小値の動作と一致します。 [#78444](https://github.com/ClickHouse/ClickHouse/pull/78444) ([wxybear](https://github.com/wxybear))。 -* `distributed_aggregation_memory_efficient` が有効な場合に、`FROM` から読み込んだ直後に行っていたクエリ処理の並列化を無効化しました。以前はこれにより論理エラーが発生する可能性がありました。[#76934](https://github.com/ClickHouse/ClickHouse/issues/76934) をクローズ。[#78500](https://github.com/ClickHouse/ClickHouse/pull/78500)([flynn](https://github.com/ucasfl))。 -* `max_streams_to_max_threads_ratio` 設定を適用した結果、計画されたストリーム数が 0 になる場合に備えて、少なくとも 1 本の読み取り用ストリームが設定されるようにしました。 [#78505](https://github.com/ClickHouse/ClickHouse/pull/78505) ([Eduard Karacharov](https://github.com/korowa)). -* ストレージ `S3Queue` において、論理エラー「Cannot unregister: table uuid is not registered」を修正しました。[#78285](https://github.com/ClickHouse/ClickHouse/issues/78285) をクローズ。[#78541](https://github.com/ClickHouse/ClickHouse/pull/78541)([Kseniia Sumarokova](https://github.com/kssenii))。 -* ClickHouse は、cgroup v1 と v2 の両方が有効なシステムで、自身の cgroup v2 を特定できるようになりました。 [#78566](https://github.com/ClickHouse/ClickHouse/pull/78566) ([Grigory Korolev](https://github.com/gkorolev)). -* `-Cluster` テーブル関数が、テーブルレベルの設定と併用した場合に失敗していました。 [#78587](https://github.com/ClickHouse/ClickHouse/pull/78587) ([Daniil Ivanik](https://github.com/divanik))。 -* INSERT 時に ReplicatedMergeTree がトランザクションをサポートしていない場合のチェックを改善。 [#78633](https://github.com/ClickHouse/ClickHouse/pull/78633) ([Azat Khuzhin](https://github.com/azat))。 -* アタッチ処理時にクエリ設定をクリーンアップするようにしました。 [#78637](https://github.com/ClickHouse/ClickHouse/pull/78637) ([Raúl Marín](https://github.com/Algunenano)). -* `iceberg_metadata_file_path` に無効なパスが指定された場合にクラッシュする不具合を修正しました。 [#78688](https://github.com/ClickHouse/ClickHouse/pull/78688) ([alesapin](https://github.com/alesapin)). -* `delta-kernel-s` 実装を用いた `DeltaLake` テーブルエンジンにおいて、読み取りスキーマがテーブルスキーマと異なり、かつパーティションカラムが存在する場合に `not found column` エラーが発生する不具合を修正しました。 [#78690](https://github.com/ClickHouse/ClickHouse/pull/78690) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 名前付きセッションのクローズをスケジュールした後(ただしタイムアウトがまだ発生していないうちに)に、同じ名前の新しい名前付きセッションを作成すると、その新しいセッションが最初のセッションのクローズ予定時刻にクローズされてしまう問題を修正しました。 [#78698](https://github.com/ClickHouse/ClickHouse/pull/78698) ([Alexey Katsman](https://github.com/alexkats)). -* `MongoDB` エンジンのテーブルまたは `mongodb` テーブル関数から読み取る、いくつかの種類の `SELECT` クエリを修正しました。`WHERE` 句内で定数値が暗黙的に型変換されるクエリ(例:`WHERE datetime = '2025-03-10 00:00:00'`)や、`LIMIT` および `GROUP BY` を含むクエリなどが対象です。以前は、これらのクエリが誤った結果を返すことがありました。 [#78777](https://github.com/ClickHouse/ClickHouse/pull/78777) ([Anton Popov](https://github.com/CurtizJ)). -* `CHECK TABLE` 実行中にテーブルのシャットダウン処理をブロックしないようにしました。 [#78782](https://github.com/ClickHouse/ClickHouse/pull/78782) ([Raúl Marín](https://github.com/Algunenano)). -* Keeper の修正: すべてのケースで ephemeral カウントを正しく計算するように修正。 [#78799](https://github.com/ClickHouse/ClickHouse/pull/78799) ([Antonio Andelic](https://github.com/antonio2368)). -* `view` 以外のテーブル関数を使用した場合に `StorageDistributed` で発生していた不正なキャストを修正。[#78464](https://github.com/ClickHouse/ClickHouse/issues/78464) をクローズ。[#78828](https://github.com/ClickHouse/ClickHouse/pull/78828)([Konstantin Bogdanov](https://github.com/thevar1able))。 -* `tupleElement(*, 1)` のフォーマットの一貫性を修正します。[#78639](https://github.com/ClickHouse/ClickHouse/issues/78639) をクローズします。[#78832](https://github.com/ClickHouse/ClickHouse/pull/78832)([Konstantin Bogdanov](https://github.com/thevar1able))。 -* `ssd_cache` 型の辞書では、`block_size` と `write_buffer_size` パラメータにゼロまたは負の値が指定された場合、それらを拒否するようになりました(issue [#78314](https://github.com/ClickHouse/ClickHouse/issues/78314))。[#78854](https://github.com/ClickHouse/ClickHouse/pull/78854)([Elmi Ahmadov](https://github.com/ahmadov))。 -* 異常終了後に `ALTER` を実行した場合に Refreshable MATERIALIZED VIEW がクラッシュする問題を修正。[#78858](https://github.com/ClickHouse/ClickHouse/pull/78858) ([Azat Khuzhin](https://github.com/azat)). -* `CSV` フォーマットにおける不正な `DateTime` 値のパース処理を修正。[#78919](https://github.com/ClickHouse/ClickHouse/pull/78919)([Pavel Kruglov](https://github.com/Avogar))。 -* Keeper の修正: 失敗した multi リクエストでは watch が発火しないようにしました。 [#79247](https://github.com/ClickHouse/ClickHouse/pull/79247) ([Antonio Andelic](https://github.com/antonio2368)). -* min-max 値が明示的に指定されているものの `NULL` になっている場合に、Iceberg テーブルの読み取りが失敗していた問題を修正しました。そのようなひどいファイルを生成していたのは Go 向け Iceberg ライブラリであることが確認されています。[#78740](https://github.com/ClickHouse/ClickHouse/issues/78740) をクローズします。[#78764](https://github.com/ClickHouse/ClickHouse/pull/78764)([flynn](https://github.com/ucasfl))。 - -#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement} - -* Rust においてターゲットとする CPU 機能を考慮し、すべてのクレートで LTO を有効化しました。 [#78590](https://github.com/ClickHouse/ClickHouse/pull/78590) ([Raúl Marín](https://github.com/Algunenano)). - -### ClickHouse 25.3 LTS リリース、2025-03-20 {#253} - -#### 後方互換性のない変更 {#backward-incompatible-change} - -* レプリケーテッドデータベースの切り捨てを禁止しました。 [#76651](https://github.com/ClickHouse/ClickHouse/pull/76651) ([Bharat Nallan](https://github.com/bharatnc)). -* スキップインデックスキャッシュに関する変更を元に戻しました。 [#77447](https://github.com/ClickHouse/ClickHouse/pull/77447) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). - -#### 新機能 {#new-feature} - -* `JSON` データ型は本番利用可能です。 [https://jsonbench.com/](https://jsonbench.com/) を参照してください。`Dynamic` および `Variant` データ型も本番利用可能です。 [#77785](https://github.com/ClickHouse/ClickHouse/pull/77785)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* clickhouse-server 向けに SSH プロトコルのサポートを導入しました。これにより、任意の SSH クライアントを使用して ClickHouse に接続できるようになりました。これにより次の課題がクローズされます: [#74340](https://github.com/ClickHouse/ClickHouse/issues/74340)。[#74989](https://github.com/ClickHouse/ClickHouse/pull/74989)([George Gamezardashvili](https://github.com/Infjoker))。 -* 並列レプリカが有効な場合、テーブル関数を対応する -Cluster 版に置き換えました。これにより [#65024](https://github.com/ClickHouse/ClickHouse/issues/65024) が修正されます。[#70659](https://github.com/ClickHouse/ClickHouse/pull/70659)([Konstantin Bogdanov](https://github.com/thevar1able))。 -* Userspace Page Cache の新しい実装。OS のページキャッシュに依存する代わりにプロセス内メモリにデータをキャッシュできるようにするもので、データがローカルファイルシステムキャッシュを利用できないリモートの仮想ファイルシステム上に保存されている場合に有用です。 [#70509](https://github.com/ClickHouse/ClickHouse/pull/70509) ([Michael Kolupaev](https://github.com/al13n321)). -* 同時実行クエリ間での CPU スロットの割り当て方法を制御するサーバー設定 `concurrent_threads_scheduler` を追加しました。`round_robin`(これまでの動作)または `fair_round_robin` を指定でき、INSERT と SELECT 間の CPU 割り当ての不公平さの問題に対処します。 [#75949](https://github.com/ClickHouse/ClickHouse/pull/75949) ([Sergei Trifonov](https://github.com/serxa))。 -* `estimateCompressionRatio` 集約関数を追加しました [#70801](https://github.com/ClickHouse/ClickHouse/issues/70801)。 [#76661](https://github.com/ClickHouse/ClickHouse/pull/76661) ([Tariq Almawash](https://github.com/talmawash))。 -* 関数 `arraySymmetricDifference` を追加しました。複数の配列引数のうち、すべての引数に共通して含まれていない要素をすべて返します。例: `SELECT arraySymmetricDifference([1, 2], [2, 3])` は `[1, 3]` を返します。(issue [#61673](https://github.com/ClickHouse/ClickHouse/issues/61673))。[#76231](https://github.com/ClickHouse/ClickHouse/pull/76231)([Filipp Abapolov](https://github.com/pheepa))。 -* Iceberg ストレージ/テーブル関数の設定 `iceberg_metadata_file_path` を使用して、読み取るメタデータファイルを明示的に指定できるようにしました。 [#47412](https://github.com/ClickHouse/ClickHouse/issues/47412) を修正しました。 [#77318](https://github.com/ClickHouse/ClickHouse/pull/77318) ([alesapin](https://github.com/alesapin))。 -* ブロックチェーン実装、特に EVM ベースのシステムで一般的に使用される `keccak256` ハッシュ関数を追加しました。 [#76669](https://github.com/ClickHouse/ClickHouse/pull/76669) ([Arnaud Briche](https://github.com/arnaudbriche))。 -* 3 つの新しい関数を追加しました。仕様に準拠した `icebergTruncate`([https://iceberg.apache.org/spec/#truncate-transform-details](https://iceberg.apache.org/spec/#truncate-transform-details) を参照)、`toYearNumSinceEpoch` および `toMonthNumSinceEpoch` です。`Iceberg` エンジンにおけるパーティションプルーニングで `truncate` 変換をサポートしました。[#77403](https://github.com/ClickHouse/ClickHouse/pull/77403)([alesapin](https://github.com/alesapin))。 -* `LowCardinality(Decimal)` データ型をサポートしました [#72256](https://github.com/ClickHouse/ClickHouse/issues/72256)。 [#72833](https://github.com/ClickHouse/ClickHouse/pull/72833)([zhanglistar](https://github.com/zhanglistar))。 -* `FilterTransformPassedRows` と `FilterTransformPassedBytes` のプロファイルイベントは、クエリ実行中にフィルタリングされた行数とバイト数を示します。 [#76662](https://github.com/ClickHouse/ClickHouse/pull/76662) ([Onkar Deshpande](https://github.com/onkar))。 -* ヒストグラム型メトリクスのサポート。インターフェイスは Prometheus クライアントのものをほぼ踏襲しており、値に対応するバケットのカウンターをインクリメントするには、単に `observe(value)` を呼び出すだけです。ヒストグラムメトリクスは `system.histogram_metrics` を通じて公開されます。 [#75736](https://github.com/ClickHouse/ClickHouse/pull/75736) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 -* 明示的な値に基づいて分岐できる非定数 `CASE` のサポート。 [#77399](https://github.com/ClickHouse/ClickHouse/pull/77399) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). - -#### 実験的機能 {#experimental-feature} - -* AWS S3 およびローカルファイルシステム上の Delta Lake テーブルに対して [Unity Catalog のサポートを追加](https://www.databricks.com/product/unity-catalog) しました。[#76988](https://github.com/ClickHouse/ClickHouse/pull/76988)([alesapin](https://github.com/alesapin))。 -* Iceberg テーブル向けに AWS Glue サービスカタログとの実験的な連携を導入しました。[#77257](https://github.com/ClickHouse/ClickHouse/pull/77257)([alesapin](https://github.com/alesapin))。 -* 動的クラスタ自動検出のサポートを追加しました。これは既存の _node_ 自動検出機能を拡張するものです。ClickHouse は、`` を利用して共通の ZooKeeper パス配下に新しい _clusters_ を自動的に検出および登録できるようになりました。[#76001](https://github.com/ClickHouse/ClickHouse/pull/76001)([Anton Ivashkin](https://github.com/ianton-ru))。 -* 新しい設定 `enable_replacing_merge_with_cleanup_for_min_age_to_force_merge` により、設定可能なタイムアウト後にパーティション全体を自動的にクリーンアップマージできるようになりました。[#76440](https://github.com/ClickHouse/ClickHouse/pull/76440)([Christoph Wurm](https://github.com/cwurm))。 - -#### パフォーマンスの改善 {#performance-improvement} - -* 繰り返し利用される条件に対してクエリ条件キャッシュを実装し、クエリのパフォーマンスを向上しました。条件を満たさないデータ部分の範囲をメモリ内の一時インデックスとして記憶し、後続のクエリでこのインデックスを利用します。[#67768](https://github.com/ClickHouse/ClickHouse/issues/67768) [#69236](https://github.com/ClickHouse/ClickHouse/pull/69236)([zhongyuankai](https://github.com/zhongyuankai))。 -* パーツ削除時にキャッシュからデータを積極的に追い出すようにしました。データ量がそれより少ない場合に、キャッシュが最大サイズまで成長しないようにします。[#76641](https://github.com/ClickHouse/ClickHouse/pull/76641)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 算術計算において Int256 および UInt256 を clang 組み込みの i256 に置き換え、パフォーマンスを改善しました [#70502](https://github.com/ClickHouse/ClickHouse/issues/70502)。[#73658](https://github.com/ClickHouse/ClickHouse/pull/73658)([李扬](https://github.com/taiyang-li))。 -* 一部のケース(例: 空の配列カラム)では、データパーツに空ファイルが含まれることがあります。テーブルがメタデータとオブジェクトストレージが分離されたディスク上に存在する場合、そのようなファイルについては空の BLOB の書き込みをスキップし、メタデータのみを保存できるようにしました。[#75860](https://github.com/ClickHouse/ClickHouse/pull/75860)([Alexander Gololobov](https://github.com/davenger))。 -* Decimal32/Decimal64/DateTime64 に対する min/max のパフォーマンスを改善しました。[#76570](https://github.com/ClickHouse/ClickHouse/pull/76570)([李扬](https://github.com/taiyang-li))。 -* クエリコンパイル(`compile_expressions` 設定)がマシンタイプを考慮するようになりました。これにより、そのようなクエリが大幅に高速化されます。[#76753](https://github.com/ClickHouse/ClickHouse/pull/76753)([ZhangLiStar](https://github.com/zhanglistar))。 -* `arraySort` を最適化しました。[#76850](https://github.com/ClickHouse/ClickHouse/pull/76850)([李扬](https://github.com/taiyang-li))。 -* マージなどでキャッシュが受動的に使用される場合は、`filesystem_cache_prefer_bigger_buffer_size` を無効化しました。[#77898](https://github.com/ClickHouse/ClickHouse/pull/77898)([Kseniia Sumarokova](https://github.com/kssenii))。 -* コードの一部に `preserve_most` 属性を適用し、わずかにより良いコード生成を可能にしました。[#67778](https://github.com/ClickHouse/ClickHouse/pull/67778)([Nikita Taranov](https://github.com/nickitat))。 -* ClickHouse サーバーのシャットダウンを高速化しました(2.5 秒の遅延を排除)。[#76550](https://github.com/ClickHouse/ClickHouse/pull/76550)([Azat Khuzhin](https://github.com/azat))。 -* ReadBufferFromS3 およびその他のリモート読み取りバッファで過剰なメモリアロケーションを回避し、メモリ消費を半分に削減しました。[#76692](https://github.com/ClickHouse/ClickHouse/pull/76692)([Sema Checherinda](https://github.com/CheSema))。 -* zstd を 1.5.5 から 1.5.7 に更新しました。これにより、いくつかの[パフォーマンス向上](https://github.com/facebook/zstd/releases/tag/v1.5.7)が見込めます。[#77137](https://github.com/ClickHouse/ClickHouse/pull/77137)([Pradeep Chhetri](https://github.com/chhetripradeep))。 -* Wide パーツにおける JSON カラムのプリフェッチ時のメモリ使用量を削減しました。これは、ClickHouse Cloud のように共有ストレージ上で ClickHouse を使用する場合に有効です。[#77640](https://github.com/ClickHouse/ClickHouse/pull/77640)([Pavel Kruglov](https://github.com/Avogar))。 - -#### 改善点 {#improvement} - -* `INTO OUTFILE` と併用される `TRUNCATE` でアトミックなリネームをサポートし、[#70323](https://github.com/ClickHouse/ClickHouse/issues/70323) を解決しました。[#77181](https://github.com/ClickHouse/ClickHouse/pull/77181)([Onkar Deshpande](https://github.com/onkar))。 -* 設定の float 値として `NaN` や `inf` を使用することは、もはやできません。もっとも、そもそも以前からそれには何の意味もありませんでしたが。 [#77546](https://github.com/ClickHouse/ClickHouse/pull/77546) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* analyzer が無効化されている場合、`compatibility` 設定に関係なく、デフォルトで parallel replicas を無効にします。この動作は、`parallel_replicas_only_with_analyzer` を明示的に `false` に設定することで変更できます。 [#77115](https://github.com/ClickHouse/ClickHouse/pull/77115) ([Igor Nikonov](https://github.com/devcrafter)). -* クライアントリクエストのヘッダーから外部 HTTP 認証サービスへ転送するヘッダーのリストを定義できる機能を追加しました。 [#77054](https://github.com/ClickHouse/ClickHouse/pull/77054) ([inv2004](https://github.com/inv2004)). -* タプル型カラム内のフィールドに対するカラム名の大文字小文字を区別しないマッチングを正しく扱うようにしました。 [https://github.com/apache/incubator-gluten/issues/8324](https://github.com/apache/incubator-gluten/issues/8324) をクローズしました。 [#73780](https://github.com/ClickHouse/ClickHouse/pull/73780)([李扬](https://github.com/taiyang-li))。 -* Gorilla コーデックのパラメータは、今後常に .sql ファイル内のテーブルメタデータに保存されるようになりました。これにより次の問題が解決されます: [#70072](https://github.com/ClickHouse/ClickHouse/issues/70072)。[#74814](https://github.com/ClickHouse/ClickHouse/pull/74814)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 -* 特定のデータレイク向けにパース処理を強化しました(Sequence ID のパース:マニフェストファイル内のシーケンス識別子をパースする機能を追加し、Avro メタデータのパース:将来の拡張が容易になるよう Avro メタデータパーサーを再設計しました)。 [#75010](https://github.com/ClickHouse/ClickHouse/pull/75010) ([Daniil Ivanik](https://github.com/divanik)). -* `system.opentelemetry_span_log` のデフォルト ORDER BY から trace_id を削除しました。 [#75907](https://github.com/ClickHouse/ClickHouse/pull/75907) ([Azat Khuzhin](https://github.com/azat)). -* 暗号化属性 `encrypted_by` は、任意の設定ファイル(config.xml、users.xml、ネストされた設定ファイル)に適用できるようになりました。以前は、トップレベルの config.xml ファイルに対してのみ有効でした。 [#75911](https://github.com/ClickHouse/ClickHouse/pull/75911) ([Mikhail Gorshkov](https://github.com/mgorshkov))。 -* `system.warnings` テーブルを改善し、追加・更新・削除が可能な動的な警告メッセージをいくつか追加しました。 [#76029](https://github.com/ClickHouse/ClickHouse/pull/76029) ([Bharat Nallan](https://github.com/bharatnc)). -* このPRにより、すべての `DROP` 操作を先に記述する必要があるため、クエリ `ALTER USER user1 ADD PROFILES a, DROP ALL PROFILES` を実行できなくなりました。 [#76242](https://github.com/ClickHouse/ClickHouse/pull/76242) ([pufit](https://github.com/pufit)). -* SYNC REPLICA に対するさまざまな改善(エラーメッセージの改善、テストの改善、サニティチェックの追加)。 [#76307](https://github.com/ClickHouse/ClickHouse/pull/76307) ([Azat Khuzhin](https://github.com/azat)). -* バックアップ中に「Access Denied」により S3 へのマルチパートコピーが失敗した場合に、正しいフォールバック処理を行うようにしました。異なる認証情報を持つバケット間でバックアップを行うと、マルチパートコピーで「Access Denied」エラーが発生することがあります。 [#76515](https://github.com/ClickHouse/ClickHouse/pull/76515) ([Antonio Andelic](https://github.com/antonio2368)). -* librdkafka(出来の悪い代物)をバージョン 2.8.0 にアップグレードし(出来の悪さは相変わらずですが)、Kafka テーブルのシャットダウン手順を改善して、テーブル削除およびサーバー再起動時の遅延を削減しました。`engine=Kafka` は、テーブルが削除されたときにコンシューマグループを明示的に離脱しなくなりました。代わりに、コンシューマは非アクティブ状態が `session_timeout_ms`(デフォルト: 45 秒)を超えるまでグループに残り、その後自動的に削除されます。[#76621](https://github.com/ClickHouse/ClickHouse/pull/76621)([filimonov](https://github.com/filimonov))。 -* S3 リクエスト設定のバリデーションを修正。[#76658](https://github.com/ClickHouse/ClickHouse/pull/76658) ([Vitaly Baranov](https://github.com/vitlibar)). -* `server_settings` や `settings` のようなシステムテーブルには、便利な `default` 値の列があります。同様の列を `merge_tree_settings` と `replicated_merge_tree_settings` に追加しました。 [#76942](https://github.com/ClickHouse/ClickHouse/pull/76942) ([Diego Nieto](https://github.com/lesandie)). -* `ProfileEvents::QueryPreempted` を追加しました。`CurrentMetrics::QueryPreempted` と同様のロジックです。 [#77015](https://github.com/ClickHouse/ClickHouse/pull/77015) ([VicoWu](https://github.com/VicoWu))。 -* 過去のバージョンでは、`Replicated` データベースがクエリ内で指定された認証情報をログに出力してしまう場合がありました。この動作は修正されました。これにより、関連 Issue: [#77123](https://github.com/ClickHouse/ClickHouse/issues/77123) がクローズされました。[#77133](https://github.com/ClickHouse/ClickHouse/pull/77133)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 -* `plain_rewritable` ディスクに対して ALTER TABLE DROP PARTITION を許可。 [#77138](https://github.com/ClickHouse/ClickHouse/pull/77138) ([Julia Kartseva](https://github.com/jkartseva)). -* バックアップ/リストア設定 `allow_s3_native_copy` は、現在次の 3 つの値をサポートします: - `False` - S3 ネイティブコピーは使用されません。 - `True` (従来のデフォルト) - ClickHouse はまず S3 ネイティブコピーを試み、失敗した場合は読み取り + 書き込み方式にフォールバックします。 - `'auto'` (新しいデフォルト) - ClickHouse はまずソースとデスティネーションのクレデンシャルを比較します。同一であれば ClickHouse は S3 ネイティブコピーを試み、その後、読み取り + 書き込み方式にフォールバックする場合があります。異なる場合、ClickHouse は最初から読み取り + 書き込み方式を使用します。 [#77401](https://github.com/ClickHouse/ClickHouse/pull/77401) ([Vitaly Baranov](https://github.com/vitlibar)). -* DeltaLake テーブルエンジン向けの delta kernel で、AWS セッショントークンおよび環境変数から取得する認証情報の利用をサポートしました。 [#77661](https://github.com/ClickHouse/ClickHouse/pull/77661) ([Kseniia Sumarokova](https://github.com/kssenii)). - -#### バグ修正(公式安定版リリースでユーザーに影響する誤動作) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* 非同期分散 INSERT の保留中バッチの処理中に(`No such file or directory` などが原因で)処理が停止してしまう問題を修正しました。 [#72939](https://github.com/ClickHouse/ClickHouse/pull/72939) ([Azat Khuzhin](https://github.com/azat)). -* インデックス解析時に行われる暗黙的な `Date` から `DateTime` への変換に対して飽和動作を強制することで、日時変換を改善しました。これにより、日時の範囲制限が原因で発生しうるインデックス解析の不正確さの問題が解消されます。この変更により [#73307](https://github.com/ClickHouse/ClickHouse/issues/73307) が修正されました。また、デフォルト値である `date_time_overflow_behavior = 'ignore'` 設定時の明示的な `toDateTime` 変換も修正しました。[#73326](https://github.com/ClickHouse/ClickHouse/pull/73326)([Amos Bird](https://github.com/amosbird))。 -* UUID とテーブル名の競合に起因するさまざまなバグを修正しました(たとえば、`RENAME` と `RESTART REPLICA` 間の競合を解消します。`SYSTEM RESTART REPLICA` と同時に `RENAME` が実行される場合、誤ったレプリカを再起動してしまったり、いずれかのテーブルが `Table X is being restarted` 状態のまま残ってしまう可能性がありました)。 [#76308](https://github.com/ClickHouse/ClickHouse/pull/76308) ([Azat Khuzhin](https://github.com/azat)). -* async insert を有効にし、`INSERT INTO ... FROM FILE ...` を異なるブロックサイズで実行したときのデータ損失を修正しました。最初のブロックサイズが `async_max_size` 未満で、2 番目のブロックサイズが `async_max_size` を超える場合、2 番目のブロックが挿入されず、これらのデータが `squashing` に残ったままになる問題がありました。 [#76343](https://github.com/ClickHouse/ClickHouse/pull/76343) ([Han Fei](https://github.com/hanfei1991)). -* `system.data_skipping_indices` のフィールド名 'marks' を 'marks_bytes' に変更しました。 [#76374](https://github.com/ClickHouse/ClickHouse/pull/76374) ([Robert Schulze](https://github.com/rschu1ze)). -* 動的なファイルシステムキャッシュのリサイズ時に、エビクション処理中に発生する予期しないエラーの扱いを修正しました。 [#76466](https://github.com/ClickHouse/ClickHouse/pull/76466) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 並列ハッシュにおける `used_flag` の初期化を修正しました。これによりサーバーがクラッシュする可能性がありました。 [#76580](https://github.com/ClickHouse/ClickHouse/pull/76580) ([Nikita Taranov](https://github.com/nickitat)). -* Projection 内で `defaultProfiles` 関数を呼び出す際に発生していた論理エラーを修正。 [#76627](https://github.com/ClickHouse/ClickHouse/pull/76627) ([pufit](https://github.com/pufit)). -* Web UI においてブラウザによる対話的な Basic 認証を要求しないようにしました。Closes [#76319](https://github.com/ClickHouse/ClickHouse/issues/76319)。[#76637](https://github.com/ClickHouse/ClickHouse/pull/76637) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 分散テーブルからブールリテラルを選択した際にスローされる `THERE_IS_NO_COLUMN` 例外を修正。 [#76656](https://github.com/ClickHouse/ClickHouse/pull/76656) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* テーブルディレクトリ内のサブパスは、より高度な方法で選択されるようになりました。 [#76681](https://github.com/ClickHouse/ClickHouse/pull/76681) ([Daniil Ivanik](https://github.com/divanik)). -* サブカラムを含む主キー (PK) を持つテーブルを変更した後に発生する `Not found column in block` エラーを修正しました。[https://github.com/ClickHouse/ClickHouse/pull/72644](https://github.com/ClickHouse/ClickHouse/pull/72644) 以降では、[https://github.com/ClickHouse/ClickHouse/pull/74403](https://github.com/ClickHouse/ClickHouse/pull/74403) が必要です。[#76686](https://github.com/ClickHouse/ClickHouse/pull/76686)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* NULL ショートサーキット用のパフォーマンステストを追加し、バグを修正。 [#76708](https://github.com/ClickHouse/ClickHouse/pull/76708) ([李扬](https://github.com/taiyang-li))。 -* 出力書き込みバッファをファイナライズする前にフラッシュするようにしました。`JSONEachRowWithProgressRowOutputFormat` など一部の出力フォーマットのファイナライズ中に発生していた `LOGICAL_ERROR` を修正しました。 [#76726](https://github.com/ClickHouse/ClickHouse/pull/76726) ([Antonio Andelic](https://github.com/antonio2368))。 -* MongoDB のバイナリ UUID への対応を追加しました([#74452](https://github.com/ClickHouse/ClickHouse/issues/74452))。- テーブル関数使用時の MongoDB への WHERE 句プッシュダウンを修正しました([#72210](https://github.com/ClickHouse/ClickHouse/issues/72210))。- MongoDB のバイナリ UUID は ClickHouse の UUID にのみ解釈されるように、MongoDB - ClickHouse の型マッピングを変更しました。これにより、将来的なあいまいさや予期しない挙動を防ぐことができます。- 後方互換性を保ちつつ OID のマッピングを修正しました。[#76762](https://github.com/ClickHouse/ClickHouse/pull/76762)([Kirill Nikiforov](https://github.com/allmazz))。 -* JSON サブカラムの並列プレフィックス デシリアライズ時の例外処理を修正。 [#76809](https://github.com/ClickHouse/ClickHouse/pull/76809) ([Pavel Kruglov](https://github.com/Avogar)). -* 負の整数に対する `lgamma` 関数の挙動を修正しました。 [#76840](https://github.com/ClickHouse/ClickHouse/pull/76840) ([Ilya Kataev](https://github.com/IlyaKataev)). -* 明示的に定義されたプライマリキーに対する逆キー解析を修正。[#76654](https://github.com/ClickHouse/ClickHouse/issues/76654) と同様。[#76846](https://github.com/ClickHouse/ClickHouse/pull/76846) ([Amos Bird](https://github.com/amosbird))。 -* JSON フォーマットにおける Bool 値の整形出力を修正。 [#76905](https://github.com/ClickHouse/ClickHouse/pull/76905) ([Pavel Kruglov](https://github.com/Avogar)). -* 非同期挿入中のエラー時に、不正な JSON 列に対するロールバック処理が原因でクラッシュが発生する可能性があった問題を修正しました。 [#76908](https://github.com/ClickHouse/ClickHouse/pull/76908) ([Pavel Kruglov](https://github.com/Avogar)). -* 以前は、`multiIf` が計画段階と本実行時で異なる型のカラムを返す場合がありました。これにより、C++ の観点では未定義動作となるコードが生成されていました。 [#76914](https://github.com/ClickHouse/ClickHouse/pull/76914) ([Nikita Taranov](https://github.com/nickitat))。 -* MergeTree における定数 Nullable キーのシリアライゼーションが誤っていた問題を修正しました。これにより [#76939](https://github.com/ClickHouse/ClickHouse/issues/76939) が解決されます。[#76985](https://github.com/ClickHouse/ClickHouse/pull/76985)([Amos Bird](https://github.com/amosbird))。 -* `BFloat16` 値のソートを修正しました。これにより [#75487](https://github.com/ClickHouse/ClickHouse/issues/75487) および [#75669](https://github.com/ClickHouse/ClickHouse/issues/75669) が解決されます。[#77000](https://github.com/ClickHouse/ClickHouse/pull/77000)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* パート整合性チェックにおいてエフェメラルなサブカラムをスキップするためのチェックを追加し、Variant サブカラムを含む JSON に関するバグを修正しました。 [#72187](https://github.com/ClickHouse/ClickHouse/issues/72187)。 [#77034](https://github.com/ClickHouse/ClickHouse/pull/77034) ([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 -* 型不一致がある場合に Values フォーマットのテンプレート解析でクラッシュする問題を修正。 [#77071](https://github.com/ClickHouse/ClickHouse/pull/77071) ([Pavel Kruglov](https://github.com/Avogar))。 -* 主キーにサブカラムを含む EmbeddedRocksDB テーブルを作成できないようにしました。以前はそのようなテーブルを作成できていましたが、`SELECT` クエリの実行が失敗していました。 [#77074](https://github.com/ClickHouse/ClickHouse/pull/77074) ([Pavel Kruglov](https://github.com/Avogar)). -* 分散クエリにおいて、述語をリモート側にプッシュダウンする際にリテラル型が正しく扱われないことが原因で発生していた不正な比較を修正しました。 [#77093](https://github.com/ClickHouse/ClickHouse/pull/77093) ([Duc Canh Le](https://github.com/canhld94)). -* Kafka テーブル作成時の例外により発生するクラッシュを修正。 [#77121](https://github.com/ClickHouse/ClickHouse/pull/77121) ([Pavel Kruglov](https://github.com/Avogar)). -* Kafka および RabbitMQ エンジンで JSON およびサブカラムのサポートを追加。 [#77122](https://github.com/ClickHouse/ClickHouse/pull/77122) ([Pavel Kruglov](https://github.com/Avogar)). -* macOS における例外スタックアンワインドを修正。 [#77126](https://github.com/ClickHouse/ClickHouse/pull/77126) ([Eduard Karacharov](https://github.com/korowa)). -* getSubcolumn 関数における 'null' サブカラムの読み取りを修正。 [#77163](https://github.com/ClickHouse/ClickHouse/pull/77163) ([Pavel Kruglov](https://github.com/Avogar))。 -* Array や未サポート関数を使用する Bloom filter インデックスを修正。 [#77271](https://github.com/ClickHouse/ClickHouse/pull/77271) ([Pavel Kruglov](https://github.com/Avogar)). -* テーブル数に対する制限のチェックは、初回の CREATE クエリ実行時にのみ行うようにしました。 [#77274](https://github.com/ClickHouse/ClickHouse/pull/77274) ([Nikolay Degterinsky](https://github.com/evillique)). -* バグではありません: `SELECT toBFloat16(-0.0) == toBFloat16(0.0)` は、以前は `false` を返していましたが、現在は正しく `true` を返します。これにより、`Float32` および `Float64` の挙動と一貫性が取れるようになりました。 [#77290](https://github.com/ClickHouse/ClickHouse/pull/77290) ([Shankar Iyer](https://github.com/shankar-iyer)). -* 初期化されていない `key_index` 変数を誤って参照してしまう可能性がある問題を修正しました。これはデバッグビルドではクラッシュの原因になり得ますが、リリースビルドでは、その後のコードが例外を送出する可能性が高いため、この未初期化参照自体が問題を引き起こすことはありません。### ユーザー向け変更に関するドキュメント項目です。[#77305](https://github.com/ClickHouse/ClickHouse/pull/77305) ([wxybear](https://github.com/wxybear)). -* ブール値を持つパーティションの名前を修正しました。この不具合は [https://github.com/ClickHouse/ClickHouse/pull/74533](https://github.com/ClickHouse/ClickHouse/pull/74533) で発生していました。[#77319](https://github.com/ClickHouse/ClickHouse/pull/77319)([Pavel Kruglov](https://github.com/Avogar))。 -* Nullable 要素を含む Tuple と String 間の比較処理を修正しました。例えば、この変更以前は、Tuple `(1, null)` と String `'(1,null)'` の比較はエラーになっていました。別の例として、Nullable 列である `a` を含む Tuple `(1, a)` と String `'(1, 2)'` の比較があります。この変更により、これらの問題が解消されました。 [#77323](https://github.com/ClickHouse/ClickHouse/pull/77323) ([Alexey Katsman](https://github.com/alexkats)). -* ObjectStorageQueueSource のクラッシュを修正しました。このクラッシュは [https://github.com/ClickHouse/ClickHouse/pull/76358](https://github.com/ClickHouse/ClickHouse/pull/76358) で導入されたものです。[#77325](https://github.com/ClickHouse/ClickHouse/pull/77325)([Pavel Kruglov](https://github.com/Avogar))。 -* `input` 使用時の `async_insert` を修正。 [#77340](https://github.com/ClickHouse/ClickHouse/pull/77340) ([Azat Khuzhin](https://github.com/azat)). -* 修正: ソート列がプランナーによって削除された場合に、`WITH FILL` が NOT_FOUND_COLUMN_IN_BLOCK で失敗することがある問題を修正しました。INTERPOLATE 式に対して計算される DAG が不整合になることが原因の、類似の問題も修正しました。 [#77343](https://github.com/ClickHouse/ClickHouse/pull/77343) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* 無効な AST ノードに対するエイリアス設定まわりの複数の LOGICAL_ERROR を修正しました。 [#77445](https://github.com/ClickHouse/ClickHouse/pull/77445) ([Raúl Marín](https://github.com/Algunenano)). -* ファイルシステムキャッシュの実装で、ファイルセグメント書き込み中のエラー処理を修正しました。 [#77471](https://github.com/ClickHouse/ClickHouse/pull/77471) ([Kseniia Sumarokova](https://github.com/kssenii)). -* DatabaseIceberg がカタログから提供される正しいメタデータファイルを使用するようにしました。[#75187](https://github.com/ClickHouse/ClickHouse/issues/75187) を修正。[#77486](https://github.com/ClickHouse/ClickHouse/pull/77486)([Kseniia Sumarokova](https://github.com/kssenii))。 -* クエリキャッシュは、UDF を非決定的であるものと仮定するようになりました。これに伴い、UDF を含むクエリの結果はキャッシュされなくなりました。以前は、結果が誤ってキャッシュされてしまう非決定的な UDF をユーザーが定義できていました(issue [#77553](https://github.com/ClickHouse/ClickHouse/issues/77553))。[#77633](https://github.com/ClickHouse/ClickHouse/pull/77633)([Jimmy Aguilar Mena](https://github.com/Ergus))。 -* `enable_filesystem_cache_log` 設定が有効な場合にしか機能していなかった system.filesystem_cache_log を修正。 [#77650](https://github.com/ClickHouse/ClickHouse/pull/77650) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Projection 内で `defaultRoles` 関数を呼び出した際の論理エラーを修正。[#76627](https://github.com/ClickHouse/ClickHouse/issues/76627) のフォローアップ。[#77667](https://github.com/ClickHouse/ClickHouse/pull/77667)([pufit](https://github.com/pufit))。 -* 関数 `arrayResize` の第 2 引数として型 `Nullable` を指定することは現在禁止されています。以前は、第 2 引数が `Nullable` の場合、エラーの発生から誤った結果の返却まで、さまざまな問題が起こり得ました(issue [#48398](https://github.com/ClickHouse/ClickHouse/issues/48398))。[#77724](https://github.com/ClickHouse/ClickHouse/pull/77724)([Manish Gill](https://github.com/mgill25))。 -* 操作が書き込み用のブロックを一切生成しない場合でも、マージおよびミューテーションがキャンセルされたかどうかを定期的に確認するようになりました。 [#77766](https://github.com/ClickHouse/ClickHouse/pull/77766) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). - -#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement} - -* `clickhouse-odbc-bridge` と `clickhouse-library-bridge` は、別のリポジトリである https://github.com/ClickHouse/odbc-bridge/ に移動されました。[#76225](https://github.com/ClickHouse/ClickHouse/pull/76225) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* Rust のクロスコンパイルを修正し、Rust を完全に無効化できるようにしました。[#76921](https://github.com/ClickHouse/ClickHouse/pull/76921) ([Raúl Marín](https://github.com/Algunenano))。 - -### ClickHouse リリース 25.2, 2025-02-27 {#252} - -#### 後方互換性のない変更 {#backward-incompatible-change} - -* `async_load_databases` を完全に有効化し、デフォルト設定としました(`config.xml` をアップグレードしていないインストール環境でも有効になります)。[#74772](https://github.com/ClickHouse/ClickHouse/pull/74772)([Azat Khuzhin](https://github.com/azat))。 -* `JSONCompactEachRowWithProgress` および `JSONCompactStringsEachRowWithProgress` フォーマットを追加しました。[#69989](https://github.com/ClickHouse/ClickHouse/issues/69989) の継続対応です。`JSONCompactWithNames` と `JSONCompactWithNamesAndTypes` はもはや "totals" を出力しません — 実装上の誤りだったと考えられます。[#75037](https://github.com/ClickHouse/ClickHouse/pull/75037)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* ALTER コマンドリストの曖昧さを解消するため、`format_alter_operations_with_parentheses` のデフォルト値を true に変更しました(https://github.com/ClickHouse/ClickHouse/pull/59532 を参照)。これにより、バージョン 24.3 以前のクラスタとのレプリケーションが動作しなくなります。古いリリースを使用しているクラスタをアップグレードする場合は、サーバー設定でこの設定を無効にするか、先に 24.3 にアップグレードしてください。[#75302](https://github.com/ClickHouse/ClickHouse/pull/75302)([Raúl Marín](https://github.com/Algunenano))。 -* 正規表現を使用してログメッセージをフィルタリングする機能を削除しました。この実装にデータレースが存在したため、削除しました。[#75577](https://github.com/ClickHouse/ClickHouse/pull/75577)([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 -* 設定 `min_chunk_bytes_for_parallel_parsing` には、もはやゼロを指定できなくなりました。これにより次の問題が修正されます: [#71110](https://github.com/ClickHouse/ClickHouse/issues/71110)。[#75239](https://github.com/ClickHouse/ClickHouse/pull/75239)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 -* キャッシュ設定内の設定項目を検証するようにしました。存在しない設定はこれまで無視されていましたが、今後はエラーを返すようになり、それらは削除する必要があります。[#75452](https://github.com/ClickHouse/ClickHouse/pull/75452)([Kseniia Sumarokova](https://github.com/kssenii))。 - -#### 新機能 {#new-feature} - -* 型 `Nullable(JSON)` をサポートしました。[#73556](https://github.com/ClickHouse/ClickHouse/pull/73556) ([Pavel Kruglov](https://github.com/Avogar))。 -* DEFAULT および MATERIALIZED 式でサブカラムをサポートしました。[#74403](https://github.com/ClickHouse/ClickHouse/pull/74403) ([Pavel Kruglov](https://github.com/Avogar))。 -* 設定 `output_format_parquet_write_bloom_filter`(デフォルトで有効)を使用した Parquet ブルームフィルタの書き込みをサポートしました。[#71681](https://github.com/ClickHouse/ClickHouse/pull/71681) ([Michael Kolupaev](https://github.com/al13n321))。 -* Web UI にインタラクティブなデータベースナビゲーションが追加されました。[#75777](https://github.com/ClickHouse/ClickHouse/pull/75777) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* ストレージポリシー内で、読み取り専用ディスクと読み書き可能ディスクの組み合わせ(複数ボリュームまたは複数ディスク)を許可しました。これにより、ボリューム全体からデータを読み取ることが可能になり、一方で挿入は書き込み可能ディスクが優先されます(いわゆる Copy-on-Write ストレージポリシー)。[#75862](https://github.com/ClickHouse/ClickHouse/pull/75862) ([Azat Khuzhin](https://github.com/azat))。 -* 新しいデータベースエンジン `DatabaseBackup` を追加しました。これにより、バックアップからテーブル/データベースを即座に ATTACH できます。[#75725](https://github.com/ClickHouse/ClickHouse/pull/75725) ([Maksim Kita](https://github.com/kitaisreal))。 -* Postgres ワイヤープロトコルでのプリペアドステートメントをサポートしました。[#75035](https://github.com/ClickHouse/ClickHouse/pull/75035) ([scanhex12](https://github.com/scanhex12))。 -* データベースレイヤーなしでテーブルを ATTACH できるようにしました。これは、Web、S3 などの外部仮想ファイルシステム上にある MergeTree テーブルに対して有用です。[#75788](https://github.com/ClickHouse/ClickHouse/pull/75788) ([Azat Khuzhin](https://github.com/azat))。 -* 新しい文字列比較関数 `compareSubstrings` を追加しました。2 つの文字列の一部を比較します。例: `SELECT compareSubstrings('Saxony', 'Anglo-Saxon', 0, 6, 5) AS result` は「1 つ目の文字列のオフセット 0、2 つ目の文字列のオフセット 5 から、それぞれ 6 バイト分の 'Saxon' と 'Anglo-Saxon' を辞書順で比較する」ことを意味します。[#74070](https://github.com/ClickHouse/ClickHouse/pull/74070) ([lgbo](https://github.com/lgbo-ustc))。 -* 新しい関数 `initialQueryStartTime` を追加しました。現在のクエリの開始時刻を返します。この値は分散クエリにおいて、すべてのシャードで同一です。[#75087](https://github.com/ClickHouse/ClickHouse/pull/75087) ([Roman Lomonosov](https://github.com/lomik))。 -* MySQL における Named Collection を用いた SSL 認証をサポートしました。[#59111](https://github.com/ClickHouse/ClickHouse/issues/59111) を解決します。[#59452](https://github.com/ClickHouse/ClickHouse/pull/59452) ([Nikolay Degterinsky](https://github.com/evillique))。 - -#### 実験的機能 {#experimental-features} - -* 新しい設定 `enable_adaptive_memory_spill_scheduler` を追加しました。この設定により、同一クエリ内の複数の Grace JOIN が合計のメモリフットプリントを監視し、MEMORY_LIMIT_EXCEEDED を防ぐために外部ストレージへのスピルを適応的にトリガーできるようになります。 [#72728](https://github.com/ClickHouse/ClickHouse/pull/72728) ([lgbo](https://github.com/lgbo-ustc)). -* 新しい実験的な `Kafka` テーブルエンジンが Keeper の機能フラグを完全に順守するようにしました。 [#76004](https://github.com/ClickHouse/ClickHouse/pull/76004) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* ライセンス上の問題により v24.10 で削除されていた (Intel) QPL コーデックを復元しました。 [#76021](https://github.com/ClickHouse/ClickHouse/pull/76021) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* HDFS との連携向けとして、`dfs.client.use.datanode.hostname` 設定オプションのサポートを追加しました。 [#74635](https://github.com/ClickHouse/ClickHouse/pull/74635) ([Mikhail Tiukavkin](https://github.com/freshertm)). - -#### パフォーマンスの改善 {#performance-improvement} - -* Wide パーツにおける JSON カラム全体の S3 からの読み取りパフォーマンスを改善しました。これは、サブカラムプレフィックスのデシリアライズに対するプリフェッチの追加、デシリアライズ済みプレフィックスのキャッシュ、およびサブカラムプレフィックスの並列デシリアライズにより実現しています。この変更により、`SELECT data FROM table` のようなクエリで S3 からの JSON カラムの読み取りが 4 倍、`SELECT data FROM table LIMIT 10` のようなクエリでは約 10 倍高速になります。[#74827](https://github.com/ClickHouse/ClickHouse/pull/74827)([Pavel Kruglov](https://github.com/Avogar))。 -* `max_rows_in_join = max_bytes_in_join = 0` の場合に `parallel_hash` 内で発生していた不要な競合を修正しました。[#75155](https://github.com/ClickHouse/ClickHouse/pull/75155)([Nikita Taranov](https://github.com/nickitat))。 -* オプティマイザにより結合の左右が入れ替えられた場合に、`ConcurrentHashJoin` で二重に事前アロケーションされていた問題を修正しました。[#75149](https://github.com/ClickHouse/ClickHouse/pull/75149)([Nikita Taranov](https://github.com/nickitat))。 -* いくつかの JOIN シナリオでの軽微な改善として、出力行数を事前計算し、その分のメモリを事前確保するようにしました。[#75376](https://github.com/ClickHouse/ClickHouse/pull/75376)([Alexander Gololobov](https://github.com/davenger))。 -* `WHERE a < b AND b < c AND c < 5` のようなクエリに対して、新たな比較条件(`a < 5 AND b < 5`)を推論してフィルタリング性能を向上できるようにしました。[#73164](https://github.com/ClickHouse/ClickHouse/pull/73164)([Shichao Jin](https://github.com/jsc0218))。 -* Keeper の改善: インメモリストレージにコミットする際のダイジェスト計算を無効化してパフォーマンスを向上しました。この動作は `keeper_server.digest_enabled_on_commit` コンフィグで有効化できます。リクエストの前処理時には引き続きダイジェストが計算されます。[#75490](https://github.com/ClickHouse/ClickHouse/pull/75490)([Antonio Andelic](https://github.com/antonio2368))。 -* 可能な場合に JOIN の ON 句からフィルタ式をプッシュダウンするようにしました。[#75536](https://github.com/ClickHouse/ClickHouse/pull/75536)([Vladimir Cherkasov](https://github.com/vdimir))。 -* MergeTree において、カラムおよびインデックスのサイズを遅延評価するようにしました。[#75938](https://github.com/ClickHouse/ClickHouse/pull/75938)([Pavel Kruglov](https://github.com/Avogar))。 -* `MATERIALIZE TTL` において `ttl_only_drop_parts` 設定を再び尊重するようにしました。TTL を再計算してパーツを空のパーツに置き換えて削除するために、必要なカラムだけを読み取ります。[#72751](https://github.com/ClickHouse/ClickHouse/pull/72751)([Andrey Zvonov](https://github.com/zvonand))。 -* plain_rewritable メタデータファイルの書き込みバッファサイズを削減しました。[#75758](https://github.com/ClickHouse/ClickHouse/pull/75758)([Julia Kartseva](https://github.com/jkartseva))。 -* 一部のウィンドウ関数でのメモリ使用量を削減しました。[#65647](https://github.com/ClickHouse/ClickHouse/pull/65647)([lgbo](https://github.com/lgbo-ustc))。 -* Parquet の Bloom filter と min/max インデックスを同時に評価するようにしました。これは、data = [1, 2, 4, 5] のときの `x = 3 or x > 5` のようなケースを正しくサポートするために必要です。[#71383](https://github.com/ClickHouse/ClickHouse/pull/71383)([Arthur Passos](https://github.com/arthurpassos))。 -* `Executable` ストレージに渡されるクエリは、もはや単一スレッド実行に制限されません。[#70084](https://github.com/ClickHouse/ClickHouse/pull/70084)([yawnt](https://github.com/yawnt))。 -* ALTER TABLE FETCH PARTITION でパーツを並列にフェッチするようにしました(スレッドプールサイズは `max_fetch_partition_thread_pool_size` で制御されます)。[#74978](https://github.com/ClickHouse/ClickHouse/pull/74978)([Azat Khuzhin](https://github.com/azat))。 -* `indexHint` 関数を用いた述語を `PREWHERE` へ移動できるようにしました。[#74987](https://github.com/ClickHouse/ClickHouse/pull/74987)([Anton Popov](https://github.com/CurtizJ))。 - -#### 改善点 {#improvement} - -* `LowCardinality` 列のメモリ上でのサイズ計算を修正しました。 [#74688](https://github.com/ClickHouse/ClickHouse/pull/74688) ([Nikita Taranov](https://github.com/nickitat)). -* `processors_profile_log` テーブルに、TTL を 30 日とするデフォルト設定が追加されました。[#66139](https://github.com/ClickHouse/ClickHouse/pull/66139) ([Ilya Yatsishin](https://github.com/qoega))。 -* クラスタ構成でシャードに名前を付けられるようにしました。 [#72276](https://github.com/ClickHouse/ClickHouse/pull/72276) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). -* Prometheus の remote write 応答の成功ステータスコードを 200/OK から 204/NoContent に変更。 [#74170](https://github.com/ClickHouse/ClickHouse/pull/74170) ([Michael Dempsey](https://github.com/bluestealth)). -* サーバーを再起動することなく、その場で `max_remote_read_network_bandwidth_for_serve` と `max_remote_write_network_bandwidth_for_server` を再読み込みできるようにしました。 [#74206](https://github.com/ClickHouse/ClickHouse/pull/74206) ([Kai Zhu](https://github.com/nauu)). -* バックアップの作成時にチェックサムを計算する際、blob パスを使用できるようにしました。 [#74729](https://github.com/ClickHouse/ClickHouse/pull/74729) ([Vitaly Baranov](https://github.com/vitlibar)). -* `system.query_cache` にクエリ ID 列を追加しました([#68205](https://github.com/ClickHouse/ClickHouse/issues/68205) を解決)。[#74982](https://github.com/ClickHouse/ClickHouse/pull/74982)([NamHoaiNguyen](https://github.com/NamHoaiNguyen))。 -* `ALTER TABLE ... FREEZE ...` クエリを `KILL QUERY` でキャンセルしたり、タイムアウト(`max_execution_time`)に達した際に自動的にキャンセルしたりできるようになりました。[#75016](https://github.com/ClickHouse/ClickHouse/pull/75016) ([Kirill](https://github.com/kirillgarbar)). -* `groupUniqArrayArrayMap` の `SimpleAggregateFunction` としてのサポートを追加しました。[#75034](https://github.com/ClickHouse/ClickHouse/pull/75034) ([Miel Donkers](https://github.com/mdonkers))。 -* データベースエンジン `Iceberg` でカタログ認証情報の設定を非表示にしました。Closes [#74559](https://github.com/ClickHouse/ClickHouse/issues/74559). [#75080](https://github.com/ClickHouse/ClickHouse/pull/75080) ([Kseniia Sumarokova](https://github.com/kssenii)). -* `intExp2` / `intExp10`: 未定義動作を次のように定めました:引数が小さすぎる場合は 0 を返し、大きすぎる場合は `18446744073709551615` を返し、`NaN` の場合は例外をスローします。 [#75312](https://github.com/ClickHouse/ClickHouse/pull/75312) ([Vitaly Baranov](https://github.com/vitlibar)). -* `DatabaseIceberg` のカタログ設定から `s3.endpoint` をネイティブにサポートしました。[#74558](https://github.com/ClickHouse/ClickHouse/issues/74558) をクローズしました。[#75375](https://github.com/ClickHouse/ClickHouse/pull/75375)([Kseniia Sumarokova](https://github.com/kssenii))。 -* ユーザーが `SYSTEM DROP REPLICA` を実行する際に十分な権限を持っていない場合に、エラーを出さずに失敗することがないようにしました。 [#75377](https://github.com/ClickHouse/ClickHouse/pull/75377) ([Bharat Nallan](https://github.com/bharatnc)). -* いずれかの system ログがフラッシュに失敗した回数を記録する ProfileEvent を追加しました。 [#75466](https://github.com/ClickHouse/ClickHouse/pull/75466) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 復号および解凍のためのチェックと追加ログ出力を追加。 [#75471](https://github.com/ClickHouse/ClickHouse/pull/75471) ([Vitaly Baranov](https://github.com/vitlibar)). -* `parseTimeDelta` 関数にマイクロ記号 (U+00B5) のサポートを追加しました。これにより、マイクロ記号 (U+00B5) とギリシャ文字のミュー (U+03BC) の両方がマイクロ秒を表す有効な表記として認識されるようになり、ClickHouse の挙動が Go の実装([time.go を参照](https://github.com/golang/go/blob/ad7b46ee4ac1cee5095d64b01e8cf7fcda8bee5e/src/time/time.go#L983C19-L983C20) および [time/format.go](https://github.com/golang/go/blob/ad7b46ee4ac1cee5095d64b01e8cf7fcda8bee5e/src/time/format.go#L1608-L1609))と一致するようになりました。 [#75472](https://github.com/ClickHouse/ClickHouse/pull/75472) ([Vitaly Orlov](https://github.com/orloffv))。 -* サーバー設定(`send_settings_to_client`)を、クライアント側コード(例えば、INSERT データのパースやクエリ出力のフォーマット)がサーバーの `users.xml` およびユーザープロファイルに定義された設定を使用するかどうかを制御するクライアント設定(`apply_settings_from_server`)に置き換えました。これが無効な場合は、クライアントのコマンドライン、セッション、およびクエリからの設定のみが使用されます。これはネイティブクライアントにのみ適用される点(HTTP などには適用されない)と、クエリ処理の大部分(サーバー側で行われる)には適用されない点に注意してください。 [#75478](https://github.com/ClickHouse/ClickHouse/pull/75478) ([Michael Kolupaev](https://github.com/al13n321)). -* 構文エラー時のエラーメッセージを改善しました。以前は、クエリが長すぎて、長さが制限を超えるトークンが非常に大きな文字列リテラルだった場合、その原因を説明するメッセージが、この非常に長いトークンの2つの例のあいだに埋もれてしまっていました。エラーメッセージ内で UTF-8 文字を含むクエリが不正に切り詰められていた問題を修正しました。クエリの断片に対する過剰なクオートを修正しました。これにより [#75473](https://github.com/ClickHouse/ClickHouse/issues/75473) がクローズされました。[#75561](https://github.com/ClickHouse/ClickHouse/pull/75561)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* ストレージ `S3(Azure)Queue` にプロファイルイベントを追加しました。 [#75618](https://github.com/ClickHouse/ClickHouse/pull/75618) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 互換性維持のためにサーバーからクライアントへの設定送信(`send_settings_to_client=false`)を無効化しました(この機能は、使い勝手を向上させるため、後にクライアント設定として再実装される予定です)。 [#75648](https://github.com/ClickHouse/ClickHouse/pull/75648) ([Michael Kolupaev](https://github.com/al13n321))。 -* バックグラウンドスレッドで定期的に読み取られる複数の情報ソースの情報を用いて内部メモリトラッカーを補正できるようにする設定 `memory_worker_correct_memory_tracker` を追加しました。 [#75714](https://github.com/ClickHouse/ClickHouse/pull/75714) ([Antonio Andelic](https://github.com/antonio2368)). -* `system.processes` に `normalized_query_hash` カラムを追加しました。補足: `normalizedQueryHash` 関数を使えばオンザフライで簡単に計算できますが、後続の変更に備えるための準備として必要になります。 [#75756](https://github.com/ClickHouse/ClickHouse/pull/75756) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* `system.tables` をクエリしても、既に存在しないデータベース上に作成された `Merge` テーブルがあっても例外は発生しません。複雑な処理を行うことを許可していないため、`Hive` テーブルからは `getTotalRows` メソッドを削除しました。 [#75772](https://github.com/ClickHouse/ClickHouse/pull/75772) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* バックアップの start_time および end_time をマイクロ秒精度で保存するようにしました。 [#75929](https://github.com/ClickHouse/ClickHouse/pull/75929) ([Aleksandr Musorin](https://github.com/AVMusorin)). -* RSS による補正が行われていない内部のグローバルメモリトラッカーの値を示す `MemoryTrackingUncorrected` メトリクスを追加しました。 [#75935](https://github.com/ClickHouse/ClickHouse/pull/75935) ([Antonio Andelic](https://github.com/antonio2368)). -* `PostgreSQL` や `MySQL` のテーブル関数で、`localhost:1234/handle` のようなエンドポイントを解釈できるようにしました。これにより、[https://github.com/ClickHouse/ClickHouse/pull/52503](https://github.com/ClickHouse/ClickHouse/pull/52503) で発生したリグレッションが修正されます。[#75944](https://github.com/ClickHouse/ClickHouse/pull/75944)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 -* サーバー設定 `throw_on_unknown_workload` を追加しました。この設定により、`workload` 設定に未知の値が指定されたクエリに対する動作を選択できます。無制限のアクセスを許可する(デフォルト)か、`RESOURCE_ACCESS_DENIED` エラーをスローするかを選べます。すべてのクエリでワークロードスケジューリングの使用を強制したい場合に有用です。 [#75999](https://github.com/ClickHouse/ClickHouse/pull/75999) ([Sergei Trifonov](https://github.com/serxa))。 -* 不要な場合は `ARRAY JOIN` でサブカラムを `getSubcolumn` に書き換えないようにしました。 [#76018](https://github.com/ClickHouse/ClickHouse/pull/76018) ([Pavel Kruglov](https://github.com/Avogar)). -* テーブル読み込み時に発生したコーディネーションエラーをリトライするようにしました。 [#76020](https://github.com/ClickHouse/ClickHouse/pull/76020) ([Alexander Tokmakov](https://github.com/tavplubix)). -* `SYSTEM FLUSH LOGS` で個別のログをフラッシュできるようにしました。 [#76132](https://github.com/ClickHouse/ClickHouse/pull/76132) ([Raúl Marín](https://github.com/Algunenano)). -* `/binary` サーバーのページを改善しました。Morton 曲線の代わりに Hilbert 曲線を使用します。正方形内に 512 MB 分のアドレスを表示し、正方形をより効率よく埋めるようにしました(以前のバージョンでは、アドレスは正方形の半分しか埋めていませんでした)。関数名ではなくライブラリ名を基準に、アドレスに色付けするようにしました。表示領域の外側まで、少し多めにスクロールできるようにしました。[#76192](https://github.com/ClickHouse/ClickHouse/pull/76192)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* TOO_MANY_SIMULTANEOUS_QUERIES エラーが発生した場合に ON CLUSTER クエリをリトライするようにしました。 [#76352](https://github.com/ClickHouse/ClickHouse/pull/76352) ([Patrick Galbraith](https://github.com/CaptTofu)). -* サーバーのCPU不足度合いを算出する非同期メトリクス `CPUOverload` を追加しました。 [#76404](https://github.com/ClickHouse/ClickHouse/pull/76404) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* `output_format_pretty_max_rows` のデフォルト値を 10000 から 1000 に変更しました。使い勝手の観点から、この方がより良いと考えています。 [#76407](https://github.com/ClickHouse/ClickHouse/pull/76407) ([Alexey Milovidov](https://github.com/alexey-milovidov)). - -#### バグ修正(公式安定版リリースでユーザーに影響する誤動作) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* クエリの解釈中に例外が発生した場合、それらがクエリで指定されたカスタムフォーマットで出力されるようにしました。以前のバージョンでは、クエリで指定されたフォーマットではなくデフォルトフォーマットで例外が出力されていました。これにより [#55422](https://github.com/ClickHouse/ClickHouse/issues/55422) が解決されました。 [#74994](https://github.com/ClickHouse/ClickHouse/pull/74994) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* SQLite の型マッピングを修正し、整数型を `int64` に、浮動小数点型を `float64` にマッピング。 [#73853](https://github.com/ClickHouse/ClickHouse/pull/73853) ([Joanna Hulboj](https://github.com/jh0x))。 -* 親スコープからの識別子解決を修正。`WITH` 句で式へのエイリアスの使用を許可。[#58994](https://github.com/ClickHouse/ClickHouse/issues/58994) を修正。[#62946](https://github.com/ClickHouse/ClickHouse/issues/62946) を修正。[#63239](https://github.com/ClickHouse/ClickHouse/issues/63239) を修正。[#65233](https://github.com/ClickHouse/ClickHouse/issues/65233) を修正。[#71659](https://github.com/ClickHouse/ClickHouse/issues/71659) を修正。[#71828](https://github.com/ClickHouse/ClickHouse/issues/71828) を修正。[#68749](https://github.com/ClickHouse/ClickHouse/issues/68749) を修正。[#66143](https://github.com/ClickHouse/ClickHouse/pull/66143)([Dmitry Novik](https://github.com/novikd))。 -* `negate` 関数の単調性を修正しました。以前のバージョンでは、`x` がプライマリキーである場合、クエリ `select * from a where -x = -42;` が誤った結果を返してしまう場合がありました。 [#71440](https://github.com/ClickHouse/ClickHouse/pull/71440) ([Michael Kolupaev](https://github.com/al13n321)). -* arrayIntersect における空タプルの扱いを修正しました。これにより [#72578](https://github.com/ClickHouse/ClickHouse/issues/72578) が解決されました。[#72581](https://github.com/ClickHouse/ClickHouse/pull/72581)([Amos Bird](https://github.com/amosbird))。 -* 誤ったプレフィックスが付いた JSON サブオブジェクトのサブカラムの読み取りを修正。 [#73182](https://github.com/ClickHouse/ClickHouse/pull/73182) ([Pavel Kruglov](https://github.com/Avogar)). -* クライアントとサーバー間の通信で Native フォーマットの設定が正しく伝播されるようにしました。 [#73924](https://github.com/ClickHouse/ClickHouse/pull/73924) ([Pavel Kruglov](https://github.com/Avogar)). -* 一部のストレージでサポートされていない型をチェックするようにしました。 [#74218](https://github.com/ClickHouse/ClickHouse/pull/74218) ([Pavel Kruglov](https://github.com/Avogar)). -* macOS 上で PostgreSQL インターフェイス経由の `INSERT INTO SELECT` クエリ実行時に発生していたクラッシュを修正しました(issue [#72938](https://github.com/ClickHouse/ClickHouse/issues/72938))。 [#74231](https://github.com/ClickHouse/ClickHouse/pull/74231)([Artem Yurov](https://github.com/ArtemYurov))。 -* レプリケーテッドデータベースにおける未初期化の `max_log_ptr` を修正しました。 [#74336](https://github.com/ClickHouse/ClickHouse/pull/74336) ([Konstantin Morozov](https://github.com/k-morozov)). -* interval の挿入時に発生していたクラッシュを修正しました(issue [#74299](https://github.com/ClickHouse/ClickHouse/issues/74299))。[#74478](https://github.com/ClickHouse/ClickHouse/pull/74478)([NamHoaiNguyen](https://github.com/NamHoaiNguyen))。 -* 定数 JSON リテラルのフォーマットを修正。以前は、クエリを別のサーバーに送信する際に構文エラーを引き起こす可能性がありました。 [#74533](https://github.com/ClickHouse/ClickHouse/pull/74533) ([Pavel Kruglov](https://github.com/Avogar))。 -* 暗黙的プロジェクションが有効な状態で定数のパーティション式を使用した場合に、`CREATE` クエリが正しく生成されない問題を修正しました。これにより [#74596](https://github.com/ClickHouse/ClickHouse/issues/74596) が解決されます。 [#74634](https://github.com/ClickHouse/ClickHouse/pull/74634) ([Amos Bird](https://github.com/amosbird)). -* INSERT が例外で終了した後に接続が不正な状態のまま残らないようにしました。 [#74740](https://github.com/ClickHouse/ClickHouse/pull/74740) ([Azat Khuzhin](https://github.com/azat)). -* 中間状態のまま残っていた接続は再利用しないようにしました。 [#74749](https://github.com/ClickHouse/ClickHouse/pull/74749) ([Azat Khuzhin](https://github.com/azat)). -* JSON 型宣言をパースする際、型名が大文字でないとクラッシュする問題を修正。 [#74784](https://github.com/ClickHouse/ClickHouse/pull/74784) ([Pavel Kruglov](https://github.com/Avogar)). -* Keeper: 接続が確立される前に接続が切断されていた場合に発生する logical_error を修正。 [#74844](https://github.com/ClickHouse/ClickHouse/pull/74844) ([Michael Kolupaev](https://github.com/al13n321))。 -* `AzureBlobStorage` を使用しているテーブルが存在する場合にサーバーが起動できなかった問題を修正しました。テーブルは Azure へのリクエストを送信することなく読み込まれるようになりました。 [#74880](https://github.com/ClickHouse/ClickHouse/pull/74880) ([Alexey Katsman](https://github.com/alexkats)). -* BACKUP および RESTORE 操作において、`query_log` 内の `used_privileges` フィールドと `missing_privileges` フィールドが欠落していた問題を修正。 [#74887](https://github.com/ClickHouse/ClickHouse/pull/74887) ([Alexey Katsman](https://github.com/alexkats)). -* HDFS の SELECT リクエスト中に SASL エラーが発生した場合に Kerberos チケットを更新するようにしました。 [#74930](https://github.com/ClickHouse/ClickHouse/pull/74930) ([inv2004](https://github.com/inv2004)). -* startup_scripts 内の Replicated データベースへのクエリを修正。 [#74942](https://github.com/ClickHouse/ClickHouse/pull/74942) ([Azat Khuzhin](https://github.com/azat)). -* null-safe な比較が使用されている場合に、JOIN ON 句で型エイリアスが付けられた式に関する問題を修正しました。 [#74970](https://github.com/ClickHouse/ClickHouse/pull/74970) ([Vladimir Cherkasov](https://github.com/vdimir)). -* 削除処理が失敗した場合、part の状態を「削除中」から「古い」に戻すようにしました。 [#74985](https://github.com/ClickHouse/ClickHouse/pull/74985) ([Sema Checherinda](https://github.com/CheSema)). -* 以前のバージョンでは、スカラーサブクエリが存在する場合、データフォーマットの初期化中に(サブクエリの処理から蓄積された)進捗情報の書き込みを開始しており、これは HTTP ヘッダーが書き出される前に行われていました。この結果、X-ClickHouse-QueryId や X-ClickHouse-Format などの HTTP ヘッダーおよび Content-Type が失われていました。 [#74991](https://github.com/ClickHouse/ClickHouse/pull/74991) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* `database_replicated_allow_replicated_engine_arguments=0` 設定時の `CREATE TABLE AS...` クエリを修正。 [#75000](https://github.com/ClickHouse/ClickHouse/pull/75000) ([Bharat Nallan](https://github.com/bharatnc)). -* INSERT 実行時に例外が発生した後、クライアントの接続が不正な状態のまま残ってしまう問題を修正。 [#75030](https://github.com/ClickHouse/ClickHouse/pull/75030) ([Azat Khuzhin](https://github.com/azat)). -* PSQL レプリケーションで捕捉されない例外が原因で発生していたクラッシュを修正。 [#75062](https://github.com/ClickHouse/ClickHouse/pull/75062) ([Azat Khuzhin](https://github.com/azat)). -* SASL が任意の RPC 呼び出しを失敗させる可能性があり、この修正により、`krb5` チケットの有効期限が切れている場合にその呼び出しを再試行できるようになりました。 [#75063](https://github.com/ClickHouse/ClickHouse/pull/75063) ([inv2004](https://github.com/inv2004)). -* `optimize_function_to_subcolumns` 設定が有効な場合の `Array`、`Map`、および `Nullable(..)` カラムに対するインデックス(プライマリおよびセカンダリ)の利用方法を修正しました。以前は、これらのカラムに対するインデックスが無視されてしまうことがありました。 [#75081](https://github.com/ClickHouse/ClickHouse/pull/75081) ([Anton Popov](https://github.com/CurtizJ)). -* 内部テーブルを持つマテリアライズドビューを作成する際には、そのようにフラット化されたカラムを使用できなくなるため、`flatten_nested` を無効にしてください。 [#75085](https://github.com/ClickHouse/ClickHouse/pull/75085) ([Christoph Wurm](https://github.com/cwurm)). -* forwarded_for フィールドで一部の IPv6 アドレス(::ffff:1.1.1.1 など)が誤って解釈されてしまい、その結果、例外とともにクライアントが切断されていた問題を修正。 [#75133](https://github.com/ClickHouse/ClickHouse/pull/75133) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* LowCardinality の Nullable データ型に対する null セーフな JOIN の処理を修正しました。以前は、`IS NOT DISTINCT FROM`、`<=>`、`a IS NULL AND b IS NULL OR a == b` のような null セーフな比較を伴う JOIN の ON 句が、LowCardinality 列に対して正しく動作していませんでした。 [#75143](https://github.com/ClickHouse/ClickHouse/pull/75143) ([Vladimir Cherkasov](https://github.com/vdimir))。 -* NumRowsCache の total_number_of_rows をカウントするときに key_condition を指定していないことを検証するようにしました。 [#75164](https://github.com/ClickHouse/ClickHouse/pull/75164) ([Daniil Ivanik](https://github.com/divanik)). -* 未使用の補間を含むクエリを新しいアナライザーで修正できるようにしました。 [#75173](https://github.com/ClickHouse/ClickHouse/pull/75173) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 -* CTE と INSERT を併用した際に発生するクラッシュバグを修正。 [#75188](https://github.com/ClickHouse/ClickHouse/pull/75188) ([Shichao Jin](https://github.com/jsc0218)). -* Keeper の修正: ログをロールバックする際に、破損している changelog に書き込まないようにしました。 [#75197](https://github.com/ClickHouse/ClickHouse/pull/75197) ([Antonio Andelic](https://github.com/antonio2368)). -* 適切な箇所で `BFloat16` を上位型として使用するようにしました。これにより次の Issue がクローズされます: [#74404](https://github.com/ClickHouse/ClickHouse/issues/74404)。[#75236](https://github.com/ClickHouse/ClickHouse/pull/75236)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 -* `any_join_distinct_right_table_keys` と JOIN の ON 句で OR を使用した場合に結合結果に予期しないデフォルト値が入る問題を修正しました。 [#75262](https://github.com/ClickHouse/ClickHouse/pull/75262) ([Vladimir Cherkasov](https://github.com/vdimir)). -* azureblobstorage テーブルエンジンの認証情報をマスクするようにしました。 [#75319](https://github.com/ClickHouse/ClickHouse/pull/75319) ([Garrett Thomas](https://github.com/garrettthomaskth)). -* ClickHouse が PostgreSQL、MySQL、SQLite などの外部データベースに対して誤ってフィルタープッシュダウンを行ってしまう可能性があった不具合を修正しました。これにより次の issue が解決されました: [#71423](https://github.com/ClickHouse/ClickHouse/issues/71423)。[#75320](https://github.com/ClickHouse/ClickHouse/pull/75320)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 -* Protobuf フォーマットでの出力中や、並列クエリ `SYSTEM DROP FORMAT SCHEMA CACHE` の実行時に発生する可能性がある Protobuf スキーマキャッシュのクラッシュを修正しました。 [#75357](https://github.com/ClickHouse/ClickHouse/pull/75357) ([Pavel Kruglov](https://github.com/Avogar)). -* 並列レプリカで `HAVING` からのフィルタがプッシュダウンされる場合に発生する可能性があった論理エラーまたは未初期化メモリの問題を修正しました。 [#75363](https://github.com/ClickHouse/ClickHouse/pull/75363) ([Vladimir Cherkasov](https://github.com/vdimir)). -* `icebergS3`、`icebergAzure` テーブル関数およびテーブルエンジンで機密情報をマスクするようにしました。 [#75378](https://github.com/ClickHouse/ClickHouse/pull/75378) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 計算結果として空文字列になるトリム対象文字を指定した `TRIM` 関数が正しく処理されるようになりました。例: `SELECT TRIM(LEADING concat('') FROM 'foo')`(Issue [#69922](https://github.com/ClickHouse/ClickHouse/issues/69922))。[#75399](https://github.com/ClickHouse/ClickHouse/pull/75399)([Manish Gill](https://github.com/mgill25))。 -* IOutputFormat のデータレースを修正。 [#75448](https://github.com/ClickHouse/ClickHouse/pull/75448) ([Pavel Kruglov](https://github.com/Avogar)). -* 分散テーブルに対する JOIN で Array 型の JSON サブカラムが使用されている場合に発生する可能性のある `Elements ... and ... of Nested data structure ... (Array columns) have different array sizes` エラーを修正しました。 [#75512](https://github.com/ClickHouse/ClickHouse/pull/75512) ([Pavel Kruglov](https://github.com/Avogar)). -* `CODEC(ZSTD, DoubleDelta)` を使用してデータ破損を修正。[#70031](https://github.com/ClickHouse/ClickHouse/issues/70031) をクローズ。[#75548](https://github.com/ClickHouse/ClickHouse/pull/75548)([Konstantin Bogdanov](https://github.com/thevar1able))。 -* allow_feature_tier と compatibility MergeTree 設定間の相互作用を修正しました。 [#75635](https://github.com/ClickHouse/ClickHouse/pull/75635) ([Raúl Marín](https://github.com/Algunenano)). -* ファイルの処理が再試行された場合に `system.s3queue_log` 内の `processed_rows` の値が正しくならない問題を修正しました。 [#75666](https://github.com/ClickHouse/ClickHouse/pull/75666) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* マテリアライズドビューが URL エンジンに対して書き込みを行っていて接続の問題が発生している場合にも、`materialized_views_ignore_errors` が尊重されるようにしました。 [#75679](https://github.com/ClickHouse/ClickHouse/pull/75679) ([Christoph Wurm](https://github.com/cwurm)). -* 異なる型のカラム間で複数の非同期 `RENAME` クエリ(`alter_sync = 0`)を実行した後に、`MergeTree` テーブルからの読み取り時にまれに発生していたクラッシュを修正しました。 [#75693](https://github.com/ClickHouse/ClickHouse/pull/75693) ([Anton Popov](https://github.com/CurtizJ)). -* 一部の `UNION ALL` を含むクエリで発生していた `Block structure mismatch in QueryPipeline stream` エラーを修正しました。 [#75715](https://github.com/ClickHouse/ClickHouse/pull/75715) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* projection の PK に使用されているカラムを `ALTER MODIFY` した場合、その projection を再構築するようにしました。以前は、projection の PK に使用されているカラムを `ALTER MODIFY` した後の `SELECT` クエリ実行時に `CANNOT_READ_ALL_DATA` エラーが発生する可能性がありました。 [#75720](https://github.com/ClickHouse/ClickHouse/pull/75720) ([Pavel Kruglov](https://github.com/Avogar)). -* スカラーサブクエリに対する `ARRAY JOIN` の結果が誤る問題を修正(アナライザー使用時)。 [#75732](https://github.com/ClickHouse/ClickHouse/pull/75732) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* `DistinctSortedStreamTransform` における null ポインタ逆参照を修正しました。 [#75734](https://github.com/ClickHouse/ClickHouse/pull/75734) ([Nikita Taranov](https://github.com/nickitat)). -* `allow_suspicious_ttl_expressions` の挙動を修正。 [#75771](https://github.com/ClickHouse/ClickHouse/pull/75771) ([Aleksei Filatov](https://github.com/aalexfvk)). -* 関数 `translate` における未初期化メモリの読み取りを修正しました。これにより [#75592](https://github.com/ClickHouse/ClickHouse/issues/75592) が解決されます。 [#75794](https://github.com/ClickHouse/ClickHouse/pull/75794) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Native フォーマットで JSON を文字列フォーマットとして扱う際に、フォーマット設定が伝播されるようにしました。 [#75832](https://github.com/ClickHouse/ClickHouse/pull/75832) ([Pavel Kruglov](https://github.com/Avogar)). -* `settings` の変更履歴に、v24.12 で並列ハッシュ `JOIN` アルゴリズムがデフォルトで有効化されたことを記録しました。これにより、互換性レベルが v24.12 より古い値に設定されている場合、ClickHouse は引き続き非並列のハッシュを用いて `JOIN` を実行します。 [#75870](https://github.com/ClickHouse/ClickHouse/pull/75870) ([Robert Schulze](https://github.com/rschu1ze)). -* 暗黙的に追加された min-max インデックスを持つテーブルを新しいテーブルにコピーできなかった不具合を修正しました(issue [#75677](https://github.com/ClickHouse/ClickHouse/issues/75677))。[#75877](https://github.com/ClickHouse/ClickHouse/pull/75877)([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 -* `clickhouse-library-bridge` はファイルシステムから任意のライブラリを開くことができるため、本来は隔離された環境内でのみ実行するのが安全です。`clickhouse-server` の近くで実行された場合に生じる脆弱性を防ぐため、設定で指定した場所のみにライブラリのパスを制限します。この脆弱性は **Arseniy Dugin** によって [ClickHouse Bug Bounty Program](https://github.com/ClickHouse/ClickHouse/issues/38986) を通じて発見されました。[#75954](https://github.com/ClickHouse/ClickHouse/pull/75954)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 一部のメタデータのシリアル化に JSON を使用していましたが、これは誤りでした。JSON は文字列リテラル内部でのバイナリデータ(ゼロバイトを含む)をサポートしていないためです。一方で、SQL クエリにはバイナリデータや無効な UTF-8 が含まれうるため、メタデータファイル側でもこれをサポートする必要があります。同時に、ClickHouse の `JSONEachRow` などのフォーマットは、バイナリデータの完全なラウンドトリップを優先し、JSON 標準から意図的に逸脱することでこの問題を回避しています。その背景については次を参照してください: [https://github.com/ClickHouse/ClickHouse/pull/73668#issuecomment-2560501790](https://github.com/ClickHouse/ClickHouse/pull/73668#issuecomment-2560501790)。解決策は、`Poco::JSON` ライブラリを ClickHouse における JSON フォーマットのシリアル化と整合させることです。これにより [#73668](https://github.com/ClickHouse/ClickHouse/issues/73668) がクローズされました。[#75963](https://github.com/ClickHouse/ClickHouse/pull/75963)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* ストレージ `S3Queue` におけるコミット制限のチェックを修正しました。[#76104](https://github.com/ClickHouse/ClickHouse/pull/76104)([Kseniia Sumarokova](https://github.com/kssenii))。 -* `add_minmax_index_for_numeric_columns`/`add_minmax_index_for_string_columns` による自動インデックスを持つ MergeTree テーブルの ATTACH を修正しました。 [#76139](https://github.com/ClickHouse/ClickHouse/pull/76139) ([Azat Khuzhin](https://github.com/azat)). -* ジョブの親スレッドのスタックトレースが、`enable_job_stack_trace` 設定を有効にしても出力されない問題を修正しました。また、`enable_job_stack_trace` 設定がスレッドに正しく伝播せず、その結果スタックトレースの内容が常にこの設定を反映しない問題も修正しました。 [#76191](https://github.com/ClickHouse/ClickHouse/pull/76191) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* `ALTER RENAME` に対して誤って `CREATE USER` 権限を要求していたパーミッションチェックを修正しました。 [#74372](https://github.com/ClickHouse/ClickHouse/issues/74372) をクローズしました。 [#76241](https://github.com/ClickHouse/ClickHouse/pull/76241) ([pufit](https://github.com/pufit))。 -* ビッグエンディアンアーキテクチャにおける FixedString を用いた reinterpretAs の動作を修正。 [#76253](https://github.com/ClickHouse/ClickHouse/pull/76253) ([Azat Khuzhin](https://github.com/azat)). -* S3Queue に存在した論理エラー「Expected current processor {} to be equal to {} for bucket {}」を修正しました。 [#76358](https://github.com/ClickHouse/ClickHouse/pull/76358) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Memory データベースにおける ALTER のデッドロックを修正しました。 [#76359](https://github.com/ClickHouse/ClickHouse/pull/76359) ([Azat Khuzhin](https://github.com/azat)). -* `WHERE` 句に `pointInPolygon` 関数が含まれている場合のインデックス解析時の論理エラーを修正。 [#76360](https://github.com/ClickHouse/ClickHouse/pull/76360) ([Anton Popov](https://github.com/CurtizJ)). -* シグナルハンドラ内の潜在的に安全でない呼び出しを修正。 [#76549](https://github.com/ClickHouse/ClickHouse/pull/76549) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* PartsSplitter における reverse key のサポートを修正。これにより [#73400](https://github.com/ClickHouse/ClickHouse/issues/73400) を解決。 [#73418](https://github.com/ClickHouse/ClickHouse/pull/73418) ([Amos Bird](https://github.com/amosbird))。 - -#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement} - -* ARM および Intel Mac の両方での HDFS のビルドをサポート。[#74244](https://github.com/ClickHouse/ClickHouse/pull/74244) ([Yan Xin](https://github.com/yxheartipp)). -* Darwin 向けにクロスコンパイルする際に ICU と GRPC を有効化。[#75922](https://github.com/ClickHouse/ClickHouse/pull/75922) ([Raúl Marín](https://github.com/Algunenano)). -* 同梱の LLVM を 19 に更新。[#75148](https://github.com/ClickHouse/ClickHouse/pull/75148) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Docker イメージでユーザー `default` のネットワークアクセスを無効化。[#75259](https://github.com/ClickHouse/ClickHouse/pull/75259) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). すべての clickhouse-server 関連処理を関数化し、`entrypoint.sh` でデフォルトのバイナリを起動するときにのみ実行されるように変更。長らく先送りされていた改善であり、[#50724](https://github.com/ClickHouse/ClickHouse/issues/50724) で提案されていたもの。`users.xml` から値を取得するためのスイッチ `--users` を `clickhouse-extract-from-config` に追加。[#75643](https://github.com/ClickHouse/ClickHouse/pull/75643) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). -* バイナリから約 20MB の不要コードを削除。[#76226](https://github.com/ClickHouse/ClickHouse/pull/76226) ([Alexey Milovidov](https://github.com/alexey-milovidov)). - -### ClickHouse リリース 25.1, 2025-01-28 {#251} - -#### 後方互換性のない変更 {#backward-incompatible-change} - -* `JSONEachRowWithProgress` は、進捗が発生するたびに進捗情報を書き出すようになりました。以前のバージョンでは、結果の各ブロックの後にしか進捗が表示されず、実用的ではありませんでした。進捗の表示方法を変更し、進捗が 0 の場合は表示しません。この変更により [#70800](https://github.com/ClickHouse/ClickHouse/issues/70800) が解決されました。[#73834](https://github.com/ClickHouse/ClickHouse/pull/73834)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* `Merge` テーブルは、列の和集合を取り共通の型を導出することで、配下のテーブルの構造を統一します。この変更により [#64864](https://github.com/ClickHouse/ClickHouse/issues/64864) が解決されました。特定のケースでは、この変更は後方互換性がない可能性があります。1 つの例として、テーブル間に共通の型が存在しないが、最初のテーブルの型への変換は可能な場合があります(UInt64 と Int64、または任意の数値型と String の組み合わせなど)。旧来の動作に戻したい場合は、`merge_table_max_tables_to_look_for_schema_inference` を `1` に設定するか、`compatibility` を `24.12` 以前に設定してください。[#73956](https://github.com/ClickHouse/ClickHouse/pull/73956)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* Parquet 出力フォーマットは、`Date` および `DateTime` 列を生の数値として書き出すのではなく、Parquet がサポートする日付/時刻型に変換します。`DateTime` は `DateTime64(3)`(以前は `UInt32`)になります。`output_format_parquet_datetime_as_uint32` を設定することで、従来の動作に戻せます。`Date` は `Date32`(以前は `UInt16`)になります。[#70950](https://github.com/ClickHouse/ClickHouse/pull/70950)([Michael Kolupaev](https://github.com/al13n321))。 -* デフォルトでは、`ORDER BY` および `less/greater/equal/etc` といった比較関数に、`JSON` / `Object` / `AggregateFunction` のような比較不可能な型を使用できないようになりました。[#73276](https://github.com/ClickHouse/ClickHouse/pull/73276)([Pavel Kruglov](https://github.com/Avogar))。 -* 廃止された `MaterializedMySQL` データベースエンジンは削除され、利用できなくなりました。[#73879](https://github.com/ClickHouse/ClickHouse/pull/73879)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* `mysql` ディクショナリソースは、もはや `SHOW TABLE STATUS` クエリを実行しません。これは、InnoDB テーブルおよび最近の MySQL バージョン全般において、この情報が有用ではないためです。この変更により [#72636](https://github.com/ClickHouse/ClickHouse/issues/72636) が解決されました。この変更は後方互換性がありますが、気付けるようにこのカテゴリに含めています。[#73914](https://github.com/ClickHouse/ClickHouse/pull/73914)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* `CHECK TABLE` クエリには、新たに `CHECK` 権限が必要になりました。以前のバージョンでは、これらのクエリを実行するには `SHOW TABLES` 権限だけで十分でした。しかし、`CHECK TABLE` クエリは重くなる可能性があり、`SELECT` クエリに適用される通常のクエリ複雑性の制限は適用されませんでした。その結果、DoS 攻撃の可能性がありました。[#74471](https://github.com/ClickHouse/ClickHouse/pull/74471)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* `h3ToGeo()` 関数は、結果を標準的な幾何関数の順序である `(lat, lon)` で返すようになりました。従来の結果順序 `(lon, lat)` を保持したいユーザーは、設定 `h3togeo_lon_lat_result_order = true` を有効にしてください。[#74719](https://github.com/ClickHouse/ClickHouse/pull/74719)([Manish Gill](https://github.com/mgill25))。 -* 新しい MongoDB ドライバーがデフォルトになりました。レガシードライバーの利用を継続したいユーザーは、サーバー設定 `use_legacy_mongodb_integration` を true に設定してください。[#73359](https://github.com/ClickHouse/ClickHouse/pull/73359)([Robert Schulze](https://github.com/rschu1ze))。 - -#### 新機能 {#new-feature} - -* `SELECT` クエリの実行時に、バックグラウンドプロセスによるマテリアライズがまだ完了していない mutation を、送信直後に適用できるようになりました。`apply_mutations_on_fly` を設定することで有効化できます。 [#74877](https://github.com/ClickHouse/ClickHouse/pull/74877) ([Anton Popov](https://github.com/CurtizJ)). -* `Iceberg` テーブルにおいて、時間変換を用いるパーティション操作向けのパーティションプルーニングを実装しました。 [#72044](https://github.com/ClickHouse/ClickHouse/pull/72044) ([Daniil Ivanik](https://github.com/divanik)). -* MergeTree のソートキーおよびスキップインデックスでサブカラムのサポートを追加。 [#72644](https://github.com/ClickHouse/ClickHouse/pull/72644) ([Pavel Kruglov](https://github.com/Avogar)). -* `Apache Arrow`/`Parquet`/`ORC` からの `HALF_FLOAT` 値の読み取りをサポートしました(`Float32` として読み込まれます)。これにより [#72960](https://github.com/ClickHouse/ClickHouse/issues/72960) が解決されます。IEEE-754 の half float(半精度浮動小数点数)は `BFloat16` とは異なることに注意してください。[#73835](https://github.com/ClickHouse/ClickHouse/issues/73835) がクローズされます。[#73836](https://github.com/ClickHouse/ClickHouse/pull/73836)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* `system.trace_log` テーブルに、シンボル化されたスタックトレースを格納する 2 つの新しいカラム `symbols` と `lines` が追加されます。これにより、プロファイル情報の収集とエクスポートが容易になります。これは、`trace_log` セクション内のサーバー設定値 `symbolize` によって制御されており、デフォルトで有効になっています。 [#73896](https://github.com/ClickHouse/ClickHouse/pull/73896) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* テーブル内で自動インクリメントされた番号を生成するために使用できる新しい関数 `generateSerialID` を追加しました。[kazalika](https://github.com/kazalika) による [#64310](https://github.com/ClickHouse/ClickHouse/issues/64310) の継続対応です。この変更により [#62485](https://github.com/ClickHouse/ClickHouse/issues/62485) がクローズされます。[#73950](https://github.com/ClickHouse/ClickHouse/pull/73950)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* DDL クエリ向けに、構文 `query1 PARALLEL WITH query2 PARALLEL WITH query3 ... PARALLEL WITH queryN` を追加しました。これは、クエリ `{query1, query2, ... queryN}` を互いに並列実行できるようにする(かつ、その方が望ましい)ことを意味します。[#73983](https://github.com/ClickHouse/ClickHouse/pull/73983) ([Vitaly Baranov](https://github.com/vitlibar))。 -* デシリアライズ済みの skipping index のグラニュール用インメモリキャッシュを追加しました。これにより、skipping index を利用する同一クエリの繰り返し実行が高速になります。新しいキャッシュのサイズは、サーバー設定 `skipping_index_cache_size` と `skipping_index_cache_max_entries` によって制御されます。このキャッシュを追加した主な動機はベクトル類似度インデックスであり、これにより処理が大幅に高速化されました。[#70102](https://github.com/ClickHouse/ClickHouse/pull/70102)([Robert Schulze](https://github.com/rschu1ze))。 -* 現在、組み込み Web UI にはクエリ実行中に進行状況バーが表示されるようになりました。これにより、クエリをキャンセルできます。総レコード数と、速度に関する詳細な情報を表示します。テーブルは、データが届き次第、段階的にレンダリングできるようになりました。HTTP 圧縮を有効にしました。テーブルのレンダリングがより高速になりました。テーブルヘッダーが固定表示(スティッキー)になりました。セルを選択でき、矢印キーで移動できます。選択されたセルのアウトラインによってセルが小さくなってしまう問題を修正しました。セルはマウスホバーでは拡大せず、選択時のみ拡大されます。受信データのレンダリングをいつ停止するかは、サーバー側ではなくクライアント側で決定されます。数値の桁区切りを強調表示します。全体的なデザインが刷新され、より力強い印象になりました。サーバーに到達可能かどうかと認証情報の正しさをチェックし、サーバーのバージョンと稼働時間を表示します。クラウドアイコンは、Safari を含むあらゆるフォントで輪郭線付きで表示されます。ネストされたデータ型内の大きな整数がより適切にレンダリングされます。`inf` / `nan` を正しく表示します。カラムヘッダーにマウスオーバーした際にデータ型を表示します。[#74204](https://github.com/ClickHouse/ClickHouse/pull/74204)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* MergeTree によって管理されるカラムに対して、デフォルトで min-max (skipping) インデックスを作成できるようにする設定 `add_minmax_index_for_numeric_columns`(数値カラム用)および `add_minmax_index_for_string_columns`(文字列カラム用)を追加しました。現時点では両方の設定は無効になっているため、まだ動作の変更はありません。 [#74266](https://github.com/ClickHouse/ClickHouse/pull/74266) ([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 -* `system.query_log`、ネイティブプロトコルの ClientInfo、およびサーバーログに `script_query_number` と `script_line_number` フィールドを追加。これにより [#67542](https://github.com/ClickHouse/ClickHouse/issues/67542) がクローズされます。以前に [#68133](https://github.com/ClickHouse/ClickHouse/issues/68133) でこの機能の実装に着手した [pinsvin00](https://github.com/pinsvin00) に感謝します。[#74477](https://github.com/ClickHouse/ClickHouse/pull/74477)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* パターン内で最長のイベント列に対して、一致したイベントのタイムスタンプを返す集約関数 `sequenceMatchEvents` を追加しました。 [#72349](https://github.com/ClickHouse/ClickHouse/pull/72349) ([UnamedRus](https://github.com/UnamedRus)). -* 関数 `arrayNormalizedGini` を追加しました。[#72823](https://github.com/ClickHouse/ClickHouse/pull/72823) ([flynn](https://github.com/ucasfl)). -* `DateTime64` に対するマイナス演算子をサポートし、`DateTime64` 同士および `DateTime` との減算を可能にしました。 [#74482](https://github.com/ClickHouse/ClickHouse/pull/74482) ([Li Yin](https://github.com/liyinsg)). - -#### 実験的機能 {#experimental-features} - -* `BFloat16` データ型は本番環境で利用可能になりました。 [#73840](https://github.com/ClickHouse/ClickHouse/pull/73840) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 - -#### パフォーマンスの向上 {#performance-improvement} - -* 関数 `indexHint` を最適化しました。これにより、関数 `indexHint` の引数としてのみ使用されている列はテーブルから読み込まれなくなりました。[#74314](https://github.com/ClickHouse/ClickHouse/pull/74314) ([Anton Popov](https://github.com/CurtizJ))。もし `indexHint` 関数がエンタープライズデータアーキテクチャの中核を成しているのであれば、この最適化はあなたの命を救ってくれるはずです。 -* `parallel_hash` JOIN アルゴリズムに対する `max_joined_block_size_rows` 設定の計算をより正確にしました。これにより、`hash` アルゴリズムと比較してメモリ消費量が増加することを回避できます。 [#74630](https://github.com/ClickHouse/ClickHouse/pull/74630) ([Nikita Taranov](https://github.com/nickitat)). -* `MergingAggregated` ステップに対して、クエリプランレベルでの述語プッシュダウン最適化をサポートしました。これにより、アナライザーを使用する一部のクエリのパフォーマンスが向上します。 [#74073](https://github.com/ClickHouse/ClickHouse/pull/74073) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* `parallel_hash` JOIN アルゴリズムのプローブフェーズから、左側テーブルのブロックをハッシュで分割する処理を削除しました。 [#73089](https://github.com/ClickHouse/ClickHouse/pull/73089) ([Nikita Taranov](https://github.com/nickitat))。 -* RowBinary 入力フォーマットを最適化しました。[#63805](https://github.com/ClickHouse/ClickHouse/issues/63805) をクローズしました。[#65059](https://github.com/ClickHouse/ClickHouse/pull/65059)([Pavel Kruglov](https://github.com/Avogar))。 -* `optimize_on_insert` が有効な場合、レベル 1 のパーツとして書き込みます。これにより、新しく書き込まれたパーツに対する `FINAL` 付きクエリで複数の最適化を適用できるようになります。 [#73132](https://github.com/ClickHouse/ClickHouse/pull/73132) ([Anton Popov](https://github.com/CurtizJ)). -* 低レベルな最適化により文字列のデシリアライズを高速化しました。[#65948](https://github.com/ClickHouse/ClickHouse/pull/65948) ([Nikita Taranov](https://github.com/nickitat)). -* マージなどでレコード間の等価比較を行う際、もっとも不一致になりやすい列から行の比較を開始するようになりました。 [#63780](https://github.com/ClickHouse/ClickHouse/pull/63780) ([UnamedRus](https://github.com/UnamedRus)). -* キーに基づいて右側の結合テーブルを再度並べ替えることで、Grace ハッシュ結合のパフォーマンスを改善しました。 [#72237](https://github.com/ClickHouse/ClickHouse/pull/72237) ([kevinyhzou](https://github.com/KevinyhZou)). -* `arrayROCAUC` と `arrayAUCPR` が曲線全体の一部の面積を計算できるようになり、巨大なデータセットに対して計算を並列化できるようになりました。 [#72904](https://github.com/ClickHouse/ClickHouse/pull/72904) ([Emmanuel](https://github.com/emmanuelsdias))。 -* アイドルスレッドを過剰に生成しないようにしました。 [#72920](https://github.com/ClickHouse/ClickHouse/pull/72920) ([Guo Wangyang](https://github.com/guowangy)). -* テーブル関数で波括弧展開のみを使用している場合は、BLOB ストレージのキーを列挙しないようにしました。 [#73333](https://github.com/ClickHouse/ClickHouse/issues/73333) をクローズしました。 [#73518](https://github.com/ClickHouse/ClickHouse/pull/73518)([Konstantin Bogdanov](https://github.com/thevar1able))。 -* Nullable 引数を取る関数に対するショートサーキット最適化。 [#73820](https://github.com/ClickHouse/ClickHouse/pull/73820) ([李扬](https://github.com/taiyang-li)). -* `maskedExecute` を関数以外の列には適用しないようにし、ショートサーキット実行のパフォーマンスを改善しました。 [#73965](https://github.com/ClickHouse/ClickHouse/pull/73965) ([lgbo](https://github.com/lgbo-ustc)). -* `Kafka`/`NATS`/`RabbitMQ`/`FileLog` の入力フォーマットにおけるヘッダーの自動検出を無効化し、パフォーマンスを向上させました。 [#74006](https://github.com/ClickHouse/ClickHouse/pull/74006) ([Azat Khuzhin](https://github.com/azat)). -* `GROUPING SETS` を用いた集約処理の後に、より高い並列度でパイプラインを実行するようにしました。 [#74082](https://github.com/ClickHouse/ClickHouse/pull/74082) ([Nikita Taranov](https://github.com/nickitat)). -* `MergeTreeReadPool` におけるクリティカルセクションの範囲を縮小しました。 [#74202](https://github.com/ClickHouse/ClickHouse/pull/74202) ([Guo Wangyang](https://github.com/guowangy)). -* 並列レプリカのパフォーマンスが改善されました。並列レプリカプロトコルに関連しないパケットのデシリアライズは、クエリのイニシエータ側で常にパイプラインスレッド内で行われるようになりました。以前は、パイプラインスケジューリングを担当するスレッド内で行われる場合があり、その結果、イニシエータ側の応答性が低下し、パイプラインの実行が遅延する可能性がありました。 [#74398](https://github.com/ClickHouse/ClickHouse/pull/74398) ([Igor Nikonov](https://github.com/devcrafter)). -* Keeper における大きなマルチリクエストのパフォーマンスを改善しました。 [#74849](https://github.com/ClickHouse/ClickHouse/pull/74849) ([Antonio Andelic](https://github.com/antonio2368)). -* ログラッパーを値として扱い、ヒープに確保しないようにしました。[#74034](https://github.com/ClickHouse/ClickHouse/pull/74034) ([Mikhail Artemenko](https://github.com/Michicosun))。 -* MySQL および Postgres の辞書レプリカへの接続をバックグラウンドで再確立し、対応する辞書へのリクエストが遅延しないようにしました。 [#71101](https://github.com/ClickHouse/ClickHouse/pull/71101) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* Parallel replicas では、レプリカ選択を改善するためにレプリカの可用性に関する過去の情報を使用していましたが、接続できない場合にそのレプリカのエラー数を更新していませんでした。この PR では、レプリカに接続できない場合にそのエラー数を更新するようにしました。 [#72666](https://github.com/ClickHouse/ClickHouse/pull/72666) ([zoomxi](https://github.com/zoomxi)). -* マージツリーの設定 `materialize_skip_indexes_on_merge` を追加しました。これにより、マージ時にスキップインデックスが作成されるのを抑制できます。これによって、`ALTER TABLE [..] MATERIALIZE INDEX [...]` を通じて、スキップインデックスをいつ作成するかを明示的に制御できるようになります。スキップインデックスの構築コストが高い場合(例:ベクトル類似度インデックスなど)に有用です。 [#74401](https://github.com/ClickHouse/ClickHouse/pull/74401) ([Robert Schulze](https://github.com/rschu1ze))。 -* Storage(S3/Azure)Queue での Keeper リクエストを最適化しました。 [#74410](https://github.com/ClickHouse/ClickHouse/pull/74410) ([Kseniia Sumarokova](https://github.com/kssenii)). [#74538](https://github.com/ClickHouse/ClickHouse/pull/74538) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 既定では最大 `1000` 個の並列レプリカを使用します。 [#74504](https://github.com/ClickHouse/ClickHouse/pull/74504) ([Konstantin Bogdanov](https://github.com/thevar1able))。 -* Improve HTTP セッションの再利用を、S3 ディスクからの読み取り時に改善しました([#72401](https://github.com/ClickHouse/ClickHouse/issues/72401))。[#74548](https://github.com/ClickHouse/ClickHouse/pull/74548)([Julian Maicher](https://github.com/jmaicher))。 - -#### 改善点 {#improvement} - -* ENGINE を暗黙指定した CREATE TABLE クエリで SETTINGS をサポートし、ENGINE 設定とクエリ設定を併用できるようにしました。 [#73120](https://github.com/ClickHouse/ClickHouse/pull/73120) ([Raúl Marín](https://github.com/Algunenano)). -* `use_hive_partitioning` をデフォルトで有効にしました。 [#71636](https://github.com/ClickHouse/ClickHouse/pull/71636) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* 異なるパラメータを持つ JSON 型間での CAST および ALTER をサポートしました。[#72303](https://github.com/ClickHouse/ClickHouse/pull/72303) ([Pavel Kruglov](https://github.com/Avogar))。 -* JSON 列の値に対する等価比較をサポートしました。 [#72991](https://github.com/ClickHouse/ClickHouse/pull/72991) ([Pavel Kruglov](https://github.com/Avogar)). -* JSON サブカラムを含む識別子のフォーマットを改善し、不要なバッククォートを回避するようにしました。 [#73085](https://github.com/ClickHouse/ClickHouse/pull/73085) ([Pavel Kruglov](https://github.com/Avogar)). -* インタラクティブメトリクスを改善。並列レプリカのメトリクスがすべて表示されない問題を修正。メトリクスは最新の更新時刻順、その後に名前の辞書順で表示する。古くなったメトリクスは表示しない。 [#71631](https://github.com/ClickHouse/ClickHouse/pull/71631) ([Julia Kartseva](https://github.com/jkartseva)). -* JSON 出力フォーマットをデフォルトで整形表示するようにしました。これを制御するための新しい設定 `output_format_json_pretty_print` を追加し、デフォルトで有効化しました。 [#72148](https://github.com/ClickHouse/ClickHouse/pull/72148) ([Pavel Kruglov](https://github.com/Avogar)). -* デフォルトで `LowCardinality(UUID)` を許可するようにしました。これは ClickHouse Cloud の顧客の間で実用的であることが実証されています。 [#73826](https://github.com/ClickHouse/ClickHouse/pull/73826) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* インストール時のメッセージを改善しました。 [#73827](https://github.com/ClickHouse/ClickHouse/pull/73827) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* ClickHouse Cloud のパスワードリセット時のメッセージを改善しました。 [#73831](https://github.com/ClickHouse/ClickHouse/pull/73831) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* ファイルへの追記を行えない File テーブルに対するエラーメッセージを改善しました。 [#73832](https://github.com/ClickHouse/ClickHouse/pull/73832) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* ユーザーが誤ってターミナルへの出力形式にバイナリ形式(Native、Parquet、Avro など)を指定した場合に、確認を求めるようにしました。これにより [#59524](https://github.com/ClickHouse/ClickHouse/issues/59524) がクローズされました。 [#73833](https://github.com/ClickHouse/ClickHouse/pull/73833)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* Pretty および Vertical 形式の出力では、ターミナル上で末尾の空白をハイライト表示して視認性を向上しました。この挙動は `output_format_pretty_highlight_trailing_spaces` 設定で制御できます。初期実装は [Braden Burns](https://github.com/bradenburns) によるもので、[#72996](https://github.com/ClickHouse/ClickHouse/issues/72996) に基づくものです。[#71590](https://github.com/ClickHouse/ClickHouse/issues/71590) をクローズしました。[#73847](https://github.com/ClickHouse/ClickHouse/pull/73847)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* `clickhouse-client` と `clickhouse-local` は、ファイルからリダイレクトされた場合に stdin の圧縮形式を自動検出するようになりました。これにより [#70865](https://github.com/ClickHouse/ClickHouse/issues/70865) がクローズされました。 [#73848](https://github.com/ClickHouse/ClickHouse/pull/73848) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* デフォルトで、pretty フォーマットにおいて長すぎるカラム名を切り詰めるようにしました。これは `output_format_pretty_max_column_name_width_cut_to` および `output_format_pretty_max_column_name_width_min_chars_to_cut` の設定によって制御されます。これは [#66502](https://github.com/ClickHouse/ClickHouse/issues/66502) における [tanmaydatta](https://github.com/tanmaydatta) による作業の継続です。この変更により [#65968](https://github.com/ClickHouse/ClickHouse/issues/65968) がクローズされます。 [#73851](https://github.com/ClickHouse/ClickHouse/pull/73851)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* `Pretty` フォーマットの表示をより見やすくするため、前のブロックの出力からあまり時間が経過していない場合はブロックをまとめて表示するようにしました。これは新しい設定項目 `output_format_pretty_squash_consecutive_ms`(デフォルト 50 ms)および `output_format_pretty_squash_max_wait_ms`(デフォルト 1000 ms)で制御されます。[#49537](https://github.com/ClickHouse/ClickHouse/issues/49537) の継続です。この変更により [#49153](https://github.com/ClickHouse/ClickHouse/issues/49153) がクローズされました。[#73852](https://github.com/ClickHouse/ClickHouse/pull/73852)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 現在マージ中のソースパーツ数を示すメトリクスを追加しました。これにより [#70809](https://github.com/ClickHouse/ClickHouse/issues/70809) がクローズされます。[#73868](https://github.com/ClickHouse/ClickHouse/pull/73868)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 出力先がターミナルの場合、`Vertical` 形式で列をハイライト表示するようにしました。これは `output_format_pretty_color` 設定で無効化できます。 [#73898](https://github.com/ClickHouse/ClickHouse/pull/73898) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* MySQL 互換機能を強化し、`mysqlsh`(Oracle 製の高機能な MySQL CLI)が ClickHouse に接続できるレベルになりました。これはテストを容易に行えるようにするためのものです。 [#73912](https://github.com/ClickHouse/ClickHouse/pull/73912) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Pretty フォーマットでは、テーブルセル内に複数行フィールドを表示できるようになり、可読性が向上しました。これはデフォルトで有効で、設定 `output_format_pretty_multiline_fields` で制御できます。[#64094](https://github.com/ClickHouse/ClickHouse/issues/64094) における [Volodyachan](https://github.com/Volodyachan) による作業の継続です。これにより [#56912](https://github.com/ClickHouse/ClickHouse/issues/56912) がクローズされます。[#74032](https://github.com/ClickHouse/ClickHouse/pull/74032)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* ブラウザの JavaScript から X-ClickHouse HTTP ヘッダーへアクセスできるようにしました。これによりアプリケーションの開発がより容易になります。 [#74180](https://github.com/ClickHouse/ClickHouse/pull/74180) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* `JSONEachRowWithProgress` フォーマットには、メタデータ付きのイベントに加えて、合計値および極値が含まれます。また、`rows_before_limit_at_least` と `rows_before_aggregation` も含まれます。このフォーマットでは、部分結果の後に例外が発生した場合でも、その例外が正しく出力されます。進捗には経過時間(ナノ秒)が含まれるようになりました。最後に 1 回、最終的な進捗イベントが出力されます。クエリ実行中の進捗は、`interactive_delay` 設定値より短い間隔では出力されません。 [#74181](https://github.com/ClickHouse/ClickHouse/pull/74181) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 砂時計アイコンが Play UI 上でスムーズに回転するようになりました。 [#74182](https://github.com/ClickHouse/ClickHouse/pull/74182) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* HTTP レスポンスが圧縮されている場合でも、パケットは到着し次第すぐにクライアントへ送信します。これにより、ブラウザは進捗を示すパケットと圧縮データの両方を受信できます。 [#74201](https://github.com/ClickHouse/ClickHouse/pull/74201) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 出力レコード数が N = `output_format_pretty_max_rows` を超える場合、先頭の N 行だけを表示するのではなく、出力テーブルを途中で切り、先頭 N/2 行と末尾 N/2 行を表示するようにしました。[#64200](https://github.com/ClickHouse/ClickHouse/issues/64200) の継続です。[#59502](https://github.com/ClickHouse/ClickHouse/issues/59502) を解決します。[#73929](https://github.com/ClickHouse/ClickHouse/pull/73929)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* ハッシュ結合アルゴリズムが有効な場合に、より汎用的な結合計画アルゴリズムを利用できるようにしました。 [#71926](https://github.com/ClickHouse/ClickHouse/pull/71926) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* `DateTime64` 型のカラムに対して bloom_filter インデックスを作成できるようにしました。 [#66416](https://github.com/ClickHouse/ClickHouse/pull/66416) ([Yutong Xiao](https://github.com/YutSean))。 -* `min_age_to_force_merge_seconds` と `min_age_to_force_merge_on_partition_only` の両方が有効化されている場合、パーツのマージ処理は最大バイト数制限を無視します。 [#73656](https://github.com/ClickHouse/ClickHouse/pull/73656) ([Kai Zhu](https://github.com/nauu)). -* トレーサビリティ向上のため、OpenTelemetry のスパンログテーブルに HTTP ヘッダー情報を追加しました。 [#70516](https://github.com/ClickHouse/ClickHouse/pull/70516) ([jonymohajanGmail](https://github.com/jonymohajanGmail)). -* 常に `GMT` タイムゾーンではなく、任意のタイムゾーンを指定して `orc` ファイルを書き出せるようにしました。 [#70615](https://github.com/ClickHouse/ClickHouse/pull/70615) ([kevinyhzou](https://github.com/KevinyhZou)). -* クラウド間でバックアップを書き込む際に I/O スケジューリング設定を尊重するようにしました。 [#71093](https://github.com/ClickHouse/ClickHouse/pull/71093) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* `system.asynchronous_metrics` に `metric` カラムのエイリアス `name` を追加しました。 [#71164](https://github.com/ClickHouse/ClickHouse/pull/71164) ([megao](https://github.com/jetgm)). -* 何らかの歴史的経緯により、クエリ `ALTER TABLE MOVE PARTITION TO TABLE` は専用の `ALTER_MOVE_PARTITION` 権限ではなく、`SELECT` と `ALTER DELETE` 権限をチェックしていました。この PR では、このアクセス種別を使用するようにしました。互換性維持のため、`SELECT` と `ALTER DELETE` が付与されている場合には、この権限も暗黙的に付与されますが、この挙動は将来のリリースで廃止される予定です。[#16403](https://github.com/ClickHouse/ClickHouse/issues/16403) をクローズします。[#71632](https://github.com/ClickHouse/ClickHouse/pull/71632)([pufit](https://github.com/pufit))。 -* ソート順を壊す可能性のあるソートキー内カラムのマテリアライズは許可せず、代わりに例外をスローするようにしました。 [#71891](https://github.com/ClickHouse/ClickHouse/pull/71891) ([Peter Nguyen](https://github.com/petern48)). -* `EXPLAIN QUERY TREE` で秘密情報をマスクするようにしました。 [#72025](https://github.com/ClickHouse/ClickHouse/pull/72025) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* 「ネイティブ」リーダーで Parquet の整数論理型をサポートします。 [#72105](https://github.com/ClickHouse/ClickHouse/pull/72105) ([Arthur Passos](https://github.com/arthurpassos)). -* デフォルトユーザーにパスワードが設定されている場合、ブラウザーで対話的に認証情報の入力を求めるようにしました。以前のバージョンではサーバーは HTTP 403 を返していましたが、現在は HTTP 401 を返します。 [#72198](https://github.com/ClickHouse/ClickHouse/pull/72198) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* アクセス種別 `CREATE_USER`、`ALTER_USER`、`DROP_USER`、`CREATE_ROLE`、`ALTER_ROLE`、`DROP_ROLE` をグローバルスコープのものからパラメーター付きのものに変更しました。これにより、ユーザーはアクセス管理の権限をよりきめ細かく付与できるようになりました。 [#72246](https://github.com/ClickHouse/ClickHouse/pull/72246) ([pufit](https://github.com/pufit)). -* `system.mutations` に `latest_fail_error_code_name` カラムを追加します。このカラムは、スタックした mutation を監視する新しいメトリクスを導入し、クラウドで発生したエラーのグラフを作成するために必要です。また、必要に応じてノイズの少ない新しいアラートを追加するためにも使用します。 [#72398](https://github.com/ClickHouse/ClickHouse/pull/72398) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 -* `ATTACH PARTITION` クエリにおけるメモリ割り当て量を削減しました。 [#72583](https://github.com/ClickHouse/ClickHouse/pull/72583) ([Konstantin Morozov](https://github.com/k-morozov)). -* `max_bytes_before_external_sort` の制限を、クエリ全体のメモリ消費量に基づく上限となるよう変更しました(以前は 1 つのソートスレッドにおけるソートブロック内のバイト数を表していましたが、現在は `max_bytes_before_external_group_by` と同じ意味を持ち、すべてのスレッドを含めたクエリ全体のメモリ使用量に対する総上限となります)。また、ディスク上に書き出すブロックサイズを制御するための設定 `min_external_sort_block_bytes` を追加しました。 [#72598](https://github.com/ClickHouse/ClickHouse/pull/72598) ([Azat Khuzhin](https://github.com/azat)). -* トレースコレクタによるメモリ制限を無視するようにしました。 [#72606](https://github.com/ClickHouse/ClickHouse/pull/72606) ([Azat Khuzhin](https://github.com/azat)). -* サーバー設定 `dictionaries_lazy_load` と `wait_dictionaries_load_at_startup` を `system.server_settings` に追加しました。 [#72664](https://github.com/ClickHouse/ClickHouse/pull/72664) ([Christoph Wurm](https://github.com/cwurm))。 -* `BACKUP`/`RESTORE` クエリで指定可能な設定の一覧に `max_backup_bandwidth` を追加しました。 [#72665](https://github.com/ClickHouse/ClickHouse/pull/72665) ([Christoph Wurm](https://github.com/cwurm)). -* 複製クラスタで生成されるログ量を最小限に抑えるために、ReplicatedMergeTree エンジンで出現する複製パーツに関するログレベルを引き下げました。 [#72876](https://github.com/ClickHouse/ClickHouse/pull/72876) ([mor-akamai](https://github.com/morkalfon)). -* 論理和条件における共通部分式の抽出を改善しました。すべての項に共通部分式が存在しない場合でも、結果のフィルター条件を簡略化できるようにしました。[#71537](https://github.com/ClickHouse/ClickHouse/issues/71537) の続きです。[#73271](https://github.com/ClickHouse/ClickHouse/pull/73271)([Dmitry Novik](https://github.com/novikd))。 -* `S3Queue`/`AzureQueue` ストレージで、作成時に設定を指定していなかったテーブルにも後から設定を追加できるようにしました。 [#73283](https://github.com/ClickHouse/ClickHouse/pull/73283) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 設定項目 `least_greatest_legacy_null_behavior`(デフォルト: `false`)を導入しました。この設定は、`least` および `greatest` 関数が `NULL` 引数を取った場合に無条件に `NULL` を返して処理するか(`true` の場合)、あるいは `NULL` 引数を無視するか(`false` の場合)を制御します。 [#73344](https://github.com/ClickHouse/ClickHouse/pull/73344) ([Robert Schulze](https://github.com/rschu1ze)). -* ObjectStorageQueueMetadata のクリーンアップスレッドで Keeper の multi リクエストを使用するようになりました。 [#73357](https://github.com/ClickHouse/ClickHouse/pull/73357) ([Antonio Andelic](https://github.com/antonio2368)). -* ClickHouse が cgroup 配下で実行されている場合でも、システム負荷、プロセススケジューリング、メモリなどに関連するシステム全体の非同期メトリクスは引き続き収集されます。ClickHouse がホスト上で高いリソースを消費している唯一のプロセスである場合、これらは有用なシグナルとなり得ます。[#73369](https://github.com/ClickHouse/ClickHouse/pull/73369)([Nikita Taranov](https://github.com/nickitat))。 -* In storage `S3Queue` で、24.6 以前に作成された古い順序付きテーブルを、バケット構造を用いる新しい形式へ移行できるようにしました。 [#73467](https://github.com/ClickHouse/ClickHouse/pull/73467) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 既存の `system.s3queue` と同様に `system.azure_queue` を追加しました。 [#73477](https://github.com/ClickHouse/ClickHouse/pull/73477) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 関数 `parseDateTime64`(およびその派生関数)が、1970年以前/2106年以降の日付の入力値に対して正しい結果を返すようになりました。例: `SELECT parseDateTime64InJodaSyntax('2200-01-01 00:00:00.000', 'yyyy-MM-dd HH:mm:ss.SSS')`。 [#73594](https://github.com/ClickHouse/ClickHouse/pull/73594) ([zhanglistar](https://github.com/zhanglistar))。 -* ユーザーから報告されていた `clickhouse-disks` の使い勝手に関するいくつかの問題に対応しました。 [#67136](https://github.com/ClickHouse/ClickHouse/issues/67136) をクローズします。 [#73616](https://github.com/ClickHouse/ClickHouse/pull/73616) ([Daniil Ivanik](https://github.com/divanik))。 -* Storage `S3(Azure)Queue` のコミット設定を変更できるようにしました(コミット設定は `max_processed_files_before_commit`、`max_processed_rows_before_commit`、`max_processed_bytes_before_commit`、`max_processing_time_sec_before_commit` です)。 [#73635](https://github.com/ClickHouse/ClickHouse/pull/73635) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* ストレージ S3(Azure)Queue で、複数ソース間の進行状況を集計し、コミット上限設定と比較できるようにしました。 [#73641](https://github.com/ClickHouse/ClickHouse/pull/73641) ([Kseniia Sumarokova](https://github.com/kssenii)). -* コア設定を `BACKUP`/`RESTORE` クエリでサポートしました。 [#73650](https://github.com/ClickHouse/ClickHouse/pull/73650) ([Vitaly Baranov](https://github.com/vitlibar)). -* Parquet 出力時に `output_format_compression_level` を考慮するようにしました。 [#73651](https://github.com/ClickHouse/ClickHouse/pull/73651) ([Arthur Passos](https://github.com/arthurpassos)). -* Apache Arrow の `fixed_size_list` を未サポート型として扱うのではなく、`Array` 型として読み込むようにしました。 [#73654](https://github.com/ClickHouse/ClickHouse/pull/73654) ([Julian Meyers](https://github.com/J-Meyers)). -* 2 つのバックアップエンジン `Memory`(現在のユーザーセッション内にバックアップを保持)と、テスト用途の `Null`(どこにもバックアップを保持しない)を追加しました。 [#73690](https://github.com/ClickHouse/ClickHouse/pull/73690) ([Vitaly Baranov](https://github.com/vitlibar))。 -* `concurrent_threads_soft_limit_num` と `concurrent_threads_soft_limit_num_ratio_to_cores` は、サーバーの再起動なしに変更できるようになりました。[#73713](https://github.com/ClickHouse/ClickHouse/pull/73713) ([Sergei Trifonov](https://github.com/serxa)). -* `formatReadable` 関数に拡張数値型(`Decimal` およびビッグ整数)への対応を追加しました。[#73765](https://github.com/ClickHouse/ClickHouse/pull/73765)([Raúl Marín](https://github.com/Algunenano))。 -* Postgres ワイヤプロトコルとの互換性を確保するため、TLS をサポートしました。 [#73812](https://github.com/ClickHouse/ClickHouse/pull/73812) ([scanhex12](https://github.com/scanhex12)). -* 関数 `isIPv4String` は、正しい IPv4 アドレスの後にゼロバイトが続いている場合に true を返していましたが、このケースでは false を返すべきでした。[#65387](https://github.com/ClickHouse/ClickHouse/issues/65387) の継続対応。[#73946](https://github.com/ClickHouse/ClickHouse/pull/73946)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* MySQL ワイヤプロトコルにおけるエラーコードを MySQL と互換性を持つようにしました。[#56831](https://github.com/ClickHouse/ClickHouse/issues/56831) の継続対応です。[#50957](https://github.com/ClickHouse/ClickHouse/issues/50957) をクローズします。[#73948](https://github.com/ClickHouse/ClickHouse/pull/73948)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* `IN` や `NOT IN` などの演算子で使用される列挙型リテラルを、その列挙型に対して検証し、リテラルが有効な列挙値でない場合に例外をスローする設定 `validate_enum_literals_in_opearators` を追加しました。 [#73985](https://github.com/ClickHouse/ClickHouse/pull/73985) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Storage `S3(Azure)Queue` で、コミット設定で定義される 1 つのバッチ内のすべてのファイルを、1 回の Keeper トランザクションでコミットするようにしました。 [#73991](https://github.com/ClickHouse/ClickHouse/pull/73991) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* 実行可能な UDF と辞書に対するヘッダー自動検出を無効にしました(`Function 'X': wrong result, expected Y row(s), actual Y-1` という誤った結果につながる可能性があったため)。 [#73992](https://github.com/ClickHouse/ClickHouse/pull/73992) ([Azat Khuzhin](https://github.com/azat)). -* `EXPLAIN PLAN` に `distributed` オプションを追加しました。これにより、`EXPLAIN distributed=1 ...` を実行すると、`ReadFromParallelRemote*` ステップにリモート側の実行計画が追加されるようになりました。 [#73994](https://github.com/ClickHouse/ClickHouse/pull/73994) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Dynamic 引数を取る not/xor 演算子で正しい戻り値型を使用するようにしました。 [#74013](https://github.com/ClickHouse/ClickHouse/pull/74013) ([Pavel Kruglov](https://github.com/Avogar)). -* テーブル作成後でも `add_implicit_sign_column_constraint_for_collapsing_engine` を変更できるようにしました。 [#74014](https://github.com/ClickHouse/ClickHouse/pull/74014) ([Christoph Wurm](https://github.com/cwurm)). -* マテリアライズドビューの SELECT クエリでサブカラムをサポートできるようになりました。 [#74030](https://github.com/ClickHouse/ClickHouse/pull/74030) ([Pavel Kruglov](https://github.com/Avogar)). -* `clickhouse-client` でカスタムプロンプトを設定する簡単な方法が 3 つあります。1. コマンドラインパラメータ `--prompt` を使う方法、2. 設定ファイル内で `[...]` 設定を使う方法、そして 3. 同じく設定ファイル内の接続ごとの設定 `[...]` を使う方法です。[#74168](https://github.com/ClickHouse/ClickHouse/pull/74168)([Christoph Wurm](https://github.com/cwurm))。 -* ClickHouse Client は、ポート 9440 への接続に基づいて安全な接続かどうかを自動判別するようになりました。 [#74212](https://github.com/ClickHouse/ClickHouse/pull/74212) ([Christoph Wurm](https://github.com/cwurm)). -* http_handlers でのユーザー認証を、ユーザー名だけで行えるようにしました(以前はパスワードの入力も必要でした)。 [#74221](https://github.com/ClickHouse/ClickHouse/pull/74221) ([Azat Khuzhin](https://github.com/azat)). -* 代替クエリ言語である PRQL と KQL のサポートは、実験的機能として位置付けられました。これらの言語を使用するには、設定 `allow_experimental_prql_dialect = 1` および `allow_experimental_kusto_dialect = 1` を指定します。[#74224](https://github.com/ClickHouse/ClickHouse/pull/74224) ([Robert Schulze](https://github.com/rschu1ze)). -* より多くの集約関数でデフォルトの Enum 型を返せるようにしました。 [#74272](https://github.com/ClickHouse/ClickHouse/pull/74272) ([Raúl Marín](https://github.com/Algunenano)). -* `OPTIMIZE TABLE` では、既存のキーワード `FINAL` に代わるものとして、キーワード `FORCE` を指定できるようになりました。 [#74342](https://github.com/ClickHouse/ClickHouse/pull/74342) ([Robert Schulze](https://github.com/rschu1ze)). -* サーバーのシャットダウンに時間がかかりすぎる場合にアラートをトリガーするために必要な `IsServerShuttingDown` メトリクスを追加しました。[#74429](https://github.com/ClickHouse/ClickHouse/pull/74429) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* EXPLAIN の結果に Iceberg テーブル名を含めるようにしました。 [#74485](https://github.com/ClickHouse/ClickHouse/pull/74485) ([alekseev-maksim](https://github.com/alekseev-maksim)). -* 旧アナライザーで RECURSIVE CTE を使用した際のエラーメッセージを改善しました。 [#74523](https://github.com/ClickHouse/ClickHouse/pull/74523) ([Raúl Marín](https://github.com/Algunenano)). -* 拡張されたエラーメッセージを `system.errors` に表示できるようにしました。 [#74574](https://github.com/ClickHouse/ClickHouse/pull/74574) ([Vitaly Baranov](https://github.com/vitlibar)). -* clickhouse-keeper とのクライアント通信でパスワード認証を使用できるようにしました。この機能は、サーバーおよびクライアントに対して適切な SSL 設定を行っている場合にはそれほど有用ではありませんが、一部のケースでは依然として有用です。パスワードは 16 文字を超えることはできません。Keeper Auth モデルとは関連していません。 [#74673](https://github.com/ClickHouse/ClickHouse/pull/74673) ([alesapin](https://github.com/alesapin)). -* Config Reloader 用のエラーコードを追加しました。 [#74746](https://github.com/ClickHouse/ClickHouse/pull/74746) ([Garrett Thomas](https://github.com/garrettthomaskth)). -* MySQL および PostgreSQL のテーブル関数とエンジンにおいて IPv6 アドレスのサポートを追加しました。 [#74796](https://github.com/ClickHouse/ClickHouse/pull/74796) ([Mikhail Koviazin](https://github.com/mkmkme)). -* `divideDecimal` に対するショートサーキット最適化を実装しました。[#74280](https://github.com/ClickHouse/ClickHouse/issues/74280) を修正しました。[#74843](https://github.com/ClickHouse/ClickHouse/pull/74843)([Kevin Mingtarja](https://github.com/kevinmingtarja))。 -* スタートアップスクリプト内でユーザーを指定できるようになりました。 [#74894](https://github.com/ClickHouse/ClickHouse/pull/74894) ([pufit](https://github.com/pufit)). -* Azure SAS トークンのサポートを追加しました。 [#72959](https://github.com/ClickHouse/ClickHouse/pull/72959) ([Azat Khuzhin](https://github.com/azat)). - -#### バグ修正(公式安定版リリースでユーザーに影響する誤動作) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* Parquet の圧縮レベルは、圧縮コーデックがそれをサポートしている場合にのみ設定されるようにしました。 [#74659](https://github.com/ClickHouse/ClickHouse/pull/74659) ([Arthur Passos](https://github.com/arthurpassos)). -* モディファイア付きの照合ロケールを使用するとエラーが発生するリグレッションを修正しました。例えば、`SELECT arrayJoin(['kk 50', 'KK 01', ' KK 2', ' KK 3', 'kk 1', 'x9y99', 'x9y100']) item ORDER BY item ASC COLLATE 'tr-u-kn-true-ka-shifted` は現在では正常に動作します。[#73544](https://github.com/ClickHouse/ClickHouse/pull/73544)([Robert Schulze](https://github.com/rschu1ze))。 -* SEQUENTIAL ノードを keeper-client で作成できなかった問題を修正。 [#64177](https://github.com/ClickHouse/ClickHouse/pull/64177) ([Duc Canh Le](https://github.com/canhld94)). -* position 関数での文字数カウントの不具合を修正しました。 [#71003](https://github.com/ClickHouse/ClickHouse/pull/71003) ([思维](https://github.com/heymind)). -* 部分的な権限の取り消しが正しく処理されていなかったため、アクセスエンティティに対する `RESTORE` 操作に本来より多くの権限が必要とされていました。この PR でこの問題を修正しました。Closes [#71853](https://github.com/ClickHouse/ClickHouse/issues/71853). [#71958](https://github.com/ClickHouse/ClickHouse/pull/71958) ([pufit](https://github.com/pufit)). -* `ALTER TABLE REPLACE/MOVE PARTITION FROM/TO TABLE` 実行後に発生していた一時停止を回避し、バックグラウンドタスクのスケジューリング用に正しい設定を取得するようにしました。 [#72024](https://github.com/ClickHouse/ClickHouse/pull/72024) ([Aleksei Filatov](https://github.com/aalexfvk)). -* 一部の入力および出力フォーマット(Parquet や Arrow など)における空のタプルの扱いを修正しました。 [#72616](https://github.com/ClickHouse/ClickHouse/pull/72616) ([Michael Kolupaev](https://github.com/al13n321))。 -* ワイルドカードを使用したデータベースやテーブルに対するカラムレベルの SELECT/INSERT 権限を付与する GRANT ステートメントは、エラーを返すようになりました。 [#72646](https://github.com/ClickHouse/ClickHouse/pull/72646) ([Johann Gan](https://github.com/johanngan)). -* 対象のアクセスエンティティに暗黙的な権限付与が存在するためにユーザーが `REVOKE ALL ON *.*` を実行できない状況を修正しました。 [#72872](https://github.com/ClickHouse/ClickHouse/pull/72872) ([pufit](https://github.com/pufit)). -* formatDateTime スカラ関数で正のタイムゾーンの書式設定を修正。 [#73091](https://github.com/ClickHouse/ClickHouse/pull/73091) ([ollidraese](https://github.com/ollidraese))。 -* PROXYv1 経由で接続が行われ、`auth_use_forwarded_address` が設定されている場合に、送信元ポートが正しく反映されるよう修正しました。以前はプロキシ側のポートが誤って使用されていました。`currentQueryID()` 関数を追加しました。 [#73095](https://github.com/ClickHouse/ClickHouse/pull/73095) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 -* TCPHandler でフォーマット設定が NativeWriter に伝播され、`output_format_native_write_json_as_string` のような設定が正しく適用されるようにしました。 [#73179](https://github.com/ClickHouse/ClickHouse/pull/73179) ([Pavel Kruglov](https://github.com/Avogar)). -* StorageObjectStorageQueue で発生するクラッシュを修正。 [#73274](https://github.com/ClickHouse/ClickHouse/pull/73274) ([Kseniia Sumarokova](https://github.com/kssenii)). -* サーバーシャットダウン時にまれに発生するリフレッシュ可能なマテリアライズドビューのクラッシュを修正。 [#73323](https://github.com/ClickHouse/ClickHouse/pull/73323) ([Michael Kolupaev](https://github.com/al13n321)). -* 関数 `formatDateTime` のプレースホルダ `%f` は、常に 6 桁のサブ秒精度の数字を生成するようになりました。これにより、MySQL の `DATE_FORMAT` 関数との動作互換性が確保されます。以前の動作は、設定 `formatdatetime_f_prints_scale_number_of_digits = 1` を使用することで復元できます。 [#73324](https://github.com/ClickHouse/ClickHouse/pull/73324) ([ollidraese](https://github.com/ollidraese)). -* `s3` ストレージおよびテーブル関数からの読み取り時の `_etag` 列によるフィルタリングを修正しました。 [#73353](https://github.com/ClickHouse/ClickHouse/pull/73353) ([Anton Popov](https://github.com/CurtizJ)). -* 旧アナライザーを使用している場合に、`JOIN ON` 式で `IN (subquery)` を使用すると発生する `Not-ready Set is passed as the second argument for function 'in'` エラーを修正。 [#73382](https://github.com/ClickHouse/ClickHouse/pull/73382) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Dynamic および JSON カラムに対するスカッシュ処理の準備を修正しました。以前は、一部のケースで、型/パス数の制限に達していない場合でも、shared variant/shared data に新しい型が挿入されてしまうことがありました。 [#73388](https://github.com/ClickHouse/ClickHouse/pull/73388) ([Pavel Kruglov](https://github.com/Avogar)). -* 型のバイナリデコード時にサイズ値の破損を検査し、過大なメモリ割り当てを避けるようにしました。 [#73390](https://github.com/ClickHouse/ClickHouse/pull/73390) ([Pavel Kruglov](https://github.com/Avogar)). -* 並列レプリカを有効にした単一レプリカクラスタからの読み取り時に発生する論理エラーを修正しました。 [#73403](https://github.com/ClickHouse/ClickHouse/pull/73403) ([Michael Kolupaev](https://github.com/al13n321)). -* ZooKeeper および旧バージョンの Keeper 使用時の ObjectStorageQueue を修正。 [#73420](https://github.com/ClickHouse/ClickHouse/pull/73420) ([Antonio Andelic](https://github.com/antonio2368)). -* デフォルトで Hive パーティション化を有効にするために必要な修正を実装しました。 [#73479](https://github.com/ClickHouse/ClickHouse/pull/73479) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* ベクトル類似インデックスの作成時に発生するデータレースを修正。 [#73517](https://github.com/ClickHouse/ClickHouse/pull/73517) ([Antonio Andelic](https://github.com/antonio2368)). -* 辞書のデータソースに誤ったデータを含む関数がある場合に発生するセグメンテーションフォルトを修正しました。 [#73535](https://github.com/ClickHouse/ClickHouse/pull/73535) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* ストレージ S3(Azure)Queue における挿入失敗時の再試行処理を修正。[#70951](https://github.com/ClickHouse/ClickHouse/issues/70951) をクローズ。[#73546](https://github.com/ClickHouse/ClickHouse/pull/73546) ([Kseniia Sumarokova](https://github.com/kssenii)). -* `LowCardinality` 要素を含むタプルに対して設定 `optimize_functions_to_subcolumns` を有効化している場合に、特定の状況で発生していた関数 `tupleElement` のエラーを修正しました。 [#73548](https://github.com/ClickHouse/ClickHouse/pull/73548) ([Anton Popov](https://github.com/CurtizJ)). -* enum の glob の後に range one が続く場合の構文解析を修正しました。[#73473](https://github.com/ClickHouse/ClickHouse/issues/73473) を修正。[#73569](https://github.com/ClickHouse/ClickHouse/pull/73569)([Konstantin Bogdanov](https://github.com/thevar1able))。 -* 非レプリケート MergeTree テーブルに対する固定設定 `parallel_replicas_for_non_replicated_merge_tree` が、非レプリケートテーブルに対するサブクエリ内で無視されていた問題を修正しました。 [#73584](https://github.com/ClickHouse/ClickHouse/pull/73584) ([Igor Nikonov](https://github.com/devcrafter)). -* タスクをスケジュールできない場合にスローされる `std::logical_error` の修正。ストレステスト中に発見。[#73629](https://github.com/ClickHouse/ClickHouse/pull/73629)([Alexander Gololobov](https://github.com/davenger))。 -* 分散クエリで誤った処理ステージが選択されて論理エラーが発生するのを防ぐため、`EXPLAIN SYNTAX` ではクエリを解釈しないようにしました。[#65205](https://github.com/ClickHouse/ClickHouse/issues/65205) を修正。[#73634](https://github.com/ClickHouse/ClickHouse/pull/73634) ([Dmitry Novik](https://github.com/novikd))。 -* Dynamic カラムにおいて発生しうるデータ不整合を修正しました。`Nested columns sizes are inconsistent with local_discriminators column size` という論理エラーが発生する可能性のある問題を修正しました。 [#73644](https://github.com/ClickHouse/ClickHouse/pull/73644) ([Pavel Kruglov](https://github.com/Avogar)). -* `FINAL` および `SAMPLE` を使用するクエリで発生していた `NOT_FOUND_COLUMN_IN_BLOCK` エラーを修正しました。`CollapsingMergeTree` に対する `FINAL` 付きの SELECT クエリで誤った結果が返される問題を修正し、`FINAL` に対する最適化を有効化しました。 [#73682](https://github.com/ClickHouse/ClickHouse/pull/73682) ([Anton Popov](https://github.com/CurtizJ)). -* LIMIT BY COLUMNS で発生するクラッシュを修正。 [#73686](https://github.com/ClickHouse/ClickHouse/pull/73686) ([Raúl Marín](https://github.com/Algunenano))。 -* 通常のプロジェクションの使用が強制され、かつクエリが定義済みのプロジェクションと完全に同一であるにもかかわらず、そのプロジェクションが選択されずエラーが報告されてしまうバグを修正しました。 [#73700](https://github.com/ClickHouse/ClickHouse/pull/73700) ([Shichao Jin](https://github.com/jsc0218)). -* Dynamic/Object 構造体のデシリアライズ処理を修正しました。以前は CANNOT_READ_ALL_DATA 例外が発生する可能性がありました。 [#73767](https://github.com/ClickHouse/ClickHouse/pull/73767) ([Pavel Kruglov](https://github.com/Avogar)). -* バックアップからパーツを復元する際、`metadata_version.txt` をスキップするようにしました。 [#73768](https://github.com/ClickHouse/ClickHouse/pull/73768) ([Vitaly Baranov](https://github.com/vitlibar)). -* LIKE を使用した Enum への CAST 時に発生するセグメンテーションフォルトを修正。 [#73775](https://github.com/ClickHouse/ClickHouse/pull/73775) ([zhanglistar](https://github.com/zhanglistar)). -* ディスクとして機能しない S3 Express バケットの問題を修正。 [#73777](https://github.com/ClickHouse/ClickHouse/pull/73777) ([Sameer Tamsekar](https://github.com/stamsekar)). -* CollapsingMergeTree テーブルで、`sign` 列に無効な値を持つ行をマージできるようにしました。 [#73864](https://github.com/ClickHouse/ClickHouse/pull/73864) ([Christoph Wurm](https://github.com/cwurm)). -* オフラインのレプリカに対して DDL をクエリするとエラーが発生していた問題を修正。 [#73876](https://github.com/ClickHouse/ClickHouse/pull/73876) ([Tuan Pham Anh](https://github.com/tuanpach)). -* ネストされたタプルに明示的な名前('keys','values')が付いていない `Map` を作成できていたために、`map()` 型の比較がまれに失敗していた問題を修正しました。 [#73878](https://github.com/ClickHouse/ClickHouse/pull/73878) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* `GROUP BY ALL` 句の解決時にウィンドウ関数を無視するようにしました。 [#73501](https://github.com/ClickHouse/ClickHouse/issues/73501) の問題を修正。 [#73916](https://github.com/ClickHouse/ClickHouse/pull/73916)([Dmitry Novik](https://github.com/novikd))。 -* 暗黙的な権限を修正(以前はワイルドカードとして扱われていた)。 [#73932](https://github.com/ClickHouse/ClickHouse/pull/73932) ([Azat Khuzhin](https://github.com/azat)). -* ネストされた Map を作成する際の高いメモリ使用量を修正しました。 [#73982](https://github.com/ClickHouse/ClickHouse/pull/73982) ([Pavel Kruglov](https://github.com/Avogar)). -* 空キーを含むネストされた JSON の解析を修正。 [#73993](https://github.com/ClickHouse/ClickHouse/pull/73993) ([Pavel Kruglov](https://github.com/Avogar)). -* 修正: 別のエイリアスから参照され、かつ逆順で選択された場合に、そのエイリアスがプロジェクションに含まれないことがある問題を修正。 [#74033](https://github.com/ClickHouse/ClickHouse/pull/74033) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* plain_rewritable ディスク初期化中の Azure での object not found エラーを無視するようになりました。 [#74059](https://github.com/ClickHouse/ClickHouse/pull/74059) ([Julia Kartseva](https://github.com/jkartseva)). -* enum 型および空テーブルに対する `any` と `anyLast` の挙動を修正。 [#74061](https://github.com/ClickHouse/ClickHouse/pull/74061) ([Joanna Hulboj](https://github.com/jh0x)). -* ユーザーが Kafka テーブルエンジンでキーワード引数を指定した場合の不具合を修正します。 [#74064](https://github.com/ClickHouse/ClickHouse/pull/74064) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Storage `S3Queue` の設定で、接頭辞 "s3queue_" の有無を切り替える処理を修正しました。 [#74075](https://github.com/ClickHouse/ClickHouse/pull/74075) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 設定 `allow_push_predicate_ast_for_distributed_subqueries` を追加しました。これにより、analyzer を使用する分散クエリに対して AST ベースの述語プッシュダウンが有効になります。これは、クエリプランのシリアライズを伴う分散クエリがサポートされるまでの一時的なソリューションとして使用します。[#66878](https://github.com/ClickHouse/ClickHouse/issues/66878) [#69472](https://github.com/ClickHouse/ClickHouse/issues/69472) [#65638](https://github.com/ClickHouse/ClickHouse/issues/65638) [#68030](https://github.com/ClickHouse/ClickHouse/issues/68030) [#73718](https://github.com/ClickHouse/ClickHouse/issues/73718) をクローズします。[#74085](https://github.com/ClickHouse/ClickHouse/pull/74085) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* [#73095](https://github.com/ClickHouse/ClickHouse/issues/73095) 対応以降、`forwarded_for` フィールドにポートが含まれる場合があり、その結果、ポート付きホスト名を解決できなくなっていた問題を修正しました。 [#74116](https://github.com/ClickHouse/ClickHouse/pull/74116) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 -* `ALTER TABLE (DROP STATISTICS ...) (DROP STATISTICS ...)` の誤った書式を修正しました。 [#74126](https://github.com/ClickHouse/ClickHouse/pull/74126) ([Han Fei](https://github.com/hanfei1991)). -* Issue [#66112](https://github.com/ClickHouse/ClickHouse/issues/66112) の修正。[#74128](https://github.com/ClickHouse/ClickHouse/pull/74128)([Anton Ivashkin](https://github.com/ianton-ru))。 -* `CREATE TABLE` でテーブルエンジンとして `Loop` を使用することは、もはやできなくなりました。この組み合わせは以前、セグメンテーションフォルトを引き起こしていました。 [#74137](https://github.com/ClickHouse/ClickHouse/pull/74137) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* PostgreSQL および SQLite のテーブル関数における SQL インジェクションを防止するセキュリティ上の問題を修正。 [#74144](https://github.com/ClickHouse/ClickHouse/pull/74144) ([Pablo Marcos](https://github.com/pamarcos)). -* 圧縮された Memory エンジンのテーブルからサブカラムを読み取る際に発生していたクラッシュを修正しました。[#74009](https://github.com/ClickHouse/ClickHouse/issues/74009) を解決します。[#74161](https://github.com/ClickHouse/ClickHouse/pull/74161)([Nikita Taranov](https://github.com/nickitat))。 -* system.detached_tables に対するクエリで発生していた無限ループを修正しました。 [#74190](https://github.com/ClickHouse/ClickHouse/pull/74190) ([Konstantin Morozov](https://github.com/k-morozov)). -* ファイルを失敗としてマークする際の s3queue の論理エラーを修正しました。 [#74216](https://github.com/ClickHouse/ClickHouse/pull/74216) ([Kseniia Sumarokova](https://github.com/kssenii)). -* ベースバックアップからの `RESTORE` 時のネイティブコピー設定(`allow_s3_native_copy`/`allow_azure_native_copy`)を修正。 [#74286](https://github.com/ClickHouse/ClickHouse/pull/74286) ([Azat Khuzhin](https://github.com/azat)). -* データベース内のデタッチされたテーブル数が `max_block_size` の倍数である場合に発生していた問題を修正しました。 [#74289](https://github.com/ClickHouse/ClickHouse/pull/74289) ([Konstantin Morozov](https://github.com/k-morozov)). -* ソースと宛先の認証情報が異なる場合の ObjectStorage(S3)経由のコピー処理を修正。 [#74331](https://github.com/ClickHouse/ClickHouse/pull/74331) ([Azat Khuzhin](https://github.com/azat)). -* GCS 上のネイティブコピーで JSON API の Rewrite メソッド使用検出を修正しました。 [#74338](https://github.com/ClickHouse/ClickHouse/pull/74338) ([Azat Khuzhin](https://github.com/azat))。 -* `BackgroundMergesAndMutationsPoolSize` の誤った計算を修正しました(実際の値の 2 倍になっていました)。 [#74509](https://github.com/ClickHouse/ClickHouse/pull/74509) ([alesapin](https://github.com/alesapin)). -* Cluster Discovery を有効化した際に Keeper ウォッチがリークする不具合を修正。 [#74521](https://github.com/ClickHouse/ClickHouse/pull/74521) ([RinChanNOW](https://github.com/RinChanNOWWW)). -* UBSan により報告されたメモリアライメントの問題を修正 [#74512](https://github.com/ClickHouse/ClickHouse/issues/74512)。 [#74534](https://github.com/ClickHouse/ClickHouse/pull/74534)([Arthur Passos](https://github.com/arthurpassos))。 -* テーブル作成中に発生する KeeperMap の並列クリーンアップ処理を修正しました。 [#74568](https://github.com/ClickHouse/ClickHouse/pull/74568) ([Antonio Andelic](https://github.com/antonio2368))。 -* `EXCEPT` や `INTERSECT` が存在する場合でも、サブクエリ内の未使用の射影列を削除しないようにして、クエリ結果の正しさを保証します。[#73930](https://github.com/ClickHouse/ClickHouse/issues/73930) を修正。[#66465](https://github.com/ClickHouse/ClickHouse/issues/66465) を修正。[#74577](https://github.com/ClickHouse/ClickHouse/pull/74577)([Dmitry Novik](https://github.com/novikd))。 -* `Tuple` 列を含み、スパースシリアライゼーションが有効になっているテーブル間での `INSERT SELECT` クエリを修正しました。 [#74698](https://github.com/ClickHouse/ClickHouse/pull/74698) ([Anton Popov](https://github.com/CurtizJ)). -* 関数 `right` が、定数の負のオフセットを使用した場合に正しく動作しませんでした。 [#74701](https://github.com/ClickHouse/ClickHouse/pull/74701) ([Daniil Ivanik](https://github.com/divanik))。 -* クライアント側での不完全な伸長処理が原因で、gzip 圧縮データの挿入が失敗することがある問題を修正しました。 [#74707](https://github.com/ClickHouse/ClickHouse/pull/74707) ([siyuan](https://github.com/linkwk7)). -* ワイルドカードを含む権限付与に対して部分的な権限剥奪を行うと、想定以上の権限が削除されてしまう可能性がありました。この問題を修正しました [#74263](https://github.com/ClickHouse/ClickHouse/issues/74263)。 [#74751](https://github.com/ClickHouse/ClickHouse/pull/74751) ([pufit](https://github.com/pufit))。 -* Keeper の修正: ディスクからのログエントリ読み取り処理を修正。 [#74785](https://github.com/ClickHouse/ClickHouse/pull/74785) ([Antonio Andelic](https://github.com/antonio2368)). -* SYSTEM REFRESH/START/STOP VIEW に対する権限チェック処理を修正しました。これにより、特定のビューに対するクエリを実行する際に `*.*` への権限を持つ必要がなくなり、そのビューに対する権限だけがあればよくなりました。 [#74789](https://github.com/ClickHouse/ClickHouse/pull/74789) ([Alexander Tokmakov](https://github.com/tavplubix)). -* `hasColumnInTable` 関数はエイリアス列を考慮していません。エイリアス列にも対応するように修正しました。 [#74841](https://github.com/ClickHouse/ClickHouse/pull/74841) ([Bharat Nallan](https://github.com/bharatnc))。 -* Azure Blob Storage 上で空のカラムを含むテーブルのデータパーツのマージ中に発生する FILE_DOESNT_EXIST エラーを修正。 [#74892](https://github.com/ClickHouse/ClickHouse/pull/74892) ([Julia Kartseva](https://github.com/jkartseva)). -* 一時テーブル結合時のプロジェクション列名を修正し、[#68872](https://github.com/ClickHouse/ClickHouse/issues/68872) をクローズ。[#74897](https://github.com/ClickHouse/ClickHouse/pull/74897)([Vladimir Cherkasov](https://github.com/vdimir))。 - -#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement} - -* 汎用インストールスクリプトが、macOS 上でもインストールを案内するようになりました。 [#74339](https://github.com/ClickHouse/ClickHouse/pull/74339) ([Alexey Milovidov](https://github.com/alexey-milovidov)). \ No newline at end of file +:::note +2026年にはまだ新しいリリースはありません。 +2025年の変更履歴は [2025](/docs/whats-new/changelog/2025) を参照してください。 +::: \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-blog/current/profiling-clickhouse-with-llvm-xray.mdx b/i18n/ru/docusaurus-plugin-content-blog/current/profiling-clickhouse-with-llvm-xray.mdx index 023bc5c0b29..8e345772470 100644 --- a/i18n/ru/docusaurus-plugin-content-blog/current/profiling-clickhouse-with-llvm-xray.mdx +++ b/i18n/ru/docusaurus-plugin-content-blog/current/profiling-clickhouse-with-llvm-xray.mdx @@ -40,10 +40,10 @@ PROFILE](https://clickhouse.com/docs/sql-reference/statements/system#instrument- сколько времени занимает выполнение. ```sql -SYSTEM INSTRUMENT ADD `sleepForNanoseconds` PROFILE +SYSTEM INSTRUMENT ADD 'sleepForNanoseconds' PROFILE ``` -Затем оставляем его работать в течение требуемого периода профилирования, после чего останавливаем. +Затем оставляем его запущенным в течение нужного нам периода профилирования, после чего останавливаем. ```sql SYSTEM INSTRUMENT REMOVE ALL diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/_placeholders/changelog/_index.md b/i18n/ru/docusaurus-plugin-content-docs/current/_placeholders/changelog/_index.md deleted file mode 100644 index 4561c2d3068..00000000000 --- a/i18n/ru/docusaurus-plugin-content-docs/current/_placeholders/changelog/_index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -description: 'Список изменений за 2025 год' -note: 'Этот файл сгенерирован с помощью yarn build' -slug: /whats-new/changelog/ -sidebar_position: 2 -sidebar_label: '2025' -title: 'Список изменений 2025' -doc_type: 'changelog' ---- \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md b/i18n/ru/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md index a64d5cca679..3c76c031442 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md @@ -83,6 +83,21 @@ doc_type: 'reference' | Имя | По умолчанию | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- | +| [allow_experimental_replacing_merge_with_cleanup](/operations/settings/merge-tree-settings#allow_experimental_replacing_merge_with_cleanup) | `0` | +| [allow_experimental_reverse_key](/operations/settings/merge-tree-settings#allow_experimental_reverse_key) | `0` | +| [allow_remote_fs_zero_copy_replication](/operations/settings/merge-tree-settings#allow_remote_fs_zero_copy_replication) | `0` | +| [enable_replacing_merge_with_cleanup_for_min_age_to_force_merge](/operations/settings/merge-tree-settings#enable_replacing_merge_with_cleanup_for_min_age_to_force_merge) | `0` | +| [force_read_through_cache_for_merges](/operations/settings/merge-tree-settings#force_read_through_cache_for_merges) | `0` | +| [merge_selector_algorithm](/operations/settings/merge-tree-settings#merge_selector_algorithm) | `Simple` | +| [merge_selector_enable_heuristic_to_lower_max_parts_to_merge_at_once](/operations/settings/merge-tree-settings#merge_selector_enable_heuristic_to_lower_max_parts_to_merge_at_once) | `0` | +| [merge_selector_heuristic_to_lower_max_parts_to_merge_at_once_exponent](/operations/settings/merge-tree-settings#merge_selector_heuristic_to_lower_max_parts_to_merge_at_once_exponent) | `5` | +| [notify_newest_block_number](/operations/settings/merge-tree-settings#notify_newest_block_number) | `0` | +| [part_moves_between_shards_delay_seconds](/operations/settings/merge-tree-settings#part_moves_between_shards_delay_seconds) | `30` | +| [part_moves_between_shards_enable](/operations/settings/merge-tree-settings#part_moves_between_shards_enable) | `0` | +| [remote_fs_zero_copy_path_compatible_mode](/operations/settings/merge-tree-settings#remote_fs_zero_copy_path_compatible_mode) | `0` | +| [remote_fs_zero_copy_zookeeper_path](/operations/settings/merge-tree-settings#remote_fs_zero_copy_zookeeper_path) | `/clickhouse/zero_copy` | +| [remove_rolled_back_parts_immediately](/operations/settings/merge-tree-settings#remove_rolled_back_parts_immediately) | `1` | +| [shared_merge_tree_virtual_parts_discovery_batch](/operations/settings/merge-tree-settings#shared_merge_tree_virtual_parts_discovery_batch) | `1` | | [allow_experimental_kafka_offsets_storage_in_keeper](/operations/settings/settings#allow_experimental_kafka_offsets_storage_in_keeper) | `0` | | [allow_experimental_delta_lake_writes](/operations/settings/settings#allow_experimental_delta_lake_writes) | `0` | | [automatic_parallel_replicas_mode](/operations/settings/settings#automatic_parallel_replicas_mode) | `0` | @@ -143,21 +158,7 @@ doc_type: 'reference' | [promql_evaluation_time](/operations/settings/settings#promql_evaluation_time) | `auto` | | [allow_experimental_alias_table_engine](/operations/settings/settings#allow_experimental_alias_table_engine) | `0` | | [use_paimon_partition_pruning](/operations/settings/settings#use_paimon_partition_pruning) | `0` | +| [allow_experimental_object_storage_queue_hive_partitioning](/operations/settings/settings#allow_experimental_object_storage_queue_hive_partitioning) | `0` | | [query_plan_optimize_join_order_algorithm](/operations/settings/settings#query_plan_optimize_join_order_algorithm) | `greedy` | -| [allow_experimental_replacing_merge_with_cleanup](/operations/settings/merge-tree-settings#allow_experimental_replacing_merge_with_cleanup) | `0` | -| [allow_experimental_reverse_key](/operations/settings/merge-tree-settings#allow_experimental_reverse_key) | `0` | -| [allow_remote_fs_zero_copy_replication](/operations/settings/merge-tree-settings#allow_remote_fs_zero_copy_replication) | `0` | -| [enable_replacing_merge_with_cleanup_for_min_age_to_force_merge](/operations/settings/merge-tree-settings#enable_replacing_merge_with_cleanup_for_min_age_to_force_merge) | `0` | -| [force_read_through_cache_for_merges](/operations/settings/merge-tree-settings#force_read_through_cache_for_merges) | `0` | -| [merge_selector_algorithm](/operations/settings/merge-tree-settings#merge_selector_algorithm) | `Simple` | -| [merge_selector_enable_heuristic_to_lower_max_parts_to_merge_at_once](/operations/settings/merge-tree-settings#merge_selector_enable_heuristic_to_lower_max_parts_to_merge_at_once) | `0` | -| [merge_selector_heuristic_to_lower_max_parts_to_merge_at_once_exponent](/operations/settings/merge-tree-settings#merge_selector_heuristic_to_lower_max_parts_to_merge_at_once_exponent) | `5` | -| [notify_newest_block_number](/operations/settings/merge-tree-settings#notify_newest_block_number) | `0` | -| [part_moves_between_shards_delay_seconds](/operations/settings/merge-tree-settings#part_moves_between_shards_delay_seconds) | `30` | -| [part_moves_between_shards_enable](/operations/settings/merge-tree-settings#part_moves_between_shards_enable) | `0` | -| [remote_fs_zero_copy_path_compatible_mode](/operations/settings/merge-tree-settings#remote_fs_zero_copy_path_compatible_mode) | `0` | -| [remote_fs_zero_copy_zookeeper_path](/operations/settings/merge-tree-settings#remote_fs_zero_copy_zookeeper_path) | `/clickhouse/zero_copy` | -| [remove_rolled_back_parts_immediately](/operations/settings/merge-tree-settings#remove_rolled_back_parts_immediately) | `1` | -| [shared_merge_tree_virtual_parts_discovery_batch](/operations/settings/merge-tree-settings#shared_merge_tree_virtual_parts_discovery_batch) | `1` | {/*AUTOGENERATED_END*/ } diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/05_admin_features/api/postman.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/05_admin_features/api/postman.md index 690c1e42ccd..aecc9e70fca 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/05_admin_features/api/postman.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/05_admin_features/api/postman.md @@ -53,6 +53,8 @@ import postman17 from '@site/static/images/cloud/manage/postman/postman17.png'; * Введите адрес API: «https://api.clickhouse.cloud/v1» и нажмите Enter: + + * Выберите «Postman Collection», нажав кнопку «Import»: diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_status.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_status.md index 355f7b7434b..7ac1719e43d 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_status.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_status.md @@ -40,14 +40,25 @@ ClickHouse Cloud предлагает разные каналы релизов, \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/annindexes.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/annindexes.md index a867b4f5627..6fe18cc1c08 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/annindexes.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/annindexes.md @@ -9,6 +9,7 @@ doc_type: 'guide' import ExperimentalBadge from '@theme/badges/ExperimentalBadge'; + # Точный и приближённый векторный поиск {#exact-and-approximate-vector-search} Задача нахождения N ближайших точек в многомерном (векторном) пространстве для заданной точки известна как [поиск ближайших соседей](https://en.wikipedia.org/wiki/Nearest_neighbor_search) или, кратко, векторный поиск. @@ -30,15 +31,16 @@ LIMIT Точки в векторном пространстве хранятся в столбце `vectors` типа массива, например [Array(Float64)](../../../sql-reference/data-types/array.md), [Array(Float32)](../../../sql-reference/data-types/array.md) или [Array(BFloat16)](../../../sql-reference/data-types/array.md). Эталонный вектор — это константный массив, задаваемый в виде общего табличного выражения. -`<DistanceFunction>` вычисляет расстояние между эталонной точкой и всеми сохранёнными точками. +`` вычисляет расстояние между эталонной точкой и всеми сохранёнными точками. Для этого может быть использована любая из доступных [функций расстояния](/sql-reference/functions/distance-functions). -`<N>` задаёт, сколько соседей нужно вернуть. +`` задаёт, сколько соседей нужно вернуть. + ## Точный поиск по векторам {#exact-nearest-neighbor-search} Точный поиск по векторам можно выполнить с использованием приведённого выше запроса SELECT без изменений. Время выполнения таких запросов, как правило, пропорционально количеству сохранённых векторов и их размерности, то есть количеству элементов массива. -Кроме того, поскольку ClickHouse выполняет полный перебор всех векторов, время выполнения таких запросов также зависит от количества потоков, используемых запросом (см. настройку [max_threads](../../../operations/settings/settings.md#max_threads)). +Кроме того, поскольку ClickHouse выполняет полный перебор всех векторов, время выполнения таких запросов также зависит от количества потоков, используемых запросом (см. настройку [max_threads](../../../operations/settings/settings.md#max_threads)). ### Пример {#exact-nearest-neighbor-search-example} @@ -64,6 +66,7 @@ LIMIT 3; └────┴─────────┘ ``` + ## Приблизительный векторный поиск {#approximate-nearest-neighbor-search} ### Индексы сходства векторов {#vector-similarity-index} @@ -97,7 +100,7 @@ ALTER TABLE table ADD INDEX vectors TYPE vector_similarity(, ``` Индексы векторного сходства — это особый вид пропускающих индексов (см. [здесь](mergetree.md#table_engine-mergetree-data_skipping-indexes) и [здесь](../../../optimize/skipping-indexes)). -Соответственно, приведенный выше оператор `ALTER TABLE` приводит к тому, что индекс строится только для новых данных, которые будут вставляться в таблицу. +Соответственно, приведённый выше оператор `ALTER TABLE` приводит лишь к тому, что индекс будет строиться только для новых данных, вставляемых в таблицу. Чтобы построить индекс и для уже существующих данных, его необходимо материализовать: ```sql @@ -143,7 +146,8 @@ ORDER BY [...] Значения по умолчанию всех параметров, специфичных для HNSW, достаточно хорошо подходят для большинства сценариев использования. Поэтому мы не рекомендуем изменять эти параметры. -Дополнительно действуют следующие ограничения: +Также действуют дополнительные ограничения: + * Индексы векторного сходства могут быть построены только по столбцам типов [Array(Float32)](../../../sql-reference/data-types/array.md), [Array(Float64)](../../../sql-reference/data-types/array.md) или [Array(BFloat16)](../../../sql-reference/data-types/array.md). Массивы допускающих `NULL` и чисел с плавающей запятой с низкой кардинальностью, такие как `Array(Nullable(Float32))` и `Array(LowCardinality(Float32))`, не поддерживаются. * Индексы векторного сходства должны строиться по отдельным столбцам. @@ -160,16 +164,16 @@ ORDER BY [...] Потребление хранилища векторным столбцом в таблице (без сжатия): ```text -Потребление хранилища = Количество векторов × Размерность × Размер типа данных столбца +Storage consumption = Number of vectors * Dimension * Size of column data type ``` Пример для [датасета DBpedia](https://huggingface.co/datasets/KShivendu/dbpedia-entities-openai-1M): ```text -Потребление хранилища = 1 миллион * 1536 * 4 (для Float32) = 6,1 ГБ +Storage consumption = 1 million * 1536 * 4 (for Float32) = 6.1 GB ``` -Индекс сходства векторов должен быть полностью загружен с диска в основную память для выполнения поиска. +Индекс векторного сходства должен быть полностью загружен с диска в оперативную память для выполнения поиска. Аналогично, векторный индекс также полностью строится в памяти, а затем сохраняется на диск. Объём памяти, необходимый для загрузки векторного индекса: @@ -181,7 +185,7 @@ Memory for in-memory graph (mg) = Number of vectors * hnsw_max_connections_per_l Memory consumption: mv + mg ``` -Пример для [набора данных DBpedia](https://huggingface.co/datasets/KShivendu/dbpedia-entities-openai-1M): +Пример для [датасета DBpedia](https://huggingface.co/datasets/KShivendu/dbpedia-entities-openai-1M): ```text Memory for vectors in the index (mv) = 1 million * 1536 * 2 (for BFloat16) = 3072 MB @@ -190,12 +194,13 @@ Memory for in-memory graph (mg) = 1 million * 64 * 2 * 4 = 512 MB Memory consumption = 3072 + 512 = 3584 MB ``` -Приведенная выше формула не учитывает дополнительную память, необходимую индексам векторного сходства для выделения структур данных, используемых во время выполнения, таких как заранее выделенные буферы и кэши. +Приведённые выше формулы не учитывают дополнительный объём памяти, необходимый индексам векторного сходства для размещения структур данных времени выполнения, таких как заранее выделенные буферы и кэши. + #### Использование индекса векторного сходства {#using-a-vector-similarity-index} :::note -Чтобы использовать индексы векторного сходства, настройка [compatibility](../../../operations/settings/settings.md) должна быть равна `''` (значение по умолчанию) или `'25.1'` либо новее. +Чтобы использовать индексы векторного сходства, настройка [compatibility](../../../operations/settings/settings.md) должна иметь значение `''` (значение по умолчанию) или `'25.1'` или новее. ::: Индексы векторного сходства поддерживают запросы SELECT следующего вида: @@ -209,12 +214,12 @@ ORDER BY (vectors, reference_vector) LIMIT ``` -Оптимизатор запросов ClickHouse пытается сопоставить запрос с приведённым выше шаблоном и использовать доступные индексы векторного сходства. +Оптимизатор запросов ClickHouse пытается сопоставить приведённый выше шаблон запроса и использовать доступные индексы векторного сходства. Запрос может использовать индекс векторного сходства только в том случае, если функция расстояния в запросе SELECT совпадает с функцией расстояния в определении индекса. -Продвинутые пользователи могут задать собственное значение настройки [hnsw_candidate_list_size_for_search](../../../operations/settings/settings.md#hnsw_candidate_list_size_for_search) (также известной как гиперпараметр HNSW «ef_search»), чтобы настраивать размер списка кандидатов при выполнении поиска (например, `SELECT [...] SETTINGS hnsw_candidate_list_size_for_search = `). -Значение настройки по умолчанию, равное 256, хорошо работает в большинстве сценариев использования. -Более высокие значения настройки обеспечивают лучшую точность ценой более низкой производительности. +Продвинутые пользователи могут задать пользовательское значение настройки [hnsw_candidate_list_size_for_search](../../../operations/settings/settings.md#hnsw_candidate_list_size_for_search) (также известной как HNSW-гиперпараметр «ef_search»), чтобы настроить размер списка кандидатов при поиске (например, `SELECT [...] SETTINGS hnsw_candidate_list_size_for_search = <value>`). +Значение настройки по умолчанию — 256, и оно хорошо работает в большинстве случаев использования. +Более высокие значения настройки дают более высокую точность ценой снижения производительности. Если запрос может использовать индекс векторного сходства, ClickHouse проверяет, что значение LIMIT ``, указанное в запросах SELECT, находится в разумных пределах. Более точно, будет возвращена ошибка, если `` больше значения настройки [max_limit_for_vector_search_queries](../../../operations/settings/settings.md#max_limit_for_vector_search_queries), по умолчанию равного 100. @@ -278,15 +283,16 @@ ClickHouse будет применять эти условия фильтрац У стратегий разные компромиссы: -* У постфильтрации есть типичная проблема: она может вернуть меньше строк, чем запрошено в предложении `LIMIT `. Такая ситуация возникает, когда одна или несколько строк результата, возвращённых индексом векторного сходства, не удовлетворяют дополнительным фильтрам. -* Префильтрация в целом остаётся нерешённой задачей. Некоторые специализированные векторные базы данных предоставляют алгоритмы префильтрации, но большинство реляционных баз данных (включая ClickHouse) будут переходить к точному поиску соседей, т.е. к полному перебору без индекса. + +* У постфильтрации есть общая проблема: она может вернуть меньше строк, чем было запрошено в предложении `LIMIT `. Такая ситуация возникает, когда одна или несколько строк результата, возвращённых индексом векторного сходства, не удовлетворяют дополнительным фильтрам. +* Префильтрация в целом остаётся нерешённой задачей. Некоторые специализированные векторные базы данных предоставляют алгоритмы префильтрации, но большинство реляционных СУБД (включая ClickHouse) будут откатываться к точному поиску ближайших соседей, то есть к переборному (brute-force) сканированию без индекса. Используемая стратегия зависит от условия фильтрации. *Дополнительные фильтры являются частью ключа партиционирования* -Если дополнительное условие фильтрации является частью ключа партиционирования, то ClickHouse применит отсечение партиций. -В качестве примера, таблица разбита на диапазонные партиции по столбцу `year`, и выполняется следующий запрос: +Если дополнительное условие фильтрации является частью ключа партиционирования, ClickHouse применит отсечение партиций (partition pruning). +В качестве примера рассмотрим таблицу, партиционированную по диапазонам по столбцу `year`, и следующий запрос: ```sql WITH [0., 2.] AS reference_vec @@ -297,11 +303,11 @@ ORDER BY L2Distance(vec, reference_vec) ASC LIMIT 3; ``` -ClickHouse отбросит все партиции, кроме партиции за 2025 год. +ClickHouse отсечёт все партиции, кроме партиции за 2025 год. -*Дополнительные фильтры, которые не могут быть выполнены по индексам* +*Дополнительные фильтры не могут быть оценены с использованием индексов* -Если дополнительные условия фильтрации не могут быть выполнены по индексам (индекс по первичному ключу, пропускающий индекс), ClickHouse применит последующую фильтрацию. +Если дополнительные условия фильтрации не могут быть оценены с использованием индексов (индекс первичного ключа, skipping index), ClickHouse выполнит постфильтрацию. *Дополнительные фильтры могут оцениваться с использованием индекса первичного ключа* @@ -353,6 +359,7 @@ ClickHouse извлечёт 3,0 x 10 = 30 ближайших соседей из **Пересчёт оценок (rescoring)** + Skip-индексы в ClickHouse обычно фильтруют данные на уровне гранул, то есть запрос к skip-индексу (внутренне) возвращает список потенциально подходящих гранул, что сокращает объём читаемых данных при последующем сканировании. Это хорошо работает для skip-индексов в целом, но в случае индексов векторного сходства создаётся «несоответствие гранулярности». Подробнее: индекс векторного сходства определяет номера строк N наиболее похожих векторов для заданного опорного вектора, но затем ему нужно сопоставить эти номера строк с номерами гранул. @@ -396,9 +403,10 @@ Query id: a2a9d0c8-a525-45c1-96ca-c5a11fa66f47 ``` :::note -Запрос, выполняемый без повторной оценки (`vector_search_with_rescoring = 0`) и с включёнными параллельными репликами, может всё равно перейти к повторной оценке результатов. +Запрос, выполняемый без пересчёта оценок (`vector_search_with_rescoring = 0`) и с включёнными параллельными репликами, может всё же выполнить пересчёт оценок. ::: + #### Оптимизация производительности {#performance-tuning} **Настройка сжатия** @@ -436,19 +444,21 @@ SELECT-запросы к таким частям будут выполнять **Настройка использования индексов** -Запросы SELECT должны загружать индексы векторного сходства в оперативную память, чтобы использовать их. -Чтобы один и тот же индекс векторного сходства не загружался в оперативную память многократно, ClickHouse предоставляет специализированный кэш в оперативной памяти для таких индексов. -Чем больше этот кэш, тем меньше будет лишних загрузок. -Максимальный размер кэша можно настроить с помощью серверной настройки [vector_similarity_index_cache_size](../../../operations/server-configuration-parameters/settings.md#vector_similarity_index_cache_size). -По умолчанию кэш может увеличиваться до 5 ГБ. +Для использования индексов векторного сходства SELECT-запросам необходимо загрузить их в оперативную память. +Чтобы один и тот же индекс векторного сходства не загружался в оперативную память многократно, ClickHouse предоставляет специальный кэш в оперативной памяти для таких индексов. +Чем больше этот кэш, тем реже будут происходить избыточные загрузки. +Максимальный размер кэша настраивается с помощью серверного параметра [vector_similarity_index_cache_size](../../../operations/server-configuration-parameters/settings.md#vector_similarity_index_cache_size). +По умолчанию кэш может вырастать до 5 ГБ. :::note -Кэш индекса векторного сходства хранит гранулы векторного индекса. +Кэш индексов векторного сходства хранит гранулы векторных индексов. Если отдельные гранулы векторного индекса больше размера кэша, они не будут кэшироваться. -Поэтому необходимо вычислить размер векторного индекса (на основе формулы из раздела «Оценка потребления хранилища и памяти» или [system.data_skipping_indices](../../../operations/system-tables/data_skipping_indices)) и задать размер кэша соответствующим образом. +Поэтому убедитесь, что рассчитали размер векторного индекса (на основе формулы из раздела «Estimating storage and memory consumption» или [system.data_skipping_indices](../../../operations/system-tables/data_skipping_indices)) и соответствующим образом задали размер кэша. ::: -Текущий размер кэша индекса векторного сходства отображается в [system.metrics](../../../operations/system-tables/metrics.md): +*Ещё раз подчеркнём, что проверка и, при необходимости, увеличение кэша векторных индексов должна быть первым шагом при расследовании медленных запросов векторного поиска.* + +Текущий размер кэша индексов векторного сходства отображается в [system.metrics](../../../operations/system-tables/metrics.md): ```sql SELECT metric, value @@ -456,7 +466,7 @@ FROM system.metrics WHERE metric = 'VectorSimilarityIndexCacheBytes' ``` -Информацию о попаданиях и промахах кэша для запроса с заданным идентификатором можно получить из [system.query_log](../../../operations/system-tables/query_log.md): +Попадания и промахи кэша для запроса с указанным query id можно получить из [system.query_log](../../../operations/system-tables/query_log.md): ```sql SYSTEM FLUSH LOGS query_log; @@ -467,13 +477,14 @@ WHERE type = 'QueryFinish' AND query_id = '<...>' ORDER BY event_time_microseconds; ``` -Для production-сценариев мы рекомендуем выбирать размер кэша таким образом, чтобы все векторные индексы постоянно помещались в память. +Для сценариев промышленной эксплуатации мы рекомендуем выбирать размер кэша таким образом, чтобы все векторные индексы целиком размещались в памяти. **Настройка квантования** [Квантование](https://huggingface.co/blog/embedding-quantization) — это метод уменьшения объёма памяти, занимаемой векторами, и вычислительных затрат на построение и обход векторных индексов. Векторные индексы ClickHouse поддерживают следующие варианты квантования: + | Quantization | Name | Storage per dimension | | -------------- | ---------------------------- | --------------------- | | f32 | Single precision | 4 bytes | @@ -507,15 +518,15 @@ result = chclient.query( parameters = params) ``` -Векторы встраивания (`search_v` в приведённом выше фрагменте) могут иметь очень большую размерность. -Например, OpenAI предоставляет модели, которые генерируют векторы встраивания с размерностью 1536 или даже 3072. -В приведённом выше коде драйвер ClickHouse для Python подставляет вектор встраивания, преобразуя его в человекочитаемую строку, и затем целиком отправляет запрос SELECT в виде строки. -Предположим, что вектор встраивания состоит из 1536 значений с плавающей запятой одинарной точности, тогда длина отправляемой строки достигает 20 кБ. -Это приводит к высокому использованию CPU на токенизацию, разбор и выполнение тысяч преобразований строки в число с плавающей запятой. -Кроме того, требуется значительный объём места в файле журнала сервера ClickHouse, что также вызывает разрастание `system.query_log`. +Векторы эмбеддингов (`search_v` в приведённом выше фрагменте) могут иметь очень большую размерность. +Например, OpenAI предоставляет модели, которые генерируют векторы эмбеддингов с размерностью 1536 или даже 3072. +В коде выше Python-драйвер ClickHouse подставляет вектор эмбеддинга в виде человекочитаемой строки и затем отправляет весь запрос SELECT в виде одной строки. +Если предположить, что вектор эмбеддинга состоит из 1536 значений с плавающей запятой одинарной точности, длина отправляемой строки достигает 20 КБ. +Это приводит к высокой загрузке CPU при токенизации, парсинге и выполнении тысяч преобразований строк в значения с плавающей запятой. +Кроме того, требуется значительный объём места в журнале сервера ClickHouse, что также вызывает разрастание `system.query_log`. -Обратите внимание, что большинство LLM‑моделей возвращают вектор встраивания в виде списка или массива NumPy из нативных чисел с плавающей запятой. -Поэтому мы рекомендуем Python‑приложениям привязывать параметр опорного вектора в бинарной форме, используя следующий стиль: +Обратите внимание, что большинство моделей LLM возвращают вектор эмбеддинга в виде списка или массива NumPy из нативных чисел с плавающей запятой. +Поэтому мы рекомендуем Python‑приложениям привязывать параметр опорного вектора в двоичном виде, используя следующий стиль: ```python search_v = openai_client.embeddings.create(input = "[Good Books]", model='text-embedding-3-large', dimensions=1536).data[0].embedding @@ -523,13 +534,14 @@ search_v = openai_client.embeddings.create(input = "[Good Books]", model='text-e params = {'$search_v_binary$': np.array(search_v, dtype=np.float32).tobytes()} result = chclient.query( "SELECT id FROM items - ORDER BY cosineDistance(vector, (SELECT reinterpret($search_v_binary$, 'Array(Float32)'))) + ORDER BY cosineDistance(vector, reinterpret($search_v_binary$, 'Array(Float32)')) LIMIT 10" parameters = params) ``` В этом примере опорный вектор отправляется как есть в бинарном виде и на сервере интерпретируется как массив чисел с плавающей запятой. -Это экономит процессорное время на стороне сервера и предотвращает избыточный рост серверных логов и `system.query_log`. +Это экономит процессорное время на стороне сервера и предотвращает разрастание серверных логов и `system.query_log`. + #### Администрирование и мониторинг {#administration} @@ -549,6 +561,7 @@ WHERE type = 'vector_similarity'; └──────────┴───────┴──────┴──────────────────────────┘ ``` + #### Отличия от обычных пропускающих индексов {#differences-to-regular-skipping-indexes} Как и все обычные [пропускающие индексы](/optimize/skipping-indexes), индексы векторного сходства строятся поверх гранул, и каждый индексируемый блок состоит из `GRANULARITY = [N]` гранул (`[N]` = 1 по умолчанию для обычных пропускающих индексов). @@ -564,15 +577,15 @@ WHERE type = 'vector_similarity'; Однако, поскольку ClickHouse загружает данные с диска в память на уровне гранул, подиндексы расширяют найденные строки до границ гранул. Это отличается от обычных пропускающих индексов, которые пропускают данные на уровне индексных блоков. -Параметр `GRANULARITY` определяет, сколько подиндексов векторного сходства создаётся. -Большие значения `GRANULARITY` означают меньшее количество, но более крупные подиндексы векторного сходства, вплоть до ситуации, когда столбец (или часть данных столбца) имеет только один подиндекс. -В этом случае подиндекс имеет «глобальное» представление обо всех строках столбца и может напрямую вернуть все гранулы столбца (части) с релевантными строками (таких гранул не более `LIMIT [N]`). -На втором шаге ClickHouse загрузит эти гранулы и определит действительно лучшие строки, выполнив расчёт расстояний полным перебором (brute-force) по всем строкам гранул. -При небольшом значении `GRANULARITY` каждый из подиндексов возвращает до `LIMIT N` гранул. -В результате требуется загрузить и дополнительно отфильтровать больше гранул. -Обратите внимание, что точность поиска в обоих случаях одинаково высока, различается только производительность обработки. -Обычно рекомендуется использовать большое значение `GRANULARITY` для индексов векторного сходства и переходить к меньшим значениям `GRANULARITY` только в случае проблем, например чрезмерного потребления памяти структурами векторного сходства. -Если `GRANULARITY` для индексов векторного сходства не задан, значение по умолчанию — 100 миллионов. +Параметр `GRANULARITY` определяет, сколько подиндексов векторного сходства будет создано. +Большие значения `GRANULARITY` означают меньшее число, но более крупные подиндексы векторного сходства, вплоть до случая, когда для столбца (или части данных столбца) создаётся только один подиндекс. +В этом случае подиндекс имеет «глобальное» представление всех строк столбца и может напрямую вернуть все гранулы столбца (части) с релевантными строками (таких гранул не более `LIMIT [N]`). +На втором шаге ClickHouse загрузит эти гранулы и определит фактически лучшие строки, выполнив полный (brute-force) расчёт расстояний по всем строкам этих гранул. +При малом значении `GRANULARITY` каждый подиндекс возвращает до `LIMIT N` гранул. +В результате приходится загружать и дополнительно фильтровать большее количество гранул. +Обратите внимание, что точность поиска в обоих случаях одинаково хороша, отличается только производительность обработки. +В общем случае рекомендуется использовать большое значение `GRANULARITY` для индексов векторного сходства и переходить к меньшим значениям `GRANULARITY` только в случае проблем, таких как чрезмерное потребление памяти структурами векторного сходства. +Если значение `GRANULARITY` для индексов векторного сходства не задано, по умолчанию используется 100 миллионов. #### Пример {#approximate-nearest-neighbor-search-example} @@ -605,6 +618,7 @@ LIMIT 3; * [dbpedia](../../../getting-started/example-datasets/dbpedia-dataset) * [hackernews](../../../getting-started/example-datasets/hackernews-vector-search-dataset) + ### Квантованный бит (QBit) {#approximate-nearest-neighbor-search-qbit} @@ -620,11 +634,11 @@ ClickHouse предлагает тип данных Quantized Bit (`QBit`), ко 1. Хранения исходных данных с полной точностью. 2. Возможности указания точности квантизации на этапе выполнения запроса. -Это достигается за счёт хранения данных в формате с побитовой группировкой (то есть все i-е биты всех векторов хранятся вместе), что позволяет выполнять чтение только с запрошенным уровнем точности. Вы получаете выигрыш в скорости за счёт сокращения объёма операций ввода-вывода и вычислений благодаря квантизации, при этом все исходные данные остаются доступными при необходимости. При выборе максимальной точности поиск становится точным. +Этого удаётся добиться за счёт хранения данных в формате с группировкой по битам (то есть все i-е биты всех векторов хранятся вместе), что позволяет считывать данные только с требуемым уровнем точности. Вы получаете преимущества по скорости за счёт уменьшения объёма ввода-вывода и вычислений благодаря квантизации, при этом все исходные данные остаются доступными при необходимости. При выборе максимальной точности поиск становится точным. :::note -Тип данных `QBit` и связанные с ним функции вычисления расстояния в настоящее время являются экспериментальными. Чтобы их включить, выполните `SET allow_experimental_qbit_type = 1`. -Если вы столкнулись с проблемами, пожалуйста, создайте issue в [репозитории ClickHouse](https://github.com/clickhouse/clickhouse/issues). +Тип данных `QBit` и связанные с ним функции расстояния в настоящее время являются экспериментальными. Чтобы их включить, выполните `SET allow_experimental_qbit_type = 1`. +Если вы столкнётесь с проблемами, пожалуйста, создайте issue в [репозитории ClickHouse](https://github.com/clickhouse/clickhouse/issues). ::: Чтобы объявить столбец типа `QBit`, используйте следующий синтаксис: @@ -636,7 +650,8 @@ column_name QBit(element_type, dimension) Где: * `element_type` – тип каждого элемента вектора. Поддерживаемые типы: `BFloat16`, `Float32` и `Float64` -* `dimension` – количество элементов в каждом векторе +* `dimension` – размерность вектора (число элементов) + #### Создание таблицы `QBit` и добавление данных {#qbit-create} @@ -656,6 +671,7 @@ INSERT INTO fruit_animal VALUES ('horse', [-0.61435682, 0.48542571, 1.21091247, -0.62530446, -1.33082533]); ``` + #### Векторный поиск с `QBit` {#qbit-search} Найдём ближайших соседей к вектору, соответствующему слову «lemon», используя L2-расстояние. Третий параметр в функции расстояния задаёт точность в битах: более высокие значения обеспечивают большую точность, но требуют больше вычислительных ресурсов. @@ -704,12 +720,13 @@ ORDER BY distance; └────────┴────────────────────┘ ``` -Обратите внимание, что с 12-битной квантизацией мы получаем хорошее приближение расстояний при более быстром выполнении запросов. Относительный порядок в целом сохраняется: 'apple' по‑прежнему является ближайшим совпадением. +Обратите внимание, что при 12-битной квантизации мы получаем хорошее приближение расстояний при более быстром выполнении запроса. Относительный порядок остаётся в значительной степени тем же, при этом «apple» по-прежнему является ближайшим соответствием. :::note -В текущей реализации ускорение достигается за счёт уменьшения I/O, так как мы читаем меньше данных. Если исходные данные были «широкими», например `Float64`, выбор меньшей точности всё равно приведёт к вычислению расстояния по данным той же ширины — только с меньшей точностью. +В текущей реализации ускорение достигается за счёт уменьшения объёма операций ввода-вывода, так как мы читаем меньше данных. Если исходные данные были «широкими», например `Float64`, выбор более низкой точности всё равно приведёт к вычислению расстояний по данным той же ширины — просто с меньшей точностью. ::: + #### Соображения по производительности {#qbit-performance} Производительность `QBit` повышается за счёт сокращения операций I/O, поскольку при использовании меньшей точности из хранилища нужно читать меньше данных. Кроме того, когда `QBit` содержит данные типа `Float32` и параметр точности равен 16 или меньше, появляется дополнительное преимущество за счёт уменьшения объёма вычислений. Параметр точности напрямую управляет компромиссом между точностью и скоростью: @@ -720,5 +737,6 @@ ORDER BY distance; ### Ссылки {#references} Блоги: + - [Vector Search with ClickHouse - Part 1](https://clickhouse.com/blog/vector-search-clickhouse-p1) -- [Vector Search with ClickHouse - Part 2](https://clickhouse.com/blog/vector-search-clickhouse-p2) +- [Vector Search with ClickHouse - Part 2](https://clickhouse.com/blog/vector-search-clickhouse-p2) \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/mergetree.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/mergetree.md index a78fea46adc..84094b47ca2 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/mergetree.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/mergetree.md @@ -403,7 +403,7 @@ bloom_filter([false_positive_rate]) * `Map` :::note Тип данных Map: указание создания индекса по ключам или значениям -Для типа данных `Map` клиент может указать, должен ли индекс создаваться по ключам или по значениям, используя функции [`mapKeys`](/sql-reference/functions/tuple-map-functions.md/#mapkeys) или [`mapValues`](/sql-reference/functions/tuple-map-functions.md/#mapvalues). +Для типа данных `Map` клиент может указать, должен ли индекс создаваться по ключам или по значениям, используя функции [`mapKeys`](/sql-reference/functions/tuple-map-functions.md/#mapKeys) или [`mapValues`](/sql-reference/functions/tuple-map-functions.md/#mapValues). ::: @@ -523,7 +523,7 @@ sparse_grams(min_ngram_length, max_ngram_length, min_cutoff_length, size_of_bloo | [меньше (`<`)](/sql-reference/functions/comparison-functions.md/#less) | ✔ | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | | [больше (`>`)](/sql-reference/functions/comparison-functions.md/#greater) | ✔ | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | | [меньше или равно (`<=`)](/sql-reference/functions/comparison-functions.md/#lessOrEquals) | ✔ | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | -| [greaterOrEquals (`>=`)](/sql-reference/functions/comparison-functions.md/#greaterOrEquals) | ✔ | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | +| [больше или равно (`>=`)](/sql-reference/functions/comparison-functions.md/#greaterOrEquals) | ✔ | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | | [empty](/sql-reference/functions/array-functions/#empty) | ✔ | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | | [notEmpty](/sql-reference/functions/array-functions/#notEmpty) | ✗ | ✔ | ✗ | ✗ | ✗ | ✔ | ✗ | | [has](/sql-reference/functions/array-functions#has) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | @@ -535,7 +535,10 @@ sparse_grams(min_ngram_length, max_ngram_length, min_cutoff_length, size_of_bloo | [hasTokenCaseInsensitiveOrNull (`*`)](/sql-reference/functions/string-search-functions.md/#hasTokenCaseInsensitiveOrNull) | ✗ | ✗ | ✗ | ✔ | ✗ | ✗ | ✗ | | [hasAnyTokens](/sql-reference/functions/string-search-functions.md/#hasAnyTokens) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | | [hasAllTokens](/sql-reference/functions/string-search-functions.md/#hasAllTokens) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | -| [mapContains](/sql-reference/functions/tuple-map-functions#mapcontains) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | +| [mapContains (mapContainsKey)](/sql-reference/functions/tuple-map-functions#mapContainsKey) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | +| [mapContainsKeyLike](/sql-reference/functions/tuple-map-functions#mapContainsKeyLike) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | +| [mapContainsValue](/sql-reference/functions/tuple-map-functions#mapContainsValue) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | +| [mapContainsValueLike](/sql-reference/functions/tuple-map-functions#mapContainsValueLike) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | Функции с константным аргументом, значение которого меньше размера n-граммы, не могут использоваться индексом `ngrambf_v1` для оптимизации запросов. diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/textindexes.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/textindexes.md index 13c3c1c7afc..498d93b665a 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/textindexes.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/textindexes.md @@ -28,7 +28,7 @@ import BetaBadge from '@theme/badges/BetaBadge'; SET enable_full_text_index = true; ``` -Текстовый индекс можно определить для столбца следующих типов: [String](/sql-reference/data-types/string.md), [FixedString](/sql-reference/data-types/fixedstring.md), [Array(String)](/sql-reference/data-types/array.md), [Array(FixedString)](/sql-reference/data-types/array.md) и [Map](/sql-reference/data-types/map.md) (через функции работы с Map [mapKeys](/sql-reference/functions/tuple-map-functions.md/#mapkeys) и [mapValues](/sql-reference/functions/tuple-map-functions.md/#mapvalues)) с помощью следующего синтаксиса: +Текстовый индекс можно определить для столбца следующих типов: [String](/sql-reference/data-types/string.md), [FixedString](/sql-reference/data-types/fixedstring.md), [Array(String)](/sql-reference/data-types/array.md), [Array(FixedString)](/sql-reference/data-types/array.md) и [Map](/sql-reference/data-types/map.md) (через функции работы с Map [mapKeys](/sql-reference/functions/tuple-map-functions.md/#mapKeys) и [mapValues](/sql-reference/functions/tuple-map-functions.md/#mapValues)) с помощью следующего синтаксиса: ```sql CREATE TABLE tab @@ -323,7 +323,7 @@ SELECT count() FROM tab WHERE has(array, 'clickhouse'); #### `mapContains` {#functions-example-mapcontains} -Функция [mapContains](/sql-reference/functions/tuple-map-functions#mapcontains) (псевдоним `mapContainsKey`) сопоставляет отдельный токен с ключами map. +Функция [mapContains](/sql-reference/functions/tuple-map-functions#mapContainsKey) (псевдоним `mapContainsKey`) сопоставляет отдельный токен с ключами map. Пример: @@ -334,6 +334,18 @@ SELECT count() FROM tab WHERE mapContains(map, 'clickhouse'); ``` +#### `mapContainsKeyLike` и `mapContainsValueLike` {#functions-example-mapcontainslike} + +Функции [mapContainsKeyLike](/sql-reference/functions/tuple-map-functions#mapContainsKeyLike) и [mapContainsValueLike](/sql-reference/functions/tuple-map-functions#mapContainsValueLike) сопоставляют заданный шаблон со всеми ключами или, соответственно, значениями отображения. + +Пример: + +```sql +SELECT count() FROM tab WHERE mapContainsKeyLike(map, '% clickhouse %'); +SELECT count() FROM tab WHERE mapContainsValueLike(map, '% clickhouse %'); +``` + + #### `operator[]` {#functions-example-access-operator} Оператор доступа [operator[]](/sql-reference/operators#access-operators) можно использовать с текстовым индексом для фильтрации по ключам и значениям. @@ -414,14 +426,14 @@ SELECT count() FROM logs WHERE has(mapValues(attributes), '192.168.1.1'); -- slo По мере увеличения объёма логов такие запросы начинают работать медленно. Решение — создать текстовый индекс для ключей и значений [Map](/sql-reference/data-types/map.md). -Используйте [mapKeys](/sql-reference/functions/tuple-map-functions.md/#mapkeys), чтобы создать текстовый индекс, когда нужно находить логи по именам полей или типам атрибутов: +Используйте [mapKeys](/sql-reference/functions/tuple-map-functions.md/#mapKeys), чтобы создать текстовый индекс, когда нужно находить логи по именам полей или типам атрибутов: ```sql ALTER TABLE logs ADD INDEX attributes_keys_idx mapKeys(attributes) TYPE text(tokenizer = array); ALTER TABLE posts MATERIALIZE INDEX attributes_keys_idx; ``` -Используйте [mapValues](/sql-reference/functions/tuple-map-functions.md/#mapvalues), чтобы создать текстовый индекс, когда вам нужно выполнять поиск по собственному содержимому атрибутов: +Используйте [mapValues](/sql-reference/functions/tuple-map-functions.md/#mapValues), чтобы создать текстовый индекс, когда нужно выполнять поиск по самим значениям атрибутов: ```sql ALTER TABLE logs ADD INDEX attributes_vals_idx mapValues(attributes) TYPE text(tokenizer = array); @@ -436,6 +448,9 @@ SELECT * FROM logs WHERE mapContainsKey(attributes, 'rate_limit'); -- fast -- Finds all logs from a specific IP: SELECT * FROM logs WHERE has(mapValues(attributes), '192.168.1.1'); -- fast + +-- Finds all logs where any attribute includes an error: +SELECT * FROM logs WHERE mapContainsValueLike(attributes, '% error %'); -- fast ``` @@ -526,6 +541,7 @@ Positions: В настоящее время существуют кэши для десериализованных блоков словаря, заголовков и списков вхождений (posting lists) текстового индекса, позволяющие сократить количество операций ввода-вывода (I/O). Эти кэши включаются с помощью настроек [use_text_index_dictionary_cache](/operations/settings/settings#use_text_index_dictionary_cache), [use_text_index_header_cache](/operations/settings/settings#use_text_index_header_cache) и [use_text_index_postings_cache](/operations/settings/settings#use_text_index_postings_cache). По умолчанию все кэши отключены. +Для сброса кэшей используйте команду [SYSTEM DROP TEXT INDEX CACHES](../../../sql-reference/statements/system#drop-text-index-caches). Для их настройки воспользуйтесь следующими параметрами сервера. diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/index.md index 33f249b8d93..cf9e4210009 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/index.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/index.md @@ -1,12 +1,18 @@ --- sidebar_label: 'Приём данных из MySQL в ClickHouse' -description: 'Описывает, как бесшовно подключить вашу базу данных MySQL к ClickHouse Cloud.' +description: 'Описывает, как бесшовно принимать данные из вашей базы данных MySQL или MariaDB в ClickHouse Cloud.' slug: /integrations/clickpipes/mysql title: 'Приём данных из MySQL в ClickHouse (с использованием CDC)' doc_type: 'руководство' keywords: ['MySQL', 'ClickPipes', 'CDC', 'фиксация изменений данных', 'репликация баз данных'] --- +import Aurorasvg from '@site/static/images/integrations/logos/amazon_aurora.svg'; +import AFSsvg from '@site/static/images/integrations/logos/azure_database_mysql.svg'; +import CloudSQLsvg from '@site/static/images/integrations/logos/gcp_cloudsql.svg'; +import MariaDBsvg from '@site/static/images/integrations/logos/mariadb.svg'; +import MySQLsvg from '@site/static/images/integrations/logos/mysql.svg'; +import RDSsvg from '@site/static/images/integrations/logos/amazon_rds.svg'; import BetaBadge from '@theme/badges/BetaBadge'; import cp_service from '@site/static/images/integrations/data-ingestion/clickpipes/cp_service.png'; import cp_step0 from '@site/static/images/integrations/data-ingestion/clickpipes/cp_step0.png'; @@ -17,39 +23,45 @@ import select_destination_db from '@site/static/images/integrations/data-ingesti import ch_permissions from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/ch-permissions.jpg' import Image from '@theme/IdealImage'; -# Приём данных из MySQL в ClickHouse (с использованием CDC) {#ingesting-data-from-mysql-to-clickhouse-using-cdc} + +# Ингестия данных из MySQL в ClickHouse (с использованием CDC) {#ingesting-data-from-mysql-to-clickhouse-using-cdc} :::info -Приём данных из MySQL в ClickHouse Cloud через ClickPipes доступен в режиме публичного бета-тестирования. +Ингестия данных из MySQL в ClickHouse Cloud через ClickPipes находится в режиме открытого бета-тестирования. ::: -Вы можете использовать ClickPipes для приёма данных из исходной базы данных MySQL в ClickHouse Cloud. Исходная база данных MySQL может размещаться в локальной инфраструктуре (on-premises) или в облаке с использованием таких сервисов, как Amazon RDS, Google Cloud SQL и другие. - -## Предварительные требования {#prerequisites} - -Прежде чем начать, необходимо убедиться, что ваша база данных MySQL корректно настроена для репликации binlog. Этапы настройки зависят от способа развертывания MySQL, поэтому следуйте соответствующему руководству ниже: +MySQL ClickPipe предоставляет полностью управляемый и отказоустойчивый способ ингестии данных из баз данных MySQL и MariaDB в ClickHouse Cloud. Поддерживаются как **bulk loads** для одноразовой ингестии, так и **Change Data Capture (CDC)** для непрерывной ингестии. -1. [Amazon RDS MySQL](./mysql/source/rds) +MySQL ClickPipes можно развёртывать и управлять ими вручную через ClickPipes UI. В будущем станет возможно развёртывать и управлять MySQL ClickPipes программно с помощью [OpenAPI](https://clickhouse.com/docs/cloud/manage/api/swagger#tag/ClickPipes/paths/~1v1~1organizations~1%7BorganizationId%7D~1services~1%7BserviceId%7D~1clickpipes/post) и [Terraform](https://registry.terraform.io/providers/ClickHouse/clickhouse/3.8.1-alpha1/docs/resources/clickpipe). -2. [Amazon Aurora MySQL](./mysql/source/aurora) +## Предварительные требования {#prerequisites} -3. [Cloud SQL for MySQL](./mysql/source/gcp) +[//]: # "TODO Binlog replication configuration is not needed for one-time ingestion pipes. This has been a source of confusion in the past, so we should also provide the bare minimum requirements for bulk loads to avoid scaring users off." -4. [Generic MySQL](./mysql/source/generic) +Прежде чем начать, необходимо убедиться, что ваша база данных MySQL корректно настроена для репликации binlog. Этапы настройки зависят от способа развертывания MySQL, поэтому следуйте соответствующему руководству ниже: -5. [Amazon RDS MariaDB](./mysql/source/rds_maria) +### Поддерживаемые источники данных {#supported-data-sources} -6. [Generic MariaDB](./mysql/source/generic_maria) +| Название | Логотип | Подробности | +|----------------------|---------|-------------------| +| **Amazon RDS MySQL**

    _Разовая загрузка, CDC_ | | Следуйте руководству по настройке [Amazon RDS MySQL](./mysql/source/rds). | +| **Amazon Aurora MySQL**

    _Разовая загрузка, CDC_ | | Следуйте руководству по настройке [Amazon Aurora MySQL](./mysql/source/aurora). | +| **Cloud SQL for MySQL**

    _Разовая загрузка, CDC_ | | Следуйте руководству по настройке [Cloud SQL for MySQL](./mysql/source/gcp). | +| **Azure Flexible Server for MySQL**

    _Разовая загрузка_ | | Следуйте руководству по настройке [Azure Flexible Server for MySQL](./mysql/source/azure-flexible-server-mysql). | +| **Самостоятельно развернутый MySQL**

    _Разовая загрузка, CDC_ | | Следуйте руководству по настройке [Generic MySQL](./mysql/source/generic). | +| **Amazon RDS MariaDB**

    _Разовая загрузка, CDC_ | | Следуйте руководству по настройке [Amazon RDS MariaDB](./mysql/source/rds_maria). | +| **Самостоятельно развернутая MariaDB**

    _Разовая загрузка, CDC_ | | Следуйте руководству по настройке [Generic MariaDB](./mysql/source/generic_maria). | -После того как исходная база данных MySQL будет настроена, можно переходить к созданию ClickPipe. +После настройки исходной базы данных MySQL можно продолжить создание ClickPipe. ## Создайте свой ClickPipe {#create-your-clickpipe} Убедитесь, что вы вошли в свою учетную запись ClickHouse Cloud. Если у вас еще нет учетной записи, вы можете зарегистрироваться [здесь](https://cloud.clickhouse.com/). [//]: # ( TODO update image here) + 1. В консоли ClickHouse Cloud перейдите к своему сервису ClickHouse Cloud. @@ -121,4 +133,4 @@ import Image from '@theme/IdealImage'; [//]: # "TODO Write a MySQL-specific migration guide and best practices similar to the existing one for PostgreSQL. The current migration guide points to the MySQL table engine, which is not ideal." -После того как вы настроите ClickPipe для репликации данных из MySQL в ClickHouse Cloud, вы можете сосредоточиться на том, как выполнять запросы и моделировать данные для оптимальной производительности. Ответы на распространённые вопросы по CDC для MySQL и устранению неполадок см. на [странице часто задаваемых вопросов по MySQL](/integrations/data-ingestion/clickpipes/mysql/faq.md). +После того как вы настроите ClickPipe для репликации данных из MySQL в ClickHouse Cloud, вы можете сосредоточиться на том, как выполнять запросы и моделировать данные для оптимальной производительности. Ответы на распространённые вопросы по CDC (фиксации изменений данных) в MySQL и устранению неполадок см. на [странице часто задаваемых вопросов по MySQL](/integrations/data-ingestion/clickpipes/mysql/faq.md). \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/azure-flexible-server-mysql.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/azure-flexible-server-mysql.md new file mode 100644 index 00000000000..7b0b05d10f1 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/azure-flexible-server-mysql.md @@ -0,0 +1,87 @@ +--- +sidebar_label: 'Azure Flexible Server for MySQL' +description: 'Настройка Azure Flexible Server for MySQL в качестве источника для ClickPipes' +slug: /integrations/clickpipes/mysql/source/azure-flexible-server-mysql +title: 'Руководство по настройке Azure Flexible Server for MySQL в качестве источника' +keywords: ['azure', 'flexible server', 'mysql', 'clickpipes', 'binlog'] +doc_type: 'guide' +--- + +import configure_network_security from '@site/static/images/integrations/data-ingestion/clickpipes/mysql/source/azure-flexible-server-mysql/1_configure_network_security.png'; +import Image from '@theme/IdealImage'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + +# Руководство по настройке источника Azure Flexible Server for MySQL {#azure-flexible-server-for-mysql-source-setup-guide} + +В этом пошаговом руководстве показано, как настроить Azure Flexible Server for MySQL для репликации данных в ClickHouse Cloud с использованием [MySQL ClickPipe](../index.md). Для этого сервиса поддерживается только **однократная ингестия**. Ответы на распространённые вопросы по MySQL CDC смотрите на странице [MySQL FAQs](/integrations/data-ingestion/clickpipes/mysql/faq.md). + +:::warning +Непрерывная ингестия через **CDC не поддерживается** для этого сервиса. Azure Flexible Server for MySQL не позволяет настроить системную переменную [`binlog_row_metadata`](https://dev.mysql.com/doc/refman/en/replication-options-binary-log.html#sysvar_binlog_row_metadata) в значение `FULL`, что требуется для полнофункциональной CDC для MySQL в ClickPipes. + +Отправьте запрос на добавление этой возможности на [форуме обратной связи Azure](https://feedback.azure.com/d365community/forum/47b1e71d-ee24-ec11-b6e6-000d3a4f0da0), проголосуйте за [этот вопрос](https://learn.microsoft.com/en-us/answers/questions/766047/setting-binlog-row-metadata-to-full-in-azure-db-fo) или [свяжитесь со службой поддержки Azure](https://azure.microsoft.com/en-us/support/create-ticket/), чтобы запросить эту возможность. +::: + +## Настройте пользователя базы данных {#configure-database-user} + +Подключитесь к экземпляру Azure Flexible Server for MySQL от имени пользователя-администратора и выполните следующие команды: + +1. Создайте отдельного пользователя для ClickPipes: + + ```sql + CREATE USER 'clickpipes_user'@'%' IDENTIFIED BY 'some-password'; + ``` + +2. Назначьте привилегии для схемы. В следующем примере показаны привилегии для базы данных `mysql`. Повторите эти команды для каждой базы данных и хоста, которые вы хотите реплицировать: + + ```sql + GRANT SELECT ON `mysql`.* TO 'clickpipes_user'@'%'; + ``` + +3. Примените изменения привилегий: + + ```sql + FLUSH PRIVILEGES; + ``` + +## Настройте сетевой доступ {#configure-network-access} + +:::note +ClickPipes не поддерживает подключения через Azure Private Link. Если вы не разрешаете публичный доступ к экземпляру Azure Flexible Server for MySQL, вы можете [использовать SSH‑туннель](#configure-network-security) для безопасного подключения. Поддержка Azure Private Link будет добавлена в будущем. +::: + +Далее необходимо разрешить подключения к вашему экземпляру Azure Flexible Server for MySQL из ClickPipes. + + + + +1. В Azure Portal перейдите в **All resources**. Выберите свой экземпляр Azure Flexible Server for MySQL, чтобы открыть страницу **Overview**. + +2. В разделе **Settings** выберите **Networking**. Убедитесь, что **Public access** включён. + +3. В разделе **Firewall rules** введите [список статических IP‑адресов ClickPipes](../../index.md#list-of-static-ips) для региона, в котором развернут ваш сервис. + + + +4. Нажмите **Save**, чтобы сохранить изменения конфигурации сетевой безопасности. + + + + +Если вы не разрешаете публичный доступ к экземпляру Azure Flexible Server for MySQL, сначала необходимо развернуть SSH‑бастион‑хост для безопасного туннелирования соединения. Чтобы настроить SSH‑бастион‑хост в Azure: + +1. Создайте и запустите виртуальную машину Azure (VM), следуя [официальной документации](https://learn.microsoft.com/en-us/azure/virtual-machines/linux/quick-create-portal?tabs=ubuntu). + - Убедитесь, что VM находится в той же виртуальной сети (VNet), что и ваш экземпляр Azure Flexible Server for MySQL, или в пиринговой VNet с настроенной связностью. + - Убедитесь, что у VM есть [статический публичный IP‑адрес](https://learn.microsoft.com/en-us/azure/virtual-network/ip-services/virtual-network-public-ip-address). Этот IP‑адрес потребуется при подключении ClickPipes к вашему SSH‑бастион‑хосту. + +2. Обновите правила группы безопасности сети (Network Security Group, NSG) для SSH‑бастион‑хоста, чтобы разрешить трафик из [списка статических IP‑адресов ClickPipes](../../index.md#list-of-static-ips) для региона, в котором развернут ваш сервис. + +3. Обновите правила брандмауэра для экземпляра Azure Flexible Server for MySQL, чтобы разрешить трафик от [частного IP‑адреса](https://learn.microsoft.com/en-us/azure/virtual-network/ip-services/private-ip-addresses) SSH‑бастион‑хоста. + + + + +## Что дальше? {#whats-next} + +Теперь вы можете [создать ClickPipe](../index.md) и начать приём данных из экземпляра Azure Flexible Server for MySQL в ClickHouse Cloud. Обязательно сохраните параметры подключения, которые вы использовали при настройке экземпляра, так как они понадобятся вам в процессе создания ClickPipe. \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/alloydb.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/alloydb.md index e2bcade8384..1dd3fb06f83 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/alloydb.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/alloydb.md @@ -72,7 +72,7 @@ SHOW wal_level; CREATE USER clickpipes_user PASSWORD 'some-password'; ``` -2. Предоставьте этому пользователю права на схемы, которые вы хотите реплицировать. +2. Предоставьте пользователю, созданному на предыдущем шаге, права только на чтение на уровне схем. В следующем примере показаны права для схемы `public`. Повторите эту последовательность команд для каждой схемы, содержащей таблицы, которые вы хотите реплицировать: ```sql GRANT USAGE ON SCHEMA "public" TO clickpipes_user; @@ -80,8 +80,6 @@ SHOW wal_level; ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; ``` - В приведённом выше примере показаны права для схемы `public`. Повторите эту последовательность команд для каждой схемы, которую вы хотите реплицировать с помощью ClickPipes. - 3. Предоставьте этому пользователю права для управления репликацией: ```sql @@ -108,10 +106,10 @@ SHOW wal_level; Publication `clickpipes` будет содержать набор событий изменений, сформированных указанными таблицами, и позднее будет использоваться для приёма репликационного потока. -## Настройка сетевой безопасности {#configure-network-security} +## Настройка сетевого доступа {#configure-network-access} :::note -ClickPipes не поддерживает подключения через Private Service Connect (PSC). Если у вас не разрешён публичный доступ к экземпляру AlloyDB, вы можете [использовать SSH-туннель](#configure-network-security) для безопасного подключения. Поддержка PSC будет добавлена в будущем. +ClickPipes не поддерживает подключения через Private Service Connect (PSC). Если у вас не разрешён публичный доступ к экземпляру AlloyDB, вы можете [использовать SSH-туннель](#configure-network-access) для безопасного подключения. Поддержка PSC будет добавлена в будущем. ::: Далее необходимо разрешить подключения к вашему экземпляру AlloyDB из ClickPipes. diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/aurora.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/aurora.md index 4d912709fe0..160b27b05f3 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/aurora.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/aurora.md @@ -16,11 +16,12 @@ import security_group_in_rds_postgres from '@site/static/images/integrations/dat import edit_inbound_rules from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/rds/edit_inbound_rules.png'; import Image from '@theme/IdealImage'; + # Руководство по настройке источника данных Aurora Postgres {#aurora-postgres-source-setup-guide} ## Поддерживаемые версии Postgres {#supported-postgres-versions} -ClickPipes поддерживает Aurora PostgreSQL-Compatible Edition версий 12 и выше. +ClickPipes поддерживает Aurora PostgreSQL-Compatible Edition версии 12 и выше. ## Включение логической репликации {#enable-logical-replication} @@ -65,9 +66,10 @@ postgres=> SHOW wal_sender_timeout ; -## Настройка пользователя базы данных {#configure-database-user} -Подключитесь к экземпляру Aurora PostgreSQL writer с учетной записью с правами администратора и выполните следующие команды: +## Настройте пользователя базы данных {#configure-database-user} + +Подключитесь к экземпляру записывающего узла Aurora PostgreSQL под администраторской учетной записью и выполните следующие команды: 1. Создайте отдельного пользователя для ClickPipes: @@ -75,7 +77,7 @@ postgres=> SHOW wal_sender_timeout ; CREATE USER clickpipes_user PASSWORD 'some-password'; ``` -2. Назначьте права на схему. В следующем примере показаны права для схемы `public`. Повторите эти команды для каждой схемы, которую вы хотите реплицировать: +2. Предоставьте на уровне схемы доступ только для чтения пользователю, созданному на предыдущем шаге. В следующем примере показаны права для схемы `public`. Повторите эти команды для каждой схемы, содержащей таблицы, которые вы хотите реплицировать: ```sql GRANT USAGE ON SCHEMA "public" TO clickpipes_user; @@ -83,17 +85,31 @@ postgres=> SHOW wal_sender_timeout ; ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; ``` -3. Назначьте права на репликацию: +3. Предоставьте пользователю права на репликацию: ```sql GRANT rds_replication TO clickpipes_user; ``` -4. Создайте публикацию для репликации: +4. Создайте [publication](https://www.postgresql.org/docs/current/logical-replication-publication.html) с таблицами, которые вы хотите реплицировать. Настоятельно рекомендуется включать в публикацию только те таблицы, которые вам нужны, чтобы избежать лишних накладных расходов и деградации производительности. - ```sql - CREATE PUBLICATION clickpipes_publication FOR ALL TABLES; - ``` + :::warning + Любая таблица, включенная в публикацию, должна либо иметь определённый **первичный ключ**, _либо_ для неё должен быть настроен параметр **replica identity** со значением `FULL`. См. раздел [Postgres FAQs](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication) для получения рекомендаций по выбору области публикаций. + ::: + + - Чтобы создать публикацию для конкретных таблиц: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2; + ``` + + - Чтобы создать публикацию для всех таблиц в конкретной схеме: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public"; + ``` + + Публикация `clickpipes` будет содержать набор событий изменений, генерируемых из указанных таблиц, и позже будет использоваться для приёма потока репликации. ## Настройка сетевого доступа {#configure-network-access} @@ -132,4 +148,4 @@ postgres=> SHOW wal_sender_timeout ; ## Что дальше? {#whats-next} Теперь вы можете [создать свой ClickPipe](../index.md) и начать приём данных из своего кластера Aurora PostgreSQL в ClickHouse Cloud. -Обязательно запишите параметры подключения, которые вы использовали при его настройке, — они понадобятся вам при создании ClickPipe. +Обязательно запишите параметры подключения, которые вы использовали при его настройке, — они понадобятся вам при создании ClickPipe. \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/azure-flexible-server-postgres.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/azure-flexible-server-postgres.md index d2abe67ed0c..f355f13b23c 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/azure-flexible-server-postgres.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/azure-flexible-server-postgres.md @@ -13,6 +13,7 @@ import restart from '@site/static/images/integrations/data-ingestion/clickpipes/ import firewall from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/azure-flexible-server-postgres/firewall.png'; import Image from '@theme/IdealImage'; + # Руководство по настройке источника Azure Flexible Server для Postgres {#azure-flexible-server-for-postgres-source-setup-guide} ClickPipes поддерживает Postgres версии 12 и новее. @@ -35,15 +36,15 @@ ClickPipes поддерживает Postgres версии 12 и новее. ## Создание пользователей ClickPipes и выдача прав доступа {#creating-clickpipes-user-and-granting-permissions} -Подключитесь к вашему Azure Flexible Server Postgres под учетной записью администратора и выполните следующие команды: +Подключитесь к Azure Flexible Server Postgres под учетной записью администратора и выполните следующие команды: -1. Создайте пользователя Postgres, предназначенного исключительно для ClickPipes. +1. Создайте отдельного пользователя для ClickPipes. ```sql CREATE USER clickpipes_user PASSWORD 'some-password'; ``` -2. Предоставьте пользователю `clickpipes_user` доступ только на чтение к схеме, из которой вы реплицируете таблицы. В приведенном ниже примере показана настройка прав доступа для схемы `public`. Если вы хотите выдать доступ к нескольким схемам, выполните эти три команды для каждой схемы. +2. Предоставьте на уровне схемы права только на чтение пользователю, созданному на предыдущем шаге. В следующем примере показаны права для схемы `public`. Повторите эти команды для каждой схемы, содержащей таблицы, которые вы хотите реплицировать: ```sql GRANT USAGE ON SCHEMA "public" TO clickpipes_user; @@ -51,19 +52,33 @@ ClickPipes поддерживает Postgres версии 12 и новее. ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; ``` -3. Выдайте этому пользователю права на репликацию: +3. Выдайте пользователю привилегии репликации: ```sql ALTER ROLE clickpipes_user REPLICATION; ``` -4. Создайте публикацию, которую вы будете использовать для создания MIRROR (репликации) в будущем. +4. Создайте [publication](https://www.postgresql.org/docs/current/logical-replication-publication.html) с таблицами, которые вы хотите реплицировать. Настоятельно рекомендуется включать в публикацию только те таблицы, которые вам действительно нужны, чтобы избежать накладных расходов и снижения производительности. - ```sql - CREATE PUBLICATION clickpipes_publication FOR ALL TABLES; - ``` + :::warning + Любая таблица, включенная в публикацию, должна либо иметь определённый **первичный ключ**, _либо_ для неё должен быть настроен **replica identity** со значением `FULL`. См. раздел [Postgres FAQs](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication) для рекомендаций по выбору области действия публикаций. + ::: + + - Чтобы создать публикацию для определённых таблиц: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2; + ``` + + - Чтобы создать публикацию для всех таблиц в определённой схеме: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public"; + ``` + + Публикация `clickpipes` будет содержать набор событий изменений, сгенерированных из указанных таблиц, и позже будет использоваться для приёма потока репликации. -5. Установите для `clickpipes_user` значение `wal_sender_timeout`, равное 0. +5. Установите для `wal_sender_timeout` значение 0 для `clickpipes_user`: ```sql ALTER ROLE clickpipes_user SET wal_sender_timeout to 0; @@ -81,4 +96,4 @@ ClickPipes поддерживает Postgres версии 12 и новее. ## Что дальше? {#whats-next} Теперь вы можете [создать ClickPipe](../index.md) и начать приём данных из вашего экземпляра Postgres в ClickHouse Cloud. -Обязательно сохраните параметры подключения, которые вы использовали при настройке экземпляра Postgres, так как они понадобятся вам при создании ClickPipe. +Обязательно сохраните параметры подключения, которые вы использовали при настройке экземпляра Postgres, так как они понадобятся вам при создании ClickPipe. \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/crunchy-postgres.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/crunchy-postgres.md index 27cb094e44d..9c364d2cacf 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/crunchy-postgres.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/crunchy-postgres.md @@ -11,9 +11,10 @@ import firewall_rules_crunchy_bridge from '@site/static/images/integrations/data import add_firewall_rules_crunchy_bridge from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/setup/crunchy-postgres/add_firewall_rules_crunchy_bridge.png' import Image from '@theme/IdealImage'; + # Руководство по настройке источника данных Crunchy Bridge Postgres {#crunchy-bridge-postgres-source-setup-guide} -ClickPipes поддерживает Postgres версии 12 и более поздних. +ClickPipes поддерживает Postgres версии 12 и новее. ## Включение логической репликации {#enable-logical-replication} @@ -25,17 +26,18 @@ SHOW max_wal_senders; -- should be 10 SHOW max_replication_slots; -- should be 10 ``` -## Создание пользователя ClickPipes и выдача прав доступа {#creating-clickpipes-user-and-granting-permissions} -Подключитесь к своему Crunchy Bridge Postgres под пользователем `postgres` и выполните следующие команды: +## Создание пользователя ClickPipes и выдача прав {#creating-clickpipes-user-and-granting-permissions} + +Подключитесь к вашему Crunchy Bridge Postgres от имени пользователя `postgres` и выполните следующие команды: -1. Создайте пользователя Postgres, предназначенного исключительно для ClickPipes. +1. Создайте отдельного пользователя для ClickPipes: ```sql CREATE USER clickpipes_user PASSWORD 'some-password'; ``` -2. Предоставьте пользователю `clickpipes_user` доступ только на чтение к схеме, из которой вы реплицируете таблицы. В приведённом ниже примере показано предоставление прав для схемы `public`. Если вы хотите предоставить доступ к нескольким схемам, выполните эти три команды для каждой схемы. +2. Предоставьте на уровне схемы доступ только для чтения пользователю, созданному на предыдущем шаге. В следующем примере показаны права для схемы `public`. Повторите эти команды для каждой схемы, содержащей таблицы, которые вы хотите реплицировать: ```sql GRANT USAGE ON SCHEMA "public" TO clickpipes_user; @@ -43,17 +45,31 @@ SHOW max_replication_slots; -- should be 10 ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; ``` -3. Предоставьте этому пользователю права на репликацию: +3. Выдайте пользователю права на репликацию: ```sql ALTER ROLE clickpipes_user REPLICATION; ``` -4. Создайте публикацию, которую вы будете использовать в дальнейшем для создания MIRROR (репликации). +4. Создайте [публикацию](https://www.postgresql.org/docs/current/logical-replication-publication.html) с таблицами, которые вы хотите реплицировать. Настоятельно рекомендуется включать в публикацию только необходимые таблицы, чтобы избежать лишних накладных расходов и деградации производительности. - ```sql - CREATE PUBLICATION clickpipes_publication FOR ALL TABLES; - ``` + :::warning + Любая таблица, включённая в публикацию, должна либо иметь определённый **первичный ключ**, _либо_ её **replica identity** должна быть настроена на `FULL`. См. раздел [Postgres FAQs](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication) для рекомендаций по определению области публикаций. + ::: + + - Чтобы создать публикацию для конкретных таблиц: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2; + ``` + + - Чтобы создать публикацию для всех таблиц в определённой схеме: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public"; + ``` + + Публикация `clickpipes` будет содержать набор событий изменений, сгенерированных из указанных таблиц, и позже будет использоваться для приёма потока репликации. ## Разрешение IP-адресов ClickPipes {#safe-list-clickpipes-ips} @@ -66,4 +82,4 @@ SHOW max_replication_slots; -- should be 10 ## Что дальше? {#whats-next} Теперь вы можете [создать ClickPipe](../index.md) и начать приём данных из экземпляра Postgres в ClickHouse Cloud. -Обязательно сохраните параметры подключения, которые вы использовали при настройке экземпляра Postgres, так как они понадобятся при создании ClickPipe. +Обязательно сохраните параметры подключения, которые вы использовали при настройке экземпляра Postgres, так как они понадобятся при создании ClickPipe. \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/generic.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/generic.md index 2d9f527ed4f..4ae9d5e5a85 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/generic.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/generic.md @@ -52,31 +52,49 @@ ClickPipes поддерживает Postgres версий 12 и выше. ``` 3. Если вы внесли какие-либо изменения в конфигурацию, как описано выше, вам НЕОБХОДИМО ПЕРЕЗАПУСТИТЬ экземпляр Postgres, чтобы изменения вступили в силу. -## Создание пользователя с правами и публикацией {#creating-a-user-with-permissions-and-publication} +## Создание пользователя с правами доступа и публикацией {#creating-a-user-with-permissions-and-publication} -Создайте нового пользователя для ClickPipes с необходимыми правами, подходящими для CDC, -а также создайте публикацию, которую мы будем использовать для репликации. +Подключитесь к вашему экземпляру Postgres под учетной записью администратора и выполните следующие команды: -Для этого подключитесь к вашему экземпляру PostgreSQL и выполните следующие SQL-команды: +1. Создайте отдельного пользователя для ClickPipes: -```sql - CREATE USER clickpipes_user PASSWORD 'clickpipes_password'; - GRANT USAGE ON SCHEMA "public" TO clickpipes_user; - GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; - ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; + ```sql + CREATE USER clickpipes_user PASSWORD 'some-password'; + ``` --- Give replication permission to the USER - ALTER USER clickpipes_user REPLICATION; +2. Предоставьте на уровне схемы доступ только для чтения пользователю, созданному на предыдущем шаге. В следующем примере показаны права для схемы `public`. Повторите эти команды для каждой схемы, содержащей таблицы, которые вы хотите реплицировать: + + ```sql + GRANT USAGE ON SCHEMA "public" TO clickpipes_user; + GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; + ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; + ``` --- Create a publication. We will use this when creating the pipe - CREATE PUBLICATION clickpipes_publication FOR ALL TABLES; -``` +3. Предоставьте пользователю привилегии репликации: -:::note + ```sql + ALTER ROLE clickpipes_user REPLICATION; + ``` -Обязательно замените `clickpipes_user` и `clickpipes_password` на выбранные вами имя пользователя и пароль. +4. Создайте [публикацию](https://www.postgresql.org/docs/current/logical-replication-publication.html) с таблицами, которые вы хотите реплицировать. Настоятельно рекомендуется включать в публикацию только необходимые таблицы, чтобы избежать дополнительной нагрузки на производительность. -::: + :::warning + Любая таблица, включённая в публикацию, должна либо иметь определённый **первичный ключ**, _либо_ иметь настроенную **replica identity** со значением `FULL`. См. раздел [Postgres FAQs](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication) для рекомендаций по определению области действия публикаций. + ::: + + - Чтобы создать публикацию для определённых таблиц: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2; + ``` + + - Чтобы создать публикацию для всех таблиц в определённой схеме: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public"; + ``` + + Публикация `clickpipes` будет содержать набор событий изменений, сгенерированных указанными таблицами, и позже будет использоваться для приёма потока репликации. ## Разрешение подключений в pg_hba.conf для пользователя ClickPipes {#enabling-connections-in-pg_hbaconf-to-the-clickpipes-user} @@ -114,7 +132,8 @@ SELECT pg_reload_conf(); ::: + ## Что дальше? {#whats-next} Теперь вы можете [создать свой ClickPipe](../index.md) и начать приём данных из вашего экземпляра Postgres в ClickHouse Cloud. -Обязательно сохраните параметры подключения, которые вы использовали при настройке экземпляра Postgres, — они понадобятся вам при создании ClickPipe. +Обязательно сохраните параметры подключения, которые вы использовали при настройке экземпляра Postgres, — они понадобятся вам при создании ClickPipe. \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql.md index bc6bcf5cafd..5f5bf469efb 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql.md @@ -17,6 +17,7 @@ import firewall1 from '@site/static/images/integrations/data-ingestion/clickpipe import firewall2 from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/firewall2.png'; import Image from '@theme/IdealImage'; + # Руководство по настройке источника Google Cloud SQL Postgres {#google-cloud-sql-postgres-source-setup-guide} :::info @@ -40,20 +41,22 @@ import Image from '@theme/IdealImage'; 2. Перейдите в раздел Flags и измените `cloudsql.logical_decoding` на on, а `wal_sender_timeout` — на 0. Для применения этих изменений потребуется перезапустить сервер Postgres. + + -## Создание пользователя ClickPipes и выдача прав {#creating-clickpipes-user-and-granting-permissions} +## Создание пользователя ClickPipes и назначение прав {#creating-clickpipes-user-and-granting-permissions} -Подключитесь к вашему Cloud SQL Postgres под администраторской учетной записью и выполните следующие команды: +Подключитесь к вашему Cloud SQL Postgres под учётной записью администратора и выполните следующие команды: -1. Создайте отдельного пользователя Postgres, предназначенного исключительно для ClickPipes. +1. Создайте выделенного пользователя для ClickPipes: ```sql CREATE USER clickpipes_user PASSWORD 'some-password'; ``` -2. Предоставьте пользователю `clickpipes_user` доступ только для чтения к схеме, из которой вы реплицируете таблицы. Ниже приведен пример настройки прав для схемы `public`. Если вы хотите выдать доступ к нескольким схемам, выполните эти три команды для каждой схемы. +2. Предоставьте на уровне схемы доступ только на чтение пользователю, созданному на предыдущем шаге. В следующем примере показаны права для схемы `public`. Повторите эти команды для каждой схемы, содержащей таблицы, которые вы хотите реплицировать: ```sql GRANT USAGE ON SCHEMA "public" TO clickpipes_user; @@ -61,19 +64,33 @@ import Image from '@theme/IdealImage'; ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; ``` -3. Выдайте этому пользователю права на репликацию: +3. Предоставьте пользователю права на репликацию: ```sql ALTER ROLE clickpipes_user REPLICATION; ``` -4. Создайте publication, которую вы в дальнейшем будете использовать для создания MIRROR (репликации). +4. Создайте [publication](https://www.postgresql.org/docs/current/logical-replication-publication.html) с таблицами, которые вы хотите реплицировать. Настоятельно рекомендуется включать в публикацию только те таблицы, которые вам действительно нужны, чтобы избежать лишней нагрузки на производительность. - ```sql - CREATE PUBLICATION clickpipes_publication FOR ALL TABLES; - ``` + :::warning + Любая таблица, включённая в публикацию, должна либо иметь определённый **primary key**, _либо_ иметь настроенную **replica identity** со значением `FULL`. См. раздел [Postgres FAQs](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication) для рекомендаций по определению области публикаций. + ::: + + - Чтобы создать публикацию для конкретных таблиц: -[//]: # (TODO Добавить SSH-туннелирование) + ```sql + CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2; + ``` + + - Чтобы создать публикацию для всех таблиц в конкретной схеме: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public"; + ``` + + Публикация `clickpipes` будет содержать набор событий изменений, генерируемых указанными таблицами, и далее будет использоваться для приёма потока репликации. + +[//]: # (TODO Add SSH Tunneling) ## Добавление IP-адресов ClickPipes в брандмауэр {#add-clickpipes-ips-to-firewall} @@ -96,9 +113,10 @@ import Image from '@theme/IdealImage'; 3. Добавьте [публичные IP-адреса ClickPipes](../../index.md#list-of-static-ips) + ## Что дальше? {#whats-next} Теперь вы можете [создать ClickPipe](../index.md) и начать приём данных из экземпляра Postgres в ClickHouse Cloud. -Обязательно сохраните сведения о подключении, которые вы использовали при настройке экземпляра Postgres — они понадобятся при создании ClickPipe. +Обязательно сохраните сведения о подключении, которые вы использовали при настройке экземпляра Postgres — они понадобятся при создании ClickPipe. \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/neon-postgres.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/neon-postgres.md index a791871ff6e..e9346212bc3 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/neon-postgres.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/neon-postgres.md @@ -7,13 +7,13 @@ doc_type: 'guide' keywords: ['clickpipes', 'postgresql', 'cdc', 'ингестия данных', 'синхронизация в реальном времени'] --- -import neon_commands from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/setup/neon-postgres/neon-commands.png' import neon_enable_replication from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/setup/neon-postgres/neon-enable-replication.png' import neon_enabled_replication from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/setup/neon-postgres/neon-enabled-replication.png' import neon_ip_allow from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/setup/neon-postgres/neon-ip-allow.png' import neon_conn_details from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/setup/neon-postgres/neon-conn-details.png' import Image from '@theme/IdealImage'; + # Руководство по настройке источника Neon Postgres {#neon-postgres-source-setup-guide} Это руководство по настройке Neon Postgres, который вы можете использовать для репликации данных в ClickPipes. @@ -21,28 +21,47 @@ import Image from '@theme/IdealImage'; ## Создание пользователя с правами доступа {#creating-a-user-with-permissions} -Давайте создадим нового пользователя для ClickPipes с необходимыми правами доступа для CDC, -а также создадим публикацию, которую будем использовать для репликации. +Подключитесь к вашему экземпляру Neon под пользователем с правами администратора и выполните следующие команды: -Для этого перейдите на вкладку **SQL Editor**. -Здесь мы можем выполнить следующие SQL команды: +1. Создайте отдельного пользователя для ClickPipes: -```sql - CREATE USER clickpipes_user PASSWORD 'clickpipes_password'; - GRANT USAGE ON SCHEMA "public" TO clickpipes_user; - GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; - ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; + ```sql + CREATE USER clickpipes_user PASSWORD 'some-password'; + ``` --- Give replication permission to the USER - ALTER USER clickpipes_user REPLICATION; +2. Предоставьте на уровне схемы доступ только для чтения пользователю, созданному на предыдущем шаге. В следующем примере показаны права для схемы `public`. Повторите эти команды для каждой схемы, содержащей таблицы, которые вы хотите реплицировать: + + ```sql + GRANT USAGE ON SCHEMA "public" TO clickpipes_user; + GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; + ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; + ``` --- Create a publication. We will use this when creating the mirror - CREATE PUBLICATION clickpipes_publication FOR ALL TABLES; -``` +3. Предоставьте пользователю права на репликацию: + + ```sql + ALTER ROLE clickpipes_user REPLICATION; + ``` + +4. Создайте [publication](https://www.postgresql.org/docs/current/logical-replication-publication.html) с таблицами, которые вы хотите реплицировать. Настоятельно рекомендуется включать в публикацию только необходимые таблицы, чтобы избежать лишних накладных расходов на производительность. + + :::warning + Любая таблица, включённая в публикацию, должна либо иметь определённый **первичный ключ**, _либо_ для неё должна быть настроена **replica identity** со значением `FULL`. См. раздел [Postgres FAQs](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication) для рекомендаций по выбору области публикаций. + ::: - + - Чтобы создать публикацию для конкретных таблиц: -Нажмите **Run**, чтобы создать пользователя и публикацию. + ```sql + CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2; + ``` + + - Чтобы создать публикацию для всех таблиц в конкретной схеме: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public"; + ``` + + Публикация `clickpipes` будет содержать набор событий изменений, генерируемых из указанных таблиц, и позже будет использоваться для приёма потока репликации. ## Включите логическую репликацию {#enable-logical-replication} @@ -63,13 +82,16 @@ SHOW max_wal_senders; -- should be 10 SHOW max_replication_slots; -- should be 10 ``` + ## Разрешение IP-адресов (для тарифа Neon Enterprise) {#ip-whitelisting-for-neon-enterprise-plan} + Если вы используете тариф Neon Enterprise, вы можете разрешить [IP-адреса ClickPipes](../../index.md#list-of-static-ips), чтобы включить репликацию из ClickPipes в экземпляр Neon Postgres. Для этого откройте вкладку **Settings** и перейдите в раздел **IP Allow**. ## Скопируйте данные подключения {#copy-connection-details} + Теперь, когда у нас создан пользователь, подготовлена публикация и включена репликация, мы можем скопировать данные подключения, чтобы создать новый ClickPipe. Перейдите в **Dashboard** и в текстовом поле, где отображается строка подключения, измените режим отображения на **Parameters Only**. Эти параметры понадобятся нам на следующем шаге. @@ -79,4 +101,4 @@ SHOW max_replication_slots; -- should be 10 ## Что дальше? {#whats-next} Теперь вы можете [создать ClickPipe](../index.md) и начать приём данных из экземпляра Postgres в ClickHouse Cloud. -Обязательно сохраните параметры подключения, которые вы использовали при настройке экземпляра Postgres, поскольку они понадобятся вам при создании ClickPipe. +Обязательно сохраните параметры подключения, которые вы использовали при настройке экземпляра Postgres, поскольку они понадобятся вам при создании ClickPipe. \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/planetscale.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/planetscale.md index 841e2f75986..c1d66b8828f 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/planetscale.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/planetscale.md @@ -11,6 +11,7 @@ import planetscale_wal_level_logical from '@site/static/images/integrations/data import planetscale_max_slot_wal_keep_size from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/planetscale/planetscale_max_slot_wal_keep_size.png'; import Image from '@theme/IdealImage'; + # Руководство по настройке источника данных PlanetScale for Postgres {#planetscale-for-postgres-source-setup-guide} :::info @@ -47,29 +48,47 @@ ClickPipes поддерживает Postgres, начиная с версии 12. ## Создание пользователя с правами доступа и публикацией {#creating-a-user-with-permissions-and-publication} -Создадим нового пользователя для ClickPipes с необходимыми правами доступа, подходящими для CDC, -а также создадим публикацию, которую будем использовать для репликации. +Подключитесь к экземпляру PlanetScale Postgres, используя пользователя по умолчанию `postgres.<...>`, и выполните следующие команды: + +1. Создайте отдельного пользователя для ClickPipes: -Для этого вы можете подключиться к вашему экземпляру PlanetScale Postgres, используя пользователя по умолчанию `postgres.<...>`, и выполнить следующие SQL-команды: + ```sql + CREATE USER clickpipes_user PASSWORD 'some-password'; + ``` -```sql - CREATE USER clickpipes_user PASSWORD 'clickpipes_password'; - GRANT USAGE ON SCHEMA "public" TO clickpipes_user; --- You may need to grant these permissions on more schemas depending on the tables you're moving - GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; - ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; +2. Выдайте пользователю, созданному на предыдущем шаге, права только на чтение на уровне схемы. В следующем примере показаны права для схемы `public`. Повторите эти команды для каждой схемы, содержащей таблицы, которые вы хотите реплицировать: --- Give replication permission to the USER - ALTER USER clickpipes_user REPLICATION; + ```sql + GRANT USAGE ON SCHEMA "public" TO clickpipes_user; + GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; + ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; + ``` --- Create a publication. We will use this when creating the pipe --- When adding new tables to the ClickPipe, you'll need to manually add them to the publication as well. - CREATE PUBLICATION clickpipes_publication FOR TABLE <...>, <...>, <...>; -``` +3. Выдайте пользователю привилегии репликации: -:::note -Обязательно замените `clickpipes_user` и `clickpipes_password` на выбранные вами имя пользователя и пароль. -::: + ```sql + GRANT rds_replication TO clickpipes_user; + ``` + +4. Создайте [publication](https://www.postgresql.org/docs/current/logical-replication-publication.html) с таблицами, которые вы хотите реплицировать. Настоятельно рекомендуется включать в публикацию только необходимые таблицы, чтобы избежать лишних накладных расходов на производительность. + + :::warning + Любая таблица, включённая в публикацию, должна либо иметь определённый **primary key**, _либо_ для неё должна быть настроена **replica identity** со значением `FULL`. См. раздел [Postgres FAQs](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication) для рекомендаций по выбору области публикаций. + ::: + + - Чтобы создать публикацию для отдельных таблиц: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2; + ``` + + - Чтобы создать публикацию для всех таблиц в определённой схеме: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public"; + ``` + + Публикация `clickpipes` будет содержать набор событий изменений, сгенерированных из указанных таблиц, и впоследствии будет использоваться для приёма потока репликации. ## Особенности и ограничения {#caveats} 1. Для подключения к PlanetScale Postgres к имени пользователя, созданному выше, необходимо добавить текущую ветку. Например, если созданный пользователь назывался `clickpipes_user`, фактическое имя пользователя, указываемое при создании ClickPipe, должно быть `clickpipes_user`.`branch`, где `branch` — это `id` текущей [ветки](https://planetscale.com/docs/postgres/branching) PlanetScale Postgres. Чтобы быстро определить это значение, вы можете посмотреть на имя пользователя `postgres`, под которым вы создавали этого пользователя ранее, — часть после точки и будет идентификатором ветки. @@ -79,4 +98,4 @@ ClickPipes поддерживает Postgres, начиная с версии 12. ## Что дальше? {#whats-next} Теперь вы можете [создать свой ClickPipe](../index.md) и начать приём данных из вашего экземпляра Postgres в ClickHouse Cloud. -Обязательно запишите параметры подключения, которые вы использовали при его настройке, так как они понадобятся вам при создании ClickPipe. +Обязательно запишите параметры подключения, которые вы использовали при его настройке, так как они понадобятся вам при создании ClickPipe. \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/rds.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/rds.md index fff2d6b2516..b2b6bc16836 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/rds.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/rds.md @@ -16,11 +16,12 @@ import security_group_in_rds_postgres from '@site/static/images/integrations/dat import edit_inbound_rules from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/rds/edit_inbound_rules.png'; import Image from '@theme/IdealImage'; + # Руководство по настройке источника данных RDS Postgres {#rds-postgres-source-setup-guide} ## Поддерживаемые версии Postgres {#supported-postgres-versions} -ClickPipes поддерживает Postgres версии 12 и выше. +ClickPipes поддерживает Postgres версии 12 и новее. ## Включите логическую репликацию {#enable-logical-replication} @@ -65,17 +66,18 @@ postgres=> SHOW wal_sender_timeout ; + ## Настройка пользователя базы данных {#configure-database-user} -Подключитесь к вашему экземпляру RDS PostgreSQL под учетной записью администратора и выполните следующие команды: +Подключитесь к вашему экземпляру RDS Postgres под учётной записью администратора и выполните следующие команды: -1. Создайте отдельную учетную запись пользователя для ClickPipes: +1. Создайте выделенного пользователя для ClickPipes: ```sql CREATE USER clickpipes_user PASSWORD 'some-password'; ``` -2. Предоставьте права на схему. В следующем примере показаны права для схемы `public`. Повторите эти команды для каждой схемы, которую вы хотите реплицировать: +2. Предоставьте пользователю, созданному на предыдущем шаге, права только на чтение на уровне схемы. В следующем примере показаны права для схемы `public`. Повторите эти команды для каждой схемы, содержащей таблицы, которые вы хотите реплицировать: ```sql GRANT USAGE ON SCHEMA "public" TO clickpipes_user; @@ -83,17 +85,31 @@ postgres=> SHOW wal_sender_timeout ; ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; ``` -3. Предоставьте привилегии репликации: +3. Предоставьте пользователю привилегии для репликации: ```sql GRANT rds_replication TO clickpipes_user; ``` -4. Создайте публикацию для репликации: +4. Создайте [publication](https://www.postgresql.org/docs/current/logical-replication-publication.html) с таблицами, которые вы хотите реплицировать. Настоятельно рекомендуется включать в публикацию только необходимые таблицы, чтобы избежать лишних накладных расходов и деградации производительности. - ```sql - CREATE PUBLICATION clickpipes_publication FOR ALL TABLES; - ``` + :::warning + Любая таблица, включённая в публикацию, должна либо иметь определённый **первичный ключ**, _либо_ для неё должна быть настроена **replica identity** со значением `FULL`. См. раздел [Postgres FAQs](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication) для рекомендаций по выбору области публикаций. + ::: + + - Чтобы создать публикацию для конкретных таблиц: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2; + ``` + + - Чтобы создать публикацию для всех таблиц в конкретной схеме: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public"; + ``` + + Публикация `clickpipes` будет содержать набор событий об изменениях, сгенерированных из указанных таблиц, и в дальнейшем будет использоваться для приёма потока репликации. ## Настройка сетевого доступа {#configure-network-access} @@ -110,14 +126,15 @@ postgres=> SHOW wal_sender_timeout ; Чтобы подключаться к вашему экземпляру RDS через частную сеть, можно использовать AWS PrivateLink. Следуйте нашему [руководству по настройке AWS PrivateLink для ClickPipes](/knowledgebase/aws-privatelink-setup-for-clickpipes), чтобы настроить подключение. ### Обходные решения для RDS Proxy {#workarounds-for-rds-proxy} + RDS Proxy не поддерживает подключения для логической репликации. Если у вас динамические IP-адреса в RDS и вы не можете использовать DNS-имя или функцию AWS Lambda, рассмотрите следующие альтернативы: 1. С помощью cron-задачи периодически определяйте IP-адрес конечной точки RDS и обновляйте NLB, если он изменился. 2. Использование RDS Event Notifications с EventBridge/SNS: автоматически инициируйте обновления с помощью уведомлений о событиях AWS RDS. -3. Постоянный экземпляр EC2: разверните экземпляр EC2, который будет выступать в роли сервиса опроса или прокси на основе IP-адресов. +3. Постоянно работающий экземпляр EC2: разверните экземпляр EC2, который будет выступать в роли сервиса опроса или прокси на основе IP-адресов. 4. Автоматизируйте управление IP-адресами с помощью таких инструментов, как Terraform или CloudFormation. ## Что дальше? {#whats-next} Теперь вы можете [создать ClickPipe](../index.md) и начать приём данных из вашего экземпляра Postgres в ClickHouse Cloud. -Обязательно сохраните параметры подключения, которые вы использовали при настройке этого экземпляра Postgres, — они понадобятся вам при создании ClickPipe. +Обязательно сохраните параметры подключения, которые вы использовали при настройке этого экземпляра Postgres, — они понадобятся вам при создании ClickPipe. \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/supabase.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/supabase.md index 363af5a0e44..d0f12785259 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/supabase.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/supabase.md @@ -11,6 +11,7 @@ import supabase_commands from '@site/static/images/integrations/data-ingestion/c import supabase_connection_details from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/setup/supabase/supabase-connection-details.jpg' import Image from '@theme/IdealImage'; + # Руководство по настройке источника Supabase {#supabase-source-setup-guide} Это руководство по настройке Supabase Postgres для использования в ClickPipes. @@ -21,38 +22,49 @@ ClickPipes нативно поддерживает Supabase через IPv6 дл ::: -## Создание пользователя с правами доступа и слотом репликации {#creating-a-user-with-permissions-and-replication-slot} +## Создание пользователя с правами и слотом репликации {#creating-a-user-with-permissions-and-replication-slot} -Давайте создадим нового пользователя для ClickPipes с необходимыми правами, подходящими для CDC, -а также создадим публикацию, которую мы будем использовать для репликации. +Подключитесь к вашему инстансу Supabase от имени пользователя с правами администратора и выполните следующие команды: -Для этого перейдите в **SQL Editor** вашего проекта Supabase. -Здесь мы можем выполнить следующие SQL-команды: +1. Создайте отдельного пользователя для ClickPipes: -```sql - CREATE USER clickpipes_user PASSWORD 'clickpipes_password'; - GRANT USAGE ON SCHEMA "public" TO clickpipes_user; - GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; - ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; + ```sql + CREATE USER clickpipes_user PASSWORD 'some-password'; + ``` --- Give replication permission to the USER - ALTER USER clickpipes_user REPLICATION; +2. Предоставьте пользователю, созданному на предыдущем шаге, права только на чтение на уровне схемы. В следующем примере показаны права для схемы `public`. Повторите эти команды для каждой схемы, содержащей таблицы, которые вы хотите реплицировать: + + ```sql + GRANT USAGE ON SCHEMA "public" TO clickpipes_user; + GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; + ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; + ``` --- Create a publication. We will use this when creating the mirror - CREATE PUBLICATION clickpipes_publication FOR ALL TABLES; -``` +3. Предоставьте пользователю привилегии на репликацию: - + ```sql + ALTER ROLE clickpipes_user REPLICATION; + ``` -Нажмите **Run**, чтобы создать публикацию и пользователя. +4. Создайте [publication](https://www.postgresql.org/docs/current/logical-replication-publication.html) с таблицами, которые вы хотите реплицировать. Настоятельно рекомендуется включать в publication только те таблицы, которые вам действительно нужны, чтобы избежать лишних накладных расходов на производительность. -:::note + :::warning + Каждая таблица, включённая в publication, должна либо иметь определённый **primary key**, _либо_ её **replica identity** должна быть настроена в значение `FULL`. См. раздел [Postgres FAQs](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication) для получения рекомендаций по выбору области действия publication. + ::: -Обязательно замените `clickpipes_user` и `clickpipes_password` на нужные вам имя пользователя и пароль. + - Чтобы создать publication для конкретных таблиц: -Также не забудьте использовать то же имя публикации при создании зеркала в ClickPipes. + ```sql + CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2; + ``` -::: + - Чтобы создать publication для всех таблиц в определённой схеме: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public"; + ``` + + Publication `clickpipes` будет содержать набор событий изменений, сгенерированных из указанных таблиц, и позже будет использоваться для приёма потока репликации. ## Увеличение `max_slot_wal_keep_size` {#increase-max_slot_wal_keep_size} @@ -88,7 +100,8 @@ ClickPipes нативно поддерживает Supabase через IPv6 дл ALTER USER clickpipes_user BYPASSRLS; ``` + ## Что дальше? {#whats-next} Теперь вы можете [создать ClickPipe](../index.md) и начать приём данных из экземпляра Postgres в ClickHouse Cloud. -Обязательно запишите параметры подключения, которые вы использовали при настройке экземпляра Postgres, так как они понадобятся вам при создании ClickPipe. +Обязательно запишите параметры подключения, которые вы использовали при настройке экземпляра Postgres, так как они понадобятся вам при создании ClickPipe. \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/timescale.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/timescale.md index 0eebfa059c8..8fdb548c5af 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/timescale.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/timescale.md @@ -9,6 +9,7 @@ doc_type: 'guide' import BetaBadge from '@theme/badges/BetaBadge'; + # Руководство по настройке источника данных Postgres с TimescaleDB {#postgres-with-timescaledb-source-setup-guide} @@ -54,47 +55,53 @@ Postgres ClickPipe. ## Конфигурация {#configuration} -Hypertable в Timescale не хранят данные, вставляемые непосредственно в них. Вместо этого данные сохраняются в нескольких соответствующих таблицах‑фрагментах («chunk»), которые находятся в схеме `_timescaledb_internal`. Для выполнения запросов к hypertable это не является проблемой. Но при логической репликации, вместо того чтобы отслеживать изменения в hypertable, мы отслеживаем их в таблицах chunk. Postgres ClickPipe содержит логику автоматического сопоставления изменений из таблиц chunk с родительской hypertable, но для этого требуются дополнительные шаги. +Hypertable в Timescale не хранят данные, вставляемые непосредственно в них. Вместо этого данные сохраняются в нескольких соответствующих таблицах‑фрагментах («chunk»), которые находятся в схеме `_timescaledb_internal`. Для выполнения запросов к hypertable это не является проблемой. Но при логической репликации, вместо того чтобы отслеживать изменения в hypertable, мы отслеживаем их в таблице chunk. Postgres ClickPipe содержит логику автоматического сопоставления изменений из таблиц chunk с родительской hypertable, но для этого требуются дополнительные шаги. :::info Если вы хотите выполнить только однократную загрузку ваших данных (`Initial Load Only`), пропустите шаги, начиная со второго. ::: -1. Создайте пользователя Postgres для ClickPipe и назначьте ему права `SELECT` на таблицы, которые вы хотите реплицировать. +1. Создайте отдельного пользователя для ClickPipes: -```sql - CREATE USER clickpipes_user PASSWORD 'clickpipes_password'; - GRANT USAGE ON SCHEMA "public" TO clickpipes_user; - -- If desired, you can refine these GRANTs to individual tables alone, instead of the entire schema - -- But when adding new tables to the ClickPipe, you'll need to add them to the user as well. - GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; - ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; -``` + ```sql + CREATE USER clickpipes_user PASSWORD 'some-password'; + ``` -:::note -Обязательно замените `clickpipes_user` и `clickpipes_password` на нужные имя пользователя и пароль. -::: +2. Предоставьте на уровне схемы доступ только для чтения пользователю, созданному на предыдущем шаге. В следующем примере показаны права для схемы `public`. Повторите эти команды для каждой схемы, содержащей таблицы, которые вы хотите реплицировать: -2. От имени суперпользователя/администратора Postgres создайте публикацию на исходном экземпляре, включающую таблицы и гипертаблицы, - которые вы хотите реплицировать, **а также всю схему `_timescaledb_internal`**. При создании ClickPipe необходимо выбрать эту публикацию. + ```sql + GRANT USAGE ON SCHEMA "public" TO clickpipes_user; + GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; + ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; + ``` -```sql --- When adding new tables to the ClickPipe, you'll need to add them to the publication as well manually. - CREATE PUBLICATION clickpipes_publication FOR TABLE <...>, <...>, TABLES IN SCHEMA _timescaledb_internal; -``` +3. Предоставьте пользователю права на репликацию: -:::tip -Мы не рекомендуем создавать публикацию `FOR ALL TABLES`: это приводит к увеличению трафика из Postgres в ClickPipes (в этом случае отправляются изменения и для других таблиц, не входящих в pipe) и снижает общую эффективность. + ```sql + GRANT rds_replication TO clickpipes_user; + ``` -Для публикаций, создаваемых вручную, добавьте все необходимые таблицы в публикацию, прежде чем добавлять их в pipe. -::: +4. Создайте [публикацию](https://www.postgresql.org/docs/current/logical-replication-publication.html) с таблицами, которые вы хотите реплицировать. Мы настоятельно рекомендуем включать в публикацию только необходимые таблицы, чтобы избежать лишних накладных расходов на производительность. -:::info -Некоторые управляемые сервисы не предоставляют своим администраторам необходимые права для создания публикации для всей схемы. -В таком случае обратитесь в службу поддержки вашего провайдера. В качестве альтернативы вы можете пропустить этот и следующие шаги и выполнить разовую загрузку данных. -::: + :::warning + Для любой таблицы, включённой в публикацию, должен быть определён **первичный ключ** *или* настроена **replica identity** со значением `FULL`. См. раздел [Postgres FAQs](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication) для рекомендаций по определению области публикаций. + ::: + + * Чтобы создать публикацию для конкретных таблиц: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2; + ``` + + * Чтобы создать публикацию для всех таблиц в конкретной схеме: -3. Предоставьте пользователю, созданному ранее, права на репликацию. + ```sql + CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public"; + ``` + + Публикация `clickpipes` будет содержать набор событий изменений, сгенерированных из указанных таблиц, и позже будет использована для приёма потока репликации. + +5. Предоставьте пользователю, созданному ранее, права на репликацию. ```sql -- Give replication permission to the USER @@ -103,7 +110,8 @@ Hypertable в Timescale не хранят данные, вставляемые После выполнения этих шагов вы сможете перейти к [созданию ClickPipe](../index.md). + ## Настройте сетевой доступ {#configure-network-access} Если вы хотите ограничить трафик к своему экземпляру Timescale, добавьте в список разрешённых адресов [задокументированные статические NAT IP-адреса](../../index.md#list-of-static-ips). -Инструкции по настройке зависят от провайдера: если ваш провайдер указан в боковой панели, воспользуйтесь соответствующим разделом, в противном случае обратитесь в его службу поддержки. +Инструкции по настройке зависят от провайдера: если ваш провайдер указан в боковой панели, воспользуйтесь соответствующим разделом, в противном случае обратитесь в его службу поддержки. \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/interfaces/jdbc.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/interfaces/jdbc.md index ecfe0b6f32b..af1e83ac2fa 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/interfaces/jdbc.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/interfaces/jdbc.md @@ -9,4 +9,4 @@ doc_type: 'guide' # JDBC-драйвер {#jdbc-driver} -Используйте [официальный JDBC-драйвер](/integrations/language-clients/java/jdbc) (и Java-клиент), чтобы получать доступ к ClickHouse из Java-приложений. +Используйте [официальный JDBC-драйвер](/docs/integrations/language-clients/java/jdbc) (и Java-клиент), чтобы получать доступ к ClickHouse из Java-приложений. \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/cpp.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/cpp.md index 69f406f6bfc..223979a7191 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/cpp.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/cpp.md @@ -80,11 +80,11 @@ clickhouse::Client client{clickhouse::ClientOptions().SetHost("localhost")}; clickhouse::Client client{ clickhouse::ClientOptions{} - .SetHost("your.instance.clickhouse.cloud") - .SetUser("default") - .SetPassword("your-password") + .SetHost("your.instance.clickhouse.cloud") + .SetUser("default") + .SetPassword("your-password") .SetSSLOptions({}) // Enable SSL - .SetPort(9440) // for connections over SS ClickHouse Cloud uses 9440 + .SetPort(9440) // for connections over SSL ClickHouse Cloud uses port 9440 }; ``` diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md index 9450dc3838a..309f1b2c5e0 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md @@ -12,6 +12,11 @@ integration: - website: 'https://github.com/ClickHouse/clickhouse-cs' --- +import Image from '@theme/IdealImage'; +import cloud_connect_button from '@site/static/images/_snippets/cloud-connect-button.png'; +import connection_details_csharp from '@site/static/images/_snippets/connection-details-csharp.png'; + + # Клиент ClickHouse для C# {#clickhouse-c-client} Официальный клиент C# для подключения к ClickHouse. @@ -37,8 +42,6 @@ integration: * .NET 9.0 * .NET 10.0 ---- - ## Установка {#installation} Установите пакет из NuGet: @@ -53,7 +56,6 @@ dotnet add package ClickHouse.Driver Install-Package ClickHouse.Driver ``` -*** ## Быстрый старт {#quick-start} @@ -67,70 +69,152 @@ using (var connection = new ClickHouseConnection("Host=my.clickhouse;Protocol=ht } ``` -Использование **Dapper**: -```csharp -using Dapper; -using ClickHouse.Driver.ADO; +## Конфигурация {#configuration} -using (var connection = new ClickHouseConnection("Host=my.clickhouse")) -{ - var result = await connection.QueryAsync("SELECT name FROM system.databases"); - Console.WriteLine(string.Join('\n', result)); -} -``` +Существует два способа настройки подключения к ClickHouse: -*** +* **Строка подключения:** Пары ключ/значение, разделённые точкой с запятой, которые задают хост, учётные данные для аутентификации и другие параметры подключения. +* Объект **`ClickHouseClientSettings`**: Строго типизированный объект конфигурации, который может быть загружен из файлов конфигурации или задан в коде. -## Использование {#usage} +Ниже приведён полный список всех параметров, их значений по умолчанию и того, как они влияют на подключение. -### Параметры строки подключения {#connection-string} +### Параметры подключения {#connection-settings} -| Параметр | Описание | Значение по умолчанию | -| ------------------ | ----------------------------------------------- | ---------------------- | -| `Host` | Адрес сервера ClickHouse | `localhost` | -| `Port` | Порт сервера ClickHouse | `8123` или `8443` (в зависимости от `Protocol`) | -| `Database` | Начальная база данных | `default` | -| `Username` | Имя пользователя для аутентификации | `default` | -| `Password` | Пароль для аутентификации | *(пусто)* | -| `Protocol` | Протокол подключения (`http` или `https`) | `http` | -| `Compression` | Включает сжатие Gzip | `true` | -| `UseSession` | Включает постоянную серверную сессию | `false` | -| `SessionId` | Пользовательский идентификатор сессии | Случайный GUID | -| `Timeout` | HTTP‑тайм-аут (в секундах) | `120` | -| `UseServerTimezone` | Использовать часовой пояс сервера для столбцов datetime | `true` | -| `UseCustomDecimals` | Использовать `ClickHouseDecimal` для десятичных чисел | `false` | +| Свойство | Тип | Значение по умолчанию | Ключ строки подключения | Описание | +|----------|-----|-----------------------|-------------------------|----------| +| Host | `string` | `"localhost"` | `Host` | Имя хоста или IP-адрес сервера ClickHouse | +| Port | `ushort` | 8123 (HTTP) / 8443 (HTTPS) | `Port` | Номер порта; по умолчанию выбирается в зависимости от протокола | +| Username | `string` | `"default"` | `Username` | Имя пользователя для аутентификации | +| Password | `string` | `""` | `Password` | Пароль для аутентификации | +| Database | `string` | `""` | `Database` | База данных по умолчанию; если не задано, используется значение по умолчанию сервера/пользователя | +| Protocol | `string` | `"http"` | `Protocol` | Протокол подключения: `"http"` или `"https"` | +| Path | `string` | `null` | `Path` | Путь в URL для сценариев с обратным прокси (например, `/clickhouse`) | +| Timeout | `TimeSpan` | 2 минуты | `Timeout` | Таймаут операции (в строке подключения хранится в секундах) | -**Пример:** `Host=clickhouse;Port=8123;Username=default;Password=;Database=default` +### Формат данных и сериализация {#data-format-serialization} -:::note Sessions +| Свойство | Тип | По умолчанию | Ключ строки подключения | Описание | +|----------|------|---------|----------------------|-------------| +| UseCompression | `bool` | `true` | `Compression` | Включить сжатие gzip при передаче данных | +| UseCustomDecimals | `bool` | `true` | `UseCustomDecimals` | Использовать `ClickHouseDecimal` для произвольной точности; если `false`, используется .NET `decimal` (ограничение 128 бит) | +| UseFormDataParameters | `bool` | `false` | `UseFormDataParameters` | Отправлять параметры в виде form data вместо URL-строки запроса | -Флаг `UseSession` включает сохранение серверной сессии, что позволяет использовать операторы `SET` и временные таблицы. Сессия будет сброшена после 60 секунд бездействия (тайм-аут по умолчанию). Время жизни сессии можно увеличить, задав параметры сессии с помощью операторов ClickHouse. +### Управление сессиями {#session-management} -Класс `ClickHouseConnection` обычно поддерживает параллельную работу (несколько потоков могут выполнять запросы одновременно). Однако включение флага `UseSession` ограничит выполнение одним активным запросом на соединение в любой момент времени (ограничение на стороне сервера). +| Свойство | Тип | Значение по умолчанию | Ключ строки подключения | Описание | +|----------|------|-----------------------|-------------------------|----------| +| UseSession | `bool` | `false` | `UseSession` | Включить состояние сессий; выполняет запросы последовательно | +| SessionId | `string` | `null` | `SessionId` | Идентификатор сессии; автоматически генерирует GUID, если `null` и UseSession имеет значение true | +:::note +Флаг `UseSession` включает сохранение серверной сессии, что позволяет использовать операторы `SET` и временные таблицы. Сессии будут сброшены после 60 секунд бездействия (тайм-аут по умолчанию). Время жизни сессии можно увеличить, задав параметры сессии с помощью операторов ClickHouse или конфигурации сервера. + +Класс `ClickHouseConnection` обычно поддерживает параллельную работу (несколько потоков могут выполнять запросы одновременно). Однако включение флага `UseSession` ограничит выполнение одним активным запросом на соединение в любой момент времени (это ограничение на стороне сервера). ::: ---- +### Безопасность {#security} -### Время жизни соединения и пул подключений {#connection-lifetime} +| Свойство | Тип | Значение по умолчанию | Ключ строки подключения | Описание | +|----------|------|-----------------------|--------------------------|----------| +| SkipServerCertificateValidation | `bool` | `false` | — | Отключить проверку HTTPS-сертификата; **не использовать в продуктивной среде** | -`ClickHouse.Driver` внутренне использует `System.Net.Http.HttpClient`. `HttpClient` имеет пул подключений для каждой конечной точки (endpoint). В результате: +### Конфигурация HTTP‑клиента {#http-client-configuration} -* Объект `ClickHouseConnection` не имеет отображения 1:1 на TCP‑соединения — несколько сеансов работы с базой данных будут мультиплексироваться поверх нескольких (2 по умолчанию) TCP‑соединений на один сервер. -* Соединения могут оставаться активными после удаления объекта `ClickHouseConnection`. -* Это поведение можно настроить, передав собственный `HttpClient` с пользовательским `HttpClientHandler`. +| Свойство | Тип | Значение по умолчанию | Ключ строки подключения | Описание | +|----------|------|-----------------------|-------------------------|----------| +| HttpClient | `HttpClient` | `null` | — | Пользовательский предварительно настроенный экземпляр HttpClient | +| HttpClientFactory | `IHttpClientFactory` | `null` | — | Пользовательская фабрика для создания экземпляров HttpClient | +| HttpClientName | `string` | `null` | — | Имя, используемое HttpClientFactory для создания конкретного клиента | + +### Логирование и отладка {#logging-debugging} + +| Свойство | Тип | Значение по умолчанию | Ключ строки подключения | Описание | +|----------|------|-----------------------|-------------------------|----------| +| LoggerFactory | `ILoggerFactory` | `null` | — | Фабрика логгеров для диагностического логирования | +| EnableDebugMode | `bool` | `false` | — | Включить .NET network tracing (требуется LoggerFactory с уровнем, установленным на Trace); **значительное влияние на производительность** | -Для DI‑окружений предусмотрен специальный конструктор `ClickHouseConnection(string connectionString, IHttpClientFactory httpClientFactory, string httpClientName = "")`, который позволяет централизованно настраивать HTTP‑клиент. +### Пользовательские настройки и роли {#custom-settings-roles} -**Рекомендации:** +| Свойство | Тип | Значение по умолчанию | Ключ строки подключения | Описание | +|----------|------|-----------------------|-------------------------|----------| +| CustomSettings | `IDictionary` | Пусто | префикс `set_*` | Настройки сервера ClickHouse, см. примечание ниже. | +| Roles | `IReadOnlyList` | Пусто | `Roles` | Роли ClickHouse, перечисленные через запятую (например, `Roles=admin,reader`) | -* `ClickHouseConnection` представляет собой «сеанс» с сервером. Он выполняет обнаружение возможностей, запрашивая версию сервера (что вносит небольшие накладные расходы при открытии), но в целом безопасно многократно создавать и уничтожать такие объекты. -* Рекомендуемый срок жизни соединения — один объект соединения на одну крупную «транзакцию», охватывающую несколько запросов. Поскольку при установке соединения есть небольшие накладные расходы, не рекомендуется создавать объект соединения для каждого запроса. -* Если приложение обрабатывает большие объёмы транзакций и ему необходимо часто создавать и уничтожать объекты `ClickHouseConnection`, рекомендуется использовать `IHttpClientFactory` или статический экземпляр `HttpClient` для управления соединениями. +:::note +При использовании строки подключения для задания пользовательских настроек добавляйте префикс `set_`, например «set_max_threads=4». При использовании объекта ClickHouseClientSettings префикс `set_` добавлять не нужно. + +Полный список доступных настроек см. [здесь](https://clickhouse.com/docs/operations/settings/settings). +::: --- +### Примеры строк подключения {#connection-string-examples} + +#### Простое подключение {#basic-connection} + +```text +Host=localhost;Port=8123;Username=default;Password=secret;Database=mydb +``` + + +#### С пользовательскими настройками ClickHouse {#with-custom-clickhouse-settings} + +```text +Host=localhost;set_max_threads=4;set_readonly=1;set_max_memory_usage=10000000000 +``` + + +## Использование {#usage} + +### Подключение {#connecting} + +Чтобы подключиться к ClickHouse, создайте `ClickHouseConnection` со строкой подключения или объект `ClickHouseClientSettings`. См. раздел [Configuration](#configuration) с описанием доступных параметров. + +Информация о вашем сервисе ClickHouse Cloud доступна в консоли ClickHouse Cloud. + +Выберите сервис и нажмите **Connect**: + + + +Выберите **C#**. Ниже будут отображены параметры подключения. + + + +Если вы используете самоуправляемый ClickHouse, параметры подключения задаются вашим администратором ClickHouse. + +Подключение с помощью строки подключения: + +```csharp +using ClickHouse.Driver.ADO; + +using var connection = new ClickHouseConnection("Host=localhost;Username=default;Password=secret"); +await connection.OpenAsync(); +``` + +Или, используя `ClickHouseClientSettings`: + +```csharp +var settings = new ClickHouseClientSettings +{ + Host = "localhost", + Username = "default", + Password = "secret" +}; +using var connection2 = new ClickHouseConnection(settings); +await connection2.OpenAsync(); +``` + +:::note + +* `ClickHouseConnection` представляет собой "сессию" с сервером. При создании соединения выполняется определение доступных возможностей, запрашивается версия сервера (поэтому при открытии есть небольшие накладные расходы), но в целом многократное создание и уничтожение таких объектов является безопасным. +* Рекомендуемое время жизни подключения — один объект подключения на одну большую "транзакцию", охватывающую несколько запросов. Объект `ClickHouseConnection` может быть долгоживущим. Есть небольшие накладные расходы при запуске подключения, поэтому не рекомендуется создавать объект подключения для каждого запроса. +* Если приложение работает с большими объемами транзакций и ему часто требуется создавать/уничтожать объекты `ClickHouseConnection`, рекомендуется использовать `IHttpClientFactory` или статический экземпляр `HttpClient` для управления подключениями. + ::: + +*** + + ### Создание таблицы {#creating-a-table} Создайте таблицу с использованием стандартного синтаксиса SQL: @@ -140,18 +224,19 @@ using ClickHouse.Driver.ADO; using (var connection = new ClickHouseConnection(connectionString)) { - connection.Open(); + await connection.OpenAsync(); using (var command = connection.CreateCommand()) { command.CommandText = "CREATE TABLE IF NOT EXISTS default.my_table (id Int64, name String) ENGINE = Memory"; - command.ExecuteNonQuery(); + await command.ExecuteNonQueryAsync(); } } ``` *** + ### Вставка данных {#inserting-data} Вставляйте данные с использованием параметризованных запросов: @@ -161,22 +246,25 @@ using ClickHouse.Driver.ADO; using (var connection = new ClickHouseConnection(connectionString)) { - connection.Open(); + await connection.OpenAsync(); using (var command = connection.CreateCommand()) { command.AddParameter("id", "Int64", 1); command.AddParameter("name", "String", "test"); command.CommandText = "INSERT INTO default.my_table (id, name) VALUES ({id:Int64}, {name:String})"; - command.ExecuteNonQuery(); + await command.ExecuteNonQueryAsync(); } } ``` *** + ### Массовая вставка {#bulk-insert} +Используйте `ClickHouseBulkCopy` для вставки большого количества строк. Он эффективно потоково передаёт данные, используя собственный бинарный построчный формат ClickHouse, работает в параллельном режиме и может разбивать данные на пакеты. Это также позволяет избежать ограничений, связанных с большими наборами параметров, которые вызывают ошибки «URL too long». + Для использования `ClickHouseBulkCopy` необходимы: * Целевое подключение (экземпляр `ClickHouseConnection`) @@ -188,7 +276,7 @@ using ClickHouse.Driver.ADO; using ClickHouse.Driver.Copy; using var connection = new ClickHouseConnection(connectionString); -connection.Open(); +await connection.OpenAsync(); using var bulkCopy = new ClickHouseBulkCopy(connection) { @@ -217,9 +305,12 @@ Console.WriteLine($"Rows written: {bulkCopy.RowsWritten}"); *** + ### Выполнение запросов SELECT {#performing-select-queries} -Выполните запросы SELECT и обработайте результаты: +Выполняйте запросы SELECT с помощью методов `ExecuteReader()` или `ExecuteReaderAsync()`. Возвращаемый `DbDataReader` предоставляет типизированный доступ к столбцам результата через методы, такие как `GetInt64()`, `GetString()` и `GetFieldValue()`. + +Вызывайте `Read()`, чтобы перейти к следующей строке. Метод возвращает `false`, когда строк больше нет. Обращайтесь к столбцам по индексу (с нуля) или по имени столбца. ```csharp using ClickHouse.Driver.ADO; @@ -227,13 +318,13 @@ using System.Data; using (var connection = new ClickHouseConnection(connectionString)) { - connection.Open(); - + await connection.OpenAsync(); + using (var command = connection.CreateCommand()) { command.AddParameter("id", "Int64", 10); command.CommandText = "SELECT * FROM default.my_table WHERE id < {id:Int64}"; - using var reader = command.ExecuteReader(); + using var reader = await command.ExecuteReaderAsync(); while (reader.Read()) { Console.WriteLine($"select: Id: {reader.GetInt64(0)}, Name: {reader.GetString(1)}"); @@ -244,179 +335,560 @@ using (var connection = new ClickHouseConnection(connectionString)) *** + +### Параметры SQL {#sql-parameters} + +В ClickHouse стандартный формат параметров в SQL-запросах — `{parameter_name:DataType}`. + +**Примеры:** + +```sql +SELECT {value:Array(UInt16)} as a +``` + +```sql +SELECT * FROM table WHERE val = {tuple_in_tuple:Tuple(UInt8, Tuple(String, UInt8))} +``` + +```sql +INSERT INTO table VALUES ({val1:Int32}, {val2:Array(UInt8)}) +``` + +:::note +Параметры привязки SQL (bind) передаются как параметры HTTP URI-запроса, поэтому при их чрезмерном количестве может возникнуть исключение «URL too long». Использование ClickHouseBulkInsert позволяет обойти это ограничение. +::: + +*** + + +### Идентификатор запроса {#query-id} + +Каждый метод, который выполняет запрос, также возвращает `query_id` в результате. Этот уникальный идентификатор назначается клиентом для каждого запроса и может использоваться для получения данных из таблицы `system.query_log` (если она включена) или для отмены длительно выполняющихся запросов. При необходимости пользователь может задать идентификатор запроса явно в объекте ClickHouseCommand. + +```csharp +var customQueryId = $"qid-{Guid.NewGuid()}"; + +using var command = connection.CreateCommand(); +command.CommandText = "SELECT version()"; +command.QueryId = customQueryId; + +var version = await command.ExecuteScalarAsync(); +Console.WriteLine($"QueryId: {command.QueryId}"); +``` + +:::tip +Если вы переопределяете параметр `QueryId`, необходимо обеспечить его уникальность для каждого вызова. Случайный GUID — хороший вариант. +::: + +*** + + ### Необработанный стриминг {#raw-streaming} +Можно передавать данные в определённом формате непосредственно, обходя `data reader`. Это может быть полезно, если вы хотите сохранить данные в файл в нужном формате. Например: + ```csharp using var command = connection.CreateCommand(); -command.Text = "SELECT * FROM default.my_table LIMIT 100 FORMAT JSONEachRow"; +command.CommandText = "SELECT * FROM default.my_table LIMIT 100 FORMAT JSONEachRow"; using var result = await command.ExecuteRawResultAsync(CancellationToken.None); using var stream = await result.ReadAsStreamAsync(); using var reader = new StreamReader(stream); -var json = reader.ReadToEnd(); +var json = await reader.ReadToEndAsync(); ``` *** -### Поддержка вложенных столбцов {#nested-columns} -Вложенные типы ClickHouse (`Nested(...)`) можно читать и записывать с использованием семантики массивов. +### Вставка из необработанного потока {#raw-stream-insert} -```sql -CREATE TABLE test.nested ( - id UInt32, - params Nested (param_id UInt8, param_val String) -) ENGINE = Memory -``` +Используйте `InsertRawStreamAsync`, чтобы вставлять данные непосредственно из файловых потоков или потоков памяти в форматах, таких как CSV, JSON или любой [поддерживаемый формат ClickHouse](/docs/interfaces/formats). -```csharp -using var bulkCopy = new ClickHouseBulkCopy(connection) -{ - DestinationTableName = "test.nested" -}; +**Вставка из CSV‑файла:** -var row1 = new object[] { 1, new[] { 1, 2, 3 }, new[] { "v1", "v2", "v3" } }; -var row2 = new object[] { 2, new[] { 4, 5, 6 }, new[] { "v4", "v5", "v6" } }; +```csharp +await using var fileStream = File.OpenRead("data.csv"); -await bulkCopy.WriteToServerAsync(new[] { row1, row2 }); +using var response = await connection.InsertRawStreamAsync( + table: "my_table", + stream: fileStream, + format: "CSV", + columns: ["id", "product", "price"]); // Optional: specify columns ``` +:::note +См. [документацию по настройкам форматов](/docs/operations/settings/formats) для получения сведений о параметрах, управляющих процессом ингестии данных. +::: + *** -### Столбцы типа AggregateFunction {#aggregatefunction-columns} -Столбцы типа `AggregateFunction(...)` нельзя напрямую использовать в запросах или при вставке данных. +### Дополнительные примеры {#more-examples} -Для вставки: +См. дополнительные практические примеры использования в [директории examples](https://github.com/ClickHouse/clickhouse-cs/tree/main/examples) репозитория GitHub. -```sql -INSERT INTO t VALUES (uniqState(1)); -``` +## Рекомендации {#best-practices} -Чтобы выбрать: +### Время жизни соединения и пул подключений {#best-practices-connection-lifetime} -```sql -SELECT uniqMerge(c) FROM t; +`ClickHouse.Driver` внутренне использует `System.Net.Http.HttpClient`. `HttpClient` имеет пул подключений для каждой конечной точки (endpoint). В результате: + +* Объект `ClickHouseConnection` не имеет отображения 1:1 на TCP‑соединения — несколько сеансов работы с базой данных будут мультиплексироваться поверх нескольких TCP‑соединений на один сервер. +* Объекты `ClickHouseConnection` могут быть «долго живущими»; реальные TCP‑соединения под ними будут переиспользоваться пулом подключений. +* Позвольте `HttpClient` управлять пулом подключений внутренне. Не организуйте пул объектов `ClickHouseConnection` самостоятельно. +* Соединения могут оставаться активными после удаления объекта `ClickHouseConnection`. +* Это поведение можно настроить, передав пользовательский `HttpClientFactory` или `HttpClient` с пользовательским `HttpClientHandler`. + +Для DI‑окружений предусмотрен специальный конструктор `ClickHouseConnection(string connectionString, IHttpClientFactory httpClientFactory, string httpClientName = "")`, который заставляет `ClickHouseConnection` запрашивать именованный HTTP‑клиент. + +:::important +При использовании пользовательского `HttpClient` или `HttpClientFactory` убедитесь, что `PooledConnectionIdleTimeout` имеет значение меньше, чем `keep_alive_timeout` сервера, чтобы избежать ошибок из‑за наполовину закрытых соединений. Значение `keep_alive_timeout` по умолчанию для развертываний в Cloud — 10 секунд. +::: + +--- + +### Обработка DateTime {#best-practice-datetime} + +1. **По возможности используйте UTC.** Храните метки времени в столбцах `DateTime('UTC')` и используйте `DateTimeKind.Utc` в коде. Это устраняет неоднозначность, связанную с часовыми поясами. + +2. **Используйте `DateTimeOffset` для явной обработки часовых поясов.** Он всегда представляет конкретный момент времени и включает информацию о смещении. + +3. **Указывайте часовой пояс в подсказках типа параметров HTTP.** При использовании параметров с `Unspecified` значениями DateTime, записываемыми в столбцы с часовым поясом, отличным от UTC: + ```csharp + command.AddParameter("dt", value, "DateTime('Europe/Amsterdam')"); + ``` + +### Асинхронные вставки {#async-inserts} + +[Асинхронные вставки](/docs/optimize/asynchronous-inserts) переносят ответственность за формирование батчей с клиента на сервер. Вместо необходимости группировать вставки на стороне клиента сервер буферизует входящие данные и сбрасывает их в хранилище при достижении настраиваемых пороговых значений. Это полезно в сценариях с высокой степенью параллелизма, например в нагрузках обсервабилити, когда множество агентов отправляют небольшие объемы данных. + +Включите асинхронные вставки через `CustomSettings` или строку подключения: + +```csharp +// Using CustomSettings +var settings = new ClickHouseClientSettings("Host=localhost"); +settings.CustomSettings["async_insert"] = 1; +settings.CustomSettings["wait_for_async_insert"] = 1; // Recommended: wait for flush acknowledgment + +// Or via connection string +// "Host=localhost;set_async_insert=1;set_wait_for_async_insert=1" ``` +**Два режима** (управляются параметром `wait_for_async_insert`): + +| Mode | Behavior | Use case | +| ------------------------- | ---------------------------------------------------------------------------------------------- | ------------------------------------------ | +| `wait_for_async_insert=1` | Вставка (`INSERT`) завершается после сброса данных на диск. Ошибки возвращаются клиенту. | **Рекомендуется** для большинства нагрузок | +| `wait_for_async_insert=0` | Вставка (`INSERT`) завершается сразу после буферизации данных. Нет гарантии сохранения данных. | Только когда допустима потеря данных | + +:::warning +При `wait_for_async_insert=0` ошибки возникают только во время flush и не могут быть однозначно сопоставлены с исходной вставкой. Клиент также не создает обратного давления, что повышает риск перегрузки сервера. +::: + +**Ключевые настройки:** + +| Setting | Description | +| ------------------------------- | -------------------------------------------------------------------- | +| `async_insert_max_data_size` | Выполнить flush, когда буфер достигает указанного размера (в байтах) | +| `async_insert_busy_timeout_ms` | Выполнить flush по истечении указанного тайм-аута (в миллисекундах) | +| `async_insert_max_query_number` | Выполнить flush после накопления указанного числа запросов | + *** -### Параметры SQL {#sql-parameters} -При передаче параметров в запрос следует использовать форматирование параметров ClickHouse в следующем формате: +### Сессии {#best-practices-sessions} -```sql -{:} -``` +Включайте сессии только тогда, когда вам нужны серверные возможности с сохранением состояния, например: -**Примеры:** +* Временные таблицы (`CREATE TEMPORARY TABLE`) +* Сохранение контекста запроса между несколькими командами +* Настройки на уровне сессии (`SET max_threads = 4`) -```sql -SELECT {value:Array(UInt16)} as value -``` +Когда сессии включены, запросы сериализуются, чтобы предотвратить одновременное использование одной и той же сессии. Это добавляет накладные расходы для нагрузок, которым не требуется состояние сессии. -```sql -SELECT * FROM table WHERE val = {tuple_in_tuple:Tuple(UInt8, Tuple(String, UInt8))} -``` +```csharp +var settings = new ClickHouseClientSettings +{ + Host = "localhost", + UseSession = true, + SessionId = "my-session", // Optional -- will be auto-generated if not provided +}; -```sql -INSERT INTO table VALUES ({val1:Int32}, {val2:Array(UInt8)}) +await using var connection = new ClickHouseConnection(settings); +await connection.OpenAsync(); + +await using var cmd1 = connection.CreateCommand("CREATE TEMPORARY TABLE temp_ids (id UInt64)"); +await cmd1.ExecuteNonQueryAsync(); + +await using var cmd2 = connection.CreateCommand("INSERT INTO temp_ids VALUES (1), (2), (3)"); +await cmd2.ExecuteNonQueryAsync(); + +await using var cmd3 = connection.CreateCommand("SELECT * FROM users WHERE id IN (SELECT id FROM temp_ids)"); +await using var reader = await cmd3.ExecuteReaderAsync(); ``` + +## Поддерживаемые типы данных {#supported-data-types} + +`ClickHouse.Driver` поддерживает все типы данных ClickHouse. В приведённых ниже таблицах показаны сопоставления между типами ClickHouse и нативными типами .NET при чтении данных из базы данных. + +### Сопоставление типов: чтение из ClickHouse {#clickhouse-native-type-map-reading} + +#### Целочисленные типы {#type-map-reading-integer} + +| Тип в ClickHouse | Тип в .NET | +|------------------|------------| +| Int8 | `sbyte` | +| UInt8 | `byte` | +| Int16 | `short` | +| UInt16 | `ushort` | +| Int32 | `int` | +| UInt32 | `uint` | +| Int64 | `long` | +| UInt64 | `ulong` | +| Int128 | `BigInteger` | +| UInt128 | `BigInteger` | +| Int256 | `BigInteger` | +| UInt256 | `BigInteger` | + +--- + +#### Типы с плавающей запятой {#type-map-reading-floating-points} + +| Тип ClickHouse | Тип .NET | +|-----------------|-----------| +| Float32 | `float` | +| Float64 | `double` | +| BFloat16 | `float` | + +--- + +#### Типы Decimal {#type-map-reading-decimal} + +| Тип ClickHouse | Тип .NET | +|-----------------|-----------| +| Decimal(P, S) | `decimal` / `ClickHouseDecimal` | +| Decimal32(S) | `decimal` / `ClickHouseDecimal` | +| Decimal64(S) | `decimal` / `ClickHouseDecimal` | +| Decimal128(S) | `decimal` / `ClickHouseDecimal` | +| Decimal256(S) | `decimal` / `ClickHouseDecimal` | + :::note +Преобразование типов Decimal управляется настройкой UseCustomDecimals. +::: -* Параметры привязки SQL (bind) передаются как параметры HTTP URI-запроса, поэтому при их чрезмерном количестве может возникнуть исключение «URL too long». -* Для вставки большого объёма записей рассмотрите использование механизма пакетной вставки (Bulk Insert). - ::: +--- + +#### Булев тип {#type-map-reading-boolean} + +| Тип ClickHouse | Тип .NET | +|-----------------|-----------| +| Bool | `bool` | + +--- + +#### Строковые типы {#type-map-reading-strings} + +| Тип ClickHouse | Тип .NET | +|----------------|----------| +| String | `string` | +| FixedString(N) | `byte[]` | + +--- + +#### Типы даты и времени {#type-map-reading-datetime} + +| ClickHouse Type | .NET Type | +| --------------- | ---------- | +| Date | `DateTime` | +| Date32 | `DateTime` | +| DateTime | `DateTime` | +| DateTime32 | `DateTime` | +| DateTime64 | `DateTime` | +| Time | `TimeSpan` | +| Time64 | `TimeSpan` | + +ClickHouse хранит значения `DateTime` и `DateTime64` во внутреннем представлении как Unix-временные метки (Unix timestamps — секунды или доли секунды, прошедшие с начала эпохи Unix). Хотя хранение всегда ведётся в UTC, у столбцов может быть привязан часовой пояс, который влияет на то, как значения отображаются и интерпретируются. + +При чтении значений `DateTime` свойство `DateTime.Kind` устанавливается на основе часового пояса столбца: + +| Column Definition | Returned DateTime.Kind | Notes | +| ------------------------------ | ---------------------- | ------------------------------------------------- | +| `DateTime('UTC')` | `Utc` | Явный часовой пояс UTC | +| `DateTime('Europe/Amsterdam')` | `Unspecified` | Применяется часовой пояс со смещением | +| `DateTime` | `Unspecified` | Локальное (wall-clock) время сохраняется как есть | + +Для столбцов с часовым поясом, отличным от UTC, возвращаемое значение `DateTime` представляет локальное (wall-clock) время в соответствующем часовом поясе. Используйте `ClickHouseDataReader.GetDateTimeOffset()` для получения `DateTimeOffset` с корректным смещением для этого часового пояса: + +```csharp +var reader = (ClickHouseDataReader)await connection.ExecuteReaderAsync( + "SELECT toDateTime('2024-06-15 14:30:00', 'Europe/Amsterdam')"); +reader.Read(); + +var dt = reader.GetDateTime(0); // 2024-06-15 14:30:00, Kind=Unspecified +var dto = reader.GetDateTimeOffset(0); // 2024-06-15 14:30:00 +02:00 (CEST) +``` + +Для столбцов **без** явного часового пояса (т.е. `DateTime` вместо `DateTime('Europe/Amsterdam')`) драйвер возвращает `DateTime` с `Kind=Unspecified`. Это позволяет сохранить «настенное» время в точности в том виде, как оно хранится, не делая предположений о часовом поясе. + +Если вам требуется поведение с учетом часового пояса для столбцов без явного часового пояса, то: + +1. Используйте явные часовые пояса в определениях столбцов: `DateTime('UTC')` или `DateTime('Europe/Amsterdam')` +2. Устанавливайте нужный часовой пояс самостоятельно после чтения данных. *** -## Поддерживаемые типы данных {#supported-data-types} -`ClickHouse.Driver` поддерживает следующие типы данных ClickHouse с их соответствующими сопоставлениями с типами .NET: +#### Другие типы {#type-map-reading-other} + +| Тип ClickHouse | Тип .NET | +|-----------------|-----------| +| UUID | `Guid` | +| IPv4 | `IPAddress` | +| IPv6 | `IPAddress` | +| Nothing | `DBNull` | +| Dynamic | См. примечание | +| Json | `JsonObject` | +| Array(T) | `T[]` | +| Tuple(T1, T2, ...) | `Tuple` / `LargeTuple` | +| Map(K, V) | `Dictionary` | +| Nullable(T) | `T?` | +| Enum8 | `string` | +| Enum16 | `string` | +| LowCardinality(T) | Такой же, как T | +| SimpleAggregateFunction | Такой же, как базовый тип | +| Nested(...) | `Tuple[]` | +| Variant(T1, T2, ...) | См. примечание | +| QBit(T, dimension) | `T[]` | -### Логические типы {#boolean-types} +:::note +Типы Dynamic и Variant будут преобразованы в тип, соответствующий фактическому базовому типу в каждой строке. +::: -* `Bool` → `bool` +--- -### Числовые типы {#numeric-types} +#### Типы геометрии {#type-map-reading-geometry} -**Знаковые целые типы:** +| Тип ClickHouse | Тип .NET | +|----------------|----------| +| Point | `Tuple` | +| Ring | `Tuple[]` | +| LineString | `Tuple[]` | +| Polygon | `Ring[]` | +| MultiLineString | `LineString[]` | +| MultiPolygon | `Polygon[]` | +| Geometry | См. примечание | -* `Int8` → `sbyte` -* `Int16` → `short` -* `Int32` → `int` -* `Int64` → `long` -* `Int128` → `BigInteger` -* `Int256` → `BigInteger` +:::note +Тип Geometry — это тип Variant, который может содержать любой из геометрических типов. Он будет преобразован в соответствующий тип. +::: + +--- + +### Сопоставление типов: запись в ClickHouse {#clickhouse-native-type-map-writing} + +При вставке данных драйвер преобразует типы .NET в соответствующие типы ClickHouse. В таблицах ниже показано, какие типы .NET поддерживаются для каждого типа столбца ClickHouse. + +#### Целочисленные типы {#type-map-writing-integer} + +| Тип ClickHouse | Принимаемые типы .NET | Примечания | +|-----------------|---------------------|-------| +| Int8 | `sbyte`, любой, совместимый с `Convert.ToSByte()` | | +| UInt8 | `byte`, любой, совместимый с `Convert.ToByte()` | | +| Int16 | `short`, любой, совместимый с `Convert.ToInt16()` | | +| UInt16 | `ushort`, любой, совместимый с `Convert.ToUInt16()` | | +| Int32 | `int`, любой, совместимый с `Convert.ToInt32()` | | +| UInt32 | `uint`, любой, совместимый с `Convert.ToUInt32()` | | +| Int64 | `long`, любой, совместимый с `Convert.ToInt64()` | | +| UInt64 | `ulong`, любой, совместимый с `Convert.ToUInt64()` | | +| Int128 | `BigInteger`, `decimal`, `double`, `float`, `int`, `uint`, `long`, `ulong`, любой, совместимый с `Convert.ToInt64()` | | +| UInt128 | `BigInteger`, `decimal`, `double`, `float`, `int`, `uint`, `long`, `ulong`, любой, совместимый с `Convert.ToInt64()` | | +| Int256 | `BigInteger`, `decimal`, `double`, `float`, `int`, `uint`, `long`, `ulong`, любой, совместимый с `Convert.ToInt64()` | | +| UInt256 | `BigInteger`, `decimal`, `double`, `float`, `int`, `uint`, `long`, `ulong`, любой, совместимый с `Convert.ToInt64()` | | + +--- + +#### Типы с плавающей запятой {#type-map-writing-floating-point} + +| Тип ClickHouse | Поддерживаемые типы .NET | Примечания | +|-----------------|---------------------|-------| +| Float32 | `float`, любой тип, совместимый с `Convert.ToSingle()` | | +| Float64 | `double`, любой тип, совместимый с `Convert.ToDouble()` | | +| BFloat16 | `float`, любой тип, совместимый с `Convert.ToSingle()` | Усекает значение до 16-битного формата brain float | -**Беззнаковые целые типы:** +--- + +#### Логический тип {#type-map-writing-boolean} + +| Тип ClickHouse | Допустимые типы .NET | Примечания | +|----------------|----------------------|-----------| +| Bool | `bool` | | + +--- + +#### Строковые типы {#type-map-writing-strings} -* `UInt8` → `byte` -* `UInt16` → `ushort` -* `UInt32` → `uint` -* `UInt64` → `ulong` -* `UInt128` → `BigInteger` -* `UInt256` → `BigInteger` +| Тип ClickHouse | Допустимые типы .NET | Примечания | +|----------------|-----------------------|------------| +| String | `string`, любой тип, совместимый с `Convert.ToString()` | | +| FixedString(N) | `string`, `byte[]` | String кодируется в UTF-8 и дополняется/усекается; массив byte[] должен содержать ровно N байт | -**Типы с плавающей запятой:** +--- + +#### Типы даты и времени {#type-map-writing-datetime} -* `Float32` → `float` -* `Float64` → `double` +| Тип ClickHouse | Допустимые типы .NET | Примечания | +| -------------- | ----------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| Date | `DateTime`, `DateTimeOffset`, `DateOnly`, типы NodaTime | Преобразуется в количество Unix-дней как UInt16 | +| Date32 | `DateTime`, `DateTimeOffset`, `DateOnly`, типы NodaTime | Преобразуется в количество Unix-дней как Int32 | +| DateTime | `DateTime`, `DateTimeOffset`, `DateOnly`, типы NodaTime | См. подробности ниже | +| DateTime32 | `DateTime`, `DateTimeOffset`, `DateOnly`, типы NodaTime | То же, что и DateTime | +| DateTime64 | `DateTime`, `DateTimeOffset`, `DateOnly`, типы NodaTime | Точность зависит от параметра Scale | +| Time | `TimeSpan`, `int` | Ограничивается диапазоном ±999:59:59; значения `int` интерпретируются как секунды | +| Time64 | `TimeSpan`, `decimal`, `double`, `float`, `int`, `long`, `string` | Строка разбирается как `[-]HHH:MM:SS[.fraction]`; ограничивается до ±999:59:59.999999999 | -**Десятичные типы:** +Драйвер учитывает `DateTime.Kind` при записи значений: -* `Decimal` → `decimal` -* `Decimal32` → `decimal` -* `Decimal64` → `decimal` -* `Decimal128` → `decimal` -* `Decimal256` → `BigDecimal` +| `DateTime.Kind` | Поведение | +| --------------- | ------------------------------------------------------------------------------- | +| `Utc` | Момент времени сохраняется без изменений | +| `Local` | Преобразуется в UTC с использованием часового пояса системы; момент сохраняется | +| `Unspecified` | Рассматривается как локальное время в часовом поясе целевого столбца | -### Строковые типы {#string-types} +Значения `DateTimeOffset` всегда сохраняют точный момент времени. -* `String` → `string` -* `FixedString` → `string` +**Пример: DateTime в UTC (момент сохраняется)** -### Типы данных даты и времени {#date-time-types} +```csharp +var utcTime = new DateTime(2024, 1, 15, 12, 0, 0, DateTimeKind.Utc); +// Stored as 12:00 UTC +// Read from DateTime('Europe/Amsterdam') column: 13:00 (UTC+1) +// Read from DateTime('UTC') column: 12:00 UTC +``` -* `Date` → `DateTime` -* `Date32` → `DateTime` -* `DateTime` → `DateTime` -* `DateTime32` → `DateTime` -* `DateTime64` → `DateTime` +**Пример: неопределённый DateTime (локальное «настенное» время)** -### Типы сетей {#network-types} +```csharp +var wallClock = new DateTime(2024, 1, 15, 14, 30, 0, DateTimeKind.Unspecified); +// Written to DateTime('Europe/Amsterdam') column: stored as 14:30 Amsterdam time +// Read back from DateTime('Europe/Amsterdam') column: 14:30 +``` -* `IPv4` → `IPAddress` -* `IPv6` → `IPAddress` +**Рекомендация:** для наиболее простого и предсказуемого поведения используйте `DateTimeKind.Utc` или `DateTimeOffset` для всех операций с типом DateTime. Это позволит вашему коду работать одинаково независимо от часового пояса сервера, клиента или часового пояса столбца. -### Географические типы {#geographic-types} -* `Point` → `Tuple` -* `Ring` → `Array of Points` -* `Polygon` → `Array of Rings` +#### HTTP-параметры vs bulk copy {#datetime-http-param-vs-bulkcopy} -### Составные типы данных {#complex-types} +Существует существенное отличие между привязкой HTTP-параметров и bulk copy при записи значений DateTime с Kind `Unspecified`: -* `Array(T)` → `Массив любого типа` -* `Tuple(T1, T2, ...)` → `Кортеж любых типов` -* `Nullable(T)` → `Nullable-тип на основе любого типа` -* `Map(K, V)` → `Словарь` +**Bulk Copy** знает часовой пояс целевого столбца и корректно интерпретирует значения `Unspecified` в этом часовом поясе. + +**HTTP-параметры** автоматически не знают часовой пояс столбца. Необходимо явно указать его в подсказке типа параметра: + +```csharp +// CORRECT: Timezone in type hint +command.AddParameter("dt", myDateTime, "DateTime('Europe/Amsterdam')"); +command.CommandText = "INSERT INTO table (dt_amsterdam) VALUES ({dt:DateTime('Europe/Amsterdam')})"; + +// INCORRECT: Without timezone hint, interpreted as UTC +command.AddParameter("dt", myDateTime); +command.CommandText = "INSERT INTO table (dt_amsterdam) VALUES ({dt:DateTime})"; +// String value "2024-01-15 14:30:00" interpreted as UTC, not Amsterdam time! +``` + +| `DateTime.Kind` | Целевой столбец | HTTP-параметр (с указанием часового пояса) | HTTP-параметр (без указания часового пояса) | Массовое копирование | +| --------------- | ---------------- | ------------------------------------------ | ------------------------------------------- | ---------------------------------------- | +| `Utc` | UTC | Момент сохраняется | Момент сохраняется | Момент сохраняется | +| `Utc` | Europe/Amsterdam | Момент сохраняется | Момент сохраняется | Момент сохраняется | +| `Local` | Любой | Момент сохраняется | Момент сохраняется | Момент сохраняется | +| `Unspecified` | UTC | Интерпретируется как UTC | Интерпретируется как UTC | Интерпретируется как UTC | +| `Unspecified` | Europe/Amsterdam | Интерпретируется как время Амстердама | **Интерпретируется как UTC** | Интерпретируется как временем Амстердама | + +*** + + +#### Типы Decimal {#type-map-writing-decimal} + +| Тип ClickHouse | Поддерживаемые типы .NET | Примечания | +|-----------------|--------------------------|------------| +| Decimal(P,S) | `decimal`, `ClickHouseDecimal`, любой тип, совместимый с `Convert.ToDecimal()` | Выбрасывает исключение `OverflowException`, если превышена точность | +| Decimal32 | `decimal`, `ClickHouseDecimal`, любой тип, совместимый с `Convert.ToDecimal()` | Максимальная точность 9 | +| Decimal64 | `decimal`, `ClickHouseDecimal`, любой тип, совместимый с `Convert.ToDecimal()` | Максимальная точность 18 | +| Decimal128 | `decimal`, `ClickHouseDecimal`, любой тип, совместимый с `Convert.ToDecimal()` | Максимальная точность 38 | +| Decimal256 | `decimal`, `ClickHouseDecimal`, любой тип, совместимый с `Convert.ToDecimal()` | Максимальная точность 76 | + +--- + +#### Другие типы {#type-map-writing-other} + +| Тип ClickHouse | Принимаемые типы .NET | Примечания | +|-----------------|---------------------|-------| +| UUID | `Guid`, `string` | Строка парсится как Guid | +| IPv4 | `IPAddress`, `string` | Должен быть IPv4; строка парсится через `IPAddress.Parse()` | +| IPv6 | `IPAddress`, `string` | Должен быть IPv6; строка парсится через `IPAddress.Parse()` | +| Nothing | Любой тип | Ничего не записывает (операция no-op) | +| Dynamic | — | **Не поддерживается** (выбрасывает `NotImplementedException`) | +| Json | `string`, `JsonObject`, любой объект | Строка парсится как JSON; объекты сериализуются через `JsonSerializer` | +| Array(T) | `IList`, `null` | При значении null записывается пустой массив | +| Tuple(T1, T2, ...) | `ITuple`, `IList` | Количество элементов должно соответствовать арности кортежа | +| Map(K, V) | `IDictionary` | | +| Nullable(T) | `null`, `DBNull` или типы, принимаемые T | Перед значением записывается байт флага null | +| Enum8 | `string`, `sbyte`, числовые типы | Строковое значение ищется в словаре enum | +| Enum16 | `string`, `short`, числовые типы | Строковое значение ищется в словаре enum | +| LowCardinality(T) | Типы, принимаемые T | Делегирует базовому типу | +| SimpleAggregateFunction | Типы, принимаемые базовым типом | Делегирует базовому типу | +| Nested(...) | `IList` кортежей | Количество элементов должно соответствовать количеству полей | +| Variant(T1, T2, ...) | Значение, соответствующее одному из T1, T2, ... | Выбрасывает `ArgumentException`, если нет совпадения типа | +| QBit(T, dim) | `IList` | Делегирует типу Array; размерность — только метаданные | --- -### Обработка DateTime {#datetime-handling} +#### Геометрические типы {#type-map-writing-geometry} + +| Тип ClickHouse | Допустимые типы .NET | Примечания | +|-----------------|---------------------|-------| +| Point | `System.Drawing.Point`, `ITuple`, `IList` (2 элемента) | | +| Ring | `IList` из `Point` | | +| LineString | `IList` из `Point` | | +| Polygon | `IList` из `Ring` | | +| MultiLineString | `IList` из `LineString` | | +| MultiPolygon | `IList` из `Polygon` | | +| Geometry | Любой из указанных выше геометрических типов | Обобщающий вариант всех геометрических типов | + +--- -`ClickHouse.Driver` корректно обрабатывает часовые пояса и свойство `DateTime.Kind`. В частности: +#### Запись не поддерживается {#type-map-writing-not-supported} -* Значения `DateTime` возвращаются в UTC. Пользователь затем может преобразовать их самостоятельно или использовать метод `ToLocalTime()` для экземпляра `DateTime`. -* При вставке данные типа `DateTime` обрабатываются следующим образом: - * `UTC` `DateTime` вставляются «как есть», поскольку ClickHouse хранит их в UTC. - * `Local` `DateTime` преобразуются в UTC в соответствии с локальными настройками часового пояса пользователя. - * `Unspecified` `DateTime` считаются находящимися в часовом поясе целевого столбца и, следовательно, преобразуются в UTC в соответствии с этим часовым поясом. -* Для столбцов без указанного часового пояса по умолчанию используется часовой пояс клиента (устаревшее поведение). Вместо этого можно использовать флаг `UseServerTimezone` в строке подключения, чтобы применять часовой пояс сервера. +| Тип ClickHouse | Примечания | +|-----------------|-------| +| Dynamic | Вызывает исключение `NotImplementedException` | +| AggregateFunction | Вызывает исключение `AggregateFunctionException` | --- +### Обработка вложенных типов {#nested-type-handling} + +Вложенные типы ClickHouse (`Nested(...)`) можно читать и записывать с использованием семантики массивов. + +```sql +CREATE TABLE test.nested ( + id UInt32, + params Nested (param_id UInt8, param_val String) +) ENGINE = Memory +``` + +```csharp +using var bulkCopy = new ClickHouseBulkCopy(connection) +{ + DestinationTableName = "test.nested" +}; + +var row1 = new object[] { 1, new[] { 1, 2, 3 }, new[] { "v1", "v2", "v3" } }; +var row2 = new object[] { 2, new[] { 4, 5, 6 }, new[] { "v4", "v5", "v6" } }; + +await bulkCopy.WriteToServerAsync(new[] { row1, row2 }); +``` + + ## Журналирование и диагностика {#logging-and-diagnostics} Клиент ClickHouse для .NET интегрируется с абстракциями логирования `Microsoft.Extensions.Logging`, предоставляя легковесное журналирование, подключаемое по желанию. При его включении драйвер генерирует структурированные сообщения о событиях жизненного цикла подключения, выполнении команд, транспортных операциях и массовой загрузке данных. Журналирование полностью необязательно — приложения, которые не настраивают логгер, продолжают работать без дополнительных накладных расходов. @@ -521,6 +993,7 @@ await connection.OpenAsync(); | `ClickHouse.Driver.Command` | `ClickHouseCommand` | Начало и завершение выполнения запроса, замер времени, идентификаторы запросов, статистика сервера и сведения об ошибках. | | `ClickHouse.Driver.Transport` | `ClickHouseConnection` | Низкоуровневые потоковые HTTP‑запросы, флаги сжатия, коды статуса ответа и сбои транспортного уровня. | | `ClickHouse.Driver.BulkCopy` | `ClickHouseBulkCopy` | Загрузка метаданных, пакетные операции, количество строк и завершение отправки. | +| `ClickHouse.Driver.NetTrace` | `TraceHelper` | Отслеживание сетевых операций, только при включённом режиме отладки. | #### Пример: диагностика неполадок подключения {#logging-config-example} @@ -547,7 +1020,7 @@ await connection.OpenAsync(); ### Режим отладки: трассировка сети и диагностика {#logging-debugmode} -Чтобы упростить диагностику сетевых проблем, библиотека драйвера предоставляет вспомогательный инструмент, позволяющий включить низкоуровневую трассировку внутренних сетевых механизмов .NET. Чтобы включить её, необходимо передать `LoggerFactory` с уровнем `Trace` и установить `EnableDebugMode` в значение `true` (или включить её вручную через класс `ClickHouse.Driver.Diagnostic.TraceHelper`). Предупреждение: это приведёт к генерации чрезвычайно подробных логов и повлияет на производительность. Не рекомендуется включать режим отладки в боевой (production) среде. +Чтобы упростить диагностику сетевых проблем, библиотека драйвера предоставляет вспомогательный инструмент, позволяющий включить низкоуровневую трассировку внутренних сетевых механизмов .NET. Чтобы включить её, необходимо передать `LoggerFactory` с уровнем `Trace` и установить `EnableDebugMode` в значение `true` (или включить её вручную через класс `ClickHouse.Driver.Diagnostic.TraceHelper`). События будут логироваться в категорию `ClickHouse.Driver.NetTrace`. Предупреждение: это приведёт к генерации чрезвычайно подробных логов и повлияет на производительность. Не рекомендуется включать режим отладки в продуктивной среде. ```csharp var loggerFactory = LoggerFactory.Create(builder => @@ -564,11 +1037,130 @@ var settings = new ClickHouseClientSettings() }; ``` -*** -### Поддержка ORM и Dapper {#orm-support} +## OpenTelemetry {#opentelemetry} + +Драйвер предоставляет встроенную поддержку распределённого трейсинга OpenTelemetry через API .NET [`System.Diagnostics.Activity`](https://learn.microsoft.com/en-us/dotnet/core/diagnostics/distributed-tracing). При его включении драйвер генерирует спаны для операций с базой данных, которые могут быть экспортированы в обсервабилити-бэкенды, такие как Jaeger или сам ClickHouse (через [OpenTelemetry Collector](https://clickhouse.com/docs/observability/integrating-opentelemetry)). + +### Включение трассировки {#opentelemetry-enabling} + +В приложениях ASP.NET Core добавьте `ActivitySource` драйвера ClickHouse в конфигурацию OpenTelemetry: + +```csharp +builder.Services.AddOpenTelemetry() + .WithTracing(tracing => tracing + .AddSource(ClickHouseDiagnosticsOptions.ActivitySourceName) // Subscribe to ClickHouse driver spans + .AddAspNetCoreInstrumentation() + .AddOtlpExporter()); // Or AddJaegerExporter(), etc. +``` + +Для консольных приложений, тестирования или ручной настройки: + +```csharp +using OpenTelemetry; +using OpenTelemetry.Trace; + +var tracerProvider = Sdk.CreateTracerProviderBuilder() + .AddSource(ClickHouseDiagnosticsOptions.ActivitySourceName) + .AddConsoleExporter() + .Build(); +``` + + +### Атрибуты спана {#opentelemetry-attributes} + +Каждый спан включает стандартные атрибуты базы данных OpenTelemetry, а также специфичные для ClickHouse статистические данные по запросу, которые можно использовать для отладки. -`ClickHouse.Driver` поддерживает Dapper (с некоторыми ограничениями). +| Атрибут | Описание | +|-----------|-------------| +| `db.system` | Всегда `"clickhouse"` | +| `db.name` | Имя базы данных | +| `db.user` | Имя пользователя | +| `db.statement` | SQL-запрос (если включено) | +| `db.clickhouse.read_rows` | Количество строк, прочитанных запросом | +| `db.clickhouse.read_bytes` | Количество байт, прочитанных запросом | +| `db.clickhouse.written_rows` | Количество строк, записанных запросом | +| `db.clickhouse.written_bytes` | Количество байт, записанных запросом | +| `db.clickhouse.elapsed_ns` | Время выполнения на стороне сервера в наносекундах | + +### Параметры конфигурации {#opentelemetry-configuration} + +Настройте поведение трассировки с помощью `ClickHouseDiagnosticsOptions`: + +```csharp +using ClickHouse.Driver.Diagnostic; + +// Include SQL statements in spans (default: false for security) +ClickHouseDiagnosticsOptions.IncludeSqlInActivityTags = true; + +// Truncate long SQL statements (default: 1000 characters) +ClickHouseDiagnosticsOptions.StatementMaxLength = 500; +``` + +:::warning +Включение `IncludeSqlInActivityTags` может привести к раскрытию конфиденциальных данных в ваших трассировках. Используйте с осторожностью в производственных средах. +::: + + +## Конфигурация TLS {#tls-configuration} + +При подключении к ClickHouse по HTTPS вы можете по‑разному настроить работу TLS/SSL. + +### Пользовательская проверка сертификатов {#custom-certificate-validation} + +Для продакшн-сред, где требуется собственная логика проверки сертификатов, используйте свой `HttpClient` с настроенным обработчиком `ServerCertificateCustomValidationCallback`: + +```csharp +using System.Net; +using System.Net.Security; +using ClickHouse.Driver.ADO; + +var handler = new HttpClientHandler +{ + // Required when compression is enabled (default) + AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate, + + ServerCertificateCustomValidationCallback = (message, cert, chain, sslPolicyErrors) => + { + // Example: Accept a specific certificate thumbprint + if (cert?.Thumbprint == "YOUR_EXPECTED_THUMBPRINT") + return true; + + // Example: Accept certificates from a specific issuer + if (cert?.Issuer.Contains("YourOrganization") == true) + return true; + + // Default: Use standard validation + return sslPolicyErrors == SslPolicyErrors.None; + }, +}; + +var httpClient = new HttpClient(handler) { Timeout = TimeSpan.FromMinutes(5) }; + +var settings = new ClickHouseClientSettings +{ + Host = "my.clickhouse.server", + Protocol = "https", + HttpClient = httpClient, +}; + +using var connection = new ClickHouseConnection(settings); +await connection.OpenAsync(); +``` + +:::note +Важные замечания при передаче собственного HttpClient + +* **Автоматическая декомпрессия**: необходимо включить `AutomaticDecompression`, если сжатие не отключено (по умолчанию сжатие включено). +* **Тайм-аут простоя**: установите `PooledConnectionIdleTimeout` меньше, чем `keep_alive_timeout` сервера (10 секунд для ClickHouse Cloud), чтобы избежать ошибок подключения из‑за полуоткрытых соединений. + ::: + + +## Поддержка ORM {#orm-support} + +### Dapper {#orm-support-dapper} + +`ClickHouse.Driver` можно использовать с Dapper, но анонимные объекты при этом не поддерживаются. **Рабочий пример:** @@ -587,3 +1179,89 @@ connection.QueryAsync( new { p1 = 42 } ); ``` + + +### Linq2db {#orm-support-linq2db} + +Этот драйвер совместим с [linq2db](https://github.com/linq2db/linq2db) — легковесным ORM и провайдером LINQ для .NET. Подробную документацию см. на сайте проекта. + +**Пример использования:** + +Создайте объект `DataConnection` с использованием провайдера ClickHouse: + +```csharp +using LinqToDB; +using LinqToDB.Data; +using LinqToDB.DataProvider.ClickHouse; + +var connectionString = "Host=localhost;Port=8123;Database=default"; +var options = new DataOptions() + .UseClickHouse(connectionString, ClickHouseProvider.ClickHouseDriver); + +await using var db = new DataConnection(options); +``` + +Сопоставления таблиц могут задаваться с помощью атрибутов или fluent‑конфигурации. Если имена ваших классов и свойств в точности совпадают с именами таблиц и столбцов, никакая конфигурация не требуется: + +```csharp +public class Product +{ + public int Id { get; set; } + public string Name { get; set; } + public decimal Price { get; set; } +} +``` + +**Выполнение запросов:** + +```csharp +await using var db = new DataConnection(options); + +var products = await db.GetTable() + .Where(p => p.Price > 100) + .OrderByDescending(p => p.Name) + .ToListAsync(); +``` + +**Массовое копирование (Bulk Copy):** + +Используйте `BulkCopyAsync` для эффективной массовой вставки данных. + +```csharp +await using var db = new DataConnection(options); +var table = db.GetTable(); + +var options = new BulkCopyOptions +{ + MaxBatchSize = 100000, + MaxDegreeOfParallelism = 1, + WithoutSession = true +}; + +await table.BulkCopyAsync(options, products); +``` + + +### Entity framework core {#orm-support-ef-core} + +Entity Framework Core на данный момент не поддерживается. + +## Ограничения {#limitations} + +### Столбцы типа AggregateFunction {#aggregatefunction-columns} + +Столбцы типа `AggregateFunction(...)` нельзя напрямую использовать в запросах или при вставке данных. + +Для вставки: + +```sql +INSERT INTO t VALUES (uniqState(1)); +``` + +Чтобы выбрать: + +```sql +SELECT uniqMerge(c) FROM t; +``` + +*** \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/java/client/client.mdx b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/java/client/client.mdx deleted file mode 100644 index 0154fd3d0b7..00000000000 --- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/java/client/client.mdx +++ /dev/null @@ -1,1410 +0,0 @@ ---- -sidebar_label: 'Клиент' -sidebar_position: 2 -keywords: ['clickhouse', 'java', 'client', 'integrate'] -description: 'Java-коннектор ClickHouse' -slug: /integrations/language-clients/java/client -title: 'Java-клиент' -doc_type: 'reference' ---- - -import ClientVersionDropdown from '@theme/ClientVersionDropdown/ClientVersionDropdown'; -import Version from '@theme/ClientVersionDropdown/Version'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; -import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWrapper'; - - - - - -Клиентская библиотека Java для связи с сервером БД через его протоколы. Текущая реализация поддерживает только [HTTP-интерфейс](/interfaces/http). -Библиотека предоставляет собственный API для отправки запросов на сервер. Библиотека также предоставляет инструменты для работы с различными форматами бинарных данных (RowBinary* и Native*). - -## Установка {#setup} - -- Maven Central (project web page): https://mvnrepository.com/artifact/com.clickhouse/client-v2 -- Nightly builds (repository link): https://central.sonatype.com/repository/maven-snapshots/ -- Old Nightly builds artifactory (repository link): https://s01.oss.sonatype.org/content/repositories/snapshots/ -
    - - - -```xml - - com.clickhouse - client-v2 - 0.9.4 - -``` - - - - -```kotlin -// https://mvnrepository.com/artifact/com.clickhouse/client-v2 -implementation("com.clickhouse:client-v2:0.9.4") -``` - - - -```groovy -// https://mvnrepository.com/artifact/com.clickhouse/client-v2 -implementation 'com.clickhouse:client-v2:0.9.4' -``` - - - -
    - -## Инициализация {#initialization} - -Объект Client инициализируется методом `com.clickhouse.client.api.Client.Builder#build()`. Каждый клиент имеет свой собственный контекст, и объекты не разделяются между ними. -Builder имеет методы конфигурации для удобной настройки. - -Пример: -```java showLineNumbers - Client client = new Client.Builder() - .addEndpoint("https://clickhouse-cloud-instance:8443/") - .setUsername(user) - .setPassword(password) - .build(); -``` - -`Client` реализует `AutoCloseable` и должен быть закрыт, когда больше не нужен. - -### Аутентификация {#authentication} - -Аутентификация настраивается для каждого клиента на этапе инициализации. Поддерживаются три метода аутентификации: по паролю, по токену доступа, по SSL-сертификату клиента. - -Аутентификация по паролю требует установки имени пользователя и пароля путем вызова `setUsername(String)` и `setPassword(String)`: -```java showLineNumbers - Client client = new Client.Builder() - .addEndpoint("https://clickhouse-cloud-instance:8443/") - .setUsername(user) - .setPassword(password) - .build(); -``` - -Аутентификация по токену доступа требует установки токена доступа путем вызова `setAccessToken(String)`: -```java showLineNumbers - Client client = new Client.Builder() - .addEndpoint("https://clickhouse-cloud-instance:8443/") - .setAccessToken(userAccessToken) - .build(); -``` - -Аутентификация по SSL-сертификату клиента требует установки имени пользователя, включения SSL-аутентификации, установки клиентского сертификата и клиентского ключа путем вызова методов `setUsername(String)`, `useSSLAuthentication(boolean)`, `setClientCertificate(String)` и `setClientKey(String)` соответственно: -```java showLineNumbers -Client client = new Client.Builder() - .useSSLAuthentication(true) - .setUsername("some_user") - .setClientCertificate("some_user.crt") - .setClientKey("some_user.key") -``` - -:::note -SSL-аутентификацию может быть сложно диагностировать в продакшене, потому что многие ошибки из SSL-библиотек не предоставляют достаточно информации. Например, если клиентский сертификат и ключ не совпадают, сервер немедленно завершит соединение (в случае HTTP это будет этап инициации соединения, где HTTP-запросы еще не отправляются, поэтому ответ не отправляется). - -Пожалуйста, используйте инструменты вроде [openssl](https://docs.openssl.org/master/man1/openssl/) для проверки сертификатов и ключей: -- проверить целостность ключа: `openssl rsa -in [key-file.key] -check -noout` -- проверить, что клиентский сертификат имеет соответствующий CN для пользователя: - - получить CN из пользовательского сертификата - `openssl x509 -noout -subject -in [user.cert]` - - проверить, что то же значение установлено в базе данных `select name, auth_type, auth_params from system.users where auth_type = 'ssl_certificate'` (запрос выведет `auth_params` с чем-то вроде ` {"common_names":["some_user"]}`) - -::: - -## Конфигурация {#configuration} - -Все настройки определяются методами экземпляра (также известными как методы конфигурации), которые делают область действия и контекст каждого значения понятными. -Основные параметры конфигурации определены в одной области (клиент или операция) и не переопределяют друг друга. - -Конфигурация определяется при создании клиента. См. `com.clickhouse.client.api.Client.Builder`. - -## Конфигурация клиента {#client-configuration} - - - - -| Метод | Аргументы | Описание | По умолчанию | Ключ | -|--------|-----------|-------------|---------|-----| -| `addEndpoint(String endpoint)` | `endpoint` - адрес сервера в формате URL | Добавляет конечную точку сервера в список доступных серверов. В настоящее время поддерживается только одна конечная точка. | `none` | `none` | -| `addEndpoint(Protocol protocol, String host, int port, boolean secure)` | `protocol` - протокол подключения
    `host` - IP или имя хоста
    `secure` - использовать HTTPS | Добавляет конечную точку сервера в список доступных серверов. В настоящее время поддерживается только одна конечная точка. | `none` | `none` | -| `enableConnectionPool(boolean enable)` | `enable` - флаг для включения/отключения | Устанавливает, включен ли пул соединений | `true` | `connection_pool_enabled` | -| `setMaxConnections(int maxConnections)` | `maxConnections` - количество соединений | Устанавливает, сколько соединений может открыть клиент к каждой конечной точке сервера. | `10` | `max_open_connections` | -| `setConnectionTTL(long timeout, ChronoUnit unit)` | `timeout` - значение тайм-аута
    `unit` - единица времени | Устанавливает TTL соединения, после которого соединение будет считаться неактивным | `-1` | `connection_ttl` | -| `setKeepAliveTimeout(long timeout, ChronoUnit unit)` | `timeout` - значение тайм-аута
    `unit` - единица времени | Устанавливает тайм-аут keep-alive HTTP-соединения. Установите `0`, чтобы отключить Keep-Alive. | - | `http_keep_alive_timeout` | -| `setConnectionReuseStrategy(ConnectionReuseStrategy strategy)` | `strategy` - `LIFO` или `FIFO` | Выбирает стратегию, которую должен использовать пул соединений | `FIFO` | `connection_reuse_strategy` | -| `setDefaultDatabase(String database)` | `database` - имя базы данных | Устанавливает базу данных по умолчанию. | `default` | `database` | - -
    - - - -| Метод | Аргументы | Описание | По умолчанию | Ключ | -|--------|-----------|-------------|---------|-----| -| `setUsername(String username)` | `username` - имя пользователя для аутентификации | Устанавливает имя пользователя для метода аутентификации, который выбирается дальнейшей конфигурацией | `default` | `user` | -| `setPassword(String password)` | `password` - секретное значение | Устанавливает секрет для аутентификации по паролю и фактически выбирает этот метод аутентификации | - | `password` | -| `setAccessToken(String accessToken)` | `accessToken` - строка токена доступа | Устанавливает токен доступа для аутентификации и соответствующий метод аутентификации | - | `access_token` | -| `useSSLAuthentication(boolean useSSLAuthentication)` | `useSSLAuthentication` - флаг для включения SSL-аутентификации | Устанавливает SSL-сертификат клиента в качестве метода аутентификации. | - | `ssl_authentication` | -| `useHTTPBasicAuth(boolean useBasicAuth)` | `useBasicAuth` - флаг для включения/отключения | Устанавливает, следует ли использовать базовую HTTP-аутентификацию для аутентификации пользователь-пароль. Решает проблемы с паролями, содержащими специальные символы. | `true` | `http_use_basic_auth` | -| `useBearerTokenAuth(String bearerToken)` | `bearerToken` - закодированный bearer-токен | Указывает, использовать ли Bearer-аутентификацию и какой токен использовать. Токен будет отправлен как есть. | - | `bearer_token` | - - - - - -| Метод | Аргументы | Описание | По умолчанию | Ключ | -|--------|-----------|-------------|---------|-----| -| `setConnectTimeout(long timeout, ChronoUnit unit)` | `timeout` - значение тайм-аута
    `unit` - единица времени | Устанавливает тайм-аут инициации соединения для любого исходящего соединения. | - | `connection_timeout` | -| `setConnectionRequestTimeout(long timeout, ChronoUnit unit)` | `timeout` - значение тайм-аута
    `unit` - единица времени | Устанавливает тайм-аут запроса соединения. Это действует только для получения соединения из пула. | `10000` | `connection_request_timeout` | -| `setSocketTimeout(long timeout, ChronoUnit unit)` | `timeout` - значение тайм-аута
    `unit` - единица времени | Устанавливает тайм-аут сокета, который влияет на операции чтения и записи | `0` | `socket_timeout` | -| `setExecutionTimeout(long timeout, ChronoUnit timeUnit)` | `timeout` - значение тайм-аута
    `timeUnit` - единица времени | Устанавливает максимальный тайм-аут выполнения для запросов | `0` | `max_execution_time` | -| `retryOnFailures(ClientFaultCause ...causes)` | `causes` - константа enum `ClientFaultCause` | Устанавливает типы восстанавливаемых/повторяемых сбоев. | `NoHttpResponse` `ConnectTimeout` `ConnectionRequestTimeout` | `client_retry_on_failures` | -| `setMaxRetries(int maxRetries)` | `maxRetries` - количество повторов | Устанавливает максимальное количество повторов для сбоев, определенных `retryOnFailures` | `3` | `retry` | - -
    - - - -| Method | Arguments | Description | Default | Key | -|--------|-----------|-------------|---------|-----| -| `setSocketRcvbuf(long size)` | `size` - size in bytes | Sets TCP socket receive buffer. This buffer out of the JVM memory. | `8196` | `socket_rcvbuf` | -| `setSocketSndbuf(long size)` | `size` - size in bytes | Sets TCP socket send buffer. This buffer out of the JVM memory. | `8196` | `socket_sndbuf` | -| `setSocketKeepAlive(boolean value)` | `value` - flag to enable/disable | Sets option `SO_KEEPALIVE` for every TCP socket. TCP Keep Alive enables mechanism that will check liveness of the connection. | - | `socket_keepalive` | -| `setSocketTcpNodelay(boolean value)` | `value` - flag to enable/disable | Sets option `SO_NODELAY` for every TCP socket. This TCP option will make socket to push data as soon as possible. | - | `socket_tcp_nodelay` | -| `setSocketLinger(int secondsToWait)` | `secondsToWait` - number of seconds | Set linger time for every TCP socket created by the client. | - | `socket_linger` | - - - - - -| Method | Arguments | Description | Default | Key | -|--------|-----------|-------------|---------|-----| -| `compressServerResponse(boolean enabled)` | `enabled` - flag to enable/disable | Sets if server should compress its responses. | `true` | `compress` | -| `compressClientRequest(boolean enabled)` | `enabled` - flag to enable/disable | Sets if client should compress its requests. | `false` | `decompress` | -| `useHttpCompression(boolean enabled)` | `enabled` - flag to enable/disable | Sets if HTTP compression should be used for client/server communications if corresponding options are enabled | - | - | -| `appCompressedData(boolean enabled)` | `enabled` - flag to enable/disable | Tell client that compression will be handled by application. | `false` | `app_compressed_data` | -| `setLZ4UncompressedBufferSize(int size)` | `size` - size in bytes | Sets size of a buffer that will receive uncompressed portion of a data stream. | `65536` | `compression.lz4.uncompressed_buffer_size` | -| `disableNativeCompression` | `disable` - flag to disable | Disable native compression. If set to true then native compression will be disabled. | `false` | `disable_native_compression` | - - - - - -| Method | Arguments | Description | Default | Key | -|--------|-----------|-------------|---------|-----| -| `setSSLTrustStore(String path)` | `path` - file path on local system | Sets if client should use SSL truststore for server host validation. | - | `trust_store` | -| `setSSLTrustStorePassword(String password)` | `password` - secret value | Sets password to be used to unlock SSL truststore specified by `setSSLTrustStore` | - | `key_store_password` | -| `setSSLTrustStoreType(String type)` | `type` - truststore type name | Sets type of the truststore specified by `setSSLTrustStore`. | - | `key_store_type` | -| `setRootCertificate(String path)` | `path` - file path on local system | Sets if client should use specified root (CA) certificate for server host to validation. | - | `sslrootcert` | -| `setClientCertificate(String path)` | `path` - file path on local system | Sets client certificate path to be used while initiating SSL connection and to be used by SSL authentication. | - | `sslcert` | -| `setClientKey(String path)` | `path` - file path on local system | Sets client private key to be used for encrypting SSL communication with a server. | - | `ssl_key` | -| `sslSocketSNI(String sni)` | `sni` - server name string | Sets server name to be used for SNI (Server Name Indication) in SSL/TLS connection. | - | `ssl_socket_sni` | - - - - - -| Method | Arguments | Description | Default | Key | -|--------|-----------|-------------|---------|-----| -| `addProxy(ProxyType type, String host, int port)` | `type` - proxy type
    `host` - proxy hostname or IP
    `port` - proxy port | Sets proxy to be used for communication with a server. | - | `proxy_type`, `proxy_host`, `proxy_port` | -| `setProxyCredentials(String user, String pass)` | `user` - proxy username
    `pass` - password | Sets user credentials to authenticate with a proxy. | - | `proxy_user`, `proxy_password` | - -
    - - - -| Method | Arguments | Description | Default | Key | -|--------|-----------|-------------|---------|-----| -| `setHttpCookiesEnabled(boolean enabled)` | `enabled` - flag to enable/disable | Set if HTTP cookies should be remembered and sent to server back. | - | - | -| `httpHeader(String key, String value)` | `key` - HTTP header key
    `value` - string value | Sets value for a single HTTP header. Previous value is overridden. | `none` | `none` | -| `httpHeader(String key, Collection values)` | `key` - HTTP header key
    `values` - list of string values | Sets values for a single HTTP header. Previous value is overridden. | `none` | `none` | -| `httpHeaders(Map headers)` | `headers` - map with HTTP headers | Sets multiple HTTP header values at a time. | `none` | `none` | - -
    - - - -| Method | Arguments | Description | Default | Key | -|--------|-----------|-------------|---------|-----| -| `serverSetting(String name, String value)` | `name` - setting name
    `value` - setting value | Sets what settings to pass to server along with each query. Individual operation settings may override it. [List of settings](/operations/settings/query-level) | `none` | `none` | -| `serverSetting(String name, Collection values)` | `name` - setting name
    `values` - setting values | Sets what settings to pass to server with multiple values, for example [roles](/interfaces/http#setting-role-with-query-parameters) | `none` | `none` | - -
    - - - -| Method | Arguments | Description | Default | Key | -|--------|-----------|-------------|---------|-----| -| `useServerTimeZone(boolean useServerTimeZone)` | `useServerTimeZone` - flag to enable/disable | Sets if client should use server timezone when decoding DateTime and Date column values. | `true` | `use_server_time_zone` | -| `useTimeZone(String timeZone)` | `timeZone` - java valid timezone ID | Sets if specified timezone should be used when decoding DateTime and Date column values. Will override server timezone. | - | `use_time_zone` | -| `setServerTimeZone(String timeZone)` | `timeZone` - java valid timezone ID | Sets server side timezone. UTC timezone will be used by default. | `UTC` | `server_time_zone` | - - - - - -| Method | Arguments | Description | Default | Key | -|--------|-----------|-------------|---------|-----| -| `setOption(String key, String value)` | `key` - configuration option key
    `value` - option value | Sets raw value of client options. Useful when reading configuration from properties files. | - | - | -| `useAsyncRequests(boolean async)` | `async` - flag to enable/disable | Sets if client should execute request in a separate thread. Disabled by default because application knows better how to organize multi-threaded tasks. | `false` | `async` | -| `setSharedOperationExecutor(ExecutorService executorService)` | `executorService` - executor service instance | Sets executor service for operation tasks. | `none` | `none` | -| `setClientNetworkBufferSize(int size)` | `size` - size in bytes | Sets size of a buffer in application memory space that is used to copy data between socket and application. | `300000` | `client_network_buffer_size` | -| `allowBinaryReaderToReuseBuffers(boolean reuse)` | `reuse` - flag to enable/disable | If enabled, reader will use preallocated buffers to do numbers transcoding. Reduces GC pressure for numeric data. | - | - | -| `columnToMethodMatchingStrategy(ColumnToMethodMatchingStrategy strategy)` | `strategy` - matching strategy implementation | Sets custom strategy to be used for matching DTO class fields and DB columns when registering DTO. | `none` | `none` | -| `setClientName(String clientName)` | `clientName` - application name string | Sets additional information about calling application. Will be passed as `User-Agent` header. | - | `client_name` | -| `registerClientMetrics(Object registry, String name)` | `registry` - Micrometer registry instance
    `name` - metrics group name | Registers sensors with Micrometer (https://micrometer.io/) registry instance. | - | - | -| `setServerVersion(String version)` | `version` - server version string | Sets server version to avoid version detection. | - | `server_version` | -| `typeHintMapping(Map typeHintMapping)` | `typeHintMapping` - map of type hints | Sets type hint mapping for ClickHouse types. For example, to make multidimensional arrays be present as Java containers. | - | `type_hint_mapping` | - -
    -
    -
    - -### Server Settings - -Server side settings can be set on the client level once while creation (see `serverSetting` method of the `Builder`) and on operation level (see `serverSetting` for operation settings class). - -```java showLineNumbers - try (Client client = new Client.Builder().addEndpoint(Protocol.HTTP, "localhost", mockServer.port(), false) - .setUsername("default") - .setPassword(ClickHouseServerForTest.getPassword()) - .compressClientRequest(true) - - // Client level - .serverSetting("max_threads", "10") - .serverSetting("async_insert", "1") - .serverSetting("roles", Arrays.asList("role1", "role2")) - - .build()) { - - // Operation level - QuerySettings querySettings = new QuerySettings(); - querySettings.serverSetting("session_timezone", "Europe/Zurich"); - - ... -} -``` -⚠️ When options are set via `setOption` method (either the `Client.Builder` or operation settings class) then server settings name should be prefixed with `clickhouse_setting_`. The `com.clickhouse.client.api.ClientConfigProperties#serverSetting()` may be handy in this case. - -### Custom HTTP Header - -Custom HTTP headers can be set for all operations (client level) or a single one (operation level). -```java showLineNumbers - -QuerySettings settings = new QuerySettings() - .httpHeader(HttpHeaders.REFERER, clientReferer) - .setQueryId(qId); - -``` - -When options are set via `setOption` method (either the `Client.Builder` or operation settings class) then custom header name should be prefixed with `http_header_`. Method `com.clickhouse.client.api.ClientConfigProperties#httpHeader()` may be handy in this case. - -## Общие определения {#common-definitions} - -### ClickHouseFormat {#clickhouseformat} - -Перечисление [поддерживаемых форматов](/interfaces/formats). Включает все форматы, которые поддерживает ClickHouse. - -* `raw` - пользователь должен перекодировать сырые данные -* `full` - клиент может перекодировать данные самостоятельно и принимает поток сырых данных -* `-` - операция не поддерживается ClickHouse для этого формата - -Эта версия клиента поддерживает: - -| Format | Input | Output | -|-------------------------------------------------------------------------------------------------------------------------------|:------:|:-------:| -| [TabSeparated](/interfaces/formats/TabSeparated) | raw | raw | -| [TabSeparatedRaw](/interfaces/formats/TabSeparatedRaw) | raw | raw | -| [TabSeparatedWithNames](/interfaces/formats/TabSeparatedWithNames) | raw | raw | -| [TabSeparatedWithNamesAndTypes](/interfaces/formats/TabSeparatedWithNamesAndTypes) | raw | raw | -| [TabSeparatedRawWithNames](/interfaces/formats/TabSeparatedRawWithNames) | raw | raw | -| [TabSeparatedRawWithNamesAndTypes](/interfaces/formats/TabSeparatedRawWithNamesAndTypes) | raw | raw | -| [Template](/interfaces/formats/Template) | raw | raw | -| [TemplateIgnoreSpaces](/interfaces/formats/TemplateIgnoreSpaces) | raw | - | -| [CSV](/interfaces/formats/CSV) | raw | raw | -| [CSVWithNames](/interfaces/formats/CSVWithNames) | raw | raw | -| [CSVWithNamesAndTypes](/interfaces/formats/CSVWithNamesAndTypes) | raw | raw | -| [CustomSeparated](/interfaces/formats/CustomSeparated) | raw | raw | -| [CustomSeparatedWithNames](/interfaces/formats/CustomSeparatedWithNames) | raw | raw | -| [CustomSeparatedWithNamesAndTypes](/interfaces/formats/CustomSeparatedWithNamesAndTypes) | raw | raw | -| [SQLInsert](/interfaces/formats/SQLInsert) | - | raw | -| [Values](/interfaces/formats/Values) | raw | raw | -| [Vertical](/interfaces/formats/Vertical) | - | raw | -| [JSON](/interfaces/formats/JSON) | raw | raw | -| [JSONAsString](/interfaces/formats/JSONAsString) | raw | - | -| [JSONAsObject](/interfaces/formats/JSONAsObject) | raw | - | -| [JSONStrings](/interfaces/formats/JSONStrings) | raw | raw | -| [JSONColumns](/interfaces/formats/JSONColumns) | raw | raw | -| [JSONColumnsWithMetadata](/interfaces/formats/JSONColumnsWithMetadata) | raw | raw | -| [JSONCompact](/interfaces/formats/JSONCompact) | raw | raw | -| [JSONCompactStrings](/interfaces/formats/JSONCompactStrings) | - | raw | -| [JSONCompactColumns](/interfaces/formats/JSONCompactColumns) | raw | raw | -| [JSONEachRow](/interfaces/formats/JSONEachRow) | raw | raw | -| [PrettyJSONEachRow](/interfaces/formats/PrettyJSONEachRow) | - | raw | -| [JSONEachRowWithProgress](/interfaces/formats/JSONEachRowWithProgress) | - | raw | -| [JSONStringsEachRow](/interfaces/formats/JSONStringsEachRow) | raw | raw | -| [JSONStringsEachRowWithProgress](/interfaces/formats/JSONStringsEachRowWithProgress) | - | raw | -| [JSONCompactEachRow](/interfaces/formats/JSONCompactEachRow) | raw | raw | -| [JSONCompactEachRowWithNames](/interfaces/formats/JSONCompactEachRowWithNames) | raw | raw | -| [JSONCompactEachRowWithNamesAndTypes](/interfaces/formats/JSONCompactEachRowWithNamesAndTypes) | raw | raw | -| [JSONCompactStringsEachRow](/interfaces/formats/JSONCompactStringsEachRow) | raw | raw | -| [JSONCompactStringsEachRowWithNames](/interfaces/formats/JSONCompactStringsEachRowWithNames) | raw | raw | -| [JSONCompactStringsEachRowWithNamesAndTypes](/interfaces/formats/JSONCompactStringsEachRowWithNamesAndTypes) | raw | raw | -| [JSONObjectEachRow](/interfaces/formats/JSONObjectEachRow) | raw | raw | -| [BSONEachRow](/interfaces/formats/BSONEachRow) | raw | raw | -| [TSKV](/interfaces/formats/TSKV) | raw | raw | -| [Pretty](/interfaces/formats/Pretty) | - | raw | -| [PrettyNoEscapes](/interfaces/formats/PrettyNoEscapes) | - | raw | -| [PrettyMonoBlock](/interfaces/formats/PrettyMonoBlock) | - | raw | -| [PrettyNoEscapesMonoBlock](/interfaces/formats/PrettyNoEscapesMonoBlock) | - | raw | -| [PrettyCompact](/interfaces/formats/PrettyCompact) | - | raw | -| [PrettyCompactNoEscapes](/interfaces/formats/PrettyCompactNoEscapes) | - | raw | -| [PrettyCompactMonoBlock](/interfaces/formats/PrettyCompactMonoBlock) | - | raw | -| [PrettyCompactNoEscapesMonoBlock](/interfaces/formats/PrettyCompactNoEscapesMonoBlock) | - | raw | -| [PrettySpace](/interfaces/formats/PrettySpace) | - | raw | -| [PrettySpaceNoEscapes](/interfaces/formats/PrettySpaceNoEscapes) | - | raw | -| [PrettySpaceMonoBlock](/interfaces/formats/PrettySpaceMonoBlock) | - | raw | -| [PrettySpaceNoEscapesMonoBlock](/interfaces/formats/PrettySpaceNoEscapesMonoBlock) | - | raw | -| [Prometheus](/interfaces/formats/Prometheus) | - | raw | -| [Protobuf](/interfaces/formats/Protobuf) | raw | raw | -| [ProtobufSingle](/interfaces/formats/ProtobufSingle) | raw | raw | -| [ProtobufList](/interfaces/formats/ProtobufList) | raw | raw | -| [Avro](/interfaces/formats/Avro) | raw | raw | -| [AvroConfluent](/interfaces/formats/AvroConfluent) | raw | - | -| [Parquet](/interfaces/formats/Parquet) | raw | raw | -| [ParquetMetadata](/interfaces/formats/ParquetMetadata) | raw | - | -| [Arrow](/interfaces/formats/Arrow) | raw | raw | -| [ArrowStream](/interfaces/formats/ArrowStream) | raw | raw | -| [ORC](/interfaces/formats/ORC) | raw | raw | -| [One](/interfaces/formats/One) | raw | - | -| [Npy](/interfaces/formats/Npy) | raw | raw | -| [RowBinary](/interfaces/formats/RowBinary) | full | full | -| [RowBinaryWithNames](/interfaces/formats/RowBinaryWithNamesAndTypes) | full | full | -| [RowBinaryWithNamesAndTypes](/interfaces/formats/RowBinaryWithNamesAndTypes) | full | full | -| [RowBinaryWithDefaults](/interfaces/formats/RowBinaryWithDefaults) | full | - | -| [Native](/interfaces/formats/Native) | full | raw | -| [Null](/interfaces/formats/Null) | - | raw | -| [XML](/interfaces/formats/XML) | - | raw | -| [CapnProto](/interfaces/formats/CapnProto) | raw | raw | -| [LineAsString](/interfaces/formats/LineAsString) | raw | raw | -| [Regexp](/interfaces/formats/Regexp) | raw | - | -| [RawBLOB](/interfaces/formats/RawBLOB) | raw | raw | -| [MsgPack](/interfaces/formats/MsgPack) | raw | raw | -| [MySQLDump](/interfaces/formats/MySQLDump) | raw | - | -| [DWARF](/interfaces/formats/DWARF) | raw | - | -| [Markdown](/interfaces/formats/Markdown) | - | raw | -| [Form](/interfaces/formats/Form) | raw | - | - -## API для вставки {#insert-api} - -### insert(String tableName, InputStream data, ClickHouseFormat format) {#insertstring-tablename-inputstream-data-clickhouseformat-format} - -Принимает данные как `InputStream` байтов в указанном формате. Ожидается, что `data` закодированы в `format`. - -**Сигнатуры** - -```java -CompletableFuture insert(String tableName, InputStream data, ClickHouseFormat format, InsertSettings settings) -CompletableFuture insert(String tableName, InputStream data, ClickHouseFormat format) -``` - -**Параметры** - -`tableName` - имя целевой таблицы. - -`data` - входной поток закодированных данных. - -`format` - формат, в котором закодированы данные. - -`settings` - настройки запроса. - -**Возвращаемое значение** - -Future типа `InsertResponse` - результат операции и дополнительная информация, такая как метрики на стороне сервера. - -**Примеры** - -```java showLineNumbers -try (InputStream dataStream = getDataStream()) { - try (InsertResponse response = client.insert(TABLE_NAME, dataStream, ClickHouseFormat.JSONEachRow, - insertSettings).get(3, TimeUnit.SECONDS)) { - - log.info("Insert finished: {} rows written", response.getMetrics().getMetric(ServerMetrics.NUM_ROWS_WRITTEN).getLong()); - } catch (Exception e) { - log.error("Failed to write JSONEachRow data", e); - throw new RuntimeException(e); - } -} - -``` - -### insert(String tableName, List<?> data, InsertSettings settings) {#insertstring-tablename-listlt-data-insertsettings-settings} - -Sends a write request to database. The list of objects is converted into an efficient format and then is sent to a server. The class of the list items should be registered up-front using `register(Class, TableSchema)` method. - -**Signatures** -```java -client.insert(String tableName, List data, InsertSettings settings) -client.insert(String tableName, List data) -``` - -**Parameters** - -`tableName` - name of the target table. - -`data` - collection DTO (Data Transfer Object) objects. - -`settings` - request settings. - -**Return value** - -Future of `InsertResponse` type - the result of the operation and additional information like server side metrics. - -**Examples** - -```java showLineNumbers -// Important step (done once) - register class to pre-compile object serializer according to the table schema. -client.register(ArticleViewEvent.class, client.getTableSchema(TABLE_NAME)); - -List events = loadBatch(); - -try (InsertResponse response = client.insert(TABLE_NAME, events).get()) { - // handle response, then it will be closed and connection that served request will be released. -} -``` - -### InsertSettings {#insertsettings} - -Configuration options for insert operations. - -**Configuration methods** - -| Method | Description | -|----------------------------------------------|----------------------------------------------------------------------------------------------------------------------------| -| `setQueryId(String queryId)` | Sets query ID that will be assigned to the operation. Default: `null`. | -| `setDeduplicationToken(String token)` | Sets the deduplication token. This token will be sent to the server and can be used to identify the query. Default: `null`. | -| `setInputStreamCopyBufferSize(int size)` | Copy buffer size. The buffer is used during write operations to copy data from user-provided input stream to an output stream. Default: `8196`. | -| `serverSetting(String name, String value)` | Sets individual server settings for an operation. | -| `serverSetting(String name, Collection values)` | Sets individual server settings with multiple values for an operation. Items of the collection should be `String` values. | -| `setDBRoles(Collection dbRoles)` | Sets DB roles to be set before executing an operation. Items of the collection should be `String` values. | -| `setOption(String option, Object value)` | Sets a configuration option in raw format. This is not a server setting. | - -### InsertResponse {#insertresponse} - -Response object that holds result of insert operation. It is only available if the client got response from a server. - -:::note -This object should be closed as soon as possible to release a connection because the connection cannot be re-used until all data of previous response is fully read. -::: - -| Method | Description | -|-----------------------------|------------------------------------------------------------------------------------------------------| -| `OperationMetrics getMetrics()` | Returns object with operation metrics. | -| `String getQueryId()` | Returns query ID assigned for the operation by the application (through operation settings or by server). | - -## API для запросов {#query-api} - -### query(String sqlQuery) {#querystring-sqlquery} - -Отправляет `sqlQuery` как есть. Формат ответа задается настройками запроса. `QueryResponse` будет содержать ссылку на поток ответа, который должен быть обработан читателем для поддерживаемого формата. - -**Сигнатуры** - -```java -CompletableFuture query(String sqlQuery, QuerySettings settings) -CompletableFuture query(String sqlQuery) -``` - -**Parameters** - -`sqlQuery` - a single SQL statement. The Query is sent as is to a server. - -`settings` - request settings. - -**Return value** - -Future of `QueryResponse` type - a result dataset and additional information like server side metrics. The Response object should be closed after consuming the dataset. - -**Examples** - -```java -final String sql = "select * from " + TABLE_NAME + " where title <> '' limit 10"; - -// Default format is RowBinaryWithNamesAndTypesFormatReader so reader have all information about columns -try (QueryResponse response = client.query(sql).get(3, TimeUnit.SECONDS);) { - - // Create a reader to access the data in a convenient way - ClickHouseBinaryFormatReader reader = client.newBinaryFormatReader(response); - - while (reader.hasNext()) { - reader.next(); // Read the next record from stream and parse it - - // get values - double id = reader.getDouble("id"); - String title = reader.getString("title"); - String url = reader.getString("url"); - - // collecting data - } -} catch (Exception e) { - log.error("Failed to read data", e); -} - -// put business logic outside of the reading block to release http connection asap. -``` - -### query(String sqlQuery, Map<String, Object> queryParams, QuerySettings settings) {#querystring-sqlquery-mapltstring-object-queryparams-querysettings-settings} - -Sends `sqlQuery` as is. Additionally will send query parameters so the server can compile the SQL expression. - -**Signatures** -```java -CompletableFuture query(String sqlQuery, Map queryParams, QuerySettings settings) -``` - -**Parameters** - -`sqlQuery` - sql expression with placeholders `{}`. - -`queryParams` - map of variables to complete the sql expression on server. - -`settings` - request settings. - -**Return value** - -Future of `QueryResponse` type - a result dataset and additional information like server side metrics. The Response object should be closed after consuming the dataset. - -**Examples** - -```java showLineNumbers - -// define parameters. They will be sent to the server along with the request. -Map queryParams = new HashMap<>(); -queryParams.put("param1", 2); - -try (QueryResponse response = - client.query("SELECT * FROM " + table + " WHERE col1 >= {param1:UInt32}", queryParams, new QuerySettings()).get()) { - - // Create a reader to access the data in a convenient way - ClickHouseBinaryFormatReader reader = client.newBinaryFormatReader(response); - - while (reader.hasNext()) { - reader.next(); // Read the next record from stream and parse it - - // reading data - } - -} catch (Exception e) { - log.error("Failed to read data", e); -} - -``` - -### queryAll(String sqlQuery) {#queryallstring-sqlquery} - -Queries a data in `RowBinaryWithNamesAndTypes` format. Returns the result as a collection. Read performance is the same as with the reader but more memory is required to hold the whole dataset. - -**Signatures** -```java -List queryAll(String sqlQuery) -``` - -**Parameters** - -`sqlQuery` - sql expression to query data from a server. - -**Return value** - -Complete dataset represented by a list of `GenericRecord` objects that provide access in row style for the result data. - -**Examples** - -```java showLineNumbers -try { - log.info("Reading whole table and process record by record"); - final String sql = "select * from " + TABLE_NAME + " where title <> ''"; - - // Read whole result set and process it record by record - client.queryAll(sql).forEach(row -> { - double id = row.getDouble("id"); - String title = row.getString("title"); - String url = row.getString("url"); - - log.info("id: {}, title: {}, url: {}", id, title, url); - }); -} catch (Exception e) { - log.error("Failed to read data", e); -} -``` - -### QuerySettings {#querysettings} - -Configuration options for query operations. - -**Configuration methods** - -| Method | Description | -|----------------------------------------------|----------------------------------------------------------------------------------------------------------------------------| -| `setQueryId(String queryId)` | Sets query ID that will be assigned to the operation. | -| `setFormat(ClickHouseFormat format)` | Sets response format. See `RowBinaryWithNamesAndTypes` for the full list. | -| `setMaxExecutionTime(Integer maxExecutionTime)` | Sets operation execution time on server. Will not affect read timeout. | -| `waitEndOfQuery(Boolean waitEndOfQuery)` | Requests the server to wait for the end of the query before sending a response. | -| `setUseServerTimeZone(Boolean useServerTimeZone)` | Server timezone (see client config) will be used to parse date/time types in the result of an operation. Default `false`. | -| `setUseTimeZone(String timeZone)` | Requests server to use `timeZone` for time conversion. See [session_timezone](/operations/settings/settings#session_timezone). | -| `serverSetting(String name, String value)` | Sets individual server settings for an operation. | -| `serverSetting(String name, Collection values)` | Sets individual server settings with multiple values for an operation. Items of the collection should be `String` values. | -| `setDBRoles(Collection dbRoles)` | Sets DB roles to be set before executing an operation. Items of the collection should be `String` values. | -| `setOption(String option, Object value)` | Sets a configuration option in raw format. This is not a server setting. | - -### QueryResponse {#queryresponse} - -Response object that holds result of query execution. It is only available if the client got a response from a server. - -:::note -This object should be closed as soon as possible to release a connection because the connection cannot be re-used until all data of previous response is fully read. -::: - -| Method | Description | -|-------------------------------------|------------------------------------------------------------------------------------------------------| -| `ClickHouseFormat getFormat()` | Returns a format in which data in the response is encoded. | -| `InputStream getInputStream()` | Returns uncompressed byte stream of data in the specified format. | -| `OperationMetrics getMetrics()` | Returns object with operation metrics. | -| `String getQueryId()` | Returns query ID assigned for the operation by the application (through operation settings or by server). | -| `TimeZone getTimeZone()` | Returns timezone that should be used for handling Date/DateTime types in the response. | - -### Examples {#examples} - -- Example code is available in [repo](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/client-v2) -- Reference Spring Service [implementation](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/demo-service) - -## Common API {#common-api} - -### getTableSchema(String table) {#gettableschemastring-table} - -Fetches table schema for the `table`. - -**Signatures** - -```java -TableSchema getTableSchema(String table) -TableSchema getTableSchema(String table, String database) -``` - -**Parameters** - -`table` - table name for which schema data should be fetched. - -`database` - database where the target table is defined. - -**Return value** - -Returns a `TableSchema` object with list of table columns. - -### getTableSchemaFromQuery(String sql) {#gettableschemafromquerystring-sql} - -Fetches schema from a SQL statement. - -**Signatures** - -```java -TableSchema getTableSchemaFromQuery(String sql) -``` - -**Parameters** - -`sql` - "SELECT" SQL statement which schema should be returned. - -**Return value** - -Returns a `TableSchema` object with columns matching the `sql` expression. - -### TableSchema {#tableschema} - -### register(Class<?> clazz, TableSchema schema) {#registerclasslt-clazz-tableschema-schema} - -Compiles serialization and deserialization layer for the Java Class to use for writing/reading data with `schema`. The method will create a serializer and deserializer for the pair getter/setter and corresponding column. -Column match is found by extracting its name from a method name. For example, `getFirstName` will be for the column `first_name` or `firstname`. - -**Signatures** - -```java -void register(Class clazz, TableSchema schema) -``` - -**Parameters** - -`clazz` - Class representing the POJO used to read/write data. - -`schema` - Data schema to use for matching with POJO properties. - -**Examples** - -```java showLineNumbers -client.register(ArticleViewEvent.class, client.getTableSchema(TABLE_NAME)); -``` - -## Примеры использования {#usage-examples} - -Полный код примеров хранится в репозитории в [папке](https://github.com/ClickHouse/clickhouse-java/tree/main/examples) 'example': - -- [client-v2](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/client-v2) - основной набор примеров. -- [demo-service](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/demo-service) - пример использования клиента в приложении Spring Boot. -- [demo-kotlin-service](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/demo-kotlin-service) - пример использования клиента в приложении Ktor (Kotlin). - -## Руководство по миграции {#migration_guide} - - -Old client (V1) was using `com.clickhouse.client.ClickHouseClient#builder` as start point. The new client (V2) uses similar pattern with `com.clickhouse.client.api.Client.Builder`. Main -differences are: -- no service loader is used to grab implementation. The `com.clickhouse.client.api.Client` is facade class for all kinds of implementation in the future. -- a fewer sources of configuration: one is provided to the builder and one is with operation settings (`QuerySettings`, `InsertSettings`). Previous version had configuration per node and was loading -env. variables in some cases. - -### Configuration Parameters Match {#migration_from_v1_config} - -There are 3 enum classes related to configuration in V1: -- `com.clickhouse.client.config.ClickHouseDefaults` - configuration parameters that supposed to be set in most use cases. Like `USER` and `PASSWORD`. -- `com.clickhouse.client.config.ClickHouseClientOption` - configuration parameters specific for the client. Like `HEALTH_CHECK_INTERVAL`. -- `com.clickhouse.client.http.config.ClickHouseHttpOption` - configuration parameters specific for HTTP interface. Like `RECEIVE_QUERY_PROGRESS`. - -They were designed to group parameters and provide clear separation. However in some cases it lead to a confusion (is there a difference between `com.clickhouse.client.config.ClickHouseDefaults#ASYNC` and -`com.clickhouse.client.config.ClickHouseClientOption#ASYNC`). The new V2 client uses `com.clickhouse.client.api.Client.Builder` as single dictionary of all possible client configuration options.There is -`com.clickhouse.client.api.ClientConfigProperties` where all configuration parameter names are listed. - -Table below shows what old options are supported in the new client and their new meaning. - -**Legend:** ✔ = supported, ✗ = dropped - - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseDefaults#HOST` | `Client.Builder#addEndpoint` | | -| `ClickHouseDefaults#PROTOCOL` | ✗ | Only HTTP supported in V2 | -| `ClickHouseDefaults#DATABASE`
    `ClickHouseClientOption#DATABASE` | `Client.Builder#setDefaultDatabase` | | -| `ClickHouseDefaults#USER` | `Client.Builder#setUsername` | | -| `ClickHouseDefaults#PASSWORD` | `Client.Builder#setPassword` | | -| `ClickHouseClientOption#CONNECTION_TIMEOUT` | `Client.Builder#setConnectTimeout` | | -| `ClickHouseClientOption#CONNECTION_TTL` | `Client.Builder#setConnectionTTL` | | -| `ClickHouseHttpOption#MAX_OPEN_CONNECTIONS` | `Client.Builder#setMaxConnections` | | -| `ClickHouseHttpOption#KEEP_ALIVE`
    `ClickHouseHttpOption#KEEP_ALIVE_TIMEOUT` | `Client.Builder#setKeepAliveTimeout` | | -| `ClickHouseHttpOption#CONNECTION_REUSE_STRATEGY` | `Client.Builder#setConnectionReuseStrategy` | | -| `ClickHouseHttpOption#USE_BASIC_AUTHENTICATION` | `Client.Builder#useHTTPBasicAuth` | | - -
    - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseDefaults#SSL_CERTIFICATE_TYPE` | ✗ | | -| `ClickHouseDefaults#SSL_KEY_ALGORITHM` | ✗ | | -| `ClickHouseDefaults#SSL_PROTOCOL` | ✗ | | -| `ClickHouseClientOption#SSL` | ✗ | See `Client.Builder#addEndpoint` | -| `ClickHouseClientOption#SSL_MODE` | ✗ | | -| `ClickHouseClientOption#SSL_ROOT_CERTIFICATE` | `Client.Builder#setRootCertificate` | SSL Auth should be enabled by `useSSLAuthentication` | -| `ClickHouseClientOption#SSL_CERTIFICATE` | `Client.Builder#setClientCertificate` | | -| `ClickHouseClientOption#SSL_KEY` | `Client.Builder#setClientKey` | | -| `ClickHouseClientOption#KEY_STORE_TYPE` | `Client.Builder#setSSLTrustStoreType` | | -| `ClickHouseClientOption#TRUST_STORE` | `Client.Builder#setSSLTrustStore` | | -| `ClickHouseClientOption#KEY_STORE_PASSWORD` | `Client.Builder#setSSLTrustStorePassword` | | -| `ClickHouseClientOption#SSL_SOCKET_SNI` | `Client.Builder#sslSocketSNI` | | -| `ClickHouseClientOption#CUSTOM_SOCKET_FACTORY` | ✗ | | -| `ClickHouseClientOption#CUSTOM_SOCKET_FACTORY_OPTIONS` | ✗ | See `Client.Builder#sslSocketSNI` to set SNI | - - - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseClientOption#SOCKET_TIMEOUT` | `Client.Builder#setSocketTimeout` | | -| `ClickHouseClientOption#SOCKET_REUSEADDR` | `Client.Builder#setSocketReuseAddress` | | -| `ClickHouseClientOption#SOCKET_KEEPALIVE` | `Client.Builder#setSocketKeepAlive` | | -| `ClickHouseClientOption#SOCKET_LINGER` | `Client.Builder#setSocketLinger` | | -| `ClickHouseClientOption#SOCKET_IP_TOS` | ✗ | | -| `ClickHouseClientOption#SOCKET_TCP_NODELAY` | `Client.Builder#setSocketTcpNodelay` | | -| `ClickHouseClientOption#SOCKET_RCVBUF` | `Client.Builder#setSocketRcvbuf` | | -| `ClickHouseClientOption#SOCKET_SNDBUF` | `Client.Builder#setSocketSndbuf` | | - - - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseClientOption#COMPRESS` | `Client.Builder#compressServerResponse` | See also `useHttpCompression` | -| `ClickHouseClientOption#DECOMPRESS` | `Client.Builder#compressClientRequest` | See also `useHttpCompression` | -| `ClickHouseClientOption#COMPRESS_ALGORITHM` | ✗ | `LZ4` for non-http. Http uses `Accept-Encoding` | -| `ClickHouseClientOption#DECOMPRESS_ALGORITHM` | ✗ | `LZ4` for non-http. Http uses `Content-Encoding` | -| `ClickHouseClientOption#COMPRESS_LEVEL` | ✗ | | -| `ClickHouseClientOption#DECOMPRESS_LEVEL` | ✗ | | - - - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseClientOption#PROXY_TYPE` | `Client.Builder#addProxy` | | -| `ClickHouseClientOption#PROXY_HOST` | `Client.Builder#addProxy` | | -| `ClickHouseClientOption#PROXY_PORT` | `Client.Builder#addProxy` | | -| `ClickHouseClientOption#PROXY_USERNAME` | `Client.Builder#setProxyCredentials` | | -| `ClickHouseClientOption#PROXY_PASSWORD` | `Client.Builder#setProxyCredentials` | | - - - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseClientOption#MAX_EXECUTION_TIME` | `Client.Builder#setExecutionTimeout` | | -| `ClickHouseClientOption#RETRY` | `Client.Builder#setMaxRetries` | See also `retryOnFailures` | -| `ClickHouseHttpOption#AHC_RETRY_ON_FAILURE` | `Client.Builder#retryOnFailures` | | -| `ClickHouseClientOption#FAILOVER` | ✗ | | -| `ClickHouseClientOption#REPEAT_ON_SESSION_LOCK` | ✗ | | -| `ClickHouseClientOption#SESSION_ID` | ✗ | | -| `ClickHouseClientOption#SESSION_CHECK` | ✗ | | -| `ClickHouseClientOption#SESSION_TIMEOUT` | ✗ | | - - - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseDefaults#SERVER_TIME_ZONE`
    `ClickHouseClientOption#SERVER_TIME_ZONE` | `Client.Builder#setServerTimeZone` | | -| `ClickHouseClientOption#USE_SERVER_TIME_ZONE` | `Client.Builder#useServerTimeZone` | | -| `ClickHouseClientOption#USE_SERVER_TIME_ZONE_FOR_DATES` | | | -| `ClickHouseClientOption#USE_TIME_ZONE` | `Client.Builder#useTimeZone` | | - -
    - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseClientOption#BUFFER_SIZE` | `Client.Builder#setClientNetworkBufferSize` | | -| `ClickHouseClientOption#BUFFER_QUEUE_VARIATION` | ✗ | | -| `ClickHouseClientOption#READ_BUFFER_SIZE` | ✗ | | -| `ClickHouseClientOption#WRITE_BUFFER_SIZE` | ✗ | | -| `ClickHouseClientOption#REQUEST_CHUNK_SIZE` | ✗ | | -| `ClickHouseClientOption#REQUEST_BUFFERING` | ✗ | | -| `ClickHouseClientOption#RESPONSE_BUFFERING` | ✗ | | -| `ClickHouseClientOption#MAX_BUFFER_SIZE` | ✗ | | -| `ClickHouseClientOption#MAX_QUEUED_BUFFERS` | ✗ | | -| `ClickHouseClientOption#MAX_QUEUED_REQUESTS` | ✗ | | -| `ClickHouseClientOption#REUSE_VALUE_WRAPPER` | ✗ | | - - - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseDefaults#ASYNC`
    `ClickHouseClientOption#ASYNC` | `Client.Builder#useAsyncRequests` | | -| `ClickHouseDefaults#MAX_SCHEDULER_THREADS` | ✗ | see `setSharedOperationExecutor` | -| `ClickHouseDefaults#MAX_THREADS` | ✗ | see `setSharedOperationExecutor` | -| `ClickHouseDefaults#THREAD_KEEPALIVE_TIMEOUT` | see `setSharedOperationExecutor` | | -| `ClickHouseClientOption#MAX_THREADS_PER_CLIENT` | ✗ | | -| `ClickHouseClientOption#MAX_CORE_THREAD_TTL` | ✗ | | - -
    - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseHttpOption#CUSTOM_HEADERS` | `Client.Builder#httpHeaders` | | -| `ClickHouseHttpOption#CUSTOM_PARAMS` | ✗ | See `Client.Builder#serverSetting` | -| `ClickHouseClientOption#CLIENT_NAME` | `Client.Builder#setClientName` | | -| `ClickHouseHttpOption#CONNECTION_PROVIDER` | ✗ | | -| `ClickHouseHttpOption#DEFAULT_RESPONSE` | ✗ | | -| `ClickHouseHttpOption#SEND_HTTP_CLIENT_ID` | ✗ | | -| `ClickHouseHttpOption#AHC_VALIDATE_AFTER_INACTIVITY` | ✗ | Always enabled when Apache Http Client is used | - - - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseDefaults#FORMAT`
    `ClickHouseClientOption#FORMAT` | ✗ | Moved to operation settings (`QuerySettings` and `InsertSettings`) | -| `ClickHouseClientOption#QUERY_ID` | ✗ | See `QuerySettings` and `InsertSettings` | -| `ClickHouseClientOption#LOG_LEADING_COMMENT` | ✗ | See `QuerySettings#logComment` and `InsertSettings#logComment` | -| `ClickHouseClientOption#MAX_RESULT_ROWS` | ✗ | Is server side setting | -| `ClickHouseClientOption#RESULT_OVERFLOW_MODE` | ✗ | Is server side setting | -| `ClickHouseHttpOption#RECEIVE_QUERY_PROGRESS` | ✗ | Server side setting | -| `ClickHouseHttpOption#WAIT_END_OF_QUERY` | ✗ | Server side setting | -| `ClickHouseHttpOption#REMEMBER_LAST_SET_ROLES` | `Client#setDBRoles` | Runtime config now. See also `QuerySettings#setDBRoles` and `InsertSettings#setDBRoles` | - -
    - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseClientOption#AUTO_DISCOVERY` | ✗ | | -| `ClickHouseClientOption#LOAD_BALANCING_POLICY` | ✗ | | -| `ClickHouseClientOption#LOAD_BALANCING_TAGS` | ✗ | | -| `ClickHouseClientOption#HEALTH_CHECK_INTERVAL` | ✗ | | -| `ClickHouseClientOption#HEALTH_CHECK_METHOD` | ✗ | | -| `ClickHouseClientOption#NODE_DISCOVERY_INTERVAL` | ✗ | | -| `ClickHouseClientOption#NODE_DISCOVERY_LIMIT` | ✗ | | -| `ClickHouseClientOption#NODE_CHECK_INTERVAL` | ✗ | | -| `ClickHouseClientOption#NODE_GROUP_SIZE` | ✗ | | -| `ClickHouseClientOption#CHECK_ALL_NODES` | ✗ | | - - - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseDefaults#AUTO_SESSION` | ✗ | Session support will be reviewed | -| `ClickHouseDefaults#BUFFERING` | ✗ | | -| `ClickHouseDefaults#MAX_REQUESTS` | ✗ | | -| `ClickHouseDefaults#ROUNDING_MODE` | | | -| `ClickHouseDefaults#SERVER_VERSION`
    `ClickHouseClientOption#SERVER_VERSION` | `Client.Builder#setServerVersion` | | -| `ClickHouseDefaults#SRV_RESOLVE` | ✗ | | -| `ClickHouseClientOption#CUSTOM_SETTINGS` | | | -| `ClickHouseClientOption#PRODUCT_NAME` | ✗ | Use client name | -| `ClickHouseClientOption#RENAME_RESPONSE_COLUMN` | ✗ | | -| `ClickHouseClientOption#SERVER_REVISION` | ✗ | | -| `ClickHouseClientOption#TRANSACTION_TIMEOUT` | ✗ | | -| `ClickHouseClientOption#WIDEN_UNSIGNED_TYPES` | ✗ | | -| `ClickHouseClientOption#USE_BINARY_STRING` | ✗ | | -| `ClickHouseClientOption#USE_BLOCKING_QUEUE` | ✗ | | -| `ClickHouseClientOption#USE_COMPILATION` | ✗ | | -| `ClickHouseClientOption#USE_OBJECTS_IN_ARRAYS` | ✗ | | -| `ClickHouseClientOption#MAX_MAPPER_CACHE` | ✗ | | -| `ClickHouseClientOption#MEASURE_REQUEST_TIME` | ✗ | | - -
    -
    - - -### General Differences - -- Client V2 uses less proprietary classes to increase portability. For example, V2 works with any implementation of `java.io.InputStream` for -writing data to a server. -- Client V2 `async` settings is `off` by default. It means no extra threads and more application control over client. This setting should be `off` for majority of use cases. Enabling `async` will create a separate thread for a request. It only make sense when using application controlled -executor (see `com.clickhouse.client.api.Client.Builder#setSharedOperationExecutor`) - -### Writing Data - -- use any implementation of `java.io.InputStream`. V1 `com.clickhouse.data.ClickHouseInputStream` is supported but NOT recommended. -- once end of input stream is detected it handled accordingly. Previously output stream of a request should be closed. - -__V1 Insert TSV formatted data.__ -```java -InputStream inData = getInData(); -ClickHouseRequest.Mutation request = client.read(server) - .write() - .table(tableName) - .format(ClickHouseFormat.TSV); -ClickHouseConfig config = request.getConfig(); -CompletableFuture future; -try (ClickHousePipedOutputStream requestBody = ClickHouseDataStreamFactory.getInstance() - .createPipedOutputStream(config)) { - // start the worker thread which transfer data from the input into ClickHouse - future = request.data(requestBody.getInputStream()).execute(); - - // Copy data from inData stream to requestBody stream - - // We need to close the stream before getting a response - requestBody.close(); - - try (ClickHouseResponse response = future.get()) { - ClickHouseResponseSummary summary = response.getSummary(); - Assert.assertEquals(summary.getWrittenRows(), numRows, "Num of written rows"); - } -} - -``` - -__V2 Insert TSV formatted data.__ - -```java -InputStream inData = getInData(); -InsertSettings settings = new InsertSettings().setInputStreamCopyBufferSize(8198 * 2); // set copy buffer size -try (InsertResponse response = client.insert(tableName, inData, ClickHouseFormat.TSV, settings).get(30, TimeUnit.SECONDS)) { - - // Insert is complete at this point - -} catch (Exception e) { - // Handle exception -} -``` -- there is a single method to call. No need to create an additional request object. -- request body stream is closed automatically when all data is copied. -- new low-level API is available `com.clickhouse.client.api.Client#insert(java.lang.String, java.util.List, com.clickhouse.client.api.DataStreamWriter, com.clickhouse.data.ClickHouseFormat, com.clickhouse.client.api.insert.InsertSettings)`. `com.clickhouse.client.api.DataStreamWriter` is designed to implement custom data writing logic. For instance, reading data from a -queue. - - -### Reading Data - -- Data is read in `RowBinaryWithNamesAndTypes` format by default. Currently only this format is supported when data binding is required. -- Data can be read as a collection of records using `List com.clickhouse.client.api.Client#queryAll(java.lang.String)` method. It will read data to a memory and release connection. No need for extra handling. `GenericRecord` gives access to data, implements some conversions. - -```java -Collection records = client.queryAll("SELECT * FROM table"); -for (GenericRecord record : records) { - int rowId = record.getInteger("rowID"); - String name = record.getString("name"); - LocalDateTime ts = record.getLocalDateTime("ts"); -} - -``` - -
    - - - -Java client library to communicate with a DB server through its protocols. Current implementation supports only [HTTP interface](/interfaces/http). The library provides own API to send requests to a server. - -:::warning Deprecation -This library will be deprecated soon. Use the latest [Java Client](/integrations/language-clients/java/client/client.mdx) for new projects -::: - -## Setup {#v1-setup} - - - - -```xml - - - com.clickhouse - clickhouse-http-client - 0.7.2 - -``` - - - - -```kotlin -// https://mvnrepository.com/artifact/com.clickhouse/clickhouse-http-client -implementation("com.clickhouse:clickhouse-http-client:0.7.2") -``` - - - -```groovy -// https://mvnrepository.com/artifact/com.clickhouse/clickhouse-http-client -implementation 'com.clickhouse:clickhouse-http-client:0.7.2' -``` - - - - -Since version `0.5.0`, the driver uses a new client http library that needs to be added as a dependency. - - - - -```xml - - - org.apache.httpcomponents.client5 - httpclient5 - 5.3.1 - -``` - - - - -```kotlin -// https://mvnrepository.com/artifact/org.apache.httpcomponents.client5/httpclient5 -implementation("org.apache.httpcomponents.client5:httpclient5:5.3.1") -``` - - - -```groovy -// https://mvnrepository.com/artifact/org.apache.httpcomponents.client5/httpclient5 -implementation 'org.apache.httpcomponents.client5:httpclient5:5.3.1' -``` - - - - -## Initialization {#v1-initialization} - -Connection URL Format: `protocol://host[:port][/database][?param[=value][¶m[=value]][#tag[,tag]]`, for example: - -- `http://localhost:8443?ssl=true&sslmode=NONE` -- `https://(https://explorer@play.clickhouse.com:443` - -Connect to a single node: - -```java showLineNumbers -ClickHouseNode server = ClickHouseNode.of("http://localhost:8123/default?compress=0"); -``` -Connect to a cluster with multiple nodes: - -```java showLineNumbers -ClickHouseNodes servers = ClickHouseNodes.of( - "jdbc:ch:http://server1.domain,server2.domain,server3.domain/my_db" - + "?load_balancing_policy=random&health_check_interval=5000&failover=2"); -``` - -## Query API {#v1-query-api} - -```java showLineNumbers -try (ClickHouseClient client = ClickHouseClient.newInstance(ClickHouseProtocol.HTTP); - ClickHouseResponse response = client.read(servers) - .format(ClickHouseFormat.RowBinaryWithNamesAndTypes) - .query("select * from numbers limit :limit") - .params(1000) - .executeAndWait()) { - ClickHouseResponseSummary summary = response.getSummary(); - long totalRows = summary.getTotalRowsToRead(); -} -``` - -## Streaming Query API {#v1-streaming-query-api} - -```java showLineNumbers -try (ClickHouseClient client = ClickHouseClient.newInstance(ClickHouseProtocol.HTTP); - ClickHouseResponse response = client.read(servers) - .format(ClickHouseFormat.RowBinaryWithNamesAndTypes) - .query("select * from numbers limit :limit") - .params(1000) - .executeAndWait()) { - for (ClickHouseRecord r : response.records()) { - int num = r.getValue(0).asInteger(); - // type conversion - String str = r.getValue(0).asString(); - LocalDate date = r.getValue(0).asDate(); - } -} -``` - -See [complete code example](https://github.com/ClickHouse/clickhouse-java/blob/main/examples/client/src/main/java/com/clickhouse/examples/jdbc/Main.java#L73) in the [repo](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/client). - -## Insert API {#v1-insert-api} - -```java showLineNumbers - -try (ClickHouseClient client = ClickHouseClient.newInstance(ClickHouseProtocol.HTTP); - ClickHouseResponse response = client.read(servers).write() - .format(ClickHouseFormat.RowBinaryWithNamesAndTypes) - .query("insert into my_table select c2, c3 from input('c1 UInt8, c2 String, c3 Int32')") - .data(myInputStream) // `myInputStream` is source of data in RowBinary format - .executeAndWait()) { - ClickHouseResponseSummary summary = response.getSummary(); - summary.getWrittenRows(); -} -``` - -See [complete code example](https://github.com/ClickHouse/clickhouse-java/blob/main/examples/client/src/main/java/com/clickhouse/examples/jdbc/Main.java#L39) in the [repo](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/client). - -**RowBinary Encoding** - -RowBinary format is described on its [page](/interfaces/formats/RowBinaryWithNamesAndTypes). - -There is an example of [code](https://github.com/ClickHouse/clickhouse-kafka-connect/blob/main/src/main/java/com/clickhouse/kafka/connect/sink/db/ClickHouseWriter.java#L622). - -## Features {#v1-features} -### Compression {#v1-compression} - -The client will by default use LZ4 compression, which requires this dependency: - - - - -```xml - - - org.lz4 - lz4-java - 1.8.0 - -``` - - - - -```kotlin -// https://mvnrepository.com/artifact/org.lz4/lz4-java -implementation("org.lz4:lz4-java:1.8.0") -``` - - - -```groovy -// https://mvnrepository.com/artifact/org.lz4/lz4-java -implementation 'org.lz4:lz4-java:1.8.0' -``` - - - - -You can choose to use gzip instead by setting `compress_algorithm=gzip` in the connection URL. - -Alternatively, you can disable compression a few ways. - -1. Disable by setting `compress=0` in the connection URL: `http://localhost:8123/default?compress=0` -2. Disable via the client configuration: - -```java showLineNumbers -ClickHouseClient client = ClickHouseClient.builder() - .config(new ClickHouseConfig(Map.of(ClickHouseClientOption.COMPRESS, false))) - .nodeSelector(ClickHouseNodeSelector.of(ClickHouseProtocol.HTTP)) - .build(); -``` - -See the [compression documentation](/data-compression/compression-modes) to learn more about different compression options. - -### Multiple queries {#v1-multiple-queries} - -Execute multiple queries in a worker thread one after another within same session: - -```java showLineNumbers -CompletableFuture> future = ClickHouseClient.send(servers.apply(servers.getNodeSelector()), - "create database if not exists my_base", - "use my_base", - "create table if not exists test_table(s String) engine=Memory", - "insert into test_table values('1')('2')('3')", - "select * from test_table limit 1", - "truncate table test_table", - "drop table if exists test_table"); -List results = future.get(); -``` - -### Named Parameters {#v1-named-parameters} - -You can pass parameters by name rather than relying solely on their position in the parameter list. This capability is available using `params` function. - -```java showLineNumbers -try (ClickHouseClient client = ClickHouseClient.newInstance(ClickHouseProtocol.HTTP); - ClickHouseResponse response = client.read(servers) - .format(ClickHouseFormat.RowBinaryWithNamesAndTypes) - .query("select * from my_table where name=:name limit :limit") - .params("Ben", 1000) - .executeAndWait()) { - //... - } -} -``` - -:::note Parameters -All `params` signatures involving `String` type (`String`, `String[]`, `Map`) assume the keys being passed are valid ClickHouse SQL strings. For instance: - -```java showLineNumbers -try (ClickHouseClient client = ClickHouseClient.newInstance(ClickHouseProtocol.HTTP); - ClickHouseResponse response = client.read(servers) - .format(ClickHouseFormat.RowBinaryWithNamesAndTypes) - .query("select * from my_table where name=:name") - .params(Map.of("name","'Ben'")) - .executeAndWait()) { - //... - } -} -``` - -If you prefer not to parse String objects to ClickHouse SQL manually, you can use the helper function `ClickHouseValues.convertToSqlExpression` located at `com.clickhouse.data`: - -```java showLineNumbers -try (ClickHouseClient client = ClickHouseClient.newInstance(ClickHouseProtocol.HTTP); - ClickHouseResponse response = client.read(servers) - .format(ClickHouseFormat.RowBinaryWithNamesAndTypes) - .query("select * from my_table where name=:name") - .params(Map.of("name", ClickHouseValues.convertToSqlExpression("Ben's"))) - .executeAndWait()) { - //... - } -} -``` - -In the example above, `ClickHouseValues.convertToSqlExpression` will escape the inner single quote, and surround the variable with a valid single quotes. - -Other types, such as `Integer`, `UUID`, `Array` and `Enum` will be converted automatically inside `params`. -::: - -## Node Discovery {#v1-node-discovery} - -Java client provides the ability to discover ClickHouse nodes automatically. Auto-discovery is disabled by default. To manually enable it, set `auto_discovery` to `true`: - -```java -properties.setProperty("auto_discovery", "true"); -``` - -Or in the connection URL: - -```plaintext -jdbc:ch://my-server/system?auto_discovery=true -``` - -If auto-discovery is enabled, there is no need to specify all ClickHouse nodes in the connection URL. Nodes specified in the URL will be treated as seeds, and the Java client will automatically discover more nodes from system tables and/or clickhouse-keeper or zookeeper. - -The following options are responsible for auto-discovery configuration: - -| Property | Default | Description | -|-------------------------|---------|-------------------------------------------------------------------------------------------------------| -| auto_discovery | `false` | Whether the client should discover more nodes from system tables and/or clickhouse-keeper/zookeeper. | -| node_discovery_interval | `0` | Node discovery interval in milliseconds, zero or negative value means one-time discovery. | -| node_discovery_limit | `100` | Maximum number of nodes that can be discovered at a time; zero or negative value means no limit. | - -### Load Balancing {#v1-load-balancing} - -The Java client chooses a ClickHouse node to send requests to, according to the load-balancing policy. In general, the load-balancing policy is responsible for the following things: - -1. Get a node from a managed node list. -2. Managing node's status. -3. Optionally schedule a background process for node discovery (if auto-discovery is enabled) and run a health check. - -Here is a list of options to configure load balancing: - -| Property | Default | Description | -|-----------------------|-------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| load_balancing_policy | `""` | The load-balancing policy can be one of:
  • `firstAlive` - request is sent to the first healthy node from the managed node list
  • `random` - request is sent to a random node from the managed node list
  • `roundRobin` - request is sent to each node from the managed node list, in turn.
  • full qualified class name implementing `ClickHouseLoadBalancingPolicy` - custom load balancing policy
  • If it is not specified the request is sent to the first node from the managed node list | -| load_balancing_tags | `""` | Load balancing tags for filtering out nodes. Requests are sent only to nodes that have the specified tags | -| health_check_interval | `0` | Health check interval in milliseconds, zero or negative value means one-time. | -| health_check_method | `ClickHouseHealthCheckMethod.SELECT_ONE` | Health check method. Can be one of:
  • `ClickHouseHealthCheckMethod.SELECT_ONE` - check with `select 1` query
  • `ClickHouseHealthCheckMethod.PING` - protocol-specific check, which is generally faster
  • | -| node_check_interval | `0` | Node check interval in milliseconds, negative number is treated as zero. The node status is checked if the specified amount of time has passed since the last check.
    The difference between `health_check_interval` and `node_check_interval` is that the `health_check_interval` option schedules the background job, which checks the status for the list of nodes (all or faulty), but `node_check_interval` specifies the amount of time has passed since the last check for the particular node | -| check_all_nodes | `false` | Whether to perform a health check against all nodes or just faulty ones. | - -### Failover and retry {#v1-failover-and-retry} - -Java client provides configuration options to set up failover and retry behavior for failed queries: - -| Property | Default | Description | -|-------------------------|---------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| failover | `0` | Maximum number of times a failover can happen for a request. Zero or a negative value means no failover. Failover sends the failed request to a different node (according to the load-balancing policy) in order to recover from failover. | -| retry | `0` | Maximum number of times retry can happen for a request. Zero or a negative value means no retry. Retry sends a request to the same node and only if the ClickHouse server returns the `NETWORK_ERROR` error code | -| repeat_on_session_lock | `true` | Whether to repeat execution when the session is locked until timed out(according to `session_timeout` or `connect_timeout`). The failed request is repeated if the ClickHouse server returns the `SESSION_IS_LOCKED` error code | - -### Adding custom http headers {#v1-adding-custom-http-headers} - -Java client support HTTP/S transport layer in case we want to add custom HTTP headers to the request. -We should use the custom_http_headers property, and the headers need to be `,` separated. The header key/value should be divided using `=` - -## Java Client support {#v1-java-client-support} - -```java -options.put("custom_http_headers", "X-ClickHouse-Quota=test, X-ClickHouse-Test=test"); -``` - -## JDBC Driver {#v1-jdbc-driver} - -```java -properties.setProperty("custom_http_headers", "X-ClickHouse-Quota=test, X-ClickHouse-Test=test"); -``` - -
    - -
    diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/java/jdbc/jdbc.mdx b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/java/jdbc/jdbc.mdx deleted file mode 100644 index 7a875b1327f..00000000000 --- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/java/jdbc/jdbc.mdx +++ /dev/null @@ -1,660 +0,0 @@ ---- -sidebar_label: 'JDBC' -sidebar_position: 4 -keywords: ['clickhouse', 'java', 'jdbc', 'driver', 'integrate'] -description: 'JDBC-драйвер ClickHouse' -slug: /integrations/language-clients/java/jdbc -title: 'JDBC-драйвер' -doc_type: 'reference' ---- - -import ClientVersionDropdown from '@theme/ClientVersionDropdown/ClientVersionDropdown'; -import Version from '@theme/ClientVersionDropdown/Version'; -import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWrapper'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - - - -:::note -`clickhouse-jdbc` реализует стандартный интерфейс JDBC с использованием последнего java-клиента. -Мы рекомендуем использовать последний java-клиент напрямую, если критична производительность/прямой доступ. -::: - -## Изменения по сравнению с 0.7.x {#changes-from-07x} -В версии 0.8 мы постарались сделать драйвер более строго следующим спецификации JDBC, поэтому есть некоторые удаленные функции, которые могут на вас повлиять: - -| Старая функция | Примечания | -|----------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Поддержка транзакций | Ранние версии драйвера только **имитировали** поддержку транзакций, что могло привести к неожиданным результатам. | -| Переименование столбцов ответа | `ResultSet` был изменяемым - ради эффективности теперь они только для чтения | -| Многооператорный SQL | Поддержка нескольких операторов была только **имитирована**, теперь она строго следует 1:1 | -| Именованные параметры | Не являются частью спецификации JDBC | -| Потоковый `PreparedStatement` | Ранняя версия драйвера допускала не-jdbc использование `PreparedStatement` - если вы хотите такие опции, мы рекомендуем обратиться к [Java Client](/integrations/language-clients/java/client/client.mdx) и его [примерам](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/client-v2). | - -:::note -`Date` хранится без часового пояса, тогда как `DateTime` хранится с часовым поясом. Это может привести к неожиданным результатам, если не быть осторожным. -::: - -## Требования к окружению {#environment-requirements} - -- [OpenJDK](https://openjdk.java.net) версия >= 8 - -### Установка {#setup} - - - - - ```xml - - - com.clickhouse - clickhouse-jdbc - 0.9.4 - all - - ``` - - - - - ```kotlin - // https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc - implementation("com.clickhouse:clickhouse-jdbc:0.9.4:all") - ``` - - - - ```groovy - // https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc - implementation 'com.clickhouse:clickhouse-jdbc:0.9.4:all' - ``` - - - - -## Конфигурация {#configuration} - -**Класс драйвера**: `com.clickhouse.jdbc.ClickHouseDriver` - -**Синтаксис URL**: `jdbc:(ch|clickhouse)[:]://endpoint1[,endpoint2,...][/][?param1=value1¶m2=value2][#tag1,tag2,...]`, например: - -- `jdbc:clickhouse:http://localhost:8123` -- `jdbc:clickhouse:https://localhost:8443?ssl=true` - -### Свойства соединения - -Помимо стандартных свойств JDBC, драйвер поддерживает специфичные для ClickHouse свойства, предлагаемые базовым [java-клиентом](/integrations/language-clients/java/client#client-configuration). -Где возможно, методы будут возвращать `SQLFeatureNotSupportedException`, если функция не поддерживается. Другие пользовательские свойства включают: - -| Свойство | По умолчанию | Описание | -|----------------------------------|---------|----------------------------------------------------------------| -| `disable_frameworks_detection` | `true` | Отключить определение фреймворков для User-Agent | -| `jdbc_ignore_unsupported_values` | `false` | Подавляет `SQLFeatureNotSupportedException` | -| `clickhouse.jdbc.v1` | `false` | Использовать старую реализацию JDBC вместо новой JDBC | -| `default_query_settings` | `null` | Позволяет передавать настройки запросов по умолчанию с операциями запросов | -| `jdbc_resultset_auto_close` | `true` | Автоматически закрывает `ResultSet` при закрытии `Statement` | -| `beta.row_binary_for_simple_insert` | `false` | Использовать реализацию `PreparedStatement` на основе `RowBinary` writer. Работает только для запросов `INSERT INTO ... VALUES`. | - -:::note Настройки сервера - -Все настройки сервера должны иметь префикс `clickhouse_setting_` (так же, как для клиента [конфигурация](/integrations/language-clients/java/client#server-settings)). - - -```java -Properties config = new Properties(); -config.setProperty("user", "default"); -config.setProperty("password", getPassword()); - -// set server setting -config.put(ClientConfigProperties.serverSetting("allow_experimental_time_time64_type"), "1"); - -Connection conn = Driver.connect("jdbc:ch:http://localhost:8123/", config); -``` -::: - -## Поддерживаемые типы данных {#supported-data-types} - -JDBC-драйвер поддерживает те же форматы данных, что и базовый [java-клиент](/integrations/java#supported-data-types). - -### Обработка дат, времени и часовых поясов {#handling-dates-times-and-timezones} -`java.sql.Date`, `java.sql.Time` и `java.sql.Timestamp` могут усложнить расчет часовых поясов - хотя они, конечно, поддерживаются, -вы можете рассмотреть возможность использования пакета [java.time](https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html). `ZonedDateTime` и -`OffsetDateTime` - оба отличные замены для java.sql.Timestamp, java.sql.Date и java.sql.Time. - -## Создание соединения {#creating-connection} - -```java -String url = "jdbc:ch://my-server:8123/system"; - -Properties properties = new Properties(); -DataSource dataSource = new DataSource(url, properties);//DataSource or DriverManager are the main entry points -try (Connection conn = dataSource.getConnection()) { -... // do something with the connection -``` - -## Передача учетных данных и настроек {#supplying-credentials-and-settings} - -```java showLineNumbers -String url = "jdbc:ch://localhost:8123?jdbc_ignore_unsupported_values=true&socket_timeout=10"; - -Properties info = new Properties(); -info.put("user", "default"); -info.put("password", "password"); -info.put("database", "some_db"); - -//Creating a connection with DataSource -DataSource dataSource = new DataSource(url, info); -try (Connection conn = dataSource.getConnection()) { -... // do something with the connection -} - -//Alternate approach using the DriverManager -try (Connection conn = DriverManager.getConnection(url, info)) { -... // do something with the connection -} -``` - -## Простой оператор {#simple-statement} - -```java showLineNumbers - -try (Connection conn = dataSource.getConnection(...); - Statement stmt = conn.createStatement()) { - ResultSet rs = stmt.executeQuery("select * from numbers(50000)"); - while(rs.next()) { - // ... - } -} -``` - -## Вставка {#insert} - -```java showLineNumbers -try (PreparedStatement ps = conn.prepareStatement("INSERT INTO mytable VALUES (?, ?)")) { - ps.setString(1, "test"); // id - ps.setObject(2, LocalDateTime.now()); // timestamp - ps.addBatch(); - ... - ps.executeBatch(); // stream everything on-hand into ClickHouse -} -``` - -## `HikariCP` {#hikaricp} - -```java showLineNumbers -// connection pooling won't help much in terms of performance, -// because the underlying implementation has its own pool. -// for example: HttpURLConnection has a pool for sockets -HikariConfig poolConfig = new HikariConfig(); -poolConfig.setConnectionTimeout(5000L); -poolConfig.setMaximumPoolSize(20); -poolConfig.setMaxLifetime(300_000L); -poolConfig.setDataSource(new ClickHouseDataSource(url, properties)); - -try (HikariDataSource ds = new HikariDataSource(poolConfig); - Connection conn = ds.getConnection(); - Statement s = conn.createStatement(); - ResultSet rs = s.executeQuery("SELECT * FROM system.numbers LIMIT 3")) { - while (rs.next()) { - // handle row - log.info("Integer: {}, String: {}", rs.getInt(1), rs.getString(1));//Same column but different types - } -} -``` - -## Дополнительная информация {#more-information} -Для получения дополнительной информации см. наш [репозиторий GitHub](https://github.com/ClickHouse/clickhouse-java) и [документацию Java Client](/integrations/language-clients/java/client/client.mdx). - -## Устранение неполадок {#troubleshooting} -### Логирование {#logging} -Драйвер использует [slf4j](https://www.slf4j.org/) для логирования и будет использовать первую доступную реализацию в `classpath`. - -### Устранение тайм-аута JDBC при больших вставках {#resolving-jdbc-timeout-on-large-inserts} - -При выполнении больших вставок в ClickHouse с длительным временем выполнения вы можете столкнуться с ошибками тайм-аута JDBC, такими как: - -```plaintext -Caused by: java.sql.SQLException: Read timed out, server myHostname [uri=https://hostname.aws.clickhouse.cloud:8443] -``` -Эти ошибки могут нарушить процесс вставки данных и повлиять на стабильность системы. Для решения этой проблемы вам может потребоваться настроить несколько параметров тайм-аута в ОС клиента. - -#### Mac OS {#mac-os} - -В Mac OS следующие настройки можно изменить для решения проблемы: - -- `net.inet.tcp.keepidle`: 60000 -- `net.inet.tcp.keepintvl`: 45000 -- `net.inet.tcp.keepinit`: 45000 -- `net.inet.tcp.keepcnt`: 8 -- `net.inet.tcp.always_keepalive`: 1 - -#### Linux {#linux} - -В Linux только эквивалентных настроек может быть недостаточно для решения проблемы. Требуются дополнительные шаги из-за различий в том, как Linux обрабатывает настройки keep-alive сокета. Выполните следующие действия: - -1. Настройте следующие параметры ядра Linux в `/etc/sysctl.conf` или связанном файле конфигурации: - - - `net.inet.tcp.keepidle`: 60000 - - `net.inet.tcp.keepintvl`: 45000 - - `net.inet.tcp.keepinit`: 45000 - - `net.inet.tcp.keepcnt`: 8 - - `net.inet.tcp.always_keepalive`: 1 - - `net.ipv4.tcp_keepalive_intvl`: 75 - - `net.ipv4.tcp_keepalive_probes`: 9 - - `net.ipv4.tcp_keepalive_time`: 60 (Вы можете рассмотреть возможность уменьшения этого значения со стандартных 300 секунд) - -2. После изменения параметров ядра примените изменения, выполнив следующую команду: - -```shell -sudo sysctl -p -``` - -После установки этих настроек вам нужно убедиться, что ваш клиент включает опцию Keep Alive на сокете: - -```java -properties.setProperty("socket_keepalive", "true"); -``` - - - - - - -`clickhouse-jdbc` implements the standard JDBC interface. Being built on top of [clickhouse-client](/integrations/sql-clients/sql-console), it provides additional features like custom type mapping, transaction support, and standard synchronous `UPDATE` and `DELETE` statements, etc., so that it can be easily used with legacy applications and tools. - -:::note -Latest JDBC (0.7.2) version uses Client-V1 -::: - -`clickhouse-jdbc` API is synchronous, and generally, it has more overheads(e.g., SQL parsing and type mapping/conversion, etc.). Consider [clickhouse-client](/integrations/sql-clients/sql-console) when performance is critical or if you prefer a more direct way to access ClickHouse. - -## Environment requirements {#v07-environment-requirements} - -- [OpenJDK](https://openjdk.java.net) version >= 8 - -### Setup {#v07-setup} - - - - - ```xml - - - com.clickhouse - clickhouse-jdbc - 0.7.2 - - shaded-all - - ``` - - - - - ```kotlin - // https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc - // use uber jar with all dependencies included, change classifier to http for smaller jar - implementation("com.clickhouse:clickhouse-jdbc:0.7.2:shaded-all") - ``` - - - - ```groovy - // https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc - // use uber jar with all dependencies included, change classifier to http for smaller jar - implementation 'com.clickhouse:clickhouse-jdbc:0.7.2:shaded-all' - ``` - - - - -Since version `0.5.0`, we are using Apache HTTP Client that's packed the Client. Since there is not a shared version of the package, you need to add a logger as a dependency. - - - - - ```xml - - - org.slf4j - slf4j-api - 2.0.16 - - ``` - - - - - ```kotlin - // https://mvnrepository.com/artifact/org.slf4j/slf4j-api - implementation("org.slf4j:slf4j-api:2.0.16") - ``` - - - - ```groovy - // https://mvnrepository.com/artifact/org.slf4j/slf4j-api - implementation 'org.slf4j:slf4j-api:2.0.16' - ``` - - - - -## Configuration {#v07-configuration} - -**Driver Class**: `com.clickhouse.jdbc.ClickHouseDriver` - -**URL Syntax**: `jdbc:(ch|clickhouse)[:]://endpoint1[,endpoint2,...][/][?param1=value1¶m2=value2][#tag1,tag2,...]`, for example: - -- `jdbc:ch://localhost` is same as `jdbc:clickhouse:http://localhost:8123` -- `jdbc:ch:https://localhost` is same as `jdbc:clickhouse:http://localhost:8443?ssl=true&sslmode=STRICT` -- `jdbc:ch:grpc://localhost` is same as `jdbc:clickhouse:grpc://localhost:9100` - -**Connection Properties**: - -| Property | Default | Description | -| ------------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `continueBatchOnError` | `false` | Whether to continue batch processing when error occurred | -| `createDatabaseIfNotExist` | `false` | Whether to create database if it does not exist | -| `custom_http_headers` | | comma separated custom http headers, for example: `User-Agent=client1,X-Gateway-Id=123` | -| `custom_http_params` | | comma separated custom http query parameters, for example: `extremes=0,max_result_rows=100` | -| `nullAsDefault` | `0` | `0` - treat null value as is and throw exception when inserting null into non-nullable column; `1` - treat null value as is and disable null-check for inserting; `2` - replace null to default value of corresponding data type for both query and insert | -| `jdbcCompliance` | `true` | Whether to support standard synchronous UPDATE/DELETE and fake transaction | -| `typeMappings` | | Customize mapping between ClickHouse data type and Java class, which will affect result of both [`getColumnType()`](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSetMetaData.html#getColumnType-int-) and [`getObject(Class<>?>`)](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSet.html#getObject-java.lang.String-java.lang.Class-). For example: `UInt128=java.lang.String,UInt256=java.lang.String` | -| `wrapperObject` | `false` | Whether [`getObject()`](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSet.html#getObject-int-) should return java.sql.Array / java.sql.Struct for Array / Tuple. | - -Note: please refer to [JDBC specific configuration](https://github.com/ClickHouse/clickhouse-java/blob/main/clickhouse-jdbc/src/main/java/com/clickhouse/jdbc/JdbcConfig.java) for more. - -## Supported data types {#v07-supported-data-types} - -JDBC Driver supports same data formats as client library does. - -:::note -- AggregatedFunction - :warning: does not support `SELECT * FROM table ...` -- Decimal - `SET output_format_decimal_trailing_zeros=1` in 21.9+ for consistency -- Enum - can be treated as both string and integer -- UInt64 - mapped to `long` (in client-v1) -::: - -## Creating Connection {#v07-creating-connection} - -```java -String url = "jdbc:ch://my-server/system"; // use http protocol and port 8123 by default - -Properties properties = new Properties(); - -ClickHouseDataSource dataSource = new ClickHouseDataSource(url, properties); -try (Connection conn = dataSource.getConnection("default", "password"); - Statement stmt = conn.createStatement()) { -} -``` - -## Simple Statement {#v07-simple-statement} - -```java showLineNumbers - -try (Connection conn = dataSource.getConnection(...); - Statement stmt = conn.createStatement()) { - ResultSet rs = stmt.executeQuery("select * from numbers(50000)"); - while(rs.next()) { - // ... - } -} -``` - -## Insert {#v07-insert} - -:::note -- Use `PreparedStatement` instead of `Statement` -::: - -It's easier to use but slower performance compare to input function (see below): - -```java showLineNumbers -try (PreparedStatement ps = conn.prepareStatement("insert into mytable(* except (description))")) { - ps.setString(1, "test"); // id - ps.setObject(2, LocalDateTime.now()); // timestamp - ps.addBatch(); // parameters will be write into buffered stream immediately in binary format - ... - ps.executeBatch(); // stream everything on-hand into ClickHouse -} -``` - -### With input table function {#with-input-table-function} - -An option with great performance characteristics: - -```java showLineNumbers -try (PreparedStatement ps = conn.prepareStatement( - "insert into mytable select col1, col2 from input('col1 String, col2 DateTime64(3), col3 Int32')")) { - // The column definition will be parsed so the driver knows there are 3 parameters: col1, col2 and col3 - ps.setString(1, "test"); // col1 - ps.setObject(2, LocalDateTime.now()); // col2, setTimestamp is slow and not recommended - ps.setInt(3, 123); // col3 - ps.addBatch(); // parameters will be write into buffered stream immediately in binary format - ... - ps.executeBatch(); // stream everything on-hand into ClickHouse -} -``` -- [input function doc](/sql-reference/table-functions/input/) whenever possible - -### Insert with placeholders {#insert-with-placeholders} - -This option is recommended only for small inserts because it would require a long SQL expression (that will be parsed on client side and it will consume CPU & Memory): - -```java showLineNumbers -try (PreparedStatement ps = conn.prepareStatement("insert into mytable values(trim(?),?,?)")) { - ps.setString(1, "test"); // id - ps.setObject(2, LocalDateTime.now()); // timestamp - ps.setString(3, null); // description - ps.addBatch(); // append parameters to the query - ... - ps.executeBatch(); // issue the composed query: insert into mytable values(...)(...)...(...) -} -``` - -## Handling DateTime and time zones {#handling-datetime-and-time-zones} - -Please to use `java.time.LocalDateTime` or `java.time.OffsetDateTime` instead of `java.sql.Timestamp`, and `java.time.LocalDate` instead of `java.sql.Date`. - -```java showLineNumbers -try (PreparedStatement ps = conn.prepareStatement("select date_time from mytable where date_time > ?")) { - ps.setObject(2, LocalDateTime.now()); - ResultSet rs = ps.executeQuery(); - while(rs.next()) { - LocalDateTime dateTime = (LocalDateTime) rs.getObject(1); - } - ... -} -``` - -## Handling `AggregateFunction` {#handling-aggregatefunction} - -:::note -As of now, only `groupBitmap` is supported. -::: - -```java showLineNumbers -// batch insert using input function -try (ClickHouseConnection conn = newConnection(props); - Statement s = conn.createStatement(); - PreparedStatement stmt = conn.prepareStatement( - "insert into test_batch_input select id, name, value from input('id Int32, name Nullable(String), desc Nullable(String), value AggregateFunction(groupBitmap, UInt32)')")) { - s.execute("drop table if exists test_batch_input;" - + "create table test_batch_input(id Int32, name Nullable(String), value AggregateFunction(groupBitmap, UInt32))engine=Memory"); - Object[][] objs = new Object[][] { - new Object[] { 1, "a", "aaaaa", ClickHouseBitmap.wrap(1, 2, 3, 4, 5) }, - new Object[] { 2, "b", null, ClickHouseBitmap.wrap(6, 7, 8, 9, 10) }, - new Object[] { 3, null, "33333", ClickHouseBitmap.wrap(11, 12, 13) } - }; - for (Object[] v : objs) { - stmt.setInt(1, (int) v[0]); - stmt.setString(2, (String) v[1]); - stmt.setString(3, (String) v[2]); - stmt.setObject(4, v[3]); - stmt.addBatch(); - } - int[] results = stmt.executeBatch(); - ... -} - -// use bitmap as query parameter -try (PreparedStatement stmt = conn.prepareStatement( - "SELECT bitmapContains(my_bitmap, toUInt32(1)) as v1, bitmapContains(my_bitmap, toUInt32(2)) as v2 from {tt 'ext_table'}")) { - stmt.setObject(1, ClickHouseExternalTable.builder().name("ext_table") - .columns("my_bitmap AggregateFunction(groupBitmap,UInt32)").format(ClickHouseFormat.RowBinary) - .content(new ByteArrayInputStream(ClickHouseBitmap.wrap(1, 3, 5).toBytes())) - .asTempTable() - .build()); - ResultSet rs = stmt.executeQuery(); - Assert.assertTrue(rs.next()); - Assert.assertEquals(rs.getInt(1), 1); - Assert.assertEquals(rs.getInt(2), 0); - Assert.assertFalse(rs.next()); -} -``` - -
    - -## Configuring HTTP library {#v07-configuring-http-library} - -The ClickHouse JDBC connector supports three HTTP libraries: [`HttpClient`](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpClient.html), [`HttpURLConnection`](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/net/HttpURLConnection.html), and [Apache `HttpClient`](https://hc.apache.org/httpcomponents-client-5.2.x/). - -:::note -`HttpClient` is only supported in JDK 11 or above. -::: - -The JDBC driver uses `HttpClient` by default. You can change the HTTP library used by the ClickHouse JDBC connector by setting the following property: - -```java -properties.setProperty("http_connection_provider", "APACHE_HTTP_CLIENT"); -``` - -Here is a full list of the corresponding values: - -| Property Value | HTTP Library | -|---------------------|---------------------| -| HTTP_CLIENT | `HttpClient` | -| HTTP_URL_CONNECTION | `HttpURLConnection` | -| APACHE_HTTP_CLIENT | Apache `HttpClient` | - -
    - -## Connect to ClickHouse with SSL {#connect-to-clickhouse-with-ssl} - -To establish a secure JDBC connection to ClickHouse using SSL, you need to configure your JDBC properties to include SSL parameters. This typically involves specifying SSL properties such as `sslmode` and `sslrootcert` in your JDBC URL or Properties object. - -## SSL Properties {#ssl-properties} - -| Name | Default Value | Optional Values | Description | -| ------------------ | ------------- | --------------- |----------------------------------------------------------------------------------| -| `ssl` | false | true, false | Whether to enable SSL/TLS for the connection | -| `sslmode` | strict | strict, none | Whether to verify SSL/TLS certificate | -| `sslrootcert` | | | Path to SSL/TLS root certificates | -| `sslcert` | | | Path to SSL/TLS certificate | -| `sslkey` | | | RSA key in PKCS#8 format | -| `key_store_type` | | JKS, PKCS12 | Specifies the type or format of the `KeyStore`/`TrustStore` file | -| `trust_store` | | | Path to the `TrustStore` file | -| `key_store_password` | | | Password needed to access the `KeyStore` file specified in the `KeyStore` config | - -These properties ensure that your Java application communicates with the ClickHouse server over an encrypted connection, enhancing data security during transmission. - -```java showLineNumbers - String url = "jdbc:ch://your-server:8443/system"; - - Properties properties = new Properties(); - properties.setProperty("ssl", "true"); - properties.setProperty("sslmode", "strict"); // NONE to trust all servers; STRICT for trusted only - properties.setProperty("sslrootcert", "/mine.crt"); - try (Connection con = DriverManager - .getConnection(url, properties)) { - - try (PreparedStatement stmt = con.prepareStatement( - - // place your code here - - } - } -``` - -## Resolving JDBC Timeout on Large Inserts {#v07-resolving-jdbc-timeout-on-large-inserts} - -When performing large inserts in ClickHouse with long execution times, you may encounter JDBC timeout errors like: - -```plaintext -Caused by: java.sql.SQLException: Read timed out, server myHostname [uri=https://hostname.aws.clickhouse.cloud:8443] -``` - -These errors can disrupt the data insertion process and affect system stability. To address this issue you need to adjust a few timeout settings in the client's OS. - -### Mac OS {#v07-mac-os} - -On Mac OS, the following settings can be adjusted to resolve the issue: - -- `net.inet.tcp.keepidle`: 60000 -- `net.inet.tcp.keepintvl`: 45000 -- `net.inet.tcp.keepinit`: 45000 -- `net.inet.tcp.keepcnt`: 8 -- `net.inet.tcp.always_keepalive`: 1 - -### Linux {#v07-linux} - -On Linux, the equivalent settings alone may not resolve the issue. Additional steps are required due to the differences in how Linux handles socket keep-alive settings. Follow these steps: - -1. Adjust the following Linux kernel parameters in `/etc/sysctl.conf` or a related configuration file: - -- `net.inet.tcp.keepidle`: 60000 -- `net.inet.tcp.keepintvl`: 45000 -- `net.inet.tcp.keepinit`: 45000 -- `net.inet.tcp.keepcnt`: 8 -- `net.inet.tcp.always_keepalive`: 1 -- `net.ipv4.tcp_keepalive_intvl`: 75 -- `net.ipv4.tcp_keepalive_probes`: 9 -- `net.ipv4.tcp_keepalive_time`: 60 (You may consider lowering this value from the default 300 seconds) - -2. After modifying the kernel parameters, apply the changes by running the following command: - -```shell -sudo sysctl -p - ``` - -After Setting those settings, you need to ensure that your client enables the Keep Alive option on the socket: - -```java -properties.setProperty("socket_keepalive", "true"); -``` - -:::note -Currently, you must use Apache HTTP Client library when setting the socket keep-alive, as the other two HTTP client libraries supported by `clickhouse-java` do not allow setting socket options. For a detailed guide, see [Configuring HTTP library](#v07-configuring-http-library). -::: - -Alternatively, you can add equivalent parameters to the JDBC URL. - -The default socket and connection timeout for the JDBC driver is 30 seconds. The timeout can be increased to support large data insert operations. Use the `options` method on `ClickHouseClient` together with the `SOCKET_TIMEOUT` and `CONNECTION_TIMEOUT` options as defined by `ClickHouseClientOption`: - -```java showLineNumbers -final int MS_12H = 12 * 60 * 60 * 1000; // 12 h in ms -final String sql = "insert into table_a (c1, c2, c3) select c1, c2, c3 from table_b;"; - -try (ClickHouseClient client = ClickHouseClient.newInstance(ClickHouseProtocol.HTTP)) { - client.read(servers).write() - .option(ClickHouseClientOption.SOCKET_TIMEOUT, MS_12H) - .option(ClickHouseClientOption.CONNECTION_TIMEOUT, MS_12H) - .query(sql) - .executeAndWait(); -} -``` - -
    - -
    diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/third-party/client-libraries.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/third-party/client-libraries.md index a01f1d4cb2e..8c1e188528b 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/third-party/client-libraries.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/third-party/client-libraries.md @@ -15,26 +15,26 @@ ClickHouse Inc **не** поддерживает перечисленные ни ### Python {#python} -* [Moose OLAP](https://docs.fiveonefour.com/moose/olap) -* [infi.clickhouse_orm](https://github.com/Infinidat/infi.clickhouse_orm) -* [clickhouse-driver](https://github.com/mymarilyn/clickhouse-driver) -* [clickhouse-client](https://github.com/yurial/clickhouse-client) -* [aiochclient](https://github.com/maximdanilchenko/aiochclient) -* [asynch](https://github.com/long2ice/asynch) +- [Moose OLAP](https://docs.fiveonefour.com/moose/olap) +- [infi.clickhouse_orm](https://github.com/Infinidat/infi.clickhouse_orm) +- [clickhouse-driver](https://github.com/mymarilyn/clickhouse-driver) +- [clickhouse-client](https://github.com/yurial/clickhouse-client) +- [aiochclient](https://github.com/maximdanilchenko/aiochclient) +- [asynch](https://github.com/long2ice/asynch) ### PHP {#php} -* [smi2/phpclickhouse](https://packagist.org/packages/smi2/phpClickHouse) -* [8bitov/clickhouse-php-client](https://packagist.org/packages/8bitov/clickhouse-php-client) -* [bozerkins/clickhouse-client](https://packagist.org/packages/bozerkins/clickhouse-client) -* [simpod/clickhouse-client](https://packagist.org/packages/simpod/clickhouse-client) -* [seva-code/php-click-house-client](https://packagist.org/packages/seva-code/php-click-house-client) -* [C++-клиент SeasClick](https://github.com/SeasX/SeasClick) -* [one-ck](https://github.com/lizhichao/one-ck) -* [glushkovds/phpclickhouse-laravel](https://packagist.org/packages/glushkovds/phpclickhouse-laravel) -* [glushkovds/php-clickhouse-schema-builder](https://packagist.org/packages/glushkovds/php-clickhouse-schema-builder) -* [PHP-расширение ClickHouse от kolya7k](https://github.com//kolya7k/clickhouse-php) -* [hyvor/clickhouse-php](https://github.com/hyvor/clickhouse-php) +- [smi2/phpclickhouse](https://packagist.org/packages/smi2/phpClickHouse) +- [8bitov/clickhouse-php-client](https://packagist.org/packages/8bitov/clickhouse-php-client) +- [bozerkins/clickhouse-client](https://packagist.org/packages/bozerkins/clickhouse-client) +- [simpod/clickhouse-client](https://packagist.org/packages/simpod/clickhouse-client) +- [seva-code/php-click-house-client](https://packagist.org/packages/seva-code/php-click-house-client) +- [C++-клиент SeasClick](https://github.com/SeasX/SeasClick) +- [one-ck](https://github.com/lizhichao/one-ck) +- [glushkovds/phpclickhouse-laravel](https://packagist.org/packages/glushkovds/phpclickhouse-laravel) +- [glushkovds/php-clickhouse-schema-builder](https://packagist.org/packages/glushkovds/php-clickhouse-schema-builder) +- [PHP-расширение ClickHouse от kolya7k](https://github.com//kolya7k/clickhouse-php) +- [hyvor/clickhouse-php](https://github.com/hyvor/clickhouse-php) ### Go {#go} @@ -47,19 +47,19 @@ ClickHouse Inc **не** поддерживает перечисленные ни ### Swift {#swift} -* [ClickHouseNIO](https://github.com/patrick-zippenfenig/ClickHouseNIO) -* [ClickHouseVapor ORM](https://github.com/patrick-zippenfenig/ClickHouseVapor) +- [ClickHouseNIO](https://github.com/patrick-zippenfenig/ClickHouseNIO) +- [ClickHouseVapor ORM](https://github.com/patrick-zippenfenig/ClickHouseVapor) ### Node.js {#nodejs} -* [Moose OLAP](https://docs.fiveonefour.com/moose/olap) -* [clickhouse (NodeJs)](https://github.com/TimonKK/clickhouse) -* [node-clickhouse](https://github.com/apla/node-clickhouse) -* [nestjs-clickhouse](https://github.com/depyronick/nestjs-clickhouse) -* [clickhouse-client](https://github.com/depyronick/clickhouse-client) -* [node-clickhouse-orm](https://github.com/zimv/node-clickhouse-orm) -* [clickhouse-ts](https://github.com/bytadaniel/clickhouse-ts) -* [clickcache](https://github.com/bytadaniel/clickcache) +- [Moose OLAP](https://docs.fiveonefour.com/moose/olap) +- [clickhouse (NodeJs)](https://github.com/TimonKK/clickhouse) +- [node-clickhouse](https://github.com/apla/node-clickhouse) +- [nestjs-clickhouse](https://github.com/depyronick/nestjs-clickhouse) +- [clickhouse-client](https://github.com/depyronick/clickhouse-client) +- [node-clickhouse-orm](https://github.com/zimv/node-clickhouse-orm) +- [clickhouse-ts](https://github.com/bytadaniel/clickhouse-ts) +- [clickcache](https://github.com/bytadaniel/clickcache) ### Perl {#perl} @@ -80,7 +80,7 @@ ClickHouse Inc **не** поддерживает перечисленные ни ### R {#r} -* [RClickHouse](https://github.com/IMSMWU/RClickHouse) +- [RClickHouse](https://github.com/IMSMWU/RClickHouse) ### Java {#java} @@ -95,6 +95,10 @@ ClickHouse Inc **не** поддерживает перечисленные ни * [AORM](https://github.com/TanVD/AORM) +### C++ {#cpp} + +- [Драйвер ClickHouse для фреймворка userver](https://userver.tech/dd/ddb/clickhouse_driver.html) + ### C# {#c} * [Octonica.ClickHouseClient](https://github.com/Octonica/ClickHouseClient) @@ -116,4 +120,4 @@ ClickHouse Inc **не** поддерживает перечисленные ни ### Haskell {#haskell} * [hdbc-clickhouse](https://github.com/zaneli/hdbc-clickhouse) -* [ClickHaskell](https://clickhaskell.dev/) +* [ClickHaskell](https://clickhaskell.dev/) \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/operations/allocation-profiling.md b/i18n/ru/docusaurus-plugin-content-docs/current/operations/allocation-profiling.md index 46d56e56786..27c280b94f5 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/operations/allocation-profiling.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/operations/allocation-profiling.md @@ -9,6 +9,7 @@ doc_type: 'guide' import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; + # Профилирование выделений памяти {#allocation-profiling} ClickHouse использует [jemalloc](https://github.com/jemalloc/jemalloc) в качестве глобального аллокатора. Jemalloc предоставляет инструменты для сэмплирования и профилирования выделений памяти. @@ -40,6 +41,7 @@ ClickHouse использует [jemalloc](https://github.com/jemalloc/jemalloc) Поскольку ClickHouse — приложение с интенсивным использованием выделения памяти, выборочное отслеживание jemalloc может привести к дополнительным накладным расходам и снижению производительности. ::: + ## Хранение выборок jemalloc в `system.trace_log` {#storing-jemalloc-samples-in-system-trace-log} Вы можете хранить все выборки jemalloc в `system.trace_log` с типом записи `JemallocSample`. @@ -57,6 +59,7 @@ ClickHouse использует [jemalloc](https://github.com/jemalloc/jemalloc) Вы также можете включить это для отдельного запроса, используя настройку `jemalloc_collect_profile_samples_in_trace_log`. + ### Пример анализа использования памяти запросом с помощью `system.trace_log` {#example-analyzing-memory-usage-trace-log} Сначала нам нужно выполнить запрос с включённым профилировщиком памяти jemalloc и собрать для него сэмплы в `system.trace_log`: @@ -78,7 +81,7 @@ Peak memory usage: 12.65 MiB. ``` :::note -Если ClickHouse был запущен с `jemalloc_enable_global_profiler`, вам не нужно включать `jemalloc_enable_profiler`.\ +Если ClickHouse был запущен с `jemalloc_enable_global_profiler`, вам не нужно включать `jemalloc_enable_profiler`. То же самое относится к `jemalloc_collect_global_profile_samples_in_trace_log` и `jemalloc_collect_profile_samples_in_trace_log`. ::: @@ -88,7 +91,7 @@ Peak memory usage: 12.65 MiB. SYSTEM FLUSH LOGS trace_log ``` -и выполнять к нему запрос, чтобы получить потребление памяти нашим запросом для каждого момента времени: +и выполним к нему запрос, чтобы получить использование памяти нашим запросом в каждый момент времени: ```sql WITH per_bucket AS @@ -112,7 +115,7 @@ FROM per_bucket ORDER BY bucket_time ``` -Мы также можем найти момент времени, когда использование памяти достигало максимума: +Мы также можем найти момент времени, когда использование памяти было максимальным: ```sql SELECT @@ -142,7 +145,7 @@ FROM ) ``` -Мы можем использовать этот результат, чтобы увидеть, откуда шло больше всего активных выделений памяти в тот момент времени: +Мы можем использовать этот результат, чтобы увидеть, откуда происходило больше всего активных выделений памяти в тот момент времени: ```sql SELECT @@ -175,9 +178,10 @@ GROUP BY ALL ORDER BY per_trace_sum ASC ``` + ## Сброс профилей кучи {#flushing-heap-profiles} -По умолчанию файл профиля кучи создаётся в `/tmp/jemalloc_clickhouse._pid_._seqnum_.heap`, где `_pid_` — это PID ClickHouse, а `_seqnum_` — глобальный порядковый номер для текущего профиля кучи.\ +По умолчанию файл профиля кучи создаётся в `/tmp/jemalloc_clickhouse._pid_._seqnum_.heap`, где `_pid_` — это PID ClickHouse, а `_seqnum_` — глобальный порядковый номер для текущего профиля кучи. Для Keeper файл по умолчанию — `/tmp/jemalloc_keeper._pid_._seqnum_.heap` и подчиняется тем же правилам. Вы можете попросить `jemalloc` сбросить текущий профиль, выполнив: @@ -198,14 +202,15 @@ ORDER BY per_trace_sum ASC -Другое местоположение можно задать, дополнив переменную окружения `MALLOC_CONF` опцией `prof_prefix`.\ +Другое местоположение можно задать, дополнив переменную окружения `MALLOC_CONF` опцией `prof_prefix`. Например, если вы хотите генерировать профили в каталоге `/data`, где префиксом имени файла будет `my_current_profile`, вы можете запустить ClickHouse/Keeper со следующей переменной окружения: ```sh MALLOC_CONF=prof_prefix:/data/my_current_profile ``` -К имени сгенерированного файла будет добавлен префикс с PID и порядковым номером. +К префиксу имени сгенерированного файла будут добавлены PID и порядковый номер. + ## Анализ профилей кучи {#analyzing-heap-profiles} @@ -215,8 +220,43 @@ MALLOC_CONF=prof_prefix:/data/my_current_profile * С помощью системного менеджера пакетов * Клонировать [репозиторий jemalloc](https://github.com/jemalloc/jemalloc) и запустить `autogen.sh` из корневого каталога. В результате в каталоге `bin` появится скрипт `jeprof`. +Существует множество различных форматов, которые можно получить из профиля кучи с помощью `jeprof`. +Вы можете запустить `jeprof --help`, чтобы получить информацию об использовании и о различных опциях, которые предоставляет этот инструмент. + +### Символизированные профили кучи {#symbolized-heap-profiles} + +Начиная с версии 26.1+ ClickHouse автоматически генерирует символизированные профили кучи при выполнении команды `SYSTEM JEMALLOC FLUSH PROFILE`. +Символизированный профиль (с расширением `.symbolized`) содержит встроенные символы функций и может анализироваться с помощью `jeprof` без необходимости в исполняемом файле ClickHouse. + +Например, при выполнении: + +```sql +SYSTEM JEMALLOC FLUSH PROFILE +``` + +ClickHouse вернёт путь к символизированному профилю (например, `/tmp/jemalloc_clickhouse.12345.0.heap.symbolized`). + +Затем вы можете напрямую проанализировать его с помощью `jeprof`: + +```sh +jeprof /tmp/jemalloc_clickhouse.12345.0.heap.symbolized --output_format [ > output_file] +``` + :::note -`jeprof` использует `addr2line` для генерации стек-трейсов, что может работать очень медленно.\ + +**Бинарный файл не требуется**: При использовании символизированных профилей (файлы `.symbolized`) вам не нужно указывать путь к бинарнику ClickHouse для `jeprof`. Это значительно упрощает анализ профилей на разных машинах или после обновления бинарного файла. + +::: + +Если у вас есть старый несимволизированный профиль кучи и по-прежнему есть доступ к бинарному файлу ClickHouse, вы можете использовать традиционный подход: + +```sh +jeprof path/to/clickhouse path/to/heap/profile --output_format [ > output_file] +``` + +:::note + +Для несимволизированных профилей `jeprof` использует `addr2line` для генерации стек-трейсов, что может работать очень медленно. В таком случае рекомендуется установить [альтернативную реализацию](https://github.com/gimli-rs/addr2line) этого инструмента. ```bash @@ -226,39 +266,50 @@ cargo build --features bin --release cp ./target/release/addr2line path/to/current/addr2line ``` -В качестве альтернативы `llvm-addr2line` работает так же эффективно. +В качестве альтернативы можно использовать `llvm-addr2line` — он работает не хуже (но обратите внимание, что `llvm-objdump` не совместим с `jeprof`). + +После этого используйте его следующим образом: `jeprof --tools addr2line:/usr/bin/llvm-addr2line,nm:/usr/bin/llvm-nm,objdump:/usr/bin/objdump,c++filt:/usr/bin/llvm-cxxfilt` ::: -Существует множество различных форматов, которые можно получить из профиля кучи с помощью `jeprof`. -Рекомендуется запустить `jeprof --help`, чтобы получить информацию об использовании и о различных опциях, которые предоставляет этот инструмент. +При сравнении двух профилей вы можете использовать аргумент `--base`: + +```sh +jeprof --base /path/to/first.heap.symbolized /path/to/second.heap.symbolized --output_format [ > output_file] +``` + -В целом команду `jeprof` обычно используют следующим образом: +### Примеры {#examples} + +Использование символизированных профилей (рекомендуется): + +* Создайте текстовый файл, в котором каждая процедура указана в отдельной строке: ```sh -jeprof path/to/binary path/to/heap/profile --output_format [ > output_file] +jeprof /tmp/jemalloc_clickhouse.12345.0.heap.symbolized --text > result.txt ``` -Если вы хотите сравнить, какие выделения памяти произошли между двумя профилями, укажите аргумент `base`: +* Сгенерируйте PDF-файл с графом вызовов: ```sh -jeprof path/to/binary --base path/to/first/heap/profile path/to/second/heap/profile --output_format [ > output_file] +jeprof /tmp/jemalloc_clickhouse.12345.0.heap.symbolized --pdf > result.pdf ``` -### Примеры {#examples} +Использование несиволизированных профилей (требуется бинарник): -* если вы хотите сгенерировать текстовый файл, в котором каждая процедура будет записана в отдельной строке: +* Сгенерируйте текстовый файл, в котором каждая процедура указана в отдельной строке: ```sh -jeprof path/to/binary path/to/heap/profile --text > result.txt +jeprof /path/to/clickhouse /tmp/jemalloc_clickhouse.12345.0.heap --text > result.txt ``` -* если вы хотите сгенерировать PDF-файл с графом вызовов: +* Создайте PDF-файл с графом вызовов: ```sh -jeprof path/to/binary path/to/heap/profile --pdf > result.pdf +jeprof /path/to/clickhouse /tmp/jemalloc_clickhouse.12345.0.heap --pdf > result.pdf ``` + ### Построение flame-графа {#generating-flame-graph} `jeprof` позволяет получать свернутые стеки вызовов для построения flame-графов. @@ -266,7 +317,13 @@ jeprof path/to/binary path/to/heap/profile --pdf > result.pdf Для этого следует использовать аргумент `--collapsed`: ```sh -jeprof path/to/binary path/to/heap/profile --collapsed > result.collapsed +jeprof /tmp/jemalloc_clickhouse.12345.0.heap.symbolized --collapsed > result.collapsed +``` + +Или с профилем без символов: + +```sh +jeprof /path/to/clickhouse /tmp/jemalloc_clickhouse.12345.0.heap --collapsed > result.collapsed ``` После этого вы можете использовать различные инструменты для визуализации свернутых стеков. @@ -277,7 +334,8 @@ jeprof path/to/binary path/to/heap/profile --collapsed > result.collapsed cat result.collapsed | /path/to/FlameGraph/flamegraph.pl --color=mem --title="Allocation Flame Graph" --width 2400 > result.svg ``` -Еще один полезный инструмент — [speedscope](https://www.speedscope.app/), который позволяет анализировать собранные стеки в более интерактивном режиме. +Еще один полезный инструмент — [speedscope](https://www.speedscope.app/), который позволяет более интерактивно анализировать собранные стеки. + ## Дополнительные параметры профилировщика {#additional-options-for-profiler} @@ -306,6 +364,7 @@ FORMAT Vertical [Справочник](/operations/system-tables/asynchronous_metrics) + ### Системная таблица `jemalloc_bins` {#system-table-jemalloc_bins} Содержит информацию о выделении памяти, выполненном через аллокатор jemalloc в разных классах размеров (bins), агрегированную по всем аренам. diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/operations/settings/merge-tree-settings.md b/i18n/ru/docusaurus-plugin-content-docs/current/operations/settings/merge-tree-settings.md index 563c2539395..9c7bb987654 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/operations/settings/merge-tree-settings.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/operations/settings/merge-tree-settings.md @@ -510,9 +510,9 @@ SELECT * FROM example WHERE key = 'xxx' ORDER BY time DESC LIMIT 10; ## dynamic_serialization_version {#dynamic_serialization_version} - + - + Версия сериализации для типа данных Dynamic. Требуется для совместимости. @@ -544,7 +544,7 @@ SELECT * FROM example WHERE key = 'xxx' ORDER BY time DESC LIMIT 10; - + Определяет, должны ли настройки `min_age_to_force_merge_seconds` и `min_age_to_force_merge_on_partition_only` учитывать настройку @@ -1883,9 +1883,9 @@ ZooKeeper перед очисткой. ## object_serialization_version {#object_serialization_version} - + - + Версия сериализации для типа данных JSON. Требуется для обеспечения совместимости. @@ -1915,9 +1915,9 @@ ZooKeeper перед очисткой. ## object_shared_data_serialization_version {#object_shared_data_serialization_version} - + - + Версия сериализации общих данных в типе данных JSON. @@ -1933,9 +1933,9 @@ ZooKeeper перед очисткой. ## object_shared_data_serialization_version_for_zero_level_parts {#object_shared_data_serialization_version_for_zero_level_parts} - + - + Эта настройка позволяет задать отдельную версию сериализации общих данных внутри типа JSON для частей нулевого уровня, которые создаются при вставке данных. Не рекомендуется использовать `advanced` сериализацию общих данных для частей нулевого уровня, поскольку это может значительно увеличить время вставки. diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/operations/settings/settings-formats.md b/i18n/ru/docusaurus-plugin-content-docs/current/operations/settings/settings-formats.md index e9371f7bb1d..65b8eedebe3 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/operations/settings/settings-formats.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/operations/settings/settings-formats.md @@ -2275,6 +2275,12 @@ z IPv4 + 0 — Отключить (выдавать ошибку при несоответствии типов). + 1 — Включить (пропускать поле при несоответствии типов). +## type_json_use_partial_match_to_skip_paths_by_regexp {#type_json_use_partial_match_to_skip_paths_by_regexp} + + + +Когда этот параметр включён, при разборе JSON-объекта в тип JSON для пропуска пути по регулярному выражению, заданному с помощью SKIP REGEXP, будет достаточно частичного совпадения. Когда параметр выключен, будет требоваться полное совпадение. + ## validate_experimental_and_suspicious_types_inside_nested_types {#validate_experimental_and_suspicious_types_inside_nested_types} diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/operations/settings/settings.md b/i18n/ru/docusaurus-plugin-content-docs/current/operations/settings/settings.md index a9e788e7f56..37bdf64475b 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/operations/settings/settings.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/operations/settings/settings.md @@ -485,6 +485,16 @@ SELECT SUM(-1), MAX(0) FROM system.one WHERE 0; Включает экспериментальные функции для обработки естественного языка. +## allow_experimental_object_storage_queue_hive_partitioning {#allow_experimental_object_storage_queue_hive_partitioning} + + + + + + + +Разрешает использовать партиционирование Hive с движками S3Queue/AzureQueue + ## allow_experimental_parallel_reading_from_replicas {#allow_experimental_parallel_reading_from_replicas} **Псевдонимы**: `enable_parallel_replicas` @@ -6476,15 +6486,40 @@ SELECT multiMatchAny('abcd', ['ab','bc','c','d']) SETTINGS max_hyperscan_regexp_ ## max_insert_block_size {#max_insert_block_size} +**Псевдонимы**: `max_insert_block_size_rows` + -Размер блоков (в количестве строк), формируемых для вставки в таблицу. -Этот параметр применяется только в случаях, когда блоки формирует сервер. -Например, при выполнении INSERT через HTTP-интерфейс сервер разбирает формат данных и формирует блоки указанного размера. -Но при использовании clickhouse-client клиент разбирает данные самостоятельно, и настройка `max_insert_block_size` на сервере не влияет на размер вставляемых блоков. -Настройка также не применяется при использовании INSERT SELECT, поскольку данные вставляются теми же блоками, которые формируются после SELECT. +Максимальный размер блоков (в количестве строк), формируемых для вставки в таблицу. + +Этот параметр управляет формированием блоков при разборе форматов. Когда сервер разбирает строчно-ориентированные форматы ввода (CSV, TSV, JSONEachRow и т. д.) или формат Values из любого интерфейса (HTTP, clickhouse-client с inline‑данными, gRPC, протокол PostgreSQL wire), он использует это значение, чтобы определить момент выдачи блока. +Примечание: при использовании clickhouse-client или clickhouse-local для чтения из файла сам клиент разбирает данные, и эта настройка применяется на стороне клиента. + +Блок выдаётся, когда выполнено одно из условий: + +- Минимальные пороги (И): одновременно достигнуты и `min_insert_block_size_rows`, и `min_insert_block_size_bytes` +- Максимальные пороги (ИЛИ): достигнут либо `max_insert_block_size`, либо `max_insert_block_size_bytes` + +Значение по умолчанию немного больше, чем max_block_size. Причина в том, что некоторые движки таблиц (`*MergeTree`) формируют на диске часть данных (data part) для каждого вставленного блока, и это довольно крупная сущность. Аналогично, таблицы `*MergeTree` сортируют данные во время вставки, и достаточно большой размер блока позволяет отсортировать больше данных в оперативной памяти. + +Возможные значения: + +- Положительное целое число. + +## max_insert_block_size_bytes {#max_insert_block_size_bytes} + + + + + +Максимальный размер блоков (в байтах), формируемых при вставке в таблицу. + +Эта настройка работает совместно с max_insert_block_size_rows и управляет формированием блоков в том же контексте. См. max_insert_block_size_rows для подробной информации о том, когда и как применяются эти настройки. + +Возможные значения: -Значение по умолчанию немного больше, чем `max_block_size`. Причина в том, что некоторые движки таблиц (`*MergeTree`) формируют на диске часть данных (data part) для каждого вставленного блока, и это довольно крупная сущность. Аналогично, таблицы `*MergeTree` сортируют данные во время вставки, и достаточно большой размер блока позволяет отсортировать больше данных в оперативной памяти. +- Положительное целое число. +- 0 — настройка не участвует в формировании блоков. ## max_insert_delayed_streams_for_parallel_write {#max_insert_delayed_streams_for_parallel_write} @@ -7593,12 +7628,14 @@ ClickHouse использует этот параметр при чтении д -Устанавливает минимальный размер блока в байтах, который может быть вставлен в таблицу с помощью запроса `INSERT`. Блоки меньшего размера объединяются в более крупные. +Минимальный размер блока (в байтах), формируемого для вставки в таблицу. + +Этот параметр работает совместно с min_insert_block_size_rows и управляет формированием блоков в тех же контекстах (разбор формата и операции `INSERT`). Подробную информацию о том, когда и как применяются эти параметры, см. в описании min_insert_block_size_rows. Возможные значения: - Положительное целое число. -- 0 — объединение отключено. +- 0 — параметр не участвует в формировании блоков. ## min_insert_block_size_bytes_for_materialized_views {#min_insert_block_size_bytes_for_materialized_views} @@ -7619,12 +7656,25 @@ ClickHouse использует этот параметр при чтении д -Устанавливает минимальное количество строк в блоке, которое может быть вставлено в таблицу при выполнении запроса `INSERT`. Блоки меньшего размера объединяются в более крупные. +Минимальный размер блоков (в строках), формируемых для вставки в таблицу. + +Этот параметр управляет формированием блоков в двух контекстах: + +1. Разбор форматов: когда сервер разбирает построчные форматы ввода (CSV, TSV, JSONEachRow и т. д.) из любого интерфейса (HTTP, clickhouse-client со встроенными данными, gRPC, протокол PostgreSQL wire), он использует этот параметр, чтобы определить момент формирования блока. +Примечание: при использовании clickhouse-client или clickhouse-local для чтения из файла разбор данных выполняет сам клиент, и этот параметр применяется на стороне клиента. +2. Операции INSERT: во время запросов INSERT...SELECT и когда данные проходят через materialized views, блоки объединяются на основе этого параметра перед записью в хранилище. + +Блок при разборе формата формируется, когда выполняется одно из условий: + +- Минимальные пороги (И): достигнуты оба параметра min_insert_block_size_rows И min_insert_block_size_bytes +- Максимальные пороги (ИЛИ): достигнут один из параметров max_insert_block_size ИЛИ max_insert_block_size_bytes + +Блоки меньшего размера для операций вставки объединяются в более крупные и формируются, когда достигается одно из значений min_insert_block_size_rows или min_insert_block_size_bytes. Возможные значения: - Положительное целое число. -- 0 — объединение отключено. +- 0 — параметр не участвует в формировании блоков. ## min_insert_block_size_rows_for_materialized_views {#min_insert_block_size_rows_for_materialized_views} @@ -8085,8 +8135,8 @@ SELECT * FROM test LIMIT 10 OFFSET 100; - [isNull](/sql-reference/functions/functions-for-nulls#isNull) для чтения подстолбца [null](../../sql-reference/data-types/nullable.md/#finding-null). - [isNotNull](/sql-reference/functions/functions-for-nulls#isNotNull) для чтения подстолбца [null](../../sql-reference/data-types/nullable.md/#finding-null). - [count](/sql-reference/aggregate-functions/reference/count) для чтения подстолбца [null](../../sql-reference/data-types/nullable.md/#finding-null). -- [mapKeys](/sql-reference/functions/tuple-map-functions#mapkeys) для чтения подстолбца [keys](/sql-reference/data-types/map#reading-subcolumns-of-map). -- [mapValues](/sql-reference/functions/tuple-map-functions#mapvalues) для чтения подстолбца [values](/sql-reference/data-types/map#reading-subcolumns-of-map). +- [mapKeys](/sql-reference/functions/tuple-map-functions#mapKeys) для чтения подстолбца [keys](/sql-reference/data-types/map#reading-subcolumns-of-map). +- [mapValues](/sql-reference/functions/tuple-map-functions#mapValues) для чтения подстолбца [values](/sql-reference/data-types/map#reading-subcolumns-of-map). Возможные значения: @@ -11314,9 +11364,9 @@ SELECT idx, i FROM null_in WHERE i IN (1, NULL) SETTINGS transform_null_in = 1; ## use_join_disjunctions_push_down {#use_join_disjunctions_push_down} - + - + Включает проталкивание (pushdown) частей условий JOIN, соединённых оператором OR, на соответствующие входы («частичный pushdown»). Это позволяет движкам хранилища выполнять фильтрацию раньше, что может уменьшить объём считываемых данных. @@ -11358,6 +11408,19 @@ SELECT idx, i FROM null_in WHERE i IN (1, NULL) SETTINGS transform_null_in = 1; Включает использование отсечения партиций Paimon для табличных функций Paimon +## use_primary_key {#use_primary_key} + + + + + +Использовать первичный ключ для отсечения гранул во время выполнения запросов для таблиц семейства MergeTree. + +Возможные значения: + +- 0 — Отключено. +- 1 — Включено. + ## use_query_cache {#use_query_cache} diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/operations/system-tables/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/operations/system-tables/index.md index 1254c10f8ac..2f185cf4fcb 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/operations/system-tables/index.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/operations/system-tables/index.md @@ -24,24 +24,24 @@ doc_type: 'reference' | [Обзор системных таблиц](/operations/system-tables/overview) | Общее представление о системных таблицах, их назначении и пользе. | | [INFORMATION_SCHEMA](/operations/system-tables/information_schema) | Системная база данных, предоставляющая почти стандартизированное представление метаданных объектов баз данных, независимое от конкретной СУБД. | | [system.asynchronous_insert_log](/operations/system-tables/asynchronous_insert_log) | Системная таблица, содержащая информацию об асинхронных вставках. Каждая запись соответствует запросу вставки, помещённому в буфер асинхронных запросов вставки. | -| [system.asynchronous_inserts](/operations/system-tables/asynchronous_inserts) | Системная таблица, содержащая информацию об асинхронных вставках, ожидающих выполнения в очереди. | -| [system.asynchronous_loader](/operations/system-tables/asynchronous_loader) | Системная таблица, содержащая информацию о последних асинхронных заданиях (например, по загрузке таблиц) и их состоянии. В таблице содержится по одной строке для каждого задания. | -| [system.asynchronous_metric_log](/operations/system-tables/asynchronous_metric_log) | Системная таблица, содержащая исторические значения из таблицы `system.asynchronous_metrics`, которые сохраняются один раз в каждый интервал времени (по умолчанию — раз в секунду) | +| [system.asynchronous_inserts](/operations/system-tables/asynchronous_inserts) | Системная таблица, содержащая информацию об асинхронных вставках, находящихся в очереди на выполнение. | +| [system.asynchronous_loader](/operations/system-tables/asynchronous_loader) | Системная таблица, содержащая сведения о недавних асинхронных заданиях (например, по загрузке таблиц) и их состоянии. В таблице одна строка для каждого задания. | +| [system.asynchronous_metric_log](/operations/system-tables/asynchronous_metric_log) | Системная таблица, содержащая исторические значения из таблицы `system.asynchronous_metrics`, которые сохраняются один раз за каждый интервал времени (по умолчанию — раз в секунду) | | [system.asynchronous_metrics](/operations/system-tables/asynchronous_metrics) | Системная таблица, содержащая метрики, которые периодически вычисляются в фоновом режиме. Например, объём используемой оперативной памяти. | | [system.azure_queue_settings](/operations/system-tables/azure_queue_settings) | Системная таблица, содержащая информацию о настройках таблиц AzureQueue. Доступна начиная с версии сервера `24.10`. | | [system.background_schedule_pool](/operations/system-tables/background_schedule_pool) | Системная таблица, содержащая информацию о задачах в фоновых пулах планировщика. | | [system.background_schedule_pool_log](/operations/system-tables/background_schedule_pool_log) | Системная таблица, содержащая историю выполнения задач в фоновых пулах планировщика. | | [system.backup_log](/operations/system-tables/backup_log) | Системная таблица, содержащая записи журнала с информацией об операциях `BACKUP` и `RESTORE`. | | [system.backups](/operations/system-tables/backups) | Системная таблица, содержащая записи журнала с информацией об операциях `BACKUP` и `RESTORE`. | -| [system.blob_storage_log](/operations/system-tables/blob_storage_log) | Системная таблица, содержащая записи журнала с информацией о различных операциях с объектным хранилищем (blob storage), таких как загрузка и удаление объектов. | +| [system.blob_storage_log](/operations/system-tables/blob_storage_log) | Системная таблица, содержащая записи журнала с информацией о различных операциях с объектным хранилищем (blob storage), например загрузка и удаление объектов. | | [system.build_options](/operations/system-tables/build_options) | Системная таблица, содержащая информацию о параметрах сборки сервера ClickHouse. | | [system.clusters](/operations/system-tables/clusters) | Системная таблица, содержащая информацию о кластерах, определённых в конфигурационном файле, и серверах, входящих в них. | -| [system.codecs](/operations/system-tables/codecs) | Системная таблица, содержащая информацию о кодеках в очереди. | +| [system.codecs](/operations/system-tables/codecs) | Системная таблица, содержащая информацию о доступных кодеках. | | [system.columns](/operations/system-tables/columns) | Системная таблица, содержащая информацию о столбцах во всех таблицах. | | [system.contributors](/operations/system-tables/contributors) | Системная таблица, содержащая информацию об участниках. | -| [system.crash_log](/operations/system-tables/crash_log) | Системная таблица, содержащая информацию о стек‑трейсах при возникновении фатальных ошибок. | +| [system.crash_log](/operations/system-tables/crash_log) | Системная таблица, содержащая информацию о трассировках стека при возникновении фатальных ошибок. | | [system.current_roles](/operations/system-tables/current_roles) | Системная таблица, содержащая активные роли для текущего пользователя. | -| [system.dashboards](/operations/system-tables/dashboards) | Содержит запросы, используемые страницей `/dashboard`, доступной через HTTP‑интерфейс; полезна для мониторинга и устранения неполадок. | +| [system.dashboards](/operations/system-tables/dashboards) | Содержит запросы, используемые страницей `/dashboard`, доступной через HTTP‑интерфейс. Полезна для мониторинга и устранения неполадок. | | [system.data_skipping_indices](/operations/system-tables/data_skipping_indices) | Системная таблица, содержащая сведения о существующих индексах пропуска данных во всех таблицах. | | [system.data_type_families](/operations/system-tables/data_type_families) | Системная таблица, содержащая информацию о поддерживаемых типах данных | | [system.database_engines](/operations/system-tables/database_engines) | Системная таблица, содержащая список движков баз данных, поддерживаемых сервером. | @@ -57,28 +57,28 @@ doc_type: 'reference' | [system.distributed_ddl_queue](/operations/system-tables/distributed_ddl_queue) | Системная таблица, содержащая информацию о распределённых DDL‑запросах (запросах с использованием предложения ON CLUSTER), выполненных на кластере. | | [system.distribution_queue](/operations/system-tables/distribution_queue) | Системная таблица, содержащая информацию о локальных файлах, находящихся в очереди на отправку в сегменты. | | [system.dns_cache](/operations/system-tables/dns_cache) | Системная таблица, содержащая информацию о кэшированных DNS-записях. | -| [system.dropped_tables](/operations/system-tables/dropped_tables) | Системная таблица, содержащая информацию о таблицах, для которых выполнялась команда DROP TABLE, но очистка данных ещё не произведена | +| [system.dropped_tables](/operations/system-tables/dropped_tables) | Системная таблица, содержащая информацию о таблицах, для которых была выполнена команда DROP TABLE, но очистка данных ещё не произведена | | [system.dropped_tables_parts](/operations/system-tables/dropped_tables_parts) | Системная таблица, содержащая информацию о частях таблиц семейства MergeTree, перечисленных в `system.dropped_tables` | | [system.enabled_roles](/operations/system-tables/enabled_roles) | Системная таблица, содержащая все активные роли на данный момент, включая текущую роль текущего пользователя и роли, назначенные этой роли | | [system.error_log](/operations/system-tables/system-error-log) | Системная таблица, содержащая историю значений кодов ошибок из таблицы `system.errors`, которые периодически записываются на диск. | -| [system.errors](/operations/system-tables/errors) | Системная таблица, содержащая коды ошибок и число срабатываний каждого из них. | +| [system.errors](/operations/system-tables/errors) | Системная таблица, содержащая коды ошибок и количество срабатываний каждого из них. | | [system.events](/operations/system-tables/events) | Системная таблица, содержащая информацию о количестве событий, произошедших в системе. | | [system.functions](/operations/system-tables/functions) | Системная таблица, содержащая информацию об обычных и агрегатных функциях. | -| [system.grants](/operations/system-tables/grants) | Системная таблица, показывающая, какие привилегии предоставлены учётным записям пользователей ClickHouse. | -| [system.graphite_retentions](/operations/system-tables/graphite_retentions) | Системная таблица, содержащая информацию о параметрах `graphite_rollup`, используемых в таблицах с движком типа `GraphiteMergeTree`. | +| [system.grants](/operations/system-tables/grants) | Системная таблица, показывающая, какие привилегии предоставлены учетным записям пользователей ClickHouse. | +| [system.graphite_retentions](/operations/system-tables/graphite_retentions) | Системная таблица, содержащая информацию о параметрах `graphite_rollup`, используемых в таблицах с движками типа `GraphiteMergeTree`. | | [system.histogram_metrics](/operations/system-tables/histogram_metrics) | Эта таблица содержит гистограммные метрики, которые можно мгновенно вычислить и экспортировать в формате Prometheus. Данные в ней всегда актуальны. | | [system.iceberg_history](/operations/system-tables/iceberg_history) | Системная таблица, содержащая историю снимков Iceberg. | | [system.iceberg_metadata_log](/operations/system-tables/iceberg_metadata_log) | Системная таблица, содержащая информацию о файлах метаданных, прочитанных из таблиц Iceberg. Каждая запись представляет либо корневой файл метаданных, либо метаданные, извлечённые из файла Avro, либо отдельную запись Avro-файла. | | [system.instrumentation](/operations/system-tables/instrumentation) | Системная таблица, содержащая точки инструментирования | -| [system.jemalloc_bins](/operations/system-tables/jemalloc_bins) | Системная таблица, содержащая сведения о выделении памяти аллокатором jemalloc по различным классам размеров (bins), агрегированные по всем аренам. | +| [system.jemalloc_bins](/operations/system-tables/jemalloc_bins) | Системная таблица, содержащая сведения о выделениях памяти, выполненных аллокатором jemalloc по различным классам размеров (bins) и агрегированных по всем аренам. | | [system.kafka_consumers](/operations/system-tables/kafka_consumers) | Системная таблица, содержащая информацию о потребителях Kafka. | | [system.licenses](/operations/system-tables/licenses) | Системная таблица, содержащая лицензии сторонних библиотек, расположенных в каталоге `contrib` исходного кода ClickHouse. | | [system.masking_policies](/operations/system-tables/masking_policies) | Системная таблица, содержащая информацию о всех политиках маскирования в системе. | | [system.merge_tree_settings](/operations/system-tables/merge_tree_settings) | Системная таблица, содержащая информацию о настройках таблиц MergeTree. | -| [system.merges](/operations/system-tables/merges) | Системная таблица, содержащая информацию о выполняющихся в данный момент слияниях и мутациях частей таблиц семейства MergeTree. | +| [system.merges](/operations/system-tables/merges) | Системная таблица, содержащая информацию о текущих слияниях и мутациях частей таблиц семейства MergeTree. | | [system.metric_log](/operations/system-tables/metric_log) | Системная таблица, содержащая историю значений метрик таблиц `system.metrics` и `system.events`, данные которой периодически сбрасываются на диск. | -| [system.metrics](/operations/system-tables/metrics) | Системная таблица, содержащая метрики, которые можно мгновенно вычислить или имеющие текущее значение. | -| [system.moves](/operations/system-tables/moves) | Системная таблица, содержащая информацию о выполняющихся перемещениях частей данных таблиц MergeTree. Каждое перемещение части данных представлено одной строкой. | +| [system.metrics](/operations/system-tables/metrics) | Системная таблица, содержащая метрики, которые можно мгновенно вычислить или которые имеют текущее значение. | +| [system.moves](/operations/system-tables/moves) | Системная таблица, содержащая информацию о выполняющихся перемещениях частей данных таблиц MergeTree. Каждому перемещению части данных соответствует одна строка. | | [system.mutations](/operations/system-tables/mutations) | Системная таблица, содержащая информацию о мутациях таблиц MergeTree и ходе их выполнения. Каждая команда мутации представлена одной строкой. | | [system.numbers](/operations/system-tables/numbers) | Системная таблица, содержащая единственный столбец типа UInt64 с именем `number`, в котором хранятся почти все натуральные числа, начиная с нуля. | | [system.numbers_mt](/operations/system-tables/numbers_mt) | Системная таблица, аналогичная `system.numbers`, но чтение из неё выполняется параллельно, поэтому числа могут возвращаться в произвольном порядке. | @@ -88,40 +88,40 @@ doc_type: 'reference' | [system.parts](/operations/system-tables/parts) | Системная таблица, содержащая информацию о частях таблиц MergeTree | | [system.parts_columns](/operations/system-tables/parts_columns) | Системная таблица, содержащая информацию о частях и столбцах таблиц MergeTree. | | [system.processes](/operations/system-tables/processes) | Системная таблица, используемая для реализации запроса `SHOW PROCESSLIST`. | -| [system.processors_profile_log](/operations/system-tables/processors_profile_log) | Системная таблица, содержащая данные профилирования на уровне процессоров конвейера (которые можно увидеть в результате `EXPLAIN PIPELINE`) | +| [system.processors_profile_log](/operations/system-tables/processors_profile_log) | Системная таблица, содержащая данные профилирования на уровне процессоров конвейера (их можно увидеть в `EXPLAIN PIPELINE`) | | [system.projection_parts](/operations/system-tables/projection_parts) | Системная таблица, содержащая информацию о частях проекций для таблиц семейства MergeTree. | | [system.projection_parts_columns](/operations/system-tables/projection_parts_columns) | Системная таблица, содержащая информацию о столбцах частей проекций для таблиц семейства MergeTree | | [system.projections](/operations/system-tables/projections) | Системная таблица, содержащая информацию о существующих проекциях во всех таблицах. | | [system.query_cache](/operations/system-tables/query_cache) | Системная таблица, отображающая содержимое кэша запросов. | | [system.query_condition_cache](/operations/system-tables/query_condition_cache) | Системная таблица, отображающая содержимое кэша условий запросов. | | [system.query_log](/operations/system-tables/query_log) | Системная таблица, содержащая информацию о выполненных запросах, например, время начала, длительность обработки и сообщения об ошибках. | -| [system.query_metric_log](/operations/system-tables/query_metric_log) | Системная таблица, содержащая историю значений использования памяти и метрик из таблицы `system.events` для отдельных запросов, данные которой периодически сбрасываются на диск. | +| [system.query_metric_log](/operations/system-tables/query_metric_log) | Системная таблица, содержащая историю значений используемой памяти и метрик из таблицы `system.events` для отдельных запросов, данные которой периодически сбрасываются на диск. | | [system.query_thread_log](/operations/system-tables/query_thread_log) | Системная таблица, содержащая информацию о потоках, выполняющих запросы, например, имя потока, время его запуска и продолжительность обработки запроса. | -| [system.query_views_log](/operations/system-tables/query_views_log) | Системная таблица, содержащая информацию о зависимых представлениях, которые выполняются при запуске запроса, например о типе представления и времени его выполнения. | -| [system.quota_limits](/operations/system-tables/quota_limits) | Системная таблица, содержащая информацию о максимальных значениях для всех интервалов всех квот. Одной квоте может соответствовать любое число строк, включая ноль. | -| [system.quota_usage](/operations/system-tables/quota_usage) | Системная таблица, содержащая информацию об использовании QUOTA текущим USER — о том, сколько QUOTA уже использовано и сколько ещё осталось. | +| [system.query_views_log](/operations/system-tables/query_views_log) | Системная таблица, содержащая информацию о зависимых представлениях, которые выполняются при выполнении запроса, например о типе представления и времени его выполнения. | +| [system.quota_limits](/operations/system-tables/quota_limits) | Системная таблица, содержащая информацию о максимальных значениях для всех интервалов всех квот. Одной квоте может соответствовать любое число строк, в том числе ноль. | +| [system.quota_usage](/operations/system-tables/quota_usage) | Системная таблица, содержащая информацию об использовании QUOTA текущим USER: сколько QUOTA уже использовано и сколько ещё осталось. | | [system.quotas](/operations/system-tables/quotas) | Системная таблица, содержащая информацию о QUOTA. | | [system.quotas_usage](/operations/system-tables/quotas_usage) | Системная таблица, содержащая информацию об использовании QUOTA всеми пользователями. | | [system.replicas](/operations/system-tables/replicas) | Системная таблица, содержащая информацию о реплицируемых таблицах, находящихся на локальном сервере, и об их состоянии. Полезна для мониторинга. | | [system.replicated_fetches](/operations/system-tables/replicated_fetches) | Системная таблица, содержащая информацию о текущих фоновых операциях выборки данных. | -| [system.replication_queue](/operations/system-tables/replication_queue) | Системная таблица, содержащая информацию о задачах из очередей репликации, которые хранятся в ClickHouse Keeper или ZooKeeper, для таблиц семейства `ReplicatedMergeTree`. | -| [system.resources](/operations/system-tables/resources) | Системная таблица, содержащая информацию о ресурсах, находящихся на локальном сервере, в которой по одной строке для каждого ресурса. | -| [system.role_grants](/operations/system-tables/role_grants) | Системная таблица, содержащая сведения о предоставлении ролей пользователям и ролям. | +| [system.replication_queue](/operations/system-tables/replication_queue) | Системная таблица, содержащая информацию о задачах из очередей репликации, которые хранятся в ClickHouse Keeper или ZooKeeper для таблиц семейства `ReplicatedMergeTree`. | +| [system.resources](/operations/system-tables/resources) | Системная таблица, содержащая информацию о ресурсах, находящихся на локальном сервере, в которой каждому ресурсу соответствует одна строка. | +| [system.role_grants](/operations/system-tables/role_grants) | Системная таблица, содержащая сведения о назначениях ролей пользователям и ролям. | | [system.roles](/operations/system-tables/roles) | Системная таблица, содержащая информацию о настроенных ролях. | -| [system.row_policies](/operations/system-tables/row_policies) | Системная таблица, содержащая фильтры для одной таблицы, а также список ролей и/или пользователей, которые должны использовать данную ROW POLICY. | +| [system.row_policies](/operations/system-tables/row_policies) | Системная таблица, содержащая фильтры для одной конкретной таблицы, а также список ролей и/или пользователей, которые должны использовать данную ROW POLICY. | | [system.s3_queue_settings](/operations/system-tables/s3_queue_settings) | Системная таблица, содержащая информацию о настройках таблиц S3Queue. Доступна начиная с версии сервера `24.10`. | | [system.scheduler](/operations/system-tables/scheduler) | Системная таблица, содержащая информацию об узлах планировщика, находящихся на локальном сервере, и об их состоянии. | | [system.schema_inference_cache](/operations/system-tables/schema_inference_cache) | Системная таблица, содержащая информацию обо всех кэшированных схемах файлов. | | [system.server_settings](/operations/system-tables/server_settings) | Системная таблица, содержащая сведения о глобальных настройках сервера, которые задаются в файле `config.xml`. | | [system.session_log](/operations/system-tables/session_log) | Системная таблица, содержащая сведения обо всех успешных и неуспешных входах в систему и выходах из неё. | -| [system.settings](/operations/system-tables/settings) | Системная таблица, содержащая информацию о сеансовых настройках текущего пользователя. | +| [system.settings](/operations/system-tables/settings) | Системная таблица, содержащая информацию о настройках сеанса текущего пользователя. | | [system.settings_changes](/operations/system-tables/settings_changes) | Системная таблица, содержащая информацию об изменениях настроек в предыдущих версиях ClickHouse. | -| [system.settings_profile_elements](/operations/system-tables/settings_profile_elements) | Системная таблица, описывающая содержимое профиля настроек: ограничения, роли и пользователей, к которым применяется настройка, а также родительские профили настроек. | +| [system.settings_profile_elements](/operations/system-tables/settings_profile_elements) | Системная таблица, описывающая содержимое профиля настроек: ограничения, роли и пользователей, к которым применяется данный профиль настроек, а также родительские профили настроек. | | [system.settings_profiles](/operations/system-tables/settings_profiles) | Системная таблица, содержащая свойства профилей настроек. | | [system.stack_trace](/operations/system-tables/stack_trace) | Системная таблица, содержащая трассировки стека всех потоков сервера. Позволяет разработчикам анализировать состояние сервера. | | [system.storage_policies](/operations/system-tables/storage_policies) | Системная таблица, содержащая информацию о политиках хранения и томах, определённых в конфигурации сервера. | -| [system.symbols](/operations/system-tables/symbols) | Системная таблица, полезная для экспертов по C++ и инженеров ClickHouse, содержащая информацию для анализа бинарного файла `clickhouse`. | -| [system.table_engines](/operations/system-tables/table_engines) | Системная таблица, содержащая описания движков таблиц, поддерживаемых сервером, и поддерживаемых ими возможностей. | +| [system.symbols](/operations/system-tables/symbols) | Системная таблица, полезная для экспертов по C++ и инженеров ClickHouse, содержащая информацию, позволяющую анализировать бинарный файл `clickhouse`. | +| [system.table_engines](/operations/system-tables/table_engines) | Системная таблица, содержащая описания движков таблиц, поддерживаемых сервером, и их возможностей. | | [system.tables](/operations/system-tables/tables) | Системная таблица, содержащая метаданные о каждой таблице, известной серверу. | | [system.text_log](/operations/system-tables/text_log) | Системная таблица, содержащая записи журнала. | | [system.time_zones](/operations/system-tables/time_zones) | Системная таблица, содержащая список часовых поясов, поддерживаемых сервером ClickHouse. | @@ -133,8 +133,9 @@ doc_type: 'reference' | [system.warnings](/operations/system-tables/system_warnings) | Эта таблица содержит предупреждения сервера ClickHouse. | | [system.workloads](/operations/system-tables/workloads) | Системная таблица, содержащая информацию о рабочих нагрузках, находящихся на локальном сервере. | | [system.zookeeper](/operations/system-tables/zookeeper) | Системная таблица, которая существует только если настроены ClickHouse Keeper или ZooKeeper. Предоставляет данные из кластера Keeper, заданного в конфигурации. | -| [system.zookeeper_connection](/operations/system-tables/zookeeper_connection) | Системная таблица, существующая только если ZooKeeper настроен. Показывает текущие подключения к ZooKeeper (включая вспомогательные экземпляры ZooKeeper). | +| [system.zookeeper_connection](/operations/system-tables/zookeeper_connection) | Системная таблица, которая существует только если настроен ZooKeeper. Показывает текущие подключения к ZooKeeper (включая вспомогательные экземпляры ZooKeeper). | | [system.zookeeper_connection_log](/operations/system-tables/zookeeper_connection_log) | Показывает историю подключений к ZooKeeper (включая вспомогательные экземпляры ZooKeeper). | +| [system.zookeeper_info](/operations/system-tables/zookeeper_info) | Системная таблица, содержащая информацию для анализа всех доступных узлов Keeper. | | [system.zookeeper_log](/operations/system-tables/zookeeper_log) | Системная таблица, содержащая информацию о параметрах запроса к серверу ZooKeeper и его ответе. | {/*AUTOGENERATED_END*/ } diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/operations/system-tables/zookeeper_info.md b/i18n/ru/docusaurus-plugin-content-docs/current/operations/system-tables/zookeeper_info.md new file mode 100644 index 00000000000..3d613417393 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/operations/system-tables/zookeeper_info.md @@ -0,0 +1,57 @@ +--- +description: 'Системная таблица, предоставляющая информацию обо всех доступных узлах Keeper.' +keywords: ['системная таблица', 'zookeeper_info'] +slug: /operations/system-tables/zookeeper_info +title: 'system.zookeeper_info' +doc_type: 'reference' +--- + +import SystemTableCloud from '@site/i18n/ru/docusaurus-plugin-content-docs/current/_snippets/_system_table_cloud.md'; + +# system.zookeeper_info {#systemzookeeper_info} + + + +Эта таблица выводит агрегированную диагностическую информацию о ZooKeeper; сведения об узлах берутся из конфигурации. + +Столбцы: + +* `zookeeper_cluster_name` ([String](../../sql-reference/data-types/string.md)) — имя кластера ZooKeeper. +* `host` ([String](../../sql-reference/data-types/string.md)) — имя хоста или IP-адрес узла ZooKeeper, к которому подключён ClickHouse. +* `port` ([UInt16](../../sql-reference/data-types/int-uint.md)) — Порт узла ZooKeeper, к которому подключён ClickHouse. +* `index` ([Nullable(UInt8)](../../sql-reference/data-types/int-uint.md)) — Индекс узла ZooKeeper, к которому подключён ClickHouse. Индекс получен из конфигурации ZooKeeper. Если подключения нет, этот столбец имеет значение NULL. +* `is_connected` ([Nullable(UInt8)](../../sql-reference/data-types/int-uint.md)) — Показывает, установлено ли соединение с ZooKeeper. +* `is_readonly` ([UInt8](../../sql-reference/data-types/int-uint.md)) — Признак «только для чтения». +* `version` ([String](../../sql-reference/data-types/string.md)) — версия ZooKeeper. +* `avg_latency` ([UInt64](../../sql-reference/data-types/int-uint.md)) — средняя задержка. +* `max_latency` ([UInt64](../../sql-reference/data-types/int-uint.md)) — максимальная задержка. +* `min_latency` ([UInt64](../../sql-reference/data-types/int-uint.md)) — минимальная задержка. +* `packets_received` ([UInt64](../../sql-reference/data-types/int-uint.md)) — количество полученных пакетов. +* `packets_sent` ([UInt64](../../sql-reference/data-types/int-uint.md)) — Количество отправленных пакетов. +* `outstanding_requests` ([UInt64](../../sql-reference/data-types/int-uint.md)) — Количество незавершенных запросов. +* `server_state` ([String](../../sql-reference/data-types/string.md)) — состояние сервера. +* `is_leader` ([UInt8](../../sql-reference/data-types/int-uint.md)) — Является ли этот узел лидером ZooKeeper. +* `znode_count` ([UInt64](../../sql-reference/data-types/int-uint.md)) — Число znode. +* `watch_count` ([UInt64](../../sql-reference/data-types/int-uint.md)) — Количество вотчей. +* `ephemerals_count` ([UInt64](../../sql-reference/data-types/int-uint.md)) — Количество эфемерных узлов +* `approximate_data_size` ([UInt64](../../sql-reference/data-types/int-uint.md)) — приблизительный размер данных. +* `followers` ([UInt64](../../sql-reference/data-types/int-uint.md)) — Ведомые узлы лидера. Это поле доступно только на лидере. +* `synced_followers` ([UInt64](../../sql-reference/data-types/int-uint.md)) — Количество синхронизированных реплик (followers) у лидера. Это поле отображается только для лидера. +* `pending_syncs` ([UInt64](../../sql-reference/data-types/int-uint.md)) — Число ожидающих синхронизаций у лидера. Это поле выводится только для лидера. +* `open_file_descriptor_count` ([UInt64](../../sql-reference/data-types/int-uint.md)) — Число открытых файловых дескрипторов. Доступно только на платформах Unix. +* `max_file_descriptor_count` ([UInt64](../../sql-reference/data-types/int-uint.md)) — Максимальное число файловых дескрипторов. Только на платформах Unix. +* `connections` ([UInt64](../../sql-reference/data-types/int-uint.md)) — Количество подключений к ZooKeeper. +* `outstanding` ([UInt64](../../sql-reference/data-types/int-uint.md)) — Количество необработанных запросов в ZooKeeper. +* `zxid` ([UInt64](../../sql-reference/data-types/int-uint.md)) — zxid в ZooKeeper. +* `node_count` ([UInt64](../../sql-reference/data-types/int-uint.md)) — Число узлов ZooKeeper. +* `snapshot_dir_size` ([UInt64](../../sql-reference/data-types/int-uint.md)) — размер каталога со снимками ZooKeeper. +* `log_dir_size` ([UInt64](../../sql-reference/data-types/int-uint.md)) — размер каталога журналов ZooKeeper. +* `first_log_idx` ([UInt64](../../sql-reference/data-types/int-uint.md)) — первый индекс журнала ZooKeeper. +* `first_log_term` ([UInt64](../../sql-reference/data-types/int-uint.md)) — Терм первой записи журнала ZooKeeper. +* `last_log_idx` ([UInt64](../../sql-reference/data-types/int-uint.md)) — индекс последнего журнала ZooKeeper. +* `last_log_term` ([UInt64](../../sql-reference/data-types/int-uint.md)) — терм последней записи в журнале ZooKeeper. +* `last_committed_idx` ([UInt64](../../sql-reference/data-types/int-uint.md)) — последний зафиксированный индекс в ZooKeeper. +* `leader_committed_log_idx` ([UInt64](../../sql-reference/data-types/int-uint.md)) — индекс журнала, подтверждённого лидером ZooKeeper. +* `target_committed_log_idx` ([UInt64](../../sql-reference/data-types/int-uint.md)) — целевой индекс зафиксированного журнала ZooKeeper. +* `last_snapshot_idx` ([UInt64](../../sql-reference/data-types/int-uint.md)) — индекс последнего снимка в ZooKeeper. + g \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/operations/utilities/clickhouse-keeper-http-api.md b/i18n/ru/docusaurus-plugin-content-docs/current/operations/utilities/clickhouse-keeper-http-api.md new file mode 100644 index 00000000000..66f0babc209 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/operations/utilities/clickhouse-keeper-http-api.md @@ -0,0 +1,110 @@ +--- +description: 'Документация по HTTP API ClickHouse Keeper и встроенной панели мониторинга' +sidebar_label: 'Keeper HTTP API' +sidebar_position: 70 +slug: /operations/utilities/clickhouse-keeper-http-api +title: 'HTTP API ClickHouse Keeper и панель мониторинга' +doc_type: 'reference' +--- + +# HTTP API и панель управления Keeper {#keeper-http-api-and-dashboard} + +ClickHouse Keeper предоставляет HTTP API и встроенную веб-панель для мониторинга, проверки работоспособности и управления хранилищем. +Этот интерфейс позволяет операторам просматривать состояние кластера, выполнять команды и управлять хранилищем Keeper через веб-браузер или HTTP‑клиенты. + +## Конфигурация {#configuration} + +Чтобы включить HTTP API, добавьте раздел `http_control` в конфигурацию `keeper_server`: + +```xml + + + + + 9182 + + + +``` + + +### Параметры конфигурации {#configuration-options} + +| Параметр | По умолчанию | Описание | +|------------------------------------------|--------------|-----------------------------------------------| +| `http_control.port` | - | HTTP-порт для дашборда и API | +| `http_control.secure_port` | - | HTTPS-порт (требуется настройка SSL) | +| `http_control.readiness.endpoint` | `/ready` | Настраиваемый путь для пробы готовности | +| `http_control.storage.session_timeout_ms`| `30000` | Тайм-аут сеанса для операций API хранилища | + +## Эндпоинты {#endpoints} + +### Панель мониторинга {#dashboard} + +- **Path**: `/dashboard` +- **Method**: GET +- **Description**: Предоставляет встроенную веб-панель мониторинга и управления Keeper + +Панель мониторинга включает: + +- Визуализацию состояния кластера в реальном времени +- Мониторинг узлов (роль, задержка, соединения) +- Браузер хранилища +- Интерфейс для выполнения команд + +### Проверка готовности (readiness probe) {#readiness-probe} + +* **Путь**: `/ready` (можно изменить) +* **Метод**: GET +* **Описание**: конечная точка проверки работоспособности + +Успешный ответ (HTTP 200): + +```json +{ + "status": "ok", + "details": { + "role": "leader", + "hasLeader": true + } +} +``` + + +### API команд {#commands-api} + +* **Path**: `/api/v1/commands/{command}` +* **Methods**: GET, POST +* **Description**: Выполняет команды Four-Letter Word или команды CLI ClickHouse Keeper Client + +Параметры запроса: + +* `command` - Команда, которую нужно выполнить +* `cwd` - Текущий рабочий каталог для команд, работающих с путями (по умолчанию: `/`) + +Примеры: + +```bash +# Four-Letter Word command +curl http://localhost:9182/api/v1/commands/stat + +# ZooKeeper CLI command +curl "http://localhost:9182/api/v1/commands/ls?command=ls%20'/'&cwd=/" +``` + + +### Storage API {#storage-api} + +- **Базовый путь**: `/api/v1/storage` +- **Описание**: REST API для операций с хранилищем Keeper + +Storage API следует REST‑соглашениям, где HTTP-методы определяют тип операции: + +| Операция | Путь | Метод | Код статуса | Описание | +|----------|--------------------------------------------|-------|-------------|-----------------------------| +| Get | `/api/v1/storage/{path}` | GET | 200 | Получить данные узла | +| List | `/api/v1/storage/{path}?children=true` | GET | 200 | Список дочерних узлов | +| Exists | `/api/v1/storage/{path}` | HEAD | 200 | Проверить, существует ли узел | +| Create | `/api/v1/storage/{path}` | POST | 201 | Создать новый узел | +| Update | `/api/v1/storage/{path}?version={v}` | PUT | 200 | Обновить данные узла | +| Delete | `/api/v1/storage/{path}?version={v}` | DELETE| 204 | Удалить узел | \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/operations/utilities/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/operations/utilities/index.md index 09efee5ea9a..2f7f29e8fa6 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/operations/utilities/index.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/operations/utilities/index.md @@ -11,10 +11,12 @@ doc_type: 'landing-page' | Инструмент/утилита | Описание | |------|-------------| |[clickhouse-local](../../operations/utilities/clickhouse-local.md) | Позволяет выполнять SQL-запросы к данным без запуска сервера ClickHouse, аналогично тому, как это делает `awk`.| -|[clickhouse-benchmark](../../operations/utilities/clickhouse-benchmark.md) | Нагружает сервер с пользовательскими запросами и настройками.| +|[clickhouse-benchmark](../../operations/utilities/clickhouse-benchmark.md) | Нагружает сервер пользовательскими запросами и настройками.| | [clickhouse-format](../../operations/utilities/clickhouse-format.md) | Форматирует входящие запросы.| |[ClickHouse obfuscator](../../operations/utilities/clickhouse-obfuscator.md) | Маскирует данные.| |[ClickHouse compressor](../../operations/utilities/clickhouse-compressor.md) | Сжимает и распаковывает данные.| | [clickhouse-disks](../../operations/utilities/clickhouse-disks.md) | Предоставляет операции с файлами, аналогичные файловой системе, между различными дисками ClickHouse.| | [clickhouse-odbc-bridge](../../operations/utilities/odbc-bridge.md) | Прокси-сервер для ODBC-драйвера.| -| [clickhouse_backupview](../../operations/utilities/backupview.md) | Модуль на Python для анализа резервных копий ClickHouse.| \ No newline at end of file +| [clickhouse_backupview](../../operations/utilities/backupview.md) | Модуль на Python для анализа резервных копий ClickHouse.| +| [clickhouse-keeper-client](../../operations/utilities/clickhouse-keeper-client.md) | Клиентское приложение для взаимодействия с ClickHouse Keeper.| +| [Keeper HTTP API](../../operations/utilities/clickhouse-keeper-http-api.md) | HTTP API и встроенная панель управления для ClickHouse Keeper.| \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/data-types/map.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/data-types/map.md index 57dce486c70..eb1b1ddfc80 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/data-types/map.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/data-types/map.md @@ -31,7 +31,7 @@ CREATE TABLE tab (m Map(String, UInt64)) ENGINE=Memory; INSERT INTO tab VALUES ({'key1':1, 'key2':10}), ({'key1':2,'key2':20}), ({'key1':3,'key2':30}); ``` -Чтобы выбрать значения для `key2`: +Чтобы выбрать значения по ключу `key2`: ```sql SELECT m['key2'] FROM tab; @@ -48,7 +48,7 @@ SELECT m['key2'] FROM tab; ``` Если запрошенный ключ `k` отсутствует в Map, `m[k]` возвращает значение по умолчанию для типа значения, например `0` для целочисленных типов и `''` для строковых типов. -Чтобы проверить, существует ли ключ в Map, можно использовать функцию [mapContains](../../sql-reference/functions/tuple-map-functions#mapcontains). +Чтобы проверить, существует ли ключ в Map, можно использовать функцию [mapContains](/sql-reference/functions/tuple-map-functions#mapContainsKey). ```sql CREATE TABLE tab (m Map(String, UInt64)) ENGINE=Memory; diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/other-functions.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/other-functions.md index 34eda925e3a..122a23ca4c8 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/other-functions.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/other-functions.md @@ -1547,7 +1547,11 @@ FROM numbers(5); Добавлена в версии: v25.10 -Меняет местами координаты `Point`, `Ring`, `Polygon` или `MultiPolygon`. Для `Point` просто переставляет координаты. Для массивов рекурсивно применяет то же преобразование к каждой паре координат. +Меняет местами координаты `x` и `y` геометрических объектов. Эта операция переставляет широту и долготу, что полезно при преобразовании между различными системами координат или исправлении порядка координат. + +Для `Point` она меняет местами координаты `x` и `y`. Для сложных геометрий (`LineString`, `Polygon`, `MultiPolygon`, `Ring`, `MultiLineString`) преобразование рекурсивно применяется к каждой паре координат. + +Функция поддерживает как отдельные типы геометрий (`Point`, `Ring`, `Polygon`, `MultiPolygon`, `LineString`, `MultiLineString`), так и вариантный тип `Geometry`. **Синтаксис** @@ -1557,11 +1561,11 @@ flipCoordinates(geometry) **Аргументы** -* `geometry` — Геометрия для преобразования. Поддерживаемые типы: Point (Tuple(Float64, Float64)), Ring (Array(Point)), Polygon (Array(Ring)), MultiPolygon (Array(Polygon)). +* `geometry` — Геометрия для преобразования. Поддерживаемые типы: Point (Tuple(Float64, Float64)), Ring (Array(Point)), Polygon (Array(Ring)), MultiPolygon (Array(Polygon)), LineString (Array(Point)), MultiLineString (Array(LineString)) или Geometry (вариантный тип, содержащий любой из этих типов). **Возвращаемое значение** -Геометрия с переставленными координатами. Тип совпадает с входным типом. [`Point`](/sql-reference/data-types/geo#point) или [`Ring`](/sql-reference/data-types/geo#ring) или [`Polygon`](/sql-reference/data-types/geo#polygon) или [`MultiPolygon`](/sql-reference/data-types/geo#multipolygon) +Геометрия с переставленными координатами. Тип совпадает с входным типом. [`Point`](/sql-reference/data-types/geo#point) или [`Ring`](/sql-reference/data-types/geo#ring) или [`Polygon`](/sql-reference/data-types/geo#polygon) или [`MultiPolygon`](/sql-reference/data-types/geo#multipolygon) или [`LineString`](/sql-reference/data-types/geo#linestring) или [`MultiLineString`](/sql-reference/data-types/geo#multilinestring) или [`Geometry`](/sql-reference/data-types/geo) **Примеры** @@ -1595,6 +1599,27 @@ SELECT flipCoordinates([[(1.0, 2.0), (3.0, 4.0)], [(5.0, 6.0), (7.0, 8.0)]]); [[(2.0, 1.0), (4.0, 3.0)], [(6.0, 5.0), (8.0, 7.0)]] ``` +**geometry_wkt** + +```sql title=Query +SELECT flipCoordinates(readWkt('POINT(10 20)')); +``` + +```response title=Response +(20, 10) +``` + +**geometry_polygon_wkt** + +```sql title=Query +SELECT flipCoordinates(readWkt('POLYGON((0 0, 5 0, 5 5, 0 5, 0 0))')); +``` + +```response title=Response +[[(0, 0), (0, 5), (5, 5), (5, 0), (0, 0)]] +``` + + ## formatQuery {#formatQuery} Введена в версии: v diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/string-search-functions.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/string-search-functions.md index 8ad3564651d..17fae1de525 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/string-search-functions.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/string-search-functions.md @@ -19,7 +19,7 @@ doc_type: 'reference' нарушается, исключение не генерируется, а результаты не определены. Поиск в строках в кодировке UTF-8, как правило, реализован отдельными вариантами функций. Аналогично, если используется вариант функции для UTF-8, а входные строки не являются текстом в кодировке UTF-8, исключение не генерируется, а результаты не определены. Обратите внимание, что автоматическая нормализация Unicode не выполняется, однако вы можете использовать функции -[normalizeUTF8*()](https://clickhouse.com../functions/string-functions/) для этой цели. +[normalizeUTF8*()](/sql-reference/functions/string-functions#normalizeUTF8NFC) для этой цели. [Общие строковые функции](string-functions.md) и [функции для замены в строках](string-replace-functions.md) описаны отдельно. @@ -29,7 +29,7 @@ doc_type: 'reference' {/* Содержимое расположенных ниже тегов при сборке фреймворка документации - заменяется на документацию, сгенерированную из system.functions. Пожалуйста, не изменяйте и не удаляйте эти теги. + заменяется на документацию, сгенерированную на основе system.functions. Пожалуйста, не изменяйте и не удаляйте эти теги. См.: https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md */ } diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md index b8f74b7fb65..e0e594142c9 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md @@ -1,1143 +1,11 @@ --- -description: 'Документация по функциям Map и Tuple' +description: 'Документация по функциям Map' sidebar_label: 'Map' slug: /sql-reference/functions/tuple-map-functions title: 'Функции Map' doc_type: 'reference' --- -## map {#map} - -Создаёт значение типа [Map(key, value)](../data-types/map.md) из пар ключ–значение. - -**Синтаксис** - -```sql -map(key1, value1[, key2, value2, ...]) -``` - -**Аргументы** - -* `key_n` — ключи элементов `Map`. Любой тип, поддерживаемый как тип ключа для [Map](../data-types/map.md). -* `value_n` — значения элементов `Map`. Любой тип, поддерживаемый как тип значения для [Map](../data-types/map.md). - -**Возвращаемое значение** - -* Тип `Map`, содержащий пары `key:value`. [Map(key, value)](../data-types/map.md). - -**Примеры** - -Запрос: - -```sql -SELECT map('key1', number, 'key2', number * 2) FROM numbers(3); -``` - -Результат: - -```text -┌─map('key1', number, 'key2', multiply(number, 2))─┐ -│ {'key1':0,'key2':0} │ -│ {'key1':1,'key2':2} │ -│ {'key1':2,'key2':4} │ -└──────────────────────────────────────────────────┘ -``` - -## mapFromArrays {#mapfromarrays} - -Создает map из массива (или map) ключей и массива (или map) значений. - -Функция является удобной альтернативой синтаксису `CAST([...], 'Map(key_type, value_type)')`. -Например, вместо того чтобы писать - -* `CAST((['aa', 'bb'], [4, 5]), 'Map(String, UInt32)')`, или -* `CAST([('aa',4), ('bb',5)], 'Map(String, UInt32)')` - -можно написать `mapFromArrays(['aa', 'bb'], [4, 5])`. - -**Синтаксис** - -```sql -mapFromArrays(keys, values) -``` - -Alias: `MAP_FROM_ARRAYS(keys, values)` - -**Аргументы** - -* `keys` — массив или map ключей ([Array](../data-types/array.md) или [Map](../data-types/map.md)), из которых формируется результирующий map. Если `keys` — массив, допускаются типы `Array(Nullable(T))` или `Array(LowCardinality(Nullable(T)))` при условии, что он не содержит значения NULL. -* `values` — массив или map значений ([Array](../data-types/array.md) или [Map](../data-types/map.md)), из которых формируется результирующий map. - -**Возвращаемое значение** - -* Map, в котором ключи и значения сформированы из массива ключей и массива/map значений. - -**Пример** - -Запрос: - -```sql -SELECT mapFromArrays(['a', 'b', 'c'], [1, 2, 3]) -``` - -Результат: - -```response -┌─mapFromArrays(['a', 'b', 'c'], [1, 2, 3])─┐ -│ {'a':1,'b':2,'c':3} │ -└───────────────────────────────────────────┘ -``` - -`mapFromArrays` также принимает аргументы типа [Map](../data-types/map.md). Во время выполнения они приводятся к массиву из кортежей. - -```sql -SELECT mapFromArrays([1, 2, 3], map('a', 1, 'b', 2, 'c', 3)) -``` - -Результат: - -```response -┌─mapFromArrays([1, 2, 3], map('a', 1, 'b', 2, 'c', 3))─┐ -│ {1:('a',1),2:('b',2),3:('c',3)} │ -└───────────────────────────────────────────────────────┘ -``` - -```sql -SELECT mapFromArrays(map('a', 1, 'b', 2, 'c', 3), [1, 2, 3]) -``` - -Результат: - -```response -┌─mapFromArrays(map('a', 1, 'b', 2, 'c', 3), [1, 2, 3])─┐ -│ {('a',1):1,('b',2):2,('c',3):3} │ -└───────────────────────────────────────────────────────┘ -``` - -## extractKeyValuePairs {#extractkeyvaluepairs} - -Преобразует строку с парами ключ-значение в [Map(String, String)](../data-types/map.md). -Парсинг устойчив к «шуму» (например, в файлах логов). -Пары ключ-значение во входной строке состоят из ключа, за которым следует разделитель ключ-значение и значение. -Пары ключ-значение разделяются разделителем пар. -Ключи и значения могут быть заключены в кавычки. - -**Синтаксис** - -```sql -extractKeyValuePairs(data[, key_value_delimiter[, pair_delimiter[, quoting_character[, unexpected_quoting_character_strategy]]]) -``` - -Псевдонимы: - -* `str_to_map` -* `mapFromString` - -**Аргументы** - -* `data` — строка, из которой извлекаются пары ключ-значение. [String](../data-types/string.md) или [FixedString](../data-types/fixedstring.md). -* `key_value_delimiter` — одиночный символ, разделяющий ключи и значения. По умолчанию `:`. [String](../data-types/string.md) или [FixedString](../data-types/fixedstring.md). -* `pair_delimiters` — набор символов, разделяющих пары. По умолчанию ` `, `,` и `;`. [String](../data-types/string.md) или [FixedString](../data-types/fixedstring.md). -* `quoting_character` — одиночный символ, используемый в качестве кавычки. По умолчанию `"`. [String](../data-types/string.md) или [FixedString](../data-types/fixedstring.md). -* `unexpected_quoting_character_strategy` — стратегия обработки кавычек в неожиданных местах на этапах `read_key` и `read_value`. Возможные значения: `invalid`, `accept` и `promote`. `invalid` отбросит ключ/значение и вернётся в состояние `WAITING_KEY`. `accept` будет обрабатывать символ как обычный. `promote` перейдёт в состояние `READ_QUOTED_{KEY/VALUE}` и начнёт обработку со следующего символа. - -**Возвращаемые значения** - -* Массив пар ключ-значение. Тип: [Map(String, String)](../data-types/map.md) - -**Примеры** - -Запрос - -```sql -SELECT extractKeyValuePairs('name:neymar, age:31 team:psg,nationality:brazil') AS kv -``` - -Результат: - -```Result: -┌─kv──────────────────────────────────────────────────────────────────────┐ -│ {'name':'neymar','age':'31','team':'psg','nationality':'brazil'} │ -└─────────────────────────────────────────────────────────────────────────┘ -``` - -С одинарной кавычкой `'` в качестве символа цитирования: - -```sql -SELECT extractKeyValuePairs('name:\'neymar\';\'age\':31;team:psg;nationality:brazil,last_key:last_value', ':', ';,', '\'') AS kv -``` - -Результат: - -```text -┌─kv───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ -│ {'name':'neymar','age':'31','team':'psg','nationality':'brazil','last_key':'last_value'} │ -└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ -``` - -Примеры unexpected_quoting_character_strategy: - -unexpected_quoting_character_strategy=invalid - -```sql -SELECT extractKeyValuePairs('name"abc:5', ':', ' ,;', '\"', 'INVALID') AS kv; -``` - -```text -┌─kv────────────────┐ -│ {'abc':'5'} │ -└───────────────────┘ -``` - -```sql -SELECT extractKeyValuePairs('name"abc":5', ':', ' ,;', '\"', 'INVALID') AS kv; -``` - -```text -┌─kv──┐ -│ {} │ -└─────┘ -``` - -unexpected_quoting_character_strategy=accept - -```sql -SELECT extractKeyValuePairs('name"abc:5', ':', ' ,;', '\"', 'ACCEPT') AS kv; -``` - -```text -┌─kv────────────────┐ -│ {'name"abc':'5'} │ -└───────────────────┘ -``` - -```sql -SELECT extractKeyValuePairs('name"abc":5', ':', ' ,;', '\"', 'ACCEPT') AS kv; -``` - -```text -┌─kv─────────────────┐ -│ {'name"abc"':'5'} │ -└────────────────────┘ -``` - -unexpected_quoting_character_strategy=promote - -```sql -SELECT extractKeyValuePairs('name"abc:5', ':', ' ,;', '\"', 'PROMOTE') AS kv; -``` - -```text -┌─kv──┐ -│ {} │ -└─────┘ -``` - -```sql -SELECT extractKeyValuePairs('name"abc":5', ':', ' ,;', '\"', 'PROMOTE') AS kv; -``` - -```text -┌─kv───────────┐ -│ {'abc':'5'} │ -└──────────────┘ -``` - -Escape-последовательности при отсутствии поддержки: - -```sql -SELECT extractKeyValuePairs('age:a\\x0A\\n\\0') AS kv -``` - -Результат: - -```text -┌─kv─────────────────────┐ -│ {'age':'a\\x0A\\n\\0'} │ -└────────────────────────┘ -``` - -Чтобы восстановить пары ключ–значение строковой карты, сериализованные с помощью `toString`: - -```sql -SELECT - map('John', '33', 'Paula', '31') AS m, - toString(m) AS map_serialized, - extractKeyValuePairs(map_serialized, ':', ',', '\'') AS map_restored -FORMAT Vertical; -``` - -Результат: - -```response -Строка 1: -────── -m: {'John':'33','Paula':'31'} -map_serialized: {'John':'33','Paula':'31'} -map_restored: {'John':'33','Paula':'31'} -``` - -## extractKeyValuePairsWithEscaping {#extractkeyvaluepairswithescaping} - -То же, что и `extractKeyValuePairs`, но с поддержкой экранирования. - -Поддерживаемые escape-последовательности: `\x`, `\N`, `\a`, `\b`, `\e`, `\f`, `\n`, `\r`, `\t`, `\v` и `\0`. -Нестандартные escape-последовательности возвращаются как есть (включая обратный слэш), за исключением следующих: -`\\`, `'`, `"`, `backtick` (обратная кавычка), `/`, `=` или управляющие символы ASCII (c <= 31). - -Эта функция подходит для случаев, когда предварительное и последующее экранирование неприменимы. Например, рассмотрим следующую -входную строку: `a: "aaaa\"bbb"`. Ожидаемый вывод: `a: aaaa\"bbbb`. - -* Предварительное экранирование: при предварительном экранировании будет получен вывод: `a: "aaaa"bbb"`, а `extractKeyValuePairs` затем вернёт: `a: aaaa` -* Последующее экранирование: `extractKeyValuePairs` вернёт `a: aaaa\`, и последующее экранирование оставит строку без изменений. - -Начальные escape-последовательности будут пропущены в ключах и будут считаться недопустимыми для значений. - -**Примеры** - -Escape-последовательности при включённой поддержке экранирования: - -```sql -SELECT extractKeyValuePairsWithEscaping('age:a\\x0A\\n\\0') AS kv -``` - -Результат: - -```response -┌─kv────────────────┐ -│ {'age':'a\n\n\0'} │ -└───────────────────┘ -``` - -## mapAdd {#mapadd} - -Собирает все ключи и суммирует соответствующие значения. - -**Синтаксис** - -```sql -mapAdd(arg1, arg2 [, ...]) -``` - -**Аргументы** - -Аргументы представляют собой [map](../data-types/map.md) или [tuple](/sql-reference/data-types/tuple) из двух [arrays](/sql-reference/data-types/array), где элементы в первом массиве являются ключами, а второй массив содержит значения для каждого ключа. Все массивы ключей должны иметь одинаковый тип, а все массивы значений должны содержать элементы, которые могут быть приведены к одному типу ([Int64](/sql-reference/data-types/int-uint#integer-ranges), [UInt64](/sql-reference/data-types/int-uint#integer-ranges) или [Float64](/sql-reference/data-types/float)). Общий приведённый тип используется как тип для результирующего массива. - -**Возвращаемое значение** - -* В зависимости от аргументов возвращается один [map](../data-types/map.md) или [tuple](/sql-reference/data-types/tuple), где первый массив содержит отсортированные ключи, а второй массив — значения. - -**Пример** - -Запрос с типом `Map`: - -```sql -SELECT mapAdd(map(1,1), map(1,1)); -``` - -Результат: - -```text -┌─mapAdd(map(1, 1), map(1, 1))─┐ -│ {1:2} │ -└──────────────────────────────┘ -``` - -Запрос с кортежем: - -```sql -SELECT mapAdd(([toUInt8(1), 2], [1, 1]), ([toUInt8(1), 2], [1, 1])) AS res, toTypeName(res) AS type; -``` - -Результат: - -```text -┌─res───────────┬─type───────────────────────────────┐ -│ ([1,2],[2,2]) │ Tuple(Array(UInt8), Array(UInt64)) │ -└───────────────┴────────────────────────────────────┘ -``` - -## mapSubtract {#mapsubtract} - -Собирает все ключи и вычитает соответствующие им значения. - -**Синтаксис** - -```sql -mapSubtract(Tuple(Array, Array), Tuple(Array, Array) [, ...]) -``` - -**Аргументы** - -Аргументы — это [map](../data-types/map.md) или [tuple](/sql-reference/data-types/tuple) из двух [array](/sql-reference/data-types/array), где элементы первого массива представляют ключи, а второй массив содержит значения для каждого ключа. Все массивы ключей должны иметь один и тот же тип, а все массивы значений должны содержать элементы, которые могут быть приведены к одному типу ([Int64](/sql-reference/data-types/int-uint#integer-ranges), [UInt64](/sql-reference/data-types/int-uint#integer-ranges) или [Float64](/sql-reference/data-types/float)). Общий приведённый тип используется как тип для результирующего массива. - -**Возвращаемое значение** - -* В зависимости от аргументов функция возвращает [map](../data-types/map.md) или [tuple](/sql-reference/data-types/tuple), где первый массив содержит отсортированные ключи, а второй массив содержит значения. - -**Пример** - -Запрос с типом `Map`: - -```sql -SELECT mapSubtract(map(1,1), map(1,1)); -``` - -Результат: - -```text -┌─mapSubtract(map(1, 1), map(1, 1))─┐ -│ {1:0} │ -└───────────────────────────────────┘ -``` - -Запрос с отображением кортежей: - -```sql -SELECT mapSubtract(([toUInt8(1), 2], [toInt32(1), 1]), ([toUInt8(1), 2], [toInt32(2), 1])) AS res, toTypeName(res) AS type; -``` - -Результат: - -```text -┌─res────────────┬─type──────────────────────────────┐ -│ ([1,2],[-1,0]) │ Tuple(Array(UInt8), Array(Int64)) │ -└────────────────┴───────────────────────────────────┘ -``` - -## mapPopulateSeries {#mappopulateseries} - -Заполняет отсутствующие пары ключ–значение в отображении (map) с целочисленными ключами. -Чтобы можно было расширять множество ключей за пределы наибольшего значения, можно задать максимальный ключ. -Более конкретно, функция возвращает отображение, в котором ключи образуют последовательность от наименьшего до наибольшего ключа (или аргумента `max`, если он указан) с шагом 1 и соответствующими значениями. -Если для ключа не задано значение, используется значение по умолчанию. -В случае повторяющихся ключей с каждым ключом связывается только первое значение (в порядке появления). - -**Синтаксис** - -```sql -mapPopulateSeries(map[, max]) -mapPopulateSeries(keys, values[, max]) -``` - -Для аргументов-массивов количество элементов в `keys` и `values` должно совпадать для каждой строки. - -**Аргументы** - -Аргументы — это [Map](../data-types/map.md) или два массива [Array](/sql-reference/data-types/array), где первый массив содержит ключи, а второй — значения для каждого ключа. - -Отображаемые массивы: - -* `map` — Map с целочисленными ключами. [Map](../data-types/map.md). - -или - -* `keys` — Массив ключей. [Array](/sql-reference/data-types/array)([Int](/sql-reference/data-types/int-uint#integer-ranges)). -* `values` — Массив значений. [Array](/sql-reference/data-types/array)([Int](/sql-reference/data-types/int-uint#integer-ranges)). -* `max` — Максимальное значение ключа. Необязательный параметр. [Int8, Int16, Int32, Int64, Int128, Int256](/sql-reference/data-types/int-uint#integer-ranges). - -**Возвращаемое значение** - -* В зависимости от аргументов — [Map](../data-types/map.md) или [Tuple](/sql-reference/data-types/tuple) из двух [Array](/sql-reference/data-types/array): ключи в отсортированном порядке и значения, соответствующие этим ключам. - -**Пример** - -Запрос с типом `Map`: - -```sql -SELECT mapPopulateSeries(map(1, 10, 5, 20), 6); -``` - -Результат: - -```text -┌─mapPopulateSeries(map(1, 10, 5, 20), 6)─┐ -│ {1:10,2:0,3:0,4:0,5:20,6:0} │ -└─────────────────────────────────────────┘ -``` - -Запрос с сопоставленными массивами: - -```sql -SELECT mapPopulateSeries([1,2,4], [11,22,44], 5) AS res, toTypeName(res) AS type; -``` - -Результат: - -```text -┌─res──────────────────────────┬─type──────────────────────────────┐ -│ ([1,2,3,4,5],[11,22,0,44,0]) │ Tuple(Array(UInt8), Array(UInt8)) │ -└──────────────────────────────┴───────────────────────────────────┘ -``` - -## mapKeys {#mapkeys} - -Возвращает ключи заданной `Map`. - -Эту функцию можно оптимизировать с помощью настройки [optimize_functions_to_subcolumns](/operations/settings/settings#optimize_functions_to_subcolumns). -При включённой настройке функция читает только подстолбец [keys](/sql-reference/data-types/map#reading-subcolumns-of-map) вместо всей `Map`. -Запрос `SELECT mapKeys(m) FROM table` преобразуется в `SELECT m.keys FROM table`. - -**Синтаксис** - -```sql -mapKeys(map) -``` - -**Аргументы** - -* `map` — отображение. [Map](../data-types/map.md). - -**Возвращаемое значение** - -* Массив, содержащий все ключи из отображения `map`. [Array](../data-types/array.md). - -**Пример** - -Запрос: - -```sql -CREATE TABLE tab (a Map(String, String)) ENGINE = Memory; - -INSERT INTO tab VALUES ({'name':'eleven','age':'11'}), ({'number':'twelve','position':'6.0'}); - -SELECT mapKeys(a) FROM tab; -``` - -Результат: - -```text -┌─mapKeys(a)────────────┐ -│ ['name','age'] │ -│ ['number','position'] │ -└───────────────────────┘ -``` - -## mapContains {#mapcontains} - -Возвращает, содержится ли заданный ключ в указанном отображении. - -**Синтаксис** - -```sql -mapContains(map, key) -``` - -Псевдоним: `mapContainsKey(map, key)` - -**Аргументы** - -* `map` — Map. [Map](../data-types/map.md). -* `key` — ключ. Тип должен совпадать с типом ключа в `map`. - -**Возвращаемое значение** - -* `1`, если `map` содержит `key`, `0` в противном случае. [UInt8](../data-types/int-uint.md). - -**Пример** - -Запрос: - -```sql -CREATE TABLE tab (a Map(String, String)) ENGINE = Memory; - -INSERT INTO tab VALUES ({'name':'eleven','age':'11'}), ({'number':'twelve','position':'6.0'}); - -SELECT mapContains(a, 'name') FROM tab; - -``` - -Результат: - -```text -┌─mapContains(a, 'name')─┐ -│ 1 │ -│ 0 │ -└────────────────────────┘ -``` - -## mapContainsKeyLike {#mapcontainskeylike} - -**Синтаксис** - -```sql -mapContainsKeyLike(map, pattern) -``` - -**Аргументы** - -* `map` — Map. [Map](../data-types/map.md). -* `pattern` - Строковый шаблон для сопоставления. - -**Возвращаемое значение** - -* `1`, если `map` содержит `key`, соответствующий заданному шаблону, `0` — если не содержит. - -**Пример** - -Запрос: - -```sql -CREATE TABLE tab (a Map(String, String)) ENGINE = Memory; - -INSERT INTO tab VALUES ({'abc':'abc','def':'def'}), ({'hij':'hij','klm':'klm'}); - -SELECT mapContainsKeyLike(a, 'a%') FROM tab; -``` - -Результат: - -```text -┌─mapContainsKeyLike(a, 'a%')─┐ -│ 1 │ -│ 0 │ -└─────────────────────────────┘ -``` - -## mapExtractKeyLike {#mapextractkeylike} - -Для map со строковыми ключами и шаблоном `LIKE` эта функция возвращает map с элементами, ключи которых соответствуют заданному шаблону. - -**Синтаксис** - -```sql -mapExtractKeyLike(map, pattern) -``` - -**Аргументы** - -* `map` — Map. [Map](../data-types/map.md). -* `pattern` - Строковый шаблон для сопоставления. - -**Возвращаемое значение** - -* Map, содержащая элементы, ключи которых соответствуют указанному шаблону. Если ни один элемент не соответствует шаблону, возвращается пустая Map. - -**Пример** - -Запрос: - -```sql -CREATE TABLE tab (a Map(String, String)) ENGINE = Memory; - -INSERT INTO tab VALUES ({'abc':'abc','def':'def'}), ({'hij':'hij','klm':'klm'}); - -SELECT mapExtractKeyLike(a, 'a%') FROM tab; -``` - -Результат: - -```text -┌─mapExtractKeyLike(a, 'a%')─┐ -│ {'abc':'abc'} │ -│ {} │ -└────────────────────────────┘ -``` - -## mapValues {#mapvalues} - -Возвращает значения указанной карты (Map). - -Эта функция может быть оптимизирована с помощью настройки [optimize_functions_to_subcolumns](/operations/settings/settings#optimize_functions_to_subcolumns). -При включённой настройке функция считывает только подстолбец [values](/sql-reference/data-types/map#reading-subcolumns-of-map) вместо всей карты. -Запрос `SELECT mapValues(m) FROM table` преобразуется в `SELECT m.values FROM table`. - -**Синтаксис** - -```sql -mapValues(map) -``` - -**Аргументы** - -* `map` — `Map`. [Map](../data-types/map.md). - -**Возвращаемое значение** - -* Массив, содержащий все значения из `map`. [Array](../data-types/array.md). - -**Пример** - -Запрос: - -```sql -CREATE TABLE tab (a Map(String, String)) ENGINE = Memory; - -INSERT INTO tab VALUES ({'name':'eleven','age':'11'}), ({'number':'twelve','position':'6.0'}); - -SELECT mapValues(a) FROM tab; -``` - -Результат: - -```text -┌─mapValues(a)─────┐ -│ ['eleven','11'] │ -│ ['twelve','6.0'] │ -└──────────────────┘ -``` - -## mapContainsValue {#mapcontainsvalue} - -Возвращает, содержится ли заданный ключ в указанной карте. - -**Синтаксис** - -```sql -mapContainsValue(map, value) -``` - -Псевдоним: `mapContainsValue(map, value)` - -**Аргументы** - -* `map` — Map. [Map](../data-types/map.md). -* `value` — Значение. Тип должен совпадать с типом значения `map`. - -**Возвращаемое значение** - -* `1`, если `map` содержит `value`, `0` в противном случае. [UInt8](../data-types/int-uint.md). - -**Пример** - -Запрос: - -```sql -CREATE TABLE tab (a Map(String, String)) ENGINE = Memory; - -INSERT INTO tab VALUES ({'name':'eleven','age':'11'}), ({'number':'twelve','position':'6.0'}); - -SELECT mapContainsValue(a, '11') FROM tab; - -``` - -Результат: - -```text -┌─mapContainsValue(a, '11')─┐ -│ 1 │ -│ 0 │ -└───────────────────────────┘ -``` - -## mapContainsValueLike {#mapcontainsvaluelike} - -**Синтаксис** - -```sql -mapContainsValueLike(map, pattern) -``` - -**Аргументы** - -* `map` — Map. [Map](../data-types/map.md). -* `pattern` - Строковый шаблон для сопоставления. - -**Возвращаемое значение** - -* `1`, если `map` содержит `value`, соответствующее указанному шаблону, `0` в противном случае. - -**Пример** - -Запрос: - -```sql -CREATE TABLE tab (a Map(String, String)) ENGINE = Memory; - -INSERT INTO tab VALUES ({'abc':'abc','def':'def'}), ({'hij':'hij','klm':'klm'}); - -SELECT mapContainsValueLike(a, 'a%') FROM tab; -``` - -Результат: - -```text -┌─mapContainsV⋯ke(a, 'a%')─┐ -│ 1 │ -│ 0 │ -└──────────────────────────┘ -``` - -## mapExtractValueLike {#mapextractvaluelike} - -Получив map со строковыми значениями и шаблоном LIKE, функция возвращает map с элементами, чьи значения соответствуют этому шаблону. - -**Синтаксис** - -```sql -mapExtractValueLike(map, pattern) -``` - -**Аргументы** - -* `map` — Map. [Map](../data-types/map.md). -* `pattern` - Строковый шаблон для сопоставления. - -**Возвращаемое значение** - -* Map, содержащая элементы, значения которых соответствуют указанному шаблону. Если ни один элемент не соответствует шаблону, возвращается пустая Map. - -**Пример** - -Запрос: - -```sql -CREATE TABLE tab (a Map(String, String)) ENGINE = Memory; - -INSERT INTO tab VALUES ({'abc':'abc','def':'def'}), ({'hij':'hij','klm':'klm'}); - -SELECT mapExtractValueLike(a, 'a%') FROM tab; -``` - -Результат: - -```text -┌─mapExtractValueLike(a, 'a%')─┐ -│ {'abc':'abc'} │ -│ {} │ -└──────────────────────────────┘ -``` - -## mapApply {#mapapply} - -Применяет функцию к каждому элементу карты. - -**Синтаксис** - -```sql -mapApply(func, map) -``` - -**Аргументы** - -* `func` — [lambda-функция](/sql-reference/functions/overview#higher-order-functions). -* `map` — [Map](../data-types/map.md). - -**Возвращаемое значение** - -* Возвращает объект Map, полученный из исходного объекта Map путём применения `func(map1[i], ..., mapN[i])` к каждому элементу. - -**Пример** - -Запрос: - -```sql -SELECT mapApply((k, v) -> (k, v * 10), _map) AS r -FROM -( - SELECT map('key1', number, 'key2', number * 2) AS _map - FROM numbers(3) -) -``` - -Результат: - -```text -┌─r─────────────────────┐ -│ {'key1':0,'key2':0} │ -│ {'key1':10,'key2':20} │ -│ {'key1':20,'key2':40} │ -└───────────────────────┘ -``` - -## mapFilter {#mapfilter} - -Фильтрует map, применяя функцию к каждому элементу карты. - -**Синтаксис** - -```sql -mapFilter(func, map) -``` - -**Аргументы** - -* `func` - [лямбда-функция](/sql-reference/functions/overview#higher-order-functions). -* `map` — [Map](../data-types/map.md). - -**Возвращаемое значение** - -* Возвращает map, содержащий только те элементы из `map`, для которых `func(map1[i], ..., mapN[i])` возвращает значение, не равное 0. - -**Пример** - -Запрос: - -```sql -SELECT mapFilter((k, v) -> ((v % 2) = 0), _map) AS r -FROM -( - SELECT map('key1', number, 'key2', number * 2) AS _map - FROM numbers(3) -) -``` - -Результат: - -```text -┌─r───────────────────┐ -│ {'key1':0,'key2':0} │ -│ {'key2':2} │ -│ {'key1':2,'key2':4} │ -└─────────────────────┘ -``` - -## mapUpdate {#mapupdate} - -**Синтаксис** - -```sql -mapUpdate(map1, map2) -``` - -**Аргументы** - -* `map1` [Map](../data-types/map.md). -* `map2` [Map](../data-types/map.md). - -**Возвращаемое значение** - -* Возвращает `map1` с обновлёнными значениями для соответствующих ключей из `map2`. - -**Пример** - -Запрос: - -```sql -SELECT mapUpdate(map('key1', 0, 'key3', 0), map('key1', 10, 'key2', 10)) AS map; -``` - -Результат: - -```text -┌─map────────────────────────────┐ -│ {'key3':0,'key1':10,'key2':10} │ -└────────────────────────────────┘ -``` - -## mapConcat {#mapconcat} - -Объединяет несколько map на основе совпадения их ключей. -Если элементы с одинаковым ключом присутствуют более чем в одной входной map, все элементы добавляются в результирующую map, но только первый элемент доступен через оператор `[]`. - -**Синтаксис** - -```sql -mapConcat(maps) -``` - -**Аргументы** - -* `maps` – Произвольное количество значений типа [Map](../data-types/map.md). - -**Возвращаемое значение** - -* Возвращает значение типа Map, полученное объединением карт, переданных в качестве аргументов. - -**Примеры** - -Запрос: - -```sql -SELECT mapConcat(map('key1', 1, 'key3', 3), map('key2', 2)) AS map; -``` - -Результат: - -```text -┌─map──────────────────────────┐ -│ {'key1':1,'key3':3,'key2':2} │ -└──────────────────────────────┘ -``` - -Запрос: - -```sql -SELECT mapConcat(map('key1', 1, 'key2', 2), map('key1', 3)) AS map, map['key1']; -``` - -Результат: - -```text -┌─map──────────────────────────┬─elem─┐ -│ {'key1':1,'key2':2,'key1':3} │ 1 │ -└──────────────────────────────┴──────┘ -``` - -## mapExists([func,], map) {#mapexistsfunc-map} - -Возвращает 1, если в `map` есть хотя бы одна пара ключ-значение, для которой `func(key, value)` возвращает что-либо, отличное от 0. В противном случае возвращает 0. - -:::note -`mapExists` — [функция высшего порядка](/sql-reference/functions/overview#higher-order-functions). -Вы можете передать ей лямбда-функцию в качестве первого аргумента. -::: - -**Пример** - -Запрос: - -```sql -SELECT mapExists((k, v) -> (v = 1), map('k1', 1, 'k2', 2)) AS res -``` - -Результат: - -```response -┌─res─┐ -│ 1 │ -└─────┘ -``` - -## mapAll([func,] map) {#mapallfunc-map} - -Возвращает 1, если `func(key, value)` возвращает значение, отличное от 0, для всех пар «ключ–значение» в `map`. В противном случае возвращает 0. - -:::note -Обратите внимание, что `mapAll` — это [функция высшего порядка](/sql-reference/functions/overview#higher-order-functions). -В качестве первого аргумента ей можно передать лямбда-функцию. -::: - -**Пример** - -Запрос: - -```sql -SELECT mapAll((k, v) -> (v = 1), map('k1', 1, 'k2', 2)) AS res -``` - -Результат: - -```response -┌─res─┐ -│ 0 │ -└─────┘ -``` - -## mapSort([func,], map) {#mapsortfunc-map} - -Сортирует элементы карты по возрастанию. -Если указана функция `func`, порядок сортировки определяется результатом применения `func` к ключам и значениям карты. - -**Примеры** - -```sql -SELECT mapSort(map('key2', 2, 'key3', 1, 'key1', 3)) AS map; -``` - -```text -┌─map──────────────────────────┐ -│ {'key1':3,'key2':2,'key3':1} │ -└──────────────────────────────┘ -``` - -```sql -SELECT mapSort((k, v) -> v, map('key2', 2, 'key3', 1, 'key1', 3)) AS map; -``` - -```text -┌─map──────────────────────────┐ -│ {'key3':1,'key2':2,'key1':3} │ -└──────────────────────────────┘ -``` - -Подробнее см. [справочник](/sql-reference/functions/array-functions#arraySort) по функции `arraySort`. - -## mapPartialSort {#mappartialsort} - -Сортирует элементы карты в порядке возрастания с дополнительным аргументом `limit`, который позволяет выполнять частичную сортировку. -Если указана функция `func`, порядок сортировки определяется результатом применения функции `func` к ключам и значениям карты. - -**Синтаксис** - -```sql -mapPartialSort([func,] limit, map) -``` - -**Аргументы** - -* `func` – необязательная функция, применяемая к ключам и значениям отображения. [Lambda function](/sql-reference/functions/overview#higher-order-functions). -* `limit` – количество элементов, которые будут отсортированы (элементы с позициями в диапазоне [1..limit]). [(U)Int](../data-types/int-uint.md). -* `map` – отображение для сортировки. [Map](../data-types/map.md). - -**Возвращаемое значение** - -* Частично отсортированное отображение. [Map](../data-types/map.md). - -**Пример** - -```sql -SELECT mapPartialSort((k, v) -> v, 2, map('k1', 3, 'k2', 1, 'k3', 2)); -``` - -```text -┌─mapPartialSort(lambda(tuple(k, v), v), 2, map('k1', 3, 'k2', 1, 'k3', 2))─┐ -│ {'k2':1,'k3':2,'k1':3} │ -└───────────────────────────────────────────────────────────────────────────┘ -``` - -## mapReverseSort([func,], map) {#mapreversesortfunc-map} - -Сортирует элементы map в порядке убывания. -Если указана функция `func`, порядок сортировки определяется результатом её применения к ключам и значениям map. - -**Примеры** - -```sql -SELECT mapReverseSort(map('key2', 2, 'key3', 1, 'key1', 3)) AS map; -``` - -```text -┌─map──────────────────────────┐ -│ {'key3':1,'key2':2,'key1':3} │ -└──────────────────────────────┘ -``` - -```sql -SELECT mapReverseSort((k, v) -> v, map('key2', 2, 'key3', 1, 'key1', 3)) AS map; -``` - -```text -┌─map──────────────────────────┐ -│ {'key1':3,'key2':2,'key3':1} │ -└──────────────────────────────┘ -``` - -Подробнее см. функцию [arrayReverseSort](/sql-reference/functions/array-functions#arrayReverseSort). - -## mapPartialReverseSort {#mappartialreversesort} - -Сортирует элементы map в порядке убывания с дополнительным аргументом `limit`, позволяющим выполнять частичную сортировку. -Если указана функция `func`, порядок сортировки определяется результатом функции `func`, применённой к ключам и значениям map. - -**Синтаксис** - -```sql -mapPartialReverseSort([func,] limit, map) -``` - -**Аргументы** - -* `func` – необязательная функция, применяемая к ключам и значениям map. [Lambda function](/sql-reference/functions/overview#higher-order-functions). -* `limit` – сортируются элементы с индексами в диапазоне [1..limit]. [(U)Int](../data-types/int-uint.md). -* `map` – объект типа Map для сортировки. [Map](../data-types/map.md). - -**Возвращаемое значение** - -* Частично отсортированный объект типа Map. [Map](../data-types/map.md). - -**Пример** - -```sql -SELECT mapPartialReverseSort((k, v) -> v, 2, map('k1', 3, 'k2', 1, 'k3', 2)); -``` - -```text -┌─mapPartialReverseSort(lambda(tuple(k, v), v), 2, map('k1', 3, 'k2', 1, 'k3', 2))─┐ -│ {'k1':3,'k3':2,'k2':1} │ -└──────────────────────────────────────────────────────────────────────────────────┘ -``` - {/* Содержимое тегов ниже заменяется во время сборки фреймворка документации документацией, сгенерированной на основе system.functions. Пожалуйста, не изменяйте и не удаляйте эти теги. diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/limit.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/limit.md index 6a7f51c27e7..fb57b6283ae 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/limit.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/limit.md @@ -68,7 +68,7 @@ LIMIT n, m :::note - Дробные значения должны иметь тип [Float64](../../data-types/float.md) и быть больше 0 и меньше 1. -- Дробные количества строк округляются до ближайшего целого числа. +- Дробные количества строк округляются до следующего целого числа в большую сторону. ::: ## Комбинирование типов ограничений {#combining-limit-types} diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md index 46a15969173..83e309045d8 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md @@ -30,8 +30,8 @@ SYSTEM RELOAD DICTIONARIES [ON CLUSTER cluster_name] ## SYSTEM RELOAD DICTIONARY {#reload-dictionary} -Полностью перезагружает словарь `dictionary_name` независимо от его состояния (LOADED / NOT_LOADED / FAILED). -Всегда возвращает значение `Ok.` независимо от результата обновления словаря. +Полностью перезагружает словарь `dictionary_name` вне зависимости от его состояния (LOADED / NOT_LOADED / FAILED). +Всегда возвращает `Ok.` независимо от того, удалось обновить словарь или нет. ```sql SYSTEM RELOAD DICTIONARY [ON CLUSTER cluster_name] dictionary_name @@ -43,10 +43,11 @@ SYSTEM RELOAD DICTIONARY [ON CLUSTER cluster_name] dictionary_name SELECT name, status FROM system.dictionaries; ``` + ## SYSTEM RELOAD MODELS {#reload-models} :::note -Этот оператор и `SYSTEM RELOAD MODEL` лишь выгружают модели CatBoost из clickhouse-library-bridge. Функция `catboostEvaluate()` +Эта команда и `SYSTEM RELOAD MODEL` только выгружают модели CatBoost из clickhouse-library-bridge. Функция `catboostEvaluate()` загружает модель при первом обращении, если она ещё не загружена. ::: @@ -58,9 +59,10 @@ SELECT name, status FROM system.dictionaries; SYSTEM RELOAD MODELS [ON CLUSTER cluster_name] ``` + ## SYSTEM RELOAD MODEL {#reload-model} -Перезагружает модель CatBoost, расположенную по пути `model_path`. +Выгружает модель CatBoost, расположенную по пути `model_path`. **Синтаксис** @@ -68,9 +70,10 @@ SYSTEM RELOAD MODELS [ON CLUSTER cluster_name] SYSTEM RELOAD MODEL [ON CLUSTER cluster_name] ``` + ## SYSTEM RELOAD FUNCTIONS {#reload-functions} -Перезагружает все зарегистрированные [исполняемые пользовательские функции](/sql-reference/functions/udf#executable-user-defined-functions) или одну из них из файла конфигурации. +Перезагружает все зарегистрированные [исполняемые пользовательские функции](/sql-reference/functions/udf#executable-user-defined-functions) или одну из них из конфигурационного файла. **Синтаксис** @@ -79,19 +82,21 @@ SYSTEM RELOAD FUNCTIONS [ON CLUSTER cluster_name] SYSTEM RELOAD FUNCTION [ON CLUSTER cluster_name] function_name ``` + ## SYSTEM RELOAD ASYNCHRONOUS METRICS {#reload-asynchronous-metrics} -Повторно вычисляет все [асинхронные метрики](../../operations/system-tables/asynchronous_metrics.md). Поскольку асинхронные метрики периодически обновляются на основе настройки [asynchronous_metrics_update_period_s](../../operations/server-configuration-parameters/settings.md), их ручное обновление с помощью этого оператора, как правило, не требуется. +Повторно вычисляет все [асинхронные метрики](../../operations/system-tables/asynchronous_metrics.md). Поскольку асинхронные метрики периодически обновляются на основе настройки [asynchronous_metrics_update_period_s](../../operations/server-configuration-parameters/settings.md), их ручное обновление с помощью этой команды, как правило, не требуется. ```sql SYSTEM RELOAD ASYNCHRONOUS METRICS [ON CLUSTER cluster_name] ``` + ## SYSTEM DROP DNS CACHE {#drop-dns-cache} -Очищает внутренний DNS‑кеш ClickHouse. Иногда (для старых версий ClickHouse) при изменении инфраструктуры, например при изменении IP-адреса другого сервера ClickHouse или сервера, используемого словарями, необходимо использовать эту команду. +Очищает внутренний DNS‑кэш ClickHouse. Иногда, в старых версиях ClickHouse, при изменении инфраструктуры (например, при смене IP‑адреса другого сервера ClickHouse или сервера, используемого словарями) необходимо использовать эту команду. -Для более удобного (автоматического) управления кешем см. параметры `disable_internal_dns_cache`, `dns_cache_max_entries`, `dns_cache_update_period`. +Для более удобного (автоматического) управления кэшем см. параметры `disable_internal_dns_cache`, `dns_cache_max_entries`, `dns_cache_update_period`. ## SYSTEM DROP MARK CACHE {#drop-mark-cache} @@ -101,22 +106,16 @@ SYSTEM RELOAD ASYNCHRONOUS METRICS [ON CLUSTER cluster_name] Очищает кеш метаданных Iceberg. -## SYSTEM DROP TEXT INDEX DICTIONARY CACHE {#drop-text-index-dictionary-cache} - -Очищает кеш словаря текстового индекса. - -## SYSTEM DROP TEXT INDEX HEADER CACHE {#drop-text-index-header-cache} - -Очищает кеш заголовков текстового индекса. - -## SYSTEM DROP TEXT INDEX POSTINGS CACHE {#drop-text-index-postings-cache} - -Очищает кеш списков вхождений текстового индекса. - ## SYSTEM DROP TEXT INDEX CACHES {#drop-text-index-caches} Очищает кеш заголовков текстового индекса, кеш словаря и кеш постингов. +Если вы хотите очистить один из этих кешей по отдельности, выполните: + +- `SYSTEM DROP TEXT INDEX HEADER CACHE`, +- `SYSTEM DROP TEXT INDEX DICTIONARY CACHE` или +- `SYSTEM DROP TEXT INDEX POSTINGS CACHE` + ## SYSTEM DROP REPLICA {#drop-replica} Неактивные реплики таблиц `ReplicatedMergeTree` можно удалить с помощью следующего синтаксиса: @@ -137,7 +136,7 @@ SYSTEM DROP REPLICA 'replica_name' FROM ZKPATH '/path/to/table/in/zk'; ## SYSTEM DROP DATABASE REPLICA {#drop-database-replica} -"Мёртвые" реплики баз данных `Replicated` можно удалить с помощью следующего синтаксиса: +Мёртвые реплики баз данных типа `Replicated` можно удалить с помощью следующего синтаксиса: ```sql SYSTEM DROP DATABASE REPLICA 'replica_name' [FROM SHARD 'shard_name'] FROM DATABASE database; @@ -145,12 +144,13 @@ SYSTEM DROP DATABASE REPLICA 'replica_name' [FROM SHARD 'shard_name']; SYSTEM DROP DATABASE REPLICA 'replica_name' [FROM SHARD 'shard_name'] FROM ZKPATH '/path/to/table/in/zk'; ``` -Аналогично `SYSTEM DROP REPLICA`, но удаляет путь реплики базы данных `Replicated` из Zookeeper в случае, когда отсутствует база данных, для которой можно выполнить `DROP DATABASE`. Обратите внимание, что эта команда не удаляет реплики `ReplicatedMergeTree` (поэтому вам может понадобиться также `SYSTEM DROP REPLICA`). Имена сегмента и реплики — это имена, указанные в аргументах движка `Replicated` при создании базы данных. Также эти имена можно получить из столбцов `database_shard_name` и `database_replica_name` в `system.clusters`. Если предложение `FROM SHARD` опущено, то `replica_name` должен быть полным именем реплики в формате `shard_name|replica_name`. +Аналогично `SYSTEM DROP REPLICA`, но удаляет путь реплики базы данных `Replicated` из ZooKeeper, когда нет базы данных, к которой можно применить `DROP DATABASE`. Обратите внимание, что эта команда не удаляет реплики `ReplicatedMergeTree` (поэтому вам также может понадобиться `SYSTEM DROP REPLICA`). Имена сегмента и реплики — это имена, которые были указаны в аргументах движка `Replicated` при создании базы данных. Также эти имена можно получить из столбцов `database_shard_name` и `database_replica_name` в `system.clusters`. Если предложение `FROM SHARD` отсутствует, то `replica_name` должен быть полным именем реплики в формате `shard_name|replica_name`. + ## SYSTEM DROP UNCOMPRESSED CACHE {#drop-uncompressed-cache} -Очищает кеш несжатых данных. -Кеш несжатых данных включается или отключается с помощью настройки на уровне запроса/USER/профиля [`use_uncompressed_cache`](../../operations/settings/settings.md#use_uncompressed_cache). +Очищает кэш несжатых данных. +Кэш несжатых данных включается и отключается с помощью настройки на уровне запроса, USER или профиля [`use_uncompressed_cache`](../../operations/settings/settings.md#use_uncompressed_cache). Его размер можно настроить с помощью серверной настройки [`uncompressed_cache_size`](../../operations/server-configuration-parameters/settings.md#uncompressed_cache_size). ## SYSTEM DROP COMPILED EXPRESSION CACHE {#drop-compiled-expression-cache} @@ -174,54 +174,58 @@ SYSTEM DROP QUERY CACHE TAG '' ## SYSTEM DROP FORMAT SCHEMA CACHE {#system-drop-schema-format} -Очищает кеш схем, загружаемых из [`format_schema_path`](../../operations/server-configuration-parameters/settings.md#format_schema_path). +Очищает кэш для схем, загруженных из [`format_schema_path`](../../operations/server-configuration-parameters/settings.md#format_schema_path). Поддерживаемые варианты: -* Protobuf: Удаляет импортированные определения сообщений Protobuf из памяти. -* Files: Удаляет локально кешированные файлы схем в [`format_schema_path`](../../operations/server-configuration-parameters/settings.md#format_schema_path), которые генерируются, когда `format_schema_source` имеет значение `query`. - Примечание: если цель не задана, очищаются оба кеша. +* Protobuf: Удаляет из памяти импортированные определения сообщений Protobuf. +* Files: Удаляет из кэша локально сохранённые файлы схем в [`format_schema_path`](../../operations/server-configuration-parameters/settings.md#format_schema_path), которые были сгенерированы, когда для `format_schema_source` установлено значение `query`. + Примечание: если вариант не указан, оба кэша очищаются. ```sql SYSTEM DROP FORMAT SCHEMA CACHE [FOR Protobuf/Files] ``` + ## SYSTEM FLUSH LOGS {#flush-logs} -Сбрасывает буферизованные сообщения журнала в системные таблицы, например system.query_log. Полезна в основном для отладки, так как большинство системных таблиц имеют интервал сброса по умолчанию 7,5 секунды. -Также создаёт системные таблицы, даже если очередь сообщений пуста. +Сбрасывает буферизованные сообщения журнала в системные таблицы, например system.query_log. В основном полезно для отладки, так как большинство системных таблиц имеют интервал сброса по умолчанию 7,5 секунды. +Команда также создаёт системные таблицы, даже если очередь сообщений пуста. ```sql SYSTEM FLUSH LOGS [ON CLUSTER cluster_name] [log_name|[database.table]] [, ...] ``` -Если вы не хотите сбрасывать всё сразу, вы можете сбросить один или несколько отдельных логов, передав их имя или имя целевой таблицы: +Если не требуется сбрасывать все логи, можно сбросить один или несколько отдельных, указав либо их имя, либо целевую таблицу: ```sql SYSTEM FLUSH LOGS query_log, system.query_views_log; ``` + ## SYSTEM RELOAD CONFIG {#reload-config} -Перезагружает конфигурацию ClickHouse. Используется, когда конфигурация хранится в Zookeeper. Обратите внимание, что `SYSTEM RELOAD CONFIG` не перезагружает конфигурацию пользователей (`USER`), хранящуюся в Zookeeper; он перезагружает только конфигурацию пользователей (`USER`), которая хранится в `users.xml`. Чтобы перезагрузить всю конфигурацию пользователей (`USER`), используйте `SYSTEM RELOAD USERS`. +Перезагружает конфигурацию ClickHouse. Используется, когда конфигурация хранится в ZooKeeper. Обратите внимание, что `SYSTEM RELOAD CONFIG` не перезагружает конфигурацию `USER`, хранящуюся в ZooKeeper, а только конфигурацию `USER`, которая хранится в `users.xml`. Чтобы перезагрузить всю конфигурацию `USER`, используйте `SYSTEM RELOAD USERS`. ```sql SYSTEM RELOAD CONFIG [ON CLUSTER cluster_name] ``` + ## SYSTEM RELOAD USERS {#reload-users} -Перезагружает все хранилища управления доступом, включая users.xml, локальное дисковое хранилище управления доступом и реплицируемое хранилище управления доступом (в Zookeeper). +Перезагружает все хранилища доступа, включая users.xml, хранилище доступа на локальном диске и реплицируемое (в ZooKeeper) хранилище доступа. ```sql SYSTEM RELOAD USERS [ON CLUSTER cluster_name] ``` -## ОСТАНОВКА СИСТЕМЫ {#shutdown} + +## SYSTEM SHUTDOWN {#shutdown} -Стандартным образом останавливает ClickHouse (как `service clickhouse-server stop` / `kill {$pid_clickhouse-server}`) +Обычно завершает работу сервера ClickHouse (аналогично `service clickhouse-server stop` / `kill {$pid_clickhouse-server}`) ## SYSTEM KILL {#kill} @@ -251,27 +255,29 @@ SYSTEM INSTRUMENT ADD FUNCTION HANDLER [PARAMETERS] #### LOG {#instrument-add-log} -Выводит переданный в качестве аргумента текст и стек вызовов при входе (`ENTRY`) или выходе (`EXIT`) из функции. +Выводит переданный в аргументе текст и стек вызовов при `ENTRY` или `EXIT` функции. ```sql -SYSTEM INSTRUMENT ADD `QueryMetricLog::startQuery` LOG ENTRY 'this is a log printed at entry' -SYSTEM INSTRUMENT ADD `QueryMetricLog::startQuery` LOG EXIT 'this is a log printed at exit' +SYSTEM INSTRUMENT ADD 'QueryMetricLog::startQuery' LOG ENTRY 'this is a log printed at entry' +SYSTEM INSTRUMENT ADD 'QueryMetricLog::startQuery' LOG EXIT 'this is a log printed at exit' ``` + #### SLEEP {#instrument-add-sleep} Приостанавливает выполнение на фиксированное число секунд при `ENTRY` или `EXIT`: ```sql -SYSTEM INSTRUMENT ADD `QueryMetricLog::startQuery` SLEEP ENTRY 0.5 +SYSTEM INSTRUMENT ADD 'QueryMetricLog::startQuery' SLEEP ENTRY 0.5 ``` -или для равномерно распределённого случайного интервала в секундах, задав минимум и максимум, разделённые пробелом: +или — для равномерно распределённого случайного интервала в секундах, указав минимум и максимум через пробел: ```sql -SYSTEM INSTRUMENT ADD `QueryMetricLog::startQuery` SLEEP ENTRY 0 1 +SYSTEM INSTRUMENT ADD 'QueryMetricLog::startQuery' SLEEP ENTRY 0 1 ``` + #### PROFILE {#instrument-add-profile} Измеряет время, прошедшее между `ENTRY` и `EXIT` функции. @@ -279,34 +285,42 @@ SYSTEM INSTRUMENT ADD `QueryMetricLog::startQuery` SLEEP ENTRY 0 1 в [Chrome Event Trace Format](../../operations/system-tables/trace_log.md#chrome-event-trace-format). ```sql -SYSTEM INSTRUMENT ADD `QueryMetricLog::startQuery` PROFILE +SYSTEM INSTRUMENT ADD 'QueryMetricLog::startQuery' PROFILE ``` + ### SYSTEM INSTRUMENT REMOVE {#instrument-remove} -Удаляет одну точку инструментирования командой: +Удаляет одну точку инструментирования с помощью: ```sql SYSTEM INSTRUMENT REMOVE ID ``` -все они с параметром `ALL`: +для удаления всех используйте параметр `ALL`: ```sql SYSTEM INSTRUMENT REMOVE ALL ``` -или набор идентификаторов из подзапроса: +набор идентификаторов из подзапроса: ```sql SYSTEM INSTRUMENT REMOVE (SELECT id FROM system.instrumentation WHERE handler = 'log') ``` -Идентификатор точки инструментирования можно получить из системной таблицы [`system.instrumentation`](../../operations/system-tables/instrumentation.md). +или все точки инструментирования, соответствующие заданному параметру `function_name`: + +```sql +SYSTEM INSTRUMENT REMOVE 'QueryMetricLog::startQuery' +``` + +Информацию о точке инструментирования можно получить из системной таблицы [`system.instrumentation`](../../operations/system-tables/instrumentation.md). + ## Управление distributed таблицами {#managing-distributed-tables} -ClickHouse может управлять [distributed](../../engines/table-engines/special/distributed.md) таблицами. Когда пользователь вставляет данные в такие таблицы, ClickHouse сначала создает очередь данных, которые должны быть отправлены на узлы кластера, после чего асинхронно отправляет их. Вы можете управлять обработкой очереди с помощью запросов [`STOP DISTRIBUTED SENDS`](#stop-distributed-sends), [FLUSH DISTRIBUTED](#flush-distributed) и [`START DISTRIBUTED SENDS`](#start-distributed-sends). Также вы можете синхронно вставлять распределённые данные с помощью настройки [`distributed_foreground_insert`](../../operations/settings/settings.md#distributed_foreground_insert). +ClickHouse может работать с [distributed](../../engines/table-engines/special/distributed.md) таблицами. При вставке данных в такие таблицы ClickHouse сначала создаёт очередь данных для отправки на узлы кластера, а затем асинхронно отправляет их. Вы можете управлять обработкой очереди с помощью запросов [`STOP DISTRIBUTED SENDS`](#stop-distributed-sends), [FLUSH DISTRIBUTED](#flush-distributed) и [`START DISTRIBUTED SENDS`](#start-distributed-sends). Вы также можете выполнять синхронную вставку данных в distributed таблицы с помощью настройки [`distributed_foreground_insert`](../../operations/settings/settings.md#distributed_foreground_insert). ### SYSTEM STOP DISTRIBUTED SENDS {#stop-distributed-sends} @@ -322,7 +336,7 @@ SYSTEM STOP DISTRIBUTED SENDS [db.] [ON CLUSTER cluster_ ### SYSTEM FLUSH DISTRIBUTED {#flush-distributed} -Выполняет принудительную синхронную отправку данных с ClickHouse на узлы кластера. Если какие-либо узлы недоступны, ClickHouse генерирует исключение и останавливает выполнение запроса. Вы можете повторно выполнять запрос до тех пор, пока он не завершится успешно, что произойдёт, когда все узлы снова станут доступными. +Принудительно инициирует синхронную отправку данных на узлы кластера в ClickHouse. Если какие-либо узлы недоступны, ClickHouse выбрасывает исключение и останавливает выполнение запроса. Вы можете повторять запрос до тех пор, пока он не выполнится успешно, то есть когда все узлы снова будут доступны. Вы также можете переопределить некоторые настройки с помощью предложения `SETTINGS` — это может быть полезно для обхода временных ограничений, таких как `max_concurrent_queries_for_all_users` или `max_memory_usage`. @@ -331,42 +345,46 @@ SYSTEM FLUSH DISTRIBUTED [db.] [ON CLUSTER cluster_name] ``` :::note -Каждый ожидающий блок хранится на диске с настройками из исходного оператора INSERT, поэтому иногда имеет смысл переопределить эти настройки. +Каждый ожидающий отправки блок хранится на диске с настройками из исходного запроса INSERT, поэтому иногда может потребоваться переопределить эти настройки. ::: + ### SYSTEM START DISTRIBUTED SENDS {#start-distributed-sends} -Включает фоновое распределение при вставке данных в distributed таблицы. +Включает фоновую отправку данных при вставке в distributed таблицы. ```sql SYSTEM START DISTRIBUTED SENDS [db.] [ON CLUSTER cluster_name] ``` + ### SYSTEM STOP LISTEN {#stop-listen} -Закрывает сокет и корректно завершает существующие соединения с сервером на указанном порту с указанным протоколом. +Закрывает сокет и корректно завершает активные подключения к серверу на указанном порту с указанным протоколом. -Однако если соответствующие настройки протокола не были указаны в конфигурации clickhouse-server, эта команда не будет иметь никакого эффекта. +Однако, если соответствующие настройки протокола не заданы в конфигурации clickhouse-server, эта команда не окажет эффекта. ```sql SYSTEM STOP LISTEN [ON CLUSTER cluster_name] [QUERIES ALL | QUERIES DEFAULT | QUERIES CUSTOM | TCP | TCP WITH PROXY | TCP SECURE | HTTP | HTTPS | MYSQL | GRPC | POSTGRESQL | PROMETHEUS | CUSTOM 'protocol'] ``` -* Если указан модификатор `CUSTOM 'protocol'`, останавливается пользовательский протокол с указанным именем, определённый в секции `protocols` конфигурации сервера. -* Если указан модификатор `QUERIES ALL [EXCEPT .. [,..]]`, останавливаются все протоколы, если они не указаны в секции `EXCEPT`. -* Если указан модификатор `QUERIES DEFAULT [EXCEPT .. [,..]]`, останавливаются все протоколы по умолчанию, если они не указаны в секции `EXCEPT`. -* Если указан модификатор `QUERIES CUSTOM [EXCEPT .. [,..]]`, останавливаются все пользовательские протоколы, если они не указаны в секции `EXCEPT`. +* Если указан модификатор `CUSTOM 'protocol'`, будет остановлен пользовательский протокол с указанным именем, определённый в разделе `protocols` конфигурации сервера. +* Если указан модификатор `QUERIES ALL [EXCEPT .. [,..]]`, будут остановлены все протоколы, за исключением протоколов, перечисленных в выражении `EXCEPT`. +* Если указан модификатор `QUERIES DEFAULT [EXCEPT .. [,..]]`, будут остановлены все протоколы по умолчанию, за исключением протоколов, перечисленных в выражении `EXCEPT`. +* Если указан модификатор `QUERIES CUSTOM [EXCEPT .. [,..]]`, будут остановлены все пользовательские протоколы, за исключением протоколов, перечисленных в выражении `EXCEPT`. + ### SYSTEM START LISTEN {#start-listen} -Разрешает устанавливать новые подключения по указанным протоколам. +Включает приём новых подключений по указанным протоколам. -Однако если сервер на указанном порту и протоколе не был остановлен с помощью команды SYSTEM STOP LISTEN, эта команда не будет иметь никакого эффекта. +Однако если сервер на указанном порту и протоколе не был остановлен с помощью команды SYSTEM STOP LISTEN, эта команда не будет иметь эффекта. ```sql SYSTEM START LISTEN [ON CLUSTER cluster_name] [QUERIES ALL | QUERIES DEFAULT | QUERIES CUSTOM | TCP | TCP WITH PROXY | TCP SECURE | HTTP | HTTPS | MYSQL | GRPC | POSTGRESQL | PROMETHEUS | CUSTOM 'protocol'] ``` + ## Управление таблицами MergeTree {#managing-mergetree-tables} ClickHouse может управлять фоновыми процессами в таблицах [MergeTree](../../engines/table-engines/mergetree-family/mergetree.md). @@ -389,67 +407,74 @@ SYSTEM STOP MERGES [ON CLUSTER cluster_name] [ON VOLUME | [db.]mer -Позволяет запустить фоновые слияния для таблиц семейства MergeTree: +Команда позволяет запускать фоновые слияния для таблиц семейства MergeTree: ```sql SYSTEM START MERGES [ON CLUSTER cluster_name] [ON VOLUME | [db.]merge_tree_family_table_name] ``` + ### SYSTEM STOP TTL MERGES {#stop-ttl-merges} -Позволяет остановить фоновое удаление старых данных согласно [выражению TTL](../../engines/table-engines/mergetree-family/mergetree.md#table_engine-mergetree-ttl) для таблиц семейства MergeTree: -Возвращает `Ok.` даже если таблица не существует или у неё движок, отличный от MergeTree. Возвращает ошибку, если база данных не существует: +Позволяет остановить фоновое удаление старых данных в соответствии с [выражением TTL](../../engines/table-engines/mergetree-family/mergetree.md#table_engine-mergetree-ttl) для таблиц семейства MergeTree. +Возвращает `Ok.` даже если таблица не существует или таблица не использует движок MergeTree. Возвращает ошибку, если база данных не существует. ```sql SYSTEM STOP TTL MERGES [ON CLUSTER cluster_name] [[db.]merge_tree_family_table_name] ``` + ### SYSTEM START TTL MERGES {#start-ttl-merges} -Позволяет запустить фоновое удаление старых данных согласно [выражению TTL](../../engines/table-engines/mergetree-family/mergetree.md#table_engine-mergetree-ttl) для таблиц семейства MergeTree. -Возвращает `Ok.` даже если таблица не существует. Возвращает ошибку, если база данных не существует: +Позволяет запустить фоновое удаление устаревших данных в соответствии с [выражением TTL](../../engines/table-engines/mergetree-family/mergetree.md#table_engine-mergetree-ttl) для таблиц семейства MergeTree. +Возвращает `Ok.` даже если таблица не существует. Возвращает ошибку, если база данных не существует. ```sql SYSTEM START TTL MERGES [ON CLUSTER cluster_name] [[db.]merge_tree_family_table_name] ``` + ### SYSTEM STOP MOVES {#stop-moves} -Предоставляет возможность остановить фоновые перемещения данных согласно [TTL-выражению таблицы с предложением TO VOLUME или TO DISK](../../engines/table-engines/mergetree-family/mergetree.md#mergetree-table-ttl) для таблиц семейства MergeTree. -Возвращает `Ok.` даже если таблица не существует. Возвращает ошибку, когда база данных не существует: +Позволяет остановить фоновое перемещение данных в соответствии с [TTL-выражением таблицы с оператором TO VOLUME или TO DISK](../../engines/table-engines/mergetree-family/mergetree.md#mergetree-table-ttl) для таблиц семейства MergeTree: +Возвращает `Ok.` даже если таблица не существует. Возвращает ошибку, если база данных не существует: ```sql SYSTEM STOP MOVES [ON CLUSTER cluster_name] [[db.]merge_tree_family_table_name] ``` + ### SYSTEM START MOVES {#start-moves} -Позволяет запустить фоновое перемещение данных согласно [TTL-выражению таблицы с операторами TO VOLUME и TO DISK](../../engines/table-engines/mergetree-family/mergetree.md#mergetree-table-ttl) для таблиц семейства MergeTree. -Возвращает `Ok.` даже если таблица не существует. Возвращает ошибку, если база данных не существует: +Предоставляет возможность запустить фоновое перемещение данных в соответствии с [TTL-выражением таблицы с предложениями TO VOLUME и TO DISK](../../engines/table-engines/mergetree-family/mergetree.md#mergetree-table-ttl) для таблиц семейства MergeTree. +Возвращает `Ok.` даже в случае, если таблица не существует. Возвращает ошибку, если база данных не существует. ```sql SYSTEM START MOVES [ON CLUSTER cluster_name] [[db.]merge_tree_family_table_name] ``` + ### SYSTEM SYSTEM UNFREEZE {#query_language-system-unfreeze} -Удаляет замороженную резервную копию с указанным именем со всех дисков. Подробнее о разморозке отдельных частей см. в [ALTER TABLE table_name UNFREEZE WITH NAME ](/sql-reference/statements/alter/partition#unfreeze-partition). +Очищает замороженный бэкап с указанным именем на всех дисках. Подробнее о разморозке отдельных частей см. в [ALTER TABLE table_name UNFREEZE WITH NAME ](/sql-reference/statements/alter/partition#unfreeze-partition) ```sql SYSTEM UNFREEZE WITH NAME ``` + ### SYSTEM WAIT LOADING PARTS {#wait-loading-parts} -Ожидает завершения загрузки всех асинхронно загружаемых частей данных таблицы (устаревших частей данных). +Ожидает, пока все асинхронно загружаемые части таблицы (устаревшие части данных) не будут загружены. ```sql SYSTEM WAIT LOADING PARTS [ON CLUSTER cluster_name] [db.]merge_tree_family_table_name ``` + ## Управление таблицами ReplicatedMergeTree {#managing-replicatedmergetree-tables} -ClickHouse может управлять процессами репликации в фоновом режиме в таблицах [ReplicatedMergeTree](/engines/table-engines/mergetree-family/replication). +ClickHouse может управлять процессами фоновой репликации в таблицах [ReplicatedMergeTree](/engines/table-engines/mergetree-family/replication). ### SYSTEM STOP FETCHES {#stop-fetches} @@ -466,80 +491,88 @@ SYSTEM STOP FETCHES [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family -Позволяет запустить фоновые загрузки вставленных частей для таблиц семейства `ReplicatedMergeTree`: +Предоставляет возможность запустить фоновые операции FETCH для вставленных частей в таблицах семейства `ReplicatedMergeTree`. Всегда возвращает `Ok.` независимо от движка таблицы и даже если таблица или база данных не существует. ```sql SYSTEM START FETCHES [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name] ``` + ### SYSTEM STOP REPLICATED SENDS {#stop-replicated-sends} -Позволяет остановить фоновую отправку новых вставленных кусков данных другим репликам в кластере для таблиц семейства `ReplicatedMergeTree`: +Позволяет остановить фоновую отправку на другие реплики в кластере новых частей, вставляемых в таблицы семейства `ReplicatedMergeTree`: ```sql SYSTEM STOP REPLICATED SENDS [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name] ``` + ### SYSTEM START REPLICATED SENDS {#start-replicated-sends} -Позволяет запустить фоновую отправку новых вставленных кусков данных другим репликам в кластере для таблиц семейства `ReplicatedMergeTree`: +Позволяет запустить фоновые отправки новых вставленных частей другим репликам кластера для таблиц семейства `ReplicatedMergeTree`: ```sql SYSTEM START REPLICATED SENDS [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name] ``` + ### SYSTEM STOP REPLICATION QUEUES {#stop-replication-queues} -Предоставляет возможность остановить выполнение фоновых задач выборки данных из очередей репликации в ZooKeeper для таблиц семейства `ReplicatedMergeTree`. Типы возможных фоновых задач: слияния, выборки, мутации, DDL-команды с предложением ON CLUSTER: +Позволяет остановить фоновые задачи выборки из очередей репликации, которые хранятся в ZooKeeper для таблиц семейства `ReplicatedMergeTree`. Возможные типы фоновых задач — слияния, выборки, мутации, DDL-команды с предложением ON CLUSTER: ```sql SYSTEM STOP REPLICATION QUEUES [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name] ``` + ### SYSTEM START REPLICATION QUEUES {#start-replication-queues} -Предоставляет возможность запускать фоновые задачи выборки из очередей репликации, которые хранятся в ZooKeeper, для таблиц семейства `ReplicatedMergeTree`. Возможные типы фоновых задач — слияния, выборки, мутации, DDL-команды с предложением ON CLUSTER: +Позволяет запустить фоновые задачи выборки из очередей репликации, которые хранятся в ZooKeeper для таблиц семейства `ReplicatedMergeTree`. Возможные типы фоновых задач — слияния, выборки, мутации, DDL‑команды с предложением ON CLUSTER: ```sql SYSTEM START REPLICATION QUEUES [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name] ``` + ### SYSTEM STOP PULLING REPLICATION LOG {#stop-pulling-replication-log} -Останавливает загрузку новых записей из журнала репликации в очередь репликации таблицы `ReplicatedMergeTree`. +Прекращает чтение новых записей из журнала репликации и помещение их в очередь репликации в таблице `ReplicatedMergeTree`. ```sql SYSTEM STOP PULLING REPLICATION LOG [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name] ``` + ### SYSTEM START PULLING REPLICATION LOG {#start-pulling-replication-log} -Отменяет действие команды `SYSTEM STOP PULLING REPLICATION LOG`. +Отменяет команду `SYSTEM STOP PULLING REPLICATION LOG`. ```sql SYSTEM START PULLING REPLICATION LOG [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name] ``` + ### SYSTEM SYNC REPLICA {#sync-replica} -Ожидает, пока таблица `ReplicatedMergeTree` не будет синхронизирована с другими репликами в кластере, но не дольше, чем `receive_timeout` секунд. +Ожидает синхронизации таблицы `ReplicatedMergeTree` с другими репликами в кластере, но не более `receive_timeout` секунд. ```sql SYSTEM SYNC REPLICA [ON CLUSTER cluster_name] [db.]replicated_merge_tree_family_table_name [IF EXISTS] [STRICT | LIGHTWEIGHT [FROM 'srcReplica1'[, 'srcReplica2'[, ...]]] | PULL] ``` -После выполнения этого оператора таблица `[db.]replicated_merge_tree_family_table_name` извлекает команды из общего реплицируемого лога в свою собственную очередь репликации, после чего оператор ожидает, пока реплика обработает все извлечённые команды. Поддерживаются следующие модификаторы: +После выполнения этого оператора `[db.]replicated_merge_tree_family_table_name` загружает команды из общего журнала репликации в свою собственную очередь репликации, после чего запрос ожидает, пока реплика обработает все полученные команды. Поддерживаются следующие модификаторы: + +* С модификатором `IF EXISTS` (доступен начиная с 25.6) запрос не будет выдавать ошибку, если таблица не существует. Это полезно при добавлении новой реплики в кластер, когда она уже является частью конфигурации кластера, но таблица ещё находится в процессе создания и синхронизации. +* Если указан модификатор `STRICT`, то запрос ожидает, пока очередь репликации не станет пустой. Вариант `STRICT` может никогда не завершиться успешно, если в очереди репликации постоянно появляются новые записи. +* Если указан модификатор `LIGHTWEIGHT`, то запрос ожидает только обработки записей `GET_PART`, `ATTACH_PART`, `DROP_RANGE`, `REPLACE_RANGE` и `DROP_PART`. + Дополнительно модификатор `LIGHTWEIGHT` поддерживает необязательное предложение `FROM 'srcReplicas'`, где `'srcReplicas'` — это список имён исходных реплик, разделённых запятыми. Это расширение обеспечивает более точечную синхронизацию, фокусируясь только на задачах репликации, исходящих от указанных реплик-источников. +* Если указан модификатор `PULL`, то запрос подтягивает новые записи очереди репликации из ZooKeeper, но не ожидает обработки каких-либо записей. -* С `IF EXISTS` (доступно начиная с 25.6) оператор не выдаст ошибку, если таблица не существует. Это полезно при добавлении новой реплики в кластер, когда она уже является частью конфигурации кластера, но всё ещё находится в процессе создания и синхронизации таблицы. -* Если указан модификатор `STRICT`, то оператор ожидает, пока очередь репликации не станет пустой. Вариант `STRICT` может никогда не завершиться успешно, если в очередь репликации постоянно поступают новые записи. -* Если указан модификатор `LIGHTWEIGHT`, то оператор ожидает только обработки записей `GET_PART`, `ATTACH_PART`, `DROP_RANGE`, `REPLACE_RANGE` и `DROP_PART`. - Дополнительно модификатор `LIGHTWEIGHT` поддерживает необязательное предложение `FROM 'srcReplicas'`, где `srcReplicas` — это список имён исходных реплик, разделённых запятыми. Это расширение позволяет выполнять более целевую синхронизацию, фокусируясь только на задачах репликации, исходящих от указанных исходных реплик. -* Если указан модификатор `PULL`, то оператор извлекает новые записи очереди репликации из Zookeeper, но не ожидает обработки каких-либо записей. ### SYNC DATABASE REPLICA {#sync-database-replica} -Ожидает, пока указанная [реплицируемая база данных](/engines/database-engines/replicated) применит все изменения схемы из очереди DDL этой базы данных. +Ожидает, пока указанная [реплицируемая база данных](/engines/database-engines/replicated) не применит все изменения схемы из очереди DDL этой базы данных. **Синтаксис** @@ -547,31 +580,34 @@ SYSTEM SYNC REPLICA [ON CLUSTER cluster_name] [db.]replicated_merge_tree_family_ SYSTEM SYNC DATABASE REPLICA replicated_database_name; ``` + ### SYSTEM RESTART REPLICA {#restart-replica} -Предоставляет возможность повторно инициализировать состояние сессии Zookeeper для таблицы `ReplicatedMergeTree`: текущее состояние будет сверено с Zookeeper как источником истины, и при необходимости в очередь Zookeeper будут добавлены задания. Инициализация очереди репликации на основе данных Zookeeper выполняется так же, как при выполнении оператора `ATTACH TABLE`. В течение короткого времени таблица будет недоступна для любых операций. +Позволяет повторно инициализировать состояние сессии ZooKeeper для таблицы `ReplicatedMergeTree`: текущее состояние будет сопоставлено с ZooKeeper как источником истины, и при необходимости в очередь ZooKeeper будут добавлены задания. +Инициализация очереди репликации на основе данных ZooKeeper происходит так же, как для оператора `ATTACH TABLE`. В течение короткого времени таблица будет недоступна для любых операций. ```sql SYSTEM RESTART REPLICA [ON CLUSTER cluster_name] [db.]replicated_merge_tree_family_table_name ``` + ### SYSTEM RESTORE REPLICA {#restore-replica} -Восстанавливает реплику, если данные (возможно) сохранены, но метаданные Zookeeper утрачены. +Восстанавливает реплику, если данные (возможно) присутствуют, но метаданные ZooKeeper утеряны. Работает только с таблицами `ReplicatedMergeTree` в режиме только для чтения (readonly). -Команду можно выполнить после: +Запрос можно выполнить после: -- Потери корня Zookeeper `/`. -- Потери пути реплик `/replicas`. -- Потери пути отдельной реплики `/replicas/replica_name/`. +- потери корня ZooKeeper `/`; +- потери пути реплик `/replicas`; +- потери пути отдельной реплики `/replicas/replica_name/`. -Реплика присоединяет локально найденные части и отправляет информацию о них в Zookeeper. -Части, присутствующие на реплике до потери метаданных, не запрашиваются заново с других реплик, если они не устарели (поэтому восстановление реплики не означает повторную загрузку всех данных по сети). +Реплика прикрепляет локально найденные части и отправляет информацию о них в ZooKeeper. +Части, присутствовавшие на реплике до потери метаданных, не загружаются повторно с других реплик, если они не устарели (то есть восстановление реплики не означает повторную загрузку всех данных по сети). :::note -Части во всех состояниях перемещаются в папку `detached/`. Части, активные до потери данных (committed), присоединяются. +Все части во всех состояниях перемещаются в папку `detached/`. Части, которые были активны до потери данных (committed), прикрепляются. ::: ### SYSTEM RESTORE DATABASE REPLICA {#restore-database-replica} @@ -636,7 +672,7 @@ SYSTEM RESTORE REPLICA test ON CLUSTER cluster; ### SYSTEM RESTART REPLICAS {#restart-replicas} -Позволяет повторно инициализировать состояние сессий Zookeeper для всех таблиц `ReplicatedMergeTree`: текущее состояние будет сопоставлено с Zookeeper как с источником истины, и при необходимости в очередь Zookeeper будут добавлены задания. +Позволяет переинициализировать состояние сессий ZooKeeper для всех таблиц `ReplicatedMergeTree`, сравнивает текущее состояние с ZooKeeper как источником истины и при необходимости добавляет задания в очередь ZooKeeper. ### SYSTEM DROP FILESYSTEM CACHE {#drop-filesystem-cache} @@ -649,7 +685,7 @@ SYSTEM DROP FILESYSTEM CACHE [ON CLUSTER cluster_name] ### SYSTEM SYNC FILE CACHE {#sync-file-cache} :::note -Этот механизм ресурсоёмкий и может быть использован некорректно. +Операция слишком ресурсоёмкая и может быть легко использована неправильно. ::: Вызывает системный вызов sync. @@ -658,9 +694,10 @@ SYSTEM DROP FILESYSTEM CACHE [ON CLUSTER cluster_name] SYSTEM SYNC FILE CACHE [ON CLUSTER cluster_name] ``` + ### SYSTEM LOAD PRIMARY KEY {#load-primary-key} -Загружает первичные ключи для заданной таблицы или для всех таблиц. +Загрузить первичные ключи для заданной таблицы или для всех таблиц. ```sql SYSTEM LOAD PRIMARY KEY [db.]name @@ -670,9 +707,10 @@ SYSTEM LOAD PRIMARY KEY [db.]name SYSTEM LOAD PRIMARY KEY ``` + ### SYSTEM UNLOAD PRIMARY KEY {#unload-primary-key} -Выгружает первичные ключи для указанной таблицы или для всех таблиц. +Выгрузить первичные ключи для указанной таблицы или для всех таблиц. ```sql SYSTEM UNLOAD PRIMARY KEY [db.]name @@ -682,11 +720,12 @@ SYSTEM UNLOAD PRIMARY KEY [db.]name SYSTEM UNLOAD PRIMARY KEY ``` -## Управление refreshable materialized views {#refreshable-materialized-views} -Команды для управления фоновыми задачами, выполняемыми [refreshable materialized views](../../sql-reference/statements/create/view.md#refreshable-materialized-view). +## Управление Refreshable Materialized Views {#refreshable-materialized-views} -При использовании отслеживайте состояние в таблице [`system.view_refreshes`](../../operations/system-tables/view_refreshes.md). +Команды для управления фоновыми задачами, выполняемыми [Refreshable Materialized Views](../../sql-reference/statements/create/view.md#refreshable-materialized-view). + +При работе с ними отслеживайте таблицу [`system.view_refreshes`](../../operations/system-tables/view_refreshes.md). ### SYSTEM REFRESH VIEW {#refresh-view} @@ -698,7 +737,7 @@ SYSTEM REFRESH VIEW [db.]name ### SYSTEM WAIT VIEW {#wait-view} -Ожидает завершения выполняющегося обновления. Если обновление завершается с ошибкой, генерирует исключение. Если обновление не выполняется, завершает работу немедленно, генерируя исключение, если предыдущее обновление завершилось с ошибкой. +Ожидает завершения текущего обновления, выполняющегося в данный момент. Если обновление завершается с ошибкой, генерируется исключение. Если обновление не выполняется, немедленно завершает выполнение, генерируя исключение, если предыдущее обновление завершилось с ошибкой. ### SYSTEM STOP [REPLICATED] VIEW, STOP VIEWS {#stop-view-stop-views} @@ -706,6 +745,11 @@ SYSTEM REFRESH VIEW [db.]name Если представление находится в базе данных Replicated или Shared, `STOP VIEW` влияет только на текущую реплику, тогда как `STOP REPLICATED VIEW` влияет на все реплики. +:::note +Остановленное состояние не сохраняется после перезапуска сервера. После перезапуска представления возобновят выполнение настроенных расписаний обновления. +В базах данных Replicated или Shared `SYSTEM STOP VIEW` влияет только на текущую реплику. Используйте `SYSTEM STOP REPLICATED VIEW`, чтобы остановить обновления на всех репликах. +::: + ```sql SYSTEM STOP VIEW [db.]name ``` @@ -714,11 +758,12 @@ SYSTEM STOP VIEW [db.]name SYSTEM STOP VIEWS ``` + ### SYSTEM START [REPLICATED] VIEW, START VIEWS {#start-view-start-views} -Включает периодическое обновление для заданного представления или всех обновляемых представлений. Немедленное обновление не запускается. +Запускает периодическое обновление для указанного представления или для всех представлений с поддержкой обновления. Немедленное обновление при этом не выполняется. -Если представление находится в реплицируемой (Replicated) или общей (Shared) базе данных, `START VIEW` отменяет действие `STOP VIEW`, а `START REPLICATED VIEW` отменяет действие `STOP REPLICATED VIEW`. +Если представление находится в базе данных типа Replicated или Shared, `START VIEW` отменяет действие `STOP VIEW`, а `START REPLICATED VIEW` отменяет действие `STOP REPLICATED VIEW`. ```sql SYSTEM START VIEW [db.]name @@ -728,21 +773,23 @@ SYSTEM START VIEW [db.]name SYSTEM START VIEWS ``` + ### SYSTEM CANCEL VIEW {#cancel-view} -Если для указанного представления на текущей реплике выполняется обновление, прерывает и отменяет его. В противном случае ничего не делает. +Если для указанного представления на текущей реплике в данный момент выполняется обновление, команда прерывает и отменяет его; в противном случае ничего не происходит. ```sql SYSTEM CANCEL VIEW [db.]name ``` + ### SYSTEM WAIT VIEW {#system-wait-view} -Ожидает завершения выполняющегося обновления. Если обновление не выполняется, возвращает управление немедленно. Если последняя попытка обновления завершилась с ошибкой, сообщает об ошибке. +Ожидает завершения текущего обновления. Если обновление не выполняется, немедленно возвращает управление. Если последняя попытка обновления завершилась с ошибкой, генерирует ошибку. -Может использоваться сразу после создания новой refreshable materialized view (без ключевого слова EMPTY), чтобы дождаться завершения начального обновления. +Может использоваться сразу после создания нового refreshable materialized view (без ключевого слова EMPTY), чтобы дождаться завершения начального обновления. -Если view находится в базе данных Replicated или Shared, и обновление выполняется на другой реплике, ожидает завершения этого обновления. +Если представление находится в базе данных Replicated или Shared и обновление выполняется на другой реплике, ожидает завершения этого обновления. ```sql SYSTEM WAIT VIEW [db.]name diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2017.md b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2017.md index 0db69cc176e..dc483836be3 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2017.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2017.md @@ -1,11 +1,11 @@ --- slug: /whats-new/changelog/2017 -sidebar_position: 10 +sidebar_position: -2017 sidebar_label: '2017' title: 'Журнал изменений за 2017 год' description: 'Журнал изменений за 2017 год' doc_type: 'changelog' -keywords: ['ClickHouse 2017', 'журнал изменений 2017', 'заметки о выпуске', 'история версий', 'ранние релизы'] +keywords: ['ClickHouse 2017', 'журнал изменений 2017', 'заметки о выпуске', 'история версий', 'ранние релисы'] --- ### Релиз ClickHouse 1.1.54327, 2017-12-21 {#clickhouse-release-1-1-54327-2017-12-21} @@ -47,7 +47,7 @@ keywords: ['ClickHouse 2017', 'журнал изменений 2017', 'заме - Создание временных таблиц с движком, отличным от Memory, не допускается. - Явное создание таблиц с движком View или MaterializedView не допускается. -- При создании таблицы выполняется новая проверка, которая удостоверяется, что выражение выборки (sampling key) входит в первичный ключ. +- При создании таблицы выполняется новая проверка, которая подтверждает, что выражение выборки (sampling key) входит в первичный ключ. #### Исправления ошибок: {#bug-fixes} @@ -70,9 +70,7 @@ keywords: ['ClickHouse 2017', 'журнал изменений 2017', 'заме - Поддержка TLS в нативном протоколе (для включения установите `tcp_ssl_port` в `config.xml`). -#### Исправления ошибок: {#bug-fixes-1} - - +#### Bug Fixes: {#bug-fixes-1} - `ALTER` для реплицируемых таблиц теперь пытается начать выполняться как можно скорее. - Исправлен сбой при чтении данных с настройкой `preferred_block_size_bytes=0`. @@ -123,9 +121,7 @@ keywords: ['ClickHouse 2017', 'журнал изменений 2017', 'заме - Добавлена возможность задать `umask` в конфигурационном файле. - Улучшена производительность запросов с `DISTINCT`. -#### Bug Fixes: {#bug-fixes-3} - - +#### Исправления ошибок: {#bug-fixes-3} - Улучшен процесс удаления старых узлов в ZooKeeper. Ранее старые узлы иногда не удалялись при очень частых вставках, что, среди прочего, приводило к медленному завершению работы сервера. - Исправлён случайный выбор хостов для подключения к ZooKeeper. @@ -151,7 +147,7 @@ keywords: ['ClickHouse 2017', 'журнал изменений 2017', 'заме ### Релиз ClickHouse 1.1.54284, 2017-08-29 {#clickhouse-release-1-1-54284-2017-08-29} -- Это релиз с исправлениями ошибок для предыдущего релиза 1.1.54282. Исправлены утечки в каталоге частей в ZooKeeper. +- Это багфикс-релиз для предыдущей версии 1.1.54282. Исправлены утечки в каталоге частей в ZooKeeper. ### Релиз ClickHouse 1.1.54282, 2017-08-23 {#clickhouse-release-1-1-54282-2017-08-23} @@ -165,10 +161,8 @@ keywords: ['ClickHouse 2017', 'журнал изменений 2017', 'заме #### Новые возможности: {#new-features-4} - - - Добавлен необязательный раздел WITH для запроса SELECT. Пример запроса: `WITH 1+1 AS a SELECT a, a*a` -- INSERT может выполняться синхронно в таблицу типа Distributed: OK возвращается только после того, как все данные сохранены на всех шардах. Эта возможность включается настройкой insert_distributed_sync=1. +- INSERT может выполняться синхронно в таблицу типа Distributed: OK возвращается только после того, как все данные сохранены на всех сегментах. Эта возможность включается настройкой insert_distributed_sync=1. - Добавлен тип данных UUID для работы с 16-байтовыми идентификаторами. - Добавлены псевдонимы типов CHAR, FLOAT и других для совместимости с Tableau. - Добавлены функции toYYYYMM, toYYYYMMDD и toYYYYMMDDhhmmss для преобразования времени в числа. @@ -207,9 +201,7 @@ keywords: ['ClickHouse 2017', 'журнал изменений 2017', 'заме - Возможна работа с MySQL через сокет в файловой системе. - В таблицу system.parts добавлен новый столбец с информацией о размере меток (marks) в байтах. -#### Исправление ошибок: {#bug-fixes-4} - - +#### Исправленные ошибки: {#bug-fixes-4} - Распределённые таблицы, использующие таблицу Merge, теперь корректно работают для запроса SELECT с условием по полю `_table`. - Исправлено редкое состояние гонки в ReplicatedMergeTree при проверке частей данных. @@ -276,4 +268,4 @@ keywords: ['ClickHouse 2017', 'журнал изменений 2017', 'заме - Исправлен подзапрос в ORDER BY, состоящий только из константных значений. - Ранее Replicated-таблица могла оставаться в некорректном состоянии после неудачного DROP TABLE. - Псевдонимы для скалярных подзапросов с пустыми результатами больше не теряются. -- Теперь запрос, использующий компиляцию, не завершается с ошибкой, если .so-файл повреждён. +- Теперь запрос, использующий компиляцию, не завершается с ошибкой, если .so-файл повреждён. \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2018.md b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2018.md index cc837303b8a..7747de74b6c 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2018.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2018.md @@ -1,6 +1,6 @@ --- slug: /whats-new/changelog/2018 -sidebar_position: 9 +sidebar_position: -2018 sidebar_label: '2018' title: 'Список изменений за 2018 год' description: 'Список изменений за 2018 год' @@ -8,8 +8,6 @@ doc_type: 'changelog' keywords: ['ClickHouse 2018', 'список изменений 2018 года', 'заметки о выпуске', 'история версий', 'устаревшие версии'] --- - - ## Релиз ClickHouse 18.16 {#clickhouse-release-18-16} ### Релиз ClickHouse 18.16.1, 2018-12-21 {#clickhouse-release-18-16-1-2018-12-21} @@ -31,8 +29,6 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' #### Новые возможности: {#new-features} - - - Выражения `DEFAULT` вычисляются для отсутствующих полей при загрузке данных в полуструктурированные форматы ввода (`JSONEachRow`, `TSKV`). Функциональность включается настройкой `insert_sample_with_metadata`. [#3555](https://github.com/ClickHouse/ClickHouse/pull/3555) - В запросе `ALTER TABLE` теперь доступно действие `MODIFY ORDER BY` для изменения ключа сортировки при добавлении или удалении столбца таблицы. Это полезно для таблиц семейства `MergeTree`, которые выполняют дополнительные задачи при слиянии на основе этого ключа сортировки, таких как `SummingMergeTree`, `AggregatingMergeTree` и т. д. [#3581](https://github.com/ClickHouse/ClickHouse/pull/3581) [#3755](https://github.com/ClickHouse/ClickHouse/pull/3755) - Для таблиц семейства `MergeTree` теперь можно задать различные ключ сортировки (`ORDER BY`) и индекс (`PRIMARY KEY`). Ключ сортировки может быть длиннее индекса. [#3581](https://github.com/ClickHouse/ClickHouse/pull/3581) @@ -52,8 +48,6 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' #### Исправления ошибок: {#bug-fixes-1} - - * Исправления и улучшения производительности для типа данных `LowCardinality`. `GROUP BY` с использованием `LowCardinality(Nullable(...))`. Получение значений `extremes`. Обработка функций высшего порядка. `LEFT ARRAY JOIN`. Распределённый `GROUP BY`. Функции, возвращающие `Array`. Выполнение `ORDER BY`. Запись в таблицы `Distributed` (nicelulu). Обратная совместимость для запросов `INSERT` от клиентов старых версий, использующих протокол `Native`. Поддержка типа `LowCardinality` в `JOIN`. Повышена производительность при работе в одном потоке. [#3823](https://github.com/ClickHouse/ClickHouse/pull/3823) [#3803](https://github.com/ClickHouse/ClickHouse/pull/3803) [#3799](https://github.com/ClickHouse/ClickHouse/pull/3799) [#3769](https://github.com/ClickHouse/ClickHouse/pull/3769) [#3744](https://github.com/ClickHouse/ClickHouse/pull/3744) [#3681](https://github.com/ClickHouse/ClickHouse/pull/3681) [#3651](https://github.com/ClickHouse/ClickHouse/pull/3651) [#3649](https://github.com/ClickHouse/ClickHouse/pull/3649) [#3641](https://github.com/ClickHouse/ClickHouse/pull/3641) [#3632](https://github.com/ClickHouse/ClickHouse/pull/3632) [#3568](https://github.com/ClickHouse/ClickHouse/pull/3568) [#3523](https://github.com/ClickHouse/ClickHouse/pull/3523) [#3518](https://github.com/ClickHouse/ClickHouse/pull/3518) * Исправлена работа параметра `select_sequential_consistency`. Ранее при включённом параметре иногда мог возвращаться неполный результат после начала записи в новый раздел. [#2863](https://github.com/ClickHouse/ClickHouse/pull/2863) * Базы данных корректно определяются при выполнении DDL-запросов `ON CLUSTER` и `ALTER UPDATE/DELETE`. [#3772](https://github.com/ClickHouse/ClickHouse/pull/3772) [#3460](https://github.com/ClickHouse/ClickHouse/pull/3460) @@ -79,12 +73,8 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' * Исправлено состояние гонки при чтении из таблиц типа `Buffer` и одновременном выполнении операций `ALTER` или `DROP` над целевыми таблицами. [#3719](https://github.com/ClickHouse/ClickHouse/pull/3719) * Исправлено падение (segfault) при превышении предела `max_temporary_non_const_columns`. [#3788](https://github.com/ClickHouse/ClickHouse/pull/3788) - - #### Улучшения: {#improvements-1} - - * Сервер не записывает обработанные файлы конфигурации в каталог `/etc/clickhouse-server/`. Вместо этого он сохраняет их в каталоге `preprocessed_configs` внутри `path`. Это означает, что каталог `/etc/clickhouse-server/` недоступен для записи пользователю `clickhouse`, что повышает безопасность. [#2443](https://github.com/ClickHouse/ClickHouse/pull/2443) * Параметр `min_merge_bytes_to_use_direct_io` по умолчанию равен 10 ГиБ. Слияния, которые формируют крупные части таблиц семейства MergeTree, выполняются в режиме `O_DIRECT`, что предотвращает чрезмерное вытеснение страниц из страницного кэша. [#3504](https://github.com/ClickHouse/ClickHouse/pull/3504) * Ускорен запуск сервера при очень большом количестве таблиц. [#3398](https://github.com/ClickHouse/ClickHouse/pull/3398) @@ -115,8 +105,6 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' * Исправлено поведение функций с состоянием, таких как `rowNumberInAllBlocks`. Ранее они возвращали результат, увеличенный на единицу, из‑за того, что начинали работу на этапе анализа запроса. [Amos Bird](https://github.com/ClickHouse/ClickHouse/pull/3729) * Если файл `force_restore_data` не удаётся удалить, выводится сообщение об ошибке. [Amos Bird](https://github.com/ClickHouse/ClickHouse/pull/3794) - - #### Улучшения сборки: {#build-improvements-1} - Обновлена библиотека `jemalloc`, что устраняет потенциальную утечку памяти. [Amos Bird](https://github.com/ClickHouse/ClickHouse/pull/3557) @@ -125,14 +113,12 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' - Добавлен fuzz‑тест выражений в запросах SELECT. [#3442](https://github.com/ClickHouse/ClickHouse/pull/3442) - Добавлен стресс‑тест для коммитов, который выполняет функциональные тесты параллельно и в случайном порядке для обнаружения большего количества состояний гонки. [#3438](https://github.com/ClickHouse/ClickHouse/pull/3438) - Улучшен способ запуска clickhouse-server в Docker-образе. [Elghazal Ahmed](https://github.com/ClickHouse/ClickHouse/pull/3663) -- Для Docker-образа добавлена поддержка инициализации баз данных с использованием файлов в каталоге `/docker-entrypoint-initdb.d`. [Konstantин Lebedev](https://github.com/ClickHouse/ClickHouse/pull/3695) +- Для Docker-образа добавлена поддержка инициализации баз данных с использованием файлов в каталоге `/docker-entrypoint-initdb.d`. [Константин Лебедев](https://github.com/ClickHouse/ClickHouse/pull/3695) - Исправления для сборок на ARM. [#3709](https://github.com/ClickHouse/ClickHouse/pull/3709) #### Обратно несовместимые изменения: {#backward-incompatible-changes} -- Удалена возможность сравнивать тип `Date` с числом. Вместо `toDate('2018-12-18') = 17883` необходимо использовать явное приведение типа: `= toDate(17883)`. [#3687](https://github.com/ClickHouse/ClickHouse/pull/3687) - - +- Удалена возможность сравнивать тип `Date` с числом. Вместо `toDate('2018-12-18') = 17883` необходимо использовать явное приведение типа: `= toDate(17883)` [#3687](https://github.com/ClickHouse/ClickHouse/pull/3687) ## Релиз ClickHouse 18.14 {#clickhouse-release-18-14} @@ -181,8 +167,6 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' #### Исправления ошибок: {#bug-fixes-6} - - - Исправлены запросы `ON CLUSTER`, когда кластер настроен как защищённый (флаг ``). [#3599](https://github.com/ClickHouse/ClickHouse/pull/3599) #### Изменения сборки: {#build-changes-1} @@ -233,8 +217,6 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' #### Новые возможности: {#new-features-1} - - - Модификатор `WITH CUBE` для `GROUP BY` (также доступен альтернативный синтаксис `GROUP BY CUBE(...)`). [#3172](https://github.com/ClickHouse/ClickHouse/pull/3172) - Добавлена функция `formatDateTime`. [Alexandr Krasheninnikov](https://github.com/ClickHouse/ClickHouse/pull/2770) - Добавлены движок таблицы `JDBC` и табличная функция `jdbc` (требуется установка clickhouse-jdbc-bridge). [Alexandr Krasheninnikov](https://github.com/ClickHouse/ClickHouse/pull/3210) @@ -253,8 +235,6 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' #### Улучшения: {#improvements-2} - - * Существенно уменьшено потребление памяти для запросов с `ORDER BY` и `LIMIT`. См. настройку `max_bytes_before_remerge_sort`. [#3205](https://github.com/ClickHouse/ClickHouse/pull/3205) * При отсутствии указания типа `JOIN` (`LEFT`, `INNER`, ...), по умолчанию используется `INNER JOIN`. [#3147](https://github.com/ClickHouse/ClickHouse/pull/3147) * Квалифицированные звёздочки корректно работают в запросах с `JOIN`. [Winter Zhang](https://github.com/ClickHouse/ClickHouse/pull/3202) @@ -284,12 +264,8 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' * Снижено количество системных вызовов `open` и `close` при чтении из таблиц MergeTree. [#3283](https://github.com/ClickHouse/ClickHouse/pull/3283) * Запрос `TRUNCATE TABLE` может быть выполнен на любой реплике (при этом запрос будет передан реплике-лидеру). [Kirill Shvakov](https://github.com/ClickHouse/ClickHouse/pull/3375) - - #### Исправления ошибок: {#bug-fixes-10} - - * Исправлена проблема в таблицах `Dictionary` для словарей `range_hashed`. Ошибка проявлялась в версии 18.12.17. [#1702](https://github.com/ClickHouse/ClickHouse/pull/1702) * Исправлена ошибка при загрузке словарей типа `range_hashed` (сообщение `Unsupported type Nullable (...)`). Эта ошибка возникала в версии 18.12.17. [#3362](https://github.com/ClickHouse/ClickHouse/pull/3362) * Исправлены ошибки в функции `pointInPolygon`, вызванные накоплением погрешностей вычислений для полигонов с большим количеством вершин, расположенных близко друг к другу. [#3331](https://github.com/ClickHouse/ClickHouse/pull/3331) [#3341](https://github.com/ClickHouse/ClickHouse/pull/3341) @@ -324,14 +300,10 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' * Исправлена ошибка сегментации, которая в редких случаях могла возникать после оптимизации, заменявшей цепочки AND из сравнений на равенство на соответствующее выражение IN. [liuyimin-bytedance](https://github.com/ClickHouse/ClickHouse/pull/3339) * Незначительные исправления в `clickhouse-benchmark`: раньше информация о клиенте не отправлялась на сервер; теперь количество выполненных запросов подсчитывается более точно при завершении работы и при ограничении числа итераций. [#3351](https://github.com/ClickHouse/ClickHouse/pull/3351) [#3352](https://github.com/ClickHouse/ClickHouse/pull/3352) - - #### Обратно несовместимые изменения: {#backward-incompatible-changes-1} - Удалён параметр `allow_experimental_decimal_type`. Тип данных `Decimal` теперь доступен для использования по умолчанию. [#3329](https://github.com/ClickHouse/ClickHouse/pull/3329) - - ## Релиз ClickHouse 18.12 {#clickhouse-release-18-12} ### Релиз ClickHouse 18.12.17, 2018-09-16 {#clickhouse-release-18-12-17-2018-09-16} @@ -371,8 +343,6 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' #### Исправления ошибок: {#bug-fixes-12} - - - Добавлена проверка размеров массивов, являющихся элементами полей типа `Nested`, при вставке. [#3118](https://github.com/ClickHouse/ClickHouse/pull/3118) - Исправлена ошибка при обновлении внешних словарей с источником `ODBC` и хранилищем `hashed`. Эта ошибка возникала в версии 18.12.13. - Исправлено падение при создании временной таблицы из запроса с условием `IN`. [Winter Zhang](https://github.com/ClickHouse/ClickHouse/pull/3098) @@ -382,8 +352,6 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' #### Новые возможности: {#new-features-4} - - * Добавлен тип данных `DECIMAL(digits, scale)` (`Decimal32(scale)`, `Decimal64(scale)`, `Decimal128(scale)`). Чтобы его включить, используйте настройку `allow_experimental_decimal_type`. [#2846](https://github.com/ClickHouse/ClickHouse/pull/2846) [#2970](https://github.com/ClickHouse/ClickHouse/pull/2970) [#3008](https://github.com/ClickHouse/ClickHouse/pull/3008) [#3047](https://github.com/ClickHouse/ClickHouse/pull/3047) * Новый модификатор `WITH ROLLUP` для `GROUP BY` (альтернативный синтаксис — `GROUP BY ROLLUP(...)`). [#2948](https://github.com/ClickHouse/ClickHouse/pull/2948) * В запросах с JOIN символ «звёздочка» разворачивается в список столбцов всех таблиц в соответствии со стандартом SQL. Вы можете восстановить прежнее поведение, установив параметр `asterisk_left_columns_only` равным 1 в пользовательской конфигурации. [Winter Zhang](https://github.com/ClickHouse/ClickHouse/pull/2787) @@ -406,17 +374,13 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' * Теперь вы можете складывать (объединять) состояния агрегатных функций с помощью оператора `+`, а также умножать их на неотрицательную константу. [#3062](https://github.com/ClickHouse/ClickHouse/pull/3062) [#3034](https://github.com/ClickHouse/ClickHouse/pull/3034) * Таблицы семейства MergeTree получили виртуальный столбец `_partition_id`. [#3089](https://github.com/ClickHouse/ClickHouse/pull/3089) - - #### Экспериментальные возможности: {#experimental-features-1} - Добавлен тип данных `LowCardinality(T)`. Этот тип данных автоматически создаёт локальный словарь значений и позволяет обрабатывать данные без распаковки словаря. [#2830](https://github.com/ClickHouse/ClickHouse/pull/2830) -- Добавлен кэш JIT-компилированных функций и счётчик числа использований до компиляции. Чтобы JIT-компилировать выражения, включите настройку `compile_expressions`. [#2990](https://github.com/ClickHouse/ClickHouse/pull/2990) [#3077](https://github.com/ClickHouse/ClickHouse/pull/3077) +- Добавлен кэш JIT-компилированных функций и счётчик количества использований перед компиляцией. Чтобы JIT-компилировать выражения, включите настройку `compile_expressions`. [#2990](https://github.com/ClickHouse/ClickHouse/pull/2990) [#3077](https://github.com/ClickHouse/ClickHouse/pull/3077) #### Улучшения: {#improvements-4} - - * Исправлена проблема с неограниченным накоплением журнала репликации при наличии заброшенных реплик. Добавлен эффективный режим восстановления для реплик с большим лагом репликации. * Повышена производительность `GROUP BY` с несколькими полями группировки, когда одно из них строкового типа, а остальные — фиксированной длины. * Повышена производительность при использовании `PREWHERE` и при неявном переносе выражений в `PREWHERE`. @@ -444,12 +408,8 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' * Добавлено случайное смещение при периодическом запуске потока очистки для таблиц `ReplicatedMergeTree`, чтобы избежать периодических пиков нагрузки при очень большом количестве таблиц `ReplicatedMergeTree`. * Поддержка запросов `ATTACH TABLE ... ON CLUSTER`. [#3025](https://github.com/ClickHouse/ClickHouse/pull/3025) - - #### Исправления ошибок: {#bug-fixes-13} - - * Исправлена проблема с таблицами `Dictionary` (при которой выбрасывалось исключение `Size of offsets does not match size of column` или `Unknown compression method`). Эта ошибка появилась в версии 18.10.3. [#2913](https://github.com/ClickHouse/ClickHouse/issues/2913) * Исправлена ошибка при слиянии таблиц `CollapsingMergeTree`, если одна из частей данных пуста (эти части формируются во время слияния или при выполнении `ALTER DELETE`, если все данные были удалены) и при слиянии использовался алгоритм `vertical`. [#3049](https://github.com/ClickHouse/ClickHouse/pull/3049) * Исправлена гонка при выполнении `DROP` или `TRUNCATE` для таблиц типа `Memory` при одновременном `SELECT`, которая могла приводить к падению сервера. Эта ошибка появилась в версии 1.1.54388. [#3038](https://github.com/ClickHouse/ClickHouse/pull/3038) @@ -472,8 +432,6 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' * Исправлен ошибочный код для добавления вложенных структур данных в `SummingMergeTree`. * При выделении памяти для состояний агрегатных функций корректно учитывается выравнивание, что позволяет использовать операции, требующие выравнивания, при реализации состояний агрегатных функций. [chenxing-xc](https://github.com/ClickHouse/ClickHouse/pull/2808) - - #### Исправления безопасности: {#security-fix} - Безопасное использование источников данных ODBC. Взаимодействие с драйверами ODBC выполняется в отдельном процессе `clickhouse-odbc-bridge`. Ошибки во внешних драйверах ODBC больше не приводят к проблемам со стабильностью сервера или уязвимостям. [#2828](https://github.com/ClickHouse/ClickHouse/pull/2828) [#2879](https://github.com/ClickHouse/ClickHouse/pull/2879) [#2886](https://github.com/ClickHouse/ClickHouse/pull/2886) [#2893](https://github.com/ClickHouse/ClickHouse/pull/2893) [#2921](https://github.com/ClickHouse/ClickHouse/pull/2921) @@ -493,8 +451,6 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' - При отладочной сборке используется отладочная опция `jemalloc`. - Интерфейс библиотеки для взаимодействия с ZooKeeper объявлен абстрактным. [#2950](https://github.com/ClickHouse/ClickHouse/pull/2950) - - ## Релиз ClickHouse 18.10 {#clickhouse-release-18-10} ### Релиз ClickHouse 18.10.3, 2018-08-13 {#clickhouse-release-18-10-3-2018-08-13} @@ -524,8 +480,6 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' #### Исправления ошибок: {#bug-fixes-14} - - - Удалено ненужное экранирование параметров строки подключения для ODBC, что делало невозможным установление соединения. Эта ошибка возникала в версии 18.6.0. - Исправлена логика обработки команд `REPLACE PARTITION` в очереди репликации. Если для одного и того же раздела было две команды `REPLACE`, некорректная логика могла привести к тому, что одна из них оставалась в очереди репликации и не выполнялась. [#2814](https://github.com/ClickHouse/ClickHouse/pull/2814) - Исправлена ошибка слияния, когда все части данных были пустыми (части, сформированные из слияния или из `ALTER DELETE`, если все данные были удалены). Эта ошибка появилась в версии 18.1.0. [#2930](https://github.com/ClickHouse/ClickHouse/pull/2930) @@ -547,8 +501,6 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' - Используется mariadb-connector-c из подмодуля. [#2785](https://github.com/ClickHouse/ClickHouse/pull/2785) - В репозиторий добавлены файлы функциональных тестов, зависящие от доступности тестовых данных (пока без самих тестовых данных). - - ## Релиз ClickHouse 18.6 {#clickhouse-release-18-6} ### Релиз ClickHouse 18.6.0, 2018-08-02 {#clickhouse-release-18-6-0-2018-08-02} @@ -564,8 +516,6 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' - Сервер передаёт клиенту номер своей патч-версии. Данные о патч-версии доступны в `system.processes` и `query_log`. [#2646](https://github.com/ClickHouse/ClickHouse/pull/2646) - - ## Релиз ClickHouse 18.5 {#clickhouse-release-18-5} ### Релиз ClickHouse 18.5.1, 2018-07-31 {#clickhouse-release-18-5-1-2018-07-31} @@ -583,8 +533,6 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' - Исправлена возможная ошибка при запуске реплики [#2759](https://github.com/ClickHouse/ClickHouse/pull/2759). - - ## Релиз ClickHouse 18.4 {#clickhouse-release-18-4} ### Релиз ClickHouse 18.4.0, 2018-07-28 {#clickhouse-release-18-4-0-2018-07-28} @@ -614,8 +562,6 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' - Параметры для движка `Kafka` были изменены с `Kafka(kafka_broker_list, kafka_topic_list, kafka_group_name, kafka_format[, kafka_schema, kafka_num_consumers])` на `Kafka(kafka_broker_list, kafka_topic_list, kafka_group_name, kafka_format[, kafka_row_delimiter, kafka_schema, kafka_num_consumers])`. Если ваши таблицы используют параметры `kafka_schema` или `kafka_num_consumers`, вам нужно вручную отредактировать файлы метаданных `path/metadata/database/table.sql` и добавить параметр `kafka_row_delimiter` со значением `''`. - - ## Релиз ClickHouse 18.1 {#clickhouse-release-18-1} ### Релиз ClickHouse 18.1.0, 2018-07-23 {#clickhouse-release-18-1-0-2018-07-23} @@ -650,8 +596,6 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' - Преобразование строки, содержащей число ноль, к типу DateTime не работает. Пример: `SELECT toDateTime('0')`. По этой же причине в таблицах не работает `DateTime DEFAULT '0'`, а также `0` в словарях. Решение: заменить `0` на `0000-00-00 00:00:00`. - - ## Релиз ClickHouse 1.1 {#clickhouse-release-1-1} ### Релиз ClickHouse 1.1.54394, 2018-07-12 {#clickhouse-release-1-1-54394-2018-07-12} @@ -674,7 +618,7 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' #### Новые возможности: {#new-features-11} -- Запросы можно отправлять в формате `multipart/form-data` (в поле `query`), что полезно, если для обработки запроса также отправляются внешние данные ([Olga Hvostikova](https://github.com/ClickHouse/ClickHouse/pull/2490)). +- Запросы можно отправлять в формате `multipart/form-data` (в поле `query`), что полезно, если для обработки запроса также отправляются внешние данные ([Olga Hvостикова](https://github.com/ClickHouse/ClickHouse/pull/2490)). - Добавлена возможность включать или отключать обработку одиночных или двойных кавычек при чтении данных в формате CSV. Это можно настроить с помощью параметров `format_csv_allow_single_quotes` и `format_csv_allow_double_quotes` ([Amos Bird](https://github.com/ClickHouse/ClickHouse/pull/2574)). - Теперь `OPTIMIZE TABLE ... FINAL` можно использовать без указания партиции для нереплицированных вариантов `MergeTree` ([Amos Bird](https://github.com/ClickHouse/ClickHouse/pull/2599)). @@ -690,11 +634,9 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' #### Исправления ошибок: {#bug-fixes-19} - - - Исправлена ошибка при работе с ZooKeeper, из-за которой могло оказаться невозможным восстановить сессию и состояния таблиц `readonly` перед перезапуском сервера. - Исправлена ошибка при работе с ZooKeeper, из-за которой старые узлы могли не удаляться при обрыве сессии. -- Исправлена ошибка в функции `quantileTDigest` для аргументов типа Float (эта ошибка была внесена в версии 1.1.54388) ([Mikhail Surin](https://github.com/ClickHouse/ClickHouse/pull/2553)). +- Исправлена ошибка в функции `quantileTDigest` для аргументов типа Float (эта ошибка появилась в версии 1.1.54388) ([Mikhail Surin](https://github.com/ClickHouse/ClickHouse/pull/2553)). - Исправлена ошибка в индексе для таблиц MergeTree, если столбец первичного ключа находится внутри функции для преобразования типов между знаковыми и беззнаковыми целыми одного размера ([#2603](https://github.com/ClickHouse/ClickHouse/pull/2603)). - Исправлена ошибка сегментации, если используются `macros`, но они отсутствуют в конфигурационном файле ([#2570](https://github.com/ClickHouse/ClickHouse/pull/2570)). - Исправлено переключение на базу данных по умолчанию при повторном подключении клиента ([#2583](https://github.com/ClickHouse/ClickHouse/pull/2583)). @@ -731,8 +673,6 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' #### Исправления ошибок: {#bug-fixes-20} - - - Дубликаты больше не появляются в запросах с `DISTINCT` и `ORDER BY`. - Запросы с `ARRAY JOIN` и `arrayFilter` больше не возвращают некорректный результат. - Исправлена ошибка при чтении столбца-массива из структуры `Nested` ([#2066](https://github.com/ClickHouse/ClickHouse/issues/2066)). @@ -777,9 +717,7 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' - Добавлена возможность использовать библиотеку libtinfo вместо libtermcap ([Georgy Kondratiev](https://github.com/ClickHouse/ClickHouse/pull/2519)). - Исправлен конфликт заголовочного файла в Fedora Rawhide ([#2520](https://github.com/ClickHouse/ClickHouse/issues/2520)). -#### Изменения, нарушающие обратную совместимость: {#backward-incompatible-changes-7} - - +#### Обратная несовместимость: {#backward-incompatible-changes-7} - Убрано экранирование в форматах `Vertical` и `Pretty*` и удалён формат `VerticalRaw`. - Если в распределённом запросе одновременно используются серверы версии 1.1.54388 (или новее) и серверы более старой версии, а запрос содержит выражение `cast(x, 'Type')` без ключевого слова `AS` и без написания слова `cast` прописными буквами, будет сгенерировано исключение с сообщением вида `Not found column cast(0, 'UInt8') in block`. Решение: обновить серверы во всём кластере. @@ -828,9 +766,7 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' ### Релиз ClickHouse 1.1.54378, 2018-04-16 {#clickhouse-release-1-1-54378-2018-04-16} -#### Новые возможности: {#new-features-14} - - +#### New Features: {#new-features-14} - Уровень логирования можно изменить без перезапуска сервера. - Добавлен запрос `SHOW CREATE DATABASE`. @@ -876,9 +812,7 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' - Сборка поддерживает `ninja` вместо `make` и по умолчанию использует `ninja` для сборки релизов. - Переименованы пакеты: `clickhouse-server-base` в `clickhouse-common-static`; `clickhouse-server-common` в `clickhouse-server`; `clickhouse-common-dbg` в `clickhouse-common-static-dbg`. Для установки используйте `clickhouse-server clickhouse-client`. Пакеты со старыми именами по-прежнему доступны в репозиториях для обратной совместимости. -#### Backward Incompatible Changes: {#backward-incompatible-changes-9} - - +#### Изменения, нарушающие обратную совместимость: {#backward-incompatible-changes-9} - Убрана особая интерпретация выражения IN, если слева указан массив. Ранее выражение `arr IN (set)` интерпретировалось как «по крайней мере один элемент `arr` принадлежит множеству `set`». Чтобы получить такое же поведение в новой версии, используйте `arrayExists(x -> x IN (set), arr)`. - Отключено некорректное использование опции сокета `SO_REUSEPORT`, которая была ошибочно включена по умолчанию в библиотеке Poco. Обратите внимание, что в Linux больше нет причин одновременно указывать адреса `::` и `0.0.0.0` для прослушивания — используйте только `::`, что позволяет принимать соединения как по IPv4, так и по IPv6 (при настройках ядра по умолчанию). Вы также можете вернуть поведение из предыдущих версий, указав `1` в конфигурации. @@ -914,8 +848,6 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' #### New Features: {#new-features-16} - - * Агрегирование без `GROUP BY` для пустого набора (например, `SELECT count(*) FROM table WHERE 0`) теперь возвращает результат с одной строкой, в которой агрегатные функции принимают значение NULL, в соответствии со стандартом SQL. Чтобы вернуть старое поведение (возврат пустого результата), установите `empty_result_for_aggregation_by_empty_set` в значение 1. * Добавлено приведение типов для `UNION ALL`. В списках `SELECT` в `UNION ALL` теперь допускаются разные имена псевдонимов в соответствии со стандартом SQL. * В предложениях `LIMIT BY` теперь поддерживаются произвольные выражения. Ранее можно было использовать только столбцы, возвращаемые оператором `SELECT`. @@ -952,8 +884,6 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' * Добавлен параметр `odbc_default_field_size`, позволяющий увеличить максимальный размер значения, загружаемого из источника ODBC (по умолчанию — 1024). * В таблице `system.processes` и у оператора `SHOW PROCESSLIST` теперь есть столбцы `is_cancelled` и `peak_memory_usage`. - - #### Улучшения: {#improvements-15} - Ограничения и квоты на результат больше не применяются к промежуточным данным для запросов `INSERT SELECT` или для подзапросов `SELECT`. @@ -1000,8 +930,6 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' #### Изменения, нарушающие обратную совместимость: {#backward-incompatible-changes-10} - - - Опция `distributed_ddl_allow_replicated_alter` удалена. Это поведение теперь включено по умолчанию. - Настройка `strict_insert_defaults` удалена. Если вы использовали эту функциональность, напишите по адресу `feedback@clickhouse.com`. - Удалён движок `UnsortedMergeTree`. @@ -1028,8 +956,6 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' #### Новые возможности: {#new-features-17} - - - Добавлена поддержка хранения многомерных массивов и кортежей (тип данных `Tuple`) в таблицах. - Добавлена поддержка табличных функций для запросов `DESCRIBE` и `INSERT`. Добавлена поддержка подзапросов в `DESCRIBE`. Примеры: `DESC TABLE remote('host', default.hits)`; `DESC TABLE (SELECT 1)`; `INSERT INTO TABLE FUNCTION remote('host', default.hits)`. Добавлена поддержка `INSERT INTO TABLE` в дополнение к `INSERT INTO`. - Улучшена поддержка часовых поясов. Тип данных `DateTime` может быть аннотирован часовым поясом, который используется при разборе и форматировании в текстовых форматах. Пример: `DateTime('Asia/Istanbul')`. Когда часовые пояса указываются в функциях для аргументов типа `DateTime`, возвращаемый тип будет учитывать часовой пояс, и значение будет отображаться ожидаемым образом. @@ -1061,8 +987,6 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' #### Оптимизации производительности: {#performance-optimizations} - - - Повышена производительность агрегатных функций `min`, `max`, `any`, `anyLast`, `anyHeavy`, `argMin`, `argMax` для строковых аргументов. - Повышена производительность функций `isInfinite`, `isFinite`, `isNaN`, `roundToExp2`. - Повышена производительность разбора и форматирования значений типов `Date` и `DateTime` в текстовом формате. @@ -1072,8 +996,6 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' #### Исправления ошибок: {#bug-fixes-28} - - - Исправлена дедупликация данных после выполнения запроса `DROP` или `DETACH PARTITION`. В предыдущей версии удаление раздела и повторная вставка тех же данных не работали, потому что вставленные блоки считались дубликатами. - Исправлена ошибка, которая могла приводить к некорректной интерпретации предложения `WHERE` для запросов `CREATE MATERIALIZED VIEW` с `POPULATE`. - Исправлена ошибка при использовании параметра `root_path` в конфигурации `zookeeper_servers`. @@ -1113,8 +1035,6 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' #### Улучшения сборки: {#build-improvements-4} - - - Для сборки используется утилита `pbuilder`. Процесс сборки почти полностью независим от окружения хоста сборки. - Одна и та же сборка используется для разных версий ОС. Пакеты и бинарные файлы сделаны совместимыми с широким спектром систем Linux. - Добавлен пакет `clickhouse-test`. Его можно использовать для запуска функциональных тестов. @@ -1143,6 +1063,4 @@ keywords: ['ClickHouse 2018', 'список изменений 2018 года', ' - При поочерёдном обновлении (rolling update) кластера в момент, когда часть реплик работает на старой версии ClickHouse, а часть — на новой, репликация временно останавливается и в логе появляется сообщение `unknown parameter 'shard'`. Репликация продолжится после обновления всех реплик кластера. - Если на серверах кластера запущены разные версии ClickHouse, возможно, что распределённые запросы, использующие следующие функции, будут возвращать некорректные результаты: `varSamp`, `varPop`, `stddevSamp`, `stddevPop`, `covarSamp`, `covarPop`, `corr`. Необходимо обновить все узлы кластера. - - -## [Журнал изменений за 2017 год](./2017.md) {#changelog-for-2017} +## [Журнал изменений за 2017 год](./2017.md) {#changelog-for-2017} \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2019.md b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2019.md index c8aed11c7ca..b55796b5215 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2019.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2019.md @@ -1,6 +1,6 @@ --- slug: /whats-new/changelog/2019 -sidebar_position: 8 +sidebar_position: -2019 sidebar_label: '2019' title: 'Список изменений за 2019 год' description: 'Список изменений за 2019 год' @@ -8,16 +8,12 @@ doc_type: 'changelog' keywords: ['ClickHouse 2019', 'список изменений 2019', 'примечания к релизам', 'история версий', 'архивные релизы'] --- - - ## Релиз ClickHouse 19.17 {#clickhouse-release-v19-17} ### Релиз ClickHouse 19.17.6.36, 2019-12-27 {#clickhouse-release-v19-17-6-36-2019-12-27} #### Исправления ошибок {#bug-fix} - - * Исправлено потенциальное переполнение буфера в функции decompress. Злоумышленник мог передать специально сформированные сжатые данные, что приводило к чтению за пределами буфера. Проблема была обнаружена Эльдаром Зайтовым из команды информационной безопасности Yandex. [#8404](https://github.com/ClickHouse/ClickHouse/pull/8404) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Исправлен возможный аварийный сбой сервера (`std::terminate`), возникавший, когда сервер не мог отправить или записать данные в формате JSON или XML со значениями типа String (которые требуют проверки корректности UTF-8), либо при сжатии результирующих данных алгоритмом Brotli, а также в некоторых других редких случаях. [#8384](https://github.com/ClickHouse/ClickHouse/pull/8384) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Исправлены фиксированные словари с источником из представления ClickHouse (`VIEW`): теперь чтение таких словарей не приводит к ошибке `There is no query`. [#8351](https://github.com/ClickHouse/ClickHouse/pull/8351) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) @@ -48,8 +44,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим * Теперь при использовании WITH TIES вместе с LIMIT BY будет генерироваться исключение. Также теперь можно использовать TOP с LIMIT BY. [#7637](https://github.com/ClickHouse/ClickHouse/pull/7637) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) * Исправлена проблема с перезагрузкой словаря, если он содержит `invalidate_query`, которая приводила к остановке обновлений и возникновению исключений при предыдущих попытках обновления. [#8029](https://github.com/ClickHouse/ClickHouse/pull/8029) ([alesapin](https://github.com/alesapin)) - - ### Релиз ClickHouse 19.17.4.11, 2019-11-22 {#clickhouse-release-v19-17-4-11-2019-11-22} #### Несовместимое изменение {#backward-incompatible-change} @@ -76,8 +70,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим #### Исправление ошибок {#bug-fix-1} - - * Исправлен некорректный парсинг чисел с плавающей точкой в `Values` [#7817](https://github.com/ClickHouse/ClickHouse/issues/7817) [#7870](https://github.com/ClickHouse/ClickHouse/pull/7870) ([tavplubix](https://github.com/tavplubix)) * Исправлена редкая взаимоблокировка, которая может возникать при включённом trace_log. [#7838](https://github.com/ClickHouse/ClickHouse/pull/7838) ([filimonov](https://github.com/filimonov)) * Предотвращено дублирование сообщений при записи в таблицу Kafka, если для неё созданы материализованные представления, читающие из этой таблицы [#7265](https://github.com/ClickHouse/ClickHouse/pull/7265) ([Ivan](https://github.com/abyss7)) @@ -101,8 +93,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим * Исправлено исключение при использовании одного аргумента при определении хранилищ S3, URL и HDFS. [#7618](https://github.com/ClickHouse/ClickHouse/pull/7618) ([Vladimir Chebotarev](https://github.com/excitoon)) * Исправлена область действия InterpreterSelectQuery для представлений с запросом [#7601](https://github.com/ClickHouse/ClickHouse/pull/7601) ([Azat Khuzhin](https://github.com/azat)) - - #### Улучшения {#improvement} - Столбцы `Nullable` распознаются, и значения NULL корректно обрабатываются в ODBC-bridge [#7402](https://github.com/ClickHouse/ClickHouse/pull/7402) ([Vasily Nemkov](https://github.com/Enmk)) @@ -124,9 +114,7 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим - Векторизована обработка `arrayReduce`, аналогично `addBatch` в Aggregator. [#7608](https://github.com/ClickHouse/ClickHouse/pull/7608) ([Amos Bird](https://github.com/amosbird)) - Небольшие улучшения производительности потребления из `Kafka` [#7475](https://github.com/ClickHouse/ClickHouse/pull/7475) ([Ivan](https://github.com/abyss7)) -#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement} - - +#### Улучшения процессов сборки, тестирования и упаковки {#buildtestingpackaging-improvement} - Добавлена поддержка кросс-компиляции под архитектуру CPU AArch64. Переработан скрипт упаковщика. [#7370](https://github.com/ClickHouse/ClickHouse/pull/7370) [#7539](https://github.com/ClickHouse/ClickHouse/pull/7539) ([Ivan](https://github.com/abyss7)) - Распаковывать toolchain'ы darwin-x86_64 и linux-aarch64 в примонтированный том Docker при сборке пакетов [#7534](https://github.com/ClickHouse/ClickHouse/pull/7534) ([Ivan](https://github.com/abyss7)) @@ -135,15 +123,13 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим - Небольшой рефакторинг логики анализа запросов: сложный класс разделён на несколько простых. [#7454](https://github.com/ClickHouse/ClickHouse/pull/7454) ([Artem Zuikov](https://github.com/4ertus2)) - Исправлена сборка без подмодулей [#7295](https://github.com/ClickHouse/ClickHouse/pull/7295) ([proller](https://github.com/proller)) - Улучшен `add_globs` в файлах CMake [#7418](https://github.com/ClickHouse/ClickHouse/pull/7418) ([Amos Bird](https://github.com/amosbird)) -- Удалены жёстко прописанные пути в цели `unwind` [#7460](https://github.com/ClickHouse/ClickHouse/pull/7460) ([Konstantin Podshumok](https://github.com/podshumok)) +- Удалены жёстко прописанные пути в цели `unwind` [#7460](https://github.com/ClickHouse/ClickHouse/pull/7460) ([Константин Подшумок](https://github.com/podshumok)) - Разрешено использовать формат MySQL без SSL [#7524](https://github.com/ClickHouse/ClickHouse/pull/7524) ([proller](https://github.com/proller)) #### Другое {#other} - Добавлена грамматика ANTLR4 для SQL-диалекта ClickHouse [#7595](https://github.com/ClickHouse/ClickHouse/issues/7595) [#7596](https://github.com/ClickHouse/ClickHouse/pull/7596) ([alexey-milovidov](https://github.com/alexey-milovidov)) - - ## Релиз ClickHouse 19.16 {#clickhouse-release-v19-16} #### Релиз ClickHouse 19.16.14.65, 2020-03-25 {#clickhouse-release-v19-16-14-65-2020-03-25} @@ -184,9 +170,7 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим [#7118](https://github.com/ClickHouse/ClickHouse/pull/7118) ([tavplubix](https://github.com/tavplubix)) -#### Новая возможность {#new-feature-2} - - +#### Новые возможности {#new-feature-2} - Добавлена функция uniqCombined64() для вычисления кардинальности множества, превышающей UINT_MAX. [#7213](https://github.com/ClickHouse/ClickHouse/pull/7213), @@ -230,8 +214,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим #### Исправление ошибок {#bug-fix-2} - - - Исправлен неверный результат запроса, если он содержит секцию `WHERE IN (SELECT ...)` и используется `optimize_read_in_order`. [#7371](https://github.com/ClickHouse/ClickHouse/pull/7371) ([Anton Popov](https://github.com/CurtizJ)) @@ -271,9 +253,7 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим [#7271](https://github.com/ClickHouse/ClickHouse/pull/7271) ([vzakaznikov](https://github.com/vzakaznikov)) -#### Улучшение {#improvement-1} - - +#### Улучшения {#improvement-1} - Добавлено сообщение на случай ожидания до значения `queue_wait_max_ms`. [#7390](https://github.com/ClickHouse/ClickHouse/pull/7390) ([Azat @@ -329,9 +309,7 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим [#6781](https://github.com/ClickHouse/ClickHouse/pull/6781) ([tavplubix](https://github.com/tavplubix)) -#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-1} - - +#### Улучшения сборки, тестирования и упаковки {#buildtestingpackaging-improvement-1} * Отключить некоторые contrib-модули для кросс-компиляции под macOS. [#7101](https://github.com/ClickHouse/ClickHouse/pull/7101) ([Ivan](https://github.com/abyss7)) @@ -400,8 +378,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим [#7063](https://github.com/ClickHouse/ClickHouse/pull/7063) ([proller](https://github.com/proller)) - - #### Очистка кода {#code-cleanup} - Обобщить репозиторий конфигурации для подготовки к DDL для Dictionaries. [#7155](https://github.com/ClickHouse/ClickHouse/pull/7155) @@ -437,8 +413,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим [#7350](https://github.com/ClickHouse/ClickHouse/pull/7350) ([tavplubix](https://github.com/tavplubix)) - - ## Релиз ClickHouse 19.15 {#clickhouse-release-19-15} ### Релиз ClickHouse 19.15.4.10, 2019-10-31 {#clickhouse-release-19-15-4-10-2019-10-31} @@ -482,13 +456,11 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим - Явное выполнение commit в Kafka после завершения записи. [#7175](https://github.com/ClickHouse/ClickHouse/pull/7175) ([Ivan](https://github.com/abyss7)) - Корректная сериализация значений NULL в min/max-индексах частей MergeTree. - [#7234](https://github.com/ClickHouse/ClickHouse/pull/7234) ([Alexander Kuzmenkov](https://github.com/akuzm)) + [#7234](https://github.com/ClickHouse/ClickHouse/pull/7234) ([Alexander Kuzменkov](https://github.com/akuzm)) ### Релиз ClickHouse 19.15.2.2, 2019-10-01 {#clickhouse-release-19-15-2-2-2019-10-01} -#### Новая функциональность {#new-feature-3} - - +#### Новая функция {#new-feature-3} - Многоуровневое хранилище: поддержка использования нескольких томов хранения для таблиц с движком MergeTree. Можно хранить свежие данные на SSD и автоматически переносить старые данные на HDD. ([пример](https://clickhouse.github.io/clickhouse-presentations/meetup30/new_features/#12)). [#4918](https://github.com/ClickHouse/ClickHouse/pull/4918) ([Igr](https://github.com/ObjatieGroba)) [#6489](https://github.com/ClickHouse/ClickHouse/pull/6489) ([alesapin](https://github.com/alesapin)) - Добавлена табличная функция `input` для чтения поступающих данных в запросе `INSERT SELECT`. [#5450](https://github.com/ClickHouse/ClickHouse/pull/5450) ([palasonic1](https://github.com/palasonic1)) [#6832](https://github.com/ClickHouse/ClickHouse/pull/6832) ([Anton Popov](https://github.com/CurtizJ)) @@ -504,9 +476,7 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим - Реализован (в памяти) вариант Merge Join, который не изменяет текущий конвейер обработки. Результат частично отсортирован по ключу слияния. Установите `partial_merge_join = 1`, чтобы использовать эту возможность. Merge Join всё ещё находится в разработке. [#6940](https://github.com/ClickHouse/ClickHouse/pull/6940) ([Artem Zuikov](https://github.com/4ertus2)) - Добавлен движок и табличная функция `S3`. Функциональность всё ещё находится в разработке (поддержка аутентификации пока отсутствует). [#5596](https://github.com/ClickHouse/ClickHouse/pull/5596) ([Vladimir Chebotarev](https://github.com/excitoon)) -#### Улучшение {#improvement-2} - - +#### Улучшения {#improvement-2} - Каждое сообщение, прочитанное из Kafka, вставляется атомарно. Это решает почти все известные проблемы с движком Kafka. [#6950](https://github.com/ClickHouse/ClickHouse/pull/6950) ([Ivan](https://github.com/abyss7)) - Улучшен механизм отказоустойчивости распределённых запросов (failover). Время восстановления сокращено, также теперь оно настраивается и отображается в `system.clusters`. [#6399](https://github.com/ClickHouse/ClickHouse/pull/6399) ([Vasily Nemkov](https://github.com/Enmk)) @@ -514,7 +484,7 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим - Поддержка (опционально, по умолчанию отключена) перенаправлений (redirect) для URL‑хранилища. [#6914](https://github.com/ClickHouse/ClickHouse/pull/6914) ([maqroll](https://github.com/maqroll)) - Добавлено информационное сообщение при подключении клиента со старой версией к серверу. [#6893](https://github.com/ClickHouse/ClickHouse/pull/6893) ([Philipp Malkovsky](https://github.com/malkfilipp)) - Удалено ограничение на максимальное время ожидания с экспоненциальной паузой (backoff) при отправке данных в распределённые таблицы. [#6895](https://github.com/ClickHouse/ClickHouse/pull/6895) ([Azat Khuzhin](https://github.com/azat)) -- Добавлена возможность отправлять события профиля (счётчики) с накопительными значениями в graphite. Это можно включить в `` в серверном `config.xml`. [#6969](https://github.com/ClickHouse/ClickHouse/pull/6969) ([Azat Khuzhin](https://github.com/azat)) +- Добавлена возможность отправлять события профиля (счётчики) с накопительными значениями в Graphite. Это можно включить в `` в серверном `config.xml`. [#6969](https://github.com/ClickHouse/ClickHouse/pull/6969) ([Azat Khuzhin](https://github.com/azat)) - Добавлено автоматическое приведение типа `T` к `LowCardinality(T)` при вставке данных в столбец типа `LowCardinality(T)` в формате Native через HTTP. [#6891](https://github.com/ClickHouse/ClickHouse/pull/6891) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) - Добавлена возможность использовать функцию `hex` без использования `reinterpretAsString` для `Float32`, `Float64`. [#7024](https://github.com/ClickHouse/ClickHouse/pull/7024) ([Mikhail Korotov](https://github.com/millb)) @@ -529,8 +499,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим #### Исправление ошибок {#bug-fix-5} - - - Исправлена деградация производительности анализа индексов по сложным ключам в больших таблицах. Исправляет #6924. [#7075](https://github.com/ClickHouse/ClickHouse/pull/7075) ([alexey-milovidov](https://github.com/alexey-milovidov)) - Исправлена логическая ошибка, приводившая к ошибкам сегментации (segfault) при выборке из пустого топика Kafka. [#6909](https://github.com/ClickHouse/ClickHouse/pull/6909) ([Ivan](https://github.com/abyss7)) - Исправлено слишком раннее закрытие соединения MySQL в `MySQLBlockInputStream.cpp`. [#6882](https://github.com/ClickHouse/ClickHouse/pull/6882) ([Clément Rodriguez](https://github.com/clemrodriguez)) @@ -545,8 +513,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим - Изменён формат сериализации состояний агрегатных функций bitmap\* для повышения производительности. Сериализованные состояния bitmap\* из предыдущих версий невозможно прочитать. [#6908](https://github.com/ClickHouse/ClickHouse/pull/6908) ([Zhichang Yu](https://github.com/yuzhichang)) - - ## Релиз ClickHouse 19.14 {#clickhouse-release-19-14} ### Релиз ClickHouse 19.14.7.15, 2019-10-02 {#clickhouse-release-19-14-7-15-2019-10-02} @@ -572,8 +538,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим #### Новая функциональность {#new-feature-4} - - * Модификатор `WITH FILL` для `ORDER BY` (продолжение [#5069](https://github.com/ClickHouse/ClickHouse/issues/5069)) [#6610](https://github.com/ClickHouse/ClickHouse/pull/6610) ([Anton Popov](https://github.com/CurtizJ)) * Модификатор `WITH TIES` для `LIMIT`. (продолжение [#5069](https://github.com/ClickHouse/ClickHouse/issues/5069)) [#6610](https://github.com/ClickHouse/ClickHouse/pull/6610) ([Anton Popov](https://github.com/CurtizJ)) * Разбирать незаключённый в кавычки литерал `NULL` как значение NULL (если установлено `format_csv_unquoted_null_literal_as_null=1`). Инициализировать поля со значением NULL значениями по умолчанию, если тип данных этого поля не допускает NULL (если установлено `input_format_null_as_default=1`). [#5990](https://github.com/ClickHouse/ClickHouse/issues/5990) [#6055](https://github.com/ClickHouse/ClickHouse/pull/6055) ([tavplubix](https://github.com/tavplubix)) @@ -599,8 +563,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим * Добавлена поддержка виртуальных столбцов `_partition` и `_timestamp` для движка Kafka. [#6400](https://github.com/ClickHouse/ClickHouse/pull/6400) ([Ivan](https://github.com/abyss7)) * Возможность удалять конфиденциальные данные из `query_log`, серверных логов и списка процессов с помощью правил на основе регулярных выражений. [#5710](https://github.com/ClickHouse/ClickHouse/pull/5710) ([filimonov](https://github.com/filimonov)) - - #### Экспериментальная функция {#experimental-feature-2} - Формат входных и выходных данных `Template`. Позволяет задать пользовательскую строку формата для ввода и вывода данных. [#4354](https://github.com/ClickHouse/ClickHouse/issues/4354) [#6727](https://github.com/ClickHouse/ClickHouse/pull/6727) ([tavplubix](https://github.com/tavplubix)) @@ -608,8 +570,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим #### Исправление ошибки {#bug-fix-8} - - * Этот релиз также содержит все исправления ошибок из версий 19.13 и 19.11. * Исправлена ошибка сегментации, возникающая, если у таблицы есть skip-индексы и выполняется вертикальное слияние. [#6723](https://github.com/ClickHouse/ClickHouse/pull/6723) ([alesapin](https://github.com/alesapin)) * Исправлен TTL на уровне столбцов при нетривиальных значениях по умолчанию для столбцов. Ранее при принудительном слиянии по TTL с запросом `OPTIMIZE ... FINAL` просроченные значения заменялись значениями по умолчанию для типа данных вместо указанных пользователем значений по умолчанию для столбцов. [#6796](https://github.com/ClickHouse/ClickHouse/pull/6796) ([Anton Popov](https://github.com/CurtizJ)) @@ -667,8 +627,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим * Исправлена опечатка в сообщении об ошибке ( is -> are ). [#6839](https://github.com/ClickHouse/ClickHouse/pull/6839) ([Denis Zhuravlev](https://github.com/den-crane)) * Исправлена ошибка при разборе списка столбцов из строки, если тип содержал запятую (эта проблема была актуальна для хранилищ `File`, `URL`, `HDFS`) [#6217](https://github.com/ClickHouse/ClickHouse/issues/6217). [#6209](https://github.com/ClickHouse/ClickHouse/pull/6209) ([dimarub2000](https://github.com/dimarub2000)) - - #### Исправление уязвимостей {#security-fix} - Этот релиз также содержит все исправления уязвимостей из версий 19.13 и 19.11. @@ -676,8 +634,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим #### Улучшение {#improvement-3} - - * Корректная реализация тернарной логики для `AND/OR`. [#6048](https://github.com/ClickHouse/ClickHouse/pull/6048) ([Alexander Kazakov](https://github.com/Akazz)) * Теперь значения и строки с истёкшим TTL будут удаляться после выполнения запроса `OPTIMIZE ... FINAL` из старых частей без информации о TTL или с устаревшей информацией о TTL, например после запроса `ALTER ... MODIFY TTL`. Добавлены запросы `SYSTEM STOP/START TTL MERGES` для отключения/включения назначения слияний с TTL и фильтрации просроченных значений во всех слияниях. [#6274](https://github.com/ClickHouse/ClickHouse/pull/6274) ([Anton Popov](https://github.com/CurtizJ)) * Возможность изменить путь к файлу истории ClickHouse для клиента с помощью переменной окружения `CLICKHOUSE_HISTORY_FILE`. [#6840](https://github.com/ClickHouse/ClickHouse/pull/6840) ([filimonov](https://github.com/filimonov)) @@ -738,8 +694,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим * У `MergeTree` теперь есть дополнительная опция `ttl_only_drop_parts` (по умолчанию отключена), которая позволяет избежать частичного удаления частей, так что они удаляются полностью, когда срок действия всех строк в части истекает. [#6191](https://github.com/ClickHouse/ClickHouse/pull/6191) ([Sergi Vladykin](https://github.com/svladykin)) * Проверка типов для функций индекса set. Выбрасывать исключение, если функция получает аргумент неверного типа. Это исправляет fuzz‑тест с UBSan. [#6511](https://github.com/ClickHouse/ClickHouse/pull/6511) ([Nikita Vasilev](https://github.com/nikvas0)) - - #### Повышение производительности {#performance-improvement-2} - Оптимизируйте запросы с предложением `ORDER BY expressions`, где `expressions` имеют префикс, совпадающий с ключом сортировки в таблицах `MergeTree`. Эта оптимизация управляется настройкой `optimize_read_in_order`. [#6054](https://github.com/ClickHouse/ClickHouse/pull/6054) [#6629](https://github.com/ClickHouse/ClickHouse/pull/6629) ([Anton Popov](https://github.com/CurtizJ)) @@ -749,12 +703,10 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим - Отключена оптимизация последовательных ключей для `UInt8/16`. [#6298](https://github.com/ClickHouse/ClickHouse/pull/6298) [#6701](https://github.com/ClickHouse/ClickHouse/pull/6701) ([akuzm](https://github.com/akuzm)) - Улучшена производительность библиотеки `simdjson` за счёт отказа от динамического выделения памяти в `ParsedJson::Iterator`. [#6479](https://github.com/ClickHouse/ClickHouse/pull/6479) ([Vitaly Baranov](https://github.com/vitlibar)) - Выполняется предварительная подкачка страниц при выделении памяти с помощью `mmap()`. [#6667](https://github.com/ClickHouse/ClickHouse/pull/6667) ([akuzm](https://github.com/akuzm)) -- Исправлена ошибка производительности при сравнении значений типа `Decimal`. [#6380](https://github.com/ClickHouse/ClickHouse/pull/6380) ([Artem Zuikov](https://github.com/4ertus2)) +- Исправлена ошибка производительности при сравнении значений типа `Decimal`. [#6380](https://github.com/ClickHouse/ClickHouse/pull/6380) ([Artem Zuиков](https://github.com/4ertus2)) #### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-4} - - * Удалён Compiler (runtime template instantiation), так как наша собственная реализация превзошла его по производительности. [#6646](https://github.com/ClickHouse/ClickHouse/pull/6646) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Добавлен тест производительности для более изолированной демонстрации деградации производительности в gcc-9. [#6302](https://github.com/ClickHouse/ClickHouse/pull/6302) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Добавлена табличная функция `numbers_mt` — многопоточная версия `numbers`. Обновлены тесты производительности с хеш-функциями. [#6554](https://github.com/ClickHouse/ClickHouse/pull/6554) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) @@ -831,15 +783,11 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим * Исправлена сборка с параметром "splitted". [#6618](https://github.com/ClickHouse/ClickHouse/pull/6618) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Прочие исправления сборки: [#6186](https://github.com/ClickHouse/ClickHouse/pull/6186) ([Amos Bird](https://github.com/amosbird)) [#6486](https://github.com/ClickHouse/ClickHouse/pull/6486) [#6348](https://github.com/ClickHouse/ClickHouse/pull/6348) ([vxider](https://github.com/Vxider)) [#6744](https://github.com/ClickHouse/ClickHouse/pull/6744) ([Ivan](https://github.com/abyss7)) [#6016](https://github.com/ClickHouse/ClickHouse/pull/6016) [#6421](https://github.com/ClickHouse/ClickHouse/pull/6421) [#6491](https://github.com/ClickHouse/ClickHouse/pull/6491) ([proller](https://github.com/proller)) - - #### Изменение, нарушающее обратную совместимость {#backward-incompatible-change-3} - Удалены редко используемая табличная функция `catBoostPool` и хранилище `CatBoostPool`. Если вы использовали эту табличную функцию, пожалуйста, напишите на адрес `feedback@clickhouse.com`. Обратите внимание, что интеграция с CatBoost сохраняется и будет поддерживаться. [#6279](https://github.com/ClickHouse/ClickHouse/pull/6279) ([alexey-milovidov](https://github.com/alexey-milovidov)) - По умолчанию отключены `ANY RIGHT JOIN` и `ANY FULL JOIN`. Установите настройку `any_join_distinct_right_table_keys`, чтобы включить их. [#5126](https://github.com/ClickHouse/ClickHouse/issues/5126) [#6351](https://github.com/ClickHouse/ClickHouse/pull/6351) ([Artem Zuikov](https://github.com/4ertus2)) - - ## Релиз ClickHouse 19.13 {#clickhouse-release-19-13} ### Релиз ClickHouse 19.13.6.51, 2019-10-02 {#clickhouse-release-19-13-6-51-2019-10-02} @@ -865,9 +813,7 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим ### Релиз ClickHouse 19.13.4.32, 2019-09-10 {#clickhouse-release-19-13-4-32-2019-09-10} -#### Исправление ошибки {#bug-fix-11} - - +#### Исправление ошибок {#bug-fix-11} - Этот релиз также содержит все исправления уязвимостей из версий 19.11.9.52 и 19.11.10.54. - Исправлена гонка данных в таблице `system.parts` и запросе `ALTER`. [#6245](https://github.com/ClickHouse/ClickHouse/issues/6245) [#6513](https://github.com/ClickHouse/ClickHouse/pull/6513) ([alexey-milovidov](https://github.com/alexey-milovidov)) @@ -875,7 +821,7 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим - Исправлен сбой при использовании условия `IN` с подзапросом, возвращающим кортеж. [#6125](https://github.com/ClickHouse/ClickHouse/issues/6125) [#6550](https://github.com/ClickHouse/ClickHouse/pull/6550) ([tavplubix](https://github.com/tavplubix)) - Исправлен случай с одинаковыми именами столбцов в секции `GLOBAL JOIN ON`. [#6181](https://github.com/ClickHouse/ClickHouse/pull/6181) ([Artem Zuikov](https://github.com/4ertus2)) - Исправлен сбой при приведении типов к `Decimal`, если они не поддерживают такое преобразование. Вместо этого генерируется исключение. [#6297](https://github.com/ClickHouse/ClickHouse/pull/6297) ([Artem Zuikov](https://github.com/4ertus2)) -- Исправлен сбой в функции `extractAll()`. [#6644](https://github.com/ClickHouse/ClickHouse/pull/6644) ([Artem Zuikov](https://github.com/4ertus2)) +- Исправлен сбой в функции `extractAll()`. [#6644](https://github.com/ClickHouse/ClickHouse/pull/6644) ([Artem Zuиков](https://github.com/4ertus2)) - Преобразование запроса для табличных функций `MySQL`, `ODBC`, `JDBC` теперь корректно работает для запросов `SELECT WHERE` с несколькими выражениями `AND`. [#6381](https://github.com/ClickHouse/ClickHouse/issues/6381) [#6676](https://github.com/ClickHouse/ClickHouse/pull/6676) ([dimarub2000](https://github.com/dimarub2000)) - Добавлены проверки на предыдущее объявление для интеграции с MySQL 8. [#6569](https://github.com/ClickHouse/ClickHouse/pull/6569) ([Rafael David Tinoco](https://github.com/rafaeldtinoco)) @@ -887,8 +833,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим #### Исправление ошибок {#bug-fix-12} - - - Исправлен запрос `ALTER TABLE ... UPDATE` для таблиц с `enable_mixed_granularity_parts=1`. [#6543](https://github.com/ClickHouse/ClickHouse/pull/6543) ([alesapin](https://github.com/alesapin)) - Исправлена NPE при использовании предложения IN с подзапросом, возвращающим кортеж. [#6125](https://github.com/ClickHouse/ClickHouse/issues/6125) [#6550](https://github.com/ClickHouse/ClickHouse/pull/6550) ([tavplubix](https://github.com/tavplubix)) - Исправлена проблема, при которой, если устаревшая реплика снова становится доступной, у неё всё ещё могут быть части данных, удалённые с помощью DROP PARTITION. [#6522](https://github.com/ClickHouse/ClickHouse/issues/6522) [#6523](https://github.com/ClickHouse/ClickHouse/pull/6523) ([tavplubix](https://github.com/tavplubix)) @@ -905,8 +849,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим #### Новая функциональность {#new-feature-5} - - - Семплирующий профилировщик на уровне запроса. [Пример](https://gist.github.com/alexey-milovidov/92758583dd41c24c360fdb8d6a4da194). [#4247](https://github.com/ClickHouse/ClickHouse/issues/4247) ([laplab](https://github.com/laplab)) [#6124](https://github.com/ClickHouse/ClickHouse/pull/6124) ([alexey-milovidov](https://github.com/alexey-milovidov)) [#6250](https://github.com/ClickHouse/ClickHouse/pull/6250) [#6283](https://github.com/ClickHouse/ClickHouse/pull/6283) [#6386](https://github.com/ClickHouse/ClickHouse/pull/6386) - Возможность указать список столбцов с помощью выражения `COLUMNS('regexp')`, которое работает как более сложный вариант звёздочки `*`. [#5951](https://github.com/ClickHouse/ClickHouse/pull/5951) ([mfridental](https://github.com/mfridental)), ([alexey-milovidov](https://github.com/alexey-milovidov)) - Теперь можно использовать `CREATE TABLE AS table_function()` [#6057](https://github.com/ClickHouse/ClickHouse/pull/6057) ([dimarub2000](https://github.com/dimarub2000)) @@ -917,7 +859,7 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим #### Обратные несовместимые изменения {#backward-incompatible-change-4} -- Настройка `input_format_defaults_for_omitted_fields` включена по умолчанию. Для вставок в распределённые таблицы требуется, чтобы эта настройка была одинаковой на всём кластере (её нужно задать перед поэтапным обновлением кластера). Она включает вычисление сложных выражений значений по умолчанию для опущенных полей в форматах `JSONEachRow` и `CSV*`. Это должно быть ожидаемым поведением, но может привести к незначительному изменению производительности. [#6043](https://github.com/ClickHouse/ClickHouse/pull/6043) ([Artem Zuikov](https://github.com/4ertus2)), [#5625](https://github.com/ClickHouse/ClickHouse/pull/5625) ([akuzm](https://github.com/akuzm)) +- Настройка `input_format_defaults_for_omitted_fields` включена по умолчанию. Для вставок в распределённые таблицы требуется, чтобы эта настройка была одинаковой на всём кластере (её нужно задать перед поэтапным обновлением кластера). Она включает вычисление сложных выражений значений по умолчанию для опущенных полей в форматах `JSONEachRow` и `CSV*`. Это ожидаемое поведение, но оно может привести к незначительному изменению производительности. [#6043](https://github.com/ClickHouse/ClickHouse/pull/6043) ([Artem Zuikov](https://github.com/4ertus2)), [#5625](https://github.com/ClickHouse/ClickHouse/pull/5625) ([akuzm](https://github.com/akuzm)) #### Экспериментальные возможности {#experimental-features} @@ -927,13 +869,11 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим - В этой версии исправлена интеграция с Kafka. - Исправлено кодирование `DoubleDelta` для `Int64` при больших значениях `DoubleDelta`, улучшено кодирование `DoubleDelta` для случайных данных типа `Int32`. [#5998](https://github.com/ClickHouse/ClickHouse/pull/5998) ([Vasily Nemkov](https://github.com/Enmk)) -- Исправлена переоценка `max_rows_to_read`, если настройка `merge_tree_uniform_read_distribution` установлена в 0. [#6019](https://github.com/ClickHouse/ClickHouse/pull/6019) ([alexey-milovidov](https://github.com/alexey-milovidov)) +- Исправлено завышение значения параметра `max_rows_to_read`, если настройка `merge_tree_uniform_read_distribution` установлена в 0. [#6019](https://github.com/ClickHouse/ClickHouse/pull/6019) ([alexey-milovidov](https://github.com/alexey-milovidov)) #### Улучшения {#improvement-4} -- Генерируется исключение, если файл из `config.d` не содержит соответствующего корневого элемента, как в основном конфигурационном файле. [#6123](https://github.com/ClickHouse/ClickHouse/pull/6123) ([dimarub2000](https://github.com/dimarub2000)) - - +- Генерируется исключение, если файл из `config.d` не содержит корневой элемент, соответствующий основному конфигурационному файлу. [#6123](https://github.com/ClickHouse/ClickHouse/pull/6123) ([dimarub2000](https://github.com/dimarub2000)) #### Улучшения производительности {#performance-improvement-3} @@ -945,8 +885,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим - Исправлена сборка с внешней библиотекой `libcxx`. [#6010](https://github.com/ClickHouse/ClickHouse/pull/6010) ([Ivan](https://github.com/abyss7)) - Исправлена сборка в режиме разделяемых библиотек с библиотекой `rdkafka`. [#6101](https://github.com/ClickHouse/ClickHouse/pull/6101) ([Ivan](https://github.com/abyss7)) - - ## Релиз ClickHouse 19.11 {#clickhouse-release-19-11} ### Релиз ClickHouse 19.11.13.74, 2019-11-01 {#clickhouse-release-19-11-13-74-2019-11-01} @@ -978,8 +916,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим ### Релиз ClickHouse 19.11.9.52, 2019-09-6 {#clickhouse-release-19-11-9-52-2019-09-6} - - - Улучшена обработка ошибок в кэшируемых словарях. [#6737](https://github.com/ClickHouse/ClickHouse/pull/6737) ([Vitaly Baranov](https://github.com/vitlibar)) - Исправлена ошибка в функции `arrayEnumerateUniqRanked`. [#6779](https://github.com/ClickHouse/ClickHouse/pull/6779) ([proller](https://github.com/proller)) - Исправлена функция `JSONExtract` при извлечении `Tuple` из JSON. [#6718](https://github.com/ClickHouse/ClickHouse/pull/6718) ([Vitaly Baranov](https://github.com/vitlibar)) @@ -994,27 +930,23 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим #### Исправление уязвимости {#security-fix-3} -- Если у злоумышленника есть права на запись в ZooKeeper и он может запустить произвольный сервер, доступный из сети, в которой работает ClickHouse, он может создать специально подготовленный вредоносный сервер, который будет работать как реплика ClickHouse, и зарегистрировать его в ZooKeeper. Когда другая реплика будет запрашивать часть данных с вредоносной реплики, это может привести к тому, что clickhouse-server запишет данные в произвольный путь в файловой системе. Уязвимость обнаружена Eldar Zaitov, команда информационной безопасности Yandex. [#6247](https://github.com/ClickHouse/ClickHouse/pull/6247) ([alexey-milovidov](https://github.com/alexey-milovidov)) +- Если у злоумышленника есть права на запись в ZooKeeper и он может запустить произвольный сервер, доступный из сети, в которой работает ClickHouse, он может создать специально подготовленный вредоносный сервер, который будет работать как реплика ClickHouse, и зарегистрировать его в ZooKeeper. Когда другая реплика будет запрашивать часть данных с вредоносной реплики, это может привести к тому, что clickhouse-server запишет данные в произвольный путь в файловой системе. Уязвимость обнаружена Eldar Zaitov из команды информационной безопасности Yandex. [#6247](https://github.com/ClickHouse/ClickHouse/pull/6247) ([alexey-milovidov](https://github.com/alexey-milovidov)) ### Релиз ClickHouse 19.11.8.46, 2019-08-22 {#clickhouse-release-19-11-8-46-2019-08-22} -#### Исправление ошибки {#bug-fix-17} - - +#### Исправление ошибок {#bug-fix-17} - Исправлен запрос `ALTER TABLE ... UPDATE` для таблиц с `enable_mixed_granularity_parts=1`. [#6543](https://github.com/ClickHouse/ClickHouse/pull/6543) ([alesapin](https://github.com/alesapin)) - Исправлено исключение NPE (NullPointerException) при использовании условия IN с подзапросом, возвращающим кортеж. [#6125](https://github.com/ClickHouse/ClickHouse/issues/6125) [#6550](https://github.com/ClickHouse/ClickHouse/pull/6550) ([tavplubix](https://github.com/tavplubix)) - Исправлена проблема, при которой при переходе устаревшей реплики в активное состояние она могла по-прежнему содержать части данных, удалённые с помощью DROP PARTITION. [#6522](https://github.com/ClickHouse/ClickHouse/issues/6522) [#6523](https://github.com/ClickHouse/ClickHouse/pull/6523) ([tavplubix](https://github.com/tavplubix)) - Исправлена проблема при разборе CSV. [#6426](https://github.com/ClickHouse/ClickHouse/issues/6426) [#6559](https://github.com/ClickHouse/ClickHouse/pull/6559) ([tavplubix](https://github.com/tavplubix)) - Исправлена гонка данных в таблице system.parts и запросе ALTER. Это исправляет [#6245](https://github.com/ClickHouse/ClickHouse/issues/6245). [#6513](https://github.com/ClickHouse/ClickHouse/pull/6513) ([alexey-milovidov](https://github.com/alexey-milovidov)) -- Исправлен некорректный код в мутациях, который мог приводить к повреждению памяти. Исправлена ошибка сегментации при чтении адреса `0x14c0`, которая могла возникать из-за одновременного выполнения `DROP TABLE` и `SELECT` из `system.parts` или `system.parts_columns`. Исправлена гонка при подготовке запросов мутаций. Исправлен дедлок, вызванный `OPTIMIZE` реплицируемых таблиц и одновременными операциями модификации, такими как ALTER. [#6514](https://github.com/ClickHouse/ClickHouse/pull/6514) ([alexey-milovidov](https://github.com/alexey-milovidov)) +- Исправлен некорректный код в мутациях, который мог приводить к повреждению памяти. Исправлена ошибка сегментации при чтении адреса `0x14c0`, которая могла возникать из-за одновременного выполнения `DROP TABLE` и `SELECT` из `system.parts` или `system.parts_columns`. Исправлена гонка при подготовке запросов мутаций. Исправлен дедлок, вызванный `OPTIMIZE` реплицируемых таблиц и параллельными операциями модификации, такими как ALTER. [#6514](https://github.com/ClickHouse/ClickHouse/pull/6514) ([alexey-milovidov](https://github.com/alexey-milovidov)) ### Релиз ClickHouse 19.11.7.40, 2019-08-14 {#clickhouse-release-19-11-7-40-2019-08-14} #### Исправление ошибок {#bug-fix-18} - - - Исправлена интеграция с Kafka в этой версии. - Исправлено падение (segfault) при использовании `arrayReduce` для константных аргументов. [#6326](https://github.com/ClickHouse/ClickHouse/pull/6326) ([alexey-milovidov](https://github.com/alexey-milovidov)) - Исправлена монотонность `toFloat()`. [#6374](https://github.com/ClickHouse/ClickHouse/pull/6374) ([dimarub2000](https://github.com/dimarub2000)) @@ -1031,20 +963,18 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим #### Улучшение {#improvement-5} -- Пользователь теперь может переопределять настройки `poll_interval` и `idle_connection_timeout` при установлении соединения. [#6230](https://github.com/ClickHouse/ClickHouse/pull/6230) ([alexey-milovidov](https://github.com/alexey-milovidov)) +- Пользователь может переопределять параметры `poll_interval` и `idle_connection_timeout` при установлении соединения. [#6230](https://github.com/ClickHouse/ClickHouse/pull/6230) ([alexey-milovidov](https://github.com/alexey-milovidov)) ### Релиз ClickHouse 19.11.5.28, 2019-08-05 {#clickhouse-release-19-11-5-28-2019-08-05} #### Исправление ошибок {#bug-fix-19} - - - Устранена возможность зависания запросов при перегрузке сервера. [#6301](https://github.com/ClickHouse/ClickHouse/pull/6301) ([alexey-milovidov](https://github.com/alexey-milovidov)) - Исправлено исключение с плавающей запятой (FPE) в функции yandexConsistentHash. Это исправляет [#6304](https://github.com/ClickHouse/ClickHouse/issues/6304). [#6126](https://github.com/ClickHouse/ClickHouse/pull/6126) ([alexey-milovidov](https://github.com/alexey-milovidov)) -- Исправлена ошибка при преобразовании типов `LowCardinality` в `AggregateFunctionFactory`. Это исправляет [#6257](https://github.com/ClickHouse/ClickHouse/issues/6257). [#6281](https://github.com/ClickHouse/ClickHouse/pull/6281) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +- Исправлена ошибка при преобразовании типов `LowCardinality` в `AggregateFunctionFactory`. Это исправляет [#6257](https://github.com/ClickHouse/ClickHouse/issues/6257). [#6281](https://github.com/ClickHouse/ClickHouse/pull/6281) ([Nikolai Kochetов](https://github.com/KochetovNicolai)) - Исправлен разбор настроек типа `bool` из строк `true` и `false` в конфигурационных файлах. [#6278](https://github.com/ClickHouse/ClickHouse/pull/6278) ([alesapin](https://github.com/alesapin)) - Исправлена редкая ошибка с несовместимыми заголовками потоков в запросах к таблице `Distributed` поверх таблицы `MergeTree`, когда часть `WHERE` переносится в `PREWHERE`. [#6236](https://github.com/ClickHouse/ClickHouse/pull/6236) ([alesapin](https://github.com/alesapin)) -- Исправлено переполнение при целочисленном делении знакового типа на беззнаковый. Это исправляет [#6214](https://github.com/ClickHouse/ClickHouse/issues/6214). [#6233](https://github.com/ClickHouse/ClickHouse/pull/6233) ([alexey-milovidov](https://github.com/alexey-milovidov)) +- Исправлено переполнение при целочисленном делении знакового типа на беззнакового. Это исправляет [#6214](https://github.com/ClickHouse/ClickHouse/issues/6214). [#6233](https://github.com/ClickHouse/ClickHouse/pull/6233) ([alexey-milovidov](https://github.com/alexey-milovidov)) #### Изменение, нарушающее обратную совместимость {#backward-incompatible-change-5} @@ -1052,9 +982,7 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим ### Релиз ClickHouse 19.11.4.24, 2019-08-01 {#clickhouse-release-19-11-4-24-2019-08-01} -#### Исправление ошибок {#bug-fix-20} - - +#### Исправления ошибок {#bug-fix-20} - Исправлена ошибка при записи меток вторичных индексов с адаптивной гранулярностью. [#6126](https://github.com/ClickHouse/ClickHouse/pull/6126) ([alesapin](https://github.com/alesapin)) - Исправлены модификаторы `WITH ROLLUP` и `WITH CUBE` для `GROUP BY` с двухуровневой агрегацией. [#6225](https://github.com/ClickHouse/ClickHouse/pull/6225) ([Anton Popov](https://github.com/CurtizJ)) @@ -1072,8 +1000,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим #### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-6} - - - Добавлены официальные пакеты `rpm`. [#5740](https://github.com/ClickHouse/ClickHouse/pull/5740) ([proller](https://github.com/proller)) ([alesapin](https://github.com/alesapin)) - Добавлена возможность собирать пакеты `.rpm` и `.tgz` с помощью скрипта `packager`. [#5769](https://github.com/ClickHouse/ClickHouse/pull/5769) ([alesapin](https://github.com/alesapin)) - Исправления для системы сборки "Arcadia". [#6223](https://github.com/ClickHouse/ClickHouse/pull/6223) ([proller](https://github.com/proller)) @@ -1097,8 +1023,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим #### Исправление ошибки {#bug-fix-21} - - * Реализовано кэширование DNS с асинхронным обновлением. Отдельный поток разрешает все хосты и с заданным периодом (задаётся настройкой `dns_cache_update_period`) обновляет DNS‑кэш. Это должно помочь в случаях, когда IP‑адреса хостов часто меняются. [#5857](https://github.com/ClickHouse/ClickHouse/pull/5857) ([Anton Popov](https://github.com/CurtizJ)) * Исправлена ошибка сегментирования (segfault) в кодеке `Delta`, которая затрагивала столбцы со значениями шириной менее 32 бит. Баг приводил к произвольному повреждению памяти. [#5786](https://github.com/ClickHouse/ClickHouse/pull/5786) ([alesapin](https://github.com/alesapin)) * Исправлена ошибка сегментации (segfault) при слиянии по TTL в блоке с нефизическими столбцами. [#5819](https://github.com/ClickHouse/ClickHouse/pull/5819) ([Anton Popov](https://github.com/CurtizJ)) @@ -1125,12 +1049,8 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим * Исправлено завершение работы SystemLogs [#5802](https://github.com/ClickHouse/ClickHouse/pull/5802) ([Anton Popov](https://github.com/CurtizJ)) * Исправлено зависание, возникающее, когда условие в `invalidate_query` зависит от словаря. [#6011](https://github.com/ClickHouse/ClickHouse/pull/6011) ([Vitaly Baranov](https://github.com/vitlibar)) - - #### Улучшение {#improvement-6} - - * Разрешить использование неразрешимых адресов в конфигурации кластера. Они будут считаться недоступными, а их разрешение будет выполняться при каждой попытке подключения. Это особенно полезно для Kubernetes. Это исправляет [#5714](https://github.com/ClickHouse/ClickHouse/issues/5714) [#5924](https://github.com/ClickHouse/ClickHouse/pull/5924) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Закрывать неактивные TCP-подключения (по умолчанию с тайм-аутом в один час). Это особенно важно для крупных кластеров с несколькими распределёнными таблицами на каждом сервере, поскольку каждый сервер может поддерживать пул соединений с каждым другим сервером, и после пикового одновременного выполнения запросов соединения будут простаивать. Это исправляет [#5879](https://github.com/ClickHouse/ClickHouse/issues/5879) [#5880](https://github.com/ClickHouse/ClickHouse/pull/5880) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Улучшено качество работы функции `topK`. Изменено поведение множества SavingSpace: теперь последний элемент удаляется, если новый элемент имеет больший вес. [#5833](https://github.com/ClickHouse/ClickHouse/issues/5833) [#5850](https://github.com/ClickHouse/ClickHouse/pull/5850) ([Guillaume Tassery](https://github.com/YiuRULE)) @@ -1151,16 +1071,12 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим * Обновлено значение по умолчанию параметра `max_ast_elements` [#5933](https://github.com/ClickHouse/ClickHouse/pull/5933) ([Artem Konovalov](https://github.com/izebit)) * Введено понятие устаревших настроек. Устаревшая настройка `allow_experimental_low_cardinality_type` может использоваться, но не оказывает никакого действия. [0f15c01c6802f7ce1a1494c12c846be8c98944cd](https://github.com/ClickHouse/ClickHouse/commit/0f15c01c6802f7ce1a1494c12c846be8c98944cd) [Alexey Milovidov](https://github.com/alexey-milovidov) - - #### Улучшение производительности {#performance-improvement-4} - Увеличено число потоков при выполнении SELECT из Merge-таблицы для более равномерного распределения рабочих потоков. Добавлена настройка `max_streams_multiplier_for_merge_tables`. Это устраняет [#5797](https://github.com/ClickHouse/ClickHouse/issues/5797) [#5915](https://github.com/ClickHouse/ClickHouse/pull/5915) ([alexey-milovidov](https://github.com/alexey-milovidov)) #### Улучшение сборки/тестирования/упаковки {#buildtestingpackaging-improvement-7} - - * Добавлен тест обратной совместимости для клиент-серверного взаимодействия между разными версиями ClickHouse. [#5868](https://github.com/ClickHouse/ClickHouse/pull/5868) ([alesapin](https://github.com/alesapin)) * Информация о покрытии тестами в каждом коммите и каждом pull request. [#5896](https://github.com/ClickHouse/ClickHouse/pull/5896) ([alesapin](https://github.com/alesapin)) * Реализовано взаимодействие с AddressSanitizer для поддержки наших пользовательских аллокаторов памяти (`Arena` и `ArenaWithFreeLists`) с целью улучшения отладки ошибок типа «use-after-free». [#5728](https://github.com/ClickHouse/ClickHouse/pull/5728) ([akuzm](https://github.com/akuzm)) @@ -1197,16 +1113,12 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим * Тест производительности новой функции JIT на большем объёме данных, подготовленный по запросу здесь [#5263](https://github.com/ClickHouse/ClickHouse/issues/5263) [#5887](https://github.com/ClickHouse/ClickHouse/pull/5887) ([Guillaume Tassery](https://github.com/YiuRULE)) * Запуск stateful-тестов в стресс-тесте [12693e568722f11e19859742f56428455501fd2a](https://github.com/ClickHouse/ClickHouse/commit/12693e568722f11e19859742f56428455501fd2a) ([alesapin](https://github.com/alesapin)) - - #### Обратное несовместимое изменение {#backward-incompatible-change-7} - `Kafka` не работает в этой версии. - Включено значение `adaptive_index_granularity` = 10 MB по умолчанию для новых таблиц `MergeTree`. Если вы создавали новые таблицы MergeTree в версии 19.11+, понижение до версий ниже 19.6 будет невозможно. [#5628](https://github.com/ClickHouse/ClickHouse/pull/5628) ([alesapin](https://github.com/alesapin)) - Удалены устаревшие недокументированные встроенные словари, которые использовались в Yandex.Metrica. Функции `OSIn`, `SEIn`, `OSToRoot`, `SEToRoot`, `OSHierarchy`, `SEHierarchy` больше недоступны. Если вы используете эти функции, напишите письмо на clickhouse-feedback@yandex-team.com. Примечание: в последний момент мы решили на время оставить эти функции. [#5780](https://github.com/ClickHouse/ClickHouse/pull/5780) ([alexey-milovidov](https://github.com/alexey-milovidov)) - - ## Релиз ClickHouse 19.10 {#clickhouse-release-19-10} ### Релиз ClickHouse 19.10.1.5, 2019-07-12 {#clickhouse-release-19-10-1-5-2019-07-12} @@ -1225,15 +1137,13 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим - Исправлена ошибка, которая могла приводить к дедупликации обычных блоков (крайне редко) и вставке дублирующихся блоков (чаще). [#5549](https://github.com/ClickHouse/ClickHouse/pull/5549) ([alesapin](https://github.com/alesapin)) - Исправлена функция `arrayEnumerateUniqRanked` для аргументов с пустыми массивами. [#5559](https://github.com/ClickHouse/ClickHouse/pull/5559) ([proller](https://github.com/proller)) - Больше не выполняется подписка на темы Kafka без намерения забирать какие-либо сообщения. [#5698](https://github.com/ClickHouse/ClickHouse/pull/5698) ([Ivan](https://github.com/abyss7)) -- Настройка `join_use_nulls` больше не оказывает эффекта для типов, которые не могут быть Nullable. [#5700](https://github.com/ClickHouse/ClickHouse/pull/5700) ([Olga Khvostikova](https://github.com/stavrolia)) +- Настройка `join_use_nulls` больше не оказывает эффекта для типов, которые не могут быть Nullable. [#5700](https://github.com/ClickHouse/ClickHouse/pull/5700) ([Olga Khvостикова](https://github.com/stavrolia)) - Исправлены ошибки `Incorrect size of index granularity`. [#5720](https://github.com/ClickHouse/ClickHouse/pull/5720) ([coraxster](https://github.com/coraxster)) - Исправлено переполнение при преобразовании Float в Decimal. [#5607](https://github.com/ClickHouse/ClickHouse/pull/5607) ([coraxster](https://github.com/coraxster)) - Теперь буфер сбрасывается при вызове деструктора `WriteBufferFromHDFS`. Это исправляет запись в `HDFS`. [#5684](https://github.com/ClickHouse/ClickHouse/pull/5684) ([Xindong Peng](https://github.com/eejoin)) #### Улучшения {#improvement-7} - - - Считать пустые ячейки в `CSV` значениями по умолчанию, когда включена настройка `input_format_defaults_for_omitted_fields`. [#5625](https://github.com/ClickHouse/ClickHouse/pull/5625) ([akuzm](https://github.com/akuzm)) - Неблокирующая загрузка внешних словарей. [#5567](https://github.com/ClickHouse/ClickHouse/pull/5567) ([Vitaly Baranov](https://github.com/vitlibar)) - Сетевые тайм-ауты могут динамически изменяться для уже установленных соединений в соответствии с настройками. [#4558](https://github.com/ClickHouse/ClickHouse/pull/4558) ([Konstantin Podshumok](https://github.com/podshumok)) @@ -1250,17 +1160,13 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим - Повышена производительность таблиц MergeTree на очень медленных файловых системах за счёт сокращения числа системных вызовов `stat`. [#5648](https://github.com/ClickHouse/ClickHouse/pull/5648) ([alexey-milovidov](https://github.com/alexey-milovidov)) - Исправлена деградация производительности при чтении из таблиц MergeTree, появившаяся в версии 19.6. Исправляет #5631. [#5633](https://github.com/ClickHouse/ClickHouse/pull/5633) ([alexey-milovidov](https://github.com/alexey-milovidov)) -#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-8} - - +#### Улучшения сборки, тестирования и упаковки {#buildtestingpackaging-improvement-8} - Реализован `TestKeeper` — реализация интерфейса ZooKeeper, используемая для тестирования [#5643](https://github.com/ClickHouse/ClickHouse/pull/5643) ([alexey-milovidov](https://github.com/alexey-milovidov)) ([levushkin aleksej](https://github.com/alexey-milovidov)) - Начиная с этого релиза, `.sql`-тесты могут запускаться изолированно по серверу, параллельно, со случайной базой данных. Это позволяет запускать их быстрее, добавлять новые тесты с пользовательскими конфигурациями сервера и быть уверенными, что разные тесты не влияют друг на друга. [#5554](https://github.com/ClickHouse/ClickHouse/pull/5554) ([Ivan](https://github.com/abyss7)) -- Удалены `` и `` из тестов производительности [#5672](https://github.com/ClickHouse/ClickHouse/pull/5672) ([Olga Khvостikova](https://github.com/stavrolia)) +- Удалены `` и `` из тестов производительности [#5672](https://github.com/ClickHouse/ClickHouse/pull/5672) ([Olga Khvостикова](https://github.com/stavrolia)) - Исправлен тест производительности `select_format` для форматов `Pretty` [#5642](https://github.com/ClickHouse/ClickHouse/pull/5642) ([alexey-milovidov](https://github.com/alexey-milovidov)) - - ## Релиз ClickHouse 19.9 {#clickhouse-release-19-9} ### Релиз ClickHouse 19.9.3.31, 2019-07-05 {#clickhouse-release-19-9-3-31-2019-07-05} @@ -1287,15 +1193,13 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим #### Улучшения {#improvement-8} - Debian init: добавлен тайм-аут остановки сервиса. [#5522](https://github.com/ClickHouse/ClickHouse/pull/5522) ([proller](https://github.com/proller)) -- Добавлена настройка, по умолчанию запрещающая создание таблиц с подозрительными типами для LowCardinality. [#5448](https://github.com/ClickHouse/ClickHouse/pull/5448) ([Olga Khvостикова](https://github.com/stavrolia)) +- Добавлена настройка, по умолчанию запрещающая создание таблиц с подозрительными типами для LowCardinality. [#5448](https://github.com/ClickHouse/ClickHouse/pull/5448) ([Olga Хвостикова](https://github.com/stavrolia)) - Регрессионные функции возвращают веса модели, когда они не используются как состояние (State) в функции `evalMLMethod`. [#5411](https://github.com/ClickHouse/ClickHouse/pull/5411) ([Quid37](https://github.com/Quid37)) - Переименованы и улучшены регрессионные методы. [#5492](https://github.com/ClickHouse/ClickHouse/pull/5492) ([Quid37](https://github.com/Quid37)) - Сделаны более понятными интерфейсы строковых поисковых алгоритмов. [#5586](https://github.com/ClickHouse/ClickHouse/pull/5586) ([Danila Kutenin](https://github.com/danlark1)) #### Исправление ошибок {#bug-fix-24} - - * Устранена возможная потеря данных в Kafka [#5445](https://github.com/ClickHouse/ClickHouse/pull/5445) ([Ivan](https://github.com/abyss7)) * Исправлен потенциальный бесконечный цикл в формате `PrettySpace` при использовании с нулевым числом столбцов [#5560](https://github.com/ClickHouse/ClickHouse/pull/5560) ([Olga Khvостikова](https://github.com/stavrolia)) * Исправлена ошибка переполнения UInt32 в линейных моделях. Разрешена оценка ML-модели при неконстантном аргументе модели. [#5516](https://github.com/ClickHouse/ClickHouse/pull/5516) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) @@ -1315,8 +1219,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим * Бросать исключение при некорректных целых числах в функциях `dictGetT` вместо аварийного завершения. [#5446](https://github.com/ClickHouse/ClickHouse/pull/5446) ([Artem Zuikov](https://github.com/4ertus2)) * Исправлены неверные значения `element_count` и `load_factor` для хешированного словаря в таблице `system.dictionaries`. [#5440](https://github.com/ClickHouse/ClickHouse/pull/5440) ([Azat Khuzhin](https://github.com/azat)) - - #### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-9} - Исправлена сборка без поддержки HTTP-сжатия `Brotli` (cmake‑переменная `ENABLE_BROTLI=OFF`). [#5521](https://github.com/ClickHouse/ClickHouse/pull/5521) ([Anton Yuzhaninov](https://github.com/citrin)) @@ -1325,7 +1227,7 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим - Исправлены все предупреждения при компиляции с gcc‑9. Исправлены некоторые проблемы в contrib. Исправлена внутренняя ошибка компилятора (ICE) в gcc‑9 и отправлен отчёт в bugzilla. [#5498](https://github.com/ClickHouse/ClickHouse/pull/5498) ([Danila Kutenin](https://github.com/danlark1)) - Исправлена компоновка с lld [#5477](https://github.com/ClickHouse/ClickHouse/pull/5477) ([alexey-milovidov](https://github.com/alexey-milovidov)) - Удалены неиспользуемые специализации в словарях [#5452](https://github.com/ClickHouse/ClickHouse/pull/5452) ([Artem Zuikov](https://github.com/4ertus2)) -- Улучшены тесты производительности форматирования и парсинга таблиц для различных типов файлов [#5497](https://github.com/ClickHouse/ClickHouse/pull/5497) ([Olga Khvostikova](https://github.com/stavrolia)) +- Улучшены тесты производительности форматирования и парсинга таблиц для различных типов файлов [#5497](https://github.com/ClickHouse/ClickHouse/pull/5497) ([Olga Khvостикова](https://github.com/stavrolia)) - Внесены исправления для параллельного запуска тестов [#5506](https://github.com/ClickHouse/ClickHouse/pull/5506) ([proller](https://github.com/proller)) - Docker: используются конфигурации из clickhouse-test [#5531](https://github.com/ClickHouse/ClickHouse/pull/5531) ([proller](https://github.com/proller)) - Исправлена компиляция под FreeBSD [#5447](https://github.com/ClickHouse/ClickHouse/pull/5447) ([proller](https://github.com/proller)) @@ -1333,16 +1235,12 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим - Исправлена сборка ClickHouse как подмодуля [#5574](https://github.com/ClickHouse/ClickHouse/pull/5574) ([proller](https://github.com/proller)) - Улучшены тесты производительности JSONExtract [#5444](https://github.com/ClickHouse/ClickHouse/pull/5444) ([Vitaly Baranov](https://github.com/vitlibar)) - - ## Релиз ClickHouse 19.8 {#clickhouse-release-19-8} ### Релиз ClickHouse 19.8.3.8, 2019-06-11 {#clickhouse-release-19-8-3-8-2019-06-11} #### Новые возможности {#new-features} - - * Добавлены функции для работы с JSON [#4686](https://github.com/ClickHouse/ClickHouse/pull/4686) ([hcz](https://github.com/hczhcz)) [#5124](https://github.com/ClickHouse/ClickHouse/pull/5124). ([Vitaly Baranov](https://github.com/vitlibar)) * Добавлена функция basename с поведением, аналогичным одноимённой функции, которая существует во многих языках (`os.path.basename` в Python, `basename` в PHP и т. д.). Работает как с путями в стиле UNIX, так и с путями Windows. [#5136](https://github.com/ClickHouse/ClickHouse/pull/5136) ([Guillaume Tassery](https://github.com/YiuRULE)) * Добавлен синтаксис `LIMIT n, m BY` или `LIMIT m OFFSET n BY` для задания смещения со значением n в предложении LIMIT BY. [#5138](https://github.com/ClickHouse/ClickHouse/pull/5138) ([Anton Popov](https://github.com/CurtizJ)) @@ -1363,12 +1261,8 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим * Добавлены функции `IPv4CIDRtoIPv4Range` и `IPv6CIDRtoIPv6Range` для вычисления нижней и верхней границ диапазона IP-адресов в подсети на основе CIDR. [#5095](https://github.com/ClickHouse/ClickHouse/pull/5095) ([Guillaume Tassery](https://github.com/YiuRULE)) * Добавлен заголовок X-ClickHouse-Summary при отправке запроса по HTTP с включённой настройкой `send_progress_in_http_headers`. Он возвращает ту же информацию, что и заголовок X-ClickHouse-Progress, а также дополнительные данные, такие как количество строк и байт, вставленных этим запросом. [#5116](https://github.com/ClickHouse/ClickHouse/pull/5116) ([Guillaume Tassery](https://github.com/YiuRULE)) - - #### Улучшения {#improvements} - - * Добавлена настройка `max_parts_in_total` для семейства таблиц MergeTree (по умолчанию: 100 000), которая предотвращает небезопасные варианты задания ключа партиционирования #5166. [#5171](https://github.com/ClickHouse/ClickHouse/pull/5171) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `clickhouse-obfuscator`: получать значение seed для отдельных столбцов, комбинируя исходный seed с именем столбца, а не с его позицией. Это позволяет трансформировать наборы данных с несколькими связанными таблицами так, чтобы после трансформации таблицы по-прежнему можно было объединять с помощью JOIN. [#5178](https://github.com/ClickHouse/ClickHouse/pull/5178) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Добавлены функции `JSONExtractRaw`, `JSONExtractKeyAndValues`. Переименованы функции `jsonExtract` в `JSONExtract`. При возникновении ошибок эти функции возвращают соответствующие значения, а не `NULL`. Изменена функция `JSONExtract`: теперь она получает тип возвращаемого результата из своего последнего параметра и не добавляет обёрток Nullable. Реализован переход на RapidJSON в случае, если инструкции AVX2 недоступны. Библиотека simdjson обновлена до новой версии. [#5235](https://github.com/ClickHouse/ClickHouse/pull/5235) ([Vitaly Baranov](https://github.com/vitlibar)) @@ -1392,8 +1286,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим * Учитывать настройки запроса в асинхронных запросах INSERT в таблицы типа Distributed. [#4936](https://github.com/ClickHouse/ClickHouse/pull/4936) ([TCeason](https://github.com/TCeason)) * Переименованы функции: `leastSqr` → `simpleLinearRegression`, `LinearRegression` → `linearRegression`, `LogisticRegression` → `logisticRegression`. [#5391](https://github.com/ClickHouse/ClickHouse/pull/5391) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) - - #### Улучшения производительности {#performance-improvements} - Параллелизация обработки кусков нереплицируемых таблиц MergeTree в запросе ALTER MODIFY. [#4639](https://github.com/ClickHouse/ClickHouse/pull/4639) ([Ivan Kush](https://github.com/IvanKush)) @@ -1415,12 +1307,10 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим - Исправлено повреждение состояния FPU в библиотеке simdjson, приводившее к неправильному вычислению агрегатных функций `uniqHLL` и `uniqCombined`, а также математических функций, таких как `log`. [#5354](https://github.com/ClickHouse/ClickHouse/pull/5354) ([alexey-milovidov](https://github.com/alexey-milovidov)) - Исправлена обработка смешанных случаев константных/неконстантных аргументов в функциях JSON. [#5435](https://github.com/ClickHouse/ClickHouse/pull/5435) ([Vitaly Baranov](https://github.com/vitlibar)) - Исправлена функция `retention`. Теперь все условия, выполняющиеся для строки данных, добавляются в состояние данных. [#5119](https://github.com/ClickHouse/ClickHouse/pull/5119) ([小路](https://github.com/nicelulu)) -- Исправлен тип результата для `quantileExact` с типом Decimal. [#5304](https://github.com/ClickHouse/ClickHouse/pull/5304) ([Artem Zuikov](https://github.com/4ertus2)) +- Исправлен тип результата для `quantileExact` с типом Decimal. [#5304](https://github.com/ClickHouse/ClickHouse/pull/5304) ([Artem Zuиков](https://github.com/4ertus2)) #### Документация {#documentation} - - - Перевести документацию для `CollapsingMergeTree` на китайский. [#5168](https://github.com/ClickHouse/ClickHouse/pull/5168) ([张风啸](https://github.com/AlexZFX)) - Перевести часть документации о движках таблиц на китайский. [#5134](https://github.com/ClickHouse/ClickHouse/pull/5134) @@ -1437,8 +1327,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим - Добавить краткую инструкцию по написанию тестов производительности. [#5408](https://github.com/ClickHouse/ClickHouse/pull/5408) ([alesapin](https://github.com/alesapin)) - Добавить возможность делать подстановки в запросах `CREATE`, `FILL` и `DROP` в тестах производительности. [#5367](https://github.com/ClickHouse/ClickHouse/pull/5367) ([Olga Khvostikova](https://github.com/stavrolia)) - - ## Релиз ClickHouse 19.7 {#clickhouse-release-19-7} ### Релиз ClickHouse 19.7.5.29, 2019-07-05 {#clickhouse-release-19-7-5-29-2019-07-05} @@ -1455,8 +1343,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим #### Исправления ошибок {#bug-fixes-1} - - - Исправлена ошибка сегментации (segfault) при использовании индекса `minmax` со значением `NULL`. [#5246](https://github.com/ClickHouse/ClickHouse/pull/5246) ([Nikita Vasilev](https://github.com/nikvas0)) - Отмечать все входные столбцы в `LIMIT BY` как обязательные к выводу. Это исправляет ошибку `Not found column` в некоторых распределённых запросах. [#5407](https://github.com/ClickHouse/ClickHouse/pull/5407) ([Constantin S. Pan](https://github.com/kvap)) - Исправлена ошибка `Column '0' already exists` в запросе `SELECT .. PREWHERE` для столбца с `DEFAULT`. [#5397](https://github.com/ClickHouse/ClickHouse/pull/5397) ([proller](https://github.com/proller)) @@ -1472,7 +1358,7 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим - Исправлена ошибка сегментации в функции `bitmapHasAny`. [#5528](https://github.com/ClickHouse/ClickHouse/pull/5528) ([Zhichang Yu](https://github.com/yuzhichang)) - Исправлена ошибка, когда пул соединений репликации не пытался повторно резолвить хост, даже если DNS-кэш был очищен. [#5534](https://github.com/ClickHouse/ClickHouse/pull/5534) ([alesapin](https://github.com/alesapin)) - Исправлен запрос `DROP INDEX IF EXISTS`. Теперь запрос `ALTER TABLE ... DROP INDEX IF EXISTS ...` не выбрасывает исключение, если указанный индекс не существует. [#5524](https://github.com/ClickHouse/ClickHouse/pull/5524) ([Gleb Novikov](https://github.com/NanoBjorn)) -- Исправлена колонка супертипа для `UNION ALL`. Ранее возникали случаи с несогласованными данными и типами результирующих столбцов. [#5503](https://github.com/ClickHouse/ClickHouse/pull/5503) ([Artem Zuikov](https://github.com/4ertus2)) +- Исправлен столбец супертипа для `UNION ALL`. Ранее возникали случаи с несогласованными данными и типами результирующих столбцов. [#5503](https://github.com/ClickHouse/ClickHouse/pull/5503) ([Artem Zuikov](https://github.com/4ertus2)) - Пропускать ZNONODE во время обработки DDL-запросов. Ранее, если другой узел удалял znode в очереди задач, узел, который ещё не обработал его, но уже получил список дочерних узлов, завершал поток DDLWorker. [#5489](https://github.com/ClickHouse/ClickHouse/pull/5489) ([Azat Khuzhin](https://github.com/azat)) - Исправлен `INSERT` в таблицу `Distributed()` со столбцом `MATERIALIZED`. [#5429](https://github.com/ClickHouse/ClickHouse/pull/5429) ([Azat Khuzhin](https://github.com/azat)) @@ -1480,8 +1366,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим #### Новые возможности {#new-features-2} - - - Теперь можно ограничивать диапазон значения настройки, которую может задать пользователь. Эти ограничения задаются в профиле пользовательских настроек. [#4931](https://github.com/ClickHouse/ClickHouse/pull/4931) ([Vitaly @@ -1528,9 +1412,7 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим [#5068](https://github.com/ClickHouse/ClickHouse/pull/5068) ([never lee](https://github.com/neverlee)) -#### Улучшения сборки/тестирования/пакетирования {#buildtestingpackaging-improvements-1} - - +#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvements-1} - Обеспечить корректный вывод символов UTF-8 в `clickhouse-test`. [#5084](https://github.com/ClickHouse/ClickHouse/pull/5084) @@ -1547,8 +1429,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим [#5110](https://github.com/ClickHouse/ClickHouse/pull/5110) ([proller](https://github.com/proller)) - - ## Релиз ClickHouse 19.6 {#clickhouse-release-19-6} ### Релиз ClickHouse 19.6.3.18, 2019-06-13 {#clickhouse-release-19-6-3-18-2019-06-13} @@ -1577,8 +1457,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим #### Улучшения {#improvements-1} - - - Добавлена поддержка неконстантных и отрицательных аргументов размера и длины для функции `substringUTF8`. [#4989](https://github.com/ClickHouse/ClickHouse/pull/4989) ([alexey-milovidov](https://github.com/alexey-milovidov)) - Отключено проталкивание (push-down) к правой таблице в LEFT JOIN, к левой таблице в RIGHT JOIN и к обеим таблицам в FULL JOIN. Это исправляет некорректные результаты JOIN в некоторых случаях. [#4846](https://github.com/ClickHouse/ClickHouse/pull/4846) ([Ivan](https://github.com/abyss7)) - `clickhouse-copier`: автоматическая загрузка конфигурации задачи из опции `--task-file`. [#4876](https://github.com/ClickHouse/ClickHouse/pull/4876) ([proller](https://github.com/proller)) @@ -1603,9 +1481,7 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим - Исправлен потенциально неверный результат для `SELECT DISTINCT` с `JOIN`. [#5001](https://github.com/ClickHouse/ClickHouse/pull/5001) ([Artem Zuikov](https://github.com/4ertus2)) - Исправлена крайне редкая гонка данных, которая могла возникать при выполнении запроса с UNION ALL, включающего как минимум два SELECT из system.columns, system.tables, system.parts, system.parts_tables или таблиц семейства Merge, и одновременном выполнении ALTER столбцов соответствующих таблиц. [#5189](https://github.com/ClickHouse/ClickHouse/pull/5189) ([alexey-milovidov](https://github.com/alexey-milovidov)) -#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvements-2} - - +#### Улучшения сборки, тестирования и упаковки {#buildtestingpackaging-improvements-2} - Исправлены сбои тестов при запуске clickhouse-server на другом хосте [#4713](https://github.com/ClickHouse/ClickHouse/pull/4713) ([Vasily Nemkov](https://github.com/Enmk)) - clickhouse-test: отключены управляющие цветовые последовательности в не-TTY окружении. [#4937](https://github.com/ClickHouse/ClickHouse/pull/4937) ([alesapin](https://github.com/alesapin)) @@ -1614,8 +1490,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим - В ClickHouse добавлен Yandex LFAlloc для размещения данных MarkCache и UncompressedCache раздельно, чтобы надёжнее выявлять ошибки сегментации [#4995](https://github.com/ClickHouse/ClickHouse/pull/4995) ([Danila Kutenin](https://github.com/danlark1)) - Python-утилита для упрощения бэкпортов и ведения журналов изменений. [#4949](https://github.com/ClickHouse/ClickHouse/pull/4949) ([Ivan](https://github.com/abyss7)) - - ## Релиз ClickHouse 19.5 {#clickhouse-release-19-5} ### Релиз ClickHouse 19.5.4.22, 2019-05-13 {#clickhouse-release-19-5-4-22-2019-05-13} @@ -1637,19 +1511,15 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим #### Новые возможности {#new-features-4} - - - Добавлено сопоставление с несколькими регулярными выражениями на основе [Hyperscan](https://github.com/intel/hyperscan) (функции `multiMatchAny`, `multiMatchAnyIndex`, `multiFuzzyMatchAny`, `multiFuzzyMatchAnyIndex`). [#4780](https://github.com/ClickHouse/ClickHouse/pull/4780), [#4841](https://github.com/ClickHouse/ClickHouse/pull/4841) ([Danila Kutenin](https://github.com/danlark1)) - Добавлена функция `multiSearchFirstPosition`. [#4780](https://github.com/ClickHouse/ClickHouse/pull/4780) ([Danila Kutenin](https://github.com/danlark1)) - Реализован предопределённый фильтр выражения на уровне строк для таблиц. [#4792](https://github.com/ClickHouse/ClickHouse/pull/4792) ([Ivan](https://github.com/abyss7)) - Добавлен новый тип индексов пропуска данных на основе фильтров Блума (может использоваться для функций `equal`, `in` и `like`). [#4499](https://github.com/ClickHouse/ClickHouse/pull/4499) ([Nikita Vasilev](https://github.com/nikvas0)) - Добавлен `ASOF JOIN`, который позволяет выполнять запросы, соединяющие с наиболее последним известным значением. [#4774](https://github.com/ClickHouse/ClickHouse/pull/4774) [#4867](https://github.com/ClickHouse/ClickHouse/pull/4867) [#4863](https://github.com/ClickHouse/ClickHouse/pull/4863) [#4875](https://github.com/ClickHouse/ClickHouse/pull/4875) ([Martijn Bakker](https://github.com/Gladdy), [Artem Zuikov](https://github.com/4ertus2)) -- Множественные `COMMA JOIN` переписываются в `CROSS JOIN`, а затем, при возможности, в `INNER JOIN`. [#4661](https://github.com/ClickHouse/ClickHouse/pull/4661) ([Artem Zuikov](https://github.com/4ertus2)) +- Множественные `COMMA JOIN` переписываются в `CROSS JOIN`, а затем, при возможности, в `INNER JOIN`. [#4661](https://github.com/ClickHouse/ClickHouse/pull/4661) ([Artem Zuиков](https://github.com/4ertus2)) #### Улучшения {#improvement-9} - - - `topK` и `topKWeighted` теперь поддерживают пользовательский `loadFactor` (что исправляет проблему [#4252](https://github.com/ClickHouse/ClickHouse/issues/4252)). [#4634](https://github.com/ClickHouse/ClickHouse/pull/4634) ([Kirill Danshin](https://github.com/kirillDanshin)) - Разрешено использовать `parallel_replicas_count > 1` даже для таблиц без сэмплирования (для них настройка просто игнорируется). В предыдущих версиях это приводило к исключению. [#4637](https://github.com/ClickHouse/ClickHouse/pull/4637) ([Alexey Elymanov](https://github.com/digitalist)) - Поддержка `CREATE OR REPLACE VIEW`. Позволяет создать представление или задать новое определение одним оператором. [#4654](https://github.com/ClickHouse/ClickHouse/pull/4654) ([Boris Granveaud](https://github.com/bgranvea)) @@ -1667,8 +1537,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим #### Исправления ошибок {#bug-fix-26} - - * Больше не используется `std::terminate` при ошибке выделения памяти. Теперь, как и ожидалось, выбрасывается исключение `std::bad_alloc`. [#4665](https://github.com/ClickHouse/ClickHouse/pull/4665) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Исправлено чтение `capnproto` из буфера. Иногда файлы не загружались успешно по HTTP. [#4674](https://github.com/ClickHouse/ClickHouse/pull/4674) ([Vladislav](https://github.com/smirnov-vs)) * Исправлена ошибка `Unknown log entry type: 0` после выполнения запроса `OPTIMIZE TABLE FINAL`. [#4683](https://github.com/ClickHouse/ClickHouse/pull/4683) ([Amos Bird](https://github.com/amosbird)) @@ -1707,8 +1575,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим * Исправлен результат работы функции `toISOWeek` для 1970 года. [#4988](https://github.com/ClickHouse/ClickHouse/pull/4988) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Исправлено дублирование запросов `DROP`, `TRUNCATE` и `OPTIMIZE` при выполнении с модификатором `ON CLUSTER` для семейства таблиц `ReplicatedMergeTree*`. [#4991](https://github.com/ClickHouse/ClickHouse/pull/4991) ([alesapin](https://github.com/alesapin)) - - #### Обратное несовместимое изменение {#backward-incompatible-change-8} - Настройка `insert_sample_with_metadata` переименована в `input_format_defaults_for_omitted_fields`. [#4771](https://github.com/ClickHouse/ClickHouse/pull/4771) ([Artem Zuikov](https://github.com/4ertus2)) @@ -1718,12 +1584,10 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим #### Улучшение производительности {#performance-improvement-6} - Оптимизирован поисковый алгоритм Volnitsky за счёт инлайнинга, что даёт около 5–10% прироста скорости поиска для запросов с большим количеством шаблонов или большим числом похожих биграмм. [#4862](https://github.com/ClickHouse/ClickHouse/pull/4862) ([Danila Kutenin](https://github.com/danlark1)) -- Исправлена проблема с производительностью при значении настройки `use_uncompressed_cache` больше нуля, которая проявлялась, когда все читаемые данные содержались в кэше. [#4913](https://github.com/ClickHouse/ClickHouse/pull/4913) ([alesapin](https://github.com/alesapin)) +- Исправлена проблема с производительностью при значении настройки `use_uncompressed_cache` больше нуля, которая проявлялась, когда все читаемые данные находились в кэше. [#4913](https://github.com/ClickHouse/ClickHouse/pull/4913) ([alesapin](https://github.com/alesapin)) #### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-10} - - - Усиление защиты отладочной сборки: более детальные отображения памяти и ASLR; добавлена защита памяти для кэша меток и индексов. Это позволяет находить больше ошибок перезаписи памяти в случаях, когда ASan и MSan не могут этого сделать. [#4632](https://github.com/ClickHouse/ClickHouse/pull/4632) ([alexey-milovidov](https://github.com/alexey-milovidov)) - Добавлена поддержка переменных CMake `ENABLE_PROTOBUF`, `ENABLE_PARQUET` и `ENABLE_BROTLI`, позволяющих включать/отключать указанные выше возможности (так же, как мы можем делать для librdkafka, mysql и т. д.). [#4669](https://github.com/ClickHouse/ClickHouse/pull/4669) ([Silviu Caragea](https://github.com/silviucpp)) - Добавлена возможность выводить список процессов и стек-трейсы всех потоков, если некоторые запросы зависли после выполнения тестов. [#4675](https://github.com/ClickHouse/ClickHouse/pull/4675) ([alesapin](https://github.com/alesapin)) @@ -1737,16 +1601,12 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим - Отключено использование `mremap` при компиляции с Thread Sanitizer. Как ни странно, TSan не перехватывает `mremap` (хотя перехватывает `mmap`, `munmap`), что приводило к ложным срабатываниям. Исправлен отчёт TSan в stateful-тестах. [#4859](https://github.com/ClickHouse/ClickHouse/pull/4859) ([alexey-milovidov](https://github.com/alexey-milovidov)) - Добавлен тест, проверяющий использование схемы формата через HTTP-интерфейс. [#4864](https://github.com/ClickHouse/ClickHouse/pull/4864) ([Vitaly Baranov](https://github.com/vitlibar)) - - ## Релиз ClickHouse 19.4 {#clickhouse-release-19-4} ### Релиз ClickHouse 19.4.4.33, 2019-04-17 {#clickhouse-release-19-4-4-33-2019-04-17} #### Исправления ошибок {#bug-fixes-7} - - * Исключено использование `std::terminate` при ошибке выделения памяти. Теперь, как и ожидалось, выбрасывается исключение `std::bad_alloc`. [#4665](https://github.com/ClickHouse/ClickHouse/pull/4665) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Исправлено чтение `capnproto` из буфера. Загрузка файлов по HTTP иногда завершалась неудачно. [#4674](https://github.com/ClickHouse/ClickHouse/pull/4674) ([Vladislav](https://github.com/smirnov-vs)) * Исправлена ошибка `Unknown log entry type: 0`, возникавшая после выполнения запроса `OPTIMIZE TABLE FINAL`. [#4683](https://github.com/ClickHouse/ClickHouse/pull/4683) ([Amos Bird](https://github.com/amosbird)) @@ -1780,8 +1640,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим * Исправлен результат работы функции `toISOWeek` для 1970 года. [#4988](https://github.com/ClickHouse/ClickHouse/pull/4988) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Исправлено дублирование запросов `DROP`, `TRUNCATE` и `OPTIMIZE` при выполнении с модификатором `ON CLUSTER` для семейства таблиц `ReplicatedMergeTree*`. [#4991](https://github.com/ClickHouse/ClickHouse/pull/4991) ([alesapin](https://github.com/alesapin)) - - #### Улучшения {#improvements-2} - Хранить обычные столбцы, `DEFAULT`, `MATERIALIZED` и `ALIAS` в одном списке (исправляет проблему [#2867](https://github.com/ClickHouse/ClickHouse/issues/2867)). [#4707](https://github.com/ClickHouse/ClickHouse/pull/4707) ([Alex Zatelepin](https://github.com/ztlpn)) @@ -1813,8 +1671,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим #### Новые возможности {#new-features-5} - - - Добавлена полная поддержка формата `Protobuf` (ввод и вывод, вложенные структуры данных). [#4174](https://github.com/ClickHouse/ClickHouse/pull/4174) [#4493](https://github.com/ClickHouse/ClickHouse/pull/4493) ([Vitaly Baranov](https://github.com/vitlibar)) - Добавлены bitmap-функции с использованием Roaring Bitmaps. [#4207](https://github.com/ClickHouse/ClickHouse/pull/4207) ([Andy Yang](https://github.com/andyyzh)) [#4568](https://github.com/ClickHouse/ClickHouse/pull/4568) ([Vitaly Baranov](https://github.com/vitlibar)) - Добавлена поддержка формата Parquet. [#4448](https://github.com/ClickHouse/ClickHouse/pull/4448) ([proller](https://github.com/proller)) @@ -1827,8 +1683,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим #### Исправления ошибок {#bug-fixes-11} - - * Этот релиз также содержит все исправления ошибок из версий 19.3 и 19.1. * Исправлена ошибка в индексах пропуска данных: порядок гранул после выполнения INSERT был неверным. [#4407](https://github.com/ClickHouse/ClickHouse/pull/4407) ([Nikita Vasilev](https://github.com/nikvas0)) * Исправлен индекс `set` для столбцов `Nullable` и `LowCardinality`. Ранее использование индекса `set` со столбцом `Nullable` или `LowCardinality` приводило к ошибке `Data type must be deserialized with multiple streams` при выполнении запроса `SELECT`. [#4594](https://github.com/ClickHouse/ClickHouse/pull/4594) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) @@ -1850,8 +1704,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим * Исправлена обработка лямбда‑функций оптимизатором предикатов. [#4408](https://github.com/ClickHouse/ClickHouse/pull/4408) ([Winter Zhang](https://github.com/zhang2014)) * Несколько JOIN — несколько исправлений. [#4595](https://github.com/ClickHouse/ClickHouse/pull/4595) ([Artem Zuikov](https://github.com/4ertus2)) - - #### Улучшения {#improvements-3} - Поддержка псевдонимов в секции JOIN ON для столбцов правой таблицы. [#4412](https://github.com/ClickHouse/ClickHouse/pull/4412) ([Artem Zuikov](https://github.com/4ertus2)) @@ -1868,10 +1720,8 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим #### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-12} - - - Добавлена поддержка clang-9 [#4604](https://github.com/ClickHouse/ClickHouse/pull/4604) ([alexey-milovidov](https://github.com/alexey-milovidov)) -- Исправлены некорректные инструкции `__asm__` (снова) [#4621](https://github.com/ClickHouse/ClickHouse/pull/4621) ([Konstantin Podshumok](https://github.com/podshumok)) +- Исправлены некорректные инструкции `__asm__` (снова) [#4621](https://github.com/ClickHouse/ClickHouse/pull/4621) ([Konstantин Podshumok](https://github.com/podshumok)) - Добавлена возможность задавать настройки для `clickhouse-performance-test` из командной строки. [#4437](https://github.com/ClickHouse/ClickHouse/pull/4437) ([alesapin](https://github.com/alesapin)) - Добавлены тесты словарей в интеграционные тесты. [#4477](https://github.com/ClickHouse/ClickHouse/pull/4477) ([alesapin](https://github.com/alesapin)) - Добавлены запросы из бенчмарка на сайте в автоматизированные тесты производительности. [#4496](https://github.com/ClickHouse/ClickHouse/pull/4496) ([alexey-milovidov](https://github.com/alexey-milovidov)) @@ -1881,8 +1731,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим - Исправлена ошибка компиляции на Mac. [#4371](https://github.com/ClickHouse/ClickHouse/pull/4371) ([Vitaly Baranov](https://github.com/vitlibar)) - Исправления сборки для FreeBSD и различных нестандартных конфигураций сборки. [#4444](https://github.com/ClickHouse/ClickHouse/pull/4444) ([proller](https://github.com/proller)) - - ## Релиз ClickHouse 19.3 {#clickhouse-release-19-3} ### Релиз ClickHouse 19.3.9.1, 2019-04-02 {#clickhouse-release-19-3-9-1-2019-04-02} @@ -1901,7 +1749,7 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим #### Исправления ошибок {#bug-fixes-13} -- Исправлена ошибка, описанная в #3920. Она проявляется как случайная порча кэша (сообщения `Unknown codec family code`, `Cannot seek through file`) и ошибки сегментации. Эта ошибка впервые появилась в версии 19.1 и присутствует в версиях до 19.1.10 и 19.3.6 включительно. [#4623](https://github.com/ClickHouse/ClickHouse/pull/4623) ([alexey-milovidov](https://github.com/alexey-milovidov)) +- Исправлена ошибка, описанная в #3920. Она проявляется как случайное повреждение кэша (сообщения `Unknown codec family code`, `Cannot seek through file`) и ошибки сегментации. Эта ошибка впервые появилась в версии 19.1 и присутствует в версиях до 19.1.10 и 19.3.6 включительно. [#4623](https://github.com/ClickHouse/ClickHouse/pull/4623) ([alexey-milovidov](https://github.com/alexey-milovidov)) ### Релиз ClickHouse 19.3.6, 2019-03-02 {#clickhouse-release-19-3-6-2019-03-02} @@ -1916,8 +1764,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим #### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvements-3} - - - Исправлена сборка с включенным AVX. [#4527](https://github.com/ClickHouse/ClickHouse/pull/4527) ([alexey-milovidov](https://github.com/alexey-milovidov)) - Включен расширенный учет и учет ввода-вывода на основе заранее известной корректной версии вместо ядра, под которое производится компиляция. [#4541](https://github.com/ClickHouse/ClickHouse/pull/4541) ([nvartolomei](https://github.com/nvartolomei)) - Добавлена возможность пропускать установку `core_dump.size_limit`, теперь в случае неудачной установки лимита выводится предупреждение вместо генерации исключения. [#4473](https://github.com/ClickHouse/ClickHouse/pull/4473) ([proller](https://github.com/proller)) @@ -1947,8 +1793,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим - Множество исправлений сборки под FreeBSD. [#4397](https://github.com/ClickHouse/ClickHouse/pull/4397) ([proller](https://github.com/proller)) - Исправлена подстановка псевдонимов в запросах с подзапросом, содержащим тот же псевдоним (issue [#4110](https://github.com/ClickHouse/ClickHouse/issues/4110)). [#4351](https://github.com/ClickHouse/ClickHouse/pull/4351) ([Artem Zuikov](https://github.com/4ertus2)) - - #### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvements-4} - Добавлена возможность запускать `clickhouse-server` для stateless-тестов в образе Docker. [#4347](https://github.com/ClickHouse/ClickHouse/pull/4347) ([Vasily Nemkov](https://github.com/Enmk)) @@ -1957,8 +1801,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим #### Новые возможности {#new-features-6} - - - Добавлен оператор `KILL MUTATION`, позволяющий удалять мутации, которые по каким‑либо причинам застряли. В таблицу `system.mutations` добавлены поля `latest_failed_part`, `latest_fail_time`, `latest_fail_reason` для упрощения диагностики. [#4287](https://github.com/ClickHouse/ClickHouse/pull/4287) ([Alex Zatelepin](https://github.com/ztlpn)) - Добавлена агрегатная функция `entropy`, вычисляющая энтропию Шеннона. [#4238](https://github.com/ClickHouse/ClickHouse/pull/4238) ([Quid37](https://github.com/Quid37)) - Добавлена возможность отправлять запросы вида `INSERT INTO tbl VALUES (....` на сервер без разделения на части `query` и `data`. [#4301](https://github.com/ClickHouse/ClickHouse/pull/4301) ([alesapin](https://github.com/alesapin)) @@ -1980,15 +1822,11 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим #### Экспериментальные возможности {#experimental-features-2} - - - Добавлены пропускающие индексы данных `minmax` и `set` для движков таблиц семейства MergeTree. [#4143](https://github.com/ClickHouse/ClickHouse/pull/4143) ([Nikita Vasilev](https://github.com/nikvas0)) - Добавлено преобразование `CROSS JOIN` в `INNER JOIN`, если это возможно. [#4221](https://github.com/ClickHouse/ClickHouse/pull/4221) [#4266](https://github.com/ClickHouse/ClickHouse/pull/4266) ([Artem Zuikov](https://github.com/4ertus2)) #### Исправления ошибок {#bug-fixes-17} - - * Исправлено сообщение об ошибке `Not found column` для дублирующихся столбцов в разделе `JOIN ON`. [#4279](https://github.com/ClickHouse/ClickHouse/pull/4279) ([Artem Zuikov](https://github.com/4ertus2)) * Команда `START REPLICATED SENDS` теперь запускает реплицированные отправки. [#4229](https://github.com/ClickHouse/ClickHouse/pull/4229) ([nvartolomei](https://github.com/nvartolomei)) * Исправлено выполнение агрегатных функций с аргументами типа `Array(LowCardinality)`. [#4055](https://github.com/ClickHouse/ClickHouse/pull/4055) ([KochetovNicolai](https://github.com/KochetovNicolai)) @@ -2017,8 +1855,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим * Исправлено редкое состояние гонки при удалении старых частей данных, из‑за которого операция могла завершаться ошибкой `File not found`. [#4378](https://github.com/ClickHouse/ClickHouse/pull/4378) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Исправлен установочный пакет, в котором отсутствовал /etc/clickhouse-server/config.xml. [#4343](https://github.com/ClickHouse/ClickHouse/pull/4343) ([proller](https://github.com/proller)) - - #### Улучшения сборки/тестирования/пакетирования {#buildtestingpackaging-improvements-5} - Пакет Debian: исправлена ссылка /etc/clickhouse-server/preprocessed в соответствии с конфигурацией. [#4205](https://github.com/ClickHouse/ClickHouse/pull/4205) ([proller](https://github.com/proller)) @@ -2040,9 +1876,7 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим - Добавлена проверка инструкций SSE и AVX при запуске. [#4234](https://github.com/ClickHouse/ClickHouse/pull/4234) ([Igr](https://github.com/igron99)) - Скрипт инициализации будет ожидать запуска сервера. [#4281](https://github.com/ClickHouse/ClickHouse/pull/4281) ([proller](https://github.com/proller)) -#### Обратные несовместимые изменения {#backward-incompatible-changes-1} - - +#### Обратно несовместимые изменения {#backward-incompatible-changes-1} - Удалена настройка `allow_experimental_low_cardinality_type`. Типы данных `LowCardinality` готовы для промышленной эксплуатации. [#4323](https://github.com/ClickHouse/ClickHouse/pull/4323) ([alexey-milovidov](https://github.com/alexey-milovidov)) - Уменьшен размер кэша меток и размер кэша несжатых данных в соответствии с доступным объёмом памяти. [#4240](https://github.com/ClickHouse/ClickHouse/pull/4240) ([Lopatin Konstantin](https://github.com/k-lopatin)) @@ -2056,8 +1890,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим #### Улучшения {#improvements-5} - - - Реализована поддержка AIO для FreeBSD. [#4305](https://github.com/ClickHouse/ClickHouse/pull/4305) ([urgordeadbeef](https://github.com/urgordeadbeef)) - `SELECT * FROM a JOIN b USING a, b` теперь возвращает столбцы `a` и `b` только из левой таблицы. [#4141](https://github.com/ClickHouse/ClickHouse/pull/4141) ([Artem Zuikov](https://github.com/4ertus2)) - Добавлена возможность использовать опцию клиента `-C` как эквивалент опции `-c`. [#4232](https://github.com/ClickHouse/ClickHouse/pull/4232) ([syominsergey](https://github.com/syominsergey)) @@ -2072,8 +1904,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим - Улучшено время завершения работы сервера и ожидания выполнения операций ALTER. [#4372](https://github.com/ClickHouse/ClickHouse/pull/4372) ([alexey-milovidov](https://github.com/alexey-milovidov)) - Добавлена информация о настройке replicated_can_become_leader в system.replicas и добавлено логирование, если реплика не пытается стать лидером. [#4379](https://github.com/ClickHouse/ClickHouse/pull/4379) ([Alex Zatelepin](https://github.com/ztlpn)) - - ## Релиз ClickHouse 19.1 {#clickhouse-release-19-1} ### Релиз ClickHouse 19.1.14, 2019-03-14 {#clickhouse-release-19-1-14-2019-03-14} @@ -2088,8 +1918,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим В этот релиз входит точно такой же набор патчей, как и в версии 19.3.6. - - ## Релиз ClickHouse 19.1 {#clickhouse-release-19-1-1} ### Релиз ClickHouse 19.1.9, 2019-02-21 {#clickhouse-release-19-1-9-2019-02-21} @@ -2105,16 +1933,12 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим - Исправлена проблема с установкой пакета при отсутствии файла /etc/clickhouse-server/config.xml. [#4343](https://github.com/ClickHouse/ClickHouse/pull/4343) ([proller](https://github.com/proller)) - - ## Релиз ClickHouse 19.1 {#clickhouse-release-19-1-2} ### Релиз ClickHouse 19.1.7, 2019-02-15 {#clickhouse-release-19-1-7-2019-02-15} #### Исправления ошибок {#bug-fixes-20} - - * Корректно возвращать нужный тип и корректно обрабатывать блокировки в функции `joinGet`. [#4153](https://github.com/ClickHouse/ClickHouse/pull/4153) ([Amos Bird](https://github.com/amosbird)) * Исправлена ошибка, возникавшая при попытке повторного создания системных логов во время остановки сервера. [#4254](https://github.com/ClickHouse/ClickHouse/pull/4254) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Исправлена ошибка: если существует база данных, использующая движок `Dictionary`, все словари принудительно загружаются при запуске сервера, и если среди них есть словарь с источником ClickHouse на localhost, такой словарь не может загрузиться. [#4255](https://github.com/ClickHouse/ClickHouse/pull/4255) ([alexey-milovidov](https://github.com/alexey-milovidov)) @@ -2140,8 +1964,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим * Исправлена ошибка некорректного сравнения типов `Date` и `DateTime`. [#4237](https://github.com/ClickHouse/ClickHouse/pull/4237) ([valexey](https://github.com/valexey)) * Исправлена ошибка, приводившая к некорректному результату при использовании аргументов `Date` и `DateTime` в ветвях условного оператора (функции `if`). Добавлен универсальный случай для функции `if`. [#4243](https://github.com/ClickHouse/ClickHouse/pull/4243) ([alexey-milovidov](https://github.com/alexey-milovidov)) - - ### Релиз ClickHouse 19.1.6, 2019-01-24 {#clickhouse-release-19-1-6-2019-01-24} #### Новые возможности {#new-features-7} @@ -2161,16 +1983,12 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим - Добавлены хеш-функции `javaHash`, `hiveHash`. [#3811](https://github.com/ClickHouse/ClickHouse/pull/3811) ([shangshujie365](https://github.com/shangshujie365)) - Добавлена табличная функция `remoteSecure`. Функция работает как `remote`, но использует защищённое соединение. [#4088](https://github.com/ClickHouse/ClickHouse/pull/4088) ([proller](https://github.com/proller)) -#### Экспериментальные возможности {#experimental-features-3} - - +#### Экспериментальные функции {#experimental-features-3} - Добавлена эмуляция нескольких операций JOIN (настройка `allow_experimental_multiple_joins_emulation`). [#3946](https://github.com/ClickHouse/ClickHouse/pull/3946) ([Artem Zuikov](https://github.com/4ertus2)) #### Исправления ошибок {#bug-fixes-21} - - * Настройка `compiled_expression_cache_size` теперь по умолчанию имеет ограниченный размер, что снижает потребление памяти. [#4041](https://github.com/ClickHouse/ClickHouse/pull/4041) ([alesapin](https://github.com/alesapin)) * Исправлена ошибка, из-за которой возникали зависания в потоках, выполняющих ALTER-операции с реплицируемыми таблицами, и в потоке, обновляющем конфигурацию из ZooKeeper. [#2947](https://github.com/ClickHouse/ClickHouse/issues/2947) [#3891](https://github.com/ClickHouse/ClickHouse/issues/3891) [#3934](https://github.com/ClickHouse/ClickHouse/pull/3934) ([Alex Zatelepin](https://github.com/ztlpn)) * Исправлено состояние гонки при выполнении распределённой операции ALTER. Из-за него более одной реплики могли пытаться выполнить задачу, и все реплики, кроме одной, завершались с ошибкой ZooKeeper. [#3904](https://github.com/ClickHouse/ClickHouse/pull/3904) ([Alex Zatelepin](https://github.com/ztlpn)) @@ -2198,8 +2016,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим * Исправлены псевдонимы столбцов в запросе, использующем синтаксис `JOIN ON` и распределённые таблицы. [#3980](https://github.com/ClickHouse/ClickHouse/pull/3980) ([Winter Zhang](https://github.com/zhang2014)) * Исправлена ошибка во внутренней реализации `quantileTDigest` (обнаружена Артёмом Вахрушевым). Эта ошибка никогда не проявлялась в ClickHouse и была актуальна только для тех, кто использует кодовую базу ClickHouse непосредственно как библиотеку. [#3935](https://github.com/ClickHouse/ClickHouse/pull/3935) ([alexey-milovidov](https://github.com/alexey-milovidov)) - - #### Улучшения {#improvements-6} - Поддержка `IF NOT EXISTS` в операторах `ALTER TABLE ADD COLUMN`, а также `IF EXISTS` в `DROP/MODIFY/CLEAR/COMMENT COLUMN`. [#3900](https://github.com/ClickHouse/ClickHouse/pull/3900) ([Boris Granveaud](https://github.com/bgranvea)) @@ -2217,8 +2033,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим #### Улучшения производительности {#performance-improvements-5} - - - Добавлена настройка MergeTree `use_minimalistic_part_header_in_zookeeper`. Если она включена, реплицируемые таблицы будут хранить компактные метаданные парта в одном znode парта. Это может значительно уменьшить размер снапшотов ZooKeeper (особенно если в таблицах много столбцов). Имейте в виду, что после включения этой настройки вы не сможете откатиться на версию, которая её не поддерживает. [#3960](https://github.com/ClickHouse/ClickHouse/pull/3960) ([Alex Zatelepin](https://github.com/ztlpn)) - Добавлена реализация на основе ДКА для функций `sequenceMatch` и `sequenceCount` в случае, когда шаблон не содержит времени. [#4004](https://github.com/ClickHouse/ClickHouse/pull/4004) ([Léo Ercolanelli](https://github.com/ercolanelli-leo)) - Улучшена производительность сериализации целых чисел. [#3968](https://github.com/ClickHouse/ClickHouse/pull/3968) ([Amos Bird](https://github.com/amosbird)) @@ -2233,8 +2047,6 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим #### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvements-6} - - * Добавлена поддержка сборки под архитектуру PowerPC (`ppc64le`). [#4132](https://github.com/ClickHouse/ClickHouse/pull/4132) ([Danila Kutenin](https://github.com/danlark1)) * Функциональные тесты с сохранением состояния выполняются на общедоступном наборе данных. [#3969](https://github.com/ClickHouse/ClickHouse/pull/3969) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Исправлена ошибка, из-за которой сервер не мог запуститься с сообщением `bash: /usr/bin/clickhouse-extract-from-config: Operation not permitted` в Docker или systemd-nspawn. [#4136](https://github.com/ClickHouse/ClickHouse/pull/4136) ([alexey-milovidov](https://github.com/alexey-milovidov)) @@ -2260,8 +2072,4 @@ keywords: ['ClickHouse 2019', 'список изменений 2019', 'прим * Исправлены опечатки в комментариях и строковых литералах в модуле `dbms`. [#4122](https://github.com/ClickHouse/ClickHouse/pull/4122) ([maiha](https://github.com/maiha)) * Исправлены опечатки в комментариях. [#4089](https://github.com/ClickHouse/ClickHouse/pull/4089) ([Evgenii Pravda](https://github.com/kvinty)) - - - - -## [Журнал изменений за 2018 год](./2018.md) {#changelog-for-2018} +## [Журнал изменений за 2018 год](./2018.md) {#changelog-for-2018} \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2020.md b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2020.md index 1d8c81464e6..641f505c73c 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2020.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2020.md @@ -1,6 +1,6 @@ --- slug: /whats-new/changelog/2020 -sidebar_position: 7 +sidebar_position: -2020 sidebar_label: '2020' title: 'Журнал изменений за 2020 год' description: 'Журнал изменений за 2020 год' @@ -27,13 +27,13 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме ### Релиз ClickHouse v20.12.4.5-stable, 2020-12-24 {#clickhouse-release-v201245-stable-2020-12-24} -#### Исправление ошибок {#bug-fix-1} +#### Исправления ошибок {#bug-fix-1} * Исправлена проблема, при которой процесс `clickhouse-odbc-bridge` был недоступен для сервера на машинах с двойным стеком IPv4/IPv6. Также исправлена проблема, при которой обновления ODBC-словарей выполнялись с использованием некорректных запросов и/или приводили к сбоям. Возможно, закрывает [#14489](https://github.com/ClickHouse/ClickHouse/issues/14489). [#18278](https://github.com/ClickHouse/ClickHouse/pull/18278) ([Denis Glazachev](https://github.com/traceon)). * Исправлено сравнение ключей между типами Enum и Int. Это исправляет [#17989](https://github.com/ClickHouse/ClickHouse/issues/17989). [#18214](https://github.com/ClickHouse/ClickHouse/pull/18214) ([Amos Bird](https://github.com/amosbird)). * Исправлен сбой при преобразовании уникального ключа в движке базы данных `MaterializeMySQL`. Это исправляет [#18186](https://github.com/ClickHouse/ClickHouse/issues/18186) и [#16372](https://github.com/ClickHouse/ClickHouse/issues/16372). [#18211](https://github.com/ClickHouse/ClickHouse/pull/18211) ([Winter Zhang](https://github.com/zhang2014)). -* Исправлена ошибка `std::out_of_range: basic_string` при разборе URL S3. [#18059](https://github.com/ClickHouse/ClickHouse/pull/18059) ([Vladimir Chebotarev](https://github.com/excitoon)). -* Исправлена проблема, из-за которой некоторые таблицы не синхронизировались в ClickHouse из MySQL из-за того, что преобразование префиксного индекса MySQL не поддерживалось для MaterializeMySQL. Это исправляет [#15187](https://github.com/ClickHouse/ClickHouse/issues/15187) и [#17912](https://github.com/ClickHouse/ClickHouse/issues/17912). [#17944](https://github.com/ClickHouse/ClickHouse/pull/17944) ([Winter Zhang](https://github.com/zhang2014)). +* Исправлена ошибка `std::out_of_range: basic_string` при разборе URL-адреса S3. [#18059](https://github.com/ClickHouse/ClickHouse/pull/18059) ([Vladimir Chebotarev](https://github.com/excitoon)). +* Исправлена проблема, из-за которой некоторые таблицы не синхронизировались в ClickHouse из MySQL, так как преобразование префиксного индекса MySQL не поддерживалось для MaterializeMySQL. Это исправляет [#15187](https://github.com/ClickHouse/ClickHouse/issues/15187) и [#17912](https://github.com/ClickHouse/ClickHouse/issues/17912). [#17944](https://github.com/ClickHouse/ClickHouse/pull/17944) ([Winter Zhang](https://github.com/zhang2014)). * Исправлена проблема, при которой оптимизация запроса давала неверный результат, если запрос содержит `ARRAY JOIN`. [#17887](https://github.com/ClickHouse/ClickHouse/pull/17887) ([sundyli](https://github.com/sundy-li)). * Исправлена возможная ошибка сегментации в агрегатной функции `topK`. Это закрывает [#17404](https://github.com/ClickHouse/ClickHouse/issues/17404). [#17845](https://github.com/ClickHouse/ClickHouse/pull/17845) ([Maksim Kita](https://github.com/kitaisreal)). * Исправлена проблема, из-за которой таблица `system.stack_trace` была пустой, когда сервер запущен в режиме демона. [#17630](https://github.com/ClickHouse/ClickHouse/pull/17630) ([Amos Bird](https://github.com/amosbird)). @@ -54,7 +54,7 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Добавлена возможность по умолчанию задавать значение enum как его идентификатор в форматах TSV и CSV. [#16834](https://github.com/ClickHouse/ClickHouse/pull/16834) ([Kruglov Pavel](https://github.com/Avogar)). * Добавлена поддержка COLLATE для Nullable, LowCardinality, Array и Tuple, где вложенным типом является String. Также выполнен рефакторинг кода, связанного с коллациями, в ColumnString.cpp. [#16273](https://github.com/ClickHouse/ClickHouse/pull/16273) ([Kruglov Pavel](https://github.com/Avogar)). * Новая функция `tcpPort` возвращает TCP-порт, на котором этот сервер принимает соединения. [#17134](https://github.com/ClickHouse/ClickHouse/pull/17134) ([Ivan](https://github.com/abyss7)). -* Добавлены новые математические функции: `acosh`, `asinh`, `atan2`, `atanh`, `cosh`, `hypot`, `log1p`, `sinh`. [#16636](https://github.com/ClickHouse/ClickHouse/pull/16636) ([Konstantin Malanchev](https://github.com/hombit)). +* Добавлены новые математические функции: `acosh`, `asinh`, `atan2`, `atanh`, `cosh`, `hypot`, `log1p`, `sinh`. [#16636](https://github.com/ClickHouse/ClickHouse/pull/16636) ([Константин Malanchev](https://github.com/hombit)). * Добавлена возможность распределять слияния между разными репликами. Введена настройка MergeTree `execute_merges_on_single_replica_time_threshold`. [#16424](https://github.com/ClickHouse/ClickHouse/pull/16424) ([filimonov](https://github.com/filimonov)). * Добавлена настройка `aggregate_functions_null_for_empty` для совместимости со стандартом SQL. Эта опция переписывает все агрегатные функции в запросе, добавляя к ним суффикс -OrNull. Реализует [10273](https://github.com/ClickHouse/ClickHouse/issues/10273). [#16123](https://github.com/ClickHouse/ClickHouse/pull/16123) ([flynn](https://github.com/ucasFL)). * Обновлён разбор значений типов DateTime и DateTime64 для поддержки строкового литерала даты. [#16040](https://github.com/ClickHouse/ClickHouse/pull/16040) ([Maksim Kita](https://github.com/kitaisreal)). @@ -140,7 +140,7 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Используется алгоритм Floyd–Rivest, который наилучшим образом подходит для сценария частичной сортировки в ClickHouse. Бенчмарки находятся в https://github.com/danlark1/miniselect и [здесь](https://drive.google.com/drive/folders/1DHEaeXgZuX6AJ9eByeZ8iQVQv0ueP8XM). [#16825](https://github.com/ClickHouse/ClickHouse/pull/16825) ([Danila Kutenin](https://github.com/danlark1)). * Теперь семейство движков `ReplicatedMergeTree` использует отдельный пул потоков для реплицированных выборок данных. Размер пула ограничен настройкой `background_fetches_pool_size`, которую можно изменить при перезапуске сервера. Значение по умолчанию — 3, и это означает, что максимальное число параллельных выборок равно 3 (и этого достаточно для загрузки сети 10G). Исправляет #520. [#16390](https://github.com/ClickHouse/ClickHouse/pull/16390) ([alesapin](https://github.com/alesapin)). * Исправлен неконтролируемый рост состояния `quantileTDigest`. [#16680](https://github.com/ClickHouse/ClickHouse/pull/16680) ([hrissan](https://github.com/hrissan)). -* Добавлено описание подзапроса `VIEW` в `EXPLAIN`. Ограничена оптимизация проталкивания LIMIT для `VIEW`. Добавлены локальные реплики `Distributed` в план запроса. [#14936](https://github.com/ClickHouse/ClickHouse/pull/14936) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Добавлено описание подзапроса `VIEW` в `EXPLAIN`. Ограничена оптимизация проталкивания LIMIT для `VIEW`. Добавлены локальные реплики `Distributed` в план запроса. [#14936](https://github.com/ClickHouse/ClickHouse/pull/14936) ([Nikolai Кochetov](https://github.com/KochetovNicolai)). * Исправлена работа optimize_read_in_order/optimize_aggregation_in_order с max_threads > 0 и выражением в ORDER BY. [#16637](https://github.com/ClickHouse/ClickHouse/pull/16637) ([Azat Khuzhin](https://github.com/azat)). * Улучшена производительность чтения из таблиц `Merge` поверх очень большого числа таблиц `MergeTree`. Исправляет [#7748](https://github.com/ClickHouse/ClickHouse/issues/7748). [#16988](https://github.com/ClickHouse/ClickHouse/pull/16988) ([Anton Popov](https://github.com/CurtizJ)). * Теперь можно безопасно отсекать партиции при точном совпадении. Полезный пример: предположим, таблица разбита на партиции по `intHash64(x) % 100`, и в запросе есть условие на `intHash64(x) % 100` дословно, а не на x. [#16253](https://github.com/ClickHouse/ClickHouse/pull/16253) ([Amos Bird](https://github.com/amosbird)). @@ -149,7 +149,7 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Добавлен движок таблиц `EmbeddedRocksDB` (может использоваться для словарей). [#15073](https://github.com/ClickHouse/ClickHouse/pull/15073) ([sundyli](https://github.com/sundy-li)). -#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-1} +#### Улучшения в сборке, тестировании и упаковке {#buildtestingpackaging-improvement-1} * Улучшено тестовое покрытие при сборке образов. [#17233](https://github.com/ClickHouse/ClickHouse/pull/17233) ([alesapin](https://github.com/alesapin)). * Обновлены встроенные данные часовых поясов до версии 2020d (также обновлён cctz до последнего состояния ветки master). [#17204](https://github.com/ClickHouse/ClickHouse/pull/17204) ([filimonov](https://github.com/filimonov)). @@ -448,7 +448,7 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме #### Улучшение {#improvement-3} -* Обходное решение для использования S3 с сервером nginx в роли прокси. В настоящее время nginx не принимает URL с пустым путём, например http://domain.com?delete, тогда как стандартный aws-sdk-cpp генерирует URL такого вида. В этом коммите используется пропатченная версия aws-sdk-cpp, которая в таких случаях формирует URL с путём "/", например http://domain.com/?delete. [#16813](https://github.com/ClickHouse/ClickHouse/pull/16813) ([ianton-ru](https://github.com/ianton-ru)). +* Обходное решение для использования S3 через сервер nginx в роли прокси. В настоящее время nginx не принимает URL-адреса с пустым путём, например http://domain.com?delete, тогда как стандартный aws-sdk-cpp генерирует URL-адреса такого вида. В этом коммите используется модифицированная версия aws-sdk-cpp, которая в таких случаях формирует URL-адреса с путём "/", например http://domain.com/?delete. [#16813](https://github.com/ClickHouse/ClickHouse/pull/16813) ([ianton-ru](https://github.com/ianton-ru)). ### Релиз ClickHouse v20.10.3.30, 2020-10-28 {#clickhouse-release-v2010330-2020-10-28} @@ -456,7 +456,7 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Признать `multiple_joins_rewriter_version` устаревшей и удалить первую версию переписывателя JOIN'ов. [#15472](https://github.com/ClickHouse/ClickHouse/pull/15472) ([Artem Zuikov](https://github.com/4ertus2)). * Изменить значение по умолчанию настройки `format_regexp_escaping_rule` (она относится к формату `Regexp`) на `Raw` (это означает — читать весь подшаблон как одно значение), чтобы поведение больше соответствовало ожиданиям пользователей. [#15426](https://github.com/ClickHouse/ClickHouse/pull/15426) ([alexey-milovidov](https://github.com/alexey-milovidov)). -* Добавить поддержку вложенных многострочных комментариев `/* comment /* comment */ */` в SQL. Это соответствует стандарту SQL. [#14655](https://github.com/ClickHouse/ClickHouse/pull/14655) ([alexey-milovidov](https://github.com/alexey-milovidov)). +* Добавить поддержку вложенных многострочных комментариев `/* comment /* comment */ */` в SQL. Это соответствует стандарту SQL. [#14655](https://github.com/ClickHouse/ClickHouse/pull/14655) ([alexey-milovidов](https://github.com/alexey-milovidов)). * Добавлены настройки MergeTree (`max_replicated_merges_with_ttl_in_queue` и `max_number_of_merges_with_ttl_in_pool`) для управления количеством слияний с TTL в фоновом пуле и очереди репликации. Это изменение нарушает совместимость со старыми версиями только в том случае, если вы используете TTL для удаления. В противном случае репликация останется совместимой. Вы можете избежать проблем с несовместимостью, если обновите все реплики шарда одновременно или выполните `SYSTEM STOP TTL MERGES` до завершения обновления всех реплик. Если вы получите несовместимую запись в очереди репликации, в первую очередь выполните `SYSTEM STOP TTL MERGES`, а затем выполните `ALTER TABLE ... DETACH PARTITION ...` для партиции, к которой было привязано несовместимое слияние с TTL. Подключите её обратно на одной реплике. [#14490](https://github.com/ClickHouse/ClickHouse/pull/14490) ([alesapin](https://github.com/alesapin)). * При обновлении с версий ниже 20.5, если выполняется поэтапное (rolling) обновление и кластер одновременно содержит версии 20.5 или новее и версии ниже 20.5, при перезапуске узлов ClickHouse со старыми версиями и запуске старой версии в присутствии более новых версий это может привести к ошибкам `Part ... intersects previous part`. Чтобы предотвратить эту ошибку, сначала установите более новые пакеты clickhouse-server на все узлы кластера, а затем выполняйте перезапуски (так что при перезапуске clickhouse-server будет запускаться с новой версией). @@ -618,9 +618,9 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * По умолчанию включено создание компактных частей для маленьких партиций. Это позволяет обрабатывать частые вставки заметно эффективнее (в 4–100 раз). [#11913](https://github.com/ClickHouse/ClickHouse/pull/11913) ([alexey-milovidov](https://github.com/alexey-milovidov)). * Улучшена производительность `quantileTDigest`. Это исправляет [#2668](https://github.com/ClickHouse/ClickHouse/issues/2668). [#15542](https://github.com/ClickHouse/ClickHouse/pull/15542) ([Kruglov Pavel](https://github.com/Avogar)). -* Существенно снижено потребление памяти в AggregatingInOrderTransform/optimize_aggregation_in_order. [#15543](https://github.com/ClickHouse/ClickHouse/pull/15543) ([Azat Khuzhin](https://github.com/azat)). -* Ускорено 256-битное умножение. [#15418](https://github.com/ClickHouse/ClickHouse/pull/15418) ([Artem Zuikov](https://github.com/4ertus2)). -* Улучшена производительность 256-битных типов за счёт использования (u)int64_t в качестве базового типа для широких целых. Изначально широкие целые использовали 8-битные типы как базовые. [#14859](https://github.com/ClickHouse/ClickHouse/pull/14859) ([Artem Zuikov](https://github.com/4ertus2)). +* Существенно снижено потребление памяти в AggregatingInOrderTransform/optimize_aggregation_in_order. [#15543](https://github.com/ClickHouse/ClickHouse/pull/15543) ([Azат Khuzhin](https://github.com/azat)). +* Ускорено 256-битное умножение. [#15418](https://github.com/ClickHouse/ClickHouse/pull/15418) ([Artem Zuиков](https://github.com/4ertus2)). +* Улучшена производительность 256-битных типов за счёт использования (u)int64_t в качестве базового типа для широких целых. Изначально широкие целые использовали 8-битные типы как базовые. [#14859](https://github.com/ClickHouse/ClickHouse/pull/14859) ([Artem Zuиков](https://github.com/4ertus2)). * Теперь временный диск явно используется для хранения временных данных вертикального слияния. [#15639](https://github.com/ClickHouse/ClickHouse/pull/15639) ([Grigory Pervakov](https://github.com/GrigoryPervakov)). * Используется один запрос S3 DeleteObjects вместо нескольких DeleteObject в цикле. Функциональность не изменилась, поэтому это покрывается существующими тестами, такими как integration/test_log_family_s3. [#15238](https://github.com/ClickHouse/ClickHouse/pull/15238) ([ianton-ru](https://github.com/ianton-ru)). * Исправлено, что `DateTime DateTime` ошибочно выбирал медленную универсальную реализацию. Это исправляет [#15153](https://github.com/ClickHouse/ClickHouse/issues/15153). [#15178](https://github.com/ClickHouse/ClickHouse/pull/15178) ([Amos Bird](https://github.com/amosbird)). @@ -660,8 +660,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Использовать std::filesystem::path в ConfigProcessor для объединения файловых путей. [#14558](https://github.com/ClickHouse/ClickHouse/pull/14558) ([Bharat Nallan](https://github.com/bharatnc)). * Исправлено отладочное утверждение в `bitShiftLeft()` при вызове с отрицательным большим целым числом. [#14697](https://github.com/ClickHouse/ClickHouse/pull/14697) ([Artem Zuikov](https://github.com/4ertus2)). - - ## Релиз ClickHouse 20.9 {#clickhouse-release-209} ### Релиз ClickHouse v20.9.7.11-stable, 2020-12-07 {#clickhouse-release-v209711-stable-2020-12-07} @@ -708,11 +706,11 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Повторно выполняется резолвинг IP‑адреса для `format_avro_schema_registry_url` в случае ошибок. [#16985](https://github.com/ClickHouse/ClickHouse/pull/16985) ([filimonov](https://github.com/filimonov)). * Исправлен возможный сбой сервера после `ALTER TABLE ... MODIFY COLUMN ... NewType`, когда в запросе `SELECT` присутствует выражение `WHERE` по изменяемому столбцу, а операция ALTER ещё не завершена. [#16968](https://github.com/ClickHouse/ClickHouse/pull/16968) ([Amos Bird](https://github.com/amosbird)). * Скрипт установки всегда должен создавать подкаталоги в конфигурационных директориях. Актуально только для Docker‑сборки с пользовательской конфигурацией. [#16936](https://github.com/ClickHouse/ClickHouse/pull/16936) ([filimonov](https://github.com/filimonov)). -* Исправлена возможная ошибка `Illegal type of argument` для запросов с `ORDER BY`. Исправляет [#16580](https://github.com/ClickHouse/ClickHouse/issues/16580). [#16928](https://github.com/ClickHouse/ClickHouse/pull/16928) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлена возможная ошибка `Illegal type of argument` для запросов с `ORDER BY`. Исправляет [#16580](https://github.com/ClickHouse/ClickHouse/issues/16580). [#16928](https://github.com/ClickHouse/ClickHouse/pull/16928) ([Nikolai Kochetов](https://github.com/KochetovNicolai)). * Прерывается multipart‑загрузка, если в WriteBufferFromS3 не были записаны данные. [#16840](https://github.com/ClickHouse/ClickHouse/pull/16840) ([Pavel Kovalenko](https://github.com/Jokser)). * Исправлен сбой при использовании `any` без каких-либо аргументов. Относится к [#16803](https://github.com/ClickHouse/ClickHouse/issues/16803). cc @azat. [#16826](https://github.com/ClickHouse/ClickHouse/pull/16826) ([Amos Bird](https://github.com/amosbird)). * Исправлена работа оператора `IN` по нескольким столбцам и кортежам при включённой настройке `transform_null_in`. Исправляет [#15310](https://github.com/ClickHouse/ClickHouse/issues/15310). [#16722](https://github.com/ClickHouse/ClickHouse/pull/16722) ([Anton Popov](https://github.com/CurtizJ)). -* Исправлена работа optimize_read_in_order/optimize_aggregation_in_order при max_threads>0 и выражении в `ORDER BY`. [#16637](https://github.com/ClickHouse/ClickHouse/pull/16637) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена работа optimize_read_in_order/optimize_aggregation_in_order при max_threads>0 и выражении в `ORDER BY`. [#16637](https://github.com/ClickHouse/ClickHouse/pull/16637) ([Azat Khузhin](https://github.com/azat)). * Исправляет [#16574](https://github.com/ClickHouse/ClickHouse/issues/16574), исправляет [#16231](https://github.com/ClickHouse/ClickHouse/issues/16231): исправлен сбой удалённого запроса при использовании агрегатной функции с суффиксом `if`. [#16610](https://github.com/ClickHouse/ClickHouse/pull/16610) ([Winter Zhang](https://github.com/zhang2014)). * Запрос завершается быстрее в случае возникновения исключения: выполнение на удалённых репликах отменяется, если произошло исключение. [#15578](https://github.com/ClickHouse/ClickHouse/pull/15578) ([Azat Khuzhin](https://github.com/azat)). @@ -852,7 +850,7 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Улучшения в движке `RabbitMQ`: добавлена обработка сбоев соединений и каналов, корректные коммиты, обработка ошибок вставки, улучшена работа с обменниками, повышена надёжность очередей и возможность их восстановления, добавлены новые настройки очередей. Исправлены тесты. [#12761](https://github.com/ClickHouse/ClickHouse/pull/12761) ([Kseniia Sumarokova](https://github.com/kssenii)). * Добавлена поддержка пользовательских кодеков в компактных кусках. [#12183](https://github.com/ClickHouse/ClickHouse/pull/12183) ([Anton Popov](https://github.com/CurtizJ)). -#### Улучшение производительности {#performance-improvement-4} +#### Улучшения производительности {#performance-improvement-4} * Оптимизировать запросы с LIMIT/LIMIT BY/ORDER BY для Distributed с GROUP BY sharding_key (при включённых `optimize_skip_unused_shards` и `optimize_distributed_group_by_sharding_key`). [#10373](https://github.com/ClickHouse/ClickHouse/pull/10373) ([Azat Khuzhin](https://github.com/azat)). * Параллельное создание наборов для нескольких `JOIN` и `IN`. Это может немного повысить производительность запросов с несколькими различными выражениями вида `IN subquery`. [#14412](https://github.com/ClickHouse/ClickHouse/pull/14412) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). @@ -1008,7 +1006,7 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме ### Релиз ClickHouse v20.8.2.3-stable, 2020-09-08 {#clickhouse-release-v20823-stable-2020-09-08} -#### Обратное несовместимое изменение {#backward-incompatible-change-4} +#### Изменения, несовместимые с предыдущими версиями {#backward-incompatible-change-4} * Теперь запрос `OPTIMIZE FINAL` не пересчитывает TTL для частей, которые были добавлены до создания TTL. Используйте `ALTER TABLE ... MATERIALIZE TTL` один раз, чтобы вычислить их, после чего `OPTIMIZE FINAL` будет корректно учитывать TTL. Это поведение никогда не работало для реплицируемых таблиц. [#14220](https://github.com/ClickHouse/ClickHouse/pull/14220) ([alesapin](https://github.com/alesapin)). * Расширена настройка `parallel_distributed_insert_select`, добавлена опция для выполнения `INSERT` в локальную таблицу. Тип настройки изменяется с `Bool` на `UInt64`, поэтому значения `false` и `true` больше не поддерживаются. Если у вас указаны эти значения в конфигурации сервера, сервер не запустится. Замените их, соответственно, на `0` и `1`. [#14060](https://github.com/ClickHouse/ClickHouse/pull/14060) ([Azat Khuzhin](https://github.com/azat)). @@ -1024,7 +1022,7 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Добавлена функция `defaultValueOfTypeName`, которая возвращает значение по умолчанию для заданного типа. [#13877](https://github.com/ClickHouse/ClickHouse/pull/13877) ([hcz](https://github.com/hczhcz)). * Добавлена функция `countDigits(x)`, которая считает количество десятичных цифр в целочисленном или десятичном столбце. Добавлена функция `isDecimalOverflow(d, [p])`, которая проверяет, выходит ли значение в столбце Decimal за пределы его (или указанной) точности. [#14151](https://github.com/ClickHouse/ClickHouse/pull/14151) ([Artem Zuikov](https://github.com/4ertus2)). * Добавлены реализации `quantileExactLow` и `quantileExactHigh`, а также соответствующие алиасы `medianExactLow` и `medianExactHigh`. [#13818](https://github.com/ClickHouse/ClickHouse/pull/13818) ([Bharat Nallan](https://github.com/bharatnc)). -* Добавлена функция `date_trunc`, которая усекает значение даты/времени до указанной части даты/времени. [#13888](https://github.com/ClickHouse/ClickHouse/pull/13888) ([Vladimir Golovchenko](https://github.com/vladimir-golovchenko)). +* Добавлена функция `date_trunc`, которая усекает значение даты/времени до указанной части даты/времени. [#13888](https://github.com/ClickHouse/ClickHouse/pull/13888) ([Vladimir Golovченко](https://github.com/vladimir-golovchenko)). * В основной конфигурационный файл добавлен новый необязательный раздел ``. [#13425](https://github.com/ClickHouse/ClickHouse/pull/13425) ([Vitaly Baranov](https://github.com/vitlibar)). * Добавлен оператор `ALTER SAMPLE BY`, который позволяет изменять предложение выборки SAMPLE таблицы. [#13280](https://github.com/ClickHouse/ClickHouse/pull/13280) ([Amos Bird](https://github.com/amosbird)). * Функция `position` теперь поддерживает необязательный аргумент `start_pos`. [#13237](https://github.com/ClickHouse/ClickHouse/pull/13237) ([vdimir](https://github.com/vdimir)). @@ -1117,7 +1115,7 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме #### Экспериментальная возможность {#experimental-feature-3} * ClickHouse может работать как реплика MySQL — это реализовано с помощью движка базы данных `MaterializeMySQL`. Реализует [#4006](https://github.com/ClickHouse/ClickHouse/issues/4006). [#10851](https://github.com/ClickHouse/ClickHouse/pull/10851) ([Winter Zhang](https://github.com/zhang2014)). -* Добавлены типы `Int128`, `Int256`, `UInt256` и связанные с ними функции. Десятичные типы расширены типом Decimal256 (точность до 76 знаков). Новые типы включаются настройкой `allow_experimental_bigint_types`. В настоящее время это работает крайне медленно и плохо. Реализация неполная. Пожалуйста, не используйте эту возможность. [#13097](https://github.com/ClickHouse/ClickHouse/pull/13097) ([Artem Zuikov](https://github.com/4ertus2)). +* Добавлены типы `Int128`, `Int256`, `UInt256` и связанные с ними функции. Десятичные типы расширены типом Decimal256 (точность до 76 знаков). Новые типы включаются настройкой `allow_experimental_bigint_types`. В настоящее время это работает крайне медленно и плохо. Реализация неполная. Пожалуйста, не используйте эту возможность. [#13097](https://github.com/ClickHouse/ClickHouse/pull/13097) ([Artem Zuиков](https://github.com/4ertus2)). #### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-7} @@ -1146,8 +1144,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Пропускать PR, создаваемые robot-clickhouse. [#13489](https://github.com/ClickHouse/ClickHouse/pull/13489) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). * Файлы Dockerfile перенесены из интеграционных тестов в директорию `docker/test`. Файлы docker_compose доступны в Docker-контейнере `runner`. Docker-образы собираются в CI, а не в интеграционных тестах. [#13448](https://github.com/ClickHouse/ClickHouse/pull/13448) ([Ilya Yatsishin](https://github.com/qoega)). - - ## Релиз ClickHouse 20.7 {#clickhouse-release-207} ### Релиз ClickHouse v20.7.2.30-stable, 2020-08-31 {#clickhouse-release-v207230-stable-2020-08-31} @@ -1169,13 +1165,13 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Добавлена функция `bayesAB` для байесовского A/B-тестирования. [#12327](https://github.com/ClickHouse/ClickHouse/pull/12327) ([achimbab](https://github.com/achimbab)). * Добавлена таблица `system.crash_log`, в которую собираются трассировки стека для фатальных ошибок. Эта таблица должна быть пустой. [#12316](https://github.com/ClickHouse/ClickHouse/pull/12316) ([alexey-milovidov](https://github.com/alexey-milovidov)). * Добавлены HTTP-заголовки `X-ClickHouse-Database` и `X-ClickHouse-Format`, которые могут использоваться для установки базы данных и формата вывода по умолчанию. [#12981](https://github.com/ClickHouse/ClickHouse/pull/12981) ([hcz](https://github.com/hczhcz)). -* Добавлена поддержка функций `minMap` и `maxMap` в `SimpleAggregateFunction`. [#12662](https://github.com/ClickHouse/ClickHouse/pull/12662) ([Ildus Kurbangaliev](https://github.com/ildus)). +* Добавлена поддержка функций `minMap` и `maxMap` в `SimpleAggregateFunction`. [#12662](https://github.com/ClickHouse/ClickHouse/pull/12662) ([Ildus Kurbangalиев](https://github.com/ildus)). * Добавлена настройка `allow_non_metadata_alters`, которая ограничивает выполнение запросов `ALTER`, модифицирующих данные на диске. По умолчанию отключена. Закрывает [#11547](https://github.com/ClickHouse/ClickHouse/issues/11547). [#12635](https://github.com/ClickHouse/ClickHouse/pull/12635) ([alesapin](https://github.com/alesapin)). * Добавлена функция `formatRow` для преобразования произвольных выражений в строку по заданному формату. Полезна для обработки результатов SQL-запросов и достаточно универсальна в сочетании с функцией `columns`. [#12574](https://github.com/ClickHouse/ClickHouse/pull/12574) ([Amos Bird](https://github.com/amosbird)). * Добавлена функция `FROM_UNIXTIME` для совместимости с MySQL, связана с [12149](https://github.com/ClickHouse/ClickHouse/issues/12149). [#12484](https://github.com/ClickHouse/ClickHouse/pull/12484) ([flynn](https://github.com/ucasFL)). * Разрешено использование типов Nullable в качестве ключей в таблицах MergeTree, если включена настройка таблицы `allow_nullable_key`. Закрывает [#5319](https://github.com/ClickHouse/ClickHouse/issues/5319). [#12433](https://github.com/ClickHouse/ClickHouse/pull/12433) ([Amos Bird](https://github.com/amosbird)). * Интеграция с [COS](https://intl.cloud.tencent.com/product/cos). [#12386](https://github.com/ClickHouse/ClickHouse/pull/12386) ([fastio](https://github.com/fastio)). -* Добавлены функции `mapAdd` и `mapSubtract` для сложения/вычитания значений, сопоставленных ключам. [#11735](https://github.com/ClickHouse/ClickHouse/pull/11735) ([Ildus Kurbangaliev](https://github.com/ildus)). +* Добавлены функции `mapAdd` и `mapSubtract` для сложения/вычитания значений, сопоставленных ключам. [#11735](https://github.com/ClickHouse/ClickHouse/pull/11735) ([Ildus Kurbangalиев](https://github.com/ildus)). #### Исправление ошибок {#bug-fix-24} @@ -1304,7 +1300,7 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Улучшена производительность чтения из компактных частей. Компактные части — экспериментальная функция. [#12492](https://github.com/ClickHouse/ClickHouse/pull/12492) ([Anton Popov](https://github.com/CurtizJ)). * Попытка реализовать потоковую оптимизацию в `DiskS3`. DiskS3 — экспериментальная функция. [#12434](https://github.com/ClickHouse/ClickHouse/pull/12434) ([Vladimir Chebotarev](https://github.com/excitoon)). -#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-8} +#### Улучшения сборки, тестирования и упаковки {#buildtestingpackaging-improvement-8} * Используйте `shellcheck` для линтинга sh-тестов. [#13200](https://github.com/ClickHouse/ClickHouse/pull/13200) [#13207](https://github.com/ClickHouse/ClickHouse/pull/13207) ([alexey-milovidov](https://github.com/alexey-milovidov)). * Добавлен скрипт, который устанавливает метки для pull request'ов в GitHub-хуке. [#13183](https://github.com/ClickHouse/ClickHouse/pull/13183) ([alesapin](https://github.com/alesapin)). @@ -1341,8 +1337,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Добавлена опция компилятора, ограничивающая размер кадров стека, чтобы они не были слишком большими. Это позволит запускать код в файберах с небольшим размером стека. [#11524](https://github.com/ClickHouse/ClickHouse/pull/11524) ([alexey-milovidov](https://github.com/alexey-milovidov)). * Обновлены файлы .gitignore. [#13447](https://github.com/ClickHouse/ClickHouse/pull/13447) ([vladimir-golovchenko](https://github.com/vladimir-golovchenko)). - - ## Релиз ClickHouse 20.6 {#clickhouse-release-206} ### Релиз ClickHouse v20.6.3.28-stable {#clickhouse-release-v206328-stable} @@ -1463,6 +1457,7 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Реализована загрузка одиночных частей (single part uploads) для DiskS3 (экспериментальная функциональность). [#12026](https://github.com/ClickHouse/ClickHouse/pull/12026) ([Vladimir Chebotarev](https://github.com/excitoon)). #### Экспериментальная функциональность {#experimental-feature-4} + * Добавлен новый формат частей в памяти для таблиц семейства `MergeTree`, который хранит данные в оперативной памяти. Части записываются на диск при первом слиянии. Часть будет создана в формате хранения в памяти, если её размер в строках или байтах ниже порогов `min_rows_for_compact_part` и `min_bytes_for_compact_part`. Также доступна дополнительная поддержка журнала предварительной записи (Write-Ahead-Log), который включён по умолчанию и управляется настройкой `in_memory_parts_enable_wal`. [#10697](https://github.com/ClickHouse/ClickHouse/pull/10697) ([Anton Popov](https://github.com/CurtizJ)). #### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-9} @@ -1476,7 +1471,7 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Общие файлы Docker Compose перенесены в интеграционный Docker‑контейнер. [#12168](https://github.com/ClickHouse/ClickHouse/pull/12168) ([Ilya Yatsishin](https://github.com/qoega)). * Исправлены предупреждения из CodeQL. `CodeQL` — это ещё один статический анализатор, который мы будем использовать вместе с уже используемыми `clang-tidy` и `PVS-Studio`. [#12138](https://github.com/ClickHouse/ClickHouse/pull/12138) ([alexey-milovidov](https://github.com/alexey-milovidov)). * Небольшие исправления CMake для сборки UNBUNDLED. [#12131](https://github.com/ClickHouse/ClickHouse/pull/12131) ([Matwey V. Kornilov](https://github.com/matwey)). -* Добавлен пример минимального Docker‑образа без использования какой‑либо Linux‑дистрибуции. [#12126](https://github.com/ClickHouse/ClickHouse/pull/12126) ([alexey-milovidov](https://github.com/alexey-milovidov)). +* Добавлен пример минимального Docker‑образа без использования какой‑либо Linux‑дистрибуции. [#12126](https://github.com/ClickHouse/ClickHouse/pull/12126) ([alexey-milovidов](https://github.com/alexey-milovidov)). * Выполнено обновление системных пакетов в Docker‑образе `clickhouse-server`. [#12124](https://github.com/ClickHouse/ClickHouse/pull/12124) ([Ivan Blinkov](https://github.com/blinkov)). * Добавлен флаг `UNBUNDLED` в таблицу `system.build_options`. Списки пропуска для `clickhouse-test` перенесены в репозиторий ClickHouse. [#12107](https://github.com/ClickHouse/ClickHouse/pull/12107) ([alesapin](https://github.com/alesapin)). * Настроена регулярная проверка с помощью инструмента анализа безопасности [Anchore Container Analysis](https://docs.anchore.com), который ищет [CVE](https://cve.mitre.org/) в Docker‑образе `clickhouse-server`. Также подтверждает, что `Dockerfile` пригоден для сборки. Запускается ежедневно на `master` и на pull‑request'ах к `Dockerfile`. [#12102](https://github.com/ClickHouse/ClickHouse/pull/12102) ([Ivan Blinkov](https://github.com/blinkov)). @@ -1534,7 +1529,7 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Возвращать результат не типа Nullable из COUNT(DISTINCT) и семейства агрегатных функций `uniq`. Если все переданные значения равны NULL, возвращать ноль. Это улучшает совместимость с SQL. [#11661](https://github.com/ClickHouse/ClickHouse/pull/11661) ([alexey-milovidov](https://github.com/alexey-milovidov)). * Добавлена проверка для случая, когда настройка уровня пользователя указана в неверном месте. Настройки уровня пользователя должны указываться в `users.xml` внутри секции `` для конкретного пользовательского профиля (или в `` для настроек по умолчанию). Сервер не запустится, а в журнал будет записано сообщение с исключением. Это исправляет [#9051](https://github.com/ClickHouse/ClickHouse/issues/9051). Если вы хотите пропустить проверку, вы можете либо перенести настройки в нужное место, либо добавить `1` в config.xml. [#11449](https://github.com/ClickHouse/ClickHouse/pull/11449) ([alexey-milovidov](https://github.com/alexey-milovidov)). * Настройка `input_format_with_names_use_header` теперь включена по умолчанию. Это повлияет на разбор входных форматов `-WithNames` и `-WithNamesAndTypes`. [#10937](https://github.com/ClickHouse/ClickHouse/pull/10937) ([alexey-milovidov](https://github.com/alexey-milovidov)). -* Удалена настройка `experimental_use_processors`. Она включена по умолчанию. [#10924](https://github.com/ClickHouse/ClickHouse/pull/10924) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Удалена настройка `experimental_use_processors`. Она включена по умолчанию. [#10924](https://github.com/ClickHouse/ClickHouse/pull/10924) ([Nikolai Kochetов](https://github.com/KochetovNicolai)). * Обновлён `zstd` до версии 1.4.4. В ней есть небольшие улучшения производительности и коэффициента сжатия. Если вы запускаете реплики с разными версиями ClickHouse, вы можете увидеть понятные сообщения об ошибках `Data after merge is not byte-identical to data on another replicas.` с пояснением. Эти сообщения являются нормальными, и вам не следует беспокоиться. Это изменение обратно совместимо, но мы указываем его здесь в журнале изменений на случай, если вы будете удивляться появлению этих сообщений. [#10663](https://github.com/ClickHouse/ClickHouse/pull/10663) ([alexey-milovidov](https://github.com/alexey-milovidov)). * Добавлена проверка для бессмысленных кодеков и настройка `allow_suspicious_codecs` для управления этой проверкой. Это закрывает [#4966](https://github.com/ClickHouse/ClickHouse/issues/4966). [#10645](https://github.com/ClickHouse/ClickHouse/pull/10645) ([alexey-milovidov](https://github.com/alexey-milovidov)). * Несколько настроек Kafka изменили значения по умолчанию. См. [#11388](https://github.com/ClickHouse/ClickHouse/pull/11388). @@ -1880,8 +1875,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Исправлена сборка для FreeBSD. [#10150](https://github.com/ClickHouse/ClickHouse/pull/10150) ([Ivan](https://github.com/abyss7)). * Добавлена новая сборка для тестирования запросов с использованием фреймворка pytest. [#10039](https://github.com/ClickHouse/ClickHouse/pull/10039) ([Ivan](https://github.com/abyss7)). - - ## Релиз ClickHouse v20.4 {#clickhouse-release-v204} ### Релиз ClickHouse v20.4.8.99-stable 2020-08-10 {#clickhouse-release-v204899-stable-2020-08-10} @@ -2086,6 +2079,7 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме ### Релиз ClickHouse v20.4.2.9, 2020-05-12 {#clickhouse-release-v20429-2020-05-12} #### Изменение, нарушающее обратную совместимость {#backward-incompatible-change-8} + * Системные таблицы (например, system.query_log, system.trace_log, system.metric_log) используют компактный формат частей данных для частей размером меньше 10 MiB. Компактный формат частей данных поддерживается начиная с версии 20.3. Если вы планируете перейти на версию ниже 20.3, вам следует вручную удалить данные таблиц системных логов в `/var/lib/clickhouse/data/system/`. * Когда сравнение строк включает FixedString и сравниваемые аргументы имеют разный размер, сравнение выполняется так, как если бы более короткая строка была дополнена пробелами до длины более длинной. Это сделано для совместимости с SQL, если представить, что тип данных FixedString соответствует SQL CHAR. Это решает проблему [#9272](https://github.com/ClickHouse/ClickHouse/issues/9272). [#10363](https://github.com/ClickHouse/ClickHouse/pull/10363) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Команда SHOW CREATE TABLE теперь выводит результат в несколько строк. Теперь он более читабелен и больше похож на MySQL. [#10049](https://github.com/ClickHouse/ClickHouse/pull/10049) ([Azat Khuzhin](https://github.com/azat)) @@ -2100,16 +2094,16 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Добавлен формат вывода `Markdown` для встраивания таблиц в документы в формате Markdown. [#10317](https://github.com/ClickHouse/ClickHouse/pull/10317) ([Kruglov Pavel](https://github.com/Avogar)) * Добавлена поддержка пользовательского раздела настроек в словарях. Также исправлена ошибка [#2829](https://github.com/ClickHouse/ClickHouse/issues/2829). [#10137](https://github.com/ClickHouse/ClickHouse/pull/10137) ([Artem Streltsov](https://github.com/kekekekule)) * Добавлена поддержка пользовательских настроек в DDL-запросах `CREATE DICTIONARY` [#10465](https://github.com/ClickHouse/ClickHouse/pull/10465) ([Artem Streltsov](https://github.com/kekekekule)) -* Добавлен простой глобальный профилировщик памяти сервера, который собирает контексты выделения при превышении сервером очередного порога выделения памяти. [#10444](https://github.com/ClickHouse/ClickHouse/pull/10444) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Добавлен простой глобальный профилировщик памяти сервера, который собирает контексты выделения, когда потребление памяти сервером превышает очередной порог выделения. [#10444](https://github.com/ClickHouse/ClickHouse/pull/10444) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Добавлена настройка `always_fetch_merged_part`, которая ограничивает реплику: она не выполняет локальное слияние частей и всегда предпочитает загружать их с других реплик. [#10379](https://github.com/ClickHouse/ClickHouse/pull/10379) ([alesapin](https://github.com/alesapin)) * Добавлена функция `JSONExtractKeysAndValuesRaw`, которая извлекает сырые данные из JSON-объектов [#10378](https://github.com/ClickHouse/ClickHouse/pull/10378) ([hcz](https://github.com/hczhcz)) * Добавлен учет использования памяти ОС в `system.asynchronous_metrics`. [#10361](https://github.com/ClickHouse/ClickHouse/pull/10361) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Добавлены обобщённые версии функций `least` и `greatest`. Теперь они работают с произвольным числом аргументов произвольного типа. Это исправляет [#4767](https://github.com/ClickHouse/ClickHouse/issues/4767) [#10318](https://github.com/ClickHouse/ClickHouse/pull/10318) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Добавлены обобщённые версии функций `least` и `greatest`. Теперь они работают с произвольным числом аргументов произвольных типов. Это исправляет [#4767](https://github.com/ClickHouse/ClickHouse/issues/4767) [#10318](https://github.com/ClickHouse/ClickHouse/pull/10318) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Теперь ClickHouse со своей стороны управляет таймаутами источников словарей. В конфигурацию кэш-словаря добавлены две новые настройки: `strict_max_lifetime_seconds`, которая по умолчанию равна `max_lifetime`, и `query_wait_timeout_milliseconds`, которая по умолчанию равна одной минуте. Первая настройка также полезна вместе с `allow_read_expired_keys` (чтобы запретить чтение сильно устаревших ключей). [#10337](https://github.com/ClickHouse/ClickHouse/pull/10337) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) * Добавлен параметр `log_queries_min_type` для фильтрации записей, которые будут попадать в `query_log` [#10053](https://github.com/ClickHouse/ClickHouse/pull/10053) ([Azat Khuzhin](https://github.com/azat)) * Добавлена функция `isConstant`. Эта функция проверяет, является ли её аргумент константным выражением и возвращает 1 или 0. Она предназначена для использования при разработке, отладке и в демонстрационных целях. [#10198](https://github.com/ClickHouse/ClickHouse/pull/10198) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Добавлена joinGetOrNull для возврата NULL при отсутствии ключа вместо возврата значения по умолчанию. [#10094](https://github.com/ClickHouse/ClickHouse/pull/10094) ([Amos Bird](https://github.com/amosbird)) -* Считать `NULL` равным `NULL` в операторе `IN`, если включена опция `transform_null_in`. [#10085](https://github.com/ClickHouse/ClickHouse/pull/10085) ([achimbab](https://github.com/achimbab)) +* Добавлена функция joinGetOrNull, которая возвращает NULL при отсутствии ключа вместо значения по умолчанию. [#10094](https://github.com/ClickHouse/ClickHouse/pull/10094) ([Amos Bird](https://github.com/amosbird)) +* Считать `NULL` равным `NULL` в операторе `IN`, если включена настройка `transform_null_in`. [#10085](https://github.com/ClickHouse/ClickHouse/pull/10085) ([achimbab](https://github.com/achimbab)) * Добавлен оператор `ALTER TABLE ... RENAME COLUMN` для семейства движков таблиц MergeTree. [#9948](https://github.com/ClickHouse/ClickHouse/pull/9948) ([alesapin](https://github.com/alesapin)) * Добавлена поддержка параллельного распределённого INSERT SELECT. [#9759](https://github.com/ClickHouse/ClickHouse/pull/9759) ([vxider](https://github.com/Vxider)) * Добавлена возможность выполнять запросы к Distributed поверх Distributed (без `distributed_group_by_no_merge`) ... [#9923](https://github.com/ClickHouse/ClickHouse/pull/9923) ([Azat Khuzhin](https://github.com/azat)) @@ -2121,6 +2115,7 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Добавлена поддержка операторов SQL `DATE` и `TIMESTAMP`, например `SELECT date '2001-01-01'` [#9691](https://github.com/ClickHouse/ClickHouse/pull/9691) ([Artem Zuikov](https://github.com/4ertus2)) #### Экспериментальная функция {#experimental-feature-6} + * Добавлен экспериментальный движок базы данных Atomic. Он поддерживает неблокирующие запросы `DROP` и `RENAME TABLE`, а также атомарный запрос `EXCHANGE TABLES t1 AND t2` [#7512](https://github.com/ClickHouse/ClickHouse/pull/7512) ([tavplubix](https://github.com/tavplubix)) * Добавлена начальная поддержка ReplicatedMergeTree поверх S3 (пока работает неоптимально) [#10126](https://github.com/ClickHouse/ClickHouse/pull/10126) ([Pavel Kovalenko](https://github.com/Jokser)) @@ -2133,91 +2128,91 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Исправлено использование нескольких операторов `IN` с одним и тем же набором значений в одном запросе. Исправлены [#10539](https://github.com/ClickHouse/ClickHouse/issues/10539) [#10686](https://github.com/ClickHouse/ClickHouse/pull/10686) ([Anton Popov](https://github.com/CurtizJ)) * Исправлено падение функции `generateRandom` при работе с вложенными типами. Исправляет [#10583](https://github.com/ClickHouse/ClickHouse/issues/10583). [#10734](https://github.com/ClickHouse/ClickHouse/pull/10734) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * Исправлена ошибка, приводившая к порче данных в ключевом столбце `LowCardinality(FixedString)` в `SummingMergeTree`, которая могла возникнуть после слияния. Исправляет [#10489](https://github.com/ClickHouse/ClickHouse/issues/10489). [#10721](https://github.com/ClickHouse/ClickHouse/pull/10721) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* Исправлена логика настройки параметра aggregation_memory_efficient_merge_threads. [#10667](https://github.com/ClickHouse/ClickHouse/pull/10667) ([palasonic1](https://github.com/palasonic1)) +* Исправлена логика работы настройки aggregation_memory_efficient_merge_threads. [#10667](https://github.com/ClickHouse/ClickHouse/pull/10667) ([palasonic1](https://github.com/palasonic1)) * Исправлена проблема исчезающих итогов. Итоговые строки могли отфильтровываться, если запрос содержал `JOIN` или подзапрос с внешним условием `WHERE`. Исправляет [#10674](https://github.com/ClickHouse/ClickHouse/issues/10674) [#10698](https://github.com/ClickHouse/ClickHouse/pull/10698) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* Исправлена проблема отсутствия параллельного выполнения удалённых запросов при включённом `distributed_aggregation_memory_efficient`. Исправление для [#10655](https://github.com/ClickHouse/ClickHouse/issues/10655) [#10664](https://github.com/ClickHouse/ClickHouse/pull/10664) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* Исправлена проблема, из-за которой не выполнялись параллельно удалённые запросы при включённом `distributed_aggregation_memory_efficient`. Исправляет [#10655](https://github.com/ClickHouse/ClickHouse/issues/10655) [#10664](https://github.com/ClickHouse/ClickHouse/pull/10664) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * Исправлено возможное некорректное количество строк в результатах запросов с `LIMIT`. Исправлены [#10566](https://github.com/ClickHouse/ClickHouse/issues/10566), [#10709](https://github.com/ClickHouse/ClickHouse/issues/10709), [#10660](https://github.com/ClickHouse/ClickHouse/pull/10660) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* Исправлено повреждение индекса, которое в некоторых случаях возникало после слияния компактных частей в другую компактную часть. [#10531](https://github.com/ClickHouse/ClickHouse/pull/10531) ([Anton Popov](https://github.com/CurtizJ)) -* Исправлена проблема, когда мутация завершила все части, но зависла в состоянии `is_done=0`. [#10526](https://github.com/ClickHouse/ClickHouse/pull/10526) ([alesapin](https://github.com/alesapin)) +* Исправлено повреждение индекса, которое в некоторых случаях могло возникать после слияния компактных частей в другую компактную часть. [#10531](https://github.com/ClickHouse/ClickHouse/pull/10531) ([Anton Popov](https://github.com/CurtizJ)) +* Исправлена проблема, когда мутация обработала все части, но зависла в состоянии `is_done=0`. [#10526](https://github.com/ClickHouse/ClickHouse/pull/10526) ([alesapin](https://github.com/alesapin)) * Исправлено переполнение в начале эпохи Unix для часовых поясов с дробным смещением от UTC. Устранена проблема [#9335](https://github.com/ClickHouse/ClickHouse/issues/9335). [#10513](https://github.com/ClickHouse/ClickHouse/pull/10513) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Улучшена диагностика для форматов ввода. Исправлены [#10204](https://github.com/ClickHouse/ClickHouse/issues/10204) [#10418](https://github.com/ClickHouse/ClickHouse/pull/10418) ([tavplubix](https://github.com/tavplubix)) -* Исправить числовое переполнение в `simpleLinearRegression()` для больших целых чисел [#10474](https://github.com/ClickHouse/ClickHouse/pull/10474) ([hcz](https://github.com/hczhcz)) -* Исправлен use-after-free при остановке Distributed, больше не ожидается отправка всех пакетов [#10491](https://github.com/ClickHouse/ClickHouse/pull/10491) ([Azat Khuzhin](https://github.com/azat)) +* Исправлено числовое переполнение в `simpleLinearRegression()` для больших целых чисел [#10474](https://github.com/ClickHouse/ClickHouse/pull/10474) ([hcz](https://github.com/hczhcz)) +* Исправлен use-after-free при остановке движка Distributed, больше не происходит ожидания отправки всех пакетов [#10491](https://github.com/ClickHouse/ClickHouse/pull/10491) ([Azat Khuzhin](https://github.com/azat)) * Добавить сертификаты удостоверяющих центров (CA) в Docker-образ clickhouse-server [#10476](https://github.com/ClickHouse/ClickHouse/pull/10476) ([filimonov](https://github.com/filimonov)) -* Исправлен редкий бесконечный цикл, который мог возникать при использовании функции `addressToLine` или столбцов типа AggregateFunctionState. [#10466](https://github.com/ClickHouse/ClickHouse/pull/10466) ([Alexander Kuzmenkov](https://github.com/akuzm)) -* Обработка ошибки ZooKeeper "no node error" при выполнении распределённого запроса [#10050](https://github.com/ClickHouse/ClickHouse/pull/10050) ([Daniel Chen](https://github.com/Phantomape)) -* Исправлена ошибка, из-за которой сервер не мог подключить таблицу после изменения значения DEFAULT для столбца. [#10441](https://github.com/ClickHouse/ClickHouse/pull/10441) ([alesapin](https://github.com/alesapin)) -* Неявно приводить тип выражения значения по умолчанию к типу столбца для столбцов ALIAS [#10563](https://github.com/ClickHouse/ClickHouse/pull/10563) ([Azat Khuzhin](https://github.com/azat)) +* Исправлен редко возникающий бесконечный цикл, который мог возникать при использовании функции `addressToLine` или столбцов типа AggregateFunctionState. [#10466](https://github.com/ClickHouse/ClickHouse/pull/10466) ([Alexander Kuzmenkov](https://github.com/akuzm)) +* Обработана ошибка ZooKeeper «no node error» при выполнении распределённого запроса [#10050](https://github.com/ClickHouse/ClickHouse/pull/10050) ([Daniel Chen](https://github.com/Phantomape)) +* Исправлена ошибка, из-за которой сервер не мог подключить таблицу после изменения значения по умолчанию столбца. [#10441](https://github.com/ClickHouse/ClickHouse/pull/10441) ([alesapin](https://github.com/alesapin)) +* Неявно приводить тип выражения по умолчанию к типу столбца для столбцов ALIAS [#10563](https://github.com/ClickHouse/ClickHouse/pull/10563) ([Azat Khuzhin](https://github.com/azat)) * Не удалять каталог metadata, если `ATTACH DATABASE` завершается с ошибкой [#10442](https://github.com/ClickHouse/ClickHouse/pull/10442) ([Winter Zhang](https://github.com/zhang2014)) * Устранена зависимость от системного tzdata. Исправлена загрузка часового пояса `Africa/Casablanca` на CentOS 8. Исправлены [#10211](https://github.com/ClickHouse/ClickHouse/issues/10211) [#10425](https://github.com/ClickHouse/ClickHouse/pull/10425) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Исправлены некоторые проблемы, возникавшие при вставке данных с кворумом и их последующем удалении (DROP PARTITION, TTL и т. д.). Это могло приводить к зависанию операций INSERT или ложным исключениям при выполнении SELECT. Исправлены [#9946](https://github.com/ClickHouse/ClickHouse/issues/9946) [#10188](https://github.com/ClickHouse/ClickHouse/pull/10188) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) -* Проверка количества и типов аргументов при создании индекса BloomFilter [#9623](https://github.com/ClickHouse/ClickHouse/issues/9623) [#10431](https://github.com/ClickHouse/ClickHouse/pull/10431) ([Winter Zhang](https://github.com/zhang2014)) +* Исправлены некоторые проблемы, возникавшие при вставке данных с кворумом и их последующем удалении (DROP PARTITION, TTL и т. д.). Это могло приводить к зависанию запросов INSERT или ложным исключениям при выполнении SELECT. Исправлены [#9946](https://github.com/ClickHouse/ClickHouse/issues/9946) [#10188](https://github.com/ClickHouse/ClickHouse/pull/10188) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) +* Проверяются количество и типы аргументов при создании индекса BloomFilter [#9623](https://github.com/ClickHouse/ClickHouse/issues/9623) [#10431](https://github.com/ClickHouse/ClickHouse/pull/10431) ([Winter Zhang](https://github.com/zhang2014)) * Используйте `fallback_to_stale_replicas` вместо `skip_unavailable_shards`, в противном случае, если заданы оба параметра и нет актуальных реплик, запрос завершится с ошибкой (патч от @alex-zaitsev) [#10422](https://github.com/ClickHouse/ClickHouse/pull/10422) ([Azat Khuzhin](https://github.com/azat)) -* Исправлена ошибка, из-за которой запрос с ARRAY JOIN, ORDER BY и LIMIT мог возвращать неполный результат. Устраняет [#10226](https://github.com/ClickHouse/ClickHouse/issues/10226). [#10427](https://github.com/ClickHouse/ClickHouse/pull/10427) ([Vadim Plakhtinskiy](https://github.com/VadimPlh)) +* Исправлена ошибка, из-за которой запрос с ARRAY JOIN, ORDER BY и LIMIT мог возвращать неполный результат. Исправляет проблему [#10226](https://github.com/ClickHouse/ClickHouse/issues/10226). [#10427](https://github.com/ClickHouse/ClickHouse/pull/10427) ([Vadim Plakhtinskiy](https://github.com/VadimPlh)) * Добавлено имя базы данных к имени словаря после операций DETACH/ATTACH. Исправлены таблица system.dictionaries и запрос `SYSTEM RELOAD` [#10415](https://github.com/ClickHouse/ClickHouse/pull/10415) ([Azat Khuzhin](https://github.com/azat)) * Исправлен потенциально некорректный результат вычисления extremes в конвейере процессоров. [#10131](https://github.com/ClickHouse/ClickHouse/pull/10131) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* Исправлена возможная ошибка сегментации при включённой настройке `distributed_group_by_no_merge` (возникшая в версии 20.3.7.46 в [#10131](https://github.com/ClickHouse/ClickHouse/issues/10131)). [#10399](https://github.com/ClickHouse/ClickHouse/pull/10399) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* Исправлено некорректное разворачивание типов данных `Array(Tuple(...))`. Исправлены [#10259](https://github.com/ClickHouse/ClickHouse/issues/10259) [#10390](https://github.com/ClickHouse/ClickHouse/pull/10390) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Исправлены имена константных столбцов внутри JOIN, которые могли конфликтовать по именам с константными столбцами вне JOIN [#9950](https://github.com/ClickHouse/ClickHouse/pull/9950) ([Alexander Kuzmenkov](https://github.com/akuzm)) +* Исправлена возможная ошибка сегментации при включённой настройке `distributed_group_by_no_merge` (допущенная в версии 20.3.7.46 изменением из [#10131](https://github.com/ClickHouse/ClickHouse/issues/10131)). [#10399](https://github.com/ClickHouse/ClickHouse/pull/10399) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* Исправлено некорректное разворачивание типов данных `Array(Tuple(...))`. Исправляет [#10259](https://github.com/ClickHouse/ClickHouse/issues/10259) [#10390](https://github.com/ClickHouse/ClickHouse/pull/10390) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Исправлены имена константных столбцов внутри JOIN, которые могли приводить к конфликту с именами констант за пределами JOIN [#9950](https://github.com/ClickHouse/ClickHouse/pull/9950) ([Alexander Kuzmenkov](https://github.com/akuzm)) * Исправлен порядок столбцов после вызова Block::sortColumns() [#10826](https://github.com/ClickHouse/ClickHouse/pull/10826) ([Azat Khuzhin](https://github.com/azat)) -* Исправлена возможная ошибка `Pipeline stuck` в `ConcatProcessor`, которая могла возникать во время удалённого запроса. [#10381](https://github.com/ClickHouse/ClickHouse/pull/10381) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* Не выполняется резервирование диска для агрегаций. Исправляет [#9241](https://github.com/ClickHouse/ClickHouse/issues/9241) [#10375](https://github.com/ClickHouse/ClickHouse/pull/10375) ([Azat Khuzhin](https://github.com/azat)) -* Исправлено некорректное поведение функций работы с датой и временем для часовых поясов, в которых смещение от UTC переходило между положительным и отрицательным значениями (например, Pacific/Kiritimati). Исправлены [#7202](https://github.com/ClickHouse/ClickHouse/issues/7202) [#10369](https://github.com/ClickHouse/ClickHouse/pull/10369) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Исправлена возможная ошибка `Pipeline stuck` в `ConcatProcessor`, которая могла возникать в удалённом запросе. [#10381](https://github.com/ClickHouse/ClickHouse/pull/10381) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* Не выполнять резервирование дискового пространства для операций агрегации. Исправляет [#9241](https://github.com/ClickHouse/ClickHouse/issues/9241) [#10375](https://github.com/ClickHouse/ClickHouse/pull/10375) ([Azat Khuzhin](https://github.com/azat)) +* Исправлено некорректное поведение функций работы с датой и временем для часовых поясов, в которых смещение от UTC менялось между положительными и отрицательными значениями (например, Pacific/Kiritimati). Исправлены [#7202](https://github.com/ClickHouse/ClickHouse/issues/7202) [#10369](https://github.com/ClickHouse/ClickHouse/pull/10369) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Предотвращён бесконечный цикл в функции `dictIsIn`. Исправлена проблема #515 [#10365](https://github.com/ClickHouse/ClickHouse/pull/10365) ([alexey-milovidov](https://github.com/alexey-milovidov)) * По умолчанию отключена оптимизация GROUP BY по sharding_key и исправлена её работа для WITH ROLLUP/CUBE/TOTALS [#10516](https://github.com/ClickHouse/ClickHouse/pull/10516) ([Azat Khuzhin](https://github.com/azat)) -* Проверять код ошибки при проверке частей и не помечать часть как повреждённую, если ошибка вроде «not enough memory». Исправляет [#6269](https://github.com/ClickHouse/ClickHouse/issues/6269) [#10364](https://github.com/ClickHouse/ClickHouse/pull/10364) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Проверять код ошибки при проверке частей и не помечать часть как повреждённую, если возникает ошибка вида «not enough memory». Исправляет [#6269](https://github.com/ClickHouse/ClickHouse/issues/6269) [#10364](https://github.com/ClickHouse/ClickHouse/pull/10364) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Показывать информацию о незагруженных словарях в системных таблицах. [#10234](https://github.com/ClickHouse/ClickHouse/pull/10234) ([Vitaly Baranov](https://github.com/vitlibar)) * Исправлено разыменование `nullptr` в `StorageBuffer`, если сервер завершил работу до инициализации таблицы. [#10641](https://github.com/ClickHouse/ClickHouse/pull/10641) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Исправлено условие гонки между `DROP` и `OPTIMIZE` в `ReplicatedMergeTree`. `DROP` мог оставлять мусор в пути реплики в ZooKeeper, если одновременно выполнялся запрос `OPTIMIZE`. [#10312](https://github.com/ClickHouse/ClickHouse/pull/10312) ([tavplubix](https://github.com/tavplubix)) +* Исправлено условие гонки между `DROP` и `OPTIMIZE` в `ReplicatedMergeTree`. `DROP` мог оставлять мусорные данные в пути реплики в ZooKeeper, если одновременно выполнялся запрос `OPTIMIZE`. [#10312](https://github.com/ClickHouse/ClickHouse/pull/10312) ([tavplubix](https://github.com/tavplubix)) * Исправлена ошибка 'Logical error: CROSS JOIN has expressions' для запросов с одновременным использованием соединений через запятую и соединений по именам. Исправлены [#9910](https://github.com/ClickHouse/ClickHouse/issues/9910) [#10311](https://github.com/ClickHouse/ClickHouse/pull/10311) ([Artem Zuikov](https://github.com/4ertus2)) -* Исправлена работа запросов с `max_bytes_before_external_group_by`. [#10302](https://github.com/ClickHouse/ClickHouse/pull/10302) ([Artem Zuikov](https://github.com/4ertus2)) +* Исправлены запросы с `max_bytes_before_external_group_by`. [#10302](https://github.com/ClickHouse/ClickHouse/pull/10302) ([Artem Zuikov](https://github.com/4ertus2)) * Исправлена проблема с ограничением максимальной глубины рекурсии парсера в некоторых случаях. Это исправление устраняет [#10283](https://github.com/ClickHouse/ClickHouse/issues/10283). Исправление может привести к небольшой несовместимости: длинные и глубоко вложенные запросы через clickhouse-client могут перестать выполняться, и при необходимости следует скорректировать настройки `max_query_size` и `max_parser_depth`. [#10295](https://github.com/ClickHouse/ClickHouse/pull/10295) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Добавлена возможность использования `count(*)` с несколькими операциями JOIN. Исправляет [#9853](https://github.com/ClickHouse/ClickHouse/issues/9853) [#10291](https://github.com/ClickHouse/ClickHouse/pull/10291) ([Artem Zuikov](https://github.com/4ertus2)) * Исправлена ошибка `Pipeline stuck`, возникавшая при использовании `max_rows_to_group_by` и `group_by_overflow_mode = 'break'`. [#10279](https://github.com/ClickHouse/ClickHouse/pull/10279) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * Исправлена ошибка «Cannot add column» при создании словаря `range_hashed` с помощью DDL‑запроса. Исправляет [#10093](https://github.com/ClickHouse/ClickHouse/issues/10093). [#10235](https://github.com/ClickHouse/ClickHouse/pull/10235) ([alesapin](https://github.com/alesapin)) * Устранено редко возникающее исключение `Cannot drain connections: cancel first`. [#10239](https://github.com/ClickHouse/ClickHouse/pull/10239) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* Исправлена ошибка, из-за которой ClickHouse выдавал сообщение об ошибке «Unknown function lambda.», когда пользователь пытался выполнить ALTER UPDATE/DELETE для таблиц с ENGINE = Replicated*. Проверка недетерминированных функций теперь корректно обрабатывает lambda-выражения. [#10237](https://github.com/ClickHouse/ClickHouse/pull/10237) ([Alexander Kazakov](https://github.com/Akazz)) -* Исправлена достаточно редкая ошибка сегментации в StorageSystemTables, возникающая при выполнении запроса SELECT ... FROM system.tables в базе данных, использующей движок Lazy. [#10209](https://github.com/ClickHouse/ClickHouse/pull/10209) ([Alexander Kazakov](https://github.com/Akazz)) -* Исправлено возможное бесконечное выполнение запроса в случае, когда он должен останавливаться по LIMIT при чтении из бесконечного источника, такого как `system.numbers` или `system.zeros`. [#10206](https://github.com/ClickHouse/ClickHouse/pull/10206) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* Исправлена функция "generateRandom" для типа Date. Это решает проблему [#9973](https://github.com/ClickHouse/ClickHouse/issues/9973). Исправлен пограничный случай, когда даты с годом 2106 вставляются в таблицы MergeTree со старым стилем партиционирования, при этом партиции именуются годом 1970. [#10218](https://github.com/ClickHouse/ClickHouse/pull/10218) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Исправлена ошибка, из-за которой ClickHouse выдавал сообщение об ошибке «Unknown function lambda.», при попытке выполнить ALTER UPDATE/DELETE для таблиц с ENGINE = Replicated*. Проверка недетерминированных функций теперь корректно обрабатывает lambda-выражения. [#10237](https://github.com/ClickHouse/ClickHouse/pull/10237) ([Alexander Kazakov](https://github.com/Akazz)) +* Исправлен достаточно редкий segfault в StorageSystemTables, возникающий при выполнении запроса SELECT ... FROM system.tables в базе данных с движком Lazy. [#10209](https://github.com/ClickHouse/ClickHouse/pull/10209) ([Alexander Kazakov](https://github.com/Akazz)) +* Исправлено возможное бесконечное выполнение запроса в случае, когда он должен останавливаться по LIMIT при чтении из бесконечного источника данных, такого как `system.numbers` или `system.zeros`. [#10206](https://github.com/ClickHouse/ClickHouse/pull/10206) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* Исправлена функция "generateRandom" для типа Date. Исправляет проблему [#9973](https://github.com/ClickHouse/ClickHouse/issues/9973). Исправлен пограничный случай, когда даты за 2106 год вставляются в таблицы MergeTree со старым стилем партиционирования, но партиции именуются 1970 годом. [#10218](https://github.com/ClickHouse/ClickHouse/pull/10218) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Типы теперь приводятся, если определение таблицы представления не соответствует запросу SELECT. Это исправляет [#10180](https://github.com/ClickHouse/ClickHouse/issues/10180) и [#10022](https://github.com/ClickHouse/ClickHouse/issues/10022) [#10217](https://github.com/ClickHouse/ClickHouse/pull/10217) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Исправлена работа `parseDateTimeBestEffort` для строк в формате RFC-2822, когда день недели — вторник или четверг. Это исправляет [#10082](https://github.com/ClickHouse/ClickHouse/issues/10082) [#10214](https://github.com/ClickHouse/ClickHouse/pull/10214) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Исправлены имена константных столбцов внутри JOIN, которые могли приводить к конфликту с именами констант за пределами JOIN. [#10207](https://github.com/ClickHouse/ClickHouse/pull/10207) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Исправлены имена константных столбцов внутри JOIN, которые могли конфликтовать по именам с константными столбцами вне JOIN. [#10207](https://github.com/ClickHouse/ClickHouse/pull/10207) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Исправлена ошибка в оптимизации переноса в PREWHERE при наличии функций arrayJoin (в определённых случаях). Это исправляет [#10092](https://github.com/ClickHouse/ClickHouse/issues/10092) [#10195](https://github.com/ClickHouse/ClickHouse/pull/10195) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Исправлена проблема с появлением разделителя в SCRAMBLE для нативного драйвера mysql-connector-java (JDBC) [#10140](https://github.com/ClickHouse/ClickHouse/pull/10140) ([BohuTANG](https://github.com/BohuTANG)) * Исправлено использование текущей базы данных при проверке доступа, когда база данных не указана. [#10192](https://github.com/ClickHouse/ClickHouse/pull/10192) ([Vitaly Baranov](https://github.com/vitlibar)) * Исправлена операция ALTER для таблиц с компактными частями. [#10130](https://github.com/ClickHouse/ClickHouse/pull/10130) ([Anton Popov](https://github.com/CurtizJ)) * Добавлена возможность ослабить ограничение на использование недетерминированных функций в мутациях с помощью настройки `allow_nondeterministic_mutations`. [#10186](https://github.com/ClickHouse/ClickHouse/pull/10186) ([filimonov](https://github.com/filimonov)) * Исправлена ошибка, из-за которой выполнялся `DROP TABLE` для словаря [#10165](https://github.com/ClickHouse/ClickHouse/pull/10165) ([Azat Khuzhin](https://github.com/azat)) -* Преобразовывать блоки, если их структура не совпадает при выполнении `INSERT` в таблицу типа Distributed [#10135](https://github.com/ClickHouse/ClickHouse/pull/10135) ([Azat Khuzhin](https://github.com/azat)) -* Количество строк некорректно фиксировалось в логе (как сумма по всем частям), когда вставляемый блок разбивался на части по ключу партиционирования. [#10138](https://github.com/ClickHouse/ClickHouse/pull/10138) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Добавлена проверка некоторых аргументов и поддержка идентификаторов в качестве аргументов для MySQL Database Engine [#10077](https://github.com/ClickHouse/ClickHouse/pull/10077) ([Winter Zhang](https://github.com/zhang2014)) +* Преобразовывать блоки, если их структура не совпадает, при выполнении `INSERT` в таблицу `Distributed` [#10135](https://github.com/ClickHouse/ClickHouse/pull/10135) ([Azat Khuzhin](https://github.com/azat)) +* Количество строк некорректно записывалось в лог (как сумма по всем частям), когда вставляемый блок разбивался на части по ключу партиционирования. [#10138](https://github.com/ClickHouse/ClickHouse/pull/10138) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Добавлена проверка аргументов и поддержка аргументов‑идентификаторов для MySQL Database Engine [#10077](https://github.com/ClickHouse/ClickHouse/pull/10077) ([Winter Zhang](https://github.com/zhang2014)) * Исправлена некорректная проверка `index_granularity_bytes` при создании новой реплики. Исправляет проблему [#10098](https://github.com/ClickHouse/ClickHouse/issues/10098). [#10121](https://github.com/ClickHouse/ClickHouse/pull/10121) ([alesapin](https://github.com/alesapin)) * Исправлена ошибка в запросе `CHECK TABLE`, возникавшая, если таблица содержит skip-индексы. [#10068](https://github.com/ClickHouse/ClickHouse/pull/10068) ([alesapin](https://github.com/alesapin)) -* Исправлена работа схемы Distributed-over-Distributed с единственным шардом во вложенной таблице [#9997](https://github.com/ClickHouse/ClickHouse/pull/9997) ([Azat Khuzhin](https://github.com/azat)) -* Исправлена возможная потеря строк для запросов с `JOIN` и `UNION ALL`. Исправляет [#9826](https://github.com/ClickHouse/ClickHouse/issues/9826), [#10113](https://github.com/ClickHouse/ClickHouse/issues/10113). ... [#10099](https://github.com/ClickHouse/ClickHouse/pull/10099) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* Исправлена работа схемы Distributed-over-Distributed с единственным сегментом во вложенной таблице [#9997](https://github.com/ClickHouse/ClickHouse/pull/9997) ([Azat Khuzhin](https://github.com/azat)) +* Исправлена возможная потеря строк в запросах с `JOIN` и `UNION ALL`. Исправлены [#9826](https://github.com/ClickHouse/ClickHouse/issues/9826), [#10113](https://github.com/ClickHouse/ClickHouse/issues/10113). ... [#10099](https://github.com/ClickHouse/ClickHouse/pull/10099) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * Исправлена ошибка в словаре при использовании локального сервера ClickHouse в качестве источника. Она могла приводить к повреждению памяти, если типы данных в словаре и источнике были несовместимы. [#10071](https://github.com/ClickHouse/ClickHouse/pull/10071) ([alesapin](https://github.com/alesapin)) -* Исправлена проблема с запуском реплицируемых таблиц при обновлении со старой версии ClickHouse, где отсутствует узел `/table/replicas/replica_name/metadata`. Исправляет [#10037](https://github.com/ClickHouse/ClickHouse/issues/10037). [#10095](https://github.com/ClickHouse/ClickHouse/pull/10095) ([alesapin](https://github.com/alesapin)) -* Исправлена ошибка `Cannot clone block with columns because block has 0 columns ... While executing GroupingAggregatedTransform`. Она возникала при включённой настройке `distributed_aggregation_memory_efficient`, когда распределённый запрос читал агрегированные данные с сочетанием одно- и двухуровневой агрегации с разных шардов. [#10063](https://github.com/ClickHouse/ClickHouse/pull/10063) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* Исправлена проблема с запуском реплицируемых таблиц при обновлении со старой версии ClickHouse, в которой отсутствует узел `/table/replicas/replica_name/metadata`. Исправляет [#10037](https://github.com/ClickHouse/ClickHouse/issues/10037). [#10095](https://github.com/ClickHouse/ClickHouse/pull/10095) ([alesapin](https://github.com/alesapin)) +* Исправлена ошибка `Cannot clone block with columns because block has 0 columns ... While executing GroupingAggregatedTransform`. Она возникала при включённой настройке `distributed_aggregation_memory_efficient`, когда распределённый запрос считывал агрегированные данные, содержащие одновременно одно- и двухуровневую агрегацию, с разных шардов. [#10063](https://github.com/ClickHouse/ClickHouse/pull/10063) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * Исправлена взаимоблокировка при ошибке присоединения базы данных с материализованным представлением при старте [#10054](https://github.com/ClickHouse/ClickHouse/pull/10054) ([Azat Khuzhin](https://github.com/azat)) -* Исправлена ошибка сегментации, которая могла возникать при выполнении GROUP BY по строковым ключам с нулевыми байтами в конце ([#8636](https://github.com/ClickHouse/ClickHouse/issues/8636), [#8925](https://github.com/ClickHouse/ClickHouse/issues/8925)). ... [#10025](https://github.com/ClickHouse/ClickHouse/pull/10025) ([Alexander Kuzmenkov](https://github.com/akuzm)) +* Исправлена ошибка сегментации, которая могла возникать при выполнении GROUP BY по строковым ключам, содержащим нулевые байты в конце ([#8636](https://github.com/ClickHouse/ClickHouse/issues/8636), [#8925](https://github.com/ClickHouse/ClickHouse/issues/8925)). ... [#10025](https://github.com/ClickHouse/ClickHouse/pull/10025) ([Alexander Kuzmenkov](https://github.com/akuzm)) * Исправлена ошибка, приводившая к неверным результатам распределённых запросов, когда псевдоним мог переопределять квалифицированное имя столбца. Исправляет [#9672](https://github.com/ClickHouse/ClickHouse/issues/9672) [#9714](https://github.com/ClickHouse/ClickHouse/issues/9714) [#9972](https://github.com/ClickHouse/ClickHouse/pull/9972) ([Artem Zuikov](https://github.com/4ertus2)) * Исправлена возможная взаимоблокировка в `SYSTEM RESTART REPLICAS` [#9955](https://github.com/ClickHouse/ClickHouse/pull/9955) ([tavplubix](https://github.com/tavplubix)) -* Исправлено количество потоков, используемых для удалённого выполнения запроса (регрессия производительности, начиная с 20.3). Это происходило, когда запрос к таблице `Distributed` выполнялся одновременно на локальных и удалённых шардах. Исправлены [#9965](https://github.com/ClickHouse/ClickHouse/issues/9965) [#9971](https://github.com/ClickHouse/ClickHouse/pull/9971) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* Исправлено количество потоков, используемых для удалённого выполнения запроса (регрессия производительности, начиная с 20.3). Это происходило, когда запрос к таблице `Distributed` выполнялся одновременно на локальных и удалённых сегментах. Исправлены [#9965](https://github.com/ClickHouse/ClickHouse/issues/9965) [#9971](https://github.com/ClickHouse/ClickHouse/pull/9971) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * Исправлена логика `DeleteOnDestroy` в `ATTACH PART`, которая могла приводить к автоматическому удалению присоединённой части, и добавлено несколько тестов [#9410](https://github.com/ClickHouse/ClickHouse/pull/9410) ([Vladimir Chebotarev](https://github.com/excitoon)) * Исправлена ошибка, из-за которой DDL-запросы с `ON CLUSTER` зависали при запуске сервера. [#9927](https://github.com/ClickHouse/ClickHouse/pull/9927) ([Gagan Arneja](https://github.com/garneja)) -* Исправлена ошибка, из-за которой на одном из этапов обработки запросов к некоторым базам данных не выбирались необходимые таблицы. Исправляет [#9699](https://github.com/ClickHouse/ClickHouse/issues/9699). [#9949](https://github.com/ClickHouse/ClickHouse/pull/9949) ([achulkov2](https://github.com/achulkov2)) +* Исправлена ошибка, из-за которой на одном из этапов обработки запросов к некоторым базам данных не извлекались необходимые таблицы. Исправляет [#9699](https://github.com/ClickHouse/ClickHouse/issues/9699). [#9949](https://github.com/ClickHouse/ClickHouse/pull/9949) ([achulkov2](https://github.com/achulkov2)) * Исправлена ошибка «Not found column in block» при использовании `JOIN` вместе с `TOTALS`. Исправляет [#9839](https://github.com/ClickHouse/ClickHouse/issues/9839) [#9939](https://github.com/ClickHouse/ClickHouse/pull/9939) ([Artem Zuikov](https://github.com/4ertus2)) -* Исправлен разбор нескольких хостов, задаваемых в операторе CREATE USER [#9924](https://github.com/ClickHouse/ClickHouse/pull/9924) ([Vitaly Baranov](https://github.com/vitlibar)) -* Исправлен `TRUNCATE` для движка таблицы Join ([#9917](https://github.com/ClickHouse/ClickHouse/issues/9917)). [#9920](https://github.com/ClickHouse/ClickHouse/pull/9920) ([Amos Bird](https://github.com/amosbird)) +* Исправлен разбор нескольких хостов, указываемых в команде CREATE USER [#9924](https://github.com/ClickHouse/ClickHouse/pull/9924) ([Vitaly Baranov](https://github.com/vitlibar)) +* Исправлен `TRUNCATE` для таблиц типа Join ([#9917](https://github.com/ClickHouse/ClickHouse/issues/9917)). [#9920](https://github.com/ClickHouse/ClickHouse/pull/9920) ([Amos Bird](https://github.com/amosbird)) * Исправлено условие гонки между операциями DROP и OPTIMIZE в `ReplicatedMergeTree`. [#9901](https://github.com/ClickHouse/ClickHouse/pull/9901) ([alesapin](https://github.com/alesapin)) * Исправлена работа `DISTINCT` для распределённых таблиц (`Distributed`), при включённом параметре `optimize_skip_unused_shards`. [#9808](https://github.com/ClickHouse/ClickHouse/pull/9808) ([Azat Khuzhin](https://github.com/azat)) * Исправлена ошибка «scalar does not exist» в ALTER-запросах ([#9878](https://github.com/ClickHouse/ClickHouse/issues/9878)). ... [#9904](https://github.com/ClickHouse/ClickHouse/pull/9904) ([Amos Bird](https://github.com/amosbird)) * Исправлена ошибка с квалифицированными именами при `distributed_product_mode=\'local\'`. Устраняет [#4756](https://github.com/ClickHouse/ClickHouse/issues/4756) и [#9891](https://github.com/ClickHouse/ClickHouse/pull/9891) ([Artem Zuikov](https://github.com/4ertus2)) * Для запросов INSERT шарды теперь ограничивают настройки, полученные от инициатора, до своих допустимых значений вместо генерации исключения. Это исправление позволяет отправлять запросы INSERT на шард с иными ограничениями. Это изменение улучшает исправление [#9447](https://github.com/ClickHouse/ClickHouse/issues/9447). [#9852](https://github.com/ClickHouse/ClickHouse/pull/9852) ([Vitaly Baranov](https://github.com/vitlibar)) -* Добавлены повторные попытки при коммите смещений брокеру Kafka, поскольку он может отклонить коммит, если в течение `offsets.commit.timeout.ms` было доступно недостаточно реплик для топика `__consumer_offsets` [#9884](https://github.com/ClickHouse/ClickHouse/pull/9884) ([filimonov](https://github.com/filimonov)) -* Исправлено поведение движка Distributed при использовании виртуальных столбцов базовой таблицы в `WHERE` [#9847](https://github.com/ClickHouse/ClickHouse/pull/9847) ([Azat Khузhin](https://github.com/azat)) -* Исправлены некоторые случаи, когда часовой пояс аргумента функции учитывался некорректно. [#9574](https://github.com/ClickHouse/ClickHouse/pull/9574) ([Vasily Nemkov](https://github.com/Enmk)) +* Добавлены повторные попытки при фиксации смещений брокеру Kafka, поскольку он может отклонить фиксацию, если в течение `offsets.commit.timeout.ms` было доступно недостаточно реплик для топика `__consumer_offsets` [#9884](https://github.com/ClickHouse/ClickHouse/pull/9884) ([filimonov](https://github.com/filimonov)) +* Исправлено поведение движка Distributed при использовании виртуальных столбцов базовой таблицы в условии `WHERE` [#9847](https://github.com/ClickHouse/ClickHouse/pull/9847) ([Azat Khuzhin](https://github.com/azat)) +* Исправлены некоторые случаи, когда часовой пояс аргумента функции использовался некорректно. [#9574](https://github.com/ClickHouse/ClickHouse/pull/9574) ([Vasily Nemkov](https://github.com/Enmk)) * Исправлена ошибка 'Different expressions with the same alias' в запросе с PREWHERE и WHERE на распределённой таблице при установленном `SET distributed_product_mode = 'local'`. [#9871](https://github.com/ClickHouse/ClickHouse/pull/9871) ([Artem Zuikov](https://github.com/4ertus2)) * Исправлено чрезмерное потребление памяти при выполнении мутаций для таблиц со составным первичным ключом. Это исправляет [#9850](https://github.com/ClickHouse/ClickHouse/issues/9850). [#9860](https://github.com/ClickHouse/ClickHouse/pull/9860) ([alesapin](https://github.com/alesapin)) * Исправлен расчет прав доступа для функций интроспекции на основе настройки `allow_introspection_functions`. [#9840](https://github.com/ClickHouse/ClickHouse/pull/9840) ([Vitaly Baranov](https://github.com/vitlibar)) @@ -2226,21 +2221,19 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Исправлена ошибка 'COMMA to CROSS JOIN rewriter is not enabled or cannot rewrite query' в случае подзапросов с COMMA JOIN вне списков таблиц (например, в WHERE). Исправляет [#9782](https://github.com/ClickHouse/ClickHouse/issues/9782) [#9830](https://github.com/ClickHouse/ClickHouse/pull/9830) ([Artem Zuikov](https://github.com/4ertus2)) * Исправлено падение сервера при включённом параметре `optimize_skip_unused_shards`, когда выражение для ключа не может быть преобразовано к типу поля ключа [#9804](https://github.com/ClickHouse/ClickHouse/pull/9804) ([Azat Khuzhin](https://github.com/azat)) * Исправлена обработка пустой строки в `splitByString`. [#9767](https://github.com/ClickHouse/ClickHouse/pull/9767) ([hcz](https://github.com/hczhcz)) -* Исправлен некорректно работавший запрос `ALTER TABLE DELETE COLUMN` для компактных партиций. [#9779](https://github.com/ClickHouse/ClickHouse/pull/9779) ([alesapin](https://github.com/alesapin)) +* Исправлен некорректно работавший запрос `ALTER TABLE DELETE COLUMN` для компактных частей. [#9779](https://github.com/ClickHouse/ClickHouse/pull/9779) ([alesapin](https://github.com/alesapin)) * Исправлено отсутствие `rows_before_limit_at_least` при выполнении запросов через HTTP (с конвейером процессоров). Исправляет [#9730](https://github.com/ClickHouse/ClickHouse/issues/9730) [#9757](https://github.com/ClickHouse/ClickHouse/pull/9757) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * Устранено чрезмерное потребление памяти в запросах `ALTER` (мутациях). Это исправляет [#9533](https://github.com/ClickHouse/ClickHouse/issues/9533) и [#9670](https://github.com/ClickHouse/ClickHouse/issues/9670). [#9754](https://github.com/ClickHouse/ClickHouse/pull/9754) ([alesapin](https://github.com/alesapin)) * Исправлена возможная постоянная ошибка с сообщением «Cannot schedule a task». [#9154](https://github.com/ClickHouse/ClickHouse/pull/9154) ([Azat Khuzhin](https://github.com/azat)) -* Исправлена ошибка в экранировании обратными кавычками в DDL внешних словарей. Ошибка [#9619](https://github.com/ClickHouse/ClickHouse/issues/9619) устранена. [#9734](https://github.com/ClickHouse/ClickHouse/pull/9734) ([alesapin](https://github.com/alesapin)) -* Исправлена гонка данных в `text_log`. Она не приводила ни к каким реальным ошибкам. [#9726](https://github.com/ClickHouse/ClickHouse/pull/9726) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Исправлена ошибка в репликации, из-за которой репликация не работала, если пользователь выполнил мутации в предыдущей версии. Это исправляет [#9645](https://github.com/ClickHouse/ClickHouse/issues/9645). [#9652](https://github.com/ClickHouse/ClickHouse/pull/9652) ([alesapin](https://github.com/alesapin)) +* Исправлена ошибка экранирования обратными кавычками в DDL внешних словарей. Исправляет [#9619](https://github.com/ClickHouse/ClickHouse/issues/9619). [#9734](https://github.com/ClickHouse/ClickHouse/pull/9734) ([alesapin](https://github.com/alesapin)) +* Исправлена гонка данных в `text_log`. Она не приводила к какой-либо реальной ошибке. [#9726](https://github.com/ClickHouse/ClickHouse/pull/9726) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Исправлена ошибка в механизме репликации, из-за которой она не работала, если пользователь выполнял мутации в предыдущей версии. Это исправляет [#9645](https://github.com/ClickHouse/ClickHouse/issues/9645). [#9652](https://github.com/ClickHouse/ClickHouse/pull/9652) ([alesapin](https://github.com/alesapin)) * Исправлены ошибочные внутренние имена функций `sumKahan` и `sumWithOverflow`. Это приводило к исключению при использовании этих функций в удалённых запросах. [#9636](https://github.com/ClickHouse/ClickHouse/pull/9636) ([Azat Khuzhin](https://github.com/azat)) * Добавлена настройка `use_compact_format_in_distributed_parts_names`, которая позволяет записывать файлы для запросов `INSERT` в таблицу `Distributed` в более компактном формате. Это исправляет [#9647](https://github.com/ClickHouse/ClickHouse/issues/9647). [#9653](https://github.com/ClickHouse/ClickHouse/pull/9653) ([alesapin](https://github.com/alesapin)) -* Исправлены операции RIGHT и FULL JOIN при использовании LowCardinality в ключах JOIN. [#9610](https://github.com/ClickHouse/ClickHouse/pull/9610) ([Artem Zuikov](https://github.com/4ertus2)) +* Исправлены операции RIGHT и FULL JOIN при использовании LowCardinality в ключах JOIN. [#9610](https://github.com/ClickHouse/ClickHouse/pull/9610) ([Artem Zuиков](https://github.com/4ertus2)) * Исправлены возможные исключения `Size of filter does not match size of column` и `Invalid number of rows in Chunk` в `MergeTreeRangeReader`. Они могли возникать при выполнении `PREWHERE` в отдельных случаях. [#9612](https://github.com/ClickHouse/ClickHouse/pull/9612) ([Anton Popov](https://github.com/CurtizJ)) -* Добавлена поддержка выполнения команды `ALTER ON CLUSTER` для таблиц типа Distributed с внутренней репликацией. Исправляет [#3268](https://github.com/ClickHouse/ClickHouse/issues/3268) [#9617](https://github.com/ClickHouse/ClickHouse/pull/9617) ([shinoi2](https://github.com/shinoi2)) -* Исправлена проблема, из-за которой часовой пояс не сохранялся при использовании простого арифметического выражения вроде `time + 1` (в отличие от выражения `time + INTERVAL 1 SECOND`). Исправление связано с [#5743](https://github.com/ClickHouse/ClickHouse/issues/5743) [#9323](https://github.com/ClickHouse/ClickHouse/pull/9323) ([alexey-milovidov](https://github.com/alexey-milovidov)) - - +* Добавлена поддержка выполнения `ALTER ON CLUSTER` для таблиц типа Distributed с внутренней репликацией. Исправляет [#3268](https://github.com/ClickHouse/ClickHouse/issues/3268) [#9617](https://github.com/ClickHouse/ClickHouse/pull/9617) ([shinoi2](https://github.com/shinoi2)) +* Исправлена проблема, из-за которой часовой пояс не сохранялся при использовании простого арифметического выражения вроде `time + 1` (в отличие от выражения `time + INTERVAL 1 SECOND`). Это исправляет [#5743](https://github.com/ClickHouse/ClickHouse/issues/5743) [#9323](https://github.com/ClickHouse/ClickHouse/pull/9323) ([alexey-milovidov](https://github.com/alexey-milovidov)) #### Улучшение {#improvement-16} @@ -2249,33 +2242,33 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Добавлены метрики задач и памяти для пулов планировщика distributed/buffer [#10449](https://github.com/ClickHouse/ClickHouse/pull/10449) ([Azat Khuzhin](https://github.com/azat)) * Отображать результат сразу, как только он готов, для запросов SELECT DISTINCT в clickhouse-local и HTTP-интерфейсе. Это исправляет [#8951](https://github.com/ClickHouse/ClickHouse/issues/8951) [#9559](https://github.com/ClickHouse/ClickHouse/pull/9559) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Теперь можно использовать запрос `SAMPLE OFFSET` вместо `cityHash64(PRIMARY KEY) % N == n` для разбиения в `clickhouse-copier`. Чтобы воспользоваться этой возможностью, передайте `--experimental-use-sample-offset 1` в качестве аргумента командной строки. [#10414](https://github.com/ClickHouse/ClickHouse/pull/10414) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) -* Разрешён разбор BOM в TSV, если в значении первого столбца BOM не может присутствовать. Это исправляет [#10301](https://github.com/ClickHouse/ClickHouse/issues/10301) [#10424](https://github.com/ClickHouse/ClickHouse/pull/10424) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Добавлена поддержка вставки вложенных полей формата Avro [#10354](https://github.com/ClickHouse/ClickHouse/pull/10354) ([Andrew Onyshchuk](https://github.com/oandrew)) -* Разрешено изменять столбец в режиме без изменения данных, если указан тот же тип. [#10382](https://github.com/ClickHouse/ClickHouse/pull/10382) ([Vladimir Chebotarev](https://github.com/excitoon)) +* Разрешён разбор BOM в TSV, если значение первого столбца не может содержать BOM. Это исправляет [#10301](https://github.com/ClickHouse/ClickHouse/issues/10301) [#10424](https://github.com/ClickHouse/ClickHouse/pull/10424) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Добавлена поддержка вставки данных во вложенные поля Avro [#10354](https://github.com/ClickHouse/ClickHouse/pull/10354) ([Andrew Onyshchuk](https://github.com/oandrew)) +* Разрешено изменять столбец в режиме без изменения данных, если указан тот же тип данных. [#10382](https://github.com/ClickHouse/ClickHouse/pull/10382) ([Vladimir Chebotarev](https://github.com/excitoon)) * Автоматический `distributed_group_by_no_merge` для GROUP BY по ключу шардирования (если установлен `optimize_skip_unused_shards`) [#10341](https://github.com/ClickHouse/ClickHouse/pull/10341) ([Azat Khuzhin](https://github.com/azat)) -* Оптимизация запросов с LIMIT/LIMIT BY/ORDER BY для распределённых таблиц с GROUP BY sharding_key [#10373](https://github.com/ClickHouse/ClickHouse/pull/10373) ([Azat Khuzhin](https://github.com/azat)) +* Оптимизация запросов с LIMIT/LIMIT BY/ORDER BY для распределённых таблиц с GROUP BY по `sharding_key` [#10373](https://github.com/ClickHouse/ClickHouse/pull/10373) ([Azat Khuzhin](https://github.com/azat)) * Добавлена настройка `max_server_memory_usage` для ограничения общего потребления памяти сервером. Метрика `MemoryTracking` теперь вычисляется без дрейфа. Настройка `max_memory_usage_for_all_queries` устарела и больше ни на что не влияет. Это закрывает [#10293](https://github.com/ClickHouse/ClickHouse/issues/10293). [#10362](https://github.com/ClickHouse/ClickHouse/pull/10362) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Добавлен параметр конфигурации `system_tables_lazy_load`. Если его значение — false, системные таблицы журналов загружаются при запуске сервера. [Alexander Burmak](https://github.com/Alex-Burmak), [Svyatoslav Tkhon Il Pak](https://github.com/DeifyTheGod), [#9642](https://github.com/ClickHouse/ClickHouse/pull/9642) [#10359](https://github.com/ClickHouse/ClickHouse/pull/10359) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Добавлен параметр конфигурации `system_tables_lazy_load`. Если его значение — false, то системные таблицы логов загружаются при запуске сервера. [Alexander Burmak](https://github.com/Alex-Burmak), [Svyatoslav Tkhon Il Pak](https://github.com/DeifyTheGod), [#9642](https://github.com/ClickHouse/ClickHouse/pull/9642) [#10359](https://github.com/ClickHouse/ClickHouse/pull/10359) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Использовать пул фоновых потоков (background_schedule_pool_size) для распределённой отправки [#10263](https://github.com/ClickHouse/ClickHouse/pull/10263) ([Azat Khuzhin](https://github.com/azat)) * Использовать пул фоновых потоков для фоновых операций сброса буфера. [#10315](https://github.com/ClickHouse/ClickHouse/pull/10315) ([Azat Khuzhin](https://github.com/azat)) * Реализована поддержка одного частного случая удаления частично записанных частей. Это исправляет [#9940](https://github.com/ClickHouse/ClickHouse/issues/9940). [#10221](https://github.com/ClickHouse/ClickHouse/pull/10221) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Используйте isInjective() вместо вручную составленного списка таких функций для оптимизации GROUP BY. [#10342](https://github.com/ClickHouse/ClickHouse/pull/10342) ([Azat Khuzhin](https://github.com/azat)) -* Не выводить сообщение об ошибке в лог, если клиент отправляет пакет RST сразу после установления соединения. Это типичное поведение балансировщика IPVS в связке с keepalived и VRRP. Исправляет [#1851](https://github.com/ClickHouse/ClickHouse/issues/1851) [#10274](https://github.com/ClickHouse/ClickHouse/pull/10274) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Используйте isInjective() вместо ручного списка таких функций для оптимизации GROUP BY. [#10342](https://github.com/ClickHouse/ClickHouse/pull/10342) ([Azat Khuzhin](https://github.com/azat)) +* Не выводить сообщение об ошибке в лог, если клиент отправляет пакет RST сразу при установлении соединения. Это типичное поведение балансировщика IPVS в связке с keepalived и VRRP. Это исправляет [#1851](https://github.com/ClickHouse/ClickHouse/issues/1851) [#10274](https://github.com/ClickHouse/ClickHouse/pull/10274) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Разрешён разбор значения `+inf` для числовых типов с плавающей точкой. Это закрывает [#1839](https://github.com/ClickHouse/ClickHouse/issues/1839) [#10272](https://github.com/ClickHouse/ClickHouse/pull/10272) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Реализована табличная функция `generateRandom` для типов данных Nested. Это закрывает задачи [#9903](https://github.com/ClickHouse/ClickHouse/issues/9903) [#10219](https://github.com/ClickHouse/ClickHouse/pull/10219) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Добавлен параметр `max_allowed_packed` в интерфейс совместимости с MySQL, позволяющий некоторым клиентам взаимодействовать с ClickHouse по протоколу MySQL. [#10199](https://github.com/ClickHouse/ClickHouse/pull/10199) ([BohuTANG](https://github.com/BohuTANG)) * Разрешено использование литералов в GLOBAL IN (т.е. `SELECT * FROM remote('localhost', system.one) WHERE dummy global in (0)`) [#10196](https://github.com/ClickHouse/ClickHouse/pull/10196) ([Azat Khuzhin](https://github.com/azat)) * Исправлены различные мелкие ошибки в интерактивном режиме clickhouse-client [#10194](https://github.com/ClickHouse/ClickHouse/pull/10194) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Устранена избыточная загрузка словарей (system.tables, DROP/SHOW CREATE TABLE) [#10164](https://github.com/ClickHouse/ClickHouse/pull/10164) ([Azat Khuzhin](https://github.com/azat)) -* Обновление RWLock: добавлен параметр тайм-аута для getLock() и переработана реализация для обеспечения фазовой справедливости [#10073](https://github.com/ClickHouse/ClickHouse/pull/10073) ([Alexander Kazakov](https://github.com/Akazz)) -* Улучшена совместимость с нативным драйвером mysql-connector-java (JDBC) [#10021](https://github.com/ClickHouse/ClickHouse/pull/10021) ([BohuTANG](https://github.com/BohuTANG)) -* Функция `toString` считается монотонной и может использоваться для анализа индекса даже когда применяется в тавтологических выражениях с аргументом типа String или LowCardinality(String). [#10110](https://github.com/ClickHouse/ClickHouse/pull/10110) ([Amos Bird](https://github.com/amosbird)) +* Устранена избыточная загрузка словарей при запросах к `system.tables` и выполнении команд `DROP/SHOW CREATE TABLE` [#10164](https://github.com/ClickHouse/ClickHouse/pull/10164) ([Azat Khuzhin](https://github.com/azat)) +* Обновление RWLock: добавлен параметр таймаута для getLock() и переработана реализация, обеспечивающая фазовую справедливость [#10073](https://github.com/ClickHouse/ClickHouse/pull/10073) ([Alexander Kazakov](https://github.com/Akazz)) +* Улучшена совместимость с нативным JDBC-драйвером mysql-connector-java [#10021](https://github.com/ClickHouse/ClickHouse/pull/10021) ([BohuTANG](https://github.com/BohuTANG)) +* Функция `toString` считается монотонной и может использоваться для анализа индекса даже при её применении в тавтологических случаях с аргументом типа String или LowCardinality(String). [#10110](https://github.com/ClickHouse/ClickHouse/pull/10110) ([Amos Bird](https://github.com/amosbird)) * Добавлена поддержка клаузы `ON CLUSTER` для команд `{CREATE|DROP} USER/ROLE/ROW POLICY/SETTINGS PROFILE/QUOTA`, `GRANT`. [#9811](https://github.com/ClickHouse/ClickHouse/pull/9811) ([Vitaly Baranov](https://github.com/vitlibar)) -* Поддержка адресации в стиле virtual-hosted для URI S3 [#9998](https://github.com/ClickHouse/ClickHouse/pull/9998) ([Pavel Kovalenko](https://github.com/Jokser)) +* Поддержка URI S3 в стиле virtual-hosted [#9998](https://github.com/ClickHouse/ClickHouse/pull/9998) ([Pavel Kovalenko](https://github.com/Jokser)) * Теперь тип layout для словарей без аргументов можно указывать без круглых скобок в DDL‑запросах к словарям. Исправлена ошибка [#10057](https://github.com/ClickHouse/ClickHouse/issues/10057). [#10064](https://github.com/ClickHouse/ClickHouse/pull/10064) ([alesapin](https://github.com/alesapin)) * Добавлена возможность использовать диапазоны чисел с ведущими нулями в пути к файлу [#9989](https://github.com/ClickHouse/ClickHouse/pull/9989) ([Olga Khvostikova](https://github.com/stavrolia)) * Более эффективное использование памяти при CROSS JOIN. [#10029](https://github.com/ClickHouse/ClickHouse/pull/10029) ([Artem Zuikov](https://github.com/4ertus2)) -* При получении структуры удалённой таблицы пытаться подключиться ко всем шардам кластера, если установлен skip_unavailable_shards. [#7278](https://github.com/ClickHouse/ClickHouse/pull/7278) ([nvartolomei](https://github.com/nvartolomei)) +* При получении структуры удалённой таблицы пытаться подключиться ко всем сегментам кластера, если установлена настройка skip_unavailable_shards. [#7278](https://github.com/ClickHouse/ClickHouse/pull/7278) ([nvartolomei](https://github.com/nvartolomei)) * Добавлены столбцы `total_rows`/`total_bytes` в таблицу `system.tables`. [#9919](https://github.com/ClickHouse/ClickHouse/pull/9919) ([Azat Khuzhin](https://github.com/azat)) * Таблицы системных логов теперь по умолчанию используют полиморфные части. [#9905](https://github.com/ClickHouse/ClickHouse/pull/9905) ([Anton Popov](https://github.com/CurtizJ)) * Добавлен столбец `type` в system.settings/merge_tree_settings [#9909](https://github.com/ClickHouse/ClickHouse/pull/9909) ([Azat Khuzhin](https://github.com/azat)) @@ -2297,16 +2290,17 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Поддержка сложных типов во вложенных полях Avro [#10502](https://github.com/ClickHouse/ClickHouse/pull/10502) ([Andrew Onyshchuk](https://github.com/oandrew)) #### Повышение производительности {#performance-improvement-11} + * Улучшена логика вставки в правую таблицу для Partial MergeJoin. [#10467](https://github.com/ClickHouse/ClickHouse/pull/10467) ([Artem Zuikov](https://github.com/4ertus2)) * Повышена производительность строчно-ориентированных форматов (более чем на 10% для CSV и более чем на 35% для Avro в случае узких таблиц). [#10503](https://github.com/ClickHouse/ClickHouse/pull/10503) ([Andrew Onyshchuk](https://github.com/oandrew)) * Повышена производительность запросов с явно заданными наборами в правой части оператора IN и кортежами в левой части. [#10385](https://github.com/ClickHouse/ClickHouse/pull/10385) ([Anton Popov](https://github.com/CurtizJ)) * Снижено потребление памяти для хеш-таблицы в HashJoin. [#10416](https://github.com/ClickHouse/ClickHouse/pull/10416) ([Artem Zuikov](https://github.com/4ertus2)) * Специальный HashJoin поверх StorageDictionary. Позволяет переписывать функции `dictGet()` в JOIN. Само по себе это не нарушает обратную совместимость, но может проявить [#8400](https://github.com/ClickHouse/ClickHouse/issues/8400) на некоторых установках. [#10133](https://github.com/ClickHouse/ClickHouse/pull/10133) ([Artem Zuikov](https://github.com/4ertus2)) -* Включена параллельная вставка материализованного представления, если это поддерживается его целевой таблицей. [#10052](https://github.com/ClickHouse/ClickHouse/pull/10052) ([vxider](https://github.com/Vxider)) +* Включена параллельная вставка materialized view, если это поддерживается ее целевой таблицей. [#10052](https://github.com/ClickHouse/ClickHouse/pull/10052) ([vxider](https://github.com/Vxider)) * Повышена производительность анализа индексов с монотонными функциями. [#9607](https://github.com/ClickHouse/ClickHouse/pull/9607)[#10026](https://github.com/ClickHouse/ClickHouse/pull/10026) ([Anton Popov](https://github.com/CurtizJ)) -* Используются SIMD-интринсики SSE2 и SSE4.2 для ускорения токенизации в bloom-фильтрах. [#9968](https://github.com/ClickHouse/ClickHouse/pull/9968) ([Vasily Nemkov](https://github.com/Enmk)) +* Используются SIMD-интринсики SSE2 и SSE4.2 для ускорения токенизации в Bloom-фильтрах. [#9968](https://github.com/ClickHouse/ClickHouse/pull/9968) ([Vasily Nemkov](https://github.com/Enmk)) * Повышена производительность запросов с явно заданными наборами в правой части оператора `IN`. Это исправляет регрессию производительности в версии 20.3. [#9740](https://github.com/ClickHouse/ClickHouse/pull/9740) ([Anton Popov](https://github.com/CurtizJ)) -* Теперь clickhouse-copier разбивает каждый раздел на несколько частей и копирует их независимо. [#9075](https://github.com/ClickHouse/ClickHouse/pull/9075) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) +* Теперь clickhouse-copier разбивает каждую партицию на несколько частей и копирует их независимо. [#9075](https://github.com/ClickHouse/ClickHouse/pull/9075) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) * Добавлены дополнительные методы агрегации. Например, запрос TPC-H 1 теперь выберет `FixedHashMap` и получит прирост производительности на 25%. [#9829](https://github.com/ClickHouse/ClickHouse/pull/9829) ([Amos Bird](https://github.com/amosbird)) * Используется единый счетчик строк для нескольких потоков в преобразовании pre-limit. Это помогает избежать объединения конвейерных потоков в запросах с `limit`, но без `order by` (например, `select f(x) from (select x from t limit 1000000000)`) и использовать несколько потоков для дальнейшей обработки. [#9602](https://github.com/ClickHouse/ClickHouse/pull/9602) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) @@ -2320,30 +2314,30 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Отображать абсолютные пути в сообщениях об ошибках, иначе KDevelop не сможет перейти к нужному файлу и вместо этого откроет новый. [#10434](https://github.com/ClickHouse/ClickHouse/pull/10434) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Добавлена переменная окружения `ASAN_OPTIONS` для анализа ошибок в стресс-тестах CI с AddressSanitizer. [#10440](https://github.com/ClickHouse/ClickHouse/pull/10440) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) * Включена поддержка ThinLTO для сборок clang (экспериментально). [#10435](https://github.com/ClickHouse/ClickHouse/pull/10435) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Удалена случайная зависимость от Z3, которая могла появиться, если в системе установлен решатель Z3. [#10426](https://github.com/ClickHouse/ClickHouse/pull/10426) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Удалена непреднамеренная зависимость от Z3, которая могла появиться, если в системе установлен решатель Z3. [#10426](https://github.com/ClickHouse/ClickHouse/pull/10426) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Переместить Docker-файлы интеграционных тестов в директорию docker/. [#10335](https://github.com/ClickHouse/ClickHouse/pull/10335) ([Ilya Yatsishin](https://github.com/qoega)) * Разрешено использование `clang-10` в CI. Это гарантирует, что проблема [#10238](https://github.com/ClickHouse/ClickHouse/issues/10238) исправлена. [#10384](https://github.com/ClickHouse/ClickHouse/pull/10384) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Обновлён OpenSSL до актуальной версии из ветки upstream master. Исправлена проблема, при которой подключения по TLS могли завершаться с ошибками `OpenSSL SSL_read: error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error` и `SSL Exception: error:2400006E:random number generator::error retrieving entropy`. Проблема присутствовала в версии 20.1. [#8956](https://github.com/ClickHouse/ClickHouse/pull/8956) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Обновлён OpenSSL до актуальной версии из ветки upstream master. Исправлена проблема, при которой подключения по TLS могли завершаться с ошибкой `OpenSSL SSL_read: error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error` или `SSL Exception: error:2400006E:random number generator::error retrieving entropy`. Проблема наблюдалась в версии 20.1. [#8956](https://github.com/ClickHouse/ClickHouse/pull/8956) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Исправлена сборка с clang-10. [#10238](https://github.com/ClickHouse/ClickHouse/issues/10238) [#10370](https://github.com/ClickHouse/ClickHouse/pull/10370) ([Amos Bird](https://github.com/amosbird)) -* Добавлен тест производительности для [Parallel INSERT для материализованного представления](https://github.com/ClickHouse/ClickHouse/pull/10052). [#10345](https://github.com/ClickHouse/ClickHouse/pull/10345) ([vxider](https://github.com/Vxider)) +* Добавлен тест производительности для [Parallel INSERT for materialized view](https://github.com/ClickHouse/ClickHouse/pull/10052). [#10345](https://github.com/ClickHouse/ClickHouse/pull/10345) ([vxider](https://github.com/Vxider)) * Исправлен нестабильный тест `test_settings_constraints_distributed.test_insert_clamps_settings`. [#10346](https://github.com/ClickHouse/ClickHouse/pull/10346) ([Vitaly Baranov](https://github.com/vitlibar)) * Добавлена утилита для загрузки результатов тестов в CI ClickHouse [#10330](https://github.com/ClickHouse/ClickHouse/pull/10330) ([Ilya Yatsishin](https://github.com/qoega)) * Преобразование результатов тестов в формат JSONEachRow в утилите junit_to_html [#10323](https://github.com/ClickHouse/ClickHouse/pull/10323) ([Ilya Yatsishin](https://github.com/qoega)) * Обновлён cctz. [#10215](https://github.com/ClickHouse/ClickHouse/pull/10215) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Добавлена возможность создавать HTML‑отчет из исходного JUnit XML‑отчета. [#10247](https://github.com/ClickHouse/ClickHouse/pull/10247) ([Ilya Yatsishin](https://github.com/qoega)) -* Обновлена проверка минимально допустимой версии компилятора. Исправлена коренная причина проблемы [#10250](https://github.com/ClickHouse/ClickHouse/issues/10250) [#10256](https://github.com/ClickHouse/ClickHouse/pull/10256) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Обновлена проверка минимально допустимой версии компилятора. Исправлена первопричина проблемы [#10250](https://github.com/ClickHouse/ClickHouse/issues/10250) [#10256](https://github.com/ClickHouse/ClickHouse/pull/10256) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Базовая поддержка таблиц Live View поверх распределённых таблиц [#10179](https://github.com/ClickHouse/ClickHouse/pull/10179) ([vzakaznikov](https://github.com/vzakaznikov)) * Исправлено ложное срабатывание MSan в MergeTreeIndexFullText. Проблема впервые появилась в [#9968](https://github.com/ClickHouse/ClickHouse/issues/9968). [#10801](https://github.com/ClickHouse/ClickHouse/pull/10801) ([alexey-milovidov](https://github.com/alexey-milovidov)) * clickhouse-docker-util [#10151](https://github.com/ClickHouse/ClickHouse/pull/10151) ([filimonov](https://github.com/filimonov)) * Обновлён pdqsort до актуальной версии [#10171](https://github.com/ClickHouse/ClickHouse/pull/10171) ([Ivan](https://github.com/abyss7)) * Обновлена libdivide до v3.0 [#10169](https://github.com/ClickHouse/ClickHouse/pull/10169) ([Ivan](https://github.com/abyss7)) * Добавлена проверка для включённых polymorphic parts. [#10086](https://github.com/ClickHouse/ClickHouse/pull/10086) ([Anton Popov](https://github.com/CurtizJ)) -* Добавлена сборка с кросс-компиляцией для FreeBSD. Это исправляет [#9465](https://github.com/ClickHouse/ClickHouse/issues/9465) [#9643](https://github.com/ClickHouse/ClickHouse/pull/9643) ([Ivan](https://github.com/abyss7)) -* Добавить тест производительности для [#6924](https://github.com/ClickHouse/ClickHouse/issues/6924) [#6980](https://github.com/ClickHouse/ClickHouse/pull/6980) ([filimonov](https://github.com/filimonov)) +* Добавлена кросс-сборка для FreeBSD. Исправляет [#9465](https://github.com/ClickHouse/ClickHouse/issues/9465) [#9643](https://github.com/ClickHouse/ClickHouse/pull/9643) ([Ivan](https://github.com/abyss7)) +* Добавлен тест производительности для [#6924](https://github.com/ClickHouse/ClickHouse/issues/6924) [#6980](https://github.com/ClickHouse/ClickHouse/pull/6980) ([filimonov](https://github.com/filimonov)) * Добавлена поддержка `/dev/null` в движок `File` для ускорения тестирования производительности [#8455](https://github.com/ClickHouse/ClickHouse/pull/8455) ([Amos Bird](https://github.com/amosbird)) * Переместить все каталоги из /dbms на один уровень выше [#9974](https://github.com/ClickHouse/ClickHouse/pull/9974) ([Ivan](https://github.com/abyss7)) * Добавлен тест, проверяющий, что чтение из MergeTree в одном потоке происходит в правильном порядке. Дополнение к [#9670](https://github.com/ClickHouse/ClickHouse/issues/9670) [#9762](https://github.com/ClickHouse/ClickHouse/pull/9762) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Исправлен тест `00964_live_view_watch_events_heartbeat.py`, чтобы избежать состояния гонки. [#9944](https://github.com/ClickHouse/ClickHouse/pull/9944) ([vzakazников](https://github.com/vzakaznikov)) +* Исправлен тест `00964_live_view_watch_events_heartbeat.py`, чтобы избежать состояния гонки. [#9944](https://github.com/ClickHouse/ClickHouse/pull/9944) ([vzakазников](https://github.com/vzakaznikov)) * Исправлен интеграционный тест `test_settings_constraints` [#9962](https://github.com/ClickHouse/ClickHouse/pull/9962) ([Vitaly Baranov](https://github.com/vitlibar)) * Каждая функция в отдельном файле, часть 12. [#9922](https://github.com/ClickHouse/ClickHouse/pull/9922) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Добавлен тест производительности для случая чрезвычайно медленного разбора массива кортежей. [#9872](https://github.com/ClickHouse/ClickHouse/pull/9872) ([alexey-milovidov](https://github.com/alexey-milovidov)) @@ -2352,22 +2346,20 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Удалена зависимость от `clock_getres`. [#9833](https://github.com/ClickHouse/ClickHouse/pull/9833) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Добавлена проверка имён идентификаторов с помощью clang-tidy. [#9799](https://github.com/ClickHouse/ClickHouse/pull/9799) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Обновлён Docker-образ «builder». Этот образ не используется в CI, но полезен для разработчиков. [#9809](https://github.com/ClickHouse/ClickHouse/pull/9809) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Удалён устаревший инструмент `performance-test`, который больше не используется в CI. `clickhouse-performance-test` — отличный инструмент, но сейчас мы используем гораздо более совершенное решение, выполняющее сравнительное тестирование с использованием сложных статистических формул, чтобы получать достоверные результаты несмотря на всевозможные изменения в окружении. [#9796](https://github.com/ClickHouse/ClickHouse/pull/9796) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Удалён устаревший инструмент `performance-test`, который больше не используется в CI. `clickhouse-performance-test` — отличный инструмент, но сейчас мы используем гораздо более совершенный инструмент, выполняющий сравнительное тестирование с использованием сложных статистических формул, чтобы получать достоверные результаты независимо от изменений в окружении. [#9796](https://github.com/ClickHouse/ClickHouse/pull/9796) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Добавлено большинство проверок Clang Static Analyzer. [#9765](https://github.com/ClickHouse/ClickHouse/pull/9765) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Обновлён Poco до версии 1.9.3 в рамках подготовки к поддержке URI MongoDB. [#6892](https://github.com/ClickHouse/ClickHouse/pull/6892) ([Alexander Kuzmenkov](https://github.com/akuzm)) * Исправлена ошибка сборки с `-DUSE_STATIC_LIBRARIES=0 -DENABLE_JEMALLOC=0` [#9651](https://github.com/ClickHouse/ClickHouse/pull/9651) ([Artem Zuikov](https://github.com/4ertus2)) * Для скрипта журнала изменений: если merge-коммит был перенесён (cherry-picked) в релизную ветку, брать название PR из описания коммита. [#9708](https://github.com/ClickHouse/ClickHouse/pull/9708) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* Добавлена поддержка тега `vX.X-conflicts` в скрипте backport. [#9705](https://github.com/ClickHouse/ClickHouse/pull/9705) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* Исправлен `auto-label` для скрипта бэкпорта. [#9685](https://github.com/ClickHouse/ClickHouse/pull/9685) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* Использовать libc++ при кросс-сборке для Darwin, чтобы обеспечить一致ность с нативной сборкой. [#9665](https://github.com/ClickHouse/ClickHouse/pull/9665) ([Hui Wang](https://github.com/huiwang)) -* Исправлен флапающий тест `01017_uniqCombined_memory_usage`. Продолжение [#7236](https://github.com/ClickHouse/ClickHouse/issues/7236). [#9667](https://github.com/ClickHouse/ClickHouse/pull/9667) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Добавлена поддержка тега `vX.X-conflicts` в скрипте бэкпорта. [#9705](https://github.com/ClickHouse/ClickHouse/pull/9705) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* Исправлен `auto-label` для скрипта backport. [#9685](https://github.com/ClickHouse/ClickHouse/pull/9685) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* Использовать libc++ при кросс-сборке под Darwin, чтобы обеспечить一致ность с нативной сборкой. [#9665](https://github.com/ClickHouse/ClickHouse/pull/9665) ([Hui Wang](https://github.com/huiwang)) +* Исправлен нестабильный тест `01017_uniqCombined_memory_usage`. Продолжение [#7236](https://github.com/ClickHouse/ClickHouse/issues/7236). [#9667](https://github.com/ClickHouse/ClickHouse/pull/9667) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Исправлена сборка с нативным компилятором Clang под macOS [#9649](https://github.com/ClickHouse/ClickHouse/pull/9649) ([Ivan](https://github.com/abyss7)) -* Позволяет добавлять различные сбои вокруг функций `pthread_mutex_lock`, `pthread_mutex_unlock`. [#9635](https://github.com/ClickHouse/ClickHouse/pull/9635) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Добавлена возможность моделировать различные сбои при вызовах функций `pthread_mutex_lock`, `pthread_mutex_unlock`. [#9635](https://github.com/ClickHouse/ClickHouse/pull/9635) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Добавлена поддержка `clang-tidy` в скрипт `packager`. [#9625](https://github.com/ClickHouse/ClickHouse/pull/9625) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Добавлена возможность использовать внешнюю библиотеку msgpack. [#10168](https://github.com/ClickHouse/ClickHouse/pull/10168) ([Azat Khuzhin](https://github.com/azat)) - - ## Релиз ClickHouse v20.3 {#clickhouse-release-v203} ### Релиз ClickHouse v20.3.21.2-lts, 2020-11-02 {#clickhouse-release-v203212-lts-2020-11-02} @@ -2390,7 +2382,7 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме ### Релиз ClickHouse v20.3.19.4-lts, 2020-09-18 {#clickhouse-release-v203194-lts-2020-09-18} -#### Исправление ошибок {#bug-fix-35} +#### Bug Fix {#bug-fix-35} * Исправлена редкая ошибка в запросах `SELECT`, когда запрашиваемый столбец имеет выражение `DEFAULT`, зависящее от другого столбца, который также имеет `DEFAULT`, но не присутствует в запросе `SELECT` и отсутствует на диске. Частично исправляет [#14531](https://github.com/ClickHouse/ClickHouse/issues/14531). [#14845](https://github.com/ClickHouse/ClickHouse/pull/14845) ([alesapin](https://github.com/alesapin)). * Исправлена ошибка, когда мутация `ALTER UPDATE` с Nullable-столбцом в выражении присваивания и константным значением (например, `UPDATE x = 42`) приводила к некорректному значению в столбце или сегфолту. Исправляет [#13634](https://github.com/ClickHouse/ClickHouse/issues/13634), [#14045](https://github.com/ClickHouse/ClickHouse/issues/14045). [#14646](https://github.com/ClickHouse/ClickHouse/pull/14646) ([alesapin](https://github.com/alesapin)). @@ -2419,7 +2411,7 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Незначительно оптимизированы очень короткие запросы с LowCardinality. [#14129](https://github.com/ClickHouse/ClickHouse/pull/14129) ([Anton Popov](https://github.com/CurtizJ)). -#### Build/Testing/Packaging Improvement {#buildtestingpackaging-improvement-16} +#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-16} * Исправлен отчёт UBSan (добавление нуля к nullptr) в HashTable, появившийся после миграции на clang-10. [#10638](https://github.com/ClickHouse/ClickHouse/pull/10638) ([alexey-milovidov](https://github.com/alexey-milovidov)). @@ -2629,7 +2621,7 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Исправлена гонка между `DROP` и `OPTIMIZE` в `ReplicatedMergeTree`. `DROP` мог оставлять мусор в пути реплики в ZooKeeper при параллельном выполнении запроса `OPTIMIZE`. [#10312](https://github.com/ClickHouse/ClickHouse/pull/10312) ([tavplubix](https://github.com/tavplubix)) * Исправлена ошибка, из-за которой сервер не мог выполнить ATTACH TABLE после изменения значения по умолчанию столбца. [#10441](https://github.com/ClickHouse/ClickHouse/pull/10441) ([alesapin](https://github.com/alesapin)) * Не удаляйте каталог metadata, если операция ATTACH DATABASE завершается ошибкой до загрузки таблиц. [#10442](https://github.com/ClickHouse/ClickHouse/pull/10442) ([Winter Zhang](https://github.com/zhang2014)) -* Исправлено несколько ошибок, возникавших, когда часть данных вставлялась с кворумом, затем каким‑то образом удалялась (DROP PARTITION, TTL), что приводило к зависанию INSERT-запросов или ложным исключениям в SELECT-запросах. Это исправляет [#9946](https://github.com/ClickHouse/ClickHouse/issues/9946) [#10188](https://github.com/ClickHouse/ClickHouse/pull/10188) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) +* Исправлено несколько ошибок, возникавших, когда некоторые данные вставлялись с кворумом, затем каким‑то образом удалялись (DROP PARTITION, TTL), что приводило к зависанию INSERT-запросов или ложноположительным исключениям в SELECT-запросах. Это исправляет [#9946](https://github.com/ClickHouse/ClickHouse/issues/9946) [#10188](https://github.com/ClickHouse/ClickHouse/pull/10188) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) * Исправлена возможная ошибка `Pipeline stuck` в `ConcatProcessor`, которая могла возникать при выполнении удалённого запроса. [#10381](https://github.com/ClickHouse/ClickHouse/pull/10381) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * Исправлено некорректное поведение в `HashTable`, которое вызывало ошибку компиляции при попытке прочитать `HashMap` из буфера. [#10386](https://github.com/ClickHouse/ClickHouse/pull/10386) ([palasonic1](https://github.com/palasonic1)) * Добавлена возможность использовать `count(*)` с несколькими JOIN. Исправляет [#9853](https://github.com/ClickHouse/ClickHouse/issues/9853) [#10291](https://github.com/ClickHouse/ClickHouse/pull/10291) ([Artem Zuikov](https://github.com/4ertus2)) @@ -2638,6 +2630,7 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Добавлена проверка количества и типа аргументов при создании индекса BloomFilter [#9623](https://github.com/ClickHouse/ClickHouse/issues/9623) [#10431](https://github.com/ClickHouse/ClickHouse/pull/10431) ([Winter Zhang](https://github.com/zhang2014)) #### Повышение производительности {#performance-improvement-15} + * Повышена производительность запросов с явно заданными наборами в правой части оператора `IN` и кортежами в левой части. Это исправляет регрессию производительности в версии 20.3. [#9740](https://github.com/ClickHouse/ClickHouse/pull/9740), [#10385](https://github.com/ClickHouse/ClickHouse/pull/10385) ([Anton Popov](https://github.com/CurtizJ)) ### Релиз ClickHouse v20.3.7.46, 2020-04-17 {#clickhouse-release-v203746-2020-04-17} @@ -2653,7 +2646,7 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме #### Новая функциональность {#new-feature-10} -* Добавлена функция `isConstant`. Эта функция проверяет, является ли её аргумент константным выражением и возвращает 1 или 0. Предназначена для разработки, отладки и демонстрационных целей. [#10198](https://github.com/ClickHouse/ClickHouse/pull/10198) ([alexey-milovidov](https://github.com/alexey-milovidov)). +* Добавлена функция `isConstant`. Эта функция проверяет, является ли её аргумент константным выражением и возвращает 1 или 0. Предназначена для разработки, отладки и демонстрационных целей. [#10198](https://github.com/ClickHouse/ClickHouse/pull/10198) ([alexey-milovidов](https://github.com/alexey-milovidov)). #### Исправление ошибок {#bug-fix-45} @@ -2705,7 +2698,7 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Исправлено возможное исключение `Got 0 in totals chunk, expected 1` на клиенте. Оно возникало для запросов с `JOIN`, если в присоединяемой правой таблице было ноль строк. Пример: `select * from system.one t1 join system.one t2 on t1.dummy = t2.dummy limit 0 FORMAT TabSeparated;`. Исправляет [#9777](https://github.com/ClickHouse/ClickHouse/issues/9777). [#9823](https://github.com/ClickHouse/ClickHouse/pull/9823) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). * Исправлен SIGSEGV при `optimize_skip_unused_shards`, когда тип не может быть преобразован. [#9804](https://github.com/ClickHouse/ClickHouse/pull/9804) ([Azat Khuzhin](https://github.com/azat)). * Исправлен некорректный запрос `ALTER TABLE DELETE COLUMN` для компактных частей. [#9779](https://github.com/ClickHouse/ClickHouse/pull/9779) ([alesapin](https://github.com/alesapin)). -* Исправлен max_distributed_connections (с и без Processors). [#9673](https://github.com/ClickHouse/ClickHouse/pull/9673) ([Azat Khuzhin](https://github.com/azat)). +* Исправлен max_distributed_connections (с и без Processors). [#9673](https://github.com/ClickHouse/ClickHouse/pull/9673) ([Azat Khuzhin](https://github.com/азат)). * Исправлено несколько случаев, когда часовой пояс аргумента функции использовался некорректно. [#9574](https://github.com/ClickHouse/ClickHouse/pull/9574) ([Vasily Nemkov](https://github.com/Enmk)). #### Улучшения {#improvement-19} @@ -2715,19 +2708,21 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме ### Релиз ClickHouse v20.3.4.10, 2020-03-20 {#clickhouse-release-v203410-2020-03-20} #### Исправление ошибок {#bug-fix-47} + * Этот релиз также содержит все исправления ошибок из 20.1.8.41 * Исправлена отсутствующая метрика `rows_before_limit_at_least` для запросов по HTTP (с конвейером процессоров). Это исправляет [#9730](https://github.com/ClickHouse/ClickHouse/issues/9730). [#9757](https://github.com/ClickHouse/ClickHouse/pull/9757) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) ### ClickHouse release v20.3.3.6, 2020-03-17 {#clickhouse-release-v20336-2020-03-17} #### Исправление ошибок {#bug-fix-48} + * Этот релиз также содержит все исправления ошибок из 20.1.7.38 * Исправлена ошибка в репликации, из-за которой репликация не работала, если пользователь выполнял мутации в предыдущей версии. Это исправляет [#9645](https://github.com/ClickHouse/ClickHouse/issues/9645). [#9652](https://github.com/ClickHouse/ClickHouse/pull/9652) ([alesapin](https://github.com/alesapin)). Это снова делает версию 20.3 обратно совместимой. * Добавлена настройка `use_compact_format_in_distributed_parts_names`, которая позволяет записывать файлы для запросов `INSERT` в таблицу `Distributed` в более компактном формате. Это исправляет [#9647](https://github.com/ClickHouse/ClickHouse/issues/9647). [#9653](https://github.com/ClickHouse/ClickHouse/pull/9653) ([alesapin](https://github.com/alesapin)). Это снова делает версию 20.3 обратно совместимой. ### ClickHouse release v20.3.2.1, 2020-03-12 {#clickhouse-release-v20321-2020-03-12} -#### Обратное несовместимое изменение {#backward-incompatible-change-9} +#### Изменение, нарушающее обратную совместимость {#backward-incompatible-change-9} * Исправлена ошибка `file name too long` при записи данных в таблицы `Distributed` при большом количестве реплик. Исправлена проблема, из-за которой учетные данные реплик выводились в журнал сервера. Формат имени каталога на диске был изменен на `[shard{shard_index}[_replica{replica_index}]]`. [#8911](https://github.com/ClickHouse/ClickHouse/pull/8911) ([Mikhail Korotov](https://github.com/millb)) После обновления до новой версии вы не сможете откатиться на старую без ручного вмешательства, так как старая версия сервера не распознает новый формат каталогов. Если вы хотите выполнить откат, вам необходимо вручную переименовать соответствующие каталоги в старый формат. Это изменение актуально только в том случае, если вы использовали асинхронные `INSERT` в таблицы `Distributed`. В версии 20.3.3 мы введем настройку, которая позволит постепенно включать новый формат. * Изменён формат записей журнала репликации для команд мутаций. Перед установкой новой версии необходимо дождаться, пока старые мутации будут обработаны. @@ -2741,8 +2736,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Необходимо перезапустить сервер, чтобы применить изменения в конфигурации логирования. Это временное решение, позволяющее избежать ошибки, из-за которой сервер продолжает записывать логи в удалённый файл (см. [#8696](https://github.com/ClickHouse/ClickHouse/issues/8696)). [#8707](https://github.com/ClickHouse/ClickHouse/pull/8707) ([Alexander Kuzmenkov](https://github.com/akuzm)) * Настройка `experimental_use_processors` включена по умолчанию. Она включает использование нового конвейера обработки запросов. Это внутреннее изменение, и мы не ожидаем видимых эффектов. Если вы заметите какие-либо проблемы, установите её обратно в 0. [#8768](https://github.com/ClickHouse/ClickHouse/pull/8768) ([alexey-milovidov](https://github.com/alexey-milovidov)) - - #### Новая функция {#new-feature-11} * Добавлены форматы ввода/вывода `Avro` и `AvroConfluent` [#8571](https://github.com/ClickHouse/ClickHouse/pull/8571) ([Andrew Onyshchuk](https://github.com/oandrew)) [#8957](https://github.com/ClickHouse/ClickHouse/pull/8957) ([Andrew Onyshchuk](https://github.com/oandrew)) [#8717](https://github.com/ClickHouse/ClickHouse/pull/8717) ([alexey-milovidov](https://github.com/alexey-milovidov)) @@ -2751,22 +2744,22 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * При необходимости переключаться с HashJoin на MergeJoin (на диске) [#9082](https://github.com/ClickHouse/ClickHouse/pull/9082) ([Artem Zuikov](https://github.com/4ertus2)) * Добавлена команда `MOVE PARTITION` для оператора `ALTER TABLE` [#4729](https://github.com/ClickHouse/ClickHouse/issues/4729) [#6168](https://github.com/ClickHouse/ClickHouse/pull/6168) ([Guillaume Tassery](https://github.com/YiuRULE)) * Перезагрузка конфигурации хранилища из конфигурационного файла на лету. [#8594](https://github.com/ClickHouse/ClickHouse/pull/8594) ([Vladimir Chebotarev](https://github.com/excitoon)) -* Разрешено изменять `storage_policy` только на не менее «богатую» политику. [#8107](https://github.com/ClickHouse/ClickHouse/pull/8107) ([Vladimir Chebotarev](https://github.com/excitoon)) +* Разрешено изменять `storage_policy` только на не менее ресурсно ёмкую политику. [#8107](https://github.com/ClickHouse/ClickHouse/pull/8107) ([Vladimir Chebotarev](https://github.com/excitoon)) * Добавлена поддержка глобов/подстановочных символов в хранилище S3 и табличной функции. [#8851](https://github.com/ClickHouse/ClickHouse/pull/8851) ([Vladimir Chebotarev](https://github.com/excitoon)) * Реализованы функции `bitAnd`, `bitOr`, `bitXor`, `bitNot` для типа данных `FixedString(N)`. [#9091](https://github.com/ClickHouse/ClickHouse/pull/9091) ([Guillaume Tassery](https://github.com/YiuRULE)) * Добавлена функция `bitCount`. Это решает проблему [#8702](https://github.com/ClickHouse/ClickHouse/issues/8702). [#8708](https://github.com/ClickHouse/ClickHouse/pull/8708) ([alexey-milovidov](https://github.com/alexey-milovidov)) [#8749](https://github.com/ClickHouse/ClickHouse/pull/8749) ([ikopylov](https://github.com/ikopylov)) * Добавлена табличная функция `generateRandom` для генерации случайных строк с заданной схемой. Позволяет заполнять произвольную тестовую таблицу данными. [#8994](https://github.com/ClickHouse/ClickHouse/pull/8994) ([Ilya Yatsishin](https://github.com/qoega)) * `JSONEachRowFormat`: добавлена поддержка частного случая, когда объекты находятся в массиве верхнего уровня. [#8860](https://github.com/ClickHouse/ClickHouse/pull/8860) ([Kruglov Pavel](https://github.com/Avogar)) -* Теперь можно создать столбец с выражением `DEFAULT`, которое зависит от столбца с выражением `ALIAS` по умолчанию. [#9489](https://github.com/ClickHouse/ClickHouse/pull/9489) ([alesapin](https://github.com/alesapin)) -* Теперь в `clickhouse-obfuscator` можно указывать `--limit`, превышающий размер исходных данных. Данные будут повторяться с другим случайным seed. [#9155](https://github.com/ClickHouse/ClickHouse/pull/9155) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Добавлена функция `groupArraySample` (аналогичная `groupArray`) с алгоритмом резервуарной выборки (reservoir sampling). [#8286](https://github.com/ClickHouse/ClickHouse/pull/8286) ([Amos Bird](https://github.com/amosbird)) +* Теперь можно создать столбец с выражением `DEFAULT`, которое зависит от столбца, для которого значение по умолчанию задано выражением `ALIAS`. [#9489](https://github.com/ClickHouse/ClickHouse/pull/9489) ([alesapin](https://github.com/alesapin)) +* Теперь в `clickhouse-obfuscator` можно указывать `--limit`, превышающий размер исходных данных. Данные будут повторяться с различными случайными значениями seed. [#9155](https://github.com/ClickHouse/ClickHouse/pull/9155) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Добавлена функция `groupArraySample` (аналогичная `groupArray`), использующая алгоритм резервуарной выборки (reservoir sampling). [#8286](https://github.com/ClickHouse/ClickHouse/pull/8286) ([Amos Bird](https://github.com/amosbird)) * Теперь вы можете отслеживать размер очереди обновлений в словарях `cache`/`complex_key_cache` с помощью системных метрик. [#9413](https://github.com/ClickHouse/ClickHouse/pull/9413) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) * Добавлена возможность использовать CRLF как разделитель строк в формате вывода CSV, когда настройка `output_format_csv_crlf_end_of_line` установлена в значение 1 [#8934](https://github.com/ClickHouse/ClickHouse/pull/8934) [#8935](https://github.com/ClickHouse/ClickHouse/pull/8935) [#8963](https://github.com/ClickHouse/ClickHouse/pull/8963) ([Mikhail Korotov](https://github.com/millb)) * Реализованы дополнительные функции API [H3](https://github.com/uber/h3): `h3GetBaseCell`, `h3HexAreaM2`, `h3IndexesAreNeighbors`, `h3ToChildren`, `h3ToString` и `stringToH3` [#8938](https://github.com/ClickHouse/ClickHouse/pull/8938) ([Nico Mandery](https://github.com/nmandery)) -* Добавлена новая настройка: `max_parser_depth` для управления максимальным размером стека и выполнения больших сложных запросов. Это исправляет [#6681](https://github.com/ClickHouse/ClickHouse/issues/6681) и [#7668](https://github.com/ClickHouse/ClickHouse/issues/7668). [#8647](https://github.com/ClickHouse/ClickHouse/pull/8647) ([Maxim Smirnov](https://github.com/qMBQx8GH)) -* Добавлена настройка `force_optimize_skip_unused_shards`, которая вызывает исключение, если невозможно пропустить неиспользуемые шарды [#8805](https://github.com/ClickHouse/ClickHouse/pull/8805) ([Azat Khuzhin](https://github.com/azat)) +* Добавлена новая настройка: `max_parser_depth` для управления максимальным размером стека и возможности выполнения больших сложных запросов. Это исправляет [#6681](https://github.com/ClickHouse/ClickHouse/issues/6681) и [#7668](https://github.com/ClickHouse/ClickHouse/issues/7668). [#8647](https://github.com/ClickHouse/ClickHouse/pull/8647) ([Maxim Smirnov](https://github.com/qMBQx8GH)) +* Добавлена настройка `force_optimize_skip_unused_shards`, которая вызывает исключение, если невозможно пропустить неиспользуемые сегменты [#8805](https://github.com/ClickHouse/ClickHouse/pull/8805) ([Azat Khuzhin](https://github.com/azat)) * Добавлена возможность настраивать несколько дисков/томов для хранения данных, отправляемых движком `Distributed` [#8756](https://github.com/ClickHouse/ClickHouse/pull/8756) ([Azat Khuzhin](https://github.com/azat)) -* Добавлена поддержка политики хранения (``) для временных данных. [#8750](https://github.com/ClickHouse/ClickHouse/pull/8750) ([Azat Khuzhin](https://github.com/azat)) +* Добавлена поддержка политики хранения (``) для хранения временных данных. [#8750](https://github.com/ClickHouse/ClickHouse/pull/8750) ([Azat Khuzhin](https://github.com/azat)) * Добавлен HTTP‑заголовок `X-ClickHouse-Exception-Code`, который устанавливается, если было выброшено исключение до отправки данных. Реализация [#4971](https://github.com/ClickHouse/ClickHouse/issues/4971). [#8786](https://github.com/ClickHouse/ClickHouse/pull/8786) ([Mikhail Korotov](https://github.com/millb)) * Добавлена функция `ifNotFinite`. Это просто синтаксический сахар: `ifNotFinite(x, y) = isFinite(x) ? x : y`. [#8710](https://github.com/ClickHouse/ClickHouse/pull/8710) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Добавлен столбец `last_successful_update_time` в таблицу `system.dictionaries` [#9394](https://github.com/ClickHouse/ClickHouse/pull/9394) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) @@ -2775,8 +2768,9 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Добавлены системные таблицы `system.zeros` и `system.zeros_mt`, а также табличные функции `zeros()` и `zeros_mt()`. Таблицы (и табличные функции) содержат единственный столбец с именем `zero` и типом `UInt8`. Этот столбец содержит нули. Они нужны для тестовых целей как самый быстрый способ генерации большого числа строк. Это исправляет [#6604](https://github.com/ClickHouse/ClickHouse/issues/6604) [#9593](https://github.com/ClickHouse/ClickHouse/pull/9593) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) #### Экспериментальная функция {#experimental-feature-7} -* Добавлен новый компактный формат частей в таблицах семейства `MergeTree`, в котором все столбцы хранятся в одном файле. Это помогает увеличить производительность при небольших и частых вставках данных. Старый формат (один файл на столбец) теперь называется широким. Формат хранения данных управляется настройками `min_bytes_for_wide_part` и `min_rows_for_wide_part`. [#8290](https://github.com/ClickHouse/ClickHouse/pull/8290) ([Anton Popov](https://github.com/CurtizJ)) -* Поддержка хранилища S3 для таблиц `Log`, `TinyLog` и `StripeLog`. [#8862](https://github.com/ClickHouse/ClickHouse/pull/8862) ([Pavel Kovalenko](https://github.com/Jokser)) + +* Добавлен новый компактный формат частей в таблицах семейства `MergeTree`, в котором все столбцы хранятся в одном файле. Это позволяет повысить производительность при небольших и частых вставках данных. Старый формат (один файл на столбец) теперь называется широким. Формат хранения данных управляется настройками `min_bytes_for_wide_part` и `min_rows_for_wide_part`. [#8290](https://github.com/ClickHouse/ClickHouse/pull/8290) ([Anton Popov](https://github.com/CurtizJ)) +* Поддержка S3-хранилища для таблиц `Log`, `TinyLog` и `StripeLog`. [#8862](https://github.com/ClickHouse/ClickHouse/pull/8862) ([Pavel Kovalenko](https://github.com/Jokser)) #### Исправление ошибки {#bug-fix-49} @@ -2787,108 +2781,106 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Удалять устаревшую партицию при остановке сервера или выполнении DETACH/ATTACH таблицы. [#8602](https://github.com/ClickHouse/ClickHouse/pull/8602) ([Guillaume Tassery](https://github.com/YiuRULE)) * Для диска по умолчанию изменён способ расчёта объёма свободного места на основе подкаталога `data`. Исправлена ошибка, из-за которой объём свободного пространства вычислялся некорректно, если каталог `data` был примонтирован на отдельное устройство (редкий случай). Это исправляет [#7441](https://github.com/ClickHouse/ClickHouse/issues/7441) [#9257](https://github.com/ClickHouse/ClickHouse/pull/9257) ([Mikhail Korotov](https://github.com/millb)) * Разрешено использование соединения таблиц через запятую (comma/cross join) с IN () внутри. [#9251](https://github.com/ClickHouse/ClickHouse/pull/9251) ([Artem Zuikov](https://github.com/4ertus2)) -* Добавлена возможность переписывать CROSS в INNER JOIN, если в секции WHERE присутствует оператор [NOT] LIKE. [#9229](https://github.com/ClickHouse/ClickHouse/pull/9229) ([Artem Zuikov](https://github.com/4ertus2)) -* Исправлено возможное получение некорректного результата после `GROUP BY` при включённой настройке `distributed_aggregation_memory_efficient`. Исправляет [#9134](https://github.com/ClickHouse/ClickHouse/issues/9134). [#9289](https://github.com/ClickHouse/ClickHouse/pull/9289) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* Найденные ключи засчитывались как промахи в метриках кэш-словарей. [#9411](https://github.com/ClickHouse/ClickHouse/pull/9411) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) +* Разрешено переписывать CROSS JOIN в INNER JOIN, если в предложении WHERE присутствует оператор [NOT] LIKE. [#9229](https://github.com/ClickHouse/ClickHouse/pull/9229) ([Artem Zuikov](https://github.com/4ertus2)) +* Исправлена возможная ошибка, приводившая к некорректному результату после `GROUP BY` при включённой настройке `distributed_aggregation_memory_efficient`. Исправляет [#9134](https://github.com/ClickHouse/ClickHouse/issues/9134). [#9289](https://github.com/ClickHouse/ClickHouse/pull/9289) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* Найденные ключи учитывались как промахи в метриках кэш-словарей. [#9411](https://github.com/ClickHouse/ClickHouse/pull/9411) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) * Исправлена несовместимость протокола репликации, внесённая в [#8598](https://github.com/ClickHouse/ClickHouse/issues/8598). [#9412](https://github.com/ClickHouse/ClickHouse/pull/9412) ([alesapin](https://github.com/alesapin)) * Исправлено условие гонки в `queue_task_handle` при запуске таблиц `ReplicatedMergeTree`. [#9552](https://github.com/ClickHouse/ClickHouse/pull/9552) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Ключевое слово `NOT` не работало в запросе `SHOW TABLES NOT LIKE` [#8727](https://github.com/ClickHouse/ClickHouse/issues/8727) [#8940](https://github.com/ClickHouse/ClickHouse/pull/8940) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Добавлена проверка диапазона для функции `h3EdgeLengthM`. Без этой проверки возможно переполнение буфера. [#8945](https://github.com/ClickHouse/ClickHouse/pull/8945) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Исправлена ошибка в пакетных вычислениях тернарных логических операторов с числом аргументов более 10. [#8718](https://github.com/ClickHouse/ClickHouse/pull/8718) ([Alexander Kazakov](https://github.com/Akazz)) +* Исправлена ошибка в пакетных вычислениях тернарных логических операций с числом аргументов более 10. [#8718](https://github.com/ClickHouse/ClickHouse/pull/8718) ([Alexander Kazakov](https://github.com/Akazz)) * Исправлена ошибка оптимизации PREWHERE, которая могла приводить к ошибкам сегментации (segmentation fault) или к исключению `Inconsistent number of columns got from MergeTreeRangeReader`. [#9024](https://github.com/ClickHouse/ClickHouse/pull/9024) ([Anton Popov](https://github.com/CurtizJ)) -* Исправлено неожиданное исключение `Timeout exceeded while reading from socket`, которое иногда возникает при защищённом подключении до фактического истечения тайм-аута и при включённом профайлере запросов. Также добавлен параметр `connect_timeout_with_failover_secure_ms` (по умолчанию 100 мс), аналогичный `connect_timeout_with_failover_ms`, но используемый для защищённых подключений (так как SSL-рукопожатие медленнее, чем обычное TCP‑подключение) [#9026](https://github.com/ClickHouse/ClickHouse/pull/9026) ([tavplubix](https://github.com/tavplubix)) +* Исправлено неожиданное исключение `Timeout exceeded while reading from socket`, которое случайным образом возникает при защищённом соединении до фактического истечения тайм-аута и при включённом профилировщике запросов. Также добавлен параметр `connect_timeout_with_failover_secure_ms` (по умолчанию 100 мс), аналогичный `connect_timeout_with_failover_ms`, но используемый для защищённых соединений (так как SSL-рукопожатие медленнее, чем обычное TCP‑соединение) [#9026](https://github.com/ClickHouse/ClickHouse/pull/9026) ([tavplubix](https://github.com/tavplubix)) * Исправлена ошибка при финализации мутаций, из-за которой мутация могла зависнуть в состоянии с `parts_to_do=0` и `is_done=0`. [#9022](https://github.com/ClickHouse/ClickHouse/pull/9022) ([alesapin](https://github.com/alesapin)) -* Используйте новую логику ANY JOIN с параметром `partial_merge_join`. Теперь можно выполнять соединения `ANY|ALL|SEMI LEFT` и `ALL INNER` с `partial_merge_join=1`. [#8932](https://github.com/ClickHouse/ClickHouse/pull/8932) ([Artem Zuikov](https://github.com/4ertus2)) -* Теперь шард приводит настройки, полученные от инициатора, к собственным ограничениям вместо генерации исключения. Это исправление позволяет отправлять запросы на шард с отличающимися ограничениями. [#9447](https://github.com/ClickHouse/ClickHouse/pull/9447) ([Vitaly Baranov](https://github.com/vitlibar)) +* Используйте новую логику ANY JOIN с настройкой `partial_merge_join`. Теперь можно выполнять соединения типов `ANY|ALL|SEMI LEFT` и `ALL INNER` с `partial_merge_join=1`. [#8932](https://github.com/ClickHouse/ClickHouse/pull/8932) ([Artem Zuikov](https://github.com/4ertus2)) +* Теперь шард ограничивает значения настроек, полученных от инициатора, своими собственными ограничениями вместо выбрасывания исключения. Это исправление позволяет отправлять запросы на шард с отличающимися ограничениями настроек. [#9447](https://github.com/ClickHouse/ClickHouse/pull/9447) ([Vitaly Baranov](https://github.com/vitlibar)) * Исправлена проблема с управлением памятью в `MergeTreeReadPool`. [#8791](https://github.com/ClickHouse/ClickHouse/pull/8791) ([Vladimir Chebotarev](https://github.com/excitoon)) -* Исправлено семейство функций `toDecimal*OrNull()` при вызове со строковым аргументом `e`. Исправляет [#8312](https://github.com/ClickHouse/ClickHouse/issues/8312) [#8764](https://github.com/ClickHouse/ClickHouse/pull/8764) ([Artem Zuikov](https://github.com/4ertus2)) -* Убедитесь, что `FORMAT Null` не отправляет данные клиенту. [#8767](https://github.com/ClickHouse/ClickHouse/pull/8767) ([Alexander Kuzmenkov](https://github.com/akuzm)) +* Исправлено семейство функций `toDecimal*OrNull()` при вызове со строкой `e`. Исправляет [#8312](https://github.com/ClickHouse/ClickHouse/issues/8312) [#8764](https://github.com/ClickHouse/ClickHouse/pull/8764) ([Artem Zuikov](https://github.com/4ertus2)) +* Теперь `FORMAT Null` не отправляет данные клиенту. [#8767](https://github.com/ClickHouse/ClickHouse/pull/8767) ([Alexander Kuzmenkov](https://github.com/akuzm)) * Исправлена ошибка, из-за которой метка времени в `LiveViewBlockInputStream` не обновлялась. `LIVE VIEW` — экспериментальная функция. [#8644](https://github.com/ClickHouse/ClickHouse/pull/8644) ([vxider](https://github.com/Vxider)) [#8625](https://github.com/ClickHouse/ClickHouse/pull/8625) ([vxider](https://github.com/Vxider)) * Исправлено некорректное поведение `ALTER MODIFY TTL`, которое не позволяло удалить старые выражения TTL. [#8422](https://github.com/ClickHouse/ClickHouse/pull/8422) ([Vladimir Chebotarev](https://github.com/excitoon)) -* Исправлено предупреждение UBSan в MergeTreeIndexSet, что устраняет [#9250](https://github.com/ClickHouse/ClickHouse/issues/9250) [#9365](https://github.com/ClickHouse/ClickHouse/pull/9365) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Исправлено предупреждение UBSan в MergeTreeIndexSet. Это исправляет [#9250](https://github.com/ClickHouse/ClickHouse/issues/9250) [#9365](https://github.com/ClickHouse/ClickHouse/pull/9365) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Исправлено поведение функций `match` и `extract`, когда haystack содержит ноль байт. Поведение было некорректным, когда haystack являлся константой. Это исправляет [#9160](https://github.com/ClickHouse/ClickHouse/issues/9160) [#9163](https://github.com/ClickHouse/ClickHouse/pull/9163) ([alexey-milovidov](https://github.com/alexey-milovidov)) [#9345](https://github.com/ClickHouse/ClickHouse/pull/9345) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Предотвращено выбрасывание исключений из деструктора в сторонней библиотеке Apache Avro. [#9066](https://github.com/ClickHouse/ClickHouse/pull/9066) ([Andrew Onyshchuk](https://github.com/oandrew)) -* Не фиксируйте пакет, полученный из `Kafka`, частично, так как это может привести к пропускам в данных. [#8876](https://github.com/ClickHouse/ClickHouse/pull/8876) ([filimonov](https://github.com/filimonov)) -* Исправлена работа функции `joinGet` с nullable-типами возвращаемых значений. [#8919](https://github.com/ClickHouse/ClickHouse/issues/8919) [#9014](https://github.com/ClickHouse/ClickHouse/pull/9014) ([Amos Bird](https://github.com/amosbird)) -* Исправлена проблема несовместимости данных при сжатии с помощью кодека `T64`. [#9016](https://github.com/ClickHouse/ClickHouse/pull/9016) ([Artem Zuikov](https://github.com/4ertus2)) Исправлены идентификаторы типов данных в кодеке сжатия `T64`, приводившие к некорректному (де)сжатию в затронутых версиях. [#9033](https://github.com/ClickHouse/ClickHouse/pull/9033) ([Artem Zuikov](https://github.com/4ertus2)) -* Добавлена настройка `enable_early_constant_folding`; в случаях, когда её использование приводит к ошибкам, она отключается. [#9010](https://github.com/ClickHouse/ClickHouse/pull/9010) ([Artem Zuikov](https://github.com/4ertus2)) -* Исправлен оптимизатор проталкивания предикатов для VIEW и включён тест [#9011](https://github.com/ClickHouse/ClickHouse/pull/9011) ([Winter Zhang](https://github.com/zhang2014)) +* Не выполняйте частичный коммит пакета, полученного из `Kafka`, так как это может привести к пропускам в данных. [#8876](https://github.com/ClickHouse/ClickHouse/pull/8876) ([filimonov](https://github.com/filimonov)) +* Исправлена работа функции `joinGet` с типами возвращаемых значений Nullable. [#8919](https://github.com/ClickHouse/ClickHouse/issues/8919) [#9014](https://github.com/ClickHouse/ClickHouse/pull/9014) ([Amos Bird](https://github.com/amosbird)) +* Исправлена проблема несовместимости данных при сжатии с помощью кодека `T64`. [#9016](https://github.com/ClickHouse/ClickHouse/pull/9016) ([Artem Zuikov](https://github.com/4ertus2)) Исправлены идентификаторы типов данных в кодеке сжатия `T64`, приводившие к некорректному сжатию/распаковке в затронутых версиях. [#9033](https://github.com/ClickHouse/ClickHouse/pull/9033) ([Artem Zuikov](https://github.com/4ertus2)) +* Добавлена настройка `enable_early_constant_folding`; в случаях, когда её использование приводит к ошибкам, она будет отключена. [#9010](https://github.com/ClickHouse/ClickHouse/pull/9010) ([Artem Zuikov](https://github.com/4ertus2)) +* Исправлен оптимизатор проталкивания предикатов при использовании `VIEW` и включён тест [#9011](https://github.com/ClickHouse/ClickHouse/pull/9011) ([Winter Zhang](https://github.com/zhang2014)) * Исправлена ошибка сегментации в таблицах `Merge`, которая могла возникать при чтении из хранилищ `File` [#9387](https://github.com/ClickHouse/ClickHouse/pull/9387) ([tavplubix](https://github.com/tavplubix)) -* Добавлена проверка политики хранения в `ATTACH PARTITION FROM`, `REPLACE PARTITION`, `MOVE TO TABLE`. Без неё после перезапуска данные части таблицы могли стать недоступны и помешать запуску ClickHouse. [#9383](https://github.com/ClickHouse/ClickHouse/pull/9383) ([Vladimir Chebotarev](https://github.com/excitoon)) +* Добавлена проверка политики хранения в `ATTACH PARTITION FROM`, `REPLACE PARTITION`, `MOVE TO TABLE`. Без неё после перезапуска данные части могли стать недоступны и не дать ClickHouse запуститься. [#9383](https://github.com/ClickHouse/ClickHouse/pull/9383) ([Vladimir Chebotarev](https://github.com/excitoon)) * Исправлена работа операторов ALTER, если для таблицы задан TTL. [#8800](https://github.com/ClickHouse/ClickHouse/pull/8800) ([Anton Popov](https://github.com/CurtizJ)) -* Исправлено состояние гонки, которое могло возникать при выполнении команды `SYSTEM RELOAD ALL DICTIONARIES`, если в это время какой-либо словарь изменялся/добавлялся/удалялся. [#8801](https://github.com/ClickHouse/ClickHouse/pull/8801) ([Vitaly Baranov](https://github.com/vitlibar)) -* В предыдущих версиях движок базы данных `Memory` использовал пустой путь к данным, поэтому таблицы создавались в директории `path` (например, `/var/lib/clickhouse/`), а не в директории данных самой базы данных (например, `/var/lib/clickhouse/db_name`). [#8753](https://github.com/ClickHouse/ClickHouse/pull/8753) ([tavplubix](https://github.com/tavplubix)) +* Исправлено условие гонки, которое могло возникать при выполнении команды `SYSTEM RELOAD ALL DICTIONARIES`, если в это время какой-либо словарь изменялся, добавлялся или удалялся. [#8801](https://github.com/ClickHouse/ClickHouse/pull/8801) ([Vitaly Baranov](https://github.com/vitlibar)) +* В предыдущих версиях движок базы данных `Memory` использовал пустой путь к данным, поэтому таблицы создавались в директории `path` (например, `/var/lib/clickhouse/`), а не в директории данных базы данных (например, `/var/lib/clickhouse/db_name`). [#8753](https://github.com/ClickHouse/ClickHouse/pull/8753) ([tavplubix](https://github.com/tavplubix)) * Исправлены неверные сообщения журнала об отсутствующем диске или политике по умолчанию. [#9530](https://github.com/ClickHouse/ClickHouse/pull/9530) ([Vladimir Chebotarev](https://github.com/excitoon)) -* Исправлена ошибка в работе not(has()) для индекса bloom_filter для типов массивов. [#9407](https://github.com/ClickHouse/ClickHouse/pull/9407) ([achimbab](https://github.com/achimbab)) -* Разрешить использование первых столбцов в таблице с движком `Log` в качестве алиасов [#9231](https://github.com/ClickHouse/ClickHouse/pull/9231) ([Ivan](https://github.com/abyss7)) +* Исправлена ошибка в работе not(has()) для индекса bloom_filter для массивов. [#9407](https://github.com/ClickHouse/ClickHouse/pull/9407) ([achimbab](https://github.com/achimbab)) +* Разрешено использование первых столбцов в таблице с движком `Log` в качестве псевдонимов [#9231](https://github.com/ClickHouse/ClickHouse/pull/9231) ([Ivan](https://github.com/abyss7)) * Исправлен порядок диапазонов при чтении из таблицы `MergeTree` в одном потоке. Это могло приводить к исключениям в `MergeTreeRangeReader` или некорректным результатам запросов. [#9050](https://github.com/ClickHouse/ClickHouse/pull/9050) ([Anton Popov](https://github.com/CurtizJ)) * Изменить `reinterpretAsFixedString`, чтобы она возвращала `FixedString` вместо `String`. [#9052](https://github.com/ClickHouse/ClickHouse/pull/9052) ([Andrew Onyshchuk](https://github.com/oandrew)) -* Исключены крайне редкие случаи, когда пользователь мог получить неверное сообщение об ошибке (`Success` вместо подробного описания ошибки). [#9457](https://github.com/ClickHouse/ClickHouse/pull/9457) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Исключены крайне редкие случаи, когда пользователь мог получить некорректное сообщение об ошибке (`Success` вместо подробного описания ошибки). [#9457](https://github.com/ClickHouse/ClickHouse/pull/9457) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Не падать при использовании формата `Template` с пустым шаблоном строки. [#8785](https://github.com/ClickHouse/ClickHouse/pull/8785) ([Alexander Kuzmenkov](https://github.com/akuzm)) * Файлы метаданных для системных таблиц могли создаваться не в том месте [#8653](https://github.com/ClickHouse/ClickHouse/pull/8653) ([tavplubix](https://github.com/tavplubix)). Исправлена проблема [#8581](https://github.com/ClickHouse/ClickHouse/issues/8581). * Исправлена гонка данных для `exception_ptr` в кэш-словаре [#8303](https://github.com/ClickHouse/ClickHouse/issues/8303). [#9379](https://github.com/ClickHouse/ClickHouse/pull/9379) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) -* Не генерировать исключение для запроса `ATTACH TABLE IF NOT EXISTS`. Ранее оно генерировалось, если таблица уже существовала, несмотря на предложение `IF NOT EXISTS`. [#8967](https://github.com/ClickHouse/ClickHouse/pull/8967) ([Anton Popov](https://github.com/CurtizJ)) +* Не выбрасывать исключение для запроса `ATTACH TABLE IF NOT EXISTS`. Ранее оно выбрасывалось, если таблица уже существовала, несмотря на предложение `IF NOT EXISTS`. [#8967](https://github.com/ClickHouse/ClickHouse/pull/8967) ([Anton Popov](https://github.com/CurtizJ)) * Исправлено отсутствие закрывающей скобки в сообщении об исключении. [#8811](https://github.com/ClickHouse/ClickHouse/pull/8811) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Исключено появление сообщения `Possible deadlock avoided` при запуске clickhouse-client в интерактивном режиме. [#9455](https://github.com/ClickHouse/ClickHouse/pull/9455) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Исправлена проблема, из-за которой заполнение (padding) в конце значения, закодированного в base64, могло быть некорректным. Обновлена библиотека base64. Это исправляет [#9491](https://github.com/ClickHouse/ClickHouse/issues/9491), закрывает [#9492](https://github.com/ClickHouse/ClickHouse/issues/9492) [#9500](https://github.com/ClickHouse/ClickHouse/pull/9500) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Предотвращает потерю данных в `Kafka` в редких случаях, когда возникает исключение после чтения суффикса, но до его коммита. Исправляет [#9378](https://github.com/ClickHouse/ClickHouse/issues/9378) [#9507](https://github.com/ClickHouse/ClickHouse/pull/9507) ([filimonov](https://github.com/filimonov)) -* Исправлено исключение при выполнении `DROP TABLE IF EXISTS` [#8663](https://github.com/ClickHouse/ClickHouse/pull/8663) ([Nikita Vasilev](https://github.com/nikvas0)) -* Исправлено падение при попытке пользователя выполнить `ALTER MODIFY SETTING` для таблиц семейства движков `MergeTree` в старом формате. [#9435](https://github.com/ClickHouse/ClickHouse/pull/9435) ([alesapin](https://github.com/alesapin)) +* Исправлено возникновение исключения при выполнении `DROP TABLE IF EXISTS` [#8663](https://github.com/ClickHouse/ClickHouse/pull/8663) ([Nikita Vasilev](https://github.com/nikvas0)) +* Исправлено падение при попытке пользователя выполнить `ALTER MODIFY SETTING` для таблиц семейства движков `MergeTree` старого формата. [#9435](https://github.com/ClickHouse/ClickHouse/pull/9435) ([alesapin](https://github.com/alesapin)) * Поддержка чисел типа UInt64, которые не помещаются в Int64, в JSON-функциях. Обновлён SIMDJSON до актуальной ветки master. Исправляет [#9209](https://github.com/ClickHouse/ClickHouse/issues/9209) [#9344](https://github.com/ClickHouse/ClickHouse/pull/9344) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Исправлено выполнение обратных предикатов при использовании нестрого монотонного функционального индекса. [#9223](https://github.com/ClickHouse/ClickHouse/pull/9223) ([Alexander Kazakov](https://github.com/Akazz)) +* Исправлено выполнение инвертированных предикатов при использовании нестрого монотонного функционального индекса. [#9223](https://github.com/ClickHouse/ClickHouse/pull/9223) ([Alexander Kazakov](https://github.com/Akazz)) * Не сворачивать константу `IN` в `GROUP BY` [#8868](https://github.com/ClickHouse/ClickHouse/pull/8868) ([Amos Bird](https://github.com/amosbird)) * Исправлена ошибка в мутациях `ALTER DELETE`, которая приводила к повреждению индекса. Это исправляет [#9019](https://github.com/ClickHouse/ClickHouse/issues/9019) и [#8982](https://github.com/ClickHouse/ClickHouse/issues/8982). Также исправлены крайне редкие условия гонки в запросах `ALTER` для `ReplicatedMergeTree`. [#9048](https://github.com/ClickHouse/ClickHouse/pull/9048) ([alesapin](https://github.com/alesapin)) -* При включённой настройке `compile_expressions` при использовании типа `Nullable` может возникнуть ошибка `unexpected column` в `LLVMExecutableFunction` [#8910](https://github.com/ClickHouse/ClickHouse/pull/8910) ([Guillaume Tassery](https://github.com/YiuRULE)) -* Несколько исправлений для движка `Kafka`: 1) исправлены дубликаты, которые появлялись во время ребалансировки группы потребителей. 2) Исправлены редкие «пропуски», возникавшие при опросе данных из нескольких партиций одним poll с частичным коммитом (теперь мы всегда обрабатываем и коммитим весь опрошенный блок сообщений). 3) Исправлен сброс (flush) по размеру блока (до этого корректно работал только сброс по тайм-ауту). 4) улучшена процедура подписки (с обратной связью по assignment). 5) Ускорены тесты (с использованием значений интервалов и тайм-аутов по умолчанию). Из-за того, что ранее данные не сбрасывались по размеру блока (как должно быть согласно документации), этот PR может привести к некоторой деградации производительности с настройками по умолчанию (из-за более частых и меньших по размеру сбросов, которые менее оптимальны). Если вы столкнетесь с проблемами производительности после этого изменения — увеличьте `kafka_max_block_size` в таблице до большего значения (например, `CREATE TABLE ...Engine=Kafka ... SETTINGS ... kafka_max_block_size=524288`). Исправляет [#7259](https://github.com/ClickHouse/ClickHouse/issues/7259) [#8917](https://github.com/ClickHouse/ClickHouse/pull/8917) ([filimonov](https://github.com/filimonov)) +* При включённой настройке `compile_expressions` при использовании типа `Nullable` может возникнуть исключение `unexpected column` в `LLVMExecutableFunction` [#8910](https://github.com/ClickHouse/ClickHouse/pull/8910) ([Guillaume Tassery](https://github.com/YiuRULE)) +* Несколько исправлений для движка `Kafka`: 1) Исправлены дубликаты, которые появлялись во время ребалансировки группы потребителей. 2) Исправлены редкие «дыры» в данных, возникавшие при опросе данных из нескольких партиций одним вызовом poll с частичным коммитом (теперь мы всегда обрабатываем и коммитим весь опрошенный блок сообщений). 3) Исправлен сброс (flush) по размеру блока (до этого корректно работал только сброс по тайм-ауту). 4) Улучшена процедура подписки (с обратной связью по assignment). 5) Ускорены тесты (с использованием значений интервалов и тайм-аутов по умолчанию). Из-за того, что ранее данные не сбрасывались по размеру блока (как должно быть согласно документации), этот PR может привести к некоторой деградации производительности с настройками по умолчанию (из-за более частых и менее объёмных сбросов, которые менее оптимальны). Если вы столкнётесь с проблемами производительности после этого изменения — увеличьте `kafka_max_block_size` в таблице до большего значения (например, `CREATE TABLE ...Engine=Kafka ... SETTINGS ... kafka_max_block_size=524288`). Исправляет [#7259](https://github.com/ClickHouse/ClickHouse/issues/7259) [#8917](https://github.com/ClickHouse/ClickHouse/pull/8917) ([filimonov](https://github.com/filimonov)) * Исправлена ошибка, приводившая к исключению `Parameter out of bound` в некоторых запросах после оптимизаций PREWHERE. [#8914](https://github.com/ClickHouse/ClickHouse/pull/8914) ([Baudouin Giard](https://github.com/bgiard)) * Исправлена обработка аргументов с разной константностью в функции `arrayZip`. [#8705](https://github.com/ClickHouse/ClickHouse/pull/8705) ([alexey-milovidov](https://github.com/alexey-milovidov)) * При выполнении запроса `CREATE` сворачивать константные выражения в аргументах движка хранения. Заменять пустое имя базы данных на текущую базу данных. Исправлены [#6508](https://github.com/ClickHouse/ClickHouse/issues/6508), [#3492](https://github.com/ClickHouse/ClickHouse/issues/3492), [#9262](https://github.com/ClickHouse/ClickHouse/pull/9262) ([tavplubix](https://github.com/tavplubix)) * Теперь нельзя создавать или добавлять столбцы с простыми циклическими псевдонимами, такими как `a DEFAULT b, b DEFAULT a`. [#9603](https://github.com/ClickHouse/ClickHouse/pull/9603) ([alesapin](https://github.com/alesapin)) -* Исправлена ошибка с двойным перемещением, которая могла приводить к повреждению исходной части данных. Это актуально, если вы используете `ALTER TABLE MOVE` [#8680](https://github.com/ClickHouse/ClickHouse/pull/8680) ([Vladimir Chebotarev](https://github.com/excitoon)) -* Теперь идентификатор `interval` корректно разбирается без обратных кавычек. Исправлена проблема, из-за которой запрос не удавалось выполнить даже при заключении идентификатора `interval` в обратные или двойные кавычки. Исправляет [#9124](https://github.com/ClickHouse/ClickHouse/issues/9124). [#9142](https://github.com/ClickHouse/ClickHouse/pull/9142) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Исправлена ошибка, из‑за которой повторное перемещение могло приводить к повреждению исходной части данных. Это актуально, если вы используете `ALTER TABLE MOVE` [#8680](https://github.com/ClickHouse/ClickHouse/pull/8680) ([Vladimir Chebotarev](https://github.com/excitoon)) +* Теперь идентификатор `interval` корректно разбирается без обратных кавычек. Исправлена проблема, из-за которой было невозможно выполнить запрос даже при заключении идентификатора `interval` в обратные или двойные кавычки. Исправляет [#9124](https://github.com/ClickHouse/ClickHouse/issues/9124). [#9142](https://github.com/ClickHouse/ClickHouse/pull/9142) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Исправлены fuzz-тест и некорректное поведение функций `bitTestAll`/`bitTestAny`. [#9143](https://github.com/ClickHouse/ClickHouse/pull/9143) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Исправлен возможный сбой или неверное число строк в `LIMIT n WITH TIES` при большом количестве строк, совпадающих с n-й строкой. [#9464](https://github.com/ClickHouse/ClickHouse/pull/9464) ([tavplubix](https://github.com/tavplubix)) * Исправлены мутации для частей, записанных при включённом `insert_quorum`. [#9463](https://github.com/ClickHouse/ClickHouse/pull/9463) ([alesapin](https://github.com/alesapin)) * Исправлена гонка данных при уничтожении `Poco::HTTPServer`. Она могла возникнуть, когда сервер запускался и сразу же останавливался. [#9468](https://github.com/ClickHouse/ClickHouse/pull/9468) ([Anton Popov](https://github.com/CurtizJ)) * Исправлена ошибка, из-за которой при выполнении `SHOW CREATE TABLE a_table_that_does_not_exist` отображалось вводящее в заблуждение сообщение об ошибке. [#8899](https://github.com/ClickHouse/ClickHouse/pull/8899) ([achulkov2](https://github.com/achulkov2)) -* Исправлено исключение `Parameters are out of bound` в редких случаях, когда в предложении `SELECT` присутствует константа при наличии предложений `ORDER BY` и `LIMIT`. [#8892](https://github.com/ClickHouse/ClickHouse/pull/8892) ([Guillaume Tassery](https://github.com/YiuRULE)) +* Исправлено исключение `Parameters are out of bound` в редких случаях, когда в предложении `SELECT` присутствует константа и используются предложения `ORDER BY` и `LIMIT`. [#8892](https://github.com/ClickHouse/ClickHouse/pull/8892) ([Guillaume Tassery](https://github.com/YiuRULE)) * Исправлена ошибка финализации мутаций, из-за которой уже выполненная мутация могла иметь статус `is_done=0`. [#9217](https://github.com/ClickHouse/ClickHouse/pull/9217) ([alesapin](https://github.com/alesapin)) -* Предотвращено выполнение `ALTER ADD INDEX` для таблиц MergeTree со старым синтаксисом, поскольку он не работает. [#8822](https://github.com/ClickHouse/ClickHouse/pull/8822) ([Mikhail Korotov](https://github.com/millb)) +* Предотвращено выполнение `ALTER ADD INDEX` для таблиц MergeTree со старым синтаксисом, так как он не поддерживается. [#8822](https://github.com/ClickHouse/ClickHouse/pull/8822) ([Mikhail Korotov](https://github.com/millb)) * Во время запуска сервера не обращайтесь к таблице, от которой зависит `LIVE VIEW`, чтобы сервер смог успешно запуститься. Также удаляйте зависимости `LIVE VIEW` при отсоединении `LIVE VIEW`. `LIVE VIEW` — экспериментальная функция. [#8824](https://github.com/ClickHouse/ClickHouse/pull/8824) ([tavplubix](https://github.com/tavplubix)) * Исправлена возможная ошибка сегментации в `MergeTreeRangeReader` при выполнении `PREWHERE`. [#9106](https://github.com/ClickHouse/ClickHouse/pull/9106) ([Anton Popov](https://github.com/CurtizJ)) -* Исправлено возможное несовпадение контрольных сумм для столбцов с TTL. [#9451](https://github.com/ClickHouse/ClickHouse/pull/9451) ([Anton Popov](https://github.com/CurtizJ)) -* Исправлена ошибка, из‑за которой части не переносились в фоновом режиме по правилам TTL в случае, когда был только один том. [#8672](https://github.com/ClickHouse/ClickHouse/pull/8672) ([Vladimir Chebotarev](https://github.com/excitoon)) +* Исправлено возможное несоответствие контрольных сумм при использовании TTL для столбцов. [#9451](https://github.com/ClickHouse/ClickHouse/pull/9451) ([Anton Popov](https://github.com/CurtizJ)) +* Исправлена ошибка, из‑за которой части не переносились в фоновом режиме в соответствии с правилами TTL, если был только один том. [#8672](https://github.com/ClickHouse/ClickHouse/pull/8672) ([Vladimir Chebotarev](https://github.com/excitoon)) * Исправлена проблема `Method createColumn() is not implemented for data type Set`. Тем самым исправлена [#7799](https://github.com/ClickHouse/ClickHouse/issues/7799). [#8674](https://github.com/ClickHouse/ClickHouse/pull/8674) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Теперь мы будем чаще выполнять финализацию мутаций. [#9427](https://github.com/ClickHouse/ClickHouse/pull/9427) ([alesapin](https://github.com/alesapin)) -* Исправлена `intDiv` за счёт уменьшения константы на единицу [#9351](https://github.com/ClickHouse/ClickHouse/pull/9351) ([hcz](https://github.com/hczhcz)) +* Исправлена функция `intDiv` путём уменьшения константы на единицу [#9351](https://github.com/ClickHouse/ClickHouse/pull/9351) ([hcz](https://github.com/hczhcz)) * Исправлена возможная гонка в `BlockIO`. [#9356](https://github.com/ClickHouse/ClickHouse/pull/9356) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * Исправлена ошибка, приводившая к завершению работы сервера при попытке использовать или удалить таблицу `Kafka`, созданную с неверными параметрами. [#9513](https://github.com/ClickHouse/ClickHouse/pull/9513) ([filimonov](https://github.com/filimonov)) -* Добавлено обходное решение на случай, если ОС возвращает неверный результат для функции `timer_create`. [#8837](https://github.com/ClickHouse/ClickHouse/pull/8837) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Исправлена ошибка в использовании параметра `min_marks_for_seek`. Исправлено сообщение об ошибке, возникавшей при отсутствии ключа шардинга в таблице Distributed при попытке пропустить неиспользуемые шарды. [#8908](https://github.com/ClickHouse/ClickHouse/pull/8908) ([Azat Khuzhin](https://github.com/azat)) - - +* Добавлен обходной путь на случай, когда ОС возвращает некорректный результат функции `timer_create`. [#8837](https://github.com/ClickHouse/ClickHouse/pull/8837) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Исправлена ошибка в использовании параметра `min_marks_for_seek`. Исправлено сообщение об ошибке, которое возникало при отсутствии ключа сегментации в таблице Distributed при попытке пропустить неиспользуемые сегменты. [#8908](https://github.com/ClickHouse/ClickHouse/pull/8908) ([Azat Khuzhin](https://github.com/azat)) #### Улучшение {#improvement-20} * Реализованы запросы `ALTER MODIFY/DROP` на основе мутаций для семейства движков `ReplicatedMergeTree*`. Теперь операторы `ALTER` блокируют только на этапе обновления метаданных и не блокируют после него. [#8701](https://github.com/ClickHouse/ClickHouse/pull/8701) ([alesapin](https://github.com/alesapin)) -* Добавлена возможность переписывать CROSS JOIN в INNER JOIN при наличии предложения `WHERE`, содержащего неквалифицированные имена. [#9512](https://github.com/ClickHouse/ClickHouse/pull/9512) ([Artem Zuиков](https://github.com/4ertus2)) -* Добавить для запросов `SHOW TABLES` и `SHOW DATABASES` поддержку выражений `WHERE` и `FROM`/`IN` [#9076](https://github.com/ClickHouse/ClickHouse/pull/9076) ([sundyli](https://github.com/sundy-li)) +* Добавлена возможность переписывать CROSS JOIN в INNER JOIN при наличии предложения `WHERE`, содержащего неквалифицированные имена. [#9512](https://github.com/ClickHouse/ClickHouse/pull/9512) ([Artem Zuikov](https://github.com/4ertus2)) +* Добавлена поддержка выражений `WHERE` и `FROM`/`IN` в запросах `SHOW TABLES` и `SHOW DATABASES` [#9076](https://github.com/ClickHouse/ClickHouse/pull/9076) ([sundyli](https://github.com/sundy-li)) * Добавлен параметр `deduplicate_blocks_in_dependent_materialized_views`. [#9070](https://github.com/ClickHouse/ClickHouse/pull/9070) ([urykhy](https://github.com/urykhy)) * После недавних изменений клиент MySQL начал выводить бинарные строки в шестнадцатеричном виде, из-за чего они стали нечитаемыми ([#9032](https://github.com/ClickHouse/ClickHouse/issues/9032)). Обходной путь в ClickHouse — пометить строковые столбцы как UTF-8, что подходит не всегда, но в большинстве случаев. [#9079](https://github.com/ClickHouse/ClickHouse/pull/9079) ([Yuriy Baranov](https://github.com/yurriy)) * Добавлена поддержка ключей типов String и FixedString в функции `sumMap` [#8903](https://github.com/ClickHouse/ClickHouse/pull/8903) ([Baudouin Giard](https://github.com/bgiard)) -* Поддержка строковых ключей в столбцах Map в SummingMergeTree [#8933](https://github.com/ClickHouse/ClickHouse/pull/8933) ([Baudouin Giard](https://github.com/bgiard)) -* Сигнализировать пулу потоков о завершении потока, даже если поток завершился с исключением [#8736](https://github.com/ClickHouse/ClickHouse/pull/8736) ([Ding Xiang Fei](https://github.com/dingxiangfei2009)) +* Добавлена поддержка строковых ключей в столбцах Map в SummingMergeTree [#8933](https://github.com/ClickHouse/ClickHouse/pull/8933) ([Baudouin Giard](https://github.com/bgiard)) +* Сигнализировать пулу потоков о завершении потока, даже если в нём было выброшено исключение [#8736](https://github.com/ClickHouse/ClickHouse/pull/8736) ([Ding Xiang Fei](https://github.com/dingxiangfei2009)) * Добавлена возможность задавать `query_id` в `clickhouse-benchmark` [#9416](https://github.com/ClickHouse/ClickHouse/pull/9416) ([Anton Popov](https://github.com/CurtizJ)) * Не допускается использование некорректных выражений в запросе `ALTER TABLE ... PARTITION partition`. Это исправляет [#7192](https://github.com/ClickHouse/ClickHouse/issues/7192) [#8835](https://github.com/ClickHouse/ClickHouse/pull/8835) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Таблица `system.table_engines` теперь предоставляет информацию о поддержке функций (таких как `supports_ttl` или `supports_sort_order`). [#8830](https://github.com/ClickHouse/ClickHouse/pull/8830) ([Max Akhmedov](https://github.com/zlobober)) +* Таблица `system.table_engines` теперь предоставляет информацию о поддержке возможностей (таких как `supports_ttl` или `supports_sort_order`). [#8830](https://github.com/ClickHouse/ClickHouse/pull/8830) ([Max Akhmedov](https://github.com/zlobober)) * `system.metric_log` теперь включен по умолчанию. Он будет содержать строки со значениями ProfileEvents и CurrentMetrics, собираемыми с интервалом `collect_interval_milliseconds` (одна секунда по умолчанию). Таблица очень маленькая (обычно размером в несколько мегабайт), поэтому разумно собирать эти данные по умолчанию. [#9225](https://github.com/ClickHouse/ClickHouse/pull/9225) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Инициализирован профилировщик запросов для всех потоков в группе, что, в частности, позволяет полностью профилировать запросы INSERT. Исправляет [#6964](https://github.com/ClickHouse/ClickHouse/issues/6964) [#8874](https://github.com/ClickHouse/ClickHouse/pull/8874) ([Ivan](https://github.com/abyss7)) -* Теперь временное представление `LIVE VIEW` создаётся с помощью `CREATE LIVE VIEW name WITH TIMEOUT [42] ...` вместо `CREATE TEMPORARY LIVE VIEW ...`, поскольку предыдущий синтаксис не был согласован с `CREATE TEMPORARY TABLE ...` [#9131](https://github.com/ClickHouse/ClickHouse/pull/9131) ([tavplubix](https://github.com/tavplubix)) -* Добавлен параметр конфигурации text_log.level для ограничения записей, попадающих в таблицу `system.text_log` [#8809](https://github.com/ClickHouse/ClickHouse/pull/8809) ([Azat Khuzhin](https://github.com/azat)) +* Теперь временное представление `LIVE VIEW` создаётся оператором `CREATE LIVE VIEW name WITH TIMEOUT [42] ...` вместо `CREATE TEMPORARY LIVE VIEW ...`, поскольку предыдущий синтаксис не соответствовал синтаксису `CREATE TEMPORARY TABLE ...` [#9131](https://github.com/ClickHouse/ClickHouse/pull/9131) ([tavplubix](https://github.com/tavplubix)) +* Добавлен параметр конфигурации text_log.level для фильтрации записей, попадающих в таблицу `system.text_log` [#8809](https://github.com/ClickHouse/ClickHouse/pull/8809) ([Azat Khuzhin](https://github.com/azat)) * Добавлена возможность размещать загруженную часть на дисках/томах в соответствии с правилами TTL [#8598](https://github.com/ClickHouse/ClickHouse/pull/8598) ([Vladimir Chebotarev](https://github.com/excitoon)) * Для внешних словарей MySQL добавлена возможность совместного использования пула подключений MySQL между словарями, что значительно снижает количество подключений к серверам MySQL. [#9409](https://github.com/ClickHouse/ClickHouse/pull/9409) ([Clément Rodriguez](https://github.com/clemrodriguez)) -* В `clickhouse-benchmark` отображать ближайшее фактическое время выполнения запросов для квантилей вместо интерполированных значений. Лучше показывать значения, соответствующие времени выполнения конкретных запросов. [#8712](https://github.com/ClickHouse/ClickHouse/pull/8712) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Добавлена возможность задавать ключ и временную метку сообщения при вставке данных в Kafka. Исправлены [#7198](https://github.com/ClickHouse/ClickHouse/issues/7198) [#8969](https://github.com/ClickHouse/ClickHouse/pull/8969) ([filimonov](https://github.com/filimonov)) +* В `clickhouse-benchmark` отображать наиболее близкое время выполнения запросов для квантилей вместо интерполированных значений. Лучше показывать значения, соответствующие времени выполнения конкретных запросов. [#8712](https://github.com/ClickHouse/ClickHouse/pull/8712) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Добавлена возможность задавать ключ и временную метку сообщения при вставке данных в Kafka. Исправляет [#7198](https://github.com/ClickHouse/ClickHouse/issues/7198) [#8969](https://github.com/ClickHouse/ClickHouse/pull/8969) ([filimonov](https://github.com/filimonov)) * Если сервер запущен из терминала, номер потока, идентификатор запроса и приоритет лога выделяются цветом. Это улучшает читаемость коррелированных лог-сообщений для разработчиков. [#8961](https://github.com/ClickHouse/ClickHouse/pull/8961) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Улучшено сообщение об ошибке при загрузке таблиц базы данных `Ordinary`. [#9527](https://github.com/ClickHouse/ClickHouse/pull/9527) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Реализована поддержка `arraySlice` для массивов состояний агрегатных функций. Исправляет [#9388](https://github.com/ClickHouse/ClickHouse/issues/9388) [#9391](https://github.com/ClickHouse/ClickHouse/pull/9391) ([alexey-milovidov](https://github.com/alexey-milovidov)) @@ -2897,20 +2889,21 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Атомарное удаление частей данных MergeTree при удалении. [#8402](https://github.com/ClickHouse/ClickHouse/pull/8402) ([Vladimir Chebotarev](https://github.com/excitoon)) * Добавлена поддержка безопасности на уровне строк (row-level security) для распределённых таблиц (Distributed). [#8926](https://github.com/ClickHouse/ClickHouse/pull/8926) ([Ivan](https://github.com/abyss7)) * Теперь в значениях настроек распознаются суффиксы (например, KB, KiB и т. д.). [#8072](https://github.com/ClickHouse/ClickHouse/pull/8072) ([Mikhail Korotov](https://github.com/millb)) -* Предотвращено переполнение памяти при построении результата большого JOIN. [#8637](https://github.com/ClickHouse/ClickHouse/pull/8637) ([Artem Zuikov](https://github.com/4ertus2)) +* Предотвращена ошибка «out of memory» при построении результата большого JOIN. [#8637](https://github.com/ClickHouse/ClickHouse/pull/8637) ([Artem Zuиков](https://github.com/4ertus2)) * В интерактивном режиме `clickhouse-client` в подсказки добавлены имена кластеров. [#8709](https://github.com/ClickHouse/ClickHouse/pull/8709) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Инициализация профилировщика запросов для всех потоков в группе, что, например, позволяет полностью профилировать запросы INSERT [#8820](https://github.com/ClickHouse/ClickHouse/pull/8820) ([Ivan](https://github.com/abyss7)) +* Инициализирован профилировщик запросов для всех потоков в группе, что, в частности, позволяет полностью профилировать запросы INSERT. [#8820](https://github.com/ClickHouse/ClickHouse/pull/8820) ([Ivan](https://github.com/abyss7)) * В таблицу `system.query_log` добавлен столбец `exception_code`. [#8770](https://github.com/ClickHouse/ClickHouse/pull/8770) ([Mikhail Korotov](https://github.com/millb)) * Включён сервер, совместимый с MySQL, на порту `9004` в файле конфигурации сервера по умолчанию. Исправлена команда для генерации пароля в примере конфигурации. [#8771](https://github.com/ClickHouse/ClickHouse/pull/8771) ([Yuriy Baranov](https://github.com/yurriy)) * Предотвращено аварийное завершение при остановке, если файловая система смонтирована только для чтения. Исправляет [#9094](https://github.com/ClickHouse/ClickHouse/issues/9094) [#9100](https://github.com/ClickHouse/ClickHouse/pull/9100) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Улучшено сообщение об исключении, когда для HTTP POST-запроса требуется указать длину. [#9453](https://github.com/ClickHouse/ClickHouse/pull/9453) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Добавлены виртуальные столбцы `_path` и `_file` в движки `HDFS` и `File`, а также в табличные функции `hdfs` и `file` [#8489](https://github.com/ClickHouse/ClickHouse/pull/8489) ([Olga Khvостикova](https://github.com/stavrolia)) -* Исправлена ошибка `Cannot find column` при вставке данных в `MATERIALIZED VIEW`, если во внутреннюю таблицу представления был добавлен новый столбец. [#8766](https://github.com/ClickHouse/ClickHouse/pull/8766) [#8788](https://github.com/ClickHouse/ClickHouse/pull/8788) ([vzakaznikov](https://github.com/vzakaznikov)) [#8788](https://github.com/ClickHouse/ClickHouse/issues/8788) [#8806](https://github.com/ClickHouse/ClickHouse/pull/8806) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) [#8803](https://github.com/ClickHouse/ClickHouse/pull/8803) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* Исправлена отправка прогресса по нативному клиент-серверному протоколу: теперь он отправляется после финального обновления (как в случае с логами). Это может быть актуально только для некоторых сторонних инструментов, использующих нативный протокол. [#9495](https://github.com/ClickHouse/ClickHouse/pull/9495) ([Azat Khuzhin](https://github.com/azat)) +* Добавлены виртуальные столбцы `_path` и `_file` в движки `HDFS` и `File`, а также в табличные функции `hdfs` и `file` [#8489](https://github.com/ClickHouse/ClickHouse/pull/8489) ([Olga Khvостикова](https://github.com/stavrolia)) +* Исправлена ошибка `Cannot find column` при вставке данных в `MATERIALIZED VIEW`, если во внутреннюю таблицу представления был добавлен новый столбец. [#8766](https://github.com/ClickHouse/ClickHouse/pull/8766) [#8788](https://github.com/ClickHouse/ClickHouse/pull/8788) ([vzakaznikov](https://github.com/vzakaznikov)) [#8788](https://github.com/ClickHouse/ClickHouse/issues/8788) [#8806](https://github.com/ClickHouse/ClickHouse/pull/8806) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) [#8803](https://github.com/ClickHouse/ClickHouse/pull/8803) ([Nikolai Kochetов](https://github.com/KochetovNicolai)) +* Исправлена отправка прогресса по нативному клиент-серверному протоколу: теперь он отправляется после окончательного обновления (как в случае с логами). Это может быть актуально только для некоторых сторонних инструментов, использующих нативный протокол. [#9495](https://github.com/ClickHouse/ClickHouse/pull/9495) ([Azat Khuzhin](https://github.com/azat)) * Добавлена системная метрика, отслеживающая количество клиентских соединений по протоколу MySQL ([#9013](https://github.com/ClickHouse/ClickHouse/issues/9013)). [#9015](https://github.com/ClickHouse/ClickHouse/pull/9015) ([Eugene Klimov](https://github.com/Slach)) * Теперь HTTP-ответы содержат заголовок `X-ClickHouse-Timezone` с тем же значением часового пояса, которое возвращает `SELECT timezone()`. [#9493](https://github.com/ClickHouse/ClickHouse/pull/9493) ([Denis Glazachev](https://github.com/traceon)) #### Улучшения производительности {#performance-improvement-16} + * Повышена производительность анализа индекса с оператором IN [#9261](https://github.com/ClickHouse/ClickHouse/pull/9261) ([Anton Popov](https://github.com/CurtizJ)) * Более простой и эффективный код в Logical Functions + рефакторинг кода. Доработка по отношению к [#8718](https://github.com/ClickHouse/ClickHouse/issues/8718) [#8728](https://github.com/ClickHouse/ClickHouse/pull/8728) ([Alexander Kazakov](https://github.com/Akazz)) * Общее улучшение производительности (в диапазоне 5%..200% для затронутых запросов) за счёт ещё более строгого aliasing с использованием возможностей C++20. [#9304](https://github.com/ClickHouse/ClickHouse/pull/9304) ([Amos Bird](https://github.com/amosbird)) @@ -2928,50 +2921,48 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Заменён `readline` на `replxx` для интерактивного редактирования строк в `clickhouse-client` [#8416](https://github.com/ClickHouse/ClickHouse/pull/8416) ([Ivan](https://github.com/abyss7)) * Улучшено время сборки и снижено количество инстанцирований шаблонов в FunctionsComparison. [#9324](https://github.com/ClickHouse/ClickHouse/pull/9324) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Добавлена интеграция `clang-tidy` в CI. См. также [#6044](https://github.com/ClickHouse/ClickHouse/issues/6044) [#9566](https://github.com/ClickHouse/ClickHouse/pull/9566) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Теперь в CI мы линкуем ClickHouse с помощью `lld` даже при использовании `gcc`. [#9049](https://github.com/ClickHouse/ClickHouse/pull/9049) ([alesapin](https://github.com/alesapin)) -* Позволяет случайным образом изменять планирование потоков и вносить сбои, когда установлены переменные окружения `THREAD_FUZZER_*`. Это помогает при тестировании. [#9459](https://github.com/ClickHouse/ClickHouse/pull/9459) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Теперь в CI мы компонуем ClickHouse с помощью компоновщика `lld` даже при использовании `gcc`. [#9049](https://github.com/ClickHouse/ClickHouse/pull/9049) ([alesapin](https://github.com/alesapin)) +* Позволена рандомизация планирования потоков и внесение сбоев при установленных переменных окружения `THREAD_FUZZER_*`. Это упрощает тестирование. [#9459](https://github.com/ClickHouse/ClickHouse/pull/9459) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Включена поддержка защищённых сокетов для stateless-тестов [#9288](https://github.com/ClickHouse/ClickHouse/pull/9288) ([tavplubix](https://github.com/tavplubix)) * Повысить надёжность SPLIT_SHARED_LIBRARIES=OFF [#9156](https://github.com/ClickHouse/ClickHouse/pull/9156) ([Azat Khuzhin](https://github.com/azat)) -* Сделайте тест "performance_introspection_and_logging" устойчивым к случайным зависаниям сервера. Это может произойти в среде CI. См. также [#9515](https://github.com/ClickHouse/ClickHouse/issues/9515) [#9528](https://github.com/ClickHouse/ClickHouse/pull/9528) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Проверять XML при проверке стиля кода. [#9550](https://github.com/ClickHouse/ClickHouse/pull/9550) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Тест "performance_introspection_and_logging" сделан более надёжным при случайных зависаниях сервера. Такое может происходить в среде CI. См. также [#9515](https://github.com/ClickHouse/ClickHouse/issues/9515) [#9528](https://github.com/ClickHouse/ClickHouse/pull/9528) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Проверять корректность XML при проверке стиля кода. [#9550](https://github.com/ClickHouse/ClickHouse/pull/9550) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Исправлено состояние гонки в тесте `00738_lock_for_inner_table`. Этот тест использовал sleep. [#9555](https://github.com/ClickHouse/ClickHouse/pull/9555) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Удалены тесты производительности типа `once`. Это необходимо для запуска всех тестов производительности в режиме статистического сравнения (более надёжно). [#9557](https://github.com/ClickHouse/ClickHouse/pull/9557) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Удалены тесты производительности типа `once`. Это сделано для того, чтобы все тесты производительности запускались в режиме статистического сравнения, что более надёжно. [#9557](https://github.com/ClickHouse/ClickHouse/pull/9557) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Добавлен тест производительности для арифметических функций. [#9326](https://github.com/ClickHouse/ClickHouse/pull/9326) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Добавлен тест производительности для агрегатных функций `sumMap` и `sumMapWithOverflow`. Продолжение к [#8933](https://github.com/ClickHouse/ClickHouse/issues/8933) [#8947](https://github.com/ClickHouse/ClickHouse/pull/8947) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Добавлена проверка стиля для ErrorCodes. [#9370](https://github.com/ClickHouse/ClickHouse/pull/9370) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Добавлен скрипт для истории тестов. [#8796](https://github.com/ClickHouse/ClickHouse/pull/8796) ([alesapin](https://github.com/alesapin)) * Добавлено предупреждение GCC `-Wsuggest-override` для поиска и исправления всех случаев, когда должно использоваться ключевое слово `override`. [#8760](https://github.com/ClickHouse/ClickHouse/pull/8760) ([kreuzerkrieg](https://github.com/kreuzerkrieg)) -* Игнорировать слабый символ в Mac OS X, так как он должен быть определён [#9538](https://github.com/ClickHouse/ClickHouse/pull/9538) ([Deleted user](https://github.com/ghost)) +* Игнорировать слабый символ в Mac OS X, поскольку он в любом случае должен быть определён [#9538](https://github.com/ClickHouse/ClickHouse/pull/9538) ([Deleted user](https://github.com/ghost)) * Нормализовано время выполнения некоторых запросов в тестах производительности. Это сделано в рамках подготовки к запуску всех тестов производительности в сравнительном режиме. [#9565](https://github.com/ClickHouse/ClickHouse/pull/9565) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Исправлены некоторые тесты для поддержки pytest при выполнении тестов запросов [#9062](https://github.com/ClickHouse/ClickHouse/pull/9062) ([Ivan](https://github.com/abyss7)) -* Включить SSL при сборке с MSan, чтобы сервер не падал при запуске stateless-тестов [#9531](https://github.com/ClickHouse/ClickHouse/pull/9531) ([tavplubix](https://github.com/tavplubix)) +* Исправлены некоторые тесты, чтобы обеспечить поддержку pytest для тестов запросов [#9062](https://github.com/ClickHouse/ClickHouse/pull/9062) ([Ivan](https://github.com/abyss7)) +* Включён SSL при сборке с MSan, чтобы сервер не аварийно завершался при запуске stateless-тестов [#9531](https://github.com/ClickHouse/ClickHouse/pull/9531) ([tavplubix](https://github.com/tavplubix)) * Исправлена подстановка базы данных в результатах тестов [#9384](https://github.com/ClickHouse/ClickHouse/pull/9384) ([Ilya Yatsishin](https://github.com/qoega)) * Исправления сборки для различных платформ [#9381](https://github.com/ClickHouse/ClickHouse/pull/9381) ([proller](https://github.com/proller)) [#8755](https://github.com/ClickHouse/ClickHouse/pull/8755) ([proller](https://github.com/proller)) [#8631](https://github.com/ClickHouse/ClickHouse/pull/8631) ([proller](https://github.com/proller)) * В тестовый Docker-образ stateless-with-coverage добавлен раздел disks [#9213](https://github.com/ClickHouse/ClickHouse/pull/9213) ([Pavel Kovalenko](https://github.com/Jokser)) * Исключены файлы из дерева исходников при сборке с GRPC [#9588](https://github.com/ClickHouse/ClickHouse/pull/9588) ([Amos Bird](https://github.com/amosbird)) -* Незначительно ускорено время сборки за счёт удаления SessionCleaner из Context. Упрощён код SessionCleaner. [#9232](https://github.com/ClickHouse/ClickHouse/pull/9232) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Незначительно ускорено время сборки за счёт удаления SessionCleaner из Context и упрощения его кода. [#9232](https://github.com/ClickHouse/ClickHouse/pull/9232) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Обновлена проверка зависших запросов в скрипте clickhouse-test [#8858](https://github.com/ClickHouse/ClickHouse/pull/8858) ([Alexander Kazakov](https://github.com/Akazz)) * Удалены некоторые ненужные файлы из репозитория. [#8843](https://github.com/ClickHouse/ClickHouse/pull/8843) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Изменён тип тестов производительности math с `once` на `loop`. [#8783](https://github.com/ClickHouse/ClickHouse/pull/8783) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* Добавлен docker-образ, который позволяет собирать интерактивный HTML-отчёт‑браузер кода для нашей кодовой базы. [#8781](https://github.com/ClickHouse/ClickHouse/pull/8781) ([alesapin](https://github.com/alesapin)) См. [Woboq Code Browser](https://clickhouse-test-reports.s3.yandex.net/codebrowser/ClickHouse/dbms/index.html) -* Подавлено несколько сбоев тестов под MSan. [#8780](https://github.com/ClickHouse/ClickHouse/pull/8780) ([Alexander Kuzmenkov](https://github.com/akuzm)) +* Добавлен docker-образ, который позволяет собирать интерактивный HTML-отчёт‑обозреватель кода для нашей кодовой базы. [#8781](https://github.com/ClickHouse/ClickHouse/pull/8781) ([alesapin](https://github.com/alesapin)) См. [Woboq Code Browser](https://clickhouse-test-reports.s3.yandex.net/codebrowser/ClickHouse/dbms/index.html) +* Подавлены некоторые сбои тестов под MSan. [#8780](https://github.com/ClickHouse/ClickHouse/pull/8780) ([Alexander Kuzmenkov](https://github.com/akuzm)) * Ускорен тест "exception while insert". Этот тест часто завершался по таймауту в сборке debug-with-coverage. [#8711](https://github.com/ClickHouse/ClickHouse/pull/8711) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Обновлены `libcxx` и `libcxxabi` до ветки master. В рамках подготовки к [#9304](https://github.com/ClickHouse/ClickHouse/issues/9304) [#9308](https://github.com/ClickHouse/ClickHouse/pull/9308) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Исправлен нестабильно работающий тест `00910_zookeeper_test_alter_compression_codecs`. [#9525](https://github.com/ClickHouse/ClickHouse/pull/9525) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Очистить дублирующиеся флаги компоновщика. Убедиться, что компоновщик не будет пытаться разрешить неожиданный символ. [#9433](https://github.com/ClickHouse/ClickHouse/pull/9433) ([Amos Bird](https://github.com/amosbird)) +* Исправлен нестабильный тест `00910_zookeeper_test_alter_compression_codecs`. [#9525](https://github.com/ClickHouse/ClickHouse/pull/9525) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Очистить дублирующиеся флаги компоновщика. Убедиться, что компоновщик не будет пытаться разрешать неожиданные символы. [#9433](https://github.com/ClickHouse/ClickHouse/pull/9433) ([Amos Bird](https://github.com/amosbird)) * Добавлен драйвер `clickhouse-odbc` в тестовые образы. Это позволяет тестировать взаимодействие ClickHouse с самим собой через собственный ODBC-драйвер. [#9348](https://github.com/ClickHouse/ClickHouse/pull/9348) ([filimonov](https://github.com/filimonov)) * Исправлено несколько ошибок в модульных тестах. [#9047](https://github.com/ClickHouse/ClickHouse/pull/9047) ([alesapin](https://github.com/alesapin)) -* Включено предупреждение GCC `-Wmissing-include-dirs` для выявления всех несуществующих include‑директорий — в основном возникающих из‑за ошибок скриптов CMake [#8704](https://github.com/ClickHouse/ClickHouse/pull/8704) ([kreuzerkrieg](https://github.com/kreuzerkrieg)) +* Включено предупреждение GCC `-Wmissing-include-dirs` для выявления всех несуществующих include‑директорий — в основном являющихся следствием ошибок CMake‑скриптов [#8704](https://github.com/ClickHouse/ClickHouse/pull/8704) ([kreuzerkrieg](https://github.com/kreuzerkrieg)) * Описать причины, по которым профилировщик запросов может не работать. Предназначено для [#9049](https://github.com/ClickHouse/ClickHouse/issues/9049) [#9144](https://github.com/ClickHouse/ClickHouse/pull/9144) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Обновлён OpenSSL до актуального upstream master. Исправлена проблема, при которой TLS‑соединения могли завершаться с сообщениями `OpenSSL SSL_read: error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error` и `SSL Exception: error:2400006E:random number generator::error retrieving entropy`. Проблема наблюдалась в версии 20.1. [#8956](https://github.com/ClickHouse/ClickHouse/pull/8956) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Обновление Dockerfile сервера [#8893](https://github.com/ClickHouse/ClickHouse/pull/8893) ([Ilya Mazaev](https://github.com/ne-ray)) +* Обновлён OpenSSL до актуального upstream master. Исправлена проблема, при которой TLS‑соединения могли завершаться ошибкой с сообщениями `OpenSSL SSL_read: error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error` и `SSL Exception: error:2400006E:random number generator::error retrieving entropy`. Проблема наблюдалась в версии 20.1. [#8956](https://github.com/ClickHouse/ClickHouse/pull/8956) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Обновлён Dockerfile сервера [#8893](https://github.com/ClickHouse/ClickHouse/pull/8893) ([Ilya Mazaev](https://github.com/ne-ray)) * Незначительные исправления в скрипте build-gcc-from-sources [#8774](https://github.com/ClickHouse/ClickHouse/pull/8774) ([Michael Nacharov](https://github.com/mnach)) * Заменить `numbers` на `zeros` в тестах производительности, где столбец `number` не используется. Это даст более чистые результаты тестов. [#9600](https://github.com/ClickHouse/ClickHouse/pull/9600) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * Исправлена ошибка переполнения стека при использовании `initializer_list` в конструкторах `Column`. [#9367](https://github.com/ClickHouse/ClickHouse/pull/9367) ([Deleted user](https://github.com/ghost)) * Обновлена librdkafka до v1.3.0. Включены поставляемые в комплекте библиотеки `rdkafka` и `gsasl` на Mac OS X. [#9000](https://github.com/ClickHouse/ClickHouse/pull/9000) ([Andrew Onyshchuk](https://github.com/oandrew)) -* исправление сборки под GCC 9.2.0 [#9306](https://github.com/ClickHouse/ClickHouse/pull/9306) ([vxider](https://github.com/Vxider)) - - +* Исправление сборки под GCC 9.2.0 [#9306](https://github.com/ClickHouse/ClickHouse/pull/9306) ([vxider](https://github.com/Vxider)) ## Релиз ClickHouse v20.1 {#clickhouse-release-v201} @@ -2992,7 +2983,7 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Исправлена тривиальная ошибка в сообщении лога "Mark cache size was lowered" при запуске сервера. Закрывает [#11399](https://github.com/ClickHouse/ClickHouse/issues/11399). [#11589](https://github.com/ClickHouse/ClickHouse/pull/11589) ([alexey-milovidov](https://github.com/alexey-milovidov)). * Теперь Docker-контейнер clickhouse-server будет отдавать предпочтение IPv6 при проверке доступности сервера. [#11550](https://github.com/ClickHouse/ClickHouse/pull/11550) ([Ivan Starkov](https://github.com/istarkov)). * Исправлена утечка памяти, возникавшая при генерации исключения в середине агрегации с функциями с суффиксом `-State`. Исправляет [#8995](https://github.com/ClickHouse/ClickHouse/issues/8995). [#11496](https://github.com/ClickHouse/ClickHouse/pull/11496) ([alexey-milovidov](https://github.com/alexey-milovidov)). -* Исправлено использование первичного ключа, обёрнутого в функцию с модификатором 'FINAL' и оптимизацией 'ORDER BY'. [#10715](https://github.com/ClickHouse/ClickHouse/pull/10715) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлено использование первичного ключа, обёрнутого в функцию с модификатором 'FINAL' и оптимизацией 'ORDER BY'. [#10715](https://github.com/ClickHouse/ClickHouse/pull/10715) ([Anton Popов](https://github.com/CurtizJ)). ### Релиз ClickHouse v20.1.15.109-stable 2020-06-19 {#clickhouse-release-v20115109-stable-2020-06-19} @@ -3113,7 +3104,7 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Исправлено избыточное потребление памяти мутациями для таблиц с составным первичным ключом. Это исправляет [#9850](https://github.com/ClickHouse/ClickHouse/issues/9850). [#9860](https://github.com/ClickHouse/ClickHouse/pull/9860) ([alesapin](https://github.com/alesapin)). * Для запросов INSERT шард теперь ограничивает настройки, полученные от инициатора, собственными ограничениями шарда вместо генерации исключения. Это исправление позволяет отправлять запросы `INSERT` на шард с другими ограничениями. Это изменение улучшает исправление [#9447](https://github.com/ClickHouse/ClickHouse/issues/9447). [#9852](https://github.com/ClickHouse/ClickHouse/pull/9852) ([Vitaly Baranov](https://github.com/vitlibar)). * Исправлено возможное исключение `Got 0 in totals chunk, expected 1` на клиенте. Оно возникало для запросов с `JOIN` в случае, если в правой соединяемой таблице не было ни одной строки. Пример: `select * from system.one t1 join system.one t2 on t1.dummy = t2.dummy limit 0 FORMAT TabSeparated;`. Исправляет [#9777](https://github.com/ClickHouse/ClickHouse/issues/9777). [#9823](https://github.com/ClickHouse/ClickHouse/pull/9823) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Исправлен `SIGSEGV` с `optimize_skip_unused_shards`, когда тип не может быть преобразован. [#9804](https://github.com/ClickHouse/ClickHouse/pull/9804) ([Azat Khuzhin](https://github.com/azat)). +* Исправлен `SIGSEGV` с `optimize_skip_unused_shards`, когда тип нельзя преобразовать. [#9804](https://github.com/ClickHouse/ClickHouse/pull/9804) ([Azat Khuzhin](https://github.com/azat)). * Исправлено несколько случаев, когда часовой пояс аргумента функции использовался некорректно. [#9574](https://github.com/ClickHouse/ClickHouse/pull/9574) ([Vasily Nemkov](https://github.com/Enmk)). #### Улучшения {#improvement-21} @@ -3127,6 +3118,7 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме ### Релиз ClickHouse v20.1.8.41, 2020-03-20 {#clickhouse-release-v201841-2020-03-20} #### Исправление ошибок {#bug-fix-57} + * Исправлено возможное постоянное возникновение ошибки `Cannot schedule a task` (из-за необработанного исключения в `ParallelAggregatingBlockInputStream::Handler::onFinish/onFinishThread`). Это исправление закрывает [#6833](https://github.com/ClickHouse/ClickHouse/issues/6833). [#9154](https://github.com/ClickHouse/ClickHouse/pull/9154) ([Azat Khuzhin](https://github.com/azat)) * Исправлено чрезмерное потребление памяти в запросах `ALTER` (мутациях). Это исправление закрывает [#9533](https://github.com/ClickHouse/ClickHouse/issues/9533) и [#9670](https://github.com/ClickHouse/ClickHouse/issues/9670). [#9754](https://github.com/ClickHouse/ClickHouse/pull/9754) ([alesapin](https://github.com/alesapin)) * Исправлена ошибка при использовании обратных кавычек в DDL внешних словарей. Это исправление закрывает [#9619](https://github.com/ClickHouse/ClickHouse/issues/9619). [#9734](https://github.com/ClickHouse/ClickHouse/pull/9734) ([alesapin](https://github.com/alesapin)) @@ -3142,13 +3134,13 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Теперь нельзя создавать или добавлять столбцы с простыми циклическими алиасами вроде `a DEFAULT b, b DEFAULT a`. [#9603](https://github.com/ClickHouse/ClickHouse/pull/9603) ([alesapin](https://github.com/alesapin)) * Исправлена проблема, при которой заполнение (padding) в конце значения в кодировке base64 могло оказаться некорректным. Обновлена библиотека base64. Это исправляет [#9491](https://github.com/ClickHouse/ClickHouse/issues/9491), закрывает [#9492](https://github.com/ClickHouse/ClickHouse/issues/9492) и [#9500](https://github.com/ClickHouse/ClickHouse/pull/9500) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Исправлена гонка данных при уничтожении `Poco::HTTPServer`. Она могла возникать, когда сервер запускался и сразу же останавливался. [#9468](https://github.com/ClickHouse/ClickHouse/pull/9468) ([Anton Popov](https://github.com/CurtizJ)) -* Исправлен возможный сбой/неверное количество строк в `LIMIT n WITH TIES` при наличии большого числа строк, совпадающих с n-й строкой. [#9464](https://github.com/ClickHouse/ClickHouse/pull/9464) ([tavplubix](https://github.com/tavplubix)) +* Исправлен возможный сбой или неверное количество строк в `LIMIT n WITH TIES` при наличии большого числа строк, совпадающих с n-й строкой. [#9464](https://github.com/ClickHouse/ClickHouse/pull/9464) ([tavplubix](https://github.com/tavplubix)) * Исправлено возможное несоответствие контрольных сумм при использовании TTL для столбцов. [#9451](https://github.com/ClickHouse/ClickHouse/pull/9451) ([Anton Popov](https://github.com/CurtizJ)) * Исправлена ошибка, приводившая к падению при попытке пользователя выполнить `ALTER MODIFY SETTING` для семейств движков таблиц `MergeTree` старого формата. [#9435](https://github.com/ClickHouse/ClickHouse/pull/9435) ([alesapin](https://github.com/alesapin)) -* Теперь мы будем пытаться чаще финализировать мутации. [#9427](https://github.com/ClickHouse/ClickHouse/pull/9427) ([alesapin](https://github.com/alesapin)) +* Теперь система будет пытаться чаще завершать мутации. [#9427](https://github.com/ClickHouse/ClickHouse/pull/9427) ([alesapin](https://github.com/alesapin)) * Исправлена несовместимость протокола репликации, появившаяся в [#8598](https://github.com/ClickHouse/ClickHouse/issues/8598). [#9412](https://github.com/ClickHouse/ClickHouse/pull/9412) ([alesapin](https://github.com/alesapin)) -* Исправлена обработка not(has()) для индекса bloom_filter по столбцам массивного типа. [#9407](https://github.com/ClickHouse/ClickHouse/pull/9407) ([achimbab](https://github.com/achimbab)) -* Исправлено поведение функций `match` и `extract`, когда haystack имеет длину ноль байт. Поведение было некорректным, когда haystack был константой. Это исправляет [#9160](https://github.com/ClickHouse/ClickHouse/issues/9160) [#9163](https://github.com/ClickHouse/ClickHouse/pull/9163) ([alexey-milovidov](https://github.com/alexey-milovidov)) [#9345](https://github.com/ClickHouse/ClickHouse/pull/9345) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Исправлена обработка not(has()) для индекса bloom_filter для столбцов типа массив. [#9407](https://github.com/ClickHouse/ClickHouse/pull/9407) ([achimbab](https://github.com/achimbab)) +* Исправлено поведение функций `match` и `extract` при обработке haystack нулевой длины (0 байт). Поведение было некорректным, когда haystack был константой. Это исправляет [#9160](https://github.com/ClickHouse/ClickHouse/issues/9160) [#9163](https://github.com/ClickHouse/ClickHouse/pull/9163) ([alexey-milovidov](https://github.com/alexey-milovidov)) [#9345](https://github.com/ClickHouse/ClickHouse/pull/9345) ([alexey-milovidov](https://github.com/alexey-milovidov)) #### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-24} @@ -3210,12 +3202,14 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме [#9513](https://github.com/ClickHouse/ClickHouse/pull/9513) [(filimonov)](https://github.com/filimonov) #### Новая функциональность {#new-feature-12} + * Добавлена настройка `deduplicate_blocks_in_dependent_materialized_views` для управления поведением идемпотентных вставок в таблицы с материализованными представлениями. Эта новая возможность была добавлена в багфикс-релиз по специальному запросу от Altinity. [#9070](https://github.com/ClickHouse/ClickHouse/pull/9070) [(urykhy)](https://github.com/urykhy) ### Релиз ClickHouse v20.1.2.4, 2020-01-22 {#clickhouse-release-v20124-2020-01-22} #### Обратная несовместимость {#backward-incompatible-change-10} + * Настройка `merge_tree_uniform_read_distribution` объявлена устаревшей. Сервер всё ещё распознаёт эту настройку, но она не оказывает никакого эффекта. [#8308](https://github.com/ClickHouse/ClickHouse/pull/8308) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Изменён тип возвращаемого значения функции `greatCircleDistance` на `Float32`, потому что теперь результат вычисления имеет тип `Float32`. [#7993](https://github.com/ClickHouse/ClickHouse/pull/7993) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Теперь ожидается, что параметры запроса представлены в «экранированном» формате. Например, чтобы передать строку `ab`, вы должны написать `a\tb` или `a\b` и, соответственно, `a%5Ctb` или `a%5C%09b` в URL. Это необходимо для того, чтобы появилась возможность передавать NULL как `\N`. Это исправляет [#7488](https://github.com/ClickHouse/ClickHouse/issues/7488). [#8517](https://github.com/ClickHouse/ClickHouse/pull/8517) ([alexey-milovidov](https://github.com/alexey-milovidov)) @@ -3230,140 +3224,136 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Добавлена возможность выполнения запроса `SYSTEM RELOAD DICTIONARY` в режиме `ON CLUSTER`. [#8288](https://github.com/ClickHouse/ClickHouse/pull/8288) ([Guillaume Tassery](https://github.com/YiuRULE)) * Добавлена возможность выполнять запросы `CREATE DICTIONARY` с модификатором `ON CLUSTER`. [#8163](https://github.com/ClickHouse/ClickHouse/pull/8163) ([alesapin](https://github.com/alesapin)) * Теперь профиль пользователя в `users.xml` может наследовать несколько профилей. [#8343](https://github.com/ClickHouse/ClickHouse/pull/8343) ([Mikhail f. Shiryaev](https://github.com/Felixoid)) -* Добавлена таблица `system.stack_trace`, позволяющая просматривать стек-трейсы всех потоков сервера. Это полезно разработчикам для анализа состояния сервера. Это исправляет [#7576](https://github.com/ClickHouse/ClickHouse/issues/7576). [#8344](https://github.com/ClickHouse/ClickHouse/pull/8344) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Добавлена таблица `system.stack_trace`, позволяющая просматривать стек-трейсы всех потоков сервера. Это полезно разработчикам для анализа состояния сервера. Тем самым исправлена [#7576](https://github.com/ClickHouse/ClickHouse/issues/7576). [#8344](https://github.com/ClickHouse/ClickHouse/pull/8344) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Добавлен тип данных `DateTime64` с настраиваемой точностью до долей секунды. [#7170](https://github.com/ClickHouse/ClickHouse/pull/7170) ([Vasily Nemkov](https://github.com/Enmk)) * Добавлена табличная функция `clusterAllReplicas`, которая позволяет выполнять запросы ко всем узлам в кластере. [#8493](https://github.com/ClickHouse/ClickHouse/pull/8493) ([kiran sunkari](https://github.com/kiransunkari)) * Добавлена агрегатная функция `categoricalInformationValue`, которая вычисляет информационную ценность дискретного признака. [#8117](https://github.com/ClickHouse/ClickHouse/pull/8117) ([hcz](https://github.com/hczhcz)) * Ускорен разбор файлов данных в форматах `CSV`, `TSV` и `JSONEachRow` за счёт параллельного парсинга. [#7780](https://github.com/ClickHouse/ClickHouse/pull/7780) ([Alexander Kuzmenkov](https://github.com/akuzm)) * Добавлена функция `bankerRound`, выполняющая банковское округление. [#8112](https://github.com/ClickHouse/ClickHouse/pull/8112) ([hcz](https://github.com/hczhcz)) -* Добавлена поддержка большего количества языков во встроенном словаре названий регионов: 'ru', 'en', 'ua', 'uk', 'by', 'kz', 'tr', 'de', 'uz', 'lv', 'lt', 'et', 'pt', 'he', 'vi'. [#8189](https://github.com/ClickHouse/ClickHouse/pull/8189) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Добавлена поддержка дополнительных языков во встроенном словаре названий регионов: 'ru', 'en', 'ua', 'uk', 'by', 'kz', 'tr', 'de', 'uz', 'lv', 'lt', 'et', 'pt', 'he', 'vi'. [#8189](https://github.com/ClickHouse/ClickHouse/pull/8189) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Улучшена согласованность работы `ANY JOIN`. Теперь `t1 ANY LEFT JOIN t2` эквивалентен `t2 ANY RIGHT JOIN t1`. [#7665](https://github.com/ClickHouse/ClickHouse/pull/7665) ([Artem Zuikov](https://github.com/4ertus2)) * Добавлена настройка `any_join_distinct_right_table_keys`, которая включает прежнее поведение для `ANY INNER JOIN`. [#7665](https://github.com/ClickHouse/ClickHouse/pull/7665) ([Artem Zuikov](https://github.com/4ertus2)) * Добавлены новые типы соединений `SEMI` и `ANTI JOIN`. Старое поведение `ANY INNER JOIN` теперь доступно как `SEMI LEFT JOIN`. [#7665](https://github.com/ClickHouse/ClickHouse/pull/7665) ([Artem Zuikov](https://github.com/4ertus2)) * Добавлен формат `Distributed` для движка `File` и табличной функции `file`, позволяющий читать из файлов `.bin`, создаваемых асинхронными вставками в таблицу `Distributed`. [#8535](https://github.com/ClickHouse/ClickHouse/pull/8535) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* Добавлен необязательный аргумент столбца для сброса для `runningAccumulate`, который позволяет сбрасывать результаты агрегации для каждого нового значения ключа. [#8326](https://github.com/ClickHouse/ClickHouse/pull/8326) ([Sergey Kononenko](https://github.com/kononencheg)) -* Добавлена возможность использовать ClickHouse в качестве endpoint-а Prometheus. [#7900](https://github.com/ClickHouse/ClickHouse/pull/7900) ([vdimir](https://github.com/Vdimir)) +* Добавлен необязательный аргумент — столбец сброса — для `runningAccumulate`, который позволяет сбрасывать результаты агрегации для каждого нового значения ключа. [#8326](https://github.com/ClickHouse/ClickHouse/pull/8326) ([Sergey Kononenko](https://github.com/kononencheg)) +* Добавлена возможность использовать ClickHouse в качестве endpoint'а Prometheus. [#7900](https://github.com/ClickHouse/ClickHouse/pull/7900) ([vdimir](https://github.com/Vdimir)) * Добавлен раздел `` в `config.xml`, который ограничивает список разрешённых хостов для удалённых движков таблиц и табличных функций `URL`, `S3`, `HDFS`. [#7154](https://github.com/ClickHouse/ClickHouse/pull/7154) ([Mikhail Korotov](https://github.com/millb)) * Добавлена функция `greatCircleAngle`, которая вычисляет расстояние на сфере в градусах. [#8105](https://github.com/ClickHouse/ClickHouse/pull/8105) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Изменён радиус Земли для соответствия библиотеке H3. [#8105](https://github.com/ClickHouse/ClickHouse/pull/8105) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Добавлены форматы `JSONCompactEachRow` и `JSONCompactEachRowWithNamesAndTypes` для ввода и вывода данных. [#7841](https://github.com/ClickHouse/ClickHouse/pull/7841) ([Mikhail Korotov](https://github.com/millb)) -* Добавлена возможность для файловых движков таблиц и табличных функций (`File`, `S3`, `URL`, `HDFS`), которая позволяет читать и записывать файлы `gzip` на основе дополнительного параметра движка или расширения файла. [#7840](https://github.com/ClickHouse/ClickHouse/pull/7840) ([Andrey Bodrov](https://github.com/apbodrov)) -* Добавлена функция `randomASCII(length)`, генерирующая строку со случайным набором печатаемых ASCII-символов. [#8401](https://github.com/ClickHouse/ClickHouse/pull/8401) ([BayoNet](https://github.com/BayoNet)) ([ASCII](https://en.wikipedia.org/wiki/ASCII#Printable_characters)) -* Добавлена функция `JSONExtractArrayRaw`, которая возвращает массив неразобранных элементов JSON-массива из строки в формате `JSON`. [#8081](https://github.com/ClickHouse/ClickHouse/pull/8081) ([Oleg Matrokhin](https://github.com/errx)) +* Добавлена возможность для файловых движков таблиц и табличных функций (`File`, `S3`, `URL`, `HDFS`) читать и записывать файлы `gzip` на основе дополнительного параметра движка или расширения файла. [#7840](https://github.com/ClickHouse/ClickHouse/pull/7840) ([Andrey Bodrov](https://github.com/apbodrov)) +* Добавлена функция `randomASCII(length)`, генерирующая строку из случайного набора печатаемых [ASCII](https://en.wikipedia.org/wiki/ASCII#Printable_characters) символов. [#8401](https://github.com/ClickHouse/ClickHouse/pull/8401) ([BayoNet](https://github.com/BayoNet)) +* Добавлена функция `JSONExtractArrayRaw`, которая возвращает массив неразобранных элементов JSON-массива из JSON-строки. [#8081](https://github.com/ClickHouse/ClickHouse/pull/8081) ([Oleg Matrokhin](https://github.com/errx)) * Добавлена функция `arrayZip`, которая позволяет объединять несколько массивов одинаковой длины в один массив кортежей. [#8149](https://github.com/ClickHouse/ClickHouse/pull/8149) ([Winter Zhang](https://github.com/zhang2014)) * Добавлена возможность перемещать данные между дисками на основе настроенных `TTL`-выражений для семейства движков таблиц `*MergeTree`. [#8140](https://github.com/ClickHouse/ClickHouse/pull/8140) ([Vladimir Chebotarev](https://github.com/excitoon)) * Добавлена новая агрегатная функция `avgWeighted` для вычисления взвешенного среднего. [#7898](https://github.com/ClickHouse/ClickHouse/pull/7898) ([Andrey Bodrov](https://github.com/apbodrov)) * Теперь параллельный разбор включён по умолчанию для форматов `TSV`, `TSKV`, `CSV` и `JSONEachRow`. [#7894](https://github.com/ClickHouse/ClickHouse/pull/7894) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) -* Добавлены несколько географических функций из библиотеки `H3`: `h3GetResolution`, `h3EdgeAngle`, `h3EdgeLength`, `h3IsValid` и `h3kRing`. [#8034](https://github.com/ClickHouse/ClickHouse/pull/8034) ([Konstantин Malanchev](https://github.com/hombit)) -* Добавлена поддержка сжатия brotli (`br`) в хранилищах, работающих с файлами, и табличных функциях. Тем самым исправлена [#8156](https://github.com/ClickHouse/ClickHouse/issues/8156). [#8526](https://github.com/ClickHouse/ClickHouse/pull/8526) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Добавлены несколько географических функций из библиотеки `H3`: `h3GetResolution`, `h3EdgeAngle`, `h3EdgeLength`, `h3IsValid` и `h3kRing`. [#8034](https://github.com/ClickHouse/ClickHouse/pull/8034) ([Konstantin Malanchev](https://github.com/hombit)) +* Добавлена поддержка сжатия brotli (`br`) в хранилищах, работающих с файлами, и табличных функциях, что исправляет [#8156](https://github.com/ClickHouse/ClickHouse/issues/8156). [#8526](https://github.com/ClickHouse/ClickHouse/pull/8526) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Добавлены функции `groupBit*` для типа `SimpleAggregationFunction`. [#8485](https://github.com/ClickHouse/ClickHouse/pull/8485) ([Guillaume Tassery](https://github.com/YiuRULE)) - - #### Исправление ошибки {#bug-fix-60} * Исправлено переименование таблиц с движком `Distributed`, устранена проблема [#7868](https://github.com/ClickHouse/ClickHouse/issues/7868). [#8306](https://github.com/ClickHouse/ClickHouse/pull/8306) ([tavplubix](https://github.com/tavplubix)) * Теперь словари поддерживают `EXPRESSION` для атрибутов в произвольных строках в SQL-диалекте, отличном от ClickHouse. [#8098](https://github.com/ClickHouse/ClickHouse/pull/8098) ([alesapin](https://github.com/alesapin)) * Исправлен некорректно работающий запрос `INSERT SELECT FROM mysql(...)`. Тем самым исправлены [#8070](https://github.com/ClickHouse/ClickHouse/issues/8070) и [#7960](https://github.com/ClickHouse/ClickHouse/issues/7960). [#8234](https://github.com/ClickHouse/ClickHouse/pull/8234) ([tavplubix](https://github.com/tavplubix)) * Исправлена ошибка «Mismatch column sizes» при вставке значения `Tuple` по умолчанию из `JSONEachRow`. Исправляет [#5653](https://github.com/ClickHouse/ClickHouse/issues/5653). [#8606](https://github.com/ClickHouse/ClickHouse/pull/8606) ([tavplubix](https://github.com/tavplubix)) -* Теперь при одновременном использовании `WITH TIES` и `LIMIT BY` будет выброшено исключение. Также добавлена возможность использовать `TOP` с `LIMIT BY`. Это исправляет [#7472](https://github.com/ClickHouse/ClickHouse/issues/7472). [#7637](https://github.com/ClickHouse/ClickHouse/pull/7637) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) -* Устранена непреднамеренная зависимость от новой версии glibc в исполняемом файле `clickhouse-odbc-bridge`. [#8046](https://github.com/ClickHouse/ClickHouse/pull/8046) ([Amos Bird](https://github.com/amosbird)) -* Исправлена ошибка в функции проверки семейства движков `*MergeTree`. Теперь она не приводит к ошибке в случае, если количество строк в последнем грануле и последней (нефинальной) метке одинаково. [#8047](https://github.com/ClickHouse/ClickHouse/pull/8047) ([alesapin](https://github.com/alesapin)) +* Теперь при одновременном использовании `WITH TIES` и `LIMIT BY` выбрасывается исключение. Также добавлена возможность использовать `TOP` вместе с `LIMIT BY`. Это исправляет [#7472](https://github.com/ClickHouse/ClickHouse/issues/7472). [#7637](https://github.com/ClickHouse/ClickHouse/pull/7637) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) +* Устранена непреднамеренная зависимость от более новой версии glibc в исполняемом файле `clickhouse-odbc-bridge`. [#8046](https://github.com/ClickHouse/ClickHouse/pull/8046) ([Amos Bird](https://github.com/amosbird)) +* Исправлена ошибка в функции проверки семейства табличных движков `*MergeTree`. Теперь она не завершает работу с ошибкой, если количество строк в последнем грануле и последней (нефинальной) метке одинаково. [#8047](https://github.com/ClickHouse/ClickHouse/pull/8047) ([alesapin](https://github.com/alesapin)) * Исправлена вставка в столбцы типа `Enum*` после выполнения запроса `ALTER`, когда базовый числовой тип совпадает с типом, заданным для таблицы. Это исправляет [#7836](https://github.com/ClickHouse/ClickHouse/issues/7836). [#7908](https://github.com/ClickHouse/ClickHouse/pull/7908) ([Anton Popov](https://github.com/CurtizJ)) * Разрешён неконстантный отрицательный аргумент "size" для функции `substring`. Ранее он был запрещён по ошибке. Это исправляет [#4832](https://github.com/ClickHouse/ClickHouse/issues/4832). [#7703](https://github.com/ClickHouse/ClickHouse/pull/7703) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Исправлена ошибка разбора при передаче некорректного количества аргументов в табличный движок `(O|J)DBC`. [#7709](https://github.com/ClickHouse/ClickHouse/pull/7709) ([alesapin](https://github.com/alesapin)) * Теперь при отправке логов в syslog используется имя команды запущенного процесса clickhouse. В предыдущих версиях вместо имени команды передавалась пустая строка. [#8460](https://github.com/ClickHouse/ClickHouse/pull/8460) ([Michael Nacharov](https://github.com/mnach)) -* Исправлена проверка допустимых хостов для `localhost`. Этот PR исправляет решение, предложенное в [#8241](https://github.com/ClickHouse/ClickHouse/pull/8241). [#8342](https://github.com/ClickHouse/ClickHouse/pull/8342) ([Vitaly Baranov](https://github.com/vitlibar)) -* Исправлено редкое аварийное завершение работы в функциях `argMin` и `argMax` при длинных строковых аргументах, когда результат используется в функции `runningAccumulate`. Это исправляет [#8325](https://github.com/ClickHouse/ClickHouse/issues/8325) [#8341](https://github.com/ClickHouse/ClickHouse/pull/8341) ([dinosaur](https://github.com/769344359)) +* Исправлена проверка разрешённых хостов для `localhost`. Этот PR исправляет решение, предложенное в [#8241](https://github.com/ClickHouse/ClickHouse/pull/8241). [#8342](https://github.com/ClickHouse/ClickHouse/pull/8342) ([Vitaly Baranov](https://github.com/vitlibar)) +* Исправлено редкое аварийное завершение работы в функциях `argMin` и `argMax` для длинных строковых аргументов, когда результат используется в функции `runningAccumulate`. Это исправляет [#8325](https://github.com/ClickHouse/ClickHouse/issues/8325) [#8341](https://github.com/ClickHouse/ClickHouse/pull/8341) ([dinosaur](https://github.com/769344359)) * Исправлена проблема чрезмерного выделения памяти для таблиц с движком `Buffer`. [#8345](https://github.com/ClickHouse/ClickHouse/pull/8345) ([Azat Khuzhin](https://github.com/azat)) -* Исправлена потенциальная ошибка в функциях, которые могут принимать `NULL` одним из аргументов и возвращать значение, отличное от `NULL`. [#8196](https://github.com/ClickHouse/ClickHouse/pull/8196) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Улучшены вычисления метрик в пуле потоков фоновых процессов для движков таблиц `MergeTree`. [#8194](https://github.com/ClickHouse/ClickHouse/pull/8194) ([Vladimir Chebotarev](https://github.com/excitoon)) +* Исправлена потенциальная ошибка в функциях, которые могут принимать `NULL` в качестве одного из аргументов и возвращать значение, отличное от `NULL`. [#8196](https://github.com/ClickHouse/ClickHouse/pull/8196) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Улучшено вычисление метрик в пуле потоков фоновых процессов для табличных движков `MergeTree`. [#8194](https://github.com/ClickHouse/ClickHouse/pull/8194) ([Vladimir Chebotarev](https://github.com/excitoon)) * Исправлена работа функции `IN` в предложении `WHERE` при наличии фильтра на уровне строк таблицы. Исправлены [#6687](https://github.com/ClickHouse/ClickHouse/issues/6687) [#8357](https://github.com/ClickHouse/ClickHouse/pull/8357) ([Ivan](https://github.com/abyss7)) -* Теперь выбрасывается исключение, если целочисленное значение параметра настройки разобрано не полностью. [#7678](https://github.com/ClickHouse/ClickHouse/pull/7678) ([Mikhail Korotov](https://github.com/millb)) -* Исправлено исключение при использовании агрегатной функции в запросе к распределённой таблице с более чем двумя локальными шардами. [#8164](https://github.com/ClickHouse/ClickHouse/pull/8164) ([小路](https://github.com/nicelulu)) -* Теперь фильтр Блума может обрабатывать массивы нулевой длины и не выполняет избыточные вычисления. [#8242](https://github.com/ClickHouse/ClickHouse/pull/8242) ([achimbab](https://github.com/achimbab)) -* Исправлена проверка допуска клиентского хоста путём сопоставления клиентского хоста с `host_regexp`, указанным в `users.xml`. [#8241](https://github.com/ClickHouse/ClickHouse/pull/8241) ([Vitaly Baranov](https://github.com/vitlibar)) -* Ослаблена неоднозначная проверка столбцов, приводившая к ложным срабатываниям при нескольких `JOIN ON`. [#8385](https://github.com/ClickHouse/ClickHouse/pull/8385) ([Artem Zuikov](https://github.com/4ertus2)) -* Исправлен возможный сбой сервера (`std::terminate`), возникавший, когда сервер не мог отправить или записать данные в форматах `JSON` или `XML` со значениями типа данных `String` (которые требуют проверки на корректность `UTF-8`), либо при сжатии результирующих данных алгоритмом Brotli, а также в некоторых других редких случаях. Это исправляет [#7603](https://github.com/ClickHouse/ClickHouse/issues/7603) [#8384](https://github.com/ClickHouse/ClickHouse/pull/8384) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Теперь выбрасывается исключение, если целочисленное значение настройки разобрано не полностью. [#7678](https://github.com/ClickHouse/ClickHouse/pull/7678) ([Mikhail Korotov](https://github.com/millb)) +* Исправлено исключение при использовании агрегатной функции в запросе к распределённой таблице с более чем двумя локальными сегментами. [#8164](https://github.com/ClickHouse/ClickHouse/pull/8164) ([小路](https://github.com/nicelulu)) +* Теперь bloom-фильтр может обрабатывать массивы нулевой длины и не выполняет избыточные вычисления. [#8242](https://github.com/ClickHouse/ClickHouse/pull/8242) ([achimbab](https://github.com/achimbab)) +* Исправлена проверка разрешённых клиентских хостов: теперь клиентский хост сопоставляется с `host_regexp`, указанным в `users.xml`. [#8241](https://github.com/ClickHouse/ClickHouse/pull/8241) ([Vitaly Baranov](https://github.com/vitlibar)) +* Ослаблена проверка на неоднозначность столбцов, приводившая к ложным срабатываниям в случае нескольких `JOIN ON`. [#8385](https://github.com/ClickHouse/ClickHouse/pull/8385) ([Artem Zuikov](https://github.com/4ertus2)) +* Исправлен возможный сбой сервера (`std::terminate`), возникавший при невозможности отправить или записать данные в формате `JSON` или `XML` со значениями типа данных `String` (которые требуют проверки корректности `UTF-8`), либо при сжатии результирующих данных алгоритмом Brotli, а также в некоторых других редких случаях. Это исправляет [#7603](https://github.com/ClickHouse/ClickHouse/issues/7603) [#8384](https://github.com/ClickHouse/ClickHouse/pull/8384) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Исправлено условие гонки в `StorageDistributedDirectoryMonitor`, обнаруженное CI. Это устраняет [#8364](https://github.com/ClickHouse/ClickHouse/issues/8364). [#8383](https://github.com/ClickHouse/ClickHouse/pull/8383) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * Теперь фоновые слияния в семействе движков таблиц `*MergeTree` точнее сохраняют порядок томов, заданный политикой хранения. [#8549](https://github.com/ClickHouse/ClickHouse/pull/8549) ([Vladimir Chebotarev](https://github.com/excitoon)) * Теперь табличный движок `Kafka` корректно работает с форматом `Native`. Это исправляет [#6731](https://github.com/ClickHouse/ClickHouse/issues/6731) [#7337](https://github.com/ClickHouse/ClickHouse/issues/7337) [#8003](https://github.com/ClickHouse/ClickHouse/issues/8003). [#8016](https://github.com/ClickHouse/ClickHouse/pull/8016) ([filimonov](https://github.com/filimonov)) -* Исправлены форматы с заголовками (такие как `CSVWithNames`), которые выбрасывали исключение о достижении конца файла (EOF) для движка таблицы `Kafka`. [#8016](https://github.com/ClickHouse/ClickHouse/pull/8016) ([filimonov](https://github.com/filimonov)) -* Исправлена ошибка при построении множества из подзапроса в правой части выражения `IN`. Что устраняет ошибки [#5767](https://github.com/ClickHouse/ClickHouse/issues/5767) и [#2542](https://github.com/ClickHouse/ClickHouse/issues/2542). [#7755](https://github.com/ClickHouse/ClickHouse/pull/7755) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) +* Исправлена работа форматов с заголовками (таких как `CSVWithNames`), которые приводили к выбросу исключения о достижении конца файла (EOF) при использовании табличного движка `Kafka`. [#8016](https://github.com/ClickHouse/ClickHouse/pull/8016) ([filimonov](https://github.com/filimonov)) +* Исправлена ошибка при построении множества из подзапроса в правой части оператора `IN`. Это исправляет [#5767](https://github.com/ClickHouse/ClickHouse/issues/5767) и [#2542](https://github.com/ClickHouse/ClickHouse/issues/2542). [#7755](https://github.com/ClickHouse/ClickHouse/pull/7755) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) * Исправлено возможное аварийное завершение при чтении из хранилища `File`. [#7756](https://github.com/ClickHouse/ClickHouse/pull/7756) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * Исправлено чтение файлов в формате `Parquet`, содержащих столбцы типа `list`. [#8334](https://github.com/ClickHouse/ClickHouse/pull/8334) ([maxulan](https://github.com/maxulan)) * Исправлена ошибка `Not found column` для распределённых запросов, в которых условие `PREWHERE` зависит от ключа выборки, если `max_parallel_replicas > 1`. [#7913](https://github.com/ClickHouse/ClickHouse/pull/7913) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* Исправлена ошибка `Not found column`, возникавшая, если запрос использовал `PREWHERE`, зависящий от алиаса таблицы, и результирующий набор оказывался пустым из-за условия по первичному ключу. [#7911](https://github.com/ClickHouse/ClickHouse/pull/7911) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* Исправлена ошибка `Not found column`, возникавшая, если запрос использовал секцию `PREWHERE`, зависящую от алиаса таблицы, и результирующий набор данных оказывался пустым из-за условия по первичному ключу. [#7911](https://github.com/ClickHouse/ClickHouse/pull/7911) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * Исправлен возвращаемый тип функций `rand` и `randConstant` при аргументе типа `Nullable`. Теперь функции всегда возвращают `UInt32` и никогда `Nullable(UInt32)`. [#8204](https://github.com/ClickHouse/ClickHouse/pull/8204) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * Отключено проталкивание предикатов для выражения `WITH FILL`. Это исправляет [#7784](https://github.com/ClickHouse/ClickHouse/issues/7784). [#7789](https://github.com/ClickHouse/ClickHouse/pull/7789) ([Winter Zhang](https://github.com/zhang2014)) * Исправлен некорректный результат функции `count()` для `SummingMergeTree` при использовании модификатора `FINAL`. [#3280](https://github.com/ClickHouse/ClickHouse/issues/3280) [#7786](https://github.com/ClickHouse/ClickHouse/pull/7786) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) -* Исправлен возможный некорректный результат для константных функций с удалённых серверов. Это происходило для запросов с функциями, такими как `version()`, `uptime()` и т. п., которые возвращают разные константные значения для разных серверов. Это исправление закрывает [#7666](https://github.com/ClickHouse/ClickHouse/issues/7666). [#7689](https://github.com/ClickHouse/ClickHouse/pull/7689) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* Исправлен возможный некорректный результат для константных функций, выполняемых на удалённых серверах. Это происходило для запросов с функциями, такими как `version()`, `uptime()` и т. п., которые возвращают разные константные значения для разных серверов. Это исправляет [#7666](https://github.com/ClickHouse/ClickHouse/issues/7666). [#7689](https://github.com/ClickHouse/ClickHouse/pull/7689) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * Исправлена сложная ошибка в оптимизации проталкивания предикатов, которая приводила к неверным результатам. Это исправление устраняет множество проблем, связанных с оптимизацией проталкивания предикатов. [#8503](https://github.com/ClickHouse/ClickHouse/pull/8503) ([Winter Zhang](https://github.com/zhang2014)) * Исправлено аварийное завершение при выполнении запроса `CREATE TABLE .. AS dictionary`. [#8508](https://github.com/ClickHouse/ClickHouse/pull/8508) ([Azat Khuzhin](https://github.com/azat)) * Несколько улучшений в грамматике ClickHouse в файле `.g4`. [#8294](https://github.com/ClickHouse/ClickHouse/pull/8294) ([taiyang-li](https://github.com/taiyang-li)) * Исправлена ошибка, приводившая к сбоям в операциях `JOIN` с таблицами с движком `Join`. Это устраняет [#7556](https://github.com/ClickHouse/ClickHouse/issues/7556) [#8254](https://github.com/ClickHouse/ClickHouse/issues/8254) [#7915](https://github.com/ClickHouse/ClickHouse/issues/7915) [#8100](https://github.com/ClickHouse/ClickHouse/issues/8100). [#8298](https://github.com/ClickHouse/ClickHouse/pull/8298) ([Artem Zuikov](https://github.com/4ertus2)) * Исправлена лишняя перезагрузка словарей при `CREATE DATABASE`. [#7916](https://github.com/ClickHouse/ClickHouse/pull/7916) ([Azat Khuzhin](https://github.com/azat)) -* Ограничено максимальное число потоков чтения из `StorageFile` и `StorageHDFS`. Исправляет [#7650](https://github.com/ClickHouse/ClickHouse/issues/7650). [#7981](https://github.com/ClickHouse/ClickHouse/pull/7981) ([alesapin](https://github.com/alesapin)) +* Ограничено максимальное количество потоков при чтении из `StorageFile` и `StorageHDFS`. Исправляет [#7650](https://github.com/ClickHouse/ClickHouse/issues/7650). [#7981](https://github.com/ClickHouse/ClickHouse/pull/7981) ([alesapin](https://github.com/alesapin)) * Исправлена ошибка в запросе `ALTER ... MODIFY ... CODEC`, когда пользователь указывает одновременно выражение по умолчанию и кодек. Исправляет проблему [8593](https://github.com/ClickHouse/ClickHouse/issues/8593). [#8614](https://github.com/ClickHouse/ClickHouse/pull/8614) ([alesapin](https://github.com/alesapin)) -* Исправлена ошибка в фоновом слиянии столбцов с типом `SimpleAggregateFunction(LowCardinality)`. [#8613](https://github.com/ClickHouse/ClickHouse/pull/8613) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* Исправлена ошибка при фоновом слиянии столбцов с типом `SimpleAggregateFunction(LowCardinality)`. [#8613](https://github.com/ClickHouse/ClickHouse/pull/8613) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * Исправлена проверка типов в функции `toDateTime64`. [#8375](https://github.com/ClickHouse/ClickHouse/pull/8375) ([Vasily Nemkov](https://github.com/Enmk)) -* Теперь сервер не падает при выполнении `LEFT` или `FULL JOIN` с использованием движка Join и неподдерживаемыми настройками `join_use_nulls`. [#8479](https://github.com/ClickHouse/ClickHouse/pull/8479) ([Artem Zuikov](https://github.com/4ertus2)) +* Теперь сервер не падает при выполнении `LEFT` или `FULL JOIN` с движком `Join` и неподдерживаемым значением настройки `join_use_nulls`. [#8479](https://github.com/ClickHouse/ClickHouse/pull/8479) ([Artem Zuikov](https://github.com/4ertus2)) * Теперь запрос `DROP DICTIONARY IF EXISTS db.dict` не выбрасывает исключение, если база данных `db` не существует. [#8185](https://github.com/ClickHouse/ClickHouse/pull/8185) ([Vitaly Baranov](https://github.com/vitlibar)) * Исправлены возможные аварийные завершения работы табличных функций (`file`, `mysql`, `remote`), вызванные использованием ссылки на удалённый объект `IStorage`. Исправлен некорректный разбор столбцов, указанных при вставке в табличную функцию. [#7762](https://github.com/ClickHouse/ClickHouse/pull/7762) ([tavplubix](https://github.com/tavplubix)) * Перед запуском `clickhouse-server` убедитесь, что сеть уже поднята и доступна. Это исправляет [#7507](https://github.com/ClickHouse/ClickHouse/issues/7507). [#8570](https://github.com/ClickHouse/ClickHouse/pull/8570) ([Zhichang Yu](https://github.com/yuzhichang)) * Исправлена обработка таймаутов для защищённых соединений, чтобы запросы не зависали бесконечно. Это исправляет [#8126](https://github.com/ClickHouse/ClickHouse/issues/8126). [#8128](https://github.com/ClickHouse/ClickHouse/pull/8128) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Исправлена избыточная конкуренция между параллельными рабочими потоками в `clickhouse-copier`. [#7816](https://github.com/ClickHouse/ClickHouse/pull/7816) ([Ding Xiang Fei](https://github.com/dingxiangfei2009)) -* Теперь мутации не пропускают присоединённые парты, даже если их версия мутации больше текущей версии мутации. [#7812](https://github.com/ClickHouse/ClickHouse/pull/7812) ([Zhichang Yu](https://github.com/yuzhichang)) [#8250](https://github.com/ClickHouse/ClickHouse/pull/8250) ([alesapin](https://github.com/alesapin)) -* Игнорировать лишние копии частей данных `*MergeTree` после переноса их на другой диск и перезапуска сервера. [#7810](https://github.com/ClickHouse/ClickHouse/pull/7810) ([Vladimir Chebotarev](https://github.com/excitoon)) -* Исправлено падение при `FULL JOIN` с `LowCardinality` в ключе `JOIN`. [#8252](https://github.com/ClickHouse/ClickHouse/pull/8252) ([Artem Zuikov](https://github.com/4ertus2)) +* Исправлено избыточное блокирование между параллельными рабочими потоками в `clickhouse-copier`. [#7816](https://github.com/ClickHouse/ClickHouse/pull/7816) ([Ding Xiang Fei](https://github.com/dingxiangfei2009)) +* Теперь мутации не пропускают присоединённые части, даже если их версия мутации больше версии текущей мутации. [#7812](https://github.com/ClickHouse/ClickHouse/pull/7812) ([Zhichang Yu](https://github.com/yuzhichang)) [#8250](https://github.com/ClickHouse/ClickHouse/pull/8250) ([alesapin](https://github.com/alesapin)) +* Теперь лишние копии частей данных `*MergeTree` игнорируются после переноса их на другой диск и перезапуска сервера. [#7810](https://github.com/ClickHouse/ClickHouse/pull/7810) ([Vladimir Chebotarev](https://github.com/excitoon)) +* Исправлен сбой при `FULL JOIN` с `LowCardinality` в ключе `JOIN`. [#8252](https://github.com/ClickHouse/ClickHouse/pull/8252) ([Artem Zuikov](https://github.com/4ertus2)) * Запрещено использовать одно и то же имя столбца более одного раза в запросе `INSERT`, например `INSERT INTO tbl (x, y, x)`. Это исправляет [#5465](https://github.com/ClickHouse/ClickHouse/issues/5465), [#7681](https://github.com/ClickHouse/ClickHouse/issues/7681). [#7685](https://github.com/ClickHouse/ClickHouse/pull/7685) ([alesapin](https://github.com/alesapin)) -* Добавлен резервный вариант определения количества физических ядер CPU для неизвестных процессоров (с использованием количества логических ядер CPU). Это исправляет [#5239](https://github.com/ClickHouse/ClickHouse/issues/5239). [#7726](https://github.com/ClickHouse/ClickHouse/pull/7726) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Исправлена ошибка `There's no column`, возникавшая для материализованных и alias-столбцов. [#8210](https://github.com/ClickHouse/ClickHouse/pull/8210) ([Artem Zuikov](https://github.com/4ertus2)) +* Добавлен резервный метод определения количества физических ядер CPU для неизвестных процессоров (на основе числа логических ядер). Это исправляет [#5239](https://github.com/ClickHouse/ClickHouse/issues/5239). [#7726](https://github.com/ClickHouse/ClickHouse/pull/7726) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Исправлена ошибка `There's no column`, возникавшая для материализованных и алиасных столбцов. [#8210](https://github.com/ClickHouse/ClickHouse/pull/8210) ([Artem Zuikov](https://github.com/4ertus2)) * Исправлено падение сервера при использовании запроса `EXISTS` без указания `TABLE` или `DICTIONARY`, например `EXISTS t`. Исправлена ошибка [#8172](https://github.com/ClickHouse/ClickHouse/issues/8172). Ошибка появилась в версии 19.17. [#8213](https://github.com/ClickHouse/ClickHouse/pull/8213) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Исправлена редкая ошибка с текстом `"Sizes of columns does not match"`, которая могла возникать при использовании столбца типа `SimpleAggregateFunction`. [#7790](https://github.com/ClickHouse/ClickHouse/pull/7790) ([Boris Granveaud](https://github.com/bgranvea)) +* Исправлена редкая ошибка `"Sizes of columns does not match"`, которая могла возникнуть при использовании столбца типа `SimpleAggregateFunction`. [#7790](https://github.com/ClickHouse/ClickHouse/pull/7790) ([Boris Granveaud](https://github.com/bgranvea)) * Исправлена ошибка, из-за которой пользователь с пустым `allow_databases` получал доступ ко всем базам данных (и аналогично для `allow_dictionaries`). [#7793](https://github.com/ClickHouse/ClickHouse/pull/7793) ([DeifyTheGod](https://github.com/DeifyTheGod)) -* Исправлен сбой клиента, если сервер уже разорвал соединение. [#8071](https://github.com/ClickHouse/ClickHouse/pull/8071) ([Azat Khuzhin](https://github.com/azat)) -* Исправлено поведение `ORDER BY` при сортировке по префиксу первичного ключа и суффиксу, не входящему в него. [#7759](https://github.com/ClickHouse/ClickHouse/pull/7759) ([Anton Popov](https://github.com/CurtizJ)) -* Проверять, присутствует ли в таблице квалифицированный столбец. Исправляет [#6836](https://github.com/ClickHouse/ClickHouse/issues/6836). [#7758](https://github.com/ClickHouse/ClickHouse/pull/7758) ([Artem Zuikov](https://github.com/4ertus2)) -* Исправлено поведение, при котором `ALTER MOVE`, запущенный сразу после завершения слияния, перемещал суперчасть вместо указанной части. Исправляет [#8103](https://github.com/ClickHouse/ClickHouse/issues/8103). [#8104](https://github.com/ClickHouse/ClickHouse/pull/8104) ([Vladimir Chebotarev](https://github.com/excitoon)) +* Исправлен сбой клиента, возникавший, если сервер уже разорвал соединение. [#8071](https://github.com/ClickHouse/ClickHouse/pull/8071) ([Azat Khuzhin](https://github.com/azat)) +* Исправлено поведение `ORDER BY` при сортировке по префиксу первичного ключа и суффиксу, не входящему в первичный ключ. [#7759](https://github.com/ClickHouse/ClickHouse/pull/7759) ([Anton Popov](https://github.com/CurtizJ)) +* Проверять, присутствует ли в таблице квалифицированный столбец. Это исправляет [#6836](https://github.com/ClickHouse/ClickHouse/issues/6836). [#7758](https://github.com/ClickHouse/ClickHouse/pull/7758) ([Artem Zuikov](https://github.com/4ertus2)) +* Исправлено поведение, из‑за которого `ALTER MOVE`, запущенный сразу после завершения слияния, перемещал суперчасть вместо указанной части. Исправляет [#8103](https://github.com/ClickHouse/ClickHouse/issues/8103). [#8104](https://github.com/ClickHouse/ClickHouse/pull/8104) ([Vladimir Chebotarev](https://github.com/excitoon)) * Исправлена возможная аварийная остановка сервера при использовании `UNION` с разным количеством столбцов. Исправляет проблему [#7279](https://github.com/ClickHouse/ClickHouse/issues/7279). [#7929](https://github.com/ClickHouse/ClickHouse/pull/7929) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * Исправлен размер результирующей подстроки для функции `substr` при отрицательном значении размера. [#8589](https://github.com/ClickHouse/ClickHouse/pull/8589) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * Теперь сервер не выполняет мутацию части в `MergeTree`, если в фоновом пуле недостаточно свободных потоков. [#8588](https://github.com/ClickHouse/ClickHouse/pull/8588) ([tavplubix](https://github.com/tavplubix)) -* Исправлена небольшая опечатка при форматировании AST для `UNION ALL`. [#7999](https://github.com/ClickHouse/ClickHouse/pull/7999) ([litao91](https://github.com/litao91)) +* Исправлена небольшая опечатка в форматировании AST `UNION ALL`. [#7999](https://github.com/ClickHouse/ClickHouse/pull/7999) ([litao91](https://github.com/litao91)) * Исправлены некорректные результаты bloom-фильтра для отрицательных чисел. Это исправляет [#8317](https://github.com/ClickHouse/ClickHouse/issues/8317). [#8566](https://github.com/ClickHouse/ClickHouse/pull/8566) ([Winter Zhang](https://github.com/zhang2014)) -* Исправлено потенциальное переполнение буфера в `decompress`. Злоумышленник мог передать специально сформированные сжатые данные, которые приводили к чтению за пределами буфера. Проблема была обнаружена Эльдаром Зайтовым из команды информационной безопасности «Яндекса». [#8404](https://github.com/ClickHouse/ClickHouse/pull/8404) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Исправлено потенциальное переполнение буфера в `decompress`. Злоумышленник мог передать специально сформированные сжатые данные, которые приводили к чтению за пределами буфера. Проблема была обнаружена Эльдаром Зайтовым из команды информационной безопасности компании «Яндекс». [#8404](https://github.com/ClickHouse/ClickHouse/pull/8404) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Исправлен некорректный результат из-за переполнения целых чисел в `arrayIntersect`. [#7777](https://github.com/ClickHouse/ClickHouse/pull/7777) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* Теперь запрос `OPTIMIZE TABLE` не будет ждать выполнения операции репликами, находящимися офлайн. [#8314](https://github.com/ClickHouse/ClickHouse/pull/8314) ([javi santana](https://github.com/javisantana)) +* Теперь запрос `OPTIMIZE TABLE` не будет ждать, пока отключённые реплики выполнят операцию. [#8314](https://github.com/ClickHouse/ClickHouse/pull/8314) ([javi santana](https://github.com/javisantana)) * Исправлен парсер `ALTER TTL` для таблиц `Replicated*MergeTree`. [#8318](https://github.com/ClickHouse/ClickHouse/pull/8318) ([Vladimir Chebotarev](https://github.com/excitoon)) -* Исправлено взаимодействие между сервером и клиентом, чтобы сервер читал информацию о временных таблицах после ошибки запроса. [#8084](https://github.com/ClickHouse/ClickHouse/pull/8084) ([Azat Khuzhin](https://github.com/azat)) -* Исправлена ошибка функции `bitmapAnd` при пересечении агрегированного и скалярного битмапов. [#8082](https://github.com/ClickHouse/ClickHouse/pull/8082) ([Yue Huang](https://github.com/moon03432)) -* Уточнено определение `ZXid` в соответствии с руководством программиста ZooKeeper (ZooKeeper Programmer's Guide), что позволило исправить ошибку в `clickhouse-cluster-copier`. [#8088](https://github.com/ClickHouse/ClickHouse/pull/8088) ([Ding Xiang Fei](https://github.com/dingxiangfei2009)) -* Табличная функция `odbc` теперь учитывает параметр `external_table_functions_use_nulls`. [#7506](https://github.com/ClickHouse/ClickHouse/pull/7506) ([Vasily Nemkov](https://github.com/Enmk)) -* Исправлена ошибка, которая приводила к редкой гонке данных. [#8143](https://github.com/ClickHouse/ClickHouse/pull/8143) ([Alexander Kazakov](https://github.com/Akazz)) +* Исправлено взаимодействие между сервером и клиентом, чтобы сервер мог читать информацию о временных таблицах после ошибки запроса. [#8084](https://github.com/ClickHouse/ClickHouse/pull/8084) ([Azat Khuzhin](https://github.com/azat)) +* Исправлена ошибка функции `bitmapAnd` при пересечении агрегированного битмапа и скалярного битмапа. [#8082](https://github.com/ClickHouse/ClickHouse/pull/8082) ([Yue Huang](https://github.com/moon03432)) +* Уточнено определение `ZXid` в соответствии с руководством для разработчиков ZooKeeper (ZooKeeper Programmer's Guide), что позволило исправить ошибку в `clickhouse-cluster-copier`. [#8088](https://github.com/ClickHouse/ClickHouse/pull/8088) ([Ding Xiang Fei](https://github.com/dingxiangfei2009)) +* Табличная функция `odbc` теперь учитывает настройку `external_table_functions_use_nulls`. [#7506](https://github.com/ClickHouse/ClickHouse/pull/7506) ([Vasily Nemkov](https://github.com/Enmk)) +* Исправлена ошибка, приводившая к редкой гонке данных. [#8143](https://github.com/ClickHouse/ClickHouse/pull/8143) ([Alexander Kazakov](https://github.com/Akazz)) * Теперь `SYSTEM RELOAD DICTIONARY` полностью перезагружает словарь, игнорируя `update_field`, что исправляет проблему [#7440](https://github.com/ClickHouse/ClickHouse/issues/7440). [#8037](https://github.com/ClickHouse/ClickHouse/pull/8037) ([Vitaly Baranov](https://github.com/vitlibar)) -* Добавлена возможность в запросе CREATE проверять существование словаря. [#8032](https://github.com/ClickHouse/ClickHouse/pull/8032) ([alesapin](https://github.com/alesapin)) +* Добавлена возможность проверять существование словаря в запросе CREATE. [#8032](https://github.com/ClickHouse/ClickHouse/pull/8032) ([alesapin](https://github.com/alesapin)) * Исправлен парсинг типов `Float*` в формате `Values`. Это исправляет [#7817](https://github.com/ClickHouse/ClickHouse/issues/7817). [#7870](https://github.com/ClickHouse/ClickHouse/pull/7870) ([tavplubix](https://github.com/tavplubix)) -* Исправлен сбой, возникавший при невозможности зарезервировать дисковое пространство в некоторых фоновых операциях семейства движков таблиц `*MergeTree`. [#7873](https://github.com/ClickHouse/ClickHouse/pull/7873) ([Vladimir Chebotarev](https://github.com/excitoon)) +* Исправлен сбой, возникавший, если в некоторых фоновых операциях семейства движков таблиц `*MergeTree` не удаётся зарезервировать дисковое пространство. [#7873](https://github.com/ClickHouse/ClickHouse/pull/7873) ([Vladimir Chebotarev](https://github.com/excitoon)) * Исправлен сбой операции слияния, возникавший при наличии в таблице столбца `SimpleAggregateFunction(LowCardinality)`. Это исправляет [#8515](https://github.com/ClickHouse/ClickHouse/issues/8515). [#8522](https://github.com/ClickHouse/ClickHouse/pull/8522) ([Azat Khuzhin](https://github.com/azat)) * Восстановлена поддержка всех локалей ICU и добавлена возможность применять правила сортировки (collations) к константным выражениям. Также в таблицу `system.collations` добавлено имя языка. [#8051](https://github.com/ClickHouse/ClickHouse/pull/8051) ([alesapin](https://github.com/alesapin)) * Исправлена ошибка, из-за которой внешние словари с нулевым минимальным временем жизни (`LIFETIME(MIN 0 MAX N)`, `LIFETIME(N)`) не обновлялись в фоновом режиме. [#7983](https://github.com/ClickHouse/ClickHouse/pull/7983) ([alesapin](https://github.com/alesapin)) -* Исправлен сбой при использовании внешнего словаря с источником ClickHouse, если в запросе есть подзапрос. [#8351](https://github.com/ClickHouse/ClickHouse/pull/8351) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* Исправлен сбой, возникавший при использовании внешнего словаря с источником ClickHouse, когда запрос содержал подзапрос. [#8351](https://github.com/ClickHouse/ClickHouse/pull/8351) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * Исправлен некорректный разбор расширения файла в таблице с движком `URL`. Это устраняет проблему [#8157](https://github.com/ClickHouse/ClickHouse/issues/8157). [#8419](https://github.com/ClickHouse/ClickHouse/pull/8419) ([Andrey Bodrov](https://github.com/apbodrov)) * Исправлен запрос `CHECK TABLE` для таблиц `*MergeTree` без ключа. Устранена проблема [#7543](https://github.com/ClickHouse/ClickHouse/issues/7543). [#7979](https://github.com/ClickHouse/ClickHouse/pull/7979) ([alesapin](https://github.com/alesapin)) * Исправлено преобразование `Float64` в тип MySQL. [#8079](https://github.com/ClickHouse/ClickHouse/pull/8079) ([Yuriy Baranov](https://github.com/yurriy)) * Теперь, если таблица не была полностью удалена из‑за сбоя сервера, сервер попытается её восстановить и загрузить. [#8176](https://github.com/ClickHouse/ClickHouse/pull/8176) ([tavplubix](https://github.com/tavplubix)) -* Исправлена ошибка, из-за которой табличная функция `file` завершалась сбоем при вставке в несуществующий файл. Теперь в этом случае файл будет создан, после чего вставка будет выполнена. [#8177](https://github.com/ClickHouse/ClickHouse/pull/8177) ([Olga Khvostikova](https://github.com/stavrolia)) +* Исправлена ошибка, из-за которой табличная функция `file` приводила к аварийному завершению при вставке в несуществующий файл. Теперь в этом случае файл будет создан, после чего вставка будет выполнена. [#8177](https://github.com/ClickHouse/ClickHouse/pull/8177) ([Olga Khvostikова](https://github.com/stavrolia)) * Исправлена редкая взаимоблокировка, которая могла возникать при включённом `trace_log`. [#7838](https://github.com/ClickHouse/ClickHouse/pull/7838) ([filimonov](https://github.com/filimonov)) * Добавлена поддержка типов данных, отличных от `Date`, во внешнем словаре `RangeHashed`, созданном из DDL-запроса. Исправлена проблема [7899](https://github.com/ClickHouse/ClickHouse/issues/7899). [#8275](https://github.com/ClickHouse/ClickHouse/pull/8275) ([alesapin](https://github.com/alesapin)) * Исправлен сбой при вызове функции `now64()` с результатом другой функции. [#8270](https://github.com/ClickHouse/ClickHouse/pull/8270) ([Vasily Nemkov](https://github.com/Enmk)) * Исправлена ошибка при определении IP-адреса клиента для подключений через протокол обмена MySQL. [#7743](https://github.com/ClickHouse/ClickHouse/pull/7743) ([Dmitry Muzyka](https://github.com/dmitriy-myz)) * Исправлена обработка пустых массивов в функции `arraySplit`. Это исправляет [#7708](https://github.com/ClickHouse/ClickHouse/issues/7708). [#7747](https://github.com/ClickHouse/ClickHouse/pull/7747) ([hcz](https://github.com/hczhcz)) * Исправлена проблема, при которой `pid-файл` другого запущенного `clickhouse-server` мог быть удалён. [#8487](https://github.com/ClickHouse/ClickHouse/pull/8487) ([Weiqing Xu](https://github.com/weiqxu)) -* Исправлена перезагрузка словаря, если он использует `invalidate_query`, которая останавливала обновления и приводила к исключениям при предыдущих попытках обновления. [#8029](https://github.com/ClickHouse/ClickHouse/pull/8029) ([alesapin](https://github.com/alesapin)) +* Исправлена перезагрузка словаря, если он использует `invalidate_query`, из-за которой обновления останавливались и возникало исключение при предыдущих попытках обновления. [#8029](https://github.com/ClickHouse/ClickHouse/pull/8029) ([alesapin](https://github.com/alesapin)) * Исправлена ошибка в функции `arrayReduce`, которая могла приводить к «double free», и ошибка в комбинаторе агрегатных функций `Resample`, которая могла приводить к утечке памяти. Добавлена агрегатная функция `aggThrow`, которую можно использовать для тестирования. [#8446](https://github.com/ClickHouse/ClickHouse/pull/8446) ([alexey-milovidov](https://github.com/alexey-milovidov)) - - #### Улучшение {#improvement-22} * Улучшено логирование при работе с движком таблицы `S3`. [#8251](https://github.com/ClickHouse/ClickHouse/pull/8251) ([Grigory Pervakov](https://github.com/GrigoryPervakov)) @@ -3384,37 +3374,35 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Теперь функция `cityHash` может работать с типами `Decimal` и `UUID`. Исправлена ошибка [#5184](https://github.com/ClickHouse/ClickHouse/issues/5184). [#7693](https://github.com/ClickHouse/ClickHouse/pull/7693) ([Mikhail Korotov](https://github.com/millb)) * Удалена фиксированная гранулярность индекса (ранее 1024) из системных логов, так как она устарела после внедрения адаптивной гранулярности. [#7698](https://github.com/ClickHouse/ClickHouse/pull/7698) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Включён сервер совместимости с MySQL при сборке ClickHouse без поддержки SSL. [#7852](https://github.com/ClickHouse/ClickHouse/pull/7852) ([Yuriy Baranov](https://github.com/yurriy)) -* Теперь сервер вычисляет контрольные суммы распределённых пакетов, что позволяет получать более информативные сообщения об ошибках в случае повреждения данных в пакете. [#7914](https://github.com/ClickHouse/ClickHouse/pull/7914) ([Azat Khuzhin](https://github.com/azat)) +* Теперь сервер вычисляет контрольные суммы распределённых пакетов, что позволяет получать более информативные сообщения об ошибках при повреждении данных в пакете. [#7914](https://github.com/ClickHouse/ClickHouse/pull/7914) ([Azat Khuzhin](https://github.com/azat)) * Добавлена поддержка `DROP DATABASE`, `DETACH TABLE`, `DROP TABLE` и `ATTACH TABLE` для движка базы данных `MySQL`. [#8202](https://github.com/ClickHouse/ClickHouse/pull/8202) ([Winter Zhang](https://github.com/zhang2014)) -* Добавлена поддержка аутентификации в табличную функцию `S3` и движок таблиц. [#7623](https://github.com/ClickHouse/ClickHouse/pull/7623) ([Vladimir Chebotarev](https://github.com/excitoon)) -* Добавлена проверка на наличие лишних частей `MergeTree` на разных дисках, чтобы исключить потерю частей данных на дисках, не описанных в конфигурации. [#8118](https://github.com/ClickHouse/ClickHouse/pull/8118) ([Vladimir Chebotarev](https://github.com/excitoon)) -* Включена поддержка SSL для клиента и сервера на macOS. [#8297](https://github.com/ClickHouse/ClickHouse/pull/8297) ([Ivan](https://github.com/abyss7)) +* Добавлена поддержка аутентификации в табличную функцию `S3` и табличный движок `S3`. [#7623](https://github.com/ClickHouse/ClickHouse/pull/7623) ([Vladimir Chebotarev](https://github.com/excitoon)) +* Добавлена проверка наличия лишних частей `MergeTree` на разных дисках, чтобы не допустить потери частей данных на дисках, не описанных в конфигурации. [#8118](https://github.com/ClickHouse/ClickHouse/pull/8118) ([Vladimir Chebotarev](https://github.com/excitoon)) +* Включена поддержка SSL для клиента и сервера под macOS. [#8297](https://github.com/ClickHouse/ClickHouse/pull/8297) ([Ivan](https://github.com/abyss7)) * Теперь ClickHouse может работать в качестве федеративного сервера MySQL (см. [https://dev.mysql.com/doc/refman/5.7/en/federated-create-server.html](https://dev.mysql.com/doc/refman/5.7/en/federated-create-server.html)). [#7717](https://github.com/ClickHouse/ClickHouse/pull/7717) ([Maxim Fedotov](https://github.com/MaxFedotov)) -* `clickhouse-client` теперь включает `bracketed-paste` только если включён multiquery и выключен multiline. Это исправляет [#7757](https://github.com/ClickHouse/ClickHouse/issues/7757). [#7761](https://github.com/ClickHouse/ClickHouse/pull/7761) ([Amos Bird](https://github.com/amosbird)) +* `clickhouse-client` теперь активирует `bracketed-paste` только при включённом режиме multiquery и выключенном режиме multiline. Это исправляет [#7757](https://github.com/ClickHouse/ClickHouse/issues/7757). [#7761](https://github.com/ClickHouse/ClickHouse/pull/7761) ([Amos Bird](https://github.com/amosbird)) * Добавлена поддержка `Array(Decimal)` в функции `if`. [#7721](https://github.com/ClickHouse/ClickHouse/pull/7721) ([Artem Zuikov](https://github.com/4ertus2)) -* Добавлена поддержка типов Decimal в функциях `arrayDifference`, `arrayCumSum` и `arrayCumSumNegative`. [#7724](https://github.com/ClickHouse/ClickHouse/pull/7724) ([Artem Zuikov](https://github.com/4ertus2)) +* Добавлена поддержка типов `Decimal` в функциях `arrayDifference`, `arrayCumSum` и `arrayCumSumNegative`. [#7724](https://github.com/ClickHouse/ClickHouse/pull/7724) ([Artem Zuikov](https://github.com/4ertus2)) * В таблицу `system.dictionaries` добавлен столбец `lifetime`. [#6820](https://github.com/ClickHouse/ClickHouse/issues/6820) [#7727](https://github.com/ClickHouse/ClickHouse/pull/7727) ([kekekekule](https://github.com/kekekekule)) * Улучшена проверка наличия существующих частей на разных дисках для табличных движков `*MergeTree`. Устраняет проблему [#7660](https://github.com/ClickHouse/ClickHouse/issues/7660). [#8440](https://github.com/ClickHouse/ClickHouse/pull/8440) ([Vladimir Chebotarev](https://github.com/excitoon)) * Интеграция с `AWS SDK` для взаимодействия с `S3`, что позволяет использовать все возможности S3 «из коробки». [#8011](https://github.com/ClickHouse/ClickHouse/pull/8011) ([Pavel Kovalenko](https://github.com/Jokser)) * Добавлена поддержка подзапросов в таблицах типа `Live View`. [#7792](https://github.com/ClickHouse/ClickHouse/pull/7792) ([vzakaznikov](https://github.com/vzakaznikov)) * Проверка на использование столбца `Date` или `DateTime` в выражениях `TTL` была удалена. [#7920](https://github.com/ClickHouse/ClickHouse/pull/7920) ([Vladimir Chebotarev](https://github.com/excitoon)) -* Информация о диске добавлена в таблицу `system.detached_parts`. [#7833](https://github.com/ClickHouse/ClickHouse/pull/7833) ([Vladimir Chebotarev](https://github.com/excitoon)) +* В таблицу `system.detached_parts` добавлена информация о диске. [#7833](https://github.com/ClickHouse/ClickHouse/pull/7833) ([Vladimir Chebotarev](https://github.com/excitoon)) * Теперь настройки `max_(table|partition)_size_to_drop` можно изменять без перезапуска. [#7779](https://github.com/ClickHouse/ClickHouse/pull/7779) ([Grigory Pervakov](https://github.com/GrigoryPervakov)) * Немного улучшено удобство работы с сообщениями об ошибках. Теперь пользователей просят не удалять строки ниже `Stack trace:`. [#7897](https://github.com/ClickHouse/ClickHouse/pull/7897) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Улучшено чтение сообщений из движка `Kafka` в различных форматах после [#7935](https://github.com/ClickHouse/ClickHouse/issues/7935). [#8035](https://github.com/ClickHouse/ClickHouse/pull/8035) ([Ivan](https://github.com/abyss7)) * Улучшена совместимость с клиентами MySQL, не поддерживающими плагин аутентификации `sha2_password`. [#8036](https://github.com/ClickHouse/ClickHouse/pull/8036) ([Yuriy Baranov](https://github.com/yurriy)) -* В сервере совместимости с MySQL добавлена поддержка большего числа типов столбцов. [#7975](https://github.com/ClickHouse/ClickHouse/pull/7975) ([Yuriy Baranov](https://github.com/yurriy)) +* В сервере совместимости с MySQL добавлена поддержка большего количества типов столбцов. [#7975](https://github.com/ClickHouse/ClickHouse/pull/7975) ([Yuriy Baranov](https://github.com/yurriy)) * Реализована оптимизация `ORDER BY` для хранилищ `Merge`, `Buffer` и `Materilized View` с базовыми таблицами `MergeTree`. [#8130](https://github.com/ClickHouse/ClickHouse/pull/8130) ([Anton Popov](https://github.com/CurtizJ)) * Теперь мы всегда используем POSIX-реализацию функции `getrandom` для лучшей совместимости со старыми ядрами (< 3.17). [#7940](https://github.com/ClickHouse/ClickHouse/pull/7940) ([Amos Bird](https://github.com/amosbird)) * Улучшена проверка корректности места назначения в правиле TTL на перемещение. [#8410](https://github.com/ClickHouse/ClickHouse/pull/8410) ([Vladimir Chebotarev](https://github.com/excitoon)) -* Улучшены проверки на повреждённые пакеты данных при вставке для движка таблиц `Distributed`. [#7933](https://github.com/ClickHouse/ClickHouse/pull/7933) ([Azat Khuzhin](https://github.com/azat)) -* Добавлен столбец с массивом имён частей, которые мутации должны обработать в будущем, в таблицу `system.mutations`. [#8179](https://github.com/ClickHouse/ClickHouse/pull/8179) ([alesapin](https://github.com/alesapin)) -* Оптимизация параллельной сортировки слиянием на уровне процессора. [#8552](https://github.com/ClickHouse/ClickHouse/pull/8552) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* Улучшены проверки на повреждённые пакеты вставляемых данных для табличного движка `Distributed`. [#7933](https://github.com/ClickHouse/ClickHouse/pull/7933) ([Azat Khuzhin](https://github.com/azat)) +* В таблицу `system.mutations` добавлен столбец с массивом имён частей, которые должны быть обработаны мутациями в будущем. [#8179](https://github.com/ClickHouse/ClickHouse/pull/8179) ([alesapin](https://github.com/alesapin)) +* Оптимизация параллельной сортировки слиянием для процессоров. [#8552](https://github.com/ClickHouse/ClickHouse/pull/8552) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * Настройка `mark_cache_min_lifetime` устарела и больше ни на что не влияет. В предыдущих версиях кэш меток мог разрастаться в памяти сверх `mark_cache_size`, чтобы удерживать данные в течение `mark_cache_min_lifetime` секунд. Это приводило к путанице и более высокому, чем ожидалось, потреблению памяти, что особенно нежелательно на системах с ограниченным объемом памяти. Если после установки этого релиза вы заметите деградацию производительности, следует увеличить значение `mark_cache_size`. [#8484](https://github.com/ClickHouse/ClickHouse/pull/8484) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Подготовка к повсеместному использованию `tid`. Это необходимо для [#7477](https://github.com/ClickHouse/ClickHouse/issues/7477). [#8276](https://github.com/ClickHouse/ClickHouse/pull/8276) ([alexey-milovidov](https://github.com/alexey-milovidov)) - - #### Повышение производительности {#performance-improvement-17} * Оптимизация производительности конвейера процессоров. [#7988](https://github.com/ClickHouse/ClickHouse/pull/7988) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) @@ -3434,46 +3422,44 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Улучшена производительность функций, работающих с `base64`. [#8444](https://github.com/ClickHouse/ClickHouse/pull/8444) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Добавлена функция `geoDistance`. Она похожа на `greatCircleDistance`, но использует аппроксимацию эллипсоидной модели WGS-84. Производительность этих двух функций сопоставима. [#8086](https://github.com/ClickHouse/ClickHouse/pull/8086) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Более быстрые агрегирующие функции `min` и `max` для типа данных `Decimal`. [#8144](https://github.com/ClickHouse/ClickHouse/pull/8144) ([Artem Zuikov](https://github.com/4ertus2)) -* Векторизована обработка в функции `arrayReduce`. [#7608](https://github.com/ClickHouse/ClickHouse/pull/7608) ([Amos Bird](https://github.com/amosbird)) +* Векторизована обработка функции `arrayReduce`. [#7608](https://github.com/ClickHouse/ClickHouse/pull/7608) ([Amos Bird](https://github.com/amosbird)) * Цепочки `if` теперь оптимизируются как `multiIf`. [#8355](https://github.com/ClickHouse/ClickHouse/pull/8355) ([kamalov-ruslan](https://github.com/kamalov-ruslan)) * Исправлена регрессия производительности движка таблицы `Kafka`, появившаяся в 19.15. Тем самым исправлена [#7261](https://github.com/ClickHouse/ClickHouse/issues/7261). [#7935](https://github.com/ClickHouse/ClickHouse/pull/7935) ([filimonov](https://github.com/filimonov)) * Удалена генерация кода с опцией «pie», которую `gcc` из пакетов Debian иногда включает по умолчанию. [#8483](https://github.com/ClickHouse/ClickHouse/pull/8483) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Параллельный разбор форматов данных [#6553](https://github.com/ClickHouse/ClickHouse/pull/6553) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) * По умолчанию включён оптимизированный парсер `Values` с поддержкой выражений (`input_format_values_deduce_templates_of_expressions=1`). [#8231](https://github.com/ClickHouse/ClickHouse/pull/8231) ([tavplubix](https://github.com/tavplubix)) - - #### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-25} * Исправлена сборка под `ARM` и в минимальной конфигурации. [#8304](https://github.com/ClickHouse/ClickHouse/pull/8304) ([proller](https://github.com/proller)) -* Добавлен сброс файла покрытия для `clickhouse-server` на случай, когда не вызывается std::atexit. Также немного улучшено логирование в stateless-тестах с покрытием. [#8267](https://github.com/ClickHouse/ClickHouse/pull/8267) ([alesapin](https://github.com/alesapin)) +* Добавлен сброс файла покрытия для `clickhouse-server` на случай, если не вызывается std::atexit. Также немного улучшено логирование в stateless-тестах с покрытием. [#8267](https://github.com/ClickHouse/ClickHouse/pull/8267) ([alesapin](https://github.com/alesapin)) * Обновлена библиотека LLVM в каталоге contrib. Рекомендуется не использовать LLVM из пакетов операционной системы. [#8258](https://github.com/ClickHouse/ClickHouse/pull/8258) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Сделать сборку встроенного `curl` полностью без вывода. [#8232](https://github.com/ClickHouse/ClickHouse/pull/8232) [#8203](https://github.com/ClickHouse/ClickHouse/pull/8203) ([Pavel Kovalenko](https://github.com/Jokser)) +* Сборка встроенного `curl` теперь выполняется полностью без вывода. [#8232](https://github.com/ClickHouse/ClickHouse/pull/8232) [#8203](https://github.com/ClickHouse/ClickHouse/pull/8203) ([Pavel Kovalenko](https://github.com/Jokser)) * Исправлены некоторые предупреждения `MemorySanitizer`. [#8235](https://github.com/ClickHouse/ClickHouse/pull/8235) ([Alexander Kuzmenkov](https://github.com/akuzm)) * Используйте макросы `add_warning` и `no_warning` в `CMakeLists.txt`. [#8604](https://github.com/ClickHouse/ClickHouse/pull/8604) ([Ivan](https://github.com/abyss7)) -* Добавлена поддержка объектного хранилища MinIO (S3-совместимого) ([https://min.io/](https://min.io/)) для улучшения интеграционных тестов. [#7863](https://github.com/ClickHouse/ClickHouse/pull/7863) [#7875](https://github.com/ClickHouse/ClickHouse/pull/7875) ([Pavel Kovalenko](https://github.com/Jokser)) -* Заголовочные файлы `libc` импортированы в contrib. Это позволяет сделать сборки более согласованными на различных системах (только для `x86_64-linux-gnu`). [#5773](https://github.com/ClickHouse/ClickHouse/pull/5773) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Добавлена поддержка S3-совместимого объектного хранилища MinIO ([https://min.io/](https://min.io/)) для улучшения интеграционных тестов. [#7863](https://github.com/ClickHouse/ClickHouse/pull/7863) [#7875](https://github.com/ClickHouse/ClickHouse/pull/7875) ([Pavel Kovalenko](https://github.com/Jokser)) +* Заголовочные файлы `libc` импортированы в каталог contrib. Это позволяет сделать сборки более единообразными на разных системах (только для `x86_64-linux-gnu`). [#5773](https://github.com/ClickHouse/ClickHouse/pull/5773) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Удалён флаг `-fPIC` для некоторых библиотек. [#8464](https://github.com/ClickHouse/ClickHouse/pull/8464) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Очистить `CMakeLists.txt` для curl. См. [https://github.com/ClickHouse/ClickHouse/pull/8011#issuecomment-569478910](https://github.com/ClickHouse/ClickHouse/pull/8011#issuecomment-569478910) [#8459](https://github.com/ClickHouse/ClickHouse/pull/8459) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Тихие предупреждения в библиотеке `CapNProto`. [#8220](https://github.com/ClickHouse/ClickHouse/pull/8220) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Добавлены тесты производительности для хэш-таблиц, оптимизированных под короткие строки. [#7679](https://github.com/ClickHouse/ClickHouse/pull/7679) ([Amos Bird](https://github.com/amosbird)) * Теперь ClickHouse будет собираться на архитектуре `AArch64`, даже если `MADV_FREE` недоступен. Это исправляет [#8027](https://github.com/ClickHouse/ClickHouse/issues/8027). [#8243](https://github.com/ClickHouse/ClickHouse/pull/8243) ([Amos Bird](https://github.com/amosbird)) -* Обновить `zlib-ng`, чтобы исправить проблемы, выявленные санитайзером памяти. [#7182](https://github.com/ClickHouse/ClickHouse/pull/7182) [#8206](https://github.com/ClickHouse/ClickHouse/pull/8206) ([Alexander Kuzменkov](https://github.com/akuzm)) +* Обновить `zlib-ng`, чтобы исправить проблемы, выявленные санитайзером памяти. [#7182](https://github.com/ClickHouse/ClickHouse/pull/7182) [#8206](https://github.com/ClickHouse/ClickHouse/pull/8206) ([Alexander Kuzmenkov](https://github.com/akuzm)) * Включена внутренняя библиотека MySQL для систем, отличных от Linux, поскольку использование пакетов ОС очень ненадёжно и обычно вообще не работает. Это исправляет [#5765](https://github.com/ClickHouse/ClickHouse/issues/5765). [#8426](https://github.com/ClickHouse/ClickHouse/pull/8426) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Исправлена сборка на некоторых системах после включения `libc++`. Эта правка заменяет [#8374](https://github.com/ClickHouse/ClickHouse/issues/8374). [#8380](https://github.com/ClickHouse/ClickHouse/pull/8380) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Методы `Field` стали более типобезопасными, что позволяет находить больше ошибок. [#7386](https://github.com/ClickHouse/ClickHouse/pull/7386) [#8209](https://github.com/ClickHouse/ClickHouse/pull/8209) ([Alexander Kuzmenkov](https://github.com/akuzm)) * Добавлены недостающие файлы в подмодуль `libc-headers`. [#8507](https://github.com/ClickHouse/ClickHouse/pull/8507) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Исправлены некорректные кавычки `JSON` в выводе тестов производительности. [#8497](https://github.com/ClickHouse/ClickHouse/pull/8497) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * Теперь стек вызовов отображается для `std::exception` и `Poco::Exception`. В предыдущих версиях он был доступен только для `DB::Exception`. Это улучшает диагностируемость. [#8501](https://github.com/ClickHouse/ClickHouse/pull/8501) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Портирование `clock_gettime` и `clock_nanosleep` для новых версий glibc. [#8054](https://github.com/ClickHouse/ClickHouse/pull/8054) ([Amos Bird](https://github.com/amosbird)) +* Портирование `clock_gettime` и `clock_nanosleep` на новые версии glibc. [#8054](https://github.com/ClickHouse/ClickHouse/pull/8054) ([Amos Bird](https://github.com/amosbird)) * Включить `part_log` в пример конфигурации для разработчиков. [#8609](https://github.com/ClickHouse/ClickHouse/pull/8609) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Исправлена асинхронность перезагрузки в `01036_no_superfluous_dict_reload_on_create_database*`. [#8111](https://github.com/ClickHouse/ClickHouse/pull/8111) ([Azat Khuzhin](https://github.com/azat)) +* Исправлено асинхронное поведение перезагрузки в `01036_no_superfluous_dict_reload_on_create_database*`. [#8111](https://github.com/ClickHouse/ClickHouse/pull/8111) ([Azat Khuzhin](https://github.com/azat)) * Исправлены тесты производительности кодека. [#8615](https://github.com/ClickHouse/ClickHouse/pull/8615) ([Vasily Nemkov](https://github.com/Enmk)) * Добавлены скрипты установки для сборки в формате `.tgz` и документация по ним. [#8612](https://github.com/ClickHouse/ClickHouse/pull/8612) [#8591](https://github.com/ClickHouse/ClickHouse/pull/8591) ([alesapin](https://github.com/alesapin)) -* Удалён старый тест `ZSTD` (он был создан в 2016 году для воспроизведения бага, который был в ZSTD до версии 1.0). Это исправляет [#8618](https://github.com/ClickHouse/ClickHouse/issues/8618). [#8619](https://github.com/ClickHouse/ClickHouse/pull/8619) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Удалён старый тест `ZSTD` (он был создан в 2016 году для воспроизведения ошибки, имевшейся в ZSTD до версии 1.0). Это исправляет [#8618](https://github.com/ClickHouse/ClickHouse/issues/8618). [#8619](https://github.com/ClickHouse/ClickHouse/pull/8619) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Исправлена сборка под Mac OS Catalina. [#8600](https://github.com/ClickHouse/ClickHouse/pull/8600) ([meo](https://github.com/meob)) * Увеличено количество строк в тестах производительности кодеков, чтобы сделать результаты более заметными. [#8574](https://github.com/ClickHouse/ClickHouse/pull/8574) ([Vasily Nemkov](https://github.com/Enmk)) -* В отладочных сборках рассматривайте исключения `LOGICAL_ERROR` как ошибки утверждений (assertion failures), чтобы их было проще заметить. [#8475](https://github.com/ClickHouse/ClickHouse/pull/8475) ([Alexander Kuzmenkov](https://github.com/akuzm)) +* В отладочных сборках обрабатывайте исключения `LOGICAL_ERROR` как срабатывания assert (assertion failures), чтобы их было проще заметить. [#8475](https://github.com/ClickHouse/ClickHouse/pull/8475) ([Alexander Kuzmenkov](https://github.com/akuzm)) * Тест производительности, связанный с форматами, сделан более детерминированным. [#8477](https://github.com/ClickHouse/ClickHouse/pull/8477) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Обновлён `lz4`, чтобы исправить сбой в MemorySanitizer. [#8181](https://github.com/ClickHouse/ClickHouse/pull/8181) ([Alexander Kuzmenkov](https://github.com/akuzm)) * Подавить известное ложноположительное срабатывание MemorySanitizer при обработке исключений. [#8182](https://github.com/ClickHouse/ClickHouse/pull/8182) ([Alexander Kuzmenkov](https://github.com/akuzm)) @@ -3489,30 +3475,30 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Улучшено выражение для получения PID процесса `clickhouse-server` в `clickhouse-test`. [#8063](https://github.com/ClickHouse/ClickHouse/pull/8063) ([Alexander Kazakov](https://github.com/Akazz)) * Обновлён contrib/googletest до v1.10.0. [#8587](https://github.com/ClickHouse/ClickHouse/pull/8587) ([Alexander Burmak](https://github.com/Alex-Burmak)) * Исправлено срабатывание ThreadSanitizer в библиотеке `base64`. Также библиотека обновлена до последней версии, что, впрочем, несущественно. Это исправляет [#8397](https://github.com/ClickHouse/ClickHouse/issues/8397). [#8403](https://github.com/ClickHouse/ClickHouse/pull/8403) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Исправлен `00600_replace_running_query` для процессоров. [#8272](https://github.com/ClickHouse/ClickHouse/pull/8272) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* Исправлен тест `00600_replace_running_query` для процессоров. [#8272](https://github.com/ClickHouse/ClickHouse/pull/8272) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * Удалена поддержка `tcmalloc`, чтобы упростить `CMakeLists.txt`. [#8310](https://github.com/ClickHouse/ClickHouse/pull/8310) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Релизные сборки gcc теперь используют `libc++` вместо `libstdc++`. Раньше `libc++` использовалась только с clang. Это улучшит согласованность конфигураций сборок и переносимость. [#8311](https://github.com/ClickHouse/ClickHouse/pull/8311) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Релизные сборки с gcc теперь используют `libc++` вместо `libstdc++`. Раньше `libc++` использовалась только с clang. Это улучшит согласованность конфигураций сборок и переносимость. [#8311](https://github.com/ClickHouse/ClickHouse/pull/8311) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Включена поддержка библиотеки ICU при сборке с MemorySanitizer. [#8222](https://github.com/ClickHouse/ClickHouse/pull/8222) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Подавлены предупреждения библиотеки `CapNProto`. [#8224](https://github.com/ClickHouse/ClickHouse/pull/8224) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Удалены специальные участки кода для `tcmalloc`, так как он больше не поддерживается. [#8225](https://github.com/ClickHouse/ClickHouse/pull/8225) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Теперь в задаче расчёта покрытия в CI сервер корректно завершается, что позволяет ему сохранить отчёт о покрытии. Это исправляет неполные отчёты о покрытии, которые мы наблюдали в последнее время. [#8142](https://github.com/ClickHouse/ClickHouse/pull/8142) ([alesapin](https://github.com/alesapin)) * Тесты производительности всех кодеков на значениях `Float64` и `UInt64`. [#8349](https://github.com/ClickHouse/ClickHouse/pull/8349) ([Vasily Nemkov](https://github.com/Enmk)) -* `termcap` сильно устарел и приводит к различным проблемам (например, отсутствует capability «up» и выводится `^J` вместо многострочной последовательности). Предпочтительнее использовать `terminfo` или поставляемый в комплекте `ncurses`. [#7737](https://github.com/ClickHouse/ClickHouse/pull/7737) ([Amos Bird](https://github.com/amosbird)) +* `termcap` крайне устарел и приводит к различным проблемам (например, отсутствует capability «up» и выводится `^J` вместо многострочной управляющей последовательности). Предпочтительнее использовать `terminfo` или поставляемый в комплекте `ncurses`. [#7737](https://github.com/ClickHouse/ClickHouse/pull/7737) ([Amos Bird](https://github.com/amosbird)) * Исправлен интеграционный тест `test_storage_s3`. [#7734](https://github.com/ClickHouse/ClickHouse/pull/7734) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * Добавлена поддержка `StorageFile(, null)` для вставки блока в файл заданного формата без записи данных на диск. Это требуется для тестов производительности. [#8455](https://github.com/ClickHouse/ClickHouse/pull/8455) ([Amos Bird](https://github.com/amosbird)) * Добавлен аргумент `--print-time` для функциональных тестов, который выводит время выполнения каждого теста. [#8001](https://github.com/ClickHouse/ClickHouse/pull/8001) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* Добавлены проверки `assert` в `KeyCondition` при вычислении ОПЗ. Это исправит предупреждение от gcc-9. [#8279](https://github.com/ClickHouse/ClickHouse/pull/8279) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* Вывод параметров cmake в сборках CI. [#8273](https://github.com/ClickHouse/ClickHouse/pull/8273) ([Alexander Kuzmenkov](https://github.com/akuzm)) +* Добавлены проверки `assert` в `KeyCondition` при вычислении выражений в ОПЗ. Это устранит предупреждение компилятора gcc-9. [#8279](https://github.com/ClickHouse/ClickHouse/pull/8279) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* Выводить параметры CMake при сборках CI. [#8273](https://github.com/ClickHouse/ClickHouse/pull/8273) ([Alexander Kuzmenkov](https://github.com/akuzm)) * Не генерировать отладочную информацию для некоторых крупных библиотек. [#8271](https://github.com/ClickHouse/ClickHouse/pull/8271) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Сделать так, чтобы `log_to_console.xml` всегда записывал логи в stderr, независимо от интерактивности среды. [#8395](https://github.com/ClickHouse/ClickHouse/pull/8395) ([Alexander Kuzmenkov](https://github.com/akuzm)) * Из утилиты `clickhouse-performance-test` удалены некоторые неиспользуемые функции. [#8555](https://github.com/ClickHouse/ClickHouse/pull/8555) ([alexey-milovidov](https://github.com/alexey-milovidov)) * Теперь мы также будем искать `lld-X` с соответствующей версией `clang-X`. [#8092](https://github.com/ClickHouse/ClickHouse/pull/8092) ([alesapin](https://github.com/alesapin)) * Улучшена сборка Parquet. [#8421](https://github.com/ClickHouse/ClickHouse/pull/8421) ([maxulan](https://github.com/maxulan)) -* Дополнительные предупреждения GCC [#8221](https://github.com/ClickHouse/ClickHouse/pull/8221) ([kreuzerkrieg](https://github.com/kreuzerkrieg)) +* Больше предупреждений от GCC [#8221](https://github.com/ClickHouse/ClickHouse/pull/8221) ([kreuzerkrieg](https://github.com/kreuzerkrieg)) * Пакет для Arch Linux теперь позволяет запускать сервер ClickHouse, а не только клиент. [#8534](https://github.com/ClickHouse/ClickHouse/pull/8534) ([Vladimir Chebotarev](https://github.com/excitoon)) * Исправлен тест с процессорами. Незначительные оптимизации производительности. [#7672](https://github.com/ClickHouse/ClickHouse/pull/7672) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * Обновление contrib/protobuf. [#8256](https://github.com/ClickHouse/ClickHouse/pull/8256) ([Matwey V. Kornilov](https://github.com/matwey)) -* В преддверии перехода на c++20 в качестве новогоднего подарка. "Да пребудет сила C++ с ClickHouse." [#8447](https://github.com/ClickHouse/ClickHouse/pull/8447) ([Amos Bird](https://github.com/amosbird)) +* In preparation of switching to c++20 as a new year celebration. "Да пребудет сила C++ с ClickHouse." [#8447](https://github.com/ClickHouse/ClickHouse/pull/8447) ([Amos Bird](https://github.com/amosbird)) #### Экспериментальная функция {#experimental-feature-8} * Добавлена экспериментальная настройка `min_bytes_to_use_mmap_io`. Она позволяет читать большие файлы без копирования данных из ядра в пользовательское пространство. По умолчанию настройка отключена. Рекомендуемый порог — около 64 МБ, так как `mmap`/`munmap` работают медленно. [#8520](https://github.com/ClickHouse/ClickHouse/pull/8520) ([alexey-milovidov](https://github.com/alexey-milovidov)) @@ -3521,6 +3507,7 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме * Переработаны политики строк как часть системы контроля доступа. Добавлена новая таблица `system.row_policies`, новая функция `currentRowPolicies()`, новый SQL-синтаксис `CREATE POLICY`, `ALTER POLICY`, `DROP POLICY`, `SHOW CREATE POLICY`, `SHOW POLICIES`. [#7808](https://github.com/ClickHouse/ClickHouse/pull/7808) ([Vitaly Baranov](https://github.com/vitlibar)) #### Исправление в области безопасности {#security-fix} + * Исправлена возможность чтения структуры каталогов в таблицах с движком `File`. Это исправляет [#8536](https://github.com/ClickHouse/ClickHouse/issues/8536). [#8537](https://github.com/ClickHouse/ClickHouse/pull/8537) ([alexey-milovidov](https://github.com/alexey-milovidov)) -## [Журнал изменений за 2019 год](./2019.md) {#changelog-for-2019} +## [Журнал изменений за 2019 год](./2019.md) {#changelog-for-2019} \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2021.md b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2021.md index 0a54aa62902..ac8b2062760 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2021.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2021.md @@ -1,6 +1,6 @@ --- slug: /whats-new/changelog/2021 -sidebar_position: 6 +sidebar_position: -2021 sidebar_label: '2021' title: 'Список изменений за 2021 год' description: 'Список изменений за 2021 год' diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2022.md b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2022.md index 1312eaa5a67..023372dd4c8 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2022.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2022.md @@ -1,6 +1,6 @@ --- slug: /whats-new/changelog/2022 -sidebar_position: 5 +sidebar_position: -2022 sidebar_label: '2022' title: 'Журнал изменений за 2022 год' description: 'Журнал изменений за 2022 год' diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2023.md b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2023.md index 238c5a315de..097e691248f 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2023.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2023.md @@ -1,6 +1,6 @@ --- slug: /whats-new/changelog/2023 -sidebar_position: 4 +sidebar_position: -2023 sidebar_label: '2023' title: 'Журнал изменений за 2023 год' description: 'Журнал изменений за 2023 год' diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2024.md b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2024.md new file mode 100644 index 00000000000..beb97132c96 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2024.md @@ -0,0 +1,2003 @@ +--- +slug: /whats-new/changelog/2024 +sidebar_position: -2024 +sidebar_label: '2024' +title: 'Журнал изменений за 2024 год' +description: 'Журнал изменений за 2024 год' +keywords: ['ClickHouse 2024', 'журнал изменений 2024', 'примечания к релизу', 'история версий', 'новые возможности'] +doc_type: 'changelog' +--- + +### Содержание {#table-of-contents} + +**[Релиз ClickHouse v24.12, 2024-12-19](/whats-new/changelog/2024#a-id2412a-clickhouse-release-2412-2024-12-19)**
    +**[Релиз ClickHouse v24.11, 2024-11-26](/whats-new/changelog/2024#a-id2411a-clickhouse-release-2411-2024-11-26)**
    +**[Релиз ClickHouse v24.10, 2024-10-31](/whats-new/changelog/2024#a-id2410a-clickhouse-release-2410-2024-10-31)**
    +**[Релиз ClickHouse v24.9, 2024-09-26](/whats-new/changelog/2024#a-id249a-clickhouse-release-249-2024-09-26)**
    +**[Релиз ClickHouse v24.8 LTS, 2024-08-20](/whats-new/changelog/2024#a-id248a-clickhouse-release-248-lts-2024-08-20)**
    +**[Релиз ClickHouse v24.7, 2024-07-30](/whats-new/changelog/2024#a-id247a-clickhouse-release-247-2024-07-30)**
    +**[Релиз ClickHouse v24.6, 2024-07-01](/whats-new/changelog/2024#a-id246a-clickhouse-release-246-2024-07-01)**
    +**[Релиз ClickHouse v24.5, 2024-05-30](/whats-new/changelog/2024#a-id245a-clickhouse-release-245-2024-05-30)**
    +**[Релиз ClickHouse v24.4, 2024-04-30](/whats-new/changelog/2024#a-id244a-clickhouse-release-244-2024-04-30)**
    +**[Релиз ClickHouse v24.3 LTS, 2024-03-26](/whats-new/changelog/2024#a-id243a-clickhouse-release-243-lts-2024-03-27)**
    +**[Релиз ClickHouse v24.2, 2024-02-29](/whats-new/changelog/2024#a-id242a-clickhouse-release-242-2024-02-29)**
    +**[Релиз ClickHouse v24.1, 2024-01-30](/whats-new/changelog/2024#a-id241a-clickhouse-release-241-2024-01-30)**
    +**[Журнал изменений за 2023 год](/whats-new/changelog/2023/)**
    + +### Релиз ClickHouse 24.12 от 2024-12-19. [Презентация](https://presentations.clickhouse.com/2024-release-24.12/), [Видео](https://www.youtube.com/watch?v=bv-ut-Q6vnc) {#a-id2412a-clickhouse-release-2412-2024-12-19} + + + +#### Обратно несовместимое изменение {#backward-incompatible-change} + +* Функции `greatest` и `least` теперь игнорируют значения аргументов, равные NULL, тогда как ранее они возвращали NULL, если один из аргументов был NULL. Например, `SELECT greatest(1, 2, NULL)` теперь возвращает 2. Это делает поведение совместимым с PostgreSQL, но при этом нарушает совместимость с MySQL, который возвращает NULL. Чтобы сохранить предыдущее поведение, установите значение настройки `least_greatest_legacy_null_behavior` (по умолчанию: `false`) в `true`. [#65519](https://github.com/ClickHouse/ClickHouse/pull/65519) [#73344](https://github.com/ClickHouse/ClickHouse/pull/73344) ([kevinyhzou](https://github.com/KevinyhZou)). +* Новая интеграция с MongoDB теперь используется по умолчанию. Пользователи, которые предпочитают использовать устаревший драйвер MongoDB (на основе драйвера Poco), могут включить серверную настройку `use_legacy_mongodb_integration`. [#73359](https://github.com/ClickHouse/ClickHouse/pull/73359) ([Kirill Nikiforov](https://github.com/allmazz). + +#### Новая функция {#new-feature} + +* Перевели типы `JSON`/`Dynamic`/`Variant` из разряда экспериментальных в стадию beta. [#72294](https://github.com/ClickHouse/ClickHouse/pull/72294) ([Pavel Kruglov](https://github.com/Avogar)). Также мы перенесли все исправления, включая это изменение, в 24.11. +* Эволюция схемы для формата хранения данных [Iceberg](https://iceberg.apache.org/spec/#file-system-operations) предоставляет пользователю широкие возможности по изменению схемы своей таблицы. Порядок столбцов, имена столбцов и простые расширения типов могут меняться прозрачно для пользователя. [#69445](https://github.com/ClickHouse/ClickHouse/pull/69445) ([Daniil Ivanik](https://github.com/divanik)). +* Интеграция с Iceberg REST Catalog: новый движок базы данных Iceberg, который встраивает весь каталог в ClickHouse. [#71542](https://github.com/ClickHouse/ClickHouse/pull/71542) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Добавлен кэш для первичного индекса таблиц `MergeTree` (может быть включен настройкой таблицы `use_primary_key_cache`). Если для первичного индекса включены ленивая загрузка и кэш, он будет загружаться в кэш по требованию (аналогично кэшу меток), вместо того чтобы постоянно находиться в памяти. Добавлен предварительный прогрев первичного индекса при вставках/слияниях/выборках частей данных и при перезапусках таблицы (может быть включен настройкой `prewarm_primary_key_cache`). Это позволяет снизить использование памяти для огромных таблиц на общем хранилище; мы протестировали это на таблицах с более чем одним квадриллионом записей. [#72102](https://github.com/ClickHouse/ClickHouse/pull/72102) ([Anton Popov](https://github.com/CurtizJ)). [#72750](https://github.com/ClickHouse/ClickHouse/pull/72750) ([Alexander Gololobov](https://github.com/davenger)). +* Реализована команда `SYSTEM LOAD PRIMARY KEY` для загрузки первичных индексов всех частей указанной таблицы или всех таблиц, если таблица не указана. Это полезно для бенчмарков и для предотвращения дополнительной задержки при выполнении запросов. [#66252](https://github.com/ClickHouse/ClickHouse/pull/66252) [#67733](https://github.com/ClickHouse/ClickHouse/pull/67733) ([ZAWA_ll](https://github.com/Zawa-ll)). +* Добавлен запрос, позволяющий подключать таблицы `MergeTree` в виде `ReplicatedMergeTree` и наоборот: `ATTACH TABLE ... AS REPLICATED` и `ATTACH TABLE ... AS NOT REPLICATED`. [#65401](https://github.com/ClickHouse/ClickHouse/pull/65401) ([Kirill](https://github.com/kirillgarbar)). +* Добавлена новая настройка `http_response_headers`, позволяющая настраивать HTTP-заголовки ответа. Например, вы можете указать браузеру отобразить изображение, хранящееся в базе данных. Это закрывает [#59620](https://github.com/ClickHouse/ClickHouse/issues/59620). [#72656](https://github.com/ClickHouse/ClickHouse/pull/72656) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена функция `toUnixTimestamp64Second`, которая преобразует `DateTime64` в значение `Int64` с фиксированной точностью до секунды, благодаря чему можно возвращать отрицательные значения, если дата предшествует эпохе Unix. [#70597](https://github.com/ClickHouse/ClickHouse/pull/70597) ([zhanglistar](https://github.com/zhanglistar)). [#73146](https://github.com/ClickHouse/ClickHouse/pull/73146) ([Robert Schulze](https://github.com/rschu1ze)). +* Добавлена новая настройка `enforce_index_structure_match_on_partition_manipulation`, позволяющая выполнять ATTACH, когда множество проекций и вторичных индексов исходной таблицы является подмножеством соответствующих объектов в целевой таблице. Закрыт [#70602](https://github.com/ClickHouse/ClickHouse/issues/70602). [#70603](https://github.com/ClickHouse/ClickHouse/pull/70603) ([zwy991114](https://github.com/zwy991114)). +* Добавлен синтаксис ALTER USER `{ADD|MODIFY|DROP SETTING}`, ALTER USER `{ADD|DROP PROFILE}`, а также для ALTER ROLE и ALTER PROFILE. Теперь вместо замены всего набора настроек можно изменять их по отдельности. [#72050](https://github.com/ClickHouse/ClickHouse/pull/72050) ([pufit](https://github.com/pufit)). +* Добавлена функция `arrayPRAUC`, которая вычисляет AUC (Area Under the Curve, площадь под кривой) для precision–recall-кривой. [#72073](https://github.com/ClickHouse/ClickHouse/pull/72073) ([Emmanuel](https://github.com/emmanuelsdias)). +* Добавлена функция `indexOfAssumeSorted` для массивов. Оптимизирует поиск в массивах, отсортированных в неубывающем порядке. Эффект заметен на очень больших массивах (более 100 000 элементов). [#72517](https://github.com/ClickHouse/ClickHouse/pull/72517) ([Eric Kurbanov](https://github.com/erickurbanov)). +* Добавлена возможность использовать разделитель в качестве необязательного второго аргумента агрегатной функции `groupConcat`. [#72540](https://github.com/ClickHouse/ClickHouse/pull/72540) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Функция `translate` теперь поддерживает удаление символов, если в аргументе `from` указано больше символов, чем в аргументе `to`. Пример: `SELECT translate('clickhouse', 'clickhouse', 'CLICK')` теперь возвращает `CLICK`. [#71441](https://github.com/ClickHouse/ClickHouse/pull/71441) ([shuai.xu](https://github.com/shuai-xu)). + +#### Экспериментальные возможности {#experimental-features} + +* Новая настройка MergeTree `allow_experimental_reverse_key`, которая включает поддержку убывающего порядка сортировки в ключах сортировки MergeTree. Это полезно для анализа временных рядов, особенно для TopN‑запросов. Пример использования: `ENGINE = MergeTree ORDER BY (time DESC, key)` — порядок по убыванию для поля `time`. [#71095](https://github.com/ClickHouse/ClickHouse/pull/71095) ([Amos Bird](https://github.com/amosbird)). + +#### Повышение производительности {#performance-improvement} + +* Перестановка JOIN. Добавлен параметр для выбора стороны JOIN, которая будет выступать в роли внутренней (build) таблицы в плане запроса. Это контролируется настройкой `query_plan_join_swap_table`, которую можно установить в значение `auto`. В этом режиме ClickHouse попытается выбрать таблицу с наименьшим количеством строк. [#71577](https://github.com/ClickHouse/ClickHouse/pull/71577) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Теперь алгоритм `parallel_hash` будет использоваться (когда применимо), если параметр `join_algorithm` имеет значение `default`. Две предыдущие альтернативы (`direct` и `hash`) по-прежнему учитываются, если `parallel_hash` не может быть использован. [#70788](https://github.com/ClickHouse/ClickHouse/pull/70788) ([Nikita Taranov](https://github.com/nickitat)). +* Добавлена опция, позволяющая извлекать общие выражения из условий `WHERE` и `ON`, чтобы уменьшить количество хэш-таблиц, используемых при выполнении операций JOIN. Это имеет смысл, когда условие JOIN ON содержит общие части, объединённые оператором AND, в разных ветках OR. Можно включить параметром `optimize_extract_common_expressions = 1`. [#71537](https://github.com/ClickHouse/ClickHouse/pull/71537) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Позволяет использовать индексы в операторе `SELECT`, когда индексированный столбец приводится (CAST) к типу `LowCardinality(String)`, что может происходить, когда запрос выполняется над таблицей Merge, где в одних таблицах столбец имеет тип `String`, а в других — `LowCardinality(String)`. [#71598](https://github.com/ClickHouse/ClickHouse/pull/71598) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Во время выполнения запросов с параллельными репликами и включённым локальным планом выполнения анализ индексов на рабочих узлах не выполняется. Координатор выбирает диапазоны для чтения рабочими узлами, основываясь на анализе индексов на своей стороне (на инициаторе запроса). Это позволяет коротким запросам с параллельными репликами достигать такой же низкой задержки, как и одновузловые запросы. [#72109](https://github.com/ClickHouse/ClickHouse/pull/72109) ([Igor Nikonov](https://github.com/devcrafter)). +* Использование памяти при выполнении команды `clickhouse disks remove --recursive` уменьшено для дисков объектного хранилища. [#67323](https://github.com/ClickHouse/ClickHouse/pull/67323) ([Kirill](https://github.com/kirillgarbar)). +* Вернули оптимизацию для чтения подстолбцов одного столбца в компактных частях из [#57631](https://github.com/ClickHouse/ClickHouse/pull/57631). Она была случайно удалена. [#72285](https://github.com/ClickHouse/ClickHouse/pull/72285) ([Pavel Kruglov](https://github.com/Avogar)). +* Ускорена сортировка столбцов типа `LowCardinality(String)` за счёт девиртуализации вызовов компаратора. [#72337](https://github.com/ClickHouse/ClickHouse/pull/72337) ([Alexander Gololobov](https://github.com/davenger)). +* Оптимизированы функции `argMin`/`argMax` для ряда простых типов данных. [#72350](https://github.com/ClickHouse/ClickHouse/pull/72350) ([alesapin](https://github.com/alesapin)). +* Оптимизирован механизм блокировок в трекере памяти за счёт использования разделяемых блокировок, что снижает конфликты при блокировке и повышает производительность на системах с очень большим числом CPU. [#72375](https://github.com/ClickHouse/ClickHouse/pull/72375) ([Jiebin Sun](https://github.com/jiebinn)). +* Добавлена новая настройка `use_async_executor_for_materialized_views`. Она включает асинхронное и потенциально многопоточное выполнение запроса materialized view, что может ускорить обработку представлений во время INSERT, но при этом потребляет больше памяти. [#72497](https://github.com/ClickHouse/ClickHouse/pull/72497) ([alesapin](https://github.com/alesapin)). +* Улучшена производительность десериализации состояний агрегатных функций (в типе данных `AggregateFunction` и в распределённых запросах). Незначительно улучшена производительность разбора формата `RowBinary`. [#72818](https://github.com/ClickHouse/ClickHouse/pull/72818) ([Anton Popov](https://github.com/CurtizJ)). +* Диапазоны чтения при использовании параллельных реплик теперь разбиваются в порядке ключа таблицы, что уменьшает потребление памяти при чтении. [#72173](https://github.com/ClickHouse/ClickHouse/pull/72173) ([JIaQi](https://github.com/JiaQiTang98)). +* Ускорены вставки в таблицы MergeTree в случае, когда во вставляемом пакете данных используется только одно значение ключа партиции. [#72348](https://github.com/ClickHouse/ClickHouse/pull/72348) ([alesapin](https://github.com/alesapin)). +* Реализовано параллельное создание таблиц при восстановлении из резервной копии. До этого PR команда `RESTORE` всегда создавала таблицы в одном потоке, что могло быть медленно в случае резервных копий, содержащих много таблиц. [#72427](https://github.com/ClickHouse/ClickHouse/pull/72427) ([Vitaly Baranov](https://github.com/vitlibar)). +* Удаление mark cache может занять заметное время, если он велик. Если при этом удерживать context mutex, это блокирует множество других операций: новое клиентское соединение не сможет установиться до тех пор, пока мьютекс не будет освобождён. При этом удержание этого мьютекса на самом деле не требуется для синхронизации — достаточно иметь локальную ссылку на cache через shared_ptr. [#72749](https://github.com/ClickHouse/ClickHouse/pull/72749) ([Alexander Gololobov](https://github.com/davenger)). + +#### Улучшения {#improvement} + +* Удалена настройка `allow_experimental_join_condition`, теперь по умолчанию разрешены условия соединения, не основанные на равенстве. [#69910](https://github.com/ClickHouse/ClickHouse/pull/69910) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Настройки из конфигурации сервера (users.xml) теперь применяются и на клиенте. Полезно для настроек формата вывода, например `date_time_output_format`. [#71178](https://github.com/ClickHouse/ClickHouse/pull/71178) ([Michael Kolupaev](https://github.com/al13n321)). +* Автоматический перевод операций `GROUP BY`/`ORDER BY` на диск в зависимости от использования памяти сервером/пользователем. Управляется настройками запроса `max_bytes_ratio_before_external_group_by`/`max_bytes_ratio_before_external_sort`. [#71406](https://github.com/ClickHouse/ClickHouse/pull/71406) ([Azat Khuzhin](https://github.com/azat)). +* Добавлена новая логика отмены: `CancellationChecker` проверяет таймауты для каждого запущенного запроса и останавливает их, как только таймаут истекает. [#69880](https://github.com/ClickHouse/ClickHouse/pull/69880) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Добавлена поддержка `ALTER` для преобразования `Object` в `JSON`, что позволяет легко мигрировать с устаревшего типа `Object`. [#71784](https://github.com/ClickHouse/ClickHouse/pull/71784) ([Pavel Kruglov](https://github.com/Avogar)). +* Разрешить неизвестные значения в Set, которые отсутствуют в Enum. Исправление [#72662](https://github.com/ClickHouse/ClickHouse/issues/72662). [#72686](https://github.com/ClickHouse/ClickHouse/pull/72686) ([zhanglistar](https://github.com/zhanglistar)). +* Добавлена поддержка оператора строкового поиска (например, LIKE) для типа данных `Enum`, что реализует [#72661](https://github.com/ClickHouse/ClickHouse/issues/72661). [#72732](https://github.com/ClickHouse/ClickHouse/pull/72732) ([zhanglistar](https://github.com/zhanglistar)). +* Ранее принимались некоторые бессмысленные запросы ALTER USER. Исправлена проблема [#71227](https://github.com/ClickHouse/ClickHouse/issues/71227). [#71286](https://github.com/ClickHouse/ClickHouse/pull/71286) ([Arthur Passos](https://github.com/arthurpassos)). +* Учитывать параметр `prefer_locahost_replica` при построении плана выполнения для распределённой операции `INSERT ... SELECT`. [#72190](https://github.com/ClickHouse/ClickHouse/pull/72190) ([filimonov](https://github.com/filimonov)). +* Azure нарушила спецификацию Iceberg, ошибочно пометив Iceberg v1 как Iceberg v2. Проблема [описана здесь](https://github.com/ClickHouse/ClickHouse/issues/72091). Azure Iceberg Writer создает файлы метаданных Iceberg (а также manifest-файлы), которые не соответствуют спецификации. Теперь мы пытаемся читать метаданные формата Iceberg v1 с помощью ридера v2 (поскольку они записывают их именно так) и добавили генерацию ошибки, если в manifest-файле не созданы соответствующие поля. [#72277](https://github.com/ClickHouse/ClickHouse/pull/72277) ([Daniil Ivanik](https://github.com/divanik)). +* Теперь можно выполнять `CREATE MATERIALIZED VIEW` с `UNION [ALL]` в запросе. Поведение такое же, как для materialized view с `JOIN`: только первая таблица в выражении `SELECT` будет работать как триггер для вставки данных, все остальные таблицы будут игнорироваться. Однако, если есть несколько ссылок на первую таблицу (например, UNION с самой собой), все они будут обработаны как один вставленный блок данных. [#72347](https://github.com/ClickHouse/ClickHouse/pull/72347) ([alesapin](https://github.com/alesapin)). +* Добавлена проверка исходного запроса, когда ClickHouse используется в качестве источника данных для словаря. [#72548](https://github.com/ClickHouse/ClickHouse/pull/72548) ([Alexey Katsman](https://github.com/alexkats)). +* Обеспечить, чтобы ClickHouse обнаруживал изменения в ZooKeeper при перезагрузке конфигурации. [#72593](https://github.com/ClickHouse/ClickHouse/pull/72593) ([Azat Khuzhin](https://github.com/azat)). +* Улучшена оценка объёма памяти, занимаемой кэшированными метками, для снижения общего потребления памяти кэша. [#72630](https://github.com/ClickHouse/ClickHouse/pull/72630) ([Antonio Andelic](https://github.com/antonio2368)). +* Добавлена новая метрика `StartupScriptsExecutionState`. Метрика может принимать три значения: 0 = стартовые скрипты ещё не завершили выполнение, 1 = стартовые скрипты выполнены успешно, 2 = стартовые скрипты завершились с ошибкой. Эта метрика необходима, чтобы понимать, успешно ли выполняются стартовые скрипты в Cloud, особенно после релизов базовых конфигураций. [#72637](https://github.com/ClickHouse/ClickHouse/pull/72637) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Добавлена новая метрика `MergeTreeIndexGranularityInternalArraysTotalSize` в таблицу `system.metrics`. Эта метрика нужна, чтобы находить экземпляры с огромными наборами данных, подверженными высокой +* Добавлены повторные попытки создания реплицируемой таблицы. [#72682](https://github.com/ClickHouse/ClickHouse/pull/72682) ([Vitaly Baranov](https://github.com/vitlibar)). +* Добавлен столбец `total_bytes_with_inactive` в таблицу `system.tables` для подсчёта общего объёма данных в неактивных частях. [#72690](https://github.com/ClickHouse/ClickHouse/pull/72690) ([Kai Zhu](https://github.com/nauu)). +* Добавить настройки MergeTree в `system.settings_changes`. [#72694](https://github.com/ClickHouse/ClickHouse/pull/72694) ([Raúl Marín](https://github.com/Algunenano)). +* Добавлена поддержка типа JSON в функции `notEmpty`. [#72741](https://github.com/ClickHouse/ClickHouse/pull/72741) ([Pavel Kruglov](https://github.com/Avogar)). +* Добавлена поддержка парсинга ошибки GCS S3 `AuthenticationRequired`. [#72753](https://github.com/ClickHouse/ClickHouse/pull/72753) ([Vitaly Baranov](https://github.com/vitlibar)). +* Добавлена поддержка типа `Dynamic` в функциях `ifNull` и `coalesce`. [#72772](https://github.com/ClickHouse/ClickHouse/pull/72772) ([Pavel Kruglov](https://github.com/Avogar)). +* Добавлена поддержка `Dynamic` в функциях `toFloat64`/`touInt32`/и т.д. [#72989](https://github.com/ClickHouse/ClickHouse/pull/72989) ([Pavel Kruglov](https://github.com/Avogar)). +* Добавлены настройки запросов к S3 `http_max_fields`, `http_max_field_name_size`, `http_max_field_value_size` и их использование при разборе ответов S3 API во время создания или восстановления резервной копии. [#72778](https://github.com/ClickHouse/ClickHouse/pull/72778) ([Vitaly Baranov](https://github.com/vitlibar)). +* Удалять метаданные таблиц в Keeper для Storage S3(Azure)Queue только после удаления последней таблицы, использующей эти метаданные. [#72810](https://github.com/ClickHouse/ClickHouse/pull/72810) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Добавлены события профилирования `JoinBuildTableRowCount`/`JoinProbeTableRowCount`/`JoinResultRowCount`. [#72842](https://github.com/ClickHouse/ClickHouse/pull/72842) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Добавлена поддержка подстолбцов в ключе сортировки MergeTree и пропускающих индексах. [#72644](https://github.com/ClickHouse/ClickHouse/pull/72644) ([Pavel Kruglov](https://github.com/Avogar)). + +#### Исправление ошибки (некорректное поведение, заметное пользователю, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* Исправлена потенциальная проблема пересечения частей в MergeTree (после неудачной операции перемещения части в каталог detached, возможно из-за операции с объектным хранилищем). [#70476](https://github.com/ClickHouse/ClickHouse/pull/70476) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена обработка ошибки, возникающей, когда имя таблицы слишком длинное. Добавлена диагностика с указанием максимально допустимой длины. Добавлена новая функция `getMaxTableNameLengthForDatabase`. [#70810](https://github.com/ClickHouse/ClickHouse/pull/70810) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Исправлены процессы‑зомби после аварийного завершения работы `clickhouse-library-bridge` (эта программа позволяет запускать небезопасные библиотеки). [#71301](https://github.com/ClickHouse/ClickHouse/pull/71301) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* Исправлена ошибка `NoSuchKey` при откате транзакции, возникающая при неудачной попытке создания каталога для диска `plain_rewritable`. [#71439](https://github.com/ClickHouse/ClickHouse/pull/71439) ([Julia Kartseva](https://github.com/jkartseva)). +* Исправлена проблема с сериализацией значений `Dynamic` в форматах JSON `Pretty`. [#71923](https://github.com/ClickHouse/ClickHouse/pull/71923) ([Pavel Kruglov](https://github.com/Avogar)). +* Теперь автоматически определённое имя формата добавляется в запрос `CREATE` в движках `File`/`S3`/`URL`/`HDFS`/`Azure`. Ранее имя формата определялось заново при каждом перезапуске сервера, и если указанные файлы данных были удалены, это приводило к ошибкам во время запуска сервера. [#72108](https://github.com/ClickHouse/ClickHouse/pull/72108) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлены ошибки при использовании UDF в выражении `JOIN ON` со старым анализатором. [#72179](https://github.com/ClickHouse/ClickHouse/pull/72179) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлены несколько небольших ошибок в `StorageObjectStorage`. Теперь параметр `use_hive_partitioning` включён по умолчанию. [#72185](https://github.com/ClickHouse/ClickHouse/pull/72185) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Исправлена ошибка, из-за которой `min_age_to_force_merge_on_partition_only` зацикливался, пытаясь повторно объединить одну и ту же партицию, уже сведённую к одной части, и не объединял партиции, содержащие несколько частей. [#72209](https://github.com/ClickHouse/ClickHouse/pull/72209) ([Christoph Wurm](https://github.com/cwurm)). +* Исправлена ошибка, приводившая к аварийному завершению работы `SimpleSquashingChunksTransform` в редких случаях при обработке разреженных столбцов. [#72226](https://github.com/ClickHouse/ClickHouse/pull/72226) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Исправлена гонка данных в `GraceHashJoin`, из-за которой некоторые строки могли отсутствовать в результате объединения. [#72233](https://github.com/ClickHouse/ClickHouse/pull/72233) ([Nikita Taranov](https://github.com/nickitat)). +* Исправлены запросы `ALTER DELETE` с материализованным столбцом `_block_number` (при включённой настройке `enable_block_number_column`). [#72261](https://github.com/ClickHouse/ClickHouse/pull/72261) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлена гонка данных при конкурентном вызове `ColumnDynamic::dumpStructure()`, например из конструктора `ConcurrentHashJoin`. [#72278](https://github.com/ClickHouse/ClickHouse/pull/72278) ([Nikita Taranov](https://github.com/nickitat)). +* Исправлена потенциальная ошибка (`LOGICAL_ERROR`), возникавшая при наличии повторяющихся столбцов в `ORDER BY ... WITH FILL`. [#72387](https://github.com/ClickHouse/ClickHouse/pull/72387) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Исправлены несоответствия типов в ряде случаев после применения `optimize_functions_to_subcolumns`. [#72394](https://github.com/ClickHouse/ClickHouse/pull/72394) ([Anton Popov](https://github.com/CurtizJ)). +* Используйте `AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE` вместо `AWS_CONTAINER_AUTHORIZATION_TOKEN_PATH`. Исправление для [#71074](https://github.com/ClickHouse/ClickHouse/issues/71074). [#72397](https://github.com/ClickHouse/ClickHouse/pull/72397) ([Konstantин Богданов](https://github.com/thevar1able)). +* Исправлена ошибка при разборе запросов `BACKUP DATABASE db EXCEPT TABLES db.table`. [#72429](https://github.com/ClickHouse/ClickHouse/pull/72429) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Запрещено создание пустого `Variant`. [#72454](https://github.com/ClickHouse/ClickHouse/pull/72454) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлено неверное форматирование поля `result_part_path` в таблице `system.merges`. [#72567](https://github.com/ClickHouse/ClickHouse/pull/72567) ([Konstantin Bogdanов](https://github.com/thevar1able)). +* Исправлена обработка glob-шаблона с одним элементом (например, `{file}`). [#72572](https://github.com/ClickHouse/ClickHouse/pull/72572) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Исправлена генерация запросов для ведомого сервера в случае распределённого запроса с `ARRAY JOIN`. Исправляет [#69276](https://github.com/ClickHouse/ClickHouse/issues/69276). [#72608](https://github.com/ClickHouse/ClickHouse/pull/72608) ([Dmitry Novik](https://github.com/novikd)). +* Исправлена ошибка, из-за которой `DateTime64 IN DateTime64` не возвращал результаты. [#72640](https://github.com/ClickHouse/ClickHouse/pull/72640) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Исправлены несогласованные метаданные при добавлении новой реплики в реплицируемую базу данных, в которой есть таблица, созданная с `flatten_nested=0`. [#72685](https://github.com/ClickHouse/ClickHouse/pull/72685) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Исправлена расширенная настройка SSL для внутреннего взаимодействия Keeper. [#72730](https://github.com/ClickHouse/ClickHouse/pull/72730) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлена ошибка «No such key» в режиме unordered для S3Queue при значении настройки `tracked_files_limit`, меньшем, чем скорость появления файлов в S3. [#72738](https://github.com/ClickHouse/ClickHouse/pull/72738) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлено исключение, выбрасываемое в RemoteQueryExecutor, если локально отсутствует пользователь. [#72759](https://github.com/ClickHouse/ClickHouse/pull/72759) ([Andrey Zvonov](https://github.com/zvonand)). +* Исправлены мутации с материализованным столбцом `_block_number` (если включена настройка `enable_block_number_column`). [#72854](https://github.com/ClickHouse/ClickHouse/pull/72854) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлена проблема с резервным копированием и восстановлением при использовании обычного перезаписываемого диска в случае наличия пустых файлов в резервной копии. [#72858](https://github.com/ClickHouse/ClickHouse/pull/72858) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Обеспечена корректная отмена вставок в DistributedAsyncInsertDirectoryQueue. [#72885](https://github.com/ClickHouse/ClickHouse/pull/72885) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлена ошибка, приводившая к аварийному завершению при разборе некорректных данных в разреженные столбцы (может происходить при включённой настройке `enable_parsing_to_custom_serialization`). [#72891](https://github.com/ClickHouse/ClickHouse/pull/72891) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлено потенциальное аварийное завершение при восстановлении из резервной копии. [#72947](https://github.com/ClickHouse/ClickHouse/pull/72947) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлена ошибка в методе JOIN `parallel_hash`, которая могла проявляться, когда запрос содержал сложное условие в предложении `ON` с операторами неравенства. [#72993](https://github.com/ClickHouse/ClickHouse/pull/72993) ([Nikita Taranov](https://github.com/nickitat)). +* Используйте настройки формата по умолчанию при разборе JSON во избежание ошибок десериализации. [#73043](https://github.com/ClickHouse/ClickHouse/pull/73043) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлено аварийное завершение работы в транзакциях при использовании неподдерживаемого хранилища. [#73045](https://github.com/ClickHouse/ClickHouse/pull/73045) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена возможная завышенная оценка потребления памяти при её учёте (когда разница между `MemoryTracking` и `MemoryResident` постоянно увеличивалась). [#73081](https://github.com/ClickHouse/ClickHouse/pull/73081) ([Azat Khuzhin](https://github.com/azat)). +* При разборе `Tuple` теперь выполняется проверка на дублирующиеся JSON-ключи. Ранее это могло приводить к логической ошибке `Invalid number of rows in Chunk` при разборе. [#73082](https://github.com/ClickHouse/ClickHouse/pull/73082) ([Pavel Kruglov](https://github.com/Avogar)). + +#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement} + +* Все небольшие утилиты, ранее расположенные в папке `/utils` и требовавшие ручной компиляции из исходников, теперь входят в основной пакет поставки ClickHouse. Это закрывает: [#72404](https://github.com/ClickHouse/ClickHouse/issues/72404). [#72426](https://github.com/ClickHouse/ClickHouse/pull/72426) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Отменено удаление `/etc/systemd/system/clickhouse-server.service`, добавленное в 22.3 [#39323](https://github.com/ClickHouse/ClickHouse/issues/39323). [#72259](https://github.com/ClickHouse/ClickHouse/pull/72259) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Разделены слишком крупные единицы трансляции, чтобы избежать сбоев компиляции из‑за ограничений по памяти и CPU. [#72352](https://github.com/ClickHouse/ClickHouse/pull/72352) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* OSX: сборка с поддержкой ICU, что позволяет использовать коллации, преобразование кодировок и другие функции локализации. [#73083](https://github.com/ClickHouse/ClickHouse/pull/73083) ([Raúl Marín](https://github.com/Algunenano)). + +### Релиз ClickHouse 24.11, 2024-11-26. [Презентация](https://presentations.clickhouse.com/2024-release-24.11/), [видео](https://www.youtube.com/watch?v=0hpTvtq__4g) {#a-id2411a-clickhouse-release-2411-2024-11-26} + + + +#### Изменения, нарушающие обратную совместимость {#backward-incompatible-change-1} + +* Удалены системные таблицы `generate_series` и `generateSeries`. Они были добавлены по ошибке здесь: [#59390](https://github.com/ClickHouse/ClickHouse/issues/59390). [#71091](https://github.com/ClickHouse/ClickHouse/pull/71091) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Удалён `StorageExternalDistributed`. Закрывает [#70600](https://github.com/ClickHouse/ClickHouse/issues/70600). [#71176](https://github.com/ClickHouse/ClickHouse/pull/71176) ([flynn](https://github.com/ucasfl)). +* Табличные движки Kafka, NATS и RabbitMQ теперь регулируются собственными грантами в иерархии `SOURCES`. Добавьте гранты для любых пользователей БД, отличных от пользователя по умолчанию, которые создают таблицы с этими движками. [#71250](https://github.com/ClickHouse/ClickHouse/pull/71250) ([Christoph Wurm](https://github.com/cwurm)). +* Перед выполнением теперь полностью проверяется запрос мутации (включая подзапросы). Это предотвращает случайный запуск некорректного запроса и накопление «мёртвых» мутаций, блокирующих корректные мутации. [#71300](https://github.com/ClickHouse/ClickHouse/pull/71300) ([Christoph Wurm](https://github.com/cwurm)). +* Переименован параметр кэша файловой системы `skip_download_if_exceeds_query_cache` в `filesystem_cache_skip_download_if_exceeds_per_query_cache_write_limit`. [#71578](https://github.com/ClickHouse/ClickHouse/pull/71578) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Удалена поддержка аргументов типа `Enum`, а также `UInt128` и `UInt256` в `deltaSumTimestamp`. Удалена поддержка типов `Int8`, `UInt8`, `Int16` и `UInt16` для второго («timestamp») аргумента `deltaSumTimestamp`. [#71790](https://github.com/ClickHouse/ClickHouse/pull/71790) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* При получении данных напрямую из словаря с использованием хранилища Dictionary, табличной функции словаря или прямого SELECT из самого словаря теперь достаточно иметь разрешение `SELECT` или разрешение `dictGet` для этого словаря. Это согласуется с предыдущими попытками предотвратить обход ACL: https://github.com/ClickHouse/ClickHouse/pull/57362 и https://github.com/ClickHouse/ClickHouse/pull/65359. Это также делает последнее из них обратносовместимым. [#72051](https://github.com/ClickHouse/ClickHouse/pull/72051) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). + +#### Экспериментальная функциональность {#experimental-feature} + +* Реализован `allow_feature_tier` как глобальный переключатель для отключения всех экспериментальных и beta-функций. [#71841](https://github.com/ClickHouse/ClickHouse/pull/71841) [#71145](https://github.com/ClickHouse/ClickHouse/pull/71145) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена возможная ошибка `No such file or directory`, возникающая из‑за неэкранированных специальных символов в файлах для JSON-подстолбцов. [#71182](https://github.com/ClickHouse/ClickHouse/pull/71182) ([Pavel Kruglov](https://github.com/Avogar)). +* Добавлена поддержка ALTER с типа String на JSON. Этот PR также переводит сериализацию типов JSON и Dynamic на новую версию V2. Старая версия V1 по-прежнему может использоваться при включении настройки `merge_tree_use_v1_object_and_dynamic_serialization` (может использоваться во время обновления, чтобы при необходимости можно было без проблем откатиться на предыдущую версию). [#70442](https://github.com/ClickHouse/ClickHouse/pull/70442) ([Pavel Kruglov](https://github.com/Avogar)). +* Реализован простой CAST из Map/Tuple/Object в новый JSON через сериализацию/десериализацию из JSON-строки. [#71320](https://github.com/ClickHouse/ClickHouse/pull/71320) ([Pavel Kruglov](https://github.com/Avogar)). +* По умолчанию запрещено использование типов Variant/Dynamic в ORDER BY/GROUP BY/PARTITION BY/PRIMARY KEY, так как это может приводить к неожиданным результатам. [#69731](https://github.com/ClickHouse/ClickHouse/pull/69731) ([Pavel Kruglov](https://github.com/Avogar)). +* Запрещено использовать типы Dynamic/Variant в функциях min/max, чтобы избежать путаницы. [#71761](https://github.com/ClickHouse/ClickHouse/pull/71761) ([Pavel Kruglov](https://github.com/Avogar)). + +#### Новая функциональность {#new-feature-1} + +* Добавлен SQL-синтаксис для описания управления нагрузкой и ресурсами. https://clickhouse.com/docs/operations/workload-scheduling. [#69187](https://github.com/ClickHouse/ClickHouse/pull/69187) ([Sergei Trifonov](https://github.com/serxa)). +* Добавлен новый тип данных `BFloat16`, представляющий 16‑битные числа с плавающей запятой с 8‑битным показателем, знаком и 7‑битной мантиссой. Закрывает [#44206](https://github.com/ClickHouse/ClickHouse/issues/44206). Закрывает [#49937](https://github.com/ClickHouse/ClickHouse/issues/49937). [#64712](https://github.com/ClickHouse/ClickHouse/pull/64712) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлен запрос `CHECK GRANT` для проверки, предоставлена ли текущему пользователю/роли конкретная привилегия и существует ли соответствующая таблица/столбец в памяти. [#68885](https://github.com/ClickHouse/ClickHouse/pull/68885) ([Unalian](https://github.com/Unalian)). +* Добавлены табличные функции `iceberg[S3;HDFS;Azure]Cluster`, `deltaLakeCluster`, `hudiCluster`. [#72045](https://github.com/ClickHouse/ClickHouse/pull/72045) ([Mikhail Artemenko](https://github.com/Michicosun)). +* Добавлена возможность задавать имя пользователя/пароль в http_handlers (для `dynamic_query_handler`/`predefined_query_handler`). [#70725](https://github.com/ClickHouse/ClickHouse/pull/70725) ([Azat Khuzhin](https://github.com/azat)). +* Добавлена поддержка предложения STALENESS в операторе ORDER BY WITH FILL. [#71151](https://github.com/ClickHouse/ClickHouse/pull/71151) ([Mikhail Artemenko](https://github.com/Michicosun)). +* Разрешено задавать отдельный срок действия для каждого метода аутентификации; срок действия больше не хранится в сущности пользователя. [#70090](https://github.com/ClickHouse/ClickHouse/pull/70090) ([Arthur Passos](https://github.com/arthurpassos)). +* Добавлены новые функции `parseDateTime64`, `parseDateTime64OrNull` и `parseDateTime64OrZero`. По сравнению с существующей функцией `parseDateTime` (и её вариантами), они возвращают значение типа `DateTime64` вместо `DateTime`. [#71581](https://github.com/ClickHouse/ClickHouse/pull/71581) ([kevinyhzou](https://github.com/KevinyhZou)). + +#### Улучшения производительности {#performance-improvement-1} + +* Оптимизировано использование памяти для значений гранулярности индекса, если гранулярность постоянна для части. Добавлена возможность всегда использовать постоянную гранулярность для части (настройка `use_const_adaptive_granularity`), что помогает обеспечить её оптимальное размещение в памяти. Это помогает при больших нагрузках (триллионы строк в разделяемом хранилище) избежать постоянного роста использования памяти метаданными частей данных (значениями гранулярности индекса). [#71786](https://github.com/ClickHouse/ClickHouse/pull/71786) ([Anton Popov](https://github.com/CurtizJ)). +* Теперь мы не копируем столбцы входных блоков для `join_algorithm = 'parallel_hash'` при их распределении между потоками для параллельной обработки. [#67782](https://github.com/ClickHouse/ClickHouse/pull/67782) ([Nikita Taranov](https://github.com/nickitat)). +* Оптимизирован алгоритм слияния `Replacing` для непересекающихся частей. [#70977](https://github.com/ClickHouse/ClickHouse/pull/70977) ([Anton Popov](https://github.com/CurtizJ)). +* Не перечислять отсоединённые части с дисков только для чтения и дисков с одноразовой записью в метриках и в таблице `system.detached_parts`. [#71086](https://github.com/ClickHouse/ClickHouse/pull/71086) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* По умолчанию не вычислять тяжёлые асинхронные метрики. Функция была добавлена в [#40332](https://github.com/ClickHouse/ClickHouse/issues/40332), но запуск тяжёлого фонового задания, нужного лишь одному клиенту, нежелателен. [#71087](https://github.com/ClickHouse/ClickHouse/pull/71087) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Для дисков `plain_rewritable`: не обращайтесь к API объектного хранилища при перечислении каталогов, так как это может быть экономически неэффективно. Вместо этого храните список имён файлов в памяти. Компромисс заключается в увеличении времени начальной загрузки и объёма памяти, необходимого для хранения имён файлов. [#70823](https://github.com/ClickHouse/ClickHouse/pull/70823) ([Julia Kartseva](https://github.com/jkartseva)). +* Улучшены производительность и точность интервала сбора данных в журнале `system.query_metric_log` за счёт сокращения критической секции. [#71473](https://github.com/ClickHouse/ClickHouse/pull/71473) ([Pablo Marcos](https://github.com/pamarcos)). +* Оптимизация последовательного чтения за счёт генерации виртуальных строк, благодаря чему во время сортировки слиянием считывается меньше данных, что особенно полезно при наличии нескольких частей. [#62125](https://github.com/ClickHouse/ClickHouse/pull/62125) ([Shichao Jin](https://github.com/jsc0218)). +* Добавлена настройка сервера `async_load_system_database`, которая позволяет запускать сервер до полной загрузки системной базы данных. Это помогает запускать ClickHouse быстрее, если в системе много системных таблиц. [#69847](https://github.com/ClickHouse/ClickHouse/pull/69847) ([Sergei Trifonov](https://github.com/serxa)). +* Добавлен параметр `--threads` в утилиту `clickhouse-compressor`, который позволяет выполнять параллельное сжатие данных. [#70860](https://github.com/ClickHouse/ClickHouse/pull/70860) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена настройка `prewarm_mark_cache`, которая включает загрузку меток в кэш меток при вставках, слияниях, получении частей и при запуске таблицы. [#71053](https://github.com/ClickHouse/ClickHouse/pull/71053) ([Anton Popov](https://github.com/CurtizJ)). +* Массив `index_granularity` в памяти теперь уменьшается до фактического размера (shrink-to-fit), что снижает потребление памяти семейством движков таблиц MergeTree. [#71595](https://github.com/ClickHouse/ClickHouse/pull/71595) ([alesapin](https://github.com/alesapin)). +* Отключена настройка файлового кэша `boundary_alignment` для чтения не с диска, что повышает производительность чтения из отдельных удалённых файлов с кэшированием. [#71827](https://github.com/ClickHouse/ClickHouse/pull/71827) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Запросы вида `SELECT * FROM table LIMIT ...` раньше приводили к загрузке индексов кусков, хотя те не использовались. [#71866](https://github.com/ClickHouse/ClickHouse/pull/71866) ([Alexander Gololobov](https://github.com/davenger)). +* Включить параметр `parallel_replicas_local_plan` по умолчанию. Построение полноценного локального плана на инициаторе запроса улучшает производительность параллельных реплик при меньшем потреблении ресурсов и дает дополнительные возможности для применения оптимизаций запросов. [#70171](https://github.com/ClickHouse/ClickHouse/pull/70171) ([Igor Nikonov](https://github.com/devcrafter)). + +#### Улучшения {#improvement-1} + +* Теперь можно использовать clickhouse с файловым аргументом, как в `ch queries.sql`. [#71589](https://github.com/ClickHouse/ClickHouse/pull/71589) ([Raúl Marín](https://github.com/Algunenano)). +* Формат `Vertical` (который также активируется, если вы завершаете запрос последовательностью `\G`) получил функции форматов Pretty, такие как: - подсветка разрядов тысяч в числах; - вывод подсказки с числом в удобочитаемом формате. [#71630](https://github.com/ClickHouse/ClickHouse/pull/71630) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Передавать внешние пользовательские роли от инициатора запроса на другие узлы кластера. Полезно, если только инициатор запроса имеет доступ к внешнему аутентификатору (например, LDAP). [#70332](https://github.com/ClickHouse/ClickHouse/pull/70332) ([Andrey Zvonov](https://github.com/zvonand)). +* Добавлены псевдонимы `anyRespectNulls`, `firstValueRespectNulls` и `anyValueRespectNulls` для агрегатной функции `any`. Также добавлены псевдонимы `anyLastRespectNulls` и `lastValueRespectNulls` для агрегатной функции `anyLast`. Это позволяет использовать более естественный синтаксис в чистом camelCase вместо смешанного стиля camelCase/underscore, например: `SELECT anyLastRespectNullsStateIf` вместо `anyLast_respect_nullsStateIf`. [#71403](https://github.com/ClickHouse/ClickHouse/pull/71403) ([Peter Nguyen](https://github.com/petern48)). +* Добавлен параметр конфигурации `date_time_utc`, который позволяет форматировать JSON‑логи с датой и временем в UTC по стандарту RFC 3339/ISO8601. [#71560](https://github.com/ClickHouse/ClickHouse/pull/71560) ([Ali](https://github.com/xogoodnow)). +* Добавлен новый тип заголовка для S3‑эндпоинтов для аутентификации пользователей (`access_header`). Это позволяет задать заголовок доступа с наименьшим приоритетом, который будет перезаписан значением `access_key_id` из любого другого источника (например, схемы таблицы или именованной коллекции). [#71011](https://github.com/ClickHouse/ClickHouse/pull/71011) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* Функции высшего порядка с константными массивами и константными захваченными аргументами будут возвращать константы. [#58400](https://github.com/ClickHouse/ClickHouse/pull/58400) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Имена шагов плана запроса (`EXPLAIN PLAN json=1`) и имена процессоров конвейера (`EXPLAIN PIPELINE compact=0,graph=1`) теперь содержат уникальный идентификатор в качестве суффикса. Это позволяет сопоставлять вывод профилировщика процессоров и OpenTelemetry-трейсы с выводом `EXPLAIN`. [#63518](https://github.com/ClickHouse/ClickHouse/pull/63518) ([qhsong](https://github.com/qhsong)). +* Добавлена опция проверки существования объекта после его записи в Azure Blob Storage, управляемая параметром `check_objects_after_upload`. [#64847](https://github.com/ClickHouse/ClickHouse/pull/64847) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). +* По умолчанию использовать базу данных `Atomic` в `clickhouse-local`. Решает пункты 1 и 5 из [#50647](https://github.com/ClickHouse/ClickHouse/issues/50647). Закрывает [#44817](https://github.com/ClickHouse/ClickHouse/issues/44817). [#68024](https://github.com/ClickHouse/ClickHouse/pull/68024) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исключения нарушают протокол HTTP, чтобы сообщить клиенту об ошибке. [#68800](https://github.com/ClickHouse/ClickHouse/pull/68800) ([Sema Checherinda](https://github.com/CheSema)). +* Регистрировать хосты, выполняющие распределённые DDL-запросы, путём создания `replica_dir` и пометки реплик как активных в `DDLWorker`. [#69658](https://github.com/ClickHouse/ClickHouse/pull/69658) ([tuanpach](https://github.com/tuanpach)). +* Ожидать только активные реплики при выполнении запросов `ON CLUSTER` к базе данных, если `distributed_ddl_output_mode` имеет значение *_only_active. [#69660](https://github.com/ClickHouse/ClickHouse/pull/69660) ([tuanpach](https://github.com/tuanpach)). +* Улучшена обработка ошибок и отмена резервных копий и восстановлений `ON CLUSTER`: - Если резервное копирование или восстановление завершается ошибкой на одном хосте, оно будет автоматически отменено на других хостах - Не должны возникать странные ошибки из‑за того, что на одних хостах операция завершилась с ошибкой, пока другие продолжали работу - Если резервное копирование или восстановление отменяется на одном хосте, оно будет автоматически отменено на других хостах - Исправлены проблемы с `test_disallow_concurrency` — теперь отключение параллельного выполнения должно работать лучше - Операции резервного копирования и восстановления теперь значительно устойчивее к разрывам соединения с ZooKeeper. [#70027](https://github.com/ClickHouse/ClickHouse/pull/70027) ([Vitaly Baranov](https://github.com/vitlibar)). +* Добавлена поддержка `ALTER TABLE ... MODIFY/RESET SETTING ...` для отдельных настроек в хранилище S3Queue. [#70811](https://github.com/ClickHouse/ClickHouse/pull/70811) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Добавлена возможность перезагружать клиентские сертификаты аналогично процедуре перезагрузки серверных сертификатов. [#70997](https://github.com/ClickHouse/ClickHouse/pull/70997) ([Roman Antonov](https://github.com/Romeo58rus)). +* Сделали размер истории клиента настраиваемым и увеличили его значение по умолчанию. [#71014](https://github.com/ClickHouse/ClickHouse/pull/71014) ([Jiří Kozlovský](https://github.com/jirislav)). +* Поддержка булевых типов данных для нативного Parquet-ридера. [#71055](https://github.com/ClickHouse/ClickHouse/pull/71055) ([Arthur Passos](https://github.com/arthurpassos)). +* Расширен перечень ошибок, при которых выполняются повторные попытки при взаимодействии с S3, например «Malformed message». [#71088](https://github.com/ClickHouse/ClickHouse/pull/71088) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Уменьшен уровень логирования некоторых сообщений о S3. [#71090](https://github.com/ClickHouse/ClickHouse/pull/71090) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена поддержка записи файлов HDFS с пробелами в именах. [#71105](https://github.com/ClickHouse/ClickHouse/pull/71105) ([exmy](https://github.com/exmy)). +* Введены настройки, ограничивающие число реплицируемых таблиц, словарей и представлений. [#71179](https://github.com/ClickHouse/ClickHouse/pull/71179) ([Kirill](https://github.com/kirillgarbar)). +* Используйте `AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE` вместо `AWS_CONTAINER_AUTHORIZATION_TOKEN`, если он доступен. Исправляет [#71074](https://github.com/ClickHouse/ClickHouse/issues/71074). [#71269](https://github.com/ClickHouse/ClickHouse/pull/71269) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Удалено создание узла ZooKeeper `metadata_version` в потоке перезапуска ReplicatedMergeTree. Единственный сценарий, в котором нужно создавать этот узел, — когда пользователь обновился с версии более ранней, чем 20.4, напрямую на версию новее 24.10. ClickHouse не поддерживает обновления, охватывающие период более года, поэтому вместо создания узла следует генерировать исключение и просить пользователя обновляться поэтапно. [#71385](https://github.com/ClickHouse/ClickHouse/pull/71385) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Добавлены дашборды по хостам `Overview (host)` и `Cloud overview (host)` в расширенный дашборд. [#71422](https://github.com/ClickHouse/ClickHouse/pull/71422) ([alesapin](https://github.com/alesapin)). +* `clickhouse-local` по умолчанию использует неявный SELECT, что позволяет применять его как калькулятор. Улучшена подсветка синтаксиса для режима неявного SELECT. [#71620](https://github.com/ClickHouse/ClickHouse/pull/71620) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Приложения командной строки будут подсвечивать синтаксис даже для нескольких команд SQL. [#71622](https://github.com/ClickHouse/ClickHouse/pull/71622) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Консольные приложения теперь возвращают ненулевые коды выхода при ошибках. В предыдущих версиях приложение `disks` возвращало ноль при ошибках, а другие приложения возвращали ноль для ошибок 256 (`PARTITION_ALREADY_EXISTS`) и 512 (`SET_NON_GRANTED_ROLE`). [#71623](https://github.com/ClickHouse/ClickHouse/pull/71623) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* При указании пользователя/группы по ID команда `clickhouse su` завершалась с ошибкой. Этот патч исправляет это, добавляя поддержку формата `UID:GID`. [#71626](https://github.com/ClickHouse/ClickHouse/pull/71626) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Позволяет отключить увеличение размера буфера памяти для кэша файловой системы с помощью настройки `filesystem_cache_prefer_bigger_buffer_size`. [#71640](https://github.com/ClickHouse/ClickHouse/pull/71640) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Добавлена отдельная настройка `background_download_max_file_segment_size` для задания максимального размера сегмента файла при фоновой загрузке в файловом кэше. [#71648](https://github.com/ClickHouse/ClickHouse/pull/71648) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Слегка улучшен разбор типов JSON: если текущий блок для JSON-пути содержит значения разных типов, выполняется попытка выбрать наиболее подходящий тип, перебирая варианты в специальном порядке best-effort. [#71785](https://github.com/ClickHouse/ClickHouse/pull/71785) ([Pavel Kruglov](https://github.com/Avogar)). +* Ранее при чтении из `system.asynchronous_metrics` выполнялось ожидание завершения конкурентного обновления. Это могло занимать много времени, если система находилась под высокой нагрузкой. С этим изменением ранее собранные значения теперь всегда можно прочитать. [#71798](https://github.com/ClickHouse/ClickHouse/pull/71798) ([Alexander Gololobov](https://github.com/davenger)). +* S3Queue и AzureQueue: значения `polling_max_timeout_ms` установлены на 10 минут, `polling_backoff_ms` — на 30 секунд. [#71817](https://github.com/ClickHouse/ClickHouse/pull/71817) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Обновлять `HostResolver` три раза за период `history`. [#71863](https://github.com/ClickHouse/ClickHouse/pull/71863) ([Sema Checherinda](https://github.com/CheSema)). +* На HTML-странице расширенного дашборда добавлен выпадающий список для выбора дашборда из таблицы `system.dashboards`. [#72081](https://github.com/ClickHouse/ClickHouse/pull/72081) ([Sergei Trifonov](https://github.com/serxa)). +* Проверять наличие базы данных по умолчанию после авторизации. Устраняет проблему [#71097](https://github.com/ClickHouse/ClickHouse/issues/71097). [#71140](https://github.com/ClickHouse/ClickHouse/pull/71140) ([Konstantin Bogdanov](https://github.com/thevar1able)). + +#### Исправление ошибки (ошибка, приводящая к заметному для пользователя некорректному поведению в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-1} + +* Части, дедуплицированные во время запроса `ATTACH PART`, больше не остаются с префиксом `attaching_`. [#65636](https://github.com/ClickHouse/ClickHouse/pull/65636) ([Kirill](https://github.com/kirillgarbar)). +* Исправлена ошибка, приводившая к потере точности `DateTime64` при использовании функции `IN`. [#67230](https://github.com/ClickHouse/ClickHouse/pull/67230) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Исправлена потенциальная логическая ошибка при использовании функций с `IGNORE/RESPECT NULLS` в `ORDER BY ... WITH FILL`, закрыт [#57609](https://github.com/ClickHouse/ClickHouse/issues/57609). [#68234](https://github.com/ClickHouse/ClickHouse/pull/68234) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Исправлены редкие логические ошибки при асинхронных вставках с форматом `Native` при достижении предела памяти. [#68965](https://github.com/ClickHouse/ClickHouse/pull/68965) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлен COMMENT в CREATE TABLE для столбца EPHEMERAL. [#70458](https://github.com/ClickHouse/ClickHouse/pull/70458) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Исправлена логическая ошибка в функции JSONExtract с LowCardinality(Nullable). [#70549](https://github.com/ClickHouse/ClickHouse/pull/70549) ([Pavel Kruglov](https://github.com/Avogar)). +* Разрешено выполнение команды SYSTEM DROP REPLICA с параметром zkpath, если существует другая реплика с тем же zkpath. [#70642](https://github.com/ClickHouse/ClickHouse/pull/70642) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* Исправлены аварийное завершение работы и утечка памяти в AggregateFunctionGroupArraySorted. [#70820](https://github.com/ClickHouse/ClickHouse/pull/70820) ([Michael Kolupaev](https://github.com/al13n321)). +* Добавлена возможность переопределять Content-Type с помощью пользовательских HTTP‑заголовков в URL-движке. [#70859](https://github.com/ClickHouse/ClickHouse/pull/70859) ([Artem Iurin](https://github.com/ortyomka)). +* Исправлена логическая ошибка в `StorageS3Queue`, вызывавшая сообщение «Cannot create a persistent node in /processed since it already exists». [#70984](https://github.com/ClickHouse/ClickHouse/pull/70984) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлена проблема, из-за которой в некоторых случаях именованные сессии могли не закрываться и зависать бесконечно. [#70998](https://github.com/ClickHouse/ClickHouse/pull/70998) ([Márcio Martins](https://github.com/marcio-absmartly)). +* Исправлена ошибка, из-за которой при использовании опции `rebuild` для легковесного удаления проекции не учитывался столбец `_row_exists`. [#71089](https://github.com/ClickHouse/ClickHouse/pull/71089) ([Shichao Jin](https://github.com/jsc0218)). +* Исправлена проблема `AT_* is out of range` при работе под управлением Oracle Linux UEK 6.10. [#71109](https://github.com/ClickHouse/ClickHouse/pull/71109) ([Örjan Fors](https://github.com/op)). +* Исправлено некорректное значение в system.query_metric_log из-за неожиданной гонки состояний. [#71124](https://github.com/ClickHouse/ClickHouse/pull/71124) ([Pablo Marcos](https://github.com/pamarcos)). +* Исправлено несоответствие в названии агрегатной функции quantileExactWeightedInterpolated. Ошибка появилась в [https://github.com/ClickHouse/ClickHouse/pull/69619](https://github.com/ClickHouse/ClickHouse/pull/69619). cc @Algunenano. [#71168](https://github.com/ClickHouse/ClickHouse/pull/71168) ([李扬](https://github.com/taiyang-li)). +* Исправлена ошибка, приводившая к исключению bad_weak_ptr при сравнении функций с Dynamic. [#71183](https://github.com/ClickHouse/ClickHouse/pull/71183) ([Pavel Kruglov](https://github.com/Avogar)). +* Теперь проверяется, что читаемый файл 7z находится на локальной машине. [#71184](https://github.com/ClickHouse/ClickHouse/pull/71184) ([Daniil Ivanik](https://github.com/divanik)). +* Исправлено игнорирование настроек формата при использовании формата Native через HTTP и Async Inserts. [#71193](https://github.com/ClickHouse/ClickHouse/pull/71193) ([Pavel Kruglov](https://github.com/Avogar)). +* Запросы SELECT, выполняемые с настройкой `use_query_cache = 1`, больше не отклоняются, если имя системной таблицы используется в виде строкового литерала, например: `SELECT * FROM users WHERE name = 'system.metrics' SETTINGS use_query_cache = true;` теперь работает. [#71254](https://github.com/ClickHouse/ClickHouse/pull/71254) ([Robert Schulze](https://github.com/rschu1ze)). +* Исправлена ошибка, приводившая к росту потребления памяти при enable_filesystem_cache=1, если диск в конфигурации хранилища не имел настроек кэша. [#71261](https://github.com/ClickHouse/ClickHouse/pull/71261) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлена возможная ошибка «Cannot read all data» при десериализации словаря LowCardinality из столбца типа Dynamic. [#71299](https://github.com/ClickHouse/ClickHouse/pull/71299) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена проблема неполной очистки параллельного формата вывода в клиенте. [#71304](https://github.com/ClickHouse/ClickHouse/pull/71304) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлено отсутствие снятия экранирования в именованных коллекциях. Без этого исправления clickhouse-server не может запуститься. [#71308](https://github.com/ClickHouse/ClickHouse/pull/71308) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* Исправлена проблема асинхронных вставок с пустыми блоками через нативный протокол. [#71312](https://github.com/ClickHouse/ClickHouse/pull/71312) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлено неконсистентное форматирование AST при выдаче некорректных wildcard‑привилегий [#71309](https://github.com/ClickHouse/ClickHouse/issues/71309). [#71332](https://github.com/ClickHouse/ClickHouse/pull/71332) ([pufit](https://github.com/pufit)). +* Добавлен блок try/catch в деструкторы частей данных, чтобы избежать вызова std::terminate. [#71364](https://github.com/ClickHouse/ClickHouse/pull/71364) ([alesapin](https://github.com/alesapin)). +* Проверять подозрительные и экспериментальные типы в подсказках типов JSON. [#71369](https://github.com/ClickHouse/ClickHouse/pull/71369) ([Pavel Kruglov](https://github.com/Avogar)). +* Запускать поток управления памятью и на ОС, отличных от Linux (исправляет [#71051](https://github.com/ClickHouse/ClickHouse/issues/71051)). [#71384](https://github.com/ClickHouse/ClickHouse/pull/71384) ([Alexandre Snarskii](https://github.com/snar)). +* Исправлена ошибка `Invalid number of rows in Chunk` для столбца Variant. [#71388](https://github.com/ClickHouse/ClickHouse/pull/71388) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена ошибка column "attgenerated" does not exist в более старых версиях PostgreSQL, см. [#60651](https://github.com/ClickHouse/ClickHouse/issues/60651). [#71396](https://github.com/ClickHouse/ClickHouse/pull/71396) ([0xMihalich](https://github.com/0xMihalich)). +* Чтобы не засорять серверные логи, неудачные попытки аутентификации теперь записываются на уровне `DEBUG` вместо `ERROR`. [#71405](https://github.com/ClickHouse/ClickHouse/pull/71405) ([Robert Schulze](https://github.com/rschu1ze)). +* Исправлено падение в табличной функции `mongodb` при передаче некорректных аргументов (например, `NULL`). [#71426](https://github.com/ClickHouse/ClickHouse/pull/71426) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Исправлено падение при использовании optimize_rewrite_array_exists_to_has. [#71432](https://github.com/ClickHouse/ClickHouse/pull/71432) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлено использование настройки `max_insert_delayed_streams_for_parallel_write` при вставках. Ранее она работала некорректно, что могло приводить к высокому потреблению памяти при вставках, записывающих данные в несколько партиций. [#71474](https://github.com/ClickHouse/ClickHouse/pull/71474) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлена возможная ошибка вида `Argument for function must be constant` (старый анализатор) в случае, когда arrayJoin может появиться в условии `WHERE`. Регрессия, появившаяся после [https://github.com/ClickHouse/ClickHouse/pull/65414](https://github.com/ClickHouse/ClickHouse/pull/65414). [#71476](https://github.com/ClickHouse/ClickHouse/pull/71476) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Предотвращён сбой в SortCursor при отсутствии столбцов (старый анализатор). [#71494](https://github.com/ClickHouse/ClickHouse/pull/71494) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлен выход значения типа Date32 за допустимый диапазон, вызванный неинициализированными данными ORC. Для получения дополнительной информации см. [https://github.com/apache/incubator-gluten/issues/7823](https://github.com/apache/incubator-gluten/issues/7823). [#71500](https://github.com/ClickHouse/ClickHouse/pull/71500) ([李扬](https://github.com/taiyang-li)). +* Исправлен подсчёт размера столбца в широкой части для типов Dynamic и JSON. [#71526](https://github.com/ClickHouse/ClickHouse/pull/71526) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена ошибка анализатора для случая, когда запрос внутри materialized view использует IN с CTE. Закрывает [#65598](https://github.com/ClickHouse/ClickHouse/issues/65598). [#71538](https://github.com/ClickHouse/ClickHouse/pull/71538) ([Maksim Kita](https://github.com/kitaisreal)). +* Исправлен сбой при использовании UDF в ограничении. [#71541](https://github.com/ClickHouse/ClickHouse/pull/71541) ([Raúl Marín](https://github.com/Algunenano)). +* Возвращать 0 или символ по умолчанию вместо выбрасывания ошибки в функциях bitShift при выходе за пределы допустимого диапазона. [#71580](https://github.com/ClickHouse/ClickHouse/pull/71580) ([Pablo Marcos](https://github.com/pamarcos)). +* Исправлено падение сервера при использовании materialized view с некоторыми движками. [#71593](https://github.com/ClickHouse/ClickHouse/pull/71593) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* Операция ARRAY JOIN с вложенной структурой данных, содержащей алиас на константный массив, приводила к разыменованию нулевого указателя. Это закрывает [#71677](https://github.com/ClickHouse/ClickHouse/issues/71677). [#71678](https://github.com/ClickHouse/ClickHouse/pull/71678) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлена ошибка LOGICAL_ERROR при выполнении ALTER с пустым кортежем. Это исправляет [#71647](https://github.com/ClickHouse/ClickHouse/issues/71647). [#71679](https://github.com/ClickHouse/ClickHouse/pull/71679) ([Amos Bird](https://github.com/amosbird)). +* Не преобразовывать константный Set в предикатах по столбцам партиций при использовании оператора NOT IN. [#71695](https://github.com/ClickHouse/ClickHouse/pull/71695) ([Eduard Karacharov](https://github.com/korowa)). +* Исправлено сообщение журнала о сбое скрипта инициализации Docker, чтобы сделать его более понятным. [#71734](https://github.com/ClickHouse/ClickHouse/pull/71734) ([Андрей](https://github.com/andreineustroev)). +* Исправлено приведение типа (`CAST`) из `LowCardinality(Nullable)` к `Dynamic`. Ранее это могло приводить к ошибке `Bad cast from type DB::ColumnVector to DB::ColumnNullable`. [#71742](https://github.com/ClickHouse/ClickHouse/pull/71742) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлено исключение, возникавшее при использовании `toDayOfWeek` в условии WHERE с первичным ключом типа `DateTime64`. [#71849](https://github.com/ClickHouse/ClickHouse/pull/71849) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Исправлено заполнение значений по умолчанию после разбора в разреженные столбцы. [#71854](https://github.com/ClickHouse/ClickHouse/pull/71854) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлена ошибка функции GROUPING при использовании ALIAS в distributed таблице, закрыт [#68602](https://github.com/ClickHouse/ClickHouse/issues/68602). [#71855](https://github.com/ClickHouse/ClickHouse/pull/71855) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Исправлено возможное аварийное завершение работы при использовании `allow_experimental_join_condition`, закрыта [#71693](https://github.com/ClickHouse/ClickHouse/issues/71693). [#71857](https://github.com/ClickHouse/ClickHouse/pull/71857) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Исправлены операторы `SELECT` с предложением `WITH TIES`, которые могли возвращать недостаточное количество строк. [#71886](https://github.com/ClickHouse/ClickHouse/pull/71886) ([wxybear](https://github.com/wxybear)). +* Исправлено исключение TOO_LARGE_ARRAY_SIZE, возникавшее, когда столбец при вычислении arrayWithConstant ошибочно считался превышающим ограничение размера массива. [#71894](https://github.com/ClickHouse/ClickHouse/pull/71894) ([Udi](https://github.com/udiz)). +* `clickhouse-benchmark` сообщал некорректные значения метрик для запросов, выполнявшихся дольше одной секунды. [#71898](https://github.com/ClickHouse/ClickHouse/pull/71898) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлено состояние гонки между индикатором прогресса и таблицей прогресса в clickhouse-client. Эта проблема проявляется при использовании оператора FROM INFILE. Во время выполнения запросов INSERT теперь перехватываются нажатия клавиш для переключения отображения таблицы прогресса. [#71901](https://github.com/ClickHouse/ClickHouse/pull/71901) ([Julia Kartseva](https://github.com/jkartseva)). +* Используются вспомогательные Keeper-узлы для автообнаружения кластера. [#71911](https://github.com/ClickHouse/ClickHouse/pull/71911) ([Anton Ivashkin](https://github.com/ianton-ru)). +* Исправлен столбец rows_processed в таблице system.s3/azure_queue_log, некорректно работавший в версии 24.6. Закрывает [#69975](https://github.com/ClickHouse/ClickHouse/issues/69975). [#71946](https://github.com/ClickHouse/ClickHouse/pull/71946) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлена ошибка, из-за которой функции `s3`/`s3Cluster` могли возвращать неполный результат или выбрасывать исключение. Она возникала при использовании glob-шаблона в s3 URI (например, `pattern/*`) при наличии пустого объекта с ключом `pattern/` (такие объекты автоматически создаются консолью S3). Также значение по умолчанию для настройки `s3_skip_empty_files` изменено с `false` на `true`. [#71947](https://github.com/ClickHouse/ClickHouse/pull/71947) ([Nikita Taranov](https://github.com/nickitat)). +* Исправлено падение clickhouse-client при подсветке синтаксиса. Закрывает [#71864](https://github.com/ClickHouse/ClickHouse/issues/71864). [#71949](https://github.com/ClickHouse/ClickHouse/pull/71949) ([Nikolay Degterinsky](https://github.com/evillique)). +* Исправлена ошибка `Illegal type` для таблиц `MergeTree` с бинарной монотонной функцией в `ORDER BY` при константном первом аргументе. Исправляет [#71941](https://github.com/ClickHouse/ClickHouse/issues/71941). [#71966](https://github.com/ClickHouse/ClickHouse/pull/71966) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Допускаются только запросы SELECT в `EXPLAIN AST`, используемом внутри подзапроса. Любые другие типы запросов приводят к логической ошибке: 'Bad cast from type DB::ASTCreateQuery to DB::ASTSelectWithUnionQuery' или `Inconsistent AST formatting`. [#71982](https://github.com/ClickHouse/ClickHouse/pull/71982) ([Pavel Kruglov](https://github.com/Avogar)). +* При вставке записи через `clickhouse-client` клиент считывает описания столбцов с сервера. Однако была ошибка: мы записывали описания в неправильном порядке, хотя он должен быть таким: [statistics, ttl, settings]. [#71991](https://github.com/ClickHouse/ClickHouse/pull/71991) ([Han Fei](https://github.com/hanfei1991)). +* Исправлено форматирование ALTER-команд `MOVE PARTITION ... TO TABLE ...` при включённой опции `format_alter_commands_with_parentheses`. [#72080](https://github.com/ClickHouse/ClickHouse/pull/72080) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Исправлены операции RIGHT / FULL JOIN в запросах с параллельными репликами. Теперь операции RIGHT JOIN могут выполняться с параллельными репликами (чтение правой таблицы распределяется между ними). Операции FULL JOIN по-прежнему не могут быть распараллелены между узлами и выполняются локально. [#71162](https://github.com/ClickHouse/ClickHouse/pull/71162) ([Igor Nikonov](https://github.com/devcrafter)). +* Исправлена проблема, из-за которой ClickHouse в Docker-контейнерах выводил сообщение "get_mempolicy: Operation not permitted" в stderr из-за ограничений на системные вызовы. [#70900](https://github.com/ClickHouse/ClickHouse/pull/70900) ([filimonov](https://github.com/filimonov)). +* Исправлена запись metadata_version в ZooKeeper в потоке перезапуска, а не в attach-потоке. [#70297](https://github.com/ClickHouse/ClickHouse/pull/70297) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Это исправление проблемы с репликацией «zero-copy», которая не поддерживается и будет полностью удалена. Не удаляйте blob-объект, если есть узлы, использующие его в ReplicatedMergeTree с репликацией zero-copy. [#71186](https://github.com/ClickHouse/ClickHouse/pull/71186) ([Antonio Andelic](https://github.com/antonio2368)). +* Это исправление для репликации «zero-copy», которая не поддерживается и будет полностью удалена. Добавлено получение общей блокировки zero-copy перед перемещением парта на диск zero-copy, чтобы предотвратить возможную потерю данных, если Keeper недоступен. [#71845](https://github.com/ClickHouse/ClickHouse/pull/71845) ([Aleksei Filatov](https://github.com/aalexfvk)). + +### Релиз ClickHouse 24.10 от 31.10.2024. [Презентация](https://presentations.clickhouse.com/2024-release-24.10/), [Видео](https://www.youtube.com/watch?v=AamIAjURp4U) {#a-id2410a-clickhouse-release-2410-2024-10-31} + + + +#### Обратное несовместимое изменение {#backward-incompatible-change-2} + +* Разрешена запись `SETTINGS` перед `FORMAT` в цепочке запросов с `UNION`, если подзапросы заключены в круглые скобки. Это закрывает [#39712](https://github.com/ClickHouse/ClickHouse/issues/39712). Изменено поведение в случае, когда в запросе клауза SETTINGS указана дважды в последовательности. Ближайшая клауза SETTINGS будет иметь приоритет и применяться к соответствующему подзапросу. В предыдущих версиях внешняя клауза SETTINGS могла иметь приоритет над внутренней. [#68614](https://github.com/ClickHouse/ClickHouse/pull/68614) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Перестановка условий фильтрации в клаузе `[PRE]WHERE` теперь по умолчанию разрешена. Это можно отключить, установив `allow_reorder_prewhere_conditions` в `false`. [#70657](https://github.com/ClickHouse/ClickHouse/pull/70657) ([Nikita Taranov](https://github.com/nickitat)). +* Удалена библиотека `idxd-config`, имеющая несовместимую лицензию. Это также удаляет экспериментальный кодек Intel DeflateQPL. [#70987](https://github.com/ClickHouse/ClickHouse/pull/70987) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + +#### Новая возможность {#new-feature-2} + +* Добавлена возможность предоставлять доступ к префиксам с подстановочными символами. `GRANT SELECT ON db.table_pefix_* TO user`. [#65311](https://github.com/ClickHouse/ClickHouse/pull/65311) ([pufit](https://github.com/pufit)). +* Если во время выполнения запроса нажать пробел, клиент отобразит интерактивную таблицу с подробными метриками. Её можно включить глобально с помощью новой опции `--progress-table` в clickhouse-client; новая опция `--enable-progress-table-toggle` связана с `--progress-table` и позволяет переключать отображение таблицы прогресса сочетанием клавиш Ctrl+Пробел. [#63689](https://github.com/ClickHouse/ClickHouse/pull/63689) ([Maria Khristenko](https://github.com/mariaKhr)), [#70423](https://github.com/ClickHouse/ClickHouse/pull/70423) ([Julia Kartseva](https://github.com/jkartseva)). +* Позволяет кэшировать файлы при чтении из движков таблиц объектного хранилища и озер данных, используя хеш, вычисленный по ETag и пути к файлу, в качестве ключа кэша. [#70135](https://github.com/ClickHouse/ClickHouse/pull/70135) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Поддержка создания таблицы с помощью запроса `CREATE TABLE ... CLONE AS ...`. Запрос клонирует схему исходной таблицы, а затем присоединяет все партиции к новой таблице. Эта возможность поддерживается только для таблиц семейства `MergeTree`. Закрывает [#65015](https://github.com/ClickHouse/ClickHouse/issues/65015). [#69091](https://github.com/ClickHouse/ClickHouse/pull/69091) ([tuanpach](https://github.com/tuanpach)). +* Добавлена новая системная таблица `system.query_metric_log`, которая содержит историю значений использования памяти и метрик из таблицы `system.events` для отдельных запросов; данные периодически сбрасываются на диск. [#66532](https://github.com/ClickHouse/ClickHouse/pull/66532) ([Pablo Marcos](https://github.com/pamarcos)). +* Простой запрос SELECT можно записать с использованием неявного SELECT, чтобы включить выражения в стиле калькулятора, например `ch "1 + 2"`. Это контролируется новой настройкой `implicit_select`. [#68502](https://github.com/ClickHouse/ClickHouse/pull/68502) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена поддержка режима `--copy` для `clickhouse local` как сокращения для преобразования форматов [#68503](https://github.com/ClickHouse/ClickHouse/issues/68503). [#68583](https://github.com/ClickHouse/ClickHouse/pull/68583) ([Denis Hananein](https://github.com/denis-hananein)). +* Добавлена встроенная HTML-страница для визуализации слияний, доступная по адресу `/merges`. [#70821](https://github.com/ClickHouse/ClickHouse/pull/70821) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена поддержка функции `arrayUnion`. [#68989](https://github.com/ClickHouse/ClickHouse/pull/68989) ([Peter Nguyen](https://github.com/petern48)). +* Добавлена поддержка параметризованных SQL-псевдонимов. [#50665](https://github.com/ClickHouse/ClickHouse/pull/50665) ([Anton Kozlov](https://github.com/tonickkozlov)). +* Новая агрегатная функция `quantileExactWeightedInterpolated` — интерполированная версия, основанная на `quantileExactWeighted`. Некоторые могут задаться вопросом, зачем нужна новая `quantileExactWeightedInterpolated`, если у нас уже есть `quantileExactInterpolatedWeighted`. Дело в том, что новая функция обеспечивает более высокую точность по сравнению со старой. Это сделано для совместимости со Spark. [#69619](https://github.com/ClickHouse/ClickHouse/pull/69619) ([李扬](https://github.com/taiyang-li)). +* Новая функция `arrayElementOrNull`. Она возвращает `NULL`, если индекс массива выходит за допустимые границы или ключ в Map не найден. [#69646](https://github.com/ClickHouse/ClickHouse/pull/69646) ([李扬](https://github.com/taiyang-li)). +* Позволяет пользователям задавать регулярные выражения с помощью новых полей `message_regexp` и `message_regexp_negative` в файле `config.xml` для отфильтровывания логов. Логирование применяется к отформатированному тексту без раскраски для максимально интуитивного восприятия разработчиками. [#69657](https://github.com/ClickHouse/ClickHouse/pull/69657) ([Peter Nguyen](https://github.com/petern48)). +* Добавлена функция `RIPEMD160`, которая вычисляет криптографический хэш RIPEMD-160 от строки. Пример: `SELECT HEX(RIPEMD160('The quick brown fox jumps over the lazy dog'))` возвращает `37F332F68DB77BD9D7EDD4969571AD671CF9DD3B`. [#70087](https://github.com/ClickHouse/ClickHouse/pull/70087) ([Dergousov Maxim](https://github.com/m7kss1)). +* Поддержка чтения таблиц `Iceberg` из `HDFS`. [#70268](https://github.com/ClickHouse/ClickHouse/pull/70268) ([flynn](https://github.com/ucasfl)). +* Поддержка CTE в виде `WITH ... INSERT`, тогда как ранее была доступна только конструкция `INSERT ... WITH ...`. [#70593](https://github.com/ClickHouse/ClickHouse/pull/70593) ([Shichao Jin](https://github.com/jsc0218)). +* Интеграция с MongoDB: поддержка всех типов MongoDB, поддержка команд WHERE и ORDER BY на стороне MongoDB, ограничения на выражения, не поддерживаемые MongoDB. Обратите внимание, что новая интеграция по умолчанию отключена; чтобы использовать её, установите параметр `` в значение `false` в конфигурации сервера. [#63279](https://github.com/ClickHouse/ClickHouse/pull/63279) ([Kirill Nikiforov](https://github.com/allmazz)). +* Добавлена новая функция `getSettingOrDefault`, которая возвращает значение по умолчанию и не выбрасывает исключение, если пользовательская настройка не найдена в текущем профиле. [#69917](https://github.com/ClickHouse/ClickHouse/pull/69917) ([Shankar](https://github.com/shiyer7474)). + +#### Экспериментальная функциональность {#experimental-feature-1} + +* Refreshable materialized views готовы для промышленной эксплуатации. [#70550](https://github.com/ClickHouse/ClickHouse/pull/70550) ([Michael Kolupaev](https://github.com/al13n321)). Refreshable materialized views теперь поддерживаются в реплицируемых базах данных. [#60669](https://github.com/ClickHouse/ClickHouse/pull/60669) ([Michael Kolupaev](https://github.com/al13n321)). +* Параллельные реплики переведены из экспериментального состояния в бета-версию. Переработаны настройки, управляющие поведением алгоритмов параллельных реплик. Краткое напоминание: в ClickHouse есть четыре различных алгоритма параллельного чтения с участием нескольких реплик, что отражено в настройке `parallel_replicas_mode`, значение по умолчанию для неё — `read_tasks`. Дополнительно добавлена настройка-переключатель `enable_parallel_replicas`. [#63151](https://github.com/ClickHouse/ClickHouse/pull/63151) ([Alexey Milovidov](https://github.com/alexey-milovidov)), ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Добавлена поддержка типа `Dynamic` в большинстве функций за счёт выполнения их над внутренними типами внутри `Dynamic`. [#69691](https://github.com/ClickHouse/ClickHouse/pull/69691) ([Pavel Kruglov](https://github.com/Avogar)). +* Добавлена возможность читать/писать тип `JSON` как бинарную строку в формате `RowBinary` при использовании настроек `input_format_binary_read_json_as_string/output_format_binary_write_json_as_string`. [#70288](https://github.com/ClickHouse/ClickHouse/pull/70288) ([Pavel Kruglov](https://github.com/Avogar)). +* Добавлена возможность сериализовать/десериализовать столбец `JSON` как один столбец типа String в формате Native. Для вывода используйте настройку `output_format_native_write_json_as_string`. Для ввода используйте версию сериализации `1` перед данными столбца. [#70312](https://github.com/ClickHouse/ClickHouse/pull/70312) ([Pavel Kruglov](https://github.com/Avogar)). +* Введён специальный (экспериментальный) режим селектора слияний для таблиц MergeTree, который делает его более агрессивным для партиций, близких к ограничению по количеству частей. Он управляется настройкой уровня MergeTree `merge_selector_use_blurry_base`. [#70645](https://github.com/ClickHouse/ClickHouse/pull/70645) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Реализован универсальный механизм сериализации/десериализации (ser/de) между типами `Union` в Avro и `Variant` в ClickHouse. Закрывает задачу [#69713](https://github.com/ClickHouse/ClickHouse/issues/69713). [#69712](https://github.com/ClickHouse/ClickHouse/pull/69712) ([Jiří Kozlovský](https://github.com/jirislav)). + +#### Улучшения производительности {#performance-improvement-2} + +* Выполнен рефакторинг `IDisk` и `IObjectStorage` для повышения производительности. Таблицы из хранилищ объектов `plain` и `plain_rewritable` будут инициализироваться быстрее. [#68146](https://github.com/ClickHouse/ClickHouse/pull/68146) ([Alexey Milovidov](https://github.com/alexey-milovidov), [Julia Kartseva](https://github.com/jkartseva)). Исключён вызов API хранилища объектов LIST при определении существования файла или директории на диске plain_rewritable, так как он может оказаться слишком дорогостоящим. [#70852](https://github.com/ClickHouse/ClickHouse/pull/70852) ([Julia Kartseva](https://github.com/jkartseva)). Снижено количество запросов к API хранилища объектов HEAD на диске plain_rewritable. [#70915](https://github.com/ClickHouse/ClickHouse/pull/70915) ([Julia Kartseva](https://github.com/jkartseva)). +* Добавлена возможность разбирать данные непосредственно в разреженные столбцы. [#69828](https://github.com/ClickHouse/ClickHouse/pull/69828) ([Anton Popov](https://github.com/CurtizJ)). +* Улучшена производительность разбора форматов с большим числом пропущенных значений (например, `JSONEachRow`). [#69875](https://github.com/ClickHouse/ClickHouse/pull/69875) ([Anton Popov](https://github.com/CurtizJ)). +* Добавлена поддержка параллельного чтения групп строк Parquet и предварительной выборки групп строк в однопоточном режиме. [#69862](https://github.com/ClickHouse/ClickHouse/pull/69862) ([LiuNeng](https://github.com/liuneng1994)). +* Добавлена поддержка minmax-индекса для `pointInPolygon`. [#62085](https://github.com/ClickHouse/ClickHouse/pull/62085) ([JackyWoo](https://github.com/JackyWoo)). +* Использовать фильтры Блума при чтении файлов Parquet. [#62966](https://github.com/ClickHouse/ClickHouse/pull/62966) ([Arthur Passos](https://github.com/arthurpassos)). +* Переименование частей без блокировок, чтобы INSERT не влиял на SELECT (из-за блокировок частей) (в нормальных условиях с `fsync_part_directory` QPS для SELECT при параллельных INSERT увеличился в 2 раза, под высокой нагрузкой эффект ещё сильнее). Обратите внимание, что сейчас это относится только к `ReplicatedMergeTree`. [#64955](https://github.com/ClickHouse/ClickHouse/pull/64955) ([Azat Khuzhin](https://github.com/azat)). +* Учитывать `ttl_only_drop_parts` при выполнении `materialize ttl`; читать только необходимые столбцы для перерасчёта TTL и удалять части, заменяя их пустой частью. [#65488](https://github.com/ClickHouse/ClickHouse/pull/65488) ([Andrey Zvonov](https://github.com/zvonand)). +* Оптимизировано создание потоков в `ThreadPool` для минимизации конкуренции за блокировки. Создание потоков теперь происходит вне критической секции, чтобы избежать задержек при планировании задач и управлении потоками в условиях высокой нагрузки. Это делает ClickHouse значительно более отзывчивым при интенсивной конкурентной нагрузке. [#68694](https://github.com/ClickHouse/ClickHouse/pull/68694) ([filimonov](https://github.com/filimonov)). +* Добавлена поддержка чтения строковых столбцов типа `LowCardinality` из `ORC`. [#69481](https://github.com/ClickHouse/ClickHouse/pull/69481) ([李扬](https://github.com/taiyang-li)). +* Используйте `LowCardinality` для `ProfileEvents` в системных журналах, таких как `part_log`, `query_views_log`, `filesystem_cache_log`. [#70152](https://github.com/ClickHouse/ClickHouse/pull/70152) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Улучшена производительность функций `fromUnixTimestamp`/`toUnixTimestamp`. [#71042](https://github.com/ClickHouse/ClickHouse/pull/71042) ([kevinyhzou](https://github.com/KevinyhZou)). +* Не отключайте неблокирующее чтение из кэша страниц для всего сервера при операциях чтения с блокирующим вводом-выводом. Это приводило к снижению производительности, когда одна из файловых систем (например, tmpfs) не поддерживала системный вызов `preadv2`, тогда как остальные поддерживали его. [#70299](https://github.com/ClickHouse/ClickHouse/pull/70299) ([Antonio Andelic](https://github.com/antonio2368)). +* `ALTER TABLE .. REPLACE PARTITION` больше не дожидается завершения мутаций и слияний, выполняющихся в других партициях. [#59138](https://github.com/ClickHouse/ClickHouse/pull/59138) ([Vasily Nemkov](https://github.com/Enmk)). +* Не выполнять проверку при синхронизации ACL из Keeper. Проверка выполняется во время создания. Это не должно иметь большого значения, но существуют установки с десятками тысяч и даже большим числом созданных пользователей, и ненужная проверка хэша может занимать много времени при запуске сервера (поскольку при запуске сервер синхронизирует все данные из Keeper). [#70644](https://github.com/ClickHouse/ClickHouse/pull/70644) ([Raúl Marín](https://github.com/Algunenano)). + +#### Улучшение {#improvement-2} + +* `CREATE TABLE AS` теперь копирует `PRIMARY KEY`, `ORDER BY` и другие аналогичные конструкции (для таблиц `MergeTree`). [#69739](https://github.com/ClickHouse/ClickHouse/pull/69739) ([sakulali](https://github.com/sakulali)). +* Поддерживается 64-битный XID в Keeper. Его можно включить с помощью конфигурационного параметра `use_xid_64`. [#69908](https://github.com/ClickHouse/ClickHouse/pull/69908) ([Antonio Andelic](https://github.com/antonio2368)). +* Аргументы командной строки для логических (Bool) настроек устанавливаются в значение true, если для аргумента не указано значение (например, `clickhouse-client --optimize_aggregation_in_order --query "SELECT 1"`). [#70459](https://github.com/ClickHouse/ClickHouse/pull/70459) ([davidtsuk](https://github.com/davidtsuk)). +* Добавлены настройки на уровне пользователя `min_free_disk_bytes_to_perform_insert` и `min_free_disk_perform_to_throw_insert`, чтобы предотвратить выполнение вставок на почти заполненные диски. [#69755](https://github.com/ClickHouse/ClickHouse/pull/69755) ([Marco Vilas Boas](https://github.com/marco-vb)). +* Встроенная документация по настройкам будет существенно более подробной и полной, чем документация на сайте. Это первый шаг к тому, чтобы документация на сайте всегда автоматически генерировалась из исходного кода. Это имеет долгосрочные последствия: - будет гарантировано наличие описания всех настроек; - не будет риска устаревших значений по умолчанию; - мы сможем генерировать эту документацию для каждой версии ClickHouse; - документация может отображаться самим сервером даже без доступа к Интернету. Документация на сайте теперь генерируется из исходного кода. [#70289](https://github.com/ClickHouse/ClickHouse/pull/70289) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Разрешено использование пустой подстроки (`needle`) в функции `replace`; поведение теперь соответствует PostgreSQL. [#69918](https://github.com/ClickHouse/ClickHouse/pull/69918) ([zhanglistar](https://github.com/zhanglistar)). +* Разрешено пустое значение параметра `needle` в функциях `replaceRegexp*`. [#70053](https://github.com/ClickHouse/ClickHouse/pull/70053) ([zhanglistar](https://github.com/zhanglistar)). +* Символические ссылки для таблиц в каталоге `data/database_name/` создаются и указывают на фактические пути к данным таблицы в соответствии с политикой хранения, а не на каталог `store/...` на диске по умолчанию. [#61777](https://github.com/ClickHouse/ClickHouse/pull/61777) ([Kirill](https://github.com/kirillgarbar)). +* При разборе поля `Enum` из `JSON` строка, содержащая целое число, будет интерпретироваться как соответствующий элемент `Enum`. Это исправляет [#65119](https://github.com/ClickHouse/ClickHouse/issues/65119). [#66801](https://github.com/ClickHouse/ClickHouse/pull/66801) ([scanhex12](https://github.com/scanhex12)). +* Разрешить выполнение `TRIM` с `LEADING` или `TRAILING` и пустой строкой как операции без эффекта. Закрывает [#67792](https://github.com/ClickHouse/ClickHouse/issues/67792). [#68455](https://github.com/ClickHouse/ClickHouse/pull/68455) ([Peter Nguyen](https://github.com/petern48)). +* Улучшена совместимость функции `cast(timestamp as String)` со Spark. [#69179](https://github.com/ClickHouse/ClickHouse/pull/69179) ([Wenzheng Liu](https://github.com/lwz9103)). +* Всегда использовать новый анализатор для вычисления константных выражений, когда `enable_analyzer` имеет значение `true`. Добавлена поддержка вычисления аргументов табличной функции `executable` без использования запроса `SELECT` для константных выражений. [#69292](https://github.com/ClickHouse/ClickHouse/pull/69292) ([Dmitry Novik](https://github.com/novikd)). +* Добавлена настройка `enable_secure_identifiers` для запрета использования идентификаторов, содержащих специальные символы. [#69411](https://github.com/ClickHouse/ClickHouse/pull/69411) ([tuanpach](https://github.com/tuanpach)). +* Добавлен параметр `show_create_query_identifier_quoting_rule` для задания поведения заключения идентификаторов в кавычки в результате запроса `SHOW CREATE TABLE`. Возможные значения: - `user_display`: когда идентификатор является ключевым словом. - `when_necessary`: когда идентификатор является одним из `{"distinct", "all", "table"}` и это может привести к неоднозначности, например для имён столбцов и атрибутов словарей. - `always`: всегда заключать идентификаторы в кавычки. [#69448](https://github.com/ClickHouse/ClickHouse/pull/69448) ([tuanpach](https://github.com/tuanpach)). +* Улучшено восстановление зависимостей объектов доступа [#69563](https://github.com/ClickHouse/ClickHouse/pull/69563) ([Vitaly Baranov](https://github.com/vitlibar)). +* Если вы запускаете `clickhouse-client` или другое CLI-приложение, и оно медленно запускается из-за перегруженного сервера, и вы начинаете набирать запрос, например `SELECT`, то в предыдущих версиях сначала отображалась оставшаяся часть эхо-вывода терминала, а уже затем приветственное сообщение, так что вы видели, например, `SELECTClickHouse local version 24.10.1.1.` вместо `ClickHouse local version 24.10.1.1.`. Теперь это исправлено. Это закрывает [#31696](https://github.com/ClickHouse/ClickHouse/issues/31696). [#69856](https://github.com/ClickHouse/ClickHouse/pull/69856) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлен новый столбец `readonly_duration` в таблицу `system.replicas`. Он необходим, чтобы можно было различать действительно `readonly`-реплики и сторожевые (`sentinel`) реплики в оповещениях. [#69871](https://github.com/ClickHouse/ClickHouse/pull/69871) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Изменен тип настройки `join_output_by_rowlist_perkey_rows_threshold` на беззнаковый целочисленный тип. [#69886](https://github.com/ClickHouse/ClickHouse/pull/69886) ([kevinyhzou](https://github.com/KevinyhZou)). +* Улучшено логирование спанов OpenTelemetry: добавлены настройки запроса. [#70011](https://github.com/ClickHouse/ClickHouse/pull/70011) ([sharathks118](https://github.com/sharathks118)). +* Добавлена диагностическая информация о функциях высшего порядка для работы с массивами, если тип результата лямбда-выражения отличается от ожидаемого. [#70093](https://github.com/ClickHouse/ClickHouse/pull/70093) ([ttanay](https://github.com/ttanay)). +* Улучшение в Keeper: меньше блокировок при изменениях кластера. [#70275](https://github.com/ClickHouse/ClickHouse/pull/70275) ([Antonio Andelic](https://github.com/antonio2368)). +* Добавить ключевые слова `WITH IMPLICIT` и `FINAL` к команде `SHOW GRANTS`. Исправить небольшую ошибку с неявными правами: [#70094](https://github.com/ClickHouse/ClickHouse/issues/70094). [#70293](https://github.com/ClickHouse/ClickHouse/pull/70293) ([pufit](https://github.com/pufit)). +* Теперь учитывается `compatibility` для настроек MergeTree. Значение `compatibility` берётся из профиля `default` при запуске сервера, и значения настроек MergeTree по умолчанию изменяются соответствующим образом. Последующие изменения настройки `compatibility` не влияют на настройки MergeTree. [#70322](https://github.com/ClickHouse/ClickHouse/pull/70322) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Не засорять логи большими телами HTTP‑ответов при ошибках межсерверного взаимодействия. [#70487](https://github.com/ClickHouse/ClickHouse/pull/70487) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Добавлена новая настройка `max_parts_to_move`, ограничивающая максимальное количество частей, которые могут быть перемещены за один раз. [#70520](https://github.com/ClickHouse/ClickHouse/pull/70520) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Ограничена частота вывода некоторых сообщений журнала. [#70601](https://github.com/ClickHouse/ClickHouse/pull/70601) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Конструкция `CHECK TABLE` с квалификатором `PART` была некорректно отформатирована в клиенте. [#70660](https://github.com/ClickHouse/ClickHouse/pull/70660) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена поддержка записи индекса столбца и индекса смещения с использованием нативного средства записи Parquet. [#70669](https://github.com/ClickHouse/ClickHouse/pull/70669) ([LiuNeng](https://github.com/liuneng1994)). +* Добавлена поддержка разбора `DateTime64` с микросекундной точностью и часовым поясом в синтаксисе joda («joda» — популярная Java-библиотека для работы с датой и временем, а «синтаксис joda» — это стиль этой библиотеки). [#70737](https://github.com/ClickHouse/ClickHouse/pull/70737) ([kevinyhzou](https://github.com/KevinyhZou)). +* Изменён подход к определению того, поддерживает ли облачное хранилище [пакетное удаление](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html) или нет. [#70786](https://github.com/ClickHouse/ClickHouse/pull/70786) ([Vitaly Baranov](https://github.com/vitlibar)). +* Поддержка страниц Parquet v2 в нативном ридере. [#70807](https://github.com/ClickHouse/ClickHouse/pull/70807) ([Arthur Passos](https://github.com/arthurpassos)). +* Добавлена проверка того, что у таблицы заданы и `storage_policy`, и `disk`. Также добавлена проверка совместимости новой политики хранения со старой при использовании настройки `disk`. [#70839](https://github.com/ClickHouse/ClickHouse/pull/70839) ([Kirill](https://github.com/kirillgarbar)). +* Добавлены `system.s3_queue_settings` и `system.azure_queue_settings`. [#70841](https://github.com/ClickHouse/ClickHouse/pull/70841) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Функции `base58Encode` и `base58Decode` теперь принимают аргументы типа `FixedString`. Пример: `SELECT base58Encode(toFixedString('plaintext', 9));`. [#70846](https://github.com/ClickHouse/ClickHouse/pull/70846) ([Faizan Patel](https://github.com/faizan2786)). +* Столбец `partition` добавлен ко всем типам записей журнала частей. Ранее он был задан только для некоторых записей. Закрывает [#70819](https://github.com/ClickHouse/ClickHouse/issues/70819). [#70848](https://github.com/ClickHouse/ClickHouse/pull/70848) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлены события `MergeStart` и `MutateStart` в `system.part_log` для анализа и визуализации слияний. [#70850](https://github.com/ClickHouse/ClickHouse/pull/70850) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлено событие профилирования, фиксирующее количество объединённых исходных частей. Это позволяет мониторить фан-аут дерева MergeTree в продакшене. [#70908](https://github.com/ClickHouse/ClickHouse/pull/70908) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Снова были включены фоновые загрузки в кэш файловой системы. [#70929](https://github.com/ClickHouse/ClickHouse/pull/70929) ([Nikita Taranov](https://github.com/nickitat)). +* Добавлен новый алгоритм выбора слияний `Trivial`, предназначенный только для профессионального использования. Он хуже, чем алгоритм выбора слияний `Simple`. [#70969](https://github.com/ClickHouse/ClickHouse/pull/70969) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Поддержка атомарного `CREATE OR REPLACE VIEW`. [#70536](https://github.com/ClickHouse/ClickHouse/pull/70536) ([tuanpach](https://github.com/tuanpach)) +* Добавлен режим `strict_once` для агрегатной функции `windowFunnel`, чтобы избежать многократного учёта одного и того же события в случае, когда оно удовлетворяет нескольким условиям, что закрывает [#21835](https://github.com/ClickHouse/ClickHouse/issues/21835). [#69738](https://github.com/ClickHouse/ClickHouse/pull/69738) ([Vladimir Cherkasov](https://github.com/vdimir)). + +#### Исправление ошибки (некорректное поведение, заметное пользователю, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-2} + +* Применяет обновления конфигурации в глобальном объекте контекста. Это исправляет такие проблемы, как [#62308](https://github.com/ClickHouse/ClickHouse/issues/62308). [#62944](https://github.com/ClickHouse/ClickHouse/pull/62944) ([Amos Bird](https://github.com/amosbird)). +* Исправлена проблема, из-за которой `ReadSettings` не использовал значения, заданные пользователем, поскольку применялись только значения по умолчанию. [#65625](https://github.com/ClickHouse/ClickHouse/pull/65625) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлена ошибка несоответствия типов в `sumMapFiltered` при использовании знаковых аргументов. [#58408](https://github.com/ClickHouse/ClickHouse/pull/58408) ([Chen768959](https://github.com/Chen768959)). +* Исправлена монотонность функций преобразования вида toHour и аналогичных при использовании необязательного аргумента часового пояса. [#60264](https://github.com/ClickHouse/ClickHouse/pull/60264) ([Amos Bird](https://github.com/amosbird)). +* Ослаблена проверка `supportsPrewhere` для таблиц `Merge`. Это исправляет [#61064](https://github.com/ClickHouse/ClickHouse/issues/61064). Эта проверка была излишне ужесточена в [#60082](https://github.com/ClickHouse/ClickHouse/issues/60082). [#61091](https://github.com/ClickHouse/ClickHouse/pull/61091) ([Amos Bird](https://github.com/amosbird)). +* Исправлена обработка настройки `use_concurrency_control` для корректного применения ограничения `concurrent_threads_soft_limit_num`. Это включает управление параллелизмом по умолчанию, поскольку ранее оно не работало. [#61473](https://github.com/ClickHouse/ClickHouse/pull/61473) ([Sergei Trifonov](https://github.com/serxa)). +* Исправлена некорректная оптимизация секции `JOIN ON` в случае проверки `IS NULL` внутри любой другой функции (например, `NOT`), что могло приводить к некорректным результатам. Закрывает [#67915](https://github.com/ClickHouse/ClickHouse/issues/67915). [#68049](https://github.com/ClickHouse/ClickHouse/pull/68049) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Теперь предотвращается выполнение запросов `ALTER`, которые могли бы сделать запрос `CREATE` таблиц недопустимым. [#68574](https://github.com/ClickHouse/ClickHouse/pull/68574) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Исправлено несогласованное форматирование AST для функций `negate` (`-`) и `NOT` с кортежами и массивами. [#68600](https://github.com/ClickHouse/ClickHouse/pull/68600) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Исправлена ошибка вставки неполного типа в `Dynamic` при десериализации. Это могло приводить к ошибкам `Parameter out of bound`. [#69291](https://github.com/ClickHouse/ClickHouse/pull/69291) ([Pavel Kruglov](https://github.com/Avogar)). +* Репликация без копирования (zero-copy replication), которая пока носит экспериментальный характер и не должна использоваться в продакшене: исправлен бесконечный цикл после выполнения `restore replica` в ReplicatedMergeTree с zero copy. [#69293](https://github.com/CljmnickHouse/ClickHouse/pull/69293) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* Вернуть значение по умолчанию параметра `processing_threads_num` в хранилище `S3Queue` — равным числу ядер CPU. [#69384](https://github.com/ClickHouse/ClickHouse/pull/69384) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Обойти использование `try/catch` при де/сериализации вложённого повторяющегося сообщения protobuf во вложенные столбцы (исправляет [#41971](https://github.com/ClickHouse/ClickHouse/issues/41971)). [#69556](https://github.com/ClickHouse/ClickHouse/pull/69556) ([Eliot Hautefeuille](https://github.com/hileef)). +* Исправлено аварийное завершение при вставке данных в столбец типа FixedString в движке PostgreSQL. [#69584](https://github.com/ClickHouse/ClickHouse/pull/69584) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлено падение при выполнении `create view t as (with recursive 42 as ttt select ttt);`. [#69676](https://github.com/ClickHouse/ClickHouse/pull/69676) ([Han Fei](https://github.com/hanfei1991)). +* Исправлена ошибка, из-за которой `maxMapState` выбрасывал 'Bad get' при типе значения DateTime64. [#69787](https://github.com/ClickHouse/ClickHouse/pull/69787) ([Michael Kolupaev](https://github.com/al13n321)). +* Исправлена обработка `getSubcolumn` со столбцами `LowCardinality` путем переопределения `useDefaultImplementationForLowCardinalityColumns` так, чтобы он возвращал `true`. [#69831](https://github.com/ClickHouse/ClickHouse/pull/69831) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Исправлена ситуация, когда при неудачном выполнении DROP distributed таблицы навсегда блокировалась отправка данных в нее. [#69843](https://github.com/ClickHouse/ClickHouse/pull/69843) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена ошибка, из-за которой запросы, содержащие WITH FILL с ключами NaN, нельзя было отменить. Исправляет [#69261](https://github.com/ClickHouse/ClickHouse/issues/69261). [#69845](https://github.com/ClickHouse/ClickHouse/pull/69845) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлено значение по умолчанию для анализатора при старом режиме совместимости. [#69895](https://github.com/ClickHouse/ClickHouse/pull/69895) ([Raúl Marín](https://github.com/Algunenano)). +* Не выполнять проверку зависимостей при CREATE OR REPLACE VIEW во время DROP старой таблицы. Ранее запрос CREATE OR REPLACE VIEW завершался с ошибкой, если существовали таблицы, зависящие от пересоздаваемого представления. [#69907](https://github.com/ClickHouse/ClickHouse/pull/69907) ([Pavel Kruglov](https://github.com/Avogar)). +* Изменения в Decimal. Исправляет [#69730](https://github.com/ClickHouse/ClickHouse/issues/69730). [#69978](https://github.com/ClickHouse/ClickHouse/pull/69978) ([Arthur Passos](https://github.com/arthurpassos)). +* Теперь DEFINER/INVOKER поддерживает параметризованные представления. [#69984](https://github.com/ClickHouse/ClickHouse/pull/69984) ([pufit](https://github.com/pufit)). +* Исправлен парсинг секции DEFINER в представлениях. [#69985](https://github.com/ClickHouse/ClickHouse/pull/69985) ([pufit](https://github.com/pufit)). +* Исправлена ошибка, при которой часовой пояс мог влиять на результат запроса с аргументами типа `Date` или `Date32`. [#70036](https://github.com/ClickHouse/ClickHouse/pull/70036) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Устраняет ошибку `Block structure mismatch` в запросах с вложенными представлениями и условием `WHERE`. Исправляет [#66209](https://github.com/ClickHouse/ClickHouse/issues/66209). [#70054](https://github.com/ClickHouse/ClickHouse/pull/70054) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Не переиспользуйте столбцы в разных именованных кортежах при вычислении функций `tuple`. Это исправляет [#70022](https://github.com/ClickHouse/ClickHouse/issues/70022). [#70103](https://github.com/ClickHouse/ClickHouse/pull/70103) ([Amos Bird](https://github.com/amosbird)). +* Исправлена некорректная генерация LOGICAL_ERROR при замене литералов в диапазонах. [#70122](https://github.com/ClickHouse/ClickHouse/pull/70122) ([Pablo Marcos](https://github.com/pamarcos)). +* Проверять наличие типа Nullable(Nothing) при выполнении ALTER TABLE MODIFY COLUMN/QUERY, чтобы не допускать таблиц с таким типом данных. [#70123](https://github.com/ClickHouse/ClickHouse/pull/70123) ([Pavel Kruglov](https://github.com/Avogar)). +* Корректное сообщение об ошибке для недопустимого запроса вида `JOIN ... ON *`, закрывает задачу [#68650](https://github.com/ClickHouse/ClickHouse/issues/68650). [#70124](https://github.com/ClickHouse/ClickHouse/pull/70124) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Исправлен неверный результат при использовании пропускающего индекса. [#70127](https://github.com/ClickHouse/ClickHouse/pull/70127) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена гонка данных в методе декомпрессии ColumnObject/ColumnTuple, которая могла приводить к обращению к памяти кучи после её освобождения. [#70137](https://github.com/ClickHouse/ClickHouse/pull/70137) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлено возможное зависание операции ALTER COLUMN с типом Dynamic. [#70144](https://github.com/ClickHouse/ClickHouse/pull/70144) ([Pavel Kruglov](https://github.com/Avogar)). +* Теперь ClickHouse будет относить большее число ошибок к временным (retriable) и не будет помечать части данных как повреждённые при таких ошибках. [#70145](https://github.com/ClickHouse/ClickHouse/pull/70145) ([alesapin](https://github.com/alesapin)). +* Теперь используется корректный параметр `max_types` при создании типа Dynamic для подстолбца JSON. [#70147](https://github.com/ClickHouse/ClickHouse/pull/70147) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена ошибка, из‑за которой пароль отображался в `system.query_log` для пользователей с методом аутентификации пароля на основе bcrypt. [#70148](https://github.com/ClickHouse/ClickHouse/pull/70148) ([Nikolay Degterinsky](https://github.com/evillique)). +* Исправлен счетчик событий для нативного интерфейса (InterfaceNativeSendBytes). [#70153](https://github.com/ClickHouse/ClickHouse/pull/70153) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Исправлен возможный сбой, связанный с JSON-столбцами. [#70172](https://github.com/ClickHouse/ClickHouse/pull/70172) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлено несколько ошибок в arrayMin и arrayMax. [#70207](https://github.com/ClickHouse/ClickHouse/pull/70207) ([Raúl Marín](https://github.com/Algunenano)). +* Учитывать настройку allow_simdjson в парсере типа данных JSON. [#70218](https://github.com/ClickHouse/ClickHouse/pull/70218) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена ошибка разыменования нулевого указателя при создании materialized view с двумя `SELECT` и оператором `INTERSECT`, например: `CREATE MATERIALIZED VIEW v0 AS (SELECT 1) INTERSECT (SELECT 1);`. [#70264](https://github.com/ClickHouse/ClickHouse/pull/70264) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Не изменяйте глобальные настройки с помощью стартовых скриптов. Ранее изменение настройки в стартовом скрипте делало это изменение глобальным. [#70310](https://github.com/ClickHouse/ClickHouse/pull/70310) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлена обработка `ALTER` для типа `Dynamic` при уменьшении параметра max_types, что могло приводить к аварийному завершению работы сервера. [#70328](https://github.com/ClickHouse/ClickHouse/pull/70328) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлено падение при некорректном использовании WITH FILL. [#70338](https://github.com/ClickHouse/ClickHouse/pull/70338) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена потенциальная ошибка использования уже освобождённой памяти в `SYSTEM DROP FORMAT SCHEMA CACHE FOR Protobuf`. [#70358](https://github.com/ClickHouse/ClickHouse/pull/70358) ([Azat Khuzhin](https://github.com/azat)). +* Исправлено падение при выполнении GROUP BY по подстолбцу подобъекта JSON. [#70374](https://github.com/ClickHouse/ClickHouse/pull/70374) ([Pavel Kruglov](https://github.com/Avogar)). +* Не выполнять предварительную выборку частей для вертикальных слияний, если в части нет строк. [#70452](https://github.com/ClickHouse/ClickHouse/pull/70452) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлен сбой в выражении WHERE при использовании lambda-функций. [#70464](https://github.com/ClickHouse/ClickHouse/pull/70464) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлено создание таблицы с помощью `CREATE ... AS table_function(...)` в базе данных `Replicated` в случае недоступности источника table function на вторичной реплике. [#70511](https://github.com/ClickHouse/ClickHouse/pull/70511) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Теперь при асинхронной вставке с `wait_for_async_insert=1` весь вывод игнорируется. Закрывает [#62644](https://github.com/ClickHouse/ClickHouse/issues/62644). [#70530](https://github.com/ClickHouse/ClickHouse/pull/70530) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Не учитывать файл frozen_metadata.txt при обходе теневого каталога из system.remote_data_paths. [#70590](https://github.com/ClickHouse/ClickHouse/pull/70590) ([Aleksei Filatov](https://github.com/aalexfvk)). +* Исправлена ошибка при создании оконных функций с состоянием на невыровненной памяти. [#70631](https://github.com/ClickHouse/ClickHouse/pull/70631) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлены редкие падения в запросах `SELECT` и при слияниях после добавления столбца типа `Array` с непустым выражением по умолчанию. [#70695](https://github.com/ClickHouse/ClickHouse/pull/70695) ([Anton Popov](https://github.com/CurtizJ)). +* Операция вставки в табличную функцию s3 теперь учитывает настройки запроса. [#70696](https://github.com/ClickHouse/ClickHouse/pull/70696) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Исправлена бесконечная рекурсия при выводе схемы protobuf при включённом пропуске неподдерживаемых полей. [#70697](https://github.com/ClickHouse/ClickHouse/pull/70697) ([Raúl Marín](https://github.com/Algunenano)). +* По умолчанию отключить enable_named_columns_in_function_tuple. [#70833](https://github.com/ClickHouse/ClickHouse/pull/70833) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена проблема, при которой настройка processing_threads_num движка таблицы S3Queue не применялась в случае, если она вычислялась на основе количества ядер CPU на сервере. [#70837](https://github.com/ClickHouse/ClickHouse/pull/70837) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Нормализованы аргументы именованных кортежей в состояниях агрегации. Это исправляет ошибку [#69732](https://github.com/ClickHouse/ClickHouse/issues/69732). [#70853](https://github.com/ClickHouse/ClickHouse/pull/70853) ([Amos Bird](https://github.com/amosbird)). +* Исправлена логическая ошибка из‑за отрицательных нулей в двухуровневой хеш-таблице, что закрывает [#70973](https://github.com/ClickHouse/ClickHouse/issues/70973). [#70979](https://github.com/ClickHouse/ClickHouse/pull/70979) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлена работа операторов `limit by` и `limit with ties` для распределённых и параллельных реплик. [#70880](https://github.com/ClickHouse/ClickHouse/pull/70880) ([Nikita Taranov](https://github.com/nickitat)). + +### Релиз ClickHouse 24.9, 2024-09-26. [Презентация](https://presentations.clickhouse.com/2024-release-24.9/), [Видео](https://www.youtube.com/watch?v=ray6wJGCHbs) {#a-id249a-clickhouse-release-249-2024-09-26} + + + +#### Обратно несовместимое изменение {#backward-incompatible-change-3} + +* Выражения вида `a[b].c` поддерживаются для именованных кортежей, а также именованная индексация из произвольных выражений, например `expr().name`. Это полезно для обработки JSON. Исправляет [#54965](https://github.com/ClickHouse/ClickHouse/issues/54965). В предыдущих версиях выражение вида `expr().name` разбиралось как `tupleElement(expr(), name)`, и анализатор запроса искал столбец `name`, а не соответствующий элемент кортежа; в новой версии это изменено на `tupleElement(expr(), 'name')`. В большинстве случаев предыдущая версия не работала, но можно представить себе крайне необычный сценарий, когда это изменение может привести к несовместимости: если вы хранили имена элементов кортежей в столбце или псевдониме, который назывался иначе, чем имя элемента кортежа: `SELECT 'b' AS a, CAST([tuple(123)] AS 'Array(Tuple(b UInt8))') AS t, t[1].a`. Маловероятно, что вы использовали такие запросы, но мы всё равно должны пометить это изменение как потенциально обратно несовместимое. [#68435](https://github.com/ClickHouse/ClickHouse/pull/68435) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Когда включена настройка `print_pretty_type_names`, тип данных `Tuple` будет выводиться в удобочитаемом виде в командах `SHOW CREATE TABLE`, функции `formatQuery`, а также в интерактивном режиме в `clickhouse-client` и `clickhouse-local`. В предыдущих версиях эта настройка применялась только к запросам `DESCRIBE` и функции `toTypeName`. Исправляет [#65753](https://github.com/ClickHouse/ClickHouse/issues/65753). [#68492](https://github.com/ClickHouse/ClickHouse/pull/68492) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Запрещено явно указывать UUID при создании таблицы в базах данных типа `Replicated`. Также запрещено явно указывать путь в Keeper и имя реплики для таблиц *MergeTree в базах данных типа Replicated. Вводится новая настройка `database_replicated_allow_explicit_uuid` и изменяется тип `database_replicated_allow_replicated_engine_arguments` с Bool на UInt64. [#66104](https://github.com/ClickHouse/ClickHouse/pull/66104) ([Alexander Tokmakov](https://github.com/tavplubix)). + +#### Новая возможность {#new-feature-3} + +* Позволяет пользователю иметь несколько методов аутентификации, а не только один. Добавляет возможность сбрасывать методы аутентификации к последнему добавленному методу. Если вы хотите какое-то время параллельно запускать экземпляры версии 24.8 и один экземпляр 24.9, на этот период лучше установить `max_authentication_methods_per_user` = 1, чтобы избежать потенциальных несовместимостей. [#65277](https://github.com/ClickHouse/ClickHouse/pull/65277) ([Arthur Passos](https://github.com/arthurpassos)). +* Добавлена поддержка операции `ATTACH PARTITION ALL FROM`. [#61987](https://github.com/ClickHouse/ClickHouse/pull/61987) ([Kirill Nikiforov](https://github.com/allmazz)). +* Добавлена настройка `input_format_json_empty_as_default`, которая при включении трактует пустые поля во входных JSON-данных как значения по умолчанию. Закрывает [#59339](https://github.com/ClickHouse/ClickHouse/issues/59339). [#66782](https://github.com/ClickHouse/ClickHouse/pull/66782) ([Alexis Arnaud](https://github.com/a-a-f)). +* Добавлены функции `overlay` и `overlayUTF8`, предназначенные для замены части строки другой строкой. Пример: `SELECT overlay('Hello New York', 'Jersey', 11)` возвращает `Hello New Jersey`. [#66933](https://github.com/ClickHouse/ClickHouse/pull/66933) ([李扬](https://github.com/taiyang-li)). +* Добавлена поддержка легковесного удаления с указанием партиции в `DELETE FROM [db.]table [ON CLUSTER cluster] [IN PARTITION partition_expr] WHERE expr;` [#67805](https://github.com/ClickHouse/ClickHouse/pull/67805) ([sunny](https://github.com/sunny19930321)). +* Реализована поддержка сравнения значений типа данных `Interval` с разными единицами измерения (такими как секунды и минуты), при котором они приводятся к наименьшему супертипу. [#68057](https://github.com/ClickHouse/ClickHouse/pull/68057) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Добавлена настройка `create_if_not_exists`, которая по умолчанию включает поведение `IF NOT EXISTS` для команд CREATE. [#68164](https://github.com/ClickHouse/ClickHouse/pull/68164) ([Peter Nguyen](https://github.com/petern48)). +* Даёт возможность читать таблицы `Iceberg` в Azure и локально. [#68210](https://github.com/ClickHouse/ClickHouse/pull/68210) ([Daniil Ivanik](https://github.com/divanik)). +* Записи кэша запросов теперь можно удалять по тегу. Например, запись кэша запросов, созданная запросом `SELECT 1 SETTINGS use_query_cache = true, query_cache_tag = 'abc'`, теперь может быть удалена с помощью `SYSTEM DROP QUERY CACHE TAG 'abc'`. [#68477](https://github.com/ClickHouse/ClickHouse/pull/68477) ([Michał Tabaszewski](https://github.com/pinsvin00)). +* Добавлено шифрование хранилища для именованных коллекций. [#68615](https://github.com/ClickHouse/ClickHouse/pull/68615) ([Pablo Marcos](https://github.com/pamarcos)). +* Добавлен виртуальный столбец `_headers` в движок таблицы `URL`. Закрыта задача [#65026](https://github.com/ClickHouse/ClickHouse/issues/65026). [#68867](https://github.com/ClickHouse/ClickHouse/pull/68867) ([flynn](https://github.com/ucasfl)). +* Добавлена таблица `system.projections` для отслеживания доступных проекций. [#68901](https://github.com/ClickHouse/ClickHouse/pull/68901) ([Jordi Villar](https://github.com/jrdi)). +* Добавлена новая функция `arrayZipUnaligned` для совместимости со Spark (в Spark она называется `arrays_zip`), которая допускает массивы разной длины и основана на исходной функции `arrayZip`. [#69030](https://github.com/ClickHouse/ClickHouse/pull/69030) ([李扬](https://github.com/taiyang-li)). +* Добавлены команды `cp`/`mv` для клиентского приложения командной строки keeper, которые атомарно копируют/перемещают узел. [#69034](https://github.com/ClickHouse/ClickHouse/pull/69034) ([Mikhail Artemenko](https://github.com/Michicosun)). +* В функцию `arrayAUC` добавлен аргумент `scale` (по умолчанию `true`), позволяющий пропустить шаг нормализации (issue [#69609](https://github.com/ClickHouse/ClickHouse/issues/69609)). [#69717](https://github.com/ClickHouse/ClickHouse/pull/69717) ([gabrielmcg44](https://github.com/gabrielmcg44)). + +#### Экспериментальная функция {#experimental-feature-2} + +* Добавлена настройка `input_format_try_infer_variants`, которая позволяет определять тип `Variant` при выводе схемы для текстовых форматов, когда существует более одного возможного типа для элементов столбца/массива. [#63798](https://github.com/ClickHouse/ClickHouse/pull/63798) ([Shaun Struwig](https://github.com/Blargian)). +* Добавлены агрегатные функции `distinctDynamicTypes`/`distinctJSONPaths`/`distinctJSONPathsAndTypes` для более удобной интроспекции содержимого типов в JSON-столбцах. [#68463](https://github.com/ClickHouse/ClickHouse/pull/68463) ([Kruglov Pavel](https://github.com/Avogar)). +* Новый алгоритм определения единицы распределения меток между параллельными репликами по согласованному хэшу. Для разных шаблонов чтения выбирается различное количество меток для улучшения производительности. [#68424](https://github.com/ClickHouse/ClickHouse/pull/68424) ([Nikita Taranov](https://github.com/nickitat)). +* Ранее алгоритмическая сложность логики дедупликации кусков (parts) при обработке объявлений от параллельных реплик была O(n^2), что могло занимать заметное время для таблиц с большим количеством кусков (или партиций). Это изменение уменьшает сложность до O(n*log(n)). [#69596](https://github.com/ClickHouse/ClickHouse/pull/69596) ([Alexander Gololobov](https://github.com/davenger)). +* Улучшения для refreshable materialized view: режим добавления (`... REFRESH EVERY 1 MINUTE APPEND ...`) для добавления строк в существующую таблицу вместо полной перезаписи таблицы, повторные попытки (по умолчанию отключены, настраиваются в секции SETTINGS запроса), запрос `SYSTEM WAIT VIEW `, который ожидает завершения текущего обновления, некоторые исправления. [#58934](https://github.com/ClickHouse/ClickHouse/pull/58934) ([Michael Kolupaev](https://github.com/al13n321)). +* Добавлен `min_max` как новый тип (экспериментальной) статистики. Он поддерживает оценку диапазонных условий над числовыми столбцами, например `x < 100`. [#67013](https://github.com/ClickHouse/ClickHouse/pull/67013) ([JackyWoo](https://github.com/JackyWoo)). +* Улучшен `castOrDefault` для столбцов Variant/Dynamic, чтобы он работал, когда вложенные типы вообще не конвертируемы. [#67150](https://github.com/ClickHouse/ClickHouse/pull/67150) ([Kruglov Pavel](https://github.com/Avogar)). +* Репликация подмножества столбцов теперь доступна через MaterializedPostgreSQL. Закрывает [#33748](https://github.com/ClickHouse/ClickHouse/issues/33748). [#69092](https://github.com/ClickHouse/ClickHouse/pull/69092) ([Kruglov Kirill](https://github.com/1on)). + +#### Повышение производительности {#performance-improvement-3} + +* Реализовано чтение только необходимых файлов для Hive-разбиения. [#68963](https://github.com/ClickHouse/ClickHouse/pull/68963) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Улучшена производительность JOIN за счёт перераспределения правой таблицы по ключам, когда ключи таблицы плотные в LEFT или INNER hash joins. [#60341](https://github.com/ClickHouse/ClickHouse/pull/60341) ([kevinyhzou](https://github.com/KevinyhZou)). +* Улучшена производительность ALL JOIN за счёт отложенного добавления списка строк. [#63677](https://github.com/ClickHouse/ClickHouse/pull/63677) ([kevinyhzou](https://github.com/KevinyhZou)). +* Асинхронная загрузка метаданных кэша файловой системы во время запуска, чтобы ускорить перезапуски (управляется настройкой `load_metadata_asynchronously`). [#65736](https://github.com/ClickHouse/ClickHouse/pull/65736) ([Daniel Pozo Escalona](https://github.com/danipozo)). +* Функции `array` и `map` оптимизированы для гораздо более быстрого выполнения некоторых распространённых случаев. [#67707](https://github.com/ClickHouse/ClickHouse/pull/67707) ([李扬](https://github.com/taiyang-li)). +* Небольшая оптимизация чтения строковых значений ORC, особенно когда столбец не содержит NULL. [#67794](https://github.com/ClickHouse/ClickHouse/pull/67794) ([李扬](https://github.com/taiyang-li)). +* Улучшена общая производительность слияний за счёт снижения накладных расходов на планирование шагов слияний. [#68016](https://github.com/ClickHouse/ClickHouse/pull/68016) ([Anton Popov](https://github.com/CurtizJ)). +* Ускорены запросы к S3, когда профиль не задан, учётные данные не заданы и IMDS недоступен (например, когда вы выполняете запрос к публичному бакету с машины вне облака). Закрывает [#52771](https://github.com/ClickHouse/ClickHouse/issues/52771). [#68082](https://github.com/ClickHouse/ClickHouse/pull/68082) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Девиртуализирован ридер формата в `RowInputFormatWithNamesAndTypes` для некоторого улучшения производительности. [#68437](https://github.com/ClickHouse/ClickHouse/pull/68437) ([李扬](https://github.com/taiyang-li)). +* Добавлено параллельное слияние для агрегатной функции `uniq` при агрегировании с группировкой по ключу для максимального использования CPU. [#68441](https://github.com/ClickHouse/ClickHouse/pull/68441) ([Jiebin Sun](https://github.com/jiebinn)). +* Добавлена настройка `output_format_orc_dictionary_key_size_threshold`, позволяющая включить словарное кодирование для строкового столбца в формате вывода `ORC`. Это помогает значительно уменьшить размер выходного файла `ORC` и существенно улучшить производительность чтения. [#68591](https://github.com/ClickHouse/ClickHouse/pull/68591) ([李扬](https://github.com/taiyang-li)). +* Добавлен новый запрос Keeper RemoveRecursive, который удаляет узел вместе со всем его поддеревом. [#69332](https://github.com/ClickHouse/ClickHouse/pull/69332) ([Mikhail Artemenko](https://github.com/Michicosun)). +* Ускорена вставка в таблицу с индексом векторного сходства за счёт параллельного добавления данных в векторный индекс. [#69493](https://github.com/ClickHouse/ClickHouse/pull/69493) ([flynn](https://github.com/ucasfl)). +* Снижено потребление памяти при вставках в JSON за счёт использования адаптивного размера буфера записи. Многие файлы, создаваемые JSON-столбцом в широкой части, содержат небольшое количество данных, и нет смысла выделять для них буфер размером 1 МБ. [#69272](https://github.com/ClickHouse/ClickHouse/pull/69272) ([Kruglov Pavel](https://github.com/Avogar)). +* Исключён возврат потока в пул потоков concurrent hash join, чтобы предотвратить чрезмерное создание потоков одним запросом. [#69406](https://github.com/ClickHouse/ClickHouse/pull/69406) ([Duc Canh Le](https://github.com/canhld94)). + +#### Улучшения {#improvement-3} + +* CREATE TABLE AS теперь копирует предложения PRIMARY KEY, ORDER BY и аналогичные. В данный момент это поддерживается только для семейства движков таблиц MergeTree. [#69076](https://github.com/ClickHouse/ClickHouse/pull/69076) ([sakulali](https://github.com/sakulali)). +* Усилены механизмы в кодовой базе, связанные с разбором небольших сущностей. Были обнаружены и исправлены следующие (незначительные) ошибки: - если таблица `DeltaLake` разбита на партиции по полю типа Bool, значение партиции всегда интерпретировалось как false; - таблица `ExternalDistributed` использовала только один сегмент из указанных адресов; значение настройки `max_threads` и подобных выводилось как `'auto(N)'` вместо `auto(N)`. [#52503](https://github.com/ClickHouse/ClickHouse/pull/52503) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Использовать метрики, специфичные для cgroup, для учета использования CPU вместо системных метрик. [#62003](https://github.com/ClickHouse/ClickHouse/pull/62003) ([Nikita Taranov](https://github.com/nickitat)). +* Планирование ввода-вывода для удалённых дисков S3 теперь выполняется на уровне потоков HTTP-сокетов (вместо целых S3-запросов), чтобы устранить проблемы с ограничением скорости `bandwidth_limit`. [#65182](https://github.com/ClickHouse/ClickHouse/pull/65182) ([Sergei Trifonov](https://github.com/serxa)). +* Функции `upperUTF8` и `lowerUTF8` ранее умели переводить в верхний/нижний регистр только кириллические символы. Это ограничение снято, и теперь символы на любых языках переводятся в верхний/нижний регистр. Пример: `SELECT upperUTF8('Süden')` теперь возвращает `SÜDEN`. [#65761](https://github.com/ClickHouse/ClickHouse/pull/65761) ([李扬](https://github.com/taiyang-li)). +* Ранее при выполнении легковесного удаления в таблице с проекциями пользователи могли выбрать: либо выбросить исключение (значение по умолчанию), либо удалить проекцию при выполнении легковесного удаления. Теперь появился третий вариант — всё равно выполнить легковесное удаление, а затем перестроить проекции. [#66169](https://github.com/ClickHouse/ClickHouse/pull/66169) ([jsc0218](https://github.com/jsc0218)). +* Добавлены две опции (`dns_allow_resolve_names_to_ipv4` и `dns_allow_resolve_names_to_ipv6`) для блокировки подключений по семейству IP-адресов. [#66895](https://github.com/ClickHouse/ClickHouse/pull/66895) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* Добавлена возможность настраивать игнорирование Ctrl-Z (`ignore_shell_suspend`) в clickhouse-client. [#67134](https://github.com/ClickHouse/ClickHouse/pull/67134) ([Azat Khuzhin](https://github.com/azat)). +* Улучшена проверка UTF-8 в форматах вывода JSON. Обеспечивается генерация корректного JSON при некоторых байтовых последовательностях в результирующих данных. [#67938](https://github.com/ClickHouse/ClickHouse/pull/67938) ([mwoenker](https://github.com/mwoenker)). +* Добавлены события профилирования для слияний и мутаций для более детального анализа. [#68015](https://github.com/ClickHouse/ClickHouse/pull/68015) ([Anton Popov](https://github.com/CurtizJ)). +* ODBC: получать значение http_max_tries из конфигурации сервера. [#68128](https://github.com/ClickHouse/ClickHouse/pull/68128) ([Rodolphe Dugé de Bernonville](https://github.com/RodolpheDuge)). +* Добавлена поддержка подстановочных символов для идентификации пользователя в расширении SubjectAltName сертификатов X.509. [#68236](https://github.com/ClickHouse/ClickHouse/pull/68236) ([Marco Vilas Boas](https://github.com/marco-vb)). +* Улучшено определение схемы для значений даты и времени. Теперь `DateTime64` используется только если значение имеет дробную часть, в противном случае используется обычный `DateTime`. Определение типов Date/DateTime теперь более строгое, особенно при `date_time_input_format='best_effort'`, чтобы избежать вывода дат и времени из строк в пограничных случаях. [#68382](https://github.com/ClickHouse/ClickHouse/pull/68382) ([Kruglov Pavel](https://github.com/Avogar)). +* Удалён старый код именованных коллекций из словарей и заменён на новый, который позволяет использовать именованные коллекции, созданные с помощью DDL, в словарях. Закрывает [#60936](https://github.com/ClickHouse/ClickHouse/issues/60936), закрывает [#36890](https://github.com/ClickHouse/ClickHouse/issues/36890). [#68412](https://github.com/ClickHouse/ClickHouse/pull/68412) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Теперь для внешних HTTP-аутентификаторов используется HTTP/1.1 вместо HTTP/1.0 (использовавшегося по умолчанию). [#68456](https://github.com/ClickHouse/ClickHouse/pull/68456) ([Aleksei Filatov](https://github.com/aalexfvk)). +* Добавлен новый набор метрик для анализа работы пула потоков, обеспечивающий более глубокое понимание его производительности и поведения. [#68674](https://github.com/ClickHouse/ClickHouse/pull/68674) ([filimonov](https://github.com/filimonov)). +* Добавлена поддержка параметров запроса в асинхронных вставках с форматом `Values`. [#68741](https://github.com/ClickHouse/ClickHouse/pull/68741) ([Anton Popov](https://github.com/CurtizJ)). +* Реализована поддержка типа `Date32` в функциях `dateTrunc` и `toStartOfInterval`. [#68874](https://github.com/ClickHouse/ClickHouse/pull/68874) ([LiuNeng](https://github.com/liuneng1994)). +* В таблицу `system.processors_profile_log` добавлены столбцы `plan_step_name` и `plan_step_description`. [#68954](https://github.com/ClickHouse/ClickHouse/pull/68954) ([Alexander Gololobov](https://github.com/davenger)). +* Добавлена поддержка испанского языка во встроенных словарях. [#69035](https://github.com/ClickHouse/ClickHouse/pull/69035) ([Vasily Okunev](https://github.com/VOkunev)). +* В краткое сообщение о сбое добавлена архитектура CPU. [#69037](https://github.com/ClickHouse/ClickHouse/pull/69037) ([Konstantин Bogданов](https://github.com/thevar1able)). +* Запросы будут быстрее завершаться с ошибкой, если при повторных попытках не удаётся установить новое соединение с Keeper. [#69148](https://github.com/ClickHouse/ClickHouse/pull/69148) ([Raúl Marín](https://github.com/Algunenano)). +* Обновили `DatabaseFactory`, чтобы пользовательские движки баз данных могли принимать аргументы, настройки и переопределения таблиц (аналогично `StorageFactory`). [#69201](https://github.com/ClickHouse/ClickHouse/pull/69201) ([NikBarykin](https://github.com/NikBarykin)). +* Режим восстановления, в котором все внешние движки таблиц и функции заменяются на движок `Null` (настройки `restore_replace_external_engines_to_null`, `restore_replace_external_table_functions_to_null`), завершался с ошибкой, если таблица имела SETTINGS. Теперь в этом случае из определения таблицы удаляются настройки, и такие таблицы можно восстановить. [#69253](https://github.com/ClickHouse/ClickHouse/pull/69253) ([Ilya Yatsishin](https://github.com/qoega)). +* CLICKHOUSE_PASSWORD теперь корректно экранируется для использования в XML в entrypoint образа ClickHouse. [#69301](https://github.com/ClickHouse/ClickHouse/pull/69301) ([aohoyd](https://github.com/aohoyd)). +* Разрешить пустые аргументы для `arrayZip`/`arrayZipUnaligned`, как это делал `concat` в [https://github.com/ClickHouse/ClickHouse/pull/65887](https://github.com/ClickHouse/ClickHouse/pull/65887). Это сделано для совместимости со Spark в бэкенде Gluten CH. [#69576](https://github.com/ClickHouse/ClickHouse/pull/69576) ([李扬](https://github.com/taiyang-li)). +* Добавлена поддержка более продвинутых параметров SSL для внутреннего взаимодействия Keeper’а (например, закрытых ключей, защищённых фразой-паролем). [#69582](https://github.com/ClickHouse/ClickHouse/pull/69582) ([Antonio Andelic](https://github.com/antonio2368)). +* Анализ индексов может занимать заметное время для больших таблиц с большим количеством частей или партиций. Это изменение должно позволить прерывать ресурсоёмкий запрос на этом этапе. [#69606](https://github.com/ClickHouse/ClickHouse/pull/69606) ([Alexander Gololobov](https://github.com/davenger)). +* Маскирование конфиденциальной информации в табличной функции `gcs`. [#69611](https://github.com/ClickHouse/ClickHouse/pull/69611) ([Vitaly Baranov](https://github.com/vitlibar)). +* Перестроение проекций при слияниях, уменьшающих количество строк. [#62364](https://github.com/ClickHouse/ClickHouse/pull/62364) ([cangyin](https://github.com/cangyin)). + +#### Исправление ошибки (заметимое пользователем некорректное поведение в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-3} + +* Исправлена ошибка подключения таблицы, если `pg dbname` содержит «-» в экспериментальном и неподдерживаемом движке MaterializedPostgreSQL. [#62730](https://github.com/ClickHouse/ClickHouse/pull/62730) ([takakawa](https://github.com/takakawa)). +* Исправлена ошибка в вычисляемых столбцах в экспериментальном и полностью неподдерживаемом движке MaterializedPostgreSQL при нарушении порядка adnum [#63161](https://github.com/ClickHouse/ClickHouse/issues/63161). Исправлена ошибка в столбце id со значением по умолчанию — выражением nextval — в экспериментальном и полностью неподдерживаемом MaterializedPostgreSQL при наличии вычисляемых столбцов в таблице. Исправлена ошибка при удалении публикации, содержащей символы, отличные от [a-z1-9-]. [#67664](https://github.com/ClickHouse/ClickHouse/pull/67664) ([Kruglov Kirill](https://github.com/1on)). +* В Storage Join добавлена поддержка столбцов типа Nullable в левой таблице, что закрывает [#61247](https://github.com/ClickHouse/ClickHouse/issues/61247). [#66926](https://github.com/ClickHouse/ClickHouse/pull/66926) ([vdimir](https://github.com/vdimir)). +* Некорректный результат запроса с параллельными репликами (и распределением запросов), когда оператор `IN` содержит преобразование в Decimal(). Ошибка была вызвана новым анализатором. [#67234](https://github.com/ClickHouse/ClickHouse/pull/67234) ([Igor Nikonov](https://github.com/devcrafter)). +* Исправлена проблема, из‑за которой `ALTER MODIFY ORDER BY` приводил к несогласованности метаданных. [#67436](https://github.com/ClickHouse/ClickHouse/pull/67436) ([iceFireser](https://github.com/iceFireser)). +* Исправлена верхняя граница функции `fromModifiedJulianDay`. Она должна была быть равна `9999-12-31`, но по ошибке была установлена как `9999-01-01`. [#67583](https://github.com/ClickHouse/ClickHouse/pull/67583) ([PHO](https://github.com/depressed-pho)). +* Исправлена ошибка, возникавшая, когда индекс находился не в начале кортежа в запросе с `IN`. [#67626](https://github.com/ClickHouse/ClickHouse/pull/67626) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Исправлена логика истечения срока действия в `RoleCache`. [#67748](https://github.com/ClickHouse/ClickHouse/pull/67748) ([Vitaly Baranov](https://github.com/vitlibar)). +* Исправлена проблема с пропущенными блоками в оконном представлении из‑за медленного сброса данных в представление. [#67983](https://github.com/ClickHouse/ClickHouse/pull/67983) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена ошибка MSan, вызванная некорректным форматом даты. [#68105](https://github.com/ClickHouse/ClickHouse/pull/68105) ([JackyWoo](https://github.com/JackyWoo)). +* Исправлено аварийное завершение при фильтрации Parquet, возникавшее, когда типы данных в файле существенно отличались от запрошенных типов (например, `... FROM file('a.parquet', Parquet, 'x String')`, но в файле `x Int64`). До установки этого исправления используйте `input_format_parquet_filter_push_down = 0` в качестве обходного решения. [#68131](https://github.com/ClickHouse/ClickHouse/pull/68131) ([Michael Kolupaev](https://github.com/al13n321)). +* Исправлен сбой в функциях `lag`/`lead`, появившийся в [#67091](https://github.com/ClickHouse/ClickHouse/issues/67091). [#68262](https://github.com/ClickHouse/ClickHouse/pull/68262) ([lgbo](https://github.com/lgbo-ustc)). +* Попытка устранить аварийное завершение работы postgres при отмене запроса. [#68288](https://github.com/ClickHouse/ClickHouse/pull/68288) ([Kseniia Sumarokova](https://github.com/kssenii)). +* После [https://github.com/ClickHouse/ClickHouse/pull/61984](https://github.com/ClickHouse/ClickHouse/pull/61984) `schema_inference_make_columns_nullable=0` по‑прежнему мог делать столбцы `Nullable` в форматах Parquet/Arrow. Изменение оказалось несовместимым с предыдущим поведением, и пользователи заметили изменения. В этом PR `schema_inference_make_columns_nullable=0` снова работает как раньше (столбцы типа Nullable больше не выводятся автоматически) и добавлено новое значение `auto` для этой настройки, при котором столбцы будут становиться `Nullable` только в том случае, если в данных есть информация о nullability. [#68298](https://github.com/ClickHouse/ClickHouse/pull/68298) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлена проблема [#50868](https://github.com/ClickHouse/ClickHouse/issues/50868). Малые константные значения типа DateTime64, возвращаемые вложенным подзапросом в распределённом запросе, ошибочно преобразовывались в значения Null, что приводило к ошибкам и потенциально некорректным результатам запроса. [#68323](https://github.com/ClickHouse/ClickHouse/pull/68323) ([Shankar](https://github.com/shiyer7474)). +* Исправлено отсутствие режима синхронизации реплики в запросе `SYSTEM SYNC REPLICA`. [#68326](https://github.com/ClickHouse/ClickHouse/pull/68326) ([Duc Canh Le](https://github.com/canhld94)). +* Исправлена ошибка в ключевом условии. [#68354](https://github.com/ClickHouse/ClickHouse/pull/68354) ([Han Fei](https://github.com/hanfei1991)). +* Исправлен сбой при удалении или переименовании роли, используемой во внешнем пользовательском каталоге LDAP. [#68355](https://github.com/ClickHouse/ClickHouse/pull/68355) ([Andrey Zvonov](https://github.com/zvonand)). +* Исправлено значение столбца Progress в system.view_refreshes, если оно больше 1 [#68377](https://github.com/ClickHouse/ClickHouse/issues/68377). [#68378](https://github.com/ClickHouse/ClickHouse/pull/68378) ([megao](https://github.com/jetgm)). +* Исправлена корректная обработка флагов регулярных выражений. [#68389](https://github.com/ClickHouse/ClickHouse/pull/68389) ([Han Fei](https://github.com/hanfei1991)). +* Оператор приведения типов в стиле PostgreSQL (`::`) теперь корректно работает и для шестнадцатеричных и двоичных строковых литералов в SQL-стиле (например, `SELECT x'414243'::String`). Это закрывает задачу [#68324](https://github.com/ClickHouse/ClickHouse/issues/68324). [#68482](https://github.com/ClickHouse/ClickHouse/pull/68482) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Небольшой патч к [https://github.com/ClickHouse/ClickHouse/pull/68131](https://github.com/ClickHouse/ClickHouse/pull/68131). [#68494](https://github.com/ClickHouse/ClickHouse/pull/68494) ([Chang chen](https://github.com/baibaichen)). +* Исправлена ошибка в обработке [#68239](https://github.com/ClickHouse/ClickHouse/issues/68239) SAMPLE n, где n — целое число. [#68499](https://github.com/ClickHouse/ClickHouse/pull/68499) ([Denis Hananein](https://github.com/denis-hananein)). +* Исправлена ошибка в `mann-whitney-utest`, возникавшая при неравных размерах двух распределений. [#68556](https://github.com/ClickHouse/ClickHouse/pull/68556) ([Han Fei](https://github.com/hanfei1991)). +* После неожиданного перезапуска не удаётся запустить репликацию ReplicatedMergeTree из‑за некорректной обработки части, перекрытой повреждённой частью. [#68584](https://github.com/ClickHouse/ClickHouse/pull/68584) ([baolin](https://github.com/baolinhuang)). +* Исправлены `LOGICAL_ERROR` при применении функций `sipHash64Keyed`, `sipHash128Keyed` или `sipHash128ReferenceKeyed` к пустым массивам или кортежам. [#68630](https://github.com/ClickHouse/ClickHouse/pull/68630) ([Robert Schulze](https://github.com/rschu1ze)). +* Полнотекстовый индекс мог отфильтровывать неверные столбцы при индексации нескольких столбцов: он не сбрасывал row_id между разными столбцами. Процедура воспроизведения находится в tests/queries/0_stateless/03228_full_text_with_multi_col.sql. Без этого исправления: [#68644](https://github.com/ClickHouse/ClickHouse/pull/68644) ([siyuan](https://github.com/linkwk7)). +* Исправлена проблема с недопустимыми символами '\t' и '\n' в replica_name при создании таблицы Replicated, которые приводили к некорректному разбору поля 'source replica' в LogEntry. Упомянуто в issue [#68640](https://github.com/ClickHouse/ClickHouse/issues/68640). [#68645](https://github.com/ClickHouse/ClickHouse/pull/68645) ([Zhigao Hong](https://github.com/zghong)). +* В distributed таблицы возвращены виртуальные столбцы `_table` и `_database`. Они были доступны до версии 24.3. [#68672](https://github.com/ClickHouse/ClickHouse/pull/68672) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлена возможная ошибка `Size of permutation (0) is less than required (...)` при перестановке столбца типа Variant. [#68681](https://github.com/ClickHouse/ClickHouse/pull/68681) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлена возможная ошибка `DB::Exception: Block structure mismatch in joined block stream: different columns:`, возникающая при использовании нового JSON-столбца. [#68686](https://github.com/ClickHouse/ClickHouse/pull/68686) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлена проблема с материализованными константными ключами при хешировании отображений (Map), где в качестве ключей используются массивы, в функциях `sipHash(64/128)Keyed`. [#68731](https://github.com/ClickHouse/ClickHouse/pull/68731) ([Salvatore Mesoraca](https://github.com/aiven-sal)). +* Сделать так, чтобы `ColumnsDescription::toString` форматировал все столбцы, используя один и тот же объект `IAST::FormatState`. Это приводит к записи метаданных столбцов на диск и в ZooKeeper в единообразном виде. [#68733](https://github.com/ClickHouse/ClickHouse/pull/68733) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Исправлено объединение агрегированных данных для GROUPING SETS. [#68744](https://github.com/ClickHouse/ClickHouse/pull/68744) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлена логическая ошибка, возникавшая при создании таблицы ReplicatedMergeTree, изменении столбца и последующем выполнении MODIFY STATISTICS. [#68820](https://github.com/ClickHouse/ClickHouse/pull/68820) ([Han Fei](https://github.com/hanfei1991)). +* Исправлено определение динамических подстолбцов из подзапросов в анализаторе. [#68824](https://github.com/ClickHouse/ClickHouse/pull/68824) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлен разбор метаданных сложных типов данных в DeltaLake. Закрывает [#68739](https://github.com/ClickHouse/ClickHouse/issues/68739). [#68836](https://github.com/ClickHouse/ClickHouse/pull/68836) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлена проблема с асинхронными вставками в случае, когда метаданные таблицы изменяются (запросами `ALTER ADD/MODIFY COLUMN`) после вставки, но до сброса данных в таблицу. [#68837](https://github.com/ClickHouse/ClickHouse/pull/68837) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлено неожиданное исключение при передаче пустого кортежа в массив. Исправлена [#68618](https://github.com/ClickHouse/ClickHouse/issues/68618). [#68848](https://github.com/ClickHouse/ClickHouse/pull/68848) ([Amos Bird](https://github.com/amosbird)). +* Исправлена обработка команд мутаций, затрагивающих только метаданные. [#68935](https://github.com/ClickHouse/ClickHouse/pull/68935) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Исправлена потенциальная ошибка, приводившая к некорректному результату при слиянии состояния anyHeavy. [#68950](https://github.com/ClickHouse/ClickHouse/pull/68950) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена запись в materialized view при включённой настройке `optimize_functions_to_subcolumns`. [#68951](https://github.com/ClickHouse/ClickHouse/pull/68951) ([Anton Popov](https://github.com/CurtizJ)). +* Не используйте кэш сериализаций в const-методах столбца Dynamic. Это могло приводить к использованию неинициализированных значений или даже к состоянию гонки во время агрегаций. [#68953](https://github.com/ClickHouse/ClickHouse/pull/68953) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлена ошибка разбора, возникавшая в случаях, когда при разборе типа JSON в качестве значения по умолчанию должен был вставляться `null`. [#68955](https://github.com/ClickHouse/ClickHouse/pull/68955) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлена ошибка, из-за которой заголовок `Content-Encoding` не отправлялся в некоторых сжатых ответах. [#64802](https://github.com/ClickHouse/ClickHouse/issues/64802). [#68975](https://github.com/ClickHouse/ClickHouse/pull/68975) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Были случаи, когда путь формировался некорректно и содержал подстроку `//`; эту проблему устранили с помощью нормализации пути. [#69066](https://github.com/ClickHouse/ClickHouse/pull/69066) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Исправлена логическая ошибка, возникающая при пустой асинхронной вставке. [#69080](https://github.com/ClickHouse/ClickHouse/pull/69080) ([Han Fei](https://github.com/hanfei1991)). +* Исправлена гонка данных индикации прогресса в clickhouse-client при отмене запроса. [#69081](https://github.com/ClickHouse/ClickHouse/pull/69081) ([Sergei Trifonov](https://github.com/serxa)). +* Исправлена ошибка, из-за которой индекс векторного сходства (в настоящее время экспериментальный) не использовался при использовании косинусного расстояния в качестве функции расстояния. [#69090](https://github.com/ClickHouse/ClickHouse/pull/69090) ([flynn](https://github.com/ucasfl)). +* Это изменение исправляет проблему, при которой попытка повторно создать базу данных Replicated после сбоя сервера во время первоначального создания могла приводить к ошибке. [#69102](https://github.com/ClickHouse/ClickHouse/pull/69102) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Не определять тип Bool из String в CSV, когда `input_format_csv_try_infer_numbers_from_strings = 1`, так как чтение логических значений из строк не поддерживается. [#69109](https://github.com/ClickHouse/ClickHouse/pull/69109) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлены ошибки разбора при выполнении EXPLAIN AST для запросов INSERT на клиенте при включённой опции `--multiquery`. [#69123](https://github.com/ClickHouse/ClickHouse/pull/69123) ([wxybear](https://github.com/wxybear)). +* Оператор `UNION` в подзапросах некорректно обрабатывался в запросах с параллельными репликами и приводил к LOGICAL_ERROR с сообщением `Duplicate announcement received for replica`. [#69146](https://github.com/ClickHouse/ClickHouse/pull/69146) ([Igor Nikonov](https://github.com/devcrafter)). +* Исправлена передача аргумента `structure` в s3Cluster. Ранее выражение `DEFAULT` столбца могло теряться при отправке запроса к репликам в s3Cluster. [#69147](https://github.com/ClickHouse/ClickHouse/pull/69147) ([Kruglov Pavel](https://github.com/Avogar)). +* Учитывать настройки формата Values при преобразовании выражения в целевой тип. [#69149](https://github.com/ClickHouse/ClickHouse/pull/69149) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлена работа `clickhouse-client --queries-file` для пользователей с правами только на чтение (ранее приводило к ошибке `Cannot modify 'log_comment' setting in readonly mode`). [#69175](https://github.com/ClickHouse/ClickHouse/pull/69175) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена гонка данных в clickhouse-client, возникающая при перенаправлении его вывода в процесс, который завершился раньше времени. [#69186](https://github.com/ClickHouse/ClickHouse/pull/69186) ([vdimir](https://github.com/vdimir)). +* Исправлены некорректные результаты операций uniq и GROUP BY для типов JSON/Dynamic. [#69203](https://github.com/ClickHouse/ClickHouse/pull/69203) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлено определение формата INFILE для асинхронных вставок. Если формат явно не указан в предложении FORMAT, он определяется по расширению файла INFILE. [#69237](https://github.com/ClickHouse/ClickHouse/pull/69237) ([Julia Kartseva](https://github.com/jkartseva)). +* После [исправления этой проблемы](https://github.com/ClickHouse/ClickHouse/pull/59946#issuecomment-1943653197) в продакшене появилось довольно много реплик таблиц, у которых значение узла `metadata_version` равно `0`, при этом оно отличается от значения узла `metadata` соответствующей таблицы. Это приводит к сбоям выполнения запросов `ALTER` на таких репликах. [#69274](https://github.com/ClickHouse/ClickHouse/pull/69274) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Обозначили тип Dynamic как небезопасный для использования в качестве первичного ключа, чтобы избежать проблем с Fields. [#69311](https://github.com/ClickHouse/ClickHouse/pull/69311) ([Kruglov Pavel](https://github.com/Avogar)). +* Улучшено восстановление зависимостей объектов доступа. [#69346](https://github.com/ClickHouse/ClickHouse/pull/69346) ([Vitaly Baranov](https://github.com/vitlibar)). +* Исправлено неопределённое поведение, возникавшее, когда все попытки установления соединения для вставки данных завершались неудачей. [#69390](https://github.com/ClickHouse/ClickHouse/pull/69390) ([Pablo Marcos](https://github.com/pamarcos)). +* Закрыта [#69135](https://github.com/ClickHouse/ClickHouse/issues/69135). Ранее мы пытались повторно использовать присоединённые данные для соединения типа `cross`, хотя в текущей версии ClickHouse это невозможно. Поэтому лучше оставить `have_compressed` в `reuseJoinedData`. [#69404](https://github.com/ClickHouse/ClickHouse/pull/69404) ([lgbo](https://github.com/lgbo-ustc)). +* Сделать так, чтобы функция `materialize()` возвращала полный столбец, если параметр является разреженным столбцом. [#69429](https://github.com/ClickHouse/ClickHouse/pull/69429) ([Alexander Gololobov](https://github.com/davenger)). +* Исправлена ошибка `LOGICAL_ERROR` в функции `sqidDecode` ([#69450](https://github.com/ClickHouse/ClickHouse/issues/69450)). [#69451](https://github.com/ClickHouse/ClickHouse/pull/69451) ([Robert Schulze](https://github.com/rschu1ze)). +* Оперативное исправление проблемы s3queue в 24.6 или при создании запроса с реплицированной базой данных. [#69454](https://github.com/ClickHouse/ClickHouse/pull/69454) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлен случай, когда потребление памяти было слишком высоким из-за «схлопывания» в запросах `INSERT INTO ... SELECT` или `CREATE TABLE AS SELECT`. [#69469](https://github.com/ClickHouse/ClickHouse/pull/69469) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Команды `SHOW COLUMNS` и `SHOW INDEX` теперь корректно работают, если в имени таблицы есть точки. [#69514](https://github.com/ClickHouse/ClickHouse/pull/69514) ([Salvatore Mesoraca](https://github.com/aiven-sal)). +* Теперь запрещено использование кэша запросов для запросов с режимом переполнения, отличным от 'throw'. Это предотвращает ситуации, когда потенциально усечённые и некорректные результаты запросов могли бы быть сохранены в кэше запросов. (issue [#67476](https://github.com/ClickHouse/ClickHouse/issues/67476)). [#69549](https://github.com/ClickHouse/ClickHouse/pull/69549) ([Robert Schulze](https://github.com/rschu1ze)). +* Сохранять исходный порядок условий при переносе в `prewhere`. Ранее порядок мог изменяться, что приводило к падению запросов, когда порядок был важен. [#69560](https://github.com/ClickHouse/ClickHouse/pull/69560) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлена предобработка пакетных запросов Keeper после ошибки ZNOAUTH. [#69627](https://github.com/ClickHouse/ClickHouse/pull/69627) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлена ошибка METADATA_MISMATCH, которая могла возникать из-за использования TTL с предложением WHERE в DatabaseReplicated при создании новой реплики. [#69736](https://github.com/ClickHouse/ClickHouse/pull/69736) ([Nikolay Degterinsky](https://github.com/evillique)). +* Исправлен параметр `tracked_file_ttl_sec` в настройках `StorageS3(Azure)Queue`. Мы записывали его в keeper с ключом `tracked_file_ttl_sec`, но читали как `tracked_files_ttl_sec`, что было опечаткой. [#69742](https://github.com/ClickHouse/ClickHouse/pull/69742) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Используется tryconvertfieldtotype в gethyperrectangleforrowgroup. [#69745](https://github.com/ClickHouse/ClickHouse/pull/69745) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Откат изменения «Fix prewhere without columns and without adaptive index granularity (almost w/o anything)». Из-за отката этих изменений при чтении частей данных, созданных старыми релизами ClickHouse (предположительно 2021 года или более ранними), могут возникать ошибки. [#68897](https://github.com/ClickHouse/ClickHouse/pull/68897) ([Alexander Gololobov](https://github.com/davenger)). + +### Релиз ClickHouse 24.8 LTS от 2024-08-20. [Презентация](https://presentations.clickhouse.com/2024-release-24.8/), [Видео](https://www.youtube.com/watch?v=AeLmp2jc51k) {#a-id248a-clickhouse-release-248-lts-2024-08-20} + + + +#### Обратное несовместимое изменение {#backward-incompatible-change-4} + +* `clickhouse-client` и `clickhouse-local` теперь по умолчанию работают в режиме multi-query (вместо single-query). Например, команда `clickhouse-client -q "SELECT 1; SELECT 2"` теперь работает, тогда как ранее пользователям нужно было добавлять `--multiquery` (или `-n`). Переключатель `--multiquery/-n` стал устаревшим. INSERT-запросы в multi-query-режиме обрабатываются особым образом в зависимости от их клаузы FORMAT: если FORMAT — `VALUES` (наиболее распространённый случай), конец оператора INSERT определяется завершающей точкой с запятой `;` в конце запроса. Для всех остальных FORMAT (например, `CSV` или `JSONEachRow`) конец оператора INSERT определяется двумя переводами строки `\n\n` в конце запроса. [#63898](https://github.com/ClickHouse/ClickHouse/pull/63898) ([FFish](https://github.com/wxybear)). +* В предыдущих версиях можно было использовать альтернативный синтаксис для типов данных `LowCardinality`, добавляя `WithDictionary` к имени типа данных. Это была первоначальная рабочая реализация, и она никогда не документировалась и не была публично доступна. Теперь этот синтаксис помечен как устаревший. Если вы использовали его, вам необходимо выполнить ALTER для таблиц и переименовать типы данных в `LowCardinality`. [#66842](https://github.com/ClickHouse/ClickHouse/pull/66842) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлены логические ошибки при использовании хранилища `Buffer` с распределённой целевой таблицей. Это обратное несовместимое изменение: запросы, использующие `Buffer` с распределённой целевой таблицей, могут перестать работать, если таблица встречается в запросе более одного раза (например, в self-join). [#67015](https://github.com/ClickHouse/ClickHouse/pull/67015) ([vdimir](https://github.com/vdimir)). +* В предыдущих версиях вызов функций для случайных распределений, основанных на гамма-функции (таких как хи-квадрат, Стьюдента, Фишера), с отрицательными аргументами, близкими к нулю, приводил к длительным вычислениям или бесконечному циклу. В новой версии вызов этих функций с нулевыми или отрицательными аргументами приводит к генерации исключения. Это закрывает задачу [#67297](https://github.com/ClickHouse/ClickHouse/issues/67297). [#67326](https://github.com/ClickHouse/ClickHouse/pull/67326) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Системная таблица `text_log` теперь включена по умолчанию. Это полностью совместимо с предыдущими версиями, но вы можете заметить немного увеличившееся использование пространства на локальном диске (эта системная таблица занимает совсем немного места). [#67428](https://github.com/ClickHouse/ClickHouse/pull/67428) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* В предыдущих версиях `arrayWithConstant` могла работать медленно при генерации очень больших массивов. В новой версии размер ограничен 1 ГБ на массив. Это закрывает задачу [#32754](https://github.com/ClickHouse/ClickHouse/issues/32754). [#67741](https://github.com/ClickHouse/ClickHouse/pull/67741) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлено форматирование модификатора REPLACE (запрещено опускать скобки). [#67774](https://github.com/ClickHouse/ClickHouse/pull/67774) ([Azat Khuzhin](https://github.com/azat)). +* Бекпортировано в [#68349](https://github.com/ClickHouse/ClickHouse/issues/68349): тип `Dynamic` реализован заново. Теперь при достижении лимита динамических типов данных новые типы не приводятся к String, а сохраняются в специальной структуре данных в бинарном формате с бинарно закодированным типом данных. Теперь любой тип, когда-либо записанный в столбец `Dynamic`, может быть прочитан из него как подстолбец. [#68132](https://github.com/ClickHouse/ClickHouse/pull/68132) ([Kruglov Pavel](https://github.com/Avogar)). + +#### Новая функция {#new-feature-4} + +* Добавлена новая настройка движка `MergeTree` `deduplicate_merge_projection_mode` для управления проекциями во время слияний (для отдельных движков) и запроса `OPTIMIZE DEDUPLICATE`. Поддерживаемые варианты: `throw` (выбрасывать исключение, если проекция не полностью поддерживается для движка *MergeTree), `drop` (удалять проекцию во время слияния, если её нельзя корректно слить) и `rebuild` (перестраивать проекцию с нуля, что является тяжёлой операцией). [#66672](https://github.com/ClickHouse/ClickHouse/pull/66672) ([jsc0218](https://github.com/jsc0218)). +* Добавлен виртуальный столбец `_etag` в табличный движок S3. Исправлена [#65312](https://github.com/ClickHouse/ClickHouse/issues/65312). [#65386](https://github.com/ClickHouse/ClickHouse/pull/65386) ([skyoct](https://github.com/skyoct)). +* Добавлен механизм тегирования (пространств имён) для кэша запросов. Кэш запросов рассматривает одни и те же запросы с разными тегами как разные. Пример: `SELECT 1 SETTINGS use_query_cache = 1, query_cache_tag = 'abc'` и `SELECT 1 SETTINGS use_query_cache = 1, query_cache_tag = 'def'` теперь создают разные записи в кэше запросов. [#68235](https://github.com/ClickHouse/ClickHouse/pull/68235) ([sakulali](https://github.com/sakulali)). +* Расширена поддержка вариантов строгости `JOIN` (`LEFT/RIGHT SEMI/ANTI/ANY JOIN`) с условиями неравенства, которые затрагивают столбцы как левой, так и правой таблицы, например `t1.y < t2.y` (см. настройку `allow_experimental_join_condition`). [#64281](https://github.com/ClickHouse/ClickHouse/pull/64281) ([lgbo](https://github.com/lgbo-ustc)). +* Интерпретировать партиционирование в стиле Hive для различных движков (`File`, `URL`, `S3`, `AzureBlobStorage`, `HDFS`). Партиционирование в стиле Hive организует данные в подкаталоги партиций, что повышает эффективность выполнения запросов и управления большими наборами данных. В настоящий момент оно только создаёт виртуальные столбцы с соответствующими именами и данными. Последующий PR добавит соответствующую фильтрацию данных для повышения производительности. [#65997](https://github.com/ClickHouse/ClickHouse/pull/65997) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Добавлена функция `printf` для совместимости со Spark (но вы можете использовать существующую функцию `format`). [#66257](https://github.com/ClickHouse/ClickHouse/pull/66257) ([李扬](https://github.com/taiyang-li)). +* Добавлены опции `restore_replace_external_engines_to_null` и `restore_replace_external_table_functions_to_null`, позволяющие заменять внешние движки и `table_engines` на движок `Null`, что может быть полезно для тестирования. Работает для RESTORE и при явном создании таблиц. [#66536](https://github.com/ClickHouse/ClickHouse/pull/66536) ([Ilya Yatsishin](https://github.com/qoega)). +* Добавлена поддержка чтения геометрии `MULTILINESTRING` формата `WKT` с использованием функции `readWKTLineString`. [#67647](https://github.com/ClickHouse/ClickHouse/pull/67647) ([Jacob Reckhard](https://github.com/jacobrec)). +* Добавлена новая табличная функция `fuzzQuery`. Эта функция позволяет модифицировать заданную строку запроса, внося в неё случайные изменения. Пример: `SELECT query FROM fuzzQuery('SELECT 1') LIMIT 5;`. [#67655](https://github.com/ClickHouse/ClickHouse/pull/67655) ([pufit](https://github.com/pufit)). +* Добавлен запрос `ALTER TABLE ... DROP DETACHED PARTITION ALL`, позволяющий удалять все отсоединённые партиции. [#67885](https://github.com/ClickHouse/ClickHouse/pull/67885) ([Duc Canh Le](https://github.com/canhld94)). +* Добавлена статистика `rows_before_aggregation_at_least` в ответ на запрос при включённой новой настройке `rows_before_aggregation`. Эта статистика отражает количество строк, прочитанных до агрегации. В контексте распределённого запроса, при использовании агрегационной функции `group by` или `max` без `limit`, `rows_before_aggregation_at_least` может отражать количество строк, попавших под действие запроса. [#66084](https://github.com/ClickHouse/ClickHouse/pull/66084) ([morning-color](https://github.com/morning-color)). +* Добавлена поддержка запроса `OPTIMIZE` для таблиц `Join` для сокращения объёма потребляемой памяти. [#67883](https://github.com/ClickHouse/ClickHouse/pull/67883) ([Duc Canh Le](https://github.com/canhld94)). +* Добавлена возможность мгновенно выполнять запрос в Play, если вы добавите `&run=1` в URL [#66457](https://github.com/ClickHouse/ClickHouse/pull/66457) ([Aleksandr Musorin](https://github.com/AVMusorin)). + +#### Экспериментальные возможности {#experimental-feature-3} + +* Реализован новый тип данных `JSON`. [#66444](https://github.com/ClickHouse/ClickHouse/pull/66444) ([Kruglov Pavel](https://github.com/Avogar)). +* Добавлен новый движок таблицы `TimeSeries`. [#64183](https://github.com/ClickHouse/ClickHouse/pull/64183) ([Vitaly Baranov](https://github.com/vitlibar)). +* Добавлен новый экспериментальный движок хранения `Kafka` для сохранения смещений в Keeper вместо фиксации их в Kafka. Это делает коммит в таблицы ClickHouse атомарным по отношению к чтению из очереди. [#57625](https://github.com/ClickHouse/ClickHouse/pull/57625) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Используется метод адаптивного вычисления размера задач чтения (адаптивный — то есть зависящий от размеров читаемых столбцов) для параллельных реплик. [#60377](https://github.com/ClickHouse/ClickHouse/pull/60377) ([Nikita Taranov](https://github.com/nickitat)). +* Добавлен тип статистики `count_min` (скизы count-min), который обеспечивает оценки селективности для предикатов равенства вида `col = 'val'`. Поддерживаемые типы данных: строковые, date, datetime и числовые типы. [#65521](https://github.com/ClickHouse/ClickHouse/pull/65521) ([JackyWoo](https://github.com/JackyWoo)). + +#### Улучшение производительности {#performance-improvement-4} + +* Настройка `optimize_functions_to_subcolumns` включена по умолчанию. [#68053](https://github.com/ClickHouse/ClickHouse/pull/68053) ([Anton Popov](https://github.com/CurtizJ)). +* Метаданные каталога диска `plain_rewritable` хранятся в структуре `__meta` отдельно от данных MergeTree в объектном хранилище. Диск `plain_rewritable` переведён на плоскую структуру каталогов. [#65751](https://github.com/ClickHouse/ClickHouse/pull/65751) ([Julia Kartseva](https://github.com/jkartseva)). +* Улучшено уплотнение столбцов (операция, выполняемая в запросах INSERT) для типов `String`/`Array`/`Map`/`Variant`/`Dynamic` за счёт предварительного резервирования требуемой памяти для всех подстолбцов. [#67043](https://github.com/ClickHouse/ClickHouse/pull/67043) ([Kruglov Pavel](https://github.com/Avogar)). +* Ускорена операция `SYSTEM FLUSH LOGS` и добавлен сброс логов при завершении работы. [#67472](https://github.com/ClickHouse/ClickHouse/pull/67472) ([Sema Checherinda](https://github.com/CheSema)). +* Повышена общая производительность слияний за счёт уменьшения накладных расходов на этапы планирования слияний. [#68016](https://github.com/ClickHouse/ClickHouse/pull/68016) ([Anton Popov](https://github.com/CurtizJ)). +* Ускорено удаление таблиц для запроса `DROP DATABASE`, значение по умолчанию для `database_catalog_drop_table_concurrency` увеличено до 16. [#67228](https://github.com/ClickHouse/ClickHouse/pull/67228) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Исключено избыточное выделение ёмкости для столбца массива при записи в формат ORC. Это даёт прирост производительности около 15% для столбца типа Array. [#67879](https://github.com/ClickHouse/ClickHouse/pull/67879) ([李扬](https://github.com/taiyang-li)). +* Существенно ускорены мутации для нереплицируемых таблиц MergeTree. [#66911](https://github.com/ClickHouse/ClickHouse/pull/66911) [#66909](https://github.com/ClickHouse/ClickHouse/pull/66909) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + +#### Улучшения {#improvement-4} + +* Настройка `allow_experimental_analyzer` переименована в `enable_analyzer`. Старое имя сохранено в виде псевдонима. Это означает, что Analyzer больше не является бета-версией и полностью готов к промышленной эксплуатации. [#66438](https://github.com/ClickHouse/ClickHouse/pull/66438) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Улучшен вывод схемы для значений даты и времени. Теперь `DateTime64` используется только тогда, когда значение даты и времени имеет дробную часть, в остальных случаях используется обычный `DateTime`. Определение типов `Date`/`DateTime` теперь более строгое, особенно при `date_time_input_format='best_effort'`, чтобы избежать интерпретации строк как значений даты и времени в пограничных случаях. [#68382](https://github.com/ClickHouse/ClickHouse/pull/68382) ([Kruglov Pavel](https://github.com/Avogar)). +* Сервер ClickHouse теперь поддерживает новую настройку `max_keep_alive_requests`. Для keep-alive HTTP-соединений с сервером она работает в тандеме с `keep_alive_timeout`: если время простоя ещё не истекло, но по данному соединению уже выполнено больше запросов, чем указано в `max_keep_alive_requests`, соединение будет закрыто сервером. [#61793](https://github.com/ClickHouse/ClickHouse/pull/61793) ([Nikita Taranov](https://github.com/nickitat)). +* Несколько улучшений расширенной панели мониторинга. Закрывает [#67697](https://github.com/ClickHouse/ClickHouse/issues/67697). Закрывает [#63407](https://github.com/ClickHouse/ClickHouse/issues/63407). Закрывает [#51129](https://github.com/ClickHouse/ClickHouse/issues/51129). Закрывает [#61204](https://github.com/ClickHouse/ClickHouse/issues/61204). [#67701](https://github.com/ClickHouse/ClickHouse/pull/67701) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Теперь при создании Distributed таблицы не требуется привилегия REMOTE: достаточно привилегии для движка Distributed. [#65419](https://github.com/ClickHouse/ClickHouse/pull/65419) ([jsc0218](https://github.com/jsc0218)). +* Не указывать явно логи Keeper в Docker-образе, чтобы их можно было переопределять. [#65564](https://github.com/ClickHouse/ClickHouse/pull/65564) ([Azat Khuzhin](https://github.com/azat)). +* Добавлены настройки `use_same_password_for_base_backup` для запросов `BACKUP` и `RESTORE`, позволяющие создавать и восстанавливать инкрементные бэкапы в архивы, защищённые паролем, и из них. [#66214](https://github.com/ClickHouse/ClickHouse/pull/66214) ([Samuele](https://github.com/sguerrini97)). +* Теперь `async_load_databases` игнорируется для запроса `ATTACH` (раньше `ATTACH` мог завершиться до того, как таблицы были присоединены). [#66240](https://github.com/ClickHouse/ClickHouse/pull/66240) ([Azat Khuzhin](https://github.com/azat)). +* Добавлены логи и метрики для отклонённых попыток подключения (когда недостаточно ресурсов). [#66410](https://github.com/ClickHouse/ClickHouse/pull/66410) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Добавлена корректная поддержка типа `UUID` в движке MongoDB. [#66671](https://github.com/ClickHouse/ClickHouse/pull/66671) ([Azat Khuzhin](https://github.com/azat)). +* Добавлены метрики задержки репликации и времени восстановления. [#66703](https://github.com/ClickHouse/ClickHouse/pull/66703) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Добавлена метрика `DiskS3NoSuchKeyErrors`. [#66704](https://github.com/ClickHouse/ClickHouse/pull/66704) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Обеспечена поддержка оператора `COMMENT` для всех движков таблиц. [#66832](https://github.com/ClickHouse/ClickHouse/pull/66832) ([Joe Lynch](https://github.com/joelynch)). +* Функция `mapFromArrays` теперь принимает `Map(K, V)` в качестве первого аргумента, например: `SELECT mapFromArrays(map('a', 4, 'b', 4), ['aa', 'bb'])` теперь работает и возвращает `{('a',4):'aa',('b',4):'bb'}`. Также, если первый аргумент — это массив, он теперь может иметь тип `Array(Nullable(T))` или `Array(LowCardinality(Nullable(T)))` при условии, что значения элементов массива не равны `NULL`. [#67103](https://github.com/ClickHouse/ClickHouse/pull/67103) ([李扬](https://github.com/taiyang-li)). +* Чтение конфигурации `clickhouse-local` из файла `~/.clickhouse-local`. [#67135](https://github.com/ClickHouse/ClickHouse/pull/67135) ([Azat Khuzhin](https://github.com/azat)). +* Переименована настройка `input_format_orc_read_use_writer_time_zone` в `input_format_orc_reader_timezone` и добавлена возможность пользователю указывать часовой пояс чтения. [#67175](https://github.com/ClickHouse/ClickHouse/pull/67175) ([kevinyhzou](https://github.com/KevinyhZou)). +* Понижен уровень серьёзности ошибки `Socket is not connected`, возникающей, когда HTTP‑соединение немедленно сбрасывается клиентом сразу после установления, что позволило закрыть [#34218](https://github.com/ClickHouse/ClickHouse/issues/34218). [#67177](https://github.com/ClickHouse/ClickHouse/pull/67177) ([vdimir](https://github.com/vdimir)). +* Добавлена возможность загружать дашборды для `system.dashboards` из конфигурации (после настройки они переопределяют набор дашбордов по умолчанию). [#67232](https://github.com/ClickHouse/ClickHouse/pull/67232) ([Azat Khuzhin](https://github.com/azat)). +* Оконные функции в SQL традиционно записываются в snake_case. ClickHouse использует `camelCase`, поэтому были созданы новые алиасы `denseRank()` и `percentRank()`. Эти новые функции можно вызывать точно так же, как и исходные функции `dense_rank()` и `percent_rank()`. Оба варианта синтаксиса — snake_case и camelCase — остаются доступны. Также добавлен новый тест для каждой функции. Это закрывает [#67042](https://github.com/ClickHouse/ClickHouse/issues/67042). [#67334](https://github.com/ClickHouse/ClickHouse/pull/67334) ([Peter Nguyen](https://github.com/petern48)). +* Автоматически определяет формат файла конфигурации, если он не в формате `.xml`, `.yml` или `.yaml`. Если файл начинается с <, предполагается XML, в противном случае — YAML. Это полезно при передаче файла конфигурации через pipe: `clickhouse-server --config-file <(echo "hello: world")`. [#67391](https://github.com/ClickHouse/ClickHouse/pull/67391) ([sakulali](https://github.com/sakulali)). +* Функции `formatDateTime` и `formatDateTimeInJodaSyntax` теперь рассматривают параметр формата как необязательный. Если он не указан, по умолчанию используются строки формата `%Y-%m-%d %H:%i:%s` и `yyyy-MM-dd HH:mm:ss`. Пример: `SELECT parseDateTime('2021-01-04 23:12:34')` теперь возвращает значение типа DateTime `2021-01-04 23:12:34` (ранее это приводило к исключению). [#67399](https://github.com/ClickHouse/ClickHouse/pull/67399) ([Robert Schulze](https://github.com/rschu1ze)). +* Автоматически повторять запросы к Keeper в KeeperMap в случае таймаута или потери соединения. [#67448](https://github.com/ClickHouse/ClickHouse/pull/67448) ([Antonio Andelic](https://github.com/antonio2368)). +* Добавлен флаг `-no-pie` в сборки для AArch64 под Linux, чтобы обеспечить корректную интроспекцию и символизацию трасс стека после перезапуска ClickHouse. [#67916](https://github.com/ClickHouse/ClickHouse/pull/67916) ([filimonov](https://github.com/filimonov)). +* Добавлены профильные события для слияний и мутаций для более детального анализа. [#68015](https://github.com/ClickHouse/ClickHouse/pull/68015) ([Anton Popov](https://github.com/CurtizJ)). +* Удалены лишние журнальные сообщения для нереплицируемых таблиц `MergeTree`. [#68238](https://github.com/ClickHouse/ClickHouse/pull/68238) ([Daniil Ivanik](https://github.com/divanik)). + +#### Улучшение сборки/тестирования/упаковки {#buildtestingpackaging-improvement-1} + +* Проверка нестабильных интеграционных тестов теперь будет запускать каждый тестовый кейс несколько раз, чтобы находить больше проблем в тестах и делать их более надёжными. Для многократного запуска тестового кейса в одной и той же среде используется библиотека `pytest-repeat`. Важно очищать таблицы и другие сущности в конце тестового кейса, чтобы он прошёл. Повторные запуски работают гораздо быстрее, чем несколько отдельных запусков pytest, поскольку необходимые контейнеры запускаются только один раз. [#66986](https://github.com/ClickHouse/ClickHouse/pull/66986) ([Ilya Yatsishin](https://github.com/qoega)). +* Сняты ограничения на использование CLion с ClickHouse. В предыдущих версиях CLion зависал на минуту при каждом нажатии клавиши. Это закрывает [#66994](https://github.com/ClickHouse/ClickHouse/issues/66994). [#66995](https://github.com/ClickHouse/ClickHouse/pull/66995) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* getauxval: предотвращён сбой при повторном запуске под санитайзером из-за высокой энтропии ASLR в новых ядрах Linux. [#67081](https://github.com/ClickHouse/ClickHouse/pull/67081) ([Raúl Marín](https://github.com/Algunenano)). +* Некоторые части клиентского кода вынесены в один файл, и к ним применяется максимально возможный уровень оптимизации даже для отладочных сборок. Это закрывает [#65745](https://github.com/ClickHouse/ClickHouse/issues/65745). [#67215](https://github.com/ClickHouse/ClickHouse/pull/67215) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). + +#### Исправления ошибок {#bug-fix} + +* Относится только к экспериментальному типу данных Variant. Исправлена ошибка, приводившая к аварийному завершению при использовании типов Variant и AggregateFunction. [#67122](https://github.com/ClickHouse/ClickHouse/pull/67122) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлено аварийное завершение DistributedAsyncInsert при отсутствии соединения. [#67219](https://github.com/ClickHouse/ClickHouse/pull/67219) ([Pablo Marcos](https://github.com/pamarcos)). +* Исправлена ошибка, приводившая к сбою функций `uniq` и `uniqTheta` при использовании аргумента `tuple()`. Закрывает [#67303](https://github.com/ClickHouse/ClickHouse/issues/67303). [#67306](https://github.com/ClickHouse/ClickHouse/pull/67306) ([flynn](https://github.com/ucasfl)). +* Исправляет [#66026](https://github.com/ClickHouse/ClickHouse/issues/66026). Исключён обход неразрешённых аргументов табличных функций в `ReplaceTableNodeToDummyVisitor`. [#67522](https://github.com/ClickHouse/ClickHouse/pull/67522) ([Dmitry Novik](https://github.com/novikd)). +* Исправлено потенциальное переполнение стека в функции `JSONMergePatch`. Эта функция была переименована из `jsonMergePatch` в `JSONMergePatch`, так как прежнее имя было некорректным. Прежнее имя по-прежнему сохраняется для совместимости. Улучшена диагностика ошибок этой функции. Это исправление закрывает [#67304](https://github.com/ClickHouse/ClickHouse/issues/67304). [#67756](https://github.com/ClickHouse/ClickHouse/pull/67756) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлена ошибка разыменования NULL-указателя, приводившая к сбою сервера при выполнении специально сформированного запроса, использующего функции hopEnd, hopStart, tumbleEnd и tumbleStart. [#68098](https://github.com/ClickHouse/ClickHouse/pull/68098) ([Salvatore Mesoraca](https://github.com/aiven-sal)). +* Исправлена ошибка, из-за которой при фильтрации с использованием подзапросов некоторые системные таблицы могли показывать `Not-ready Set`. [#66018](https://github.com/ClickHouse/ClickHouse/pull/66018) ([Michael Kolupaev](https://github.com/al13n321)). +* Исправлено чтение подстолбцов после выполнения запроса `ALTER ADD COLUMN`. [#66243](https://github.com/ClickHouse/ClickHouse/pull/66243) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлены булевы литералы в запросах, отправляемых во внешние базы данных (для движков, таких как `PostgreSQL`). [#66282](https://github.com/ClickHouse/ClickHouse/pull/66282) ([vdimir](https://github.com/vdimir)). +* Исправлено форматирование запроса с псевдонимом выражения в JOIN ON: например, `... JOIN t2 ON (x = y) AS e ORDER BY x` следует форматировать как `... JOIN t2 ON ((x = y) AS e) ORDER BY x`. [#66312](https://github.com/ClickHouse/ClickHouse/pull/66312) ([vdimir](https://github.com/vdimir)). +* Исправлена работа cluster() с межсерверным секретом (изначальный пользователь сохраняется, как и раньше). [#66364](https://github.com/ClickHouse/ClickHouse/pull/66364) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена возможная ошибка времени выполнения при преобразовании поля типа Array, содержащего значения NULL, в Array(Variant). [#66727](https://github.com/ClickHouse/ClickHouse/pull/66727) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлена редкая взаимоблокировка в Context::getDDLWorker. [#66843](https://github.com/ClickHouse/ClickHouse/pull/66843) ([Alexander Gololobov](https://github.com/davenger)). +* Исправлена ошибка при создании таблицы KeeperMap после неполного удаления. [#66865](https://github.com/ClickHouse/ClickHouse/pull/66865) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлена ошибка «broken part» при восстановлении на диск `s3_plain_rewritable`. [#66881](https://github.com/ClickHouse/ClickHouse/pull/66881) ([Vitaly Baranov](https://github.com/vitlibar)). +* В редких случаях ClickHouse мог считать части повреждёнными из‑за неожиданных проекций на диске. Эта проблема устранена. [#66898](https://github.com/ClickHouse/ClickHouse/pull/66898) ([alesapin](https://github.com/alesapin)). +* Исправлена ошибка некорректного определения формата при выводе схемы, которая могла приводить к логической ошибке «Format {} doesn't support schema inference.». [#66899](https://github.com/ClickHouse/ClickHouse/pull/66899) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлена возможная взаимоблокировка при отмене запроса на параллельных репликах. [#66905](https://github.com/ClickHouse/ClickHouse/pull/66905) ([Nikita Taranov](https://github.com/nickitat)). +* Запретить `CREATE AS SELECT` даже если включена настройка `database_replicated_allow_heavy_create`. В версии 23.12 это было безусловно запрещено и по ошибке оказалось разрешено при включённой настройке в невыпущенной версии 24.7. [#66980](https://github.com/ClickHouse/ClickHouse/pull/66980) ([vdimir](https://github.com/vdimir)). +* Чтение из `numbers` могло некорректно приводить к выбрасыванию исключения при установленном лимите `max_rows_to_read`. Исправлена [#66992](https://github.com/ClickHouse/ClickHouse/issues/66992). [#66996](https://github.com/ClickHouse/ClickHouse/pull/66996) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлено корректное преобразование типов в оконные функции lagInFrame и leadInFrame, что исправляет msan-тест. [#67091](https://github.com/ClickHouse/ClickHouse/pull/67091) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* TRUNCATE DATABASE ранее останавливал репликацию так, как если бы выполнялся запрос DROP DATABASE; это исправлено. [#67129](https://github.com/ClickHouse/ClickHouse/pull/67129) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Выделен отдельный клиентский контекст в `clickhouse-local`. [#67133](https://github.com/ClickHouse/ClickHouse/pull/67133) ([Vitaly Baranov](https://github.com/vitlibar)). +* Исправлена ошибка `Cannot convert column because it is non constant in source stream but must be constant in result.` при выполнении запроса, который читает из таблицы `Merge` над таблицей `Distriburted` с одним сегментом. [#67146](https://github.com/ClickHouse/ClickHouse/pull/67146) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Обеспечено корректное поведение `ORDER BY all` при отключённом `enable_order_by_all` и использовании параллельных реплик (в том числе в распределённых запросах). [#67153](https://github.com/ClickHouse/ClickHouse/pull/67153) ([Igor Nikonov](https://github.com/devcrafter)). +* Исправлено некорректное использование `input_format_max_bytes_to_read_for_schema_inference` в кэше схем. [#67157](https://github.com/ClickHouse/ClickHouse/pull/67157) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлена утечка памяти при операции COUNT DISTINCT, если во время GROUP BY по одному ключу типа Nullable выбрасывалось исключение. [#67171](https://github.com/ClickHouse/ClickHouse/pull/67171) ([Jet He](https://github.com/compasses)). +* Исправлена ошибка оптимизации, приводившая к преобразованию OUTER JOIN в INNER JOIN. Это исправление закрывает [#67156](https://github.com/ClickHouse/ClickHouse/issues/67156). Это исправление закрывает [#66447](https://github.com/ClickHouse/ClickHouse/issues/66447). Ошибка была внесена в [https://github.com/ClickHouse/ClickHouse/pull/62907](https://github.com/ClickHouse/ClickHouse/pull/62907). [#67178](https://github.com/ClickHouse/ClickHouse/pull/67178) ([Maksim Kita](https://github.com/kitaisreal)). +* Исправлена ошибка `Conversion from AggregateFunction(name, Type) to AggregateFunction(name, Nullable(Type)) is not supported`. Ошибка была вызвана оптимизацией `optimize_rewrite_aggregate_function_with_if`. Исправление для [#67112](https://github.com/ClickHouse/ClickHouse/issues/67112). [#67229](https://github.com/ClickHouse/ClickHouse/pull/67229) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлено зависание запроса при использовании пустого кортежа в качестве левого аргумента (`lhs`) функции IN. [#67295](https://github.com/ClickHouse/ClickHouse/pull/67295) ([Duc Canh Le](https://github.com/canhld94)). +* Можно было создать очень глубоко вложенную JSON-структуру, которая вызывала переполнение стека при игнорировании неизвестных полей. Это закрывает [#67292](https://github.com/ClickHouse/ClickHouse/issues/67292). [#67324](https://github.com/ClickHouse/ClickHouse/pull/67324) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлено подключение таблицы ReplicatedMergeTree после возникновения исключения при запуске. [#67360](https://github.com/ClickHouse/ClickHouse/pull/67360) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлен сбой сегментации памяти, вызванный некорректным отсоединением от группы потоков в `Aggregator`. [#67385](https://github.com/ClickHouse/ClickHouse/pull/67385) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлен ещё один случай, когда в PK была задана недетерминированная функция. [#67395](https://github.com/ClickHouse/ClickHouse/pull/67395) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлена ошибка в индексе `bloom_filter`, из-за которой некорректно выполнялись запросы со слегка нетипичными условиями, такими как `(k=2)=(k=2)` или `has([1,2,3], k)`. [#67423](https://github.com/ClickHouse/ClickHouse/pull/67423) ([Michael Kolupaev](https://github.com/al13n321)). +* Корректно разбирать имя файла/URI, содержащее `::`, если это не архив. [#67433](https://github.com/ClickHouse/ClickHouse/pull/67433) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлено ожидание задач в ~WriteBufferFromS3 в случае отмены WriteBuffer. [#67459](https://github.com/ClickHouse/ClickHouse/pull/67459) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Защитить каталоги временных частей от удаления при выполнении RESTORE. [#67491](https://github.com/ClickHouse/ClickHouse/pull/67491) ([Vitaly Baranov](https://github.com/vitlibar)). +* Исправлено исполнение вложенных функций с коротким замыканием. [#67520](https://github.com/ClickHouse/ClickHouse/pull/67520) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлена логическая ошибка `Logical error: Expected the argument №N of type T to have X rows, but it has 0`. Она могла возникать в удалённом запросе с константным выражением в `GROUP BY` при использовании нового анализатора. [#67536](https://github.com/ClickHouse/ClickHouse/pull/67536) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлено соединение по кортежу с NULL: некоторые запросы с новым анализатором и `NULL` внутри кортежа в выражении `JOIN ON` возвращали некорректные результаты. [#67538](https://github.com/ClickHouse/ClickHouse/pull/67538) ([vdimir](https://github.com/vdimir)). +* Исправлено лишнее перепланирование FileCache::freeSpaceRatioKeepingThreadFunc() в случае полностью невытесняемого кэша. [#67540](https://github.com/ClickHouse/ClickHouse/pull/67540) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлена вставка в потоковые движки (Kafka, RabbitMQ, NATS) через HTTP-интерфейс. [#67554](https://github.com/ClickHouse/ClickHouse/pull/67554) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Исправлена ошибка в функции `toStartOfWeek`, которая возвращала неверный результат для малых значений типа `DateTime64`. [#67558](https://github.com/ClickHouse/ClickHouse/pull/67558) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Исправлена ошибка при создании представления с рекурсивным CTE. [#67587](https://github.com/ClickHouse/ClickHouse/pull/67587) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Исправлена логическая ошибка `Logical error: 'file_offset_of_buffer_end <= read_until_position'` в кэше файловой системы. Закрывает [#57508](https://github.com/ClickHouse/ClickHouse/issues/57508). [#67623](https://github.com/ClickHouse/ClickHouse/pull/67623) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлена [#62282](https://github.com/ClickHouse/ClickHouse/issues/62282). Удалён вызов `convertFieldToString()` и добавлен типоспецифичный код сериализации. Подстановка параметризованных представлений не работала для нескольких типов данных, когда значение параметра представляло собой функцию или выражение, возвращающее экземпляр типа данных. [#67654](https://github.com/ClickHouse/ClickHouse/pull/67654) ([Shankar](https://github.com/shiyer7474)). +* Исправлен сбой при выполнении `percent_rank`. Тип фрейма по умолчанию для `percent_rank` изменён на `range unbounded preceding and unbounded following`. Теперь учитывается фрейм окна по умолчанию для `IWindowFunction`, и оконные функции без явного определения фрейма окна в SQL могут корректно помещаться в различные трансформеры `WindowTransfomer`. [#67661](https://github.com/ClickHouse/ClickHouse/pull/67661) ([lgbo](https://github.com/lgbo-ustc)). +* Исправлена повторная загрузка SQL UDF с оператором UNION. Ранее после перезапуска сервера UDF могла становиться недействительной. [#67665](https://github.com/ClickHouse/ClickHouse/pull/67665) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлена возможная логическая ошибка «Unexpected return type from if» при использовании экспериментального типа Variant и включённой настройки `use_variant_as_common_type ` в функции if при работе с типами Tuple и Map. [#67687](https://github.com/ClickHouse/ClickHouse/pull/67687) ([Kruglov Pavel](https://github.com/Avogar)). +* Из-за ошибки в ядре Linux запрос может повиснуть в `TimerDescriptor::drain`. Это исправление закрывает [#37686](https://github.com/ClickHouse/ClickHouse/issues/37686). [#67702](https://github.com/ClickHouse/ClickHouse/pull/67702) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлено завершение выполнения команды `RESTORE ON CLUSTER`. [#67720](https://github.com/ClickHouse/ClickHouse/pull/67720) ([Vitaly Baranov](https://github.com/vitlibar)). +* Исправлено зависание словаря при ошибке CANNOT_SCHEDULE_TASK во время загрузки. [#67751](https://github.com/ClickHouse/ClickHouse/pull/67751) ([Azat Khuzhin](https://github.com/azat)). +* Запросы вида `SELECT count() FROM t WHERE cast(c = 1 or c = 9999 AS Bool) SETTINGS use_skip_indexes=1` с индексами bloom-фильтра по `c` теперь работают корректно. [#67781](https://github.com/ClickHouse/ClickHouse/pull/67781) ([jsc0218](https://github.com/jsc0218)). +* Исправлен неверный результат агрегации в некоторых запросах с агрегацией без ключей и фильтра, закрыт [#67419](https://github.com/ClickHouse/ClickHouse/issues/67419). [#67804](https://github.com/ClickHouse/ClickHouse/pull/67804) ([vdimir](https://github.com/vdimir)). +* Выполняется проверка экспериментальных/подозрительных типов данных при ALTER ADD/MODIFY COLUMN. [#67911](https://github.com/ClickHouse/ClickHouse/pull/67911) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлен разбор DateTime64 после свертки констант в распределенных запросах, закрыт [#66773](https://github.com/ClickHouse/ClickHouse/issues/66773). [#67920](https://github.com/ClickHouse/ClickHouse/pull/67920) ([vdimir](https://github.com/vdimir)). +* Исправлена ошибка, приводившая к некорректному результату `count()` при наличии недетерминированной функции в предикате. [#67922](https://github.com/ClickHouse/ClickHouse/pull/67922) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Исправлен расчет максимального мягкого лимита на число потоков в контейнеризованных средах, где ограничено доступное число CPU. [#67963](https://github.com/ClickHouse/ClickHouse/pull/67963) ([Robert Schulze](https://github.com/rschu1ze)). +* Теперь ClickHouse не считает часть повреждённой, если проекция отсутствует на диске, но указана в `checksums.txt`. [#68003](https://github.com/ClickHouse/ClickHouse/pull/68003) ([alesapin](https://github.com/alesapin)). +* Исправлен пропуск нетронутых частей в мутациях с новым анализатором. Ранее при включённом анализаторе данные в части могли быть перезаписаны мутацией, даже если согласно предикату мутация не затрагивала эту часть. [#68052](https://github.com/ClickHouse/ClickHouse/pull/68052) ([Anton Popov](https://github.com/CurtizJ)). +* Убирает некорректную оптимизацию, которая удаляла сортировку в подзапросах, использующих `OFFSET`. Исправляет [#67906](https://github.com/ClickHouse/ClickHouse/issues/67906). [#68099](https://github.com/ClickHouse/ClickHouse/pull/68099) ([Graham Campbell](https://github.com/GrahamCampbell)). +* Попытка исправить `Block structure mismatch in AggregatingStep stream: different types` для оптимизации projection агрегатов. [#68107](https://github.com/ClickHouse/ClickHouse/pull/68107) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Попытка исправить аварийное завершение postgres при отмене запроса. [#68288](https://github.com/ClickHouse/ClickHouse/pull/68288) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлено отсутствие режима синхронизации реплики в запросе `SYSTEM SYNC REPLICA`. [#68326](https://github.com/ClickHouse/ClickHouse/pull/68326) ([Duc Canh Le](https://github.com/canhld94)). + +### Релиз ClickHouse 24.7 от 2024-07-30. [Презентация](https://presentations.clickhouse.com/2024-release-24.7/), [видео](https://www.youtube.com/watch?v=GerQFdJCk7A) {#a-id247a-clickhouse-release-247-2024-07-30} + + + +#### Обратное несовместимое изменение {#backward-incompatible-change-5} + +* Запрещена конструкция `CRATE MATERIALIZED VIEW ... ENGINE Replicated*MergeTree POPULATE AS SELECT ...` с реплицируемыми базами данных. [#63963](https://github.com/ClickHouse/ClickHouse/pull/63963) ([vdimir](https://github.com/vdimir)). +* `clickhouse-keeper-client` теперь принимает пути только в строковых литералах, таких как `ls '/hello/world'`, а не строки без кавычек, такие как `ls /hello/world`. [#65494](https://github.com/ClickHouse/ClickHouse/pull/65494) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Метрика `KeeperOutstandingRequets` была переименована в `KeeperOutstandingRequests`. [#66206](https://github.com/ClickHouse/ClickHouse/pull/66206) ([Robert Schulze](https://github.com/rschu1ze)). +* Поле `is_deterministic` удалено из таблицы `system.functions`. [#66630](https://github.com/ClickHouse/ClickHouse/pull/66630) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Функция `tuple` теперь будет пытаться конструировать именованные кортежи в запросе (поведение управляется настройкой `enable_named_columns_in_function_tuple`). Добавлена функция `tupleNames` для извлечения имён из кортежей. [#54881](https://github.com/ClickHouse/ClickHouse/pull/54881) ([Amos Bird](https://github.com/amosbird)). +* Изменён принцип работы дедупликации для Materialized Views. Исправлено множество случаев, таких как: - для целевой таблицы: данные разбиваются на 2 или более блока, и эти блоки считаются дубликатами, когда блок вставляется параллельно; - для целевой таблицы MV: одинаковые блоки дедуплицируются, что происходит, когда MV часто выдаёт одинаковые данные как результат для разных входных данных из‑за выполнения агрегации; - для целевой таблицы MV: одинаковые блоки, которые поступают из разных MV, дедуплицируются. [#61601](https://github.com/ClickHouse/ClickHouse/pull/61601) ([Sema Checherinda](https://github.com/CheSema)). +* Функции `bitShiftLeft` и `bitShitfRight` теперь возвращают ошибку при выходе позиции сдвига за пределы допустимого диапазона. [#65838](https://github.com/ClickHouse/ClickHouse/pull/65838) ([Pablo Marcos](https://github.com/pamarcos)). + +#### Новые возможности {#new-feature-5} + +* Добавлена поддержка `ASOF JOIN` для алгоритма `full_sorting_join`. [#55051](https://github.com/ClickHouse/ClickHouse/pull/55051) ([vdimir](https://github.com/vdimir)). +* Добавлена поддержка аутентификации по JWT в `clickhouse-client` (будет доступна только в ClickHouse Cloud). [#62829](https://github.com/ClickHouse/ClickHouse/pull/62829) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Добавлены SQL-функции `changeYear`, `changeMonth`, `changeDay`, `changeHour`, `changeMinute`, `changeSecond`. Например, `SELECT changeMonth(toDate('2024-06-14'), 7)` возвращает дату `2024-07-14`. [#63186](https://github.com/ClickHouse/ClickHouse/pull/63186) ([cucumber95](https://github.com/cucumber95)). +* Добавлены стартовые скрипты, которые позволяют выполнять преднастроенные запросы на этапе запуска. [#64889](https://github.com/ClickHouse/ClickHouse/pull/64889) ([pufit](https://github.com/pufit)). +* Добавлена поддержка accept_invalid_certificate в конфигурации клиента, чтобы разрешить подключение по защищённому TCP к серверу с самоподписанным сертификатом — может использоваться как сокращённая форма для соответствующих настроек клиента `openSSL` `verificationMode=none` + `invalidCertificateHandler.name=AcceptCertificateHandler`. [#65238](https://github.com/ClickHouse/ClickHouse/pull/65238) ([peacewalker122](https://github.com/peacewalker122)). +* Добавлена таблица system.error_log, которая содержит историю значений ошибок из таблицы system.errors и периодически сбрасывается на диск. [#65381](https://github.com/ClickHouse/ClickHouse/pull/65381) ([Pablo Marcos](https://github.com/pamarcos)). +* Добавлена агрегатная функция `groupConcat`. Примерно то же самое, что `arrayStringConcat(groupArray(column), ',')`. Может принимать 2 параметра: строковый разделитель и количество обрабатываемых элементов. [#65451](https://github.com/ClickHouse/ClickHouse/pull/65451) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Добавлено хранилище AzureQueue. [#65458](https://github.com/ClickHouse/ClickHouse/pull/65458) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Добавлена новая настройка для включения/отключения записи индекса страниц в файлы Parquet. [#65475](https://github.com/ClickHouse/ClickHouse/pull/65475) ([lgbo](https://github.com/lgbo-ustc)). +* Добавлен параметр конфигурации сервера `logger.console_log_level` для управления уровнем логирования в консоль (если оно включено). [#65559](https://github.com/ClickHouse/ClickHouse/pull/65559) ([Azat Khuzhin](https://github.com/azat)). +* Автоматически добавляется подстановочный символ `*` в конец пути каталога в табличной функции `file`. [#66019](https://github.com/ClickHouse/ClickHouse/pull/66019) ([Zhidong (David) Guo](https://github.com/Gun9niR)). +* Добавлена опция `--memory-usage` для клиента в неинтерактивном режиме. [#66393](https://github.com/ClickHouse/ClickHouse/pull/66393) ([vdimir](https://github.com/vdimir)). +* Реализован интерактивный клиент для clickhouse-disks, добавлено добавление локального диска из локального каталога. [#64446](https://github.com/ClickHouse/ClickHouse/pull/64446) ([Daniil Ivanik](https://github.com/divanik)). +* Когда легковесное удаление выполняется в таблице с проекциями, пользователь может либо получить исключение (по умолчанию), либо удалить проекцию. [#65594](https://github.com/ClickHouse/ClickHouse/pull/65594) ([jsc0218](https://github.com/jsc0218)). +* Добавлены системные таблицы с основной информацией обо всех отсоединённых таблицах. [#65400](https://github.com/ClickHouse/ClickHouse/pull/65400) ([Konstantin Morozov](https://github.com/k-morozov)). + +#### Экспериментальная функциональность {#experimental-feature-4} + +* Изменена двоичная сериализация типа данных `Variant`: добавлен режим `compact`, чтобы избежать повторной записи одного и того же дискриминатора для гранул с единственным вариантом или только со значениями NULL. Добавлена настройка MergeTree `use_compact_variant_discriminators_serialization`, которая включена по умолчанию. Обратите внимание, что тип Variant всё ещё является экспериментальным, и обратно несовместимое изменение в сериализации допустимо. [#62774](https://github.com/ClickHouse/ClickHouse/pull/62774) ([Kruglov Pavel](https://github.com/Avogar)). +* Добавлена поддержка файлового (on-disk) бэкенд-хранилища для clickhouse-keeper. [#56626](https://github.com/ClickHouse/ClickHouse/pull/56626) ([Han Fei](https://github.com/hanfei1991)). +* Рефакторинг функций JSONExtract, добавлена поддержка большего числа типов, включая экспериментальный тип Dynamic. [#66046](https://github.com/ClickHouse/ClickHouse/pull/66046) ([Kruglov Pavel](https://github.com/Avogar)). +* Добавлена поддержка подстолбца null map для подстолбцов `Variant` и `Dynamic`. [#66178](https://github.com/ClickHouse/ClickHouse/pull/66178) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлено чтение подстолбцов `Dynamic` из изменённой таблицы `Memory`. Ранее, если параметр `max_types` типа Dynamic был изменён в таблице Memory через ALTER, последующее чтение подстолбцов могло возвращать неверный результат. [#66066](https://github.com/ClickHouse/ClickHouse/pull/66066) ([Kruglov Pavel](https://github.com/Avogar)). +* Добавлена поддержка `cluster_for_parallel_replicas` при использовании параллельных реплик с пользовательским ключом. Это позволяет использовать параллельные реплики с пользовательским ключом для таблиц MergeTree. [#65453](https://github.com/ClickHouse/ClickHouse/pull/65453) ([Antonio Andelic](https://github.com/antonio2368)). + +#### Повышение производительности {#performance-improvement-5} + +* Заменён алгоритм преобразования int в string на более быстрый (с модифицированного amdn/itoa на модифицированный jeaiii/itoa). [#61661](https://github.com/ClickHouse/ClickHouse/pull/61661) ([Raúl Marín](https://github.com/Algunenano)). +* Размеры хэш-таблиц, создаваемых `join` (алгоритм `parallel_hash`), теперь измеряются и кэшируются. Эта информация будет использоваться для предварительного выделения памяти в хэш-таблицах для последующих выполнений запросов и экономии времени на их переразмеривание. [#64553](https://github.com/ClickHouse/ClickHouse/pull/64553) ([Nikita Taranov](https://github.com/nickitat)). +* Оптимизированы запросы с `ORDER BY` по первичному ключу и `WHERE` с условием высокой селективности за счёт буферизации. Управляется настройкой `read_in_order_use_buffering` (включена по умолчанию) и может увеличить потребление памяти запросом. [#64607](https://github.com/ClickHouse/ClickHouse/pull/64607) ([Anton Popov](https://github.com/CurtizJ)). +* Улучшена производительность загрузки метаданных `plain_rewritable`. [#65634](https://github.com/ClickHouse/ClickHouse/pull/65634) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Подключение таблиц на дисках только для чтения теперь использует меньше ресурсов за счёт пропуска загрузки устаревших частей. [#65635](https://github.com/ClickHouse/ClickHouse/pull/65635) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена поддержка minmax-гиперпрямоугольника для индексов Set. [#65676](https://github.com/ClickHouse/ClickHouse/pull/65676) ([AntiTopQuark](https://github.com/AntiTopQuark)). +* Выгружается первичный индекс устаревших частей для снижения общего потребления памяти. [#65852](https://github.com/ClickHouse/ClickHouse/pull/65852) ([Anton Popov](https://github.com/CurtizJ)). +* Функции `replaceRegexpAll` и `replaceRegexpOne` теперь значительно быстрее, если шаблон тривиален, то есть не содержит метасимволов, классов символов, флагов, группирующих символов и т. п. (Спасибо Taiyang Li). [#66185](https://github.com/ClickHouse/ClickHouse/pull/66185) ([Robert Schulze](https://github.com/rschu1ze)). +* Запросы к S3: уменьшено время ожидания между повторами для запросов, увеличено количество повторов для бэкапов. 8,5 минут и 100 повторов для запросов, 1,2 часа и 1000 повторов для восстановления бэкапа. [#65232](https://github.com/ClickHouse/ClickHouse/pull/65232) ([Sema Checherinda](https://github.com/CheSema)). +* Добавлена поддержка оптимизации LIMIT на уровне плана запроса. Добавлена поддержка проталкивания LIMIT (LIMIT pushdown) для хранилища и табличной функции PostgreSQL. [#65454](https://github.com/ClickHouse/ClickHouse/pull/65454) ([Maksim Kita](https://github.com/kitaisreal)). +* Улучшено балансирование нагрузки ZooKeeper. Текущая сессия не истекает до тех пор, пока не станут доступны оптимальные узлы, несмотря на `fallback_session_lifetime`. Добавлена поддержка балансировки с учётом зон доступности (AZ-aware balancing). [#65570](https://github.com/ClickHouse/ClickHouse/pull/65570) ([Alexander Tokmakov](https://github.com/tavplubix)). +* DatabaseCatalog теперь удаляет таблицы быстрее, используя до database_catalog_drop_table_concurrency потоков. [#66065](https://github.com/ClickHouse/ClickHouse/pull/66065) ([Sema Checherinda](https://github.com/CheSema)). + +#### Улучшение {#improvement-5} + +* Улучшена балансировка нагрузки ZooKeeper. Текущая сессия не истекает, пока оптимальные узлы не станут доступны, несмотря на `fallback_session_lifetime`. Добавлена поддержка балансировки с учетом зон доступности (AZ). [#65570](https://github.com/ClickHouse/ClickHouse/pull/65570) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Настройка `optimize_trivial_insert_select` по умолчанию отключена. В большинстве случаев это должно быть полезно. Однако, если вы наблюдаете более медленный INSERT SELECT или повышенное потребление памяти, вы можете снова её включить или выполнить `SET compatibility = '24.6'`. [#58970](https://github.com/ClickHouse/ClickHouse/pull/58970) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Выводить стек вызовов и диагностическую информацию при сбое `clickhouse-client` или `clickhouse-local`. [#61109](https://github.com/ClickHouse/ClickHouse/pull/61109) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Ранее результат выполнения `SHOW INDEX | INDEXES | INDICES | KEYS` сортировался по именам столбцов первичного ключа. Поскольку это оказалось неочевидным, теперь результат сортируется по порядку столбцов первичного ключа в определении первичного ключа. [#61131](https://github.com/ClickHouse/ClickHouse/pull/61131) ([Robert Schulze](https://github.com/rschu1ze)). +* Изменён механизм дедупликации для Materialized Views. Исправлен ряд случаев, в том числе: - для таблицы назначения: данные разбиваются на 2 и более блока, и эти блоки ошибочно считаются дубликатами при их параллельной вставке; - для таблицы назначения MV: одинаковые блоки дедуплицируются в ситуациях, когда MV из-за агрегации часто выдаёт одинаковый результат для разных входных данных; - для таблицы назначения MV: одинаковые блоки, поступающие из разных MV, дедуплицируются. [#61601](https://github.com/ClickHouse/ClickHouse/pull/61601) ([Sema Checherinda](https://github.com/CheSema)). +* Поддержка чтения партиционированных данных Delta Lake. Определение схемы Delta Lake по метаданным, а не по самим данным. [#63201](https://github.com/ClickHouse/ClickHouse/pull/63201) ([Kseniia Sumarokova](https://github.com/kssenii)). +* В composable-протоколах слой TLS принимал только параметры `certificateFile` и `privateKeyFile`. [https://clickhouse.com/docs/operations/settings/composable-protocols](https://clickhouse.com/docs/operations/settings/composable-protocols). [#63985](https://github.com/ClickHouse/ClickHouse/pull/63985) ([Anton Ivashkin](https://github.com/ianton-ru)). +* Добавлено профилируемое событие `SelectQueriesWithPrimaryKeyUsage`, которое показывает, сколько запросов SELECT используют первичный ключ при вычислении условия WHERE. [#64492](https://github.com/ClickHouse/ClickHouse/pull/64492) ([0x01f](https://github.com/0xfei)). +* Исправления и улучшения, связанные с `StorageS3Queue`. Значение по умолчанию для `s3queue_processing_threads_num` теперь определяется в соответствии с количеством физических ядер CPU на сервере (вместо прежнего значения по умолчанию — 1). Значение по умолчанию для `s3queue_loading_retries` установлено равным 10. Исправлено возможное неконкретное сообщение «Uncaught exception» в столбце исключения таблицы `system.s3queue`. Счётчик повторных попыток больше не увеличивается при исключении `MEMORY_LIMIT_EXCEEDED`. Фиксация файлов перенесена на этап после полного завершения вставки в таблицу, чтобы избежать ситуации, когда файлы фиксируются до их вставки. Добавлены настройки `s3queue_max_processed_files_before_commit`, `s3queue_max_processed_rows_before_commit`, `s3queue_max_processed_bytes_before_commit`, `s3queue_max_processing_time_sec_before_commit` для более точного контроля момента фиксации и времени сброса. [#65046](https://github.com/ClickHouse/ClickHouse/pull/65046) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Поддержка алиасов в параметризованной функции представления (только для нового анализатора). [#65190](https://github.com/ClickHouse/ClickHouse/pull/65190) ([Kseniia Sumarokova](https://github.com/kssenii)). +* В azureBlobStorage реализована маскировка ключа учетной записи в логах. [#65273](https://github.com/ClickHouse/ClickHouse/pull/65273) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)). +* Отсечение партиций для предикатов `IN`, когда выражение фильтра является частью выражения `PARTITION BY`. [#65335](https://github.com/ClickHouse/ClickHouse/pull/65335) ([Eduard Karacharov](https://github.com/korowa)). +* `arrayMin`/`arrayMax` могут применяться ко всем сравнимым типам данных. [#65455](https://github.com/ClickHouse/ClickHouse/pull/65455) ([pn](https://github.com/chloro-pn)). +* Улучшен учет использования памяти для cgroups v2, чтобы исключать объем, занимаемый кэшем страниц. [#65470](https://github.com/ClickHouse/ClickHouse/pull/65470) ([Nikita Taranov](https://github.com/nickitat)). +* Не создавать настройки формата для каждой строки при сериализации фрагментов для вставки в таблицу EmbeddedRocksDB. [#65474](https://github.com/ClickHouse/ClickHouse/pull/65474) ([Duc Canh Le](https://github.com/canhld94)). +* Сокращено приглашение `clickhouse-local` до просто `:)`. `getFQDNOrHostName()` слишком долго выполняется в macOS, и в любом случае мы не хотим отображать имя хоста в приглашении `clickhouse-local`. [#65510](https://github.com/ClickHouse/ClickHouse/pull/65510) ([Konstantин Bogdanov](https://github.com/thevar1able)). +* Не выводить сообщение jemalloc о per-CPU аренах на маломощных виртуальных машинах. [#65532](https://github.com/ClickHouse/ClickHouse/pull/65532) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Отключить фоновую загрузку файлового кэша по умолчанию. Она будет снова включена, когда мы исправим проблему с возможным "Memory limit exceeded", поскольку освобождение памяти выполняется вне контекста запроса (в то время как буфер выделяется внутри контекста запроса), если используются фоновые потоки загрузки. Кроме того, нам нужно добавить отдельную настройку для задания максимального объема данных, загружаемых фоновыми воркерами (сейчас он ограничен max_file_segment_size, что может быть слишком большим). [#65534](https://github.com/ClickHouse/ClickHouse/pull/65534) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Добавлен новый параметр конфигурации ``, который задаёт, как часто ClickHouse будет перезагружать конфигурацию. [#65545](https://github.com/ClickHouse/ClickHouse/pull/65545) ([alesapin](https://github.com/alesapin)). +* Реализована двоичная кодировка для типов данных ClickHouse и добавлена её спецификация в документацию. Она используется в Dynamic binary serialization, также её можно задействовать в форматах RowBinaryWithNamesAndTypes и Native через настройки. [#65546](https://github.com/ClickHouse/ClickHouse/pull/65546) ([Kruglov Pavel](https://github.com/Avogar)). +* Настройки сервера `compiled_expression_cache_size` и `compiled_expression_cache_elements_size` теперь отображаются в `system.server_settings`. [#65584](https://github.com/ClickHouse/ClickHouse/pull/65584) ([Robert Schulze](https://github.com/rschu1ze)). +* Добавлена поддержка идентификации пользователей по расширению SubjectAltName в сертификатах x509. [#65626](https://github.com/ClickHouse/ClickHouse/pull/65626) ([Anton Kozlov](https://github.com/tonickkozlov)). +* `clickhouse-local` теперь учитывает параметры `max_server_memory_usage` и `max_server_memory_usage_to_ram_ratio` из файла конфигурации. По умолчанию он также устанавливает максимальный объем используемой памяти на уровне 90% от объема памяти системы, как это делает `clickhouse-server`. [#65697](https://github.com/ClickHouse/ClickHouse/pull/65697) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлен скрипт для резервного копирования файлов в ClickHouse. [#65699](https://github.com/ClickHouse/ClickHouse/pull/65699) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена поддержка отмены запросов для источника PostgreSQL. [#65722](https://github.com/ClickHouse/ClickHouse/pull/65722) ([Maksim Kita](https://github.com/kitaisreal)). +* Сделать так, чтобы параметр `allow_experimental_analyzer` контролировался инициатором для распределённых запросов. Это обеспечивает совместимость и корректность работы в кластерах со смешанными версиями. [#65777](https://github.com/ClickHouse/ClickHouse/pull/65777) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Соблюдать лимит CPU cgroup в Keeper. [#65819](https://github.com/ClickHouse/ClickHouse/pull/65819) ([Antonio Andelic](https://github.com/antonio2368)). +* Добавлена возможность использовать функцию `concat` с пустыми аргументами: `:) select concat();`. [#65887](https://github.com/ClickHouse/ClickHouse/pull/65887) ([李扬](https://github.com/taiyang-li)). +* Добавлена возможность управлять именованными коллекциями в `clickhouse-local`. [#65973](https://github.com/ClickHouse/ClickHouse/pull/65973) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Улучшены события профилирования, связанные с Azure. [#65999](https://github.com/ClickHouse/ClickHouse/pull/65999) ([alesapin](https://github.com/alesapin)). +* Добавлена поддержка чтения файлов ORC с учётом часового пояса источника записи. [#66025](https://github.com/ClickHouse/ClickHouse/pull/66025) ([kevinyhzou](https://github.com/KevinyhZou)). +* Добавлены настройки для управления соединениями с PostgreSQL. Настройка `postgresql_connection_attempt_timeout` задаёт значение, передаваемое параметру `connect_timeout` URL-подключения. Настройка `postgresql_connection_pool_retries` задаёт количество попыток установления соединения с конечной точкой PostgreSQL. [#66232](https://github.com/ClickHouse/ClickHouse/pull/66232) ([Dmitry Novik](https://github.com/novikd)). +* Уменьшена погрешность значений `input_wait_elapsed_us`/`elapsed_us` в `system.processors_profile_log`. [#66239](https://github.com/ClickHouse/ClickHouse/pull/66239) ([Azat Khuzhin](https://github.com/azat)). +* Улучшены ProfileEvents для кэша файловой системы. [#66249](https://github.com/ClickHouse/ClickHouse/pull/66249) ([zhukai](https://github.com/nauu)). +* Добавлены настройки, позволяющие игнорировать предложение `ON CLUSTER` в запросах для управления именованными коллекциями при использовании реплицируемого хранилища. [#66288](https://github.com/ClickHouse/ClickHouse/pull/66288) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* Функция `generateSnowflakeID` теперь позволяет указывать идентификатор машины в качестве параметра, чтобы избежать коллизий в крупных кластерах. [#66374](https://github.com/ClickHouse/ClickHouse/pull/66374) ([ZAWA_ll](https://github.com/Zawa-ll)). +* Отключено приостановление по `Ctrl+Z` в интерактивном режиме. Это распространённая ловушка и поведение, которого почти никто из пользователей не ожидает. Полагаю, только немногие особо продвинутые пользователи могут оценить приостановку терминальных приложений с переводом их в фоновый режим, но я таких не знаю. [#66511](https://github.com/ClickHouse/ClickHouse/pull/66511) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена опция проверки типа первичного ключа в Dictionaries. Без этой опции при использовании простых layout любой тип столбца будет неявно преобразован в UInt64. [#66595](https://github.com/ClickHouse/ClickHouse/pull/66595) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). + +#### Исправление ошибки (некорректное поведение, заметное пользователю, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-4} + +* Проверяем циклические зависимости в запросах CREATE/REPLACE/RENAME/EXCHANGE и выбрасываем исключение, если обнаружена такая зависимость. Ранее это могло приводить к взаимоблокировке при запуске сервера. Также исправлены некоторые ошибки при создании зависимостей. [#65405](https://github.com/ClickHouse/ClickHouse/pull/65405) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлена проблема с неожиданными размерами столбцов `LowCardinality` при вызове функций. [#65298](https://github.com/ClickHouse/ClickHouse/pull/65298) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлено аварийное завершение в maxIntersections. [#65689](https://github.com/ClickHouse/ClickHouse/pull/65689) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена ошибка, из-за которой предложение `VALID UNTIL` в определении пользователя сбрасывалось после перезапуска. [#66409](https://github.com/ClickHouse/ClickHouse/pull/66409) ([Nikolay Degterinsky](https://github.com/evillique)). +* Исправлен столбец с оставшимся временем в `SHOW MERGES`. [#66735](https://github.com/ClickHouse/ClickHouse/pull/66735) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Сообщение `Query was cancelled` могло выводиться дважды в clickhouse-client. Это поведение исправлено. [#66005](https://github.com/ClickHouse/ClickHouse/pull/66005) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Исправлено падение при использовании `MaterializedMySQL` (неподдерживаемой экспериментальной функции) с TABLE OVERRIDE, сопоставляющим поле MySQL со значением NULL полю ClickHouse, не допускающему значений NULL. [#54649](https://github.com/ClickHouse/ClickHouse/pull/54649) ([Filipp Ozinov](https://github.com/bakwc)). +* Исправлена логическая ошибка, возникавшая, когда выражение `PREWHERE` не читало никаких столбцов, а в таблице не была включена адаптивная гранулярность индекса (очень старая таблица). [#59173](https://github.com/ClickHouse/ClickHouse/pull/59173) ([Alexander Gololobov](https://github.com/davenger)). +* Исправлена ошибка в буфере отмены при отмене запроса. [#64478](https://github.com/ClickHouse/ClickHouse/pull/64478) ([Sema Checherinda](https://github.com/CheSema)). +* Исправлено заполнение столбцов частей по метаданным (когда `columns.txt` не существует). [#64757](https://github.com/ClickHouse/ClickHouse/pull/64757) ([Azat Khuzhin](https://github.com/azat)). +* Исправлено аварийное завершение работы при выполнении `ALTER TABLE ... ON CLUSTER ... MODIFY SQL SECURITY`. [#64957](https://github.com/ClickHouse/ClickHouse/pull/64957) ([pufit](https://github.com/pufit)). +* Исправлен сбой при уничтожении AccessControl: добавлено явное завершение работы. [#64993](https://github.com/ClickHouse/ClickHouse/pull/64993) ([Vitaly Baranov](https://github.com/vitlibar)). +* Рекурсивно исключена инъективная функция из аргумента функций `uniq*`. Ранее это работало корректно, но было сломано в новом анализаторе. [#65140](https://github.com/ClickHouse/ClickHouse/pull/65140) ([Duc Canh Le](https://github.com/canhld94)). +* Исправлено неожиданное имя проекции при выполнении запроса с CTE. [#65267](https://github.com/ClickHouse/ClickHouse/pull/65267) ([wudidapaopao](https://github.com/wudidapaopao)). +* Теперь требуется привилегия `dictGet` при доступе к словарям в прямых запросах или через движок таблицы `Dictionary`. [#65359](https://github.com/ClickHouse/ClickHouse/pull/65359) ([Joe Lynch](https://github.com/joelynch)). +* Исправлена аутентификация в S3 для отдельных пользователей при инкрементных резервных копиях. [#65481](https://github.com/ClickHouse/ClickHouse/pull/65481) ([Antonio Andelic](https://github.com/antonio2368)). +* Отключена оптимизация `non-intersecting-parts` для запросов с `FINAL` в случае, если была включена оптимизация `read-in-order`. Это могло приводить к некорректным результатам запросов. В качестве временного решения отключите `do_not_merge_across_partitions_select_final` и `split_parts_ranges_into_intersecting_and_non_intersecting_final` до включения этого исправления. [#65505](https://github.com/ClickHouse/ClickHouse/pull/65505) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлена ошибка, приводившая к возникновению исключения `Index out of bound for blob metadata` в случае, когда все файлы из списка в батче были отфильтрованы. [#65523](https://github.com/ClickHouse/ClickHouse/pull/65523) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлена ошибка NOT_FOUND_COLUMN_IN_BLOCK при слиянии проекции с дедупликацией. [#65573](https://github.com/ClickHouse/ClickHouse/pull/65573) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Исправлена ошибка в MergeJoin. Столбец в разрежённой сериализации мог интерпретироваться как столбец его вложенного типа, хотя требуемое преобразование не было выполнено. [#65632](https://github.com/ClickHouse/ClickHouse/pull/65632) ([Nikita Taranov](https://github.com/nickitat)). +* Исправлена ошибка, из-за которой уровень совместимости '23.4' применялся некорректно. [#65737](https://github.com/ClickHouse/ClickHouse/pull/65737) ([cw5121](https://github.com/cw5121)). +* Исправлена таблица ODBC с полями Nullable. [#65738](https://github.com/ClickHouse/ClickHouse/pull/65738) ([Rodolphe Dugé de Bernonville](https://github.com/RodolpheDuge)). +* Исправлена гонка данных в `TCPHandler`, которая могла возникнуть при фатальной ошибке. [#65744](https://github.com/ClickHouse/ClickHouse/pull/65744) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлены некорректные исключения в функции `parseDateTime` при использовании плейсхолдеров `%F` и `%D`. [#65768](https://github.com/ClickHouse/ClickHouse/pull/65768) ([Antonio Andelic](https://github.com/antonio2368)). +* Для запросов к `PostgreSQL` при завершении запроса `ClickHouse` отменять внутренний запрос `PostgreSQL`. В противном случае запрос `ClickHouse` нельзя отменить, пока не завершится внутренний запрос `PostgreSQL`. [#65771](https://github.com/ClickHouse/ClickHouse/pull/65771) ([Maksim Kita](https://github.com/kitaisreal)). +* Исправлена ошибка в логике вычислений с коротким замыканием при использовании старого анализатора и dictGetOrDefault. [#65802](https://github.com/ClickHouse/ClickHouse/pull/65802) ([jsc0218](https://github.com/jsc0218)). +* Исправлена ошибка, из-за которой EmbeddedRocksDB с TTL записывал повреждённые файлы SST. [#65816](https://github.com/ClickHouse/ClickHouse/pull/65816) ([Duc Canh Le](https://github.com/canhld94)). +* Функции `bitTest`, `bitTestAll` и `bitTestAny` теперь возвращают ошибку, если указанный индекс бита выходит за пределы допустимого диапазона [#65818](https://github.com/ClickHouse/ClickHouse/pull/65818) ([Pablo Marcos](https://github.com/pamarcos)). +* Настройка `join_any_take_last_row` поддерживается во всех запросах с хеш-соединением. [#65820](https://github.com/ClickHouse/ClickHouse/pull/65820) ([vdimir](https://github.com/vdimir)). +* Улучшена обработка условий соединения, включающих проверки `IS NULL` (например, выражение `ON (a = b AND (a IS NOT NULL) AND (b IS NOT NULL) ) OR ( (a IS NULL) AND (b IS NULL) )` переписывается в `ON a <=> b`), исправлена некорректная оптимизация, возникавшая при наличии условий, помимо `IS NULL`. [#65835](https://github.com/ClickHouse/ClickHouse/pull/65835) ([vdimir](https://github.com/vdimir)). +* Исправлен рост потребления памяти в S3Queue. [#65839](https://github.com/ClickHouse/ClickHouse/pull/65839) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлена обработка совпадающих значений в `arrayAUC` для соответствия реализации sklearn. [#65840](https://github.com/ClickHouse/ClickHouse/pull/65840) ([gabrielmcg44](https://github.com/gabrielmcg44)). +* Исправлены возможные проблемы с TLS-соединениями по протоколу MySQL-сервера. [#65917](https://github.com/ClickHouse/ClickHouse/pull/65917) ([Azat Khuzhin](https://github.com/azat)). +* Исправлены возможные проблемы с TLS‑соединениями клиентского протокола MySQL. [#65938](https://github.com/ClickHouse/ClickHouse/pull/65938) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена обработка `SSL_ERROR_WANT_READ`/`SSL_ERROR_WANT_WRITE` с нулевым тайм-аутом. [#65941](https://github.com/ClickHouse/ClickHouse/pull/65941) ([Azat Khuzhin](https://github.com/azat)). +* Добавлены отсутствующие настройки `input_format_csv_skip_first_lines/input_format_tsv_skip_first_lines/input_format_csv_try_infer_numbers_from_strings/input_format_csv_try_infer_strings_from_quoted_tuples` в кэш определения схемы, поскольку они могут влиять на результирующую схему. Это предотвращает некорректное определение схемы при изменении этих настроек. [#65980](https://github.com/ClickHouse/ClickHouse/pull/65980) ([Kruglov Pavel](https://github.com/Avogar)). +* Column _size в движке S3 и табличной функции S3 обозначает размер файла внутри архива, а не размер самого архива. [#65993](https://github.com/ClickHouse/ClickHouse/pull/65993) ([Daniil Ivanik](https://github.com/divanik)). +* Устранена проблема с разрешением динамических подстолбцов в анализаторе, чтобы избежать необходимости чтения всего столбца при доступе к динамическому подстолбцу. [#66004](https://github.com/ClickHouse/ClickHouse/pull/66004) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлено объединение конфигурации для from_env при переопределениях replace. [#66034](https://github.com/ClickHouse/ClickHouse/pull/66034) ([Azat Khuzhin](https://github.com/azat)). +* Исправлено возможное зависание в `GRPCServer` при завершении работы. [#66061](https://github.com/ClickHouse/ClickHouse/pull/66061) ([Vitaly Baranov](https://github.com/vitlibar)). +* Исправлено несколько ошибок в работе функции `has` при использовании неконстантных аргументов типа `LowCardinality`. [#66088](https://github.com/ClickHouse/ClickHouse/pull/66088) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлена работа `groupArrayIntersect`. Ранее наблюдалось некорректное поведение в функции `merge()`. Также исправлено поведение `deserialise()` для числовых и прочих данных. [#66103](https://github.com/ClickHouse/ClickHouse/pull/66103) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Исправлена ошибка переполнения буфера в реализации `unbin`/`unhex`. [#66106](https://github.com/ClickHouse/ClickHouse/pull/66106) ([Nikita Taranov](https://github.com/nickitat)). +* Отключена оптимизация `merge-filters`, добавленная в [#64760](https://github.com/ClickHouse/ClickHouse/issues/64760). Она может вызывать исключение, если при объединении двух выражений фильтра не используется короткое‑замыкательное вычисление. [#66126](https://github.com/ClickHouse/ClickHouse/pull/66126) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлена проблема, из-за которой сервер не удавалось разобрать файлы Avro с массивами, закодированными с отрицательным размером блока, что теперь допускается спецификацией Avro. [#66130](https://github.com/ClickHouse/ClickHouse/pull/66130) ([Serge Klochkov](https://github.com/slvrtrn)). +* Исправлена ошибка в клиенте ZooKeeper: сессия могла застрять в неработоспособном состоянии после получения аппаратной ошибки от ZooKeeper. Например, это могло произойти из‑за «soft memory limit» в ClickHouse Keeper. [#66140](https://github.com/ClickHouse/ClickHouse/pull/66140) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Исправлена ошибка в SumIfToCountIfVisitor при работе со знаковыми целыми числами. [#66146](https://github.com/ClickHouse/ClickHouse/pull/66146) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлен редкий случай, при котором в результате распределённого запроса могли отсутствовать данные. [#66174](https://github.com/ClickHouse/ClickHouse/pull/66174) ([vdimir](https://github.com/vdimir)). +* Исправлен порядок разбора полей метаданных в StorageDeltaLake. [#66211](https://github.com/ClickHouse/ClickHouse/pull/66211) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Не выбрасывать ошибку `TIMEOUT_EXCEEDED` в режиме `none_only_active` параметра `distributed_ddl_output_mode`. [#66218](https://github.com/ClickHouse/ClickHouse/pull/66218) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Исправлена обработка `LIMIT` для `system.numbers_mt`, когда нельзя использовать индекс. [#66231](https://github.com/ClickHouse/ClickHouse/pull/66231) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Исправлено определение сервером ClickHouse максимального числа доступных ядер CPU, указанного в cgroups v2, когда сервер запущен в контейнере, например в Docker. Подробнее: контейнеры часто запускают свои процессы в корневой cgroup с пустым именем. В таком случае ClickHouse игнорировал ограничения по CPU, заданные cgroups v2. [#66237](https://github.com/ClickHouse/ClickHouse/pull/66237) ([filimonov](https://github.com/filimonov)). +* Исправлена ошибка `Not-ready set`, возникавшая при использовании подзапроса с `IN` в ограничении. [#66261](https://github.com/ClickHouse/ClickHouse/pull/66261) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлена выдача сообщений об ошибках при копировании в S3 или AzureBlobStorage. [#66295](https://github.com/ClickHouse/ClickHouse/pull/66295) ([Vitaly Baranov](https://github.com/vitlibar)). +* Исправлена ошибка, из-за которой watchdog удерживал дескрипторы удалённых (ротированных) файлов журнала. [#66334](https://github.com/ClickHouse/ClickHouse/pull/66334) ([Aleksei Filatov](https://github.com/aalexfvk)). +* Исправлена ошибка, из-за которой `logicalexpressionoptimizerpass` терял логический тип константы. [#66344](https://github.com/ClickHouse/ClickHouse/pull/66344) ([pn](https://github.com/chloro-pn)). +* Исправлена ошибка `Column identifier is already registered`, возникавшая при использовании `group_by_use_nulls=true` и нового анализатора. [#66400](https://github.com/ClickHouse/ClickHouse/pull/66400) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлен возможный некорректный результат для запросов, которые выполняют JOIN и фильтрацию таблицы с внешним движком (например, PostgreSQL), из‑за слишком агрессивного проталкивания фильтров (filter pushdown). Начиная с текущей версии, условия из предложения WHERE не будут отправляться во внешнюю базу данных при выполнении OUTER JOIN с внешней таблицей. [#66402](https://github.com/ClickHouse/ClickHouse/pull/66402) ([vdimir](https://github.com/vdimir)). +* Добавлена недостающая материализация столбца для CROSS JOIN. [#66413](https://github.com/ClickHouse/ClickHouse/pull/66413) ([lgbo](https://github.com/lgbo-ustc)). +* Исправлена ошибка `Cannot find column` для запросов, содержащих константное выражение в ключе `GROUP BY`, при включённом новом анализаторе. [#66433](https://github.com/ClickHouse/ClickHouse/pull/66433) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Предотвращена возможная логическая ошибка при импорте из формата Npy при некорректном уровне вложенности массива; исправлено тестирование других типов ошибок. [#66461](https://github.com/ClickHouse/ClickHouse/pull/66461) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Исправлен неверный результат count() при использовании недетерминированной функции в предикате. [#66510](https://github.com/ClickHouse/ClickHouse/pull/66510) ([Duc Canh Le](https://github.com/canhld94)). +* Исправлено отслеживание использования памяти в `Allocator::realloc`. [#66548](https://github.com/ClickHouse/ClickHouse/pull/66548) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлено чтение из неинициализированной памяти при хешировании пустых кортежей. [#66562](https://github.com/ClickHouse/ClickHouse/pull/66562) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлена ошибка, из-за которой запросы с `WINDOW` могли возвращать некорректные результаты. Она проявлялась, когда столбцы `PARTITION` имели разреженную сериализацию и оконные функции выполнялись параллельно. [#66579](https://github.com/ClickHouse/ClickHouse/pull/66579) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлена ошибка при удалении именованных коллекций в локальном хранилище. [#66599](https://github.com/ClickHouse/ClickHouse/pull/66599) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Исправлена проблема, из-за которой `column_length` не обновлялся в `ColumnTuple::insertManyFrom`. [#66626](https://github.com/ClickHouse/ClickHouse/pull/66626) ([lgbo](https://github.com/lgbo-ustc)). +* Исправлены ошибки `Unknown identifier` и `Column is not under aggregate function` в запросах с выражением `(column IS NULL)`. Ошибка была спровоцирована изменениями из [#65088](https://github.com/ClickHouse/ClickHouse/issues/65088) и проявлялась только при отключённом анализаторе. [#66654](https://github.com/ClickHouse/ClickHouse/pull/66654) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлена ошибка `Method getResultType is not supported for QUERY query node`, возникавшая при использовании скалярного подзапроса в качестве первого аргумента оператора IN (с новым анализатором). [#66655](https://github.com/ClickHouse/ClickHouse/pull/66655) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлена потенциальная ошибка PARAMETER_OUT_OF_BOUND при чтении подстолбца типа Variant. [#66659](https://github.com/ClickHouse/ClickHouse/pull/66659) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлен редкий случай зависания операции слияния после удаления столбца. [#66707](https://github.com/ClickHouse/ClickHouse/pull/66707) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена ассерция `isUniqTypes` при выполнении `INSERT SELECT` из удалённых источников. [#66722](https://github.com/ClickHouse/ClickHouse/pull/66722) ([Sema Checherinda](https://github.com/CheSema)). +* Исправлена логическая ошибка в PrometheusRequestHandler. [#66621](https://github.com/ClickHouse/ClickHouse/pull/66621) ([Vitaly Baranov](https://github.com/vitlibar)). +* Исправлен случай использования функции `indexHint`, обнаруженный фаззером. [#66286](https://github.com/ClickHouse/ClickHouse/pull/66286) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлено форматирование AST для оператора 'create table b empty as a'. [#64951](https://github.com/ClickHouse/ClickHouse/pull/64951) ([Michael Kolupaev](https://github.com/al13n321)). + +### Релиз ClickHouse 24.6 от 2024-07-01. [Презентация](https://presentations.clickhouse.com/2024-release-24.6/), [видео](https://www.youtube.com/watch?v=BK-x8lpvOQw) {#a-id246a-clickhouse-release-246-2024-07-01} + + + +#### Несовместимые изменения с предыдущими версиями {#backward-incompatible-change-6} + +* По умолчанию включена асинхронная загрузка баз данных и таблиц. См. `async_load_databases` в config.xml. Хотя это изменение полностью совместимо, оно может привести к отличиям в поведении. Когда `async_load_databases` имеет значение false, как в предыдущих версиях, сервер не принимает подключения, пока не будут загружены все таблицы. Когда `async_load_databases` имеет значение true, как в новой версии, сервер может принимать подключения до загрузки всех таблиц. Если запрос выполняется к таблице, которая ещё не загружена, он будет ожидать завершения загрузки таблицы, что может занять значительное время. Это может изменить поведение сервера, если он является частью крупной распределённой системы под управлением балансировщика нагрузки. В первом случае балансировщик нагрузки может получить отказ в подключении и быстро переключиться на другой сервер. Во втором случае балансировщик нагрузки может подключиться к серверу, который всё ещё загружает таблицы, и запрос будет выполняться с большей задержкой. Более того, если в состоянии ожидания накопится много запросов, это может привести к проблеме «thundering herd», когда они начнут обрабатываться одновременно. Это может иметь значение только для сильно нагруженных распределённых бэкендов. Вы можете установить значение `async_load_databases` в значение false, чтобы избежать этой проблемы. [#57695](https://github.com/ClickHouse/ClickHouse/pull/57695) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Настройка `replace_long_file_name_to_hash` по умолчанию включена для таблиц `MergeTree`. [#64457](https://github.com/ClickHouse/ClickHouse/pull/64457) ([Anton Popov](https://github.com/CurtizJ)). Эта настройка полностью совместима и не требует каких‑либо действий при обновлении. Новый формат данных поддерживается во всех версиях, начиная с 23.9. После включения этой настройки вы больше не сможете перейти на версию 23.8 или более раннюю. +* Некоторые некорректные запросы будут завершаться с ошибкой раньше — на этапе парсинга. Примечание: отключена поддержка встроенных выражений KQL (экспериментальный язык Kusto), когда они передаются в табличную функцию `kql` без строкового литерала, например `kql(garbage | trash)` вместо `kql('garbage | trash')` или `kql($$garbage | trash$$)`. Эта возможность была добавлена непреднамеренно и не должна существовать. [#61500](https://github.com/ClickHouse/ClickHouse/pull/61500) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Переработана параллельная обработка в режиме `Ordered` хранилища `S3Queue`. Этот PR обратно несовместим для режима `Ordered`, если вы использовали настройки `s3queue_processing_threads_num` или `s3queue_total_shards_num`. Настройка `s3queue_total_shards_num` удалена; ранее её было разрешено использовать только при включённой опции `s3queue_allow_experimental_sharded_mode`, которая теперь устарела. Добавлена новая настройка — `s3queue_buckets`. [#64349](https://github.com/ClickHouse/ClickHouse/pull/64349) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Добавлены новые функции `snowflakeIDToDateTime`, `snowflakeIDToDateTime64`, `dateTimeToSnowflakeID` и `dateTime64ToSnowflakeID`. В отличие от существующих функций `snowflakeToDateTime`, `snowflakeToDateTime64`, `dateTimeToSnowflake` и `dateTime64ToSnowflake`, новые функции совместимы с функцией `generateSnowflakeID`, то есть принимают snowflake‑ID, сгенерированные `generateSnowflakeID`, и возвращают snowflake‑ID того же типа, что и `generateSnowflakeID` (то есть `UInt64`). Кроме того, новые функции по умолчанию используют эпоху UNIX (так называемую 1970‑01‑01), так же как `generateSnowflakeID`. При необходимости можно передать другую эпоху, например эпоху Twitter/X 2010‑11‑04, то есть 1288834974657 мс с начала эпохи UNIX. Старые функции конвертации объявлены устаревшими и будут удалены после переходного периода: чтобы продолжать использовать их, включите настройку `allow_deprecated_snowflake_conversion_functions`. [#64948](https://github.com/ClickHouse/ClickHouse/pull/64948) ([Robert Schulze](https://github.com/rschu1ze)). + +#### Новая функциональность {#new-feature-6} + +* Добавлена возможность хранения именованных коллекций в ClickHouse Keeper. [#64574](https://github.com/ClickHouse/ClickHouse/pull/64574) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Добавлена поддержка пустых кортежей. [#55061](https://github.com/ClickHouse/ClickHouse/pull/55061) ([Amos Bird](https://github.com/amosbird)). +* Добавлены функции кодирования и декодирования для кривой Гильберта. [#60156](https://github.com/ClickHouse/ClickHouse/pull/60156) ([Artem Mustafin](https://github.com/Artemmm91)). +* Добавлена поддержка анализа индексов с использованием `hilbertEncode`. [#64662](https://github.com/ClickHouse/ClickHouse/pull/64662) ([Artem Mustafin](https://github.com/Artemmm91)). +* Добавлена поддержка чтения геометрии `LINESTRING` в формате WKT с помощью функции `readWKTLineString`. [#62519](https://github.com/ClickHouse/ClickHouse/pull/62519) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Добавлена возможность присоединять части с другого диска. [#63087](https://github.com/ClickHouse/ClickHouse/pull/63087) ([Unalian](https://github.com/Unalian)). +* Добавлена новая SQL-функция `generateSnowflakeID` для генерации идентификаторов Snowflake в стиле Twitter. [#63577](https://github.com/ClickHouse/ClickHouse/pull/63577) ([Danila Puzov](https://github.com/kazalika)). +* Добавлены настройки `merge_workload` и `mutation_workload` для регулирования использования ресурсов и их распределения между операциями слияния, мутациями и другими нагрузками. [#64061](https://github.com/ClickHouse/ClickHouse/pull/64061) ([Sergei Trifonov](https://github.com/serxa)). +* Добавлена поддержка сравнения значений типов `IPv4` и `IPv6` с помощью оператора `=`. [#64292](https://github.com/ClickHouse/ClickHouse/pull/64292) ([Francisco J. Jurado Moreno](https://github.com/Beetelbrox)). +* Добавлена поддержка десятичных аргументов в бинарных математических функциях (pow, atan2, max2, min2, hypot). [#64582](https://github.com/ClickHouse/ClickHouse/pull/64582) ([Mikhail Gorshkov](https://github.com/mgorshkov)). +* Добавлены SQL-функции `parseReadableSize` (а также варианты `OrNull` и `OrZero`). [#64742](https://github.com/ClickHouse/ClickHouse/pull/64742) ([Francisco J. Jurado Moreno](https://github.com/Beetelbrox)). +* Добавлены параметры сервера `max_table_num_to_throw` и `max_database_num_to_throw` для ограничения максимального количества баз данных или таблиц в запросах `CREATE`. [#64781](https://github.com/ClickHouse/ClickHouse/pull/64781) ([Xu Jia](https://github.com/XuJia0210)). +* Добавлен виртуальный столбец `_time` для файлоподобных хранилищ (S3/file/HDFS/URL/azureBlobStorage). [#64947](https://github.com/ClickHouse/ClickHouse/pull/64947) ([Ilya Golshtein](https://github.com/ilejn)). +* Добавлены новые функции `base64URLEncode`, `base64URLDecode` и `tryBase64URLDecode`. [#64991](https://github.com/ClickHouse/ClickHouse/pull/64991) ([Mikhail Gorshkov](https://github.com/mgorshkov)). +* Добавлена новая функция `editDistanceUTF8`, которая вычисляет [редакционное расстояние](https://en.wikipedia.org/wiki/Edit_distance) между двумя строками в кодировке UTF-8. [#65269](https://github.com/ClickHouse/ClickHouse/pull/65269) ([LiuNeng](https://github.com/liuneng1994)). +* Добавлена конфигурация `http_response_headers` для поддержки пользовательских заголовков HTTP-ответа в пользовательских HTTP-обработчиках. [#63562](https://github.com/ClickHouse/ClickHouse/pull/63562) ([Grigorii](https://github.com/GSokol)). +* Добавлена новая табличная функция `loop` для возврата результатов запроса в бесконечном цикле. [#63452](https://github.com/ClickHouse/ClickHouse/pull/63452) ([Sariel](https://github.com/sarielwxm)). Это полезно для тестирования. +* В журнале `system.query_log` добавлены два дополнительных столбца: `used_privileges` и `missing_privileges`. `used_privileges` заполняется привилегиями, которые были проверены во время выполнения запроса, а `missing_privileges` содержит требуемые, но отсутствующие привилегии. [#64597](https://github.com/ClickHouse/ClickHouse/pull/64597) ([Alexey Katsman](https://github.com/alexkats)). +* Добавлена настройка `output_format_pretty_display_footer_column_names`, которая при включении отображает имена столбцов в конце таблицы для длинных таблиц (по умолчанию от 50 строк), при этом порог минимального числа строк задаётся настройкой `output_format_pretty_display_footer_column_names_min_rows`. [#65144](https://github.com/ClickHouse/ClickHouse/pull/65144) ([Shaun Struwig](https://github.com/Blargian)). + +#### Экспериментальная возможность {#experimental-feature-5} + +* Введена статистика типа «число различных значений». [#59357](https://github.com/ClickHouse/ClickHouse/pull/59357) ([Han Fei](https://github.com/hanfei1991)). +* Добавлена поддержка статистики в ReplicatedMergeTree. [#64934](https://github.com/ClickHouse/ClickHouse/pull/64934) ([Han Fei](https://github.com/hanfei1991)). +* Если для базы данных `Replicated` настроена «группа реплик», автоматически создаётся кластер, включающий реплики из всех групп. [#64312](https://github.com/ClickHouse/ClickHouse/pull/64312) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Добавлены настройки `parallel_replicas_custom_key_range_lower` и `parallel_replicas_custom_key_range_upper` для управления тем, как параллельные реплики с динамическими сегментами распараллеливают запросы при использовании фильтра по диапазону. [#64604](https://github.com/ClickHouse/ClickHouse/pull/64604) ([josh-hildred](https://github.com/josh-hildred)). + +#### Повышение производительности {#performance-improvement-6} + +* Добавлена возможность перетасовывать строки во время вставки, чтобы оптимизировать размер, не нарушая порядка, заданного `PRIMARY KEY`. Поведение управляется настройкой `optimize_row_order` (по умолчанию выключена). [#63578](https://github.com/ClickHouse/ClickHouse/pull/63578) ([Igor Markelov](https://github.com/ElderlyPassionFruit)). +* Добавлен нативный ридер Parquet, который может напрямую читать бинарные данные Parquet в столбцы ClickHouse. Он управляется настройкой `input_format_parquet_use_native_reader` (по умолчанию отключена). [#60361](https://github.com/ClickHouse/ClickHouse/pull/60361) ([ZhiHong Zhang](https://github.com/copperybean)). +* Добавлена поддержка частичной тривиальной оптимизации операции подсчёта, если фильтр запроса позволяет выбирать точные диапазоны из таблиц MergeTree. [#60463](https://github.com/ClickHouse/ClickHouse/pull/60463) ([Amos Bird](https://github.com/amosbird)). +* Снижено максимальное потребление памяти при многопоточных операциях `INSERT` за счёт объединения фрагментов из нескольких потоков в одном преобразовании. [#61047](https://github.com/ClickHouse/ClickHouse/pull/61047) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Снижено потребление памяти при использовании объектного хранилища Azure за счёт использования фиксированного объёма памяти, без выделения дополнительного буфера. [#63160](https://github.com/ClickHouse/ClickHouse/pull/63160) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)). +* Уменьшено количество вызовов виртуальных функций в `ColumnNullable::size`. [#60556](https://github.com/ClickHouse/ClickHouse/pull/60556) ([HappenLee](https://github.com/HappenLee)). +* Ускорена работа `splitByRegexp`, когда аргументом регулярного выражения является одиночный символ. [#62696](https://github.com/ClickHouse/ClickHouse/pull/62696) ([Robert Schulze](https://github.com/rschu1ze)). +* Ускорена агрегация по 8- и 16-битным ключам за счёт отслеживания минимального и максимального значений ключей. Это позволяет сократить количество ячеек, которые необходимо проверять. [#62746](https://github.com/ClickHouse/ClickHouse/pull/62746) ([Jiebin Sun](https://github.com/jiebinn)). +* Оптимизирован оператор IN в случае, когда левая часть имеет тип `LowCardinality`, а правая — множество констант. [#64060](https://github.com/ClickHouse/ClickHouse/pull/64060) ([Zhiguo Zhou](https://github.com/ZhiguoZh)). +* Теперь для инициализации и уничтожения хеш-таблиц внутри `ConcurrentHashJoin` используется пул потоков. [#64241](https://github.com/ClickHouse/ClickHouse/pull/64241) ([Nikita Taranov](https://github.com/nickitat)). +* Оптимизированы вертикальные слияния в таблицах с разреженными столбцами. [#64311](https://github.com/ClickHouse/ClickHouse/pull/64311) ([Anton Popov](https://github.com/CurtizJ)). +* Включена предвыборка данных из удалённой файловой системы во время вертикальных слияний. Это снижает задержку вертикальных слияний в таблицах с данными, хранящимися на удалённой файловой системе. [#64314](https://github.com/ClickHouse/ClickHouse/pull/64314) ([Anton Popov](https://github.com/CurtizJ)). +* Сокращено число избыточных вызовов `isDefault` в `ColumnSparse::filter` для повышения производительности. [#64426](https://github.com/ClickHouse/ClickHouse/pull/64426) ([Jiebin Sun](https://github.com/jiebinn)). +* Ускорены команды keeper-client `find_super_nodes` и `find_big_family` путём отправки нескольких асинхронных запросов getChildren. [#64628](https://github.com/ClickHouse/ClickHouse/pull/64628) ([Alexander Gololobov](https://github.com/davenger)). +* Улучшена работа функций `least` и `greatest` для аргументов числовых типов Nullable. [#64668](https://github.com/ClickHouse/ClickHouse/pull/64668) ([KevinyhZou](https://github.com/KevinyhZou)). +* Позволяет объединять два последовательных этапа фильтрации в плане запроса. Это улучшает оптимизацию проталкивания фильтра, если условие фильтрации можно протолкнуть вниз с родительского этапа. [#64760](https://github.com/ClickHouse/ClickHouse/pull/64760) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Удалена неудачная оптимизация в реализации вертикального `FINAL`, и по умолчанию снова включён алгоритм вертикального `FINAL`. [#64783](https://github.com/ClickHouse/ClickHouse/pull/64783) ([Duc Canh Le](https://github.com/canhld94)). +* Удалены узлы ALIAS из выражения фильтрации. Это слегка повышает производительность запросов с `PREWHERE` (при использовании нового анализатора). [#64793](https://github.com/ClickHouse/ClickHouse/pull/64793) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Повторно включено кэширование сеансов OpenSSL. [#65111](https://github.com/ClickHouse/ClickHouse/pull/65111) ([Robert Schulze](https://github.com/rschu1ze)). +* Добавлены настройки, позволяющие отключить материализацию пропускающих индексов и статистики при вставке (`materialize_skip_indexes_on_insert` и `materialize_statistics_on_insert`). [#64391](https://github.com/ClickHouse/ClickHouse/pull/64391) ([Anton Popov](https://github.com/CurtizJ)). +* Использует размер выделенной памяти для вычисления размера группы строк и уменьшения пикового потребления памяти при записи в формат Parquet в однопоточном режиме. [#64424](https://github.com/ClickHouse/ClickHouse/pull/64424) ([LiuNeng](https://github.com/liuneng1994)). +* Улучшен итератор разреженного столбца для сокращения числа вызовов `size`. [#64497](https://github.com/ClickHouse/ClickHouse/pull/64497) ([Jiebin Sun](https://github.com/jiebinn)). +* Обновлено условие для использования серверного копирования при резервном копировании в Azure Blob Storage. [#64518](https://github.com/ClickHouse/ClickHouse/pull/64518) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)). +* Оптимизировано использование памяти при вертикальных слияниях для таблиц с большим числом skip-индексов. [#64580](https://github.com/ClickHouse/ClickHouse/pull/64580) ([Anton Popov](https://github.com/CurtizJ)). + +#### Улучшения {#improvement-6} + +* `SHOW CREATE TABLE`, выполненный для системных таблиц, теперь отображает уникальный, очень полезный комментарий для каждой таблицы, объясняющий, для чего она нужна. [#63788](https://github.com/ClickHouse/ClickHouse/pull/63788) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Второй аргумент (scale) функций `round()`, `roundBankers()`, `floor()`, `ceil()` и `trunc()` теперь может быть неконстантным выражением. [#64798](https://github.com/ClickHouse/ClickHouse/pull/64798) ([Mikhail Gorshkov](https://github.com/mgorshkov)). +* Горячее обновление политики хранения для таблиц `Distributed` при добавлении нового диска. [#58285](https://github.com/ClickHouse/ClickHouse/pull/58285) ([Duc Canh Le](https://github.com/canhld94)). +* Избегается возможная взаимоблокировка во время анализа индекса MergeTree при планировании потоков в условиях высокой загрузки сервиса. [#59427](https://github.com/ClickHouse/ClickHouse/pull/59427) ([Sean Haynes](https://github.com/seandhaynes)). +* Несколько мелких исправлений крайних случаев в поддержке S3-прокси и туннелирования. [#63427](https://github.com/ClickHouse/ClickHouse/pull/63427) ([Arthur Passos](https://github.com/arthurpassos)). +* Улучшена видимость повторных отправок io_uring. Переименовано событие профилирования `IOUringSQEsResubmits` -> `IOUringSQEsResubmitsAsync` и добавлено новое `IOUringSQEsResubmitsSync`. [#63699](https://github.com/ClickHouse/ClickHouse/pull/63699) ([Tomer Shafir](https://github.com/tomershafir)). +* Добавлена новая настройка `metadata_keep_free_space_bytes` для резервирования свободного места на диске хранилища метаданных. [#64128](https://github.com/ClickHouse/ClickHouse/pull/64128) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* Добавлены метрики для отслеживания количества каталогов, создаваемых и удаляемых хранилищем метаданных `plain_rewritable`, а также количества записей в карте сопоставления локальных и удалённых объектов в памяти. [#64175](https://github.com/ClickHouse/ClickHouse/pull/64175) ([Julia Kartseva](https://github.com/jkartseva)). +* Кэш запросов теперь рассматривает идентичные запросы с различающимися настройками как разные запросы. Это повышает надежность в случаях, когда разные настройки (например, `limit` или `additional_table_filters`) могут повлиять на результат запроса. [#64205](https://github.com/ClickHouse/ClickHouse/pull/64205) ([Robert Schulze](https://github.com/rschu1ze)). +* Добавлена поддержка нестандартного кода ошибки `QpsLimitExceeded` в объектном хранилище, рассматриваемого как повторяемая ошибка. [#64225](https://github.com/ClickHouse/ClickHouse/pull/64225) ([Sema Checherinda](https://github.com/CheSema)). +* Запрещено преобразование таблицы MergeTree в реплицируемую, если путь в ZooKeeper для этой таблицы уже существует. [#64244](https://github.com/ClickHouse/ClickHouse/pull/64244) ([Kirill](https://github.com/kirillgarbar)). +* Добавлена новая настройка `input_format_parquet_prefer_block_bytes` для управления средним размером выходного блока (в байтах) и изменено значение по умолчанию настройки `input_format_parquet_max_block_size` на 65409. [#64427](https://github.com/ClickHouse/ClickHouse/pull/64427) ([LiuNeng](https://github.com/liuneng1994)). +* Добавлена возможность обходить прокси для хостов, указанных в переменной окружения `no_proxy` и в конфигурации прокси ClickHouse. [#63314](https://github.com/ClickHouse/ClickHouse/pull/63314) ([Arthur Passos](https://github.com/arthurpassos)). +* Всегда запускайте Keeper с достаточным количеством потоков в глобальном пуле потоков. [#64444](https://github.com/ClickHouse/ClickHouse/pull/64444) ([Duc Canh Le](https://github.com/canhld94)). +* Настройки из конфигурации пользователя не влияют на слияния и мутации для `MergeTree` на объектном хранилище. [#64456](https://github.com/ClickHouse/ClickHouse/pull/64456) ([alesapin](https://github.com/alesapin)). +* Добавлена поддержка нестандартного кода ошибки `TotalQpsLimitExceeded` в объектном хранилище; эта ошибка теперь считается повторяемой. [#64520](https://github.com/ClickHouse/ClickHouse/pull/64520) ([Sema Checherinda](https://github.com/CheSema)). +* Обновлена расширенная панель мониторинга как для open-source версии, так и для ClickHouse Cloud, добавлен график «Максимальное число одновременных сетевых подключений». [#64610](https://github.com/ClickHouse/ClickHouse/pull/64610) ([Thom O'Connor](https://github.com/thomoco)). +* Улучшено отображение прогресса для `zeros_mt` и `generateRandom`. [#64804](https://github.com/ClickHouse/ClickHouse/pull/64804) ([Raúl Marín](https://github.com/Algunenano)). +* Добавлена асинхронная метрика `jemalloc.profile.active`, показывающая, включено ли в данный момент сэмплирование. Это механизм активации в дополнение к `prof.active`; для того, чтобы вызывающий поток выполнял сэмплирование, обе должны быть включены. [#64842](https://github.com/ClickHouse/ClickHouse/pull/64842) ([Unalian](https://github.com/Unalian)). +* Удалена пометка о важности `allow_experimental_join_condition`. Эта пометка могла мешать успешному выполнению распределённых запросов в кластере со смешанными версиями. [#65008](https://github.com/ClickHouse/ClickHouse/pull/65008) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Добавлены асинхронные серверные метрики `DiskGetObjectThrottler*` и `DiskGetObjectThrottler*`, отражающие ограничение на число запросов в секунду, заданное настройками диска `s3_max_get_rps` и `s3_max_put_rps`, а также текущее доступное количество запросов, которые могут быть отправлены, не достигая лимита ограничения скорости на диске. Метрики определяются для каждого диска, для которого настроен лимит. [#65050](https://github.com/ClickHouse/ClickHouse/pull/65050) ([Sergei Trifonov](https://github.com/serxa)). +* Инициализирован глобальный сборщик трассировок для `Poco::ThreadPool` (необходим для Keeper и т.д.). [#65239](https://github.com/ClickHouse/ClickHouse/pull/65239) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Добавлена проверка при создании пользователя с использованием `bcrypt_hash`. [#65242](https://github.com/ClickHouse/ClickHouse/pull/65242) ([Raúl Marín](https://github.com/Algunenano)). +* Добавлены события профилирования для количества строк, прочитанных во время/после выполнения `PREWHERE`. [#64198](https://github.com/ClickHouse/ClickHouse/pull/64198) ([Nikita Taranov](https://github.com/nickitat)). +* Выводить текст запроса в `EXPLAIN PLAN` при использовании параллельных реплик. [#64298](https://github.com/ClickHouse/ClickHouse/pull/64298) ([vdimir](https://github.com/vdimir)). +* Параметр `allow_deprecated_functions` переименован в `allow_deprecated_error_prone_window_functions`. [#64358](https://github.com/ClickHouse/ClickHouse/pull/64358) ([Raúl Marín](https://github.com/Algunenano)). +* Теперь настройка `max_read_buffer_size` учитывается также для файловых дескрипторов в табличной функции `file`. [#64532](https://github.com/ClickHouse/ClickHouse/pull/64532) ([Azat Khuzhin](https://github.com/azat)). +* Отключить транзакции для неподдерживаемых хранилищ, в том числе для materialized view. [#64918](https://github.com/ClickHouse/ClickHouse/pull/64918) ([alesapin](https://github.com/alesapin)). +* Запрещено использовать оператор `QUALIFY` в старом анализаторе. Старый анализатор игнорировал `QUALIFY`, что могло приводить к неожиданному удалению данных при выполнении мутаций. [#65356](https://github.com/ClickHouse/ClickHouse/pull/65356) ([Dmitry Novik](https://github.com/novikd)). + +#### Исправление ошибки (некорректное поведение, заметное пользователю, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-5} + +* Исправлена ошибка в библиотеке Apache ORC: скорректен расчет статистики ORC при записи для беззнаковых типов на всех платформах и для Int8 на ARM. [#64563](https://github.com/ClickHouse/ClickHouse/pull/64563) ([Michael Kolupaev](https://github.com/al13n321)). +* Восстановлено прежнее поведение ClickHouse при работе с кортежами (Tuples) в формате CSV. Это изменение фактически откатывает [https://github.com/ClickHouse/ClickHouse/pull/60994](https://github.com/ClickHouse/ClickHouse/pull/60994) и оставляет его доступным только при включении нескольких настроек: `output_format_csv_serialize_tuple_into_separate_columns`, `input_format_csv_deserialize_separate_columns_into_tuple` и `input_format_csv_try_infer_strings_from_quoted_tuples`. [#65170](https://github.com/ClickHouse/ClickHouse/pull/65170) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Исправлена ошибка проверки прав доступа, из-за которой пользователь в определённых условиях мог повысить свои привилегии в базе данных `default` без необходимых GRANT. [#64769](https://github.com/ClickHouse/ClickHouse/pull/64769) ([pufit](https://github.com/pufit)). +* Исправлена ошибка, приводившая к сбою при использовании UniqInjectiveFunctionsEliminationPass и uniqCombined. [#65188](https://github.com/ClickHouse/ClickHouse/pull/65188) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена ошибка в ClickHouse Keeper, которая приводила к несовпадению дайджеста при закрытии сессии. [#65198](https://github.com/ClickHouse/ClickHouse/pull/65198) ([Aleksei Filatov](https://github.com/aalexfvk)). +* Использовано корректное выравнивание памяти для комбинатора Distinct. Ранее мог произойти сбой из‑за некорректного выделения памяти при использовании этого комбинатора. [#65379](https://github.com/ClickHouse/ClickHouse/pull/65379) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлено падение при использовании `DISTINCT` и оконных функций. [#64767](https://github.com/ClickHouse/ClickHouse/pull/64767) ([Igor Nikonov](https://github.com/devcrafter)). +* Исправлена проблема, из-за которой пропускающий индекс set не работал с IN и функцией indexHint(). [#62083](https://github.com/ClickHouse/ClickHouse/pull/62083) ([Michael Kolupaev](https://github.com/al13n321)). +* Поддерживается выполнение функции при присвоении значения параметризованному представлению. [#63502](https://github.com/ClickHouse/ClickHouse/pull/63502) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)). +* Исправлено отслеживание использования памяти для формата Parquet. [#63584](https://github.com/ClickHouse/ClickHouse/pull/63584) ([Michael Kolupaev](https://github.com/al13n321)). +* Исправлено чтение столбцов типа `Tuple(Map(LowCardinality(String), String), ...)`. [#63956](https://github.com/ClickHouse/ClickHouse/pull/63956) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлена ошибка `Cyclic aliases` для циклических псевдонимов разных типов (выражение и функция). [#63993](https://github.com/ClickHouse/ClickHouse/pull/63993) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Это исправление использует корректно переопределённый контекст с правильным определителем для каждого отдельного представления в конвейере запросов. [#64079](https://github.com/ClickHouse/ClickHouse/pull/64079) ([pufit](https://github.com/pufit)). +* Исправлен анализатор: при использовании INTERPOLATE больше не возникает ошибка "Not found column". [#64096](https://github.com/ClickHouse/ClickHouse/pull/64096) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Исправлена ошибка при создании резервных копий в бакеты S3 с другими учетными данными, чем у диска, на котором хранится файл. [#64153](https://github.com/ClickHouse/ClickHouse/pull/64153) ([Antonio Andelic](https://github.com/antonio2368)). +* Кэш запросов теперь рассматривает два идентичных запроса к разным базам данных как разные запросы. Предыдущее поведение могло использоваться для обхода отсутствия привилегий на чтение таблицы. [#64199](https://github.com/ClickHouse/ClickHouse/pull/64199) ([Robert Schulze](https://github.com/rschu1ze)). +* Исправлена возможная аварийная остановка при возникновении необработанного исключения в ~WriteBufferFromFileDescriptor в StatusFile. [#64206](https://github.com/ClickHouse/ClickHouse/pull/64206) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлена ошибка `duplicate alias` в распределённых запросах с `ARRAY JOIN`. [#64226](https://github.com/ClickHouse/ClickHouse/pull/64226) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлено неожиданное преобразование с помощью `accurateCast` из `string` в `integer`. [#64255](https://github.com/ClickHouse/ClickHouse/pull/64255) ([wudidapaopao](https://github.com/wudidapaopao)). +* Исправлено упрощение КНФ в случае, когда какая-либо группа OR содержит взаимоисключающие атомы. [#64256](https://github.com/ClickHouse/ClickHouse/pull/64256) ([Eduard Karacharov](https://github.com/korowa)). +* Исправлена проверка размера дерева запросов. [#64377](https://github.com/ClickHouse/ClickHouse/pull/64377) ([Dmitry Novik](https://github.com/novikd)). +* Исправлена ошибка `Logical error: Bad cast`, возникавшая для таблицы `Buffer` при использовании `PREWHERE`. [#64388](https://github.com/ClickHouse/ClickHouse/pull/64388) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Предотвращено рекурсивное логирование в `blob_storage_log` при его хранении в объектном хранилище. [#64393](https://github.com/ClickHouse/ClickHouse/pull/64393) ([vdimir](https://github.com/vdimir)). +* Исправлены запросы `CREATE TABLE AS` для таблиц, содержащих выражения по умолчанию. [#64455](https://github.com/ClickHouse/ClickHouse/pull/64455) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлено поведение `optimize_read_in_order` для ORDER BY ... NULLS FIRST / LAST в таблицах с ключами типа Nullable. [#64483](https://github.com/ClickHouse/ClickHouse/pull/64483) ([Eduard Karacharov](https://github.com/korowa)). +* Исправлены ошибки `Expression nodes list expected 1 projection names` и `Unknown expression or identifier` для запросов, использующих псевдонимы для `GLOBAL IN`. [#64517](https://github.com/ClickHouse/ClickHouse/pull/64517) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлена ошибка `Cannot find column` в распределённых запросах при использовании константного CTE в качестве ключа `GROUP BY`. [#64519](https://github.com/ClickHouse/ClickHouse/pull/64519) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлен цикл перезапусков, возникавший при восстановлении из резервной копии, когда операция блокировалась созданием материализованного представления (MV) с пользователем-определителем (DEFINER), который ещё не был восстановлен. [#64595](https://github.com/ClickHouse/ClickHouse/pull/64595) ([pufit](https://github.com/pufit)). +* Исправлен результат работы функции `formatDateTimeInJodaSyntax` в случае, когда форматтер генерирует нечётное количество символов и последний символ — `0`. Например, `SELECT formatDateTimeInJodaSyntax(toDate('2012-05-29'), 'D')` теперь корректно возвращает `150` вместо прежнего значения `15`. [#64614](https://github.com/ClickHouse/ClickHouse/pull/64614) ([LiuNeng](https://github.com/liuneng1994)). +* Не переписывать агрегацию, если уже используется комбинатор `-If`. [#64638](https://github.com/ClickHouse/ClickHouse/pull/64638) ([Dmitry Novik](https://github.com/novikd)). +* Исправлен вывод типа для float (при небольшом размере буфера, то есть при `--max_read_buffer_size 1`). [#64641](https://github.com/ClickHouse/ClickHouse/pull/64641) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена ошибка, которая могла приводить к некорректной работе TTL с выражениями. [#64694](https://github.com/ClickHouse/ClickHouse/pull/64694) ([alesapin](https://github.com/alesapin)). +* Исправлена ошибка удаления выражений `WHERE` и `PREWHERE`, которые всегда истинны (для нового анализатора). [#64695](https://github.com/ClickHouse/ClickHouse/pull/64695) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлено чрезмерное отсечение данных токен‑ориентированными текстовыми индексами (`ngrambf` , `full_text`) при фильтрации по результатам функций `startsWith`, `endsWith`, `match`, `multiSearchAny`. [#64720](https://github.com/ClickHouse/ClickHouse/pull/64720) ([Eduard Karacharov](https://github.com/korowa)). +* Исправлена некорректная обработка управляющих последовательностей ANSI CSI в функции `UTF8::computeWidth`. [#64756](https://github.com/ClickHouse/ClickHouse/pull/64756) ([Shaun Struwig](https://github.com/Blargian)). +* Исправлена ошибка некорректного удаления `ORDER BY` / `LIMIT BY` в подзапросах. [#64766](https://github.com/ClickHouse/ClickHouse/pull/64766) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлено (экспериментально) неравенственное соединение с подзапросами для Set, которые участвуют в смешанных условиях соединения. [#64775](https://github.com/ClickHouse/ClickHouse/pull/64775) ([lgbo](https://github.com/lgbo-ustc)). +* Исправлена ошибка в локальном кэше на диске `plain_rewritable`. [#64778](https://github.com/ClickHouse/ClickHouse/pull/64778) ([Julia Kartseva](https://github.com/jkartseva)). +* Исправление в Keeper: команда `mntr` теперь возвращает корректное значение `zk_latest_snapshot_size`. [#64784](https://github.com/ClickHouse/ClickHouse/pull/64784) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлена ошибка `Cannot find column` в распределённом запросе с `ARRAY JOIN` по столбцу `Nested`. Устраняет [#64755](https://github.com/ClickHouse/ClickHouse/issues/64755). [#64801](https://github.com/ClickHouse/ClickHouse/pull/64801) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлена утечка памяти в политике кеширования SLRU. [#64803](https://github.com/ClickHouse/ClickHouse/pull/64803) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлено возможное некорректное отслеживание памяти в нескольких видах запросов: запросах, читающих данные из S3, запросах по протоколу HTTP и при асинхронных вставках. [#64844](https://github.com/ClickHouse/ClickHouse/pull/64844) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлена ошибка `Block structure mismatch` для запросов, читающих с использованием `PREWHERE` из materialized view, если materialized view содержит столбцы типов, отличающихся от типов столбцов исходной таблицы. Исправляет [#64611](https://github.com/ClickHouse/ClickHouse/issues/64611). [#64855](https://github.com/ClickHouse/ClickHouse/pull/64855) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлен редкий сбой, возникавший при использовании у таблицы TTL с подзапросом в сочетании с реплицируемой базой данных, параллельными репликами и analyzer. Это действительно редкий случай, но, пожалуйста, не используйте TTL с подзапросами. [#64858](https://github.com/ClickHouse/ClickHouse/pull/64858) ([alesapin](https://github.com/alesapin)). +* Исправлено дублирование событий `Delete` в `blob_storage_log` при удалении большого набора. [#64924](https://github.com/ClickHouse/ClickHouse/pull/64924) ([vdimir](https://github.com/vdimir)). +* Исправлена ошибка `Session moved to another server` из [Zoo]Keeper, которая могла возникать после запуска сервера, если в конфигурации используются включения из [Zoo]Keeper. [#64986](https://github.com/ClickHouse/ClickHouse/pull/64986) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Исправлена команда `ALTER MODIFY COMMENT`, некорректно работавшая для параметризованных VIEW в [https://github.com/ClickHouse/ClickHouse/pull/54211](https://github.com/ClickHouse/ClickHouse/pull/54211). [#65031](https://github.com/ClickHouse/ClickHouse/pull/65031) ([Nikolay Degterinsky](https://github.com/evillique)). +* Исправлен `host_id` в DatabaseReplicated при включённом параметре `cluster_secure_connection`. Ранее все соединения внутри кластера, создаваемые DatabaseReplicated, были незащищёнными, даже если параметр был включён. [#65054](https://github.com/ClickHouse/ClickHouse/pull/65054) ([Nikolay Degterinsky](https://github.com/evillique)). +* Исправлена ошибка `Not-ready Set`, возникавшая после оптимизации `PREWHERE` для StorageMerge. [#65057](https://github.com/ClickHouse/ClickHouse/pull/65057) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Предотвращена запись в финализированный буфер в файловых хранилищах (file-like storages). [#65063](https://github.com/ClickHouse/ClickHouse/pull/65063) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлена возможная бесконечная длительность выполнения запроса при циклических псевдонимах. Устраняет проблему [#64849](https://github.com/ClickHouse/ClickHouse/issues/64849). [#65081](https://github.com/ClickHouse/ClickHouse/pull/65081) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлена ошибка `Unknown expression identifier` в удалённых запросах с `INTERPOLATE (alias)` (новый анализатор). Исправляет проблему [#64636](https://github.com/ClickHouse/ClickHouse/issues/64636). [#65090](https://github.com/ClickHouse/ClickHouse/pull/65090) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлена оптимизация вынесения арифметических операций за пределы агрегации. В новом анализаторе она выполнялась только один раз. [#65104](https://github.com/ClickHouse/ClickHouse/pull/65104) ([Dmitry Novik](https://github.com/novikd)). +* Исправлено изменение имени агрегатной функции в новом анализаторе. [#65110](https://github.com/ClickHouse/ClickHouse/pull/65110) ([Dmitry Novik](https://github.com/novikd)). +* Возвращать код ответа 5xx вместо 200 OK в случае тайм-аута при чтении (части) тела запроса из клиентского сокета. [#65118](https://github.com/ClickHouse/ClickHouse/pull/65118) ([Julian Maicher](https://github.com/jmaicher)). +* Исправлен потенциальный сбой при выполнении hedged-запросов. [#65206](https://github.com/ClickHouse/ClickHouse/pull/65206) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена ошибка в механизме короткого замыкания при вычислении словарей Hashed и Hashed_Array, из-за которой могло происходить чтение неинициализированного числа, приводящее к различным ошибкам. [#65256](https://github.com/ClickHouse/ClickHouse/pull/65256) ([jsc0218](https://github.com/jsc0218)). +* Этот PR гарантирует, что тип константы (второй параметр оператора IN) всегда доступен во время процесса приведения типов оператором IN. В противном случае потеря информации о типе может привести к сбоям некоторых преобразований, например преобразования из DateTime в Date. Это исправляет проблему ([#64487](https://github.com/ClickHouse/ClickHouse/issues/64487)). [#65315](https://github.com/ClickHouse/ClickHouse/pull/65315) ([pn](https://github.com/chloro-pn)). + +#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-2} + +* Добавлена поддержка LLVM XRay. [#64592](https://github.com/ClickHouse/ClickHouse/pull/64592) [#64837](https://github.com/ClickHouse/ClickHouse/pull/64837) ([Tomer Shafir](https://github.com/tomershafir)). +* Объединены реализации хранилищ S3/HDFS/Azure в один класс, работающий с IObjectStorage. То же самое сделано для *Cluster, озер данных и хранилищ очередей (Queue). [#59767](https://github.com/ClickHouse/ClickHouse/pull/59767) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Рефакторинг компонента записи частей данных (data part writer) для удаления зависимостей от MergeTreeData и DataPart. [#63620](https://github.com/ClickHouse/ClickHouse/pull/63620) ([Alexander Gololobov](https://github.com/davenger)). +* Рефакторинг `KeyCondition` и анализа ключей для улучшения PartitionPruner и тривиальной оптимизации подсчетов. Это выделено отдельно от [#60463](https://github.com/ClickHouse/ClickHouse/issues/60463). [#61459](https://github.com/ClickHouse/ClickHouse/pull/61459) ([Amos Bird](https://github.com/amosbird)). +* Добавлены утверждения (assertions), чтобы убедиться, что все функции вызываются со столбцами правильного размера. [#63723](https://github.com/ClickHouse/ClickHouse/pull/63723) ([Raúl Marín](https://github.com/Algunenano)). +* Сервис `network` сделан обязательным при использовании init-скрипта `rc` для запуска демона сервера ClickHouse. [#60650](https://github.com/ClickHouse/ClickHouse/pull/60650) ([Chun-Sheng, Li](https://github.com/peter279k)). +* Уменьшен размер некоторых медленных тестов. [#64387](https://github.com/ClickHouse/ClickHouse/pull/64387) [#64452](https://github.com/ClickHouse/ClickHouse/pull/64452) ([Raúl Marín](https://github.com/Algunenano)). +* Воспроизведение логов ZooKeeper с использованием keeper-bench. [#62481](https://github.com/ClickHouse/ClickHouse/pull/62481) ([Antonio Andelic](https://github.com/antonio2368)). + +### Релиз ClickHouse 24.5 от 2024-05-30. [Презентация](https://presentations.clickhouse.com/2024-release-24.5/), [Видео](https://www.youtube.com/watch?v=dURnKjLuZLg) {#a-id245a-clickhouse-release-245-2024-05-30} + + + +#### Обратное несовместимое изменение {#backward-incompatible-change-7} + +* «Инвертированные индексы» переименованы в «полнотекстовые индексы» — это менее техническое и более удобное для пользователей название. Это также изменяет внутренние метаданные таблицы и делает неработоспособными таблицы с существующими (экспериментальными) инвертированными индексами. Перед обновлением обязательно удалите такие индексы и создайте их заново после обновления. [#62884](https://github.com/ClickHouse/ClickHouse/pull/62884) ([Robert Schulze](https://github.com/rschu1ze)). +* Использование функций `neighbor`, `runningAccumulate`, `runningDifferenceStartingWithFirstValue`, `runningDifference` объявлено устаревшим (так как они легко приводят к ошибкам). Вместо них следует использовать корректные оконные функции. Чтобы снова их включить, установите `allow_deprecated_error_prone_window_functions = 1` или задайте `compatibility = '24.4'` или ниже. [#63132](https://github.com/ClickHouse/ClickHouse/pull/63132) ([Nikita Taranov](https://github.com/nickitat)). +* Запросы к `system.columns` будут работать быстрее, если имеется большое количество столбцов, но для многих баз данных или таблиц не выданы права `SHOW TABLES`. Обратите внимание, что в предыдущих версиях, если вы выдавали `SHOW COLUMNS` для отдельных столбцов без выдачи `SHOW TABLES` для соответствующих таблиц, таблица `system.columns` отображала эти столбцы, но в новой версии такая таблица будет полностью пропущена. Удалены сообщения трассировочного лога «Access granted» и «Access denied», которые замедляли выполнение запросов. [#63439](https://github.com/ClickHouse/ClickHouse/pull/63439) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + +#### Новая функция {#new-feature-7} + +* Добавлен формат `Form` для чтения и записи одной записи в формате `application/x-www-form-urlencoded`. [#60199](https://github.com/ClickHouse/ClickHouse/pull/60199) ([Shaun Struwig](https://github.com/Blargian)). +* Добавлена возможность сжимать данные в CROSS JOIN. [#60459](https://github.com/ClickHouse/ClickHouse/pull/60459) ([p1rattttt](https://github.com/p1rattttt)). +* Добавлена возможность выполнять операцию `CROSS JOIN` во временных файлах, если размер превышает допустимые пределы. [#63432](https://github.com/ClickHouse/ClickHouse/pull/63432) ([p1rattttt](https://github.com/p1rattttt)). +* Поддерживается `JOIN` с неравенствами в условии соединения, которые используют столбцы как из левой, так и из правой таблицы, например `t1.y < t2.y`. Чтобы включить, выполните `SET allow_experimental_join_condition = 1`. [#60920](https://github.com/ClickHouse/ClickHouse/pull/60920) ([lgbo](https://github.com/lgbo-ustc)). +* Теперь в типе `Map` в качестве ключей можно использовать `Float32`, `Float64`, `Array(T)`, `Map(K, V)` и `Tuple(T1, T2, ...)`. Закрывает [#54537](https://github.com/ClickHouse/ClickHouse/issues/54537). [#59318](https://github.com/ClickHouse/ClickHouse/pull/59318) ([李扬](https://github.com/taiyang-li)). +* Реализована поддержка массовой загрузки данных в `EmbeddedRocksDB` путём создания и приёма SST-файла вместо использования встроенной memtable RocksDB. Это повышает скорость импорта, особенно для длительно выполняющихся запросов INSERT в таблицы StorageEmbeddedRocksDB. Также добавлены настройки таблиц `EmbeddedRocksDB`. [#59163](https://github.com/ClickHouse/ClickHouse/pull/59163) [#63324](https://github.com/ClickHouse/ClickHouse/pull/63324) ([Duc Canh Le](https://github.com/canhld94)). +* Теперь можно парсить CRLF в формате TSV с помощью настройки `input_format_tsv_crlf_end_of_line`. Закрывает [#56257](https://github.com/ClickHouse/ClickHouse/issues/56257). [#59747](https://github.com/ClickHouse/ClickHouse/pull/59747) ([Shaun Struwig](https://github.com/Blargian)). +* Новая настройка `input_format_force_null_for_omitted_fields`, которая принудительно устанавливает значения NULL для пропущенных полей. [#60887](https://github.com/ClickHouse/ClickHouse/pull/60887) ([Constantine Peresypkin](https://github.com/pkit)). +* Ранее хранилище S3 и табличная функция `s3` не поддерживали выборку из файлов‑контейнеров архивов, таких как tarball, zip, 7z. Теперь в них можно перебирать файлы внутри архивов в S3. [#62259](https://github.com/ClickHouse/ClickHouse/pull/62259) ([Daniil Ivanik](https://github.com/divanik)). +* Добавлена поддержка условной функции `clamp`. [#62377](https://github.com/ClickHouse/ClickHouse/pull/62377) ([skyoct](https://github.com/skyoct)). +* Добавлен формат вывода `NPy`. [#62430](https://github.com/ClickHouse/ClickHouse/pull/62430) ([豪肥肥](https://github.com/HowePa)). +* Формат `Raw` добавлен как синоним формата `TSVRaw`. [#63394](https://github.com/ClickHouse/ClickHouse/pull/63394) ([Unalian](https://github.com/Unalian)). +* Добавлена новая SQL‑функция `generateUUIDv7` для генерации UUID версии 7, то есть так называемых UUID на основе временной метки со случайным компонентом. Также добавлена функция `UUIDToNum` для извлечения байтов из UUID и функция `UUIDv7ToDateTime` для извлечения компонента временной метки из UUID версии 7. [#62852](https://github.com/ClickHouse/ClickHouse/pull/62852) ([Alexey Petrunyaka](https://github.com/pet74alex)). +* В Linux и macOS, если стандартный вывод программы перенаправлен в файл с расширением, обозначающим сжатие, используется соответствующий метод сжатия вместо его отсутствия (что делает поведение аналогичным `INTO OUTFILE`). [#63662](https://github.com/ClickHouse/ClickHouse/pull/63662) ([v01dXYZ](https://github.com/v01dXYZ)). +* Изменён текст предупреждения при большом количестве подключённых таблиц, чтобы различать таблицы, представления и словари. [#64180](https://github.com/ClickHouse/ClickHouse/pull/64180) ([Francisco J. Jurado Moreno](https://github.com/Beetelbrox)). +* Добавлена поддержка функции `azureBlobStorage` в сервере ClickHouse для использования Azure Workload Identity при аутентификации в Azure Blob Storage. Если в конфигурации установлен параметр `use_workload_identity`, для аутентификации используется [workload identity](https://github.com/Azure/azure-sdk-for-cpp/tree/main/sdk/identity/azure-identity#authenticate-azure-hosted-applications). [#57881](https://github.com/ClickHouse/ClickHouse/pull/57881) ([Vinay Suryadevara](https://github.com/vinay92-ch)). +* В таблицу `system.parts_columns` добавлена информация о TTL. [#63200](https://github.com/ClickHouse/ClickHouse/pull/63200) ([litlig](https://github.com/litlig)). + +#### Экспериментальные возможности {#experimental-features-1} + +* Реализован тип данных `Dynamic`, который позволяет хранить значения любых типов без необходимости знать все возможные типы заранее. Тип `Dynamic` доступен при включении настройки `allow_experimental_dynamic_type`. См. [#54864](https://github.com/ClickHouse/ClickHouse/issues/54864). [#63058](https://github.com/ClickHouse/ClickHouse/pull/63058) ([Kruglov Pavel](https://github.com/Avogar)). +* Разрешено создавать базу данных `MaterializedMySQL` без подключения к MySQL. [#63397](https://github.com/ClickHouse/ClickHouse/pull/63397) ([Kirill](https://github.com/kirillgarbar)). +* Автоматически помечать реплику реплицируемой базы данных как потерянную и запускать восстановление, если некоторая DDL‑задача завершается сбоем более чем `max_retries_before_automatic_recovery` (по умолчанию 100) раз подряд с одной и той же ошибкой. Также исправлена ошибка, которая могла приводить к пропуску DDL‑записей при возникновении исключения на раннем этапе исполнения записи. [#63549](https://github.com/ClickHouse/ClickHouse/pull/63549) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Учитывать файлы, обработка которых завершилась с ошибкой, в `s3queue_tracked_file_ttl_sec` и `s3queue_traked_files_limit` для `StorageS3Queue`. [#63638](https://github.com/ClickHouse/ClickHouse/pull/63638) ([Kseniia Sumarokova](https://github.com/kssenii)). + +#### Повышение производительности {#performance-improvement-7} + +* Меньше конфликтов при доступе к кэшу файловой системы (часть 4). Позволяет не заполнять кэш файловой системы до предела за счёт дополнительного вытеснения данных в фоне (управляется параметром `keep_free_space_size(elements)_ratio`). Это снижает нагрузку при резервировании места для запросов (в методе `tryReserve`). Также это реализовано по возможности без блокировок, т.е. не должно блокировать обычное использование кэша. [#61250](https://github.com/ClickHouse/ClickHouse/pull/61250) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Пропуск объединения (merge) вновь созданных блоков проекций во время операций `INSERT`. [#59405](https://github.com/ClickHouse/ClickHouse/pull/59405) ([Nikita Taranov](https://github.com/nickitat)). +* Обработка строковых функций `...UTF8` в «ASCII-режиме», если все входные строки состоят только из ASCII-символов. Идея вдохновлена https://github.com/apache/doris/pull/29799. Общее ускорение 1.07x~1.62x. Обратите внимание, что в некоторых случаях пиковое потребление памяти уменьшилось. [#61632](https://github.com/ClickHouse/ClickHouse/pull/61632) ([李扬](https://github.com/taiyang-li)). +* Улучшена производительность выбора (`{}`) glob-шаблонов в StorageS3. [#62120](https://github.com/ClickHouse/ClickHouse/pull/62120) ([Andrey Zvonov](https://github.com/zvonand)). +* HostResolver содержит каждый IP-адрес несколько раз. Если у удалённого хоста несколько IP, и по какой-то причине (например, правила брандмауэра) доступ по части IP разрешён, а по другим запрещён, то только первая запись с запрещённым IP помечается как неудачная, и при каждой попытке эти IP могут снова выбираться (и снова приводить к ошибке). Даже если это исправить, каждые 120 секунд кэш DNS сбрасывается, и IP могут быть выбраны вновь. [#62652](https://github.com/ClickHouse/ClickHouse/pull/62652) ([Anton Ivashkin](https://github.com/ianton-ru)). +* Добавлен новый конфигурационный параметр `prefer_merge_sort_block_bytes` для управления потреблением памяти и двукратного ускорения сортировки при слиянии, когда много столбцов. [#62904](https://github.com/ClickHouse/ClickHouse/pull/62904) ([LiuNeng](https://github.com/liuneng1994)). +* `clickhouse-local` теперь будет запускаться быстрее. В предыдущих версиях он по ошибке не удалял временные директории. Теперь будет. Это закрывает задачу [#62941](https://github.com/ClickHouse/ClickHouse/issues/62941). [#63074](https://github.com/ClickHouse/ClickHouse/pull/63074) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Микрооптимизации для нового анализатора. [#63429](https://github.com/ClickHouse/ClickHouse/pull/63429) ([Raúl Marín](https://github.com/Algunenano)). +* Анализ индексов будет работать, если `DateTime` сравнивается с `DateTime64`. Это закрывает задачу [#63441](https://github.com/ClickHouse/ClickHouse/issues/63441). [#63443](https://github.com/ClickHouse/ClickHouse/pull/63443) [#63532](https://github.com/ClickHouse/ClickHouse/pull/63532) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Небольшое ускорение индексов типа `set` (примерно в 1.5 раза) за счёт удаления «мусора». [#64098](https://github.com/ClickHouse/ClickHouse/pull/64098) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Убрано копирование данных при записи в кэш файловой системы. [#63401](https://github.com/ClickHouse/ClickHouse/pull/63401) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Теперь бэкапы с использованием Azure Blob Storage будут использовать multicopy. [#64116](https://github.com/ClickHouse/ClickHouse/pull/64116) ([alesapin](https://github.com/alesapin)). +* Разрешено использовать native copy для Azure даже при разных контейнерах. [#64154](https://github.com/ClickHouse/ClickHouse/pull/64154) ([alesapin](https://github.com/alesapin)). +* Наконец включён native copy для Azure. [#64182](https://github.com/ClickHouse/ClickHouse/pull/64182) ([alesapin](https://github.com/alesapin)). + +#### Улучшения {#improvement-7} + +* Теперь можно использовать `clickhouse-local` и его сокращения `clickhouse` и `ch` с запросом или файлом запросов в качестве позиционного аргумента. Примеры: `ch "SELECT 1"`, `ch --param_test Hello "SELECT {test:String}"`, `ch query.sql`. Это закрывает [#62361](https://github.com/ClickHouse/ClickHouse/issues/62361). [#63081](https://github.com/ClickHouse/ClickHouse/pull/63081) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Включена поддержка метаданных plain_rewritable для локальных объектных хранилищ и azure_blob_storage. [#63365](https://github.com/ClickHouse/ClickHouse/pull/63365) ([Julia Kartseva](https://github.com/jkartseva)). +* Поддерживаются английские кавычки Unicode, например “Hello”, 'world'. В целом это спорное решение, но полезно, если вы набираете запрос в текстовом редакторе, таком как Google Docs. Закрывает [#58634](https://github.com/ClickHouse/ClickHouse/issues/58634). [#63381](https://github.com/ClickHouse/ClickHouse/pull/63381) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Разрешены завершающие запятые в списке столбцов в запросе `INSERT`. Например, `INSERT INTO test (a, b, c, ) VALUES ...`. [#63803](https://github.com/ClickHouse/ClickHouse/pull/63803) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Более информативные сообщения об исключениях для формата `Regexp`. [#63804](https://github.com/ClickHouse/ClickHouse/pull/63804) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Теперь в формате `Values` разрешены завершающие запятые. Например, допускается такой запрос: `INSERT INTO test (a, b, c) VALUES (4, 5, 6,);`. [#63810](https://github.com/ClickHouse/ClickHouse/pull/63810) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Сделать так, чтобы RabbitMQ отправлял nack для некорректных сообщений. Закрывает [#45350](https://github.com/ClickHouse/ClickHouse/issues/45350). [#60312](https://github.com/ClickHouse/ClickHouse/pull/60312) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлена ошибка, приводившая к аварийному завершению при асинхронной раскрутке стека (например, при использовании семплирующего профилировщика запросов) во время интерпретации отладочной информации. Закрывает [#60460](https://github.com/ClickHouse/ClickHouse/issues/60460). [#60468](https://github.com/ClickHouse/ClickHouse/pull/60468) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Для ошибки S3 «no key» добавлены разные сообщения для диска и хранилища. [#61108](https://github.com/ClickHouse/ClickHouse/pull/61108) ([Sema Checherinda](https://github.com/CheSema)). +* Индикатор прогресса будет работать для простых запросов с LIMIT из `system.zeros`, `system.zeros_mt` (он уже работает для `system.numbers` и `system.numbers_mt`) и табличной функции `generateRandom`. В качестве бонуса, если общее число записей больше лимита `max_rows_to_read`, исключение будет сгенерировано раньше. Это закрывает [#58183](https://github.com/ClickHouse/ClickHouse/issues/58183). [#61823](https://github.com/ClickHouse/ClickHouse/pull/61823) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Поддержка «Merge Key» в YAML-конфигурациях (это странная особенность YAML, можете не обращать внимания). [#62685](https://github.com/ClickHouse/ClickHouse/pull/62685) ([Azat Khuzhin](https://github.com/azat)). +* Улучшено сообщение об ошибке, возникающее при использовании недетерминированной функции с источником типа Replicated. [#62896](https://github.com/ClickHouse/ClickHouse/pull/62896) ([Grégoire Pineau](https://github.com/lyrixx)). +* Исправлен межсерверный секрет для схемы Distributed поверх Distributed при использовании `remote`. [#63013](https://github.com/ClickHouse/ClickHouse/pull/63013) ([Azat Khuzhin](https://github.com/azat)). +* Добавлена поддержка `include_from` для YAML-файлов. Тем не менее предпочтительнее использовать `config.d` [#63106](https://github.com/ClickHouse/ClickHouse/pull/63106) ([Eduard Karacharov](https://github.com/korowa)). +* Сохранять ранее введённые данные в терминале после выбора варианта из подсказок skim. [#63261](https://github.com/ClickHouse/ClickHouse/pull/63261) ([FlameFactory](https://github.com/FlameFactory)). +* При вычислении ширины полей (в форматах Pretty или функции `visibleWidth`) управляющие последовательности ANSI теперь корректно игнорируются. [#63270](https://github.com/ClickHouse/ClickHouse/pull/63270) ([Shaun Struwig](https://github.com/Blargian)). +* Использование кода ошибки `NUMBER_OF_ARGUMENTS_DOESNT_MATCH` заменено более точными кодами ошибок, где это уместно. [#63406](https://github.com/ClickHouse/ClickHouse/pull/63406) ([Yohann Jardin](https://github.com/yohannj)). +* `os_user` и `client_hostname` теперь корректно задаются в запросах, используемых для подсказок командной строки в clickhouse-client. Тем самым закрывается [#63430](https://github.com/ClickHouse/ClickHouse/issues/63430). [#63433](https://github.com/ClickHouse/ClickHouse/pull/63433) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Автоматически устанавливать `max_block_size` в значение по умолчанию, если он равен нулю. [#63587](https://github.com/ClickHouse/ClickHouse/pull/63587) ([Antonio Andelic](https://github.com/antonio2368)). +* Добавлен столбец build_id ALIAS в trace_log для упрощения автоматического переименования при обнаружении изменений бинарного файла. Это решает проблему [#52086](https://github.com/ClickHouse/ClickHouse/issues/52086). [#63656](https://github.com/ClickHouse/ClickHouse/pull/63656) ([Zimu Li](https://github.com/woodlzm)). +* Включена поддержка операции усечения (`truncate`) для дисков объектного хранилища. [#63693](https://github.com/ClickHouse/ClickHouse/pull/63693) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* Загрузка списка ключевых слов теперь зависит от ревизии сервера и будет отключена в старых версиях сервера ClickHouse. CC @azat. [#63786](https://github.com/ClickHouse/ClickHouse/pull/63786) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Диски ClickHouse должны прочитать параметр сервера, чтобы получить актуальную версию формата метаданных. [#63831](https://github.com/ClickHouse/ClickHouse/pull/63831) ([Sema Checherinda](https://github.com/CheSema)). +* Отключать ограничения формата Pretty (`output_format_pretty_max_rows`/`output_format_pretty_max_value_width`), если stdout не является TTY. [#63942](https://github.com/ClickHouse/ClickHouse/pull/63942) ([Azat Khuzhin](https://github.com/azat)). +* Обработка исключений теперь корректно работает при использовании ClickHouse внутри AWS Lambda. Автор: [Alexey Coolnev](https://github.com/acoolnev). [#64014](https://github.com/ClickHouse/ClickHouse/pull/64014) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Выбрасывать исключение `CANNOT_DECOMPRESS` вместо `CORRUPTED_DATA` при передаче некорректных сжатых данных через HTTP. [#64036](https://github.com/ClickHouse/ClickHouse/pull/64036) ([vdimir](https://github.com/vdimir)). +* Всплывающая подсказка для одного большого числа в форматах Pretty теперь работает и для Nullable, и для LowCardinality. Это закрывает [#61993](https://github.com/ClickHouse/ClickHouse/issues/61993). [#64084](https://github.com/ClickHouse/ClickHouse/pull/64084) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлены метрики, логи и имена потоков при фильтрации частей по индексам. [#64130](https://github.com/ClickHouse/ClickHouse/pull/64130) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Игнорировать параметр `allow_suspicious_primary_key` при `ATTACH` и проверять его при `ALTER`. [#64202](https://github.com/ClickHouse/ClickHouse/pull/64202) ([Azat Khuzhin](https://github.com/azat)). + +#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-3} + +* ClickHouse теперь собирается с помощью clang-18. Включено множество новых проверок из clang-tidy-18. [#60469](https://github.com/ClickHouse/ClickHouse/pull/60469) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Экспериментально добавлена поддержка loongarch64 как новой платформы для ClickHouse. [#63733](https://github.com/ClickHouse/ClickHouse/pull/63733) ([qiangxuhui](https://github.com/qiangxuhui)). +* Dockerfile был проверен официальной библиотекой Docker: https://github.com/docker-library/official-images/pull/15846. [#63400](https://github.com/ClickHouse/ClickHouse/pull/63400) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Информация о каждом символе в каждом модуле трансляции будет собираться в базе данных CI для каждого билда в CI. Это закрывает [#63494](https://github.com/ClickHouse/ClickHouse/issues/63494). [#63495](https://github.com/ClickHouse/ClickHouse/pull/63495) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Обновлена библиотека Apache Datasketches. Это решает [#63858](https://github.com/ClickHouse/ClickHouse/issues/63858). [#63923](https://github.com/ClickHouse/ClickHouse/pull/63923) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Включена поддержка gRPC для aarch64 linux при кросс-компиляции бинарного файла. [#64072](https://github.com/ClickHouse/ClickHouse/pull/64072) ([alesapin](https://github.com/alesapin)). +* Исправлена раскрутка стека при SIGSEGV на aarch64 (из-за малого стека для сигнала). [#64058](https://github.com/ClickHouse/ClickHouse/pull/64058) ([Azat Khuzhin](https://github.com/azat)). + +#### Исправления ошибок {#bug-fix-1} + +* Настройка `enable_vertical_final` по умолчанию отключена. Эту возможность не следует использовать, так как в ней есть ошибка: [#64543](https://github.com/ClickHouse/ClickHouse/issues/64543). [#64544](https://github.com/ClickHouse/ClickHouse/pull/64544) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Исправлено создание резервной копии при использовании нескольких сегментов [#57684](https://github.com/ClickHouse/ClickHouse/pull/57684) ([Vitaly Baranov](https://github.com/vitlibar)). +* Исправлена ошибка передачи проекций/индексов/первичного ключа из списка столбцов запроса CREATE во внутреннюю таблицу материализованного представления (MV) [#59183](https://github.com/ClickHouse/ClickHouse/pull/59183) ([Azat Khuzhin](https://github.com/azat)). +* Исправлено некорректное слияние параметра boundRatio [#60532](https://github.com/ClickHouse/ClickHouse/pull/60532) ([Tao Wang](https://github.com/wangtZJU)). +* Исправлена ошибка, приводившая к сбою при вызове некоторых функций для константных столбцов с низкой кардинальностью [#61966](https://github.com/ClickHouse/ClickHouse/pull/61966) ([Michael Kolupaev](https://github.com/al13n321)). +* Исправлена ошибка, из-за которой запросы с FINAL возвращали неверные результаты, если в таблице не использовалась адаптивная гранулярность [#62432](https://github.com/ClickHouse/ClickHouse/pull/62432) ([Duc Canh Le](https://github.com/canhld94)). +* Улучшено обнаружение поддержки cgroups v2 контроллерами памяти [#62903](https://github.com/ClickHouse/ClickHouse/pull/62903) ([Robert Schulze](https://github.com/rschu1ze)). +* Исправлено повторное использование внешних таблиц в клиенте [#62964](https://github.com/ClickHouse/ClickHouse/pull/62964) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена ошибка, приводившая к сбою при использовании функции `untuple` с неразрешённым лямбда-выражением [#63131](https://github.com/ClickHouse/ClickHouse/pull/63131) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена проблема, из-за которой сервер преждевременно начинал слушать входящие подключения [#63181](https://github.com/ClickHouse/ClickHouse/pull/63181) ([alesapin](https://github.com/alesapin)). +* Исправлена проблема с пересечением частей при перезапуске после выполнения команды DROP PART [#63202](https://github.com/ClickHouse/ClickHouse/pull/63202) ([Han Fei](https://github.com/hanfei1991)). +* Обеспечена корректная загрузка значений параметров безопасности SQL по умолчанию при запуске [#63209](https://github.com/ClickHouse/ClickHouse/pull/63209) ([pufit](https://github.com/pufit)). +* Исправлено применение pushdown-фильтра в JOIN [#63234](https://github.com/ClickHouse/ClickHouse/pull/63234) ([Maksim Kita](https://github.com/kitaisreal)). +* Исправлен бесконечный цикл в методе AzureObjectStorage::listObjects [#63257](https://github.com/ClickHouse/ClickHouse/pull/63257) ([Julia Kartseva](https://github.com/jkartseva)). +* CROSS JOIN игнорировал настройку join_algorithm [#63273](https://github.com/ClickHouse/ClickHouse/pull/63273) ([vdimir](https://github.com/vdimir)). +* Исправлены проблемы с финализацией WriteBufferToFileSegment и StatusFile [#63346](https://github.com/ClickHouse/ClickHouse/pull/63346) ([vdimir](https://github.com/vdimir)). +* Исправлена логическая ошибка, возникавшая при выполнении запроса SELECT после ALTER в редких случаях [#63353](https://github.com/ClickHouse/ClickHouse/pull/63353) ([alesapin](https://github.com/alesapin)). +* Исправлено формирование заголовка `X-ClickHouse-Timezone` с использованием `session_timezone` [#63377](https://github.com/ClickHouse/ClickHouse/pull/63377) ([Andrey Zvonov](https://github.com/zvonand)). +* Исправлен debug assert при использовании группировки WITH ROLLUP и типов LowCardinality [#63398](https://github.com/ClickHouse/ClickHouse/pull/63398) ([Raúl Marín](https://github.com/Algunenano)). +* Небольшие исправления параметра group_by_use_nulls [#63405](https://github.com/ClickHouse/ClickHouse/pull/63405) ([vdimir](https://github.com/vdimir)). +* Исправлено резервное копирование и восстановление части с проекцией в случае, когда проекция была удалена из метаданных таблицы, но сама часть всё ещё содержит проекцию [#63426](https://github.com/ClickHouse/ClickHouse/pull/63426) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлен источник словаря MySQL [#63481](https://github.com/ClickHouse/ClickHouse/pull/63481) ([vdimir](https://github.com/vdimir)). +* Добавлена запись QueryFinish при AsyncInsertFlush без данных [#63483](https://github.com/ClickHouse/ClickHouse/pull/63483) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена проблема с пустыми used_dictionaries в system.query_log [#63487](https://github.com/ClickHouse/ClickHouse/pull/63487) ([Eduard Karacharov](https://github.com/korowa)). +* `MergeTreePrefetchedReadPool` сделан безопаснее [#63513](https://github.com/ClickHouse/ClickHouse/pull/63513) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлен сбой при завершении работы при включённом Sentry (из-за того, что OpenSSL уничтожался раньше Sentry) [#63548](https://github.com/ClickHouse/ClickHouse/pull/63548) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена поддержка типов `Array` и `Map` при использовании Keyed hashing [#63628](https://github.com/ClickHouse/ClickHouse/pull/63628) ([Salvatore Mesoraca](https://github.com/aiven-sal)). +* Исправлено проталкивание фильтра (filter pushdown) для Parquet и, возможно, для StorageMerge [#63642](https://github.com/ClickHouse/ClickHouse/pull/63642) ([Michael Kolupaev](https://github.com/al13n321)). +* Запрещено преобразование в Replicated, если путь в ZooKeeper уже существует [#63670](https://github.com/ClickHouse/ClickHouse/pull/63670) ([Kirill](https://github.com/kirillgarbar)). +* Analyzer: представления читают только необходимые столбцы [#63688](https://github.com/ClickHouse/ClickHouse/pull/63688) ([Maksim Kita](https://github.com/kitaisreal)). +* Analyzer: запретить переопределение WINDOW [#63694](https://github.com/ClickHouse/ClickHouse/pull/63694) ([Dmitry Novik](https://github.com/novikd)). +* Настройка flatten_nested была неисправна при использовании экспериментальной базы данных Replicated. [#63695](https://github.com/ClickHouse/ClickHouse/pull/63695) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлены ошибки [#63653](https://github.com/ClickHouse/ClickHouse/issues/63653) [#63722](https://github.com/ClickHouse/ClickHouse/pull/63722) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Разрешено приведение типов из Array(Nothing) в Map(Nothing, Nothing) [#63753](https://github.com/ClickHouse/ClickHouse/pull/63753) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлена ошибка ILLEGAL_COLUMN в partial_merge join [#63755](https://github.com/ClickHouse/ClickHouse/pull/63755) ([vdimir](https://github.com/vdimir)). +* Исправлено: удалено лишнее `DISTINCT` при использовании оконных функций [#63776](https://github.com/ClickHouse/ClickHouse/pull/63776) ([Igor Nikonov](https://github.com/devcrafter)). +* Исправлен возможный сбой при выполнении команды SYSTEM UNLOAD PRIMARY KEY [#63778](https://github.com/ClickHouse/ClickHouse/pull/63778) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена обработка запросов с дублирующимся циклическим псевдонимом. [#63791](https://github.com/ClickHouse/ClickHouse/pull/63791) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Сделан `TokenIterator` ленивым, как и должно быть [#63801](https://github.com/ClickHouse/ClickHouse/pull/63801) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена настройка `endpoint_subpath` для URI S3 [#63806](https://github.com/ClickHouse/ClickHouse/pull/63806) ([Julia Kartseva](https://github.com/jkartseva)). +* Исправлена взаимоблокировка в `ParallelReadBuffer` [#63814](https://github.com/ClickHouse/ClickHouse/pull/63814) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправление проталкивания фильтра в JOIN для эквивалентных столбцов [#63819](https://github.com/ClickHouse/ClickHouse/pull/63819) ([Maksim Kita](https://github.com/kitaisreal)). +* Удалять данные со всех дисков после выполнения DROP для базы данных Lazy. [#63848](https://github.com/ClickHouse/ClickHouse/pull/63848) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* Исправлен некорректный результат при чтении из MV с параллельными репликами и новым анализатором [#63861](https://github.com/ClickHouse/ClickHouse/pull/63861) ([Nikita Taranov](https://github.com/nickitat)). +* Исправления в командах `find_super_nodes` и `find_big_family` в утилите keeper-client [#63862](https://github.com/ClickHouse/ClickHouse/pull/63862) ([Alexander Gololobov](https://github.com/davenger)). +* Обновлено имя выполнения lambda [#63864](https://github.com/ClickHouse/ClickHouse/pull/63864) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлен SIGSEGV, возникавший из-за профилировщика CPU/Real [#63865](https://github.com/ClickHouse/ClickHouse/pull/63865) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена работа запроса `EXPLAIN CURRENT TRANSACTION` [#63926](https://github.com/ClickHouse/ClickHouse/pull/63926) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлен анализатор: там одни черепахи до самого низа... [#63930](https://github.com/ClickHouse/ClickHouse/pull/63930) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Разрешены некоторые команды ALTER TABLE для диска `plain_rewritable` [#63933](https://github.com/ClickHouse/ClickHouse/pull/63933) ([Julia Kartseva](https://github.com/jkartseva)). +* Исправлена работа рекурсивных CTE в распределённых запросах [#63939](https://github.com/ClickHouse/ClickHouse/pull/63939) ([Maksim Kita](https://github.com/kitaisreal)). +* Analyzer: исправлено разрешение конструкции COLUMNS [#63962](https://github.com/ClickHouse/ClickHouse/pull/63962) ([Dmitry Novik](https://github.com/novikd)). +* LIMIT BY и skip_unused_shards в анализаторе [#63983](https://github.com/ClickHouse/ClickHouse/pull/63983) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправление чернового кода для experimental Kusto [#63992](https://github.com/ClickHouse/ClickHouse/pull/63992) ([Yong Wang](https://github.com/kashwy)). +* Десериализовать недоверенные бинарные данные более безопасно [#64024](https://github.com/ClickHouse/ClickHouse/pull/64024) ([Robert Schulze](https://github.com/rschu1ze)). +* Исправлен анализ запросов с настройкой `final` = 1 для Distributed таблиц, построенных над таблицами, не относящимися к семейству MergeTree. [#64037](https://github.com/ClickHouse/ClickHouse/pull/64037) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Добавлены недостающие настройки для функции recoverLostReplica [#64040](https://github.com/ClickHouse/ClickHouse/pull/64040) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлены проверки прав доступа SQL в анализаторе [#64079](https://github.com/ClickHouse/ClickHouse/pull/64079) ([pufit](https://github.com/pufit)). +* Исправлен анализатор: для DAG теперь используются только выражения интерполяции [#64096](https://github.com/ClickHouse/ClickHouse/pull/64096) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Исправлена запись multipart-блоков резервных копий в Azure порциями по 1 МиБ (по размеру буфера чтения) вместо использования `max_upload_part_size` (в случае ненативного копирования) [#64117](https://github.com/ClickHouse/ClickHouse/pull/64117) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Корректный откат при копировании резервной копии [#64153](https://github.com/ClickHouse/ClickHouse/pull/64153) ([Antonio Andelic](https://github.com/antonio2368)). +* Предотвращена ошибка LOGICAL_ERROR при выполнении CREATE TABLE как materialized view [#64174](https://github.com/ClickHouse/ClickHouse/pull/64174) ([Raúl Marín](https://github.com/Algunenano)). +* Query Cache: считать идентичные запросы к разным базам данных разными [#64199](https://github.com/ClickHouse/ClickHouse/pull/64199) ([Robert Schulze](https://github.com/rschu1ze)). +* Не учитывается `text_log` для Keeper [#64218](https://github.com/ClickHouse/ClickHouse/pull/64218) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлена логическая ошибка: неверное приведение типов в таблице Buffer при использовании PREWHERE. [#64388](https://github.com/ClickHouse/ClickHouse/pull/64388) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). + +### Релиз ClickHouse 24.4 от 2024-04-30. [Презентация](https://presentations.clickhouse.com/2024-release-24.4/), [Видео](https://www.youtube.com/watch?v=dtUqgcfOGmE) {#a-id244a-clickhouse-release-244-2024-04-30} + + + +#### Заметки по обновлению {#upgrade-notes} + +* `clickhouse-odbc-bridge` и `clickhouse-library-bridge` теперь являются отдельными пакетами. Это закрывает [#61677](https://github.com/ClickHouse/ClickHouse/issues/61677). [#62114](https://github.com/ClickHouse/ClickHouse/pull/62114) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Больше нельзя устанавливать max_parallel_replicas (для экспериментального параллельного чтения с реплик) в значение `0`, поскольку это не имеет смысла. Закрывает [#60140](https://github.com/ClickHouse/ClickHouse/issues/60140). [#61201](https://github.com/ClickHouse/ClickHouse/pull/61201) ([Kruglov Pavel](https://github.com/Avogar)). +* Удалена поддержка запроса `INSERT WATCH` (часть устаревшей функциональности `LIVE VIEW`). [#62382](https://github.com/ClickHouse/ClickHouse/pull/62382) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Удалена настройка `optimize_monotonous_functions_in_order_by`. [#63004](https://github.com/ClickHouse/ClickHouse/pull/63004) ([Raúl Marín](https://github.com/Algunenano)). +* Удалён экспериментальный статус у движка базы данных `Replicated`. Теперь он находится в стадии Beta. [#62937](https://github.com/ClickHouse/ClickHouse/pull/62937) ([Justin de Guzman](https://github.com/justindeguzman)). + +#### Новая возможность {#new-feature-8} + +* Добавлена поддержка рекурсивных CTE. [#62074](https://github.com/ClickHouse/ClickHouse/pull/62074) ([Maksim Kita](https://github.com/kitaisreal)). +* Добавлена поддержка конструкции `QUALIFY`. Закрывает [#47819](https://github.com/ClickHouse/ClickHouse/issues/47819). [#62619](https://github.com/ClickHouse/ClickHouse/pull/62619) ([Maksim Kita](https://github.com/kitaisreal)). +* Табличные движки теперь можно выдавать через GRANT, и это не повлияет на поведение существующих пользователей. [#60117](https://github.com/ClickHouse/ClickHouse/pull/60117) ([jsc0218](https://github.com/jsc0218)). +* Добавлен перезаписываемый диск S3, который поддерживает операции INSERT и не требует локально хранимых метаданных. [#61116](https://github.com/ClickHouse/ClickHouse/pull/61116) ([Julia Kartseva](https://github.com/jkartseva)). Основной сценарий использования — системные таблицы. +* Подсветка синтаксиса при вводе в клиенте теперь работает на уровне синтаксического анализа (ранее она работала на уровне лексера). [#62123](https://github.com/ClickHouse/ClickHouse/pull/62123) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Поддерживается удаление нескольких таблиц одновременно, как в запросе `DROP TABLE a, b, c;`. [#58705](https://github.com/ClickHouse/ClickHouse/pull/58705) ([zhongyuankai](https://github.com/zhongyuankai)). +* Теперь поддерживается изменение настроек таблиц `Memory` с помощью `ALTER MODIFY SETTING`. Пример: `ALTER TABLE memory MODIFY SETTING min_rows_to_keep = 100, max_rows_to_keep = 1000;`. [#62039](https://github.com/ClickHouse/ClickHouse/pull/62039) ([zhongyuankai](https://github.com/zhongyuankai)). +* В HTTP-интерфейс добавлен параметр запроса `role`. Он работает аналогично `SET ROLE x`, применяя роль до выполнения команды. Это позволяет обойти ограничение HTTP-интерфейса, в котором не допускается выполнение нескольких команд, и невозможно одновременно отправить и `SET ROLE x`, и саму команду. Можно задать несколько ролей таким образом, например, `?role=x&role=y`, что будет эквивалентно `SET ROLE x, y`. [#62669](https://github.com/ClickHouse/ClickHouse/pull/62669) ([Serge Klochkov](https://github.com/slvrtrn)). +* Добавлена команда `SYSTEM UNLOAD PRIMARY KEY` для освобождения памяти, используемой первичным ключом таблицы. [#62738](https://github.com/ClickHouse/ClickHouse/pull/62738) ([Pablo Marcos](https://github.com/pamarcos)). +* В `system.text_log` добавлены столбцы `value1`, `value2`, ..., `value10`. Эти столбцы содержат значения, которые использовались для форматирования сообщения. [#59619](https://github.com/ClickHouse/ClickHouse/pull/59619) ([Alexey Katsman](https://github.com/alexkats)). +* Добавлен постоянный виртуальный столбец `_block_offset`, который хранит исходный номер строки в блоке, назначенный при вставке. Постоянное хранение столбца `_block_offset` может быть включено настройкой MergeTree `enable_block_offset_column`. Добавлен виртуальный столбец `_part_data_version`, который содержит либо минимальный номер блока, либо версию мутации части. Постоянный виртуальный столбец `_block_number` больше не считается экспериментальным. [#60676](https://github.com/ClickHouse/ClickHouse/pull/60676) ([Anton Popov](https://github.com/CurtizJ)). +* Добавлена настройка `input_format_json_throw_on_bad_escape_sequence`; если её отключить, можно сохранять некорректные escape-последовательности во входных JSON-форматах. [#61889](https://github.com/ClickHouse/ClickHouse/pull/61889) ([Kruglov Pavel](https://github.com/Avogar)). + +#### Улучшения производительности {#performance-improvement-8} + +* Улучшено проталкивание фильтров JOIN с использованием эквивалентных множеств. [#61216](https://github.com/ClickHouse/ClickHouse/pull/61216) ([Maksim Kita](https://github.com/kitaisreal)). +* Добавлена оптимизация преобразования OUTER JOIN в INNER JOIN, если фильтр после JOIN всегда отфильтровывает строки со значениями по умолчанию. Оптимизацией можно управлять с помощью настройки `query_plan_convert_outer_join_to_inner_join`, включённой по умолчанию. [#62907](https://github.com/ClickHouse/ClickHouse/pull/62907) ([Maksim Kita](https://github.com/kitaisreal)). +* Улучшение работы с AWS S3. Клиент должен отправлять серверу заголовок 'Keep-Alive: timeout=X'. Если клиент получает от сервера ответ с этим заголовком, он должен использовать значение, указанное сервером. Также клиенту лучше не использовать соединение, срок действия которого почти истёк, чтобы избежать гонки при закрытии соединения. [#62249](https://github.com/ClickHouse/ClickHouse/pull/62249) ([Sema Checherinda](https://github.com/CheSema)). +* Снижены накладные расходы мутаций при выполнении запросов SELECT (v2). [#60856](https://github.com/ClickHouse/ClickHouse/pull/60856) ([Azat Khuzhin](https://github.com/azat)). +* Чаще вызываемые функции в PODArray теперь принудительно встраиваются (force-inline). [#61144](https://github.com/ClickHouse/ClickHouse/pull/61144) ([李扬](https://github.com/taiyang-li)). +* Ускорена обработка JSON за счёт прекращения чтения объекта после того, как все необходимые столбцы прочитаны. [#62210](https://github.com/ClickHouse/ClickHouse/pull/62210) ([lgbo](https://github.com/lgbo-ustc)). +* Улучшена обработка простых запросов INSERT SELECT из файлов через табличные функции file/s3/hdfs/url/.... Добавлена отдельная настройка max_parsing_threads для управления числом потоков, используемых при параллельном разборе. [#62404](https://github.com/ClickHouse/ClickHouse/pull/62404) ([Kruglov Pavel](https://github.com/Avogar)). +* Функции `to_utc_timestamp` и `from_utc_timestamp` теперь примерно вдвое быстрее. [#62583](https://github.com/ClickHouse/ClickHouse/pull/62583) ([KevinyhZou](https://github.com/KevinyhZou)). +* Функции `parseDateTimeOrNull`, `parseDateTimeOrZero`, `parseDateTimeInJodaSyntaxOrNull` и `parseDateTimeInJodaSyntaxOrZero` теперь выполняются значительно быстрее (в 10–1000 раз), когда во входных данных в основном содержатся значения, которые нельзя разобрать. [#62634](https://github.com/ClickHouse/ClickHouse/pull/62634) ([LiuNeng](https://github.com/liuneng1994)). +* SELECT-запросы по `system.query_cache` теперь заметно быстрее, когда кэш запросов содержит много записей (например, более 100 000). [#62671](https://github.com/ClickHouse/ClickHouse/pull/62671) ([Robert Schulze](https://github.com/rschu1ze)). +* Меньше конкуренции за кэш файловой системы (часть 3): выполнение удаления из файловой системы без блокировки при попытке зарезервировать место. [#61163](https://github.com/ClickHouse/ClickHouse/pull/61163) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Ускорено динамическое изменение размера кэша файловой системы. [#61723](https://github.com/ClickHouse/ClickHouse/pull/61723) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Источник словаря с `INVALIDATE_QUERY` больше не перезагружается дважды при запуске. [#62050](https://github.com/ClickHouse/ClickHouse/pull/62050) ([vdimir](https://github.com/vdimir)). +* Исправлена проблема, когда при добавлении избыточного `= 1` или `= 0` после логического выражения с участием первичного ключа не использовался первичный индекс. Например, и `SELECT * FROM
    WHERE IN () = 1`, и `SELECT * FROM
    WHERE NOT IN () = 0` выполняли полное сканирование таблицы, хотя в этих случаях мог быть использован первичный индекс. [#62142](https://github.com/ClickHouse/ClickHouse/pull/62142) ([josh-hildred](https://github.com/josh-hildred)). +* Возвращает поток фрагментов из `system.remote_data_paths` вместо накопления всего результата в одном большом фрагменте. Это позволяет использовать меньше памяти, показывать промежуточный прогресс выполнения и отменять запрос. [#62613](https://github.com/ClickHouse/ClickHouse/pull/62613) ([Alexander Gololobov](https://github.com/davenger)). + +#### Экспериментальная возможность {#experimental-feature-6} + +* Добавлена поддержка параллельного буфера записи для Azure Blob Storage, который включается с помощью настройки `azure_allow_parallel_part_upload`. [#62534](https://github.com/ClickHouse/ClickHouse/pull/62534) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)). +* Пользовательский кэш страниц (userspace page cache) теперь работает со статическими веб-хранилищами (`disk(type = web)`). Используйте клиентскую настройку `use_page_cache_for_disks_without_file_cache=1` для включения. [#61911](https://github.com/ClickHouse/ClickHouse/pull/61911) ([Michael Kolupaev](https://github.com/al13n321)). +* Типы Bool и числовые варианты больше не рассматриваются как подозрительные в типе `Variant`. [#61999](https://github.com/ClickHouse/ClickHouse/pull/61999) ([Kruglov Pavel](https://github.com/Avogar)). +* Реализовано улучшенное преобразование из String в `Variant` на основе парсинга. [#62005](https://github.com/ClickHouse/ClickHouse/pull/62005) ([Kruglov Pavel](https://github.com/Avogar)). +* Добавлена поддержка типа `Variant` в функциях JSONExtract. [#62014](https://github.com/ClickHouse/ClickHouse/pull/62014) ([Kruglov Pavel](https://github.com/Avogar)). +* Тип `Variant` помечен как сравнимый, поэтому он может использоваться в первичном ключе. [#62693](https://github.com/ClickHouse/ClickHouse/pull/62693) ([Kruglov Pavel](https://github.com/Avogar)). + +#### Улучшения {#improvement-8} + +* Для удобства `SELECT * FROM numbers()` будет работать так же, как и `SELECT * FROM system.numbers` — без лимита. [#61969](https://github.com/ClickHouse/ClickHouse/pull/61969) ([YenchangChan](https://github.com/YenchangChan)). +* Добавлены отдельные теги consumer/producer для конфигурации Kafka. Это позволяет избежать предупреждений от librdkafka (неудачной C‑библиотеки с множеством ошибок) о том, что свойства consumer были указаны для экземпляров producer и наоборот (например, `Configuration property session.timeout.ms is a consumer property and will be ignored by this producer instance`). Закрывает: [#58983](https://github.com/ClickHouse/ClickHouse/issues/58983). [#58956](https://github.com/ClickHouse/ClickHouse/pull/58956) ([Aleksandr Musorin](https://github.com/AVMusorin)). +* Функции `date_diff` и `age` теперь вычисляют результат с наносекундной, а не с микросекундной точностью. Также они поддерживают `nanosecond` (или `nanoseconds`, или `ns`) как допустимое значение параметра `unit`. [#61409](https://github.com/ClickHouse/ClickHouse/pull/61409) ([Austin Kothig](https://github.com/kothiga)). +* Добавлены единицы времени — наносекунды, микросекунды и миллисекунды — для функции `date_trunc`. [#62335](https://github.com/ClickHouse/ClickHouse/pull/62335) ([Misz606](https://github.com/Misz606)). +* При перезагрузке сертификата также перезагружать цепочку сертификатов. [#61671](https://github.com/ClickHouse/ClickHouse/pull/61671) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* Попытка предотвратить ошибку [#60432](https://github.com/ClickHouse/ClickHouse/issues/60432), запрещая подключение таблицы, если для этого пути реплики уже существует активная реплика. [#61876](https://github.com/ClickHouse/ClickHouse/pull/61876) ([Arthur Passos](https://github.com/arthurpassos)). +* Добавлена поддержка `input` для `clickhouse-local`. [#61923](https://github.com/ClickHouse/ClickHouse/pull/61923) ([Azat Khuzhin](https://github.com/azat)). +* Движок таблицы `Join` со строгим режимом `ANY` ведет себя детерминированно после перезагрузки. Когда вставляется несколько строк с одинаковым ключом, первая будет иметь более высокий приоритет (ранее при загрузке таблицы строка выбиралась случайным образом). Закрывает [#51027](https://github.com/ClickHouse/ClickHouse/issues/51027). [#61972](https://github.com/ClickHouse/ClickHouse/pull/61972) ([vdimir](https://github.com/vdimir)). +* Автоматически определять типы столбцов Nullable на основе схемы Apache Arrow. [#61984](https://github.com/ClickHouse/ClickHouse/pull/61984) ([Maksim Kita](https://github.com/kitaisreal)). +* Добавлена возможность отменять параллельное слияние агрегатных состояний во время агрегации. Пример: `uniqExact`. [#61992](https://github.com/ClickHouse/ClickHouse/pull/61992) ([Maksim Kita](https://github.com/kitaisreal)). +* Используйте `system.keywords` для формирования подсказок, а также во всех внутренних механизмах. [#62000](https://github.com/ClickHouse/ClickHouse/pull/62000) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* `OPTIMIZE FINAL` для `ReplicatedMergeTree` теперь будет ждать завершения текущих активных слияний, а затем повторно пытаться запланировать финальное слияние. Это сделает его поведение более похожим на поведение обычного `MergeTree`. [#62067](https://github.com/ClickHouse/ClickHouse/pull/62067) ([Nikita Taranov](https://github.com/nickitat)). +* При чтении данных из текстового файла Hive первая строка файла использовалась для определения количества входных полей, и иногда количество полей в первой строке не совпадало с определением таблицы Hive. Например, таблица Hive определена как имеющая 3 столбца, `test_tbl(a Int32, b Int32, c Int32)`, но первая строка текстового файла содержит только 2 поля. В этой ситуации количество входных полей будет установлено равным 2, и если следующая строка текстового файла уже имеет 3 поля, то третье поле не будет прочитано, а вместо него будет установлено значение по умолчанию — 0, что неверно. [#62086](https://github.com/ClickHouse/ClickHouse/pull/62086) ([KevinyhZou](https://github.com/KevinyhZou)). +* Оператор `CREATE AS` копирует комментарий таблицы. [#62117](https://github.com/ClickHouse/ClickHouse/pull/62117) ([Pablo Marcos](https://github.com/pamarcos)). +* Добавлено отображение прогресса выполнения запросов в таблицу zookeeper. [#62152](https://github.com/ClickHouse/ClickHouse/pull/62152) ([JackyWoo](https://github.com/JackyWoo)). +* Добавлена возможность включать сборщик трассировки (Real и CPU) на уровне сервера. [#62189](https://github.com/ClickHouse/ClickHouse/pull/62189) ([alesapin](https://github.com/alesapin)). +* Добавлена настройка `lightweight_deletes_sync` (значение по умолчанию: 2 — синхронно ожидать выполнения на всех репликах). Аналогична настройке `mutations_sync`, но влияет только на поведение легковесного удаления. [#62195](https://github.com/ClickHouse/ClickHouse/pull/62195) ([Anton Popov](https://github.com/CurtizJ)). +* Различать логические значения и целые числа при разборе значений для пользовательских настроек: `SET custom_a = true; SET custom_b = 1;`. [#62206](https://github.com/ClickHouse/ClickHouse/pull/62206) ([Vitaly Baranov](https://github.com/vitlibar)). +* Реализована поддержка доступа к S3 через интерфейсные конечные точки AWS PrivateLink. Закрыты задачи [#60021](https://github.com/ClickHouse/ClickHouse/issues/60021), [#31074](https://github.com/ClickHouse/ClickHouse/issues/31074) и [#53761](https://github.com/ClickHouse/ClickHouse/issues/53761). [#62208](https://github.com/ClickHouse/ClickHouse/pull/62208) ([Arthur Passos](https://github.com/arthurpassos)). +* Не создавать каталог для UDF в clickhouse-client, если он не существует. Это исправляет проблему [#59597](https://github.com/ClickHouse/ClickHouse/issues/59597). [#62366](https://github.com/ClickHouse/ClickHouse/pull/62366) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Теперь кэш запросов не сохраняет результаты запросов к системным таблицам (`system.*`, `information_schema.*`, `INFORMATION_SCHEMA.*`). [#62376](https://github.com/ClickHouse/ClickHouse/pull/62376) ([Robert Schulze](https://github.com/rschu1ze)). +* `MOVE PARTITION TO TABLE` запрос может быть отложен или завершиться исключением `TOO_MANY_PARTS`, чтобы не превысить лимиты на количество частей. Применяются те же настройки и ограничения, что и для запроса `INSERT` (см. настройки `max_parts_in_total`, `parts_to_delay_insert`, `parts_to_throw_insert`, `inactive_parts_to_throw_insert`, `inactive_parts_to_delay_insert`, `max_avg_part_size_for_too_many_parts`, `min_delay_to_insert_ms` и `max_delay_to_insert`). [#62420](https://github.com/ClickHouse/ClickHouse/pull/62420) ([Sergei Trifonov](https://github.com/serxa)). +* Каталог установки по умолчанию в macOS изменён с `/usr/bin` на `/usr/local/bin`. Это необходимо, поскольку функция System Integrity Protection компании Apple, появившаяся в macOS El Capitan (2015), запрещает запись в `/usr/bin` даже при использовании `sudo`. [#62489](https://github.com/ClickHouse/ClickHouse/pull/62489) ([haohang](https://github.com/yokofly)). +* Функция `transform` теперь всегда возвращает первое совпадение. [#62518](https://github.com/ClickHouse/ClickHouse/pull/62518) ([Raúl Marín](https://github.com/Algunenano)). +* В системную таблицу `blob_storage_log` добавлен отсутствовавший столбец `hostname`. [#62456](https://github.com/ClickHouse/ClickHouse/pull/62456) ([Jayme Bird](https://github.com/jaymebrd)). +* Для согласованности с другими системными таблицами в системной таблице `system.backup_log` теперь появился столбец `event_time`. [#62541](https://github.com/ClickHouse/ClickHouse/pull/62541) ([Jayme Bird](https://github.com/jaymebrd)). +* Таблица `system.backup_log` теперь имеет ключ сортировки по умолчанию `event_date, event_time`, такой же, как у других таблиц с движком `_log`. [#62667](https://github.com/ClickHouse/ClickHouse/pull/62667) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Не вычислять выражения DEFAULT таблиц при выполнении `RESTORE`. [#62601](https://github.com/ClickHouse/ClickHouse/pull/62601) ([Vitaly Baranov](https://github.com/vitlibar)). +* Хранилище и резервные копии в S3 также должны использовать те же значения параметров keep-alive по умолчанию, что и диск S3. [#62648](https://github.com/ClickHouse/ClickHouse/pull/62648) ([Sema Checherinda](https://github.com/CheSema)). +* В сообщения журнала добавлен идентификатор клиента из библиотеки librdkafka (той самой печально известной библиотеки на C с множеством багов), чтобы можно было различать сообщения от разных потребителей одной таблицы. [#62813](https://github.com/ClickHouse/ClickHouse/pull/62813) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Разрешено использовать специальные макросы `{uuid}` и `{database}` в пути ZooKeeper реплицируемой базы данных. [#62818](https://github.com/ClickHouse/ClickHouse/pull/62818) ([Vitaly Baranov](https://github.com/vitlibar)). +* Добавлена поддержка использования ключа QUOTA с иной схемой аутентификации в HTTP-запросах. [#62842](https://github.com/ClickHouse/ClickHouse/pull/62842) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Сокращена подробность вывода справки (`--help`) в `clickhouse client` и `clickhouse local`. Прежний подробный вывод теперь доступен через `--help --verbose`. [#62973](https://github.com/ClickHouse/ClickHouse/pull/62973) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* `log_bin_use_v1_row_events` был удалён в MySQL 8.3, и мы адаптировали под это экспериментальный движок `MaterializedMySQL` [#60479](https://github.com/ClickHouse/ClickHouse/issues/60479). [#63101](https://github.com/ClickHouse/ClickHouse/pull/63101) ([Eugene Klimov](https://github.com/Slach)). Автор: Nikolay Yankin. + +#### Улучшения процессов сборки/тестирования/упаковки {#buildtestingpackaging-improvement-4} + +* Вендоризировали зависимости Rust, чтобы код на Rust (который мы используем для мелких фич ради хайпа и фана) можно было собирать нормальным образом, аналогично C++. [#62297](https://github.com/ClickHouse/ClickHouse/pull/62297) ([Raúl Marín](https://github.com/Algunenano)). +* ClickHouse теперь использует OpenSSL 3.2 вместо BoringSSL. [#59870](https://github.com/ClickHouse/ClickHouse/pull/59870) ([Robert Schulze](https://github.com/rschu1ze)). Обратите внимание, что в OpenSSL в целом более слабая инженерная культура (например, ненулевое количество отчётов санитайзеров, которые нам пришлось исправлять, сложная система сборки с генерируемыми файлами и т.д.), но при этом лучшая совместимость. +* Игнорировать запросы DROP в стресс‑тесте с вероятностью 1/2, использовать TRUNCATE вместо игнорирования DROP при проверке обновления для таблиц Memory/JOIN. [#61476](https://github.com/ClickHouse/ClickHouse/pull/61476) ([Kruglov Pavel](https://github.com/Avogar)). +* Удалены тома /etc/clickhouse-keeper и /var/log/clickhouse-keeper из Docker-образа Keeper. [#61683](https://github.com/ClickHouse/ClickHouse/pull/61683) ([Tristan](https://github.com/Tristan971)). +* Добавлены тесты для всех задач, которые больше не актуальны при включённом по умолчанию Analyzer. Closes: [#55794](https://github.com/ClickHouse/ClickHouse/issues/55794) Closes: [#49472](https://github.com/ClickHouse/ClickHouse/issues/49472) Closes: [#44414](https://github.com/ClickHouse/ClickHouse/issues/44414) Closes: [#13843](https://github.com/ClickHouse/ClickHouse/issues/13843) Closes: [#55803](https://github.com/ClickHouse/ClickHouse/issues/55803) Closes: [#48308](https://github.com/ClickHouse/ClickHouse/issues/48308) Closes: [#45535](https://github.com/ClickHouse/ClickHouse/issues/45535) Closes: [#44365](https://github.com/ClickHouse/ClickHouse/issues/44365) Closes: [#44153](https://github.com/ClickHouse/ClickHouse/issues/44153) Closes: [#42399](https://github.com/ClickHouse/ClickHouse/issues/42399) Closes: [#27115](https://github.com/ClickHouse/ClickHouse/issues/27115) Closes: [#23162](https://github.com/ClickHouse/ClickHouse/issues/23162) Closes: [#15395](https://github.com/ClickHouse/ClickHouse/issues/15395) Closes: [#15411](https://github.com/ClickHouse/ClickHouse/issues/15411) Closes: [#14978](https://github.com/ClickHouse/ClickHouse/issues/14978) Closes: [#17319](https://github.com/ClickHouse/ClickHouse/issues/17319) Closes: [#11813](https://github.com/ClickHouse/ClickHouse/issues/11813) Closes: [#13210](https://github.com/ClickHouse/ClickHouse/issues/13210) Closes: [#23053](https://github.com/ClickHouse/ClickHouse/issues/23053) Closes: [#37729](https://github.com/ClickHouse/ClickHouse/issues/37729) Closes: [#32639](https://github.com/ClickHouse/ClickHouse/issues/32639) Closes: [#9954](https://github.com/ClickHouse/ClickHouse/issues/9954) Closes: [#41964](https://github.com/ClickHouse/ClickHouse/issues/41964) Closes: [#54317](https://github.com/ClickHouse/ClickHouse/issues/54317) Closes: [#7520](https://github.com/ClickHouse/ClickHouse/issues/7520) Closes: [#36973](https://github.com/ClickHouse/ClickHouse/issues/36973) Closes: [#40955](https://github.com/ClickHouse/ClickHouse/issues/40955) Closes: [#19687](https://github.com/ClickHouse/ClickHouse/issues/19687) Closes: [#23104](https://github.com/ClickHouse/ClickHouse/issues/23104) Closes: [#21584](https://github.com/ClickHouse/ClickHouse/issues/21584) Closes: [#23344](https://github.com/ClickHouse/ClickHouse/issues/23344) Closes: [#22627](https://github.com/ClickHouse/ClickHouse/issues/22627) Closes: [#10276](https://github.com/ClickHouse/ClickHouse/issues/10276) Closes: [#19687](https://github.com/ClickHouse/ClickHouse/issues/19687) Closes: [#4567](https://github.com/ClickHouse/ClickHouse/issues/4567) Closes: [#17710](https://github.com/ClickHouse/ClickHouse/issues/17710) Closes: [#11068](https://github.com/ClickHouse/ClickHouse/issues/11068) Closes: [#24395](https://github.com/ClickHouse/ClickHouse/issues/24395) Closes: [#23416](https://github.com/ClickHouse/ClickHouse/issues/23416) Closes: [#23162](https://github.com/ClickHouse/ClickHouse/issues/23162) Closes: [#25655](https://github.com/ClickHouse/ClickHouse/issues/25655) Closes: [#11757](https://github.com/ClickHouse/ClickHouse/issues/11757) Closes: [#6571](https://github.com/ClickHouse/ClickHouse/issues/6571) Closes: [#4432](https://github.com/ClickHouse/ClickHouse/issues/4432) Closes: [#8259](https://github.com/ClickHouse/ClickHouse/issues/8259) Closes: [#9233](https://github.com/ClickHouse/ClickHouse/issues/9233) Closes: [#14699](https://github.com/ClickHouse/ClickHouse/issues/14699) Closes: [#27068](https://github.com/ClickHouse/ClickHouse/issues/27068) Closes: [#28687](https://github.com/ClickHouse/ClickHouse/issues/28687) Closes: [#28777](https://github.com/ClickHouse/ClickHouse/issues/28777) Closes: [#29734](https://github.com/ClickHouse/ClickHouse/issues/29734) Closes: [#61238](https://github.com/ClickHouse/ClickHouse/issues/61238) Closes: [#33825](https://github.com/ClickHouse/ClickHouse/issues/33825) Closes: [#35608](https://github.com/ClickHouse/ClickHouse/issues/35608) Closes: [#29838](https://github.com/ClickHouse/ClickHouse/issues/29838) Closes: [#35652](https://github.com/ClickHouse/ClickHouse/issues/35652) Closes: [#36189](https://github.com/ClickHouse/ClickHouse/issues/36189) Closes: [#39634](https://github.com/ClickHouse/ClickHouse/issues/39634) Closes: [#47432](https://github.com/ClickHouse/ClickHouse/issues/47432) Closes: [#54910](https://github.com/ClickHouse/ClickHouse/issues/54910) Closes: [#57321](https://github.com/ClickHouse/ClickHouse/issues/57321) Closes: [#59154](https://github.com/ClickHouse/ClickHouse/issues/59154) Closes: [#61014](https://github.com/ClickHouse/ClickHouse/issues/61014) Closes: [#61950](https://github.com/ClickHouse/ClickHouse/issues/61950) Closes: [#55647](https://github.com/ClickHouse/ClickHouse/issues/55647) Closes: [#61947](https://github.com/ClickHouse/ClickHouse/issues/61947). [#62185](https://github.com/ClickHouse/ClickHouse/pull/62185) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Добавлены дополнительные тесты из задач, которые больше не актуальны или были исправлены анализатором. Closes: [#58985](https://github.com/ClickHouse/ClickHouse/issues/58985) Closes: [#59549](https://github.com/ClickHouse/ClickHouse/issues/59549) Closes: [#36963](https://github.com/ClickHouse/ClickHouse/issues/36963) Closes: [#39453](https://github.com/ClickHouse/ClickHouse/issues/39453) Closes: [#56521](https://github.com/ClickHouse/ClickHouse/issues/56521) Closes: [#47552](https://github.com/ClickHouse/ClickHouse/issues/47552) Closes: [#56503](https://github.com/ClickHouse/ClickHouse/issues/56503) Closes: [#59101](https://github.com/ClickHouse/ClickHouse/issues/59101) Closes: [#50271](https://github.com/ClickHouse/ClickHouse/issues/50271) Closes: [#54954](https://github.com/ClickHouse/ClickHouse/issues/54954) Closes: [#56466](https://github.com/ClickHouse/ClickHouse/issues/56466) Closes: [#11000](https://github.com/ClickHouse/ClickHouse/issues/11000) Closes: [#10894](https://github.com/ClickHouse/ClickHouse/issues/10894) Closes: [https://github.com/ClickHouse/ClickHouse/issues/448](https://github.com/ClickHouse/ClickHouse/issues/448) Closes: [#8030](https://github.com/ClickHouse/ClickHouse/issues/8030) Closes: [#32139](https://github.com/ClickHouse/ClickHouse/issues/32139) Closes: [#47288](https://github.com/ClickHouse/ClickHouse/issues/47288) Closes: [#50705](https://github.com/ClickHouse/ClickHouse/issues/50705) Closes: [#54511](https://github.com/ClickHouse/ClickHouse/issues/54511) Closes: [#55466](https://github.com/ClickHouse/ClickHouse/issues/55466) Closes: [#58500](https://github.com/ClickHouse/ClickHouse/issues/58500) Closes: [#39923](https://github.com/ClickHouse/ClickHouse/issues/39923) Closes: [#39855](https://github.com/ClickHouse/ClickHouse/issues/39855) Closes: [#4596](https://github.com/ClickHouse/ClickHouse/issues/4596) Closes: [#47422](https://github.com/ClickHouse/ClickHouse/issues/47422) Closes: [#33000](https://github.com/ClickHouse/ClickHouse/issues/33000) Closes: [#14739](https://github.com/ClickHouse/ClickHouse/issues/14739) Closes: [#44039](https://github.com/ClickHouse/ClickHouse/issues/44039) Closes: [#8547](https://github.com/ClickHouse/ClickHouse/issues/8547) Closes: [#22923](https://github.com/ClickHouse/ClickHouse/issues/22923) Closes: [#23865](https://github.com/ClickHouse/ClickHouse/issues/23865) Closes: [#29748](https://github.com/ClickHouse/ClickHouse/issues/29748) Closes: [#4222](https://github.com/ClickHouse/ClickHouse/issues/4222). [#62457](https://github.com/ClickHouse/ClickHouse/pull/62457) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Исправлены ошибки сборки при динамической компоновке OpenSSL (примечание: это в общем не поддерживается и требуется только для платформ IBM s390x). [#62888](https://github.com/ClickHouse/ClickHouse/pull/62888) ([Harry Lee](https://github.com/HarryLeeIBM)). + +#### Исправление ошибки (ошибка, заметная пользователю, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-6} + +* Исправлена логическая ошибка при откате транзакции вставки с кворумом. [#61953](https://github.com/ClickHouse/ClickHouse/pull/61953) ([Han Fei](https://github.com/hanfei1991)). +* Исправлена ошибка парсера при использовании COUNT(*) с конструкцией FILTER [#61357](https://github.com/ClickHouse/ClickHouse/pull/61357) ([Duc Canh Le](https://github.com/canhld94)). +* Исправлена логическая ошибка при использовании `group_by_use_nulls` с grouping sets, analyzer и materialize/constant [#61567](https://github.com/ClickHouse/ClickHouse/pull/61567) ([Kruglov Pavel](https://github.com/Avogar)). +* Отменять операции слияния перед удалением перемещённых частей [#61610](https://github.com/ClickHouse/ClickHouse/pull/61610) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Исправлена ошибка, приводившая к аварийному завершению в Apache Arrow [#61720](https://github.com/ClickHouse/ClickHouse/pull/61720) ([Kruglov Pavel](https://github.com/Avogar)). +* Поиск флага `convert_to_replicated` выполняется по корректному пути, соответствующему конкретному диску [#61769](https://github.com/ClickHouse/ClickHouse/pull/61769) ([Kirill](https://github.com/kirillgarbar)). +* Исправлена возможная гонка данных при работе с подключениями для distributed_foreground_insert/distributed_background_insert_batch [#61867](https://github.com/ClickHouse/ClickHouse/pull/61867) ([Azat Khuzhin](https://github.com/azat)). +* Пометить ошибку CANNOT_PARSE_ESCAPE_SEQUENCE как ошибку разбора, чтобы можно было пропускать её в форматах ввода по строкам [#61883](https://github.com/ClickHouse/ClickHouse/pull/61883) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлена запись сообщения об исключении в HTTP-выходном формате при использовании http_wait_end_of_query [#61951](https://github.com/ClickHouse/ClickHouse/pull/61951) ([Kruglov Pavel](https://github.com/Avogar)). +* Корректное исправление для `LowCardinality` совместно с функциями `JSONExtract` [#61957](https://github.com/ClickHouse/ClickHouse/pull/61957) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Сбой в движке Merge, если у ROW POLICY отсутствует выражение [#61971](https://github.com/ClickHouse/ClickHouse/pull/61971) ([Ilya Golshtein](https://github.com/ilejn)). +* Исправлено неперехваченное исключение в деструкторе WriteBufferAzureBlobStorage [#61988](https://github.com/ClickHouse/ClickHouse/pull/61988) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)). +* Исправлена проблема с использованием CREATE TABLE без определения столбцов для ReplicatedMergeTree [#62040](https://github.com/ClickHouse/ClickHouse/pull/62040) ([Azat Khuzhin](https://github.com/azat)). +* Исправлено поведение optimize_skip_unused_shards_rewrite_in при использовании составного ключа сегментирования [#62047](https://github.com/ClickHouse/ClickHouse/pull/62047) ([Azat Khuzhin](https://github.com/azat)). +* ReadWriteBufferFromHTTP корректно устанавливает заголовок Host при перенаправлении [#62068](https://github.com/ClickHouse/ClickHouse/pull/62068) ([Sema Checherinda](https://github.com/CheSema)). +* Исправлена ошибка, из-за которой во внешней таблице не удавалось разобрать тип данных Bool [#62115](https://github.com/ClickHouse/ClickHouse/pull/62115) ([Duc Canh Le](https://github.com/canhld94)). +* Analyzer: исправлена обработка параметров запроса [#62186](https://github.com/ClickHouse/ClickHouse/pull/62186) ([Dmitry Novik](https://github.com/novikd)). +* Исправлено восстановление частей в режиме только для чтения [#62207](https://github.com/ClickHouse/ClickHouse/pull/62207) ([Vitaly Baranov](https://github.com/vitlibar)). +* Исправлено падение при определении индекса, содержащего SQL UDF [#62225](https://github.com/ClickHouse/ClickHouse/pull/62225) ([vdimir](https://github.com/vdimir)). +* Исправлена ошибка использования NULL в качестве случайного seed для generateRandom при работе анализатора. [#62248](https://github.com/ClickHouse/ClickHouse/pull/62248) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлена обработка константных столбцов в Distinct Transform [#62250](https://github.com/ClickHouse/ClickHouse/pull/62250) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлен Parts Splitter в запросах с модификатором FINAL [#62268](https://github.com/ClickHouse/ClickHouse/pull/62268) ([Nikita Taranov](https://github.com/nickitat)). +* Analyzer: Исправлено разрешение алиаса на параметризованное представление [#62274](https://github.com/ClickHouse/ClickHouse/pull/62274) ([Dmitry Novik](https://github.com/novikd)). +* Analyzer: исправлено разрешение имён в родительских областях видимости [#62281](https://github.com/ClickHouse/ClickHouse/pull/62281) ([Dmitry Novik](https://github.com/novikd)). +* Исправлена работа argMax с Nullable-столбцом ненативного числового типа [#62285](https://github.com/ClickHouse/ClickHouse/pull/62285) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлены операции BACKUP и RESTORE для materialized view в базе данных типа Ordinary [#62295](https://github.com/ClickHouse/ClickHouse/pull/62295) ([Vitaly Baranov](https://github.com/vitlibar)). +* Исправлена гонка данных при работе со скалярами в Context [#62305](https://github.com/ClickHouse/ClickHouse/pull/62305) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлен первичный ключ в materialized view [#62319](https://github.com/ClickHouse/ClickHouse/pull/62319) ([Murat Khairulin](https://github.com/mxwell)). +* Не создавать многопоточный конвейер вставки для таблиц, не поддерживающих его [#62333](https://github.com/ClickHouse/ClickHouse/pull/62333) ([vdimir](https://github.com/vdimir)). +* Исправлена работа анализатора с позиционными аргументами в распределённом запросе [#62362](https://github.com/ClickHouse/ClickHouse/pull/62362) ([flynn](https://github.com/ucasfl)). +* Исправлено проталкивание фильтров из `additional_table_filters` в движке Merge в анализаторе [#62398](https://github.com/ClickHouse/ClickHouse/pull/62398) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлены запросы к таблицам с GLOBAL IN в анализаторе. [#62409](https://github.com/ClickHouse/ClickHouse/pull/62409) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Учитывать настройки truncate_on_insert/create_new_file_on_insert в движках S3/HDFS/Azure при партиционированной записи [#62425](https://github.com/ClickHouse/ClickHouse/pull/62425) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлен путь восстановления резервных копий для AzureBlobStorage [#62447](https://github.com/ClickHouse/ClickHouse/pull/62447) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)). +* Исправлена ошибка в SimpleSquashingChunksTransform [#62451](https://github.com/ClickHouse/ClickHouse/pull/62451) ([Nikita Taranov](https://github.com/nickitat)). +* Исправлен захват вложенной лямбда-функции. [#62462](https://github.com/ClickHouse/ClickHouse/pull/62462) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлен сбой при чтении protobuf с рекурсивными типами [#62506](https://github.com/ClickHouse/ClickHouse/pull/62506) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена ошибка при попытке переместить партицию саму в себя [#62524](https://github.com/ClickHouse/ClickHouse/pull/62524) ([helifu](https://github.com/helifu)). +* Исправлена работа скалярного подзапроса в LIMIT [#62567](https://github.com/ClickHouse/ClickHouse/pull/62567) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлен segfault в экспериментальном и неподдерживаемом движке Hive, который нам, впрочем, всё равно не нравится [#62578](https://github.com/ClickHouse/ClickHouse/pull/62578) ([Nikolay Degterinsky](https://github.com/evillique)). +* Устранена утечка памяти в функции groupArraySorted [#62597](https://github.com/ClickHouse/ClickHouse/pull/62597) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлена ошибка, приводившая к сбою в largestTriangleThreeBuckets [#62646](https://github.com/ClickHouse/ClickHouse/pull/62646) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлены tumble[Start,End] и hop[Start,End] для работы с более крупными разрешениями [#62705](https://github.com/ClickHouse/ClickHouse/pull/62705) ([Jordi Villar](https://github.com/jrdi)). +* Исправлено состояние комбинаторов argMin/argMax [#62708](https://github.com/ClickHouse/ClickHouse/pull/62708) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена проблема, из‑за которой работа с временными данными в кэше могла завершаться сбоем из‑за оптимизации, связанной с конкуренцией за блокировку кэша [#62715](https://github.com/ClickHouse/ClickHouse/pull/62715) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлено падение в функции `mergeTreeIndex` [#62762](https://github.com/ClickHouse/ClickHouse/pull/62762) ([Anton Popov](https://github.com/CurtizJ)). +* исправление: обновление вложенных материализованных столбцов: исправлена проверка размера [#62773](https://github.com/ClickHouse/ClickHouse/pull/62773) ([Eliot Hautefeuille](https://github.com/hileef)). +* Исправлена ошибка, из-за которой модификатор FINAL не учитывался в CTE при использовании analyzer [#62811](https://github.com/ClickHouse/ClickHouse/pull/62811) ([Duc Canh Le](https://github.com/canhld94)). +* Исправлен сбой (crash) в функции `formatRow` при использовании формата `JSON` и HTTP‑интерфейса [#62840](https://github.com/ClickHouse/ClickHouse/pull/62840) ([Anton Popov](https://github.com/CurtizJ)). +* Azure: исправлено формирование конечного URL из объекта endpoint [#62850](https://github.com/ClickHouse/ClickHouse/pull/62850) ([Daniel Pozo Escalona](https://github.com/danipozo)). +* Исправлен кодек GCD [#62853](https://github.com/ClickHouse/ClickHouse/pull/62853) ([Nikita Taranov](https://github.com/nickitat)). +* Исправлен ключ LowCardinality(Nullable) в гиперпрямоугольнике [#62866](https://github.com/ClickHouse/ClickHouse/pull/62866) ([Amos Bird](https://github.com/amosbird)). +* Исправлена функция fromUnixtimestamp в синтаксисе Joda для входных значений, выходящих за пределы диапазона UInt32 [#62901](https://github.com/ClickHouse/ClickHouse/pull/62901) ([KevinyhZou](https://github.com/KevinyhZou)). +* Отключено optimize_rewrite_aggregate_function_with_if для sum(Nullable) [#62912](https://github.com/ClickHouse/ClickHouse/pull/62912) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена обработка PREWHERE для StorageBuffer при различных типах столбцов в исходной таблице. [#62916](https://github.com/ClickHouse/ClickHouse/pull/62916) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлена некорректная обработка ошибки при создании директории ключей кэша для временных данных в кэше [#62925](https://github.com/ClickHouse/ClickHouse/pull/62925) ([Kseniia Sumarokova](https://github.com/kssenii)). +* gRPC: исправлен сбой при установлении соединения с узлом-пиром по IPv6 [#62978](https://github.com/ClickHouse/ClickHouse/pull/62978) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Исправлена возможная ошибка CHECKSUM_DOESNT_MATCH (и другие) во время реплицированной загрузки данных [#62987](https://github.com/ClickHouse/ClickHouse/pull/62987) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена аварийная остановка с неперехваченным исключением при работе с временными данными в кэше [#62998](https://github.com/ClickHouse/ClickHouse/pull/62998) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлено неявное приведение типов в оптимизации optimize_rewrite_aggregate_function_with_if [#62999](https://github.com/ClickHouse/ClickHouse/pull/62999) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена проблема с необработанным исключением в ~RestorerFromBackup [#63040](https://github.com/ClickHouse/ClickHouse/pull/63040) ([Vitaly Baranov](https://github.com/vitlibar)). +* Серверные константы больше не удаляются из ключа GROUP BY для вторичного запроса. [#63047](https://github.com/ClickHouse/ClickHouse/pull/63047) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлено некорректное определение монотонности функции abs [#63097](https://github.com/ClickHouse/ClickHouse/pull/63097) ([Duc Canh Le](https://github.com/canhld94)). +* Задано имя сервера для SSL-рукопожатия в движке MongoDB [#63122](https://github.com/ClickHouse/ClickHouse/pull/63122) ([Alexander Gololobov](https://github.com/davenger)). +* Использовать заданную пользователем базу данных вместо "config" при проверке версии сетевого протокола MongoDB [#63126](https://github.com/ClickHouse/ClickHouse/pull/63126) ([Alexander Gololobov](https://github.com/davenger)). + +### Выпуск ClickHouse 24.3 LTS, 2024-03-27. [Презентация](https://presentations.clickhouse.com/2024-release-24.3/), [видео](https://www.youtube.com/watch?v=FGhdXXXTuTg) {#a-id243a-clickhouse-release-243-lts-2024-03-27} + + + +#### Примечания по обновлению {#upgrade-notes-1} + +* Настройка `allow_experimental_analyzer` включена по умолчанию и переключает анализ запросов на новую реализацию, которая обладает лучшей совместимостью и более полной поддержкой возможностей. Возможность «analyzer» считается beta, а не experimental. Вы можете вернуть прежнее поведение, задав параметру `compatibility` значение `24.2` или отключив настройку `allow_experimental_analyzer`. Посмотрите [видео на YouTube](https://www.youtube.com/watch?v=zhrOYQpgvkk). +* ClickHouse допускает произвольные бинарные данные в типе данных String, который обычно используется для UTF-8. Строки типа String в форматах Parquet/ORC/Arrow поддерживают только UTF-8. Поэтому вы можете выбрать, какой тип данных Arrow использовать для типа данных ClickHouse String — String или Binary. Это контролируется настройками `output_format_parquet_string_as_string`, `output_format_orc_string_as_string`, `output_format_arrow_string_as_string`. Хотя Binary был бы более корректным и совместимым вариантом, использование String по умолчанию в большинстве случаев будет соответствовать ожиданиям пользователей. Parquet/ORC/Arrow поддерживают множество методов сжатия, включая lz4 и zstd. ClickHouse поддерживает каждый из этих методов сжатия. Некоторые менее совершенные инструменты не поддерживают более быстрый метод сжатия `lz4`, поэтому по умолчанию мы устанавливаем `zstd`. Это контролируется настройками `output_format_parquet_compression_method`, `output_format_orc_compression_method` и `output_format_arrow_compression_method`. Мы изменили значение по умолчанию на `zstd` для Parquet и ORC, но не для Arrow (так как он используется преимущественно в низкоуровневых сценариях). [#61817](https://github.com/ClickHouse/ClickHouse/pull/61817) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* В новой версии ClickHouse функции `geoDistance`, `greatCircleDistance` и `greatCircleAngle` будут использовать 64-битный числовой тип с плавающей запятой двойной точности для внутренних вычислений и в качестве типа возвращаемого значения, если все аргументы имеют тип Float64. Это закрывает [#58476](https://github.com/ClickHouse/ClickHouse/issues/58476). В предыдущих версиях функция всегда использовала Float32. Вы можете переключиться на прежнее поведение, установив параметр `geo_distance_returns_float64_on_float64_arguments` в значение `false` или параметр `compatibility` в `24.2` или более раннее значение. [#61848](https://github.com/ClickHouse/ClickHouse/pull/61848) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Совместно с [Geet Patel](https://github.com/geetptl). +* Устаревшие части данных в памяти были признаны устаревшими, начиная с версии 23.5, а их поддержка прекращена с версии 23.10. Теперь оставшийся код удалён. Продолжение [#55186](https://github.com/ClickHouse/ClickHouse/issues/55186) и [#45409](https://github.com/ClickHouse/ClickHouse/issues/45409). Маловероятно, что вы использовали части данных в памяти, поскольку они были доступны только до версии 23.5 и только при их явном включении через указание соответствующих SETTINGS для таблицы MergeTree. Чтобы проверить, есть ли у вас части данных в памяти, выполните следующий запрос: `SELECT part_type, count() FROM system.parts GROUP BY part_type ORDER BY part_type`. Чтобы отключить использование частей данных в памяти, выполните `ALTER TABLE ... MODIFY SETTING min_bytes_for_compact_part = DEFAULT, min_rows_for_compact_part = DEFAULT`. Перед обновлением со старых релизов ClickHouse сначала убедитесь, что у вас нет частей данных в памяти. Если есть части данных в памяти, сначала отключите их, затем дождитесь, пока не останется ни одной такой части данных в памяти, и продолжайте обновление. [#61127](https://github.com/ClickHouse/ClickHouse/pull/61127) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Изменено имя столбца с `duration_ms` на `duration_microseconds` в таблице `system.zookeeper`, чтобы отразить тот факт, что длительность измеряется с микросекундной точностью. [#60774](https://github.com/ClickHouse/ClickHouse/pull/60774) ([Duc Canh Le](https://github.com/canhld94)). +* Отклонять входящие запросы `INSERT`, если настройки уровня запроса `async_insert` и `deduplicate_blocks_in_dependent_materialized_views` включены одновременно. Это поведение контролируется настройкой `throw_if_deduplication_in_dependent_materialized_views_enabled_with_async_insert` и по умолчанию включена. Это продолжение [https://github.com/ClickHouse/ClickHouse/pull/59699](https://github.com/ClickHouse/ClickHouse/pull/59699), необходимое, чтобы разблокировать [https://github.com/ClickHouse/ClickHouse/pull/59915](https://github.com/ClickHouse/ClickHouse/pull/59915). [#60888](https://github.com/ClickHouse/ClickHouse/pull/60888) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Утилита `clickhouse-copier` перенесена в отдельный репозиторий на GitHub: [https://github.com/ClickHouse/copier](https://github.com/ClickHouse/copier). Она больше не входит в поставку, но по-прежнему доступна для отдельного скачивания. Тем самым закрывается задача: [#60734](https://github.com/ClickHouse/ClickHouse/issues/60734) Тем самым закрывается задача: [#60540](https://github.com/ClickHouse/ClickHouse/issues/60540) Тем самым закрывается задача: [#60250](https://github.com/ClickHouse/ClickHouse/issues/60250) Тем самым закрывается задача: [#52917](https://github.com/ClickHouse/ClickHouse/issues/52917) Тем самым закрывается задача: [#51140](https://github.com/ClickHouse/ClickHouse/issues/51140) Тем самым закрывается задача: [#47517](https://github.com/ClickHouse/ClickHouse/issues/47517) Тем самым закрывается задача: [#47189](https://github.com/ClickHouse/ClickHouse/issues/47189) Тем самым закрывается задача: [#46598](https://github.com/ClickHouse/ClickHouse/issues/46598) Тем самым закрывается задача: [#40257](https://github.com/ClickHouse/ClickHouse/issues/40257) Тем самым закрывается задача: [#36504](https://github.com/ClickHouse/ClickHouse/issues/36504) Тем самым закрывается задача: [#35485](https://github.com/ClickHouse/ClickHouse/issues/35485) Тем самым закрывается задача: [#33702](https://github.com/ClickHouse/ClickHouse/issues/33702) Тем самым закрывается задача: [#26702](https://github.com/ClickHouse/ClickHouse/issues/26702). +* Для повышения совместимости с MySQL алиас функции `locate`, совместимый с MySQL, теперь по умолчанию принимает аргументы в порядке `(needle, haystack[, start_pos])`. Предыдущее поведение `(haystack, needle[, start_pos])` можно вернуть, установив настройку `function_locate_has_mysql_compatible_argument_order = 0`. [#61092](https://github.com/ClickHouse/ClickHouse/pull/61092) ([Robert Schulze](https://github.com/rschu1ze)). +* По умолчанию запрещено использование `SimpleAggregateFunction` в `ORDER BY` таблиц `MergeTree` (как и `AggregateFunction`; они запрещены, потому что их значения не сравнимы). Используйте `allow_suspicious_primary_key`, чтобы разрешить их. [#61399](https://github.com/ClickHouse/ClickHouse/pull/61399) ([Azat Khuzhin](https://github.com/azat)). +* Движок базы данных `Ordinary` объявлен устаревшим. В `clickhouse-client` вы получите предупреждение, если ваш сервер его использует. Это закрывает [#52229](https://github.com/ClickHouse/ClickHouse/issues/52229). [#56942](https://github.com/ClickHouse/ClickHouse/pull/56942) ([shabroo](https://github.com/shabroo)). + +#### New Feature {#new-feature-9} + +* Поддержка чтения и записи резервных копий в формате `tar` (в дополнение к `zip`). [#59535](https://github.com/ClickHouse/ClickHouse/pull/59535) ([josh-hildred](https://github.com/josh-hildred)). +* Реализована поддержка бакетов S3 Express. [#59965](https://github.com/ClickHouse/ClickHouse/pull/59965) ([Nikita Taranov](https://github.com/nickitat)). +* Возможность прикреплять части с другого диска (с использованием копирования вместо жёстких ссылок). [#60112](https://github.com/ClickHouse/ClickHouse/pull/60112) ([Unalian](https://github.com/Unalian)). +* Ограниченные по размеру таблицы `Memory`: управляются настройками `min_bytes_to_keep, max_bytes_to_keep, min_rows_to_keep` и `max_rows_to_keep`. [#60612](https://github.com/ClickHouse/ClickHouse/pull/60612) ([Jake Bamrah](https://github.com/JakeBamrah)). +* Раздельные лимиты на количество ожидающих и выполняющихся запросов. Добавлена новая серверная настройка `max_waiting_queries`, которая ограничивает число запросов, ожидающих из-за `async_load_databases`. Существующие лимиты на число выполняющихся запросов больше не учитывают ожидающие запросы. [#61053](https://github.com/ClickHouse/ClickHouse/pull/61053) ([Sergei Trifonov](https://github.com/serxa)). +* Добавлена таблица `system.keywords`, которая содержит все ключевые слова из парсера. В основном необходима и будет использоваться для улучшенного фаззинга и подсветки синтаксиса. [#51808](https://github.com/ClickHouse/ClickHouse/pull/51808) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Добавлена поддержка `ATTACH PARTITION ALL`. [#61107](https://github.com/ClickHouse/ClickHouse/pull/61107) ([Kirill Nikiforov](https://github.com/allmazz)). +* Добавлена новая функция `getClientHTTPHeader`. Это закрывает задачу [#54665](https://github.com/ClickHouse/ClickHouse/issues/54665). Соавтор — @lingtaolf. [#61820](https://github.com/ClickHouse/ClickHouse/pull/61820) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена `generate_series` как табличная функция (псевдоним совместимости с PostgreSQL для существующей функции `numbers`). Эта функция генерирует таблицу с арифметической прогрессией натуральных чисел. [#59390](https://github.com/ClickHouse/ClickHouse/pull/59390) ([divanik](https://github.com/divanik)). +* Добавлен режим работы `topK`/`topkWeighed`, который возвращает количество значений и оценку погрешности. [#54508](https://github.com/ClickHouse/ClickHouse/pull/54508) ([UnamedRus](https://github.com/UnamedRus)). +* Добавлена функция `toMillisecond`, которая возвращает компоненту миллисекунд для значений типа `DateTime` или `DateTime64`. [#60281](https://github.com/ClickHouse/ClickHouse/pull/60281) ([Shaun Struwig](https://github.com/Blargian)). +* Добавлена возможность настраивать обработчики HTTP‑редиректов для clickhouse-server. Например, можно сделать так, чтобы `/` перенаправлял на Play UI. [#60390](https://github.com/ClickHouse/ClickHouse/pull/60390) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + +#### Повышение производительности {#performance-improvement-9} + +* Оптимизирована функция `dotProduct` для исключения ненужных и дорогостоящих операций копирования памяти. [#60928](https://github.com/ClickHouse/ClickHouse/pull/60928) ([Robert Schulze](https://github.com/rschu1ze)). +* Вывод 256-битных целых чисел стал в 30 раз быстрее. [#61100](https://github.com/ClickHouse/ClickHouse/pull/61100) ([Raúl Marín](https://github.com/Algunenano)). +* Если первичный ключ таблицы содержит в основном бесполезные столбцы, не храните их в памяти. Это контролируется новой настройкой `primary_key_ratio_of_unique_prefix_values_to_skip_suffix_columns` со значением `0.9` по умолчанию, что означает: для составного первичного ключа, если столбец меняет своё значение как минимум в 90% случаев, последующие за ним столбцы не будут загружаться в память. [#60255](https://github.com/ClickHouse/ClickHouse/pull/60255) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Повышена производительность сериализованных методов агрегирования при работе с несколькими столбцами типа `Nullable`. [#55809](https://github.com/ClickHouse/ClickHouse/pull/55809) ([Amos Bird](https://github.com/amosbird)). +* Ленивое формирование вывода JSON для повышения производительности операции ALL JOIN. [#58278](https://github.com/ClickHouse/ClickHouse/pull/58278) ([LiuNeng](https://github.com/liuneng1994)). +* Подключения HTTP/HTTPS к внешним сервисам, таким как AWS S3, теперь повторно используются для всех вариантов использования — даже если ответ имеет код состояния 3xx или 4xx. [#58845](https://github.com/ClickHouse/ClickHouse/pull/58845) ([Sema Checherinda](https://github.com/CheSema)). +* Внесены улучшения в агрегатные функции `argMin` / `argMax` / `any` / `anyLast` / `anyHeavy`, а также в запросы `ORDER BY {u8/u16/u32/u64/i8/i16/u32/i64) LIMIT 1`. [#58640](https://github.com/ClickHouse/ClickHouse/pull/58640) ([Raúl Marín](https://github.com/Algunenano)). +* Простая оптимизация фильтрации по столбцу. В некоторых случаях пиковое потребление памяти можно снизить до 44 % от исходного значения. [#59698](https://github.com/ClickHouse/ClickHouse/pull/59698) ([李扬](https://github.com/taiyang-li)). +* Выполнять функцию `multiIf` столбцовым образом, когда базовый тип результата — числовой. [#60384](https://github.com/ClickHouse/ClickHouse/pull/60384) ([李扬](https://github.com/taiyang-li)). +* Более быстрые мьютексы (почти в 2 раза). [#60823](https://github.com/ClickHouse/ClickHouse/pull/60823) ([Azat Khuzhin](https://github.com/azat)). +* Параллельное освобождение нескольких подключений при завершении распределённого запроса. [#60845](https://github.com/ClickHouse/ClickHouse/pull/60845) ([lizhuoyu5](https://github.com/lzydmxy)). +* Оптимизировано перемещение данных между столбцами числового и строкового типов Nullable, что улучшает результаты некоторых микробенчмарков. [#60846](https://github.com/ClickHouse/ClickHouse/pull/60846) ([李扬](https://github.com/taiyang-li)). +* Операции с кэшем файловой системы будут меньше подвержены конкуренции за блокировки. [#61066](https://github.com/ClickHouse/ClickHouse/pull/61066) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Оптимизированы операции `ARRAY JOIN` и другие `JOIN` за счёт предотвращения некорректной оптимизации со стороны компилятора. Закрыт [#61074](https://github.com/ClickHouse/ClickHouse/issues/61074). [#61075](https://github.com/ClickHouse/ClickHouse/pull/61075) ([李扬](https://github.com/taiyang-li)). +* Если запрос с синтаксической ошибкой содержал сопоставитель `COLUMNS` с регулярным выражением, регулярное выражение компилировалось каждый раз во время бэктрекинга парсера вместо однократной компиляции. Это была фундаментальная ошибка. Скомпилированное регулярное выражение помещалось в AST. Но буква A в AST означает «abstract» («абстрактное»), что подразумевает, что он не должен содержать тяжеловесных объектов. Части AST могут создаваться и уничтожаться в процессе парсинга, включая большое количество бэктрекинга. Это приводит к замедлению разбора и, как следствие, позволяет пользователю с правами только на чтение устроить DoS. Но основная проблема в том, что это мешает прогрессу фаззеров. [#61543](https://github.com/ClickHouse/ClickHouse/pull/61543) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлен новый проход анализатора для оптимизации оператора IN в случае одного значения. [#61564](https://github.com/ClickHouse/ClickHouse/pull/61564) ([LiuNeng](https://github.com/liuneng1994)). +* DNSResolver перемешивает набор разрешенных IP‑адресов, что необходимо для равномерного распределения нагрузки между несколькими эндпоинтами AWS S3. [#60965](https://github.com/ClickHouse/ClickHouse/pull/60965) ([Sema Checherinda](https://github.com/CheSema)). + +#### Экспериментальная функциональность {#experimental-feature-7} + +* Добавлена поддержка параллельного чтения для Azure Blob Storage. Это повышает производительность экспериментального объектного хранилища Azure. [#61503](https://github.com/ClickHouse/ClickHouse/pull/61503) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)). +* Добавлен асинхронный WriteBuffer для Azure Blob Storage, аналогично S3. Это повышает производительность экспериментального объектного хранилища Azure. [#59929](https://github.com/ClickHouse/ClickHouse/pull/59929) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)). +* Реализовано использование managed identity для операций ввода-вывода резервных копий при использовании Azure Blob Storage. Добавлена настройка, предотвращающая попытку ClickHouse создать несуществующий контейнер, что требует прав на уровне учетной записи хранилища. [#61785](https://github.com/ClickHouse/ClickHouse/pull/61785) ([Daniel Pozo Escalona](https://github.com/danipozo)). +* Добавлена настройка `parallel_replicas_allow_in_with_subquery = 1`, которая разрешает использование подзапросов в IN при работе с параллельными репликами. [#60950](https://github.com/ClickHouse/ClickHouse/pull/60950) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Изменение для репликации «zero-copy»: все блокировки zero-copy, относящиеся к таблице, должны быть сняты при удалении таблицы. Каталог, содержащий эти блокировки, также должен быть удален. [#57575](https://github.com/ClickHouse/ClickHouse/pull/57575) ([Sema Checherinda](https://github.com/CheSema)). + +#### Улучшения {#improvement-9} + +* По умолчанию используется движок таблиц `MergeTree`. [#60524](https://github.com/ClickHouse/ClickHouse/pull/60524) ([Alexey Milovidov](https://github.com/alexey-milovidov)) +* Теперь параметр `output_format_pretty_row_numbers` включен по умолчанию. Это улучшает удобство использования. [#61791](https://github.com/ClickHouse/ClickHouse/pull/61791) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* В предыдущей версии некоторые числа в форматах Pretty выглядели недостаточно красиво. [#61794](https://github.com/ClickHouse/ClickHouse/pull/61794) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Длинное значение в Pretty-форматах не будет обрезано, если оно единственное в результирующем наборе, например в результате выполнения запроса `SHOW CREATE TABLE`. [#61795](https://github.com/ClickHouse/ClickHouse/pull/61795) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Подобно `clickhouse-local`, `clickhouse-client` будет принимать параметр `--output-format` как синоним параметра `--format`. Это закрывает [#59848](https://github.com/ClickHouse/ClickHouse/issues/59848). [#61797](https://github.com/ClickHouse/ClickHouse/pull/61797) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Если `stdout` — терминал и формат вывода не задан, `clickhouse-client` и аналогичные инструменты по умолчанию будут использовать формат `PrettyCompact`, как и в интерактивном режиме. `clickhouse-client` и `clickhouse-local` будут единообразно обрабатывать аргументы командной строки, задающие форматы ввода и вывода. Это закрывает [#61272](https://github.com/ClickHouse/ClickHouse/issues/61272). [#61800](https://github.com/ClickHouse/ClickHouse/pull/61800) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Группы цифр в форматах Pretty теперь отделяются подчёркиванием для лучшей читаемости. Это поведение управляется новым параметром `output_format_pretty_highlight_digit_groups`. [#61802](https://github.com/ClickHouse/ClickHouse/pull/61802) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена возможность переопределять начальные настройки оператора INSERT с помощью `SYSTEM FLUSH DISTRIBUTED`. [#61832](https://github.com/ClickHouse/ClickHouse/pull/61832) ([Azat Khuzhin](https://github.com/azat)). +* По умолчанию включено профилирование процессоров (время выполнения, объём входящих и исходящих данных при сортировке, агрегации и т. п.). [#61096](https://github.com/ClickHouse/ClickHouse/pull/61096) ([Azat Khuzhin](https://github.com/azat)). +* Добавлена поддержка файлов без расширения в базе данных Filesystem. [#60795](https://github.com/ClickHouse/ClickHouse/pull/60795) ([Kruglov Pavel](https://github.com/Avogar)). +* Сделали все имена форматов регистронезависимыми — например, Tsv, TSV, tsv или даже rowbinary. [#60420](https://github.com/ClickHouse/ClickHouse/pull/60420) ([豪肥肥](https://github.com/HowePa)). Я буду признателен, если вы и дальше будете писать их правильно, например `JSON` 😇, а не `Json` 🤮, но мы не возражаем, если вы будете писать так, как вам удобнее. +* Добавлен режим `none_only_active` для настройки `distributed_ddl_output_mode`. [#60340](https://github.com/ClickHouse/ClickHouse/pull/60340) ([Alexander Tokmakov](https://github.com/tavplubix)). +* В расширенной панели мониторинга немного улучшена цветовая схема многолинейных графиков. [#60391](https://github.com/ClickHouse/ClickHouse/pull/60391) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* На панели Advanced элементы управления теперь всегда остаются видимыми при прокрутке страницы. Это позволяет добавить новый график, не прокручивая страницу вверх. [#60692](https://github.com/ClickHouse/ClickHouse/pull/60692) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* При выполнении запроса `MODIFY COLUMN` для materialized view теперь проверяется структура внутренней таблицы, чтобы убедиться, что все столбцы существуют. [#47427](https://github.com/ClickHouse/ClickHouse/pull/47427) ([sunny](https://github.com/sunny19930321)). +* Типы String и Enum можно использовать в одном и том же контексте, например в массивах, запросах UNION, условных выражениях. Это закрывает [#60726](https://github.com/ClickHouse/ClickHouse/issues/60726). [#60727](https://github.com/ClickHouse/ClickHouse/pull/60727) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Разрешено объявлять Enum в структуре внешних данных для обработки запросов (это временная таблица, создаваемая на лету, которую вы можете передать в запрос). [#57857](https://github.com/ClickHouse/ClickHouse/pull/57857) ([Duc Canh Le](https://github.com/canhld94)). +* Учитывать строки с легковесным удалением при выборе частей для слияния, чтобы более точно оценивать размер результирующей части на диске. [#58223](https://github.com/ClickHouse/ClickHouse/pull/58223) ([Zhuo Qiu](https://github.com/jewelzqiu)). +* Добавлены комментарии к столбцам в большем числе системных таблиц. Продолжение [https://github.com/ClickHouse/ClickHouse/pull/58356](https://github.com/ClickHouse/ClickHouse/pull/58356). [#59016](https://github.com/ClickHouse/ClickHouse/pull/59016) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Теперь мы можем использовать виртуальные столбцы в PREWHERE. Это полезно для неконстантных виртуальных столбцов, таких как `_part_offset`. [#59033](https://github.com/ClickHouse/ClickHouse/pull/59033) ([Amos Bird](https://github.com/amosbird)). Улучшено общее удобство использования виртуальных столбцов. Теперь разрешено использовать виртуальные столбцы в `PREWHERE` (это полезно для неконстантных виртуальных столбцов, таких как `_part_offset`). Теперь встроенная документация для виртуальных столбцов доступна как комментарий столбца в запросе `DESCRIBE` при включённой настройке `describe_include_virtual_columns`. [#60205](https://github.com/ClickHouse/ClickHouse/pull/60205) ([Anton Popov](https://github.com/CurtizJ)). +* Вместо использования фиксированного ключа объектное хранилище теперь генерирует ключ, определяющий возможность удаления объектов. [#59495](https://github.com/ClickHouse/ClickHouse/pull/59495) ([Sema Checherinda](https://github.com/CheSema)). +* Разрешено использовать тип хранилища объектов "local" вместо "local_blob_storage". [#60165](https://github.com/ClickHouse/ClickHouse/pull/60165) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Параллельный сброс ожидающих блоков `INSERT` движка Distributed при выполнении `DETACH`/остановке сервера и `SYSTEM FLUSH DISTRIBUTED` (параллелизм будет работать только в том случае, если для таблицы используется многодисковая политика хранения (как и всё в движке Distributed сейчас)). [#60225](https://github.com/ClickHouse/ClickHouse/pull/60225) ([Azat Khuzhin](https://github.com/azat)). +* Добавлена настройка для принудительного использования read-through-кэша при слияниях. [#60308](https://github.com/ClickHouse/ClickHouse/pull/60308) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Улучшение протокола совместимости с MySQL. В задаче [#57598](https://github.com/ClickHouse/ClickHouse/issues/57598) описано отличающееся поведение при обработке транзакций: выполнение COMMIT/ROLLBACK при отсутствии активной транзакции приводило к ошибке, в отличие от поведения MySQL. [#60338](https://github.com/ClickHouse/ClickHouse/pull/60338) ([PapaToemmsn](https://github.com/PapaToemmsn)). +* Функция `substring` получила новый псевдоним `byteSlice`. [#60494](https://github.com/ClickHouse/ClickHouse/pull/60494) ([Robert Schulze](https://github.com/rschu1ze)). +* Переименована серверная настройка `dns_cache_max_size` в `dns_cache_max_entries` для устранения неоднозначности. [#60500](https://github.com/ClickHouse/ClickHouse/pull/60500) ([Kirill Nikiforov](https://github.com/allmazz)). +* `SHOW INDEX | INDEXES | INDICES | KEYS` больше не сортирует по столбцам первичного ключа (что было неинтуитивно). [#60514](https://github.com/ClickHouse/ClickHouse/pull/60514) ([Robert Schulze](https://github.com/rschu1ze)). +* Улучшение в Keeper: прерывать запуск, если обнаружен некорректный снапшот, чтобы избежать потери данных. [#60537](https://github.com/ClickHouse/ClickHouse/pull/60537) ([Antonio Andelic](https://github.com/antonio2368)). +* Обновлено tzdata до версии 2024a. [#60768](https://github.com/ClickHouse/ClickHouse/pull/60768) ([Raúl Marín](https://github.com/Algunenano)). +* Улучшения в Keeper: добавлена поддержка параметра `leadership_expiry_ms` в настройках Keeper. [#60806](https://github.com/ClickHouse/ClickHouse/pull/60806) ([Brokenice0415](https://github.com/Brokenice0415)). +* Всегда интерпретировать числа в экспоненциальной форме в JSON-форматах независимо от настройки `input_format_try_infer_exponent_floats`. Добавлена настройка `input_format_json_use_string_type_for_ambiguous_paths_in_named_tuples_inference_from_objects`, которая позволяет использовать тип String для неоднозначных путей вместо генерации исключения при выводе типов для именованных Tuple из JSON-объектов. [#60808](https://github.com/ClickHouse/ClickHouse/pull/60808) ([Kruglov Pavel](https://github.com/Avogar)). +* Добавлена поддержка синтаксиса `START TRANSACTION`, обычно используемого в MySQL, что решает проблему, описанную в обсуждении [https://github.com/ClickHouse/ClickHouse/discussions/60865](https://github.com/ClickHouse/ClickHouse/discussions/60865). [#60886](https://github.com/ClickHouse/ClickHouse/pull/60886) ([Zach Naimon](https://github.com/ArctypeZach)). +* Добавлен флаг для алгоритма merge join с полной сортировкой, позволяющий трактовать `null` как наибольшее или наименьшее значение. Это позволяет сделать поведение совместимым с другими SQL-системами, такими как Apache Spark. [#60896](https://github.com/ClickHouse/ClickHouse/pull/60896) ([loudongfeng](https://github.com/loudongfeng)). +* Добавлена поддержка автоматического определения выходного формата по расширению файла в `clickhouse-client` и `clickhouse-local`. [#61036](https://github.com/ClickHouse/ClickHouse/pull/61036) ([豪肥肥](https://github.com/HowePa)). +* Лимит памяти теперь обновляется во время выполнения при изменении значения cgroups в Linux. [#61049](https://github.com/ClickHouse/ClickHouse/pull/61049) ([Han Fei](https://github.com/hanfei1991)). +* Добавлена функция `toUInt128OrZero`, которая по ошибке ранее была пропущена (ошибка связана с [https://github.com/ClickHouse/ClickHouse/pull/945](https://github.com/ClickHouse/ClickHouse/pull/945)). Псевдонимы совместимости `FROM_UNIXTIME` и `DATE_FORMAT` (они не являются встроенными в ClickHouse и существуют только для совместимости с MySQL) сделаны нечувствительными к регистру, как и положено псевдонимам для совместимости с SQL. [#61114](https://github.com/ClickHouse/ClickHouse/pull/61114) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Улучшены проверки доступа: теперь можно отзывать права, полученные косвенно, даже если целевой пользователь не имеет соответствующих явных грантов. Пример: `GRANT SELECT ON *.* TO user1; REVOKE SELECT ON system.* FROM user1;`. [#61115](https://github.com/ClickHouse/ClickHouse/pull/61115) ([pufit](https://github.com/pufit)). +* Исправлена функция `has()` для столбца типа `Nullable` (устраняет [#60214](https://github.com/ClickHouse/ClickHouse/issues/60214)). [#61249](https://github.com/ClickHouse/ClickHouse/pull/61249) ([Mikhail Koviazin](https://github.com/mkmkme)). +* Теперь можно указывать атрибут `merge="true"` в подстановках конфигурации для поддеревьев ``. Если этот атрибут задан, ClickHouse будет объединять поддерево с существующей конфигурацией, иначе поведение по умолчанию — добавление нового содержимого к конфигурации. [#61299](https://github.com/ClickHouse/ClickHouse/pull/61299) ([alesapin](https://github.com/alesapin)). +* Добавлены асинхронные метрики для отображений виртуальной памяти: `VMMaxMapCount` и `VMNumMaps`. Закрывает [#60662](https://github.com/ClickHouse/ClickHouse/issues/60662). [#61354](https://github.com/ClickHouse/ClickHouse/pull/61354) ([Tuan Pham Anh](https://github.com/tuanpavn)). +* Используйте настройку `temporary_files_codec` везде, где создаются временные данные, например при сортировке с использованием внешней памяти и GROUP BY с использованием внешней памяти. До этого она работала только в алгоритме JOIN `partial_merge`. [#61456](https://github.com/ClickHouse/ClickHouse/pull/61456) ([Maksim Kita](https://github.com/kitaisreal)). +* Добавлена новая настройка `max_parser_backtracks`, которая позволяет ограничивать сложность разбора запросов. [#61502](https://github.com/ClickHouse/ClickHouse/pull/61502) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Меньше блокировок при динамическом изменении размера кэша файловой системы. [#61524](https://github.com/ClickHouse/ClickHouse/pull/61524) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Запрещён сегментированный режим очереди StorageS3, так как он будет реализован заново. [#61537](https://github.com/ClickHouse/ClickHouse/pull/61537) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлена опечатка: `use_leagcy_max_level` → `use_legacy_max_level`. [#61545](https://github.com/ClickHouse/ClickHouse/pull/61545) ([William Schoeffel](https://github.com/wiledusc)). +* Некоторые дублирующиеся записи в `system.blob_storage_log` были удалены. [#61622](https://github.com/ClickHouse/ClickHouse/pull/61622) ([YenchangChan](https://github.com/YenchangChan)). +* Добавлена функция `current_user` в качестве псевдонима для совместимости с MySQL. [#61770](https://github.com/ClickHouse/ClickHouse/pull/61770) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Исправлены неконсистентные состояния агрегатных функций с плавающей точкой в смешанных кластерах x86-64 / ARM [#60610](https://github.com/ClickHouse/ClickHouse/pull/60610) ([Harry Lee](https://github.com/HarryLeeIBM)). + +#### Улучшение сборки/тестирования/упаковки {#buildtestingpackaging-improvement-5} + +* Профилировщик запросов в реальном времени теперь работает на AArch64. В предыдущих версиях он работал только если программа не выполняла системных вызовов. [#60807](https://github.com/ClickHouse/ClickHouse/pull/60807) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Версия ClickHouse добавлена в docker-метки. Закрывает [#54224](https://github.com/ClickHouse/ClickHouse/issues/54224). [#60949](https://github.com/ClickHouse/ClickHouse/pull/60949) ([Nikolay Monkov](https://github.com/nikmonkov)). +* Обновлён `prqlc` до 0.11.3. [#60616](https://github.com/ClickHouse/ClickHouse/pull/60616) ([Maximilian Roos](https://github.com/max-sixty)). +* Добавлен обобщённый фаззер текстов запросов в `clickhouse-local`. [#61508](https://github.com/ClickHouse/ClickHouse/pull/61508) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + +#### Исправление ошибки (некорректное поведение, заметное пользователям, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-7} + +* Исправлен параметр finished_mutations_to_keep=0 для MergeTree (поскольку согласно документации 0 означает сохранять всё) [#60031](https://github.com/ClickHouse/ClickHouse/pull/60031) ([Azat Khузин](https://github.com/azat)). +* Была проблема с оптимизацией FINAL; автор описывает её так: «PartsSplitter invalid ranges for the same part». [#60041](https://github.com/ClickHouse/ClickHouse/pull/60041) ([Maksim Kita](https://github.com/kitaisreal)). +* В Apache Hive, который является экспериментальным и не поддерживается, были проблемы. [#60262](https://github.com/ClickHouse/ClickHouse/pull/60262) ([shanfengp](https://github.com/Aed-p)). +* Улучшение для экспериментальных параллельных реплик: принудительно выполнять повторный анализ при изменении параллельных реплик [#60362](https://github.com/ClickHouse/ClickHouse/pull/60362) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлено использование типа метаданных plain metadata с новой опцией настройки дисков [#60396](https://github.com/ClickHouse/ClickHouse/pull/60396) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Попытка исправить логическую ошибку 'Cannot capture column because it has incompatible type' в функции mapContainsKeyLike [#60451](https://github.com/ClickHouse/ClickHouse/pull/60451) ([Kruglov Pavel](https://github.com/Avogar)). +* Избегается вычисление скалярных подзапросов при CREATE TABLE. [#60464](https://github.com/ClickHouse/ClickHouse/pull/60464) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлена взаимная блокировка при параллельном парсинге, когда из‑за ошибок пропускается много строк [#60516](https://github.com/ClickHouse/ClickHouse/pull/60516) ([Kruglov Pavel](https://github.com/Avogar)). +* Некорректно работала экспериментальная поддержка KQL (Kusto): исправлен параметр `max_query_size_for_kql_compound_operator`: [#60534](https://github.com/ClickHouse/ClickHouse/pull/60534) ([Yong Wang](https://github.com/kashwy)). +* Исправление в Keeper: добавлены таймауты при ожидании commit-логов [#60544](https://github.com/ClickHouse/ClickHouse/pull/60544) ([Antonio Andelic](https://github.com/antonio2368)). +* Не выводить числовые подсказки для типов Date [#60577](https://github.com/ClickHouse/ClickHouse/pull/60577) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена проблема чтения из MergeTree с недетерминированными функциями в фильтре [#60586](https://github.com/ClickHouse/ClickHouse/pull/60586) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлена логическая ошибка при некорректном типе значения настройки совместимости [#60596](https://github.com/ClickHouse/ClickHouse/pull/60596) ([Kruglov Pavel](https://github.com/Avogar)). +* fix(prql): Надёжный обработчик паники [#60615](https://github.com/ClickHouse/ClickHouse/pull/60615) ([Maximilian Roos](https://github.com/max-sixty)). +* Исправлена работа функции `intDiv` для аргументов типов Decimal и Date [#60672](https://github.com/ClickHouse/ClickHouse/pull/60672) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Исправление: разворачивать CTE в запросе ALTER ... MODIFY [#60682](https://github.com/ClickHouse/ClickHouse/pull/60682) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Исправлена таблица `system.parts` для не-Atomic/Ordinary движков баз данных (например, Memory) [#60689](https://github.com/ClickHouse/ClickHouse/pull/60689) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена ошибка "Invalid storage definition in metadata file", возникавшая для параметризованных представлений [#60708](https://github.com/ClickHouse/ClickHouse/pull/60708) ([Azat Khuzhin](https://github.com/azat)). +* Исправлено переполнение буфера в CompressionCodecMultiple [#60731](https://github.com/ClickHouse/ClickHouse/pull/60731) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Удалён мусор из SQL/JSON [#60738](https://github.com/ClickHouse/ClickHouse/pull/60738) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Удалена некорректная проверка assert в агрегатной функции quantileGK [#60740](https://github.com/ClickHouse/ClickHouse/pull/60740) ([李扬](https://github.com/taiyang-li)). +* Исправлена ошибка insert-select + insert_deduplication_token за счёт установки числа потоков равным 1 [#60745](https://github.com/ClickHouse/ClickHouse/pull/60745) ([Jordi Villar](https://github.com/jrdi)). +* Запрещена установка пользовательских заголовков метаданных для неподдерживаемых операций multipart-загрузки [#60748](https://github.com/ClickHouse/ClickHouse/pull/60748) ([Francisco J. Jurado Moreno](https://github.com/Beetelbrox)). +* Исправлена функция `toStartOfInterval` [#60763](https://github.com/ClickHouse/ClickHouse/pull/60763) ([Andrey Zvonov](https://github.com/zvonand)). +* Исправлена ошибка, приводившая к сбою в arrayEnumerateRanked [#60764](https://github.com/ClickHouse/ClickHouse/pull/60764) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена ошибка, приводившая к аварийному завершению при использовании input() в INSERT SELECT JOIN [#60765](https://github.com/ClickHouse/ClickHouse/pull/60765) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлен сбой при использовании разных значений настройки allow_experimental_analyzer в подзапросах [#60770](https://github.com/ClickHouse/ClickHouse/pull/60770) ([Dmitry Novik](https://github.com/novikd)). +* Удалена рекурсия при чтении из S3 [#60849](https://github.com/ClickHouse/ClickHouse/pull/60849) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлена возможная ситуация зависания при ошибке в HashedDictionaryParallelLoader [#60926](https://github.com/ClickHouse/ClickHouse/pull/60926) ([vdimir](https://github.com/vdimir)). +* Исправлена работа асинхронного RESTORE с базой данных Replicated (экспериментальная функция) [#60934](https://github.com/ClickHouse/ClickHouse/pull/60934) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлен дедлок при асинхронных вставках в таблицы типа `Log` через нативный протокол [#61055](https://github.com/ClickHouse/ClickHouse/pull/61055) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлено отложенное вычисление значения по умолчанию в dictGetOrDefault для RangeHashedDictionary [#61196](https://github.com/ClickHouse/ClickHouse/pull/61196) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлены несколько ошибок в groupArraySorted [#61203](https://github.com/ClickHouse/ClickHouse/pull/61203) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлено переконфигурирование Keeper для отдельного бинарника [#61233](https://github.com/ClickHouse/ClickHouse/pull/61233) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлена работа с `session_token` в движке S3 [#61234](https://github.com/ClickHouse/ClickHouse/pull/61234) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлен возможный некорректный результат агрегатной функции `uniqExact` [#61257](https://github.com/ClickHouse/ClickHouse/pull/61257) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлены ошибки в команде `SHOW DATABASE` [#61269](https://github.com/ClickHouse/ClickHouse/pull/61269) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена логическая ошибка в хранилище RabbitMQ при использовании MATERIALIZED столбцов [#61320](https://github.com/ClickHouse/ClickHouse/pull/61320) ([vdimir](https://github.com/vdimir)). +* Исправлена команда CREATE OR REPLACE DICTIONARY [#61356](https://github.com/ClickHouse/ClickHouse/pull/61356) ([Vitaly Baranov](https://github.com/vitlibar)). +* Исправлена обработка запроса ATTACH с внешним ON CLUSTER [#61365](https://github.com/ClickHouse/ClickHouse/pull/61365) ([Nikolay Degterinsky](https://github.com/evillique)). +* Исправлена оптимизация последовательных Nullable-ключей [#61393](https://github.com/ClickHouse/ClickHouse/pull/61393) ([Anton Popov](https://github.com/CurtizJ)). +* исправлена проблема с разбиением DAG действий [#61458](https://github.com/ClickHouse/ClickHouse/pull/61458) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена обработка завершения неуспешной операции RESTORE [#61466](https://github.com/ClickHouse/ClickHouse/pull/61466) ([Vitaly Baranov](https://github.com/vitlibar)). +* Параметр async_insert_use_adaptive_busy_timeout теперь корректно отключается при использовании настроек совместимости [#61468](https://github.com/ClickHouse/ClickHouse/pull/61468) ([Raúl Marín](https://github.com/Algunenano)). +* Разрешить постановку операций в очередь в пуле восстановления [#61475](https://github.com/ClickHouse/ClickHouse/pull/61475) ([Nikita Taranov](https://github.com/nickitat)). +* Исправлена несогласованность при чтении таблицы system.parts по UUID. [#61479](https://github.com/ClickHouse/ClickHouse/pull/61479) ([Dan Wu](https://github.com/wudanzy)). +* Исправлена работа команды ALTER QUERY MODIFY SQL SECURITY [#61480](https://github.com/ClickHouse/ClickHouse/pull/61480) ([pufit](https://github.com/pufit)). +* Исправлен сбой в экспериментальной функции window view [#61526](https://github.com/ClickHouse/ClickHouse/pull/61526) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлена ошибка в работе функции `repeat` с целыми числами нестандартных типов [#61527](https://github.com/ClickHouse/ClickHouse/pull/61527) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлен аргумент клиента `-s` [#61530](https://github.com/ClickHouse/ClickHouse/pull/61530) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Исправлен сбой при выполнении arrayPartialReverseSort [#61539](https://github.com/ClickHouse/ClickHouse/pull/61539) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлен поиск в строке с константной позицией [#61547](https://github.com/ClickHouse/ClickHouse/pull/61547) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлена проблема, из-за которой функция `addDays` приводила к ошибке при использовании с `DateTime64` [#61561](https://github.com/ClickHouse/ClickHouse/pull/61561) ([Shuai Li](https://github.com/loneylee)). +* Запрещён тип аргумента LowCardinality для JSONExtract [#61617](https://github.com/ClickHouse/ClickHouse/pull/61617) ([Julia Kartseva](https://github.com/jkartseva)). +* Исправлено поведение `system.part_log` при асинхронной вставке с дедупликацией [#61620](https://github.com/ClickHouse/ClickHouse/pull/61620) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлено исключение `Non-ready set` в system.parts. [#61666](https://github.com/ClickHouse/ClickHouse/pull/61666) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлено поле actual_part_name для REPLACE_RANGE (`Entry actual part isn't empty yet`) [#61675](https://github.com/ClickHouse/ClickHouse/pull/61675) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Исправлен отчёт санитайзера в `multiSearchAllPositionsCaseInsensitiveUTF8` при обработке некорректного UTF-8 [#61749](https://github.com/ClickHouse/ClickHouse/pull/61749) ([pufit](https://github.com/pufit)). +* Исправлено сообщение о том, что фрейм RANGE не поддерживается для столбцов типа Nullable. [#61766](https://github.com/ClickHouse/ClickHouse/pull/61766) ([YuanLiu](https://github.com/ditgittube)). + +### Релиз ClickHouse 24.2, 2024-02-29. [Презентация](https://presentations.clickhouse.com/2024-release-24.2/), [Видео](https://www.youtube.com/watch?v=iN2y-TK8f3A) {#a-id242a-clickhouse-release-242-2024-02-29} + + + +#### Обратное несовместимое изменение {#backward-incompatible-change-8} + +* Проверять подозрительные/экспериментальные типы во вложенных типах. Ранее мы не проверяли такие типы (кроме JSON) во вложенных типах, таких как Array/Tuple/Map. [#59385](https://github.com/ClickHouse/ClickHouse/pull/59385) ([Kruglov Pavel](https://github.com/Avogar)). +* Добавлена sanity check-проверка для количества потоков и размеров блоков. [#60138](https://github.com/ClickHouse/ClickHouse/pull/60138) ([Raúl Marín](https://github.com/Algunenano)). +* По умолчанию не выводить тип с плавающей запятой для чисел в экспоненциальной нотации. Добавлена настройка `input_format_try_infer_exponent_floats`, которая позволяет восстановить прежнее поведение (по умолчанию отключена). Закрывает [#59476](https://github.com/ClickHouse/ClickHouse/issues/59476). [#59500](https://github.com/ClickHouse/ClickHouse/pull/59500) ([Kruglov Pavel](https://github.com/Avogar)). +* Разрешить заключать операции ALTER в скобки. Генерацией скобок можно управлять с помощью настройки `format_alter_operations_with_parentheses`. По умолчанию в отформатированных запросах скобки выводятся, так как мы храним отформатированные операции ALTER в некоторых местах как метаданные (например, мутации). Новый синтаксис проясняет некоторые запросы, где операции ALTER заканчиваются списком. Например, `ALTER TABLE x MODIFY TTL date GROUP BY a, b, DROP COLUMN c` не может быть корректно разобран со старым синтаксисом. В новом синтаксисе запрос `ALTER TABLE x (MODIFY TTL date GROUP BY a, b), (DROP COLUMN c)` однозначен. Старые версии не могут прочитать новый синтаксис, поэтому использование нового синтаксиса может привести к проблемам, если новые и старые версии ClickHouse используются вместе в одном кластере. [#59532](https://github.com/ClickHouse/ClickHouse/pull/59532) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Исправлена проблема безопасности с materialized view, которая позволяла пользователю выполнять INSERT в таблицу без необходимых привилегий. Исправление проверяет, что пользователь имеет права на INSERT не только в materialized view, но и во все лежащие в её основе таблицы. Это означает, что некоторые запросы, которые работали ранее, теперь могут завершаться ошибкой `Not enough privileges`. Для решения этой проблемы в релизе добавлена новая возможность SQL security для представлений: https://clickhouse.com/docs/sql-reference/statements/create/view#sql_security. [#54901](https://github.com/ClickHouse/ClickHouse/pull/54901) [#60439](https://github.com/ClickHouse/ClickHouse/pull/60439) ([pufit](https://github.com/pufit)). + +#### Новая возможность {#new-feature-10} + +* Добавлен новый синтаксис, позволяющий указывать пользователя-определителя (definer user) для view/materialized view. Это позволяет выполнять SELECT/INSERT из представлений без явной выдачи прав на базовые таблицы. Таким образом, view инкапсулирует права доступа. [#54901](https://github.com/ClickHouse/ClickHouse/pull/54901) [#60439](https://github.com/ClickHouse/ClickHouse/pull/60439) ([pufit](https://github.com/pufit)). +* Пробовать автоматически определять формат файла при выводе схемы, если он не указан, для движков `file/s3/hdfs/url/azureBlobStorage`. Закрывает [#50576](https://github.com/ClickHouse/ClickHouse/issues/50576). [#59092](https://github.com/ClickHouse/ClickHouse/pull/59092) ([Kruglov Pavel](https://github.com/Avogar)). +* Реализована автоматическая подстройка тайм-аутов асинхронных вставок. Введены следующие настройки: async_insert_poll_timeout_ms, async_insert_use_adaptive_busy_timeout, async_insert_busy_timeout_min_ms, async_insert_busy_timeout_max_ms, async_insert_busy_timeout_increase_rate, async_insert_busy_timeout_decrease_rate. [#58486](https://github.com/ClickHouse/ClickHouse/pull/58486) ([Julia Kartseva](https://github.com/jkartseva)). +* Добавлена возможность настройки квоты на максимальное количество последовательных неудачных попыток входа. [#54737](https://github.com/ClickHouse/ClickHouse/pull/54737) ([Alexey Gerasimchuck](https://github.com/Demilivor)). +* Новая агрегатная функция `groupArrayIntersect`. Продолжение задачи: [#49862](https://github.com/ClickHouse/ClickHouse/issues/49862). [#59598](https://github.com/ClickHouse/ClickHouse/pull/59598) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Добавлена поддержка резервного копирования и восстановления для `AzureBlobStorage`. Решает [#50747](https://github.com/ClickHouse/ClickHouse/issues/50747). [#56988](https://github.com/ClickHouse/ClickHouse/pull/56988) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)). +* Теперь пользователь может указывать строку шаблона напрямую в запросе, используя `format_schema_rows_template` в качестве альтернативы `format_template_row`. Закрывает [#31363](https://github.com/ClickHouse/ClickHouse/issues/31363). [#59088](https://github.com/ClickHouse/ClickHouse/pull/59088) ([Shaun Struwig](https://github.com/Blargian)). +* Реализовано автоматическое преобразование таблиц различных типов семейства MergeTree на реплицированный движок. Создайте пустой файл `convert_to_replicated` в каталоге данных таблицы (`/clickhouse/store/xxx/xxxyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy/`), и эта таблица будет автоматически преобразована при следующем запуске сервера. [#57798](https://github.com/ClickHouse/ClickHouse/pull/57798) ([Kirill](https://github.com/kirillgarbar)). +* Добавлен запрос `ALTER TABLE table FORGET PARTITION partition`, который удаляет узлы ZooKeeper, связанные с пустой партицией. [#59507](https://github.com/ClickHouse/ClickHouse/pull/59507) ([Sergei Trifonov](https://github.com/serxa)). Эта возможность предназначена для опытных пользователей. +* Добавлена поддержка файла учетных данных JWT для движка таблиц NATS. [#59543](https://github.com/ClickHouse/ClickHouse/pull/59543) ([Nickolaj Jepsen](https://github.com/nickolaj-jepsen)). +* Добавлена таблица `system.dns_cache`, которая может быть полезна для отладки проблем с DNS. [#59856](https://github.com/ClickHouse/ClickHouse/pull/59856) ([Kirill Nikiforov](https://github.com/allmazz)). +* Кодек `LZ4HC` теперь поддерживает новый уровень 2, который быстрее, чем прежний минимальный уровень 3, за счёт меньшего сжатия. В предыдущих версиях `LZ4HC(2)` и ниже трактовались так же, как `LZ4HC(3)`. Автор: [Cyan4973](https://github.com/Cyan4973). [#60090](https://github.com/ClickHouse/ClickHouse/pull/60090) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена таблица `system.dns_cache`, которая может быть полезна для отладки проблем с DNS. Добавлена новая настройка сервера dns_cache_max_size. [#60257](https://github.com/ClickHouse/ClickHouse/pull/60257) ([Kirill Nikiforov](https://github.com/allmazz)). +* Добавлена поддержка одноаргументной формы табличной функции `merge` в виде `merge(['db_name', ] 'tables_regexp')`. [#60372](https://github.com/ClickHouse/ClickHouse/pull/60372) ([豪肥肥](https://github.com/HowePa)). +* Поддержка отрицательных позиционных аргументов. Закрывает [#57736](https://github.com/ClickHouse/ClickHouse/issues/57736). [#58292](https://github.com/ClickHouse/ClickHouse/pull/58292) ([flynn](https://github.com/ucasfl)). +* Реализована поддержка указания набора разрешённых пользователей для определённых настроек S3 в конфигурации с использованием ключа `user`. [#60144](https://github.com/ClickHouse/ClickHouse/pull/60144) ([Antonio Andelic](https://github.com/antonio2368)). +* Добавлена табличная функция `mergeTreeIndex`. Она предоставляет доступ к содержимому файлов индексов и меток таблиц `MergeTree` и может использоваться для интроспекции. Синтаксис: `mergeTreeIndex(database, table, [with_marks = true])`, где `database.table` — это существующая таблица с движком `MergeTree`. [#58140](https://github.com/ClickHouse/ClickHouse/pull/58140) ([Anton Popov](https://github.com/CurtizJ)). + +#### Экспериментальная функция {#experimental-feature-8} + +* Добавлена функция `seriesOutliersDetectTukey` для обнаружения выбросов в данных рядов с использованием алгоритма Tukey's fences. [#58632](https://github.com/ClickHouse/ClickHouse/pull/58632) ([Bhavna Jindal](https://github.com/bhavnajindal)). Имейте в виду, что поведение будет изменено в следующем патч-релизе. +* Добавлена функция `variantType`, которая возвращает Enum с именем варианта типа для каждой строки. [#59398](https://github.com/ClickHouse/ClickHouse/pull/59398) ([Kruglov Pavel](https://github.com/Avogar)). +* Добавлена поддержка `LEFT JOIN`, `ALL INNER JOIN` и простых подзапросов для параллельных реплик (только с analyzer). Новый параметр `parallel_replicas_prefer_local_join` выбирает локальное выполнение `JOIN` (по умолчанию) вместо `GLOBAL JOIN`. Все таблицы должны существовать на каждой реплике из `cluster_for_parallel_replicas`. Новые параметры `min_external_table_block_size_rows` и `min_external_table_block_size_bytes` используются для объединения небольших блоков, которые отправляются для временных таблиц (только с analyzer). [#58916](https://github.com/ClickHouse/ClickHouse/pull/58916) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Разрешено параллельное создание таблиц в базе данных `Replicated` при добавлении или восстановлении новой реплики. [#59277](https://github.com/ClickHouse/ClickHouse/pull/59277) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Реализован оператор сравнения для значений `Variant` и корректная вставка значений типа Field в столбец `Variant`. По умолчанию запрещено создавать тип `Variant` с похожими вариантами типов (разрешено при включённом параметре `allow_suspicious_variant_types`). Закрывает [#59996](https://github.com/ClickHouse/ClickHouse/issues/59996). Закрывает [#59850](https://github.com/ClickHouse/ClickHouse/issues/59850). [#60198](https://github.com/ClickHouse/ClickHouse/pull/60198) ([Kruglov Pavel](https://github.com/Avogar)). +* Отключён `JOIN` с параллельными репликами при использовании CTE (без analyzer). [#59239](https://github.com/ClickHouse/ClickHouse/pull/59239) ([Raúl Marín](https://github.com/Algunenano)). + +#### Улучшения производительности {#performance-improvement-10} + +* Первичный ключ будет потреблять меньше памяти. [#60049](https://github.com/ClickHouse/ClickHouse/pull/60049) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Оптимизировано использование памяти для первичного ключа и некоторых других операций. [#60050](https://github.com/ClickHouse/ClickHouse/pull/60050) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Первичные ключи таблиц будут лениво загружаться в память при первом обращении. Это контролируется новой настройкой MergeTree `primary_key_lazy_load`, которая по умолчанию включена. Это дает несколько преимуществ: - первичный ключ не будет загружаться для таблиц, которые не используются; - если памяти недостаточно, исключение будет выброшено при первом использовании, а не при запуске сервера. Это дает несколько недостатков: - задержку на загрузку первичного ключа придется оплатить при выполнении первого запроса, а не до начала приема подключений; теоретически это может привести к проблеме thundering herd. Это закрывает [#11188](https://github.com/ClickHouse/ClickHouse/issues/11188). [#60093](https://github.com/ClickHouse/ClickHouse/pull/60093) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Векторизованные функции вычисления расстояния, используемые при векторном поиске. [#58866](https://github.com/ClickHouse/ClickHouse/pull/58866) ([Robert Schulze](https://github.com/rschu1ze)). +* Векторизованная функция `dotProduct`, предназначенная для векторного поиска. [#60202](https://github.com/ClickHouse/ClickHouse/pull/60202) ([Robert Schulze](https://github.com/rschu1ze)). +* Добавлена поддержка короткого вычисления (short-circuit) для функции `dictGetOrDefault`. Закрывает [#52098](https://github.com/ClickHouse/ClickHouse/issues/52098). [#57767](https://github.com/ClickHouse/ClickHouse/pull/57767) ([jsc0218](https://github.com/jsc0218)). +* Улучшение в Keeper: кэшировать только ограниченный объём логов в памяти, контролируемый параметрами `latest_logs_cache_size_threshold` и `commit_logs_cache_size_threshold`. [#59460](https://github.com/ClickHouse/ClickHouse/pull/59460) ([Antonio Andelic](https://github.com/antonio2368)). +* Улучшение Keeper: еще больше сокращен размер узла данных. [#59592](https://github.com/ClickHouse/ClickHouse/pull/59592) ([Antonio Andelic](https://github.com/antonio2368)). +* Продолжена оптимизация промахов предсказания ветвления в функции `if` для случая, когда тип результата — `Float*/Decimal*/*Int*`, развитие [https://github.com/ClickHouse/ClickHouse/pull/57885](https://github.com/ClickHouse/ClickHouse/pull/57885). [#59148](https://github.com/ClickHouse/ClickHouse/pull/59148) ([李扬](https://github.com/taiyang-li)). +* Оптимизирована функция `if` для входного типа `Map`, ускорение — до ~10 раз. [#59413](https://github.com/ClickHouse/ClickHouse/pull/59413) ([李扬](https://github.com/taiyang-li)). +* Улучшена производительность типа `Int8` за счёт использования строгого алиасинга (он уже применяется для `UInt8` и всех остальных целочисленных типов). [#59485](https://github.com/ClickHouse/ClickHouse/pull/59485) ([Raúl Marín](https://github.com/Algunenano)). +* Оптимизирована производительность условных вычислений sum/avg для типов bigint и big decimal за счёт уменьшения числа промахов предсказателя ветвлений. [#59504](https://github.com/ClickHouse/ClickHouse/pull/59504) ([李扬](https://github.com/taiyang-li)). +* Повышена производительность запросов SELECT при активных мутациях. [#59531](https://github.com/ClickHouse/ClickHouse/pull/59531) ([Azat Khuzhin](https://github.com/azat)). +* Оптимизирована функция `isNotNull` с использованием AVX2. [#59621](https://github.com/ClickHouse/ClickHouse/pull/59621) ([李扬](https://github.com/taiyang-li)). +* Повышена производительность ASOF JOIN для отсортированных или почти отсортированных данных. [#59731](https://github.com/ClickHouse/ClickHouse/pull/59731) ([Maksim Kita](https://github.com/kitaisreal)). +* Предыдущее значение по умолчанию параметра `async_insert_max_data_size`, равное 1 МБ, оказалось слишком маленьким. Новое значение — 10 МиБ. [#59536](https://github.com/ClickHouse/ClickHouse/pull/59536) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Теперь при выполнении команды RESTORE для чтения метаданных таблиц из резервной копии используется несколько потоков. [#60040](https://github.com/ClickHouse/ClickHouse/pull/60040) ([Vitaly Baranov](https://github.com/vitlibar)). +* Теперь, если в `StorageBuffer` больше одного сегмента (`num_layers` > 1), фоновый сброс данных будет выполняться одновременно для всех сегментов в нескольких потоках. [#60111](https://github.com/ClickHouse/ClickHouse/pull/60111) ([alesapin](https://github.com/alesapin)). + +#### Улучшения {#improvement-10} + +* Когда используется формат вывода `Pretty` и блок состоит из одного числового значения, превышающего один миллион, его удобочитаемое представление будет выведено в правой части таблицы. [#60379](https://github.com/ClickHouse/ClickHouse/pull/60379) ([rogeryk](https://github.com/rogeryk)). +* Добавлены настройки `split_parts_ranges_into_intersecting_and_non_intersecting_final` и `split_intersecting_parts_ranges_into_layers_final`. Эти настройки нужны, чтобы отключить оптимизации для запросов с `FINAL` и в первую очередь предназначены для отладки. [#59705](https://github.com/ClickHouse/ClickHouse/pull/59705) ([Maksim Kita](https://github.com/kitaisreal)). На самом деле не только для этого — они также могут снизить потребление памяти ценой снижения производительности. +* Переименована настройка `extract_kvp_max_pairs_per_row` в `extract_key_value_pairs_max_pairs_per_row`. Проблема (необоснованное сокращение в имени настройки) была допущена в [https://github.com/ClickHouse/ClickHouse/pull/43606](https://github.com/ClickHouse/ClickHouse/pull/43606). Исправлена документация для этой настройки. [#59683](https://github.com/ClickHouse/ClickHouse/pull/59683) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#59960](https://github.com/ClickHouse/ClickHouse/pull/59960) ([jsc0218](https://github.com/jsc0218)). +* Операция `ALTER COLUMN MATERIALIZE` для столбца с выражением `DEFAULT` или `MATERIALIZED` теперь строго соответствует семантике. [#58023](https://github.com/ClickHouse/ClickHouse/pull/58023) ([Duc Canh Le](https://github.com/canhld94)). +* Реализована логика экспоненциального бэкоффа при ошибках мутаций. Это снижает загрузку CPU, потребление памяти и размер файлов журналов. [#58036](https://github.com/ClickHouse/ClickHouse/pull/58036) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* Улучшен подсчёт события профилирования ProfileEvent `InitialQuery`. [#58195](https://github.com/ClickHouse/ClickHouse/pull/58195) ([Unalian](https://github.com/Unalian)). +* Добавлена возможность задавать `volume_priority` в `storage_configuration`. [#58533](https://github.com/ClickHouse/ClickHouse/pull/58533) ([Andrey Zvonov](https://github.com/zvonand)). +* Добавлена поддержка типа данных `Date32` в кодеке `T64`. [#58738](https://github.com/ClickHouse/ClickHouse/pull/58738) ([Hongbin Ma](https://github.com/binmahone)). +* Разрешены завершающие запятые в определениях типов с несколькими элементами. [#59119](https://github.com/ClickHouse/ClickHouse/pull/59119) ([Aleksandr Musorin](https://github.com/AVMusorin)). +* Параметры движка таблиц Distributed теперь можно указывать в конфигурационном файле сервера (аналогично настройкам MergeTree), например: ` false `. [#59291](https://github.com/ClickHouse/ClickHouse/pull/59291) ([Azat Khuzhin](https://github.com/azat)). +* Повторять попытки при разрывах соединения и истечении срока действия сессий при чтении из `system.zookeeper`. Это полезно при чтении большого количества строк из таблицы `system.zookeeper`, особенно при наличии разрывов соединения, возникающих из‑за инъекции сбоев. [#59388](https://github.com/ClickHouse/ClickHouse/pull/59388) ([Alexander Gololobov](https://github.com/davenger)). +* Не интерпретировать числа с ведущими нулями как числа в восьмеричной системе счисления при `input_format_values_interpret_expressions=0`. [#59403](https://github.com/ClickHouse/ClickHouse/pull/59403) ([Joanna Hulboj](https://github.com/jh0x)). +* При запуске и при каждом изменении файлов конфигурации ClickHouse обновляет жёсткие лимиты памяти своего общего трекера памяти. Эти лимиты вычисляются на основе различных серверных настроек и ограничений cgroups (в Linux). Ранее путь `/sys/fs/cgroup/memory.max` (для cgroups v2) был жёстко прописан в коде. В результате лимиты памяти cgroup v2, настроенные для вложенных групп (иерархий), например `/sys/fs/cgroup/my/nested/group/memory.max`, игнорировались. Теперь это исправлено. Поведение лимитов памяти v1 осталось без изменений. [#59435](https://github.com/ClickHouse/ClickHouse/pull/59435) ([Robert Schulze](https://github.com/rschu1ze)). +* Добавлены новые события профилировщика для наблюдения за временем, затрачиваемым на вычисление PK/проекций/вторичных индексов при выполнении операций `INSERT`. [#59436](https://github.com/ClickHouse/ClickHouse/pull/59436) ([Nikita Taranov](https://github.com/nickitat)). +* Добавлена возможность задать стартовую точку для S3Queue в режиме Ordered при создании с использованием настройки `s3queue_last_processed_path`. [#59446](https://github.com/ClickHouse/ClickHouse/pull/59446) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Комментарии к системным таблицам теперь также доступны в `system.tables` в `clickhouse-local`. [#59493](https://github.com/ClickHouse/ClickHouse/pull/59493) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Таблица `system.zookeeper`: раньше весь результат накапливался в памяти и возвращался одним большим фрагментом. Это изменение должно помочь снизить потребление памяти при чтении множества строк из `system.zookeeper`, позволить отображать промежуточный прогресс (сколько строк уже прочитано) и избежать таймаута соединения при большом объёме результата. [#59545](https://github.com/ClickHouse/ClickHouse/pull/59545) ([Alexander Gololobov](https://github.com/davenger)). +* Теперь дашборд корректно обрабатывает как сжатое, так и несжатое состояние фрагмента URL `#hash` (обратная совместимость). Продолжение [#59124](https://github.com/ClickHouse/ClickHouse/issues/59124). [#59548](https://github.com/ClickHouse/ClickHouse/pull/59548) ([Amos Bird](https://github.com/amosbird)). +* Обновлена Intel QPL (используется кодеком `DEFLATE_QPL`) с v1.3.1 до v1.4.0. Также исправлена ошибка в механизме тайм-аута опроса: в некоторых случаях тайм-аут работал некорректно, и при его наступлении IAA и CPU могли обрабатывать буфер одновременно. На данный момент мы предпочитаем дополнительно проверять, что статус кодека IAA не равен QPL_STS_BEING_PROCESSED, а затем переходить к программному (SW) кодеку. [#59551](https://github.com/ClickHouse/ClickHouse/pull/59551) ([jasperzhu](https://github.com/jinjunzh)). +* Не отображать предупреждение о версии сервера в ClickHouse Cloud, так как ClickHouse Cloud автоматически выполняет обновления без простоя. [#59657](https://github.com/ClickHouse/ClickHouse/pull/59657) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* После самораспаковки временный бинарный файл теперь перемещается, а не копируется. [#59661](https://github.com/ClickHouse/ClickHouse/pull/59661) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Исправлена раскрутка стека на Apple macOS. Это исправление закрывает [#53653](https://github.com/ClickHouse/ClickHouse/issues/53653). [#59690](https://github.com/ClickHouse/ClickHouse/pull/59690) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Проверять переполнение стека в парсерах, даже если пользователь неправильно настроил параметр `max_parser_depth`, установив его на слишком большое значение. Это закрывает [#59622](https://github.com/ClickHouse/ClickHouse/issues/59622). [#59697](https://github.com/ClickHouse/ClickHouse/pull/59697) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#60434](https://github.com/ClickHouse/ClickHouse/pull/60434) +* Унифицировано поведение именованных коллекций в хранилище Kafka, создаваемых с помощью XML и SQL. [#59710](https://github.com/ClickHouse/ClickHouse/pull/59710) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* Если `merge_max_block_size_bytes` слишком мал и таблицы содержат широкие строки (строки или кортежи), фоновые слияния могли попадать в бесконечный цикл. Это поведение исправлено. Продолжение к [https://github.com/ClickHouse/ClickHouse/pull/59340](https://github.com/ClickHouse/ClickHouse/pull/59340). [#59812](https://github.com/ClickHouse/ClickHouse/pull/59812) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Разрешено использовать `uuid` в `replica_path`, если он явно указан в `CREATE TABLE`. [#59908](https://github.com/ClickHouse/ClickHouse/pull/59908) ([Azat Khuzhin](https://github.com/azat)). +* Добавлен столбец `metadata_version` для таблиц типа ReplicatedMergeTree в системную таблицу `system.tables`. [#59942](https://github.com/ClickHouse/ClickHouse/pull/59942) ([Maksim Kita](https://github.com/kitaisreal)). +* Улучшение в Keeper: в Prometheus теперь отправляются только метрики и события, относящиеся к Keeper. [#59945](https://github.com/ClickHouse/ClickHouse/pull/59945) ([Antonio Andelic](https://github.com/antonio2368)). +* Панель мониторинга будет отображать метрики для разных версий ClickHouse, даже если структура системных таблиц изменилась после обновления. [#59967](https://github.com/ClickHouse/ClickHouse/pull/59967) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена возможность загружать информацию о зонах доступности (AZ) из файла. [#59976](https://github.com/ClickHouse/ClickHouse/pull/59976) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Улучшение в Keeper: добавлены повторные попытки при сбоях для операций, связанных с дисками (Disk). [#59980](https://github.com/ClickHouse/ClickHouse/pull/59980) ([Antonio Andelic](https://github.com/antonio2368)). +* Добавлен новый параметр конфигурации `backups.remove_backup_files_after_failure`: ` true `. [#60002](https://github.com/ClickHouse/ClickHouse/pull/60002) ([Vitaly Baranov](https://github.com/vitlibar)). +* Для операции копирования файла S3 в GCP добавлен резервный вариант — копирование в буфер на случай, если GCP возвращает `Internal Error` с HTTP-кодом ошибки `GATEWAY_TIMEOUT`. [#60164](https://github.com/ClickHouse/ClickHouse/pull/60164) ([Maksim Kita](https://github.com/kitaisreal)). +* Реализовано раннее завершение вычислений в `ULIDStringToDateTime`. [#60211](https://github.com/ClickHouse/ClickHouse/pull/60211) ([Juan Madurga](https://github.com/jlmadurga)). +* Добавлен столбец `query_id` в таблицы `system.backups` и `system.backup_log`. В столбец `error` добавлен стек-трейс ошибки. [#60220](https://github.com/ClickHouse/ClickHouse/pull/60220) ([Maksim Kita](https://github.com/kitaisreal)). +* Подключения через порт MySQL теперь автоматически выполняются с настройкой `prefer_column_name_to_alias = 1`, чтобы обеспечить поддержку QuickSight «из коробки». Также настройки `mysql_map_string_to_text_in_show_columns` и `mysql_map_fixed_string_to_text_in_show_columns` теперь включены по умолчанию и, как и прежде, затрагивают только подключения MySQL. Это повышает совместимость с бóльшим количеством BI-инструментов. [#60365](https://github.com/ClickHouse/ClickHouse/pull/60365) ([Robert Schulze](https://github.com/rschu1ze)). +* Исправлена гонка (race condition) в JavaScript-коде, приводившая к появлению дублирующихся графиков, накладывающихся друг на друга. [#60392](https://github.com/ClickHouse/ClickHouse/pull/60392) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + +#### Улучшения сборки/тестирования/пакетирования {#buildtestingpackaging-improvement-6} + +* Добавлены сборки и тесты со сбором покрытия и интроспекцией. Продолжение [#56102](https://github.com/ClickHouse/ClickHouse/issues/56102). [#58792](https://github.com/ClickHouse/ClickHouse/pull/58792) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Обновлена цепочка инструментов Rust в `corrosion-cmake`, когда задана переменная цепочки инструментов кросс-компиляции CMake. [#59309](https://github.com/ClickHouse/ClickHouse/pull/59309) ([Aris Tritas](https://github.com/aris-aiven)). +* Добавлен фаззинг для ASTLiterals. [#59383](https://github.com/ClickHouse/ClickHouse/pull/59383) ([Raúl Marín](https://github.com/Algunenano)). +* Если вы хотите запускать скрипты initdb каждый раз при старте контейнера ClickHouse, нужно установить переменную окружения CLICKHOUSE_ALWAYS_RUN_INITDB_SCRIPTS. [#59808](https://github.com/ClickHouse/ClickHouse/pull/59808) ([Alexander Nikolaev](https://github.com/AlexNik)). +* Удалена возможность отключать общие компоненты ClickHouse (такие как server/client/...), но сохранена для некоторых, которые требуют дополнительных библиотек (таких как ODBC или keeper). [#59857](https://github.com/ClickHouse/ClickHouse/pull/59857) ([Azat Khuzhin](https://github.com/azat)). +* Query fuzzer теперь будет выполнять фаззинг SETTINGS внутри запросов. [#60087](https://github.com/ClickHouse/ClickHouse/pull/60087) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена поддержка сборки ClickHouse с использованием clang-19 (master). [#60448](https://github.com/ClickHouse/ClickHouse/pull/60448) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + +#### Исправление ошибки (некорректное поведение, заметное пользователю, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-8} + +* Исправлена ошибка "Non-ready set" в выражении TTL WHERE. [#57430](https://github.com/ClickHouse/ClickHouse/pull/57430) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлена ошибка в функции `quantilesGK` [#58216](https://github.com/ClickHouse/ClickHouse/pull/58216) ([李扬](https://github.com/taiyang-li)). +* Исправлено некорректное поведение `intDiv` для аргументов типа Decimal [#59243](https://github.com/ClickHouse/ClickHouse/pull/59243) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Исправлена обработка функции `translate` при использовании входных данных типа FixedString [#59356](https://github.com/ClickHouse/ClickHouse/pull/59356) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлен подсчёт дайджеста в Keeper [#59439](https://github.com/ClickHouse/ClickHouse/pull/59439) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлены стек-трейсы для бинарных файлов без отладочных символов [#59444](https://github.com/ClickHouse/ClickHouse/pull/59444) ([Azat Khuzhin](https://github.com/azat)). +* Исправлен `ASTAlterCommand::formatImpl` при использовании настроек, задаваемых для отдельных столбцов... [#59445](https://github.com/ClickHouse/ClickHouse/pull/59445) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Исправлена обработка `SELECT * FROM [...] ORDER BY ALL` анализатором [#59462](https://github.com/ClickHouse/ClickHouse/pull/59462) ([zhongyuankai](https://github.com/zhongyuankai)). +* Исправлено возможное необработанное исключение при отмене распределённого запроса [#59487](https://github.com/ClickHouse/ClickHouse/pull/59487) ([Azat Khuzhin](https://github.com/azat)). +* Привести MAX к тем же правилам обработки сложных типов, что и permutation [#59498](https://github.com/ClickHouse/ClickHouse/pull/59498) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлен пограничный случай при передаче `update_insert_deduplication_token_in_dependent_materialized_views` [#59544](https://github.com/ClickHouse/ClickHouse/pull/59544) ([Jordi Villar](https://github.com/jrdi)). +* Исправлен некорректный результат функций `arrayElement` и `map` на пустом значении [#59594](https://github.com/ClickHouse/ClickHouse/pull/59594) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена ошибка, приводившая к сбою функции topK при слиянии пустых состояний [#59603](https://github.com/ClickHouse/ClickHouse/pull/59603) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена работа distributed таблицы с постоянным ключом сегментации [#59606](https://github.com/ClickHouse/ClickHouse/pull/59606) ([Vitaly Baranov](https://github.com/vitlibar)). +* Исправлена ошибка в KQL, обнаруженная WingFuzz [#59626](https://github.com/ClickHouse/ClickHouse/pull/59626) ([Yong Wang](https://github.com/kashwy)). +* Исправлена ошибка «Read beyond last offset» для AsynchronousBoundedReadBuffer [#59630](https://github.com/ClickHouse/ClickHouse/pull/59630) ([Vitaly Baranov](https://github.com/vitlibar)). +* Сохраняется псевдоним функции в RewriteSumFunctionWithSumAndCountVisitor [#59658](https://github.com/ClickHouse/ClickHouse/pull/59658) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлено определение времени начала для неинициирующих запросов [#59662](https://github.com/ClickHouse/ClickHouse/pull/59662) ([Raúl Marín](https://github.com/Algunenano)). +* Добавлена проверка типов аргументов для пропускающего индекса `minmax` [#59733](https://github.com/ClickHouse/ClickHouse/pull/59733) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлены функции leftPad и rightPad при использовании аргумента типа FixedString [#59739](https://github.com/ClickHouse/ClickHouse/pull/59739) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена ошибка AST fuzzer в функции `countMatches` [#59752](https://github.com/ClickHouse/ClickHouse/pull/59752) ([Robert Schulze](https://github.com/rschu1ze)). +* RabbitMQ: исправлена проблема, из-за которой сообщения не получали ни подтверждения (ack), ни отрицательного подтверждения (nack) [#59775](https://github.com/ClickHouse/ClickHouse/pull/59775) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлена проблема, из-за которой StorageURL выполнял часть выполнения запроса в одном потоке [#59833](https://github.com/ClickHouse/ClickHouse/pull/59833) ([Michael Kolupaev](https://github.com/al13n321)). +* S3Queue: исправлена проблема с неинициализированным значением [#59897](https://github.com/ClickHouse/ClickHouse/pull/59897) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлен разбор выражений партиционирования, заключённых в скобки [#59901](https://github.com/ClickHouse/ClickHouse/pull/59901) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Исправлена ошибка, приводившая к аварийному завершению работы в формате JSONColumnsWithMetadata при работе по HTTP [#59925](https://github.com/ClickHouse/ClickHouse/pull/59925) ([Kruglov Pavel](https://github.com/Avogar)). +* Не переписывать функцию sum в count в Analyzer, если возвращаемое значение отличается [#59926](https://github.com/ClickHouse/ClickHouse/pull/59926) ([Azat Khuzhin](https://github.com/azat)). +* Исправлено падение при чтении из UniqExactSet [#59928](https://github.com/ClickHouse/ClickHouse/pull/59928) ([Maksim Kita](https://github.com/kitaisreal)). +* Исправление ошибки с некорректным значением `metadata_version` в ReplicatedMergeTree [#59946](https://github.com/ClickHouse/ClickHouse/pull/59946) ([Maksim Kita](https://github.com/kitaisreal)). +* Исправлена гонка данных в `StorageDistributed` [#59987](https://github.com/ClickHouse/ClickHouse/pull/59987) ([Nikita Taranov](https://github.com/nickitat)). +* Docker: запускать init-скрипты, если опция включена, а не отключена [#59991](https://github.com/ClickHouse/ClickHouse/pull/59991) ([jktng](https://github.com/jktng)). +* Исправлен оператор INSERT в `SQLite` с одинарной кавычкой (путём экранирования одинарных кавычек кавычкой вместо обратной косой черты) [#60015](https://github.com/ClickHouse/ClickHouse/pull/60015) ([Azat Khuzhin](https://github.com/azat)). +* Исправлены несколько логических ошибок в `arrayFold` [#60022](https://github.com/ClickHouse/ClickHouse/pull/60022) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена ошибка в `optimize_uniq_to_count`, из‑за которой удалялся псевдоним столбца [#60026](https://github.com/ClickHouse/ClickHouse/pull/60026) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлено возможное возникновение исключения при удалении таблицы S3Queue [#60036](https://github.com/ClickHouse/ClickHouse/pull/60036) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлено форматирование `NOT` при использовании с одиночными литералами [#60042](https://github.com/ClickHouse/ClickHouse/pull/60042) ([Raúl Marín](https://github.com/Algunenano)). +* Использовать max_query_size из контекста в DDLLogEntry вместо жёстко заданного значения 4096 [#60083](https://github.com/ClickHouse/ClickHouse/pull/60083) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлено некорректное форматирование запросов, содержащих таблицу с именем `table`. Исправлено неверное форматирование запросов с `UNION ALL`, `INTERSECT` и `EXCEPT`, когда их структура была нелинейной. Это закрывает #52349. Исправлено неверное форматирование запросов `SYSTEM`, включая `SYSTEM ... DROP FILESYSTEM CACHE`, `SYSTEM ... REFRESH/START/STOP/CANCEL/TEST VIEW`, `SYSTEM ENABLE/DISABLE FAILPOINT`. Исправлено форматирование параметризованных DDL-запросов. Исправлено форматирование запроса `DESCRIBE FILESYSTEM CACHE`. Исправлено некорректное форматирование `SET param_...` (запроса, устанавливающего параметр). Исправлено некорректное форматирование запросов `CREATE INDEX`. Исправлено непоследовательное форматирование запросов `CREATE USER` и похожих. Исправлено непоследовательное форматирование `CREATE SETTINGS PROFILE`. Исправлено некорректное форматирование `ALTER ... MODIFY REFRESH`. Исправлено непоследовательное форматирование оконных функций, если смещения рамок задавались выражениями. Исправлено непоследовательное форматирование `RESPECT NULLS` и `IGNORE NULLS`, если они использовались после функции, реализующей оператор (например, `plus`). Исправлено идиотское форматирование `SYSTEM SYNC REPLICA ... LIGHTWEIGHT FROM ...`. Исправлено непоследовательное форматирование некорректных запросов с `GROUP BY GROUPING SETS ... WITH ROLLUP/CUBE/TOTALS`. Исправлено непоследовательное форматирование `GRANT CURRENT GRANTS`. Исправлено непоследовательное форматирование `CREATE TABLE (... COLLATE)`. Дополнительно исправлено некорректное форматирование `EXPLAIN` в подзапросах (#60102). Исправлено некорректное форматирование лямбда-функций (#60012). Добавлена проверка, чтобы в будущем подобные уродства было невозможно пропустить. [#60095](https://github.com/ClickHouse/ClickHouse/pull/60095) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлено непоследовательное форматирование `EXPLAIN` в подзапросах [#60102](https://github.com/ClickHouse/ClickHouse/pull/60102) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлена ошибка, приводившая к сбою cosineDistance с Nullable [#60150](https://github.com/ClickHouse/ClickHouse/pull/60150) ([Raúl Marín](https://github.com/Algunenano)). +* Разрешено приводить булевы значения в строковом представлении к булевому типу [#60160](https://github.com/ClickHouse/ClickHouse/pull/60160) ([Robert Schulze](https://github.com/rschu1ze)). +* Исправлен журнал `system.s3queue_log` [#60166](https://github.com/ClickHouse/ClickHouse/pull/60166) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлена ошибка в arrayReduce при nullable имени агрегатной функции [#60188](https://github.com/ClickHouse/ClickHouse/pull/60188) ([Raúl Marín](https://github.com/Algunenano)). +* Скрытие конфиденциальных данных в `S3Queue` [#60233](https://github.com/ClickHouse/ClickHouse/pull/60233) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлены коды исключений HTTP. [#60252](https://github.com/ClickHouse/ClickHouse/pull/60252) ([Austin Kothig](https://github.com/kothiga)). +* S3Queue: исправлена ошибка (также устранён нестабильный тест _storage_s3_queue/test.py::test_shards_distributed) [#60282](https://github.com/ClickHouse/ClickHouse/pull/60282) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлены use-of-uninitialized-value и некорректные результаты в хеш-функциях для IPv6 [#60359](https://github.com/ClickHouse/ClickHouse/pull/60359) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлена работа `OptimizeDateOrDateTimeConverterWithPreimageVisitor` с аргументами `NULL` [#60453](https://github.com/ClickHouse/ClickHouse/pull/60453) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена незначительная ошибка, из-за которой запросы к distributed таблицам, отправленные клиентами, использующими диалекты KQL или PRQL, не выполнялись на репликах. [#59674](https://github.com/ClickHouse/ClickHouse/issues/59674). [#60470](https://github.com/ClickHouse/ClickHouse/pull/60470) ([Alexey Milovidov](https://github.com/alexey-milovidov)) [#59674](https://github.com/ClickHouse/ClickHouse/pull/59674) ([Austin Kothig](https://github.com/kothiga)). + +### Выпуск ClickHouse 24.1, 2024-01-30. [Презентация](https://presentations.clickhouse.com/2024-release-24.1/), [Видео](https://www.youtube.com/watch?v=pBF9g0wGAGs) {#a-id241a-clickhouse-release-241-2024-01-30} + + + +#### Обратное несовместимое изменение {#backward-incompatible-change-9} + +* Настройка `print_pretty_type_names` теперь по умолчанию включена. Вы можете отключить её, чтобы сохранить старое поведение, или выполнить `SET compatibility = '23.12'`. [#57726](https://github.com/ClickHouse/ClickHouse/pull/57726) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Настройка MergeTree `clean_deleted_rows` объявлена устаревшей и больше ни на что не влияет. Ключевое слово `CLEANUP` для `OPTIMIZE` по умолчанию не разрешено (если только не включена настройка `allow_experimental_replacing_merge_with_cleanup`). [#58316](https://github.com/ClickHouse/ClickHouse/pull/58316) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Функция `reverseDNSQuery` больше недоступна. Это закрывает [#58368](https://github.com/ClickHouse/ClickHouse/issues/58368). [#58369](https://github.com/ClickHouse/ClickHouse/pull/58369) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Включены различные изменения для улучшения управления доступом в конфигурационном файле. Эти изменения влияют на поведение, и вам следует проверить `config.xml` в разделе `access_control_improvements`. Если вы не уверены, оставьте значения в конфигурационном файле такими же, как в предыдущей версии. [#58584](https://github.com/ClickHouse/ClickHouse/pull/58584) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Улучшена работа `sumMapFiltered` со значениями NaN. Значения NaN теперь помещаются в конец (вместо случайного порядка) и считаются отличными от любых других значений. `-0` теперь также считается равным `0`; так как нулевые значения отбрасываются, значения `-0` также отбрасываются. [#58959](https://github.com/ClickHouse/ClickHouse/pull/58959) ([Raúl Marín](https://github.com/Algunenano)). +* Функция `visibleWidth` теперь ведёт себя в соответствии с документацией. В предыдущих версиях она просто считала кодовые точки после сериализации строки, как функция `lengthUTF8`, но не учитывала символы нулевой и комбинируемой ширины, полноширинные символы, табуляции и символы удаления. Теперь поведение изменено соответствующим образом. Если вы хотите сохранить старое поведение, установите `function_visible_width_behavior` в `0` или задайте `compatibility` равным `23.12` или ниже. [#59022](https://github.com/ClickHouse/ClickHouse/pull/59022) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Диалект `Kusto` отключён до тех пор, пока не будут исправлены следующие две ошибки: [#59037](https://github.com/ClickHouse/ClickHouse/issues/59037) и [#59036](https://github.com/ClickHouse/ClickHouse/issues/59036). [#59305](https://github.com/ClickHouse/ClickHouse/pull/59305) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Любая попытка использовать `Kusto` приведёт к исключению. +* Более эффективная реализация модификатора `FINAL` больше не гарантирует сохранение порядка даже при `max_threads = 1`. Если вы рассчитывали на предыдущее поведение, установите `enable_vertical_final` в `0` или `compatibility` в `23.12`. + +#### Новая возможность {#new-feature-11} + +* Добавлен тип данных Variant, представляющий собой объединение (union) других типов данных. Тип `Variant(T1, T2, ..., TN)` означает, что каждая строка такого типа может содержать значение либо типа `T1`, либо `T2`, ... либо `TN`, либо не содержать ни одного из них (значение `NULL`). Тип Variant доступен при включённой настройке `allow_experimental_variant_type`. Ссылка: [#54864](https://github.com/ClickHouse/ClickHouse/issues/54864). [#58047](https://github.com/ClickHouse/ClickHouse/pull/58047) ([Kruglov Pavel](https://github.com/Avogar)). +* Некоторые настройки (в настоящее время `min_compress_block_size` и `max_compress_block_size`) теперь могут задаваться на уровне столбца; в этом случае они имеют приоритет над соответствующей настройкой на уровне таблицы. Пример: `CREATE TABLE tab (col String SETTINGS (min_compress_block_size = 81920, max_compress_block_size = 163840)) ENGINE = MergeTree ORDER BY tuple();`. [#55201](https://github.com/ClickHouse/ClickHouse/pull/55201) ([Duc Canh Le](https://github.com/canhld94)). +* Добавлена агрегатная функция `quantileDD`, а также соответствующие функции `quantilesDD` и `medianDD`. Она основана на алгоритме DDSketch [https://www.vldb.org/pvldb/vol12/p2195-masson.pdf](https://www.vldb.org/pvldb/vol12/p2195-masson.pdf). ### Запись в документации об изменениях, видимых пользователям. [#56342](https://github.com/ClickHouse/ClickHouse/pull/56342) ([Srikanth Chekuri](https://github.com/srikanthccv)). +* Позволяет настраивать любое объектное хранилище с любым типом метаданных. [#58357](https://github.com/ClickHouse/ClickHouse/pull/58357) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Добавлены режимы `null_status_on_timeout_only_active` и `throw_only_active` для `distributed_ddl_output_mode`, позволяющие не ждать неактивные реплики. [#58350](https://github.com/ClickHouse/ClickHouse/pull/58350) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Добавлена функция `arrayShingles` для вычисления подмассивов фиксированной длины, например `arrayShingles([1, 2, 3, 4, 5], 3)` возвращает `[[1,2,3],[2,3,4],[3,4,5]]`. [#58396](https://github.com/ClickHouse/ClickHouse/pull/58396) ([Zheng Miao](https://github.com/zenmiao7)). +* Добавлены функции `punycodeEncode`, `punycodeDecode`, `idnaEncode` и `idnaDecode`, которые полезны для преобразования международных доменных имён в ASCII‑представление в соответствии со стандартом IDNA. [#58454](https://github.com/ClickHouse/ClickHouse/pull/58454) ([Robert Schulze](https://github.com/rschu1ze)). +* Добавлены функции вычисления схожести строк `dramerauLevenshteinDistance`, `jaroSimilarity` и `jaroWinklerSimilarity`. [#58531](https://github.com/ClickHouse/ClickHouse/pull/58531) ([Robert Schulze](https://github.com/rschu1ze)). +* Добавлены два SETTING: `output_format_compression_level` для изменения уровня сжатия выходных данных и `output_format_compression_zstd_window_log` для явного указания размера окна сжатия и включения режима long-range для сжатия zstd, если метод сжатия вывода — `zstd`. Применяются для `INTO OUTFILE` и при записи в табличные функции `file`, `url`, `hdfs`, `s3` и `azureBlobStorage`. [#58539](https://github.com/ClickHouse/ClickHouse/pull/58539) ([Duc Canh Le](https://github.com/canhld94)). +* Автоматически отключать управляющие (escape) последовательности ANSI в форматах Pretty, если вывод не является терминалом. Добавлен новый режим `auto` для параметра `output_format_pretty_color`. [#58614](https://github.com/ClickHouse/ClickHouse/pull/58614) ([Shaun Struwig](https://github.com/Blargian)). +* Добавлена функция `sqidDecode` для декодирования [Sqids](https://sqids.org/). [#58544](https://github.com/ClickHouse/ClickHouse/pull/58544) ([Robert Schulze](https://github.com/rschu1ze)). +* Добавлена возможность считывать значения Bool как строки (String) во входных JSON-форматах. Это управляется настройкой `input_format_json_read_bools_as_strings`, которая включена по умолчанию. [#58561](https://github.com/ClickHouse/ClickHouse/pull/58561) ([Kruglov Pavel](https://github.com/Avogar)). +* Добавлена функция `seriesDecomposeSTL`, которая разлагает временной ряд на сезонную, трендовую и остаточную составляющие. [#57078](https://github.com/ClickHouse/ClickHouse/pull/57078) ([Bhavna Jindal](https://github.com/bhavnajindal)). +* Добавлен MySQL Binlog Client для MaterializedMySQL: одно binlog-соединение для нескольких баз данных. [#57323](https://github.com/ClickHouse/ClickHouse/pull/57323) ([Val Doroshchuk](https://github.com/valbok)). +* Технология Intel QuickAssist (QAT) обеспечивает аппаратно-ускоренное сжатие и криптографию. В ClickHouse появился новый кодек сжатия `ZSTD_QAT`, который использует QAT для сжатия в формате zstd. Кодек использует [Intel's QATlib](https://github.com/intel/qatlib) и [Intel's QAT ZSTD Plugin](https://github.com/intel/QAT-ZSTD-Plugin). В данный момент только сжатие может быть ускорено аппаратно (если QAT не удалось инициализировать, используется резервная программная реализация), декомпрессия всегда выполняется программно. [#57509](https://github.com/ClickHouse/ClickHouse/pull/57509) ([jasperzhu](https://github.com/jinjunzh)). +* Реализован новый способ генерации ключей в объектном хранилище для дисков S3. Теперь формат может быть задан в терминах синтаксиса регулярных выражений `re2` с помощью параметра `key_template` в описании диска. [#57663](https://github.com/ClickHouse/ClickHouse/pull/57663) ([Sema Checherinda](https://github.com/CheSema)). +* Таблица system.dropped_tables_parts содержит части таблиц system.dropped_tables (удалённых, но ещё не физически удалённых). [#58038](https://github.com/ClickHouse/ClickHouse/pull/58038) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Добавлена настройка `max_materialized_views_size_for_table` для ограничения числа materialized views, привязанных к таблице. [#58068](https://github.com/ClickHouse/ClickHouse/pull/58068) ([zhongyuankai](https://github.com/zhongyuankai)). +* Улучшения в `clickhouse-format`: поддержка запросов INSERT с `VALUES`; поддержка комментариев (используйте `--comments` для их вывода); поддержка опции `--max_line_length` для форматирования в несколько строк только длинных запросов. [#58246](https://github.com/ClickHouse/ClickHouse/pull/58246) ([vdimir](https://github.com/vdimir)). +* Подключены все системные таблицы в `clickhouse-local`, включая `system.parts`. Это закрывает [#58312](https://github.com/ClickHouse/ClickHouse/issues/58312). [#58359](https://github.com/ClickHouse/ClickHouse/pull/58359) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена поддержка типов данных `Enum` в функции `transform`. Исправляет [#58241](https://github.com/ClickHouse/ClickHouse/issues/58241). [#58360](https://github.com/ClickHouse/ClickHouse/pull/58360) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена таблица `system.database_engines`. [#58390](https://github.com/ClickHouse/ClickHouse/pull/58390) ([Bharat Nallan](https://github.com/bharatnc)). Добавлена возможность независимой регистрации движков баз данных в коде. [#58365](https://github.com/ClickHouse/ClickHouse/pull/58365) ([Bharat Nallan](https://github.com/bharatnc)). Добавлена возможность независимой регистрации интерпретаторов. [#58443](https://github.com/ClickHouse/ClickHouse/pull/58443) ([Bharat Nallan](https://github.com/bharatnc)). +* Добавлен модификатор `FROM ` для запроса `SYSTEM SYNC REPLICA LIGHTWEIGHT`. Модификатор `FROM` гарантирует, что мы ожидаем завершения операций fetch и drop-ranges только для указанных исходных реплик, а также для любых реплик, отсутствующих в ZooKeeper или с пустым source_replica. [#58393](https://github.com/ClickHouse/ClickHouse/pull/58393) ([Jayme Bird](https://github.com/jaymebrd)). +* Добавлена настройка `update_insert_deduplication_token_in_dependent_materialized_views`. Эта настройка позволяет при вставке данных в зависимые materialized view обновлять токен дедупликации вставки, добавляя в него идентификатор таблицы. Закрывает [#59165](https://github.com/ClickHouse/ClickHouse/issues/59165). [#59238](https://github.com/ClickHouse/ClickHouse/pull/59238) ([Maksim Kita](https://github.com/kitaisreal)). +* Добавлен оператор `SYSTEM RELOAD ASYNCHRONOUS METRICS`, который обновляет асинхронные метрики. В основном используется при тестировании и разработке. [#53710](https://github.com/ClickHouse/ClickHouse/pull/53710) ([Robert Schulze](https://github.com/rschu1ze)). + +#### Повышение производительности {#performance-improvement-11} + +* Механизм координации для параллельных реплик переписан для повышения параллелизма и локальности кэша. Он протестирован и демонстрирует линейную масштабируемость на сотнях реплик. Также добавлена поддержка чтения в заданном порядке. [#57968](https://github.com/ClickHouse/ClickHouse/pull/57968) ([Nikita Taranov](https://github.com/nickitat)). +* Заменена буферизация исходящих HTTP-запросов на встроенные буферы ClickHouse. Добавлены метрики подсчёта объёма байт для интерфейсов. [#56064](https://github.com/ClickHouse/ClickHouse/pull/56064) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Крупные состояния агрегации функции `uniqExact` будут объединяться параллельно в распределённых запросах. [#59009](https://github.com/ClickHouse/ClickHouse/pull/59009) ([Nikita Taranov](https://github.com/nickitat)). +* Снижено потребление памяти при чтении из таблиц `MergeTree`. [#59290](https://github.com/ClickHouse/ClickHouse/pull/59290) ([Anton Popov](https://github.com/CurtizJ)). +* Снижен расход памяти при вертикальных слияниях. [#59340](https://github.com/ClickHouse/ClickHouse/pull/59340) ([Anton Popov](https://github.com/CurtizJ)). +* Избегаем чрезмерного потребления памяти при запуске Keeper в большем числе случаев. [#58455](https://github.com/ClickHouse/ClickHouse/pull/58455) ([Antonio Andelic](https://github.com/antonio2368)). +* Улучшение Keeper: снижено потребление памяти при хранении узлов. [#59002](https://github.com/ClickHouse/ClickHouse/pull/59002) ([Antonio Andelic](https://github.com/antonio2368)). +* Более эффективная с точки зрения использования кэша финальная реализация. Замечание об изменении поведения: ранее запросы с модификатором `FINAL`, которые выполнялись в одном потоке (например, при `max_threads = 1`), возвращали отсортированный результат даже без явного указания оператора `ORDER BY`. Это больше не гарантируется, если `enable_vertical_final = true` (а по умолчанию он включён). [#54366](https://github.com/ClickHouse/ClickHouse/pull/54366) ([Duc Canh Le](https://github.com/canhld94)). +* Исключено дополнительное копирование в `ReadBufferFromIStream`, который используется, например, при чтении из S3. [#56961](https://github.com/ClickHouse/ClickHouse/pull/56961) ([Nikita Taranov](https://github.com/nickitat)). +* Оптимизирована функция `arrayElement` для входных данных типов Array(Map)/Array(Array(Num))/Array(Array(String))/Array(BigInt)/Array(Decimal). Предыдущие реализации выполняли больше выделений памяти, чем требовалось. Оптимизация ускоряет выполнение до ~6 раз, особенно когда типом входных данных является Array(Map). [#56403](https://github.com/ClickHouse/ClickHouse/pull/56403) ([李扬](https://github.com/taiyang-li)). +* Однократно считывать столбец при чтении из него нескольких подстолбцов в компактных частях. [#57631](https://github.com/ClickHouse/ClickHouse/pull/57631) ([Kruglov Pavel](https://github.com/Avogar)). +* Переписан AST для функции `sum(column + constant)`. Используется как проход оптимизации в Analyzer [#57853](https://github.com/ClickHouse/ClickHouse/pull/57853) ([Jiebin Sun](https://github.com/jiebinn)). +* Теперь при вычислении функции `match` используются пропускающие индексы `ngrambf_v1` и `tokenbf_v1`. [#57882](https://github.com/ClickHouse/ClickHouse/pull/57882) ([凌涛](https://github.com/lingtaolf)). +* Теперь при вычислении функции `match` используются инвертированные индексы. [#58284](https://github.com/ClickHouse/ClickHouse/pull/58284) ([凌涛](https://github.com/lingtaolf)). +* MergeTree `FINAL` теперь не сравнивает строки из одной и той же части, если она не уровня L0. [#58142](https://github.com/ClickHouse/ClickHouse/pull/58142) ([Duc Canh Le](https://github.com/canhld94)). +* Ускорены вызовы функции iota (заполнение массива последовательными числами). [#58271](https://github.com/ClickHouse/ClickHouse/pull/58271) ([Raúl Marín](https://github.com/Algunenano)). +* Ускорена работа функций MIN/MAX для нечисловых типов. [#58334](https://github.com/ClickHouse/ClickHouse/pull/58334) ([Raúl Marín](https://github.com/Algunenano)). +* Оптимизирована комбинация фильтров (как в многошаговом PREWHERE) с использованием интринсиков BMI2/SSE [#58800](https://github.com/ClickHouse/ClickHouse/pull/58800) ([Zhiguo Zhou](https://github.com/ZhiguoZh)). +* В `clickhouse-local` используется на один поток меньше. [#58968](https://github.com/ClickHouse/ClickHouse/pull/58968) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Улучшена производительность функции `multiIf`, если тип — Nullable. [#57745](https://github.com/ClickHouse/ClickHouse/pull/57745) ([KevinyhZou](https://github.com/KevinyhZou)). +* Добавлена команда `SYSTEM JEMALLOC PURGE` для очистки неиспользуемых страниц jemalloc, а также `SYSTEM JEMALLOC [ ENABLE | DISABLE | FLUSH ] PROFILE` для управления профилем jemalloc, если профилировщик включен. В Keeper добавлена связанная с jemalloc 4LW-команда: `jmst` для выгрузки статистики jemalloc, `jmfp`, `jmep`, `jmdp` для управления профилем jemalloc, если профилировщик включен. [#58665](https://github.com/ClickHouse/ClickHouse/pull/58665) ([Antonio Andelic](https://github.com/antonio2368)). +* Снижено потребление памяти при создании резервных копий в S3. [#58962](https://github.com/ClickHouse/ClickHouse/pull/58962) ([Vitaly Baranov](https://github.com/vitlibar)). + +#### Улучшения {#improvement-11} + +* Добавлены комментарии (краткие описания) ко всем столбцам системных таблиц. На это есть несколько причин: Мы активно используем системные таблицы, и иногда разработчику бывает очень трудно понять назначение и смысл конкретного столбца. Мы часто изменяем системные таблицы (добавляем новые или модифицируем существующие), и документация по ним часто оказывается неактуальной. Например, посмотрите на страницу документации для [`system.parts`](/operations/system-tables/parts). В ней отсутствует множество столбцов. В перспективе мы хотели бы генерировать документацию непосредственно из ClickHouse. [#58356](https://github.com/ClickHouse/ClickHouse/pull/58356) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Разрешены запросы с подзапросами без алиасов для `PASTE JOIN`. [#58654](https://github.com/ClickHouse/ClickHouse/pull/58654) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Включена интеграция с `MySQL`/`MariaDB` на macOS. Это закрывает [#21191](https://github.com/ClickHouse/ClickHouse/issues/21191). [#46316](https://github.com/ClickHouse/ClickHouse/pull/46316) ([Alexey Milovidov](https://github.com/alexey-milovidov)) ([Robert Schulze](https://github.com/rschu1ze)). +* По умолчанию отключена настройка `max_rows_in_set_to_optimize_join`. [#56396](https://github.com/ClickHouse/ClickHouse/pull/56396) ([vdimir](https://github.com/vdimir)). +* Добавлен конфигурационный параметр ``, который позволяет избежать необходимости разрешать имена хостов в запросах DDL с `ON CLUSTER`, а также в реплицируемых движках баз данных. Это снижает риск зависания очереди в случае изменения конфигурации кластера. Закрывает [#57573](https://github.com/ClickHouse/ClickHouse/issues/57573). [#57603](https://github.com/ClickHouse/ClickHouse/pull/57603) ([Nikolay Degterinsky](https://github.com/evillique)). +* Увеличено значение настройки `load_metadata_threads` до 16 для кэша файловой системы. Это позволит серверу запускаться быстрее. [#57732](https://github.com/ClickHouse/ClickHouse/pull/57732) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена возможность ограничивать пропускную способность слияний/мутаций (`max_mutations_bandwidth_for_server`/`max_merges_bandwidth_for_server`). [#57877](https://github.com/ClickHouse/ClickHouse/pull/57877) ([Azat Khuzhin](https://github.com/azat)). +* В системной таблице `system.server_settings` недокументированный логический столбец `is_hot_reloadable` заменён на столбец типа Enum8 `changeable_without_restart` с возможными значениями `No`, `Yes`, `IncreaseOnly` и `DecreaseOnly`. Также этот столбец задокументирован. [#58029](https://github.com/ClickHouse/ClickHouse/pull/58029) ([skyoct](https://github.com/skyoct)). +* Обнаружение кластера теперь поддерживает указание имени пользователя и пароля; закрыта задача [#58063](https://github.com/ClickHouse/ClickHouse/issues/58063). [#58123](https://github.com/ClickHouse/ClickHouse/pull/58123) ([vdimir](https://github.com/vdimir)). +* Добавлена поддержка параметров запроса в `ALTER TABLE ... PART`. [#58297](https://github.com/ClickHouse/ClickHouse/pull/58297) ([Azat Khuzhin](https://github.com/azat)). +* Создавать потребителей для таблиц Kafka на лету (но сохранять их в течение некоторого времени — `kafka_consumers_pool_ttl_ms` с момента последнего использования). Это должно исправить проблему со статистикой для `system.kafka_consumers` (для которой статистика не собирается, когда никто не читает из таблицы Kafka, что приводит к утечке оперативной памяти и медленному отсоединению таблицы). Кроме того, этот PR снова включает статистику для `system.kafka_consumers` по умолчанию. [#58310](https://github.com/ClickHouse/ClickHouse/pull/58310) ([Azat Khuzhin](https://github.com/azat)). +* `sparkBar` в качестве алиаса для `sparkbar`. [#58335](https://github.com/ClickHouse/ClickHouse/pull/58335) ([凌涛](https://github.com/lingtaolf)). +* Не отправляйте запросы `ComposeObject` после загрузки в `GCS`. [#58343](https://github.com/ClickHouse/ClickHouse/pull/58343) ([Azat Khuzhin](https://github.com/azat)). +* Теперь корректно обрабатываются ключи с точкой в имени в XML-конфигурациях. [#58354](https://github.com/ClickHouse/ClickHouse/pull/58354) ([Azat Khuzhin](https://github.com/azat)). +* Функция `format` теперь возвращает константу при константных аргументах. Это закрывает [#58355](https://github.com/ClickHouse/ClickHouse/issues/58355). [#58358](https://github.com/ClickHouse/ClickHouse/pull/58358) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена настройка `max_estimated_execution_time` для раздельного управления `max_execution_time` и `max_estimated_execution_time`. [#58402](https://github.com/ClickHouse/ClickHouse/pull/58402) ([Zhang Yifan](https://github.com/zhangyifan27)). +* Выводить подсказку при указании некорректного имени движка базы данных. [#58444](https://github.com/ClickHouse/ClickHouse/pull/58444) ([Bharat Nallan](https://github.com/bharatnc)). +* Добавлены настройки для более точного управления типом индексов в словаре Arrow. По умолчанию для индексов используется знаковый целочисленный тип в соответствии с рекомендациями Arrow. Закрывает [#57401](https://github.com/ClickHouse/ClickHouse/issues/57401). [#58519](https://github.com/ClickHouse/ClickHouse/pull/58519) ([Kruglov Pavel](https://github.com/Avogar)). +* Добавлена [#58575](https://github.com/ClickHouse/ClickHouse/issues/58575) поддержка переменной окружения `CLICKHOUSE_PASSWORD_FILE` при запуске образа Docker. [#58583](https://github.com/ClickHouse/ClickHouse/pull/58583) ([Eyal Halpern Shalev](https://github.com/Eyal-Shalev)). +* При выполнении некоторых запросов, которые требуют множества потоков для чтения данных, ранее выбрасывалась ошибка `"Paste JOIN requires sorted tables only"`. Теперь в таком случае число потоков уменьшается до 1. [#58608](https://github.com/ClickHouse/ClickHouse/pull/58608) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Улучшено сообщение об ошибке INVALID_IDENTIFIER. [#58703](https://github.com/ClickHouse/ClickHouse/pull/58703) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Улучшена обработка числовых литералов со знаком в normalizeQuery. [#58710](https://github.com/ClickHouse/ClickHouse/pull/58710) ([Salvatore Mesoraca](https://github.com/aiven-sal)). +* Добавлена поддержка типа данных Point для MySQL. [#58721](https://github.com/ClickHouse/ClickHouse/pull/58721) ([Kseniia Sumarokova](https://github.com/kssenii)). +* При сравнении столбца типа Float32 с константной строкой интерпретировать строку как Float32 (вместо Float64). [#58724](https://github.com/ClickHouse/ClickHouse/pull/58724) ([Raúl Marín](https://github.com/Algunenano)). +* Улучшена совместимость с S3, добавлена поддержка хранилища ECloud EOS. [#58786](https://github.com/ClickHouse/ClickHouse/pull/58786) ([xleoken](https://github.com/xleoken)). +* Разрешена отмена резервных копий и восстановлений с помощью `KILL QUERY`. Этот PR также делает выполняющиеся резервные копии и восстановления видимыми в `system.processes`. Кроме того, в конфигурации сервера появилась новая настройка — `shutdown_wait_backups_and_restores` (по умолчанию=true), которая заставляет сервер при завершении работы либо дожидаться окончания всех выполняющихся резервных копий и восстановлений, либо просто отменять их. [#58804](https://github.com/ClickHouse/ClickHouse/pull/58804) ([Vitaly Baranov](https://github.com/vitlibar)). +* Формат Avro получил поддержку кодека ZSTD. Закрывает [#58735](https://github.com/ClickHouse/ClickHouse/issues/58735). [#58805](https://github.com/ClickHouse/ClickHouse/pull/58805) ([flynn](https://github.com/ucasfl)). +* Интерфейс MySQL получил поддержку настроек `net_write_timeout` и `net_read_timeout`. `net_write_timeout` сопоставляется с родной настройкой ClickHouse `send_timeout`, а `net_read_timeout` — с `receive_timeout`. Исправлена проблема, из-за которой можно было задать настройку MySQL `sql_select_limit` только в том случае, если весь оператор был записан в верхнем регистре. [#58835](https://github.com/ClickHouse/ClickHouse/pull/58835) ([Serge Klochkov](https://github.com/slvrtrn)). +* Улучшено сообщение об исключении при конфликте между словарём и таблицей с одинаковым именем. [#58841](https://github.com/ClickHouse/ClickHouse/pull/58841) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Убедитесь, что для пользовательских дисков (созданных с помощью SQL) в конфигурации сервера указано либо `filesystem_caches_path` (общий префикс каталога для всех файловых кэшей), либо `custom_cached_disks_base_directory` (общий префикс каталога только для файловых кэшей, создаваемых из пользовательских дисков). `custom_cached_disks_base_directory` имеет более высокий приоритет для пользовательских дисков по сравнению с `filesystem_caches_path`, который используется, если первое отсутствует. Путь параметра файлового кэша `path` должен находиться внутри этого каталога, в противном случае будет выброшено исключение, предотвращающее создание диска. Это не повлияет на диски, созданные в более старой версии, если сервер был обновлён, — в этом случае исключение выбрасываться не будет, чтобы сервер смог успешно запуститься. `custom_cached_disks_base_directory` добавлен в конфигурацию сервера по умолчанию как `/var/lib/clickhouse/caches/`. Закрывает [#57825](https://github.com/ClickHouse/ClickHouse/issues/57825). [#58869](https://github.com/ClickHouse/ClickHouse/pull/58869) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Интерфейс MySQL получил поддержку запросов `SHOW WARNINGS`/`SHOW COUNT(*) WARNINGS`, хотя возвращаемый результат всегда представляет собой пустой набор. [#58929](https://github.com/ClickHouse/ClickHouse/pull/58929) ([Serge Klochkov](https://github.com/slvrtrn)). +* Пропускать недоступные реплики при выполнении параллельного распределённого `INSERT SELECT`. [#58931](https://github.com/ClickHouse/ClickHouse/pull/58931) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Отображать человекочитаемый уровень логирования при использовании структурированного формата логов в JSON. [#58936](https://github.com/ClickHouse/ClickHouse/pull/58936) ([Tim Liou](https://github.com/wheatdog)). +* Интерфейс MySQL получил поддержку команд `CAST(x AS SIGNED)` и `CAST(x AS UNSIGNED)` посредством алиасов типов данных: `SIGNED` для Int64 и `UNSIGNED` для UInt64. Это улучшает совместимость с BI‑инструментами, такими как Looker Studio. [#58954](https://github.com/ClickHouse/ClickHouse/pull/58954) ([Serge Klochkov](https://github.com/slvrtrn)). +* Изменён рабочий каталог на каталог с данными в контейнере Docker. [#58975](https://github.com/ClickHouse/ClickHouse/pull/58975) ([cangyin](https://github.com/cangyin)). +* Добавлен SETTING для Azure Blob Storage `azure_max_unexpected_write_error_retries`, который также можно задать в конфигурации в разделе azure. [#59001](https://github.com/ClickHouse/ClickHouse/pull/59001) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)). +* Разрешить запуск сервера при повреждённой таблице в озере данных. Закрывает [#58625](https://github.com/ClickHouse/ClickHouse/issues/58625). [#59080](https://github.com/ClickHouse/ClickHouse/pull/59080) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Позволяет игнорировать эволюцию схемы в движке таблицы `Iceberg` и читать все данные, используя либо схему, указанную пользователем при создании таблицы, либо последнюю схему, полученную из метаданных при создании таблицы. Это осуществляется с помощью настройки `iceberg_engine_ignore_schema_evolution`, которая по умолчанию отключена. Обратите внимание, что включение этой настройки может привести к некорректным результатам, так как при эволюции схемы все файлы данных будут читаться по одной и той же схеме. [#59133](https://github.com/ClickHouse/ClickHouse/pull/59133) ([Kruglov Pavel](https://github.com/Avogar)). +* Запрещены изменяющие операции (`INSERT`/`ALTER`/`OPTIMIZE`/...) на хранилищах только для чтения и с однократной записью с выдачей корректной ошибки `TABLE_IS_READ_ONLY` (чтобы избежать остаточных данных). Исключено появление остаточных файлов на дисках с однократной записью (`format_version.txt`) при `CREATE`/`ATTACH`. Игнорируется `DROP` для `ReplicatedMergeTree` (как и для `MergeTree`). Исправлен обход `s3_plain` (`MetadataStorageFromPlainObjectStorage::iterateDirectory`). Примечание: диск только для чтения — это `web`, а диск с однократной записью — `s3_plain`. [#59170](https://github.com/ClickHouse/ClickHouse/pull/59170) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена ошибка в экспериментальном столбце `_block_number`, которая могла приводить к логической ошибке при сложной комбинации операций `ALTER` и `merge`. Исправляет [#56202](https://github.com/ClickHouse/ClickHouse/issues/56202). Заменяет [#58601](https://github.com/ClickHouse/ClickHouse/issues/58601). [#59295](https://github.com/ClickHouse/ClickHouse/pull/59295) ([alesapin](https://github.com/alesapin)). +* Play UI теперь распознаёт, когда внутри JSON возвращается исключение. Корректировка для [#52853](https://github.com/ClickHouse/ClickHouse/issues/52853). [#59303](https://github.com/ClickHouse/ClickHouse/pull/59303) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* `/binary` HTTP-обработчик позволяет указать пользователя, хост и, при необходимости, пароль в строке запроса. [#59311](https://github.com/ClickHouse/ClickHouse/pull/59311) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена поддержка резервного копирования сжатых in-memory‑таблиц. Это закрывает [#57893](https://github.com/ClickHouse/ClickHouse/issues/57893). [#59315](https://github.com/ClickHouse/ClickHouse/pull/59315) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена поддержка предложения `FORMAT` в запросах `BACKUP` и `RESTORE`. [#59338](https://github.com/ClickHouse/ClickHouse/pull/59338) ([Vitaly Baranov](https://github.com/vitlibar)). +* Функция `concatWithSeparator` теперь поддерживает аргументы произвольных типов (а не только аргументы типов `String` и `FixedString`). Например, `SELECT concatWithSeparator('.', 'number', 1)` теперь возвращает `number.1`. [#59341](https://github.com/ClickHouse/ClickHouse/pull/59341) ([Robert Schulze](https://github.com/rschu1ze)). + +#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-7} + +* Улучшены псевдонимы для исполняемого файла clickhouse (теперь `ch`/`clickhouse` — это `clickhouse-local` или `clickhouse` в зависимости от аргументов) и добавлено автодополнение в bash для новых псевдонимов. [#58344](https://github.com/ClickHouse/ClickHouse/pull/58344) ([Azat Khuzhin](https://github.com/azat)). +* В CI добавлена проверка изменений настроек, чтобы удостовериться, что все изменения настроек отражены в истории изменений настроек. [#58555](https://github.com/ClickHouse/ClickHouse/pull/58555) ([Kruglov Pavel](https://github.com/Avogar)). +* В stateful‑тестах используются таблицы, напрямую подключённые из S3. [#58791](https://github.com/ClickHouse/ClickHouse/pull/58791) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Теперь весь файл `fuzzer.log` архивируется вместо сохранения только последних 100 тыс. строк. Команда `tail -n 100000` часто удаляет строки с определениями таблиц. Пример: [#58821](https://github.com/ClickHouse/ClickHouse/pull/58821) ([Dmitry Novik](https://github.com/novikd)). +* Включена поддержка Rust на macOS с Aarch64 (это добавляет нечеткий поиск в клиенте с помощью skim и язык PRQL, хотя я не думаю, что есть люди, которые запускают ClickHouse на darwin, так что в основном это, я бы сказал, ради нечеткого поиска в клиенте). [#59272](https://github.com/ClickHouse/ClickHouse/pull/59272) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена проблема агрегации в смешанных кластерах x86_64 и ARM. [#59132](https://github.com/ClickHouse/ClickHouse/pull/59132) ([Harry Lee](https://github.com/HarryLeeIBM)). + +#### Исправление ошибки (некорректное поведение в официальном стабильном релизе, заметное пользователю) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-9} + +* Добавлено преобразование ключей JOIN для вложенного типа LowCardinality [#51550](https://github.com/ClickHouse/ClickHouse/pull/51550) ([vdimir](https://github.com/vdimir)). +* Разворачивать только собственно тип Nested при flatten_nested=1, а не все Array(Tuple) [#56132](https://github.com/ClickHouse/ClickHouse/pull/56132) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлена ошибка с проекциями и настройкой `aggregate_functions_null_for_empty` при вставке данных. [#56944](https://github.com/ClickHouse/ClickHouse/pull/56944) ([Amos Bird](https://github.com/amosbird)). +* Исправлено потенциальное исключение из-за устаревшего UUID профиля [#57263](https://github.com/ClickHouse/ClickHouse/pull/57263) ([Vasily Nemkov](https://github.com/Enmk)). +* Исправлена обработка буферов чтения в StreamingFormatExecutor [#57438](https://github.com/ClickHouse/ClickHouse/pull/57438) ([Kruglov Pavel](https://github.com/Avogar)). +* Игнорируются материализованные представления с удалённой целевой таблицей при передаче данных в представления [#57520](https://github.com/ClickHouse/ClickHouse/pull/57520) ([Kruglov Pavel](https://github.com/Avogar)). +* Устранено возможное состояние гонки между ALTER_METADATA и MERGE_PARTS [#57755](https://github.com/ClickHouse/ClickHouse/pull/57755) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена ошибка порядка выражений в `GROUP BY WITH ROLLUP` [#57786](https://github.com/ClickHouse/ClickHouse/pull/57786) ([Chen768959](https://github.com/Chen768959)). +* A fix for the obsolete "zero-copy" replication feature: Устранена потеря блобов после удаления реплики с повреждёнными отсоединёнными частями [#58333](https://github.com/ClickHouse/ClickHouse/pull/58333) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Разрешена работа пользователей с символическими ссылками в `user_files_path` [#58447](https://github.com/ClickHouse/ClickHouse/pull/58447) ([Duc Canh Le](https://github.com/canhld94)). +* Исправлено аварийное завершение работы при отсутствии агрегирующей функции (agg) в таблице graphite [#58453](https://github.com/ClickHouse/ClickHouse/pull/58453) ([Duc Canh Le](https://github.com/canhld94)). +* Отложено чтение из StorageKafka, чтобы обеспечить многократное чтение в materialized view [#58477](https://github.com/ClickHouse/ClickHouse/pull/58477) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Исправлен некорректный случай пересекающихся частей [#58482](https://github.com/ClickHouse/ClickHouse/pull/58482) ([Alexander Tokmakov](https://github.com/tavplubix)). +* MergeTreePrefetchedReadPool отключен в запросах, содержащих только LIMIT [#58505](https://github.com/ClickHouse/ClickHouse/pull/58505) ([Maksim Kita](https://github.com/kitaisreal)). +* Разрешить работу обычных баз данных во время восстановления [#58520](https://github.com/ClickHouse/ClickHouse/pull/58520) ([Jihyuk Bok](https://github.com/tomahawk28)). +* Исправлена обработка пула потоков Apache Hive при чтении ORC/Parquet/... [#58537](https://github.com/ClickHouse/ClickHouse/pull/58537) ([sunny](https://github.com/sunny19930321)). +* Скрывать учётные данные в столбце `base_backup_name` таблицы `system.backup_log` [#58550](https://github.com/ClickHouse/ClickHouse/pull/58550) ([Daniel Pozo Escalona](https://github.com/danipozo)). +* `toStartOfInterval` для округления значений в милли- и микросекундах [#58557](https://github.com/ClickHouse/ClickHouse/pull/58557) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Отключён `max_joined_block_rows` в ConcurrentHashJoin [#58595](https://github.com/ClickHouse/ClickHouse/pull/58595) ([vdimir](https://github.com/vdimir)). +* Исправлена работа JOIN с использованием Nullable в старом анализаторе [#58596](https://github.com/ClickHouse/ClickHouse/pull/58596) ([vdimir](https://github.com/vdimir)). +* `makeDateTime64`: Разрешён неконстантный аргумент для дробной части [#58597](https://github.com/ClickHouse/ClickHouse/pull/58597) ([Robert Schulze](https://github.com/rschu1ze)). +* Исправлено возможное разыменование нулевого указателя при символизации встроенных кадров [#58607](https://github.com/ClickHouse/ClickHouse/pull/58607) ([Azat Khuzhin](https://github.com/azat)). +* Улучшена изоляция записей кэша запросов при повторном создании пользователей или переключении ролей [#58611](https://github.com/ClickHouse/ClickHouse/pull/58611) ([Robert Schulze](https://github.com/rschu1ze)). +* Исправлен ошибочный анализ ключа партиционирования при выполнении оптимизации PROJECTION [#58638](https://github.com/ClickHouse/ClickHouse/pull/58638) ([Amos Bird](https://github.com/amosbird)). +* Кэш запросов: исправлена квота на пользователя [#58731](https://github.com/ClickHouse/ClickHouse/pull/58731) ([Robert Schulze](https://github.com/rschu1ze)). +* Исправлено разбиение потока на партиции в параллельных оконных функциях [#58739](https://github.com/ClickHouse/ClickHouse/pull/58739) ([Dmitry Novik](https://github.com/novikd)). +* Исправлен двойной вызов destroy при выбросе исключения в addBatchLookupTable8 [#58745](https://github.com/ClickHouse/ClickHouse/pull/58745) ([Raúl Марин](https://github.com/Algunenano)). +* Не обрабатывать запросы в Keeper при завершении работы [#58765](https://github.com/ClickHouse/ClickHouse/pull/58765) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлено разыменование нулевого указателя в методе `SlabsPolygonIndex::find` [#58771](https://github.com/ClickHouse/ClickHouse/pull/58771) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Исправлена ошибка в функции JSONExtract для столбцов LowCardinality(Nullable) [#58808](https://github.com/ClickHouse/ClickHouse/pull/58808) ([vdimir](https://github.com/vdimir)). +* Исправлено непредвиденное накопление потребления памяти при массовом создании и удалении большого количества таблиц с помощью CREATE и DROP. [#58831](https://github.com/ClickHouse/ClickHouse/pull/58831) ([Maksim Kita](https://github.com/kitaisreal)). +* Поддержка чтения хранилища FileLog несколькими материализованными представлениями [#58877](https://github.com/ClickHouse/ClickHouse/pull/58877) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Добавлено ограничение для идентификатора ключа доступа S3. [#58900](https://github.com/ClickHouse/ClickHouse/pull/58900) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* Исправлен потенциальный сбой в clickhouse-local при загрузке подсказок [#58907](https://github.com/ClickHouse/ClickHouse/pull/58907) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлен сбой при использовании `indexHint` [#58911](https://github.com/ClickHouse/ClickHouse/pull/58911) ([Dmitry Novik](https://github.com/novikd)). +* Исправлена проблема, из-за которой StorageURL забывал заголовки при перезапуске сервера [#58933](https://github.com/ClickHouse/ClickHouse/pull/58933) ([Michael Kolupaev](https://github.com/al13n321)). +* Analyzer: исправлена замена хранилища на блок вставки [#58958](https://github.com/ClickHouse/ClickHouse/pull/58958) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Исправлено перемещение указателя (seek) в ReadBufferFromZipArchive [#58966](https://github.com/ClickHouse/ClickHouse/pull/58966) ([Michael Kolupaev](https://github.com/al13n321)). +* Исправление для экспериментальных инвертированных индексов (не используйте в продакшене): операция `DROP INDEX` для инвертированного индекса теперь удаляет все соответствующие файлы из постоянного хранилища [#59040](https://github.com/ClickHouse/ClickHouse/pull/59040) ([mochi](https://github.com/MochiXu)). +* Устранена гонка данных в query_factories_info [#59049](https://github.com/ClickHouse/ClickHouse/pull/59049) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Отключён повторный запрос при ошибке «Слишком много перенаправлений» [#59099](https://github.com/ClickHouse/ClickHouse/pull/59099) ([skyoct](https://github.com/skyoct)). +* Исправлена взаимоблокировка при завершении работы незапущенной базы данных [#59137](https://github.com/ClickHouse/ClickHouse/pull/59137) ([Sergei Trifonov](https://github.com/serxa)). +* Исправлена обработка LIMIT BY и LIMIT в распределённых запросах [#59153](https://github.com/ClickHouse/ClickHouse/pull/59153) ([Igor Nikonov](https://github.com/devcrafter)). +* Исправлено падение при использовании часового пояса типа Nullable в `toString` [#59190](https://github.com/ClickHouse/ClickHouse/pull/59190) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Исправлена ошибка, приводившая к аварийному завершению в метаданных Iceberg при некорректных путях к файлам [#59275](https://github.com/ClickHouse/ClickHouse/pull/59275) ([Kruglov Pavel](https://github.com/Avogar)). +* Исправлено название архитектуры в операторе SELECT для целевой платформы Rust [#59307](https://github.com/ClickHouse/ClickHouse/pull/59307) ([p1rattttt](https://github.com/p1rattttt)). +* Исправлена логическая ошибка, связанная с состоянием «not-ready set» при выполнении запроса к `system.tables` с подзапросом в предложении IN. [#59351](https://github.com/ClickHouse/ClickHouse/pull/59351) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). + +## [Журнал изменений за 2023 год](/whats-new/changelog/2023) {#changelog-for-2023} \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2025.md b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2025.md new file mode 100644 index 00000000000..87ccdf51224 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2025.md @@ -0,0 +1,2728 @@ +--- +slug: /whats-new/changelog/2025 +sidebar_position: -2025 +sidebar_label: '2025' +title: 'Журнал изменений 2025 года' +description: 'Журнал изменений 2025 года' +keywords: ['ClickHouse 2025', 'журнал изменений 2025', 'заметки о релизе', 'история версий', 'новые возможности'] +doc_type: 'changelog' +--- + +### Оглавление {#table-of-contents} + +**[Релиз ClickHouse v25.12, 2025-12-18](#2512)**
    +**[Релиз ClickHouse v25.11, 2025-11-27](#2511)**
    +**[Релиз ClickHouse v25.10, 2025-10-30](#2510)**
    +**[Релиз ClickHouse v25.9, 2025-09-25](#259)**
    +**[Релиз ClickHouse v25.8 LTS, 2025-08-28](#258)**
    +**[Релиз ClickHouse v25.7, 2025-07-24](#257)**
    +**[Релиз ClickHouse v25.6, 2025-06-26](#256)**
    +**[Релиз ClickHouse v25.5, 2025-05-22](#255)**
    +**[Релиз ClickHouse v25.4, 2025-04-22](#254)**
    +**[Релиз ClickHouse v25.3 LTS, 2025-03-20](#253)**
    +**[Релиз ClickHouse v25.2, 2025-02-27](#252)**
    +**[Релиз ClickHouse v25.1, 2025-01-28](#251)**
    +**[Журнал изменений за 2024 год](https://clickhouse.com/docs/whats-new/changelog/2024/)**
    +**[Журнал изменений за 2023 год](https://clickhouse.com/docs/whats-new/changelog/2023/)**
    +**[Журнал изменений за 2022 год](https://clickhouse.com/docs/whats-new/changelog/2022/)**
    +**[Журнал изменений за 2021 год](https://clickhouse.com/docs/whats-new/changelog/2021/)**
    +**[Журнал изменений за 2020 год](https://clickhouse.com/docs/whats-new/changelog/2020/)**
    +**[Журнал изменений за 2019 год](https://clickhouse.com/docs/whats-new/changelog/2019/)**
    +**[Журнал изменений за 2018 год](https://clickhouse.com/docs/whats-new/changelog/2018/)**
    +**[Журнал изменений за 2017 год](https://clickhouse.com/docs/whats-new/changelog/2017/)**
    + +### Релиз ClickHouse 25.12, 2025-12-18 {#2512} + +#### Несовместимые изменения {#backward-incompatible-change} + +* ALTER MODIFY COLUMN теперь требует явного указания DEFAULT при преобразовании столбцов типа Nullable в не-Nullable типы. Ранее такие ALTER-команды могли зависать с ошибками cannot convert null to not null, теперь значения NULL заменяются выражением по умолчанию для столбца. Исправляет [#5985](https://github.com/ClickHouse/ClickHouse/issues/5985). [#84770](https://github.com/ClickHouse/ClickHouse/pull/84770) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Токенизатор ngram больше не будет возвращать n‑граммы длиной меньше N, с которой он был настроен. Text Search не будет возвращать строки, если поисковые токены пустые. [#89757](https://github.com/ClickHouse/ClickHouse/pull/89757) ([George Larionov](https://github.com/george-larionov)). +* При изменении столбца с `String` на `Nullable(String)` мутация данных не выполняется. Но для агрегатной функции `uniq` используется другая структура данных: для nullable-столбца будет использоваться `AggregateFunctionNull` с вложенным агрегатором uniq. `AggregateFunctionNull` будет сериализовывать дополнительный булевый флаг. Это делает файл статистики несовместимым. Исправление заключается в добавлении флага для записи того, является ли столбец nullable во время сериализации. Формат статистики был изменён, и сервер может завершиться с ошибкой, если имеются статистики в старом формате. Этот PR [#90904](https://github.com/ClickHouse/ClickHouse/pull/90904) исправляет сбой и выбрасывает исключение, когда существующая статистика использует устаревший формат. Чтобы избежать исключения, следует выполнить `ALTER TABLE table MATERIALIZE STATISTICS ALL`, чтобы пересоздать статистику и устранить проблему. [#90311](https://github.com/ClickHouse/ClickHouse/pull/90311) ([Han Fei](https://github.com/hanfei1991)). +* Удалены настройки `allow_not_comparable_types_in_order_by`/`allow_not_comparable_types_in_comparison_functions`. Разрешение использования несравнимых типов в ORDER BY или функциях сравнения может приводить к логическим ошибкам и неожиданным результатам. Исправляет [#90028](https://github.com/ClickHouse/ClickHouse/issues/90028). [#90527](https://github.com/ClickHouse/ClickHouse/pull/90527) ([Pavel Kruglov](https://github.com/Avogar)). +* Изменено значение по умолчанию настройки `check_query_single_value_result` с `true` на `false`. Теперь `CHECK TABLE` возвращает подробные результаты по каждой части таблицы вместо агрегированного результата (1 = всё в порядке, 0 = обнаружены ошибки). По сравнению с предыдущим поведением это, вероятнее всего, лучше соответствует ожиданиям пользователя. [#91009](https://github.com/ClickHouse/ClickHouse/pull/91009) ([Robert Schulze](https://github.com/rschu1ze)). +* Несколько исправлений, связанных с неявными индексами. Схема, отображаемая или сохраняемая (метаданные Keeper), не будет включать неявные индексы, такие как индексы, создаваемые параметрами `add_minmax_index_for_numeric_columns` или `add_minmax_index_for_string_columns`. Это может привести к ошибкам в метаданных при создании или обновлении таблицы ReplicatedMergeTree в более новой версии, пока в кластере есть реплика на более старом релизе. В таких случаях отправляйте DDL-запросы на старую реплику до полного обновления кластера. [#91429](https://github.com/ClickHouse/ClickHouse/pull/91429) ([Raúl Marín](https://github.com/Algunenano)). +* Обновлен `clickhouse-client`, чтобы возвращать ненулевой код выхода (159 — TIMEOUT_EXCEEDED), когда выполнение запроса прерывается по таймауту, заданному в `receive_timeout`. Ранее в случае таймаута возвращался код выхода 0 (успех), что затрудняло скриптам и системам автоматизации обнаружение таких сбоев. [#91432](https://github.com/ClickHouse/ClickHouse/pull/91432) ([Sav](https://github.com/sberss)). +* Теперь запрещено создавать специальные таблицы `MergeTree` (такие как `ReplacingMergeTree`, `CollapsingMergeTree` и т. д.) с пустым ключом `ORDER BY`, поскольку поведение слияния данных в таких таблицах не определено. Если вам всё же нужно создать такую таблицу, включите настройку `allow_suspicious_primary_key`. [#91569](https://github.com/ClickHouse/ClickHouse/pull/91569) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлены функции `bitShiftLeft` и `bitShiftRight`, чтобы они возвращали 0 или пустое значение при сдвиге на величину, равную размеру типа. [#91943](https://github.com/ClickHouse/ClickHouse/pull/91943) ([Pablo Marcos](https://github.com/pamarcos)). +* Продолжение [#88380](https://github.com/ClickHouse/ClickHouse/pull/88380). Этот PR обозначает отключённые позиционные аргументы в проекциях как обратно несовместимое изменение. Кроме того, он добавляет настройку `enable_positional_arguments_for_projections`, позволяющую выполнить безопасное обновление кластера ClickHouse, если в проекциях используются позиционные аргументы. [#92007](https://github.com/ClickHouse/ClickHouse/pull/92007) ([Dmitry Novik](https://github.com/novikd)). + +#### Новые возможности {#new-feature} + +* Теперь пользователи могут настраивать таблицы S3/Azure Queue для перемещения или пометки тегами обработанных файлов, в дополнение к ранее доступным возможностям сохранения или удаления файлов. Решает [#72944](https://github.com/ClickHouse/ClickHouse/issues/72944). [#86907](https://github.com/ClickHouse/ClickHouse/pull/86907) ([Murat Khairulin](https://github.com/mxwell)). +* В хранилищах S3/Azure Queue добавлена настройка `commit_on_select` (для определения, нужно ли коммитить обработанные данные и нужно ли применять действие `after_processing`). Значение по умолчанию — `false`. Исправлена проверка для присоединённого материализованного представления при выполнении запроса SELECT. [#91450](https://github.com/ClickHouse/ClickHouse/pull/91450) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Добавлена возможность включать инструментацию во время выполнения с помощью XRay для отладки проблем в продакшене и детерминированного профилирования. Закрывает задачу [#74249](https://github.com/ClickHouse/ClickHouse/issues/74249). [#89173](https://github.com/ClickHouse/ClickHouse/pull/89173) ([Pablo Marcos](https://github.com/pamarcos)). +* Позволяет использовать неконстантные значения во втором аргументе для `IN`. Также добавлена поддержка кортежа в качестве второго аргумента. [#77906](https://github.com/ClickHouse/ClickHouse/pull/77906) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Функции для вычисления площади и периметра для типа данных geometry. [#89047](https://github.com/ClickHouse/ClickHouse/pull/89047) ([Konstantин Vedernikov](https://github.com/scanhex12)). +* Реализована функция `dictGetKeys`, которая возвращает ключи словаря, для которых значение атрибута равно указанному. Она использует кэш обратного поиска по словарю на уровне запроса, настраиваемый с помощью параметра `max_reverse_dictionary_lookup_cache_size_bytes`, для ускорения повторных обращений. [#89197](https://github.com/ClickHouse/ClickHouse/pull/89197) ([Nihал Z. Miaji](https://github.com/nihalzp)). +* Добавлена настройка `type_json_skip_invalid_typed_paths` для отключения исключений при вставках/приведении типов к типу JSON, когда входной JSON не может быть приведён к явно типизированным путям в типе JSON. В этом случае используется значение null/ноль для типизированного пути. [#89886](https://github.com/ClickHouse/ClickHouse/pull/89886) ([Max Justus Spransy](https://github.com/maxjustus)). +* Добавлена поддержка соединения типа `direct` (nested loop) для таблиц MergeTree. Чтобы его использовать, укажите этот алгоритм в настройке как единственный вариант: `join_algorithm = 'direct'`. [#89920](https://github.com/ClickHouse/ClickHouse/pull/89920) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Поддержка `ORDER BY` в операции `CREATE` для Iceberg, а также сортировки при `INSERT`. Устраняет проблему [#89916](https://github.com/ClickHouse/ClickHouse/issues/89916). [#90141](https://github.com/ClickHouse/ClickHouse/pull/90141) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* Введены настройки на уровне проекций, доступные через новую конструкцию `WITH SETTINGS` в `ALTER TABLE ... ADD PROJECTION`. Эти настройки позволяют проекциям переопределять некоторые параметры хранения MergeTree (например, `index_granularity`, `index_granularity_bytes`) для каждой отдельной проекции. [#90158](https://github.com/ClickHouse/ClickHouse/pull/90158) ([Amos Bird](https://github.com/amosbird)). +* Добавлена SQL-функция `HMAC(algorithm, message, key)` в рамках задач [#73900](https://github.com/ClickHouse/ClickHouse/issues/73900) и [#38775](https://github.com/ClickHouse/ClickHouse/issues/38775). [#90837](https://github.com/ClickHouse/ClickHouse/pull/90837) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Добавлена поддержка функции `has` для использования первичного ключа и индексов пропуска данных, если первый аргумент — константный массив. Закрывает [#90980](https://github.com/ClickHouse/ClickHouse/issues/90980). [#91023](https://github.com/ClickHouse/ClickHouse/pull/91023) ([Nihal Z. Miaji](https://github.com/nihalzp)). +* Реализован новый формат ввода-вывода данных `Buffers`. Этот формат похож на `Native`, однако, в отличие от `Native`, не сохраняет имена столбцов, типы столбцов или какие-либо дополнительные метаданные. Закрывает [#84017](https://github.com/ClickHouse/ClickHouse/issues/84017). [#91156](https://github.com/ClickHouse/ClickHouse/pull/91156) ([Nihal Z. Miaji](https://github.com/nihalzp)). +* Добавлена настройка `max_streams_for_files_processing_in_cluster_functions` для управления числом потоков при параллельном чтении файлов в табличных функциях Cluster. Закрывает [#90223](https://github.com/ClickHouse/ClickHouse/issues/90223). [#91323](https://github.com/ClickHouse/ClickHouse/pull/91323) ([Pavel Kruglov](https://github.com/Avogar)). +* Маскирование данных для безопасности на уровне строк (доступно только в ClickHouse Cloud). Добавлен парсер политики маскирования данных для поддержки этой функции в clickhouse-client. [#90552](https://github.com/ClickHouse/ClickHouse/pull/90552) ([pufit](https://github.com/pufit)). +* Добавлена опция `allow_reentry` для агрегатной функции `windowFunnel`. При включении вместе с strict_order она пропускает события, нарушающие порядок, вместо того чтобы прерывать анализ воронки. Это позволяет обрабатывать пути пользователя с обновлением страницы (A->A->B) или возвратом назад (A->B->A->C) без занижения показателей конверсии. [#86916](https://github.com/ClickHouse/ClickHouse/pull/86916) ([Lee ChaeRok](https://github.com/LeeChaeRok)). +* Совместимость Keeper с ZooKeeper: создание с поддержкой статистики. [#88797](https://github.com/ClickHouse/ClickHouse/pull/88797) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* Поддержка постоянных наблюдателей ZooKeeper в ClickHouse Keeper. Продолжение, часть 2: [https://github.com/ClickHouse/ClickHouse/pull/78207](https://github.com/ClickHouse/ClickHouse/pull/78207). [#88813](https://github.com/ClickHouse/ClickHouse/pull/88813) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* Добавлена настройка MergeTree `alter_column_secondary_index_mode` для управления обработкой индексов при мутациях. Возможные значения: throw, drop, rebuild и compatibility. Закрывает [#77797](https://github.com/ClickHouse/ClickHouse/issues/77797). [#89335](https://github.com/ClickHouse/ClickHouse/pull/89335) ([Raúl Marín](https://github.com/Algunenano)). +* Поскольку типы данных `Time` и `Time64` готовы для промышленной эксплуатации, настройка `enable_time_time64_type` теперь включена по умолчанию. [#89345](https://github.com/ClickHouse/ClickHouse/pull/89345) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Поддерживается чтение DeltaLake CDF через табличную функцию `deltaLake` с настройками `delta_lake_snapshot_start_version`, `delta_lake_snapshot_end_version`. CDF (Change Data Feed — возможность, которая позволяет автоматически фиксировать и выполнять запросы к изменениям данных на уровне строк, таким как вставки, обновления и удаления, между версиями таблицы Delta) включается в DeltaLake через `delta.enableChangeDataFeed`. Столбцы, возвращаемые вместе с данными: `_change_type`, `_commit_version`, `_commit_timestamp`. [#90431](https://github.com/ClickHouse/ClickHouse/pull/90431) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Добавлена поддержка отрицательных индексов для обращения к элементам кортежа (например, `tuple.-1`). [#91665](https://github.com/ClickHouse/ClickHouse/pull/91665) ([Amos Bird](https://github.com/amosbird)). + +#### Экспериментальная функциональность {#experimental-feature} + +* TODO: Ввести формат текстового индекса v3 и перевести его в статус Beta. +* Добавлена новая логика для автоматического выполнения запросов с использованием параллельных реплик, управляемая настройкой `automatic_parallel_replicas_mode`. Во время обычного однопоточного выполнения на одном узле ClickHouse собирает статистику, которая позже будет учитываться на этапе планирования запроса. Если статистика показывает, что параллельные реплики, вероятно, будут полезны, ClickHouse автоматически выполнит данный запрос с параллельными репликами. Поддерживаемый набор запросов в настоящее время довольно ограничен. [#87541](https://github.com/ClickHouse/ClickHouse/pull/87541) ([Nikita Taranov](https://github.com/nickitat)). +* Доступ к экземплярам ClickHouse Cloud с использованием учетных данных Cloud через `--login`. [#89261](https://github.com/ClickHouse/ClickHouse/pull/89261) ([Krishna Mannem](https://github.com/kcmannem)). +* Добавлена сеансовая настройка `aggregate_function_input_format` для улучшения запросов `INSERT` в таблицы со столбцами `AggregateFunction`, позволяя вставлять данные в виде сериализованного состояния, исходных значений или массивов. [#88088](https://github.com/ClickHouse/ClickHouse/pull/88088) ([Punith Nandyappa Subashchandra](https://github.com/punithns97)). + +#### Повышение производительности {#performance-improvement} + +* Оптимизированы запросы `ORDER BY...LIMIT N` за счёт использования пропускающего индекса и динамического порогового фильтра, что позволило значительно сократить количество обрабатываемых строк. [#89835](https://github.com/ClickHouse/ClickHouse/pull/89835) ([Shankar Iyer](https://github.com/shankar-iyer)). +* Теперь ClickHouse использует skip-индексы для выполнения индексного анализа по предложениям WHERE с составными условиями фильтрации, объединёнными операторами `AND` и `OR`. Ранее для использования skip-индексов предложение WHERE должно было представлять собой конъюнкцию (AND) условий фильтрации. Новый SETTING `use_skip_indexes_for_disjunctions` (по умолчанию: on) управляет этим поведением. (issue [#75228](https://github.com/ClickHouse/ClickHouse/issues/75228)). [#87781](https://github.com/ClickHouse/ClickHouse/pull/87781) ([Shankar Iyer](https://github.com/shankar-iyer)). +* Добавлена поддержка сохранения порядка чтения из левой таблицы в операциях LEFT/INNER JOIN, который может быть использован последующими шагами. Эту возможность можно отключить с помощью настройки `query_plan_read_in_order_through_join`. Добавлена оптимизация чтения с использованием виртуальной строки (см. настройку `read_in_order_use_virtual_row`) для LEFT/INNER JOIN. [#89815](https://github.com/ClickHouse/ClickHouse/pull/89815) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Улучшена производительность лениво материализуемых столбцов при большем значении лимита. [#90309](https://github.com/ClickHouse/ClickHouse/pull/90309) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Пользователи должны заметить меньшую задержку при анализе индексов при наличии больших индексов `minmax` (миллионы гранул). [#90428](https://github.com/ClickHouse/ClickHouse/pull/90428) ([Shankar Iyer](https://github.com/shankar-iyer)). +* Реализован простой алгоритм перестановки порядка соединений DPsize для INNER JOINов. Новый экспериментальный параметр управляет тем, какие алгоритмы и в каком порядке используются, например, `query_plan_optimize_join_order_algorithm='dpsize,greedy'` означает, что сначала используется DPsize с переходом на greedy в случае неудачи. [#91002](https://github.com/ClickHouse/ClickHouse/pull/91002) ([Alexander Gololobov](https://github.com/davenger)). +* Быстро завершать выполнение запросов при достижении предельного числа строк. Решает [#61872](https://github.com/ClickHouse/ClickHouse/issues/61872). [#62804](https://github.com/ClickHouse/ClickHouse/pull/62804) ([Sean Haynes](https://github.com/seandhaynes)). +* [#84477](https://github.com/clickhouse/clickhouse/pull/84477) добавил ограничения на запросы SELECT, которые можно использовать в запросах `INSERT SELECT FROM s3Cluster(...)` для параллельного распределённого выполнения. Это изменение позволяет использовать WHERE, что ранее было невозможно. [#84611](https://github.com/ClickHouse/ClickHouse/pull/84611) ([Igor Nikonov](https://github.com/devcrafter)). +* Выполнять предварительную загрузку ключей при обходе хеш-таблицы для уменьшения числа промахов кэша. [#84708](https://github.com/ClickHouse/ClickHouse/pull/84708) ([lgbo](https://github.com/lgbo-ustc)). +* Оптимизирована агрегатная функция `histogram` за счёт сортировки только хвоста массива точек и пропуска сортировки для монотонных входных данных, что даёт ускорение примерно на 10%. [#85760](https://github.com/ClickHouse/ClickHouse/pull/85760) ([MakarDev](https://github.com/MakarDev)). +* Повышена производительность фильтрации для предикатов, использующих функции `like`, `equals`, `has` и другие, за счёт дополнительного предварительного фильтра, построенного на основе текстового индекса. Эта оптимизация включается с помощью настройки `query_plan_text_index_add_hint`. Улучшено использование текстового индекса для столбцов с типом данных `Map`. [#88550](https://github.com/ClickHouse/ClickHouse/pull/88550) ([Anton Popov](https://github.com/CurtizJ)). +* Оптимизированы повторяющиеся обратные поиски в словаре за счёт более быстрого поиска по предвычисленному набору возможных значений ключей. Закрывает [#7968](https://github.com/ClickHouse/ClickHouse/issues/7968). [#88971](https://github.com/ClickHouse/ClickHouse/pull/88971) ([Nihal Z. Miaji](https://github.com/nihalzp)). +* Улучшена производительность и поведение агрегатной функции `topK`. [#90091](https://github.com/ClickHouse/ClickHouse/pull/90091) ([Raúl Marín](https://github.com/Algunenano)). +* Улучшена производительность операций сравнения для типа `Decimal`. Устранена проблема [#28192](https://github.com/ClickHouse/ClickHouse/issues/28192). [#90153](https://github.com/ClickHouse/ClickHouse/pull/90153) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Добавлена поддержка отсечения партиций (partition pruning) для функций Apache Paimon, продолжение работы из [https://github.com/ClickHouse/ClickHouse/pull/84423](https://github.com/ClickHouse/ClickHouse/pull/84423). [#90253](https://github.com/ClickHouse/ClickHouse/pull/90253) ([JIaQi](https://github.com/JiaQiTang98)). +* Используются расширенные операции SIMD для логических функций с динамической диспетчеризацией. [#90432](https://github.com/ClickHouse/ClickHouse/pull/90432) ([Raúl Marín](https://github.com/Algunenano)). +* Улучшена производительность JIT-функции за счёт отказа от ненужной инициализации результирующего столбца нулями. [#90449](https://github.com/ClickHouse/ClickHouse/pull/90449) ([Raúl Marín](https://github.com/Algunenano)). +* Ускорена декомпрессия `T64` за счёт динамического диспетчинга. [#90610](https://github.com/ClickHouse/ClickHouse/pull/90610) ([Raúl Marín](https://github.com/Algunenano)). +* Оптимизирована inplace‑фильтрация в ридере MergeTree. Исправляет [#87119](https://github.com/ClickHouse/ClickHouse/issues/87119). [#90630](https://github.com/ClickHouse/ClickHouse/pull/90630) ([Xiaozhe Yu](https://github.com/wudidapaopao)). +* Добавлена дополнительная эвристика для уменьшения ширины выбранных вариантов слияния. Более узкие слияния приведут к повышению write amplification, но в то же время могут помочь избежать возникновения ошибок `TOO_MANY_PARTS`. [#91163](https://github.com/ClickHouse/ClickHouse/pull/91163) ([Mikhail Artemenko](https://github.com/Michicosun)). +* Повышена производительность запросов для таблиц S3, созданных с использованием glob-шаблона, за счёт проталкивания фильтра по полю `_path`, что позволяет избежать операций перечисления в S3. Это поведение управляется настройкой `s3_path_filter_limit`. [#91165](https://github.com/ClickHouse/ClickHouse/pull/91165) ([Eduard Karacharov](https://github.com/korowa)). +* Ускорено преобразование столбцов в bool в условиях WHERE за счет динамической диспетчеризации. [#91203](https://github.com/ClickHouse/ClickHouse/pull/91203) ([Raúl Marín](https://github.com/Algunenano)). +* Ускорена сортировка отдельного числового блока за счёт динамического диспетчирования. [#91213](https://github.com/ClickHouse/ClickHouse/pull/91213) ([Raúl Marín](https://github.com/Algunenano)). +* Добавлена оптимизация для удаления неиспользуемых столбцов в планах выполнения запросов. Устраняет проблему [#75152](https://github.com/ClickHouse/ClickHouse/issues/75152). [#76487](https://github.com/ClickHouse/ClickHouse/pull/76487) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Значение по умолчанию настройки `query_plan_optimize_join_order_limit` изменено на `10`. [#89312](https://github.com/ClickHouse/ClickHouse/pull/89312) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Теперь по умолчанию включена настройка `allow_statistics_optimize`, поэтому оптимизатор операций JOIN использует статистику по столбцам. [#89332](https://github.com/ClickHouse/ClickHouse/pull/89332) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена поддержка runtime-фильтров для `ANTI` JOIN. Также выполнен рефакторинг реализации runtime-фильтров для снижения конкуренции за блокировки. [#89710](https://github.com/ClickHouse/ClickHouse/pull/89710) ([Dmitry Novik](https://github.com/novikd)). +* Снижает объём потребляемой памяти во время слияний в таблице `system.metric_log` (включён по умолчанию) за счёт установки значений `min_bytes_for_wide_part` и `vertical_merge_algorithm_min_bytes_to_activate` равными 128 МБ. [#89811](https://github.com/ClickHouse/ClickHouse/pull/89811) ([filimonov](https://github.com/filimonov)). +* Добавлена поддержка использования инвертированного индекса в PREWHERE. Исправляет [#89975](https://github.com/ClickHouse/ClickHouse/issues/89975). [#89977](https://github.com/ClickHouse/ClickHouse/pull/89977) ([Peng Jian](https://github.com/fastio)). +* Не добавляйте провайдеры S3 при использовании GCP OAuth — это повышает производительность на GCS. [#91706](https://github.com/ClickHouse/ClickHouse/pull/91706) ([Antonio Andelic](https://github.com/antonio2368)). + +#### Улучшения {#improvement} + +* Добавлена новая настройка `apply_row_policy_after_final`, которая позволяет запросу применять ROW POLICY только после FINAL, что делает поведение движка таблиц ReplacingMergeTree с ROW POLICY более корректным. Исправляет [#90986](https://github.com/ClickHouse/ClickHouse/issues/90986). [#91065](https://github.com/ClickHouse/ClickHouse/pull/91065) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* В формате `Pretty` именованные кортежи теперь отображаются в виде Pretty JSON. Это закрывает [#65022](https://github.com/ClickHouse/ClickHouse/issues/65022). [#91779](https://github.com/ClickHouse/ClickHouse/pull/91779) ([Mostafa Mohamed Salah](https://github.com/Sasao4o)). +* Добавлены поля `last_error_time`, `last_error_message`, `last_error_query_id` и `last_error_trace` в таблицу `system.error_log`. [#89879](https://github.com/ClickHouse/ClickHouse/pull/89879) ([Narasimha Pakeer](https://github.com/npakeer)). +* CLI-клиент теперь может скрывать сообщение «Версия сервера ClickHouse старше, чем версия клиента ClickHouse. Это может означать, что сервер устарел и может быть обновлён», указав `--no-server-client-version-message` или значение `false`. [#87784](https://github.com/ClickHouse/ClickHouse/pull/87784) ([Larry Snizek](https://github.com/larry-cdn77)). +* Добавлено сообщение об ошибке, указывающее, что часть была удалена как дубликат. [#80264](https://github.com/ClickHouse/ClickHouse/pull/80264) ([Aleksandr Musorin](https://github.com/AVMusorin)). +* Добавлены столбцы `dependencies` и `missing_dependencies` в `system.kafka_consumers` для отображения целевых таблиц materialized view для таблиц Kafka. Добавлен счётчик `KafkaMVNotReady`. [#85346](https://github.com/ClickHouse/ClickHouse/pull/85346) ([Ilya Golshtein](https://github.com/ilejn)). +* Теперь выражения по умолчанию в таблицах корректно работают при вставке данных через протоколы remote и native. Исправляет проблему [#87972](https://github.com/ClickHouse/ClickHouse/issues/87972). [#88540](https://github.com/ClickHouse/ClickHouse/pull/88540) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* Добавлена возможность отключать асинхронный сбор метрик `PSI_*_*`. [#88557](https://github.com/ClickHouse/ClickHouse/pull/88557) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* Добавлена поддержка разреженной сериализации столбцов типа `Nullable`. Это продолжение [#44539](https://github.com/ClickHouse/ClickHouse/issues/44539). [#88999](https://github.com/ClickHouse/ClickHouse/pull/88999) ([Amos Bird](https://github.com/amosbird)). +* Диск `plain-rewritable` имеет собственную реализацию и структуру размещения. Не нужно строить его поверх обычных дисков `plain`. [#89807](https://github.com/ClickHouse/ClickHouse/pull/89807) ([Mikhail Artemenko](https://github.com/Michicosun)). +* Ни одно HTTP-исключение не должно содержать финальный нулевой фрагмент. [#89998](https://github.com/ClickHouse/ClickHouse/pull/89998) ([Kaviraj Kanagaraj](https://github.com/kavirajk)). +* Добавлена проверка на стороне keeper-сервера при установлении соединения, чтобы отклонять клиентов, когда `last_zxid_seen (предоставлено клиентом) > last_processed_zxid`. Это предотвращает получение устаревших результатов чтения, когда клиенты переподключаются к отстающим репликам. [#90016](https://github.com/ClickHouse/ClickHouse/pull/90016) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Добавлен `kafka_consumer_reschedule_ms` в качестве настраиваемого параметра движка таблиц `Kafka` для регулирования времени ожидания потребителями новых данных. Решает [#89204](https://github.com/ClickHouse/ClickHouse/issues/89204). [#90112](https://github.com/ClickHouse/ClickHouse/pull/90112) ([Jeremy Aguilon](https://github.com/JerAguilon)). +* Добавлен новый столбец `parts_in_progress_names` в таблицу `system.mutations` для улучшения диагностики. [#90155](https://github.com/ClickHouse/ClickHouse/pull/90155) ([Shaohua Wang](https://github.com/tiandiwonder)). +* Повторять запрос при сетевых ошибках во время разбора XML‑ответа библиотекой S3. [#90216](https://github.com/ClickHouse/ClickHouse/pull/90216) ([Sema Checherinda](https://github.com/CheSema)). +* Мы хотим запускать keepers в отдельных серверных процессах и, чтобы не перегружать Prometheus в крупных регионах, должны по-прежнему экспортировать только метрики, относящиеся к keepers. [#90244](https://github.com/ClickHouse/ClickHouse/pull/90244) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Добавлена поддержка загрузки конфигурации клиента ClickHouse из путей XDG Base Directory (например, `~/.config/clickhouse/config.xml`) помимо устаревшего расположения `~/.clickhouse-client/`. Решает проблему [#89882](https://github.com/ClickHouse/ClickHouse/issues/89882). [#90306](https://github.com/ClickHouse/ClickHouse/pull/90306) ([Wujun Jiang](https://github.com/rainac1)). +* Добавлено ограничение на размер в байтах пакета запросов append в Keeper. Лимит управляется параметром `keeper_server.coordination_settings.max_requests_append_bytes_size`. [#90342](https://github.com/ClickHouse/ClickHouse/pull/90342) ([Antonio Andelic](https://github.com/antonio2368)). +* Добавлена настройка для Iceberg, предотвращающая создание чрезмерного количества партиций. [#90365](https://github.com/ClickHouse/ClickHouse/pull/90365) ([Konstantин Vedernikov](https://github.com/scanhex12)). +* Обновлены предупреждающие сообщения при приближении к ограничениям guardrails: теперь отображаются текущее значение и значение, при достижении которого будет выброшено исключение. [#90438](https://github.com/ClickHouse/ClickHouse/pull/90438) ([Nikita Fomichev](https://github.com/fm4v)). +* Потоковая выдача фрагментов в таблице `system.filesystem_cache` вместо формирования одного фрагмента со всем состоянием кэша. Чтение состояния кэша файловой системы может занимать много времени при большом объеме кэша и потреблять много памяти, поэтому потоковая выдача незаменима для крупных развертываний. [#90508](https://github.com/ClickHouse/ClickHouse/pull/90508) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлено некорректное сообщение об исключении при Hive-партиционировании: в нём отсутствовал пробел. [#90685](https://github.com/ClickHouse/ClickHouse/pull/90685) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Записи в кэше индекса векторного сходства теперь удаляются при удалении частей таблицы или их замене более новыми частями. Ранее они очищались только отложенно, посредством механизма вытеснения из кэша. [#90750](https://github.com/ClickHouse/ClickHouse/pull/90750) ([Shankar Iyer](https://github.com/shankar-iyer)). +* Обновлён chdig (консольный диагностический инструмент для ClickHouse) до версии [v25.12.1](https://github.com/azat/chdig/releases/tag/v25.12.1). [#91394](https://github.com/ClickHouse/ClickHouse/pull/91394) ([Azat Khuzhin](https://github.com/azat)). +* Теперь предварительно подписанные URL работают с S3. Закрыта задача [#65032](https://github.com/ClickHouse/ClickHouse/issues/65032). [#90827](https://github.com/ClickHouse/ClickHouse/pull/90827) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Текстовый индекс теперь работает с таблицами `ReplacingMergeTree`. [#90908](https://github.com/ClickHouse/ClickHouse/pull/90908) ([Elmi Ahmadov](https://github.com/ahmadov)). +* Избегайте раскрытия версии сервера ClickHouse в HTTP-ответах об ошибках, возвращаемых до аутентификации. [#91003](https://github.com/ClickHouse/ClickHouse/pull/91003) ([filimonov](https://github.com/filimonov)). +* Теперь исключение `HTTP_CONNECTION_LIMIT_REACHED` будет выбрасываться, когда будет достигнут `hard_limit` для подключений HTTP‑клиентов. Для подключений к диску значение этого параметра установлено в `20000`. [#91016](https://github.com/ClickHouse/ClickHouse/pull/91016) ([Sema Checherinda](https://github.com/CheSema)). +* Добавлены таблицы `system.background_schedule_pool{,_log}` для улучшения интроспекции фоновых задач. [#91157](https://github.com/ClickHouse/ClickHouse/pull/91157) ([Azat Khuzhin](https://github.com/azat)). +* Теперь вы можете быстро комментировать или раскомментировать выделенные строки в редакторе запросов веб-интерфейса с помощью `Ctrl+/` (или `Cmd+/` на Mac), что упрощает временное отключение частей запроса при тестировании. [#91160](https://github.com/ClickHouse/ClickHouse/pull/91160) ([Samuel K.](https://github.com/OpenGLShaders)). +* Добавлена таблица `system.completions` в список всегда доступных таблиц. [#91166](https://github.com/ClickHouse/ClickHouse/pull/91166) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Добавлены события профилирования `FailedInitialQuery` и `FailedInitialSelectQuery`. [#91172](https://github.com/ClickHouse/ClickHouse/pull/91172) ([RinChanNOW](https://github.com/RinChanNOWWW)). +* Исправлено потенциальное истощение пула потоков при чтении образцов столбцов для JSON-столбцов с большим числом подстолбцов за счёт учёта настройки `merge_tree_use_prefixes_deserialization_thread_pool` вместо безусловного использования пула потоков. [#91208](https://github.com/ClickHouse/ClickHouse/pull/91208) ([Raufs Dunamalijevs](https://github.com/rienath)). +* Добавлена поддержка типа `JSON` в `tupleElement`. Закрывает [#81630](https://github.com/ClickHouse/ClickHouse/issues/81630). [#91327](https://github.com/ClickHouse/ClickHouse/pull/91327) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлены ложные ошибки ограничения памяти при включённом кэше страниц в пространстве пользователя. [#91361](https://github.com/ClickHouse/ClickHouse/pull/91361) ([Michael Kolupaev](https://github.com/al13n321)). +* Токенизатор Ngrams теперь можно создавать с ngram_length = 1. [#91529](https://github.com/ClickHouse/ClickHouse/pull/91529) ([George Larionov](https://github.com/george-larionov)). +* Добавлена поддержка настроек хранения внутри функций в `INSERT INTO FUNCTION`, аналогично уже имеющейся поддержке для `SELECT`. Закрывает [#89386](https://github.com/ClickHouse/ClickHouse/issues/89386). [#91707](https://github.com/ClickHouse/ClickHouse/pull/91707) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Выбрасывать исключение «not implemented» при выполнении запроса TRUNCATE для озёр данных вместо того, чтобы молча ничего не делать. Исправляет [#86604](https://github.com/ClickHouse/ClickHouse/issues/86604). [#91713](https://github.com/ClickHouse/ClickHouse/pull/91713) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Установлен максимальный размер сообщения для ридера Parquet v3, чтобы избежать ошибки `DB::Exception: apache::thrift::transport::TTransportException: MaxMessageSize reached`. [#91737](https://github.com/ClickHouse/ClickHouse/pull/91737) ([Arthur Passos](https://github.com/arthurpassos)). +* Добавлена настройка `insert_select_deduplicate`, которая делает более понятным, как обрабатывается дедупликация вставок при `INSERT SELECT`. В общем случае выполнять дедупликацию для таких запросов невозможно, но если таблица не изменяется и результат отсортирован, то дедупликацию можно выполнить при повторной попытке. Мы не можем отследить, что источник остался тем же самым, но можем проверить, что результат запроса `SELECT` отсортирован. На практике оказалось, что в общем случае это проверить очень сложно, но простой случай с `ORDER BY ALL` обрабатывается легко. В данный момент текущая логика фактически работает некорректно: мы пытаемся выполнять дедупликацию, но в большинстве случаев просто не видим дубликатов между блоками, потому что `SELECT` возвращает разные данные. [#91830](https://github.com/ClickHouse/ClickHouse/pull/91830) ([Sema Checherinda](https://github.com/CheSema)). +* Теперь допускается неявное приведение типов при преобразовании `Array` в `QBit`. Массивы целых и вещественных чисел теперь можно вставлять напрямую в столбцы `QBit` без явного приведения типов. [#91846](https://github.com/ClickHouse/ClickHouse/pull/91846) ([Raufs Dunamalijevs](https://github.com/rienath)). +* Добавлено ограничение на размер сообщений `CapnProto`. Его можно изменить с помощью `format_capn_proto_max_message_size`. [#91888](https://github.com/ClickHouse/ClickHouse/pull/91888) ([Antonio Andelic](https://github.com/antonio2368)). +* Уточнены метрики кэша меток, чтобы отслеживать только запросы (после [#83415](https://github.com/ClickHouse/ClickHouse/issues/83415), когда `MarkCacheHits`/`MarkCacheMisses` также начали учитываться при слияниях, этот PR возвращает прежнее поведение). [#91910](https://github.com/ClickHouse/ClickHouse/pull/91910) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена проблема, из-за которой `client_info.interface` устанавливался в значение `TCP` для локальных подключений. [#91933](https://github.com/ClickHouse/ClickHouse/pull/91933) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Параметр `refresh_certificates_task_interval` в конфигурации клиента ACME теперь должен задаваться в секундах. [#92211](https://github.com/ClickHouse/ClickHouse/pull/92211) ([Konstantин Bogdanов](https://github.com/thevar1able)). +* Логировать события частей в `system.part_log` для таблиц `system.*_log`. [#92217](https://github.com/ClickHouse/ClickHouse/pull/92217) ([Azat Khuzhin](https://github.com/azat)). + +#### Исправление ошибки (ошибка, проявляющаяся для пользователя, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* Исправлены некоторые ошибки в `PREWHERE`, связанные с супертипами для типов данных `Time` и `Time64`. Устраняет [#84544](https://github.com/ClickHouse/ClickHouse/issues/84544). [#84715](https://github.com/ClickHouse/ClickHouse/pull/84715) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Перед использованием `DNSResolver` теперь инициализируется, чтобы учитывались пользовательские настройки. Исправлена проблема [#76296](https://github.com/ClickHouse/ClickHouse/issues/76296). [#81302](https://github.com/ClickHouse/ClickHouse/pull/81302) ([Zhigao Hong](https://github.com/zghong)). +* Исправлено чтение подстолбцов из столбца, имя которого содержит точку, в некоторых случаях. Устраняет [#81261](https://github.com/ClickHouse/ClickHouse/issues/81261), [#82058](https://github.com/ClickHouse/ClickHouse/issues/82058), [#88169](https://github.com/ClickHouse/ClickHouse/issues/88169). [#87205](https://github.com/ClickHouse/ClickHouse/pull/87205) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлен сбой движка GenerateRandom при использовании нелитеральных параметров: теперь вместо LOGICAL_ERROR возвращается BAD_ARGUMENTS с понятным сообщением. [#88157](https://github.com/ClickHouse/ClickHouse/pull/88157) ([Shafi Ahmed](https://github.com/ita004)). +* Исправлено удаление неиспользуемых столбцов проекций при использовании `UNION`. Устранена проблема [#88180](https://github.com/ClickHouse/ClickHouse/issues/88180). [#88350](https://github.com/ClickHouse/ClickHouse/pull/88350) ([Sema Checherinda](https://github.com/CheSema)). +* Исправлено некорректное разбиение по сегментам при оптимизации `JOIN`, когда первичный ключ отсортирован по убыванию. Устраняет [#88512](https://github.com/ClickHouse/ClickHouse/issues/88512). [#88794](https://github.com/ClickHouse/ClickHouse/pull/88794) ([Amos Bird](https://github.com/amosbird)). +* Повторно включена настройка `s3queue_keeper_fault_injection_probablility`, исправлены ошибки. [#88800](https://github.com/ClickHouse/ClickHouse/pull/88800) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлены несколько ошибок, вызванных преждевременным удалением столбцов по TTL. Исправляет [#88002](https://github.com/ClickHouse/ClickHouse/issues/88002). [#88860](https://github.com/ClickHouse/ClickHouse/pull/88860) ([Amos Bird](https://github.com/amosbird)). +* Выбрасывать исключение, если параметр temporary_files_buffer_size установлен в 0. Устраняет [#88900](https://github.com/ClickHouse/ClickHouse/issues/88900). [#88917](https://github.com/ClickHouse/ClickHouse/pull/88917) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Исправлена ошибка `Bad get`, возникавшая во время анализа индекса `Set`, если предикат содержал константу `NULL`. Исправляет [#84856](https://github.com/ClickHouse/ClickHouse/issues/84856) и [#82974](https://github.com/ClickHouse/ClickHouse/issues/82974). [#89429](https://github.com/ClickHouse/ClickHouse/pull/89429) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлена ошибка `Cannot add subcolumn X.Y: column with this name already exists`. Устраняет проблему [#89599](https://github.com/ClickHouse/ClickHouse/issues/89599). [#89602](https://github.com/ClickHouse/ClickHouse/pull/89602) ([Azat Khuzhin](https://github.com/azat)). +* Исправлены ошибки в функциях `theilsU` и `contingency`, которые приводили к некорректным результатам. [#89760](https://github.com/ClickHouse/ClickHouse/pull/89760) ([Nihal Z. Miaji](https://github.com/nihalzp)). +* Устранены проблемы со стабильностью alias: скорректирован StrictnessLevel с SharedDatabaseCatalog, запрещено использование в качестве цели другого alias и реализованы дополнительные интерфейсы (getSerializationHints, supportsReplication, getStoragePolicy, totalBytesUncompressed, lifetimeRows, lifetimeBytes, storesDataOnDisk, tryLockForShare, lockForShare). Устраняет [#89106](https://github.com/ClickHouse/ClickHouse/issues/89106). [#89812](https://github.com/ClickHouse/ClickHouse/pull/89812) ([Kai Zhu](https://github.com/nauu)). +* Исправлен возможный сбой во время удалённого запроса с `ARRAY JOIN` внутри `IN` при включённой настройке `enable_lazy_columns_replication`. Исправляет проблему [#90361](https://github.com/ClickHouse/ClickHouse/issues/90361). [#89997](https://github.com/ClickHouse/ClickHouse/pull/89997) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена возможная логическая ошибка при использовании `analyzer_compatibility_join_using_top_level_identifier` с несколькими соединениями. [#90010](https://github.com/ClickHouse/ClickHouse/pull/90010) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Исправлено некорректное выведение значений DateTime64 из значений типа String в текстовых форматах в некоторых случаях. Устраняет [#89368](https://github.com/ClickHouse/ClickHouse/issues/89368). [#90013](https://github.com/ClickHouse/ClickHouse/pull/90013) ([Pavel Kruglov](https://github.com/Avogar)). +* Проверять размеры при десериализации данных из агрегатных состояний и других источников. [#90031](https://github.com/ClickHouse/ClickHouse/pull/90031) ([Raúl Marín](https://github.com/Algunenano)). +* Разделены диапазоны частей по характеристикам томов, чтобы включить TTL-слияния с удалением (drop) для холодных томов. После этого патча части с максимальным TTL < now будут удаляться из холодного хранилища. Алгоритм будет планировать только **удаление одиночных частей**. [#90059](https://github.com/ClickHouse/ClickHouse/pull/90059) ([Mikhail Artemenko](https://github.com/Michicosun)). +* В случае, если таблица Kafka была создана с настройкой `kafka_handle_error_mode = 'dead_letter_queue'`, и таблица `system.dead_letter_queue` не была настроена, сервер мог аварийно завершить работу. Это поведение исправлено. Исправляет [#87573](https://github.com/ClickHouse/ClickHouse/issues/87573). [#90064](https://github.com/ClickHouse/ClickHouse/pull/90064) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Исправлена возможная ошибка `Column with Array type is not represented by ColumnArray column: Replicated` при вставке с использованием `ARRAY JOIN` и включённым параметром `enable_lazy_columns_replication`. [#90066](https://github.com/ClickHouse/ClickHouse/pull/90066) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена ошибка, приводившая к аварийному завершению при корректном завершении работы сервера из‑за неверного порядка уничтожения объектов. Исправляет [#82420](https://github.com/ClickHouse/ClickHouse/issues/82420). [#90076](https://github.com/ClickHouse/ClickHouse/pull/90076) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Исправлена логическая ошибка и ошибка в вычислении по модулю в системной таблице `numbers` при использовании большого размера шага. Закрывает [#83398](https://github.com/ClickHouse/ClickHouse/issues/83398). [#90123](https://github.com/ClickHouse/ClickHouse/pull/90123) ([Nihал Z. Miaji](https://github.com/nihalzp)). +* Исправлена проблема с записью в формат Parquet, при которой не сохранялся исходный порядок при использовании однопоточной записи с нативным writer. Частично откатывает изменения из [https://github.com/ClickHouse/ClickHouse/pull/64424/files](https://github.com/ClickHouse/ClickHouse/pull/64424/files). [#90126](https://github.com/ClickHouse/ClickHouse/pull/90126) ([Arthur Passos](https://github.com/arthurpassos)). +* Не применять оптимизацию константного узла к выражению LIMIT/OFFSET. Исправляет [#89607](https://github.com/ClickHouse/ClickHouse/issues/89607). [#90156](https://github.com/ClickHouse/ClickHouse/pull/90156) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Исправлена несовместимость с hive‑партиционированием, мешавшая плавному обновлению до 25.8 (устранена ошибка `All hive partitioning columns must be present in the schema` при обновлении). [#90202](https://github.com/ClickHouse/ClickHouse/pull/90202) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлено исключение JSON в таблице Iceberg со столбцом типа timestamp при использовании каталога Glue. Исправляет [#90210](https://github.com/ClickHouse/ClickHouse/issues/90210). [#90209](https://github.com/ClickHouse/ClickHouse/pull/90209) ([Alsu Giliazova](https://github.com/alsugiliazova)). +* Исправлено несоответствие количества строк в MergeTreeReaderIndex, возникавшее, когда в части было меньше строк, чем index_granularity. Решает [#89691](https://github.com/ClickHouse/ClickHouse/issues/89691). [#90254](https://github.com/ClickHouse/ClickHouse/pull/90254) ([Peng Jian](https://github.com/fastio)). +* Исправлен бесконечный `WITH FILL`-запрос с `nan`/`inf`. Исправляет [#69261](https://github.com/ClickHouse/ClickHouse/issues/69261). [#90255](https://github.com/ClickHouse/ClickHouse/pull/90255) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Исправлена ошибка 'column not found', возникающая при `query_plan_use_logical_join_step=0` и наличии остаточного условия в JOIN ON. Решает [#88635](https://github.com/ClickHouse/ClickHouse/issues/88635). [#90279](https://github.com/ClickHouse/ClickHouse/pull/90279) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Исправлены некоторые запросы при оптимизации агрегированных проекций. [#90288](https://github.com/ClickHouse/ClickHouse/pull/90288) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Исправлена ошибка при чтении подстолбцов JSON в компактных частях, которая могла приводить к ошибке `CANNOT_READ_ALL_DATA`. Исправляет [#90264](https://github.com/ClickHouse/ClickHouse/issues/90264). [#90302](https://github.com/ClickHouse/ClickHouse/pull/90302) ([Pavel Kruglov](https://github.com/Avogar)). +* Теперь ClickHouse не будет использовать оптимизацию чтения по порядку для Iceberg, если порядок сортировки не указан в файлах манифеста или отличается от default_sort_order таблицы. Исправляет [#89178](https://github.com/ClickHouse/ClickHouse/issues/89178). [#90304](https://github.com/ClickHouse/ClickHouse/pull/90304) ([alesapin](https://github.com/alesapin)). +* Теперь типы Time и Time64 должны корректно учитывать часовые пояса при преобразовании из DateTime и DateTime64 (время должно отображаться в том же часовом поясе, что и для пользователя при выводе в формате DateTime[64]). Закрывает [#89896](https://github.com/ClickHouse/ClickHouse/issues/89896). [#90310](https://github.com/ClickHouse/ClickHouse/pull/90310) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Исправлена ошибка, при которой `SELECT CAST(CAST(now(), 'Time'), 'Time64')` возвращал некорректный результат. Закрывает [#88349](https://github.com/ClickHouse/ClickHouse/issues/88349). [#90324](https://github.com/ClickHouse/ClickHouse/pull/90324) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Исправлено падение при переполнении целого значения в randomStringUTF8. [#90326](https://github.com/ClickHouse/ClickHouse/pull/90326) ([Michael Kolupaev](https://github.com/al13n321)). +* Исправлены обновления обнаружения кластеров в многокластерных конфигурациях с `multicluster_root_path`, чтобы избежать задержек и пропущенных обновлений ZooKeeper. [#90341](https://github.com/ClickHouse/ClickHouse/pull/90341) ([RinChanNOW](https://github.com/RinChanNOWWW)). +* Исправлена возможная логическая ошибка в `prewhere` при обращении к несуществующему JSON-пути при `index_granularity_bytes=0`. Устраняет [#86924](https://github.com/ClickHouse/ClickHouse/issues/86924). [#90375](https://github.com/ClickHouse/ClickHouse/pull/90375) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена ошибка в `L2DistanceTransposed`, приводившая к сбоям при выходе аргумента точности за допустимый диапазон. Закрывает [#90401](https://github.com/ClickHouse/ClickHouse/issues/90401). [#90405](https://github.com/ClickHouse/ClickHouse/pull/90405) ([Raufs Dunamalijevs](https://github.com/rienath)). +* Исправлена возможная логическая ошибка в `arrayUnion` с аргументом `Array(Dynamic)`. Устраняет [#90270](https://github.com/ClickHouse/ClickHouse/issues/90270). [#90409](https://github.com/ClickHouse/ClickHouse/pull/90409) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена потенциальная логическая ошибка при переименовании и изменении одного и того же столбца Nested в одном ALTER-запросе. Устранена проблема [#90406](https://github.com/ClickHouse/ClickHouse/issues/90406). [#90412](https://github.com/ClickHouse/ClickHouse/pull/90412) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлен разбор значений типов JSON/Dynamic/Variant из HTTP‑параметров. Устраняет проблему [#88925](https://github.com/ClickHouse/ClickHouse/issues/88925). [#90430](https://github.com/ClickHouse/ClickHouse/pull/90430) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена гонка (race condition) в Hive-партиционировании, при которой статический `KeyValuePairExtractor` мог приводить к повреждению данных или сбоям при одновременном чтении файлов. [#90474](https://github.com/ClickHouse/ClickHouse/pull/90474) ([Paresh Joshi](https://github.com/pareshjoshij)). +* Исправлены некорректные вычисления расстояний в `L2DistanceTransposed` при использовании опорных векторов-массивов (которые по умолчанию имеют тип `Array(Float64)`) со столбцами `QBit` с элементами типов, отличных от `Float64` (`Float32`, `BFloat16`). Функция теперь автоматически приводит опорный вектор к типу элементов столбца `QBit`. Исправляет [#89976](https://github.com/ClickHouse/ClickHouse/issues/89976). [#90485](https://github.com/ClickHouse/ClickHouse/pull/90485) ([Raufs Dunamalijevs](https://github.com/rienath)). +* Исправлена ошибка, из-за которой функция `toDateTimeOrNull` при отрицательном аргументе возвращала NULL. [#90490](https://github.com/ClickHouse/ClickHouse/pull/90490) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Исправлена потенциальная логическая ошибка при выводе `LowCardinality(Bool/Date32)` в формате `Arrow`. Устраняет [#83883](https://github.com/ClickHouse/ClickHouse/issues/83883). [#90505](https://github.com/ClickHouse/ClickHouse/pull/90505) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлены функции разбора IPv4 (например, `IPv4StringToNumOrDefault`), которые для некоторых некорректных входных данных возвращали произвольные значения. Устраняет [#90544](https://github.com/ClickHouse/ClickHouse/issues/90544). Устраняет [#87583](https://github.com/ClickHouse/ClickHouse/issues/87583). [#90545](https://github.com/ClickHouse/ClickHouse/pull/90545) ([Michael Kolupaev](https://github.com/al13n321)). +* Повторная попытка выполнения markReplicasActive при сбое разрешения адреса во время локальной проверки хоста: выводить предупреждающую запись в журнал, если возникает исключение во время проверки локального хоста в DDLTask. В DDLWorker::markReplicasActive выбрасывать исключение для повторной попытки, если локальный хост не найден, но в кластерах есть идентификаторы хостов. [#90556](https://github.com/ClickHouse/ClickHouse/pull/90556) ([Tuan Pham Anh](https://github.com/tuanpach)). +* Исправлена логическая ошибка, вызванная редким граничным случаем в функции `equals`. Закрывает [#88142](https://github.com/ClickHouse/ClickHouse/issues/88142). [#90557](https://github.com/ClickHouse/ClickHouse/pull/90557) ([Nihал Z. Miaji](https://github.com/nihalzp)). +* Должно исправить сбои ThreadSanitizer в `test_ssh/test.py::test_paramiko_password`. [#90612](https://github.com/ClickHouse/ClickHouse/pull/90612) ([Govind R Nair](https://github.com/Revertionist)). +* Исправлена логическая ошибка в функции `concatWithSeparator` при использовании константного столбца нестрокового типа. Закрывает [#90596](https://github.com/ClickHouse/ClickHouse/issues/90596). [#90655](https://github.com/ClickHouse/ClickHouse/pull/90655) ([Nihал Z. Miaji](https://github.com/nihalzp)). +* Исправлено форматирование для `INTO OUTFILE`, что решает [#90207](https://github.com/ClickHouse/ClickHouse/issues/90207). [#90656](https://github.com/ClickHouse/ClickHouse/pull/90656) ([Azat Khuzhin](https://github.com/azat)). +* Исправлено потенциальное аварийное завершение при выполнении мутаций с подзапросами и `allow_statistics_optimize=1`. Устраняет [#90626](https://github.com/ClickHouse/ClickHouse/issues/90626). [#90664](https://github.com/ClickHouse/ClickHouse/pull/90664) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена валидация в анализаторе для `LIMIT BY` с `GROUP BY`, чтобы выдавать корректную ошибку `NOT_AN_AGGREGATE` вместо `NOT_FOUND_COLUMN_IN_BLOCK`, когда `LIMIT BY` использует столбцы, не входящие в `GROUP BY`. Закрывает [#89713](https://github.com/ClickHouse/ClickHouse/issues/89713). [#90665](https://github.com/ClickHouse/ClickHouse/pull/90665) ([xiaohuanlin](https://github.com/xiaohuanlin)). +* Исправлены ошибки приведения типов при использовании столбцов типа `LowCardinality` в ключах партиционирования. Закрыта задача [#89412](https://github.com/ClickHouse/ClickHouse/issues/89412). [#90666](https://github.com/ClickHouse/ClickHouse/pull/90666) ([xiaohuanlin](https://github.com/xiaohuanlin)). +* Исправлена проблема, из-за которой запросы с предикатами фильтрации, содержащими константы, полученные свёрткой недетерминированных функций (например, `shardNum()`), могли некорректно использовать кэш условий запроса. [#90692](https://github.com/ClickHouse/ClickHouse/pull/90692) ([Eduard Karacharov](https://github.com/korowa)). +* Исправлена ошибка сегментации при выполнении запроса с функцией EXISTS в секции JOIN ON. Теперь такой запрос просто возвращает ошибку `INVALID_JOIN_ON_EXPRESSION`. Закрывает [#90698](https://github.com/ClickHouse/ClickHouse/issues/90698). [#90719](https://github.com/ClickHouse/ClickHouse/pull/90719) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Исправлена логическая ошибка: 'Inconsistent AST formatting' для AccessRightsElement при использовании базы данных по умолчанию без какой-либо таблицы. [#90742](https://github.com/ClickHouse/ClickHouse/pull/90742) ([Pablo Marcos](https://github.com/pamarcos)). +* Исправлена проверка прав доступа для запросов `ALTER UPDATE` при использовании табличной функции `remote` с `localhost` в качестве целевого хоста. [#90761](https://github.com/ClickHouse/ClickHouse/pull/90761) ([pufit](https://github.com/pufit)). +* Исправлено: сокрытие секретов в именованных коллекциях теперь зависит от `display_secrets_in_show_and_select` и `format_display_secrets_in_show_and_select`. [#90765](https://github.com/ClickHouse/ClickHouse/pull/90765) ([Pablo Marcos](https://github.com/pamarcos)). +* Отключена настройка `enable_shared_storage_snapshot_in_query`, так как она приводила к утечкам памяти. [#90770](https://github.com/ClickHouse/ClickHouse/pull/90770) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена проблема с дублированием данных в RIGHT JOIN с distributed таблицей при включённом режиме параллельных реплик. [#90806](https://github.com/ClickHouse/ClickHouse/pull/90806) ([zoomxi](https://github.com/zoomxi)). +* Исправлено возможное несогласованное состояние разделяемых данных и динамических путей в JSON, которые могли приводить к логическим ошибкам и неожиданным результатам. [#90816](https://github.com/ClickHouse/ClickHouse/pull/90816) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена работа оператора ALTER ... MODIFY QUERY с dictGet() и именем словаря в CSE для SharedCatalog (функция, доступная только в Cloud). [#90860](https://github.com/ClickHouse/ClickHouse/pull/90860) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена совместимость сериализации в памяти состояния агрегации для String. Различная сериализация могла приводить к дублирующимся результатам, если агрегирующий запрос выполнялся на экземплярах с разными версиями. Новую сериализацию можно включить с помощью настройки `serialize_string_in_memory_with_zero_byte`. [#90880](https://github.com/ClickHouse/ClickHouse/pull/90880) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлен фоновый сброс данных в движке Buffer при частых INSERT. [#90892](https://github.com/ClickHouse/ClickHouse/pull/90892) ([Azat Khuzhin](https://github.com/azat)). +* Родительский каталог contrib/ больше не перечисляется в system.licenses. [#90901](https://github.com/ClickHouse/ClickHouse/pull/90901) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлено высокое потребление памяти при чтении столбцов типов JSON/Dynamic/Variant. [#90907](https://github.com/ClickHouse/ClickHouse/pull/90907) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлено выделение буфера для функции base58Decode. [#90909](https://github.com/ClickHouse/ClickHouse/pull/90909) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлена возможная ошибка логики при получении очередного запроса на чтение от реплики после того, как был отправлен ответ с флагом `finish=true`. Она могла возникать из‑за логической гонки в `MergeTreeReadPoolParallelReplicas`, хотя вероятность её проявления была крайне мала. [#90921](https://github.com/ClickHouse/ClickHouse/pull/90921) ([Nikita Taranov](https://github.com/nickitat)). +* Исправлена проверка прав, выданных с подстановочными символами, при частичном отзыве. Добавлено больше тестов. [#90922](https://github.com/ClickHouse/ClickHouse/pull/90922) ([pufit](https://github.com/pufit)). +* Исправлена агрегация в `SummingMergeTree` для столбцов `Nested` с типом `LowCardinality`. [#90927](https://github.com/ClickHouse/ClickHouse/pull/90927) ([Ivan Babrou](https://github.com/bobrik)). +* Исправлена обработка глобальных привилегий при отзыве с использованием подстановочных символов. Исправлена проблема, из‑за которой отзыв привилегии по шаблону мог случайно приводить к отзыву некоторых глобальных привилегий, например `CREATE USER`. [#90928](https://github.com/ClickHouse/ClickHouse/pull/90928) ([pufit](https://github.com/pufit)). +* Исправлен возможный бесконечный цикл при получении списка BLOB-объектов в Azure. [#90947](https://github.com/ClickHouse/ClickHouse/pull/90947) ([Julia Kartseva](https://github.com/jkartseva)). +* Исправлены чрезмерные сбросы Buffer (они нагружали CPU и создавали огромное количество логов). [#91000](https://github.com/ClickHouse/ClickHouse/pull/91000) ([Azat Khuzhin](https://github.com/azat)). +* ... Запретить установку adaptive_write_buffer_initial_size в 0. [#91001](https://github.com/ClickHouse/ClickHouse/pull/91001) ([Pedro Ferreira](https://github.com/PedroTadim)). +* Исправлена ошибка в JSON, возникавшая, когда путь мог одновременно находиться и в shared data, и в dynamic paths при чтении подобъекта в Compact-частях с отключённым `write_marks_for_substreams_in_compact_parts`. [#91014](https://github.com/ClickHouse/ClickHouse/pull/91014) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлено исключение std::out_of_range в CTE при использовании dictGet без аргументов. Закрывает [#91027](https://github.com/ClickHouse/ClickHouse/issues/91027). [#91022](https://github.com/ClickHouse/ClickHouse/pull/91022) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлено чтение динамических подстолбцов из материализованных столбцов при выполнении мутаций. Закрывает [#90653](https://github.com/ClickHouse/ClickHouse/issues/90653). [#91040](https://github.com/ClickHouse/ClickHouse/pull/91040) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена проблема, из-за которой функция `arrayFilter` не работала при использовании пустого массива вместе с функцией `isNull`. Закрывает [#73849](https://github.com/ClickHouse/ClickHouse/issues/73849). [#91105](https://github.com/ClickHouse/ClickHouse/pull/91105) ([Nihal Z. Miaji](https://github.com/nihalzp)). +* Исправлена логическая ошибка в `ARRAY JOIN`, возникавшая, когда один из столбцов таблицы был пустым столбцом-кортежем. Закрывает [#90801](https://github.com/ClickHouse/ClickHouse/issues/90801). [#91123](https://github.com/ClickHouse/ClickHouse/pull/91123) ([Nihал Z. Miaji](https://github.com/nihalzp)). +* Исправлена ленивая материализация столбца, добавленного через ALTER ADD COLUMN в старых частях. [#91142](https://github.com/ClickHouse/ClickHouse/pull/91142) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлено слияние JSON-столбцов в Summing/Aggregating/Coalescing MergeTree. Ранее это могло приводить к неожиданным динамическим путям при записи данных в части. [#91151](https://github.com/ClickHouse/ClickHouse/pull/91151) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлено возможное несогласованное состояние динамической структуры при записи в компактные части, которое могло приводить к ошибке сегментации (segfault). [#91152](https://github.com/ClickHouse/ClickHouse/pull/91152) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлен разбор субнормальных чисел с плавающей запятой в научной нотации. Закрывает [#78903](https://github.com/ClickHouse/ClickHouse/issues/78903). [#91162](https://github.com/ClickHouse/ClickHouse/pull/91162) ([Nihал Z. Miaji](https://github.com/nihalzp)). +* Исправлено некорректное определение схемы в INSERT SELECT из подзапроса, использующего источник с неявной схемой. [#91204](https://github.com/ClickHouse/ClickHouse/pull/91204) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* Исправлена проблема [https://github.com/clickhouse/clickhouse/issues/91206](https://github.com/clickhouse/clickhouse/issues/91206), при которой при создании таблицы со статистикой, последующей записи данных и удалении одной статистики происходило аварийное завершение работы при повторном чтении. Это происходило потому, что предполагалось совпадение типов статистики при сериализации и десериализации. В этом исправлении мы проверяем, содержат ли актуальные метаданные сериализованную статистику; если нет, мы создаём фиктивную статистику и выполняем её десериализацию только для того, чтобы пропустить. [#91227](https://github.com/ClickHouse/ClickHouse/pull/91227) ([Han Fei](https://github.com/hanfei1991)). +* Исправлена ошибка при вставке в столбец таблицы с движком CoalescingMergeTree с типом Tuple(JSON/Dynamic, LowCardinality). Закрывает [#91215](https://github.com/ClickHouse/ClickHouse/issues/91215). [#91270](https://github.com/ClickHouse/ClickHouse/pull/91270) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена команда SYSTEM DROP FILESYSTEM CACHE ON CLUSTER. [#91304](https://github.com/ClickHouse/ClickHouse/pull/91304) ([Anton Ivashkin](https://github.com/ianton-ru)). +* Исправлена потенциальная логическая ошибка "Bad cast from type DB::ColumnSparse to DB::ColumnNullable". Закрывает [#91284](https://github.com/ClickHouse/ClickHouse/issues/91284). [#91309](https://github.com/ClickHouse/ClickHouse/pull/91309) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлено аварийное завершение работы сервера при десериализации вредоносно сформированных потоков байтов во вложенные типы QBit, что вообще не должно быть возможным, но могло использоваться для падения сервера. [#91313](https://github.com/ClickHouse/ClickHouse/pull/91313) ([Raufs Dunamalijevs](https://github.com/rienath)). +* Исправлена ошибка в таблице Alias с пустыми аргументами в реплицируемой базе данных. Исправлено в [#91378](https://github.com/ClickHouse/ClickHouse/issues/91378). [#91382](https://github.com/ClickHouse/ClickHouse/pull/91382) ([Kai Zhu](https://github.com/nauu)). +* В настоящее время параметр установлен в значение `false`, поэтому при сбросе очереди асинхронных вставок на удалённый сервер вставки всегда выполняются синхронно, даже если для пользователя этот параметр имеет значение `True`. [#91386](https://github.com/ClickHouse/ClickHouse/pull/91386) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Удалены разреженные столбцы из заголовка в алгоритмах слияния. Закрывает [#91377](https://github.com/ClickHouse/ClickHouse/issues/91377). [#91396](https://github.com/ClickHouse/ClickHouse/pull/91396) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена ошибка hive-разбиения в версии 25.8, которая могла приводить к ошибочному выбрасыванию исключения `A hive partitioned file can't contain only partition columns`. [#91403](https://github.com/ClickHouse/ClickHouse/pull/91403) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлена ошибка в `dictGetDescendants`, приводившая к сбою при значении `NULL`, когда тип словаря поддерживает иерархию, но ни один столбец не имеет тип `HIERARCHICAL`. Закрывает [#92026](https://github.com/ClickHouse/ClickHouse/issues/92026). Закрывает [#92121](https://github.com/ClickHouse/ClickHouse/issues/92121). [#91420](https://github.com/ClickHouse/ClickHouse/pull/91420) ([Nihал Z. Miaji](https://github.com/nihalzp)). +* Исправлено падение функции `IN` при использовании лямбда-выражений и неконстантных аргументов-кортежей. Закрывает [#91379](https://github.com/ClickHouse/ClickHouse/issues/91379). [#91446](https://github.com/ClickHouse/ClickHouse/pull/91446) ([Nihal Z. Miaji](https://github.com/nihalzp)). +* Исправлена проблема параллельных записей, возникавших при вставках из MaterializedView в хранилища, которые их не поддерживают. [#91449](https://github.com/ClickHouse/ClickHouse/pull/91449) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* Обрабатываются значения NULL для XML-словарей Ytsaurus. [#91465](https://github.com/ClickHouse/ClickHouse/pull/91465) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* Исправлена ошибка, из-за которой тип `QBit` вызывал сбой при использовании параметров запроса вроде `SET param_q=[1,2,3,4]; SELECT {q:QBit(Float32,4)}`. [#91488](https://github.com/ClickHouse/ClickHouse/pull/91488) ([Raufs Dunamalijevs](https://github.com/rienath)). +* Исправлена ошибка LOGICAL_ERROR при использовании untuple в константном выражении. [#91507](https://github.com/ClickHouse/ClickHouse/pull/91507) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* Устранена потенциальная гонка данных в `librdkafka`. [#91521](https://github.com/ClickHouse/ClickHouse/pull/91521) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Исправлена логическая ошибка, вызванная аргументом со звездочкой в функции `remote`. Закрывает [#90568](https://github.com/ClickHouse/ClickHouse/issues/90568). [#91524](https://github.com/ClickHouse/ClickHouse/pull/91524) ([Nihal Z. Miaji](https://github.com/nihalzp)). +* Исправляет переполнение при чтении из формата ORC для типов Date и DateTime64. Закрывает [#70976](https://github.com/ClickHouse/ClickHouse/issues/70976). [#91572](https://github.com/ClickHouse/ClickHouse/pull/91572) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Запрещены операции ALTER для табличных движков Object Storage. Например, ALTER ADD PROJECTION мог привести к невозможности перезапуска сервера, так как движки Object Storage не поддерживают проекции. [#91573](https://github.com/ClickHouse/ClickHouse/pull/91573) ([Nikolay Degterinsky](https://github.com/evillique)). +* Исправлена ошибка, из‑за которой [`L2DistanceTransposed`](https://clickhouse.com/docs/sql-reference/functions/distance-functions#L2DistanceTransposed) возвращала некорректные результаты при использовании неконстантных опорных векторов (например, из таблицы). [#91517](https://github.com/ClickHouse/ClickHouse/issues/91517). [#91593](https://github.com/ClickHouse/ClickHouse/pull/91593) ([Raufs Dunamalijevs](https://github.com/rienath)). +* Исправлена ошибка при выполнении JOIN с условием FALSE, из-за которой на этапе диспетчеризации возвращался `LOGICAL_ERROR`. Закрывает [#91173](https://github.com/ClickHouse/ClickHouse/issues/91173). [#91598](https://github.com/ClickHouse/ClickHouse/pull/91598) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Исправлена проблема повышенного потребления памяти в join с "additional filter", закрыт [#91011](https://github.com/ClickHouse/ClickHouse/issues/91011). [#91664](https://github.com/ClickHouse/ClickHouse/pull/91664) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Исправлены запросы JOIN с представлением при включённых параллельных репликах. [#91813](https://github.com/ClickHouse/ClickHouse/pull/91813) ([Igor Nikonov](https://github.com/devcrafter)). +* Исправлена настройка delta lake `delta_lake_snapshot_version`, которая могла давать некорректный результат при использовании с табличным движком (а не табличной функцией) и значением -1 (отключено) после того, как ранее уже была использована версия snapshot. Закрывает [#87676](https://github.com/ClickHouse/ClickHouse/issues/87676). [#91818](https://github.com/ClickHouse/ClickHouse/pull/91818) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлен LOGICAL_ERROR в RecursiveCTEChunkGenerator. [#91827](https://github.com/ClickHouse/ClickHouse/pull/91827) ([Pablo Marcos](https://github.com/pamarcos)). +* Исправлено несоответствие структуры блоков в запросах с FINAL и PREWHERE. [#91847](https://github.com/ClickHouse/ClickHouse/pull/91847) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлена логическая ошибка с `join_use_nulls` при выполнении нескольких операций JOIN вместе с CROSS JOIN. [#91853](https://github.com/ClickHouse/ClickHouse/pull/91853) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Добавлен механизм восстановления для JSON с дублированным путём в shared data и динамических путях, которое могло возникать из‑за ошибки, исправленной в [https://github.com/ClickHouse/ClickHouse/pull/90816](https://github.com/ClickHouse/ClickHouse/pull/90816). [#91886](https://github.com/ClickHouse/ClickHouse/pull/91886) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена ошибка в ORC reader при чтении строковых столбцов, закодированных с помощью DICTIONARY_V2 и содержащих только значения NULL. [#91889](https://github.com/ClickHouse/ClickHouse/pull/91889) ([Peng Jian](https://github.com/fastio)). +* Исправлена проблема несогласованности сериализации между разреженными и Nullable подпотоками в столбцах типа Tuple, которая могла приводить к повреждённым частям или сбоям при чтении. Это исправление относится к [https://github.com/ClickHouse/ClickHouse/pull/91851](https://github.com/ClickHouse/ClickHouse/pull/91851). @Algunenano, не могли бы вы, пожалуйста, помочь проверить, позволяет ли это пройти стресс‑тест в приватном репозитории? @CurtizJ, не могли бы вы также помочь и посмотреть на это, пожалуйста? Спасибо! [#91932](https://github.com/ClickHouse/ClickHouse/pull/91932) ([Amos Bird](https://github.com/amosbird)). +* Исправлена ошибка `Directory '{}' does not exist (LOGICAL_ERROR)` при создании резервных копий на дисках типа plain-rewritable. [#91935](https://github.com/ClickHouse/ClickHouse/pull/91935) ([Julia Kartseva](https://github.com/jkartseva)). +* Исправлен сбой при подключении к MongoDB с именованными коллекциями. [#91959](https://github.com/ClickHouse/ClickHouse/pull/91959) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлена ошибка "TOO_MANY_MARKS", которая могла возникать после выполнения некоторых запросов `ALTER` для компактных частей. [#91980](https://github.com/ClickHouse/ClickHouse/pull/91980) ([alesapin](https://github.com/alesapin)). +* Закрывает [https://github.com/clickhouse/clickhouse/issues/87417](https://github.com/clickhouse/clickhouse/issues/87417): в схеме записи формата v1 есть ошибка: тип "added_snapshot_id" должен быть "long", а не "null, long", так как это обязательное поле. Это ошибка, поскольку такой формат несовместим с другими системами, например Spark. При совместном использовании их файлов манифестов проявляется эта проблема. [#92078](https://github.com/ClickHouse/ClickHouse/pull/92078) ([Han Fei](https://github.com/hanfei1991)). +* Исправлены названия функций `readWKT` и `readWKB`, которые в предыдущих версиях не соответствовали принятому стилю. [#92094](https://github.com/ClickHouse/ClickHouse/pull/92094) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлены многочисленные логические ошибки, ошибки переполнения и функциональные ошибки в функции `midpoint`. Закрывает [#91816](https://github.com/ClickHouse/ClickHouse/issues/91816). [#92102](https://github.com/ClickHouse/ClickHouse/pull/92102) ([Nihал Z. Miaji](https://github.com/nihalzp)). +* Исправляет некорректные результаты, которые могли возникать при чтении некоторых подстолбцов (например, размера строки) при использовании разреженного кодирования. [#92156](https://github.com/ClickHouse/ClickHouse/pull/92156) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена ошибка, приводившая к тому, что `system.view_refreshes` завершался с ошибкой `No macro 'replica' in config`. [#92203](https://github.com/ClickHouse/ClickHouse/pull/92203) ([Michael Kolupaev](https://github.com/al13n321)). +* Исправлена подстановка UDF в формате. [#92210](https://github.com/ClickHouse/ClickHouse/pull/92210) ([Raúl Marín](https://github.com/Algunenano)). +* В функции `ddlworker::markreplicasactive`, если не найден активный хост, но в `remote_servers` присутствуют какие-либо host_ids, мы логируем предупреждение вместо выбрасывания исключения. [#92223](https://github.com/ClickHouse/ClickHouse/pull/92223) ([Tuan Pham Anh](https://github.com/tuanpach)). +* Заключать операторы `IN`, `NOT IN` в скобки. Исправляет [#85075](https://github.com/ClickHouse/ClickHouse/issues/85075). [#92225](https://github.com/ClickHouse/ClickHouse/pull/92225) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Исправлено резервное копирование таблиц KeeperMap и Memory. Создание резервной копии таблиц на одном из этих двух движков при `max_compress_block_size`, установленном в `0`, могло приводить к аварийному завершению работы. [#92237](https://github.com/ClickHouse/ClickHouse/pull/92237) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлена ошибка, приводившая к сбою при одновременном чтении данных типа String и подстолбца .size из движка Log. Исправляет [#89909](https://github.com/ClickHouse/ClickHouse/issues/89909). Включает некоторые коммиты из [#92290](https://github.com/ClickHouse/ClickHouse/issues/92290). [#92341](https://github.com/ClickHouse/ClickHouse/pull/92341) ([Amos Bird](https://github.com/amosbird)). +* Исправлена логическая ошибка, возникающая при использовании типа `Nothing` в аргументах функции `caseWithExpression`. Закрывает [#85354](https://github.com/ClickHouse/ClickHouse/issues/85354). [#92351](https://github.com/ClickHouse/ClickHouse/pull/92351) ([Nihal Z. Miaji](https://github.com/nihalzp)). +* Исправлено возможное аварийное завершение работы агрегатных функций после ошибки MEMORY_LIMIT_EXCEEDED. [#92390](https://github.com/ClickHouse/ClickHouse/pull/92390) ([Azat Khuzhin](https://github.com/azat)). + +#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement} + +* Использовать `clang-21` в CI. [#87074](https://github.com/ClickHouse/ClickHouse/pull/87074) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Исключить загрузку через CMake при кросс-компиляции. [#90506](https://github.com/ClickHouse/ClickHouse/pull/90506) ([Raúl Marín](https://github.com/Algunenano)). + +### Релиз ClickHouse 25.11 от 2025-11-27 {#2511} + +#### Обратно несовместимые изменения {#backward-incompatible-change} + +* Удалён устаревший тип `Object`. [#85718](https://github.com/ClickHouse/ClickHouse/pull/85718) ([Pavel Kruglov](https://github.com/Avogar)). +* Удалена устаревшая функциональность `LIVE VIEW`. Если вы используете `LIVE VIEW`, обновление до новой версии будет невозможным. [#88706](https://github.com/ClickHouse/ClickHouse/pull/88706) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* В предыдущих версиях тип `Geometry` был псевдонимом для `String`, но теперь это полнофункциональный тип. [#83344](https://github.com/ClickHouse/ClickHouse/pull/83344) ([scanhex12](https://github.com/scanhex12)). +* Теперь экранируются имена файлов, создаваемые для подстолбцов типа `Variant` в Wide-частях данных таблиц MergeTree. Это изменение нарушает совместимость со старыми таблицами с типами данных Variant/Dynamic/JSON. Оно исправляет сохранение типов со специальными символами внутри Variant (например, DateTime с конкретным часовым поясом, содержащим `\`). Экранирование можно отключить, изменив настройку MergeTree `escape_variant_subcolumn_filenames` (для сохранения совместимости отключите эту настройку в конфигурации для MergeTree или установите настройку `compatibility` на предыдущую версию перед обновлением). Решает [#69590](https://github.com/ClickHouse/ClickHouse/issues/69590). [#87300](https://github.com/ClickHouse/ClickHouse/pull/87300) ([Pavel Kruglov](https://github.com/Avogar)). +* По умолчанию включён формат сериализации `with_size_stream` для типа данных `String`. Это изменение обратно совместимо, но новый формат сериализации поддерживается только начиная с версии 25.10, что означает, что даунгрейд до версий ранее 25.10 будет невозможен. Если вы хотите сохранить возможность даунгрейда до 25.9 и более ранних версий, настройте `serialization_info_version` как `basic` и `string_serialization_version` как `single_stream` в секции `merge_tree` конфигурации сервера. [#89329](https://github.com/ClickHouse/ClickHouse/pull/89329) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена поддержка тегирования исключений в HTTP-ответах, чтобы клиенты могли надёжнее разбирать исключения. Решает [#75175](https://github.com/ClickHouse/ClickHouse/issues/75175). Настройка `http_write_exception_in_output_format` по умолчанию отключена для сохранения единообразия между форматами. [#88818](https://github.com/ClickHouse/ClickHouse/pull/88818) ([Kaviraj Kanagaraj](https://github.com/kavirajk)). Хотя это не должно ломать существующее поведение (в худшем случае к сообщению исключения будет добавлена странная строка), всё же имеет смысл использовать категорию changelog «Backward Incompatible Change» просто для информирования (потому что неизвестно, как какие‑нибудь кривые скрипты могут разбирать сообщение об исключении). +* Запрещено создание нескольких дисков `plain-rewritable` поверх общего пути объектного хранилища, так как это может привести к неопределённому поведению при коллизиях различных транзакций хранения метаданных. [#89038](https://github.com/ClickHouse/ClickHouse/pull/89038) ([Mikhail Artemenko](https://github.com/Michicosun)). +* Исправлен приоритет настроек SASL для хранилища Kafka. Настройки SASL на уровне таблицы, указанные в запросах CREATE TABLE, теперь корректно переопределяют настройки SASL для потребителя/производителя из конфигурационных файлов. [#89401](https://github.com/ClickHouse/ClickHouse/pull/89401) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Метки времени Parquet без часового пояса (isAdjustedToUTC=false) теперь читаются как DateTime64(..., 'UTC') вместо DateTime64(...). Это менее некорректно, так как преобразование такого UTC-таймстампа в строку даёт представление правильного локального времени. Используйте `input_format_parquet_local_time_as_utc = 0`, чтобы вернуть старое поведение. Решает [#87469](https://github.com/ClickHouse/ClickHouse/issues/87469). [#87872](https://github.com/ClickHouse/ClickHouse/pull/87872) ([Michael Kolupaev](https://github.com/al13n321)). +* Небольшое улучшение для кодека `T64`: он больше не принимает типы данных, не выровненные по размеру элемента сжатия, что ранее приводило к возникновению ошибки. Решает [#89282](https://github.com/ClickHouse/ClickHouse/issues/89282). [#89432](https://github.com/ClickHouse/ClickHouse/pull/89432) ([yanglongwei](https://github.com/ylw510)). + +#### Новые возможности {#new-feature} + +* Представлен тип данных `Geometry`. Для него добавлена поддержка чтения форматов `WKB` и `WKT`. В предыдущих версиях тип `Geometry` был псевдонимом `String`, но теперь это полноценный тип данных. [#83344](https://github.com/ClickHouse/ClickHouse/pull/83344) ([scanhex12](https://github.com/scanhex12)). +* Добавлен новый SQL-оператор `EXECUTE AS` для поддержки подмены пользователя. Устраняет [#39048](https://github.com/ClickHouse/ClickHouse/issues/39048). [#70775](https://github.com/ClickHouse/ClickHouse/pull/70775) ([Shankar](https://github.com/shiyer7474)). +* Добавлена функция `naiveBayesClassifier` для классификации текста с использованием наивного байесовского метода на основе n-грамм. [#88677](https://github.com/ClickHouse/ClickHouse/pull/88677) ([Nihal Z. Miaji](https://github.com/nihalzp)). +* Добавлена поддержка дробных значений в `LIMIT` и `OFFSET` для выборки доли строк таблицы. Закрывает [#81892](https://github.com/ClickHouse/ClickHouse/issues/81892). [#88755](https://github.com/ClickHouse/ClickHouse/pull/88755) ([Ahmed Gouda](https://github.com/0xgouda)). +* Подсистема ClickHouse для каталога Microsoft OneLake. [#89366](https://github.com/ClickHouse/ClickHouse/pull/89366) ([scanhex12](https://github.com/scanhex12)). +* Добавлена функция `flipCoordinates`, которая распаковывает нужное количество измерений массива и меняет местами указатели внутри столбца Tuple. Исправляет [#79469](https://github.com/ClickHouse/ClickHouse/issues/79469). [#79634](https://github.com/ClickHouse/ClickHouse/pull/79634) ([Sachin Kumar Singh](https://github.com/sachinkumarsingh092)). +* Добавлена таблица `system.unicode`, содержащая список символов Unicode и их свойств. Закрывает [#80055](https://github.com/ClickHouse/ClickHouse/issues/80055). [#80857](https://github.com/ClickHouse/ClickHouse/pull/80857) ([wxybear](https://github.com/wxybear)). +* Добавлена новая настройка MergeTree `merge_max_dynamic_subcolumns_in_wide_part`, позволяющая ограничить количество динамических подстолбцов в Wide‑части после слияния независимо от параметров, указанных в типе данных. [#87646](https://github.com/ClickHouse/ClickHouse/pull/87646) ([Pavel Kruglov](https://github.com/Avogar)). +* Добавлена поддержка оконной функции `cume_dist`. Исправлена проблема [#86920](https://github.com/ClickHouse/ClickHouse/issues/86920). [#88102](https://github.com/ClickHouse/ClickHouse/pull/88102) ([Manuel](https://github.com/raimannma)). +* Теперь можно задать новый аргумент `preprocessor` при создании текстового индекса. Аргумент — это произвольное выражение, которое преобразует каждый документ перед токенизацией. [#88272](https://github.com/ClickHouse/ClickHouse/pull/88272) ([Jimmy Aguilar Mena](https://github.com/Ergus)). +* Добавляет поле `memory_usage` в `X-ClickHouse-Progress` и `X-ClickHouse-Summary`. Оно может использоваться для сбора статистики по использованию памяти запросами в режиме реального времени на стороне клиента. [#88393](https://github.com/ClickHouse/ClickHouse/pull/88393) ([Christoph Wurm](https://github.com/cwurm)). +* Добавлена настройка `into_outfile_create_parent_directories` для автоматического создания родительских директорий для `INTO OUTFILE`, что позволяет избежать ошибок, если путь вывода не существует. Это упрощает рабочие процессы, в которых запросы записывают результаты во вложенные директории. Решает [#88610](https://github.com/ClickHouse/ClickHouse/issues/88610). [#88795](https://github.com/ClickHouse/ClickHouse/pull/88795) ([Saksham](https://github.com/Saksham10-11)). +* Добавлена поддержка синтаксиса `CREATE OR REPLACE` для временных таблиц. Закрывает [#35888](https://github.com/ClickHouse/ClickHouse/issues/35888). [#89450](https://github.com/ClickHouse/ClickHouse/pull/89450) ([Aleksandr Musorin](https://github.com/AVMusorin)). +* Добавлена поддержка функции `arrayRemove` для удаления из массива `arr` всех элементов, равных `elem`. Это нужно только для совместимости с Postgres, поскольку в ClickHouse уже есть гораздо более мощная функция `arrayFilter`. Решает [#52099](https://github.com/ClickHouse/ClickHouse/issues/52099). [#89585](https://github.com/ClickHouse/ClickHouse/pull/89585) ([tiwarysaurav](https://github.com/tiwarysaurav)). +* Добавлена скалярная функция `midpoint` для вычисления среднего значения. Устранена проблема [#89029](https://github.com/ClickHouse/ClickHouse/issues/89029). [#89679](https://github.com/ClickHouse/ClickHouse/pull/89679) ([simonmichal](https://github.com/simonmichal)). +* В веб-интерфейсе появилась кнопка загрузки. Она скачивает полный результат, даже если в интерфейсе отображается только его часть. [#89768](https://github.com/ClickHouse/ClickHouse/pull/89768) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена настройка `arrow_flight_request_descriptor_type` для поддержки Dremio и других серверов Arrow Flight, которые требуют командных дескрипторов. Реализация [#89523](https://github.com/ClickHouse/ClickHouse/issues/89523). [#89826](https://github.com/ClickHouse/ClickHouse/pull/89826) ([Shreyas Ganesh](https://github.com/shreyasganesh0)). +* Новые агрегатные функции `argAndMin` и `argAndMax`, которые возвращают аргумент и соответствующее экстремальное значение. В предыдущих версиях этого можно было добиться с использованием кортежа в качестве аргумента. [#89884](https://github.com/ClickHouse/ClickHouse/pull/89884) ([AbdAlRahman Gad](https://github.com/AbdAlRahmanGad)). +* Настройки для записи и проверки контрольных сумм Parquet. [#79012](https://github.com/ClickHouse/ClickHouse/pull/79012) ([Michael Kolupaev](https://github.com/al13n321)). +* Добавлена настройка `kafka_schema_registry_skip_bytes` для движка таблицы Kafka, позволяющая пропускать байты заголовка оболочки (например, 19-байтовый префикс AWS Glue Schema Registry) перед разбором полезной нагрузки сообщения. Это позволяет ClickHouse потреблять сообщения из реестров схем, которые добавляют в сообщения заголовки с метаданными. [#89621](https://github.com/ClickHouse/ClickHouse/pull/89621) ([Taras Polishchuk](https://github.com/wake-up-neo)). +* Добавлена функция `h3PolygonToCells`, которая заполняет геометрию шестиугольниками H3. Закрывает [#33991](https://github.com/ClickHouse/ClickHouse/issues/33991). [#66262](https://github.com/ClickHouse/ClickHouse/pull/66262) ([Zacharias Knudsen](https://github.com/zachasme)). +* Добавлен новый виртуальный столбец `_tags` (`Map(String, String)`), который содержит все теги, связанные с объектом в S3 (если у объекта нет тегов, дополнительный запрос выполняться не будет). Исправляет [#72945](https://github.com/ClickHouse/ClickHouse/issues/72945). [#77773](https://github.com/ClickHouse/ClickHouse/pull/77773) ([Zicong Qu](https://github.com/zicongleoqu)). + +#### Экспериментальная функциональность {#experimental-feature} + +* Поддержка получения TLS-сертификатов от провайдеров ACME в соответствии с [RFC 8555](https://datatracker.ietf.org/doc/html/rfc8555), таких как Let's Encrypt. Это позволяет автоматически настраивать TLS в распределённых кластерах. [#66315](https://github.com/ClickHouse/ClickHouse/pull/66315) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Поддержка части Prometheus HTTP Query API. Чтобы включить её, добавьте правило с типом `query_api` в секцию `` в файле конфигурации. Поддерживаемые обработчики: `/api/v1/query_range` и `/api/v1/query`. [#86132](https://github.com/ClickHouse/ClickHouse/pull/86132) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Полнотекстовый поиск переведён в статус бета-версии (ранее был экспериментальной функциональностью). [#88928](https://github.com/ClickHouse/ClickHouse/pull/88928) ([Robert Schulze](https://github.com/rschu1ze)). +* `Alias` переведён в разряд экспериментальных функций, может быть включён с помощью `allow_experimental_alias_table_engine = 1`. [#89712](https://github.com/ClickHouse/ClickHouse/pull/89712) ([Kai Zhu](https://github.com/nauu)). + +#### Повышение производительности {#performance-improvement} + +* Модуль чтения Parquet v3 включён по умолчанию. [#88827](https://github.com/ClickHouse/ClickHouse/pull/88827) ([Michael Kolupaev](https://github.com/al13n321)). +* Распределённое выполнение: задачи теперь разбиваются по идентификаторам групп строк, а не по файлам. [#87508](https://github.com/ClickHouse/ClickHouse/pull/87508) ([scanhex12](https://github.com/scanhex12)). +* `RIGHT` и `FULL` JOIN теперь используют ConcurrentHashJoin, что обеспечивает более высокую степень параллелизма при их выполнении. В ряде сценариев производительность `RIGHT` и `FULL` JOIN увеличена до двух раз. Исправляет [#78027](https://github.com/ClickHouse/ClickHouse/issues/78027). [#78462](https://github.com/ClickHouse/ClickHouse/pull/78462) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Оптимизация обработки больших значений константных выражений в запросах. Закрывает [#72880](https://github.com/ClickHouse/ClickHouse/issues/72880). [#81104](https://github.com/ClickHouse/ClickHouse/pull/81104) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Запросы `SELECT` с агрессивным отсечением партиций на таблицах с более чем 10 тыс. частей выполняются до 8 раз быстрее. [#85535](https://github.com/ClickHouse/ClickHouse/pull/85535) ([James Morrison](https://github.com/jawm)). +* Когда запрос использует фиксированную хеш-таблицу состояний агрегации (GROUP BY по небольшому целому числу), ClickHouse выполняет слияние состояния агрегации параллельно, чтобы ускорить запрос. [#87366](https://github.com/ClickHouse/ClickHouse/pull/87366) ([Jianfei Hu](https://github.com/incfly)). +* Разрешает использование проекций (использующих SELECT `_part_offset` и другой ORDER BY) в качестве вторичного индекса. При включении этой опции некоторые предикаты запроса могут использоваться для чтения из частей проекций и генерации битмапов для эффективной фильтрации строк на стадии PREWHERE. Это третий шаг в реализации индекса проекций, после [#80343](https://github.com/ClickHouse/ClickHouse/issues/80343). [#81021](https://github.com/ClickHouse/ClickHouse/pull/81021) ([Amos Bird](https://github.com/amosbird)). +* Исправили VDSO для редких систем на Aarch64 и, возможно, других сочетаний архитектуры и ядра. [#86096](https://github.com/ClickHouse/ClickHouse/pull/86096) ([Tomas Hulata](https://github.com/tombokombo)). +* Повышена скорость декомпрессии LZ4 за счёт упрощения кода и оптимизации [алгоритма выбора](https://clickhouse.com/blog/lz4-compression-in-clickhouse#how-to-choose-the-best-algorithm). [#88360](https://github.com/ClickHouse/ClickHouse/pull/88360) ([Raúl Marín](https://github.com/Algunenano)). +* S3 внутренне разбивает объекты на партиции на основе префиксов имён ключей и автоматически масштабируется для обработки высокой интенсивности запросов на партицию. Это изменение вводит два новых параметра BACKUP: data_file_name_generator и data_file_name_prefix_length. Когда data_file_name_generator=checksum, файлы данных резервной копии именуются с использованием хэша их содержимого. Пример: для checksum = `abcd1234ef567890abcd1234ef567890` и `data_file_name_prefix_length = 3` результирующий путь будет: `abc/d1234ef567890abcd1234ef567890`. Получившееся распределение ключей улучшает балансировку нагрузки по партициям S3 и снижает риск ограничения пропускной способности (throttling). [#88418](https://github.com/ClickHouse/ClickHouse/pull/88418) ([Julia Kartseva](https://github.com/jkartseva)). +* Улучшена производительность текстового индекса за счёт кэширования блоков словаря и использования хеш-таблиц для поиска токенов вместо бинарного поиска. [#88786](https://github.com/ClickHouse/ClickHouse/pull/88786) ([Elmi Ahmadov](https://github.com/ahmadov)). +* Теперь запросы могут одновременно использовать `optimize_read_in_order` и `query_plan_optimize_lazy_materialization`. Исправляет [#88767](https://github.com/ClickHouse/ClickHouse/issues/88767). [#88866](https://github.com/ClickHouse/ClickHouse/pull/88866) ([Manuel](https://github.com/raimannma)). +* Используйте агрегирующую проекцию для запросов с `DISTINCT`. Закрывает [#86925](https://github.com/ClickHouse/ClickHouse/issues/86925). [#88894](https://github.com/ClickHouse/ClickHouse/pull/88894) ([Nihал Z. Miaji](https://github.com/nihalzp)). +* Кэширование списков постингов для повышения производительности при повторных запусках. [#88912](https://github.com/ClickHouse/ClickHouse/pull/88912) ([Elmi Ahmadov](https://github.com/ahmadov)). +* Выполнять преобразование LIMIT BY в потоковом режиме, когда порядок сортировки входных данных совпадает с ключами LIMIT BY. [#88969](https://github.com/ClickHouse/ClickHouse/pull/88969) ([Eduard Karacharov](https://github.com/korowa)). +* Добавлена возможность в некоторых случаях переписывать `ANY LEFT JOIN` или `ANY RIGHT JOIN` в `ALL INNER JOIN`. [#89403](https://github.com/ClickHouse/ClickHouse/pull/89403) ([Dmitry Novik](https://github.com/novikd)). +* Снижены накладные расходы на логирование: используется меньше атомарных операций на одну запись. [#89651](https://github.com/ClickHouse/ClickHouse/pull/89651) ([Sergei Trifonov](https://github.com/serxa)). +* Когда в запросе с несколькими `JOIN` включены runtime‑фильтры и добавляются несколько runtime‑фильтров, реализовано проталкивание (pushdown) шагов вновь добавленных фильтров поверх остальных. [#89725](https://github.com/ClickHouse/ClickHouse/pull/89725) ([Alexander Gololobov](https://github.com/davenger)). +* Незначительно ускорены некоторые операции `uniqExact` за счёт уменьшения накладных расходов при слиянии хеш-таблиц. [#89727](https://github.com/ClickHouse/ClickHouse/pull/89727) ([Raúl Marín](https://github.com/Algunenano)). +* Увеличен лимит на число строк ленивой материализации с 10 до 100. [#89772](https://github.com/ClickHouse/ClickHouse/pull/89772) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Настройка `allow_special_serialization_kinds_in_output_formats` теперь включена по умолчанию. Это снизит потребление памяти и повысит скорость выполнения запросов при выводе разреженных/реплицированных столбцов в некоторых построчных форматах вывода. [#89402](https://github.com/ClickHouse/ClickHouse/pull/89402) ([Pavel Kruglov](https://github.com/Avogar)). +* Добавлена параллельная обработка запросов `ALTER TABLE ... FREEZE`. [#71743](https://github.com/ClickHouse/ClickHouse/pull/71743) ([Kirill](https://github.com/kirillgarbar)). +* Добавлен кэш для bcrypt-аутентификации. [#87115](https://github.com/ClickHouse/ClickHouse/pull/87115) ([Nikolay Degterinsky](https://github.com/evillique)). +* Если `skip index`, используемый в запросе с `FINAL`, приходится на столбец, который входит в состав первичного ключа, дополнительный шаг по проверке пересечения первичного ключа в других частях оказывается избыточным и теперь не выполняется. Исправляет [#85897](https://github.com/ClickHouse/ClickHouse/issues/85897). [#88368](https://github.com/ClickHouse/ClickHouse/pull/88368) ([Shankar Iyer](https://github.com/shankar-iyer)). +* Оптимизация `enable_lazy_columns_replication` теперь включена по умолчанию, что позволит сократить потребление памяти в операциях JOIN. [#89316](https://github.com/ClickHouse/ClickHouse/pull/89316) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Введён пер-табличный кэш `ColumnsDescription` для частей таблиц, что уменьшает использование памяти, когда таблицы содержат много частей и много столбцов. [#89352](https://github.com/ClickHouse/ClickHouse/pull/89352) ([Azat Khuzhin](https://github.com/azat)). +* Добавлен кэш для десериализованного заголовка текстового индекса для уменьшения числа операций ввода-вывода и повышения производительности запросов. Кэш можно настроить с помощью новых настроек сервера: - `text_index_header_cache_policy` - `text_index_header_cache_size` - `text_index_header_cache_max_entries` - `text_index_header_cache_size_ratio`. [#89513](https://github.com/ClickHouse/ClickHouse/pull/89513) ([Elmi Ahmadov](https://github.com/ahmadov)). + +#### Улучшения {#improvement} + +* UNION при необходимости должен объединять типы с `Variant`, если включён `use_variant_as_common_type`. Исправляет [#82772](https://github.com/ClickHouse/ClickHouse/issues/82772). [#83246](https://github.com/ClickHouse/ClickHouse/pull/83246) ([Mithun p](https://github.com/mithunputhusseri)). +* Роли, определённые в SQL, теперь можно предоставлять пользователям, определённым в `users.xml`. [#88139](https://github.com/ClickHouse/ClickHouse/pull/88139) ([c-end](https://github.com/c-end)). +* Записывать внутренние запросы (те, которые выполняются словарями, refreshable materialized views и т. д.) и добавить новый столбец `is_internal` в таблицу `system.query_log`. [#83277](https://github.com/ClickHouse/ClickHouse/pull/83277) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Улучшен оператор `IS NOT DISTINCT FROM` (`<=>`): добавлена поддержка обратного оператора `IS DISTINCT FROM`, а также поддержка совместимых числовых операндов разных типов (например, `Nullable(UInt32)` и `Nullable(Int64)`). Решает [#86763](https://github.com/ClickHouse/ClickHouse/issues/86763). [#87581](https://github.com/ClickHouse/ClickHouse/pull/87581) ([yanglongwei](https://github.com/ylw510)). +* `clickhouse-client` и `clickhouse-local` в интерактивном режиме подсвечивают в командной строке идентификаторы с тем же именем, что и у текущего идентификатора под курсором. [#89689](https://github.com/ClickHouse/ClickHouse/pull/89689) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Настройки, связанные с форматом вывода, больше не влияют на кэширование запросов. Также кэширование запросов теперь игнорирует настройку `http_response_headers`. Это необходимо для реализации таких функций, как скачивание результата из кэша в веб-интерфейсе. [#89756](https://github.com/ClickHouse/ClickHouse/pull/89756) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* HTTP-интерфейс теперь возвращает заголовки `Age` и `Expires` при использовании кэша результатов запроса. Наличие заголовка `Age` показывает, получен ли результат из кэша, а `Expires` также устанавливается при первой записи в кэш. Добавлены новые события профиля: `QueryCacheAgeSeconds`, `QueryCacheReadRows`, `QueryCacheReadBytes`, `QueryCacheWrittenRows`, `QueryCacheWrittenBytes`. [#89759](https://github.com/ClickHouse/ClickHouse/pull/89759) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Разрешена вставка в удалённые таблицы и таблицы в озёрах данных при включённом параметре `disable_insertion_and_mutation` (что означает — хранилища ClickHouse Cloud только для чтения). [#88549](https://github.com/ClickHouse/ClickHouse/pull/88549) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Добавлен запрос `SYSTEM DROP TEXT INDEX CACHES`. [#90287](https://github.com/ClickHouse/ClickHouse/pull/90287) ([Anton Popov](https://github.com/CurtizJ)). +* По умолчанию включить `enable_shared_storage_snapshot_in_query` для улучшения гарантий согласованности. Не должно быть негативных последствий. [#82634](https://github.com/ClickHouse/ClickHouse/pull/82634) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена настройка `send_profile_events`, которая позволяет клиентам уменьшить сетевой трафик, если события профилирования не используются. [#89588](https://github.com/ClickHouse/ClickHouse/pull/89588) ([Kaviraj Kanagaraj](https://github.com/kavirajk)). +* Добавлена возможность отключать фоновую загрузку соседних сегментов на уровне отдельного запроса. Исправляет [#89524](https://github.com/ClickHouse/ClickHouse/issues/89524). [#89668](https://github.com/ClickHouse/ClickHouse/pull/89668) ([tanner-bruce](https://github.com/tanner-bruce)). +* Теперь допускается выполнять `FETCH PARTITION`, когда в реплицируемых таблицах MergeTree есть повреждённые диски. [#58663](https://github.com/ClickHouse/ClickHouse/pull/58663) ([Duc Canh Le](https://github.com/canhld94)). +* Исправлена ошибка необработанного исключения при получении схемы таблицы MySQL в движке базы данных MySQL. [#69358](https://github.com/ClickHouse/ClickHouse/pull/69358) ([Duc Canh Le](https://github.com/canhld94)). +* Все DDL-запросы `ON CLUSTER` теперь выполняются в исходном контексте пользователя, инициировавшего запрос, что улучшает проверку прав доступа. [#71334](https://github.com/ClickHouse/ClickHouse/pull/71334) ([pufit](https://github.com/pufit)). +* Добавлена поддержка `UUID` в `Parquet` при его представлении в виде `FixedString(16)` с логическим типом `UUID`. [#74484](https://github.com/ClickHouse/ClickHouse/pull/74484) ([alekseev-maksim](https://github.com/alekseev-maksim)). +* По умолчанию отключён ThreadFuzzer в несерверных бинарных файлах. [#89115](https://github.com/ClickHouse/ClickHouse/pull/89115) ([Raúl Marín](https://github.com/Algunenano)). +* Сделать оптимизации плана запроса видимыми для подплана входных данных коррелированного подзапроса, откладывая его материализацию. Часть [#79890](https://github.com/ClickHouse/ClickHouse/issues/79890). [#85455](https://github.com/ClickHouse/ClickHouse/pull/85455) ([Dmitry Novik](https://github.com/novikd)). +* В clickhouse-client теперь отображаются индикатор прогресса, логи и статистика производительности для запросов `CREATE OR REPLACE TABLE` с `SELECT`. Такой запрос больше не приводит к таймауту, даже если `SELECT` выполняется довольно долго. Исправляет [#38416](https://github.com/ClickHouse/ClickHouse/issues/38416). [#87247](https://github.com/ClickHouse/ClickHouse/pull/87247) ([Diskein](https://github.com/Diskein)). +* Добавлена поддержка типов `JSON` и `Dynamic` в хеш-функциях. Решает проблему [#87734](https://github.com/ClickHouse/ClickHouse/issues/87734). [#87791](https://github.com/ClickHouse/ClickHouse/pull/87791) ([Pavel Kruglov](https://github.com/Avogar)). +* Реализованы недостающие части сервера ArrowFlight. [#88013](https://github.com/ClickHouse/ClickHouse/pull/88013) ([Vitaly Baranov](https://github.com/vitlibar)). +* Добавлены несколько метрик-гистограмм для сервера и keeper для измерения длительности этапов выполнения запросов keeper. На стороне сервера добавлены следующие метрики: `keeper_client_queue_duration_milliseconds`, `keeper_client_send_duration_milliseconds`, `keeper_client_roundtrip_duration_milliseconds`. На стороне keeper добавлены следующие метрики: `keeper_server_preprocess_request_duration_milliseconds`, `keeper_server_process_request_duration_milliseconds`, `keeper_server_queue_duration_milliseconds`, `keeper_server_send_duration_milliseconds`. [#88158](https://github.com/ClickHouse/ClickHouse/pull/88158) ([Michael Stetsyuk](https://github.com/mstetsyuk)). +* Добавлена опция `input_headers` для запроса `EXPLAIN`, позволяющая добавлять входные заголовки к шагам. [#88311](https://github.com/ClickHouse/ClickHouse/pull/88311) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Добавляет события профилирования для подсчёта числа запросов S3 и AzureBlobStorage, задержанных ограничителями скорости. Устраняет несоответствие между событиями профилирования ThrottlerCount, связанными с дисками и не связанными с дисками. Теперь HTTP‑запросы DELETE в AzureBlobStorage не ограничиваются по скорости. [#88535](https://github.com/ClickHouse/ClickHouse/pull/88535) ([Sergei Trifonov](https://github.com/serxa)). +* Кэшируется статистика на уровне таблиц; добавлены два параметра: параметр движка MergeTree `refresh_statistics_interval` задаёт интервал обновления кэша статистики, 0 означает, что кэш создаваться не будет. Параметр сессии `use_statistics_cache` определяет, использовать ли статистику на уровне таблиц в запросе. Иногда требуется более точная статистика, поэтому кэш можно игнорировать. [#88670](https://github.com/ClickHouse/ClickHouse/pull/88670) ([Han Fei](https://github.com/hanfei1991)). +* Исправлена бинарная десериализация типов `Array` и `Map`, чтобы при проверке ограничений на размер использовать настройку `max_binary_array_size` вместо `max_binary_string_size`. Это обеспечивает применение корректных ограничений при чтении в формате `RowBinary`. [#88744](https://github.com/ClickHouse/ClickHouse/pull/88744) ([Raufs Dunamalijevs](https://github.com/rienath)). +* Введён класс `LockGuardWithStopWatch` и он используется в фоновом пуле, выполняющем слияния. Если мьютекс удерживался дольше секунды или какой-либо поток не мог захватить его в течение секунды, будет выведено предупреждающее сообщение. Тяжёлый код из деструктора `MergeMutateSelectedEntry` перенесён в метод `finalize`, чтобы избежать слишком долгого удержания блокировки в исполнителе фонового пула `MergeTreeBackground`. [#88898](https://github.com/ClickHouse/ClickHouse/pull/88898) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Разрешено автоматическое использование opt-in регионов AWS для S3, когда регион не указан в конечной точке (endpoint). См. также: [opt-in AWS regions](https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-regions.html). [#88930](https://github.com/ClickHouse/ClickHouse/pull/88930) ([Andrey Zvonov](https://github.com/zvonand)). +* Теперь в clickhouse-client пользователь может отменить запрос, нажав Ctrl+C, когда запущен pager. Устраняет [#80778](https://github.com/ClickHouse/ClickHouse/issues/80778). [#88935](https://github.com/ClickHouse/ClickHouse/pull/88935) ([Grigorii](https://github.com/GSokol)). +* Web UI будет отображать полосы в таблице даже при отрицательных значениях. Благодаря этому можно строить двустороннюю столбчатую диаграмму с разными цветами столбцов для отрицательной и положительной частей. [#89016](https://github.com/ClickHouse/ClickHouse/pull/89016) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Отключите `shared_merge_tree_create_per_replica_metadata_nodes`, чтобы уменьшить объём метаданных, которые `SharedMergeTree` хранит в Keeper. [#89036](https://github.com/ClickHouse/ClickHouse/pull/89036) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Сделать так, чтобы `S3Queue` учитывал серверный параметр `disable_insertion_and_mutation`. [#89048](https://github.com/ClickHouse/ClickHouse/pull/89048) ([Raúl Marín](https://github.com/Algunenano)). +* Установлено значение по умолчанию параметра `s3_retry_attempts` равным 500 для версии 25.6, чтобы гарантировать успешное создание резервных копий при переразбиении данных в S3, когда S3 в течение более 10 минут отвечает ошибками замедления. [#89051](https://github.com/ClickHouse/ClickHouse/pull/89051) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Настройки `kafka_compression_codec` и `kafka_compression_level` теперь можно использовать для указания параметров сжатия продюсеров Kafka в обоих движках Kafka. [#89073](https://github.com/ClickHouse/ClickHouse/pull/89073) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Добавлен новый столбец `statistics` в `system.columns`, указывающий типы статистик, построенных для этой таблицы. Если тип статистики создаётся автоматически, к нему добавляется суффикс (auto). [#89086](https://github.com/ClickHouse/ClickHouse/pull/89086) ([Han Fei](https://github.com/hanfei1991)). +* Улучшено сообщение об ошибке при передаче универсальной подстановки вместо имени кластера в табличную функцию `*Cluster`. [#89093](https://github.com/ClickHouse/ClickHouse/pull/89093) ([Konstantин Bogданов](https://github.com/thevar1able)). +* YTsaurus: разрешено использовать `replicated_table` в качестве источника данных. [#89107](https://github.com/ClickHouse/ClickHouse/pull/89107) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* Запросы, начинающиеся с пробельных символов, больше не сохраняются в истории CLI. [#89116](https://github.com/ClickHouse/ClickHouse/pull/89116) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Добавлена поддержка массива типа String в качестве входного параметра для функций `hasAnyTokens` и `hasAllTokens`. [#89124](https://github.com/ClickHouse/ClickHouse/pull/89124) ([Elmi Ahmadov](https://github.com/ahmadov)). +* Изменён подход к хранению в памяти метаданных plain-rewritable дисков, что позволило устранить множество ошибок, связанных с вложенностью каталогов и сопутствующим поведением. [#89125](https://github.com/ClickHouse/ClickHouse/pull/89125) ([Mikhail Artemenko](https://github.com/Michicosun)). +* Подзапросы, которые используются в выражениях IN при выполнении запроса к таблице Iceberg, теперь будут корректно предварительно вычисляться до анализа отсечения партиций. [#89177](https://github.com/ClickHouse/ClickHouse/pull/89177) ([Daniil Ivanik](https://github.com/divanik)). +* Теперь по умолчанию включена настройка `create_table_empty_primary_key_by_default`, что улучшает удобство использования. [#89333](https://github.com/ClickHouse/ClickHouse/pull/89333) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлен некорректный код в движке базы данных `Backup`, из-за которого мог генерироваться недопустимый запрос при выполнении `SHOW CREATE DATABASE` или при запросе поля `engine_full` из `system.databases`. Закрывает [#89477](https://github.com/ClickHouse/ClickHouse/issues/89477). [#89341](https://github.com/ClickHouse/ClickHouse/pull/89341) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* В предыдущих версиях настройка `create_table_empty_primary_key_by_default` не действовала, если вы не указывали движок таблицы в запросе CREATE TABLE. [#89342](https://github.com/ClickHouse/ClickHouse/pull/89342) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Обновить `chdig` до v25.11.1 — включает значительные улучшения логирования и ряд других усовершенствований ([примечания к релизу 25.11](https://github.com/azat/chdig/releases/tag/v25.11.1)). [#89957](https://github.com/ClickHouse/ClickHouse/pull/89957) ([Azat Khuzhin](https://github.com/azat)). ([примечания к релизу 25.10](https://github.com/azat/chdig/releases/tag/v25.10.1)). [#89452](https://github.com/ClickHouse/ClickHouse/pull/89452) ([Azat Khuzhin](https://github.com/azat)). +* Ползунок изменения размера текстовой области для запроса в Web UI сделан во всю ширину, что делает работу немного удобнее. Кроме того, встроенный в браузер ресайзер был недоступен в Safari на iPad, и после этого изменения вы, по крайней мере, можете потянуть за нижний край текстовой области, если знаете об этой возможности. [#89457](https://github.com/ClickHouse/ClickHouse/pull/89457) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Улучшено отслеживание памяти при формировании результата хеш-соединений. Ранее временные выделения памяти при формировании результата соединения корректно не учитывались, что могло приводить к превышению лимита памяти. [#89560](https://github.com/ClickHouse/ClickHouse/pull/89560) ([Azat Khuzhin](https://github.com/azat)). +* Асинхронный серверный лог: более ранний сброс на диск и увеличенный размер очереди по умолчанию. [#89597](https://github.com/ClickHouse/ClickHouse/pull/89597) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлены некорректные значения `FilesystemCacheBytes` (и других) в `system.asynchronous_metrics`. `SYSTEM`‑запросы к файловым кэшам выполняются только один раз. Добавлено атомарное представление для кэшей, которое ссылается на тот же путь в `system.filesystem_caches`. [#89640](https://github.com/ClickHouse/ClickHouse/pull/89640) ([Azat Khuzhin](https://github.com/azat)). +* Уточнено описание некоторых столбцов в `system.view_refreshes`. [#89701](https://github.com/ClickHouse/ClickHouse/pull/89701) ([Tuan Pham Anh](https://github.com/tuanpach)). +* Кэшируйте учетные данные S3 при взаимодействии с конечной точкой STS, чтобы их можно было повторно использовать при различных вызовах функций. Объем кэша учетных данных можно контролировать с помощью `s3_credentials_provider_max_cache_size`. [#89734](https://github.com/ClickHouse/ClickHouse/pull/89734) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлено проталкивание фильтра времени выполнения при наличии под ним нескольких шагов вычисления выражений. [#89741](https://github.com/ClickHouse/ClickHouse/pull/89741) ([Alexander Gololobov](https://github.com/davenger)). +* Если объём системной памяти меньше 5 ГБ, по умолчанию не выполнять mlock исполняемого файла. [#89751](https://github.com/ClickHouse/ClickHouse/pull/89751) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Подсказки типов в веб-интерфейсе больше не выходят за пределы заголовка таблицы. Также исправлено отображение всплывающих подсказок — они больше не перекрываются заголовком таблицы. [#89753](https://github.com/ClickHouse/ClickHouse/pull/89753) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Отображать свойства таблицы в веб-интерфейсе. Щелчок по числу строк или байт откроет запрос к `system.tables`. Щелчок по движку таблицы откроет запрос `SHOW TABLES`. [#89771](https://github.com/ClickHouse/ClickHouse/pull/89771) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена поддержка `non_replicated_deduplication_window` для таблиц с диском, который не поддерживает дозапись (append). Исправляет [#87281](https://github.com/ClickHouse/ClickHouse/issues/87281). [#89796](https://github.com/ClickHouse/ClickHouse/pull/89796) ([Tuan Pham Anh](https://github.com/tuanpach)). +* Добавлена возможность указывать список таблиц для сброса в команде `SYSTEM FLUSH ASYNC INSERT QUEUE`. [#89915](https://github.com/ClickHouse/ClickHouse/pull/89915) ([Sema Checherinda](https://github.com/CheSema)). +* Хранить идентификаторы блоков дедупликации в `system.part_log`. [#89928](https://github.com/ClickHouse/ClickHouse/pull/89928) ([Sema Checherinda](https://github.com/CheSema)). +* Изменено значение по умолчанию параметра кэша файловой системы `keep_free_space_remove_batch` с 10 на 100, что более оптимально. [#90030](https://github.com/ClickHouse/ClickHouse/pull/90030) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Добавлен тип слияния TTL DROP, и расписание следующего слияния для удаления по TTL больше не обновляется после слияний этого типа. [#90077](https://github.com/ClickHouse/ClickHouse/pull/90077) ([Mikhail Artemenko](https://github.com/Michicosun)). +* Используется меньший лимит числа узлов для запроса Keeper RemoveRecursive при очистке S3Queue. [#90201](https://github.com/ClickHouse/ClickHouse/pull/90201) ([Antonio Andelic](https://github.com/antonio2368)). +* Сделать так, чтобы запрос `SYSTEM FLUSH LOGS` ожидал создания таблицы, даже если журналы пусты. [#89408](https://github.com/ClickHouse/ClickHouse/pull/89408) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Исправлена некорректная работа `rows_before_limit_at_least` при участии нескольких удалённых сегментов в распределённой агрегации с объединением или при наличии подзапросов с IN. Это исправляет [#63280](https://github.com/ClickHouse/ClickHouse/issues/63280). [#63511](https://github.com/ClickHouse/ClickHouse/pull/63511) ([Amos Bird](https://github.com/amosbird)). +* Исправлено некорректное появление сообщения `0 rows in set` после запроса `INSERT INTO ... SELECT`. Закрывает [#47800](https://github.com/ClickHouse/ClickHouse/issues/47800). [#79462](https://github.com/ClickHouse/ClickHouse/pull/79462) ([Engel Danila](https://github.com/aaaengel)). + +#### Исправление ошибки (ошибка, проявляющаяся для пользователя, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* Исправлена работа `multiIf` с константными аргументами и укороченной (short-circuit) оценкой. Закрывает [#72714](https://github.com/ClickHouse/ClickHouse/issues/72714). [#84546](https://github.com/ClickHouse/ClickHouse/pull/84546) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Исправлена логическая ошибка при выборке из таблицы с `CONSTRAINT`, содержащим подзапрос. Решает [#84190](https://github.com/ClickHouse/ClickHouse/issues/84190). [#85575](https://github.com/ClickHouse/ClickHouse/pull/85575) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* Исправлена ошибка в обработке специальных запросов, использующих URI с вопросительными знаками. [#85663](https://github.com/ClickHouse/ClickHouse/pull/85663) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Исправлено периодическое пропадание столбцов в выводе `EXPLAIN indexes = 1`. Исправляет ошибку [#86696](https://github.com/ClickHouse/ClickHouse/issues/86696). [#87083](https://github.com/ClickHouse/ClickHouse/pull/87083) ([Michael Kolupaev](https://github.com/al13n321)). +* Исправлена потенциальная ошибка `Cannot add subcolumn with parallel replicas`. Закрывает [#84888](https://github.com/ClickHouse/ClickHouse/issues/84888). [#87514](https://github.com/ClickHouse/ClickHouse/pull/87514) ([Pavel Kruglov](https://github.com/Avogar)). +* В parquet writer выводить строку `created_by` в корректном формате, например `ClickHouse version 25.10.1 (build 5b1dfb14925db8901a4e9202cd5d63c11ecfbb9f)` вместо `ClickHouse v25.9.1.1-testing`. Исправлена совместимость parquet reader с некорректными файлами, записанными устаревшей версией parquet-mr. [#87735](https://github.com/ClickHouse/ClickHouse/pull/87735) ([Michael Kolupaev](https://github.com/al13n321)). +* Исправлена ошибка в вычислении phi-squared, из-за которой получались некорректные результаты в `cramersV`, `cramersVBiasCorrected`, `theilsU` и `contingency`. [#87831](https://github.com/ClickHouse/ClickHouse/pull/87831) ([Nihал Z. Miaji](https://github.com/nihalzp)). +* Исправлено чтение массивов с элементами типов `Float` и `Bool` в JSON. Ранее вставка таких данных приводила к исключению. [#88008](https://github.com/ClickHouse/ClickHouse/pull/88008) ([Pavel Kruglov](https://github.com/Avogar)). +* Использование shared_ptr для QueryState в TCPHandler, чтобы определять, что состояние недействительно, в setProgressCallback, setFileProgressCallback и setBlockMarshallingCallback. [#88201](https://github.com/ClickHouse/ClickHouse/pull/88201) ([Tuan Pham Anh](https://github.com/tuanpach)). +* Исправлена логическая ошибка при переупорядочивании операций `CROSS JOIN`, если `query_plan_optimize_join_order_limit > 1`. Закрывает [#89409](https://github.com/ClickHouse/ClickHouse/issues/89409). [#88286](https://github.com/ClickHouse/ClickHouse/pull/88286) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Исправление [#88426](https://github.com/ClickHouse/ClickHouse/issues/88426): 1. Запретить явное задание столбцов в Alias и автоматически загружать столбцы из целевой таблицы. Это гарантирует, что Alias всегда соответствует схеме целевой таблицы. 2. Проксировать больше методов интерфейса IStorage. [#88552](https://github.com/ClickHouse/ClickHouse/pull/88552) ([Kai Zhu](https://github.com/nauu)). +* После восстановления реплика базы данных Replicated могла надолго застревать и продолжать выводить сообщения вида `Failed to marked query-0004647339 as finished (finished=No node, synced=No node)`, теперь это исправлено. [#88671](https://github.com/ClickHouse/ClickHouse/pull/88671) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Исправлена возможная ошибка "Context has expired" в новом анализаторе при работе с подзапросами. [#88694](https://github.com/ClickHouse/ClickHouse/pull/88694) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена ошибка сегментации в ридере Parquet, возникавшая, когда input_format_parquet_local_file_min_bytes_for_seek установлен в 0. Решает [#78456](https://github.com/ClickHouse/ClickHouse/issues/78456). [#88784](https://github.com/ClickHouse/ClickHouse/pull/88784) ([Animesh](https://github.com/anibilthare)). +* Исправлена некорректная работа min(PK)/max(PK), когда PK упорядочен в обратном порядке. Это исправление закрывает [#83619](https://github.com/ClickHouse/ClickHouse/issues/83619). [#88796](https://github.com/ClickHouse/ClickHouse/pull/88796) ([Amos Bird](https://github.com/amosbird)). +* Исправлено применение ограничений на размер, задаваемых настройками max_table_size_to_drop и max_partition_size_to_drop при выполнении DROP внутренних таблиц. [#88812](https://github.com/ClickHouse/ClickHouse/pull/88812) ([Nikolay Degterinsky](https://github.com/evillique)). +* Исправлена функция `top_k`, чтобы параметр порога учитывался при вызове с одним аргументом. Закрывает [#88757](https://github.com/ClickHouse/ClickHouse/issues/88757). [#88867](https://github.com/ClickHouse/ClickHouse/pull/88867) ([Manuel](https://github.com/raimannma)). +* Источники конечных точек ArrowFlight, требующие SSL-соединения (например, находящиеся за AWS ALB), теперь могут корректно запрашивать конкретный набор данных. [#88868](https://github.com/ClickHouse/ClickHouse/pull/88868) ([alex-shchetkov](https://github.com/alex-shchetkov)). +* Исправлена обработка нематериализованных Nested(Tuple(...)), добавленных с помощью ALTER. Исправлена ошибка [#83133](https://github.com/ClickHouse/ClickHouse/issues/83133). [#88879](https://github.com/ClickHouse/ClickHouse/pull/88879) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена ошибка в функции `reverseUTF8`. В предыдущих версиях она по ошибке инвертировала порядок байтов UTF-8-кодовых точек длиной 4. Это закрывает [#88913](https://github.com/ClickHouse/ClickHouse/issues/88913). [#88914](https://github.com/ClickHouse/ClickHouse/pull/88914) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлен протокол icebergS3Cluster. В функции icebergCluster добавлена поддержка эволюции схемы, позиционных и удалений по равенству. Исправлена ошибка [#88287](https://github.com/ClickHouse/ClickHouse/issues/88287). [#88919](https://github.com/ClickHouse/ClickHouse/pull/88919) ([Yang Jiang](https://github.com/Ted-Jiang)). +* Отключена parallel_replicas_support_projection для запросов с параллельными репликами к distributed таблицам. Закрывает [#88899](https://github.com/ClickHouse/ClickHouse/issues/88899). [#88922](https://github.com/ClickHouse/ClickHouse/pull/88922) ([zoomxi](https://github.com/zoomxi)). +* Теперь контекст передаётся при внутренних приведениях типов. Исправлено несколько проблем, из-за которых параметры приведения типов не передавались. Закрывает [#88873](https://github.com/ClickHouse/ClickHouse/issues/88873). Закрывает [#78025](https://github.com/ClickHouse/ClickHouse/issues/78025). [#88929](https://github.com/ClickHouse/ClickHouse/pull/88929) ([Manuel](https://github.com/raimannma)). +* Исправлена ошибка определения формата файла при использовании glob-шаблонов в функции file(). Устраняет [#88920](https://github.com/ClickHouse/ClickHouse/issues/88920). [#88947](https://github.com/ClickHouse/ClickHouse/pull/88947) ([Vitaly Baranov](https://github.com/vitlibar)). +* Перестать проверять доступ `SET DEFINER :definer` при создании представления с SQL SECURITY DEFINER. [#88968](https://github.com/ClickHouse/ClickHouse/pull/88968) ([pufit](https://github.com/pufit)). +* Исправлена `LOGICAL_ERROR` в функции `L2DistanceTransposed(vec1, vec2, p)`, при которой оптимизация частичного чтения `QBit` некорректно удаляла `Nullable` из возвращаемого типа, когда `p` был `Nullable`. [#88974](https://github.com/ClickHouse/ClickHouse/pull/88974) ([Raufs Dunamalijevs](https://github.com/rienath)). +* Исправлена ошибка, приводившая к падению при неизвестном типе каталога. Исправляет [#88819](https://github.com/ClickHouse/ClickHouse/issues/88819). [#88987](https://github.com/ClickHouse/ClickHouse/pull/88987) ([scanhex12](https://github.com/scanhex12)). +* Закрывает проблему [#88081](https://github.com/ClickHouse/ClickHouse/issues/88081). [#88988](https://github.com/ClickHouse/ClickHouse/pull/88988) ([scanhex12](https://github.com/scanhex12)). +* Исправлена деградация производительности при анализе пропускающих индексов. [#89004](https://github.com/ClickHouse/ClickHouse/pull/89004) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлена ошибка ACCESS_ENTITY_NOT_FOUND, возникавшая при выполнении clusterAllReplicas от пользователя с несуществующей ролью. Исправляет проблему [#87670](https://github.com/ClickHouse/ClickHouse/issues/87670). [#89068](https://github.com/ClickHouse/ClickHouse/pull/89068) ([pufit](https://github.com/pufit)). +* Исправлена обработка разрежённых столбцов с помощью ограничения CHECK. Закрывает [#88637](https://github.com/ClickHouse/ClickHouse/issues/88637). [#89076](https://github.com/ClickHouse/ClickHouse/pull/89076) ([Eduard Karacharov](https://github.com/korowa)). +* Исправлен некорректный подсчёт строк при заполнении виртуальных столбцов в MergeTreeReaderTextIndex, из-за которого происходило аварийное завершение с LOGICAL_ERROR. [#89095](https://github.com/ClickHouse/ClickHouse/pull/89095) ([Peng Jian](https://github.com/fastio)). +* Предотвращены утечки счетчика слияний TTL при возникновении исключений во время подготовки слияния. Исправлена ошибка [#89019](https://github.com/ClickHouse/ClickHouse/issues/89019). [#89127](https://github.com/ClickHouse/ClickHouse/pull/89127) ([save-my-heart](https://github.com/save-my-heart)). +* Исправлен расчет размера буфера, необходимого для операций кодирования и декодирования base32/base58. [#89133](https://github.com/ClickHouse/ClickHouse/pull/89133) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлена ошибка use-after-free в Distributed из-за условия гонки между завершением работы и фоновыми операциями INSERT. Устраняет [#88640](https://github.com/ClickHouse/ClickHouse/issues/88640). [#89136](https://github.com/ClickHouse/ClickHouse/pull/89136) ([Azat Khuzhin](https://github.com/azat)). +* Устранены потенциальные гонки данных, возникавшие из-за изменяемых исключений при разборе Parquet. Исправляет [#88385](https://github.com/ClickHouse/ClickHouse/issues/88385). [#89174](https://github.com/ClickHouse/ClickHouse/pull/89174) ([Azat Khuzhin](https://github.com/azat)). +* Refreshable materialized view: исправлен редкий сбой сервера, возникавший при полном удалении исходной таблицы в процессе обновления. [#89203](https://github.com/ClickHouse/ClickHouse/pull/89203) ([Michael Kolupaev](https://github.com/al13n321)). +* Сбрасывать буферы во время отправки ошибки в середине сжатого потока через HTTP-интерфейс. [#89256](https://github.com/ClickHouse/ClickHouse/pull/89256) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Исправлена ошибка, из-за которой правила маскировки запросов некорректно применялись к DDL-командам. [#89272](https://github.com/ClickHouse/ClickHouse/pull/89272) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* Исправлен некорректный подсчёт строк при заполнении виртуальных столбцов в MergeTreeReaderTextIndex, что приводило к сбою с LOGICAL_ERROR. Повторно открыт [#89095](https://github.com/ClickHouse/ClickHouse/issues/89095). [#89303](https://github.com/ClickHouse/ClickHouse/pull/89303) ([Jimmy Aguilar Mena](https://github.com/Ergus)). +* Исправлена ошибка, из-за которой STATISTICS countmin не поддерживал тип данных estimate для LowCardinality(Nullable(String)), что приводило к LOGICAL_ERROR. [#89343](https://github.com/ClickHouse/ClickHouse/pull/89343) ([Han Fei](https://github.com/hanfei1991)). +* Возможен сбой/неопределённое поведение в функции IN, когда типы столбцов первичного ключа отличаются от типов столбцов в правой части функции IN. Пример: SELECT string_column, int_column FROM test_table WHERE (string_column, int_column) IN (SELECT '5', 'not a number'). Проявляется, если выбирается много строк и среди них есть строки с несовместимыми типами данных. [#89367](https://github.com/ClickHouse/ClickHouse/pull/89367) ([Ilya Golshtein](https://github.com/ilejn)). +* Исправлено усечение аргументов функции `countIf(*)`. Закрывает [#89372](https://github.com/ClickHouse/ClickHouse/issues/89372). [#89373](https://github.com/ClickHouse/ClickHouse/pull/89373) ([Manuel](https://github.com/raimannma)). +* Предотвращена потеря несжатых контрольных сумм статистики при мутациях. [#89381](https://github.com/ClickHouse/ClickHouse/pull/89381) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена ошибка LOGICAL_ERROR в L2DistanceTransposed(vec1, vec2, p), при которой оптимизация частичного чтения QBit некорректно удаляла Nullable из типа возвращаемого значения, когда p имел тип LowCardinality(Nullable(T)). Устраняет [#88362](https://github.com/ClickHouse/ClickHouse/issues/88362). [#89397](https://github.com/ClickHouse/ClickHouse/pull/89397) ([Raufs Dunamalijevs](https://github.com/rienath)). +* Исправлена проблема загрузки таблиц с некорректной разреженной сериализацией самого типа `Tuple` (записанного более старыми версиями ClickHouse). [#89405](https://github.com/ClickHouse/ClickHouse/pull/89405) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена некорректная обработка слияния частей, очищенных TTL, с непустыми проекциями при использовании `deduplicate_merge_projection_mode='ignore'`. Устраняет [#89430](https://github.com/ClickHouse/ClickHouse/issues/89430). [#89458](https://github.com/ClickHouse/ClickHouse/pull/89458) ([Amos Bird](https://github.com/amosbird)). +* Исправлена логическая ошибка в алгоритме соединения `full_sorting_merge` при наличии дублирующихся столбцов. Устраняет проблему [#86957](https://github.com/ClickHouse/ClickHouse/issues/86957). [#89495](https://github.com/ClickHouse/ClickHouse/pull/89495) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Исправлено чтение журналов изменений при запуске Keeper, если журнал изменений не был корректно переименован во время ротации. [#89496](https://github.com/ClickHouse/ClickHouse/pull/89496) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлена ошибка, приводившая к некорректным результатам `JOIN` при использовании условий `OR` с уникальными ключами правой таблицы. Устранена проблема [#89391](https://github.com/ClickHouse/ClickHouse/issues/89391). [#89512](https://github.com/ClickHouse/ClickHouse/pull/89512) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Исправлена возможная ошибка «Context has expired» при использовании analyzer и PK IN (subquery) (v2). Устраняет [#89433](https://github.com/ClickHouse/ClickHouse/issues/89433). [#89527](https://github.com/ClickHouse/ClickHouse/pull/89527) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена репликация MaterializedPostgreSQL для таблиц с именами столбцов, заданными в верхнем регистре. Устраняет [#72363](https://github.com/ClickHouse/ClickHouse/issues/72363). [#89530](https://github.com/ClickHouse/ClickHouse/pull/89530) ([Danylo Osipchuk](https://github.com/Lenivaya)). +* Исправлена ошибка, приводившая к аварийному завершению работы в случае, когда состояние агрегатной функции содержит сериализованное значение столбца типа LowCardinality(String). [#89550](https://github.com/ClickHouse/ClickHouse/pull/89550) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлен сбой при использовании `ARRAY JOIN` в правой части оператора JOIN при включённой настройке `enable_lazy_columns_replication`. [#89551](https://github.com/ClickHouse/ClickHouse/pull/89551) ([Pavel Kruglov](https://github.com/Avogar)). +* Устранена логическая ошибка в query_plan_convert_join_to_in. Тем самым устранена проблема [#89066](https://github.com/ClickHouse/ClickHouse/issues/89066). [#89554](https://github.com/ClickHouse/ClickHouse/pull/89554) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Исправлено возникновение исключения в модуле оценки статистики при попытке оценить условия с несовместимыми типами столбца и константы, которые не могут быть преобразованы. [#89596](https://github.com/ClickHouse/ClickHouse/pull/89596) ([Han Fei](https://github.com/hanfei1991)). +* Добавлять runtime-фильтры только для поддерживаемых алгоритмов JOIN, то есть для hash join. Фильтр может быть построен только в том случае, если алгоритм JOIN сначала полностью читает правую сторону, а затем левую; однако, например, FullSortingMergeJoin читает обе стороны одновременно. Исправляет [#89220](https://github.com/ClickHouse/ClickHouse/issues/89220). [#89652](https://github.com/ClickHouse/ClickHouse/pull/89652) ([Alexander Gololobov](https://github.com/davenger)). +* Исправлены проблемы параллельного выполнения функций `hasAnyTokens`, `hasAllTokens` и `tokens` с токенизатором `sparseGrams`. Решает проблему [#89605](https://github.com/ClickHouse/ClickHouse/issues/89605). [#89665](https://github.com/ClickHouse/ClickHouse/pull/89665) ([Elmi Ahmadov](https://github.com/ahmadov)). +* Исправлены логическая ошибка и возможное падение при использовании runtime-фильтра соединения в некоторых случаях. Устраняет [#89062](https://github.com/ClickHouse/ClickHouse/issues/89062). [#89666](https://github.com/ClickHouse/ClickHouse/pull/89666) ([Alexander Gololobov](https://github.com/davenger)). +* Исправлена возможная логическая ошибка при выполнении ARRAY JOIN по столбцу типа Map при включённом `enable_lazy_columns_replication`. Закрывает [#89705](https://github.com/ClickHouse/ClickHouse/issues/89705). [#89717](https://github.com/ClickHouse/ClickHouse/pull/89717) ([Pavel Kruglov](https://github.com/Avogar)). +* Предотвращён сбой из-за чтения с удалённого сервера после отключения в удалённых запросах во время их отмены. Исправляет [#89468](https://github.com/ClickHouse/ClickHouse/issues/89468). [#89740](https://github.com/ClickHouse/ClickHouse/pull/89740) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена гонка при чтении индекса проекции. Исправляет [#89497](https://github.com/ClickHouse/ClickHouse/issues/89497). [#89762](https://github.com/ClickHouse/ClickHouse/pull/89762) ([Peng Jian](https://github.com/fastio)). +* Исправлена ошибка при чтении индекса проекции, которая могла приводить к состояниям гонки. Устраняет [#89497](https://github.com/ClickHouse/ClickHouse/issues/89497). [#89775](https://github.com/ClickHouse/ClickHouse/pull/89775) ([Amos Bird](https://github.com/amosbird)). +* Исправлена обработка табличной функции Paimon для таблиц без партиции. Устранена проблема [#89690](https://github.com/ClickHouse/ClickHouse/issues/89690). [#89793](https://github.com/ClickHouse/ClickHouse/pull/89793) ([JIaQi](https://github.com/JiaQiTang98)). +* Исправлена потенциальная логическая ошибка при чтении путей и их подстолбцов в расширенной сериализации разделяемых данных JSON. Закрывает [#89805](https://github.com/ClickHouse/ClickHouse/issues/89805). [#89819](https://github.com/ClickHouse/ClickHouse/pull/89819) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлено потенциальное переполнение стека при бинарной десериализации типов данных. Закрывает [#88710](https://github.com/ClickHouse/ClickHouse/issues/88710). [#89822](https://github.com/ClickHouse/ClickHouse/pull/89822) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена логическая ошибка при использовании пустого кортежа в выражении `IN`. Закрывает [#88343](https://github.com/ClickHouse/ClickHouse/issues/88343). [#89850](https://github.com/ClickHouse/ClickHouse/pull/89850) ([Nihal Z. Miaji](https://github.com/nihalzp)). +* Удалять инъективные функции из `GROUP BY` независимо от настройки `optimize_injective_functions_in_group_by` в старом анализаторе для совместимости. Устраняет [#89854](https://github.com/ClickHouse/ClickHouse/issues/89854). [#89870](https://github.com/ClickHouse/ClickHouse/pull/89870) ([Raufs Dunamalijevs](https://github.com/rienath)). +* Если merge был прерван, например, из‑за ограничения по памяти, фоновый исполнитель merge mutate вызовет `cancel` для задачи merge без блокировки, но в этом случае частично созданная результирующая часть не будет удалена (так как она не была завершена и на этом этапе не была видна). После этого задача merge будет уничтожена, что приведёт к уничтожению результирующей части. Это приведёт к откату транзакции на диске и удалению данных из S3. В конце эта очистка мусора выполнялась под блокировкой фонового исполнителя merge mutate. [#89875](https://github.com/ClickHouse/ClickHouse/pull/89875) ([Mikhail Artemenko](https://github.com/Michicosun)). +* Исправлена логическая ошибка при использовании пустого кортежа внутри функций `reverse` и `CAST`. Закрывает [#89137](https://github.com/ClickHouse/ClickHouse/issues/89137). [#89908](https://github.com/ClickHouse/ClickHouse/pull/89908) ([Nihal Z. Miaji](https://github.com/nihalzp)). +* Теперь ClickHouse по умолчанию будет показывать базу данных каталога озера данных в результате выполнения запроса `SHOW DATABASES`. [#89914](https://github.com/ClickHouse/ClickHouse/pull/89914) ([alesapin](https://github.com/alesapin)). +* Исправлена работа нативного копирования на GCS для резервного копирования. Из‑за некорректного клонирования клиента нативное копирование в GCS всегда завершалось с ошибкой, и вместо него использовался менее оптимальный подход с ручным чтением и записью данных. [#89923](https://github.com/ClickHouse/ClickHouse/pull/89923) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлен расчет размера буфера для base32Encode. Вычисление base32Encode для столбца строк длиной менее 5 могло приводить к аварийному завершению работы. Устраняет [#89911](https://github.com/ClickHouse/ClickHouse/issues/89911). [#89929](https://github.com/ClickHouse/ClickHouse/pull/89929) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлено некорректное экранирование для запросов `SHOW COLUMNS` и `SHOW FUNCTIONS`. [#89942](https://github.com/ClickHouse/ClickHouse/pull/89942) ([alesapin](https://github.com/alesapin)). +* Исправлена проверка URL в движке MongoDB для случаев, когда имя пользователя содержит символ '@'. Ранее такие имена вызывали ошибку из-за некорректного кодирования. [#89970](https://github.com/ClickHouse/ClickHouse/pull/89970) ([Kai Zhu](https://github.com/nauu)). +* Бэкпортировано в [#90592](https://github.com/ClickHouse/ClickHouse/issues/90592): исправлена возможная аварийная остановка при выполнении удалённого запроса с `ARRAY JOIN` внутри `IN` при включённой настройке `enable_lazy_columns_replication`. Исправляет [#90361](https://github.com/ClickHouse/ClickHouse/issues/90361). [#89997](https://github.com/ClickHouse/ClickHouse/pull/89997) ([Pavel Kruglov](https://github.com/Avogar)). +* Бэкпортировано в [#90448](https://github.com/ClickHouse/ClickHouse/issues/90448): исправлено определение некорректных значений DateTime64 из строковых значений в текстовых форматах в некоторых случаях. Исправляет [#89368](https://github.com/ClickHouse/ClickHouse/issues/89368). [#90013](https://github.com/ClickHouse/ClickHouse/pull/90013) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена логическая ошибка, возникавшая при наличии пустого столбца-кортежа в `BSONEachRow` и `MsgPack`. Закрывает [#89814](https://github.com/ClickHouse/ClickHouse/issues/89814). Закрывает [#71536](https://github.com/ClickHouse/ClickHouse/issues/71536). [#90018](https://github.com/ClickHouse/ClickHouse/pull/90018) ([Nihal Z. Miaji](https://github.com/nihalzp)). +* Бэкпортировано в [#90457](https://github.com/ClickHouse/ClickHouse/issues/90457): добавлены проверки размера при десериализации данных из состояний агрегации и других источников. [#90031](https://github.com/ClickHouse/ClickHouse/pull/90031) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена возможная ошибка 'Invalid number of rows in Chunk' при выполнении JOIN с дублирующимися столбцами. Устраняет [#89411](https://github.com/ClickHouse/ClickHouse/issues/89411). [#90053](https://github.com/ClickHouse/ClickHouse/pull/90053) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Бэкпортировано в [#90588](https://github.com/ClickHouse/ClickHouse/issues/90588): исправлена потенциальная ошибка `Column with Array type is not represented by ColumnArray column: Replicated` при вставке с использованием `ARRAY JOIN` и включённой настройке `enable_lazy_columns_replication`. [#90066](https://github.com/ClickHouse/ClickHouse/pull/90066) ([Pavel Kruglov](https://github.com/Avogar)). +* Разрешены файлы, имена которых начинаются с точки, в директории user_files. Устраняет проблему [#89662](https://github.com/ClickHouse/ClickHouse/issues/89662). [#90079](https://github.com/ClickHouse/ClickHouse/pull/90079) ([Raúl Marín](https://github.com/Algunenano)). +* Бэкпортировано в [#90647](https://github.com/ClickHouse/ClickHouse/issues/90647): исправлена логическая ошибка и баг в вычислении остатка по модулю в системной таблице `numbers` при большом размере шага. Закрывает [#83398](https://github.com/ClickHouse/ClickHouse/issues/83398). [#90123](https://github.com/ClickHouse/ClickHouse/pull/90123) ([Nihal Z. Miaji](https://github.com/nihalzp)). +* Исправлено целочисленное переполнение при разборе аргументов словаря. Закрывает [#78506](https://github.com/ClickHouse/ClickHouse/issues/78506). [#90171](https://github.com/ClickHouse/ClickHouse/pull/90171) ([Raúl Marín](https://github.com/Algunenano)). +* Бэкпортировано в [#90468](https://github.com/ClickHouse/ClickHouse/issues/90468): исправлена несовместимость Hive-партиционирования, препятствовавшая беспроблемному обновлению до 25.8 (исправляет ошибку `All hive partitioning columns must be present in the schema` во время обновления). [#90202](https://github.com/ClickHouse/ClickHouse/pull/90202) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлены возможные некорректные результаты запросов после легковесных обновлений в запросах `SELECT` при включённом кэше условий запроса. Исправляет [#90176](https://github.com/ClickHouse/ClickHouse/issues/90176). Исправляет [#90054](https://github.com/ClickHouse/ClickHouse/issues/90054). [#90204](https://github.com/ClickHouse/ClickHouse/pull/90204) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлено аварийное завершение работы StorageDistributed при разборе некорректных имён каталогов сегментов. [#90243](https://github.com/ClickHouse/ClickHouse/pull/90243) ([Aleksandr Musorin](https://github.com/AVMusorin)). +* Добавлена обработка неявного преобразования строки в целое число или логическое значение в `LogicalExpressionOptimizerPass`. Исправляет [#89803](https://github.com/ClickHouse/ClickHouse/issues/89803). [#90245](https://github.com/ClickHouse/ClickHouse/pull/90245) ([Elmi Ahmadov](https://github.com/ahmadov)). +* Исправлено некорректное форматирование отдельных skip-индексов в определении таблицы, приводившее к ошибке `METADATA_MISMATCH` и мешавшее созданию новых реплик в реплицируемой базе данных. [#90251](https://github.com/ClickHouse/ClickHouse/pull/90251) ([Nikolay Degterinsky](https://github.com/evillique)). +* Бэкпортировано в [#90381](https://github.com/ClickHouse/ClickHouse/issues/90381): исправлено несоответствие количества строк в MergeTreeReaderIndex, когда в части меньше строк, чем index_granularity. Исправляет [#89691](https://github.com/ClickHouse/ClickHouse/issues/89691). [#90254](https://github.com/ClickHouse/ClickHouse/pull/90254) ([Peng Jian](https://github.com/fastio)). +* Бэкпортировано в [#90608](https://github.com/ClickHouse/ClickHouse/issues/90608): исправлена ошибка чтения подстолбцов из JSON в компактных частях, которая могла приводить к ошибке `CANNOT_READ_ALL_DATA`. Закрывает [#90264](https://github.com/ClickHouse/ClickHouse/issues/90264). [#90302](https://github.com/ClickHouse/ClickHouse/pull/90302) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена проблема, из-за которой функции `trim`, `ltrim`, `rtrim` не работали с двумя аргументами. Исправление закрывает [#90170](https://github.com/ClickHouse/ClickHouse/issues/90170). [#90305](https://github.com/ClickHouse/ClickHouse/pull/90305) ([Nihал Z. Miaji](https://github.com/nihalzp)). +* Бэкпортировано в [#90625](https://github.com/ClickHouse/ClickHouse/issues/90625): исправлена возможная логическая ошибка в `prewhere` при обращении к несуществующему JSON-пути при `index_granularity_bytes=0`. Устраняет [#86924](https://github.com/ClickHouse/ClickHouse/issues/86924). [#90375](https://github.com/ClickHouse/ClickHouse/pull/90375) ([Pavel Kruglov](https://github.com/Avogar)). +* Бэкпортировано в [#90484](https://github.com/ClickHouse/ClickHouse/issues/90484): исправлена ошибка в `L2DistanceTransposed`, приводившая к сбоям при превышении аргументом точности допустимого диапазона. Закрывает [#90401](https://github.com/ClickHouse/ClickHouse/issues/90401). [#90405](https://github.com/ClickHouse/ClickHouse/pull/90405) ([Raufs Dunamalijevs](https://github.com/rienath)). +* Бэкпортировано в [#90577](https://github.com/ClickHouse/ClickHouse/issues/90577): исправлены некорректные вычисления расстояния в `L2DistanceTransposed` при использовании опорных векторов в виде массивов (по умолчанию `Array(Float64)`) со столбцами `QBit` с элементным типом, отличным от `Float64` (`Float32`, `BFloat16`). Теперь функция автоматически приводит опорный вектор к элементному типу `QBit`. Устраняет [#89976](https://github.com/ClickHouse/ClickHouse/issues/89976). [#90485](https://github.com/ClickHouse/ClickHouse/pull/90485) ([Raufs Dunamalijevs](https://github.com/rienath)). +* Бэкпортировано в [#90601](https://github.com/ClickHouse/ClickHouse/issues/90601): исправлена логическая ошибка, возникающая в редком случае в функции `equals`. Закрывает [#88142](https://github.com/ClickHouse/ClickHouse/issues/88142). [#90557](https://github.com/ClickHouse/ClickHouse/pull/90557) ([Nihal Z. Miaji](https://github.com/nihalzp)). +* Исправлена работа `CoalescingMergeTree` с типами `Tuple`. [#88828](https://github.com/ClickHouse/ClickHouse/pull/88828) ([scanhex12](https://github.com/scanhex12)). + +#### Улучшения в сборке/тестировании/упаковке {#buildtestingpackaging-improvement} + +* Исправлена ошибка Connection refused при запуске ClickHouse в Docker с initdb SQL-скриптами и переопределённым TCP-портом. [#88042](https://github.com/ClickHouse/ClickHouse/pull/88042) ([Grigorii](https://github.com/GSokol)). +* Экспериментально добавлена поддержка e2k как новой платформы для ClickHouse. [#90159](https://github.com/ClickHouse/ClickHouse/pull/90159) ([Ramil Sattarov](https://github.com/r-a-sattarov)). +* Удалено оставшееся использование `FindPackage` в CMake. Сборка не должна зависеть от системных пакетов. [#89380](https://github.com/ClickHouse/ClickHouse/pull/89380) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Включено использование кеша компилятора при сборке на этапе конфигурации CMake (например, для `protoc`). [#89613](https://github.com/ClickHouse/ClickHouse/pull/89613) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Используется sysroot FreeBSD 13.4. [#89617](https://github.com/ClickHouse/ClickHouse/pull/89617) ([Konstantin Bogdanov](https://github.com/thevar1able)). + +### Релиз ClickHouse 25.10 — 2025-10-31 {#2510} + +#### Несовместимые изменения {#backward-incompatible-change} + +* Изменено значение по умолчанию настройки `schema_inference_make_columns_nullable`, чтобы учитывать из метаданных Parquet/ORC/Arrow информацию о том, являются ли столбцы Nullable, вместо того чтобы делать все столбцы Nullable. Для текстовых форматов изменений нет. [#71499](https://github.com/ClickHouse/ClickHouse/pull/71499) ([Michael Kolupaev](https://github.com/al13n321)). +* Кэш результатов запроса будет игнорировать настройку `log_comment`, поэтому изменение только `log_comment` в запросе больше не будет приводить к промаху кэша. Существует небольшая вероятность, что пользователи намеренно сегментировали свой кэш, изменяя `log_comment`. Это изменение изменяет такое поведение и, следовательно, является несовместимым с предыдущими версиями. Для этой цели используйте настройку `query_cache_tag`. [#79878](https://github.com/ClickHouse/ClickHouse/pull/79878) ([filimonov](https://github.com/filimonov)). +* В предыдущих версиях запросы с табличными функциями, названными так же, как функции реализации операторов, форматировались непоследовательно. Закрывает [#81601](https://github.com/ClickHouse/ClickHouse/issues/81601). Закрывает [#81977](https://github.com/ClickHouse/ClickHouse/issues/81977). Закрывает [#82834](https://github.com/ClickHouse/ClickHouse/issues/82834). Закрывает [#82835](https://github.com/ClickHouse/ClickHouse/issues/82835). Запросы EXPLAIN SYNTAX больше не будут всегда форматировать операторы — новое поведение лучше отражает назначение пояснения синтаксиса. `clickhouse-format`, `formatQuery` и аналогичные инструменты не будут форматировать функции как операторы, если в запросе они использовались в функциональной форме. [#82825](https://github.com/ClickHouse/ClickHouse/pull/82825) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Запрещено использовать тип `Dynamic` в ключах `JOIN`, так как это может приводить к непредсказуемым результатам при сравнении значения типа `Dynamic` со значением другого типа. Лучше явно привести столбец `Dynamic` к требуемому типу. [#86358](https://github.com/ClickHouse/ClickHouse/pull/86358) ([Pavel Kruglov](https://github.com/Avogar)). +* Опция сервера `storage_metadata_write_full_object_key` теперь по умолчанию включена, и в настоящий момент её нельзя отключить. Это обратно совместимое изменение. Сообщаем это только для вашего сведения. Это изменение обратно совместимо только с релизами 25.x. Это означает, что при необходимости отката нового релиза вы сможете перейти только на любой релиз ветки 25.x. [#87335](https://github.com/ClickHouse/ClickHouse/pull/87335) ([Sema Checherinda](https://github.com/CheSema)). +* Уменьшить `replicated_deduplication_window_seconds` с одной недели до одного часа, чтобы хранить меньше znode в ZooKeeper при низкой частоте вставок. [#87414](https://github.com/ClickHouse/ClickHouse/pull/87414) ([Sema Checherinda](https://github.com/CheSema)). +* Переименована настройка `query_plan_use_new_logical_join_step` в `query_plan_use_logical_join_step`. [#87679](https://github.com/ClickHouse/ClickHouse/pull/87679) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Новый синтаксис позволяет более гибко задавать параметр tokenizer текстового индекса. [#87997](https://github.com/ClickHouse/ClickHouse/pull/87997) ([Elmi Ahmadov](https://github.com/ahmadov)). +* Функции `searchAny` и `searchAll` были переименованы в `hasAnyTokens` и `hasAllTokens` для большей согласованности с существующей функцией `hasToken`. [#88109](https://github.com/ClickHouse/ClickHouse/pull/88109) ([Robert Schulze](https://github.com/rschu1ze)). +* Из кэша файловой системы удалён параметр `cache_hits_threshold`. Эта функция была добавлена сторонним участником до появления политики кэширования SLRU, и теперь, когда она у нас есть, нет смысла поддерживать обе одновременно. [#88344](https://github.com/ClickHouse/ClickHouse/pull/88344) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Два небольших изменения в том, как работают настройки `min_free_disk_ratio_to_perform_insert` и `min_free_disk_bytes_to_perform_insert`: - использовать незарезервированные, а не доступные байты для определения, должна ли операция вставки быть отклонена. Вероятно, это не критично, если резервы для фоновых слияний и мутаций невелики по сравнению с настроенными порогами, но так более корректно. - Не применять эти настройки к системным таблицам. Причина в том, что мы по‑прежнему хотим, чтобы такие таблицы, как `query_log`, продолжали обновляться. Это сильно помогает при отладке. Объём данных, записываемых в системные таблицы, обычно невелик по сравнению с основными данными, поэтому они смогут работать значительно дольше при разумном пороге `min_free_disk_ratio_to_perform_insert`. [#88468](https://github.com/ClickHouse/ClickHouse/pull/88468) ([c-end](https://github.com/c-end)). +* Включите асинхронный режим для внутренней репликации Keeper. Keeper сохранит прежнее поведение, при этом возможно повышение производительности. Если вы обновляетесь с версии ниже 23.9, вам нужно сначала обновиться до 23.9+ и затем до 25.10+. Вы также можете установить `keeper_server.coordination_settings.async_replication` равным 0 перед обновлением и включить его после завершения обновления. [#88515](https://github.com/ClickHouse/ClickHouse/pull/88515) ([Antonio Andelic](https://github.com/antonio2368)). + +#### Новые возможности {#new-feature} + +* Добавлена поддержка отрицательных значений параметров `LIMIT` и `OFFSET`. Закрывает [#28913](https://github.com/ClickHouse/ClickHouse/issues/28913). [#88411](https://github.com/ClickHouse/ClickHouse/pull/88411) ([Nihal Z. Miaji](https://github.com/nihalzp)). +* Движок `Alias` создает алиас для другой таблицы. Все операции чтения и записи перенаправляются в целевую таблицу, при этом сам алиас не хранит данные и лишь содержит ссылку на целевую таблицу. [#87965](https://github.com/ClickHouse/ClickHouse/pull/87965) ([Kai Zhu](https://github.com/nauu)). +* Полная поддержка оператора `IS NOT DISTINCT FROM` (`<=>`). [#88155](https://github.com/ClickHouse/ClickHouse/pull/88155) ([simonmichal](https://github.com/simonmichal)). +* Добавлена возможность автоматически создавать статистику по всем подходящим столбцам в таблицах `MergeTree`. Добавлена настройка уровня таблицы `auto_statistics_types`, в которой хранятся перечисленные через запятую типы статистики, которые нужно создавать (например, `auto_statistics_types = 'minmax, uniq, countmin'`). [#87241](https://github.com/ClickHouse/ClickHouse/pull/87241) ([Anton Popov](https://github.com/CurtizJ)). +* Новый индекс блум-фильтра для текстовых данных, `sparse_gram`. [#79985](https://github.com/ClickHouse/ClickHouse/pull/79985) ([scanhex12](https://github.com/scanhex12)). +* Новая функция `conv` для преобразования чисел между системами счисления, сейчас поддерживаются основания от `2` до `36`. [#83058](https://github.com/ClickHouse/ClickHouse/pull/83058) ([hp](https://github.com/hp77-creator)). +* Добавлена поддержка синтаксиса `LIMIT BY ALL`. Аналогично `GROUP BY ALL` и `ORDER BY ALL`, `LIMIT BY ALL` автоматически подставляет в LIMIT BY все неагрегатные выражения из предложения SELECT в качестве ключей. Например, `SELECT id, name, count(*) FROM table GROUP BY id LIMIT 1 BY ALL` эквивалентен `SELECT id, name, count(*) FROM table GROUP BY id LIMIT 1 BY id, name`. Эта возможность упрощает запросы, когда нужно ограничить результат по всем выбранным неагрегатным столбцам, не перечисляя их явно. Закрывает [#59152](https://github.com/ClickHouse/ClickHouse/issues/59152). [#84079](https://github.com/ClickHouse/ClickHouse/pull/84079) ([Surya Kant Ranjan](https://github.com/iit2009046)). +* Добавлена поддержка выполнения запросов к Apache Paimon из ClickHouse. Эта интеграция позволяет пользователям ClickHouse напрямую работать с хранилищем озера данных Paimon. [#84423](https://github.com/ClickHouse/ClickHouse/pull/84423) ([JIaQi](https://github.com/JiaQiTang98)). +* Добавлена агрегатная функция `studentTTestOneSample`. [#85436](https://github.com/ClickHouse/ClickHouse/pull/85436) ([Dylan](https://github.com/DylanBlakemore)). +* Агрегатная функция `quantilePrometheusHistogram` принимает в качестве аргументов верхние границы и накопительные значения бакетов гистограммы и выполняет линейную интерполяцию между верхней и нижней границами бакета, в котором расположена требуемая квантиль. Ведёт себя аналогично функции PromQL `histogram_quantile` для классических гистограмм. [#86294](https://github.com/ClickHouse/ClickHouse/pull/86294) ([Stephen Chi](https://github.com/stephchi0)). +* Новая системная таблица для файлов метаданных Delta Lake. [#87263](https://github.com/ClickHouse/ClickHouse/pull/87263) ([scanhex12](https://github.com/scanhex12)). +* Добавлена команда `ALTER TABLE REWRITE PARTS` — полностью переписывает части таблицы заново, используя все новые настройки (поскольку некоторые, такие как `use_const_adaptive_granularity`, применяются только к новым частям). [#87774](https://github.com/ClickHouse/ClickHouse/pull/87774) ([Azat Khuzhin](https://github.com/azat)). +* Добавлена команда `SYSTEM RECONNECT ZOOKEEPER` для принудительного разрыва соединения с ZooKeeper и последующего переподключения ([https://github.com/ClickHouse/ClickHouse/issues/87317](https://github.com/ClickHouse/ClickHouse/issues/87317)). [#87318](https://github.com/ClickHouse/ClickHouse/pull/87318) ([Pradeep Chhetri](https://github.com/chhetripradeep)). +* Ограничено число именованных коллекций с помощью параметров `max_named_collection_num_to_warn` и `max_named_collection_num_to_throw`. Добавлена новая метрика `NamedCollection` и ошибка `TOO_MANY_NAMED_COLLECTIONS`. [#87343](https://github.com/ClickHouse/ClickHouse/pull/87343) ([Pablo Marcos](https://github.com/pamarcos)). +* Добавлены оптимизированные варианты функций `startsWith` и `endsWith`, нечувствительные к регистру: `startsWithCaseInsensitive`, `endsWithCaseInsensitive`, `startsWithCaseInsensitiveUTF8` и `endsWithCaseInsensitiveUTF8`. [#87374](https://github.com/ClickHouse/ClickHouse/pull/87374) ([Guang Zhao](https://github.com/zheguang)). +* Добавлена возможность задавать определения `WORKLOAD` и `RESOURCE` в SQL с использованием секции конфигурации сервера «resources_and_workloads». [#87430](https://github.com/ClickHouse/ClickHouse/pull/87430) ([Sergei Trifonov](https://github.com/serxa)). +* Добавлена новая настройка таблицы `min_level_for_wide_part`, позволяющая задать минимальный уровень части, которая будет создаваться как широкая. [#88179](https://github.com/ClickHouse/ClickHouse/pull/88179) ([Christoph Wurm](https://github.com/cwurm)). +* Добавлены рекурсивные варианты команд `cp`-`cpr` и `mv`-`mvr` в клиенте Keeper. [#88570](https://github.com/ClickHouse/ClickHouse/pull/88570) ([Mikhail Artemenko](https://github.com/Michicosun)). +* Добавлена сессионная настройка для исключения списка skip-индексов из материализации при вставках (`exclude_materialize_skip_indexes_on_insert`). Добавлена настройка таблиц семейства MergeTree для исключения списка skip-индексов из материализации во время слияния (`exclude_materialize_skip_indexes_on_merge`). [#87252](https://github.com/ClickHouse/ClickHouse/pull/87252) ([George Larionov](https://github.com/george-larionov)). + +#### Экспериментальная функциональность {#experimental-feature} + +* Реализован тип данных `QBit`, который хранит векторы в бит-слайсинговом формате, и функция `L2DistanceTransposed`, позволяющая выполнять приближённый векторный поиск, в котором компромисс между точностью и скоростью задаётся параметром. [#87922](https://github.com/ClickHouse/ClickHouse/pull/87922) ([Raufs Dunamalijevs](https://github.com/rienath)). +* Функции `searchAll` и `searchAny` теперь работают и для столбцов без текстовых данных. В таких случаях они используют токенизатор по умолчанию. [#87722](https://github.com/ClickHouse/ClickHouse/pull/87722) ([Jimmy Aguilar Mena](https://github.com/Ergus)). + +#### Повышение производительности {#performance-improvement} + +* Реализована ленивая репликация столбцов в `JOIN` и `ARRAY JOIN`. Исключено преобразование специального представления столбцов, такого как `Sparse` и `Replicated`, в полные столбцы в некоторых форматах вывода. Это позволяет избежать лишнего копирования данных в памяти. [#88752](https://github.com/ClickHouse/ClickHouse/pull/88752) ([Pavel Kruglov](https://github.com/Avogar)). +* Добавлена возможность необязательной сериализации подстолбца `.size` для строковых столбцов верхнего уровня в таблицах MergeTree для улучшения сжатия и обеспечения эффективного доступа к подстолбцу. Введены новые настройки MergeTree для контроля версии сериализации и оптимизации выражений для пустых строк. [#82850](https://github.com/ClickHouse/ClickHouse/pull/82850) ([Amos Bird](https://github.com/amosbird)). +* Поддержка упорядоченного чтения для Iceberg. [#88454](https://github.com/ClickHouse/ClickHouse/pull/88454) ([scanhex12](https://github.com/scanhex12)). +* Ускорена работа некоторых запросов с `JOIN` за счёт построения bloom-фильтра из правого поддерева во время выполнения запроса и передачи этого фильтра операции сканирования в левом поддереве. Это может быть полезно для запросов вида `SELECT avg(o_totalprice) FROM orders, customer, nation WHERE c_custkey = o_custkey AND c_nationkey=n_nationkey AND n_name = 'FRANCE'`. [#84772](https://github.com/ClickHouse/ClickHouse/pull/84772) ([Alexander Gololobov](https://github.com/davenger)). +* Улучшена производительность запросов за счёт рефакторинга порядка и интеграции Query Condition Cache (QCC) с анализом индексов. Фильтрация с помощью QCC теперь применяется до анализа первичного ключа и пропускающих индексов, что уменьшает избыточные вычисления индексов. Анализ индексов расширен для поддержки нескольких диапазонных фильтров, а его результаты фильтрации теперь сохраняются обратно в QCC. Это существенно ускоряет запросы, в которых анализ индексов занимает основную долю времени выполнения, особенно те, которые полагаются на пропускающие индексы (например, векторные или инвертированные индексы). [#82380](https://github.com/ClickHouse/ClickHouse/pull/82380) ([Amos Bird](https://github.com/amosbird)). +* Целый ряд микрооптимизаций для ускорения выполнения небольших запросов. [#83096](https://github.com/ClickHouse/ClickHouse/pull/83096) ([Raúl Marín](https://github.com/Algunenano)). +* Сжимаются логи и события профилирования во внутреннем протоколе. На кластерах со 100+ реплик несжатые события профилирования занимают 1–10 МБ/с, а индикатор прогресса заметно тормозит при медленном интернет-соединении. Это закрывает [#82533](https://github.com/ClickHouse/ClickHouse/issues/82533). [#83586](https://github.com/ClickHouse/ClickHouse/pull/83586) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Улучшена производительность поиска строк с учетом регистра (операции фильтрации, например `WHERE URL LIKE '%google%'`) за счет использования библиотеки [StringZilla](https://github.com/ashvardanian/StringZilla), применяющей SIMD-инструкции CPU при наличии поддержки. [#84161](https://github.com/ClickHouse/ClickHouse/pull/84161) ([Raúl Marín](https://github.com/Algunenano)). +* Снижено количество операций выделения и копирования памяти при выполнении `SELECT` из таблицы типа `AggregatingMergeTree` с `FINAL`, когда таблица содержит столбцы типа `SimpleAggregateFunction(anyLast)`. [#84428](https://github.com/ClickHouse/ClickHouse/pull/84428) ([Duc Canh Le](https://github.com/canhld94)). +* Реализует логику проталкивания дизъюнктивных предикатов JOIN. Например, в TPC-H Q7 для условия для двух таблиц n1 и n2 вида `(n1.n_name = 'FRANCE' AND n2.n_name = 'GERMANY') OR (n1.n_name = 'GERMANY' AND n2.n_name = 'FRANCE')` мы извлекаем отдельные частичные фильтры для каждой таблицы: `n1.n_name = 'FRANCE' OR n1.n_name = 'GERMANY'` для n1 и `n2.n_name = 'GERMANY' OR n2.n_name = 'FRANCE'` для n2. [#84735](https://github.com/ClickHouse/ClickHouse/pull/84735) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Повышена производительность выражений `LIKE` с префиксом или суффиксом за счёт нового значения по умолчанию для настройки `optimize_rewrite_like_perfect_affix`. [#85920](https://github.com/ClickHouse/ClickHouse/pull/85920) ([Guang Zhao](https://github.com/zheguang)). +* Исправлено снижение производительности, связанное с большим сериализованным ключом при группировке по нескольким строковым и числовым столбцам. Это продолжение [#83884](https://github.com/ClickHouse/ClickHouse/pull/83884). [#85924](https://github.com/ClickHouse/ClickHouse/pull/85924) ([李扬](https://github.com/taiyang-li)). +* Добавлена новая настройка `joined_block_split_single_row` для уменьшения потребления памяти при хеш-соединениях с большим числом совпадений по ключу. Она позволяет разбивать результаты хеш-соединения на фрагменты даже в пределах совпадений для одной строки левой таблицы, что особенно полезно, когда одна строка из левой таблицы сопоставляется с тысячами или миллионами строк из правой таблицы. Ранее все совпадения приходилось материализовывать в памяти одновременно. Это снижает пиковое потребление памяти, но может увеличить нагрузку на CPU. [#87913](https://github.com/ClickHouse/ClickHouse/pull/87913) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Улучшен SharedMutex, что повысило производительность при большом числе одновременных запросов. [#87491](https://github.com/ClickHouse/ClickHouse/pull/87491) ([Raúl Marín](https://github.com/Algunenano)). +* Повышена производительность построения текстового индекса для документов, в которых большинство токенов встречается редко. [#87546](https://github.com/ClickHouse/ClickHouse/pull/87546) ([Anton Popov](https://github.com/CurtizJ)). +* Оптимизирован типичный случай работы деструктора `Field` (улучшена производительность при большом количестве небольших запросов). [#87631](https://github.com/ClickHouse/ClickHouse/pull/87631) ([Raúl Marín](https://github.com/Algunenano)). +* Пропускается пересчёт статистики хеш-таблицы во время выполнения при оптимизации JOIN (что повышает производительность всех запросов с JOIN). Добавлены новые профильные события `JoinOptimizeMicroseconds` и `QueryPlanOptimizeMicroseconds`. [#87683](https://github.com/ClickHouse/ClickHouse/pull/87683) ([Vladimir Cherkasov](https://github.com/vdimir)). +* В ридере MergeTreeLazy включено сохранение меток в кэше и устранён прямой доступ к диску. Это повышает производительность запросов с ORDER BY и небольшим LIMIT. [#87989](https://github.com/ClickHouse/ClickHouse/pull/87989) ([Nikita Taranov](https://github.com/nickitat)). +* SELECT-запрос с оператором `FINAL` по таблице `ReplacingMergeTree` со столбцом `is_deleted` теперь выполняется быстрее благодаря улучшенной параллелизации на основе двух существующих оптимизаций: 1. оптимизация `do_not_merge_across_partitions_select_final` для партиций таблицы, содержащих только один `part`; 2. разделение остальных выбранных диапазонов таблицы на `intersecting / non-intersecting`, при этом через этап слияния FINAL проходят только пересекающиеся диапазоны. [#88090](https://github.com/ClickHouse/ClickHouse/pull/88090) ([Shankar Iyer](https://github.com/shankar-iyer)). +* Снижено влияние использования пути выполнения без fail points (пути выполнения по умолчанию при отключённой отладке). [#88196](https://github.com/ClickHouse/ClickHouse/pull/88196) ([Raúl Marín](https://github.com/Algunenano)). +* Теперь избегается полное сканирование `system.tables` при фильтрации по `uuid` (это может быть полезно, если у вас есть только UUID из логов или пути в ZooKeeper). [#88379](https://github.com/ClickHouse/ClickHouse/pull/88379) ([Azat Khuzhin](https://github.com/azat)). +* Улучшена производительность функций `tokens`, `hasAllTokens`, `hasAnyTokens`. [#88416](https://github.com/ClickHouse/ClickHouse/pull/88416) ([Anton Popov](https://github.com/CurtizJ)). +* Инлайнили `AddedColumns::appendFromBlock` для небольшого улучшения производительности операций JOIN в некоторых случаях. [#88455](https://github.com/ClickHouse/ClickHouse/pull/88455) ([Nikita Taranov](https://github.com/nickitat)). +* Автодополнение в клиенте стало быстрее и более единообразным за счёт использования `system.completions` вместо выполнения нескольких запросов к системным таблицам. [#84694](https://github.com/ClickHouse/ClickHouse/pull/84694) ([|2ustam](https://github.com/RuS2m)). +* Добавлен новый параметр текстового индекса `dictionary_block_frontcoding_compression`, управляющий сжатием словаря. По умолчанию он включён, и используется сжатие `front-coding`. [#87175](https://github.com/ClickHouse/ClickHouse/pull/87175) ([Elmi Ahmadov](https://github.com/ahmadov)). +* Перед вставкой в materialized views данные со всех потоков объединяются в зависимости от настроек `min_insert_block_size_rows_for_materialized_views` и `min_insert_block_size_bytes_for_materialized_views`. Ранее, если `parallel_view_processing` был включен, каждый поток, выполнявший вставку в конкретный materialized view, объединял данные независимо, что могло приводить к увеличению числа создаваемых частей. [#87280](https://github.com/ClickHouse/ClickHouse/pull/87280) ([Antonio Andelic](https://github.com/antonio2368)). +* Добавлена настройка `temporary_files_buffer_size` для управления размером буфера при записи во временные файлы. * Оптимизировано потребление памяти операцией `scatter` (используется, например, в операции grace hash join) для столбцов типа `LowCardinality`. [#88237](https://github.com/ClickHouse/ClickHouse/pull/88237) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Добавлена поддержка прямого чтения из текстовых индексов на параллельных репликах. Улучшена производительность чтения текстовых индексов из объектного хранилища. [#88262](https://github.com/ClickHouse/ClickHouse/pull/88262) ([Anton Popov](https://github.com/CurtizJ)). +* Запросы к таблицам из каталогов озёр данных будут использовать параллельные реплики для распределённой обработки. [#88273](https://github.com/ClickHouse/ClickHouse/pull/88273) ([scanhex12](https://github.com/scanhex12)). +* Внутренняя эвристика по настройке алгоритма фоновых слияний с именем "to_remove_small_parts_at_right" будет выполняться до вычисления оценки диапазона слияния. Ранее селектор слияний выбирал слияние большого диапазона, а затем отбрасывал его суффикс. Исправления: [#85374](https://github.com/ClickHouse/ClickHouse/issues/85374). [#88736](https://github.com/ClickHouse/ClickHouse/pull/88736) ([Mikhail Artemenko](https://github.com/Michicosun)). + +#### Улучшения {#improvement} + +* Теперь функция `generateSerialID` поддерживает неконстантный аргумент, задающий имя серии. Закрывает [#83750](https://github.com/ClickHouse/ClickHouse/issues/83750). [#88270](https://github.com/ClickHouse/ClickHouse/pull/88270) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* В функцию `generateSerialID` добавлен необязательный параметр `start_value` для указания пользовательского начального значения для новых последовательностей. [#88085](https://github.com/ClickHouse/ClickHouse/pull/88085) ([Manuel](https://github.com/raimannma)). +* Добавлена опция `--semicolons_inline` в `clickhouse-format` для форматирования запросов так, чтобы точки с запятой ставились в конце последней строки, а не на новой строке. [#88018](https://github.com/ClickHouse/ClickHouse/pull/88018) ([Jan Rada](https://github.com/ZelvaMan)). +* Добавлена возможность настраивать лимитирование на уровне сервера, когда конфигурация переопределена в Keeper. Закрывает [#73964](https://github.com/ClickHouse/ClickHouse/issues/73964). [#74066](https://github.com/ClickHouse/ClickHouse/pull/74066) ([JIaQi](https://github.com/JiaQiTang98)). +* `mannWhitneyUTest` больше не выбрасывает исключение, когда обе выборки содержат только одинаковые значения. Теперь возвращает корректный результат, соответствующий SciPy. Это закрывает: [#79814](https://github.com/ClickHouse/ClickHouse/issues/79814). [#80009](https://github.com/ClickHouse/ClickHouse/pull/80009) ([DeanNeaht](https://github.com/DeanNeaht)). +* Транзакция переписывания диска в объектном хранилище удаляет предыдущие удалённые blob-объекты, если транзакция метаданных зафиксирована. [#81787](https://github.com/ClickHouse/ClickHouse/pull/81787) ([Sema Checherinda](https://github.com/CheSema)). +* Исправлен проход оптимизации для избыточного выражения сравнения на равенство, если `LowCardinality` результирующего типа различается до и после оптимизации. [#82651](https://github.com/ClickHouse/ClickHouse/pull/82651) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Когда HTTP‑клиенты устанавливают заголовок `X-ClickHouse-100-Continue: defer` в дополнение к `Expect: 100-continue`, ClickHouse не отправляет ответ `100 Continue` клиенту до тех пор, пока не пройдет проверка квот, что предотвращает бессмысленную трату сетевой пропускной способности на передачу тел запросов, которые в итоге все равно будут отброшены. Это актуально для запросов INSERT, где сам запрос может быть отправлен в строке запроса URL (query string), а данные — в теле запроса. Прерывание запроса без отправки полного тела не позволяет повторно использовать соединение в HTTP/1.1, но дополнительная задержка, связанная с открытием новых соединений, обычно незначительна по сравнению с общей длительностью выполнения INSERT при больших объемах данных. [#84304](https://github.com/ClickHouse/ClickHouse/pull/84304) ([c-end](https://github.com/c-end)). +* Маскировать учётные данные S3 в логах при использовании DATABASE ENGINE = Backup с хранилищем S3. [#85336](https://github.com/ClickHouse/ClickHouse/pull/85336) ([Kenny Sun](https://github.com/hwabis)). +* Теперь оптимизации плана запроса становятся видимыми для подплана входных данных коррелированного подзапроса за счёт отсрочки его материализации. Часть [#79890](https://github.com/ClickHouse/ClickHouse/issues/79890). [#85455](https://github.com/ClickHouse/ClickHouse/pull/85455) ([Dmitry Novik](https://github.com/novikd)). +* Изменение для SYSTEM DROP DATABASE REPLICA: - При удалении базы данных или при удалении всей реплики: реплика также удаляется для каждой таблицы этой базы данных. - Если указан параметр «WITH TABLES», удалить реплику для каждого хранилища. - В противном случае логика не меняется: удаляется только реплика базы данных. - При удалении реплики базы данных с указанием пути в Keeper: - Если указан «WITH TABLES»: - Восстановить базу данных как Atomic. - Восстановить таблицы RMT из записей в Keeper. - Удалить базу данных (восстановленные таблицы также будут удалены). - В противном случае удалить только реплику по указанному пути в Keeper. [#85637](https://github.com/ClickHouse/ClickHouse/pull/85637) ([Tuan Pham Anh](https://github.com/tuanpach)). +* Исправлено непоследовательное форматирование TTL, когда он содержит функцию `materialize`. Закрывает [#82828](https://github.com/ClickHouse/ClickHouse/issues/82828). [#85749](https://github.com/ClickHouse/ClickHouse/pull/85749) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Состояние таблицы Iceberg больше не хранится в объекте хранилища. Это должно обеспечить корректную работу Iceberg в ClickHouse при параллельном выполнении запросов. [#86062](https://github.com/ClickHouse/ClickHouse/pull/86062) ([Daniil Ivanik](https://github.com/divanik)). +* Сделали режим блокировки бакетов в упорядоченном режиме S3Queue постоянным, аналогично узлам обработки при `use_persistent_processing_nodes = 1`. Добавлена имитация сбоев Keeper в тестах. [#86628](https://github.com/ClickHouse/ClickHouse/pull/86628) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Показывать подсказки при опечатках в названии формата. Закрывает [#86761](https://github.com/ClickHouse/ClickHouse/issues/86761). [#87092](https://github.com/ClickHouse/ClickHouse/pull/87092) ([flynn](https://github.com/ucasfl)). +* Удалённые реплики будут пропускать анализ индекса при отсутствии PROJECTION. [#87096](https://github.com/ClickHouse/ClickHouse/pull/87096) ([zoomxi](https://github.com/zoomxi)). +* Добавлена возможность отключить кодировку UTF-8 для таблицы YTsaurus. [#87150](https://github.com/ClickHouse/ClickHouse/pull/87150) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* По умолчанию отключён параметр `s3_slow_all_threads_after_retryable_error`. [#87198](https://github.com/ClickHouse/ClickHouse/pull/87198) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Переименовать табличную функцию `arrowflight` в `arrowFlight`. [#87249](https://github.com/ClickHouse/ClickHouse/pull/87249) ([Vitaly Baranov](https://github.com/vitlibar)). +* Обновлён `clickhouse-benchmark`, теперь он принимает `-` вместо `_` в флагах командной строки. [#87251](https://github.com/ClickHouse/ClickHouse/pull/87251) ([Ahmed Gouda](https://github.com/0xgouda)). +* Сделана синхронной запись в `system.crash_log` при обработке сигналов. [#87253](https://github.com/ClickHouse/ClickHouse/pull/87253) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Добавлена настройка `inject_random_order_for_select_without_order_by`, которая добавляет `ORDER BY rand()` в запросы `SELECT` верхнего уровня без оператора `ORDER BY`. [#87261](https://github.com/ClickHouse/ClickHouse/pull/87261) ([Rui Zhang](https://github.com/zhangruiddn)). +* Улучшено сообщение об ошибке в `joinGet`, чтобы оно корректно указывало, что количество `join_keys` не совпадает с количеством `right_table_keys`. [#87279](https://github.com/ClickHouse/ClickHouse/pull/87279) ([Isak Ellmer](https://github.com/spinojara)). +* Добавлена возможность проверять stat произвольного узла Keeper в ходе транзакции записи. Это может помочь в обнаружении ABA-проблемы. [#87282](https://github.com/ClickHouse/ClickHouse/pull/87282) ([Mikhail Artemenko](https://github.com/Michicosun)). +* Перенаправлять ресурсоёмкие запросы ytsaurus на прокси для тяжёлых запросов. [#87342](https://github.com/ClickHouse/ClickHouse/pull/87342) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* Исправляет откаты операций unlink/rename/removeRecursive/removeDirectory/etc, а также значения количества жёстких ссылок при любых возможных нагрузках для метаданных в дисковых транзакциях и упрощает интерфейсы, делая их более универсальными, чтобы их можно было повторно использовать в других хранилищах метаданных. [#87358](https://github.com/ClickHouse/ClickHouse/pull/87358) ([Mikhail Artemenko](https://github.com/Michicosun)). +* Добавлен конфигурационный параметр `keeper_server.tcp_nodelay`, который позволяет отключить `TCP_NODELAY` для Keeper. [#87363](https://github.com/ClickHouse/ClickHouse/pull/87363) (Copilot). +* Добавлена поддержка параметра `--connection` в `clickhouse-benchmarks`. Он работает так же, как в `clickhouse-client`: вы можете задать предопределённые подключения в клиентском `config.xml`/`config.yaml` в разделе `connections_credentials`, чтобы не указывать имя пользователя и пароль явно через аргументы командной строки. Добавлена поддержка параметра `--accept-invalid-certificate` в `clickhouse-benchmark`. [#87370](https://github.com/ClickHouse/ClickHouse/pull/87370) ([Azat Khuzhin](https://github.com/azat)). +* Теперь настройка `max_insert_threads` будет применяться к таблицам Iceberg. [#87407](https://github.com/ClickHouse/ClickHouse/pull/87407) ([alesapin](https://github.com/alesapin)). +* В `PrometheusMetricsWriter` добавлена поддержка гистограмм и многомерных метрик. Благодаря этому обработчик `PrometheusRequestHandler` получает все ключевые метрики и может использоваться для надежного сбора метрик с низкими накладными расходами в облаке. [#87521](https://github.com/ClickHouse/ClickHouse/pull/87521) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Функция `hasToken` теперь возвращает ноль совпадений для пустого токена (в то время как раньше в этом случае выбрасывалось исключение). [#87564](https://github.com/ClickHouse/ClickHouse/pull/87564) ([Jimmy Aguilar Mena](https://github.com/Ergus)). +* Добавлена поддержка текстового индекса для значений `Array` и `Map` (`mapKeys` и `mapValues`). Поддерживаемые функции: `mapContainsKey` и `has`. [#87602](https://github.com/ClickHouse/ClickHouse/pull/87602) ([Elmi Ahmadov](https://github.com/ahmadov)). +* Добавлена новая метрика `ZooKeeperSessionExpired`, показывающая количество истекших глобальных сессий ZooKeeper. [#87613](https://github.com/ClickHouse/ClickHouse/pull/87613) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Теперь для серверного (нативного) копирования в место назначения бэкапа используется клиент хранилища S3 с настройками, специфичными для бэкапов (например, backup_slow_all_threads_after_retryable_s3_error). Настройка s3_slow_all_threads_after_retryable_error объявлена устаревшей. [#87660](https://github.com/ClickHouse/ClickHouse/pull/87660) ([Julia Kartseva](https://github.com/jkartseva)). +* Исправлена некорректная обработка настроек `max_joined_block_size_rows` и `max_joined_block_size_bytes` при сериализации плана запроса при использовании экспериментального `make_distributed_plan`. [#87675](https://github.com/ClickHouse/ClickHouse/pull/87675) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Настройка `enable_http_compression` теперь включена по умолчанию. Это означает, что если клиент поддерживает HTTP-сжатие, сервер будет его использовать. Однако у этого изменения есть определённые недостатки. Клиент может запросить ресурсоёмкий метод сжатия, такой как `bzip2`, что неоправданно и увеличит потребление ресурсов сервером (но это будет заметно только при передаче больших результатов). Клиент может запросить `gzip`, что не так уж плохо, но менее эффективно по сравнению с `zstd`. Закрывает [#71591](https://github.com/ClickHouse/ClickHouse/issues/71591). [#87703](https://github.com/ClickHouse/ClickHouse/pull/87703) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена новая запись `keeper_hosts` в `system.server_settings`, которая отображает список хостов [Zoo]Keeper, к которым ClickHouse может подключаться. [#87718](https://github.com/ClickHouse/ClickHouse/pull/87718) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Добавлены значения `from` и `to` в системные дашборды для упрощения анализа исторических данных. [#87823](https://github.com/ClickHouse/ClickHouse/pull/87823) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Добавлена дополнительная информация для мониторинга производительности в запросах SELECT к Iceberg. [#87903](https://github.com/ClickHouse/ClickHouse/pull/87903) ([Daniil Ivanik](https://github.com/divanik)). +* Улучшение кэша файловой системы: повторное использование итератора приоритетов кэша между потоками, которые одновременно резервируют место в кэше. [#87914](https://github.com/ClickHouse/ClickHouse/pull/87914) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Добавлена возможность ограничивать размер запросов для `Keeper` (настройка `max_request_size`, аналогичная `jute.maxbuffer` для `ZooKeeper`, по умолчанию имеет значение OFF для обеспечения обратной совместимости; значение будет изменено в следующих релизах). [#87952](https://github.com/ClickHouse/ClickHouse/pull/87952) ([Azat Khuzhin](https://github.com/azat)). +* Изменено поведение `clickhouse-benchmark`: по умолчанию трассировки стека больше не включаются в сообщения об ошибках. [#87954](https://github.com/ClickHouse/ClickHouse/pull/87954) ([Ahmed Gouda](https://github.com/0xgouda)). +* Избегайте использования асинхронной загрузки меток через пул потоков (`load_marks_asynchronously=1`), когда метки уже находятся в кэше (поскольку пул может быть под нагрузкой, и запросы понесут дополнительные накладные расходы даже при наличии меток в кэше). [#87967](https://github.com/ClickHouse/ClickHouse/pull/87967) ([Azat Khuzhin](https://github.com/azat)). +* Ytsaurus: возможность создавать таблицы/табличные функции/словари с подмножеством столбцов. [#87982](https://github.com/ClickHouse/ClickHouse/pull/87982) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* Теперь `system.zookeeper_connection_log` включён по умолчанию, и его можно использовать для получения информации о сессиях Keeper. [#88011](https://github.com/ClickHouse/ClickHouse/pull/88011) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Приведено к единообразию поведение TCP и HTTP при передаче дублирующихся внешних таблиц. HTTP позволяет передавать временную таблицу несколько раз. [#88032](https://github.com/ClickHouse/ClickHouse/pull/88032) ([Sema Checherinda](https://github.com/CheSema)). +* Удалены кастомные MemoryPools для чтения Arrow/ORC/Parquet. Этот компонент, по-видимому, больше не нужен после [#84082](https://github.com/ClickHouse/ClickHouse/pull/84082), так как теперь в любом случае отслеживаются все выделения памяти. [#88035](https://github.com/ClickHouse/ClickHouse/pull/88035) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Добавлена возможность создавать базу данных `Replicated` без аргументов. [#88044](https://github.com/ClickHouse/ClickHouse/pull/88044) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* `clickhouse-keeper-client`: Добавлена поддержка подключения к TLS-порту clickhouse-keeper; имена флагов сохранены такими же, как в clickhouse-client. [#88065](https://github.com/ClickHouse/ClickHouse/pull/88065) ([Pradeep Chhetri](https://github.com/chhetripradeep)). +* Добавлено новое событие профиля для отслеживания количества отклонённых фоновых слияний из‑за превышения лимита памяти. [#88084](https://github.com/ClickHouse/ClickHouse/pull/88084) ([Grant Holly](https://github.com/grantholly-clickhouse)). +* Включает анализатор, проверяющий выражения значений по умолчанию столбцов в `CREATE/ALTER TABLE`. [#88087](https://github.com/ClickHouse/ClickHouse/pull/88087) ([Max Justus Spransy](https://github.com/maxjustus)). +* Внутреннее улучшение планировщика запросов: использовать JoinStepLogical для `CROSS JOIN`. [#88151](https://github.com/ClickHouse/ClickHouse/pull/88151) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Добавлены псевдонимы функций `hasAnyTokens` (`hasAnyToken`) и `hasAllTokens` (`hasAllToken`). [#88162](https://github.com/ClickHouse/ClickHouse/pull/88162) ([George Larionov](https://github.com/george-larionov)). +* Глобальный семплирующий профилировщик включён по умолчанию (то есть действует даже для серверных потоков, не связанных с запросами): он собирает стек-трейсы всех потоков каждые 10 секунд процессорного и реального времени. [#88209](https://github.com/ClickHouse/ClickHouse/pull/88209) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Обновлён SDK Azure, чтобы включить исправление заголовка «Content-Length», проявлявшееся при операциях копирования и создания контейнеров. [#88278](https://github.com/ClickHouse/ClickHouse/pull/88278) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). +* Функция `lag` сделана регистронезависимой для совместимости с MySQL. [#88322](https://github.com/ClickHouse/ClickHouse/pull/88322) ([Lonny Kapelushnik](https://github.com/lonnylot)). +* Добавлена возможность запуска `clickhouse-local` из каталога `clickhouse-server`. В предыдущих версиях это приводило к ошибке `Cannot parse UUID: .` Теперь вы можете запускать clickhouse-local и работать с базами данных сервера, не запуская сам сервер. [#88383](https://github.com/ClickHouse/ClickHouse/pull/88383) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлен параметр конфигурации `keeper_server.coordination_settings.check_node_acl_on_remove`. Если он включён, перед каждым удалением узла будут проверяться ACL как самого узла, так и родительского. Иначе будет проверяться только ACL родительского узла. [#88513](https://github.com/ClickHouse/ClickHouse/pull/88513) ([Antonio Andelic](https://github.com/antonio2368)). +* Столбцы `JSON` теперь выводятся в удобно читаемом виде при использовании формата `Vertical`. Закрывает [#81794](https://github.com/ClickHouse/ClickHouse/issues/81794). [#88524](https://github.com/ClickHouse/ClickHouse/pull/88524) ([Frank Rosner](https://github.com/FRosner)). +* Храните файлы `clickhouse-client` (например, историю запросов) в каталогах, определённых спецификацией [XDG Base Directories](https://specifications.freedesktop.org/basedir-spec/latest/index.html), а не в корне домашнего каталога. `~/.clickhouse-client-history` по‑прежнему будет использоваться, если этот файл уже существует. [#88538](https://github.com/ClickHouse/ClickHouse/pull/88538) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Исправлена утечка памяти, вызванная `GLOBAL IN` ([https://github.com/ClickHouse/ClickHouse/issues/88615](https://github.com/ClickHouse/ClickHouse/issues/88615)). [#88617](https://github.com/ClickHouse/ClickHouse/pull/88617) ([pranavmehta94](https://github.com/pranavmehta94)). +* Добавлена перегрузка функций hasAny/hasAllTokens, позволяющая принимать строковый аргумент. [#88679](https://github.com/ClickHouse/ClickHouse/pull/88679) ([George Larionov](https://github.com/george-larionov)). +* Добавлен шаг в postinstall-скрипт `clickhouse-keeper`, который включает его автозапуск при загрузке системы. [#88746](https://github.com/ClickHouse/ClickHouse/pull/88746) ([YenchangChan](https://github.com/YenchangChan)). +* Проверять учетные данные в веб-интерфейсе только при вставке, а не при каждом нажатии клавиши. Это позволяет избежать проблемы с неправильно настроенными серверами LDAP. Устраняет проблему [#85777](https://github.com/ClickHouse/ClickHouse/issues/85777). [#88769](https://github.com/ClickHouse/ClickHouse/pull/88769) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Ограничена длина сообщения об исключении при нарушении ограничения. В предыдущих версиях вы могли получить очень длинное сообщение об исключении при вставке очень длинной строки, и оно в итоге попадало в `query_log`. Закрывает [#87032](https://github.com/ClickHouse/ClickHouse/issues/87032). [#88801](https://github.com/ClickHouse/ClickHouse/pull/88801) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлено получение структуры набора данных с сервера ArrowFlight при создании таблицы. [#87542](https://github.com/ClickHouse/ClickHouse/pull/87542) ([Vitaly Baranov](https://github.com/vitlibar)). + +#### Исправление ошибки (ошибка, проявляющаяся для пользователя, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* Исправлена проблема с GeoParquet, приводившая к ошибкам клиентского протокола. [#84020](https://github.com/ClickHouse/ClickHouse/pull/84020) ([Michael Kolupaev](https://github.com/al13n321)). +* Исправлена проблема с вычислением зависящих от хоста функций, таких как shardNum(), в подзапросах на инициирующем сервере. [#84409](https://github.com/ClickHouse/ClickHouse/pull/84409) ([Eduard Karacharov](https://github.com/korowa)). +* Исправлена некорректная обработка дат до начала эпохи Unix с дробными секундами в различных функциях работы с датой и временем, таких как `parseDateTime64BestEffort`, `change{Year,Month,Day}` и `makeDateTime64`. Ранее дробная часть секунды вычиталась из секунд вместо того, чтобы добавляться к ним. Например, `parseDateTime64BestEffort('1969-01-01 00:00:00.468')` возвращала `1968-12-31 23:59:59.532` вместо `1969-01-01 00:00:00.468`. [#85396](https://github.com/ClickHouse/ClickHouse/pull/85396) ([xiaohuanlin](https://github.com/xiaohuanlin)). +* Исправлена ошибка, из-за которой команды ALTER COLUMN IF EXISTS завершались сбоем при изменении состояния столбца в пределах одного и того же оператора ALTER. Теперь команды DROP COLUMN IF EXISTS, MODIFY COLUMN IF EXISTS, COMMENT COLUMN IF EXISTS и RENAME COLUMN IF EXISTS корректно обрабатывают случаи, когда столбец удаляется предыдущей командой в том же операторе. [#86046](https://github.com/ClickHouse/ClickHouse/pull/86046) ([xiaohuanlin](https://github.com/xiaohuanlin)). +* Исправлен вывод типов Date/DateTime/DateTime64 для дат, выходящих за поддерживаемый диапазон. [#86184](https://github.com/ClickHouse/ClickHouse/pull/86184) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена ошибка, из-за которой некоторые корректные данные, отправленные пользователем в столбец `AggregateFunction(quantileDD)`, могли приводить к бесконечной рекурсии при слиянии. [#86560](https://github.com/ClickHouse/ClickHouse/pull/86560) ([Raphaël Thériault](https://github.com/raphael-theriault-swi)). +* Добавлена поддержка типов JSON/Dynamic в таблице, создаваемой табличной функцией `cluster`. [#86821](https://github.com/ClickHouse/ClickHouse/pull/86821) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена проблема, из‑за которой результат функции, вычисляемой в CTE, оказывался недетерминированным в запросе. [#86967](https://github.com/ClickHouse/ClickHouse/pull/86967) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Исправлена ошибка LOGICAL_ERROR в EXPLAIN при использовании pointInPolygon для столбцов первичного ключа. [#86971](https://github.com/ClickHouse/ClickHouse/pull/86971) ([Michael Kolupaev](https://github.com/al13n321)). +* Исправлены таблицы в озере данных с percent-encoded последовательностью в имени. Закрывает [#86626](https://github.com/ClickHouse/ClickHouse/issues/86626). [#87020](https://github.com/ClickHouse/ClickHouse/pull/87020) ([Anton Ivashkin](https://github.com/ianton-ru)). +* Исправлено некорректное поведение `IS NULL` для столбцов типа Nullable в `OUTER JOIN` при использовании `optimize_functions_to_subcolumns`; закрыт [#78625](https://github.com/ClickHouse/ClickHouse/issues/78625). [#87058](https://github.com/ClickHouse/ClickHouse/pull/87058) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Исправлен некорректный учет освобождений временных данных при отслеживании лимита `max_temporary_data_on_disk_size`, закрыт [#87118](https://github.com/ClickHouse/ClickHouse/issues/87118). [#87140](https://github.com/ClickHouse/ClickHouse/pull/87140) ([JIaQi](https://github.com/JiaQiTang98)). +* Функция checkHeaders теперь корректно проверяет переданные заголовки и отклоняет запрещённые. Автор исходной реализации: Michael Anastasakis (@michael-anastasakis). [#87172](https://github.com/ClickHouse/ClickHouse/pull/87172) ([Raúl Marín](https://github.com/Algunenano)). +* Делает поведение функций `toDate` и `toDate32` одинаковым для всех числовых типов. Исправляет проверку на выход за нижнюю границу диапазона (underflow) для `Date32` при приведении типа из `int16`. [#87176](https://github.com/ClickHouse/ClickHouse/pull/87176) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* Исправлена логическая ошибка при работе параллельных реплик в запросах с несколькими соединениями JOIN, в частности с RIGHT JOIN после LEFT/INNER JOIN. [#87178](https://github.com/ClickHouse/ClickHouse/pull/87178) ([Igor Nikonov](https://github.com/devcrafter)). +* Учитывать настройку `input_format_try_infer_variants` при работе кэша вывода схемы. [#87180](https://github.com/ClickHouse/ClickHouse/pull/87180) ([Pavel Kruglov](https://github.com/Avogar)). +* Сделать так, чтобы функция pathStartsWith сопоставляла только пути, находящиеся под указанным префиксом. [#87181](https://github.com/ClickHouse/ClickHouse/pull/87181) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлены логические ошибки в виртуальном столбце `_row_number` и в позиционированных операциях удаления для формата Iceberg. [#87220](https://github.com/ClickHouse/ClickHouse/pull/87220) ([Michael Kolupaev](https://github.com/al13n321)). +* Исправлена ошибка `LOGICAL_ERROR` «Too large size passed to allocator» в операторе `JOIN`, возникавшая из-за сочетания константных и неконстантных блоков. [#87231](https://github.com/ClickHouse/ClickHouse/pull/87231) ([Azat Khuzhin](https://github.com/azat)). +* Исправлены легковесные обновления с подзапросами, читающими из других таблиц типа `MergeTree`. [#87285](https://github.com/ClickHouse/ClickHouse/pull/87285) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлена оптимизация move-to-prewhere, которая не работала при действующей ROW POLICY. Продолжение [#85118](https://github.com/ClickHouse/ClickHouse/issues/85118). Закрывает [#69777](https://github.com/ClickHouse/ClickHouse/issues/69777). Закрывает [#83748](https://github.com/ClickHouse/ClickHouse/issues/83748). [#87303](https://github.com/ClickHouse/ClickHouse/pull/87303) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлено применение патчей к столбцам с выражением по умолчанию, отсутствующим в частях данных. [#87347](https://github.com/ClickHouse/ClickHouse/pull/87347) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлен сбой сегментации при использовании дублирующихся имён полей партиции в таблицах MergeTree. [#87365](https://github.com/ClickHouse/ClickHouse/pull/87365) ([xiaohuanlin](https://github.com/xiaohuanlin)). +* Исправлена проблема с обновлением EmbeddedRocksDB. [#87392](https://github.com/ClickHouse/ClickHouse/pull/87392) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлено прямое чтение из текстового индекса в объектном хранилище. [#87399](https://github.com/ClickHouse/ClickHouse/pull/87399) ([Anton Popov](https://github.com/CurtizJ)). +* Теперь нельзя создавать привилегии для несуществующего движка. [#87419](https://github.com/ClickHouse/ClickHouse/pull/87419) ([Jitendra](https://github.com/jitendra1411)). +* Игнорировать только ошибки «not found» для `s3_plain_rewritable` (иначе это может приводить к самым разным проблемам). [#87426](https://github.com/ClickHouse/ClickHouse/pull/87426) ([Azat Khuzhin](https://github.com/azat)). +* Исправлены словари с источником YTSaurus и типом размещения *range_hashed. [#87490](https://github.com/ClickHouse/ClickHouse/pull/87490) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* Исправлена ошибка при создании массива пустых кортежей. [#87520](https://github.com/ClickHouse/ClickHouse/pull/87520) ([Pavel Kruglov](https://github.com/Avogar)). +* Добавлена проверка на недопустимые столбцы при создании временной таблицы. [#87524](https://github.com/ClickHouse/ClickHouse/pull/87524) ([Pavel Kruglov](https://github.com/Avogar)). +* Никогда не добавляйте столбцы партиций Hive в заголовок формата. Исправлена ошибка [#87515](https://github.com/ClickHouse/ClickHouse/issues/87515). [#87528](https://github.com/ClickHouse/ClickHouse/pull/87528) ([Arthur Passos](https://github.com/arthurpassos)). +* Исправлена подготовка чтения из формата в DeltaLake при использовании текстового формата. [#87529](https://github.com/ClickHouse/ClickHouse/pull/87529) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена проверка прав доступа при выполнении `SELECT` и `INSERT` для таблиц `Buffer`. [#87545](https://github.com/ClickHouse/ClickHouse/pull/87545) ([pufit](https://github.com/pufit)). +* Запрещено создание индекса пропуска данных для таблицы S3. [#87554](https://github.com/ClickHouse/ClickHouse/pull/87554) ([Bharat Nallan](https://github.com/bharatnc)). +* Устранена утечка отслеживаемой памяти при асинхронном логировании (мог наблюдаться значительный дрейф учёта памяти — за 10 часов до ~100GiB) и в text_log (возможен почти такой же дрейф). [#87584](https://github.com/ClickHouse/ClickHouse/pull/87584) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена ошибка, из-за которой глобальные настройки сервера могли быть переопределены SELECT-настройками view или materialized view, если это представление было удалено асинхронно и сервер был перезапущен до завершения фоновой очистки. [#87603](https://github.com/ClickHouse/ClickHouse/pull/87603) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Исключать байты кэша страниц в пространстве пользователя (если возможно) при вычислении предупреждения о перегрузке памяти. [#87610](https://github.com/ClickHouse/ClickHouse/pull/87610) ([Bharat Nallan](https://github.com/bharatnc)). +* Исправлена ошибка, из-за которой неверный порядок типов данных при десериализации CSV приводил к `LOGICAL_ERROR`. [#87622](https://github.com/ClickHouse/ClickHouse/pull/87622) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Исправлена ошибка некорректной обработки `command_read_timeout` для исполняемых словарей. [#87627](https://github.com/ClickHouse/ClickHouse/pull/87627) ([Azat Khuzhin](https://github.com/azat)). +* Исправлено некорректное поведение `SELECT * REPLACE` в предложении `WHERE` с новым анализатором при фильтрации по заменённым столбцам. [#87630](https://github.com/ClickHouse/ClickHouse/pull/87630) ([xiaohuanlin](https://github.com/xiaohuanlin)). +* Исправлена двухуровневая агрегация при использовании `Merge` над `Distributed`. [#87687](https://github.com/ClickHouse/ClickHouse/pull/87687) ([c-end](https://github.com/c-end)). +* Исправлена генерация выходного блока в алгоритме HashJoin, когда список правых строк не используется. Исправлена ошибка [#87401](https://github.com/ClickHouse/ClickHouse/issues/87401). [#87699](https://github.com/ClickHouse/ClickHouse/pull/87699) ([Dmitry Novik](https://github.com/novikd)). +* Режим чтения параллельных реплик мог выбираться неверно, если после анализа индексов не оставалось данных для чтения. Закрывает [#87653](https://github.com/ClickHouse/ClickHouse/issues/87653). [#87700](https://github.com/ClickHouse/ClickHouse/pull/87700) ([zoomxi](https://github.com/zoomxi)). +* Исправлена обработка столбцов типов `timestamp` и `timestamptz` в Glue. [#87733](https://github.com/ClickHouse/ClickHouse/pull/87733) ([Andrey Zvonov](https://github.com/zvonand)). +* Исправляет [#86587](https://github.com/ClickHouse/ClickHouse/issues/86587). [#87761](https://github.com/ClickHouse/ClickHouse/pull/87761) ([scanhex12](https://github.com/scanhex12)). +* Исправлена запись логических значений в интерфейсе PostgreSQL. [#87762](https://github.com/ClickHouse/ClickHouse/pull/87762) ([Artem Yurov](https://github.com/ArtemYurov)). +* Исправлена ошибка `unknown table` при выполнении запроса INSERT SELECT с CTE, [#85368](https://github.com/ClickHouse/ClickHouse/issues/85368). [#87789](https://github.com/ClickHouse/ClickHouse/pull/87789) ([Guang Zhao](https://github.com/zheguang)). +* Исправлена ошибка чтения подстолбца карты с null из Variants, которые не могут находиться внутри Nullable. [#87798](https://github.com/ClickHouse/ClickHouse/pull/87798) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена обработка ошибки при невозможности полного удаления базы данных в кластере на вторичном узле. [#87802](https://github.com/ClickHouse/ClickHouse/pull/87802) ([Tuan Pham Anh](https://github.com/tuanpach)). +* Исправлены несколько ошибок в skip-индексах. [#87817](https://github.com/ClickHouse/ClickHouse/pull/87817) ([Raúl Marín](https://github.com/Algunenano)). +* В AzureBlobStorage теперь сначала выполняется попытка нативного копирования, а при ошибке 'Unauthroized' происходит переключение на режим чтения и записи (в AzureBlobStorage, если учетные записи хранилища источника и назначения различаются, возникает ошибка 'Unauthorized'). Также исправлено применение параметра "use_native_copy", когда endpoint определён в конфигурации. [#87826](https://github.com/ClickHouse/ClickHouse/pull/87826) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). +* ClickHouse аварийно завершался, если файл ArrowStream содержал неуникальный словарь. [#87863](https://github.com/ClickHouse/ClickHouse/pull/87863) ([Ilya Golshtein](https://github.com/ilejn)). +* Исправлена фатальная ошибка при использовании approx_top_k и finalizeAggregation. [#87892](https://github.com/ClickHouse/ClickHouse/pull/87892) ([Jitendra](https://github.com/jitendra1411)). +* Исправлена ошибка слияния с проекциями при пустом последнем блоке. [#87928](https://github.com/ClickHouse/ClickHouse/pull/87928) ([Raúl Marín](https://github.com/Algunenano)). +* Не удалять инъективные функции из GROUP BY, если типы их аргументов не допускаются в GROUP BY. [#87958](https://github.com/ClickHouse/ClickHouse/pull/87958) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена некорректная работа отсечения гранул/партиций по ключам типа DateTime при использовании параметра `session_timezone` в запросах. [#87987](https://github.com/ClickHouse/ClickHouse/pull/87987) ([Eduard Karacharov](https://github.com/korowa)). +* В интерфейсе PostgreSQL после выполнения запроса возвращается количество затронутых строк. [#87990](https://github.com/ClickHouse/ClickHouse/pull/87990) ([Artem Yurov](https://github.com/ArtemYurov)). +* Ограничивает использование проталкивания фильтров (filter pushdown) для PASTE JOIN, так как оно может приводить к некорректным результатам. [#88078](https://github.com/ClickHouse/ClickHouse/pull/88078) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Применяет нормализацию URI перед выполнением проверки прав доступа, добавленной в [https://github.com/ClickHouse/ClickHouse/pull/84503](https://github.com/ClickHouse/ClickHouse/pull/84503). [#88089](https://github.com/ClickHouse/ClickHouse/pull/88089) ([pufit](https://github.com/pufit)). +* Исправлена логическая ошибка в новом анализаторе, из-за которой ARRAY JOIN COLUMNS() не сопоставлялся ни с одним столбцом. [#88091](https://github.com/ClickHouse/ClickHouse/pull/88091) ([xiaohuanlin](https://github.com/xiaohuanlin)). +* Исправлено предупреждение «High ClickHouse memory usage» (без учёта page cache). [#88092](https://github.com/ClickHouse/ClickHouse/pull/88092) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена возможная порча данных в таблицах `MergeTree` с установленным `TTL` для столбца. [#88095](https://github.com/ClickHouse/ClickHouse/pull/88095) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлено возможное необработанное исключение при чтении `system.tables` при наличии некорректных таблиц во внешних базах данных (`PostgreSQL`/`SQLite`/...), подключённых к системе. [#88105](https://github.com/ClickHouse/ClickHouse/pull/88105) ([Azat Khuzhin](https://github.com/azat)). +* Исправлен сбой в функциях `mortonEncode` и `hilbertEncode` при вызове с пустым кортежем в качестве аргумента. [#88110](https://github.com/ClickHouse/ClickHouse/pull/88110) ([xiaohuanlin](https://github.com/xiaohuanlin)). +* Теперь запросы с `ON CLUSTER` будут выполняться быстрее при наличии неактивных реплик в кластере. [#88153](https://github.com/ClickHouse/ClickHouse/pull/88153) ([alesapin](https://github.com/alesapin)). +* Теперь DDL-воркер очищает список реплик от устаревших хостов. Это уменьшит объём хранимых метаданных в ZooKeeper. [#88154](https://github.com/ClickHouse/ClickHouse/pull/88154) ([alesapin](https://github.com/alesapin)). +* Исправлена работа ClickHouse без cgroups (случайно было введено требование наличия cgroups для асинхронных метрик). [#88164](https://github.com/ClickHouse/ClickHouse/pull/88164) ([Azat Khuzhin](https://github.com/azat)). +* Корректно откатывать операцию перемещения каталога в случае ошибки. Необходимо перезаписывать все объекты `prefix.path`, изменённые во время выполнения операции, а не только корневой. [#88198](https://github.com/ClickHouse/ClickHouse/pull/88198) ([Mikhail Artemenko](https://github.com/Michicosun)). +* Исправлено распространение флага `is_shared` в `ColumnLowCardinality`. Это могло приводить к неверным результатам группировки, если после предварительного вычисления и кеширования хеш-значений в `ReverseIndex` в столбец вставлялось новое значение. [#88213](https://github.com/ClickHouse/ClickHouse/pull/88213) ([Nikita Taranov](https://github.com/nickitat)). +* Исправлен параметр нагрузки `max_cpu_share`. Теперь его можно использовать без задания параметра нагрузки `max_cpus`. [#88217](https://github.com/ClickHouse/ClickHouse/pull/88217) ([Neerav](https://github.com/neeravsalaria)). +* Исправлена ошибка, из-за которой очень ресурсоёмкие мутации с подзапросами могли зависать на этапе подготовки. Теперь такие мутации можно остановить с помощью `SYSTEM STOP MERGES`. [#88241](https://github.com/ClickHouse/ClickHouse/pull/88241) ([alesapin](https://github.com/alesapin)). +* Теперь коррелированные подзапросы работают с объектными хранилищами. [#88290](https://github.com/ClickHouse/ClickHouse/pull/88290) ([alesapin](https://github.com/alesapin)). +* Не выполняйте попытки инициализировать базы данных DataLake во время доступа к `system.projections` и `system.data_skipping_indices`. [#88330](https://github.com/ClickHouse/ClickHouse/pull/88330) ([Azat Khuzhin](https://github.com/azat)). +* Теперь каталоги дата-лейков будут отображаться в системных таблицах интроспекции только в том случае, если параметр `show_data_lake_catalogs_in_system_tables` явно включён. [#88341](https://github.com/ClickHouse/ClickHouse/pull/88341) ([alesapin](https://github.com/alesapin)). +* Теперь DatabaseReplicated учитывает конфигурационный параметр `interserver_http_host`. [#88378](https://github.com/ClickHouse/ClickHouse/pull/88378) ([xiaohuanlin](https://github.com/xiaohuanlin)). +* Позиционные аргументы теперь явно запрещены в контексте определения проекций, так как они не имеют смысла на этом внутреннем этапе обработки запроса. Это исправляет [#48604](https://github.com/ClickHouse/ClickHouse/issues/48604). [#88380](https://github.com/ClickHouse/ClickHouse/pull/88380) ([Amos Bird](https://github.com/amosbird)). +* Исправлена проблема с квадратичной сложностью в функции `countMatches`. Закрывает [#88400](https://github.com/ClickHouse/ClickHouse/issues/88400). [#88401](https://github.com/ClickHouse/ClickHouse/pull/88401) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Сделать команды `ALTER COLUMN ... COMMENT` для таблиц KeeperMap реплицируемыми, чтобы они фиксировались в метаданных базы данных Replicated и распространялись на все реплики. Исправляет [#88077](https://github.com/ClickHouse/ClickHouse/issues/88077). [#88408](https://github.com/ClickHouse/ClickHouse/pull/88408) ([Eduard Karacharov](https://github.com/korowa)). +* Исправлена ситуация ложной циклической зависимости с Materialized Views в Database Replicated, которая не позволяла добавлять новые реплики в базу данных. [#88423](https://github.com/ClickHouse/ClickHouse/pull/88423) ([Nikolay Degterinsky](https://github.com/evillique)). +* Исправлена агрегация разреженных столбцов, когда параметр `group_by_overflow_mode` имеет значение `any`. [#88440](https://github.com/ClickHouse/ClickHouse/pull/88440) ([Eduard Karacharov](https://github.com/korowa)). +* Исправлена ошибка «column not found» при использовании `query_plan_use_logical_join_step=0` с несколькими операторами FULL JOIN USING. Закрывает [#88103](https://github.com/ClickHouse/ClickHouse/issues/88103). [#88473](https://github.com/ClickHouse/ClickHouse/pull/88473) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Большие кластеры с числом узлов > 10 с высокой вероятностью завершают восстановление с ошибкой `[941] 67c45db4-4df4-4879-87c5-25b8d1e0d414 : RestoreCoordinationOnCluster The version of node /clickhouse/backups/restore-7c551a77-bd76-404c-bad0-3213618ac58e/stage/num_hosts changed (attempt #9), will try again`. Узел `num_hosts` перезаписывается множеством хостов одновременно. Исправление делает параметр, управляющий количеством попыток, динамическим. Закрывает [#87721](https://github.com/ClickHouse/ClickHouse/issues/87721). [#88484](https://github.com/ClickHouse/ClickHouse/pull/88484) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Этот PR предназначен только для обеспечения совместимости с версиями 23.8 и более ранними. Проблема совместимости была вызвана этим PR: [https://github.com/ClickHouse/ClickHouse/pull/54240](https://github.com/ClickHouse/ClickHouse/pull/54240). Этот SQL‑запрос завершится ошибкой при `enable_analyzer=0` (до 23.8 он выполнялся нормально). [#88491](https://github.com/ClickHouse/ClickHouse/pull/88491) ([JIaQi](https://github.com/JiaQiTang98)). +* Исправлено переполнение целого числа, обнаруживаемое UBSAN, в сообщении об ошибке `accurateCast` при преобразовании больших значений в DateTime. [#88520](https://github.com/ClickHouse/ClickHouse/pull/88520) ([xiaohuanlin](https://github.com/xiaohuanlin)). +* Исправлен движок CoalescingMergeTree для типов `Tuple`. Это исправление закрывает [#88469](https://github.com/ClickHouse/ClickHouse/issues/88469). [#88526](https://github.com/ClickHouse/ClickHouse/pull/88526) ([scanhex12](https://github.com/scanhex12)). +* Запрещены операции удаления для `iceberg_format_version=1`. Это закрывает [#88444](https://github.com/ClickHouse/ClickHouse/issues/88444). [#88532](https://github.com/ClickHouse/ClickHouse/pull/88532) ([scanhex12](https://github.com/scanhex12)). +* Этот патч исправляет операцию перемещения для дисков `plain-rewritable` в папках произвольной глубины вложенности. [#88586](https://github.com/ClickHouse/ClickHouse/pull/88586) ([Mikhail Artemenko](https://github.com/Michicosun)). +* Исправлена работа SQL SECURITY DEFINER с функциями *cluster. [#88588](https://github.com/ClickHouse/ClickHouse/pull/88588) ([Julian Maicher](https://github.com/jmaicher)). +* Исправлено возможное падение сервера, вызванное конкурентной модификацией базовых константных столбцов PREWHERE. [#88605](https://github.com/ClickHouse/ClickHouse/pull/88605) ([Azat Khuzhin](https://github.com/azat)). +* Исправлено чтение из текстового индекса и включён кэш условий запроса (при включённых настройках `use_skip_indexes_on_data_read` и `use_query_condition_cache`). [#88660](https://github.com/ClickHouse/ClickHouse/pull/88660) ([Anton Popov](https://github.com/CurtizJ)). +* Исключение `Poco::TimeoutException`, возникающее в `Poco::Net::HTTPChunkedStreamBuf::readFromDevice`, приводит к аварийному завершению процесса с сигналом SIGABRT. [#88668](https://github.com/ClickHouse/ClickHouse/pull/88668) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Было бэкпортировано в [#88910](https://github.com/ClickHouse/ClickHouse/issues/88910): после восстановления реплика базы данных Replicated могла надолго зависать, выводя в лог сообщения вида `Failed to marked query-0004647339 as finished (finished=No node, synced=No node)`, теперь это исправлено. [#88671](https://github.com/ClickHouse/ClickHouse/pull/88671) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Исправлено добавление записей в `system.zookeeper_connection_log` при первом подключении ClickHouse после перезагрузки конфигурации. [#88728](https://github.com/ClickHouse/ClickHouse/pull/88728) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлена ошибка, при которой преобразование DateTime64 в Date при `date_time_overflow_behavior = 'saturate'` могло приводить к некорректным результатам для значений вне допустимого диапазона при использовании часовых поясов. [#88737](https://github.com/ClickHouse/ClickHouse/pull/88737) ([Manuel](https://github.com/raimannma)). +* N-я попытка исправить ошибку «having zero bytes error» в движке таблицы S3 с включённым кэшем. [#88740](https://github.com/ClickHouse/ClickHouse/pull/88740) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлена проверка прав доступа при выполнении запроса SELECT к табличной функции `loop`. [#88802](https://github.com/ClickHouse/ClickHouse/pull/88802) ([pufit](https://github.com/pufit)). +* Перехватывать исключения при ошибках асинхронного логирования, чтобы избежать аварийного завершения программы. [#88814](https://github.com/ClickHouse/ClickHouse/pull/88814) ([Raúl Marín](https://github.com/Algunenano)). +* Бэкпортировано в [#89060](https://github.com/ClickHouse/ClickHouse/issues/89060): исправлена функция `top_k`, чтобы она учитывала параметр порога при вызове с одним аргументом. Закрывает [#88757](https://github.com/ClickHouse/ClickHouse/issues/88757). [#88867](https://github.com/ClickHouse/ClickHouse/pull/88867) ([Manuel](https://github.com/raimannma)). +* Бэкпортировано в [#88944](https://github.com/ClickHouse/ClickHouse/issues/88944): исправлена ошибка в функции `reverseUTF8`. В предыдущих версиях она по ошибке инвертировала байты UTF-8 кодовых точек длиной 4 байта. Это исправляет [#88913](https://github.com/ClickHouse/ClickHouse/issues/88913). [#88914](https://github.com/ClickHouse/ClickHouse/pull/88914) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Бэкпортировано в [#88980](https://github.com/ClickHouse/ClickHouse/issues/88980): не проверять права доступа для `SET DEFINER :definer` при создании представления с SQL SECURITY DEFINER. [#88968](https://github.com/ClickHouse/ClickHouse/pull/88968) ([pufit](https://github.com/pufit)). +* Бэкпортировано в [#89058](https://github.com/ClickHouse/ClickHouse/issues/89058): исправлена ошибка `LOGICAL_ERROR` в `L2DistanceTransposed(vec1, vec2, p)`, при которой оптимизация частичного чтения `QBit` некорректно удаляла `Nullable` из возвращаемого типа, если `p` был `Nullable`. [#88974](https://github.com/ClickHouse/ClickHouse/pull/88974) ([Raufs Dunamalijevs](https://github.com/rienath)). +* Бэкпортировано в [#89167](https://github.com/ClickHouse/ClickHouse/issues/89167): исправлена ошибка, приводившая к падению при неизвестном типе каталога. Закрывает [#88819](https://github.com/ClickHouse/ClickHouse/issues/88819). [#88987](https://github.com/ClickHouse/ClickHouse/pull/88987) ([scanhex12](https://github.com/scanhex12)). +* Бэкпортировано в [#89028](https://github.com/ClickHouse/ClickHouse/issues/89028): Исправлено снижение производительности при анализе пропускающих индексов. [#89004](https://github.com/ClickHouse/ClickHouse/pull/89004) ([Anton Popov](https://github.com/CurtizJ)). + +#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement} + +* Использовать версию 18.0 библиотеки `postgres`. [#87647](https://github.com/ClickHouse/ClickHouse/pull/87647) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Включить ICU для FreeBSD. [#87891](https://github.com/ClickHouse/ClickHouse/pull/87891) ([Raúl Marín](https://github.com/Algunenano)). +* Использовать SSE 4.2, когда применяется динамическая диспетчеризация на SSE 4.2, а не на SSE 4. [#88029](https://github.com/ClickHouse/ClickHouse/pull/88029) ([Raúl Marín](https://github.com/Algunenano)). +* Не требовать флаг `NO_ARMV81_OR_HIGHER`, если `Speculative Store Bypass Safe` недоступен. [#88051](https://github.com/ClickHouse/ClickHouse/pull/88051) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Когда ClickHouse собран с `ENABLE_LIBFIU=OFF`, функции, связанные с failpoint, становятся операциями, не выполняющими действий (no-op), и больше не могут влиять на производительность. В этом случае запросы `SYSTEM ENABLE/DISABLE FAILPOINT` возвращают ошибку `SUPPORT_IS_DISABLED`. [#88184](https://github.com/ClickHouse/ClickHouse/pull/88184) ([c-end](https://github.com/c-end)). + +### Релиз ClickHouse версии 25.9, 2025-09-25 {#259} + +#### Обратные несовместимые изменения {#backward-incompatible-change} + +* Отключены бессмысленные бинарные операции с IPv4/IPv6: сложение/вычитание IPv4/IPv6 с нецелочисленным типом отключено. Ранее были допустимы операции с типами с плавающей точкой, а для некоторых других типов (таких как DateTime) возникали логические ошибки. [#86336](https://github.com/ClickHouse/ClickHouse/pull/86336) ([Raúl Marín](https://github.com/Algunenano)). +* Настройка `allow_dynamic_metadata_for_data_lakes` помечена как устаревшая. Теперь все таблицы Iceberg пытаются получить актуальную схему таблицы из хранилища перед выполнением каждого запроса. [#86366](https://github.com/ClickHouse/ClickHouse/pull/86366) ([Daniil Ivanik](https://github.com/divanik)). +* Изменён способ разрешения объединённого столбца из предложения `OUTER JOIN ... USING` для большей согласованности: ранее, при выборе и столбца из USING, и квалифицированных столбцов (`a, t1.a, t2.a`) в OUTER JOIN, столбец USING ошибочно разрешался в `t1.a`, показывая 0/NULL для строк из правой таблицы без соответствия слева. Теперь идентификаторы из предложения USING всегда разрешаются в объединённый столбец (coalesced column), тогда как квалифицированные идентификаторы разрешаются в необъединённые столбцы (non-coalesced), вне зависимости от того, какие ещё идентификаторы присутствуют в запросе. Например: ```sql SELECT a, t1.a, t2.a FROM (SELECT 1 as a WHERE 0) t1 FULL JOIN (SELECT 2 as a) t2 USING (a) -- Before: a=0, t1.a=0, t2.a=2 (incorrect - 'a' resolved to t1.a) -- After: a=2, t1.a=0, t2.a=2 (correct - 'a' is coalesced). [#80848](https://github.com/ClickHouse/ClickHouse/pull/80848) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Увеличено окно дедупликации в реплицируемых таблицах до 10000. Это полностью совместимое изменение, но возможны сценарии, при которых оно может привести к высокому потреблению ресурсов при наличии большого числа таблиц. [#86820](https://github.com/ClickHouse/ClickHouse/pull/86820) ([Sema Checherinda](https://github.com/CheSema)). + +#### Новые возможности {#new-feature} + +* Теперь вы можете использовать NATS JetStream для потребления сообщений, указывая новые настройки `nats_stream` и `nats_consumer` для движка NATS. [#84799](https://github.com/ClickHouse/ClickHouse/pull/84799) ([Dmitry Novikov](https://github.com/dmitry-sles-novikov)). +* Добавлена поддержка аутентификации и SSL в табличной функции `arrowFlight`. [#87120](https://github.com/ClickHouse/ClickHouse/pull/87120) ([Vitaly Baranov](https://github.com/vitlibar)). +* Добавлен новый параметр к движку таблицы `S3` и табличной функции `s3` с именем `storage_class_name`, который позволяет указывать интеллектуальный класс хранения, поддерживаемый AWS. Поддерживается как в формате ключ-значение, так и в позиционном формате (устаревшем). [#87122](https://github.com/ClickHouse/ClickHouse/pull/87122) ([alesapin](https://github.com/alesapin)). +* `ALTER UPDATE` для табличного движка Iceberg. [#86059](https://github.com/ClickHouse/ClickHouse/pull/86059) ([scanhex12](https://github.com/scanhex12)). +* Добавлена системная таблица `iceberg_metadata_log` для получения файлов метаданных Iceberg во время выполнения команд SELECT. [#86152](https://github.com/ClickHouse/ClickHouse/pull/86152) ([scanhex12](https://github.com/scanhex12)). +* Таблицы `Iceberg` и `DeltaLake` поддерживают пользовательскую конфигурацию диска с помощью настройки уровня хранилища `disk`. [#86778](https://github.com/ClickHouse/ClickHouse/pull/86778) ([scanhex12](https://github.com/scanhex12)). +* Добавлена поддержка дисков Azure для озёр данных. [#87173](https://github.com/ClickHouse/ClickHouse/pull/87173) ([scanhex12](https://github.com/scanhex12)). +* Добавлена поддержка каталога `Unity` поверх хранилища Azure Blob Storage. [#80013](https://github.com/ClickHouse/ClickHouse/pull/80013) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). +* Расширена поддержка форматов (`ORC`, `Avro`) при записи в `Iceberg`. Это закрывает [#86179](https://github.com/ClickHouse/ClickHouse/issues/86179). [#87277](https://github.com/ClickHouse/ClickHouse/pull/87277) ([scanhex12](https://github.com/scanhex12)). +* Добавлена новая системная таблица `database_replicas` с информацией о репликах баз данных. [#83408](https://github.com/ClickHouse/ClickHouse/pull/83408) ([Konstantin Morozov](https://github.com/k-morozov)). +* Добавлена функция `arrayExcept`, которая вычитает один массив из другого, рассматривая их как множества. [#82368](https://github.com/ClickHouse/ClickHouse/pull/82368) ([Joanna Hulboj](https://github.com/jh0x)). +* Добавлена новая таблица `system.aggregated_zookeeper_log`. Таблица содержит статистику (например, количество операций, среднюю задержку, ошибки) операций ZooKeeper, сгруппированных по идентификатору сессии, родительскому пути и типу операции; данные периодически сбрасываются на диск. [#85102](https://github.com/ClickHouse/ClickHouse/pull/85102) [#87208](https://github.com/ClickHouse/ClickHouse/pull/87208) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Новая функция `isValidASCII`, которая возвращает 1, если входная строка или FixedString содержит только байты ASCII (0x00–0x7F), в противном случае — 0. Закрывает [#85377](https://github.com/ClickHouse/ClickHouse/issues/85377). ... [#85786](https://github.com/ClickHouse/ClickHouse/pull/85786) ([Rajat Mohan](https://github.com/rajatmohan22)). +* Логические настройки можно указывать без аргументов, например: `SET use_query_cache;`, что эквивалентно установке значения в `true`. [#85800](https://github.com/ClickHouse/ClickHouse/pull/85800) ([thraeka](https://github.com/thraeka)). +* Новые параметры конфигурации: `logger.startupLevel` и `logger.shutdownLevel` позволяют переопределять уровень логирования при запуске и завершении работы ClickHouse соответственно. [#85967](https://github.com/ClickHouse/ClickHouse/pull/85967) ([Lennard Eijsackers](https://github.com/Blokje5)). +* Агрегатные функции `timeSeriesChangesToGrid` и `timeSeriesResetsToGrid`. Ведут себя аналогично `timeSeriesRateToGrid`, принимая параметры начальной метки времени, конечной метки времени, шага и окна анализа в прошлое (look back window), а также два аргумента для меток времени и значений, но требуя как минимум одну выборку на окно вместо двух. Вычисляют PromQL-выражения `changes`/`resets`, подсчитывая, сколько раз значение выборки изменяется или убывает в указанном окне для каждой метки времени во временной сетке, определённой параметрами. Тип возвращаемого значения — `Array(Nullable(Float64))`. [#86010](https://github.com/ClickHouse/ClickHouse/pull/86010) ([Stephen Chi](https://github.com/stephchi0)). +* Позволяет пользователям создавать временные представления с синтаксисом, аналогичным синтаксису временных таблиц (`CREATE TEMPORARY VIEW`). [#86432](https://github.com/ClickHouse/ClickHouse/pull/86432) ([Aly Kafoury](https://github.com/AlyHKafoury)). +* Добавлены предупреждения о потреблении CPU и памяти в таблицу `system.warnings`. [#86838](https://github.com/ClickHouse/ClickHouse/pull/86838) ([Bharat Nallan](https://github.com/bharatnc)). +* Добавлена поддержка индикатора `oneof` во входных данных `Protobuf`. Для указания того, какой вариант oneof присутствует, может использоваться специальный столбец. Если сообщение содержит [oneof](https://protobuf.dev/programming-guides/proto3/#oneof) и установлен параметр `input_format_protobuf_oneof_presence`, ClickHouse заполняет столбец, который указывает, какое поле oneof было найдено. [#82885](https://github.com/ClickHouse/ClickHouse/pull/82885) ([Ilya Golshtein](https://github.com/ilejn)). +* Улучшено профилирование выделений памяти на основе внутреннего инструментария jemalloc. Глобальный профилировщик jemalloc теперь можно включить с помощью конфигурации `jemalloc_enable_global_profiler`. Выборочно собранные глобальные операции выделения и освобождения памяти могут сохраняться в `system.trace_log` с типом `JemallocSample` при включении конфигурации `jemalloc_collect_global_profile_samples_in_trace_log`. Профилирование jemalloc теперь можно включать для каждого запроса независимо, используя настройку `jemalloc_enable_profiler`. Сохранение выборок в `system.trace_log` можно контролировать на уровне отдельного запроса с помощью настройки `jemalloc_collect_profile_samples_in_trace_log`. Обновлён jemalloc до более новой версии. [#85438](https://github.com/ClickHouse/ClickHouse/pull/85438) ([Antonio Andelic](https://github.com/antonio2368)). +* Новый параметр, позволяющий удалять файлы при удалении таблиц Iceberg. Это закрывает [#86211](https://github.com/ClickHouse/ClickHouse/issues/86211). [#86501](https://github.com/ClickHouse/ClickHouse/pull/86501) ([scanhex12](https://github.com/scanhex12)). + +#### Экспериментальные возможности {#experimental-feature} + +* Инвертированный текстовый индекс был полностью переработан, чтобы масштабироваться для работы с наборами данных, которые не помещаются в RAM. [#86485](https://github.com/ClickHouse/ClickHouse/pull/86485) ([Anton Popov](https://github.com/CurtizJ)). +* Переупорядочивание `JOIN` теперь использует статистику. Функцию можно включить, установив `allow_statistics_optimize = 1` и `query_plan_optimize_join_order_limit = 10`. [#86822](https://github.com/ClickHouse/ClickHouse/pull/86822) ([Han Fei](https://github.com/hanfei1991)). +* `alter table ... materialize statistics all` теперь материализует всю статистику таблицы. [#87197](https://github.com/ClickHouse/ClickHouse/pull/87197) ([Han Fei](https://github.com/hanfei1991)). + +#### Повышение производительности {#performance-improvement} + +* Добавлена поддержка фильтрации частей данных с использованием skip-индексов при чтении для сокращения ненужных обращений к индексам. Управляется с помощью нового параметра `use_skip_indexes_on_data_read` (по умолчанию отключён). Тем самым решается задача [#75774](https://github.com/ClickHouse/ClickHouse/issues/75774). Включает часть общей подготовительной работы, совместно используемой с [#81021](https://github.com/ClickHouse/ClickHouse/issues/81021). [#81526](https://github.com/ClickHouse/ClickHouse/pull/81526) ([Amos Bird](https://github.com/amosbird)). +* Добавлена оптимизация порядка выполнения JOIN, которая может автоматически менять порядок JOIN-ов для повышения производительности (управляется настройкой `query_plan_optimize_join_order_limit`). Обратите внимание, что оптимизация порядка JOIN в настоящее время имеет ограниченную поддержку статистики и в основном опирается на оценки количества строк от движков хранения — более продвинутый сбор статистики и оценка кардинальности будут добавлены в будущих релизах. **Если после обновления вы сталкиваетесь с проблемами с JOIN-запросами**, вы можете временно отключить новую реализацию, установив `SET query_plan_use_new_logical_join_step = 0`, и сообщить о проблеме для анализа. **Замечание о разрешении идентификаторов из предложения USING**: изменён способ разрешения объединённого столбца из предложения `OUTER JOIN ... USING`, чтобы сделать его более согласованным: ранее, при выборе и столбца из USING, и квалифицированных столбцов (`a, t1.a, t2.a`) в OUTER JOIN, столбец из USING некорректно разрешался в `t1.a`, показывая 0/NULL для строк из правой таблицы без соответствия слева. Теперь идентификаторы из предложения USING всегда разрешаются в объединённый столбец, в то время как квалифицированные идентификаторы разрешаются в необъединённые столбцы, независимо от того, какие другие идентификаторы присутствуют в запросе. Например: ```sql SELECT a, t1.a, t2.a FROM (SELECT 1 as a WHERE 0) t1 FULL JOIN (SELECT 2 as a) t2 USING (a) -- До: a=0, t1.a=0, t2.a=2 (некорректно — 'a' разрешался в t1.a) -- После: a=2, t1.a=0, t2.a=2 (корректно — 'a' является объединённым значением). [#80848](https://github.com/ClickHouse/ClickHouse/pull/80848) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Распределённый `INSERT SELECT` для озёр данных. [#86783](https://github.com/ClickHouse/ClickHouse/pull/86783) ([scanhex12](https://github.com/scanhex12)). +* Улучшена оптимизация PREWHERE для таких условий, как `func(primary_column) = 'xx'` и `column in (xxx)`. [#85529](https://github.com/ClickHouse/ClickHouse/pull/85529) ([李扬](https://github.com/taiyang-li)). +* Реализовано переписывание `JOIN`: 1. Преобразование `LEFT ANY JOIN` и `RIGHT ANY JOIN` в `SEMI`/`ANTI` JOIN, если условие фильтрации всегда ложно для совпадающих или несовпадающих строк. Эта оптимизация управляется новым параметром `query_plan_convert_any_join_to_semi_or_anti_join`. 2. Преобразование `FULL ALL JOIN` в `LEFT ALL` или `RIGHT ALL` JOIN, если условие фильтрации всегда ложно для несовпадающих строк с одной стороны. [#86028](https://github.com/ClickHouse/ClickHouse/pull/86028) ([Dmitry Novik](https://github.com/novikd)). +* Повышена производительность вертикальных слияний после выполнения операции легковесного удаления. [#86169](https://github.com/ClickHouse/ClickHouse/pull/86169) ([Anton Popov](https://github.com/CurtizJ)). +* Производительность `HashJoin` немного улучшена в случае `LEFT/RIGHT JOIN` с большим количеством несовпавших строк. [#86312](https://github.com/ClickHouse/ClickHouse/pull/86312) ([Nikita Taranov](https://github.com/nickitat)). +* Сортировка Radix: помогает компилятору эффективнее использовать SIMD и улучшить предвыборку данных. Использует динамическую диспетчеризацию для программной предвыборки только на процессорах Intel. Является продолжением работы @taiyang-li в [https://github.com/ClickHouse/ClickHouse/pull/77029](https://github.com/ClickHouse/ClickHouse/pull/77029). [#86378](https://github.com/ClickHouse/ClickHouse/pull/86378) ([Raúl Marín](https://github.com/Algunenano)). +* Повышает производительность коротких запросов к таблицам с большим числом частей (за счёт оптимизации `MarkRanges` с использованием `devector` вместо `deque`). [#86933](https://github.com/ClickHouse/ClickHouse/pull/86933) ([Azat Khuzhin](https://github.com/azat)). +* Повышена производительность применения частей‑патчей в режиме JOIN. [#87094](https://github.com/ClickHouse/ClickHouse/pull/87094) ([Anton Popov](https://github.com/CurtizJ)). +* Добавлена настройка `query_condition_cache_selectivity_threshold` (значение по умолчанию: 1.0), которая исключает результаты сканирования предикатов с низкой селективностью из вставки в кэш условий запроса. Это позволяет уменьшить потребление памяти кэшем условий запроса за счет более низкого коэффициента попаданий в кэш. [#86076](https://github.com/ClickHouse/ClickHouse/pull/86076) ([zhongyuankai](https://github.com/zhongyuankai)). +* Снижено потребление памяти при операциях записи в Iceberg. [#86544](https://github.com/ClickHouse/ClickHouse/pull/86544) ([scanhex12](https://github.com/scanhex12)). + +#### Улучшения {#improvement} + +* Добавлена поддержка записи нескольких файлов данных в Iceberg за одну операцию вставки. Добавлены новые настройки `iceberg_insert_max_rows_in_data_file` и `iceberg_insert_max_bytes_in_data_file` для управления соответствующими лимитами. [#86275](https://github.com/ClickHouse/ClickHouse/pull/86275) ([scanhex12](https://github.com/scanhex12)). +* Добавлено ограничение на количество строк и байт в файлах данных, создаваемых при вставке в Delta Lake. Управляется настройками `delta_lake_insert_max_rows_in_data_file` и `delta_lake_insert_max_bytes_in_data_file`. [#86357](https://github.com/ClickHouse/ClickHouse/pull/86357) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Расширена поддержка типов партиционирования при записи в Iceberg. Закрывает [#86206](https://github.com/ClickHouse/ClickHouse/issues/86206). [#86298](https://github.com/ClickHouse/ClickHouse/pull/86298) ([scanhex12](https://github.com/scanhex12)). +* Сделать стратегию повторных попыток в S3 настраиваемой и добавить поддержку горячей перезагрузки настроек S3-диска при изменении XML-файла конфигурации. [#82642](https://github.com/ClickHouse/ClickHouse/pull/82642) ([RinChanNOW](https://github.com/RinChanNOWWW)). +* Улучшен движок таблицы S3(Azure)Queue, так что он выдерживает потерю соединения с ZooKeeper без появления потенциальных дубликатов. Требуется включить настройку S3Queue `use_persistent_processing_nodes` (можно изменить с помощью `ALTER TABLE MODIFY SETTING`). [#85995](https://github.com/ClickHouse/ClickHouse/pull/85995) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Вы можете использовать параметры запроса после `TO` при создании materialized view, например: `CREATE MATERIALIZED VIEW mv TO {to_table:Identifier} AS SELECT * FROM src_table`. [#84899](https://github.com/ClickHouse/ClickHouse/pull/84899) ([Diskein](https://github.com/Diskein)). +* Добавлены более понятные инструкции для пользователей при указании некорректных настроек для движка таблицы `Kafka2`. [#83701](https://github.com/ClickHouse/ClickHouse/pull/83701) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Указание часовых поясов для типа `Time` больше не поддерживается (в этом не было смысла). [#84689](https://github.com/ClickHouse/ClickHouse/pull/84689) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Упрощена (и устранены некоторые ошибки) логика, связанная с разбором значений Time/Time64 в режиме `best_effort`. [#84730](https://github.com/ClickHouse/ClickHouse/pull/84730) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Добавлены функции `deltaLakeAzureCluster` (аналогичная `deltaLakeAzure` для кластерного режима) и `deltaLakeS3Cluster` (псевдоним `deltaLakeCluster`). Устраняет проблему [#85358](https://github.com/ClickHouse/ClickHouse/issues/85358). [#85547](https://github.com/ClickHouse/ClickHouse/pull/85547) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). +* Настройка `azure_max_single_part_copy_size` для обычных операций копирования теперь применяется так же, как и для резервного копирования. [#85767](https://github.com/ClickHouse/ClickHouse/pull/85767) ([Ilya Golshtein](https://github.com/ilejn)). +* Потоки клиента S3 теперь замедляются при ошибках в S3 Object Storage, для которых возможна повторная попытка. Это изменение распространяет действие предыдущего SETTING `backup_slow_all_threads_after_retryable_s3_error` также на S3-диски и переименовывает его в более общий `s3_slow_all_threads_after_retryable_error`. [#85918](https://github.com/ClickHouse/ClickHouse/pull/85918) ([Julia Kartseva](https://github.com/jkartseva)). +* Настройки allow_experimental_variant/dynamic/json и enable_variant/dynamic/json помечены как устаревшие. Теперь все три типа всегда включены. [#85934](https://github.com/ClickHouse/ClickHouse/pull/85934) ([Pavel Kruglov](https://github.com/Avogar)). +* Добавлена поддержка фильтрации по полной строке URL (директива `full_url`) в `http_handlers` (включая схему и host:port). [#86155](https://github.com/ClickHouse/ClickHouse/pull/86155) ([Azat Khuzhin](https://github.com/azat)). +* Добавлена новая настройка `allow_experimental_delta_lake_writes`. [#86180](https://github.com/ClickHouse/ClickHouse/pull/86180) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлено определение systemd в скрипте init.d (исправлена проверка «Install packages»). [#86187](https://github.com/ClickHouse/ClickHouse/pull/86187) ([Azat Khuzhin](https://github.com/azat)). +* Добавлена новая размерностная метрика `startup_scripts_failure_reason`. Эта метрика необходима для различения разных типов ошибок, приводящих к сбоям стартовых скриптов. В частности, для целей оповещений нам нужно различать временные (например, `MEMORY_LIMIT_EXCEEDED` или `KEEPER_EXCEPTION`) и постоянные ошибки. [#86202](https://github.com/ClickHouse/ClickHouse/pull/86202) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Теперь можно опускать функцию `identity` при партиционировании таблиц Iceberg. [#86314](https://github.com/ClickHouse/ClickHouse/pull/86314) ([scanhex12](https://github.com/scanhex12)). +* Добавлена возможность включать JSON‑логирование только для определённого канала: для этого задайте параметру `logger.formatting.channel` одно из значений `syslog`/`console`/`errorlog`/`log`. [#86331](https://github.com/ClickHouse/ClickHouse/pull/86331) ([Azat Khuzhin](https://github.com/azat)). +* Разрешено использовать числовые литералы в `WHERE`. Они уже допускаются как аргументы логических функций. Это упрощает оптимизации filter-push-down и move-to-prewhere. [#86390](https://github.com/ClickHouse/ClickHouse/pull/86390) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлена ошибка при выполнении `SYSTEM DROP REPLICA` в отношении Catalog с повреждёнными метаданными. [#86391](https://github.com/ClickHouse/ClickHouse/pull/86391) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Добавлены дополнительные попытки проверки доступа к диску (`skip_access_check = 0`) в Azure, поскольку предоставление доступа может занимать довольно продолжительное время. [#86419](https://github.com/ClickHouse/ClickHouse/pull/86419) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Окно устаревания в функциях `timeSeries*()` сделано левосторонне открытым и правосторонне замкнутым. [#86588](https://github.com/ClickHouse/ClickHouse/pull/86588) ([Vitaly Baranov](https://github.com/vitlibar)). +* Добавлены события профилирования `FailedInternal*Query`. [#86627](https://github.com/ClickHouse/ClickHouse/pull/86627) ([Shane Andrade](https://github.com/mauidude)). +* Исправлена обработка пользователей с точкой в имени при добавлении через конфигурационный файл. [#86633](https://github.com/ClickHouse/ClickHouse/pull/86633) ([Mikhail Koviazin](https://github.com/mkmkme)). +* Добавлены асинхронные метрики использования памяти в запросах (`QueriesMemoryUsage` и `QueriesPeakMemoryUsage`). [#86669](https://github.com/ClickHouse/ClickHouse/pull/86669) ([Azat Khuzhin](https://github.com/azat)). +* Вы можете использовать флаг `clickhouse-benchmark --precise` для более точной отчётности по QPS и другим интервальным метрикам. Это помогает получать стабильные значения QPS в случае, если длительность запросов сопоставима с интервалом отчётности `--delay D`. [#86684](https://github.com/ClickHouse/ClickHouse/pull/86684) ([Sergei Trifonov](https://github.com/serxa)). +* Сделаны настраиваемыми значения `nice` потоков Linux, чтобы можно было назначать отдельным потокам (merge/mutate, query, materialized view, клиент ZooKeeper) более высокий или более низкий приоритет. [#86703](https://github.com/ClickHouse/ClickHouse/pull/86703) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Исправлена вводящая в заблуждение ошибка «specified upload does not exist», возникавшая, когда исходное исключение теряется при multipart‑загрузке из‑за условий гонки. [#86725](https://github.com/ClickHouse/ClickHouse/pull/86725) ([Julia Kartseva](https://github.com/jkartseva)). +* Ограничена длина описания плана запроса в запросе `EXPLAIN`. Описание больше не вычисляется для запросов, отличных от `EXPLAIN`. Добавлена настройка `query_plan_max_step_description_length`. [#86741](https://github.com/ClickHouse/ClickHouse/pull/86741) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Добавлена возможность настраивать параметры ожидающих сигналов, чтобы обойти CANNOT_CREATE_TIMER (для профилировщиков запросов, `query_profiler_real_time_period_ns`/`query_profiler_cpu_time_period_ns`). Также реализован сбор `SigQ` из `/proc/self/status` для интроспекции (если `ProcessSignalQueueSize` близко к `ProcessSignalQueueLimit`, то вы, вероятно, будете получать ошибки `CANNOT_CREATE_TIMER`). [#86760](https://github.com/ClickHouse/ClickHouse/pull/86760) ([Azat Khuzhin](https://github.com/azat)). +* Улучшена производительность запроса `RemoveRecursive` в Keeper. [#86789](https://github.com/ClickHouse/ClickHouse/pull/86789) ([Antonio Andelic](https://github.com/antonio2368)). +* Удалены лишние пробелы в `PrettyJSONEachRow` при выводе данных типа JSON. [#86819](https://github.com/ClickHouse/ClickHouse/pull/86819) ([Pavel Kruglov](https://github.com/Avogar)). +* Теперь мы записываем размеры BLOB-объектов для `prefix.path` при удалении директории на plain перезаписываемом диске. [#86908](https://github.com/ClickHouse/ClickHouse/pull/86908) ([alesapin](https://github.com/alesapin)). +* Добавлена поддержка тестов производительности для удалённых инстансов ClickHouse, включая ClickHouse Cloud. Пример использования: `tests/performance/scripts/perf.py tests/performance/math.xml --runs 10 --user --password --host --port --secure`. [#86995](https://github.com/ClickHouse/ClickHouse/pull/86995) ([Raufs Dunamalijevs](https://github.com/rienath)). +* В некоторых местах, где известно, что выделяется значительный объем памяти (>16MiB) (сортировка, асинхронные вставки, журнал файлов), теперь соблюдаются ограничения на использование памяти. [#87035](https://github.com/ClickHouse/ClickHouse/pull/87035) ([Azat Khuzhin](https://github.com/azat)). +* Выбрасывать исключение, если значение настройки `network_compression_method` не является поддерживаемым универсальным кодеком. [#87097](https://github.com/ClickHouse/ClickHouse/pull/87097) ([Robert Schulze](https://github.com/rschu1ze)). +* Системная таблица `system.query_cache` теперь возвращает *все* записи кэша результатов запросов, тогда как ранее она возвращала только общие записи или неразделяемые записи того же пользователя и роли. Это приемлемо, поскольку неразделяемые записи не должны раскрывать *результаты запросов*, тогда как `system.query_cache` возвращает *строки запросов*. Это делает поведение системной таблицы более похожим на `system.query_log`. [#87104](https://github.com/ClickHouse/ClickHouse/pull/87104) ([Robert Schulze](https://github.com/rschu1ze)). +* Включено вычисление с коротким замыканием для функции `parseDateTime`. [#87184](https://github.com/ClickHouse/ClickHouse/pull/87184) ([Pavel Kruglov](https://github.com/Avogar)). +* Добавлен новый столбец `statistics` в таблицу `system.parts_columns`. [#87259](https://github.com/ClickHouse/ClickHouse/pull/87259) ([Han Fei](https://github.com/hanfei1991)). + +#### Исправление ошибки (ошибка, проявляющаяся для пользователя, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* Результаты ALTER-запросов теперь проверяются только на инициирующем узле для реплицируемых баз данных и таблиц с внутренней репликацией. Это исправит ситуации, когда уже зафиксированный ALTER-запрос мог застревать на других узлах. [#83849](https://github.com/ClickHouse/ClickHouse/pull/83849) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Ограничивается количество задач каждого типа в `BackgroundSchedulePool`. Это позволяет избежать ситуаций, когда все слоты заняты задачами одного типа, в то время как другие задачи не выполняются, а также предотвращает взаимоблокировки, когда задачи ждут друг друга. Это поведение настраивается параметром сервера `background_schedule_pool_max_parallel_tasks_per_type_ratio`. [#84008](https://github.com/ClickHouse/ClickHouse/pull/84008) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Обеспечено корректное завершение работы таблиц при восстановлении реплики базы данных. Некорректное завершение приводило к возникновению LOGICAL_ERROR для некоторых движков таблиц во время восстановления реплики базы данных. [#84744](https://github.com/ClickHouse/ClickHouse/pull/84744) ([Antonio Andelic](https://github.com/antonio2368)). +* Проверять права доступа при формировании подсказок по исправлению опечаток в имени базы данных. [#85371](https://github.com/ClickHouse/ClickHouse/pull/85371) ([Dmitry Novik](https://github.com/novikd)). +* 1. Использование LowCardinality для столбцов Hive 2. Заполнять столбцы Hive перед виртуальными столбцами (требуется для [https://github.com/ClickHouse/ClickHouse/pull/81040](https://github.com/ClickHouse/ClickHouse/pull/81040)) 3. LOGICAL_ERROR при пустом формате для Hive [#85528](https://github.com/ClickHouse/ClickHouse/issues/85528) 4. Исправлена проверка, что столбцы партиции Hive являются единственными столбцами 5. Добавлена проверка (assert), что все столбцы Hive указаны в схеме 6. Частичное исправление для parallel_replicas_cluster с Hive 7. Использовать упорядоченный контейнер в extractKeyValuePairs для утилит Hive (требуется для [https://github.com/ClickHouse/ClickHouse/pull/81040](https://github.com/ClickHouse/ClickHouse/pull/81040)). [#85538](https://github.com/ClickHouse/ClickHouse/pull/85538) ([Arthur Passos](https://github.com/arthurpassos)). +* Предотвращена ненужная оптимизация первого аргумента функций `IN`, которая иногда приводила к ошибке при использовании отображения массивов. [#85546](https://github.com/ClickHouse/ClickHouse/pull/85546) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Сопоставление между идентификаторами источников Iceberg и именами файлов Parquet не было приведено в соответствие со схемой на момент записи файла Parquet. Этот PR использует схему, релевантную для каждого файла данных Iceberg, а не текущую схему. [#85829](https://github.com/ClickHouse/ClickHouse/pull/85829) ([Daniil Ivanik](https://github.com/divanik)). +* Исправлена обработка размера файла, который считывался отдельно от его открытия. Связано с [https://github.com/ClickHouse/ClickHouse/pull/33372](https://github.com/ClickHouse/ClickHouse/pull/33372), который был добавлен в ответ на ошибку в ядрах Linux версий до релиза `5.10`. [#85837](https://github.com/ClickHouse/ClickHouse/pull/85837) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* ClickHouse Keeper больше не завершается с ошибкой при запуске на системах, где IPv6 отключён на уровне ядра (например, RHEL с ipv6.disable=1). Теперь он пытается перейти к использованию IPv4‑слушателя, если не удаётся запустить исходный IPv6‑слушатель. [#85901](https://github.com/ClickHouse/ClickHouse/pull/85901) ([jskong1124](https://github.com/jskong1124)). +* Этот PR закрывает [#77990](https://github.com/ClickHouse/ClickHouse/issues/77990). Добавлена поддержка TableFunctionRemote для параллельных реплик в globalJoin. [#85929](https://github.com/ClickHouse/ClickHouse/pull/85929) ([zoomxi](https://github.com/zoomxi)). +* Исправлено разыменование нулевого указателя в orcschemareader::initializeifneeded(). Этот PR устраняет следующую проблему: [#85292](https://github.com/ClickHouse/ClickHouse/issues/85292) ### Запись в документации об изменениях, затрагивающих пользователей. [#85951](https://github.com/ClickHouse/ClickHouse/pull/85951) ([yanglongwei](https://github.com/ylw510)). +* Добавлена проверка, которая разрешает использовать коррелированные подзапросы в предложении FROM только если они ссылаются на столбцы внешнего запроса. Исправляет [#85469](https://github.com/ClickHouse/ClickHouse/issues/85469). Исправляет [#85402](https://github.com/ClickHouse/ClickHouse/issues/85402). [#85966](https://github.com/ClickHouse/ClickHouse/pull/85966) ([Dmitry Novik](https://github.com/novikd)). +* Исправлена работа ALTER UPDATE для столбца с подстолбцом, используемым в материализованном выражении другого столбца. Ранее материализованный столбец с подстолбцом в своём выражении обновлялся некорректно. [#85985](https://github.com/ClickHouse/ClickHouse/pull/85985) ([Pavel Kruglov](https://github.com/Avogar)). +* Запрещено изменять столбцы, подстолбцы которых используются в первичном ключе (PK) или выражении партиционирования. [#86005](https://github.com/ClickHouse/ClickHouse/pull/86005) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлено чтение подстолбцов в хранилище DeltaLake при режиме сопоставления столбцов, отличном от значения по умолчанию. [#86064](https://github.com/ClickHouse/ClickHouse/pull/86064) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлено использование неверных значений по умолчанию для пути с подсказкой Enum в JSON. [#86065](https://github.com/ClickHouse/ClickHouse/pull/86065) ([Pavel Kruglov](https://github.com/Avogar)). +* Разбор URL каталога Hive в DataLake с очисткой входных данных. Закрывает [#86018](https://github.com/ClickHouse/ClickHouse/issues/86018). [#86092](https://github.com/ClickHouse/ClickHouse/pull/86092) ([rajat mohan](https://github.com/rajatmohan22)). +* Исправлена логическая ошибка при динамическом изменении размера кэша файловой системы. Закрывает [#86122](https://github.com/ClickHouse/ClickHouse/issues/86122). Закрывает [https://github.com/ClickHouse/clickhouse-core-incidents/issues/473](https://github.com/ClickHouse/clickhouse-core-incidents/issues/473). [#86130](https://github.com/ClickHouse/ClickHouse/pull/86130) ([Kseniia Sumarokova](https://github.com/kssenii)). +* В DatabaseReplicatedSettings для `logs_to_keep` теперь используется `NonZeroUInt64`. [#86142](https://github.com/ClickHouse/ClickHouse/pull/86142) ([Tuan Pham Anh](https://github.com/tuanpach)). +* Исключение возникало при выполнении `FINAL`-запроса со `skip index`, если таблица (например, `ReplacingMergeTree`) была создана с параметром `index_granularity_bytes = 0`. Эта проблема теперь исправлена. [#86147](https://github.com/ClickHouse/ClickHouse/pull/86147) ([Shankar Iyer](https://github.com/shankar-iyer)). +* Удаляет неопределённое поведение (UB) и исправляет проблемы при разборе выражения партиции Iceberg. [#86166](https://github.com/ClickHouse/ClickHouse/pull/86166) ([Daniil Ivanik](https://github.com/divanik)). +* Исправлена ошибка, приводившая к сбою при одновременном использовании константных и неконстантных блоков в одном INSERT. [#86230](https://github.com/ClickHouse/ClickHouse/pull/86230) ([Azat Khuzhin](https://github.com/azat)). +* По умолчанию обрабатывает include-директивы из `/etc/metrika.xml` при создании дисков с помощью SQL. [#86232](https://github.com/ClickHouse/ClickHouse/pull/86232) ([alekar](https://github.com/alekar)). +* Исправлено поведение функций accurateCastOrNull/accurateCastOrDefault при преобразовании из String в JSON. [#86240](https://github.com/ClickHouse/ClickHouse/pull/86240) ([Pavel Kruglov](https://github.com/Avogar)). +* Поддержка каталогов без '/' в движке Iceberg. [#86249](https://github.com/ClickHouse/ClickHouse/pull/86249) ([scanhex12](https://github.com/scanhex12)). +* Исправлен сбой при вызове replaceRegex с haystack типа FixedString и пустым needle. [#86270](https://github.com/ClickHouse/ClickHouse/pull/86270) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлен сбой при выполнении ALTER UPDATE Nullable(JSON). [#86281](https://github.com/ClickHouse/ClickHouse/pull/86281) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена ошибка отсутствия определителя столбца в system.tables. [#86295](https://github.com/ClickHouse/ClickHouse/pull/86295) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлено приведение типа из LowCardinality(Nullable(T)) к Dynamic. [#86365](https://github.com/ClickHouse/ClickHouse/pull/86365) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена логическая ошибка при записи в Delta Lake. Закрывает [#86175](https://github.com/ClickHouse/ClickHouse/issues/86175). [#86367](https://github.com/ClickHouse/ClickHouse/pull/86367) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлена ошибка с кодом `416 The range specified is invalid for the current size of the resource. The range specified is invalid for the current size of the resource` при чтении пустых blob-объектов из Azure Blob Storage для диска plain_rewritable. [#86400](https://github.com/ClickHouse/ClickHouse/pull/86400) ([Julia Kartseva](https://github.com/jkartseva)). +* Исправлена проблема с GROUP BY для Nullable(JSON). [#86410](https://github.com/ClickHouse/ClickHouse/pull/86410) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена ошибка в materialized view: представление могло не работать, если его создавали, удаляли, а затем снова создавали с тем же именем. [#86413](https://github.com/ClickHouse/ClickHouse/pull/86413) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Выдавать ошибку, если все реплики недоступны при чтении с помощью функций *cluster. [#86414](https://github.com/ClickHouse/ClickHouse/pull/86414) ([Julian Maicher](https://github.com/jmaicher)). +* Устранена утечка `MergesMutationsMemoryTracking`, вызванная таблицами `Buffer`, а также исправлен `query_views_log` при потоковой загрузке из `Kafka` (и других источников). [#86422](https://github.com/ClickHouse/ClickHouse/pull/86422) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена работа SHOW TABLES после удаления ссылочной таблицы хранилища Alias. [#86433](https://github.com/ClickHouse/ClickHouse/pull/86433) ([RinChanNOW](https://github.com/RinChanNOWWW)). +* Исправлено отсутствие заголовка фрагмента при включённом `send_chunk_header` и вызове UDF по HTTP. [#86469](https://github.com/ClickHouse/ClickHouse/pull/86469) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Исправлена возможная взаимоблокировка при включённых сбросах профиля jemalloc. [#86473](https://github.com/ClickHouse/ClickHouse/pull/86473) ([Azat Khuzhin](https://github.com/azat)). +* Исправлено чтение подстолбцов в движке таблицы DeltaLake. Закрывает [#86204](https://github.com/ClickHouse/ClickHouse/issues/86204). [#86477](https://github.com/ClickHouse/ClickHouse/pull/86477) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Корректная обработка идентификатора loopback-хоста для предотвращения коллизий при обработке DDL-задач: [#86479](https://github.com/ClickHouse/ClickHouse/pull/86479) ([Tuan Pham Anh](https://github.com/tuanpach)). +* Исправлена работа операций DETACH/ATTACH для таблиц движка базы данных postgres со столбцами типов numeric/decimal. [#86480](https://github.com/ClickHouse/ClickHouse/pull/86480) ([Julian Maicher](https://github.com/jmaicher)). +* Исправлено использование неинициализированной памяти в функции getSubcolumnType. [#86498](https://github.com/ClickHouse/ClickHouse/pull/86498) ([Raúl Marín](https://github.com/Algunenano)). +* Функции `searchAny` и `searchAll` при вызове с пустыми строками поиска теперь возвращают `true` (то есть «совпадает со всем»). Ранее они возвращали `false`. (issue [#86300](https://github.com/ClickHouse/ClickHouse/issues/86300)). [#86500](https://github.com/ClickHouse/ClickHouse/pull/86500) ([Elmi Ahmadov](https://github.com/ahmadov)). +* Исправлена функция `timeSeriesResampleToGridWithStaleness()` при отсутствии значения в первом интервале. [#86507](https://github.com/ClickHouse/ClickHouse/pull/86507) ([Vitaly Baranov](https://github.com/vitlibar)). +* Исправлена ошибка, приводившая к сбою при установке `merge_tree_min_read_task_size` в 0. [#86527](https://github.com/ClickHouse/ClickHouse/pull/86527) ([yanglongwei](https://github.com/ylw510)). +* При чтении формат для каждого файла данных теперь берётся из метаданных Iceberg (раньше он брался из аргументов таблицы). [#86529](https://github.com/ClickHouse/ClickHouse/pull/86529) ([Daniil Ivanik](https://github.com/divanik)). +* Игнорировать исключения при сбросе лога во время завершения работы и сделать процесс завершения более безопасным (чтобы избежать SIGSEGV). [#86546](https://github.com/ClickHouse/ClickHouse/pull/86546) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена ошибка в движке таблиц Backup, приводившая к возникновению исключения при запросах с файлами партиций нулевого размера. [#86563](https://github.com/ClickHouse/ClickHouse/pull/86563) ([Max Justus Spransy](https://github.com/maxjustus)). +* Исправлено отсутствие заголовка фрагмента при включённом параметре `send_chunk_header` и вызове UDF по протоколу HTTP. [#86606](https://github.com/ClickHouse/ClickHouse/pull/86606) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Исправлена логическая ошибка в S3Queue "Expected current processor {} to be equal to {}", возникавшая из‑за истечения срока действия keeper‑сессии. [#86615](https://github.com/ClickHouse/ClickHouse/pull/86615) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Ошибки обработки `Nullable` при вставке данных и отсечении. Это закрывает [#86407](https://github.com/ClickHouse/ClickHouse/issues/86407). [#86630](https://github.com/ClickHouse/ClickHouse/pull/86630) ([scanhex12](https://github.com/scanhex12)). +* Не отключайте кэш файловой системы, если отключён кэш метаданных Iceberg. [#86635](https://github.com/ClickHouse/ClickHouse/pull/86635) ([Daniil Ivanik](https://github.com/divanik)). +* Исправлена ошибка 'Deadlock in Parquet::ReadManager (single-threaded)' в parquet reader v3. [#86644](https://github.com/ClickHouse/ClickHouse/pull/86644) ([Michael Kolupaev](https://github.com/al13n321)). +* Исправлена поддержка IPv6 в параметре `listen_host` для ArrowFlight. [#86664](https://github.com/ClickHouse/ClickHouse/pull/86664) ([Vitaly Baranov](https://github.com/vitlibar)). +* Исправлено завершение работы обработчика `ArrowFlight`. Этот PR исправляет [#86596](https://github.com/ClickHouse/ClickHouse/issues/86596). [#86665](https://github.com/ClickHouse/ClickHouse/pull/86665) ([Vitaly Baranov](https://github.com/vitlibar)). +* Исправлена работа распределённых запросов при `describe_compact_output=1`. [#86676](https://github.com/ClickHouse/ClickHouse/pull/86676) ([Azat Khuzhin](https://github.com/azat)). +* Исправлены ошибки при разборе определений окон и применении параметров запроса. [#86720](https://github.com/ClickHouse/ClickHouse/pull/86720) ([Azat Khuzhin](https://github.com/azat)). +* Устранено исключение `Partition strategy wildcard can not be used without a '_partition_id' wildcard.` при создании таблицы с `PARTITION BY`, но без подстановочного символа партиции, что работало в версиях до 25.8. Закрывает [https://github.com/ClickHouse/clickhouse-private/issues/37567](https://github.com/ClickHouse/clickhouse-private/issues/37567). [#86748](https://github.com/ClickHouse/ClickHouse/pull/86748) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлена ошибка LogicalError, возникавшая, когда параллельные запросы пытались получить одну общую блокировку. [#86751](https://github.com/ClickHouse/ClickHouse/pull/86751) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* Исправлена запись значения NULL в общие JSON‑данные во входном формате RowBinary и добавлены дополнительные проверки в ColumnObject. [#86812](https://github.com/ClickHouse/ClickHouse/pull/86812) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена ошибка при перестановке пустого Tuple с `LIMIT`. [#86828](https://github.com/ClickHouse/ClickHouse/pull/86828) ([Pavel Kruglov](https://github.com/Avogar)). +* Не используйте отдельный узел Keeper для узлов persistent processing. Исправление для [https://github.com/ClickHouse/ClickHouse/pull/85995](https://github.com/ClickHouse/ClickHouse/pull/85995). Закрывает [#86406](https://github.com/ClickHouse/ClickHouse/issues/86406). [#86841](https://github.com/ClickHouse/ClickHouse/pull/86841) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлена проблема в таблице с движком TimeSeries, из-за которой не удавалось создать новую реплику в реплицируемой базе данных. [#86845](https://github.com/ClickHouse/ClickHouse/pull/86845) ([Nikolay Degterinsky](https://github.com/evillique)). +* Исправлена ошибка при выполнении запросов к `system.distributed_ddl_queue` в случаях, когда у заданий отсутствуют некоторые узлы Keeper. [#86848](https://github.com/ClickHouse/ClickHouse/pull/86848) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлено позиционирование в конце декомпрессированного блока. [#86906](https://github.com/ClickHouse/ClickHouse/pull/86906) ([Pavel Kruglov](https://github.com/Avogar)). +* Добавлена обработка исключения, выбрасываемого во время асинхронного выполнения Iceberg Iterator. [#86932](https://github.com/ClickHouse/ClickHouse/pull/86932) ([Daniil Ivanik](https://github.com/divanik)). +* Исправлена проблема с сохранением больших предварительно обработанных XML‑конфигов. [#86934](https://github.com/ClickHouse/ClickHouse/pull/86934) ([c-end](https://github.com/c-end)). +* Исправлено заполнение поля даты в таблице system.iceberg_metadata_log. [#86961](https://github.com/ClickHouse/ClickHouse/pull/86961) ([Daniil Ivanik](https://github.com/divanik)). +* Исправлен бесконечный пересчёт `TTL` при использовании `WHERE`. [#86965](https://github.com/ClickHouse/ClickHouse/pull/86965) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлен потенциально некорректный результат функции `uniqExact` с модификаторами `ROLLUP` и `CUBE`. [#87014](https://github.com/ClickHouse/ClickHouse/pull/87014) ([Nikita Taranov](https://github.com/nickitat)). +* Исправлено определение схемы таблицы с помощью табличной функции `url()` при значении настройки `parallel_replicas_for_cluster_functions`, равном 1. [#87029](https://github.com/ClickHouse/ClickHouse/pull/87029) ([Konstantин Bogdanov](https://github.com/thevar1able)). +* Исправлено приведение типа выходного значения PREWHERE после разбиения его на несколько шагов. [#87040](https://github.com/ClickHouse/ClickHouse/pull/87040) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлены легковесные обновления с предложением `ON CLUSTER`. [#87043](https://github.com/ClickHouse/ClickHouse/pull/87043) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлена совместимость некоторых состояний агрегатных функций с аргументом типа String. [#87049](https://github.com/ClickHouse/ClickHouse/pull/87049) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена проблема, из-за которой имя модели от OpenAI не передавалось. [#87100](https://github.com/ClickHouse/ClickHouse/pull/87100) ([Kaushik Iska](https://github.com/iskakaushik)). +* EmbeddedRocksDB: Путь должен находиться внутри user_files. [#87109](https://github.com/ClickHouse/ClickHouse/pull/87109) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена проблема с таблицами KeeperMap, созданными до версии 25.1, которые после выполнения DROP оставляли данные в ZooKeeper. [#87112](https://github.com/ClickHouse/ClickHouse/pull/87112) ([Nikolay Degterinsky](https://github.com/evillique)). +* Исправлено чтение идентификаторов полей maps и arrays при чтении файлов Parquet. [#87136](https://github.com/ClickHouse/ClickHouse/pull/87136) ([scanhex12](https://github.com/scanhex12)). +* Исправлено чтение массивов с подстолбцом размеров при ленивой материализации. [#87139](https://github.com/ClickHouse/ClickHouse/pull/87139) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена работа функции CASE с аргументами типа Dynamic. [#87177](https://github.com/ClickHouse/ClickHouse/pull/87177) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена ошибка чтения пустого массива из пустой строки в CSV. [#87182](https://github.com/ClickHouse/ClickHouse/pull/87182) ([Pavel Kruglov](https://github.com/Avogar)). +* Устранена потенциальная ошибка, приводившая к неверному результату некоррелированного `EXISTS`. Ошибка проявлялась при `execute_exists_as_scalar_subquery=1`, который был добавлен в [https://github.com/ClickHouse/ClickHouse/pull/85481](https://github.com/ClickHouse/ClickHouse/pull/85481) и затрагивал версию 25.8. Исправляет [#86415](https://github.com/ClickHouse/ClickHouse/issues/86415). [#87207](https://github.com/ClickHouse/ClickHouse/pull/87207) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Выдаёт ошибку, если iceberg_metadata_log не настроен, но пользователь пытается получить отладочную информацию о метаданных Iceberg. Исправляет обращение к nullptr. [#87250](https://github.com/ClickHouse/ClickHouse/pull/87250) ([Daniil Ivanik](https://github.com/divanik)). + +#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement} + +* Исправлена совместимость с abseil-cpp 20250814.0, https://github.com/abseil/abseil-cpp/issues/1923. [#85970](https://github.com/ClickHouse/ClickHouse/pull/85970) ([Yuriy Chernyshov](https://github.com/georgthegreat)). +* Сборка отдельного WASM-лексера вынесена под флаг. [#86505](https://github.com/ClickHouse/ClickHouse/pull/86505) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Исправлена сборка crc32c на старых ARM CPU без поддержки инструкции `vmull_p64`. [#86521](https://github.com/ClickHouse/ClickHouse/pull/86521) ([Pablo Marcos](https://github.com/pamarcos)). +* Обновлён `openldap` до версии 2.6.10. [#86623](https://github.com/ClickHouse/ClickHouse/pull/86623) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Отключена попытка перехвата `memalign` в darwin. [#86769](https://github.com/ClickHouse/ClickHouse/pull/86769) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Обновлён `krb5` до версии 1.22.1-final. [#86836](https://github.com/ClickHouse/ClickHouse/pull/86836) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Исправлена распаковка имён Rust crate в `list-licenses.sh`. [#87305](https://github.com/ClickHouse/ClickHouse/pull/87305) ([Konstantin Bogdanov](https://github.com/thevar1able)). + +### Выпуск ClickHouse 25.8 LTS от 2025-08-28 {#258} + +#### Обратимо несовместимое изменение {#backward-incompatible-change} + +* Для массивов значений с разными типами в JSON теперь выводится тип `Array(Dynamic)` вместо безымянного `Tuple`. Чтобы использовать прежнее поведение, отключите настройку `input_format_json_infer_array_of_dynamic_from_array_of_different_types`. [#80859](https://github.com/ClickHouse/ClickHouse/pull/80859) ([Pavel Kruglov](https://github.com/Avogar)). +* Метрики задержки S3 перенесены в гистограммы для однородности и упрощения. [#82305](https://github.com/ClickHouse/ClickHouse/pull/82305) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Теперь требуются обратные кавычки вокруг идентификаторов с точками в выражениях по умолчанию, чтобы предотвратить их разбор как составных идентификаторов. [#83162](https://github.com/ClickHouse/ClickHouse/pull/83162) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* Ленивая материализация включена только при использовании analyzer (это значение по умолчанию), чтобы избежать сопровождения режима без analyzer, который, по нашему опыту, имеет ряд проблем (например, при использовании `indexHint()` в условиях). [#83791](https://github.com/ClickHouse/ClickHouse/pull/83791) ([Igor Nikonov](https://github.com/devcrafter)). +* По умолчанию значения типа `Enum` в формате вывода Parquet записываются как `BYTE_ARRAY` с логическим типом `ENUM`. [#84169](https://github.com/ClickHouse/ClickHouse/pull/84169) ([Pavel Kruglov](https://github.com/Avogar)). +* По умолчанию включена настройка MergeTree `write_marks_for_substreams_in_compact_parts`. Это значительно улучшает производительность чтения подстолбцов из вновь создаваемых Compact-частей. Серверы версии ниже 25.5 не смогут читать новые Compact-части. [#84171](https://github.com/ClickHouse/ClickHouse/pull/84171) ([Pavel Kruglov](https://github.com/Avogar)). +* Предыдущее значение по умолчанию для `concurrent_threads_scheduler` было `round_robin`, что оказалось несправедливым в условиях большого числа однопоточных запросов (например, INSERT). Это изменение делает более безопасный планировщик `fair_round_robin` значением по умолчанию. [#84747](https://github.com/ClickHouse/ClickHouse/pull/84747) ([Sergei Trifonov](https://github.com/serxa)). +* ClickHouse поддерживает heredoc-синтаксис в стиле PostgreSQL: `$tag$ string contents... $tag$`, также известный как dollar-quoted строковые литералы. В предыдущих версиях существовало меньше ограничений на теги: они могли содержать произвольные символы, включая пунктуацию и пробелы. Это приводило к неоднозначности при разборе с идентификаторами, которые также могут начинаться с символа доллара. При этом PostgreSQL разрешает в тегах только символьные (word) символы. Для решения проблемы мы теперь ограничиваем теги heredoc только символьными символами. Закрывает [#84731](https://github.com/ClickHouse/ClickHouse/issues/84731). [#84846](https://github.com/ClickHouse/ClickHouse/pull/84846) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Функции `azureBlobStorage`, `deltaLakeAzure` и `icebergAzure` были обновлены для корректной проверки прав `AZURE`. Все кластерные варианты функций (функции с суффиксом `-Cluster`) теперь проверяют права относительно соответствующих некластерных вариантов. Дополнительно, функции `icebergLocal` и `deltaLakeLocal` теперь принудительно выполняют проверки прав `FILE`. [#84938](https://github.com/ClickHouse/ClickHouse/pull/84938) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Настройка `allow_dynamic_metadata_for_data_lakes` (на уровне Table Engine) по умолчанию включена. [#85044](https://github.com/ClickHouse/ClickHouse/pull/85044) ([Daniil Ivanik](https://github.com/divanik)). +* По умолчанию отключено заключение 64-битных целых чисел в кавычки в JSON-форматах. [#74079](https://github.com/ClickHouse/ClickHouse/pull/74079) ([Pavel Kruglov](https://github.com/Avogar)) + +#### Новые возможности {#new-feature} + +* Добавлена базовая поддержка диалекта PromQL. Чтобы использовать её, установите `dialect='promql'` в clickhouse-client, укажите таблицу TimeSeries с помощью параметра `promql_table_name='X'` и выполняйте запросы вида `rate(ClickHouseProfileEvents_ReadCompressedBytes[1m])[5m:1m]`. Также вы можете обернуть запрос PromQL в SQL: `SELECT * FROM prometheusQuery('up', ...);`. Пока поддерживаются только функции `rate`, `delta` и `increase`. Унарные и бинарные операторы не поддерживаются. HTTP API отсутствует. [#75036](https://github.com/ClickHouse/ClickHouse/pull/75036) ([Vitaly Baranov](https://github.com/vitlibar)). +* Теперь генерация SQL на основе ИИ может автоматически использовать значения переменных окружения ANTHROPIC_API_KEY и OPENAI_API_KEY, если они заданы, что обеспечивает возможность использовать эту функцию без дополнительной конфигурации. [#83787](https://github.com/ClickHouse/ClickHouse/pull/83787) ([Kaushik Iska](https://github.com/iskakaushik)). +* Реализована поддержка протокола [ArrowFlight RPC](https://arrow.apache.org/docs/format/Flight.html) путём добавления новой табличной функции `arrowflight`. [#74184](https://github.com/ClickHouse/ClickHouse/pull/74184) ([zakr600](https://github.com/zakr600)). +* Теперь все таблицы поддерживают виртуальный столбец `_table` (не только таблицы на движке `Merge`), что особенно полезно для запросов с UNION ALL. [#63665](https://github.com/ClickHouse/ClickHouse/pull/63665) ([Xiaozhe Yu](https://github.com/wudidapaopao)). +* Теперь можно использовать любую политику хранения (например объектное хранилище, такое как S3) для внешней агрегации и сортировки. [#84734](https://github.com/ClickHouse/ClickHouse/pull/84734) ([Azat Khuzhin](https://github.com/azat)). +* Добавлена аутентификация в AWS S3 с явным указанием роли IAM. Реализован OAuth для GCS. Ранее эти возможности были доступны только в ClickHouse Cloud, а теперь открыты в виде open source. Синхронизированы некоторые интерфейсы, например сериализация параметров подключения к объектным хранилищам. [#84011](https://github.com/ClickHouse/ClickHouse/pull/84011) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена поддержка позиционных удалений для Iceberg TableEngine. [#83094](https://github.com/ClickHouse/ClickHouse/pull/83094) ([Daniil Ivanik](https://github.com/divanik)). +* Добавлена поддержка Iceberg Equality Deletes. [#85843](https://github.com/ClickHouse/ClickHouse/pull/85843) ([Han Fei](https://github.com/hanfei1991)). +* Поддержка записи в Iceberg для операций CREATE. Закрывает [#83927](https://github.com/ClickHouse/ClickHouse/issues/83927). [#83983](https://github.com/ClickHouse/ClickHouse/pull/83983) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* Каталоги Glue для записи. [#84136](https://github.com/ClickHouse/ClickHouse/pull/84136) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* REST-каталоги Iceberg для записи. [#84684](https://github.com/ClickHouse/ClickHouse/pull/84684) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* Добавлена возможность объединять все файлы позиционных удалений Iceberg в файлы с данными. Это сокращает количество и размеры файлов Parquet в хранилище Iceberg. Синтаксис: `OPTIMIZE TABLE table_name`. [#85250](https://github.com/ClickHouse/ClickHouse/pull/85250) ([Konstantин Vedernikov](https://github.com/scanhex12)). +* Поддержка команды `DROP TABLE` для Iceberg (удаление таблицы из каталогов REST/Glue и связанных метаданных). [#85395](https://github.com/ClickHouse/ClickHouse/pull/85395) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* Добавлена поддержка мутаций ALTER DELETE для Iceberg в формате merge-on-read. [#85549](https://github.com/ClickHouse/ClickHouse/pull/85549) ([Konstantин Ведерников](https://github.com/scanhex12)). +* Добавлена поддержка записи в DeltaLake. Закрывает [#79603](https://github.com/ClickHouse/ClickHouse/issues/79603). [#85564](https://github.com/ClickHouse/ClickHouse/pull/85564) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Добавлена настройка `delta_lake_snapshot_version` для чтения конкретной версии снимка (snapshot) в табличном движке `DeltaLake`. [#85295](https://github.com/ClickHouse/ClickHouse/pull/85295) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Записывать больше статистики для Iceberg (размеры столбцов, нижние и верхние границы) в метаданные (записи манифеста) для минимакс-прюнинга. [#85746](https://github.com/ClickHouse/ClickHouse/pull/85746) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* Поддержка операций добавления, удаления и изменения столбцов в Iceberg для простых типов. [#85769](https://github.com/ClickHouse/ClickHouse/pull/85769) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* Iceberg: добавлена поддержка записи файла version-hint. Закрывает [#85097](https://github.com/ClickHouse/ClickHouse/issues/85097). [#85130](https://github.com/ClickHouse/ClickHouse/pull/85130) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* Представления, созданные эфемерными пользователями, теперь будут сохранять копию реального пользователя и больше не будут становиться недействительными после удаления эфемерного пользователя. [#84763](https://github.com/ClickHouse/ClickHouse/pull/84763) ([pufit](https://github.com/pufit)). +* Индекс векторного сходства теперь поддерживает бинарное квантование. Бинарное квантование существенно снижает использование памяти и ускоряет процесс построения векторного индекса (за счёт более быстрого вычисления расстояния). Также существующая настройка `vector_search_postfilter_multiplier` была признана устаревшей и заменена более общей настройкой: `vector_search_index_fetch_multiplier`. [#85024](https://github.com/ClickHouse/ClickHouse/pull/85024) ([Shankar Iyer](https://github.com/shankar-iyer)). +* Разрешено использовать аргументы в формате ключ-значение в табличном движке/функции `s3` или `s3Cluster`, например `s3('url', CSV, structure = 'a Int32', compression_method = 'gzip')`. [#85134](https://github.com/ClickHouse/ClickHouse/pull/85134) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Новая системная таблица для хранения ошибочных входящих сообщений из движков, таких как Kafka («dead letter queue»). [#68873](https://github.com/ClickHouse/ClickHouse/pull/68873) ([Ilya Golshtein](https://github.com/ilejn)). +* Добавлена новая команда SYSTEM RESTORE DATABASE REPLICA для реплицируемых баз данных, аналогичная существующей функциональности восстановления в ReplicatedMergeTree. [#73100](https://github.com/ClickHouse/ClickHouse/pull/73100) ([Konstantin Morozov](https://github.com/k-morozov)). +* Протокол PostgreSQL теперь поддерживает команду `COPY`. [#74344](https://github.com/ClickHouse/ClickHouse/pull/74344) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* Добавлена поддержка C#‑клиента для протокола MySQL. Это закрывает [#83992](https://github.com/ClickHouse/ClickHouse/issues/83992). [#84397](https://github.com/ClickHouse/ClickHouse/pull/84397) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* Добавлена поддержка чтения и записи партиций в формате Hive. [#76802](https://github.com/ClickHouse/ClickHouse/pull/76802) ([Arthur Passos](https://github.com/arthurpassos)). +* Добавлена системная таблица `zookeeper_connection_log` для хранения истории подключений к ZooKeeper. [#79494](https://github.com/ClickHouse/ClickHouse/pull/79494) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Серверная настройка `cpu_slot_preemption` включает вытесняющее планирование CPU для рабочих нагрузок и обеспечивает максиминное справедливое распределение процессорного времени между ними. Добавлены новые настройки рабочих нагрузок для ограничения использования CPU: `max_cpus`, `max_cpu_share` и `max_burst_cpu_seconds`. Подробнее: [https://clickhouse.com/docs/operations/workload-scheduling#cpu_scheduling](https://clickhouse.com/docs/operations/workload-scheduling#cpu_scheduling). [#80879](https://github.com/ClickHouse/ClickHouse/pull/80879) ([Sergei Trifonov](https://github.com/serxa)). +* Разрывать TCP‑соединение после заданного числа запросов или по достижении заданного временного порога. Это полезно для более равномерного распределения соединений между узлами кластера за балансировщиком нагрузки. Решает [#68000](https://github.com/ClickHouse/ClickHouse/issues/68000). [#81472](https://github.com/ClickHouse/ClickHouse/pull/81472) ([Kenny Sun](https://github.com/hwabis)). +* Теперь в параллельных репликах поддерживается использование проекций при выполнении запросов. [#82659](https://github.com/ClickHouse/ClickHouse/issues/82659). [#82807](https://github.com/ClickHouse/ClickHouse/pull/82807) ([zoomxi](https://github.com/zoomxi)). +* Добавлена поддержка `DESCRIBE SELECT` в дополнение к `DESCRIBE (SELECT ...)`. [#82947](https://github.com/ClickHouse/ClickHouse/pull/82947) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Принудительное использование защищённого соединения для `mysql_port` и `postgresql_port`. [#82962](https://github.com/ClickHouse/ClickHouse/pull/82962) ([tiandiwonder](https://github.com/tiandiwonder)). +* Теперь вы можете выполнять поиск по ключам JSON без учета регистра с помощью `JSONExtractCaseInsensitive` (и других вариантов `JSONExtract`). [#83770](https://github.com/ClickHouse/ClickHouse/pull/83770) ([Alistair Evans](https://github.com/alistairjevans)). +* Добавлена таблица `system.completions`. Закрыта задача [#81889](https://github.com/ClickHouse/ClickHouse/issues/81889). [#83833](https://github.com/ClickHouse/ClickHouse/pull/83833) ([|2ustam](https://github.com/RuS2m)). +* Добавлена новая функция `nowInBlock64`. Пример использования: запрос `SELECT nowInBlock64(6)` возвращает `2025-07-29 17:09:37.775725`. [#84178](https://github.com/ClickHouse/ClickHouse/pull/84178) ([Halersson Paris](https://github.com/halersson)). +* Добавлена поддержка extra_credentials в AzureBlobStorage для аутентификации по client_id и tenant_id. [#84235](https://github.com/ClickHouse/ClickHouse/pull/84235) ([Pablo Marcos](https://github.com/pamarcos)). +* Добавлена функция `dateTimeToUUIDv7` для преобразования значения типа DateTime в UUIDv7. Пример использования: `SELECT dateTimeToUUIDv7(toDateTime('2025-08-15 18:57:56'))` возвращает `0198af18-8320-7a7d-abd3-358db23b9d5c`. [#84319](https://github.com/ClickHouse/ClickHouse/pull/84319) ([samradovich](https://github.com/samradovich)). +* Агрегатные функции `timeSeriesDerivToGrid` и `timeSeriesPredictLinearToGrid` для ресемплинга данных на временную сетку, задаваемую начальной меткой времени, конечной меткой времени и шагом; соответственно вычисляют аналоги PromQL‑функций `deriv` и `predict_linear`. [#84328](https://github.com/ClickHouse/ClickHouse/pull/84328) ([Stephen Chi](https://github.com/stephchi0)). +* Добавлены две новые функции для работы с временными рядами: - `timeSeriesRange(start_timestamp, end_timestamp, step)`, - `timeSeriesFromGrid(start_timestamp, end_timestamp, step, values)`. [#85435](https://github.com/ClickHouse/ClickHouse/pull/85435) ([Vitaly Baranov](https://github.com/vitlibar)). +* Добавлен новый синтаксис `GRANT READ ON S3('s3://foo/.*') TO user`. [#84503](https://github.com/ClickHouse/ClickHouse/pull/84503) ([pufit](https://github.com/pufit)). +* Добавлен новый формат вывода `Hash`. Он вычисляет единое хеш-значение для всех столбцов и строк результата. Это полезно для вычисления «отпечатка» результата, например, в сценариях, когда передача данных является узким местом. Пример: `SELECT arrayJoin(['abc', 'def']), 42 FORMAT Hash` возвращает `e5f9e676db098fdb9530d2059d8c23ef`. [#84607](https://github.com/ClickHouse/ClickHouse/pull/84607) ([Robert Schulze](https://github.com/rschu1ze)). +* Добавлена возможность настройки произвольных наблюдателей в запросах Keeper Multi. [#84964](https://github.com/ClickHouse/ClickHouse/pull/84964) ([Mikhail Artemenko](https://github.com/Michicosun)). +* Добавлен параметр `--max-concurrency` для инструмента `clickhouse-benchmark`, позволяющий включить режим с постепенным увеличением числа параллельных запросов. [#85623](https://github.com/ClickHouse/ClickHouse/pull/85623) ([Sergei Trifonov](https://github.com/serxa)). +* Добавлена поддержка частично агрегированных метрик. [#85328](https://github.com/ClickHouse/ClickHouse/pull/85328) ([Mikhail Artemenko](https://github.com/Michicosun)). + +#### Экспериментальные возможности {#experimental-feature} + +* Поддержка коррелированных подзапросов включена по умолчанию, они больше не являются экспериментальными. [#85107](https://github.com/ClickHouse/ClickHouse/pull/85107) ([Dmitry Novik](https://github.com/novikd)). +* Каталоги озер данных Unity, Glue, REST и Hive Metastore переведены из экспериментального режима в бета-режим. [#85848](https://github.com/ClickHouse/ClickHouse/pull/85848) ([Melvyn Peignon](https://github.com/melvynator)). +* Легковесные обновления и удаления переведены из экспериментального режима в бета-режим. +* Приблизительный поиск по векторам с индексами сходства векторов теперь общедоступен (GA). [#85888](https://github.com/ClickHouse/ClickHouse/pull/85888) ([Robert Schulze](https://github.com/rschu1ze)). +* Движок таблиц Ytsaurus и табличная функция. [#77606](https://github.com/ClickHouse/ClickHouse/pull/77606) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* Ранее данные текстового индекса разделялись на несколько сегментов (по умолчанию размер каждого сегмента составлял 256 MiB). Это могло снизить потребление памяти при построении текстового индекса, однако увеличивало требуемый объем дискового пространства и время выполнения запросов. [#84590](https://github.com/ClickHouse/ClickHouse/pull/84590) ([Elmi Ahmadov](https://github.com/ahmadov)). + +#### Повышение производительности {#performance-improvement} + +* Новая реализация считывателя Parquet. В целом работает быстрее и поддерживает проталкивание фильтров на уровне страниц и PREWHERE. В настоящее время является экспериментальной. Используйте настройку `input_format_parquet_use_native_reader_v3`, чтобы включить её. [#82789](https://github.com/ClickHouse/ClickHouse/pull/82789) ([Michael Kolupaev](https://github.com/al13n321)). +* Заменили официальный HTTP-транспорт в библиотеке Azure на нашу собственную реализацию HTTP-клиента для Azure Blob Storage. Добавили несколько настроек для этого клиента, соответствующих настройкам из S3. Ввели агрессивные тайм-ауты установления соединений как для Azure, так и для S3. Улучшили средства анализа событий и метрик профиля Azure. Новый клиент включён по умолчанию и обеспечивает значительно меньшие задержки для «холодных» запросов при работе с Azure Blob Storage. Старый клиент `Curl` можно вернуть, установив `azure_sdk_use_native_client=false`. [#83294](https://github.com/ClickHouse/ClickHouse/pull/83294) ([alesapin](https://github.com/alesapin)). Предыдущая официальная реализация клиента Azure была непригодна для боевой эксплуатации из-за серьёзных всплесков задержек — от пяти секунд до нескольких минут. Мы полностью отказались от этой реализации и очень этим гордимся. +* Обрабатывает индексы в порядке возрастания размера файла. Итоговый порядок индексов отдаёт приоритет индексам minmax и векторным индексам (из-за простоты и селективности соответственно), а затем — небольшим индексам. Среди индексов minmax/векторных индексов также отдается предпочтение более мелким индексам. [#84094](https://github.com/ClickHouse/ClickHouse/pull/84094) ([Maruth Goyal](https://github.com/maruthgoyal)). +* По умолчанию включена настройка движка MergeTree `write_marks_for_substreams_in_compact_parts`. Она значительно улучшает производительность чтения подстолбцов из вновь созданных Compact-частей. Серверы с версией ниже 25.5 не смогут читать новые Compact-части. [#84171](https://github.com/ClickHouse/ClickHouse/pull/84171) ([Pavel Kruglov](https://github.com/Avogar)). +* Движок таблицы `azureBlobStorage`: кэшировать и повторно использовать токены аутентификации для Managed Identity, когда это возможно, чтобы избежать ограничения частоты запросов. [#79860](https://github.com/ClickHouse/ClickHouse/pull/79860) ([Nick Blakely](https://github.com/niblak)). +* Операции `ALL` `LEFT/INNER` JOIN будут автоматически преобразовываться в `RightAny`, если правая сторона функционально определяется столбцами ключа соединения (все строки имеют уникальные значения ключа соединения). [#84010](https://github.com/ClickHouse/ClickHouse/pull/84010) ([Nikita Taranov](https://github.com/nickitat)). +* Добавлен `max_joined_block_size_bytes` в дополнение к `max_joined_block_size_rows` для ограничения использования памяти в операциях JOIN с ресурсоёмкими столбцами. [#83869](https://github.com/ClickHouse/ClickHouse/pull/83869) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Добавлена новая логика (управляется настройкой `enable_producing_buckets_out_of_order_in_aggregation`, по умолчанию включена), которая позволяет отправлять некоторые бакеты не по порядку при агрегации с экономным использованием памяти. Когда слияние некоторых бакетов агрегации занимает значительно больше времени, чем других, это повышает производительность, позволяя инициатору тем временем сливать бакеты с более высокими идентификаторами. Недостатком является потенциально более высокое потребление памяти (не должно быть значительным). [#80179](https://github.com/ClickHouse/ClickHouse/pull/80179) ([Nikita Taranov](https://github.com/nickitat)). +* Добавлена настройка `optimize_rewrite_regexp_functions` (по умолчанию включена), которая позволяет оптимизатору преобразовывать некоторые вызовы `replaceRegexpAll`, `replaceRegexpOne` и `extract` в более простые и эффективные формы при обнаружении определённых шаблонов регулярных выражений (issue [#81981](https://github.com/ClickHouse/ClickHouse/issues/81981)). [#81992](https://github.com/ClickHouse/ClickHouse/pull/81992) ([Amos Bird](https://github.com/amosbird)). +* Вынесена обработка `max_joined_block_rows` за пределы основного цикла hash JOIN. Незначительно улучшена производительность для ALL JOIN. [#83216](https://github.com/ClickHouse/ClickHouse/pull/83216) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Сначала обрабатывать min-max индексы с более высокой степенью детализации. Закрывает [#75381](https://github.com/ClickHouse/ClickHouse/issues/75381). [#83798](https://github.com/ClickHouse/ClickHouse/pull/83798) ([Maruth Goyal](https://github.com/maruthgoyal)). +* Сделать выполнение оконных агрегатов `DISTINCT` линейным по времени и исправить ошибку в `sumDistinct`. Закрывает [#79792](https://github.com/ClickHouse/ClickHouse/issues/79792). Закрывает [#52253](https://github.com/ClickHouse/ClickHouse/issues/52253). [#79859](https://github.com/ClickHouse/ClickHouse/pull/79859) ([Nihal Z. Miaji](https://github.com/nihalzp)). +* Запросы векторного поиска с использованием индекса векторного сходства выполняются с меньшей задержкой благодаря сокращению числа операций чтения из хранилища и снижению нагрузки на CPU. [#83803](https://github.com/ClickHouse/ClickHouse/pull/83803) ([Shankar Iyer](https://github.com/shankar-iyer)). +* Хеширование Rendezvous для улучшения локальности кэша при распределении нагрузки между параллельными репликами. [#82511](https://github.com/ClickHouse/ClickHouse/pull/82511) ([Anton Ivashkin](https://github.com/ianton-ru)). +* Для комбинаторов If реализована функция addManyDefaults, поэтому агрегатные функции с комбинаторами If теперь работают быстрее. [#83870](https://github.com/ClickHouse/ClickHouse/pull/83870) ([Raúl Marín](https://github.com/Algunenano)). +* Теперь сериализованный ключ вычисляется столбцово при группировке по нескольким строковым или числовым столбцам. [#83884](https://github.com/ClickHouse/ClickHouse/pull/83884) ([李扬](https://github.com/taiyang-li)). +* Исключено полное сканирование данных в случаях, когда анализ индекса приводит к пустым диапазонам при параллельном чтении реплик. [#84971](https://github.com/ClickHouse/ClickHouse/pull/84971) ([Eduard Karacharov](https://github.com/korowa)). +* Попробуйте использовать -falign-functions=64 для повышения стабильности тестов производительности. [#83920](https://github.com/ClickHouse/ClickHouse/pull/83920) ([Azat Khuzhin](https://github.com/azat)). +* Индекс блум‑фильтра теперь используется для условий вида `has([c1, c2, ...], column)`, где `column` имеет тип, отличный от `Array`. Это повышает производительность таких запросов, делая их столь же эффективными, как оператор `IN`. [#83945](https://github.com/ClickHouse/ClickHouse/pull/83945) ([Doron David](https://github.com/dorki)). +* Снижено число лишних вызовов memcpy в CompressedReadBufferBase::readCompressedData. [#83986](https://github.com/ClickHouse/ClickHouse/pull/83986) ([Raúl Marín](https://github.com/Algunenano)). +* Оптимизирован `largestTriangleThreeBuckets` за счет удаления временных данных. [#84479](https://github.com/ClickHouse/ClickHouse/pull/84479) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Ускорена десериализация строк за счёт упрощения кода. Закрыта задача [#38564](https://github.com/ClickHouse/ClickHouse/issues/38564). [#84561](https://github.com/ClickHouse/ClickHouse/pull/84561) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлен расчет минимального размера задачи для параллельных реплик. [#84752](https://github.com/ClickHouse/ClickHouse/pull/84752) ([Nikita Taranov](https://github.com/nickitat)). +* Улучшена производительность применения патч-частей в режиме `JOIN`. [#85040](https://github.com/ClickHouse/ClickHouse/pull/85040) ([Anton Popov](https://github.com/CurtizJ)). +* Удалён нулевой байт. Исправление закрывает [#85062](https://github.com/ClickHouse/ClickHouse/issues/85062). Исправлено несколько мелких ошибок. Функции `structureToProtobufSchema`, `structureToCapnProtoSchema` некорректно добавляли нулевой завершающий байт и вместо него использовали символ перевода строки. Это приводило к отсутствующему переводу строки в выводе и могло приводить к переполнению буфера при использовании других функций, зависящих от нулевого байта (таких как `logTrace`, `demangle`, `extractURLParameter`, `toStringCutToZero` и `encrypt`/`decrypt`). Структура словаря `regexp_tree` не поддерживала обработку строк с нулевыми байтами. Функция `formatRowNoNewline`, вызываемая с форматом `Values` или с любым другим форматом без перевода строки в конце строк, ошибочно обрезала последний символ вывода. Функция `stem` содержала ошибку безопасной работы с исключениями, которая в очень редком сценарии могла приводить к утечке памяти. Функция `initcap` работала неправильно для аргументов типа `FixedString`: она не распознавала начало слова в начале строки, если предыдущая строка в блоке заканчивалась на буквенно-цифровой символ. Исправлена уязвимость безопасности формата Apache `ORC`, которая могла приводить к раскрытию неинициализированной памяти. Изменено поведение функции `replaceRegexpAll` и соответствующего псевдонима `REGEXP_REPLACE`: теперь она может выполнять пустое совпадение в конце строки, даже если предыдущее совпадение обработало всю строку, как в случае `^a*|a*$` или `^|.*` — это соответствует семантике JavaScript, Perl, Python, PHP, Ruby, но отличается от семантики PostgreSQL. Реализация многих функций была упрощена и оптимизирована. Документация для нескольких функций была неверной и теперь исправлена. Имейте в виду, что вывод `byteSize` для столбцов типа String и составных типов, которые состоят из столбцов типа String, изменился (с 9 байт за пустую строку на 8 байт за пустую строку), и это нормально. [#85063](https://github.com/ClickHouse/ClickHouse/pull/85063) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Оптимизирована материализация констант в случаях, когда материализация выполняется только для возврата одной строки. [#85071](https://github.com/ClickHouse/ClickHouse/pull/85071) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Улучшена параллельная обработка файлов с использованием бэкенда delta-kernel-rs. [#85642](https://github.com/ClickHouse/ClickHouse/pull/85642) ([Azat Khuzhin](https://github.com/azat)). +* Добавлен новый параметр enable_add_distinct_to_in_subqueries. При его включении ClickHouse будет автоматически добавлять DISTINCT в подзапросы в выражениях IN для распределённых запросов. Это может значительно уменьшить размер временных таблиц, передаваемых между сегментами, и повысить эффективность использования сети. Примечание: это компромисс — хотя сетевой трафик уменьшается, на каждом узле требуется дополнительная работа по объединению (удалению дубликатов). Включайте этот параметр, когда узким местом является сетевой трафик и стоимость объединения приемлема. [#81908](https://github.com/ClickHouse/ClickHouse/pull/81908) ([fhw12345](https://github.com/fhw12345)). +* Снижены накладные расходы на отслеживание потребления памяти запросами для исполняемых пользовательских функций. [#83929](https://github.com/ClickHouse/ClickHouse/pull/83929) ([Eduard Karacharov](https://github.com/korowa)). +* Во внутреннем механизме `delta-kernel-rs` реализована фильтрация (статистика и отсечение партиций) в хранилище `DeltaLake`. [#84006](https://github.com/ClickHouse/ClickHouse/pull/84006) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Более тонко управляется отключение пропускающих индексов, которые зависят от столбцов, обновляемых «на лету» или посредством patch parts. Теперь пропускающие индексы не используются только в тех частях, на которые повлияли мутации «на лету» или patch parts; ранее такие индексы отключались для всех частей. [#84241](https://github.com/ClickHouse/ClickHouse/pull/84241) ([Anton Popov](https://github.com/CurtizJ)). +* Выделять минимально необходимый объём памяти под encrypted_buffer для зашифрованных именованных коллекций. [#84432](https://github.com/ClickHouse/ClickHouse/pull/84432) ([Pablo Marcos](https://github.com/pamarcos)). +* Улучшена поддержка индексов блум-фильтра (обычных, ngram и token) для их использования, когда первым аргументом выступает константный массив (множество), а вторым — индексируемый столбец (подмножество), что позволяет более эффективно выполнять запросы. [#84700](https://github.com/ClickHouse/ClickHouse/pull/84700) ([Doron David](https://github.com/dorki)). +* Снижена конкуренция за блокировку хранилища в Keeper. [#84732](https://github.com/ClickHouse/ClickHouse/pull/84732) ([Antonio Andelic](https://github.com/antonio2368)). +* Добавлена недостающая поддержка `read_in_order_use_virtual_row` в `WHERE`. Это позволяет пропускать чтение дополнительных частей для запросов с фильтрами, которые не были полностью перенесены в `PREWHERE`. [#84835](https://github.com/ClickHouse/ClickHouse/pull/84835) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Обеспечивает асинхронный обход объектов таблицы Iceberg без явного хранения объектов для каждого файла данных. [#85369](https://github.com/ClickHouse/ClickHouse/pull/85369) ([Daniil Ivanik](https://github.com/divanik)). +* Теперь некоррелированный `EXISTS` выполняется в виде скалярного подзапроса. Это позволяет использовать кэш скалярных подзапросов и выполнять константное свёртывание результата, что полезно для индексов. Для совместимости добавлена новая настройка `execute_exists_as_scalar_subquery=1`. [#85481](https://github.com/ClickHouse/ClickHouse/pull/85481) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). + +#### Улучшения {#improvement} + +* Добавлены настройки `database_replicated`, задающие значения по умолчанию для DatabaseReplicatedSettings. Если параметр не указан в запросе CREATE DATABASE для реплицируемой БД, используется значение из этой настройки. [#85127](https://github.com/ClickHouse/ClickHouse/pull/85127) ([Tuan Pham Anh](https://github.com/tuanpach)). +* Добавлена возможность изменять ширину столбцов таблицы в веб-интерфейсе (play). [#84012](https://github.com/ClickHouse/ClickHouse/pull/84012) ([Doron David](https://github.com/dorki)). +* Добавлена поддержка сжатого файла `.metadata.json` через настройку `iceberg_metadata_compression_method`. Поддерживаются все методы сжатия ClickHouse. Тем самым закрыта задача [#84895](https://github.com/ClickHouse/ClickHouse/issues/84895). [#85196](https://github.com/ClickHouse/ClickHouse/pull/85196) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* Показывать в выводе `EXPLAIN indexes = 1` количество диапазонов, которые будут прочитаны. [#79938](https://github.com/ClickHouse/ClickHouse/pull/79938) ([Christoph Wurm](https://github.com/cwurm)). +* Добавлены настройки для задания размера блока сжатия ORC и обновлено его значение по умолчанию с 64KB до 256KB, чтобы оно соответствовало Spark и Hive. [#80602](https://github.com/ClickHouse/ClickHouse/pull/80602) ([李扬](https://github.com/taiyang-li)). +* Добавлен файл `columns_substreams.txt` в Wide-часть для отслеживания всех подпотоков, хранящихся в части. Это помогает отслеживать динамические потоки в типах JSON и Dynamic и тем самым позволяет избежать чтения образца данных этих столбцов для получения списка динамических потоков (например, для расчёта размеров столбцов). Также теперь все динамические потоки отражены в `system.parts_columns`. [#81091](https://github.com/ClickHouse/ClickHouse/pull/81091) ([Pavel Kruglov](https://github.com/Avogar)). +* Добавлен флаг CLI --show_secrets для clickhouse format; теперь конфиденциальные данные по умолчанию скрываются. [#81524](https://github.com/ClickHouse/ClickHouse/pull/81524) ([Nikolai Ryzhov](https://github.com/Dolaxom)). +* Запросы чтения и записи в S3 теперь ограничиваются по скорости на уровне HTTP‑сокета (а не всего запроса к S3), чтобы избежать проблем с ограничением пропускной способности `max_remote_read_network_bandwidth_for_server` и `max_remote_write_network_bandwidth_for_server`. [#81837](https://github.com/ClickHouse/ClickHouse/pull/81837) ([Sergei Trifonov](https://github.com/serxa)). +* Разрешено смешивать разные правила сортировки (collation) для одного и того же столбца в разных окнах (для оконных функций). [#82877](https://github.com/ClickHouse/ClickHouse/pull/82877) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Добавлен инструмент для моделирования, визуализации и сравнения селекторов слияния. [#71496](https://github.com/ClickHouse/ClickHouse/pull/71496) ([Sergei Trifonov](https://github.com/serxa)). +* Добавлена поддержка табличных функций `remote*` с параллельными репликами, если кластер задан в аргументе `address_expression`. Также исправлена ошибка [#73295](https://github.com/ClickHouse/ClickHouse/issues/73295). [#82904](https://github.com/ClickHouse/ClickHouse/pull/82904) ([Igor Nikonov](https://github.com/devcrafter)). +* Установлен уровень TRACE для всех сообщений журнала, связанных с записью файлов резервных копий. [#82907](https://github.com/ClickHouse/ClickHouse/pull/82907) ([Hans Krutzer](https://github.com/hkrutzer)). +* Пользовательские функции с необычными именами и кодеками могут некорректно форматироваться SQL-форматировщиком. Это изменение закрывает задачу [#83092](https://github.com/ClickHouse/ClickHouse/issues/83092). [#83644](https://github.com/ClickHouse/ClickHouse/pull/83644) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Теперь можно использовать типы Time и Time64 внутри типа JSON. [#83784](https://github.com/ClickHouse/ClickHouse/pull/83784) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Операторы `JOIN` с параллельными репликами теперь используют логический шаг соединения. В случае любых проблем с запросами `JOIN`, использующими параллельные реплики, попробуйте выполнить `SET query_plan_use_new_logical_join_step=0` и сообщите о проблеме. [#83801](https://github.com/ClickHouse/ClickHouse/pull/83801) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Исправлена проблема совместимости для cluster_function_process_archive_on_multiple_nodes. [#83968](https://github.com/ClickHouse/ClickHouse/pull/83968) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Добавлена поддержка изменения настроек вставки в материализованные представления на уровне таблицы `S3Queue`. Добавлены новые настройки для `S3Queue`: `min_insert_block_size_rows_for_materialized_views` и `min_insert_block_size_bytes_for_materialized_views`. По умолчанию будут использоваться настройки на уровне профиля, а настройки уровня `S3Queue` будут их переопределять. [#83971](https://github.com/ClickHouse/ClickHouse/pull/83971) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Добавлено событие профиля `MutationAffectedRowsUpperBound`, которое показывает количество затронутых строк в мутации (например, общее количество строк, удовлетворяющих условию в запросе `ALTER UPDATE` или `ALTER DELETE`). [#83978](https://github.com/ClickHouse/ClickHouse/pull/83978) ([Anton Popov](https://github.com/CurtizJ)). +* Используется информация из cgroup (если применимо, т.е. когда доступны `memory_worker_use_cgroup` и cgroups) для корректировки счетчика памяти (`memory_worker_correct_memory_tracker`). [#83981](https://github.com/ClickHouse/ClickHouse/pull/83981) ([Azat Khuzhin](https://github.com/azat)). +* MongoDB: неявное преобразование строк в числовые типы. Ранее если строковое значение поступало из источника MongoDB для числового столбца в таблице ClickHouse, выбрасывалось исключение. Теперь движок пытается автоматически извлечь и преобразовать числовое значение из строки. Закрывает [#81167](https://github.com/ClickHouse/ClickHouse/issues/81167). [#84069](https://github.com/ClickHouse/ClickHouse/pull/84069) ([Kirill Nikiforov](https://github.com/allmazz)). +* Подсвечивать группы цифр в форматах `Pretty` для чисел с типом `Nullable`. [#84070](https://github.com/ClickHouse/ClickHouse/pull/84070) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Dashboard: подсказка больше не будет выходить за пределы контейнера сверху. [#84072](https://github.com/ClickHouse/ClickHouse/pull/84072) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Чуть более аккуратные точки на дашборде. [#84074](https://github.com/ClickHouse/ClickHouse/pull/84074) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* У Dashboard теперь немного лучше значок (favicon). [#84076](https://github.com/ClickHouse/ClickHouse/pull/84076) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Web UI: Добавлена возможность браузерам сохранять пароль. Также теперь будут запоминаться значения URL. [#84087](https://github.com/ClickHouse/ClickHouse/pull/84087) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена поддержка применения дополнительного ACL для конкретных узлов Keeper с помощью настройки `apply_to_children`. [#84137](https://github.com/ClickHouse/ClickHouse/pull/84137) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлено использование сериализации дискриминаторов Variant в формате "compact" в MergeTree. Ранее она в ряде случаев не применялась, хотя могла бы. [#84141](https://github.com/ClickHouse/ClickHouse/pull/84141) ([Pavel Kruglov](https://github.com/Avogar)). +* Добавлен серверный параметр `logs_to_keep` в настройки реплицируемых баз данных, который позволяет изменять значение параметра `logs_to_keep` по умолчанию для таких баз. Меньшие значения уменьшают количество ZNodes (особенно если баз данных много), а большие значения позволяют отсутствующей реплике догнать кластер спустя более продолжительное время. [#84183](https://github.com/ClickHouse/ClickHouse/pull/84183) ([Alexey Khatskevich](https://github.com/Khatskevich)). +* Добавлена настройка `json_type_escape_dots_in_keys` для экранирования точек в ключах JSON при разборе типов JSON. По умолчанию настройка отключена. [#84207](https://github.com/ClickHouse/ClickHouse/pull/84207) ([Pavel Kruglov](https://github.com/Avogar)). +* Перед проверкой EOF проверять, не было ли соединение отменено, чтобы предотвратить чтение из закрытого соединения. Исправляет [#83893](https://github.com/ClickHouse/ClickHouse/issues/83893). [#84227](https://github.com/ClickHouse/ClickHouse/pull/84227) ([Raufs Dunamalijevs](https://github.com/rienath)). +* Немного улучшены цвета выделения текста в веб-интерфейсе. Разница заметна в основном для выделенных ячеек таблиц в тёмной теме оформления. В предыдущих версиях был недостаточный контраст между текстом и фоном выделения. [#84258](https://github.com/ClickHouse/ClickHouse/pull/84258) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Улучшена обработка завершения работы сервера при работе с клиентскими подключениями за счет упрощения внутренних проверок. [#84312](https://github.com/ClickHouse/ClickHouse/pull/84312) ([Raufs Dunamalijevs](https://github.com/rienath)). +* Добавлена настройка `delta_lake_enable_expression_visitor_logging` для отключения логирования обходчика выражений, поскольку оно может быть слишком подробным даже на уровне логирования test при отладке. [#84315](https://github.com/ClickHouse/ClickHouse/pull/84315) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Метрики на уровне cgroup и системные метрики теперь передаются вместе. Метрики на уровне cgroup имеют имена `CGroup`, а метрики на уровне ОС (собираемые из procfs) — имена `OS`. [#84317](https://github.com/ClickHouse/ClickHouse/pull/84317) ([Nikita Taranov](https://github.com/nickitat)). +* Немного улучшены графики в Web UI. Незначительно, но всё же лучше. [#84326](https://github.com/ClickHouse/ClickHouse/pull/84326) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Изменено значение по умолчанию для настройки базы данных Replicated `max_retries_before_automatic_recovery` на 10, чтобы в некоторых случаях восстановление происходило быстрее. [#84369](https://github.com/ClickHouse/ClickHouse/pull/84369) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Исправлено форматирование оператора `CREATE USER` с параметрами запроса (например, `CREATE USER {username:Identifier} IDENTIFIED WITH no_password`). [#84376](https://github.com/ClickHouse/ClickHouse/pull/84376) ([Azat Khuzhin](https://github.com/azat)). +* Добавлены параметры `backup_restore_s3_retry_initial_backoff_ms`, `backup_restore_s3_retry_max_backoff_ms`, `backup_restore_s3_retry_jitter_factor` для настройки стратегии экспоненциальной задержки при повторных попытках обращения к S3 в операциях резервного копирования и восстановления. [#84421](https://github.com/ClickHouse/ClickHouse/pull/84421) ([Julia Kartseva](https://github.com/jkartseva)). +* Исправление упорядоченного режима S3Queue: завершать работу раньше при вызове shutdown. [#84463](https://github.com/ClickHouse/ClickHouse/pull/84463) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Добавлена поддержка записи в Iceberg при чтении через pyiceberg. [#84466](https://github.com/ClickHouse/ClickHouse/pull/84466) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* Разрешено приведение типов значений множеств при передаче фильтров `IN` / `GLOBAL IN` на уровень первичных ключей хранилищ KeyValue (например, EmbeddedRocksDB, KeeperMap). [#84515](https://github.com/ClickHouse/ClickHouse/pull/84515) ([Eduard Karacharov](https://github.com/korowa)). +* Обновлен chdig до версии [25.7.1](https://github.com/azat/chdig/releases/tag/v25.7.1). [#84521](https://github.com/ClickHouse/ClickHouse/pull/84521) ([Azat Khuzhin](https://github.com/azat)). +* Низкоуровневые ошибки во время выполнения UDF теперь завершаются ошибкой с кодом `UDF_EXECUTION_FAILED`, тогда как ранее могли возвращаться различные коды ошибок. [#84547](https://github.com/ClickHouse/ClickHouse/pull/84547) ([Xu Jia](https://github.com/XuJia0210)). +* Добавлена команда `get_acl` в KeeperClient. [#84641](https://github.com/ClickHouse/ClickHouse/pull/84641) ([Antonio Andelic](https://github.com/antonio2368)). +* Добавлена поддержка версии снимка для движков таблиц озер данных. [#84659](https://github.com/ClickHouse/ClickHouse/pull/84659) ([Pete Hampton](https://github.com/pjhampton)). +* Добавлена размерная метрика для `ConcurrentBoundedQueue` с метками по типу очереди (то есть для чего используется очередь) и идентификатору очереди (то есть случайно сгенерированному идентификатору текущего экземпляра очереди). [#84675](https://github.com/ClickHouse/ClickHouse/pull/84675) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Таблица `system.columns` теперь содержит столбец `column`, являющийся псевдонимом для существующего столбца `name`. [#84695](https://github.com/ClickHouse/ClickHouse/pull/84695) ([Yunchi Pang](https://github.com/yunchipang)). +* Новая настройка MergeTree `search_orphaned_parts_drives` для ограничения области поиска частей (например, только диски с локальными метаданными). [#84710](https://github.com/ClickHouse/ClickHouse/pull/84710) ([Ilya Golshtein](https://github.com/ilejn)). +* Добавлена 4LW-команда Keeper `lgrq` для включения и отключения логирования входящих запросов. [#84719](https://github.com/ClickHouse/ClickHouse/pull/84719) ([Antonio Andelic](https://github.com/antonio2368)). +* Сопоставлять заголовки внешней аутентификации `forward_headers` без учета регистра. [#84737](https://github.com/ClickHouse/ClickHouse/pull/84737) ([ingodwerust](https://github.com/ingodwerust)). +* Инструмент `encrypt_decrypt` теперь поддерживает шифрованные подключения к ZooKeeper. [#84764](https://github.com/ClickHouse/ClickHouse/pull/84764) ([Roman Vasin](https://github.com/rvasin)). +* Добавлен столбец с форматной строкой в `system.errors`. Этот столбец нужен для группировки по одному и тому же типу ошибки в правилах оповещения. [#84776](https://github.com/ClickHouse/ClickHouse/pull/84776) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Обновлён `clickhouse-format`: добавлена поддержка `--highlight` в качестве синонима для `--hilite`. - Обновлён `clickhouse-client`: добавлена поддержка `--hilite` в качестве синонима для `--highlight`. - Обновлена документация `clickhouse-format` с учётом этого изменения. [#84806](https://github.com/ClickHouse/ClickHouse/pull/84806) ([Rishabh Bhardwaj](https://github.com/rishabh1815769)). +* Исправлено чтение данных Iceberg по идентификаторам полей для сложных типов. [#84821](https://github.com/ClickHouse/ClickHouse/pull/84821) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* Добавлена новая настройка `backup_slow_all_threads_after_retryable_s3_error` для снижения нагрузки на S3 во время «штормов» повторных попыток, вызванных ошибками, такими как `SlowDown`, за счет замедления работы всех потоков после появления первой повторяемой ошибки. [#84854](https://github.com/ClickHouse/ClickHouse/pull/84854) ([Julia Kartseva](https://github.com/jkartseva)). +* Теперь пропускается создание и переименование старой временной таблицы для не-append RMV DDL в реплицируемых базах данных. [#84858](https://github.com/ClickHouse/ClickHouse/pull/84858) ([Tuan Pham Anh](https://github.com/tuanpach)). +* Размер кэша записей журнала Keeper теперь можно ограничить по числу записей с помощью `keeper_server.coordination_settings.latest_logs_cache_entry_count_threshold` и `keeper_server.coordination_settings.commit_logs_cache_entry_count_threshold`. [#84877](https://github.com/ClickHouse/ClickHouse/pull/84877) ([Antonio Andelic](https://github.com/antonio2368)). +* Теперь можно использовать `simdjson` на неподдерживаемых архитектурах (раньше это приводило к ошибкам `CANNOT_ALLOCATE_MEMORY`). [#84966](https://github.com/ClickHouse/ClickHouse/pull/84966) ([Azat Khuzhin](https://github.com/azat)). +* Асинхронное логирование: сделать лимиты настраиваемыми и добавить средства интроспекции. [#85105](https://github.com/ClickHouse/ClickHouse/pull/85105) ([Raúl Marín](https://github.com/Algunenano)). +* Собирает все удалённые объекты, чтобы выполнить одну операцию удаления в объектном хранилище. [#85316](https://github.com/ClickHouse/ClickHouse/pull/85316) ([Mikhail Artemenko](https://github.com/Michicosun)). +* Текущая реализация файлов позиционного удаления в Iceberg хранит все данные в оперативной памяти. Это может быть довольно накладно, если файлы позиционного удаления большие, что нередко бывает. Моя реализация хранит в памяти только последнюю группу строк (`row-group`) файлов удаления формата Parquet, что существенно дешевле. [#85329](https://github.com/ClickHouse/ClickHouse/pull/85329) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* chdig: исправлены артефакты, остающиеся на экране, устранён сбой после редактирования запроса в редакторе, поиск `editor` в `PATH`, обновлён до версии [25.8.1](https://github.com/azat/chdig/releases/tag/v25.8.1). [#85341](https://github.com/ClickHouse/ClickHouse/pull/85341) ([Azat Khuzhin](https://github.com/azat)). +* Добавлен недостающий параметр `partition_columns_in_data_file` в конфигурацию Azure. [#85373](https://github.com/ClickHouse/ClickHouse/pull/85373) ([Arthur Passos](https://github.com/arthurpassos)). +* Разрешить нулевой шаг в функциях семейства `timeSeries*ToGrid`. Это часть [#75036](https://github.com/ClickHouse/ClickHouse/pull/75036). [#85390](https://github.com/ClickHouse/ClickHouse/pull/85390) ([Vitaly Baranov](https://github.com/vitlibar)). +* Добавлен флаг show_data_lake_catalogs_in_system_tables для управления добавлением таблиц озер данных в system.tables. Исправлена проблема [#85384](https://github.com/ClickHouse/ClickHouse/issues/85384). [#85411](https://github.com/ClickHouse/ClickHouse/pull/85411) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). +* Добавлена поддержка расширения макросов в `remote_fs_zero_copy_zookeeper_path`. [#85437](https://github.com/ClickHouse/ClickHouse/pull/85437) ([Mikhail Koviazin](https://github.com/mkmkme)). +* AI в clickhouse-client станет выглядеть немного лучше. [#85447](https://github.com/ClickHouse/ClickHouse/pull/85447) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Включить trace_log.symbolize по умолчанию для существующих развертываний. [#85456](https://github.com/ClickHouse/ClickHouse/pull/85456) ([Azat Khuzhin](https://github.com/azat)). +* Расширена поддержка составных идентификаторов, охватывается большее число случаев. В частности, улучшена совместимость `ARRAY JOIN` со старым анализатором. Добавлена новая настройка `analyzer_compatibility_allow_compound_identifiers_in_unflatten_nested` для сохранения прежнего поведения. [#85492](https://github.com/ClickHouse/ClickHouse/pull/85492) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* При получении информации о размерах столбцов таблиц из system.columns игнорировать UNKNOWN_DATABASE. [#85632](https://github.com/ClickHouse/ClickHouse/pull/85632) ([Azat Khuzhin](https://github.com/azat)). +* Добавлено ограничение (настройка таблицы `max_uncompressed_bytes_in_patches`) на суммарное количество несжатых байт в частях‑патчах. Оно предотвращает существенные замедления запросов SELECT после легковесных обновлений и возможное злоупотребление легковесными обновлениями. [#85641](https://github.com/ClickHouse/ClickHouse/pull/85641) ([Anton Popov](https://github.com/CurtizJ)). +* Добавлен столбец `parameter` в таблицу `system.grants` для определения типа источника в `GRANT READ/WRITE` и движка таблицы в `GRANT TABLE ENGINE`. [#85643](https://github.com/ClickHouse/ClickHouse/pull/85643) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* Исправлен разбор висячей запятой в списке столбцов в запросе CREATE DICTIONARY после столбца с параметрами (например, Decimal(8)). Закрывает [#85586](https://github.com/ClickHouse/ClickHouse/issues/85586). [#85653](https://github.com/ClickHouse/ClickHouse/pull/85653) ([Nikolay Degterinsky](https://github.com/evillique)). +* Добавлена поддержка вложенных массивов для функции `nested`. [#85719](https://github.com/ClickHouse/ClickHouse/pull/85719) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Теперь все выделения памяти, выполняемые внешними библиотеками, видны трекеру памяти ClickHouse и корректно учитываются. Это может привести к «увеличенному» отображаемому объёму потребляемой памяти для некоторых запросов или к ошибкам `MEMORY_LIMIT_EXCEEDED`. [#84082](https://github.com/ClickHouse/ClickHouse/pull/84082) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). + +#### Исправление ошибки (ошибка, проявляющаяся для пользователя, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* Этот PR исправляет определение метаданных при выполнении запросов к таблицам Iceberg через REST‑каталог. ... [#80562](https://github.com/ClickHouse/ClickHouse/pull/80562) ([Saurabh Kumar Ojha](https://github.com/saurabhojha)). +* Исправлена работа markReplicasActive в DDLWorker и DatabaseReplicatedDDLWorker. [#81395](https://github.com/ClickHouse/ClickHouse/pull/81395) ([Tuan Pham Anh](https://github.com/tuanpach)). +* Исправлен механизм отката Dynamic column при ошибке парсинга. [#82169](https://github.com/ClickHouse/ClickHouse/pull/82169) ([Pavel Kruglov](https://github.com/Avogar)). +* Если функция `trim` вызывается только с константными аргументами, теперь она возвращает константную строку-результат. (Ошибка [#78796](https://github.com/ClickHouse/ClickHouse/issues/78796)). [#82900](https://github.com/ClickHouse/ClickHouse/pull/82900) ([Robert Schulze](https://github.com/rschu1ze)). +* Исправлена логическая ошибка с дублирующимися подзапросами при включённой настройке `optimize_syntax_fuse_functions`, закрыт [#75511](https://github.com/ClickHouse/ClickHouse/issues/75511). [#83300](https://github.com/ClickHouse/ClickHouse/pull/83300) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Исправлен некорректный результат выполнения запросов с подзапросом в условии `WHERE ... IN ()` при включённом кэше условий запроса (настройка `use_query_condition_cache`). [#83445](https://github.com/ClickHouse/ClickHouse/pull/83445) ([LB7666](https://github.com/acking-you)). +* Ранее функция `gcs` не требовала никаких прав доступа для использования. Теперь при её использовании будет проверяться наличие привилегии `GRANT READ ON S3`. Закрывает [#70567](https://github.com/ClickHouse/ClickHouse/issues/70567). [#83503](https://github.com/ClickHouse/ClickHouse/pull/83503) ([pufit](https://github.com/pufit)). +* Пропускать недоступные узлы при выполнении INSERT SELECT из s3Cluster() в реплицируемый MergeTree. [#83676](https://github.com/ClickHouse/ClickHouse/pull/83676) ([Igor Nikonov](https://github.com/devcrafter)). +* Исправлена обработка записей с добавлением (append) в MergeTree, используемом для экспериментальных транзакций, с типами метаданных `plain_rewritable`/`plain`, которые ранее просто игнорировались. [#83695](https://github.com/ClickHouse/ClickHouse/pull/83695) ([Tuan Pham Anh](https://github.com/tuanpach)). +* Скрывать данные аутентификации для Avro schema registry, чтобы они не отображались пользователю и не попадали в логи. [#83713](https://github.com/ClickHouse/ClickHouse/pull/83713) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Исправлена проблема, при которой, если таблица MergeTree создана с `add_minmax_index_for_numeric_columns=1` или `add_minmax_index_for_string_columns=1`, индекс позже материализуется во время операции ALTER, что препятствует корректной инициализации базы данных Replicated на новой реплике. [#83751](https://github.com/ClickHouse/ClickHouse/pull/83751) ([Nikolay Degterinsky](https://github.com/evillique)). +* Исправлена ошибка записи в формат Parquet, при которой выводились некорректные статистические значения (min/max) для типов Decimal. [#83754](https://github.com/ClickHouse/ClickHouse/pull/83754) ([Michael Kolupaev](https://github.com/al13n321)). +* Исправлена сортировка значений NaN в типе `LowCardinality(Float32|Float64|BFloat16)`. [#83786](https://github.com/ClickHouse/ClickHouse/pull/83786) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* При восстановлении из резервной копии пользователь-definer может не быть сохранён, что сделает всю резервную копию непригодной. Чтобы устранить это, мы откладываем проверку прав при создании целевой таблицы в процессе восстановления и выполняем её только во время выполнения запроса. [#83818](https://github.com/ClickHouse/ClickHouse/pull/83818) ([pufit](https://github.com/pufit)). +* Исправлено аварийное завершение работы клиента из‑за соединения, оставшегося в отключённом состоянии после ошибочного запроса INSERT. [#83842](https://github.com/ClickHouse/ClickHouse/pull/83842) ([Azat Khuzhin](https://github.com/azat)). +* Разрешено ссылаться на любую таблицу в аргументе `view(...)` табличной функции `remote` при включённом анализаторе. Исправлены [#78717](https://github.com/ClickHouse/ClickHouse/issues/78717) и [#79377](https://github.com/ClickHouse/ClickHouse/issues/79377). [#83844](https://github.com/ClickHouse/ClickHouse/pull/83844) ([Dmitry Novik](https://github.com/novikd)). +* Вызов Onprogress в jsoneachrowwithprogress теперь синхронизирован с завершением обработки. [#83879](https://github.com/ClickHouse/ClickHouse/pull/83879) ([Sema Checherinda](https://github.com/CheSema)). +* Закрывает [#81303](https://github.com/ClickHouse/ClickHouse/issues/81303). [#83892](https://github.com/ClickHouse/ClickHouse/pull/83892) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* Исправлены функции colorSRGBToOKLCH/colorOKLCHToSRGB для случая сочетания const- и неконстантных аргументов. [#83906](https://github.com/ClickHouse/ClickHouse/pull/83906) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена запись JSON-путей со значениями NULL в формате RowBinary. [#83923](https://github.com/ClickHouse/ClickHouse/pull/83923) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлено переполнение больших значений (>2106-02-07) при приведении типа Date к DateTime64. [#83982](https://github.com/ClickHouse/ClickHouse/pull/83982) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Всегда применять настройку `filesystem_prefetches_limit` (не только для `MergeTreePrefetchedReadPool`). [#83999](https://github.com/ClickHouse/ClickHouse/pull/83999) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена редкая ошибка, при которой запрос `MATERIALIZE COLUMN` мог приводить к появлению неожиданных файлов в `checksums.txt` и в итоге — к отсоединению частей данных. [#84007](https://github.com/ClickHouse/ClickHouse/pull/84007) ([alesapin](https://github.com/alesapin)). +* Исправлена логическая ошибка `Expected single dictionary argument for function` при выполнении JOIN с условием неравенства, когда один из столбцов имеет тип `LowCardinality`, а другой является константой. Закрывает [#81779](https://github.com/ClickHouse/ClickHouse/issues/81779). [#84019](https://github.com/ClickHouse/ClickHouse/pull/84019) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлена ошибка, из-за которой clickhouse client аварийно завершался при использовании в интерактивном режиме с подсветкой синтаксиса. [#84025](https://github.com/ClickHouse/ClickHouse/pull/84025) ([Bharat Nallan](https://github.com/bharatnc)). +* Исправлены неверные результаты при использовании кэша условий запроса совместно с рекурсивными CTE (issue [#81506](https://github.com/ClickHouse/ClickHouse/issues/81506)). [#84026](https://github.com/ClickHouse/ClickHouse/pull/84026) ([zhongyuankai](https://github.com/zhongyuankai)). +* Исправлена обработка исключений при периодическом обновлении частей. [#84083](https://github.com/ClickHouse/ClickHouse/pull/84083) ([Azat Khuzhin](https://github.com/azat)). +* Исправлено объединение фильтра с условием JOIN в случаях, когда операнды сравнения на равенство имеют разные типы или являются константами. Исправлена ошибка [#83432](https://github.com/ClickHouse/ClickHouse/issues/83432). [#84145](https://github.com/ClickHouse/ClickHouse/pull/84145) ([Dmitry Novik](https://github.com/novikd)). +* Исправлено редкое падение ClickHouse, возникающее, когда таблица содержит проекцию, `lightweight_mutation_projection_mode = 'rebuild'`, а пользователь выполняет легковесное удаление, которое удаляет все строки из какого-либо блока таблицы. [#84158](https://github.com/ClickHouse/ClickHouse/pull/84158) ([alesapin](https://github.com/alesapin)). +* Исправлена взаимоблокировка, вызванная фоновым потоком, проверяющим отмену операций. [#84203](https://github.com/ClickHouse/ClickHouse/pull/84203) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлена бесконечная рекурсивная обработка некорректных определений `WINDOW`. Устраняет [#83131](https://github.com/ClickHouse/ClickHouse/issues/83131). [#84242](https://github.com/ClickHouse/ClickHouse/pull/84242) ([Dmitry Novik](https://github.com/novikd)). +* Исправлена ошибка, приводившая к некорректному кодированию и декодированию Bech32. Изначально ошибка не была обнаружена, так как использовавшаяся для тестирования онлайн-реализация алгоритма имела ту же проблему. [#84257](https://github.com/ClickHouse/ClickHouse/pull/84257) ([George Larionov](https://github.com/george-larionov)). +* Исправлено некорректное создание пустых кортежей в функции `array()`. Это исправляет [#84202](https://github.com/ClickHouse/ClickHouse/issues/84202). [#84297](https://github.com/ClickHouse/ClickHouse/pull/84297) ([Amos Bird](https://github.com/amosbird)). +* Исправлено возникновение `LOGICAL_ERROR` для запросов, использующих параллельные реплики и несколько соединений INNER, за которыми следует RIGHT JOIN. Не используйте параллельные реплики для таких запросов. [#84299](https://github.com/ClickHouse/ClickHouse/pull/84299) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Ранее индексы `set` не учитывали столбцы типа `Nullable` при проверке того, проходят ли гранулы фильтр (issue [#75485](https://github.com/ClickHouse/ClickHouse/issues/75485)). [#84305](https://github.com/ClickHouse/ClickHouse/pull/84305) ([Elmi Ahmadov](https://github.com/ahmadov)). +* Теперь ClickHouse читает таблицы из Glue Catalog, в которых тип таблицы указан в нижнем регистре. [#84316](https://github.com/ClickHouse/ClickHouse/pull/84316) ([alesapin](https://github.com/alesapin)). +* Не пытайтесь заменять табличные функции их кластерными аналогами в запросах, содержащих JOIN или подзапросы. [#84335](https://github.com/ClickHouse/ClickHouse/pull/84335) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Исправлено использование логгера в `IAccessStorage`. [#84365](https://github.com/ClickHouse/ClickHouse/pull/84365) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Исправлена логическая ошибка в операциях легковесного обновления, которые обновляют все столбцы в таблице. [#84380](https://github.com/ClickHouse/ClickHouse/pull/84380) ([Anton Popov](https://github.com/CurtizJ)). +* Кодек `DoubleDelta` теперь может применяться только к столбцам числового типа. В частности, столбцы типа `FixedString` больше не могут сжиматься кодеком `DoubleDelta`. (исправляет [#80220](https://github.com/ClickHouse/ClickHouse/issues/80220)). [#84383](https://github.com/ClickHouse/ClickHouse/pull/84383) ([Jimmy Aguilar Mena](https://github.com/Ergus)). +* Сравнение со значением NaN выполнялось по неверным диапазонам при оценке индекса `MinMax`. [#84386](https://github.com/ClickHouse/ClickHouse/pull/84386) ([Elmi Ahmadov](https://github.com/ahmadov)). +* Исправлена ошибка чтения столбца типа Variant при ленивой материализации. [#84400](https://github.com/ClickHouse/ClickHouse/pull/84400) ([Pavel Kruglov](https://github.com/Avogar)). +* Рассматривать `zoutofmemory` как аппаратную ошибку, иначе будет выбрасываться логическая ошибка. См. [https://github.com/clickhouse/clickhouse-core-incidents/issues/877](https://github.com/clickhouse/clickhouse-core-incidents/issues/877). [#84420](https://github.com/ClickHouse/ClickHouse/pull/84420) ([Han Fei](https://github.com/hanfei1991)). +* Исправлено аварийное завершение работы сервера при попытке входа пользователя, созданного с параметром `no_password`, после изменения серверной настройки `allow_no_password` на 0. [#84426](https://github.com/ClickHouse/ClickHouse/pull/84426) ([Shankar Iyer](https://github.com/shankar-iyer)). +* Исправлена проблема с нарушением порядка записей в changelog Keeper. Ранее могли выполняться незавершённые записи в changelog, но операция отката могла приводить к конкурентному изменению целевого файла. Это приводило к неконсистентным логам и возможной потере данных. [#84434](https://github.com/ClickHouse/ClickHouse/pull/84434) ([Antonio Andelic](https://github.com/antonio2368)). +* Теперь, если из таблицы удалены все TTL, таблица MergeTree больше не будет выполнять никаких операций, связанных с TTL. [#84441](https://github.com/ClickHouse/ClickHouse/pull/84441) ([alesapin](https://github.com/alesapin)). +* Был разрешён параллельный распределённый INSERT SELECT с LIMIT, что некорректно и приводит к дублированию данных в целевой таблице. [#84477](https://github.com/ClickHouse/ClickHouse/pull/84477) ([Igor Nikonov](https://github.com/devcrafter)). +* Исправлена проблема с отсечением файлов по виртуальному столбцу в озерах данных. [#84520](https://github.com/ClickHouse/ClickHouse/pull/84520) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Устранены утечки памяти в Keeper при использовании хранилища на RocksDB (итераторы не уничтожались). [#84523](https://github.com/ClickHouse/ClickHouse/pull/84523) ([Azat Khuzhin](https://github.com/azat)). +* Исправлено поведение `ALTER MODIFY ORDER BY`, при котором в ключах сортировки не проверялись столбцы TTL. Теперь столбцы TTL корректно отклоняются при использовании в выражениях ORDER BY в операциях ALTER, что предотвращает возможную порчу таблиц. [#84536](https://github.com/ClickHouse/ClickHouse/pull/84536) ([xiaohuanlin](https://github.com/xiaohuanlin)). +* Измените значение `allow_experimental_delta_kernel_rs`, установленное до версии 25.5, на `false` для обеспечения совместимости. [#84587](https://github.com/ClickHouse/ClickHouse/pull/84587) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Больше не берёт схему из manifest-файлов, а вместо этого хранит отдельные соответствующие схемы для каждого snapshot. Определяет подходящую схему для каждого файла данных по его соответствующему snapshot. Предыдущее поведение нарушало спецификацию Iceberg для записей manifest-файлов со статусом existing. [#84588](https://github.com/ClickHouse/ClickHouse/pull/84588) ([Daniil Ivanik](https://github.com/divanik)). +* Исправлена проблема, при которой настройка Keeper `rotate_log_storage_interval = 0` приводила к аварийному завершению работы ClickHouse. (issue [#83975](https://github.com/ClickHouse/ClickHouse/issues/83975)). [#84637](https://github.com/ClickHouse/ClickHouse/pull/84637) ([George Larionov](https://github.com/george-larionov)). +* Исправлена логическая ошибка S3Queue «Table is already registered». Закрывает [#84433](https://github.com/ClickHouse/ClickHouse/issues/84433). Ошибка возникла после [https://github.com/ClickHouse/ClickHouse/pull/83530](https://github.com/ClickHouse/ClickHouse/pull/83530). [#84677](https://github.com/ClickHouse/ClickHouse/pull/84677) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Захватывать 'mutex' при получении zookeeper из 'view' в RefreshTask. [#84699](https://github.com/ClickHouse/ClickHouse/pull/84699) ([Tuan Pham Anh](https://github.com/tuanpach)). +* Исправлена ошибка `CORRUPTED_DATA` при использовании ленивых столбцов с внешней сортировкой. [#84738](https://github.com/ClickHouse/ClickHouse/pull/84738) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Исправлена проблема с отсечением столбцов с delta-kernel в хранилище `DeltaLake`. Закрывает [#84543](https://github.com/ClickHouse/ClickHouse/issues/84543). [#84745](https://github.com/ClickHouse/ClickHouse/pull/84745) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Обновлены учётные данные в delta-kernel для хранилища DeltaLake. [#84751](https://github.com/ClickHouse/ClickHouse/pull/84751) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлен запуск лишних внутренних резервных копий после сбоев соединения. [#84755](https://github.com/ClickHouse/ClickHouse/pull/84755) ([Vitaly Baranov](https://github.com/vitlibar)). +* Исправлена проблема, при которой выполнение запроса к задержанному удалённому источнику могло приводить к выходу за границы вектора. [#84820](https://github.com/ClickHouse/ClickHouse/pull/84820) ([George Larionov](https://github.com/george-larionov)). +* Токенизаторы `ngram` и `no_op` больше не приводят к сбоям экспериментального текстового индекса при обработке пустых входных токенов. [#84849](https://github.com/ClickHouse/ClickHouse/pull/84849) ([Robert Schulze](https://github.com/rschu1ze)). +* Исправлена работа легковесных обновлений в таблицах с движками `ReplacingMergeTree` и `CollapsingMergeTree`. [#84851](https://github.com/ClickHouse/ClickHouse/pull/84851) ([Anton Popov](https://github.com/CurtizJ)). +* Теперь все настройки корректно сохраняются в метаданных таблиц, использующих движок object queue. [#84860](https://github.com/ClickHouse/ClickHouse/pull/84860) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлено общее количество наблюдений, возвращаемое Keeper. [#84890](https://github.com/ClickHouse/ClickHouse/pull/84890) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлена работа легковесных обновлений для таблиц с движком `ReplicatedMergeTree`, созданных на серверах с версией ниже 25.7. [#84933](https://github.com/ClickHouse/ClickHouse/pull/84933) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлены легковесные обновления для таблиц с движком `MergeTree` без репликации после выполнения запроса `ALTER TABLE ... REPLACE PARTITION`. [#84941](https://github.com/ClickHouse/ClickHouse/pull/84941) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлена генерация названий столбцов для логических литералов: теперь используются "true"/"false" вместо "1"/"0", что предотвращает конфликты названий столбцов между логическими и целочисленными литералами в запросах. [#84945](https://github.com/ClickHouse/ClickHouse/pull/84945) ([xiaohuanlin](https://github.com/xiaohuanlin)). +* Исправлен дрейф отслеживания памяти в фоновом пуле планировщика и исполнителе. [#84946](https://github.com/ClickHouse/ClickHouse/pull/84946) ([Azat Khuzhin](https://github.com/azat)). +* Исправлены потенциальные ошибки сортировки в движке таблиц Merge. [#85025](https://github.com/ClickHouse/ClickHouse/pull/85025) ([Xiaozhe Yu](https://github.com/wudidapaopao)). +* Реализованы недостающие API для DiskEncrypted. [#85028](https://github.com/ClickHouse/ClickHouse/pull/85028) ([Azat Khuzhin](https://github.com/azat)). +* Добавлена проверка при использовании коррелированного подзапроса в распределённом контексте, чтобы избежать сбоя. Исправляет [#82205](https://github.com/ClickHouse/ClickHouse/issues/82205). [#85030](https://github.com/ClickHouse/ClickHouse/pull/85030) ([Dmitry Novik](https://github.com/novikd)). +* Теперь Iceberg больше не пытается кэшировать соответствующую версию snapshot между запросами select и всегда заново определяет snapshot. Предыдущая попытка кэшировать snapshot Iceberg приводила к проблемам при использовании таблиц Iceberg с функцией time travel. [#85038](https://github.com/ClickHouse/ClickHouse/pull/85038) ([Daniil Ivanik](https://github.com/divanik)). +* Исправлена ошибка двойного освобождения памяти в `AzureIteratorAsync`. [#85064](https://github.com/ClickHouse/ClickHouse/pull/85064) ([Nikita Taranov](https://github.com/nickitat)). +* Улучшено сообщение об ошибке при попытке создать USER, идентифицированного по JWT. [#85072](https://github.com/ClickHouse/ClickHouse/pull/85072) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Исправлена очистка патч-частей в `ReplicatedMergeTree`. Ранее результат легковесного обновления мог временно не отображаться на реплике до тех пор, пока слитая или мутированная часть, материализующая патч-части, не будет загружена с другой реплики. [#85121](https://github.com/ClickHouse/ClickHouse/pull/85121) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлена ошибка illegal_type_of_argument при использовании mv с разными типами данных. [#85135](https://github.com/ClickHouse/ClickHouse/pull/85135) ([Sema Checherinda](https://github.com/CheSema)). +* Исправлен segfault в реализации delta-kernel. [#85160](https://github.com/ClickHouse/ClickHouse/pull/85160) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлена проблема с восстановлением реплицируемых баз данных в случаях, когда перенос файла метаданных занимает много времени. [#85177](https://github.com/ClickHouse/ClickHouse/pull/85177) ([Tuan Pham Anh](https://github.com/tuanpach)). +* Исправлена ошибка `Not-ready Set` при использовании `IN (subquery)` в настройке `additional_table_filters expression`. [#85210](https://github.com/ClickHouse/ClickHouse/pull/85210) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Убраны лишние вызовы `getStatus()` во время выполнения запросов SYSTEM DROP REPLICA. Исправлен случай, когда таблица удаляется в фоновом режиме и выбрасывается исключение `Shutdown for storage is called`. [#85220](https://github.com/ClickHouse/ClickHouse/pull/85220) ([Nikolay Degterinsky](https://github.com/evillique)). +* Исправлено состояние гонки в реализации движка `DeltaLake` на основе delta-kernel. [#85221](https://github.com/ClickHouse/ClickHouse/pull/85221) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлено чтение партиционированных данных при отключённом delta-kernel в движке `DeltaLake`. Некорректное поведение появилось в версии 25.7 ([https://github.com/ClickHouse/ClickHouse/pull/81136](https://github.com/ClickHouse/ClickHouse/pull/81136)). [#85223](https://github.com/ClickHouse/ClickHouse/pull/85223) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Добавлены недостающие проверки длины имени таблицы в запросах CREATE OR REPLACE и RENAME. [#85326](https://github.com/ClickHouse/ClickHouse/pull/85326) ([Michael Kolupaev](https://github.com/al13n321)). +* Исправлена ошибка создания RMV на новой реплике реплицируемой базы данных, если DEFINER был удалён. [#85327](https://github.com/ClickHouse/ClickHouse/pull/85327) ([Nikolay Degterinsky](https://github.com/evillique)). +* Исправлена запись данных в Iceberg для сложных типов данных. [#85330](https://github.com/ClickHouse/ClickHouse/pull/85330) ([Konstantин Vedernikov](https://github.com/scanhex12)). +* Запись нижней и верхней границ не поддерживается для сложных типов данных. [#85332](https://github.com/ClickHouse/ClickHouse/pull/85332) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* Исправлена логическая ошибка при чтении функциями object storage через distributed таблицу или функцию remote. Исправляет ошибки: [#84658](https://github.com/ClickHouse/ClickHouse/issues/84658), [#85173](https://github.com/ClickHouse/ClickHouse/issues/85173), [#52022](https://github.com/ClickHouse/ClickHouse/issues/52022). [#85359](https://github.com/ClickHouse/ClickHouse/pull/85359) ([alesapin](https://github.com/alesapin)). +* Исправлено резервное копирование частей с повреждёнными проекциями. [#85362](https://github.com/ClickHouse/ClickHouse/pull/85362) ([Antonio Andelic](https://github.com/antonio2368)). +* Запрещено использование столбца `_part_offset` в PROJECTION в релизах до его стабилизации. [#85372](https://github.com/ClickHouse/ClickHouse/pull/85372) ([Sema Checherinda](https://github.com/CheSema)). +* Исправлена проблема, приводившая к сбою и повреждению данных при выполнении ALTER UPDATE для JSON. [#85383](https://github.com/ClickHouse/ClickHouse/pull/85383) ([Pavel Kruglov](https://github.com/Avogar)). +* Запросы с параллельными репликами, которые используют оптимизацию чтения в обратном порядке, могут давать некорректный результат. [#85406](https://github.com/ClickHouse/ClickHouse/pull/85406) ([Igor Nikonov](https://github.com/devcrafter)). +* Исправлено возможное неопределённое поведение (UB), приводившее к сбоям, в случае ошибки MEMORY_LIMIT_EXCEEDED во время десериализации `String`. [#85440](https://github.com/ClickHouse/ClickHouse/pull/85440) ([Azat Khuzhin](https://github.com/azat)). +* Исправлены некорректные метрики KafkaAssignedPartitions и KafkaConsumersWithAssignment. [#85494](https://github.com/ClickHouse/ClickHouse/pull/85494) ([Ilya Golshtein](https://github.com/ilejn)). +* Исправлено занижение статистики по обработанным байтам при использовании PREWHERE (явного или автоматического). [#85495](https://github.com/ClickHouse/ClickHouse/pull/85495) ([Michael Kolupaev](https://github.com/al13n321)). +* Исправлено условие раннего выхода для замедления скорости запросов к S3: теперь для включения механизма замедления, когда все потоки приостановлены из-за повторяемой ошибки, достаточно, чтобы либо s3_slow_all_threads_after_network_error, либо backup_slow_all_threads_after_retryable_s3_error были установлены в true, вместо необходимости выполнения обоих условий одновременно. [#85505](https://github.com/ClickHouse/ClickHouse/pull/85505) ([Julia Kartseva](https://github.com/jkartseva)). +* Этот pull request исправляет проблему с разрешением метаданных при выполнении запросов к таблицам Iceberg через REST-каталог. ... [#85531](https://github.com/ClickHouse/ClickHouse/pull/85531) ([Saurabh Kumar Ojha](https://github.com/saurabhojha)). +* Исправлен редкий сбой асинхронных вставок при изменении настроек `log_comment` или `insert_deduplication_token`. [#85540](https://github.com/ClickHouse/ClickHouse/pull/85540) ([Anton Popov](https://github.com/CurtizJ)). +* Параметры, такие как date_time_input_format, игнорировались при использовании HTTP-запросов с multipart/form-data. [#85570](https://github.com/ClickHouse/ClickHouse/pull/85570) ([Sema Checherinda](https://github.com/CheSema)). +* Исправлена проблема маскирования секретов в табличных функциях icebergS3Cluster и icebergAzureCluster. [#85658](https://github.com/ClickHouse/ClickHouse/pull/85658) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* Исправлена потеря точности в `JSONExtract` при преобразовании чисел JSON в типы Decimal. Теперь числовые значения JSON сохраняют своё точное десятичное представление, что позволяет избежать ошибок округления с плавающей запятой. [#85665](https://github.com/ClickHouse/ClickHouse/pull/85665) ([ssive7b](https://github.com/ssive7b)). +* Исправлена ошибка `LOGICAL_ERROR`, возникавшая при использовании `COMMENT COLUMN IF EXISTS` в том же операторе `ALTER` после `DROP COLUMN`. Теперь условие `IF EXISTS` корректно пропускает операцию добавления комментария к столбцу, если он был удалён в рамках того же оператора. [#85688](https://github.com/ClickHouse/ClickHouse/pull/85688) ([xiaohuanlin](https://github.com/xiaohuanlin)). +* Исправлено чтение значения count из кэша для Delta Lake. [#85704](https://github.com/ClickHouse/ClickHouse/pull/85704) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлен segfault в CoalescingMergeTree при обработке больших строк. Это изменение закрывает [#84582](https://github.com/ClickHouse/ClickHouse/issues/84582). [#85709](https://github.com/ClickHouse/ClickHouse/pull/85709) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* Обновлена метка времени метаданных при записях в Iceberg. [#85711](https://github.com/ClickHouse/ClickHouse/pull/85711) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* Использование `distributed_depth` в качестве индикатора для функции *Cluster было ошибочным и могло приводить к дублированию данных; вместо этого используйте `client_info.collaborate_with_initiator`. [#85734](https://github.com/ClickHouse/ClickHouse/pull/85734) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Spark не может читать файлы удаления по позициям. [#85762](https://github.com/ClickHouse/ClickHouse/pull/85762) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* Исправлено регулярное выражение `send_logs_source_regexp` (после рефакторинга асинхронного логирования в [#85105](https://github.com/ClickHouse/ClickHouse/issues/85105)). [#85797](https://github.com/ClickHouse/ClickHouse/pull/85797) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена потенциальная неконсистентность словарей с `update_field` при ошибках `MEMORY_LIMIT_EXCEEDED`. [#85807](https://github.com/ClickHouse/ClickHouse/pull/85807) ([Azat Khuzhin](https://github.com/azat)). +* Добавлена поддержка глобальных констант из выражения `WITH` для параллельного распределённого `INSERT SELECT` в таблицу назначения `Distributed`. Ранее запрос мог приводить к ошибке `Unknown expression identifier`. [#85811](https://github.com/ClickHouse/ClickHouse/pull/85811) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Маскировать учётные данные в `deltaLakeAzure`, `deltaLakeCluster`, `icebergS3Cluster` и `icebergAzureCluster`. [#85889](https://github.com/ClickHouse/ClickHouse/pull/85889) ([Julian Maicher](https://github.com/jmaicher)). +* Исправлена логическая ошибка при попытке выполнить `CREATE ... AS (SELECT * FROM s3Cluster(...))` при использовании `DatabaseReplicated`. [#85904](https://github.com/ClickHouse/ClickHouse/pull/85904) ([Konstantин Bogdanov](https://github.com/thevar1able)). +* Исправлены HTTP-запросы, выполняемые табличной функцией `url()`, которые теперь корректно включают номера портов в заголовок Host при обращении к нестандартным портам. Это устраняет сбои аутентификации при использовании предподписанных URL-адресов с S3-совместимыми сервисами, такими как MinIO, работающими на нестандартных портах, что типично для сред разработки. (Исправляет [#85898](https://github.com/ClickHouse/ClickHouse/issues/85898)). [#85921](https://github.com/ClickHouse/ClickHouse/pull/85921) ([Tom Quist](https://github.com/tomquist)). +* Теперь Unity Catalog будет игнорировать схемы с некорректными типами данных для таблиц, не относящихся к формату Delta. Исправляет [#85699](https://github.com/ClickHouse/ClickHouse/issues/85699). [#85950](https://github.com/ClickHouse/ClickHouse/pull/85950) ([alesapin](https://github.com/alesapin)). +* Исправлена корректность признаков допуска `NULL` для полей в Iceberg. [#85977](https://github.com/ClickHouse/ClickHouse/pull/85977) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* Исправлена ошибка восстановления базы данных `Replicated`: если имя таблицы содержало символ `%`, при восстановлении таблица могла быть воссоздана под другим именем. [#85987](https://github.com/ClickHouse/ClickHouse/pull/85987) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Исправлена ошибка, из‑за которой восстановление резервной копии завершалось с ошибкой `BACKUP_ENTRY_NOT_FOUND` при восстановлении пустой таблицы `Memory`. [#86012](https://github.com/ClickHouse/ClickHouse/pull/86012) ([Julia Kartseva](https://github.com/jkartseva)). +* Добавлены проверки для sharding_key при выполнении ALTER для distributed таблицы. Ранее некорректный ALTER портил определение таблицы и требовал перезапуска сервера. [#86015](https://github.com/ClickHouse/ClickHouse/pull/86015) ([Nikolay Degterinsky](https://github.com/evillique)). +* Не создавать пустой файл удаления Iceberg. [#86061](https://github.com/ClickHouse/ClickHouse/pull/86061) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* Исправлена ошибка, из-за которой большие значения настроек нарушали работу таблиц S3Queue и вызывали перезапуск реплики. [#86074](https://github.com/ClickHouse/ClickHouse/pull/86074) ([Nikolay Degterinsky](https://github.com/evillique)). + +#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement} + +* По умолчанию для тестов с S3 теперь используются зашифрованные диски. [#59898](https://github.com/ClickHouse/ClickHouse/pull/59898) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* В интеграционных тестах используется исполняемый файл `clickhouse`, чтобы получать отладочные символы без вырезки. [#83779](https://github.com/ClickHouse/ClickHouse/pull/83779) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Обновлена встроенная библиотека libxml2 с версии 2.14.4 до 2.14.5. [#84230](https://github.com/ClickHouse/ClickHouse/pull/84230) ([Robert Schulze](https://github.com/rschu1ze)). +* Обновлён встроенный curl с версии 8.14.0 до 8.15.0. [#84231](https://github.com/ClickHouse/ClickHouse/pull/84231) ([Robert Schulze](https://github.com/rschu1ze)). +* Теперь в CI для кэшей используется меньше памяти и добавлены более качественные тесты механизма вытеснения. [#84676](https://github.com/ClickHouse/ClickHouse/pull/84676) ([alesapin](https://github.com/alesapin)). + +### Выпуск ClickHouse 25.7, 2025-07-24 {#257} + +#### Обратные несовместимые изменения {#backward-incompatible-change} + +* Изменения в функции `extractKeyValuePairs`: добавлен новый аргумент `unexpected_quoting_character_strategy`, который управляет тем, что происходит, когда `quoting_character` неожиданно обнаруживается при чтении ключа или значения без кавычек. Значение может быть одним из: `invalid`, `accept` или `promote`. `invalid` отбросит ключ и вернётся в состояние ожидания ключа. `accept` будет трактовать его как часть ключа. `promote` отбросит предыдущий символ и начнёт разбор как ключа в кавычках. Кроме того, после разбора значения в кавычках следующий ключ будет анализироваться только в том случае, если найден разделитель пары. [#80657](https://github.com/ClickHouse/ClickHouse/pull/80657) ([Arthur Passos](https://github.com/arthurpassos)). +* Поддержка совпадения нулевой длины в функции `countMatches`. Пользователи, которые хотят сохранить старое поведение, могут включить настройку `count_matches_stop_at_empty_match`. [#81676](https://github.com/ClickHouse/ClickHouse/pull/81676) ([Elmi Ahmadov](https://github.com/ahmadov)). +* Использование серверных ограничителей пропускной способности (throttlers) для локальных (`max_local_read_bandwidth_for_server` и `max_local_write_bandwidth_for_server`) и удалённых (`max_remote_read_network_bandwidth_for_server` и `max_remote_write_network_bandwidth_for_server`) операций при генерации BACKUP-ов в дополнение к их специализированным серверным настройкам (`max_backup_bandwidth_for_server`, `max_mutations_bandwidth_for_server` и `max_merges_bandwidth_for_server`). [#81753](https://github.com/ClickHouse/ClickHouse/pull/81753) ([Sergei Trifonov](https://github.com/serxa)). +* Запрещено создание таблицы без столбцов, доступных для вставки. [#81835](https://github.com/ClickHouse/ClickHouse/pull/81835) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* Параллелизация работы кластерных функций по файлам внутри архивов. В предыдущих версиях единицей работы был целый архив (например, zip, tar или 7z). Добавлена новая настройка `cluster_function_process_archive_on_multiple_nodes`, по умолчанию равная `true`. При значении `true` повышает производительность обработки архивов в кластерных функциях. Её следует установить в `false` для обеспечения совместимости и чтобы избежать ошибок при обновлении до 25.7+ при использовании кластерных функций с архивами на более ранних версиях. [#82355](https://github.com/ClickHouse/ClickHouse/pull/82355) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Запрос `SYSTEM RESTART REPLICAS` приводил к пробуждению таблиц в базе данных Lazy даже без доступа к этой базе, и это происходило во время одновременного удаления этих таблиц. Примечание: теперь `SYSTEM RESTART REPLICAS` будет перезапускать реплики только в базах данных, где у вас есть право на выполнение `SHOW TABLES`, что является естественным поведением. [#83321](https://github.com/ClickHouse/ClickHouse/pull/83321) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + +#### Новые возможности {#new-feature} + +* Добавлена поддержка легковесных обновлений для таблиц семейства `MergeTree`. Легковесные обновления могут использоваться с помощью нового синтаксиса: `UPDATE
    SET col1 = val1, col2 = val2, ... WHERE `. Добавлена реализация легковесных удалений на основе легковесных обновлений. Это можно включить, установив настройку `lightweight_delete_mode = 'lightweight_update'`. [#82004](https://github.com/ClickHouse/ClickHouse/pull/82004) ([Anton Popov](https://github.com/CurtizJ)). +* Добавлена поддержка сложных типов в эволюции схемы Iceberg. [#73714](https://github.com/ClickHouse/ClickHouse/pull/73714) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* Введена поддержка операций `INSERT` в таблицы Iceberg. [#82692](https://github.com/ClickHouse/ClickHouse/pull/82692) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* Чтение файлов данных Iceberg по идентификаторам полей. Это повышает совместимость с Iceberg: поля могут быть переименованы в метаданных, при этом оставаясь сопоставленными с другими именами в лежащих в основе файлах Parquet. Закрывает [#83065](https://github.com/ClickHouse/ClickHouse/issues/83065). [#83653](https://github.com/ClickHouse/ClickHouse/pull/83653) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* Теперь ClickHouse поддерживает сжатые файлы `metadata.json` для Iceberg. Исправляет проблему [#70874](https://github.com/ClickHouse/ClickHouse/issues/70874). [#81451](https://github.com/ClickHouse/ClickHouse/pull/81451) ([alesapin](https://github.com/alesapin)). +* Добавлена поддержка `TimestampTZ` в каталоге Glue, что закрывает задачу [#81654](https://github.com/ClickHouse/ClickHouse/issues/81654). [#83132](https://github.com/ClickHouse/ClickHouse/pull/83132) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* Добавлена функция генерации SQL на основе ИИ в клиент ClickHouse. Теперь вы можете генерировать SQL‑запросы из описаний на естественном языке, предваряя запрос префиксом `??`. Поддерживаются провайдеры OpenAI и Anthropic с автоматическим обнаружением схемы. [#83314](https://github.com/ClickHouse/ClickHouse/pull/83314) ([Kaushik Iska](https://github.com/iskakaushik)). +* Добавлена функция для записи Geo-типов в формат WKB. [#82935](https://github.com/ClickHouse/ClickHouse/pull/82935) ([Konstantин Vedernиков](https://github.com/scanhex12)). +* Введены два новых типа доступа к источникам: `READ` и `WRITE`, при этом все предыдущие типы доступа, связанные с источниками, объявлены устаревшими. Ранее: `GRANT S3 ON *.* TO user`, теперь: `GRANT READ, WRITE ON S3 TO user`. Это также позволяет разделять права `READ` и `WRITE` для источников, например: `GRANT READ ON * TO user`, `GRANT WRITE ON S3 TO user`. Эта возможность управляется настройкой `access_control_improvements.enable_read_write_grants` и по умолчанию отключена. [#73659](https://github.com/ClickHouse/ClickHouse/pull/73659) ([pufit](https://github.com/pufit)). +* NumericIndexedVector: новая структура векторных данных на основе bit-sliced-представления и сжатия Roaring-bitmap, а также более 20 функций для построения, анализа и поэлементной арифметики. Может сократить объем хранимых данных и ускорить операции `JOIN`, фильтрацию и агрегации на разреженных данных. Реализует [#70582](https://github.com/ClickHouse/ClickHouse/issues/70582) и статью [“Large-Scale Metric Computation in Online Controlled Experiment Platform”](https://arxiv.org/abs/2405.08411) T. Xiong и Y. Wang из VLDB 2024. [#74193](https://github.com/ClickHouse/ClickHouse/pull/74193) ([FriendLey](https://github.com/FriendLey)). +* Теперь поддерживается параметр профиля нагрузки `max_waiting_queries`. Его можно использовать для ограничения размера очереди запросов. При достижении лимита все последующие запросы будут завершаться с ошибкой `SERVER_OVERLOADED`. [#81250](https://github.com/ClickHouse/ClickHouse/pull/81250) ([Oleg Doronin](https://github.com/dorooleg)). +* Добавлены следующие финансовые функции: `financialInternalRateOfReturnExtended` (`XIRR`), `financialInternalRateOfReturn` (`IRR`), `financialNetPresentValueExtended` (`XNPV`), `financialNetPresentValue` (`NPV`). [#81599](https://github.com/ClickHouse/ClickHouse/pull/81599) ([Joanna Hulboj](https://github.com/jh0x)). +* Добавлены геопространственные функции `polygonsIntersectCartesian` и `polygonsIntersectSpherical` для проверки того, пересекаются ли два полигона. [#81882](https://github.com/ClickHouse/ClickHouse/pull/81882) ([Paul Lamb](https://github.com/plamb)). +* Добавлена поддержка виртуального столбца `_part_granule_offset` в таблицах семейства MergeTree. Этот столбец указывает индекс гранулы/метки, нумируемый с нуля, к которой принадлежит каждая строка внутри соответствующей части данных. Это решает проблему [#79572](https://github.com/ClickHouse/ClickHouse/issues/79572). [#82341](https://github.com/ClickHouse/ClickHouse/pull/82341) ([Amos Bird](https://github.com/amosbird)). [#82341](https://github.com/ClickHouse/ClickHouse/pull/82341) ([Amos Bird](https://github.com/amosbird)) +* Добавлены функции SQL `colorSRGBToOkLCH` и `colorOkLCHToSRGB` для преобразования цветов между цветовыми пространствами sRGB и OkLCH. [#83679](https://github.com/ClickHouse/ClickHouse/pull/83679) ([Fgrtue](https://github.com/Fgrtue)). +* Добавлена поддержка параметров в запросах `CREATE USER` для имен пользователей. [#81387](https://github.com/ClickHouse/ClickHouse/pull/81387) ([Diskein](https://github.com/Diskein)). +* Таблица `system.formats` теперь содержит расширенную информацию о форматах, такую, как тип содержимого HTTP (Content-Type), возможности автоматического вывода схемы и т. д. [#81505](https://github.com/ClickHouse/ClickHouse/pull/81505) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + +#### Экспериментальная возможность {#experimental-feature} + +* Добавлены функции `searchAny` и `searchAll`, которые являются универсальными инструментами для поиска по текстовым индексам. [#80641](https://github.com/ClickHouse/ClickHouse/pull/80641) ([Elmi Ahmadov](https://github.com/ahmadov)). +* Текстовый индекс теперь поддерживает новый токенизатор `split`. [#81752](https://github.com/ClickHouse/ClickHouse/pull/81752) ([Elmi Ahmadov](https://github.com/ahmadov)). +* Изменено значение гранулярности индекса по умолчанию для текстовых индексов `text` на 64. Это улучшает ожидаемую производительность среднего тестового запроса во внутренних бенчмарках. [#82162](https://github.com/ClickHouse/ClickHouse/pull/82162) ([Jimmy Aguilar Mena](https://github.com/Ergus)). +* 256-битовая битовая карта хранит исходящие метки состояния в упорядоченном виде, однако исходящие состояния сохраняются на диск в том порядке, в котором они появляются в хеш-таблице. Поэтому при чтении с диска метка может указывать на неверное следующее состояние. [#82783](https://github.com/ClickHouse/ClickHouse/pull/82783) ([Elmi Ahmadov](https://github.com/ahmadov)). +* Включено сжатие zstd для blob-а дерева FST в текстовых индексах. [#83093](https://github.com/ClickHouse/ClickHouse/pull/83093) ([Elmi Ahmadov](https://github.com/ahmadov)). +* Индекс векторного сходства переведён в статус бета-версии. Добавлен псевдоним настройки `enable_vector_similarity_index`, которую необходимо включить для использования индекса векторного сходства. [#83459](https://github.com/ClickHouse/ClickHouse/pull/83459) ([Robert Schulze](https://github.com/rschu1ze)). +* Удалена экспериментальная логика `send_metadata`, связанная с экспериментальной репликацией без копирования (zero-copy). Она никогда не использовалась и код никто не поддерживает. Поскольку для неё не было даже тестов, велика вероятность, что она уже давно сломана. [#82508](https://github.com/ClickHouse/ClickHouse/pull/82508) ([alesapin](https://github.com/alesapin)). +* Интегрирован `StorageKafka2` в `system.kafka_consumers`. [#82652](https://github.com/ClickHouse/ClickHouse/pull/82652) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Оценка сложных выражений в форме КНФ/ДНФ, например `(a < 1 and a > 0) or b = 3`, с использованием статистики. [#82663](https://github.com/ClickHouse/ClickHouse/pull/82663) ([Han Fei](https://github.com/hanfei1991)). + +#### Повышение производительности {#performance-improvement} + +* Добавлено асинхронное логирование. При выводе журналов на медленное устройство это больше не задерживает выполнение запросов. [#82516](https://github.com/ClickHouse/ClickHouse/pull/82516) ([Raúl Marín](https://github.com/Algunenano)). Ограничено максимальное количество записей, хранящихся в очереди. [#83214](https://github.com/ClickHouse/ClickHouse/pull/83214) ([Raúl Марин](https://github.com/Algunenano)). +* Параллельный распределённый INSERT SELECT по умолчанию включён в режиме, при котором INSERT SELECT выполняется на каждом сегменте независимо, см. настройку `parallel_distributed_insert_select`. [#83040](https://github.com/ClickHouse/ClickHouse/pull/83040) ([Igor Nikonov](https://github.com/devcrafter)). +* Когда агрегирующий запрос содержит только одну функцию `count()` над не-`Nullable` столбцом, логика агрегации полностью встраивается непосредственно в операцию поиска по хеш-таблице. Это позволяет избежать выделения и ведения какого-либо состояния агрегации, что значительно снижает потребление памяти и накладные расходы на CPU. Это частично решает [#81982](https://github.com/ClickHouse/ClickHouse/issues/81982). [#82104](https://github.com/ClickHouse/ClickHouse/pull/82104) ([Amos Bird](https://github.com/amosbird)). +* Производительность `HashJoin` повышена за счёт удаления дополнительного прохода по хеш-таблицам в типичном случае с единственным ключевым столбцом; также устранены проверки `null_map` и `join_mask`, когда они всегда равны `true`/`false`. [#82308](https://github.com/ClickHouse/ClickHouse/pull/82308) ([Nikita Taranov](https://github.com/nickitat)). +* Небольшая оптимизация комбинатора `-If`. [#78454](https://github.com/ClickHouse/ClickHouse/pull/78454) ([李扬](https://github.com/taiyang-li)). +* Запросы векторного поиска с использованием индекса сходства векторов выполняются с меньшей задержкой за счёт сокращения числа обращений к хранилищу и снижения нагрузки на CPU. [#79103](https://github.com/ClickHouse/ClickHouse/pull/79103) ([Shankar Iyer](https://github.com/shankar-iyer)). +* Учитывать `merge_tree_min_{rows,bytes}_for_seek` в `filterPartsByQueryConditionCache`, чтобы привести его в соответствие с другими методами фильтрации по индексам. [#80312](https://github.com/ClickHouse/ClickHouse/pull/80312) ([李扬](https://github.com/taiyang-li)). +* Конвейер после шага `TOTALS` сделан многопоточным. [#80331](https://github.com/ClickHouse/ClickHouse/pull/80331) ([UnamedRus](https://github.com/UnamedRus)). +* Исправлена фильтрация по ключу в хранилищах `Redis` и `KeeperMap`. [#81833](https://github.com/ClickHouse/ClickHouse/pull/81833) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* Добавлена новая настройка `min_joined_block_size_rows` (аналогичная `min_joined_block_size_bytes`; по умолчанию 65409) для задания минимального размера блока (в строках) для входных и выходных блоков JOIN (если алгоритм JOIN это поддерживает). Маленькие блоки будут схлопываться. [#81886](https://github.com/ClickHouse/ClickHouse/pull/81886) ([Nikita Taranov](https://github.com/nickitat)). +* `ATTACH PARTITION` теперь не приводит к сбросу всех кэшей. [#82377](https://github.com/ClickHouse/ClickHouse/pull/82377) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Оптимизирован сгенерированный план для коррелированных подзапросов за счёт удаления избыточных операций JOIN с использованием классов эквивалентности. Если существуют эквивалентные выражения для всех коррелированных столбцов, `CROSS JOIN` не добавляется при включённой настройке `query_plan_correlated_subqueries_use_substitution`. [#82435](https://github.com/ClickHouse/ClickHouse/pull/82435) ([Dmitry Novik](https://github.com/novikd)). +* Считывать только необходимые столбцы в коррелированном подзапросе, когда он используется в качестве аргумента функции `EXISTS`. [#82443](https://github.com/ClickHouse/ClickHouse/pull/82443) ([Dmitry Novik](https://github.com/novikd)). +* Незначительно ускорено сравнение деревьев запросов на этапе анализа запроса. [#82617](https://github.com/ClickHouse/ClickHouse/pull/82617) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Добавлено выравнивание счётчика `ProfileEvents` для уменьшения ложного совместного использования кэша (false sharing). [#82697](https://github.com/ClickHouse/ClickHouse/pull/82697) ([Jiebin Sun](https://github.com/jiebinn)). +* Оптимизации для `null_map` и `JoinMask` из [#82308](https://github.com/ClickHouse/ClickHouse/issues/82308) были применены к операции JOIN с несколькими дизъюнктивными условиями. Также была оптимизирована структура данных `KnownRowsHolder`. [#83041](https://github.com/ClickHouse/ClickHouse/pull/83041) ([Nikita Taranov](https://github.com/nickitat)). +* Обычный `std::vector` теперь используется для join-флагов, чтобы избежать вычисления хеша при каждом обращении к флагам. [#83043](https://github.com/ClickHouse/ClickHouse/pull/83043) ([Nikita Taranov](https://github.com/nickitat)). +* Не нужно заранее выделять память под результирующие столбцы, когда `HashJoin` использует режим ленивого (`lazy`) вывода. Это неэффективно, особенно когда количество совпадений невелико. Кроме того, после завершения операции соединения мы знаем точное количество совпадений, поэтому можем предварительно выделить память с более подходящим размером. [#83304](https://github.com/ClickHouse/ClickHouse/pull/83304) ([Nikita Taranov](https://github.com/nickitat)). +* Минимизировано копирование памяти в заголовках портов при построении конвейера. Исходный [PR](https://github.com/ClickHouse/ClickHouse/pull/70105) от [heymind](https://github.com/heymind). [#83381](https://github.com/ClickHouse/ClickHouse/pull/83381) ([Raúl Marín](https://github.com/Algunenano)). +* Улучшен процесс запуска clickhouse-keeper при использовании хранилища на базе RocksDB. [#83390](https://github.com/ClickHouse/ClickHouse/pull/83390) ([Antonio Andelic](https://github.com/antonio2368)). +* Избегайте удержания блокировки во время создания данных снимка хранилища, чтобы уменьшить конкуренцию за блокировку при высокой конкурентной нагрузке. [#83510](https://github.com/ClickHouse/ClickHouse/pull/83510) ([Duc Canh Le](https://github.com/canhld94)). +* Повышена производительность входного формата `ProtobufSingle` за счет повторного использования сериализатора при отсутствии ошибок разбора. [#83613](https://github.com/ClickHouse/ClickHouse/pull/83613) ([Eduard Karacharov](https://github.com/korowa)). +* Улучшена производительность построения конвейера, ускоряющего выполнение коротких запросов. [#83631](https://github.com/ClickHouse/ClickHouse/pull/83631) ([Raúl Marín](https://github.com/Algunenano)). +* Оптимизирован `MergeTreeReadersChain::getSampleBlock`, что позволило ускорить короткие запросы. [#83875](https://github.com/ClickHouse/ClickHouse/pull/83875) ([Raúl Marín](https://github.com/Algunenano)). +* Ускорено получение списка таблиц в каталогах данных за счёт асинхронных запросов. [#81084](https://github.com/ClickHouse/ClickHouse/pull/81084) ([alesapin](https://github.com/alesapin)). +* В механизм повторных попыток S3 добавлен джиттер при включённой настройке `s3_slow_all_threads_after_network_error`. [#81849](https://github.com/ClickHouse/ClickHouse/pull/81849) ([zoomxi](https://github.com/zoomxi)). + +#### Улучшения {#improvement} + +* Добавлена цветовая подсветка скобок несколькими цветами для улучшения читаемости. [#82538](https://github.com/ClickHouse/ClickHouse/pull/82538) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Подсветка метасимволов в шаблонах LIKE/REGEXP по мере ввода. У нас это уже есть в `clickhouse-format` и в выводе `clickhouse-client`, но теперь оно также работает в приглашении командной строки. [#82871](https://github.com/ClickHouse/ClickHouse/pull/82871) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Подсветка синтаксиса в `clickhouse-format` и в выводе клиента будет работать так же, как подсветка в приглашении командной строки. [#82874](https://github.com/ClickHouse/ClickHouse/pull/82874) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Теперь диски `plain_rewritable` можно использовать для метаданных базы данных. Реализованы методы `moveFile` и `replaceFile` в `plain_rewritable`, чтобы этот тип дисков можно было использовать в качестве диска базы данных. [#79424](https://github.com/ClickHouse/ClickHouse/pull/79424) ([Tuan Pham Anh](https://github.com/tuanpach)). +* Разрешено создавать резервные копии для баз данных `PostgreSQL`, `MySQL` и `DataLake`. Резервная копия такой базы данных будет сохранять только определение, а не содержащиеся в ней данные. [#79982](https://github.com/ClickHouse/ClickHouse/pull/79982) ([Nikolay Degterinsky](https://github.com/evillique)). +* Настройка `allow_experimental_join_condition` объявлена устаревшей, поскольку теперь она всегда разрешена. [#80566](https://github.com/ClickHouse/ClickHouse/pull/80566) ([Vladimir Cherkasov](https://github.com/vdimir)). +* В набор асинхронных метрик ClickHouse добавлены метрики нагрузки. [#80779](https://github.com/ClickHouse/ClickHouse/pull/80779) ([Xander Garbett](https://github.com/Garbett1)). +* Добавлены метрики `MarkCacheEvictedBytes`, `MarkCacheEvictedMarks`, `MarkCacheEvictedFiles` для отслеживания вытеснений из кэша меток. (issue [#60989](https://github.com/ClickHouse/ClickHouse/issues/60989)). [#80799](https://github.com/ClickHouse/ClickHouse/pull/80799) ([Shivji Kumar Jha](https://github.com/shiv4289)). +* Добавлена поддержка записи типа enum в Parquet в виде массива байтов, как предписано [спецификацией](https://github.com/apache/parquet-format/blob/master/LogicalTypes.md#enum). [#81090](https://github.com/ClickHouse/ClickHouse/pull/81090) ([Arthur Passos](https://github.com/arthurpassos)). +* Улучшение для движка таблиц `DeltaLake`: в delta-kernel-rs появился API `ExpressionVisitor`, который реализован в этом PR и применяется к преобразованию выражений столбцов партиций (он заменит старый, помеченный как устаревший, способ в delta-kernel-rs, который ранее использовался в нашем коде). В будущем этот `ExpressionVisitor` также позволит реализовать отсечение на основе статистики и некоторые проприетарные возможности Delta Lake. Кроме того, целью этого изменения является поддержка отсечения партиций в движке таблиц `DeltaLakeCluster` (результат разобранного выражения — ActionsDAG — будет сериализован и отправлен инициатором вместе с путем к данным, потому что такого рода информация, необходимая для отсечения, доступна только как метаинформация при листинге файлов данных, который выполняется только инициатором, но при этом она должна применяться к данным на каждом сервере чтения). [#81136](https://github.com/ClickHouse/ClickHouse/pull/81136) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Сохранять имена элементов при выводе супертипов для именованных кортежей. [#81345](https://github.com/ClickHouse/ClickHouse/pull/81345) ([lgbo](https://github.com/lgbo-ustc)). +* Ручной подсчет потребленных сообщений, чтобы не полагаться на ранее зафиксированное смещение в StorageKafka2. [#81662](https://github.com/ClickHouse/ClickHouse/pull/81662) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Добавлен `clickhouse-keeper-utils` — новая консольная утилита для управления и анализа данных ClickHouse Keeper. Утилита поддерживает создание дампа состояния из снапшотов и журналов изменений, анализ файлов журналов изменений и извлечение конкретных диапазонов логов. [#81677](https://github.com/ClickHouse/ClickHouse/pull/81677) ([Antonio Andelic](https://github.com/antonio2368)). +* Глобальные и по-пользовательские ограничители сетевой пропускной способности никогда не сбрасываются, что гарантирует, что лимиты `max_network_bandwidth_for_all_users` и `max_network_bandwidth_for_all_users` не будут превышены. [#81729](https://github.com/ClickHouse/ClickHouse/pull/81729) ([Sergei Trifonov](https://github.com/serxa)). +* Добавлена поддержка вывода в формат GeoParquet. [#81784](https://github.com/ClickHouse/ClickHouse/pull/81784) ([Konstantин Ведерников](https://github.com/scanhex12)). +* Запрещен запуск ALTER-мутации `RENAME COLUMN`, если она должна переименовать столбец, который в данный момент затронут незавершенной мутацией данных. [#81823](https://github.com/ClickHouse/ClickHouse/pull/81823) ([Mikhail Artemenko](https://github.com/Michicosun)). +* Заголовок Connection теперь отправляется в конце заголовков, когда уже известно, нужно ли сохранять соединение. [#81951](https://github.com/ClickHouse/ClickHouse/pull/81951) ([Sema Checherinda](https://github.com/CheSema)). +* Настроена очередь TCP-серверов (по умолчанию 64) в соответствии со значением listen_backlog (по умолчанию 4096). [#82045](https://github.com/ClickHouse/ClickHouse/pull/82045) ([Azat Khuzhin](https://github.com/azat)). +* Добавлена возможность перезагружать `max_local_read_bandwidth_for_server` и `max_local_write_bandwidth_for_server` на лету без перезапуска сервера. [#82083](https://github.com/ClickHouse/ClickHouse/pull/82083) ([Kai Zhu](https://github.com/nauu)). +* Добавлена возможность очистки всех предупреждений из таблицы `system.warnings` с помощью `TRUNCATE TABLE system.warnings`. [#82087](https://github.com/ClickHouse/ClickHouse/pull/82087) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Исправлено отсечение партиций в кластерных функциях для озёр данных. [#82131](https://github.com/ClickHouse/ClickHouse/pull/82131) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлено чтение данных с партиционированием в табличной функции DeltaLakeCluster. В этом PR увеличена версия протокола кластерных функций, что позволяет передавать дополнительную информацию от инициатора к репликам. Эта дополнительная информация содержит выражение преобразования delta-kernel, которое необходимо для разбора столбцов партиций (а в будущем и для некоторой другой информации, например вычисляемых столбцов и т. д.). [#82132](https://github.com/ClickHouse/ClickHouse/pull/82132) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Функция `reinterpret` теперь поддерживает преобразование в `Array(T)`, где `T` — тип данных фиксированного размера (задача [#82621](https://github.com/ClickHouse/ClickHouse/issues/82621)). [#83399](https://github.com/ClickHouse/ClickHouse/pull/83399) ([Shankar Iyer](https://github.com/shankar-iyer)). +* Теперь база данных Datalake выбрасывает более информативное исключение. Исправлена проблема [#81211](https://github.com/ClickHouse/ClickHouse/issues/81211). [#82304](https://github.com/ClickHouse/ClickHouse/pull/82304) ([alesapin](https://github.com/alesapin)). +* Улучшен оператор `CROSS JOIN` за счёт возврата значения false из `HashJoin::needUsedFlagsForPerRightTableRow`. [#82379](https://github.com/ClickHouse/ClickHouse/pull/82379) ([lgbo](https://github.com/lgbo-ustc)). +* Разрешена запись и чтение столбцов типа Map как массива кортежей (Array of Tuples). [#82408](https://github.com/ClickHouse/ClickHouse/pull/82408) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* Лицензии crate'ов [Rust](https://clickhouse.com/blog/rust) выводятся в таблице `system.licenses`. [#82440](https://github.com/ClickHouse/ClickHouse/pull/82440) ([Raúl Marín](https://github.com/Algunenano)). +* Макросы, такие как `{uuid}`, теперь можно использовать в настройке `keeper_path` движка таблицы S3Queue. [#82463](https://github.com/ClickHouse/ClickHouse/pull/82463) ([Nikolay Degterinsky](https://github.com/evillique)). +* Улучшение Keeper: перенос файлов журнала изменений (changelog) между дисками в фоновом потоке. Ранее перенос журнала изменений на другой диск глобально блокировал Keeper до завершения операции. Это приводило к снижению производительности, если перенос занимал много времени (например, на диск S3). [#82485](https://github.com/ClickHouse/ClickHouse/pull/82485) ([Antonio Andelic](https://github.com/antonio2368)). +* Улучшение Keeper: добавлена новая настройка `keeper_server.cleanup_old_and_ignore_new_acl`. Если она включена, все узлы будут очищены от ACL, а ACL для новых запросов будет игнорироваться. Если цель — полностью удалить ACL с узлов, важно оставить настройку включённой до тех пор, пока не будет создан новый snapshot. [#82496](https://github.com/ClickHouse/ClickHouse/pull/82496) ([Antonio Andelic](https://github.com/antonio2368)). +* Добавлен новый серверный параметр `s3queue_disable_streaming`, который отключает стриминг в таблицах с движком S3Queue. Этот параметр можно изменять без перезапуска сервера. [#82515](https://github.com/ClickHouse/ClickHouse/pull/82515) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Рефакторинг механизма динамического изменения размера кэша файловой системы. Добавлено больше логов для диагностики. [#82556](https://github.com/ClickHouse/ClickHouse/pull/82556) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `clickhouse-server` без файла конфигурации также будет слушать порт 9005 для PostgreSQL, как и при использовании конфигурации по умолчанию. [#82633](https://github.com/ClickHouse/ClickHouse/pull/82633) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* В `ReplicatedMergeTree::executeMetadataAlter` мы получаем `StorageID` и, не захватывая `DDLGuard`, пытаемся вызвать `IDatabase::alterTable`. За это время мы теоретически могли заменить рассматриваемую таблицу другой, поэтому при получении описания таблицы мы получили бы неверное. Чтобы избежать этого, мы добавляем дополнительную проверку совпадения UUID таблиц при вызове `IDatabase::alterTable`. [#82666](https://github.com/ClickHouse/ClickHouse/pull/82666) ([Nikolay Degterinsky](https://github.com/evillique)). +* При подключении базы данных с удалённым диском в режиме только для чтения необходимо вручную добавить UUID таблиц в DatabaseCatalog. [#82670](https://github.com/ClickHouse/ClickHouse/pull/82670) ([Tuan Pham Anh](https://github.com/tuanpach)). +* Запрещено использовать значения `nan` и `inf` с `NumericIndexedVector`. Исправляет [#82239](https://github.com/ClickHouse/ClickHouse/issues/82239) и некоторые сопутствующие проблемы. [#82681](https://github.com/ClickHouse/ClickHouse/pull/82681) ([Raufs Dunamalijevs](https://github.com/rienath)). +* Не опускайте нулевые значения в форматах заголовков `X-ClickHouse-Progress` и `X-ClickHouse-Summary`. [#82727](https://github.com/ClickHouse/ClickHouse/pull/82727) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Улучшение в Keeper: поддержка конкретных прав доступа для ACL world:anyone. [#82755](https://github.com/ClickHouse/ClickHouse/pull/82755) ([Antonio Andelic](https://github.com/antonio2368)). +* Запретить операции `RENAME COLUMN` и `DROP COLUMN` для явно перечисленных столбцов, участвующих в суммировании в SummingMergeTree. Закрывает [#81836](https://github.com/ClickHouse/ClickHouse/issues/81836). [#82821](https://github.com/ClickHouse/ClickHouse/pull/82821) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Улучшена точность преобразования из `Decimal` в `Float32`. Реализовано преобразование из `Decimal` в `BFloat16`. Закрывает [#82660](https://github.com/ClickHouse/ClickHouse/issues/82660). [#82823](https://github.com/ClickHouse/ClickHouse/pull/82823) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Полосы прокрутки в веб-интерфейсе будут выглядеть немного лучше. [#82869](https://github.com/ClickHouse/ClickHouse/pull/82869) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* `clickhouse-server` со встроенной конфигурацией позволит использовать Web UI, возвращая ответ HTTP OPTIONS. [#82870](https://github.com/ClickHouse/ClickHouse/pull/82870) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена поддержка указания дополнительных ACL Keeper'а для путей в конфигурации. Если вы хотите добавить дополнительные ACL для конкретного пути, задайте их в конфигурации в разделе `zookeeper.path_acls`. [#82898](https://github.com/ClickHouse/ClickHouse/pull/82898) ([Antonio Andelic](https://github.com/antonio2368)). +* Теперь снимок мутаций будет строиться из снимка видимых частей. Также счетчики мутаций, используемые в снимке, будут пересчитываться на основе включенных мутаций. [#82945](https://github.com/ClickHouse/ClickHouse/pull/82945) ([Mikhail Artemenko](https://github.com/Michicosun)). +* Добавлен ProfileEvent, который срабатывает, когда Keeper отклоняет запись из-за мягкого ограничения по памяти. [#82963](https://github.com/ClickHouse/ClickHouse/pull/82963) ([Xander Garbett](https://github.com/Garbett1)). +* Добавлены столбцы `commit_time`, `commit_id` в таблицу `system.s3queue_log`. [#83016](https://github.com/ClickHouse/ClickHouse/pull/83016) ([Kseniia Sumarokova](https://github.com/kssenii)). +* В некоторых случаях нам нужно иметь несколько измерений для наших метрик. Например, считать неуспешные слияния или мутации по кодам ошибок, а не иметь один общий счётчик. Представлена таблица `system.dimensional_metrics`, которая как раз это и делает и добавляет первую многомерную метрику под названием `failed_merges`. [#83030](https://github.com/ClickHouse/ClickHouse/pull/83030) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Объединены предупреждения о неизвестных настройках в clickhouse-client и добавлена их сводная запись в журнал. [#83042](https://github.com/ClickHouse/ClickHouse/pull/83042) ([Bharat Nallan](https://github.com/bharatnc)). +* Клиент ClickHouse теперь сообщает локальный порт при ошибке подключения. [#83050](https://github.com/ClickHouse/ClickHouse/pull/83050) ([Jianfei Hu](https://github.com/incfly)). +* Незначительно улучшена обработка ошибок в `AsynchronousMetrics`. Если каталог `/sys/block` существует, но недоступен, сервер запустится без мониторинга блочных устройств. Исправляет [#79229](https://github.com/ClickHouse/ClickHouse/issues/79229). [#83115](https://github.com/ClickHouse/ClickHouse/pull/83115) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Завершать работу SystemLogs после обычных таблиц (и перед системными таблицами, вместо прежнего завершения до обычных таблиц). [#83134](https://github.com/ClickHouse/ClickHouse/pull/83134) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Добавлен вывод логов процесса завершения работы `S3Queue`. [#83163](https://github.com/ClickHouse/ClickHouse/pull/83163) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Возможность разбора значений типов `Time` и `Time64` в форматах `MM:SS`, `M:SS`, `SS` или `S`. [#83299](https://github.com/ClickHouse/ClickHouse/pull/83299) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Когда `distributed_ddl_output_mode='*_only_active'`, не ожидают новые или восстановленные реплики, у которых лаг репликации превышает `max_replication_lag_to_enqueue`. Это должно помочь избежать ошибки `DDL task is not finished on some hosts`, когда новая реплика становится активной после завершения инициализации или восстановления, но при инициализации накопила большой журнал репликации. Также реализован запрос `SYSTEM SYNC DATABASE REPLICA STRICT`, который ожидает, пока журнал репликации не станет меньше `max_replication_lag_to_enqueue`. [#83302](https://github.com/ClickHouse/ClickHouse/pull/83302) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Не выводить слишком длинные описания операций с выражениями в сообщениях об исключениях. Закрывает [#83164](https://github.com/ClickHouse/ClickHouse/issues/83164). [#83350](https://github.com/ClickHouse/ClickHouse/pull/83350) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена возможность разбирать префикс и суффикс части, а также проверять покрытие неконстантных столбцов. [#83377](https://github.com/ClickHouse/ClickHouse/pull/83377) ([Mikhail Artemenko](https://github.com/Michicosun)). +* Унифицированы имена параметров в ODBC и JDBC при использовании именованных коллекций. [#83410](https://github.com/ClickHouse/ClickHouse/pull/83410) ([Andrey Zvonov](https://github.com/zvonand)). +* При остановке хранилища `getStatus` выбрасывает исключение `ErrorCodes::ABORTED`. Ранее это приводило к сбою запроса SELECT. Теперь такие исключения `ErrorCodes::ABORTED` перехватываются и преднамеренно игнорируются. [#83435](https://github.com/ClickHouse/ClickHouse/pull/83435) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Добавлены метрики ресурсов процесса (такие как `UserTimeMicroseconds`, `SystemTimeMicroseconds`, `RealTimeMicroseconds`) в события профилирования журнала `part_log` для записей `MergeParts`. [#83460](https://github.com/ClickHouse/ClickHouse/pull/83460) ([Vladimir Cherkasov](https://github.com/vdimir)). +* По умолчанию в Keeper включены флаги `create_if_not_exists`, `check_not_exists`, `remove_recursive`, которые позволяют использовать новые типы запросов. [#83488](https://github.com/ClickHouse/ClickHouse/pull/83488) ([Antonio Andelic](https://github.com/antonio2368)). +* Останавливать потоковую обработку S3(Azure/etc)Queue перед остановкой любых таблиц при завершении работы сервера. [#83530](https://github.com/ClickHouse/ClickHouse/pull/83530) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Добавлена поддержка `Date`/`Date32` как целых чисел во входных форматах `JSON`. [#83597](https://github.com/ClickHouse/ClickHouse/pull/83597) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* Улучшили читаемость сообщений об исключениях в некоторых ситуациях при загрузке и добавлении проекций. [#83728](https://github.com/ClickHouse/ClickHouse/pull/83728) ([Robert Schulze](https://github.com/rschu1ze)). +* Добавлена опция конфигурации, позволяющая отключить проверку целостности бинарника `clickhouse-server` по контрольной сумме. Исправляет [#83637](https://github.com/ClickHouse/ClickHouse/issues/83637). [#83749](https://github.com/ClickHouse/ClickHouse/pull/83749) ([Rafael Roquetto](https://github.com/rafaelroquetto)). + +#### Исправление ошибки (ошибка, проявляющаяся для пользователя, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* Исправлено некорректное значение параметра `--reconnect` по умолчанию в `clickhouse-benchmark`. Оно было изменено по ошибке в [#79465](https://github.com/ClickHouse/ClickHouse/issues/79465). [#82677](https://github.com/ClickHouse/ClickHouse/pull/82677) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Устранено непоследовательное форматирование инструкции `CREATE DICTIONARY`. Закрывает [#82105](https://github.com/ClickHouse/ClickHouse/issues/82105). [#82829](https://github.com/ClickHouse/ClickHouse/pull/82829) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлено неконсистентное форматирование TTL, когда он содержит функцию `materialize`. Закрывает [#82828](https://github.com/ClickHouse/ClickHouse/issues/82828). [#82831](https://github.com/ClickHouse/ClickHouse/pull/82831) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлено неконсистентное форматирование EXPLAIN AST в подзапросе при наличии параметров вывода, таких как INTO OUTFILE. Закрывает [#82826](https://github.com/ClickHouse/ClickHouse/issues/82826). [#82840](https://github.com/ClickHouse/ClickHouse/pull/82840) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлено непоследовательное форматирование заключённых в скобки выражений с псевдонимами в контексте, где псевдонимы не допускаются. Закрывает [#82836](https://github.com/ClickHouse/ClickHouse/issues/82836). Закрывает [#82837](https://github.com/ClickHouse/ClickHouse/issues/82837). [#82867](https://github.com/ClickHouse/ClickHouse/pull/82867) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* При умножении состояния агрегатной функции на IPv4 теперь используется корректный код ошибки. Закрывает [#82817](https://github.com/ClickHouse/ClickHouse/issues/82817). [#82818](https://github.com/ClickHouse/ClickHouse/pull/82818) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлена логическая ошибка в кэше файловой системы: «Having zero bytes but range is not finished». [#81868](https://github.com/ClickHouse/ClickHouse/pull/81868) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Пересчитывать индекс min-max, когда TTL удаляет строки, чтобы обеспечить корректность алгоритмов, зависящих от него, таких как `minmax_count_projection`. Это исправляет [#77091](https://github.com/ClickHouse/ClickHouse/issues/77091). [#77166](https://github.com/ClickHouse/ClickHouse/pull/77166) ([Amos Bird](https://github.com/amosbird)). +* Для запросов, содержащих сочетание `ORDER BY ... LIMIT BY ... LIMIT N`, при выполнении ORDER BY в режиме PartialSorting счётчик `rows_before_limit_at_least` теперь отражает количество строк, обработанных оператором LIMIT, а не количество строк, обработанных преобразованием сортировки. [#78999](https://github.com/ClickHouse/ClickHouse/pull/78999) ([Eduard Karacharov](https://github.com/korowa)). +* Исправлена избыточная пропускаемость гранул при фильтрации по token/ngram-индексам с помощью `regexp`, содержащего альтернацию и нелитеральную первую альтернативу. [#79373](https://github.com/ClickHouse/ClickHouse/pull/79373) ([Eduard Karacharov](https://github.com/korowa)). +* Исправлена логическая ошибка в работе оператора `<=>` с хранилищем Join: теперь запрос возвращает корректный код ошибки. [#80165](https://github.com/ClickHouse/ClickHouse/pull/80165) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Исправлено аварийное завершение функции `loop` при использовании с семейством функций `remote`. Обеспечено соблюдение оператора LIMIT в `loop(remote(...))`. [#80299](https://github.com/ClickHouse/ClickHouse/pull/80299) ([Julia Kartseva](https://github.com/jkartseva)). +* Исправлено некорректное поведение функций `to_utc_timestamp` и `from_utc_timestamp` при обработке дат до начала Unix-эпохи (1970-01-01) и после максимально допустимой даты (2106-02-07 06:28:15). Теперь эти функции корректно приводят значения к началу эпохи и максимально допустимой дате соответственно. [#80498](https://github.com/ClickHouse/ClickHouse/pull/80498) ([Surya Kant Ranjan](https://github.com/iit2009046)). +* Для некоторых запросов, выполнявшихся с параллельными репликами, оптимизация упорядоченного чтения могла применяться на инициаторе, но не могла применяться на удалённых узлах. Это приводило к использованию различных режимов чтения координатором параллельных реплик (на инициаторе) и на удалённых узлах, что является логической ошибкой. [#80652](https://github.com/ClickHouse/ClickHouse/pull/80652) ([Igor Nikonov](https://github.com/devcrafter)). +* Исправлена логическая ошибка при материализации PROJECTION, возникавшая, если тип столбца изменялся на Nullable. [#80741](https://github.com/ClickHouse/ClickHouse/pull/80741) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлен некорректный пересчёт TTL в `TTL GROUP BY` при обновлении TTL. [#81222](https://github.com/ClickHouse/ClickHouse/pull/81222) ([Evgeniy Ulasik](https://github.com/H0uston)). +* Исправлена ошибка в bloom-фильтре Parquet, из-за которой условие вида `WHERE function(key) IN (...)` применялось так, как если бы это было `WHERE key IN (...)`. [#81255](https://github.com/ClickHouse/ClickHouse/pull/81255) ([Michael Kolupaev](https://github.com/al13n321)). +* Исправлено возможное падение `Aggregator` при возникновении исключения во время слияния. [#81450](https://github.com/ClickHouse/ClickHouse/pull/81450) ([Nikita Taranov](https://github.com/nickitat)). +* Исправлен метод `InterpreterInsertQuery::extendQueryLogElemImpl`, чтобы при необходимости добавлять обратные кавычки к именам базы данных и таблиц (например, когда имена содержат специальные символы, такие как `-`). [#81528](https://github.com/ClickHouse/ClickHouse/pull/81528) ([Ilia Shvyrialkin](https://github.com/Harzu)). +* Исправлена обработка оператора `IN` при `transform_null_in=1`, когда левый аргумент равен NULL, а результат подзапроса не-Nullable. [#81584](https://github.com/ClickHouse/ClickHouse/pull/81584) ([Pavel Kruglov](https://github.com/Avogar)). +* Не выполнять проверку экспериментальных/подозрительных типов при выполнении выражений `DEFAULT`/`MATERIALIZE` при чтении из существующей таблицы. [#81618](https://github.com/ClickHouse/ClickHouse/pull/81618) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена ошибка "Context has expired" при слияниях, когда в выражении TTL используется словарь. [#81690](https://github.com/ClickHouse/ClickHouse/pull/81690) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена монотонность функции `cast`. [#81722](https://github.com/ClickHouse/ClickHouse/pull/81722) ([zoomxi](https://github.com/zoomxi)). +* Исправлена проблема, из-за которой необходимые столбцы не считывались при обработке скалярных коррелированных подзапросов. Исправляет [#81716](https://github.com/ClickHouse/ClickHouse/issues/81716). [#81805](https://github.com/ClickHouse/ClickHouse/pull/81805) ([Dmitry Novik](https://github.com/novikd)). +* В предыдущих версиях сервер возвращал избыточное содержимое в ответ на запросы к `/js`. Это закрывает [#61890](https://github.com/ClickHouse/ClickHouse/issues/61890). [#81895](https://github.com/ClickHouse/ClickHouse/pull/81895) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Ранее определения движка таблиц `MongoDB` могли включать компонент пути в аргументе `host:port`, который молчаливо игнорировался. Интеграция с `MongoDB` отказывалась загружать такие таблицы. С этим исправлением *теперь поддерживается загрузка таких таблиц, при этом компонент пути игнорируется*, если движок `MongoDB` имеет пять аргументов, а имя базы данных берётся из аргументов. *Примечание:* Исправление не применяется для вновь создаваемых таблиц или запросов с табличной функцией `mongo`, а также для источников словарей и именованных коллекций. [#81942](https://github.com/ClickHouse/ClickHouse/pull/81942) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Исправлен потенциальный сбой `Aggregator` при возникновении исключения во время слияния. [#82022](https://github.com/ClickHouse/ClickHouse/pull/82022) ([Nikita Taranov](https://github.com/nickitat)). +* Исправлен анализ фильтра, когда в запросе используется только константный столбец-алиас. Исправляет проблему [#79448](https://github.com/ClickHouse/ClickHouse/issues/79448). [#82037](https://github.com/ClickHouse/ClickHouse/pull/82037) ([Dmitry Novik](https://github.com/novikd)). +* Исправлена ошибка LOGICAL_ERROR и последующий аварийный сбой при использовании одного и того же столбца в TTL для GROUP BY и SET. [#82054](https://github.com/ClickHouse/ClickHouse/pull/82054) ([Pablo Marcos](https://github.com/pamarcos)). +* Исправлена проверка аргументов табличной функции S3 при маскировке секретов, предотвращающая возможную ошибку `LOGICAL_ERROR`, закрыта задача [#80620](https://github.com/ClickHouse/ClickHouse/issues/80620). [#82056](https://github.com/ClickHouse/ClickHouse/pull/82056) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Устранены гонки данных в Iceberg. [#82088](https://github.com/ClickHouse/ClickHouse/pull/82088) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена функция `DatabaseReplicated::getClusterImpl`. Если первый элемент (или несколько первых элементов) `hosts` имеют `id == DROPPED_MARK` и для того же сегмента нет других элементов, первый элемент `shards` оказывается пустым вектором, что приводит к выбросу исключения `std::out_of_range`. [#82093](https://github.com/ClickHouse/ClickHouse/pull/82093) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Исправлена ошибка копирования и вставки в `arraySimilarity`, запрещено использование весов типов `UInt32` и `Int32`. Обновлены тесты и документация. [#82103](https://github.com/ClickHouse/ClickHouse/pull/82103) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Исправлена ошибка `Not found column` в запросах с `arrayJoin` в условии `WHERE` при использовании `IndexSet`. [#82113](https://github.com/ClickHouse/ClickHouse/pull/82113) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлена ошибка в интеграции с Glue Catalog. Теперь ClickHouse может читать таблицы с вложенными типами данных, где некоторые из подстолбцов содержат значения типа Decimal, например: `map`. Исправляет [#81301](https://github.com/ClickHouse/ClickHouse/issues/81301). [#82114](https://github.com/ClickHouse/ClickHouse/pull/82114) ([alesapin](https://github.com/alesapin)). +* Исправлена деградация производительности в SummingMergeTree, которая была допущена в версии 25.5 в [https://github.com/ClickHouse/ClickHouse/pull/79051](https://github.com/ClickHouse/ClickHouse/pull/79051). [#82130](https://github.com/ClickHouse/ClickHouse/pull/82130) ([Pavel Kruglov](https://github.com/Avogar)). +* При передаче настроек через URI-параметры учитывается последнее указанное значение. [#82137](https://github.com/ClickHouse/ClickHouse/pull/82137) ([Sema Checherinda](https://github.com/CheSema)). +* Исправлено сообщение об ошибке "Context has expired" для Iceberg. [#82146](https://github.com/ClickHouse/ClickHouse/pull/82146) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена возможная взаимоблокировка при выполнении удалённых запросов при недостатке памяти на сервере. [#82160](https://github.com/ClickHouse/ClickHouse/pull/82160) ([Kirill](https://github.com/kirillgarbar)). +* Исправлено переполнение в функциях `numericIndexedVectorPointwiseAdd`, `numericIndexedVectorPointwiseSubtract`, `numericIndexedVectorPointwiseMultiply`, `numericIndexedVectorPointwiseDivide`, которое возникало при работе с большими числами. [#82165](https://github.com/ClickHouse/ClickHouse/pull/82165) ([Raufs Dunamalijevs](https://github.com/rienath)). +* Исправлена ошибка в зависимостях таблиц, из-за которой materialized views пропускали запросы INSERT. [#82222](https://github.com/ClickHouse/ClickHouse/pull/82222) ([Nikolay Degterinsky](https://github.com/evillique)). +* Исправлена потенциальная гонка данных между потоком подсказок и основным потоком клиента. [#82233](https://github.com/ClickHouse/ClickHouse/pull/82233) ([Azat Khuzhin](https://github.com/azat)). +* Теперь ClickHouse может читать таблицы Iceberg из каталога Glue после эволюции схемы. Исправлена ошибка [#81272](https://github.com/ClickHouse/ClickHouse/issues/81272). [#82301](https://github.com/ClickHouse/ClickHouse/pull/82301) ([alesapin](https://github.com/alesapin)). +* Исправлена валидация настроек асинхронных метрик `asynchronous_metrics_update_period_s` и `asynchronous_heavy_metrics_update_period_s`. [#82310](https://github.com/ClickHouse/ClickHouse/pull/82310) ([Bharat Nallan](https://github.com/bharatnc)). +* Исправлена логическая ошибка при обработке сопоставителя в запросе с несколькими JOIN, закрыта [#81969](https://github.com/ClickHouse/ClickHouse/issues/81969). [#82421](https://github.com/ClickHouse/ClickHouse/pull/82421) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Добавлен срок действия токена AWS ECS, чтобы его можно было обновлять. [#82422](https://github.com/ClickHouse/ClickHouse/pull/82422) ([Konstantин Bogданов](https://github.com/thevar1able)). +* Исправлена ошибка при обработке аргументов `NULL` в функции `CASE`. [#82436](https://github.com/ClickHouse/ClickHouse/pull/82436) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Исправлены гонки данных в клиенте (за счёт отказа от использования глобального контекста) и логика переопределения `session_timezone` (ранее, если `session_timezone` был установлен, например, в `users.xml`/опциях клиента в непустое значение, а в контексте запроса — в пустое, то использовалось значение из `users.xml`, что неверно; теперь контекст запроса всегда имеет приоритет над глобальным контекстом). [#82444](https://github.com/ClickHouse/ClickHouse/pull/82444) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена работа отключения выравнивания по границам для кэшированного буфера в движках внешних таблиц. Оно было сломано в [https://github.com/ClickHouse/ClickHouse/pull/81868](https://github.com/ClickHouse/ClickHouse/pull/81868). [#82493](https://github.com/ClickHouse/ClickHouse/pull/82493) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлен сбой при объединении key-value-хранилища с ключом после приведения типа. [#82497](https://github.com/ClickHouse/ClickHouse/pull/82497) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* Исправлено скрытие значений именованных коллекций в logs/query_log. Закрывает [#82405](https://github.com/ClickHouse/ClickHouse/issues/82405). [#82510](https://github.com/ClickHouse/ClickHouse/pull/82510) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлено возможное падение при логировании при завершении сессии, если `user_id` может быть пустым. [#82513](https://github.com/ClickHouse/ClickHouse/pull/82513) ([Bharat Nallan](https://github.com/bharatnc)). +* Устраняет проблему, при которой парсинг `Time` мог приводить к ошибкам msan. Исправляет: [#82477](https://github.com/ClickHouse/ClickHouse/issues/82477). [#82514](https://github.com/ClickHouse/ClickHouse/pull/82514) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Запрещена установка параметра `threadpool_writer_pool_size` в ноль, чтобы операции сервера не зависали. [#82532](https://github.com/ClickHouse/ClickHouse/pull/82532) ([Bharat Nallan](https://github.com/bharatnc)). +* Исправлен `LOGICAL_ERROR`, возникавший при анализе выражения ROW POLICY для коррелированных столбцов. [#82618](https://github.com/ClickHouse/ClickHouse/pull/82618) ([Dmitry Novik](https://github.com/novikd)). +* Исправлено некорректное использование метаданных родительской таблицы в табличной функции `mergeTreeProjection` при `enable_shared_storage_snapshot_in_query = 1`. Связано с [#82634](https://github.com/ClickHouse/ClickHouse/issues/82634). [#82638](https://github.com/ClickHouse/ClickHouse/pull/82638) ([Amos Bird](https://github.com/amosbird)). +* Функции `trim{Left,Right,Both}` теперь поддерживают входные строки типа «FixedString(N)». Например, `SELECT trimBoth(toFixedString('abc', 3), 'ac')` теперь работает. [#82691](https://github.com/ClickHouse/ClickHouse/pull/82691) ([Robert Schulze](https://github.com/rschu1ze)). +* В AzureBlobStorage для нативного копирования мы сравниваем методы аутентификации; если при этом возникает исключение, код обновлён так, чтобы переходить к чтению и копированию (т.е. ненативному копированию). [#82693](https://github.com/ClickHouse/ClickHouse/pull/82693) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). +* Исправлена десериализация `groupArraySample`/`groupArrayLast` в случае пустых элементов (если входные данные были пустыми, десериализация могла пропустить часть бинарных данных, что могло приводить к порче данных при чтении и к UNKNOWN_PACKET_FROM_SERVER в протоколе TCP). Это не затрагивает числовые типы и типы даты и времени. [#82763](https://github.com/ClickHouse/ClickHouse/pull/82763) ([Pedro Ferreira](https://github.com/PedroTadim)). +* Исправлена ошибка резервного копирования пустой таблицы `Memory`, приводившая к сбою восстановления с ошибкой `BACKUP_ENTRY_NOT_FOUND`. [#82791](https://github.com/ClickHouse/ClickHouse/pull/82791) ([Julia Kartseva](https://github.com/jkartseva)). +* Исправлена безопасность при обработке исключений в переписывании union/intersect/except_default_mode. Закрывает [#82664](https://github.com/ClickHouse/ClickHouse/issues/82664). [#82820](https://github.com/ClickHouse/ClickHouse/pull/82820) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Теперь отслеживается количество заданий асинхронной загрузки таблиц. Если какие‑либо задания выполняются, `tail_ptr` в `TransactionLog::removeOldEntries` не обновляется. [#82824](https://github.com/ClickHouse/ClickHouse/pull/82824) ([Tuan Pham Anh](https://github.com/tuanpach)). +* Исправлены гонки данных в Iceberg. [#82841](https://github.com/ClickHouse/ClickHouse/pull/82841) ([Azat Khuzhin](https://github.com/azat)). +* Оптимизация настройки `use_skip_indexes_if_final_exact_mode` (введённая в 25.6) могла не выбрать подходящий диапазон-кандидат в зависимости от настроек движка `MergeTree` и распределения данных. Это было исправлено. [#82879](https://github.com/ClickHouse/ClickHouse/pull/82879) ([Shankar Iyer](https://github.com/shankar-iyer)). +* Устанавливать соль для данных аутентификации при разборе AST с типом SCRAM_SHA256_PASSWORD. [#82888](https://github.com/ClickHouse/ClickHouse/pull/82888) ([Tuan Pham Anh](https://github.com/tuanpach)). +* При использовании реализации Database без кэширования метаданные соответствующей таблицы удаляются после возврата столбцов, а ссылка становится недействительной. [#82939](https://github.com/ClickHouse/ClickHouse/pull/82939) ([buyval01](https://github.com/buyval01)). +* Исправлена модификация фильтра для запросов с выражением JOIN к таблице с движком `Merge`. Исправляет [#82092](https://github.com/ClickHouse/ClickHouse/issues/82092). [#82950](https://github.com/ClickHouse/ClickHouse/pull/82950) ([Dmitry Novik](https://github.com/novikd)). +* Исправлена LOGICAL_ERROR в QueryMetricLog: мьютекс не может быть NULL. [#82979](https://github.com/ClickHouse/ClickHouse/pull/82979) ([Pablo Marcos](https://github.com/pamarcos)). +* Исправлен некорректный вывод функции `formatDateTime` при использовании спецификатора формата `%f` вместе со спецификаторами переменной длины (например, `%M`). [#83020](https://github.com/ClickHouse/ClickHouse/pull/83020) ([Robert Schulze](https://github.com/rschu1ze)). +* Исправлена деградация производительности с включённым анализатором, при которой вторичные запросы всегда читали все столбцы из представлений (VIEW). Исправляет [#81718](https://github.com/ClickHouse/ClickHouse/issues/81718). [#83036](https://github.com/ClickHouse/ClickHouse/pull/83036) ([Dmitry Novik](https://github.com/novikd)). +* Исправлено вводящее в заблуждение сообщение об ошибке при попытке восстановления резервной копии на диске, доступном только для чтения. [#83051](https://github.com/ClickHouse/ClickHouse/pull/83051) ([Julia Kartseva](https://github.com/jkartseva)). +* Не выполнять проверку циклических зависимостей при создании таблицы без зависимостей. Это исправляет деградацию производительности в сценариях создания тысяч таблиц, появившуюся в [https://github.com/ClickHouse/ClickHouse/pull/65405](https://github.com/ClickHouse/ClickHouse/pull/65405). [#83077](https://github.com/ClickHouse/ClickHouse/pull/83077) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена проблема с неявным чтением в таблицу отрицательных значений типа Time и устранена путаница в документации. [#83091](https://github.com/ClickHouse/ClickHouse/pull/83091) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Не используйте несвязанные части общего словаря в функции `lowCardinalityKeys`. [#83118](https://github.com/ClickHouse/ClickHouse/pull/83118) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлена регрессия при использовании подстолбцов в materialized view. Данное изменение исправляет: [#82784](https://github.com/ClickHouse/ClickHouse/issues/82784). [#83221](https://github.com/ClickHouse/ClickHouse/pull/83221) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Исправлено падение клиента из-за подключения, оставшегося в отключённом состоянии после неудачного INSERT-запроса. [#83253](https://github.com/ClickHouse/ClickHouse/pull/83253) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена ошибка, приводившая к сбою при вычислении размера блока с пустыми столбцами. [#83271](https://github.com/ClickHouse/ClickHouse/pull/83271) ([Raúl Marín](https://github.com/Algunenano)). +* Устранён потенциальный сбой при использовании типа данных Variant в операторе UNION. [#83295](https://github.com/ClickHouse/ClickHouse/pull/83295) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена LOGICAL_ERROR в clickhouse-local при выполнении неподдерживаемых запросов SYSTEM. [#83333](https://github.com/ClickHouse/ClickHouse/pull/83333) ([Surya Kant Ranjan](https://github.com/iit2009046)). +* Исправлен параметр `no_sign_request` для клиента S3. Его можно использовать для явного отключения подписи запросов к S3. Его также можно задать для отдельных конечных точек с помощью настроек, задаваемых для этих конечных точек. [#83379](https://github.com/ClickHouse/ClickHouse/pull/83379) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлена ошибка, из-за которой при выполнении запроса с настройкой 'max_threads=1' под нагрузкой при включённом планировании ЦП могло происходить аварийное завершение. [#83387](https://github.com/ClickHouse/ClickHouse/pull/83387) ([Fan Ziqi](https://github.com/f2quantum)). +* Исправлена ошибка, из-за которой возникало исключение `TOO_DEEP_SUBQUERIES`, когда определение CTE ссылалось на другое табличное выражение с тем же именем. [#83413](https://github.com/ClickHouse/ClickHouse/pull/83413) ([Dmitry Novik](https://github.com/novikd)). +* Исправлено некорректное поведение, при котором выполнение `REVOKE S3 ON system.*` отзывает права доступа к S3 для `*.*`. Это исправляет [#83417](https://github.com/ClickHouse/ClickHouse/issues/83417). [#83420](https://github.com/ClickHouse/ClickHouse/pull/83420) ([pufit](https://github.com/pufit)). +* Не разделяйте счётчики async_read_counters между запросами. [#83423](https://github.com/ClickHouse/ClickHouse/pull/83423) ([Azat Khuzhin](https://github.com/azat)). +* Отключены параллельные реплики, если подзапрос содержит FINAL. [#83455](https://github.com/ClickHouse/ClickHouse/pull/83455) ([zoomxi](https://github.com/zoomxi)). +* Исправлено незначительное переполнение целочисленного значения в конфигурации параметра `role_cache_expiration_time_seconds` (issue [#83374](https://github.com/ClickHouse/ClickHouse/issues/83374)). [#83461](https://github.com/ClickHouse/ClickHouse/pull/83461) ([wushap](https://github.com/wushap)). +* Исправлена ошибка, возникшая в [https://github.com/ClickHouse/ClickHouse/pull/79963](https://github.com/ClickHouse/ClickHouse/pull/79963). При вставке в MV с определяющим пользователем проверка прав должна выполняться от имени этого пользователя. Это исправляет [#79951](https://github.com/ClickHouse/ClickHouse/issues/79951). [#83502](https://github.com/ClickHouse/ClickHouse/pull/83502) ([pufit](https://github.com/pufit)). +* Отключено отсечение файлов по границам для элементов массивов Iceberg и значений карт Iceberg, включая все их вложенные подполя. [#83520](https://github.com/ClickHouse/ClickHouse/pull/83520) ([Daniil Ivanik](https://github.com/divanik)). +* Исправлены возможные ошибки вида «file cache not initialized» при использовании файлового кэша для временного хранения данных. [#83539](https://github.com/ClickHouse/ClickHouse/pull/83539) ([Bharat Nallan](https://github.com/bharatnc)). +* Исправление в Keeper: корректно обновлять общее количество наблюдателей при удалении эфемерных узлов при закрытии сессии. [#83583](https://github.com/ClickHouse/ClickHouse/pull/83583) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлено некорректное управление памятью, связанное с `max_untracked_memory`. [#83607](https://github.com/ClickHouse/ClickHouse/pull/83607) ([Azat Khuzhin](https://github.com/azat)). +* INSERT SELECT с UNION ALL мог приводить к разыменованию нулевого указателя в редком частном случае. Это исправляет [#83618](https://github.com/ClickHouse/ClickHouse/issues/83618). [#83643](https://github.com/ClickHouse/ClickHouse/pull/83643) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Запрещено использовать нулевое значение для max_insert_block_size, так как оно могло приводить к логической ошибке. [#83688](https://github.com/ClickHouse/ClickHouse/pull/83688) ([Bharat Nallan](https://github.com/bharatnc)). +* Исправлен бесконечный цикл в estimateCompressionRatio() при block_size_bytes=0. [#83704](https://github.com/ClickHouse/ClickHouse/pull/83704) ([Azat Khuzhin](https://github.com/azat)). +* Исправлены метрики `IndexUncompressedCacheBytes`/`IndexUncompressedCacheCells`/`IndexMarkCacheBytes`/`IndexMarkCacheFiles` (ранее они входили в метрику без префикса `Cache`). [#83730](https://github.com/ClickHouse/ClickHouse/pull/83730) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена возможная аварийная остановка (из‑за ожидания завершения потоков задачи) и, надеемся, зависания (в модульных тестах) при остановке `BackgroundSchedulePool`. [#83769](https://github.com/ClickHouse/ClickHouse/pull/83769) ([Azат Khuzhin](https://github.com/azat)). +* Добавлена настройка обратной совместимости, которая позволяет новому анализатору ссылаться на внешний псевдоним в предложении WITH при совпадении имён. Исправляет [#82700](https://github.com/ClickHouse/ClickHouse/issues/82700). [#83797](https://github.com/ClickHouse/ClickHouse/pull/83797) ([Dmitry Novik](https://github.com/novikd)). +* Исправлена взаимная блокировка (deadlock) при завершении работы из-за рекурсивной блокировки контекста во время очистки library bridge. [#83824](https://github.com/ClickHouse/ClickHouse/pull/83824) ([Azat Khuzhin](https://github.com/azat)). + +#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement} + +* Собрана минимальная C-библиотека (10 КБ) для лексера ClickHouse. Это нужно для [#80977](https://github.com/ClickHouse/ClickHouse/issues/80977). [#81347](https://github.com/ClickHouse/ClickHouse/pull/81347) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Добавлен тест для автономного лексера, добавлен тестовый тег `fasttest-only`. [#82472](https://github.com/ClickHouse/ClickHouse/pull/82472) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Добавлена проверка inputs подмодулей Nix. [#81691](https://github.com/ClickHouse/ClickHouse/pull/81691) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Исправлен ряд проблем, которые могут возникать при попытке запуска интеграционных тестов на localhost. [#82135](https://github.com/ClickHouse/ClickHouse/pull/82135) ([Oleg Doronin](https://github.com/dorooleg)). +* Собран SymbolIndex на Mac и FreeBSD (но он будет работать только на системах с ELF, Linux и FreeBSD). [#82347](https://github.com/ClickHouse/ClickHouse/pull/82347) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Обновлён Azure SDK до v1.15.0. [#82747](https://github.com/ClickHouse/ClickHouse/pull/82747) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). +* Добавлен storage-модуль из google-cloud-cpp в систему сборки. [#82881](https://github.com/ClickHouse/ClickHouse/pull/82881) ([Pablo Marcos](https://github.com/pamarcos)). +* Изменён `Dockerfile.ubuntu` для clickhouse-server в соответствии с требованиями Docker Official Library. [#83039](https://github.com/ClickHouse/ClickHouse/pull/83039) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Продолжение для [#83158](https://github.com/ClickHouse/ClickHouse/issues/83158), чтобы исправить загрузку сборок через `curl clickhouse.com`. [#83463](https://github.com/ClickHouse/ClickHouse/pull/83463) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Добавление исполняемого файла `busybox` и инструментов установки в образы `clickhouse/clickhouse-server` и официальный образ `clickhouse`. [#83735](https://github.com/ClickHouse/ClickHouse/pull/83735) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Добавлена поддержка переменной окружения `CLICKHOUSE_HOST` для указания хоста сервера ClickHouse, в соответствии с существующими переменными окружения `CLICKHOUSE_USER` и `CLICKHOUSE_PASSWORD`. Это упрощает конфигурацию без прямого изменения клиентских или конфигурационных файлов. [#83659](https://github.com/ClickHouse/ClickHouse/pull/83659) ([Doron David](https://github.com/dorki)). + +### Релиз ClickHouse 25.6 от 2025-06-26 {#256} + +#### Изменения, нарушающие обратную совместимость {#backward-incompatible-change} + +* Ранее функция `countMatches` прекращала подсчёт при первом пустом совпадении, даже если шаблон его допускает. Для устранения этой проблемы `countMatches` теперь продолжает выполнение, сдвигаясь вперёд на один символ при возникновении пустого совпадения. Пользователи, которые хотят сохранить старое поведение, могут включить настройку `count_matches_stop_at_empty_match`. [#81676](https://github.com/ClickHouse/ClickHouse/pull/81676) ([Elmi Ahmadov](https://github.com/ahmadov)). +* Незначительное: принудительно сделать серверные настройки `backup_threads` и `restore_threads` ненулевыми. [#80224](https://github.com/ClickHouse/ClickHouse/pull/80224) ([Raúl Marín](https://github.com/Algunenano)). +* Незначительное: исправлено поведение `bitNot` для `String` — теперь во внутреннем представлении в памяти возвращается строка с нулевым терминатором. Это не должно влиять на поведение, наблюдаемое пользователем, однако автор хотел отдельно отметить это изменение. [#80791](https://github.com/ClickHouse/ClickHouse/pull/80791) ([Azat Khuzhin](https://github.com/azat)). + +#### Новые возможности {#new-feature} + +* Новые типы данных: `Time` ([H]HH:MM:SS) и `Time64` ([H]HH:MM:SS[.fractional]), а также некоторые базовые функции приведения типов и функции для взаимодействия с другими типами данных. Добавлены настройки для совместимости с существующей функцией `toTime`. Параметр `use_legacy_to_time` по умолчанию установлен так, чтобы пока сохранять прежнее поведение. [#81217](https://github.com/ClickHouse/ClickHouse/pull/81217) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). Добавлена поддержка сравнения между типами Time и Time64. [#80327](https://github.com/ClickHouse/ClickHouse/pull/80327) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Новый инструмент командной строки [`chdig`](https://github.com/azat/chdig/) — TUI-интерфейс для ClickHouse в стиле `top` как часть ClickHouse. [#79666](https://github.com/ClickHouse/ClickHouse/pull/79666) ([Azat Khuzhin](https://github.com/azat)). +* Добавлена поддержка параметра `disk` для движков баз данных `Atomic` и `Ordinary`, который указывает диск для хранения файлов метаданных таблиц. [#80546](https://github.com/ClickHouse/ClickHouse/pull/80546) ([Tuan Pham Anh](https://github.com/tuanpach)). Это позволяет подключать базы данных из внешних источников. +* Новый тип MergeTree, `CoalescingMergeTree` — движок во время фоновых слияний берёт первое значение, отличное от Null. Закрывает [#78869](https://github.com/ClickHouse/ClickHouse/issues/78869). [#79344](https://github.com/ClickHouse/ClickHouse/pull/79344) ([scanhex12](https://github.com/scanhex12)). +* Добавлена поддержка функций чтения WKB ("Well-Known Binary" — формат двоичного кодирования различных типов геометрии, используемый в GIS-приложениях). См. [#43941](https://github.com/ClickHouse/ClickHouse/issues/43941). [#80139](https://github.com/ClickHouse/ClickHouse/pull/80139) ([scanhex12](https://github.com/scanhex12)). +* Добавлено планирование слотов выполнения запросов для нагрузок, подробности см. в разделе [Планирование нагрузок](https://clickhouse.com/docs/operations/workload-scheduling#query_scheduling). [#78415](https://github.com/ClickHouse/ClickHouse/pull/78415) ([Sergei Trifonov](https://github.com/serxa)). +* Вспомогательные функции `timeSeries*` для ускорения выполнения некоторых сценариев при работе с временными рядами: - ресемплирование данных по временной сетке с заданными начальной меткой времени, конечной меткой времени и шагом - вычисление PromQL-подобных `delta`, `rate`, `idelta` и `irate`. [#80590](https://github.com/ClickHouse/ClickHouse/pull/80590) ([Alexander Gololobov](https://github.com/davenger)). +* Добавлены функции `mapContainsValuesLike`/`mapContainsValues`/`mapExtractValuesLike` для фильтрации по значениям карт и их поддержка в индексах на основе блум-фильтра. [#78171](https://github.com/ClickHouse/ClickHouse/pull/78171) ([UnamedRus](https://github.com/UnamedRus)). +* Теперь в ограничениях для настроек можно задавать набор недопустимых значений. [#78499](https://github.com/ClickHouse/ClickHouse/pull/78499) ([Bharat Nallan](https://github.com/bharatnc)). +* Добавлена настройка `enable_shared_storage_snapshot_in_query` для включения совместного использования одного и того же снимка хранилища всеми подзапросами в одном запросе. Это обеспечивает консистентное чтение из одной и той же таблицы, даже если таблица фигурирует в запросе несколько раз. [#79471](https://github.com/ClickHouse/ClickHouse/pull/79471) ([Amos Bird](https://github.com/amosbird)). +* Добавлена поддержка записи столбцов `JSON` в `Parquet` и прямого чтения столбцов `JSON` из `Parquet`. [#79649](https://github.com/ClickHouse/ClickHouse/pull/79649) ([Nihал Z. Miaji](https://github.com/nihalzp)). +* Добавлена поддержка типа `MultiPolygon` в `pointInPolygon`. [#79773](https://github.com/ClickHouse/ClickHouse/pull/79773) ([Nihal Z. Miaji](https://github.com/nihalzp)). +* Добавлена поддержка выполнения запросов к таблицам Delta Lake, смонтированным из локальной файловой системы, через табличную функцию `deltaLakeLocal`. [#79781](https://github.com/ClickHouse/ClickHouse/pull/79781) ([roykim98](https://github.com/roykim98)). +* Добавлена новая настройка `cast_string_to_date_time_mode`, которая позволяет выбрать режим разбора DateTime при приведении типа из String. [#80210](https://github.com/ClickHouse/ClickHouse/pull/80210) ([Pavel Kruglov](https://github.com/Avogar)). Например, вы можете установить её в режим best effort. +* Добавлены функции `bech32Encode` и `bech32Decode` для работы с алгоритмом Bech32 в Bitcoin (задача [#40381](https://github.com/ClickHouse/ClickHouse/issues/40381)). [#80239](https://github.com/ClickHouse/ClickHouse/pull/80239) ([George Larionov](https://github.com/glarik)). +* Добавлены SQL‑функции для анализа имён частей MergeTree. [#80573](https://github.com/ClickHouse/ClickHouse/pull/80573) ([Mikhail Artemenko](https://github.com/Michicosun)). +* Теперь можно фильтровать части, выбранные в запросе, по диску, на котором они находятся, с помощью нового виртуального столбца `_disk_name`. [#80650](https://github.com/ClickHouse/ClickHouse/pull/80650) ([tanner-bruce](https://github.com/tanner-bruce)). +* Добавлена стартовая страница со списком встроенных веб‑инструментов. Она будет открываться при обращении из пользовательского агента, похожего на браузер. [#81129](https://github.com/ClickHouse/ClickHouse/pull/81129) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Функции `arrayFirst`, `arrayFirstIndex`, `arrayLast` и `arrayLastIndex` отфильтровывают значения NULL, возвращаемые фильтрующим выражением. В предыдущих версиях результаты фильтра с типом Nullable не поддерживались. Исправляет [#81113](https://github.com/ClickHouse/ClickHouse/issues/81113). [#81197](https://github.com/ClickHouse/ClickHouse/pull/81197) ([Lennard Eijsackers](https://github.com/Blokje5)). +* Теперь можно использовать `USE DATABASE name` вместо `USE name`. [#81307](https://github.com/ClickHouse/ClickHouse/pull/81307) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Добавлена новая системная таблица `system.codecs` для просмотра информации о доступных кодеках. (issue [#81525](https://github.com/ClickHouse/ClickHouse/issues/81525)). [#81600](https://github.com/ClickHouse/ClickHouse/pull/81600) ([Jimmy Aguilar Mena](https://github.com/Ergus)). +* Добавлена поддержка оконных функций `lag` и `lead`. Закрывает [#9887](https://github.com/ClickHouse/ClickHouse/issues/9887). [#82108](https://github.com/ClickHouse/ClickHouse/pull/82108) ([Dmitry Novik](https://github.com/novikd)). +* Функция `tokens` теперь поддерживает новый токенизатор `split`, который хорошо подходит для логов. [#80195](https://github.com/ClickHouse/ClickHouse/pull/80195) ([Robert Schulze](https://github.com/rschu1ze)). +* Добавлена поддержка аргумента `--database` в `clickhouse-local`. Теперь можно переключиться на уже созданную базу данных. Это закрывает [#44115](https://github.com/ClickHouse/ClickHouse/issues/44115). [#81465](https://github.com/ClickHouse/ClickHouse/pull/81465) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + +#### Экспериментальная функциональность {#experimental-feature} + +* Реализована логика, подобная перераспределению партиций в Kafka (rebalance), для `Kafka2` с использованием ClickHouse Keeper. Для каждой реплики поддерживаются два типа блокировок партиций: постоянные и временные. Реплика старается удерживать постоянные блокировки как можно дольше; в любой момент времени на реплике не более чем `all_topic_partitions / active_replicas_count` (где `all_topic_partitions` — количество всех партиций, а `active_replicas_count` — количество активных реплик) постоянных блокировок. Если их становится больше, реплика освобождает часть партиций. Некоторые партиции временно удерживаются репликой. Максимальное число временных блокировок на реплике динамически изменяется, чтобы дать другим репликам возможность взять часть партиций в постоянные блокировки. При обновлении временных блокировок реплика освобождает их все и пытается заново захватить некоторые другие. [#78726](https://github.com/ClickHouse/ClickHouse/pull/78726) ([Daria Fomina](https://github.com/sinfillo)). +* Улучшение для экспериментального текстового индекса: явные параметры поддерживаются через пары ключ–значение. В настоящее время поддерживаются параметры: обязательный `tokenizer` и два необязательных — `max_rows_per_postings_list` и `ngram_size`. [#80262](https://github.com/ClickHouse/ClickHouse/pull/80262) ([Elmi Ahmadov](https://github.com/ahmadov)). +* Ранее хранилище `packed` не поддерживалось для полнотекстового индекса, поскольку идентификатор сегмента обновлялся «на лету» путём чтения и записи файла (`.gin_sid`) на диске. В случае `packed`‑хранилища чтение значения из незафиксированного файла не поддерживается, что приводило к проблеме. Сейчас это исправлено. [#80852](https://github.com/ClickHouse/ClickHouse/pull/80852) ([Elmi Ahmadov](https://github.com/ahmadov)). +* Экспериментальные индексы типа `gin` (которые мне не нравятся, потому что это внутренняя шутка хакеров PostgreSQL) были переименованы в `text`. Существующие индексы типа `gin` по‑прежнему можно загрузить, но при попытке использовать их в поиске они будут выбрасывать исключение (предлагая вместо них индексы типа `text`). [#80855](https://github.com/ClickHouse/ClickHouse/pull/80855) ([Robert Schulze](https://github.com/rschu1ze)). + +#### Повышение производительности {#performance-improvement} + +* Включена поддержка фильтрации по нескольким проекциям, что позволяет использовать более одной проекции для фильтрации на уровне частей. Это решает [#55525](https://github.com/ClickHouse/ClickHouse/issues/55525). Это второй шаг к реализации индекса проекции, после [#78429](https://github.com/ClickHouse/ClickHouse/issues/78429). [#80343](https://github.com/ClickHouse/ClickHouse/pull/80343) ([Amos Bird](https://github.com/amosbird)). +* По умолчанию использовать политику кэширования `SLRU` для файлового кэша. [#75072](https://github.com/ClickHouse/ClickHouse/pull/75072) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Устранена конкуренция потоков на шаге Resize в конвейере выполнения запроса. [#77562](https://github.com/ClickHouse/ClickHouse/pull/77562) ([Zhiguo Zhou](https://github.com/ZhiguoZh)). +* Добавлена опция, позволяющая вынести (де)сжатие и (де)сериализацию блоков в потоки конвейера обработки (pipeline threads) вместо единственного потока, связанного с сетевым подключением. Управляется настройкой `enable_parallel_blocks_marshalling`. Это должно ускорить распределённые запросы, которые передают значительные объёмы данных между инициатором и удалёнными узлами. [#78694](https://github.com/ClickHouse/ClickHouse/pull/78694) ([Nikita Taranov](https://github.com/nickitat)). +* Улучшена производительность всех типов Bloom-фильтров. [Видео с конференции OpenHouse](https://www.youtube.com/watch?v=yIVz0NKwQvA\&pp=ygUQb3BlbmhvdXNlIG9wZW5haQ%3D%3D) [#79800](https://github.com/ClickHouse/ClickHouse/pull/79800) ([Delyan Kratunov](https://github.com/dkratunov)). +* Добавлен быстрый путь в `UniqExactSet::merge`, когда одно из множеств пустое. Также теперь, если левое множество является двухуровневым, а правое — одноуровневым, мы не выполняем преобразование правого множества в двухуровневое. [#79971](https://github.com/ClickHouse/ClickHouse/pull/79971) ([Nikita Taranov](https://github.com/nickitat)). +* Повышена эффективность повторного использования памяти и снижено число обращений к подкачке при использовании двухуровневых хеш-таблиц. Это ускоряет выполнение `GROUP BY`. [#80245](https://github.com/ClickHouse/ClickHouse/pull/80245) ([Jiebin Sun](https://github.com/jiebinn)). +* Избегать лишних обновлений и снижать конкуренцию за блокировки в кэше условий запроса. [#80247](https://github.com/ClickHouse/ClickHouse/pull/80247) ([Jiebin Sun](https://github.com/jiebinn)). +* Тривиальная оптимизация для `concatenateBlocks`. Скорее всего, она улучшает производительность параллельного хеш-соединения. [#80328](https://github.com/ClickHouse/ClickHouse/pull/80328) ([李扬](https://github.com/taiyang-li)). +* При выборе диапазонов меток из диапазона первичного ключа двоичный поиск нельзя использовать, если первичный ключ обёрнут функциями. Этот PR улучшает это ограничение: двоичный поиск по‑прежнему может применяться, когда первичный ключ обёрнут цепочкой всегда монотонных функций, или когда RPN содержит элемент, который всегда истинен. Закрывает [#45536](https://github.com/ClickHouse/ClickHouse/issues/45536). [#80597](https://github.com/ClickHouse/ClickHouse/pull/80597) ([zoomxi](https://github.com/zoomxi)). +* Ускорено завершение работы движка `Kafka` (убрано дополнительное 3‑секундное ожидание при наличии нескольких таблиц `Kafka`). [#80796](https://github.com/ClickHouse/ClickHouse/pull/80796) ([Azat Khuzhin](https://github.com/azat)). +* Асинхронные вставки: снижено потребление памяти и повышена производительность запросов INSERT. [#80972](https://github.com/ClickHouse/ClickHouse/pull/80972) ([Raúl Marín](https://github.com/Algunenano)). +* Не выполнять профилирование процессоров, если таблица логов отключена. [#81256](https://github.com/ClickHouse/ClickHouse/pull/81256) ([Raúl Marín](https://github.com/Algunenano)). Это ускоряет выполнение очень коротких запросов. +* Ускорена функция `toFixedString`, когда исходное значение уже имеет требуемый формат. [#81257](https://github.com/ClickHouse/ClickHouse/pull/81257) ([Raúl Marín](https://github.com/Algunenano)). +* Не обрабатывать значения QUOTA, если пользователь не ограничен квотами. [#81549](https://github.com/ClickHouse/ClickHouse/pull/81549) ([Raúl Marín](https://github.com/Algunenano)). Это ускоряет выполнение очень коротких запросов. +* Исправлена регрессия производительности в механизме отслеживания памяти. [#81694](https://github.com/ClickHouse/ClickHouse/pull/81694) ([Michael Kolupaev](https://github.com/al13n321)). +* Улучшена оптимизация ключа сегментации для распределённых запросов. [#78452](https://github.com/ClickHouse/ClickHouse/pull/78452) ([fhw12345](https://github.com/fhw12345)). +* Parallel replicas: не ждать медленных незадействованных реплик, если все задачи чтения уже назначены другим репликам. [#80199](https://github.com/ClickHouse/ClickHouse/pull/80199) ([Igor Nikonov](https://github.com/devcrafter)). +* Параллельные реплики используют отдельный таймаут подключения, см. параметр `parallel_replicas_connect_timeout_ms`. Ранее для задания таймаута подключения для запросов с параллельными репликами использовались настройки `connect_timeout_with_failover_ms`/`connect_timeout_with_failover_secure_ms` (по умолчанию — 1 секунда). [#80421](https://github.com/ClickHouse/ClickHouse/pull/80421) ([Igor Nikonov](https://github.com/devcrafter)). +* В файловой системе с журналированием операция `mkdir` записывается в журнал файловой системы, который затем сбрасывается на диск. При медленном диске это может занимать много времени. Операция вынесена за пределы области действия резервной блокировки. [#81371](https://github.com/ClickHouse/ClickHouse/pull/81371) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Отложить чтение файлов манифестов Iceberg до первого запроса на чтение. [#81619](https://github.com/ClickHouse/ClickHouse/pull/81619) ([Daniil Ivanik](https://github.com/divanik)). +* Разрешить перемещение предиката `GLOBAL [NOT] IN` в предложение `PREWHERE`, если применимо. [#79996](https://github.com/ClickHouse/ClickHouse/pull/79996) ([Eduard Karacharov](https://github.com/korowa)). + +#### Улучшения {#improvement} + +* `EXPLAIN SYNTAX` теперь использует новый анализатор. Он возвращает AST, построенное из дерева запроса. Добавлена опция `query_tree_passes` для управления количеством проходов, выполняемых перед преобразованием дерева запроса в AST. [#74536](https://github.com/ClickHouse/ClickHouse/pull/74536) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Реализована плоская сериализация для Dynamic и JSON в формате Native, которая позволяет сериализовывать и десериализовывать данные Dynamic и JSON без использования специальных структур, таких как shared variant для Dynamic и shared data для JSON. Её можно включить с помощью параметра `output_format_native_use_flattened_dynamic_and_json_serialization`. Данный механизм можно использовать для упрощения поддержки Dynamic и JSON в TCP-протоколе в клиентских приложениях на разных языках программирования. [#80499](https://github.com/ClickHouse/ClickHouse/pull/80499) ([Pavel Kruglov](https://github.com/Avogar)). +* Обновлять учетные данные `S3` после ошибки `AuthenticationRequired`. [#77353](https://github.com/ClickHouse/ClickHouse/pull/77353) ([Vitaly Baranov](https://github.com/vitlibar)). +* Добавлены метрики словарей в `system.asynchronous_metrics`: `DictionaryMaxUpdateDelay` — максимальная задержка обновления словаря (в секундах); `DictionaryTotalFailedUpdates` — количество ошибок с момента последней успешной загрузки во всех словарях. [#78175](https://github.com/ClickHouse/ClickHouse/pull/78175) ([Vlad](https://github.com/codeworse)). +* Добавлено предупреждение о базах данных, которые могли быть созданы для сохранения повреждённых таблиц. [#78841](https://github.com/ClickHouse/ClickHouse/pull/78841) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Для движков `S3Queue` и `AzureQueue` добавлен виртуальный столбец `_time`. [#78926](https://github.com/ClickHouse/ClickHouse/pull/78926) ([Anton Ivashkin](https://github.com/ianton-ru)). +* Добавить возможность горячей перезагрузки настроек, управляющих разрывом соединения при перегрузке CPU. [#79052](https://github.com/ClickHouse/ClickHouse/pull/79052) ([Alexey Katsman](https://github.com/alexkats)). +* Добавлен префикс контейнера к путям данных, отображаемым в `system.tables` для обычных дисков в хранилище Azure Blob Storage, что обеспечивает единообразие с S3 и GCP. [#79241](https://github.com/ClickHouse/ClickHouse/pull/79241) ([Julia Kartseva](https://github.com/jkartseva)). +* Теперь clickhouse-client и local могут принимать параметры запроса не только в виде `param_` (подчёркивание), но и в виде `param-` (дефис). Это закрывает задачу [#63093](https://github.com/ClickHouse/ClickHouse/issues/63093). [#79429](https://github.com/ClickHouse/ClickHouse/pull/79429) ([Engel Danila](https://github.com/aaaengel)). +* Подробное предупреждающее сообщение об экономии полосы пропускания при копировании данных из локального хранилища в удалённый S3 при включённой проверке контрольных сумм. [#79464](https://github.com/ClickHouse/ClickHouse/pull/79464) ([VicoWu](https://github.com/VicoWu)). +* Ранее при `input_format_parquet_max_block_size = 0` (недопустимом значении) ClickHouse зависал. Теперь это поведение исправлено. Исправление закрывает [#79394](https://github.com/ClickHouse/ClickHouse/issues/79394). [#79601](https://github.com/ClickHouse/ClickHouse/pull/79601) ([abashkeev](https://github.com/abashkeev)). +* Добавлена настройка `throw_on_error` для `startup_scripts`: когда `throw_on_error` установлена в true, сервер не запустится, пока все запросы не завершатся успешно. По умолчанию `throw_on_error` имеет значение false, что сохраняет предыдущее поведение. [#79732](https://github.com/ClickHouse/ClickHouse/pull/79732) ([Aleksandr Musorin](https://github.com/AVMusorin)). +* Добавлена возможность добавлять `http_response_headers` в любые `http_handlers`. [#79975](https://github.com/ClickHouse/ClickHouse/pull/79975) ([Andrey Zvonov](https://github.com/zvonand)). +* Функция `reverse` теперь поддерживает тип данных `Tuple`. Закрывает [#80053](https://github.com/ClickHouse/ClickHouse/issues/80053). [#80083](https://github.com/ClickHouse/ClickHouse/pull/80083) ([flynn](https://github.com/ucasfl)). +* Исправлена проблема [#75817](https://github.com/ClickHouse/ClickHouse/issues/75817): разрешено получать данные о `auxiliary_zookeepers` из таблицы `system.zookeeper`. [#80146](https://github.com/ClickHouse/ClickHouse/pull/80146) ([Nikolay Govorov](https://github.com/mrdimidium)). +* Добавлены асинхронные метрики по TCP-сокетам сервера. Это улучшает обсервабилити. Закрывает [#80187](https://github.com/ClickHouse/ClickHouse/issues/80187). [#80188](https://github.com/ClickHouse/ClickHouse/pull/80188) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена поддержка `anyLast_respect_nulls` и `any_respect_nulls` как `SimpleAggregateFunction`. [#80219](https://github.com/ClickHouse/ClickHouse/pull/80219) ([Diskein](https://github.com/Diskein)). +* Удалён лишний вызов `adjustCreateQueryForBackup` для реплицируемых баз данных. [#80282](https://github.com/ClickHouse/ClickHouse/pull/80282) ([Vitaly Baranov](https://github.com/vitlibar)). +* Добавлена поддержка дополнительных опций (которые идут после `--`, например `-- --config.value='abc'`) в `clickhouse-local` без знака равенства. Закрывает [#80292](https://github.com/ClickHouse/ClickHouse/issues/80292). [#80293](https://github.com/ClickHouse/ClickHouse/pull/80293) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Подсветка метасимволов в запросах `SHOW ... LIKE`. Это закрывает [#80275](https://github.com/ClickHouse/ClickHouse/issues/80275). [#80297](https://github.com/ClickHouse/ClickHouse/pull/80297) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Сделать SQL UDF в `clickhouse-local` постоянной. Ранее созданная функция будет загружаться при запуске. Это закрывает [#80085](https://github.com/ClickHouse/ClickHouse/issues/80085). [#80300](https://github.com/ClickHouse/ClickHouse/pull/80300) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлено описание в плане выполнения запроса для предварительного шага DISTINCT. [#80330](https://github.com/ClickHouse/ClickHouse/pull/80330) ([UnamedRus](https://github.com/UnamedRus)). +* Добавлена поддержка использования именованных коллекций в ODBC/JDBC. [#80334](https://github.com/ClickHouse/ClickHouse/pull/80334) ([Andrey Zvonov](https://github.com/zvonand)). +* Метрики числа дисков только для чтения и повреждённых дисков. Индикатор логируется при запуске DiskLocalCheckThread. [#80391](https://github.com/ClickHouse/ClickHouse/pull/80391) ([VicoWu](https://github.com/VicoWu)). +* Реализована поддержка хранилища `s3_plain_rewritable` с проекциями. В предыдущих версиях объекты метаданных в S3, ссылающиеся на проекции, не обновлялись при их перемещении. Закрывает [#70258](https://github.com/ClickHouse/ClickHouse/issues/70258). [#80393](https://github.com/ClickHouse/ClickHouse/pull/80393) ([Sav](https://github.com/sberss)). +* Команда `SYSTEM UNFREEZE` больше не будет пытаться искать части на дисках только для чтения (read-only) и одноразовой записи (write-once). Это закрывает [#80430](https://github.com/ClickHouse/ClickHouse/issues/80430). [#80432](https://github.com/ClickHouse/ClickHouse/pull/80432) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Уменьшен уровень логирования сообщений о слитых частях. [#80476](https://github.com/ClickHouse/ClickHouse/pull/80476) ([Hans Krutzer](https://github.com/hkrutzer)). +* Изменено поведение прореживания партиций по умолчанию для таблиц Iceberg. [#80583](https://github.com/ClickHouse/ClickHouse/pull/80583) ([Melvyn Peignon](https://github.com/melvynator)). +* Добавлены два новых ProfileEvents для обсервабилити алгоритма поиска по индексу: `IndexBinarySearchAlgorithm` и `IndexGenericExclusionSearchAlgorithm`. [#80679](https://github.com/ClickHouse/ClickHouse/pull/80679) ([Pablo Marcos](https://github.com/pamarcos)). +* Не логировать сообщения о неподдерживаемом `MADV_POPULATE_WRITE` на старых ядрах (чтобы не засорять логи). [#80704](https://github.com/ClickHouse/ClickHouse/pull/80704) ([Robert Schulze](https://github.com/rschu1ze)). +* Добавлена поддержка `Date32` и `DateTime64` в выражениях `TTL`. [#80710](https://github.com/ClickHouse/ClickHouse/pull/80710) ([Andrey Zvonov](https://github.com/zvonand)). +* Скорректированы значения совместимости параметра `max_merge_delayed_streams_for_parallel_write`. [#80760](https://github.com/ClickHouse/ClickHouse/pull/80760) ([Azat Khuzhin](https://github.com/azat)). +* Исправлен сбой: если при попытке удалить временный файл (они используются для выгрузки временных данных на диск) в деструкторе выбрасывается исключение, программа могла аварийно завершиться. [#80776](https://github.com/ClickHouse/ClickHouse/pull/80776) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлен модификатор `IF EXISTS` к `SYSTEM SYNC REPLICA`. [#80810](https://github.com/ClickHouse/ClickHouse/pull/80810) ([Raúl Marín](https://github.com/Algunenano)). +* Расширено сообщение об исключении "Having zero bytes, but read range is not finished...", в `system.filesystem_cache` добавлен столбец finished_download_time. [#80849](https://github.com/ClickHouse/ClickHouse/pull/80849) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Добавлен раздел с информацией об алгоритме поиска в вывод `EXPLAIN` при использовании параметра indexes = 1. В нём отображается либо "binary search", либо "generic exclusion search". [#80881](https://github.com/ClickHouse/ClickHouse/pull/80881) ([Pablo Marcos](https://github.com/pamarcos)). +* В начале 2024 года для обработчика MySQL параметр `prefer_column_name_to_alias` был жестко зафиксирован в значении true, так как новый анализатор по умолчанию не был включен. Теперь параметр больше не зафиксирован жестко. [#80916](https://github.com/ClickHouse/ClickHouse/pull/80916) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Теперь `system.iceberg_history` показывает историю для каталогов баз данных, таких как Glue или Iceberg REST. Также в `system.iceberg_history` для единообразия переименованы столбцы `table_name` и `database_name` в `table` и `database`. [#80975](https://github.com/ClickHouse/ClickHouse/pull/80975) ([alesapin](https://github.com/alesapin)). +* Разрешено использование табличной функции `merge` в режиме только для чтения, поэтому для её использования не требуется привилегия `CREATE TEMPORARY TABLE`. [#80981](https://github.com/ClickHouse/ClickHouse/pull/80981) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Улучшено получение информации о кэшах в памяти (данные о кэшах теперь доступны в `system.metrics` вместо неполных `system.asynchronouse_metrics`). В `dashboard.html` добавлен размер кэшей в памяти (в байтах). `VectorSimilarityIndexCacheSize`/`IcebergMetadataFilesCacheSize` переименованы в `VectorSimilarityIndexCacheBytes`/`IcebergMetadataFilesCacheBytes`. [#81023](https://github.com/ClickHouse/ClickHouse/pull/81023) ([Azat Khuzhin](https://github.com/azat)). +* Теперь при чтении из `system.rocksdb` игнорируются базы данных с движками, которые не могут содержать таблицы `RocksDB`. [#81083](https://github.com/ClickHouse/ClickHouse/pull/81083) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* Разрешить `filesystem_caches` и `named_collections` в конфигурационном файле `clickhouse-local`. [#81105](https://github.com/ClickHouse/ClickHouse/pull/81105) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлена подсветка синтаксиса `PARTITION BY` в запросах `INSERT`. В предыдущих версиях `PARTITION BY` не подсвечивалось как ключевое слово. [#81106](https://github.com/ClickHouse/ClickHouse/pull/81106) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Два небольших улучшения в Web-интерфейсе: — корректная обработка запросов без вывода, таких как `CREATE`, `INSERT` (до недавнего времени при выполнении таких запросов индикатор загрузки крутился бесконечно); — при двойном щелчке по таблице выполняется прокрутка к началу. [#81131](https://github.com/ClickHouse/ClickHouse/pull/81131) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Метрика `MemoryResidentWithoutPageCache` показывает объём физической памяти в байтах, используемой серверным процессом, за вычетом кэша страниц в пользовательском пространстве (userspace page cache). Это даёт более точное представление о фактическом использовании памяти при использовании userspace page cache. Когда userspace page cache отключён, это значение равно `MemoryResident`. [#81233](https://github.com/ClickHouse/ClickHouse/pull/81233) ([Jayme Bird](https://github.com/jaymebrd)). +* Помечайте вручную зарегистрированные исключения в клиенте, локальном сервере, клиенте Keeper и приложении для работы с дисками как уже зарегистрированные, чтобы они не протоколировались повторно. [#81271](https://github.com/ClickHouse/ClickHouse/pull/81271) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Параметры `use_skip_indexes_if_final` и `use_skip_indexes_if_final_exact_mode` теперь по умолчанию установлены в `True`. Запросы с модификатором `FINAL` теперь будут использовать пропускающие индексы (если применимо) для предварительного отбора гранул, а также считывать все дополнительные гранулы, соответствующие диапазонам первичных ключей с совпадениями. Пользователи, которым требуется прежнее поведение с приблизительными/неточными результатами, могут установить `use_skip_indexes_if_final_exact_mode` в `False` после тщательной оценки. [#81331](https://github.com/ClickHouse/ClickHouse/pull/81331) ([Shankar Iyer](https://github.com/shankar-iyer)). +* Если в веб-интерфейсе открыто несколько запросов, будет выполнен тот, под которым находится курсор. Продолжение [#80977](https://github.com/ClickHouse/ClickHouse/issues/80977). [#81354](https://github.com/ClickHouse/ClickHouse/pull/81354) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Этот PR устраняет проблемы с реализацией `is_strict` в проверках монотонности функций преобразования. В текущей версии некоторые функции преобразования, такие как `toFloat64(UInt32)` и `toDate(UInt8)`, некорректно возвращают `is_strict` со значением false, когда должны возвращать true. [#81359](https://github.com/ClickHouse/ClickHouse/pull/81359) ([zoomxi](https://github.com/zoomxi)). +* При проверке, соответствует ли `KeyCondition` непрерывному диапазону, если ключ обёрнут цепочкой нестрогих функций, может потребоваться преобразовать `Constraint::POINT` в `Constraint::RANGE`. Например, `toDate(event_time) = '2025-06-03'` задаёт диапазон для `event_time`: ['2025-06-03 00:00:00', '2025-06-04 00:00:00'). Этот PR исправляет это поведение. [#81400](https://github.com/ClickHouse/ClickHouse/pull/81400) ([zoomxi](https://github.com/zoomxi)). +* Псевдонимы `clickhouse`/`ch` будут вызывать `clickhouse-client` вместо `clickhouse-local`, если указаны параметры `--host` или `--port`. Продолжение [#79422](https://github.com/ClickHouse/ClickHouse/issues/79422). Закрывает [#65252](https://github.com/ClickHouse/ClickHouse/issues/65252). [#81509](https://github.com/ClickHouse/ClickHouse/pull/81509) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Теперь, когда у нас есть данные о распределении времени отклика Keeper, мы можем настроить интервалы гистограммы для метрик. [#81516](https://github.com/ClickHouse/ClickHouse/pull/81516) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Добавлено событие профилирования `PageCacheReadBytes`. [#81742](https://github.com/ClickHouse/ClickHouse/pull/81742) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлена логическая ошибка в файловом кэше: «Having zero bytes but range is not finished». [#81868](https://github.com/ClickHouse/ClickHouse/pull/81868) ([Kseniia Sumarokova](https://github.com/kssenii)). + +#### Исправление ошибки (ошибка, проявляющаяся для пользователя, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* Исправлена работа параметризованного представления с запросом SELECT EXCEPT. Закрывает [#49447](https://github.com/ClickHouse/ClickHouse/issues/49447). [#57380](https://github.com/ClickHouse/ClickHouse/pull/57380) ([Nikolay Degterinsky](https://github.com/evillique)). +* Analyzer: Исправлено имя проекции столбца после повышения типа столбца в JOIN. Закрывает [#63345](https://github.com/ClickHouse/ClickHouse/issues/63345). [#63519](https://github.com/ClickHouse/ClickHouse/pull/63519) ([Dmitry Novik](https://github.com/novikd)). +* Исправлена логическая ошибка при конфликте имён столбцов, когда включён analyzer_compatibility_join_using_top_level_identifier. [#75676](https://github.com/ClickHouse/ClickHouse/pull/75676) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Исправлено некорректное использование CTE в проталкиваемых предикатах при включённой настройке `allow_push_predicate_ast_for_distributed_subqueries`. Исправляет [#75647](https://github.com/ClickHouse/ClickHouse/issues/75647). Исправляет [#79672](https://github.com/ClickHouse/ClickHouse/issues/79672). [#77316](https://github.com/ClickHouse/ClickHouse/pull/77316) ([Dmitry Novik](https://github.com/novikd)). +* Исправлена проблема, при которой SYSTEM SYNC REPLICA LIGHTWEIGHT 'foo' сообщала об успешном выполнении, даже если указанная реплика не существовала. Теперь команда корректно проверяет наличие реплики в Keeper перед попыткой синхронизации. [#78405](https://github.com/ClickHouse/ClickHouse/pull/78405) ([Jayme Bird](https://github.com/jaymebrd)). +* Исправлен сбой в очень специфическом случае, когда функция `currentDatabase` использовалась в секциях `CONSTRAINT` в запросах с `ON CLUSTER`. Закрывает [#78100](https://github.com/ClickHouse/ClickHouse/issues/78100). [#79070](https://github.com/ClickHouse/ClickHouse/pull/79070) ([pufit](https://github.com/pufit)). +* Исправлена передача внешних ролей в межсерверных запросах. [#79099](https://github.com/ClickHouse/ClickHouse/pull/79099) ([Andrey Zvonov](https://github.com/zvonand)). +* Теперь используется IColumn вместо Field в SingleValueDataGeneric, что исправляет некорректные значения, возвращаемые некоторыми агрегатными функциями (например, `argMax`) для типов `Dynamic/Variant/JSON`. [#79166](https://github.com/ClickHouse/ClickHouse/pull/79166) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлено применение настроек `use_native_copy` и `allow_azure_native_copy` для Azure Blob Storage и изменено поведение: нативное копирование теперь используется только при совпадении учетных данных, что исправляет [#78964](https://github.com/ClickHouse/ClickHouse/issues/78964). [#79561](https://github.com/ClickHouse/ClickHouse/pull/79561) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). +* Исправлены логические ошибки, связанные с неизвестной областью происхождения столбца, возникающие при проверке, коррелирован ли этот столбец. Исправляет [#78183](https://github.com/ClickHouse/ClickHouse/issues/78183). Исправляет [#79451](https://github.com/ClickHouse/ClickHouse/issues/79451). [#79727](https://github.com/ClickHouse/ClickHouse/pull/79727) ([Dmitry Novik](https://github.com/novikd)). +* Исправлены некорректные результаты для grouping sets при использовании ColumnConst и Analyzer. [#79743](https://github.com/ClickHouse/ClickHouse/pull/79743) ([Andrey Zvonov](https://github.com/zvonand)). +* Исправлено дублирование результатов локального сегмента при чтении из distributed таблицы, если локальная реплика устарела. [#79761](https://github.com/ClickHouse/ClickHouse/pull/79761) ([Eduard Karacharov](https://github.com/korowa)). +* Исправлен порядок сортировки NaN с отрицательным битом знака. [#79847](https://github.com/ClickHouse/ClickHouse/pull/79847) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* Теперь оператор GROUP BY ALL больше не учитывает часть GROUPING. [#79915](https://github.com/ClickHouse/ClickHouse/pull/79915) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Исправлено некорректное объединение состояний для функций `TopK` / `TopKWeighted`, которое приводило к слишком большим значениям ошибки, даже если емкость еще не была исчерпана. [#79939](https://github.com/ClickHouse/ClickHouse/pull/79939) ([Joel Höner](https://github.com/athre0z)). +* Теперь учитывается настройка `readonly` в объектном хранилище `azure_blob_storage`. [#79954](https://github.com/ClickHouse/ClickHouse/pull/79954) ([Julia Kartseva](https://github.com/jkartseva)). +* Исправлены некорректные результаты выполнения запросов и аварийные завершения по нехватке памяти при использовании `match(column, '^…')` с символами, экранированными обратной косой чертой. [#79969](https://github.com/ClickHouse/ClickHouse/pull/79969) ([filimonov](https://github.com/filimonov)). +* Отключено разбиение на партиции в стиле Hive для озёр данных. Частично устраняет [https://github.com/issues/assigned?issue=ClickHouse%7CClickHouse%7C79937](https://github.com/issues/assigned?issue=ClickHouse%7CClickHouse%7C79937). [#80005](https://github.com/ClickHouse/ClickHouse/pull/80005) ([Daniil Ivanik](https://github.com/divanik)). +* Индексы пропуска с lambda-выражениями не применялись. Исправлен случай, когда при точном совпадении функций верхнего уровня в определении индекса и в запросе индекс всё равно не использовался. [#80025](https://github.com/ClickHouse/ClickHouse/pull/80025) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлена версия метаданных во время присоединения парта на реплике, выполняющей команду ATTACH_PART из журнала репликации. [#80038](https://github.com/ClickHouse/ClickHouse/pull/80038) ([Aleksei Filatov](https://github.com/aalexfvk)). +* Имена Executable User Defined Functions (eUDF) не добавляются в столбец `used_functions` в таблице `system.query_log`, в отличие от других функций. Этот PR реализует добавление имени eUDF, если она была использована в запросе. [#80073](https://github.com/ClickHouse/ClickHouse/pull/80073) ([Kyamran](https://github.com/nibblerenush)). +* Исправлена логическая ошибка в формате Arrow при использовании LowCardinality(FixedString). [#80156](https://github.com/ClickHouse/ClickHouse/pull/80156) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлено чтение подстолбцов движка Merge. [#80158](https://github.com/ClickHouse/ClickHouse/pull/80158) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена ошибка при сравнении числовых типов в `KeyCondition`. [#80207](https://github.com/ClickHouse/ClickHouse/pull/80207) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Исправлена ошибка AMBIGUOUS_COLUMN_NAME при использовании ленивой материализации для таблицы с проекциями. [#80251](https://github.com/ClickHouse/ClickHouse/pull/80251) ([Igor Nikonov](https://github.com/devcrafter)). +* Исправлена некорректная оптимизация агрегатной функции `count` для фильтров по строковым префиксам вида LIKE 'ab_c%' при использовании неявных проекций. Это исправляет [#80250](https://github.com/ClickHouse/ClickHouse/issues/80250). [#80261](https://github.com/ClickHouse/ClickHouse/pull/80261) ([Amos Bird](https://github.com/amosbird)). +* Исправлена некорректная сериализация вложенных числовых полей в виде строк в документах MongoDB. Убран предел максимальной глубины документов MongoDB. [#80289](https://github.com/ClickHouse/ClickHouse/pull/80289) ([Kirill Nikiforov](https://github.com/allmazz)). +* Выполняются менее строгие проверки метаданных для RMT в базе данных `Replicated`. Закрывает [#80296](https://github.com/ClickHouse/ClickHouse/issues/80296). [#80298](https://github.com/ClickHouse/ClickHouse/pull/80298) ([Nikolay Degterinsky](https://github.com/evillique)). +* Исправлено текстовое представление типов DateTime и DateTime64 при хранении в PostgreSQL. [#80301](https://github.com/ClickHouse/ClickHouse/pull/80301) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Разрешено использование `DateTime` с часовым поясом в таблицах `StripeLog`. Закрывает [#44120](https://github.com/ClickHouse/ClickHouse/issues/44120). [#80304](https://github.com/ClickHouse/ClickHouse/pull/80304) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Отключено проталкивание фильтра для предиката с недетерминированной функцией, если шаг плана запроса изменяет количество строк. Исправлена [#40273](https://github.com/ClickHouse/ClickHouse/issues/40273). [#80329](https://github.com/ClickHouse/ClickHouse/pull/80329) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлены возможные логические ошибки и сбои в проекциях с подстолбцами. [#80333](https://github.com/ClickHouse/ClickHouse/pull/80333) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена ошибка `NOT_FOUND_COLUMN_IN_BLOCK`, возникавшая из-за оптимизации проталкивания фильтра (filter-push-down) на этапе логического JOIN в случае, когда условие `ON` не является тривиальным равенством. Исправляет [#79647](https://github.com/ClickHouse/ClickHouse/issues/79647) и [#77848](https://github.com/ClickHouse/ClickHouse/issues/77848). [#80360](https://github.com/ClickHouse/ClickHouse/pull/80360) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлен некорректный результат при чтении ключей в обратном порядке в партиционированных таблицах. Это исправляет [#79987](https://github.com/ClickHouse/ClickHouse/issues/79987). [#80448](https://github.com/ClickHouse/ClickHouse/pull/80448) ([Amos Bird](https://github.com/amosbird)). +* Исправлена некорректная сортировка в таблицах с Nullable-ключом при включённом параметре optimize_read_in_order. [#80515](https://github.com/ClickHouse/ClickHouse/pull/80515) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* Исправлена проблема, из-за которой операция DROP refreshable materialized view зависала, если представление было приостановлено с помощью SYSTEM STOP REPLICATED VIEW. [#80543](https://github.com/ClickHouse/ClickHouse/pull/80543) ([Michael Kolupaev](https://github.com/al13n321)). +* Исправлена ошибка 'Cannot find column', возникавшая при использовании константного кортежа в распределённом запросе. [#80596](https://github.com/ClickHouse/ClickHouse/pull/80596) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Исправлена функция `shardNum` в distributed таблицах при использовании `join_use_nulls`. [#80612](https://github.com/ClickHouse/ClickHouse/pull/80612) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Исправлена ошибка некорректного результата при чтении столбца, который присутствует только в части таблиц движка Merge. [#80643](https://github.com/ClickHouse/ClickHouse/pull/80643) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена потенциальная проблема с протоколом SSH (из-за зависания в replxx). [#80688](https://github.com/ClickHouse/ClickHouse/pull/80688) ([Azat Khuzhin](https://github.com/azat)). +* Метка времени в таблице iceberg_history теперь корректна. [#80711](https://github.com/ClickHouse/ClickHouse/pull/80711) ([Melvyn Peignon](https://github.com/melvynator)). +* Исправлен потенциальный краш при неудачной регистрации словаря (когда `CREATE DICTIONARY` завершался с ошибкой `CANNOT_SCHEDULE_TASK`, в реестре словарей мог оставаться висячий указатель, что впоследствии могло приводить к аварийному завершению работы). [#80714](https://github.com/ClickHouse/ClickHouse/pull/80714) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена обработка glob-шаблонов перечислений с одним элементом в табличных функциях для объектного хранилища. [#80716](https://github.com/ClickHouse/ClickHouse/pull/80716) ([Konstantин Богданов](https://github.com/thevar1able)). +* Исправлен неверный тип результата функций сравнения для Tuple(Dynamic) и String, который приводил к логической ошибке. [#80728](https://github.com/ClickHouse/ClickHouse/pull/80728) ([Pavel Kruglov](https://github.com/Avogar)). +* Добавлена недостающая поддержка типа данных `timestamp_ntz` в Unity Catalog. Исправлены [#79535](https://github.com/ClickHouse/ClickHouse/issues/79535), [#79875](https://github.com/ClickHouse/ClickHouse/issues/79875). [#80740](https://github.com/ClickHouse/ClickHouse/pull/80740) ([alesapin](https://github.com/alesapin)). +* Исправлена ошибка `THERE_IS_NO_COLUMN` в распределённых запросах с `IN cte`. Исправляет [#75032](https://github.com/ClickHouse/ClickHouse/issues/75032). [#80757](https://github.com/ClickHouse/ClickHouse/pull/80757) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлена проблема, из-за которой при внешнем ORDER BY создавалось слишком много файлов, что приводило к чрезмерному потреблению памяти. [#80777](https://github.com/ClickHouse/ClickHouse/pull/80777) ([Azat Khuzhin](https://github.com/azat)). +* Этот PR может закрыть [#80742](https://github.com/ClickHouse/ClickHouse/issues/80742). [#80783](https://github.com/ClickHouse/ClickHouse/pull/80783) ([zoomxi](https://github.com/zoomxi)). +* Исправлен сбой Kafka из-за того, что get_member_id() создавал std::string из NULL (это, вероятно, проявлялось только в случае неудачного подключения к брокеру). [#80793](https://github.com/ClickHouse/ClickHouse/pull/80793) ([Azat Khuzhin](https://github.com/azat)). +* Корректно дожидаться завершения работы потребителей перед остановкой движка Kafka (активные потребители после остановки могут приводить к срабатыванию различных отладочных assert-проверок, а также продолжать считывать данные с брокеров в фоновом режиме после удаления/отсоединения таблицы). [#80795](https://github.com/ClickHouse/ClickHouse/pull/80795) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена ошибка `NOT_FOUND_COLUMN_IN_BLOCK`, вызываемая оптимизацией `predicate-push-down`. Исправление для [#80443](https://github.com/ClickHouse/ClickHouse/issues/80443). [#80834](https://github.com/ClickHouse/ClickHouse/pull/80834) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлена логическая ошибка при обработке шаблона звёздочки (*) в табличной функции при использовании JOIN с USING. [#80894](https://github.com/ClickHouse/ClickHouse/pull/80894) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Исправлен учет памяти для кеша файлов метаданных Iceberg. [#80904](https://github.com/ClickHouse/ClickHouse/pull/80904) ([Azat Khuzhin](https://github.com/azat)). +* Исправлено некорректное разбиение на партиции с Nullable-ключом партиции. [#80913](https://github.com/ClickHouse/ClickHouse/pull/80913) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* Исправлена ошибка `Table does not exist` для распределённых запросов с проталкиванием предиката (`allow_push_predicate_ast_for_distributed_subqueries=1`), возникавшая, когда исходная таблица отсутствовала на инициаторе. Исправляет [#77281](https://github.com/ClickHouse/ClickHouse/issues/77281). [#80915](https://github.com/ClickHouse/ClickHouse/pull/80915) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлена логическая ошибка во вложенных функциях, использующих именованные окна. [#80926](https://github.com/ClickHouse/ClickHouse/pull/80926) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* Исправлены экстремумы для столбцов Nullable и с плавающей запятой. [#80970](https://github.com/ClickHouse/ClickHouse/pull/80970) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* Исправлен возможный сбой при выполнении запросов к system.tables, который, вероятнее всего, возникал в условиях нехватки памяти. [#80976](https://github.com/ClickHouse/ClickHouse/pull/80976) ([Azat Khuzhin](https://github.com/azat)). +* Исправлено атомарное переименование с усечением для файлов, тип сжатия которых определяется по их расширению. [#80979](https://github.com/ClickHouse/ClickHouse/pull/80979) ([Pablo Marcos](https://github.com/pamarcos)). +* Исправлен метод `ErrorCodes::getName`. [#81032](https://github.com/ClickHouse/ClickHouse/pull/81032) ([RinChanNOW](https://github.com/RinChanNOWWW)). +* Исправлена ошибка, из-за которой пользователь не мог получить список таблиц в Unity Catalog без прав на каждую из них. Теперь все таблицы корректно перечисляются, а попытка чтения из таблицы с ограниченным доступом вызовет исключение. [#81044](https://github.com/ClickHouse/ClickHouse/pull/81044) ([alesapin](https://github.com/alesapin)). +* Теперь ClickHouse будет игнорировать ошибки и неожиданные ответы от каталогов озёр данных в запросе `SHOW TABLES`. Исправлена проблема [#79725](https://github.com/ClickHouse/ClickHouse/issues/79725). [#81046](https://github.com/ClickHouse/ClickHouse/pull/81046) ([alesapin](https://github.com/alesapin)). +* Исправлен разбор `DateTime64` из целочисленных значений в `JSONExtract` и при разборе значений типа `JSON`. [#81050](https://github.com/ClickHouse/ClickHouse/pull/81050) ([Pavel Kruglov](https://github.com/Avogar)). +* Учитывать настройку date_time_input_format в кэше вывода схемы. [#81052](https://github.com/ClickHouse/ClickHouse/pull/81052) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлено аварийное завершение при выполнении INSERT, если таблица была удалена (DROP) после начала выполнения запроса, но до отправки столбцов. [#81053](https://github.com/ClickHouse/ClickHouse/pull/81053) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена ошибка использования неинициализированного значения в quantileDeterministic. [#81062](https://github.com/ClickHouse/ClickHouse/pull/81062) ([Azat Khuzhin](https://github.com/azat)). +* Исправлено управление счётчиком жёстких ссылок для транзакций диска metadatastoragefromdisk. Добавлены тесты. [#81066](https://github.com/ClickHouse/ClickHouse/pull/81066) ([Sema Checherinda](https://github.com/CheSema)). +* Имена пользовательских функций (UDF) не добавлялись в таблицу `system.query_log` в отличие от других функций. В этом pull request реализовано добавление имени UDF в один из двух столбцов `used_executable_user_defined_functions` или `used_sql_user_defined_functions`, если эта функция была использована в запросе. [#81101](https://github.com/ClickHouse/ClickHouse/pull/81101) ([Kyamran](https://github.com/nibblerenush)). +* Исправлены ошибки `Too large size ... passed to allocator` и возможные аварийные остановки при вставках по протоколу HTTP в текстовых форматах (`JSON`, `Values`, ...) с пропущенными полями `Enum`. [#81145](https://github.com/ClickHouse/ClickHouse/pull/81145) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлена ошибка LOGICAL_ERROR, возникавшая при разреженном столбце в блоке INSERT, отправляемом в немногопоточное материализованное представление (non-MT MV). [#81161](https://github.com/ClickHouse/ClickHouse/pull/81161) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена ошибка `Unknown table expression identifier` для `distributed_product_mode_local=local` при использовании кросс-репликации. [#81162](https://github.com/ClickHouse/ClickHouse/pull/81162) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлена ошибка некорректного кэширования количества строк в файлах Parquet после фильтрации. [#81184](https://github.com/ClickHouse/ClickHouse/pull/81184) ([Michael Kolupaev](https://github.com/al13n321)). +* Исправлена настройка fs cache max_size_to_total_space при использовании относительного пути к кэшу. [#81237](https://github.com/ClickHouse/ClickHouse/pull/81237) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлена ошибка, приводившая к аварийному завершению работы clickhouse-local при выводе константных кортежей или отображений в формате Parquet. [#81249](https://github.com/ClickHouse/ClickHouse/pull/81249) ([Michael Kolupaev](https://github.com/al13n321)). +* Проверять смещения массивов, получаемые по сети. [#81269](https://github.com/ClickHouse/ClickHouse/pull/81269) ([Azat Khuzhin](https://github.com/azat)). +* Исправлен пограничный случай в запросе, который выполняет соединение пустых таблиц и использует оконные функции. Ошибка приводила к взрывному росту числа параллельных потоков и, как следствие, к ошибкам OOM. [#81299](https://github.com/ClickHouse/ClickHouse/pull/81299) ([Alexander Gololobov](https://github.com/davenger)). +* Исправления для кластерных функций озер данных (`deltaLakeCluster`, `icebergCluster` и т. д.): (1) исправлен потенциальный segfault в `DataLakeConfiguration` при использовании функции `Cluster` со старым анализатором; (2) удалены дублирующиеся обновления метаданных озер данных (избыточные запросы к объектному хранилищу); (3) устранено избыточное перечисление объектов (listing) в объектном хранилище, когда формат явно не указан (что уже было сделано для некластерных движков озер данных). [#81300](https://github.com/ClickHouse/ClickHouse/pull/81300) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Флаг force_restore_data теперь восстанавливает потерянные метаданные Keeper. [#81324](https://github.com/ClickHouse/ClickHouse/pull/81324) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена ошибка региона в delta-kernel. Исправляет проблему [#79914](https://github.com/ClickHouse/ClickHouse/issues/79914). [#81353](https://github.com/ClickHouse/ClickHouse/pull/81353) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Отключен некорректный JIT для divideOrNull. [#81370](https://github.com/ClickHouse/ClickHouse/pull/81370) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена ошибка вставки, возникающая, когда у таблицы MergeTree слишком длинное имя столбца партиции. [#81390](https://github.com/ClickHouse/ClickHouse/pull/81390) ([hy123q](https://github.com/haoyangqian)). +* Бэкпортировано в [#81957](https://github.com/ClickHouse/ClickHouse/issues/81957): Исправлен возможный сбой в `Aggregator` в случае возникновения исключения при слиянии. [#81450](https://github.com/ClickHouse/ClickHouse/pull/81450) ([Nikita Taranov](https://github.com/nickitat)). +* Не хранить в памяти содержимое нескольких файлов манифестов. [#81470](https://github.com/ClickHouse/ClickHouse/pull/81470) ([Daniil Ivanik](https://github.com/divanik)). +* Исправлено возможное аварийное завершение работы при остановке фоновых пулов (`background_.*pool_size`). [#81473](https://github.com/ClickHouse/ClickHouse/pull/81473) ([Azat Khuzhin](https://github.com/azat)). +* Исправлено чтение за пределами допустимой области памяти в формате `Npy`, возникающее при записи в таблицу с движком `URL`. Это закрывает [#81356](https://github.com/ClickHouse/ClickHouse/issues/81356). [#81502](https://github.com/ClickHouse/ClickHouse/pull/81502) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Иногда Web UI может отображать `NaN%` (типичные проблемы JavaScript). [#81507](https://github.com/ClickHouse/ClickHouse/pull/81507) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлена работа `DatabaseReplicated` при `database_replicated_enforce_synchronous_settings=1`. [#81564](https://github.com/ClickHouse/ClickHouse/pull/81564) ([Azat Khuzhin](https://github.com/azat)). +* Исправлен порядок сортировки типов LowCardinality(Nullable(...)). [#81583](https://github.com/ClickHouse/ClickHouse/pull/81583) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* Сервер не должен оставлять HTTP‑соединение открытым, если запрос не был полностью считан из сокета. [#81595](https://github.com/ClickHouse/ClickHouse/pull/81595) ([Sema Checherinda](https://github.com/CheSema)). +* Сделано так, что скалярные коррелированные подзапросы возвращают результат типа Nullable от выражения проекции. Исправлен случай, когда коррелированный подзапрос возвращал пустой набор результатов. [#81632](https://github.com/ClickHouse/ClickHouse/pull/81632) ([Dmitry Novik](https://github.com/novikd)). +* Исправлена ошибка `Unexpected relative path for a deduplicated part` при выполнении операции `ATTACH` к таблице `ReplicatedMergeTree`. [#81647](https://github.com/ClickHouse/ClickHouse/pull/81647) ([Azat Khuzhin](https://github.com/azat)). +* Настройка запроса `use_iceberg_partition_pruning` не будет применяться для хранилища Iceberg, так как в нём используется глобальный контекст, а не контекст запроса. Это не критично, поскольку её значение по умолчанию равно true. Этот PR исправляет проблему. [#81673](https://github.com/ClickHouse/ClickHouse/pull/81673) ([Han Fei](https://github.com/hanfei1991)). +* Бэкпортировано в [#82128](https://github.com/ClickHouse/ClickHouse/issues/82128): исправлена ошибка «Context has expired» во время слияний при использовании словаря в выражении TTL. [#81690](https://github.com/ClickHouse/ClickHouse/pull/81690) ([Azat Khuzhin](https://github.com/azat)). +* Добавлена валидация настройки mergetree `merge_max_block_size`, чтобы гарантировать, что её значение не равно нулю. [#81693](https://github.com/ClickHouse/ClickHouse/pull/81693) ([Bharat Nallan](https://github.com/bharatnc)). +* Исправлены проблемы в `clickhouse-local`, связанные с зависавшими запросами `DROP VIEW `. [#81705](https://github.com/ClickHouse/ClickHouse/pull/81705) ([Bharat Nallan](https://github.com/bharatnc)). +* Исправлено выполнение `JOIN` в `StorageRedis` в некоторых случаях. [#81736](https://github.com/ClickHouse/ClickHouse/pull/81736) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* Исправлен сбой в `ConcurrentHashJoin` при пустом `USING ()` и включенном старом анализаторе. [#81754](https://github.com/ClickHouse/ClickHouse/pull/81754) ([Nikita Taranov](https://github.com/nickitat)). +* Исправление в Keeper: блокировать фиксацию новых записей лога, если в логе есть некорректная запись. Ранее, если лидер некорректно применял некоторые записи лога, он продолжал фиксировать новые записи, хотя фолловер обнаруживал несоответствие дайджеста и аварийно завершал работу. [#81780](https://github.com/ClickHouse/ClickHouse/pull/81780) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлена ошибка, при которой требуемые столбцы не читались при обработке скалярных коррелированных подзапросов. Исправляет [#81716](https://github.com/ClickHouse/ClickHouse/issues/81716). [#81805](https://github.com/ClickHouse/ClickHouse/pull/81805) ([Dmitry Novik](https://github.com/novikd)). +* Кто‑то засорил наш код Kusto. Почистил. Это закрывает [#81643](https://github.com/ClickHouse/ClickHouse/issues/81643). [#81885](https://github.com/ClickHouse/ClickHouse/pull/81885) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* В предыдущих версиях сервер возвращал лишнее содержимое для запросов к `/js`. Это исправляет [#61890](https://github.com/ClickHouse/ClickHouse/issues/61890). [#81895](https://github.com/ClickHouse/ClickHouse/pull/81895) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Ранее определения движка таблицы `MongoDB` могли включать компонент пути в аргументе `host:port`, который просто игнорировался. Интеграция с `MongoDB` отказывалась загружать таблицы с такими определениями. С этим исправлением *теперь допускается загрузка таких таблиц и компонент пути игнорируется*, если у движка `MongoDB` пять аргументов, при этом используется имя базы данных из аргументов. *Примечание:* Исправление не применяется для вновь создаваемых таблиц или запросов с табличной функцией `mongo`, а также для источников словарей и именованных коллекций. [#81942](https://github.com/ClickHouse/ClickHouse/pull/81942) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Исправлено возможное аварийное завершение работы `Aggregator` при возникновении исключения во время слияния. [#82022](https://github.com/ClickHouse/ClickHouse/pull/82022) ([Nikita Taranov](https://github.com/nickitat)). +* Исправлена ошибка, допущенная при копировании и вставке кода в `arraySimilarity`; запрещено использование весов типов `UInt32` и `Int32`. Обновлены тесты и документация. [#82103](https://github.com/ClickHouse/ClickHouse/pull/82103) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Устранено возможное состояние гонки между потоком подсказок и основным клиентским потоком. [#82233](https://github.com/ClickHouse/ClickHouse/pull/82233) ([Azat Khuzhin](https://github.com/azat)). + +#### Улучшения в области сборки, тестирования и упаковки {#buildtestingpackaging-improvement} + +* Используется `postgres` версии 16.9. [#81437](https://github.com/ClickHouse/ClickHouse/pull/81437) ([Konstantин Bogданов](https://github.com/thevar1able)). +* Обновлён `openssl` до версии 3.2.4. [#81438](https://github.com/ClickHouse/ClickHouse/pull/81438) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Используем `abseil-cpp` от 2025-01-27. [#81440](https://github.com/ClickHouse/ClickHouse/pull/81440) ([Konstantin Bogdanов](https://github.com/thevar1able)). +* Используется `mongo-c-driver` версии 1.30.4. [#81449](https://github.com/ClickHouse/ClickHouse/pull/81449) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Используется `krb5` версии 1.21.3-final. [#81453](https://github.com/ClickHouse/ClickHouse/pull/81453) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Используется `orc` версии 2.1.2. [#81455](https://github.com/ClickHouse/ClickHouse/pull/81455) ([Konstantин Bogdanov](https://github.com/thevar1able)). +* Используйте `grpc` 1.73.0. [#81629](https://github.com/ClickHouse/ClickHouse/pull/81629) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Теперь используется `delta-kernel-rs` v0.12.1. [#81707](https://github.com/ClickHouse/ClickHouse/pull/81707) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Обновлён компонент `c-ares` до версии `v1.34.5`. [#81159](https://github.com/ClickHouse/ClickHouse/pull/81159) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Обновите `curl` до версии 8.14 для устранения уязвимостей CVE-2025-5025 и CVE-2025-4947. [#81171](https://github.com/ClickHouse/ClickHouse/pull/81171) ([larryluogit](https://github.com/larryluogit)). +* Обновлен `libarchive` до версии 3.7.9 для устранения уязвимостей CVE-2024-20696 CVE-2025-25724 CVE-2024-48958 CVE-2024-57970 CVE-2025-1632 CVE-2024-48957 CVE-2024-48615. [#81174](https://github.com/ClickHouse/ClickHouse/pull/81174) ([larryluogit](https://github.com/larryluogit)). +* Обновлена `libxml2` до 2.14.3. [#81187](https://github.com/ClickHouse/ClickHouse/pull/81187) ([larryluogit](https://github.com/larryluogit)). +* Не копировать поставляемые (vendored) исходники Rust в `CARGO_HOME`. [#79560](https://github.com/ClickHouse/ClickHouse/pull/79560) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Удалена зависимость от библиотеки Sentry путём её замены на наш собственный endpoint. [#80236](https://github.com/ClickHouse/ClickHouse/pull/80236) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Обновлены зависимости Python в CI-образах для устранения уведомлений Dependabot. [#80658](https://github.com/ClickHouse/ClickHouse/pull/80658) ([Raúl Marín](https://github.com/Algunenano)). +* При запуске повторно считывать флаг остановки replicated DDL из Keeper, чтобы сделать тесты более надёжными при включённой инъекции сбоев в Keeper. [#80964](https://github.com/ClickHouse/ClickHouse/pull/80964) ([Alexander Gololobov](https://github.com/davenger)). +* Использовать HTTPS для URL архива Ubuntu. [#81016](https://github.com/ClickHouse/ClickHouse/pull/81016) ([Raúl Marín](https://github.com/Algunenano)). +* Обновлены зависимости Python в тестовых образах. [#81042](https://github.com/ClickHouse/ClickHouse/pull/81042) ([dependabot[bot]](https://github.com/apps/dependabot)). +* Добавлен `flake.nix` для сборок Nix. [#81463](https://github.com/ClickHouse/ClickHouse/pull/81463) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Устранена необходимость доступа к сети при сборке `delta-kernel-rs`. Закрывает [#80609](https://github.com/ClickHouse/ClickHouse/issues/80609). [#81602](https://github.com/ClickHouse/ClickHouse/pull/81602) ([Konstantin Bogdanov](https://github.com/thevar1able)). Прочтите статью [Год Rust в ClickHouse](https://clickhouse.com/blog/rust). + +### Релиз ClickHouse 25.5 от 22.05.2025 {#255} + +#### Обратные несовместимые изменения {#backward-incompatible-change} + +* Функция `geoToH3` теперь принимает аргументы в порядке (lat, lon, res) (что соответствует другим геометрическим функциям). Пользователи, которые хотят сохранить прежний порядок аргументов (lon, lat, res), могут установить настройку `geotoh3_argument_order = 'lon_lat'`. [#78852](https://github.com/ClickHouse/ClickHouse/pull/78852) ([Pratima Patel](https://github.com/pratimapatel2008)). +* Добавлена настройка кэша файловой системы `allow_dynamic_cache_resize` (по умолчанию `false`), которая позволяет динамически изменять размер кэша файловой системы. Причина: в некоторых средах (ClickHouse Cloud) все события масштабирования происходят через перезапуск процесса, и мы хотим, чтобы эта возможность была явно выключена для большего контроля над поведением, а также по соображениям безопасности. Этот PR помечен как обратно несовместимое изменение, поскольку в старых версиях динамическое изменение размера кэша работало по умолчанию без специальной настройки. [#79148](https://github.com/ClickHouse/ClickHouse/pull/79148) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Удалена поддержка устаревших типов индексов `annoy` и `usearch`. Оба уже длительное время являлись заглушками, то есть любая попытка использовать эти устаревшие индексы и так приводила к ошибке. Если у вас всё ещё есть индексы `annoy` и `usearch`, пожалуйста, удалите их. [#79802](https://github.com/ClickHouse/ClickHouse/pull/79802) ([Robert Schulze](https://github.com/rschu1ze)). +* Удалена серверная настройка `format_alter_commands_with_parentheses`. Настройка была добавлена и по умолчанию отключена в 24.2. По умолчанию она была включена в 25.2. Так как нет LTS-версий, которые не поддерживают новый формат, мы можем удалить эту настройку. [#79970](https://github.com/ClickHouse/ClickHouse/pull/79970) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* По умолчанию включена реализация хранилища `DeltaLake` на основе `delta-kernel-rs`. [#79541](https://github.com/ClickHouse/ClickHouse/pull/79541) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Если чтение из `URL` включает несколько перенаправлений, настройка `enable_url_encoding` корректно применяется ко всем перенаправлениям в цепочке. [#79563](https://github.com/ClickHouse/ClickHouse/pull/79563) ([Shankar Iyer](https://github.com/shankar-iyer)). Значение по умолчанию настройки `enble_url_encoding` теперь равно `false`. [#80088](https://github.com/ClickHouse/ClickHouse/pull/80088) ([Shankar Iyer](https://github.com/shankar-iyer)). + +#### Новые возможности {#new-feature} + +* Добавлена поддержка скалярных коррелированных подзапросов в предложении WHERE. Закрывает [#6697](https://github.com/ClickHouse/ClickHouse/issues/6697). [#79600](https://github.com/ClickHouse/ClickHouse/pull/79600) ([Dmitry Novik](https://github.com/novikd)). Добавлена поддержка коррелированных подзапросов в списке проекций для простых случаев. [#79925](https://github.com/ClickHouse/ClickHouse/pull/79925) ([Dmitry Novik](https://github.com/novikd)). [#76078](https://github.com/ClickHouse/ClickHouse/pull/76078) ([Dmitry Novik](https://github.com/novikd)). Теперь это покрывает 100% набора тестов TPC-H. +* Векторный поиск с использованием индекса векторного сходства теперь находится в статусе beta (ранее — experimental). [#80164](https://github.com/ClickHouse/ClickHouse/pull/80164) ([Robert Schulze](https://github.com/rschu1ze)). +* Добавлена поддержка геометрических типов данных в формате `Parquet`. Это закрывает [#75317](https://github.com/ClickHouse/ClickHouse/issues/75317). [#79777](https://github.com/ClickHouse/ClickHouse/pull/79777) ([scanhex12](https://github.com/scanhex12)). +* Новые функции `sparseGrams`, `sparseGramsHashes`, `sparseGramsHashesUTF8`, `sparseGramsUTF8` для вычисления «sparse-ngrams» — робастного алгоритма извлечения подстрок для индексирования и поиска. [#79517](https://github.com/ClickHouse/ClickHouse/pull/79517) ([scanhex12](https://github.com/scanhex12)). +* `clickhouse-local` (и его сокращённый псевдоним `ch`) теперь неявно используют `FROM table`, когда есть входные данные для обработки. Это закрывает [#65023](https://github.com/ClickHouse/ClickHouse/issues/65023). Также во `clickhouse-local` включено автоопределение формата, если не указан `--input-format` и обрабатывается обычный файл. [#79085](https://github.com/ClickHouse/ClickHouse/pull/79085) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлены функции `stringBytesUniq` и `stringBytesEntropy` для поиска потенциально случайных или зашифрованных данных. [#79350](https://github.com/ClickHouse/ClickHouse/pull/79350) ([Sachin Kumar Singh](https://github.com/sachinkumarsingh092)). +* Добавлены функции кодирования и декодирования Base32. [#79809](https://github.com/ClickHouse/ClickHouse/pull/79809) ([Joanna Hulboj](https://github.com/jh0x)). +* Добавлены функции `getServerSetting` и `getMergeTreeSetting`. Закрыт #78318. [#78439](https://github.com/ClickHouse/ClickHouse/pull/78439) ([NamNguyenHoai](https://github.com/NamHoaiNguyen)). +* Добавлена новая настройка `iceberg_enable_version_hint` для использования файла `version-hint.text`. [#78594](https://github.com/ClickHouse/ClickHouse/pull/78594) ([Arnaud Briche](https://github.com/arnaudbriche)). +* Добавлена возможность выполнять TRUNCATE отдельных таблиц в базе данных, отфильтрованных с помощью ключевого слова `LIKE`. [#78597](https://github.com/ClickHouse/ClickHouse/pull/78597) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Поддерживается виртуальный столбец `_part_starting_offset` в таблицах семейства `MergeTree`. Этот столбец представляет собой накопительное количество строк по всем предшествующим частям, вычисляемое во время выполнения запроса на основе текущего списка частей. Накопительные значения сохраняются на протяжении всего выполнения запроса и остаются актуальными даже после отсечения частей. Связанная внутренняя логика была переработана для поддержки этого поведения. [#79417](https://github.com/ClickHouse/ClickHouse/pull/79417) ([Amos Bird](https://github.com/amosbird)). +* Добавлены функции `divideOrNull`, `moduloOrNull`, `intDivOrNull`, `positiveModuloOrNull`, которые возвращают NULL при нулевом правом аргументе. [#78276](https://github.com/ClickHouse/ClickHouse/pull/78276) ([kevinyhzou](https://github.com/KevinyhZou)). +* Векторный поиск в ClickHouse теперь поддерживает как предфильтрацию, так и постфильтрацию и предоставляет связанные настройки для более точного управления. (issue [#78161](https://github.com/ClickHouse/ClickHouse/issues/78161)). [#79854](https://github.com/ClickHouse/ClickHouse/pull/79854) ([Shankar Iyer](https://github.com/shankar-iyer)). +* Добавлены функции [`icebergHash`](https://iceberg.apache.org/spec/#appendix-b-32-bit-hash-requirements) и [`icebergBucket`](https://iceberg.apache.org/spec/#bucket-transform-details). Реализована поддержка отсечения файлов данных в таблицах `Iceberg`, партиционированных с помощью [`bucket transfom`](https://iceberg.apache.org/spec/#partitioning). [#79262](https://github.com/ClickHouse/ClickHouse/pull/79262) ([Daniil Ivanik](https://github.com/divanik)). + +#### Экспериментальная функциональность {#experimental-feature} + +* Новые типы данных `Time`/`Time64`: `Time` (HHH:MM:SS) и `Time64` (HHH:MM:SS.`<fractional>`), а также некоторые базовые функции приведения типов и функции для взаимодействия с другими типами данных. Также изменено имя существующей функции с toTime на toTimeWithFixedDate, поскольку функция toTime требуется для функции приведения типов. [#75735](https://github.com/ClickHouse/ClickHouse/pull/75735) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Каталог Hive metastore для Iceberg datalake. [#77677](https://github.com/ClickHouse/ClickHouse/pull/77677) ([scanhex12](https://github.com/scanhex12)). +* Индексы типа `full_text` были переименованы в `gin`. Это соответствует более привычной терминологии PostgreSQL и других баз данных. Существующие индексы типа `full_text` по-прежнему можно загрузить, но при попытке использовать их в поиске они будут выбрасывать исключение (предлагая вместо этого использовать индексы `gin`). [#79024](https://github.com/ClickHouse/ClickHouse/pull/79024) ([Robert Schulze](https://github.com/rschu1ze)). + +#### Повышение производительности {#performance-improvement} + +* Изменён формат Compact-частей для сохранения меток для каждого подпотока, чтобы можно было читать отдельные подстолбцы. Старый формат Compact по‑прежнему поддерживается для чтения и может быть включён для записи с помощью MergeTree-настройки `write_marks_for_substreams_in_compact_parts`. По умолчанию он отключён для более безопасного обновления, так как изменяет способ хранения Compact-частей. В одном из следующих релизов он будет включён по умолчанию. [#77940](https://github.com/ClickHouse/ClickHouse/pull/77940) ([Pavel Kruglov](https://github.com/Avogar)). +* Добавлена возможность выносить условия с подстолбцами в PREWHERE. [#79489](https://github.com/ClickHouse/ClickHouse/pull/79489) ([Pavel Kruglov](https://github.com/Avogar)). +* Ускорена работа вторичных индексов за счёт вычисления их выражений одновременно для нескольких гранул. [#64109](https://github.com/ClickHouse/ClickHouse/pull/64109) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* По умолчанию включена настройка `compile_expressions` (JIT-компилятор для фрагментов обычных выражений). Это закрывает [#51264](https://github.com/ClickHouse/ClickHouse/issues/51264), [#56386](https://github.com/ClickHouse/ClickHouse/issues/56386) и [#66486](https://github.com/ClickHouse/ClickHouse/issues/66486). [#79907](https://github.com/ClickHouse/ClickHouse/pull/79907) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена новая настройка: `use_skip_indexes_in_final_exact_mode`. Если запрос к таблице `ReplacingMergeTree` содержит оператор FINAL, чтение только диапазонов таблицы на основе skip-индексов может приводить к некорректному результату. Эта настройка обеспечивает корректные результаты за счёт сканирования более новых частей, которые пересекаются с диапазонами первичного ключа, возвращёнными skip-индексом. Установите 0 для отключения, 1 для включения. [#78350](https://github.com/ClickHouse/ClickHouse/pull/78350) ([Shankar Iyer](https://github.com/shankar-iyer)). +* Табличные функции объектного хранилища (например, `s3Cluster`) теперь распределяют файлы по репликам для чтения на основе консистентного хеширования для улучшения локальности кэша. [#77326](https://github.com/ClickHouse/ClickHouse/pull/77326) ([Andrej Hoos](https://github.com/adikus)). +* Улучшена производительность `S3Queue`/`AzureQueue` за счёт возможности выполнять вставки данных (`INSERT`) параллельно (можно включить с помощью настройки очереди `parallel_inserts=true`). Ранее S3Queue/AzureQueue могли выполнять только первую часть пайплайна параллельно (загрузка, парсинг), а `INSERT` выполнялся в одном потоке. При этом операции `INSERT` почти всегда являются узким местом. Теперь производительность будет масштабироваться почти линейно с числом потоков `processing_threads_num`. [#77671](https://github.com/ClickHouse/ClickHouse/pull/77671) ([Azat Khuzhin](https://github.com/azat)). Более предсказуемое и справедливое поведение параметра `max_processed_files_before_commit` в S3Queue/AzureQueue. [#79363](https://github.com/ClickHouse/ClickHouse/pull/79363) ([Azat Khuzhin](https://github.com/azat)). +* Введён порог (регулируется параметром `parallel_hash_join_threshold`) для перехода к алгоритму `hash`, когда размер правой таблицы меньше этого порога. [#76185](https://github.com/ClickHouse/ClickHouse/pull/76185) ([Nikita Taranov](https://github.com/nickitat)). +* Теперь для определения размера задачи чтения при включённых параллельных репликах мы используем число реплик. Это обеспечивает более равномерное распределение работы между репликами, когда объём данных для чтения относительно невелик. [#78695](https://github.com/ClickHouse/ClickHouse/pull/78695) ([Nikita Taranov](https://github.com/nickitat)). +* Добавлена поддержка параллельного слияния состояний `uniqExact` на финальном этапе распределённой агрегации. [#78703](https://github.com/ClickHouse/ClickHouse/pull/78703) ([Nikita Taranov](https://github.com/nickitat)). +* Исправлена потенциальная деградация производительности при параллельном слиянии состояний `uniqExact` для агрегации с ключом. [#78724](https://github.com/ClickHouse/ClickHouse/pull/78724) ([Nikita Taranov](https://github.com/nickitat)). +* Уменьшено количество обращений к API List Blobs хранилища Azure. [#78860](https://github.com/ClickHouse/ClickHouse/pull/78860) ([Julia Kartseva](https://github.com/jkartseva)). +* Улучшена производительность распределённого `INSERT SELECT` с параллельными репликами. [#79441](https://github.com/ClickHouse/ClickHouse/pull/79441) ([Azat Khuzhin](https://github.com/azat)). +* Предотвращено выполнение очистки в `LogSeriesLimiter` при каждом создании объекта, что позволяет избежать конкуренции за блокировки и деградации производительности в сценариях с высокой степенью параллелизма. [#79864](https://github.com/ClickHouse/ClickHouse/pull/79864) ([filimonov](https://github.com/filimonov)). +* Ускорены запросы за счет оптимизации тривиальных операций подсчета. [#79945](https://github.com/ClickHouse/ClickHouse/pull/79945) ([Raúl Marín](https://github.com/Algunenano)). +* Улучшен инлайнинг некоторых операций с `Decimal`. [#79999](https://github.com/ClickHouse/ClickHouse/pull/79999) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Теперь значение `input_format_parquet_bloom_filter_push_down` по умолчанию равно true. Также исправлена ошибка в истории изменений настроек. [#80058](https://github.com/ClickHouse/ClickHouse/pull/80058) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Оптимизированы мутации `ALTER ... DELETE` для частей, из которых должны быть удалены все строки. Теперь в таких случаях вместо исходной части сразу создаётся пустая часть, и мутация не выполняется. [#79307](https://github.com/ClickHouse/ClickHouse/pull/79307) ([Anton Popov](https://github.com/CurtizJ)). +* Исключено лишнее копирование блока при вставке в Compact-часть, когда это возможно. [#79536](https://github.com/ClickHouse/ClickHouse/pull/79536) ([Pavel Kruglov](https://github.com/Avogar)). +* Добавлена настройка `input_format_max_block_size_bytes` для ограничения размера в байтах блоков, создаваемых во входных форматах. Это может помочь избежать высокого потребления памяти при импорте данных, когда строки содержат очень большие значения. [#79495](https://github.com/ClickHouse/ClickHouse/pull/79495) ([Pavel Kruglov](https://github.com/Avogar)). +* Удалены guard-страницы для потоков и async_socket_for_remote/use_hedge_requests. Изменён способ выделения памяти в `FiberStack` с `mmap` на `aligned_alloc`, так как это приводит к разбиению областей виртуальной памяти (VMA), и при высокой нагрузке может быть достигнут лимит vm.max_map_count. [#79147](https://github.com/ClickHouse/ClickHouse/pull/79147) ([Sema Checherinda](https://github.com/CheSema)). +* Ленивая материализация с параллельными репликами. [#79401](https://github.com/ClickHouse/ClickHouse/pull/79401) ([Igor Nikonov](https://github.com/devcrafter)). + +#### Улучшения {#improvement} + +* Добавлена возможность применять легковесное удаление «на лету» (с настройками `lightweight_deletes_sync = 0`, `apply_mutations_on_fly = 1`). [#79281](https://github.com/ClickHouse/ClickHouse/pull/79281) ([Anton Popov](https://github.com/CurtizJ)). +* Если данные в формате Pretty выводятся в терминале и следующий блок имеет те же ширины столбцов, вывод может быть продолжен с предыдущего блока, «склеивая» его с предыдущим за счёт перемещения курсора вверх. Тем самым закрывается [#79333](https://github.com/ClickHouse/ClickHouse/issues/79333). Поведение управляется новой настройкой `output_format_pretty_glue_chunks`. [#79339](https://github.com/ClickHouse/ClickHouse/pull/79339) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Функция `isIPAddressInRange` расширена и теперь поддерживает типы данных `String`, `IPv4`, `IPv6`, `Nullable(String)`, `Nullable(IPv4)` и `Nullable(IPv6)`. [#78364](https://github.com/ClickHouse/ClickHouse/pull/78364) ([YjyJeff](https://github.com/YjyJeff)). +* Разрешить динамическое изменение настроек пула подключений движка `PostgreSQL`. [#78414](https://github.com/ClickHouse/ClickHouse/pull/78414) ([Samay Sharma](https://github.com/samay-sharma)). +* Добавлена возможность указывать `_part_offset` в обычной проекции. Это первый шаг к построению индекса проекции. Может использоваться с [#58224](https://github.com/ClickHouse/ClickHouse/issues/58224) и помочь улучшить #63207. [#78429](https://github.com/ClickHouse/ClickHouse/pull/78429) ([Amos Bird](https://github.com/amosbird)). +* Добавлены новые столбцы (`create_query` и `source`) для `system.named_collections`. Закрыта задача [#78179](https://github.com/ClickHouse/ClickHouse/issues/78179). [#78582](https://github.com/ClickHouse/ClickHouse/pull/78582) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* Добавлено новое поле `condition` в системную таблицу `system.query_condition_cache`. В нём хранится условие в виде обычного текста, хэш которого используется в качестве ключа в кэше условий запроса. [#78671](https://github.com/ClickHouse/ClickHouse/pull/78671) ([Robert Schulze](https://github.com/rschu1ze)). +* Теперь можно создавать индексы векторного сходства для столбцов `BFloat16`. [#78850](https://github.com/ClickHouse/ClickHouse/pull/78850) ([Robert Schulze](https://github.com/rschu1ze)). +* Добавлена поддержка Unix-меток времени с дробной частью при разборе `DateTime64` в режиме best effort. [#78908](https://github.com/ClickHouse/ClickHouse/pull/78908) ([Pavel Kruglov](https://github.com/Avogar)). +* В реализации delta-kernel хранилища `DeltaLake` исправлен режим сопоставления столбцов, добавлены тесты для поддержки эволюции схемы. [#78921](https://github.com/ClickHouse/ClickHouse/pull/78921) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Улучшена вставка в столбец `Variant` в формате VALUES за счёт более корректного преобразования значений. [#78923](https://github.com/ClickHouse/ClickHouse/pull/78923) ([Pavel Kruglov](https://github.com/Avogar)). +* Функция `tokens` была расширена и теперь принимает дополнительный аргумент `tokenizer`, а также другие аргументы, специфичные для выбранного токенизатора. [#79001](https://github.com/ClickHouse/ClickHouse/pull/79001) ([Elmi Ahmadov](https://github.com/ahmadov)). +* Оператор `SHOW CLUSTER` теперь раскрывает макросы (если они заданы) в своём аргументе. [#79006](https://github.com/ClickHouse/ClickHouse/pull/79006) ([arf42](https://github.com/arf42)). +* Функции хеширования теперь поддерживают значения `NULL` внутри массивов, кортежей и типов `Map` (issues [#48365](https://github.com/ClickHouse/ClickHouse/issues/48365) и [#48623](https://github.com/ClickHouse/ClickHouse/issues/48623)). [#79008](https://github.com/ClickHouse/ClickHouse/pull/79008) ([Michael Kolupaev](https://github.com/al13n321)). +* Обновлён cctz до версии 2025a. [#79043](https://github.com/ClickHouse/ClickHouse/pull/79043) ([Raúl Marín](https://github.com/Algunenano)). +* Изменена обработка stderr по умолчанию для UDF на "log_last". Это повышает удобство использования. [#79066](https://github.com/ClickHouse/ClickHouse/pull/79066) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Теперь действия с вкладками в Web UI можно отменить. Закрывает [#71284](https://github.com/ClickHouse/ClickHouse/issues/71284). [#79084](https://github.com/ClickHouse/ClickHouse/pull/79084) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Удалены настройки при выполнении `recoverLostReplica` так же, как это было сделано в [https://github.com/ClickHouse/ClickHouse/pull/78637](https://github.com/ClickHouse/ClickHouse/pull/78637). [#79113](https://github.com/ClickHouse/ClickHouse/pull/79113) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Добавлены события профилирования: `ParquetReadRowGroups` и `ParquetPrunedRowGroups` для профилирования отсечения по parquet-индексу. [#79180](https://github.com/ClickHouse/ClickHouse/pull/79180) ([flynn](https://github.com/ucasfl)). +* Добавлена поддержка выполнения `ALTER` для базы данных в кластере. [#79242](https://github.com/ClickHouse/ClickHouse/pull/79242) ([Tuan Pham Anh](https://github.com/tuanpach)). +* Явно пропускать пропущенные запуски сбора статистики в QueryMetricLog, иначе журнал будет долго догонять текущее время. [#79257](https://github.com/ClickHouse/ClickHouse/pull/79257) ([Mikhail Artemenko](https://github.com/Michicosun)). +* Небольшие оптимизации чтения форматов на основе `Arrow`. [#79308](https://github.com/ClickHouse/ClickHouse/pull/79308) ([Bharat Nallan](https://github.com/bharatnc)). +* Настройка `allow_archive_path_syntax` по ошибке была помечена как экспериментальная. Добавлен тест, чтобы предотвратить включение экспериментальных настроек по умолчанию. [#79320](https://github.com/ClickHouse/ClickHouse/pull/79320) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Настройки кэша страниц теперь можно задавать на уровне отдельных запросов. Это необходимо для более быстрого экспериментирования и возможности тонкой настройки запросов с высокой пропускной способностью и низкой задержкой. [#79337](https://github.com/ClickHouse/ClickHouse/pull/79337) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Перестали выводиться подсказки для чисел в форматах Pretty для значений, которые выглядят как типичные 64-битные хеши. Это закрывает [#79334](https://github.com/ClickHouse/ClickHouse/issues/79334). [#79338](https://github.com/ClickHouse/ClickHouse/pull/79338) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Цвета графиков на расширенных дашбордах будут вычисляться на основе хеша соответствующего запроса. Это упрощает запоминание и поиск графика при прокрутке дашборда. [#79341](https://github.com/ClickHouse/ClickHouse/pull/79341) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена асинхронная метрика `FilesystemCacheCapacity` — общий объём пространства во виртуальной файловой системе `cache`. Полезна для глобального мониторинга инфраструктуры. [#79348](https://github.com/ClickHouse/ClickHouse/pull/79348) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Оптимизирован доступ к system.parts (размеры столбцов и индексов читаются только по запросу). [#79352](https://github.com/ClickHouse/ClickHouse/pull/79352) ([Azat Khuzhin](https://github.com/azat)). +* Вычислять только необходимые поля для запроса `'SHOW CLUSTER '` вместо всех полей. [#79368](https://github.com/ClickHouse/ClickHouse/pull/79368) ([Tuan Pham Anh](https://github.com/tuanpach)). +* Добавлена возможность указывать настройки хранилища для `DatabaseCatalog`. [#79407](https://github.com/ClickHouse/ClickHouse/pull/79407) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Добавлена поддержка локального хранилища в `DeltaLake`. [#79416](https://github.com/ClickHouse/ClickHouse/pull/79416) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Добавлена настройка уровня запроса для включения delta-kernel-rs: `allow_experimental_delta_kernel_rs`. [#79418](https://github.com/ClickHouse/ClickHouse/pull/79418) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлен возможный бесконечный цикл при получении списка blob-объектов из Azure/S3 blob storage. [#79425](https://github.com/ClickHouse/ClickHouse/pull/79425) ([Alexander Gololobov](https://github.com/davenger)). +* Добавлена настройка файлового кеша `max_size_ratio_to_total_space`. [#79460](https://github.com/ClickHouse/ClickHouse/pull/79460) ([Kseniia Sumarokova](https://github.com/kssenii)). +* В `clickhouse-benchmark` параметр `reconnect` теперь может принимать значения 0, 1 или N, определяющие соответствующее поведение переподключения. [#79465](https://github.com/ClickHouse/ClickHouse/pull/79465) ([Sachin Kumar Singh](https://github.com/sachinkumarsingh092)). +* Теперь разрешено использовать `ALTER TABLE ... MOVE|REPLACE PARTITION` для таблиц на разных дисках `plain_rewritable`. [#79566](https://github.com/ClickHouse/ClickHouse/pull/79566) ([Julia Kartseva](https://github.com/jkartseva)). +* Индекс векторного сходства теперь также используется, если опорный вектор имеет тип `Array(BFloat16)`. [#79745](https://github.com/ClickHouse/ClickHouse/pull/79745) ([Shankar Iyer](https://github.com/shankar-iyer)). +* Добавлены last_error_message, last_error_trace и query_id в таблицу system.error_log. Связанная задача [#75816](https://github.com/ClickHouse/ClickHouse/issues/75816). [#79836](https://github.com/ClickHouse/ClickHouse/pull/79836) ([Andrei Tinikov](https://github.com/Dolso)). +* По умолчанию включена отправка отчётов о сбоях. Это можно отключить в конфигурационном файле сервера. [#79838](https://github.com/ClickHouse/ClickHouse/pull/79838) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Системная таблица `system.functions` теперь показывает, в какой версии ClickHouse функции впервые появились. [#79839](https://github.com/ClickHouse/ClickHouse/pull/79839) ([Robert Schulze](https://github.com/rschu1ze)). +* Добавлена настройка `access_control_improvements.enable_user_name_access_type`. Эта настройка позволяет включать или отключать точные гранты для пользователей и ролей, добавленные в [https://github.com/ClickHouse/ClickHouse/pull/72246](https://github.com/ClickHouse/ClickHouse/pull/72246). Имеет смысл отключить эту настройку, если в кластере есть реплики версии ниже 25.1. [#79842](https://github.com/ClickHouse/ClickHouse/pull/79842) ([pufit](https://github.com/pufit)). +* Теперь корректная реализация метода `ASTSelectWithUnionQuery::clone()` также учитывает поле `is_normalized`. Это может помочь с [#77569](https://github.com/ClickHouse/ClickHouse/issues/77569). [#79909](https://github.com/ClickHouse/ClickHouse/pull/79909) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Исправлено непоследовательное форматирование некоторых запросов с оператором EXCEPT. Если левая часть оператора EXCEPT заканчивается символом `*`, отформатированный запрос теряет скобки и затем разбирается как `*` с модификатором `EXCEPT`. Эти запросы были найдены фаззером и маловероятны в реальной практике. Закрывает [#79950](https://github.com/ClickHouse/ClickHouse/issues/79950). [#79952](https://github.com/ClickHouse/ClickHouse/pull/79952) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Небольшое улучшение разбора типа `JSON` за счёт использования кэша порядка десериализации вариантов. [#79984](https://github.com/ClickHouse/ClickHouse/pull/79984) ([Pavel Kruglov](https://github.com/Avogar)). +* Добавлена настройка `s3_slow_all_threads_after_network_error`. [#80035](https://github.com/ClickHouse/ClickHouse/pull/80035) ([Vitaly Baranov](https://github.com/vitlibar)). +* Уровень логирования сообщений о выбранных для слияния частях был некорректным (Information). Закрывает [#80061](https://github.com/ClickHouse/ClickHouse/issues/80061). [#80062](https://github.com/ClickHouse/ClickHouse/pull/80062) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* trace-visualizer: добавить runtime/share в подсказки и статусные сообщения. [#79040](https://github.com/ClickHouse/ClickHouse/pull/79040) ([Sergei Trifonov](https://github.com/serxa)). +* trace-visualizer: загружать данные с сервера ClickHouse. [#79042](https://github.com/ClickHouse/ClickHouse/pull/79042) ([Sergei Trifonov](https://github.com/serxa)). +* Добавлены метрики сбоев слияний. [#79228](https://github.com/ClickHouse/ClickHouse/pull/79228) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* `clickhouse-benchmark` будет отображать процент выполнения, рассчитываемый от максимального числа итераций, если оно задано. [#79346](https://github.com/ClickHouse/ClickHouse/pull/79346) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлен визуализатор для таблицы system.parts. [#79437](https://github.com/ClickHouse/ClickHouse/pull/79437) ([Sergei Trifonov](https://github.com/serxa)). +* Добавлен инструмент для анализа задержки выполнения запросов. [#79978](https://github.com/ClickHouse/ClickHouse/pull/79978) ([Sergei Trifonov](https://github.com/serxa)). + +#### Исправление ошибки (ошибка, проявляющаяся для пользователя, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* Исправлено переименование столбцов, отсутствующих в части данных. [#76346](https://github.com/ClickHouse/ClickHouse/pull/76346) ([Anton Popov](https://github.com/CurtizJ)). +* materialized view может запускаться слишком поздно, например, после таблицы Kafka, которая отправляет в неё поток данных. [#72123](https://github.com/ClickHouse/ClickHouse/pull/72123) ([Ilya Golshtein](https://github.com/ilejn)). +* Исправлена перезапись запроса `SELECT` при создании `VIEW` при включённом анализаторе. Закрывает [#75956](https://github.com/ClickHouse/ClickHouse/issues/75956). [#76356](https://github.com/ClickHouse/ClickHouse/pull/76356) ([Dmitry Novik](https://github.com/novikd)). +* Исправлено применение настройки `async_insert`, передаваемой с сервера (через `apply_settings_from_server`), которое ранее приводило к ошибкам `Unknown packet 11 from server` на клиенте. [#77578](https://github.com/ClickHouse/ClickHouse/pull/77578) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена проблема, из-за которой refreshable materialized view в реплицируемой базе данных не работала на недавно добавленных репликах. [#77774](https://github.com/ClickHouse/ClickHouse/pull/77774) ([Michael Kolupaev](https://github.com/al13n321)). +* Исправлена ошибка, из-за которой refreshable materialized views приводили к сбоям резервного копирования. [#77893](https://github.com/ClickHouse/ClickHouse/pull/77893) ([Michael Kolupaev](https://github.com/al13n321)). +* Исправлена старая логическая ошибка в `transform`. [#78247](https://github.com/ClickHouse/ClickHouse/pull/78247) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Устранены отдельные случаи, при которых вторичный индекс не применялся анализатором. Исправляет [#65607](https://github.com/ClickHouse/ClickHouse/issues/65607), исправляет [#69373](https://github.com/ClickHouse/ClickHouse/issues/69373). [#78485](https://github.com/ClickHouse/ClickHouse/pull/78485) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлена запись событий профилирования (`NetworkSendElapsedMicroseconds`/`NetworkSendBytes`) для протокола HTTP с включённым сжатием (погрешность не должна превышать размер буфера, обычно около 1MiB). [#78516](https://github.com/ClickHouse/ClickHouse/pull/78516) ([Azat Khuzhin](https://github.com/azat)). +* Исправлен анализатор, вызывавший LOGICAL_ERROR, когда в JOIN ... USING участвовал столбец-алиас — теперь выдаётся корректная ошибка. [#78618](https://github.com/ClickHouse/ClickHouse/pull/78618) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Исправлен анализатор: CREATE VIEW ... ON CLUSTER завершается с ошибкой, если в запросе SELECT используются позиционные аргументы. [#78663](https://github.com/ClickHouse/ClickHouse/pull/78663) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Исправлена ошибка `Block structure mismatch` при выполнении `INSERT SELECT` в табличную функцию с автоматическим выводом схемы, если `SELECT` содержит скалярные подзапросы. [#78677](https://github.com/ClickHouse/ClickHouse/pull/78677) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* Исправлен анализатор: при включённой настройке prefer_global_in_and_join=1 для distributed таблицы в SELECT-запросе функция `in` должна заменяться на `globalIn`. [#78749](https://github.com/ClickHouse/ClickHouse/pull/78749) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Исправлено несколько типов запросов `SELECT`, читающих из таблиц с движком `MongoDB` или табличной функцией `mongodb`: запросы с неявным приведением константного значения в условии `WHERE` (например, `WHERE datetime = '2025-03-10 00:00:00'`); запросы с `LIMIT` и `GROUP BY`. Ранее они могли возвращать некорректный результат. [#78777](https://github.com/ClickHouse/ClickHouse/pull/78777) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлено преобразование между разными типами JSON. Теперь оно выполняется простым приведением через преобразование в/из String. Это менее эффективно, но на 100% корректно. [#78807](https://github.com/ClickHouse/ClickHouse/pull/78807) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена логическая ошибка при преобразовании типа Dynamic в Interval. [#78813](https://github.com/ClickHouse/ClickHouse/pull/78813) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлен откат столбца при ошибке парсинга JSON. [#78836](https://github.com/ClickHouse/ClickHouse/pull/78836) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена ошибка 'bad cast' при выполнении операции JOIN с использованием константного столбца-алиаса. [#78848](https://github.com/ClickHouse/ClickHouse/pull/78848) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Теперь не допускается использование prewhere в materialized view для столбцов с разными типами в представлении и целевой таблице. [#78889](https://github.com/ClickHouse/ClickHouse/pull/78889) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена логическая ошибка при разборе некорректных бинарных данных столбца Variant. [#78982](https://github.com/ClickHouse/ClickHouse/pull/78982) ([Pavel Kruglov](https://github.com/Avogar)). +* При размере пакета Parquet, равном 0, теперь выбрасывается исключение. Ранее при `output_format_parquet_batch_size = 0` ClickHouse зависал. Теперь это поведение исправлено. [#78991](https://github.com/ClickHouse/ClickHouse/pull/78991) ([daryawessely](https://github.com/daryawessely)). +* Исправлена ошибка десериализации дискриминаторов `Variant` с базовым форматом в компактных частях. Она была внесена в [https://github.com/ClickHouse/ClickHouse/pull/55518](https://github.com/ClickHouse/ClickHouse/pull/55518). [#79000](https://github.com/ClickHouse/ClickHouse/pull/79000) ([Pavel Kruglov](https://github.com/Avogar)). +* Словари типа `complex_key_ssd_cache` теперь отклоняют параметры `block_size` и `write_buffer_size` со значением 0 или отрицательным значением (проблема [#78314](https://github.com/ClickHouse/ClickHouse/issues/78314)). [#79028](https://github.com/ClickHouse/ClickHouse/pull/79028) ([Elmi Ahmadov](https://github.com/ahmadov)). +* Следует избегать использования `Field` для неагрегированных столбцов в `SummingMergeTree`. Это может приводить к неожиданным ошибкам при работе с типами `Dynamic`/`Variant` в `SummingMergeTree`. [#79051](https://github.com/ClickHouse/ClickHouse/pull/79051) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена проблема чтения из materialized view с целевой таблицей Distributed и отличающимся заголовком в анализаторе. [#79059](https://github.com/ClickHouse/ClickHouse/pull/79059) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправляет ошибку, из-за которой `arrayUnion()` возвращала лишние (некорректные) значения при пакетных вставках в таблицы. Исправляет [#75057](https://github.com/ClickHouse/ClickHouse/issues/75057). [#79079](https://github.com/ClickHouse/ClickHouse/pull/79079) ([Peter Nguyen](https://github.com/petern48)). +* Исправлен segfault в `OpenSSLInitializer`. Закрывает [#79092](https://github.com/ClickHouse/ClickHouse/issues/79092). [#79097](https://github.com/ClickHouse/ClickHouse/pull/79097) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Всегда задавать префикс для операции S3 ListObject. [#79114](https://github.com/ClickHouse/ClickHouse/pull/79114) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена ошибка, из‑за которой arrayUnion() возвращала дополнительные (некорректные) значения в таблицах с пакетными вставками. Исправлена [#79157](https://github.com/ClickHouse/ClickHouse/issues/79157). [#79158](https://github.com/ClickHouse/ClickHouse/pull/79158) ([Peter Nguyen](https://github.com/petern48)). +* Исправлена логическая ошибка, возникавшая после проталкивания фильтра. [#79164](https://github.com/ClickHouse/ClickHouse/pull/79164) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* Исправлена работа движка таблиц DeltaLake с реализацией delta-kernel при использовании HTTP-эндпоинтов, а также исправлен NOSIGN. Закрывает [#78124](https://github.com/ClickHouse/ClickHouse/issues/78124). [#79203](https://github.com/ClickHouse/ClickHouse/pull/79203) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправление в Keeper: предотвращено срабатывание наблюдателей для неудачных multi-запросов. [#79247](https://github.com/ClickHouse/ClickHouse/pull/79247) ([Antonio Andelic](https://github.com/antonio2368)). +* Запрещено использование типов Dynamic и JSON в `IN`. При текущей реализации `IN` это может приводить к некорректным результатам. Полноценная поддержка этих типов в `IN` сложна и может быть реализована в будущем. [#79282](https://github.com/ClickHouse/ClickHouse/pull/79282) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена проверка на дублирующиеся пути при разборе типа JSON. [#79317](https://github.com/ClickHouse/ClickHouse/pull/79317) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлены проблемы с соединением SecureStreamSocket. [#79383](https://github.com/ClickHouse/ClickHouse/pull/79383) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Исправлена проблема с загрузкой дисков plain_rewritable, содержащих данные. [#79439](https://github.com/ClickHouse/ClickHouse/pull/79439) ([Julia Kartseva](https://github.com/jkartseva)). +* Исправлена ошибка, приводившая к аварийному завершению работы при обнаружении динамических подстолбцов в широких частях в MergeTree. [#79466](https://github.com/ClickHouse/ClickHouse/pull/79466) ([Pavel Kruglov](https://github.com/Avogar)). +* Проверять длину имени таблицы только для первичных запросов CREATE. Не выполнять эту проверку для последующих CREATE, чтобы избежать проблем с обратной совместимостью. [#79488](https://github.com/ClickHouse/ClickHouse/pull/79488) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Исправлена ошибка `Block structure mismatch` в ряде случаев для таблиц с разреженными столбцами. [#79491](https://github.com/ClickHouse/ClickHouse/pull/79491) ([Anton Popov](https://github.com/CurtizJ)). +* Были исправлены два случая ошибки "Logical Error: Can't set alias of * of Asterisk on alias". [#79505](https://github.com/ClickHouse/ClickHouse/pull/79505) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена ошибка использования некорректных путей при переименовании базы данных Atomic. [#79569](https://github.com/ClickHouse/ClickHouse/pull/79569) ([Tuan Pham Anh](https://github.com/tuanpach)). +* Исправлена работа ORDER BY по JSON-столбцу в сочетании с другими столбцами. [#79591](https://github.com/ClickHouse/ClickHouse/pull/79591) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлено дублирование результатов при чтении с удалённого сервера при отключённых `use_hedged_requests` и `allow_experimental_parallel_reading_from_replicas`. [#79599](https://github.com/ClickHouse/ClickHouse/pull/79599) ([Eduard Karacharov](https://github.com/korowa)). +* Исправлен сбой в реализации delta-kernel при использовании Unity Catalog. [#79677](https://github.com/ClickHouse/ClickHouse/pull/79677) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Теперь макросы корректно разрешаются для кластеров autodiscovery. [#79696](https://github.com/ClickHouse/ClickHouse/pull/79696) ([Anton Ivashkin](https://github.com/ianton-ru)). +* Добавлена корректная обработка некорректно настроенного параметра page_cache_limits. [#79805](https://github.com/ClickHouse/ClickHouse/pull/79805) ([Bharat Nallan](https://github.com/bharatnc)). +* Исправляет результат работы SQL-функции `formatDateTime` в случае, когда за спецификатором формата переменной длины (например, `%W`, то есть день недели `Monday`, `Tuesday` и т. д.) следует составной спецификатор формата (спецификатор, который выводит несколько компонентов одновременно, например, `%D`, то есть американская дата `05/04/25`). [#79835](https://github.com/ClickHouse/ClickHouse/pull/79835) ([Robert Schulze](https://github.com/rschu1ze)). +* IcebergS3 поддерживает оптимизацию вычисления count(), но IcebergS3Cluster — нет. В результате в кластерном режиме результат функции count() может быть кратен количеству реплик. [#79844](https://github.com/ClickHouse/ClickHouse/pull/79844) ([wxybear](https://github.com/wxybear)). +* Исправляет ошибку AMBIGUOUS_COLUMN_NAME при ленивой материализации, когда до применения проекции при выполнении запроса не используется ни один столбец. Например, SELECT * FROM t ORDER BY rand() LIMIT 5. [#79926](https://github.com/ClickHouse/ClickHouse/pull/79926) ([Igor Nikonov](https://github.com/devcrafter)). +* Пароль в запросе `CREATE DATABASE datalake ENGINE = DataLakeCatalog(\'http://catalog:8181\', \'admin\', \'password\')` теперь скрывается. [#79941](https://github.com/ClickHouse/ClickHouse/pull/79941) ([Han Fei](https://github.com/hanfei1991)). +* Добавлена возможность указывать псевдоним в JOIN USING. Указывайте этот псевдоним, если столбец был переименован (например, из‑за ARRAY JOIN). Исправляет [#73707](https://github.com/ClickHouse/ClickHouse/issues/73707). [#79942](https://github.com/ClickHouse/ClickHouse/pull/79942) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Обеспечена корректная работа materialized views с операторами UNION на новых репликах. [#80037](https://github.com/ClickHouse/ClickHouse/pull/80037) ([Samay Sharma](https://github.com/samay-sharma)). +* Спецификатор формата `%e` в SQL-функции `parseDateTime` теперь распознаёт однозначные значения дня месяца (например, `3`), тогда как ранее требовал заполнения пробелом (например, ` 3`). Это делает его поведение совместимым с MySQL. Чтобы сохранить прежнее поведение, установите настройку `parsedatetime_e_requires_space_padding = 1`. (issue [#78243](https://github.com/ClickHouse/ClickHouse/issues/78243)). [#80057](https://github.com/ClickHouse/ClickHouse/pull/80057) ([Robert Schulze](https://github.com/rschu1ze)). +* Исправлены предупреждения `Cannot find 'kernel' in '[...]/memory.stat'` в журнале ClickHouse (issue [#77410](https://github.com/ClickHouse/ClickHouse/issues/77410)). [#80129](https://github.com/ClickHouse/ClickHouse/pull/80129) ([Robert Schulze](https://github.com/rschu1ze)). +* Проверять размер стека в FunctionComparison, чтобы избежать сбоя из-за переполнения стека. [#78208](https://github.com/ClickHouse/ClickHouse/pull/78208) ([Julia Kartseva](https://github.com/jkartseva)). +* Исправлено состояние гонки при выполнении SELECT из `system.workloads`. [#78743](https://github.com/ClickHouse/ClickHouse/pull/78743) ([Sergei Trifonov](https://github.com/serxa)). +* Исправлена ленивая материализация в распределённых запросах. [#78815](https://github.com/ClickHouse/ClickHouse/pull/78815) ([Igor Nikonov](https://github.com/devcrafter)). +* Исправлено преобразование `Array(Bool)` в `Array(FixedString)`. [#78863](https://github.com/ClickHouse/ClickHouse/pull/78863) ([Nikita Taranov](https://github.com/nickitat)). +* Упрощён выбор версии формата Parquet. [#78818](https://github.com/ClickHouse/ClickHouse/pull/78818) ([Michael Kolupaev](https://github.com/al13n321)). +* Исправлено слияние `ReservoirSampler` с самим собой. [#79031](https://github.com/ClickHouse/ClickHouse/pull/79031) ([Nikita Taranov](https://github.com/nickitat)). +* Исправлено хранение таблицы вставки в клиентском контексте. [#79046](https://github.com/ClickHouse/ClickHouse/pull/79046) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* Исправлен порядок уничтожения полей в `AggregatingSortedAlgorithm` и `SummingSortedAlgorithm`. [#79056](https://github.com/ClickHouse/ClickHouse/pull/79056) ([Nikita Taranov](https://github.com/nickitat)). +* `enable_user_name_access_type` не должен влиять на тип доступа `DEFINER`. [#80026](https://github.com/ClickHouse/ClickHouse/pull/80026) ([pufit](https://github.com/pufit)). +* Запрос к системной базе данных может зависнуть, если её метаданные размещены в Keeper. [#79304](https://github.com/ClickHouse/ClickHouse/pull/79304) ([Mikhail Artemenko](https://github.com/Michicosun)). + +#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement} + +* Добавлена возможность повторно использовать уже собранный бинарный файл `chcache` вместо его пересборки каждый раз. [#78851](https://github.com/ClickHouse/ClickHouse/pull/78851) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Добавлено ожидание паузы в NATS. [#78987](https://github.com/ClickHouse/ClickHouse/pull/78987) ([Dmitry Novikov](https://github.com/dmitry-sles-novikov)). +* Исправлена некорректная публикация ARM-сборки как amd64compat. [#79122](https://github.com/ClickHouse/ClickHouse/pull/79122) ([Alexander Gololobov](https://github.com/davenger)). +* Использование заранее сгенерированного кода на ассемблере для OpenSSL. [#79386](https://github.com/ClickHouse/ClickHouse/pull/79386) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Исправления, позволяющие собирать с `clang20`. [#79588](https://github.com/ClickHouse/ClickHouse/pull/79588) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* `chcache`: поддержка кеширования на Rust. [#78691](https://github.com/ClickHouse/ClickHouse/pull/78691) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Добавлена информация для раскрутки стека (unwind) в ассемблерных файлах `zstd`. [#79288](https://github.com/ClickHouse/ClickHouse/pull/79288) ([Michael Kolupaev](https://github.com/al13n321)). + +### Релиз ClickHouse 25.4 от 2025-04-22 {#254} + +#### Изменения, нарушающие обратную совместимость {#backward-incompatible-change} + +* Добавлена проверка соответствия всех столбцов в materialized view столбцам целевой таблицы, если `allow_materialized_view_with_bad_select` имеет значение `false`. [#74481](https://github.com/ClickHouse/ClickHouse/pull/74481) ([Christoph Wurm](https://github.com/cwurm)). +* Исправлены случаи, когда `dateTrunc` используется с отрицательными аргументами типов Date/DateTime. [#77622](https://github.com/ClickHouse/ClickHouse/pull/77622) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Устаревшая интеграция с `MongoDB` была удалена. Параметр сервера `use_legacy_mongodb_integration` устарел и больше не оказывает эффекта. [#77895](https://github.com/ClickHouse/ClickHouse/pull/77895) ([Robert Schulze](https://github.com/rschu1ze)). +* Улучшена валидация `SummingMergeTree`, чтобы пропускать агрегирование для столбцов, используемых в ключах партиционирования или сортировки. [#78022](https://github.com/ClickHouse/ClickHouse/pull/78022) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). + +#### Новые возможности {#new-feature} + +* Добавлено планирование рабочих нагрузок по слотам CPU, подробности см. в [документации](https://clickhouse.com/docs/operations/workload-scheduling#cpu_scheduling). [#77595](https://github.com/ClickHouse/ClickHouse/pull/77595) ([Sergei Trifonov](https://github.com/serxa)). +* `clickhouse-local` сохраняет свои базы данных между перезапусками, если вы укажете аргумент командной строки `--path`. Исправляет [#50647](https://github.com/ClickHouse/ClickHouse/issues/50647). Исправляет [#49947](https://github.com/ClickHouse/ClickHouse/issues/49947). [#71722](https://github.com/ClickHouse/ClickHouse/pull/71722) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Отклонять запросы, когда сервер перегружен. Решение об отклонении принимается на основе отношения времени ожидания (`OSCPUWaitMicroseconds`) к времени занятости (`OSCPUVirtualTimeMicroseconds`). Запрос может быть с некоторой вероятностью отброшен, когда это отношение находится между `min_os_cpu_wait_time_ratio_to_throw` и `max_os_cpu_wait_time_ratio_to_throw` (это настройки уровня запроса). [#63206](https://github.com/ClickHouse/ClickHouse/pull/63206) ([Alexey Katsman](https://github.com/alexkats)). +* Путешествие во времени в `Iceberg`: добавлена настройка, позволяющая выполнять запросы к таблицам `Iceberg` по состоянию на указанный момент времени. [#71072](https://github.com/ClickHouse/ClickHouse/pull/71072) ([Brett Hoerner](https://github.com/bretthoerner)). [#77439](https://github.com/ClickHouse/ClickHouse/pull/77439) ([Daniil Ivanik](https://github.com/divanik)). +* Кэш метаданных `Iceberg` в оперативной памяти, в котором хранятся файлы манифестов, их список и `metadata.json` для ускорения выполнения запросов. [#77156](https://github.com/ClickHouse/ClickHouse/pull/77156) ([Han Fei](https://github.com/hanfei1991)). +* Добавлена поддержка движка таблиц `DeltaLake` для Azure Blob Storage. Исправляет [#68043](https://github.com/ClickHouse/ClickHouse/issues/68043). [#74541](https://github.com/ClickHouse/ClickHouse/pull/74541) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). +* Добавлен кэш в оперативной памяти для десериализованных индексов векторного сходства. Это должно ускорить повторяющиеся запросы поиска приблизительных ближайших соседей (ANN). Размер нового кэша контролируется настройками сервера `vector_similarity_index_cache_size` и `vector_similarity_index_cache_max_entries`. Эта возможность заменяет механизм кэширования пропускающих индексов из более ранних релизов. [#77905](https://github.com/ClickHouse/ClickHouse/pull/77905) ([Shankar Iyer](https://github.com/shankar-iyer)). +* Добавлена поддержка отсечения партиций в DeltaLake. [#78486](https://github.com/ClickHouse/ClickHouse/pull/78486) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Поддержка фонового обновления данных в таблицах `MergeTree` в режиме только для чтения, что позволяет выполнять запросы к обновляемым таблицам с неограниченным числом распределённых читателей (нативное озеро данных в ClickHouse). [#76467](https://github.com/ClickHouse/ClickHouse/pull/76467) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена поддержка использования пользовательских дисков для хранения файлов метаданных баз данных. В настоящее время это можно настроить только на уровне всего сервера. [#77365](https://github.com/ClickHouse/ClickHouse/pull/77365) ([Tuan Pham Anh](https://github.com/tuanpach)). +* Добавлена поддержка ALTER TABLE ... ATTACH|DETACH|MOVE|REPLACE PARTITION для диска plain_rewritable. [#77406](https://github.com/ClickHouse/ClickHouse/pull/77406) ([Julia Kartseva](https://github.com/jkartseva)). +* Добавлены настройки таблицы для `SASL`‑конфигурации и учетных данных в табличный движок `Kafka`. Это позволяет настраивать аутентификацию на основе SASL для Kafka и совместимых с Kafka систем непосредственно в операторе CREATE TABLE, а не через конфигурационные файлы или именованные коллекции. [#78810](https://github.com/ClickHouse/ClickHouse/pull/78810) ([Christoph Wurm](https://github.com/cwurm)). +* Добавлена возможность задавать `default_compression_codec` для таблиц MergeTree: он используется, когда в запросе CREATE явно не указан кодек сжатия для соответствующих столбцов. Это закрывает [#42005](https://github.com/ClickHouse/ClickHouse/issues/42005). [#66394](https://github.com/ClickHouse/ClickHouse/pull/66394) ([gvoelfin](https://github.com/gvoelfin)). +* Добавлена настройка `bind_host` в конфигурации кластеров, чтобы ClickHouse мог использовать определённую сеть для распределённых подключений. [#74741](https://github.com/ClickHouse/ClickHouse/pull/74741) ([Todd Yocum](https://github.com/toddyocum)). +* Добавлен новый столбец `parametrized_view_parameters` в таблицу `system.tables`. Закрывает [https://github.com/clickhouse/clickhouse/issues/66756](https://github.com/clickhouse/clickhouse/issues/66756). [#75112](https://github.com/ClickHouse/ClickHouse/pull/75112) ([NamNguyenHoai](https://github.com/NamHoaiNguyen)). +* Добавлена возможность изменять комментарий базы данных. Закрывает [#73351](https://github.com/ClickHouse/ClickHouse/issues/73351) ### Запись в документации об изменениях, заметных пользователю. [#75622](https://github.com/ClickHouse/ClickHouse/pull/75622) ([NamNguyenHoai](https://github.com/NamHoaiNguyen)). +* Добавлена поддержка аутентификации `SCRAM-SHA-256` в протоколе совместимости с PostgreSQL. [#76839](https://github.com/ClickHouse/ClickHouse/pull/76839) ([scanhex12](https://github.com/scanhex12)). +* Добавлены функции `arrayLevenshteinDistance`, `arrayLevenshteinDistanceWeighted` и `arraySimilarity`. [#77187](https://github.com/ClickHouse/ClickHouse/pull/77187) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Настройка `parallel_distributed_insert_select` теперь применяется к `INSERT SELECT` в таблицы с движком `ReplicatedMergeTree` (ранее для этого требовались таблицы с движком `Distributed`). [#78041](https://github.com/ClickHouse/ClickHouse/pull/78041) ([Igor Nikonov](https://github.com/devcrafter)). +* Добавлена функция `toInterval`. Эта функция принимает 2 аргумента (значение и единицу измерения) и преобразует значение в определённый тип `Interval`. [#78723](https://github.com/ClickHouse/ClickHouse/pull/78723) ([Andrew Davis](https://github.com/pulpdrew)). +* Добавлены несколько удобных способов определения расположения корневого файла `metadata.json` в табличной функции `iceberg` и одноимённом движке. Закрывает [#78455](https://github.com/ClickHouse/ClickHouse/issues/78455). [#78475](https://github.com/ClickHouse/ClickHouse/pull/78475) ([Daniil Ivanik](https://github.com/divanik)). +* Добавлена поддержка аутентификации по паролю в протоколе SSH в ClickHouse. [#78586](https://github.com/ClickHouse/ClickHouse/pull/78586) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). + +#### Экспериментальная функциональность {#experimental-feature} + +* Поддержка коррелированных подзапросов в качестве аргумента для выражения `EXISTS` в предложении `WHERE`. Закрывает [#72459](https://github.com/ClickHouse/ClickHouse/issues/72459). [#76078](https://github.com/ClickHouse/ClickHouse/pull/76078) ([Dmitry Novik](https://github.com/novikd)). +* Добавлены функции `sparseGrams` и `sparseGramsHashes` с версиями для ASCII и UTF-8. Автор: [scanhex12](https://github.com/scanhex12). [#78176](https://github.com/ClickHouse/ClickHouse/pull/78176) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). Не используйте их: реализация будет изменена в следующих версиях. + +#### Повышение производительности {#performance-improvement} + +* Оптимизирована производительность за счет «ленивых» столбцов, которые считываются после ORDER BY и LIMIT. [#55518](https://github.com/ClickHouse/ClickHouse/pull/55518) ([Xiaozhe Yu](https://github.com/wudidapaopao)). +* По умолчанию включён кэш условий запроса. [#79080](https://github.com/ClickHouse/ClickHouse/pull/79080) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Ускорена сборка результата операции `JOIN` благодаря девиртуализации вызовов `col->insertFrom()`. [#77350](https://github.com/ClickHouse/ClickHouse/pull/77350) ([Alexander Gololobov](https://github.com/davenger)). +* Объединять условия равенства из шага плана фильтрации запроса с условием JOIN, когда это возможно, чтобы использовать их в качестве ключей хэш-таблицы. [#78877](https://github.com/ClickHouse/ClickHouse/pull/78877) ([Dmitry Novik](https://github.com/novikd)). +* Используйте динамическое разбиение на сегменты для JOIN, если ключ JOIN является префиксом PK в обеих частях. Эта оптимизация включается с помощью настройки `query_plan_join_shard_by_pk_ranges` (по умолчанию отключена). [#74733](https://github.com/ClickHouse/ClickHouse/pull/74733) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Поддержка отсечения данных в `Iceberg` на основе нижних и верхних границ значений столбцов. Исправлена проблема [#77638](https://github.com/ClickHouse/ClickHouse/issues/77638). [#78242](https://github.com/ClickHouse/ClickHouse/pull/78242) ([alesapin](https://github.com/alesapin)). +* Реализована простая оптимизация подсчёта для формата `Iceberg`. Теперь запросы с `count()` и без каких-либо фильтров должны выполняться быстрее. Закрывает [#77639](https://github.com/ClickHouse/ClickHouse/issues/77639). [#78090](https://github.com/ClickHouse/ClickHouse/pull/78090) ([alesapin](https://github.com/alesapin)). +* Добавлена возможность задавать число столбцов, которые операции слияния могут сбрасывать параллельно с помощью `max_merge_delayed_streams_for_parallel_write` (это должно примерно в 25 раз снизить потребление памяти при вертикальных слияниях в S3). [#77922](https://github.com/ClickHouse/ClickHouse/pull/77922) ([Azat Khuzhin](https://github.com/azat)). +* Отключайте `filesystem_cache_prefer_bigger_buffer_size`, если кэш используется в пассивном режиме, например, для слияний. Это уменьшает потребление памяти при слияниях. [#77898](https://github.com/ClickHouse/ClickHouse/pull/77898) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Теперь мы используем число реплик для определения размера задачи при чтении с включёнными параллельными репликами. Это обеспечивает более равномерное распределение работы между репликами, когда объём данных для чтения не слишком велик. [#78695](https://github.com/ClickHouse/ClickHouse/pull/78695) ([Nikita Taranov](https://github.com/nickitat)). +* Добавлена поддержка асинхронной предварительной выборки данных (prefetch) для формата `ORC`, что повышает общую производительность за счёт сокрытия задержек удалённого ввода-вывода. [#70534](https://github.com/ClickHouse/ClickHouse/pull/70534) ([李扬](https://github.com/taiyang-li)). +* Предварительно выделяется память, используемая асинхронными вставками, что повышает производительность. [#74945](https://github.com/ClickHouse/ClickHouse/pull/74945) ([Ilya Golshtein](https://github.com/ilejn)). +* Уменьшено количество запросов к Keeper за счёт отказа от использования одиночных запросов `get` в пользу `multiRead` там, где он доступен, так как первые могли вызывать значительную нагрузку на Keeper при увеличении числа реплик. [#56862](https://github.com/ClickHouse/ClickHouse/pull/56862) ([Nikolay Degterinsky](https://github.com/evillique)). +* Небольшая оптимизация выполнения функций для аргументов типа Nullable. [#76489](https://github.com/ClickHouse/ClickHouse/pull/76489) ([李扬](https://github.com/taiyang-li)). +* Оптимизирована функция `arraySort`. [#76850](https://github.com/ClickHouse/ClickHouse/pull/76850) ([李扬](https://github.com/taiyang-li)). +* Объединяет метки одной и той же части и единовременно записывает их в кэш условий запроса, чтобы сократить использование блокировок. [#77377](https://github.com/ClickHouse/ClickHouse/pull/77377) ([zhongyuankai](https://github.com/zhongyuankai)). +* Оптимизирована производительность `s3Cluster` для запросов с одним раскрытием фигурных скобок. [#77686](https://github.com/ClickHouse/ClickHouse/pull/77686) ([Tomáš Hromada](https://github.com/gyfis)). +* Оптимизирован ORDER BY для одиночного столбца типа Nullable или LowCardinality. [#77789](https://github.com/ClickHouse/ClickHouse/pull/77789) ([李扬](https://github.com/taiyang-li)). +* Оптимизировано потребление памяти форматом `Native`. [#78442](https://github.com/ClickHouse/ClickHouse/pull/78442) ([Azat Khuzhin](https://github.com/azat)). +* Тривиальная оптимизация: не переписывать `count(if(...))` на `countIf`, если требуется приведение типов. Закрывает [#78564](https://github.com/ClickHouse/ClickHouse/issues/78564). [#78565](https://github.com/ClickHouse/ClickHouse/pull/78565) ([李扬](https://github.com/taiyang-li)). +* Функция `hasAll` теперь может использовать пропускающие индексы для полнотекстового поиска `tokenbf_v1`, `ngrambf_v1`. [#77662](https://github.com/ClickHouse/ClickHouse/pull/77662) ([UnamedRus](https://github.com/UnamedRus)). +* Индекс векторного сходства мог выделять до 2 раз больше оперативной памяти, чем необходимо. Это исправление пересматривает стратегию выделения памяти, снижая её потребление и повышая эффективность кэша индекса векторного сходства. (issue [#78056](https://github.com/ClickHouse/ClickHouse/issues/78056)). [#78394](https://github.com/ClickHouse/ClickHouse/pull/78394) ([Shankar Iyer](https://github.com/shankar-iyer)). +* Добавлена настройка `schema_type` для таблицы `system.metric_log`, задающая тип схемы. Допустимы три варианта: `wide` — текущая схема, каждая метрика/событие в отдельном столбце (наиболее эффективна для чтения отдельных столбцов); `transposed` — аналогична таблице `system.asynchronous_metric_log`, метрики/события хранятся по строкам; и самая интересная `transposed_with_wide_view` — создаётся базовая таблица со схемой `transposed`, а также добавляется представление со схемой `wide`, которое транслирует запросы в базовую таблицу. В режиме `transposed_with_wide_view` субсекундная точность для представления не поддерживается, `event_time_microseconds` — это лишь псевдоним для обратной совместимости. [#78412](https://github.com/ClickHouse/ClickHouse/pull/78412) ([alesapin](https://github.com/alesapin)). + +#### Улучшения {#improvement} + +* Сериализуется план запросов для запросов к таблицам `Distributed`. Добавлена новая настройка `serialize_query_plan`. При её включении запросы к таблице `Distributed` будут использовать сериализованный план запроса для удалённого выполнения. Это вводит новый тип пакета в протокол TCP; чтобы разрешить обработку этого пакета, в конфигурацию сервера нужно добавить `true`. [#69652](https://github.com/ClickHouse/ClickHouse/pull/69652) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Поддержка типа `JSON` и чтения подстолбцов из представлений. [#76903](https://github.com/ClickHouse/ClickHouse/pull/76903) ([Pavel Kruglov](https://github.com/Avogar)). +* Добавлена поддержка ALTER DATABASE ... ON CLUSTER. [#79242](https://github.com/ClickHouse/ClickHouse/pull/79242) ([Tuan Pham Anh](https://github.com/tuanpach)). +* Обновления refreshable materialized view теперь записываются в `system.query_log`. [#71333](https://github.com/ClickHouse/ClickHouse/pull/71333) ([Michael Kolupaev](https://github.com/al13n321)). +* Пользовательские функции (UDF) теперь могут помечаться как детерминированные с помощью нового параметра в их конфигурации. Также кэш запросов теперь проверяет, являются ли UDF, вызываемые внутри запроса, детерминированными. В этом случае результат запроса кэшируется. (Issue [#59988](https://github.com/ClickHouse/ClickHouse/issues/59988)). [#77769](https://github.com/ClickHouse/ClickHouse/pull/77769) ([Jimmy Aguilar Mena](https://github.com/Ergus)). +* Включён механизм экспоненциальной задержки (backoff) для всех типов реплицированных задач. Это позволит снизить использование CPU, потребление памяти и размеры лог-файлов. Добавлены новые настройки `max_postpone_time_for_failed_replicated_fetches_ms`, `max_postpone_time_for_failed_replicated_merges_ms` и `max_postpone_time_for_failed_replicated_tasks_ms`, которые аналогичны `max_postpone_time_for_failed_mutations_ms`. [#74576](https://github.com/ClickHouse/ClickHouse/pull/74576) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* Добавлен `query_id` в таблицу `system.errors`. Закрывает [#75815](https://github.com/ClickHouse/ClickHouse/issues/75815). [#76581](https://github.com/ClickHouse/ClickHouse/pull/76581) ([Vladimir Baikov](https://github.com/bkvvldmr)). +* Добавлена поддержка преобразования `UInt128` в `IPv6`. Это позволяет выполнять операцию `bitAnd` и другие арифметические операции с `IPv6`, а также преобразовывать результат обратно в `IPv6`. Закрывает [#76752](https://github.com/ClickHouse/ClickHouse/issues/76752). В частности, теперь результат операции `bitAnd` над `IPv6` также можно преобразовать обратно в `IPv6`. См. также [#57707](https://github.com/ClickHouse/ClickHouse/pull/57707). [#76928](https://github.com/ClickHouse/ClickHouse/pull/76928) ([Muzammil Abdul Rehman](https://github.com/muzammilar)). +* По умолчанию специальные значения `Bool` в текстовых форматах внутри типа `Variant` больше не парсятся. При необходимости это поведение можно включить с помощью настройки `allow_special_bool_values_inside_variant`. [#76974](https://github.com/ClickHouse/ClickHouse/pull/76974) ([Pavel Kruglov](https://github.com/Avogar)). +* Добавлена поддержка настройки времени ожидания для каждой задачи для низкоприоритетных запросов (`priority`) на уровне сессии и сервера. [#77013](https://github.com/ClickHouse/ClickHouse/pull/77013) ([VicoWu](https://github.com/VicoWu)). +* Реализовано сравнение значений типа данных JSON. Теперь объекты JSON можно сравнивать так же, как Map. [#77397](https://github.com/ClickHouse/ClickHouse/pull/77397) ([Pavel Kruglov](https://github.com/Avogar)). +* Улучшена поддержка управления доступом для `system.kafka_consumers`. Добавлен проброс внутренних ошибок `librdkafka` (стоит отметить, что это откровенно паршивая библиотека). [#77700](https://github.com/ClickHouse/ClickHouse/pull/77700) ([Ilya Golshtein](https://github.com/ilejn)). +* Добавлена валидация настроек движка таблицы Buffer. [#77840](https://github.com/ClickHouse/ClickHouse/pull/77840) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* Добавлен конфигурационный параметр `enable_hdfs_pread` для включения или отключения `pread` в `HDFS`. [#77885](https://github.com/ClickHouse/ClickHouse/pull/77885) ([kevinyhzou](https://github.com/KevinyhZou)). +* Добавлены profile events, считающие количество запросов чтения и записи ZooKeeper `multi`. [#77888](https://github.com/ClickHouse/ClickHouse/pull/77888) ([JackyWoo](https://github.com/JackyWoo)). +* Разрешено создание и вставка во временные таблицы, когда включён параметр `disable_insertion_and_mutation`. [#77901](https://github.com/ClickHouse/ClickHouse/pull/77901) ([Xu Jia](https://github.com/XuJia0210)). +* Уменьшить значение параметра `max_insert_delayed_streams_for_parallel_write` до 100. [#77919](https://github.com/ClickHouse/ClickHouse/pull/77919) ([Azat Khuzhin](https://github.com/azat)). +* Исправлен разбор года в синтаксисе Joda (это из мира Java, если вам интересно), например `yyy`. [#77973](https://github.com/ClickHouse/ClickHouse/pull/77973) ([李扬](https://github.com/taiyang-li)). +* Присоединение частей таблиц `MergeTree` будет выполняться в порядке следования блоков, что важно для специальных алгоритмов слияния, таких как `ReplacingMergeTree`. Это закрывает [#71009](https://github.com/ClickHouse/ClickHouse/issues/71009). [#77976](https://github.com/ClickHouse/ClickHouse/pull/77976) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Правила маскировки запросов теперь могут выбрасывать `LOGICAL_ERROR` при срабатывании соответствия. Это поможет проверить, не происходит ли утечка предопределённого пароля где-либо в логах. [#78094](https://github.com/ClickHouse/ClickHouse/pull/78094) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Добавлен столбец `index_length_column` в `information_schema.tables` для лучшей совместимости с MySQL. [#78119](https://github.com/ClickHouse/ClickHouse/pull/78119) ([Paweł Zakrzewski](https://github.com/KrzaQ)). +* Добавлены две новые метрики: `TotalMergeFailures` и `NonAbortedMergeFailures`. Эти метрики необходимы для обнаружения случаев, когда слишком много слияний завершается с ошибкой за короткий промежуток времени. [#78150](https://github.com/ClickHouse/ClickHouse/pull/78150) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Исправлен некорректный разбор S3 URL-адреса, когда ключ не указан в path-style. [#78185](https://github.com/ClickHouse/ClickHouse/pull/78185) ([Arthur Passos](https://github.com/arthurpassos)). +* Исправлены некорректные значения асинхронных метрик `BlockActiveTime`, `BlockDiscardTime`, `BlockWriteTime`, `BlockQueueTime` и `BlockReadTime` (до изменения 1 секунда ошибочно учитывалась как 0.001). [#78211](https://github.com/ClickHouse/ClickHouse/pull/78211) ([filimonov](https://github.com/filimonov)). +* Теперь соблюдается лимит `loading_retries` для ошибок при отправке данных в materialized view для StorageS3(Azure)Queue. Ранее такие ошибки повторялись бесконечно. [#78313](https://github.com/ClickHouse/ClickHouse/pull/78313) ([Kseniia Sumarokova](https://github.com/kssenii)). +* В DeltaLake с реализацией `delta-kernel-rs` исправлены проблемы с производительностью и индикатором выполнения. [#78368](https://github.com/ClickHouse/ClickHouse/pull/78368) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Добавлена поддержка `include`, `from_env`, `from_zk` для runtime-дисков. Закрывает [#78177](https://github.com/ClickHouse/ClickHouse/issues/78177). [#78470](https://github.com/ClickHouse/ClickHouse/pull/78470) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Добавлено динамическое предупреждение в таблицу `system.warnings` для длительно выполняющихся мутаций. [#78658](https://github.com/ClickHouse/ClickHouse/pull/78658) ([Bharat Nallan](https://github.com/bharatnc)). +* Добавлено поле `condition` в системную таблицу `system.query_condition_cache`. В нём хранится исходный текст условия, хэш которого используется в качестве ключа в кэше условий запроса. [#78671](https://github.com/ClickHouse/ClickHouse/pull/78671) ([Robert Schulze](https://github.com/rschu1ze)). +* Разрешено пустое значение при разбиении на партиции в Hive. [#78816](https://github.com/ClickHouse/ClickHouse/pull/78816) ([Arthur Passos](https://github.com/arthurpassos)). +* Исправлено приведение типов в операторе `IN` для `BFloat16` (то есть теперь `SELECT toBFloat16(1) IN [1, 2, 3];` возвращает `1`). Закрыта задача [#78754](https://github.com/ClickHouse/ClickHouse/issues/78754). [#78839](https://github.com/ClickHouse/ClickHouse/pull/78839) ([Raufs Dunamalijevs](https://github.com/rienath)). +* Не проверять части на других дисках в `MergeTree`, если указан `disk = ...`. [#78855](https://github.com/ClickHouse/ClickHouse/pull/78855) ([Azat Khuzhin](https://github.com/azat)). +* Типы данных в `used_data_type_families` в `system.query_log` теперь записываются с каноническими именами. [#78972](https://github.com/ClickHouse/ClickHouse/pull/78972) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Очистка настроек при выполнении `recoverLostReplica`, аналогично тому, как это было сделано в [#78637](https://github.com/ClickHouse/ClickHouse/pull/78637). [#79113](https://github.com/ClickHouse/ClickHouse/pull/79113) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Использовать столбцы вставки для вывода схемы INFILE. [#78490](https://github.com/ClickHouse/ClickHouse/pull/78490) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). + +#### Исправление ошибки (ошибка, проявляющаяся для пользователя, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* Исправлен некорректный анализ проекций при использовании `count(Nullable)` в агрегатных проекциях. Это исправляет [#74495](https://github.com/ClickHouse/ClickHouse/issues/74495). Этот PR также добавляет дополнительное логирование анализа проекций, чтобы прояснить, почему проекция используется или не используется. [#74498](https://github.com/ClickHouse/ClickHouse/pull/74498) ([Amos Bird](https://github.com/amosbird)). +* Исправлена ошибка `Part <...> does not contain in snapshot of previous virtual parts. (PART_IS_TEMPORARILY_LOCKED)` при выполнении `DETACH PART`. [#76039](https://github.com/ClickHouse/ClickHouse/pull/76039) ([Aleksei Filatov](https://github.com/aalexfvk)). +* Исправлена работа пропускающих индексов с выражениями, содержащими литералы, в анализаторе, а также удалены тривиальные приведения типов во время анализа индексов. [#77229](https://github.com/ClickHouse/ClickHouse/pull/77229) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена ошибка, из-за которой параметр запроса `close_session` никак не влиял на работу, и именованные сессии закрывались только после `session_timeout`. [#77336](https://github.com/ClickHouse/ClickHouse/pull/77336) ([Alexey Katsman](https://github.com/alexkats)). +* Исправлено получение сообщений с сервера NATS без привязанных materialized views. [#77392](https://github.com/ClickHouse/ClickHouse/pull/77392) ([Dmitry Novikov](https://github.com/dmitry-sles-novikov)). +* Исправлена логическая ошибка при чтении из пустого `FileLog` с использованием табличной функции `merge`, закрыт [#75575](https://github.com/ClickHouse/ClickHouse/issues/75575). [#77441](https://github.com/ClickHouse/ClickHouse/pull/77441) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Использовать настройки формата по умолчанию при сериализации `Dynamic` из общего варианта. [#77572](https://github.com/ClickHouse/ClickHouse/pull/77572) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена проверка наличия пути к данным таблицы на локальном диске. [#77608](https://github.com/ClickHouse/ClickHouse/pull/77608) ([Tuan Pham Anh](https://github.com/tuanpach)). +* Исправлена передача константных значений на удалённый сервер для некоторых типов. [#77634](https://github.com/ClickHouse/ClickHouse/pull/77634) ([Pavel Kruglov](https://github.com/Avogar)). +* Устранён сбой, вызванный истекшим контекстом в S3/AzureQueue. [#77720](https://github.com/ClickHouse/ClickHouse/pull/77720) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Теперь учетные данные скрываются в таблицах с движками RabbitMQ, Nats, Redis и AzureQueue. [#77755](https://github.com/ClickHouse/ClickHouse/pull/77755) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлено неопределённое поведение при сравнении значений `NaN` в функциях `argMin`/`argMax`. [#77756](https://github.com/ClickHouse/ClickHouse/pull/77756) ([Raúl Marín](https://github.com/Algunenano)). +* Теперь регулярно проверяется, были ли слияния и мутации отменены, даже если операция не создает блоков для записи. [#77766](https://github.com/ClickHouse/ClickHouse/pull/77766) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Исправлена проблема, из-за которой refreshable materialized view в реплицируемой базе данных не работала на вновь добавленных репликах. [#77774](https://github.com/ClickHouse/ClickHouse/pull/77774) ([Michael Kolupaev](https://github.com/al13n321)). +* Исправлено возможное падение при возникновении ошибки `NOT_FOUND_COLUMN_IN_BLOCK`. [#77854](https://github.com/ClickHouse/ClickHouse/pull/77854) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Исправлена ошибка, приводившая к сбою в S3/AzureQueue при заполнении данных. [#77878](https://github.com/ClickHouse/ClickHouse/pull/77878) ([Bharat Nallan](https://github.com/bharatnc)). +* Отключён нечеткий поиск по истории в SSH-сервере (так как для него требуется библиотека skim). [#78002](https://github.com/ClickHouse/ClickHouse/pull/78002) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена ошибка, из-за которой запрос векторного поиска по неиндексированному столбцу возвращал некорректные результаты, если в таблице имелся другой векторный столбец с определённым индексом сходства векторов. (Issue [#77978](https://github.com/ClickHouse/ClickHouse/issues/77978)). [#78069](https://github.com/ClickHouse/ClickHouse/pull/78069) ([Shankar Iyer](https://github.com/shankar-iyer)). +* Исправлена незначительная ошибка в приглашении с запросом "The requested output format {} is binary... Do you want to output it anyway? [y/N]". [#78095](https://github.com/ClickHouse/ClickHouse/pull/78095) ([Azat Khuzhin](https://github.com/azat)). +* Исправление ошибки при использовании `toStartOfInterval` с нулевым аргументом origin. [#78096](https://github.com/ClickHouse/ClickHouse/pull/78096) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Запрещена передача пустого параметра запроса `session_id` в HTTP-интерфейсе. [#78098](https://github.com/ClickHouse/ClickHouse/pull/78098) ([Alexey Katsman](https://github.com/alexkats)). +* Исправлена проблема перезаписи метаданных в базе данных `Replicated`, которая могла произойти из‑за выполнения запроса `RENAME` сразу после запроса `ALTER`. [#78107](https://github.com/ClickHouse/ClickHouse/pull/78107) ([Nikolay Degterinsky](https://github.com/evillique)). +* Исправлена ошибка, приводившая к сбою в движке `NATS`. [#78108](https://github.com/ClickHouse/ClickHouse/pull/78108) ([Dmitry Novikov](https://github.com/dmitry-sles-novikov)). +* Не пытайтесь создавать `history_file` во встроенном SSH-клиенте (в предыдущих версиях создание всегда завершалось неудачей, хотя предпринимаялась попытка). [#78112](https://github.com/ClickHouse/ClickHouse/pull/78112) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена проблема, из-за которой в `system.detached_tables` отображалась некорректная информация после выполнения запросов `RENAME DATABASE` или `DROP TABLE`. [#78126](https://github.com/ClickHouse/ClickHouse/pull/78126) ([Nikolay Degterinsky](https://github.com/evillique)). +* Исправлена проверка на избыточное количество таблиц в базе данных `Replicated` после [#77274](https://github.com/ClickHouse/ClickHouse/pull/77274). Также проверка теперь выполняется до создания хранилища, чтобы избежать создания неучтённых узлов в Keeper в случае `ReplicatedMergeTree` или `KeeperMap`. [#78127](https://github.com/ClickHouse/ClickHouse/pull/78127) ([Nikolay Degterinsky](https://github.com/evillique)). +* Исправлено возможное аварийное завершение работы из‑за параллельной инициализации метаданных `S3Queue`. [#78131](https://github.com/ClickHouse/ClickHouse/pull/78131) ([Azat Khuzhin](https://github.com/azat)). +* Функции `groupArray*` теперь генерируют ошибку `BAD_ARGUMENTS` для значения 0 типа Int в аргументе `max_size` (как это уже делается для значения типа UInt), вместо попытки выполнения с ним. [#78140](https://github.com/ClickHouse/ClickHouse/pull/78140) ([Eduard Karacharov](https://github.com/korowa)). +* Исправлен сбой при восстановлении потерянной реплики, возникавший, если локальная таблица удалялась до её отсоединения. [#78173](https://github.com/ClickHouse/ClickHouse/pull/78173) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена ошибка, из-за которой столбец "alterable" в `system.s3_queue_settings` всегда возвращал `false`. [#78187](https://github.com/ClickHouse/ClickHouse/pull/78187) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Скрывать подпись доступа Azure, чтобы она не отображалась пользователю и не попадала в логи. [#78189](https://github.com/ClickHouse/ClickHouse/pull/78189) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлена предварительная выборка подпотоков с префиксами в частях формата Wide. [#78205](https://github.com/ClickHouse/ClickHouse/pull/78205) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлены падения и некорректные результаты `mapFromArrays` в случае массива ключей типа `LowCardinality(Nullable)`. [#78240](https://github.com/ClickHouse/ClickHouse/pull/78240) ([Eduard Karacharov](https://github.com/korowa)). +* Исправлены параметры аутентификации в delta-kernel-rs. [#78255](https://github.com/ClickHouse/ClickHouse/pull/78255) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Не планировать задачу Refreshable Materialized Views, если у реплики параметр `disable_insertion_and_mutation` установлен в true. Поскольку задача представляет собой вставку, она завершится с ошибкой, если `disable_insertion_and_mutation` равно true. [#78277](https://github.com/ClickHouse/ClickHouse/pull/78277) ([Xu Jia](https://github.com/XuJia0210)). +* Проверяется доступ к базовым таблицам движка `Merge`. [#78339](https://github.com/ClickHouse/ClickHouse/pull/78339) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* Модификатор `FINAL` может быть проигнорирован при выполнении запроса к таблице `Distributed`. [#78428](https://github.com/ClickHouse/ClickHouse/pull/78428) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* `bitmapMin` возвращает uint32_max, если bitmap пуст (и uint64_max, если тип входных данных имеет больший размер), что соответствует поведению минимального значения для пустого roaring_bitmap. [#78444](https://github.com/ClickHouse/ClickHouse/pull/78444) ([wxybear](https://github.com/wxybear)). +* Отключена параллельная обработка запроса непосредственно после чтения секции FROM при включённом `distributed_aggregation_memory_efficient`, так как это могло приводить к логической ошибке. Закрывает [#76934](https://github.com/ClickHouse/ClickHouse/issues/76934). [#78500](https://github.com/ClickHouse/ClickHouse/pull/78500) ([flynn](https://github.com/ucasfl)). +* Устанавливать как минимум один поток для чтения в случае, если после применения настройки `max_streams_to_max_threads_ratio` не запланировано ни одного потока. [#78505](https://github.com/ClickHouse/ClickHouse/pull/78505) ([Eduard Karacharov](https://github.com/korowa)). +* В хранилище `S3Queue` устранена логическая ошибка "Cannot unregister: table uuid is not registered". Закрывает [#78285](https://github.com/ClickHouse/ClickHouse/issues/78285). [#78541](https://github.com/ClickHouse/ClickHouse/pull/78541) ([Kseniia Sumarokova](https://github.com/kssenii)). +* ClickHouse теперь умеет корректно определять свой cgroup v2 на системах, где одновременно включены cgroups v1 и v2. [#78566](https://github.com/ClickHouse/ClickHouse/pull/78566) ([Grigory Korolev](https://github.com/gkorolev)). +* Табличные функции `-Cluster` завершались с ошибкой при использовании табличных настроек. [#78587](https://github.com/ClickHouse/ClickHouse/pull/78587) ([Daniil Ivanik](https://github.com/divanik)). +* Улучшены проверки при выполнении INSERT, когда ReplicatedMergeTree не поддерживает транзакции. [#78633](https://github.com/ClickHouse/ClickHouse/pull/78633) ([Azat Khuzhin](https://github.com/azat)). +* Очистка настроек запроса при операции ATTACH. [#78637](https://github.com/ClickHouse/ClickHouse/pull/78637) ([Raúl Marín](https://github.com/Algunenano)). +* Устранена ошибка, приводившая к аварийному завершению работы при указании некорректного пути в `iceberg_metadata_file_path`. [#78688](https://github.com/ClickHouse/ClickHouse/pull/78688) ([alesapin](https://github.com/alesapin)). +* В движке таблиц `DeltaLake` с реализацией delta-kernel-s исправлена ошибка, возникавшая, когда схема чтения отличалась от схемы таблицы и при этом были столбцы партиции, что приводило к ошибке "not found column". [#78690](https://github.com/ClickHouse/ClickHouse/pull/78690) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлена проблема, при которой после постановки именованной сессии на закрытие (но до истечения тайм-аута) создание новой именованной сессии с тем же именем приводило к тому, что она закрывалась в тот момент, когда было запланировано закрытие первой сессии. [#78698](https://github.com/ClickHouse/ClickHouse/pull/78698) ([Alexey Katsman](https://github.com/alexkats)). +* Исправлены несколько типов запросов `SELECT`, читающих из таблиц с движком `MongoDB` или табличной функцией `mongodb`: запросы с неявным приведением константного значения в условии `WHERE` (например, `WHERE datetime = '2025-03-10 00:00:00'`); запросы с `LIMIT` и `GROUP BY`. Ранее они могли возвращать неправильный результат. [#78777](https://github.com/ClickHouse/ClickHouse/pull/78777) ([Anton Popov](https://github.com/CurtizJ)). +* Не блокировать завершение работы таблицы во время выполнения `CHECK TABLE`. [#78782](https://github.com/ClickHouse/ClickHouse/pull/78782) ([Raúl Marín](https://github.com/Algunenano)). +* Исправление в Keeper: исправлен подсчет эфемерных узлов во всех случаях. [#78799](https://github.com/ClickHouse/ClickHouse/pull/78799) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлено ошибочное приведение типов в `StorageDistributed` при использовании табличных функций, кроме `view`. Закрывает [#78464](https://github.com/ClickHouse/ClickHouse/issues/78464). [#78828](https://github.com/ClickHouse/ClickHouse/pull/78828) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Исправлена несогласованность форматирования для `tupleElement(*, 1)`. Закрывает [#78639](https://github.com/ClickHouse/ClickHouse/issues/78639). [#78832](https://github.com/ClickHouse/ClickHouse/pull/78832) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Словари типа `ssd_cache` теперь отклоняют нулевые или отрицательные значения параметров `block_size` и `write_buffer_size` (issue [#78314](https://github.com/ClickHouse/ClickHouse/issues/78314)). [#78854](https://github.com/ClickHouse/ClickHouse/pull/78854) ([Elmi Ahmadov](https://github.com/ahmadov)). +* Исправлено падение refreshable materialized view при выполнении ALTER после некорректного завершения работы. [#78858](https://github.com/ClickHouse/ClickHouse/pull/78858) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена обработка некорректных значений типа `DateTime` в формате `CSV`. [#78919](https://github.com/ClickHouse/ClickHouse/pull/78919) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправление в Keeper: не вызывать watch-события для неуспешных multi-запросов. [#79247](https://github.com/ClickHouse/ClickHouse/pull/79247) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлена ошибка чтения таблицы Iceberg, возникавшая, когда минимальное и максимальное значения указывались явно, но были `NULL`. Отмечено, что библиотека Go Iceberg генерирует чрезвычайно неудачные файлы. Исправление закрывает [#78740](https://github.com/ClickHouse/ClickHouse/issues/78740). [#78764](https://github.com/ClickHouse/ClickHouse/pull/78764) ([flynn](https://github.com/ucasfl)). + +#### Улучшения сборки, тестирования и упаковки {#buildtestingpackaging-improvement} + +* Учитываются целевые возможности процессора в Rust и включена LTO во всех crate'ах. [#78590](https://github.com/ClickHouse/ClickHouse/pull/78590) ([Raúl Marín](https://github.com/Algunenano)). + +### Выпуск ClickHouse 25.3 LTS, 2025-03-20 {#253} + +#### Обратное несовместимое изменение {#backward-incompatible-change} + +* Запрещено выполнять TRUNCATE для реплицируемых баз данных. [#76651](https://github.com/ClickHouse/ClickHouse/pull/76651) ([Bharat Nallan](https://github.com/bharatnc)). +* Отменено изменение, при котором пропускался кеш индексов. [#77447](https://github.com/ClickHouse/ClickHouse/pull/77447) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). + +#### Новые возможности {#new-feature} + +* Тип данных `JSON` готов к промышленной эксплуатации. См. [https://jsonbench.com/](https://jsonbench.com/). Типы данных `Dynamic` и `Variant` готовы к промышленной эксплуатации. [#77785](https://github.com/ClickHouse/ClickHouse/pull/77785) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлен протокол SSH для clickhouse-server. Теперь можно подключаться к ClickHouse с помощью любого SSH‑клиента. Закрывает: [#74340](https://github.com/ClickHouse/ClickHouse/issues/74340). [#74989](https://github.com/ClickHouse/ClickHouse/pull/74989) ([George Gamezardashvili](https://github.com/Infjoker)). +* Табличные функции заменяются их вариантами с суффиксом -Cluster, если включены параллельные реплики. Исправляет [#65024](https://github.com/ClickHouse/ClickHouse/issues/65024). [#70659](https://github.com/ClickHouse/ClickHouse/pull/70659) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Новая реализация Userspace Page Cache, которая позволяет кэшировать данные в памяти процесса вместо задействования кэша страниц операционной системы. Это полезно, когда данные хранятся на удалённой виртуальной файловой системе без локального файлового кэша. [#70509](https://github.com/ClickHouse/ClickHouse/pull/70509) ([Michael Kolupaev](https://github.com/al13n321)). +* Добавлена серверная настройка `concurrent_threads_scheduler`, которая управляет распределением CPU-слотов между одновременно выполняющимися запросами. Может принимать значения `round_robin` (предыдущее поведение) или `fair_round_robin`, чтобы устранить проблему несправедливого распределения CPU между запросами INSERT и SELECT. [#75949](https://github.com/ClickHouse/ClickHouse/pull/75949) ([Sergei Trifonov](https://github.com/serxa)). +* Добавлена агрегатная функция `estimateCompressionRatio` [#70801](https://github.com/ClickHouse/ClickHouse/issues/70801). [#76661](https://github.com/ClickHouse/ClickHouse/pull/76661) ([Tariq Almawash](https://github.com/talmawash)). +* Добавлена функция `arraySymmetricDifference`. Она возвращает все элементы из нескольких массивов-аргументов, которые не присутствуют во всех аргументах. Пример: `SELECT arraySymmetricDifference([1, 2], [2, 3])` возвращает `[1, 3]`. (issue [#61673](https://github.com/ClickHouse/ClickHouse/issues/61673)). [#76231](https://github.com/ClickHouse/ClickHouse/pull/76231) ([Filipp Abapolov](https://github.com/pheepa)). +* Добавлена возможность явно указывать файл метаданных для чтения при работе с Iceberg с помощью параметра настройки хранилища/табличной функции `iceberg_metadata_file_path`. Исправляет [#47412](https://github.com/ClickHouse/ClickHouse/issues/47412). [#77318](https://github.com/ClickHouse/ClickHouse/pull/77318) ([alesapin](https://github.com/alesapin)). +* Добавлена хеш-функция `keccak256`, широко используемая в реализациях блокчейнов, особенно в системах на основе EVM. [#76669](https://github.com/ClickHouse/ClickHouse/pull/76669) ([Arnaud Briche](https://github.com/arnaudbriche)). +* Добавлены три новые функции: `icebergTruncate` в соответствии со спецификацией [https://iceberg.apache.org/spec/#truncate-transform-details](https://iceberg.apache.org/spec/#truncate-transform-details), а также `toYearNumSinceEpoch` и `toMonthNumSinceEpoch`. Добавлена поддержка трансформации `truncate` при отсечении партиций для движка `Iceberg`. [#77403](https://github.com/ClickHouse/ClickHouse/pull/77403) ([alesapin](https://github.com/alesapin)). +* Добавлена поддержка типа данных `LowCardinality(Decimal)` [#72256](https://github.com/ClickHouse/ClickHouse/issues/72256). [#72833](https://github.com/ClickHouse/ClickHouse/pull/72833) ([zhanglistar](https://github.com/zhanglistar)). +* События профилирования `FilterTransformPassedRows` и `FilterTransformPassedBytes` показывают число строк и байт, отфильтрованных во время выполнения запроса. [#76662](https://github.com/ClickHouse/ClickHouse/pull/76662) ([Onkar Deshpande](https://github.com/onkar)). +* Поддержка типа метрики histogram. Интерфейс во многом повторяет клиент Prometheus: вы просто вызываете `observe(value)`, чтобы увеличить счетчик в бакете, соответствующем значению. Метрики histogram доступны через `system.histogram_metrics`. [#75736](https://github.com/ClickHouse/ClickHouse/pull/75736) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Поддержка неконстантного `CASE` при выборе по явным значениям. [#77399](https://github.com/ClickHouse/ClickHouse/pull/77399) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). + +#### Экспериментальные возможности {#experimental-feature} + +* Добавлена поддержка [Unity Catalog](https://www.databricks.com/product/unity-catalog) для таблиц DeltaLake поверх AWS S3 и локальной файловой системы. [#76988](https://github.com/ClickHouse/ClickHouse/pull/76988) ([alesapin](https://github.com/alesapin)). +* Представлена экспериментальная интеграция с каталогом сервисов AWS Glue для таблиц Iceberg. [#77257](https://github.com/ClickHouse/ClickHouse/pull/77257) ([alesapin](https://github.com/alesapin)). +* Добавлена поддержка динамического автообнаружения кластеров. Это расширяет существующую функцию автообнаружения _node_. ClickHouse теперь может автоматически обнаруживать и регистрировать новые _clusters_ по общему пути в ZooKeeper, используя ``. [#76001](https://github.com/ClickHouse/ClickHouse/pull/76001) ([Anton Ivashkin](https://github.com/ianton-ru)). +* Добавлена возможность автоматического выполнения слияний с очисткой целых партиций по истечении настраиваемого тайм-аута с помощью новой настройки `enable_replacing_merge_with_cleanup_for_min_age_to_force_merge`. [#76440](https://github.com/ClickHouse/ClickHouse/pull/76440) ([Christoph Wurm](https://github.com/cwurm)). + +#### Улучшение производительности {#performance-improvement} + +* Реализовано кэширование условий запроса для повышения производительности запросов с повторяющимися условиями. Диапазон части данных, не удовлетворяющих условию, запоминается как временный индекс в памяти. Последующие запросы будут использовать этот индекс. Закрыты задачи [#67768](https://github.com/ClickHouse/ClickHouse/issues/67768) [#69236](https://github.com/ClickHouse/ClickHouse/pull/69236) ([zhongyuankai](https://github.com/zhongyuankai)). +* Активное удаление данных из кэша при удалении частей. Не давать кэшу расти до максимального размера, если объём данных меньше. [#76641](https://github.com/ClickHouse/ClickHouse/pull/76641) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Заменены Int256 и UInt256 на встроенный тип clang i256 в арифметических вычислениях, что даёт прирост производительности [#70502](https://github.com/ClickHouse/ClickHouse/issues/70502). [#73658](https://github.com/ClickHouse/ClickHouse/pull/73658) ([李扬](https://github.com/taiyang-li)). +* В некоторых случаях (например, пустой столбец массива) части данных могут содержать пустые файлы. Можно пропускать запись пустых blob-объектов в ObjectStorage и хранить только метаданные для таких файлов, когда таблица размещена на диске с раздельными хранилищами метаданных и объектов. [#75860](https://github.com/ClickHouse/ClickHouse/pull/75860) ([Alexander Gololobov](https://github.com/davenger)). +* Повышена производительность вычисления min/max для Decimal32/Decimal64/DateTime64. [#76570](https://github.com/ClickHouse/ClickHouse/pull/76570) ([李扬](https://github.com/taiyang-li)). +* Компиляция запросов (настройка `compile_expressions`) теперь учитывает тип машины. Это существенно ускоряет такие запросы. [#76753](https://github.com/ClickHouse/ClickHouse/pull/76753) ([ZhangLiStar](https://github.com/zhanglistar)). +* Оптимизирован `arraySort`. [#76850](https://github.com/ClickHouse/ClickHouse/pull/76850) ([李扬](https://github.com/taiyang-li)). +* Отключён `filesystem_cache_prefer_bigger_buffer_size`, когда кэш используется пассивно, например для слияний. [#77898](https://github.com/ClickHouse/ClickHouse/pull/77898) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Применён атрибут `preserve_most` в ряде мест в коде, что позволяет немного улучшить генерацию кода. [#67778](https://github.com/ClickHouse/ClickHouse/pull/67778) ([Nikita Taranov](https://github.com/nickitat)). +* Более быстрое завершение работы серверов ClickHouse (устранена задержка 2,5 сек). [#76550](https://github.com/ClickHouse/ClickHouse/pull/76550) ([Azat Khuzhin](https://github.com/azat)). +* Исключено избыточное выделение памяти в ReadBufferFromS3 и других буферах удалённого чтения, их потребление памяти уменьшено вдвое. [#76692](https://github.com/ClickHouse/ClickHouse/pull/76692) ([Sema Checherinda](https://github.com/CheSema)). +* Обновлён zstd с версии 1.5.5 до 1.5.7, что может привести к некоторым [улучшениям производительности](https://github.com/facebook/zstd/releases/tag/v1.5.7). [#77137](https://github.com/ClickHouse/ClickHouse/pull/77137) ([Pradeep Chhetri](https://github.com/chhetripradeep)). +* Снижено потребление памяти во время предзагрузки JSON-столбца в Wide-частях. Это актуально, когда ClickHouse используется поверх общего хранилища, например в ClickHouse Cloud. [#77640](https://github.com/ClickHouse/ClickHouse/pull/77640) ([Pavel Kruglov](https://github.com/Avogar)). + +#### Улучшения {#improvement} + +* Реализована поддержка атомарного переименования при использовании `TRUNCATE` с `INTO OUTFILE`. Исправляет [#70323](https://github.com/ClickHouse/ClickHouse/issues/70323). [#77181](https://github.com/ClickHouse/ClickHouse/pull/77181) ([Onkar Deshpande](https://github.com/onkar)). +* Больше нельзя использовать `NaN` или `inf` в качестве значений параметров с плавающей запятой. Впрочем, раньше в этом тоже не было никакого смысла. [#77546](https://github.com/ClickHouse/ClickHouse/pull/77546) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* По умолчанию отключены параллельные реплики, когда analyzer выключен, независимо от настройки `compatibility`. По‑прежнему можно изменить это поведение, явно установив `parallel_replicas_only_with_analyzer` в `false`. [#77115](https://github.com/ClickHouse/ClickHouse/pull/77115) ([Igor Nikonov](https://github.com/devcrafter)). +* Добавлена возможность задавать список заголовков, которые передаются из заголовков клиентского запроса внешнему HTTP-аутентификатору. [#77054](https://github.com/ClickHouse/ClickHouse/pull/77054) ([inv2004](https://github.com/inv2004)). +* Добавлена поддержка регистронезависимого сопоставления имён столбцов для полей в столбцах-кортежах. Закрыта задача [https://github.com/apache/incubator-gluten/issues/8324](https://github.com/apache/incubator-gluten/issues/8324). [#73780](https://github.com/ClickHouse/ClickHouse/pull/73780) ([李扬](https://github.com/taiyang-li)). +* Параметры кодека Gorilla теперь всегда сохраняются в метаданных таблицы в .sql-файле. Исправляет: [#70072](https://github.com/ClickHouse/ClickHouse/issues/70072). [#74814](https://github.com/ClickHouse/ClickHouse/pull/74814) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Реализованы улучшения парсинга для некоторых озер данных (парсинг идентификаторов последовательности: добавлена возможность разбора идентификаторов последовательности в manifest-файлах и парсинг Avro-метаданных: переработан парсер Avro-метаданных так, чтобы его было легко расширять для будущих улучшений). [#75010](https://github.com/ClickHouse/ClickHouse/pull/75010) ([Daniil Ivanik](https://github.com/divanik)). +* Из ORDER BY по умолчанию для таблицы `system.opentelemetry_span_log` удалён trace_id. [#75907](https://github.com/ClickHouse/ClickHouse/pull/75907) ([Azat Khuzhin](https://github.com/azat)). +* Шифрование (атрибут `encrypted_by`) теперь можно применять к любому конфигурационному файлу (config.xml, users.xml, вложенным конфигурационным файлам). Ранее оно работало только для корневого файла config.xml. [#75911](https://github.com/ClickHouse/ClickHouse/pull/75911) ([Mikhail Gorshkov](https://github.com/mgorshkov)). +* Улучшена таблица `system.warnings` и добавлена поддержка динамических сообщений-предупреждений, которые можно добавлять, обновлять и удалять. [#76029](https://github.com/ClickHouse/ClickHouse/pull/76029) ([Bharat Nallan](https://github.com/bharatnc)). +* Этот PR делает невозможным выполнение запроса `ALTER USER user1 ADD PROFILES a, DROP ALL PROFILES`, поскольку все операции `DROP` должны располагаться первыми. [#76242](https://github.com/ClickHouse/ClickHouse/pull/76242) ([pufit](https://github.com/pufit)). +* Различные улучшения в SYNC REPLICA (более информативные сообщения об ошибках, улучшенные тесты, проверки корректности). [#76307](https://github.com/ClickHouse/ClickHouse/pull/76307) ([Azat Khuzhin](https://github.com/azat)). +* Теперь используется корректный резервный механизм, когда multipart‑копирование в S3 завершается с ошибкой Access Denied во время резервного копирования. Multipart‑копирование может приводить к ошибке Access Denied, когда резервное копирование выполняется между бакетами с разными учётными данными доступа. [#76515](https://github.com/ClickHouse/ClickHouse/pull/76515) ([Antonio Andelic](https://github.com/antonio2368)). +* Обновлена librdkafka (которая представляет собой кучу мусора) до версии 2.8.0 (и эта куча от этого не становится лучше) и улучшена последовательность завершения работы таблиц Kafka, что сократило задержки при удалении таблиц и перезапуске сервера. `engine=Kafka` больше не выходит из группы потребителей явно при удалении таблицы. Вместо этого потребитель остается в группе до тех пор, пока не будет автоматически удалён после периода бездействия, равного `session_timeout_ms` (по умолчанию — 45 секунд). [#76621](https://github.com/ClickHouse/ClickHouse/pull/76621) ([filimonov](https://github.com/filimonov)). +* Исправлена валидация настроек запросов к S3. [#76658](https://github.com/ClickHouse/ClickHouse/pull/76658) ([Vitaly Baranov](https://github.com/vitlibar)). +* Системные таблицы, такие как `server_settings` или `settings`, имеют столбец `default` со значением по умолчанию, что удобно. Такой столбец добавлен в `merge_tree_settings` и `replicated_merge_tree_settings`. [#76942](https://github.com/ClickHouse/ClickHouse/pull/76942) ([Diego Nieto](https://github.com/lesandie)). +* Добавлен `ProfileEvents::QueryPreempted`, который работает по той же логике, что и `CurrentMetrics::QueryPreempted`. [#77015](https://github.com/ClickHouse/ClickHouse/pull/77015) ([VicoWu](https://github.com/VicoWu)). +* Ранее реплицируемая база данных могла выводить в логи учетные данные, указанные в запросе. Это поведение исправлено. Исправлено: [#77123](https://github.com/ClickHouse/ClickHouse/issues/77123). [#77133](https://github.com/ClickHouse/ClickHouse/pull/77133) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Разрешен ALTER TABLE DROP PARTITION для диска `plain_rewritable`. [#77138](https://github.com/ClickHouse/ClickHouse/pull/77138) ([Julia Kartseva](https://github.com/jkartseva)). +* Параметр резервного копирования и восстановления `allow_s3_native_copy` теперь поддерживает три возможных значения: - `False` — S3 native copy не будет использоваться; - `True` (старое значение по умолчанию) — ClickHouse сначала попробует S3 native copy и, если это не удастся, переключится на подход «чтение+запись»; - `'auto'` (новое значение по умолчанию) — ClickHouse сначала сравнит учетные данные источника и назначения. Если они совпадают, ClickHouse попробует S3 native copy и затем при необходимости может переключиться на подход «чтение+запись». Если они различаются, ClickHouse сразу перейдет к подходу «чтение+запись». [#77401](https://github.com/ClickHouse/ClickHouse/pull/77401) ([Vitaly Baranov](https://github.com/vitlibar)). +* Добавлена поддержка использования AWS session token и учетных данных из переменных окружения в delta kernel для движка таблиц DeltaLake. [#77661](https://github.com/ClickHouse/ClickHouse/pull/77661) ([Kseniia Sumarokova](https://github.com/kssenii)). + +#### Исправление ошибки (ошибка, проявляющаяся для пользователя, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* Исправлено зависание при обработке ожидающей партии для асинхронного распределённого INSERT (например, из-за `No such file or directory`). [#72939](https://github.com/ClickHouse/ClickHouse/pull/72939) ([Azat Khuzhin](https://github.com/azat)). +* Улучшено преобразование DateTime при анализе индекса за счёт принудительного поведения «с насыщением» для неявных преобразований `Date` в `DateTime`. Это устраняет возможные неточности анализа индекса, вызванные ограничениями диапазона значений DateTime. Исправляет [#73307](https://github.com/ClickHouse/ClickHouse/issues/73307). Также исправляет явное преобразование `toDateTime`, когда `date_time_overflow_behavior = 'ignore'`, что является значением по умолчанию. [#73326](https://github.com/ClickHouse/ClickHouse/pull/73326) ([Amos Bird](https://github.com/amosbird)). +* Исправлены всевозможные ошибки из-за гонки между UUID и именами таблиц (в частности, устранена гонка между `RENAME` и `RESTART REPLICA`: в случае одновременного выполнения `RENAME` с `SYSTEM RESTART REPLICA` вы могли в результате перезапустить неверную реплику и/или оставить одну из таблиц в состоянии `Table X is being restarted`). [#76308](https://github.com/ClickHouse/ClickHouse/pull/76308) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена потеря данных при включённой async insert и использовании INSERT INTO ... FROM FILE ... с блоками неравного размера: если размер первого блока < async_max_size, а второго блока > async_max_size, второй блок не вставлялся и данные оставались в `squashing`. [#76343](https://github.com/ClickHouse/ClickHouse/pull/76343) ([Han Fei](https://github.com/hanfei1991)). +* Поле 'marks' переименовано в 'marks_bytes' в `system.data_skipping_indices`. [#76374](https://github.com/ClickHouse/ClickHouse/pull/76374) ([Robert Schulze](https://github.com/rschu1ze)). +* Исправлена обработка динамического изменения размера кэша файловой системы при возникновении неожиданных ошибок во время вытеснения. [#76466](https://github.com/ClickHouse/ClickHouse/pull/76466) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлена инициализация `used_flag` в параллельном хеше. Это могло приводить к сбою сервера. [#76580](https://github.com/ClickHouse/ClickHouse/pull/76580) ([Nikita Taranov](https://github.com/nickitat)). +* Исправлена логическая ошибка при вызове функции `defaultProfiles` внутри проекции. [#76627](https://github.com/ClickHouse/ClickHouse/pull/76627) ([pufit](https://github.com/pufit)). +* Не запрашивать интерактивную Basic-аутентификацию в браузере Web UI. Закрывает [#76319](https://github.com/ClickHouse/ClickHouse/issues/76319). [#76637](https://github.com/ClickHouse/ClickHouse/pull/76637) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлено исключение THERE_IS_NO_COLUMN, возникавшее при выборке логического литерала из distributed таблиц. [#76656](https://github.com/ClickHouse/ClickHouse/pull/76656) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Подкаталог внутри каталога таблицы теперь выбирается более оптимальным образом. [#76681](https://github.com/ClickHouse/ClickHouse/pull/76681) ([Daniil Ivanik](https://github.com/divanik)). +* Исправлена ошибка `Not found column in block`, возникавшая после изменения таблицы с подстолбцом в первичном ключе. После [https://github.com/ClickHouse/ClickHouse/pull/72644](https://github.com/ClickHouse/ClickHouse/pull/72644) также требуется [https://github.com/ClickHouse/ClickHouse/pull/74403](https://github.com/ClickHouse/ClickHouse/pull/74403). [#76686](https://github.com/ClickHouse/ClickHouse/pull/76686) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Добавлены тесты производительности для короткого замыкания по NULL и исправлены ошибки. [#76708](https://github.com/ClickHouse/ClickHouse/pull/76708) ([李扬](https://github.com/taiyang-li)). +* Перед финализацией выходных форматов теперь происходит сброс буферов записи. Исправлена ошибка `LOGICAL_ERROR`, возникавшая при финализации некоторых форматов вывода, например `JSONEachRowWithProgressRowOutputFormat`. [#76726](https://github.com/ClickHouse/ClickHouse/pull/76726) ([Antonio Andelic](https://github.com/antonio2368)). +* Добавлена поддержка двоичных UUID MongoDB ([#74452](https://github.com/ClickHouse/ClickHouse/issues/74452)) - Исправлено проталкивание предиката WHERE в MongoDB при использовании табличной функции ([#72210](https://github.com/ClickHouse/ClickHouse/issues/72210)) - Изменено сопоставление типов MongoDB - ClickHouse таким образом, что двоичный UUID MongoDB теперь может быть разобран только как UUID ClickHouse. Это должно избежать неоднозначностей и неожиданного поведения в будущем. - Исправлено сопоставление OID с сохранением обратной совместимости. [#76762](https://github.com/ClickHouse/ClickHouse/pull/76762) ([Kirill Nikiforov](https://github.com/allmazz)). +* Исправлена обработка исключений при параллельной десериализации префиксов JSON-подстолбцов. [#76809](https://github.com/ClickHouse/ClickHouse/pull/76809) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлено поведение функции lgamma для отрицательных целочисленных аргументов. [#76840](https://github.com/ClickHouse/ClickHouse/pull/76840) ([Ilya Kataev](https://github.com/IlyaKataev)). +* Исправлен анализ ключа в обратном порядке для явно определённых первичных ключей. Аналогично [#76654](https://github.com/ClickHouse/ClickHouse/issues/76654). [#76846](https://github.com/ClickHouse/ClickHouse/pull/76846) ([Amos Bird](https://github.com/amosbird)). +* Исправлена Pretty-печать логических значений Bool в формате JSON. [#76905](https://github.com/ClickHouse/ClickHouse/pull/76905) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлено возможное аварийное завершение работы из‑за некорректного отката столбца JSON при ошибке во время асинхронных вставок. [#76908](https://github.com/ClickHouse/ClickHouse/pull/76908) ([Pavel Kruglov](https://github.com/Avogar)). +* Ранее `multiIf` мог возвращать столбцы разных типов на этапах планирования и основного выполнения. Это приводило к тому, что с точки зрения C++ код имел неопределённое поведение. [#76914](https://github.com/ClickHouse/ClickHouse/pull/76914) ([Nikita Taranov](https://github.com/nickitat)). +* Исправлена ошибка некорректной сериализации константных ключей с типом Nullable в MergeTree. Исправляет [#76939](https://github.com/ClickHouse/ClickHouse/issues/76939). [#76985](https://github.com/ClickHouse/ClickHouse/pull/76985) ([Amos Bird](https://github.com/amosbird)). +* Исправлена сортировка значений `BFloat16`. Исправление закрывает [#75487](https://github.com/ClickHouse/ClickHouse/issues/75487). Исправление закрывает [#75669](https://github.com/ClickHouse/ClickHouse/issues/75669). [#77000](https://github.com/ClickHouse/ClickHouse/pull/77000) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлена ошибка в JSON с подстолбцом типа Variant путем добавления проверки, пропускающей эфемерные подстолбцы при проверке согласованности парта. [#72187](https://github.com/ClickHouse/ClickHouse/issues/72187). [#77034](https://github.com/ClickHouse/ClickHouse/pull/77034) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). +* Исправлен краш при разборе шаблона в формате Values при несоответствии типов. [#77071](https://github.com/ClickHouse/ClickHouse/pull/77071) ([Pavel Kruglov](https://github.com/Avogar)). +* Больше не допускается создание таблиц EmbeddedRocksDB с подстолбцом в первичном ключе. Ранее такую таблицу можно было создать, но запросы SELECT завершались с ошибкой. [#77074](https://github.com/ClickHouse/ClickHouse/pull/77074) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлено некорректное сравнение в распределённых запросах, возникавшее из‑за того, что проталкивание предикатов на удалённые узлы не учитывало типы литералов. [#77093](https://github.com/ClickHouse/ClickHouse/pull/77093) ([Duc Canh Le](https://github.com/canhld94)). +* Исправлен краш при создании таблицы Kafka при возникновении исключения. [#77121](https://github.com/ClickHouse/ClickHouse/pull/77121) ([Pavel Kruglov](https://github.com/Avogar)). +* Добавлена поддержка JSON и подстолбцов в движках Kafka и RabbitMQ. [#77122](https://github.com/ClickHouse/ClickHouse/pull/77122) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена раскрутка стека исключений в macOS. [#77126](https://github.com/ClickHouse/ClickHouse/pull/77126) ([Eduard Karacharov](https://github.com/korowa)). +* Исправлена ошибка чтения подстолбца 'null' в функции getSubcolumn. [#77163](https://github.com/ClickHouse/ClickHouse/pull/77163) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена работа индекса bloom filter с типом данных `Array` и неподдерживаемыми функциями. [#77271](https://github.com/ClickHouse/ClickHouse/pull/77271) ([Pavel Kruglov](https://github.com/Avogar)). +* Следует проверять ограничение на число таблиц только при выполнении исходного запроса CREATE. [#77274](https://github.com/ClickHouse/ClickHouse/pull/77274) ([Nikolay Degterinsky](https://github.com/evillique)). +* Это не ошибка: `SELECT toBFloat16(-0.0) == toBFloat16(0.0)` теперь корректно возвращает `true` (ранее возвращал `false`). Это делает поведение согласованным с `Float32` и `Float64`. [#77290](https://github.com/ClickHouse/ClickHouse/pull/77290) ([Shankar Iyer](https://github.com/shankar-iyer)). +* Исправлена возможная ошибочная ссылка на неинициализированную переменную `key_index`, которая может приводить к падению в отладочных сборках (эта неинициализированная ссылка не вызывает проблем в релизных сборках, потому что последующий код, скорее всего, выбросит исключение). ### запись в документации об изменениях, затрагивающих пользователей. [#77305](https://github.com/ClickHouse/ClickHouse/pull/77305) ([wxybear](https://github.com/wxybear)). +* Исправлено имя партиции для значения типа Bool. Ошибка была внесена в [https://github.com/ClickHouse/ClickHouse/pull/74533](https://github.com/ClickHouse/ClickHouse/pull/74533). [#77319](https://github.com/ClickHouse/ClickHouse/pull/77319) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлено сравнение между кортежами, содержащими Nullable-элементы, и строками. Например, до изменения сравнение между Tuple `(1, null)` и String `'(1,null)'` приводило к ошибке. Другой пример — сравнение между Tuple `(1, a)`, где `a` — столбец типа Nullable, и String `'(1, 2)'`. Это изменение устраняет указанные проблемы. [#77323](https://github.com/ClickHouse/ClickHouse/pull/77323) ([Alexey Katsman](https://github.com/alexkats)). +* Исправлен сбой в ObjectStorageQueueSource. Баг был внесён в [https://github.com/ClickHouse/ClickHouse/pull/76358](https://github.com/ClickHouse/ClickHouse/pull/76358). [#77325](https://github.com/ClickHouse/ClickHouse/pull/77325) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена работа `async_insert` с `input`. [#77340](https://github.com/ClickHouse/ClickHouse/pull/77340) ([Azat Khuzhin](https://github.com/azat)). +* Исправление: `WITH FILL` мог приводить к ошибке NOT_FOUND_COLUMN_IN_BLOCK, если сортировочный столбец удалялся планировщиком. Похожая проблема возникала из-за несогласованного DAG, вычисляемого для выражения INTERPOLATE. [#77343](https://github.com/ClickHouse/ClickHouse/pull/77343) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Исправлено несколько LOGICAL_ERRORов при назначении псевдонима для некорректных узлов AST. [#77445](https://github.com/ClickHouse/ClickHouse/pull/77445) ([Raúl Marín](https://github.com/Algunenano)). +* В реализации файлового кэша исправлена обработка ошибок при записи сегмента файла. [#77471](https://github.com/ClickHouse/ClickHouse/pull/77471) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлена ошибка: DatabaseIceberg теперь использует корректный файл метаданных, предоставленный каталогом. Закрывает [#75187](https://github.com/ClickHouse/ClickHouse/issues/75187). [#77486](https://github.com/ClickHouse/ClickHouse/pull/77486) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Кэш запросов теперь рассматривает UDF как недетерминированные. Соответственно, результаты запросов с UDF больше не кэшируются. Ранее пользователи могли определять недетерминированные UDF, результаты которых ошибочно кэшировались (issue [#77553](https://github.com/ClickHouse/ClickHouse/issues/77553)). [#77633](https://github.com/ClickHouse/ClickHouse/pull/77633) ([Jimmy Aguilar Mena](https://github.com/Ergus)). +* Исправлена проблема, из-за которой system.filesystem_cache_log работал только при включённом параметре `enable_filesystem_cache_log`. [#77650](https://github.com/ClickHouse/ClickHouse/pull/77650) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлена логическая ошибка при вызове функции `defaultRoles` внутри проекции. Продолжение к [#76627](https://github.com/ClickHouse/ClickHouse/issues/76627). [#77667](https://github.com/ClickHouse/ClickHouse/pull/77667) ([pufit](https://github.com/pufit)). +* Вторые аргументы типа `Nullable` для функции `arrayResize` теперь запрещены. Ранее при использовании `Nullable` в качестве второго аргумента могло происходить что угодно — от ошибок до некорректных результатов. (issue [#48398](https://github.com/ClickHouse/ClickHouse/issues/48398)). [#77724](https://github.com/ClickHouse/ClickHouse/pull/77724) ([Manish Gill](https://github.com/mgill25)). +* Регулярно проверять, были ли слияния и мутации отменены, даже если операция не порождает блоков для записи. [#77766](https://github.com/ClickHouse/ClickHouse/pull/77766) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). + +#### Улучшения сборки, тестирования и упаковки {#buildtestingpackaging-improvement} + +* `clickhouse-odbc-bridge` и `clickhouse-library-bridge` перенесены в отдельный репозиторий, https://github.com/ClickHouse/odbc-bridge/. [#76225](https://github.com/ClickHouse/ClickHouse/pull/76225) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлена кросс-компиляция Rust и добавлена возможность полностью отключать Rust. [#76921](https://github.com/ClickHouse/ClickHouse/pull/76921) ([Raúl Marín](https://github.com/Algunenano)). + +### Версия ClickHouse 25.2, 2025-02-27 {#252} + +#### Изменение, нарушающее обратную совместимость {#backward-incompatible-change} + +* Полностью включён `async_load_databases` по умолчанию (даже для тех установок, где не обновлён `config.xml`). [#74772](https://github.com/ClickHouse/ClickHouse/pull/74772) ([Azat Khuzhin](https://github.com/azat)). +* Добавлены форматы `JSONCompactEachRowWithProgress` и `JSONCompactStringsEachRowWithProgress`. Продолжение [#69989](https://github.com/ClickHouse/ClickHouse/issues/69989). Форматы `JSONCompactWithNames` и `JSONCompactWithNamesAndTypes` больше не выводят "totals" — по‑видимому, это было ошибкой в реализации. [#75037](https://github.com/ClickHouse/ClickHouse/pull/75037) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Значение по умолчанию для `format_alter_operations_with_parentheses` изменено на true, чтобы устранить неоднозначность в списке команд ALTER (см. https://github.com/ClickHouse/ClickHouse/pull/59532). Это нарушает репликацию с кластерами версий до 24.3. Если вы обновляете кластер на более старой версии, отключите этот параметр в конфигурации сервера или сначала обновитесь до 24.3. [#75302](https://github.com/ClickHouse/ClickHouse/pull/75302) ([Raúl Marín](https://github.com/Algunenano)). +* Удалена возможность фильтровать сообщения журнала с помощью регулярных выражений. Реализация приводила к состоянию гонки, поэтому её пришлось удалить. [#75577](https://github.com/ClickHouse/ClickHouse/pull/75577) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Значение параметра `min_chunk_bytes_for_parallel_parsing` больше не может быть нулём. Это исправляет: [#71110](https://github.com/ClickHouse/ClickHouse/issues/71110). [#75239](https://github.com/ClickHouse/ClickHouse/pull/75239) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Добавлена проверка параметров в конфигурации кэша. Ранее несуществующие параметры игнорировались, теперь они будут приводить к ошибке и должны быть удалены. [#75452](https://github.com/ClickHouse/ClickHouse/pull/75452) ([Kseniia Sumarokova](https://github.com/kssenii)). + +#### Новые возможности {#new-feature} + +* Добавлена поддержка типа `Nullable(JSON)`. [#73556](https://github.com/ClickHouse/ClickHouse/pull/73556) ([Pavel Kruglov](https://github.com/Avogar)). +* Добавлена поддержка подстолбцов в выражениях DEFAULT и MATERIALIZED. [#74403](https://github.com/ClickHouse/ClickHouse/pull/74403) ([Pavel Kruglov](https://github.com/Avogar)). +* Добавлена поддержка записи bloom-фильтров Parquet с помощью настройки `output_format_parquet_write_bloom_filter` (включена по умолчанию). [#71681](https://github.com/ClickHouse/ClickHouse/pull/71681) ([Michael Kolupaev](https://github.com/al13n321)). +* В Web UI теперь доступна интерактивная навигация по базам данных. [#75777](https://github.com/ClickHouse/ClickHouse/pull/75777) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Разрешена комбинация дисков только для чтения и с поддержкой записи в политике хранения (как в виде нескольких томов, так и в виде нескольких дисков). Это позволяет читать данные со всего тома, при этом вставки будут выполняться на диск с поддержкой записи (то есть политика хранения Copy-on-Write). [#75862](https://github.com/ClickHouse/ClickHouse/pull/75862) ([Azat Khuzhin](https://github.com/azat)). +* Добавлен новый движок базы данных `DatabaseBackup`, который позволяет мгновенно подключать таблицу/базу данных из резервной копии. [#75725](https://github.com/ClickHouse/ClickHouse/pull/75725) ([Maksim Kita](https://github.com/kitaisreal)). +* Добавлена поддержка подготовленных запросов (prepared statements) в протоколе Postgres wire. [#75035](https://github.com/ClickHouse/ClickHouse/pull/75035) ([scanhex12](https://github.com/scanhex12)). +* Добавлена возможность ATTACH таблиц без уровня базы данных, что полезно для таблиц MergeTree, размещённых в Web, S3 и аналогичных внешних виртуальных файловых системах. [#75788](https://github.com/ClickHouse/ClickHouse/pull/75788) ([Azat Khuzhin](https://github.com/azat)). +* Добавлена новая функция сравнения строк `compareSubstrings` для сравнения частей двух строк. Пример: `SELECT compareSubstrings('Saxony', 'Anglo-Saxon', 0, 6, 5) AS result` означает «сравнить 6 байт строк „Saxon“ и „Anglo-Saxon“ лексикографически, начиная со смещения 0 в первой строке и со смещения 5 во второй строке». [#74070](https://github.com/ClickHouse/ClickHouse/pull/74070) ([lgbo](https://github.com/lgbo-ustc)). +* Добавлена новая функция `initialQueryStartTime`. Она возвращает время начала текущего запроса. Значение одинаково на всех сегментах при распределённом запросе. [#75087](https://github.com/ClickHouse/ClickHouse/pull/75087) ([Roman Lomonosov](https://github.com/lomik)). +* Добавлена поддержка SSL-аутентификации с именованными коллекциями для MySQL. Закрывает [#59111](https://github.com/ClickHouse/ClickHouse/issues/59111). [#59452](https://github.com/ClickHouse/ClickHouse/pull/59452) ([Nikolay Degterinsky](https://github.com/evillique)). + +#### Экспериментальные возможности {#experimental-features} + +* Добавлена новая настройка `enable_adaptive_memory_spill_scheduler`, которая позволяет нескольким операциям Grace JOIN в одном запросе отслеживать их суммарный объём потребляемой памяти и адаптивно инициировать сброс данных во внешнее хранилище, чтобы предотвратить MEMORY_LIMIT_EXCEEDED. [#72728](https://github.com/ClickHouse/ClickHouse/pull/72728) ([lgbo](https://github.com/lgbo-ustc)). +* Новый экспериментальный движок таблиц `Kafka` теперь полностью учитывает функциональные флаги Keeper. [#76004](https://github.com/ClickHouse/ClickHouse/pull/76004) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Восстановлен кодек (Intel) QPL, который был удалён в v24.10 из‑за лицензионных проблем. [#76021](https://github.com/ClickHouse/ClickHouse/pull/76021) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Для интеграции с HDFS добавлена поддержка конфигурационной опции `dfs.client.use.datanode.hostname`. [#74635](https://github.com/ClickHouse/ClickHouse/pull/74635) ([Mikhail Tiukavkin](https://github.com/freshertm)). + +#### Улучшение производительности {#performance-improvement} + +* Улучшена производительность чтения всего JSON-столбца в широких частях (Wide) из S3. Это сделано за счет добавления предварительного выборочного чтения (prefetch) для десериализации префиксов подстолбцов, кеширования десериализованных префиксов и параллельной десериализации префиксов подстолбцов. Это ускоряет чтение JSON-столбца из S3 в 4 раза в запросах типа `SELECT data FROM table` и примерно в 10 раз в запросах типа `SELECT data FROM table LIMIT 10`. [#74827](https://github.com/ClickHouse/ClickHouse/pull/74827) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлено лишнее блокирование в `parallel_hash`, когда `max_rows_in_join = max_bytes_in_join = 0`. [#75155](https://github.com/ClickHouse/ClickHouse/pull/75155) ([Nikita Taranov](https://github.com/nickitat)). +* Исправлено двойное предварительное выделение памяти в `ConcurrentHashJoin` в случае, когда стороны JOIN меняются местами оптимизатором. [#75149](https://github.com/ClickHouse/ClickHouse/pull/75149) ([Nikita Taranov](https://github.com/nickitat)). +* Небольшое улучшение в некоторых сценариях JOIN: предварительно вычисляется количество выходных строк и заранее резервируется память под них. [#75376](https://github.com/ClickHouse/ClickHouse/pull/75376) ([Alexander Gololobov](https://github.com/davenger)). +* Для запросов вида `WHERE a < b AND b < c AND c < 5` теперь можно выводить дополнительные условия сравнения (`a < 5 AND b < 5`) для повышения эффективности фильтрации. [#73164](https://github.com/ClickHouse/ClickHouse/pull/73164) ([Shichao Jin](https://github.com/jsc0218)). +* Улучшение в Keeper: отключено вычисление дайджеста при коммите в in-memory‑хранилище для повышения производительности. Его можно включить с помощью настройки `keeper_server.digest_enabled_on_commit`. Дайджест по-прежнему вычисляется при предварительной обработке запросов. [#75490](https://github.com/ClickHouse/ClickHouse/pull/75490) ([Antonio Andelic](https://github.com/antonio2368)). +* При возможности выполняется проталкивание (push down) выражения фильтра из JOIN ON. [#75536](https://github.com/ClickHouse/ClickHouse/pull/75536) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Ленивый расчет размеров столбцов и индексов в MergeTree. [#75938](https://github.com/ClickHouse/ClickHouse/pull/75938) ([Pavel Kruglov](https://github.com/Avogar)). +* Повторно учтен параметр `ttl_only_drop_parts` при выполнении `MATERIALIZE TTL`; читаются только необходимые столбцы для пересчета TTL, а части удаляются путем замены их пустыми. [#72751](https://github.com/ClickHouse/ClickHouse/pull/72751) ([Andrey Zvonov](https://github.com/zvonand)). +* Уменьшен размер буфера записи для файлов метаданных plain_rewritable. [#75758](https://github.com/ClickHouse/ClickHouse/pull/75758) ([Julia Kartseva](https://github.com/jkartseva)). +* Снижено потребление памяти некоторыми оконными функциями. [#65647](https://github.com/ClickHouse/ClickHouse/pull/65647) ([lgbo](https://github.com/lgbo-ustc)). +* Оценка Bloom-фильтров Parquet и min/max-индексов теперь выполняется совместно. Это необходимо для корректной поддержки запросов вида: `x = 3 or x > 5`, где data = [1, 2, 4, 5]. [#71383](https://github.com/ClickHouse/ClickHouse/pull/71383) ([Arthur Passos](https://github.com/arthurpassos)). +* Запросы, передаваемые в хранилище `Executable`, больше не ограничены однопоточным выполнением. [#70084](https://github.com/ClickHouse/ClickHouse/pull/70084) ([yawnt](https://github.com/yawnt)). +* Части загружаются параллельно в ALTER TABLE FETCH PARTITION (размер пула потоков управляется параметром `max_fetch_partition_thread_pool_size`). [#74978](https://github.com/ClickHouse/ClickHouse/pull/74978) ([Azat Khuzhin](https://github.com/azat)). +* Разрешено переносить предикаты с функцией `indexHint` в `PREWHERE`. [#74987](https://github.com/ClickHouse/ClickHouse/pull/74987) ([Anton Popov](https://github.com/CurtizJ)). + +#### Улучшения {#improvement} + +* Исправлен расчет объема занимаемой памяти для столбцов `LowCardinality`. [#74688](https://github.com/ClickHouse/ClickHouse/pull/74688) ([Nikita Taranov](https://github.com/nickitat)). +* В таблице `processors_profile_log` теперь по умолчанию задан TTL 30 дней. [#66139](https://github.com/ClickHouse/ClickHouse/pull/66139) ([Ilya Yatsishin](https://github.com/qoega)). +* Добавлена возможность именовать сегменты в конфигурации кластера. [#72276](https://github.com/ClickHouse/ClickHouse/pull/72276) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* Изменён код состояния успешного ответа в Prometheus remote write с 200/OK на 204/NoContent. [#74170](https://github.com/ClickHouse/ClickHouse/pull/74170) ([Michael Dempsey](https://github.com/bluestealth)). +* Добавлена возможность изменять `max_remote_read_network_bandwidth_for_serve` и `max_remote_write_network_bandwidth_for_server` на лету без перезапуска сервера. [#74206](https://github.com/ClickHouse/ClickHouse/pull/74206) ([Kai Zhu](https://github.com/nauu)). +* Добавлена возможность использовать пути к BLOB-объектам для вычисления контрольных сумм при создании резервной копии. [#74729](https://github.com/ClickHouse/ClickHouse/pull/74729) ([Vitaly Baranov](https://github.com/vitlibar)). +* Добавлен столбец идентификатора запроса в `system.query_cache` (закрывает [#68205](https://github.com/ClickHouse/ClickHouse/issues/68205)). [#74982](https://github.com/ClickHouse/ClickHouse/pull/74982) ([NamHoaiNguyen](https://github.com/NamHoaiNguyen)). +* Теперь разрешено отменять запросы `ALTER TABLE ... FREEZE ...` с помощью команды `KILL QUERY`, а также автоматически по истечении тайм-аута (`max_execution_time`). [#75016](https://github.com/ClickHouse/ClickHouse/pull/75016) ([Kirill](https://github.com/kirillgarbar)). +* Добавлена поддержка `groupUniqArrayArrayMap` в качестве `SimpleAggregateFunction`. [#75034](https://github.com/ClickHouse/ClickHouse/pull/75034) ([Miel Donkers](https://github.com/mdonkers)). +* В движке базы данных `Iceberg` скрыты параметры учетных данных каталога. Закрывает [#74559](https://github.com/ClickHouse/ClickHouse/issues/74559). [#75080](https://github.com/ClickHouse/ClickHouse/pull/75080) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `intExp2` / `intExp10`: Определено поведение для ранее неопределённых случаев: возвращать 0 при слишком малом аргументе, `18446744073709551615` при слишком большом аргументе и выбрасывать исключение, если аргумент — `nan`. [#75312](https://github.com/ClickHouse/ClickHouse/pull/75312) ([Vitaly Baranov](https://github.com/vitlibar)). +* Добавлена нативная поддержка параметра `s3.endpoint` из конфигурации каталога в `DatabaseIceberg`. Закрывает [#74558](https://github.com/ClickHouse/ClickHouse/issues/74558). [#75375](https://github.com/ClickHouse/ClickHouse/pull/75375) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Не завершать выполнение команды без сообщения об ошибке, если у пользователя, выполняющего `SYSTEM DROP REPLICA`, недостаточно прав. [#75377](https://github.com/ClickHouse/ClickHouse/pull/75377) ([Bharat Nallan](https://github.com/bharatnc)). +* Добавлен `ProfileEvent`, фиксирующий количество неудачных попыток сброса любого из системных журналов. [#75466](https://github.com/ClickHouse/ClickHouse/pull/75466) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена проверка и дополнительное логирование для расшифровки и распаковки. [#75471](https://github.com/ClickHouse/ClickHouse/pull/75471) ([Vitaly Baranov](https://github.com/vitlibar)). +* Добавлена поддержка символа микро (U+00B5) в функции `parseTimeDelta`. Теперь и символ микро (U+00B5), и греческая буква «мю» (U+03BC) распознаются как допустимые обозначения микросекунд, что приводит поведение ClickHouse в соответствие с реализацией Go ([см. time.go](https://github.com/golang/go/blob/ad7b46ee4ac1cee5095d64b01e8cf7fcda8bee5e/src/time/time.go#L983C19-L983C20) и [time/format.go](https://github.com/golang/go/blob/ad7b46ee4ac1cee5095d64b01e8cf7fcda8bee5e/src/time/format.go#L1608-L1609)). [#75472](https://github.com/ClickHouse/ClickHouse/pull/75472) ([Vitaly Orlov](https://github.com/orloffv)). +* Серверная настройка (`send_settings_to_client`) заменена на клиентскую (`apply_settings_from_server`), которая определяет, должен ли клиентский код (например, разбор данных INSERT и форматирование вывода запроса) использовать настройки из `users.xml` сервера и профиля пользователя. В противном случае используются только настройки, заданные в командной строке клиента, сессии и запросе. Обратите внимание, что это относится только к нативному клиенту (а не, например, к HTTP) и не применяется к большей части обработки запроса (которая выполняется на сервере). [#75478](https://github.com/ClickHouse/ClickHouse/pull/75478) ([Michael Kolupaev](https://github.com/al13n321)). +* Улучшены сообщения о синтаксических ошибках. Ранее, если запрос был слишком большим, и токен, длина которого превышает лимит, представлял собой очень большой строковый литерал, сообщение о причине ошибки терялось посреди двух примеров этого очень длинного токена. Исправлена проблема, когда запрос в кодировке UTF-8 некорректно обрезался в сообщении об ошибке. Исправлено избыточное экранирование фрагментов запроса. Исправление закрывает [#75473](https://github.com/ClickHouse/ClickHouse/issues/75473). [#75561](https://github.com/ClickHouse/ClickHouse/pull/75561) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* В хранилище `S3(Azure)Queue` добавлены события профиля. [#75618](https://github.com/ClickHouse/ClickHouse/pull/75618) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Отключена отправка настроек с сервера на клиент (`send_settings_to_client=false`) для совместимости (позже эта функция будет реализована на стороне клиента как настройка для улучшения удобства использования). [#75648](https://github.com/ClickHouse/ClickHouse/pull/75648) ([Michael Kolupaev](https://github.com/al13n321)). +* Добавлен конфигурационный параметр `memory_worker_correct_memory_tracker`, который включает корректировку внутреннего трекера памяти с использованием информации из различных источников, периодически считываемой фоновым потоком. [#75714](https://github.com/ClickHouse/ClickHouse/pull/75714) ([Antonio Andelic](https://github.com/antonio2368)). +* Добавлен столбец `normalized_query_hash` в `system.processes`. Примечание: хотя его можно легко вычислить на лету с помощью функции `normalizedQueryHash`, он требуется для подготовки к последующим изменениям. [#75756](https://github.com/ClickHouse/ClickHouse/pull/75756) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Выполнение запроса к `system.tables` больше не приводит к исключению, даже если существует таблица `Merge`, созданная поверх уже несуществующей базы данных. Метод `getTotalRows` удалён из таблиц `Hive`, поскольку мы не допускаем, чтобы он выполнял сложные операции. [#75772](https://github.com/ClickHouse/ClickHouse/pull/75772) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Хранить значения start_time/end_time для резервных копий с микросекундной точностью. [#75929](https://github.com/ClickHouse/ClickHouse/pull/75929) ([Aleksandr Musorin](https://github.com/AVMusorin)). +* Добавлена метрика `MemoryTrackingUncorrected`, показывающая значение внутреннего глобального трекера памяти, не скорректированное по RSS. [#75935](https://github.com/ClickHouse/ClickHouse/pull/75935) ([Antonio Andelic](https://github.com/antonio2368)). +* Разрешен разбор эндпоинтов вида `localhost:1234/handle` в табличных функциях `PostgreSQL` и `MySQL`. Исправлена регрессия, появившаяся в результате изменения из [https://github.com/ClickHouse/ClickHouse/pull/52503](https://github.com/ClickHouse/ClickHouse/pull/52503). [#75944](https://github.com/ClickHouse/ClickHouse/pull/75944) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Добавлена серверная настройка `throw_on_unknown_workload`, которая позволяет выбрать поведение при выполнении запроса с настройкой `workload`, установленной в неизвестное значение: либо разрешить неограниченный доступ (по умолчанию), либо выдать ошибку `RESOURCE_ACCESS_DENIED`. Это полезно, чтобы принудительно заставить все запросы использовать планирование по workload. [#75999](https://github.com/ClickHouse/ClickHouse/pull/75999) ([Sergei Trifonov](https://github.com/serxa)). +* Не переписывайте подстолбцы на вызовы `getSubcolumn` в `ARRAY JOIN`, если в этом нет необходимости. [#76018](https://github.com/ClickHouse/ClickHouse/pull/76018) ([Pavel Kruglov](https://github.com/Avogar)). +* Повторные попытки при ошибках координации во время загрузки таблиц. [#76020](https://github.com/ClickHouse/ClickHouse/pull/76020) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Добавлена возможность сброса отдельных журналов в `SYSTEM FLUSH LOGS`. [#76132](https://github.com/ClickHouse/ClickHouse/pull/76132) ([Raúl Marín](https://github.com/Algunenano)). +* Улучшена страница сервера `/binary`. Используется кривая Хильберта вместо кривой Мортона. В квадрате отображаются адреса на 512 МБ, что лучше заполняет квадрат (в предыдущих версиях адреса заполняли только половину квадрата). Цвет адресов теперь определяется ближе к имени библиотеки, а не к имени функции. Разрешена немного большая прокрутка за пределы области. [#76192](https://github.com/ClickHouse/ClickHouse/pull/76192) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Повторный запуск запросов ON CLUSTER при ошибке TOO_MANY_SIMULTANЕОUS_QUERIES. [#76352](https://github.com/ClickHouse/ClickHouse/pull/76352) ([Patrick Galbraith](https://github.com/CaptTofu)). +* Добавлена асинхронная метрика `CPUOverload`, рассчитывающая относительный дефицит CPU сервера. [#76404](https://github.com/ClickHouse/ClickHouse/pull/76404) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Изменено значение параметра `output_format_pretty_max_rows` по умолчанию с 10000 на 1000. Считаю, что так удобнее. [#76407](https://github.com/ClickHouse/ClickHouse/pull/76407) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + +#### Исправление ошибки (ошибка, проявляющаяся для пользователя, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* Исправлено форматирование исключений: если они возникают во время интерпретации запроса, используется пользовательский формат. В предыдущих версиях исключения форматировались с использованием формата по умолчанию, а не формата, указанного в запросе. Закрывает [#55422](https://github.com/ClickHouse/ClickHouse/issues/55422). [#74994](https://github.com/ClickHouse/ClickHouse/pull/74994) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлено сопоставление типов для SQLite (целочисленные типы в `int64`, числа с плавающей запятой в `float64`). [#73853](https://github.com/ClickHouse/ClickHouse/pull/73853) ([Joanna Hulboj](https://github.com/jh0x)). +* Исправлено разрешение идентификаторов из внешних областей видимости. Добавлена возможность использовать псевдонимы для выражений в предложении WITH. Исправляет [#58994](https://github.com/ClickHouse/ClickHouse/issues/58994). Исправляет [#62946](https://github.com/ClickHouse/ClickHouse/issues/62946). Исправляет [#63239](https://github.com/ClickHouse/ClickHouse/issues/63239). Исправляет [#65233](https://github.com/ClickHouse/ClickHouse/issues/65233). Исправляет [#71659](https://github.com/ClickHouse/ClickHouse/issues/71659). Исправляет [#71828](https://github.com/ClickHouse/ClickHouse/issues/71828). Исправляет [#68749](https://github.com/ClickHouse/ClickHouse/issues/68749). [#66143](https://github.com/ClickHouse/ClickHouse/pull/66143) ([Dmitry Novik](https://github.com/novikd)). +* Исправлена ошибка в монотонности функции negate. В предыдущих версиях запрос `select * from a where -x = -42;`, где `x` — первичный ключ, мог вернуть неверный результат. [#71440](https://github.com/ClickHouse/ClickHouse/pull/71440) ([Michael Kolupaev](https://github.com/al13n321)). +* Исправлена обработка пустых кортежей в функции arrayIntersect. Это устраняет [#72578](https://github.com/ClickHouse/ClickHouse/issues/72578). [#72581](https://github.com/ClickHouse/ClickHouse/pull/72581) ([Amos Bird](https://github.com/amosbird)). +* Исправлено чтение подстолбцов подобъектов JSON с некорректным префиксом. [#73182](https://github.com/ClickHouse/ClickHouse/pull/73182) ([Pavel Kruglov](https://github.com/Avogar)). +* Обеспечена корректная передача настроек формата Native при клиент-серверном взаимодействии. [#73924](https://github.com/ClickHouse/ClickHouse/pull/73924) ([Pavel Kruglov](https://github.com/Avogar)). +* Добавлена проверка на неподдерживаемые типы для некоторых хранилищ. [#74218](https://github.com/ClickHouse/ClickHouse/pull/74218) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена ошибка, приводившая к падению при выполнении запроса `INSERT INTO SELECT` через интерфейс PostgreSQL на macOS (issue [#72938](https://github.com/ClickHouse/ClickHouse/issues/72938)). [#74231](https://github.com/ClickHouse/ClickHouse/pull/74231) ([Artem Yurov](https://github.com/ArtemYurov)). +* Исправлен неинициализированный `max_log_ptr` в реплицируемой базе данных. [#74336](https://github.com/ClickHouse/ClickHouse/pull/74336) ([Konstantин Morozov](https://github.com/k-morozov)). +* Исправлено аварийное завершение при вставке интервала (issue [#74299](https://github.com/ClickHouse/ClickHouse/issues/74299)). [#74478](https://github.com/ClickHouse/ClickHouse/pull/74478) ([NamHoaiNguyen](https://github.com/NamHoaiNguyen)). +* Исправлено форматирование константных JSON-литералов. Ранее это могло приводить к синтаксическим ошибкам при отправке запроса на другой сервер. [#74533](https://github.com/ClickHouse/ClickHouse/pull/74533) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена некорректная работа запроса CREATE при использовании константных выражений партиционирования с включёнными неявными проекциями. Исправляет [#74596](https://github.com/ClickHouse/ClickHouse/issues/74596). [#74634](https://github.com/ClickHouse/ClickHouse/pull/74634) ([Amos Bird](https://github.com/amosbird)). +* Не оставлять соединение в некорректном состоянии после завершения INSERT с исключением. [#74740](https://github.com/ClickHouse/ClickHouse/pull/74740) ([Azat Khuzhin](https://github.com/azat)). +* Исключено повторное использование соединений, оставленных в промежуточном состоянии. [#74749](https://github.com/ClickHouse/ClickHouse/pull/74749) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена ошибка, приводившая к сбою при разборе объявления типа JSON, когда имя типа указано не в верхнем регистре. [#74784](https://github.com/ClickHouse/ClickHouse/pull/74784) ([Pavel Kruglov](https://github.com/Avogar)). +* Keeper: исправлена ошибка logical_error, возникавшая при разрыве соединения до его установления. [#74844](https://github.com/ClickHouse/ClickHouse/pull/74844) ([Michael Kolupaev](https://github.com/al13n321)). +* Исправлена ошибка, из-за которой сервер не мог запуститься, если была таблица, использующая `AzureBlobStorage`. Таблицы загружаются без каких-либо запросов к Azure. [#74880](https://github.com/ClickHouse/ClickHouse/pull/74880) ([Alexey Katsman](https://github.com/alexkats)). +* Добавлены отсутствующие поля `used_privileges` и `missing_privileges` в `query_log` для операций BACKUP и RESTORE. [#74887](https://github.com/ClickHouse/ClickHouse/pull/74887) ([Alexey Katsman](https://github.com/alexkats)). +* В HDFS обновлять krb‑тикет в случае ошибки SASL во время запроса `hdfs select`. [#74930](https://github.com/ClickHouse/ClickHouse/pull/74930) ([inv2004](https://github.com/inv2004)). +* Исправлены запросы к реплицируемой базе данных в startup_scripts. [#74942](https://github.com/ClickHouse/ClickHouse/pull/74942) ([Azat Khuzhin](https://github.com/azat)). +* Исправлены проблемы с выражениями, тип которых задан через псевдоним в условии JOIN ON при использовании null-safe сравнения. [#74970](https://github.com/ClickHouse/ClickHouse/pull/74970) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Возвращать состояние парта из deleting обратно в outdated при неудаче операции удаления. [#74985](https://github.com/ClickHouse/ClickHouse/pull/74985) ([Sema Checherinda](https://github.com/CheSema)). +* В предыдущих версиях при наличии скалярного подзапроса мы начинали выводить информацию о прогрессе (накапливаемую при обработке подзапроса) во время инициализации формата данных, то есть до записи HTTP-заголовков. Это приводило к потере HTTP-заголовков, таких как X-ClickHouse-QueryId и X-ClickHouse-Format, а также заголовка Content-Type. [#74991](https://github.com/ClickHouse/ClickHouse/pull/74991) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлена работа запросов `CREATE TABLE AS...` при `database_replicated_allow_replicated_engine_arguments=0`. [#75000](https://github.com/ClickHouse/ClickHouse/pull/75000) ([Bharat Nallan](https://github.com/bharatnc)). +* Исправлена проблема, при которой соединение в клиенте оставалось в некорректном состоянии после исключений при выполнении INSERT. [#75030](https://github.com/ClickHouse/ClickHouse/pull/75030) ([Azat Khuzhin](https://github.com/azat)). +* Исправлено аварийное завершение работы из-за необработанного исключения в репликации PSQL. [#75062](https://github.com/ClickHouse/ClickHouse/pull/75062) ([Azat Khузhin](https://github.com/azat)). +* SASL мог приводить к сбою любого вызова RPC; исправление позволяет повторить вызов в случае истечения билета krb5. [#75063](https://github.com/ClickHouse/ClickHouse/pull/75063) ([inv2004](https://github.com/inv2004)). +* Исправлена работа индексов (первичных и вторичных) для столбцов типа `Array`, `Map` и `Nullable(..)` при включённой настройке `optimize_function_to_subcolumns`. Ранее индексы для таких столбцов могли игнорироваться. [#75081](https://github.com/ClickHouse/ClickHouse/pull/75081) ([Anton Popov](https://github.com/CurtizJ)). +* Отключите `flatten_nested` при создании materialized views с внутренними таблицами, так как использовать такие сплющенные столбцы будет невозможно. [#75085](https://github.com/ClickHouse/ClickHouse/pull/75085) ([Christoph Wurm](https://github.com/cwurm)). +* Исправлена ошибка интерпретации некоторых IPv6-адресов (таких как ::ffff:1.1.1.1) в поле forwarded_for, приводившая к отключению клиента с исключением. [#75133](https://github.com/ClickHouse/ClickHouse/pull/75133) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Исправлена обработка null-safe JOIN для типа данных LowCardinality Nullable. Ранее JOIN с null-safe сравнением в условии ON, таким как `IS NOT DISTINCT FROM`, `<=>`, `a IS NULL AND b IS NULL OR a == b`, работал некорректно со столбцами LowCardinality. [#75143](https://github.com/ClickHouse/ClickHouse/pull/75143) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Теперь проверяется, что key_condition не указывается при подсчёте total_number_of_rows для NumRowsCache. [#75164](https://github.com/ClickHouse/ClickHouse/pull/75164) ([Daniil Ivanik](https://github.com/divanik)). +* Исправлена обработка запросов с неиспользуемой интерполяцией в новом анализаторе. [#75173](https://github.com/ClickHouse/ClickHouse/pull/75173) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Исправлен сбой при использовании CTE в INSERT. [#75188](https://github.com/ClickHouse/ClickHouse/pull/75188) ([Shichao Jin](https://github.com/jsc0218)). +* Исправление в Keeper: избегать записи в повреждённые журналы изменений при откате логов. [#75197](https://github.com/ClickHouse/ClickHouse/pull/75197) ([Antonio Andelic](https://github.com/antonio2368)). +* Используйте `BFloat16` как супертип там, где это уместно. Это закрывает: [#74404](https://github.com/ClickHouse/ClickHouse/issues/74404). [#75236](https://github.com/ClickHouse/ClickHouse/pull/75236) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Исправлены неожиданные значения по умолчанию в результате JOIN с any_join_distinct_right_table_keys и оператором OR в условии JOIN ON. [#75262](https://github.com/ClickHouse/ClickHouse/pull/75262) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Скрывать учетные данные для движка таблиц azureblobstorage. [#75319](https://github.com/ClickHouse/ClickHouse/pull/75319) ([Garrett Thomas](https://github.com/garrettthomaskth)). +* Исправлено поведение, при котором ClickHouse мог ошибочно выполнять проталкивание фильтра (filter pushdown) во внешнюю базу данных, такую как PostgreSQL, MySQL или SQLite. Исправление закрывает задачу: [#71423](https://github.com/ClickHouse/ClickHouse/issues/71423). [#75320](https://github.com/ClickHouse/ClickHouse/pull/75320) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Исправлена ошибка в кеше схем Protobuf, которая могла приводить к сбою во время вывода в формате Protobuf при одновременном выполнении запроса `SYSTEM DROP FORMAT SCHEMA CACHE`. [#75357](https://github.com/ClickHouse/ClickHouse/pull/75357) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена возможная логическая ошибка или проблема использования неинициализированной памяти при проталкивании фильтра из `HAVING` при использовании параллельных реплик. [#75363](https://github.com/ClickHouse/ClickHouse/pull/75363) ([Vladimir Cherkasov](https://github.com/vdimir)). +* Скрыта конфиденциальная информация в табличных функциях и движках таблиц `icebergS3` и `icebergAzure`. [#75378](https://github.com/ClickHouse/ClickHouse/pull/75378) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Функция `TRIM` с вычисляемым пустым набором символов обрезки теперь корректно обрабатывается. Пример: `SELECT TRIM(LEADING concat('') FROM 'foo')` (Issue [#69922](https://github.com/ClickHouse/ClickHouse/issues/69922)). [#75399](https://github.com/ClickHouse/ClickHouse/pull/75399) ([Manish Gill](https://github.com/mgill25)). +* Исправлена гонка данных в IOutputFormat. [#75448](https://github.com/ClickHouse/ClickHouse/pull/75448) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена потенциальная ошибка `Elements ... and ... of Nested data structure ... (Array columns) have different array sizes` при использовании JSON-подстолбцов типа Array в операциях JOIN по distributed-таблицам. [#75512](https://github.com/ClickHouse/ClickHouse/pull/75512) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена ошибка, приводившая к порче данных при использовании `CODEC(ZSTD, DoubleDelta)`. Закрывает [#70031](https://github.com/ClickHouse/ClickHouse/issues/70031). [#75548](https://github.com/ClickHouse/ClickHouse/pull/75548) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Исправлено взаимодействие между allow_feature_tier и параметром совместимости движка MergeTree. [#75635](https://github.com/ClickHouse/ClickHouse/pull/75635) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлено некорректное значение processed_rows в system.s3queue_log в случае повторной попытки обработки файла. [#75666](https://github.com/ClickHouse/ClickHouse/pull/75666) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Учитывать параметр `materialized_views_ignore_errors`, когда materialized view пишет в движок URL и возникает проблема с подключением. [#75679](https://github.com/ClickHouse/ClickHouse/pull/75679) ([Christoph Wurm](https://github.com/cwurm)). +* Исправлены редкие сбои при чтении из таблицы `MergeTree` после выполнения нескольких асинхронных запросов `RENAME` (с `alter_sync = 0`) между столбцами разных типов. [#75693](https://github.com/ClickHouse/ClickHouse/pull/75693) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлена ошибка `Block structure mismatch in QueryPipeline stream`, возникавшая для некоторых запросов с `UNION ALL`. [#75715](https://github.com/ClickHouse/ClickHouse/pull/75715) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Проекция теперь перестраивается при выполнении `ALTER MODIFY` для столбца её первичного ключа. Ранее это могло приводить к ошибкам `CANNOT_READ_ALL_DATA` при выполнении запросов `SELECT` после `ALTER MODIFY` столбца, используемого в первичном ключе проекции. [#75720](https://github.com/ClickHouse/ClickHouse/pull/75720) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлен неверный результат `ARRAY JOIN` для скалярных подзапросов при использовании Analyzer. [#75732](https://github.com/ClickHouse/ClickHouse/pull/75732) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлено разыменование нулевого указателя в `DistinctSortedStreamTransform`. [#75734](https://github.com/ClickHouse/ClickHouse/pull/75734) ([Nikita Taranov](https://github.com/nickitat)). +* Исправлено поведение настройки `allow_suspicious_ttl_expressions`. [#75771](https://github.com/ClickHouse/ClickHouse/pull/75771) ([Aleksei Filatov](https://github.com/aalexfvk)). +* Исправлено чтение неинициализированной памяти в функции `translate`. Это исправление закрывает [#75592](https://github.com/ClickHouse/ClickHouse/issues/75592). [#75794](https://github.com/ClickHouse/ClickHouse/pull/75794) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Распространять настройки формата на JSON как строковое форматирование в формате Native. [#75832](https://github.com/ClickHouse/ClickHouse/pull/75832) ([Pavel Kruglov](https://github.com/Avogar)). +* В историю изменений настроек внесено включение по умолчанию параллельного хеша как алгоритма `JOIN` в v24.12. Это означает, что ClickHouse продолжит выполнять `JOIN`, используя непараллельный хеш, если настроен уровень совместимости старее v24.12. [#75870](https://github.com/ClickHouse/ClickHouse/pull/75870) ([Robert Schulze](https://github.com/rschu1ze)). +* Исправлена ошибка, из-за которой таблицы с неявно добавленными min-max-индексами было невозможно скопировать в новую таблицу ([#75677](https://github.com/ClickHouse/ClickHouse/issues/75677)). [#75877](https://github.com/ClickHouse/ClickHouse/pull/75877) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). +* `clickhouse-library-bridge` позволяет загружать произвольные библиотеки из файловой системы, поэтому его безопасно запускать только в изолированной среде. Чтобы предотвратить уязвимость при запуске рядом с clickhouse-server, мы ограничим пути к библиотекам расположением, заданным в конфигурации. Эта уязвимость была обнаружена в рамках [ClickHouse Bug Bounty Program](https://github.com/ClickHouse/ClickHouse/issues/38986) **Арсением Дугиным**. [#75954](https://github.com/ClickHouse/ClickHouse/pull/75954) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Мы по случайности использовали сериализацию в JSON для некоторых метаданных, что оказалось ошибкой, потому что JSON не поддерживает двоичные данные внутри строковых литералов, включая нулевые байты. SQL‑запросы могут содержать двоичные данные и некорректный UTF‑8, поэтому мы должны поддерживать это и в наших файлах метаданных. В то же время форматы ClickHouse `JSONEachRow` и подобные ему обходят это ограничение, намеренно отклоняясь от стандарта JSON ради идеального round-trip для двоичных данных. Мотивацию см. здесь: [https://github.com/ClickHouse/ClickHouse/pull/73668#issuecomment-2560501790](https://github.com/ClickHouse/ClickHouse/pull/73668#issuecomment-2560501790). Решение заключается в том, чтобы привести библиотеку `Poco::JSON` в соответствие с сериализацией формата JSON в ClickHouse. Это закрывает [#73668](https://github.com/ClickHouse/ClickHouse/issues/73668). [#75963](https://github.com/ClickHouse/ClickHouse/pull/75963) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Исправлена проверка ограничений на коммиты в хранилище `S3Queue`. [#76104](https://github.com/ClickHouse/ClickHouse/pull/76104) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлено присоединение таблиц MergeTree с автоматическим созданием индексов (`add_minmax_index_for_numeric_columns`/`add_minmax_index_for_string_columns`). [#76139](https://github.com/ClickHouse/ClickHouse/pull/76139) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена проблема, из-за которой стек-трейсы из родительских потоков задания (настройка `enable_job_stack_trace`) не выводились. Также исправлена ошибка, при которой настройка `enable_job_stack_trace` некорректно распространялась на потоки, в результате чего содержимое стек-трейса не всегда соответствовало этой настройке. [#76191](https://github.com/ClickHouse/ClickHouse/pull/76191) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Исправлена некорректная проверка прав, из-за которой `ALTER RENAME` требовал привилегию `CREATE USER`. Закрывает [#74372](https://github.com/ClickHouse/ClickHouse/issues/74372). [#76241](https://github.com/ClickHouse/ClickHouse/pull/76241) ([pufit](https://github.com/pufit)). +* Исправлена работа функции reinterpretAs с FixedString на архитектуре с прямым порядком байт (big-endian). [#76253](https://github.com/ClickHouse/ClickHouse/pull/76253) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена логическая ошибка в S3Queue "Expected current processor {} to be equal to {} for bucket {}". [#76358](https://github.com/ClickHouse/ClickHouse/pull/76358) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Устранена взаимная блокировка при выполнении `ALTER` в базе данных `Memory`. [#76359](https://github.com/ClickHouse/ClickHouse/pull/76359) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена логическая ошибка в анализе индекса, возникающая, если в условии `WHERE` используется функция `pointInPolygon`. [#76360](https://github.com/ClickHouse/ClickHouse/pull/76360) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлен потенциально небезопасный вызов в обработчике сигналов. [#76549](https://github.com/ClickHouse/ClickHouse/pull/76549) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Исправлена поддержка обратного ключа в PartsSplitter. Это исправляет [#73400](https://github.com/ClickHouse/ClickHouse/issues/73400). [#73418](https://github.com/ClickHouse/ClickHouse/pull/73418) ([Amos Bird](https://github.com/amosbird)). + +#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement} + +* Поддержка сборки HDFS как на ARM, так и на Intel Mac. [#74244](https://github.com/ClickHouse/ClickHouse/pull/74244) ([Yan Xin](https://github.com/yxheartipp)). +* Включены ICU и GRPC при кросс-компиляции под Darwin. [#75922](https://github.com/ClickHouse/ClickHouse/pull/75922) ([Raúl Marín](https://github.com/Algunenano)). +* Обновление встроенного LLVM до версии 19. [#75148](https://github.com/ClickHouse/ClickHouse/pull/75148) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Отключён сетевой доступ для пользователя по умолчанию в docker-образе. [#75259](https://github.com/ClickHouse/ClickHouse/pull/75259) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). Все действия, связанные с clickhouse-server, вынесены в функцию и выполняются только при запуске бинарного файла по умолчанию в `entrypoint.sh`. Давно откладываемое улучшение было предложено в [#50724](https://github.com/ClickHouse/ClickHouse/issues/50724). Добавлен флаг `--users` к `clickhouse-extract-from-config` для получения значений из `users.xml`. [#75643](https://github.com/ClickHouse/ClickHouse/pull/75643) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Удалено около 20 МБ «мёртвого» кода из исполняемого файла. [#76226](https://github.com/ClickHouse/ClickHouse/pull/76226) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + +### Релиз ClickHouse 25.1, 2025-01-28 {#251} + +#### Обратные несовместимые изменения {#backward-incompatible-change} + +* `JSONEachRowWithProgress` будет выводить прогресс каждый раз при его обновлении. В предыдущих версиях прогресс показывался только после каждого блока результата, что делало его бесполезным. Изменён способ отображения прогресса: нулевые значения не отображаются. Это закрывает [#70800](https://github.com/ClickHouse/ClickHouse/issues/70800). [#73834](https://github.com/ClickHouse/ClickHouse/pull/73834) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Таблицы `Merge` будут унифицировать структуру базовых таблиц, используя объединение их столбцов и выводя общие типы. Это закрывает [#64864](https://github.com/ClickHouse/ClickHouse/issues/64864). В некоторых случаях это изменение может быть несовместимым с предыдущими версиями. Один из примеров — когда нет общего типа между таблицами, но преобразование к типу первой таблицы всё ещё возможно, как в случае UInt64 и Int64 или любого числового типа и String. Если вы хотите вернуться к старому поведению, установите `merge_table_max_tables_to_look_for_schema_inference` в значение `1` или установите `compatibility` в `24.12` или более раннее значение. [#73956](https://github.com/ClickHouse/ClickHouse/pull/73956) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Формат вывода Parquet конвертирует столбцы Date и DateTime в типы даты/времени, поддерживаемые Parquet, вместо записи их как «сырых» чисел. `DateTime` становится `DateTime64(3)` (было: `UInt32`); установка `output_format_parquet_datetime_as_uint32` возвращает старое поведение. `Date` становится `Date32` (было: `UInt16`). [#70950](https://github.com/ClickHouse/ClickHouse/pull/70950) ([Michael Kolupaev](https://github.com/al13n321)). +* По умолчанию больше не допускаются несравнимые типы (такие как `JSON`/`Object`/`AggregateFunction`) в `ORDER BY` и в функциях сравнения `less/greater/equal/etc`. [#73276](https://github.com/ClickHouse/ClickHouse/pull/73276) ([Pavel Kruglov](https://github.com/Avogar)). +* Устаревший движок базы данных `MaterializedMySQL` удалён и больше недоступен. [#73879](https://github.com/ClickHouse/ClickHouse/pull/73879) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Источник словаря `mysql` больше не выполняет запрос `SHOW TABLE STATUS`, потому что он не даёт полезной информации для таблиц InnoDB, как и для любых недавних версий MySQL. Это закрывает [#72636](https://github.com/ClickHouse/ClickHouse/issues/72636). Это изменение обратно совместимо, но оно помещено в этот раздел, чтобы у вас была возможность его заметить. [#73914](https://github.com/ClickHouse/ClickHouse/pull/73914) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Запросы `CHECK TABLE` теперь требуют отдельной привилегии `CHECK`. В предыдущих версиях было достаточно привилегии `SHOW TABLES`, чтобы выполнять эти запросы. Но запрос `CHECK TABLE` может быть «тяжёлым», и обычные лимиты сложности запросов для запросов `SELECT` к нему не применяются. Это создавало риск DoS. [#74471](https://github.com/ClickHouse/ClickHouse/pull/74471) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Функция `h3ToGeo()` теперь возвращает результат в порядке `(lat, lon)` (что является стандартным порядком для геометрических функций). Пользователи, которые хотят сохранить устаревший порядок результата `(lon, lat)`, могут установить настройку `h3togeo_lon_lat_result_order = true`. [#74719](https://github.com/ClickHouse/ClickHouse/pull/74719) ([Manish Gill](https://github.com/mgill25)). +* Новый драйвер MongoDB теперь используется по умолчанию. Пользователи, которые хотят продолжать использовать устаревший драйвер, могут установить серверную настройку `use_legacy_mongodb_integration` в значение `true`. [#73359](https://github.com/ClickHouse/ClickHouse/pull/73359) ([Robert Schulze](https://github.com/rschu1ze)). + +#### Новые возможности {#new-feature} + +* Добавлена возможность применять незавершённые (не материализованные фоновым процессом) мутации при выполнении запросов `SELECT` — сразу после их отправки. Это можно включить с помощью настройки `apply_mutations_on_fly`. [#74877](https://github.com/ClickHouse/ClickHouse/pull/74877) ([Anton Popov](https://github.com/CurtizJ)). +* Реализовано отсечение партиций (`partition pruning`) таблиц `Iceberg` для операций партиционирования с временными преобразованиями в Iceberg. [#72044](https://github.com/ClickHouse/ClickHouse/pull/72044) ([Daniil Ivanik](https://github.com/divanik)). +* Добавлена поддержка подстолбцов в ключе сортировки таблиц MergeTree и в пропускающих индексах. [#72644](https://github.com/ClickHouse/ClickHouse/pull/72644) ([Pavel Kruglov](https://github.com/Avogar)). +* Добавлена поддержка чтения значений `HALF_FLOAT` из `Apache Arrow`/`Parquet`/`ORC` (они считываются в `Float32`). Это закрывает [#72960](https://github.com/ClickHouse/ClickHouse/issues/72960). Имейте в виду, что формат half float по стандарту IEEE-754 — это не то же самое, что `BFloat16`. Также закрывает [#73835](https://github.com/ClickHouse/ClickHouse/issues/73835). [#73836](https://github.com/ClickHouse/ClickHouse/pull/73836) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Таблица `system.trace_log` будет содержать два новых столбца, `symbols` и `lines`, в которых хранится символизированный стек-трейс. Это позволяет легко собирать и экспортировать профильную информацию. Поведение управляется параметром конфигурации сервера `symbolize` в `trace_log` и по умолчанию включено. [#73896](https://github.com/ClickHouse/ClickHouse/pull/73896) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена новая функция `generateSerialID`, которую можно использовать для генерации автоинкрементных идентификаторов в таблицах. Продолжение [#64310](https://github.com/ClickHouse/ClickHouse/issues/64310) от [kazalika](https://github.com/kazalika). Закрывает [#62485](https://github.com/ClickHouse/ClickHouse/issues/62485). [#73950](https://github.com/ClickHouse/ClickHouse/pull/73950) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлен синтаксис `query1 PARALLEL WITH query2 PARALLEL WITH query3 ... PARALLEL WITH queryN` для DDL-запросов. Это означает, что запросы `{query1, query2, ... queryN}` могут выполняться параллельно друг с другом (и это предпочтительно). [#73983](https://github.com/ClickHouse/ClickHouse/pull/73983) ([Vitaly Baranov](https://github.com/vitlibar)). +* Добавлен кэш в оперативной памяти для десериализованных гранул пропускающего индекса. Это должно ускорить повторные запросы, использующие пропускающие индексы. Размер нового кэша управляется серверными настройками `skipping_index_cache_size` и `skipping_index_cache_max_entries`. Исходной мотивацией для добавления кэша были индексы векторного сходства, которые теперь работают значительно быстрее. [#70102](https://github.com/ClickHouse/ClickHouse/pull/70102) ([Robert Schulze](https://github.com/rschu1ze)). +* Теперь во встроенном веб-интерфейсе во время выполнения запроса отображается индикатор прогресса. Он позволяет отменять запросы. Отображается общее количество строк и расширенная информация о скорости. Таблица может отображаться постепенно по мере поступления данных. Добавлена поддержка HTTP-сжатия. Отрисовка таблицы стала быстрее. Заголовок таблицы закреплён. Появилась возможность выделять ячейки и перемещаться по ним с помощью клавиш-стрелок. Исправлена проблема, при которой контур выделенной ячейки делал её меньше. Ячейки больше не расширяются при наведении курсора, а только при выборе. Момент остановки отрисовки входящих данных теперь определяется на стороне клиента, а не сервера. Добавлена подсветка разрядов в числах. Общий дизайн был обновлён и стал более выразительным. Выполняется проверка доступности сервера и корректности учётных данных, а также отображается версия сервера и время его работы. Значок облака контурный во всех шрифтах, включая Safari. Большие целые числа во вложенных типах данных будут отображаться лучше. Значения inf/nan будут отображаться корректно. При наведении курсора на заголовок столбца будут отображаться типы данных. [#74204](https://github.com/ClickHouse/ClickHouse/pull/74204) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена возможность по умолчанию создавать min-max (пропускающие) индексы для столбцов, управляемых движком MergeTree, с помощью настроек `add_minmax_index_for_numeric_columns` (для числовых столбцов) и `add_minmax_index_for_string_columns` (для строковых столбцов). Пока обе настройки отключены, поэтому поведение ещё не изменилось. [#74266](https://github.com/ClickHouse/ClickHouse/pull/74266) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). +* Добавлены поля `script_query_number` и `script_line_number` в `system.query_log`, в ClientInfo нативного протокола и в журналы сервера. Это закрывает [#67542](https://github.com/ClickHouse/ClickHouse/issues/67542). Благодарность пользователю [pinsvin00](https://github.com/pinsvin00) за то, что ранее инициировал работу над этой возможностью в [#68133](https://github.com/ClickHouse/ClickHouse/issues/68133). [#74477](https://github.com/ClickHouse/ClickHouse/pull/74477) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена агрегатная функция `sequenceMatchEvents`, которая возвращает временные метки событий для самой длинной последовательности, соответствующей шаблону. [#72349](https://github.com/ClickHouse/ClickHouse/pull/72349) ([UnamedRus](https://github.com/UnamedRus)). +* Добавлена функция `arrayNormalizedGini`. [#72823](https://github.com/ClickHouse/ClickHouse/pull/72823) ([flynn](https://github.com/ucasfl)). +* Добавлена поддержка оператора вычитания для `DateTime64`, что позволяет выполнять вычитание между значениями `DateTime64`, а также `DateTime`. [#74482](https://github.com/ClickHouse/ClickHouse/pull/74482) ([Li Yin](https://github.com/liyinsg)). + +#### Экспериментальные возможности {#experimental-features} + +* Тип данных `BFloat16` готов к промышленному использованию. [#73840](https://github.com/ClickHouse/ClickHouse/pull/73840) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + +#### Повышение производительности {#performance-improvement} + +* Оптимизирована функция `indexHint`. Теперь столбцы, которые используются исключительно как аргументы функции `indexHint`, не читаются из таблицы. [#74314](https://github.com/ClickHouse/ClickHouse/pull/74314) ([Anton Popov](https://github.com/CurtizJ)). Если функция `indexHint` — центральный элемент вашей корпоративной архитектуры данных, эта оптимизация спасёт вам жизнь. +* Более точный учёт параметра `max_joined_block_size_rows` в алгоритме JOIN `parallel_hash`. Помогает избежать повышенного потребления памяти по сравнению с алгоритмом `hash`. [#74630](https://github.com/ClickHouse/ClickHouse/pull/74630) ([Nikita Taranov](https://github.com/nickitat)). +* Добавлена поддержка оптимизации проталкивания предикатов на уровне плана запроса для шага `MergingAggregated`. Это улучшает производительность некоторых запросов при использовании анализатора. [#74073](https://github.com/ClickHouse/ClickHouse/pull/74073) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Разбиение блоков левой таблицы по хешу было удалено из фазы probe алгоритма JOIN `parallel_hash`. [#73089](https://github.com/ClickHouse/ClickHouse/pull/73089) ([Nikita Taranov](https://github.com/nickitat)). +* Оптимизирован формат входных данных RowBinary. Закрывает [#63805](https://github.com/ClickHouse/ClickHouse/issues/63805). [#65059](https://github.com/ClickHouse/ClickHouse/pull/65059) ([Pavel Kruglov](https://github.com/Avogar)). +* Записывать части с уровнем 1, если `optimize_on_insert` включён. Это позволяет использовать несколько оптимизаций выполнения запросов с `FINAL` для только что записанных частей. [#73132](https://github.com/ClickHouse/ClickHouse/pull/73132) ([Anton Popov](https://github.com/CurtizJ)). +* Ускорена десериализация строк за счёт низкоуровневой оптимизации. [#65948](https://github.com/ClickHouse/ClickHouse/pull/65948) ([Nikita Taranov](https://github.com/nickitat)). +* При выполнении проверки на равенство между записями, например во время слияний, начинайте сравнение строк с тех столбцов, значения в которых с наибольшей вероятностью различаются. [#63780](https://github.com/ClickHouse/ClickHouse/pull/63780) ([UnamedRus](https://github.com/UnamedRus)). +* Улучшена производительность Grace Hash Join за счёт повторной сортировки правой таблицы соединения по ключам. [#72237](https://github.com/ClickHouse/ClickHouse/pull/72237) ([kevinyhzou](https://github.com/KevinyhZou)). +* Разрешить `arrayROCAUC` и `arrayAUCPR` вычислять частичную площадь под полной кривой, чтобы их вычисление можно было распараллелить для работы с огромными наборами данных. [#72904](https://github.com/ClickHouse/ClickHouse/pull/72904) ([Emmanuel](https://github.com/emmanuelsdias)). +* Избегайте создания слишком большого количества неактивных потоков. [#72920](https://github.com/ClickHouse/ClickHouse/pull/72920) ([Guo Wangyang](https://github.com/guowangy)). +* Не перечислять ключи объектного хранилища, если в табличной функции используется только раскрытие фигурных скобок. Closes [#73333](https://github.com/ClickHouse/ClickHouse/issues/73333). [#73518](https://github.com/ClickHouse/ClickHouse/pull/73518) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Оптимизация вычислений с коротким замыканием для функций с аргументами типа Nullable. [#73820](https://github.com/ClickHouse/ClickHouse/pull/73820) ([李扬](https://github.com/taiyang-li)). +* Не применять `maskedExecute` к нефункциональным столбцам; улучшена производительность выполнения с коротким замыканием. [#73965](https://github.com/ClickHouse/ClickHouse/pull/73965) ([lgbo](https://github.com/lgbo-ustc)). +* Отключено автоматическое определение заголовков во входных форматах для `Kafka`/`NATS`/`RabbitMQ`/`FileLog` для повышения производительности. [#74006](https://github.com/ClickHouse/ClickHouse/pull/74006) ([Azat Khuzhin](https://github.com/azat)). +* Выполнять конвейер с большей степенью параллелизма после агрегации с GROUPING SETS. [#74082](https://github.com/ClickHouse/ClickHouse/pull/74082) ([Nikita Taranov](https://github.com/nickitat)). +* Сокращена критическая секция в `MergeTreeReadPool`. [#74202](https://github.com/ClickHouse/ClickHouse/pull/74202) ([Guo Wangyang](https://github.com/guowangy)). +* Улучшена производительность параллельных реплик. Десериализация пакетов на инициаторе запроса для пакетов, не относящихся к протоколу параллельных реплик, теперь всегда выполняется в потоке конвейера. Ранее она могла выполняться в потоке, отвечающем за планирование конвейера, что могло делать инициатор менее отзывчивым и задерживать выполнение конвейера. [#74398](https://github.com/ClickHouse/ClickHouse/pull/74398) ([Igor Nikonov](https://github.com/devcrafter)). +* Улучшена производительность крупных многозапросных операций в Keeper. [#74849](https://github.com/ClickHouse/ClickHouse/pull/74849) ([Antonio Andelic](https://github.com/antonio2368)). +* Используйте логовые обёртки по значению и не размещайте их в куче. [#74034](https://github.com/ClickHouse/ClickHouse/pull/74034) ([Mikhail Artemenko](https://github.com/Michicosun)). +* Восстановление соединения с репликами словарей MySQL и Postgres в фоновом режиме, чтобы не задерживать запросы к соответствующим словарям. [#71101](https://github.com/ClickHouse/ClickHouse/pull/71101) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Параллельные реплики использовали исторические данные о доступности реплик для улучшения выбора реплики, но не обновляли счётчик ошибок реплики, когда подключение было недоступно. Этот PR обновляет счётчик ошибок реплики при её недоступности. [#72666](https://github.com/ClickHouse/ClickHouse/pull/72666) ([zoomxi](https://github.com/zoomxi)). +* Добавлена настройка движка MergeTree `materialize_skip_indexes_on_merge`, которая предотвращает создание skip-индексов во время слияния. Это позволяет явно контролировать (через `ALTER TABLE [..] MATERIALIZE INDEX [...]`), когда создаются skip-индексы. Это может быть полезно, если построение skip-индексов дорогостояще (например, индексов векторной близости). [#74401](https://github.com/ClickHouse/ClickHouse/pull/74401) ([Robert Schulze](https://github.com/rschu1ze)). +* Оптимизированы запросы к Keeper в Storage(S3/Azure)Queue. [#74410](https://github.com/ClickHouse/ClickHouse/pull/74410) ([Kseniia Sumarokova](https://github.com/kssenii)). [#74538](https://github.com/ClickHouse/ClickHouse/pull/74538) ([Kseniia Sumarokova](https://github.com/kssenii)). +* По умолчанию можно использовать до `1000` параллельных реплик. [#74504](https://github.com/ClickHouse/ClickHouse/pull/74504) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Улучшено повторное использование HTTP-сеансов при чтении с S3-диска ([#72401](https://github.com/ClickHouse/ClickHouse/issues/72401)). [#74548](https://github.com/ClickHouse/ClickHouse/pull/74548) ([Julian Maicher](https://github.com/jmaicher)). + +#### Улучшения {#improvement} + +* Добавлена поддержка использования SETTINGS в запросе CREATE TABLE с неявным ENGINE и возможность комбинировать настройки движка и запроса. [#73120](https://github.com/ClickHouse/ClickHouse/pull/73120) ([Raúl Marín](https://github.com/Algunenano)). +* Включено использование `use_hive_partitioning` по умолчанию. [#71636](https://github.com/ClickHouse/ClickHouse/pull/71636) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Добавлена поддержка `CAST` и `ALTER` между типами `JSON` с разными параметрами. [#72303](https://github.com/ClickHouse/ClickHouse/pull/72303) ([Pavel Kruglov](https://github.com/Avogar)). +* Добавлена поддержка сравнения на равенство значений в столбце JSON. [#72991](https://github.com/ClickHouse/ClickHouse/pull/72991) ([Pavel Kruglov](https://github.com/Avogar)). +* Улучшено форматирование идентификаторов с JSON-подстолбцами, чтобы избежать лишнего использования обратных кавычек. [#73085](https://github.com/ClickHouse/ClickHouse/pull/73085) ([Pavel Kruglov](https://github.com/Avogar)). +* Улучшена работа интерактивных метрик. Исправлена проблема, при которой метрики от параллельных реплик отображались не полностью. Метрики теперь отображаются в порядке последнего обновления, а затем лексикографически по имени. Устаревшие метрики не отображаются. [#71631](https://github.com/ClickHouse/ClickHouse/pull/71631) ([Julia Kartseva](https://github.com/jkartseva)). +* Сделать формат вывода JSON по умолчанию удобочитаемым. Добавить новую настройку `output_format_json_pretty_print` для управления этим поведением и включить её по умолчанию. [#72148](https://github.com/ClickHouse/ClickHouse/pull/72148) ([Pavel Kruglov](https://github.com/Avogar)). +* Разрешить `LowCardinality(UUID)` по умолчанию. Это показало свою практическую полезность среди клиентов ClickHouse Cloud. [#73826](https://github.com/ClickHouse/ClickHouse/pull/73826) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Улучшено сообщение при установке. [#73827](https://github.com/ClickHouse/ClickHouse/pull/73827) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Улучшено уведомление о сбросе пароля для ClickHouse Cloud. [#73831](https://github.com/ClickHouse/ClickHouse/pull/73831) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Улучшено сообщение об ошибке для таблицы File при невозможности дозаписи в файл. [#73832](https://github.com/ClickHouse/ClickHouse/pull/73832) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Запрашивать подтверждение, если пользователь по ошибке пытается вывести в терминал данные в бинарном формате (например, Native, Parquet, Avro). Закрывает [#59524](https://github.com/ClickHouse/ClickHouse/issues/59524). [#73833](https://github.com/ClickHouse/ClickHouse/pull/73833) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* В форматах Pretty и Vertical в терминале теперь подсвечиваются завершающие пробелы для лучшей наглядности. Поведение управляется настройкой `output_format_pretty_highlight_trailing_spaces`. Первоначальная реализация выполнена [Braden Burns](https://github.com/bradenburns) в [#72996](https://github.com/ClickHouse/ClickHouse/issues/72996). Закрывает [#71590](https://github.com/ClickHouse/ClickHouse/issues/71590). [#73847](https://github.com/ClickHouse/ClickHouse/pull/73847) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* `clickhouse-client` и `clickhouse-local` автоматически определяют тип сжатия стандартного ввода (stdin), если он перенаправлен из файла. Это закрывает [#70865](https://github.com/ClickHouse/ClickHouse/issues/70865). [#73848](https://github.com/ClickHouse/ClickHouse/pull/73848) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* По умолчанию слишком длинные имена столбцов в форматах Pretty обрезаются. Это поведение управляется настройками `output_format_pretty_max_column_name_width_cut_to` и `output_format_pretty_max_column_name_width_min_chars_to_cut`. Является продолжением работы [tanmaydatta](https://github.com/tanmaydatta) в [#66502](https://github.com/ClickHouse/ClickHouse/issues/66502). Закрывает [#65968](https://github.com/ClickHouse/ClickHouse/issues/65968). [#73851](https://github.com/ClickHouse/ClickHouse/pull/73851) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Сделаны форматы `Pretty` ещё более удобочитаемыми: блоки схлопываются, если с момента вывода предыдущего блока прошло мало времени. Поведение управляется новыми настройками `output_format_pretty_squash_consecutive_ms` (по умолчанию 50 мс) и `output_format_pretty_squash_max_wait_ms` (по умолчанию 1000 мс). Продолжение [#49537](https://github.com/ClickHouse/ClickHouse/issues/49537). Закрывает [#49153](https://github.com/ClickHouse/ClickHouse/issues/49153). [#73852](https://github.com/ClickHouse/ClickHouse/pull/73852) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена метрика количества исходных частей, которые в данный момент сливаются. Это закрывает [#70809](https://github.com/ClickHouse/ClickHouse/issues/70809). [#73868](https://github.com/ClickHouse/ClickHouse/pull/73868) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Подсвечивать столбцы в формате `Vertical`, если вывод идет в терминал. Это можно отключить с помощью настройки `output_format_pretty_color`. [#73898](https://github.com/ClickHouse/ClickHouse/pull/73898) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Повышена совместимость с MySQL до уровня, при котором `mysqlsh` (функциональная CLI‑утилита MySQL от Oracle) теперь может подключаться к ClickHouse. Это необходимо для упрощения тестирования. [#73912](https://github.com/ClickHouse/ClickHouse/pull/73912) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Форматы Pretty поддерживают отображение многострочных полей внутри ячейки таблицы, что улучшает читаемость. Это поведение включено по умолчанию и может управляться с помощью настройки `output_format_pretty_multiline_fields`. Продолжение работы [Volodyachan](https://github.com/Volodyachan) в [#64094](https://github.com/ClickHouse/ClickHouse/issues/64094). Это закрывает [#56912](https://github.com/ClickHouse/ClickHouse/issues/56912). [#74032](https://github.com/ClickHouse/ClickHouse/pull/74032) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Теперь HTTP-заголовки X-ClickHouse могут быть доступны JavaScript в браузере. Это упрощает разработку приложений. [#74180](https://github.com/ClickHouse/ClickHouse/pull/74180) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Формат `JSONEachRowWithProgress` теперь включает события с метаданными, а также totals и extremes. Он также включает `rows_before_limit_at_least` и `rows_before_aggregation`. Формат корректно выводит исключение, если оно приходит после частичных результатов. Теперь прогресс содержит прошедшее время в наносекундах. В конце генерируется одно финальное событие прогресса. Прогресс во время выполнения запроса будет выводиться не чаще, чем это допускает значение настройки `interactive_delay`. [#74181](https://github.com/ClickHouse/ClickHouse/pull/74181) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Иконка песочных часов теперь будет плавно вращаться в интерфейсе Play. [#74182](https://github.com/ClickHouse/ClickHouse/pull/74182) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Даже если HTTP‑ответ сжат, отправляйте пакеты сразу, как только они поступают. Это позволяет браузеру получать пакеты прогресса и сжатые данные. [#74201](https://github.com/ClickHouse/ClickHouse/pull/74201) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Если количество выводимых строк превышает N = `output_format_pretty_max_rows`, вместо отображения только первых N строк выходная таблица будет усечена в середине: будут показаны N/2 первых строк и N/2 последних строк. Продолжение [#64200](https://github.com/ClickHouse/ClickHouse/issues/64200). Тем самым закрывается [#59502](https://github.com/ClickHouse/ClickHouse/issues/59502). [#73929](https://github.com/ClickHouse/ClickHouse/pull/73929) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Разрешено использование более общего алгоритма планирования соединений (JOIN), когда включён алгоритм hash join. [#71926](https://github.com/ClickHouse/ClickHouse/pull/71926) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Добавлена возможность создавать индекс bloom_filter на столбцах с типом данных `DateTime64`. [#66416](https://github.com/ClickHouse/ClickHouse/pull/66416) ([Yutong Xiao](https://github.com/YutSean)). +* Когда одновременно включены `min_age_to_force_merge_seconds` и `min_age_to_force_merge_on_partition_only`, слияние частей будет игнорировать ограничение на максимальный размер в байтах. [#73656](https://github.com/ClickHouse/ClickHouse/pull/73656) ([Kai Zhu](https://github.com/nauu)). +* Добавлены HTTP-заголовки в таблицу логов спанов OpenTelemetry для улучшения трассируемости. [#70516](https://github.com/ClickHouse/ClickHouse/pull/70516) ([jonymohajanGmail](https://github.com/jonymohajanGmail)). +* Добавлена поддержка записи файлов формата `orc` с использованием произвольного часового пояса, а не только часового пояса `GMT`. [#70615](https://github.com/ClickHouse/ClickHouse/pull/70615) ([kevinyhzou](https://github.com/KevinyhZou)). +* Учитываются настройки планирования ввода-вывода при записи резервных копий между облаками. [#71093](https://github.com/ClickHouse/ClickHouse/pull/71093) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Добавлен псевдоним столбца `metric` — `name` в таблицу `system.asynchronous_metrics`. [#71164](https://github.com/ClickHouse/ClickHouse/pull/71164) ([megao](https://github.com/jetgm)). +* Исторически по какой‑то причине запрос `ALTER TABLE MOVE PARTITION TO TABLE` проверял права `SELECT` и `ALTER DELETE` вместо отдельного права `ALTER_MOVE_PARTITION`. В этом PR используется этот тип доступа. Для совместимости это право доступа также будет неявно предоставляться, если предоставлены `SELECT` и `ALTER DELETE`, но это поведение будет удалено в будущих релизах. Закрывает [#16403](https://github.com/ClickHouse/ClickHouse/issues/16403). [#71632](https://github.com/ClickHouse/ClickHouse/pull/71632) ([pufit](https://github.com/pufit)). +* Вызывать исключение при попытке материализовать столбец, входящий в ключ сортировки, вместо того чтобы допускать нарушение порядка сортировки. [#71891](https://github.com/ClickHouse/ClickHouse/pull/71891) ([Peter Nguyen](https://github.com/petern48)). +* Скрытие секретов в выводе `EXPLAIN QUERY TREE`. [#72025](https://github.com/ClickHouse/ClickHouse/pull/72025) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Добавлена поддержка логических целочисленных типов Parquet в «native» ридере. [#72105](https://github.com/ClickHouse/ClickHouse/pull/72105) ([Arthur Passos](https://github.com/arthurpassos)). +* Теперь, если для пользователя по умолчанию требуется пароль, учетные данные интерактивно запрашиваются в браузере. В предыдущих версиях сервер возвращал HTTP 403; теперь он возвращает HTTP 401. [#72198](https://github.com/ClickHouse/ClickHouse/pull/72198) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Типы прав доступа `CREATE_USER`, `ALTER_USER`, `DROP_USER`, `CREATE_ROLE`, `ALTER_ROLE`, `DROP_ROLE` переведены из глобальных в параметризованные. Это означает, что теперь вы можете более точно выдавать права на управление доступом. [#72246](https://github.com/ClickHouse/ClickHouse/pull/72246) ([pufit](https://github.com/pufit)). +* Добавлен столбец `latest_fail_error_code_name` в `system.mutations`. Этот столбец необходим для добавления новой метрики для зависших мутаций и использования её для построения графиков ошибок, возникающих в Cloud, а также, при необходимости, нового, менее шумного оповещения. [#72398](https://github.com/ClickHouse/ClickHouse/pull/72398) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Сокращено количество выделений памяти при выполнении запроса `ATTACH PARTITION`. [#72583](https://github.com/ClickHouse/ClickHouse/pull/72583) ([Konstantин Morozov](https://github.com/k-morozov)). +* Лимит `max_bytes_before_external_sort` теперь зависит от общего потребления памяти запросом (ранее это было количество байт в блоке сортировки для одного потока сортировки, теперь он имеет то же значение, что и `max_bytes_before_external_group_by` — это общий лимит на память для всего запроса по всем потокам). Также добавлена ещё одна настройка для управления размером блока на диске — `min_external_sort_block_bytes`. [#72598](https://github.com/ClickHouse/ClickHouse/pull/72598) ([Azat Khuzhin](https://github.com/azat)). +* Сборщик трассировок теперь игнорирует ограничения по памяти. [#72606](https://github.com/ClickHouse/ClickHouse/pull/72606) ([Azat Khuzhin](https://github.com/azat)). +* Добавлены серверные настройки `dictionaries_lazy_load` и `wait_dictionaries_load_at_startup` в таблицу `system.server_settings`. [#72664](https://github.com/ClickHouse/ClickHouse/pull/72664) ([Christoph Wurm](https://github.com/cwurm)). +* Добавлена настройка `max_backup_bandwidth` в список настроек, которые можно указывать в запросах `BACKUP`/`RESTORE`. [#72665](https://github.com/ClickHouse/ClickHouse/pull/72665) ([Christoph Wurm](https://github.com/cwurm)). +* Снижен уровень логирования сообщений о появлении реплицированных частей в движке ReplicatedMergeTree, чтобы уменьшить объём логов, генерируемых в реплицированном кластере. [#72876](https://github.com/ClickHouse/ClickHouse/pull/72876) ([mor-akamai](https://github.com/morkalfon)). +* Улучшено извлечение общей части выражения в дизъюнкциях. Теперь можно упрощать результирующее выражение фильтра, даже если нет общего подвыражения для всех дизъюнктов. Продолжение [#71537](https://github.com/ClickHouse/ClickHouse/issues/71537). [#73271](https://github.com/ClickHouse/ClickHouse/pull/73271) ([Dmitry Novik](https://github.com/novikd)). +* В хранилищах `S3Queue` и `AzureQueue` теперь можно добавлять настройки для таблиц, созданных без настроек. [#73283](https://github.com/ClickHouse/ClickHouse/pull/73283) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Добавлена настройка `least_greatest_legacy_null_behavior` (значение по умолчанию: `false`), которая определяет, будут ли функции `least` и `greatest` при наличии аргументов `NULL` безусловно возвращать `NULL` (если `true`) или игнорировать такие аргументы (если `false`). [#73344](https://github.com/ClickHouse/ClickHouse/pull/73344) ([Robert Schulze](https://github.com/rschu1ze)). +* Использовать multi-запросы Keeper в потоке очистки ObjectStorageQueueMetadata. [#73357](https://github.com/ClickHouse/ClickHouse/pull/73357) ([Antonio Andelic](https://github.com/antonio2368)). +* Когда ClickHouse запущен в cgroup, мы по‑прежнему собираем системные асинхронные метрики, связанные с нагрузкой, планированием процессов, памятью и т.д. Они могут дать полезные сигналы, когда ClickHouse — единственный процесс на хосте с высоким потреблением ресурсов. [#73369](https://github.com/ClickHouse/ClickHouse/pull/73369) ([Nikita Taranov](https://github.com/nickitat)). +* В хранилище `S3Queue` добавлена возможность переводить старые упорядоченные таблицы, созданные до версии 24.6, на новую структуру с бакетами. [#73467](https://github.com/ClickHouse/ClickHouse/pull/73467) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Добавлена таблица `system.azure_queue`, аналогичная существующей `system.s3queue`. [#73477](https://github.com/ClickHouse/ClickHouse/pull/73477) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Функция `parseDateTime64` (и её варианты) теперь выдаёт корректные результаты для дат, относящихся к периодам до 1970 года и после 2106 года. Пример: `SELECT parseDateTime64InJodaSyntax('2200-01-01 00:00:00.000', 'yyyy-MM-dd HH:mm:ss.SSS')`. [#73594](https://github.com/ClickHouse/ClickHouse/pull/73594) ([zhanglistar](https://github.com/zhanglistar)). +* Решены некоторые проблемы удобства использования `clickhouse-disks`, на которые указывали пользователи. Закрывает [#67136](https://github.com/ClickHouse/ClickHouse/issues/67136). [#73616](https://github.com/ClickHouse/ClickHouse/pull/73616) ([Daniil Ivanik](https://github.com/divanik)). +* Добавлена возможность изменять настройки коммита в хранилище S3(Azure)Queue (настройки коммита: `max_processed_files_before_commit`, `max_processed_rows_before_commit`, `max_processed_bytes_before_commit`, `max_processing_time_sec_before_commit`). [#73635](https://github.com/ClickHouse/ClickHouse/pull/73635) ([Kseniia Sumarokova](https://github.com/kssenii)). +* В хранилище S3(Azure)Queue прогресс между источниками теперь агрегируется для сравнения с параметрами предельного значения фиксации (commit limit). [#73641](https://github.com/ClickHouse/ClickHouse/pull/73641) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Добавлена поддержка базовых настроек в запросе `BACKUP`/`RESTORE`. [#73650](https://github.com/ClickHouse/ClickHouse/pull/73650) ([Vitaly Baranov](https://github.com/vitlibar)). +* При выводе в формате Parquet учитывает параметр `output_format_compression_level`. [#73651](https://github.com/ClickHouse/ClickHouse/pull/73651) ([Arthur Passos](https://github.com/arthurpassos)). +* Добавлена поддержка чтения типа Apache Arrow `fixed_size_list` как `Array` вместо его обработки как неподдерживаемого. [#73654](https://github.com/ClickHouse/ClickHouse/pull/73654) ([Julian Meyers](https://github.com/J-Meyers)). +* Добавлены два движка резервного копирования: `Memory` (хранит бэкапы в текущей пользовательской сессии) и `Null` (не хранит бэкапы нигде), предназначенный для тестирования. [#73690](https://github.com/ClickHouse/ClickHouse/pull/73690) ([Vitaly Baranov](https://github.com/vitlibar)). +* `concurrent_threads_soft_limit_num` и `concurrent_threads_soft_limit_num_ratio_to_cores` теперь можно изменять без перезапуска сервера. [#73713](https://github.com/ClickHouse/ClickHouse/pull/73713) ([Sergei Trifonov](https://github.com/serxa)). +* Добавлена поддержка расширенных числовых типов (`Decimal`, большие целые числа) в функциях `formatReadable`. [#73765](https://github.com/ClickHouse/ClickHouse/pull/73765) ([Raúl Marín](https://github.com/Algunenano)). +* Добавлена поддержка TLS для совместимости с протоколом взаимодействия PostgreSQL (wire protocol). [#73812](https://github.com/ClickHouse/ClickHouse/pull/73812) ([scanhex12](https://github.com/scanhex12)). +* Функция `isIPv4String` возвращала значение true, если за корректным IPv4‑адресом следовал нулевой байт, хотя в этом случае она должна была возвращать false. Продолжение [#65387](https://github.com/ClickHouse/ClickHouse/issues/65387). [#73946](https://github.com/ClickHouse/ClickHouse/pull/73946) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Сделать код ошибки в сетевом протоколе MySQL (MySQL wire protocol) совместимым с MySQL. Продолжение [#56831](https://github.com/ClickHouse/ClickHouse/issues/56831). Закрывает [#50957](https://github.com/ClickHouse/ClickHouse/issues/50957). [#73948](https://github.com/ClickHouse/ClickHouse/pull/73948) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Добавлена настройка `validate_enum_literals_in_opearators`, которая проверяет литералы enum в операторах `IN`, `NOT IN` на соответствие типу enum и выбрасывает исключение, если литерал не является допустимым значением enum. [#73985](https://github.com/ClickHouse/ClickHouse/pull/73985) ([Vladimir Cherkasov](https://github.com/vdimir)). +* В хранилище `S3(Azure)Queue` все файлы (в одной пачке, определяемой настройками коммита) фиксируются в рамках одной транзакции Keeper. [#73991](https://github.com/ClickHouse/ClickHouse/pull/73991) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Отключено автоопределение заголовков для исполняемых UDF и словарей (что могло приводить к ошибке вида Function 'X': wrong result, expected Y row(s), actual Y-1). [#73992](https://github.com/ClickHouse/ClickHouse/pull/73992) ([Azat Khuzhin](https://github.com/azat)). +* Добавлена опция `distributed` для `EXPLAIN PLAN`. Теперь `EXPLAIN distributed=1 ...` добавляет план удалённого выполнения к шагам `ReadFromParallelRemote*`. [#73994](https://github.com/ClickHouse/ClickHouse/pull/73994) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Теперь используется корректный тип возвращаемого значения для not/xor с аргументами типа Dynamic. [#74013](https://github.com/ClickHouse/ClickHouse/pull/74013) ([Pavel Kruglov](https://github.com/Avogar)). +* Добавлена возможность изменять `add_implicit_sign_column_constraint_for_collapsing_engine` после создания таблицы. [#74014](https://github.com/ClickHouse/ClickHouse/pull/74014) ([Christoph Wurm](https://github.com/cwurm)). +* Добавлена поддержка подстолбцов в SELECT‑запросе materialized view. [#74030](https://github.com/ClickHouse/ClickHouse/pull/74030) ([Pavel Kruglov](https://github.com/Avogar)). +* Теперь есть три простых способа задать настраиваемый prompt в `clickhouse-client`: 1) через параметр командной строки `--prompt`, 2) в конфигурационном файле, через настройку `[...]`, и 3) также в конфигурационном файле, через настройки для отдельных подключений `[...]`. [#74168](https://github.com/ClickHouse/ClickHouse/pull/74168) ([Christoph Wurm](https://github.com/cwurm)). +* Автоматическое определение защищённого соединения при подключении к порту 9440 в клиенте ClickHouse. [#74212](https://github.com/ClickHouse/ClickHouse/pull/74212) ([Christoph Wurm](https://github.com/cwurm)). +* Разрешить аутентификацию пользователей только по имени пользователя для http_handlers (ранее также требовалось указывать пароль). [#74221](https://github.com/ClickHouse/ClickHouse/pull/74221) ([Azat Khuzhin](https://github.com/azat)). +* Поддержка альтернативных языков запросов PRQL и KQL помечена как экспериментальная. Для их использования установите настройки `allow_experimental_prql_dialect = 1` и `allow_experimental_kusto_dialect = 1`. [#74224](https://github.com/ClickHouse/ClickHouse/pull/74224) ([Robert Schulze](https://github.com/rschu1ze)). +* Расширена поддержка возврата значения типа Enum по умолчанию в большем количестве агрегатных функций. [#74272](https://github.com/ClickHouse/ClickHouse/pull/74272) ([Raúl Marín](https://github.com/Algunenano)). +* В операторе `OPTIMIZE TABLE` теперь можно использовать ключевое слово `FORCE` как альтернативу существующему ключевому слову `FINAL`. [#74342](https://github.com/ClickHouse/ClickHouse/pull/74342) ([Robert Schulze](https://github.com/rschu1ze)). +* Добавлена метрика `IsServerShuttingDown`, необходимая для срабатывания оповещения, когда завершение работы сервера занимает слишком много времени. [#74429](https://github.com/ClickHouse/ClickHouse/pull/74429) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* Добавлены имена таблиц формата Iceberg в вывод EXPLAIN. [#74485](https://github.com/ClickHouse/ClickHouse/pull/74485) ([alekseev-maksim](https://github.com/alekseev-maksim)). +* Улучшено сообщение об ошибке при использовании RECURSIVE CTE со старым анализатором. [#74523](https://github.com/ClickHouse/ClickHouse/pull/74523) ([Raúl Marín](https://github.com/Algunenano)). +* Добавлен вывод расширенных сообщений об ошибках в `system.errors`. [#74574](https://github.com/ClickHouse/ClickHouse/pull/74574) ([Vitaly Baranov](https://github.com/vitlibar)). +* Добавлена возможность использовать пароль для клиентского подключения к clickhouse-keeper. Эта функция не очень полезна, если у вас корректно настроена SSL-конфигурация для сервера и клиента, но всё же может быть полезна в некоторых случаях. Пароль не может быть длиннее 16 символов. Это не связано с моделью аутентификации Keeper. [#74673](https://github.com/ClickHouse/ClickHouse/pull/74673) ([alesapin](https://github.com/alesapin)). +* Добавлен код ошибки для перезагрузчика конфигурации. [#74746](https://github.com/ClickHouse/ClickHouse/pull/74746) ([Garrett Thomas](https://github.com/garrettthomaskth)). +* Добавлена поддержка IPv6-адресов в табличных функциях и движках для MySQL и PostgreSQL. [#74796](https://github.com/ClickHouse/ClickHouse/pull/74796) ([Mikhail Koviazin](https://github.com/mkmkme)). +* Реализована оптимизация с коротким замыканием для `divideDecimal`. Исправляет [#74280](https://github.com/ClickHouse/ClickHouse/issues/74280). [#74843](https://github.com/ClickHouse/ClickHouse/pull/74843) ([Kevin Mingtarja](https://github.com/kevinmingtarja)). +* Теперь пользователей можно задавать непосредственно в стартовых скриптах. [#74894](https://github.com/ClickHouse/ClickHouse/pull/74894) ([pufit](https://github.com/pufit)). +* Добавлена поддержка SAS-токенов Azure. [#72959](https://github.com/ClickHouse/ClickHouse/pull/72959) ([Azat Khuzhin](https://github.com/azat)). + +#### Исправление ошибки (ошибка, проявляющаяся для пользователя, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* Устанавливать уровень сжатия Parquet только если кодек сжатия его поддерживает. [#74659](https://github.com/ClickHouse/ClickHouse/pull/74659) ([Arthur Passos](https://github.com/arthurpassos)). +* Исправлена регрессия, из-за которой при использовании локалей сортировки с модификаторами возникала ошибка. Например, теперь запрос `SELECT arrayJoin(['kk 50', 'KK 01', ' KK 2', ' KK 3', 'kk 1', 'x9y99', 'x9y100']) item ORDER BY item ASC COLLATE 'tr-u-kn-true-ka-shifted` выполняется без ошибок. [#73544](https://github.com/ClickHouse/ClickHouse/pull/73544) ([Robert Schulze](https://github.com/rschu1ze)). +* Исправлена ошибка, из-за которой невозможно было создать узел SEQUENTIAL с помощью keeper-client. [#64177](https://github.com/ClickHouse/ClickHouse/pull/64177) ([Duc Canh Le](https://github.com/canhld94)). +* Исправлен некорректный подсчёт символов в функциях position. [#71003](https://github.com/ClickHouse/ClickHouse/pull/71003) ([思维](https://github.com/heymind)). +* Операции `RESTORE` для объектов доступа требовали больше прав, чем необходимо, из‑за некорректной обработки частичных отзывов прав. Этот PR исправляет проблему. Закрывает [#71853](https://github.com/ClickHouse/ClickHouse/issues/71853). [#71958](https://github.com/ClickHouse/ClickHouse/pull/71958) ([pufit](https://github.com/pufit)). +* Устранена пауза после выполнения `ALTER TABLE REPLACE/MOVE PARTITION FROM/TO TABLE`. Обеспечено получение корректных настроек для планирования выполнения фоновых задач. [#72024](https://github.com/ClickHouse/ClickHouse/pull/72024) ([Aleksei Filatov](https://github.com/aalexfvk)). +* Исправлена обработка пустых кортежей в некоторых форматах ввода и вывода (например, Parquet, Arrow). [#72616](https://github.com/ClickHouse/ClickHouse/pull/72616) ([Michael Kolupaev](https://github.com/al13n321)). +* Команды GRANT SELECT/INSERT на уровне столбцов для баз данных/таблиц с подстановочными символами теперь вызывают ошибку. [#72646](https://github.com/ClickHouse/ClickHouse/pull/72646) ([Johann Gan](https://github.com/johanngan)). +* Исправлена ошибка, из-за которой пользователь не мог выполнить `REVOKE ALL ON *.*` из-за неявных предоставлений прав у целевой сущности доступа. [#72872](https://github.com/ClickHouse/ClickHouse/pull/72872) ([pufit](https://github.com/pufit)). +* Исправлено форматирование положительных смещений часового пояса в скалярной функции formatDateTime. [#73091](https://github.com/ClickHouse/ClickHouse/pull/73091) ([ollidraese](https://github.com/ollidraese)). +* Исправлено некорректное определение исходного порта при подключении через PROXYv1 и включённом параметре `auth_use_forwarded_address` — ранее использовался порт прокси. Добавлена функция `currentQueryID()`. [#73095](https://github.com/ClickHouse/ClickHouse/pull/73095) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Теперь в TCPHandler настройки формата передаются в NativeWriter, чтобы такие настройки, как `output_format_native_write_json_as_string`, применялись корректно. [#73179](https://github.com/ClickHouse/ClickHouse/pull/73179) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена ошибка, приводившая к падению StorageObjectStorageQueue. [#73274](https://github.com/ClickHouse/ClickHouse/pull/73274) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлено редкое падение refreshable materialized view при завершении работы сервера. [#73323](https://github.com/ClickHouse/ClickHouse/pull/73323) ([Michael Kolupaev](https://github.com/al13n321)). +* Спецификатор `%f` в функции `formatDateTime` теперь всегда генерирует шесть цифр для долей секунды. Это делает поведение совместимым с функцией MySQL `DATE_FORMAT`. Предыдущее поведение можно восстановить с помощью настройки `formatdatetime_f_prints_scale_number_of_digits = 1`. [#73324](https://github.com/ClickHouse/ClickHouse/pull/73324) ([ollidraese](https://github.com/ollidraese)). +* Исправлена фильтрация по столбцу `_etag` при чтении из хранилища `s3` и соответствующей табличной функции. [#73353](https://github.com/ClickHouse/ClickHouse/pull/73353) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлена ошибка `Not-ready Set is passed as the second argument for function 'in'`, возникавшая при использовании оператора `IN (subquery)` в выражении `JOIN ON` со старым анализатором. [#73382](https://github.com/ClickHouse/ClickHouse/pull/73382) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлена подготовка к схлопыванию для столбцов Dynamic и JSON. Ранее в некоторых случаях новые типы могли добавляться в shared variant/shared data, даже если лимит на типы/пути ещё не был исчерпан. [#73388](https://github.com/ClickHouse/ClickHouse/pull/73388) ([Pavel Kruglov](https://github.com/Avogar)). +* Добавлена проверка повреждённых значений размеров при бинарном декодировании типов, чтобы избежать чрезмерного выделения памяти. [#73390](https://github.com/ClickHouse/ClickHouse/pull/73390) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена логическая ошибка при чтении из кластера с одной репликой в режиме параллельных реплик. [#73403](https://github.com/ClickHouse/ClickHouse/pull/73403) ([Michael Kolupaev](https://github.com/al13n321)). +* Исправлена работа ObjectStorageQueue с ZooKeeper и более старыми версиями ClickHouse Keeper. [#73420](https://github.com/ClickHouse/ClickHouse/pull/73420) ([Antonio Andelic](https://github.com/antonio2368)). +* Реализовано исправление, позволяющее включить hive-партиционирование по умолчанию. [#73479](https://github.com/ClickHouse/ClickHouse/pull/73479) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Исправлена гонка данных при создании индекса по векторному сходству. [#73517](https://github.com/ClickHouse/ClickHouse/pull/73517) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлена ошибка сегментации (segfault), возникающая, когда источник словаря содержит функцию с некорректными данными. [#73535](https://github.com/ClickHouse/ClickHouse/pull/73535) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Исправлена логика повторных попыток при неудачной вставке в хранилище S3(Azure)Queue. Закрывает [#70951](https://github.com/ClickHouse/ClickHouse/issues/70951). [#73546](https://github.com/ClickHouse/ClickHouse/pull/73546) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлена ошибка в функции `tupleElement`, которая могла возникать в ряде случаев для кортежей с элементами типа `LowCardinality` при включённой настройке `optimize_functions_to_subcolumns`. [#73548](https://github.com/ClickHouse/ClickHouse/pull/73548) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлен разбор шаблона enum glob, за которым следует одиночный диапазон. Исправляет [#73473](https://github.com/ClickHouse/ClickHouse/issues/73473). [#73569](https://github.com/ClickHouse/ClickHouse/pull/73569) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* Исправлена ошибка, из-за которой parallel_replicas_for_non_replicated_merge_tree игнорировался в подзапросах для нереплицируемых таблиц. [#73584](https://github.com/ClickHouse/ClickHouse/pull/73584) ([Igor Nikonov](https://github.com/devcrafter)). +* Исправлено выбрасывание исключения std::logical_error при невозможности запланировать задачу. Обнаружено в стресс‑тестах. [#73629](https://github.com/ClickHouse/ClickHouse/pull/73629) ([Alexander Gololobov](https://github.com/davenger)). +* Не интерпретировать запросы в `EXPLAIN SYNTAX`, чтобы избежать логических ошибок из-за неправильного этапа обработки распределённых запросов. Исправляет [#65205](https://github.com/ClickHouse/ClickHouse/issues/65205). [#73634](https://github.com/ClickHouse/ClickHouse/pull/73634) ([Dmitry Novik](https://github.com/novikd)). +* Устранена потенциальная несогласованность данных в столбце Dynamic. Исправлена возможная логическая ошибка `Nested columns sizes are inconsistent with local_discriminators column size`. [#73644](https://github.com/ClickHouse/ClickHouse/pull/73644) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена ошибка `NOT_FOUND_COLUMN_IN_BLOCK` в запросах с `FINAL` и `SAMPLE`. Исправлен некорректный результат в запросах `SELECT` с `FINAL` из таблиц `CollapsingMergeTree` и включены оптимизации `FINAL`. [#73682](https://github.com/ClickHouse/ClickHouse/pull/73682) ([Anton Popov](https://github.com/CurtizJ)). +* Исправлен сбой при использовании LIMIT BY COLUMNS. [#73686](https://github.com/ClickHouse/ClickHouse/pull/73686) ([Raúl Marín](https://github.com/Algunenano)). +* Исправлена ошибка, при которой при принудительном использовании обычной проекции и точном совпадении запроса с определением проекции эта проекция не выбиралась, из-за чего возникала ошибка. [#73700](https://github.com/ClickHouse/ClickHouse/pull/73700) ([Shichao Jin](https://github.com/jsc0218)). +* Исправлена проблема с десериализацией структуры Dynamic/Object. Она могла приводить к исключениям CANNOT_READ_ALL_DATA. [#73767](https://github.com/ClickHouse/ClickHouse/pull/73767) ([Pavel Kruglov](https://github.com/Avogar)). +* Пропускается `metadata_version.txt` при восстановлении частей из резервной копии. [#73768](https://github.com/ClickHouse/ClickHouse/pull/73768) ([Vitaly Baranov](https://github.com/vitlibar)). +* Исправлена ошибка сегментации при приведении к Enum с использованием LIKE. [#73775](https://github.com/ClickHouse/ClickHouse/pull/73775) ([zhanglistar](https://github.com/zhanglistar)). +* Исправлена проблема, из-за которой S3 Express bucket не работал как диск. [#73777](https://github.com/ClickHouse/ClickHouse/pull/73777) ([Sameer Tamsekar](https://github.com/stamsekar)). +* Разрешить слияние строк с некорректными значениями в столбце sign в таблицах CollapsingMergeTree. [#73864](https://github.com/ClickHouse/ClickHouse/pull/73864) ([Christoph Wurm](https://github.com/cwurm)). +* Исправлена ошибка, возникавшая при выполнении DDL-запросов в кластере с офлайн-репликой. [#73876](https://github.com/ClickHouse/ClickHouse/pull/73876) ([Tuan Pham Anh](https://github.com/tuanpach)). +* Исправлена изредка возникающая ошибка сравнения типов `map()` из-за возможности создания `Map` без явных имён ('keys','values') для вложенного кортежа. [#73878](https://github.com/ClickHouse/ClickHouse/pull/73878) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Игнорировать оконные функции при обработке предложения GROUP BY ALL. Исправлена проблема [#73501](https://github.com/ClickHouse/ClickHouse/issues/73501). [#73916](https://github.com/ClickHouse/ClickHouse/pull/73916) ([Dmitry Novik](https://github.com/novikd)). +* Исправлены неявные привилегии (ранее они работали как подстановочный шаблон). [#73932](https://github.com/ClickHouse/ClickHouse/pull/73932) ([Azat Khuzhin](https://github.com/azat)). +* Устранено повышенное потребление памяти при создании вложенных Maps. [#73982](https://github.com/ClickHouse/ClickHouse/pull/73982) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправлена ошибка разбора вложенного JSON с пустыми ключами. [#73993](https://github.com/ClickHouse/ClickHouse/pull/73993) ([Pavel Kruglov](https://github.com/Avogar)). +* Исправление: псевдоним может не добавляться в PROJECTION, если на него ссылается другой псевдоним и они выбираются в обратном порядке. [#74033](https://github.com/ClickHouse/ClickHouse/pull/74033) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Игнорировать ошибки «object not found» от Azure при инициализации диска plain_rewritable. [#74059](https://github.com/ClickHouse/ClickHouse/pull/74059) ([Julia Kartseva](https://github.com/jkartseva)). +* Исправлено поведение функций `any` и `anyLast` при работе с типами Enum и пустой таблицей. [#74061](https://github.com/ClickHouse/ClickHouse/pull/74061) ([Joanna Hulboj](https://github.com/jh0x)). +* Исправлена ошибка, возникавшая при указании пользователем именованных аргументов в движке таблиц Kafka. [#74064](https://github.com/ClickHouse/ClickHouse/pull/74064) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Исправлена ошибка при изменении настроек Storage `S3Queue` с префиксом "s3queue_" на такие же без префикса и обратно. [#74075](https://github.com/ClickHouse/ClickHouse/pull/74075) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Добавлена настройка `allow_push_predicate_ast_for_distributed_subqueries`. Она включает основанное на AST проталкивание предикатов (predicate push-down) для распределённых запросов с анализатором. Это временное решение, которое мы используем до тех пор, пока не будет поддержана сериализация плана запроса для распределённых запросов. Закрывает [#66878](https://github.com/ClickHouse/ClickHouse/issues/66878) [#69472](https://github.com/ClickHouse/ClickHouse/issues/69472) [#65638](https://github.com/ClickHouse/ClickHouse/issues/65638) [#68030](https://github.com/ClickHouse/ClickHouse/issues/68030) [#73718](https://github.com/ClickHouse/ClickHouse/issues/73718). [#74085](https://github.com/ClickHouse/ClickHouse/pull/74085) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Исправлена проблема, при которой после [#73095](https://github.com/ClickHouse/ClickHouse/issues/73095) порт мог присутствовать в поле forwarded_for, что приводило к невозможности разрешить имя хоста с указанным портом. [#74116](https://github.com/ClickHouse/ClickHouse/pull/74116) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Исправлено неверное форматирование конструкции `ALTER TABLE (DROP STATISTICS ...) (DROP STATISTICS ...)`. [#74126](https://github.com/ClickHouse/ClickHouse/pull/74126) ([Han Fei](https://github.com/hanfei1991)). +* Исправление ошибки [#66112](https://github.com/ClickHouse/ClickHouse/issues/66112). [#74128](https://github.com/ClickHouse/ClickHouse/pull/74128) ([Anton Ivashkin](https://github.com/ianton-ru)). +* Больше нельзя использовать движок таблицы `Loop` в `CREATE TABLE`. Это сочетание ранее приводило к ошибкам сегментации (segfault). [#74137](https://github.com/ClickHouse/ClickHouse/pull/74137) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Исправлена уязвимость, позволявшая выполнять SQL-инъекции в табличных функциях `postgresql` и `sqlite`. [#74144](https://github.com/ClickHouse/ClickHouse/pull/74144) ([Pablo Marcos](https://github.com/pamarcos)). +* Исправлен сбой при чтении подстолбца из сжатой таблицы с движком Memory. Устраняет проблему [#74009](https://github.com/ClickHouse/ClickHouse/issues/74009). [#74161](https://github.com/ClickHouse/ClickHouse/pull/74161) ([Nikita Taranov](https://github.com/nickitat)). +* Исправлен бесконечный цикл, возникавший при выполнении запросов к system.detached_tables. [#74190](https://github.com/ClickHouse/ClickHouse/pull/74190) ([Konstantin Morozov](https://github.com/k-morozov)). +* Исправлена логическая ошибка в s3queue при пометке файла как ошибочного. [#74216](https://github.com/ClickHouse/ClickHouse/pull/74216) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Исправлены настройки нативного копирования (`allow_s3_native_copy`/`allow_azure_native_copy`) для операции `RESTORE` из базового бэкапа. [#74286](https://github.com/ClickHouse/ClickHouse/pull/74286) ([Azat Khuzhin](https://github.com/azat)). +* Исправлена проблема, возникавшая, если число отсоединённых таблиц в базе данных кратно значению max_block_size. [#74289](https://github.com/ClickHouse/ClickHouse/pull/74289) ([Konstantin Morozov](https://github.com/k-morozov)). +* Исправлена ошибка копирования через ObjectStorage (S3) при различающихся учетных данных источника и назначения. [#74331](https://github.com/ClickHouse/ClickHouse/pull/74331) ([Azat Khuzhin](https://github.com/azat)). +* Исправлено распознавание параметра "use the Rewrite method in the JSON API" для нативного копирования в GCS. [#74338](https://github.com/ClickHouse/ClickHouse/pull/74338) ([Azat Khuzhin](https://github.com/azat)). +* Исправлен неверный расчёт параметра `BackgroundMergesAndMutationsPoolSize` (он вычислялся вдвое больше фактического значения). [#74509](https://github.com/ClickHouse/ClickHouse/pull/74509) ([alesapin](https://github.com/alesapin)). +* Исправлена ошибка утечки наблюдателей в Keeper при включении Cluster Discovery. [#74521](https://github.com/ClickHouse/ClickHouse/pull/74521) ([RinChanNOW](https://github.com/RinChanNOWWW)). +* Исправлена проблема с выравниванием памяти, о которой сообщил UBSan [#74512](https://github.com/ClickHouse/ClickHouse/issues/74512). [#74534](https://github.com/ClickHouse/ClickHouse/pull/74534) ([Arthur Passos](https://github.com/arthurpassos)). +* Исправлена ошибка конкурентной очистки KeeperMap при создании таблицы. [#74568](https://github.com/ClickHouse/ClickHouse/pull/74568) ([Antonio Andelic](https://github.com/antonio2368)). +* Не удалять неиспользуемые столбцы проекций в подзапросах при использовании `EXCEPT` или `INTERSECT`, чтобы сохранять корректный результат запроса. Исправляет [#73930](https://github.com/ClickHouse/ClickHouse/issues/73930). Исправляет [#66465](https://github.com/ClickHouse/ClickHouse/issues/66465). [#74577](https://github.com/ClickHouse/ClickHouse/pull/74577) ([Dmitry Novik](https://github.com/novikd)). +* Исправлены запросы `INSERT SELECT` между таблицами со столбцами типа `Tuple` при включённой разрежённой сериализации. [#74698](https://github.com/ClickHouse/ClickHouse/pull/74698) ([Anton Popov](https://github.com/CurtizJ)). +* Функция `right` работает некорректно при отрицательном константном смещении. [#74701](https://github.com/ClickHouse/ClickHouse/pull/74701) ([Daniil Ivanik](https://github.com/divanik)). +* Исправлена ошибка, из-за которой вставка gzip-сжатых данных иногда завершалась сбоем из-за некорректной декомпрессии на стороне клиента. [#74707](https://github.com/ClickHouse/ClickHouse/pull/74707) ([siyuan](https://github.com/linkwk7)). +* Частичный отзыв прав при использовании шаблонных привилегий (wildcard grants) мог удалять больше привилегий, чем ожидалось. Закрывает [#74263](https://github.com/ClickHouse/ClickHouse/issues/74263). [#74751](https://github.com/ClickHouse/ClickHouse/pull/74751) ([pufit](https://github.com/pufit)). +* Keeper fix: исправление чтения записей журнала с диска. [#74785](https://github.com/ClickHouse/ClickHouse/pull/74785) ([Antonio Andelic](https://github.com/antonio2368)). +* Исправлена проверка прав для SYSTEM REFRESH/START/STOP VIEW: теперь для выполнения запроса к конкретному представлению не требуется иметь это право на `*.*`, достаточно права только на это представление. [#74789](https://github.com/ClickHouse/ClickHouse/pull/74789) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Функция `hasColumnInTable` не учитывает столбцы-псевдонимы. Исправлена так, что теперь она также работает со столбцами-псевдонимами. [#74841](https://github.com/ClickHouse/ClickHouse/pull/74841) ([Bharat Nallan](https://github.com/bharatnc)). +* Исправлена ошибка FILE_DOESNT_EXIST, возникающая при слиянии частей данных для таблицы с пустым столбцом в Azure Blob Storage. [#74892](https://github.com/ClickHouse/ClickHouse/pull/74892) ([Julia Kartseva](https://github.com/jkartseva)). +* Исправлено имя столбца проекции при объединении временных таблиц, закрыт [#68872](https://github.com/ClickHouse/ClickHouse/issues/68872). [#74897](https://github.com/ClickHouse/ClickHouse/pull/74897) ([Vladimir Cherkasov](https://github.com/vdimir)). + +#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement} + +* Универсальный скрипт установки будет предлагать выполнить установку даже на macOS. [#74339](https://github.com/ClickHouse/ClickHouse/pull/74339) ([Alexey Milovidov](https://github.com/alexey-milovidov)). \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/cloud.md b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/cloud.md index 655ff2e4ef6..3f3a7fcdcb0 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/cloud.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/cloud.md @@ -1,5 +1,5 @@ --- -sidebar_position: 1 +sidebar_position: -9999 sidebar_label: 'Облако' title: 'Журнал изменений ClickHouse Cloud' slug: /whats-new/changelog/cloud diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/index.md index 23561644719..957e7636f32 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/index.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/index.md @@ -1,2522 +1,14 @@ --- -description: 'Список изменений за 2025 год' +description: 'Список изменений за 2026 год' note: 'Этот файл сгенерирован с помощью команды yarn build' slug: /whats-new/changelog/ -sidebar_position: 2 -sidebar_label: '2025' -title: 'Список изменений 2025' +sidebar_position: -9998 +sidebar_label: '2026' +title: 'Список изменений 2026' doc_type: 'changelog' --- -### Оглавление {#table-of-contents} - -**[Релиз ClickHouse v25.11, 2025-11-27](#2511)**
    -**[Релиз ClickHouse v25.10, 2025-10-30](#2510)**
    -**[Релиз ClickHouse v25.9, 2025-09-25](#259)**
    -**[Релиз ClickHouse v25.8 LTS, 2025-08-28](#258)**
    -**[Релиз ClickHouse v25.7, 2025-07-24](#257)**
    -**[Релиз ClickHouse v25.6, 2025-06-26](#256)**
    -**[Релиз ClickHouse v25.5, 2025-05-22](#255)**
    -**[Релиз ClickHouse v25.4, 2025-04-22](#254)**
    -**[Релиз ClickHouse v25.3 LTS, 2025-03-20](#253)**
    -**[Релиз ClickHouse v25.2, 2025-02-27](#252)**
    -**[Релиз ClickHouse v25.1, 2025-01-28](#251)**
    -**[Журнал изменений за 2024 год](https://clickhouse.com/docs/whats-new/changelog/2024/)**
    -**[Журнал изменений за 2023 год](https://clickhouse.com/docs/whats-new/changelog/2023/)**
    -**[Журнал изменений за 2022 год](https://clickhouse.com/docs/whats-new/changelog/2022/)**
    -**[Журнал изменений за 2021 год](https://clickhouse.com/docs/whats-new/changelog/2021/)**
    -**[Журнал изменений за 2020 год](https://clickhouse.com/docs/whats-new/changelog/2020/)**
    -**[Журнал изменений за 2019 год](https://clickhouse.com/docs/whats-new/changelog/2019/)**
    -**[Журнал изменений за 2018 год](https://clickhouse.com/docs/whats-new/changelog/2018/)**
    -**[Журнал изменений за 2017 год](https://clickhouse.com/docs/whats-new/changelog/2017/)**
    - -### Релиз ClickHouse 25.11, 2025-11-27 {#2511} - -#### Изменение, нарушающее обратную совместимость {#backward-incompatible-change} - -* Удалён устаревший тип данных `Object`. [#85718](https://github.com/ClickHouse/ClickHouse/pull/85718) ([Pavel Kruglov](https://github.com/Avogar)). -* Удалена устаревшая возможность `LIVE VIEW`. Если вы используете `LIVE VIEW`, обновление до новой версии будет невозможно. [#88706](https://github.com/ClickHouse/ClickHouse/pull/88706) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* В предыдущих версиях тип `Geometry` был алиасом типа `String`, но теперь это полноценный тип. [#83344](https://github.com/ClickHouse/ClickHouse/pull/83344) ([scanhex12](https://github.com/scanhex12)). -* Добавлено экранирование имён файлов, создаваемых для подстолбцов типа `Variant` в широких партах данных (Wide) таблиц MergeTree. Это изменение нарушает совместимость со старыми таблицами с типами данных Variant/Dynamic/JSON. Исправляет хранение типов со специальными символами внутри Variant (например, DateTime с определённым часовым поясом, который содержит `\`). Экранирование можно отключить, изменив настройку MergeTree `escape_variant_subcolumn_filenames` (для сохранения совместимости отключите эту настройку в конфигурации для MergeTree или установите настройку `compatibility` на предыдущую версию перед обновлением). Решает [#69590](https://github.com/ClickHouse/ClickHouse/issues/69590). [#87300](https://github.com/ClickHouse/ClickHouse/pull/87300) ([Pavel Kruglov](https://github.com/Avogar)). -* По умолчанию включён формат сериализации `with_size_stream` для типа данных `String`. Это изменение обратно совместимо, но новый формат сериализации поддерживается только начиная с версии 25.10, что означает невозможность отката до версий ранее 25.10. Если вы хотите сохранить возможность отката до версий 25.9 и более ранних, настройте `serialization_info_version` как `basic` и `string_serialization_version` как `single_stream` в разделе `merge_tree` конфигурации сервера. [#89329](https://github.com/ClickHouse/ClickHouse/pull/89329) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Добавлена поддержка пометки исключений тегами в HTTP-ответах, чтобы клиенты могли более надёжно анализировать исключения. Исправляет [#75175](https://github.com/ClickHouse/ClickHouse/issues/75175). Настройка `http_write_exception_in_output_format` по умолчанию отключена для обеспечения единообразия между форматами. [#88818](https://github.com/ClickHouse/ClickHouse/pull/88818) ([Kaviraj Kanagaraj](https://github.com/kavirajk)). Хотя не предполагается, что это нарушит какое-либо существующее поведение (в худшем случае к сообщению об исключении будет добавлена странная строка), всё же имеет смысл использовать «Изменение, нарушающее обратную совместимость» как категорию в changelog просто для информирования (потому что неизвестно, как какие-нибудь грязные скрипты могут разбирать сообщение об исключении). -* Запрещено создавать несколько дисков `plain-rewritable` поверх общего пути объектного хранилища, так как это может приводить к неопределённому поведению при коллизиях разных транзакций хранения метаданных. [#89038](https://github.com/ClickHouse/ClickHouse/pull/89038) ([Mikhail Artemenko](https://github.com/Michicosun)). -* Исправлен приоритет настроек SASL для хранилища Kafka. Табличные настройки SASL, заданные в запросах CREATE TABLE, теперь корректно переопределяют настройки consumer/producer из конфигурационных файлов. [#89401](https://github.com/ClickHouse/ClickHouse/pull/89401) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* Временные метки Parquet без часового пояса (isAdjustedToUTC=false) теперь читаются как DateTime64(..., 'UTC') вместо DateTime64(...). Это менее ошибочно, так как преобразование такой временной метки в UTC в строку даёт корректное локальное время. Используйте `input_format_parquet_local_time_as_utc = 0`, чтобы вернуть старое поведение. Решает проблему [#87469](https://github.com/ClickHouse/ClickHouse/issues/87469). [#87872](https://github.com/ClickHouse/ClickHouse/pull/87872) ([Michael Kolupaev](https://github.com/al13n321)). -* Небольшое улучшение кодека `T64`: он больше не принимает типы данных, не выровненные по размеру элемента сжатия, что иначе приводило бы к ошибке. Исправляет [#89282](https://github.com/ClickHouse/ClickHouse/issues/89282). [#89432](https://github.com/ClickHouse/ClickHouse/pull/89432) ([yanglongwei](https://github.com/ylw510)). - -#### Новая возможность {#new-feature} - -* Добавлен тип `Geometry`. Для него поддерживается чтение форматов `WKB` и `WKT`. В предыдущих версиях тип `Geometry` был псевдонимом типа `String`, но теперь это полноценный тип. [#83344](https://github.com/ClickHouse/ClickHouse/pull/83344) ([scanhex12](https://github.com/scanhex12)). -* Добавлен новый оператор SQL `EXECUTE AS` для поддержки выполнения от имени других пользователей. Исправляет [#39048](https://github.com/ClickHouse/ClickHouse/issues/39048). [#70775](https://github.com/ClickHouse/ClickHouse/pull/70775) ([Shankar](https://github.com/shiyer7474)). -* Добавлена функция `naiveBayesClassifier` для классификации текста с использованием метода наивного Байеса на основе n-грамм. [#88677](https://github.com/ClickHouse/ClickHouse/pull/88677) ([Nihal Z. Miaji](https://github.com/nihalzp)). -* Добавлена поддержка дробных значений параметров `LIMIT` и `OFFSET` для выборки доли таблицы. Закрывает [#81892](https://github.com/ClickHouse/ClickHouse/issues/81892). [#88755](https://github.com/ClickHouse/ClickHouse/pull/88755) ([Ahmed Gouda](https://github.com/0xgouda)). -* Подсистема ClickHouse для каталога Microsoft OneLake. [#89366](https://github.com/ClickHouse/ClickHouse/pull/89366) ([scanhex12](https://github.com/scanhex12)). -* Добавлена функция `flipCoordinates`, которая распаковывает заданное количество измерений массива и переставляет указатели местами внутри столбца Tuple. Исправляет [#79469](https://github.com/ClickHouse/ClickHouse/issues/79469). [#79634](https://github.com/ClickHouse/ClickHouse/pull/79634) ([Sachin Kumar Singh](https://github.com/sachinkumarsingh092)). -* Добавлена таблица `system.unicode`, содержащая список символов Юникода и их свойств. Закрывает [#80055](https://github.com/ClickHouse/ClickHouse/issues/80055). [#80857](https://github.com/ClickHouse/ClickHouse/pull/80857) ([wxybear](https://github.com/wxybear)). -* Добавлена новая настройка MergeTree `merge_max_dynamic_subcolumns_in_wide_part`, позволяющая ограничивать число динамических подстолбцов в части формата Wide после слияния независимо от параметров, заданных в типе данных. [#87646](https://github.com/ClickHouse/ClickHouse/pull/87646) ([Pavel Kruglov](https://github.com/Avogar)). -* Добавлена поддержка оконной функции `cume_dist`. Исправлена проблема [#86920](https://github.com/ClickHouse/ClickHouse/issues/86920). [#88102](https://github.com/ClickHouse/ClickHouse/pull/88102) ([Manuel](https://github.com/raimannma)). -* Теперь пользователь может добавить новый аргумент `preprocessor` при построении текстового индекса. Этот аргумент — произвольное выражение, которое преобразует каждый документ перед токенизацией. [#88272](https://github.com/ClickHouse/ClickHouse/pull/88272) ([Jimmy Aguilar Mena](https://github.com/Ergus)). -* Добавляет поле `memory_usage` в `X-ClickHouse-Progress` и `X-ClickHouse-Summary`. Его можно использовать для сбора данных об использовании памяти запросами в режиме реального времени на стороне клиента. [#88393](https://github.com/ClickHouse/ClickHouse/pull/88393) ([Christoph Wurm](https://github.com/cwurm)). -* Добавлена настройка `into_outfile_create_parent_directories` для автоматического создания родительских директорий для `INTO OUTFILE`, что предотвращает ошибки, когда путь вывода не существует. Это упрощает процессы, в которых запросы записывают результаты во вложенные директории. Исправляет [#88610](https://github.com/ClickHouse/ClickHouse/issues/88610). [#88795](https://github.com/ClickHouse/ClickHouse/pull/88795) ([Saksham](https://github.com/Saksham10-11)). -* Добавлена поддержка синтаксиса `CREATE OR REPLACE` для временных таблиц. Закрывает [#35888](https://github.com/ClickHouse/ClickHouse/issues/35888). [#89450](https://github.com/ClickHouse/ClickHouse/pull/89450) ([Aleksandr Musorin](https://github.com/AVMusorin)). -* Поддержка функции `arrayRemove` для удаления всех элементов, равных `elem`, из массива `arr`. Она нужна только для совместимости с Postgres, поскольку в ClickHouse уже есть гораздо более мощная функция `arrayFilter`. Исправляет [#52099](https://github.com/ClickHouse/ClickHouse/issues/52099). [#89585](https://github.com/ClickHouse/ClickHouse/pull/89585) ([tiwarysaurav](https://github.com/tiwarysaurav)). -* Добавлена скалярная функция `midpoint` для вычисления среднего значения. Исправлена задача [#89029](https://github.com/ClickHouse/ClickHouse/issues/89029). [#89679](https://github.com/ClickHouse/ClickHouse/pull/89679) ([simonmichal](https://github.com/simonmichal)). -* В веб-интерфейсе теперь доступна кнопка загрузки. Она позволяет скачать полный результат, даже если в интерфейсе отображается только его часть. [#89768](https://github.com/ClickHouse/ClickHouse/pull/89768) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Добавлена настройка `arrow_flight_request_descriptor_type` для поддержки Dremio и других серверов Arrow Flight, которым требуются дескрипторы в виде команд. Реализует [#89523](https://github.com/ClickHouse/ClickHouse/issues/89523). [#89826](https://github.com/ClickHouse/ClickHouse/pull/89826) ([Shreyas Ganesh](https://github.com/shreyasganesh0)). -* Новые агрегатные функции `argAndMin` и `argAndMax`, которые возвращают аргумент и соответствующее минимальное/максимальное значение. В предыдущих версиях это также можно было сделать с использованием кортежа в качестве аргумента. [#89884](https://github.com/ClickHouse/ClickHouse/pull/89884) ([AbdAlRahman Gad](https://github.com/AbdAlRahmanGad)). -* Настройки для записи и проверки контрольных сумм Parquet. [#79012](https://github.com/ClickHouse/ClickHouse/pull/79012) ([Michael Kolupaev](https://github.com/al13n321)). -* Добавлена настройка `kafka_schema_registry_skip_bytes` в табличный движок Kafka для пропуска байт заголовка оболочки сообщения (например, 19-байтного префикса AWS Glue Schema Registry) перед разбором полезной нагрузки сообщения. Это позволяет ClickHouse получать сообщения из реестров схем, которые добавляют метаданные в заголовки. [#89621](https://github.com/ClickHouse/ClickHouse/pull/89621) ([Taras Polishchuk](https://github.com/wake-up-neo)). -* Добавлена функция `h3PolygonToCells`, которая заполняет геометрию h3‑шестиугольниками. Решает проблему [#33991](https://github.com/ClickHouse/ClickHouse/issues/33991). [#66262](https://github.com/ClickHouse/ClickHouse/pull/66262) ([Zacharias Knudsen](https://github.com/zachasme)). -* Добавлен новый виртуальный столбец `_tags` (`Map(String, String)`) со всеми тегами, связанными с объектом в S3 (обратите внимание, что если у объекта нет тегов, дополнительный запрос выполняться не будет). Решает [#72945](https://github.com/ClickHouse/ClickHouse/issues/72945). [#77773](https://github.com/ClickHouse/ClickHouse/pull/77773) ([Zicong Qu](https://github.com/zicongleoqu)). - -#### Экспериментальные возможности {#experimental-feature} - -* Поддержка получения TLS-сертификатов от ACME-провайдеров, [RFC 8555](https://datatracker.ietf.org/doc/html/rfc8555), таких как Let's Encrypt. Это позволяет автоматически настраивать TLS в распределённых кластерах. [#66315](https://github.com/ClickHouse/ClickHouse/pull/66315) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Поддержка части Prometheus HTTP Query API. Чтобы включить её, добавьте правило с типом `query_api` в раздел `` конфигурационного файла. Поддерживаемые обработчики: `/api/v1/query_range` и `/api/v1/query`. [#86132](https://github.com/ClickHouse/ClickHouse/pull/86132) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* Полнотекстовый поиск теперь в статусе бета (ранее был экспериментальной возможностью). [#88928](https://github.com/ClickHouse/ClickHouse/pull/88928) ([Robert Schulze](https://github.com/rschu1ze)). -* `Alias` переведён в разряд экспериментальных возможностей, может быть включён параметром `allow_experimental_alias_table_engine = 1`. [#89712](https://github.com/ClickHouse/ClickHouse/pull/89712) ([Kai Zhu](https://github.com/nauu)). - -#### Повышение производительности {#performance-improvement} - -* Parquet reader v3 включен по умолчанию. [#88827](https://github.com/ClickHouse/ClickHouse/pull/88827) ([Michael Kolupaev](https://github.com/al13n321)). -* Распределённое выполнение: лучше разбивать задачи по идентификаторам групп строк, а не по файлам. [#87508](https://github.com/ClickHouse/ClickHouse/pull/87508) ([scanhex12](https://github.com/scanhex12)). -* `RIGHT` и `FULL` JOIN теперь используют ConcurrentHashJoin; это означает, что эти типы соединений выполняются с более высокой степенью параллелизма. В различных сценариях `RIGHT` и `FULL` JOIN работают до двух раз быстрее. Устраняет [#78027](https://github.com/ClickHouse/ClickHouse/issues/78027). [#78462](https://github.com/ClickHouse/ClickHouse/pull/78462) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Оптимизация обработки больших значений константных выражений в запросах. Закрывает [#72880](https://github.com/ClickHouse/ClickHouse/issues/72880). [#81104](https://github.com/ClickHouse/ClickHouse/pull/81104) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* Запросы `SELECT` до 8 раз быстрее при интенсивном отсечении партиций на таблицах с более чем 10 000 частями. [#85535](https://github.com/ClickHouse/ClickHouse/pull/85535) ([James Morrison](https://github.com/jawm)). -* Когда запрос использует фиксированную хеш-таблицу для состояния агрегации (GROUP BY по небольшому целочисленному значению), ClickHouse параллельно объединяет состояние агрегации, чтобы ускорить выполнение запроса. [#87366](https://github.com/ClickHouse/ClickHouse/pull/87366) ([Jianfei Hu](https://github.com/incfly)). -* Разрешить использование проекций (которые выполняют SELECT `_part_offset` и используют иной ORDER BY) в качестве вторичного индекса. При включении параметра некоторые предикаты запроса могут использоваться для чтения из частей проекций и генерации битовых карт для эффективной фильтрации строк на этапе PREWHERE. Это третий шаг в реализации индекса проекций, следующий за [#80343](https://github.com/ClickHouse/ClickHouse/issues/80343). [#81021](https://github.com/ClickHouse/ClickHouse/pull/81021) ([Amos Bird](https://github.com/amosbird)). -* Исправлен VDSO для редких систем на базе Aarch64 и, возможно, других сочетаний архитектур и версий ядра. [#86096](https://github.com/ClickHouse/ClickHouse/pull/86096) ([Tomas Hulata](https://github.com/tombokombo)). -* Ускорена декомпрессия LZ4 за счёт упрощения кода и оптимизации [алгоритма выбора](https://clickhouse.com/blog/lz4-compression-in-clickhouse#how-to-choose-the-best-algorithm). [#88360](https://github.com/ClickHouse/ClickHouse/pull/88360) ([Raúl Marín](https://github.com/Algunenano)). -* S3 внутренне распределяет объекты по разделам в зависимости от префиксов имён ключей и автоматически масштабируется до высокой интенсивности запросов на каждый раздел. Это изменение добавляет два новых параметра BACKUP: data_file_name_generator и data_file_name_prefix_length. Когда data_file_name_generator=checksum, файлы резервной копии данных получают имена на основе хэша их содержимого. Пример: для checksum = `abcd1234ef567890abcd1234ef567890` и `data_file_name_prefix_length = 3` результирующий путь будет: `abc/d1234ef567890abcd1234ef567890`. Получившееся распределение ключей улучшает балансировку нагрузки между разделами S3 и снижает риск ограничения пропускной способности (throttling). [#88418](https://github.com/ClickHouse/ClickHouse/pull/88418) ([Julia Kartseva](https://github.com/jkartseva)). -* Повышена производительность текстового индекса за счёт кэширования блоков словаря и использования хеш-таблиц для поиска токенов вместо бинарного поиска. [#88786](https://github.com/ClickHouse/ClickHouse/pull/88786) ([Elmi Ahmadov](https://github.com/ahmadov)). -* Запросы теперь могут одновременно использовать `optimize_read_in_order` и `query_plan_optimize_lazy_materialization`. Решает [#88767](https://github.com/ClickHouse/ClickHouse/issues/88767). [#88866](https://github.com/ClickHouse/ClickHouse/pull/88866) ([Manuel](https://github.com/raimannma)). -* Использовать агрегирующую проекцию для запросов с оператором `DISTINCT`. Закрывает [#86925](https://github.com/ClickHouse/ClickHouse/issues/86925). [#88894](https://github.com/ClickHouse/ClickHouse/pull/88894) ([Nihal Z. Miaji](https://github.com/nihalzp)). -* Кэширование списков постинга для повышения производительности при последующих запусках. [#88912](https://github.com/ClickHouse/ClickHouse/pull/88912) ([Elmi Ahmadov](https://github.com/ahmadov)). -* Выполнять потоковую трансформацию LIMIT BY при совпадении порядка сортировки входных данных с ключами LIMIT BY. [#88969](https://github.com/ClickHouse/ClickHouse/pull/88969) ([Eduard Karacharov](https://github.com/korowa)). -* Добавлена возможность в некоторых случаях переписывать `ANY LEFT JOIN` или `ANY RIGHT JOIN` в `ALL INNER JOIN`. [#89403](https://github.com/ClickHouse/ClickHouse/pull/89403) ([Dmitry Novik](https://github.com/novikd)). -* Снизить накладные расходы на логирование: использовать меньше атомарных операций на запись. [#89651](https://github.com/ClickHouse/ClickHouse/pull/89651) ([Sergei Trifonov](https://github.com/serxa)). -* При включённых runtime-фильтрах в запросе с несколькими JOIN и несколькими runtime-фильтрами реализовано проталкивание (pushdown) заново добавленных шагов фильтрации с приоритетом над остальными. [#89725](https://github.com/ClickHouse/ClickHouse/pull/89725) ([Alexander Gololobov](https://github.com/davenger)). -* Незначительно ускорены некоторые операции `uniqExact` за счёт уменьшения накладных расходов на слияние хеш-таблиц. [#89727](https://github.com/ClickHouse/ClickHouse/pull/89727) ([Raúl Marín](https://github.com/Algunenano)). -* Увеличен лимит количества строк ленивой материализации с 10 до 100. [#89772](https://github.com/ClickHouse/ClickHouse/pull/89772) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* По умолчанию включена настройка `allow_special_serialization_kinds_in_output_formats`. Это приведет к меньшему потреблению памяти и ускорит вывод результатов запросов для столбцов типов Sparse/Replicated в некоторых строковых форматах вывода. [#89402](https://github.com/ClickHouse/ClickHouse/pull/89402) ([Pavel Kruglov](https://github.com/Avogar)). -* Добавлен параллельный режим выполнения запросов `ALTER TABLE ... FREEZE`. [#71743](https://github.com/ClickHouse/ClickHouse/pull/71743) ([Kirill](https://github.com/kirillgarbar)). -* Добавлен кэш для аутентификации с помощью bcrypt. [#87115](https://github.com/ClickHouse/ClickHouse/pull/87115) ([Nikolay Degterinsky](https://github.com/evillique)). -* Если пропускающий индекс, используемый в запросе с оператором `FINAL`, находится на столбце, который является частью первичного ключа, дополнительный шаг по проверке пересечения по первичному ключу в других частях запроса больше не требуется и теперь не выполняется. Исправлена [#85897](https://github.com/ClickHouse/ClickHouse/issues/85897). [#88368](https://github.com/ClickHouse/ClickHouse/pull/88368) ([Shankar Iyer](https://github.com/shankar-iyer)). -* Оптимизация `enable_lazy_columns_replication` теперь включена по умолчанию, что позволит сократить потребление памяти при операциях JOIN. [#89316](https://github.com/ClickHouse/ClickHouse/pull/89316) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Ввести кэш `ColumnsDescription` на уровне таблицы для частей, чтобы сократить использование памяти, когда таблицы содержат много частей и много столбцов. [#89352](https://github.com/ClickHouse/ClickHouse/pull/89352) ([Azat Khuzhin](https://github.com/azat)). -* Добавлен кэш для десериализованного заголовка текстового индекса для снижения объёма операций ввода-вывода и улучшения производительности запросов. Кэш можно настроить с помощью новых серверных настроек: - `text_index_header_cache_policy` - `text_index_header_cache_size` - `text_index_header_cache_max_entries` - `text_index_header_cache_size_ratio`. [#89513](https://github.com/ClickHouse/ClickHouse/pull/89513) ([Elmi Ahmadov](https://github.com/ahmadov)). - -#### Улучшения {#improvement} - -* UNION при необходимости должен приводить типы к `Variant`, если включён `use_variant_as_common_type`. Устраняет проблему [#82772](https://github.com/ClickHouse/ClickHouse/issues/82772). [#83246](https://github.com/ClickHouse/ClickHouse/pull/83246) ([Mithun p](https://github.com/mithunputhusseri)). -* Роли, заданные в SQL, теперь можно назначать пользователям, заданным в `users.xml`. [#88139](https://github.com/ClickHouse/ClickHouse/pull/88139) ([c-end](https://github.com/c-end)). -* Логировать внутренние запросы (выполняемые словарями, обновляемыми материализованными представлениями и т. д.) и добавить новый столбец `is_internal` в `system.query_log`. [#83277](https://github.com/ClickHouse/ClickHouse/pull/83277) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* Улучшен оператор `IS NOT DISTINCT FROM` (`<=>`): добавлена поддержка обратного оператора `IS DISTINCT FROM`, а также поддержка совместимых числовых операндов разных типов (например, `Nullable(UInt32)` и `Nullable(Int64)`). Устраняет проблему [#86763](https://github.com/ClickHouse/ClickHouse/issues/86763). [#87581](https://github.com/ClickHouse/ClickHouse/pull/87581) ([yanglongwei](https://github.com/ylw510)). -* `clickhouse-client` и `clickhouse-local` в интерактивном режиме теперь подсвечивают в командной строке идентификаторы с тем же именем, что и у текущего идентификатора под курсором. [#89689](https://github.com/ClickHouse/ClickHouse/pull/89689) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Настройки, связанные с форматом вывода, теперь не влияют на кэширование запросов. Кроме того, кэширование запросов игнорирует настройку `http_response_headers`. Это необходимо для реализации функций, например скачивания результата из кэша в веб‑интерфейсе. [#89756](https://github.com/ClickHouse/ClickHouse/pull/89756) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* HTTP-интерфейс будет возвращать заголовки `Age` и `Expires` при использовании кэша результатов запроса. Наличие заголовка `Age` означает, что результат получен из кэша, а `Expires` также устанавливается при первой записи в кэш. Добавлены новые события профилирования: `QueryCacheAgeSeconds`, `QueryCacheReadRows`, `QueryCacheReadBytes`, `QueryCacheWrittenRows`, `QueryCacheWrittenBytes`. [#89759](https://github.com/ClickHouse/ClickHouse/pull/89759) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Разрешена вставка в удалённые таблицы и таблицы в data lake, когда включён параметр `disable_insertion_and_mutation` (что соответствует режиму только для чтения в ClickHouse Cloud). [#88549](https://github.com/ClickHouse/ClickHouse/pull/88549) ([Alexander Tokmakov](https://github.com/tavplubix)). -* Добавлен запрос `SYSTEM DROP TEXT INDEX CACHES`. [#90287](https://github.com/ClickHouse/ClickHouse/pull/90287) ([Anton Popov](https://github.com/CurtizJ)). -* По умолчанию включена настройка `enable_shared_storage_snapshot_in_query` для обеспечения более строгих гарантий согласованности. Это изменение не должно иметь недостатков. [#82634](https://github.com/ClickHouse/ClickHouse/pull/82634) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Добавлена настройка `send_profile_events`, которая позволяет клиентам уменьшить сетевой трафик, если события профилирования не используются. [#89588](https://github.com/ClickHouse/ClickHouse/pull/89588) ([Kaviraj Kanagaraj](https://github.com/kavirajk)). -* Добавлена возможность отключать фоновую загрузку соседних сегментов на уровне отдельных запросов. Исправляет [#89524](https://github.com/ClickHouse/ClickHouse/issues/89524). [#89668](https://github.com/ClickHouse/ClickHouse/pull/89668) ([tanner-bruce](https://github.com/tanner-bruce)). -* Разрешена операция `FETCH PARTITION` при наличии повреждённых дисков в реплицированных таблицах MergeTree. [#58663](https://github.com/ClickHouse/ClickHouse/pull/58663) ([Duc Canh Le](https://github.com/canhld94)). -* Исправлено необработанное исключение при получении схемы таблицы MySQL в движке базы данных `MySQL`. [#69358](https://github.com/ClickHouse/ClickHouse/pull/69358) ([Duc Canh Le](https://github.com/canhld94)). -* Все DDL-запросы `ON CLUSTER` теперь выполняются в контексте исходного пользователя запроса для более корректной проверки прав доступа. [#71334](https://github.com/ClickHouse/ClickHouse/pull/71334) ([pufit](https://github.com/pufit)). -* Добавлена поддержка типа `UUID` в `Parquet`, когда он представлен в виде `FixedString(16)` с логическим типом `UUID`. [#74484](https://github.com/ClickHouse/ClickHouse/pull/74484) ([alekseev-maksim](https://github.com/alekseev-maksim)). -* Отключить ThreadFuzzer по умолчанию в несерверных бинарных файлах. [#89115](https://github.com/ClickHouse/ClickHouse/pull/89115) ([Raúl Marín](https://github.com/Algunenano)). -* Сделать оптимизации плана запроса видимыми для входного подплана коррелированного подзапроса за счёт отложенной его материализации. Часть [#79890](https://github.com/ClickHouse/ClickHouse/issues/79890). [#85455](https://github.com/ClickHouse/ClickHouse/pull/85455) ([Dmitry Novik](https://github.com/novikd)). -* Вы можете наблюдать индикатор выполнения, логи и статистику производительности для запросов `CREATE OR REPLACE TABLE` с `SELECT` в clickhouse-client. Такой запрос больше не будет приводить к истечению времени ожидания, даже если `SELECT` требует довольно много времени на выполнение. Исправляет [#38416](https://github.com/ClickHouse/ClickHouse/issues/38416). [#87247](https://github.com/ClickHouse/ClickHouse/pull/87247) ([Diskein](https://github.com/Diskein)). -* Добавлена поддержка типов `JSON` и `Dynamic` в хеш-функциях. Исправляет [#87734](https://github.com/ClickHouse/ClickHouse/issues/87734). [#87791](https://github.com/ClickHouse/ClickHouse/pull/87791) ([Pavel Kruglov](https://github.com/Avogar)). -* Реализованы недостающие части сервера ArrowFlight. [#88013](https://github.com/ClickHouse/ClickHouse/pull/88013) ([Vitaly Baranov](https://github.com/vitlibar)). -* Добавлены несколько метрик‑гистограмм для сервера и Keeper для измерения продолжительности этапов выполнения запросов к Keeper. Для сервера добавлены следующие метрики: `keeper_client_queue_duration_milliseconds`, `keeper_client_send_duration_milliseconds`, `keeper_client_roundtrip_duration_milliseconds`. Для Keeper добавлены следующие метрики: `keeper_server_preprocess_request_duration_milliseconds`, `keeper_server_process_request_duration_milliseconds`, `keeper_server_queue_duration_milliseconds`, `keeper_server_send_duration_milliseconds`. [#88158](https://github.com/ClickHouse/ClickHouse/pull/88158) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* В запрос `EXPLAIN` добавлена опция `input_headers` для добавления входных заголовков к шагам. [#88311](https://github.com/ClickHouse/ClickHouse/pull/88311) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* Добавлены профильные события для подсчёта количества запросов к S3 и AzureBlobStorage, задержанных троттлерами. Исправлена несогласованность между профильными событиями ThrottlerCount, связанными с дисками и не связанными с ними. Теперь HTTP‑запросы DELETE к AzureBlobStorage не подвергаются троттлингу. [#88535](https://github.com/ClickHouse/ClickHouse/pull/88535) ([Sergei Trifonov](https://github.com/serxa)). -* Кэшировать статистику на уровне таблиц: добавлены два параметра. Настройка движка MergeTree `refresh_statistics_interval` задаёт интервал обновления кэша статистики, значение 0 означает, что кэш создаваться не будет. Параметр сессии `use_statistics_cache` определяет, использовать ли статистику на уровне таблиц в запросе. Иногда нам нужна более точная статистика, поэтому мы можем не использовать кэш. [#88670](https://github.com/ClickHouse/ClickHouse/pull/88670) ([Han Fei](https://github.com/hanfei1991)). -* Исправлена бинарная десериализация `Array` и `Map`, чтобы при проверке ограничений по размеру использовать настройку `max_binary_array_size` вместо `max_binary_string_size`. Это гарантирует применение корректных лимитов при чтении в формате `RowBinary`. [#88744](https://github.com/ClickHouse/ClickHouse/pull/88744) ([Raufs Dunamalijevs](https://github.com/rienath)). -* Добавлен класс `LockGuardWithStopWatch`, который используется в фоновом пуле для выполнения слияний. Если мьютекс удерживается дольше секунды или какому‑то потоку не удаётся получить его в течение секунды, выводится предупреждающее сообщение. Ресурсоёмкий код из деструктора `MergeMutateSelectedEntry` перенесён в метод `finalize`, чтобы избежать слишком долгого удержания блокировки в исполнителе `MergeTreeBackground`. [#88898](https://github.com/ClickHouse/ClickHouse/pull/88898) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* Разрешить автоматическое использование opt‑in‑регионов AWS для S3, если регион не указан в конечной точке. См. также: [opt-in AWS regions](https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-regions.html). [#88930](https://github.com/ClickHouse/ClickHouse/pull/88930) ([Andrey Zvonov](https://github.com/zvonand)). -* Теперь в clickhouse-client можно отменить запрос, нажав Ctrl+C во время работы пейджера. Устраняет проблему [#80778](https://github.com/ClickHouse/ClickHouse/issues/80778). [#88935](https://github.com/ClickHouse/ClickHouse/pull/88935) ([Grigorii](https://github.com/GSokol)). -* Веб-интерфейс будет отображать столбики в таблице даже при отрицательных значениях. Таким образом, он может отображать двустороннюю столбчатую диаграмму с разными цветами столбиков для отрицательной и положительной сторон. [#89016](https://github.com/ClickHouse/ClickHouse/pull/89016) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Отключите `shared_merge_tree_create_per_replica_metadata_nodes`, чтобы сократить объём метаданных, которые `SharedMergeTree` хранит в Keeper. [#89036](https://github.com/ClickHouse/ClickHouse/pull/89036) ([Alexander Tokmakov](https://github.com/tavplubix)). -* Обеспечить, чтобы `S3Queue` учитывал серверный параметр `disable_insertion_and_mutation`. [#89048](https://github.com/ClickHouse/ClickHouse/pull/89048) ([Raúl Marín](https://github.com/Algunenano)). -* По умолчанию значение `s3_retry_attempts` установлено равным 500 в версии 25.6, чтобы обеспечить успешное выполнение резервного копирования при репартиционировании S3, если S3 более 10 минут отвечает ошибками SlowDown. [#89051](https://github.com/ClickHouse/ClickHouse/pull/89051) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* Параметры `kafka_compression_codec` и `kafka_compression_level` теперь можно использовать для указания сжатия в продюсерах Kafka в обоих движках Kafka. [#89073](https://github.com/ClickHouse/ClickHouse/pull/89073) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* Добавлен новый столбец `statistics` в `system.columns`, указывающий типы статистики, построенных для этой таблицы. Если тип статистики создаётся автоматически, к его имени добавляется суффикс (auto). [#89086](https://github.com/ClickHouse/ClickHouse/pull/89086) ([Han Fei](https://github.com/hanfei1991)). -* Улучшено сообщение об ошибке при передаче обобщённой подстановки вместо имени кластера в табличную функцию `*Cluster`. [#89093](https://github.com/ClickHouse/ClickHouse/pull/89093) ([Konstantин Богданов](https://github.com/thevar1able)). -* YTsaurus: разрешено использовать replicated_table в качестве источника данных. [#89107](https://github.com/ClickHouse/ClickHouse/pull/89107) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). -* Запросы, начинающиеся с пробельных символов, больше не сохраняются в историю CLI. [#89116](https://github.com/ClickHouse/ClickHouse/pull/89116) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Добавлена поддержка массива строк в качестве входного аргумента функций `hasAnyTokens` и `hasAllTokens`. [#89124](https://github.com/ClickHouse/ClickHouse/pull/89124) ([Elmi Ahmadov](https://github.com/ahmadov)). -* Изменён способ хранения метаданных в памяти для дисков типа plain-rewritable, что исправляет множество ошибок, связанных с вложенностью каталогов и аналогичными ситуациями. [#89125](https://github.com/ClickHouse/ClickHouse/pull/89125) ([Mikhail Artemenko](https://github.com/Michicosun)). -* Подзапросы, которые используются внутри выражений IN при выполнении запросов к таблицам Iceberg, теперь корректно предварительно вычисляются до анализа отсечения партиций. [#89177](https://github.com/ClickHouse/ClickHouse/pull/89177) ([Daniil Ivanik](https://github.com/divanik)). -* По умолчанию включена настройка `create_table_empty_primary_key_by_default`. Это повышает удобство использования. [#89333](https://github.com/ClickHouse/ClickHouse/pull/89333) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Исправлен некорректный код в движке базы данных `Backup`, из-за которого мог быть сгенерирован неверный запрос при использовании `SHOW CREATE DATABASE` или при запросе `engine_full` из `system.databases`. Закрывает [#89477](https://github.com/ClickHouse/ClickHouse/issues/89477). [#89341](https://github.com/ClickHouse/ClickHouse/pull/89341) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* В предыдущих версиях настройка `create_table_empty_primary_key_by_default` не работала, если в запросе CREATE TABLE не был указан движок таблицы. [#89342](https://github.com/ClickHouse/ClickHouse/pull/89342) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Обновить `chdig` до v25.11.1 — содержит значительные улучшения логирования и ряд других доработок ([примечания к выпуску 25.11](https://github.com/azat/chdig/releases/tag/v25.11.1)). [#89957](https://github.com/ClickHouse/ClickHouse/pull/89957) ([Azat Khuzhin](https://github.com/azat)). ([примечания к выпуску 25.10](https://github.com/azat/chdig/releases/tag/v25.10.1)). [#89452](https://github.com/ClickHouse/ClickHouse/pull/89452) ([Azat Khuzhin](https://github.com/azat)). -* Элемент изменения размера текстового поля запроса в веб‑интерфейсе сделан на всю ширину, что делает работу с ним немного удобнее. Кроме того, встроенный в браузер элемент изменения размера был недоступен в Safari на iPad, а после этого изменения вы, по крайней мере, можете перетаскивать нижнюю границу текстового поля, если знаете об этой возможности. [#89457](https://github.com/ClickHouse/ClickHouse/pull/89457) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* UNION при необходимости должен приводить типы к `Variant`, если включён `use_variant_as_common_type`. Устраняет проблему [#82772](https://github.com/ClickHouse/ClickHouse/issues/82772). [#83246](https://github.com/ClickHouse/ClickHouse/pull/83246) ([Mithun p](https://github.com/mithunputhusseri)). - Роли, заданные в SQL, теперь можно назначать пользователям, заданным в `users.xml`. [#88139](https://github.com/ClickHouse/ClickHouse/pull/88139) ([c-end](https://github.com/c-end)). - Логировать внутренние запросы (выполняемые словарями, обновляемыми материализованными представлениями и т. д.) и добавить новый столбец `is_internal` в `system.query_log`. [#83277](https://github.com/ClickHouse/ClickHouse/pull/83277) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). - `clickhouse-client` и `clickhouse-local` в интерактивном режиме будут подсвечивать в командной строке идентификаторы, которые имеют то же имя, что и текущий идентификатор под курсором. [#89689](https://github.com/ClickHouse/ClickHouse/pull/89689) ([Alexey Milovidov](https://github.com/alexey-milovidov)). - Настройки, связанные с форматом вывода, теперь не влияют на кэширование запросов. Кроме того, кэширование запросов игнорирует настройку `http_response_headers`. Это необходимо для реализации функций, например загрузки результата из кэша в веб‑интерфейсе. [#89756](https://github.com/ClickHouse/ClickHouse/pull/89756) ([Alexey Milovidov](https://github.com/alexey-milovidov)). - HTTP-интерфейс будет передавать заголовки `Age` и `Expires` при использовании кэша результатов запроса. Наличие заголовка `Age` показывает, что результат получен из кэша, а `Expires` также устанавливается при первой записи. Добавлены новые события профилирования: `QueryCacheAgeSeconds`, `QueryCacheReadRows`, `QueryCacheReadBytes`, `QueryCacheWrittenRows`, `QueryCacheWrittenBytes`. [#89759](https://github.com/ClickHouse/ClickHouse/pull/89759) ([Alexey Milovidov](https://github.com/alexey-milovidov)). - Разрешена вставка в удалённые таблицы и таблицы в data lake, когда включён параметр `disable_insertion_and_mutation` (что соответствует режиму только для чтения в ClickHouse Cloud). [#88549](https://github.com/ClickHouse/ClickHouse/pull/88549) ([Alexander Tokmakov](https://github.com/tavplubix)). - Добавлен запрос `SYSTEM DROP TEXT INDEX CACHES`. [#90287](https://github.com/ClickHouse/ClickHouse/pull/90287) ([Anton Popov](https://github.com/CurtizJ)). - По умолчанию включена настройка `enable_shared_storage_snapshot_in_query` для обеспечения более строгих гарантий согласованности. Это изменение не должно иметь побочных эффектов. [#82634](https://github.com/ClickHouse/ClickHouse/pull/82634) ([Alexey Milovidov](https://github.com/alexey-milovidov)). - Добавлена настройка `send_profile_events`, которая позволяет клиентам уменьшить сетевой трафик, когда события профилирования не используются. [#89588](https://github.com/ClickHouse/ClickHouse/pull/89588) ([Kaviraj Kanagaraj](https://github.com/kavirajk)). - Добавлена возможность отключать фоновую загрузку соседних сегментов на уровне отдельных запросов. Исправляет [#89524](https://github.com/ClickHouse/ClickHouse/issues/89524). [#89668](https://github.com/ClickHouse/ClickHouse/pull/89668) ([tanner-bruce](https://github.com/tanner-bruce)). - Разрешена операция `FETCH PARTITION` при наличии повреждённых дисков в реплицированных таблицах MergeTree. [#58663](https://github.com/ClickHouse/ClickHouse/pull/58663) ([Duc Canh Le](https://github.com/canhld94)). - Исправлено необработанное исключение при получении схемы таблицы MySQL в движке базы данных MySQL. [#69358](https://github.com/ClickHouse/ClickHouse/pull/69358) ([Duc Canh Le](https://github.com/canhld94)). - Все DDL-запросы `ON CLUSTER` теперь выполняются в контексте исходного пользователя запроса для более корректной проверки прав доступа. [#71334](https://github.com/ClickHouse/ClickHouse/pull/71334) ([pufit](https://github.com/pufit)). - Добавлена поддержка типа `UUID` в `Parquet`, если он представлен как `FixedString(16)` с логическим типом `UUID`. [#74484](https://github.com/ClickHouse/ClickHouse/pull/74484) ([alekseev-maksim](https://github.com/alekseev-maksim)). - Отключить ThreadFuzzer по умолчанию в несерверных исполняемых файлах. [#89115](https://github.com/ClickHouse/ClickHouse/pull/89115) ([Raúl Marín](https://github.com/Algunenano)). - Сделать оптимизации плана запроса видимыми для входного подплана коррелированного подзапроса за счёт откладывания его материализации. Часть [#79890](https://github.com/ClickHouse/ClickHouse/issues/79890). [#85455](https://github.com/ClickHouse/ClickHouse/pull/85455) ([Dmitry Novik](https://github.com/novikd)). - Вы можете наблюдать индикатор выполнения, логи и статистику производительности для запросов `CREATE OR REPLACE TABLE` с `SELECT` в clickhouse-client. Такой запрос больше не будет приводить к истечению времени ожидания, даже если `SELECT` требует довольно много времени на выполнение. Исправляет [#38416](https://github.com/ClickHouse/ClickHouse/issues/38416). [#87247](https://github.com/ClickHouse/ClickHouse/pull/87247) ([Diskein](https://github.com/Diskein)). - Добавлена поддержка типов `JSON` и `Dynamic` в хеш-функциях. Исправляет [#87734](https://github.com/ClickHouse/ClickHouse/issues/87734). [#87791](https://github.com/ClickHouse/ClickHouse/pull/87791) ([Pavel Kruglov](https://github.com/Avogar)). - Реализованы недостающие части сервера ArrowFlight. [#88013](https://github.com/ClickHouse/ClickHouse/pull/88013) ([Vitaly Baranov](https://github.com/vitlibar)). - Добавлены несколько гистограммных метрик для сервера и Keeper для измерения длительностей этапов выполнения запросов Keeper. Для сервера добавлены следующие метрики: `keeper_client_queue_duration_milliseconds`, `keeper_client_send_duration_milliseconds`, `keeper_client_roundtrip_duration_milliseconds`. Для Keeper добавлены следующие метрики: `keeper_server_preprocess_request_duration_milliseconds`, `keeper_server_process_request_duration_milliseconds`, `keeper_server_queue_duration_milliseconds`, `keeper_server_send_duration_milliseconds`. [#88158](https://github.com/ClickHouse/ClickHouse/pull/88158) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). - В запрос `EXPLAIN` добавлена опция `input_headers` для добавления входных заголовков к шагам. [#88311](https://github.com/ClickHouse/ClickHouse/pull/88311) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). - Добавлены профильные события для подсчёта количества запросов к S3 и AzureBlobStorage, задержанных троттлерами. Исправлена несогласованность между профильными событиями ThrottlerCount, связанными с дисками и не связанными с ними. Теперь HTTP‑запросы DELETE к AzureBlobStorage не подвергаются троттлингу. [#88535](https://github.com/ClickHouse/ClickHouse/pull/88535) ([Sergei Trifonov](https://github.com/serxa)). - Кэшировать статистику на уровне таблиц: добавлены два параметра. Настройка MergeTree `refresh_statistics_interval` задаёт интервал обновления кэша статистики, значение 0 означает, что кэш создаваться не будет. Параметр сессии `use_statistics_cache` определяет, использовать ли статистику на уровне таблиц в запросе. Иногда нам нужна более точная статистика, поэтому мы можем отключить использование кэша. [#88670](https://github.com/ClickHouse/ClickHouse/pull/88670) ([Han Fei](https://github.com/hanfei1991)). - Исправлена бинарная десериализация `Array` и `Map`, чтобы при проверке ограничений размера использовать параметр `max_binary_array_size` вместо `max_binary_string_size`. Это гарантирует применение корректных лимитов при чтении в формате `RowBinary`. [#88744](https://github.com/ClickHouse/ClickHouse/pull/88744) ([Raufs Dunamalijevs](https://github.com/rienath)). - Добавлен класс `LockGuardWithStopWatch`, который используется в фоновом пуле для выполнения слияний. Если мьютекс удерживается дольше секунды или какому‑то потоку не удаётся получить его в течение секунды, выводится предупреждающее сообщение. Ресурсоёмкий код из деструктора `MergeMutateSelectedEntry` перенесён в метод `finalize`, чтобы избежать слишком долгого удержания блокировки в исполнителе `MergeTreeBackground`. [#88898](https://github.com/ClickHouse/ClickHouse/pull/88898) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). - Разрешить автоматическое использование подключаемых регионов AWS для S3, если регион не указан в endpoint. См. также: [opt-in AWS regions](https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-regions.html). [#88930](https://github.com/ClickHouse/ClickHouse/pull/88930) ([Andrey Zvonov](https://github.com/zvonand)). - Теперь в clickhouse-client можно отменить запрос, нажав Ctrl+C во время работы пейджера. Устраняет проблему [#80778](https://github.com/ClickHouse/ClickHouse/issues/80778). [#88935](https://github.com/ClickHouse/ClickHouse/pull/88935) ([Grigorii](https://github.com/GSokol)). - Веб-интерфейс будет отображать столбики в таблице даже при отрицательных значениях. Таким образом, он может отображать двустороннюю столбчатую диаграмму с разными цветами столбиков для отрицательной и положительной сторон. [#89016](https://github.com/ClickHouse/ClickHouse/pull/89016) ([Alexey Milovidov](https://github.com/alexey-milovidov)). - Отключите `shared_merge_tree_create_per_replica_metadata_nodes`, чтобы сократить объем метаданных, которые `SharedMergeTree` хранит в Keeper. [#89036](https://github.com/ClickHouse/ClickHouse/pull/89036) ([Alexander Tokmakov](https://github.com/tavplubix)). - Обеспечить, чтобы `S3Queue` учитывал серверный параметр `disable_insertion_and_mutation`. [#89048](https://github.com/ClickHouse/ClickHouse/pull/89048) ([Raúl Marín](https://github.com/Algunenano)). - По умолчанию значение `s3_retry_attempts` установлено равным 500 в версии 25.6, чтобы обеспечить успешное выполнение резервного копирования при репартиционировании S3, когда S3 в течение более 10 минут отвечает ошибками замедления. [#89051](https://github.com/ClickHouse/ClickHouse/pull/89051) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). - Параметры `kafka_compression_codec` и `kafka_compression_level` теперь можно использовать для задания сжатия продюсеров Kafka в обоих движках Kafka. [#89073](https://github.com/ClickHouse/ClickHouse/pull/89073) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). - Добавлен новый столбец `statistics` в `system.columns`, который указывает типы статистики, построенных для этой таблицы. Если тип статистики создаётся автоматически, к нему в суффиксе добавляется пометка (auto). [#89086](https://github.com/ClickHouse/ClickHouse/pull/89086) ([Han Fei](https://github.com/hanfei1991)). - Улучшено сообщение об ошибке при передаче обобщённой подстановки вместо имени кластера в табличную функцию `*Cluster`. [#89093](https://github.com/ClickHouse/ClickHouse/pull/89093) ([Konstantin Bogdanov](https://github.com/thevar1able)). - YTsaurus: разрешено использование replicated_table как источника данных. [#89107](https://github.com/ClickHouse/ClickHouse/pull/89107) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). - Запросы, начинающиеся с пробельных символов, больше не сохраняются в историю CLI. [#89116](https://github.com/ClickHouse/ClickHouse/pull/89116) ([Konstantin Bogdanov](https://github.com/thevar1able)). - Добавлена поддержка массива строк в качестве аргумента функций `hasAnyTokens` и `hasAllTokens`. [#89124](https://github.com/ClickHouse/ClickHouse/pull/89124) ([Elmi Ahmadov](https://github.com/ahmadov)). - Изменён способ хранения метаданных в памяти для дисков типа plain-rewritable, что исправляет множество ошибок, связанных с вложенностью каталогов и аналогичными ситуациями. [#89125](https://github.com/ClickHouse/ClickHouse/pull/89125) ([Mikhail Artemenko](https://github.com/Michicosun)). - Подзапросы, которые используются внутри выражений IN при запросе к таблице Iceberg, будут корректно предварительно вычисляться перед анализом отсечения партиций. [#89177](https://github.com/ClickHouse/ClickHouse/pull/89177) ([Daniil Ivanik](https://github.com/divanik)). - Включена настройка `create_table_empty_primary_key_by_default` по умолчанию. Это повышает удобство использования. [#89333](https://github.com/ClickHouse/ClickHouse/pull/89333) ([Alexey Milovidov](https://github.com/alexey-milovidov)). - Исправлен некорректный код в движке базы данных `Backup`, из-за которого мог быть сгенерирован неверный запрос при использовании `SHOW CREATE DATABASE` или при запросе `engine_full` из `system.databases`. Закрывает [#89477](https://github.com/ClickHouse/ClickHouse/issues/89477). [#89341](https://github.com/ClickHouse/ClickHouse/pull/89341) ([Alexey Milovidov](https://github.com/alexey-milovidov)). - В предыдущих версиях настройка `create_table_empty_primary_key_by_default` не работала, если вы не указывали движок таблицы в запросе CREATE TABLE. [#89342](https://github.com/ClickHouse/ClickHouse/pull/89342) ([Alexey Milovidov](https://github.com/alexey-milovidov)). - Обновить `chdig` до v25.11.1 — содержит значительные улучшения логирования и ряд других доработок ([примечания к выпуску 25.11](https://github.com/azat/chdig/releases/tag/v25.11.1)). [#89957](https://github.com/ClickHouse/ClickHouse/pull/89957) ([Azat Khuzhin](https://github.com/azat)). ([примечания к выпуску 25.10](https://github.com/azat/chdig/releases/tag/v25.10.1)). [#89452](https://github.com/ClickHouse/ClickHouse/pull/89452) ([Azat Khuzhin](https://github.com/azat)). - Ресайзер текстового поля запроса в веб-интерфейсе сделан во всю ширину, что делает работу с ним немного удобнее. Кроме того, встроенный в браузер ресайзер был недоступен в Safari на iPad, а после этого изменения вы хотя бы можете перетаскивать нижнюю границу текстового поля, если знаете об этой возможности. [#89457](https://github.com/ClickHouse/ClickHouse/pull/89457) ([Alexey Milovidov](https://github.com/alexey-milovidov)). - Улучшено отслеживание памяти при формировании результата хеш-соединений. Ранее временные выделения памяти при формировании результата соединения не отслеживались должным образом, что могло приводить к превышению лимита памяти. [#89560](https://github.com/ClickHouse/ClickHouse/pull/89560) ([Azat Khuzhin](https://github.com/azat)). - Асинхронный серверный лог: более ранний сброс и увеличенный размер очереди по умолчанию. [#89597](https://github.com/ClickHouse/ClickHouse/pull/89597) ([Raúl Marín](https://github.com/Algunenano)). - Исправлены некорректные значения `FilesystemCacheBytes` (и других) в `system.asynchronous_metrics`. Запросы `SYSTEM` к файловым кэшем выполняются только один раз. Добавлено атомарное представление для кэшей, указывающее на тот же путь в `system.filesystem_caches`. [#89640](https://github.com/ClickHouse/ClickHouse/pull/89640) ([Azat Khuzhin](https://github.com/azat)). - Уточнены описания некоторых столбцов в `system.view_refreshes`. [#89701](https://github.com/ClickHouse/ClickHouse/pull/89701) ([Tuan Pham Anh](https://github.com/tuanpach)). - Кэшировать учетные данные S3 при взаимодействии с конечной точкой STS для их повторного использования в разных вызовах функций. Количество закэшированных учетных данных можно контролировать с помощью `s3_credentials_provider_max_cache_size`. [#89734](https://github.com/ClickHouse/ClickHouse/pull/89734) ([Antonio Andelic](https://github.com/antonio2368)). - Исправлено проталкивание runtime-фильтра при наличии нескольких нижележащих шагов выражения. [#89741](https://github.com/ClickHouse/ClickHouse/pull/89741) ([Alexander Gololobov](https://github.com/davenger)). - Если объём оперативной памяти системы меньше 5 ГБ, по умолчанию не выполнять mlock для исполняемого файла. [#89751](https://github.com/ClickHouse/ClickHouse/pull/89751) ([Alexey Milovidov](https://github.com/alexey-milovidov)). - Подсказки типов в веб-интерфейсе больше не выходят за границы заголовка таблицы. Также исправлено отображение всплывающих подсказок — теперь они не скрываются за заголовком таблицы. [#89753](https://github.com/ClickHouse/ClickHouse/pull/89753) ([Alexey Milovidov](https://github.com/alexey-milovidov)). - Отображать свойства таблиц в веб-интерфейсе. При нажатии на число строк или байт открывается запрос к `system.tables`. При нажатии на движок таблицы выполняется `SHOW TABLES`. [#89771](https://github.com/ClickHouse/ClickHouse/pull/89771) ([Alexey Milovidov](https://github.com/alexey-milovidov)). - Добавлена поддержка `non_replicated_deduplication_window` для таблиц с диском, который не поддерживает дозапись (append). Исправляет [#87281](https://github.com/ClickHouse/ClickHouse/issues/87281). [#89796](https://github.com/ClickHouse/ClickHouse/pull/89796) ([Tuan Pham Anh](https://github.com/tuanpach)). - Добавлена возможность указывать список таблиц для сброса в команде `SYSTEM FLUSH ASYNC INSERT QUEUE`. [#89915](https://github.com/ClickHouse/ClickHouse/pull/89915) ([Sema Checherinda](https://github.com/CheSema)). - Идентификаторы блоков дедупликации сохраняются в `system.part_log`. [#89928](https://github.com/ClickHouse/ClickHouse/pull/89928) ([Sema Checherinda](https://github.com/CheSema)). - Изменено значение по умолчанию настройки файлового кэша `keep_free_space_remove_batch` с 10 до 100, так как это оптимальнее. [#90030](https://github.com/ClickHouse/ClickHouse/pull/90030) ([Kseniia Sumarokova](https://github.com/kssenii)). - Введён тип слияния TTL DROP; после таких слияний расписание следующего удаления по TTL больше не обновляется. [#90077](https://github.com/ClickHouse/ClickHouse/pull/90077) ([Mikhail Artemenko](https://github.com/Michicosun)). - Использовать меньший лимит числа узлов в запросе RemoveRecursive Keeper при очистке S3Queue. [#90201](https://github.com/ClickHouse/ClickHouse/pull/90201) ([Antonio Andelic](https://github.com/antonio2368)). - Сделать так, чтобы запрос `SYSTEM FLUSH LOGS` ожидал создание таблицы, даже если журналы пусты. [#89408](https://github.com/ClickHouse/ClickHouse/pull/89408) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). - Исправлена некорректная величина `rows_before_limit_at_least`, возникающая, когда в агрегирующей операции с распределённым слиянием задействовано несколько удалённых шардов или присутствуют подзапросы типа IN. Это исправляет [#63280](https://github.com/ClickHouse/ClickHouse/issues/63280). [#63511](https://github.com/ClickHouse/ClickHouse/pull/63511) ([Amos Bird](https://github.com/amosbird)). - Исправлено появление сообщения `0 rows in set` после запроса `INSERT INTO ... SELECT`. Закрывает [#47800](https://github.com/ClickHouse/ClickHouse/issues/47800). [#79462](https://github.com/ClickHouse/ClickHouse/pull/79462) ([Engel Danila](https://github.com/aaaengel)). -* Асинхронный серверный лог: более ранний сброс и увеличенный размер очереди по умолчанию. [#89597](https://github.com/ClickHouse/ClickHouse/pull/89597) ([Raúl Marín](https://github.com/Algunenano)). -* Исправлены некорректные значения `FilesystemCacheBytes` (и других) в `system.asynchronous_metrics`. Запросы `SYSTEM` к файловым кэшам выполняются только один раз. Добавлено атомарное представление для кэшей, указывающее на тот же путь в `system.filesystem_caches`. [#89640](https://github.com/ClickHouse/ClickHouse/pull/89640) ([Azat Khuzhin](https://github.com/azat)). -* Уточнены описания некоторых столбцов в `system.view_refreshes`. [#89701](https://github.com/ClickHouse/ClickHouse/pull/89701) ([Tuan Pham Anh](https://github.com/tuanpach)). -* Кэшировать учётные данные S3 при взаимодействии с endpoint STS для их повторного использования в разных вызовах функций. Количество закэшированных учётных данных можно контролировать с помощью `s3_credentials_provider_max_cache_size`. [#89734](https://github.com/ClickHouse/ClickHouse/pull/89734) ([Antonio Andelic](https://github.com/antonio2368)). -* Исправлено проталкивание runtime-фильтра, когда под ним находится несколько шагов выражения. [#89741](https://github.com/ClickHouse/ClickHouse/pull/89741) ([Alexander Gololobov](https://github.com/davenger)). -* Если объём оперативной памяти системы меньше 5 ГБ, по умолчанию не использовать mlock для исполняемого файла. [#89751](https://github.com/ClickHouse/ClickHouse/pull/89751) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Подсказки типов в веб-интерфейсе больше не выходят за границы заголовка таблицы. Также исправлено отображение всплывающих подсказок — теперь они не скрываются за заголовком таблицы. [#89753](https://github.com/ClickHouse/ClickHouse/pull/89753) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Отображать свойства таблиц в веб-интерфейсе. При нажатии на число строк или байт открывается запрос к `system.tables`. При нажатии на движок таблицы выполняется `SHOW TABLES`. [#89771](https://github.com/ClickHouse/ClickHouse/pull/89771) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Добавлена поддержка `non_replicated_deduplication_window` для таблиц с диском, который не поддерживает дозапись (append). Исправляет [#87281](https://github.com/ClickHouse/ClickHouse/issues/87281). [#89796](https://github.com/ClickHouse/ClickHouse/pull/89796) ([Tuan Pham Anh](https://github.com/tuanpach)). -* Добавлена возможность указывать список таблиц для сброса в команде `SYSTEM FLUSH ASYNC INSERT QUEUE`. [#89915](https://github.com/ClickHouse/ClickHouse/pull/89915) ([Sema Checherinda](https://github.com/CheSema)). -* Идентификаторы блоков дедупликации сохраняются в `system.part_log`. [#89928](https://github.com/ClickHouse/ClickHouse/pull/89928) ([Sema Checherinda](https://github.com/CheSema)). -* Изменено значение по умолчанию настройки файлового кэша `keep_free_space_remove_batch` с 10 до 100, поскольку это более оптимально. [#90030](https://github.com/ClickHouse/ClickHouse/pull/90030) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Введён тип слияния TTL DROP; после таких слияний расписание следующего удаления по TTL больше не обновляется. [#90077](https://github.com/ClickHouse/ClickHouse/pull/90077) ([Mikhail Artemenko](https://github.com/Michicosun)). -* Использовать более низкий лимит на число узлов в Keeper‑запросе RemoveRecursive при очистке S3Queue. [#90201](https://github.com/ClickHouse/ClickHouse/pull/90201) ([Antonio Andelic](https://github.com/antonio2368)). -* Сделать так, чтобы запрос `SYSTEM FLUSH LOGS` ожидал создание таблицы, даже если журналы пусты. [#89408](https://github.com/ClickHouse/ClickHouse/pull/89408) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* Исправлена некорректная величина `rows_before_limit_at_least`, возникающая, когда в агрегирующей операции с распределённым слиянием задействовано несколько удалённых сегментов или присутствуют подзапросы типа IN. Это исправляет [#63280](https://github.com/ClickHouse/ClickHouse/issues/63280). [#63511](https://github.com/ClickHouse/ClickHouse/pull/63511) ([Amos Bird](https://github.com/amosbird)). -* Исправлено появление сообщения `0 rows in set` после запроса `INSERT INTO ... SELECT`. Закрывает [#47800](https://github.com/ClickHouse/ClickHouse/issues/47800). [#79462](https://github.com/ClickHouse/ClickHouse/pull/79462) ([Engel Danila](https://github.com/aaaengel)). - -#### Исправление ошибки (некорректное поведение, заметное пользователям, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* Исправлена работа `multiIf` с константными аргументами и укороченным вычислением. Закрывает [#72714](https://github.com/ClickHouse/ClickHouse/issues/72714). [#84546](https://github.com/ClickHouse/ClickHouse/pull/84546) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* Исправлена логическая ошибка при выполнении выбора данных из таблицы с ограничением, использующим подзапрос. Устраняет [#84190](https://github.com/ClickHouse/ClickHouse/issues/84190). [#85575](https://github.com/ClickHouse/ClickHouse/pull/85575) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* Исправлена ошибка для специальных запросов, использующих URI с вопросительными знаками. [#85663](https://github.com/ClickHouse/ClickHouse/pull/85663) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Исправлено периодическое отсутствие некоторых столбцов в выводе `EXPLAIN indexes = 1`. Решает [#86696](https://github.com/ClickHouse/ClickHouse/issues/86696). [#87083](https://github.com/ClickHouse/ClickHouse/pull/87083) ([Michael Kolupaev](https://github.com/al13n321)). -* Исправлена возможная ошибка «Cannot add subcolumn with parallel replicas». Закрывает [#84888](https://github.com/ClickHouse/ClickHouse/issues/84888). [#87514](https://github.com/ClickHouse/ClickHouse/pull/87514) ([Pavel Kruglov](https://github.com/Avogar)). -* В parquet writer добавлен вывод строки `created_by` в корректном формате, например `ClickHouse version 25.10.1 (build 5b1dfb14925db8901a4e9202cd5d63c11ecfbb9f)` вместо `ClickHouse v25.9.1.1-testing`. Исправлена совместимость parquet reader с файлами некорректного формата, записанными старой версией parquet-mr. [#87735](https://github.com/ClickHouse/ClickHouse/pull/87735) ([Michael Kolupaev](https://github.com/al13n321)). -* Исправлено вычисление phi-squared, приводившее к неверным результатам в `cramersV`, `cramersVBiasCorrected`, `theilsU` и `contingency`. [#87831](https://github.com/ClickHouse/ClickHouse/pull/87831) ([Nihal Z. Miaji](https://github.com/nihalzp)). -* Исправлено чтение массивов в JSON, одновременно содержащих значения типов Float и Bool. Ранее вставка таких данных приводила к исключению. [#88008](https://github.com/ClickHouse/ClickHouse/pull/88008) ([Pavel Kruglov](https://github.com/Avogar)). -* Использование `shared_ptr` для `QueryState` в `TCPHandler` для обнаружения, если состояние стало невалидным, в `setProgressCallback`, `setFileProgressCallback` и `setBlockMarshallingCallback`. [#88201](https://github.com/ClickHouse/ClickHouse/pull/88201) ([Tuan Pham Anh](https://github.com/tuanpach)). -* Исправлена логическая ошибка при перестановке операций CROSS JOIN, когда query_plan_optimize_join_order_limit > 1. Закрыта [#89409](https://github.com/ClickHouse/ClickHouse/issues/89409). [#88286](https://github.com/ClickHouse/ClickHouse/pull/88286) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Исправление [#88426](https://github.com/ClickHouse/ClickHouse/issues/88426): 1. Запретить явное задание столбцов в таблицах типа Alias, столбцы автоматически подгружаются из целевой таблицы. Это гарантирует, что Alias всегда соответствует схеме целевой таблицы. 2. Проксировать больше методов из IStorage. [#88552](https://github.com/ClickHouse/ClickHouse/pull/88552) ([Kai Zhu](https://github.com/nauu)). -* После восстановления реплика базы данных Replicated могла надолго «застрять», постоянно выводя сообщения вида `Failed to marked query-0004647339 as finished (finished=No node, synced=No node)`, теперь это исправлено. [#88671](https://github.com/ClickHouse/ClickHouse/pull/88671) ([Alexander Tokmakov](https://github.com/tavplubix)). -* Исправлена возможная ошибка "Context has expired" при использовании нового анализатора запросов с подзапросами. [#88694](https://github.com/ClickHouse/ClickHouse/pull/88694) ([Azat Khuzhin](https://github.com/azat)). -* Исправлена ошибка сегментации в считывателе Parquet, возникавшая, когда input_format_parquet_local_file_min_bytes_for_seek установлен в 0. Исправляет [#78456](https://github.com/ClickHouse/ClickHouse/issues/78456). [#88784](https://github.com/ClickHouse/ClickHouse/pull/88784) ([Animesh](https://github.com/anibilthare)). -* Исправлен некорректный результат min(PK)/max(PK) при обратном порядке сортировки PK. Это исправляет [#83619](https://github.com/ClickHouse/ClickHouse/issues/83619). [#88796](https://github.com/ClickHouse/ClickHouse/pull/88796) ([Amos Bird](https://github.com/amosbird)). -* Исправлена передача ограничений на размер через настройки max_table_size_to_drop и max_partition_size_to_drop при выполнении операции DROP для внутренних таблиц. [#88812](https://github.com/ClickHouse/ClickHouse/pull/88812) ([Nikolay Degterinsky](https://github.com/evillique)). -* Исправлено поведение функции `top_k`, чтобы она учитывала параметр threshold при вызове с одним аргументом. Закрывает [#88757](https://github.com/ClickHouse/ClickHouse/issues/88757). [#88867](https://github.com/ClickHouse/ClickHouse/pull/88867) ([Manuel](https://github.com/raimannma)). -* Источники, использующие конечные точки ArrowFlight и требующие SSL‑соединения (например, за AWS ALB), теперь могут корректно запрашивать конкретный набор данных. [#88868](https://github.com/ClickHouse/ClickHouse/pull/88868) ([alex-shchetkov](https://github.com/alex-shchetkov)). -* Исправлена обработка нематериализованных Nested(Tuple(...)), добавленных через ALTER. Исправляет [#83133](https://github.com/ClickHouse/ClickHouse/issues/83133). [#88879](https://github.com/ClickHouse/ClickHouse/pull/88879) ([Azat Khuzhin](https://github.com/azat)). -* Исправлена ошибка в функции `reverseUTF8`. В предыдущих версиях она ошибочно обращала порядок байт у четырёхбайтовых кодовых точек UTF-8. Это закрывает [#88913](https://github.com/ClickHouse/ClickHouse/issues/88913). [#88914](https://github.com/ClickHouse/ClickHouse/pull/88914) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Исправлен протокол icebergS3Cluster. Добавлена поддержка эволюции схемы, позиционных удалений и удалений по равенству в функции icebergCluster. Устранена ошибка [#88287](https://github.com/ClickHouse/ClickHouse/issues/88287). [#88919](https://github.com/ClickHouse/ClickHouse/pull/88919) ([Yang Jiang](https://github.com/Ted-Jiang)). -* Отключена проекция parallel_replicas_support для запросов с параллельными репликами по распределённым таблицам. Закрывает [#88899](https://github.com/ClickHouse/ClickHouse/issues/88899). [#88922](https://github.com/ClickHouse/ClickHouse/pull/88922) ([zoomxi](https://github.com/zoomxi)). -* Передача контекста во внутренних приведениях типов. Исправлены несколько проблем, из-за которых настройки приведения типов не передавались. Закрывает [#88873](https://github.com/ClickHouse/ClickHouse/issues/88873). Закрывает [#78025](https://github.com/ClickHouse/ClickHouse/issues/78025). [#88929](https://github.com/ClickHouse/ClickHouse/pull/88929) ([Manuel](https://github.com/raimannma)). -* Исправлено определение формата файла по шаблонам (globs) в функции file(). Исправлена ошибка [#88920](https://github.com/ClickHouse/ClickHouse/issues/88920). [#88947](https://github.com/ClickHouse/ClickHouse/pull/88947) ([Vitaly Baranov](https://github.com/vitlibar)). -* Не выполнять проверку доступа `SET DEFINER :definer` при создании представления с SQL SECURITY DEFINER. [#88968](https://github.com/ClickHouse/ClickHouse/pull/88968) ([pufit](https://github.com/pufit)). -* Исправлена ошибка `LOGICAL_ERROR` в `L2DistanceTransposed(vec1, vec2, p)`, из-за которой оптимизация частичного чтения `QBit` некорректно удаляла `Nullable` из возвращаемого типа, когда `p` был `Nullable`. [#88974](https://github.com/ClickHouse/ClickHouse/pull/88974) ([Raufs Dunamalijevs](https://github.com/rienath)). -* Исправлено падение при использовании неизвестного типа каталога. Исправляет [#88819](https://github.com/ClickHouse/ClickHouse/issues/88819). [#88987](https://github.com/ClickHouse/ClickHouse/pull/88987) ([scanhex12](https://github.com/scanhex12)). -* Закрывает [#88081](https://github.com/ClickHouse/ClickHouse/issues/88081). [#88988](https://github.com/ClickHouse/ClickHouse/pull/88988) ([scanhex12](https://github.com/scanhex12)). -* Исправлено снижение производительности при анализе пропускающих индексов. [#89004](https://github.com/ClickHouse/ClickHouse/pull/89004) ([Anton Popov](https://github.com/CurtizJ)). -* Устранена ошибка ACCESS_ENTITY_NOT_FOUND при попытке выполнить clusterAllReplicas от имени пользователя с несуществующей ролью. Устраняет [#87670](https://github.com/ClickHouse/ClickHouse/issues/87670). [#89068](https://github.com/ClickHouse/ClickHouse/pull/89068) ([pufit](https://github.com/pufit)). -* Исправлена обработка разреженных столбцов с помощью ограничения CHECK. Закрывает [#88637](https://github.com/ClickHouse/ClickHouse/issues/88637). [#89076](https://github.com/ClickHouse/ClickHouse/pull/89076) ([Eduard Karacharov](https://github.com/korowa)). -* Исправлен некорректный подсчёт количества строк при заполнении виртуальных столбцов в MergeTreeReaderTextIndex, приводивший к сбою с LOGICAL_ERROR. [#89095](https://github.com/ClickHouse/ClickHouse/pull/89095) ([Peng Jian](https://github.com/fastio)). -* Предотвращены утечки счетчика слияний по TTL при возникновении исключений во время подготовки слияния. Устраняет проблему [#89019](https://github.com/ClickHouse/ClickHouse/issues/89019). [#89127](https://github.com/ClickHouse/ClickHouse/pull/89127) ([save-my-heart](https://github.com/save-my-heart)). -* Исправлен расчёт размера буфера, необходимого для операций кодирования и декодирования в base32/base58. [#89133](https://github.com/ClickHouse/ClickHouse/pull/89133) ([Antonio Andelic](https://github.com/antonio2368)). -* Исправлено использование освобождённой памяти (use-after-free) в движке `Distributed` из-за гонки состояний между остановкой и фоновыми операциями `INSERT`. Решает проблему [#88640](https://github.com/ClickHouse/ClickHouse/issues/88640). [#89136](https://github.com/ClickHouse/ClickHouse/pull/89136) ([Azat Khuzhin](https://github.com/azat)). -* Предотвращены возможные гонки данных из‑за изменяемых исключений при разборе Parquet. Исправляет [#88385](https://github.com/ClickHouse/ClickHouse/issues/88385). [#89174](https://github.com/ClickHouse/ClickHouse/pull/89174) ([Azat Khuzhin](https://github.com/azat)). -* Обновляемое материализованное представление: исправлен редкий сбой сервера, возникавший при полном удалении исходной таблицы во время обновления. [#89203](https://github.com/ClickHouse/ClickHouse/pull/89203) ([Michael Kolupaev](https://github.com/al13n321)). -* Сбрасывать буферы при отправке ошибки в середине сжатого потока в HTTP-интерфейсе. [#89256](https://github.com/ClickHouse/ClickHouse/pull/89256) ([Alexander Tokmakov](https://github.com/tavplubix)). -* Исправлена ошибка, из-за которой правила маскирования запросов некорректно применялись к DDL-операторам. [#89272](https://github.com/ClickHouse/ClickHouse/pull/89272) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). -* Исправлено неверное количество строк при заполнении виртуальных столбцов в MergeTreeReaderTextIndex, что приводило к аварийному завершению с LOGICAL_ERROR. Переоткрыта задача [#89095](https://github.com/ClickHouse/ClickHouse/issues/89095). [#89303](https://github.com/ClickHouse/ClickHouse/pull/89303) ([Jimmy Aguilar Mena](https://github.com/Ergus)). -* Исправлена ошибка LOGICAL_ERROR в Statistics countmin: не поддерживался тип данных estimate LowCardinality(Nullable(String)). [#89343](https://github.com/ClickHouse/ClickHouse/pull/89343) ([Han Fei](https://github.com/hanfei1991)). -* Возможен сбой или неопределённое поведение в операторе IN, когда типы столбцов первичного ключа отличаются от типов столбцов в правой части оператора IN. Пример: SELECT string_column, int_column FROM test_table WHERE (string_column, int_column) IN (SELECT '5', 'not a number'). Проявляется, если выбирается много строк и среди них есть строки со значениями несовместимых типов. [#89367](https://github.com/ClickHouse/ClickHouse/pull/89367) ([Ilya Golshtein](https://github.com/ilejn)). -* Исправлено усечение аргументов функции `countIf(*)`. Закрывает [#89372](https://github.com/ClickHouse/ClickHouse/issues/89372). [#89373](https://github.com/ClickHouse/ClickHouse/pull/89373) ([Manuel](https://github.com/raimannma)). -* Предотвращена потеря несжатых контрольных сумм для статистики по мутациям. [#89381](https://github.com/ClickHouse/ClickHouse/pull/89381) ([Azat Khuzhin](https://github.com/azat)). -* Исправлена LOGICAL_ERROR в L2DistanceTransposed(vec1, vec2, p), из-за которой при оптимизации частичного чтения QBit из типа возвращаемого значения ошибочно удалялся Nullable, когда p имел тип LowCardinality(Nullable(T)). Устраняет [#88362](https://github.com/ClickHouse/ClickHouse/issues/88362). [#89397](https://github.com/ClickHouse/ClickHouse/pull/89397) ([Raufs Dunamalijevs](https://github.com/rienath)). -* Исправлена загрузка таблиц с некорректной разреженной сериализацией самого `tuple`, записанного старыми версиями ClickHouse. [#89405](https://github.com/ClickHouse/ClickHouse/pull/89405) ([Azat Khuzhin](https://github.com/azat)). -* Исправлена некорректная обработка слияний частей, очищенных по TTL, с непустыми проекциями при использовании `deduplicate_merge_projection_mode='ignore'`. Решает [#89430](https://github.com/ClickHouse/ClickHouse/issues/89430). [#89458](https://github.com/ClickHouse/ClickHouse/pull/89458) ([Amos Bird](https://github.com/amosbird)). -* Исправлена логическая ошибка в соединении `full_sorting_merge` с дублирующимися столбцами. Устраняет [#86957](https://github.com/ClickHouse/ClickHouse/issues/86957). [#89495](https://github.com/ClickHouse/ClickHouse/pull/89495) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Исправлено чтение журнала изменений при запуске Keeper в случае, если changelog не был корректно переименован при ротации. [#89496](https://github.com/ClickHouse/ClickHouse/pull/89496) ([Antonio Andelic](https://github.com/antonio2368)). -* Исправлены некорректные результаты JOIN при использовании условий OR с уникальными ключами правой таблицы. Решает проблему [#89391](https://github.com/ClickHouse/ClickHouse/issues/89391). [#89512](https://github.com/ClickHouse/ClickHouse/pull/89512) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Исправлена возможная ошибка "Context has expired" при использовании анализатора и выражения PK IN (подзапрос) (v2). Исправляет [#89433](https://github.com/ClickHouse/ClickHouse/issues/89433). [#89527](https://github.com/ClickHouse/ClickHouse/pull/89527) ([Azat Khuzhin](https://github.com/azat)). -* Исправлена репликация MaterializedPostgreSQL для таблиц с именами столбцов, заданными в верхнем регистре. Решает проблему [#72363](https://github.com/ClickHouse/ClickHouse/issues/72363). [#89530](https://github.com/ClickHouse/ClickHouse/pull/89530) ([Danylo Osipchuk](https://github.com/Lenivaya)). -* Исправлена ошибка, приводившая к падению в случае, когда состояние агрегатной функции содержит сериализованное значение столбца типа LowCardinality(String). [#89550](https://github.com/ClickHouse/ClickHouse/pull/89550) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлен сбой при использовании `ARRAY JOIN` на правой стороне JOIN при включённой настройке `enable_lazy_columns_replication`. [#89551](https://github.com/ClickHouse/ClickHouse/pull/89551) ([Pavel Kruglov](https://github.com/Avogar)). -* Устранена логическая ошибка в query_plan_convert_join_to_in. Устраняет [#89066](https://github.com/ClickHouse/ClickHouse/issues/89066). [#89554](https://github.com/ClickHouse/ClickHouse/pull/89554) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Исправлено исключение в оценщике статистики при попытке оценить условия с несовпадающими типами столбца и константы, которые нельзя преобразовать. [#89596](https://github.com/ClickHouse/ClickHouse/pull/89596) ([Han Fei](https://github.com/hanfei1991)). -* Добавлять runtime-фильтры только для поддерживаемых алгоритмов соединения, то есть хеш-соединений. Фильтр может быть создан только тогда, когда алгоритм соединения сначала полностью читает правую сторону, а затем левую, но, например, FullSortingMergeJoin читает обе стороны одновременно. Исправляет [#89220](https://github.com/ClickHouse/ClickHouse/issues/89220). [#89652](https://github.com/ClickHouse/ClickHouse/pull/89652) ([Alexander Gololobov](https://github.com/davenger)). -* Исправлено конкурентное выполнение функций `hasAnyTokens`, `hasAllTokens` и `tokens` с токенизатором `sparseGrams`. Устраняет проблему [#89605](https://github.com/ClickHouse/ClickHouse/issues/89605). [#89665](https://github.com/ClickHouse/ClickHouse/pull/89665) ([Elmi Ahmadov](https://github.com/ahmadov)). -* Исправлена логическая ошибка, приводившая к сбоям при использовании runtime-фильтра JOIN в некоторых случаях. Исправляет [#89062](https://github.com/ClickHouse/ClickHouse/issues/89062). [#89666](https://github.com/ClickHouse/ClickHouse/pull/89666) ([Alexander Gololobov](https://github.com/davenger)). -* Исправлена возможная логическая ошибка при выполнении ARRAY JOIN над столбцом Map при включённом `enable_lazy_columns_replication`. Закрывает [#89705](https://github.com/ClickHouse/ClickHouse/issues/89705). [#89717](https://github.com/ClickHouse/ClickHouse/pull/89717) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена ошибка, вызывавшая сбой при чтении с удалённого сервера после отключения соединения в удалённых запросах при их отмене. Исправляет [#89468](https://github.com/ClickHouse/ClickHouse/issues/89468). [#89740](https://github.com/ClickHouse/ClickHouse/pull/89740) ([Azat Khuzhin](https://github.com/azat)). -* Исправлена гонка при чтении индекса проекций. Устраняет [#89497](https://github.com/ClickHouse/ClickHouse/issues/89497). [#89762](https://github.com/ClickHouse/ClickHouse/pull/89762) ([Peng Jian](https://github.com/fastio)). -* Исправлена ошибка при чтении проекционного индекса, которая могла приводить к состояниям гонки. Решает проблему [#89497](https://github.com/ClickHouse/ClickHouse/issues/89497). [#89775](https://github.com/ClickHouse/ClickHouse/pull/89775) ([Amos Bird](https://github.com/amosbird)). -* Исправлена обработка табличной функции Paimon для таблиц без партиций. Устраняет проблему [#89690](https://github.com/ClickHouse/ClickHouse/issues/89690). [#89793](https://github.com/ClickHouse/ClickHouse/pull/89793) ([JIaQi](https://github.com/JiaQiTang98)). -* Исправлена возможная логическая ошибка при чтении путей и их подстолбцов в расширенной общей сериализации данных JSON. Закрывает [#89805](https://github.com/ClickHouse/ClickHouse/issues/89805). [#89819](https://github.com/ClickHouse/ClickHouse/pull/89819) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлено возможное переполнение стека при бинарной десериализации типов данных. Закрывает [#88710](https://github.com/ClickHouse/ClickHouse/issues/88710). [#89822](https://github.com/ClickHouse/ClickHouse/pull/89822) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена логическая ошибка при использовании пустого кортежа в функции `IN`. Закрывает [#88343](https://github.com/ClickHouse/ClickHouse/issues/88343). [#89850](https://github.com/ClickHouse/ClickHouse/pull/89850) ([Nihал Z. Miaji](https://github.com/nihalzp)). -* Удалены инъективные функции из `GROUP BY` в старом анализаторе вне зависимости от настройки `optimize_injective_functions_in_group_by` для обеспечения совместимости. Исправлена проблема [#89854](https://github.com/ClickHouse/ClickHouse/issues/89854). [#89870](https://github.com/ClickHouse/ClickHouse/pull/89870) ([Raufs Dunamalijevs](https://github.com/rienath)). -* Если объединение было прервано, например, из‑за ограничения по памяти, фоновый исполнитель merge mutate вызовет `cancel` для задачи объединения без блокировки, но в этом случае частично созданная результирующая часть не будет удалена (поскольку она не была завершена и на этом этапе ещё не была видна). После этого задача объединения будет уничтожена, что приведёт к уничтожению результирующей части. Это откатит транзакцию на диске и приведёт к удалению данных из S3. В итоге эта очистка мусора была выполнена под блокировкой фонового исполнителя merge mutate. [#89875](https://github.com/ClickHouse/ClickHouse/pull/89875) ([Mikhail Artemenko](https://github.com/Michicosun)). -* Исправлена логическая ошибка при обработке пустого кортежа в функциях `reverse` и `CAST`. Закрывает [#89137](https://github.com/ClickHouse/ClickHouse/issues/89137). [#89908](https://github.com/ClickHouse/ClickHouse/pull/89908) ([Nihал Z. Miaji](https://github.com/nihalzp)). -* Теперь ClickHouse по умолчанию будет показывать базу данных каталога Data Lake в результате запроса `SHOW DATABASES`. [#89914](https://github.com/ClickHouse/ClickHouse/pull/89914) ([alesapin](https://github.com/alesapin)). -* Исправлено использование нативного копирования на GCS для создания резервных копий. Из-за некорректного клонирования клиента нативное копирование GCS всегда завершалось с ошибкой, и поэтому применялся менее оптимальный подход с ручным чтением и записью данных. [#89923](https://github.com/ClickHouse/ClickHouse/pull/89923) ([Antonio Andelic](https://github.com/antonio2368)). -* Исправлен расчёт размера буфера в base32Encode. Вычисление base32Encode для столбца строк длиной менее 5 символов могло приводить к сбоям. Устраняет проблему [#89911](https://github.com/ClickHouse/ClickHouse/issues/89911). [#89929](https://github.com/ClickHouse/ClickHouse/pull/89929) ([Antonio Andelic](https://github.com/antonio2368)). -* Исправлено некорректное экранирование для запросов `SHOW COLUMNS` и `SHOW FUNCTIONS`. [#89942](https://github.com/ClickHouse/ClickHouse/pull/89942) ([alesapin](https://github.com/alesapin)). -* Исправлена валидация URL в движке MongoDB для случаев, когда имя пользователя содержит символ '@'. Ранее такие имена пользователей вызывали ошибку из-за некорректного кодирования. [#89970](https://github.com/ClickHouse/ClickHouse/pull/89970) ([Kai Zhu](https://github.com/nauu)). -* Бэкпортировано в [#90592](https://github.com/ClickHouse/ClickHouse/issues/90592): исправлено возможное аварийное завершение при выполнении удалённого запроса с `ARRAY JOIN` внутри `IN` при включённой настройке `enable_lazy_columns_replication`. Исправляет [#90361](https://github.com/ClickHouse/ClickHouse/issues/90361). [#89997](https://github.com/ClickHouse/ClickHouse/pull/89997) ([Pavel Kruglov](https://github.com/Avogar)). -* Бэкпортировано в [#90448](https://github.com/ClickHouse/ClickHouse/issues/90448): исправлена интерпретация некорректных значений DateTime64 при разборе строк в текстовых форматах в ряде случаев. Закрывает [#89368](https://github.com/ClickHouse/ClickHouse/issues/89368). [#90013](https://github.com/ClickHouse/ClickHouse/pull/90013) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена логическая ошибка, вызванная пустым столбцом типа Tuple в `BSONEachRow` и `MsgPack`. Закрывает [#89814](https://github.com/ClickHouse/ClickHouse/issues/89814). Закрывает [#71536](https://github.com/ClickHouse/ClickHouse/issues/71536). [#90018](https://github.com/ClickHouse/ClickHouse/pull/90018) ([Nihal Z. Miaji](https://github.com/nihalzp)). -* Бэкпортировано в [#90457](https://github.com/ClickHouse/ClickHouse/issues/90457): выполнять проверку размера при десериализации данных из агрегатных состояний и других источников. [#90031](https://github.com/ClickHouse/ClickHouse/pull/90031) ([Raúl Marín](https://github.com/Algunenano)). -* Исправлена потенциальная ошибка 'Invalid number of rows in Chunk' при выполнении JOIN с повторяющимися столбцами. Исправляет [#89411](https://github.com/ClickHouse/ClickHouse/issues/89411). [#90053](https://github.com/ClickHouse/ClickHouse/pull/90053) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Бэкпортировано в [#90588](https://github.com/ClickHouse/ClickHouse/issues/90588): исправлена возможная ошибка `Column with Array type is not represented by ColumnArray column: Replicated` при вставке с использованием `ARRAY JOIN` и при включённой настройке `enable_lazy_columns_replication`. [#90066](https://github.com/ClickHouse/ClickHouse/pull/90066) ([Pavel Kruglov](https://github.com/Avogar)). -* Разрешены файлы в `user_files`, имена которых начинаются с точки. Закрывает [#89662](https://github.com/ClickHouse/ClickHouse/issues/89662). [#90079](https://github.com/ClickHouse/ClickHouse/pull/90079) ([Raúl Marín](https://github.com/Algunenano)). -* Бэкпортировано в [#90647](https://github.com/ClickHouse/ClickHouse/issues/90647): исправлены логическая ошибка и ошибка вычисления остатка от деления (modulo) в системной таблице `numbers` при использовании большого шага. Закрывает [#83398](https://github.com/ClickHouse/ClickHouse/issues/83398). [#90123](https://github.com/ClickHouse/ClickHouse/pull/90123) ([Nihал Z. Miaji](https://github.com/nihalzp)). -* Исправлено переполнение целого числа при разборе аргументов словаря. Закрывает [#78506](https://github.com/ClickHouse/ClickHouse/issues/78506). [#90171](https://github.com/ClickHouse/ClickHouse/pull/90171) ([Raúl Marín](https://github.com/Algunenano)). -* Бэкпортировано в [#90468](https://github.com/ClickHouse/ClickHouse/issues/90468): Исправлена несовместимость с Hive-партиционированием, препятствовавшая корректному обновлению до версии 25.8 (исправляет ошибку `All hive partitioning columns must be present in the schema` во время обновления). [#90202](https://github.com/ClickHouse/ClickHouse/pull/90202) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Исправлены возможные некорректные результаты запросов после выполнения легковесных обновлений в запросах `SELECT` при включённом кэше условий запроса. Исправлена проблема [#90176](https://github.com/ClickHouse/ClickHouse/issues/90176). Исправлена проблема [#90054](https://github.com/ClickHouse/ClickHouse/issues/90054). [#90204](https://github.com/ClickHouse/ClickHouse/pull/90204) ([Anton Popov](https://github.com/CurtizJ)). -* Исправлен сбой в StorageDistributed при разборе некорректных имён каталогов шардов. [#90243](https://github.com/ClickHouse/ClickHouse/pull/90243) ([Aleksandr Musorin](https://github.com/AVMusorin)). -* Реализована обработка неявного преобразования строк в целые числа и логические значения в `LogicalExpressionOptimizerPass`. Исправляет [#89803](https://github.com/ClickHouse/ClickHouse/issues/89803). [#90245](https://github.com/ClickHouse/ClickHouse/pull/90245) ([Elmi Ahmadov](https://github.com/ahmadov)). -* Исправлено некорректное форматирование некоторых skip-индексов в определении таблицы, приводившее к ошибке `METADATA_MISMATCH` и мешавшее созданию новых реплик в реплицируемой базе данных. [#90251](https://github.com/ClickHouse/ClickHouse/pull/90251) ([Nikolay Degterinsky](https://github.com/evillique)). -* Бэкпортировано в [#90381](https://github.com/ClickHouse/ClickHouse/issues/90381): исправлено несоответствие количества строк в MergeTreeReaderIndex, когда part содержит меньше строк, чем index_granularity. Устраняет [#89691](https://github.com/ClickHouse/ClickHouse/issues/89691). [#90254](https://github.com/ClickHouse/ClickHouse/pull/90254) ([Peng Jian](https://github.com/fastio)). -* Бэкпортировано в [#90608](https://github.com/ClickHouse/ClickHouse/issues/90608): Исправлена ошибка при чтении подстолбцов из JSON в компактных частях, которая могла приводить к ошибке `CANNOT_READ_ALL_DATA`. Закрывает [#90264](https://github.com/ClickHouse/ClickHouse/issues/90264). [#90302](https://github.com/ClickHouse/ClickHouse/pull/90302) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена проблема, из-за которой функции `trim`, `ltrim`, `rtrim` не работали с двумя аргументами. Закрывает [#90170](https://github.com/ClickHouse/ClickHouse/issues/90170). [#90305](https://github.com/ClickHouse/ClickHouse/pull/90305) ([Nihал Z. Miaji](https://github.com/nihalzp)). -* Бэкпортировано в [#90625](https://github.com/ClickHouse/ClickHouse/issues/90625): исправлена возможная логическая ошибка в PREWHERE при обращении к несуществующему JSON-пути при index_granularity_bytes=0. Исправляет [#86924](https://github.com/ClickHouse/ClickHouse/issues/86924). [#90375](https://github.com/ClickHouse/ClickHouse/pull/90375) ([Pavel Kruglov](https://github.com/Avogar)). -* Бэкпортировано в [#90484](https://github.com/ClickHouse/ClickHouse/issues/90484): исправлена ошибка в `L2DistanceTransposed`, приводившая к сбоям при выходе значения аргумента precision за допустимый диапазон. Закрывает [#90401](https://github.com/ClickHouse/ClickHouse/issues/90401). [#90405](https://github.com/ClickHouse/ClickHouse/pull/90405) ([Raufs Dunamalijevs](https://github.com/rienath)). -* Бэкпортировано в [#90577](https://github.com/ClickHouse/ClickHouse/issues/90577): исправлены некорректные вычисления расстояния в `L2DistanceTransposed` при использовании массивов опорных векторов (по умолчанию `Array(Float64)`) со столбцами `QBit` с элементами типов, отличных от `Float64` (`Float32`, `BFloat16`). Функция теперь автоматически приводит тип опорного вектора к типу элемента `QBit`. Закрывает [#89976](https://github.com/ClickHouse/ClickHouse/issues/89976). [#90485](https://github.com/ClickHouse/ClickHouse/pull/90485) ([Raufs Dunamalijevs](https://github.com/rienath)). -* Бэкпортировано в [#90601](https://github.com/ClickHouse/ClickHouse/issues/90601): исправлена логическая ошибка, возникающая в редком случае в функции `equals`. Закрывает [#88142](https://github.com/ClickHouse/ClickHouse/issues/88142). [#90557](https://github.com/ClickHouse/ClickHouse/pull/90557) ([Nihal Z. Miaji](https://github.com/nihalzp)). -* Исправлен `CoalescingMergeTree` для типов `Tuple`. [#88828](https://github.com/ClickHouse/ClickHouse/pull/88828) ([scanhex12](https://github.com/scanhex12)). - -#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement} - -* Исправлена ошибка Connection refused при запуске ClickHouse в Docker с initdb SQL-скриптами и переопределённым TCP-портом. [#88042](https://github.com/ClickHouse/ClickHouse/pull/88042) ([Grigorii](https://github.com/GSokol)). -* Экспериментально добавлена поддержка e2k как новой платформы для ClickHouse. [#90159](https://github.com/ClickHouse/ClickHouse/pull/90159) ([Ramil Sattarov](https://github.com/r-a-sattarov)). -* Убрано оставшееся использование `FindPackage` в CMake. Сборка не должна зависеть от системных пакетов. [#89380](https://github.com/ClickHouse/ClickHouse/pull/89380) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Включено использование кэша компилятора при сборке на этапе конфигурации CMake (например, для `protoc`). [#89613](https://github.com/ClickHouse/ClickHouse/pull/89613) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Переведена сборка на использование sysroot FreeBSD 13.4. [#89617](https://github.com/ClickHouse/ClickHouse/pull/89617) ([Konstantin Bogdanov](https://github.com/thevar1able)). - -### Релиз ClickHouse 25.10, 2025-10-31 {#2510} - -#### Несовместимое изменение {#backward-incompatible-change} - -* Изменена настройка по умолчанию `schema_inference_make_columns_nullable`: теперь она учитывает признак `Nullable` для столбцов по метаданным Parquet/ORC/Arrow вместо того, чтобы делать все столбцы Nullable. Для текстовых форматов изменений нет. [#71499](https://github.com/ClickHouse/ClickHouse/pull/71499) ([Michael Kolupaev](https://github.com/al13n321)). -* Кэш результатов запросов будет игнорировать настройку `log_comment`, так что изменение только `log_comment` в запросе больше не будет приводить к промаху по кэшу. Существует небольшая вероятность, что пользователи намеренно сегментировали свой кэш, варьируя `log_comment`. Это изменение меняет такое поведение и, следовательно, не является обратно совместимым. Пожалуйста, используйте настройку `query_cache_tag` для этой цели. [#79878](https://github.com/ClickHouse/ClickHouse/pull/79878) ([filimonov](https://github.com/filimonov)). -* В предыдущих версиях запросы с табличными функциями, названными так же, как функции реализации операторов, форматировались непоследовательно. Закрывает [#81601](https://github.com/ClickHouse/ClickHouse/issues/81601). Закрывает [#81977](https://github.com/ClickHouse/ClickHouse/issues/81977). Закрывает [#82834](https://github.com/ClickHouse/ClickHouse/issues/82834). Закрывает [#82835](https://github.com/ClickHouse/ClickHouse/issues/82835). Запросы EXPLAIN SYNTAX больше не всегда будут форматировать операторы — новое поведение лучше отражает цель объяснения синтаксиса. `clickhouse-format`, `formatQuery` и подобные инструменты не будут форматировать функции как операторы, если в запросе они используются в функциональной форме. [#82825](https://github.com/ClickHouse/ClickHouse/pull/82825) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Запрещено использовать тип `Dynamic` в ключах `JOIN`. Это может приводить к неожиданным результатам при сравнении значения типа `Dynamic` со значением типа, отличного от `Dynamic`. Лучше приводить столбец `Dynamic` к требуемому типу. [#86358](https://github.com/ClickHouse/ClickHouse/pull/86358) ([Pavel Kruglov](https://github.com/Avogar)). -* Опция сервера `storage_metadata_write_full_object_key` по умолчанию включена, сейчас её нельзя отключить. Это обратно совместимое изменение. Приводится только для вашего сведения. Это изменение совместимо по направлению вперёд только с релизами 25.x. Это означает, что вы сможете выполнить откат только до любого релиза 25.x в случае, если потребуется вернуть новый релиз. [#87335](https://github.com/ClickHouse/ClickHouse/pull/87335) ([Sema Checherinda](https://github.com/CheSema)). -* Уменьшите значение `replicated_deduplication_window_seconds` с одной недели до одного часа, чтобы сократить число znode в ZooKeeper при низкой скорости вставки. [#87414](https://github.com/ClickHouse/ClickHouse/pull/87414) ([Sema Checherinda](https://github.com/CheSema)). -* Переименована настройка `query_plan_use_new_logical_join_step` в `query_plan_use_logical_join_step`. [#87679](https://github.com/ClickHouse/ClickHouse/pull/87679) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Новый синтаксис позволяет более гибко задавать параметр tokenizer для текстового индекса. [#87997](https://github.com/ClickHouse/ClickHouse/pull/87997) ([Elmi Ahmadov](https://github.com/ahmadov)). -* Функции `searchAny` и `searchAll` переименованы в `hasAnyTokens` и `hasAllTokens` для лучшей согласованности с существующей функцией `hasToken`. [#88109](https://github.com/ClickHouse/ClickHouse/pull/88109) ([Robert Schulze](https://github.com/rschu1ze)). -* Удалён параметр `cache_hits_threshold` из кеша файловой системы. Этот параметр был добавлен внешним участником до появления политики кеширования SLRU, и теперь, когда она есть, нет смысла поддерживать обе. [#88344](https://github.com/ClickHouse/ClickHouse/pull/88344) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Два небольших изменения в работе настроек `min_free_disk_ratio_to_perform_insert` и `min_free_disk_bytes_to_perform_insert`: - использовать незарезервированные, а не доступные байты для определения, должна ли операция вставки быть отклонена. Это, вероятно, не критично, если резервы для фоновых слияний и мутаций малы по сравнению с настроенными порогами, но так считается более корректным. - Не применять эти настройки к системным таблицам. Обоснование в том, что мы по‑прежнему хотим, чтобы такие таблицы, как `query_log`, обновлялись. Это сильно помогает при отладке. Данные, записываемые в системные таблицы, обычно невелики по сравнению с основными данными, поэтому они смогут продолжать работу значительно дольше при разумном пороге `min_free_disk_ratio_to_perform_insert`. [#88468](https://github.com/ClickHouse/ClickHouse/pull/88468) ([c-end](https://github.com/c-end)). -* Включите асинхронный режим для внутренней репликации Keeper. Keeper сохранит прежнее поведение с возможным улучшением производительности. Если вы обновляетесь с версии старее 23.9, вам нужно сначала обновиться до 23.9+ и затем до 25.10+. Вы также можете установить `keeper_server.coordination_settings.async_replication` в значение 0 перед обновлением и включить его после завершения обновления. [#88515](https://github.com/ClickHouse/ClickHouse/pull/88515) ([Antonio Andelic](https://github.com/antonio2368)). - -#### Новая возможность {#new-feature} - -* Добавлена поддержка отрицательных значений для `LIMIT` и `OFFSET`. Закрывает [#28913](https://github.com/ClickHouse/ClickHouse/issues/28913). [#88411](https://github.com/ClickHouse/ClickHouse/pull/88411) ([Nihal Z. Miaji](https://github.com/nihalzp)). -* Движок `Alias` создаёт прокси для другой таблицы. Все операции чтения и записи перенаправляются в целевую таблицу, при этом псевдоним сам по себе не хранит данные и только содержит ссылку на целевую таблицу. [#87965](https://github.com/ClickHouse/ClickHouse/pull/87965) ([Kai Zhu](https://github.com/nauu)). -* Полная поддержка оператора `IS NOT DISTINCT FROM` (`<=>`). [#88155](https://github.com/ClickHouse/ClickHouse/pull/88155) ([simonmichal](https://github.com/simonmichal)). -* Добавлена возможность автоматически создавать статистику по всем подходящим столбцам в таблицах `MergeTree`. Добавлена настройка на уровне таблицы `auto_statistics_types`, которая хранит через запятую список типов статистики, которые будут создаваться (например, `auto_statistics_types = 'minmax, uniq, countmin'`). [#87241](https://github.com/ClickHouse/ClickHouse/pull/87241) ([Anton Popov](https://github.com/CurtizJ)). -* Новый индекс блум-фильтра для текстовых данных, `sparse_gram`. [#79985](https://github.com/ClickHouse/ClickHouse/pull/79985) ([scanhex12](https://github.com/scanhex12)). -* Новая функция `conv` для преобразования чисел между системами счисления, которая на данный момент поддерживает основания систем счисления от `2` до `36`. [#83058](https://github.com/ClickHouse/ClickHouse/pull/83058) ([hp](https://github.com/hp77-creator)). -* Добавлена поддержка синтаксиса `LIMIT BY ALL`. Аналогично `GROUP BY ALL` и `ORDER BY ALL`, `LIMIT BY ALL` автоматически расширяется до использования всех неагрегатных выражений из предложения SELECT в качестве ключей LIMIT BY. Например, `SELECT id, name, count(*) FROM table GROUP BY id LIMIT 1 BY ALL` эквивалентен `SELECT id, name, count(*) FROM table GROUP BY id LIMIT 1 BY id, name`. Эта возможность упрощает запросы, когда требуется ограничить выборку по всем выбранным неагрегатным столбцам без их явного перечисления. Закрывает [#59152](https://github.com/ClickHouse/ClickHouse/issues/59152). [#84079](https://github.com/ClickHouse/ClickHouse/pull/84079) ([Surya Kant Ranjan](https://github.com/iit2009046)). -* Добавлена поддержка выполнения запросов к Apache Paimon из ClickHouse. Эта интеграция позволяет пользователям ClickHouse напрямую работать с хранилищем Paimon в формате data lake. [#84423](https://github.com/ClickHouse/ClickHouse/pull/84423) ([JIaQi](https://github.com/JiaQiTang98)). -* Добавлена агрегатная функция `studentTTestOneSample`. [#85436](https://github.com/ClickHouse/ClickHouse/pull/85436) ([Dylan](https://github.com/DylanBlakemore)). -* Агрегатная функция `quantilePrometheusHistogram`, которая принимает в качестве аргументов верхние границы и накопленные значения бакетов гистограммы и выполняет линейную интерполяцию между верхней и нижней границами того бакета, в котором находится позиция квантиля. Ведёт себя аналогично функции PromQL `histogram_quantile` для классических гистограмм. [#86294](https://github.com/ClickHouse/ClickHouse/pull/86294) ([Stephen Chi](https://github.com/stephchi0)). -* Новая системная таблица для файлов метаданных Delta Lake. [#87263](https://github.com/ClickHouse/ClickHouse/pull/87263) ([scanhex12](https://github.com/scanhex12)). -* Добавлена команда `ALTER TABLE REWRITE PARTS` — переписывает части таблицы заново, с учётом всех новых настроек (поскольку некоторые из них, например `use_const_adaptive_granularity`, применяются только к новым частям). [#87774](https://github.com/ClickHouse/ClickHouse/pull/87774) ([Azat Khuzhin](https://github.com/azat)). -* Добавлена команда `SYSTEM RECONNECT ZOOKEEPER` для принудительного разрыва соединения и повторного подключения к Zookeeper ([https://github.com/ClickHouse/ClickHouse/issues/87317](https://github.com/ClickHouse/ClickHouse/issues/87317)). [#87318](https://github.com/ClickHouse/ClickHouse/pull/87318) ([Pradeep Chhetri](https://github.com/chhetripradeep)). -* Ограничено количество именованных коллекций посредством настроек `max_named_collection_num_to_warn` и `max_named_collection_num_to_throw`. Добавлена новая метрика `NamedCollection` и ошибка `TOO_MANY_NAMED_COLLECTIONS`. [#87343](https://github.com/ClickHouse/ClickHouse/pull/87343) ([Pablo Marcos](https://github.com/pamarcos)). -* Добавлены оптимизированные регистронезависимые версии функций `startsWith` и `endsWith`: `startsWithCaseInsensitive`, `endsWithCaseInsensitive`, `startsWithCaseInsensitiveUTF8` и `endsWithCaseInsensitiveUTF8`. [#87374](https://github.com/ClickHouse/ClickHouse/pull/87374) ([Guang Zhao](https://github.com/zheguang)). -* Добавляет возможность задавать определения `WORKLOAD` и `RESOURCE` в SQL через раздел конфигурации сервера "resources_and_workloads". [#87430](https://github.com/ClickHouse/ClickHouse/pull/87430) ([Sergei Trifonov](https://github.com/serxa)). -* Добавлена новая настройка таблицы `min_level_for_wide_part`, которая позволяет задать минимальный уровень части, начиная с которого она будет создаваться как wide-часть. [#88179](https://github.com/ClickHouse/ClickHouse/pull/88179) ([Christoph Wurm](https://github.com/cwurm)). -* Добавлены рекурсивные варианты команд `cp`-`cpr` и `mv`-`mvr` в клиенте Keeper. [#88570](https://github.com/ClickHouse/ClickHouse/pull/88570) ([Mikhail Artemenko](https://github.com/Michicosun)). -* Добавлена сеансовая настройка для исключения из материализации списка пропускающих индексов при вставках (`exclude_materialize_skip_indexes_on_insert`). Добавлена настройка таблицы MergeTree для исключения из материализации списка пропускающих индексов при слиянии (`exclude_materialize_skip_indexes_on_merge`). [#87252](https://github.com/ClickHouse/ClickHouse/pull/87252) ([George Larionov](https://github.com/george-larionov)). - -#### Экспериментальная возможность {#experimental-feature} - -* Реализован тип данных `QBit`, который хранит векторы в побитово-расслоённом формате, и функция `L2DistanceTransposed`, позволяющая выполнять приближённый векторный поиск, в котором соотношение точности и скорости управляется параметром. [#87922](https://github.com/ClickHouse/ClickHouse/pull/87922) ([Raufs Dunamalijevs](https://github.com/rienath)). -* Функции `searchAll` и `searchAny` теперь могут работать со столбцами, не содержащими текстовых данных. В таких случаях используется токенайзер по умолчанию. [#87722](https://github.com/ClickHouse/ClickHouse/pull/87722) ([Jimmy Aguilar Mena](https://github.com/Ergus)). - -#### Повышение производительности {#performance-improvement} - -* Реализована ленивая репликация столбцов в JOIN и ARRAY JOIN. Избегается преобразование специальных представлений столбцов, таких как Sparse и Replicated, в полные столбцы в некоторых выходных форматах. Это предотвращает ненужное копирование данных в памяти. [#88752](https://github.com/ClickHouse/ClickHouse/pull/88752) ([Pavel Kruglov](https://github.com/Avogar)). -* Добавлена возможность необязательной сериализации подстолбца `.size` для строковых столбцов верхнего уровня в таблицах MergeTree для улучшения сжатия и обеспечения эффективного доступа к подстолбцам. Введены новые настройки MergeTree для управления версией сериализации и оптимизации выражений с пустыми строками. [#82850](https://github.com/ClickHouse/ClickHouse/pull/82850) ([Amos Bird](https://github.com/amosbird)). -* Поддержка упорядоченного чтения для Iceberg. [#88454](https://github.com/ClickHouse/ClickHouse/pull/88454) ([scanhex12](https://github.com/scanhex12)). -* Ускорено выполнение некоторых запросов с операцией JOIN за счёт построения bloom-фильтра по правому поддереву во время выполнения и передачи этого фильтра в операцию сканирования в левом поддереве. Это может быть полезно для запросов вида `SELECT avg(o_totalprice) FROM orders, customer, nation WHERE c_custkey = o_custkey AND c_nationkey=n_nationkey AND n_name = 'FRANCE'`. [#84772](https://github.com/ClickHouse/ClickHouse/pull/84772) ([Alexander Gololobov](https://github.com/davenger)). -* Повышена производительность запросов за счет рефакторинга порядка выполнения и интеграции Query Condition Cache (QCC) с анализом индексов. Фильтрация с помощью QCC теперь выполняется до анализа по первичному ключу и skip-индексам, что сокращает лишние вычисления по индексам. Анализ индексов был расширен для поддержки нескольких диапазонных фильтров, а его результаты фильтрации теперь сохраняются обратно в QCC. Это существенно ускоряет запросы, в которых анализ индексов доминирует во времени выполнения — особенно те, что опираются на skip-индексы (например, векторные или инвертированные индексы). [#82380](https://github.com/ClickHouse/ClickHouse/pull/82380) ([Amos Bird](https://github.com/amosbird)). -* Серия микрооптимизаций для ускорения небольших запросов. [#83096](https://github.com/ClickHouse/ClickHouse/pull/83096) ([Raúl Marín](https://github.com/Algunenano)). -* Добавлено сжатие логов и событий профилирования в нативном протоколе. На кластерах со 100+ репликами несжатые события профилирования создают трафик 1–10 МБ/с, и индикатор выполнения работает медленно при медленном подключении к интернету. Это исправляет [#82533](https://github.com/ClickHouse/ClickHouse/issues/82533). [#83586](https://github.com/ClickHouse/ClickHouse/pull/83586) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Улучшена производительность поиска по строкам с учётом регистра (для операций, таких как фильтрация, например `WHERE URL LIKE '%google%'`) за счёт использования библиотеки [StringZilla](https://github.com/ashvardanian/StringZilla), применяющей SIMD-инструкции процессора, когда они доступны. [#84161](https://github.com/ClickHouse/ClickHouse/pull/84161) ([Raúl Marín](https://github.com/Algunenano)). -* Сокращено количество операций выделения и копирования памяти при выполнении запроса `SELECT` с модификатором `FINAL` из таблицы AggregatingMergeTree, если в таблице есть столбцы типа `SimpleAggregateFunction(anyLast)`. [#84428](https://github.com/ClickHouse/ClickHouse/pull/84428) ([Duc Canh Le](https://github.com/canhld94)). -* Реализует логику проталкивания дизъюнктивных предикатов JOIN. Пример: в TPC-H Q7 для условия над двумя таблицами n1 и n2 вида `(n1.n_name = 'FRANCE' AND n2.n_name = 'GERMANY') OR (n1.n_name = 'GERMANY' AND n2.n_name = 'FRANCE')` мы извлекаем отдельные частичные фильтры для каждой таблицы: `n1.n_name = 'FRANCE' OR n1.n_name = 'GERMANY'` для n1 и `n2.n_name = 'GERMANY' OR n2.n_name = 'FRANCE'` для n2. [#84735](https://github.com/ClickHouse/ClickHouse/pull/84735) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Повышает производительность операций `LIKE` с префиксом или суффиксом за счёт использования новой настройки по умолчанию `optimize_rewrite_like_perfect_affix`. [#85920](https://github.com/ClickHouse/ClickHouse/pull/85920) ([Guang Zhao](https://github.com/zheguang)). -* Исправлено снижение производительности, вызванное большим сериализованным ключом при группировке по нескольким строковым и числовым столбцам. Это продолжение [#83884](https://github.com/ClickHouse/ClickHouse/pull/83884). [#85924](https://github.com/ClickHouse/ClickHouse/pull/85924) ([李扬](https://github.com/taiyang-li)). -* Добавлена новая настройка `joined_block_split_single_row` для снижения потребления памяти при хеш-соединениях с большим числом совпадений на ключ. Она позволяет разбивать результаты хеш-соединения на блоки даже внутри множества совпадений для одной строки левой таблицы, что особенно полезно, когда одна строка из левой таблицы сопоставляется с тысячами или миллионами строк из правой таблицы. Ранее все совпадения должны были материализоваться в памяти одновременно. Это снижает пиковое потребление памяти, но может увеличить нагрузку на CPU. [#87913](https://github.com/ClickHouse/ClickHouse/pull/87913) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Улучшения SharedMutex (улучшена производительность при большом числе параллельных запросов). [#87491](https://github.com/ClickHouse/ClickHouse/pull/87491) ([Raúl Marín](https://github.com/Algunenano)). -* Улучшена производительность построения текстового индекса для документов, содержащих в основном редкие токены. [#87546](https://github.com/ClickHouse/ClickHouse/pull/87546) ([Anton Popov](https://github.com/CurtizJ)). -* Ускорена работа деструктора `Field` в типичном случае (повышена производительность при большом количестве небольших запросов). [#87631](https://github.com/ClickHouse/ClickHouse/pull/87631) ([Raúl Marín](https://github.com/Algunenano)). -* Пропуск перерасчёта статистики хеш-таблиц при оптимизации JOIN (повышает производительность всех запросов с JOIN). Добавлены новые профильные события `JoinOptimizeMicroseconds` и `QueryPlanOptimizeMicroseconds`. [#87683](https://github.com/ClickHouse/ClickHouse/pull/87683) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Включено сохранение меток в кэше и исключён прямой ввод-вывод (direct I/O) для ридера MergeTreeLazy. Это повышает производительность запросов с ORDER BY и небольшим LIMIT. [#87989](https://github.com/ClickHouse/ClickHouse/pull/87989) ([Nikita Taranov](https://github.com/nickitat)). -* Запрос SELECT с оператором `FINAL` по таблице `ReplacingMergeTree` с колонкой `is_deleted` теперь выполняется быстрее за счёт улучшенной параллелизации на базе двух существующих оптимизаций: 1. оптимизация `do_not_merge_across_partitions_select_final` для разделов (partitions) таблицы, которые содержат только одну часть (`part`); 2. разделение остальных выбранных диапазонов таблицы на пересекающиеся / непересекающиеся (intersecting / non-intersecting), при этом через преобразование финального слияния (FINAL) должны проходить только пересекающиеся диапазоны. [#88090](https://github.com/ClickHouse/ClickHouse/pull/88090) ([Shankar Iyer](https://github.com/shankar-iyer)). -* Уменьшено влияние неиспользования fail points (штатного пути выполнения кода, когда отладка не активна). [#88196](https://github.com/ClickHouse/ClickHouse/pull/88196) ([Raúl Marín](https://github.com/Algunenano)). -* Избегайте полного сканирования `system.tables` при фильтрации по `uuid` (может быть полезно, если у вас есть только UUID из логов или пути в ZooKeeper). [#88379](https://github.com/ClickHouse/ClickHouse/pull/88379) ([Azat Khuzhin](https://github.com/azat)). -* Улучшена производительность функций `tokens`, `hasAllTokens`, `hasAnyTokens`. [#88416](https://github.com/ClickHouse/ClickHouse/pull/88416) ([Anton Popov](https://github.com/CurtizJ)). -* Сделан inline `AddedColumns::appendFromBlock` для небольшого улучшения производительности JOIN в некоторых случаях. [#88455](https://github.com/ClickHouse/ClickHouse/pull/88455) ([Nikita Taranov](https://github.com/nickitat)). -* Автодополнение на стороне клиента работает быстрее и более последовательно при использовании `system.completions`, чем при выполнении нескольких запросов к системным таблицам. [#84694](https://github.com/ClickHouse/ClickHouse/pull/84694) ([|2ustam](https://github.com/RuS2m)). -* Добавлен новый параметр текстового индекса `dictionary_block_frontcoding_compression`, управляющий сжатием словаря. По умолчанию он включен и использует сжатие `front-coding`. [#87175](https://github.com/ClickHouse/ClickHouse/pull/87175) ([Elmi Ahmadov](https://github.com/ahmadov)). -* Объединяет данные из всех потоков перед вставкой в материализованные представления в зависимости от настроек `min_insert_block_size_rows_for_materialized_views` и `min_insert_block_size_bytes_for_materialized_views`. Ранее, если `parallel_view_processing` был включен, каждый поток, выполняющий вставку в конкретное материализованное представление, выполнял объединение данных при вставке независимо, что могло приводить к увеличению количества генерируемых частей. [#87280](https://github.com/ClickHouse/ClickHouse/pull/87280) ([Antonio Andelic](https://github.com/antonio2368)). -* Добавлена настройка `temporary_files_buffer_size` для управления размером буфера при записи временных файлов. * Оптимизировано потребление памяти операцией `scatter` (используется, например, в grace hash join) для столбцов типа `LowCardinality`. [#88237](https://github.com/ClickHouse/ClickHouse/pull/88237) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Добавлена поддержка прямого чтения из текстовых индексов при использовании параллельных реплик. Улучшена производительность чтения текстовых индексов из объектного хранилища. [#88262](https://github.com/ClickHouse/ClickHouse/pull/88262) ([Anton Popov](https://github.com/CurtizJ)). -* Запросы, использующие таблицы из каталогов Data Lakes, будут применять параллельные реплики для распределённой обработки. [#88273](https://github.com/ClickHouse/ClickHouse/pull/88273) ([scanhex12](https://github.com/scanhex12)). -* Внутренняя эвристика настройки алгоритма фоновых слияний с именем «to_remove_small_parts_at_right» теперь выполняется перед вычислением оценки диапазона слияния. Ранее селектор слияний выбирал широкое слияние, а затем отфильтровывал его суффикс. Исправления: [#85374](https://github.com/ClickHouse/ClickHouse/issues/85374). [#88736](https://github.com/ClickHouse/ClickHouse/pull/88736) ([Mikhail Artemenko](https://github.com/Michicosun)). - -#### Улучшения {#improvement} - -* Теперь функция `generateSerialID` поддерживает неконстантный аргумент с именем серии. Закрыта задача [#83750](https://github.com/ClickHouse/ClickHouse/issues/83750). [#88270](https://github.com/ClickHouse/ClickHouse/pull/88270) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Добавлен необязательный параметр `start_value` в функцию `generateSerialID` для задания пользовательских начальных значений для новых последовательностей. [#88085](https://github.com/ClickHouse/ClickHouse/pull/88085) ([Manuel](https://github.com/raimannma)). -* Добавлена опция `--semicolons_inline` в `clickhouse-format` для форматирования запросов так, чтобы точки с запятой ставились в конце последней строки, а не на новой строке. [#88018](https://github.com/ClickHouse/ClickHouse/pull/88018) ([Jan Rada](https://github.com/ZelvaMan)). -* Добавлена возможность настройки ограничения нагрузки на уровне сервера при переопределении конфигурации в Keeper. Закрывает [#73964](https://github.com/ClickHouse/ClickHouse/issues/73964). [#74066](https://github.com/ClickHouse/ClickHouse/pull/74066) ([JIaQi](https://github.com/JiaQiTang98)). -* `mannWhitneyUTest` больше не выбрасывает исключение, когда обе выборки содержат только идентичные значения. Теперь он возвращает корректный результат, соответствующий SciPy. Закрывает: [#79814](https://github.com/ClickHouse/ClickHouse/issues/79814). [#80009](https://github.com/ClickHouse/ClickHouse/pull/80009) ([DeanNeaht](https://github.com/DeanNeaht)). -* Транзакция переписывания для объектного хранилища диска удаляет предыдущие блобы в удалённом хранилище, если транзакция метаданных зафиксирована. [#81787](https://github.com/ClickHouse/ClickHouse/pull/81787) ([Sema Checherinda](https://github.com/CheSema)). -* Исправлен этап оптимизации для избыточного выражения сравнения на равенство, когда `LowCardinality` результирующего типа отличается до и после оптимизации. [#82651](https://github.com/ClickHouse/ClickHouse/pull/82651) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* Когда HTTP‑клиенты устанавливают заголовок `X-ClickHouse-100-Continue: defer` в дополнение к `Expect: 100-continue`, ClickHouse не отправляет клиенту ответ `100 Continue` до прохождения проверки квоты, что предотвращает лишний расход сетевой пропускной способности на передачу тел запросов, которые всё равно будут отброшены. Это актуально для запросов INSERT, где сам запрос может передаваться в строке запроса URL, а данные — в теле запроса. Прерывание запроса без отправки полного тела препятствует повторному использованию соединения по HTTP/1.1, но дополнительная задержка, связанная с установкой новых соединений, обычно несущественна по сравнению с общей длительностью выполнения INSERT при работе с большими объёмами данных. [#84304](https://github.com/ClickHouse/ClickHouse/pull/84304) ([c-end](https://github.com/c-end)). -* Маскировать учетные данные S3 в журналах при использовании DATABASE ENGINE = Backup с хранилищем S3. [#85336](https://github.com/ClickHouse/ClickHouse/pull/85336) ([Kenny Sun](https://github.com/hwabis)). -* Сделать оптимизации плана запроса видимыми для входного подплана коррелированного подзапроса за счёт отсрочки его материализации. Часть [#79890](https://github.com/ClickHouse/ClickHouse/issues/79890). [#85455](https://github.com/ClickHouse/ClickHouse/pull/85455) ([Dmitry Novik](https://github.com/novikd)). -* Изменение для SYSTEM DROP DATABASE REPLICA: - When dropping with database or drop the whole replica: it also drops replica for each table of the database - If 'WITH TABLES' is provided, drop replica for each storage - Otherwise, the logic is unchanged, only drop replica on the databases - When dropping a database replica with the keeper path: - If 'WITH TABLES' is provided: - Restore the database as Atomic - Restore RMT tables from statement in Keeper - Drop the database (restored tables are also dropped) - Otherwise, only drop replica on the provided keeper path. [#85637](https://github.com/ClickHouse/ClickHouse/pull/85637) ([Tuan Pham Anh](https://github.com/tuanpach)). -* Исправлено непоследовательное форматирование TTL, когда в нём используется функция `materialize`. Закрывает [#82828](https://github.com/ClickHouse/ClickHouse/issues/82828). [#85749](https://github.com/ClickHouse/ClickHouse/pull/85749) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Состояние таблицы Iceberg больше не хранится в объекте хранилища. Это должно позволить использовать Iceberg в ClickHouse с конкурентными запросами. [#86062](https://github.com/ClickHouse/ClickHouse/pull/86062) ([Daniil Ivanik](https://github.com/divanik)). -* Сделать блокировку бакета в упорядоченном режиме S3Queue постоянной, аналогично обрабатывающим узлам при `use_persistent_processing_nodes = 1`. Добавить инъекцию отказов Keeper в тестах. [#86628](https://github.com/ClickHouse/ClickHouse/pull/86628) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Выводить подсказки при опечатках в названии формата. Закрывает [#86761](https://github.com/ClickHouse/ClickHouse/issues/86761). [#87092](https://github.com/ClickHouse/ClickHouse/pull/87092) ([flynn](https://github.com/ucasfl)). -* Удалённые реплики будут пропускать анализ индексов, если нет проекций. [#87096](https://github.com/ClickHouse/ClickHouse/pull/87096) ([zoomxi](https://github.com/zoomxi)). -* Добавлена возможность отключать кодировку UTF-8 для таблицы ytsaurus. [#87150](https://github.com/ClickHouse/ClickHouse/pull/87150) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). -* Отключить параметр `s3_slow_all_threads_after_retryable_error` по умолчанию. [#87198](https://github.com/ClickHouse/ClickHouse/pull/87198) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* Переименована табличная функция `arrowflight` в `arrowFlight`. [#87249](https://github.com/ClickHouse/ClickHouse/pull/87249) ([Vitaly Baranov](https://github.com/vitlibar)). -* Обновлён `clickhouse-benchmark`, чтобы принимать `-` вместо `_` в своих CLI-флагах. [#87251](https://github.com/ClickHouse/ClickHouse/pull/87251) ([Ahmed Gouda](https://github.com/0xgouda)). -* Сделан синхронным сброс в `system.crash_log` при обработке сигналов. [#87253](https://github.com/ClickHouse/ClickHouse/pull/87253) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* Добавлена настройка `inject_random_order_for_select_without_order_by`, которая автоматически добавляет `ORDER BY rand()` в запросы `SELECT` на верхнем уровне без предложения `ORDER BY`. [#87261](https://github.com/ClickHouse/ClickHouse/pull/87261) ([Rui Zhang](https://github.com/zhangruiddn)). -* Улучшено сообщение об ошибке в `joinGet`, чтобы оно корректно указывало, что количество `join_keys` не совпадает с количеством `right_table_keys`. [#87279](https://github.com/ClickHouse/ClickHouse/pull/87279) ([Isak Ellmer](https://github.com/spinojara)). -* Добавлена возможность проверять статистику произвольного узла Keeper во время транзакции записи. Это может помочь в обнаружении проблемы типа ABA. [#87282](https://github.com/ClickHouse/ClickHouse/pull/87282) ([Mikhail Artemenko](https://github.com/Michicosun)). -* Перенаправлять ресурсоёмкие запросы ytsaurus на тяжёлые прокси. [#87342](https://github.com/ClickHouse/ClickHouse/pull/87342) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). -* Исправлены откаты операций unlink/rename/removeRecursive/removeDirectory и т. п., а также подсчёт количества жёстких ссылок при любых вариантах нагрузки на метаданные в дисковых транзакциях, и упрощены интерфейсы, сделав их более универсальными, чтобы их можно было повторно использовать в других хранилищах метаданных. [#87358](https://github.com/ClickHouse/ClickHouse/pull/87358) ([Mikhail Artemenko](https://github.com/Michicosun)). -* Добавлен параметр конфигурации `keeper_server.tcp_nodelay`, который позволяет отключить `TCP_NODELAY` для Keeper. [#87363](https://github.com/ClickHouse/ClickHouse/pull/87363) (Copilot). -* Добавлена поддержка `--connection` в `clickhouse-benchmarks`. Он работает так же, как в `clickhouse-client`: вы можете указать предопределённые подключения в клиентском `config.xml`/`config.yaml` в разделе `connections_credentials`, чтобы не указывать явно пользователя и пароль через аргументы командной строки. Добавлена поддержка `--accept-invalid-certificate` в `clickhouse-benchmark`. [#87370](https://github.com/ClickHouse/ClickHouse/pull/87370) ([Azat Khuzhin](https://github.com/azat)). -* Теперь параметр `max_insert_threads` будет применяться и к таблицам Iceberg. [#87407](https://github.com/ClickHouse/ClickHouse/pull/87407) ([alesapin](https://github.com/alesapin)). -* Добавлены гистограммы и метрики с измерениями в `PrometheusMetricsWriter`. Таким образом, обработчик `PrometheusRequestHandler` будет обладать всеми необходимыми метриками и сможет использоваться для надежного сбора метрик в облаке с низкими накладными расходами. [#87521](https://github.com/ClickHouse/ClickHouse/pull/87521) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* Функция `hasToken` теперь возвращает 0 совпадений для пустого токена (тогда как раньше в этом случае генерировалось исключение). [#87564](https://github.com/ClickHouse/ClickHouse/pull/87564) ([Jimmy Aguilar Mena](https://github.com/Ergus)). -* Добавлена поддержка текстовых индексов для значений `Array` и `Map` (`mapKeys` и `mapValues`). Теперь поддерживаются функции `mapContainsKey` и `has`. [#87602](https://github.com/ClickHouse/ClickHouse/pull/87602) ([Elmi Ahmadov](https://github.com/ahmadov)). -* Добавлена новая метрика `ZooKeeperSessionExpired`, показывающая число истекших глобальных сессий ZooKeeper. [#87613](https://github.com/ClickHouse/ClickHouse/pull/87613) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* Используйте клиент хранилища S3 с настройками, специфичными для резервного копирования (например, backup_slow_all_threads_after_retryable_s3_error), для серверного (нативного) копирования в целевое размещение резервной копии. Настройка s3_slow_all_threads_after_retryable_error объявлена устаревшей. [#87660](https://github.com/ClickHouse/ClickHouse/pull/87660) ([Julia Kartseva](https://github.com/jkartseva)). -* Исправлена некорректная обработка настроек `max_joined_block_size_rows` и `max_joined_block_size_bytes` при сериализации плана запроса с экспериментальной настройкой `make_distributed_plan`. [#87675](https://github.com/ClickHouse/ClickHouse/pull/87675) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Настройка `enable_http_compression` теперь включена по умолчанию. Это означает, что если клиент поддерживает HTTP‑сжатие, сервер будет его использовать. Однако у этого изменения есть определённые недостатки. Клиент может запросить «тяжёлый» метод сжатия, такой как `bzip2`, что нецелесообразно и приведёт к увеличению потребления ресурсов сервера (но это будет заметно только при передаче больших результатов). Клиент может запросить `gzip`, что не так уж плохо, но неоптимально по сравнению с `zstd`. Закрывает [#71591](https://github.com/ClickHouse/ClickHouse/issues/71591). [#87703](https://github.com/ClickHouse/ClickHouse/pull/87703) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* В таблицу `system.server_settings` добавлен новый параметр `keeper_hosts`, который содержит список хостов [Zoo]Keeper, к которым ClickHouse может подключаться. [#87718](https://github.com/ClickHouse/ClickHouse/pull/87718) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* Добавлены значения `from` и `to` в системные дашборды для упрощения анализа исторических данных. [#87823](https://github.com/ClickHouse/ClickHouse/pull/87823) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). -* Добавлена дополнительная информация для мониторинга производительности в запросах Iceberg SELECT. [#87903](https://github.com/ClickHouse/ClickHouse/pull/87903) ([Daniil Ivanik](https://github.com/divanik)). -* Улучшение файлового кэша: повторное использование итератора приоритета кэша между потоками, одновременно резервирующими место в кэше. [#87914](https://github.com/ClickHouse/ClickHouse/pull/87914) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Добавлена возможность ограничивать размер запросов для `Keeper` (настройка `max_request_size`, аналогична `jute.maxbuffer` для `ZooKeeper`, по умолчанию отключена для сохранения обратной совместимости, будет включена в следующих релизах). [#87952](https://github.com/ClickHouse/ClickHouse/pull/87952) ([Azat Khuzhin](https://github.com/azat)). -* Изменить `clickhouse-benchmark`, чтобы по умолчанию он не добавлял трассировки стека в сообщения об ошибках. [#87954](https://github.com/ClickHouse/ClickHouse/pull/87954) ([Ahmed Gouda](https://github.com/0xgouda)). -* Избегайте использования асинхронной загрузки меток через пул потоков (`load_marks_asynchronously=1`), когда метки находятся в кэше (поскольку пул может быть перегружен, и запросы понесут накладные расходы даже в случае, если метки уже есть в кэше). [#87967](https://github.com/ClickHouse/ClickHouse/pull/87967) ([Azat Khuzhin](https://github.com/azat)). -* Ytsaurus: добавлена возможность создавать таблицы/табличные функции/словари с подмножеством столбцов. [#87982](https://github.com/ClickHouse/ClickHouse/pull/87982) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). -* Теперь таблица `system.zookeeper_connection_log` включена по умолчанию, и её можно использовать для получения информации о сессиях Keeper. [#88011](https://github.com/ClickHouse/ClickHouse/pull/88011) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* Согласовать поведение TCP и HTTP при передаче дублирующихся внешних таблиц. HTTP позволяет передавать временную таблицу несколько раз. [#88032](https://github.com/ClickHouse/ClickHouse/pull/88032) ([Sema Checherinda](https://github.com/CheSema)). -* Удалены пользовательские MemoryPools для чтения Arrow/ORC/Parquet. Этот компонент, по-видимому, стал ненужен после [#84082](https://github.com/ClickHouse/ClickHouse/pull/84082), так как теперь мы в любом случае отслеживаем все выделения памяти. [#88035](https://github.com/ClickHouse/ClickHouse/pull/88035) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* Добавлена возможность создавать базу данных `Replicated` без аргументов. [#88044](https://github.com/ClickHouse/ClickHouse/pull/88044) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* `clickhouse-keeper-client`: Добавлена поддержка подключения к TLS-порту clickhouse-keeper, имена флагов оставлены такими же, как в clickhouse-client. [#88065](https://github.com/ClickHouse/ClickHouse/pull/88065) ([Pradeep Chhetri](https://github.com/chhetripradeep)). -* Добавлено новое событие профилирования для отслеживания количества отказов в выполнении фонового слияния из-за превышения лимита памяти. [#88084](https://github.com/ClickHouse/ClickHouse/pull/88084) ([Grant Holly](https://github.com/grantholly-clickhouse)). -* Включает анализатор для проверки выражений значений по умолчанию столбцов в операторах CREATE/ALTER TABLE. [#88087](https://github.com/ClickHouse/ClickHouse/pull/88087) ([Max Justus Spransy](https://github.com/maxjustus)). -* Внутреннее улучшение планировщика запросов: использование JoinStepLogical для `CROSS JOIN`. [#88151](https://github.com/ClickHouse/ClickHouse/pull/88151) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Добавлены псевдонимы для функций `hasAnyTokens` (`hasAnyToken`) и `hasAllTokens` (`hasAllToken`). [#88162](https://github.com/ClickHouse/ClickHouse/pull/88162) ([George Larionov](https://github.com/george-larionov)). -* Включен глобальный профилировщик с выборочным отслеживанием (то есть он работает даже для серверных потоков, не связанных с запросами) по умолчанию: он собирает трассировки стека всех потоков каждые 10 секунд процессорного и реального времени. [#88209](https://github.com/ClickHouse/ClickHouse/pull/88209) ([Alexander Tokmakov](https://github.com/tavplubix)). -* Обновлён Azure SDK, чтобы включить исправление для `Content-Length`, затрагивающее операции копирования и создания контейнеров. [#88278](https://github.com/ClickHouse/ClickHouse/pull/88278) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). -* Сделана функция `lag` нечувствительной к регистру для совместимости с MySQL. [#88322](https://github.com/ClickHouse/ClickHouse/pull/88322) ([Lonny Kapelushnik](https://github.com/lonnylot)). -* Разрешен запуск `clickhouse-local` из директории `clickhouse-server`. В предыдущих версиях это приводило к ошибке `Cannot parse UUID: .` Теперь можно запускать `clickhouse-local` и работать с базами данных сервера без запуска самого сервера. [#88383](https://github.com/ClickHouse/ClickHouse/pull/88383) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Добавлен конфигурационный параметр `keeper_server.coordination_settings.check_node_acl_on_remove`. Если он включён, перед каждым удалением узла будут проверяться ACL как самого узла, так и родительского узла. В противном случае будет проверяться только ACL родительского узла. [#88513](https://github.com/ClickHouse/ClickHouse/pull/88513) ([Antonio Andelic](https://github.com/antonio2368)). -* Столбцы `JSON` теперь выводятся в удобочитаемом виде при использовании формата `Vertical`. Закрывает [#81794](https://github.com/ClickHouse/ClickHouse/issues/81794). [#88524](https://github.com/ClickHouse/ClickHouse/pull/88524) ([Frank Rosner](https://github.com/FRosner)). -* Хранить файлы `clickhouse-client` (например, историю запросов) в расположениях, определённых спецификацией [XDG Base Directories](https://specifications.freedesktop.org/basedir-spec/latest/index.html), вместо корня домашнего каталога. `~/.clickhouse-client-history` по‑прежнему будет использоваться, если этот файл уже существует. [#88538](https://github.com/ClickHouse/ClickHouse/pull/88538) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Исправлена утечка памяти, обусловленная оператором `GLOBAL IN` ([https://github.com/ClickHouse/ClickHouse/issues/88615](https://github.com/ClickHouse/ClickHouse/issues/88615)). [#88617](https://github.com/ClickHouse/ClickHouse/pull/88617) ([pranavmehta94](https://github.com/pranavmehta94)). -* Добавлена перегрузка функций hasAny/hasAllTokens, принимающая строковый аргумент. [#88679](https://github.com/ClickHouse/ClickHouse/pull/88679) ([George Larionov](https://github.com/george-larionov)). -* Добавлен шаг в postinstall-скрипт для `clickhouse-keeper`, который включает его автозапуск при загрузке системы. [#88746](https://github.com/ClickHouse/ClickHouse/pull/88746) ([YenchangChan](https://github.com/YenchangChan)). -* Проверка учетных данных в веб-интерфейсе теперь выполняется только при вставке, а не при каждом нажатии клавиши. Это позволяет избежать проблем с некорректно настроенными LDAP-серверами. Исправляет [#85777](https://github.com/ClickHouse/ClickHouse/issues/85777). [#88769](https://github.com/ClickHouse/ClickHouse/pull/88769) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Ограничена длина сообщения об исключении при нарушении ограничения. В предыдущих версиях при вставке слишком длинной строки вы могли получить очень длинное сообщение об исключении, которое в итоге записывалось в `query_log`. Закрывает [#87032](https://github.com/ClickHouse/ClickHouse/issues/87032). [#88801](https://github.com/ClickHouse/ClickHouse/pull/88801) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Исправлено получение структуры набора данных от сервера ArrowFlight при создании таблицы. [#87542](https://github.com/ClickHouse/ClickHouse/pull/87542) ([Vitaly Baranov](https://github.com/vitlibar)). - -#### Исправление ошибки (некорректное поведение, заметное пользователям, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* Исправлена ошибка в GeoParquet, приводившая к ошибкам клиентского протокола. [#84020](https://github.com/ClickHouse/ClickHouse/pull/84020) ([Michael Kolupaev](https://github.com/al13n321)). -* Исправлено вычисление зависящих от хоста функций, таких как shardNum(), в подзапросах на инициирующем узле. [#84409](https://github.com/ClickHouse/ClickHouse/pull/84409) ([Eduard Karacharov](https://github.com/korowa)). -* Исправлена некорректная обработка дат до эпохи Unix с дробными секундами в различных функциях, связанных с датой и временем, таких как `parseDateTime64BestEffort`, `change{Year,Month,Day}` и `makeDateTime64`. Ранее дробная часть секунд вычиталась из целых секунд, а не прибавлялась к ним. Например, `parseDateTime64BestEffort('1969-01-01 00:00:00.468')` возвращала `1968-12-31 23:59:59.532` вместо `1969-01-01 00:00:00.468`. [#85396](https://github.com/ClickHouse/ClickHouse/pull/85396) ([xiaohuanlin](https://github.com/xiaohuanlin)). -* Исправлена ошибка, из-за которой команды `ALTER COLUMN IF EXISTS` завершались сбоем при изменении состояния столбца в рамках одного и того же запроса `ALTER`. Теперь команды `DROP COLUMN IF EXISTS`, `MODIFY COLUMN IF EXISTS`, `COMMENT COLUMN IF EXISTS` и `RENAME COLUMN IF EXISTS` корректно обрабатывают случаи, когда столбец был удалён предыдущей командой в том же запросе. [#86046](https://github.com/ClickHouse/ClickHouse/pull/86046) ([xiaohuanlin](https://github.com/xiaohuanlin)). -* Исправлен вывод типов Date/DateTime/DateTime64 для дат, выходящих за поддерживаемый диапазон. [#86184](https://github.com/ClickHouse/ClickHouse/pull/86184) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена ошибка, из-за которой некоторые корректные данные, отправленные пользователем в столбец `AggregateFunction(quantileDD)`, могли приводить к бесконечной рекурсии при выполнении слияний. [#86560](https://github.com/ClickHouse/ClickHouse/pull/86560) ([Raphaël Thériault](https://github.com/raphael-theriault-swi)). -* Добавлена поддержка типов JSON/Dynamic в таблицах, создаваемых табличной функцией `cluster`. [#86821](https://github.com/ClickHouse/ClickHouse/pull/86821) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена проблема, из-за которой результат функции, вычисляемой в CTE, оказывался недетерминированным в запросе. [#86967](https://github.com/ClickHouse/ClickHouse/pull/86967) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* Исправлена ошибка LOGICAL_ERROR в EXPLAIN при использовании pointInPolygon для столбцов первичного ключа. [#86971](https://github.com/ClickHouse/ClickHouse/pull/86971) ([Michael Kolupaev](https://github.com/al13n321)). -* Исправлены таблицы озера данных с процентно-кодированной последовательностью в имени. Закрывает [#86626](https://github.com/ClickHouse/ClickHouse/issues/86626). [#87020](https://github.com/ClickHouse/ClickHouse/pull/87020) ([Anton Ivashkin](https://github.com/ianton-ru)). -* Исправлено некорректное поведение `IS NULL` для столбцов, допускающих NULL, в `OUTER JOIN` при включённой настройке `optimize_functions_to_subcolumns`, закрыта задача [#78625](https://github.com/ClickHouse/ClickHouse/issues/78625). [#87058](https://github.com/ClickHouse/ClickHouse/pull/87058) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Исправлен некорректный учет освобождения временных данных при отслеживании лимита `max_temporary_data_on_disk_size`, закрывает [#87118](https://github.com/ClickHouse/ClickHouse/issues/87118). [#87140](https://github.com/ClickHouse/ClickHouse/pull/87140) ([JIaQi](https://github.com/JiaQiTang98)). -* Функция checkHeaders теперь корректно проверяет переданные заголовки и отклоняет недопустимые заголовки. Автор исходной реализации: Michael Anastasakis (@michael-anastasakis). [#87172](https://github.com/ClickHouse/ClickHouse/pull/87172) ([Raúl Marín](https://github.com/Algunenano)). -* Унифицирует поведение функций `toDate` и `toDate32` для всех числовых типов. Исправляет проверку на выход за нижнюю границу диапазона (underflow) для Date32 при приведении из int16. [#87176](https://github.com/ClickHouse/ClickHouse/pull/87176) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* Исправлена логическая ошибка в работе параллельных реплик для запросов с несколькими операциями JOIN, в частности — с RIGHT JOIN, идущим после LEFT/INNER JOIN. [#87178](https://github.com/ClickHouse/ClickHouse/pull/87178) ([Igor Nikonov](https://github.com/devcrafter)). -* Учитывать настройку `input_format_try_infer_variants` в кэше определения схемы. [#87180](https://github.com/ClickHouse/ClickHouse/pull/87180) ([Pavel Kruglov](https://github.com/Avogar)). -* Сделать так, чтобы pathStartsWith сопоставлял только пути, начинающиеся с указанного префикса. [#87181](https://github.com/ClickHouse/ClickHouse/pull/87181) ([Raúl Marín](https://github.com/Algunenano)). -* Исправлены логические ошибки в виртуальном столбце `_row_number` и в позиционных удалениях Iceberg. [#87220](https://github.com/ClickHouse/ClickHouse/pull/87220) ([Michael Kolupaev](https://github.com/al13n321)). -* Исправлена ошибка `LOGICAL_ERROR` «Too large size passed to allocator» в `JOIN`, возникавшая из-за смешения константных и неконстантных блоков. [#87231](https://github.com/ClickHouse/ClickHouse/pull/87231) ([Azat Khuzhin](https://github.com/azat)). -* Исправлены легковесные обновления с подзапросами, читающими из других таблиц `MergeTree`. [#87285](https://github.com/ClickHouse/ClickHouse/pull/87285) ([Anton Popov](https://github.com/CurtizJ)). -* Исправлена оптимизация move-to-prewhere, которая не работала при наличии политики строк (row policy). Продолжение [#85118](https://github.com/ClickHouse/ClickHouse/issues/85118). Закрывает [#69777](https://github.com/ClickHouse/ClickHouse/issues/69777). Закрывает [#83748](https://github.com/ClickHouse/ClickHouse/issues/83748). [#87303](https://github.com/ClickHouse/ClickHouse/pull/87303) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Исправлено применение патчей к отсутствующим в частях данных столбцам с выражением по умолчанию. [#87347](https://github.com/ClickHouse/ClickHouse/pull/87347) ([Anton Popov](https://github.com/CurtizJ)). -* Исправлена ошибка сегментации при использовании дублирующихся имён полей партиционирования в таблицах MergeTree. [#87365](https://github.com/ClickHouse/ClickHouse/pull/87365) ([xiaohuanlin](https://github.com/xiaohuanlin)). -* Исправлена проблема с обновлением EmbeddedRocksDB. [#87392](https://github.com/ClickHouse/ClickHouse/pull/87392) ([Raúl Marín](https://github.com/Algunenano)). -* Исправлено прямое чтение текстового индекса в объектном хранилище. [#87399](https://github.com/ClickHouse/ClickHouse/pull/87399) ([Anton Popov](https://github.com/CurtizJ)). -* Предотвращено создание привилегий для несуществующего движка. [#87419](https://github.com/ClickHouse/ClickHouse/pull/87419) ([Jitendra](https://github.com/jitendra1411)). -* Игнорировать только ошибки «not found» для `s3_plain_rewritable` (что может приводить к различным проблемам). [#87426](https://github.com/ClickHouse/ClickHouse/pull/87426) ([Azat Khuzhin](https://github.com/azat)). -* Исправлены словари с источником данных YTSaurus и макетами *range_hashed. [#87490](https://github.com/ClickHouse/ClickHouse/pull/87490) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). -* Исправлена ошибка при создании массива пустых кортежей. [#87520](https://github.com/ClickHouse/ClickHouse/pull/87520) ([Pavel Kruglov](https://github.com/Avogar)). -* Проверка недопустимых столбцов при создании временной таблицы. [#87524](https://github.com/ClickHouse/ClickHouse/pull/87524) ([Pavel Kruglov](https://github.com/Avogar)). -* Никогда не помещайте столбцы партиционирования Hive в заголовок формата. Исправляет [#87515](https://github.com/ClickHouse/ClickHouse/issues/87515). [#87528](https://github.com/ClickHouse/ClickHouse/pull/87528) ([Arthur Passos](https://github.com/arthurpassos)). -* Исправлена подготовка чтения из формата в DeltaLake при работе с текстовым форматом. [#87529](https://github.com/ClickHouse/ClickHouse/pull/87529) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена проверка прав доступа при выполнении `SELECT` и `INSERT` для таблиц типа `Buffer`. [#87545](https://github.com/ClickHouse/ClickHouse/pull/87545) ([pufit](https://github.com/pufit)). -* Запрещено создание индекса пропуска данных для таблицы S3. [#87554](https://github.com/ClickHouse/ClickHouse/pull/87554) ([Bharat Nallan](https://github.com/bharatnc)). -* Предотвращена утечка отслеживаемой памяти при асинхронном логировании (за 10 часов мог накапливаться значительный дрейф, до ~100GiB) и в text_log (аналогичный дрейф также был возможен). [#87584](https://github.com/ClickHouse/ClickHouse/pull/87584) ([Azat Khuzhin](https://github.com/azat)). -* Исправлена ошибка, которая могла приводить к перезаписи глобальных настроек сервера настройками `SELECT` представления или материализованного представления, если это представление было удалено асинхронно, а сервер был перезапущен до завершения фоновой очистки. [#87603](https://github.com/ClickHouse/ClickHouse/pull/87603) ([Alexander Tokmakov](https://github.com/tavplubix)). -* Исключить байты кэша страниц в пространстве пользователя (если возможно) при вычислении предупреждения о перегрузке памяти. [#87610](https://github.com/ClickHouse/ClickHouse/pull/87610) ([Bharat Nallan](https://github.com/bharatnc)). -* Исправлена ошибка, из-за которой при десериализации CSV неверный порядок типов приводил к `LOGICAL_ERROR`. [#87622](https://github.com/ClickHouse/ClickHouse/pull/87622) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Исправлена некорректная обработка `command_read_timeout` для исполняемых словарей. [#87627](https://github.com/ClickHouse/ClickHouse/pull/87627) ([Azat Khuzhin](https://github.com/azat)). -* Исправлено некорректное поведение `SELECT * REPLACE` в условии `WHERE` при использовании нового анализатора для фильтрации по заменённым столбцам. [#87630](https://github.com/ClickHouse/ClickHouse/pull/87630) ([xiaohuanlin](https://github.com/xiaohuanlin)). -* Исправлена работа двухуровневой агрегации при использовании `Merge` поверх `Distributed`. [#87687](https://github.com/ClickHouse/ClickHouse/pull/87687) ([c-end](https://github.com/c-end)). -* Исправлена генерация выходного блока в алгоритме HashJoin, когда список строк правой таблицы не используется. Исправляет проблему [#87401](https://github.com/ClickHouse/ClickHouse/issues/87401). [#87699](https://github.com/ClickHouse/ClickHouse/pull/87699) ([Dmitry Novik](https://github.com/novikd)). -* Режим чтения с параллельными репликами мог быть выбран неверно, если после анализа индексов не оставалось данных для чтения. Закрывает [#87653](https://github.com/ClickHouse/ClickHouse/issues/87653). [#87700](https://github.com/ClickHouse/ClickHouse/pull/87700) ([zoomxi](https://github.com/zoomxi)). -* Исправлена обработка столбцов `timestamp` / `timestamptz` в Glue. [#87733](https://github.com/ClickHouse/ClickHouse/pull/87733) ([Andrey Zvonov](https://github.com/zvonand)). -* Закрывает [#86587](https://github.com/ClickHouse/ClickHouse/issues/86587). [#87761](https://github.com/ClickHouse/ClickHouse/pull/87761) ([scanhex12](https://github.com/scanhex12)). -* Исправлена запись булевых значений через интерфейс PostgreSQL. [#87762](https://github.com/ClickHouse/ClickHouse/pull/87762) ([Artem Yurov](https://github.com/ArtemYurov)). -* Исправлена ошибка «Unknown table» в запросе `INSERT SELECT` с CTE, [#85368](https://github.com/ClickHouse/ClickHouse/issues/85368). [#87789](https://github.com/ClickHouse/ClickHouse/pull/87789) ([Guang Zhao](https://github.com/zheguang)). -* Исправлено чтение подстолбца Map со значением NULL из Variants, которые не могут быть Nullable. [#87798](https://github.com/ClickHouse/ClickHouse/pull/87798) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена обработка ошибки при неудачной попытке полного удаления базы данных в кластере на вторичном узле. [#87802](https://github.com/ClickHouse/ClickHouse/pull/87802) ([Tuan Pham Anh](https://github.com/tuanpach)). -* Исправлено несколько ошибок в индексах пропуска. [#87817](https://github.com/ClickHouse/ClickHouse/pull/87817) ([Raúl Marín](https://github.com/Algunenano)). -* В AzureBlobStorage обновлено поведение: сначала выполняется попытка нативного копирования, а при ошибке 'Unauthroized' выполняются чтение и запись (в AzureBlobStorage, если для источника и назначения используются разные учетные записи хранилища, возникает ошибка 'Unauthorized'). Также исправлено применение параметра "use_native_copy" при заданном endpoint в конфигурации. [#87826](https://github.com/ClickHouse/ClickHouse/pull/87826) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). -* ClickHouse аварийно завершает работу, если в файле ArrowStream используется неуникальный словарь. [#87863](https://github.com/ClickHouse/ClickHouse/pull/87863) ([Ilya Golshtein](https://github.com/ilejn)). -* Исправлена фатальная ошибка при использовании approx_top_k и finalizeAggregation. [#87892](https://github.com/ClickHouse/ClickHouse/pull/87892) ([Jitendra](https://github.com/jitendra1411)). -* Исправлено слияние с проекциями при пустом последнем блоке. [#87928](https://github.com/ClickHouse/ClickHouse/pull/87928) ([Raúl Marín](https://github.com/Algunenano)). -* Не удалять инъективные функции из GROUP BY, если типы их аргументов не могут использоваться в GROUP BY. [#87958](https://github.com/ClickHouse/ClickHouse/pull/87958) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлено некорректное исключение гранул/партиций для datetime-ключей при использовании параметра `session_timezone` в запросах. [#87987](https://github.com/ClickHouse/ClickHouse/pull/87987) ([Eduard Karacharov](https://github.com/korowa)). -* Возвращает количество затронутых строк после выполнения запроса в интерфейсе PostgreSQL. [#87990](https://github.com/ClickHouse/ClickHouse/pull/87990) ([Artem Yurov](https://github.com/ArtemYurov)). -* Ограничивает использование проталкивания фильтров (filter pushdown) для PASTE JOIN, так как это может привести к некорректным результатам. [#88078](https://github.com/ClickHouse/ClickHouse/pull/88078) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Применяет нормализацию URI перед выполнением проверки прав доступа, добавленной в [https://github.com/ClickHouse/ClickHouse/pull/84503](https://github.com/ClickHouse/ClickHouse/pull/84503). [#88089](https://github.com/ClickHouse/ClickHouse/pull/88089) ([pufit](https://github.com/pufit)). -* Исправлена логическая ошибка, возникавшая, когда `ARRAY JOIN COLUMNS()` не находил ни одного столбца в новом анализаторе. [#88091](https://github.com/ClickHouse/ClickHouse/pull/88091) ([xiaohuanlin](https://github.com/xiaohuanlin)). -* Исправлено предупреждение «Высокое использование памяти ClickHouse» (исключая кэш страниц). [#88092](https://github.com/ClickHouse/ClickHouse/pull/88092) ([Azat Khuzhin](https://github.com/azat)). -* Исправлено возможное повреждение данных в таблицах `MergeTree` с установленным для столбца `TTL`. [#88095](https://github.com/ClickHouse/ClickHouse/pull/88095) ([Anton Popov](https://github.com/CurtizJ)). -* Исправлено возможное необработанное исключение при чтении из `system.tables` при наличии некорректных таблиц во внешних базах данных (`PostgreSQL`/`SQLite`/...), подключённых к системе. [#88105](https://github.com/ClickHouse/ClickHouse/pull/88105) ([Azat Khuzhin](https://github.com/azat)). -* Исправлен сбой в функциях `mortonEncode` и `hilbertEncode` при вызове с пустым кортежем в качестве аргумента. [#88110](https://github.com/ClickHouse/ClickHouse/pull/88110) ([xiaohuanlin](https://github.com/xiaohuanlin)). -* Теперь запросы с `ON CLUSTER` будут выполняться быстрее при наличии неактивных реплик в кластере. [#88153](https://github.com/ClickHouse/ClickHouse/pull/88153) ([alesapin](https://github.com/alesapin)). -* Теперь DDL-воркер очищает набор реплик от устаревших хостов. Это уменьшает объём хранимых метаданных в ZooKeeper. [#88154](https://github.com/ClickHouse/ClickHouse/pull/88154) ([alesapin](https://github.com/alesapin)). -* Исправлена проблема с запуском ClickHouse без cgroups (случайно использование cgroups стало обязательным условием для асинхронных метрик). [#88164](https://github.com/ClickHouse/ClickHouse/pull/88164) ([Azat Khuzhin](https://github.com/azat)). -* Выполнять корректный откат операции перемещения каталога в случае ошибки. Необходимо перезаписывать все объекты `prefix.path`, изменённые в ходе выполнения, а не только корневой. [#88198](https://github.com/ClickHouse/ClickHouse/pull/88198) ([Mikhail Artemenko](https://github.com/Michicosun)). -* Исправлено распространение флага `is_shared` в `ColumnLowCardinality`. Это могло приводить к некорректному результату операции GROUP BY, если в столбец вставлялось новое значение после того, как хеш-значения уже были предварительно вычислены и закэшированы в `ReverseIndex`. [#88213](https://github.com/ClickHouse/ClickHouse/pull/88213) ([Nikita Taranov](https://github.com/nickitat)). -* Исправлена настройка рабочей нагрузки `max_cpu_share`. Теперь её можно использовать без указания настройки рабочей нагрузки `max_cpus`. [#88217](https://github.com/ClickHouse/ClickHouse/pull/88217) ([Neerav](https://github.com/neeravsalaria)). -* Исправлена ошибка, из-за которой очень ресурсоёмкие мутации с подзапросами могли застревать на стадии подготовки. Теперь такие мутации можно остановить командой `SYSTEM STOP MERGES`. [#88241](https://github.com/ClickHouse/ClickHouse/pull/88241) ([alesapin](https://github.com/alesapin)). -* Теперь коррелированные подзапросы будут работать с объектными хранилищами. [#88290](https://github.com/ClickHouse/ClickHouse/pull/88290) ([alesapin](https://github.com/alesapin)). -* Не выполняйте инициализацию баз данных DataLake во время доступа к `system.projections` и `system.data_skipping_indices`. [#88330](https://github.com/ClickHouse/ClickHouse/pull/88330) ([Azat Khuzhin](https://github.com/azat)). -* Теперь каталоги data lake будут отображаться в системных таблицах интроспекции только при явном включении параметра `show_data_lake_catalogs_in_system_tables`. [#88341](https://github.com/ClickHouse/ClickHouse/pull/88341) ([alesapin](https://github.com/alesapin)). -* Скорректирована работа DatabaseReplicated с учётом конфигурации `interserver_http_host`. [#88378](https://github.com/ClickHouse/ClickHouse/pull/88378) ([xiaohuanlin](https://github.com/xiaohuanlin)). -* Позиционные аргументы теперь явно запрещены в контексте определения проекций, поскольку они не имеют смысла на этом внутреннем этапе обработки запроса. Это исправляет [#48604](https://github.com/ClickHouse/ClickHouse/issues/48604). [#88380](https://github.com/ClickHouse/ClickHouse/pull/88380) ([Amos Bird](https://github.com/amosbird)). -* Исправлена квадратичная сложность функции `countMatches`. Закрывает [#88400](https://github.com/ClickHouse/ClickHouse/issues/88400). [#88401](https://github.com/ClickHouse/ClickHouse/pull/88401) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Команды `ALTER COLUMN ... COMMENT` для таблиц KeeperMap сделаны реплицируемыми, чтобы они фиксировались в метаданных реплицируемой базы данных и распространялись на все её реплики. Закрывает [#88077](https://github.com/ClickHouse/ClickHouse/issues/88077). [#88408](https://github.com/ClickHouse/ClickHouse/pull/88408) ([Eduard Karacharov](https://github.com/korowa)). -* Исправлена ситуация с ложной циклической зависимостью у материализованных представлений в базе данных DatabaseReplicated, которая предотвращала добавление новых реплик в базу. [#88423](https://github.com/ClickHouse/ClickHouse/pull/88423) ([Nikolay Degterinsky](https://github.com/evillique)). -* Исправлена агрегация разреженных столбцов при установленном значении `group_by_overflow_mode` = `any`. [#88440](https://github.com/ClickHouse/ClickHouse/pull/88440) ([Eduard Karacharov](https://github.com/korowa)). -* Исправлена ошибка «column not found» при использовании параметра `query_plan_use_logical_join_step=0` с несколькими предложениями FULL JOIN USING. Закрывает [#88103](https://github.com/ClickHouse/ClickHouse/issues/88103). [#88473](https://github.com/ClickHouse/ClickHouse/pull/88473) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Большие кластеры с числом узлов > 10 имеют высокую вероятность того, что восстановление завершится с ошибкой `[941] 67c45db4-4df4-4879-87c5-25b8d1e0d414 <Trace>: RestoreCoordinationOnCluster The version of node /clickhouse/backups/restore-7c551a77-bd76-404c-bad0-3213618ac58e/stage/num_hosts changed (attempt #9), will try again`. Узел `num_hosts` одновременно перезаписывается многими хостами. Исправление делает настройку, управляющую количеством попыток, динамической. Закрывает [#87721](https://github.com/ClickHouse/ClickHouse/issues/87721). [#88484](https://github.com/ClickHouse/ClickHouse/pull/88484) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). -* Этот PR предназначен только для обеспечения совместимости с версиями 23.8 и более ранними. Проблема совместимости была внесена этим PR: [https://github.com/ClickHouse/ClickHouse/pull/54240](https://github.com/ClickHouse/ClickHouse/pull/54240). Этот SQL-запрос завершится с ошибкой при `enable_analyzer=0` (до 23.8 он выполнялся корректно). [#88491](https://github.com/ClickHouse/ClickHouse/pull/88491) ([JIaQi](https://github.com/JiaQiTang98)). -* Исправлено переполнение целого числа, выявляемое UBSAN, в сообщении об ошибке `accurateCast` при преобразовании больших значений в DateTime. [#88520](https://github.com/ClickHouse/ClickHouse/pull/88520) ([xiaohuanlin](https://github.com/xiaohuanlin)). -* Исправлен движок CoalescingMergeTree для кортежных типов. Это закрывает [#88469](https://github.com/ClickHouse/ClickHouse/issues/88469). [#88526](https://github.com/ClickHouse/ClickHouse/pull/88526) ([scanhex12](https://github.com/scanhex12)). -* Запретить операции удаления для `iceberg_format_version=1`. Закрывает задачу [#88444](https://github.com/ClickHouse/ClickHouse/issues/88444). [#88532](https://github.com/ClickHouse/ClickHouse/pull/88532) ([scanhex12](https://github.com/scanhex12)). -* Этот патч исправляет операцию перемещения на дисках `plain-rewritable` для каталогов произвольной глубины. [#88586](https://github.com/ClickHouse/ClickHouse/pull/88586) ([Mikhail Artemenko](https://github.com/Michicosun)). -* Исправлена поддержка SQL SECURITY DEFINER для функций *cluster. [#88588](https://github.com/ClickHouse/ClickHouse/pull/88588) ([Julian Maicher](https://github.com/jmaicher)). -* Исправлен потенциальный сбой, вызванный конкурентной мутацией подлежащих константных столбцов PREWHERE. [#88605](https://github.com/ClickHouse/ClickHouse/pull/88605) ([Azat Khuzhin](https://github.com/azat)). -* Исправлено чтение из текстового индекса и включён кэш условий запроса (при включённых настройках `use_skip_indexes_on_data_read` и `use_query_condition_cache`). [#88660](https://github.com/ClickHouse/ClickHouse/pull/88660) ([Anton Popov](https://github.com/CurtizJ)). -* Исключение `Poco::TimeoutException`, выброшенное из `Poco::Net::HTTPChunkedStreamBuf::readFromDevice`, приводит к аварийному завершению процесса с сигналом SIGABRT. [#88668](https://github.com/ClickHouse/ClickHouse/pull/88668) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* Бэкпортировано в [#88910](https://github.com/ClickHouse/ClickHouse/issues/88910): после восстановления реплика базы данных Replicated могла надолго «зависать», выводя сообщения вида `Failed to marked query-0004647339 as finished (finished=No node, synced=No node)`, теперь это исправлено. [#88671](https://github.com/ClickHouse/ClickHouse/pull/88671) ([Alexander Tokmakov](https://github.com/tavplubix)). -* Исправлено добавление записей в `system.zookeeper_connection_log`, если ClickHouse впервые подключается к ZooKeeper после перезагрузки конфигурации. [#88728](https://github.com/ClickHouse/ClickHouse/pull/88728) ([Antonio Andelic](https://github.com/antonio2368)). -* Исправлена ошибка, при которой преобразование значения типа DateTime64 в Date с `date_time_overflow_behavior = 'saturate'` могло приводить к некорректным результатам для значений, выходящих за допустимый диапазон, при работе с часовыми поясами. [#88737](https://github.com/ClickHouse/ClickHouse/pull/88737) ([Manuel](https://github.com/raimannma)). -* Очередная попытка исправить ошибку «having zero bytes» в движке таблиц S3 с включённым кэшем. [#88740](https://github.com/ClickHouse/ClickHouse/pull/88740) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Исправлена проверка прав доступа на выполнение `SELECT` для табличной функции `loop`. [#88802](https://github.com/ClickHouse/ClickHouse/pull/88802) ([pufit](https://github.com/pufit)). -* Перехватывать исключения при ошибках асинхронного логирования, чтобы предотвратить аварийное завершение программы. [#88814](https://github.com/ClickHouse/ClickHouse/pull/88814) ([Raúl Marín](https://github.com/Algunenano)). -* Бэкпортировано в [#89060](https://github.com/ClickHouse/ClickHouse/issues/89060): исправлен `top_k`, чтобы он учитывал пороговый параметр при вызове с одним аргументом. Закрывает [#88757](https://github.com/ClickHouse/ClickHouse/issues/88757). [#88867](https://github.com/ClickHouse/ClickHouse/pull/88867) ([Manuel](https://github.com/raimannma)). -* Бэкпортировано в [#88944](https://github.com/ClickHouse/ClickHouse/issues/88944): исправлена ошибка в функции `reverseUTF8`. В предыдущих версиях она по ошибке инвертировала порядок байт у четырёхбайтовых кодовых точек UTF-8. Это закрывает [#88913](https://github.com/ClickHouse/ClickHouse/issues/88913). [#88914](https://github.com/ClickHouse/ClickHouse/pull/88914) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Бэкпортировано в [#88980](https://github.com/ClickHouse/ClickHouse/issues/88980): не выполнять проверку прав доступа `SET DEFINER :definer` при создании представления с SQL SECURITY DEFINER. [#88968](https://github.com/ClickHouse/ClickHouse/pull/88968) ([pufit](https://github.com/pufit)). -* Бэкпортировано в [#89058](https://github.com/ClickHouse/ClickHouse/issues/89058): исправлена ошибка `LOGICAL_ERROR` в `L2DistanceTransposed(vec1, vec2, p)`, когда оптимизация частичного чтения `QBit` приводила к некорректному удалению `Nullable` из возвращаемого типа, если `p` был `Nullable`. [#88974](https://github.com/ClickHouse/ClickHouse/pull/88974) ([Raufs Dunamalijevs](https://github.com/rienath)). -* Бэкпортировано в [#89167](https://github.com/ClickHouse/ClickHouse/issues/89167): исправлена ошибка, приводившая к аварийному завершению работы при неизвестном типе каталога. Закрывает [#88819](https://github.com/ClickHouse/ClickHouse/issues/88819). [#88987](https://github.com/ClickHouse/ClickHouse/pull/88987) ([scanhex12](https://github.com/scanhex12)). -* Бэкпортировано в [#89028](https://github.com/ClickHouse/ClickHouse/issues/89028): исправлено ухудшение производительности при анализе skipping-индексов. [#89004](https://github.com/ClickHouse/ClickHouse/pull/89004) ([Anton Popov](https://github.com/CurtizJ)). - -#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement} - -* Использовать библиотеку `postgres` версии 18.0. [#87647](https://github.com/ClickHouse/ClickHouse/pull/87647) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Включить ICU для FreeBSD. [#87891](https://github.com/ClickHouse/ClickHouse/pull/87891) ([Raúl Marín](https://github.com/Algunenano)). -* Использовать SSE 4.2, когда применяется динамическая диспетчеризация на SSE 4.2, а не SSE 4. [#88029](https://github.com/ClickHouse/ClickHouse/pull/88029) ([Raúl Marín](https://github.com/Algunenano)). -* Не требовать флаг `NO_ARMV81_OR_HIGHER`, если `Speculative Store Bypass Safe` недоступен. [#88051](https://github.com/ClickHouse/ClickHouse/pull/88051) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Когда ClickHouse собирается с `ENABLE_LIBFIU=OFF`, функции, связанные с failpoint, становятся no-op и больше не влияют на производительность. В этом случае запросы `SYSTEM ENABLE/DISABLE FAILPOINT` возвращают ошибку `SUPPORT_IS_DISABLED`. [#88184](https://github.com/ClickHouse/ClickHouse/pull/88184) ([c-end](https://github.com/c-end)). - -### Релиз ClickHouse 25.9 от 2025-09-25 {#259} - -#### Изменения, нарушающие обратную совместимость {#backward-incompatible-change} - -* Отключены бессмысленные бинарные операции с IPv4/IPv6: операции сложения/вычитания IPv4/IPv6 с типом, не являющимся целочисленным, теперь запрещены. Ранее допускались операции с числовыми типами с плавающей запятой, а для некоторых других типов (таких как `DateTime`) возникали логические ошибки. [#86336](https://github.com/ClickHouse/ClickHouse/pull/86336) ([Raúl Marín](https://github.com/Algunenano)). -* Настройка `allow_dynamic_metadata_for_data_lakes` помечена как устаревшая. Теперь все таблицы Iceberg перед выполнением каждого запроса пытаются получить актуальную схему таблицы из хранилища. [#86366](https://github.com/ClickHouse/ClickHouse/pull/86366) ([Daniil Ivanik](https://github.com/divanik)). -* Изменено разрешение объединённого (coalesced) столбца из предложения `OUTER JOIN ... USING` для большей согласованности: ранее при одновременном выборе столбца из USING и квалифицированных столбцов (`a, t1.a, t2.a`) в `OUTER JOIN` столбец из USING некорректно разрешался в `t1.a`, показывая 0/NULL для строк из правой таблицы без соответствия в левой. Теперь идентификаторы из предложения USING всегда разрешаются в объединённый столбец, тогда как квалифицированные идентификаторы разрешаются в необъединённые столбцы, независимо от того, какие другие идентификаторы присутствуют в запросе. Например: ```sql SELECT a, t1.a, t2.a FROM (SELECT 1 as a WHERE 0) t1 FULL JOIN (SELECT 2 as a) t2 USING (a) -- Before: a=0, t1.a=0, t2.a=2 (incorrect - 'a' resolved to t1.a) -- After: a=2, t1.a=0, t2.a=2 (correct - 'a' is coalesced). [#80848](https://github.com/ClickHouse/ClickHouse/pull/80848) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Увеличено окно дедупликации в реплицируемых таблицах до 10000. Это полностью совместимое изменение, но можно представить сценарии, когда оно может привести к высокому потреблению ресурсов при наличии большого количества таблиц. [#86820](https://github.com/ClickHouse/ClickHouse/pull/86820) ([Sema Checherinda](https://github.com/CheSema)). - -#### Новая возможность {#new-feature} - -* Теперь вы можете использовать NATS JetStream для потребления сообщений, указывая новые параметры `nats_stream` и `nats_consumer` для движка NATS. [#84799](https://github.com/ClickHouse/ClickHouse/pull/84799) ([Dmitry Novikov](https://github.com/dmitry-sles-novikov)). -* Добавлена поддержка аутентификации и SSL в табличной функции `arrowFlight`. [#87120](https://github.com/ClickHouse/ClickHouse/pull/87120) ([Vitaly Baranov](https://github.com/vitlibar)). -* Добавлен новый параметр `storage_class_name` для движка таблиц `S3` и табличной функции `s3`, который позволяет указывать режим Intelligent-Tiering, поддерживаемый AWS. Поддерживается как в формате ключ-значение, так и в позиционном (устаревшем) формате. [#87122](https://github.com/ClickHouse/ClickHouse/pull/87122) ([alesapin](https://github.com/alesapin)). -* `ALTER UPDATE` для движка таблиц Iceberg. [#86059](https://github.com/ClickHouse/ClickHouse/pull/86059) ([scanhex12](https://github.com/scanhex12)). -* Добавлена системная таблица `iceberg_metadata_log` для получения файлов метаданных Iceberg при выполнении запросов SELECT. [#86152](https://github.com/ClickHouse/ClickHouse/pull/86152) ([scanhex12](https://github.com/scanhex12)). -* Таблицы `Iceberg` и `DeltaLake` поддерживают пользовательскую конфигурацию диска с помощью настройки хранилища `disk`. [#86778](https://github.com/ClickHouse/ClickHouse/pull/86778) ([scanhex12](https://github.com/scanhex12)). -* Добавлена поддержка дисков Azure для озёр данных. [#87173](https://github.com/ClickHouse/ClickHouse/pull/87173) ([scanhex12](https://github.com/scanhex12)). -* Поддержка каталога `Unity` на базе хранилища Azure Blob Storage. [#80013](https://github.com/ClickHouse/ClickHouse/pull/80013) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). -* Добавлена поддержка дополнительных форматов (`ORC`, `Avro`) при записи в `Iceberg`. Это закрывает [#86179](https://github.com/ClickHouse/ClickHouse/issues/86179). [#87277](https://github.com/ClickHouse/ClickHouse/pull/87277) ([scanhex12](https://github.com/scanhex12)). -* Добавлена новая системная таблица `database_replicas` с информацией о репликах баз данных. [#83408](https://github.com/ClickHouse/ClickHouse/pull/83408) ([Konstantin Morozov](https://github.com/k-morozov)). -* Добавлена функция `arrayExcept`, которая вычитает элементы одного массива из другого, рассматривая их как множества. [#82368](https://github.com/ClickHouse/ClickHouse/pull/82368) ([Joanna Hulboj](https://github.com/jh0x)). -* Добавлена новая таблица `system.aggregated_zookeeper_log`. Таблица содержит статистику (например, количество операций, среднюю задержку, ошибки) операций ZooKeeper, сгруппированных по идентификатору сессии, родительскому пути и типу операции, а её содержимое периодически сбрасывается на диск. [#85102](https://github.com/ClickHouse/ClickHouse/pull/85102) [#87208](https://github.com/ClickHouse/ClickHouse/pull/87208) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* Новая функция `isValidASCII`. Возвращает 1, если входная строка или FixedString содержит только байты ASCII (0x00–0x7F), в противном случае — 0. Закрывает [#85377](https://github.com/ClickHouse/ClickHouse/issues/85377). ... [#85786](https://github.com/ClickHouse/ClickHouse/pull/85786) ([rajat mohan](https://github.com/rajatmohan22)). -* Булевы настройки можно задавать без аргументов, например: `SET use_query_cache;`, что равнозначно установке её в значение `true`. [#85800](https://github.com/ClickHouse/ClickHouse/pull/85800) ([thraeka](https://github.com/thraeka)). -* Новые параметры конфигурации `logger.startupLevel` и `logger.shutdownLevel` позволяют переопределять уровень логирования на время запуска и завершения работы ClickHouse соответственно. [#85967](https://github.com/ClickHouse/ClickHouse/pull/85967) ([Lennard Eijsackers](https://github.com/Blokje5)). -* Агрегатные функции `timeSeriesChangesToGrid` и `timeSeriesResetsToGrid`. Ведут себя аналогично `timeSeriesRateToGrid`, принимая параметры начальной и конечной меток времени, шага и окна ретроспективного просмотра (look back window), а также два аргумента — для меток времени и значений, но требуя как минимум один сэмпл на окно вместо двух. Вычисляют PromQL `changes`/`resets`, подсчитывая количество раз, когда значение сэмпла изменяется или уменьшается в указанном окне для каждой метки времени во временной сетке, определённой параметрами. Тип возвращаемого значения — `Array(Nullable(Float64))`. [#86010](https://github.com/ClickHouse/ClickHouse/pull/86010) ([Stephen Chi](https://github.com/stephchi0)). -* Позволяет пользователям создавать временные представления с синтаксисом, аналогичным синтаксису временных таблиц (`CREATE TEMPORARY VIEW`). [#86432](https://github.com/ClickHouse/ClickHouse/pull/86432) ([Aly Kafoury](https://github.com/AlyHKafoury)). -* В таблицу `system.warnings` добавлены предупреждения об использовании CPU и памяти. [#86838](https://github.com/ClickHouse/ClickHouse/pull/86838) ([Bharat Nallan](https://github.com/bharatnc)). -* Поддержка индикатора `oneof` во входных данных `Protobuf`. Для указания того, какой вариант oneof присутствует, может использоваться специальный столбец. Если сообщение содержит [oneof](https://protobuf.dev/programming-guides/proto3/#oneof) и установлен `input_format_protobuf_oneof_presence`, ClickHouse заполняет столбец, который указывает, какое поле oneof было найдено. [#82885](https://github.com/ClickHouse/ClickHouse/pull/82885) ([Ilya Golshtein](https://github.com/ilejn)). -* Улучшено профилирование выделения памяти на основе внутренних инструментов jemalloc. Глобальный профилировщик jemalloc теперь можно включить с помощью конфигурации `jemalloc_enable_global_profiler`. Выборочно отобранные глобальные операции выделения и освобождения памяти могут сохраняться в `system.trace_log` с типом `JemallocSample` при включении конфигурации `jemalloc_collect_global_profile_samples_in_trace_log`. Профилирование jemalloc теперь можно включать независимо для каждого запроса с помощью настройки `jemalloc_enable_profiler`. Сохранением выборок в `system.trace_log` можно управлять для каждого запроса с помощью настройки `jemalloc_collect_profile_samples_in_trace_log`. Обновлён jemalloc до новой версии. [#85438](https://github.com/ClickHouse/ClickHouse/pull/85438) ([Antonio Andelic](https://github.com/antonio2368)). -* Новая настройка для удаления файлов при удалении (DROP) таблиц Iceberg. Это закрывает проблему [#86211](https://github.com/ClickHouse/ClickHouse/issues/86211). [#86501](https://github.com/ClickHouse/ClickHouse/pull/86501) ([scanhex12](https://github.com/scanhex12)). - -#### Экспериментальная функциональность {#experimental-feature} - -* Инвертированный текстовый индекс был полностью переработан и теперь масштабируется на наборы данных, которые не помещаются в ОЗУ. [#86485](https://github.com/ClickHouse/ClickHouse/pull/86485) ([Anton Popov](https://github.com/CurtizJ)). -* Переупорядочивание `JOIN` теперь использует статистику. Функцию можно включить, установив `allow_statistics_optimize = 1` и `query_plan_optimize_join_order_limit = 10`. [#86822](https://github.com/ClickHouse/ClickHouse/pull/86822) ([Han Fei](https://github.com/hanfei1991)). -* Поддержка `alter table ... materialize statistics all` позволяет материализовать всю статистику таблицы. [#87197](https://github.com/ClickHouse/ClickHouse/pull/87197) ([Han Fei](https://github.com/hanfei1991)). - -#### Повышение производительности {#performance-improvement} - -* Добавлена поддержка фильтрации частей данных с использованием skip-индексов при чтении для сокращения лишних чтений индексов. Управляется новым параметром настройки `use_skip_indexes_on_data_read` (по умолчанию отключён). Это решает задачу [#75774](https://github.com/ClickHouse/ClickHouse/issues/75774). Включает общую подготовительную работу, используемую также в [#81021](https://github.com/ClickHouse/ClickHouse/issues/81021). [#81526](https://github.com/ClickHouse/ClickHouse/pull/81526) ([Amos Bird](https://github.com/amosbird)). -* Добавлена оптимизация порядка JOIN, которая может автоматически переставлять JOINы для повышения производительности (управляется настройкой `query_plan_optimize_join_order_limit`). Note that the join order optimization currently has limited statistics support and primarily relies on row count estimates from storage engines - more sophisticated statistics collection and cardinality estimation will be added in future releases. **If you encounter issues with JOIN queries after upgrading**, you can temporarily disable the new implementation by setting `SET query_plan_use_new_logical_join_step = 0` and report the issue for investigation. **Note about resolution of identifiers from USING clause**: Changed resolving of the coalesced column from `OUTER JOIN ... USING` clause to be more consistent: previously, when selecting both the USING column and qualified columns (`a, t1.a, t2.a`) in a OUTER JOIN, the USING column would incorrectly be resolved to `t1.a`, showing 0/NULL for rows from the right table with no left match. Now identifiers from USING clause are always resolved to the coalesced column, while qualified identifiers resolve to the non-coalesced columns, regardless of which other identifiers are present in the query. For example: ```sql SELECT a, t1.a, t2.a FROM (SELECT 1 as a WHERE 0) t1 FULL JOIN (SELECT 2 as a) t2 USING (a) -- Before: a=0, t1.a=0, t2.a=2 (incorrect - 'a' resolved to t1.a) -- After: a=2, t1.a=0, t2.a=2 (correct - 'a' is coalesced). [#80848](https://github.com/ClickHouse/ClickHouse/pull/80848) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Распределённый `INSERT SELECT` для озёр данных. [#86783](https://github.com/ClickHouse/ClickHouse/pull/86783) ([scanhex12](https://github.com/scanhex12)). -* Улучшена оптимизация PREWHERE для условий вида `func(primary_column) = 'xx'` и `column in (xxx)`. [#85529](https://github.com/ClickHouse/ClickHouse/pull/85529) ([李扬](https://github.com/taiyang-li)). -* Реализовано переписывание операций JOIN: 1. Преобразование `LEFT ANY JOIN` и `RIGHT ANY JOIN` в `SEMI`/`ANTI` JOIN, если условие фильтрации всегда ложно для совпавших или несовпавших строк. Эта оптимизация управляется новой настройкой `query_plan_convert_any_join_to_semi_or_anti_join`. 2. Преобразование `FULL ALL JOIN` в `LEFT ALL` или `RIGHT ALL` JOIN, если условие фильтрации всегда ложно для несовпавших строк с одной из сторон. [#86028](https://github.com/ClickHouse/ClickHouse/pull/86028) ([Dmitry Novik](https://github.com/novikd)). -* Улучшена производительность вертикальных слияний после выполнения операции LIGHTWEIGHT DELETE. [#86169](https://github.com/ClickHouse/ClickHouse/pull/86169) ([Anton Popov](https://github.com/CurtizJ)). -* Производительность `HashJoin` немного улучшена в случае, когда операция `LEFT/RIGHT JOIN` возвращает большое количество строк без соответствия. [#86312](https://github.com/ClickHouse/ClickHouse/pull/86312) ([Nikita Taranov](https://github.com/nickitat)). -* Поразрядная сортировка (radix sort): помогает компилятору использовать SIMD и эффективнее выполнять предвыборку данных. Использует динамическую диспетчеризацию, чтобы применять программную предвыборку только на процессорах Intel. Продолжение работы @taiyang-li в [https://github.com/ClickHouse/ClickHouse/pull/77029](https://github.com/ClickHouse/ClickHouse/pull/77029). [#86378](https://github.com/ClickHouse/ClickHouse/pull/86378) ([Raúl Marín](https://github.com/Algunenano)). -* Улучшена производительность коротких запросов к таблицам с большим количеством частей (за счет оптимизации `MarkRanges` с использованием `devector` вместо `deque`). [#86933](https://github.com/ClickHouse/ClickHouse/pull/86933) ([Azat Khuzhin](https://github.com/azat)). -* Улучшена производительность применения частей патча в режиме join. [#87094](https://github.com/ClickHouse/ClickHouse/pull/87094) ([Anton Popov](https://github.com/CurtizJ)). -* Добавлена настройка `query_condition_cache_selectivity_threshold` (значение по умолчанию: 1.0), которая не помещает в кэш условий запроса результаты сканирования предикатов с низкой селективностью. Это позволяет уменьшить потребление памяти кэшем условий запроса ценой ухудшения коэффициента попаданий в кэш. [#86076](https://github.com/ClickHouse/ClickHouse/pull/86076) ([zhongyuankai](https://github.com/zhongyuankai)). -* Снижено использование памяти при записи в Iceberg. [#86544](https://github.com/ClickHouse/ClickHouse/pull/86544) ([scanhex12](https://github.com/scanhex12)). - -#### Улучшения {#improvement} - -* Реализована поддержка записи нескольких файлов данных в Iceberg за одну вставку. Добавлены новые настройки `iceberg_insert_max_rows_in_data_file` и `iceberg_insert_max_bytes_in_data_file` для задания ограничений. [#86275](https://github.com/ClickHouse/ClickHouse/pull/86275) ([scanhex12](https://github.com/scanhex12)). -* Добавлено ограничение на количество строк/байт в файлах данных, вставляемых в Delta Lake. Параметры задаются настройками `delta_lake_insert_max_rows_in_data_file` и `delta_lake_insert_max_bytes_in_data_file`. [#86357](https://github.com/ClickHouse/ClickHouse/pull/86357) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Добавлена поддержка большего числа типов партиционирования при записи в Iceberg. Это закрывает [#86206](https://github.com/ClickHouse/ClickHouse/issues/86206). [#86298](https://github.com/ClickHouse/ClickHouse/pull/86298) ([scanhex12](https://github.com/scanhex12)). -* Сделана настраиваемой стратегия повторных попыток для S3 и обеспечена возможность горячей перезагрузки настроек S3-диска при изменении XML-файла конфигурации. [#82642](https://github.com/ClickHouse/ClickHouse/pull/82642) ([RinChanNOW](https://github.com/RinChanNOWWW)). -* Улучшен движок таблицы S3(Azure)Queue, чтобы он мог переживать потерю соединения с ZooKeeper без возникновения дубликатов. Требуется включить настройку S3Queue `use_persistent_processing_nodes` (можно изменить через `ALTER TABLE MODIFY SETTING`). [#85995](https://github.com/ClickHouse/ClickHouse/pull/85995) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Вы можете использовать параметры запроса после `TO` при создании материализованного представления, например: `CREATE MATERIALIZED VIEW mv TO {to_table:Identifier} AS SELECT * FROM src_table`. [#84899](https://github.com/ClickHouse/ClickHouse/pull/84899) ([Diskein](https://github.com/Diskein)). -* Выводить более понятные инструкции для пользователей при указании некорректных настроек для движка таблицы `Kafka2`. [#83701](https://github.com/ClickHouse/ClickHouse/pull/83701) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* Теперь нельзя указывать часовые пояса для типа `Time` (что и не имело смысла). [#84689](https://github.com/ClickHouse/ClickHouse/pull/84689) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Упростили (и избежали некоторых ошибок) логику, связанную с парсингом Time/Time64 в режиме `best_effort`. [#84730](https://github.com/ClickHouse/ClickHouse/pull/84730) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Добавлены функции `deltaLakeAzureCluster` (аналогичная `deltaLakeAzure` для кластерного режима) и `deltaLakeS3Cluster` (синоним `deltaLakeCluster`). Исправлена проблема [#85358](https://github.com/ClickHouse/ClickHouse/issues/85358). [#85547](https://github.com/ClickHouse/ClickHouse/pull/85547) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). -* Применять настройку `azure_max_single_part_copy_size` для обычных операций копирования так же, как для резервного копирования. [#85767](https://github.com/ClickHouse/ClickHouse/pull/85767) ([Ilya Golshtein](https://github.com/ilejn)). -* Замедлять потоки клиента S3 при повторяемых ошибках в S3 Object Storage. Это расширяет действие предыдущей настройки `backup_slow_all_threads_after_retryable_s3_error` на диски S3 и переименовывает её в более общую `s3_slow_all_threads_after_retryable_error`. [#85918](https://github.com/ClickHouse/ClickHouse/pull/85918) ([Julia Kartseva](https://github.com/jkartseva)). -* Настройки allow_experimental_variant/dynamic/json и enable_variant/dynamic/json помечены как устаревшие. Теперь все три типа всегда включены. [#85934](https://github.com/ClickHouse/ClickHouse/pull/85934) ([Pavel Kruglov](https://github.com/Avogar)). -* Добавлена поддержка фильтрации по полному URL (директива `full_url`) в `http_handlers` (включая схему и host:port). [#86155](https://github.com/ClickHouse/ClickHouse/pull/86155) ([Azat Khuzhin](https://github.com/azat)). -* Добавлена новая настройка `allow_experimental_delta_lake_writes`. [#86180](https://github.com/ClickHouse/ClickHouse/pull/86180) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Исправлено определение systemd в скрипте init.d (исправлена проверка «Install packages»). [#86187](https://github.com/ClickHouse/ClickHouse/pull/86187) ([Azat Khuzhin](https://github.com/azat)). -* Добавлена новая метрика с размерностью `startup_scripts_failure_reason`. Эта метрика нужна, чтобы различать типы ошибок, приводящих к сбоям стартовых скриптов. В частности, для целей настройки оповещений необходимо различать временные (например, `MEMORY_LIMIT_EXCEEDED` или `KEEPER_EXCEPTION`) и постоянные ошибки. [#86202](https://github.com/ClickHouse/ClickHouse/pull/86202) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* Разрешено опускать функцию `identity` в определении партиции таблицы Iceberg. [#86314](https://github.com/ClickHouse/ClickHouse/pull/86314) ([scanhex12](https://github.com/scanhex12)). -* Добавлена возможность включать JSON‑логирование только для конкретного канала: для этого установите `logger.formatting.channel` в одно из следующих значений: `syslog`/`console`/`errorlog`/`log`. [#86331](https://github.com/ClickHouse/ClickHouse/pull/86331) ([Azat Khuzhin](https://github.com/azat)). -* Теперь можно использовать нативные числа в `WHERE`. Они уже допускаются в качестве аргументов логических функций. Это упрощает оптимизации filter-push-down и move-to-prewhere. [#86390](https://github.com/ClickHouse/ClickHouse/pull/86390) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Исправлена ошибка при выполнении команды `SYSTEM DROP REPLICA` для каталога с повреждёнными метаданными. [#86391](https://github.com/ClickHouse/ClickHouse/pull/86391) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* Добавлены дополнительные попытки проверки доступа к диску (`skip_access_check = 0`) в Azure, поскольку предоставление доступа может занимать довольно много времени. [#86419](https://github.com/ClickHouse/ClickHouse/pull/86419) ([Alexander Tokmakov](https://github.com/tavplubix)). -* Окно устаревания в функциях `timeSeries*()` сделано левооткрытым и правозакрытым. [#86588](https://github.com/ClickHouse/ClickHouse/pull/86588) ([Vitaly Baranov](https://github.com/vitlibar)). -* Добавлены события профилирования `FailedInternal*Query`. [#86627](https://github.com/ClickHouse/ClickHouse/pull/86627) ([Shane Andrade](https://github.com/mauidude)). -* Исправлена обработка пользователей, имя которых содержит точку, при добавлении через конфигурационный файл. [#86633](https://github.com/ClickHouse/ClickHouse/pull/86633) ([Mikhail Koviazin](https://github.com/mkmkme)). -* Добавлена асинхронная метрика для отслеживания использования памяти в запросах (`QueriesMemoryUsage` и `QueriesPeakMemoryUsage`). [#86669](https://github.com/ClickHouse/ClickHouse/pull/86669) ([Azat Khuzhin](https://github.com/azat)). -* Вы можете использовать флаг `clickhouse-benchmark --precise` для более точной отчётности по QPS и другим метрикам, вычисляемым по интервалам. Это помогает получать стабильные значения QPS в случае, если длительности запросов сопоставимы с интервалом отчётности `--delay D`. [#86684](https://github.com/ClickHouse/ClickHouse/pull/86684) ([Sergei Trifonov](https://github.com/serxa)). -* Сделать значения nice для потоков Linux настраиваемыми, чтобы можно было назначать отдельным потокам (merge/mutate, query, материализованное представление, клиент ZooKeeper) более высокий или низкий приоритет. [#86703](https://github.com/ClickHouse/ClickHouse/pull/86703) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* Исправлена вводящая в заблуждение ошибка с сообщением «specified upload does not exist», которая возникает, когда исходное исключение теряется при multipart-загрузке из-за состояния гонки. [#86725](https://github.com/ClickHouse/ClickHouse/pull/86725) ([Julia Kartseva](https://github.com/jkartseva)). -* Ограничена длина описания плана запроса в запросе `EXPLAIN`. Описание больше не вычисляется для запросов, отличных от `EXPLAIN`. Добавлена настройка `query_plan_max_step_description_length`. [#86741](https://github.com/ClickHouse/ClickHouse/pull/86741) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Добавлена возможность настраивать параметры ожидающих сигналов, чтобы обойти CANNOT_CREATE_TIMER (для профилировщиков запросов, `query_profiler_real_time_period_ns`/`query_profiler_cpu_time_period_ns`). Также добавлен сбор `SigQ` из `/proc/self/status` для интроспекции (если `ProcessSignalQueueSize` близко к `ProcessSignalQueueLimit`, то вы, скорее всего, получите ошибки `CANNOT_CREATE_TIMER`). [#86760](https://github.com/ClickHouse/ClickHouse/pull/86760) ([Azat Khuzhin](https://github.com/azat)). -* Улучшена производительность запроса `RemoveRecursive` в Keeper. [#86789](https://github.com/ClickHouse/ClickHouse/pull/86789) ([Antonio Andelic](https://github.com/antonio2368)). -* Удалены лишние пробелы в `PrettyJSONEachRow` при выводе значений типа JSON. [#86819](https://github.com/ClickHouse/ClickHouse/pull/86819) ([Pavel Kruglov](https://github.com/Avogar)). -* Теперь мы записываем размеры блобов для `prefix.path` при удалении каталога на обычном перезаписываемом диске. [#86908](https://github.com/ClickHouse/ClickHouse/pull/86908) ([alesapin](https://github.com/alesapin)). -* Добавлена поддержка нагрузочного тестирования удалённых экземпляров ClickHouse, включая ClickHouse Cloud. Пример использования: `tests/performance/scripts/perf.py tests/performance/math.xml --runs 10 --user --password --host --port --secure`. [#86995](https://github.com/ClickHouse/ClickHouse/pull/86995) ([Raufs Dunamalijevs](https://github.com/rienath)). -* Соблюдать ограничения по памяти в местах, где происходят значительные (>16MiB) выделения памяти (сортировка, асинхронные вставки, лог файлов). [#87035](https://github.com/ClickHouse/ClickHouse/pull/87035) ([Azat Khuzhin](https://github.com/azat)). -* Выбрасывать исключение, если при установке `network_compression_method` указан неподдерживаемый универсальный кодек. [#87097](https://github.com/ClickHouse/ClickHouse/pull/87097) ([Robert Schulze](https://github.com/rschu1ze)). -* Системная таблица `system.query_cache` теперь возвращает *все* записи кэша результатов запросов, тогда как ранее она возвращала только разделяемые записи или неразделяемые записи для того же пользователя и роли. Это корректно, поскольку неразделяемые записи не должны раскрывать *результаты запросов*, тогда как `system.query_cache` возвращает *строки запросов*. Это делает поведение системной таблицы более похожим на `system.query_log`. [#87104](https://github.com/ClickHouse/ClickHouse/pull/87104) ([Robert Schulze](https://github.com/rschu1ze)). -* Включена короткая (short-circuit) оценка для функции `parseDateTime`. [#87184](https://github.com/ClickHouse/ClickHouse/pull/87184) ([Pavel Kruglov](https://github.com/Avogar)). -* Добавлен новый столбец `statistics` в таблицу `system.parts_columns`. [#87259](https://github.com/ClickHouse/ClickHouse/pull/87259) ([Han Fei](https://github.com/hanfei1991)). - -#### Исправление ошибки (некорректное поведение, заметное пользователям, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* Результаты запросов `ALTER` теперь проверяются только на инициирующем узле для реплицируемых баз данных и таблиц с внутренней репликацией. Это устраняет ситуации, когда уже зафиксированный запрос `ALTER` мог застревать на других узлах. [#83849](https://github.com/ClickHouse/ClickHouse/pull/83849) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* Ограничено число задач каждого типа в `BackgroundSchedulePool`. Это позволяет избегать ситуаций, когда все слоты заняты задачами одного типа, в то время как другие задачи голодают. Также предотвращаются взаимные блокировки, когда задачи ожидают друг друга. Поведение контролируется серверной настройкой `background_schedule_pool_max_parallel_tasks_per_type_ratio`. [#84008](https://github.com/ClickHouse/ClickHouse/pull/84008) ([Alexander Tokmakov](https://github.com/tavplubix)). -* Обеспечивает корректное завершение работы таблиц при восстановлении реплики базы данных. Некорректное завершение могло приводить к LOGICAL_ERROR для некоторых движков таблиц во время восстановления реплики базы данных. [#84744](https://github.com/ClickHouse/ClickHouse/pull/84744) ([Antonio Andelic](https://github.com/antonio2368)). -* Проверять права доступа при формировании подсказок по исправлению опечаток в имени базы данных. [#85371](https://github.com/ClickHouse/ClickHouse/pull/85371) ([Dmitry Novik](https://github.com/novikd)). -* 1. LowCardinality для столбцов Hive 2. Заполнять столбцы Hive перед виртуальными столбцами (требуется для [https://github.com/ClickHouse/ClickHouse/pull/81040](https://github.com/ClickHouse/ClickHouse/pull/81040)) 3. LOGICAL_ERROR при пустом формате для Hive [#85528](https://github.com/ClickHouse/ClickHouse/issues/85528) 4. Исправлена проверка, что партиционные столбцы Hive являются единственными столбцами 5. Добавлена проверка, что все столбцы Hive указаны в схеме 6. Частичное исправление для parallel_replicas_cluster с Hive 7. Использовать упорядоченный контейнер в extractkeyValuePairs в утилитах Hive (требуется для [https://github.com/ClickHouse/ClickHouse/pull/81040](https://github.com/ClickHouse/ClickHouse/pull/81040)). [#85538](https://github.com/ClickHouse/ClickHouse/pull/85538) ([Arthur Passos](https://github.com/arthurpassos)). -* Предотвращена ненужная оптимизация первого аргумента функций `IN`, иногда приводившая к ошибке при использовании сопоставления массивов. [#85546](https://github.com/ClickHouse/ClickHouse/pull/85546) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* Соответствие между идентификаторами источников Iceberg и именами файлов Parquet не было скорректировано с учётом схемы, действовавшей на момент записи файла Parquet. В этом PR для каждого файла данных Iceberg используется его собственная схема, а не текущая. [#85829](https://github.com/ClickHouse/ClickHouse/pull/85829) ([Daniil Ivanik](https://github.com/divanik)). -* Исправлена ситуация, когда размер файла считывался отдельно от его открытия. Относится к [https://github.com/ClickHouse/ClickHouse/pull/33372](https://github.com/ClickHouse/ClickHouse/pull/33372), который был добавлен в ответ на ошибку в ядрах Linux до релиза `5.10`. [#85837](https://github.com/ClickHouse/ClickHouse/pull/85837) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* ClickHouse Keeper больше не завершается с ошибкой при запуске на системах, где IPv6 отключён на уровне ядра (например, RHEL с ipv6.disable=1). Теперь он пытается переключиться на IPv4‑слушатель, если не удаётся запустить основной IPv6‑слушатель. [#85901](https://github.com/ClickHouse/ClickHouse/pull/85901) ([jskong1124](https://github.com/jskong1124)). -* Этот PR закрывает [#77990](https://github.com/ClickHouse/ClickHouse/issues/77990). Добавлена поддержка TableFunctionRemote для параллельных реплик в globalJoin. [#85929](https://github.com/ClickHouse/ClickHouse/pull/85929) ([zoomxi](https://github.com/zoomxi)). -* Исправлена ошибка с нулевым указателем в orcschemareader::initializeifneeded(). Этот PR устраняет следующую проблему: [#85292](https://github.com/ClickHouse/ClickHouse/issues/85292) ### Запись в документации об изменениях, затрагивающих пользователей. [#85951](https://github.com/ClickHouse/ClickHouse/pull/85951) ([yanglongwei](https://github.com/ylw510)). -* Добавлена проверка, которая разрешает коррелированные подзапросы в предложении FROM только в том случае, если они используют столбцы из внешнего запроса. Исправляет [#85469](https://github.com/ClickHouse/ClickHouse/issues/85469). Исправляет [#85402](https://github.com/ClickHouse/ClickHouse/issues/85402). [#85966](https://github.com/ClickHouse/ClickHouse/pull/85966) ([Dmitry Novik](https://github.com/novikd)). -* Исправлена работа `ALTER UPDATE` при изменении столбца, подстолбец которого используется в материализованном выражении другого столбца. Ранее материализованный столбец, в выражении которого использовался подстолбец, обновлялся некорректно. [#85985](https://github.com/ClickHouse/ClickHouse/pull/85985) ([Pavel Kruglov](https://github.com/Avogar)). -* Запрещено изменять столбцы, подстолбцы которых используются в PK или в выражении партиционирования. [#86005](https://github.com/ClickHouse/ClickHouse/pull/86005) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлено чтение подколонок с нестандартным режимом сопоставления столбцов в хранилище DeltaLake. [#86064](https://github.com/ClickHouse/ClickHouse/pull/86064) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Исправлена ошибка, из-за которой для `path` с подсказкой `Enum` внутри JSON использовались неверные значения по умолчанию. [#86065](https://github.com/ClickHouse/ClickHouse/pull/86065) ([Pavel Kruglov](https://github.com/Avogar)). -* Разбор URL каталога Hive в DataLake с очисткой входных данных. Закрывает [#86018](https://github.com/ClickHouse/ClickHouse/issues/86018). [#86092](https://github.com/ClickHouse/ClickHouse/pull/86092) ([rajat mohan](https://github.com/rajatmohan22)). -* Исправлена логическая ошибка при динамическом изменении размера файлового кэша. Закрывает [#86122](https://github.com/ClickHouse/ClickHouse/issues/86122). Закрывает [https://github.com/ClickHouse/clickhouse-core-incidents/issues/473](https://github.com/ClickHouse/clickhouse-core-incidents/issues/473). [#86130](https://github.com/ClickHouse/ClickHouse/pull/86130) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Используйте `NonZeroUInt64` для параметра `logs_to_keep` в настройках DatabaseReplicatedSettings. [#86142](https://github.com/ClickHouse/ClickHouse/pull/86142) ([Tuan Pham Anh](https://github.com/tuanpach)). -* Исключение выбрасывалось запросом `FINAL` со skip-индексом, если таблица (например, `ReplacingMergeTree`) была создана с настройкой `index_granularity_bytes = 0`. Эта ошибка теперь исправлена. [#86147](https://github.com/ClickHouse/ClickHouse/pull/86147) ([Shankar Iyer](https://github.com/shankar-iyer)). -* Устраняет неопределённое поведение и исправляет проблемы с разбором выражения секционирования Iceberg. [#86166](https://github.com/ClickHouse/ClickHouse/pull/86166) ([Daniil Ivanik](https://github.com/divanik)). -* Исправлено падение при одновременном использовании константных и неконстантных блоков в одном INSERT. [#86230](https://github.com/ClickHouse/ClickHouse/pull/86230) ([Azat Khuzhin](https://github.com/azat)). -* Процесс по умолчанию использует `include`-директивы из `/etc/metrika.xml` при создании дисков из SQL. [#86232](https://github.com/ClickHouse/ClickHouse/pull/86232) ([alekar](https://github.com/alekar)). -* Исправлены функции accurateCastOrNull/accurateCastOrDefault при приведении типа String к JSON. [#86240](https://github.com/ClickHouse/ClickHouse/pull/86240) ([Pavel Kruglov](https://github.com/Avogar)). -* Поддержка каталогов без '/' в движке Iceberg. [#86249](https://github.com/ClickHouse/ClickHouse/pull/86249) ([scanhex12](https://github.com/scanhex12)). -* Исправлен сбой при использовании replaceRegex со строкой типа FixedString и пустой подстрокой. [#86270](https://github.com/ClickHouse/ClickHouse/pull/86270) ([Raúl Marín](https://github.com/Algunenano)). -* Исправлен сбой при выполнении ALTER UPDATE Nullable(JSON). [#86281](https://github.com/ClickHouse/ClickHouse/pull/86281) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлено отсутствие определения столбца в system.tables. [#86295](https://github.com/ClickHouse/ClickHouse/pull/86295) ([Raúl Marín](https://github.com/Algunenano)). -* Исправлено приведение типов из LowCardinality(Nullable(T)) к типу Dynamic. [#86365](https://github.com/ClickHouse/ClickHouse/pull/86365) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена логическая ошибка при записи в Delta Lake. Закрывает [#86175](https://github.com/ClickHouse/ClickHouse/issues/86175). [#86367](https://github.com/ClickHouse/ClickHouse/pull/86367) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Исправлена ошибка `416 The range specified is invalid for the current size of the resource. The range specified is invalid for the current size of the resource` при чтении пустых BLOB-объектов из Azure Blob Storage для диска plain_rewritable. [#86400](https://github.com/ClickHouse/ClickHouse/pull/86400) ([Julia Kartseva](https://github.com/jkartseva)). -* Исправлена обработка GROUP BY для Nullable(JSON). [#86410](https://github.com/ClickHouse/ClickHouse/pull/86410) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена ошибка в материализованных представлениях: материализованное представление могло не работать, если его создавали, удаляли, а затем снова создавали с тем же именем. [#86413](https://github.com/ClickHouse/ClickHouse/pull/86413) ([Alexander Tokmakov](https://github.com/tavplubix)). -* Выдавать ошибку, если все реплики недоступны при чтении из функций *cluster. [#86414](https://github.com/ClickHouse/ClickHouse/pull/86414) ([Julian Maicher](https://github.com/jmaicher)). -* Исправлена утечка `MergesMutationsMemoryTracking` из‑за таблиц типа `Buffer` и исправлен `query_views_log` для потоковой загрузки из `Kafka` (и других источников). [#86422](https://github.com/ClickHouse/ClickHouse/pull/86422) ([Azat Khузhin](https://github.com/azat)). -* Исправлена работа оператора `SHOW TABLES` после удаления опорной таблицы хранилища Alias. [#86433](https://github.com/ClickHouse/ClickHouse/pull/86433) ([RinChanNOW](https://github.com/RinChanNOWWW)). -* Исправлено отсутствие заголовка чанка, когда включен send_chunk_header и UDF вызывается по протоколу HTTP. [#86469](https://github.com/ClickHouse/ClickHouse/pull/86469) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Исправлена возможная взаимоблокировка при включённой функции сброса профиля jemalloc. [#86473](https://github.com/ClickHouse/ClickHouse/pull/86473) ([Azat Khuzhin](https://github.com/azat)). -* Исправлено чтение подстолбцов в движке таблицы DeltaLake. Закрывает [#86204](https://github.com/ClickHouse/ClickHouse/issues/86204). [#86477](https://github.com/ClickHouse/ClickHouse/pull/86477) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Корректная обработка идентификатора хоста loopback для предотвращения коллизий при обработке DDL-задач. [#86479](https://github.com/ClickHouse/ClickHouse/pull/86479) ([Tuan Pham Anh](https://github.com/tuanpach)). -* Исправлена работа операций DETACH/ATTACH для таблиц движка базы данных postgres с числовыми и десятичными (DECIMAL) столбцами. [#86480](https://github.com/ClickHouse/ClickHouse/pull/86480) ([Julian Maicher](https://github.com/jmaicher)). -* Исправлено использование неинициализированной памяти в getSubcolumnType. [#86498](https://github.com/ClickHouse/ClickHouse/pull/86498) ([Raúl Marín](https://github.com/Algunenano)). -* Функции `searchAny` и `searchAll` при вызове с пустым списком строк (needles) теперь возвращают `true` (то есть «совпадает со всем»). Ранее они возвращали `false` (issue [#86300](https://github.com/ClickHouse/ClickHouse/issues/86300)). [#86500](https://github.com/ClickHouse/ClickHouse/pull/86500) ([Elmi Ahmadov](https://github.com/ahmadov)). -* Исправлена функция `timeSeriesResampleToGridWithStaleness()` при отсутствии значения в первом бакете. [#86507](https://github.com/ClickHouse/ClickHouse/pull/86507) ([Vitaly Baranov](https://github.com/vitlibar)). -* Исправлен сбой, возникавший при установке `merge_tree_min_read_task_size` в значение 0. [#86527](https://github.com/ClickHouse/ClickHouse/pull/86527) ([yanglongwei](https://github.com/ylw510)). -* При чтении формат для каждого файла данных теперь берётся из метаданных Iceberg (ранее он брался из аргументов таблицы). [#86529](https://github.com/ClickHouse/ClickHouse/pull/86529) ([Daniil Ivanik](https://github.com/divanik)). -* Игнорировать исключения при сбросе журнала при завершении работы и сделать завершение работы более безопасным (чтобы избежать SIGSEGV). [#86546](https://github.com/ClickHouse/ClickHouse/pull/86546) ([Azat Khuzhin](https://github.com/azat)). -* Исправлена ошибка в движке базы данных Backup, приводившая к выбросу исключения при запросе с файловыми частями нулевого размера. [#86563](https://github.com/ClickHouse/ClickHouse/pull/86563) ([Max Justus Spransy](https://github.com/maxjustus)). -* Исправлена проблема с отсутствующим заголовком чанка, если `send_chunk_header` включён и UDF вызывается по протоколу HTTP. [#86606](https://github.com/ClickHouse/ClickHouse/pull/86606) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Исправлена логическая ошибка S3Queue «Expected current processor {} to be equal to {}», которая возникала из-за истечения сессии Keeper. [#86615](https://github.com/ClickHouse/ClickHouse/pull/86615) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Ошибки обработки `Nullable` при вставке и отсечении данных. Эта правка закрывает [#86407](https://github.com/ClickHouse/ClickHouse/issues/86407). [#86630](https://github.com/ClickHouse/ClickHouse/pull/86630) ([scanhex12](https://github.com/scanhex12)). -* Не отключайте кэш файловой системы, если отключён кэш метаданных Iceberg. [#86635](https://github.com/ClickHouse/ClickHouse/pull/86635) ([Daniil Ivanik](https://github.com/divanik)). -* Исправлена ошибка «Deadlock in Parquet::ReadManager (single-threaded)» в компоненте parquet reader v3. [#86644](https://github.com/ClickHouse/ClickHouse/pull/86644) ([Michael Kolupaev](https://github.com/al13n321)). -* Исправлена работа IPv6 в `listen_host` для ArrowFlight. [#86664](https://github.com/ClickHouse/ClickHouse/pull/86664) ([Vitaly Baranov](https://github.com/vitlibar)). -* Исправлено завершение работы обработчика `ArrowFlight`. Этот PR исправляет [#86596](https://github.com/ClickHouse/ClickHouse/issues/86596). [#86665](https://github.com/ClickHouse/ClickHouse/pull/86665) ([Vitaly Baranov](https://github.com/vitlibar)). -* Исправлены проблемы с распределёнными запросами при `describe_compact_output=1`. [#86676](https://github.com/ClickHouse/ClickHouse/pull/86676) ([Azat Khuzhin](https://github.com/azat)). -* Исправлены разбор определения окна и применение параметров запроса. [#86720](https://github.com/ClickHouse/ClickHouse/pull/86720) ([Azat Khuzhin](https://github.com/azat)). -* Исправлено исключение `Partition strategy wildcard can not be used without a '_partition_id' wildcard.`, возникавшее при создании таблицы с `PARTITION BY`, но без подстановочного шаблона для партиционирования, что ранее работало в версиях до 25.8. Закрывает [https://github.com/ClickHouse/clickhouse-private/issues/37567](https://github.com/ClickHouse/clickhouse-private/issues/37567). [#86748](https://github.com/ClickHouse/ClickHouse/pull/86748) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Исправлена ошибка LogicalError, возникающая при попытке параллельных запросов захватить одну и ту же блокировку. [#86751](https://github.com/ClickHouse/ClickHouse/pull/86751) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* Исправлена запись NULL в разделяемые JSON‑данные во входном формате RowBinary и добавлены дополнительные проверки в ColumnObject. [#86812](https://github.com/ClickHouse/ClickHouse/pull/86812) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена ошибка перестановки пустого Tuple с LIMIT. [#86828](https://github.com/ClickHouse/ClickHouse/pull/86828) ([Pavel Kruglov](https://github.com/Avogar)). -* Не используйте отдельный узел Keeper для узлов persistent processing. Исправление для [https://github.com/ClickHouse/ClickHouse/pull/85995](https://github.com/ClickHouse/ClickHouse/pull/85995). Закрывает [#86406](https://github.com/ClickHouse/ClickHouse/issues/86406). [#86841](https://github.com/ClickHouse/ClickHouse/pull/86841) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Исправлено поведение таблицы с движком TimeSeries, из‑за которого возникали сбои при создании новой реплики в Replicated Database. [#86845](https://github.com/ClickHouse/ClickHouse/pull/86845) ([Nikolay Degterinsky](https://github.com/evillique)). -* Исправлена проблема с выполнением запросов к `system.distributed_ddl_queue` в случаях, когда в задачах отсутствуют некоторые узлы Keeper. [#86848](https://github.com/ClickHouse/ClickHouse/pull/86848) ([Antonio Andelic](https://github.com/antonio2368)). -* Исправлено позиционирование при переходе в конец разжатого блока. [#86906](https://github.com/ClickHouse/ClickHouse/pull/86906) ([Pavel Kruglov](https://github.com/Avogar)). -* Обрабатывается исключение, выбрасываемое при асинхронном выполнении итератора Iceberg. [#86932](https://github.com/ClickHouse/ClickHouse/pull/86932) ([Daniil Ivanik](https://github.com/divanik)). -* Исправлено сохранение больших предварительно обработанных XML-конфигураций. [#86934](https://github.com/ClickHouse/ClickHouse/pull/86934) ([c-end](https://github.com/c-end)). -* Исправлено заполнение поля date в таблице system.iceberg_metadata_log. [#86961](https://github.com/ClickHouse/ClickHouse/pull/86961) ([Daniil Ivanik](https://github.com/divanik)). -* Исправлен бесконечный перерасчёт `TTL` при использовании `WHERE`. [#86965](https://github.com/ClickHouse/ClickHouse/pull/86965) ([Anton Popov](https://github.com/CurtizJ)). -* Исправлен возможный некорректный результат работы функции `uniqExact` с модификаторами `ROLLUP` и `CUBE`. [#87014](https://github.com/ClickHouse/ClickHouse/pull/87014) ([Nikita Taranov](https://github.com/nickitat)). -* Исправлена проблема с определением схемы таблицы с помощью табличной функции `url()` при значении настройки `parallel_replicas_for_cluster_functions`, равном 1. [#87029](https://github.com/ClickHouse/ClickHouse/pull/87029) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Корректно приводить тип результата PREWHERE после разбиения его на несколько шагов. [#87040](https://github.com/ClickHouse/ClickHouse/pull/87040) ([Antonio Andelic](https://github.com/antonio2368)). -* Исправлены облегчённые обновления с клаузой `ON CLUSTER`. [#87043](https://github.com/ClickHouse/ClickHouse/pull/87043) ([Anton Popov](https://github.com/CurtizJ)). -* Исправлена совместимость некоторых состояний агрегатных функций с аргументом типа String. [#87049](https://github.com/ClickHouse/ClickHouse/pull/87049) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена проблема, при которой имя модели OpenAI не передавалось. [#87100](https://github.com/ClickHouse/ClickHouse/pull/87100) ([Kaushik Iska](https://github.com/iskakaushik)). -* EmbeddedRocksDB: путь должен находиться внутри каталога user_files. [#87109](https://github.com/ClickHouse/ClickHouse/pull/87109) ([Raúl Marín](https://github.com/Algunenano)). -* Исправлена проблема с таблицами KeeperMap, созданными до 25.1, которые оставляли данные в ZooKeeper после выполнения запроса DROP. [#87112](https://github.com/ClickHouse/ClickHouse/pull/87112) ([Nikolay Degterinsky](https://github.com/evillique)). -* Исправлено чтение идентификаторов полей типов map и array из Parquet. [#87136](https://github.com/ClickHouse/ClickHouse/pull/87136) ([scanhex12](https://github.com/scanhex12)). -* Исправлено чтение массивов с подстолбцом размеров при ленивой материализации. [#87139](https://github.com/ClickHouse/ClickHouse/pull/87139) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена работа функции CASE с аргументами типа Dynamic. [#87177](https://github.com/ClickHouse/ClickHouse/pull/87177) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена обработка чтения пустого массива из пустой строки в CSV. [#87182](https://github.com/ClickHouse/ClickHouse/pull/87182) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена возможная неверная обработка некоррелированного `EXISTS`. Ошибка проявлялась при `execute_exists_as_scalar_subquery=1`, который был добавлен в [https://github.com/ClickHouse/ClickHouse/pull/85481](https://github.com/ClickHouse/ClickHouse/pull/85481) и затрагивает версию `25.8`. Исправляет [#86415](https://github.com/ClickHouse/ClickHouse/issues/86415). [#87207](https://github.com/ClickHouse/ClickHouse/pull/87207) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Вызывает ошибку, если `iceberg_metadata_log` не настроен, но пользователь пытается получить отладочную информацию о метаданных Iceberg. Устраняет обращение к nullptr. [#87250](https://github.com/ClickHouse/ClickHouse/pull/87250) ([Daniil Ivanik](https://github.com/divanik)). - -#### Улучшения сборки, тестирования и упаковки {#buildtestingpackaging-improvement} - -* Исправлена совместимость с abseil-cpp 20250814.0, https://github.com/abseil/abseil-cpp/issues/1923. [#85970](https://github.com/ClickHouse/ClickHouse/pull/85970) ([Yuriy Chernyshov](https://github.com/georgthegreat)). -* Сборка автономного WASM-лексера вынесена под управляющий флаг. [#86505](https://github.com/ClickHouse/ClickHouse/pull/86505) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Исправлена сборка crc32c на старых ARM CPU без поддержки инструкции `vmull_p64`. [#86521](https://github.com/ClickHouse/ClickHouse/pull/86521) ([Pablo Marcos](https://github.com/pamarcos)). -* Обновление `openldap` до версии 2.6.10. [#86623](https://github.com/ClickHouse/ClickHouse/pull/86623) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Отключена попытка перехвата `memalign` на darwin. [#86769](https://github.com/ClickHouse/ClickHouse/pull/86769) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Обновление `krb5` до версии 1.22.1-final. [#86836](https://github.com/ClickHouse/ClickHouse/pull/86836) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Исправлена распаковка имён crate Rust в `list-licenses.sh`. [#87305](https://github.com/ClickHouse/ClickHouse/pull/87305) ([Konstantin Bogdanov](https://github.com/thevar1able)). - -### Релиз ClickHouse 25.8 LTS, 2025-08-28 {#258} - -#### Обратное несовместимое изменение {#backward-incompatible-change} - -* Выводить `Array(Dynamic)` вместо безымянного `Tuple` для массивов значений с разными типами в JSON. Чтобы использовать прежнее поведение, отключите настройку `input_format_json_infer_array_of_dynamic_from_array_of_different_types`. [#80859](https://github.com/ClickHouse/ClickHouse/pull/80859) ([Pavel Kruglov](https://github.com/Avogar)). -* Перенести метрики задержки S3 в гистограммы для однородности и упрощения. [#82305](https://github.com/ClickHouse/ClickHouse/pull/82305) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* Требовать использования обратных кавычек вокруг идентификаторов с точками в DEFAULT-выражениях, чтобы предотвратить их разбор как составных идентификаторов. [#83162](https://github.com/ClickHouse/ClickHouse/pull/83162) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* Отложенная материализация включена только при использовании анализатора (который используется по умолчанию), чтобы избежать необходимости поддерживать режим без анализатора, который, по нашему опыту, имеет некоторые проблемы (например, при использовании `indexHint()` в условиях). [#83791](https://github.com/ClickHouse/ClickHouse/pull/83791) ([Igor Nikonov](https://github.com/devcrafter)). -* По умолчанию записывать значения типа `Enum` как `BYTE_ARRAY` с логическим типом `ENUM` в формате вывода Parquet. [#84169](https://github.com/ClickHouse/ClickHouse/pull/84169) ([Pavel Kruglov](https://github.com/Avogar)). -* Включить настройку MergeTree `write_marks_for_substreams_in_compact_parts` по умолчанию. Она существенно улучшает производительность чтения подколонок из недавно созданных Compact‑частей. Серверы с версией менее 25.5 не смогут читать новые Compact‑части. [#84171](https://github.com/ClickHouse/ClickHouse/pull/84171) ([Pavel Kruglov](https://github.com/Avogar)). -* Предыдущее значение по умолчанию для `concurrent_threads_scheduler` было `round_robin`, что оказалось несправедливым при большом количестве однопоточных запросов (например, INSERT). Это изменение делает более безопасный планировщик `fair_round_robin` значением по умолчанию. [#84747](https://github.com/ClickHouse/ClickHouse/pull/84747) ([Sergei Trifonov](https://github.com/serxa)). -* ClickHouse поддерживает синтаксис heredoc в стиле PostgreSQL: `$tag$ string contents... $tag$`, также известный как строковые литералы с долларовым кавычкованием. В предыдущих версиях на теги накладывалось меньше ограничений: они могли содержать произвольные символы, включая пунктуацию и пробелы. Это создаёт неоднозначность при разборе с идентификаторами, которые также могут начинаться с символа доллара. В то же время PostgreSQL разрешает в тегах только буквенно-цифровые символы и подчёркивание. Для решения проблемы теперь мы разрешаем в тегах heredoc только символы слова (буквенно-цифровые символы и подчёркивание). Закрывает [#84731](https://github.com/ClickHouse/ClickHouse/issues/84731). [#84846](https://github.com/ClickHouse/ClickHouse/pull/84846) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Функции `azureBlobStorage`, `deltaLakeAzure` и `icebergAzure` были обновлены для корректной проверки разрешений `AZURE`. Все кластерные варианты функций (функции с суффиксом `-Cluster`) теперь сверяют разрешения с соответствующими некластерными аналогами. Дополнительно функции `icebergLocal` и `deltaLakeLocal` теперь применяют проверки разрешений `FILE`. [#84938](https://github.com/ClickHouse/ClickHouse/pull/84938) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* Включить настройку `allow_dynamic_metadata_for_data_lakes` (настройка уровня Table Engine) по умолчанию. [#85044](https://github.com/ClickHouse/ClickHouse/pull/85044) ([Daniil Ivanik](https://github.com/divanik)). -* По умолчанию отключить заключение 64‑битных целых чисел в кавычки в форматах JSON. [#74079](https://github.com/ClickHouse/ClickHouse/pull/74079) ([Pavel Kruglov](https://github.com/Avogar)) - -#### Новая возможность {#new-feature} - -* Добавлена базовая поддержка диалекта PromQL. Чтобы использовать его, установите `dialect='promql'` в clickhouse-client, укажите таблицу TimeSeries с помощью настройки `promql_table_name='X'` и выполняйте запросы вида `rate(ClickHouseProfileEvents_ReadCompressedBytes[1m])[5m:1m]`. Кроме того, вы можете обернуть запрос PromQL в SQL: `SELECT * FROM prometheusQuery('up', ...);`. Пока поддерживаются только функции `rate`, `delta` и `increase`. Унарные/бинарные операторы не поддерживаются. HTTP API отсутствует. [#75036](https://github.com/ClickHouse/ClickHouse/pull/75036) ([Vitaly Baranov](https://github.com/vitlibar)). -* Функция генерации SQL на основе ИИ теперь при наличии автоматически считывает из переменных окружения ключи ANTHROPIC_API_KEY и OPENAI_API_KEY, что позволяет использовать эту возможность в режиме zero‑config. [#83787](https://github.com/ClickHouse/ClickHouse/pull/83787) ([Kaushik Iska](https://github.com/iskakaushik)). -* Реализована поддержка протокола [ArrowFlight RPC](https://arrow.apache.org/docs/format/Flight.html) путём добавления новой табличной функции `arrowflight`. [#74184](https://github.com/ClickHouse/ClickHouse/pull/74184) ([zakr600](https://github.com/zakr600)). -* Теперь все таблицы поддерживают виртуальный столбец `_table` (не только таблицы с движком `Merge`), что особенно полезно для запросов с оператором UNION ALL. [#63665](https://github.com/ClickHouse/ClickHouse/pull/63665) ([Xiaozhe Yu](https://github.com/wudidapaopao)). -* Добавлена возможность использовать любую политику хранения (например, объектное хранилище, такое как S3) для внешней агрегации и сортировки. [#84734](https://github.com/ClickHouse/ClickHouse/pull/84734) ([Azat Khuzhin](https://github.com/azat)). -* Реализована аутентификация в AWS S3 с явно заданной ролью IAM. Реализован OAuth для GCS. Эти возможности до недавнего времени были доступны только в ClickHouse Cloud и теперь открыты в составе open source. Синхронизированы некоторые интерфейсы, например, сериализация параметров подключения для объектных хранилищ. [#84011](https://github.com/ClickHouse/ClickHouse/pull/84011) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Добавлена поддержка position deletes для Iceberg TableEngine. [#83094](https://github.com/ClickHouse/ClickHouse/pull/83094) ([Daniil Ivanik](https://github.com/divanik)). -* Добавлена поддержка Iceberg Equality Deletes. [#85843](https://github.com/ClickHouse/ClickHouse/pull/85843) ([Han Fei](https://github.com/hanfei1991)). -* Поддержка записи в Iceberg при операции CREATE. Закрывает [#83927](https://github.com/ClickHouse/ClickHouse/issues/83927). [#83983](https://github.com/ClickHouse/ClickHouse/pull/83983) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* Каталоги Glue для записи. [#84136](https://github.com/ClickHouse/ClickHouse/pull/84136) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* REST-каталоги Iceberg для записи. [#84684](https://github.com/ClickHouse/ClickHouse/pull/84684) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* Объединяет все файлы позиционных удалений Iceberg в файлы данных. Это уменьшает количество и размеры файлов Parquet в хранилище Iceberg. Синтаксис: `OPTIMIZE TABLE table_name`. [#85250](https://github.com/ClickHouse/ClickHouse/pull/85250) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* Поддержка команды `DROP TABLE` для Iceberg (удаление таблицы из каталогов REST/Glue и её метаданных). [#85395](https://github.com/ClickHouse/ClickHouse/pull/85395) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* Добавлена поддержка мутаций `ALTER DELETE` для Iceberg в формате merge-on-read. [#85549](https://github.com/ClickHouse/ClickHouse/pull/85549) ([Konstantин Vedernиков](https://github.com/scanhex12)). -* Добавлена поддержка записи в DeltaLake. Закрывает [#79603](https://github.com/ClickHouse/ClickHouse/issues/79603). [#85564](https://github.com/ClickHouse/ClickHouse/pull/85564) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Добавлена настройка `delta_lake_snapshot_version` для чтения снимка указанной версии в табличном движке `DeltaLake`. [#85295](https://github.com/ClickHouse/ClickHouse/pull/85295) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Записывать расширенную статистику Iceberg (размеры столбцов, нижние и верхние границы) в метаданные (записи манифеста) для min-max‑отсечения. [#85746](https://github.com/ClickHouse/ClickHouse/pull/85746) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* Добавлена поддержка операций add/drop/modify над столбцами в формате Iceberg для простых типов. [#85769](https://github.com/ClickHouse/ClickHouse/pull/85769) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* Iceberg: добавлена поддержка записи файла version-hint. Закрывает [#85097](https://github.com/ClickHouse/ClickHouse/issues/85097). [#85130](https://github.com/ClickHouse/ClickHouse/pull/85130) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* Представления, создаваемые эфемерными пользователями, теперь будут хранить копию соответствующего пользователя и больше не будут становиться недействительными после удаления эфемерного пользователя. [#84763](https://github.com/ClickHouse/ClickHouse/pull/84763) ([pufit](https://github.com/pufit)). -* Индекс векторного сходства теперь поддерживает бинарное квантование. Бинарное квантование существенно снижает потребление памяти и ускоряет процесс построения векторного индекса (за счет более быстрого вычисления расстояний). Также существующая настройка `vector_search_postfilter_multiplier` была признана устаревшей и заменена более общей настройкой: `vector_search_index_fetch_multiplier`. [#85024](https://github.com/ClickHouse/ClickHouse/pull/85024) ([Shankar Iyer](https://github.com/shankar-iyer)). -* Разрешить использование аргументов в формате ключ-значение в табличном движке/функции `s3` или `s3Cluster`, например, `s3('url', CSV, structure = 'a Int32', compression_method = 'gzip')`. [#85134](https://github.com/ClickHouse/ClickHouse/pull/85134) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Новая системная таблица для хранения ошибочных входящих сообщений от движков, таких как Kafka («очередь мёртвых писем»). [#68873](https://github.com/ClickHouse/ClickHouse/pull/68873) ([Ilya Golshtein](https://github.com/ilejn)). -* Новая команда SYSTEM RESTORE DATABASE REPLICA для реплицируемых баз данных, аналогичная уже существующей функциональности восстановления в ReplicatedMergeTree. [#73100](https://github.com/ClickHouse/ClickHouse/pull/73100) ([Konstantin Morozov](https://github.com/k-morozov)). -* Протокол PostgreSQL теперь поддерживает команду `COPY`. [#74344](https://github.com/ClickHouse/ClickHouse/pull/74344) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* Добавлена поддержка клиента C# для протокола MySQL. Закрывает [#83992](https://github.com/ClickHouse/ClickHouse/issues/83992). [#84397](https://github.com/ClickHouse/ClickHouse/pull/84397) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* Добавлена поддержка чтения и записи в стиле секционирования Hive. [#76802](https://github.com/ClickHouse/ClickHouse/pull/76802) ([Arthur Passos](https://github.com/arthurpassos)). -* Добавлена системная таблица `zookeeper_connection_log` для хранения исторических сведений о соединениях с ZooKeeper. [#79494](https://github.com/ClickHouse/ClickHouse/pull/79494) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* Серверная настройка `cpu_slot_preemption` включает вытесняющее планирование CPU для рабочих нагрузок и обеспечивает max-min-справедливое распределение процессорного времени между рабочими нагрузками. Добавлены новые настройки рабочих нагрузок для ограничения использования CPU: `max_cpus`, `max_cpu_share` и `max_burst_cpu_seconds`. Подробности: [https://clickhouse.com/docs/operations/workload-scheduling#cpu_scheduling](https://clickhouse.com/docs/operations/workload-scheduling#cpu_scheduling). [#80879](https://github.com/ClickHouse/ClickHouse/pull/80879) ([Sergei Trifonov](https://github.com/serxa)). -* Разрывать TCP‑подключение после заданного количества запросов или по достижении заданного временного порога. Это полезно для более равномерного распределения подключений между узлами кластера за балансировщиком нагрузки. Решает проблему [#68000](https://github.com/ClickHouse/ClickHouse/issues/68000). [#81472](https://github.com/ClickHouse/ClickHouse/pull/81472) ([Kenny Sun](https://github.com/hwabis)). -* Параллельные реплики теперь поддерживают использование проекций при выполнении запросов. [#82659](https://github.com/ClickHouse/ClickHouse/issues/82659). [#82807](https://github.com/ClickHouse/ClickHouse/pull/82807) ([zoomxi](https://github.com/zoomxi)). -* Добавлена поддержка DESCRIBE SELECT в дополнение к DESCRIBE (SELECT ...). [#82947](https://github.com/ClickHouse/ClickHouse/pull/82947) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Теперь для портов mysql_port и postgresql_port всегда используется защищённое соединение. [#82962](https://github.com/ClickHouse/ClickHouse/pull/82962) ([tiandiwonder](https://github.com/tiandiwonder)). -* Теперь пользователи могут выполнять поиск по ключам JSON без учета регистра, используя `JSONExtractCaseInsensitive` (и другие варианты `JSONExtract`). [#83770](https://github.com/ClickHouse/ClickHouse/pull/83770) ([Alistair Evans](https://github.com/alistairjevans)). -* Добавлена системная таблица `system.completions`. Закрывает [#81889](https://github.com/ClickHouse/ClickHouse/issues/81889). [#83833](https://github.com/ClickHouse/ClickHouse/pull/83833) ([|2ustam](https://github.com/RuS2m)). -* Добавлена новая функция `nowInBlock64`. Пример использования: `SELECT nowInBlock64(6)` вернёт `2025-07-29 17:09:37.775725`. [#84178](https://github.com/ClickHouse/ClickHouse/pull/84178) ([Halersson Paris](https://github.com/halersson)). -* Добавлена поддержка параметра extra_credentials в AzureBlobStorage для аутентификации по client_id и tenant_id. [#84235](https://github.com/ClickHouse/ClickHouse/pull/84235) ([Pablo Marcos](https://github.com/pamarcos)). -* Добавлена функция `dateTimeToUUIDv7` для преобразования значения типа DateTime в UUIDv7. Пример использования: `SELECT dateTimeToUUIDv7(toDateTime('2025-08-15 18:57:56'))` возвращает `0198af18-8320-7a7d-abd3-358db23b9d5c`. [#84319](https://github.com/ClickHouse/ClickHouse/pull/84319) ([samradovich](https://github.com/samradovich)). -* Агрегатные функции `timeSeriesDerivToGrid` и `timeSeriesPredictLinearToGrid` для ресемплирования данных на временную сетку, задаваемую начальной меткой времени, конечной меткой времени и шагом; соответственно вычисляют аналоги PromQL‑функций `deriv` и `predict_linear`. [#84328](https://github.com/ClickHouse/ClickHouse/pull/84328) ([Stephen Chi](https://github.com/stephchi0)). -* Добавлены две новые функции TimeSeries: - `timeSeriesRange(start_timestamp, end_timestamp, step)`, - `timeSeriesFromGrid(start_timestamp, end_timestamp, step, values)`. [#85435](https://github.com/ClickHouse/ClickHouse/pull/85435) ([Vitaly Baranov](https://github.com/vitlibar)). -* Добавлен новый синтаксис `GRANT READ ON S3('s3://foo/.*') TO user`. [#84503](https://github.com/ClickHouse/ClickHouse/pull/84503) ([pufit](https://github.com/pufit)). -* Добавлен новый формат вывода `Hash`. Он вычисляет одно хеш-значение для всех столбцов и строк результата. Это полезно для вычисления «отпечатка» результата, например, в случаях, когда узким местом является передача данных. Пример: `SELECT arrayJoin(['abc', 'def']), 42 FORMAT Hash` возвращает `e5f9e676db098fdb9530d2059d8c23ef`. [#84607](https://github.com/ClickHouse/ClickHouse/pull/84607) ([Robert Schulze](https://github.com/rschu1ze)). -* Добавлена возможность задавать произвольные наблюдатели (watches) в запросах Keeper Multi. [#84964](https://github.com/ClickHouse/ClickHouse/pull/84964) ([Mikhail Artemenko](https://github.com/Michicosun)). -* Добавлена опция `--max-concurrency` для инструмента `clickhouse-benchmark`, которая включает режим с постепенным увеличением числа параллельных запросов. [#85623](https://github.com/ClickHouse/ClickHouse/pull/85623) ([Sergei Trifonov](https://github.com/serxa)). -* Добавлена поддержка частично агрегированных метрик. [#85328](https://github.com/ClickHouse/ClickHouse/pull/85328) ([Mikhail Artemenko](https://github.com/Michicosun)). - -#### Экспериментальные функции {#experimental-feature} - -* Включена поддержка коррелированных подзапросов по умолчанию; она больше не считается экспериментальной. [#85107](https://github.com/ClickHouse/ClickHouse/pull/85107) ([Dmitry Novik](https://github.com/novikd)). -* Каталоги озера данных Unity, Glue, Rest и Hive Metastore переведены из экспериментального режима в бета-режим. [#85848](https://github.com/ClickHouse/ClickHouse/pull/85848) ([Melvyn Peignon](https://github.com/melvynator)). -* Лёгкие операции обновления и удаления переведены из экспериментального режима в бета-режим. -* Приблизительный векторный поиск с использованием индексов векторного сходства переведён в статус GA. [#85888](https://github.com/ClickHouse/ClickHouse/pull/85888) ([Robert Schulze](https://github.com/rschu1ze)). -* Добавлены движок таблиц Ytsaurus и табличная функция. [#77606](https://github.com/ClickHouse/ClickHouse/pull/77606) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). -* Ранее данные текстового индекса разделялись на несколько сегментов (размер каждого сегмента по умолчанию составлял 256 MiB). Это могло снизить потребление памяти при построении текстового индекса, однако увеличивало требуемый объём дискового пространства и время ответа на запросы. [#84590](https://github.com/ClickHouse/ClickHouse/pull/84590) ([Elmi Ahmadov](https://github.com/ahmadov)). - -#### Повышение производительности {#performance-improvement} - -* Новая реализация считывателя Parquet. В целом она работает быстрее и поддерживает проталкивание фильтра на уровне страниц и PREWHERE. В настоящий момент является экспериментальной. Используйте настройку `input_format_parquet_use_native_reader_v3`, чтобы включить её. [#82789](https://github.com/ClickHouse/ClickHouse/pull/82789) ([Michael Kolupaev](https://github.com/al13n321)). -* Официальный HTTP-транспорт в библиотеке Azure был заменён на нашу собственную реализацию HTTP‑клиента для Azure Blob Storage. Добавлено несколько настроек для этих клиентов, аналогичных настройкам для S3. Введены агрессивные тайм-ауты установления соединения как для Azure, так и для S3. Улучшены возможности анализа событий и метрик профилирования Azure. Новый клиент включён по умолчанию и обеспечивает значительно более низкие задержки для «холодных» запросов к Azure Blob Storage. Старый клиент на основе `Curl` можно вернуть, установив `azure_sdk_use_native_client=false`. [#83294](https://github.com/ClickHouse/ClickHouse/pull/83294) ([alesapin](https://github.com/alesapin)). Предыдущая, официальная реализация клиента Azure была непригодна для использования в продакшене из‑за ужасных всплесков задержек — от пяти секунд до нескольких минут. Мы отказались от этой ужасной реализации и очень этим гордимся. -* Обрабатывает индексы в порядке возрастания размера файла. Итоговый порядок индексов отдает приоритет индексам minmax и vector (из-за простоты и селективности соответственно), а затем более компактным индексам. Среди индексов minmax/vector также предпочитаются индексы меньшего размера. [#84094](https://github.com/ClickHouse/ClickHouse/pull/84094) ([Maruth Goyal](https://github.com/maruthgoyal)). -* По умолчанию включена настройка MergeTree `write_marks_for_substreams_in_compact_parts`. Она значительно улучшает производительность чтения подколонок из вновь созданных Compact-частей. Серверы с версией ниже 25.5 не смогут читать новые Compact-части. [#84171](https://github.com/ClickHouse/ClickHouse/pull/84171) ([Pavel Kruglov](https://github.com/Avogar)). -* Движок таблицы `azureBlobStorage`: кэшировать и повторно использовать токены аутентификации управляемой идентичности, когда это возможно, чтобы избежать ограничения частоты запросов. [#79860](https://github.com/ClickHouse/ClickHouse/pull/79860) ([Nick Blakely](https://github.com/niblak)). -* Операции `ALL` `LEFT/INNER` JOIN будут автоматически преобразовываться в `RightAny`, если правая сторона функционально определяется столбцами ключа соединения (все строки имеют уникальные значения ключа соединения). [#84010](https://github.com/ClickHouse/ClickHouse/pull/84010) ([Nikita Taranov](https://github.com/nickitat)). -* Добавлен параметр `max_joined_block_size_bytes` в дополнение к `max_joined_block_size_rows` для ограничения потребления памяти при выполнении операций JOIN с «объёмными» столбцами. [#83869](https://github.com/ClickHouse/ClickHouse/pull/83869) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Добавлена новая логика (управляется настройкой `enable_producing_buckets_out_of_order_in_aggregation`, по умолчанию включена), которая позволяет отправлять некоторые бакеты в непорядке во время агрегации с экономным использованием памяти. Когда слияние некоторых бакетов агрегации занимает значительно больше времени, чем остальных, это повышает производительность, позволяя инициатору в это время сливать бакеты с более высокими идентификаторами. Недостаток — потенциально более высокое потребление памяти (не должно быть существенным). [#80179](https://github.com/ClickHouse/ClickHouse/pull/80179) ([Nikita Taranov](https://github.com/nickitat)). -* Добавлена настройка `optimize_rewrite_regexp_functions` (включена по умолчанию), которая позволяет оптимизатору преобразовывать некоторые вызовы функций `replaceRegexpAll`, `replaceRegexpOne` и `extract` в более простые и эффективные формы при обнаружении определённых шаблонов регулярных выражений. (issue [#81981](https://github.com/ClickHouse/ClickHouse/issues/81981)). [#81992](https://github.com/ClickHouse/ClickHouse/pull/81992) ([Amos Bird](https://github.com/amosbird)). -* Обрабатывать `max_joined_block_rows` вне основного цикла hash JOIN. Незначительно улучшена производительность для ALL JOIN. [#83216](https://github.com/ClickHouse/ClickHouse/pull/83216) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Сначала обрабатывать индексы min-max с более высокой детализацией. Закрывает [#75381](https://github.com/ClickHouse/ClickHouse/issues/75381). [#83798](https://github.com/ClickHouse/ClickHouse/pull/83798) ([Maruth Goyal](https://github.com/maruthgoyal)). -* Сделать так, чтобы оконные агрегатные функции с `DISTINCT` работали за линейное время, и исправить ошибку в `sumDistinct`. Закрывает [#79792](https://github.com/ClickHouse/ClickHouse/issues/79792). Закрывает [#52253](https://github.com/ClickHouse/ClickHouse/issues/52253). [#79859](https://github.com/ClickHouse/ClickHouse/pull/79859) ([Nihal Z. Miaji](https://github.com/nihalzp)). -* Запросы векторного поиска с использованием индекса векторного сходства выполняются с меньшей задержкой за счет сокращения операций чтения из хранилища и снижения нагрузки на CPU. [#83803](https://github.com/ClickHouse/ClickHouse/pull/83803) ([Shankar Iyer](https://github.com/shankar-iyer)). -* Rendezvous-хеширование для улучшения локальности кэша при распределении нагрузки между параллельными репликами. [#82511](https://github.com/ClickHouse/ClickHouse/pull/82511) ([Anton Ivashkin](https://github.com/ianton-ru)). -* Реализована функция `addManyDefaults` для комбинаторов `If`, благодаря чему агрегатные функции с `If` теперь работают быстрее. [#83870](https://github.com/ClickHouse/ClickHouse/pull/83870) ([Raúl Marín](https://github.com/Algunenano)). -* Вычислять сериализованный ключ в колоннарном формате при группировке по нескольким строковым или числовым столбцам. [#83884](https://github.com/ClickHouse/ClickHouse/pull/83884) ([李扬](https://github.com/taiyang-li)). -* Исключено полное сканирование в случаях, когда анализ индексов приводит к пустым диапазонам при параллельном чтении реплик. [#84971](https://github.com/ClickHouse/ClickHouse/pull/84971) ([Eduard Karacharov](https://github.com/korowa)). -* Попробовать опцию -falign-functions=64 для повышения стабильности тестов производительности. [#83920](https://github.com/ClickHouse/ClickHouse/pull/83920) ([Azat Khuzhin](https://github.com/azat)). -* Индекс блум-фильтра теперь используется для условий вида `has([c1, c2, ...], column)`, где `column` не относится к типу `Array`. Это улучшает производительность таких запросов, делая их по эффективности сопоставимыми с оператором `IN`. [#83945](https://github.com/ClickHouse/ClickHouse/pull/83945) ([Doron David](https://github.com/dorki)). -* Снижено число лишних вызовов memcpy в CompressedReadBufferBase::readCompressedData. [#83986](https://github.com/ClickHouse/ClickHouse/pull/83986) ([Raúl Marín](https://github.com/Algunenano)). -* Оптимизирован `largestTriangleThreeBuckets` за счёт удаления временных данных. [#84479](https://github.com/ClickHouse/ClickHouse/pull/84479) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Оптимизировать десериализацию строк за счёт упрощения кода. Закрывает [#38564](https://github.com/ClickHouse/ClickHouse/issues/38564). [#84561](https://github.com/ClickHouse/ClickHouse/pull/84561) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Исправлен расчёт минимального размера задачи для параллельных реплик. [#84752](https://github.com/ClickHouse/ClickHouse/pull/84752) ([Nikita Taranov](https://github.com/nickitat)). -* Повышена производительность применения патч‑частей в режиме `Join`. [#85040](https://github.com/ClickHouse/ClickHouse/pull/85040) ([Anton Popov](https://github.com/CurtizJ)). -* Удалён нулевой байт. Закрывает [#85062](https://github.com/ClickHouse/ClickHouse/issues/85062). Исправлено несколько незначительных багов. Функции `structureToProtobufSchema`, `structureToCapnProtoSchema` некорректно записывали нуль-терминирующий байт и использовали перевод строки вместо него. Это приводило к отсутствию перевода строки в выводе и могло приводить к переполнению буфера при использовании других функций, зависящих от нулевого байта (таких как `logTrace`, `demangle`, `extractURLParameter`, `toStringCutToZero` и `encrypt`/`decrypt`). Структура словаря `regexp_tree` не поддерживала обработку строк с нулевыми байтами. Функция `formatRowNoNewline`, вызываемая с форматом `Values` или с любым другим форматом без перевода строки в конце строк, ошибочно обрезала последний символ вывода. Функция `stem` содержала ошибку в гарантиях безопасности исключений, которая в очень редком сценарии могла приводить к утечке памяти. Функция `initcap` работала неправильно для аргументов типа `FixedString`: она не распознавала начало слова в начале строки, если предыдущая строка в блоке заканчивалась на буквенно-цифровой символ. Исправлена уязвимость безопасности формата Apache `ORC`, которая могла приводить к раскрытию неинициализированной памяти. Изменено поведение функции `replaceRegexpAll` и соответствующего алиаса `REGEXP_REPLACE`: теперь она может выполнять пустое совпадение в конце строки, даже если предыдущее совпадение обработало всю строку, как в случае `^a*|a*$` или `^|.*` — это соответствует семантике JavaScript, Perl, Python, PHP, Ruby, но отличается от семантики PostgreSQL. Реализация многих функций была упрощена и оптимизирована. Документация для нескольких функций была неверной и теперь исправлена. Имейте в виду, что вывод функции `byteSize` для столбцов типа String и сложных типов, состоящих из столбцов типа String, изменился (с 9 байт на пустую строку на 8 байт на пустую строку), и это ожидаемое поведение. [#85063](https://github.com/ClickHouse/ClickHouse/pull/85063) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Оптимизирована материализация констант в случаях, когда она выполняется исключительно для возврата одной строки. [#85071](https://github.com/ClickHouse/ClickHouse/pull/85071) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Улучшена параллельная обработка файлов с помощью бэкенда delta-kernel-rs. [#85642](https://github.com/ClickHouse/ClickHouse/pull/85642) ([Azat Khuzhin](https://github.com/azat)). -* Была введена новая настройка enable_add_distinct_to_in_subqueries. При её включении ClickHouse автоматически добавляет DISTINCT к подзапросам в выражениях IN для распределённых запросов. Это может значительно уменьшить размер временных таблиц, передаваемых между шардами, и повысить эффективность использования сети. Примечание: это компромисс — хотя объём сетевого трафика сокращается, на каждом узле требуется дополнительная работа по слиянию (удалению дубликатов). Включайте этот параметр, когда сетевой трафик является узким местом, а стоимость слияния приемлема. [#81908](https://github.com/ClickHouse/ClickHouse/pull/81908) ([fhw12345](https://github.com/fhw12345)). -* Снижены накладные расходы на отслеживание потребления памяти запросами для выполняемых пользовательских функций. [#83929](https://github.com/ClickHouse/ClickHouse/pull/83929) ([Eduard Karacharov](https://github.com/korowa)). -* Реализована внутренняя фильтрация в хранилище `DeltaLake` с использованием `delta-kernel-rs` (статистика и отсечение партиций). [#84006](https://github.com/ClickHouse/ClickHouse/pull/84006) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Более гибко настроено отключение пропускающих индексов, зависящих от столбцов, обновляемых «на лету» или с помощью `patch`‑частей. Теперь пропускающие индексы не используются только в тех частях, которые затронуты мутациями «на лету» или `patch`‑частями; ранее такие индексы отключались для всех частей. [#84241](https://github.com/ClickHouse/ClickHouse/pull/84241) ([Anton Popov](https://github.com/CurtizJ)). -* Выделять минимально необходимый объём памяти под encrypted_buffer для зашифрованных именованных коллекций. [#84432](https://github.com/ClickHouse/ClickHouse/pull/84432) ([Pablo Marcos](https://github.com/pamarcos)). -* Улучшена поддержка индексов блум-фильтра (обычных, `ngram` и `token`), которые теперь используются в случаях, когда первый аргумент — константный массив (множество), а второй — индексируемый столбец (подмножество), что обеспечивает более эффективное выполнение запросов. [#84700](https://github.com/ClickHouse/ClickHouse/pull/84700) ([Doron David](https://github.com/dorki)). -* Снижена конкуренция за блокировку хранилища в Keeper. [#84732](https://github.com/ClickHouse/ClickHouse/pull/84732) ([Antonio Andelic](https://github.com/antonio2368)). -* Добавлена недостающая поддержка `read_in_order_use_virtual_row` для `WHERE`. Это позволяет избегать чтения дополнительных кусков данных для запросов с фильтрами, которые не были полностью перенесены в `PREWHERE`. [#84835](https://github.com/ClickHouse/ClickHouse/pull/84835) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Позволяет асинхронно перебирать объекты таблицы Iceberg без явного хранения объектов для каждого файла данных. [#85369](https://github.com/ClickHouse/ClickHouse/pull/85369) ([Daniil Ivanik](https://github.com/divanik)). -* Выполнять некоррелированный `EXISTS` как скалярный подзапрос. Это позволяет использовать кэш скалярных подзапросов и выполнять свёртывание результата к константе, что полезно для индексов. Для совместимости добавлена новая настройка `execute_exists_as_scalar_subquery=1`. [#85481](https://github.com/ClickHouse/ClickHouse/pull/85481) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). - -#### Улучшения {#improvement} - -* Добавлены настройки `database_replicated`, задающие значения по умолчанию для параметров DatabaseReplicatedSettings. Если параметр не указан в запросе создания реплицируемой базы данных, используется значение из `database_replicated`. [#85127](https://github.com/ClickHouse/ClickHouse/pull/85127) ([Tuan Pham Anh](https://github.com/tuanpach)). -* Добавлена возможность изменять размер столбцов таблицы в веб-интерфейсе (play). [#84012](https://github.com/ClickHouse/ClickHouse/pull/84012) ([Doron David](https://github.com/dorki)). -* Добавлена поддержка сжатого файла `.metadata.json` с помощью настройки `iceberg_metadata_compression_method`. Поддерживаются все методы сжатия ClickHouse. Это закрывает [#84895](https://github.com/ClickHouse/ClickHouse/issues/84895). [#85196](https://github.com/ClickHouse/ClickHouse/pull/85196) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* Показывать в выводе `EXPLAIN indexes = 1` количество диапазонов для чтения. [#79938](https://github.com/ClickHouse/ClickHouse/pull/79938) ([Christoph Wurm](https://github.com/cwurm)). -* Добавлены настройки для задания размера блока сжатия ORC и изменено значение по умолчанию с 64 КБ до 256 КБ для соответствия Spark и Hive. [#80602](https://github.com/ClickHouse/ClickHouse/pull/80602) ([李扬](https://github.com/taiyang-li)). -* Добавлен файл `columns_substreams.txt` в части формата Wide для отслеживания всех подпотоков, хранящихся в части. Это помогает отслеживать динамические потоки в типах JSON и Dynamic и тем самым избегать необходимости читать образец данных этих столбцов для получения списка динамических потоков (например, для расчёта размеров столбцов). Также теперь все динамические потоки отражены в `system.parts_columns`. [#81091](https://github.com/ClickHouse/ClickHouse/pull/81091) ([Pavel Kruglov](https://github.com/Avogar)). -* В команду clickhouse format добавлен CLI‑флаг --show_secrets, который по умолчанию скрывает конфиденциальные данные. [#81524](https://github.com/ClickHouse/ClickHouse/pull/81524) ([Nikolai Ryzhov](https://github.com/Dolaxom)). -* Запросы чтения и записи в S3 теперь ограничиваются по пропускной способности на уровне HTTP-сокета (а не на уровне целого запроса к S3), чтобы избежать проблем с ограничениями пропускной способности, задаваемыми параметрами `max_remote_read_network_bandwidth_for_server` и `max_remote_write_network_bandwidth_for_server`. [#81837](https://github.com/ClickHouse/ClickHouse/pull/81837) ([Sergei Trifonov](https://github.com/serxa)). -* Разрешено использовать разные сопоставления строк (collation) для одного и того же столбца в разных окнах (для оконных функций). [#82877](https://github.com/ClickHouse/ClickHouse/pull/82877) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* Добавлен инструмент для моделирования, визуализации и сравнения селекторов слияния. [#71496](https://github.com/ClickHouse/ClickHouse/pull/71496) ([Sergei Trifonov](https://github.com/serxa)). -* Добавлена поддержка табличных функций `remote*` для параллельных реплик, если кластер указан в аргументе `address_expression`. Также исправлена проблема [#73295](https://github.com/ClickHouse/ClickHouse/issues/73295). [#82904](https://github.com/ClickHouse/ClickHouse/pull/82904) ([Igor Nikonov](https://github.com/devcrafter)). -* Установлен уровень TRACE для всех сообщений журнала, связанных с записью файлов резервных копий. [#82907](https://github.com/ClickHouse/ClickHouse/pull/82907) ([Hans Krutzer](https://github.com/hkrutzer)). -* Пользовательские функции с необычными именами и кодеками могли некорректно форматироваться SQL-форматтером. Это исправление закрывает [#83092](https://github.com/ClickHouse/ClickHouse/issues/83092). [#83644](https://github.com/ClickHouse/ClickHouse/pull/83644) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Теперь можно использовать типы Time и Time64 внутри типа JSON. [#83784](https://github.com/ClickHouse/ClickHouse/pull/83784) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Операции JOIN с параллельными репликами теперь используют логический шаг JOIN. В случае проблем с запросами JOIN с параллельными репликами попробуйте выполнить `SET query_plan_use_new_logical_join_step=0` и сообщите об ошибке. [#83801](https://github.com/ClickHouse/ClickHouse/pull/83801) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Исправлена проблема совместимости функции cluster_function_process_archive_on_multiple_nodes. [#83968](https://github.com/ClickHouse/ClickHouse/pull/83968) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Реализована возможность изменять настройки вставки для материализованных представлений (`mv`) на уровне таблицы `S3Queue`. Добавлены новые настройки уровня `S3Queue`: `min_insert_block_size_rows_for_materialized_views` и `min_insert_block_size_bytes_for_materialized_views`. По умолчанию используются настройки профиля, которые могут быть переопределены настройками уровня `S3Queue`. [#83971](https://github.com/ClickHouse/ClickHouse/pull/83971) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Добавлено профильное событие `MutationAffectedRowsUpperBound`, которое показывает количество затронутых строк в мутации (например, общее число строк, удовлетворяющих условию запроса `ALTER UPDATE` или `ALTER DELETE`). [#83978](https://github.com/ClickHouse/ClickHouse/pull/83978) ([Anton Popov](https://github.com/CurtizJ)). -* Использовать информацию из cgroup (если применимо, то есть когда доступны `memory_worker_use_cgroup` и cgroups) для корректировки трекера памяти (`memory_worker_correct_memory_tracker`). [#83981](https://github.com/ClickHouse/ClickHouse/pull/83981) ([Azat Khuzhin](https://github.com/azat)). -* MongoDB: неявное преобразование строк в числовые типы. Ранее, если строковое значение получалось из источника MongoDB для числового столбца в таблице ClickHouse, выбрасывалось исключение. Теперь движок пытается автоматически преобразовать строку в числовое значение. Закрывает [#81167](https://github.com/ClickHouse/ClickHouse/issues/81167). [#84069](https://github.com/ClickHouse/ClickHouse/pull/84069) ([Kirill Nikiforov](https://github.com/allmazz)). -* Выделять группы цифр в форматах `Pretty` для числовых типов `Nullable`. [#84070](https://github.com/ClickHouse/ClickHouse/pull/84070) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Dashboard: всплывающая подсказка больше не будет выходить за верхнюю границу контейнера. [#84072](https://github.com/ClickHouse/ClickHouse/pull/84072) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Немного улучшен внешний вид точек на дашборде. [#84074](https://github.com/ClickHouse/ClickHouse/pull/84074) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* У дашборда теперь немного более удачный значок (favicon). [#84076](https://github.com/ClickHouse/ClickHouse/pull/84076) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Web UI: Теперь браузеры могут сохранять пароль. Также запоминаются значения URL. [#84087](https://github.com/ClickHouse/ClickHouse/pull/84087) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Добавлена поддержка применения дополнительных ACL для отдельных узлов Keeper с помощью параметра конфигурации `apply_to_children`. [#84137](https://github.com/ClickHouse/ClickHouse/pull/84137) ([Antonio Andelic](https://github.com/antonio2368)). -* Исправлено использование варианта сериализации дискриминаторов типа Variant в режиме «compact» в MergeTree. Ранее он не использовался в некоторых случаях, когда это было возможно. [#84141](https://github.com/ClickHouse/ClickHouse/pull/84141) ([Pavel Kruglov](https://github.com/Avogar)). -* Добавлена серверная настройка `logs_to_keep` в настройки реплицируемых баз данных, которая позволяет изменять значение параметра `logs_to_keep` по умолчанию для реплицируемых баз данных. Более низкие значения уменьшают число ZNode (особенно при большом количестве баз данных), а более высокие значения позволяют отсутствующей реплике догнать остальные спустя более длительный период времени. [#84183](https://github.com/ClickHouse/ClickHouse/pull/84183) ([Alexey Khatskevich](https://github.com/Khatskevich)). -* Добавлена настройка `json_type_escape_dots_in_keys` для экранирования точек в ключах JSON при разборе типа JSON. По умолчанию настройка отключена. [#84207](https://github.com/ClickHouse/ClickHouse/pull/84207) ([Pavel Kruglov](https://github.com/Avogar)). -* Проверять, отменено ли соединение, до проверки EOF, чтобы избежать чтения из закрытого соединения. Исправляет [#83893](https://github.com/ClickHouse/ClickHouse/issues/83893). [#84227](https://github.com/ClickHouse/ClickHouse/pull/84227) ([Raufs Dunamalijevs](https://github.com/rienath)). -* Немного улучшены цвета выделения текста в веб-интерфейсе. Существенная разница заметна только для выделенных ячеек таблиц в тёмном режиме. В предыдущих версиях контраст между текстом и фоном выделения был недостаточным. [#84258](https://github.com/ClickHouse/ClickHouse/pull/84258) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Улучшена обработка завершения работы сервера для клиентских подключений за счёт упрощения внутренних проверок. [#84312](https://github.com/ClickHouse/ClickHouse/pull/84312) ([Raufs Dunamalijevs](https://github.com/rienath)). -* Добавлена настройка `delta_lake_enable_expression_visitor_logging` для отключения логирования обходчика выражений, поскольку такие логи могут быть избыточно подробными даже на уровне логирования `test` при отладке. [#84315](https://github.com/ClickHouse/ClickHouse/pull/84315) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Метрики уровня cgroup и системного уровня теперь экспортируются вместе. Метрики уровня cgroup имеют имена `CGroup`, а метрики уровня ОС (собираемые из procfs) — имена `OS`. [#84317](https://github.com/ClickHouse/ClickHouse/pull/84317) ([Nikita Taranov](https://github.com/nickitat)). -* Графики в веб-интерфейсе стали немного лучше. Ненамного, но лучше. [#84326](https://github.com/ClickHouse/ClickHouse/pull/84326) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Изменено значение по умолчанию для настройки реплицируемой базы данных `max_retries_before_automatic_recovery` на 10, чтобы в некоторых случаях ускорить восстановление. [#84369](https://github.com/ClickHouse/ClickHouse/pull/84369) ([Alexander Tokmakov](https://github.com/tavplubix)). -* Исправлено форматирование оператора `CREATE USER` при использовании параметров запроса (например, `CREATE USER {username:Identifier} IDENTIFIED WITH no_password`). [#84376](https://github.com/ClickHouse/ClickHouse/pull/84376) ([Azat Khuzhin](https://github.com/azat)). -* Добавлены параметры `backup_restore_s3_retry_initial_backoff_ms`, `backup_restore_s3_retry_max_backoff_ms`, `backup_restore_s3_retry_jitter_factor` для настройки стратегии задержки перед повторными попытками S3, используемой во время операций резервного копирования и восстановления. [#84421](https://github.com/ClickHouse/ClickHouse/pull/84421) ([Julia Kartseva](https://github.com/jkartseva)). -* Исправление упорядоченного режима S3Queue: завершать работу раньше, если был вызван shutdown. [#84463](https://github.com/ClickHouse/ClickHouse/pull/84463) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Добавлена поддержка записи в Iceberg с возможностью чтения через pyiceberg. [#84466](https://github.com/ClickHouse/ClickHouse/pull/84466) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* Разрешено приведение типов элементов множества при проталкивании фильтров `IN` / `GLOBAL IN` к первичным ключам хранилищ KeyValue (например, EmbeddedRocksDB, KeeperMap). [#84515](https://github.com/ClickHouse/ClickHouse/pull/84515) ([Eduard Karacharov](https://github.com/korowa)). -* Обновлён chdig до версии [25.7.1](https://github.com/azat/chdig/releases/tag/v25.7.1). [#84521](https://github.com/ClickHouse/ClickHouse/pull/84521) ([Azat Khuzhin](https://github.com/azat)). -* Ошибки низкого уровня при выполнении UDF теперь всегда завершаются с кодом ошибки `UDF_EXECUTION_FAILED`, тогда как ранее могли возвращаться различные коды ошибок. [#84547](https://github.com/ClickHouse/ClickHouse/pull/84547) ([Xu Jia](https://github.com/XuJia0210)). -* Добавлена команда `get_acl` в KeeperClient. [#84641](https://github.com/ClickHouse/ClickHouse/pull/84641) ([Antonio Andelic](https://github.com/antonio2368)). -* Добавлена поддержка snapshot-версии для движков таблиц data lake. [#84659](https://github.com/ClickHouse/ClickHouse/pull/84659) ([Pete Hampton](https://github.com/pjhampton)). -* Добавлена размерная метрика размера `ConcurrentBoundedQueue`, размеченная по типу очереди (то есть для чего предназначена очередь) и идентификатору очереди (то есть случайно сгенерированному идентификатору текущего экземпляра очереди). [#84675](https://github.com/ClickHouse/ClickHouse/pull/84675) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* Таблица `system.columns` теперь поддерживает псевдоним `column` для существующего столбца `name`. [#84695](https://github.com/ClickHouse/ClickHouse/pull/84695) ([Yunchi Pang](https://github.com/yunchipang)). -* Новая настройка MergeTree `search_orphaned_parts_drives` для ограничения области поиска частей, например до дисков с локальными метаданными. [#84710](https://github.com/ClickHouse/ClickHouse/pull/84710) ([Ilya Golshtein](https://github.com/ilejn)). -* Добавлена 4LW-команда `lgrq` в Keeper для переключения логирования входящих запросов. [#84719](https://github.com/ClickHouse/ClickHouse/pull/84719) ([Antonio Andelic](https://github.com/antonio2368)). -* Сопоставлять заголовки external auth forward_headers без учёта регистра. [#84737](https://github.com/ClickHouse/ClickHouse/pull/84737) ([ingodwerust](https://github.com/ingodwerust)). -* Инструмент `encrypt_decrypt` теперь поддерживает шифрованные соединения с ZooKeeper. [#84764](https://github.com/ClickHouse/ClickHouse/pull/84764) ([Roman Vasin](https://github.com/rvasin)). -* Добавлен столбец `format_string` в таблицу `system.errors`. Этот столбец необходим для группировки ошибок одного типа в правилах оповещений. [#84776](https://github.com/ClickHouse/ClickHouse/pull/84776) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* Обновлён `clickhouse-format`: добавлена поддержка параметра `--highlight` как псевдонима для `--hilite`. - Обновлён `clickhouse-client`: добавлена поддержка параметра `--hilite` как псевдонима для `--highlight`. - Обновлена документация по `clickhouse-format` с учётом этих изменений. [#84806](https://github.com/ClickHouse/ClickHouse/pull/84806) ([Rishabh Bhardwaj](https://github.com/rishabh1815769)). -* Исправлено чтение таблиц Iceberg по идентификаторам полей для сложных типов. [#84821](https://github.com/ClickHouse/ClickHouse/pull/84821) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* Добавлена новая настройка `backup_slow_all_threads_after_retryable_s3_error`, чтобы уменьшить нагрузку на S3 во время массовых повторных попыток, вызванных ошибками типа `SlowDown`, за счёт замедления работы всех потоков, как только обнаружена первая повторяемая ошибка. [#84854](https://github.com/ClickHouse/ClickHouse/pull/84854) ([Julia Kartseva](https://github.com/jkartseva)). -* Не создавать и не переименовывать старую временную таблицу non-append RMV DDL в реплицируемых базах данных. [#84858](https://github.com/ClickHouse/ClickHouse/pull/84858) ([Tuan Pham Anh](https://github.com/tuanpach)). -* Ограничьте размер кэша записей журнала Keeper по количеству записей с помощью параметров `keeper_server.coordination_settings.latest_logs_cache_entry_count_threshold` и `keeper_server.coordination_settings.commit_logs_cache_entry_count_threshold`. [#84877](https://github.com/ClickHouse/ClickHouse/pull/84877) ([Antonio Andelic](https://github.com/antonio2368)). -* Теперь можно использовать `simdjson` на неподдерживаемых архитектурах (ранее это приводило к ошибкам `CANNOT_ALLOCATE_MEMORY`). [#84966](https://github.com/ClickHouse/ClickHouse/pull/84966) ([Azat Khuzhin](https://github.com/azat)). -* Асинхронное логирование: сделать ограничения настраиваемыми и добавить средства интроспекции. [#85105](https://github.com/ClickHouse/ClickHouse/pull/85105) ([Raúl Marín](https://github.com/Algunenano)). -* Собирать все удалённые объекты для выполнения единой операции удаления в объектном хранилище. [#85316](https://github.com/ClickHouse/ClickHouse/pull/85316) ([Mikhail Artemenko](https://github.com/Michicosun)). -* Текущая реализация файлов позиционного удаления в Iceberg хранит все данные в оперативной памяти. Это может быть довольно затратно, если файлы позиционного удаления большие, что нередко бывает. Моя реализация хранит в оперативной памяти только последнюю группу строк из файлов удаления в формате Parquet, что значительно дешевле. [#85329](https://github.com/ClickHouse/ClickHouse/pull/85329) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* chdig: исправлены артефакты, остающиеся на экране, устранён сбой после редактирования запроса в редакторе, поиск `editor` в переменной `PATH`, обновление до версии [25.8.1](https://github.com/azat/chdig/releases/tag/v25.8.1). [#85341](https://github.com/ClickHouse/ClickHouse/pull/85341) ([Azat Khuzhin](https://github.com/azat)). -* Добавлен отсутствовавший параметр `partition_columns_in_data_file` в конфигурацию Azure. [#85373](https://github.com/ClickHouse/ClickHouse/pull/85373) ([Arthur Passos](https://github.com/arthurpassos)). -* Разрешено задавать нулевой шаг в функциях семейства `timeSeries*ToGrid`. Это часть [#75036](https://github.com/ClickHouse/ClickHouse/pull/75036). [#85390](https://github.com/ClickHouse/ClickHouse/pull/85390) ([Vitaly Baranov](https://github.com/vitlibar)). -* Добавлен флаг show_data_lake_catalogs_in_system_tables для управления добавлением таблиц data lake в system.tables. Решает [#85384](https://github.com/ClickHouse/ClickHouse/issues/85384). [#85411](https://github.com/ClickHouse/ClickHouse/pull/85411) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). -* Добавлена поддержка подстановки макросов в `remote_fs_zero_copy_zookeeper_path`. [#85437](https://github.com/ClickHouse/ClickHouse/pull/85437) ([Mikhail Koviazin](https://github.com/mkmkme)). -* ИИ в clickhouse-client станет выглядеть немного лучше. [#85447](https://github.com/ClickHouse/ClickHouse/pull/85447) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Включить trace_log.symbolize по умолчанию для старых развёртываний. [#85456](https://github.com/ClickHouse/ClickHouse/pull/85456) ([Azat Khuzhin](https://github.com/azat)). -* Реализована поддержка большего числа случаев использования составных идентификаторов. В частности, улучшена совместимость `ARRAY JOIN` со старым анализатором. Добавлена новая настройка `analyzer_compatibility_allow_compound_identifiers_in_unflatten_nested` для сохранения прежнего поведения. [#85492](https://github.com/ClickHouse/ClickHouse/pull/85492) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Игнорировать UNKNOWN_DATABASE при получении размеров столбцов таблиц из system.columns. [#85632](https://github.com/ClickHouse/ClickHouse/pull/85632) ([Azat Khuzhin](https://github.com/azat)). -* Добавлено ограничение (настройка таблицы `max_uncompressed_bytes_in_patches`) на суммарный объём несжатых данных в патчевых частях. Это предотвращает значительное замедление выполнения запросов SELECT после легковесных обновлений и возможное злоупотребление легковесными обновлениями. [#85641](https://github.com/ClickHouse/ClickHouse/pull/85641) ([Anton Popov](https://github.com/CurtizJ)). -* Добавлен столбец `parameter` в `system.grants` для определения типа источника для `GRANT READ/WRITE` и движка таблицы для `GRANT TABLE ENGINE`. [#85643](https://github.com/ClickHouse/ClickHouse/pull/85643) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). -* Исправлена обработка висячей запятой в списке столбцов запроса CREATE DICTIONARY после столбца с параметрами, например Decimal(8). Закрывает [#85586](https://github.com/ClickHouse/ClickHouse/issues/85586). [#85653](https://github.com/ClickHouse/ClickHouse/pull/85653) ([Nikolay Degterinsky](https://github.com/evillique)). -* Добавлена поддержка внутренних массивов для функции `nested`. [#85719](https://github.com/ClickHouse/ClickHouse/pull/85719) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Все выделения памяти, выполняемые внешними библиотеками, теперь видны трекеру памяти ClickHouse и корректно учитываются. Это может привести к «повышенному» отображаемому потреблению памяти для некоторых запросов или к ошибкам `MEMORY_LIMIT_EXCEEDED`. [#84082](https://github.com/ClickHouse/ClickHouse/pull/84082) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). - -#### Исправление ошибки (некорректное поведение, заметное пользователям, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* Этот pull request исправляет обработку метаданных при выполнении запросов к таблицам Iceberg через REST‑каталог. ... [#80562](https://github.com/ClickHouse/ClickHouse/pull/80562) ([Saurabh Kumar Ojha](https://github.com/saurabhojha)). -* Исправлена логика markReplicasActive в DDLWorker и DatabaseReplicatedDDLWorker. [#81395](https://github.com/ClickHouse/ClickHouse/pull/81395) ([Tuan Pham Anh](https://github.com/tuanpach)). -* Исправлен откат столбца типа Dynamic при ошибке парсинга. [#82169](https://github.com/ClickHouse/ClickHouse/pull/82169) ([Pavel Kruglov](https://github.com/Avogar)). -* Функция `trim` при вызове только с константными аргументами теперь возвращает константную результирующую строку. (Ошибка [#78796](https://github.com/ClickHouse/ClickHouse/issues/78796)). [#82900](https://github.com/ClickHouse/ClickHouse/pull/82900) ([Robert Schulze](https://github.com/rschu1ze)). -* Исправлена логическая ошибка, приводившая к дублированию подзапросов при включённом `optimize_syntax_fuse_functions`, закрыт тикет [#75511](https://github.com/ClickHouse/ClickHouse/issues/75511). [#83300](https://github.com/ClickHouse/ClickHouse/pull/83300) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Исправлен некорректный результат запросов с условием `WHERE ... IN (<subquery>)` и включённым кэшем условий запроса (настройка `use_query_condition_cache`). [#83445](https://github.com/ClickHouse/ClickHouse/pull/83445) ([LB7666](https://github.com/acking-you)). -* Ранее функция `gcs` не требовала каких‑либо прав доступа для использования. Теперь для её использования проверяется наличие привилегии `GRANT READ ON S3`. Закрывает [#70567](https://github.com/ClickHouse/ClickHouse/issues/70567). [#83503](https://github.com/ClickHouse/ClickHouse/pull/83503) ([pufit](https://github.com/pufit)). -* Пропускать недоступные узлы при выполнении INSERT SELECT из s3Cluster() в реплицированную таблицу MergeTree. [#83676](https://github.com/ClickHouse/ClickHouse/pull/83676) ([Igor Nikonov](https://github.com/devcrafter)). -* Исправлена обработка операций записи с добавлением (в MergeTree, используемом для экспериментальных транзакций) для типов метаданных `plain_rewritable`/`plain`, которые ранее просто игнорировались. [#83695](https://github.com/ClickHouse/ClickHouse/pull/83695) ([Tuan Pham Anh](https://github.com/tuanpach)). -* Скрывать данные аутентификации в реестре схем Avro, чтобы они не отображались пользователю и не попадали в журналы. [#83713](https://github.com/ClickHouse/ClickHouse/pull/83713) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* Исправлена проблема, при которой при создании таблицы MergeTree с `add_minmax_index_for_numeric_columns=1` или `add_minmax_index_for_string_columns=1` индекс впоследствии материализуется во время операции ALTER, что мешает корректной инициализации базы данных Replicated на новой реплике. [#83751](https://github.com/ClickHouse/ClickHouse/pull/83751) ([Nikolay Degterinsky](https://github.com/evillique)). -* Исправлен модуль записи Parquet, записывавший некорректные значения статистики min/max для типов Decimal. [#83754](https://github.com/ClickHouse/ClickHouse/pull/83754) ([Michael Kolupaev](https://github.com/al13n321)). -* Исправлена сортировка значений NaN для типа `LowCardinality(Float32|Float64|BFloat16)`. [#83786](https://github.com/ClickHouse/ClickHouse/pull/83786) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* При восстановлении из резервной копии пользователь-определитель (definer) может не быть сохранён в бэкапе, что приведёт к повреждению всей резервной копии. Чтобы это исправить, проверка прав при создании целевой таблицы во время восстановления откладывается и выполняется только во время выполнения запроса. [#83818](https://github.com/ClickHouse/ClickHouse/pull/83818) ([pufit](https://github.com/pufit)). -* Исправлено падение клиента из-за соединения, оставшегося в отключённом состоянии после неудачного INSERT. [#83842](https://github.com/ClickHouse/ClickHouse/pull/83842) ([Azat Khuzhin](https://github.com/azat)). -* Теперь можно ссылаться на любую таблицу в аргументе `view(...)` табличной функции `remote` при включённом анализаторе запросов. Исправляет [#78717](https://github.com/ClickHouse/ClickHouse/issues/78717). Исправляет [#79377](https://github.com/ClickHouse/ClickHouse/issues/79377). [#83844](https://github.com/ClickHouse/ClickHouse/pull/83844) ([Dmitry Novik](https://github.com/novikd)). -* Вызов onprogress в jsoneachrowwithprogress теперь синхронизирован с финализацией. [#83879](https://github.com/ClickHouse/ClickHouse/pull/83879) ([Sema Checherinda](https://github.com/CheSema)). -* Закрывает [#81303](https://github.com/ClickHouse/ClickHouse/issues/81303). [#83892](https://github.com/ClickHouse/ClickHouse/pull/83892) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* Исправлены функции colorSRGBToOKLCH/colorOKLCHToSRGB при одновременном использовании константных и неконстантных аргументов. [#83906](https://github.com/ClickHouse/ClickHouse/pull/83906) ([Azat Khuzhin](https://github.com/azat)). -* Исправлена запись JSON-путей со значениями NULL в формате RowBinary. [#83923](https://github.com/ClickHouse/ClickHouse/pull/83923) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена проблема переполнения больших значений (>2106-02-07) при приведении типа Date к DateTime64. [#83982](https://github.com/ClickHouse/ClickHouse/pull/83982) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Всегда применять параметр `filesystem_prefetches_limit` (а не только из `MergeTreePrefetchedReadPool`). [#83999](https://github.com/ClickHouse/ClickHouse/pull/83999) ([Azat Khuzhin](https://github.com/azat)). -* Исправлена редкая ошибка, из-за которой запрос `MATERIALIZE COLUMN` мог приводить к появлению неожиданных файлов в `checksums.txt` и в результате — к отсоединённым частям данных. [#84007](https://github.com/ClickHouse/ClickHouse/pull/84007) ([alesapin](https://github.com/alesapin)). -* Исправлена логическая ошибка `Expected single dictionary argument for function` при выполнении JOIN по условию неравенства, когда один из столбцов имеет тип `LowCardinality`, а другой является константой. Закрывает [#81779](https://github.com/ClickHouse/ClickHouse/issues/81779). [#84019](https://github.com/ClickHouse/ClickHouse/pull/84019) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Исправлена ошибка, приводившая к падению `clickhouse client` при использовании в интерактивном режиме с подсветкой синтаксиса. [#84025](https://github.com/ClickHouse/ClickHouse/pull/84025) ([Bharat Nallan](https://github.com/bharatnc)). -* Исправлены ошибки, приводившие к некорректным результатам при совместном использовании кэша условий запроса и рекурсивных CTE (issue [#81506](https://github.com/ClickHouse/ClickHouse/issues/81506)). [#84026](https://github.com/ClickHouse/ClickHouse/pull/84026) ([zhongyuankai](https://github.com/zhongyuankai)). -* Исправлена обработка исключений при периодическом обновлении партиций. [#84083](https://github.com/ClickHouse/ClickHouse/pull/84083) ([Azat Khuzhin](https://github.com/azat)). -* Исправлено объединение фильтра с условием JOIN в случаях, когда операнды сравнения на равенство имеют разные типы или ссылаются на константы. Устраняет [#83432](https://github.com/ClickHouse/ClickHouse/issues/83432). [#84145](https://github.com/ClickHouse/ClickHouse/pull/84145) ([Dmitry Novik](https://github.com/novikd)). -* Исправлен редкий сбой ClickHouse, возникавший в случае, когда в таблице есть projection, установлено `lightweight_mutation_projection_mode = 'rebuild'`, и пользователь выполняет операцию легковесного удаления, которая удаляет ВСЕ строки из любого блока таблицы. [#84158](https://github.com/ClickHouse/ClickHouse/pull/84158) ([alesapin](https://github.com/alesapin)). -* Устранена взаимоблокировка, вызванная фоновым потоком проверки отмены. [#84203](https://github.com/ClickHouse/ClickHouse/pull/84203) ([Antonio Andelic](https://github.com/antonio2368)). -* Исправлен бесконечный рекурсивный разбор некорректных определений `WINDOW`. Устраняет [#83131](https://github.com/ClickHouse/ClickHouse/issues/83131). [#84242](https://github.com/ClickHouse/ClickHouse/pull/84242) ([Dmitry Novik](https://github.com/novikd)). -* Исправлена ошибка, приводившая к некорректному кодированию и декодированию Bech32. Изначально ошибка не была обнаружена, поскольку онлайн-реализация алгоритма, использовавшаяся для тестирования, имела ту же проблему. [#84257](https://github.com/ClickHouse/ClickHouse/pull/84257) ([George Larionov](https://github.com/george-larionov)). -* Исправлено некорректное построение пустых кортежей в функции `array()`. Это устраняет [#84202](https://github.com/ClickHouse/ClickHouse/issues/84202). [#84297](https://github.com/ClickHouse/ClickHouse/pull/84297) ([Amos Bird](https://github.com/amosbird)). -* Устранена ошибка `LOGICAL_ERROR` для запросов с параллельными репликами и несколькими соединениями INNER JOIN, за которыми следует RIGHT JOIN. Не используйте параллельные реплики для таких запросов. [#84299](https://github.com/ClickHouse/ClickHouse/pull/84299) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Ранее индексы `set` не учитывали столбцы `Nullable` при проверке того, проходят ли гранулы фильтр (issue [#75485](https://github.com/ClickHouse/ClickHouse/issues/75485)). [#84305](https://github.com/ClickHouse/ClickHouse/pull/84305) ([Elmi Ahmadov](https://github.com/ahmadov)). -* Теперь ClickHouse читает таблицы из каталога Glue, где тип таблицы указан строчными буквами. [#84316](https://github.com/ClickHouse/ClickHouse/pull/84316) ([alesapin](https://github.com/alesapin)). -* Не пытайтесь заменять табличные функции их кластерными аналогами при использовании JOIN или подзапросов. [#84335](https://github.com/ClickHouse/ClickHouse/pull/84335) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Исправлено использование логгера в `IAccessStorage`. [#84365](https://github.com/ClickHouse/ClickHouse/pull/84365) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Исправлена логическая ошибка в легковесных обновлениях, изменяющих все столбцы таблицы. [#84380](https://github.com/ClickHouse/ClickHouse/pull/84380) ([Anton Popov](https://github.com/CurtizJ)). -* Кодек `DoubleDelta` теперь может применяться только к столбцам числового типа. В частности, столбцы типа `FixedString` больше нельзя сжимать с помощью `DoubleDelta`. (исправляет [#80220](https://github.com/ClickHouse/ClickHouse/issues/80220)). [#84383](https://github.com/ClickHouse/ClickHouse/pull/84383) ([Jimmy Aguilar Mena](https://github.com/Ergus)). -* Сравнение со значением NaN выполнялось с использованием некорректных диапазонов при оценке индекса `MinMax`. [#84386](https://github.com/ClickHouse/ClickHouse/pull/84386) ([Elmi Ahmadov](https://github.com/ahmadov)). -* Исправлено чтение столбца типа Variant при ленивой материализации. [#84400](https://github.com/ClickHouse/ClickHouse/pull/84400) ([Pavel Kruglov](https://github.com/Avogar)). -* Рассматривать `zoutofmemory` как аппаратную ошибку, иначе будет выброшено логическое исключение. См. [https://github.com/clickhouse/clickhouse-core-incidents/issues/877](https://github.com/clickhouse/clickhouse-core-incidents/issues/877). [#84420](https://github.com/ClickHouse/ClickHouse/pull/84420) ([Han Fei](https://github.com/hanfei1991)). -* Исправлен сбой сервера, возникавший, когда пользователь, созданный с `no_password`, пытался выполнить вход после изменения настройки сервера `allow_no_password` на 0. [#84426](https://github.com/ClickHouse/ClickHouse/pull/84426) ([Shankar Iyer](https://github.com/shankar-iyer)). -* Исправлены записи в журнале изменений Keeper, выполнявшиеся в неверном порядке. Ранее могли существовать незавершённые операции записи в журнал, но операция отката могла приводить к конкурентному изменению целевого файла. Это приводило к неконсистентным логам и возможной потере данных. [#84434](https://github.com/ClickHouse/ClickHouse/pull/84434) ([Antonio Andelic](https://github.com/antonio2368)). -* Теперь, если все TTL удалены из таблицы, MergeTree не будет выполнять никаких операций, связанных с TTL. [#84441](https://github.com/ClickHouse/ClickHouse/pull/84441) ([alesapin](https://github.com/alesapin)). -* Параллельный распределённый INSERT SELECT с LIMIT был разрешён, что некорректно, так как это приводило к дублированию данных в целевой таблице. [#84477](https://github.com/ClickHouse/ClickHouse/pull/84477) ([Igor Nikonov](https://github.com/devcrafter)). -* Исправлено отсечение файлов по виртуальному столбцу в дата-лейках. [#84520](https://github.com/ClickHouse/ClickHouse/pull/84520) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Исправлены утечки памяти в Keeper при использовании хранилища на RocksDB (итераторы не уничтожались). [#84523](https://github.com/ClickHouse/ClickHouse/pull/84523) ([Azat Khuzhin](https://github.com/azat)). -* Исправлена проблема, из-за которой `ALTER MODIFY ORDER BY` не проверял столбцы TTL в ключах сортировки. Столбцы TTL теперь корректно отклоняются при использовании в выражении ORDER BY во время операций ALTER, что предотвращает возможное повреждение таблиц. [#84536](https://github.com/ClickHouse/ClickHouse/pull/84536) ([xiaohuanlin](https://github.com/xiaohuanlin)). -* Измените значение `allow_experimental_delta_kernel_rs` для версий до 25.5 на `false` для обеспечения совместимости. [#84587](https://github.com/ClickHouse/ClickHouse/pull/84587) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Перестаёт считывать схему из manifest-файлов и вместо этого хранит соответствующие схемы для каждого snapshot независимо. Определяет соответствующую схему для каждого файла данных из его snapshot. Предыдущее поведение нарушало спецификацию Iceberg для записей manifest-файлов со статусом existing. [#84588](https://github.com/ClickHouse/ClickHouse/pull/84588) ([Daniil Ivanik](https://github.com/divanik)). -* Исправлена проблема, при которой настройка Keeper `rotate_log_storage_interval = 0` приводила к аварийному завершению работы ClickHouse. (issue [#83975](https://github.com/ClickHouse/ClickHouse/issues/83975)). [#84637](https://github.com/ClickHouse/ClickHouse/pull/84637) ([George Larionov](https://github.com/george-larionov)). -* Исправлена логическая ошибка S3Queue «Table is already registered». Закрывает [#84433](https://github.com/ClickHouse/ClickHouse/issues/84433). Ошибка появилась после [https://github.com/ClickHouse/ClickHouse/pull/83530](https://github.com/ClickHouse/ClickHouse/pull/83530). [#84677](https://github.com/ClickHouse/ClickHouse/pull/84677) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Блокировать 'mutex' при получении zookeeper из 'view' в RefreshTask. [#84699](https://github.com/ClickHouse/ClickHouse/pull/84699) ([Tuan Pham Anh](https://github.com/tuanpach)). -* Исправлена ошибка `CORRUPTED_DATA`, возникающая при использовании ленивых столбцов с внешней сортировкой. [#84738](https://github.com/ClickHouse/ClickHouse/pull/84738) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* Исправлено отсечение столбцов (column pruning) с использованием `delta-kernel` в хранилище `DeltaLake`. Закрывает [#84543](https://github.com/ClickHouse/ClickHouse/issues/84543). [#84745](https://github.com/ClickHouse/ClickHouse/pull/84745) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Реализовано обновление учетных данных в delta-kernel хранилища DeltaLake. [#84751](https://github.com/ClickHouse/ClickHouse/pull/84751) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Исправлен избыточный запуск внутренних резервных копий после проблем с подключением. [#84755](https://github.com/ClickHouse/ClickHouse/pull/84755) ([Vitaly Baranov](https://github.com/vitlibar)). -* Исправлена проблема, из-за которой запрос к удалённому источнику с задержкой мог приводить к выходу за пределы вектора. [#84820](https://github.com/ClickHouse/ClickHouse/pull/84820) ([George Larionov](https://github.com/george-larionov)). -* Токенизаторы `ngram` и `no_op` больше не приводят к сбою работы экспериментального текстового индекса для пустых входных токенов. [#84849](https://github.com/ClickHouse/ClickHouse/pull/84849) ([Robert Schulze](https://github.com/rschu1ze)). -* Исправлены легковесные обновления для таблиц с движками `ReplacingMergeTree` и `CollapsingMergeTree`. [#84851](https://github.com/ClickHouse/ClickHouse/pull/84851) ([Anton Popov](https://github.com/CurtizJ)). -* Корректно сохранять все настройки в метаданных таблицы для таблиц с движком object queue. [#84860](https://github.com/ClickHouse/ClickHouse/pull/84860) ([Antonio Andelic](https://github.com/antonio2368)). -* Исправлено общее число `watches`, возвращаемое Keeper. [#84890](https://github.com/ClickHouse/ClickHouse/pull/84890) ([Antonio Andelic](https://github.com/antonio2368)). -* Исправлены облегчённые обновления для таблиц с движком `ReplicatedMergeTree`, созданных на серверах с версией ниже 25.7. [#84933](https://github.com/ClickHouse/ClickHouse/pull/84933) ([Anton Popov](https://github.com/CurtizJ)). -* Исправлена работа облегчённых обновлений для таблиц с нереплицированным движком `MergeTree` после выполнения запроса `ALTER TABLE ... REPLACE PARTITION`. [#84941](https://github.com/ClickHouse/ClickHouse/pull/84941) ([Anton Popov](https://github.com/CurtizJ)). -* Исправлена генерация имен столбцов для логических литералов: теперь используются "true"/"false" вместо "1"/"0", что предотвращает конфликты имен столбцов между логическими и целочисленными литералами в запросах. [#84945](https://github.com/ClickHouse/ClickHouse/pull/84945) ([xiaohuanlin](https://github.com/xiaohuanlin)). -* Исправлена рассинхронизация учёта памяти в background schedule pool и executor. [#84946](https://github.com/ClickHouse/ClickHouse/pull/84946) ([Azat Khuzhin](https://github.com/azat)). -* Исправлены возможные проблемы с некорректной сортировкой в табличном движке Merge. [#85025](https://github.com/ClickHouse/ClickHouse/pull/85025) ([Xiaozhe Yu](https://github.com/wudidapaopao)). -* Реализованы недостающие API для DiskEncrypted. [#85028](https://github.com/ClickHouse/ClickHouse/pull/85028) ([Azat Khuzhin](https://github.com/azat)). -* Добавлена проверка при использовании коррелированного подзапроса в распределённом контексте, чтобы избежать сбоя. Исправляет [#82205](https://github.com/ClickHouse/ClickHouse/issues/82205). [#85030](https://github.com/ClickHouse/ClickHouse/pull/85030) ([Dmitry Novik](https://github.com/novikd)). -* Теперь Iceberg не пытается кэшировать соответствующую версию снимка (snapshot) между запросами `SELECT` и всегда пытается честно определять актуальный снимок. Предыдущая попытка кэшировать снимок Iceberg приводила к проблемам при использовании таблицы Iceberg с функцией путешествия во времени. [#85038](https://github.com/ClickHouse/ClickHouse/pull/85038) ([Daniil Ivanik](https://github.com/divanik)). -* Исправлен двойной вызов `free` в `AzureIteratorAsync`. [#85064](https://github.com/ClickHouse/ClickHouse/pull/85064) ([Nikita Taranov](https://github.com/nickitat)). -* Улучшено сообщение об ошибке при попытке создать пользователя, идентифицируемого с помощью JWT. [#85072](https://github.com/ClickHouse/ClickHouse/pull/85072) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Исправлена очистка патч-частей в `ReplicatedMergeTree`. Ранее результат легковесного обновления мог временно не отображаться на реплике до тех пор, пока слитая или мутировавшая часть, материализующая патч-части, не будет загружена с другой реплики. [#85121](https://github.com/ClickHouse/ClickHouse/pull/85121) ([Anton Popov](https://github.com/CurtizJ)). -* Исправлена ошибка illegal_type_of_argument в mv, когда типы различаются. [#85135](https://github.com/ClickHouse/ClickHouse/pull/85135) ([Sema Checherinda](https://github.com/CheSema)). -* Исправлен сбой сегментации в реализации delta-kernel. [#85160](https://github.com/ClickHouse/ClickHouse/pull/85160) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Исправлена проблема с восстановлением реплицируемых баз данных в случаях, когда перемещение файла метаданных занимает много времени. [#85177](https://github.com/ClickHouse/ClickHouse/pull/85177) ([Tuan Pham Anh](https://github.com/tuanpach)). -* Исправлена ошибка `Not-ready Set` для `IN (subquery)` в настройке `additional_table_filters expression`. [#85210](https://github.com/ClickHouse/ClickHouse/pull/85210) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Убраны лишние вызовы `getStatus()` при выполнении запросов SYSTEM DROP REPLICA. Исправлена ситуация, когда таблица удаляется в фоновом режиме и выбрасывается исключение `Shutdown for storage is called`. [#85220](https://github.com/ClickHouse/ClickHouse/pull/85220) ([Nikolay Degterinsky](https://github.com/evillique)). -* Исправлена гонка в реализации delta-kernel для движка `DeltaLake`. [#85221](https://github.com/ClickHouse/ClickHouse/pull/85221) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Исправлено чтение партиционированных данных с отключённым delta-kernel в движке `DeltaLake`. Ошибка появилась в версии 25.7 ([https://github.com/ClickHouse/ClickHouse/pull/81136](https://github.com/ClickHouse/ClickHouse/pull/81136)). [#85223](https://github.com/ClickHouse/ClickHouse/pull/85223) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Добавлены отсутствовавшие проверки длины имён таблиц в запросах CREATE OR REPLACE и RENAME. [#85326](https://github.com/ClickHouse/ClickHouse/pull/85326) ([Michael Kolupaev](https://github.com/al13n321)). -* Исправлено создание RMV на новой реплике реплицированной базы данных, если DEFINER был удалён. [#85327](https://github.com/ClickHouse/ClickHouse/pull/85327) ([Nikolay Degterinsky](https://github.com/evillique)). -* Исправлена запись в Iceberg для сложных типов данных. [#85330](https://github.com/ClickHouse/ClickHouse/pull/85330) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* Для сложных типов запись нижних и верхних границ не поддерживается. [#85332](https://github.com/ClickHouse/ClickHouse/pull/85332) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* Исправлена логическая ошибка при чтении с помощью функций объектного хранилища через таблицу Distributed или функцию remote. Исправления: [#84658](https://github.com/ClickHouse/ClickHouse/issues/84658), [#85173](https://github.com/ClickHouse/ClickHouse/issues/85173), [#52022](https://github.com/ClickHouse/ClickHouse/issues/52022). [#85359](https://github.com/ClickHouse/ClickHouse/pull/85359) ([alesapin](https://github.com/alesapin)). -* Исправлена проблема с резервным копированием частей с повреждёнными проекциями. [#85362](https://github.com/ClickHouse/ClickHouse/pull/85362) ([Antonio Andelic](https://github.com/antonio2368)). -* Запрещено использовать столбец `_part_offset` в проекциях в релизах до его стабилизации. [#85372](https://github.com/ClickHouse/ClickHouse/pull/85372) ([Sema Checherinda](https://github.com/CheSema)). -* Исправлено падение и повреждение данных при выполнении ALTER UPDATE для JSON. [#85383](https://github.com/ClickHouse/ClickHouse/pull/85383) ([Pavel Kruglov](https://github.com/Avogar)). -* Запросы с параллельными репликами, которые используют оптимизацию чтения в обратном порядке, могут выдавать некорректные результаты. [#85406](https://github.com/ClickHouse/ClickHouse/pull/85406) ([Igor Nikonov](https://github.com/devcrafter)). -* Исправлено возможное неопределённое поведение (аварийное завершение) в случае MEMORY_LIMIT_EXCEEDED во время десериализации String. [#85440](https://github.com/ClickHouse/ClickHouse/pull/85440) ([Azat Khuzhin](https://github.com/azat)). -* Исправлены некорректные метрики KafkaAssignedPartitions и KafkaConsumersWithAssignment. [#85494](https://github.com/ClickHouse/ClickHouse/pull/85494) ([Ilya Golshtein](https://github.com/ilejn)). -* Исправлено занижение значения метрики processed_bytes при использовании PREWHERE (явного или автоматического). [#85495](https://github.com/ClickHouse/ClickHouse/pull/85495) ([Michael Kolupaev](https://github.com/al13n321)). -* Исправлено условие раннего выхода для замедления скорости запросов к S3: теперь для включения механизма замедления, когда все потоки приостановлены из‑за повторимой ошибки, достаточно, чтобы был истинным либо `s3_slow_all_threads_after_network_error`, либо `backup_slow_all_threads_after_retryable_s3_error`, вместо необходимости одновременной истинности обоих. [#85505](https://github.com/ClickHouse/ClickHouse/pull/85505) ([Julia Kartseva](https://github.com/jkartseva)). -* Этот PR исправляет получение метаданных при выполнении запросов к таблицам Iceberg через REST‑каталог. ... [#85531](https://github.com/ClickHouse/ClickHouse/pull/85531) ([Saurabh Kumar Ojha](https://github.com/saurabhojha)). -* Исправлен редкий сбой при асинхронных вставках, изменяющих настройки `log_comment` или `insert_deduplication_token`. [#85540](https://github.com/ClickHouse/ClickHouse/pull/85540) ([Anton Popov](https://github.com/CurtizJ)). -* Параметры, такие как date_time_input_format, не учитывались при использовании HTTP с multipart/form-data. [#85570](https://github.com/ClickHouse/ClickHouse/pull/85570) ([Sema Checherinda](https://github.com/CheSema)). -* Исправлена проблема с маскированием секретов в табличных функциях icebergS3Cluster и icebergAzureCluster. [#85658](https://github.com/ClickHouse/ClickHouse/pull/85658) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). -* Исправлена потеря точности в `JSONExtract` при преобразовании числовых значений JSON в типы Decimal. Теперь числовые значения JSON сохраняют своё точное десятичное представление, во избежание ошибок округления чисел с плавающей запятой. [#85665](https://github.com/ClickHouse/ClickHouse/pull/85665) ([ssive7b](https://github.com/ssive7b)). -* Исправлена ошибка `LOGICAL_ERROR` при использовании `COMMENT COLUMN IF EXISTS` в том же запросе `ALTER` после `DROP COLUMN`. Теперь предложение `IF EXISTS` корректно пропускает операцию добавления комментария, если столбец был удалён в рамках того же запроса. [#85688](https://github.com/ClickHouse/ClickHouse/pull/85688) ([xiaohuanlin](https://github.com/xiaohuanlin)). -* Исправлено чтение значения счётчика из кэша для Delta Lake. [#85704](https://github.com/ClickHouse/ClickHouse/pull/85704) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Исправлена ошибка сегментации в CoalescingMergeTree при работе с большими строками. Это закрывает [#84582](https://github.com/ClickHouse/ClickHouse/issues/84582). [#85709](https://github.com/ClickHouse/ClickHouse/pull/85709) ([Konstantин Vedernikov](https://github.com/scanhex12)). -* Обновлена временная метка метаданных при записях в Iceberg. [#85711](https://github.com/ClickHouse/ClickHouse/pull/85711) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* Использование `distributed_depth` в качестве индикатора функции *cluster было некорректным и могло приводить к дублированию данных; вместо него используйте `client_info.collaborate_with_initiator`. [#85734](https://github.com/ClickHouse/ClickHouse/pull/85734) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Spark не может читать файлы position delete. [#85762](https://github.com/ClickHouse/ClickHouse/pull/85762) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* Исправлен параметр `send_logs_source_regexp` (после рефакторинга асинхронного логирования в [#85105](https://github.com/ClickHouse/ClickHouse/issues/85105)). [#85797](https://github.com/ClickHouse/ClickHouse/pull/85797) ([Azat Khuzhin](https://github.com/azat)). -* Исправлено возможное некорректное поведение словарей с `update_field` при ошибке `MEMORY_LIMIT_EXCEEDED`. [#85807](https://github.com/ClickHouse/ClickHouse/pull/85807) ([Azat Khuzhin](https://github.com/azat)). -* Добавлена поддержка глобальных констант из выражения `WITH` для параллельной распределённой операции `INSERT SELECT` с целевой таблицей `Distributed`. Ранее запрос мог приводить к ошибке `Unknown expression identifier`. [#85811](https://github.com/ClickHouse/ClickHouse/pull/85811) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Скрывать учетные данные для `deltaLakeAzure`, `deltaLakeCluster`, `icebergS3Cluster` и `icebergAzureCluster`. [#85889](https://github.com/ClickHouse/ClickHouse/pull/85889) ([Julian Maicher](https://github.com/jmaicher)). -* Исправлена логическая ошибка при попытке `CREATE ... AS (SELECT * FROM s3Cluster(...))` при использовании `DatabaseReplicated`. [#85904](https://github.com/ClickHouse/ClickHouse/pull/85904) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Исправляет HTTP-запросы, выполняемые табличной функцией `url()`, чтобы они корректно включали номер порта в заголовок `Host` при доступе к нестандартным портам. Это устраняет ошибки аутентификации при использовании предварительно подписанных URL с S3-совместимыми сервисами, такими как MinIO, работающими на нестандартных портах, что распространено в средах разработки. (Исправляет [#85898](https://github.com/ClickHouse/ClickHouse/issues/85898)). [#85921](https://github.com/ClickHouse/ClickHouse/pull/85921) ([Tom Quist](https://github.com/tomquist)). -* Теперь Unity Catalog будет игнорировать схемы с нестандартными типами данных для таблиц, которые не являются Delta-таблицами. Исправляет [#85699](https://github.com/ClickHouse/ClickHouse/issues/85699). [#85950](https://github.com/ClickHouse/ClickHouse/pull/85950) ([alesapin](https://github.com/alesapin)). -* Исправлена поддержка nullable-полей в iceberg. [#85977](https://github.com/ClickHouse/ClickHouse/pull/85977) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* Исправлена ошибка в восстановлении базы данных `Replicated`: если имя таблицы содержало символ `%`, во время восстановления таблица могла быть повторно создана под другим именем. [#85987](https://github.com/ClickHouse/ClickHouse/pull/85987) ([Alexander Tokmakov](https://github.com/tavplubix)). -* Исправлена проблема с восстановлением из резервной копии, приводившая к ошибке `BACKUP_ENTRY_NOT_FOUND` при восстановлении пустой таблицы `Memory`. [#86012](https://github.com/ClickHouse/ClickHouse/pull/86012) ([Julia Kartseva](https://github.com/jkartseva)). -* Добавлены проверки для sharding_key при выполнении ALTER для распределённой таблицы. Ранее ошибочный ALTER мог приводить к нарушению определения таблицы и необходимости перезапуска сервера. [#86015](https://github.com/ClickHouse/ClickHouse/pull/86015) ([Nikolay Degterinsky](https://github.com/evillique)). -* Не создавать пустой файл удалений Iceberg. [#86061](https://github.com/ClickHouse/ClickHouse/pull/86061) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* Исправлена проблема, из-за которой слишком большие значения параметров приводили к сбоям в работе таблиц S3Queue и мешали перезапуску реплик. [#86074](https://github.com/ClickHouse/ClickHouse/pull/86074) ([Nikolay Degterinsky](https://github.com/evillique)). - -#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement} - -* По умолчанию использовать зашифрованные диски для тестов с S3. [#59898](https://github.com/ClickHouse/ClickHouse/pull/59898) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* Использовать бинарный файл `clickhouse` в интеграционных тестах, чтобы получать полные отладочные символы (без strip). [#83779](https://github.com/ClickHouse/ClickHouse/pull/83779) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). -* Обновлена внутренняя библиотека libxml2 с версии 2.14.4 до 2.14.5. [#84230](https://github.com/ClickHouse/ClickHouse/pull/84230) ([Robert Schulze](https://github.com/rschu1ze)). -* Обновлён внутренний curl с версии 8.14.0 до 8.15.0. [#84231](https://github.com/ClickHouse/ClickHouse/pull/84231) ([Robert Schulze](https://github.com/rschu1ze)). -* Теперь мы используем меньше памяти для кэшей в CI и имеем более качественные тесты на вытеснение. [#84676](https://github.com/ClickHouse/ClickHouse/pull/84676) ([alesapin](https://github.com/alesapin)). - -### Релиз ClickHouse 25.7, 2025-07-24 {#257} - -#### Обратное несовместимое изменение {#backward-incompatible-change} - -* Изменения в функции `extractKeyValuePairs`: добавлен новый аргумент `unexpected_quoting_character_strategy`, который определяет, что происходит, когда `quoting_character` неожиданно встречается при чтении неквотированного ключа или значения. Значение может быть одним из: `invalid`, `accept` или `promote`. Значение `invalid` приведёт к отбрасыванию ключа и возврату в состояние ожидания ключа. Значение `accept` будет трактовать символ как часть ключа. Значение `promote` отбросит предыдущий символ и начнёт разбор как квотированного ключа. Кроме того, после разбора квотированного значения следующий ключ разбирается только в том случае, если найден разделитель пары. [#80657](https://github.com/ClickHouse/ClickHouse/pull/80657) ([Arthur Passos](https://github.com/arthurpassos)). -* Поддержка совпадений нулевой длины в функции `countMatches`. Пользователи, которые хотят сохранить старое поведение, могут включить настройку `count_matches_stop_at_empty_match`. [#81676](https://github.com/ClickHouse/ClickHouse/pull/81676) ([Elmi Ahmadov](https://github.com/ahmadov)). -* Использование серверных ограничителей (throttlers) для локальных (`max_local_read_bandwidth_for_server` и `max_local_write_bandwidth_for_server`) и удалённых (`max_remote_read_network_bandwidth_for_server` и `max_remote_write_network_bandwidth_for_server`) операций при создании резервных копий (BACKUP), в дополнение к их специализированным серверным настройкам (`max_backup_bandwidth_for_server`, `max_mutations_bandwidth_for_server` и `max_merges_bandwidth_for_server`). [#81753](https://github.com/ClickHouse/ClickHouse/pull/81753) ([Sergei Trifonov](https://github.com/serxa)). -* Запрещено создание таблицы без столбцов, доступных для вставки данных. [#81835](https://github.com/ClickHouse/ClickHouse/pull/81835) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* Параллелизация кластерных функций по файлам внутри архивов. В предыдущих версиях единицей работы был целый архив (например, zip, tar или 7z). Добавлена новая настройка `cluster_function_process_archive_on_multiple_nodes`, по умолчанию равная `true`. Если установлена в `true`, повышает производительность обработки архивов в кластерных функциях. Должна быть установлена в `false` для обеспечения совместимости и во избежание ошибок при обновлении до версии 25.7+ при использовании кластерных функций с архивами на более ранних версиях. [#82355](https://github.com/ClickHouse/ClickHouse/pull/82355) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Запрос `SYSTEM RESTART REPLICAS` вызывал пробуждение таблиц в базе данных Lazy, даже без доступа к этой базе данных, и это происходило в то время, когда эти таблицы одновременно удалялись. Примечание: теперь `SYSTEM RESTART REPLICAS` будет перезапускать реплики только в тех базах данных, где у вас есть право выполнять `SHOW TABLES`, что является естественным поведением. [#83321](https://github.com/ClickHouse/ClickHouse/pull/83321) ([Alexey Milovidov](https://github.com/alexey-milovidov)). - -#### Новая возможность {#new-feature} - -* Добавлена поддержка легковесных обновлений для таблиц семейства `MergeTree`. Легковесные обновления можно использовать с помощью нового синтаксиса: `UPDATE
    SET col1 = val1, col2 = val2, ... WHERE `. Добавлена реализация легковесных удалений через легковесные обновления. Это можно включить, установив `lightweight_delete_mode = 'lightweight_update'`. [#82004](https://github.com/ClickHouse/ClickHouse/pull/82004) ([Anton Popov](https://github.com/CurtizJ)). -* Добавлена поддержка сложных типов в рамках эволюции схемы Iceberg. [#73714](https://github.com/ClickHouse/ClickHouse/pull/73714) ([Konstantин Vedernиков](https://github.com/scanhex12)). -* Добавлена поддержка вставки данных (INSERT) в таблицы Iceberg. [#82692](https://github.com/ClickHouse/ClickHouse/pull/82692) ([Konstantин Ведерников](https://github.com/scanhex12)). -* Чтение файлов данных Iceberg по идентификаторам полей. Это улучшает совместимость с Iceberg: поля можно переименовывать в метаданных, сопоставляя их с другими именами в базовых файлах Parquet. Устраняет проблему [#83065](https://github.com/ClickHouse/ClickHouse/issues/83065). [#83653](https://github.com/ClickHouse/ClickHouse/pull/83653) ([Константин Ведерников](https://github.com/scanhex12)). -* Теперь ClickHouse поддерживает сжатые файлы `metadata.json` для Iceberg. Исправлена проблема [#70874](https://github.com/ClickHouse/ClickHouse/issues/70874). [#81451](https://github.com/ClickHouse/ClickHouse/pull/81451) ([alesapin](https://github.com/alesapin)). -* Добавлена поддержка `TimestampTZ` в каталоге Glue. Устраняет проблему [#81654](https://github.com/ClickHouse/ClickHouse/issues/81654). [#83132](https://github.com/ClickHouse/ClickHouse/pull/83132) ([Konstantин Vedерников](https://github.com/scanhex12)). -* В клиент ClickHouse добавлена функция генерации SQL‑запросов с помощью ИИ. Теперь вы можете генерировать SQL‑запросы из описаний на естественном языке, добавляя к своему запросу префикс `??`. Поддерживаются провайдеры OpenAI и Anthropic с автоматическим определением схемы. [#83314](https://github.com/ClickHouse/ClickHouse/pull/83314) ([Kaushik Iska](https://github.com/iskakaushik)). -* Добавлена функция записи Geo-типов в формат WKB. [#82935](https://github.com/ClickHouse/ClickHouse/pull/82935) ([Konstantин Vedерников](https://github.com/scanhex12)). -* Добавлены два новых типа доступа к источникам: `READ` и `WRITE`; все прежние типы доступа, связанные с источниками, объявлены устаревшими. Вместо `GRANT S3 ON *.* TO user` теперь используется: `GRANT READ, WRITE ON S3 TO user`. Это также позволяет разделять права `READ` и `WRITE` для источников, например: `GRANT READ ON * TO user`, `GRANT WRITE ON S3 TO user`. Эта функциональность управляется настройкой `access_control_improvements.enable_read_write_grants` и по умолчанию отключена. [#73659](https://github.com/ClickHouse/ClickHouse/pull/73659) ([pufit](https://github.com/pufit)). -* NumericIndexedVector: новая векторная структура данных на основе bit-sliced-сжатия и Roaring-bitmap, с более чем 20 функциями для построения, анализа и покомпонентной арифметики. Может сократить объем хранимых данных и ускорить операции соединения (JOIN), фильтрацию и агрегации на разреженных данных. Реализует [#70582](https://github.com/ClickHouse/ClickHouse/issues/70582) и идеи статьи [“Large-Scale Metric Computation in Online Controlled Experiment Platform”](https://arxiv.org/abs/2405.08411) авторов T. Xiong и Y. Wang (VLDB 2024). [#74193](https://github.com/ClickHouse/ClickHouse/pull/74193) ([FriendLey](https://github.com/FriendLey)). -* Настройка нагрузки `max_waiting_queries` теперь поддерживается. Её можно использовать для ограничения длины очереди запросов. Если предел достигнут, все последующие запросы будут прерваны с ошибкой `SERVER_OVERLOADED`. [#81250](https://github.com/ClickHouse/ClickHouse/pull/81250) ([Oleg Doronin](https://github.com/dorooleg)). -* Добавлены финансовые функции: `financialInternalRateOfReturnExtended` (`XIRR`), `financialInternalRateOfReturn` (`IRR`), `financialNetPresentValueExtended` (`XNPV`), `financialNetPresentValue` (`NPV`). [#81599](https://github.com/ClickHouse/ClickHouse/pull/81599) ([Joanna Hulboj](https://github.com/jh0x)). -* Добавлены геопространственные функции `polygonsIntersectCartesian` и `polygonsIntersectSpherical` для проверки пересечения двух полигонов. [#81882](https://github.com/ClickHouse/ClickHouse/pull/81882) ([Paul Lamb](https://github.com/plamb)). -* Добавлена поддержка виртуального столбца `_part_granule_offset` в таблицах семейства MergeTree. Этот столбец указывает индекс (с нуля) гранулы/метки, к которой относится каждая строка внутри соответствующей части данных. Это устраняет проблему [#79572](https://github.com/ClickHouse/ClickHouse/issues/79572). [#82341](https://github.com/ClickHouse/ClickHouse/pull/82341) ([Amos Bird](https://github.com/amosbird)). [#82341](https://github.com/ClickHouse/ClickHouse/pull/82341) ([Amos Bird](https://github.com/amosbird)) -* Добавлены SQL-функции `colorSRGBToOkLCH` и `colorOkLCHToSRGB` для преобразования цветов между цветовыми пространствами sRGB и OkLCH. [#83679](https://github.com/ClickHouse/ClickHouse/pull/83679) ([Fgrtue](https://github.com/Fgrtue)). -* Разрешено использование параметров в запросах `CREATE USER` для имён пользователей. [#81387](https://github.com/ClickHouse/ClickHouse/pull/81387) ([Diskein](https://github.com/Diskein)). -* Таблица `system.formats` теперь содержит расширенную информацию о форматах, например тип содержимого HTTP, возможности автоматического вывода схемы и т. д. [#81505](https://github.com/ClickHouse/ClickHouse/pull/81505) ([Alexey Milovidov](https://github.com/alexey-milovidov)). - -#### Экспериментальные возможности {#experimental-feature} - -* Добавлены функции `searchAny` и `searchAll`, которые являются универсальными инструментами для поиска по текстовым индексам. [#80641](https://github.com/ClickHouse/ClickHouse/pull/80641) ([Elmi Ahmadov](https://github.com/ahmadov)). -* Текстовый индекс теперь поддерживает новый токенизатор `split`. [#81752](https://github.com/ClickHouse/ClickHouse/pull/81752) ([Elmi Ahmadov](https://github.com/ahmadov)). -* Изменено значение размера гранул индекса по умолчанию для индексов `text` на 64. Это повышает ожидаемую производительность среднего тестового запроса во внутренних бенчмарках. [#82162](https://github.com/ClickHouse/ClickHouse/pull/82162) ([Jimmy Aguilar Mena](https://github.com/Ergus)). -* 256-битная битовая карта хранит исходящие метки состояния в упорядоченном виде, но исходящие состояния сохраняются на диск в том порядке, в котором они появляются в хеш-таблице. Поэтому при чтении с диска метка будет указывать на некорректное следующее состояние. [#82783](https://github.com/ClickHouse/ClickHouse/pull/82783) ([Elmi Ahmadov](https://github.com/ahmadov)). -* Включено сжатие zstd для блоба дерева FST в текстовых индексах. [#83093](https://github.com/ClickHouse/ClickHouse/pull/83093) ([Elmi Ahmadov](https://github.com/ahmadov)). -* Переведён индекс векторного сходства в стадию beta. Добавлен параметр-псевдоним `enable_vector_similarity_index`, который необходимо включить для использования индекса векторного сходства. [#83459](https://github.com/ClickHouse/ClickHouse/pull/83459) ([Robert Schulze](https://github.com/rschu1ze)). -* Удалена экспериментальная логика `send_metadata`, связанная с экспериментальной репликацией без копирования (zero-copy). Она никогда не использовалась, и этот код никто не поддерживал. Поскольку не было даже тестов, связанных с ней, велика вероятность, что она уже давно была сломана. [#82508](https://github.com/ClickHouse/ClickHouse/pull/82508) ([alesapin](https://github.com/alesapin)). -* Интегрирован `StorageKafka2` в `system.kafka_consumers`. [#82652](https://github.com/ClickHouse/ClickHouse/pull/82652) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* Реализована оценка сложных CNF/DNF-выражений, например `(a < 1 and a > 0) or b = 3`, по статистике. [#82663](https://github.com/ClickHouse/ClickHouse/pull/82663) ([Han Fei](https://github.com/hanfei1991)). - -#### Повышение производительности {#performance-improvement} - -* Введено асинхронное логирование. Вывод логов на медленное устройство больше не замедляет выполнение запросов. [#82516](https://github.com/ClickHouse/ClickHouse/pull/82516) ([Raúl Marín](https://github.com/Algunenano)). Ограничено максимальное количество записей, хранящихся в очереди. [#83214](https://github.com/ClickHouse/ClickHouse/pull/83214) ([Raúl Марин](https://github.com/Algunenano)). -* Параллельный распределённый INSERT SELECT по умолчанию включён в режиме, при котором INSERT SELECT выполняется независимо на каждом шарде, см. настройку `parallel_distributed_insert_select`. [#83040](https://github.com/ClickHouse/ClickHouse/pull/83040) ([Igor Nikonov](https://github.com/devcrafter)). -* Когда агрегирующий запрос содержит только одну функцию `count()` по не-`Nullable` столбцу, логика агрегации полностью встраивается на этапе обхода хеш-таблицы. Это позволяет избежать выделения и поддержания какого-либо агрегирующего состояния, что существенно снижает потребление памяти и накладные расходы на CPU. Это частично решает [#81982](https://github.com/ClickHouse/ClickHouse/issues/81982). [#82104](https://github.com/ClickHouse/ClickHouse/pull/82104) ([Amos Bird](https://github.com/amosbird)). -* Производительность `HashJoin` оптимизирована за счёт удаления дополнительного прохода по хеш-таблицам в типичном случае, когда есть только один ключевой столбец, а также исключения проверок `null_map` и `join_mask`, когда они всегда равны `true`/`false`. [#82308](https://github.com/ClickHouse/ClickHouse/pull/82308) ([Nikita Taranov](https://github.com/nickitat)). -* Небольшая оптимизация комбинатора `-If`. [#78454](https://github.com/ClickHouse/ClickHouse/pull/78454) ([李扬](https://github.com/taiyang-li)). -* Запросы векторного поиска с использованием индекса векторного сходства выполняются с меньшей задержкой за счет сокращения числа операций чтения из хранилища и снижения нагрузки на CPU. [#79103](https://github.com/ClickHouse/ClickHouse/pull/79103) ([Shankar Iyer](https://github.com/shankar-iyer)). -* Учитывать `merge_tree_min_{rows,bytes}_for_seek` в `filterPartsByQueryConditionCache`, чтобы привести его в соответствие с другими методами, фильтрующими по индексам. [#80312](https://github.com/ClickHouse/ClickHouse/pull/80312) ([李扬](https://github.com/taiyang-li)). -* Сделать конвейер после шага `TOTALS` многопоточным. [#80331](https://github.com/ClickHouse/ClickHouse/pull/80331) ([UnamedRus](https://github.com/UnamedRus)). -* Исправлена фильтрация по ключу в хранилищах `Redis` и `KeeperMap`. [#81833](https://github.com/ClickHouse/ClickHouse/pull/81833) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* Добавлена новая настройка `min_joined_block_size_rows` (аналогичная `min_joined_block_size_bytes`; по умолчанию 65409) для управления минимальным размером блока (в строках) для входных и выходных блоков операции JOIN (если алгоритм JOIN это поддерживает). Маленькие блоки будут укрупняться. [#81886](https://github.com/ClickHouse/ClickHouse/pull/81886) ([Nikita Taranov](https://github.com/nickitat)). -* `ATTACH PARTITION` больше не приводит к сбросу всех кэшей. [#82377](https://github.com/ClickHouse/ClickHouse/pull/82377) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Оптимизировано формирование плана для коррелированных подзапросов за счёт удаления избыточных операций JOIN с использованием классов эквивалентности. Если для всех коррелированных столбцов существуют эквивалентные выражения и включена настройка `query_plan_correlated_subqueries_use_substitution`, оператор `CROSS JOIN` не генерируется. [#82435](https://github.com/ClickHouse/ClickHouse/pull/82435) ([Dmitry Novik](https://github.com/novikd)). -* Считывать в коррелированном подзапросе только требуемые столбцы, если он выступает аргументом функции `EXISTS`. [#82443](https://github.com/ClickHouse/ClickHouse/pull/82443) ([Dmitry Novik](https://github.com/novikd)). -* Немного ускорено сравнение деревьев запросов при анализе запроса. [#82617](https://github.com/ClickHouse/ClickHouse/pull/82617) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Добавлено выравнивание в `Counter` из `ProfileEvents` для уменьшения эффекта ложного совместного использования кэша. [#82697](https://github.com/ClickHouse/ClickHouse/pull/82697) ([Jiebin Sun](https://github.com/jiebinn)). -* Оптимизации для `null_map` и `JoinMask` из [#82308](https://github.com/ClickHouse/ClickHouse/issues/82308) были применены к операциям JOIN с несколькими дизъюнктами. Также была оптимизирована структура данных `KnownRowsHolder`. [#83041](https://github.com/ClickHouse/ClickHouse/pull/83041) ([Nikita Taranov](https://github.com/nickitat)). -* Обычный `std::vector` используется для join-флагов, чтобы избежать вычисления хэша при каждом доступе к флагам. [#83043](https://github.com/ClickHouse/ClickHouse/pull/83043) ([Nikita Taranov](https://github.com/nickitat)). -* Не выделяйте память для результирующих столбцов заранее, когда `HashJoin` использует режим отложенного (`lazy`) вывода. Это неэффективно, особенно когда количество совпадений невелико. Кроме того, после завершения операции соединения мы знаем точное количество совпадений, поэтому можем более точно предварительно выделить память. [#83304](https://github.com/ClickHouse/ClickHouse/pull/83304) ([Nikita Taranov](https://github.com/nickitat)). -* Минимизировано копирование данных в памяти в заголовках портов при построении конвейера. Исходный [PR](https://github.com/ClickHouse/ClickHouse/pull/70105) от [heymind](https://github.com/heymind). [#83381](https://github.com/ClickHouse/ClickHouse/pull/83381) ([Raúl Marín](https://github.com/Algunenano)). -* Улучшен процесс запуска clickhouse-keeper при использовании хранилища RocksDB. [#83390](https://github.com/ClickHouse/ClickHouse/pull/83390) ([Antonio Andelic](https://github.com/antonio2368)). -* Старайтесь не удерживать блокировку во время создания снимка данных хранилища, чтобы уменьшить конкуренцию за блокировку при высокой конкурентной нагрузке. [#83510](https://github.com/ClickHouse/ClickHouse/pull/83510) ([Duc Canh Le](https://github.com/canhld94)). -* Повышена производительность формата входных данных `ProtobufSingle` за счёт повторного использования сериализатора при отсутствии ошибок парсинга. [#83613](https://github.com/ClickHouse/ClickHouse/pull/83613) ([Eduard Karacharov](https://github.com/korowa)). -* Улучшена производительность построения конвейера, что позволяет ускорить выполнение коротких запросов. [#83631](https://github.com/ClickHouse/ClickHouse/pull/83631) ([Raúl Marín](https://github.com/Algunenano)). -* Оптимизирован `MergeTreeReadersChain::getSampleBlock`, ускоряющий короткие запросы. [#83875](https://github.com/ClickHouse/ClickHouse/pull/83875) ([Raúl Marín](https://github.com/Algunenano)). -* Ускорен вывод списка таблиц в каталогах данных за счёт асинхронных запросов. [#81084](https://github.com/ClickHouse/ClickHouse/pull/81084) ([alesapin](https://github.com/alesapin)). -* Добавлен джиттер в механизм повторных попыток S3 при включённой настройке `s3_slow_all_threads_after_network_error`. [#81849](https://github.com/ClickHouse/ClickHouse/pull/81849) ([zoomxi](https://github.com/zoomxi)). - -#### Улучшения {#improvement} - -* Подсветка скобок разными цветами для лучшей читаемости. [#82538](https://github.com/ClickHouse/ClickHouse/pull/82538) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Подсвечивать метасимволы в шаблонах LIKE/REGEXP по мере ввода. Это уже реализовано в `clickhouse-format` и в выводе `clickhouse-client`, но теперь работает и в приглашении командной строки. [#82871](https://github.com/ClickHouse/ClickHouse/pull/82871) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Подсветка в `clickhouse-format` и в выводе клиента будет работать так же, как подсветка в приглашении командной строки. [#82874](https://github.com/ClickHouse/ClickHouse/pull/82874) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Теперь диски `plain_rewritable` можно использовать для метаданных баз данных. Реализованы методы `moveFile` и `replaceFile` в `plain_rewritable`, чтобы поддержать его использование в качестве диска базы данных. [#79424](https://github.com/ClickHouse/ClickHouse/pull/79424) ([Tuan Pham Anh](https://github.com/tuanpach)). -* Разрешено создание резервных копий для баз данных `PostgreSQL`, `MySQL` и `DataLake`. Резервная копия такой базы данных будет сохранять только определение, но не данные, которые в ней хранятся. [#79982](https://github.com/ClickHouse/ClickHouse/pull/79982) ([Nikolay Degterinsky](https://github.com/evillique)). -* Настройка `allow_experimental_join_condition` помечена как устаревшая, так как соответствующее поведение теперь всегда включено. [#80566](https://github.com/ClickHouse/ClickHouse/pull/80566) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Добавить метрики нагрузки к асинхронным метрикам ClickHouse. [#80779](https://github.com/ClickHouse/ClickHouse/pull/80779) ([Xander Garbett](https://github.com/Garbett1)). -* Добавлены метрики `MarkCacheEvictedBytes`, `MarkCacheEvictedMarks`, `MarkCacheEvictedFiles` для отслеживания вытеснений из кэша меток. (issue [#60989](https://github.com/ClickHouse/ClickHouse/issues/60989)). [#80799](https://github.com/ClickHouse/ClickHouse/pull/80799) ([Shivji Kumar Jha](https://github.com/shiv4289)). -* Добавлена поддержка записи Parquet enum в виде массива байт, как предписывает [спецификация](https://github.com/apache/parquet-format/blob/master/LogicalTypes.md#enum). [#81090](https://github.com/ClickHouse/ClickHouse/pull/81090) ([Arthur Passos](https://github.com/arthurpassos)). -* Улучшение для движка таблиц `DeltaLake`: в delta-kernel-rs появился API `ExpressionVisitor`, который реализован в этом PR и используется для преобразования выражений по столбцам партиционирования (он заменит старый, устаревший способ в delta-kernel-rs, который ранее использовался в нашем коде). В будущем этот `ExpressionVisitor` также позволит реализовать отсечение (pruning) на основе статистики и некоторые проприетарные возможности Delta Lake. Дополнительно цель этого изменения — поддержать отсечение партиций в движке таблиц `DeltaLakeCluster` (результат разобранного выражения — ActionsDAG — будет сериализован и отправлен от инициатора вместе с путём к данным, потому что такая информация, необходимая для отсечения, доступна только как метаинформация при получении списка файлов с данными, что выполняется только инициатором, но должна применяться к данным на каждом сервере чтения). [#81136](https://github.com/ClickHouse/ClickHouse/pull/81136) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Сохранять имена элементов при выводе супертипов для именованных кортежей. [#81345](https://github.com/ClickHouse/ClickHouse/pull/81345) ([lgbo](https://github.com/lgbo-ustc)). -* Подсчитывайте потреблённые сообщения вручную, чтобы не зависеть от ранее зафиксированного смещения в StorageKafka2. [#81662](https://github.com/ClickHouse/ClickHouse/pull/81662) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* Добавлен `clickhouse-keeper-utils` — новый инструмент командной строки для управления и анализа данных ClickHouse Keeper. Инструмент поддерживает выгрузку состояния из снапшотов и журналов изменений (changelog), анализ файлов changelog и извлечение отдельных диапазонов логов. [#81677](https://github.com/ClickHouse/ClickHouse/pull/81677) ([Antonio Andelic](https://github.com/antonio2368)). -* Общие и помпользовательские ограничители сетевой пропускной способности никогда не сбрасываются, что исключает превышение лимитов `max_network_bandwidth_for_all_users` и `max_network_bandwidth_for_all_users`. [#81729](https://github.com/ClickHouse/ClickHouse/pull/81729) ([Sergei Trifonov](https://github.com/serxa)). -* Добавлена поддержка записи в формат GeoParquet. [#81784](https://github.com/ClickHouse/ClickHouse/pull/81784) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* Запрещён запуск мутации ALTER `RENAME COLUMN`, если она попытается переименовать столбец, на который в данный момент распространяется незавершённая мутация данных. [#81823](https://github.com/ClickHouse/ClickHouse/pull/81823) ([Mikhail Artemenko](https://github.com/Michicosun)). -* Заголовок Connection теперь отправляется в конце списка заголовков, когда уже известно, нужно ли сохранять соединение. [#81951](https://github.com/ClickHouse/ClickHouse/pull/81951) ([Sema Checherinda](https://github.com/CheSema)). -* Настройте очередь TCP-серверов (по умолчанию — 64) в соответствии со значением `listen_backlog` (по умолчанию — 4096). [#82045](https://github.com/ClickHouse/ClickHouse/pull/82045) ([Azat Khuzhin](https://github.com/azat)). -* Добавлена возможность перезагружать `max_local_read_bandwidth_for_server` и `max_local_write_bandwidth_for_server` на лету без перезапуска сервера. [#82083](https://github.com/ClickHouse/ClickHouse/pull/82083) ([Kai Zhu](https://github.com/nauu)). -* Добавлена возможность очистки всех предупреждений из таблицы `system.warnings` с помощью `TRUNCATE TABLE system.warnings`. [#82087](https://github.com/ClickHouse/ClickHouse/pull/82087) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Исправлено отсечение партиций в кластерных функциях дата-лейка. [#82131](https://github.com/ClickHouse/ClickHouse/pull/82131) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Исправлено чтение секционированных данных в табличной функции DeltaLakeCluster. В этом PR версия протокола кластерных функций повышена, что позволяет передавать дополнительную информацию от инициатора к репликам. Эта дополнительная информация содержит выражение преобразования delta-kernel, которое необходимо для разбора столбцов секционирования (а также некоторых других элементов в будущем, например, генерируемых столбцов и т. д.). [#82132](https://github.com/ClickHouse/ClickHouse/pull/82132) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Функция `reinterpret` теперь поддерживает преобразование в `Array(T)`, где `T` — тип фиксированного размера (issue [#82621](https://github.com/ClickHouse/ClickHouse/issues/82621)). [#83399](https://github.com/ClickHouse/ClickHouse/pull/83399) ([Shankar Iyer](https://github.com/shankar-iyer)). -* Теперь база данных Datalake выбрасывает более понятное исключение. Исправлена [#81211](https://github.com/ClickHouse/ClickHouse/issues/81211). [#82304](https://github.com/ClickHouse/ClickHouse/pull/82304) ([alesapin](https://github.com/alesapin)). -* Улучшена операция CROSS JOIN за счёт возврата false из `HashJoin::needUsedFlagsForPerRightTableRow`. [#82379](https://github.com/ClickHouse/ClickHouse/pull/82379) ([lgbo](https://github.com/lgbo-ustc)). -* Добавлена возможность записывать и читать столбцы типа Map как массив кортежей (Array(Tuple)). [#82408](https://github.com/ClickHouse/ClickHouse/pull/82408) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). -* Добавлен вывод лицензий Rust-крейтов в таблицу `system.licenses`. [Rust](https://clickhouse.com/blog/rust) [#82440](https://github.com/ClickHouse/ClickHouse/pull/82440) ([Raúl Marín](https://github.com/Algunenano)). -* Теперь макросы, такие как `{uuid}`, можно использовать в параметре `keeper_path` движка таблицы S3Queue. [#82463](https://github.com/ClickHouse/ClickHouse/pull/82463) ([Nikolay Degterinsky](https://github.com/evillique)). -* Улучшение в Keeper: перемещение файлов журнала изменений между дисками в фоновом потоке. Ранее при перемещении журнала изменений на другой диск Keeper глобально блокировался до завершения операции. Это приводило к ухудшению производительности, если перемещение занимало много времени (например, на диск S3). [#82485](https://github.com/ClickHouse/ClickHouse/pull/82485) ([Antonio Andelic](https://github.com/antonio2368)). -* Улучшение в Keeper: добавлена новая настройка `keeper_server.cleanup_old_and_ignore_new_acl`. Если она включена, у всех узлов будут очищены ACL, а ACL для новых запросов будет игнорироваться. Если цель — полностью удалить ACL с узлов, важно оставить эту настройку включённой до тех пор, пока не будет создан новый snapshot. [#82496](https://github.com/ClickHouse/ClickHouse/pull/82496) ([Antonio Andelic](https://github.com/antonio2368)). -* Добавлена новая настройка сервера `s3queue_disable_streaming`, которая отключает стриминг в таблицах с движком S3Queue. Эту настройку можно изменять без перезапуска сервера. [#82515](https://github.com/ClickHouse/ClickHouse/pull/82515) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Рефакторинг механизма динамического изменения размера кеша файловой системы. Добавлено больше логирования для диагностики. [#82556](https://github.com/ClickHouse/ClickHouse/pull/82556) ([Kseniia Sumarokova](https://github.com/kssenii)). -* `clickhouse-server` без файла конфигурации также будет слушать порт PostgreSQL 9005, как и с конфигурацией по умолчанию. [#82633](https://github.com/ClickHouse/ClickHouse/pull/82633) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* В `ReplicatedMergeTree::executeMetadataAlter` мы получаем `StorageID` и, не используя `DDLGuard`, пытаемся вызвать `IDatabase::alterTable`. За это время мы технически могли заменить рассматриваемую таблицу другой, так что при получении определения таблицы мы получим неверное. Чтобы избежать этого, мы добавляем отдельную проверку совпадения UUID при попытке вызвать `IDatabase::alterTable`. [#82666](https://github.com/ClickHouse/ClickHouse/pull/82666) ([Nikolay Degterinsky](https://github.com/evillique)). -* При присоединении базы данных с удалённым диском только для чтения нужно вручную добавить UUID таблиц в DatabaseCatalog. [#82670](https://github.com/ClickHouse/ClickHouse/pull/82670) ([Tuan Pham Anh](https://github.com/tuanpach)). -* Запрещено использование значений `nan` и `inf` с `NumericIndexedVector`. Исправляет [#82239](https://github.com/ClickHouse/ClickHouse/issues/82239) и немного больше. [#82681](https://github.com/ClickHouse/ClickHouse/pull/82681) ([Raufs Dunamalijevs](https://github.com/rienath)). -* Не пропускайте нулевые значения в форматах заголовков `X-ClickHouse-Progress` и `X-ClickHouse-Summary`. [#82727](https://github.com/ClickHouse/ClickHouse/pull/82727) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* Улучшение в Keeper: поддержка отдельных прав доступа для ACL world:anyone. [#82755](https://github.com/ClickHouse/ClickHouse/pull/82755) ([Antonio Andelic](https://github.com/antonio2368)). -* Не разрешать выполнение `RENAME COLUMN` или `DROP COLUMN` для столбцов, явно указанных в списке столбцов для суммирования в SummingMergeTree. Закрывает [#81836](https://github.com/ClickHouse/ClickHouse/issues/81836). [#82821](https://github.com/ClickHouse/ClickHouse/pull/82821) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Улучшена точность преобразования из `Decimal` в `Float32`. Реализовано преобразование из `Decimal` в `BFloat16`. Закрывает [#82660](https://github.com/ClickHouse/ClickHouse/issues/82660). [#82823](https://github.com/ClickHouse/ClickHouse/pull/82823) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Полосы прокрутки в веб-интерфейсе станут выглядеть немного лучше. [#82869](https://github.com/ClickHouse/ClickHouse/pull/82869) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* `clickhouse-server` со встроенной конфигурацией позволит использовать веб-интерфейс, отвечая на HTTP-запрос OPTIONS. [#82870](https://github.com/ClickHouse/ClickHouse/pull/82870) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Добавлена поддержка указания дополнительных ACL Keeper для путей в конфигурации. Если вы хотите добавить дополнительные ACL для конкретного пути, задайте их в конфигурации в секции `zookeeper.path_acls`. [#82898](https://github.com/ClickHouse/ClickHouse/pull/82898) ([Antonio Andelic](https://github.com/antonio2368)). -* Теперь снимок мутаций будет формироваться на основе снимка видимых частей. Также счетчики мутаций, используемые в снимке, будут пересчитаны по включённым мутациям. [#82945](https://github.com/ClickHouse/ClickHouse/pull/82945) ([Mikhail Artemenko](https://github.com/Michicosun)). -* Добавлен ProfileEvent, когда Keeper отклоняет запись из‑за мягкого ограничения памяти. [#82963](https://github.com/ClickHouse/ClickHouse/pull/82963) ([Xander Garbett](https://github.com/Garbett1)). -* Добавлены столбцы `commit_time`, `commit_id` в таблицу `system.s3queue_log`. [#83016](https://github.com/ClickHouse/ClickHouse/pull/83016) ([Kseniia Sumarokova](https://github.com/kssenii)). -* В некоторых случаях нам нужно иметь несколько измерений в метриках. Например, считать неудавшиеся слияния или мутации по кодам ошибок, а не вести один общий счётчик. Представлена таблица `system.dimensional_metrics`, которая как раз это и делает и добавляет первую многомерную метрику `failed_merges`. [#83030](https://github.com/ClickHouse/ClickHouse/pull/83030) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* Объединить предупреждения о неизвестных настройках в клиенте ClickHouse и логировать их в виде сводки. [#83042](https://github.com/ClickHouse/ClickHouse/pull/83042) ([Bharat Nallan](https://github.com/bharatnc)). -* Клиент ClickHouse теперь указывает локальный порт при возникновении ошибки подключения. [#83050](https://github.com/ClickHouse/ClickHouse/pull/83050) ([Jianfei Hu](https://github.com/incfly)). -* Немного улучшена обработка ошибок в `AsynchronousMetrics`. Если каталог `/sys/block` существует, но недоступен, сервер запустится без мониторинга блочных устройств. Закрывает [#79229](https://github.com/ClickHouse/ClickHouse/issues/79229). [#83115](https://github.com/ClickHouse/ClickHouse/pull/83115) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Завершать работу SystemLogs после обычных таблиц (и перед системными таблицами, вместо того чтобы делать это перед обычными). [#83134](https://github.com/ClickHouse/ClickHouse/pull/83134) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Добавлено логирование процесса завершения работы `S3Queue`. [#83163](https://github.com/ClickHouse/ClickHouse/pull/83163) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Возможность интерпретировать `Time` и `Time64` как `MM:SS`, `M:SS`, `SS` или `S`. [#83299](https://github.com/ClickHouse/ClickHouse/pull/83299) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Когда `distributed_ddl_output_mode='*_only_active'`, новые или восстановленные реплики с лагом репликации, превышающим `max_replication_lag_to_enqueue`, не ожидаются. Это должно помочь избежать ошибки `DDL task is not finished on some hosts`, когда новая реплика становится активной после завершения инициализации или восстановления, но за время инициализации накопила большой объём журнала репликации. Также реализован запрос `SYSTEM SYNC DATABASE REPLICA STRICT`, который ожидает, пока журнал репликации не станет меньше `max_replication_lag_to_enqueue`. [#83302](https://github.com/ClickHouse/ClickHouse/pull/83302) ([Alexander Tokmakov](https://github.com/tavplubix)). -* Не выводить слишком длинные описания действий с выражениями в сообщениях об исключениях. Закрывает [#83164](https://github.com/ClickHouse/ClickHouse/issues/83164). [#83350](https://github.com/ClickHouse/ClickHouse/pull/83350) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Добавлена возможность анализировать префикс и суффикс части, а также проверять покрытие для неконстантных столбцов. [#83377](https://github.com/ClickHouse/ClickHouse/pull/83377) ([Mikhail Artemenko](https://github.com/Michicosun)). -* Унифицированы имена параметров ODBC и JDBC при использовании именованных коллекций. [#83410](https://github.com/ClickHouse/ClickHouse/pull/83410) ([Andrey Zvonov](https://github.com/zvonand)). -* Когда хранилище останавливается, `getStatus` генерирует исключение `ErrorCodes::ABORTED`. Ранее это приводило к сбою запроса SELECT. Теперь мы перехватываем исключения `ErrorCodes::ABORTED` и намеренно их игнорируем. [#83435](https://github.com/ClickHouse/ClickHouse/pull/83435) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* Добавлены метрики использования ресурсов процесса (такие, как `UserTimeMicroseconds`, `SystemTimeMicroseconds`, `RealTimeMicroseconds`) к событиям профиля part_log для записей `MergeParts`. [#83460](https://github.com/ClickHouse/ClickHouse/pull/83460) ([Vladimir Cherkasov](https://github.com/vdimir)). -* В Keeper по умолчанию включены флаги возможностей `create_if_not_exists`, `check_not_exists`, `remove_recursive`, что позволяет использовать новые типы запросов. [#83488](https://github.com/ClickHouse/ClickHouse/pull/83488) ([Antonio Andelic](https://github.com/antonio2368)). -* Останавливает стриминг S3(Azure/etc)Queue перед остановкой любых таблиц при завершении работы сервера. [#83530](https://github.com/ClickHouse/ClickHouse/pull/83530) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Включена поддержка `Date`/`Date32` в виде целых чисел во входных форматах `JSON`. [#83597](https://github.com/ClickHouse/ClickHouse/pull/83597) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). -* Сделали сообщения об исключениях в ряде ситуаций при загрузке и добавлении проекций более понятными. [#83728](https://github.com/ClickHouse/ClickHouse/pull/83728) ([Robert Schulze](https://github.com/rschu1ze)). -* Добавлена конфигурационная опция, позволяющая пропустить проверку целостности бинарного файла по контрольным суммам для `clickhouse-server`. Решает [#83637](https://github.com/ClickHouse/ClickHouse/issues/83637). [#83749](https://github.com/ClickHouse/ClickHouse/pull/83749) ([Rafael Roquetto](https://github.com/rafaelroquetto)). - -#### Исправление ошибки (некорректное поведение, заметное пользователям, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* Исправлено неверное значение по умолчанию для параметра `--reconnect` в `clickhouse-benchmark`. Оно было изменено по ошибке в [#79465](https://github.com/ClickHouse/ClickHouse/issues/79465). [#82677](https://github.com/ClickHouse/ClickHouse/pull/82677) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Исправлено непоследовательное форматирование инструкции `CREATE DICTIONARY`. Закрывает [#82105](https://github.com/ClickHouse/ClickHouse/issues/82105). [#82829](https://github.com/ClickHouse/ClickHouse/pull/82829) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Исправлена непоследовательность форматирования TTL при наличии в нём функции `materialize`. Закрывает [#82828](https://github.com/ClickHouse/ClickHouse/issues/82828). [#82831](https://github.com/ClickHouse/ClickHouse/pull/82831) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Исправлено непоследовательное форматирование `EXPLAIN AST` в подзапросе, если он содержит опции вывода, такие как `INTO OUTFILE`. Закрывает [#82826](https://github.com/ClickHouse/ClickHouse/issues/82826). [#82840](https://github.com/ClickHouse/ClickHouse/pull/82840) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Исправлено непоследовательное форматирование заключённых в скобки выражений с псевдонимами в контексте, где псевдонимы не допускаются. Закрывает [#82836](https://github.com/ClickHouse/ClickHouse/issues/82836). Закрывает [#82837](https://github.com/ClickHouse/ClickHouse/issues/82837). [#82867](https://github.com/ClickHouse/ClickHouse/pull/82867) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Теперь используется корректный код ошибки при умножении состояния агрегатной функции на IPv4. Закрывает [#82817](https://github.com/ClickHouse/ClickHouse/issues/82817). [#82818](https://github.com/ClickHouse/ClickHouse/pull/82818) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Исправлена логическая ошибка в кэше файловой системы: «Having zero bytes but range is not finished». [#81868](https://github.com/ClickHouse/ClickHouse/pull/81868) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Пересчитывать индекс min-max, когда TTL уменьшает число строк, чтобы обеспечить корректность алгоритмов, которые на нём основаны, таких как `minmax_count_projection`. Это исправляет [#77091](https://github.com/ClickHouse/ClickHouse/issues/77091). [#77166](https://github.com/ClickHouse/ClickHouse/pull/77166) ([Amos Bird](https://github.com/amosbird)). -* Для запросов с сочетанием `ORDER BY ... LIMIT BY ... LIMIT N`, когда ORDER BY выполняется как PartialSorting, счётчик `rows_before_limit_at_least` теперь отражает количество строк, обработанных предложением LIMIT, а не количество строк, обработанных преобразованием сортировки. [#78999](https://github.com/ClickHouse/ClickHouse/pull/78999) ([Eduard Karacharov](https://github.com/korowa)). -* Исправлено избыточное пропускание гранул при фильтрации по token/ngram-индексам с использованием регулярного выражения с альтернацией, в котором первая альтернатива не является литералом. [#79373](https://github.com/ClickHouse/ClickHouse/pull/79373) ([Eduard Karacharov](https://github.com/korowa)). -* Исправлена логическая ошибка, связанная с оператором `<=>` и таблицей Join, теперь при выполнении запроса возвращается корректный код ошибки. [#80165](https://github.com/ClickHouse/ClickHouse/pull/80165) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Исправлено аварийное завершение работы функции `loop` при использовании с семейством функций `remote`. Обеспечено соблюдение предложения LIMIT в `loop(remote(...))`. [#80299](https://github.com/ClickHouse/ClickHouse/pull/80299) ([Julia Kartseva](https://github.com/jkartseva)). -* Исправлено некорректное поведение функций `to_utc_timestamp` и `from_utc_timestamp` при обработке дат до начала Unix-эпохи (1970-01-01) и после максимально допустимой даты (2106-02-07 06:28:15). Теперь эти функции корректно приводят значения к началу эпохи и максимально допустимой дате соответственно. [#80498](https://github.com/ClickHouse/ClickHouse/pull/80498) ([Surya Kant Ranjan](https://github.com/iit2009046)). -* Для некоторых запросов, выполняемых с параллельными репликами, оптимизация упорядоченного чтения может применяться на инициаторе, но не может применяться на удалённых узлах. Это приводит к использованию разных режимов чтения координатором параллельных реплик (на инициаторе) и на удалённых узлах, что является логической ошибкой. [#80652](https://github.com/ClickHouse/ClickHouse/pull/80652) ([Igor Nikonov](https://github.com/devcrafter)). -* Исправлена логическая ошибка при материализации проекции, возникавшая при изменении типа столбца на Nullable. [#80741](https://github.com/ClickHouse/ClickHouse/pull/80741) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлен некорректный пересчёт TTL в `TTL GROUP BY` при обновлении TTL. [#81222](https://github.com/ClickHouse/ClickHouse/pull/81222) ([Evgeniy Ulasik](https://github.com/H0uston)). -* Исправлена ошибка в блум-фильтре Parquet, из-за которой условие вида `WHERE function(key) IN (...)` ошибочно применялось как `WHERE key IN (...)`. [#81255](https://github.com/ClickHouse/ClickHouse/pull/81255) ([Michael Kolupaev](https://github.com/al13n321)). -* Исправлен возможный сбой в `Aggregator` при возникновении исключения при слиянии. [#81450](https://github.com/ClickHouse/ClickHouse/pull/81450) ([Nikita Taranov](https://github.com/nickitat)). -* Исправлен `InterpreterInsertQuery::extendQueryLogElemImpl`, чтобы при необходимости добавлять обратные кавычки к именам баз данных и таблиц (например, если имена содержат специальные символы, такие как `-`). [#81528](https://github.com/ClickHouse/ClickHouse/pull/81528) ([Ilia Shvyrialkin](https://github.com/Harzu)). -* Исправлено выполнение оператора `IN` при `transform_null_in=1` в случае NULL в левом аргументе и не допускающего NULL результата подзапроса. [#81584](https://github.com/ClickHouse/ClickHouse/pull/81584) ([Pavel Kruglov](https://github.com/Avogar)). -* Не выполнять проверку экспериментальных/подозрительных типов при выполнении выражений DEFAULT/MATERIALIZE при чтении из существующей таблицы. [#81618](https://github.com/ClickHouse/ClickHouse/pull/81618) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена ошибка «Context has expired» во время слияний, возникавшая при использовании dict в выражении TTL. [#81690](https://github.com/ClickHouse/ClickHouse/pull/81690) ([Azat Khuzhin](https://github.com/azat)). -* Исправлена монотонность функции cast. [#81722](https://github.com/ClickHouse/ClickHouse/pull/81722) ([zoomxi](https://github.com/zoomxi)). -* Устранена проблема, из-за которой необходимые столбцы не считывались при обработке скалярного коррелированного подзапроса. Устраняет [#81716](https://github.com/ClickHouse/ClickHouse/issues/81716). [#81805](https://github.com/ClickHouse/ClickHouse/pull/81805) ([Dmitry Novik](https://github.com/novikd)). -* В предыдущих версиях сервер возвращал избыточный контент для запросов к `/js`. Это исправляет [#61890](https://github.com/ClickHouse/ClickHouse/issues/61890). [#81895](https://github.com/ClickHouse/ClickHouse/pull/81895) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Ранее определения движка таблиц `MongoDB` могли включать компонент пути в аргументе `host:port`, который молча игнорировался. Интеграция с MongoDB отказывалась загружать такие таблицы. С этим исправлением *мы допускаем загрузку таких таблиц и игнорируем компонент пути*, если движок `MongoDB` имеет пять аргументов, используя имя базы данных из аргументов. *Примечание:* исправление не применяется к вновь создаваемым таблицам или к запросам с табличной функцией `mongo`, а также к источникам словарей и именованным коллекциям. [#81942](https://github.com/ClickHouse/ClickHouse/pull/81942) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Исправлено возможное аварийное завершение работы `Aggregator` при возникновении исключения во время слияния. [#82022](https://github.com/ClickHouse/ClickHouse/pull/82022) ([Nikita Taranov](https://github.com/nickitat)). -* Исправлен анализ фильтра, когда в запросе используется только столбец-псевдоним с константным значением. Исправляет [#79448](https://github.com/ClickHouse/ClickHouse/issues/79448). [#82037](https://github.com/ClickHouse/ClickHouse/pull/82037) ([Dmitry Novik](https://github.com/novikd)). -* Исправлена ошибка LOGICAL_ERROR и последующее падение при использовании одного и того же столбца в TTL одновременно в GROUP BY и SET. [#82054](https://github.com/ClickHouse/ClickHouse/pull/82054) ([Pablo Marcos](https://github.com/pamarcos)). -* Исправлена проверка аргументов табличной функции S3 при маскировке секретов, что предотвращает возможную ошибку `LOGICAL_ERROR`; закрыт [#80620](https://github.com/ClickHouse/ClickHouse/issues/80620). [#82056](https://github.com/ClickHouse/ClickHouse/pull/82056) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Исправлены гонки данных в Iceberg. [#82088](https://github.com/ClickHouse/ClickHouse/pull/82088) ([Azat Khuzhin](https://github.com/azat)). -* Исправлен метод `DatabaseReplicated::getClusterImpl`. Если первый элемент (или несколько первых элементов) `hosts` имеет `id == DROPPED_MARK` и нет других элементов для того же шарда, первый элемент `shards` будет пустым вектором, что приведёт к `std::out_of_range`. [#82093](https://github.com/ClickHouse/ClickHouse/pull/82093) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* Исправлена ошибка копипаста в `arraySimilarity`, запрещено использование весов типов `UInt32` и `Int32`. Обновлены тесты и документация. [#82103](https://github.com/ClickHouse/ClickHouse/pull/82103) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). -* Исправлена ошибка `Not found column` в запросах с `arrayJoin` в условии `WHERE` и с `IndexSet`. [#82113](https://github.com/ClickHouse/ClickHouse/pull/82113) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Исправлена ошибка в интеграции с Glue Catalog. Теперь ClickHouse может читать таблицы с вложенными типами данных, где часть подстолбцов содержит десятичные числа (Decimal), например: `map`. Исправляет [#81301](https://github.com/ClickHouse/ClickHouse/issues/81301). [#82114](https://github.com/ClickHouse/ClickHouse/pull/82114) ([alesapin](https://github.com/alesapin)). -* Исправлено ухудшение производительности в SummingMergeTree, которое появилось в версии 25.5 в [https://github.com/ClickHouse/ClickHouse/pull/79051](https://github.com/ClickHouse/ClickHouse/pull/79051). [#82130](https://github.com/ClickHouse/ClickHouse/pull/82130) ([Pavel Kruglov](https://github.com/Avogar)). -* При передаче настроек по URI используется последнее указанное значение. [#82137](https://github.com/ClickHouse/ClickHouse/pull/82137) ([Sema Checherinda](https://github.com/CheSema)). -* Исправлена ошибка «Context has expired» в Iceberg. [#82146](https://github.com/ClickHouse/ClickHouse/pull/82146) ([Azat Khuzhin](https://github.com/azat)). -* Исправлена возможная взаимоблокировка удалённых запросов при нехватке памяти на сервере. [#82160](https://github.com/ClickHouse/ClickHouse/pull/82160) ([Kirill](https://github.com/kirillgarbar)). -* Исправлено переполнение в функциях `numericIndexedVectorPointwiseAdd`, `numericIndexedVectorPointwiseSubtract`, `numericIndexedVectorPointwiseMultiply`, `numericIndexedVectorPointwiseDivide`, возникавшее при их применении к большим числам. [#82165](https://github.com/ClickHouse/ClickHouse/pull/82165) ([Raufs Dunamalijevs](https://github.com/rienath)). -* Исправлена ошибка в зависимостях таблиц, из-за которой материализованные представления пропускали операции INSERT. [#82222](https://github.com/ClickHouse/ClickHouse/pull/82222) ([Nikolay Degterinsky](https://github.com/evillique)). -* Исправлена потенциальная гонка данных между потоком подсказок и основным клиентским потоком. [#82233](https://github.com/ClickHouse/ClickHouse/pull/82233) ([Azat Khuzhin](https://github.com/azat)). -* Теперь ClickHouse может читать таблицы Iceberg из каталога Glue после изменений схемы. Исправлена проблема [#81272](https://github.com/ClickHouse/ClickHouse/issues/81272). [#82301](https://github.com/ClickHouse/ClickHouse/pull/82301) ([alesapin](https://github.com/alesapin)). -* Исправлена проверка настроек асинхронных метрик `asynchronous_metrics_update_period_s` и `asynchronous_heavy_metrics_update_period_s`. [#82310](https://github.com/ClickHouse/ClickHouse/pull/82310) ([Bharat Nallan](https://github.com/bharatnc)). -* Исправлена логическая ошибка при определении сопоставителя в запросе с несколькими операторами JOIN, закрыт [#81969](https://github.com/ClickHouse/ClickHouse/issues/81969). [#82421](https://github.com/ClickHouse/ClickHouse/pull/82421) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Добавлен срок действия токена AWS ECS, чтобы его можно было обновлять. [#82422](https://github.com/ClickHouse/ClickHouse/pull/82422) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Исправлена ошибка обработки аргументов `NULL` в функции `CASE`. [#82436](https://github.com/ClickHouse/ClickHouse/pull/82436) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Исправлены гонки данных в клиенте (путём отказа от использования глобального контекста) и переопределения `session_timezone` (ранее, если `session_timezone` был установлен, например, в `users.xml`/опциях клиента в непустое значение, а в контексте запроса — в пустое, то использовалось значение из `users.xml`, что неверно; теперь контекст запроса всегда имеет приоритет над глобальным контекстом). [#82444](https://github.com/ClickHouse/ClickHouse/pull/82444) ([Azat Khuzhin](https://github.com/azat)). -* Исправлена работа отключения выравнивания по границе для кэшированного буфера во внешних движках таблиц. Оно было сломано в [https://github.com/ClickHouse/ClickHouse/pull/81868](https://github.com/ClickHouse/ClickHouse/pull/81868). [#82493](https://github.com/ClickHouse/ClickHouse/pull/82493) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Исправлено падение при соединении key-value-хранилища с ключом с приведённым типом. [#82497](https://github.com/ClickHouse/ClickHouse/pull/82497) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* Исправлена ошибка сокрытия значений именованных коллекций в логах и таблице query_log. Закрывает [#82405](https://github.com/ClickHouse/ClickHouse/issues/82405). [#82510](https://github.com/ClickHouse/ClickHouse/pull/82510) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Исправлено возможное падение при логировании при завершении сессии, так как `user_id` иногда мог быть пустым. [#82513](https://github.com/ClickHouse/ClickHouse/pull/82513) ([Bharat Nallan](https://github.com/bharatnc)). -* Исправлены случаи, когда разбор Time мог приводить к проблемам msan. Это исправляет: [#82477](https://github.com/ClickHouse/ClickHouse/issues/82477). [#82514](https://github.com/ClickHouse/ClickHouse/pull/82514) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Запрещено устанавливать `threadpool_writer_pool_size` в ноль, чтобы операции сервера не зависали. [#82532](https://github.com/ClickHouse/ClickHouse/pull/82532) ([Bharat Nallan](https://github.com/bharatnc)). -* Исправлен `LOGICAL_ERROR`, возникавший при анализе выражения политики строк для коррелированных столбцов. [#82618](https://github.com/ClickHouse/ClickHouse/pull/82618) ([Dmitry Novik](https://github.com/novikd)). -* Исправлено некорректное использование метаданных родительской таблицы в табличной функции `mergeTreeProjection`, когда `enable_shared_storage_snapshot_in_query = 1`. Это исправление для [#82634](https://github.com/ClickHouse/ClickHouse/issues/82634). [#82638](https://github.com/ClickHouse/ClickHouse/pull/82638) ([Amos Bird](https://github.com/amosbird)). -* Функции `trim{Left,Right,Both}` теперь поддерживают входные строки типа «FixedString(N)». Например, `SELECT trimBoth(toFixedString('abc', 3), 'ac')` теперь работает. [#82691](https://github.com/ClickHouse/ClickHouse/pull/82691) ([Robert Schulze](https://github.com/rschu1ze)). -* В AzureBlobStorage для нативного копирования мы сравниваем методы аутентификации, и если при этом происходит исключение, теперь выполняется откат к чтению и копированию (т. е. не нативному копированию). [#82693](https://github.com/ClickHouse/ClickHouse/pull/82693) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). -* Исправлена десериализация `groupArraySample`/`groupArrayLast` в случае пустых элементов (при десериализации могла пропускаться часть бинарных данных, если входные данные были пустыми, что могло приводить к повреждению данных при чтении и ошибке UNKNOWN_PACKET_FROM_SERVER в протоколе TCP). Это не затрагивает числовые типы и типы даты/времени. [#82763](https://github.com/ClickHouse/ClickHouse/pull/82763) ([Pedro Ferreira](https://github.com/PedroTadim)). -* Исправлена проблема с резервным копированием пустой таблицы `Memory`, из-за которой восстановление из резервной копии завершалось ошибкой `BACKUP_ENTRY_NOT_FOUND`. [#82791](https://github.com/ClickHouse/ClickHouse/pull/82791) ([Julia Kartseva](https://github.com/jkartseva)). -* Исправлена безопасность работы с исключениями при переписывании union/intersect/except_default_mode. Закрывает [#82664](https://github.com/ClickHouse/ClickHouse/issues/82664). [#82820](https://github.com/ClickHouse/ClickHouse/pull/82820) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Отслеживайте число заданий асинхронной загрузки таблиц. Если какие-либо задания выполняются, не обновляйте `tail_ptr` в `TransactionLog::removeOldEntries`. [#82824](https://github.com/ClickHouse/ClickHouse/pull/82824) ([Tuan Pham Anh](https://github.com/tuanpach)). -* Исправлены гонки данных в Iceberg. [#82841](https://github.com/ClickHouse/ClickHouse/pull/82841) ([Azat Khuzhin](https://github.com/azat)). -* Включение оптимизации `use_skip_indexes_if_final_exact_mode` (введённой в 25.6) могло приводить к тому, что в зависимости от настроек движка `MergeTree` и распределения данных выбирался некорректный диапазон-кандидат. Теперь это исправлено. [#82879](https://github.com/ClickHouse/ClickHouse/pull/82879) ([Shankar Iyer](https://github.com/shankar-iyer)). -* Устанавливать соль для данных аутентификации при разборе AST с типом SCRAM_SHA256_PASSWORD. [#82888](https://github.com/ClickHouse/ClickHouse/pull/82888) ([Tuan Pham Anh](https://github.com/tuanpach)). -* При использовании некеширующей реализации Database метаданные соответствующей таблицы удаляются после возврата столбцов и утраты действительности ссылки. [#82939](https://github.com/ClickHouse/ClickHouse/pull/82939) ([buyval01](https://github.com/buyval01)). -* Исправлена модификация фильтра в запросах с выражением JOIN к таблице с хранилищем `Merge`. Исправляет [#82092](https://github.com/ClickHouse/ClickHouse/issues/82092). [#82950](https://github.com/ClickHouse/ClickHouse/pull/82950) ([Dmitry Novik](https://github.com/novikd)). -* Исправлена ошибка LOGICAL_ERROR в QueryMetricLog: Mutex не может быть NULL. [#82979](https://github.com/ClickHouse/ClickHouse/pull/82979) ([Pablo Marcos](https://github.com/pamarcos)). -* Исправлен некорректный вывод функции `formatDateTime` при использовании спецификатора формата `%f` вместе со спецификаторами переменного размера (например, `%M`). [#83020](https://github.com/ClickHouse/ClickHouse/pull/83020) ([Robert Schulze](https://github.com/rschu1ze)). -* Исправлена проблема снижения производительности при включённом анализаторе, когда вторичные запросы всегда читали все столбцы из представлений (VIEW). Исправляет [#81718](https://github.com/ClickHouse/ClickHouse/issues/81718). [#83036](https://github.com/ClickHouse/ClickHouse/pull/83036) ([Dmitry Novik](https://github.com/novikd)). -* Исправлено некорректное сообщение об ошибке при восстановлении резервной копии на диск с доступом только для чтения. [#83051](https://github.com/ClickHouse/ClickHouse/pull/83051) ([Julia Kartseva](https://github.com/jkartseva)). -* Не выполнять проверку циклических зависимостей при создании таблиц без зависимостей. Это исправляет деградацию производительности в сценариях создания тысяч таблиц, которая появилась в [https://github.com/ClickHouse/ClickHouse/pull/65405](https://github.com/ClickHouse/ClickHouse/pull/65405). [#83077](https://github.com/ClickHouse/ClickHouse/pull/83077) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправляет проблему с неявной интерпретацией отрицательных значений типа Time при чтении данных в таблицу и делает документацию более понятной. [#83091](https://github.com/ClickHouse/ClickHouse/pull/83091) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Не используйте несвязанные части общего словаря в функции `lowCardinalityKeys`. [#83118](https://github.com/ClickHouse/ClickHouse/pull/83118) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Исправлена регрессия при использовании подстолбцов в материализованных представлениях. Исправлены: [#82784](https://github.com/ClickHouse/ClickHouse/issues/82784). [#83221](https://github.com/ClickHouse/ClickHouse/pull/83221) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* Исправлено падение клиента из-за соединения, оставленного в разорванном состоянии после ошибочного INSERT. [#83253](https://github.com/ClickHouse/ClickHouse/pull/83253) ([Azat Khuzhin](https://github.com/azat)). -* Исправлена ошибка, приводившая к падению при вычислении размера блока с пустыми столбцами. [#83271](https://github.com/ClickHouse/ClickHouse/pull/83271) ([Raúl Marín](https://github.com/Algunenano)). -* Исправлена возможная ошибка, приводящая к аварийному завершению работы при использовании типа Variant в UNION. [#83295](https://github.com/ClickHouse/ClickHouse/pull/83295) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена ошибка LOGICAL_ERROR в clickhouse-local при выполнении неподдерживаемых запросов SYSTEM. [#83333](https://github.com/ClickHouse/ClickHouse/pull/83333) ([Surya Kant Ranjan](https://github.com/iit2009046)). -* Исправлен параметр `no_sign_request` для клиента S3. Его можно использовать для явного отключения подписи запросов к S3. Его также можно задавать для конкретных endpoint-ов с помощью настроек на основе endpoint-ов. [#83379](https://github.com/ClickHouse/ClickHouse/pull/83379) ([Antonio Andelic](https://github.com/antonio2368)). -* Исправляет возможное аварийное завершение сервера при выполнении запроса с настройкой 'max_threads=1' под нагрузкой при включённом планировщике ЦП. [#83387](https://github.com/ClickHouse/ClickHouse/pull/83387) ([Fan Ziqi](https://github.com/f2quantum)). -* Исправлено исключение `TOO_DEEP_SUBQUERIES`, возникающее, когда определение CTE ссылается на другое табличное выражение с тем же именем. [#83413](https://github.com/ClickHouse/ClickHouse/pull/83413) ([Dmitry Novik](https://github.com/novikd)). -* Исправлено некорректное поведение, при котором выполнение `REVOKE S3 ON system.*` приводило к отзыву прав S3 для `*.*`. Это исправляет [#83417](https://github.com/ClickHouse/ClickHouse/issues/83417). [#83420](https://github.com/ClickHouse/ClickHouse/pull/83420) ([pufit](https://github.com/pufit)). -* Счётчики async_read_counters больше не разделяются между запросами. [#83423](https://github.com/ClickHouse/ClickHouse/pull/83423) ([Azat Khuzhin](https://github.com/azat)). -* Отключены параллельные реплики, если подзапрос содержит FINAL. [#83455](https://github.com/ClickHouse/ClickHouse/pull/83455) ([zoomxi](https://github.com/zoomxi)). -* Исправлено незначительное переполнение целого числа в конфигурации параметра `role_cache_expiration_time_seconds` (issue [#83374](https://github.com/ClickHouse/ClickHouse/issues/83374)). [#83461](https://github.com/ClickHouse/ClickHouse/pull/83461) ([wushap](https://github.com/wushap)). -* Исправлена ошибка, появившаяся в [https://github.com/ClickHouse/ClickHouse/pull/79963](https://github.com/ClickHouse/ClickHouse/pull/79963). При вставке в MV с определяющим пользователем проверка прав должна выполняться с использованием грантов этого пользователя. Это исправляет [#79951](https://github.com/ClickHouse/ClickHouse/issues/79951). [#83502](https://github.com/ClickHouse/ClickHouse/pull/83502) ([pufit](https://github.com/pufit)). -* Отключена обрезка файлов по границам (bounds-based file pruning) для элементов массивов Iceberg и значений карт Iceberg, включая все их вложенные подполя. [#83520](https://github.com/ClickHouse/ClickHouse/pull/83520) ([Daniil Ivanik](https://github.com/divanik)). -* Исправлены возможные ошибки `file cache not initialized`, возникающие при использовании файлового кеша в качестве временного хранилища данных. [#83539](https://github.com/ClickHouse/ClickHouse/pull/83539) ([Bharat Nallan](https://github.com/bharatnc)). -* Исправление в Keeper: корректно обновлять общее количество наблюдений при закрытии сессии и удалении эфемерных узлов. [#83583](https://github.com/ClickHouse/ClickHouse/pull/83583) ([Antonio Andelic](https://github.com/antonio2368)). -* Исправлен некорректный учёт памяти, связанный с max_untracked_memory. [#83607](https://github.com/ClickHouse/ClickHouse/pull/83607) ([Azat Khuzhin](https://github.com/azat)). -* INSERT SELECT с UNION ALL в редком пограничном случае мог приводить к разыменованию нулевого указателя. Это исправление закрывает [#83618](https://github.com/ClickHouse/ClickHouse/issues/83618). [#83643](https://github.com/ClickHouse/ClickHouse/pull/83643) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Запретить использование нулевого значения для max_insert_block_size, так как оно может вызвать логическую ошибку. [#83688](https://github.com/ClickHouse/ClickHouse/pull/83688) ([Bharat Nallan](https://github.com/bharatnc)). -* Исправлен бесконечный цикл в estimateCompressionRatio() при значении block_size_bytes=0. [#83704](https://github.com/ClickHouse/ClickHouse/pull/83704) ([Azat Khuzhin](https://github.com/azat)). -* Исправлены метрики `IndexUncompressedCacheBytes`/`IndexUncompressedCacheCells`/`IndexMarkCacheBytes`/`IndexMarkCacheFiles` (ранее они включались в метрику без префикса `Cache`). [#83730](https://github.com/ClickHouse/ClickHouse/pull/83730) ([Azat Khuzhin](https://github.com/azat)). -* Исправлено возможное аварийное завершение (из-за присоединения потоков задачи) и, возможно, зависания (в модульных тестах) во время завершения работы `BackgroundSchedulePool`. [#83769](https://github.com/ClickHouse/ClickHouse/pull/83769) ([Azat Khuzhin](https://github.com/azat)). -* Добавлена настройка обратной совместимости, чтобы новый анализатор мог ссылаться на внешний алиас в предложении WITH при конфликте имён. Исправляет [#82700](https://github.com/ClickHouse/ClickHouse/issues/82700). [#83797](https://github.com/ClickHouse/ClickHouse/pull/83797) ([Dmitry Novik](https://github.com/novikd)). -* Исправлена взаимоблокировка при завершении работы из-за рекурсивной блокировки контекста при очистке компонента library bridge. [#83824](https://github.com/ClickHouse/ClickHouse/pull/83824) ([Azat Khuzhin](https://github.com/azat)). - -#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement} - -* Собрана минимальная C-библиотека (10 КБ) для лексера ClickHouse. Это требуется для [#80977](https://github.com/ClickHouse/ClickHouse/issues/80977). [#81347](https://github.com/ClickHouse/ClickHouse/pull/81347) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Добавлен тест для автономного лексера, добавлен тестовый тег `fasttest-only`. [#82472](https://github.com/ClickHouse/ClickHouse/pull/82472) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* Добавлена проверка входных параметров сабмодулей Nix. [#81691](https://github.com/ClickHouse/ClickHouse/pull/81691) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Исправлен набор проблем, которые могут возникать при попытке запустить интеграционные тесты на локальной машине (localhost). [#82135](https://github.com/ClickHouse/ClickHouse/pull/82135) ([Oleg Doronin](https://github.com/dorooleg)). -* SymbolIndex компилируется на Mac и FreeBSD (но будет работать только на системах с ELF, таких как Linux и FreeBSD). [#82347](https://github.com/ClickHouse/ClickHouse/pull/82347) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Обновлён Azure SDK до v1.15.0. [#82747](https://github.com/ClickHouse/ClickHouse/pull/82747) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). -* Добавлен модуль хранения из google-cloud-cpp в систему сборки. [#82881](https://github.com/ClickHouse/ClickHouse/pull/82881) ([Pablo Marcos](https://github.com/pamarcos)). -* Изменён `Dockerfile.ubuntu` для clickhouse-server в соответствии с требованиями Docker Official Library. [#83039](https://github.com/ClickHouse/ClickHouse/pull/83039) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). -* Продолжение для [#83158](https://github.com/ClickHouse/ClickHouse/issues/83158) для исправления выкладки сборок для `curl clickhouse.com`. [#83463](https://github.com/ClickHouse/ClickHouse/pull/83463) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). -* Добавлены исполняемый файл `busybox` и инструменты установки в образы `clickhouse/clickhouse-server` и официальный образ `clickhouse`. [#83735](https://github.com/ClickHouse/ClickHouse/pull/83735) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). -* Добавлена поддержка переменной окружения `CLICKHOUSE_HOST` для указания хоста сервера ClickHouse, в соответствии с уже существующими переменными окружения `CLICKHOUSE_USER` и `CLICKHOUSE_PASSWORD`. Это упрощает настройку без прямого изменения клиентских или конфигурационных файлов. [#83659](https://github.com/ClickHouse/ClickHouse/pull/83659) ([Doron David](https://github.com/dorki)). - -### Релиз ClickHouse 25.6, 2025-06-26 {#256} - -#### Изменение, нарушающее обратную совместимость {#backward-incompatible-change} - -* Ранее функция `countMatches` прекращала подсчёт при первом пустом совпадении, даже если шаблон его допускает. Чтобы устранить эту проблему, `countMatches` теперь продолжает выполнение, продвигаясь на один символ вперёд при возникновении пустого совпадения. Пользователи, которые хотят сохранить старое поведение, могут включить настройку `count_matches_stop_at_empty_match`. [#81676](https://github.com/ClickHouse/ClickHouse/pull/81676) ([Elmi Ahmadov](https://github.com/ahmadov)). -* Незначительное: Настройки сервера `backup_threads` и `restore_threads` теперь принудительно должны быть ненулевыми. [#80224](https://github.com/ClickHouse/ClickHouse/pull/80224) ([Raúl Marín](https://github.com/Algunenano)). -* Незначительное: Исправлено поведение `bitNot` для `String`, теперь во внутреннем представлении в памяти используется строка с нулевым терминатором. Это не должно влиять на какое-либо поведение, заметное пользователям, однако автор хотел подчеркнуть это изменение. [#80791](https://github.com/ClickHouse/ClickHouse/pull/80791) ([Azat Khuzhin](https://github.com/azat)). - -#### Новая возможность {#new-feature} - -* Новые типы данных: `Time` ([H]HH:MM:SS) и `Time64` ([H]HH:MM:SS[.fractional]), а также некоторые базовые функции приведения типов и функции для взаимодействия с другими типами данных. Добавлены настройки для совместимости с существующей функцией `toTime`. Настройка `use_legacy_to_time` установлена так, чтобы пока сохранять прежнее поведение. [#81217](https://github.com/ClickHouse/ClickHouse/pull/81217) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). Добавлена поддержка операций сравнения для Time/Time64. [#80327](https://github.com/ClickHouse/ClickHouse/pull/80327) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Новый CLI-инструмент [`chdig`](https://github.com/azat/chdig/) — TUI-интерфейс для ClickHouse (аналог `top`), входящий в состав ClickHouse. [#79666](https://github.com/ClickHouse/ClickHouse/pull/79666) ([Azat Khuzhin](https://github.com/azat)). -* Добавлена поддержка настройки `disk` для движков баз данных `Atomic` и `Ordinary`, позволяющей указывать диск для хранения файлов метаданных таблиц. [#80546](https://github.com/ClickHouse/ClickHouse/pull/80546) ([Tuan Pham Anh](https://github.com/tuanpach)). Это позволяет подключать базы данных из внешних источников. -* Новый тип MergeTree, `CoalescingMergeTree` — движок выбирает первое ненулевое (не Null) значение при фоновых слияниях. Это решает [#78869](https://github.com/ClickHouse/ClickHouse/issues/78869). [#79344](https://github.com/ClickHouse/ClickHouse/pull/79344) ([scanhex12](https://github.com/scanhex12)). -* Добавлены функции для чтения WKB («Well-Known Binary» — это формат двоичного кодирования различных типов геометрии, используемый в GIS‑приложениях). См. [#43941](https://github.com/ClickHouse/ClickHouse/issues/43941). [#80139](https://github.com/ClickHouse/ClickHouse/pull/80139) ([scanhex12](https://github.com/scanhex12)). -* Добавлено планирование слотов запросов для рабочих нагрузок. Подробности см. в разделе [workload scheduling](https://clickhouse.com/docs/operations/workload-scheduling#query_scheduling). [#78415](https://github.com/ClickHouse/ClickHouse/pull/78415) ([Sergei Trifonov](https://github.com/serxa)). -* Вспомогательные функции `timeSeries*` для ускорения некоторых сценариев при работе с временными рядами: - ресемплирование данных по временной сетке с заданными начальной и конечной метками времени и шагом - вычисление PromQL-подобных `delta`, `rate`, `idelta` и `irate`. [#80590](https://github.com/ClickHouse/ClickHouse/pull/80590) ([Alexander Gololobov](https://github.com/davenger)). -* Добавлены функции `mapContainsValuesLike`/`mapContainsValues`/`mapExtractValuesLike` для фильтрации по значениям map и их поддержка в индексах на основе bloom-фильтров. [#78171](https://github.com/ClickHouse/ClickHouse/pull/78171) ([UnamedRus](https://github.com/UnamedRus)). -* Теперь ограничения настроек могут задавать набор запрещённых значений. [#78499](https://github.com/ClickHouse/ClickHouse/pull/78499) ([Bharat Nallan](https://github.com/bharatnc)). -* Добавлена настройка `enable_shared_storage_snapshot_in_query`, которая позволяет всем подзапросам одного запроса использовать общий снимок хранилища. Это обеспечивает согласованное чтение из одной и той же таблицы, даже если таблица упоминается в запросе несколько раз. [#79471](https://github.com/ClickHouse/ClickHouse/pull/79471) ([Amos Bird](https://github.com/amosbird)). -* Добавлена поддержка записи столбцов `JSON` в формат `Parquet` и прямого чтения столбцов `JSON` из `Parquet`. [#79649](https://github.com/ClickHouse/ClickHouse/pull/79649) ([Nihal Z. Miaji](https://github.com/nihalzp)). -* Добавлена поддержка `MultiPolygon` для `pointInPolygon`. [#79773](https://github.com/ClickHouse/ClickHouse/pull/79773) ([Nihal Z. Miaji](https://github.com/nihalzp)). -* Добавлена поддержка запросов к Delta-таблицам, смонтированным из локальной файловой системы, через табличную функцию `deltaLakeLocal`. [#79781](https://github.com/ClickHouse/ClickHouse/pull/79781) ([roykim98](https://github.com/roykim98)). -* Добавлена новая настройка `cast_string_to_date_time_mode`, которая позволяет выбирать режим разбора `DateTime` при приведении типа из `String`. [#80210](https://github.com/ClickHouse/ClickHouse/pull/80210) ([Pavel Kruglov](https://github.com/Avogar)). Например, вы можете установить её в режим «best effort». -* Добавлены функции `bech32Encode` и `bech32Decode` для работы с алгоритмом Bech32 в Bitcoin (issue [#40381](https://github.com/ClickHouse/ClickHouse/issues/40381)). [#80239](https://github.com/ClickHouse/ClickHouse/pull/80239) ([George Larionov](https://github.com/glarik)). -* Добавлены SQL-функции для анализа имён частей MergeTree. [#80573](https://github.com/ClickHouse/ClickHouse/pull/80573) ([Mikhail Artemenko](https://github.com/Michicosun)). -* Добавлена возможность фильтровать части, выбранные для запроса, по диску, на котором они находятся, благодаря введению нового виртуального столбца `_disk_name`. [#80650](https://github.com/ClickHouse/ClickHouse/pull/80650) ([tanner-bruce](https://github.com/tanner-bruce)). -* Добавлена стартовая страница со списком встроенных веб-инструментов. Она будет открываться при запросе браузероподобным пользовательским агентом. [#81129](https://github.com/ClickHouse/ClickHouse/pull/81129) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Функции `arrayFirst`, `arrayFirstIndex`, `arrayLast` и `arrayLastIndex` отбрасывают значения NULL, возвращаемые выражением фильтра. В предыдущих версиях результаты фильтра типа Nullable не поддерживались. Исправляет [#81113](https://github.com/ClickHouse/ClickHouse/issues/81113). [#81197](https://github.com/ClickHouse/ClickHouse/pull/81197) ([Lennard Eijsackers](https://github.com/Blokje5)). -* Теперь можно использовать `USE DATABASE name` вместо `USE name`. [#81307](https://github.com/ClickHouse/ClickHouse/pull/81307) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Добавлена новая системная таблица `system.codecs` для просмотра доступных кодеков. (issue [#81525](https://github.com/ClickHouse/ClickHouse/issues/81525)). [#81600](https://github.com/ClickHouse/ClickHouse/pull/81600) ([Jimmy Aguilar Mena](https://github.com/Ergus)). -* Добавлена поддержка оконных функций `lag` и `lead`. Закрывает [#9887](https://github.com/ClickHouse/ClickHouse/issues/9887). [#82108](https://github.com/ClickHouse/ClickHouse/pull/82108) ([Dmitry Novik](https://github.com/novikd)). -* Функция `tokens` теперь поддерживает новый токенизатор `split`, удобный для обработки логов. [#80195](https://github.com/ClickHouse/ClickHouse/pull/80195) ([Robert Schulze](https://github.com/rschu1ze)). -* Добавлена поддержка аргумента `--database` в `clickhouse-local`. Теперь можно переключаться на уже созданную базу данных. Это закрывает [#44115](https://github.com/ClickHouse/ClickHouse/issues/44115). [#81465](https://github.com/ClickHouse/ClickHouse/pull/81465) ([Alexey Milovidov](https://github.com/alexey-milovidov)). - -#### Экспериментальная возможность {#experimental-feature} - -* Реализована логика ребалансировки, аналогичная механизму Kafka rebalance, для `Kafka2` с использованием ClickHouse Keeper. Для каждой реплики поддерживаются два типа блокировок партиций: постоянные и временные. Реплика старается удерживать постоянные блокировки как можно дольше; в любой момент времени на реплике не более чем `all_topic_partitions / active_replicas_count` (где `all_topic_partitions` — количество всех партиций, `active_replicas_count` — количество активных реплик) постоянных блокировок; если их больше, реплика освобождает некоторые партиции. Некоторые партиции временно удерживаются репликой. Максимальное количество временных блокировок на реплике динамически изменяется, чтобы дать другим репликам возможность взять часть партиций в постоянные блокировки. При обновлении временных блокировок реплика снимает их все и снова пытается захватить некоторые другие. [#78726](https://github.com/ClickHouse/ClickHouse/pull/78726) ([Daria Fomina](https://github.com/sinfillo)). -* Улучшение для экспериментального текстового индекса: поддерживаются явные параметры в виде пар ключ–значение. В настоящее время поддерживаются параметры: обязательный `tokenizer` и два необязательных — `max_rows_per_postings_list` и `ngram_size`. [#80262](https://github.com/ClickHouse/ClickHouse/pull/80262) ([Elmi Ahmadov](https://github.com/ahmadov)). -* Ранее хранилище `packed` не поддерживалось для полнотекстового индекса, поскольку идентификатор сегмента обновлялся «на лету» путём чтения и записи файла (`.gin_sid`) на диске. В случае `packed`‑хранилища чтение значения из незакоммиченного файла не поддерживается, и это приводило к проблеме. Теперь это работает корректно. [#80852](https://github.com/ClickHouse/ClickHouse/pull/80852) ([Elmi Ahmadov](https://github.com/ahmadov)). -* Экспериментальные индексы типа `gin` (которые мне не нравятся, потому что это внутренняя шутка хакеров PostgreSQL) были переименованы в `text`. Существующие индексы типа `gin` по‑прежнему можно загрузить, но при попытке использовать их в поиске они будут выбрасывать исключение (предлагая вместо них использовать индексы `text`). [#80855](https://github.com/ClickHouse/ClickHouse/pull/80855) ([Robert Schulze](https://github.com/rschu1ze)). - -#### Повышение производительности {#performance-improvement} - -* Добавлена поддержка фильтрации по нескольким проекциям, что позволяет использовать более одной проекции при фильтрации на уровне частей. Это решает [#55525](https://github.com/ClickHouse/ClickHouse/issues/55525). Это второй шаг на пути к реализации индекса проекций, после [#78429](https://github.com/ClickHouse/ClickHouse/issues/78429). [#80343](https://github.com/ClickHouse/ClickHouse/pull/80343) ([Amos Bird](https://github.com/amosbird)). -* По умолчанию в файловом кэше используется политика кэширования `SLRU`. [#75072](https://github.com/ClickHouse/ClickHouse/pull/75072) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Устранена конкуренция при выполнении шага Resize в конвейере запросов. [#77562](https://github.com/ClickHouse/ClickHouse/pull/77562) ([Zhiguo Zhou](https://github.com/ZhiguoZh)). -* Добавлена опция переноса (де)сжатия и (де)сериализации блоков в конвейерные потоки вместо использования одного потока, связанного с сетевым подключением. Управляется настройкой `enable_parallel_blocks_marshalling`. Это должно ускорить распределённые запросы, которые передают значительные объёмы данных между инициатором и удалёнными узлами. [#78694](https://github.com/ClickHouse/ClickHouse/pull/78694) ([Nikita Taranov](https://github.com/nickitat)). -* Улучшена производительность всех типов Bloom‑фильтров. [Видео с конференции OpenHouse](https://www.youtube.com/watch?v=yIVz0NKwQvA\&pp=ygUQb3BlbmhvdXNlIG9wZW5haQ%3D%3D) [#79800](https://github.com/ClickHouse/ClickHouse/pull/79800) ([Delyan Kratunov](https://github.com/dkratunov)). -* Добавлен оптимизированный путь выполнения в `UniqExactSet::merge` для случая, когда один из наборов пустой. Также теперь, если множество LHS двухуровневое, а RHS одноуровневое, не выполняется преобразование RHS в двухуровневое множество. [#79971](https://github.com/ClickHouse/ClickHouse/pull/79971) ([Nikita Taranov](https://github.com/nickitat)). -* Повышена эффективность повторного использования памяти и уменьшено количество ошибок страничной памяти при использовании двухуровневых хеш-таблиц. Это позволяет ускорить выполнение GROUP BY. [#80245](https://github.com/ClickHouse/ClickHouse/pull/80245) ([Jiebin Sun](https://github.com/jiebinn)). -* Исключены лишние обновления и снижена конкуренция за блокировки в кэше условий запросов. [#80247](https://github.com/ClickHouse/ClickHouse/pull/80247) ([Jiebin Sun](https://github.com/jiebinn)). -* Тривиальная оптимизация для `concatenateBlocks`. Скорее всего, она также полезна для параллельного hash join. [#80328](https://github.com/ClickHouse/ClickHouse/pull/80328) ([李扬](https://github.com/taiyang-li)). -* При выборе диапазонов меток из диапазона первичного ключа двоичный поиск не может быть использован, если первичный ключ обернут функциями. В этом PR это ограничение смягчено: двоичный поиск по-прежнему может применяться, когда первичный ключ обернут цепочкой всегда монотонных функций или когда RPN содержит элемент, который всегда истиннен. Закрывает [#45536](https://github.com/ClickHouse/ClickHouse/issues/45536). [#80597](https://github.com/ClickHouse/ClickHouse/pull/80597) ([zoomxi](https://github.com/zoomxi)). -* Ускорено завершение работы движка `Kafka` (удалена лишняя задержка в 3 секунды при наличии нескольких таблиц `Kafka`). [#80796](https://github.com/ClickHouse/ClickHouse/pull/80796) ([Azat Khuzhin](https://github.com/azat)). -* Асинхронные вставки: снижают потребление памяти и повышают производительность запросов INSERT. [#80972](https://github.com/ClickHouse/ClickHouse/pull/80972) ([Raúl Marín](https://github.com/Algunenano)). -* Если таблица логов отключена, не профилировать процессоры. [#81256](https://github.com/ClickHouse/ClickHouse/pull/81256) ([Raúl Marín](https://github.com/Algunenano)). Это ускоряет очень короткие запросы. -* Ускорена работа `toFixedString`, когда исходное значение уже имеет требуемый формат. [#81257](https://github.com/ClickHouse/ClickHouse/pull/81257) ([Raúl Marín](https://github.com/Algunenano)). -* Не обрабатывать значения квоты, если для пользователя не задана квота. [#81549](https://github.com/ClickHouse/ClickHouse/pull/81549) ([Raúl Marín](https://github.com/Algunenano)). Это ускоряет очень короткие запросы. -* Исправлена регрессия по производительности в отслеживании использования памяти. [#81694](https://github.com/ClickHouse/ClickHouse/pull/81694) ([Michael Kolupaev](https://github.com/al13n321)). -* Улучшена оптимизация ключа шардирования в распределённых запросах. [#78452](https://github.com/ClickHouse/ClickHouse/pull/78452) ([fhw12345](https://github.com/fhw12345)). -* Параллельные реплики: избегайте ожидания медленных, неиспользуемых реплик, если все задачи чтения уже распределены между другими репликами. [#80199](https://github.com/ClickHouse/ClickHouse/pull/80199) ([Igor Nikonov](https://github.com/devcrafter)). -* Теперь для parallel replicas используется отдельный таймаут подключения, см. настройку `parallel_replicas_connect_timeout_ms`. Ранее в качестве таймаута подключения для запросов с parallel replicas использовались настройки `connect_timeout_with_failover_ms`/`connect_timeout_with_failover_secure_ms` (по умолчанию 1 секунда). [#80421](https://github.com/ClickHouse/ClickHouse/pull/80421) ([Igor Nikonov](https://github.com/devcrafter)). -* В файловой системе с журналированием `mkdir` записывается в журнал файловой системы, который затем сбрасывается на диск. В случае медленного диска это может занимать много времени. Переместите его за пределы области блокировки резерва. [#81371](https://github.com/ClickHouse/ClickHouse/pull/81371) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Отложить чтение файлов манифестов Iceberg до выполнения первого запроса на чтение. [#81619](https://github.com/ClickHouse/ClickHouse/pull/81619) ([Daniil Ivanik](https://github.com/divanik)). -* Разрешить перенос предиката `GLOBAL [NOT] IN` в предложение `PREWHERE`, если это возможно. [#79996](https://github.com/ClickHouse/ClickHouse/pull/79996) ([Eduard Karacharov](https://github.com/korowa)). - -#### Улучшения {#improvement} - -* `EXPLAIN SYNTAX` теперь использует новый анализатор. Он возвращает AST, построенное из дерева запроса. Добавлен параметр `query_tree_passes` для управления количеством проходов, выполняемых перед преобразованием дерева запроса в AST. [#74536](https://github.com/ClickHouse/ClickHouse/pull/74536) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Реализована плоская сериализация для Dynamic и JSON в формате Native, которая позволяет сериализовать и десериализовать данные Dynamic и JSON без использования специальных структур, таких как shared variant для Dynamic и shared data для JSON. Эту сериализацию можно включить, установив параметр `output_format_native_use_flattened_dynamic_and_json_serialization`. Её можно использовать для упрощения поддержки Dynamic и JSON в TCP-протоколе в клиентах на разных языках. [#80499](https://github.com/ClickHouse/ClickHouse/pull/80499) ([Pavel Kruglov](https://github.com/Avogar)). -* Обновлять учетные данные для `S3` после ошибки `AuthenticationRequired`. [#77353](https://github.com/ClickHouse/ClickHouse/pull/77353) ([Vitaly Baranov](https://github.com/vitlibar)). -* Добавлены метрики для словарей в `system.asynchronous_metrics`: `DictionaryMaxUpdateDelay` — максимальная задержка (в секундах) обновления словаря; `DictionaryTotalFailedUpdates` — количество ошибок при обновлении всех словарей с момента последней успешной загрузки. [#78175](https://github.com/ClickHouse/ClickHouse/pull/78175) ([Vlad](https://github.com/codeworse)). -* Добавлено предупреждение о базах данных, которые могли быть созданы для сохранения повреждённых таблиц. [#78841](https://github.com/ClickHouse/ClickHouse/pull/78841) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* Добавлен виртуальный столбец `_time` в движках `S3Queue` и `AzureQueue`. [#78926](https://github.com/ClickHouse/ClickHouse/pull/78926) ([Anton Ivashkin](https://github.com/ianton-ru)). -* Настройки, управляющие разрывом соединения при перегрузке CPU, сделаны горячеперезагружаемыми. [#79052](https://github.com/ClickHouse/ClickHouse/pull/79052) ([Alexey Katsman](https://github.com/alexkats)). -* Добавлен префикс контейнера к путям данных, отображаемым в `system.tables` для обычных дисков в хранилище Azure Blob, что делает представление данных единообразным с S3 и GCP. [#79241](https://github.com/ClickHouse/ClickHouse/pull/79241) ([Julia Kartseva](https://github.com/jkartseva)). -* Теперь clickhouse-client и local также принимают параметры запроса с именами вида `param-` (дефис) наряду с `param_` (подчёркивание). Тем самым закрывается [#63093](https://github.com/ClickHouse/ClickHouse/issues/63093). [#79429](https://github.com/ClickHouse/ClickHouse/pull/79429) ([Engel Danila](https://github.com/aaaengel)). -* Подробное предупреждающее сообщение об экономии трафика при копировании данных из локального хранилища в удалённое S3 при включённой проверке контрольных сумм. [#79464](https://github.com/ClickHouse/ClickHouse/pull/79464) ([VicoWu](https://github.com/VicoWu)). -* Ранее при `input_format_parquet_max_block_size = 0` (некорректное значение) ClickHouse зависал. Теперь это поведение исправлено. Это закрывает [#79394](https://github.com/ClickHouse/ClickHouse/issues/79394). [#79601](https://github.com/ClickHouse/ClickHouse/pull/79601) ([abashkeev](https://github.com/abashkeev)). -* Добавлена настройка `throw_on_error` для `startup_scripts`: если `throw_on_error` установлена в `true`, сервер не запустится, пока все запросы не завершатся успешно. По умолчанию `throw_on_error` имеет значение `false`, что сохраняет прежнее поведение. [#79732](https://github.com/ClickHouse/ClickHouse/pull/79732) ([Aleksandr Musorin](https://github.com/AVMusorin)). -* Разрешено добавлять `http_response_headers` в `http_handlers` любого типа. [#79975](https://github.com/ClickHouse/ClickHouse/pull/79975) ([Andrey Zvonov](https://github.com/zvonand)). -* Теперь функция `reverse` поддерживает тип данных `Tuple`. Закрывает [#80053](https://github.com/ClickHouse/ClickHouse/issues/80053). [#80083](https://github.com/ClickHouse/ClickHouse/pull/80083) ([flynn](https://github.com/ucasfl)). -* Решена задача [#75817](https://github.com/ClickHouse/ClickHouse/issues/75817): теперь можно получать данные `auxiliary_zookeepers` из таблицы `system.zookeeper`. [#80146](https://github.com/ClickHouse/ClickHouse/pull/80146) ([Nikolay Govorov](https://github.com/mrdimidium)). -* Добавлены асинхронные метрики для TCP-сокетов сервера. Это повышает наблюдаемость. Закрывает [#80187](https://github.com/ClickHouse/ClickHouse/issues/80187). [#80188](https://github.com/ClickHouse/ClickHouse/pull/80188) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Добавлена поддержка `anyLast_respect_nulls` и `any_respect_nulls` в качестве `SimpleAggregateFunction`. [#80219](https://github.com/ClickHouse/ClickHouse/pull/80219) ([Diskein](https://github.com/Diskein)). -* Удалён ненужный вызов `adjustCreateQueryForBackup` для реплицируемых баз данных. [#80282](https://github.com/ClickHouse/ClickHouse/pull/80282) ([Vitaly Baranov](https://github.com/vitlibar)). -* Разрешить использование дополнительных параметров (которые идут после `--`, как `-- --config.value='abc'`) в `clickhouse-local` без знака равенства. Закрывает [#80292](https://github.com/ClickHouse/ClickHouse/issues/80292). [#80293](https://github.com/ClickHouse/ClickHouse/pull/80293) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Подсветить метасимволы в запросах `SHOW ... LIKE`. Закрывает задачу [#80275](https://github.com/ClickHouse/ClickHouse/issues/80275). [#80297](https://github.com/ClickHouse/ClickHouse/pull/80297) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Сделать SQL UDF в `clickhouse-local` постоянной. Ранее созданная функция будет загружаться при запуске. Это закрывает [#80085](https://github.com/ClickHouse/ClickHouse/issues/80085). [#80300](https://github.com/ClickHouse/ClickHouse/pull/80300) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Исправлено описание в плане выполнения запроса для предварительного шага DISTINCT. [#80330](https://github.com/ClickHouse/ClickHouse/pull/80330) ([UnamedRus](https://github.com/UnamedRus)). -* Разрешено использование именованных коллекций в ODBC/JDBC. [#80334](https://github.com/ClickHouse/ClickHouse/pull/80334) ([Andrey Zvonov](https://github.com/zvonand)). -* Метрики количества дисков только для чтения и повреждённых дисков. Индикатор логирует сообщение при запуске DiskLocalCheckThread. [#80391](https://github.com/ClickHouse/ClickHouse/pull/80391) ([VicoWu](https://github.com/VicoWu)). -* Реализована поддержка хранилища `s3_plain_rewritable` с проекциями. В предыдущих версиях объекты метаданных в S3, ссылающиеся на проекции, не обновлялись при их перемещении. Закрывает [#70258](https://github.com/ClickHouse/ClickHouse/issues/70258). [#80393](https://github.com/ClickHouse/ClickHouse/pull/80393) ([Sav](https://github.com/sberss)). -* Команда `SYSTEM UNFREEZE` больше не пытается искать части данных на дисках только для чтения (readonly) и одноразовой записи (write-once). Это закрывает [#80430](https://github.com/ClickHouse/ClickHouse/issues/80430). [#80432](https://github.com/ClickHouse/ClickHouse/pull/80432) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Уменьшен уровень логирования сообщений о слитых партах. [#80476](https://github.com/ClickHouse/ClickHouse/pull/80476) ([Hans Krutzer](https://github.com/hkrutzer)). -* Изменено поведение обрезки партиций (partition pruning) по умолчанию для таблиц Iceberg. [#80583](https://github.com/ClickHouse/ClickHouse/pull/80583) ([Melvyn Peignon](https://github.com/melvynator)). -* Добавлены два новых ProfileEvents для наблюдаемости алгоритмов поиска по индексу: `IndexBinarySearchAlgorithm` и `IndexGenericExclusionSearchAlgorithm`. [#80679](https://github.com/ClickHouse/ClickHouse/pull/80679) ([Pablo Marcos](https://github.com/pamarcos)). -* Не выводить в логах предупреждения о неподдерживаемом `MADV_POPULATE_WRITE` на более старых версиях ядра (чтобы не засорять логи). [#80704](https://github.com/ClickHouse/ClickHouse/pull/80704) ([Robert Schulze](https://github.com/rschu1ze)). -* Добавлена поддержка `Date32` и `DateTime64` в выражениях `TTL`. [#80710](https://github.com/ClickHouse/ClickHouse/pull/80710) ([Andrey Zvonov](https://github.com/zvonand)). -* Скорректированы значения совместимости для `max_merge_delayed_streams_for_parallel_write`. [#80760](https://github.com/ClickHouse/ClickHouse/pull/80760) ([Azat Khuzhin](https://github.com/azat)). -* Исправлен сбой: если при попытке удаления временного файла (они используются для сброса временных данных на диск) в деструкторе выбрасывалось исключение, программа могла аварийно завершиться. [#80776](https://github.com/ClickHouse/ClickHouse/pull/80776) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Добавлен модификатор `IF EXISTS` для команды `SYSTEM SYNC REPLICA`. [#80810](https://github.com/ClickHouse/ClickHouse/pull/80810) ([Raúl Marín](https://github.com/Algunenano)). -* Сообщение об исключении «Having zero bytes, but read range is not finished...» расширено, в таблицу `system.filesystem_cache` добавлен столбец `finished_download_time`. [#80849](https://github.com/ClickHouse/ClickHouse/pull/80849) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Добавлен раздел с алгоритмом поиска в вывод `EXPLAIN` при использовании с indexes = 1. В нём отображается либо «binary search», либо «generic exclusion search». [#80881](https://github.com/ClickHouse/ClickHouse/pull/80881) ([Pablo Marcos](https://github.com/pamarcos)). -* В начале 2024 года параметр `prefer_column_name_to_alias` был жёстко зафиксирован в значение true для обработчика MySQL, поскольку новый анализатор не был включён по умолчанию. Теперь это жёсткое задание убрано. [#80916](https://github.com/ClickHouse/ClickHouse/pull/80916) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Теперь `system.iceberg_history` показывает историю для баз данных каталогов, таких как glue или iceberg rest. Также для единообразия в `system.iceberg_history` столбцы `table_name` и `database_name` были переименованы в `table` и `database`. [#80975](https://github.com/ClickHouse/ClickHouse/pull/80975) ([alesapin](https://github.com/alesapin)). -* Добавлен режим только для чтения для табличной функции `merge`, поэтому для её использования больше не требуются права `CREATE TEMPORARY TABLE`. [#80981](https://github.com/ClickHouse/ClickHouse/pull/80981) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* Улучшена интроспекция кешей в памяти (информация о кешах теперь экспортируется в `system.metrics` вдобавок к неполному `system.asynchronouse_metrics`). В `dashboard.html` добавлен размер кешей в памяти (в байтах). `VectorSimilarityIndexCacheSize`/`IcebergMetadataFilesCacheSize` были переименованы в `VectorSimilarityIndexCacheBytes`/`IcebergMetadataFilesCacheBytes`. [#81023](https://github.com/ClickHouse/ClickHouse/pull/81023) ([Azat Khuzhin](https://github.com/azat)). -* Игнорировать базы данных с движками баз данных, которые не могут содержать таблицы `RocksDB` при чтении из `system.rocksdb`. [#81083](https://github.com/ClickHouse/ClickHouse/pull/81083) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* Разрешено использование `filesystem_caches` и `named_collections` в конфигурационном файле `clickhouse-local`. [#81105](https://github.com/ClickHouse/ClickHouse/pull/81105) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Исправлена подсветка синтаксиса для `PARTITION BY` в запросах `INSERT`. В предыдущих версиях `PARTITION BY` не подсвечивалось как ключевое слово. [#81106](https://github.com/ClickHouse/ClickHouse/pull/81106) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Два небольших улучшения в веб-интерфейсе: — корректная обработка запросов без вывода, таких как `CREATE`, `INSERT` (до недавнего времени эти запросы приводили к бесконечной анимации загрузки); — при двойном щелчке по таблице страница прокручивается к началу. [#81131](https://github.com/ClickHouse/ClickHouse/pull/81131) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Метрика `MemoryResidentWithoutPageCache` показывает объём физической памяти, используемой серверным процессом, за вычетом userspace page cache, в байтах. Это даёт более точное представление о фактическом использовании памяти при использовании userspace page cache. Когда userspace page cache отключён, это значение равно `MemoryResident`. [#81233](https://github.com/ClickHouse/ClickHouse/pull/81233) ([Jayme Bird](https://github.com/jaymebrd)). -* Помечать исключения, вручную записанные в лог в client, local server, keeper client и приложении disks, как уже записанные, чтобы они не попадали в логи дважды. [#81271](https://github.com/ClickHouse/ClickHouse/pull/81271) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* Параметры `use_skip_indexes_if_final` и `use_skip_indexes_if_final_exact_mode` теперь по умолчанию установлены в `True`. Запросы с оператором `FINAL` теперь будут использовать пропускающие индексы (если применимо) для предварительного отбора гранул, а также считывать любые дополнительные гранулы, соответствующие диапазонам первичных ключей, попадающим под условие. Пользователи, которым требуется прежнее поведение с приблизительными/неточными результатами, могут установить `use_skip_indexes_if_final_exact_mode` в `FALSE` после тщательной оценки последствий. [#81331](https://github.com/ClickHouse/ClickHouse/pull/81331) ([Shankar Iyer](https://github.com/shankar-iyer)). -* Когда в веб-интерфейсе открыто несколько запросов, выполняется тот, который находится под курсором. Продолжение [#80977](https://github.com/ClickHouse/ClickHouse/issues/80977). [#81354](https://github.com/ClickHouse/ClickHouse/pull/81354) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Этот PR устраняет проблемы с реализацией `is_strict` в проверках монотонности для функций преобразования. В настоящее время некоторые функции преобразования, такие как `toFloat64(UInt32)` и `toDate(UInt8)`, некорректно возвращают `is_strict` со значением false, когда должны возвращать true. [#81359](https://github.com/ClickHouse/ClickHouse/pull/81359) ([zoomxi](https://github.com/zoomxi)). -* При проверке того, соответствует ли `KeyCondition` непрерывному диапазону, и если ключ обёрнут цепочкой нестрогих функций, может потребоваться преобразование `Constraint::POINT` в `Constraint::RANGE`. Например, выражение `toDate(event_time) = '2025-06-03'` подразумевает для `event_time` диапазон ['2025-06-03 00:00:00', '2025-06-04 00:00:00'). Этот PR исправляет такое поведение. [#81400](https://github.com/ClickHouse/ClickHouse/pull/81400) ([zoomxi](https://github.com/zoomxi)). -* Псевдонимы `clickhouse`/`ch` будут вызывать `clickhouse-client` вместо `clickhouse-local`, если указаны `--host` или `--port`. Продолжение [#79422](https://github.com/ClickHouse/ClickHouse/issues/79422). Закрывает [#65252](https://github.com/ClickHouse/ClickHouse/issues/65252). [#81509](https://github.com/ClickHouse/ClickHouse/pull/81509) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Теперь, когда у нас есть данные о распределении времени отклика Keeper, мы можем настроить интервалы гистограммы для метрик. [#81516](https://github.com/ClickHouse/ClickHouse/pull/81516) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* Добавлено событие профилирования `PageCacheReadBytes`. [#81742](https://github.com/ClickHouse/ClickHouse/pull/81742) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Исправлена логическая ошибка в кэше файловой системы: «Having zero bytes but range is not finished». [#81868](https://github.com/ClickHouse/ClickHouse/pull/81868) ([Kseniia Sumarokova](https://github.com/kssenii)). - -#### Исправление ошибки (некорректное поведение, заметное пользователям, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* Исправлено параметризованное представление, использующее запрос SELECT EXCEPT. Закрывает [#49447](https://github.com/ClickHouse/ClickHouse/issues/49447). [#57380](https://github.com/ClickHouse/ClickHouse/pull/57380) ([Nikolay Degterinsky](https://github.com/evillique)). -* Analyzer: Исправлено имя проекции столбца после повышения типа столбца при выполнении JOIN. Закрывает [#63345](https://github.com/ClickHouse/ClickHouse/issues/63345). [#63519](https://github.com/ClickHouse/ClickHouse/pull/63519) ([Dmitry Novik](https://github.com/novikd)). -* Исправлена логическая ошибка при конфликте имён столбцов при включённой опции analyzer_compatibility_join_using_top_level_identifier. [#75676](https://github.com/ClickHouse/ClickHouse/pull/75676) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Исправлено использование CTE в проталкиваемых предикатах при включённом параметре `allow_push_predicate_ast_for_distributed_subqueries`. Исправлены [#75647](https://github.com/ClickHouse/ClickHouse/issues/75647) и [#79672](https://github.com/ClickHouse/ClickHouse/issues/79672). [#77316](https://github.com/ClickHouse/ClickHouse/pull/77316) ([Dmitry Novik](https://github.com/novikd)). -* Исправляет проблему, при которой команда SYSTEM SYNC REPLICA LIGHTWEIGHT 'foo' ошибочно сообщала об успешном выполнении, даже если указанная реплика не существовала. Теперь команда корректно проверяет наличие реплики в Keeper перед попыткой синхронизации. [#78405](https://github.com/ClickHouse/ClickHouse/pull/78405) ([Jayme Bird](https://github.com/jaymebrd)). -* Исправлена ошибка, приводившая к аварийному завершению в очень специфической ситуации, когда функция `currentDatabase` использовалась в секциях `CONSTRAINT` для запросов `ON CLUSTER`. Закрывает [#78100](https://github.com/ClickHouse/ClickHouse/issues/78100). [#79070](https://github.com/ClickHouse/ClickHouse/pull/79070) ([pufit](https://github.com/pufit)). -* Исправлена передача внешних ролей в межсерверных запросах. [#79099](https://github.com/ClickHouse/ClickHouse/pull/79099) ([Andrey Zvonov](https://github.com/zvonand)). -* Попробуйте использовать IColumn вместо Field в SingleValueDataGeneric. Это устраняет некорректные возвращаемые значения некоторых агрегатных функций, например `argMax` для типов `Dynamic/Variant/JSON`. [#79166](https://github.com/ClickHouse/ClickHouse/pull/79166) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлено применение параметров use_native_copy и allow_azure_native_copy для Azure Blob Storage, а также обновлён механизм, который использует native copy только при совпадении учетных данных, что устраняет проблему [#78964](https://github.com/ClickHouse/ClickHouse/issues/78964). [#79561](https://github.com/ClickHouse/ClickHouse/pull/79561) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). -* Исправлены логические ошибки, связанные с неопределённой областью происхождения столбца, возникавшие при проверке, коррелирован ли этот столбец. Исправлены [#78183](https://github.com/ClickHouse/ClickHouse/issues/78183). Исправлены [#79451](https://github.com/ClickHouse/ClickHouse/issues/79451). [#79727](https://github.com/ClickHouse/ClickHouse/pull/79727) ([Dmitry Novik](https://github.com/novikd)). -* Исправлены некорректные результаты для grouping sets при использовании ColumnConst и Analyzer. [#79743](https://github.com/ClickHouse/ClickHouse/pull/79743) ([Andrey Zvonov](https://github.com/zvonand)). -* Исправлено дублирование результатов локального шарда при чтении из распределённой таблицы в случае устаревшей локальной реплики. [#79761](https://github.com/ClickHouse/ClickHouse/pull/79761) ([Eduard Karacharov](https://github.com/korowa)). -* Исправлен порядок сортировки значений NaN с отрицательным знаковым битом. [#79847](https://github.com/ClickHouse/ClickHouse/pull/79847) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* Теперь `GROUP BY ALL` не учитывает конструкцию `GROUPING`. [#79915](https://github.com/ClickHouse/ClickHouse/pull/79915) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Исправлено некорректное слияние состояний для функций `TopK` / `TopKWeighted`, из-за которого возникали чрезмерные значения ошибки даже при неиспользованной до конца ёмкости. [#79939](https://github.com/ClickHouse/ClickHouse/pull/79939) ([Joel Höner](https://github.com/athre0z)). -* Теперь учитывается настройка `readonly` в объектном хранилище `azure_blob_storage`. [#79954](https://github.com/ClickHouse/ClickHouse/pull/79954) ([Julia Kartseva](https://github.com/jkartseva)). -* Исправлены некорректные результаты запросов и аварийные завершения из-за нехватки памяти при использовании `match(column, '^…')` с символами, экранированными обратной косой чертой. [#79969](https://github.com/ClickHouse/ClickHouse/pull/79969) ([filimonov](https://github.com/filimonov)). -* Отключено секционирование в стиле Hive для озёр данных. Частично решает [https://github.com/issues/assigned?issue=ClickHouse%7CClickHouse%7C79937](https://github.com/issues/assigned?issue=ClickHouse%7CClickHouse%7C79937). [#80005](https://github.com/ClickHouse/ClickHouse/pull/80005) ([Daniil Ivanik](https://github.com/divanik)). -* Пропускающие индексы с lambda-выражениями не применялись. Исправлен случай, когда высокоуровневые функции в определении индекса в точности совпадают с функциями в запросе. [#80025](https://github.com/ClickHouse/ClickHouse/pull/80025) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Исправлена версия метаданных, используемая при присоединении части на реплике, выполняющей команду ATTACH_PART из журнала репликации. [#80038](https://github.com/ClickHouse/ClickHouse/pull/80038) ([Aleksei Filatov](https://github.com/aalexfvk)). -* Имена исполняемых пользовательских определяемых функций (eUDF) не добавляются в столбец `used_functions` таблицы `system.query_log`, в отличие от других функций. В этом PR реализовано добавление имени eUDF в случае её использования в запросе. [#80073](https://github.com/ClickHouse/ClickHouse/pull/80073) ([Kyamran](https://github.com/nibblerenush)). -* Исправлена логическая ошибка в формате Arrow при работе с LowCardinality(FixedString). [#80156](https://github.com/ClickHouse/ClickHouse/pull/80156) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлено чтение подколонок в движке Merge. [#80158](https://github.com/ClickHouse/ClickHouse/pull/80158) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена ошибка в сравнении числовых типов в `KeyCondition`. [#80207](https://github.com/ClickHouse/ClickHouse/pull/80207) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Исправлена ошибка AMBIGUOUS_COLUMN_NAME, возникавшая при применении ленивой материализации к таблице с проекциями. [#80251](https://github.com/ClickHouse/ClickHouse/pull/80251) ([Igor Nikonov](https://github.com/devcrafter)). -* Исправлена некорректная оптимизация вычисления count() для фильтров по строковому префиксу вида LIKE 'ab_c%' при использовании неявных проекций. Это исправляет [#80250](https://github.com/ClickHouse/ClickHouse/issues/80250). [#80261](https://github.com/ClickHouse/ClickHouse/pull/80261) ([Amos Bird](https://github.com/amosbird)). -* Исправлена некорректная сериализация вложенных числовых полей как строк в документах MongoDB. Удалено ограничение на максимальную глубину вложенности документов MongoDB. [#80289](https://github.com/ClickHouse/ClickHouse/pull/80289) ([Kirill Nikiforov](https://github.com/allmazz)). -* Ослаблены проверки метаданных для RMT в реплицируемой базе данных. Закрывает [#80296](https://github.com/ClickHouse/ClickHouse/issues/80296). [#80298](https://github.com/ClickHouse/ClickHouse/pull/80298) ([Nikolay Degterinsky](https://github.com/evillique)). -* Исправлено текстовое представление типов DateTime и DateTime64 при сохранении в PostgreSQL. [#80301](https://github.com/ClickHouse/ClickHouse/pull/80301) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* Добавлена поддержка `DateTime` с часовым поясом в таблицах `StripeLog`. Это закрывает [#44120](https://github.com/ClickHouse/ClickHouse/issues/44120). [#80304](https://github.com/ClickHouse/ClickHouse/pull/80304) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Отключён push-down фильтра для предиката с недетерминированной функцией, если шаг плана запроса изменяет количество строк. Исправлено [#40273](https://github.com/ClickHouse/ClickHouse/issues/40273). [#80329](https://github.com/ClickHouse/ClickHouse/pull/80329) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Исправлены потенциальные логические ошибки и сбои в проекциях с подстолбцами. [#80333](https://github.com/ClickHouse/ClickHouse/pull/80333) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена ошибка `NOT_FOUND_COLUMN_IN_BLOCK`, вызванная оптимизацией проталкивания фильтра (filter-push-down) на этапе логического JOIN sep в случае, когда выражение `ON` не является тривиальным равенством. Исправляет [#79647](https://github.com/ClickHouse/ClickHouse/issues/79647) и [#77848](https://github.com/ClickHouse/ClickHouse/issues/77848). [#80360](https://github.com/ClickHouse/ClickHouse/pull/80360) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Исправлен некорректный результат при чтении ключей в обратном порядке в секционированных таблицах. Это исправляет [#79987](https://github.com/ClickHouse/ClickHouse/issues/79987). [#80448](https://github.com/ClickHouse/ClickHouse/pull/80448) ([Amos Bird](https://github.com/amosbird)). -* Исправлена некорректная сортировка в таблицах с ключом, допускающим NULL, и включённым optimize_read_in_order. [#80515](https://github.com/ClickHouse/ClickHouse/pull/80515) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* Исправлена проблема, из‑за которой операция DROP для обновляемого материализованного представления зависала, если это представление было приостановлено с помощью SYSTEM STOP REPLICATED VIEW. [#80543](https://github.com/ClickHouse/ClickHouse/pull/80543) ([Michael Kolupaev](https://github.com/al13n321)). -* Исправлена ошибка 'Cannot find column' при использовании кортежа-константы в распределённом запросе. [#80596](https://github.com/ClickHouse/ClickHouse/pull/80596) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* Исправлена функция `shardNum` в таблицах типа Distributed при использовании `join_use_nulls`. [#80612](https://github.com/ClickHouse/ClickHouse/pull/80612) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* Исправлен некорректный результат при чтении столбца, который присутствует только в части таблиц в движке Merge. [#80643](https://github.com/ClickHouse/ClickHouse/pull/80643) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена потенциальная проблема протокола SSH (из-за зависания в replxx). [#80688](https://github.com/ClickHouse/ClickHouse/pull/80688) ([Azat Khuzhin](https://github.com/azat)). -* Временная метка в таблице iceberg_history теперь должна быть правильной. [#80711](https://github.com/ClickHouse/ClickHouse/pull/80711) ([Melvyn Peignon](https://github.com/melvynator)). -* Устранён потенциальный сбой при неудачной регистрации словаря (когда `CREATE DICTIONARY` завершался с ошибкой `CANNOT_SCHEDULE_TASK`, в реестре словарей мог оставаться висячий указатель, что впоследствии приводило к аварийному завершению). [#80714](https://github.com/ClickHouse/ClickHouse/pull/80714) ([Azат Khuzhin](https://github.com/azat)). -* Исправлена обработка glob-шаблонов перечислений с одним элементом в табличных функциях для объектного хранилища. [#80716](https://github.com/ClickHouse/ClickHouse/pull/80716) ([Konstantин Bogdanov](https://github.com/thevar1able)). -* Исправлен неверный тип результата функций сравнения с Tuple(Dynamic) и String, приводивший к логической ошибке. [#80728](https://github.com/ClickHouse/ClickHouse/pull/80728) ([Pavel Kruglov](https://github.com/Avogar)). -* Добавлена недостающая поддержка типа данных `timestamp_ntz` для Unity Catalog. Исправлены [#79535](https://github.com/ClickHouse/ClickHouse/issues/79535) и [#79875](https://github.com/ClickHouse/ClickHouse/issues/79875). [#80740](https://github.com/ClickHouse/ClickHouse/pull/80740) ([alesapin](https://github.com/alesapin)). -* Исправлена ошибка `THERE_IS_NO_COLUMN` для распределённых запросов с `IN cte`. Устраняет [#75032](https://github.com/ClickHouse/ClickHouse/issues/75032). [#80757](https://github.com/ClickHouse/ClickHouse/pull/80757) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Исправлена проблема с чрезмерным количеством файлов (что приводило к чрезмерному использованию памяти) для внешнего ORDER BY. [#80777](https://github.com/ClickHouse/ClickHouse/pull/80777) ([Azat Khuzhin](https://github.com/azat)). -* Этот PR может закрыть [#80742](https://github.com/ClickHouse/ClickHouse/issues/80742). [#80783](https://github.com/ClickHouse/ClickHouse/pull/80783) ([zoomxi](https://github.com/zoomxi)). -* Исправлен сбой в Kafka из‑за того, что функция get_member_id() создавала std::string из NULL (ошибка, вероятно, проявлялась только в случае неудачного подключения к брокеру). [#80793](https://github.com/ClickHouse/ClickHouse/pull/80793) ([Azat Khuzhin](https://github.com/azat)). -* Корректно дожидаться завершения потребителей перед остановкой движка Kafka (активные потребители после остановки могут приводить к срабатыванию различных отладочных assert'ов, а также продолжать считывать данные от брокеров в фоновом режиме после удаления или отсоединения таблицы). [#80795](https://github.com/ClickHouse/ClickHouse/pull/80795) ([Azat Khuzhin](https://github.com/azat)). -* Исправлена ошибка `NOT_FOUND_COLUMN_IN_BLOCK`, вызванная оптимизацией `predicate-push-down`. Исправляет [#80443](https://github.com/ClickHouse/ClickHouse/issues/80443). [#80834](https://github.com/ClickHouse/ClickHouse/pull/80834) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Исправлена логическая ошибка при разрешении звёздочного шаблона (*) в табличной функции в JOIN с USING. [#80894](https://github.com/ClickHouse/ClickHouse/pull/80894) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Исправлен учет памяти для кэша файлов метаданных Iceberg. [#80904](https://github.com/ClickHouse/ClickHouse/pull/80904) ([Azat Khuzhin](https://github.com/azat)). -* Исправлено некорректное секционирование с ключом секционирования типа Nullable. [#80913](https://github.com/ClickHouse/ClickHouse/pull/80913) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* Исправлена ошибка `Table does not exist` для распределённых запросов с проталкиванием предиката (`allow_push_predicate_ast_for_distributed_subqueries=1`), когда исходная таблица отсутствует на инициаторе запроса. Исправляет [#77281](https://github.com/ClickHouse/ClickHouse/issues/77281). [#80915](https://github.com/ClickHouse/ClickHouse/pull/80915) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Исправлена логическая ошибка во вложенных функциях с именованными окнами. [#80926](https://github.com/ClickHouse/ClickHouse/pull/80926) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* Исправлены экстремумы для столбцов Nullable и с плавающей запятой. [#80970](https://github.com/ClickHouse/ClickHouse/pull/80970) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* Исправлен возможный сбой при выполнении запросов к `system.tables` (вероятно возникающий при недостатке памяти). [#80976](https://github.com/ClickHouse/ClickHouse/pull/80976) ([Azat Khuzhin](https://github.com/azat)). -* Исправлена работа атомарного переименования с усечением для файлов, сжатие которых определяется по их расширению. [#80979](https://github.com/ClickHouse/ClickHouse/pull/80979) ([Pablo Marcos](https://github.com/pamarcos)). -* Исправлен метод `ErrorCodes::getName`. [#81032](https://github.com/ClickHouse/ClickHouse/pull/81032) ([RinChanNOW](https://github.com/RinChanNOWWW)). -* Исправлена ошибка, из-за которой пользователь не мог получить список таблиц в Unity Catalog без прав на все таблицы. Теперь все таблицы корректно перечисляются, а попытка чтения из таблицы с ограниченным доступом вызовет исключение. [#81044](https://github.com/ClickHouse/ClickHouse/pull/81044) ([alesapin](https://github.com/alesapin)). -* Теперь ClickHouse игнорирует ошибки и неожиданные ответы от каталогов data lake в запросе `SHOW TABLES`. Исправляет [#79725](https://github.com/ClickHouse/ClickHouse/issues/79725). [#81046](https://github.com/ClickHouse/ClickHouse/pull/81046) ([alesapin](https://github.com/alesapin)). -* Исправлен разбор значений `DateTime64` из целых чисел в `JSONExtract` и при разборе типа `JSON`. [#81050](https://github.com/ClickHouse/ClickHouse/pull/81050) ([Pavel Kruglov](https://github.com/Avogar)). -* Учесть параметр date_time_input_format в кэше определения схемы. [#81052](https://github.com/ClickHouse/ClickHouse/pull/81052) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлен сбой при INSERT, если таблица была удалена (DROP) после начала запроса, но до отправки столбцов. [#81053](https://github.com/ClickHouse/ClickHouse/pull/81053) ([Azat Khuzhin](https://github.com/azat)). -* Исправлено использование неинициализированного значения в quantileDeterministic. [#81062](https://github.com/ClickHouse/ClickHouse/pull/81062) ([Azat Khuzhin](https://github.com/azat)). -* Исправлено управление счётчиком жёстких ссылок для транзакций диска metadatastoragefromdisk. Добавлены тесты. [#81066](https://github.com/ClickHouse/ClickHouse/pull/81066) ([Sema Checherinda](https://github.com/CheSema)). -* Имена пользовательских функций (UDF) не добавляются в таблицу `system.query_log` в отличие от других функций. Этот pull request добавляет запись имени UDF в один из двух столбцов — `used_executable_user_defined_functions` или `used_sql_user_defined_functions`, если UDF использовалась в запросе. [#81101](https://github.com/ClickHouse/ClickHouse/pull/81101) ([Kyamran](https://github.com/nibblerenush)). -* Исправлены ошибки `Too large size ... passed to allocator` и возможные сбои при вставке данных по протоколу HTTP с использованием текстовых форматов (`JSON`, `Values`, ...) и пропущенных полей типа `Enum`. [#81145](https://github.com/ClickHouse/ClickHouse/pull/81145) ([Anton Popov](https://github.com/CurtizJ)). -* Исправлена ошибка LOGICAL_ERROR при наличии разрежённого столбца (Sparse column) в блоке INSERT, отправляемом в не многопоточное материализованное представление (non-MT MV). [#81161](https://github.com/ClickHouse/ClickHouse/pull/81161) ([Azat Khuzhin](https://github.com/azat)). -* Исправлена ошибка `Unknown table expression identifier` при использовании `distributed_product_mode_local=local` при кросс-репликации. [#81162](https://github.com/ClickHouse/ClickHouse/pull/81162) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Исправлено некорректное кэширование количества строк в файлах Parquet после фильтрации. [#81184](https://github.com/ClickHouse/ClickHouse/pull/81184) ([Michael Kolupaev](https://github.com/al13n321)). -* Исправлен параметр fs cache max_size_to_total_space при использовании с относительным путём к кэшу. [#81237](https://github.com/ClickHouse/ClickHouse/pull/81237) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Исправлено падение clickhouse-local при выводе в формате Parquet константных кортежей или отображений. [#81249](https://github.com/ClickHouse/ClickHouse/pull/81249) ([Michael Kolupaev](https://github.com/al13n321)). -* Проверка смещений массивов, полученных по сети. [#81269](https://github.com/ClickHouse/ClickHouse/pull/81269) ([Azat Khuzhin](https://github.com/azat)). -* Исправлен граничный случай в запросе, выполняющем `JOIN` над пустыми таблицами и использующем оконные функции. Ошибка приводила к взрывному росту числа параллельных потоков, что вызывало OOM. [#81299](https://github.com/ClickHouse/ClickHouse/pull/81299) ([Alexander Gololobov](https://github.com/davenger)). -* Исправления для кластерных функций data lake (`deltaLakeCluster`, `icebergCluster` и т. д.): (1) исправлен потенциальный сегфолт в `DataLakeConfiguration` при использовании функции `Cluster` со старым анализатором; (2) удалены дублирующие обновления метаданных data lake (лишние запросы к объектному хранилищу); (3) исправлен избыточный листинг в объектном хранилище, когда формат явно не указан (что уже было реализовано для некластерных движков data lake). [#81300](https://github.com/ClickHouse/ClickHouse/pull/81300) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Флаг force_restore_data восстанавливает потерянные метаданные Keeper. [#81324](https://github.com/ClickHouse/ClickHouse/pull/81324) ([Raúl Marín](https://github.com/Algunenano)). -* Исправлена ошибка региона в delta-kernel. Исправляет проблему [#79914](https://github.com/ClickHouse/ClickHouse/issues/79914). [#81353](https://github.com/ClickHouse/ClickHouse/pull/81353) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Отключена некорректная JIT-компиляция для divideOrNull. [#81370](https://github.com/ClickHouse/ClickHouse/pull/81370) ([Raúl Marín](https://github.com/Algunenano)). -* Исправлена ошибка вставки данных, возникавшая, когда таблица MergeTree имела слишком длинное имя столбца партиционирования. [#81390](https://github.com/ClickHouse/ClickHouse/pull/81390) ([hy123q](https://github.com/haoyangqian)). -* Бэкпортировано в [#81957](https://github.com/ClickHouse/ClickHouse/issues/81957): исправлена возможная аварийная остановка `Aggregator` при возникновении исключения во время слияния. [#81450](https://github.com/ClickHouse/ClickHouse/pull/81450) ([Nikita Taranov](https://github.com/nickitat)). -* Не хранить в памяти содержимое нескольких файлов манифестов. [#81470](https://github.com/ClickHouse/ClickHouse/pull/81470) ([Daniil Ivanik](https://github.com/divanik)). -* Исправлено возможное аварийное завершение при остановке фоновых пулов (`background_.*pool_size`). [#81473](https://github.com/ClickHouse/ClickHouse/pull/81473) ([Azat Khuzhin](https://github.com/azat)). -* Исправлено чтение за пределами допустимого диапазона памяти в формате `Npy`, возникавшее при записи в таблицу с движком `URL`. Это закрывает [#81356](https://github.com/ClickHouse/ClickHouse/issues/81356). [#81502](https://github.com/ClickHouse/ClickHouse/pull/81502) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Есть вероятность, что веб-интерфейс будет отображать `NaN%` (типичная проблема JavaScript). [#81507](https://github.com/ClickHouse/ClickHouse/pull/81507) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Исправлена проблема с `DatabaseReplicated` при `database_replicated_enforce_synchronous_settings=1`. [#81564](https://github.com/ClickHouse/ClickHouse/pull/81564) ([Azat Khuzhin](https://github.com/azat)). -* Исправлен порядок сортировки для типов LowCardinality(Nullable(...)). [#81583](https://github.com/ClickHouse/ClickHouse/pull/81583) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* Сервер не должен удерживать HTTP‑соединение, если запрос не был полностью прочитан из сокета. [#81595](https://github.com/ClickHouse/ClickHouse/pull/81595) ([Sema Checherinda](https://github.com/CheSema)). -* Скалярные коррелированные подзапросы теперь возвращают результат проекционного выражения типа Nullable. Исправлен случай, когда коррелированный подзапрос возвращает пустое результирующее множество. [#81632](https://github.com/ClickHouse/ClickHouse/pull/81632) ([Dmitry Novik](https://github.com/novikd)). -* Исправлена ошибка `Unexpected relative path for a deduplicated part` во время операции `ATTACH` к `ReplicatedMergeTree`. [#81647](https://github.com/ClickHouse/ClickHouse/pull/81647) ([Azat Khuzhin](https://github.com/azat)). -* Настройка запроса `use_iceberg_partition_pruning` не будет применяться для хранилища Iceberg, потому что оно использует глобальный контекст, а не контекст запроса. Это не критично, так как значение по умолчанию — true. Этот pull request исправляет это. [#81673](https://github.com/ClickHouse/ClickHouse/pull/81673) ([Han Fei](https://github.com/hanfei1991)). -* Перенесено в [#82128](https://github.com/ClickHouse/ClickHouse/issues/82128): исправлена ошибка «Context has expired» при слияниях, когда в выражении TTL используется словарь. [#81690](https://github.com/ClickHouse/ClickHouse/pull/81690) ([Azat Khuzhin](https://github.com/azat)). -* Добавлена проверка настройки MergeTree `merge_max_block_size`, чтобы гарантировать, что она не равна нулю. [#81693](https://github.com/ClickHouse/ClickHouse/pull/81693) ([Bharat Nallan](https://github.com/bharatnc)). -* Исправлены проблемы с `clickhouse-local`, связанные с зависанием запросов `DROP VIEW`. [#81705](https://github.com/ClickHouse/ClickHouse/pull/81705) ([Bharat Nallan](https://github.com/bharatnc)). -* Исправлен JOIN с хранилищем StorageRedis в ряде случаев. [#81736](https://github.com/ClickHouse/ClickHouse/pull/81736) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* Исправлено падение `ConcurrentHashJoin` при пустом `USING ()` и включённом старом анализаторе. [#81754](https://github.com/ClickHouse/ClickHouse/pull/81754) ([Nikita Taranov](https://github.com/nickitat)). -* Исправление в Keeper: блокировать фиксацию (коммит) новых логов, если в логах есть некорректная запись. Ранее, если лидер некорректно применял некоторые логи, он продолжал фиксировать новые логи, хотя фолловер обнаруживал несоответствие дайджеста и прерывал операцию. [#81780](https://github.com/ClickHouse/ClickHouse/pull/81780) ([Antonio Andelic](https://github.com/antonio2368)). -* Исправлена проблема, из-за которой обязательные столбцы не читались при обработке скалярного коррелированного подзапроса. Исправляет [#81716](https://github.com/ClickHouse/ClickHouse/issues/81716). [#81805](https://github.com/ClickHouse/ClickHouse/pull/81805) ([Dmitry Novik](https://github.com/novikd)). -* Кто-то засорил наш код Kusto. Почистили. Это закрывает [#81643](https://github.com/ClickHouse/ClickHouse/issues/81643). [#81885](https://github.com/ClickHouse/ClickHouse/pull/81885) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* В предыдущих версиях сервер возвращал избыточное содержимое для запросов к `/js`. Это изменение закрывает [#61890](https://github.com/ClickHouse/ClickHouse/issues/61890). [#81895](https://github.com/ClickHouse/ClickHouse/pull/81895) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Ранее определения движка таблицы `MongoDB` могли включать компонент пути в аргументе `host:port`, который при этом тихо игнорировался. Интеграция с `MongoDB` отказывалась загружать такие таблицы. С этим исправлением *загрузка таких таблиц разрешена, а компонент пути игнорируется*, если движок `MongoDB` имеет пять аргументов; при этом используется имя базы данных из аргументов. *Примечание:* Исправление не применяется к вновь созданным таблицам или запросам с табличной функцией `mongo`, а также к источникам словарей и именованным коллекциям. [#81942](https://github.com/ClickHouse/ClickHouse/pull/81942) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Исправлено возможное аварийное завершение работы `Aggregator` при возникновении исключения во время слияния. [#82022](https://github.com/ClickHouse/ClickHouse/pull/82022) ([Nikita Taranov](https://github.com/nickitat)). -* Исправлена ошибка копирования и вставки в `arraySimilarity`, запрещено использование весов с типами `UInt32` и `Int32`. Обновлены тесты и документация. [#82103](https://github.com/ClickHouse/ClickHouse/pull/82103) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). -* Исправлена возможная гонка данных между потоком подсказок и основным клиентским потоком. [#82233](https://github.com/ClickHouse/ClickHouse/pull/82233) ([Azat Khuzhin](https://github.com/azat)). - -#### Улучшения в сборке, тестировании и упаковке {#buildtestingpackaging-improvement} - -* Используется `postgres` 16.9. [#81437](https://github.com/ClickHouse/ClickHouse/pull/81437) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Используйте `openssl` 3.2.4. [#81438](https://github.com/ClickHouse/ClickHouse/pull/81438) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Использовать `abseil-cpp` версии от 2025-01-27. [#81440](https://github.com/ClickHouse/ClickHouse/pull/81440) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Используйте `mongo-c-driver` 1.30.4. [#81449](https://github.com/ClickHouse/ClickHouse/pull/81449) ([Konstantин Богданов](https://github.com/thevar1able)). -* Используйте `krb5` 1.21.3-final. [#81453](https://github.com/ClickHouse/ClickHouse/pull/81453) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Используйте `orc` 2.1.2. [#81455](https://github.com/ClickHouse/ClickHouse/pull/81455) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Используйте `grpc` 1.73.0. [#81629](https://github.com/ClickHouse/ClickHouse/pull/81629) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Используйте `delta-kernel-rs` версии 0.12.1. [#81707](https://github.com/ClickHouse/ClickHouse/pull/81707) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Обновлён `c-ares` до `v1.34.5`. [#81159](https://github.com/ClickHouse/ClickHouse/pull/81159) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Обновите `curl` до версии 8.14, чтобы устранить уязвимости CVE-2025-5025 и CVE-2025-4947. [#81171](https://github.com/ClickHouse/ClickHouse/pull/81171) ([larryluogit](https://github.com/larryluogit)). -* Обновить `libarchive` до версии 3.7.9 для устранения следующих уязвимостей: CVE-2024-20696 CVE-2025-25724 CVE-2024-48958 CVE-2024-57970 CVE-2025-1632 CVE-2024-48957 CVE-2024-48615. [#81174](https://github.com/ClickHouse/ClickHouse/pull/81174) ([larryluogit](https://github.com/larryluogit)). -* Обновить `libxml2` до версии 2.14.3. [#81187](https://github.com/ClickHouse/ClickHouse/pull/81187) ([larryluogit](https://github.com/larryluogit)). -* Исключено копирование вендорных исходников Rust в `CARGO_HOME`. [#79560](https://github.com/ClickHouse/ClickHouse/pull/79560) ([Konstantин Bogdanов](https://github.com/thevar1able)). -* Удалена зависимость от библиотеки Sentry путём замены её на собственный endpoint. [#80236](https://github.com/ClickHouse/ClickHouse/pull/80236) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Обновлены зависимости Python в CI-образах для устранения предупреждений Dependabot. [#80658](https://github.com/ClickHouse/ClickHouse/pull/80658) ([Raúl Marín](https://github.com/Algunenano)). -* Повторить чтение флага остановки реплицируемого DDL из Keeper при запуске, чтобы сделать тесты более надёжными, когда для Keeper включена инъекция сбоев. [#80964](https://github.com/ClickHouse/ClickHouse/pull/80964) ([Alexander Gololobov](https://github.com/davenger)). -* Использовать HTTPS для URL-адреса архива Ubuntu. [#81016](https://github.com/ClickHouse/ClickHouse/pull/81016) ([Raúl Marín](https://github.com/Algunenano)). -* Обновлены зависимости Python в тестовых образах. [#81042](https://github.com/ClickHouse/ClickHouse/pull/81042) ([dependabot[bot]](https://github.com/apps/dependabot)). -* Добавлен файл `flake.nix` для сборок Nix. [#81463](https://github.com/ClickHouse/ClickHouse/pull/81463) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Исправлена проблема, из-за которой `delta-kernel-rs` требовал доступа к сети во время сборки. Закрыта задача [#80609](https://github.com/ClickHouse/ClickHouse/issues/80609). [#81602](https://github.com/ClickHouse/ClickHouse/pull/81602) ([Konstantin Bogdanov](https://github.com/thevar1able)). Прочитайте статью [«Год Rust в ClickHouse»](https://clickhouse.com/blog/rust). - -### Релиз ClickHouse 25.5, 2025-05-22 {#255} - -#### Обратное несовместимое изменение {#backward-incompatible-change} - -* Функция `geoToH3` теперь принимает аргументы в порядке (lat, lon, res) (что соответствует другим геометрическим функциям). Пользователи, которые хотят сохранить прежний порядок аргументов (lon, lat, res), могут установить настройку `geotoh3_argument_order = 'lon_lat'`. [#78852](https://github.com/ClickHouse/ClickHouse/pull/78852) ([Pratima Patel](https://github.com/pratimapatel2008)). -* Добавлена настройка файлового кэша `allow_dynamic_cache_resize` (по умолчанию `false`), позволяющая динамически изменять размер файлового кэша. Причина: в некоторых средах (ClickHouse Cloud) все события масштабирования происходят через перезапуск процесса, и мы хотим, чтобы эта возможность была явно отключена для более точного контроля поведения, а также в качестве предохранительной меры. Этот PR помечен как обратно несовместимый, потому что в старых версиях динамическое изменение размера кэша работало по умолчанию без специальной настройки. [#79148](https://github.com/ClickHouse/ClickHouse/pull/79148) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Удалена поддержка устаревших типов индексов `annoy` и `usearch`. Оба уже давно являлись заглушками, то есть любая попытка использовать эти устаревшие индексы всё равно возвращала ошибку. Если у вас всё ещё есть индексы `annoy` и `usearch`, удалите их. [#79802](https://github.com/ClickHouse/ClickHouse/pull/79802) ([Robert Schulze](https://github.com/rschu1ze)). -* Удалена серверная настройка `format_alter_commands_with_parentheses`. Эта настройка была добавлена и по умолчанию отключена в версии 24.2. В версии 25.2 она была включена по умолчанию. Так как теперь нет LTS-версий, которые не поддерживают новый формат, мы можем удалить эту настройку. [#79970](https://github.com/ClickHouse/ClickHouse/pull/79970) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* Реализация хранилища `DeltaLake` на основе `delta-kernel-rs` теперь включена по умолчанию. [#79541](https://github.com/ClickHouse/ClickHouse/pull/79541) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Если чтение из `URL` включает несколько перенаправлений, настройка `enable_url_encoding` корректно применяется ко всем перенаправлениям в цепочке. [#79563](https://github.com/ClickHouse/ClickHouse/pull/79563) ([Shankar Iyer](https://github.com/shankar-iyer)). Значение по умолчанию для настройки `enble_url_encoding` теперь установлено в `false`. [#80088](https://github.com/ClickHouse/ClickHouse/pull/80088) ([Shankar Iyer](https://github.com/shankar-iyer)). - -#### Новая возможность {#new-feature} - -* Добавлена поддержка скалярных коррелированных подзапросов в предложении WHERE. Закрывает [#6697](https://github.com/ClickHouse/ClickHouse/issues/6697). [#79600](https://github.com/ClickHouse/ClickHouse/pull/79600) ([Dmitry Novik](https://github.com/novikd)). Добавлена поддержка коррелированных подзапросов в списке проекций в простых случаях. [#79925](https://github.com/ClickHouse/ClickHouse/pull/79925) ([Dmitry Novik](https://github.com/novikd)). [#76078](https://github.com/ClickHouse/ClickHouse/pull/76078) ([Dmitry Novik](https://github.com/novikd)). Теперь покрывается 100 % тестового набора TPC-H. -* Векторный поиск на основе индекса векторного сходства теперь имеет статус beta (ранее — experimental). [#80164](https://github.com/ClickHouse/ClickHouse/pull/80164) ([Robert Schulze](https://github.com/rschu1ze)). -* Добавлена поддержка геопространственных типов данных в формате `Parquet`. Это закрывает [#75317](https://github.com/ClickHouse/ClickHouse/issues/75317). [#79777](https://github.com/ClickHouse/ClickHouse/pull/79777) ([scanhex12](https://github.com/scanhex12)). -* Новые функции `sparseGrams`, `sparseGramsHashes`, `sparseGramsHashesUTF8`, `sparseGramsUTF8` для вычисления «разрежённых n‑грамм» (sparse-ngrams) — надёжного алгоритма извлечения подстрок для индексации и поиска. [#79517](https://github.com/ClickHouse/ClickHouse/pull/79517) ([scanhex12](https://github.com/scanhex12)). -* `clickhouse-local` (и его сокращённый псевдоним `ch`) теперь неявно добавляют `FROM table`, если есть входные данные для обработки. Это закрывает [#65023](https://github.com/ClickHouse/ClickHouse/issues/65023). Также в clickhouse-local включено автоопределение формата, если `--input-format` не указан и обрабатывается обычный файл. [#79085](https://github.com/ClickHouse/ClickHouse/pull/79085) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Добавлены функции `stringBytesUniq` и `stringBytesEntropy` для поиска возможных случайных или зашифрованных данных. [#79350](https://github.com/ClickHouse/ClickHouse/pull/79350) ([Sachin Kumar Singh](https://github.com/sachinkumarsingh092)). -* Добавлены функции кодирования и декодирования Base32. [#79809](https://github.com/ClickHouse/ClickHouse/pull/79809) ([Joanna Hulboj](https://github.com/jh0x)). -* Добавлены функции `getServerSetting` и `getMergeTreeSetting`. Закрывает #78318. [#78439](https://github.com/ClickHouse/ClickHouse/pull/78439) ([NamNguyenHoai](https://github.com/NamHoaiNguyen)). -* Добавлена новая настройка `iceberg_enable_version_hint` для использования файла `version-hint.text`. [#78594](https://github.com/ClickHouse/ClickHouse/pull/78594) ([Arnaud Briche](https://github.com/arnaudbriche)). -* Добавляет возможность выполнять операцию TRUNCATE для отдельных таблиц базы данных, отфильтрованных по шаблону с помощью ключевого слова `LIKE`. [#78597](https://github.com/ClickHouse/ClickHouse/pull/78597) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Добавлена поддержка виртуального столбца `_part_starting_offset` в таблицах семейства `MergeTree`. Этот столбец представляет собой суммарное количество строк во всех предшествующих частях, вычисляемое во время выполнения запроса на основе текущего списка частей. Суммарные значения сохраняются на протяжении всего выполнения запроса и остаются корректными даже после отсечения частей. Связанная внутренняя логика была переработана для поддержки такого поведения. [#79417](https://github.com/ClickHouse/ClickHouse/pull/79417) ([Amos Bird](https://github.com/amosbird)). -* Добавлены функции `divideOrNull`, `moduloOrNull`, `intDivOrNull`, `positiveModuloOrNull`, возвращающие NULL, если правый аргумент равен нулю. [#78276](https://github.com/ClickHouse/ClickHouse/pull/78276) ([kevinyhzou](https://github.com/KevinyhZou)). -* Векторный поиск в ClickHouse теперь поддерживает как предварительную фильтрацию, так и постфильтрацию и предоставляет соответствующие параметры для более точного управления. (issue [#78161](https://github.com/ClickHouse/ClickHouse/issues/78161)). [#79854](https://github.com/ClickHouse/ClickHouse/pull/79854) ([Shankar Iyer](https://github.com/shankar-iyer)). -* Добавлены функции [`icebergHash`](https://iceberg.apache.org/spec/#appendix-b-32-bit-hash-requirements) и [`icebergBucket`](https://iceberg.apache.org/spec/#bucket-transform-details). Добавлена поддержка отсечения файлов данных в таблицах `Iceberg`, разбитых на партиции с помощью [`bucket transfom`](https://iceberg.apache.org/spec/#partitioning). [#79262](https://github.com/ClickHouse/ClickHouse/pull/79262) ([Daniil Ivanik](https://github.com/divanik)). - -#### Экспериментальная возможность {#experimental-feature} - -* Новые типы данных `Time`/`Time64`: `Time` (HHH:MM:SS) и `Time64` (HHH:MM:SS.`<fractional>`), а также несколько базовых функций приведения типов и функций для взаимодействия с другими типами данных. Также было изменено имя существующей функции с toTime на toTimeWithFixedDate, потому что функция toTime требуется для реализации приведения типов. [#75735](https://github.com/ClickHouse/ClickHouse/pull/75735) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Каталог Hive metastore для озера данных Iceberg. [#77677](https://github.com/ClickHouse/ClickHouse/pull/77677) ([scanhex12](https://github.com/scanhex12)). -* Индексы типа `full_text` были переименованы в `gin`. Это соответствует более привычной терминологии PostgreSQL и других баз данных. Существующие индексы типа `full_text` по‑прежнему можно загружать, но при попытке использовать их в поиске они будут генерировать исключение (с предложением использовать индексы `gin`). [#79024](https://github.com/ClickHouse/ClickHouse/pull/79024) ([Robert Schulze](https://github.com/rschu1ze)). - -#### Повышение производительности {#performance-improvement} - -* Изменён формат компактных частей для сохранения меток для каждого подпотока, чтобы можно было читать отдельные подстолбцы. Старый компактный формат по-прежнему поддерживается для чтения и может быть включён для записи с помощью настройки MergeTree `write_marks_for_substreams_in_compact_parts`. По умолчанию она отключена для более безопасного обновления, так как изменяет хранение компактных частей. По умолчанию будет включена в одном из следующих релизов. [#77940](https://github.com/ClickHouse/ClickHouse/pull/77940) ([Pavel Kruglov](https://github.com/Avogar)). -* Разрешено перемещение условий с подстолбцами в PREWHERE. [#79489](https://github.com/ClickHouse/ClickHouse/pull/79489) ([Pavel Kruglov](https://github.com/Avogar)). -* Ускорена обработка вторичных индексов за счёт вычисления их выражений одновременно на нескольких гранулах. [#64109](https://github.com/ClickHouse/ClickHouse/pull/64109) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Включена настройка `compile_expressions` (JIT-компилятор для фрагментов обычных выражений) по умолчанию. Это закрывает [#51264](https://github.com/ClickHouse/ClickHouse/issues/51264), [#56386](https://github.com/ClickHouse/ClickHouse/issues/56386) и [#66486](https://github.com/ClickHouse/ClickHouse/issues/66486). [#79907](https://github.com/ClickHouse/ClickHouse/pull/79907) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Добавлена новая настройка: `use_skip_indexes_in_final_exact_mode`. Если в запросе к таблице `ReplacingMergeTree` используется ключевое слово FINAL, чтение только тех диапазонов таблицы, которые выбраны на основе skip-индексов, может привести к некорректному результату. Эта настройка позволяет гарантировать корректные результаты за счет сканирования более новых частей, которые пересекаются с диапазонами первичного ключа, возвращенными skip-индексом. Установите 0, чтобы отключить, 1, чтобы включить. [#78350](https://github.com/ClickHouse/ClickHouse/pull/78350) ([Shankar Iyer](https://github.com/shankar-iyer)). -* Табличные функции для кластеров объектного хранилища (например, `s3Cluster`) теперь распределяют файлы по репликам для чтения на основе консистентного хеширования, чтобы улучшить локальность кэша. [#77326](https://github.com/ClickHouse/ClickHouse/pull/77326) ([Andrej Hoos](https://github.com/adikus)). -* Улучшена производительность `S3Queue`/`AzureQueue` за счёт возможности параллельного выполнения вставок данных (`INSERT`, включается с помощью настройки очереди `parallel_inserts=true`). Ранее `S3Queue`/`AzureQueue` могли выполнять параллельно только первую часть конвейера (загрузка, парсинг), а `INSERT` выполнялся однопоточно. При этом `INSERT` почти всегда является узким местом. Теперь производительность будет масштабироваться почти линейно в зависимости от `processing_threads_num`. [#77671](https://github.com/ClickHouse/ClickHouse/pull/77671) ([Azat Khuzhin](https://github.com/azat)). Более справедливое значение `max_processed_files_before_commit` в `S3Queue`/`AzureQueue`. [#79363](https://github.com/ClickHouse/ClickHouse/pull/79363) ([Azat Khuzhin](https://github.com/azat)). -* Введён порог (управляется настройкой `parallel_hash_join_threshold`), ниже которого выполняется возврат к алгоритму `hash`, если размер правой таблицы меньше этого порога. [#76185](https://github.com/ClickHouse/ClickHouse/pull/76185) ([Nikita Taranov](https://github.com/nickitat)). -* Теперь мы используем количество реплик для определения размера задачи чтения при включённых параллельных репликах. Это обеспечивает более равномерное распределение работы между репликами, когда объём читаемых данных невелик. [#78695](https://github.com/ClickHouse/ClickHouse/pull/78695) ([Nikita Taranov](https://github.com/nickitat)). -* Добавлена возможность параллельного слияния состояний `uniqExact` на финальном этапе распределённой агрегации. [#78703](https://github.com/ClickHouse/ClickHouse/pull/78703) ([Nikita Taranov](https://github.com/nickitat)). -* Исправлено возможное снижение производительности при параллельном слиянии состояний агрегатной функции `uniqExact` при агрегации с ключом. [#78724](https://github.com/ClickHouse/ClickHouse/pull/78724) ([Nikita Taranov](https://github.com/nickitat)). -* Уменьшено количество вызовов к API List Blobs хранилища Azure. [#78860](https://github.com/ClickHouse/ClickHouse/pull/78860) ([Julia Kartseva](https://github.com/jkartseva)). -* Улучшена производительность операции распределённого INSERT SELECT с параллельными репликами. [#79441](https://github.com/ClickHouse/ClickHouse/pull/79441) ([Azat Khuzhin](https://github.com/azat)). -* При создании `LogSeriesLimiter` больше не выполняется очистка, что позволяет избежать конкуренции за блокировки и деградации производительности в сценариях с высокой степенью параллелизма. [#79864](https://github.com/ClickHouse/ClickHouse/pull/79864) ([filimonov](https://github.com/filimonov)). -* Ускорено выполнение запросов за счёт оптимизации тривиальных операций подсчёта. [#79945](https://github.com/ClickHouse/ClickHouse/pull/79945) ([Raúl Marín](https://github.com/Algunenano)). -* Улучшен инлайнинг некоторых операций с `Decimal`. [#79999](https://github.com/ClickHouse/ClickHouse/pull/79999) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* По умолчанию установить для `input_format_parquet_bloom_filter_push_down` значение `true`. Также исправлена ошибка в истории изменений настроек. [#80058](https://github.com/ClickHouse/ClickHouse/pull/80058) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Оптимизированы мутации `ALTER ... DELETE` для частей, в которых должны быть удалены все строки. Теперь в таких случаях вместо исходной части создаётся пустая, причём мутация не выполняется. [#79307](https://github.com/ClickHouse/ClickHouse/pull/79307) ([Anton Popov](https://github.com/CurtizJ)). -* Избегать дополнительного копирования блока при вставке в часть Compact, когда это возможно. [#79536](https://github.com/ClickHouse/ClickHouse/pull/79536) ([Pavel Kruglov](https://github.com/Avogar)). -* Добавлена настройка `input_format_max_block_size_bytes` для ограничения в байтах размера блоков, создаваемых во входных форматах. Это может помочь избежать высокого потребления памяти при импорте данных, когда строки содержат большие значения. [#79495](https://github.com/ClickHouse/ClickHouse/pull/79495) ([Pavel Kruglov](https://github.com/Avogar)). -* Удалены защитные страницы для потоков и async_socket_for_remote/use_hedge_requests. Изменён метод выделения памяти в `FiberStack` с `mmap` на `aligned_alloc`, так как это приводит к дроблению VMA и под высокой нагрузкой может быть достигнут предел vm.max_map_count. [#79147](https://github.com/ClickHouse/ClickHouse/pull/79147) ([Sema Checherinda](https://github.com/CheSema)). -* Ленивая материализация с параллельными репликами. [#79401](https://github.com/ClickHouse/ClickHouse/pull/79401) ([Igor Nikonov](https://github.com/devcrafter)). - -#### Улучшения {#improvement} - -* Добавлена возможность выполнять легковесные удаления на лету (с настройками `lightweight_deletes_sync = 0`, `apply_mutations_on_fly = 1`). [#79281](https://github.com/ClickHouse/ClickHouse/pull/79281) ([Anton Popov](https://github.com/CurtizJ)). -* Если данные в формате `pretty` отображаются в терминале и следующий блок имеет те же ширины столбцов, вывод может быть продолжен, «склеив» его с предыдущим блоком путём перемещения курсора вверх. Тем самым закрывается задача [#79333](https://github.com/ClickHouse/ClickHouse/issues/79333). Поведение управляется новым параметром `output_format_pretty_glue_chunks`. [#79339](https://github.com/ClickHouse/ClickHouse/pull/79339) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Функция `isIPAddressInRange` теперь поддерживает типы данных `String`, `IPv4`, `IPv6`, `Nullable(String)`, `Nullable(IPv4)` и `Nullable(IPv6)`. [#78364](https://github.com/ClickHouse/ClickHouse/pull/78364) ([YjyJeff](https://github.com/YjyJeff)). -* Добавлена возможность динамически изменять настройки пула соединений движка `PostgreSQL`. [#78414](https://github.com/ClickHouse/ClickHouse/pull/78414) ([Samay Sharma](https://github.com/samay-sharma)). -* Разрешить задавать `_part_offset` в обычной проекции. Это первый шаг к построению индекса проекции. Его можно использовать вместе с [#58224](https://github.com/ClickHouse/ClickHouse/issues/58224), что может помочь улучшить #63207. [#78429](https://github.com/ClickHouse/ClickHouse/pull/78429) ([Amos Bird](https://github.com/amosbird)). -* Добавлены новые столбцы (`create_query` и `source`) в `system.named_collections`. Закрыта задача [#78179](https://github.com/ClickHouse/ClickHouse/issues/78179). [#78582](https://github.com/ClickHouse/ClickHouse/pull/78582) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). -* В системную таблицу `system.query_condition_cache` добавлено новое поле `condition`. Оно хранит условие в открытом виде, хэш которого используется в качестве ключа в кэше условий запросов. [#78671](https://github.com/ClickHouse/ClickHouse/pull/78671) ([Robert Schulze](https://github.com/rschu1ze)). -* Теперь векторные индексы сходства можно создавать для столбцов типа `BFloat16`. [#78850](https://github.com/ClickHouse/ClickHouse/pull/78850) ([Robert Schulze](https://github.com/rschu1ze)). -* Поддержка Unix-меток времени с дробной частью при разборе `DateTime64` в режиме best effort. [#78908](https://github.com/ClickHouse/ClickHouse/pull/78908) ([Pavel Kruglov](https://github.com/Avogar)). -* В хранилище `DeltaLake` в реализации delta-kernel исправлен режим сопоставления столбцов и добавлены тесты для эволюции схемы. [#78921](https://github.com/ClickHouse/ClickHouse/pull/78921) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Улучшена вставка в столбец `Variant` в формате VALUES за счёт более корректного преобразования значений. [#78923](https://github.com/ClickHouse/ClickHouse/pull/78923) ([Pavel Kruglov](https://github.com/Avogar)). -* Функция `tokens` была расширена: теперь она принимает дополнительный аргумент «tokenizer», а также другие аргументы, специфичные для токенизатора. [#79001](https://github.com/ClickHouse/ClickHouse/pull/79001) ([Elmi Ahmadov](https://github.com/ahmadov)). -* Оператор `SHOW CLUSTER` теперь раскрывает макросы (если они есть) в своём аргументе. [#79006](https://github.com/ClickHouse/ClickHouse/pull/79006) ([arf42](https://github.com/arf42)). -* Функции хеширования теперь поддерживают значения `NULL` внутри массивов, кортежей и отображений (issues [#48365](https://github.com/ClickHouse/ClickHouse/issues/48365) и [#48623](https://github.com/ClickHouse/ClickHouse/issues/48623)). [#79008](https://github.com/ClickHouse/ClickHouse/pull/79008) ([Michael Kolupaev](https://github.com/al13n321)). -* Обновлён cctz до версии 2025a. [#79043](https://github.com/ClickHouse/ClickHouse/pull/79043) ([Raúl Marín](https://github.com/Algunenano)). -* Изменили обработку stderr по умолчанию для UDF на "log_last". Это повышает удобство использования. [#79066](https://github.com/ClickHouse/ClickHouse/pull/79066) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Сделать закрытие вкладок в Web UI обратимым. Закрывает [#71284](https://github.com/ClickHouse/ClickHouse/issues/71284). [#79084](https://github.com/ClickHouse/ClickHouse/pull/79084) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Удалить настройки при выполнении `recoverLostReplica` так же, как это было сделано в: [https://github.com/ClickHouse/ClickHouse/pull/78637](https://github.com/ClickHouse/ClickHouse/pull/78637). [#79113](https://github.com/ClickHouse/ClickHouse/pull/79113) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* Добавлены события профилирования: `ParquetReadRowGroups` и `ParquetPrunedRowGroups` для профилирования отсечения по индексу Parquet. [#79180](https://github.com/ClickHouse/ClickHouse/pull/79180) ([flynn](https://github.com/ucasfl)). -* Добавлена поддержка выполнения `ALTER` над базой данных на кластере. [#79242](https://github.com/ClickHouse/ClickHouse/pull/79242) ([Tuan Pham Anh](https://github.com/tuanpach)). -* Явно пропускать пропущенные запуски сбора статистики в журнале QueryMetricLog, иначе журналу потребуется много времени, чтобы догнать текущее время. [#79257](https://github.com/ClickHouse/ClickHouse/pull/79257) ([Mikhail Artemenko](https://github.com/Michicosun)). -* Небольшие оптимизации чтения форматов на основе `Arrow`. [#79308](https://github.com/ClickHouse/ClickHouse/pull/79308) ([Bharat Nallan](https://github.com/bharatnc)). -* Настройка `allow_archive_path_syntax` по ошибке была помечена как экспериментальная. Добавлен тест, чтобы предотвратить включение экспериментальных настроек по умолчанию. [#79320](https://github.com/ClickHouse/ClickHouse/pull/79320) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Настройки кэша страниц теперь можно задавать на уровне отдельного запроса. Это необходимо для более быстрого экспериментирования и возможности тонкой настройки запросов с высокой пропускной способностью и низкой задержкой. [#79337](https://github.com/ClickHouse/ClickHouse/pull/79337) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Не выводить числовые подсказки в удобочитаемом формате для чисел, которые выглядят как большинство 64-битных хэшей. Это закрывает [#79334](https://github.com/ClickHouse/ClickHouse/issues/79334). [#79338](https://github.com/ClickHouse/ClickHouse/pull/79338) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Цвета графиков на расширенных дашбордах будут вычисляться на основе хеша соответствующего запроса. Это упрощает запоминание и поиск графика при прокрутке дашборда. [#79341](https://github.com/ClickHouse/ClickHouse/pull/79341) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Добавлена асинхронная метрика `FilesystemCacheCapacity` — общая ёмкость виртуальной файловой системы `cache`. Полезна для глобального мониторинга инфраструктуры. [#79348](https://github.com/ClickHouse/ClickHouse/pull/79348) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Оптимизирован доступ к system.parts (размер столбцов и индексов читается только по запросу). [#79352](https://github.com/ClickHouse/ClickHouse/pull/79352) ([Azat Khuzhin](https://github.com/azat)). -* Вычислять только соответствующие поля для запроса `'SHOW CLUSTER '` вместо всех полей. [#79368](https://github.com/ClickHouse/ClickHouse/pull/79368) ([Tuan Pham Anh](https://github.com/tuanpach)). -* Добавлена возможность указывать настройки хранилища для `DatabaseCatalog`. [#79407](https://github.com/ClickHouse/ClickHouse/pull/79407) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Добавлена поддержка локального хранилища в `DeltaLake`. [#79416](https://github.com/ClickHouse/ClickHouse/pull/79416) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Добавлена настройка на уровне запроса для включения поддержки delta-kernel-rs: `allow_experimental_delta_kernel_rs`. [#79418](https://github.com/ClickHouse/ClickHouse/pull/79418) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Исправлен возможный бесконечный цикл при получении списка BLOB-объектов из хранилищ Azure/S3. [#79425](https://github.com/ClickHouse/ClickHouse/pull/79425) ([Alexander Gololobov](https://github.com/davenger)). -* Добавлена настройка кэша файловой системы `max_size_ratio_to_total_space`. [#79460](https://github.com/ClickHouse/ClickHouse/pull/79460) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Для `clickhouse-benchmark` перенастроен параметр `reconnect`, чтобы он принимал значения 0, 1 или N, задающие соответствующее поведение переподключения. [#79465](https://github.com/ClickHouse/ClickHouse/pull/79465) ([Sachin Kumar Singh](https://github.com/sachinkumarsingh092)). -* Разрешить использование `ALTER TABLE ... MOVE|REPLACE PARTITION` для таблиц на разных дисках `plain_rewritable`. [#79566](https://github.com/ClickHouse/ClickHouse/pull/79566) ([Julia Kartseva](https://github.com/jkartseva)). -* Индекс сходства векторов теперь также используется, если опорный вектор имеет тип `Array(BFloat16)`. [#79745](https://github.com/ClickHouse/ClickHouse/pull/79745) ([Shankar Iyer](https://github.com/shankar-iyer)). -* Добавлены last_error_message, last_error_trace и query_id в таблицу system.error_log. Связанный тикет [#75816](https://github.com/ClickHouse/ClickHouse/issues/75816). [#79836](https://github.com/ClickHouse/ClickHouse/pull/79836) ([Andrei Tinikov](https://github.com/Dolso)). -* По умолчанию включена отправка отчетов о сбоях. Это можно отключить в конфигурационном файле сервера. [#79838](https://github.com/ClickHouse/ClickHouse/pull/79838) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Системная таблица `system.functions` теперь показывает, в какой версии ClickHouse функции впервые появились. [#79839](https://github.com/ClickHouse/ClickHouse/pull/79839) ([Robert Schulze](https://github.com/rschu1ze)). -* Добавлена настройка `access_control_improvements.enable_user_name_access_type`. Эта настройка позволяет включать или отключать точное назначение прав доступа пользователям и ролям, добавленное в [https://github.com/ClickHouse/ClickHouse/pull/72246](https://github.com/ClickHouse/ClickHouse/pull/72246). Имеет смысл отключить эту настройку, если в вашем кластере есть реплики версий ранее 25.1. [#79842](https://github.com/ClickHouse/ClickHouse/pull/79842) ([pufit](https://github.com/pufit)). -* Теперь в корректной реализации метода `ASTSelectWithUnionQuery::clone()` также учитывается поле `is_normalized`. Это может помочь с [#77569](https://github.com/ClickHouse/ClickHouse/issues/77569). [#79909](https://github.com/ClickHouse/ClickHouse/pull/79909) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* Исправлено непоследовательное форматирование некоторых запросов с оператором EXCEPT. Если левая часть оператора EXCEPT заканчивается символом `*`, отформатированный запрос теряет скобки и затем разбирается как `*` с модификатором `EXCEPT`. Эти запросы обнаруживаются фаззером и вряд ли будут встречаться на практике. Это закрывает [#79950](https://github.com/ClickHouse/ClickHouse/issues/79950). [#79952](https://github.com/ClickHouse/ClickHouse/pull/79952) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Незначительное улучшение разбора типа `JSON` за счёт использования кэша порядка десериализации вариантов. [#79984](https://github.com/ClickHouse/ClickHouse/pull/79984) ([Pavel Kruglov](https://github.com/Avogar)). -* Добавлена настройка `s3_slow_all_threads_after_network_error`. [#80035](https://github.com/ClickHouse/ClickHouse/pull/80035) ([Vitaly Baranov](https://github.com/vitlibar)). -* Уровень логирования сообщений о выбранных частях для слияния был неверным (Information). Закрывает [#80061](https://github.com/ClickHouse/ClickHouse/issues/80061). [#80062](https://github.com/ClickHouse/ClickHouse/pull/80062) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* trace-visualizer: добавлено отображение runtime/share во всплывающих подсказках и статусных сообщениях. [#79040](https://github.com/ClickHouse/ClickHouse/pull/79040) ([Sergei Trifonov](https://github.com/serxa)). -* trace-visualizer: загрузка данных с сервера ClickHouse. [#79042](https://github.com/ClickHouse/ClickHouse/pull/79042) ([Sergei Trifonov](https://github.com/serxa)). -* Добавлены метрики для неуспешных слияний. [#79228](https://github.com/ClickHouse/ClickHouse/pull/79228) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* `clickhouse-benchmark` будет отображать процент выполнения на основе максимального числа итераций, если оно задано. [#79346](https://github.com/ClickHouse/ClickHouse/pull/79346) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Добавлен визуализатор для таблицы system.parts. [#79437](https://github.com/ClickHouse/ClickHouse/pull/79437) ([Sergei Trifonov](https://github.com/serxa)). -* Добавлен инструмент для анализа задержек запросов. [#79978](https://github.com/ClickHouse/ClickHouse/pull/79978) ([Sergei Trifonov](https://github.com/serxa)). - -#### Исправление ошибки (некорректное поведение, заметное пользователям, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* Исправлены ошибки при переименовании столбцов, отсутствующих в части. [#76346](https://github.com/ClickHouse/ClickHouse/pull/76346) ([Anton Popov](https://github.com/CurtizJ)). -* Материализованное представление могло запускаться слишком поздно, например после таблицы Kafka, которая передаёт в него поток данных. [#72123](https://github.com/ClickHouse/ClickHouse/pull/72123) ([Ilya Golshtein](https://github.com/ilejn)). -* Исправлена проблема с перезаписью запроса `SELECT` при создании `VIEW` с включённым анализатором. Закрывает [#75956](https://github.com/ClickHouse/ClickHouse/issues/75956). [#76356](https://github.com/ClickHouse/ClickHouse/pull/76356) ([Dmitry Novik](https://github.com/novikd)). -* Исправлена проблема с применением `async_insert` с сервера (через `apply_settings_from_server`), которая ранее приводила к ошибкам `Unknown packet 11 from server` на стороне клиента. [#77578](https://github.com/ClickHouse/ClickHouse/pull/77578) ([Azat Khuzhin](https://github.com/azat)). -* Исправлена проблема, из-за которой обновляемое материализованное представление в реплицируемой базе данных не работало на вновь добавленных репликах. [#77774](https://github.com/ClickHouse/ClickHouse/pull/77774) ([Michael Kolupaev](https://github.com/al13n321)). -* Исправлена проблема, из-за которой обновляемые материализованные представления приводили к сбоям резервного копирования. [#77893](https://github.com/ClickHouse/ClickHouse/pull/77893) ([Michael Kolupaev](https://github.com/al13n321)). -* Исправлена старая логическая ошибка, возникавшая в `transform`. [#78247](https://github.com/ClickHouse/ClickHouse/pull/78247) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Исправлены некоторые случаи, когда вторичный индекс не использовался анализатором. Тем самым исправлены [#65607](https://github.com/ClickHouse/ClickHouse/issues/65607) и [#69373](https://github.com/ClickHouse/ClickHouse/issues/69373). [#78485](https://github.com/ClickHouse/ClickHouse/pull/78485) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Исправлен дамп профилирующих событий (`NetworkSendElapsedMicroseconds`/`NetworkSendBytes`) для протокола HTTP с включённым сжатием (расхождение не должно превышать размер буфера, обычно около 1MiB). [#78516](https://github.com/ClickHouse/ClickHouse/pull/78516) ([Azat Khuzhin](https://github.com/azat)). -* Исправлен анализатор, приводивший к LOGICAL_ERROR при использовании JOIN ... USING со столбцом ALIAS; теперь он выдаёт корректную ошибку. [#78618](https://github.com/ClickHouse/ClickHouse/pull/78618) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* Исправлена ошибка анализатора: `CREATE VIEW ... ON CLUSTER` завершался с ошибкой, если `SELECT` содержал позиционные аргументы. [#78663](https://github.com/ClickHouse/ClickHouse/pull/78663) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* Исправлена ошибка `Block structure mismatch` в случае `INSERT SELECT` в табличную функцию с автоматическим выводом схемы, если `SELECT` содержит скалярные подзапросы. [#78677](https://github.com/ClickHouse/ClickHouse/pull/78677) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* Исправлен анализатор: при prefer_global_in_and_join=1 для Distributed-таблицы функция `in` в запросе SELECT должна заменяться на `globalIn`. [#78749](https://github.com/ClickHouse/ClickHouse/pull/78749) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* Исправлено несколько типов запросов `SELECT`, которые читают из таблиц с движком `MongoDB` или табличной функцией `mongodb`: запросы с неявным преобразованием константного значения в предложении `WHERE` (например, `WHERE datetime = '2025-03-10 00:00:00'`); запросы с `LIMIT` и `GROUP BY`. Ранее они могли возвращать неверный результат. [#78777](https://github.com/ClickHouse/ClickHouse/pull/78777) ([Anton Popov](https://github.com/CurtizJ)). -* Исправлено преобразование между разными типами JSON. Теперь оно выполняется простым приведением типов через преобразование к/от типа String. Это менее эффективно, но на 100% корректно. [#78807](https://github.com/ClickHouse/ClickHouse/pull/78807) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена логическая ошибка при преобразовании типа Dynamic в Interval. [#78813](https://github.com/ClickHouse/ClickHouse/pull/78813) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлен откат столбца при ошибке парсинга JSON. [#78836](https://github.com/ClickHouse/ClickHouse/pull/78836) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена ошибка 'bad cast' при выполнении операции JOIN с использованием константного столбца-алиаса. [#78848](https://github.com/ClickHouse/ClickHouse/pull/78848) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Запрещено использовать `PREWHERE` в материализованном представлении для столбцов с разными типами данных в представлении и целевой таблице. [#78889](https://github.com/ClickHouse/ClickHouse/pull/78889) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена логическая ошибка при разборе некорректных бинарных данных столбца типа Variant. [#78982](https://github.com/ClickHouse/ClickHouse/pull/78982) ([Pavel Kruglov](https://github.com/Avogar)). -* Теперь выбрасывается исключение, если размер пакета Parquet установлен в 0. Ранее при `output_format_parquet_batch_size = 0` ClickHouse зависал. Теперь это поведение исправлено. [#78991](https://github.com/ClickHouse/ClickHouse/pull/78991) ([daryawessely](https://github.com/daryawessely)). -* Исправлена десериализация дискриминаторов variant с базовым форматом в компактных партах. Регрессия появилась в [https://github.com/ClickHouse/ClickHouse/pull/55518](https://github.com/ClickHouse/ClickHouse/pull/55518). [#79000](https://github.com/ClickHouse/ClickHouse/pull/79000) ([Pavel Kruglov](https://github.com/Avogar)). -* Словари типа `complex_key_ssd_cache` теперь отклоняют значения параметров `block_size` и `write_buffer_size`, равные нулю или отрицательные (issue [#78314](https://github.com/ClickHouse/ClickHouse/issues/78314)). [#79028](https://github.com/ClickHouse/ClickHouse/pull/79028) ([Elmi Ahmadov](https://github.com/ahmadov)). -* Избегайте использования Field для неагрегированных столбцов в SummingMergeTree. Это может привести к неожиданным ошибкам с типами Dynamic/Variant, используемыми в SummingMergeTree. [#79051](https://github.com/ClickHouse/ClickHouse/pull/79051) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлено чтение из материализованного представления с распределённой целевой таблицей и отличающимся заголовком в анализаторе. [#79059](https://github.com/ClickHouse/ClickHouse/pull/79059) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправляет ошибку, из-за которой `arrayUnion()` возвращал лишние (некорректные) значения в таблицах, в которые выполнялись пакетные вставки. Исправляет ошибку [#75057](https://github.com/ClickHouse/ClickHouse/issues/75057). [#79079](https://github.com/ClickHouse/ClickHouse/pull/79079) ([Peter Nguyen](https://github.com/petern48)). -* Исправлена ошибка сегментации в `OpenSSLInitializer`. Закрывает [#79092](https://github.com/ClickHouse/ClickHouse/issues/79092). [#79097](https://github.com/ClickHouse/ClickHouse/pull/79097) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Всегда задавайте префикс при использовании S3 ListObject. [#79114](https://github.com/ClickHouse/ClickHouse/pull/79114) ([Azat Khuzhin](https://github.com/azat)). -* Исправлена ошибка, из-за которой `arrayUnion()` возвращала лишние (некорректные) значения в таблицах с пакетной вставкой данных. Исправляет [#79157](https://github.com/ClickHouse/ClickHouse/issues/79157). [#79158](https://github.com/ClickHouse/ClickHouse/pull/79158) ([Peter Nguyen](https://github.com/petern48)). -* Исправлена логическая ошибка после применения оптимизации проталкивания фильтра (filter pushdown). [#79164](https://github.com/ClickHouse/ClickHouse/pull/79164) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* Исправлен движок таблиц DeltaLake с реализацией delta-kernel при работе с HTTP-эндпоинтами, исправлен NOSIGN. Закрывает [#78124](https://github.com/ClickHouse/ClickHouse/issues/78124). [#79203](https://github.com/ClickHouse/ClickHouse/pull/79203) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Исправление в Keeper: предотвращено срабатывание наблюдателей при неудачных мультизапросах. [#79247](https://github.com/ClickHouse/ClickHouse/pull/79247) ([Antonio Andelic](https://github.com/antonio2368)). -* Запрещены типы Dynamic и JSON в операторе `IN`. При текущей реализации `IN` это может приводить к некорректным результатам. Правильная поддержка этих типов в `IN` сложна и может быть реализована в будущем. [#79282](https://github.com/ClickHouse/ClickHouse/pull/79282) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена проверка на дублирующиеся пути при разборе типа JSON. [#79317](https://github.com/ClickHouse/ClickHouse/pull/79317) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлены проблемы с подключением SecureStreamSocket. [#79383](https://github.com/ClickHouse/ClickHouse/pull/79383) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Исправлена загрузка дисков plain_rewritable, содержащих данные. [#79439](https://github.com/ClickHouse/ClickHouse/pull/79439) ([Julia Kartseva](https://github.com/jkartseva)). -* Исправлена ошибка, приводившая к аварийному завершению при динамическом определении подстолбцов в широких партах MergeTree. [#79466](https://github.com/ClickHouse/ClickHouse/pull/79466) ([Pavel Kruglov](https://github.com/Avogar)). -* Проверяйте длину имени таблицы только для первоначальных запросов CREATE. Не выполняйте эту проверку для последующих CREATE, чтобы избежать проблем с обратной совместимостью. [#79488](https://github.com/ClickHouse/ClickHouse/pull/79488) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* Исправлена ошибка `Block structure mismatch` в ряде случаев при работе с таблицами с разрежёнными столбцами. [#79491](https://github.com/ClickHouse/ClickHouse/pull/79491) ([Anton Popov](https://github.com/CurtizJ)). -* Исправлены два случая ошибки "Logical error: Can't set alias of * of Asterisk on alias". [#79505](https://github.com/ClickHouse/ClickHouse/pull/79505) ([Raúl Marín](https://github.com/Algunenano)). -* Исправлена ошибка использования некорректных путей при переименовании базы данных Atomic. [#79569](https://github.com/ClickHouse/ClickHouse/pull/79569) ([Tuan Pham Anh](https://github.com/tuanpach)). -* Исправлена работа ORDER BY по JSON-столбцу в сочетании с другими столбцами. [#79591](https://github.com/ClickHouse/ClickHouse/pull/79591) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлено дублирование результатов при чтении из `remote`, когда оба параметра `use_hedged_requests` и `allow_experimental_parallel_reading_from_replicas` отключены. [#79599](https://github.com/ClickHouse/ClickHouse/pull/79599) ([Eduard Karacharov](https://github.com/korowa)). -* Исправлен сбой в реализации delta-kernel при использовании Unity Catalog. [#79677](https://github.com/ClickHouse/ClickHouse/pull/79677) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Реализована подстановка макросов для кластеров автообнаружения. [#79696](https://github.com/ClickHouse/ClickHouse/pull/79696) ([Anton Ivashkin](https://github.com/ianton-ru)). -* Корректно обрабатывать некорректно настроенный параметр `page_cache_limits`. [#79805](https://github.com/ClickHouse/ClickHouse/pull/79805) ([Bharat Nallan](https://github.com/bharatnc)). -* Исправляет результат SQL-функции `formatDateTime`, если за спецификатором формата переменной длины (например, `%W`, т.е. день недели `Monday` `Tuesday` и т.д.) следует составной спецификатор формата (который выводит сразу несколько компонентов, например, `%D`, т.е. американский формат даты `05/04/25`). [#79835](https://github.com/ClickHouse/ClickHouse/pull/79835) ([Robert Schulze](https://github.com/rschu1ze)). -* IcebergS3 поддерживает оптимизацию операции count(), а IcebergS3Cluster — нет. В результате в кластерном режиме возвращаемый результат count() может быть кратен количеству реплик. [#79844](https://github.com/ClickHouse/ClickHouse/pull/79844) ([wxybear](https://github.com/wxybear)). -* Исправлена ошибка AMBIGUOUS_COLUMN_NAME при ленивой материализации, когда до применения проекции при выполнении запроса не используется ни один столбец. Например, SELECT * FROM t ORDER BY rand() LIMIT 5. [#79926](https://github.com/ClickHouse/ClickHouse/pull/79926) ([Igor Nikonov](https://github.com/devcrafter)). -* Пароль в запросе `CREATE DATABASE datalake ENGINE = DataLakeCatalog(\'http://catalog:8181\', \'admin\', \'password\')` скрывается. [#79941](https://github.com/ClickHouse/ClickHouse/pull/79941) ([Han Fei](https://github.com/hanfei1991)). -* Добавлена возможность указывать псевдоним в JOIN USING. Указывайте этот псевдоним, если столбец был переименован (например, из-за ARRAY JOIN). Исправляет [#73707](https://github.com/ClickHouse/ClickHouse/issues/73707). [#79942](https://github.com/ClickHouse/ClickHouse/pull/79942) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Обеспечена корректная работа материализованных представлений с операторами UNION на новых репликах. [#80037](https://github.com/ClickHouse/ClickHouse/pull/80037) ([Samay Sharma](https://github.com/samay-sharma)). -* Спецификатор формата `%e` в SQL-функции `parseDateTime` теперь распознаёт однозначные номера дней (например, `3`), тогда как ранее требовалось добавление пробела слева (например, ` 3`). Это делает его поведение совместимым с MySQL. Чтобы сохранить прежнее поведение, установите настройку `parsedatetime_e_requires_space_padding = 1`. (issue [#78243](https://github.com/ClickHouse/ClickHouse/issues/78243)). [#80057](https://github.com/ClickHouse/ClickHouse/pull/80057) ([Robert Schulze](https://github.com/rschu1ze)). -* Исправлены предупреждения `Cannot find 'kernel' in '[...]/memory.stat'` в журнале ClickHouse (issue [#77410](https://github.com/ClickHouse/ClickHouse/issues/77410)). [#80129](https://github.com/ClickHouse/ClickHouse/pull/80129) ([Robert Schulze](https://github.com/rschu1ze)). -* Добавлена проверка размера стека в FunctionComparison, чтобы избежать сбоя из-за переполнения стека. [#78208](https://github.com/ClickHouse/ClickHouse/pull/78208) ([Julia Kartseva](https://github.com/jkartseva)). -* Устранена гонка при выполнении SELECT из `system.workloads`. [#78743](https://github.com/ClickHouse/ClickHouse/pull/78743) ([Sergei Trifonov](https://github.com/serxa)). -* Исправлена ленивая материализация в распределённых запросах. [#78815](https://github.com/ClickHouse/ClickHouse/pull/78815) ([Igor Nikonov](https://github.com/devcrafter)). -* Исправлена проблема с преобразованием `Array(Bool)` в `Array(FixedString)`. [#78863](https://github.com/ClickHouse/ClickHouse/pull/78863) ([Nikita Taranov](https://github.com/nickitat)). -* Выбор версии формата Parquet сделан менее запутанным. [#78818](https://github.com/ClickHouse/ClickHouse/pull/78818) ([Michael Kolupaev](https://github.com/al13n321)). -* Исправлена проблема с самослиянием `ReservoirSampler`. [#79031](https://github.com/ClickHouse/ClickHouse/pull/79031) ([Nikita Taranov](https://github.com/nickitat)). -* Исправлено хранение таблицы для вставки в клиентском контексте. [#79046](https://github.com/ClickHouse/ClickHouse/pull/79046) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* Исправлен порядок уничтожения членов данных классов `AggregatingSortedAlgorithm` и `SummingSortedAlgorithm`. [#79056](https://github.com/ClickHouse/ClickHouse/pull/79056) ([Nikita Taranov](https://github.com/nickitat)). -* `enable_user_name_access_type` не должен влиять на тип доступа `DEFINER`. [#80026](https://github.com/ClickHouse/ClickHouse/pull/80026) ([pufit](https://github.com/pufit)). -* Запрос к системной базе данных может зависнуть, если её метаданные размещены в Keeper. [#79304](https://github.com/ClickHouse/ClickHouse/pull/79304) ([Mikhail Artemenko](https://github.com/Michicosun)). - -#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement} - -* Добавлена возможность повторно использовать уже собранный бинарный файл `chcache` вместо его постоянной пересборки. [#78851](https://github.com/ClickHouse/ClickHouse/pull/78851) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* Добавлено ожидание паузы в NATS. [#78987](https://github.com/ClickHouse/ClickHouse/pull/78987) ([Dmitry Novikov](https://github.com/dmitry-sles-novikov)). -* Исправлена некорректная публикация ARM-сборки как amd64compat. [#79122](https://github.com/ClickHouse/ClickHouse/pull/79122) ([Alexander Gololobov](https://github.com/davenger)). -* Используется предварительно сгенерированный ассемблерный код для OpenSSL. [#79386](https://github.com/ClickHouse/ClickHouse/pull/79386) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Исправления, позволяющие собирать с `clang20`. [#79588](https://github.com/ClickHouse/ClickHouse/pull/79588) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* `chcache`: поддержка кэширования в Rust. [#78691](https://github.com/ClickHouse/ClickHouse/pull/78691) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Добавлена информация о раскрутке стека (unwind) для ассемблерных файлов `zstd`. [#79288](https://github.com/ClickHouse/ClickHouse/pull/79288) ([Michael Kolupaev](https://github.com/al13n321)). - -### Релиз ClickHouse 25.4, 2025-04-22 {#254} - -#### Изменения, нарушающие обратную совместимость {#backward-incompatible-change} - -* При значении `allow_materialized_view_with_bad_select` равном `false` теперь проверяется, что все столбцы в материализованном представлении соответствуют целевой таблице. [#74481](https://github.com/ClickHouse/ClickHouse/pull/74481) ([Christoph Wurm](https://github.com/cwurm)). -* Исправлены случаи, когда `dateTrunc` вызывалась с отрицательными аргументами типов Date/DateTime. [#77622](https://github.com/ClickHouse/ClickHouse/pull/77622) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Устаревшая интеграция с `MongoDB` была удалена. Настройка сервера `use_legacy_mongodb_integration` стала неактуальной и теперь ни на что не влияет. [#77895](https://github.com/ClickHouse/ClickHouse/pull/77895) ([Robert Schulze](https://github.com/rschu1ze)). -* Улучшена проверка в `SummingMergeTree`: агрегация теперь пропускается для столбцов, используемых в ключах партиционирования или сортировки. [#78022](https://github.com/ClickHouse/ClickHouse/pull/78022) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). - -#### Новая возможность {#new-feature} - -* Добавлено планирование слотов CPU для рабочих нагрузок, подробности см. в [документации](https://clickhouse.com/docs/operations/workload-scheduling#cpu_scheduling). [#77595](https://github.com/ClickHouse/ClickHouse/pull/77595) ([Sergei Trifonov](https://github.com/serxa)). -* `clickhouse-local` будет сохранять свои базы данных после перезапуска при указании параметра командной строки `--path`. Это закрывает [#50647](https://github.com/ClickHouse/ClickHouse/issues/50647). Это закрывает [#49947](https://github.com/ClickHouse/ClickHouse/issues/49947). [#71722](https://github.com/ClickHouse/ClickHouse/pull/71722) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Отклонять запросы, когда сервер перегружен. Решение принимается на основе отношения времени ожидания (`OSCPUWaitMicroseconds`) к времени занятости (`OSCPUVirtualTimeMicroseconds`). Запрос с некоторой вероятностью отбрасывается, когда это отношение находится между `min_os_cpu_wait_time_ratio_to_throw` и `max_os_cpu_wait_time_ratio_to_throw` (это параметры на уровне запроса). [#63206](https://github.com/ClickHouse/ClickHouse/pull/63206) ([Alexey Katsman](https://github.com/alexkats)). -* Путешествие во времени в `Iceberg`: добавлена настройка для запроса таблиц `Iceberg` по состоянию на указанный момент времени. [#71072](https://github.com/ClickHouse/ClickHouse/pull/71072) ([Brett Hoerner](https://github.com/bretthoerner)). [#77439](https://github.com/ClickHouse/ClickHouse/pull/77439) ([Daniil Ivanik](https://github.com/divanik)). -* Кэш в памяти для метаданных `Iceberg`, который хранит файлы манифестов и `metadata.json` для ускорения выполнения запросов. [#77156](https://github.com/ClickHouse/ClickHouse/pull/77156) ([Han Fei](https://github.com/hanfei1991)). -* Добавлена поддержка табличного движка `DeltaLake` для Azure Blob Storage. Устраняет проблему [#68043](https://github.com/ClickHouse/ClickHouse/issues/68043). [#74541](https://github.com/ClickHouse/ClickHouse/pull/74541) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). -* Добавлен кэш в оперативной памяти для десериализованных индексов векторного сходства. Это должно ускорить повторяющиеся запросы приблизительного поиска ближайших соседей (ANN). Размер нового кэша контролируется серверными настройками `vector_similarity_index_cache_size` и `vector_similarity_index_cache_max_entries`. Эта возможность заменяет функцию кэширования индексов-пропусков из более ранних версий. [#77905](https://github.com/ClickHouse/ClickHouse/pull/77905) ([Shankar Iyer](https://github.com/shankar-iyer)). -* Добавлена поддержка отсечения партиций в DeltaLake. [#78486](https://github.com/ClickHouse/ClickHouse/pull/78486) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Поддержка фонового обновления для таблиц `MergeTree` в режиме только для чтения, что позволяет выполнять запросы к обновляемым таблицам с неограниченным числом распределённых читателей (нативное озеро данных ClickHouse). [#76467](https://github.com/ClickHouse/ClickHouse/pull/76467) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Добавлена поддержка использования пользовательских дисков для хранения файлов метаданных баз данных. Сейчас это можно настроить только на глобальном уровне сервера. [#77365](https://github.com/ClickHouse/ClickHouse/pull/77365) ([Tuan Pham Anh](https://github.com/tuanpach)). -* Добавлена поддержка `ALTER TABLE ... ATTACH|DETACH|MOVE|REPLACE PARTITION` для диска `plain_rewritable`. [#77406](https://github.com/ClickHouse/ClickHouse/pull/77406) ([Julia Kartseva](https://github.com/jkartseva)). -* Добавлены параметры таблицы для настройки `SASL` и учетных данных в движке таблицы `Kafka`. Это позволяет настраивать аутентификацию на основе SASL для Kafka и Kafka-совместимых систем непосредственно в операторе CREATE TABLE, а не использовать файлы конфигурации или именованные коллекции. [#78810](https://github.com/ClickHouse/ClickHouse/pull/78810) ([Christoph Wurm](https://github.com/cwurm)). -* Добавлена возможность задавать `default_compression_codec` для таблиц MergeTree: он используется, если в запросе CREATE явно не задан кодек сжатия для соответствующих столбцов. Это закрывает [#42005](https://github.com/ClickHouse/ClickHouse/issues/42005). [#66394](https://github.com/ClickHouse/ClickHouse/pull/66394) ([gvoelfin](https://github.com/gvoelfin)). -* Добавьте параметр `bind_host` в конфигурацию кластеров, чтобы ClickHouse мог использовать конкретную сеть для распределённых соединений. [#74741](https://github.com/ClickHouse/ClickHouse/pull/74741) ([Todd Yocum](https://github.com/toddyocum)). -* Добавлен новый столбец `parametrized_view_parameters` в системную таблицу `system.tables`. Закрывает [https://github.com/clickhouse/clickhouse/issues/66756](https://github.com/clickhouse/clickhouse/issues/66756). [#75112](https://github.com/ClickHouse/ClickHouse/pull/75112) ([NamNguyenHoai](https://github.com/NamHoaiNguyen)). -* Разрешить изменение комментария базы данных. Closes [#73351](https://github.com/ClickHouse/ClickHouse/issues/73351) ### Запись в документации об изменениях, затрагивающих пользователей. [#75622](https://github.com/ClickHouse/ClickHouse/pull/75622) ([NamNguyenHoai](https://github.com/NamHoaiNguyen)). -* Добавлена поддержка аутентификации `SCRAM-SHA-256` в протоколе совместимости с PostgreSQL. [#76839](https://github.com/ClickHouse/ClickHouse/pull/76839) ([scanhex12](https://github.com/scanhex12)). -* Добавлены функции `arrayLevenshteinDistance`, `arrayLevenshteinDistanceWeighted` и `arraySimilarity`. [#77187](https://github.com/ClickHouse/ClickHouse/pull/77187) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). -* Настройка `parallel_distributed_insert_select` теперь действует для `INSERT SELECT` в таблицах `ReplicatedMergeTree` (ранее для этого требовались таблицы `Distributed`). [#78041](https://github.com/ClickHouse/ClickHouse/pull/78041) ([Igor Nikonov](https://github.com/devcrafter)). -* Добавлена функция `toInterval`. Эта функция принимает два аргумента (значение и единицу измерения) и преобразует значение в соответствующий тип `Interval`. [#78723](https://github.com/ClickHouse/ClickHouse/pull/78723) ([Andrew Davis](https://github.com/pulpdrew)). -* Добавлено несколько удобных вариантов указания корневого файла `metadata.json` в табличной функции и движке Iceberg. Закрывает [#78455](https://github.com/ClickHouse/ClickHouse/issues/78455). [#78475](https://github.com/ClickHouse/ClickHouse/pull/78475) ([Daniil Ivanik](https://github.com/divanik)). -* Добавлена поддержка аутентификации по паролю в протоколе SSH в ClickHouse. [#78586](https://github.com/ClickHouse/ClickHouse/pull/78586) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). - -#### Экспериментальная возможность {#experimental-feature} - -* Поддержка коррелированных подзапросов в качестве аргумента для выражения `EXISTS` в предложении `WHERE`. Закрывает [#72459](https://github.com/ClickHouse/ClickHouse/issues/72459). [#76078](https://github.com/ClickHouse/ClickHouse/pull/76078) ([Dmitry Novik](https://github.com/novikd)). -* Добавлены функции `sparseGrams` и `sparseGramsHashes` с вариантами для ASCII и UTF-8. Автор: [scanhex12](https://github.com/scanhex12). [#78176](https://github.com/ClickHouse/ClickHouse/pull/78176) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). Не используйте их: реализация будет изменена в следующих версиях. - -#### Повышение производительности {#performance-improvement} - -* Оптимизирована производительность за счет использования ленивых столбцов, считывающих данные после ORDER BY и LIMIT. [#55518](https://github.com/ClickHouse/ClickHouse/pull/55518) ([Xiaozhe Yu](https://github.com/wudidapaopao)). -* По умолчанию включён кэш условий запросов. [#79080](https://github.com/ClickHouse/ClickHouse/pull/79080) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Ускорено построение результата JOIN за счёт девиртуализации вызовов `col->insertFrom()`. [#77350](https://github.com/ClickHouse/ClickHouse/pull/77350) ([Alexander Gololobov](https://github.com/davenger)). -* Теперь условия равенства из шага плана запроса с фильтрацией объединяются с условием JOIN, когда это возможно, чтобы их можно было использовать в качестве ключей хеш-таблицы. [#78877](https://github.com/ClickHouse/ClickHouse/pull/78877) ([Dmitry Novik](https://github.com/novikd)). -* Используйте динамический шардинг для JOIN, если ключ JOIN является префиксом PK для обеих частей. Эта оптимизация включается с помощью настройки `query_plan_join_shard_by_pk_ranges` (по умолчанию отключена). [#74733](https://github.com/ClickHouse/ClickHouse/pull/74733) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Добавлена поддержка отсечения данных в `Iceberg` на основе нижних и верхних граничных значений столбцов. Исправляет [#77638](https://github.com/ClickHouse/ClickHouse/issues/77638). [#78242](https://github.com/ClickHouse/ClickHouse/pull/78242) ([alesapin](https://github.com/alesapin)). -* Реализована простая оптимизация подсчёта для `Iceberg`. Теперь запросы с `count()` и без каких-либо фильтров должны выполняться быстрее. Закрывает [#77639](https://github.com/ClickHouse/ClickHouse/issues/77639). [#78090](https://github.com/ClickHouse/ClickHouse/pull/78090) ([alesapin](https://github.com/alesapin)). -* Добавлена возможность настраивать количество столбцов, которые могут сбрасываться параллельно при слияниях, с помощью `max_merge_delayed_streams_for_parallel_write` (это должно снизить потребление памяти при вертикальных слияниях в S3 примерно в 25 раз). [#77922](https://github.com/ClickHouse/ClickHouse/pull/77922) ([Azat Khuzhin](https://github.com/azat)). -* Отключайте `filesystem_cache_prefer_bigger_buffer_size`, когда кэш используется пассивно, например при слияниях. Это снижает потребление памяти во время слияний. [#77898](https://github.com/ClickHouse/ClickHouse/pull/77898) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Теперь для определения размера задачи при чтении с включёнными параллельными репликами используется количество реплик. Это обеспечивает более равномерное распределение нагрузки между репликами, когда объём данных для чтения не слишком велик. [#78695](https://github.com/ClickHouse/ClickHouse/pull/78695) ([Nikita Taranov](https://github.com/nickitat)). -* Добавлена поддержка асинхронного предварительного чтения (I/O prefetch) для формата `ORC`, что улучшает общую производительность за счёт скрытия задержок удалённого ввода-вывода. [#70534](https://github.com/ClickHouse/ClickHouse/pull/70534) ([李扬](https://github.com/taiyang-li)). -* Предварительно выделять память, используемую асинхронными вставками, для повышения производительности. [#74945](https://github.com/ClickHouse/ClickHouse/pull/74945) ([Ilya Golshtein](https://github.com/ilejn)). -* Уменьшено количество запросов к Keeper за счёт отказа от использования одиночных запросов `get` в пользу `multiRead` там, где он доступен, поскольку при увеличении числа реплик такие одиночные запросы могли создавать существенную нагрузку на Keeper. [#56862](https://github.com/ClickHouse/ClickHouse/pull/56862) ([Nikolay Degterinsky](https://github.com/evillique)). -* Незначительная оптимизация выполнения функций при работе с аргументами типа Nullable. [#76489](https://github.com/ClickHouse/ClickHouse/pull/76489) ([李扬](https://github.com/taiyang-li)). -* Оптимизирована функция `arraySort`. [#76850](https://github.com/ClickHouse/ClickHouse/pull/76850) ([李扬](https://github.com/taiyang-li)). -* Объединять метки одной и той же части и записывать их в кэш условий запроса за один раз, чтобы уменьшить накладные расходы на блокировки. [#77377](https://github.com/ClickHouse/ClickHouse/pull/77377) ([zhongyuankai](https://github.com/zhongyuankai)). -* Оптимизирована производительность `s3Cluster` для запросов с одиночным раскрытием скобок. [#77686](https://github.com/ClickHouse/ClickHouse/pull/77686) ([Tomáš Hromada](https://github.com/gyfis)). -* Оптимизация ORDER BY по отдельным столбцам типа Nullable или LowCardinality. [#77789](https://github.com/ClickHouse/ClickHouse/pull/77789) ([李扬](https://github.com/taiyang-li)). -* Оптимизировано использование памяти формата `Native`. [#78442](https://github.com/ClickHouse/ClickHouse/pull/78442) ([Azat Khuzhin](https://github.com/azat)). -* Тривиальная оптимизация: не переписывать выражение `count(if(...))` в `countIf`, если требуется приведение типов. Закрыта задача [#78564](https://github.com/ClickHouse/ClickHouse/issues/78564). [#78565](https://github.com/ClickHouse/ClickHouse/pull/78565) ([李扬](https://github.com/taiyang-li)). -* Функция `hasAll` теперь может использовать полнотекстовые пропускающие индексы `tokenbf_v1` и `ngrambf_v1`. [#77662](https://github.com/ClickHouse/ClickHouse/pull/77662) ([UnamedRus](https://github.com/UnamedRus)). -* Индекс векторного сходства мог выделять оперативную память с избыточным запасом — до 2 раз больше необходимого. В этом исправлении переработана стратегия распределения памяти, что снизило её потребление и повысило эффективность кэша индекса векторного сходства. (issue [#78056](https://github.com/ClickHouse/ClickHouse/issues/78056)). [#78394](https://github.com/ClickHouse/ClickHouse/pull/78394) ([Shankar Iyer](https://github.com/shankar-iyer)). -* Добавлена настройка `schema_type` для таблицы `system.metric_log`, задающая тип схемы. Допускаются три варианта схемы: `wide` — текущая схема, каждая метрика/событие в отдельном столбце (наиболее эффективна при чтении отдельных столбцов), `transposed` — аналогично `system.asynchronous_metric_log`, метрики/события хранятся по строкам, и самая интересная `transposed_with_wide_view` — создаётся базовая таблица со схемой `transposed`, но также добавляется представление со схемой `wide`, которое транслирует запросы в базовую таблицу. В схеме `transposed_with_wide_view` субсекундная точность во view не поддерживается, `event_time_microseconds` — это лишь псевдоним для обеспечения обратной совместимости. [#78412](https://github.com/ClickHouse/ClickHouse/pull/78412) ([alesapin](https://github.com/alesapin)). - -#### Улучшения {#improvement} - -* Сериализация плана запроса для запросов к таблицам `Distributed`. Добавлена новая настройка `serialize_query_plan`. При её включении запросы из таблиц `Distributed` будут использовать сериализованный план запроса для удалённого выполнения. Это добавляет новый тип пакета в протокол TCP; в конфигурацию сервера следует добавить `true`, чтобы разрешить обработку этого пакета. [#69652](https://github.com/ClickHouse/ClickHouse/pull/69652) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Поддержка чтения столбцов типа `JSON` и подстолбцов из представлений. [#76903](https://github.com/ClickHouse/ClickHouse/pull/76903) ([Pavel Kruglov](https://github.com/Avogar)). -* Добавлена поддержка ALTER DATABASE ... ON CLUSTER. [#79242](https://github.com/ClickHouse/ClickHouse/pull/79242) ([Tuan Pham Anh](https://github.com/tuanpach)). -* Операции обновления обновляемых материализованных представлений теперь отображаются в `system.query_log`. [#71333](https://github.com/ClickHouse/ClickHouse/pull/71333) ([Michael Kolupaev](https://github.com/al13n321)). -* Пользовательские функции (UDF) теперь можно помечать как детерминированные с помощью нового параметра конфигурации. Кроме того, кэш запросов теперь проверяет, являются ли вызываемые в запросе UDF детерминированными. Если да, результат запроса кэшируется. (Issue [#59988](https://github.com/ClickHouse/ClickHouse/issues/59988)). [#77769](https://github.com/ClickHouse/ClickHouse/pull/77769) ([Jimmy Aguilar Mena](https://github.com/Ergus)). -* Включён механизм экспоненциальной задержки (backoff) для всех типов реплицированных задач. Это позволит снизить потребление CPU и памяти, а также размер файлов журналов. Добавлены новые настройки `max_postpone_time_for_failed_replicated_fetches_ms`, `max_postpone_time_for_failed_replicated_merges_ms` и `max_postpone_time_for_failed_replicated_tasks_ms`, которые аналогичны `max_postpone_time_for_failed_mutations_ms`. [#74576](https://github.com/ClickHouse/ClickHouse/pull/74576) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). -* Добавлен `query_id` в таблицу `system.errors`. Закрывает [#75815](https://github.com/ClickHouse/ClickHouse/issues/75815). [#76581](https://github.com/ClickHouse/ClickHouse/pull/76581) ([Vladimir Baikov](https://github.com/bkvvldmr)). -* Добавлена поддержка преобразования `UInt128` в `IPv6`. Это позволяет выполнять операцию `bitAnd` и арифметические операции над `IPv6`, а также преобразовывать результат обратно в `IPv6`. Закрывает [#76752](https://github.com/ClickHouse/ClickHouse/issues/76752). Это также позволяет конвертировать результат операции `bitAnd` над `IPv6` обратно в `IPv6`. См. также [#57707](https://github.com/ClickHouse/ClickHouse/pull/57707). [#76928](https://github.com/ClickHouse/ClickHouse/pull/76928) ([Muzammil Abdul Rehman](https://github.com/muzammilar)). -* По умолчанию не парсить специальные значения `Bool` в текстовых форматах внутри типа `Variant`. Это можно включить с помощью настройки `allow_special_bool_values_inside_variant`. [#76974](https://github.com/ClickHouse/ClickHouse/pull/76974) ([Pavel Kruglov](https://github.com/Avogar)). -* Поддерживается настройка времени ожидания по задаче для низкоприоритетного запроса (`priority`) на уровне сессии и сервера. [#77013](https://github.com/ClickHouse/ClickHouse/pull/77013) ([VicoWu](https://github.com/VicoWu)). -* Реализовано сравнение значений типа данных JSON. Теперь JSON-объекты можно сравнивать аналогично типу Map. [#77397](https://github.com/ClickHouse/ClickHouse/pull/77397) ([Pavel Kruglov](https://github.com/Avogar)). -* Улучшена поддержка прав доступа в `system.kafka_consumers`. Теперь пробрасываются внутренние ошибки `librdkafka` (стоит отметить, что эта библиотека, мягко говоря, так себе). [#77700](https://github.com/ClickHouse/ClickHouse/pull/77700) ([Ilya Golshtein](https://github.com/ilejn)). -* Добавлена проверка настроек движка таблицы Buffer. [#77840](https://github.com/ClickHouse/ClickHouse/pull/77840) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* Добавлен параметр конфигурации `enable_hdfs_pread` для включения или отключения операции `pread` в `HDFS`. [#77885](https://github.com/ClickHouse/ClickHouse/pull/77885) ([kevinyhzou](https://github.com/KevinyhZou)). -* Добавлены profile events для количества запросов чтения и записи `multi` в ZooKeeper. [#77888](https://github.com/ClickHouse/ClickHouse/pull/77888) ([JackyWoo](https://github.com/JackyWoo)). -* Разрешено создавать и вставлять данные во временные таблицы при включённом параметре `disable_insertion_and_mutation`. [#77901](https://github.com/ClickHouse/ClickHouse/pull/77901) ([Xu Jia](https://github.com/XuJia0210)). -* Уменьшено значение параметра `max_insert_delayed_streams_for_parallel_write` (до 100). [#77919](https://github.com/ClickHouse/ClickHouse/pull/77919) ([Azat Khuzhin](https://github.com/azat)). -* Исправлен разбор года в синтаксисе Joda (если вам интересно, это из мира Java) для шаблонов вида `yyy`. [#77973](https://github.com/ClickHouse/ClickHouse/pull/77973) ([李扬](https://github.com/taiyang-li)). -* Присоединение частей таблиц `MergeTree` будет выполняться в их блочном порядке, что важно для специальных алгоритмов слияния, таких как `ReplacingMergeTree`. Это закрывает [#71009](https://github.com/ClickHouse/ClickHouse/issues/71009). [#77976](https://github.com/ClickHouse/ClickHouse/pull/77976) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Правила маскировки запросов теперь могут выбрасывать `LOGICAL_ERROR` в случае, если найдено совпадение. Это поможет проверить, не утек ли заранее заданный пароль в какие-либо логи. [#78094](https://github.com/ClickHouse/ClickHouse/pull/78094) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* Добавлен столбец `index_length_column` в `information_schema.tables` для улучшения совместимости с MySQL. [#78119](https://github.com/ClickHouse/ClickHouse/pull/78119) ([Paweł Zakrzewski](https://github.com/KrzaQ)). -* Добавлены две новые метрики: `TotalMergeFailures` и `NonAbortedMergeFailures`. Эти метрики необходимы для обнаружения случаев, когда за короткий промежуток времени происходит слишком много неудачных слияний. [#78150](https://github.com/ClickHouse/ClickHouse/pull/78150) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* Исправлен некорректный разбор URL S3 при использовании path-style, когда ключ не указан. [#78185](https://github.com/ClickHouse/ClickHouse/pull/78185) ([Arthur Passos](https://github.com/arthurpassos)). -* Исправлены некорректные значения асинхронных метрик `BlockActiveTime`, `BlockDiscardTime`, `BlockWriteTime`, `BlockQueueTime` и `BlockReadTime` (до изменения одна секунда ошибочно отображалась как 0,001 секунды). [#78211](https://github.com/ClickHouse/ClickHouse/pull/78211) ([filimonov](https://github.com/filimonov)). -* Теперь учитывается ограничение `loading_retries` для ошибок при отправке данных в материализованное представление для StorageS3(Azure)Queue. Ранее такие ошибки повторялись бесконечно. [#78313](https://github.com/ClickHouse/ClickHouse/pull/78313) ([Kseniia Sumarokova](https://github.com/kssenii)). -* В DeltaLake с реализацией `delta-kernel-rs` исправлены проблемы с производительностью и индикатором прогресса. [#78368](https://github.com/ClickHouse/ClickHouse/pull/78368) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Реализована поддержка `include`, `from_env`, `from_zk` для runtime-дисков. Закрывает [#78177](https://github.com/ClickHouse/ClickHouse/issues/78177). [#78470](https://github.com/ClickHouse/ClickHouse/pull/78470) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Добавлено динамическое предупреждение в таблицу `system.warnings` для длительно выполняющихся мутаций. [#78658](https://github.com/ClickHouse/ClickHouse/pull/78658) ([Bharat Nallan](https://github.com/bharatnc)). -* Добавлено поле `condition` в системную таблицу `system.query_condition_cache`. Оно хранит условие в открытом виде, хеш которого используется как ключ в кэше условий запросов. [#78671](https://github.com/ClickHouse/ClickHouse/pull/78671) ([Robert Schulze](https://github.com/rschu1ze)). -* Разрешено использование пустого значения при партиционировании Hive. [#78816](https://github.com/ClickHouse/ClickHouse/pull/78816) ([Arthur Passos](https://github.com/arthurpassos)). -* Исправлено приведение типов в операторе `IN` для `BFloat16` (т. е. теперь `SELECT toBFloat16(1) IN [1, 2, 3];` возвращает `1`). Закрывает [#78754](https://github.com/ClickHouse/ClickHouse/issues/78754). [#78839](https://github.com/ClickHouse/ClickHouse/pull/78839) ([Raufs Dunamalijevs](https://github.com/rienath)). -* Не проверять части на других дисках для `MergeTree`, если установлен `disk = ...`. [#78855](https://github.com/ClickHouse/ClickHouse/pull/78855) ([Azat Khuzhin](https://github.com/azat)). -* Теперь типы данных в `used_data_type_families` в `system.query_log` записываются с каноническими именами. [#78972](https://github.com/ClickHouse/ClickHouse/pull/78972) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Настройки очистки при `recoverLostReplica` выполнены аналогично тому, как это сделано в [#78637](https://github.com/ClickHouse/ClickHouse/pull/78637). [#79113](https://github.com/ClickHouse/ClickHouse/pull/79113) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* Используйте столбцы вставки для определения схемы INFILE. [#78490](https://github.com/ClickHouse/ClickHouse/pull/78490) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). - -#### Исправление ошибки (некорректное поведение, заметное пользователям, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* Исправлен некорректный анализ проекций при использовании `count(Nullable)` в агрегатных проекциях. Тем самым исправляется [#74495](https://github.com/ClickHouse/ClickHouse/issues/74495). В этом PR также добавлено дополнительное логирование анализа проекций, чтобы было понятно, почему проекция используется или нет. [#74498](https://github.com/ClickHouse/ClickHouse/pull/74498) ([Amos Bird](https://github.com/amosbird)). -* Исправлена ошибка `Part <...> does not contain in snapshot of previous virtual parts. (PART_IS_TEMPORARILY_LOCKED)` при выполнении `DETACH PART`. [#76039](https://github.com/ClickHouse/ClickHouse/pull/76039) ([Aleksei Filatov](https://github.com/aalexfvk)). -* Исправлена некорректная работа пропускающих индексов с выражениями, содержащими литералы, в анализаторе, а также удалены тривиальные приведения типов во время анализа индексов. [#77229](https://github.com/ClickHouse/ClickHouse/pull/77229) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена ошибка, из-за которой параметр запроса `close_session` не действовал, и именованные сессии закрывались только после `session_timeout`. [#77336](https://github.com/ClickHouse/ClickHouse/pull/77336) ([Alexey Katsman](https://github.com/alexkats)). -* Исправлено получение сообщений от сервера NATS без связанных материализованных представлений. [#77392](https://github.com/ClickHouse/ClickHouse/pull/77392) ([Dmitry Novikov](https://github.com/dmitry-sles-novikov)). -* Исправлена логическая ошибка при чтении из пустого `FileLog` с использованием табличной функции `merge`, закрыто [#75575](https://github.com/ClickHouse/ClickHouse/issues/75575). [#77441](https://github.com/ClickHouse/ClickHouse/pull/77441) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Использовать настройки формата по умолчанию в сериализации `Dynamic` из разделяемого варианта. [#77572](https://github.com/ClickHouse/ClickHouse/pull/77572) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена проверка наличия пути к данным таблицы на локальном диске. [#77608](https://github.com/ClickHouse/ClickHouse/pull/77608) ([Tuan Pham Anh](https://github.com/tuanpach)). -* Исправлена передача константных значений на удалённый сервер для некоторых типов данных. [#77634](https://github.com/ClickHouse/ClickHouse/pull/77634) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлено аварийное завершение работы из‑за истекшего контекста в S3/AzureQueue. [#77720](https://github.com/ClickHouse/ClickHouse/pull/77720) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Скрыть учетные данные в табличных движках RabbitMQ, Nats, Redis и AzureQueue. [#77755](https://github.com/ClickHouse/ClickHouse/pull/77755) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Исправлено неопределённое поведение при сравнении значений `NaN` в функциях `argMin` и `argMax`. [#77756](https://github.com/ClickHouse/ClickHouse/pull/77756) ([Raúl Marín](https://github.com/Algunenano)). -* Регулярно проверяйте, были ли слияния и мутации отменены, даже если операция не порождает блоков для записи. [#77766](https://github.com/ClickHouse/ClickHouse/pull/77766) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* Исправлена проблема, из-за которой обновляемое материализованное представление в реплицируемой базе данных не работало на вновь добавленных репликах. [#77774](https://github.com/ClickHouse/ClickHouse/pull/77774) ([Michael Kolupaev](https://github.com/al13n321)). -* Исправлен потенциальный краш при возникновении ошибки `NOT_FOUND_COLUMN_IN_BLOCK`. [#77854](https://github.com/ClickHouse/ClickHouse/pull/77854) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Исправлена ошибка, приводившая к сбою в S3/AzureQueue во время заполнения данными. [#77878](https://github.com/ClickHouse/ClickHouse/pull/77878) ([Bharat Nallan](https://github.com/bharatnc)). -* Отключён нечеткий поиск по истории в SSH-сервере (так как для него требуется библиотека skim). [#78002](https://github.com/ClickHouse/ClickHouse/pull/78002) ([Azat Khuzhin](https://github.com/azat)). -* Исправлена ошибка, из-за которой запрос векторного поиска по столбцу без индекса возвращал некорректные результаты, если в таблице был другой векторный столбец с определённым индексом векторного сходства. (Issue [#77978](https://github.com/ClickHouse/ClickHouse/issues/77978)). [#78069](https://github.com/ClickHouse/ClickHouse/pull/78069) ([Shankar Iyer](https://github.com/shankar-iyer)). -* Исправлена незначительная ошибка в запросе подтверждения «Запрошенный формат вывода {} — двоичный... Всё равно вывести? [y/N]». [#78095](https://github.com/ClickHouse/ClickHouse/pull/78095) ([Azat Khuzhin](https://github.com/azat)). -* Исправлена ошибка при использовании `toStartOfInterval` с нулевым значением аргумента origin. [#78096](https://github.com/ClickHouse/ClickHouse/pull/78096) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Запрещена передача пустого параметра запроса `session_id` в HTTP-интерфейсе. [#78098](https://github.com/ClickHouse/ClickHouse/pull/78098) ([Alexey Katsman](https://github.com/alexkats)). -* Исправлена перезапись метаданных в базе данных `Replicated`, которая могла произойти из‑за выполнения запроса `RENAME` сразу после запроса `ALTER`. [#78107](https://github.com/ClickHouse/ClickHouse/pull/78107) ([Nikolay Degterinsky](https://github.com/evillique)). -* Исправлена ошибка, приводившая к аварийному завершению работы движка `NATS`. [#78108](https://github.com/ClickHouse/ClickHouse/pull/78108) ([Dmitry Novikov](https://github.com/dmitry-sles-novikov)). -* Не пытаться создавать файл `history_file` во встроенном SSH‑клиенте (в предыдущих версиях создание всегда завершалось неудачей, но всё же предпринималось). [#78112](https://github.com/ClickHouse/ClickHouse/pull/78112) ([Azat Khuzhin](https://github.com/azat)). -* Исправлено некорректное отображение информации в `system.detached_tables` после выполнения запросов `RENAME DATABASE` или `DROP TABLE`. [#78126](https://github.com/ClickHouse/ClickHouse/pull/78126) ([Nikolay Degterinsky](https://github.com/evillique)). -* Исправлена проверка на слишком большое количество таблиц в базе данных `Replicated` после [#77274](https://github.com/ClickHouse/ClickHouse/pull/77274). Кроме того, проверка теперь выполняется перед созданием хранилища, чтобы избежать создания неучтённых узлов в Keeper в случае `ReplicatedMergeTree` или `KeeperMap`. [#78127](https://github.com/ClickHouse/ClickHouse/pull/78127) ([Nikolay Degterinsky](https://github.com/evillique)). -* Исправлено возможное аварийное завершение работы из-за одновременной инициализации метаданных `S3Queue`. [#78131](https://github.com/ClickHouse/ClickHouse/pull/78131) ([Azat Khuzhin](https://github.com/azat)). -* Функции `groupArray*` теперь выдают ошибку `BAD_ARGUMENTS` для значения аргумента `max_size`, равного 0 и имеющего тип Int (как это уже делается для значения типа UInt), вместо попытки выполнить операцию с таким значением. [#78140](https://github.com/ClickHouse/ClickHouse/pull/78140) ([Eduard Karacharov](https://github.com/korowa)). -* Предотвращён сбой при восстановлении потерянной реплики, если локальная таблица была удалена до её отключения. [#78173](https://github.com/ClickHouse/ClickHouse/pull/78173) ([Raúl Marín](https://github.com/Algunenano)). -* Исправлена проблема, из-за которой столбец «alterable» в `system.s3_queue_settings` всегда возвращал `false`. [#78187](https://github.com/ClickHouse/ClickHouse/pull/78187) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Маскировать подпись доступа Azure, чтобы она не отображалась пользователю и в логах. [#78189](https://github.com/ClickHouse/ClickHouse/pull/78189) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Исправлена предвыборка подпотоков с префиксами в широких частях. [#78205](https://github.com/ClickHouse/ClickHouse/pull/78205) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлены сбои и некорректный результат для `mapFromArrays` в случае, когда массив ключей имеет тип `LowCardinality(Nullable)`. [#78240](https://github.com/ClickHouse/ClickHouse/pull/78240) ([Eduard Karacharov](https://github.com/korowa)). -* Исправлены параметры аутентификации для delta-kernel-rs. [#78255](https://github.com/ClickHouse/ClickHouse/pull/78255) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Не планировать задачу Refreshable Materialized Views, если у реплики параметр `disable_insertion_and_mutation` имеет значение true. Задача представляет собой вставку и завершится с ошибкой, если `disable_insertion_and_mutation` равно true. [#78277](https://github.com/ClickHouse/ClickHouse/pull/78277) ([Xu Jia](https://github.com/XuJia0210)). -* Проверять права доступа к базовым таблицам движка `Merge`. [#78339](https://github.com/ClickHouse/ClickHouse/pull/78339) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* Модификатор `FINAL` можно не использовать при запросах к таблице `Distributed`. [#78428](https://github.com/ClickHouse/ClickHouse/pull/78428) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* `bitmapMin` возвращает uint32_max, когда битовая карта пуста (и uint64_max, когда разрядность входного типа больше), что соответствует поведению минимального значения пустого roaring_bitmap. [#78444](https://github.com/ClickHouse/ClickHouse/pull/78444) ([wxybear](https://github.com/wxybear)). -* Отключена параллелизация обработки запроса сразу после чтения FROM при включённом параметре `distributed_aggregation_memory_efficient`, так как это может приводить к логической ошибке. Закрывает [#76934](https://github.com/ClickHouse/ClickHouse/issues/76934). [#78500](https://github.com/ClickHouse/ClickHouse/pull/78500) ([flynn](https://github.com/ucasfl)). -* Устанавливать минимум один поток для чтения на случай, если после применения настройки `max_streams_to_max_threads_ratio` не остаётся ни одного запланированного потока. [#78505](https://github.com/ClickHouse/ClickHouse/pull/78505) ([Eduard Karacharov](https://github.com/korowa)). -* В хранилище `S3Queue` исправлена логическая ошибка вида «Cannot unregister: table uuid is not registered». Закрывает [#78285](https://github.com/ClickHouse/ClickHouse/issues/78285). [#78541](https://github.com/ClickHouse/ClickHouse/pull/78541) ([Kseniia Sumarokova](https://github.com/kssenii)). -* ClickHouse теперь может корректно определять свою cgroup v2 на системах, где включены и cgroups v1, и v2. [#78566](https://github.com/ClickHouse/ClickHouse/pull/78566) ([Grigory Korolev](https://github.com/gkorolev)). -* Табличные функции `-Cluster` давали сбой при использовании с настройками на уровне таблицы. [#78587](https://github.com/ClickHouse/ClickHouse/pull/78587) ([Daniil Ivanik](https://github.com/divanik)). -* Улучшены проверки на отсутствие поддержки транзакций в ReplicatedMergeTree при выполнении INSERT. [#78633](https://github.com/ClickHouse/ClickHouse/pull/78633) ([Azat Khuzhin](https://github.com/azat)). -* Очистка настроек запроса при выполнении ATTACH. [#78637](https://github.com/ClickHouse/ClickHouse/pull/78637) ([Raúl Marín](https://github.com/Algunenano)). -* Исправлена ошибка, приводившая к аварийному завершению при указании недопустимого пути в `iceberg_metadata_file_path`. [#78688](https://github.com/ClickHouse/ClickHouse/pull/78688) ([alesapin](https://github.com/alesapin)). -* В движке таблиц `DeltaLake` с реализацией на delta-kernel-s исправлен случай, когда схема чтения отличается от схемы таблицы и одновременно заданы столбцы партиционирования, что приводило к ошибке «not found column». [#78690](https://github.com/ClickHouse/ClickHouse/pull/78690) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Исправлена проблема, при которой после планирования закрытия именованной сессии (но до истечения таймаута) создание новой именованной сессии с тем же именем приводило к её закрытию в то же время, что и первой сессии. [#78698](https://github.com/ClickHouse/ClickHouse/pull/78698) ([Alexey Katsman](https://github.com/alexkats)). -* Исправлено несколько типов запросов `SELECT`, которые читают из таблиц с движком `MongoDB` или табличной функцией `mongodb`: запросы с неявным преобразованием константы в условии `WHERE` (например, `WHERE datetime = '2025-03-10 00:00:00'`); запросы с `LIMIT` и `GROUP BY`. Ранее они могли возвращать неверный результат. [#78777](https://github.com/ClickHouse/ClickHouse/pull/78777) ([Anton Popov](https://github.com/CurtizJ)). -* Не блокировать завершение работы таблицы во время выполнения `CHECK TABLE`. [#78782](https://github.com/ClickHouse/ClickHouse/pull/78782) ([Raúl Marín](https://github.com/Algunenano)). -* Исправление в Keeper: во всех случаях исправлен подсчёт эфемерных сущностей. [#78799](https://github.com/ClickHouse/ClickHouse/pull/78799) ([Antonio Andelic](https://github.com/antonio2368)). -* Исправлено некорректное приведение типов в `StorageDistributed` при использовании табличных функций, кроме `view`. Закрывает [#78464](https://github.com/ClickHouse/ClickHouse/issues/78464). [#78828](https://github.com/ClickHouse/ClickHouse/pull/78828) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Приведено к единому стилю форматирование для `tupleElement(*, 1)`. Закрывает [#78639](https://github.com/ClickHouse/ClickHouse/issues/78639). [#78832](https://github.com/ClickHouse/ClickHouse/pull/78832) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Словари типа `ssd_cache` теперь отклоняют нулевые или отрицательные значения параметров `block_size` и `write_buffer_size` (issue [#78314](https://github.com/ClickHouse/ClickHouse/issues/78314)). [#78854](https://github.com/ClickHouse/ClickHouse/pull/78854) ([Elmi Ahmadov](https://github.com/ahmadov)). -* Исправлено падение Refreshable MATERIALIZED VIEW при выполнении ALTER после некорректного завершения работы. [#78858](https://github.com/ClickHouse/ClickHouse/pull/78858) ([Azat Khuzhin](https://github.com/azat)). -* Исправлена обработка некорректных значений `DateTime` в формате `CSV`. [#78919](https://github.com/ClickHouse/ClickHouse/pull/78919) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправление в Keeper: предотвращает срабатывание наблюдателей (watches) при неуспешных multi‑запросах. [#79247](https://github.com/ClickHouse/ClickHouse/pull/79247) ([Antonio Andelic](https://github.com/antonio2368)). -* Исправлена ошибка чтения таблиц Iceberg, возникавшая, когда значения min/max были явно заданы, но имели значение `NULL`. Отмечено, что библиотека Go Iceberg генерировала как раз такие некорректные файлы. Закрывает [#78740](https://github.com/ClickHouse/ClickHouse/issues/78740). [#78764](https://github.com/ClickHouse/ClickHouse/pull/78764) ([flynn](https://github.com/ucasfl)). - -#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement} - -* Учитывать целевые особенности процессора в Rust и включать LTO во всех крейтах. [#78590](https://github.com/ClickHouse/ClickHouse/pull/78590) ([Raúl Marín](https://github.com/Algunenano)). - -### Релиз ClickHouse 25.3 LTS, 2025-03-20 {#253} - -#### Обратимые несовместимые изменения {#backward-incompatible-change} - -* Операция TRUNCATE для реплицируемых баз данных запрещена. [#76651](https://github.com/ClickHouse/ClickHouse/pull/76651) ([Bharat Nallan](https://github.com/bharatnc)). -* Отменено изменение, из-за которого пропускался кэш индексов. [#77447](https://github.com/ClickHouse/ClickHouse/pull/77447) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). - -#### Новая возможность {#new-feature} - -* Тип данных `JSON` готов для промышленной эксплуатации. См. [https://jsonbench.com/](https://jsonbench.com/). Типы данных `Dynamic` и `Variant` также готовы для промышленной эксплуатации. [#77785](https://github.com/ClickHouse/ClickHouse/pull/77785) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Появилась поддержка протокола SSH для clickhouse-server. Теперь можно подключаться к ClickHouse с помощью любого SSH‑клиента. Закрывает: [#74340](https://github.com/ClickHouse/ClickHouse/issues/74340). [#74989](https://github.com/ClickHouse/ClickHouse/pull/74989) ([George Gamezardashvili](https://github.com/Infjoker)). -* Заменяет табличные функции на их версии с суффиксом -Cluster, если включены параллельные реплики. Исправляет [#65024](https://github.com/ClickHouse/ClickHouse/issues/65024). [#70659](https://github.com/ClickHouse/ClickHouse/pull/70659) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Новая реализация кэша страниц в пространстве пользователя (Userspace Page Cache), которая позволяет кэшировать данные в памяти процесса вместо использования кэша страниц ОС, что полезно, когда данные хранятся на удалённой виртуальной файловой системе без опоры на локальный файловый кэш. [#70509](https://github.com/ClickHouse/ClickHouse/pull/70509) ([Michael Kolupaev](https://github.com/al13n321)). -* Добавлена настройка сервера `concurrent_threads_scheduler`, которая управляет распределением CPU-слотов между одновременными запросами. Может принимать значения `round_robin` (предыдущее поведение) или `fair_round_robin` для устранения проблемы несправедливого распределения CPU между INSERT и SELECT. [#75949](https://github.com/ClickHouse/ClickHouse/pull/75949) ([Sergei Trifonov](https://github.com/serxa)). -* Добавлена агрегатная функция `estimateCompressionRatio` [#70801](https://github.com/ClickHouse/ClickHouse/issues/70801). [#76661](https://github.com/ClickHouse/ClickHouse/pull/76661) ([Tariq Almawash](https://github.com/talmawash)). -* Добавлена функция `arraySymmetricDifference`. Она возвращает все элементы из нескольких массивов, переданных в качестве аргументов, которые не встречаются во всех аргументах одновременно. Пример: `SELECT arraySymmetricDifference([1, 2], [2, 3])` возвращает `[1, 3]`. (issue [#61673](https://github.com/ClickHouse/ClickHouse/issues/61673)). [#76231](https://github.com/ClickHouse/ClickHouse/pull/76231) ([Filipp Abapolov](https://github.com/pheepa)). -* Добавлена возможность явно указывать файл метаданных для чтения таблиц Iceberg с помощью настройки функции хранилища/табличной функции `iceberg_metadata_file_path`. Исправляет [#47412](https://github.com/ClickHouse/ClickHouse/issues/47412). [#77318](https://github.com/ClickHouse/ClickHouse/pull/77318) ([alesapin](https://github.com/alesapin)). -* Добавлена хеш-функция `keccak256`, широко используемая в блокчейн-реализациях, особенно в системах на базе EVM. [#76669](https://github.com/ClickHouse/ClickHouse/pull/76669) ([Arnaud Briche](https://github.com/arnaudbriche)). -* Добавлены три новые функции: `icebergTruncate` в соответствии со спецификацией [https://iceberg.apache.org/spec/#truncate-transform-details](https://iceberg.apache.org/spec/#truncate-transform-details), `toYearNumSinceEpoch` и `toMonthNumSinceEpoch`. Добавлена поддержка преобразования `truncate` при отсечении партиций для движка `Iceberg`. [#77403](https://github.com/ClickHouse/ClickHouse/pull/77403) ([alesapin](https://github.com/alesapin)). -* Добавлена поддержка типа данных `LowCardinality(Decimal)` [#72256](https://github.com/ClickHouse/ClickHouse/issues/72256). [#72833](https://github.com/ClickHouse/ClickHouse/pull/72833) ([zhanglistar](https://github.com/zhanglistar)). -* Профилирующие события `FilterTransformPassedRows` и `FilterTransformPassedBytes` будут показывать количество строк и объём данных в байтах, отфильтрованных во время выполнения запроса. [#76662](https://github.com/ClickHouse/ClickHouse/pull/76662) ([Onkar Deshpande](https://github.com/onkar)). -* Поддержка метрик типа «гистограмма». Интерфейс во многом повторяет клиент Prometheus: вы просто вызываете `observe(value)`, чтобы увеличить счётчик в бакете, соответствующем значению. Метрики-гистограммы доступны через `system.histogram_metrics`. [#75736](https://github.com/ClickHouse/ClickHouse/pull/75736) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* Поддержка неконстантного оператора CASE для переключения по явным значениям. [#77399](https://github.com/ClickHouse/ClickHouse/pull/77399) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). - -#### Экспериментальная функциональность {#experimental-feature} - -* Добавлена поддержка [Unity Catalog](https://www.databricks.com/product/unity-catalog) для таблиц Delta Lake поверх AWS S3 и локальной файловой системы. [#76988](https://github.com/ClickHouse/ClickHouse/pull/76988) ([alesapin](https://github.com/alesapin)). -* Представлена экспериментальная интеграция с каталогом данных (Data Catalog) сервиса AWS Glue для таблиц Iceberg. [#77257](https://github.com/ClickHouse/ClickHouse/pull/77257) ([alesapin](https://github.com/alesapin)). -* Добавлена поддержка динамического автообнаружения кластеров. Это расширяет существующую функциональность автообнаружения _узлов_. Теперь ClickHouse может автоматически обнаруживать и регистрировать новые _кластеры_ под общим путем в ZooKeeper, используя ``. [#76001](https://github.com/ClickHouse/ClickHouse/pull/76001) ([Anton Ivashkin](https://github.com/ianton-ru)). -* Добавлена возможность автоматической очистки слияниями целых партиций по истечении настраиваемого тайм-аута с помощью нового параметра `enable_replacing_merge_with_cleanup_for_min_age_to_force_merge`. [#76440](https://github.com/ClickHouse/ClickHouse/pull/76440) ([Christoph Wurm](https://github.com/cwurm)). - -#### Повышение производительности {#performance-improvement} - -* Реализован кэш условий запроса для улучшения производительности запросов с повторяющимися условиями. Диапазон области данных, не удовлетворяющей условию, запоминается в памяти как временный индекс. Последующие запросы используют этот индекс. Закрыты [#67768](https://github.com/ClickHouse/ClickHouse/issues/67768) [#69236](https://github.com/ClickHouse/ClickHouse/pull/69236) ([zhongyuankai](https://github.com/zhongyuankai)). -* Активное удаление данных из кэша при удалении кусков данных. Не допускать роста кэша до максимального размера, если объём данных меньше. [#76641](https://github.com/ClickHouse/ClickHouse/pull/76641) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Заменены Int256 и UInt256 на встроенный тип clang i256 в арифметических вычислениях, что даёт прирост производительности [#70502](https://github.com/ClickHouse/ClickHouse/issues/70502). [#73658](https://github.com/ClickHouse/ClickHouse/pull/73658) ([李扬](https://github.com/taiyang-li)). -* В некоторых случаях (например, пустой столбец-массив) части данных могут содержать пустые файлы. Можно пропускать запись пустых blob-объектов в ObjectStorage и хранить только метаданные для таких файлов, когда таблица размещена на диске с раздельным хранением метаданных и объектов. [#75860](https://github.com/ClickHouse/ClickHouse/pull/75860) ([Alexander Gololobov](https://github.com/davenger)). -* Улучшена производительность вычислений min/max для Decimal32/Decimal64/DateTime64. [#76570](https://github.com/ClickHouse/ClickHouse/pull/76570) ([李扬](https://github.com/taiyang-li)). -* Компиляция запросов (параметр `compile_expressions`) теперь учитывает тип машины. Это существенно ускоряет такие запросы. [#76753](https://github.com/ClickHouse/ClickHouse/pull/76753) ([ZhangLiStar](https://github.com/zhanglistar)). -* Оптимизирован `arraySort`. [#76850](https://github.com/ClickHouse/ClickHouse/pull/76850) ([李扬](https://github.com/taiyang-li)). -* Отключён `filesystem_cache_prefer_bigger_buffer_size`, когда кэш используется пассивно, например при слияниях. [#77898](https://github.com/ClickHouse/ClickHouse/pull/77898) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Атрибут `preserve_most` применён в ряде мест в коде, что позволяет немного улучшить генерацию кода. [#67778](https://github.com/ClickHouse/ClickHouse/pull/67778) ([Nikita Taranov](https://github.com/nickitat)). -* Ускорено завершение работы серверов ClickHouse (убрана задержка 2.5 секунды). [#76550](https://github.com/ClickHouse/ClickHouse/pull/76550) ([Azat Khuzhin](https://github.com/azat)). -* Исключено избыточное выделение памяти в ReadBufferFromS3 и других буферах удалённого чтения, их потребление памяти уменьшено вдвое. [#76692](https://github.com/ClickHouse/ClickHouse/pull/76692) ([Sema Checherinda](https://github.com/CheSema)). -* Обновлён zstd с версии 1.5.5 до 1.5.7, что может привести к [улучшению производительности](https://github.com/facebook/zstd/releases/tag/v1.5.7). [#77137](https://github.com/ClickHouse/ClickHouse/pull/77137) ([Pradeep Chhetri](https://github.com/chhetripradeep)). -* Снижено потребление памяти при предварительной подзагрузке JSON-столбца в Wide-частях. Актуально, когда ClickHouse используется поверх разделяемого хранилища, например в ClickHouse Cloud. [#77640](https://github.com/ClickHouse/ClickHouse/pull/77640) ([Pavel Kruglov](https://github.com/Avogar)). - -#### Улучшения {#improvement} - -* Добавлена поддержка атомарного переименования при использовании `TRUNCATE` с `INTO OUTFILE`. Исправлена проблема [#70323](https://github.com/ClickHouse/ClickHouse/issues/70323). [#77181](https://github.com/ClickHouse/ClickHouse/pull/77181) ([Onkar Deshpande](https://github.com/onkar)). -* Больше нельзя использовать `NaN` или `inf` в качестве значений параметров с плавающей запятой. Впрочем, раньше в этом всё равно не было никакого смысла. [#77546](https://github.com/ClickHouse/ClickHouse/pull/77546) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Параллельные реплики теперь по умолчанию отключаются, если analyzer отключен, независимо от настройки `compatibility`. Это поведение по-прежнему можно изменить, явно установив `parallel_replicas_only_with_analyzer` в `false`. [#77115](https://github.com/ClickHouse/ClickHouse/pull/77115) ([Igor Nikonov](https://github.com/devcrafter)). -* Добавлена возможность задавать список заголовков, которые передаются из заголовков клиентского запроса во внешний HTTP-аутентификатор. [#77054](https://github.com/ClickHouse/ClickHouse/pull/77054) ([inv2004](https://github.com/inv2004)). -* Учитывать регистронезависимое сопоставление имён столбцов для полей в столбцах-кортежах. Закрывает [https://github.com/apache/incubator-gluten/issues/8324](https://github.com/apache/incubator-gluten/issues/8324). [#73780](https://github.com/ClickHouse/ClickHouse/pull/73780) ([李扬](https://github.com/taiyang-li)). -* Параметры кодека Gorilla теперь всегда будут сохраняться в метаданных таблицы в файле .sql. Это исправляет: [#70072](https://github.com/ClickHouse/ClickHouse/issues/70072). [#74814](https://github.com/ClickHouse/ClickHouse/pull/74814) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* Реализованы улучшения парсинга для некоторых озёр данных (парсинг Sequence ID: добавлена возможность разбора идентификаторов последовательностей в манифест-файлах и парсинг метаданных Avro: переработан парсер метаданных Avro, чтобы его было проще расширять в будущем). [#75010](https://github.com/ClickHouse/ClickHouse/pull/75010) ([Daniil Ivanik](https://github.com/divanik)). -* `trace_id` убран из ORDER BY по умолчанию для `system.opentelemetry_span_log`. [#75907](https://github.com/ClickHouse/ClickHouse/pull/75907) ([Azat Khuzhin](https://github.com/azat)). -* Шифрование (атрибут `encrypted_by`) теперь может применяться к любому конфигурационному файлу (config.xml, users.xml, вложенные конфигурационные файлы). Ранее этот атрибут поддерживался только для файла config.xml верхнего уровня. [#75911](https://github.com/ClickHouse/ClickHouse/pull/75911) ([Mikhail Gorshkov](https://github.com/mgorshkov)). -* Улучшена таблица `system.warnings` и добавлены динамические сообщения-предупреждения, которые можно добавлять, обновлять или удалять. [#76029](https://github.com/ClickHouse/ClickHouse/pull/76029) ([Bharat Nallan](https://github.com/bharatnc)). -* Этот PR делает невозможным выполнение запроса `ALTER USER user1 ADD PROFILES a, DROP ALL PROFILES`, поскольку все операции `DROP` должны располагаться в запросе первыми. [#76242](https://github.com/ClickHouse/ClickHouse/pull/76242) ([pufit](https://github.com/pufit)). -* Различные улучшения механизма SYNC REPLICA (более информативные сообщения об ошибках, улучшенные тесты, проверки корректности). [#76307](https://github.com/ClickHouse/ClickHouse/pull/76307) ([Azat Khuzhin](https://github.com/azat)). -* Используется корректный резервный механизм при ошибке Access Denied во время многочастного копирования в S3 при создании резервной копии. Многочастное копирование может приводить к ошибке Access Denied, когда резервное копирование выполняется между бакетами с разными учетными данными. [#76515](https://github.com/ClickHouse/ClickHouse/pull/76515) ([Antonio Andelic](https://github.com/antonio2368)). -* Обновлена librdkafka (которая представляет собой кучу мусора) до версии 2.8.0 (куча от этого лучше не стала) и улучшена процедура завершения работы для таблиц Kafka, что сократило задержки при удалении таблиц и перезапуске сервера. `engine=Kafka` больше не выходит из группы потребителей (consumer group) при удалении таблицы. Вместо этого потребитель остаётся в группе, пока не будет автоматически удалён после `session_timeout_ms` (по умолчанию: 45 секунд) бездействия. [#76621](https://github.com/ClickHouse/ClickHouse/pull/76621) ([filimonov](https://github.com/filimonov)). -* Исправлена валидация настроек запросов к S3. [#76658](https://github.com/ClickHouse/ClickHouse/pull/76658) ([Vitaly Baranov](https://github.com/vitlibar)). -* Системные таблицы, такие как `server_settings` или `settings`, имеют столбец значений по умолчанию `default`, что удобно. Теперь такой столбец есть и в `merge_tree_settings` и `replicated_merge_tree_settings`. [#76942](https://github.com/ClickHouse/ClickHouse/pull/76942) ([Diego Nieto](https://github.com/lesandie)). -* Добавлен `ProfileEvents::QueryPreempted` с логикой, аналогичной `CurrentMetrics::QueryPreempted`. [#77015](https://github.com/ClickHouse/ClickHouse/pull/77015) ([VicoWu](https://github.com/VicoWu)). -* Ранее база данных Replicated могла выводить в логи учетные данные, указанные в запросе. Это поведение исправлено. Этим исправлением закрыт тикет: [#77123](https://github.com/ClickHouse/ClickHouse/issues/77123). [#77133](https://github.com/ClickHouse/ClickHouse/pull/77133) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* Разрешён `ALTER TABLE DROP PARTITION` для диска `plain_rewritable`. [#77138](https://github.com/ClickHouse/ClickHouse/pull/77138) ([Julia Kartseva](https://github.com/jkartseva)). -* Параметр резервного копирования/восстановления `allow_s3_native_copy` теперь поддерживает три возможных значения: - `False` — S3 native copy использоваться не будет; - `True` (старое значение по умолчанию) — ClickHouse сначала попытается использовать S3 native copy, а при неудаче переключится на подход с чтением и записью; - `'auto'` (новое значение по умолчанию) — ClickHouse сначала сравнит учетные данные источника и приемника. Если они совпадают, ClickHouse попытается использовать S3 native copy и затем при необходимости может переключиться на подход с чтением и записью. Если они различаются, ClickHouse сразу перейдет к подходу с чтением и записью. [#77401](https://github.com/ClickHouse/ClickHouse/pull/77401) ([Vitaly Baranov](https://github.com/vitlibar)). -* Добавлена поддержка использования AWS session token и учетных данных, полученных из переменных окружения, в delta kernel для движка таблиц DeltaLake. [#77661](https://github.com/ClickHouse/ClickHouse/pull/77661) ([Kseniia Sumarokova](https://github.com/kssenii)). - -#### Исправление ошибки (некорректное поведение, заметное пользователям, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* Исправлена блокировка при обработке отложенной пачки данных для асинхронного распределённого INSERT (например, из‑за ошибки `No such file or directory`). [#72939](https://github.com/ClickHouse/ClickHouse/pull/72939) ([Azat Khuzhin](https://github.com/azat)). -* Улучшено преобразование DateTime при анализе индексов за счёт принудительного использования насыщающего поведения для неявных преобразований Date в DateTime. Это устраняет возможные неточности анализа индексов, вызванные ограничениями диапазона DateTime. Исправлена [#73307](https://github.com/ClickHouse/ClickHouse/issues/73307). Также исправлено явное преобразование `toDateTime`, когда `date_time_overflow_behavior = 'ignore'`, что является значением по умолчанию. [#73326](https://github.com/ClickHouse/ClickHouse/pull/73326) ([Amos Bird](https://github.com/amosbird)). -* Исправлены различные ошибки, возникавшие из‑за гонок между UUID и именами таблиц (например, устранена гонка между `RENAME` и `RESTART REPLICA`: при одновременном выполнении `RENAME` и `SYSTEM RESTART REPLICA` можно было в итоге перезапустить не ту реплику и/или оставить одну из таблиц в состоянии `Table X is being restarted`). [#76308](https://github.com/ClickHouse/ClickHouse/pull/76308) ([Azat Khuzhin](https://github.com/azat)). -* Исправлена потеря данных при включённой асинхронной вставке (async insert) и выполнении команды insert into ... from file ... с разным размером блоков: если размер первого блока < async_max_size, а второго блока > async_max_size, то второй блок не вставлялся. Эти данные оставались в `squashing`. [#76343](https://github.com/ClickHouse/ClickHouse/pull/76343) ([Han Fei](https://github.com/hanfei1991)). -* Поле 'marks' переименовано в 'marks_bytes' в `system.data_skipping_indices`. [#76374](https://github.com/ClickHouse/ClickHouse/pull/76374) ([Robert Schulze](https://github.com/rschu1ze)). -* Исправлена обработка неожиданных ошибок при изменении размера динамического кэша файловой системы во время вытеснения. [#76466](https://github.com/ClickHouse/ClickHouse/pull/76466) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Исправлена инициализация `used_flag` в параллельном хеше. Это могло приводить к падению сервера. [#76580](https://github.com/ClickHouse/ClickHouse/pull/76580) ([Nikita Taranov](https://github.com/nickitat)). -* Исправлена логическая ошибка при вызове функции `defaultProfiles` внутри проекции. [#76627](https://github.com/ClickHouse/ClickHouse/pull/76627) ([pufit](https://github.com/pufit)). -* Не запрашивать интерактивную базовую аутентификацию в браузере для Web UI. Закрывает [#76319](https://github.com/ClickHouse/ClickHouse/issues/76319). [#76637](https://github.com/ClickHouse/ClickHouse/pull/76637) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Исправлено исключение THERE_IS_NO_COLUMN при выборке логического литерала из распределённых таблиц. [#76656](https://github.com/ClickHouse/ClickHouse/pull/76656) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* Вложенный путь в каталоге таблицы выбирается более рациональным образом. [#76681](https://github.com/ClickHouse/ClickHouse/pull/76681) ([Daniil Ivanik](https://github.com/divanik)). -* Исправлена ошибка `Not found column in block`, возникавшая после изменения таблицы, в которой подстолбец используется в первичном ключе. После [https://github.com/ClickHouse/ClickHouse/pull/72644](https://github.com/ClickHouse/ClickHouse/pull/72644) требуется [https://github.com/ClickHouse/ClickHouse/pull/74403](https://github.com/ClickHouse/ClickHouse/pull/74403). [#76686](https://github.com/ClickHouse/ClickHouse/pull/76686) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Добавлены тесты производительности для короткого замыкания для `NULL` и исправлены ошибки. [#76708](https://github.com/ClickHouse/ClickHouse/pull/76708) ([李扬](https://github.com/taiyang-li)). -* Буферы записи вывода теперь сбрасываются перед их финализацией. Исправлено возникновение `LOGICAL_ERROR` во время финализации некоторых форматов вывода, например `JSONEachRowWithProgressRowOutputFormat`. [#76726](https://github.com/ClickHouse/ClickHouse/pull/76726) ([Antonio Andelic](https://github.com/antonio2368)). -* Добавлена поддержка двоичного UUID MongoDB ([#74452](https://github.com/ClickHouse/ClickHouse/issues/74452)) - Исправлено проталкивание условий WHERE в MongoDB при использовании табличной функции ([#72210](https://github.com/ClickHouse/ClickHouse/issues/72210)) - Изменено отображение типов MongoDB – ClickHouse таким образом, что двоичный UUID MongoDB может быть интерпретирован только как UUID ClickHouse. Это должно избежать двусмысленностей и неожиданных ситуаций в будущем. - Исправлено отображение OID с сохранением обратной совместимости. [#76762](https://github.com/ClickHouse/ClickHouse/pull/76762) ([Kirill Nikiforov](https://github.com/allmazz)). -* Исправлена обработка исключений при параллельной десериализации префиксов JSON-подколонок. [#76809](https://github.com/ClickHouse/ClickHouse/pull/76809) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлено поведение функции lgamma для отрицательных целых чисел. [#76840](https://github.com/ClickHouse/ClickHouse/pull/76840) ([Ilya Kataev](https://github.com/IlyaKataev)). -* Исправлен анализ обратного ключа для явно заданных первичных ключей. Аналогично [#76654](https://github.com/ClickHouse/ClickHouse/issues/76654). [#76846](https://github.com/ClickHouse/ClickHouse/pull/76846) ([Amos Bird](https://github.com/amosbird)). -* Исправлено форматирование (pretty print) значений типа Bool в формате JSON. [#76905](https://github.com/ClickHouse/ClickHouse/pull/76905) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлен возможный сбой из-за некорректного отката столбца JSON при ошибке во время асинхронных вставок. [#76908](https://github.com/ClickHouse/ClickHouse/pull/76908) ([Pavel Kruglov](https://github.com/Avogar)). -* Ранее `multiIf` мог возвращать разные типы столбцов на этапе планирования и при основном выполнении. Это приводило к тому, что код проявлял неопределённое поведение с точки зрения языка C++. [#76914](https://github.com/ClickHouse/ClickHouse/pull/76914) ([Nikita Taranov](https://github.com/nickitat)). -* Исправлена некорректная сериализация константных nullable-ключей в MergeTree. Это устраняет проблему [#76939](https://github.com/ClickHouse/ClickHouse/issues/76939). [#76985](https://github.com/ClickHouse/ClickHouse/pull/76985) ([Amos Bird](https://github.com/amosbird)). -* Исправлена сортировка значений типа `BFloat16`. Закрывает [#75487](https://github.com/ClickHouse/ClickHouse/issues/75487). Закрывает [#75669](https://github.com/ClickHouse/ClickHouse/issues/75669). [#77000](https://github.com/ClickHouse/ClickHouse/pull/77000) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Исправлена ошибка обработки JSON с подстолбцом типа Variant за счёт добавления проверки, пропускающей эфемерные подстолбцы при проверке согласованности парта. [#72187](https://github.com/ClickHouse/ClickHouse/issues/72187). [#77034](https://github.com/ClickHouse/ClickHouse/pull/77034) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). -* Исправлен сбой при разборе шаблона формата Values при несовпадении типов. [#77071](https://github.com/ClickHouse/ClickHouse/pull/77071) ([Pavel Kruglov](https://github.com/Avogar)). -* Теперь не допускается создание таблицы EmbeddedRocksDB с подстолбцом в первичном ключе. Ранее такую таблицу можно было создать, но запросы SELECT завершались с ошибкой. [#77074](https://github.com/ClickHouse/ClickHouse/pull/77074) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлено некорректное сравнение в распределённых запросах, потому что проталкивание предикатов на удалённые узлы не учитывает типы литералов. [#77093](https://github.com/ClickHouse/ClickHouse/pull/77093) ([Duc Canh Le](https://github.com/canhld94)). -* Исправлен сбой при создании таблицы Kafka, приводивший к выбросу исключения. [#77121](https://github.com/ClickHouse/ClickHouse/pull/77121) ([Pavel Kruglov](https://github.com/Avogar)). -* Добавлена поддержка JSON и подстолбцов в движках Kafka и RabbitMQ. [#77122](https://github.com/ClickHouse/ClickHouse/pull/77122) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлено развёртывание стека исключений в macOS. [#77126](https://github.com/ClickHouse/ClickHouse/pull/77126) ([Eduard Karacharov](https://github.com/korowa)). -* Исправлено чтение подстолбца 'null' в функции getSubcolumn. [#77163](https://github.com/ClickHouse/ClickHouse/pull/77163) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена работа индекса Блума с `Array` и неподдерживаемыми функциями. [#77271](https://github.com/ClickHouse/ClickHouse/pull/77271) ([Pavel Kruglov](https://github.com/Avogar)). -* Следует проверять ограничение на количество таблиц только при выполнении исходного запроса CREATE. [#77274](https://github.com/ClickHouse/ClickHouse/pull/77274) ([Nikolay Degterinsky](https://github.com/evillique)). -* Не баг: `SELECT toBFloat16(-0.0) == toBFloat16(0.0)` теперь корректно возвращает `true` (ранее возвращал `false`). Это делает поведение единообразным с `Float32` и `Float64`. [#77290](https://github.com/ClickHouse/ClickHouse/pull/77290) ([Shankar Iyer](https://github.com/shankar-iyer)). -* Исправлено возможное некорректное обращение к неинициализированной переменной key_index, которое могло приводить к аварийному завершению в debug-сборках (это неинициализированное обращение не вызывает проблем в release-сборках, так как последующий код, скорее всего, выбрасывает ошибки). ### Запись в документации об изменениях, заметных пользователю. [#77305](https://github.com/ClickHouse/ClickHouse/pull/77305) ([wxybear](https://github.com/wxybear)). -* Исправлено имя партиции со значением типа Bool. Ранее оно было нарушено в [https://github.com/ClickHouse/ClickHouse/pull/74533](https://github.com/ClickHouse/ClickHouse/pull/74533). [#77319](https://github.com/ClickHouse/ClickHouse/pull/77319) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлено сравнение между кортежами с элементами типа Nullable и строками. Например, до изменения сравнение между кортежем `(1, null)` и строкой `'(1,null)'` приводило к ошибке. Другой пример — сравнение между кортежем `(1, a)`, где `a` — столбец типа Nullable, и строкой `'(1, 2)'`. Это изменение устраняет эти проблемы. [#77323](https://github.com/ClickHouse/ClickHouse/pull/77323) ([Alexey Katsman](https://github.com/alexkats)). -* Исправлен сбой в ObjectStorageQueueSource. Он был внесён в [https://github.com/ClickHouse/ClickHouse/pull/76358](https://github.com/ClickHouse/ClickHouse/pull/76358). [#77325](https://github.com/ClickHouse/ClickHouse/pull/77325) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена проблема в работе `async_insert` с `input`. [#77340](https://github.com/ClickHouse/ClickHouse/pull/77340) ([Azat Khuzhin](https://github.com/azat)). -* Исправление: `WITH FILL` может завершаться с ошибкой NOT_FOUND_COLUMN_IN_BLOCK, если сортируемый столбец был удалён планировщиком. Аналогичная проблема была связана с несогласованным DAG, вычисленным для выражения INTERPOLATE. [#77343](https://github.com/ClickHouse/ClickHouse/pull/77343) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* Исправлено несколько ошибок `LOGICAL_ERROR` при задании алиасов для недопустимых узлов AST. [#77445](https://github.com/ClickHouse/ClickHouse/pull/77445) ([Raúl Marín](https://github.com/Algunenano)). -* В реализации кеша файловой системы исправлена обработка ошибок при записи сегмента файла. [#77471](https://github.com/ClickHouse/ClickHouse/pull/77471) ([Kseniia Sumarokova](https://github.com/kssenii)). -* DatabaseIceberg теперь использует правильный файл метаданных, предоставленный каталогом. Закрывает [#75187](https://github.com/ClickHouse/ClickHouse/issues/75187). [#77486](https://github.com/ClickHouse/ClickHouse/pull/77486) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Кэш запросов теперь исходит из того, что UDF являются недетерминированными. Соответственно, результаты запросов с UDF больше не кэшируются. Ранее пользователи могли определять недетерминированные UDF, результаты которых ошибочно кэшировались (issue [#77553](https://github.com/ClickHouse/ClickHouse/issues/77553)). [#77633](https://github.com/ClickHouse/ClickHouse/pull/77633) ([Jimmy Aguilar Mena](https://github.com/Ergus)). -* Исправлена проблема, из-за которой `system.filesystem_cache_log` работал только при включённой настройке `enable_filesystem_cache_log`. [#77650](https://github.com/ClickHouse/ClickHouse/pull/77650) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Исправлена логическая ошибка при вызове функции `defaultRoles` внутри проекции. Доработка по задаче [#76627](https://github.com/ClickHouse/ClickHouse/issues/76627). [#77667](https://github.com/ClickHouse/ClickHouse/pull/77667) ([pufit](https://github.com/pufit)). -* Вторые аргументы типа `Nullable` для функции `arrayResize` теперь не допускаются. Ранее при использовании `Nullable` в качестве второго аргумента могли возникать как ошибки, так и некорректные результаты. (issue [#48398](https://github.com/ClickHouse/ClickHouse/issues/48398)). [#77724](https://github.com/ClickHouse/ClickHouse/pull/77724) ([Manish Gill](https://github.com/mgill25)). -* Регулярно проверяйте, не были ли слияния и мутации отменены, даже если операция не создает блоки для записи. [#77766](https://github.com/ClickHouse/ClickHouse/pull/77766) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). - -#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement} - -* `clickhouse-odbc-bridge` и `clickhouse-library-bridge` перенесены в отдельный репозиторий: https://github.com/ClickHouse/odbc-bridge/. [#76225](https://github.com/ClickHouse/ClickHouse/pull/76225) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Исправлена кросс-компиляция Rust и добавлена возможность полностью отключать Rust. [#76921](https://github.com/ClickHouse/ClickHouse/pull/76921) ([Raúl Marín](https://github.com/Algunenano)). - -### Релиз ClickHouse 25.2, 2025-02-27 {#252} - -#### Обратимо несовместимые изменения {#backward-incompatible-change} - -* Полностью включён `async_load_databases` по умолчанию (даже для тех установок, где не обновлён `config.xml`). [#74772](https://github.com/ClickHouse/ClickHouse/pull/74772) ([Azat Khuzhin](https://github.com/azat)). -* Добавлены форматы `JSONCompactEachRowWithProgress` и `JSONCompactStringsEachRowWithProgress`. Продолжение [#69989](https://github.com/ClickHouse/ClickHouse/issues/69989). `JSONCompactWithNames` и `JSONCompactWithNamesAndTypes` больше не выводят "totals" — по‑видимому, это было ошибкой в реализации. [#75037](https://github.com/ClickHouse/ClickHouse/pull/75037) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Значение по умолчанию настройки `format_alter_operations_with_parentheses` изменено на true, чтобы устранить неоднозначность списка команд ALTER (см. https://github.com/ClickHouse/ClickHouse/pull/59532). Это нарушает репликацию с кластерами версий до 24.3. Если вы обновляете кластер, использующий более старые релизы, отключите эту настройку в конфигурации сервера или сначала обновитесь до 24.3. [#75302](https://github.com/ClickHouse/ClickHouse/pull/75302) ([Raúl Marín](https://github.com/Algunenano)). -* Удалена возможность фильтрации сообщений журнала с использованием регулярных выражений. Реализация приводила к гонке данных, поэтому её пришлось удалить. [#75577](https://github.com/ClickHouse/ClickHouse/pull/75577) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* Настройка `min_chunk_bytes_for_parallel_parsing` больше не может быть равна нулю. Это исправляет проблему: [#71110](https://github.com/ClickHouse/ClickHouse/issues/71110). [#75239](https://github.com/ClickHouse/ClickHouse/pull/75239) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* Добавлена проверка настроек в конфигурации кэша. Ранее несуществующие настройки игнорировались, теперь они будут приводить к ошибке и их следует удалить. [#75452](https://github.com/ClickHouse/ClickHouse/pull/75452) ([Kseniia Sumarokova](https://github.com/kssenii)). - -#### Новые возможности {#new-feature} - -* Поддержка типа `Nullable(JSON)`. [#73556](https://github.com/ClickHouse/ClickHouse/pull/73556) ([Pavel Kruglov](https://github.com/Avogar)). -* Поддержка подстолбцов (subcolumns) в выражениях DEFAULT и MATERIALIZED. [#74403](https://github.com/ClickHouse/ClickHouse/pull/74403) ([Pavel Kruglov](https://github.com/Avogar)). -* Поддержка записи bloom-фильтров Parquet с помощью настройки `output_format_parquet_write_bloom_filter` (включена по умолчанию). [#71681](https://github.com/ClickHouse/ClickHouse/pull/71681) ([Michael Kolupaev](https://github.com/al13n321)). -* В веб-интерфейсе появилась интерактивная навигация по базам данных. [#75777](https://github.com/ClickHouse/ClickHouse/pull/75777) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Разрешено комбинировать диски только для чтения и для чтения-записи в политике хранения (как несколько томов или несколько дисков). Это позволяет считывать данные со всего тома, в то время как вставка будет выполняться на доступный для записи диск (то есть политика хранения Copy-on-Write). [#75862](https://github.com/ClickHouse/ClickHouse/pull/75862) ([Azat Khuzhin](https://github.com/azat)). -* Добавлен новый движок базы данных `DatabaseBackup`, который позволяет мгновенно подключать таблицу/базу данных из резервной копии. [#75725](https://github.com/ClickHouse/ClickHouse/pull/75725) ([Maksim Kita](https://github.com/kitaisreal)). -* Добавлена поддержка подготовленных запросов (prepared statements) в протоколе обмена Postgres (Postgres wire protocol). [#75035](https://github.com/ClickHouse/ClickHouse/pull/75035) ([scanhex12](https://github.com/scanhex12)). -* Добавлена возможность ATTACH таблиц без уровня базы данных, что полезно для таблиц MergeTree, расположенных в Web, S3 и аналогичных внешних виртуальных файловых системах. [#75788](https://github.com/ClickHouse/ClickHouse/pull/75788) ([Azat Khuzhin](https://github.com/azat)). -* Добавлена новая функция сравнения строк `compareSubstrings` для сравнения частей двух строк. Пример: `SELECT compareSubstrings('Saxony', 'Anglo-Saxon', 0, 6, 5) AS result` означает «лексикографически сравнить 6 байт строк „Saxon“ и „Anglo-Saxon“, начиная со смещения 0 в первой строке и 5 во второй строке». [#74070](https://github.com/ClickHouse/ClickHouse/pull/74070) ([lgbo](https://github.com/lgbo-ustc)). -* Добавлена новая функция `initialQueryStartTime`. Она возвращает время начала текущего запроса. Значение одинаково на всех шардах при распределённом запросе. [#75087](https://github.com/ClickHouse/ClickHouse/pull/75087) ([Roman Lomonosov](https://github.com/lomik)). -* Добавлена поддержка SSL-аутентификации с именованными коллекциями для MySQL. Закрывает [#59111](https://github.com/ClickHouse/ClickHouse/issues/59111). [#59452](https://github.com/ClickHouse/ClickHouse/pull/59452) ([Nikolay Degterinsky](https://github.com/evillique)). - -#### Экспериментальные возможности {#experimental-features} - -* Добавлена новая настройка `enable_adaptive_memory_spill_scheduler`, которая позволяет нескольким операциям Grace JOIN в одном запросе отслеживать их совокупное потребление памяти и адаптивно инициировать сброс во внешнее хранилище для предотвращения MEMORY_LIMIT_EXCEEDED. [#72728](https://github.com/ClickHouse/ClickHouse/pull/72728) ([lgbo](https://github.com/lgbo-ustc)). -* Новый экспериментальный движок таблиц `Kafka` теперь в полной мере учитывает feature flags Keeper. [#76004](https://github.com/ClickHouse/ClickHouse/pull/76004) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* Восстановлен кодек (Intel) QPL, который был удалён в версии v24.10 из‑за лицензионных ограничений. [#76021](https://github.com/ClickHouse/ClickHouse/pull/76021) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Для интеграции с HDFS добавлена поддержка опции конфигурации `dfs.client.use.datanode.hostname`. [#74635](https://github.com/ClickHouse/ClickHouse/pull/74635) ([Mikhail Tiukavkin](https://github.com/freshertm)). - -#### Повышение производительности {#performance-improvement} - -* Улучшена производительность чтения всего JSON‑столбца в Wide‑частях из S3. Это сделано за счет добавления предварительной выборки (prefetch) для десериализации префиксов подстолбцов, кеширования десериализованных префиксов и параллельной десериализации префиксов подстолбцов. Это ускоряет чтение JSON‑столбца из S3 в 4 раза в запросах вида `SELECT data FROM table` и примерно в 10 раз в запросах вида `SELECT data FROM table LIMIT 10`. [#74827](https://github.com/ClickHouse/ClickHouse/pull/74827) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлен избыточный контеншн в `parallel_hash`, когда `max_rows_in_join = max_bytes_in_join = 0`. [#75155](https://github.com/ClickHouse/ClickHouse/pull/75155) ([Nikita Taranov](https://github.com/nickitat)). -* Исправлено двойное предварительное выделение памяти в `ConcurrentHashJoin` в случае, когда стороны соединения меняются местами оптимизатором. [#75149](https://github.com/ClickHouse/ClickHouse/pull/75149) ([Nikita Taranov](https://github.com/nickitat)). -* Небольшое улучшение в некоторых сценариях join: предварительный расчет числа выходных строк и резервирование памяти под них. [#75376](https://github.com/ClickHouse/ClickHouse/pull/75376) ([Alexander Gololobov](https://github.com/davenger)). -* Для запросов вида `WHERE a < b AND b < c AND c < 5` теперь можно выводить новые условия сравнения (`a < 5 AND b < 5`) для улучшения эффективности фильтрации. [#73164](https://github.com/ClickHouse/ClickHouse/pull/73164) ([Shichao Jin](https://github.com/jsc0218)). -* Улучшение в Keeper: отключено вычисление дайджеста при фиксации (commit) в in-memory хранилище для повышения производительности. Его можно включить с помощью настройки `keeper_server.digest_enabled_on_commit`. Дайджест по‑прежнему вычисляется при предварительной обработке запросов. [#75490](https://github.com/ClickHouse/ClickHouse/pull/75490) ([Antonio Andelic](https://github.com/antonio2368)). -* Оптимизация: по возможности проталкивать выражение фильтра из секции JOIN ON. [#75536](https://github.com/ClickHouse/ClickHouse/pull/75536) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Ленивый расчет размеров столбцов и индексов в MergeTree. [#75938](https://github.com/ClickHouse/ClickHouse/pull/75938) ([Pavel Kruglov](https://github.com/Avogar)). -* Настройка `ttl_only_drop_parts` снова учитывается для `MATERIALIZE TTL`; считываются только необходимые столбцы для перерасчета TTL, а части удаляются путем замены их на пустые. [#72751](https://github.com/ClickHouse/ClickHouse/pull/72751) ([Andrey Zvonov](https://github.com/zvonand)). -* Уменьшен размер буфера записи для файлов метаданных plain_rewritable. [#75758](https://github.com/ClickHouse/ClickHouse/pull/75758) ([Julia Kartseva](https://github.com/jkartseva)). -* Снижено потребление памяти некоторыми оконными функциями. [#65647](https://github.com/ClickHouse/ClickHouse/pull/65647) ([lgbo](https://github.com/lgbo-ustc)). -* Оценка parquet bloom‑фильтров и min/max‑индексов выполняется совместно. Это необходимо для корректной поддержки запросов вида `x = 3 or x > 5`, где data = [1, 2, 4, 5]. [#71383](https://github.com/ClickHouse/ClickHouse/pull/71383) ([Arthur Passos](https://github.com/arthurpassos)). -* Запросы, передаваемые в хранилище `Executable`, больше не ограничены однопоточным выполнением. [#70084](https://github.com/ClickHouse/ClickHouse/pull/70084) ([yawnt](https://github.com/yawnt)). -* Части в ALTER TABLE FETCH PARTITION загружаются параллельно (размер пула потоков задается настройкой `max_fetch_partition_thread_pool_size`). [#74978](https://github.com/ClickHouse/ClickHouse/pull/74978) ([Azat Khuzhin](https://github.com/azat)). -* Теперь можно перемещать предикаты с функцией `indexHint` в `PREWHERE`. [#74987](https://github.com/ClickHouse/ClickHouse/pull/74987) ([Anton Popov](https://github.com/CurtizJ)). - -#### Улучшения {#improvement} - -* Исправлен расчет размера в памяти для столбцов `LowCardinality`. [#74688](https://github.com/ClickHouse/ClickHouse/pull/74688) ([Nikita Taranov](https://github.com/nickitat)). -* Таблица `processors_profile_log` теперь имеет конфигурацию по умолчанию с TTL в 30 дней. [#66139](https://github.com/ClickHouse/ClickHouse/pull/66139) ([Ilya Yatsishin](https://github.com/qoega)). -* Добавлена возможность задавать имена шардов в конфигурации кластера. [#72276](https://github.com/ClickHouse/ClickHouse/pull/72276) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). -* Изменён статус успешного ответа для Prometheus remote write с 200 OK на 204 No Content. [#74170](https://github.com/ClickHouse/ClickHouse/pull/74170) ([Michael Dempsey](https://github.com/bluestealth)). -* Добавлена возможность изменять значения `max_remote_read_network_bandwidth_for_serve` и `max_remote_write_network_bandwidth_for_server` на лету, без перезапуска сервера. [#74206](https://github.com/ClickHouse/ClickHouse/pull/74206) ([Kai Zhu](https://github.com/nauu)). -* Добавлена возможность использовать пути к BLOB-объектам для вычисления контрольных сумм при создании резервной копии. [#74729](https://github.com/ClickHouse/ClickHouse/pull/74729) ([Vitaly Baranov](https://github.com/vitlibar)). -* В таблицу `system.query_cache` добавлен столбец ID запроса (закрывает [#68205](https://github.com/ClickHouse/ClickHouse/issues/68205)). [#74982](https://github.com/ClickHouse/ClickHouse/pull/74982) ([NamHoaiNguyen](https://github.com/NamHoaiNguyen)). -* Теперь можно отменять запросы `ALTER TABLE ... FREEZE ...` с помощью `KILL QUERY`, а также автоматически по тайм-ауту (`max_execution_time`). [#75016](https://github.com/ClickHouse/ClickHouse/pull/75016) ([Kirill](https://github.com/kirillgarbar)). -* Добавлена поддержка `groupUniqArrayArrayMap` в качестве `SimpleAggregateFunction`. [#75034](https://github.com/ClickHouse/ClickHouse/pull/75034) ([Miel Donkers](https://github.com/mdonkers)). -* Скрыты параметры учетных данных каталога в движке базы данных `Iceberg`. Закрывает [#74559](https://github.com/ClickHouse/ClickHouse/issues/74559). [#75080](https://github.com/ClickHouse/ClickHouse/pull/75080) ([Kseniia Sumarokova](https://github.com/kssenii)). -* `intExp2` / `intExp10`: Определено поведение для ранее неопределённых случаев: возвращать 0 для слишком малого аргумента, `18446744073709551615` для слишком большого аргумента, выбрасывать исключение при значении `nan`. [#75312](https://github.com/ClickHouse/ClickHouse/pull/75312) ([Vitaly Baranov](https://github.com/vitlibar)). -* Добавлена прямая поддержка `s3.endpoint` из конфигурации каталога в `DatabaseIceberg`. Закрывает [#74558](https://github.com/ClickHouse/ClickHouse/issues/74558). [#75375](https://github.com/ClickHouse/ClickHouse/pull/75375) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Не завершать выполнение без сообщения об ошибке, если у пользователя, выполняющего `SYSTEM DROP REPLICA`, недостаточно прав. [#75377](https://github.com/ClickHouse/ClickHouse/pull/75377) ([Bharat Nallan](https://github.com/bharatnc)). -* Добавлен ProfileEvent, фиксирующий количество неудачных попыток сброса любого из системных логов. [#75466](https://github.com/ClickHouse/ClickHouse/pull/75466) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Добавлена проверка и дополнительное логирование при расшифровке и декомпрессии. [#75471](https://github.com/ClickHouse/ClickHouse/pull/75471) ([Vitaly Baranov](https://github.com/vitlibar)). -* Добавлена поддержка символа «micro» (U+00B5) в функции `parseTimeDelta`. Теперь и символ «micro» (U+00B5), и греческая буква «mu» (U+03BC) распознаются как корректные обозначения микросекунд, что приводит поведение ClickHouse в соответствие с реализацией Go ([см. time.go](https://github.com/golang/go/blob/ad7b46ee4ac1cee5095d64b01e8cf7fcda8bee5e/src/time/time.go#L983C19-L983C20) и [time/format.go](https://github.com/golang/go/blob/ad7b46ee4ac1cee5095d64b01e8cf7fcda8bee5e/src/time/format.go#L1608-L1609)). [#75472](https://github.com/ClickHouse/ClickHouse/pull/75472) ([Vitaly Orlov](https://github.com/orloffv)). -* Заменена серверная настройка (`send_settings_to_client`) на клиентскую (`apply_settings_from_server`), которая определяет, нужно ли коду на стороне клиента (например, при разборе данных INSERT и форматировании вывода запроса) использовать настройки из серверного `users.xml` и пользовательского профиля. В противном случае используются только настройки, заданные через командную строку клиента, сессию и сам запрос. Обратите внимание, что это относится только к нативному клиенту (а не, например, к HTTP) и не применяется к большей части обработки запросов (которая выполняется на сервере). [#75478](https://github.com/ClickHouse/ClickHouse/pull/75478) ([Michael Kolupaev](https://github.com/al13n321)). -* Улучшены сообщения об ошибках синтаксиса. Ранее, если запрос был слишком большим, а токен, длина которого превышала предел, представлял собой очень длинный строковый литерал, сообщение о причине терялось где‑то посередине между двумя примерами этого очень длинного токена. Исправлена проблема, из‑за которой запрос с UTF-8 некорректно обрезался в сообщении об ошибке. Исправлено избыточное взятие фрагментов запроса в кавычки. Закрывает [#75473](https://github.com/ClickHouse/ClickHouse/issues/75473). [#75561](https://github.com/ClickHouse/ClickHouse/pull/75561) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Добавлены события профилирования в хранилище `S3(Azure)Queue`. [#75618](https://github.com/ClickHouse/ClickHouse/pull/75618) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Отключена отправка настроек с сервера на клиент (`send_settings_to_client=false`) для обеспечения совместимости (позднее эта функция будет реализована заново как клиентская настройка, чтобы повысить удобство использования). [#75648](https://github.com/ClickHouse/ClickHouse/pull/75648) ([Michael Kolupaev](https://github.com/al13n321)). -* Добавлена настройка `memory_worker_correct_memory_tracker`, которая включает исправление внутреннего счётчика памяти на основе информации из различных источников, периодически считываемой фоновым потоком. [#75714](https://github.com/ClickHouse/ClickHouse/pull/75714) ([Antonio Andelic](https://github.com/antonio2368)). -* Добавлен столбец `normalized_query_hash` в `system.processes`. Примечание: хотя его можно легко вычислить на лету с помощью функции `normalizedQueryHash`, это необходимо для подготовки к последующим изменениям. [#75756](https://github.com/ClickHouse/ClickHouse/pull/75756) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Запрос к `system.tables` не будет приводить к ошибке, даже если существует таблица `Merge`, созданная поверх уже не существующей базы данных. Из таблиц `Hive` удалён метод `getTotalRows`, поскольку мы не допускаем выполнения ими сложных операций. [#75772](https://github.com/ClickHouse/ClickHouse/pull/75772) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Хранить start_time/end_time резервных копий с точностью до микросекунд. [#75929](https://github.com/ClickHouse/ClickHouse/pull/75929) ([Aleksandr Musorin](https://github.com/AVMusorin)). -* Добавлена метрика `MemoryTrackingUncorrected`, показывающая значение внутреннего глобального трекера памяти, не скорректированное по RSS. [#75935](https://github.com/ClickHouse/ClickHouse/pull/75935) ([Antonio Andelic](https://github.com/antonio2368)). -* Разрешить разбор адресов конечных точек вида `localhost:1234/handle` в табличных функциях `PostgreSQL` или `MySQL`. Это исправляет регрессию, внесённую в [https://github.com/ClickHouse/ClickHouse/pull/52503](https://github.com/ClickHouse/ClickHouse/pull/52503). [#75944](https://github.com/ClickHouse/ClickHouse/pull/75944) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* Добавлена серверная настройка `throw_on_unknown_workload`, которая позволяет выбрать поведение при выполнении запроса с параметром `workload` с неизвестным значением: либо разрешать неограниченный доступ (по умолчанию), либо выбрасывать ошибку `RESOURCE_ACCESS_DENIED`. Это полезно для принудительного использования планирования рабочих нагрузок всеми запросами. [#75999](https://github.com/ClickHouse/ClickHouse/pull/75999) ([Sergei Trifonov](https://github.com/serxa)). -* Не переписывать подколонки в вызовы `getSubcolumn` в `ARRAY JOIN`, если в этом нет необходимости. [#76018](https://github.com/ClickHouse/ClickHouse/pull/76018) ([Pavel Kruglov](https://github.com/Avogar)). -* Повторять операции при ошибках координации при загрузке таблиц. [#76020](https://github.com/ClickHouse/ClickHouse/pull/76020) ([Alexander Tokmakov](https://github.com/tavplubix)). -* Добавлена поддержка сброса отдельных логов с помощью команды `SYSTEM FLUSH LOGS`. [#76132](https://github.com/ClickHouse/ClickHouse/pull/76132) ([Raúl Marín](https://github.com/Algunenano)). -* Улучшена страница сервера `/binary`. Используется кривая Гильберта вместо кривой Мортона. В квадрате отображаются адреса объёмом до 512 МБ, что лучше заполняет квадрат (в предыдущих версиях адреса заполняли только половину квадрата). Адреса раскрашиваются в зависимости от имени библиотеки, а не имени функции. Разрешена прокрутка немного дальше за пределы области. [#76192](https://github.com/ClickHouse/ClickHouse/pull/76192) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Повтор выполнения запросов ON CLUSTER при ошибке TOO_MANY_SIMULTANEOUS_QUERIES. [#76352](https://github.com/ClickHouse/ClickHouse/pull/76352) ([Patrick Galbraith](https://github.com/CaptTofu)). -* Добавлена асинхронная метрика `CPUOverload`, которая вычисляет относительный дефицит CPU-ресурсов сервера. [#76404](https://github.com/ClickHouse/ClickHouse/pull/76404) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Изменено значение по умолчанию для `output_format_pretty_max_rows` с 10 000 на 1 000. Считаю, что так удобнее. [#76407](https://github.com/ClickHouse/ClickHouse/pull/76407) ([Alexey Milovidov](https://github.com/alexey-milovidov)). - -#### Исправление ошибки (некорректное поведение, заметное пользователям, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* Исправлено форматирование исключений — теперь используется пользовательский формат, если они возникают во время интерпретации запроса. В предыдущих версиях исключения форматировались в формате по умолчанию, а не в формате, указанном в запросе. Исправлена ошибка [#55422](https://github.com/ClickHouse/ClickHouse/issues/55422). [#74994](https://github.com/ClickHouse/ClickHouse/pull/74994) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Исправлено сопоставление типов данных для SQLite (целочисленных типов в `int64`, типов с плавающей запятой в `float64`). [#73853](https://github.com/ClickHouse/ClickHouse/pull/73853) ([Joanna Hulboj](https://github.com/jh0x)). -* Исправлено разрешение идентификаторов из родительских областей видимости. Разрешено использование псевдонимов для выражений в предложении WITH. Исправляет [#58994](https://github.com/ClickHouse/ClickHouse/issues/58994). Исправляет [#62946](https://github.com/ClickHouse/ClickHouse/issues/62946). Исправляет [#63239](https://github.com/ClickHouse/ClickHouse/issues/63239). Исправляет [#65233](https://github.com/ClickHouse/ClickHouse/issues/65233). Исправляет [#71659](https://github.com/ClickHouse/ClickHouse/issues/71659). Исправляет [#71828](https://github.com/ClickHouse/ClickHouse/issues/71828). Исправляет [#68749](https://github.com/ClickHouse/ClickHouse/issues/68749). [#66143](https://github.com/ClickHouse/ClickHouse/pull/66143) ([Dmitry Novik](https://github.com/novikd)). -* Исправлена монотонность функции negate. В предыдущих версиях запрос `select * from a where -x = -42;`, где `x` является первичным ключом, мог возвращать неверный результат. [#71440](https://github.com/ClickHouse/ClickHouse/pull/71440) ([Michael Kolupaev](https://github.com/al13n321)). -* Исправлена обработка пустых кортежей в arrayIntersect, что исправляет [#72578](https://github.com/ClickHouse/ClickHouse/issues/72578). [#72581](https://github.com/ClickHouse/ClickHouse/pull/72581) ([Amos Bird](https://github.com/amosbird)). -* Исправлено чтение субстолбцов вложенных объектов JSON с некорректным префиксом. [#73182](https://github.com/ClickHouse/ClickHouse/pull/73182) ([Pavel Kruglov](https://github.com/Avogar)). -* Обеспечена корректная передача настроек формата Native при клиент-серверном взаимодействии. [#73924](https://github.com/ClickHouse/ClickHouse/pull/73924) ([Pavel Kruglov](https://github.com/Avogar)). -* Добавлена проверка неподдерживаемых типов для некоторых хранилищ. [#74218](https://github.com/ClickHouse/ClickHouse/pull/74218) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлен сбой при выполнении запроса `INSERT INTO SELECT` при использовании интерфейса PostgreSQL на macOS (issue [#72938](https://github.com/ClickHouse/ClickHouse/issues/72938)). [#74231](https://github.com/ClickHouse/ClickHouse/pull/74231) ([Artem Yurov](https://github.com/ArtemYurov)). -* Исправлена проблема с неинициализированной max_log_ptr в реплицируемой базе данных. [#74336](https://github.com/ClickHouse/ClickHouse/pull/74336) ([Konstantin Morozov](https://github.com/k-morozov)). -* Исправлен сбой при вставке `interval` (issue [#74299](https://github.com/ClickHouse/ClickHouse/issues/74299)). [#74478](https://github.com/ClickHouse/ClickHouse/pull/74478) ([NamHoaiNguyen](https://github.com/NamHoaiNguyen)). -* Исправлено форматирование констант JSON-литералов. Ранее это могло приводить к синтаксическим ошибкам при отправке запроса на другой сервер. [#74533](https://github.com/ClickHouse/ClickHouse/pull/74533) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлен некорректный запрос `CREATE` при использовании константных выражений секции (PARTITION) с включёнными неявными проекциями. Это исправляет [#74596](https://github.com/ClickHouse/ClickHouse/issues/74596). [#74634](https://github.com/ClickHouse/ClickHouse/pull/74634) ([Amos Bird](https://github.com/amosbird)). -* Не допускать, чтобы соединение оставалось в некорректном состоянии после завершения операции INSERT с исключением. [#74740](https://github.com/ClickHouse/ClickHouse/pull/74740) ([Azat Khузhin](https://github.com/azat)). -* Избегайте повторного использования соединений, оставленных в промежуточном состоянии. [#74749](https://github.com/ClickHouse/ClickHouse/pull/74749) ([Azat Khuzhin](https://github.com/azat)). -* Исправлено падение при разборе объявления типа JSON, если имя типа указано не в верхнем регистре. [#74784](https://github.com/ClickHouse/ClickHouse/pull/74784) ([Pavel Kruglov](https://github.com/Avogar)). -* Keeper: исправлена ошибка logical_error, возникавшая, если соединение разрывалось до его установления. [#74844](https://github.com/ClickHouse/ClickHouse/pull/74844) ([Michael Kolupaev](https://github.com/al13n321)). -* Исправлена ошибка, из-за которой сервер не мог запуститься, если существовала таблица, использующая `AzureBlobStorage`. Таблицы теперь загружаются без каких-либо запросов к Azure. [#74880](https://github.com/ClickHouse/ClickHouse/pull/74880) ([Alexey Katsman](https://github.com/alexkats)). -* Исправлены отсутствующие поля `used_privileges` и `missing_privileges` в `query_log` для операций BACKUP и RESTORE. [#74887](https://github.com/ClickHouse/ClickHouse/pull/74887) ([Alexey Katsman](https://github.com/alexkats)). -* В HDFS обновлять krb ticket при ошибке SASL во время запроса HDFS SELECT. [#74930](https://github.com/ClickHouse/ClickHouse/pull/74930) ([inv2004](https://github.com/inv2004)). -* Исправлены запросы к базе данных Replicated в startup_scripts. [#74942](https://github.com/ClickHouse/ClickHouse/pull/74942) ([Azat Khuzhin](https://github.com/azat)). -* Исправлены проблемы с выражениями, использующими псевдонимы типов, в условии JOIN ON при использовании null-safe-сравнения. [#74970](https://github.com/ClickHouse/ClickHouse/pull/74970) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Возвращает состояние части из «удаляемая» обратно в «устаревшая», если операция удаления завершилась неудачей. [#74985](https://github.com/ClickHouse/ClickHouse/pull/74985) ([Sema Checherinda](https://github.com/CheSema)). -* В предыдущих версиях, когда использовался скалярный подзапрос, мы начинали записывать прогресс выполнения (накопленный при обработке подзапроса) уже на этапе инициализации формата данных, то есть до отправки HTTP-заголовков. Это приводило к потере HTTP-заголовков, таких как X-ClickHouse-QueryId и X-ClickHouse-Format, а также заголовка Content-Type. [#74991](https://github.com/ClickHouse/ClickHouse/pull/74991) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Исправлены запросы вида `CREATE TABLE AS...` для `database_replicated_allow_replicated_engine_arguments=0`. [#75000](https://github.com/ClickHouse/ClickHouse/pull/75000) ([Bharat Nallan](https://github.com/bharatnc)). -* Исправлена проблема, из-за которой после исключений при выполнении INSERT-запросов соединение клиента оставалось в некорректном состоянии. [#75030](https://github.com/ClickHouse/ClickHouse/pull/75030) ([Azat Khuzhin](https://github.com/azat)). -* Исправлена аварийная остановка из-за неперехваченного исключения при репликации PSQL. [#75062](https://github.com/ClickHouse/ClickHouse/pull/75062) ([Azat Khuzhin](https://github.com/azat)). -* SASL может приводить к сбою любого RPC-вызова; исправление позволяет повторить вызов в случае, если срок действия krb5-ticket истёк. [#75063](https://github.com/ClickHouse/ClickHouse/pull/75063) ([inv2004](https://github.com/inv2004)). -* Исправлено использование индексов (первичных и вторичных) для столбцов `Array`, `Map` и `Nullable(..)` при включённой настройке `optimize_function_to_subcolumns`. Ранее индексы для этих столбцов могли быть проигнорированы. [#75081](https://github.com/ClickHouse/ClickHouse/pull/75081) ([Anton Popov](https://github.com/CurtizJ)). -* Отключайте `flatten_nested` при создании материализованных представлений на внутренних таблицах, поскольку такие развёрнутые столбцы затем нельзя будет использовать. [#75085](https://github.com/ClickHouse/ClickHouse/pull/75085) ([Christoph Wurm](https://github.com/cwurm)). -* Исправлена ошибка, из-за которой некоторые IPv6-адреса (например, ::ffff:1.1.1.1) в поле forwarded_for неверно интерпретировались, что приводило к разрыву соединения с клиентом с выбросом исключения. [#75133](https://github.com/ClickHouse/ClickHouse/pull/75133) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* Исправлена обработка null-safe JOIN для допускающего значения NULL типа данных LowCardinality. Ранее JOIN ON с null-safe сравнением, таким как `IS NOT DISTINCT FROM`, `<=>`, `a IS NULL AND b IS NULL OR a == b`, работал некорректно с колонками LowCardinality. [#75143](https://github.com/ClickHouse/ClickHouse/pull/75143) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Проверяет, что при подсчёте total_number_of_rows для NumRowsCache не задаётся key_condition. [#75164](https://github.com/ClickHouse/ClickHouse/pull/75164) ([Daniil Ivanik](https://github.com/divanik)). -* Исправлена обработка запросов с неиспользуемой интерполяцией с помощью нового анализатора. [#75173](https://github.com/ClickHouse/ClickHouse/pull/75173) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* Исправлена ошибка, приводившая к сбою при использовании CTE с Insert. [#75188](https://github.com/ClickHouse/ClickHouse/pull/75188) ([Shichao Jin](https://github.com/jsc0218)). -* Исправление Keeper: предотвращена запись в повреждённые журналы изменений при откате логов. [#75197](https://github.com/ClickHouse/ClickHouse/pull/75197) ([Antonio Andelic](https://github.com/antonio2368)). -* Использовать `BFloat16` в качестве супертипа там, где это уместно. Исправляет проблему: [#74404](https://github.com/ClickHouse/ClickHouse/issues/74404). [#75236](https://github.com/ClickHouse/ClickHouse/pull/75236) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* Исправлены неожиданные значения по умолчанию в результате JOIN при использовании `any_join_distinct_right_table_keys` и оператора OR в условии JOIN ON. [#75262](https://github.com/ClickHouse/ClickHouse/pull/75262) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Маскирование учетных данных движка таблиц azureblobstorage. [#75319](https://github.com/ClickHouse/ClickHouse/pull/75319) ([Garrett Thomas](https://github.com/garrettthomaskth)). -* Исправлено поведение, при котором ClickHouse мог ошибочно выполнять проталкивание фильтра (filter pushdown) во внешнюю СУБД, такую как PostgreSQL, MySQL или SQLite. Это исправление закрывает: [#71423](https://github.com/ClickHouse/ClickHouse/issues/71423). [#75320](https://github.com/ClickHouse/ClickHouse/pull/75320) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* Исправлен сбой в кэше схем Protobuf, который мог происходить во время вывода в формате Protobuf при параллельном выполнении запроса `SYSTEM DROP FORMAT SCHEMA CACHE`. [#75357](https://github.com/ClickHouse/ClickHouse/pull/75357) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена возможная логическая ошибка или обращение к неинициализированной памяти при проталкивании фильтра из `HAVING` при использовании параллельных реплик. [#75363](https://github.com/ClickHouse/ClickHouse/pull/75363) ([Vladimir Cherkasov](https://github.com/vdimir)). -* Скрыта конфиденциальная информация в табличных функциях и движках таблиц `icebergS3` и `icebergAzure`. [#75378](https://github.com/ClickHouse/ClickHouse/pull/75378) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Функция `TRIM` с вычисляемым пустым набором символов для обрезки теперь обрабатывается корректно. Пример: `SELECT TRIM(LEADING concat('') FROM 'foo')` (Issue [#69922](https://github.com/ClickHouse/ClickHouse/issues/69922)). [#75399](https://github.com/ClickHouse/ClickHouse/pull/75399) ([Manish Gill](https://github.com/mgill25)). -* Исправлена гонка данных в IOutputFormat. [#75448](https://github.com/ClickHouse/ClickHouse/pull/75448) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена возможная ошибка `Elements ... and ... of Nested data structure ... (Array columns) have different array sizes` при использовании JSON-подстолбцов типа Array в операциях JOIN с распределёнными таблицами. [#75512](https://github.com/ClickHouse/ClickHouse/pull/75512) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена порча данных при использовании `CODEC(ZSTD, DoubleDelta)`. Закрывает [#70031](https://github.com/ClickHouse/ClickHouse/issues/70031). [#75548](https://github.com/ClickHouse/ClickHouse/pull/75548) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Исправлено взаимодействие между allow_feature_tier и настройкой MergeTree compatibility. [#75635](https://github.com/ClickHouse/ClickHouse/pull/75635) ([Raúl Marín](https://github.com/Algunenano)). -* Исправлено неверное значение processed_rows в system.s3queue_log в случае повторной обработки файла. [#75666](https://github.com/ClickHouse/ClickHouse/pull/75666) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Учитывать `materialized_views_ignore_errors` при записи материализованного представления в движок URL при возникновении проблем с подключением. [#75679](https://github.com/ClickHouse/ClickHouse/pull/75679) ([Christoph Wurm](https://github.com/cwurm)). -* Исправлены редкие сбои при чтении из таблицы `MergeTree` после нескольких асинхронных запросов `RENAME` (с `alter_sync = 0`) между столбцами разных типов. [#75693](https://github.com/ClickHouse/ClickHouse/pull/75693) ([Anton Popov](https://github.com/CurtizJ)). -* Исправлена ошибка `Block structure mismatch in QueryPipeline stream`, возникавшая при некоторых запросах с `UNION ALL`. [#75715](https://github.com/ClickHouse/ClickHouse/pull/75715) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Теперь проекция перестраивается при `ALTER MODIFY` столбца её первичного ключа. Ранее это могло приводить к ошибкам `CANNOT_READ_ALL_DATA` при выполнении `SELECT` после `ALTER MODIFY` столбца, используемого в первичном ключе проекции. [#75720](https://github.com/ClickHouse/ClickHouse/pull/75720) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлен некорректный результат `ARRAY JOIN` для скалярных подзапросов (с анализатором). [#75732](https://github.com/ClickHouse/ClickHouse/pull/75732) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Исправлена ошибка разыменования нулевого указателя в `DistinctSortedStreamTransform`. [#75734](https://github.com/ClickHouse/ClickHouse/pull/75734) ([Nikita Taranov](https://github.com/nickitat)). -* Исправлено поведение `allow_suspicious_ttl_expressions`. [#75771](https://github.com/ClickHouse/ClickHouse/pull/75771) ([Aleksei Filatov](https://github.com/aalexfvk)). -* Исправлено чтение из неинициализированной памяти в функции `translate`. Это закрывает [#75592](https://github.com/ClickHouse/ClickHouse/issues/75592). [#75794](https://github.com/ClickHouse/ClickHouse/pull/75794) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Распространять настройки формата на JSON как строковое форматирование в формате Native. [#75832](https://github.com/ClickHouse/ClickHouse/pull/75832) ([Pavel Kruglov](https://github.com/Avogar)). -* Зафиксировано включение по умолчанию параллельного hash в качестве алгоритма соединения (JOIN) в версии v24.12 в истории изменений настроек. Это означает, что ClickHouse продолжит выполнять соединение с использованием непараллельного hash, если настроен уровень совместимости ниже v24.12. [#75870](https://github.com/ClickHouse/ClickHouse/pull/75870) ([Robert Schulze](https://github.com/rschu1ze)). -* Исправлена ошибка, из-за которой таблицы с неявно добавленными индексами min-max нельзя было скопировать в новую таблицу (issue [#75677](https://github.com/ClickHouse/ClickHouse/issues/75677)). [#75877](https://github.com/ClickHouse/ClickHouse/pull/75877) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). -* `clickhouse-library-bridge` позволяет загружать любые библиотеки из файловой системы, поэтому его безопасно запускать только в изолированной среде. Чтобы предотвратить уязвимость при запуске на одном хосте с clickhouse-server, мы ограничим допустимые пути к библиотекам каталогом, указанным в конфигурации. Эта уязвимость была обнаружена в рамках [ClickHouse Bug Bounty Program](https://github.com/ClickHouse/ClickHouse/issues/38986) **Арсением Дугиным**. [#75954](https://github.com/ClickHouse/ClickHouse/pull/75954) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Мы использовали JSON-сериализацию для части метаданных, что было ошибкой, потому что JSON не поддерживает двоичные данные внутри строковых литералов, включая нулевые байты. SQL-запросы могут содержать двоичные данные и некорректный UTF-8, поэтому мы должны поддерживать это и в наших файлах с метаданными. При этом форматы ClickHouse `JSONEachRow` и подобные обходят это ограничение, отходя от стандарта JSON в пользу идеального обратимого преобразования для двоичных данных. Обоснование см. здесь: [https://github.com/ClickHouse/ClickHouse/pull/73668#issuecomment-2560501790](https://github.com/ClickHouse/ClickHouse/pull/73668#issuecomment-2560501790). Решение состоит в том, чтобы привести библиотеку `Poco::JSON` в соответствие с реализацией сериализации формата JSON в ClickHouse. Это закрывает [#73668](https://github.com/ClickHouse/ClickHouse/issues/73668). [#75963](https://github.com/ClickHouse/ClickHouse/pull/75963) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Исправлена проверка ограничений на коммиты в хранилище `S3Queue`. [#76104](https://github.com/ClickHouse/ClickHouse/pull/76104) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Исправлено присоединение таблиц MergeTree с автоматическими индексами (`add_minmax_index_for_numeric_columns`/`add_minmax_index_for_string_columns`). [#76139](https://github.com/ClickHouse/ClickHouse/pull/76139) ([Azat Khuzhin](https://github.com/azat)). -* Исправлена проблема, из‑за которой стек‑трейсы родительских потоков задания (настройка `enable_job_stack_trace`) не выводились. Также исправлена проблема, при которой значение настройки `enable_job_stack_trace` некорректно распространялось на потоки, из‑за чего содержимое стек‑трейсов не всегда учитывало эту настройку. [#76191](https://github.com/ClickHouse/ClickHouse/pull/76191) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* Исправлена ошибка в проверке прав, при которой для `ALTER RENAME` требовался грант `CREATE USER`. Закрывает [#74372](https://github.com/ClickHouse/ClickHouse/issues/74372). [#76241](https://github.com/ClickHouse/ClickHouse/pull/76241) ([pufit](https://github.com/pufit)). -* Исправлена работа функции reinterpretAs с типом FixedString на архитектуре big-endian. [#76253](https://github.com/ClickHouse/ClickHouse/pull/76253) ([Azat Khuzhin](https://github.com/azat)). -* Исправлена логическая ошибка в S3Queue: «Expected current processor {} to be equal to {} for bucket {}». [#76358](https://github.com/ClickHouse/ClickHouse/pull/76358) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Устранена взаимная блокировка при выполнении `ALTER` в базе данных `Memory`. [#76359](https://github.com/ClickHouse/ClickHouse/pull/76359) ([Azat Khuzhin](https://github.com/azat)). -* Исправлена логическая ошибка в анализе индекса, если в условии `WHERE` используется функция `pointInPolygon`. [#76360](https://github.com/ClickHouse/ClickHouse/pull/76360) ([Anton Popov](https://github.com/CurtizJ)). -* Исправлен потенциально небезопасный вызов в обработчике сигнала. [#76549](https://github.com/ClickHouse/ClickHouse/pull/76549) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* Исправлена поддержка обратных ключей в PartsSplitter. Устраняет проблему [#73400](https://github.com/ClickHouse/ClickHouse/issues/73400). [#73418](https://github.com/ClickHouse/ClickHouse/pull/73418) ([Amos Bird](https://github.com/amosbird)). - -#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement} - -* Добавлена поддержка сборки HDFS как на Mac с ARM, так и на Mac с Intel. [#74244](https://github.com/ClickHouse/ClickHouse/pull/74244) ([Yan Xin](https://github.com/yxheartipp)). -* Включены ICU и GRPC при кросс-компиляции под Darwin. [#75922](https://github.com/ClickHouse/ClickHouse/pull/75922) ([Raúl Marín](https://github.com/Algunenano)). -* Обновлено встроенное LLVM до версии 19. [#75148](https://github.com/ClickHouse/ClickHouse/pull/75148) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Отключён сетевой доступ для пользователя `default` в образе Docker. [#75259](https://github.com/ClickHouse/ClickHouse/pull/75259) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). Все действия, связанные с clickhouse-server, оформлены в виде функции и выполняются только при запуске основного бинарника в `entrypoint.sh`. Давно откладываемое улучшение было предложено в [#50724](https://github.com/ClickHouse/ClickHouse/issues/50724). В `clickhouse-extract-from-config` добавлен флаг `--users` для получения значений из `users.xml`. [#75643](https://github.com/ClickHouse/ClickHouse/pull/75643) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). -* Удалено около 20 МБ мёртвого кода из бинарника. [#76226](https://github.com/ClickHouse/ClickHouse/pull/76226) ([Alexey Milovidov](https://github.com/alexey-milovidov)). - -### Релиз ClickHouse 25.1, 2025-01-28 {#251} - -#### Обратные несовместимые изменения {#backward-incompatible-change} - -* `JSONEachRowWithProgress` теперь будет выводить прогресс каждый раз, когда он обновляется. В предыдущих версиях прогресс показывался только после каждого блока результата, что делало его практически бесполезным. Изменён способ отображения прогресса: нулевые значения показываться не будут. Это закрывает [#70800](https://github.com/ClickHouse/ClickHouse/issues/70800). [#73834](https://github.com/ClickHouse/ClickHouse/pull/73834) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Таблицы `Merge` теперь унифицируют структуру базовых таблиц, используя объединение их столбцов и выводя общие типы. Это закрывает [#64864](https://github.com/ClickHouse/ClickHouse/issues/64864). В некоторых случаях это изменение может быть несовместимо с предыдущими версиями. Один из примеров — когда между таблицами нет общего типа, но преобразование к типу первой таблицы всё ещё возможно, как в случае `UInt64` и `Int64` или любого числового типа и `String`. Если вы хотите вернуться к старому поведению, установите `merge_table_max_tables_to_look_for_schema_inference` в `1` или установите `compatibility` на `24.12` или более раннюю версию. [#73956](https://github.com/ClickHouse/ClickHouse/pull/73956) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Формат вывода Parquet конвертирует столбцы `Date` и `DateTime` в типы даты/времени, поддерживаемые Parquet, вместо записи их как сырых чисел. `DateTime` становится `DateTime64(3)` (ранее: `UInt32`); установка `output_format_parquet_datetime_as_uint32` возвращает старое поведение. `Date` становится `Date32` (ранее: `UInt16`). [#70950](https://github.com/ClickHouse/ClickHouse/pull/70950) ([Michael Kolupaev](https://github.com/al13n321)). -* По умолчанию не допускаются несравнимые типы (такие как `JSON`/`Object`/`AggregateFunction`) в `ORDER BY` и в функциях сравнения `less/greater/equal/etc`. [#73276](https://github.com/ClickHouse/ClickHouse/pull/73276) ([Pavel Kruglov](https://github.com/Avogar)). -* Устаревший движок базы данных `MaterializedMySQL` удалён и больше недоступен. [#73879](https://github.com/ClickHouse/ClickHouse/pull/73879) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Источник словаря `mysql` больше не выполняет запрос `SHOW TABLE STATUS`, потому что он не даёт полезной информации ни для таблиц InnoDB, ни для каких-либо современных версий MySQL. Это закрывает [#72636](https://github.com/ClickHouse/ClickHouse/issues/72636). Это изменение обратно совместимо, но помещено в эту категорию, чтобы у вас была возможность его заметить. [#73914](https://github.com/ClickHouse/ClickHouse/pull/73914) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Запросы `CHECK TABLE` теперь требуют отдельной привилегии `CHECK`. В предыдущих версиях для запуска этих запросов было достаточно привилегии `SHOW TABLES`. Но запрос `CHECK TABLE` может быть ресурсоёмким, и обычные ограничения сложности запросов для запросов `SELECT` к нему не применяются. Это приводило к потенциальной возможности проведения DoS-атаки. [#74471](https://github.com/ClickHouse/ClickHouse/pull/74471) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Функция `h3ToGeo()` теперь возвращает результат в порядке `(lat, lon)` (что является стандартным порядком для геометрических функций). Пользователи, которые хотят сохранить прежний порядок результата `(lon, lat)`, могут установить настройку `h3togeo_lon_lat_result_order = true`. [#74719](https://github.com/ClickHouse/ClickHouse/pull/74719) ([Manish Gill](https://github.com/mgill25)). -* Новый драйвер MongoDB теперь используется по умолчанию. Пользователи, которые хотят продолжить использовать прежний драйвер, могут установить серверную настройку `use_legacy_mongodb_integration` в значение `true`. [#73359](https://github.com/ClickHouse/ClickHouse/pull/73359) ([Robert Schulze](https://github.com/rschu1ze)). - -#### Новая возможность {#new-feature} - -* Добавлена возможность применять незавершённые мутации (ещё не материализованные фоновым процессом) во время выполнения запросов `SELECT` сразу после отправки. Это можно включить, установив `apply_mutations_on_fly`. [#74877](https://github.com/ClickHouse/ClickHouse/pull/74877) ([Anton Popov](https://github.com/CurtizJ)). -* Реализовано отсечение партиций таблиц `Iceberg` для операций партиционирования с временными преобразованиями. [#72044](https://github.com/ClickHouse/ClickHouse/pull/72044) ([Daniil Ivanik](https://github.com/divanik)). -* Поддержка подколонок в ключе сортировки MergeTree и пропускающих индексах. [#72644](https://github.com/ClickHouse/ClickHouse/pull/72644) ([Pavel Kruglov](https://github.com/Avogar)). -* Добавлена поддержка чтения значений типа `HALF_FLOAT` из `Apache Arrow`/`Parquet`/`ORC` (они считываются как `Float32`). Это закрывает [#72960](https://github.com/ClickHouse/ClickHouse/issues/72960). Имейте в виду, что формат половинной точности IEEE-754 (half float) — это не то же самое, что `BFloat16`. Закрывает [#73835](https://github.com/ClickHouse/ClickHouse/issues/73835). [#73836](https://github.com/ClickHouse/ClickHouse/pull/73836) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Таблица `system.trace_log` будет содержать два новых столбца — `symbols` и `lines`, в которых хранится символизированный стек вызовов. Это позволяет легко собирать и экспортировать профильную информацию. Это поведение управляется параметром конфигурации сервера `symbolize` в разделе `trace_log` и по умолчанию включено. [#73896](https://github.com/ClickHouse/ClickHouse/pull/73896) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Добавлена новая функция `generateSerialID`, которая может использоваться для генерации автоинкрементных значений в таблицах. Продолжение [#64310](https://github.com/ClickHouse/ClickHouse/issues/64310) от [kazalika](https://github.com/kazalika). Закрывает [#62485](https://github.com/ClickHouse/ClickHouse/issues/62485). [#73950](https://github.com/ClickHouse/ClickHouse/pull/73950) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Добавлен синтаксис `query1 PARALLEL WITH query2 PARALLEL WITH query3 ... PARALLEL WITH queryN` для DDL-запросов. Это означает, что запросы `{query1, query2, ... queryN}` могут выполняться параллельно друг с другом (что предпочтительно). [#73983](https://github.com/ClickHouse/ClickHouse/pull/73983) ([Vitaly Baranov](https://github.com/vitlibar)). -* Добавлен кэш в оперативной памяти для десериализованных гранул skipping‑индексов. Это должно ускорить повторные запросы, использующие skipping‑индексы. Размер нового кэша контролируется серверными настройками `skipping_index_cache_size` и `skipping_index_cache_max_entries`. Изначальной мотивацией для добавления кэша были индексы векторного сходства, которые теперь работают значительно быстрее. [#70102](https://github.com/ClickHouse/ClickHouse/pull/70102) ([Robert Schulze](https://github.com/rschu1ze)). -* Теперь встроенный веб‑интерфейс отображает индикатор прогресса во время выполнения запроса. Он позволяет отменять запросы. Он показывает общее количество записей и расширенную информацию о скорости. Таблица может отображаться постепенно по мере поступления данных. Включено HTTP‑сжатие. Отрисовка таблицы стала быстрее. Заголовок таблицы стал закреплённым. Он позволяет выделять ячейки и перемещаться по ним с помощью клавиш со стрелками. Исправлена проблема, при которой контур выделенной ячейки делал её меньше. Ячейки больше не расширяются при наведении мыши, а только при выборе. Момент прекращения отрисовки входящих данных теперь определяется на стороне клиента, а не сервера. Добавлена подсветка групп разрядов для чисел. Оформление интерфейса было обновлено и стало более выразительным. Интерфейс проверяет доступность сервера и корректность учётных данных и отображает версию сервера и время его работы. Значок облака теперь контурный во всех шрифтах, даже в Safari. Большие целые числа внутри вложенных типов данных отображаются лучше. Значения inf/nan отображаются корректно. Типы данных отображаются при наведении курсора на заголовок столбца. [#74204](https://github.com/ClickHouse/ClickHouse/pull/74204) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Добавлена возможность по умолчанию создавать min-max (skipping) индексы для столбцов в таблицах MergeTree с помощью настроек `add_minmax_index_for_numeric_columns` (для числовых столбцов) и `add_minmax_index_for_string_columns` (для строковых столбцов). Пока обе настройки отключены, поэтому поведение ещё не изменилось. [#74266](https://github.com/ClickHouse/ClickHouse/pull/74266) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). -* Добавлены поля `script_query_number` и `script_line_number` в `system.query_log`, в ClientInfo в нативном протоколе и в серверные логи. Это закрывает [#67542](https://github.com/ClickHouse/ClickHouse/issues/67542). Благодарность [pinsvin00](https://github.com/pinsvin00) за то, что ранее инициировал разработку этой функциональности в [#68133](https://github.com/ClickHouse/ClickHouse/issues/68133). [#74477](https://github.com/ClickHouse/ClickHouse/pull/74477) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Добавлена агрегатная функция `sequenceMatchEvents`, которая возвращает временные метки совпавших событий для самой длинной цепочки событий, удовлетворяющей шаблону. [#72349](https://github.com/ClickHouse/ClickHouse/pull/72349) ([UnamedRus](https://github.com/UnamedRus)). -* Добавлена функция `arrayNormalizedGini`. [#72823](https://github.com/ClickHouse/ClickHouse/pull/72823) ([flynn](https://github.com/ucasfl)). -* Добавлена поддержка оператора `-` для `DateTime64`, что позволяет вычитать друг из друга значения типов `DateTime64` и `DateTime`. [#74482](https://github.com/ClickHouse/ClickHouse/pull/74482) ([Li Yin](https://github.com/liyinsg)). - -#### Экспериментальные возможности {#experimental-features} - -* Тип данных `BFloat16` готов к промышленной эксплуатации. [#73840](https://github.com/ClickHouse/ClickHouse/pull/73840) ([Alexey Milovidov](https://github.com/alexey-milovidov)). - -#### Повышение производительности {#performance-improvement} - -* Оптимизирована функция `indexHint`. Теперь столбцы, которые используются только как аргументы функции `indexHint`, не читаются из таблицы. [#74314](https://github.com/ClickHouse/ClickHouse/pull/74314) ([Anton Popov](https://github.com/CurtizJ)). Если функция `indexHint` — центральный элемент вашей корпоративной архитектуры данных, эта оптимизация спасёт вам жизнь. -* Более точный учет настройки `max_joined_block_size_rows` для алгоритма JOIN `parallel_hash`, что помогает избежать повышенного потребления памяти по сравнению с алгоритмом `hash`. [#74630](https://github.com/ClickHouse/ClickHouse/pull/74630) ([Nikita Taranov](https://github.com/nickitat)). -* Реализована оптимизация проталкивания предикатов на уровне плана запроса для шага `MergingAggregated`. Это повышает производительность некоторых запросов при использовании анализатора. [#74073](https://github.com/ClickHouse/ClickHouse/pull/74073) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Разбиение блоков левой таблицы по хэшу больше не выполняется на фазе probe JOIN-алгоритма `parallel_hash`. [#73089](https://github.com/ClickHouse/ClickHouse/pull/73089) ([Nikita Taranov](https://github.com/nickitat)). -* Оптимизирован входной формат RowBinary. Закрывает [#63805](https://github.com/ClickHouse/ClickHouse/issues/63805). [#65059](https://github.com/ClickHouse/ClickHouse/pull/65059) ([Pavel Kruglov](https://github.com/Avogar)). -* Записывать части с уровнем 1, если `optimize_on_insert` включён. Это позволяет использовать ряд оптимизаций запросов с `FINAL` для только что записанных частей. [#73132](https://github.com/ClickHouse/ClickHouse/pull/73132) ([Anton Popov](https://github.com/CurtizJ)). -* Ускорена десериализация строк за счёт низкоуровневых оптимизаций. [#65948](https://github.com/ClickHouse/ClickHouse/pull/65948) ([Nikita Taranov](https://github.com/nickitat)). -* При выполнении сравнения на равенство между записями, например во время слияний, начинайте сравнивать строки с тех столбцов, значения которых с наибольшей вероятностью различаются. [#63780](https://github.com/ClickHouse/ClickHouse/pull/63780) ([UnamedRus](https://github.com/UnamedRus)). -* Улучшена производительность операции grace hash join за счёт переупорядочивания правой таблицы соединения по ключам. [#72237](https://github.com/ClickHouse/ClickHouse/pull/72237) ([kevinyhzou](https://github.com/KevinyhZou)). -* Разрешить `arrayROCAUC` и `arrayAUCPR` вычислять площадь отдельных участков кривой, что позволит распараллелить вычисления на больших наборах данных. [#72904](https://github.com/ClickHouse/ClickHouse/pull/72904) ([Emmanuel](https://github.com/emmanuelsdias)). -* Избегайте создания слишком большого количества простаивающих потоков. [#72920](https://github.com/ClickHouse/ClickHouse/pull/72920) ([Guo Wangyang](https://github.com/guowangy)). -* Не перечислять ключи blob-хранилища, если в табличной функции используется только расширение фигурных скобок. Закрывает [#73333](https://github.com/ClickHouse/ClickHouse/issues/73333). [#73518](https://github.com/ClickHouse/ClickHouse/pull/73518) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Оптимизация вычислений с коротким замыканием для функций, выполняемых над аргументами Nullable. [#73820](https://github.com/ClickHouse/ClickHouse/pull/73820) ([李扬](https://github.com/taiyang-li)). -* Не применять `maskedExecute` к столбцам, не имеющим тип Function, и повысить производительность вычислений с коротким замыканием. [#73965](https://github.com/ClickHouse/ClickHouse/pull/73965) ([lgbo](https://github.com/lgbo-ustc)). -* Отключено автоматическое определение заголовков во входных форматах для `Kafka`/`NATS`/`RabbitMQ`/`FileLog` для повышения производительности. [#74006](https://github.com/ClickHouse/ClickHouse/pull/74006) ([Azat Khuzhin](https://github.com/azat)). -* Выполнять конвейер с большей степенью параллелизма после агрегации с GROUPING SETS. [#74082](https://github.com/ClickHouse/ClickHouse/pull/74082) ([Nikita Taranov](https://github.com/nickitat)). -* Уменьшён размер критической секции в `MergeTreeReadPool`. [#74202](https://github.com/ClickHouse/ClickHouse/pull/74202) ([Guo Wangyang](https://github.com/guowangy)). -* Улучшена производительность параллельных реплик. Десериализация пакетов на инициаторе запроса для пакетов, не связанных с протоколом параллельных реплик, теперь всегда выполняется в потоке конвейера. Ранее десериализация могла выполняться в потоке, отвечающем за планирование конвейера, что могло снижать отзывчивость инициатора и задерживать выполнение конвейера. [#74398](https://github.com/ClickHouse/ClickHouse/pull/74398) ([Igor Nikonov](https://github.com/devcrafter)). -* Повышена производительность крупных multi-запросов в Keeper. [#74849](https://github.com/ClickHouse/ClickHouse/pull/74849) ([Antonio Andelic](https://github.com/antonio2368)). -* Используйте обёртки для логов как значения и не выделяйте их в куче. [#74034](https://github.com/ClickHouse/ClickHouse/pull/74034) ([Mikhail Artemenko](https://github.com/Michicosun)). -* Восстанавливать подключения к репликам словарей MySQL и Postgres в фоновом режиме, чтобы не задерживать обработку запросов к соответствующим словарям. [#71101](https://github.com/ClickHouse/ClickHouse/pull/71101) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* Параллельные реплики использовали исторические данные о доступности реплик для оптимизации выбора реплики, но не увеличивали счетчик ошибок, когда подключение было недоступно. В этом PR счетчик ошибок реплики обновляется при её недоступности. [#72666](https://github.com/ClickHouse/ClickHouse/pull/72666) ([zoomxi](https://github.com/zoomxi)). -* Добавлена настройка MergeTree `materialize_skip_indexes_on_merge`, которая отключает создание skip‑индексов во время слияний. Она позволяет явно управлять тем, когда создаются skip‑индексы (через `ALTER TABLE [..] MATERIALIZE INDEX [...]`). Это может быть полезно, если построение skip‑индексов ресурсоёмко (например, для векторных индексов сходства). [#74401](https://github.com/ClickHouse/ClickHouse/pull/74401) ([Robert Schulze](https://github.com/rschu1ze)). -* Оптимизированы запросы к Keeper в Storage(S3/Azure)Queue. [#74410](https://github.com/ClickHouse/ClickHouse/pull/74410) ([Kseniia Sumarokova](https://github.com/kssenii)). [#74538](https://github.com/ClickHouse/ClickHouse/pull/74538) ([Kseniia Sumarokova](https://github.com/kssenii)). -* По умолчанию используется до `1000` параллельных реплик. [#74504](https://github.com/ClickHouse/ClickHouse/pull/74504) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Улучшено повторное использование HTTP-сессий при чтении с диска S3 ([#72401](https://github.com/ClickHouse/ClickHouse/issues/72401)). [#74548](https://github.com/ClickHouse/ClickHouse/pull/74548) ([Julian Maicher](https://github.com/jmaicher)). - -#### Улучшения {#improvement} - -* Добавлена поддержка использования SETTINGS в запросе CREATE TABLE с неявно указанным ENGINE и одновременного использования настроек движка и настроек запроса. [#73120](https://github.com/ClickHouse/ClickHouse/pull/73120) ([Raúl Marín](https://github.com/Algunenano)). -* По умолчанию включена опция `use_hive_partitioning`. [#71636](https://github.com/ClickHouse/ClickHouse/pull/71636) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Добавлена поддержка операций CAST и ALTER между типами JSON с различными параметрами. [#72303](https://github.com/ClickHouse/ClickHouse/pull/72303) ([Pavel Kruglov](https://github.com/Avogar)). -* Добавлена поддержка сравнения на равенство для значений столбца JSON. [#72991](https://github.com/ClickHouse/ClickHouse/pull/72991) ([Pavel Kruglov](https://github.com/Avogar)). -* Улучшено форматирование идентификаторов с JSON-подстолбцами, чтобы избежать избыточных обратных кавычек. [#73085](https://github.com/ClickHouse/ClickHouse/pull/73085) ([Pavel Kruglov](https://github.com/Avogar)). -* Улучшена интерактивная работа с метриками. Исправлено неполное отображение метрик от параллельных реплик. Метрики теперь отображаются в порядке самого недавнего обновления, затем в лексикографическом порядке по имени. Устаревшие метрики не отображаются. [#71631](https://github.com/ClickHouse/ClickHouse/pull/71631) ([Julia Kartseva](https://github.com/jkartseva)). -* Формат вывода JSON теперь по умолчанию удобочитаемый (pretty). Добавлена новая настройка `output_format_json_pretty_print`, которая управляет этим поведением и по умолчанию включена. [#72148](https://github.com/ClickHouse/ClickHouse/pull/72148) ([Pavel Kruglov](https://github.com/Avogar)). -* Разрешить `LowCardinality(UUID)` по умолчанию. На практике это оказалось удобным для клиентов ClickHouse Cloud. [#73826](https://github.com/ClickHouse/ClickHouse/pull/73826) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Улучшено сообщение, выводимое при установке. [#73827](https://github.com/ClickHouse/ClickHouse/pull/73827) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Улучшено сообщение о сбросе пароля в ClickHouse Cloud. [#73831](https://github.com/ClickHouse/ClickHouse/pull/73831) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Улучшено сообщение об ошибке для таблицы File, которая не может дописывать данные в файл. [#73832](https://github.com/ClickHouse/ClickHouse/pull/73832) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Запрашивать подтверждение, если пользователь случайно пытается вывести двоичный формат (например, Native, Parquet, Avro) в терминал. Это закрывает [#59524](https://github.com/ClickHouse/ClickHouse/issues/59524). [#73833](https://github.com/ClickHouse/ClickHouse/pull/73833) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Подсвечивать пробелы в конце строк в форматах Pretty и Vertical в терминале для лучшей наглядности. Эта возможность управляется настройкой `output_format_pretty_highlight_trailing_spaces`. Первоначальную реализацию выполнил [Braden Burns](https://github.com/bradenburns) в задаче [#72996](https://github.com/ClickHouse/ClickHouse/issues/72996). Закрывает [#71590](https://github.com/ClickHouse/ClickHouse/issues/71590). [#73847](https://github.com/ClickHouse/ClickHouse/pull/73847) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* `clickhouse-client` и `clickhouse-local` будут автоматически определять тип сжатия stdin, когда он перенаправлен из файла. Это устраняет проблему [#70865](https://github.com/ClickHouse/ClickHouse/issues/70865). [#73848](https://github.com/ClickHouse/ClickHouse/pull/73848) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* По умолчанию слишком длинные имена столбцов в форматах Pretty обрезаются. Это поведение настраивается параметрами `output_format_pretty_max_column_name_width_cut_to` и `output_format_pretty_max_column_name_width_min_chars_to_cut`. Продолжение работы [tanmaydatta](https://github.com/tanmaydatta) в [#66502](https://github.com/ClickHouse/ClickHouse/issues/66502). Закрывает [#65968](https://github.com/ClickHouse/ClickHouse/issues/65968). [#73851](https://github.com/ClickHouse/ClickHouse/pull/73851) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Форматы `Pretty` теперь отображаются более наглядно: блоки объединяются, если с момента вывода предыдущего блока прошло немного времени. Это контролируется новыми настройками `output_format_pretty_squash_consecutive_ms` (по умолчанию 50 мс) и `output_format_pretty_squash_max_wait_ms` (по умолчанию 1000 мс). Продолжение [#49537](https://github.com/ClickHouse/ClickHouse/issues/49537). Закрывает [#49153](https://github.com/ClickHouse/ClickHouse/issues/49153). [#73852](https://github.com/ClickHouse/ClickHouse/pull/73852) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Добавлена метрика числа исходных частей, которые в данный момент сливаются. Исправляет [#70809](https://github.com/ClickHouse/ClickHouse/issues/70809). [#73868](https://github.com/ClickHouse/ClickHouse/pull/73868) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Подсвечивать столбцы в формате `Vertical` при выводе в терминал. Это можно отключить с помощью настройки `output_format_pretty_color`. [#73898](https://github.com/ClickHouse/ClickHouse/pull/73898) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Улучшена совместимость с MySQL до такого уровня, что `mysqlsh` (функциональный CLI для MySQL от Oracle) теперь может подключаться к ClickHouse. Это необходимо для упрощения тестирования. [#73912](https://github.com/ClickHouse/ClickHouse/pull/73912) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Форматы pretty могут отображать многострочные поля внутри ячейки таблицы, что повышает удобочитаемость. Это поведение включено по умолчанию и настраивается параметром `output_format_pretty_multiline_fields`. Продолжение работы [Volodyachan](https://github.com/Volodyachan) в [#64094](https://github.com/ClickHouse/ClickHouse/issues/64094). Закрывает [#56912](https://github.com/ClickHouse/ClickHouse/issues/56912). [#74032](https://github.com/ClickHouse/ClickHouse/pull/74032) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Сделать HTTP-заголовки X-ClickHouse доступными для JavaScript в браузере. Это упрощает разработку приложений. [#74180](https://github.com/ClickHouse/ClickHouse/pull/74180) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Формат `JSONEachRowWithProgress` включает события с метаданными, а также блоки `totals` и `extremes`. Он также включает `rows_before_limit_at_least` и `rows_before_aggregation`. Формат корректно выводит исключение, если оно возникает после частичных результатов. В информацию о прогрессе теперь включается затраченное время в наносекундах. В конце генерируется одно итоговое событие прогресса. Прогресс во время выполнения запроса будет выводиться не чаще, чем задано значением настройки `interactive_delay`. [#74181](https://github.com/ClickHouse/ClickHouse/pull/74181) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Иконка песочных часов в Play UI теперь будет плавно вращаться. [#74182](https://github.com/ClickHouse/ClickHouse/pull/74182) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Даже если HTTP-ответ сжат, отправляйте пакеты, как только они поступают. Это позволяет браузеру получать пакеты прогресса и сжатые данные. [#74201](https://github.com/ClickHouse/ClickHouse/pull/74201) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Если число выводимых записей больше N = `output_format_pretty_max_rows`, вместо отображения только первых N строк мы обрежем результирующую таблицу посередине, показывая N/2 первых строк и N/2 последних строк. Продолжение [#64200](https://github.com/ClickHouse/ClickHouse/issues/64200). Это закрывает [#59502](https://github.com/ClickHouse/ClickHouse/issues/59502). [#73929](https://github.com/ClickHouse/ClickHouse/pull/73929) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Разрешено использование более общего алгоритма планирования соединений при включённом алгоритме hash join. [#71926](https://github.com/ClickHouse/ClickHouse/pull/71926) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* Добавлена возможность создавать индекс bloom_filter на столбцах с типом данных `DateTime64`. [#66416](https://github.com/ClickHouse/ClickHouse/pull/66416) ([Yutong Xiao](https://github.com/YutSean)). -* Когда одновременно включены `min_age_to_force_merge_seconds` и `min_age_to_force_merge_on_partition_only`, слияние частей будет игнорировать ограничение по максимальному объёму в байтах. [#73656](https://github.com/ClickHouse/ClickHouse/pull/73656) ([Kai Zhu](https://github.com/nauu)). -* Добавлены HTTP-заголовки в таблицу логов спанов OpenTelemetry для улучшения трассировки. [#70516](https://github.com/ClickHouse/ClickHouse/pull/70516) ([jonymohajanGmail](https://github.com/jonymohajanGmail)). -* Добавлена поддержка записи файлов `orc` в произвольном часовом поясе, а не только по часовому поясу `GMT`. [#70615](https://github.com/ClickHouse/ClickHouse/pull/70615) ([kevinyhzou](https://github.com/KevinyhZou)). -* Учитывать настройки планирования ввода-вывода при записи резервных копий между облаками. [#71093](https://github.com/ClickHouse/ClickHouse/pull/71093) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* Добавлен псевдоним `name` для столбца `metric` в `system.asynchronous_metrics`. [#71164](https://github.com/ClickHouse/ClickHouse/pull/71164) ([megao](https://github.com/jetgm)). -* Исторически по какой-то причине запрос `ALTER TABLE MOVE PARTITION TO TABLE` проверял права `SELECT` и `ALTER DELETE` вместо отдельного типа доступа `ALTER_MOVE_PARTITION`. В этом PR используется именно этот тип доступа. Для совместимости это разрешение также будет неявно предоставляться, если предоставлены `SELECT` и `ALTER DELETE`, но в будущих релизах такое поведение будет удалено. Закрывает [#16403](https://github.com/ClickHouse/ClickHouse/issues/16403). [#71632](https://github.com/ClickHouse/ClickHouse/pull/71632) ([pufit](https://github.com/pufit)). -* Выбрасывать исключение при попытке материализовать столбец, входящий в ключ сортировки, вместо того чтобы допускать нарушение порядка сортировки. [#71891](https://github.com/ClickHouse/ClickHouse/pull/71891) ([Peter Nguyen](https://github.com/petern48)). -* Секреты в `EXPLAIN QUERY TREE` теперь скрываются. [#72025](https://github.com/ClickHouse/ClickHouse/pull/72025) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* Добавлена поддержка логических целочисленных типов в Parquet в «нативном» ридере. [#72105](https://github.com/ClickHouse/ClickHouse/pull/72105) ([Arthur Passos](https://github.com/arthurpassos)). -* Теперь в браузере интерактивно запрашиваются учетные данные, если для пользователя по умолчанию требуется пароль. В предыдущих версиях сервер возвращал HTTP 403; теперь он возвращает HTTP 401. [#72198](https://github.com/ClickHouse/ClickHouse/pull/72198) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Преобразованы типы доступа `CREATE_USER`, `ALTER_USER`, `DROP_USER`, `CREATE_ROLE`, `ALTER_ROLE`, `DROP_ROLE` из глобальных в параметризованные. Теперь можно более точно задавать права управления доступом. [#72246](https://github.com/ClickHouse/ClickHouse/pull/72246) ([pufit](https://github.com/pufit)). -* Добавлен столбец `latest_fail_error_code_name` в `system.mutations`. Этот столбец необходим для введения новой метрики для «зависших» мутаций и использования ее при построении графиков ошибок, возникающих в облаке, а также, при необходимости, для добавления нового, менее «шумного» оповещения. [#72398](https://github.com/ClickHouse/ClickHouse/pull/72398) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* Уменьшено количество выделений памяти в запросе `ATTACH PARTITION`. [#72583](https://github.com/ClickHouse/ClickHouse/pull/72583) ([Konstantin Morozov](https://github.com/k-morozov)). -* Make `max_bytes_before_external_sort` limit depends on total query memory consumption (previously it was number of bytes in the sorting block for one sorting thread, now it has the same meaning as `max_bytes_before_external_group_by` - it is total limit for the whole query memory for all threads). Also one more setting added to control on disk block size - `min_external_sort_block_bytes`. [#72598](https://github.com/ClickHouse/ClickHouse/pull/72598) ([Azat Khuzhin](https://github.com/azat)). -* Коллектор трассировок теперь игнорирует ограничения по памяти. [#72606](https://github.com/ClickHouse/ClickHouse/pull/72606) ([Azat Khuzhin](https://github.com/azat)). -* Добавлены серверные настройки `dictionaries_lazy_load` и `wait_dictionaries_load_at_startup` в `system.server_settings`. [#72664](https://github.com/ClickHouse/ClickHouse/pull/72664) ([Christoph Wurm](https://github.com/cwurm)). -* Добавлена настройка `max_backup_bandwidth` в список параметров, которые можно указывать в запросах `BACKUP`/`RESTORE`. [#72665](https://github.com/ClickHouse/ClickHouse/pull/72665) ([Christoph Wurm](https://github.com/cwurm)). -* Понижен уровень логирования для сообщений о появлении реплицированных частей в движке ReplicatedMergeTree, чтобы уменьшить объём логов, генерируемых в реплицированном кластере. [#72876](https://github.com/ClickHouse/ClickHouse/pull/72876) ([mor-akamai](https://github.com/morkalfon)). -* Улучшено извлечение общих подвыражений в дизъюнкциях. Теперь можно упрощать результирующее фильтрующее выражение, даже если нет общего подвыражения для всех дизъюнктов. Продолжение [#71537](https://github.com/ClickHouse/ClickHouse/issues/71537). [#73271](https://github.com/ClickHouse/ClickHouse/pull/73271) ([Dmitry Novik](https://github.com/novikd)). -* В хранилищах `S3Queue`/`AzureQueue` добавлена возможность задавать настройки для таблиц, созданных без них. [#73283](https://github.com/ClickHouse/ClickHouse/pull/73283) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Добавлена настройка `least_greatest_legacy_null_behavior` (по умолчанию: `false`), которая определяет, должны ли функции `least` и `greatest` при наличии аргументов `NULL` безусловно возвращать `NULL` (если `true`) или игнорировать такие аргументы (если `false`). [#73344](https://github.com/ClickHouse/ClickHouse/pull/73344) ([Robert Schulze](https://github.com/rschu1ze)). -* Использовать мультизапросы Keeper в потоке очистки ObjectStorageQueueMetadata. [#73357](https://github.com/ClickHouse/ClickHouse/pull/73357) ([Antonio Andelic](https://github.com/antonio2368)). -* Когда ClickHouse выполняется внутри cgroup, мы по‑прежнему будем собирать асинхронные метрики на уровне всей системы, связанные с нагрузкой, планированием процессов, памятью и т. д. Они могут давать полезные сигналы, когда ClickHouse является единственным процессом на хосте с высоким потреблением ресурсов. [#73369](https://github.com/ClickHouse/ClickHouse/pull/73369) ([Nikita Taranov](https://github.com/nickitat)). -* В хранилище `S3Queue` добавлена возможность переноса старых упорядоченных таблиц, созданных до версии 24.6, в новую структуру с бакетами. [#73467](https://github.com/ClickHouse/ClickHouse/pull/73467) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Добавлена таблица `system.azure_queue` по аналогии с существующей `system.s3queue`. [#73477](https://github.com/ClickHouse/ClickHouse/pull/73477) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Функция `parseDateTime64` (и её варианты) теперь выдаёт корректные результаты для входных дат до 1970 года и после 2106 года. Пример: `SELECT parseDateTime64InJodaSyntax('2200-01-01 00:00:00.000', 'yyyy-MM-dd HH:mm:ss.SSS')`. [#73594](https://github.com/ClickHouse/ClickHouse/pull/73594) ([zhanglistar](https://github.com/zhanglistar)). -* Исправлены некоторые проблемы с удобством использования `clickhouse-disks`, отмеченные пользователями. Закрывает [#67136](https://github.com/ClickHouse/ClickHouse/issues/67136). [#73616](https://github.com/ClickHouse/ClickHouse/pull/73616) ([Daniil Ivanik](https://github.com/divanik)). -* Добавлена возможность изменять параметры коммита в хранилище S3(Azure)Queue: `max_processed_files_before_commit`, `max_processed_rows_before_commit`, `max_processed_bytes_before_commit`, `max_processing_time_sec_before_commit`. [#73635](https://github.com/ClickHouse/ClickHouse/pull/73635) ([Kseniia Sumarokova](https://github.com/kssenii)). -* В хранилище S3(Azure)Queue прогресс по источникам агрегируется для сравнения с настройками лимитов коммита. [#73641](https://github.com/ClickHouse/ClickHouse/pull/73641) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Поддержка базовых настроек в запросах `BACKUP` и `RESTORE`. [#73650](https://github.com/ClickHouse/ClickHouse/pull/73650) ([Vitaly Baranov](https://github.com/vitlibar)). -* Учитывать настройку `output_format_compression_level` при выводе в формате Parquet. [#73651](https://github.com/ClickHouse/ClickHouse/pull/73651) ([Arthur Passos](https://github.com/arthurpassos)). -* Добавлена поддержка чтения Apache Arrow `fixed_size_list` как `Array` вместо обработки его как неподдерживаемого типа. [#73654](https://github.com/ClickHouse/ClickHouse/pull/73654) ([Julian Meyers](https://github.com/J-Meyers)). -* Добавлены два движка резервного копирования: `Memory` (хранит резервные копии в пределах текущей пользовательской сессии) и `Null` (нигде не сохраняет резервные копии), предназначенные для тестирования. [#73690](https://github.com/ClickHouse/ClickHouse/pull/73690) ([Vitaly Baranov](https://github.com/vitlibar)). -* `concurrent_threads_soft_limit_num` и `concurrent_threads_soft_limit_num_ratio_to_cores` могут быть изменены без перезапуска сервера. [#73713](https://github.com/ClickHouse/ClickHouse/pull/73713) ([Sergei Trifonov](https://github.com/serxa)). -* Добавлена поддержка расширенных числовых типов (`Decimal`, большие целые числа) в функциях `formatReadable`. [#73765](https://github.com/ClickHouse/ClickHouse/pull/73765) ([Raúl Marín](https://github.com/Algunenano)). -* Добавлена поддержка TLS для совместимости с сетевым протоколом Postgres. [#73812](https://github.com/ClickHouse/ClickHouse/pull/73812) ([scanhex12](https://github.com/scanhex12)). -* Функция `isIPv4String` возвращала true, если за корректным IPv4-адресом следовал нулевой байт, хотя в этом случае она должна возвращать false. Продолжение [#65387](https://github.com/ClickHouse/ClickHouse/issues/65387). [#73946](https://github.com/ClickHouse/ClickHouse/pull/73946) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Код ошибки в сетевом протоколе MySQL приведён в соответствие с MySQL. Продолжение [#56831](https://github.com/ClickHouse/ClickHouse/issues/56831). Закрывает [#50957](https://github.com/ClickHouse/ClickHouse/issues/50957). [#73948](https://github.com/ClickHouse/ClickHouse/pull/73948) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Добавлена настройка `validate_enum_literals_in_opearators`, которая проверяет литералы enum в операторах вроде `IN`, `NOT IN` на соответствие типу enum и выбрасывает исключение, если литерал не является допустимым значением enum. [#73985](https://github.com/ClickHouse/ClickHouse/pull/73985) ([Vladimir Cherkasov](https://github.com/vdimir)). -* В хранилище `S3(Azure)Queue` все файлы из одного пакета, определённого настройками коммита, фиксируются в рамках одной транзакции Keeper. [#73991](https://github.com/ClickHouse/ClickHouse/pull/73991) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Отключено определение заголовков для исполняемых UDF и словарей (что могло приводить к ошибке вида Function 'X': wrong result, expected Y row(s), actual Y-1). [#73992](https://github.com/ClickHouse/ClickHouse/pull/73992) ([Azat Khuzhin](https://github.com/azat)). -* Добавлена опция `distributed` для `EXPLAIN PLAN.` Теперь `EXPLAIN distributed=1 ... ` добавляет удалённый план к шагам `ReadFromParallelRemote*`. [#73994](https://github.com/ClickHouse/ClickHouse/pull/73994) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Теперь используется корректный тип возвращаемого значения для not/xor с аргументами типа Dynamic. [#74013](https://github.com/ClickHouse/ClickHouse/pull/74013) ([Pavel Kruglov](https://github.com/Avogar)). -* Теперь можно изменять `add_implicit_sign_column_constraint_for_collapsing_engine` после создания таблицы. [#74014](https://github.com/ClickHouse/ClickHouse/pull/74014) ([Christoph Wurm](https://github.com/cwurm)). -* Добавлена поддержка подстолбцов в запросе SELECT для materialized view. [#74030](https://github.com/ClickHouse/ClickHouse/pull/74030) ([Pavel Kruglov](https://github.com/Avogar)). -* Теперь есть три простых способа задать пользовательскую строку приглашения в `clickhouse-client`: 1) через параметр командной строки `--prompt`, 2) в конфигурационном файле, через настройку `[...]`, и 3) также в конфигурационном файле, через настройки для отдельных подключений `[...]`. [#74168](https://github.com/ClickHouse/ClickHouse/pull/74168) ([Christoph Wurm](https://github.com/cwurm)). -* Автоматически определять необходимость защищённого соединения при подключении к порту 9440 в `clickhouse-client`. [#74212](https://github.com/ClickHouse/ClickHouse/pull/74212) ([Christoph Wurm](https://github.com/cwurm)). -* Разрешена аутентификация пользователей только по имени пользователя для http_handlers (ранее также требовалось указывать пароль). [#74221](https://github.com/ClickHouse/ClickHouse/pull/74221) ([Azat Khuzhin](https://github.com/azat)). -* Поддержка альтернативных языков запросов PRQL и KQL была помечена как экспериментальная. Чтобы использовать их, задайте настройки `allow_experimental_prql_dialect = 1` и `allow_experimental_kusto_dialect = 1`. [#74224](https://github.com/ClickHouse/ClickHouse/pull/74224) ([Robert Schulze](https://github.com/rschu1ze)). -* Расширена поддержка возврата типа Enum по умолчанию для большего числа агрегатных функций. [#74272](https://github.com/ClickHouse/ClickHouse/pull/74272) ([Raúl Marín](https://github.com/Algunenano)). -* В `OPTIMIZE TABLE` теперь можно указывать ключевое слово `FORCE` как альтернативу существующему ключевому слову `FINAL`. [#74342](https://github.com/ClickHouse/ClickHouse/pull/74342) ([Robert Schulze](https://github.com/rschu1ze)). -* Добавлена метрика `IsServerShuttingDown`, которая нужна для срабатывания оповещения, если завершение работы сервера занимает слишком много времени. [#74429](https://github.com/ClickHouse/ClickHouse/pull/74429) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* В EXPLAIN добавлено отображение имён таблиц Iceberg. [#74485](https://github.com/ClickHouse/ClickHouse/pull/74485) ([alekseev-maksim](https://github.com/alekseev-maksim)). -* Добавлено более понятное сообщение об ошибке при использовании RECURSIVE CTE со старым анализатором. [#74523](https://github.com/ClickHouse/ClickHouse/pull/74523) ([Raúl Marín](https://github.com/Algunenano)). -* Отображать расширенные сообщения об ошибках в `system.errors`. [#74574](https://github.com/ClickHouse/ClickHouse/pull/74574) ([Vitaly Baranov](https://github.com/vitlibar)). -* Добавлена возможность использования пароля для взаимодействия клиента с clickhouse-keeper. Эта функция не особенно полезна, если настроена корректная SSL‑конфигурация для сервера и клиента, но в некоторых случаях всё же может пригодиться. Длина пароля не может превышать 16 символов. Это не связано с моделью аутентификации Keeper. [#74673](https://github.com/ClickHouse/ClickHouse/pull/74673) ([alesapin](https://github.com/alesapin)). -* Добавлен код ошибки для перезагрузчика конфигурации. [#74746](https://github.com/ClickHouse/ClickHouse/pull/74746) ([Garrett Thomas](https://github.com/garrettthomaskth)). -* Добавлена поддержка IPv6-адресов в табличных функциях и движках MySQL и PostgreSQL. [#74796](https://github.com/ClickHouse/ClickHouse/pull/74796) ([Mikhail Koviazin](https://github.com/mkmkme)). -* Реализована оптимизация с ранним завершением вычислений для `divideDecimal`. Исправляет [#74280](https://github.com/ClickHouse/ClickHouse/issues/74280). [#74843](https://github.com/ClickHouse/ClickHouse/pull/74843) ([Kevin Mingtarja](https://github.com/kevinmingtarja)). -* Теперь пользователей можно указывать в скриптах запуска. [#74894](https://github.com/ClickHouse/ClickHouse/pull/74894) ([pufit](https://github.com/pufit)). -* Добавлена поддержка SAS-токенов Azure. [#72959](https://github.com/ClickHouse/ClickHouse/pull/72959) ([Azat Khuzhin](https://github.com/azat)). - -#### Исправление ошибки (некорректное поведение, заметное пользователям, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* Устанавливать уровень сжатия Parquet только в том случае, если это поддерживается используемым кодеком сжатия. [#74659](https://github.com/ClickHouse/ClickHouse/pull/74659) ([Arthur Passos](https://github.com/arthurpassos)). -* Исправлена регрессия, из-за которой при использовании локалей сортировки с модификаторами возникала ошибка. Например, теперь запрос `SELECT arrayJoin(['kk 50', 'KK 01', ' KK 2', ' KK 3', 'kk 1', 'x9y99', 'x9y100']) item ORDER BY item ASC COLLATE 'tr-u-kn-true-ka-shifted` работает корректно. [#73544](https://github.com/ClickHouse/ClickHouse/pull/73544) ([Robert Schulze](https://github.com/rschu1ze)). -* Исправлена ошибка, из-за которой с помощью keeper-client было невозможно создать узел SEQUENTIAL. [#64177](https://github.com/ClickHouse/ClickHouse/pull/64177) ([Duc Canh Le](https://github.com/canhld94)). -* Исправлен некорректный подсчёт символов в функциях `position`. [#71003](https://github.com/ClickHouse/ClickHouse/pull/71003) ([思维](https://github.com/heymind)). -* Операции `RESTORE` для сущностей доступа требовали больше прав, чем было нужно, из‑за некорректной обработки частичных отзывов привилегий. Этот PR исправляет проблему. Закрывает [#71853](https://github.com/ClickHouse/ClickHouse/issues/71853). [#71958](https://github.com/ClickHouse/ClickHouse/pull/71958) ([pufit](https://github.com/pufit)). -* Исключена пауза после `ALTER TABLE REPLACE/MOVE PARTITION FROM/TO TABLE`. Теперь используются корректные настройки для планирования фоновых задач. [#72024](https://github.com/ClickHouse/ClickHouse/pull/72024) ([Aleksei Filatov](https://github.com/aalexfvk)). -* Исправлена обработка пустых кортежей в некоторых форматах ввода и вывода (например, Parquet, Arrow). [#72616](https://github.com/ClickHouse/ClickHouse/pull/72616) ([Michael Kolupaev](https://github.com/al13n321)). -* Операторы GRANT SELECT/INSERT на уровне столбцов для баз данных и таблиц с подстановочными символами теперь вызывают ошибку. [#72646](https://github.com/ClickHouse/ClickHouse/pull/72646) ([Johann Gan](https://github.com/johanngan)). -* Исправлена проблема, из‑за которой пользователь не может выполнить `REVOKE ALL ON *.*` из‑за неявно выданных привилегий на целевой объект доступа. [#72872](https://github.com/ClickHouse/ClickHouse/pull/72872) ([pufit](https://github.com/pufit)). -* Исправлено форматирование положительных значений часового пояса в скалярной функции formatDateTime. [#73091](https://github.com/ClickHouse/ClickHouse/pull/73091) ([ollidraese](https://github.com/ollidraese)). -* Исправлено определение исходного порта при установлении соединения через PROXYv1 и включённом `auth_use_forwarded_address` — ранее ошибочно использовался порт прокси. Добавлена функция `currentQueryID()`. [#73095](https://github.com/ClickHouse/ClickHouse/pull/73095) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* Пробрасывать настройки формата в `NativeWriter` в `TCPHandler`, чтобы такие настройки, как `output_format_native_write_json_as_string`, применялись корректно. [#73179](https://github.com/ClickHouse/ClickHouse/pull/73179) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлено аварийное завершение работы StorageObjectStorageQueue. [#73274](https://github.com/ClickHouse/ClickHouse/pull/73274) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Исправлен редкий сбой в обновляемом материализованном представлении во время остановки сервера. [#73323](https://github.com/ClickHouse/ClickHouse/pull/73323) ([Michael Kolupaev](https://github.com/al13n321)). -* Теперь плейсхолдер `%f` функции `formatDateTime` всегда генерирует шесть цифр долей секунды. Это делает его поведение совместимым с функцией MySQL `DATE_FORMAT`. Предыдущее поведение можно восстановить с помощью настройки `formatdatetime_f_prints_scale_number_of_digits = 1`. [#73324](https://github.com/ClickHouse/ClickHouse/pull/73324) ([ollidraese](https://github.com/ollidraese)). -* Исправлена фильтрация по столбцу `_etag` при чтении из хранилища `s3` и при использовании табличной функции. [#73353](https://github.com/ClickHouse/ClickHouse/pull/73353) ([Anton Popov](https://github.com/CurtizJ)). -* Исправлена ошибка `Not-ready Set is passed as the second argument for function 'in'`, возникающая при использовании конструкции `IN (subquery)` в выражении `JOIN ON` со старым анализатором. [#73382](https://github.com/ClickHouse/ClickHouse/pull/73382) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Исправлена подготовка к схлопыванию для столбцов Dynamic и JSON. Ранее в некоторых случаях новые типы могли быть записаны в shared variant/shared data, даже если ограничение по количеству типов/путей ещё не было достигнуто. [#73388](https://github.com/ClickHouse/ClickHouse/pull/73388) ([Pavel Kruglov](https://github.com/Avogar)). -* Проверяем размеры на некорректные значения во время двоичного декодирования типов, чтобы избежать чрезмерных выделений памяти. [#73390](https://github.com/ClickHouse/ClickHouse/pull/73390) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена логическая ошибка при чтении из однорепликового кластера при включённых параллельных репликах. [#73403](https://github.com/ClickHouse/ClickHouse/pull/73403) ([Michael Kolupaev](https://github.com/al13n321)). -* Исправлена работа ObjectStorageQueue с ZooKeeper и старыми версиями Keeper. [#73420](https://github.com/ClickHouse/ClickHouse/pull/73420) ([Antonio Andelic](https://github.com/antonio2368)). -* Реализовано исправление, необходимое для включения hive-разбиения по умолчанию. [#73479](https://github.com/ClickHouse/ClickHouse/pull/73479) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Исправлена гонка данных при создании индекса векторного сходства. [#73517](https://github.com/ClickHouse/ClickHouse/pull/73517) ([Antonio Andelic](https://github.com/antonio2368)). -* Исправлена ошибка сегментации (segfault), возникавшая, когда источник словаря содержал функцию с некорректными данными. [#73535](https://github.com/ClickHouse/ClickHouse/pull/73535) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Исправлена логика повторных попыток при неудачной вставке в хранилище S3(Azure)Queue. Закрывает [#70951](https://github.com/ClickHouse/ClickHouse/issues/70951). [#73546](https://github.com/ClickHouse/ClickHouse/pull/73546) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Исправлена ошибка в функции `tupleElement`, которая могла возникать в некоторых случаях для кортежей с элементами типа `LowCardinality` при включённой настройке `optimize_functions_to_subcolumns`. [#73548](https://github.com/ClickHouse/ClickHouse/pull/73548) ([Anton Popov](https://github.com/CurtizJ)). -* Исправлен разбор маски `enum`, после которой следует диапазон. Устраняет проблему [#73473](https://github.com/ClickHouse/ClickHouse/issues/73473). [#73569](https://github.com/ClickHouse/ClickHouse/pull/73569) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Исправлена проблема, при которой параметр parallel_replicas_for_non_replicated_merge_tree игнорировался во вложенных запросах к нереплицируемым таблицам. [#73584](https://github.com/ClickHouse/ClickHouse/pull/73584) ([Igor Nikonov](https://github.com/devcrafter)). -* Исправлено исключение std::logical_error, выбрасываемое, когда задачу не удаётся запланировать. Обнаружено в стресс-тестах. [#73629](https://github.com/ClickHouse/ClickHouse/pull/73629) ([Alexander Gololobov](https://github.com/davenger)). -* Не интерпретировать запросы в `EXPLAIN SYNTAX`, чтобы избежать логических ошибок, связанных с некорректной стадией обработки распределённых запросов. Исправляет [#65205](https://github.com/ClickHouse/ClickHouse/issues/65205). [#73634](https://github.com/ClickHouse/ClickHouse/pull/73634) ([Dmitry Novik](https://github.com/novikd)). -* Исправлена возможная несогласованность данных в динамическом столбце Dynamic. Исправлена потенциальная логическая ошибка `Nested columns sizes are inconsistent with local_discriminators column size`. [#73644](https://github.com/ClickHouse/ClickHouse/pull/73644) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена ошибка `NOT_FOUND_COLUMN_IN_BLOCK` в запросах с `FINAL` и `SAMPLE`. Исправлен некорректный результат в запросах SELECT с `FINAL` к таблицам `CollapsingMergeTree` и включены оптимизации для `FINAL`. [#73682](https://github.com/ClickHouse/ClickHouse/pull/73682) ([Anton Popov](https://github.com/CurtizJ)). -* Исправлена ошибка, приводившая к сбою в LIMIT BY COLUMNS. [#73686](https://github.com/ClickHouse/ClickHouse/pull/73686) ([Raúl Marín](https://github.com/Algunenano)). -* Исправлена ошибка, из-за которой при принудительном использовании обычной проекции и запросе, в точности совпадающем с определением проекции, эта проекция не выбиралась и в результате возникала ошибка. [#73700](https://github.com/ClickHouse/ClickHouse/pull/73700) ([Shichao Jin](https://github.com/jsc0218)). -* Исправлена десериализация структуры Dynamic/Object, что могло приводить к исключениям CANNOT_READ_ALL_DATA. [#73767](https://github.com/ClickHouse/ClickHouse/pull/73767) ([Pavel Kruglov](https://github.com/Avogar)). -* Пропускать файл `metadata_version.txt` при восстановлении частей из резервной копии. [#73768](https://github.com/ClickHouse/ClickHouse/pull/73768) ([Vitaly Baranov](https://github.com/vitlibar)). -* Исправлена ошибка сегментации при приведении к типу Enum с использованием LIKE. [#73775](https://github.com/ClickHouse/ClickHouse/pull/73775) ([zhanglistar](https://github.com/zhanglistar)). -* Исправлена проблема, из-за которой бакет S3 Express не использовался как диск. [#73777](https://github.com/ClickHouse/ClickHouse/pull/73777) ([Sameer Tamsekar](https://github.com/stamsekar)). -* Разрешено объединять строки с некорректными значениями столбца `sign` в таблицах CollapsingMergeTree. [#73864](https://github.com/ClickHouse/ClickHouse/pull/73864) ([Christoph Wurm](https://github.com/cwurm)). -* Исправлена ошибка, возникавшая при выполнении запроса `DDL` с отключенной репликой. [#73876](https://github.com/ClickHouse/ClickHouse/pull/73876) ([Tuan Pham Anh](https://github.com/tuanpach)). -* Исправлена редкая ошибка сравнения типов `map()`, возникавшая из-за возможности создания `Map` без явных имён ('keys','values') для вложенного кортежа. [#73878](https://github.com/ClickHouse/ClickHouse/pull/73878) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* Игнорировать оконные функции при разрешении предложения GROUP BY ALL. Исправляет [#73501](https://github.com/ClickHouse/ClickHouse/issues/73501). [#73916](https://github.com/ClickHouse/ClickHouse/pull/73916) ([Dmitry Novik](https://github.com/novikd)). -* Исправлено поведение неявных привилегий (ранее они работали как подстановочный шаблон). [#73932](https://github.com/ClickHouse/ClickHouse/pull/73932) ([Azat Khuzhin](https://github.com/azat)). -* Исправлено повышенное потребление памяти при создании вложенных Maps. [#73982](https://github.com/ClickHouse/ClickHouse/pull/73982) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправлена обработка вложенного JSON с пустыми ключами. [#73993](https://github.com/ClickHouse/ClickHouse/pull/73993) ([Pavel Kruglov](https://github.com/Avogar)). -* Исправление: псевдоним мог не добавляться в проекцию, если на него ссылался другой псевдоним, а сами псевдонимы были выбраны в обратном порядке. [#74033](https://github.com/ClickHouse/ClickHouse/pull/74033) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* Теперь ошибки «object not found» в Azure игнорируются при инициализации диска plain_rewritable. [#74059](https://github.com/ClickHouse/ClickHouse/pull/74059) ([Julia Kartseva](https://github.com/jkartseva)). -* Исправлено поведение `any` и `anyLast` при работе с типами Enum и пустой таблицей. [#74061](https://github.com/ClickHouse/ClickHouse/pull/74061) ([Joanna Hulboj](https://github.com/jh0x)). -* Исправлена проблема, возникающая, когда пользователь указывает именованные параметры в табличном движке Kafka. [#74064](https://github.com/ClickHouse/ClickHouse/pull/74064) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Исправлена работа изменения настроек хранилища `S3Queue` при смене префикса "s3queue_" на отсутствие префикса и наоборот. [#74075](https://github.com/ClickHouse/ClickHouse/pull/74075) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Добавлена настройка `allow_push_predicate_ast_for_distributed_subqueries`. Она включает проталкивание предикатов (predicate push-down) на основе AST для распределённых запросов с использованием анализатора. Это временное решение, которое будет использоваться до тех пор, пока не появится поддержка распределённых запросов с сериализацией плана запроса. Закрывает [#66878](https://github.com/ClickHouse/ClickHouse/issues/66878) [#69472](https://github.com/ClickHouse/ClickHouse/issues/69472) [#65638](https://github.com/ClickHouse/ClickHouse/issues/65638) [#68030](https://github.com/ClickHouse/ClickHouse/issues/68030) [#73718](https://github.com/ClickHouse/ClickHouse/issues/73718). [#74085](https://github.com/ClickHouse/ClickHouse/pull/74085) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* Исправляет проблему, при которой после [#73095](https://github.com/ClickHouse/ClickHouse/issues/73095) порт может присутствовать в поле forwarded_for, что приводит к невозможности разрешить имя хоста, если в него включён порт. [#74116](https://github.com/ClickHouse/ClickHouse/pull/74116) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* Исправлено некорректное форматирование оператора `ALTER TABLE (DROP STATISTICS ...) (DROP STATISTICS ...)`. [#74126](https://github.com/ClickHouse/ClickHouse/pull/74126) ([Han Fei](https://github.com/hanfei1991)). -* Исправление проблемы [#66112](https://github.com/ClickHouse/ClickHouse/issues/66112). [#74128](https://github.com/ClickHouse/ClickHouse/pull/74128) ([Anton Ivashkin](https://github.com/ianton-ru)). -* Больше нельзя использовать `Loop` в качестве движка таблицы в `CREATE TABLE`. Эта комбинация ранее приводила к сегфолтам. [#74137](https://github.com/ClickHouse/ClickHouse/pull/74137) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Устранена уязвимость безопасности для предотвращения SQL-инъекций в табличных функциях PostgreSQL и SQLite. [#74144](https://github.com/ClickHouse/ClickHouse/pull/74144) ([Pablo Marcos](https://github.com/pamarcos)). -* Исправлена ошибка, приводившая к сбою при чтении подстолбца из сжатой таблицы движка Memory. Исправляет [#74009](https://github.com/ClickHouse/ClickHouse/issues/74009). [#74161](https://github.com/ClickHouse/ClickHouse/pull/74161) ([Nikita Taranov](https://github.com/nickitat)). -* Исправлен бесконечный цикл, возникавший при запросах к system.detached_tables. [#74190](https://github.com/ClickHouse/ClickHouse/pull/74190) ([Konstantin Morozov](https://github.com/k-morozov)). -* Исправлена логическая ошибка в s3queue при пометке файла как завершившегося с ошибкой. [#74216](https://github.com/ClickHouse/ClickHouse/pull/74216) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Исправлены настройки нативного копирования (`allow_s3_native_copy`/`allow_azure_native_copy`) при выполнении `RESTORE` из базовой резервной копии. [#74286](https://github.com/ClickHouse/ClickHouse/pull/74286) ([Azat Khuzhin](https://github.com/azat)). -* Исправлена ошибка, возникавшая, когда число отсоединённых таблиц в базе данных кратно max_block_size. [#74289](https://github.com/ClickHouse/ClickHouse/pull/74289) ([Konstantin Morozov](https://github.com/k-morozov)). -* Исправлено копирование через ObjectStorage (например, S3), если для источника и назначения используются разные учетные данные. [#74331](https://github.com/ClickHouse/ClickHouse/pull/74331) ([Azat Khuzhin](https://github.com/azat)). -* Исправлено определение опции «use the Rewrite method in the JSON API» для нативного копирования в GCS. [#74338](https://github.com/ClickHouse/ClickHouse/pull/74338) ([Azat Khuzhin](https://github.com/azat)). -* Исправлено некорректное вычисление `BackgroundMergesAndMutationsPoolSize` (оно в два раза превышало реальное значение). [#74509](https://github.com/ClickHouse/ClickHouse/pull/74509) ([alesapin](https://github.com/alesapin)). -* Исправлена ошибка утечки наблюдателей Keeper при включённой функции Cluster Discovery. [#74521](https://github.com/ClickHouse/ClickHouse/pull/74521) ([RinChanNOW](https://github.com/RinChanNOWWW)). -* Исправлена проблема с выравниванием памяти, обнаруженная UBSan [#74512](https://github.com/ClickHouse/ClickHouse/issues/74512). [#74534](https://github.com/ClickHouse/ClickHouse/pull/74534) ([Arthur Passos](https://github.com/arthurpassos)). -* Исправлена проблема параллельной очистки KeeperMap при создании таблицы. [#74568](https://github.com/ClickHouse/ClickHouse/pull/74568) ([Antonio Andelic](https://github.com/antonio2368)). -* Не удалять неиспользуемые столбцы проекций в подзапросах при наличии `EXCEPT` или `INTERSECT` для сохранения корректного результата запроса. Исправляет [#73930](https://github.com/ClickHouse/ClickHouse/issues/73930). Исправляет [#66465](https://github.com/ClickHouse/ClickHouse/issues/66465). [#74577](https://github.com/ClickHouse/ClickHouse/pull/74577) ([Dmitry Novik](https://github.com/novikd)). -* Исправлены запросы `INSERT SELECT` между таблицами со столбцами типа `Tuple` при включённой разрежённой сериализации. [#74698](https://github.com/ClickHouse/ClickHouse/pull/74698) ([Anton Popov](https://github.com/CurtizJ)). -* Функция `right` работала некорректно для константного отрицательного смещения. [#74701](https://github.com/ClickHouse/ClickHouse/pull/74701) ([Daniil Ivanik](https://github.com/divanik)). -* Исправлена проблема, из‑за которой вставка gzip‑сжатых данных иногда завершалась сбоем из‑за некорректной распаковки на стороне клиента. [#74707](https://github.com/ClickHouse/ClickHouse/pull/74707) ([siyuan](https://github.com/linkwk7)). -* Частичные операции REVOKE при использовании грантов с подстановочными символами могли отзывать больше привилегий, чем ожидалось. Закрывает [#74263](https://github.com/ClickHouse/ClickHouse/issues/74263). [#74751](https://github.com/ClickHouse/ClickHouse/pull/74751) ([pufit](https://github.com/pufit)). -* Исправление в Keeper: устранена проблема с чтением записей журнала с диска. [#74785](https://github.com/ClickHouse/ClickHouse/pull/74785) ([Antonio Andelic](https://github.com/antonio2368)). -* Исправлена проверка прав для SYSTEM REFRESH/START/STOP VIEW: теперь для выполнения запроса к конкретному представлению не требуется иметь эти права на `*.*`, достаточно прав только на это представление. [#74789](https://github.com/ClickHouse/ClickHouse/pull/74789) ([Alexander Tokmakov](https://github.com/tavplubix)). -* Ранее функция `hasColumnInTable` не учитывала столбцы-алиасы. Исправлена, чтобы также работать со столбцами-алиасами. [#74841](https://github.com/ClickHouse/ClickHouse/pull/74841) ([Bharat Nallan](https://github.com/bharatnc)). -* Исправлена ошибка FILE_DOESNT_EXIST, возникающая при слиянии частей данных для таблицы с пустым столбцом в Azure Blob Storage. [#74892](https://github.com/ClickHouse/ClickHouse/pull/74892) ([Julia Kartseva](https://github.com/jkartseva)). -* Исправлено имя столбца проекции при соединении временных таблиц, закрыт [#68872](https://github.com/ClickHouse/ClickHouse/issues/68872). [#74897](https://github.com/ClickHouse/ClickHouse/pull/74897) ([Vladimir Cherkasov](https://github.com/vdimir)). - -#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement} - -* Универсальный скрипт установки теперь предлагает выполнить установку даже на macOS. [#74339](https://github.com/ClickHouse/ClickHouse/pull/74339) ([Alexey Milovidov](https://github.com/alexey-milovidov)). \ No newline at end of file +:::note +Для 2026 года ещё не вышло новых релизов. +См. список изменений за [2025](/docs/whats-new/changelog/2025). +::: \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-blog/current/profiling-clickhouse-with-llvm-xray.mdx b/i18n/zh/docusaurus-plugin-content-blog/current/profiling-clickhouse-with-llvm-xray.mdx index 0a4f1508718..885b13a6cc8 100644 --- a/i18n/zh/docusaurus-plugin-content-blog/current/profiling-clickhouse-with-llvm-xray.mdx +++ b/i18n/zh/docusaurus-plugin-content-blog/current/profiling-clickhouse-with-llvm-xray.mdx @@ -34,10 +34,10 @@ PROFILE](https://clickhouse.com/docs/sql-reference/statements/system#instrument- 想要分析 `sleepForNanoseconds` 函数的性能,这个函数对于检查运行耗时非常方便。 ```sql -SYSTEM INSTRUMENT ADD `sleepForNanoseconds` PROFILE +SYSTEM INSTRUMENT ADD 'sleepForNanoseconds' PROFILE ``` -然后,让它按我们需要的时间段运行以进行分析,结束后再将其停止。 +然后,让它在我们希望的时间段内运行进行分析,结束后将其停止。 ```sql SYSTEM INSTRUMENT REMOVE ALL diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/_placeholders/changelog/_index.md b/i18n/zh/docusaurus-plugin-content-docs/current/_placeholders/changelog/_index.md deleted file mode 100644 index 6650820ce1d..00000000000 --- a/i18n/zh/docusaurus-plugin-content-docs/current/_placeholders/changelog/_index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -description: '2025 年更新日志' -note: '此文件使用 yarn build 生成' -slug: /whats-new/changelog/ -sidebar_position: 2 -sidebar_label: '2025' -title: '2025 年更新日志' -doc_type: 'changelog' ---- \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md b/i18n/zh/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md index 72522bfc6c1..eb1ee7e3920 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md @@ -83,6 +83,21 @@ doc_type: 'reference' | 名称 | 默认 | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- | +| [allow_experimental_replacing_merge_with_cleanup](/operations/settings/merge-tree-settings#allow_experimental_replacing_merge_with_cleanup) | `0` | +| [allow_experimental_reverse_key](/operations/settings/merge-tree-settings#allow_experimental_reverse_key) | `0` | +| [allow_remote_fs_zero_copy_replication](/operations/settings/merge-tree-settings#allow_remote_fs_zero_copy_replication) | `0` | +| [enable_replacing_merge_with_cleanup_for_min_age_to_force_merge](/operations/settings/merge-tree-settings#enable_replacing_merge_with_cleanup_for_min_age_to_force_merge) | `0` | +| [force_read_through_cache_for_merges](/operations/settings/merge-tree-settings#force_read_through_cache_for_merges) | `0` | +| [merge_selector_algorithm](/operations/settings/merge-tree-settings#merge_selector_algorithm) | `Simple` | +| [merge_selector_enable_heuristic_to_lower_max_parts_to_merge_at_once](/operations/settings/merge-tree-settings#merge_selector_enable_heuristic_to_lower_max_parts_to_merge_at_once) | `0` | +| [merge_selector_heuristic_to_lower_max_parts_to_merge_at_once_exponent](/operations/settings/merge-tree-settings#merge_selector_heuristic_to_lower_max_parts_to_merge_at_once_exponent) | `5` | +| [notify_newest_block_number](/operations/settings/merge-tree-settings#notify_newest_block_number) | `0` | +| [part_moves_between_shards_delay_seconds](/operations/settings/merge-tree-settings#part_moves_between_shards_delay_seconds) | `30` | +| [part_moves_between_shards_enable](/operations/settings/merge-tree-settings#part_moves_between_shards_enable) | `0` | +| [remote_fs_zero_copy_path_compatible_mode](/operations/settings/merge-tree-settings#remote_fs_zero_copy_path_compatible_mode) | `0` | +| [remote_fs_zero_copy_zookeeper_path](/operations/settings/merge-tree-settings#remote_fs_zero_copy_zookeeper_path) | `/clickhouse/zero_copy` | +| [remove_rolled_back_parts_immediately](/operations/settings/merge-tree-settings#remove_rolled_back_parts_immediately) | `1` | +| [shared_merge_tree_virtual_parts_discovery_batch](/operations/settings/merge-tree-settings#shared_merge_tree_virtual_parts_discovery_batch) | `1` | | [allow_experimental_kafka_offsets_storage_in_keeper](/operations/settings/settings#allow_experimental_kafka_offsets_storage_in_keeper) | `0` | | [allow_experimental_delta_lake_writes](/operations/settings/settings#allow_experimental_delta_lake_writes) | `0` | | [automatic_parallel_replicas_mode](/operations/settings/settings#automatic_parallel_replicas_mode) | `0` | @@ -143,21 +158,7 @@ doc_type: 'reference' | [promql_evaluation_time](/operations/settings/settings#promql_evaluation_time) | `auto` | | [allow_experimental_alias_table_engine](/operations/settings/settings#allow_experimental_alias_table_engine) | `0` | | [use_paimon_partition_pruning](/operations/settings/settings#use_paimon_partition_pruning) | `0` | +| [allow_experimental_object_storage_queue_hive_partitioning](/operations/settings/settings#allow_experimental_object_storage_queue_hive_partitioning) | `0` | | [query_plan_optimize_join_order_algorithm](/operations/settings/settings#query_plan_optimize_join_order_algorithm) | `greedy` | -| [allow_experimental_replacing_merge_with_cleanup](/operations/settings/merge-tree-settings#allow_experimental_replacing_merge_with_cleanup) | `0` | -| [allow_experimental_reverse_key](/operations/settings/merge-tree-settings#allow_experimental_reverse_key) | `0` | -| [allow_remote_fs_zero_copy_replication](/operations/settings/merge-tree-settings#allow_remote_fs_zero_copy_replication) | `0` | -| [enable_replacing_merge_with_cleanup_for_min_age_to_force_merge](/operations/settings/merge-tree-settings#enable_replacing_merge_with_cleanup_for_min_age_to_force_merge) | `0` | -| [force_read_through_cache_for_merges](/operations/settings/merge-tree-settings#force_read_through_cache_for_merges) | `0` | -| [merge_selector_algorithm](/operations/settings/merge-tree-settings#merge_selector_algorithm) | `Simple` | -| [merge_selector_enable_heuristic_to_lower_max_parts_to_merge_at_once](/operations/settings/merge-tree-settings#merge_selector_enable_heuristic_to_lower_max_parts_to_merge_at_once) | `0` | -| [merge_selector_heuristic_to_lower_max_parts_to_merge_at_once_exponent](/operations/settings/merge-tree-settings#merge_selector_heuristic_to_lower_max_parts_to_merge_at_once_exponent) | `5` | -| [notify_newest_block_number](/operations/settings/merge-tree-settings#notify_newest_block_number) | `0` | -| [part_moves_between_shards_delay_seconds](/operations/settings/merge-tree-settings#part_moves_between_shards_delay_seconds) | `30` | -| [part_moves_between_shards_enable](/operations/settings/merge-tree-settings#part_moves_between_shards_enable) | `0` | -| [remote_fs_zero_copy_path_compatible_mode](/operations/settings/merge-tree-settings#remote_fs_zero_copy_path_compatible_mode) | `0` | -| [remote_fs_zero_copy_zookeeper_path](/operations/settings/merge-tree-settings#remote_fs_zero_copy_zookeeper_path) | `/clickhouse/zero_copy` | -| [remove_rolled_back_parts_immediately](/operations/settings/merge-tree-settings#remove_rolled_back_parts_immediately) | `1` | -| [shared_merge_tree_virtual_parts_discovery_batch](/operations/settings/merge-tree-settings#shared_merge_tree_virtual_parts_discovery_batch) | `1` | {/*AUTOGENERATED_END*/ } diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_status.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_status.md index fb296835bf6..a2702a678a5 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_status.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_status.md @@ -40,14 +40,25 @@ ClickHouse Cloud 提供不同的发布通道,以满足用户在稳定性、新 \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/development/index.md b/i18n/zh/docusaurus-plugin-content-docs/current/development/index.md index c4918d7fb9d..1ae4c9c328e 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/development/index.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/development/index.md @@ -35,4 +35,4 @@ doc_type: 'landing-page' | [C++ Style Guide](/development/style) | ClickHouse C++ 开发的代码风格规范 | | [Integrating Rust Libraries](/development/integrating_rust_libraries) | 将 Rust 库集成到 ClickHouse 中的指南 | -{ /*AUTOGENERATED_END*/ } +{{/*AUTOGENERATED_END*/ } } diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/annindexes.md b/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/annindexes.md index ba5d6bc91c9..17bc00c997b 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/annindexes.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/annindexes.md @@ -9,6 +9,7 @@ doc_type: 'guide' import ExperimentalBadge from '@theme/badges/ExperimentalBadge'; + # 精确与近似向量搜索 {#exact-and-approximate-vector-search} 在给定多维(向量)空间中的一个点时,寻找与其距离最近的 N 个点的问题,被称为[最近邻搜索](https://en.wikipedia.org/wiki/Nearest_neighbor_search),简称向量搜索。 @@ -34,11 +35,12 @@ LIMIT 可以使用任意可用的[距离函数](/sql-reference/functions/distance-functions)来实现。 `<N>` 指定应返回多少个近邻。 + ## 精确向量搜索 {#exact-nearest-neighbor-search} 可以直接使用上面的 SELECT 查询执行精确向量搜索。 此类查询的运行时间通常与已存储向量的数量及其维度成正比,即数组元素的数量。 -此外,由于 ClickHouse 会对所有向量进行暴力扫描(brute-force scan),运行时间还取决于查询使用的线程数(参见设置 [max_threads](../../../operations/settings/settings.md#max_threads))。 +此外,由于 ClickHouse 会对所有向量进行暴力扫描(brute-force scan),运行时间还取决于查询使用的线程数(参见设置 [max_threads](../../../operations/settings/settings.md#max_threads))。 ### 示例 {#exact-nearest-neighbor-search-example} @@ -64,6 +66,7 @@ LIMIT 3; └────┴─────────┘ ``` + ## 近似向量搜索 {#approximate-nearest-neighbor-search} ### 向量相似度索引 {#vector-similarity-index} @@ -71,7 +74,7 @@ LIMIT 3; ClickHouse 提供了一种专用的“向量相似度”索引,用于执行近似向量搜索。 :::note -向量相似度索引在 ClickHouse 25.8 及更高版本中可用。 +向量相似度索引在 ClickHouse 版本 25.8 及更高版本中可用。 如果遇到问题,请在 [ClickHouse 仓库](https://github.com/clickhouse/clickhouse/issues) 中提交 issue。 ::: @@ -90,7 +93,7 @@ ENGINE = MergeTree ORDER BY [...] ``` -或者,要在现有表上添加向量相似索引: +或者,可以在现有表上添加向量相似度索引: ```sql ALTER TABLE table ADD INDEX vectors TYPE vector_similarity(, , ) [GRANULARITY ]; @@ -143,7 +146,8 @@ ORDER BY [...] 所有 HNSW 专用参数的默认值在大多数用例中都有良好表现。 因此,我们不建议自定义这些 HNSW 专用参数。 -适用以下进一步限制: +此外,还适用以下限制条件: + * 向量相似度索引只能建立在类型为 [Array(Float32)](../../../sql-reference/data-types/array.md)、[Array(Float64)](../../../sql-reference/data-types/array.md) 或 [Array(BFloat16)](../../../sql-reference/data-types/array.md) 的列上。诸如 `Array(Nullable(Float32))` 和 `Array(LowCardinality(Float32))` 这类可为空或低基数浮点数组不被允许。 * 向量相似度索引必须建立在单个列上。 @@ -181,7 +185,7 @@ Memory for in-memory graph (mg) = Number of vectors * hnsw_max_connections_per_l Memory consumption: mv + mg ``` -[dbpedia 数据集](https://huggingface.co/datasets/KShivendu/dbpedia-entities-openai-1M)的示例: +以 [dbpedia 数据集](https://huggingface.co/datasets/KShivendu/dbpedia-entities-openai-1M) 为例: ```text Memory for vectors in the index (mv) = 1 million * 1536 * 2 (for BFloat16) = 3072 MB @@ -190,12 +194,13 @@ Memory for in-memory graph (mg) = 1 million * 64 * 2 * 4 = 512 MB Memory consumption = 3072 + 512 = 3584 MB ``` -上述公式未将向量相似度索引在分配运行时数据结构(例如预分配缓冲区和缓存)时所需的额外内存考虑在内。 +上述公式没有将向量相似度索引在分配运行时数据结构(例如预分配的缓冲区和缓存)时所需的额外内存计算在内。 + #### 使用向量相似度索引 {#using-a-vector-similarity-index} :::note -要使用向量相似度索引,[compatibility](../../../operations/settings/settings.md) 设置必须为 `''`(默认值)或不低于 `'25.1'` 的版本。 +要使用向量相似度索引,设置项 [compatibility](../../../operations/settings/settings.md) 必须为 `''`(默认值),或者 `'25.1'` 及更新版本。 ::: 向量相似度索引支持如下形式的 SELECT 查询: @@ -209,18 +214,18 @@ ORDER BY (vectors, reference_vector) LIMIT ``` -ClickHouse 的查询优化器会尝试匹配上述查询模板,并利用可用的向量相似索引。 -只有当 SELECT 查询中的距离函数与索引定义中的距离函数相同时,查询才能使用向量相似索引。 +ClickHouse 的查询优化器会尝试匹配上述查询模板,并利用可用的向量相似度索引。 +只有当 SELECT 查询中的距离函数与索引定义中的距离函数相同时,查询才能使用向量相似度索引。 -高级用户可以为设置 [hnsw_candidate_list_size_for_search](../../../operations/settings/settings.md#hnsw_candidate_list_size_for_search) 提供自定义值(也称为 HNSW 超参数 "ef_search"),以在搜索过程中调节候选列表的大小(例如 `SELECT [...] SETTINGS hnsw_candidate_list_size_for_search = `)。 -该设置的默认值为 256,在大多数用例中表现良好。 -更高的取值意味着更高的准确性,但会以性能变慢为代价。 +高级用户可以为设置项 [hnsw_candidate_list_size_for_search](../../../operations/settings/settings.md#hnsw_candidate_list_size_for_search)(也称为 HNSW 超参数 "ef_search")提供自定义值,以在搜索过程中调优候选列表的大小(例如 `SELECT [...] SETTINGS hnsw_candidate_list_size_for_search = `)。 +该设置项的默认值 256 在绝大多数用例中表现良好。 +更高的设置值意味着更高的准确性,但会以更慢的性能为代价。 -如果查询可以使用向量相似性索引,ClickHouse 会检查在 SELECT 查询中提供的 LIMIT `` 是否处于合理范围内。 +如果查询可以使用向量相似度索引,ClickHouse 会检查在 SELECT 查询中提供的 LIMIT `` 是否处于合理范围内。 更具体地说,如果 `` 大于设置项 [max_limit_for_vector_search_queries](../../../operations/settings/settings.md#max_limit_for_vector_search_queries) 的值(默认值为 100),则会返回错误。 过大的 LIMIT 值会减慢搜索速度,并且通常表示用法错误。 -要检查某个 SELECT 查询是否使用了向量相似性索引,可以在查询前加上前缀 `EXPLAIN indexes = 1`。 +要检查某个 SELECT 查询是否使用了向量相似度索引,可以在查询前加上前缀 `EXPLAIN indexes = 1`。 例如,查询 @@ -256,11 +261,11 @@ LIMIT 10; ``` 在这个示例中,[dbpedia dataset](https://huggingface.co/datasets/KShivendu/dbpedia-entities-openai-1M) 中的 100 万个向量(每个向量维度为 1536)被存储在 575 个 granule 中,即每个 granule 约 1.7k 行。 -查询请求 10 个近邻,向量相似度索引在 10 个不同的 granule 中找到了这 10 个近邻。 +查询请求 10 个近邻,向量相似性索引在 10 个不同的 granule 中找到了这 10 个近邻。 在查询执行过程中会读取这 10 个 granule。 -如果输出中包含 `Skip` 以及向量索引的名称和类型(在示例中为 `idx` 和 `vector_similarity`),则表示使用了向量相似度索引。 -在这种情况下,向量相似度索引丢弃了 4 个 granule 中的 2 个,即丢弃了 50% 的数据。 +如果输出中包含 `Skip` 以及向量索引的名称和类型(在示例中为 `idx` 和 `vector_similarity`),则表示使用了向量相似性索引。 +在这种情况下,向量相似性索引丢弃了 4 个 granule 中的 2 个,即丢弃了 50% 的数据。 能够丢弃的 granule 越多,索引的使用就越高效。 :::tip @@ -273,20 +278,21 @@ LIMIT 10; ClickHouse 将使用后过滤或预过滤策略来评估这些过滤条件。 简而言之,这两种策略决定了过滤条件的执行顺序: -* 后过滤表示首先评估向量相似度索引,然后 ClickHouse 再评估 `WHERE` 子句中指定的额外过滤条件。 +* 后过滤表示首先评估向量相似性索引,然后 ClickHouse 再评估 `WHERE` 子句中指定的额外过滤条件。 * 预过滤表示过滤条件的评估顺序相反。 这两种策略有不同的权衡: -* 后过滤的一个普遍问题在于,它可能返回少于 `LIMIT ` 子句所请求的行数。当由向量相似度索引返回的一个或多个结果行无法满足附加过滤条件时,就会出现这种情况。 -* 预过滤在总体上仍是一个未解决的问题。某些专用向量数据库提供了预过滤算法,但大多数关系型数据库(包括 ClickHouse)会退回到精确近邻搜索,即不使用索引的暴力扫描。 -采用何种策略取决于过滤条件。 +* 后过滤有一个普遍问题:当向量相似度索引返回的一条或多条结果行未能满足附加过滤条件时,最终返回的行数可能少于 `LIMIT <N>` 子句中请求的行数。 +* 预过滤在总体上仍然是一个尚未解决的问题。某些专用向量数据库提供了预过滤算法,但大多数关系型数据库(包括 ClickHouse)会退回到精确邻居搜索,即不使用索引的穷举扫描。 + +使用哪种策略取决于过滤条件。 *附加过滤条件是分区键的一部分* -如果附加过滤条件是分区键的一部分,那么 ClickHouse 将应用分区裁剪。 -例如,某个表按列 `year` 进行范围分区,并运行如下查询: +如果附加过滤条件是分区键的一部分,则 ClickHouse 会执行分区裁剪(partition pruning)。 +例如,某个表按 `year` 列进行范围分区,并运行如下查询: ```sql WITH [0., 2.] AS reference_vec @@ -297,11 +303,11 @@ ORDER BY L2Distance(vec, reference_vec) ASC LIMIT 3; ``` -ClickHouse 将裁剪除 2025 分区外的所有分区。 +ClickHouse 将裁剪掉除 2025 分区之外的所有分区。 -*无法使用索引计算的额外过滤条件* +*无法使用索引评估的附加过滤条件* -如果额外过滤条件无法通过索引(主键索引、跳跃索引)进行计算,ClickHouse 将在扫描结果上执行后置过滤。 +如果附加过滤条件无法使用索引(主键索引、skipping index)进行评估,ClickHouse 将执行后过滤。 *可以使用主键索引评估的附加过滤条件* @@ -332,10 +338,10 @@ LIMIT 10 ``` 假设只有极少数书籍的价格低于 2 美元,后过滤(post-filtering)可能会返回零行,因为向量索引返回的前 10 个匹配结果的价格可能全部高于 2 美元。 -通过强制使用预过滤(在查询中添加 `SETTINGS vector_search_filter_strategy = 'prefilter'`),ClickHouse 会先找到所有价格低于 2 美元的书籍,然后对这些书籍执行穷举(brute-force)向量搜索。 +通过强制使用预过滤(在查询中添加 `SETTINGS vector_search_filter_strategy = 'prefilter'`),ClickHouse 会先找到所有价格低于 2 美元的书籍,然后对这些书籍执行一次穷举式(brute-force)向量搜索。 作为解决上述问题的另一种方法,可以将 [vector_search_index_fetch_multiplier](../../../operations/settings/settings#vector_search_index_fetch_multiplier)(默认值:`1.0`,最大值:`1000.0`)配置为大于 `1.0` 的值(例如 `2.0`)。 -从向量索引中获取的最近邻数量会乘以该设置的值,然后再对这些行应用额外过滤条件,以返回满足 LIMIT 的行数。 +从向量索引中获取的最近邻数量会乘以该设置的值,然后在这些行上应用额外过滤条件,以返回满足 LIMIT 的行数。 例如,我们可以再次进行查询,但将 multiplier 设置为 `3.0`: ```sql @@ -353,6 +359,7 @@ ClickHouse 将在每个 part 中的向量索引中获取 3.0 x 10 = 30 个最近 **重新打分(Rescoring)** + ClickHouse 中的 skip index 通常在 granule 级别进行过滤,即对 skip index 的一次查找(在内部)会返回一个潜在匹配 granule 的列表,从而减少后续扫描中需要读取的数据量。 这对一般的 skip index 效果很好,但在向量相似度索引的场景中,会造成一个“粒度不匹配(granularity mismatch)”的问题。 更具体地说,向量相似度索引会为给定的参考向量确定 N 个最相似向量的行号,但接下来需要将这些行号外推为 granule 编号。 @@ -396,16 +403,17 @@ Query id: a2a9d0c8-a525-45c1-96ca-c5a11fa66f47 ``` :::note -在未启用重打分(`vector_search_with_rescoring = 0`)且启用了并行副本的情况下运行的查询,可能会回退为执行重打分。 +在禁用重新打分(`vector_search_with_rescoring = 0`)且启用并行副本的情况下运行的查询,仍可能回退为执行重新打分。 ::: + #### 性能调优 {#performance-tuning} **压缩调优** 在几乎所有使用场景中,底层列中的向量都是稠密的,且压缩效果不佳。 因此,[压缩](/sql-reference/statements/create/table.md#column_compression_codec) 会降低向量列的写入和读取性能。 -因此我们建议禁用压缩。 +我们因此建议禁用压缩。 为此,请像下面这样为向量列指定 `CODEC(NONE)`: ```sql @@ -414,8 +422,8 @@ CREATE TABLE tab(id Int32, vec Array(Float32) CODEC(NONE), INDEX idx vec TYPE ve **调优索引创建** -向量相似度索引的生命周期与数据分片(part)的生命周期绑定。 -换句话说,每当创建一个定义了向量相似度索引的新分片时,索引也会随之创建。 +向量相似度索引的生命周期与分区片段(part)的生命周期绑定。 +换句话说,每当创建一个定义了向量相似度索引的新分区片段时,索引也会随之创建。 这通常发生在数据被[插入](https://clickhouse.com/docs/guides/inserting-data)时或在[合并](https://clickhouse.com/docs/merges)过程中。 众所周知,HNSW 的索引创建耗时较长,会显著拖慢插入和合并操作。 向量相似度索引在理想情况下只应用于不可变或很少变更的数据。 @@ -426,29 +434,31 @@ CREATE TABLE tab(id Int32, vec Array(Float32) CODEC(NONE), INDEX idx vec TYPE ve 索引创建线程的最大数量可以通过服务器设置 [max_build_vector_similarity_index_thread_pool_size](/operations/server-configuration-parameters/settings#max_build_vector_similarity_index_thread_pool_size) 进行配置。 为获得最佳性能,该设置值应配置为 CPU 核心数。 -其次,为了加速 INSERT 语句,用户可以通过会话设置 [materialize_skip_indexes_on_insert](../../../operations/settings/settings.md#materialize_skip_indexes_on_insert) 禁用在新插入分片上创建跳过索引(skipping index)。 -对此类分片执行的 SELECT 查询将回退为精确搜索。 -由于插入分片相对于整个表的大小通常较小,因此这种回退带来的性能影响预计可以忽略不计。 +其次,为了加速 INSERT 语句,用户可以通过会话设置 [materialize_skip_indexes_on_insert](../../../operations/settings/settings.md#materialize_skip_indexes_on_insert) 禁用在新插入分区片段上创建跳过索引(skipping index)。 +对此类分区片段执行的 SELECT 查询将回退为精确搜索。 +由于插入分区片段相对于整个表的大小通常较小,因此这种回退带来的性能影响预计可以忽略不计。 -第三,为了加速合并,用户可以通过会话设置 [materialize_skip_indexes_on_merge](../../../operations/settings/merge-tree-settings.md#materialize_skip_indexes_on_merge) 禁用在合并后的分片上创建跳过索引。 +第三,为了加速合并,用户可以通过会话设置 [materialize_skip_indexes_on_merge](../../../operations/settings/merge-tree-settings.md#materialize_skip_indexes_on_merge) 禁用在合并后的分区片段上创建跳过索引。 这与语句 [ALTER TABLE [...] MATERIALIZE INDEX [...]](../../../sql-reference/statements/alter/skipping-index.md#materialize-index) 结合使用,可以对向量相似度索引的生命周期进行显式控制。 例如,可以将索引创建延后到所有数据都已摄取完成之后,或延后到系统负载较低的时间段(例如周末)。 **调优索引用法** -为了执行 `SELECT` 查询并使用向量相似度索引,需要先将这些索引加载到主内存中。 -为避免同一个向量相似度索引被反复加载到主内存,ClickHouse 提供了专用的内存缓存来存储此类索引。 -该缓存越大,不必要的加载就越少。 +SELECT 查询在使用向量相似度索引时,需要将这些索引加载到主内存中。 +为了避免同一个向量相似度索引被反复加载到主内存中,ClickHouse 为此类索引提供了专用的内存缓存。 +缓存越大,不必要的加载就越少。 最大缓存大小可以通过服务器设置 [vector_similarity_index_cache_size](../../../operations/server-configuration-parameters/settings.md#vector_similarity_index_cache_size) 进行配置。 -默认情况下,缓存最大可增长到 5 GB。 +默认情况下,缓存最大可以增长到 5 GB。 :::note -向量相似度索引缓存存储的是向量索引的 granule(粒度单元)。 -如果单个向量索引 granule 的大小超过缓存大小,则不会被缓存。 -因此,请务必根据 “Estimating storage and memory consumption” 中的公式或 [system.data_skipping_indices](../../../operations/system-tables/data_skipping_indices) 计算向量索引大小,并据此合理设置缓存大小。 +向量相似度索引缓存存储的是向量索引粒度(granule)。 +如果单个向量索引粒度的大小超过缓存大小,则不会被缓存。 +因此,请务必根据“估算存储与内存消耗”中的公式或 [system.data_skipping_indices](../../../operations/system-tables/data_skipping_indices) 计算向量索引大小,并相应地设置缓存大小。 ::: -当前向量相似度索引缓存的大小可以在 [system.metrics](../../../operations/system-tables/metrics.md) 中查看: +*我们再次强调,在排查向量搜索查询变慢的问题时,首先应当检查并在必要时增大向量索引缓存。* + +向量相似度索引缓存的当前大小可以在 [system.metrics](../../../operations/system-tables/metrics.md) 中查看: ```sql SELECT metric, value @@ -456,7 +466,7 @@ FROM system.metrics WHERE metric = 'VectorSimilarityIndexCacheBytes' ``` -可以从 [system.query_log](../../../operations/system-tables/query_log.md) 中获取某个查询 ID 对应查询的缓存命中和未命中情况: +具有某个 query id 的查询的缓存命中和未命中情况可以在 [system.query_log](../../../operations/system-tables/query_log.md) 中查看: ```sql SYSTEM FLUSH LOGS query_log; @@ -467,13 +477,14 @@ WHERE type = 'QueryFinish' AND query_id = '<...>' ORDER BY event_time_microseconds; ``` -对于生产环境的使用场景,我们建议将缓存配置得足够大,使所有向量索引始终都能常驻内存。 +对于生产环境的使用场景,我们建议将缓存设置得足够大,以便所有向量索引始终保留在内存中。 **量化调优** -[量化](https://huggingface.co/blog/embedding-quantization) 是一种用于减少向量内存占用,以及降低构建和遍历向量索引计算成本的技术。 +[量化](https://huggingface.co/blog/embedding-quantization)是一种技术,用于减少向量的内存占用以及构建和遍历向量索引的计算成本。 ClickHouse 向量索引支持以下量化选项: + | Quantization | Name | Storage per dimension | | -------------- | ---------------------------- | --------------------- | | f32 | Single precision | 4 bytes | @@ -507,15 +518,15 @@ result = chclient.query( parameters = params) ``` -嵌入向量(上面代码片段中的 `search_v`)的维度可能非常大。 -例如,OpenAI 提供的模型会生成维度为 1536 甚至 3072 的嵌入向量。 -在上面的代码中,ClickHouse Python 驱动会将嵌入向量替换为一个可读的字符串,然后将整个 SELECT 查询作为字符串发送。 -假设嵌入向量由 1536 个单精度浮点值组成,发送的字符串长度将达到 20 kB。 -这会在分词、解析以及执行数千次字符串到浮点数转换时造成较高的 CPU 使用率。 -此外,ClickHouse 服务器日志文件也需要大量空间,进而导致 `system.query_log` 膨胀。 +嵌入向量(上面代码片段中的 `search_v`)可能具有非常高的维度。 +例如,OpenAI 提供的模型可以生成 1536 维甚至 3072 维的嵌入向量。 +在上述代码中,ClickHouse 的 Python 驱动会将嵌入向量替换成人类可读的字符串,并随后将整个 SELECT 查询作为字符串发送。 +假设嵌入向量由 1536 个单精度浮点值组成,发送的字符串长度可达到 20 kB。 +这会在分词、解析以及执行成千上万次字符串到浮点数转换时带来很高的 CPU 开销。 +同时,ClickHouse 服务器日志文件也需要占用大量空间,并导致 `system.query_log` 膨胀。 -请注意,大多数 LLM 模型返回的嵌入向量是由原生浮点数组成的列表或 NumPy 数组。 -因此,我们建议 Python 应用以二进制形式绑定参考向量参数,使用如下方式: +请注意,大多数 LLM 模型返回的嵌入向量是一个由原生浮点数构成的列表或 NumPy 数组。 +因此,我们建议 Python 应用程序使用如下方式,以二进制形式绑定参考向量参数: ```python search_v = openai_client.embeddings.create(input = "[Good Books]", model='text-embedding-3-large', dimensions=1536).data[0].embedding @@ -523,17 +534,18 @@ search_v = openai_client.embeddings.create(input = "[Good Books]", model='text-e params = {'$search_v_binary$': np.array(search_v, dtype=np.float32).tobytes()} result = chclient.query( "SELECT id FROM items - ORDER BY cosineDistance(vector, (SELECT reinterpret($search_v_binary$, 'Array(Float32)'))) + ORDER BY cosineDistance(vector, reinterpret($search_v_binary$, 'Array(Float32)')) LIMIT 10" parameters = params) ``` -在本示例中,参考向量以原始二进制形式发送到服务器,并在服务器端被重新解释为浮点数数组。 -这可以节省服务器端的 CPU 时间,并避免服务器日志和 `system.query_log` 的膨胀。 +在该示例中,参考向量按原样以二进制形式发送,并在服务器端被重新解释为浮点数数组。 +这可以节省服务器端的 CPU 时间,并避免导致服务器日志和 `system.query_log` 膨胀。 + #### 管理和监控 {#administration} -向量相似性索引在磁盘上的大小可以通过 [system.data_skipping_indices](../../../operations/system-tables/data_skipping_indices) 获取: +向量相似度索引在磁盘上的大小可以通过 [system.data_skipping_indices](../../../operations/system-tables/data_skipping_indices) 获取: ```sql SELECT database, table, name, formatReadableSize(data_compressed_bytes) @@ -549,6 +561,7 @@ WHERE type = 'vector_similarity'; └──────────┴───────┴──────┴──────────────────────────┘ ``` + #### 与常规跳过索引的区别 {#differences-to-regular-skipping-indexes} 与所有常规[跳过索引](/optimize/skipping-indexes)类似,向量相似度索引也是在 granule 之上构建的,每个已建立索引的块由 `GRANULARITY = [N]` 个 granule 组成(对普通跳过索引而言,`[N]` 默认为 1)。 @@ -565,14 +578,14 @@ WHERE type = 'vector_similarity'; 这与常规跳过索引不同,后者是以索引块粒度来跳过数据的。 `GRANULARITY` 参数决定会创建多少个向量相似度子索引。 -更大的 `GRANULARITY` 值意味着子索引更少但更大,极端情况下,一个列(或列的数据分片)只会有单个子索引。 -在这种情况下,该子索引对该列的所有行具有“全局”视图,并且可以直接返回该列(分片)中所有包含相关行的 granule(最多只有 `LIMIT [N]` 个这样的 granule)。 -在第二步中,ClickHouse 会加载这些 granule,并通过对这些 granule 中的所有行执行穷举式距离计算来识别真正最优的行。 -当 `GRANULARITY` 值较小时,每个子索引会返回最多 `LIMIT N` 个 granule。 -结果是需要加载更多 granule 并进行后置过滤。 -请注意,两种情况下的搜索精度同样高,只是处理性能不同。 -通常建议为向量相似度索引使用较大的 `GRANULARITY`,只有在出现例如向量相似度结构内存占用过高等问题时,才改用较小的 `GRANULARITY` 值。 -如果没有为向量相似度索引指定 `GRANULARITY`,则默认值为 1 亿。 +较大的 `GRANULARITY` 值意味着数量更少但规模更大的向量相似度子索引,直到某一列(或某列的数据 part)只剩下一个子索引为止。 +在这种情况下,该子索引对该列的所有行具有“全局”视图,并且可以直接返回该列(part)中包含相关行的所有 granule(此类 granule 的数量最多为 `LIMIT [N]` 个)。 +在第二步中,ClickHouse 会加载这些 granule,并通过对这些 granule 中所有行执行暴力距离计算来确定真正最优的行。 +当 `GRANULARITY` 值较小时,每个子索引最多返回 `LIMIT N` 个 granule。 +因此,需要加载和后过滤的 granule 会更多。 +请注意,两种情况下的搜索精度是相同的,只是处理性能不同。 +通常建议为向量相似度索引使用较大的 `GRANULARITY`,仅在出现诸如向量相似度结构占用内存过多等问题时,才退回使用较小的 `GRANULARITY` 值。 +如果没有为向量相似度索引显式指定 `GRANULARITY`,其默认值为 1 亿。 #### 示例 {#approximate-nearest-neighbor-search-example} @@ -588,7 +601,7 @@ ORDER BY L2Distance(vec, reference_vec) ASC LIMIT 3; ``` -返回值 +返回: ```result ┌─id─┬─vec─────┐ @@ -605,6 +618,7 @@ LIMIT 3; * [dbpedia](../../../getting-started/example-datasets/dbpedia-dataset) * [hackernews](../../../getting-started/example-datasets/hackernews-vector-search-dataset) + ### 量化比特(QBit) {#approximate-nearest-neighbor-search-qbit} @@ -620,11 +634,11 @@ ClickHouse 提供了 Quantized Bit(`QBit`)数据类型,通过以下方式 1. 存储原始的全精度数据。 2. 允许在查询时指定量化精度。 -这是通过以按位分组(bit-grouped)格式存储数据实现的(即将所有向量的第 i 位比特存放在一起),从而只在请求的精度级别进行读取。这样,你可以在保留全部原始数据、按需访问的前提下,从量化带来的 I/O 和计算量减少中获得速度优势。当选择最大精度时,搜索结果即为精确匹配。 +这是通过以按位分组(bit-grouped)的格式存储数据(即所有向量的第 i 个比特位被存储在一起)来实现的,从而仅按请求的精度级别进行读取。这样既可以通过量化减少 I/O 和计算量以获得速度优势,又能在需要时保留所有原始数据可用。当选择最大精度时,搜索将变为精确搜索。 :::note -`QBit` 数据类型及其相关距离函数目前是实验特性。要启用它们,请运行 `SET allow_experimental_qbit_type = 1`。 -如果遇到问题,请在 [ClickHouse 代码仓库](https://github.com/clickhouse/clickhouse/issues) 中提交 issue。 +`QBit` 数据类型及其相关距离函数目前为实验特性。要启用它们,请运行 `SET allow_experimental_qbit_type = 1`。 +如果遇到问题,请在 [ClickHouse 仓库](https://github.com/clickhouse/clickhouse/issues) 中提交 issue。 ::: 要声明一个 `QBit` 类型的列,请使用以下语法: @@ -635,8 +649,9 @@ column_name QBit(element_type, dimension) 其中: -* `element_type` – 每个向量元素的类型。支持的类型包括 `BFloat16`、`Float32` 和 `Float64` -* `dimension` – 每个向量中的元素个数 +* `element_type` – 每个向量元素的类型。支持的类型有 `BFloat16`、`Float32` 和 `Float64` +* `dimension` – 每个向量中的元素数量 + #### 创建 `QBit` 表并添加数据 {#qbit-create} @@ -656,6 +671,7 @@ INSERT INTO fruit_animal VALUES ('horse', [-0.61435682, 0.48542571, 1.21091247, -0.62530446, -1.33082533]); ``` + #### 使用 `QBit` 进行向量搜索 {#qbit-search} 我们使用 L2 距离查找与表示单词 “lemon” 的向量最接近的邻居向量。距离函数的第三个参数指定精度的位数——值越高,精度越高,但计算量也越大。 @@ -683,7 +699,7 @@ ORDER BY distance; └────────┴─────────────────────┘ ``` -**低精度搜索:** +**降精度搜索:** ```sql SELECT @@ -704,12 +720,13 @@ ORDER BY distance; └────────┴────────────────────┘ ``` -请注意,使用 12 位量化时,我们在加快查询执行的同时,依然能够很好地逼近实际距离。相对排序基本保持一致,`apple` 仍然是距离最近的匹配项。 +请注意,在使用 12 位量化时,我们能够以更快的查询执行速度获得较为准确的距离近似结果。相对排序基本保持一致,`apple` 仍然是最接近的匹配项。 :::note -在目前的状态下,加速主要来自减少 I/O,因为我们读取的数据更少。如果原始数据比较“宽”,例如 `Float64`,选择更低的精度时,距离计算依然会在相同宽度的数据上进行——只是精度更低。 +在当前实现中,加速效果来自于 I/O 的减少,因为我们读取的数据更少。如果原始数据是较宽的类型,比如 `Float64`,即使选择了更低的精度,距离计算仍然会在相同宽度的数据上进行——只是精度有所降低。 ::: + #### 性能考量 {#qbit-performance} `QBit` 的性能收益主要来源于 I/O 操作的减少:在使用较低精度时,需要从存储中读取的数据量更少。此外,当 `QBit` 中包含 `Float32` 数据且精度参数为 16 或更低时,还可以通过减少计算获得额外收益。精度参数直接控制准确性与速度之间的权衡: @@ -720,5 +737,6 @@ ORDER BY distance; ### 参考资料 {#references} 博客: + - [Vector Search with ClickHouse - Part 1](https://clickhouse.com/blog/vector-search-clickhouse-p1) -- [Vector Search with ClickHouse - Part 2](https://clickhouse.com/blog/vector-search-clickhouse-p2) +- [Vector Search with ClickHouse - Part 2](https://clickhouse.com/blog/vector-search-clickhouse-p2) \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/mergetree.md b/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/mergetree.md index 0d3a825881b..8ba1b0e9d60 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/mergetree.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/mergetree.md @@ -401,7 +401,7 @@ bloom_filter([false_positive_rate]) * `Map` :::note Map 数据类型:指定针对键或值创建索引 -对于 `Map` 数据类型,客户端可以通过使用 [`mapKeys`](/sql-reference/functions/tuple-map-functions.md/#mapkeys) 或 [`mapValues`](/sql-reference/functions/tuple-map-functions.md/#mapvalues) 函数指定索引应针对键还是针对值创建。 +对于 `Map` 数据类型,客户端可以通过使用 [`mapKeys`](/sql-reference/functions/tuple-map-functions.md/#mapKeys) 或 [`mapValues`](/sql-reference/functions/tuple-map-functions.md/#mapValues) 函数指定索引应针对键还是针对值创建。 ::: @@ -533,7 +533,10 @@ sparse_grams(min_ngram_length, max_ngram_length, min_cutoff_length, size_of_bloo | [hasTokenCaseInsensitiveOrNull(`*`)](/sql-reference/functions/string-search-functions.md/#hasTokenCaseInsensitiveOrNull) | ✗ | ✗ | ✗ | ✔ | ✗ | ✗ | ✗ | | [hasAnyTokens](/sql-reference/functions/string-search-functions.md/#hasAnyTokens) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | | [hasAllTokens](/sql-reference/functions/string-search-functions.md/#hasAllTokens) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | -| [mapContains](/sql-reference/functions/tuple-map-functions#mapcontains) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | +| [mapContains (mapContainsKey)](/sql-reference/functions/tuple-map-functions#mapContainsKey) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | +| [mapContainsKeyLike](/sql-reference/functions/tuple-map-functions#mapContainsKeyLike) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | +| [mapContainsValue](/sql-reference/functions/tuple-map-functions#mapContainsValue) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | +| [mapContainsValueLike](/sql-reference/functions/tuple-map-functions#mapContainsValueLike) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | 对于常量参数小于 ngram 大小的函数,`ngrambf_v1` 不能用于查询优化。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/textindexes.md b/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/textindexes.md index 8ffdac50ee7..1b2c912c646 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/textindexes.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/textindexes.md @@ -28,7 +28,7 @@ ClickHouse 中的文本索引(也称为["倒排索引"](https://en.wikipedia.o SET enable_full_text_index = true; ``` -可以使用以下语法在 [String](/sql-reference/data-types/string.md)、[FixedString](/sql-reference/data-types/fixedstring.md)、[Array(String)](/sql-reference/data-types/array.md)、[Array(FixedString)](/sql-reference/data-types/array.md) 以及 [Map](/sql-reference/data-types/map.md)(通过 [mapKeys](/sql-reference/functions/tuple-map-functions.md/#mapkeys) 和 [mapValues](/sql-reference/functions/tuple-map-functions.md/#mapvalues) map 函数)列上定义文本索引: +可以使用以下语法在 [String](/sql-reference/data-types/string.md)、[FixedString](/sql-reference/data-types/fixedstring.md)、[Array(String)](/sql-reference/data-types/array.md)、[Array(FixedString)](/sql-reference/data-types/array.md) 以及 [Map](/sql-reference/data-types/map.md)(通过 [mapKeys](/sql-reference/functions/tuple-map-functions.md/#mapKeys) 和 [mapValues](/sql-reference/functions/tuple-map-functions.md/#mapValues) map 函数)列上定义文本索引: ```sql CREATE TABLE tab @@ -323,7 +323,7 @@ SELECT count() FROM tab WHERE has(array, 'clickhouse'); #### `mapContains` {#functions-example-mapcontains} -函数 [mapContains](/sql-reference/functions/tuple-map-functions#mapcontains)(是 `mapContainsKey` 的别名)用于在 map 的键中匹配单个词元。 +函数 [mapContains](/sql-reference/functions/tuple-map-functions#mapContainsKey)(是 `mapContainsKey` 的别名)用于在 map 的键中匹配单个词元。 示例: @@ -334,6 +334,18 @@ SELECT count() FROM tab WHERE mapContains(map, 'clickhouse'); ``` +#### `mapContainsKeyLike` 和 `mapContainsValueLike` {#functions-example-mapcontainslike} + +函数 [mapContainsKeyLike](/sql-reference/functions/tuple-map-functions#mapContainsKeyLike) 和 [mapContainsValueLike](/sql-reference/functions/tuple-map-functions#mapContainsValueLike) 会针对 map 的所有键或所有值(分别)进行模式匹配。 + +示例: + +```sql +SELECT count() FROM tab WHERE mapContainsKeyLike(map, '% clickhouse %'); +SELECT count() FROM tab WHERE mapContainsValueLike(map, '% clickhouse %'); +``` + + #### `operator[]` {#functions-example-access-operator} [operator[]](/sql-reference/operators#access-operators) 访问运算符可以与文本索引配合使用,以过滤键和值。 @@ -414,14 +426,14 @@ SELECT count() FROM logs WHERE has(mapValues(attributes), '192.168.1.1'); -- slo 随着日志量增加,这些查询会变慢。 可以通过为 [Map](/sql-reference/data-types/map.md) 的键和值创建文本索引来解决。 -当需要按字段名或属性类型查找日志时,可使用 [mapKeys](/sql-reference/functions/tuple-map-functions.md/#mapkeys) 来创建文本索引: +当需要按字段名或属性类型查找日志时,可使用 [mapKeys](/sql-reference/functions/tuple-map-functions.md/#mapKeys) 来创建文本索引: ```sql ALTER TABLE logs ADD INDEX attributes_keys_idx mapKeys(attributes) TYPE text(tokenizer = array); ALTER TABLE posts MATERIALIZE INDEX attributes_keys_idx; ``` -在需要在属性的实际内容中执行搜索时,使用 [mapValues](/sql-reference/functions/tuple-map-functions.md/#mapvalues) 来创建文本索引: +当需要在属性值的实际内容中进行搜索时,可以使用 [mapValues](/sql-reference/functions/tuple-map-functions.md/#mapValues) 来创建文本索引: ```sql ALTER TABLE logs ADD INDEX attributes_vals_idx mapValues(attributes) TYPE text(tokenizer = array); @@ -436,6 +448,9 @@ SELECT * FROM logs WHERE mapContainsKey(attributes, 'rate_limit'); -- fast -- Finds all logs from a specific IP: SELECT * FROM logs WHERE has(mapValues(attributes), '192.168.1.1'); -- fast + +-- Finds all logs where any attribute includes an error: +SELECT * FROM logs WHERE mapContainsValueLike(attributes, '% error %'); -- fast ``` @@ -526,6 +541,7 @@ EXPLAIN PLAN 的第二个输出包含一个虚拟列 `__text_index__ 当前提供针对文本索引的反序列化字典块、头部和倒排列表的缓存,以减少 I/O。 可以通过设置 [use_text_index_dictionary_cache](/operations/settings/settings#use_text_index_dictionary_cache)、[use_text_index_header_cache](/operations/settings/settings#use_text_index_header_cache) 和 [use_text_index_postings_cache](/operations/settings/settings#use_text_index_postings_cache) 来启用这些缓存。 默认情况下,所有缓存均处于禁用状态。 +若要清除这些缓存,请使用语句 [SYSTEM DROP TEXT INDEX CACHES](../../../sql-reference/statements/system#drop-text-index-caches)。 请参考以下服务器设置来配置这些缓存。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/index.md b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/index.md index 33198ff6245..2412fc48fb3 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/index.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/index.md @@ -1,12 +1,18 @@ --- sidebar_label: '从 MySQL 向 ClickHouse 摄取数据' -description: '介绍如何将 MySQL 无缝连接到 ClickHouse Cloud。' +description: '将 MySQL 或 MariaDB 数据库中的数据无缝摄取到 ClickHouse Cloud。' slug: /integrations/clickpipes/mysql title: '从 MySQL 向 ClickHouse 摄取数据(使用 CDC)' doc_type: 'guide' keywords: ['MySQL', 'ClickPipes', 'CDC', '变更数据捕获', '数据库复制'] --- +import Aurorasvg from '@site/static/images/integrations/logos/amazon_aurora.svg'; +import AFSsvg from '@site/static/images/integrations/logos/azure_database_mysql.svg'; +import CloudSQLsvg from '@site/static/images/integrations/logos/gcp_cloudsql.svg'; +import MariaDBsvg from '@site/static/images/integrations/logos/mariadb.svg'; +import MySQLsvg from '@site/static/images/integrations/logos/mysql.svg'; +import RDSsvg from '@site/static/images/integrations/logos/amazon_rds.svg'; import BetaBadge from '@theme/badges/BetaBadge'; import cp_service from '@site/static/images/integrations/data-ingestion/clickpipes/cp_service.png'; import cp_step0 from '@site/static/images/integrations/data-ingestion/clickpipes/cp_step0.png'; @@ -17,33 +23,38 @@ import select_destination_db from '@site/static/images/integrations/data-ingesti import ch_permissions from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/ch-permissions.jpg' import Image from '@theme/IdealImage'; -# 使用 CDC 将数据从 MySQL 摄取到 ClickHouse {#ingesting-data-from-mysql-to-clickhouse-using-cdc} + +# 将数据从 MySQL 摄取到 ClickHouse(使用 CDC) {#ingesting-data-from-mysql-to-clickhouse-using-cdc} :::info -通过 ClickPipes 将数据从 MySQL 摄取到 ClickHouse Cloud 目前处于公测阶段。 +通过 ClickPipes 将数据从 MySQL 摄取到 ClickHouse Cloud 目前处于公开测试阶段。 ::: -你可以使用 ClickPipes 将源 MySQL 数据库中的数据摄取到 ClickHouse Cloud。源 MySQL 数据库可以部署在本地环境,或托管在 Amazon RDS、Google Cloud SQL 等云服务上。 - -## 前置条件 {#prerequisites} +MySQL ClickPipe 提供了一种完全托管且高可靠的方式,将 MySQL 和 MariaDB 数据库中的数据摄取到 ClickHouse Cloud 中。它同时支持用于一次性摄取的 **批量加载(bulk load)** 和用于持续摄取的 **Change Data Capture(CDC,变更数据捕获)**。 -在开始之前,首先需要确保你的 MySQL 数据库已正确配置为支持 binlog 复制。具体配置步骤取决于你是如何部署 MySQL 的,请按照下面相应的指南进行操作: +可以使用 ClickPipes UI 手动部署和管理 MySQL ClickPipes。未来,还可以使用 [OpenAPI](https://clickhouse.com/docs/cloud/manage/api/swagger#tag/ClickPipes/paths/~1v1~1organizations~1%7BorganizationId%7D~1services~1%7BserviceId%7D~1clickpipes/post) 和 [Terraform](https://registry.terraform.io/providers/ClickHouse/clickhouse/3.8.1-alpha1/docs/resources/clickpipe) 以编程方式部署和管理 MySQL ClickPipes。 -1. [Amazon RDS MySQL](./mysql/source/rds) - -2. [Amazon Aurora MySQL](./mysql/source/aurora) +## 前置条件 {#prerequisites} -3. [Cloud SQL for MySQL](./mysql/source/gcp) +[//]: # "TODO 对于一次性摄取的管道,不需要进行 binlog 复制配置。过去这一直是困惑的来源,因此我们也应该提供批量加载所需的最低要求,以避免把用户吓跑。" -4. [通用 MySQL](./mysql/source/generic) +在开始之前,首先需要确保你的 MySQL 数据库已正确配置为支持 binlog 复制。具体配置步骤取决于你是如何部署 MySQL 的,请按照下面相应的指南进行操作: -5. [Amazon RDS MariaDB](./mysql/source/rds_maria) +### 支持的数据源 {#supported-data-sources} -6. [通用 MariaDB](./mysql/source/generic_maria) +| 名称 | Logo | 详情 | +|----------------------|------|-------------------| +| **Amazon RDS MySQL**

    _一次性导入,CDC_ | | 请参阅 [Amazon RDS MySQL](./mysql/source/rds) 配置指南。 | +| **Amazon Aurora MySQL**

    _一次性导入,CDC_ | | 请参阅 [Amazon Aurora MySQL](./mysql/source/aurora) 配置指南。 | +| **Cloud SQL for MySQL**

    _一次性导入,CDC_ | | 请参阅 [Cloud SQL for MySQL](./mysql/source/gcp) 配置指南。 | +| **Azure Flexible Server for MySQL**

    _一次性导入_ | | 请参阅 [Azure Flexible Server for MySQL](./mysql/source/azure-flexible-server-mysql) 配置指南。 | +| **自托管 MySQL**

    _一次性导入,CDC_ | | 请参阅 [通用 MySQL](./mysql/source/generic) 配置指南。 | +| **Amazon RDS MariaDB**

    _一次性导入,CDC_ | | 请参阅 [Amazon RDS MariaDB](./mysql/source/rds_maria) 配置指南。 | +| **自托管 MariaDB**

    _一次性导入,CDC_ | | 请参阅 [通用 MariaDB](./mysql/source/generic_maria) 配置指南。 | -在完成源 MySQL 数据库的设置后,你可以继续创建 ClickPipe。 +在完成源 MySQL 数据库的配置后,可以继续创建 ClickPipe。 ## 创建你的 ClickPipe {#create-your-clickpipe} @@ -75,7 +86,7 @@ import Image from '@theme/IdealImage'; #### (可选)设置 SSH 隧道 {#optional-set-up-ssh-tunneling} -如果你的源 MySQL 数据库无法通过公网访问,你可以指定 SSH 隧道的相关配置。 +如果你的源 MySQL 数据库无法通过公网访问,你可以配置 SSH 隧道的相关参数。 1. 启用 "Use SSH Tunnelling" 开关。 2. 填写 SSH 连接信息。 @@ -89,7 +100,7 @@ import Image from '@theme/IdealImage'; 请确保在 SSH 堡垒机的防火墙规则中将 [ClickPipes IP addresses](../clickpipes#list-of-static-ips) 加入允许列表,以便 ClickPipes 能够建立 SSH 隧道。 ::: -在填完连接信息后,点击 `Next`。 +在填写完连接信息后,点击 `Next`。 #### 配置高级设置 {#advanced-settings} @@ -121,4 +132,4 @@ import Image from '@theme/IdealImage'; [//]: # "TODO Write a MySQL-specific migration guide and best practices similar to the existing one for PostgreSQL. The current migration guide points to the MySQL table engine, which is not ideal." -完成使用 ClickPipe 将数据从 MySQL 复制到 ClickHouse Cloud 的设置后,即可专注于如何查询和建模数据,以实现最佳性能。有关 MySQL CDC(变更数据捕获)和故障排除的常见问题,请参阅 [MySQL 常见问题页面](/integrations/data-ingestion/clickpipes/mysql/faq.md)。 +完成使用 ClickPipe 将数据从 MySQL 复制到 ClickHouse Cloud 的设置后,即可专注于如何查询和建模数据,以实现最佳性能。有关 MySQL CDC(变更数据捕获)和故障排除的常见问题,请参阅 [MySQL 常见问题页面](/integrations/data-ingestion/clickpipes/mysql/faq.md)。 \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/azure-flexible-server-mysql.md b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/azure-flexible-server-mysql.md new file mode 100644 index 00000000000..955ad4145db --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/azure-flexible-server-mysql.md @@ -0,0 +1,87 @@ +--- +sidebar_label: 'Azure Flexible Server for MySQL' +description: '将 Azure Flexible Server for MySQL 配置为 ClickPipes 的数据源' +slug: /integrations/clickpipes/mysql/source/azure-flexible-server-mysql +title: 'Azure Flexible Server for MySQL 源端配置指南' +keywords: ['azure', 'flexible server', 'mysql', 'clickpipes', 'binlog'] +doc_type: 'guide' +--- + +import configure_network_security from '@site/static/images/integrations/data-ingestion/clickpipes/mysql/source/azure-flexible-server-mysql/1_configure_network_security.png'; +import Image from '@theme/IdealImage'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + +# Azure Flexible Server for MySQL 源端设置指南 {#azure-flexible-server-for-mysql-source-setup-guide} + +本分步指南将演示如何配置 Azure Flexible Server for MySQL,通过 [MySQL ClickPipe](../index.md) 将数据复制到 ClickHouse Cloud。此服务仅支持**一次性摄取**。关于 MySQL CDC 的常见问题,请参阅 [MySQL 常见问题页面](/integrations/data-ingestion/clickpipes/mysql/faq.md)。 + +:::warning +此服务**不支持通过 CDC 持续摄取**。Azure Flexible Server for MySQL 不允许将 [`binlog_row_metadata`](https://dev.mysql.com/doc/refman/en/replication-options-binary-log.html#sysvar_binlog_row_metadata) 系统变量配置为 `FULL`,而这是在 ClickPipes 中实现完整 MySQL CDC 所必需的。 + +请在 [Azure 反馈论坛](https://feedback.azure.com/d365community/forum/47b1e71d-ee24-ec11-b6e6-000d3a4f0da0)提交功能请求,为 [此问题](https://learn.microsoft.com/en-us/answers/questions/766047/setting-binlog-row-metadata-to-full-in-azure-db-fo)投票,或[联系 Azure 支持](https://azure.microsoft.com/en-us/support/create-ticket/)以请求此功能。 +::: + +## 配置数据库用户 {#configure-database-user} + +以管理员用户身份连接到您的 Azure Flexible Server for MySQL 实例,并执行以下命令: + +1. 为 ClickPipes 创建一个专用用户: + + ```sql + CREATE USER 'clickpipes_user'@'%' IDENTIFIED BY 'some-password'; + ``` + +2. 授予 schema 权限。以下示例展示了为 `mysql` 数据库授予的权限。对于每个您想要复制的数据库和主机,重复执行这些命令: + + ```sql + GRANT SELECT ON `mysql`.* TO 'clickpipes_user'@'%'; + ``` + +3. 应用权限更改: + + ```sql + FLUSH PRIVILEGES; + ``` + +## 配置网络访问 {#configure-network-access} + +:::note +ClickPipes 不支持 Azure Private Link 连接。如果不允许从公网访问 Azure Flexible Server for MySQL 实例,可以[使用 SSH 隧道](#configure-network-security)进行安全连接。Azure Private Link 将在未来得到支持。 +::: + +接下来,需要允许 ClickPipes 连接到 Azure Flexible Server for MySQL 实例。 + + + + +1. 在 Azure 门户中,导航到 **All resources**。选择 Azure Flexible Server for MySQL 实例以打开 **Overview** 页面。 + +2. 在 **Settings** 下选择 **Networking**,并确保已启用 **Public access**。 + +3. 在 **Firewall rules** 部分中,为服务部署所在区域输入[ClickPipes 静态 IP 地址列表](../../index.md#list-of-static-ips)。 + + + +4. 单击 **Save** 以保存网络安全配置更改。 + + + + +如果不允许从公网访问 Azure Flexible Server for MySQL 实例,则必须先设置一个 SSH 跳板机(bastion host),以通过安全隧道建立连接。在 Azure 上设置 SSH 跳板机: + +1. 按照[官方文档](https://learn.microsoft.com/en-us/azure/virtual-machines/linux/quick-create-portal?tabs=ubuntu)创建并启动 Azure Virtual Machine (VM)。 + - 确保该 VM 与 Azure Flexible Server for MySQL 实例位于同一虚拟网络 (VNet),或位于已对等互联且具备连通性的 VNet 中。 + - 确保该 VM 拥有[静态公网 IP 地址](https://learn.microsoft.com/en-us/azure/virtual-network/ip-services/virtual-network-public-ip-address)。在将 ClickPipes 连接到 SSH 跳板机时,将使用此 IP 地址。 + +2. 更新 SSH 跳板机的 Network Security Group (NSG) 规则,以允许来自服务部署所在区域[ClickPipes 静态 IP 地址列表](../../index.md#list-of-static-ips)的流量。 + +3. 更新 Azure Flexible Server for MySQL 实例的防火墙规则,以允许来自 SSH 跳板机[私有 IP 地址](https://learn.microsoft.com/en-us/azure/virtual-network/ip-services/private-ip-addresses)的流量。 + + + + +## 后续步骤 {#whats-next} + +现在可以[创建 ClickPipe](../index.md),并开始将 Azure Flexible Server for MySQL 实例中的数据摄取到 ClickHouse Cloud 中。请务必记录在设置实例时使用的连接信息,因为在创建 ClickPipe 的过程中将需要这些信息。 \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/alloydb.md b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/alloydb.md index 326fce293c9..d98c1e75fd3 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/alloydb.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/alloydb.md @@ -72,7 +72,7 @@ SHOW wal_level; CREATE USER clickpipes_user PASSWORD 'some-password'; ``` -2. 为该专用用户授予需要复制的 schema 的权限。 +2. 为上一步创建的用户授予 schema 级别的只读访问权限。下面的示例展示了针对 `public` schema 的权限设置。对于每个包含需要复制的表的 schema,重复执行这些命令: ```sql GRANT USAGE ON SCHEMA "public" TO clickpipes_user; @@ -80,9 +80,7 @@ SHOW wal_level; ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; ``` - 上面的示例展示了针对 `public` schema 的权限设置。对每个希望通过 ClickPipes 进行复制的 schema 重复执行上述命令序列。 - -3. 为该专用用户授予管理复制的权限: +3. 为该用户授予复制权限: ```sql ALTER ROLE clickpipes_user REPLICATION; @@ -91,7 +89,7 @@ SHOW wal_level; 4. 使用你希望复制的表创建一个 [publication](https://www.postgresql.org/docs/current/logical-replication-publication.html)。强烈建议仅在 publication 中包含实际需要的表,以避免额外的性能开销。 :::warning - 包含在 publication 中的所有表必须要么定义了 **primary key**,要么将其 **replica identity** 配置为 `FULL`。关于范围设置的指导,请参阅 [Postgres 常见问题](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication)。 + 包含在 publication 中的任意表必须要么定义了 **primary key**,要么将其 **replica identity** 配置为 `FULL`。关于范围设置的指导,请参阅 [Postgres 常见问题](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication)。 ::: - 为特定表创建 publication: @@ -108,10 +106,10 @@ SHOW wal_level; `clickpipes` publication 将包含由指定表生成的一组变更事件,稍后将用于摄取复制流。 -## 配置网络安全 {#configure-network-security} +## 配置网络访问 {#configure-network-access} :::note -ClickPipes 不支持 Private Service Connect (PSC) 连接。如果你不允许对 AlloyDB 实例的公共访问,可以[使用 SSH 隧道](#configure-network-security)以安全方式连接。PSC 将在未来提供支持。 +ClickPipes 不支持 Private Service Connect (PSC) 连接。如果你不允许对 AlloyDB 实例的公共访问,可以[使用 SSH 隧道](#configure-network-access)以安全方式连接。PSC 将在未来提供支持。 ::: 接下来,你需要允许 ClickPipes 连接到你的 AlloyDB 实例。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/aurora.md b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/aurora.md index c7b23af0930..b4f7f898101 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/aurora.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/aurora.md @@ -16,6 +16,7 @@ import security_group_in_rds_postgres from '@site/static/images/integrations/dat import edit_inbound_rules from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/rds/edit_inbound_rules.png'; import Image from '@theme/IdealImage'; + # Aurora Postgres 源端配置指南 {#aurora-postgres-source-setup-guide} ## 支持的 Postgres 版本 {#supported-postgres-versions} @@ -65,9 +66,10 @@ postgres=> SHOW wal_sender_timeout ; + ## 配置数据库用户 {#configure-database-user} -以管理员用户连接到你的 Aurora PostgreSQL writer 实例,并执行以下命令: +以管理员用户身份连接到你的 Aurora PostgreSQL 写入实例,并执行以下命令: 1. 为 ClickPipes 创建一个专用用户: @@ -75,7 +77,7 @@ postgres=> SHOW wal_sender_timeout ; CREATE USER clickpipes_user PASSWORD 'some-password'; ``` -2. 授予 schema 权限。以下示例演示如何为 `public` schema 授权。对于每个你希望复制的 schema,重复执行这些命令: +2. 为你在上一步创建的用户授予 schema 级别的只读访问权限。以下示例展示了为 `public` schema 授予的权限。对于每个包含你希望复制的表的 schema,都需要重复这些命令: ```sql GRANT USAGE ON SCHEMA "public" TO clickpipes_user; @@ -83,17 +85,31 @@ postgres=> SHOW wal_sender_timeout ; ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; ``` -3. 授予复制权限: +3. 为该用户授予复制相关权限: ```sql GRANT rds_replication TO clickpipes_user; ``` -4. 为复制创建一个 publication: +4. 创建一个仅包含你希望复制的表的 [publication](https://www.postgresql.org/docs/current/logical-replication-publication.html)。强烈建议只在 publication 中包含实际需要的表,以避免额外的性能开销。 - ```sql - CREATE PUBLICATION clickpipes_publication FOR ALL TABLES; - ``` + :::warning + 任何包含在 publication 中的表必须定义有**主键(primary key)**,_或者_其 **replica identity** 被配置为 `FULL`。关于 publication 范围的指导,请参阅 [Postgres 常见问题](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication)。 + ::: + + - 为特定表创建 publication: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2; + ``` + + - 为特定 schema 中的所有表创建 publication: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public"; + ``` + + `clickpipes` publication 将包含由指定表生成的一组变更事件,稍后将用于摄取复制流。 ## 配置网络访问 {#configure-network-access} @@ -132,4 +148,4 @@ postgres=> SHOW wal_sender_timeout ; ## 接下来 {#whats-next} 现在,你可以[创建 ClickPipe](../index.md),并开始将 Aurora PostgreSQL 集群中的数据摄取到 ClickHouse Cloud 中。 -请务必记录你在设置 Aurora PostgreSQL 集群时使用的连接信息,因为在创建 ClickPipe 的过程中你将需要这些信息。 +请务必记录你在设置 Aurora PostgreSQL 集群时使用的连接信息,因为在创建 ClickPipe 的过程中你将需要这些信息。 \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/azure-flexible-server-postgres.md b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/azure-flexible-server-postgres.md index 7ebc1a950a7..0df1dc3fb3d 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/azure-flexible-server-postgres.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/azure-flexible-server-postgres.md @@ -13,6 +13,7 @@ import restart from '@site/static/images/integrations/data-ingestion/clickpipes/ import firewall from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/azure-flexible-server-postgres/firewall.png'; import Image from '@theme/IdealImage'; + # 适用于 Azure Database for PostgreSQL 灵活服务器的源端设置指南 {#azure-flexible-server-for-postgres-source-setup-guide} ClickPipes 支持 Postgres 12 及更高版本。 @@ -35,15 +36,15 @@ ClickPipes 支持 Postgres 12 及更高版本。 ## 创建 ClickPipes 用户并授予权限 {#creating-clickpipes-user-and-granting-permissions} -通过管理员用户连接到 Azure Flexible Server PostgreSQL,并运行以下命令: +使用管理员用户连接到 Azure Flexible Server Postgres,并运行以下命令: -1. 创建一个专用于 ClickPipes 的 PostgreSQL 用户。 +1. 为 ClickPipes 创建一个专用用户。 ```sql CREATE USER clickpipes_user PASSWORD 'some-password'; ``` -2. 为 `clickpipes_user` 提供对要进行表复制的模式(schema)的只读访问权限。下面的示例展示了如何为 `public` 模式设置权限。如果您想为多个模式授权,可以针对每个模式分别运行这三条命令。 +2. 为你在上一步创建的用户授予架构级只读访问权限。以下示例展示了对 `public` 架构的权限授予。对于每个包含你希望复制的表的架构,都需要重复这些命令: ```sql GRANT USAGE ON SCHEMA "public" TO clickpipes_user; @@ -57,13 +58,27 @@ ClickPipes 支持 Postgres 12 及更高版本。 ALTER ROLE clickpipes_user REPLICATION; ``` -4. 创建一个 publication,将在后续用于创建 MIRROR(镜像复制)。 +4. 使用你想要复制的表创建一个 [publication](https://www.postgresql.org/docs/current/logical-replication-publication.html)(发布)。强烈建议仅在 publication 中包含你实际需要的表,以避免不必要的性能开销。 - ```sql - CREATE PUBLICATION clickpipes_publication FOR ALL TABLES; - ``` + :::warning + 任何包含在 publication 中的表必须要么定义了 **主键(primary key)**,要么将其 **replica identity** 配置为 `FULL`。有关作用域设置的指导,请参阅 [Postgres 常见问题](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication)。 + ::: + + - 为特定表创建 publication: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2; + ``` + + - 为特定架构中的所有表创建 publication: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public"; + ``` + + `clickpipes` publication 将包含由指定表生成的一组变更事件,并将在后续用于摄取复制流。 -5. 将 `clickpipes_user` 的 `wal_sender_timeout` 设置为 0。 +5. 将 `wal_sender_timeout` 为 `clickpipes_user` 设置为 0。 ```sql ALTER ROLE clickpipes_user SET wal_sender_timeout to 0; @@ -81,4 +96,4 @@ ClickPipes 支持 Postgres 12 及更高版本。 ## 后续步骤 {#whats-next} 现在你可以[创建你的 ClickPipe](../index.md),并开始将 Postgres 实例中的数据摄取到 ClickHouse Cloud 中。 -请务必记录下在配置 Postgres 实例时使用的连接信息,因为在创建 ClickPipe 的过程中你将需要这些信息。 +请务必记录下在配置 Postgres 实例时使用的连接信息,因为在创建 ClickPipe 的过程中你将需要这些信息。 \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/crunchy-postgres.md b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/crunchy-postgres.md index 4c9aa945c11..6728fb584c5 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/crunchy-postgres.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/crunchy-postgres.md @@ -11,6 +11,7 @@ import firewall_rules_crunchy_bridge from '@site/static/images/integrations/data import add_firewall_rules_crunchy_bridge from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/setup/crunchy-postgres/add_firewall_rules_crunchy_bridge.png' import Image from '@theme/IdealImage'; + # Crunchy Bridge Postgres 源设置指南 {#crunchy-bridge-postgres-source-setup-guide} ClickPipes 支持 Postgres 12 及更高版本。 @@ -25,17 +26,18 @@ SHOW max_wal_senders; -- should be 10 SHOW max_replication_slots; -- should be 10 ``` + ## 创建 ClickPipes 用户并授予权限 {#creating-clickpipes-user-and-granting-permissions} -通过 `postgres` 用户连接到你的 Crunchy Bridge Postgres,并运行以下命令: +使用 `postgres` 用户连接到你的 Crunchy Bridge Postgres,并运行以下命令: -1. 为 ClickPipes 单独创建一个 Postgres 用户。 +1. 为 ClickPipes 创建一个专用用户: ```sql CREATE USER clickpipes_user PASSWORD 'some-password'; ``` -2. 为 `clickpipes_user` 授予对你要复制的表所在模式(schema)的只读访问权限。下面的示例展示了对 `public` 模式授予权限。如果你想对多个模式授权,可以为每个模式分别运行这三条命令。 +2. 为你在上一步创建的用户授予模式级只读访问权限。以下示例展示了对 `public` 模式的权限设置。对于每个包含你希望复制的表的模式,都需要重复这些命令: ```sql GRANT USAGE ON SCHEMA "public" TO clickpipes_user; @@ -43,17 +45,31 @@ SHOW max_replication_slots; -- should be 10 ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; ``` -3. 为该用户授予复制(replication)权限: +3. 为该用户授予复制权限: ```sql ALTER ROLE clickpipes_user REPLICATION; ``` -4. 创建一个 publication,供之后创建 MIRROR(复制)时使用。 +4. 为你想要复制的表创建一个 [publication](https://www.postgresql.org/docs/current/logical-replication-publication.html)。我们强烈建议仅在 publication 中包含你确实需要的表,以避免额外的性能开销。 - ```sql - CREATE PUBLICATION clickpipes_publication FOR ALL TABLES; - ``` + :::warning + 任何包含在 publication 中的表必须要么定义了**主键**,要么将其 **replica identity** 配置为 `FULL`。关于 publication 作用范围的指导,请参阅 [Postgres 常见问题](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication)。 + ::: + + - 为特定表创建 publication: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2; + ``` + + - 为特定模式中所有表创建 publication: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public"; + ``` + + `clickpipes` publication 将包含由指定表生成的一组变更事件,并会在之后用于摄取复制流。 ## 将 ClickPipes IP 加入允许列表 {#safe-list-clickpipes-ips} @@ -66,4 +82,4 @@ SHOW max_replication_slots; -- should be 10 ## 下一步? {#whats-next} 现在你可以[创建你的 ClickPipe](../index.md),并开始将 Postgres 实例中的数据摄取到 ClickHouse Cloud 中。 -请务必记录好在设置 Postgres 实例时使用的连接信息,因为在创建 ClickPipe 的过程中你会需要这些信息。 +请务必记录好在设置 Postgres 实例时使用的连接信息,因为在创建 ClickPipe 的过程中你会需要这些信息。 \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/generic.md b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/generic.md index 7642247ee83..0695fc738d1 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/generic.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/generic.md @@ -52,31 +52,49 @@ ClickPipes 支持 Postgres 12 及更高版本。 ``` 3. 如果你对上述配置做了任何更改,必须重启 Postgres 实例,更改才会生效。 -## 创建具备权限的用户和发布 {#creating-a-user-with-permissions-and-publication} +## 创建具有权限和 publication 的用户 {#creating-a-user-with-permissions-and-publication} -让我们为 ClickPipes 创建一个具备 CDC 所需权限的新用户, -并创建一个我们将用于复制的发布。 +以管理员用户身份连接到你的 Postgres 实例,并执行以下命令: -为此,可以连接到你的 Postgres 实例并运行以下 SQL 命令: +1. 为 ClickPipes 创建一个专用用户: -```sql - CREATE USER clickpipes_user PASSWORD 'clickpipes_password'; - GRANT USAGE ON SCHEMA "public" TO clickpipes_user; - GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; - ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; + ```sql + CREATE USER clickpipes_user PASSWORD 'some-password'; + ``` --- Give replication permission to the USER - ALTER USER clickpipes_user REPLICATION; +2. 为你在上一步中创建的用户授予模式级只读访问权限。以下示例展示了对 `public` 模式的权限授予方式。对于每个包含你希望复制的表的模式,请重复执行这些命令: + + ```sql + GRANT USAGE ON SCHEMA "public" TO clickpipes_user; + GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; + ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; + ``` --- Create a publication. We will use this when creating the pipe - CREATE PUBLICATION clickpipes_publication FOR ALL TABLES; -``` +3. 为该用户授予复制权限: -:::note + ```sql + ALTER ROLE clickpipes_user REPLICATION; + ``` -请务必将 `clickpipes_user` 和 `clickpipes_password` 替换为你希望使用的用户名和密码。 +4. 使用你希望复制的表创建一个 [publication](https://www.postgresql.org/docs/current/logical-replication-publication.html)。我们强烈建议仅在 publication 中包含所需的表,以避免额外的性能开销。 -::: + :::warning + 任何包含在 publication 中的表必须要么定义了**主键(primary key)**,要么将其 **replica identity** 配置为 `FULL`。有关作用域设置的指导,请参阅 [Postgres 常见问题](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication)。 + ::: + + - 为特定表创建 publication: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2; + ``` + + - 为特定模式中的所有表创建 publication: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public"; + ``` + + `clickpipes` publication 将包含由指定表生成的一组变更事件,并将在后续用于摄取复制数据流。 ## 在 pg_hba.conf 中为 ClickPipes 用户启用连接 {#enabling-connections-in-pg_hbaconf-to-the-clickpipes-user} @@ -114,7 +132,8 @@ SELECT pg_reload_conf(); ::: + ## 接下来是什么? {#whats-next} 现在你可以[创建 ClickPipe](../index.md),并开始将 Postgres 实例中的数据摄取到 ClickHouse Cloud 中。 -请务必记录下在设置 Postgres 实例时使用的连接信息,因为在创建 ClickPipe 的过程中将需要这些信息。 +请务必记录下在设置 Postgres 实例时使用的连接信息,因为在创建 ClickPipe 的过程中将需要这些信息。 \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql.md b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql.md index da57f85818c..1b9eadb46a0 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql.md @@ -17,6 +17,7 @@ import firewall1 from '@site/static/images/integrations/data-ingestion/clickpipe import firewall2 from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/firewall2.png'; import Image from '@theme/IdealImage'; + # Google Cloud SQL Postgres 源端设置指南 {#google-cloud-sql-postgres-source-setup-guide} :::info @@ -40,20 +41,22 @@ Postgres 12 及更高版本 2. 打开 Flags 选项卡,将 `cloudsql.logical_decoding` 设置为 on,并将 `wal_sender_timeout` 设置为 0。完成这些更改后,需要重启你的 Postgres 服务器。 + + ## 创建 ClickPipes 用户并授予权限 {#creating-clickpipes-user-and-granting-permissions} 使用管理员用户连接到 Cloud SQL Postgres,并运行以下命令: -1. 为 ClickPipes 专用创建一个 Postgres 用户。 +1. 为 ClickPipes 创建一个专用用户: ```sql CREATE USER clickpipes_user PASSWORD 'some-password'; ``` -2. 为你要从中复制表的 schema 向 `clickpipes_user` 提供只读访问权限。以下示例展示了为 `public` schema 配置权限。如果你希望为多个 schema 授权,可以针对每个 schema 分别运行这三条命令。 +2. 为你在上一步创建的用户授予架构级只读访问权限。下面的示例展示了对 `public` 架构的权限。对于每个包含你想要复制的表的架构,都需要重复这些命令: ```sql GRANT USAGE ON SCHEMA "public" TO clickpipes_user; @@ -61,19 +64,33 @@ Postgres 12 及更高版本 ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; ``` -3. 为该用户授予复制(replication)权限: +3. 为该用户授予复制权限: ```sql ALTER ROLE clickpipes_user REPLICATION; ``` -4. 创建一个 publication,供后续创建 MIRROR(复制)时使用。 +4. 使用你想要复制的表创建一个 [publication](https://www.postgresql.org/docs/current/logical-replication-publication.html)。我们强烈建议在 publication 中只包含你需要的表,以避免额外的性能开销。 - ```sql - CREATE PUBLICATION clickpipes_publication FOR ALL TABLES; - ``` + :::warning + 包含在 publication 中的任何表必须要么定义了 **主键**,要么其 **replica identity** 被配置为 `FULL`。有关作用域设置的指导,请参阅 [Postgres 常见问题](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication)。 + ::: + + - 为特定表创建 publication: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2; + ``` + + - 为特定架构中的所有表创建 publication: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public"; + ``` + + `clickpipes` publication 将包含由指定表生成的一组变更事件,并将在后续用于摄取复制流。 -[//]: # (TODO Add SSH Tunneling) +[//]: # (TODO 添加 SSH 隧道) ## 将 ClickPipes IP 添加到防火墙 {#add-clickpipes-ips-to-firewall} @@ -101,4 +118,4 @@ Postgres 12 及更高版本 ## 下一步 {#whats-next} 现在你可以[创建你的 ClickPipe](../index.md),并开始将你的 Postgres 实例中的数据摄取到 ClickHouse Cloud 中。 -请务必记录在设置 Postgres 实例时使用的连接信息,因为在创建 ClickPipe 的过程中你将需要这些信息。 +请务必记录在设置 Postgres 实例时使用的连接信息,因为在创建 ClickPipe 的过程中你将需要这些信息。 \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/neon-postgres.md b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/neon-postgres.md index cfcbc0772cc..6f06cea466e 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/neon-postgres.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/neon-postgres.md @@ -7,13 +7,13 @@ doc_type: 'guide' keywords: ['clickpipes', 'postgresql', 'cdc', '数据摄取', '实时同步'] --- -import neon_commands from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/setup/neon-postgres/neon-commands.png' import neon_enable_replication from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/setup/neon-postgres/neon-enable-replication.png' import neon_enabled_replication from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/setup/neon-postgres/neon-enabled-replication.png' import neon_ip_allow from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/setup/neon-postgres/neon-ip-allow.png' import neon_conn_details from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/setup/neon-postgres/neon-conn-details.png' import Image from '@theme/IdealImage'; + # Neon Postgres 源端设置指南 {#neon-postgres-source-setup-guide} 本文档介绍如何配置 Neon Postgres,使其可在 ClickPipes 中用作数据复制源。 @@ -21,28 +21,47 @@ import Image from '@theme/IdealImage'; ## 创建具有权限的用户 {#creating-a-user-with-permissions} -为 ClickPipes 创建一个具备 CDC 所需权限的新用户, -并创建一个我们将用于复制的发布(publication)。 +以管理员用户身份连接到你的 Neon 实例,并执行以下命令: -为此,你可以前往 **SQL Editor** 选项卡。 -在这里,我们可以运行以下 SQL 命令: +1. 为 ClickPipes 创建一个专用用户: -```sql - CREATE USER clickpipes_user PASSWORD 'clickpipes_password'; - GRANT USAGE ON SCHEMA "public" TO clickpipes_user; - GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; - ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; + ```sql + CREATE USER clickpipes_user PASSWORD 'some-password'; + ``` --- Give replication permission to the USER - ALTER USER clickpipes_user REPLICATION; +2. 为你在上一步创建的用户授予架构级只读访问权限。以下示例展示了对 `public` 架构的权限配置。对于每个包含你希望复制的表的架构,请重复这些命令: + + ```sql + GRANT USAGE ON SCHEMA "public" TO clickpipes_user; + GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; + ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; + ``` --- Create a publication. We will use this when creating the mirror - CREATE PUBLICATION clickpipes_publication FOR ALL TABLES; -``` +3. 为该用户授予复制权限: + + ```sql + ALTER ROLE clickpipes_user REPLICATION; + ``` + +4. 创建一个包含你希望复制的表的[发布](https://www.postgresql.org/docs/current/logical-replication-publication.html)。我们强烈建议在发布中只包含你需要的表,以避免额外的性能开销。 + + :::warning + 包含在发布中的任何表必须要么定义了**主键(primary key)**,要么将其 **replica identity** 配置为 `FULL`。有关作用域划分的指导,请参阅 [Postgres 常见问题](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication)。 + ::: - + - 为特定表创建一个发布: -点击 **Run**,即可创建一个发布和一个用户。 + ```sql + CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2; + ``` + + - 为特定架构中的所有表创建一个发布: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public"; + ``` + + `clickpipes` 发布将包含由指定表生成的变更事件集合,并将在后续用于摄取复制流。 ## 启用逻辑复制 {#enable-logical-replication} @@ -63,13 +82,16 @@ SHOW max_wal_senders; -- should be 10 SHOW max_replication_slots; -- should be 10 ``` + ## IP 白名单(适用于 Neon 企业计划) {#ip-whitelisting-for-neon-enterprise-plan} + 如果您使用的是 Neon 企业计划,可以将 [ClickPipes IP](../../index.md#list-of-static-ips) 加入白名单,从而允许 ClickPipes 将数据复制到您的 Neon Postgres 实例。 为此,您可以点击 **Settings** 选项卡并进入 **IP Allow** 部分。 ## 复制连接信息 {#copy-connection-details} + 现在我们已经创建了用户、准备好了 publication 并启用了复制,可以复制连接信息来创建一个新的 ClickPipe。 前往 **Dashboard**,在显示连接字符串的文本框中, 将视图切换为 **Parameters Only**。我们在下一步会用到这些参数。 @@ -79,4 +101,4 @@ SHOW max_replication_slots; -- should be 10 ## 后续步骤 {#whats-next} 现在你可以[创建你的 ClickPipe](../index.md),并开始将 Postgres 实例中的数据摄取到 ClickHouse Cloud。 -请务必记录下在设置 Postgres 实例时使用的连接信息,因为在创建 ClickPipe 时你将需要这些信息。 +请务必记录下在设置 Postgres 实例时使用的连接信息,因为在创建 ClickPipe 时你将需要这些信息。 \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/planetscale.md b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/planetscale.md index 935dffb1531..d66443701f3 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/planetscale.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/planetscale.md @@ -11,6 +11,7 @@ import planetscale_wal_level_logical from '@site/static/images/integrations/data import planetscale_max_slot_wal_keep_size from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/planetscale/planetscale_max_slot_wal_keep_size.png'; import Image from '@theme/IdealImage'; + # PlanetScale for Postgres 数据源设置指南 {#planetscale-for-postgres-source-setup-guide} :::info @@ -45,31 +46,49 @@ ClickPipes 支持 Postgres 12 及更高版本。 -## 创建具有权限和发布的用户 {#creating-a-user-with-permissions-and-publication} +## 使用权限和发布(publication)创建用户 {#creating-a-user-with-permissions-and-publication} + +使用默认的 `postgres.<...>` 用户连接到你的 PlanetScale Postgres 实例,并运行以下命令: -现在为 ClickPipes 创建一个新用户,授予适用于 CDC 的必要权限, -并创建一个我们将用于复制的发布(publication)。 +1. 为 ClickPipes 创建一个专用用户: -为此,你可以使用默认的 `postgres.<...>` 用户连接到你的 PlanetScale Postgres 实例,并运行以下 SQL 命令: + ```sql + CREATE USER clickpipes_user PASSWORD 'some-password'; + ``` -```sql - CREATE USER clickpipes_user PASSWORD 'clickpipes_password'; - GRANT USAGE ON SCHEMA "public" TO clickpipes_user; --- You may need to grant these permissions on more schemas depending on the tables you're moving - GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; - ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; +2. 为你在上一步创建的用户授予 schema 级的只读访问权限。下面的示例展示了对 `public` schema 的权限设置。对于每个包含你希望复制的表的 schema,都需要重复这些命令: --- Give replication permission to the USER - ALTER USER clickpipes_user REPLICATION; + ```sql + GRANT USAGE ON SCHEMA "public" TO clickpipes_user; + GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; + ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; + ``` --- Create a publication. We will use this when creating the pipe --- When adding new tables to the ClickPipe, you'll need to manually add them to the publication as well. - CREATE PUBLICATION clickpipes_publication FOR TABLE <...>, <...>, <...>; -``` +3. 为该用户授予复制权限: -:::note -请务必将 `clickpipes_user` 和 `clickpipes_password` 替换为您期望设置的用户名和密码。 -::: + ```sql + GRANT rds_replication TO clickpipes_user; + ``` + +4. 使用你想要复制的表创建一个[发布(publication)](https://www.postgresql.org/docs/current/logical-replication-publication.html)。我们强烈建议仅将所需的表包含在发布中,以避免额外的性能开销。 + + :::warning + 任何包含在发布中的表必须定义有 **primary key**,_或者_ 将其 **replica identity** 配置为 `FULL`。请参阅 [Postgres 常见问题](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication) 以获得如何限定发布范围的指导。 + ::: + + - 为特定表创建发布: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2; + ``` + + - 为特定 schema 中的所有表创建发布: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public"; + ``` + + `clickpipes` 发布将包含由指定表生成的一组变更事件,稍后将用于摄取复制流。 ## 注意事项 {#caveats} 1. 要连接到 PlanetScale Postgres,需要在前面创建的用户名后追加当前分支名。例如,如果创建的用户为 `clickpipes_user`,则在创建 ClickPipe 时实际提供的用户名需要为 `clickpipes_user`.`branch`,其中 `branch` 指的是当前 PlanetScale Postgres [branch](https://planetscale.com/docs/postgres/branching) 的 “id”。要快速确定这一点,可以查看你之前用于创建该用户的 `postgres` 用户名,句点后的部分即为 branch id。 @@ -79,4 +98,4 @@ ClickPipes 支持 Postgres 12 及更高版本。 ## 后续步骤 {#whats-next} 您现在可以[创建 ClickPipe](../index.md),并开始将 Postgres 实例中的数据摄取到 ClickHouse Cloud。 -请务必记录在设置 Postgres 实例时使用的连接信息,因为在创建 ClickPipe 时将需要这些信息。 +请务必记录在设置 Postgres 实例时使用的连接信息,因为在创建 ClickPipe 时将需要这些信息。 \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/rds.md b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/rds.md index 3b08e6ae2ae..b8b60905bf3 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/rds.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/rds.md @@ -16,6 +16,7 @@ import security_group_in_rds_postgres from '@site/static/images/integrations/dat import edit_inbound_rules from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/rds/edit_inbound_rules.png'; import Image from '@theme/IdealImage'; + # RDS Postgres 数据源配置指南 {#rds-postgres-source-setup-guide} ## 支持的 Postgres 版本 {#supported-postgres-versions} @@ -65,9 +66,10 @@ postgres=> SHOW wal_sender_timeout ; + ## 配置数据库用户 {#configure-database-user} -以管理员用户身份连接到您的 RDS Postgres 实例,并执行以下命令: +以管理员身份连接到你的 RDS Postgres 实例,并执行以下命令: 1. 为 ClickPipes 创建一个专用用户: @@ -75,7 +77,7 @@ postgres=> SHOW wal_sender_timeout ; CREATE USER clickpipes_user PASSWORD 'some-password'; ``` -2. 授予 schema 权限。以下示例展示了为 `public` schema 授权的命令。对于每个希望复制的 schema,重复执行这些命令: +2. 为你在上一步创建的用户授予 schema 级别的只读访问权限。以下示例展示了对 `public` schema 的权限配置。对于每个包含你希望复制的表的 schema,重复执行这些命令: ```sql GRANT USAGE ON SCHEMA "public" TO clickpipes_user; @@ -83,17 +85,31 @@ postgres=> SHOW wal_sender_timeout ; ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; ``` -3. 授予复制权限: +3. 为该用户授予复制权限: ```sql GRANT rds_replication TO clickpipes_user; ``` -4. 为复制创建一个 publication(发布集): +4. 使用你希望复制的表创建一个 [publication](https://www.postgresql.org/docs/current/logical-replication-publication.html)。我们强烈建议仅在该 publication 中包含所需的表,以避免额外的性能开销。 - ```sql - CREATE PUBLICATION clickpipes_publication FOR ALL TABLES; - ``` + :::warning + 任何包含在 publication 中的表都必须定义 **primary key(主键)**,_或者_ 将其 **replica identity** 配置为 `FULL`。关于作用域设置的指导,请参阅 [Postgres 常见问题](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication)。 + ::: + + - 为特定表创建 publication: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2; + ``` + + - 为特定 schema 中的所有表创建 publication: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public"; + ``` + + `clickpipes` publication 将包含由指定表生成的一组变更事件,之后会被用来摄取复制流。 ## 配置网络访问 {#configure-network-access} @@ -110,6 +126,7 @@ postgres=> SHOW wal_sender_timeout ; 要通过私有网络连接到 RDS 实例,可以使用 AWS PrivateLink。请按照我们的[适用于 ClickPipes 的 AWS PrivateLink 配置指南](/knowledgebase/aws-privatelink-setup-for-clickpipes)来完成连接设置。 ### RDS Proxy 的变通方案 {#workarounds-for-rds-proxy} + RDS Proxy 不支持逻辑复制类型的连接。如果你在 RDS 中使用动态 IP 地址且无法使用 DNS 名称或 Lambda 函数,可以考虑以下替代方案: 1. 使用 cron 作业,定期解析 RDS 端点的 IP,并在发生变化时更新 NLB。 @@ -120,4 +137,4 @@ RDS Proxy 不支持逻辑复制类型的连接。如果你在 RDS 中使用动 ## 下一步 {#whats-next} 现在你可以[创建 ClickPipe](../index.md),并开始将 Postgres 实例中的数据摄取到 ClickHouse Cloud 中。 -请务必记录下在设置 Postgres 实例时使用的连接信息,因为在创建 ClickPipe 时将会用到这些信息。 +请务必记录下在设置 Postgres 实例时使用的连接信息,因为在创建 ClickPipe 时将会用到这些信息。 \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/supabase.md b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/supabase.md index c28665e7a1f..08c7b0f44db 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/supabase.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/supabase.md @@ -11,6 +11,7 @@ import supabase_commands from '@site/static/images/integrations/data-ingestion/c import supabase_connection_details from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/setup/supabase/supabase-connection-details.jpg' import Image from '@theme/IdealImage'; + # Supabase 源配置指南 {#supabase-source-setup-guide} 本文档介绍如何为在 ClickPipes 中使用而配置 Supabase Postgres。 @@ -23,36 +24,47 @@ ClickPipes 原生通过 IPv6 支持 Supabase,可实现无缝复制。 ## 创建具有权限和复制槽的用户 {#creating-a-user-with-permissions-and-replication-slot} -让我们为 ClickPipes 创建一个新用户,授予适用于 CDC 的必要权限, -并创建一个用于复制的发布(publication)。 +以管理员用户身份连接到你的 Supabase 实例,并执行以下命令: -为此,你可以打开 Supabase 项目的 **SQL 编辑器**。 -在这里,我们可以运行以下 SQL 命令: +1. 为 ClickPipes 创建一个专用用户: -```sql - CREATE USER clickpipes_user PASSWORD 'clickpipes_password'; - GRANT USAGE ON SCHEMA "public" TO clickpipes_user; - GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; - ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; + ```sql + CREATE USER clickpipes_user PASSWORD 'some-password'; + ``` --- Give replication permission to the USER - ALTER USER clickpipes_user REPLICATION; +2. 为你在上一步创建的用户授予模式级的只读访问权限。以下示例展示了对 `public` 模式的权限。对于每个包含你希望复制的表的模式,都需要重复执行这些命令: + + ```sql + GRANT USAGE ON SCHEMA "public" TO clickpipes_user; + GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; + ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; + ``` --- Create a publication. We will use this when creating the mirror - CREATE PUBLICATION clickpipes_publication FOR ALL TABLES; -``` +3. 为该用户授予复制权限: - + ```sql + ALTER ROLE clickpipes_user REPLICATION; + ``` -点击 **Run** 以创建一个 publication 和一个用户。 +4. 使用你想要复制的表创建一个 [publication](https://www.postgresql.org/docs/current/logical-replication-publication.html)。强烈建议只在 publication 中包含必要的表,以避免额外的性能开销。 -:::note + :::warning + 任何包含在 publication 中的表必须要么定义了**主键(primary key)**,要么将其 **replica identity** 配置为 `FULL`。有关如何限定 publication 范围的指导,请参阅 [Postgres 常见问题](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication)。 + ::: -请务必将 `clickpipes_user` 和 `clickpipes_password` 替换为你想要的用户名和密码。 + - 为特定表创建 publication: -另外,在 ClickPipes 中创建镜像(mirror)时,请记得使用相同的 publication 名称。 + ```sql + CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2; + ``` -::: + - 为特定模式中的所有表创建 publication: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public"; + ``` + + `clickpipes` publication 将包含由这些指定表生成的一组变更事件,并将在后续用于摄取复制流。 ## 增加 `max_slot_wal_keep_size` {#increase-max_slot_wal_keep_size} @@ -88,7 +100,8 @@ ClickPipes 使用的 Postgres 用户不能受到 RLS 策略的限制,否则可 ALTER USER clickpipes_user BYPASSRLS; ``` + ## 下一步? {#whats-next} 你现在可以[创建 ClickPipe](../index.md),并开始将 Postgres 实例中的数据摄取到 ClickHouse Cloud 中。 -请务必记录在配置 Postgres 实例时使用的连接参数,因为在创建 ClickPipe 的过程中你将需要这些信息。 +请务必记录在配置 Postgres 实例时使用的连接参数,因为在创建 ClickPipe 的过程中你将需要这些信息。 \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/timescale.md b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/timescale.md index b83c85d7772..4505a0ad616 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/timescale.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/timescale.md @@ -9,6 +9,7 @@ doc_type: 'guide' import BetaBadge from '@theme/badges/BetaBadge'; + # 基于 TimescaleDB 的 Postgres 数据源配置指南 {#postgres-with-timescaledb-source-setup-guide} @@ -57,40 +58,47 @@ Timescale 超表本身并不存储插入到其中的任何数据。相反,数 如果你只希望执行一次性数据加载(`Initial Load Only`),请从第 2 步起跳过后续步骤。 ::: -1. 为该 ClickPipe 创建一个 Postgres 用户,并授予其对你希望复制的表执行 `SELECT` 的权限。 +1. 为 ClickPipes 创建一个专用用户: -```sql - CREATE USER clickpipes_user PASSWORD 'clickpipes_password'; - GRANT USAGE ON SCHEMA "public" TO clickpipes_user; - -- If desired, you can refine these GRANTs to individual tables alone, instead of the entire schema - -- But when adding new tables to the ClickPipe, you'll need to add them to the user as well. - GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; - ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; -``` + ```sql + CREATE USER clickpipes_user PASSWORD 'some-password'; + ``` -:::note -请务必将 `clickpipes_user` 和 `clickpipes_password` 替换为所需的用户名和密码。 -::: +2. 为上一步创建的用户授予 schema 级只读访问权限。下面的示例展示了对 `public` schema 的权限设置。对于每个包含你希望复制的表的 schema,请重复执行这些命令: -2. 以 Postgres 超级用户或管理员用户身份,在源实例上创建一个 publication,其中包含你想要复制的表和 hypertable,**并且还必须包含整个 `_timescaledb_internal` schema**。创建 ClickPipe 时,你需要选择这个 publication。 + ```sql + GRANT USAGE ON SCHEMA "public" TO clickpipes_user; + GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; + ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; + ``` -```sql --- When adding new tables to the ClickPipe, you'll need to add them to the publication as well manually. - CREATE PUBLICATION clickpipes_publication FOR TABLE <...>, <...>, TABLES IN SCHEMA _timescaledb_internal; -``` +3. 为该用户授予复制相关的权限: -:::tip -我们不建议创建 `FOR ALL TABLES` 的 publication。这样会导致从 Postgres 到 ClickPipes 的流量增加(会发送该 pipe 中未包含的其他表的变更),从而降低整体效率。 + ```sql + GRANT rds_replication TO clickpipes_user; + ``` -对于手动创建的 publication,请在将表添加到 pipe 之前,先将需要的表添加到该 publication 中。 -::: +4. 使用你想要复制的表创建一个 [publication](https://www.postgresql.org/docs/current/logical-replication-publication.html)。我们强烈建议仅在 publication 中包含你真正需要的表,以避免额外的性能开销。 -:::info -某些托管服务不会为其管理员用户授予在整个 schema 上创建 publication 所需的权限。 -如果是这种情况,请向服务提供商提交支持工单。或者,你也可以跳过此步骤和后续步骤,改为对数据执行一次性加载。 -::: + :::warning + 任何包含在 publication 中的表都必须定义 **主键(primary key)**,*或者* 将其 **replica identity** 配置为 `FULL`。如何合理限定 publication 的范围,请参阅 [Postgres 常见问题](../faq.md#how-should-i-scope-my-publications-when-setting-up-replication)。 + ::: + + * 为特定表创建 publication: + + ```sql + CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2; + ``` + + * 为特定 schema 中的所有表创建 publication: -3. 为之前创建的用户授予复制权限。 + ```sql + CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public"; + ``` + + `clickpipes` publication 将包含由这些指定表生成的一组变更事件,后续会用于摄取复制流。 + +5. 为之前创建的用户授予复制权限。 ```sql -- Give replication permission to the USER @@ -99,7 +107,8 @@ Timescale 超表本身并不存储插入到其中的任何数据。相反,数 完成以上步骤后,即可[创建 ClickPipe](../index.md)。 + ## 配置网络访问 {#configure-network-access} 如果你想限制到 Timescale 实例的流量,请将[文档中列出的静态 NAT IP](../../index.md#list-of-static-ips) 加入允许列表。 -不同云服务商的具体操作步骤会有所不同,如果你的服务商在侧边栏中列出,请参阅对应说明,否则请向他们提交工单进行咨询。 +不同云服务商的具体操作步骤会有所不同,如果你的服务商在侧边栏中列出,请参阅对应说明,否则请向他们提交工单进行咨询。 \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/language-clients/cpp.md b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/language-clients/cpp.md index 87179f7766b..91b194b1927 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/language-clients/cpp.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/language-clients/cpp.md @@ -66,11 +66,11 @@ clickhouse::Client client{clickhouse::ClientOptions().SetHost("localhost")}; clickhouse::Client client{ clickhouse::ClientOptions{} - .SetHost("your.instance.clickhouse.cloud") - .SetUser("default") - .SetPassword("your-password") + .SetHost("your.instance.clickhouse.cloud") + .SetUser("default") + .SetPassword("your-password") .SetSSLOptions({}) // Enable SSL - .SetPort(9440) // for connections over SS ClickHouse Cloud uses 9440 + .SetPort(9440) // for connections over SSL ClickHouse Cloud uses port 9440 }; ``` diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md index ad288f87666..70a1122c462 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md @@ -12,6 +12,11 @@ integration: - website: 'https://github.com/ClickHouse/clickhouse-cs' --- +import Image from '@theme/IdealImage'; +import cloud_connect_button from '@site/static/images/_snippets/cloud-connect-button.png'; +import connection_details_csharp from '@site/static/images/_snippets/connection-details-csharp.png'; + + # ClickHouse C# 客户端 {#clickhouse-c-client} 用于连接 ClickHouse 的官方 C# 客户端。 @@ -37,8 +42,6 @@ integration: * .NET 9.0 * .NET 10.0 ---- - ## 安装 {#installation} 从 NuGet 安装该软件包: @@ -53,7 +56,6 @@ dotnet add package ClickHouse.Driver Install-Package ClickHouse.Driver ``` -*** ## 快速入门 {#quick-start} @@ -67,70 +69,152 @@ using (var connection = new ClickHouseConnection("Host=my.clickhouse;Protocol=ht } ``` -使用 **Dapper**: -```csharp -using Dapper; -using ClickHouse.Driver.ADO; +## 配置 {#configuration} -using (var connection = new ClickHouseConnection("Host=my.clickhouse")) -{ - var result = await connection.QueryAsync("SELECT name FROM system.databases"); - Console.WriteLine(string.Join('\n', result)); -} -``` +配置与 ClickHouse 的连接有两种方式: -*** +* **连接字符串:** 以分号分隔的键值对,用于指定主机、身份验证凭据以及其他连接选项。 +* **`ClickHouseClientSettings` 对象:** 强类型的配置对象,可以从配置文件加载或在代码中设置。 -## 使用方法 {#usage} +下面是所有配置项的完整列表,包括它们的默认值及其作用。 -### 连接字符串参数 {#connection-string} +### 连接设置 {#connection-settings} -| 参数 | 描述 | 默认值 | -| ------------------- | ----------------------------------------------- | ------------------- | -| `Host` | ClickHouse 服务器地址 | `localhost` | -| `Port` | ClickHouse 服务器端口 | `8123` 或 `8443`(取决于 `Protocol`) | -| `Database` | 初始数据库 | `default` | -| `Username` | 身份验证用户名 | `default` | -| `Password` | 身份验证密码 | *(空)* | -| `Protocol` | 连接协议(`http` 或 `https`) | `http` | -| `Compression` | 启用 Gzip 压缩 | `true` | -| `UseSession` | 启用服务器会话持久化 | `false` | -| `SessionId` | 自定义会话 ID | 随机 GUID | -| `Timeout` | HTTP 超时时间(秒) | `120` | -| `UseServerTimezone` | 对 datetime 列使用服务器的时区 | `true` | -| `UseCustomDecimals` | 对小数使用 `ClickHouseDecimal` | `false` | +| 属性 | 类型 | 默认值 | 连接字符串键 | 描述 | +|----------|------|---------|----------------------|-------------| +| Host | `string` | `"localhost"` | `Host` | ClickHouse 服务器的主机名或 IP 地址 | +| Port | `ushort` | 8123 (HTTP) / 8443 (HTTPS) | `Port` | 端口号;默认值取决于协议 | +| Username | `string` | `"default"` | `Username` | 身份验证用户名 | +| Password | `string` | `""` | `Password` | 身份验证密码 | +| Database | `string` | `""` | `Database` | 默认数据库;为空时使用服务器/用户的默认值 | +| Protocol | `string` | `"http"` | `Protocol` | 连接协议:`"http"` 或 `"https"` | +| Path | `string` | `null` | `Path` | 用于反向代理场景的 URL 路径(例如 `/clickhouse`) | +| Timeout | `TimeSpan` | 2 分钟 | `Timeout` | 操作超时时间(在连接字符串中以秒为单位存储) | -**示例:** `Host=clickhouse;Port=8123;Username=default;Password=;Database=default` +### 数据格式与序列化 {#data-format-serialization} -:::note Sessions +| 属性 | 类型 | 默认值 | 连接字符串键名 | 描述 | +|----------|------|---------|----------------------|-------------| +| UseCompression | `bool` | `true` | `Compression` | 为数据传输启用 gzip 压缩 | +| UseCustomDecimals | `bool` | `true` | `UseCustomDecimals` | 使用 `ClickHouseDecimal` 处理任意精度小数;如果为 false,则使用 .NET `decimal`(128 位上限) | +| UseFormDataParameters | `bool` | `false` | `UseFormDataParameters` | 将参数以表单数据的形式发送,而不是作为 URL 查询字符串 | -`UseSession` 选项启用服务器会话持久化,从而可以使用 `SET` 语句和临时表。会话在 60 秒无活动后将被重置(默认超时时间)。可以通过在 ClickHouse 语句中设置会话相关配置来延长会话生命周期。 +### 会话管理 {#session-management} -`ClickHouseConnection` 类通常允许并行操作(多个线程可以并发执行查询)。但是,启用 `UseSession` 选项后,在任意时刻每个连接只能有一个活动查询(服务器端限制)。 +| 属性 | 类型 | 默认值 | 连接字符串键 | 描述 | +|------------|----------|----------|--------------------------|--------------------------------------------------| +| UseSession | `bool` | `false` | `UseSession` | 启用有状态会话;将请求串行执行 | +| SessionId | `string` | `null` | `SessionId` | 会话 ID;如果为 null 且 UseSession 为 true,则自动生成 GUID | +:::note +`UseSession` 选项启用服务器会话持久化,从而可以使用 `SET` 语句和临时表。会话在 60 秒无活动后将被重置(默认超时时间)。可以通过在 ClickHouse 语句中设置会话相关配置或通过服务器配置来延长会话生命周期。 + +`ClickHouseConnection` 类通常允许并行操作(多个线程可以并发执行查询)。但是,启用 `UseSession` 选项后,在任意时刻,每个连接只能有一个活动查询(这是服务器端限制)。 ::: ---- +### 安全 {#security} -### 连接生命周期与连接池 {#connection-lifetime} +| 属性 | 类型 | 默认值 | 连接字符串键 | 说明 | +|----------|------|---------|----------------------|-------------| +| SkipServerCertificateValidation | `bool` | `false` | — | 跳过 HTTPS 证书验证;**不应用于生产环境** | -`ClickHouse.Driver` 在底层使用 `System.Net.Http.HttpClient`。`HttpClient` 会针对每个端点维护一个连接池。因此: +### HTTP 客户端配置 {#http-client-configuration} -* 一个 `ClickHouseConnection` 对象并不是与 TCP 连接一一对应——多个数据库会话会通过每台服务器上的多个(默认 2 个)TCP 连接复用。 -* 即使 `ClickHouseConnection` 对象已被释放,连接依然可能保持存活。 -* 可以通过传入一个带有自定义 `HttpClientHandler` 的定制 `HttpClient` 来调整此行为。 +| 属性 | 类型 | 默认值 | 连接字符串键 | 说明 | +|----------|------|---------|----------------------|-------------| +| HttpClient | `HttpClient` | `null` | — | 自定义的预配置 HttpClient 实例 | +| HttpClientFactory | `IHttpClientFactory` | `null` | — | 用于创建 HttpClient 实例的自定义工厂 | +| HttpClientName | `string` | `null` | — | 供 HttpClientFactory 在创建特定客户端时使用的名称 | + +### 日志与调试 {#logging-debugging} + +| 属性 | 类型 | 默认值 | 连接字符串键 | 描述 | +|----------|------|---------|----------------------|-------------| +| LoggerFactory | `ILoggerFactory` | `null` | — | 用于诊断日志记录的 LoggerFactory 工厂 | +| EnableDebugMode | `bool` | `false` | — | 启用 .NET 网络跟踪(需要配置 LoggerFactory 且日志级别设置为 Trace);**对性能有显著影响** | -对于依赖注入(DI)环境,提供了一个专用构造函数 `ClickHouseConnection(string connectionString, IHttpClientFactory httpClientFactory, string httpClientName = "")`,用于统一配置 HTTP 客户端设置。 +### 自定义设置与角色 {#custom-settings-roles} -**建议:** +| Property | Type | Default | Connection String Key | Description | +|----------|------|---------|----------------------|-------------| +| CustomSettings | `IDictionary` | Empty | `set_*` prefix | ClickHouse 服务器设置,参见下方说明 | +| Roles | `IReadOnlyList` | Empty | `Roles` | 用逗号分隔的 ClickHouse 角色(例如:`Roles=admin,reader`) | -* 一个 `ClickHouseConnection` 表示与服务器的一个“会话”。它会通过查询服务器版本进行特性探测(因此在打开连接时会有少量开销),但总体而言,多次创建和销毁此类对象是安全的。 -* 建议的连接生命周期是:对一个跨多个查询的大型“事务”使用一个连接对象。由于连接建立存在少量开销,不建议为每个查询单独创建一个连接对象。 -* 如果应用程序处理大量事务,并且需要频繁创建/销毁 `ClickHouseConnection` 对象,建议使用 `IHttpClientFactory` 或一个静态的 `HttpClient` 实例来管理连接。 +:::note +使用 connection string 配置自定义设置时,请使用 `set_` 前缀,例如 `set_max_threads=4`。使用 ClickHouseClientSettings 对象时,不要使用 `set_` 前缀。 + +有关可用设置的完整列表,请参见[此处](https://clickhouse.com/docs/operations/settings/settings)。 +::: --- +### 连接字符串示例 {#connection-string-examples} + +#### 基本连接 {#basic-connection} + +```text +Host=localhost;Port=8123;Username=default;Password=secret;Database=mydb +``` + + +#### 使用自定义 ClickHouse 配置 {#with-custom-clickhouse-settings} + +```text +Host=localhost;set_max_threads=4;set_readonly=1;set_max_memory_usage=10000000000 +``` + + +## 使用方法 {#usage} + +### 连接 {#connecting} + +若要连接 ClickHouse,请通过连接字符串或 `ClickHouseClientSettings` 对象创建一个 `ClickHouseConnection`。有关可用选项,请参见 [Configuration](#configuration) 部分。 + +ClickHouse Cloud 服务的连接信息可以在 ClickHouse Cloud 控制台中获取。 + +选择某个服务并单击 **Connect**: + + + +选择 **C#**,连接信息会显示在下方。 + + + +如果您使用的是自管理 ClickHouse,则连接信息由您的 ClickHouse 管理员配置。 + +使用连接字符串: + +```csharp +using ClickHouse.Driver.ADO; + +using var connection = new ClickHouseConnection("Host=localhost;Username=default;Password=secret"); +await connection.OpenAsync(); +``` + +也可以使用 `ClickHouseClientSettings`: + +```csharp +var settings = new ClickHouseClientSettings +{ + Host = "localhost", + Username = "default", + Password = "secret" +}; +using var connection2 = new ClickHouseConnection(settings); +await connection2.OpenAsync(); +``` + +:::note + +* 一个 `ClickHouseConnection` 表示与服务器的“会话”。它会通过查询服务器版本来探测可用特性(因此在打开连接时会有轻微的开销),但通常情况下,多次创建和销毁此类对象是安全的。 +* 推荐的连接生命周期是:针对一个跨越多个查询的大型“事务”,使用一个连接对象。`ClickHouseConnection` 对象可以长时间存在。由于连接建立时会有少量开销,因此不建议为每个查询都创建一个新的连接对象。 +* 如果应用程序处理大量事务,并且需要频繁创建/销毁 `ClickHouseConnection` 对象,建议使用 `IHttpClientFactory` 或静态的 `HttpClient` 实例来管理连接。 + ::: + +*** + + ### 创建表 {#creating-a-table} 使用标准 SQL 语法创建表: @@ -140,18 +224,19 @@ using ClickHouse.Driver.ADO; using (var connection = new ClickHouseConnection(connectionString)) { - connection.Open(); + await connection.OpenAsync(); using (var command = connection.CreateCommand()) { command.CommandText = "CREATE TABLE IF NOT EXISTS default.my_table (id Int64, name String) ENGINE = Memory"; - command.ExecuteNonQuery(); + await command.ExecuteNonQueryAsync(); } } ``` *** + ### 插入数据 {#inserting-data} 使用参数化查询插入数据: @@ -161,22 +246,25 @@ using ClickHouse.Driver.ADO; using (var connection = new ClickHouseConnection(connectionString)) { - connection.Open(); + await connection.OpenAsync(); using (var command = connection.CreateCommand()) { command.AddParameter("id", "Int64", 1); command.AddParameter("name", "String", "test"); command.CommandText = "INSERT INTO default.my_table (id, name) VALUES ({id:Int64}, {name:String})"; - command.ExecuteNonQuery(); + await command.ExecuteNonQueryAsync(); } } ``` *** + ### 批量插入 {#bulk-insert} +使用 `ClickHouseBulkCopy` 来插入大量数据行。它使用 ClickHouse 的原生行二进制格式高效地流式传输数据,支持并行插入,并且可以将数据拆分为批次。同时,它还可以避免由于参数集过大而导致的“URL too long”错误。 + 使用 `ClickHouseBulkCopy` 时需要: * 目标连接(`ClickHouseConnection` 实例) @@ -188,7 +276,7 @@ using ClickHouse.Driver.ADO; using ClickHouse.Driver.Copy; using var connection = new ClickHouseConnection(connectionString); -connection.Open(); +await connection.OpenAsync(); using var bulkCopy = new ClickHouseBulkCopy(connection) { @@ -217,9 +305,12 @@ Console.WriteLine($"Rows written: {bulkCopy.RowsWritten}"); *** + ### 执行 SELECT 查询 {#performing-select-queries} -执行 SELECT 查询并处理其结果: +使用 `ExecuteReader()` 或 `ExecuteReaderAsync()` 执行 SELECT 查询。返回的 `DbDataReader` 通过 `GetInt64()`、`GetString()` 和 `GetFieldValue()` 等方法,为结果列提供类型安全的访问。 + +调用 `Read()` 以移动到下一行。当没有更多行时,它返回 `false`。可以通过索引(从 0 开始)或列名访问列。 ```csharp using ClickHouse.Driver.ADO; @@ -227,13 +318,13 @@ using System.Data; using (var connection = new ClickHouseConnection(connectionString)) { - connection.Open(); - + await connection.OpenAsync(); + using (var command = connection.CreateCommand()) { command.AddParameter("id", "Int64", 10); command.CommandText = "SELECT * FROM default.my_table WHERE id < {id:Int64}"; - using var reader = command.ExecuteReader(); + using var reader = await command.ExecuteReaderAsync(); while (reader.Read()) { Console.WriteLine($"select: Id: {reader.GetInt64(0)}, Name: {reader.GetString(1)}"); @@ -244,179 +335,562 @@ using (var connection = new ClickHouseConnection(connectionString)) *** + +### SQL 参数 {#sql-parameters} + +在 ClickHouse 中,SQL 查询参数的标准格式为 `{parameter_name:DataType}`。 + +**示例:** + +```sql +SELECT {value:Array(UInt16)} as a +``` + +```sql +SELECT * FROM table WHERE val = {tuple_in_tuple:Tuple(UInt8, Tuple(String, UInt8))} +``` + +```sql +INSERT INTO table VALUES ({val1:Int32}, {val2:Array(UInt8)}) +``` + +:::note +SQL `bind` 参数作为 HTTP URI 查询参数传递,因此如果使用过多,可能会触发 “URL too long” 异常。使用 ClickHouseBulkInsert 可以绕过此限制。 +::: + +*** + + +### 查询 ID {#query-id} + +每个发起查询的方法都会在结果中包含一个 `query_id`。该唯一标识符由客户端为每个查询分配,可用于从 `system.query_log` 表中获取数据(如果已启用),或取消长时间运行的查询。如有需要,用户可以在 ClickHouseCommand 对象中自定义该查询 ID。 + +```csharp +var customQueryId = $"qid-{Guid.NewGuid()}"; + +using var command = connection.CreateCommand(); +command.CommandText = "SELECT version()"; +command.QueryId = customQueryId; + +var version = await command.ExecuteScalarAsync(); +Console.WriteLine($"QueryId: {command.QueryId}"); +``` + +:::tip +如果要覆盖 `QueryId` 参数,必须确保它在每次调用中都是唯一的。使用随机生成的 GUID 是一个不错的选择。 +::: + +*** + + ### 原始数据流 {#raw-streaming} +可以直接以特定格式对数据进行流式传输,从而绕过数据读取器。这在您希望以特定格式将数据保存到文件时非常有用。例如: + ```csharp using var command = connection.CreateCommand(); -command.Text = "SELECT * FROM default.my_table LIMIT 100 FORMAT JSONEachRow"; +command.CommandText = "SELECT * FROM default.my_table LIMIT 100 FORMAT JSONEachRow"; using var result = await command.ExecuteRawResultAsync(CancellationToken.None); using var stream = await result.ReadAsStreamAsync(); using var reader = new StreamReader(stream); -var json = reader.ReadToEnd(); +var json = await reader.ReadToEndAsync(); ``` *** -### 嵌套列支持 {#nested-columns} -ClickHouse 嵌套类型(`Nested(...)`)可以按照数组语义进行读写。 +### 原始流插入 {#raw-stream-insert} -```sql -CREATE TABLE test.nested ( - id UInt32, - params Nested (param_id UInt8, param_val String) -) ENGINE = Memory -``` +使用 `InsertRawStreamAsync` 将数据直接从文件或内存流中插入,格式可以是 CSV、JSON,或任意[ClickHouse 支持的格式](/docs/interfaces/formats)。 -```csharp -using var bulkCopy = new ClickHouseBulkCopy(connection) -{ - DestinationTableName = "test.nested" -}; +**从 CSV 文件插入:** -var row1 = new object[] { 1, new[] { 1, 2, 3 }, new[] { "v1", "v2", "v3" } }; -var row2 = new object[] { 2, new[] { 4, 5, 6 }, new[] { "v4", "v5", "v6" } }; +```csharp +await using var fileStream = File.OpenRead("data.csv"); -await bulkCopy.WriteToServerAsync(new[] { row1, row2 }); +using var response = await connection.InsertRawStreamAsync( + table: "my_table", + stream: fileStream, + format: "CSV", + columns: ["id", "product", "price"]); // Optional: specify columns ``` +:::note +有关用于控制数据摄取行为的选项,请参阅[格式设置文档](/docs/operations/settings/formats)。 +::: + *** -### AggregateFunction 列 {#aggregatefunction-columns} -类型为 `AggregateFunction(...)` 的列不能直接进行查询或插入操作。 +### 更多示例 {#more-examples} -要进行插入: +有关更多实用示例,请参阅 GitHub 仓库中的 [examples 目录](https://github.com/ClickHouse/clickhouse-cs/tree/main/examples)。 -```sql -INSERT INTO t VALUES (uniqState(1)); -``` +## 最佳实践 {#best-practices} -选择: +### 连接生命周期与连接池 {#best-practices-connection-lifetime} -```sql -SELECT uniqMerge(c) FROM t; +`ClickHouse.Driver` 在底层使用 `System.Net.Http.HttpClient`。`HttpClient` 会针对每个端点维护一个连接池。因此: + +* 一个 `ClickHouseConnection` 对象并不是与 TCP 连接一一对应——多个数据库会话会通过每台服务器上的多个 TCP 连接复用。 +* `ClickHouseConnection` 对象本身可以是长生命周期的;其底层实际使用的 TCP 连接会由连接池自动回收与复用。 +* 让 `HttpClient` 在内部管理连接池。不要自行对 `ClickHouseConnection` 对象进行池化管理。 +* 即使 `ClickHouseConnection` 对象已被释放,连接依然可能保持存活。 +* 可以通过传入自定义的 `HttpClientFactory`,或带有自定义 `HttpClientHandler` 的 `HttpClient` 来调整此行为。 + +对于依赖注入(DI)环境,提供了一个专用构造函数 `ClickHouseConnection(string connectionString, IHttpClientFactory httpClientFactory, string httpClientName = "")`,用于让 ClickHouseConnection 请求一个具名的 HTTP 客户端。 + +:::important +在使用自定义 `HttpClient` 或 `HttpClientFactory` 时,确保将 `PooledConnectionIdleTimeout` 设置为小于服务器 `keep_alive_timeout` 的值,以避免由于半关闭的连接导致的错误。Cloud 部署的默认 `keep_alive_timeout` 是 10 秒。 +::: + +--- + +### DateTime 处理 {#best-practice-datetime} + +1. **尽可能使用 UTC。** 将时间戳存储为 `DateTime('UTC')` 列,并在代码中使用 `DateTimeKind.Utc`,以消除时区歧义。 + +2. **使用 `DateTimeOffset` 进行显式时区处理。** 它始终表示一个确切的时间点,并包含偏移量信息。 + +3. **在 HTTP 参数类型提示中指定时区。** 当向非 UTC 的列传递带有 `Unspecified` DateTime 值的参数时: + ```csharp + command.AddParameter("dt", value, "DateTime('Europe/Amsterdam')"); + ``` + +--- + +### 异步插入 {#async-inserts} + +[异步插入](/docs/optimize/asynchronous-inserts) 将批处理的职责从客户端转移到服务器。服务器无需客户端进行批处理,而是自行对传入数据进行缓冲,并根据可配置阈值将其写入存储。这对于高并发场景(例如可观测性负载中有许多代理程序发送小体量数据的情况)非常有用。 + +可以通过 `CustomSettings` 或连接字符串启用异步插入: + +```csharp +// Using CustomSettings +var settings = new ClickHouseClientSettings("Host=localhost"); +settings.CustomSettings["async_insert"] = 1; +settings.CustomSettings["wait_for_async_insert"] = 1; // Recommended: wait for flush acknowledgment + +// Or via connection string +// "Host=localhost;set_async_insert=1;set_wait_for_async_insert=1" ``` +**两种模式**(由 `wait_for_async_insert` 控制): + +| 模式 | 行为 | 使用场景 | +| ------------------------- | ---------------------------------- | --------------- | +| `wait_for_async_insert=1` | 在数据刷写到磁盘后才返回 INSERT。错误会返回给客户端。 | **推荐**用于大多数工作负载 | +| `wait_for_async_insert=0` | 在数据进入缓冲区后立即返回 INSERT。不保证数据一定会被持久化。 | 仅在可以接受数据丢失时使用 | + +:::warning +在 `wait_for_async_insert=0` 的情况下,错误只会在刷写阶段暴露,且无法追溯到最初的 INSERT。客户端也不会提供背压机制,存在导致服务器过载的风险。 +::: + +**关键设置:** + +| 设置 | 描述 | +| ------------------------------- | ------------------ | +| `async_insert_max_data_size` | 当缓冲区达到此大小(字节)时触发刷写 | +| `async_insert_busy_timeout_ms` | 在达到此超时时间(毫秒)后触发刷写 | +| `async_insert_max_query_number` | 当累计达到此数量的查询后触发刷写 | + *** -### SQL 参数 {#sql-parameters} -要在查询中传递参数,必须使用 ClickHouse 的参数格式,形式如下: +### 会话 {#best-practices-sessions} -```sql -{:} -``` +仅在需要有状态的服务端功能时才启用会话,例如: -**示例:** +* 临时表(`CREATE TEMPORARY TABLE`) +* 在多个语句之间保持查询上下文 +* 会话级设置(`SET max_threads = 4`) -```sql -SELECT {value:Array(UInt16)} as value -``` +启用会话后,请求会被串行化,以防止同一会话被并发使用。对于不需要会话状态的工作负载,这会引入额外的开销。 -```sql -SELECT * FROM table WHERE val = {tuple_in_tuple:Tuple(UInt8, Tuple(String, UInt8))} -``` +```csharp +var settings = new ClickHouseClientSettings +{ + Host = "localhost", + UseSession = true, + SessionId = "my-session", // Optional -- will be auto-generated if not provided +}; -```sql -INSERT INTO table VALUES ({val1:Int32}, {val2:Array(UInt8)}) +await using var connection = new ClickHouseConnection(settings); +await connection.OpenAsync(); + +await using var cmd1 = connection.CreateCommand("CREATE TEMPORARY TABLE temp_ids (id UInt64)"); +await cmd1.ExecuteNonQueryAsync(); + +await using var cmd2 = connection.CreateCommand("INSERT INTO temp_ids VALUES (1), (2), (3)"); +await cmd2.ExecuteNonQueryAsync(); + +await using var cmd3 = connection.CreateCommand("SELECT * FROM users WHERE id IN (SELECT id FROM temp_ids)"); +await using var reader = await cmd3.ExecuteReaderAsync(); ``` + +## 支持的数据类型 {#supported-data-types} + +`ClickHouse.Driver` 支持所有 ClickHouse 数据类型。下表展示了从数据库读取数据时,ClickHouse 类型与原生 .NET 类型之间的映射关系。 + +### 类型映射:从 ClickHouse 读取数据 {#clickhouse-native-type-map-reading} + +#### 整数类型 {#type-map-reading-integer} + +| ClickHouse 类型 | .NET 类型 | +|-----------------|-----------| +| Int8 | `sbyte` | +| UInt8 | `byte` | +| Int16 | `short` | +| UInt16 | `ushort` | +| Int32 | `int` | +| UInt32 | `uint` | +| Int64 | `long` | +| UInt64 | `ulong` | +| Int128 | `BigInteger` | +| UInt128 | `BigInteger` | +| Int256 | `BigInteger` | +| UInt256 | `BigInteger` | + +--- + +#### 浮点数类型 {#type-map-reading-floating-points} + +| ClickHouse 类型 | .NET 类型 | +|-----------------|-----------| +| Float32 | `float` | +| Float64 | `double` | +| BFloat16 | `float` | + +--- + +#### Decimal 类型 {#type-map-reading-decimal} + +| ClickHouse Type | .NET Type | +|-----------------|-----------| +| Decimal(P, S) | `decimal` / `ClickHouseDecimal` | +| Decimal32(S) | `decimal` / `ClickHouseDecimal` | +| Decimal64(S) | `decimal` / `ClickHouseDecimal` | +| Decimal128(S) | `decimal` / `ClickHouseDecimal` | +| Decimal256(S) | `decimal` / `ClickHouseDecimal` | + :::note +Decimal 类型转换由 UseCustomDecimals 设置项控制。 +::: -* SQL `bind` 参数作为 HTTP URI 查询参数传递,因此如果使用过多,可能会触发 “URL too long” 异常。 -* 若要插入大量记录,请考虑使用批量插入功能。 - ::: +--- + +#### 布尔类型 {#type-map-reading-boolean} + +| ClickHouse 类型 | .NET 类型 | +|-----------------|-----------| +| Bool | `bool` | + +--- + +#### 字符串类型 {#type-map-reading-strings} + +| ClickHouse 类型 | .NET 类型 | +|-----------------|-----------| +| String | `string` | +| FixedString(N) | `byte[]` | + +--- + +#### 日期和时间类型 {#type-map-reading-datetime} + +| ClickHouse Type | .NET Type | +| --------------- | ---------- | +| Date | `DateTime` | +| Date32 | `DateTime` | +| DateTime | `DateTime` | +| DateTime32 | `DateTime` | +| DateTime64 | `DateTime` | +| Time | `TimeSpan` | +| Time64 | `TimeSpan` | + +ClickHouse 在内部将 `DateTime` 和 `DateTime64` 值存储为 Unix 时间戳(自 Unix 纪元起的秒或子秒单位)。虽然存储始终为 UTC,但列可以关联一个时区,这会影响值的显示和解释方式。 + +读取 `DateTime` 值时,会根据列的时区设置 `DateTime.Kind` 属性: + +| Column Definition | Returned DateTime.Kind | Notes | +| ------------------------------ | ---------------------- | ----------------- | +| `DateTime('UTC')` | `Utc` | 显式 UTC 时区 | +| `DateTime('Europe/Amsterdam')` | `Unspecified` | 已应用偏移量 | +| `DateTime` | `Unspecified` | 按原样保留墙上时钟时间(本地时刻) | + +对于非 UTC 时区的列,返回的 `DateTime` 表示该时区中的墙上时钟时间。使用 `ClickHouseDataReader.GetDateTimeOffset()` 获取带有该时区正确偏移量的 `DateTimeOffset`: + +```csharp +var reader = (ClickHouseDataReader)await connection.ExecuteReaderAsync( + "SELECT toDateTime('2024-06-15 14:30:00', 'Europe/Amsterdam')"); +reader.Read(); + +var dt = reader.GetDateTime(0); // 2024-06-15 14:30:00, Kind=Unspecified +var dto = reader.GetDateTimeOffset(0); // 2024-06-15 14:30:00 +02:00 (CEST) +``` + +对于**没有**显式时区的列(即使用 `DateTime` 而不是 `DateTime('Europe/Amsterdam')`),驱动会返回一个 `Kind=Unspecified` 的 `DateTime`。这样可以在不对时区做任何假设的前提下,精确保留与存储值一致的挂钟时间(wall-clock time)。 + +如果你需要对没有显式时区的列实现具备时区感知的行为,可以: + +1. 在列定义中使用显式时区:`DateTime('UTC')` 或 `DateTime('Europe/Amsterdam')` +2. 在读取之后自行应用时区转换。 *** -## 支持的数据类型 {#supported-data-types} -`ClickHouse.Driver` 支持以下 ClickHouse 数据类型及其对应的 .NET 类型映射: +#### 其他类型 {#type-map-reading-other} + +| ClickHouse 类型 | .NET 类型 | +|-----------------|-----------| +| UUID | `Guid` | +| IPv4 | `IPAddress` | +| IPv6 | `IPAddress` | +| Nothing | `DBNull` | +| Dynamic | 参见注释 | +| Json | `JsonObject` | +| Array(T) | `T[]` | +| Tuple(T1, T2, ...) | `Tuple` / `LargeTuple` | +| Map(K, V) | `Dictionary` | +| Nullable(T) | `T?` | +| Enum8 | `string` | +| Enum16 | `string` | +| LowCardinality(T) | 与 T 相同 | +| SimpleAggregateFunction | 与底层类型相同 | +| Nested(...) | `Tuple[]` | +| Variant(T1, T2, ...) | 参见注释 | +| QBit(T, dimension) | `T[]` | + +:::note +Dynamic 和 Variant 类型会根据每一行中实际的底层类型转换为对应的类型。 +::: + +--- + +#### 几何类型 {#type-map-reading-geometry} + +| ClickHouse Type | .NET Type | +|-----------------|-----------| +| Point | `Tuple` | +| Ring | `Tuple[]` | +| LineString | `Tuple[]` | +| Polygon | `Ring[]` | +| MultiLineString | `LineString[]` | +| MultiPolygon | `Polygon[]` | +| Geometry | 参见说明 | + +:::note +Geometry 类型是一个 Variant 类型,可以包含任意几何类型。它会被转换为对应的类型。 +::: + +--- + +### 类型映射:写入 ClickHouse {#clickhouse-native-type-map-writing} + +在插入数据时,驱动会将 .NET 类型转换为相应的 ClickHouse 类型。下表展示了每种 ClickHouse 列类型可以接受的 .NET 类型。 + +#### 整数类型 {#type-map-writing-integer} + +| ClickHouse 类型 | 可接受的 .NET 类型 | 备注 | +|-----------------|---------------------|-------| +| Int8 | `sbyte` 以及任何与 `Convert.ToSByte()` 兼容的类型 | | +| UInt8 | `byte` 以及任何与 `Convert.ToByte()` 兼容的类型 | | +| Int16 | `short` 以及任何与 `Convert.ToInt16()` 兼容的类型 | | +| UInt16 | `ushort` 以及任何与 `Convert.ToUInt16()` 兼容的类型 | | +| Int32 | `int` 以及任何与 `Convert.ToInt32()` 兼容的类型 | | +| UInt32 | `uint` 以及任何与 `Convert.ToUInt32()` 兼容的类型 | | +| Int64 | `long` 以及任何与 `Convert.ToInt64()` 兼容的类型 | | +| UInt64 | `ulong` 以及任何与 `Convert.ToUInt64()` 兼容的类型 | | +| Int128 | `BigInteger`、`decimal`、`double`、`float`、`int`、`uint`、`long`、`ulong`,以及任何与 `Convert.ToInt64()` 兼容的类型 | | +| UInt128 | `BigInteger`、`decimal`、`double`、`float`、`int`、`uint`、`long`、`ulong`,以及任何与 `Convert.ToInt64()` 兼容的类型 | | +| Int256 | `BigInteger`、`decimal`、`double`、`float`、`int`、`uint`、`long`、`ulong`,以及任何与 `Convert.ToInt64()` 兼容的类型 | | +| UInt256 | `BigInteger`、`decimal`、`double`、`float`、`int`、`uint`、`long`、`ulong`,以及任何与 `Convert.ToInt64()` 兼容的类型 | | + +--- + +#### 浮点类型 {#type-map-writing-floating-point} + +| ClickHouse Type | 可接受的 .NET 类型 | 说明 | +|-----------------|---------------------|-------| +| Float32 | `float`,任何与 `Convert.ToSingle()` 兼容的类型 | | +| Float64 | `double`,任何与 `Convert.ToDouble()` 兼容的类型 | | +| BFloat16 | `float`,任何与 `Convert.ToSingle()` 兼容的类型 | 截断为 16 位 bfloat16 格式 | + +--- + +#### 布尔类型 {#type-map-writing-boolean} + +| ClickHouse 类型 | 可接受的 .NET 类型 | 备注 | +|-----------------|---------------------|-------| +| Bool | `bool` | | + +--- + +#### 字符串类型 {#type-map-writing-strings} -### 布尔类型 {#boolean-types} +| ClickHouse 类型 | 可接受的 .NET 类型 | 说明 | +|-----------------|---------------------|-------| +| String | `string`,任何与 `Convert.ToString()` 兼容的类型 | | +| FixedString(N) | `string`,`byte[]` | 字符串以 UTF-8 编码,并会进行填充或截断;`byte[]` 的长度必须正好为 N 字节 | -* `Bool` → `bool` +--- -### 数值类型 {#numeric-types} +#### 日期和时间类型 {#type-map-writing-datetime} -**有符号整数:** +| ClickHouse Type | 可接受的 .NET 类型 | 说明 | +| --------------- | ----------------------------------------------------------------- | -------------------------------------------------------------------- | +| Date | `DateTime`, `DateTimeOffset`, `DateOnly`, NodaTime 类型 | 转换为自 Unix 纪元起的天数,类型为 UInt16 | +| Date32 | `DateTime`, `DateTimeOffset`, `DateOnly`, NodaTime 类型 | 转换为自 Unix 纪元起的天数,类型为 Int32 | +| DateTime | `DateTime`, `DateTimeOffset`, `DateOnly`, NodaTime 类型 | 详细行为见下文 | +| DateTime32 | `DateTime`, `DateTimeOffset`, `DateOnly`, NodaTime 类型 | 与 DateTime 相同 | +| DateTime64 | `DateTime`, `DateTimeOffset`, `DateOnly`, NodaTime 类型 | 精度由 Scale 参数决定 | +| Time | `TimeSpan`, `int` | 限制在 ±999:59:59 范围内;`int` 按秒解释 | +| Time64 | `TimeSpan`, `decimal`, `double`, `float`, `int`, `long`, `string` | `string` 按 `[-]HHH:MM:SS[.fraction]` 解析;限制在 ±999:59:59.999999999 范围内 | -* `Int8` → `sbyte` -* `Int16` → `short` -* `Int32` → `int` -* `Int64` → `long` -* `Int128` → `BigInteger` -* `Int256` → `BigInteger` +在写入值时,驱动会遵循 `DateTime.Kind`: -**无符号整数:** +| `DateTime.Kind` | 行为 | +| --------------- | ------------------------- | +| `Utc` | 精确保留同一时间点 | +| `Local` | 使用系统时区转换为 UTC,同时精确保留时间点 | +| `Unspecified` | 按目标列所在时区的本地墙上时间(本地时钟时间)处理 | -* `UInt8` → `byte` -* `UInt16` → `ushort` -* `UInt32` → `uint` -* `UInt64` → `ulong` -* `UInt128` → `BigInteger` -* `UInt256` → `BigInteger` +`DateTimeOffset` 值始终精确保留时间点。 -**浮点数:** +**示例:UTC DateTime(时间点保持不变)** -* `Float32` → `float` -* `Float64` → `double` +```csharp +var utcTime = new DateTime(2024, 1, 15, 12, 0, 0, DateTimeKind.Utc); +// Stored as 12:00 UTC +// Read from DateTime('Europe/Amsterdam') column: 13:00 (UTC+1) +// Read from DateTime('UTC') column: 12:00 UTC +``` -**Decimal 类型:** +**示例:未指定 DateTime(墙上时钟时间)** -* `Decimal` → `decimal` -* `Decimal32` → `decimal` -* `Decimal64` → `decimal` -* `Decimal128` → `decimal` -* `Decimal256` → `BigDecimal` +```csharp +var wallClock = new DateTime(2024, 1, 15, 14, 30, 0, DateTimeKind.Unspecified); +// Written to DateTime('Europe/Amsterdam') column: stored as 14:30 Amsterdam time +// Read back from DateTime('Europe/Amsterdam') column: 14:30 +``` -### 字符串类型 {#string-types} +**建议:** 为获得最简单且最可预测的行为,请在所有与 DateTime 相关的操作中使用 `DateTimeKind.Utc` 或 `DateTimeOffset`。这样可以确保无论服务器时区、客户端时区还是列时区如何,代码都能保持一致的运行方式。 -* `String` → `string` -* `FixedString` → `string` -### 日期时间类型 {#date-time-types} +#### HTTP 参数与批量复制 {#datetime-http-param-vs-bulkcopy} -* `Date` → `DateTime` -* `Date32` → `DateTime` -* `DateTime` → `DateTime` -* `DateTime32` → `DateTime` -* `DateTime64` → `DateTime` +在写入 `Unspecified` 的 DateTime 值时,通过 HTTP 参数绑定和通过批量复制之间存在一个重要区别: -### 网络类型 {#network-types} +**Bulk Copy** 知道目标列的时区,并会在该时区中正确解释 `Unspecified` 值。 -* `IPv4` → `IPAddress` -* `IPv6` → `IPAddress` +**HTTP Parameters** 无法自动获知列的时区。你必须在参数类型提示中显式指定该时区: -### 地理数据类型 {#geographic-types} +```csharp +// CORRECT: Timezone in type hint +command.AddParameter("dt", myDateTime, "DateTime('Europe/Amsterdam')"); +command.CommandText = "INSERT INTO table (dt_amsterdam) VALUES ({dt:DateTime('Europe/Amsterdam')})"; + +// INCORRECT: Without timezone hint, interpreted as UTC +command.AddParameter("dt", myDateTime); +command.CommandText = "INSERT INTO table (dt_amsterdam) VALUES ({dt:DateTime})"; +// String value "2024-01-15 14:30:00" interpreted as UTC, not Amsterdam time! +``` + +| `DateTime.Kind` | 目标列 | HTTP 参数(带时区提示) | HTTP 参数(无时区提示) | 批量复制 | +| --------------- | ---------------- | -------------- | -------------- | --------- | +| `Utc` | UTC | 时间点保持不变 | 时间点保持不变 | 时间点保持不变 | +| `Utc` | Europe/Amsterdam | 时间点保持不变 | 时间点保持不变 | 时间点保持不变 | +| `Local` | 任意 | 时间点保持不变 | 时间点保持不变 | 时间点保持不变 | +| `Unspecified` | UTC | 视为 UTC | 视为 UTC | 视为 UTC | +| `Unspecified` | Europe/Amsterdam | 视为阿姆斯特丹时间 | **视为 UTC** | 视为阿姆斯特丹时间 | + +*** -* `Point` → `Tuple` -* `Ring` → `Array of Points` -* `Polygon` → `Array of Rings` -### 复杂类型 {#complex-types} +#### Decimal 类型 {#type-map-writing-decimal} -* `Array(T)` → `任意类型的数组` -* `Tuple(T1, T2, ...)` → `任意类型的元组` -* `Nullable(T)` → `任意类型的可空版本` -* `Map(K, V)` → `Dictionary` +| ClickHouse 类型 | 可接受的 .NET 类型 | 说明 | +|-----------------|--------------------|------| +| Decimal(P,S) | `decimal`, `ClickHouseDecimal`, 任意与 `Convert.ToDecimal()` 兼容的类型 | 当超出精度时抛出 `OverflowException` | +| Decimal32 | `decimal`, `ClickHouseDecimal`, 任意与 `Convert.ToDecimal()` 兼容的类型 | 最大精度为 9 | +| Decimal64 | `decimal`, `ClickHouseDecimal`, 任意与 `Convert.ToDecimal()` 兼容的类型 | 最大精度为 18 | +| Decimal128 | `decimal`, `ClickHouseDecimal`, 任意与 `Convert.ToDecimal()` 兼容的类型 | 最大精度为 38 | +| Decimal256 | `decimal`, `ClickHouseDecimal`, 任意与 `Convert.ToDecimal()` 兼容的类型 | 最大精度为 76 | --- -### DateTime 处理 {#datetime-handling} +#### 其他类型 {#type-map-writing-other} + +| ClickHouse 类型 | 可接受的 .NET 类型 | 说明 | +|-----------------|---------------------|------| +| UUID | `Guid`, `string` | 字符串将被解析为 Guid | +| IPv4 | `IPAddress`, `string` | 必须为 IPv4;字符串通过 `IPAddress.Parse()` 解析 | +| IPv6 | `IPAddress`, `string` | 必须为 IPv6;字符串通过 `IPAddress.Parse()` 解析 | +| Nothing | 任意类型 | 不写入任何内容(no-op) | +| Dynamic | — | **不支持**(抛出 `NotImplementedException`) | +| Json | `string`, `JsonObject`, 任意对象 | 字符串将被解析为 JSON;对象通过 `JsonSerializer` 序列化 | +| Array(T) | `IList`, `null` | 将 null 写为空数组 | +| Tuple(T1, T2, ...) | `ITuple`, `IList` | 元素数量必须与元组的元数一致 | +| Map(K, V) | `IDictionary` | | +| Nullable(T) | `null`, `DBNull`,或 T 可接受的类型 | 在值前写入一个 null 标志字节 | +| Enum8 | `string`, `sbyte`, 数值类型 | 字符串将在枚举字典中查找对应值 | +| Enum16 | `string`, `short`, 数值类型 | 字符串将在枚举字典中查找对应值 | +| LowCardinality(T) | T 可接受的类型 | 委托给底层类型 | +| SimpleAggregateFunction | 底层类型可接受的类型 | 委托给底层类型 | +| Nested(...) | 元组组成的 `IList` | 元素数量必须与字段数量一致 | +| Variant(T1, T2, ...) | 匹配 T1、T2 等之一的值 | 如果没有类型匹配则抛出 `ArgumentException` | +| QBit(T, dim) | `IList` | 委托给 Array;维度仅作为元数据存在 | + +--- -`ClickHouse.Driver` 会正确处理时区和 `DateTime.Kind` 属性。具体来说: +#### 几何类型 {#type-map-writing-geometry} -* `DateTime` 值以 UTC 返回。用户可以自行进行转换,或者在 `DateTime` 实例上使用 `ToLocalTime()` 方法。 -* 插入时,`DateTime` 值按如下方式处理: - * `UTC` 的 `DateTime` 会按原样插入,因为 ClickHouse 在内部以 UTC 存储它们。 - * `Local` 的 `DateTime` 会根据用户本地时区设置转换为 UTC。 - * `Unspecified` 的 `DateTime` 会被视为处于目标列对应的时区,因此会根据该时区转换为 UTC。 -* 对于未指定时区的列,默认使用客户端时区(兼容旧行为)。可以在连接字符串中使用 `UseServerTimezone` 标志来改用服务器时区。 +| ClickHouse Type | 接受的 .NET 类型 | 说明 | +|-----------------|------------------|------| +| Point | `System.Drawing.Point`、`ITuple`、`IList`(含 2 个元素) | | +| Ring | Point 的 `IList` | | +| LineString | Point 的 `IList` | | +| Polygon | Ring 的 `IList` | | +| MultiLineString | LineString 的 `IList` | | +| MultiPolygon | Polygon 的 `IList` | | +| Geometry | 以上任意几何类型 | 包含所有几何类型的变体 | --- +#### 不支持写入 {#type-map-writing-not-supported} + +| ClickHouse 类型 | 说明 | +|-----------------|-------| +| Dynamic | 会抛出 `NotImplementedException` | +| AggregateFunction | 会抛出 `AggregateFunctionException` | + +--- + +### 嵌套类型处理 {#nested-type-handling} + +ClickHouse 嵌套类型(`Nested(...)`)可以按照数组语义进行读写。 + +```sql +CREATE TABLE test.nested ( + id UInt32, + params Nested (param_id UInt8, param_val String) +) ENGINE = Memory +``` + +```csharp +using var bulkCopy = new ClickHouseBulkCopy(connection) +{ + DestinationTableName = "test.nested" +}; + +var row1 = new object[] { 1, new[] { 1, 2, 3 }, new[] { "v1", "v2", "v3" } }; +var row2 = new object[] { 2, new[] { 4, 5, 6 }, new[] { "v4", "v5", "v6" } }; + +await bulkCopy.WriteToServerAsync(new[] { row1, row2 }); +``` + + ## 日志和诊断 {#logging-and-diagnostics} ClickHouse .NET 客户端与 `Microsoft.Extensions.Logging` 抽象层集成,提供轻量级、可选启用的日志记录功能。启用后,驱动程序会针对连接生命周期事件、命令执行、传输操作以及批量复制上传输出结构化消息。日志记录完全是可选的——未配置记录器的应用程序将继续正常运行,并且不会引入任何额外开销。 @@ -521,6 +995,7 @@ await connection.OpenAsync(); | `ClickHouse.Driver.Command` | `ClickHouseCommand` | 查询执行开始/完成、计时、查询 ID、服务器统计信息和错误详情。 | | `ClickHouse.Driver.Transport` | `ClickHouseConnection` | 底层 HTTP 流式请求、压缩标志、响应状态码以及传输失败情况。 | | `ClickHouse.Driver.BulkCopy` | `ClickHouseBulkCopy` | 元数据加载、批量操作、行计数以及上传完成情况。 | +| `ClickHouse.Driver.NetTrace` | `TraceHelper` | 网络跟踪,仅在启用调试模式时生效。 | #### 示例:排查连接问题 {#logging-config-example} @@ -547,7 +1022,7 @@ await connection.OpenAsync(); ### 调试模式:网络跟踪与诊断 {#logging-debugmode} -为帮助诊断网络问题,驱动程序库提供了一个辅助工具,可启用对 .NET 网络内部机制的底层跟踪。要启用它,必须传入一个 LoggerFactory,并将日志级别设置为 Trace,同时将 EnableDebugMode 设置为 true(或者通过 `ClickHouse.Driver.Diagnostic.TraceHelper` 类手动启用)。警告:这会生成极其冗长的日志,并影响性能。不建议在生产环境中启用调试模式。 +为帮助诊断网络问题,驱动程序库提供了一个辅助工具,可启用对 .NET 网络内部机制的底层跟踪。要启用它,必须传入一个 LoggerFactory,并将日志级别设置为 Trace,同时将 EnableDebugMode 设置为 true(或者通过 `ClickHouse.Driver.Diagnostic.TraceHelper` 类手动启用)。日志事件将记录到 `ClickHouse.Driver.NetTrace` 类别中。警告:这会生成极其冗长的日志,并影响性能。不建议在生产环境中启用调试模式。 ```csharp var loggerFactory = LoggerFactory.Create(builder => @@ -564,11 +1039,130 @@ var settings = new ClickHouseClientSettings() }; ``` -*** -### ORM & Dapper 支持 {#orm-support} +## OpenTelemetry {#opentelemetry} + +该驱动通过 .NET [`System.Diagnostics.Activity`](https://learn.microsoft.com/en-us/dotnet/core/diagnostics/distributed-tracing) API 提供对 OpenTelemetry 分布式追踪的内置支持。启用后,驱动会为数据库操作生成 spans,这些 spans 可以导出到 Jaeger 等可观测性后端系统,或者通过 [OpenTelemetry Collector](https://clickhouse.com/docs/observability/integrating-opentelemetry) 导出到 ClickHouse 本身。 + +### 启用追踪 {#opentelemetry-enabling} -`ClickHouse.Driver` 支持 Dapper(有一定限制)。 +在 ASP.NET Core 应用程序中,将 ClickHouse 驱动程序的 `ActivitySource` 添加到 OpenTelemetry 配置中: + +```csharp +builder.Services.AddOpenTelemetry() + .WithTracing(tracing => tracing + .AddSource(ClickHouseDiagnosticsOptions.ActivitySourceName) // Subscribe to ClickHouse driver spans + .AddAspNetCoreInstrumentation() + .AddOtlpExporter()); // Or AddJaegerExporter(), etc. +``` + +用于控制台应用程序、测试或手动设置: + +```csharp +using OpenTelemetry; +using OpenTelemetry.Trace; + +var tracerProvider = Sdk.CreateTracerProviderBuilder() + .AddSource(ClickHouseDiagnosticsOptions.ActivitySourceName) + .AddConsoleExporter() + .Build(); +``` + + +### Span 属性 {#opentelemetry-attributes} + +每个 span 都包含标准的 OpenTelemetry 数据库属性,以及可用于调试的 ClickHouse 特有查询统计信息。 + +| Attribute | Description | +|-----------|-------------| +| `db.system` | 始终为 `"clickhouse"` | +| `db.name` | 数据库名称 | +| `db.user` | 用户名 | +| `db.statement` | SQL 查询(如果已启用) | +| `db.clickhouse.read_rows` | 查询读取的行数 | +| `db.clickhouse.read_bytes` | 查询读取的字节数 | +| `db.clickhouse.written_rows` | 查询写入的行数 | +| `db.clickhouse.written_bytes` | 查询写入的字节数 | +| `db.clickhouse.elapsed_ns` | 服务器端执行时间(纳秒) | + +### 配置选项 {#opentelemetry-configuration} + +通过 `ClickHouseDiagnosticsOptions` 控制跟踪行为: + +```csharp +using ClickHouse.Driver.Diagnostic; + +// Include SQL statements in spans (default: false for security) +ClickHouseDiagnosticsOptions.IncludeSqlInActivityTags = true; + +// Truncate long SQL statements (default: 1000 characters) +ClickHouseDiagnosticsOptions.StatementMaxLength = 500; +``` + +:::warning +启用 `IncludeSqlInActivityTags` 可能会在跟踪数据中暴露敏感数据。在生产环境中请谨慎使用。 +::: + + +## TLS 配置 {#tls-configuration} + +通过 HTTPS 连接到 ClickHouse 时,可以使用多种方式配置 TLS/SSL 行为。 + +### 自定义证书验证 {#custom-certificate-validation} + +在生产环境中如需自定义证书验证逻辑,请提供一个自定义的 `HttpClient` 实例,并配置 `ServerCertificateCustomValidationCallback` 处理程序: + +```csharp +using System.Net; +using System.Net.Security; +using ClickHouse.Driver.ADO; + +var handler = new HttpClientHandler +{ + // Required when compression is enabled (default) + AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate, + + ServerCertificateCustomValidationCallback = (message, cert, chain, sslPolicyErrors) => + { + // Example: Accept a specific certificate thumbprint + if (cert?.Thumbprint == "YOUR_EXPECTED_THUMBPRINT") + return true; + + // Example: Accept certificates from a specific issuer + if (cert?.Issuer.Contains("YourOrganization") == true) + return true; + + // Default: Use standard validation + return sslPolicyErrors == SslPolicyErrors.None; + }, +}; + +var httpClient = new HttpClient(handler) { Timeout = TimeSpan.FromMinutes(5) }; + +var settings = new ClickHouseClientSettings +{ + Host = "my.clickhouse.server", + Protocol = "https", + HttpClient = httpClient, +}; + +using var connection = new ClickHouseConnection(settings); +await connection.OpenAsync(); +``` + +:::note +在提供自定义 HttpClient 时需要注意的重要事项 + +* **自动解压缩**:如果未禁用压缩功能(默认启用压缩),必须启用 `AutomaticDecompression`。 +* **空闲超时**:将 `PooledConnectionIdleTimeout` 设置为小于服务器的 `keep_alive_timeout`(ClickHouse Cloud 默认为 10 秒),以避免由于半开连接导致的连接错误。 + ::: + + +## ORM 支持 {#orm-support} + +### Dapper {#orm-support-dapper} + +`ClickHouse.Driver` 可以与 Dapper 一起使用,但不支持匿名对象。 **可运行示例:** @@ -587,3 +1181,89 @@ connection.QueryAsync( new { p1 = 42 } ); ``` + + +### Linq2db {#orm-support-linq2db} + +此驱动程序兼容 [linq2db](https://github.com/linq2db/linq2db),这是一个用于 .NET 的轻量级 ORM 和 LINQ 提供程序。有关详细文档,请参阅该项目主页。 + +**使用示例:** + +使用 ClickHouse 提供程序创建一个 `DataConnection` 实例: + +```csharp +using LinqToDB; +using LinqToDB.Data; +using LinqToDB.DataProvider.ClickHouse; + +var connectionString = "Host=localhost;Port=8123;Database=default"; +var options = new DataOptions() + .UseClickHouse(connectionString, ClickHouseProvider.ClickHouseDriver); + +await using var db = new DataConnection(options); +``` + +可以使用特性或 fluent 配置来定义表映射。如果类名和属性名与表名和列名完全一致,则无需额外配置: + +```csharp +public class Product +{ + public int Id { get; set; } + public string Name { get; set; } + public decimal Price { get; set; } +} +``` + +**查询:** + +```csharp +await using var db = new DataConnection(options); + +var products = await db.GetTable() + .Where(p => p.Price > 100) + .OrderByDescending(p => p.Name) + .ToListAsync(); +``` + +**批量复制:** + +使用 `BulkCopyAsync` 以高效地执行批量插入。 + +```csharp +await using var db = new DataConnection(options); +var table = db.GetTable(); + +var options = new BulkCopyOptions +{ + MaxBatchSize = 100000, + MaxDegreeOfParallelism = 1, + WithoutSession = true +}; + +await table.BulkCopyAsync(options, products); +``` + + +### Entity framework core {#orm-support-ef-core} + +当前尚不支持 Entity Framework Core。 + +## 限制 {#limitations} + +### AggregateFunction 列 {#aggregatefunction-columns} + +类型为 `AggregateFunction(...)` 的列不能直接进行查询或插入操作。 + +要进行插入: + +```sql +INSERT INTO t VALUES (uniqState(1)); +``` + +选择: + +```sql +SELECT uniqMerge(c) FROM t; +``` + +*** \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/language-clients/java/client/client.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/language-clients/java/client/client.mdx deleted file mode 100644 index 9209759134b..00000000000 --- a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/language-clients/java/client/client.mdx +++ /dev/null @@ -1,1410 +0,0 @@ ---- -sidebar_label: '客户端' -sidebar_position: 2 -keywords: ['clickhouse', 'java', 'client', 'integrate'] -description: 'Java ClickHouse连接器' -slug: /integrations/language-clients/java/client -title: 'Java客户端' -doc_type: 'reference' ---- - -import ClientVersionDropdown from '@theme/ClientVersionDropdown/ClientVersionDropdown'; -import Version from '@theme/ClientVersionDropdown/Version'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; -import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWrapper'; - - - - - -用于通过协议与数据库服务器通信的Java客户端库。当前实现仅支持[HTTP接口](/interfaces/http)。 -该库提供自己的API来向服务器发送请求。该库还提供用于处理不同二进制数据格式(RowBinary*和Native*)的工具。 - -## 设置 {#setup} - -- Maven Central (project web page): https://mvnrepository.com/artifact/com.clickhouse/client-v2 -- Nightly builds (repository link): https://central.sonatype.com/repository/maven-snapshots/ -- Old Nightly builds artifactory (repository link): https://s01.oss.sonatype.org/content/repositories/snapshots/ -
    - - - -```xml - - com.clickhouse - client-v2 - 0.9.4 - -``` - - - - -```kotlin -// https://mvnrepository.com/artifact/com.clickhouse/client-v2 -implementation("com.clickhouse:client-v2:0.9.4") -``` - - - -```groovy -// https://mvnrepository.com/artifact/com.clickhouse/client-v2 -implementation 'com.clickhouse:client-v2:0.9.4' -``` - - - -
    - -## 初始化 {#initialization} - -Client对象通过`com.clickhouse.client.api.Client.Builder#build()`进行初始化。每个客户端都有自己的上下文,对象之间不共享。 -Builder具有便于设置的配置方法。 - -示例: -```java showLineNumbers - Client client = new Client.Builder() - .addEndpoint("https://clickhouse-cloud-instance:8443/") - .setUsername(user) - .setPassword(password) - .build(); -``` - -`Client`是`AutoCloseable`的,不再需要时应该关闭。 - -### 身份验证 {#authentication} - -身份验证在初始化阶段为每个客户端配置。支持三种身份验证方法:密码、访问令牌、SSL客户端证书。 - -通过密码进行身份验证需要通过调用`setUsername(String)`和`setPassword(String)`来设置用户名和密码: -```java showLineNumbers - Client client = new Client.Builder() - .addEndpoint("https://clickhouse-cloud-instance:8443/") - .setUsername(user) - .setPassword(password) - .build(); -``` - -Authentication by an access token requires setting access token by calling `setAccessToken(String)`: -```java showLineNumbers - Client client = new Client.Builder() - .addEndpoint("https://clickhouse-cloud-instance:8443/") - .setAccessToken(userAccessToken) - .build(); -``` - -Authentication by a SSL Client Certificate require setting username, enabling SSL Authentication, setting a client certificate and a client key by calling `setUsername(String)`, `useSSLAuthentication(boolean)`, `setClientCertificate(String)` and `setClientKey(String)` accordingly: -```java showLineNumbers -Client client = new Client.Builder() - .useSSLAuthentication(true) - .setUsername("some_user") - .setClientCertificate("some_user.crt") - .setClientKey("some_user.key") -``` - -:::note -SSL Authentication may be hard to troubleshoot on production because many errors from SSL libraries provide not enough information. For example, if client certificate and key do not match then server will terminate connection immediately (in case of HTTP it will be connection initiation stage where no HTTP requests are send so no response is sent). - -Please use tools like [openssl](https://docs.openssl.org/master/man1/openssl/) to verify certificates and keys: -- check key integrity: `openssl rsa -in [key-file.key] -check -noout` -- check client certificate has matching CN for a user: - - get CN from an user certificate - `openssl x509 -noout -subject -in [user.cert]` - - verify same value is set in database `select name, auth_type, auth_params from system.users where auth_type = 'ssl_certificate'` (query will output `auth_params` with something like ` {"common_names":["some_user"]}`) - -::: - -## Configuration {#configuration} - -All settings are defined by instance methods (a.k.a configuration methods) that make the scope and context of each value clear. -Major configuration parameters are defined in one scope (client or operation) and do not override each other. - -Configuration is defined during client creation. See `com.clickhouse.client.api.Client.Builder`. - -## Client Configuration {#client-configuration} - - - - -| Method | Arguments | Description | Default | Key | -|--------|-----------|-------------|---------|-----| -| `addEndpoint(String endpoint)` | `endpoint` - URL formatted server address | Adds a server endpoint to list of available servers. Currently only one endpoint is supported. | `none` | `none` | -| `addEndpoint(Protocol protocol, String host, int port, boolean secure)` | `protocol` - connection protocol
    `host` - IP or hostname
    `secure` - use HTTPS | Adds a server endpoint to list of available servers. Currently only one endpoint is supported. | `none` | `none` | -| `enableConnectionPool(boolean enable)` | `enable` - flag to enable/disable | Sets if a connection pool is enabled | `true` | `connection_pool_enabled` | -| `setMaxConnections(int maxConnections)` | `maxConnections` - number of connections | Sets how many connections can a client open to each server endpoint. | `10` | `max_open_connections` | -| `setConnectionTTL(long timeout, ChronoUnit unit)` | `timeout` - timeout value
    `unit` - time unit | Sets connection TTL after which connection will be considered as not active | `-1` | `connection_ttl` | -| `setKeepAliveTimeout(long timeout, ChronoUnit unit)` | `timeout` - timeout value
    `unit` - time unit | Sets HTTP connection keep-alive timeout. Set to `0` to disable Keep-Alive. | - | `http_keep_alive_timeout` | -| `setConnectionReuseStrategy(ConnectionReuseStrategy strategy)` | `strategy` - `LIFO` or `FIFO` | Selects which strategy connection pool should use | `FIFO` | `connection_reuse_strategy` | -| `setDefaultDatabase(String database)` | `database` - name of a database | Sets default database. | `default` | `database` | - -
    - - - -| Method | Arguments | Description | Default | Key | -|--------|-----------|-------------|---------|-----| -| `setUsername(String username)` | `username` - username for authentication | Sets username for an authentication method that is selected by further configuration | `default` | `user` | -| `setPassword(String password)` | `password` - secret value | Sets a secret for password authentication and effectively selects as authentication method | - | `password` | -| `setAccessToken(String accessToken)` | `accessToken` - access token string | Sets an access token to authenticate with a sets corresponding authentication method | - | `access_token` | -| `useSSLAuthentication(boolean useSSLAuthentication)` | `useSSLAuthentication` - flag to enable SSL auth | Sets SSL Client Certificate as an authentication method. | - | `ssl_authentication` | -| `useHTTPBasicAuth(boolean useBasicAuth)` | `useBasicAuth` - flag to enable/disable | Sets if basic HTTP authentication should be used for user-password authentication. Resolves issues with passwords containing special characters. | `true` | `http_use_basic_auth` | -| `useBearerTokenAuth(String bearerToken)` | `bearerToken` - an encoded bearer token | Specifies whether to use Bearer Authentication and what token to use. The token will be sent as is. | - | `bearer_token` | - - - - - -| Method | Arguments | Description | Default | Key | -|--------|-----------|-------------|---------|-----| -| `setConnectTimeout(long timeout, ChronoUnit unit)` | `timeout` - timeout value
    `unit` - time unit | Sets connection initiation timeout for any outgoing connection. | - | `connection_timeout` | -| `setConnectionRequestTimeout(long timeout, ChronoUnit unit)` | `timeout` - timeout value
    `unit` - time unit | Sets connection request timeout. This take effect only for getting connection from a pool. | `10000` | `connection_request_timeout` | -| `setSocketTimeout(long timeout, ChronoUnit unit)` | `timeout` - timeout value
    `unit` - time unit | Sets socket timeout that affects read and write operations | `0` | `socket_timeout` | -| `setExecutionTimeout(long timeout, ChronoUnit timeUnit)` | `timeout` - timeout value
    `timeUnit` - time unit | Sets maximum execution timeout for queries | `0` | `max_execution_time` | -| `retryOnFailures(ClientFaultCause ...causes)` | `causes` - enum constant of `ClientFaultCause` | Sets recoverable/retriable fault types. | `NoHttpResponse` `ConnectTimeout` `ConnectionRequestTimeout` | `client_retry_on_failures` | -| `setMaxRetries(int maxRetries)` | `maxRetries` - number of retries | Sets maximum number of retries for failures defined by `retryOnFailures` | `3` | `retry` | - -
    - - - -| Method | Arguments | Description | Default | Key | -|--------|-----------|-------------|---------|-----| -| `setSocketRcvbuf(long size)` | `size` - size in bytes | Sets TCP socket receive buffer. This buffer out of the JVM memory. | `8196` | `socket_rcvbuf` | -| `setSocketSndbuf(long size)` | `size` - size in bytes | Sets TCP socket send buffer. This buffer out of the JVM memory. | `8196` | `socket_sndbuf` | -| `setSocketKeepAlive(boolean value)` | `value` - flag to enable/disable | Sets option `SO_KEEPALIVE` for every TCP socket. TCP Keep Alive enables mechanism that will check liveness of the connection. | - | `socket_keepalive` | -| `setSocketTcpNodelay(boolean value)` | `value` - flag to enable/disable | Sets option `SO_NODELAY` for every TCP socket. This TCP option will make socket to push data as soon as possible. | - | `socket_tcp_nodelay` | -| `setSocketLinger(int secondsToWait)` | `secondsToWait` - number of seconds | Set linger time for every TCP socket created by the client. | - | `socket_linger` | - - - - - -| Method | Arguments | Description | Default | Key | -|--------|-----------|-------------|---------|-----| -| `compressServerResponse(boolean enabled)` | `enabled` - flag to enable/disable | Sets if server should compress its responses. | `true` | `compress` | -| `compressClientRequest(boolean enabled)` | `enabled` - flag to enable/disable | Sets if client should compress its requests. | `false` | `decompress` | -| `useHttpCompression(boolean enabled)` | `enabled` - flag to enable/disable | Sets if HTTP compression should be used for client/server communications if corresponding options are enabled | - | - | -| `appCompressedData(boolean enabled)` | `enabled` - flag to enable/disable | Tell client that compression will be handled by application. | `false` | `app_compressed_data` | -| `setLZ4UncompressedBufferSize(int size)` | `size` - size in bytes | Sets size of a buffer that will receive uncompressed portion of a data stream. | `65536` | `compression.lz4.uncompressed_buffer_size` | -| `disableNativeCompression` | `disable` - flag to disable | Disable native compression. If set to true then native compression will be disabled. | `false` | `disable_native_compression` | - - - - - -| Method | Arguments | Description | Default | Key | -|--------|-----------|-------------|---------|-----| -| `setSSLTrustStore(String path)` | `path` - file path on local system | Sets if client should use SSL truststore for server host validation. | - | `trust_store` | -| `setSSLTrustStorePassword(String password)` | `password` - secret value | Sets password to be used to unlock SSL truststore specified by `setSSLTrustStore` | - | `key_store_password` | -| `setSSLTrustStoreType(String type)` | `type` - truststore type name | Sets type of the truststore specified by `setSSLTrustStore`. | - | `key_store_type` | -| `setRootCertificate(String path)` | `path` - file path on local system | Sets if client should use specified root (CA) certificate for server host to validation. | - | `sslrootcert` | -| `setClientCertificate(String path)` | `path` - file path on local system | Sets client certificate path to be used while initiating SSL connection and to be used by SSL authentication. | - | `sslcert` | -| `setClientKey(String path)` | `path` - file path on local system | Sets client private key to be used for encrypting SSL communication with a server. | - | `ssl_key` | -| `sslSocketSNI(String sni)` | `sni` - server name string | Sets server name to be used for SNI (Server Name Indication) in SSL/TLS connection. | - | `ssl_socket_sni` | - - - - - -| Method | Arguments | Description | Default | Key | -|--------|-----------|-------------|---------|-----| -| `addProxy(ProxyType type, String host, int port)` | `type` - proxy type
    `host` - proxy hostname or IP
    `port` - proxy port | Sets proxy to be used for communication with a server. | - | `proxy_type`, `proxy_host`, `proxy_port` | -| `setProxyCredentials(String user, String pass)` | `user` - proxy username
    `pass` - password | Sets user credentials to authenticate with a proxy. | - | `proxy_user`, `proxy_password` | - -
    - - - -| Method | Arguments | Description | Default | Key | -|--------|-----------|-------------|---------|-----| -| `setHttpCookiesEnabled(boolean enabled)` | `enabled` - flag to enable/disable | Set if HTTP cookies should be remembered and sent to server back. | - | - | -| `httpHeader(String key, String value)` | `key` - HTTP header key
    `value` - string value | Sets value for a single HTTP header. Previous value is overridden. | `none` | `none` | -| `httpHeader(String key, Collection values)` | `key` - HTTP header key
    `values` - list of string values | Sets values for a single HTTP header. Previous value is overridden. | `none` | `none` | -| `httpHeaders(Map headers)` | `headers` - map with HTTP headers | Sets multiple HTTP header values at a time. | `none` | `none` | - -
    - - - -| Method | Arguments | Description | Default | Key | -|--------|-----------|-------------|---------|-----| -| `serverSetting(String name, String value)` | `name` - setting name
    `value` - setting value | Sets what settings to pass to server along with each query. Individual operation settings may override it. [List of settings](/operations/settings/query-level) | `none` | `none` | -| `serverSetting(String name, Collection values)` | `name` - setting name
    `values` - setting values | Sets what settings to pass to server with multiple values, for example [roles](/interfaces/http#setting-role-with-query-parameters) | `none` | `none` | - -
    - - - -| Method | Arguments | Description | Default | Key | -|--------|-----------|-------------|---------|-----| -| `useServerTimeZone(boolean useServerTimeZone)` | `useServerTimeZone` - flag to enable/disable | Sets if client should use server timezone when decoding DateTime and Date column values. | `true` | `use_server_time_zone` | -| `useTimeZone(String timeZone)` | `timeZone` - java valid timezone ID | Sets if specified timezone should be used when decoding DateTime and Date column values. Will override server timezone. | - | `use_time_zone` | -| `setServerTimeZone(String timeZone)` | `timeZone` - java valid timezone ID | Sets server side timezone. UTC timezone will be used by default. | `UTC` | `server_time_zone` | - - - - - -| Method | Arguments | Description | Default | Key | -|--------|-----------|-------------|---------|-----| -| `setOption(String key, String value)` | `key` - configuration option key
    `value` - option value | Sets raw value of client options. Useful when reading configuration from properties files. | - | - | -| `useAsyncRequests(boolean async)` | `async` - flag to enable/disable | Sets if client should execute request in a separate thread. Disabled by default because application knows better how to organize multi-threaded tasks. | `false` | `async` | -| `setSharedOperationExecutor(ExecutorService executorService)` | `executorService` - executor service instance | Sets executor service for operation tasks. | `none` | `none` | -| `setClientNetworkBufferSize(int size)` | `size` - size in bytes | Sets size of a buffer in application memory space that is used to copy data between socket and application. | `300000` | `client_network_buffer_size` | -| `allowBinaryReaderToReuseBuffers(boolean reuse)` | `reuse` - flag to enable/disable | If enabled, reader will use preallocated buffers to do numbers transcoding. Reduces GC pressure for numeric data. | - | - | -| `columnToMethodMatchingStrategy(ColumnToMethodMatchingStrategy strategy)` | `strategy` - matching strategy implementation | Sets custom strategy to be used for matching DTO class fields and DB columns when registering DTO. | `none` | `none` | -| `setClientName(String clientName)` | `clientName` - application name string | Sets additional information about calling application. Will be passed as `User-Agent` header. | - | `client_name` | -| `registerClientMetrics(Object registry, String name)` | `registry` - Micrometer registry instance
    `name` - metrics group name | Registers sensors with Micrometer (https://micrometer.io/) registry instance. | - | - | -| `setServerVersion(String version)` | `version` - server version string | Sets server version to avoid version detection. | - | `server_version` | -| `typeHintMapping(Map typeHintMapping)` | `typeHintMapping` - map of type hints | Sets type hint mapping for ClickHouse types. For example, to make multidimensional arrays be present as Java containers. | - | `type_hint_mapping` | - -
    -
    -
    - -### Server Settings - -Server side settings can be set on the client level once while creation (see `serverSetting` method of the `Builder`) and on operation level (see `serverSetting` for operation settings class). - -```java showLineNumbers - try (Client client = new Client.Builder().addEndpoint(Protocol.HTTP, "localhost", mockServer.port(), false) - .setUsername("default") - .setPassword(ClickHouseServerForTest.getPassword()) - .compressClientRequest(true) - - // Client level - .serverSetting("max_threads", "10") - .serverSetting("async_insert", "1") - .serverSetting("roles", Arrays.asList("role1", "role2")) - - .build()) { - - // Operation level - QuerySettings querySettings = new QuerySettings(); - querySettings.serverSetting("session_timezone", "Europe/Zurich"); - - ... -} -``` -⚠️ When options are set via `setOption` method (either the `Client.Builder` or operation settings class) then server settings name should be prefixed with `clickhouse_setting_`. The `com.clickhouse.client.api.ClientConfigProperties#serverSetting()` may be handy in this case. - -### Custom HTTP Header - -Custom HTTP headers can be set for all operations (client level) or a single one (operation level). -```java showLineNumbers - -QuerySettings settings = new QuerySettings() - .httpHeader(HttpHeaders.REFERER, clientReferer) - .setQueryId(qId); - -``` - -When options are set via `setOption` method (either the `Client.Builder` or operation settings class) then custom header name should be prefixed with `http_header_`. Method `com.clickhouse.client.api.ClientConfigProperties#httpHeader()` may be handy in this case. - -## Common Definitions {#common-definitions} - -### ClickHouseFormat {#clickhouseformat} - -Enum of [supported formats](/interfaces/formats). It includes all formats that ClickHouse supports. - -* `raw` - user should transcode raw data -* `full` - the client can transcode data by itself and accepts a raw data stream -* `-` - operation not supported by ClickHouse for this format - -This client version supports: - -| Format | Input | Output | -|-------------------------------------------------------------------------------------------------------------------------------|:------:|:-------:| -| [TabSeparated](/interfaces/formats/TabSeparated) | raw | raw | -| [TabSeparatedRaw](/interfaces/formats/TabSeparatedRaw) | raw | raw | -| [TabSeparatedWithNames](/interfaces/formats/TabSeparatedWithNames) | raw | raw | -| [TabSeparatedWithNamesAndTypes](/interfaces/formats/TabSeparatedWithNamesAndTypes) | raw | raw | -| [TabSeparatedRawWithNames](/interfaces/formats/TabSeparatedRawWithNames) | raw | raw | -| [TabSeparatedRawWithNamesAndTypes](/interfaces/formats/TabSeparatedRawWithNamesAndTypes) | raw | raw | -| [Template](/interfaces/formats/Template) | raw | raw | -| [TemplateIgnoreSpaces](/interfaces/formats/TemplateIgnoreSpaces) | raw | - | -| [CSV](/interfaces/formats/CSV) | raw | raw | -| [CSVWithNames](/interfaces/formats/CSVWithNames) | raw | raw | -| [CSVWithNamesAndTypes](/interfaces/formats/CSVWithNamesAndTypes) | raw | raw | -| [CustomSeparated](/interfaces/formats/CustomSeparated) | raw | raw | -| [CustomSeparatedWithNames](/interfaces/formats/CustomSeparatedWithNames) | raw | raw | -| [CustomSeparatedWithNamesAndTypes](/interfaces/formats/CustomSeparatedWithNamesAndTypes) | raw | raw | -| [SQLInsert](/interfaces/formats/SQLInsert) | - | raw | -| [Values](/interfaces/formats/Values) | raw | raw | -| [Vertical](/interfaces/formats/Vertical) | - | raw | -| [JSON](/interfaces/formats/JSON) | raw | raw | -| [JSONAsString](/interfaces/formats/JSONAsString) | raw | - | -| [JSONAsObject](/interfaces/formats/JSONAsObject) | raw | - | -| [JSONStrings](/interfaces/formats/JSONStrings) | raw | raw | -| [JSONColumns](/interfaces/formats/JSONColumns) | raw | raw | -| [JSONColumnsWithMetadata](/interfaces/formats/JSONColumnsWithMetadata) | raw | raw | -| [JSONCompact](/interfaces/formats/JSONCompact) | raw | raw | -| [JSONCompactStrings](/interfaces/formats/JSONCompactStrings) | - | raw | -| [JSONCompactColumns](/interfaces/formats/JSONCompactColumns) | raw | raw | -| [JSONEachRow](/interfaces/formats/JSONEachRow) | raw | raw | -| [PrettyJSONEachRow](/interfaces/formats/PrettyJSONEachRow) | - | raw | -| [JSONEachRowWithProgress](/interfaces/formats/JSONEachRowWithProgress) | - | raw | -| [JSONStringsEachRow](/interfaces/formats/JSONStringsEachRow) | raw | raw | -| [JSONStringsEachRowWithProgress](/interfaces/formats/JSONStringsEachRowWithProgress) | - | raw | -| [JSONCompactEachRow](/interfaces/formats/JSONCompactEachRow) | raw | raw | -| [JSONCompactEachRowWithNames](/interfaces/formats/JSONCompactEachRowWithNames) | raw | raw | -| [JSONCompactEachRowWithNamesAndTypes](/interfaces/formats/JSONCompactEachRowWithNamesAndTypes) | raw | raw | -| [JSONCompactStringsEachRow](/interfaces/formats/JSONCompactStringsEachRow) | raw | raw | -| [JSONCompactStringsEachRowWithNames](/interfaces/formats/JSONCompactStringsEachRowWithNames) | raw | raw | -| [JSONCompactStringsEachRowWithNamesAndTypes](/interfaces/formats/JSONCompactStringsEachRowWithNamesAndTypes) | raw | raw | -| [JSONObjectEachRow](/interfaces/formats/JSONObjectEachRow) | raw | raw | -| [BSONEachRow](/interfaces/formats/BSONEachRow) | raw | raw | -| [TSKV](/interfaces/formats/TSKV) | raw | raw | -| [Pretty](/interfaces/formats/Pretty) | - | raw | -| [PrettyNoEscapes](/interfaces/formats/PrettyNoEscapes) | - | raw | -| [PrettyMonoBlock](/interfaces/formats/PrettyMonoBlock) | - | raw | -| [PrettyNoEscapesMonoBlock](/interfaces/formats/PrettyNoEscapesMonoBlock) | - | raw | -| [PrettyCompact](/interfaces/formats/PrettyCompact) | - | raw | -| [PrettyCompactNoEscapes](/interfaces/formats/PrettyCompactNoEscapes) | - | raw | -| [PrettyCompactMonoBlock](/interfaces/formats/PrettyCompactMonoBlock) | - | raw | -| [PrettyCompactNoEscapesMonoBlock](/interfaces/formats/PrettyCompactNoEscapesMonoBlock) | - | raw | -| [PrettySpace](/interfaces/formats/PrettySpace) | - | raw | -| [PrettySpaceNoEscapes](/interfaces/formats/PrettySpaceNoEscapes) | - | raw | -| [PrettySpaceMonoBlock](/interfaces/formats/PrettySpaceMonoBlock) | - | raw | -| [PrettySpaceNoEscapesMonoBlock](/interfaces/formats/PrettySpaceNoEscapesMonoBlock) | - | raw | -| [Prometheus](/interfaces/formats/Prometheus) | - | raw | -| [Protobuf](/interfaces/formats/Protobuf) | raw | raw | -| [ProtobufSingle](/interfaces/formats/ProtobufSingle) | raw | raw | -| [ProtobufList](/interfaces/formats/ProtobufList) | raw | raw | -| [Avro](/interfaces/formats/Avro) | raw | raw | -| [AvroConfluent](/interfaces/formats/AvroConfluent) | raw | - | -| [Parquet](/interfaces/formats/Parquet) | raw | raw | -| [ParquetMetadata](/interfaces/formats/ParquetMetadata) | raw | - | -| [Arrow](/interfaces/formats/Arrow) | raw | raw | -| [ArrowStream](/interfaces/formats/ArrowStream) | raw | raw | -| [ORC](/interfaces/formats/ORC) | raw | raw | -| [One](/interfaces/formats/One) | raw | - | -| [Npy](/interfaces/formats/Npy) | raw | raw | -| [RowBinary](/interfaces/formats/RowBinary) | full | full | -| [RowBinaryWithNames](/interfaces/formats/RowBinaryWithNamesAndTypes) | full | full | -| [RowBinaryWithNamesAndTypes](/interfaces/formats/RowBinaryWithNamesAndTypes) | full | full | -| [RowBinaryWithDefaults](/interfaces/formats/RowBinaryWithDefaults) | full | - | -| [Native](/interfaces/formats/Native) | full | raw | -| [Null](/interfaces/formats/Null) | - | raw | -| [XML](/interfaces/formats/XML) | - | raw | -| [CapnProto](/interfaces/formats/CapnProto) | raw | raw | -| [LineAsString](/interfaces/formats/LineAsString) | raw | raw | -| [Regexp](/interfaces/formats/Regexp) | raw | - | -| [RawBLOB](/interfaces/formats/RawBLOB) | raw | raw | -| [MsgPack](/interfaces/formats/MsgPack) | raw | raw | -| [MySQLDump](/interfaces/formats/MySQLDump) | raw | - | -| [DWARF](/interfaces/formats/DWARF) | raw | - | -| [Markdown](/interfaces/formats/Markdown) | - | raw | -| [Form](/interfaces/formats/Form) | raw | - | - -## Insert API {#insert-api} - -### insert(String tableName, InputStream data, ClickHouseFormat format) {#insertstring-tablename-inputstream-data-clickhouseformat-format} - -Accepts data as an `InputStream` of bytes in the specified format. It is expected that `data` is encoded in the `format`. - -**Signatures** - -```java -CompletableFuture insert(String tableName, InputStream data, ClickHouseFormat format, InsertSettings settings) -CompletableFuture insert(String tableName, InputStream data, ClickHouseFormat format) -``` - -**Parameters** - -`tableName` - a target table name. - -`data` - an input stream of an encoded data. - -`format` - a format in which the data is encoded. - -`settings` - request settings. - -**Return value** - -Future of `InsertResponse` type - result of the operation and additional information like server side metrics. - -**Examples** - -```java showLineNumbers -try (InputStream dataStream = getDataStream()) { - try (InsertResponse response = client.insert(TABLE_NAME, dataStream, ClickHouseFormat.JSONEachRow, - insertSettings).get(3, TimeUnit.SECONDS)) { - - log.info("Insert finished: {} rows written", response.getMetrics().getMetric(ServerMetrics.NUM_ROWS_WRITTEN).getLong()); - } catch (Exception e) { - log.error("Failed to write JSONEachRow data", e); - throw new RuntimeException(e); - } -} - -``` - -### insert(String tableName, List<?> data, InsertSettings settings) {#insertstring-tablename-listlt-data-insertsettings-settings} - -Sends a write request to database. The list of objects is converted into an efficient format and then is sent to a server. The class of the list items should be registered up-front using `register(Class, TableSchema)` method. - -**Signatures** -```java -client.insert(String tableName, List data, InsertSettings settings) -client.insert(String tableName, List data) -``` - -**Parameters** - -`tableName` - name of the target table. - -`data` - collection DTO (Data Transfer Object) objects. - -`settings` - request settings. - -**Return value** - -Future of `InsertResponse` type - the result of the operation and additional information like server side metrics. - -**Examples** - -```java showLineNumbers -// Important step (done once) - register class to pre-compile object serializer according to the table schema. -client.register(ArticleViewEvent.class, client.getTableSchema(TABLE_NAME)); - -List events = loadBatch(); - -try (InsertResponse response = client.insert(TABLE_NAME, events).get()) { - // handle response, then it will be closed and connection that served request will be released. -} -``` - -### InsertSettings {#insertsettings} - -Configuration options for insert operations. - -**Configuration methods** - -| Method | Description | -|----------------------------------------------|----------------------------------------------------------------------------------------------------------------------------| -| `setQueryId(String queryId)` | Sets query ID that will be assigned to the operation. Default: `null`. | -| `setDeduplicationToken(String token)` | Sets the deduplication token. This token will be sent to the server and can be used to identify the query. Default: `null`. | -| `setInputStreamCopyBufferSize(int size)` | Copy buffer size. The buffer is used during write operations to copy data from user-provided input stream to an output stream. Default: `8196`. | -| `serverSetting(String name, String value)` | Sets individual server settings for an operation. | -| `serverSetting(String name, Collection values)` | Sets individual server settings with multiple values for an operation. Items of the collection should be `String` values. | -| `setDBRoles(Collection dbRoles)` | Sets DB roles to be set before executing an operation. Items of the collection should be `String` values. | -| `setOption(String option, Object value)` | Sets a configuration option in raw format. This is not a server setting. | - -### InsertResponse {#insertresponse} - -Response object that holds result of insert operation. It is only available if the client got response from a server. - -:::note -This object should be closed as soon as possible to release a connection because the connection cannot be re-used until all data of previous response is fully read. -::: - -| Method | Description | -|-----------------------------|------------------------------------------------------------------------------------------------------| -| `OperationMetrics getMetrics()` | Returns object with operation metrics. | -| `String getQueryId()` | Returns query ID assigned for the operation by the application (through operation settings or by server). | - -## Query API {#query-api} - -### query(String sqlQuery) {#querystring-sqlquery} - -Sends `sqlQuery` as is. Response format is set by query settings. `QueryResponse` will hold a reference to the response stream that should be consumed by a reader for the supportig format. - -**Signatures** - -```java -CompletableFuture query(String sqlQuery, QuerySettings settings) -CompletableFuture query(String sqlQuery) -``` - -**Parameters** - -`sqlQuery` - a single SQL statement. The Query is sent as is to a server. - -`settings` - request settings. - -**Return value** - -Future of `QueryResponse` type - a result dataset and additional information like server side metrics. The Response object should be closed after consuming the dataset. - -**Examples** - -```java -final String sql = "select * from " + TABLE_NAME + " where title <> '' limit 10"; - -// Default format is RowBinaryWithNamesAndTypesFormatReader so reader have all information about columns -try (QueryResponse response = client.query(sql).get(3, TimeUnit.SECONDS);) { - - // Create a reader to access the data in a convenient way - ClickHouseBinaryFormatReader reader = client.newBinaryFormatReader(response); - - while (reader.hasNext()) { - reader.next(); // Read the next record from stream and parse it - - // get values - double id = reader.getDouble("id"); - String title = reader.getString("title"); - String url = reader.getString("url"); - - // collecting data - } -} catch (Exception e) { - log.error("Failed to read data", e); -} - -// put business logic outside of the reading block to release http connection asap. -``` - -### query(String sqlQuery, Map<String, Object> queryParams, QuerySettings settings) {#querystring-sqlquery-mapltstring-object-queryparams-querysettings-settings} - -Sends `sqlQuery` as is. Additionally will send query parameters so the server can compile the SQL expression. - -**Signatures** -```java -CompletableFuture query(String sqlQuery, Map queryParams, QuerySettings settings) -``` - -**Parameters** - -`sqlQuery` - sql expression with placeholders `{}`. - -`queryParams` - map of variables to complete the sql expression on server. - -`settings` - request settings. - -**Return value** - -Future of `QueryResponse` type - a result dataset and additional information like server side metrics. The Response object should be closed after consuming the dataset. - -**Examples** - -```java showLineNumbers - -// define parameters. They will be sent to the server along with the request. -Map queryParams = new HashMap<>(); -queryParams.put("param1", 2); - -try (QueryResponse response = - client.query("SELECT * FROM " + table + " WHERE col1 >= {param1:UInt32}", queryParams, new QuerySettings()).get()) { - - // Create a reader to access the data in a convenient way - ClickHouseBinaryFormatReader reader = client.newBinaryFormatReader(response); - - while (reader.hasNext()) { - reader.next(); // Read the next record from stream and parse it - - // reading data - } - -} catch (Exception e) { - log.error("Failed to read data", e); -} - -``` - -### queryAll(String sqlQuery) {#queryallstring-sqlquery} - -Queries a data in `RowBinaryWithNamesAndTypes` format. Returns the result as a collection. Read performance is the same as with the reader but more memory is required to hold the whole dataset. - -**Signatures** -```java -List queryAll(String sqlQuery) -``` - -**Parameters** - -`sqlQuery` - sql expression to query data from a server. - -**Return value** - -Complete dataset represented by a list of `GenericRecord` objects that provide access in row style for the result data. - -**Examples** - -```java showLineNumbers -try { - log.info("Reading whole table and process record by record"); - final String sql = "select * from " + TABLE_NAME + " where title <> ''"; - - // Read whole result set and process it record by record - client.queryAll(sql).forEach(row -> { - double id = row.getDouble("id"); - String title = row.getString("title"); - String url = row.getString("url"); - - log.info("id: {}, title: {}, url: {}", id, title, url); - }); -} catch (Exception e) { - log.error("Failed to read data", e); -} -``` - -### QuerySettings {#querysettings} - -Configuration options for query operations. - -**Configuration methods** - -| Method | Description | -|----------------------------------------------|----------------------------------------------------------------------------------------------------------------------------| -| `setQueryId(String queryId)` | Sets query ID that will be assigned to the operation. | -| `setFormat(ClickHouseFormat format)` | Sets response format. See `RowBinaryWithNamesAndTypes` for the full list. | -| `setMaxExecutionTime(Integer maxExecutionTime)` | Sets operation execution time on server. Will not affect read timeout. | -| `waitEndOfQuery(Boolean waitEndOfQuery)` | Requests the server to wait for the end of the query before sending a response. | -| `setUseServerTimeZone(Boolean useServerTimeZone)` | Server timezone (see client config) will be used to parse date/time types in the result of an operation. Default `false`. | -| `setUseTimeZone(String timeZone)` | Requests server to use `timeZone` for time conversion. See [session_timezone](/operations/settings/settings#session_timezone). | -| `serverSetting(String name, String value)` | Sets individual server settings for an operation. | -| `serverSetting(String name, Collection values)` | Sets individual server settings with multiple values for an operation. Items of the collection should be `String` values. | -| `setDBRoles(Collection dbRoles)` | Sets DB roles to be set before executing an operation. Items of the collection should be `String` values. | -| `setOption(String option, Object value)` | Sets a configuration option in raw format. This is not a server setting. | - -### QueryResponse {#queryresponse} - -Response object that holds result of query execution. It is only available if the client got a response from a server. - -:::note -This object should be closed as soon as possible to release a connection because the connection cannot be re-used until all data of previous response is fully read. -::: - -| Method | Description | -|-------------------------------------|------------------------------------------------------------------------------------------------------| -| `ClickHouseFormat getFormat()` | Returns a format in which data in the response is encoded. | -| `InputStream getInputStream()` | Returns uncompressed byte stream of data in the specified format. | -| `OperationMetrics getMetrics()` | Returns object with operation metrics. | -| `String getQueryId()` | Returns query ID assigned for the operation by the application (through operation settings or by server). | -| `TimeZone getTimeZone()` | Returns timezone that should be used for handling Date/DateTime types in the response. | - -### Examples {#examples} - -- Example code is available in [repo](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/client-v2) -- Reference Spring Service [implementation](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/demo-service) - -## Common API {#common-api} - -### getTableSchema(String table) {#gettableschemastring-table} - -Fetches table schema for the `table`. - -**Signatures** - -```java -TableSchema getTableSchema(String table) -TableSchema getTableSchema(String table, String database) -``` - -**Parameters** - -`table` - table name for which schema data should be fetched. - -`database` - database where the target table is defined. - -**Return value** - -Returns a `TableSchema` object with list of table columns. - -### getTableSchemaFromQuery(String sql) {#gettableschemafromquerystring-sql} - -Fetches schema from a SQL statement. - -**Signatures** - -```java -TableSchema getTableSchemaFromQuery(String sql) -``` - -**Parameters** - -`sql` - "SELECT" SQL statement which schema should be returned. - -**Return value** - -Returns a `TableSchema` object with columns matching the `sql` expression. - -### TableSchema {#tableschema} - -### register(Class<?> clazz, TableSchema schema) {#registerclasslt-clazz-tableschema-schema} - -Compiles serialization and deserialization layer for the Java Class to use for writing/reading data with `schema`. The method will create a serializer and deserializer for the pair getter/setter and corresponding column. -Column match is found by extracting its name from a method name. For example, `getFirstName` will be for the column `first_name` or `firstname`. - -**Signatures** - -```java -void register(Class clazz, TableSchema schema) -``` - -**Parameters** - -`clazz` - Class representing the POJO used to read/write data. - -`schema` - Data schema to use for matching with POJO properties. - -**Examples** - -```java showLineNumbers -client.register(ArticleViewEvent.class, client.getTableSchema(TABLE_NAME)); -``` - -## Usage Examples {#usage-examples} - -Complete examples code is stored in the repo in a 'example` [folder](https://github.com/ClickHouse/clickhouse-java/tree/main/examples): - -- [client-v2](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/client-v2) - main set of examples. -- [demo-service](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/demo-service) - example of how to use the client in a Spring Boot application. -- [demo-kotlin-service](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/demo-kotlin-service) - example of how to use the client in Ktor (Kotlin) application. - -## Migration Guide {#migration_guide} - - -Old client (V1) was using `com.clickhouse.client.ClickHouseClient#builder` as start point. The new client (V2) uses similar pattern with `com.clickhouse.client.api.Client.Builder`. Main -differences are: -- no service loader is used to grab implementation. The `com.clickhouse.client.api.Client` is facade class for all kinds of implementation in the future. -- a fewer sources of configuration: one is provided to the builder and one is with operation settings (`QuerySettings`, `InsertSettings`). Previous version had configuration per node and was loading -env. variables in some cases. - -### Configuration Parameters Match {#migration_from_v1_config} - -There are 3 enum classes related to configuration in V1: -- `com.clickhouse.client.config.ClickHouseDefaults` - configuration parameters that supposed to be set in most use cases. Like `USER` and `PASSWORD`. -- `com.clickhouse.client.config.ClickHouseClientOption` - configuration parameters specific for the client. Like `HEALTH_CHECK_INTERVAL`. -- `com.clickhouse.client.http.config.ClickHouseHttpOption` - configuration parameters specific for HTTP interface. Like `RECEIVE_QUERY_PROGRESS`. - -They were designed to group parameters and provide clear separation. However in some cases it lead to a confusion (is there a difference between `com.clickhouse.client.config.ClickHouseDefaults#ASYNC` and -`com.clickhouse.client.config.ClickHouseClientOption#ASYNC`). The new V2 client uses `com.clickhouse.client.api.Client.Builder` as single dictionary of all possible client configuration options.There is -`com.clickhouse.client.api.ClientConfigProperties` where all configuration parameter names are listed. - -Table below shows what old options are supported in the new client and their new meaning. - -**Legend:** ✔ = supported, ✗ = dropped - - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseDefaults#HOST` | `Client.Builder#addEndpoint` | | -| `ClickHouseDefaults#PROTOCOL` | ✗ | Only HTTP supported in V2 | -| `ClickHouseDefaults#DATABASE`
    `ClickHouseClientOption#DATABASE` | `Client.Builder#setDefaultDatabase` | | -| `ClickHouseDefaults#USER` | `Client.Builder#setUsername` | | -| `ClickHouseDefaults#PASSWORD` | `Client.Builder#setPassword` | | -| `ClickHouseClientOption#CONNECTION_TIMEOUT` | `Client.Builder#setConnectTimeout` | | -| `ClickHouseClientOption#CONNECTION_TTL` | `Client.Builder#setConnectionTTL` | | -| `ClickHouseHttpOption#MAX_OPEN_CONNECTIONS` | `Client.Builder#setMaxConnections` | | -| `ClickHouseHttpOption#KEEP_ALIVE`
    `ClickHouseHttpOption#KEEP_ALIVE_TIMEOUT` | `Client.Builder#setKeepAliveTimeout` | | -| `ClickHouseHttpOption#CONNECTION_REUSE_STRATEGY` | `Client.Builder#setConnectionReuseStrategy` | | -| `ClickHouseHttpOption#USE_BASIC_AUTHENTICATION` | `Client.Builder#useHTTPBasicAuth` | | - -
    - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseDefaults#SSL_CERTIFICATE_TYPE` | ✗ | | -| `ClickHouseDefaults#SSL_KEY_ALGORITHM` | ✗ | | -| `ClickHouseDefaults#SSL_PROTOCOL` | ✗ | | -| `ClickHouseClientOption#SSL` | ✗ | See `Client.Builder#addEndpoint` | -| `ClickHouseClientOption#SSL_MODE` | ✗ | | -| `ClickHouseClientOption#SSL_ROOT_CERTIFICATE` | `Client.Builder#setRootCertificate` | SSL Auth should be enabled by `useSSLAuthentication` | -| `ClickHouseClientOption#SSL_CERTIFICATE` | `Client.Builder#setClientCertificate` | | -| `ClickHouseClientOption#SSL_KEY` | `Client.Builder#setClientKey` | | -| `ClickHouseClientOption#KEY_STORE_TYPE` | `Client.Builder#setSSLTrustStoreType` | | -| `ClickHouseClientOption#TRUST_STORE` | `Client.Builder#setSSLTrustStore` | | -| `ClickHouseClientOption#KEY_STORE_PASSWORD` | `Client.Builder#setSSLTrustStorePassword` | | -| `ClickHouseClientOption#SSL_SOCKET_SNI` | `Client.Builder#sslSocketSNI` | | -| `ClickHouseClientOption#CUSTOM_SOCKET_FACTORY` | ✗ | | -| `ClickHouseClientOption#CUSTOM_SOCKET_FACTORY_OPTIONS` | ✗ | See `Client.Builder#sslSocketSNI` to set SNI | - - - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseClientOption#SOCKET_TIMEOUT` | `Client.Builder#setSocketTimeout` | | -| `ClickHouseClientOption#SOCKET_REUSEADDR` | `Client.Builder#setSocketReuseAddress` | | -| `ClickHouseClientOption#SOCKET_KEEPALIVE` | `Client.Builder#setSocketKeepAlive` | | -| `ClickHouseClientOption#SOCKET_LINGER` | `Client.Builder#setSocketLinger` | | -| `ClickHouseClientOption#SOCKET_IP_TOS` | ✗ | | -| `ClickHouseClientOption#SOCKET_TCP_NODELAY` | `Client.Builder#setSocketTcpNodelay` | | -| `ClickHouseClientOption#SOCKET_RCVBUF` | `Client.Builder#setSocketRcvbuf` | | -| `ClickHouseClientOption#SOCKET_SNDBUF` | `Client.Builder#setSocketSndbuf` | | - - - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseClientOption#COMPRESS` | `Client.Builder#compressServerResponse` | See also `useHttpCompression` | -| `ClickHouseClientOption#DECOMPRESS` | `Client.Builder#compressClientRequest` | See also `useHttpCompression` | -| `ClickHouseClientOption#COMPRESS_ALGORITHM` | ✗ | `LZ4` for non-http. Http uses `Accept-Encoding` | -| `ClickHouseClientOption#DECOMPRESS_ALGORITHM` | ✗ | `LZ4` for non-http. Http uses `Content-Encoding` | -| `ClickHouseClientOption#COMPRESS_LEVEL` | ✗ | | -| `ClickHouseClientOption#DECOMPRESS_LEVEL` | ✗ | | - - - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseClientOption#PROXY_TYPE` | `Client.Builder#addProxy` | | -| `ClickHouseClientOption#PROXY_HOST` | `Client.Builder#addProxy` | | -| `ClickHouseClientOption#PROXY_PORT` | `Client.Builder#addProxy` | | -| `ClickHouseClientOption#PROXY_USERNAME` | `Client.Builder#setProxyCredentials` | | -| `ClickHouseClientOption#PROXY_PASSWORD` | `Client.Builder#setProxyCredentials` | | - - - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseClientOption#MAX_EXECUTION_TIME` | `Client.Builder#setExecutionTimeout` | | -| `ClickHouseClientOption#RETRY` | `Client.Builder#setMaxRetries` | See also `retryOnFailures` | -| `ClickHouseHttpOption#AHC_RETRY_ON_FAILURE` | `Client.Builder#retryOnFailures` | | -| `ClickHouseClientOption#FAILOVER` | ✗ | | -| `ClickHouseClientOption#REPEAT_ON_SESSION_LOCK` | ✗ | | -| `ClickHouseClientOption#SESSION_ID` | ✗ | | -| `ClickHouseClientOption#SESSION_CHECK` | ✗ | | -| `ClickHouseClientOption#SESSION_TIMEOUT` | ✗ | | - - - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseDefaults#SERVER_TIME_ZONE`
    `ClickHouseClientOption#SERVER_TIME_ZONE` | `Client.Builder#setServerTimeZone` | | -| `ClickHouseClientOption#USE_SERVER_TIME_ZONE` | `Client.Builder#useServerTimeZone` | | -| `ClickHouseClientOption#USE_SERVER_TIME_ZONE_FOR_DATES` | | | -| `ClickHouseClientOption#USE_TIME_ZONE` | `Client.Builder#useTimeZone` | | - -
    - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseClientOption#BUFFER_SIZE` | `Client.Builder#setClientNetworkBufferSize` | | -| `ClickHouseClientOption#BUFFER_QUEUE_VARIATION` | ✗ | | -| `ClickHouseClientOption#READ_BUFFER_SIZE` | ✗ | | -| `ClickHouseClientOption#WRITE_BUFFER_SIZE` | ✗ | | -| `ClickHouseClientOption#REQUEST_CHUNK_SIZE` | ✗ | | -| `ClickHouseClientOption#REQUEST_BUFFERING` | ✗ | | -| `ClickHouseClientOption#RESPONSE_BUFFERING` | ✗ | | -| `ClickHouseClientOption#MAX_BUFFER_SIZE` | ✗ | | -| `ClickHouseClientOption#MAX_QUEUED_BUFFERS` | ✗ | | -| `ClickHouseClientOption#MAX_QUEUED_REQUESTS` | ✗ | | -| `ClickHouseClientOption#REUSE_VALUE_WRAPPER` | ✗ | | - - - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseDefaults#ASYNC`
    `ClickHouseClientOption#ASYNC` | `Client.Builder#useAsyncRequests` | | -| `ClickHouseDefaults#MAX_SCHEDULER_THREADS` | ✗ | see `setSharedOperationExecutor` | -| `ClickHouseDefaults#MAX_THREADS` | ✗ | see `setSharedOperationExecutor` | -| `ClickHouseDefaults#THREAD_KEEPALIVE_TIMEOUT` | see `setSharedOperationExecutor` | | -| `ClickHouseClientOption#MAX_THREADS_PER_CLIENT` | ✗ | | -| `ClickHouseClientOption#MAX_CORE_THREAD_TTL` | ✗ | | - -
    - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseHttpOption#CUSTOM_HEADERS` | `Client.Builder#httpHeaders` | | -| `ClickHouseHttpOption#CUSTOM_PARAMS` | ✗ | See `Client.Builder#serverSetting` | -| `ClickHouseClientOption#CLIENT_NAME` | `Client.Builder#setClientName` | | -| `ClickHouseHttpOption#CONNECTION_PROVIDER` | ✗ | | -| `ClickHouseHttpOption#DEFAULT_RESPONSE` | ✗ | | -| `ClickHouseHttpOption#SEND_HTTP_CLIENT_ID` | ✗ | | -| `ClickHouseHttpOption#AHC_VALIDATE_AFTER_INACTIVITY` | ✗ | Always enabled when Apache Http Client is used | - - - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseDefaults#FORMAT`
    `ClickHouseClientOption#FORMAT` | ✗ | Moved to operation settings (`QuerySettings` and `InsertSettings`) | -| `ClickHouseClientOption#QUERY_ID` | ✗ | See `QuerySettings` and `InsertSettings` | -| `ClickHouseClientOption#LOG_LEADING_COMMENT` | ✗ | See `QuerySettings#logComment` and `InsertSettings#logComment` | -| `ClickHouseClientOption#MAX_RESULT_ROWS` | ✗ | Is server side setting | -| `ClickHouseClientOption#RESULT_OVERFLOW_MODE` | ✗ | Is server side setting | -| `ClickHouseHttpOption#RECEIVE_QUERY_PROGRESS` | ✗ | Server side setting | -| `ClickHouseHttpOption#WAIT_END_OF_QUERY` | ✗ | Server side setting | -| `ClickHouseHttpOption#REMEMBER_LAST_SET_ROLES` | `Client#setDBRoles` | Runtime config now. See also `QuerySettings#setDBRoles` and `InsertSettings#setDBRoles` | - -
    - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseClientOption#AUTO_DISCOVERY` | ✗ | | -| `ClickHouseClientOption#LOAD_BALANCING_POLICY` | ✗ | | -| `ClickHouseClientOption#LOAD_BALANCING_TAGS` | ✗ | | -| `ClickHouseClientOption#HEALTH_CHECK_INTERVAL` | ✗ | | -| `ClickHouseClientOption#HEALTH_CHECK_METHOD` | ✗ | | -| `ClickHouseClientOption#NODE_DISCOVERY_INTERVAL` | ✗ | | -| `ClickHouseClientOption#NODE_DISCOVERY_LIMIT` | ✗ | | -| `ClickHouseClientOption#NODE_CHECK_INTERVAL` | ✗ | | -| `ClickHouseClientOption#NODE_GROUP_SIZE` | ✗ | | -| `ClickHouseClientOption#CHECK_ALL_NODES` | ✗ | | - - - - - -| V1 Configuration | V2 Builder Method | Comments | -|------------------|-------------------|----------| -| `ClickHouseDefaults#AUTO_SESSION` | ✗ | Session support will be reviewed | -| `ClickHouseDefaults#BUFFERING` | ✗ | | -| `ClickHouseDefaults#MAX_REQUESTS` | ✗ | | -| `ClickHouseDefaults#ROUNDING_MODE` | | | -| `ClickHouseDefaults#SERVER_VERSION`
    `ClickHouseClientOption#SERVER_VERSION` | `Client.Builder#setServerVersion` | | -| `ClickHouseDefaults#SRV_RESOLVE` | ✗ | | -| `ClickHouseClientOption#CUSTOM_SETTINGS` | | | -| `ClickHouseClientOption#PRODUCT_NAME` | ✗ | Use client name | -| `ClickHouseClientOption#RENAME_RESPONSE_COLUMN` | ✗ | | -| `ClickHouseClientOption#SERVER_REVISION` | ✗ | | -| `ClickHouseClientOption#TRANSACTION_TIMEOUT` | ✗ | | -| `ClickHouseClientOption#WIDEN_UNSIGNED_TYPES` | ✗ | | -| `ClickHouseClientOption#USE_BINARY_STRING` | ✗ | | -| `ClickHouseClientOption#USE_BLOCKING_QUEUE` | ✗ | | -| `ClickHouseClientOption#USE_COMPILATION` | ✗ | | -| `ClickHouseClientOption#USE_OBJECTS_IN_ARRAYS` | ✗ | | -| `ClickHouseClientOption#MAX_MAPPER_CACHE` | ✗ | | -| `ClickHouseClientOption#MEASURE_REQUEST_TIME` | ✗ | | - -
    -
    - - -### General Differences - -- Client V2 uses less proprietary classes to increase portability. For example, V2 works with any implementation of `java.io.InputStream` for -writing data to a server. -- Client V2 `async` settings is `off` by default. It means no extra threads and more application control over client. This setting should be `off` for majority of use cases. Enabling `async` will create a separate thread for a request. It only make sense when using application controlled -executor (see `com.clickhouse.client.api.Client.Builder#setSharedOperationExecutor`) - -### Writing Data - -- use any implementation of `java.io.InputStream`. V1 `com.clickhouse.data.ClickHouseInputStream` is supported but NOT recommended. -- once end of input stream is detected it handled accordingly. Previously output stream of a request should be closed. - -__V1 Insert TSV formatted data.__ -```java -InputStream inData = getInData(); -ClickHouseRequest.Mutation request = client.read(server) - .write() - .table(tableName) - .format(ClickHouseFormat.TSV); -ClickHouseConfig config = request.getConfig(); -CompletableFuture future; -try (ClickHousePipedOutputStream requestBody = ClickHouseDataStreamFactory.getInstance() - .createPipedOutputStream(config)) { - // start the worker thread which transfer data from the input into ClickHouse - future = request.data(requestBody.getInputStream()).execute(); - - // Copy data from inData stream to requestBody stream - - // We need to close the stream before getting a response - requestBody.close(); - - try (ClickHouseResponse response = future.get()) { - ClickHouseResponseSummary summary = response.getSummary(); - Assert.assertEquals(summary.getWrittenRows(), numRows, "Num of written rows"); - } -} - -``` - -__V2 Insert TSV formatted data.__ - -```java -InputStream inData = getInData(); -InsertSettings settings = new InsertSettings().setInputStreamCopyBufferSize(8198 * 2); // set copy buffer size -try (InsertResponse response = client.insert(tableName, inData, ClickHouseFormat.TSV, settings).get(30, TimeUnit.SECONDS)) { - - // Insert is complete at this point - -} catch (Exception e) { - // Handle exception -} -``` -- there is a single method to call. No need to create an additional request object. -- request body stream is closed automatically when all data is copied. -- new low-level API is available `com.clickhouse.client.api.Client#insert(java.lang.String, java.util.List, com.clickhouse.client.api.DataStreamWriter, com.clickhouse.data.ClickHouseFormat, com.clickhouse.client.api.insert.InsertSettings)`. `com.clickhouse.client.api.DataStreamWriter` is designed to implement custom data writing logic. For instance, reading data from a -queue. - - -### Reading Data - -- Data is read in `RowBinaryWithNamesAndTypes` format by default. Currently only this format is supported when data binding is required. -- Data can be read as a collection of records using `List com.clickhouse.client.api.Client#queryAll(java.lang.String)` method. It will read data to a memory and release connection. No need for extra handling. `GenericRecord` gives access to data, implements some conversions. - -```java -Collection records = client.queryAll("SELECT * FROM table"); -for (GenericRecord record : records) { - int rowId = record.getInteger("rowID"); - String name = record.getString("name"); - LocalDateTime ts = record.getLocalDateTime("ts"); -} - -``` - -
    - - - -Java client library to communicate with a DB server through its protocols. Current implementation supports only [HTTP interface](/interfaces/http). The library provides own API to send requests to a server. - -:::warning Deprecation -This library will be deprecated soon. Use the latest [Java Client](/integrations/language-clients/java/client/client.mdx) for new projects -::: - -## Setup {#v1-setup} - - - - -```xml - - - com.clickhouse - clickhouse-http-client - 0.7.2 - -``` - - - - -```kotlin -// https://mvnrepository.com/artifact/com.clickhouse/clickhouse-http-client -implementation("com.clickhouse:clickhouse-http-client:0.7.2") -``` - - - -```groovy -// https://mvnrepository.com/artifact/com.clickhouse/clickhouse-http-client -implementation 'com.clickhouse:clickhouse-http-client:0.7.2' -``` - - - - -Since version `0.5.0`, the driver uses a new client http library that needs to be added as a dependency. - - - - -```xml - - - org.apache.httpcomponents.client5 - httpclient5 - 5.3.1 - -``` - - - - -```kotlin -// https://mvnrepository.com/artifact/org.apache.httpcomponents.client5/httpclient5 -implementation("org.apache.httpcomponents.client5:httpclient5:5.3.1") -``` - - - -```groovy -// https://mvnrepository.com/artifact/org.apache.httpcomponents.client5/httpclient5 -implementation 'org.apache.httpcomponents.client5:httpclient5:5.3.1' -``` - - - - -## Initialization {#v1-initialization} - -Connection URL Format: `protocol://host[:port][/database][?param[=value][¶m[=value]][#tag[,tag]]`, for example: - -- `http://localhost:8443?ssl=true&sslmode=NONE` -- `https://(https://explorer@play.clickhouse.com:443` - -Connect to a single node: - -```java showLineNumbers -ClickHouseNode server = ClickHouseNode.of("http://localhost:8123/default?compress=0"); -``` -Connect to a cluster with multiple nodes: - -```java showLineNumbers -ClickHouseNodes servers = ClickHouseNodes.of( - "jdbc:ch:http://server1.domain,server2.domain,server3.domain/my_db" - + "?load_balancing_policy=random&health_check_interval=5000&failover=2"); -``` - -## Query API {#v1-query-api} - -```java showLineNumbers -try (ClickHouseClient client = ClickHouseClient.newInstance(ClickHouseProtocol.HTTP); - ClickHouseResponse response = client.read(servers) - .format(ClickHouseFormat.RowBinaryWithNamesAndTypes) - .query("select * from numbers limit :limit") - .params(1000) - .executeAndWait()) { - ClickHouseResponseSummary summary = response.getSummary(); - long totalRows = summary.getTotalRowsToRead(); -} -``` - -## Streaming Query API {#v1-streaming-query-api} - -```java showLineNumbers -try (ClickHouseClient client = ClickHouseClient.newInstance(ClickHouseProtocol.HTTP); - ClickHouseResponse response = client.read(servers) - .format(ClickHouseFormat.RowBinaryWithNamesAndTypes) - .query("select * from numbers limit :limit") - .params(1000) - .executeAndWait()) { - for (ClickHouseRecord r : response.records()) { - int num = r.getValue(0).asInteger(); - // type conversion - String str = r.getValue(0).asString(); - LocalDate date = r.getValue(0).asDate(); - } -} -``` - -See [complete code example](https://github.com/ClickHouse/clickhouse-java/blob/main/examples/client/src/main/java/com/clickhouse/examples/jdbc/Main.java#L73) in the [repo](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/client). - -## Insert API {#v1-insert-api} - -```java showLineNumbers - -try (ClickHouseClient client = ClickHouseClient.newInstance(ClickHouseProtocol.HTTP); - ClickHouseResponse response = client.read(servers).write() - .format(ClickHouseFormat.RowBinaryWithNamesAndTypes) - .query("insert into my_table select c2, c3 from input('c1 UInt8, c2 String, c3 Int32')") - .data(myInputStream) // `myInputStream` is source of data in RowBinary format - .executeAndWait()) { - ClickHouseResponseSummary summary = response.getSummary(); - summary.getWrittenRows(); -} -``` - -See [complete code example](https://github.com/ClickHouse/clickhouse-java/blob/main/examples/client/src/main/java/com/clickhouse/examples/jdbc/Main.java#L39) in the [repo](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/client). - -**RowBinary Encoding** - -RowBinary format is described on its [page](/interfaces/formats/RowBinaryWithNamesAndTypes). - -There is an example of [code](https://github.com/ClickHouse/clickhouse-kafka-connect/blob/main/src/main/java/com/clickhouse/kafka/connect/sink/db/ClickHouseWriter.java#L622). - -## Features {#v1-features} -### Compression {#v1-compression} - -The client will by default use LZ4 compression, which requires this dependency: - - - - -```xml - - - org.lz4 - lz4-java - 1.8.0 - -``` - - - - -```kotlin -// https://mvnrepository.com/artifact/org.lz4/lz4-java -implementation("org.lz4:lz4-java:1.8.0") -``` - - - -```groovy -// https://mvnrepository.com/artifact/org.lz4/lz4-java -implementation 'org.lz4:lz4-java:1.8.0' -``` - - - - -You can choose to use gzip instead by setting `compress_algorithm=gzip` in the connection URL. - -Alternatively, you can disable compression a few ways. - -1. Disable by setting `compress=0` in the connection URL: `http://localhost:8123/default?compress=0` -2. Disable via the client configuration: - -```java showLineNumbers -ClickHouseClient client = ClickHouseClient.builder() - .config(new ClickHouseConfig(Map.of(ClickHouseClientOption.COMPRESS, false))) - .nodeSelector(ClickHouseNodeSelector.of(ClickHouseProtocol.HTTP)) - .build(); -``` - -See the [compression documentation](/data-compression/compression-modes) to learn more about different compression options. - -### Multiple queries {#v1-multiple-queries} - -Execute multiple queries in a worker thread one after another within same session: - -```java showLineNumbers -CompletableFuture> future = ClickHouseClient.send(servers.apply(servers.getNodeSelector()), - "create database if not exists my_base", - "use my_base", - "create table if not exists test_table(s String) engine=Memory", - "insert into test_table values('1')('2')('3')", - "select * from test_table limit 1", - "truncate table test_table", - "drop table if exists test_table"); -List results = future.get(); -``` - -### Named Parameters {#v1-named-parameters} - -You can pass parameters by name rather than relying solely on their position in the parameter list. This capability is available using `params` function. - -```java showLineNumbers -try (ClickHouseClient client = ClickHouseClient.newInstance(ClickHouseProtocol.HTTP); - ClickHouseResponse response = client.read(servers) - .format(ClickHouseFormat.RowBinaryWithNamesAndTypes) - .query("select * from my_table where name=:name limit :limit") - .params("Ben", 1000) - .executeAndWait()) { - //... - } -} -``` - -:::note Parameters -All `params` signatures involving `String` type (`String`, `String[]`, `Map`) assume the keys being passed are valid ClickHouse SQL strings. For instance: - -```java showLineNumbers -try (ClickHouseClient client = ClickHouseClient.newInstance(ClickHouseProtocol.HTTP); - ClickHouseResponse response = client.read(servers) - .format(ClickHouseFormat.RowBinaryWithNamesAndTypes) - .query("select * from my_table where name=:name") - .params(Map.of("name","'Ben'")) - .executeAndWait()) { - //... - } -} -``` - -If you prefer not to parse String objects to ClickHouse SQL manually, you can use the helper function `ClickHouseValues.convertToSqlExpression` located at `com.clickhouse.data`: - -```java showLineNumbers -try (ClickHouseClient client = ClickHouseClient.newInstance(ClickHouseProtocol.HTTP); - ClickHouseResponse response = client.read(servers) - .format(ClickHouseFormat.RowBinaryWithNamesAndTypes) - .query("select * from my_table where name=:name") - .params(Map.of("name", ClickHouseValues.convertToSqlExpression("Ben's"))) - .executeAndWait()) { - //... - } -} -``` - -In the example above, `ClickHouseValues.convertToSqlExpression` will escape the inner single quote, and surround the variable with a valid single quotes. - -Other types, such as `Integer`, `UUID`, `Array` and `Enum` will be converted automatically inside `params`. -::: - -## Node Discovery {#v1-node-discovery} - -Java client provides the ability to discover ClickHouse nodes automatically. Auto-discovery is disabled by default. To manually enable it, set `auto_discovery` to `true`: - -```java -properties.setProperty("auto_discovery", "true"); -``` - -Or in the connection URL: - -```plaintext -jdbc:ch://my-server/system?auto_discovery=true -``` - -If auto-discovery is enabled, there is no need to specify all ClickHouse nodes in the connection URL. Nodes specified in the URL will be treated as seeds, and the Java client will automatically discover more nodes from system tables and/or clickhouse-keeper or zookeeper. - -The following options are responsible for auto-discovery configuration: - -| Property | Default | Description | -|-------------------------|---------|-------------------------------------------------------------------------------------------------------| -| auto_discovery | `false` | Whether the client should discover more nodes from system tables and/or clickhouse-keeper/zookeeper. | -| node_discovery_interval | `0` | Node discovery interval in milliseconds, zero or negative value means one-time discovery. | -| node_discovery_limit | `100` | Maximum number of nodes that can be discovered at a time; zero or negative value means no limit. | - -### Load Balancing {#v1-load-balancing} - -The Java client chooses a ClickHouse node to send requests to, according to the load-balancing policy. In general, the load-balancing policy is responsible for the following things: - -1. Get a node from a managed node list. -2. Managing node's status. -3. Optionally schedule a background process for node discovery (if auto-discovery is enabled) and run a health check. - -Here is a list of options to configure load balancing: - -| Property | Default | Description | -|-----------------------|-------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| load_balancing_policy | `""` | The load-balancing policy can be one of:
  • `firstAlive` - request is sent to the first healthy node from the managed node list
  • `random` - request is sent to a random node from the managed node list
  • `roundRobin` - request is sent to each node from the managed node list, in turn.
  • full qualified class name implementing `ClickHouseLoadBalancingPolicy` - custom load balancing policy
  • If it is not specified the request is sent to the first node from the managed node list | -| load_balancing_tags | `""` | Load balancing tags for filtering out nodes. Requests are sent only to nodes that have the specified tags | -| health_check_interval | `0` | Health check interval in milliseconds, zero or negative value means one-time. | -| health_check_method | `ClickHouseHealthCheckMethod.SELECT_ONE` | Health check method. Can be one of:
  • `ClickHouseHealthCheckMethod.SELECT_ONE` - check with `select 1` query
  • `ClickHouseHealthCheckMethod.PING` - protocol-specific check, which is generally faster
  • | -| node_check_interval | `0` | Node check interval in milliseconds, negative number is treated as zero. The node status is checked if the specified amount of time has passed since the last check.
    The difference between `health_check_interval` and `node_check_interval` is that the `health_check_interval` option schedules the background job, which checks the status for the list of nodes (all or faulty), but `node_check_interval` specifies the amount of time has passed since the last check for the particular node | -| check_all_nodes | `false` | Whether to perform a health check against all nodes or just faulty ones. | - -### Failover and retry {#v1-failover-and-retry} - -Java client provides configuration options to set up failover and retry behavior for failed queries: - -| Property | Default | Description | -|-------------------------|---------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| failover | `0` | Maximum number of times a failover can happen for a request. Zero or a negative value means no failover. Failover sends the failed request to a different node (according to the load-balancing policy) in order to recover from failover. | -| retry | `0` | Maximum number of times retry can happen for a request. Zero or a negative value means no retry. Retry sends a request to the same node and only if the ClickHouse server returns the `NETWORK_ERROR` error code | -| repeat_on_session_lock | `true` | Whether to repeat execution when the session is locked until timed out(according to `session_timeout` or `connect_timeout`). The failed request is repeated if the ClickHouse server returns the `SESSION_IS_LOCKED` error code | - -### Adding custom http headers {#v1-adding-custom-http-headers} - -Java client support HTTP/S transport layer in case we want to add custom HTTP headers to the request. -We should use the custom_http_headers property, and the headers need to be `,` separated. The header key/value should be divided using `=` - -## Java Client support {#v1-java-client-support} - -```java -options.put("custom_http_headers", "X-ClickHouse-Quota=test, X-ClickHouse-Test=test"); -``` - -## JDBC Driver {#v1-jdbc-driver} - -```java -properties.setProperty("custom_http_headers", "X-ClickHouse-Quota=test, X-ClickHouse-Test=test"); -``` - -
    - -
    diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/language-clients/java/jdbc/jdbc.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/language-clients/java/jdbc/jdbc.mdx deleted file mode 100644 index 2c4cae9b453..00000000000 --- a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/language-clients/java/jdbc/jdbc.mdx +++ /dev/null @@ -1,660 +0,0 @@ ---- -sidebar_label: 'JDBC' -sidebar_position: 4 -keywords: ['clickhouse', 'java', 'jdbc', 'driver', 'integrate'] -description: 'ClickHouse JDBC驱动程序' -slug: /integrations/language-clients/java/jdbc -title: 'JDBC驱动程序' -doc_type: 'reference' ---- - -import ClientVersionDropdown from '@theme/ClientVersionDropdown/ClientVersionDropdown'; -import Version from '@theme/ClientVersionDropdown/Version'; -import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWrapper'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - - - -:::note -`clickhouse-jdbc`使用最新的java客户端实现标准JDBC接口。 -如果性能/直接访问至关重要,我们建议直接使用最新的java客户端。 -::: - -## 0.7.x版本的变更 {#changes-from-07x} -在0.8版本中,我们尝试使驱动程序更严格地遵循JDBC规范,因此有一些已删除的功能可能会影响您: - -| Old Feature | Notes | -|----------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Transaction Support | Early versions of the driver only **simulated** transaction support, which could have unexpected results. | -| Response Column Renaming | `ResultSet` was mutable - for efficiency sake they're now read-only | -| Multi-Statement SQL | Multi-statement support was only **simulated**, now it strictly follows 1:1 | -| Named Parameters | Not part of the JDBC spec | -| Stream-based `PreparedStatement` | Early version of the driver allowed for non-jdbc usage of `PreparedStatement` - if you desire such options, we recommend looking at the [Java Client](/integrations/language-clients/java/client/client.mdx) and its [examples](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/client-v2). | - -:::note -`Date` is stored without timezone, while `DateTime` is stored with timezone. This can lead to unexpected results if you're not careful. -::: - -## Environment requirements {#environment-requirements} - -- [OpenJDK](https://openjdk.java.net) version >= 8 - -### Setup {#setup} - - - - - ```xml - - - com.clickhouse - clickhouse-jdbc - 0.9.4 - all - - ``` - - - - - ```kotlin - // https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc - implementation("com.clickhouse:clickhouse-jdbc:0.9.4:all") - ``` - - - - ```groovy - // https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc - implementation 'com.clickhouse:clickhouse-jdbc:0.9.4:all' - ``` - - - - -## Configuration {#configuration} - -**Driver Class**: `com.clickhouse.jdbc.ClickHouseDriver` - -**URL Syntax**: `jdbc:(ch|clickhouse)[:]://endpoint1[,endpoint2,...][/][?param1=value1¶m2=value2][#tag1,tag2,...]`, for example: - -- `jdbc:clickhouse:http://localhost:8123` -- `jdbc:clickhouse:https://localhost:8443?ssl=true` - -### Connection Properties - -Beyond standard JDBC properties, the driver supports the ClickHouse-specific properties offered by the underlying [java client](/integrations/language-clients/java/client#client-configuration). -Where possible methods will return an `SQLFeatureNotSupportedException` if the feature is not supported. Other custom properties include: - -| Property | Default | Description | -|----------------------------------|---------|----------------------------------------------------------------| -| `disable_frameworks_detection` | `true` | Disable frameworks detection for User-Agent | -| `jdbc_ignore_unsupported_values` | `false` | Suppresses `SQLFeatureNotSupportedException` | -| `clickhouse.jdbc.v1` | `false` | Use older JDBC implementation instead of new JDBC | -| `default_query_settings` | `null` | Allows passing of default query settings with query operations | -| `jdbc_resultset_auto_close` | `true` | Automatically closes `ResultSet` when `Statement` is closed | -| `beta.row_binary_for_simple_insert` | `false` | Use `PreparedStatement` implementation based on `RowBinary` writer. Works only for `INSERT INTO ... VALUES` queries. | - -:::note Server Settings - -All server settings should be prefixed with `clickhouse_setting_` (same as for the client [configuration](/integrations/language-clients/java/client#server-settings)). - - -```java -Properties config = new Properties(); -config.setProperty("user", "default"); -config.setProperty("password", getPassword()); - -// set server setting -config.put(ClientConfigProperties.serverSetting("allow_experimental_time_time64_type"), "1"); - -Connection conn = Driver.connect("jdbc:ch:http://localhost:8123/", config); -``` -::: - -## Supported data types {#supported-data-types} - -JDBC Driver supports the same data formats as the underlying [java client](/integrations/java#supported-data-types). - -### Handling Dates, Times, and Timezones {#handling-dates-times-and-timezones} -`java.sql.Date`, `java.sql.Time`, and `java.sql.Timestamp` can complicate how Timezones are calculated - though they're of course supported, -you may want to consider using the [java.time](https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html) package. `ZonedDateTime` and -`OffsetDateTime` are both great replacements for java.sql.Timestamp, java.sql.Date, and java.sql.Time. - -## Creating Connection {#creating-connection} - -```java -String url = "jdbc:ch://my-server:8123/system"; - -Properties properties = new Properties(); -DataSource dataSource = new DataSource(url, properties);//DataSource or DriverManager are the main entry points -try (Connection conn = dataSource.getConnection()) { -... // do something with the connection -``` - -## Supplying Credentials and Settings {#supplying-credentials-and-settings} - -```java showLineNumbers -String url = "jdbc:ch://localhost:8123?jdbc_ignore_unsupported_values=true&socket_timeout=10"; - -Properties info = new Properties(); -info.put("user", "default"); -info.put("password", "password"); -info.put("database", "some_db"); - -//Creating a connection with DataSource -DataSource dataSource = new DataSource(url, info); -try (Connection conn = dataSource.getConnection()) { -... // do something with the connection -} - -//Alternate approach using the DriverManager -try (Connection conn = DriverManager.getConnection(url, info)) { -... // do something with the connection -} -``` - -## Simple Statement {#simple-statement} - -```java showLineNumbers - -try (Connection conn = dataSource.getConnection(...); - Statement stmt = conn.createStatement()) { - ResultSet rs = stmt.executeQuery("select * from numbers(50000)"); - while(rs.next()) { - // ... - } -} -``` - -## Insert {#insert} - -```java showLineNumbers -try (PreparedStatement ps = conn.prepareStatement("INSERT INTO mytable VALUES (?, ?)")) { - ps.setString(1, "test"); // id - ps.setObject(2, LocalDateTime.now()); // timestamp - ps.addBatch(); - ... - ps.executeBatch(); // stream everything on-hand into ClickHouse -} -``` - -## `HikariCP` {#hikaricp} - -```java showLineNumbers -// connection pooling won't help much in terms of performance, -// because the underlying implementation has its own pool. -// for example: HttpURLConnection has a pool for sockets -HikariConfig poolConfig = new HikariConfig(); -poolConfig.setConnectionTimeout(5000L); -poolConfig.setMaximumPoolSize(20); -poolConfig.setMaxLifetime(300_000L); -poolConfig.setDataSource(new ClickHouseDataSource(url, properties)); - -try (HikariDataSource ds = new HikariDataSource(poolConfig); - Connection conn = ds.getConnection(); - Statement s = conn.createStatement(); - ResultSet rs = s.executeQuery("SELECT * FROM system.numbers LIMIT 3")) { - while (rs.next()) { - // handle row - log.info("Integer: {}, String: {}", rs.getInt(1), rs.getString(1));//Same column but different types - } -} -``` - -## More Information {#more-information} -For more information, see our [GitHub repository](https://github.com/ClickHouse/clickhouse-java) and [Java Client documentation](/integrations/language-clients/java/client/client.mdx). - -## Troubleshooting {#troubleshooting} -### Logging {#logging} -The driver uses [slf4j](https://www.slf4j.org/) for logging, and will use the first available implementation on the `classpath`. - -### Resolving JDBC Timeout on Large Inserts {#resolving-jdbc-timeout-on-large-inserts} - -When performing large inserts in ClickHouse with long execution times, you may encounter JDBC timeout errors like: - -```plaintext -Caused by: java.sql.SQLException: Read timed out, server myHostname [uri=https://hostname.aws.clickhouse.cloud:8443] -``` -These errors can disrupt the data insertion process and affect system stability. To address this issue you may need to adjust a few timeout settings in the client's OS. - -#### Mac OS {#mac-os} - -On Mac OS, the following settings can be adjusted to resolve the issue: - -- `net.inet.tcp.keepidle`: 60000 -- `net.inet.tcp.keepintvl`: 45000 -- `net.inet.tcp.keepinit`: 45000 -- `net.inet.tcp.keepcnt`: 8 -- `net.inet.tcp.always_keepalive`: 1 - -#### Linux {#linux} - -On Linux, the equivalent settings alone may not resolve the issue. Additional steps are required due to the differences in how Linux handles socket keep-alive settings. Follow these steps: - -1. Adjust the following Linux kernel parameters in `/etc/sysctl.conf` or a related configuration file: - - - `net.inet.tcp.keepidle`: 60000 - - `net.inet.tcp.keepintvl`: 45000 - - `net.inet.tcp.keepinit`: 45000 - - `net.inet.tcp.keepcnt`: 8 - - `net.inet.tcp.always_keepalive`: 1 - - `net.ipv4.tcp_keepalive_intvl`: 75 - - `net.ipv4.tcp_keepalive_probes`: 9 - - `net.ipv4.tcp_keepalive_time`: 60 (You may consider lowering this value from the default 300 seconds) - -2. After modifying the kernel parameters, apply the changes by running the following command: - -```shell -sudo sysctl -p -``` - -After Setting those settings, you need to ensure that your client enables the Keep Alive option on the socket: - -```java -properties.setProperty("socket_keepalive", "true"); -``` - - - - - - -`clickhouse-jdbc` implements the standard JDBC interface. Being built on top of [clickhouse-client](/integrations/sql-clients/sql-console), it provides additional features like custom type mapping, transaction support, and standard synchronous `UPDATE` and `DELETE` statements, etc., so that it can be easily used with legacy applications and tools. - -:::note -Latest JDBC (0.7.2) version uses Client-V1 -::: - -`clickhouse-jdbc` API is synchronous, and generally, it has more overheads(e.g., SQL parsing and type mapping/conversion, etc.). Consider [clickhouse-client](/integrations/sql-clients/sql-console) when performance is critical or if you prefer a more direct way to access ClickHouse. - -## Environment requirements {#v07-environment-requirements} - -- [OpenJDK](https://openjdk.java.net) version >= 8 - -### Setup {#v07-setup} - - - - - ```xml - - - com.clickhouse - clickhouse-jdbc - 0.7.2 - - shaded-all - - ``` - - - - - ```kotlin - // https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc - // use uber jar with all dependencies included, change classifier to http for smaller jar - implementation("com.clickhouse:clickhouse-jdbc:0.7.2:shaded-all") - ``` - - - - ```groovy - // https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc - // use uber jar with all dependencies included, change classifier to http for smaller jar - implementation 'com.clickhouse:clickhouse-jdbc:0.7.2:shaded-all' - ``` - - - - -Since version `0.5.0`, we are using Apache HTTP Client that's packed the Client. Since there is not a shared version of the package, you need to add a logger as a dependency. - - - - - ```xml - - - org.slf4j - slf4j-api - 2.0.16 - - ``` - - - - - ```kotlin - // https://mvnrepository.com/artifact/org.slf4j/slf4j-api - implementation("org.slf4j:slf4j-api:2.0.16") - ``` - - - - ```groovy - // https://mvnrepository.com/artifact/org.slf4j/slf4j-api - implementation 'org.slf4j:slf4j-api:2.0.16' - ``` - - - - -## Configuration {#v07-configuration} - -**Driver Class**: `com.clickhouse.jdbc.ClickHouseDriver` - -**URL Syntax**: `jdbc:(ch|clickhouse)[:]://endpoint1[,endpoint2,...][/][?param1=value1¶m2=value2][#tag1,tag2,...]`, for example: - -- `jdbc:ch://localhost` is same as `jdbc:clickhouse:http://localhost:8123` -- `jdbc:ch:https://localhost` is same as `jdbc:clickhouse:http://localhost:8443?ssl=true&sslmode=STRICT` -- `jdbc:ch:grpc://localhost` is same as `jdbc:clickhouse:grpc://localhost:9100` - -**Connection Properties**: - -| Property | Default | Description | -| ------------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `continueBatchOnError` | `false` | Whether to continue batch processing when error occurred | -| `createDatabaseIfNotExist` | `false` | Whether to create database if it does not exist | -| `custom_http_headers` | | comma separated custom http headers, for example: `User-Agent=client1,X-Gateway-Id=123` | -| `custom_http_params` | | comma separated custom http query parameters, for example: `extremes=0,max_result_rows=100` | -| `nullAsDefault` | `0` | `0` - treat null value as is and throw exception when inserting null into non-nullable column; `1` - treat null value as is and disable null-check for inserting; `2` - replace null to default value of corresponding data type for both query and insert | -| `jdbcCompliance` | `true` | Whether to support standard synchronous UPDATE/DELETE and fake transaction | -| `typeMappings` | | Customize mapping between ClickHouse data type and Java class, which will affect result of both [`getColumnType()`](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSetMetaData.html#getColumnType-int-) and [`getObject(Class<>?>`)](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSet.html#getObject-java.lang.String-java.lang.Class-). For example: `UInt128=java.lang.String,UInt256=java.lang.String` | -| `wrapperObject` | `false` | Whether [`getObject()`](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSet.html#getObject-int-) should return java.sql.Array / java.sql.Struct for Array / Tuple. | - -Note: please refer to [JDBC specific configuration](https://github.com/ClickHouse/clickhouse-java/blob/main/clickhouse-jdbc/src/main/java/com/clickhouse/jdbc/JdbcConfig.java) for more. - -## Supported data types {#v07-supported-data-types} - -JDBC Driver supports same data formats as client library does. - -:::note -- AggregatedFunction - :warning: does not support `SELECT * FROM table ...` -- Decimal - `SET output_format_decimal_trailing_zeros=1` in 21.9+ for consistency -- Enum - can be treated as both string and integer -- UInt64 - mapped to `long` (in client-v1) -::: - -## Creating Connection {#v07-creating-connection} - -```java -String url = "jdbc:ch://my-server/system"; // use http protocol and port 8123 by default - -Properties properties = new Properties(); - -ClickHouseDataSource dataSource = new ClickHouseDataSource(url, properties); -try (Connection conn = dataSource.getConnection("default", "password"); - Statement stmt = conn.createStatement()) { -} -``` - -## Simple Statement {#v07-simple-statement} - -```java showLineNumbers - -try (Connection conn = dataSource.getConnection(...); - Statement stmt = conn.createStatement()) { - ResultSet rs = stmt.executeQuery("select * from numbers(50000)"); - while(rs.next()) { - // ... - } -} -``` - -## Insert {#v07-insert} - -:::note -- Use `PreparedStatement` instead of `Statement` -::: - -It's easier to use but slower performance compare to input function (see below): - -```java showLineNumbers -try (PreparedStatement ps = conn.prepareStatement("insert into mytable(* except (description))")) { - ps.setString(1, "test"); // id - ps.setObject(2, LocalDateTime.now()); // timestamp - ps.addBatch(); // parameters will be write into buffered stream immediately in binary format - ... - ps.executeBatch(); // stream everything on-hand into ClickHouse -} -``` - -### With input table function {#with-input-table-function} - -An option with great performance characteristics: - -```java showLineNumbers -try (PreparedStatement ps = conn.prepareStatement( - "insert into mytable select col1, col2 from input('col1 String, col2 DateTime64(3), col3 Int32')")) { - // The column definition will be parsed so the driver knows there are 3 parameters: col1, col2 and col3 - ps.setString(1, "test"); // col1 - ps.setObject(2, LocalDateTime.now()); // col2, setTimestamp is slow and not recommended - ps.setInt(3, 123); // col3 - ps.addBatch(); // parameters will be write into buffered stream immediately in binary format - ... - ps.executeBatch(); // stream everything on-hand into ClickHouse -} -``` -- [input function doc](/sql-reference/table-functions/input/) whenever possible - -### Insert with placeholders {#insert-with-placeholders} - -This option is recommended only for small inserts because it would require a long SQL expression (that will be parsed on client side and it will consume CPU & Memory): - -```java showLineNumbers -try (PreparedStatement ps = conn.prepareStatement("insert into mytable values(trim(?),?,?)")) { - ps.setString(1, "test"); // id - ps.setObject(2, LocalDateTime.now()); // timestamp - ps.setString(3, null); // description - ps.addBatch(); // append parameters to the query - ... - ps.executeBatch(); // issue the composed query: insert into mytable values(...)(...)...(...) -} -``` - -## Handling DateTime and time zones {#handling-datetime-and-time-zones} - -Please to use `java.time.LocalDateTime` or `java.time.OffsetDateTime` instead of `java.sql.Timestamp`, and `java.time.LocalDate` instead of `java.sql.Date`. - -```java showLineNumbers -try (PreparedStatement ps = conn.prepareStatement("select date_time from mytable where date_time > ?")) { - ps.setObject(2, LocalDateTime.now()); - ResultSet rs = ps.executeQuery(); - while(rs.next()) { - LocalDateTime dateTime = (LocalDateTime) rs.getObject(1); - } - ... -} -``` - -## Handling `AggregateFunction` {#handling-aggregatefunction} - -:::note -As of now, only `groupBitmap` is supported. -::: - -```java showLineNumbers -// batch insert using input function -try (ClickHouseConnection conn = newConnection(props); - Statement s = conn.createStatement(); - PreparedStatement stmt = conn.prepareStatement( - "insert into test_batch_input select id, name, value from input('id Int32, name Nullable(String), desc Nullable(String), value AggregateFunction(groupBitmap, UInt32)')")) { - s.execute("drop table if exists test_batch_input;" - + "create table test_batch_input(id Int32, name Nullable(String), value AggregateFunction(groupBitmap, UInt32))engine=Memory"); - Object[][] objs = new Object[][] { - new Object[] { 1, "a", "aaaaa", ClickHouseBitmap.wrap(1, 2, 3, 4, 5) }, - new Object[] { 2, "b", null, ClickHouseBitmap.wrap(6, 7, 8, 9, 10) }, - new Object[] { 3, null, "33333", ClickHouseBitmap.wrap(11, 12, 13) } - }; - for (Object[] v : objs) { - stmt.setInt(1, (int) v[0]); - stmt.setString(2, (String) v[1]); - stmt.setString(3, (String) v[2]); - stmt.setObject(4, v[3]); - stmt.addBatch(); - } - int[] results = stmt.executeBatch(); - ... -} - -// use bitmap as query parameter -try (PreparedStatement stmt = conn.prepareStatement( - "SELECT bitmapContains(my_bitmap, toUInt32(1)) as v1, bitmapContains(my_bitmap, toUInt32(2)) as v2 from {tt 'ext_table'}")) { - stmt.setObject(1, ClickHouseExternalTable.builder().name("ext_table") - .columns("my_bitmap AggregateFunction(groupBitmap,UInt32)").format(ClickHouseFormat.RowBinary) - .content(new ByteArrayInputStream(ClickHouseBitmap.wrap(1, 3, 5).toBytes())) - .asTempTable() - .build()); - ResultSet rs = stmt.executeQuery(); - Assert.assertTrue(rs.next()); - Assert.assertEquals(rs.getInt(1), 1); - Assert.assertEquals(rs.getInt(2), 0); - Assert.assertFalse(rs.next()); -} -``` - -
    - -## Configuring HTTP library {#v07-configuring-http-library} - -The ClickHouse JDBC connector supports three HTTP libraries: [`HttpClient`](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpClient.html), [`HttpURLConnection`](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/net/HttpURLConnection.html), and [Apache `HttpClient`](https://hc.apache.org/httpcomponents-client-5.2.x/). - -:::note -`HttpClient` is only supported in JDK 11 or above. -::: - -The JDBC driver uses `HttpClient` by default. You can change the HTTP library used by the ClickHouse JDBC connector by setting the following property: - -```java -properties.setProperty("http_connection_provider", "APACHE_HTTP_CLIENT"); -``` - -Here is a full list of the corresponding values: - -| Property Value | HTTP Library | -|---------------------|---------------------| -| HTTP_CLIENT | `HttpClient` | -| HTTP_URL_CONNECTION | `HttpURLConnection` | -| APACHE_HTTP_CLIENT | Apache `HttpClient` | - -
    - -## Connect to ClickHouse with SSL {#connect-to-clickhouse-with-ssl} - -To establish a secure JDBC connection to ClickHouse using SSL, you need to configure your JDBC properties to include SSL parameters. This typically involves specifying SSL properties such as `sslmode` and `sslrootcert` in your JDBC URL or Properties object. - -## SSL Properties {#ssl-properties} - -| Name | Default Value | Optional Values | Description | -| ------------------ | ------------- | --------------- |----------------------------------------------------------------------------------| -| `ssl` | false | true, false | Whether to enable SSL/TLS for the connection | -| `sslmode` | strict | strict, none | Whether to verify SSL/TLS certificate | -| `sslrootcert` | | | Path to SSL/TLS root certificates | -| `sslcert` | | | Path to SSL/TLS certificate | -| `sslkey` | | | RSA key in PKCS#8 format | -| `key_store_type` | | JKS, PKCS12 | Specifies the type or format of the `KeyStore`/`TrustStore` file | -| `trust_store` | | | Path to the `TrustStore` file | -| `key_store_password` | | | Password needed to access the `KeyStore` file specified in the `KeyStore` config | - -These properties ensure that your Java application communicates with the ClickHouse server over an encrypted connection, enhancing data security during transmission. - -```java showLineNumbers - String url = "jdbc:ch://your-server:8443/system"; - - Properties properties = new Properties(); - properties.setProperty("ssl", "true"); - properties.setProperty("sslmode", "strict"); // NONE to trust all servers; STRICT for trusted only - properties.setProperty("sslrootcert", "/mine.crt"); - try (Connection con = DriverManager - .getConnection(url, properties)) { - - try (PreparedStatement stmt = con.prepareStatement( - - // place your code here - - } - } -``` - -## Resolving JDBC Timeout on Large Inserts {#v07-resolving-jdbc-timeout-on-large-inserts} - -When performing large inserts in ClickHouse with long execution times, you may encounter JDBC timeout errors like: - -```plaintext -Caused by: java.sql.SQLException: Read timed out, server myHostname [uri=https://hostname.aws.clickhouse.cloud:8443] -``` - -These errors can disrupt the data insertion process and affect system stability. To address this issue you need to adjust a few timeout settings in the client's OS. - -### Mac OS {#v07-mac-os} - -On Mac OS, the following settings can be adjusted to resolve the issue: - -- `net.inet.tcp.keepidle`: 60000 -- `net.inet.tcp.keepintvl`: 45000 -- `net.inet.tcp.keepinit`: 45000 -- `net.inet.tcp.keepcnt`: 8 -- `net.inet.tcp.always_keepalive`: 1 - -### Linux {#v07-linux} - -On Linux, the equivalent settings alone may not resolve the issue. Additional steps are required due to the differences in how Linux handles socket keep-alive settings. Follow these steps: - -1. Adjust the following Linux kernel parameters in `/etc/sysctl.conf` or a related configuration file: - -- `net.inet.tcp.keepidle`: 60000 -- `net.inet.tcp.keepintvl`: 45000 -- `net.inet.tcp.keepinit`: 45000 -- `net.inet.tcp.keepcnt`: 8 -- `net.inet.tcp.always_keepalive`: 1 -- `net.ipv4.tcp_keepalive_intvl`: 75 -- `net.ipv4.tcp_keepalive_probes`: 9 -- `net.ipv4.tcp_keepalive_time`: 60 (You may consider lowering this value from the default 300 seconds) - -2. After modifying the kernel parameters, apply the changes by running the following command: - -```shell -sudo sysctl -p - ``` - -After Setting those settings, you need to ensure that your client enables the Keep Alive option on the socket: - -```java -properties.setProperty("socket_keepalive", "true"); -``` - -:::note -Currently, you must use Apache HTTP Client library when setting the socket keep-alive, as the other two HTTP client libraries supported by `clickhouse-java` do not allow setting socket options. For a detailed guide, see [Configuring HTTP library](#v07-configuring-http-library). -::: - -Alternatively, you can add equivalent parameters to the JDBC URL. - -The default socket and connection timeout for the JDBC driver is 30 seconds. The timeout can be increased to support large data insert operations. Use the `options` method on `ClickHouseClient` together with the `SOCKET_TIMEOUT` and `CONNECTION_TIMEOUT` options as defined by `ClickHouseClientOption`: - -```java showLineNumbers -final int MS_12H = 12 * 60 * 60 * 1000; // 12 h in ms -final String sql = "insert into table_a (c1, c2, c3) select c1, c2, c3 from table_b;"; - -try (ClickHouseClient client = ClickHouseClient.newInstance(ClickHouseProtocol.HTTP)) { - client.read(servers).write() - .option(ClickHouseClientOption.SOCKET_TIMEOUT, MS_12H) - .option(ClickHouseClientOption.CONNECTION_TIMEOUT, MS_12H) - .query(sql) - .executeAndWait(); -} -``` - -
    - -
    diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/introduction.md b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/introduction.md index 34d532e07ae..0943129b688 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/introduction.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/introduction.md @@ -296,46 +296,46 @@ CREATE EXTENSION pg_clickhouse SCHEMA env; [TPC-H]: https://www.tpc.org/tpch/ -[查询 1]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/1.sql +[Query 1]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/1.sql -[查询 2]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/2.sql +[Query 2]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/2.sql -[查询 3]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/3.sql +[Query 3]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/3.sql -[查询 4]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/4.sql +[Query 4]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/4.sql -[查询 5]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/5.sql +[Query 5]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/5.sql -[查询 6]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/6.sql +[Query 6]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/6.sql -[查询 7]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/7.sql +[Query 7]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/7.sql -[查询 8]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/8.sql +[Query 8]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/8.sql -[查询 9]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/9.sql +[Query 9]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/9.sql -[查询 10]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/10.sql +[Query 10]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/10.sql -[查询 11]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/11.sql +[Query 11]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/11.sql -[查询 12]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/12.sql +[Query 12]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/12.sql -[查询 13]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/13.sql +[Query 13]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/13.sql -[查询 14]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/14.sql +[Query 14]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/14.sql -[查询 15]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/15.sql +[Query 15]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/15.sql -[查询 16]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/16.sql +[Query 16]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/16.sql -[查询 17]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/17.sql +[Query 17]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/17.sql -[查询 18]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/18.sql +[Query 18]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/18.sql -[查询 19]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/19.sql +[Query 19]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/19.sql -[查询 20]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/20.sql +[Query 20]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/20.sql -[查询 21]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/21.sql +[Query 21]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/21.sql -[查询 22]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/22.sql \ No newline at end of file +[Query 22]: https://github.com/Vonng/pgtpc/blob/master/tpch/queries/22.sql \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/reference.md b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/reference.md index 652e2f7c669..717364ccb1f 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/reference.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/reference.md @@ -518,7 +518,7 @@ pg_clickhouse 不会验证这些设置,而是会在处理每个查询时 ## 版权 {#copyright} -* 版权 (c) 2025,ClickHouse +* 版权 (c) 2025-2026,ClickHouse * 部分版权 (c) 2023-2025,Ildus Kurbangaliev * 部分版权 (c) 2019-2023,Adjust GmbH * 部分版权 (c) 2012-2019,PostgreSQL Global Development Group diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/interfaces/third-party/client-libraries.md b/i18n/zh/docusaurus-plugin-content-docs/current/interfaces/third-party/client-libraries.md index ae64b43eee8..606b06def20 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/interfaces/third-party/client-libraries.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/interfaces/third-party/client-libraries.md @@ -15,40 +15,40 @@ ClickHouse Inc **不**负责维护下列库,也未对其质量进行任何广 ### Python {#python} -* [Moose OLAP](https://docs.fiveonefour.com/moose/olap) -* [infi.clickhouse_orm](https://github.com/Infinidat/infi.clickhouse_orm) -* [clickhouse-driver](https://github.com/mymarilyn/clickhouse-driver) -* [clickhouse-client](https://github.com/yurial/clickhouse-client) -* [aiochclient](https://github.com/maximdanilchenko/aiochclient) -* [asynch](https://github.com/long2ice/asynch) +- [Moose OLAP](https://docs.fiveonefour.com/moose/olap) +- [infi.clickhouse_orm](https://github.com/Infinidat/infi.clickhouse_orm) +- [clickhouse-driver](https://github.com/mymarilyn/clickhouse-driver) +- [clickhouse-client](https://github.com/yurial/clickhouse-client) +- [aiochclient](https://github.com/maximdanilchenko/aiochclient) +- [asynch](https://github.com/long2ice/asynch) ### PHP {#php} -* [smi2/phpclickhouse](https://packagist.org/packages/smi2/phpClickHouse) -* [8bitov/clickhouse-php-client](https://packagist.org/packages/8bitov/clickhouse-php-client) -* [bozerkins/clickhouse-client](https://packagist.org/packages/bozerkins/clickhouse-client) -* [simpod/clickhouse-client](https://packagist.org/packages/simpod/clickhouse-client) -* [seva-code/php-click-house-client](https://packagist.org/packages/seva-code/php-click-house-client) -* [SeasClick C++ 客户端](https://github.com/SeasX/SeasClick) -* [one-ck](https://github.com/lizhichao/one-ck) -* [glushkovds/phpclickhouse-laravel](https://packagist.org/packages/glushkovds/phpclickhouse-laravel) -* [glushkovds/php-clickhouse-schema-builder](https://packagist.org/packages/glushkovds/php-clickhouse-schema-builder) -* [kolya7k ClickHouse PHP 扩展](https://github.com//kolya7k/clickhouse-php) -* [hyvor/clickhouse-php](https://github.com/hyvor/clickhouse-php) +- [smi2/phpclickhouse](https://packagist.org/packages/smi2/phpClickHouse) +- [8bitov/clickhouse-php-client](https://packagist.org/packages/8bitov/clickhouse-php-client) +- [bozerkins/clickhouse-client](https://packagist.org/packages/bozerkins/clickhouse-client) +- [simpod/clickhouse-client](https://packagist.org/packages/simpod/clickhouse-client) +- [seva-code/php-click-house-client](https://packagist.org/packages/seva-code/php-click-house-client) +- [SeasClick C++ 客户端](https://github.com/SeasX/SeasClick) +- [one-ck](https://github.com/lizhichao/one-ck) +- [glushkovds/phpclickhouse-laravel](https://packagist.org/packages/glushkovds/phpclickhouse-laravel) +- [glushkovds/php-clickhouse-schema-builder](https://packagist.org/packages/glushkovds/php-clickhouse-schema-builder) +- [kolya7k ClickHouse PHP 扩展](https://github.com//kolya7k/clickhouse-php) +- [hyvor/clickhouse-php](https://github.com/hyvor/clickhouse-php) ### Go {#go} -* [ClickHouse](https://github.com/kshvakov/clickhouse/) -* [go-clickhouse](https://github.com/roistat/go-clickhouse) -* [chconn](https://github.com/vahid-sohrabloo/chconn) -* [mailrugo-clickhouse](https://github.com/mailru/go-clickhouse) -* [golang-clickhouse](https://github.com/leprosus/golang-clickhouse) -* [uptrace/go-clickhouse](https://clickhouse.uptrace.dev/) +- [clickhouse](https://github.com/kshvakov/clickhouse/) +- [go-clickhouse](https://github.com/roistat/go-clickhouse) +- [chconn](https://github.com/vahid-sohrabloo/chconn) +- [mailrugo-clickhouse](https://github.com/mailru/go-clickhouse) +- [golang-clickhouse](https://github.com/leprosus/golang-clickhouse) +- [uptrace/go-clickhouse](https://clickhouse.uptrace.dev/) ### Swift {#swift} -* [ClickHouseNIO](https://github.com/patrick-zippenfenig/ClickHouseNIO) -* [ClickHouseVapor ORM](https://github.com/patrick-zippenfenig/ClickHouseVapor) +- [ClickHouseNIO](https://github.com/patrick-zippenfenig/ClickHouseNIO) +- [ClickHouseVapor ORM](https://github.com/patrick-zippenfenig/ClickHouseVapor) ### NodeJs {#nodejs} @@ -63,20 +63,20 @@ ClickHouse Inc **不**负责维护下列库,也未对其质量进行任何广 ### Perl {#perl} -* [perl-DBD-ClickHouse](https://github.com/elcamlost/perl-DBD-ClickHouse) -* [HTTP-ClickHouse](https://metacpan.org/release/HTTP-ClickHouse) -* [AnyEvent-ClickHouse](https://metacpan.org/release/AnyEvent-ClickHouse) +- [perl-DBD-ClickHouse](https://github.com/elcamlost/perl-DBD-ClickHouse) +- [HTTP-ClickHouse](https://metacpan.org/release/HTTP-ClickHouse) +- [AnyEvent-ClickHouse](https://metacpan.org/release/AnyEvent-ClickHouse) ### Ruby {#ruby} -* [ClickHouse(Ruby)](https://github.com/shlima/click_house) -* [clickhouse-activerecord](https://github.com/PNixx/clickhouse-activerecord) +- [ClickHouse(Ruby)](https://github.com/shlima/click_house) +- [clickhouse-activerecord](https://github.com/PNixx/clickhouse-activerecord) ### Rust {#rust} -* [clickhouse.rs](https://github.com/loyd/clickhouse.rs) -* [clickhouse-rs](https://github.com/suharev7/clickhouse-rs) -* [Klickhouse](https://github.com/Protryon/klickhouse) +- [clickhouse.rs](https://github.com/loyd/clickhouse.rs) +- [clickhouse-rs](https://github.com/suharev7/clickhouse-rs) +- [Klickhouse](https://github.com/Protryon/klickhouse) ### R {#r} @@ -84,23 +84,27 @@ ClickHouse Inc **不**负责维护下列库,也未对其质量进行任何广 ### Java {#java} -* [clickhouse-client-java](https://github.com/VirtusAI/clickhouse-client-java) -* [clickhouse-client](https://github.com/Ecwid/clickhouse-client) +- [clickhouse-client-java](https://github.com/VirtusAI/clickhouse-client-java) +- [clickhouse-client](https://github.com/Ecwid/clickhouse-client) ### Scala {#scala} -* [clickhouse-scala-client](https://github.com/crobox/clickhouse-scala-client) +- [clickhouse-scala-client](https://github.com/crobox/clickhouse-scala-client) ### Kotlin {#kotlin} * [AORM](https://github.com/TanVD/AORM) +### C++ {#cpp} + +- [userver 框架的 ClickHouse 驱动](https://userver.tech/dd/ddb/clickhouse_driver.html) + ### C# {#c} -* [Octonica.ClickHouseClient](https://github.com/Octonica/ClickHouseClient) -* [ClickHouse.Ado](https://github.com/killwort/ClickHouse-Net) -* [ClickHouse.Client](https://github.com/DarkWanderer/ClickHouse.Client) -* [ClickHouse.Net](https://github.com/ilyabreev/ClickHouse.Net) +- [Octonica.ClickHouseClient](https://github.com/Octonica/ClickHouseClient) +- [ClickHouse.Ado](https://github.com/killwort/ClickHouse-Net) +- [ClickHouse.Client](https://github.com/DarkWanderer/ClickHouse.Client) +- [ClickHouse.Net](https://github.com/ilyabreev/ClickHouse.Net) ### Elixir {#elixir} @@ -111,9 +115,9 @@ ClickHouse Inc **不**负责维护下列库,也未对其质量进行任何广 ### Nim {#nim} -* [nim-clickhouse](https://github.com/leonardoce/nim-clickhouse) +- [nim-clickhouse](https://github.com/leonardoce/nim-clickhouse) ### Haskell {#haskell} * [hdbc-clickhouse](https://github.com/zaneli/hdbc-clickhouse) -* [ClickHaskell](https://clickhaskell.dev/) +* [ClickHaskell](https://clickhaskell.dev/) \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/operations/allocation-profiling.md b/i18n/zh/docusaurus-plugin-content-docs/current/operations/allocation-profiling.md index 35408aa9aca..b33c3a7edf3 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/operations/allocation-profiling.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/operations/allocation-profiling.md @@ -9,6 +9,7 @@ doc_type: 'guide' import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; + # 内存分配分析 {#allocation-profiling} ClickHouse 使用 [jemalloc](https://github.com/jemalloc/jemalloc) 作为其全局分配器。Jemalloc 自带了一些用于内存分配采样和分析的工具。 @@ -40,6 +41,7 @@ ClickHouse 使用 [jemalloc](https://github.com/jemalloc/jemalloc) 作为其全 由于 ClickHouse 是一个内存分配密集型应用程序,jemalloc 采样可能会带来性能开销。 ::: + ## 在 `system.trace_log` 中存储 jemalloc 采样数据 {#storing-jemalloc-samples-in-system-trace-log} 你可以将所有 jemalloc 采样数据以 `JemallocSample` 类型存储到 `system.trace_log` 中。 @@ -57,6 +59,7 @@ ClickHouse 使用 [jemalloc](https://github.com/jemalloc/jemalloc) 作为其全 你也可以通过使用 `jemalloc_collect_profile_samples_in_trace_log` 设置,为单个查询启用该功能。 + ### 使用 `system.trace_log` 分析查询内存使用情况的示例 {#example-analyzing-memory-usage-trace-log} 首先,我们需要在启用 jemalloc profiler 的情况下运行查询,并将该查询的样本收集到 `system.trace_log` 中: @@ -78,7 +81,7 @@ Peak memory usage: 12.65 MiB. ``` :::note -如果 ClickHouse 启动时已启用 `jemalloc_enable_global_profiler`,则无需再启用 `jemalloc_enable_profiler`。\ +如果 ClickHouse 启动时已启用 `jemalloc_enable_global_profiler`,则无需再启用 `jemalloc_enable_profiler`。 对于 `jemalloc_collect_global_profile_samples_in_trace_log` 和 `jemalloc_collect_profile_samples_in_trace_log` 也是同样的。 ::: @@ -88,7 +91,7 @@ Peak memory usage: 12.65 MiB. SYSTEM FLUSH LOGS trace_log ``` -然后对其进行查询,以获取我们在每个时间点运行的查询的内存使用情况: +然后对其执行查询,以获取我们所运行查询在每个时间点的内存使用情况: ```sql WITH per_bucket AS @@ -112,7 +115,7 @@ FROM per_bucket ORDER BY bucket_time ``` -我们还可以找出内存使用量最高的时间点: +我们还可以找出内存使用量达到峰值的时间点: ```sql SELECT @@ -142,7 +145,7 @@ FROM ) ``` -我们可以利用该结果查看在该时间点上哪些位置的活跃内存分配最多: +我们可以利用该结果查看在该时间点上活跃内存分配最多的来源: ```sql SELECT @@ -175,9 +178,10 @@ GROUP BY ALL ORDER BY per_trace_sum ASC ``` + ## 刷新堆内存剖析文件 {#flushing-heap-profiles} -默认情况下,堆剖析文件会生成在 `/tmp/jemalloc_clickhouse._pid_._seqnum_.heap` 中,其中 `_pid_` 是 ClickHouse 的 PID,`_seqnum_` 是当前堆剖析文件的全局序号。\ +默认情况下,堆剖析文件会生成在 `/tmp/jemalloc_clickhouse._pid_._seqnum_.heap` 中,其中 `_pid_` 是 ClickHouse 的 PID,`_seqnum_` 是当前堆剖析文件的全局序号。 对于 Keeper,默认文件为 `/tmp/jemalloc_keeper._pid_._seqnum_.heap`,并遵循相同规则。 你可以通过运行以下命令,让 `jemalloc` 将当前剖析文件刷新到磁盘: @@ -198,25 +202,61 @@ ORDER BY per_trace_sum ASC -你可以通过在 `MALLOC_CONF` 环境变量中追加 `prof_prefix` 选项来定义不同的存储位置。\ +你可以通过在 `MALLOC_CONF` 环境变量中追加 `prof_prefix` 选项来定义不同的存储位置。 例如,如果你希望在 `/data` 目录中生成剖析文件,并将文件名前缀设置为 `my_current_profile`,可以使用如下环境变量来运行 ClickHouse/Keeper: ```sh MALLOC_CONF=prof_prefix:/data/my_current_profile ``` -生成的文件名将由前缀、PID 和序列号组成。 +生成的文件名会在前缀后追加 PID 和序列号。 + ## 分析堆内存剖析数据 {#analyzing-heap-profiles} -在生成堆内存剖析数据之后,需要对其进行分析。\ +在生成堆内存剖析数据之后,需要对其进行分析。 为此,可以使用 `jemalloc` 提供的工具 [jeprof](https://github.com/jemalloc/jemalloc/blob/dev/bin/jeprof.in)。它可以通过多种方式安装: -* 使用系统的包管理器 -* 克隆 [jemalloc 仓库](https://github.com/jemalloc/jemalloc) 并在根目录运行 `autogen.sh`。这样会在 `bin` 目录中生成 `jeprof` 脚本 +- 使用系统的包管理器 +- 克隆 [jemalloc 仓库](https://github.com/jemalloc/jemalloc) 并在根目录运行 `autogen.sh`。这样会在 `bin` 目录中生成 `jeprof` 脚本 + +可以使用 `jeprof` 从堆内存分析结果生成多种不同的输出格式。 +可以运行 `jeprof --help` 来查看该工具的用法以及提供的各类选项。 + +### 符号化堆内存剖析数据 {#symbolized-heap-profiles} + +从 26.1+ 版本开始,当你使用 `SYSTEM JEMALLOC FLUSH PROFILE` 进行刷新时,ClickHouse 会自动生成符号化的堆内存剖析数据。 +符号化的剖析文件(扩展名为 `.symbolized`)包含内嵌的函数符号,可以在不需要 ClickHouse 二进制文件的情况下由 `jeprof` 进行分析。 + +例如,当你运行: + +```sql +SYSTEM JEMALLOC FLUSH PROFILE +``` + +ClickHouse 会返回符号化后的分析概要文件路径(例如 `/tmp/jemalloc_clickhouse.12345.0.heap.symbolized`)。 + +然后可以直接使用 `jeprof` 对其进行分析: + +```sh +jeprof /tmp/jemalloc_clickhouse.12345.0.heap.symbolized --output_format [ > output_file] +``` :::note -`jeprof` 使用 `addr2line` 来生成堆栈跟踪,这个过程可能非常缓慢。\ + +**无需二进制文件**:在使用已符号化的剖析文件(`.symbolized` 文件)时,你不需要再向 `jeprof` 提供 ClickHouse 二进制文件的路径。这样就可以更轻松地在不同机器上,或在二进制文件更新之后,对这些剖析数据进行分析。 + +::: + +如果你有较早的未符号化堆内存剖析文件,并且仍然可以访问对应的 ClickHouse 二进制文件,则可以使用传统方式: + +```sh +jeprof path/to/clickhouse path/to/heap/profile --output_format [ > output_file] +``` + +:::note + +对于未符号化的剖析结果,`jeprof` 使用 `addr2line` 来生成堆栈跟踪,这个过程可能非常缓慢。 如果遇到这种情况,建议安装该工具的[替代实现](https://github.com/gimli-rs/addr2line)。 ```bash @@ -226,39 +266,50 @@ cargo build --features bin --release cp ./target/release/addr2line path/to/current/addr2line ``` -或者,`llvm-addr2line` 同样适用。 +或者,`llvm-addr2line` 同样适用(但请注意,`llvm-objdump` 与 `jeprof` 不兼容)。 + +之后可以像这样使用它:`jeprof --tools addr2line:/usr/bin/llvm-addr2line,nm:/usr/bin/llvm-nm,objdump:/usr/bin/objdump,c++filt:/usr/bin/llvm-cxxfilt` ::: -可以使用 `jeprof` 从堆内存分析结果生成多种不同的输出格式。 -建议运行 `jeprof --help` 来查看该工具的用法以及提供的各类选项。 +在比较两个分析概要时,可以使用 `--base` 参数: + +```sh +jeprof --base /path/to/first.heap.symbolized /path/to/second.heap.symbolized --output_format [ > output_file] +``` + -通常情况下,`jeprof` 命令的用法如下: +### 示例 {#examples} + +使用带符号信息的 profile(推荐): + +* 生成一个文本文件,每个过程一行: ```sh -jeprof 二进制文件路径 堆配置文件路径 --output_format [ > 输出文件] +jeprof /tmp/jemalloc_clickhouse.12345.0.heap.symbolized --text > result.txt ``` -如果你想比较在两个分析概要之间发生了哪些分配,可以设置 `base` 参数: +* 生成包含调用关系图的 PDF 文件: ```sh -jeprof 二进制文件路径 --base 第一个堆配置文件路径 第二个堆配置文件路径 --output_format [ > 输出文件] +jeprof /tmp/jemalloc_clickhouse.12345.0.heap.symbolized --pdf > result.pdf ``` -### 示例 {#examples} +使用未符号化的 profile(需要二进制文件): -* 如果你想生成一个文本文件,使每个过程各写在单独一行: +* 生成一个文本文件,每个过程名称占一行: ```sh -jeprof 二进制文件路径 堆配置文件路径 --text > result.txt +jeprof /path/to/clickhouse /tmp/jemalloc_clickhouse.12345.0.heap --text > result.txt ``` -* 如果你想生成带有调用关系图的 PDF 文件: +* 生成带有调用关系图的 PDF 文件: ```sh -jeprof path/to/binary path/to/heap/profile --pdf > result.pdf +jeprof /path/to/clickhouse /tmp/jemalloc_clickhouse.12345.0.heap --pdf > result.pdf ``` + ### 生成火焰图 {#generating-flame-graph} `jeprof` 可以生成用于构建火焰图的折叠后调用栈。 @@ -266,7 +317,13 @@ jeprof path/to/binary path/to/heap/profile --pdf > result.pdf 需要使用 `--collapsed` 参数: ```sh -jeprof path/to/binary path/to/heap/profile --collapsed > result.collapsed +jeprof /tmp/jemalloc_clickhouse.12345.0.heap.symbolized --collapsed > result.collapsed +``` + +或者使用未符号化的剖析概要: + +```sh +jeprof /path/to/clickhouse /tmp/jemalloc_clickhouse.12345.0.heap --collapsed > result.collapsed ``` 接下来,你可以使用许多不同的工具来可视化折叠后的调用栈。 @@ -279,6 +336,7 @@ cat result.collapsed | /path/to/FlameGraph/flamegraph.pl --color=mem --title="Al 另一个有用的工具是 [speedscope](https://www.speedscope.app/),它使你能够以更直观、交互的方式分析收集到的调用栈。 + ## 分析器的其他选项 {#additional-options-for-profiler} `jemalloc` 提供了许多与分析器相关的选项。可以通过设置 `MALLOC_CONF` 环境变量来进行配置。 @@ -306,6 +364,7 @@ FORMAT Vertical [参考](/operations/system-tables/asynchronous_metrics) + ### 系统表 `jemalloc_bins` {#system-table-jemalloc_bins} 包含通过 jemalloc 分配器在不同大小类(bins)中的内存分配情况,这些信息从所有 arena 聚合而来。 @@ -320,7 +379,7 @@ FORMAT Vertical ### Keeper 中的 `jmst` 4LW 命令 {#jmst-4lw-command-in-keeper} -Keeper 支持 `jmst` 4LW 命令,其返回[基础分配器统计信息](https://github.com/jemalloc/jemalloc/wiki/Use-Case%3A-Basic-Allocator-Statistics): +Keeper 支持 `jmst` 4LW 命令,它会返回[基础分配器统计信息](https://github.com/jemalloc/jemalloc/wiki/Use-Case%3A-Basic-Allocator-Statistics): ```sh echo jmst | nc localhost 9181 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/operations/settings/merge-tree-settings.md b/i18n/zh/docusaurus-plugin-content-docs/current/operations/settings/merge-tree-settings.md index 37813fb8219..681613c53ce 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/operations/settings/merge-tree-settings.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/operations/settings/merge-tree-settings.md @@ -476,9 +476,9 @@ SELECT * FROM example WHERE key = 'xxx' ORDER BY time DESC LIMIT 10; ## dynamic_serialization_version {#dynamic_serialization_version} - + - + Dynamic 数据类型的序列化版本,为兼容性所必需。 @@ -510,7 +510,7 @@ Dynamic 数据类型的序列化版本,为兼容性所必需。 - + 用于控制 `min_age_to_force_merge_seconds` 和 `min_age_to_force_merge_on_partition_only` 是否遵循 @@ -1744,9 +1744,9 @@ Otherwise, ClickHouse throws an exception。 ## object_serialization_version {#object_serialization_version} - + - + JSON 数据类型的序列化版本。用于兼容性目的。 @@ -1776,9 +1776,9 @@ JSON 数据类型的序列化版本。用于兼容性目的。 ## object_shared_data_serialization_version {#object_shared_data_serialization_version} - + - + JSON 数据类型中共享数据的序列化版本。 @@ -1794,9 +1794,9 @@ JSON 数据类型中共享数据的序列化版本。 ## object_shared_data_serialization_version_for_zero_level_parts {#object_shared_data_serialization_version_for_zero_level_parts} - + - + 此设置允许为在插入过程中创建的零级分区片段,指定 JSON 类型中共享数据的不同序列化版本。 不建议对零级分区片段使用 `advanced` 共享数据序列化方式,因为这可能会显著增加插入时间。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/operations/settings/settings-formats.md b/i18n/zh/docusaurus-plugin-content-docs/current/operations/settings/settings-formats.md index dde22e45ca1..288476089b2 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/operations/settings/settings-formats.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/operations/settings/settings-formats.md @@ -2273,6 +2273,12 @@ z IPv4 + 0 — 禁用(在类型不匹配时抛出错误)。 + 1 — 启用(在类型不匹配时跳过字段)。 +## type_json_use_partial_match_to_skip_paths_by_regexp {#type_json_use_partial_match_to_skip_paths_by_regexp} + + + +启用时,在将 JSON 对象解析为 JSON 类型的过程中,使用 SKIP REGEXP 指定的正则表达式只需部分匹配即可跳过某个路径。禁用时,则需要完全匹配才能跳过路径。 + ## validate_experimental_and_suspicious_types_inside_nested_types {#validate_experimental_and_suspicious_types_inside_nested_types} diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/operations/settings/settings.md b/i18n/zh/docusaurus-plugin-content-docs/current/operations/settings/settings.md index 1d748232826..74c5ebdd90c 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/operations/settings/settings.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/operations/settings/settings.md @@ -483,6 +483,16 @@ File/S3 引擎和表函数在归档文件扩展名正确时,会将包含 `::` 启用自然语言处理相关的实验性函数。 +## allow_experimental_object_storage_queue_hive_partitioning {#allow_experimental_object_storage_queue_hive_partitioning} + + + + + + + +允许在 S3Queue/AzureQueue 引擎中使用 Hive 分区 + ## allow_experimental_parallel_reading_from_replicas {#allow_experimental_parallel_reading_from_replicas} **别名**: `enable_parallel_replicas` @@ -6458,16 +6468,40 @@ SELECT multiMatchAny('abcd', ['ab','bc','c','d']) SETTINGS max_hyperscan_regexp_ ## max_insert_block_size {#max_insert_block_size} +**别名**: `max_insert_block_size_rows` + -要插入到表中的数据所形成的块大小(按行数计)。 +插入到表中的数据块所能包含的最大行数。 + +此设置控制在解析格式时的数据块生成。当服务器从任意接口(HTTP、带内联数据的 clickhouse-client、gRPC、PostgreSQL wire 协议)解析基于行的输入格式(CSV、TSV、JSONEachRow 等)或 Values 格式时,会使用该设置来决定何时输出一个数据块。 +注意:当使用 clickhouse-client 或 clickhouse-local 从文件读取时,由客户端自身负责解析数据,此设置应用在客户端一侧。 + +在满足以下任一条件时会输出一个数据块: + +- 最小阈值(AND):同时达到 min_insert_block_size_rows 和 min_insert_block_size_bytes +- 最大阈值(OR):达到 max_insert_block_size 或 max_insert_block_size_bytes 之一 -此设置仅适用于由服务器负责组装数据块的情况。 -例如,通过 HTTP 接口执行 INSERT 时,服务器会解析数据格式,并根据指定的大小组装数据块。 -但在使用 clickhouse-client 时,客户端会自行解析数据,此时服务器端的 `max_insert_block_size` 设置不会影响插入块的大小。 -在使用 INSERT SELECT 时,该设置同样无效,因为数据是以执行 SELECT 后已经形成的那些数据块的形式进行插入的。 +默认值略大于 max_block_size。原因在于,某些表引擎(`*MergeTree`)会为每个插入块在磁盘上形成一个数据分片(part),而这是一个相当大的实体。同样地,`*MergeTree` 表在插入过程中会对数据进行排序,较大的块大小则允许在内存(RAM)中对更多数据进行排序。 -默认值略大于 `max_block_size`。原因在于,某些表引擎(`*MergeTree`)会为每个插入块在磁盘上形成一个数据分片(part),而这是一个相当大的实体。同样地,`*MergeTree` 表在插入过程中会对数据进行排序,较大的块大小则允许在内存(RAM)中对更多数据进行排序。 +可能的值: + +- 正整数。 + +## max_insert_block_size_bytes {#max_insert_block_size_bytes} + + + + + +插入到表中的数据块的最大大小(以字节为单位)。 + +此设置与 max_insert_block_size_rows 配合使用,并在相同上下文中控制数据块的生成。有关这些设置在何时以及如何应用的详细信息,请参阅 max_insert_block_size_rows。 + +可能的取值: + +- 正整数。 +- 0 — 此设置不参与数据块的生成。 ## max_insert_delayed_streams_for_parallel_write {#max_insert_delayed_streams_for_parallel_write} @@ -7552,12 +7586,14 @@ ClickHouse 在从表中读取数据时会使用此设置。如果要读取的数 -设置通过 `INSERT` 查询插入到表中的单个数据块所需的最小字节数。更小的数据块会被合并成更大的块。 +设置插入到表中的数据块的最小大小(以字节为单位)。 + +此设置与 min_insert_block_size_rows 一起使用,在相同的上下文中(格式解析和 INSERT 操作)控制数据块的生成。有关这些设置在何时以及如何应用的详细信息,请参阅 min_insert_block_size_rows。 可能的取值: - 正整数。 -- 0 — 不进行合并。 +- 0 — 此设置在数据块生成中不起作用。 ## min_insert_block_size_bytes_for_materialized_views {#min_insert_block_size_bytes_for_materialized_views} @@ -7578,12 +7614,25 @@ ClickHouse 在从表中读取数据时会使用此设置。如果要读取的数 -设置通过 `INSERT` 查询插入到表中的数据块所能包含的最小行数。更小的数据块会被合并成更大的块。 +插入到表中的数据在形成块时的最小块大小(以行数计)。 + +该设置在两个场景下控制块的形成: + +1. 格式解析:当服务端从任意接口(HTTP、带内联数据的 clickhouse-client、gRPC、PostgreSQL wire protocol 等)解析基于行的输入格式(CSV、TSV、JSONEachRow 等)时,会使用该设置来决定何时生成一个块。 + 注意:当使用 clickhouse-client 或 clickhouse-local 从文件读取时,由客户端自行解析数据,此设置作用于客户端侧。 +2. INSERT 操作:在执行 INSERT...SELECT 查询以及数据通过 materialized view 流动时,在写入存储之前,会根据该设置将块压缩合并。 + +在格式解析中,当满足以下任一条件时会生成一个块: + +- 最小阈值(AND):同时达到 min_insert_block_size_rows 和 min_insert_block_size_bytes +- 最大阈值(OR):达到 max_insert_block_size 或 max_insert_block_size_bytes 任意一个 + +对于插入操作中的较小块,会被压缩合并为更大的块,并在满足 min_insert_block_size_rows 或 min_insert_block_size_bytes 其中之一时生成。 可能的取值: - 正整数。 -- 0 — 不进行合并。 +- 0 — 此设置不参与块形成。 ## min_insert_block_size_rows_for_materialized_views {#min_insert_block_size_rows_for_materialized_views} @@ -8043,8 +8092,8 @@ SELECT * FROM test LIMIT 10 OFFSET 100; - 将 [isNull](/sql-reference/functions/functions-for-nulls#isNull) 改写为读取 [null](../../sql-reference/data-types/nullable.md/#finding-null) 子列。 - 将 [isNotNull](/sql-reference/functions/functions-for-nulls#isNotNull) 改写为读取 [null](../../sql-reference/data-types/nullable.md/#finding-null) 子列。 - 将 [count](/sql-reference/aggregate-functions/reference/count) 改写为读取 [null](../../sql-reference/data-types/nullable.md/#finding-null) 子列。 -- 将 [mapKeys](/sql-reference/functions/tuple-map-functions#mapkeys) 改写为读取 [keys](/sql-reference/data-types/map#reading-subcolumns-of-map) 子列。 -- 将 [mapValues](/sql-reference/functions/tuple-map-functions#mapvalues) 改写为读取 [values](/sql-reference/data-types/map#reading-subcolumns-of-map) 子列。 +- 将 [mapKeys](/sql-reference/functions/tuple-map-functions#mapKeys) 改写为读取 [keys](/sql-reference/data-types/map#reading-subcolumns-of-map) 子列。 +- 将 [mapValues](/sql-reference/functions/tuple-map-functions#mapValues) 改写为读取 [values](/sql-reference/data-types/map#reading-subcolumns-of-map) 子列。 可选值: @@ -11268,9 +11317,9 @@ Cloud 默认值:`1` ## use_join_disjunctions_push_down {#use_join_disjunctions_push_down} - + - + 启用将 JOIN 条件中由 OR 连接的部分下推到对应的输入侧(“部分下推”)。 这样可以让存储引擎更早进行过滤,从而减少数据读取量。 @@ -11312,6 +11361,19 @@ Cloud 默认值:`1` 为 Paimon 表函数启用 Paimon 分区裁剪 +## use_primary_key {#use_primary_key} + + + + + +在对 MergeTree 表执行查询时,使用主键对粒度进行剪枝。 + +可能的取值: + +- 0 — 禁用。 +- 1 — 启用。 + ## use_query_cache {#use_query_cache} diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/operations/system-tables/index.md b/i18n/zh/docusaurus-plugin-content-docs/current/operations/system-tables/index.md index ef41a18b835..c0ed3ecad57 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/operations/system-tables/index.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/operations/system-tables/index.md @@ -23,7 +23,7 @@ doc_type: 'reference' | [系统表概览](/operations/system-tables/overview) | 介绍系统表的概念及其用途。 | | [INFORMATION_SCHEMA](/operations/system-tables/information_schema) | 提供一个几乎标准化、与 DBMS 无关的数据库对象元数据视图的系统数据库。 | | [system.asynchronous_insert_log](/operations/system-tables/asynchronous_insert_log) | 包含异步插入相关信息的系统表。每条记录对应一条已缓冲用于异步执行的插入查询。 | -| [system.asynchronous_inserts](/operations/system-tables/asynchronous_inserts) | 包含队列中待处理的异步插入信息的系统表。 | +| [system.asynchronous_inserts](/operations/system-tables/asynchronous_inserts) | 包含队列中待处理的异步插入操作信息的系统表。 | | [system.asynchronous_loader](/operations/system-tables/asynchronous_loader) | 包含最近异步作业(例如正在加载的表)的信息和状态的系统表。表中每个作业对应一行记录。 | | [system.asynchronous_metric_log](/operations/system-tables/asynchronous_metric_log) | 包含 `system.asynchronous_metrics` 历史值的系统表,这些值按固定时间间隔保存一次(默认每秒一次) | | [system.asynchronous_metrics](/operations/system-tables/asynchronous_metrics) | 包含在后台定期计算得到的各项指标的系统表,例如当前正在使用的内存量。 | @@ -34,106 +34,107 @@ doc_type: 'reference' | [system.backups](/operations/system-tables/backups) | 包含 `BACKUP` 和 `RESTORE` 操作相关日志条目的系统表。 | | [system.blob_storage_log](/operations/system-tables/blob_storage_log) | 用于记录各类 blob 存储操作(例如上传和删除)相关日志条目的系统表。 | | [system.build_options](/operations/system-tables/build_options) | 包含 ClickHouse 服务器构建选项相关信息的系统表。 | -| [system.clusters](/operations/system-tables/clusters) | 包含配置文件中已配置集群及其包含的服务器信息的系统表。 | -| [system.codecs](/operations/system-tables/codecs) | 包含编解码器相关信息的系统表。 | -| [system.columns](/operations/system-tables/columns) | 包含所有表中列信息的系统表。 | +| [system.clusters](/operations/system-tables/clusters) | 包含配置文件中可用集群及其所定义服务器信息的系统表。 | +| [system.codecs](/operations/system-tables/codecs) | 包含队列中编解码器信息的系统表。 | +| [system.columns](/operations/system-tables/columns) | 包含所有表的列信息的系统表 | | [system.contributors](/operations/system-tables/contributors) | 包含贡献者信息的系统表。 | -| [system.crash_log](/operations/system-tables/crash_log) | 包含致命错误堆栈跟踪信息的系统表。 | -| [system.current_roles](/operations/system-tables/current_roles) | 包含当前用户所有已启用角色的系统表。 | -| [system.dashboards](/operations/system-tables/dashboards) | 包含 `/dashboard` 页面(可通过 HTTP 接口访问)所使用的查询语句,对监控和故障排查很有帮助。 | +| [system.crash_log](/operations/system-tables/crash_log) | 包含致命错误的堆栈跟踪信息的系统表。 | +| [system.current_roles](/operations/system-tables/current_roles) | 包含当前用户当前启用角色信息的系统表。 | +| [system.dashboards](/operations/system-tables/dashboards) | 包含通过 HTTP 接口访问的 `/dashboard` 页面所使用的查询语句,可用于监控和故障排查。 | | [system.data_skipping_indices](/operations/system-tables/data_skipping_indices) | 包含所有表中已存在的数据跳过索引信息的系统表。 | | [system.data_type_families](/operations/system-tables/data_type_families) | 包含受支持的数据类型信息的系统表 | -| [system.database_engines](/operations/system-tables/database_engines) | 包含服务器支持的数据库引擎列表的系统表。 | -| [system.database_replicas](/operations/system-tables/database_replicas) | 包含复制数据库相关信息及其状态的系统表。 | +| [system.database_engines](/operations/system-tables/database_engines) | 包含服务器所支持数据库引擎列表的系统表。 | +| [system.database_replicas](/operations/system-tables/database_replicas) | 包含复制数据库信息及其状态的系统表。 | | [system.databases](/operations/system-tables/databases) | 包含当前用户可用的数据库信息的系统表。 | -| [system.dead_letter_queue](/operations/system-tables/dead_letter_queue) | 包含通过流式引擎接收且在解析时出错的消息相关信息的系统表。 | +| [system.dead_letter_queue](/operations/system-tables/dead_letter_queue) | 包含通过流式引擎接收、在解析过程中出错的消息信息的系统表。 | | [system.delta_lake_metadata_log](/operations/system-tables/delta_lake_metadata_log) | 包含从 Delta Lake 表读取的元数据文件信息的系统表。每条记录对应一个根元数据 JSON 文件。 | | [system.detached_parts](/operations/system-tables/detached_parts) | 包含 MergeTree 表中已分离的分区片段信息的系统表 | | [system.detached_tables](/operations/system-tables/detached_tables) | 包含每个已分离表相关信息的系统表。 | | [system.dictionaries](/operations/system-tables/dictionaries) | 包含字典信息的系统表 | -| [system.dimensional_metrics](/operations/system-tables/dimensional_metrics) | 该表包含可实时计算并以 Prometheus 格式导出的维度指标,并且始终保持最新状态。 | +| [system.dimensional_metrics](/operations/system-tables/dimensional_metrics) | 该表包含可实时计算并以 Prometheus 格式导出的维度指标,且始终保持最新状态。 | | [system.disks](/operations/system-tables/disks) | 包含服务器配置中已定义磁盘信息的系统表 | | [system.distributed_ddl_queue](/operations/system-tables/distributed_ddl_queue) | 包含已在集群上执行的分布式 DDL 查询(即使用 ON CLUSTER 子句的查询)信息的系统表。 | -| [system.distribution_queue](/operations/system-tables/distribution_queue) | 包含位于队列中、待发送到各分片的本地文件信息的系统表。 | +| [system.distribution_queue](/operations/system-tables/distribution_queue) | 包含处于队列中、等待发送到各分片的本地文件信息的系统表。 | | [system.dns_cache](/operations/system-tables/dns_cache) | 包含已缓存的 DNS 记录信息的系统表。 | -| [system.dropped_tables](/operations/system-tables/dropped_tables) | 包含对其已执行 `DROP TABLE` 操作但尚未完成数据清理的表信息的系统表 | -| [system.dropped_tables_parts](/operations/system-tables/dropped_tables_parts) | 包含 `system.dropped_tables` 中 MergeTree 已删除表的分区片段信息的系统表 | -| [system.enabled_roles](/operations/system-tables/enabled_roles) | 包含当前所有已启用角色的系统表,其中包括当前用户的当前角色以及授予该角色的其他角色 | +| [system.dropped_tables](/operations/system-tables/dropped_tables) | 包含已执行 `DROP TABLE` 操作但尚未完成数据清理的表信息的系统表 | +| [system.dropped_tables_parts](/operations/system-tables/dropped_tables_parts) | 包含 `system.dropped_tables` 中 MergeTree 已删除表的分区片段相关信息的系统表 | +| [system.enabled_roles](/operations/system-tables/enabled_roles) | 包含当前时刻所有已启用角色的系统表,其中包括当前用户的当前角色以及授予该角色的角色 | | [system.error_log](/operations/system-tables/system-error-log) | 系统表,用于保存 `system.errors` 表中的错误代码历史记录,并会定期将数据刷写到磁盘。 | -| [system.errors](/operations/system-tables/errors) | 包含错误代码及其触发次数的系统表。 | -| [system.events](/operations/system-tables/events) | 包含系统中各类事件发生次数的系统表。 | +| [system.errors](/operations/system-tables/errors) | 包含错误代码及其被触发次数的系统表。 | +| [system.events](/operations/system-tables/events) | 包含系统中各类事件发生次数信息的系统表。 | | [system.functions](/operations/system-tables/functions) | 包含普通函数和聚合函数信息的系统表。 | -| [system.grants](/operations/system-tables/grants) | 包含授予各 ClickHouse 用户账号的权限的系统表。 | -| [system.graphite_retentions](/operations/system-tables/graphite_retentions) | 包含 `graphite_rollup` 参数信息的系统表,这些参数用于使用 `GraphiteMergeTree` 表引擎的表中。 | +| [system.grants](/operations/system-tables/grants) | 包含各 ClickHouse 用户账号已授予权限信息的系统表。 | +| [system.graphite_retentions](/operations/system-tables/graphite_retentions) | 包含 `graphite_rollup` 参数信息的系统表,这些参数用于引擎类型为 `GraphiteMergeTree` 的表中。 | | [system.histogram_metrics](/operations/system-tables/histogram_metrics) | 该表包含可实时计算并以 Prometheus 格式导出的直方图指标,并且始终保持最新状态。 | | [system.iceberg_history](/operations/system-tables/iceberg_history) | 包含 Iceberg 快照历史信息的系统表 | -| [system.iceberg_metadata_log](/operations/system-tables/iceberg_metadata_log) | 包含从 Iceberg 表中读取的元数据文件相关信息的系统表。每条记录要么表示一个根元数据文件,要么表示一份从 Avro 文件中提取的元数据,或者表示某个 Avro 文件中的一条记录。 | -| [system.instrumentation](/operations/system-tables/instrumentation) | 包含各个插桩点信息的系统表 | -| [system.jemalloc_bins](/operations/system-tables/jemalloc_bins) | 包含通过 jemalloc 分配器在不同大小类别(bin)下的内存分配信息,并从所有 arena 聚合而来的系统表。 | +| [system.iceberg_metadata_log](/operations/system-tables/iceberg_metadata_log) | 包含关于从 Iceberg 表中读取的元数据文件信息的系统表。每条记录要么表示一个根元数据文件,要么表示一份从 Avro 文件中提取的元数据,或者表示某个 Avro 文件中的一条记录。 | +| [system.instrumentation](/operations/system-tables/instrumentation) | 包含插桩点信息的系统表 | +| [system.jemalloc_bins](/operations/system-tables/jemalloc_bins) | 包含通过 jemalloc 分配器进行的、按不同大小类(bin)划分并汇总自所有 arena 的内存分配信息的系统表。 | | [system.kafka_consumers](/operations/system-tables/kafka_consumers) | 包含 Kafka 消费者相关信息的系统表。 | | [system.licenses](/operations/system-tables/licenses) | 用于存储 ClickHouse 源码中 `contrib` 目录下第三方库的许可证信息的系统表。 | | [system.masking_policies](/operations/system-tables/masking_policies) | 包含系统中所有脱敏策略信息的系统表。 | | [system.merge_tree_settings](/operations/system-tables/merge_tree_settings) | 存储 MergeTree 表设置信息的系统表。 | | [system.merges](/operations/system-tables/merges) | 包含 MergeTree 系列表中当前正在进行的数据部件合并及部件变更相关信息的系统表。 | | [system.metric_log](/operations/system-tables/metric_log) | 系统表,用于保存 `system.metrics` 和 `system.events` 表中的指标值历史记录,并会定期将数据刷写到磁盘。 | -| [system.metrics](/operations/system-tables/metrics) | 包含可即时计算或具有当前值的各项指标的系统表。 | -| [system.moves](/operations/system-tables/moves) | 包含 MergeTree 表当前正在进行的数据部件迁移信息的系统表。表中每行对应一次数据部件迁移。 | -| [system.mutations](/operations/system-tables/mutations) | 包含 MergeTree 表变更操作及其执行进度信息的系统表。表中每行对应一条变更命令。 | +| [system.metrics](/operations/system-tables/metrics) | 包含可即时计算或反映当前值的各项指标的系统表。 | +| [system.moves](/operations/system-tables/moves) | 包含 MergeTree 表当前正在进行的数据部件移动操作信息的系统表。表中每行对应一次数据部件移动操作。 | +| [system.mutations](/operations/system-tables/mutations) | 包含 MergeTree 表变更及其执行进度信息的系统表。表中每行对应一条变更命令。 | | [system.numbers](/operations/system-tables/numbers) | 仅包含一个名为 `number` 的 UInt64 列的系统表,该列中存储从 0 开始的几乎所有自然数。 | -| [system.numbers_mt](/operations/system-tables/numbers_mt) | 类似于 `system.numbers` 的系统表,但读取是并行进行的,返回的数字顺序可以是任意的。 | -| [system.one](/operations/system-tables/one) | 仅包含一行且只有一个名为 `dummy`、值为 0 的 UInt8 列的系统表。类似于其他 DBMS 中的 `DUAL` 表。 | -| [system.opentelemetry_span_log](/operations/system-tables/opentelemetry_span_log) | 包含已执行查询的跟踪 span 信息的系统表。 | -| [system.part_log](/operations/system-tables/part_log) | 包含 MergeTree 系列表中数据分区片段上发生的事件信息的系统表,例如数据添加和合并等操作。 | +| [system.numbers_mt](/operations/system-tables/numbers_mt) | 类似于 `system.numbers` 的系统表,但读取是并行执行的,返回的数字可以是无序的。 | +| [system.one](/operations/system-tables/one) | 仅包含一行且只有一个名为 `dummy` 的 UInt8 列,且该列的值为 0 的系统表。类似于其他 DBMS 中的 `DUAL` 表。 | +| [system.opentelemetry_span_log](/operations/system-tables/opentelemetry_span_log) | 包含已执行查询跟踪 span 信息的系统表。 | +| [system.part_log](/operations/system-tables/part_log) | 包含 MergeTree 系列表中数据分区片段相关事件信息的系统表,例如数据添加、合并等操作。 | | [system.parts](/operations/system-tables/parts) | 包含 MergeTree 表分区片段信息的系统表 | -| [system.parts_columns](/operations/system-tables/parts_columns) | 包含 MergeTree 表分区片段和列信息的系统表。 | +| [system.parts_columns](/operations/system-tables/parts_columns) | 包含 MergeTree 表分区片段及其中各列信息的系统表。 | | [system.processes](/operations/system-tables/processes) | 用于实现 `SHOW PROCESSLIST` 查询的系统表。 | -| [system.processors_profile_log](/operations/system-tables/processors_profile_log) | 包含处理器级别性能分析信息的系统表(可在 `EXPLAIN PIPELINE` 中查看) | +| [system.processors_profile_log](/operations/system-tables/processors_profile_log) | 包含处理器层面性能分析信息的系统表(可通过 `EXPLAIN PIPELINE` 查看) | | [system.projection_parts](/operations/system-tables/projection_parts) | 包含 MergeTree 系列表中投影分区片段信息的系统表。 | -| [system.projection_parts_columns](/operations/system-tables/projection_parts_columns) | 包含 MergeTree 系列表中投影分区片段内各列信息的系统表 | +| [system.projection_parts_columns](/operations/system-tables/projection_parts_columns) | 包含 MergeTree 系列表中投影分区片段列信息的系统表 | | [system.projections](/operations/system-tables/projections) | 包含所有表中已存在的 PROJECTION 信息的系统表。 | | [system.query_cache](/operations/system-tables/query_cache) | 显示查询缓存内容的系统表。 | | [system.query_condition_cache](/operations/system-tables/query_condition_cache) | 显示查询条件缓存内容的系统表。 | | [system.query_log](/operations/system-tables/query_log) | 包含已执行查询相关信息的系统表,例如开始时间、查询处理耗时、错误信息。 | | [system.query_metric_log](/operations/system-tables/query_metric_log) | 用于保存 `system.events` 表中针对单个查询的内存和指标值历史记录的系统表,并会定期将数据刷写到磁盘。 | | [system.query_thread_log](/operations/system-tables/query_thread_log) | 包含执行查询的线程相关信息的系统表,例如线程名称、线程启动时间以及查询处理耗时。 | -| [system.query_views_log](/operations/system-tables/query_views_log) | 包含在执行查询时被执行的依赖视图相关信息的系统表,例如视图类型或执行时间。 | -| [system.quota_limits](/operations/system-tables/quota_limits) | 包含所有配额在各个时间间隔内最大值信息的系统表。每个配额可以对应任意数量的行,也可以不对应任何行。 | -| [system.quota_usage](/operations/system-tables/quota_usage) | 包含当前用户 QUOTA 使用情况信息的系统表,例如已使用和剩余的 QUOTA。 | +| [system.query_views_log](/operations/system-tables/query_views_log) | 包含在执行查询时被触发的依赖视图相关信息的系统表,例如视图类型或执行时间。 | +| [system.quota_limits](/operations/system-tables/quota_limits) | 包含所有配额在各个时间间隔内的最大值信息的系统表。每个配额可以对应任意数量的行,也可以不对应任何行。 | +| [system.quota_usage](/operations/system-tables/quota_usage) | 包含当前用户 QUOTA 使用情况信息的系统表,例如已使用的 QUOTA 额度以及剩余的 QUOTA 额度。 | | [system.quotas](/operations/system-tables/quotas) | 包含 QUOTA 相关信息的系统表。 | | [system.quotas_usage](/operations/system-tables/quotas_usage) | 包含所有用户 QUOTA 使用情况信息的系统表。 | -| [system.replicas](/operations/system-tables/replicas) | 包含本地服务器上复制表信息及其状态的系统表,便于监控。 | +| [system.replicas](/operations/system-tables/replicas) | 包含本地服务器上复制表相关信息及其状态的系统表,对监控很有帮助。 | | [system.replicated_fetches](/operations/system-tables/replicated_fetches) | 包含当前正在运行的后台拉取操作信息的系统表。 | | [system.replication_queue](/operations/system-tables/replication_queue) | 包含 ClickHouse Keeper 或 ZooKeeper 中 `ReplicatedMergeTree` 系列表复制队列任务信息的系统表。 | -| [system.resources](/operations/system-tables/resources) | 包含本地服务器上各资源信息的系统表。表中每个资源对应一行。 | -| [system.role_grants](/operations/system-tables/role_grants) | 包含授予各用户和角色的角色授权信息的系统表。 | +| [system.resources](/operations/system-tables/resources) | 包含本地服务器上资源信息的系统表,表中每个资源对应一行。 | +| [system.role_grants](/operations/system-tables/role_grants) | 包含授予给各用户和角色的角色信息的系统表。 | | [system.roles](/operations/system-tables/roles) | 包含已配置的角色信息的系统表。 | -| [system.row_policies](/operations/system-tables/row_policies) | 包含某个特定表过滤条件以及应使用该 ROW POLICY 的角色和/或用户列表的系统表。 | +| [system.row_policies](/operations/system-tables/row_policies) | 包含某个特定表的过滤条件,以及应应用该 ROW POLICY 的角色和/或用户列表的系统表。 | | [system.s3_queue_settings](/operations/system-tables/s3_queue_settings) | 包含 S3Queue 表设置信息的系统表。自服务器版本 24.10 起可用。 | -| [system.scheduler](/operations/system-tables/scheduler) | 包含本地服务器上调度节点相关信息及其状态的系统表。 | +| [system.scheduler](/operations/system-tables/scheduler) | 包含本地服务器上调度节点信息和状态的系统表。 | | [system.schema_inference_cache](/operations/system-tables/schema_inference_cache) | 包含所有已缓存文件 schema 信息的系统表。 | | [system.server_settings](/operations/system-tables/server_settings) | 包含服务器全局设置信息的系统表,这些设置在 `config.xml` 中指定。 | | [system.session_log](/operations/system-tables/session_log) | 包含所有成功和失败的登录与登出事件信息的系统表。 | | [system.settings](/operations/system-tables/settings) | 包含当前用户的会话设置信息的系统表。 | -| [system.settings_changes](/operations/system-tables/settings_changes) | 包含历史 ClickHouse 版本中设置变更信息的系统表。 | +| [system.settings_changes](/operations/system-tables/settings_changes) | 包含先前 ClickHouse 版本中设置变更信息的系统表。 | | [system.settings_profile_elements](/operations/system-tables/settings_profile_elements) | 用于描述设置配置文件内容的系统表:包括约束、该设置适用的角色和用户,以及父设置配置文件。 | | [system.settings_profiles](/operations/system-tables/settings_profiles) | 包含已配置的设置配置文件属性信息的系统表。 | | [system.stack_trace](/operations/system-tables/stack_trace) | 包含所有服务器线程堆栈跟踪信息的系统表。便于开发者查看和分析服务器状态。 | | [system.storage_policies](/operations/system-tables/storage_policies) | 包含服务器配置中定义的存储策略和卷信息的系统表。 | -| [system.symbols](/operations/system-tables/symbols) | 供 C++ 专家和 ClickHouse 工程师使用的一张系统表,包含用于对 `clickhouse` 二进制文件进行自省的信息。 | -| [system.table_engines](/operations/system-tables/table_engines) | 包含服务器支持的表引擎及其支持特性描述的系统表。 | -| [system.tables](/operations/system-tables/tables) | 包含服务器已知各表元数据信息的系统表。 | +| [system.symbols](/operations/system-tables/symbols) | 供 C++ 专家和 ClickHouse 工程师使用的系统表,包含用于分析 `clickhouse` 二进制可执行文件的信息。 | +| [system.table_engines](/operations/system-tables/table_engines) | 包含服务器所支持的表引擎及其所支持功能描述的系统表。 | +| [system.tables](/operations/system-tables/tables) | 包含服务器已知各个表元数据信息的系统表。 | | [system.text_log](/operations/system-tables/text_log) | 包含日志条目的系统表。 | | [system.time_zones](/operations/system-tables/time_zones) | 包含 ClickHouse 服务器所支持的时区列表的系统表。 | | [system.trace_log](/operations/system-tables/trace_log) | 包含由采样查询分析器收集的堆栈跟踪信息的系统表。 | | [system.unicode](/operations/system-tables/unicode) | 包含 Unicode 字符列表及其属性的系统表。 | -| [system.user_processes](/operations/system-tables/user_processes) | 包含用于整体查看用户内存使用情况和 ProfileEvents 信息的系统表。 | +| [system.user_processes](/operations/system-tables/user_processes) | 包含有助于概览用户内存使用情况和 ProfileEvents 的信息的系统表。 | | [system.users](/operations/system-tables/users) | 包含服务器上已配置的用户账号列表的系统表。 | -| [system.view_refreshes](/operations/system-tables/view_refreshes) | 包含可刷新materialized view 相关信息的系统表。 | +| [system.view_refreshes](/operations/system-tables/view_refreshes) | 包含可刷新 materialized view 相关信息的系统表。 | | [system.warnings](/operations/system-tables/system_warnings) | 此表包含 ClickHouse 服务器的警告信息。 | -| [system.workloads](/operations/system-tables/workloads) | 包含本地服务器上各项工作负载信息的系统表。 | +| [system.workloads](/operations/system-tables/workloads) | 包含本地服务器上工作负载信息的系统表。 | | [system.zookeeper](/operations/system-tables/zookeeper) | 仅在配置了 ClickHouse Keeper 或 ZooKeeper 时才存在的系统表。它提供对配置文件中定义的 Keeper 集群数据的访问。 | -| [system.zookeeper_connection](/operations/system-tables/zookeeper_connection) | 仅在配置了 ZooKeeper 时才存在的系统表。显示当前与 ZooKeeper 的连接(包括辅助 ZooKeeper 实例)。 | +| [system.zookeeper_connection](/operations/system-tables/zookeeper_connection) | 仅在配置了 ZooKeeper 时才存在的系统表。显示当前到 ZooKeeper 的连接(包括辅助 ZooKeeper 实例)。 | | [system.zookeeper_connection_log](/operations/system-tables/zookeeper_connection_log) | 显示 ZooKeeper 连接历史记录(包括辅助 ZooKeeper 实例)。 | -| [system.zookeeper_log](/operations/system-tables/zookeeper_log) | 包含向 ZooKeeper 服务器发送的请求参数及对应响应信息的系统表。 | +| [system.zookeeper_info](/operations/system-tables/zookeeper_info) | 包含所有可用 Keeper 节点自省信息的系统表。 | +| [system.zookeeper_log](/operations/system-tables/zookeeper_log) | 包含向 ZooKeeper 服务器发送的请求参数及其响应信息的系统表。 | {/*AUTOGENERATED_END*/ } diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/operations/system-tables/zookeeper_info.md b/i18n/zh/docusaurus-plugin-content-docs/current/operations/system-tables/zookeeper_info.md new file mode 100644 index 00000000000..7a09825695d --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/operations/system-tables/zookeeper_info.md @@ -0,0 +1,57 @@ +--- +description: '用于查看所有可用 Keeper 节点内部状态的系统表。' +keywords: ['系统表', 'zookeeper_info'] +slug: /operations/system-tables/zookeeper_info +title: 'system.zookeeper_info' +doc_type: 'reference' +--- + +import SystemTableCloud from '@site/i18n/zh/docusaurus-plugin-content-docs/current/_snippets/_system_table_cloud.md'; + +# system.zookeeper_info {#systemzookeeper_info} + + + +此表输出关于 ZooKeeper 的综合内部信息,节点列表取自配置。 + +列: + +* `zookeeper_cluster_name` ([String](../../sql-reference/data-types/string.md)) — ZooKeeper 集群的名称。 +* `host` ([String](../../sql-reference/data-types/string.md)) — ClickHouse 所连接的 ZooKeeper 节点的主机名或 IP 地址。 +* `port` ([UInt16](../../sql-reference/data-types/int-uint.md)) — ClickHouse 连接到的 ZooKeeper 节点的端口号。 +* `index` ([Nullable(UInt8)](../../sql-reference/data-types/int-uint.md)) — ClickHouse 所连接的 ZooKeeper 节点的索引。该索引来自 ZooKeeper 配置。如果未连接,此列为 NULL。 +* `is_connected` ([Nullable(UInt8)](../../sql-reference/data-types/int-uint.md)) — 指示是否已连接到 ZooKeeper。 +* `is_readonly` ([UInt8](../../sql-reference/data-types/int-uint.md)) — 是否只读。 +* `version` ([String](../../sql-reference/data-types/string.md)) — ZooKeeper 的版本。 +* `avg_latency` ([UInt64](../../sql-reference/data-types/int-uint.md)) — 平均延迟时间。 +* `max_latency` ([UInt64](../../sql-reference/data-types/int-uint.md)) — 最大延迟值。 +* `min_latency` ([UInt64](../../sql-reference/data-types/int-uint.md)) — 最小延迟值。 +* `packets_received` ([UInt64](../../sql-reference/data-types/int-uint.md)) — 接收的数据包数量。 +* `packets_sent` ([UInt64](../../sql-reference/data-types/int-uint.md)) — 已发送的数据包数量。 +* `outstanding_requests` ([UInt64](../../sql-reference/data-types/int-uint.md)) — 未处理请求的数量。 +* `server_state` ([String](../../sql-reference/data-types/string.md)) — 服务器状态。 +* `is_leader` ([UInt8](../../sql-reference/data-types/int-uint.md)) — 是否为该 ZooKeeper 节点的 leader。 +* `znode_count` ([UInt64](../../sql-reference/data-types/int-uint.md)) — znode 数量。 +* `watch_count` ([UInt64](../../sql-reference/data-types/int-uint.md)) — watch 数量。 +* `ephemerals_count` ([UInt64](../../sql-reference/data-types/int-uint.md)) — 临时节点数量。 +* `approximate_data_size` ([UInt64](../../sql-reference/data-types/int-uint.md)) — 数据的大致大小。 +* `followers` ([UInt64](../../sql-reference/data-types/int-uint.md)) — 领导者的从属节点(followers)数量。此字段仅由领导节点公开。 +* `synced_followers` ([UInt64](../../sql-reference/data-types/int-uint.md)) — 已与主节点完成同步的 follower 数量。此字段仅在主节点上可见。 +* `pending_syncs` ([UInt64](../../sql-reference/data-types/int-uint.md)) — leader 节点的待同步数量。该字段仅在 leader 节点上暴露。 +* `open_file_descriptor_count` ([UInt64](../../sql-reference/data-types/int-uint.md)) — 当前已打开的文件描述符数量。仅在 Unix 平台上可用。 +* `max_file_descriptor_count` ([UInt64](../../sql-reference/data-types/int-uint.md)) — 最大文件描述符数量。仅在 Unix 平台上可用。 +* `connections` ([UInt64](../../sql-reference/data-types/int-uint.md)) — ZooKeeper 连接数。 +* `outstanding` ([UInt64](../../sql-reference/data-types/int-uint.md)) — ZooKeeper 未完成请求数。 +* `zxid` ([UInt64](../../sql-reference/data-types/int-uint.md)) — ZooKeeper 的 zxid。` +* `node_count` ([UInt64](../../sql-reference/data-types/int-uint.md)) — ZooKeeper 节点数量。 +* `snapshot_dir_size` ([UInt64](../../sql-reference/data-types/int-uint.md)) — ZooKeeper 快照目录的大小。 +* `log_dir_size` ([UInt64](../../sql-reference/data-types/int-uint.md)) — ZooKeeper 日志目录大小。 +* `first_log_idx` ([UInt64](../../sql-reference/data-types/int-uint.md)) — ZooKeeper 中的首个日志索引。 +* `first_log_term` ([UInt64](../../sql-reference/data-types/int-uint.md)) — ZooKeeper 中的第一个日志任期。 +* `last_log_idx` ([UInt64](../../sql-reference/data-types/int-uint.md)) — ZooKeeper 的最新日志索引。 +* `last_log_term` ([UInt64](../../sql-reference/data-types/int-uint.md)) — ZooKeeper 中最后日志的任期。 +* `last_committed_idx` ([UInt64](../../sql-reference/data-types/int-uint.md)) — ZooKeeper 中最后一次提交的索引。 +* `leader_committed_log_idx` ([UInt64](../../sql-reference/data-types/int-uint.md)) — ZooKeeper leader 节点已提交日志的索引。 +* `target_committed_log_idx` ([UInt64](../../sql-reference/data-types/int-uint.md)) — ZooKeeper 目标端已提交日志的索引。 +* `last_snapshot_idx` ([UInt64](../../sql-reference/data-types/int-uint.md)) — ZooKeeper 的最新快照索引。 + g \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/operations/utilities/clickhouse-keeper-http-api.md b/i18n/zh/docusaurus-plugin-content-docs/current/operations/utilities/clickhouse-keeper-http-api.md new file mode 100644 index 00000000000..9a2844ffc93 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/operations/utilities/clickhouse-keeper-http-api.md @@ -0,0 +1,110 @@ +--- +description: 'ClickHouse Keeper HTTP API 和嵌入式仪表板文档' +sidebar_label: 'Keeper HTTP API' +sidebar_position: 70 +slug: /operations/utilities/clickhouse-keeper-http-api +title: 'Keeper HTTP API 和仪表板' +doc_type: 'reference' +--- + +# Keeper HTTP API 和仪表盘 {#keeper-http-api-and-dashboard} + +ClickHouse Keeper 提供用于监控、健康检查和存储管理的 HTTP API 和内嵌 Web 仪表盘。 +该界面允许运维人员通过 Web 浏览器或 HTTP 客户端查看集群状态、执行命令并管理 Keeper 存储。 + +## 配置 {#configuration} + +要启用 HTTP API,请在 `keeper_server` 配置中添加 `http_control` 配置段: + +```xml + + + + + 9182 + + + +``` + + +### 配置选项 {#configuration-options} + +| 设置 | 默认值 | 描述 | +|-------------------------------------------|----------|--------------------------------------------| +| `http_control.port` | - | 仪表板和 API 使用的 HTTP 端口 | +| `http_control.secure_port` | - | HTTPS 端口(需要 SSL 配置) | +| `http_control.readiness.endpoint` | `/ready` | 就绪探针的自定义路径 | +| `http_control.storage.session_timeout_ms` | `30000` | 存储 API 操作的会话超时时间 | + +## API 端点 {#endpoints} + +### 仪表板 {#dashboard} + +- **路径**: `/dashboard` +- **方法**: GET +- **描述**: 提供一个嵌入式 Web 仪表板,用于监控和管理 Keeper + +该仪表板提供: + +- 集群状态的实时可视化 +- 节点监控(角色、延迟、连接数) +- 存储浏览器 +- 命令执行界面 + +### 就绪探针 {#readiness-probe} + +* **路径**: `/ready`(可配置) +* **方法**: GET +* **描述**: 健康检查接口 + +成功响应(HTTP 200): + +```json +{ + "status": "ok", + "details": { + "role": "leader", + "hasLeader": true + } +} +``` + + +### Commands API {#commands-api} + +* **路径**: `/api/v1/commands/{command}` +* **方法**: GET, POST +* **描述**: 执行 Four-Letter Word 命令或 ClickHouse Keeper Client CLI 命令 + +查询参数: + +* `command` - 要执行的命令 +* `cwd` - 基于路径的命令所使用的当前工作目录(默认值:`/`) + +示例: + +```bash +# Four-Letter Word command +curl http://localhost:9182/api/v1/commands/stat + +# ZooKeeper CLI command +curl "http://localhost:9182/api/v1/commands/ls?command=ls%20'/'&cwd=/" +``` + + +### Storage API {#storage-api} + +- **基础路径**:`/api/v1/storage` +- **说明**:用于 Keeper 存储操作的 REST API + +Storage API 遵循 REST 规范,其中 HTTP 方法表示操作类型: + +| 操作 | 路径 | 方法 | 状态码 | 说明 | +|-----------|--------------------------------------------|--------|-------------|----------------------| +| Get | `/api/v1/storage/{path}` | GET | 200 | 获取节点数据 | +| List | `/api/v1/storage/{path}?children=true` | GET | 200 | 列出子节点 | +| Exists | `/api/v1/storage/{path}` | HEAD | 200 | 检查节点是否存在 | +| Create | `/api/v1/storage/{path}` | POST | 201 | 创建新节点 | +| Update | `/api/v1/storage/{path}?version={v}` | PUT | 200 | 更新节点数据 | +| Delete | `/api/v1/storage/{path}?version={v}` | DELETE | 204 | 删除节点 | \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/operations/utilities/index.md b/i18n/zh/docusaurus-plugin-content-docs/current/operations/utilities/index.md index 38670f3a5e9..1764dc132e4 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/operations/utilities/index.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/operations/utilities/index.md @@ -17,4 +17,6 @@ doc_type: 'landing-page' |[ClickHouse compressor](../../operations/utilities/clickhouse-compressor.md) | 对数据进行压缩和解压缩。| | [clickhouse-disks](../../operations/utilities/clickhouse-disks.md) | 为不同 ClickHouse 磁盘上的文件提供类似文件系统的操作能力。| | [clickhouse-odbc-bridge](../../operations/utilities/odbc-bridge.md) | 用于 ODBC 驱动程序的代理服务器。| -| [clickhouse_backupview](../../operations/utilities/backupview.md) | 用于分析 ClickHouse 备份的 Python 模块。| \ No newline at end of file +| [clickhouse_backupview](../../operations/utilities/backupview.md) | 用于分析 ClickHouse 备份的 Python 模块。| +| [clickhouse-keeper-client](../../operations/utilities/clickhouse-keeper-client.md) | 用于与 ClickHouse Keeper 交互的客户端应用程序。| +| [Keeper HTTP API](../../operations/utilities/clickhouse-keeper-http-api.md) | ClickHouse Keeper 的 HTTP API 和内置仪表板。| \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/data-types/map.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/data-types/map.md index 7ff14fdfbed..4d440a18f43 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/data-types/map.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/data-types/map.md @@ -31,7 +31,7 @@ CREATE TABLE tab (m Map(String, UInt64)) ENGINE=Memory; INSERT INTO tab VALUES ({'key1':1, 'key2':10}), ({'key1':2,'key2':20}), ({'key1':3,'key2':30}); ``` -若要选择 `key2` 的值: +要查询 `key2` 的值: ```sql SELECT m['key2'] FROM tab; @@ -48,7 +48,7 @@ SELECT m['key2'] FROM tab; ``` 如果访问的键 `k` 不在 map 中,`m[k]` 会返回该值类型的默认值,例如整数类型为 `0`,字符串类型为 `''`。 -要检查某个键是否存在于 map 中,可以使用函数 [mapContains](../../sql-reference/functions/tuple-map-functions#mapcontains)。 +要检查某个键是否存在于 map 中,可以使用函数 [mapContains](/sql-reference/functions/tuple-map-functions#mapContainsKey)。 ```sql CREATE TABLE tab (m Map(String, UInt64)) ENGINE=Memory; diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/hash-functions.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/hash-functions.md index 260681e21fb..66db14cb5c1 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/hash-functions.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/hash-functions.md @@ -34,7 +34,7 @@ SELECT cityHash64(tuple(NULL)) 参见:https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md */ } -{ /*AUTOGENERATED_START*/ } +{{/*AUTOGENERATED_START*/ } } ## BLAKE3 {#BLAKE3} diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/other-functions.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/other-functions.md index 72f548a60a3..452d84af55c 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/other-functions.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/other-functions.md @@ -1543,7 +1543,11 @@ FROM numbers(5); 自 v25.10 版本引入 -对 Point、Ring、Polygon 或 MultiPolygon 的坐标进行翻转。对于 Point,会交换其坐标值。对于数组,会对每个坐标对递归应用相同的变换。 +对几何对象的 x 和 y 坐标进行翻转。该操作会交换纬度和经度,这对于在不同坐标系之间转换或纠正坐标顺序非常有用。 + +对于 Point,会交换其 x 和 y 坐标。对于复杂几何对象(LineString、Polygon、MultiPolygon、Ring、MultiLineString),会对每个坐标对递归应用该变换。 + +该函数同时支持单一几何类型(Point、Ring、Polygon、MultiPolygon、LineString、MultiLineString)以及 Geometry 变体类型。 **语法** @@ -1553,11 +1557,11 @@ flipCoordinates(geometry) **参数** -* `geometry` — 要转换的几何对象。支持的类型:Point (Tuple(Float64, Float64))、Ring (Array(Point))、Polygon (Array(Ring))、MultiPolygon (Array(Polygon))。 +* `geometry` — 要转换的几何对象。支持的类型:Point (Tuple(Float64, Float64))、Ring (Array(Point))、Polygon (Array(Ring))、MultiPolygon (Array(Polygon))、LineString (Array(Point))、MultiLineString (Array(LineString)),或 Geometry(包含上述任意类型的变体)。 **返回值** -坐标被翻转后的几何对象。类型与输入相同。[`Point`](/sql-reference/data-types/geo#point) 或 [`Ring`](/sql-reference/data-types/geo#ring) 或 [`Polygon`](/sql-reference/data-types/geo#polygon) 或 [`MultiPolygon`](/sql-reference/data-types/geo#multipolygon) +坐标被翻转后的几何对象。返回类型与输入类型一致。[`Point`](/sql-reference/data-types/geo#point) 或 [`Ring`](/sql-reference/data-types/geo#ring) 或 [`Polygon`](/sql-reference/data-types/geo#polygon) 或 [`MultiPolygon`](/sql-reference/data-types/geo#multipolygon) 或 [`LineString`](/sql-reference/data-types/geo#linestring) 或 [`MultiLineString`](/sql-reference/data-types/geo#multilinestring) 或 [`Geometry`](/sql-reference/data-types/geo) **示例** @@ -1591,6 +1595,27 @@ SELECT flipCoordinates([[(1.0, 2.0), (3.0, 4.0)], [(5.0, 6.0), (7.0, 8.0)]]); [[(2.0, 1.0), (4.0, 3.0)], [(6.0, 5.0), (8.0, 7.0)]] ``` +**geometry_wkt** + +```sql title=Query +SELECT flipCoordinates(readWkt('POINT(10 20)')); +``` + +```response title=Response +(20, 10) +``` + +**geometry_polygon_wkt** + +```sql title=Query +SELECT flipCoordinates(readWkt('POLYGON((0 0, 5 0, 5 5, 0 5, 0 0))')); +``` + +```response title=Response +[[(0, 0), (0, 5), (5, 5), (5, 0), (0, 0)]] +``` + + ## formatQuery {#formatQuery} 引入版本:v diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/string-search-functions.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/string-search-functions.md index 156aea0aa45..bd3489fc351 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/string-search-functions.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/string-search-functions.md @@ -15,7 +15,7 @@ doc_type: 'reference' ::: 本节中的函数还假定被搜索的字符串(在本节中称为 `haystack`)和搜索字符串(在本节中称为 `needle`)是单字节编码文本。如果不满足这一假设,将不会抛出异常,且结果未定义。对 UTF-8 编码字符串的搜索通常通过单独的函数变体提供。同样地,如果使用的是 UTF-8 函数变体,而输入字符串不是 UTF-8 编码文本,也不会抛出异常,结果未定义。请注意,不会自动执行 Unicode 规范化,不过可以使用 -[normalizeUTF8*()](https://clickhouse.com../functions/string-functions/) 函数来执行该操作。 +[normalizeUTF8*()](/sql-reference/functions/string-functions#normalizeUTF8NFC) 函数来执行该操作。 [通用字符串函数](string-functions.md)和[字符串替换函数](string-replace-functions.md)在单独的章节中介绍。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md index 32392883d21..58e0d86d05b 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md @@ -1,1144 +1,13 @@ --- -description: 'Tuple Map 函数文档' +description: 'tuple Map 函数文档' sidebar_label: 'Map' slug: /sql-reference/functions/tuple-map-functions title: 'Map 函数' -doc_type: '参考' +doc_type: 'reference' --- -## map {#map} - -从键值对构造一个类型为 [Map(key, value)](../data-types/map.md) 的值。 - -**语法** - -```sql -map(key1, value1[, key2, value2, ...]) -``` - -**参数** - -* `key_n` — map 条目的键。任意 Map 支持的键类型。([Map](../data-types/map.md)) -* `value_n` — map 条目的值。任意 Map 支持的值类型。([Map](../data-types/map.md)) - -**返回值** - -* 一个包含 `key:value` 键值对的 map。[Map(key, value)](../data-types/map.md)。 - -**示例** - -查询: - -```sql -SELECT map('key1', number, 'key2', number * 2) FROM numbers(3); -``` - -结果: - -```text -┌─map('key1', number, 'key2', multiply(number, 2))─┐ -│ {'key1':0,'key2':0} │ -│ {'key1':1,'key2':2} │ -│ {'key1':2,'key2':4} │ -└──────────────────────────────────────────────────┘ -``` - -## mapFromArrays {#mapfromarrays} - -从键的数组或 map 与值的数组或 map 构造一个 map。 - -该函数是语法 `CAST([...], 'Map(key_type, value_type)')` 的便捷替代方案。 -例如,与其编写 - -* `CAST((['aa', 'bb'], [4, 5]), 'Map(String, UInt32)')`,或 -* `CAST([('aa',4), ('bb',5)], 'Map(String, UInt32)')` - -可以写作 `mapFromArrays(['aa', 'bb'], [4, 5])`。 - -**语法** - -```sql -mapFromArrays(keys, values) -``` - -别名:`MAP_FROM_ARRAYS(keys, values)` - -**参数** - -* `keys` — 用于创建 map 的键的数组或 map,类型为 [Array](../data-types/array.md) 或 [Map](../data-types/map.md)。如果 `keys` 是数组,我们接受其类型为 `Array(Nullable(T))` 或 `Array(LowCardinality(Nullable(T)))`,只要其中不包含 NULL 值即可。 -* `values` - 用于创建 map 的值的数组或 map,类型为 [Array](../data-types/array.md) 或 [Map](../data-types/map.md)。 - -**返回值** - -* 一个 map,其中的键和值由键数组和值数组或 map 构造而成。 - -**示例** - -查询: - -```sql -SELECT mapFromArrays(['a', 'b', 'c'], [1, 2, 3]) -``` - -结果: - -```response -┌─mapFromArrays(['a', 'b', 'c'], [1, 2, 3])─┐ -│ {'a':1,'b':2,'c':3} │ -└───────────────────────────────────────────┘ -``` - -`mapFromArrays` 也接受类型为 [Map](../data-types/map.md) 的参数。在执行期间,这些参数会被转换为元组数组。 - -```sql -SELECT mapFromArrays([1, 2, 3], map('a', 1, 'b', 2, 'c', 3)) -``` - -结果: - -```response -┌─mapFromArrays([1, 2, 3], map('a', 1, 'b', 2, 'c', 3))─┐ -│ {1:('a',1),2:('b',2),3:('c',3)} │ -└───────────────────────────────────────────────────────┘ -``` - -```sql -SELECT mapFromArrays(map('a', 1, 'b', 2, 'c', 3), [1, 2, 3]) -``` - -结果: - -```response -┌─mapFromArrays(map('a', 1, 'b', 2, 'c', 3), [1, 2, 3])─┐ -│ {('a',1):1,('b',2):2,('c',3):3} │ -└───────────────────────────────────────────────────────┘ -``` - -## extractKeyValuePairs {#extractkeyvaluepairs} - -将一个由键值对组成的字符串转换为 [Map(String, String)](../data-types/map.md)。 -解析过程对噪声具有一定的容错能力(例如日志文件)。 -输入字符串中的键值对由一个键、紧随其后的键值分隔符以及一个值组成。 -各个键值对之间由键值对分隔符分隔。 -键和值都可以带引号。 - -**语法** - -```sql -extractKeyValuePairs(data[, key_value_delimiter[, pair_delimiter[, quoting_character[, unexpected_quoting_character_strategy]]]) -``` - -别名: - -* `str_to_map` -* `mapFromString` - -**参数** - -* `data` - 要从中提取键值对的字符串。[String](../data-types/string.md) 或 [FixedString](../data-types/fixedstring.md)。 -* `key_value_delimiter` - 用于分隔键和值的单个字符。默认值为 `:`。[String](../data-types/string.md) 或 [FixedString](../data-types/fixedstring.md)。 -* `pair_delimiters` - 用于分隔各个键值对的字符集合。默认值为 ` `、`,` 和 `;`。[String](../data-types/string.md) 或 [FixedString](../data-types/fixedstring.md)。 -* `quoting_character` - 用作引用字符的单个字符。默认值为 `"`。[String](../data-types/string.md) 或 [FixedString](../data-types/fixedstring.md)。 -* `unexpected_quoting_character_strategy` - 在 `read_key` 和 `read_value` 阶段处理在意外位置出现的引用字符的策略。可选值:"invalid"、"accept" 和 "promote"。invalid 将丢弃键/值并回到 `WAITING_KEY` 状态;accept 将把它当作普通字符处理;promote 将切换到 `READ_QUOTED_{KEY/VALUE}` 状态,并从下一个字符开始。 - -**返回值** - -* 键值对的 Map。类型:[Map(String, String)](../data-types/map.md) - -**示例** - -查询 - -```sql -SELECT extractKeyValuePairs('name:neymar, age:31 team:psg,nationality:brazil') AS kv -``` - -结果: - -```Result: -┌─kv──────────────────────────────────────────────────────────────────────┐ -│ {'name':'neymar','age':'31','team':'psg','nationality':'brazil'} │ -└─────────────────────────────────────────────────────────────────────────┘ -``` - -使用单引号 `'` 作为引号: - -```sql -SELECT extractKeyValuePairs('name:\'neymar\';\'age\':31;team:psg;nationality:brazil,last_key:last_value', ':', ';,', '\'') AS kv -``` - -结果: - -```text -┌─kv───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ -│ {'name':'neymar','age':'31','team':'psg','nationality':'brazil','last_key':'last_value'} │ -└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ -``` - -unexpected_quoting_character_strategy 示例: - -unexpected_quoting_character_strategy=invalid - -```sql -SELECT extractKeyValuePairs('name"abc:5', ':', ' ,;', '\"', 'INVALID') AS kv; -``` - -```text -┌─kv────────────────┐ -│ {'abc':'5'} │ -└───────────────────┘ -``` - -```sql -SELECT extractKeyValuePairs('name"abc":5', ':', ' ,;', '\"', 'INVALID') AS kv; -``` - -```text -┌─kv──┐ -│ {} │ -└─────┘ -``` - -unexpected_quoting_character_strategy=accept - -```sql -SELECT extractKeyValuePairs('name"abc:5', ':', ' ,;', '\"', 'ACCEPT') AS kv; -``` - -```text -┌─kv────────────────┐ -│ {'name"abc':'5'} │ -└───────────────────┘ -``` - -```sql -SELECT extractKeyValuePairs('name"abc":5', ':', ' ,;', '\"', 'ACCEPT') AS kv; -``` - -```text -┌─kv─────────────────┐ -│ {'name"abc"':'5'} │ -└────────────────────┘ -``` - -unexpected_quoting_character_strategy=promote - -```sql -SELECT extractKeyValuePairs('name"abc:5', ':', ' ,;', '\"', 'PROMOTE') AS kv; -``` - -```text -┌─kv──┐ -│ {} │ -└─────┘ -``` - -```sql -SELECT extractKeyValuePairs('name"abc":5', ':', ' ,;', '\"', 'PROMOTE') AS kv; -``` - -```text -┌─kv───────────┐ -│ {'abc':'5'} │ -└──────────────┘ -``` - -在不支持转义序列的环境中的转义序列: - -```sql -SELECT extractKeyValuePairs('age:a\\x0A\\n\\0') AS kv -``` - -结果: - -```text -┌─kv─────────────────────┐ -│ {'age':'a\\x0A\\n\\0'} │ -└────────────────────────┘ -``` - -要还原使用 `toString` 序列化的、以字符串为键的 map 键值对: - -```sql -SELECT - map('John', '33', 'Paula', '31') AS m, - toString(m) AS map_serialized, - extractKeyValuePairs(map_serialized, ':', ',', '\'') AS map_restored -FORMAT Vertical; -``` - -结果: - -```response -第 1 行: -────── -m: {'John':'33','Paula':'31'} -map_serialized: {'John':'33','Paula':'31'} -map_restored: {'John':'33','Paula':'31'} -``` - -## extractKeyValuePairsWithEscaping {#extractkeyvaluepairswithescaping} - -与 `extractKeyValuePairs` 相同,但支持转义。 - -支持的转义序列:`\x`、`\N`、`\a`、`\b`、`\e`、`\f`、`\n`、`\r`、`\t`、`\v` 和 `\0`。 -非标准转义序列会原样返回(包括反斜杠),除非它们是下列之一: -`\\`、`'`、`"`、`backtick`、`/`、`=` 或 ASCII 控制字符(c <= 31)。 - -当预转义和后转义都不适用时,可以使用此函数。例如,考虑如下输入字符串:`a: "aaaa\"bbb"`。期望输出为:`a: aaaa\"bbbb`。 - -* 预转义:预转义之后的输出为:`a: "aaaa"bbb"`,然后 `extractKeyValuePairs` 会输出:`a: aaaa` -* 后转义:`extractKeyValuePairs` 会输出 `a: aaaa\`,而后转义会保持其不变。 - -在 key 中,前导转义序列会被忽略;在 value 中,它们将被视为无效。 - -**示例** - -启用转义序列支持时的转义序列示例: - -```sql -SELECT extractKeyValuePairsWithEscaping('age:a\\x0A\\n\\0') AS kv -``` - -结果: - -```response -┌─kv────────────────┐ -│ {'age':'a\n\n\0'} │ -└───────────────────┘ -``` - -## mapAdd {#mapadd} - -收集所有键并对其对应的值求和。 - -**语法** - -```sql -mapAdd(arg1, arg2 [, ...]) -``` - -**参数** - -参数是由两个[数组](/sql-reference/data-types/array)组成的[map](../data-types/map.md)或[tuple](/sql-reference/data-types/tuple),其中第一个数组中的元素表示键,第二个数组中包含每个键对应的值。所有键数组的类型必须相同,且所有值数组应包含可以统一提升为同一类型([Int64](/sql-reference/data-types/int-uint#integer-ranges)、[UInt64](/sql-reference/data-types/int-uint#integer-ranges) 或 [Float64](/sql-reference/data-types/float))的元素。该统一提升后的类型将作为结果数组的元素类型。 - -**返回值** - -* 根据参数返回一个[map](../data-types/map.md)或[tuple](/sql-reference/data-types/tuple),其中第一个数组包含排序后的键,第二个数组包含对应的值。 - -**示例** - -使用 `Map` 类型的查询: - -```sql -SELECT mapAdd(map(1,1), map(1,1)); -``` - -结果: - -```text -┌─mapAdd(map(1, 1), map(1, 1))─┐ -│ {1:2} │ -└──────────────────────────────┘ -``` - -使用元组的查询: - -```sql -SELECT mapAdd(([toUInt8(1), 2], [1, 1]), ([toUInt8(1), 2], [1, 1])) AS res, toTypeName(res) AS type; -``` - -结果: - -```text -┌─res───────────┬─type───────────────────────────────┐ -│ ([1,2],[2,2]) │ Tuple(Array(UInt8), Array(UInt64)) │ -└───────────────┴────────────────────────────────────┘ -``` - -## mapSubtract {#mapsubtract} - -收集所有键并将对应的值相减。 - -**语法** - -```sql -mapSubtract(Tuple(Array, Array), Tuple(Array, Array) [, ...]) -``` - -**参数** - -参数为由两个[数组](/sql-reference/data-types/array)组成的[map](../data-types/map.md)或[tuple](/sql-reference/data-types/tuple),第一个数组中的元素表示键,第二个数组中包含每个键对应的值。所有键数组必须具有相同的类型,所有值数组中的元素必须都能提升为同一种类型([Int64](/sql-reference/data-types/int-uint#integer-ranges)、[UInt64](/sql-reference/data-types/int-uint#integer-ranges) 或 [Float64](/sql-reference/data-types/float))。该统一提升后的类型将作为结果数组的类型。 - -**返回值** - -* 根据参数返回一个[map](../data-types/map.md)或[tuple](/sql-reference/data-types/tuple),其中第一个数组包含排序后的键,第二个数组包含对应的值。 - -**示例** - -使用 `Map` 类型的查询: - -```sql -SELECT mapSubtract(map(1,1), map(1,1)); -``` - -结果: - -```text -┌─mapSubtract(map(1, 1), map(1, 1))─┐ -│ {1:0} │ -└───────────────────────────────────┘ -``` - -包含元组映射的查询: - -```sql -SELECT mapSubtract(([toUInt8(1), 2], [toInt32(1), 1]), ([toUInt8(1), 2], [toInt32(2), 1])) AS res, toTypeName(res) AS type; -``` - -结果: - -```text -┌─res────────────┬─type──────────────────────────────┐ -│ ([1,2],[-1,0]) │ Tuple(Array(UInt8), Array(Int64)) │ -└────────────────┴───────────────────────────────────┘ -``` - -## mapPopulateSeries {#mappopulateseries} - -使用整数键为 `map` 中缺失的键值对填充数据。 -为了支持将键扩展到当前最大值之外的范围,可以指定一个最大键。 -更具体地说,该函数返回一个 `map`,其中键从最小键到最大键(或指定的 `max` 参数)构成步长为 1 的序列,并带有相应的值。 -如果某个键没有指定值,则使用默认值作为对应的值。 -如果键有重复,只会将第一个值(按照出现顺序)与该键关联。 - -**Syntax** - -```sql -mapPopulateSeries(map[, max]) -mapPopulateSeries(keys, values[, max]) -``` - -对于数组参数,`keys` 和 `values` 中的元素数量在每一行中必须相同。 - -**参数** - -参数可以是 [Map](../data-types/map.md) 或两个 [Array](/sql-reference/data-types/array),其中第一个数组为键,第二个数组为对应的值。 - -映射数组: - -* `map` — 具有整数键的 Map。[Map](../data-types/map.md)。 - -或者 - -* `keys` — 键的数组。[Array](/sql-reference/data-types/array)([Int](/sql-reference/data-types/int-uint#integer-ranges))。 -* `values` — 值的数组。[Array](/sql-reference/data-types/array)([Int](/sql-reference/data-types/int-uint#integer-ranges))。 -* `max` — 最大键值。可选。[Int8, Int16, Int32, Int64, Int128, Int256](/sql-reference/data-types/int-uint#integer-ranges)。 - -**返回值** - -* 根据传入的参数,返回一个 [Map](../data-types/map.md) 或一个由两个 [Array](/sql-reference/data-types/array) 组成的 [Tuple](/sql-reference/data-types/tuple):按排序顺序排列的键,以及与这些键对应的值。 - -**示例** - -使用 `Map` 类型的查询: - -```sql -SELECT mapPopulateSeries(map(1, 10, 5, 20), 6); -``` - -结果: - -```text -┌─mapPopulateSeries(map(1, 10, 5, 20), 6)─┐ -│ {1:10,2:0,3:0,4:0,5:20,6:0} │ -└─────────────────────────────────────────┘ -``` - -对映射数组的查询: - -```sql -SELECT mapPopulateSeries([1,2,4], [11,22,44], 5) AS res, toTypeName(res) AS type; -``` - -结果: - -```text -┌─res──────────────────────────┬─type──────────────────────────────┐ -│ ([1,2,3,4,5],[11,22,0,44,0]) │ Tuple(Array(UInt8), Array(UInt8)) │ -└──────────────────────────────┴───────────────────────────────────┘ -``` - -## mapKeys {#mapkeys} - -返回给定 map 的所有键。 - -通过启用 [optimize_functions_to_subcolumns](/operations/settings/settings#optimize_functions_to_subcolumns) 这一设置,可以对该函数进行优化。 -启用该设置后,函数只会读取 [keys](/sql-reference/data-types/map#reading-subcolumns-of-map) 子列,而不是整个 map。 -查询 `SELECT mapKeys(m) FROM table` 会被重写为 `SELECT m.keys FROM table`。 - -**语法** - -```sql -mapKeys(map) -``` - -**参数** - -* `map` — Map 类型。[Map](../data-types/map.md)。 - -**返回值** - -* 包含 `map` 中所有键的数组。[Array](../data-types/array.md)。 - -**示例** - -查询: - -```sql -CREATE TABLE tab (a Map(String, String)) ENGINE = Memory; - -INSERT INTO tab VALUES ({'name':'eleven','age':'11'}), ({'number':'twelve','position':'6.0'}); - -SELECT mapKeys(a) FROM tab; -``` - -结果: - -```text -┌─mapKeys(a)────────────┐ -│ ['name','age'] │ -│ ['number','position'] │ -└───────────────────────┘ -``` - -## mapContains {#mapcontains} - -返回一个布尔值,用于表示给定的 `map` 中是否包含指定的键。 - -**语法** - -```sql -mapContains(map, key) -``` - -Alias: `mapContainsKey(map, key)` - -**参数** - -* `map` — Map 映射类型。参见 [Map](../data-types/map.md)。 -* `key` — 键。类型必须与 `map` 的键类型匹配。 - -**返回值** - -* 如果 `map` 中包含 `key`,则返回 `1`,否则返回 `0`。参见 [UInt8](../data-types/int-uint.md)。 - -**示例** - -查询: - -```sql -CREATE TABLE tab (a Map(String, String)) ENGINE = Memory; - -INSERT INTO tab VALUES ({'name':'eleven','age':'11'}), ({'number':'twelve','position':'6.0'}); - -SELECT mapContains(a, 'name') FROM tab; - -``` - -结果: - -```text -┌─mapContains(a, 'name')─┐ -│ 1 │ -│ 0 │ -└────────────────────────┘ -``` - -## mapContainsKeyLike {#mapcontainskeylike} - -**语法** - -```sql -mapContainsKeyLike(map, pattern) -``` - -**参数** - -* `map` — Map 类型。[Map](../data-types/map.md)。 -* `pattern` - 要匹配的字符串模式。 - -**返回值** - -* 如果 `map` 中包含符合指定模式的键,则返回 `1`,否则返回 `0`。 - -**示例** - -查询: - -```sql -CREATE TABLE tab (a Map(String, String)) ENGINE = Memory; - -INSERT INTO tab VALUES ({'abc':'abc','def':'def'}), ({'hij':'hij','klm':'klm'}); - -SELECT mapContainsKeyLike(a, 'a%') FROM tab; -``` - -结果: - -```text -┌─mapContainsKeyLike(a, 'a%')─┐ -│ 1 │ -│ 0 │ -└─────────────────────────────┘ -``` - -## mapExtractKeyLike {#mapextractkeylike} - -给定一个具有字符串键的 `map` 以及一个 LIKE 模式,此函数返回一个仅包含其键匹配该模式元素的 `map`。 - -**语法** - -```sql -mapExtractKeyLike(map, pattern) -``` - -**参数** - -* `map` — Map。[Map](../data-types/map.md)。 -* `pattern` - 要匹配的字符串模式。 - -**返回值** - -* 一个 Map,包含键与指定模式匹配的元素。如果没有元素匹配该模式,则返回空 Map。 - -**示例** - -查询: - -```sql -CREATE TABLE tab (a Map(String, String)) ENGINE = Memory; - -INSERT INTO tab VALUES ({'abc':'abc','def':'def'}), ({'hij':'hij','klm':'klm'}); - -SELECT mapExtractKeyLike(a, 'a%') FROM tab; -``` - -结果: - -```text -┌─mapExtractKeyLike(a, 'a%')─┐ -│ {'abc':'abc'} │ -│ {} │ -└────────────────────────────┘ -``` - -## mapValues {#mapvalues} - -返回给定 map 的所有值。 - -通过启用 [optimize_functions_to_subcolumns](/operations/settings/settings#optimize_functions_to_subcolumns) 设置,可以对该函数进行优化。 -启用该设置后,函数只会读取 [values](/sql-reference/data-types/map#reading-subcolumns-of-map) 子列,而不是整个 map。 -查询 `SELECT mapValues(m) FROM table` 会被转换为 `SELECT m.values FROM table`。 - -**语法** - -```sql -mapValues(map) -``` - -**参数** - -* `map` — Map 类型。[Map](../data-types/map.md)。 - -**返回值** - -* 包含 `map` 中所有值的数组。[Array](../data-types/array.md)。 - -**示例** - -查询: - -```sql -CREATE TABLE tab (a Map(String, String)) ENGINE = Memory; - -INSERT INTO tab VALUES ({'name':'eleven','age':'11'}), ({'number':'twelve','position':'6.0'}); - -SELECT mapValues(a) FROM tab; -``` - -结果: - -```text -┌─mapValues(a)─────┐ -│ ['eleven','11'] │ -│ ['twelve','6.0'] │ -└──────────────────┘ -``` - -## mapContainsValue {#mapcontainsvalue} - -返回给定的 `key` 是否存在于给定的 `map` 中。 - -**语法** - -```sql -mapContainsValue(map, value) -``` - -别名:`mapContainsValue(map, value)` - -**参数** - -* `map` — Map。[Map](../data-types/map.md)。 -* `value` — 值。类型必须与 `map` 的值类型相匹配。 - -**返回值** - -* 若 `map` 包含 `value`,则为 `1`,否则为 `0`。[UInt8](../data-types/int-uint.md)。 - -**示例** - -查询: - -```sql -CREATE TABLE tab (a Map(String, String)) ENGINE = Memory; - -INSERT INTO tab VALUES ({'name':'eleven','age':'11'}), ({'number':'twelve','position':'6.0'}); - -SELECT mapContainsValue(a, '11') FROM tab; - -``` - -结果: - -```text -┌─mapContainsValue(a, '11')─┐ -│ 1 │ -│ 0 │ -└───────────────────────────┘ -``` - -## mapContainsValueLike {#mapcontainsvaluelike} - -**语法** - -```sql -mapContainsValueLike(map, pattern) -``` - -**参数** - -* `map` — Map。[Map](../data-types/map.md)。 -* `pattern` - 用于匹配的字符串模式。 - -**返回值** - -* 如果 `map` 中包含符合指定模式的 `value`,则返回 `1`,否则返回 `0`。 - -**示例** - -查询: - -```sql -CREATE TABLE tab (a Map(String, String)) ENGINE = Memory; - -INSERT INTO tab VALUES ({'abc':'abc','def':'def'}), ({'hij':'hij','klm':'klm'}); - -SELECT mapContainsValueLike(a, 'a%') FROM tab; -``` - -结果: - -```text -┌─mapContainsV⋯ke(a, 'a%')─┐ -│ 1 │ -│ 0 │ -└──────────────────────────┘ -``` - -## mapExtractValueLike {#mapextractvaluelike} - -给定一个值为字符串的 map 和一个 LIKE 模式,该函数返回一个仅包含其值匹配该模式的元素的 map。 - -**语法** - -```sql -mapExtractValueLike(map, pattern) -``` - -**参数** - -* `map` — Map 类型。[Map](../data-types/map.md)。 -* `pattern` - 要匹配的字符串模式。 - -**返回值** - -* 一个包含其值匹配指定模式的元素的 Map。如果没有元素匹配该模式,则返回空 Map。 - -**示例** - -查询: - -```sql -CREATE TABLE tab (a Map(String, String)) ENGINE = Memory; - -INSERT INTO tab VALUES ({'abc':'abc','def':'def'}), ({'hij':'hij','klm':'klm'}); - -SELECT mapExtractValueLike(a, 'a%') FROM tab; -``` - -结果: - -```text -┌─mapExtractValueLike(a, 'a%')─┐ -│ {'abc':'abc'} │ -│ {} │ -└──────────────────────────────┘ -``` - -## mapApply {#mapapply} - -将一个函数应用于 `map` 的每个元素。 - -**语法** - -```sql -mapApply(func, map) -``` - -**参数** - -* `func` — [Lambda 函数](/sql-reference/functions/overview#higher-order-functions)。 -* `map` — [Map](../data-types/map.md)。 - -**返回值** - -* 返回一个 `map`,通过对原始 `map` 中每个元素应用 `func(map1[i], ..., mapN[i])` 得到。 - -**示例** - -查询: - -```sql -SELECT mapApply((k, v) -> (k, v * 10), _map) AS r -FROM -( - SELECT map('key1', number, 'key2', number * 2) AS _map - FROM numbers(3) -) -``` - -结果: - -```text -┌─r─────────────────────┐ -│ {'key1':0,'key2':0} │ -│ {'key1':10,'key2':20} │ -│ {'key1':20,'key2':40} │ -└───────────────────────┘ -``` - -## mapFilter {#mapfilter} - -通过对 map 中的每个元素应用函数来过滤 map。 - -**语法** - -```sql -mapFilter(func, map) -``` - -**参数** - -* `func` - [Lambda 函数](/sql-reference/functions/overview#higher-order-functions)。 -* `map` — [Map](../data-types/map.md)。 - -**返回值** - -* 返回一个 map,其中仅包含 `map` 中那些使 `func(map1[i], ..., mapN[i])` 返回非 0 值的元素。 - -**示例** - -查询: - -```sql -SELECT mapFilter((k, v) -> ((v % 2) = 0), _map) AS r -FROM -( - SELECT map('key1', number, 'key2', number * 2) AS _map - FROM numbers(3) -) -``` - -结果: - -```text -┌─r───────────────────┐ -│ {'key1':0,'key2':0} │ -│ {'key2':2} │ -│ {'key1':2,'key2':4} │ -└─────────────────────┘ -``` - -## mapUpdate {#mapupdate} - -**语法** - -```sql -mapUpdate(map1, map2) -``` - -**参数** - -* `map1` [Map](../data-types/map.md)。 -* `map2` [Map](../data-types/map.md)。 - -**返回值** - -* 返回 `map1`,其值根据 `map2` 中对应键的值进行了更新。 - -**示例** - -查询: - -```sql -SELECT mapUpdate(map('key1', 0, 'key3', 0), map('key1', 10, 'key2', 10)) AS map; -``` - -结果: - -```text -┌─map────────────────────────────┐ -│ {'key3':0,'key1':10,'key2':10} │ -└────────────────────────────────┘ -``` - -## mapConcat {#mapconcat} - -根据键是否相同来合并多个 `map`。 -如果在多个输入 `map` 中存在具有相同键的元素,则所有元素都会被添加到结果 `map` 中,但通过操作符 `[]` 只能访问第一个元素。 - -**Syntax** - -```sql -mapConcat(maps) -``` - -**参数** - -* `maps` – 任意数量的 [Maps](../data-types/map.md)。 - -**返回值** - -* 返回一个 map,它是对作为参数传入的多个 map 进行连接得到的结果。 - -**示例** - -查询: - -```sql -SELECT mapConcat(map('key1', 1, 'key3', 3), map('key2', 2)) AS map; -``` - -结果: - -```text -┌─map──────────────────────────┐ -│ {'key1':1,'key3':3,'key2':2} │ -└──────────────────────────────┘ -``` - -查询: - -```sql -SELECT mapConcat(map('key1', 1, 'key2', 2), map('key1', 3)) AS map, map['key1']; -``` - -结果: - -```text -┌─map──────────────────────────┬─elem─┐ -│ {'key1':1,'key2':2,'key1':3} │ 1 │ -└──────────────────────────────┴──────┘ -``` - -## mapExists([func,], map) {#mapexistsfunc-map} - -如果在 `map` 中存在至少一组键值对,使得 `func(key, value)` 的返回值不为 0,则返回 1,否则返回 0。 - -:::note -`mapExists` 是一个[高阶函数](/sql-reference/functions/overview#higher-order-functions)。 -可以将一个 lambda 函数作为第一个参数传入。 -::: - -**示例** - -查询: - -```sql -SELECT mapExists((k, v) -> (v = 1), map('k1', 1, 'k2', 2)) AS res -``` - -结果: - -```response -┌─res─┐ -│ 1 │ -└─────┘ -``` - -## mapAll([func,] map) {#mapallfunc-map} - -如果对 `map` 中所有键值对调用 `func(key, value)` 的结果都不为 0,则返回 1,否则返回 0。 - -:::note -请注意,`mapAll` 是一个[高阶函数](/sql-reference/functions/overview#higher-order-functions)。 -可以将一个 lambda 函数作为第一个参数传递给它。 -::: - -**示例** - -查询: - -```sql -SELECT mapAll((k, v) -> (v = 1), map('k1', 1, 'k2', 2)) AS res -``` - -结果: - -```response -┌─res─┐ -│ 0 │ -└─────┘ -``` - -## mapSort([func,], map) {#mapsortfunc-map} - -将 map 中的元素按升序排序。 -如果指定了 `func` 函数,则排序顺序由 `func` 应用于 map 的键和值后得到的结果来决定。 - -**示例** - -```sql -SELECT mapSort(map('key2', 2, 'key3', 1, 'key1', 3)) AS map; -``` - -```text -┌─map──────────────────────────┐ -│ {'key1':3,'key2':2,'key3':1} │ -└──────────────────────────────┘ -``` - -```sql -SELECT mapSort((k, v) -> v, map('key2', 2, 'key3', 1, 'key1', 3)) AS map; -``` - -```text -┌─map──────────────────────────┐ -│ {'key3':1,'key2':2,'key1':3} │ -└──────────────────────────────┘ -``` - -更多详情请参阅 [`arraySort` 函数的参考文档](/sql-reference/functions/array-functions#arraySort)。 - -## mapPartialSort {#mappartialsort} - -按升序对 map 的元素进行排序,并通过额外的 `limit` 参数实现部分排序。 -如果指定了 `func` 函数,则排序顺序由将 `func` 函数应用于 map 的键和值所得结果来决定。 - -**语法** - -```sql -mapPartialSort([func,] limit, map) -``` - -**参数** - -* `func` – 可选函数,应用于 map 的键和值。[Lambda function](/sql-reference/functions/overview#higher-order-functions)。 -* `limit` – 区间 [1..limit] 内的元素会被排序。[(U)Int](../data-types/int-uint.md)。 -* `map` – 要排序的 map。[Map](../data-types/map.md)。 - -**返回值** - -* 部分排序后的 map。[Map](../data-types/map.md)。 - -**示例** - -```sql -SELECT mapPartialSort((k, v) -> v, 2, map('k1', 3, 'k2', 1, 'k3', 2)); -``` - -```text -┌─mapPartialSort(lambda(tuple(k, v), v), 2, map('k1', 3, 'k2', 1, 'k3', 2))─┐ -│ {'k2':1,'k3':2,'k1':3} │ -└───────────────────────────────────────────────────────────────────────────┘ -``` - -## mapReverseSort([func,], map) {#mapreversesortfunc-map} - -按降序对 map 中的元素进行排序。 -如果指定了 `func` 函数,则根据将 `func` 函数应用到 map 的键和值后得到的结果来确定排序顺序。 - -**示例** - -```sql -SELECT mapReverseSort(map('key2', 2, 'key3', 1, 'key1', 3)) AS map; -``` - -```text -┌─map──────────────────────────┐ -│ {'key3':1,'key2':2,'key1':3} │ -└──────────────────────────────┘ -``` - -```sql -SELECT mapReverseSort((k, v) -> v, map('key2', 2, 'key3', 1, 'key1', 3)) AS map; -``` - -```text -┌─map──────────────────────────┐ -│ {'key1':3,'key2':2,'key3':1} │ -└──────────────────────────────┘ -``` - -更多详细信息请参阅 [arrayReverseSort](/sql-reference/functions/array-functions#arrayReverseSort) 函数。 - -## mapPartialReverseSort {#mappartialreversesort} - -对 map 中的元素按降序排序,并带有额外的 `limit` 参数,用于执行部分排序。 -如果指定了 `func` 函数,排序顺序根据将 `func` 函数应用到 map 的键和值所得的结果来确定。 - -**语法** - -```sql -mapPartialReverseSort([func,] limit, map) -``` - -**参数** - -* `func` – 可选,用于作用于 map 的键和值的函数。[Lambda function](/sql-reference/functions/overview#higher-order-functions)。 -* `limit` – 范围为 [1..limit] 的元素会被排序。[(U)Int](../data-types/int-uint.md)。 -* `map` – 要排序的 Map。[Map](../data-types/map.md)。 - -**返回值** - -* 部分排序的 Map。[Map](../data-types/map.md)。 - -**示例** - -```sql -SELECT mapPartialReverseSort((k, v) -> v, 2, map('k1', 3, 'k2', 1, 'k3', 2)); -``` - -```text -┌─mapPartialReverseSort(lambda(tuple(k, v), v), 2, map('k1', 3, 'k2', 1, 'k3', 2))─┐ -│ {'k1':3,'k3':2,'k2':1} │ -└──────────────────────────────────────────────────────────────────────────────────┘ -``` - {/* - 以下标签内的内容会在文档框架构建期间被替换为 + 以下标签内的内容会在文档框架构建时被替换为 由 system.functions 生成的文档。请不要修改或删除这些标签。 参见:https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md */ } diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/select/limit.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/select/limit.md index 69d9ce4296f..327abdb34b1 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/select/limit.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/select/limit.md @@ -68,7 +68,7 @@ LIMIT n, m :::note - 分数必须是大于 0 且小于 1 的 [Float64](../../data-types/float.md) 值。 -- 分数对应的行数会四舍五入到最接近的整数。 +- 分数对应的行数会向上取整到下一个整数。 ::: ## 组合限制类型 {#combining-limit-types} diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md index d886954d535..61c5a458de1 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md @@ -30,23 +30,25 @@ SYSTEM RELOAD DICTIONARIES [ON CLUSTER cluster_name] ## SYSTEM RELOAD DICTIONARY {#reload-dictionary} -无论字典 `dictionary_name` 当前状态(LOADED / NOT_LOADED / FAILED)如何,完全重新加载该字典。 -无论字典更新结果如何,始终返回 `Ok.`。 +完全重新加载名为 `dictionary_name` 的字典,不论其当前状态(LOADED / NOT_LOADED / FAILED)如何。 +无论更新字典的结果如何,该语句始终返回 `Ok.`。 ```sql SYSTEM RELOAD DICTIONARY [ON CLUSTER cluster_name] dictionary_name ``` -可以通过查询 `system.dictionaries` 表来检查字典的状态。 +可以通过查询 `system.dictionaries` 表来查看字典的状态。 ```sql SELECT name, status FROM system.dictionaries; ``` + ## SYSTEM RELOAD MODELS {#reload-models} :::note -此语句和 `SYSTEM RELOAD MODEL` 仅从 clickhouse-library-bridge 中卸载 CatBoost 模型。函数 `catboostEvaluate()` 在首次被调用且相应模型尚未加载时会加载该模型。 +此语句和 `SYSTEM RELOAD MODEL` 仅会从 clickhouse-library-bridge 中卸载 CatBoost 模型。函数 `catboostEvaluate()` +会在首次访问某个尚未加载的模型时自动加载该模型。 ::: 卸载所有 CatBoost 模型。 @@ -57,9 +59,10 @@ SELECT name, status FROM system.dictionaries; SYSTEM RELOAD MODELS [ON CLUSTER cluster_name] ``` + ## SYSTEM RELOAD MODEL {#reload-model} -重新加载位于 `model_path` 的 CatBoost 模型。 +卸载位于 `model_path` 的 CatBoost 模型。 **语法** @@ -67,9 +70,10 @@ SYSTEM RELOAD MODELS [ON CLUSTER cluster_name] SYSTEM RELOAD MODEL [ON CLUSTER cluster_name] ``` + ## SYSTEM RELOAD FUNCTIONS {#reload-functions} -从配置文件中重新加载所有已注册的[可执行用户定义函数](/sql-reference/functions/udf#executable-user-defined-functions)或其中任一函数。 +从配置文件重新加载所有已注册的[可执行用户自定义函数](/sql-reference/functions/udf#executable-user-defined-functions)或某一个。 **语法** @@ -78,19 +82,21 @@ SYSTEM RELOAD FUNCTIONS [ON CLUSTER cluster_name] SYSTEM RELOAD FUNCTION [ON CLUSTER cluster_name] function_name ``` + ## SYSTEM RELOAD ASYNCHRONOUS METRICS {#reload-asynchronous-metrics} -重新计算所有[异步指标](../../operations/system-tables/asynchronous_metrics.md)。由于异步指标会基于配置项 [asynchronous_metrics_update_period_s](../../operations/server-configuration-parameters/settings.md) 定期更新,通常无需使用此语句手动更新。 +重新计算所有[异步指标](../../operations/system-tables/asynchronous_metrics.md)。由于异步指标会根据设置项 [asynchronous_metrics_update_period_s](../../operations/server-configuration-parameters/settings.md) 定期更新,通常无需使用该语句手动触发更新。 ```sql SYSTEM RELOAD ASYNCHRONOUS METRICS [ON CLUSTER cluster_name] ``` + ## SYSTEM DROP DNS CACHE {#drop-dns-cache} -清除 ClickHouse 的内部 DNS 缓存。在更改基础设施时(例如更改另一个 ClickHouse 服务器的 IP 地址或字典所使用的服务器),有时需要使用此命令(适用于旧版本的 ClickHouse)。 +清除 ClickHouse 的内部 DNS 缓存。在更改基础设施时(例如更改另一台 ClickHouse 服务器或字典所用服务器的 IP 地址),有时(对于较老的 ClickHouse 版本)需要使用此命令。 -要实现更便捷的(自动)缓存管理,请参阅 `disable_internal_dns_cache`、`dns_cache_max_entries`、`dns_cache_update_period` 参数。 +若需要更方便的(自动)缓存管理,请参阅 `disable_internal_dns_cache`、`dns_cache_max_entries`、`dns_cache_update_period` 参数。 ## SYSTEM DROP MARK CACHE {#drop-mark-cache} @@ -100,22 +106,16 @@ SYSTEM RELOAD ASYNCHRONOUS METRICS [ON CLUSTER cluster_name] 清除 Iceberg 元数据缓存。 -## SYSTEM DROP TEXT INDEX DICTIONARY CACHE {#drop-text-index-dictionary-cache} - -清除文本索引字典缓存。 - -## SYSTEM DROP TEXT INDEX HEADER CACHE {#drop-text-index-header-cache} - -清空文本索引头缓存。 - -## SYSTEM DROP TEXT INDEX POSTINGS CACHE {#drop-text-index-postings-cache} - -清除文本索引的倒排索引缓存。 - ## SYSTEM DROP TEXT INDEX CACHES {#drop-text-index-caches} 清除文本索引头缓存、字典缓存和倒排索引缓存。 +如果你想单独清除其中某一个缓存,可以运行 + +- `SYSTEM DROP TEXT INDEX HEADER CACHE`, +- `SYSTEM DROP TEXT INDEX DICTIONARY CACHE`, 或 +- `SYSTEM DROP TEXT INDEX POSTINGS CACHE` + ## SYSTEM DROP REPLICA {#drop-replica} 可以使用以下语法删除 `ReplicatedMergeTree` 表的失效副本: @@ -136,7 +136,7 @@ SYSTEM DROP REPLICA 'replica_name' FROM ZKPATH '/path/to/table/in/zk'; ## SYSTEM DROP DATABASE REPLICA {#drop-database-replica} -可以使用以下语法删除 `Replicated` 数据库的失效副本: +可以使用以下语句删除 `Replicated` 数据库的失效副本: ```sql SYSTEM DROP DATABASE REPLICA 'replica_name' [FROM SHARD 'shard_name'] FROM DATABASE database; @@ -144,13 +144,14 @@ SYSTEM DROP DATABASE REPLICA 'replica_name' [FROM SHARD 'shard_name']; SYSTEM DROP DATABASE REPLICA 'replica_name' [FROM SHARD 'shard_name'] FROM ZKPATH '/path/to/table/in/zk'; ``` -类似于 `SYSTEM DROP REPLICA`,但用于在无法运行 `DROP DATABASE` 时,从 ZooKeeper 中移除 `Replicated` 数据库副本路径。请注意,它不会移除 `ReplicatedMergeTree` 副本(因此可能还需要执行 `SYSTEM DROP REPLICA`)。分片名称和副本名称是创建数据库时在 `Replicated` 引擎参数中指定的名称。此外,这些名称也可以从 `system.clusters` 中的 `database_shard_name` 和 `database_replica_name` 列中获取。如果缺少 `FROM SHARD` 子句,则 `replica_name` 必须是 `shard_name|replica_name` 格式的完整副本名称。 +类似于 `SYSTEM DROP REPLICA`,但用于在没有数据库可执行 `DROP DATABASE` 时,从 ZooKeeper 中移除 `Replicated` 数据库副本的路径。请注意,它不会移除 `ReplicatedMergeTree` 副本(因此可能还需要执行 `SYSTEM DROP REPLICA`)。分片名称和副本名称是在创建数据库时于 `Replicated` 引擎参数中指定的名称。此外,也可以从 `system.clusters` 中的 `database_shard_name` 和 `database_replica_name` 列获取这些名称。如果缺少 `FROM SHARD` 子句,则 `replica_name` 必须是 `shard_name|replica_name` 格式的完整副本名称。 + ## SYSTEM DROP UNCOMPRESSED CACHE {#drop-uncompressed-cache} -清空未压缩数据缓存。 -未压缩数据缓存可通过查询/用户/配置文件级别的设置 [`use_uncompressed_cache`](../../operations/settings/settings.md#use_uncompressed_cache) 启用或禁用。 -可以使用服务器级别设置 [`uncompressed_cache_size`](../../operations/server-configuration-parameters/settings.md#uncompressed_cache_size) 配置其大小。 +清除未压缩数据缓存。 +未压缩数据缓存可以在查询/USER/配置文件级别通过 [`use_uncompressed_cache`](../../operations/settings/settings.md#use_uncompressed_cache) 设置启用或禁用。 +其大小可以通过服务器级别的设置 [`uncompressed_cache_size`](../../operations/server-configuration-parameters/settings.md#uncompressed_cache_size) 进行配置。 ## SYSTEM DROP COMPILED EXPRESSION CACHE {#drop-compiled-expression-cache} @@ -173,54 +174,58 @@ SYSTEM DROP QUERY CACHE TAG '' ## SYSTEM DROP FORMAT SCHEMA CACHE {#system-drop-schema-format} -清空从 [`format_schema_path`](../../operations/server-configuration-parameters/settings.md#format_schema_path) 加载的 schema 缓存。 +清除从 [`format_schema_path`](../../operations/server-configuration-parameters/settings.md#format_schema_path) 加载的 schema 缓存。 -支持的目标: +支持的缓存类型: -* Protobuf: 从内存中移除已导入的 Protobuf 消息定义。 -* Files: 删除本地存储在 [`format_schema_path`](../../operations/server-configuration-parameters/settings.md#format_schema_path) 中的缓存 schema 文件,这些文件是在 `format_schema_source` 设置为 `query` 时生成的。 - 注意: 如果未指定目标,则会清空这两类缓存。 +* Protobuf:从内存中移除已导入的 Protobuf 消息定义。 +* Files:删除本地存储在 [`format_schema_path`](../../operations/server-configuration-parameters/settings.md#format_schema_path) 中的 schema 缓存文件,这些文件是在 `format_schema_source` 设置为 `query` 时生成的。 + 注意:如果未指定目标类型,则会清除这两种缓存。 ```sql SYSTEM DROP FORMAT SCHEMA CACHE [FOR Protobuf/Files] ``` + ## SYSTEM FLUSH LOGS {#flush-logs} -将缓冲的日志消息刷新到系统表中,例如 system.query_log。主要用于调试,因为大多数系统表的默认刷新间隔为 7.5 秒。 -即使消息队列为空,此操作也会创建相应的系统表。 +将缓冲的日志消息刷新到 system 数据库中的表,例如 system.query_log。该命令主要用于调试,因为大多数 system 表的默认刷新间隔为 7.5 秒。 +即使消息队列为空,此操作也会创建 system 表。 ```sql SYSTEM FLUSH LOGS [ON CLUSTER cluster_name] [log_name|[database.table]] [, ...] ``` -如果您不想刷新全部日志,可以通过传入日志名称或其目标表来刷新一个或多个单独的日志: +如果您不想刷新所有日志,可以通过传入日志的名称或其目标表来刷新一个或多个日志: ```sql SYSTEM FLUSH LOGS query_log, system.query_views_log; ``` + ## SYSTEM RELOAD CONFIG {#reload-config} -重新加载 ClickHouse 配置。用于配置存储在 ZooKeeper 中的场景。请注意,`SYSTEM RELOAD CONFIG` 不会重新加载存储在 ZooKeeper 中的 `USER` 配置,它只会重新加载存储在 `users.xml` 中的 `USER` 配置。要重新加载所有 `USER` 配置,请使用 `SYSTEM RELOAD USERS` +重新加载 ClickHouse 配置。在配置存储于 ZooKeeper 时使用。注意,`SYSTEM RELOAD CONFIG` 不会重新加载存储在 ZooKeeper 中的 `USER` 配置,它只会重新加载存储在 `users.xml` 中的 `USER` 配置。要重新加载所有 `USER` 配置,请使用 `SYSTEM RELOAD USERS`。 ```sql SYSTEM RELOAD CONFIG [ON CLUSTER cluster_name] ``` + ## SYSTEM RELOAD USERS {#reload-users} -重新加载所有访问存储,包括 users.xml、本地磁盘访问存储以及基于 ZooKeeper 的复制访问存储。 +重新加载所有访问控制存储,包括:users.xml、本地磁盘访问存储,以及在 ZooKeeper 中的复制访问存储。 ```sql SYSTEM RELOAD USERS [ON CLUSTER cluster_name] ``` + ## SYSTEM SHUTDOWN {#shutdown} -正常关闭 ClickHouse(类似于 `service clickhouse-server stop` / `kill {$pid_clickhouse-server}`) +正常关闭 ClickHouse 服务器(类似于 `service clickhouse-server stop` / `kill {$pid_clickhouse-server}`) ## SYSTEM KILL {#kill} @@ -249,37 +254,40 @@ SYSTEM INSTRUMENT ADD FUNCTION HANDLER [PARAMETERS] #### LOG {#instrument-add-log} -在函数的 `ENTRY` 或 `EXIT` 处打印作为参数传入的文本和调用栈。 +在函数的 `ENTRY` 或 `EXIT` 时,输出作为参数提供的文本及其堆栈追踪信息。 ```sql -SYSTEM INSTRUMENT ADD `QueryMetricLog::startQuery` LOG ENTRY 'this is a log printed at entry' -SYSTEM INSTRUMENT ADD `QueryMetricLog::startQuery` LOG EXIT 'this is a log printed at exit' +SYSTEM INSTRUMENT ADD 'QueryMetricLog::startQuery' LOG ENTRY 'this is a log printed at entry' +SYSTEM INSTRUMENT ADD 'QueryMetricLog::startQuery' LOG EXIT 'this is a log printed at exit' ``` + #### SLEEP {#instrument-add-sleep} -在 `ENTRY` 或 `EXIT` 时休眠指定的固定秒数: +在 `ENTRY` 或 `EXIT` 时休眠固定时长(秒): ```sql -SYSTEM INSTRUMENT ADD `QueryMetricLog::startQuery` SLEEP ENTRY 0.5 +SYSTEM INSTRUMENT ADD 'QueryMetricLog::startQuery' SLEEP ENTRY 0.5 ``` -或者指定一个在最小值和最大值之间均匀分布的随机秒数,这两个值以空格分隔: +或者使用在指定最小值和最大值之间均匀分布的随机秒数,并用空格分隔最小值和最大值: ```sql -SYSTEM INSTRUMENT ADD `QueryMetricLog::startQuery` SLEEP ENTRY 0 1 +SYSTEM INSTRUMENT ADD 'QueryMetricLog::startQuery' SLEEP ENTRY 0 1 ``` + #### PROFILE {#instrument-add-profile} -测量函数从 `ENTRY` 到 `EXIT` 之间的耗时。 -分析结果存储在 [`system.trace_log`](../../operations/system-tables/trace_log.md) 中,并可转换为 -[Chrome Event Trace Format](../../operations/system-tables/trace_log.md#chrome-event-trace-format)。 +测量函数在 `ENTRY` 与 `EXIT` 之间执行所耗费的时间。 +分析结果存储在 [`system.trace_log`](../../operations/system-tables/trace_log.md) 表中,并且可以转换为 +[Chrome 事件跟踪格式](../../operations/system-tables/trace_log.md#chrome-event-trace-format)。 ```sql -SYSTEM INSTRUMENT ADD `QueryMetricLog::startQuery` PROFILE +SYSTEM INSTRUMENT ADD 'QueryMetricLog::startQuery' PROFILE ``` + ### SYSTEM INSTRUMENT REMOVE {#instrument-remove} 用于移除单个检测点: @@ -288,23 +296,30 @@ SYSTEM INSTRUMENT ADD `QueryMetricLog::startQuery` PROFILE SYSTEM INSTRUMENT REMOVE ID ``` -它们都使用 `ALL` 参数: +使用 `ALL` 参数移除所有检测点: ```sql SYSTEM INSTRUMENT REMOVE ALL ``` -或由子查询返回的一组 ID: +来自子查询的 ID 集合: ```sql SYSTEM INSTRUMENT REMOVE (SELECT id FROM system.instrumentation WHERE handler = 'log') ``` -可以从 [`system.instrumentation`](../../operations/system-tables/instrumentation.md) 系统表中获取检测点 ID。 +或所有与给定的 function_name 匹配的插桩点: + +```sql +SYSTEM INSTRUMENT REMOVE 'QueryMetricLog::startQuery' +``` + +插桩点信息可以从 [`system.instrumentation`](../../operations/system-tables/instrumentation.md) 系统表中获取。 + ## 管理分布式表 {#managing-distributed-tables} -ClickHouse 可以管理[分布式](../../engines/table-engines/special/distributed.md)表。当用户向这些表中插入数据时,ClickHouse 会先创建一个队列,用于存放需要发送到集群节点的数据,然后再异步发送。可以使用 [`STOP DISTRIBUTED SENDS`](#stop-distributed-sends)、[FLUSH DISTRIBUTED](#flush-distributed) 和 [`START DISTRIBUTED SENDS`](#start-distributed-sends) 查询来管理队列处理。也可以通过 [`distributed_foreground_insert`](../../operations/settings/settings.md#distributed_foreground_insert) 设置以同步方式插入分布式数据。 +ClickHouse 可以管理[分布式](../../engines/table-engines/special/distributed.md)表。当用户向这些表插入数据时,ClickHouse 会先创建一个需发送到集群节点的数据队列,然后再异步发送这些数据。可以使用 [`STOP DISTRIBUTED SENDS`](#stop-distributed-sends)、[FLUSH DISTRIBUTED](#flush-distributed) 和 [`START DISTRIBUTED SENDS`](#start-distributed-sends) 查询来管理队列的处理。也可以通过 [`distributed_foreground_insert`](../../operations/settings/settings.md#distributed_foreground_insert) 设置同步插入分布式数据。 ### SYSTEM STOP DISTRIBUTED SENDS {#stop-distributed-sends} @@ -320,54 +335,58 @@ SYSTEM STOP DISTRIBUTED SENDS [db.] [ON CLUSTER cluster_ ### SYSTEM FLUSH DISTRIBUTED {#flush-distributed} -强制 ClickHouse 同步向集群节点发送数据。如果任一节点不可用,ClickHouse 会抛出异常并停止执行查询。您可以反复重试该查询,直到其成功执行,即所有节点重新上线时。 +强制 ClickHouse 以同步方式将数据发送到集群节点。若有任何节点不可用,ClickHouse 会抛出异常并停止执行该查询。你可以反复重试该查询,直到其成功,也就是当所有节点都重新在线时。 -您还可以通过 `SETTINGS` 子句覆盖某些设置,这在需要绕过暂时性限制时很有用,例如 `max_concurrent_queries_for_all_users` 或 `max_memory_usage`。 +你也可以通过 `SETTINGS` 子句覆盖某些设置,这在规避一些临时限制时很有用,例如 `max_concurrent_queries_for_all_users` 或 `max_memory_usage`。 ```sql SYSTEM FLUSH DISTRIBUTED [db.] [ON CLUSTER cluster_name] [SETTINGS ...] ``` :::note -每个待处理块都会按照初始 INSERT 查询中的设置存储到磁盘上,因此有时你可能需要覆盖这些设置。 +每个挂起的数据块都会按照最初 INSERT 查询中的设置存储到磁盘上,因此有时你可能需要覆盖这些设置。 ::: + ### SYSTEM START DISTRIBUTED SENDS {#start-distributed-sends} -启用在向分布式表插入数据时的后台数据分发。 +开启在向分布式表插入数据时的后台数据分发。 ```sql SYSTEM START DISTRIBUTED SENDS [db.] [ON CLUSTER cluster_name] ``` + ### SYSTEM STOP LISTEN {#stop-listen} -关闭套接字,并在指定端口和指定协议上优雅地终止到服务器的现有连接。 +关闭套接字,并优雅地终止在指定端口上使用指定协议与服务器建立的现有连接。 -但是,如果在 clickhouse-server 配置中未指定相应的协议设置,则此命令不会生效。 +但是,如果在 clickhouse-server 配置中未指定相应的协议设置,则该命令不会产生任何效果。 ```sql SYSTEM STOP LISTEN [ON CLUSTER cluster_name] [QUERIES ALL | QUERIES DEFAULT | QUERIES CUSTOM | TCP | TCP WITH PROXY | TCP SECURE | HTTP | HTTPS | MYSQL | GRPC | POSTGRESQL | PROMETHEUS | CUSTOM 'protocol'] ``` -* 如果指定了 `CUSTOM 'protocol'` 修饰符,将停止服务器配置的 `protocols` 部分中定义的具有该名称的自定义协议。 -* 如果指定了 `QUERIES ALL [EXCEPT .. [,..]]` 修饰符,则会停止所有协议,`EXCEPT` 子句中指定的除外。 -* 如果指定了 `QUERIES DEFAULT [EXCEPT .. [,..]]` 修饰符,则会停止所有默认协议,`EXCEPT` 子句中指定的除外。 -* 如果指定了 `QUERIES CUSTOM [EXCEPT .. [,..]]` 修饰符,则会停止所有自定义协议,`EXCEPT` 子句中指定的除外。 +* 如果指定了 `CUSTOM 'protocol'` 修饰符,则会停止服务器配置中 `protocols` 部分定义的、具有该名称的自定义协议。 +* 如果指定了 `QUERIES ALL [EXCEPT .. [,..]]` 修饰符,则会停止所有协议,除非在 `EXCEPT` 子句中明确排除。 +* 如果指定了 `QUERIES DEFAULT [EXCEPT .. [,..]]` 修饰符,则会停止所有默认协议,除非在 `EXCEPT` 子句中明确排除。 +* 如果指定了 `QUERIES CUSTOM [EXCEPT .. [,..]]` 修饰符,则会停止所有自定义协议,除非在 `EXCEPT` 子句中明确排除。 + ### SYSTEM START LISTEN {#start-listen} -允许在指定协议上建立新连接。 +允许在指定协议上建立新的连接。 -但是,如果指定端口和协议上的服务器并不是通过 SYSTEM STOP LISTEN 命令停止的,则此命令不会产生任何效果。 +但是,如果指定端口和协议上的服务器不是通过 SYSTEM STOP LISTEN 命令停止的,则此命令不会产生任何效果。 ```sql SYSTEM START LISTEN [ON CLUSTER cluster_name] [QUERIES ALL | QUERIES DEFAULT | QUERIES CUSTOM | TCP | TCP WITH PROXY | TCP SECURE | HTTP | HTTPS | MYSQL | GRPC | POSTGRESQL | PROMETHEUS | CUSTOM 'protocol'] ``` + ## 管理 MergeTree 表 {#managing-mergetree-tables} -ClickHouse 可以管理 [MergeTree](../../engines/table-engines/mergetree-family/mergetree.md) 表中的后台进程。 +ClickHouse 可以控制在 [MergeTree](../../engines/table-engines/mergetree-family/mergetree.md) 表上运行的后台进程。 ### SYSTEM STOP MERGES {#stop-merges} @@ -393,61 +412,68 @@ SYSTEM STOP MERGES [ON CLUSTER cluster_name] [ON VOLUME | [db.]mer SYSTEM START MERGES [ON CLUSTER cluster_name] [ON VOLUME | [db.]merge_tree_family_table_name] ``` + ### SYSTEM STOP TTL MERGES {#stop-ttl-merges} -用于停止 MergeTree 系列表中根据 [TTL expression](../../engines/table-engines/mergetree-family/mergetree.md#table_engine-mergetree-ttl) 执行的后台旧数据删除操作: -即使表不存在或表不是 MergeTree 引擎表,也会返回 `Ok.`。如果数据库不存在则返回错误: +提供根据 [TTL 表达式](../../engines/table-engines/mergetree-family/mergetree.md#table_engine-mergetree-ttl) 停止对 MergeTree 系列表中旧数据进行后台删除的功能: +即使表不存在或表不是 MergeTree 引擎表也会返回 `Ok.`。当数据库不存在时返回错误: ```sql SYSTEM STOP TTL MERGES [ON CLUSTER cluster_name] [[db.]merge_tree_family_table_name] ``` + ### SYSTEM START TTL MERGES {#start-ttl-merges} -为 MergeTree 系列表提供一种方式,可根据 [TTL expression](../../engines/table-engines/mergetree-family/mergetree.md#table_engine-mergetree-ttl) 启动后台任务以删除旧数据。 -即使表不存在也返回 `Ok.`。当数据库不存在时返回错误。 +用于为 MergeTree 系列表根据 [TTL 表达式](../../engines/table-engines/mergetree-family/mergetree.md#table_engine-mergetree-ttl) 启动后台旧数据删除操作: +即使表不存在也会返回 `Ok.`。当数据库不存在时则返回错误: ```sql SYSTEM START TTL MERGES [ON CLUSTER cluster_name] [[db.]merge_tree_family_table_name] ``` + ### SYSTEM STOP MOVES {#stop-moves} -用于停止 MergeTree 系列表中依据 [带有 TO VOLUME 或 TO DISK 子句的表级生存时间 (TTL) 表达式](../../engines/table-engines/mergetree-family/mergetree.md#mergetree-table-ttl) 执行的后台数据移动: +允许为 MergeTree 家族中的表停止根据[带有 TO VOLUME 或 TO DISK 子句的 TTL 表达式](../../engines/table-engines/mergetree-family/mergetree.md#mergetree-table-ttl)执行的后台数据移动: 即使表不存在也返回 `Ok.`。当数据库不存在时返回错误: ```sql SYSTEM STOP MOVES [ON CLUSTER cluster_name] [[db.]merge_tree_family_table_name] ``` + ### SYSTEM START MOVES {#start-moves} -提供根据 [带有 TO VOLUME 和 TO DISK 子句的表的生存时间 (TTL) 表达式](../../engines/table-engines/mergetree-family/mergetree.md#mergetree-table-ttl),为 MergeTree 家族中的表启动后台数据移动的功能。 -即使表不存在也会返回 `Ok.`。当数据库不存在时会返回错误: +用于为 MergeTree 系列中的表,根据 [带有 TO VOLUME 和 TO DISK 子句的生存时间 (TTL) 表达式](../../engines/table-engines/mergetree-family/mergetree.md#mergetree-table-ttl) 启动后台数据移动操作: +即使表不存在也会返回 `Ok.`。当数据库不存在时则返回错误: ```sql SYSTEM START MOVES [ON CLUSTER cluster_name] [[db.]merge_tree_family_table_name] ``` + ### SYSTEM SYSTEM UNFREEZE {#query_language-system-unfreeze} -从所有磁盘中清除具有指定名称的冻结备份。有关对单个分区片段解除冻结的更多信息,请参阅 [ALTER TABLE table_name UNFREEZE WITH NAME ](/sql-reference/statements/alter/partition#unfreeze-partition) +从所有磁盘中清除具有指定名称的冻结备份。关于解冻单个分区片段的更多信息,请参阅 [ALTER TABLE table_name UNFREEZE WITH NAME ](/sql-reference/statements/alter/partition#unfreeze-partition) ```sql SYSTEM UNFREEZE WITH NAME ``` + ### SYSTEM WAIT LOADING PARTS {#wait-loading-parts} -等待表的所有异步加载数据分区(过时的数据分区)完成加载。 +等待直到表中所有正在异步加载的数据分区片段(过时的数据分区片段)都加载完成。 ```sql SYSTEM WAIT LOADING PARTS [ON CLUSTER cluster_name] [db.]merge_tree_family_table_name ``` + ## 管理 ReplicatedMergeTree 表 {#managing-replicatedmergetree-tables} -ClickHouse 可以管理 [ReplicatedMergeTree](/engines/table-engines/mergetree-family/replication) 表中与后台复制相关的进程。 +ClickHouse 可以管理 [ReplicatedMergeTree](/engines/table-engines/mergetree-family/replication) 表中与复制相关的后台进程。 ### SYSTEM STOP FETCHES {#stop-fetches} @@ -464,80 +490,88 @@ SYSTEM STOP FETCHES [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family -提供一种机制,用于为 `ReplicatedMergeTree` 系列表中已插入的分区片段启动后台抓取操作: -无论表引擎类型如何,即使表或数据库不存在,该语句也始终返回 `Ok.`。 +用于为 `ReplicatedMergeTree` 系列表中已插入的分区片段启动后台拉取操作: +无论表引擎类型如何,即使表或数据库不存在,也始终返回 `Ok.`。 ```sql SYSTEM START FETCHES [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name] ``` + ### SYSTEM STOP REPLICATED SENDS {#stop-replicated-sends} -可用于停止在集群中,将 `ReplicatedMergeTree` 系列表中新插入的分区片段后台发送到其他副本的操作: +提供一种机制,用于在集群中停止将新插入的分区片段以后台方式发送到其他副本,适用于 `ReplicatedMergeTree` 系列表: ```sql SYSTEM STOP REPLICATED SENDS [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name] ``` + ### SYSTEM START REPLICATED SENDS {#start-replicated-sends} -提供启动向集群中其他副本发送 `ReplicatedMergeTree` 系列表中新插入数据分片的后台发送功能: +用于在集群中为 `ReplicatedMergeTree` 系列表的新插入分区片段启动到其他副本的后台发送任务: ```sql SYSTEM START REPLICATED SENDS [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name] ``` + ### SYSTEM STOP REPLICATION QUEUES {#stop-replication-queues} -用于停止存储在 ZooKeeper 中、针对 `ReplicatedMergeTree` 家族表的复制队列中的后台拉取任务。可能的后台任务类型包括:合并、拉取、变更操作,以及带有 ON CLUSTER 子句的 DDL 语句: +用于停止针对 `ReplicatedMergeTree` 系列表、存储在 ZooKeeper 中的复制队列里的后台拉取任务。可能的后台任务类型包括:合并(merges)、拉取(fetches)、变更(mutations)、带有 ON CLUSTER 子句的 DDL 语句: ```sql SYSTEM STOP REPLICATION QUEUES [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name] ``` + ### SYSTEM START REPLICATION QUEUES {#start-replication-queues} -用于启动 `ReplicatedMergeTree` 系列表在 ZooKeeper 中复制队列里的后台任务。可启动的后台任务类型包括:合并、拉取、变更、带有 ON CLUSTER 子句的 DDL 语句: +用于从 `ReplicatedMergeTree` 系列表在 Zookeeper 中存储的复制队列中启动后台拉取任务。可能的后台任务类型包括:合并、拉取、变更、带有 ON CLUSTER 子句的 DDL 语句: ```sql SYSTEM START REPLICATION QUEUES [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name] ``` + ### SYSTEM STOP PULLING REPLICATION LOG {#stop-pulling-replication-log} -停止在 `ReplicatedMergeTree` 表中将复制日志中的新记录加载到复制队列中。 +停止从复制日志向 `ReplicatedMergeTree` 表的复制队列加载新的记录。 ```sql SYSTEM STOP PULLING REPLICATION LOG [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name] ``` + ### SYSTEM START PULLING REPLICATION LOG {#start-pulling-replication-log} -取消 `SYSTEM STOP PULLING REPLICATION LOG`。 +撤销 `SYSTEM STOP PULLING REPLICATION LOG` 的效果。 ```sql SYSTEM START PULLING REPLICATION LOG [ON CLUSTER cluster_name] [[db.]replicated_merge_tree_family_table_name] ``` + ### SYSTEM SYNC REPLICA {#sync-replica} -等待 `ReplicatedMergeTree` 表与集群中的其他副本同步,但不超过 `receive_timeout` 秒。 +该语句会等待 `ReplicatedMergeTree` 表与集群中的其他副本完成同步,但等待时间不会超过 `receive_timeout` 秒。 ```sql SYSTEM SYNC REPLICA [ON CLUSTER cluster_name] [db.]replicated_merge_tree_family_table_name [IF EXISTS] [STRICT | LIGHTWEIGHT [FROM 'srcReplica1'[, 'srcReplica2'[, ...]]] | PULL] ``` -运行此语句后,`[db.]replicated_merge_tree_family_table_name` 会将通用复制日志中的命令拉取到自身的复制队列中,然后查询会一直等待,直到该副本处理完所有已拉取的命令。支持以下修饰符: +运行此语句后,`[db.]replicated_merge_tree_family_table_name` 会将公共复制日志中的命令拉取到其自身的复制队列中,然后查询会一直等待,直到该副本处理完所有已拉取的命令。支持以下修饰符: -* 使用 `IF EXISTS`(自 25.6 起可用)时,如果表不存在,查询不会抛出错误。这在向集群中添加新副本时很有用:即使该副本已在集群配置中,但仍处于创建和同步表的过程中。 -* 如果指定了 `STRICT` 修饰符,则查询会等待复制队列变为空。如果复制队列中持续有新条目出现,`STRICT` 版本可能永远不会成功完成。 +* 使用 `IF EXISTS`(自 25.6 起可用)时,如果表不存在,查询不会抛出错误。这在向集群中添加新副本时非常有用,即当该副本已经是集群配置的一部分,但仍在创建和同步表的过程中。 +* 如果指定了 `STRICT` 修饰符,则查询会等待复制队列变为空。如果复制队列中持续有新条目出现,`STRICT` 版本可能永远不会成功。 * 如果指定了 `LIGHTWEIGHT` 修饰符,则查询只会等待 `GET_PART`、`ATTACH_PART`、`DROP_RANGE`、`REPLACE_RANGE` 和 `DROP_PART` 条目被处理。 - 此外,LIGHTWEIGHT 修饰符支持可选的 FROM 'srcReplicas' 子句,其中 'srcReplicas' 是以逗号分隔的源副本名称列表。该扩展通过仅关注来自指定源副本的复制任务,实现更有针对性的同步。 -* 如果指定了 `PULL` 修饰符,则查询会从 ZooKeeper 中拉取新的复制队列条目,但不会等待这些条目被处理。 + 此外,LIGHTWEIGHT 修饰符支持可选的 FROM 'srcReplicas' 子句,其中 'srcReplicas' 是以逗号分隔的源副本名称列表。此扩展通过仅关注来自指定源副本的复制任务,实现更有针对性的同步。 +* 如果指定了 `PULL` 修饰符,则查询会从 ZooKeeper 中拉取新的复制队列条目,但不会等待处理这些条目。 + ### SYNC DATABASE REPLICA {#sync-database-replica} -等待直到指定的[复制数据库](/engines/database-engines/replicated)将该数据库 DDL 队列中的所有模式变更全部应用完成。 +等待直到指定的 [replicated database](/engines/database-engines/replicated)从该数据库的 DDL 队列中应用完所有 schema 更改。 **语法** @@ -545,32 +579,34 @@ SYSTEM SYNC REPLICA [ON CLUSTER cluster_name] [db.]replicated_merge_tree_family_ SYSTEM SYNC DATABASE REPLICA replicated_database_name; ``` + ### SYSTEM RESTART REPLICA {#restart-replica} -允许重新初始化 `ReplicatedMergeTree` 表的 ZooKeeper 会话状态,会将当前状态与作为真实数据源的 ZooKeeper 进行比较,并在需要时向 ZooKeeper 队列中添加任务。 +用于为 `ReplicatedMergeTree` 表重新初始化 ZooKeeper 会话状态,会将当前状态与以 ZooKeeper 为权威数据源的状态进行比较,并在需要时向 ZooKeeper 队列中添加任务。 基于 ZooKeeper 数据初始化复制队列的过程与执行 `ATTACH TABLE` 语句时相同。在短时间内,该表将无法执行任何操作。 ```sql SYSTEM RESTART REPLICA [ON CLUSTER cluster_name] [db.]replicated_merge_tree_family_table_name ``` + ### SYSTEM RESTORE REPLICA {#restore-replica} -在数据[可能]仍然存在但 Zookeeper 元数据丢失的情况下恢复副本。 +在数据可能仍然存在但 ZooKeeper 元数据丢失时恢复一个副本。 -仅适用于只读的 `ReplicatedMergeTree` 表。 +仅适用于只读状态的 `ReplicatedMergeTree` 表。 -可以在以下情况之后执行该查询: +可以在以下情况下执行该查询: -- ZooKeeper 根路径 `/` 丢失。 +- ZooKeeper 根 `/` 丢失。 - 副本路径 `/replicas` 丢失。 - 单个副本路径 `/replicas/replica_name/` 丢失。 -副本会挂载本地找到的分区片段,并将其相关信息发送到 Zookeeper。 -在元数据丢失前已存在于副本上的分区片段,如果尚未过期,则不会从其他副本重新获取(因此恢复副本并不意味着需要通过网络重新下载所有数据)。 +副本会在本地附加找到的分区片段,并将其信息发送到 ZooKeeper。 +在元数据丢失前已经存在于该副本上的分区片段,如果没有过期,则不会从其他副本重新获取(因此恢复副本并不意味着需要通过网络重新下载所有数据)。 :::note -所有状态的数据分片都会被移动到 `detached/` 目录中。数据丢失前处于活动状态(已提交)的分区片段会被重新挂载。 +所有状态的分区片段都会被移动到 `detached/` 目录中。数据丢失前处于活动状态(已提交)的分区片段会被重新附加。 ::: ### SYSTEM RESTORE DATABASE REPLICA {#restore-database-replica} @@ -635,7 +671,7 @@ SYSTEM RESTORE REPLICA test ON CLUSTER cluster; ### SYSTEM RESTART REPLICAS {#restart-replicas} -可用于为所有 `ReplicatedMergeTree` 表重新初始化 ZooKeeper 会话状态,会将当前状态与作为权威来源的 ZooKeeper 状态进行比较,并在需要时向 ZooKeeper 队列中添加任务。 +用于为所有 `ReplicatedMergeTree` 表重新初始化 Zookeeper 会话状态,会将当前状态与作为权威来源的 Zookeeper 状态进行比较,并在需要时向 Zookeeper 队列添加任务 ### SYSTEM DROP FILESYSTEM CACHE {#drop-filesystem-cache} @@ -648,18 +684,19 @@ SYSTEM DROP FILESYSTEM CACHE [ON CLUSTER cluster_name] ### SYSTEM SYNC FILE CACHE {#sync-file-cache} :::note -此操作开销较大,存在被误用的风险。 +其代价较高,并且存在被误用的风险。 ::: -将执行 sync 系统调用。 +这会执行 sync 系统调用。 ```sql SYSTEM SYNC FILE CACHE [ON CLUSTER cluster_name] ``` + ### SYSTEM LOAD PRIMARY KEY {#load-primary-key} -加载指定表或所有表的主键。 +为指定表或所有表加载主键数据。 ```sql SYSTEM LOAD PRIMARY KEY [db.]name @@ -669,9 +706,10 @@ SYSTEM LOAD PRIMARY KEY [db.]name SYSTEM LOAD PRIMARY KEY ``` + ### SYSTEM UNLOAD PRIMARY KEY {#unload-primary-key} -取消为指定表或所有表加载的主键。 +为指定的表或所有表卸载主键缓存。 ```sql SYSTEM UNLOAD PRIMARY KEY [db.]name @@ -681,11 +719,12 @@ SYSTEM UNLOAD PRIMARY KEY [db.]name SYSTEM UNLOAD PRIMARY KEY ``` -## 管理可刷新 materialized view {#refreshable-materialized-views} -用于控制[可刷新 materialized view](../../sql-reference/statements/create/view.md#refreshable-materialized-view)所执行后台任务的命令。 +## 管理可刷新materialized view {#refreshable-materialized-views} -在使用过程中,请留意 [`system.view_refreshes`](../../operations/system-tables/view_refreshes.md)。 +用于控制[可刷新materialized view](../../sql-reference/statements/create/view.md#refreshable-materialized-view)后台任务的命令。 + +在使用它们时,请关注[`system.view_refreshes`](../../operations/system-tables/view_refreshes.md)。 ### SYSTEM REFRESH VIEW {#refresh-view} @@ -697,7 +736,7 @@ SYSTEM REFRESH VIEW [db.]name ### SYSTEM WAIT VIEW {#wait-view} -等待当前正在执行的刷新操作完成。如果刷新失败,将抛出异常。如果当前没有刷新在运行,则立即结束;如果上一次刷新失败,则抛出异常。 +等待当前正在进行的刷新操作完成。如果刷新失败,则抛出异常。如果当前没有刷新在运行,则立即返回;如果上一次刷新失败,同样会抛出异常。 ### SYSTEM STOP [REPLICATED] VIEW, STOP VIEWS {#stop-view-stop-views} @@ -705,6 +744,11 @@ SYSTEM REFRESH VIEW [db.]name 如果 VIEW 位于 Replicated 或 Shared 数据库中,`STOP VIEW` 只影响当前副本,而 `STOP REPLICATED VIEW` 会影响所有副本。 +:::note +停止状态在服务器重启后不会保留。重启后,这些 VIEW 会恢复其已配置的刷新计划。 +在 Replicated 或 Shared 数据库中,`SYSTEM STOP VIEW` 只影响当前副本。使用 `SYSTEM STOP REPLICATED VIEW` 可停止所有副本上的刷新。 +::: + ```sql SYSTEM STOP VIEW [db.]name ``` @@ -713,11 +757,12 @@ SYSTEM STOP VIEW [db.]name SYSTEM STOP VIEWS ``` + ### SYSTEM START [REPLICATED] VIEW, START VIEWS {#start-view-start-views} -为指定的 VIEW 或所有可刷新的 VIEW 启用周期性刷新,但不会触发立即刷新。 +为指定的 VIEW 或所有可刷新 VIEW 启用定期刷新。不会立即触发刷新。 -如果 VIEW 位于 Replicated 或 Shared 数据库中,`START VIEW` 会撤销 `STOP VIEW` 的效果,`START REPLICATED VIEW` 会撤销 `STOP REPLICATED VIEW` 的效果。 +如果该 VIEW 位于 Replicated 或 Shared 数据库中,`START VIEW` 会撤销 `STOP VIEW` 的效果,而 `START REPLICATED VIEW` 会撤销 `STOP REPLICATED VIEW` 的效果。 ```sql SYSTEM START VIEW [db.]name @@ -727,21 +772,23 @@ SYSTEM START VIEW [db.]name SYSTEM START VIEWS ``` + ### SYSTEM CANCEL VIEW {#cancel-view} -如果当前副本上的指定 VIEW 正在刷新,则中断并取消刷新操作;否则不执行任何操作。 +如果当前副本上的指定 VIEW 正在刷新,则中断并取消该刷新;否则,不执行任何操作。 ```sql SYSTEM CANCEL VIEW [db.]name ``` + ### SYSTEM WAIT VIEW {#system-wait-view} -等待正在运行的刷新完成。如果没有刷新正在运行,则立即返回。如果最近一次刷新尝试失败,则报告错误。 +等待正在运行的刷新完成。如果当前没有刷新在运行,则立即返回。如果最近一次刷新尝试失败,则会报错。 -可在创建新的可刷新materialized view(未使用 EMPTY 关键字)之后立即使用,以等待初始刷新完成。 +可以在创建新的可刷新materialized view(未使用 `EMPTY` 关键字)之后立刻使用,以等待初始刷新完成。 -如果该 VIEW 位于 Replicated 或 Shared 数据库中,并且刷新在另一副本上运行,则会等待该刷新完成。 +如果该 VIEW 位于 Replicated 或 Shared 数据库中,并且刷新正在另一副本上运行,则会等待该刷新完成。 ```sql SYSTEM WAIT VIEW [db.]name diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2017.md b/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2017.md index 7c25ac55cbf..fcece9490e3 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2017.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2017.md @@ -1,6 +1,6 @@ --- slug: /whats-new/changelog/2017 -sidebar_position: 10 +sidebar_position: -2017 sidebar_label: '2017' title: '2017 更新日志' description: '2017 年更新日志' @@ -70,9 +70,7 @@ keywords: ['ClickHouse 2017', 'changelog 2017', 'release notes', 'version histor - 在原生协议中支持 TLS(要启用,请在 `config.xml` 中设置 `tcp_ssl_port`)。 -#### 错误修复: {#bug-fixes-1} - - +#### Bug Fixes: {#bug-fixes-1} - 现在,对 replicated 表执行 `ALTER` 会尽可能尽早开始运行。 - 修复了在设置 `preferred_block_size_bytes=0` 读取数据时发生的崩溃。 @@ -123,9 +121,7 @@ keywords: ['ClickHouse 2017', 'changelog 2017', 'release notes', 'version histor - 可以在配置文件中设置 `umask`。 - 提升了包含 `DISTINCT` 的查询性能。 -#### Bug Fixes: {#bug-fixes-3} - - +#### 错误修复: {#bug-fixes-3} - 改进了在 ZooKeeper 中删除旧节点的流程。之前在非常频繁插入的情况下,旧节点有时不会被删除,这会导致服务器在关闭时变慢等问题。 - 修复了在与 ZooKeeper 建立连接时选择主机的随机化问题。 @@ -151,22 +147,20 @@ keywords: ['ClickHouse 2017', 'changelog 2017', 'release notes', 'version histor ### ClickHouse Release 1.1.54284, 2017-08-29 {#clickhouse-release-1-1-54284-2017-08-29} -- 这是针对之前 1.1.54282 版本的错误修复版本。它修复了 ZooKeeper 中 parts 目录中的泄漏问题。 +- 这是针对之前 1.1.54282 版本的修复发布。修复了 ZooKeeper 中分区片段目录的泄漏问题。 ### ClickHouse Release 1.1.54282, 2017-08-23 {#clickhouse-release-1-1-54282-2017-08-23} 此版本包含对之前 1.1.54276 版本的错误修复: - 修复了向 Distributed 表插入数据时出现的 `DB::Exception: Assertion violation: !_path.empty()` 错误。 -- 修复了在以 RowBinary 格式插入数据时,如果输入数据以 ';' 开头导致的解析问题。 -- 修复了某些聚合函数(例如 `groupArray()`)在运行时编译时出错的问题。 +- 修复了在以 RowBinary 格式插入数据时,如果输入数据以 ';' 开头时的解析问题。 +- 修复了某些聚合函数(例如 `groupArray()`)在运行时编译过程中出错的问题。 ### ClickHouse Release 1.1.54276, 2017-08-16 {#clickhouse-release-1-1-54276-2017-08-16} #### 新功能: {#new-features-4} - - - 为 SELECT 查询新增可选的 WITH 部分。示例查询:`WITH 1+1 AS a SELECT a, a*a` - 可以在 Distributed 表中以同步方式执行 INSERT:仅在所有分片上的所有数据都保存完成后才返回 OK。通过设置 insert_distributed_sync=1 启用。 - 新增 UUID 数据类型,用于处理 16 字节标识符。 @@ -207,9 +201,7 @@ keywords: ['ClickHouse 2017', 'changelog 2017', 'release notes', 'version histor - 现在可以通过文件系统中的 socket 连接到 MySQL。 - system.parts 表新增一列,用于存储标记大小(以字节为单位)的信息。 -#### Bug 修复: {#bug-fixes-4} - - +#### Bug 修复:{#bug-fixes-4} - 现在,对于在 `_table` 字段上带条件的 SELECT 查询,基于 Merge 表的分布式表可以正确工作。 - 修复了在 ReplicatedMergeTree 中检查数据部分时可能出现的罕见竞态条件。 @@ -259,8 +251,8 @@ keywords: ['ClickHouse 2017', 'changelog 2017', 'release notes', 'version histor #### 次要变更:{#minor-changes} -- 现在在警报被触发后,日志会打印完整的堆栈跟踪。 -- 放宽了启动时对损坏/多余数据部分数量的校验(之前误报太多)。 +- 现在在警报被触发后,日志会打印完整的堆栈跟踪信息。 +- 放宽了启动时对损坏/多余数据部分数量的校验(此前误报过多)。 #### Bug 修复:{#bug-fixes-5} @@ -276,4 +268,4 @@ keywords: ['ClickHouse 2017', 'changelog 2017', 'release notes', 'version histor - 修复了仅由常量值组成的 ORDER BY 子查询。 - 之前,在 DROP TABLE 失败后,Replicated 表可能会保持在无效状态。 - 对结果为空的标量子查询的别名不再丢失。 -- 现在,即使 .so 文件被损坏,使用编译的查询也不会因错误而失败。 +- 现在,即使 .so 文件被损坏,使用编译的查询也不会因错误而失败。 \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2018.md b/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2018.md index 52652f9cf78..90bae7233f5 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2018.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2018.md @@ -1,6 +1,6 @@ --- slug: /whats-new/changelog/2018 -sidebar_position: 9 +sidebar_position: -2018 sidebar_label: '2018' title: '2018 年更新日志' description: '2018 年更新日志' @@ -8,8 +8,6 @@ doc_type: 'changelog' keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史', '历史版本'] --- - - ## ClickHouse 版本 18.16 {#clickhouse-release-18-16} ### ClickHouse 版本 18.16.1,2018-12-21 {#clickhouse-release-18-16-1-2018-12-21} @@ -31,8 +29,6 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 #### 新功能:{#new-features} - - - 在以半结构化输入格式(`JSONEachRow`、`TSKV`)加载数据时,会为缺失字段计算 `DEFAULT` 表达式。该功能可通过 `insert_sample_with_metadata` 设置启用。 [#3555](https://github.com/ClickHouse/ClickHouse/pull/3555) - `ALTER TABLE` 查询现在支持 `MODIFY ORDER BY` 操作,用于在添加或删除表列时修改排序键。这对 `MergeTree` 系列中在合并时基于该排序键执行附加任务的表非常有用,例如 `SummingMergeTree`、`AggregatingMergeTree` 等。 [#3581](https://github.com/ClickHouse/ClickHouse/pull/3581) [#3755](https://github.com/ClickHouse/ClickHouse/pull/3755) - 对于 `MergeTree` 系列表,现在可以分别指定不同的排序键(`ORDER BY`)和索引(`PRIMARY KEY`)。排序键可以比索引更长。 [#3581](https://github.com/ClickHouse/ClickHouse/pull/3581) @@ -52,8 +48,6 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 #### Bug 修复:{#bug-fixes-1} - - * 针对 `LowCardinality` 数据类型的修复和性能改进。使用 `LowCardinality(Nullable(...))` 执行 `GROUP BY`。获取 `extremes` 的值。处理高阶函数。`LEFT ARRAY JOIN`。分布式 `GROUP BY`。返回 `Array` 的函数。执行 `ORDER BY`。向 `Distributed` 表写入数据(nicelulu)。为实现 `Native` 协议的旧客户端执行的 `INSERT` 查询提供向后兼容性。在 `JOIN` 中支持 `LowCardinality`。在单一数据流下工作的性能改进。 [#3823](https://github.com/ClickHouse/ClickHouse/pull/3823) [#3803](https://github.com/ClickHouse/ClickHouse/pull/3803) [#3799](https://github.com/ClickHouse/ClickHouse/pull/3799) [#3769](https://github.com/ClickHouse/ClickHouse/pull/3769) [#3744](https://github.com/ClickHouse/ClickHouse/pull/3744) [#3681](https://github.com/ClickHouse/ClickHouse/pull/3681) [#3651](https://github.com/ClickHouse/ClickHouse/pull/3651) [#3649](https://github.com/ClickHouse/ClickHouse/pull/3649) [#3641](https://github.com/ClickHouse/ClickHouse/pull/3641) [#3632](https://github.com/ClickHouse/ClickHouse/pull/3632) [#3568](https://github.com/ClickHouse/ClickHouse/pull/3568) [#3523](https://github.com/ClickHouse/ClickHouse/pull/3523) [#3518](https://github.com/ClickHouse/ClickHouse/pull/3518) * 修复了 `select_sequential_consistency` 选项的行为。此前在启用该设置时,开始向新分区写入数据后,有时会返回不完整的结果。[#2863](https://github.com/ClickHouse/ClickHouse/pull/2863) * 在执行带有 `ON CLUSTER` 的 DDL 查询以及 `ALTER UPDATE/DELETE` 时,现在可以正确指定数据库。[#3772](https://github.com/ClickHouse/ClickHouse/pull/3772) [#3460](https://github.com/ClickHouse/ClickHouse/pull/3460) @@ -79,12 +73,8 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 * 修复了在从 `Buffer` 表读取数据的同时对目标表执行 `ALTER` 或 `DROP` 操作时的竞态条件。[#3719](https://github.com/ClickHouse/ClickHouse/pull/3719) * 修复了在超出 `max_temporary_non_const_columns` 限制时发生的段错误。 [#3788](https://github.com/ClickHouse/ClickHouse/pull/3788) - - #### 改进内容: {#improvements-1} - - * 服务器不会将处理后的配置文件写入 `/etc/clickhouse-server/` 目录,而是将其保存在 `path` 指定路径下的 `preprocessed_configs` 目录中。这意味着 `/etc/clickhouse-server/` 目录对 `clickhouse` 用户没有写入权限,从而提高了安全性。 [#2443](https://github.com/ClickHouse/ClickHouse/pull/2443) * `min_merge_bytes_to_use_direct_io` 选项默认设置为 10 GiB。对 MergeTree 系列表中生成大块数据部分的合并操作将以 `O_DIRECT` 模式执行,从而避免大量页缓存被淘汰。 [#3504](https://github.com/ClickHouse/ClickHouse/pull/3504) * 在数据表数量非常多时,加快服务器启动速度。[#3398](https://github.com/ClickHouse/ClickHouse/pull/3398) @@ -115,8 +105,6 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 * 修复了 `rowNumberInAllBlocks` 等有状态函数的行为。它们之前由于从查询分析阶段就开始计数,导致输出结果比预期大 1。 [Amos Bird](https://github.com/ClickHouse/ClickHouse/pull/3729) * 如果无法删除 `force_restore_data` 文件,则会显示一条错误信息。[Amos Bird](https://github.com/ClickHouse/ClickHouse/pull/3794) - - #### 构建改进: {#build-improvements-1} - 更新了 `jemalloc` 库,修复了一个潜在的内存泄漏问题。[Amos Bird](https://github.com/ClickHouse/ClickHouse/pull/3557) @@ -132,8 +120,6 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 - 移除了将 `Date` 类型与数字进行比较的能力。必须使用显式类型转换,例如应使用 `= toDate(17883)` 来代替 `toDate('2018-12-18') = 17883`。[#3687](https://github.com/ClickHouse/ClickHouse/pull/3687) - - ## ClickHouse 版本 18.14 {#clickhouse-release-18-14} ### ClickHouse 版本 18.14.19,2018-12-19 {#clickhouse-release-18-14-19-2018-12-19} @@ -179,9 +165,7 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 ### ClickHouse 版本 18.14.14,2018-11-20 {#clickhouse-release-18-14-14-2018-11-20} -#### Bug 修复:{#bug-fixes-6} - - +#### 错误修复: {#bug-fixes-6} - 修复了在集群配置为安全(设置 `` 标志)时的 `ON CLUSTER` 查询问题。[#3599](https://github.com/ClickHouse/ClickHouse/pull/3599) @@ -205,15 +189,15 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 #### 构建改进: {#build-improvements-3} -- 对简化 Arcadia 构建进行了改进。[#3475](https://github.com/ClickHouse/ClickHouse/pull/3475), [#3535](https://github.com/ClickHouse/ClickHouse/pull/3535) +- 为简化 Arcadia 构建所做的改进。[#3475](https://github.com/ClickHouse/ClickHouse/pull/3475), [#3535](https://github.com/ClickHouse/ClickHouse/pull/3535) ### ClickHouse Release 18.14.12,2018-11-02 {#clickhouse-release-18-14-12-2018-11-02} #### 错误修复: {#bug-fixes-8} - 修复了在连接两个未命名子查询时的崩溃问题。[#3505](https://github.com/ClickHouse/ClickHouse/pull/3505) -- 修复了在查询外部数据库时生成不正确查询语句(带空 `WHERE` 子句)的问题。[hotid](https://github.com/ClickHouse/ClickHouse/pull/3477) -- 修复了在 ODBC 字典中使用了不正确超时值的问题。[Marek Vavruša](https://github.com/ClickHouse/ClickHouse/pull/3511) +- 修复了在查询外部数据库时生成不正确查询(带空 `WHERE` 子句)的问题。[hotid](https://github.com/ClickHouse/ClickHouse/pull/3477) +- 修复了在 ODBC 字典中使用错误超时值的问题。[Marek Vavruša](https://github.com/ClickHouse/ClickHouse/pull/3511) ### ClickHouse Release 18.14.11,2018-10-29 {#clickhouse-release-18-14-11-2018-10-29} @@ -233,8 +217,6 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 #### 新功能: {#new-features-1} - - - 为 `GROUP BY` 子句新增 `WITH CUBE` 修饰符(也可使用替代语法 `GROUP BY CUBE(...)`)。[#3172](https://github.com/ClickHouse/ClickHouse/pull/3172) - 新增 `formatDateTime` 函数。[Alexandr Krasheninnikov](https://github.com/ClickHouse/ClickHouse/pull/2770) - 新增 `JDBC` 表引擎和 `jdbc` 表函数(需要安装 clickhouse-jdbc-bridge)。[Alexandr Krasheninnikov](https://github.com/ClickHouse/ClickHouse/pull/3210) @@ -253,8 +235,6 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 #### 改进: {#improvements-2} - - * 显著降低了包含 `ORDER BY` 和 `LIMIT` 的查询的内存占用。请参阅 `max_bytes_before_remerge_sort` 设置。[#3205](https://github.com/ClickHouse/ClickHouse/pull/3205) * 如果未指定 `JOIN` 类型(如 `LEFT`、`INNER` 等),则默认使用 `INNER JOIN`。 [#3147](https://github.com/ClickHouse/ClickHouse/pull/3147) * 限定星号(如 `t1.*`)在包含 `JOIN` 的查询中可以正确工作。[Winter Zhang](https://github.com/ClickHouse/ClickHouse/pull/3202) @@ -284,12 +264,8 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 * 在从 `MergeTree` 表读取数据时,减少了对 `open` 和 `close` 系统调用的次数。[#3283](https://github.com/ClickHouse/ClickHouse/pull/3283) * `TRUNCATE TABLE` 查询可以在任意副本上执行(查询会被转发到 leader 副本)。[Kirill Shvakov](https://github.com/ClickHouse/ClickHouse/pull/3375) - - #### 缺陷修复:{#bug-fixes-10} - - * 修复了用于 `range_hashed` 字典的 `Dictionary` 表中的问题。该错误出现在 18.12.17 版本中。[#1702](https://github.com/ClickHouse/ClickHouse/pull/1702) * 修复了在加载 `range_hashed` 字典时出现的错误(错误信息为 `Unsupported type Nullable (...)`)。该错误出现在 18.12.17 版本中。[#3362](https://github.com/ClickHouse/ClickHouse/pull/3362) * 修复了 `pointInPolygon` 函数中的错误,该错误是由于在顶点数量众多且彼此非常接近的多边形上计算时产生的不精确结果累积所致。 [#3331](https://github.com/ClickHouse/ClickHouse/pull/3331) [#3341](https://github.com/ClickHouse/ClickHouse/pull/3341) @@ -324,14 +300,10 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 * 修复了在优化过程中将由一系列相等性判断构成的 AND 链替换为对应的 IN 表达式后,在极少数情况下可能发生的段错误问题。[liuyimin-bytedance](https://github.com/ClickHouse/ClickHouse/pull/3339) * 对 `clickhouse-benchmark` 进行了小幅修正:此前不会向服务器发送客户端信息;现在在关闭时以及用于限制迭代次数时,可以更精确地统计已执行查询的数量。[#3351](https://github.com/ClickHouse/ClickHouse/pull/3351) [#3352](https://github.com/ClickHouse/ClickHouse/pull/3352) - - #### 不向后兼容的更改: {#backward-incompatible-changes-1} - 移除了 `allow_experimental_decimal_type` 选项。`Decimal` 数据类型现在可默认使用。[#3329](https://github.com/ClickHouse/ClickHouse/pull/3329) - - ## ClickHouse 版本 18.12 {#clickhouse-release-18-12} ### ClickHouse 版本 18.12.17,2018-09-16 {#clickhouse-release-18-12-17-2018-09-16} @@ -353,7 +325,7 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 #### 向后不兼容的变更:{#backward-incompatible-changes-2} -- `enable_optimize_predicate_expression` 选项现在默认启用(这相当乐观)。如果出现与搜索列名相关的查询分析错误,请将 `enable_optimize_predicate_expression` 设为 0。 [Winter Zhang](https://github.com/ClickHouse/ClickHouse/pull/3107) +- `enable_optimize_predicate_expression` 选项现在默认启用(这有些过于乐观)。如果出现与搜索列名相关的查询分析错误,请将 `enable_optimize_predicate_expression` 设为 0。 [Winter Zhang](https://github.com/ClickHouse/ClickHouse/pull/3107) ### ClickHouse 版本 18.12.14,2018-09-13 {#clickhouse-release-18-12-14-2018-09-13} @@ -369,9 +341,7 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 - 如果数据分片在变更期间保持不变,则不会被副本下载。 [#3103](https://github.com/ClickHouse/ClickHouse/pull/3103) - 使用 `clickhouse-client` 时,设置名称现在支持自动补全。 [#3106](https://github.com/ClickHouse/ClickHouse/pull/3106) -#### Bug 修复:{#bug-fixes-12} - - +#### 错误修复:{#bug-fixes-12} - 在插入时增加了对 `Nested` 类型字段中各数组大小的一致性检查。[#3118](https://github.com/ClickHouse/ClickHouse/pull/3118) - 修复了使用 `ODBC` 源和 `hashed` 存储更新外部字典时的错误。该错误出现在 18.12.13 版本中。 @@ -382,8 +352,6 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 #### 新功能:{#new-features-4} - - * 添加了 `DECIMAL(digits, scale)` 数据类型(`Decimal32(scale)`、`Decimal64(scale)`、`Decimal128(scale)`)。要启用该类型,请开启设置 `allow_experimental_decimal_type`。[#2846](https://github.com/ClickHouse/ClickHouse/pull/2846) [#2970](https://github.com/ClickHouse/ClickHouse/pull/2970) [#3008](https://github.com/ClickHouse/ClickHouse/pull/3008) [#3047](https://github.com/ClickHouse/ClickHouse/pull/3047) * 新增用于 `GROUP BY` 的 `WITH ROLLUP` 修饰符(另一种语法:`GROUP BY ROLLUP(...)`)。[#2948](https://github.com/ClickHouse/ClickHouse/pull/2948) * 在包含 JOIN 的查询中,星号(*)会按照 SQL 标准展开为所有表中的列列表。可以通过在用户配置级别将 `asterisk_left_columns_only` 设置为 1 来恢复先前的行为。[Winter Zhang](https://github.com/ClickHouse/ClickHouse/pull/2787) @@ -406,8 +374,6 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 * 现在,您可以使用加号运算符对聚合函数的状态进行相加(合并),并将聚合函数的状态乘以非负常数。[#3062](https://github.com/ClickHouse/ClickHouse/pull/3062) [#3034](https://github.com/ClickHouse/ClickHouse/pull/3034) * MergeTree 系列中的表现在包含虚拟列 `_partition_id`。 [#3089](https://github.com/ClickHouse/ClickHouse/pull/3089) - - #### 实验性特性:{#experimental-features-1} - 新增 `LowCardinality(T)` 数据类型。该数据类型会自动创建一个本地值字典,并允许在不解包该字典的情况下处理数据。[#2830](https://github.com/ClickHouse/ClickHouse/pull/2830) @@ -415,8 +381,6 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 #### 改进:{#improvements-4} - - * 修复了在存在遗弃副本时复制日志无限累积的问题。为滞后时间较长的副本新增了一种高效的恢复模式。 * 当执行包含多个聚合字段的 `GROUP BY` 操作时,如果其中一个字段为字符串而其他字段为固定长度类型,则提高了性能。 * 在使用 `PREWHERE` 以及将表达式隐式下推到 `PREWHERE` 时,性能得到了提升。 @@ -444,12 +408,8 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 * 在对 `ReplicatedMergeTree` 表定期运行清理线程时增加了随机性,以避免在 `ReplicatedMergeTree` 表数量非常多时出现周期性的负载峰值。 * 支持 `ATTACH TABLE ... ON CLUSTER` 查询语句。[#3025](https://github.com/ClickHouse/ClickHouse/pull/3025) - - #### 缺陷修复: {#bug-fixes-13} - - * 修复了 `Dictionary` 表中的一个问题(会抛出 `Size of offsets does not match size of column` 或 `Unknown compression method` 异常)。该问题存在于 18.10.3 版本中。[#2913](https://github.com/ClickHouse/ClickHouse/issues/2913) * 修复了在合并 `CollapsingMergeTree` 表时的一个错误:当某个数据分片为空(这些分片会在合并过程中,或在执行 `ALTER DELETE` 且所有数据被删除时产生),并且合并使用了 `vertical` 算法时会触发该错误。 [#3049](https://github.com/ClickHouse/ClickHouse/pull/3049) * 修复了在对 `Memory` 表执行 `DROP` 或 `TRUNCATE` 操作时,如果同时有 `SELECT` 查询,会触发的竞态问题,该问题可能导致服务器崩溃。此缺陷首次出现在版本 1.1.54388 中。[#3038](https://github.com/ClickHouse/ClickHouse/pull/3038) @@ -472,8 +432,6 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 * 修复了在 `SummingMergeTree` 中用于添加嵌套数据结构的错误代码。 * 在为聚合函数状态分配内存时,会正确考虑内存对齐,从而在实现聚合函数状态时可以使用需要对齐的操作。[chenxing-xc](https://github.com/ClickHouse/ClickHouse/pull/2808) - - #### 安全修复: {#security-fix} - 安全使用 ODBC 数据源。与 ODBC 驱动的交互通过独立的 `clickhouse-odbc-bridge` 进程进行。第三方 ODBC 驱动中的错误不再导致服务器稳定性问题或安全漏洞。[#2828](https://github.com/ClickHouse/ClickHouse/pull/2828) [#2879](https://github.com/ClickHouse/ClickHouse/pull/2879) [#2886](https://github.com/ClickHouse/ClickHouse/pull/2886) [#2893](https://github.com/ClickHouse/ClickHouse/pull/2893) [#2921](https://github.com/ClickHouse/ClickHouse/pull/2921) @@ -493,8 +451,6 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 - 调试构建时会使用 `jemalloc` 的调试选项。 - 用于与 ZooKeeper 交互的库接口被声明为抽象。[#2950](https://github.com/ClickHouse/ClickHouse/pull/2950) - - ## ClickHouse 版本 18.10 {#clickhouse-release-18-10} ### ClickHouse 版本 18.10.3,2018-08-13 {#clickhouse-release-18-10-3-2018-08-13} @@ -522,9 +478,7 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 - 添加了 `prefer_localhost_replica` 设置,用于禁用对本地副本的优先选择,并在无需进程间交互的情况下直接访问本地副本。 [#2832](https://github.com/ClickHouse/ClickHouse/pull/2832) - `quantileExact` 聚合函数在对空的 `Float32` 或 `Float64` 集合进行聚合时返回 `nan`。 [Sundy Li](https://github.com/ClickHouse/ClickHouse/pull/2855) -#### 错误修复:{#bug-fixes-14} - - +#### 缺陷修复: {#bug-fixes-14} - 移除了对 ODBC 连接字符串参数不必要的转义,这会导致无法建立连接。该错误出现在 18.6.0 版本中。 - 修复了复制队列中处理 `REPLACE PARTITION` 命令的逻辑。如果针对同一分区有两个 `REPLACE` 命令,先前的不正确逻辑可能会导致其中一个命令一直留在复制队列中而未被执行。 [#2814](https://github.com/ClickHouse/ClickHouse/pull/2814) @@ -533,7 +487,7 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 - 修复了在子查询中,如果其中一个 `SELECT` 查询包含重复列名,`UNION ALL` 查询会触发 `Block structure mismatch in UNION stream: different number of columns` 错误的问题。 [Winter Zhang](https://github.com/ClickHouse/ClickHouse/pull/2094) - 修复了在连接到 MySQL 服务器时,如果发生异常会导致内存泄漏的问题。 - 修复了在查询出错时 clickhouse-client 返回码不正确的问题。 -- 修复了包含 DISTINCT 的物化视图行为不正确的问题。 [#2795](https://github.com/ClickHouse/ClickHouse/issues/2795) +- 修复了包含 DISTINCT 的 materialized view 行为不正确的问题。 [#2795](https://github.com/ClickHouse/ClickHouse/issues/2795) #### 向后不兼容的更改 {#backward-incompatible-changes-4} @@ -547,8 +501,6 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 - 使用子模块中的 mariadb-connector-c。 [#2785](https://github.com/ClickHouse/ClickHouse/pull/2785) - 将依赖测试数据可用性的功能测试文件添加到仓库中(目前尚未包含测试数据本身)。 - - ## ClickHouse Release 18.6 {#clickhouse-release-18-6} ### ClickHouse Release 18.6.0, 2018-08-02 {#clickhouse-release-18-6-0-2018-08-02} @@ -564,8 +516,6 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 - 服务器会向客户端传递其版本的补丁版本号组件。关于补丁版本组件的数据可在 `system.processes` 和 `query_log` 中获取。[#2646](https://github.com/ClickHouse/ClickHouse/pull/2646) - - ## ClickHouse 版本 18.5 {#clickhouse-release-18-5} ### ClickHouse 版本 18.5.1,2018-07-31 {#clickhouse-release-18-5-1-2018-07-31} @@ -583,8 +533,6 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 - 修复了在启动副本时可能出现的一个错误 [#2759](https://github.com/ClickHouse/ClickHouse/pull/2759)。 - - ## ClickHouse 发布 18.4 {#clickhouse-release-18-4} ### ClickHouse 发布 18.4.0,2018-07-28 {#clickhouse-release-18-4-0-2018-07-28} @@ -614,8 +562,6 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 - `Kafka` 引擎的参数由 `Kafka(kafka_broker_list, kafka_topic_list, kafka_group_name, kafka_format[, kafka_schema, kafka_num_consumers])` 修改为 `Kafka(kafka_broker_list, kafka_topic_list, kafka_group_name, kafka_format[, kafka_row_delimiter, kafka_schema, kafka_num_consumers])`。如果你的表使用了 `kafka_schema` 或 `kafka_num_consumers` 参数,你必须手动编辑元数据文件 `path/metadata/database/table.sql`,并添加 `kafka_row_delimiter` 参数,其值设为 `''`。 - - ## ClickHouse 版本 18.1 {#clickhouse-release-18-1} ### ClickHouse 版本 18.1.0,2018-07-23 {#clickhouse-release-18-1-0-2018-07-23} @@ -650,8 +596,6 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 - 将包含数字零的字符串转换为 DateTime 不再生效。示例:`SELECT toDateTime('0')`。这也是在表中 `DateTime DEFAULT '0'` 不起作用的原因,同样 `0` 在字典中也不会生效。解决方法:将 `0` 替换为 `0000-00-00 00:00:00`。 - - ## ClickHouse 版本 1.1 {#clickhouse-release-1-1} ### ClickHouse 版本 1.1.54394,2018-07-12 {#clickhouse-release-1-1-54394-2018-07-12} @@ -681,17 +625,15 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 #### 改进:{#improvements-10} - 在可以使用表索引的情况下,改进了使用 IN 运算符时的性能,降低了内存消耗,并实现了对内存消耗的正确跟踪([#2584](https://github.com/ClickHouse/ClickHouse/pull/2584))。 -- 移除了在添加数据分片时多余的校验和检查。这在副本数量很多的情况下非常重要,因为此前总检查次数等于 N^2。 +- 移除了在添加数据分区片段时多余的校验和检查。这在副本数量很多的情况下非常重要,因为此前总检查次数等于 N^2。 - 为 `arrayEnumerateUniq` 函数新增对 `Array(Tuple(...))` 参数的支持([#2573](https://github.com/ClickHouse/ClickHouse/pull/2573))。 - 为 `runningDifference` 函数新增 `Nullable` 支持([#2594](https://github.com/ClickHouse/ClickHouse/pull/2594))。 - 在表达式数量非常多时,提高了查询分析的性能([#2572](https://github.com/ClickHouse/ClickHouse/pull/2572))。 -- 加快了在 `ReplicatedMergeTree` 表中选择用于合并的数据分片的速度,并加快了 ZooKeeper 会话恢复速度([#2597](https://github.com/ClickHouse/ClickHouse/pull/2597))。 +- 加快了在 `ReplicatedMergeTree` 表中选择用于合并的数据分区片段的速度,并加快了 ZooKeeper 会话恢复速度([#2597](https://github.com/ClickHouse/ClickHouse/pull/2597))。 - 如果缺失 `MergeTree` 表的 `format_version.txt` 文件,则会重新创建该文件,这在复制目录结构但不复制文件后再启动 ClickHouse 的场景中是合理的([Ciprian Hacman](https://github.com/ClickHouse/ClickHouse/pull/2593))。 #### Bug 修复:{#bug-fixes-19} - - - 修复了在使用 ZooKeeper 时的一个 bug,该 bug 可能导致在重启服务器之前无法恢复表的会话状态和只读状态。 - 修复了在使用 ZooKeeper 时的一个 bug,该 bug 会导致在会话中断时旧节点不会被删除。 - 修复了 `quantileTDigest` 函数在 Float 参数上的一个错误(此 bug 引入于版本 1.1.54388)([Mikhail Surin](https://github.com/ClickHouse/ClickHouse/pull/2553))。 @@ -729,9 +671,7 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 - 增加了仅在需要时计算 `and` 参数的能力([Anastasia Tsarkova](https://github.com/ClickHouse/ClickHouse/pull/2272))。 - 对部分表达式现在支持 JIT 编译为原生代码([pyos](https://github.com/ClickHouse/ClickHouse/pull/2277))。 -#### Bug 修复:{#bug-fixes-20} - - +#### 错误修复: {#bug-fixes-20} - 对于包含 `DISTINCT` 和 `ORDER BY` 的查询,不再出现重复结果。 - 包含 `ARRAY JOIN` 和 `arrayFilter` 的查询不再返回不正确的结果。 @@ -743,7 +683,7 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 - 修复了在 clickhouse-local 中通过命令行参数应用设置的方式。 - ZooKeeper 客户端库现在使用从服务器获取的会话超时时间。 - 修复了 ZooKeeper 客户端库中的一个缺陷,该缺陷会导致客户端等待服务器响应的时间超过超时时间。 -- 修复了对带有分区键列条件的查询进行数据分片裁剪时的问题([#2342](https://github.com/ClickHouse/ClickHouse/issues/2342))。 +- 修复了对包含分区键列条件的查询进行分区片段裁剪时的问题([#2342](https://github.com/ClickHouse/ClickHouse/issues/2342))。 - 在执行 `CLEAR COLUMN IN PARTITION` 之后,现在可以进行合并操作([#2315](https://github.com/ClickHouse/ClickHouse/issues/2315))。 - 修复了 ODBC 表函数中的类型映射问题([sundy-li](https://github.com/ClickHouse/ClickHouse/pull/2268))。 - 修复了对带和不带时区的 `DateTime` 类型进行比较时的问题([Alexander Bocharov](https://github.com/ClickHouse/ClickHouse/pull/2400))。 @@ -777,9 +717,7 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 - 现在支持使用 libtinfo 库替代 libtermcap([Georgy Kondratiev](https://github.com/ClickHouse/ClickHouse/pull/2519))。 - 修复了在 Fedora Rawhide 中的头文件冲突问题([#2520](https://github.com/ClickHouse/ClickHouse/issues/2520))。 -#### 向后不兼容的变更: {#backward-incompatible-changes-7} - - +#### 向后不兼容的更改:{#backward-incompatible-changes-7} - 移除了在 `Vertical` 和 `Pretty*` 格式中的转义处理,并删除了 `VerticalRaw` 格式。 - 如果在一个分布式查询中同时使用版本为 1.1.54388(或更新)和更早版本的服务器,并且查询中包含 `cast(x, 'Type')` 形式的表达式(未使用 `AS` 关键字,且单词 `cast` 不是大写),则会抛出类似 `Not found column cast(0, 'UInt8') in block` 的异常。解决方案:在整个集群中升级服务器。 @@ -828,9 +766,7 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 ### ClickHouse Release 1.1.54378, 2018-04-16 {#clickhouse-release-1-1-54378-2018-04-16} -#### New Features: {#new-features-14} - - +#### 新功能: {#new-features-14} - 日志级别可以在不重启服务器的情况下修改。 - 新增 `SHOW CREATE DATABASE` 查询。 @@ -876,9 +812,7 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 - 构建系统支持使用 `ninja` 替代 `make`,并在发布版本构建时默认使用 `ninja`。 - 重命名了软件包:`clickhouse-server-base` 改为 `clickhouse-common-static`;`clickhouse-server-common` 改为 `clickhouse-server`;`clickhouse-common-dbg` 改为 `clickhouse-common-static-dbg`。安装时请使用 `clickhouse-server clickhouse-client`。为保持向后兼容,仓库中仍会提供旧名称的软件包。 -#### Backward Incompatible Changes: {#backward-incompatible-changes-9} - - +#### 向后不兼容的更改: {#backward-incompatible-changes-9} - 移除了当左侧为数组时对 `IN` 表达式的特殊解释。此前,表达式 `arr IN (set)` 被解释为“至少有一个 `arr` 元素属于 `set`”。若要在新版本中获得相同的行为,请写为 `arrayExists(x -> x IN (set), arr)`。 - 禁用了 socket 选项 `SO_REUSEPORT` 的错误使用,该选项此前在 Poco 库中被错误地默认启用。请注意,在 Linux 上,已经没有必要同时为监听指定地址 `::` 和 `0.0.0.0` —— 只使用 `::` 即可,它允许在默认内核配置下同时通过 IPv4 和 IPv6 监听连接。还可以在配置中指定 `1` 以恢复之前版本的行为。 @@ -914,8 +848,6 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 #### 新功能: {#new-features-16} - - * 对于空集合(例如 `SELECT count(*) FROM table WHERE 0`)在没有使用 `GROUP BY` 的情况下进行聚合时,现在会返回包含一行的结果,该行中各聚合函数的值为 null,从而符合 SQL 标准。若要恢复旧行为(返回空结果),请将 `empty_result_for_aggregation_by_empty_set` 设置为 1。 * 为 `UNION ALL` 添加了类型转换支持。`UNION ALL` 中各个 `SELECT` 子句允许使用不同的别名,以符合 SQL 标准。 * `LIMIT BY` 子句支持使用任意表达式。此前只能使用 `SELECT` 语句产生的列。 @@ -952,8 +884,6 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 * 新增了 `odbc_default_field_size` 选项,用于扩展从 ODBC 源加载的值的最大长度(默认为 1024)。 * `system.processes` 表和 `SHOW PROCESSLIST` 现在已包含 `is_cancelled` 和 `peak_memory_usage` 列。 - - #### 改进: {#improvements-15} - 对于 `INSERT SELECT` 查询或 `SELECT` 子查询,针对结果设定的限制和配额不再应用于中间数据。 @@ -998,9 +928,7 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 - 禁止在 `MATERIALIZED VIEW` 中使用带有 `UNION ALL` 的查询。 - 修复了在服务器启动时初始化 `part_log` 系统表时的错误(默认情况下,`part_log` 是禁用的)。 -#### 向后不兼容的更改: {#backward-incompatible-changes-10} - - +#### 向后不兼容的更改:{#backward-incompatible-changes-10} - 移除了 `distributed_ddl_allow_replicated_alter` 选项。此行为现在默认启用。 - 移除了 `strict_insert_defaults` 设置。如果您在使用此功能,请发送邮件至 `feedback@clickhouse.com`。 @@ -1026,9 +954,7 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 ### ClickHouse Release 1.1.54337, 2018-01-18 {#clickhouse-release-1-1-54337-2018-01-18} -#### 新功能:{#new-features-17} - - +#### 新功能: {#new-features-17} - 在表中增加了对多维数组和元组(`Tuple` 数据类型)存储的支持。 - 为 `DESCRIBE` 和 `INSERT` 查询增加了对表函数的支持。为 `DESCRIBE` 增加了对子查询的支持。示例:`DESC TABLE remote('host', default.hits)`;`DESC TABLE (SELECT 1)`;`INSERT INTO TABLE FUNCTION remote('host', default.hits)`。在 `INSERT INTO` 之外,增加了对 `INSERT INTO TABLE` 的支持。 @@ -1039,7 +965,7 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 - 新增 `format_schema_path` 配置参数(Marek Vavruša)。用于指定 `Cap'n Proto` 格式的 schema。schema 文件只能位于指定目录中。 - 新增对配置替换(`incl` 和 `conf.d`)的支持,用于配置外部字典和模型(Pavel Yakunin)。 - 在 `system.settings` 表中新增包含文档说明的列(Kirill Shvakov)。 -- 新增 `system.parts_columns` 表,用于提供 `MergeTree` 表中每个数据 part 内各列大小的信息。 +- 新增 `system.parts_columns` 表,用于提供 `MergeTree` 表中每个分区片段内各列大小的信息。 - 新增 `system.models` 表,用于提供已加载的 `CatBoost` 机器学习模型的信息。 - 新增 `mysql` 和 `odbc` 表函数以及对应的 `MySQL` 和 `ODBC` 表引擎,用于访问远程数据库。该功能目前处于 beta 阶段。 - 新增对将 `AggregateFunction` 类型参数传递给 `groupArray` 聚合函数的支持(因此可以创建某个聚合函数状态的数组)。 @@ -1053,7 +979,7 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 - 新增 `sumKahan` 聚合函数。 - 新增 `to*Number*OrNull` 系列函数,其中 *Number* 为数值类型。 - 新增对 `INSERT SELECT` 查询的 `WITH` 子句的支持(作者:zhang2014)。 -- 新增设置:`http_connection_timeout`、`http_send_timeout`、`http_receive_timeout`。这些设置特别用于下载用于复制的数据 part。调整这些设置可以在网络过载时实现更快的故障切换。 +- 新增设置:`http_connection_timeout`、`http_send_timeout`、`http_receive_timeout`。这些设置特别用于下载用于复制的分区片段。调整这些设置可以在网络过载时实现更快的故障切换。 - 新增对 `Null` 类型表执行 `ALTER` 的支持(Anastasiya Tsarkova)。 - 将 `reinterpretAsString` 函数扩展到所有在内存中连续存储的数据类型。 - 为 `clickhouse-local` 工具新增 `--silent` 选项。该选项会阻止在 stderr 中打印查询执行信息。 @@ -1061,8 +987,6 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 #### 性能优化: {#performance-optimizations} - - - 提升了聚合函数 `min`、`max`、`any`、`anyLast`、`anyHeavy`、`argMin`、`argMax` 在处理字符串参数时的性能。 - 提升了函数 `isInfinite`、`isFinite`、`isNaN`、`roundToExp2` 的性能。 - 提升了以文本格式解析和格式化 `Date` 和 `DateTime` 类型值时的性能。 @@ -1072,8 +996,6 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 #### Bug 修复: {#bug-fixes-28} - - - 修复了在运行 `DROP` 或 `DETACH PARTITION` 查询后进行数据去重的问题。在之前的版本中,删除一个分区并再次插入相同数据不起作用,因为插入的块被视为重复数据。 - 修复了一个可能导致在带有 `POPULATE` 的 `CREATE MATERIALIZED VIEW` 查询中,`WHERE` 子句被错误解释的 bug。 - 修复了在 `zookeeper_servers` 配置中使用 `root_path` 参数时的 bug。 @@ -1113,8 +1035,6 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 #### 构建改进: {#build-improvements-4} - - - 使用 `pbuilder` 工具进行构建。构建过程几乎完全独立于构建主机环境。 - 针对不同的 OS 版本使用同一套构建产物。软件包和二进制文件已被制作得可兼容广泛的 Linux 系统。 - 新增 `clickhouse-test` 软件包,可用于运行功能测试。 @@ -1143,6 +1063,4 @@ keywords: ['ClickHouse 2018', '2018 更新日志', '发行说明', '版本历史 - 在集群上执行滚动更新时,当部分副本运行旧版本 ClickHouse、部分副本运行新版本时,复制会暂时停止,并且日志中会出现 `unknown parameter 'shard'` 消息。在集群的所有副本都更新之后,复制将继续。 - 如果集群服务器上运行着不同版本的 ClickHouse,则使用以下函数的分布式查询可能会产生不正确的结果:`varSamp`、`varPop`、`stddevSamp`、`stddevPop`、`covarSamp`、`covarPop`、`corr`。你应当更新所有集群节点。 - - -## [2017 年变更日志](./2017.md) {#changelog-for-2017} +## [2017 年变更日志](./2017.md) {#changelog-for-2017} \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2019.md b/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2019.md index 47b3f3b2959..58f885b3d6d 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2019.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2019.md @@ -1,6 +1,6 @@ --- slug: /whats-new/changelog/2019 -sidebar_position: 8 +sidebar_position: -2019 sidebar_label: '2019' title: '2019 更新日志' description: '2019 年更新日志' @@ -8,16 +8,12 @@ doc_type: 'changelog' keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史', '历史版本'] --- - - ## ClickHouse 版本 19.17 {#clickhouse-release-v19-17} ### ClickHouse 版本 19.17.6.36,2019-12-27 {#clickhouse-release-v19-17-6-36-2019-12-27} #### 缺陷修复 {#bug-fix} - - * 修复了 `decompress` 中潜在的缓冲区溢出问题。恶意用户可能传入伪造的压缩数据,从而导致对缓冲区的越界读取。该问题由 Yandex 信息安全团队的 Eldar Zaitov 发现。[#8404](https://github.com/ClickHouse/ClickHouse/pull/8404) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 修复了在以下情况下可能发生的服务器崩溃(`std::terminate`)问题:当服务器无法以 JSON 或 XML 格式发送或写入包含 `String` 类型(需要进行 UTF-8 校验)值的数据时,或在使用 Brotli 算法压缩结果数据时,或在其他一些罕见情况下。 [#8384](https://github.com/ClickHouse/ClickHouse/pull/8384) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 修复了以 ClickHouse 中的 `VIEW` 作为源的固定字典,现在读取此类字典时不会再触发 `There is no query` 错误。[#8351](https://github.com/ClickHouse/ClickHouse/pull/8351) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) @@ -48,8 +44,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 * 现在,如果将 WITH TIES 与 LIMIT BY 一起使用,将会抛出异常。现在也可以将 TOP 与 LIMIT BY 一起使用。[#7637](https://github.com/ClickHouse/ClickHouse/pull/7637) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) * 修复在字典配置了 `invalidate_query` 时的重载问题,该问题会导致更新停止,并在之前的更新尝试中抛出异常。 [#8029](https://github.com/ClickHouse/ClickHouse/pull/8029) ([alesapin](https://github.com/alesapin)) - - ### ClickHouse 版本 19.17.4.11,2019-11-22 {#clickhouse-release-v19-17-4-11-2019-11-22} #### 向后不兼容的变更 {#backward-incompatible-change} @@ -76,8 +70,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### Bug 修复 {#bug-fix-1} - - * 修复 `Values` 中的浮点数解析错误 [#7817](https://github.com/ClickHouse/ClickHouse/issues/7817) [#7870](https://github.com/ClickHouse/ClickHouse/pull/7870) ([tavplubix](https://github.com/tavplubix)) * 修复在启用 `trace_log` 时可能发生的罕见死锁。[#7838](https://github.com/ClickHouse/ClickHouse/pull/7838) ([filimonov](https://github.com/filimonov)) * 在向存在任意从其读取的物化视图(MV)的 Kafka 表写入数据时,防止消息重复 [#7265](https://github.com/ClickHouse/ClickHouse/pull/7265) ([Ivan](https://github.com/abyss7)) @@ -101,8 +93,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 * 修复了在使用单个参数定义 S3、URL 和 HDFS 存储时出现的异常。[#7618](https://github.com/ClickHouse/ClickHouse/pull/7618) ([Vladimir Chebotarev](https://github.com/excitoon)) * 修复带查询视图的 InterpreterSelectQuery 作用域问题 [#7601](https://github.com/ClickHouse/ClickHouse/pull/7601) ([Azat Khuzhin](https://github.com/azat)) - - #### 改进 {#improvement} - 通过 ODBC-bridge 正确识别 `Nullable` 列并正确处理 NULL 值 [#7402](https://github.com/ClickHouse/ClickHouse/pull/7402) ([Vasily Nemkov](https://github.com/Enmk)) @@ -126,8 +116,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### 构建/测试/打包改进 {#buildtestingpackaging-improvement} - - - 增加对交叉编译为 AARCH64 CPU 架构的支持。重构打包脚本。[#7370](https://github.com/ClickHouse/ClickHouse/pull/7370) [#7539](https://github.com/ClickHouse/ClickHouse/pull/7539) ([Ivan](https://github.com/abyss7)) - 在构建包时,将 darwin-x86_64 和 linux-aarch64 工具链解压到挂载的 Docker 卷中 [#7534](https://github.com/ClickHouse/ClickHouse/pull/7534) ([Ivan](https://github.com/abyss7)) - 更新二进制打包器(Binary Packager)的 Docker 镜像 [#7474](https://github.com/ClickHouse/ClickHouse/pull/7474) ([Ivan](https://github.com/abyss7)) @@ -142,8 +130,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 - 为 ClickHouse SQL 方言新增 ANTLR4 语法规则 [#7595](https://github.com/ClickHouse/ClickHouse/issues/7595) [#7596](https://github.com/ClickHouse/ClickHouse/pull/7596) ([alexey-milovidov](https://github.com/alexey-milovidov)) - - ## ClickHouse Release 19.16 {#clickhouse-release-v19-16} #### ClickHouse Release 19.16.14.65, 2020-03-25 {#clickhouse-release-v19-16-14-65-2020-03-25} @@ -167,7 +153,7 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### 新功能 {#new-feature-1} -- 新增 `deduplicate_blocks_in_dependent_materialized_views` 选项,用于控制向带有物化视图的表进行幂等插入时的行为。该新特性根据 Altinity 的特别请求被加入到了此错误修复版本中。 +- 新增 `deduplicate_blocks_in_dependent_materialized_views` 选项,用于控制向带有 materialized view 的表进行幂等插入时的行为。该新特性根据 Altinity 的特别请求被加入到了此错误修复版本中。 [#9070](https://github.com/ClickHouse/ClickHouse/pull/9070) [(urykhy)](https://github.com/urykhy) ### ClickHouse Release 19.16.2.2, 2019-10-30 {#clickhouse-release-v19-16-2-2-2019-10-30} @@ -180,14 +166,12 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 - 移除已废弃的 `asterisk_left_columns_only` 设置(默认已禁用)。 [#7335](https://github.com/ClickHouse/ClickHouse/pull/7335)([Artem Zuikov](https://github.com/4ertus2)) -- Template 数据格式所使用的格式字符串现在需在文件中进行指定。 +- Template 数据格式所使用的格式字符串现在在文件中进行指定。 [#7118](https://github.com/ClickHouse/ClickHouse/pull/7118) ([tavplubix](https://github.com/tavplubix)) #### 新功能 {#new-feature-2} - - - 引入 `uniqCombined64()`,用于计算大于 `UINT_MAX` 的基数。 [#7213](https://github.com/ClickHouse/ClickHouse/pull/7213), [#7222](https://github.com/ClickHouse/ClickHouse/pull/7222) ([Azat @@ -229,9 +213,7 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 - 支持使用 Redis 作为外部字典的数据源。 [#4361](https://github.com/ClickHouse/ClickHouse/pull/4361) [#6962](https://github.com/ClickHouse/ClickHouse/pull/6962) ([comunodi](https://github.com/comunodi), [Anton Popov](https://github.com/CurtizJ)) -#### Bug 修复 {#bug-fix-2} - - +#### 错误修复 {#bug-fix-2} - 修复在查询包含 `WHERE IN (SELECT ...)` 子句且使用 `optimize_read_in_order` 时得到错误查询结果的问题。[#7371](https://github.com/ClickHouse/ClickHouse/pull/7371)([Anton Popov](https://github.com/CurtizJ)) @@ -248,7 +230,7 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 - 修复在 groupBitmapOr 中的段错误(问题 [#7109](https://github.com/ClickHouse/ClickHouse/issues/7109))。 [#7289](https://github.com/ClickHouse/ClickHouse/pull/7289)([Zhichang Yu](https://github.com/yuzhichang)) -- 对于物化视图,在所有数据写入完成后才对 Kafka 执行提交操作。 +- 对于 materialized view,在所有数据写入完成后才对 Kafka 执行提交操作。 [#7175](https://github.com/ClickHouse/ClickHouse/pull/7175)([Ivan](https://github.com/abyss7)) - 修复 `system.part_log` 表中错误的 `duration_ms` 值。原来的值偏差了十倍。 [#7172](https://github.com/ClickHouse/ClickHouse/pull/7172)([Vladimir @@ -256,7 +238,7 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 - 快速修复 LIVE VIEW 表中的崩溃问题,并重新启用所有 LIVE VIEW 测试。 [#7201](https://github.com/ClickHouse/ClickHouse/pull/7201) ([vzakaznikov](https://github.com/vzakaznikov)) -- 在 MergeTree 数据片段的 min/max 索引中正确序列化 NULL 值。 +- 在 MergeTree 分区片段的 min/max 索引中正确序列化 NULL 值。 [#7234](https://github.com/ClickHouse/ClickHouse/pull/7234)([Alexander Kuzmenkov](https://github.com/akuzm)) - 当通过 `CREATE TABLE AS` 创建表时,不再将虚拟列写入 .sql 元数据。 @@ -273,8 +255,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### 改进 {#improvement-1} - - - 在发生 `queue_wait_max_ms` 等待时添加一条消息。 [#7390](https://github.com/ClickHouse/ClickHouse/pull/7390) ([Azat Khuzhin](https://github.com/azat)) @@ -326,8 +306,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### 构建/测试/打包改进 {#buildtestingpackaging-improvement-1} - - * 在针对 Mac OS 的交叉编译中禁用部分 contrib 组件。 [#7101](https://github.com/ClickHouse/ClickHouse/pull/7101) ([Ivan](https://github.com/abyss7)) * 为 clickhouse_common_io 补充缺失的 PocoXML 链接。 @@ -392,8 +370,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 [#7063](https://github.com/ClickHouse/ClickHouse/pull/7063) ([proller](https://github.com/proller)) - - #### 代码清理 {#code-cleanup} - 将配置仓库通用化,为 Dictionaries 的 DDL 做准备。[#7155](https://github.com/ClickHouse/ClickHouse/pull/7155) @@ -427,8 +403,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 [#7350](https://github.com/ClickHouse/ClickHouse/pull/7350) ([tavplubix](https://github.com/tavplubix)) - - ## ClickHouse 发行版 19.15 {#clickhouse-release-19-15} ### ClickHouse 发行版 19.15.4.10,2019-10-31 {#clickhouse-release-19-15-4-10-2019-10-31} @@ -477,9 +451,7 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 ### ClickHouse 发行版 19.15.2.2,2019-10-01 {#clickhouse-release-19-15-2-2-2019-10-01} -#### 新特性 {#new-feature-3} - - +#### 新功能 {#new-feature-3} - 分层存储:支持为使用 MergeTree 引擎的表配置多个存储卷。可以将最新数据存储在 SSD 上,并自动将旧数据迁移到 HDD。([示例](https://clickhouse.github.io/clickhouse-presentations/meetup30/new_features/#12))。[#4918](https://github.com/ClickHouse/ClickHouse/pull/4918) ([Igr](https://github.com/ObjatieGroba)) [#6489](https://github.com/ClickHouse/ClickHouse/pull/6489) ([alesapin](https://github.com/alesapin)) - 添加表函数 `input`,用于在 `INSERT SELECT` 查询中读取输入数据。 [#5450](https://github.com/ClickHouse/ClickHouse/pull/5450) ([palasonic1](https://github.com/palasonic1)) [#6832](https://github.com/ClickHouse/ClickHouse/pull/6832) ([Anton Popov](https://github.com/CurtizJ)) @@ -497,8 +469,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### 改进 {#improvement-2} - - - 从 Kafka 读取的每条消息都会以原子方式插入。这解决了几乎所有已知的 Kafka engine 问题。[#6950](https://github.com/ClickHouse/ClickHouse/pull/6950) ([Ivan](https://github.com/abyss7)) - 改进 Distributed 查询的故障切换。缩短恢复时间,同时现在可以进行配置,并且可在 `system.clusters` 中查看。[#6399](https://github.com/ClickHouse/ClickHouse/pull/6399) ([Vasily Nemkov](https://github.com/Enmk)) - 在 `IN` 子句中直接支持 Enums 的数值形式。#6766 [#6941](https://github.com/ClickHouse/ClickHouse/pull/6941) ([dimarub2000](https://github.com/dimarub2000)) @@ -520,8 +490,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### Bug 修复 {#bug-fix-5} - - - 修复了在大表上对复杂键进行索引分析时的性能下降问题。这修复了 #6924。[#7075](https://github.com/ClickHouse/ClickHouse/pull/7075) ([alexey-milovidov](https://github.com/alexey-milovidov)) - 修复了在从空的 Kafka 主题进行查询时导致段错误的逻辑错误。[#6909](https://github.com/ClickHouse/ClickHouse/pull/6909) ([Ivan](https://github.com/abyss7)) - 修复了在 `MySQLBlockInputStream.cpp` 中过早关闭 MySQL 连接的问题。[#6882](https://github.com/ClickHouse/ClickHouse/pull/6882) ([Clément Rodriguez](https://github.com/clemrodriguez)) @@ -536,8 +504,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 - 修改了 bitmap\* 聚合函数状态的序列化格式以提升性能。先前版本中序列化得到的 bitmap\* 状态将无法读取。[#6908](https://github.com/ClickHouse/ClickHouse/pull/6908) ([Zhichang Yu](https://github.com/yuzhichang)) - - ## ClickHouse 版本 19.14 {#clickhouse-release-19-14} ### ClickHouse 版本 19.14.7.15,2019-10-02 {#clickhouse-release-19-14-7-15-2019-10-02} @@ -563,8 +529,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### 新功能 {#new-feature-4} - - * `ORDER BY` 的 `WITH FILL` 修饰符。([#5069](https://github.com/ClickHouse/ClickHouse/issues/5069) 的后续)[#6610](https://github.com/ClickHouse/ClickHouse/pull/6610)([Anton Popov](https://github.com/CurtizJ)) * 为 `LIMIT` 增加 `WITH TIES` 修饰符。([#5069](https://github.com/ClickHouse/ClickHouse/issues/5069) 的延续) [#6610](https://github.com/ClickHouse/ClickHouse/pull/6610) ([Anton Popov](https://github.com/CurtizJ)) * 在设置 `format_csv_unquoted_null_literal_as_null=1` 时,将未加引号的 `NULL` 字面量解析为 NULL。若该字段的数据类型不可为空(非 Nullable 类型),在设置 `input_format_null_as_default=1` 时,将 NULL 字段初始化为默认值。 [#5990](https://github.com/ClickHouse/ClickHouse/issues/5990) [#6055](https://github.com/ClickHouse/ClickHouse/pull/6055) ([tavplubix](https://github.com/tavplubix)) @@ -590,8 +554,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 * 为 Kafka 引擎新增对 `_partition` 和 `_timestamp` 虚拟列的支持。 [#6400](https://github.com/ClickHouse/ClickHouse/pull/6400) ([Ivan](https://github.com/abyss7)) * 支持使用基于正则表达式的规则,从 `query_log`、服务器日志和进程列表中移除敏感数据。 [#5710](https://github.com/ClickHouse/ClickHouse/pull/5710) ([filimonov](https://github.com/filimonov)) - - #### 实验性功能 {#experimental-feature-2} - `Template` 输入和输出数据格式。它允许为输入和输出指定自定义格式字符串。[#4354](https://github.com/ClickHouse/ClickHouse/issues/4354) [#6727](https://github.com/ClickHouse/ClickHouse/pull/6727) ([tavplubix](https://github.com/tavplubix)) @@ -599,8 +561,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### Bug 修复 {#bug-fix-8} - - * 本次发布还包含 19.13 和 19.11 中的所有错误修复。 * 修复当表包含跳过索引且发生垂直合并时出现的段错误问题。 [#6723](https://github.com/ClickHouse/ClickHouse/pull/6723) ([alesapin](https://github.com/alesapin)) * 修复在存在复杂列默认值时的按列 TTL 行为。此前,在使用带有 `OPTIMIZE ... FINAL` 的查询强制执行 TTL 合并时,过期的值会被类型默认值替换,而不是用户指定的列默认值。[#6796](https://github.com/ClickHouse/ClickHouse/pull/6796)([Anton Popov](https://github.com/CurtizJ)) @@ -658,8 +618,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 * 错误信息中的笔误(is -> are)。[#6839](https://github.com/ClickHouse/ClickHouse/pull/6839)([Denis Zhuravlev](https://github.com/den-crane)) * 修复了从字符串解析列列表时的错误:如果类型中包含逗号就会触发该错误(该问题会影响 `File`、`URL`、`HDFS` 存储)[#6217](https://github.com/ClickHouse/ClickHouse/issues/6217)。[#6209](https://github.com/ClickHouse/ClickHouse/pull/6209)([dimarub2000](https://github.com/dimarub2000)) - - #### 安全修复 {#security-fix} - 此版本还包含 19.13 和 19.11 中的所有安全漏洞修复。 @@ -667,8 +625,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### 改进 {#improvement-3} - - * 正确实现 `AND/OR` 的三值逻辑。 [#6048](https://github.com/ClickHouse/ClickHouse/pull/6048) ([Alexander Kazakov](https://github.com/Akazz)) * 现在,具有已过期 TTL 的值和行会在对旧的、没有 TTL 信息或 TTL 信息已过期的部分执行 `OPTIMIZE ... FINAL` 查询后被移除,例如在执行 `ALTER ... MODIFY TTL` 查询之后。新增了 `SYSTEM STOP/START TTL MERGES` 查询,用于禁止/允许分配带有 TTL 的合并任务,并在所有合并中过滤已过期的值。 [#6274](https://github.com/ClickHouse/ClickHouse/pull/6274) ([Anton Popov](https://github.com/CurtizJ)) * 支持通过 `CLICKHOUSE_HISTORY_FILE` 环境变量更改 ClickHouse 客户端历史文件的位置。[#6840](https://github.com/ClickHouse/ClickHouse/pull/6840) ([filimonov](https://github.com/filimonov)) @@ -729,8 +685,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 * `MergeTree` 现在新增了一个选项 `ttl_only_drop_parts`(默认禁用),用于避免对数据分片进行部分裁剪,从而在某个分片中的所有行都过期时,直接将该分片整体删除。[#6191](https://github.com/ClickHouse/ClickHouse/pull/6191) ([Sergi Vladykin](https://github.com/svladykin)) * 为 set index 函数添加类型检查。如果函数收到错误类型则抛出异常。修复了使用 UBSan 的模糊测试问题。[#6511](https://github.com/ClickHouse/ClickHouse/pull/6511) ([Nikita Vasilev](https://github.com/nikvas0)) - - #### 性能改进 {#performance-improvement-2} - 使用 `ORDER BY expressions` 子句优化查询,其中 `expressions` 的前缀与 `MergeTree` 表的排序键前缀一致。该优化由 `optimize_read_in_order` 设置控制。[#6054](https://github.com/ClickHouse/ClickHouse/pull/6054) [#6629](https://github.com/ClickHouse/ClickHouse/pull/6629) ([Anton Popov](https://github.com/CurtizJ)) @@ -744,8 +698,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### 构建/测试/打包改进 {#buildtestingpackaging-improvement-4} - - * 移除 Compiler(运行时模板实例化),因为当前实现的性能已经优于它。[#6646](https://github.com/ClickHouse/ClickHouse/pull/6646) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 添加了性能测试,以更隔离的方式展示 gcc-9 中的性能退化。 [#6302](https://github.com/ClickHouse/ClickHouse/pull/6302) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 新增表函数 `numbers_mt`,这是 `numbers` 的多线程版本。更新了使用哈希函数的性能测试。[#6554](https://github.com/ClickHouse/ClickHouse/pull/6554) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) @@ -822,15 +774,11 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 * 修复“splitted”构建版本。[#6618](https://github.com/ClickHouse/ClickHouse/pull/6618) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 其他构建修复项:[#6186](https://github.com/ClickHouse/ClickHouse/pull/6186) ([Amos Bird](https://github.com/amosbird)) [#6486](https://github.com/ClickHouse/ClickHouse/pull/6486) [#6348](https://github.com/ClickHouse/ClickHouse/pull/6348) ([vxider](https://github.com/Vxider)) [#6744](https://github.com/ClickHouse/ClickHouse/pull/6744) ([Ivan](https://github.com/abyss7)) [#6016](https://github.com/ClickHouse/ClickHouse/pull/6016) [#6421](https://github.com/ClickHouse/ClickHouse/pull/6421) [#6491](https://github.com/ClickHouse/ClickHouse/pull/6491) ([proller](https://github.com/proller)) - - #### 向后不兼容的变更 {#backward-incompatible-change-3} - 移除了很少使用的表函数 `catBoostPool` 和存储引擎 `CatBoostPool`。如果你曾使用过该表函数,请发送邮件到 `feedback@clickhouse.com`。注意,CatBoost 集成功能仍然保留并会继续得到支持。[#6279](https://github.com/ClickHouse/ClickHouse/pull/6279) ([alexey-milovidov](https://github.com/alexey-milovidov)) - 默认禁用 `ANY RIGHT JOIN` 和 `ANY FULL JOIN`。请通过设置 `any_join_distinct_right_table_keys` 参数来启用它们。[#5126](https://github.com/ClickHouse/ClickHouse/issues/5126) [#6351](https://github.com/ClickHouse/ClickHouse/pull/6351) ([Artem Zuikov](https://github.com/4ertus2)) - - ## ClickHouse Release 19.13 {#clickhouse-release-19-13} ### ClickHouse Release 19.13.6.51, 2019-10-02 {#clickhouse-release-19-13-6-51-2019-10-02} @@ -856,9 +804,7 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 ### ClickHouse Release 19.13.4.32, 2019-09-10 {#clickhouse-release-19-13-4-32-2019-09-10} -#### Bug Fix {#bug-fix-11} - - +#### 错误修复 {#bug-fix-11} - 此版本还包含 19.11.9.52 和 19.11.10.54 中的所有安全漏洞修复。 - 修复了在 `system.parts` 表和 `ALTER` 查询中的数据竞争问题。[#6245](https://github.com/ClickHouse/ClickHouse/issues/6245) [#6513](https://github.com/ClickHouse/ClickHouse/pull/6513) ([alexey-milovidov](https://github.com/alexey-milovidov)) @@ -878,8 +824,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### 错误修复 {#bug-fix-12} - - - 修复在 `enable_mixed_granularity_parts=1` 的表上执行 `ALTER TABLE ... UPDATE` 查询的问题。[#6543](https://github.com/ClickHouse/ClickHouse/pull/6543) ([alesapin](https://github.com/alesapin)) - 修复在 IN 子句中使用带元组的子查询时出现的 NPE(空指针异常)。[#6125](https://github.com/ClickHouse/ClickHouse/issues/6125) [#6550](https://github.com/ClickHouse/ClickHouse/pull/6550) ([tavplubix](https://github.com/tavplubix)) - 修复一个问题:如果落后的副本恢复为可用状态,它可能仍然包含已被 DROP PARTITION 删除的数据分片。[#6522](https://github.com/ClickHouse/ClickHouse/issues/6522) [#6523](https://github.com/ClickHouse/ClickHouse/pull/6523) ([tavplubix](https://github.com/tavplubix)) @@ -894,9 +838,7 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 ### ClickHouse Release 19.13.2.19,2019-08-14 {#clickhouse-release-19-13-2-19-2019-08-14} -#### 新特性 {#new-feature-5} - - +#### 新功能 {#new-feature-5} - 查询级别的采样分析器。 [示例](https://gist.github.com/alexey-milovidov/92758583dd41c24c360fdb8d6a4da194)。 [#4247](https://github.com/ClickHouse/ClickHouse/issues/4247) ([laplab](https://github.com/laplab)) [#6124](https://github.com/ClickHouse/ClickHouse/pull/6124) ([alexey-milovidov](https://github.com/alexey-milovidov)) [#6250](https://github.com/ClickHouse/ClickHouse/pull/6250) [#6283](https://github.com/ClickHouse/ClickHouse/pull/6283) [#6386](https://github.com/ClickHouse/ClickHouse/pull/6386) - 允许使用 `COLUMNS('regexp')` 表达式指定列列表,该表达式的行为类似于更高级版本的 `*` 通配符。 [#5951](https://github.com/ClickHouse/ClickHouse/pull/5951) ([mfridental](https://github.com/mfridental)), ([alexey-milovidov](https://github.com/alexey-milovidov)) @@ -908,7 +850,7 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### 向后不兼容的更改 {#backward-incompatible-change-4} -- 设置 `input_format_defaults_for_omitted_fields` 默认启用。对 Distributed 表执行插入操作时,需要在整个集群中保持该设置一致(需要在滚动升级前设置好)。该设置会在 `JSONEachRow` 和 `CSV*` 格式中,为被省略字段计算复杂的默认表达式。这应该是预期行为,但可能带来可以忽略不计的性能差异。 [#6043](https://github.com/ClickHouse/ClickHouse/pull/6043) ([Artem Zuikov](https://github.com/4ertus2)), [#5625](https://github.com/ClickHouse/ClickHouse/pull/5625) ([akuzm](https://github.com/akuzm)) +- 默认启用 `input_format_defaults_for_omitted_fields` 设置。对 Distributed 表执行插入操作时,集群中需要在所有节点上保持该设置一致(需要在滚动升级前先配置好)。该设置会在 `JSONEachRow` 和 `CSV*` 格式中,为被省略字段计算复杂的默认表达式。这应当是预期行为,但可能会带来可以忽略不计的性能差异。 [#6043](https://github.com/ClickHouse/ClickHouse/pull/6043) ([Artem Zuikov](https://github.com/4ertus2)), [#5625](https://github.com/ClickHouse/ClickHouse/pull/5625) ([akuzm](https://github.com/akuzm)) #### 实验特性 {#experimental-features} @@ -922,9 +864,7 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### 改进 {#improvement-4} -- 当 `config.d` 文件不包含与主配置文件对应的根元素时抛出异常。 [#6123](https://github.com/ClickHouse/ClickHouse/pull/6123) ([dimarub2000](https://github.com/dimarub2000)) - - +- 当 `config.d` 文件不包含与主配置文件相应的根元素时抛出异常。 [#6123](https://github.com/ClickHouse/ClickHouse/pull/6123) ([dimarub2000](https://github.com/dimarub2000)) #### 性能改进 {#performance-improvement-3} @@ -936,8 +876,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 - 修复使用外部 `libcxx` 时的构建问题。[#6010](https://github.com/ClickHouse/ClickHouse/pull/6010) ([Ivan](https://github.com/abyss7)) - 修复基于 `rdkafka` 库的共享库构建问题。[#6101](https://github.com/ClickHouse/ClickHouse/pull/6101) ([Ivan](https://github.com/abyss7)) - - ## ClickHouse 发行版 19.11 {#clickhouse-release-19-11} ### ClickHouse 发行版 19.11.13.74,2019-11-01 {#clickhouse-release-19-11-13-74-2019-11-01} @@ -967,9 +905,7 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 - 手动存储 Kafka 消息的 offset,以便能够一次性为所有分区统一提交。修复了在「一个 consumer - 多个 partition」场景下可能出现的重复消费问题。 [#6872](https://github.com/ClickHouse/ClickHouse/pull/6872) ([Ivan](https://github.com/abyss7)) -### ClickHouse 发行版 19.11.9.52,2019-09-6 {#clickhouse-release-19-11-9-52-2019-09-6} - - +### ClickHouse Release 19.11.9.52,2019-09-6 {#clickhouse-release-19-11-9-52-2019-09-6} - 改进缓存字典中的错误处理。 [#6737](https://github.com/ClickHouse/ClickHouse/pull/6737) ([Vitaly Baranov](https://github.com/vitlibar)) - 修复函数 `arrayEnumerateUniqRanked` 中的错误。 [#6779](https://github.com/ClickHouse/ClickHouse/pull/6779) ([proller](https://github.com/proller)) @@ -989,22 +925,18 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 ### ClickHouse Release 19.11.8.46,2019-08-22 {#clickhouse-release-19-11-8-46-2019-08-22} -#### Bug 修复 {#bug-fix-17} - - +#### Bug Fix {#bug-fix-17} - 修复在 `enable_mixed_granularity_parts=1` 的表上执行 `ALTER TABLE ... UPDATE` 查询的问题。[#6543](https://github.com/ClickHouse/ClickHouse/pull/6543) ([alesapin](https://github.com/alesapin)) -- 修复在 `IN` 子句中使用带有元组的子查询时出现的空指针异常(NPE)。[#6125](https://github.com/ClickHouse/ClickHouse/issues/6125) [#6550](https://github.com/ClickHouse/ClickHouse/pull/6550) ([tavplubix](https://github.com/tavplubix)) -- 修复这样一个问题:如果一个过期副本重新变为活跃状态,它可能仍然包含已被 `DROP PARTITION` 删除的数据分片。[#6522](https://github.com/ClickHouse/ClickHouse/issues/6522) [#6523](https://github.com/ClickHouse/ClickHouse/pull/6523) ([tavplubix](https://github.com/tavplubix)) -- 修复解析 CSV 时的问题。[#6426](https://github.com/ClickHouse/ClickHouse/issues/6426) [#6559](https://github.com/ClickHouse/ClickHouse/pull/6559) ([tavplubix](https://github.com/tavplubix)) -- 修复 `system.parts` 表与 `ALTER` 查询中的数据竞争问题。此修复解决了 [#6245](https://github.com/ClickHouse/ClickHouse/issues/6245)。[#6513](https://github.com/ClickHouse/ClickHouse/pull/6513) ([alexey-milovidov](https://github.com/alexey-milovidov)) -- 修复变更(mutation)代码中的错误,该错误可能导致内存损坏。修复因并发执行 `DROP TABLE` 与从 `system.parts` 或 `system.parts_columns` 中执行 `SELECT` 读取而可能发生的读取地址 `0x14c0` 的段错误(segfault)。修复在准备变更查询时的竞争条件。修复由对 Replicated 表执行 `OPTIMIZE` 与并发 `ALTER` 等修改操作导致的死锁。[#6514](https://github.com/ClickHouse/ClickHouse/pull/6514) ([alexey-milovidov](https://github.com/alexey-milovidov)) +- 修复在 IN 子句中使用带元组的子查询时出现的 NPE(空指针异常)。[#6125](https://github.com/ClickHouse/ClickHouse/issues/6125) [#6550](https://github.com/ClickHouse/ClickHouse/pull/6550) ([tavplubix](https://github.com/tavplubix)) +- 修复一个问题:如果落后的副本恢复为可用状态,它可能仍然包含已被 DROP PARTITION 删除的数据分片。[#6522](https://github.com/ClickHouse/ClickHouse/issues/6522) [#6523](https://github.com/ClickHouse/ClickHouse/pull/6523) ([tavplubix](https://github.com/tavplubix)) +- 修复解析 CSV 的问题。[#6426](https://github.com/ClickHouse/ClickHouse/issues/6426) [#6559](https://github.com/ClickHouse/ClickHouse/pull/6559) ([tavplubix](https://github.com/tavplubix)) +- 修复 `system.parts` 表和 ALTER 查询中的数据竞争问题。这修复了 [#6245](https://github.com/ClickHouse/ClickHouse/issues/6245)。[#6513](https://github.com/ClickHouse/ClickHouse/pull/6513) ([alexey-milovidov](https://github.com/alexey-milovidov)) +- 修复了变更(mutation)代码中的错误,该错误可能导致内存损坏。修复了读取地址 `0x14c0` 时产生的段错误(segfault),该问题可能由于并发执行 `DROP TABLE` 与从 `system.parts` 或 `system.parts_columns` 进行 `SELECT` 导致。修复了在准备变更查询时出现的竞争条件。修复了由复制表(Replicated 表)的 `OPTIMIZE` 与 ALTER 等并发修改操作引起的死锁。[#6514](https://github.com/ClickHouse/ClickHouse/pull/6514) ([alexey-milovidov](https://github.com/alexey-milovidov)) ### ClickHouse Release 19.11.7.40, 2019-08-14 {#clickhouse-release-19-11-7-40-2019-08-14} -#### Bug Fix {#bug-fix-18} - - +#### Bug 修复 {#bug-fix-18} - 本版本已修复 Kafka 集成。 - 修复了对常量参数使用 `arrayReduce` 时的段错误(segfault)。 [#6326](https://github.com/ClickHouse/ClickHouse/pull/6326) ([alexey-milovidov](https://github.com/alexey-milovidov)) @@ -1022,14 +954,12 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### 改进 {#improvement-5} -- 允许用户在连接时重写 `poll_interval` 和 `idle_connection_timeout` 设置。 [#6230](https://github.com/ClickHouse/ClickHouse/pull/6230) ([alexey-milovidov](https://github.com/alexey-milovidov)) +- 允许用户在连接时覆盖 `poll_interval` 和 `idle_connection_timeout` 设置。 [#6230](https://github.com/ClickHouse/ClickHouse/pull/6230) ([alexey-milovidov](https://github.com/alexey-milovidov)) -### ClickHouse Release 19.11.5.28, 2019-08-05 {#clickhouse-release-19-11-5-28-2019-08-05} +### ClickHouse Release 19.11.5.28,2019-08-05 {#clickhouse-release-19-11-5-28-2019-08-05} #### Bug 修复 {#bug-fix-19} - - - 修复了在服务器过载时查询可能挂起的问题。[#6301](https://github.com/ClickHouse/ClickHouse/pull/6301) ([alexey-milovidov](https://github.com/alexey-milovidov)) - 修复了 `yandexConsistentHash` 函数中的浮点运算异常(FPE)。此修复对应 [#6304](https://github.com/ClickHouse/ClickHouse/issues/6304)。[#6126](https://github.com/ClickHouse/ClickHouse/pull/6126) ([alexey-milovidov](https://github.com/alexey-milovidov)) - 修复了在 `AggregateFunctionFactory` 中转换 `LowCardinality` 类型时的错误。此修复对应 [#6257](https://github.com/ClickHouse/ClickHouse/issues/6257)。[#6281](https://github.com/ClickHouse/ClickHouse/pull/6281) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) @@ -1039,14 +969,12 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### 向后不兼容的变更 {#backward-incompatible-change-5} -- `Kafka` 仍然不可用。 +- `Kafka` 仍然存在问题。 ### ClickHouse Release 19.11.4.24, 2019-08-01 {#clickhouse-release-19-11-4-24-2019-08-01} #### Bug 修复 {#bug-fix-20} - - - 修复了在自适应粒度下写入二级索引标记时的 bug。[#6126](https://github.com/ClickHouse/ClickHouse/pull/6126) ([alesapin](https://github.com/alesapin)) - 修复了在两级聚合下 `GROUP BY` 的 `WITH ROLLUP` 和 `WITH CUBE` 修饰符的问题。[#6225](https://github.com/ClickHouse/ClickHouse/pull/6225) ([Anton Popov](https://github.com/CurtizJ)) - 修复了 `JSONExtractRaw` 函数中的挂起问题。修复了 [#6195](https://github.com/ClickHouse/ClickHouse/issues/6195) [#6198](https://github.com/ClickHouse/ClickHouse/pull/6198) ([alexey-milovidov](https://github.com/alexey-milovidov)) @@ -1063,8 +991,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### 构建/测试/打包改进 {#buildtestingpackaging-improvement-6} - - - 添加了官方的 `rpm` 软件包。[#5740](https://github.com/ClickHouse/ClickHouse/pull/5740) ([proller](https://github.com/proller)) ([alesapin](https://github.com/alesapin)) - 新增支持使用 `packager` 脚本构建 `.rpm` 和 `.tgz` 软件包。[#5769](https://github.com/ClickHouse/ClickHouse/pull/5769) ([alesapin](https://github.com/alesapin)) - 修复了与 "Arcadia" 构建系统相关的问题。[#6223](https://github.com/ClickHouse/ClickHouse/pull/6223) ([proller](https://github.com/proller)) @@ -1088,8 +1014,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### Bug 修复 {#bug-fix-21} - - * 实现异步更新的 DNS 缓存机制。独立线程会定期解析所有主机并更新 DNS 缓存(周期由设置 `dns_cache_update_period` 控制)。当主机 IP 频繁变更时,这将很有帮助。 [#5857](https://github.com/ClickHouse/ClickHouse/pull/5857) ([Anton Popov](https://github.com/CurtizJ)) * 修复 `Delta` 编解码器中的段错误,该错误会影响包含小于 32 位值的列。此缺陷会导致内存随机损坏。[#5786](https://github.com/ClickHouse/ClickHouse/pull/5786) ([alesapin](https://github.com/alesapin)) * 修复在对包含非物理列的块执行 TTL 合并时发生的段错误。 [#5819](https://github.com/ClickHouse/ClickHouse/pull/5819) ([Anton Popov](https://github.com/CurtizJ)) @@ -1116,12 +1040,8 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 * 修复 SystemLogs 的关闭逻辑 [#5802](https://github.com/ClickHouse/ClickHouse/pull/5802) ([Anton Popov](https://github.com/CurtizJ)) * 修复当 `invalidate_query` 中的条件依赖于字典时导致的挂起问题。[#6011](https://github.com/ClickHouse/ClickHouse/pull/6011) ([Vitaly Baranov](https://github.com/vitlibar)) - - #### 改进 {#improvement-6} - - * 允许在集群配置中使用无法解析的地址。它们将被视为不可用,并在每次连接尝试时重新解析。这对 Kubernetes 尤其有用。此更改修复了 [#5714](https://github.com/ClickHouse/ClickHouse/issues/5714) [#5924](https://github.com/ClickHouse/ClickHouse/pull/5924)([alexey-milovidov](https://github.com/alexey-milovidov)) * 关闭空闲的 TCP 连接(默认超时时间为一小时)。这对大型集群尤为重要,尤其是在每台服务器上都有多张分布式表的情况下,因为每台服务器都可能对其他每台服务器维护一个连接池,在峰值查询并发结束后,这些连接会长时间处于空闲状态。此更改修复了 [#5879](https://github.com/ClickHouse/ClickHouse/issues/5879) [#5880](https://github.com/ClickHouse/ClickHouse/pull/5880)([alexey-milovidov](https://github.com/alexey-milovidov))。 * 提升了 `topK` 函数的结果质量。更改了 SavingSpace 集合的行为:当新元素的权重大于最后一个元素时,将移除最后一个元素。 [#5833](https://github.com/ClickHouse/ClickHouse/issues/5833) [#5850](https://github.com/ClickHouse/ClickHouse/pull/5850) ([Guillaume Tassery](https://github.com/YiuRULE)) @@ -1142,16 +1062,12 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 * 更新 `max_ast_elements` 参数的默认值 [#5933](https://github.com/ClickHouse/ClickHouse/pull/5933) ([Artem Konovalov](https://github.com/izebit)) * 新增了“已弃用设置”的概念。已弃用设置 `allow_experimental_low_cardinality_type` 仍可使用,但不会产生任何效果。[0f15c01c6802f7ce1a1494c12c846be8c98944cd](https://github.com/ClickHouse/ClickHouse/commit/0f15c01c6802f7ce1a1494c12c846be8c98944cd) [Alexey Milovidov](https://github.com/alexey-milovidov) - - #### 性能改进 {#performance-improvement-4} - 增加用于从 Merge 表执行 SELECT 的流数量,以实现线程更均匀的分布。新增设置 `max_streams_multiplier_for_merge_tables`。修复了 [#5797](https://github.com/ClickHouse/ClickHouse/issues/5797) [#5915](https://github.com/ClickHouse/ClickHouse/pull/5915) ([alexey-milovidov](https://github.com/alexey-milovidov)) #### 构建/测试/打包改进 {#buildtestingpackaging-improvement-7} - - * 为不同 ClickHouse 版本间的客户端-服务器交互添加向后兼容性测试。 [#5868](https://github.com/ClickHouse/ClickHouse/pull/5868) ([alesapin](https://github.com/alesapin)) * 在每次提交和拉取请求中提供测试覆盖率信息。[#5896](https://github.com/ClickHouse/ClickHouse/pull/5896) ([alesapin](https://github.com/alesapin)) * 与 AddressSanitizer 配合使用,以支持我们的自定义分配器(`Arena` 和 `ArenaWithFreeLists`),从而更好地调试“释放后使用”(use-after-free)错误。[#5728](https://github.com/ClickHouse/ClickHouse/pull/5728) ([akuzm](https://github.com/akuzm)) @@ -1188,16 +1104,12 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 * 根据此处的请求,对新 JIT 功能在更大数据集上的性能进行测试 [#5263](https://github.com/ClickHouse/ClickHouse/issues/5263) [#5887](https://github.com/ClickHouse/ClickHouse/pull/5887)([Guillaume Tassery](https://github.com/YiuRULE)) * 在压力测试中运行有状态测试 [12693e568722f11e19859742f56428455501fd2a](https://github.com/ClickHouse/ClickHouse/commit/12693e568722f11e19859742f56428455501fd2a) ([alesapin](https://github.com/alesapin)) - - #### 向后不兼容的变更 {#backward-incompatible-change-7} - 此版本中的 `Kafka` 表引擎不可用。 - 对新的 `MergeTree` 表默认启用 `adaptive_index_granularity` = 10MB。如果你在 19.11+ 版本上创建了新的 MergeTree 表,则无法降级到 19.6 之前的版本。 [#5628](https://github.com/ClickHouse/ClickHouse/pull/5628) ([alesapin](https://github.com/alesapin)) - 移除了供 Yandex.Metrica 使用的、已过时且未公开文档的内置字典。函数 `OSIn`、`SEIn`、`OSToRoot`、`SEToRoot`、`OSHierarchy`、`SEHierarchy` 将不再可用。如果你在使用这些函数,请发送邮件至 clickhouse-feedback@yandex-team.com。注意:在最后一刻我们决定暂时保留这些函数。 [#5780](https://github.com/ClickHouse/ClickHouse/pull/5780) ([alexey-milovidov](https://github.com/alexey-milovidov)) - - ## ClickHouse 版本 19.10 {#clickhouse-release-19-10} ### ClickHouse 版本 19.10.1.5,2019-07-12 {#clickhouse-release-19-10-1-5-2019-07-12} @@ -1223,8 +1135,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### 改进 {#improvement-7} - - - 启用 `input_format_defaults_for_omitted_fields` 设置后,将 `CSV` 中的空单元格视为默认值。[#5625](https://github.com/ClickHouse/ClickHouse/pull/5625) ([akuzm](https://github.com/akuzm)) - 对外部字典进行非阻塞加载。[#5567](https://github.com/ClickHouse/ClickHouse/pull/5567) ([Vitaly Baranov](https://github.com/vitlibar)) - 已建立连接的网络超时时间可以根据设置动态更改。[#4558](https://github.com/ClickHouse/ClickHouse/pull/4558) ([Konstantin Podshumok](https://github.com/podshumok)) @@ -1243,15 +1153,11 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### 构建/测试/打包改进 {#buildtestingpackaging-improvement-8} - - - 实现了一个用于测试的 ZooKeeper 接口实现 `TestKeeper` [#5643](https://github.com/ClickHouse/ClickHouse/pull/5643) ([alexey-milovidov](https://github.com/alexey-milovidov)) ([levushkin aleksej](https://github.com/alexey-milovidov)) - 从现在开始,`.sql` 测试可以按服务器隔离、并行运行,并使用随机数据库。这样可以更快地运行测试,添加具有自定义服务器配置的新测试,并确保不同测试之间不会互相影响。[#5554](https://github.com/ClickHouse/ClickHouse/pull/5554) ([Ivan](https://github.com/abyss7)) - 从性能测试中移除了 `` 和 `` [#5672](https://github.com/ClickHouse/ClickHouse/pull/5672) ([Olga Khvostikova](https://github.com/stavrolia)) - 修复了 `Pretty` 格式的 "select_format" 性能测试 [#5642](https://github.com/ClickHouse/ClickHouse/pull/5642) ([alexey-milovidov](https://github.com/alexey-milovidov)) - - ## ClickHouse Release 19.9 {#clickhouse-release-19-9} ### ClickHouse Release 19.9.3.31, 2019-07-05 {#clickhouse-release-19-9-3-31-2019-07-05} @@ -1271,8 +1177,8 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### New Feature {#new-feature-8} -- 在 `system.parts` 表中显示关于 frozen parts 的信息。 [#5471](https://github.com/ClickHouse/ClickHouse/pull/5471) ([proller](https://github.com/proller)) -- 如果未在参数中设置密码,则在 TTY 上启动 `clickhouse-client` 时向客户端询问密码。 [#5092](https://github.com/ClickHouse/ClickHouse/pull/5092) ([proller](https://github.com/proller)) +- 在 `system.parts` 表中显示冻结分区片段(frozen parts)的信息。 [#5471](https://github.com/ClickHouse/ClickHouse/pull/5471) ([proller](https://github.com/proller)) +- 如果未在参数中设置密码,则在 TTY 终端上启动 `clickhouse-client` 时提示输入客户端密码。 [#5092](https://github.com/ClickHouse/ClickHouse/pull/5092) ([proller](https://github.com/proller)) - 为 Decimal 类型实现 `dictGet` 和 `dictGetOrDefault` 函数。 [#5394](https://github.com/ClickHouse/ClickHouse/pull/5394) ([Artem Zuikov](https://github.com/4ertus2)) #### Improvement {#improvement-8} @@ -1285,8 +1191,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### Bug Fix {#bug-fix-24} - - * 修复 Kafka 中潜在的数据丢失 [#5445](https://github.com/ClickHouse/ClickHouse/pull/5445) ([Ivan](https://github.com/abyss7)) * 修复在以零列为参数调用时 `PrettySpace` 格式中可能出现的无限循环问题 [#5560](https://github.com/ClickHouse/ClickHouse/pull/5560) ([Olga Khvostikova](https://github.com/stavrolia)) * 修复了线性模型中 UInt32 溢出的问题。允许对非 const 模型参数调用 eval ML 模型。[#5516](https://github.com/ClickHouse/ClickHouse/pull/5516) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) @@ -1306,8 +1210,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 * 在 `dictGetT` 函数中遇到错误的整数时抛出异常,而不是直接崩溃。[#5446](https://github.com/ClickHouse/ClickHouse/pull/5446) ([Artem Zuikov](https://github.com/4ertus2)) * 修复 `system.dictionaries` 表中哈希字典的 `element_count` 和 `load_factor` 字段值错误。 [#5440](https://github.com/ClickHouse/ClickHouse/pull/5440) ([Azat Khuzhin](https://github.com/azat)) - - #### 构建/测试/打包改进 {#buildtestingpackaging-improvement-9} - 修复在未启用 `Brotli` HTTP 压缩支持(`ENABLE_BROTLI=OFF` cmake 变量)的情况下的构建问题。[#5521](https://github.com/ClickHouse/ClickHouse/pull/5521) ([Anton Yuzhaninov](https://github.com/citrin)) @@ -1324,16 +1226,12 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 - 修复将 ClickHouse 作为子模块进行构建时的问题。[#5574](https://github.com/ClickHouse/ClickHouse/pull/5574) ([proller](https://github.com/proller)) - 改进 JSONExtract 的性能测试。[#5444](https://github.com/ClickHouse/ClickHouse/pull/5444) ([Vitaly Baranov](https://github.com/vitlibar)) - - ## ClickHouse 19.8 发布 {#clickhouse-release-19-8} ### ClickHouse 19.8.3.8 发布,2019-06-11 {#clickhouse-release-19-8-3-8-2019-06-11} #### 新功能 {#new-features} - - * 增加了用于处理 JSON 的函数 [#4686](https://github.com/ClickHouse/ClickHouse/pull/4686) ([hcz](https://github.com/hczhcz)) [#5124](https://github.com/ClickHouse/ClickHouse/pull/5124). ([Vitaly Baranov](https://github.com/vitlibar)) * 添加一个名为 basename 的函数,其行为类似于许多语言中已存在的 basename 函数(例如 Python 中的 `os.path.basename`、PHP 中的 `basename` 等)。可同时处理类 UNIX 路径和 Windows 路径。[#5136](https://github.com/ClickHouse/ClickHouse/pull/5136) ([Guillaume Tassery](https://github.com/YiuRULE)) * 添加了 `LIMIT n, m BY` 或 `LIMIT m OFFSET n BY` 语法,用于在 LIMIT BY 子句中将偏移量设为 n。 [#5138](https://github.com/ClickHouse/ClickHouse/pull/5138) ([Anton Popov](https://github.com/CurtizJ)) @@ -1354,12 +1252,8 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 * 新增了函数 `IPv4CIDRtoIPv4Range` 和 `IPv6CIDRtoIPv6Range`,用于根据 CIDR 计算子网中 IP 地址范围的起始和结束地址。 [#5095](https://github.com/ClickHouse/ClickHouse/pull/5095) ([Guillaume Tassery](https://github.com/YiuRULE)) * 在通过 HTTP 发送查询且启用 `send_progress_in_http_headers` 设置时,添加一个 X-ClickHouse-Summary 头部。返回与 X-ClickHouse-Progress 相同的常规信息,并额外包含本次查询插入的行数和字节数等信息。 [#5116](https://github.com/ClickHouse/ClickHouse/pull/5116) ([Guillaume Tassery](https://github.com/YiuRULE)) - - #### 改进 {#improvements} - - * 为 MergeTree 系列表添加了 `max_parts_in_total` 设置(默认值:100 000),用于防止不安全地指定分区键 #5166。 [#5171](https://github.com/ClickHouse/ClickHouse/pull/5171) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `clickhouse-obfuscator`:通过将初始种子与列名(而非列位置)组合,为每一列派生种子值。此功能用于转换包含多个关联表的数据集,以便在转换后这些表之间仍然可以进行 JOIN 操作。[#5178](https://github.com/ClickHouse/ClickHouse/pull/5178) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 新增函数 `JSONExtractRaw`、`JSONExtractKeyAndValues`。将函数 `jsonExtract` 重命名为 `JSONExtract`。在出错时,这些函数返回相应的值,而不是 `NULL`。修改了函数 `JSONExtract`,现在它从最后一个参数获取返回类型,并且不会引入 Nullable 类型。当 AVX2 指令不可用时,增加了回退到 RapidJSON 的机制。simdjson 库已更新到新版本。[#5235](https://github.com/ClickHouse/ClickHouse/pull/5235) ([Vitaly Baranov](https://github.com/vitlibar)) @@ -1383,8 +1277,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 * 在对 Distributed 表执行异步 INSERT 时遵从查询设置。 [#4936](https://github.com/ClickHouse/ClickHouse/pull/4936) ([TCeason](https://github.com/TCeason)) * 已将函数 `leastSqr` 重命名为 `simpleLinearRegression`,`LinearRegression` 重命名为 `linearRegression`,`LogisticRegression` 重命名为 `logisticRegression`。 [#5391](https://github.com/ClickHouse/ClickHouse/pull/5391) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) - - #### 性能改进 {#performance-improvements} - 在 `ALTER MODIFY` 查询中对非复制的 MergeTree 表的部分进行并行处理。[#4639](https://github.com/ClickHouse/ClickHouse/pull/4639) ([Ivan Kush](https://github.com/IvanKush)) @@ -1404,14 +1296,12 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 - 修复 `SimpleAggregateFunction` 在 `String` 长度大于 `MAX_SMALL_STRING_SIZE` 时的问题。[#5311](https://github.com/ClickHouse/ClickHouse/pull/5311) ([Azat Khuzhin](https://github.com/azat)) - 修复在 `IN` 中从 `Decimal` 转换为 `Nullable(Decimal)` 的错误,并支持其他 Decimal 到 Decimal 的转换(包括不同的小数位数)。[#5350](https://github.com/ClickHouse/ClickHouse/pull/5350) ([Artem Zuikov](https://github.com/4ertus2)) - 修复 simdjson 库中 FPU 状态被破坏的问题,该问题会导致 `uniqHLL` 和 `uniqCombined` 聚合函数以及 `log` 等数学函数的计算结果错误。[#5354](https://github.com/ClickHouse/ClickHouse/pull/5354) ([alexey-milovidov](https://github.com/alexey-milovidov)) -- 修复 JSON 函数中处理常量 / 非常量混合场景时的问题。[#5435](https://github.com/ClickHouse/ClickHouse/pull/5435) ([Vitaly Baranov](https://github.com/vitlibar)) +- 修复 JSON 函数中处理常量/非常量混合场景时的问题。[#5435](https://github.com/ClickHouse/ClickHouse/pull/5435) ([Vitaly Baranov](https://github.com/vitlibar)) - 修复 `retention` 函数。现在一行数据中所有满足条件的项都会被添加到该行的数据状态中。[#5119](https://github.com/ClickHouse/ClickHouse/pull/5119) ([小路](https://github.com/nicelulu)) - 修复 `quantileExact` 在使用 Decimal 时的结果类型问题。[#5304](https://github.com/ClickHouse/ClickHouse/pull/5304) ([Artem Zuikov](https://github.com/4ertus2)) #### 文档 {#documentation} - - - 将 `CollapsingMergeTree` 的文档翻译为中文。[#5168](https://github.com/ClickHouse/ClickHouse/pull/5168) ([张风啸](https://github.com/AlexZFX)) - 将部分关于表引擎的文档翻译为中文。 [#5134](https://github.com/ClickHouse/ClickHouse/pull/5134) @@ -1428,8 +1318,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 - 添加了一份简短的性能测试编写说明。[#5408](https://github.com/ClickHouse/ClickHouse/pull/5408) ([alesapin](https://github.com/alesapin)) - 在性能测试中新增了在 CREATE、FILL 和 DROP 查询里进行替换的功能。[#5367](https://github.com/ClickHouse/ClickHouse/pull/5367) ([Olga Khvostikova](https://github.com/stavrolia)) - - ## ClickHouse 版本 19.7 {#clickhouse-release-19-7} ### ClickHouse 版本 19.7.5.29,2019-07-05 {#clickhouse-release-19-7-5-29-2019-07-05} @@ -1444,9 +1332,7 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 - 添加了与数组函数 `hasAny` 和 `hasAll` 类似的位图函数 `bitmapHasAny` 和 `bitmapHasAll`。 [#5279](https://github.com/ClickHouse/ClickHouse/pull/5279) ([Sergi Vladykin](https://github.com/svladykin)) -#### Bug 修复 {#bug-fixes-1} - - +#### 缺陷修复 {#bug-fixes-1} - 修复在包含 Null 值时 `minmax` 索引导致的段错误问题。[#5246](https://github.com/ClickHouse/ClickHouse/pull/5246) ([Nikita Vasilev](https://github.com/nikvas0)) - 将 LIMIT BY 中的所有输入列标记为必需的输出列,修复某些分布式查询中的 "Not found column" 错误。[#5407](https://github.com/ClickHouse/ClickHouse/pull/5407) ([Constantin S. Pan](https://github.com/kvap)) @@ -1469,9 +1355,7 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 ### ClickHouse 版本 19.7.3.9,2019-05-30 {#clickhouse-release-19-7-3-9-2019-05-30} -#### 新特性 {#new-features-2} - - +#### 新功能 {#new-features-2} - 允许限制用户可指定的设置取值范围。 这些约束可以在用户设置配置文件中进行配置。 @@ -1501,7 +1385,7 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### 性能改进 {#performance-improvements-1} -- 当在 `ORDER BY` 中按单个数值列排序且未使用 `LIMIT` 时,使用基数排序 (radix sort)。[#5106](https://github.com/ClickHouse/ClickHouse/pull/5106), +- 当在 `ORDER BY` 中按单个数值列排序且未使用 `LIMIT` 时,使用基数排序(radix sort)。[#5106](https://github.com/ClickHouse/ClickHouse/pull/5106), [#4439](https://github.com/ClickHouse/ClickHouse/pull/4439) ([Evgenii Pravda](https://github.com/kvinty), [alexey-milovidov](https://github.com/alexey-milovidov)) @@ -1516,9 +1400,7 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 [#5068](https://github.com/ClickHouse/ClickHouse/pull/5068) ([never lee](https://github.com/neverlee)) -#### 构建/测试/打包改进 {#buildtestingpackaging-improvements-1} - - +#### 构建 / 测试 / 打包改进 {#buildtestingpackaging-improvements-1} - 在 `clickhouse-test` 中正确打印 UTF-8 字符。 [#5084](https://github.com/ClickHouse/ClickHouse/pull/5084) @@ -1535,8 +1417,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 [#5110](https://github.com/ClickHouse/ClickHouse/pull/5110) ([proller](https://github.com/proller)) - - ## ClickHouse 版本 19.6 {#clickhouse-release-19-6} ### ClickHouse 版本 19.6.3.18,2019-06-13 {#clickhouse-release-19-6-3-18-2019-06-13} @@ -1565,8 +1445,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### 改进 {#improvements-1} - - - 为函数 `substringUTF8` 新增对非常量以及负值 size 和 length 参数的支持。[#4989](https://github.com/ClickHouse/ClickHouse/pull/4989) ([alexey-milovidov](https://github.com/alexey-milovidov)) - 禁用在 LEFT JOIN 中对右表、RIGHT JOIN 中对左表,以及 FULL JOIN 中对两侧表的谓词下推(push-down)。这修复了某些情况下错误的 JOIN 结果。[#4846](https://github.com/ClickHouse/ClickHouse/pull/4846) ([Ivan](https://github.com/abyss7)) - `clickhouse-copier`:自动从 `--task-file` 选项指定的文件中上传任务配置。[#4876](https://github.com/ClickHouse/ClickHouse/pull/4876) ([proller](https://github.com/proller)) @@ -1591,9 +1469,7 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 - 修复了在 `SELECT DISTINCT` 与 `JOIN` 一起使用时可能出现的错误结果。[#5001](https://github.com/ClickHouse/ClickHouse/pull/5001) ([Artem Zuikov](https://github.com/4ertus2)) - 修复了一个极少见的数据竞争问题:在执行包含至少两个来自 system.columns、system.tables、system.parts、system.parts_tables 或 Merge 系列表的 SELECT,并通过 UNION ALL 合并,同时对相关表的列执行 ALTER 操作的查询时,可能会触发该问题。[#5189](https://github.com/ClickHouse/ClickHouse/pull/5189) ([alexey-milovidov](https://github.com/alexey-milovidov)) -#### 构建 / 测试 / 打包改进 {#buildtestingpackaging-improvements-2} - - +#### 构建/测试/打包改进 {#buildtestingpackaging-improvements-2} - 修复了在不同主机上运行 clickhouse-server 时出现的测试失败问题 [#4713](https://github.com/ClickHouse/ClickHouse/pull/4713) ([Vasily Nemkov](https://github.com/Enmk)) - clickhouse-test:在非 TTY 环境中禁用颜色控制序列。[#4937](https://github.com/ClickHouse/ClickHouse/pull/4937) ([alesapin](https://github.com/alesapin)) @@ -1602,8 +1478,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 - 将 Yandex LFAlloc 添加到 ClickHouse,以便使用不同方式为 MarkCache 和 UncompressedCache 数据分配内存,从而更可靠地捕获段错误 [#4995](https://github.com/ClickHouse/ClickHouse/pull/4995) ([Danila Kutenin](https://github.com/danlark1)) - 用于辅助回溯移植(backport)和编写变更日志的 Python 工具。[#4949](https://github.com/ClickHouse/ClickHouse/pull/4949) ([Ivan](https://github.com/abyss7)) - - ## ClickHouse 版本 19.5 {#clickhouse-release-19-5} ### ClickHouse 版本 19.5.4.22,2019-05-13 {#clickhouse-release-19-5-4-22-2019-05-13} @@ -1623,9 +1497,7 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 ### ClickHouse 版本 19.5.2.6,2019-04-15 {#clickhouse-release-19-5-2-6-2019-04-15} -#### 新特性 {#new-features-4} - - +#### 新功能 {#new-features-4} - 添加了基于 [Hyperscan](https://github.com/intel/hyperscan) 的多模式正则表达式匹配(函数 `multiMatchAny`、`multiMatchAnyIndex`、`multiFuzzyMatchAny`、`multiFuzzyMatchAnyIndex`)。[#4780](https://github.com/ClickHouse/ClickHouse/pull/4780),[#4841](https://github.com/ClickHouse/ClickHouse/pull/4841)([Danila Kutenin](https://github.com/danlark1)) - 添加了 `multiSearchFirstPosition` 函数。[#4780](https://github.com/ClickHouse/ClickHouse/pull/4780)([Danila Kutenin](https://github.com/danlark1)) @@ -1636,8 +1508,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### 改进 {#improvement-9} - - - `topK` 和 `topKWeighted` 现在支持自定义 `loadFactor`(修复问题 [#4252](https://github.com/ClickHouse/ClickHouse/issues/4252))。[#4634](https://github.com/ClickHouse/ClickHouse/pull/4634)([Kirill Danshin](https://github.com/kirillDanshin)) - 允许在没有采样的表上使用 `parallel_replicas_count > 1`(对于这类表,该设置会被直接忽略)。在之前的版本中,这会导致异常。[#4637](https://github.com/ClickHouse/ClickHouse/pull/4637)([Alexey Elymanov](https://github.com/digitalist)) - 支持 `CREATE OR REPLACE VIEW`。允许在单条语句中创建视图或设置新的定义。[#4654](https://github.com/ClickHouse/ClickHouse/pull/4654)([Boris Granveaud](https://github.com/bgranvea)) @@ -1655,8 +1525,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### Bug 修复 {#bug-fix-26} - - * 在内存分配失败时避免调用 `std::terminate`。现在会按预期抛出 `std::bad_alloc` 异常。 [#4665](https://github.com/ClickHouse/ClickHouse/pull/4665) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 修复了从缓冲区读取 `capnproto` 的问题。有时文件无法通过 HTTP 成功加载。[#4674](https://github.com/ClickHouse/ClickHouse/pull/4674)([Vladislav](https://github.com/smirnov-vs)) * 修复在执行 `OPTIMIZE TABLE FINAL` 查询时出现的错误 `Unknown log entry type: 0`。 [#4683](https://github.com/ClickHouse/ClickHouse/pull/4683) ([Amos Bird](https://github.com/amosbird)) @@ -1695,8 +1563,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 * 修正函数 `toISOWeek` 在 1970 年的结果。[#4988](https://github.com/ClickHouse/ClickHouse/pull/4988) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 修复在针对 `ReplicatedMergeTree*` 表引擎系列执行 `ON CLUSTER` 时,`DROP`、`TRUNCATE` 和 `OPTIMIZE` 查询被重复执行的问题。[#4991](https://github.com/ClickHouse/ClickHouse/pull/4991) ([alesapin](https://github.com/alesapin)) - - #### 向后不兼容的变更 {#backward-incompatible-change-8} - 将设置 `insert_sample_with_metadata` 重命名为 `input_format_defaults_for_omitted_fields`。 [#4771](https://github.com/ClickHouse/ClickHouse/pull/4771) ([Artem Zuikov](https://github.com/4ertus2)) @@ -1710,8 +1576,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### 构建/测试/打包改进 {#buildtestingpackaging-improvement-10} - - - 加强 debug 构建:更细粒度的内存映射和 ASLR;为 mark 缓存和索引添加内存保护。这有助于在 ASan 和 MSan 无法捕获问题时发现更多内存踩踏类 bug。[#4632](https://github.com/ClickHouse/ClickHouse/pull/4632) ([alexey-milovidov](https://github.com/alexey-milovidov)) - 增加对 cmake 变量 `ENABLE_PROTOBUF`、`ENABLE_PARQUET` 和 `ENABLE_BROTLI` 的支持,从而可以启用/禁用上述特性(与我们对 librdkafka、mysql 等所做的类似)。[#4669](https://github.com/ClickHouse/ClickHouse/pull/4669) ([Silviu Caragea](https://github.com/silviucpp)) - 增加在测试运行结束后,当某些查询挂起时打印进程列表以及所有线程堆栈跟踪的能力。[#4675](https://github.com/ClickHouse/ClickHouse/pull/4675) ([alesapin](https://github.com/alesapin)) @@ -1725,16 +1589,12 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 - 在使用 Thread Sanitizer 编译时禁用 `mremap` 的使用。出乎意料的是,TSan 不会拦截 `mremap`(尽管会拦截 `mmap`、`munmap`),这会导致误报。已修复有状态测试中的 TSan 报告。[#4859](https://github.com/ClickHouse/ClickHouse/pull/4859) ([alexey-milovidov](https://github.com/alexey-milovidov)) - 添加通过 HTTP 接口使用 format schema 的测试用例。[#4864](https://github.com/ClickHouse/ClickHouse/pull/4864) ([Vitaly Baranov](https://github.com/vitlibar)) - - ## ClickHouse 版本 19.4 {#clickhouse-release-19-4} ### ClickHouse 版本 19.4.4.33,2019-04-17 {#clickhouse-release-19-4-4-33-2019-04-17} #### 错误修复 {#bug-fixes-7} - - * 避免在内存分配失败时调用 `std::terminate`。现在会按预期抛出 `std::bad_alloc` 异常。[#4665](https://github.com/ClickHouse/ClickHouse/pull/4665) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 修复了 `capnproto` 从缓冲区读取的问题。有时文件无法通过 HTTP 成功加载。[#4674](https://github.com/ClickHouse/ClickHouse/pull/4674) ([Vladislav](https://github.com/smirnov-vs)) * 修复在执行 `OPTIMIZE TABLE FINAL` 查询后出现的错误 `Unknown log entry type: 0`。 [#4683](https://github.com/ClickHouse/ClickHouse/pull/4683) ([Amos Bird](https://github.com/amosbird)) @@ -1768,8 +1628,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 * 修复 `toISOWeek` 函数在 1970 年的结果。[#4988](https://github.com/ClickHouse/ClickHouse/pull/4988)([alexey-milovidov](https://github.com/alexey-milovidov)) * 修复在 `ReplicatedMergeTree*` 表族上使用 `ON CLUSTER` 执行 `DROP`、`TRUNCATE` 和 `OPTIMIZE` 查询时出现的重复执行问题。[#4991](https://github.com/ClickHouse/ClickHouse/pull/4991) ([alesapin](https://github.com/alesapin)) - - #### 改进 {#improvements-2} - 将普通列、`DEFAULT`、`MATERIALIZED` 和 `ALIAS` 列维护在同一个列表中(修复问题 [#2867](https://github.com/ClickHouse/ClickHouse/issues/2867))。[#4707](https://github.com/ClickHouse/ClickHouse/pull/4707)([Alex Zatelepin](https://github.com/ztlpn)) @@ -1801,8 +1659,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### 新功能 {#new-features-5} - - - 为 `Protobuf` 格式添加了完整支持(输入、输出以及嵌套数据结构)。[#4174](https://github.com/ClickHouse/ClickHouse/pull/4174) [#4493](https://github.com/ClickHouse/ClickHouse/pull/4493) ([Vitaly Baranov](https://github.com/vitlibar)) - 基于 Roaring Bitmaps 新增了位图函数。[#4207](https://github.com/ClickHouse/ClickHouse/pull/4207) ([Andy Yang](https://github.com/andyyzh)) [#4568](https://github.com/ClickHouse/ClickHouse/pull/4568) ([Vitaly Baranov](https://github.com/vitlibar)) - 新增对 Parquet 格式的支持。[#4448](https://github.com/ClickHouse/ClickHouse/pull/4448) ([proller](https://github.com/proller)) @@ -1815,8 +1671,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### Bug 修复 {#bug-fixes-11} - - * 本次发布还包含 19.3 和 19.1 中的所有错误修复。 * 修复了数据跳过索引中的一个错误:在执行 `INSERT` 后 granule 的顺序不正确。[#4407](https://github.com/ClickHouse/ClickHouse/pull/4407) ([Nikita Vasilev](https://github.com/nikvas0)) * 修复了 `Nullable` 和 `LowCardinality` 列上的 `set` 索引。此前,在 `Nullable` 或 `LowCardinality` 列上使用 `set` 索引,在执行查询时会导致错误 `Data type must be deserialized with multiple streams`。 [#4594](https://github.com/ClickHouse/ClickHouse/pull/4594) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) @@ -1838,8 +1692,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 * 修复谓词优化器中对 lambda 函数的处理。 [#4408](https://github.com/ClickHouse/ClickHouse/pull/4408) ([Winter Zhang](https://github.com/zhang2014)) * 多个 JOIN,多处修复。 [#4595](https://github.com/ClickHouse/ClickHouse/pull/4595) ([Artem Zuikov](https://github.com/4ertus2)) - - #### 改进 {#improvements-3} - 支持在 JOIN ON 子句中为右表列使用别名。 [#4412](https://github.com/ClickHouse/ClickHouse/pull/4412) ([Artem Zuikov](https://github.com/4ertus2)) @@ -1856,8 +1708,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### 构建/测试/打包改进 {#buildtestingpackaging-improvement-12} - - - 增加对 clang-9 的支持 [#4604](https://github.com/ClickHouse/ClickHouse/pull/4604) ([alexey-milovidov](https://github.com/alexey-milovidov)) - 修复错误的 `__asm__` 指令(再次修复) [#4621](https://github.com/ClickHouse/ClickHouse/pull/4621) ([Konstantin Podshumok](https://github.com/podshumok)) - 添加从命令行为 `clickhouse-performance-test` 指定设置的功能。 [#4437](https://github.com/ClickHouse/ClickHouse/pull/4437) ([alesapin](https://github.com/alesapin)) @@ -1869,8 +1719,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 - 修复在 Mac 上的编译问题。 [#4371](https://github.com/ClickHouse/ClickHouse/pull/4371) ([Vitaly Baranov](https://github.com/vitlibar)) - 修复 FreeBSD 和多种非常规构建配置下的构建问题。 [#4444](https://github.com/ClickHouse/ClickHouse/pull/4444) ([proller](https://github.com/proller)) - - ## ClickHouse 发行版 19.3 {#clickhouse-release-19-3} ### ClickHouse 发行版 19.3.9.1,2019-04-02 {#clickhouse-release-19-3-9-1-2019-04-02} @@ -1883,7 +1731,7 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### 构建/测试/打包改进 {#buildtestingpackaging-improvement-13} -- 增加了一种以自定义用户启动 clickhouse-server 镜像的方式。 [#4753](https://github.com/ClickHouse/ClickHouse/pull/4753) ([Mikhail f. Shiryaev](https://github.com/Felixoid)) +- 增加了一种以自定义用户启动 clickhouse-server 镜像的方式。[#4753](https://github.com/ClickHouse/ClickHouse/pull/4753) ([Mikhail f. Shiryaev](https://github.com/Felixoid)) ### ClickHouse 发行版 19.3.7,2019-03-12 {#clickhouse-release-19-3-7-2019-03-12} @@ -1904,8 +1752,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### 构建/测试/打包改进 {#buildtestingpackaging-improvements-3} - - - 修复了启用 AVX 时的构建问题。[#4527](https://github.com/ClickHouse/ClickHouse/pull/4527) ([alexey-milovidov](https://github.com/alexey-milovidov)) - 基于已知稳定的内核版本启用扩展记账和 IO 记账,而不是基于编译时所在的内核版本。[#4541](https://github.com/ClickHouse/ClickHouse/pull/4541) ([nvartolomei](https://github.com/nvartolomei)) - 允许跳过对 `core_dump.size_limit` 的设置,当设置限制失败时发出警告而不是抛出异常。[#4473](https://github.com/ClickHouse/ClickHouse/pull/4473) ([proller](https://github.com/proller)) @@ -1935,8 +1781,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 - 大量针对 FreeBSD 的构建修复。[#4397](https://github.com/ClickHouse/ClickHouse/pull/4397) ([proller](https://github.com/proller)) - 修复了在包含相同别名的子查询中进行别名替换时的问题(issue [#4110](https://github.com/ClickHouse/ClickHouse/issues/4110))。[#4351](https://github.com/ClickHouse/ClickHouse/pull/4351) ([Artem Zuikov](https://github.com/4ertus2)) - - #### 构建/测试/打包改进 {#buildtestingpackaging-improvements-4} - 在 Docker 镜像中支持以无状态测试模式运行 `clickhouse-server`。[#4347](https://github.com/ClickHouse/ClickHouse/pull/4347) ([Vasily Nemkov](https://github.com/Enmk)) @@ -1945,8 +1789,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### 新功能 {#new-features-6} - - - 新增 `KILL MUTATION` 语句,用于删除由于某些原因卡住的 mutation。向 `system.mutations` 表中添加了 `latest_failed_part`、`latest_fail_time`、`latest_fail_reason` 字段,便于排查问题。 [#4287](https://github.com/ClickHouse/ClickHouse/pull/4287) ([Alex Zatelepin](https://github.com/ztlpn)) - 新增聚合函数 `entropy`,用于计算香农熵(Shannon entropy)。 [#4238](https://github.com/ClickHouse/ClickHouse/pull/4238) ([Quid37](https://github.com/Quid37)) - 现在可以向服务器发送 `INSERT INTO tbl VALUES (....` 查询,而无需拆分为 `query` 和 `data` 部分。 [#4301](https://github.com/ClickHouse/ClickHouse/pull/4301) ([alesapin](https://github.com/alesapin)) @@ -1968,15 +1810,11 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### 实验性特性 {#experimental-features-2} - - - 为 MergeTree 表引擎系列新增了 `minmax` 和 `set` 数据跳过索引。[#4143](https://github.com/ClickHouse/ClickHouse/pull/4143) ([Nikita Vasilev](https://github.com/nikvas0)) - 在可能的情况下,将 `CROSS JOIN` 自动转换为 `INNER JOIN`。[#4221](https://github.com/ClickHouse/ClickHouse/pull/4221) [#4266](https://github.com/ClickHouse/ClickHouse/pull/4266) ([Artem Zuikov](https://github.com/4ertus2)) #### Bug 修复 {#bug-fixes-17} - - * 修复了在 `JOIN ON` 部分中因重复列导致的 `Not found column` 错误。[#4279](https://github.com/ClickHouse/ClickHouse/pull/4279) ([Artem Zuikov](https://github.com/4ertus2)) * 使 `START REPLICATED SENDS` 命令真正开始执行复制发送。[#4229](https://github.com/ClickHouse/ClickHouse/pull/4229) ([nvartolomei](https://github.com/nvartolomei)) * 修复了在使用 `Array(LowCardinality)` 参数时聚合函数的执行问题。[#4055](https://github.com/ClickHouse/ClickHouse/pull/4055) ([KochetovNicolai](https://github.com/KochetovNicolai)) @@ -2005,8 +1843,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 * 修复了一个罕见的竞争条件,该问题会导致在删除旧数据部件时操作失败并出现 `File not found` 错误。 [#4378](https://github.com/ClickHouse/ClickHouse/pull/4378) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 修复安装包中缺少 `/etc/clickhouse-server/config.xml` 的情况。 [#4343](https://github.com/ClickHouse/ClickHouse/pull/4343) ([proller](https://github.com/proller)) - - #### 构建/测试/打包改进 {#buildtestingpackaging-improvements-5} - Debian 包:根据配置修正 `/etc/clickhouse-server/preprocessed` 链接。 [#4205](https://github.com/ClickHouse/ClickHouse/pull/4205) ([proller](https://github.com/proller)) @@ -2030,8 +1866,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### 向后不兼容的变更 {#backward-incompatible-changes-1} - - - 移除了 `allow_experimental_low_cardinality_type` 设置。`LowCardinality` 数据类型已可用于生产环境。[#4323](https://github.com/ClickHouse/ClickHouse/pull/4323) ([alexey-milovidov](https://github.com/alexey-milovidov)) - 根据可用内存大小,相应减小 mark cache 和未压缩 cache 的大小。[#4240](https://github.com/ClickHouse/ClickHouse/pull/4240) ([Lopatin Konstantin](https://github.com/k-lopatin)) - 在 `CREATE TABLE` 查询中增加了关键字 `INDEX`。名为 `index` 的列必须使用反引号或双引号进行引用:`` `index` ``。[#4143](https://github.com/ClickHouse/ClickHouse/pull/4143) ([Nikita Vasilev](https://github.com/nikvas0)) @@ -2044,8 +1878,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### 改进 {#improvements-5} - - - 为 FreeBSD 实现了 AIO 支持。 [#4305](https://github.com/ClickHouse/ClickHouse/pull/4305) ([urgordeadbeef](https://github.com/urgordeadbeef)) - `SELECT * FROM a JOIN b USING a, b` 现在只返回左表中的 `a` 和 `b` 列。 [#4141](https://github.com/ClickHouse/ClickHouse/pull/4141) ([Artem Zuikov](https://github.com/4ertus2)) - 允许客户端选项 `-C` 像 `-c` 选项一样使用。 [#4232](https://github.com/ClickHouse/ClickHouse/pull/4232) ([syominsergey](https://github.com/syominsergey)) @@ -2060,8 +1892,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 - 改进了服务端关闭耗时以及 ALTER 等待时间。 [#4372](https://github.com/ClickHouse/ClickHouse/pull/4372) ([alexey-milovidov](https://github.com/alexey-milovidov)) - 在 system.replicas 中添加了关于 `replicated_can_become_leader` 设置的信息,并在副本不会尝试成为 leader 时添加了日志记录。 [#4379](https://github.com/ClickHouse/ClickHouse/pull/4379) ([Alex Zatelepin](https://github.com/ztlpn)) - - ## ClickHouse 版本 19.1 {#clickhouse-release-19-1} ### ClickHouse 版本 19.1.14,2019-03-14 {#clickhouse-release-19-1-14-2019-03-14} @@ -2076,8 +1906,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 此版本包含的补丁集与 19.3.6 完全相同。 - - ## ClickHouse 发行版 19.1 {#clickhouse-release-19-1-1} ### ClickHouse 发行版 19.1.9,2019-02-21 {#clickhouse-release-19-1-9-2019-02-21} @@ -2093,16 +1921,12 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 - 修复了安装包中缺少 /etc/clickhouse-server/config.xml 的问题。 [#4343](https://github.com/ClickHouse/ClickHouse/pull/4343) ([proller](https://github.com/proller)) - - ## ClickHouse 19.1 版本发布 {#clickhouse-release-19-1-2} ### ClickHouse 19.1.7 版本发布,2019-02-15 {#clickhouse-release-19-1-7-2019-02-15} #### Bug 修复 {#bug-fixes-20} - - * 在 `joinGet` 函数中返回正确的类型并妥善处理锁。[#4153](https://github.com/ClickHouse/ClickHouse/pull/4153) ([Amos Bird](https://github.com/amosbird)) * 修复了在服务器关闭过程中再次尝试创建系统日志时出现的错误。 [#4254](https://github.com/ClickHouse/ClickHouse/pull/4254) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 已修复一个错误:如果存在使用 `Dictionary` 引擎的数据库,所有字典会在服务器启动时被强制加载,此时如果有字典使用来自本机(localhost)上 ClickHouse 的数据源,该字典将无法加载。 [#4255](https://github.com/ClickHouse/ClickHouse/pull/4255) ([alexey-milovidov](https://github.com/alexey-milovidov)) @@ -2128,8 +1952,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 * 修复了 `Date` 与 `DateTime` 比较结果不正确的问题。 [#4237](https://github.com/ClickHouse/ClickHouse/pull/4237) ([valexey](https://github.com/valexey)) * 修复了在条件运算符(函数 `if`)的分支中使用 `Date` 和 `DateTime` 参数时会产生错误结果的问题。为函数 `if` 添加了通用实现。[#4243](https://github.com/ClickHouse/ClickHouse/pull/4243) ([alexey-milovidov](https://github.com/alexey-milovidov)) - - ### ClickHouse Release 19.1.6, 2019-01-24 {#clickhouse-release-19-1-6-2019-01-24} #### 新特性 {#new-features-7} @@ -2149,16 +1971,12 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 - 新增哈希函数 `javaHash`、`hiveHash`。 [#3811](https://github.com/ClickHouse/ClickHouse/pull/3811) ([shangshujie365](https://github.com/shangshujie365)) - 新增表函数 `remoteSecure`。该函数与 `remote` 类似,但使用安全连接。 [#4088](https://github.com/ClickHouse/ClickHouse/pull/4088) ([proller](https://github.com/proller)) -#### 实验性特性 {#experimental-features-3} - - +#### 实验性功能 {#experimental-features-3} - 添加了对多个 JOIN 仿真的支持(`allow_experimental_multiple_joins_emulation` 设置)。[#3946](https://github.com/ClickHouse/ClickHouse/pull/3946) ([Artem Zuikov](https://github.com/4ertus2)) #### Bug 修复 {#bug-fixes-21} - - * 默认限制 `compiled_expression_cache_size` 以降低内存占用。[#4041](https://github.com/ClickHouse/ClickHouse/pull/4041) ([alesapin](https://github.com/alesapin)) * 修复了一个 Bug,该 Bug 会导致执行 Replicated 表 ALTER 操作的线程以及用于从 ZooKeeper 更新配置的线程发生挂起。[#2947](https://github.com/ClickHouse/ClickHouse/issues/2947) [#3891](https://github.com/ClickHouse/ClickHouse/issues/3891) [#3934](https://github.com/ClickHouse/ClickHouse/pull/3934) ([Alex Zatelepin](https://github.com/ztlpn)) * 修复了在执行分布式 ALTER 任务时的竞态条件。该竞态条件会导致多个副本同时尝试执行该任务,并使除一个副本之外的所有副本因 ZooKeeper 错误而失败。[#3904](https://github.com/ClickHouse/ClickHouse/pull/3904) ([Alex Zatelepin](https://github.com/ztlpn)) @@ -2186,8 +2004,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 * 修复了使用 `JOIN ON` 语法且包含分布式表的查询中的列别名处理。[#3980](https://github.com/ClickHouse/ClickHouse/pull/3980) ([Winter Zhang](https://github.com/zhang2014)) * 修复了 `quantileTDigest` 内部实现中的错误(由 Artem Vakhrushev 发现)。该错误在 ClickHouse 中从未触发,仅会影响那些直接将 ClickHouse 代码库当作库使用的用户。 [#3935](https://github.com/ClickHouse/ClickHouse/pull/3935) ([alexey-milovidov](https://github.com/alexey-milovidov)) - - #### 改进 {#improvements-6} - 在 `ALTER TABLE ADD COLUMN` 语句中支持 `IF NOT EXISTS`,并在 `DROP/MODIFY/CLEAR/COMMENT COLUMN` 中支持 `IF EXISTS`。 [#3900](https://github.com/ClickHouse/ClickHouse/pull/3900) ([Boris Granveaud](https://github.com/bgranvea)) @@ -2205,8 +2021,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### 性能改进 {#performance-improvements-5} - - - 添加一个 MergeTree 设置 `use_minimalistic_part_header_in_zookeeper`。如果启用,Replicated 表会在单个 part znode 中存储紧凑的 part 元数据。这可以显著减少 ZooKeeper 快照大小(尤其是在表包含大量列时)。注意,在启用此设置后,将无法降级到不支持该设置的版本。[#3960](https://github.com/ClickHouse/ClickHouse/pull/3960) ([Alex Zatelepin](https://github.com/ztlpn)) - 为函数 `sequenceMatch` 和 `sequenceCount` 添加一个基于 DFA 的实现,用于模式不包含时间条件的情况。[#4004](https://github.com/ClickHouse/ClickHouse/pull/4004) ([Léo Ercolanelli](https://github.com/ercolanelli-leo)) - 提升整数序列化的性能。[#3968](https://github.com/ClickHouse/ClickHouse/pull/3968) ([Amos Bird](https://github.com/amosbird)) @@ -2221,8 +2035,6 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 #### 构建 / 测试 / 打包改进 {#buildtestingpackaging-improvements-6} - - * 新增对 PowerPC(`ppc64le`)构建的支持。[#4132](https://github.com/ClickHouse/ClickHouse/pull/4132) ([Danila Kutenin](https://github.com/danlark1)) * 有状态功能测试在公开可用的数据集上运行。 [#3969](https://github.com/ClickHouse/ClickHouse/pull/3969) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 修复了在 Docker 或 systemd-nspawn 环境中,当服务器因出现 `bash: /usr/bin/clickhouse-extract-from-config: Operation not permitted` 消息而无法启动的问题。[#4136](https://github.com/ClickHouse/ClickHouse/pull/4136) ([alexey-milovidov](https://github.com/alexey-milovidov)) @@ -2248,8 +2060,4 @@ keywords: ['ClickHouse 2019', '2019 更新日志', '发布说明', '版本历史 * 修正了 `dbms` 下注释和字符串字面量中的拼写错误。 [#4122](https://github.com/ClickHouse/ClickHouse/pull/4122) ([maiha](https://github.com/maiha)) * 修正注释中的拼写错误。[#4089](https://github.com/ClickHouse/ClickHouse/pull/4089) ([Evgenii Pravda](https://github.com/kvinty)) - - - - -## [2018 年更新日志](./2018.md) {#changelog-for-2018} +## [2018 年更新日志](./2018.md) {#changelog-for-2018} \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2020.md b/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2020.md index 2d9f7d09b5a..9ffed7d5457 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2020.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2020.md @@ -1,6 +1,6 @@ --- slug: /whats-new/changelog/2020 -sidebar_position: 7 +sidebar_position: -2020 sidebar_label: '2020' title: '2020 变更日志' description: '2020 年变更日志' @@ -27,7 +27,7 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor ### ClickHouse v20.12.4.5-stable 发布,2020-12-24 {#clickhouse-release-v201245-stable-2020-12-24} -#### Bug 修复 {#bug-fix-1} +#### 错误修复 {#bug-fix-1} * 修复了在具有双栈 IPv4/IPv6 的机器上,服务器无法访问 `clickhouse-odbc-bridge` 进程的问题;修复了在使用格式错误的查询执行 ODBC 字典更新时可能导致崩溃的问题;可能修复了 [#14489](https://github.com/ClickHouse/ClickHouse/issues/14489)。[#18278](https://github.com/ClickHouse/ClickHouse/pull/18278)([Denis Glazachev](https://github.com/traceon))。 * 修复了 Enum 和 Int 类型之间键值比较的问题。修复了 [#17989](https://github.com/ClickHouse/ClickHouse/issues/17989)。[#18214](https://github.com/ClickHouse/ClickHouse/pull/18214)([Amos Bird](https://github.com/amosbird))。 @@ -45,7 +45,7 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor * 默认启用 `use_compact_format_in_distributed_parts_names`(具体说明参见文档)。[#16728](https://github.com/ClickHouse/ClickHouse/pull/16728)([Azat Khuzhin](https://github.com/azat))。 * 在创建使用 `File` 引擎的表时,在 `SETTINGS` 子句中接受与文件格式相关的用户设置(例如 `format_csv_delimiter`),并在所有 `INSERT` 和 `SELECT` 中使用这些设置。在当前用户会话中更改的文件格式设置,或在 DML 查询自身的 `SETTINGS` 子句中指定的设置,将不再影响该查询。[#16591](https://github.com/ClickHouse/ClickHouse/pull/16591)([Alexander Kuzmenkov](https://github.com/akuzm))。 -#### 新特性 {#new-feature} +#### 新功能 {#new-feature} * 添加对 `*.xz` 压缩/解压缩的支持。这使得可以在 `file()` 函数中使用 `*.xz`。修复了 [#8828](https://github.com/ClickHouse/ClickHouse/issues/8828)。[#16578](https://github.com/ClickHouse/ClickHouse/pull/16578)([Abi Palagashvili](https://github.com/fibersel))。 * 引入查询 `ALTER TABLE ... DROP|DETACH PART 'part_name'`。[#15511](https://github.com/ClickHouse/ClickHouse/pull/15511)([nvartolomei](https://github.com/nvartolomei))。 @@ -149,7 +149,7 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor * 新增 `EmbeddedRocksDB` 表引擎(可用于字典)。[#15073](https://github.com/ClickHouse/ClickHouse/pull/15073)([sundyli](https://github.com/sundy-li))。 -#### 构建 / 测试 / 打包改进 {#buildtestingpackaging-improvement-1} +#### 构建/测试/打包改进 {#buildtestingpackaging-improvement-1} * 提升构建镜像过程中的测试覆盖率。[#17233](https://github.com/ClickHouse/ClickHouse/pull/17233) ([alesapin](https://github.com/alesapin)). * 将内置时区数据更新到 2020d 版本(同时将 cctz 更新到最新的 master)。[#17204](https://github.com/ClickHouse/ClickHouse/pull/17204) ([filimonov](https://github.com/filimonov)). @@ -271,7 +271,7 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor #### Bug Fix {#bug-fix-5} -* 修复了在启用查询分析器,并且 ClickHouse 安装在使用某些函数的异步展开表(unwind tables)被认为已损坏的 glibc 版本的操作系统上时,极少数情况下会出现的静默崩溃问题。修复了 [#15301](https://github.com/ClickHouse/ClickHouse/issues/15301)。修复了 [#13098](https://github.com/ClickHouse/ClickHouse/issues/13098)。[#16846](https://github.com/ClickHouse/ClickHouse/pull/16846)([alexey-milovidov](https://github.com/alexey-milovidov))。 +* 修复了在启用查询分析器,并且 ClickHouse 安装在其某些函数的异步展开表(unwind tables)被认为存在问题的 glibc 版本的操作系统上时,极少数情况下会出现的静默崩溃问题。修复了 [#15301](https://github.com/ClickHouse/ClickHouse/issues/15301)。修复了 [#13098](https://github.com/ClickHouse/ClickHouse/issues/13098)。[#16846](https://github.com/ClickHouse/ClickHouse/pull/16846)([alexey-milovidov](https://github.com/alexey-milovidov))。 ### ClickHouse 发行版 v20.11.2.1,2020-11-11 {#clickhouse-release-v201121-2020-11-11} @@ -452,7 +452,7 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor ### ClickHouse 发布 v20.10.3.30,2020-10-28 {#clickhouse-release-v2010330-2020-10-28} -#### 向后不兼容变更 {#backward-incompatible-change-2} +#### 向后不兼容的变更 {#backward-incompatible-change-2} * 将 `multiple_joins_rewriter_version` 标记为过时,移除第一版 joins 重写器。[#15472](https://github.com/ClickHouse/ClickHouse/pull/15472) ([Artem Zuikov](https://github.com/4ertus2)). * 将 `format_regexp_escaping_rule` 设置(与 `Regexp` 格式相关)的默认值更改为 `Raw`(表示将整个子模式作为一个值读取),以使行为更符合用户预期。[#15426](https://github.com/ClickHouse/ClickHouse/pull/15426) ([alexey-milovidov](https://github.com/alexey-milovidov)). @@ -660,8 +660,6 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor * 在 ConfigProcessor 中使用 std::filesystem::path 连接文件路径。[#14558](https://github.com/ClickHouse/ClickHouse/pull/14558) ([Bharat Nallan](https://github.com/bharatnc)). * 修复在使用负大整数调用 `bitShiftLeft()` 时触发的调试断言问题。 [#14697](https://github.com/ClickHouse/ClickHouse/pull/14697) ([Artem Zuikov](https://github.com/4ertus2)). - - ## ClickHouse 发布 20.9 {#clickhouse-release-209} ### ClickHouse v20.9.7.11-stable 发布,2020-12-07 {#clickhouse-release-v209711-stable-2020-12-07} @@ -700,7 +698,7 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor #### 改进 {#improvement-5} * 支持连接到需要 SNI 的 `clickhouse-server` 安全端点。当 `clickhouse-server` 部署在 TLS 代理之后时可以使用该功能。[#16938](https://github.com/ClickHouse/ClickHouse/pull/16938)([filimonov](https://github.com/filimonov))。 -* 条件聚合函数(例如:`avgIf`、`sumIf`、`maxIf`)在没有匹配行且参数为可空类型时应返回 `NULL`。[#13964](https://github.com/ClickHouse/ClickHouse/pull/13964)([Winter Zhang](https://github.com/zhang2014))。 +* 条件聚合函数(例如:`avgIf`、`sumIf`、`maxIf`)在没有匹配行且参数为 Nullable 类型时应返回 `NULL`。[#13964](https://github.com/ClickHouse/ClickHouse/pull/13964)([Winter Zhang](https://github.com/zhang2014))。 #### 错误修复 {#bug-fix-11} @@ -834,7 +832,7 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor #### 实验性功能 {#experimental-feature-2} -* 添加了 `db-generator` 工具,用于根据给定的 SELECT 查询随机生成数据库。当用户只提供了不完整的缺陷报告时,它可以帮助复现问题。[#14442](https://github.com/ClickHouse/ClickHouse/pull/14442) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) [#10973](https://github.com/ClickHouse/ClickHouse/issues/10973) ([ZeDRoman](https://github.com/ZeDRoman))。 +* 添加了 `db-generator` 工具,用于根据给定的 SELECT 查询随机生成数据库。当用户仅提供不完整的错误报告时,它可以帮助复现问题。[#14442](https://github.com/ClickHouse/ClickHouse/pull/14442) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) [#10973](https://github.com/ClickHouse/ClickHouse/issues/10973) ([ZeDRoman](https://github.com/ZeDRoman))。 #### 改进 {#improvement-8} @@ -1015,7 +1013,7 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor * 移除对 `ODBCDriver` 输入/输出格式的支持。该格式已被标记为弃用,曾用于与 ClickHouse ODBC 驱动进行通信,现在早已被 `ODBCDriver2` 格式取代。修复了 [#13629](https://github.com/ClickHouse/ClickHouse/issues/13629)。[#13847](https://github.com/ClickHouse/ClickHouse/pull/13847) ([hexiaoting](https://github.com/hexiaoting))。 * 当从早于 20.5 的版本升级时,如果执行滚动更新,且集群中同时包含大于等于 20.5 和小于 20.5 的版本,那么如果带有旧版本的 ClickHouse 节点被重启,并且在存在新版本节点的情况下启动了旧版本,可能会导致 `Part ... intersects previous part` 错误。为防止此错误,请先在集群的所有节点上安装较新的 clickhouse-server 软件包,然后再进行重启(这样,当 clickhouse-server 被重启时,将会以新版本启动)。 -#### 新特性 {#new-feature-4} +#### 新功能 {#new-feature-4} * 为与 `config.xml` 中指定设置相对应的列,新增将压缩编解码器指定为 `Default` 的功能。实现:[#9074](https://github.com/ClickHouse/ClickHouse/issues/9074)。[#14049](https://github.com/ClickHouse/ClickHouse/pull/14049)([alesapin](https://github.com/alesapin))。 * 在 Kafka 中支持使用 `krb5` 和 `cyrus-sasl` 库进行 Kerberos 认证。[#12771](https://github.com/ClickHouse/ClickHouse/pull/12771)([Ilya Golshtein](https://github.com/ilejn))。 @@ -1146,8 +1144,6 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor * 跳过来自 robot-clickhouse 的 PR。 [#13489](https://github.com/ClickHouse/ClickHouse/pull/13489) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). * 将 Dockerfile 从集成测试中移动到 `docker/test` 目录。`docker-compose` 文件位于 `runner` Docker 容器中。Docker 镜像在 CI 中构建,而不是在集成测试中构建。[#13448](https://github.com/ClickHouse/ClickHouse/pull/13448) ([Ilya Yatsishin](https://github.com/qoega))。 - - ## ClickHouse 发行版 20.7 {#clickhouse-release-207} ### ClickHouse 发行版 v20.7.2.30-stable,2020-08-31 {#clickhouse-release-v207230-stable-2020-08-31} @@ -1341,8 +1337,6 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor * 添加编译器选项,用于限制栈帧大小,避免过大。这将有助于在栈空间较小的 fiber 中运行代码。[#11524](https://github.com/ClickHouse/ClickHouse/pull/11524) ([alexey-milovidov](https://github.com/alexey-milovidov))。 * 更新 .gitignore 文件。 [#13447](https://github.com/ClickHouse/ClickHouse/pull/13447) ([vladimir-golovchenko](https://github.com/vladimir-golovchenko)). - - ## ClickHouse 20.6 版本 {#clickhouse-release-206} ### ClickHouse v20.6.3.28-stable 版本 {#clickhouse-release-v206328-stable} @@ -1463,9 +1457,10 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor * 为 DiskS3 实现了单 part 上传(实验特性)。[#12026](https://github.com/ClickHouse/ClickHouse/pull/12026)([Vladimir Chebotarev](https://github.com/excitoon))。 #### 实验特性 {#experimental-feature-4} + * 在 `MergeTree` 系列表中增加了新的内存中 part 格式,用于将数据存储在内存中。part 会在第一次合并时写入磁盘。如果其行数或字节大小低于阈值 `min_rows_for_compact_part` 和 `min_bytes_for_compact_part`,则会以内存格式创建 part。同时提供可选的预写日志(Write-Ahead Log)支持,默认启用,由设置 `in_memory_parts_enable_wal` 控制。[#10697](https://github.com/ClickHouse/ClickHouse/pull/10697)([Anton Popov](https://github.com/CurtizJ))。 -#### 构建/测试/打包改进 {#buildtestingpackaging-improvement-9} +#### 构建 / 测试 / 打包改进 {#buildtestingpackaging-improvement-9} * 为 `clickhouse-client` 实现基于 AST 的查询模糊测试(fuzzing)模式。最近通过模糊测试发现的问题列表见[此标签](https://github.com/ClickHouse/ClickHouse/issues?q=label%3Afuzz+is%3Aissue)。其中大部分是通过此工具发现的,另外有少量由 SQLancer 和 `00746_sql_fuzzy.pl` 发现。[#12111](https://github.com/ClickHouse/ClickHouse/pull/12111) ([Alexander Kuzmenkov](https://github.com/akuzm)). * 基于 Testflows 框架新增一类测试。[#12090](https://github.com/ClickHouse/ClickHouse/pull/12090) ([vzakaznikov](https://github.com/vzakaznikov)). @@ -1880,8 +1875,6 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor * 修复 FreeBSD 下的构建。[#10150](https://github.com/ClickHouse/ClickHouse/pull/10150)([Ivan](https://github.com/abyss7))。 * 为查询测试新增基于 pytest 框架的构建。[#10039](https://github.com/ClickHouse/ClickHouse/pull/10039)([Ivan](https://github.com/abyss7))。 - - ## ClickHouse 版本 v20.4 {#clickhouse-release-v204} ### ClickHouse 版本 v20.4.8.99-stable 2020-08-10 {#clickhouse-release-v204899-stable-2020-08-10} @@ -1994,7 +1987,7 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor #### 构建/测试/打包改进 {#buildtestingpackaging-improvement-13} * 修复了若干单元测试中的非关键错误。[#11262](https://github.com/ClickHouse/ClickHouse/pull/11262) ([alesapin](https://github.com/alesapin)). -* 修复 MergeTreeIndexFullText 中的(误报)MSan 报告。该问题最早出现在 [#9968](https://github.com/ClickHouse/ClickHouse/issues/9968)。[#10801](https://github.com/ClickHouse/ClickHouse/pull/10801) ([alexey-milovidov](https://github.com/alexey-milovidov)). +* 修复 MergeTreeIndexFullText 中的 MSan 误报。该问题最早出现在 [#9968](https://github.com/ClickHouse/ClickHouse/issues/9968)。[#10801](https://github.com/ClickHouse/ClickHouse/pull/10801) ([alexey-milovidov](https://github.com/alexey-milovidov)). ### ClickHouse 版本 v20.4.5.36-stable 2020-06-10 {#clickhouse-release-v204536-stable-2020-06-10} @@ -2086,10 +2079,11 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor ### ClickHouse 发行版 v20.4.2.9,2020-05-12 {#clickhouse-release-v20429-2020-05-12} #### 向后不兼容的变更 {#backward-incompatible-change-8} -* 系统表(例如 `system.query_log`、`system.trace_log`、`system.metric_log`)对于大小小于 10 MiB 的数据分片使用紧凑数据分片格式。紧凑数据分片格式自 20.3 版本起开始支持。如果你打算降级到低于 20.3 的版本,需要手动删除 `/var/lib/clickhouse/data/system/` 中系统日志表的数据。 + +* 系统表(例如 `system.query_log`、`system.trace_log`、`system.metric_log`)对于大小小于 10 MiB 的分区片段使用紧凑分区片段格式。紧凑分区片段格式自 20.3 版本起开始支持。如果你打算降级到低于 20.3 的版本,需要手动删除 `/var/lib/clickhouse/data/system/` 中系统日志表的数据。 * 当字符串比较涉及 `FixedString` 且被比较参数长度不同时,比较时将长度较短的字符串视为已经填充至与长度较长字符串相同的长度。这样可以实现 SQL 兼容性,如果我们将 `FixedString` 数据类型视为对应 SQL 中的 `CHAR`。此更改修复了 [#9272](https://github.com/ClickHouse/ClickHouse/issues/9272)。[#10363](https://github.com/ClickHouse/ClickHouse/pull/10363)([alexey-milovidov](https://github.com/alexey-milovidov)) -* 使 `SHOW CREATE TABLE` 的输出改为多行。现在更易阅读,也更接近 MySQL。[#10049](https://github.com/ClickHouse/ClickHouse/pull/10049)([Azat Khuzhin](https://github.com/azat)) -* 新增设置 `validate_polygons`,用于 `pointInPolygon` 函数,默认启用。[#9857](https://github.com/ClickHouse/ClickHouse/pull/9857)([alexey-milovidov](https://github.com/alexey-milovidov)) +* 使 `SHOW CREATE TABLE` 的输出改为多行。现在更易读,也更接近 MySQL。[#10049](https://github.com/ClickHouse/ClickHouse/pull/10049)([Azat Khuzhin](https://github.com/azat)) +* 新增了设置 `validate_polygons`,用于 `pointInPolygon` 函数,默认启用。[#9857](https://github.com/ClickHouse/ClickHouse/pull/9857)([alexey-milovidov](https://github.com/alexey-milovidov)) #### 新功能 {#new-feature-8} @@ -2101,202 +2095,202 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor * 为字典添加了对自定义 settings 部分的支持,并修复了问题 [#2829](https://github.com/ClickHouse/ClickHouse/issues/2829)。[#10137](https://github.com/ClickHouse/ClickHouse/pull/10137)([Artem Streltsov](https://github.com/kekekekule)) * 为 `CREATE DICTIONARY` 的 DDL 查询添加了对自定义设置的支持 [#10465](https://github.com/ClickHouse/ClickHouse/pull/10465)([Artem Streltsov](https://github.com/kekekekule)) * 新增一个简单的服务器级内存分析器,当服务器内存使用量超过下一个分配阈值时收集内存分配上下文信息。 [#10444](https://github.com/ClickHouse/ClickHouse/pull/10444) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 添加设置 `always_fetch_merged_part`,用于限制副本自行执行合并,并始终优先从其他副本下载。 [#10379](https://github.com/ClickHouse/ClickHouse/pull/10379) ([alesapin](https://github.com/alesapin)) +* 添加设置 `always_fetch_merged_part`,用于限制副本自行合并分区片段,而始终优先从其他副本下载已合并的分区片段。 [#10379](https://github.com/ClickHouse/ClickHouse/pull/10379) ([alesapin](https://github.com/alesapin)) * 添加函数 `JSONExtractKeysAndValuesRaw`,用于从 JSON 对象中提取原始数据 [#10378](https://github.com/ClickHouse/ClickHouse/pull/10378) ([hcz](https://github.com/hczhcz)) -* 将操作系统的内存使用情况添加到 `system.asynchronous_metrics`。 [#10361](https://github.com/ClickHouse/ClickHouse/pull/10361) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 将操作系统内存使用情况添加到 `system.asynchronous_metrics`。 [#10361](https://github.com/ClickHouse/ClickHouse/pull/10361) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 为函数 `least` 和 `greatest` 增加了泛型版本。现在它们可以处理任意数量、任意类型的参数。此更改修复了 [#4767](https://github.com/ClickHouse/ClickHouse/issues/4767) [#10318](https://github.com/ClickHouse/ClickHouse/pull/10318)([alexey-milovidov](https://github.com/alexey-milovidov)) -* 现在 ClickHouse 在自身内部控制字典源的超时。向缓存字典配置中新增了两个配置项:`strict_max_lifetime_seconds`(默认等于 `max_lifetime`),以及 `query_wait_timeout_milliseconds`(默认值为一分钟)。第一个配置项在配合 `allow_read_expired_keys` 设置使用时也很有用(用于禁止读取已经严重过期的键)。[#10337](https://github.com/ClickHouse/ClickHouse/pull/10337) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) +* 现在 ClickHouse 在自身一侧控制字典源的超时。向缓存字典配置中新增了两个配置项:`strict_max_lifetime_seconds`(默认等于 `max_lifetime`),以及 `query_wait_timeout_milliseconds`(默认值为一分钟)。第一个配置项在配合 `allow_read_expired_keys` 设置使用时也很有用(用于禁止读取已经严重过期的键)。[#10337](https://github.com/ClickHouse/ClickHouse/pull/10337) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) * 添加 log_queries_min_type 参数,用于筛选哪些记录会被写入 query_log [#10053](https://github.com/ClickHouse/ClickHouse/pull/10053) ([Azat Khuzhin](https://github.com/azat)) * 新增函数 `isConstant`。该函数用于检查其参数是否为常量表达式,并返回 1 或 0。主要用于开发、调试和演示。 [#10198](https://github.com/ClickHouse/ClickHouse/pull/10198) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 添加 joinGetOrNull 函数,在键缺失时返回 NULL,而不是返回默认值。 [#10094](https://github.com/ClickHouse/ClickHouse/pull/10094) ([Amos Bird](https://github.com/amosbird)) +* 添加 joinGetOrNull 函数,当键不存在时返回 NULL,而不是返回默认值。 [#10094](https://github.com/ClickHouse/ClickHouse/pull/10094) ([Amos Bird](https://github.com/amosbird)) * 如果设置了选项 `transform_null_in`,则在 `IN` 运算符中将 `NULL` 视为等于 `NULL`。 [#10085](https://github.com/ClickHouse/ClickHouse/pull/10085) ([achimbab](https://github.com/achimbab)) * 为 MergeTree 表引擎系列添加 `ALTER TABLE ... RENAME COLUMN`。 [#9948](https://github.com/ClickHouse/ClickHouse/pull/9948) ([alesapin](https://github.com/alesapin)) * 支持并行分布式 INSERT SELECT 语句。 [#9759](https://github.com/ClickHouse/ClickHouse/pull/9759) ([vxider](https://github.com/Vxider)) -* 新增支持在不使用 `distributed_group_by_no_merge` 时查询 Distributed over Distributed ... [#9923](https://github.com/ClickHouse/ClickHouse/pull/9923) ([Azat Khuzhin](https://github.com/azat)) +* 新增支持在不使用 `distributed_group_by_no_merge` 的情况下对 Distributed over Distributed 进行查询 ... [#9923](https://github.com/ClickHouse/ClickHouse/pull/9923) ([Azat Khuzhin](https://github.com/azat)) * 添加函数 `arrayReduceInRanges`,用于在给定范围内聚合数组元素。[#9598](https://github.com/ClickHouse/ClickHouse/pull/9598) ([hcz](https://github.com/hczhcz)) -* 在 Prometheus exporter 中添加 Dictionary 状态信息。 [#9622](https://github.com/ClickHouse/ClickHouse/pull/9622) ([Guillaume Tassery](https://github.com/YiuRULE)) +* 在 Prometheus exporter 中添加 Dictionary 状态指标。 [#9622](https://github.com/ClickHouse/ClickHouse/pull/9622) ([Guillaume Tassery](https://github.com/YiuRULE)) * 添加函数 `arrayAUC` [#8698](https://github.com/ClickHouse/ClickHouse/pull/8698) ([taiyang-li](https://github.com/taiyang-li)) * 支持 `DROP VIEW` 语句,以获得更好的 TPC-H 兼容性。[#9831](https://github.com/ClickHouse/ClickHouse/pull/9831) ([Amos Bird](https://github.com/amosbird)) * 新增 windowFunnel() 的 'strict_order' 选项 [#9773](https://github.com/ClickHouse/ClickHouse/pull/9773) ([achimbab](https://github.com/achimbab)) * 支持 `DATE` 和 `TIMESTAMP` SQL 运算符,例如 `SELECT date '2001-01-01'` [#9691](https://github.com/ClickHouse/ClickHouse/pull/9691) ([Artem Zuikov](https://github.com/4ertus2)) #### 实验特性 {#experimental-feature-6} + * 新增实验性数据库引擎 Atomic。它支持非阻塞的 `DROP` 和 `RENAME TABLE` 查询,以及原子性的 `EXCHANGE TABLES t1 AND t2` 查询 [#7512](https://github.com/ClickHouse/ClickHouse/pull/7512) ([tavplubix](https://github.com/tavplubix)) * 初步支持基于 S3 的 ReplicatedMergeTree(目前实现方式尚不理想) [#10126](https://github.com/ClickHouse/ClickHouse/pull/10126) ([Pavel Kovalenko](https://github.com/Jokser)) #### 错误修复 {#bug-fix-32} * 修复了在 `MATERIALIZED VIEW` 的内部查询中包含依赖表时标量结果计算错误的问题 [#10603](https://github.com/ClickHouse/ClickHouse/pull/10603) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* 修复了一个问题:当 `readonly=2` 且 `cancel_http_readonly_queries_on_client_close=1` 时,客户端关闭连接会导致 HTTP 请求卡住。 [#10684](https://github.com/ClickHouse/ClickHouse/pull/10684) ([tavplubix](https://github.com/tavplubix)) +* 修复了一个问题:当 `readonly=2` 且 `cancel_http_readonly_queries_on_client_close=1` 时,客户端关闭连接会导致 HTTP 请求卡死。 [#10684](https://github.com/ClickHouse/ClickHouse/pull/10684) ([tavplubix](https://github.com/tavplubix)) * 修复了在服务器启动时抛出异常会导致 StorageBuffer 段错误的问题。修复了 [#10550](https://github.com/ClickHouse/ClickHouse/issues/10550) [#10609](https://github.com/ClickHouse/ClickHouse/pull/10609)([tavplubix](https://github.com/tavplubix)) * 查询语句 `SYSTEM DROP DNS CACHE` 现在也会清除用于检查用户是否被允许从特定 IP 地址发起连接的缓存 [#10608](https://github.com/ClickHouse/ClickHouse/pull/10608) ([tavplubix](https://github.com/tavplubix)) -* 修复在单个查询中多次对同一集合使用 `IN` 运算符的情况。修复了 [#10539](https://github.com/ClickHouse/ClickHouse/issues/10539) [#10686](https://github.com/ClickHouse/ClickHouse/pull/10686)([Anton Popov](https://github.com/CurtizJ)) +* 修复了在单个查询中使用多个针对同一集合的 `IN` 运算符的问题。修复了 [#10539](https://github.com/ClickHouse/ClickHouse/issues/10539) [#10686](https://github.com/ClickHouse/ClickHouse/pull/10686)([Anton Popov](https://github.com/CurtizJ)) * 修复 `generateRandom` 在处理嵌套类型时的崩溃问题。修复了 [#10583](https://github.com/ClickHouse/ClickHouse/issues/10583)。[#10734](https://github.com/ClickHouse/ClickHouse/pull/10734)([Nikolai Kochetov](https://github.com/KochetovNicolai)) * 修复 `SummingMergeTree` 中 `LowCardinality(FixedString)` 键列在合并后可能出现的数据损坏。修复 [#10489](https://github.com/ClickHouse/ClickHouse/issues/10489)。[#10721](https://github.com/ClickHouse/ClickHouse/pull/10721)([Nikolai Kochetov](https://github.com/KochetovNicolai)) * 修复 `aggregation_memory_efficient_merge_threads` 设置项的逻辑。 [#10667](https://github.com/ClickHouse/ClickHouse/pull/10667) ([palasonic1](https://github.com/palasonic1)) -* 修复总计消失的问题。如果查询包含 `JOIN` 或带有外部 `WHERE` 条件的子查询,总计可能会被错误过滤掉。修复了 [#10674](https://github.com/ClickHouse/ClickHouse/issues/10674) [#10698](https://github.com/ClickHouse/ClickHouse/pull/10698)([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* 修复总计消失的问题。如果查询包含 `JOIN` 或带有外部 `WHERE` 条件的子查询,总计可能会被错误地过滤掉。修复了 [#10674](https://github.com/ClickHouse/ClickHouse/issues/10674) [#10698](https://github.com/ClickHouse/ClickHouse/pull/10698)([Nikolai Kochetov](https://github.com/KochetovNicolai)) * 修复在启用 `distributed_aggregation_memory_efficient` 时远程查询无法并行执行的问题。对应修复 [#10655](https://github.com/ClickHouse/ClickHouse/issues/10655) [#10664](https://github.com/ClickHouse/ClickHouse/pull/10664)([Nikolai Kochetov](https://github.com/KochetovNicolai)) * 修复在使用 `LIMIT` 的查询中可能出现的行数不正确问题。对应修复了 [#10566](https://github.com/ClickHouse/ClickHouse/issues/10566)、[#10709](https://github.com/ClickHouse/ClickHouse/issues/10709)、[#10660](https://github.com/ClickHouse/ClickHouse/pull/10660)([Nikolai Kochetov](https://github.com/KochetovNicolai)) * 修复在某些情况下将紧凑部分合并到另一紧凑部分后可能出现的索引损坏问题。 [#10531](https://github.com/ClickHouse/ClickHouse/pull/10531) ([Anton Popov](https://github.com/CurtizJ)) -* 修复了一种问题:当 mutation 已完成所有 part,却仍然停留在 `is_done=0` 状态。[#10526](https://github.com/ClickHouse/ClickHouse/pull/10526) ([alesapin](https://github.com/alesapin)) -* 修复在 Unix 纪元起点,对于相对于 UTC 具有小数偏移的时区出现的溢出问题。修复了 [#9335](https://github.com/ClickHouse/ClickHouse/issues/9335)。[#10513](https://github.com/ClickHouse/ClickHouse/pull/10513)([alexey-milovidov](https://github.com/alexey-milovidov)) +* 修复了这样一种情况:当 mutation 已完成所有分区片段,却仍然卡在 `is_done=0` 状态。[#10526](https://github.com/ClickHouse/ClickHouse/pull/10526) ([alesapin](https://github.com/alesapin)) +* 修复在 Unix 纪元起点,对于相对于 UTC 具有非整数偏移的时区出现的溢出问题。修复了 [#9335](https://github.com/ClickHouse/ClickHouse/issues/9335)。[#10513](https://github.com/ClickHouse/ClickHouse/pull/10513)([alexey-milovidov](https://github.com/alexey-milovidov)) * 改进输入格式的诊断能力。修复了 [#10204](https://github.com/ClickHouse/ClickHouse/issues/10204) [#10418](https://github.com/ClickHouse/ClickHouse/pull/10418)([tavplubix](https://github.com/tavplubix)) -* 修复 `simpleLinearRegression()` 在处理大整数时的数值溢出 [#10474](https://github.com/ClickHouse/ClickHouse/pull/10474) ([hcz](https://github.com/hczhcz)) +* 修复 `simpleLinearRegression()` 在处理大整数时出现的数值溢出问题 [#10474](https://github.com/ClickHouse/ClickHouse/pull/10474) ([hcz](https://github.com/hczhcz)) * 修复 Distributed 引擎关闭过程中的 use-after-free,避免等待发送所有批次 [#10491](https://github.com/ClickHouse/ClickHouse/pull/10491) ([Azat Khuzhin](https://github.com/azat)) * 向 clickhouse-server Docker 镜像添加 CA 证书 [#10476](https://github.com/ClickHouse/ClickHouse/pull/10476) ([filimonov](https://github.com/filimonov)) * 修复在使用 `addressToLine` 函数或 AggregateFunctionState 列时可能出现的罕见无限循环。 [#10466](https://github.com/ClickHouse/ClickHouse/pull/10466) ([Alexander Kuzmenkov](https://github.com/akuzm)) -* 在分布式查询过程中处理 ZooKeeper 的 “no node error” 错误 [#10050](https://github.com/ClickHouse/ClickHouse/pull/10050) ([Daniel Chen](https://github.com/Phantomape)) -* 修复了在列的默认值被修改后服务器无法附加表的错误。[#10441](https://github.com/ClickHouse/ClickHouse/pull/10441) ([alesapin](https://github.com/alesapin)) -* 对 ALIAS 列,将默认表达式类型隐式转换为列类型 [#10563](https://github.com/ClickHouse/ClickHouse/pull/10563) ([Azat Khuzhin](https://github.com/azat)) +* 在分布式查询过程中处理 ZooKeeper 的“no node”错误 [#10050](https://github.com/ClickHouse/ClickHouse/pull/10050) ([Daniel Chen](https://github.com/Phantomape)) +* 修复了在列默认值被修改后,服务器无法附加表的问题。[#10441](https://github.com/ClickHouse/ClickHouse/pull/10441) ([alesapin](https://github.com/alesapin)) +* 将 ALIAS 列的默认表达式类型隐式转换为该列的类型 [#10563](https://github.com/ClickHouse/ClickHouse/pull/10563) ([Azat Khuzhin](https://github.com/azat)) * 在 `ATTACH DATABASE` 失败时不要删除 metadata 目录 [#10442](https://github.com/ClickHouse/ClickHouse/pull/10442) ([Winter Zhang](https://github.com/zhang2014)) * 避免对系统 tzdata 的依赖。修复在 CentOS 8 上加载 `Africa/Casablanca` 时区的问题。修复 [#10211](https://github.com/ClickHouse/ClickHouse/issues/10211) [#10425](https://github.com/ClickHouse/ClickHouse/pull/10425) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 修复了在使用 quorum 写入方式插入数据后又删除数据(DROP PARTITION、TTL 等)时出现的一些问题。这些问题会导致 INSERT 操作卡住,或者在 SELECT 查询中抛出误报异常。修复了 [#9946](https://github.com/ClickHouse/ClickHouse/issues/9946) [#10188](https://github.com/ClickHouse/ClickHouse/pull/10188)([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) +* 修复了在使用 quorum 写入方式插入数据后又删除这些数据(DROP PARTITION、TTL 等)时出现的一些问题。这些问题会导致 INSERT 操作卡住或在 SELECT 查询中抛出误报异常。修复了 [#9946](https://github.com/ClickHouse/ClickHouse/issues/9946) [#10188](https://github.com/ClickHouse/ClickHouse/pull/10188)([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) * 在创建 BloomFilter 索引时,检查参数的数量和类型 [#9623](https://github.com/ClickHouse/ClickHouse/issues/9623) [#10431](https://github.com/ClickHouse/ClickHouse/pull/10431) ([Winter Zhang](https://github.com/zhang2014)) -* 优先使用 `fallback_to_stale_replicas` 而不要使用 `skip_unavailable_shards`,否则在同时设置了这两个选项且没有最新副本时,查询会失败(来自 @alex-zaitsev 的补丁)[#10422](https://github.com/ClickHouse/ClickHouse/pull/10422) ([Azat Khuzhin](https://github.com/azat)) +* 优先使用 `fallback_to_stale_replicas` 而不是 `skip_unavailable_shards`,否则当同时指定这两个设置且没有最新副本时查询将失败(来自 @alex-zaitsev 的补丁)[#10422](https://github.com/ClickHouse/ClickHouse/pull/10422) ([Azat Khuzhin](https://github.com/azat)) * 修复了在包含 ARRAY JOIN、ORDER BY 和 LIMIT 的查询中可能返回不完整结果的问题。对应修复为 [#10226](https://github.com/ClickHouse/ClickHouse/issues/10226)。[#10427](https://github.com/ClickHouse/ClickHouse/pull/10427)([Vadim Plakhtinskiy](https://github.com/VadimPlh)) -* 在执行 DETACH/ATTACH 后将数据库名添加到字典名中,以修复 system.dictionaries 表和 `SYSTEM RELOAD` 查询 [#10415](https://github.com/ClickHouse/ClickHouse/pull/10415) ([Azat Khuzhin](https://github.com/azat)) -* 修复处理器流水线中 extremes 可能产生的错误结果。 [#10131](https://github.com/ClickHouse/ClickHouse/pull/10131) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* 修复在启用 `distributed_group_by_no_merge` 设置时可能出现的潜在段错误(在 20.3.7.46 中由 [#10131](https://github.com/ClickHouse/ClickHouse/issues/10131) 引入)。[#10399](https://github.com/ClickHouse/ClickHouse/pull/10399)([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* 在执行 DETACH/ATTACH 后将数据库名添加到字典名,以修复 system.dictionaries 表和 `SYSTEM RELOAD` 查询 [#10415](https://github.com/ClickHouse/ClickHouse/pull/10415) ([Azat Khuzhin](https://github.com/azat)) +* 修复在处理器流水线中计算 extremes 时可能产生的错误结果。 [#10131](https://github.com/ClickHouse/ClickHouse/pull/10131) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* 修复在启用 `distributed_group_by_no_merge` 设置时可能出现的段错误(该问题在 20.3.7.46 中由 [#10131](https://github.com/ClickHouse/ClickHouse/issues/10131) 引入)。[#10399](https://github.com/ClickHouse/ClickHouse/pull/10399)([Nikolai Kochetov](https://github.com/KochetovNicolai)) * 修复 `Array(Tuple(...))` 数据类型错误的扁平化处理方式。修复了 [#10259](https://github.com/ClickHouse/ClickHouse/issues/10259) [#10390](https://github.com/ClickHouse/ClickHouse/pull/10390)([alexey-milovidov](https://github.com/alexey-milovidov)) -* 修正 JOIN 内部常量的列名,避免与 JOIN 外部常量的列名发生冲突 [#9950](https://github.com/ClickHouse/ClickHouse/pull/9950) ([Alexander Kuzmenkov](https://github.com/akuzm)) +* 修复 JOIN 内部常量列名可能与 JOIN 外部常量列名冲突的问题 [#9950](https://github.com/ClickHouse/ClickHouse/pull/9950) ([Alexander Kuzmenkov](https://github.com/akuzm)) * 修正 `Block::sortColumns()` 之后的列顺序 [#10826](https://github.com/ClickHouse/ClickHouse/pull/10826) ([Azat Khuzhin](https://github.com/azat)) * 修复 `ConcatProcessor` 中在远程查询时可能出现的 `Pipeline stuck` 错误。 [#10381](https://github.com/ClickHouse/ClickHouse/pull/10381) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * 不要为聚合预留磁盘空间。修复 [#9241](https://github.com/ClickHouse/ClickHouse/issues/9241) [#10375](https://github.com/ClickHouse/ClickHouse/pull/10375) ([Azat Khuzhin](https://github.com/azat)) -* 修复针对那些相对于 UTC 的时区偏移曾在正负之间变更的时区(例如 Pacific/Kiritimati)时,`datetime` 函数行为错误的问题。修复了 [#7202](https://github.com/ClickHouse/ClickHouse/issues/7202) [#10369](https://github.com/ClickHouse/ClickHouse/pull/10369)([alexey-milovidov](https://github.com/alexey-milovidov)) +* 修复在那些相对于 UTC 的时区偏移曾在正负之间切换的时区(例如 Pacific/Kiritimati)下使用 `datetime` 函数时代码行为错误的问题。修复了 [#7202](https://github.com/ClickHouse/ClickHouse/issues/7202) [#10369](https://github.com/ClickHouse/ClickHouse/pull/10369)([alexey-milovidov](https://github.com/alexey-milovidov)) * 避免 `dictIsIn` 函数出现无限循环。修复 #515 [#10365](https://github.com/ClickHouse/ClickHouse/pull/10365) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 默认禁用 GROUP BY sharding_key 优化功能,并修复其在 WITH ROLLUP/CUBE/TOTALS 下的问题 [#10516](https://github.com/ClickHouse/ClickHouse/pull/10516) ([Azat Khuzhin](https://github.com/azat)) +* 默认禁用 GROUP BY sharding_key 优化,并修复其在 WITH ROLLUP/CUBE/TOTALS 下的问题 [#10516](https://github.com/ClickHouse/ClickHouse/pull/10516) ([Azat Khuzhin](https://github.com/azat)) * 在检查数据部分时同时检查错误代码,如果错误为“not enough memory”等内存不足类错误,则不要将该数据部分标记为损坏。修复了 [#6269](https://github.com/ClickHouse/ClickHouse/issues/6269) [#10364](https://github.com/ClickHouse/ClickHouse/pull/10364) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 在 system 系统表中显示未加载的字典信息。[#10234](https://github.com/ClickHouse/ClickHouse/pull/10234) ([Vitaly Baranov](https://github.com/vitlibar)) * 修复在表启动前服务器关闭时,StorageBuffer 中的 nullptr 解引用问题。 [#10641](https://github.com/ClickHouse/ClickHouse/pull/10641) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 修复了 `ReplicatedMergeTree` 中 `DROP` 与 `OPTIMIZE` 之间的竞争条件。如果存在并发的 `OPTIMIZE` 查询,`DROP` 可能会在 ZooKeeper 的副本路径中留下垃圾内容。 [#10312](https://github.com/ClickHouse/ClickHouse/pull/10312) ([tavplubix](https://github.com/tavplubix)) +* 修复了 `ReplicatedMergeTree` 中 `DROP` 与 `OPTIMIZE` 之间的竞争条件。如果存在并发的 `OPTIMIZE` 查询,`DROP` 可能会在 ZooKeeper 的副本路径中留下垃圾数据。 [#10312](https://github.com/ClickHouse/ClickHouse/pull/10312) ([tavplubix](https://github.com/tavplubix)) * 修复在同时混用逗号 JOIN 和 `NAMES` JOIN 的查询中出现的 'Logical error: CROSS JOIN has expressions' 错误。解决了 [#9910](https://github.com/ClickHouse/ClickHouse/issues/9910) [#10311](https://github.com/ClickHouse/ClickHouse/pull/10311)([Artem Zuikov](https://github.com/4ertus2)) * 修复了使用 `max_bytes_before_external_group_by` 的查询。 [#10302](https://github.com/ClickHouse/ClickHouse/pull/10302) ([Artem Zuikov](https://github.com/4ertus2)) -* 修复了解析器在某些情况下对最大递归深度限制处理存在的问题。这修复了 [#10283](https://github.com/ClickHouse/ClickHouse/issues/10283)。此修复可能会引入轻微的不兼容变更:通过 clickhouse-client 发送的较长且嵌套较深的查询可能会被拒绝执行,你需要相应地调整 `max_query_size` 和 `max_parser_depth` 设置。[#10295](https://github.com/ClickHouse/ClickHouse/pull/10295)([alexey-milovidov](https://github.com/alexey-milovidov)) +* 修复了解析器在某些情况下处理最大递归深度限制不当的问题。这修复了 [#10283](https://github.com/ClickHouse/ClickHouse/issues/10283)。此修复可能会引入轻微的不兼容变更:通过 clickhouse-client 发送的长度较大且嵌套很深的查询可能会被拒绝执行,你需要相应地调整 `max_query_size` 和 `max_parser_depth` 设置。[#10295](https://github.com/ClickHouse/ClickHouse/pull/10295)([alexey-milovidov](https://github.com/alexey-milovidov)) * 允许在包含多个 JOIN 的查询中使用 `count(*)`。修复 [#9853](https://github.com/ClickHouse/ClickHouse/issues/9853) [#10291](https://github.com/ClickHouse/ClickHouse/pull/10291) ([Artem Zuikov](https://github.com/4ertus2)) * 修复在使用 `max_rows_to_group_by` 和 `group_by_overflow_mode = 'break'` 时出现的 `Pipeline stuck` 错误。 [#10279](https://github.com/ClickHouse/ClickHouse/pull/10279) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * 修复在使用 DDL 查询创建 `range_hashed` 字典时出现的 `Cannot add column` 错误,对应问题 [#10093](https://github.com/ClickHouse/ClickHouse/issues/10093)。[#10235](https://github.com/ClickHouse/ClickHouse/pull/10235)([alesapin](https://github.com/alesapin)) * 修复一个极少发生的异常 `Cannot drain connections: cancel first`。[#10239](https://github.com/ClickHouse/ClickHouse/pull/10239) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* 修复了一个问题:当用户尝试在 `ENGINE = Replicated*` 的表上执行 ALTER UPDATE/DELETE 时,ClickHouse 会抛出 "Unknown function lambda." 错误消息。现在用于检查非确定性函数的逻辑已经能够正确处理 lambda 表达式。[#10237](https://github.com/ClickHouse/ClickHouse/pull/10237) ([Alexander Kazakov](https://github.com/Akazz)) -* 修复了在包含 Lazy 引擎的数据库上运行 SELECT ... FROM system.tables 时,可能在 StorageSystemTables 中出现的相对少见的段错误。 [#10209](https://github.com/ClickHouse/ClickHouse/pull/10209) ([Alexander Kazakov](https://github.com/Akazz)) -* 修复在从 `system.numbers` 或 `system.zeros` 等无限数据源读取时,查询本应在 LIMIT 处停止却可能出现无限执行的问题。 [#10206](https://github.com/ClickHouse/ClickHouse/pull/10206) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* 修复了 Date 类型的 `generateRandom` 函数。这修复了 [#9973](https://github.com/ClickHouse/ClickHouse/issues/9973)。修复了一个边缘情况:向使用旧式分区的 MergeTree 表插入年份为 2106 的日期时,分区名称却被命名为 1970 年的问题。 [#10218](https://github.com/ClickHouse/ClickHouse/pull/10218) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 修复了一个问题:当用户尝试在 `ENGINE = Replicated*` 的表上执行 ALTER UPDATE/DELETE 时,ClickHouse 会抛出 "Unknown function lambda." 错误。现在用于检查非确定性函数的逻辑已经能够正确处理 lambda 表达式。[#10237](https://github.com/ClickHouse/ClickHouse/pull/10237) ([Alexander Kazakov](https://github.com/Akazz)) +* 修复了在使用 Lazy 引擎的数据库上执行 SELECT ... FROM system.tables 时,StorageSystemTables 中可能发生的较为罕见的段错误。 [#10209](https://github.com/ClickHouse/ClickHouse/pull/10209) ([Alexander Kazakov](https://github.com/Akazz)) +* 修复在从 `system.numbers` 或 `system.zeros` 等无限数据源读取时,查询本应在 LIMIT 处停止却可能出现无限期执行的问题。 [#10206](https://github.com/ClickHouse/ClickHouse/pull/10206) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* 修复了 Date 类型的 `generateRandom` 函数。这修复了 [#9973](https://github.com/ClickHouse/ClickHouse/issues/9973)。修复了一个边界情况:向使用旧式分区的 MergeTree 表插入年份为 2106 的日期时,分区名称却使用了 1970 年。 [#10218](https://github.com/ClickHouse/ClickHouse/pull/10218) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 当 View 的表定义与其 SELECT 查询不一致时,执行类型转换。此更改修复了 [#10180](https://github.com/ClickHouse/ClickHouse/issues/10180)、[#10022](https://github.com/ClickHouse/ClickHouse/issues/10022) 和 [#10217](https://github.com/ClickHouse/ClickHouse/pull/10217)([alexey-milovidov](https://github.com/alexey-milovidov)) -* 修复在解析符合 RFC-2822 的字符串且星期几为星期二或星期四时的 `parseDateTimeBestEffort` 行为。此修复解决了 [#10082](https://github.com/ClickHouse/ClickHouse/issues/10082) [#10214](https://github.com/ClickHouse/ClickHouse/pull/10214)([alexey-milovidov](https://github.com/alexey-milovidov)) +* 修复 `parseDateTimeBestEffort` 在解析符合 RFC-2822 格式且星期几为星期二或星期四的字符串时的行为。此修复解决了 [#10082](https://github.com/ClickHouse/ClickHouse/issues/10082) [#10214](https://github.com/ClickHouse/ClickHouse/pull/10214)([alexey-milovidov](https://github.com/alexey-milovidov)) * 修复 JOIN 内部常量列名可能与 JOIN 外部常量列名冲突的问题。 [#10207](https://github.com/ClickHouse/ClickHouse/pull/10207) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 修复在包含 arrayJoin 函数时(某些场景) move-to-prewhere 优化的问题。这修复了 [#10092](https://github.com/ClickHouse/ClickHouse/issues/10092) [#10195](https://github.com/ClickHouse/ClickHouse/pull/10195)([alexey-milovidov](https://github.com/alexey-milovidov)) +* 修复在存在 arrayJoin 函数时(在某些情况下)move-to-prewhere 优化的问题。这修复了 [#10092](https://github.com/ClickHouse/ClickHouse/issues/10092) [#10195](https://github.com/ClickHouse/ClickHouse/pull/10195)([alexey-milovidov](https://github.com/alexey-milovidov)) * 修复原生 mysql-connector-java (JDBC) 的 SCRAMBLE 中出现分隔符的错误 [#10140](https://github.com/ClickHouse/ClickHouse/pull/10140) ([BohuTANG](https://github.com/BohuTANG)) -* 修复在未指定数据库时执行访问检查会默认使用当前数据库的问题。 [#10192](https://github.com/ClickHouse/ClickHouse/pull/10192) ([Vitaly Baranov](https://github.com/vitlibar)) +* 修复在未指定数据库时执行访问权限检查会默认使用当前数据库的问题。 [#10192](https://github.com/ClickHouse/ClickHouse/pull/10192) ([Vitaly Baranov](https://github.com/vitlibar)) * 修复对包含 compact parts 的表执行 ALTER 操作时出现的问题。 [#10130](https://github.com/ClickHouse/ClickHouse/pull/10130) ([Anton Popov](https://github.com/CurtizJ)) -* 新增 `allow_nondeterministic_mutations` 设置,用于放宽在 mutation 中使用非确定性函数时的限制。 [#10186](https://github.com/ClickHouse/ClickHouse/pull/10186) ([filimonov](https://github.com/filimonov)) -* 修复对字典执行的 `DROP TABLE` [#10165](https://github.com/ClickHouse/ClickHouse/pull/10165) ([Azat Khuzhin](https://github.com/azat)) -* 在向 Distributed 表执行 `INSERT` 时,如果结构不匹配则自动转换数据块 [#10135](https://github.com/ClickHouse/ClickHouse/pull/10135) ([Azat Khuzhin](https://github.com/azat)) -* 当按分区键将插入的块拆分为多个 part 时,记录的行数不正确(被记录为所有 part 的总和)。 [#10138](https://github.com/ClickHouse/ClickHouse/pull/10138) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 为 MySQL 数据库引擎增加部分参数检查,并支持标识符参数 [#10077](https://github.com/ClickHouse/ClickHouse/pull/10077) ([Winter Zhang](https://github.com/zhang2014)) +* 新增 `allow_nondeterministic_mutations` 设置,允许在 mutation 操作中放宽对非确定性函数使用的限制。 [#10186](https://github.com/ClickHouse/ClickHouse/pull/10186) ([filimonov](https://github.com/filimonov)) +* 修复对字典错误调用 `DROP TABLE` 的问题 [#10165](https://github.com/ClickHouse/ClickHouse/pull/10165) ([Azat Khuzhin](https://github.com/azat)) +* 在向 Distributed 表执行 `INSERT` 时,如果结构不匹配则转换数据块 [#10135](https://github.com/ClickHouse/ClickHouse/pull/10135) ([Azat Khuzhin](https://github.com/azat)) +* 当按分区键将插入块拆分为多个 part 时,记录的行数不正确(被错误记录为所有 part 的总和)。 [#10138](https://github.com/ClickHouse/ClickHouse/pull/10138) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 为 MySQL 数据库引擎增加部分参数校验,并支持使用标识符作为参数 [#10077](https://github.com/ClickHouse/ClickHouse/pull/10077) ([Winter Zhang](https://github.com/zhang2014)) * 修正在创建新副本时对 `index_granularity_bytes` 的错误检查,修复了 [#10098](https://github.com/ClickHouse/ClickHouse/issues/10098)。[#10121](https://github.com/ClickHouse/ClickHouse/pull/10121) ([alesapin](https://github.com/alesapin)) -* 修复 `CHECK TABLE` 在包含 skip 索引的表上的查询问题。[#10068](https://github.com/ClickHouse/ClickHouse/pull/10068) ([alesapin](https://github.com/alesapin)) -* 修复嵌套表仅有一个分片时的 Distributed-over-Distributed 问题 [#9997](https://github.com/ClickHouse/ClickHouse/pull/9997) ([Azat Khuzhin](https://github.com/azat)) +* 修复在包含 skip 索引的表上执行 `CHECK TABLE` 查询时的错误。[#10068](https://github.com/ClickHouse/ClickHouse/pull/10068) ([alesapin](https://github.com/alesapin)) +* 修复嵌套表中只有一个分片时的 Distributed-over-Distributed 问题 [#9997](https://github.com/ClickHouse/ClickHouse/pull/9997) ([Azat Khuzhin](https://github.com/azat)) * 修复在包含 `JOIN` 和 `UNION ALL` 的查询中可能发生的数据行丢失问题。修复 [#9826](https://github.com/ClickHouse/ClickHouse/issues/9826)、[#10113](https://github.com/ClickHouse/ClickHouse/issues/10113)。 ... [#10099](https://github.com/ClickHouse/ClickHouse/pull/10099)([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* 修复在使用本地 ClickHouse 服务器作为源时字典中的 bug。如果字典中的类型与源中的类型不兼容,可能会导致内存破坏。 [#10071](https://github.com/ClickHouse/ClickHouse/pull/10071) ([alesapin](https://github.com/alesapin)) +* 修复在使用本地 ClickHouse 服务器作为源时字典中的错误。当字典中的类型与源中的类型不兼容时,可能会导致内存损坏。 [#10071](https://github.com/ClickHouse/ClickHouse/pull/10071) ([alesapin](https://github.com/alesapin)) * 修复了从旧版本 ClickHouse 升级时,如果不存在 `/table/replicas/replica_name/metadata` 节点,复制表无法启动的问题。修复了 [#10037](https://github.com/ClickHouse/ClickHouse/issues/10037)。[#10095](https://github.com/ClickHouse/ClickHouse/pull/10095)([alesapin](https://github.com/alesapin)) * 修复错误 `Cannot clone block with columns because block has 0 columns ... While executing GroupingAggregatedTransform`。该错误会在启用 `distributed_aggregation_memory_efficient` 设置时出现,当分布式查询从不同分片读取混合了单级和两级聚合的聚合数据时触发。 [#10063](https://github.com/ClickHouse/ClickHouse/pull/10063) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* 修复启动时附加包含物化视图的数据库失败导致的死锁问题 [#10054](https://github.com/ClickHouse/ClickHouse/pull/10054) ([Azat Khuzhin](https://github.com/azat)) +* 修复在启动时附加包含 materialized view 的数据库失败时出现的死锁问题 [#10054](https://github.com/ClickHouse/ClickHouse/pull/10054) ([Azat Khuzhin](https://github.com/azat)) * 修复在对含有尾部零字节的字符串键执行 GROUP BY 时可能发生的段错误([#8636](https://github.com/ClickHouse/ClickHouse/issues/8636), [#8925](https://github.com/ClickHouse/ClickHouse/issues/8925))。... [#10025](https://github.com/ClickHouse/ClickHouse/pull/10025) ([Alexander Kuzmenkov](https://github.com/akuzm)) -* 修复在别名可能覆盖限定列名时导致分布式查询结果错误的问题。修复了 [#9672](https://github.com/ClickHouse/ClickHouse/issues/9672) [#9714](https://github.com/ClickHouse/ClickHouse/issues/9714) [#9972](https://github.com/ClickHouse/ClickHouse/pull/9972)([Artem Zuikov](https://github.com/4ertus2)) +* 修复在别名可能覆盖限定列名的情况下导致分布式查询结果错误的问题。修复了 [#9672](https://github.com/ClickHouse/ClickHouse/issues/9672) [#9714](https://github.com/ClickHouse/ClickHouse/issues/9714) [#9972](https://github.com/ClickHouse/ClickHouse/pull/9972)([Artem Zuikov](https://github.com/4ertus2)) * 修复 `SYSTEM RESTART REPLICAS` 中潜在的死锁问题 [#9955](https://github.com/ClickHouse/ClickHouse/pull/9955) ([tavplubix](https://github.com/tavplubix)) -* 修正用于远程查询执行的线程数量(自 20.3 起引入的性能回退)。当从 `Distributed` 表发出的查询在本地和远程分片上同时执行时会出现该问题。修复了 [#9965](https://github.com/ClickHouse/ClickHouse/issues/9965) [#9971](https://github.com/ClickHouse/ClickHouse/pull/9971)([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* 修复用于远程查询执行的线程数(自 20.3 起引入的性能回退问题)。当从 `Distributed` 表发出的查询在本地和远程分片上同时执行时会出现该问题。修复了 [#9965](https://github.com/ClickHouse/ClickHouse/issues/9965) [#9971](https://github.com/ClickHouse/ClickHouse/pull/9971)([Nikolai Kochetov](https://github.com/KochetovNicolai)) * 修复了 `ATTACH PART` 中的 `DeleteOnDestroy` 逻辑(之前可能会导致已附加的 part 被自动删除),并新增了一些测试 [#9410](https://github.com/ClickHouse/ClickHouse/pull/9410) ([Vladimir Chebotarev](https://github.com/excitoon)) * 修复一个导致 `ON CLUSTER` DDL 查询在服务器启动时卡住的问题。[#9927](https://github.com/ClickHouse/ClickHouse/pull/9927) ([Gagan Arneja](https://github.com/garneja)) -* 修复在对某些数据库执行查询时的某个处理阶段未能获取所需表的错误。修复了 [#9699](https://github.com/ClickHouse/ClickHouse/issues/9699)。[#9949](https://github.com/ClickHouse/ClickHouse/pull/9949)([achulkov2](https://github.com/achulkov2)) -* 修复在 `JOIN` 与 `TOTALS` 同时出现时触发的 "Not found column in block" 错误。修复了 [#9839](https://github.com/ClickHouse/ClickHouse/issues/9839) [#9939](https://github.com/ClickHouse/ClickHouse/pull/9939) ([Artem Zuikov](https://github.com/4ertus2)) +* 修复了在向某些数据库执行的查询的某个处理阶段无法获取所需表的问题。修复了 [#9699](https://github.com/ClickHouse/ClickHouse/issues/9699)。[#9949](https://github.com/ClickHouse/ClickHouse/pull/9949)([achulkov2](https://github.com/achulkov2)) +* 修复在同时使用 `JOIN` 和 `TOTALS` 时出现的 "Not found column in block" 错误。修复了 [#9839](https://github.com/ClickHouse/ClickHouse/issues/9839) [#9939](https://github.com/ClickHouse/ClickHouse/pull/9939) ([Artem Zuikov](https://github.com/4ertus2)) * 修复在 `CREATE USER` 命令中对多个主机的解析 [#9924](https://github.com/ClickHouse/ClickHouse/pull/9924) ([Vitaly Baranov](https://github.com/vitlibar)) -* 修复 Join 表引擎中的 `TRUNCATE` 操作([#9917](https://github.com/ClickHouse/ClickHouse/issues/9917))。[#9920](https://github.com/ClickHouse/ClickHouse/pull/9920)([Amos Bird](https://github.com/amosbird)) +* 修复 Join 表引擎中 `TRUNCATE` 的行为([#9917](https://github.com/ClickHouse/ClickHouse/issues/9917))。[#9920](https://github.com/ClickHouse/ClickHouse/pull/9920)([Amos Bird](https://github.com/amosbird)) * 修复 `ReplicatedMergeTree` 中 `drop` 和 `optimize` 之间的竞争条件。[#9901](https://github.com/ClickHouse/ClickHouse/pull/9901) ([alesapin](https://github.com/alesapin)) -* 在启用 `optimize_skip_unused_shards` 时修复 Distributed 的 `DISTINCT` 行为。[#9808](https://github.com/ClickHouse/ClickHouse/pull/9808) ([Azat Khuzhin](https://github.com/azat)) +* 修复在设置 `optimize_skip_unused_shards` 时 Distributed 引擎的 `DISTINCT` 行为问题。[#9808](https://github.com/ClickHouse/ClickHouse/pull/9808) ([Azat Khuzhin](https://github.com/azat)) * 修复在 ALTER 语句中出现的 "scalar does not exist" 错误([#9878](https://github.com/ClickHouse/ClickHouse/issues/9878))。... [#9904](https://github.com/ClickHouse/ClickHouse/pull/9904)([Amos Bird](https://github.com/amosbird)) * 修复在 `distributed_product_mode=\'local\'` 模式下使用限定名称时的错误。修复了 [#4756](https://github.com/ClickHouse/ClickHouse/issues/4756) [#9891](https://github.com/ClickHouse/ClickHouse/pull/9891)([Artem Zuikov](https://github.com/4ertus2)) -* 对于 INSERT 查询,现在分片会将来自发起端的设置限制在自身约束范围内,而不是抛出异常。此修复允许向约束不同的分片发送 INSERT 查询。此更改改进了对 [#9447](https://github.com/ClickHouse/ClickHouse/issues/9447) 的修复。[#9852](https://github.com/ClickHouse/ClickHouse/pull/9852)([Vitaly Baranov](https://github.com/vitlibar)) -* 在向 Kafka broker 提交 offset 时增加重试机制,因为如果在 `offsets.commit.timeout.ms` 指定的时间内 `__consumer_offsets` 主题没有足够的副本可用,它可能会拒绝提交 [#9884](https://github.com/ClickHouse/ClickHouse/pull/9884) ([filimonov](https://github.com/filimonov)) -* 修复在 `WHERE` 中使用底层表虚拟列时 Distributed 引擎的行为 [#9847](https://github.com/ClickHouse/ClickHouse/pull/9847) ([Azat Khuzhin](https://github.com/azat)) -* 修复了在某些情况下未正确使用函数参数指定时区的问题。 [#9574](https://github.com/ClickHouse/ClickHouse/pull/9574) ([Vasily Nemkov](https://github.com/Enmk)) -* 修复在分布式表上执行同时包含 PREWHERE 和 WHERE 的查询且设置 `distributed_product_mode = 'local'` 时会出现的“具有相同别名的不同表达式”错误。[#9871](https://github.com/ClickHouse/ClickHouse/pull/9871) ([Artem Zuikov](https://github.com/4ertus2)) -* 修复在具有复合主键的表上执行变更时的过度内存消耗问题。这修复了 [#9850](https://github.com/ClickHouse/ClickHouse/issues/9850)。[#9860](https://github.com/ClickHouse/ClickHouse/pull/9860) ([alesapin](https://github.com/alesapin)) -* 修复根据设置 `allow_introspection_functions` 计算自省函数权限的逻辑。[#9840](https://github.com/ClickHouse/ClickHouse/pull/9840) ([Vitaly Baranov](https://github.com/vitlibar)) -* 修复在使用和不使用 Processors 时的 max_distributed_connections [#9673](https://github.com/ClickHouse/ClickHouse/pull/9673) ([Azat Khuzhin](https://github.com/azat)) +* 对于 INSERT 查询,现在分片会将来自发起方的设置限制在自身约束范围内,而不是抛出异常。此修复允许向约束条件不同的分片发送 INSERT 查询。此更改改进了对 [#9447](https://github.com/ClickHouse/ClickHouse/issues/9447) 的修复。[#9852](https://github.com/ClickHouse/ClickHouse/pull/9852)([Vitaly Baranov](https://github.com/vitlibar)) +* 在向 Kafka broker 提交 offset 时增加重试机制,因为如果在 `offsets.commit.timeout.ms` 指定的超时时间内 `__consumer_offsets` 主题没有足够的副本可用,broker 可能会拒绝此次提交 [#9884](https://github.com/ClickHouse/ClickHouse/pull/9884) ([filimonov](https://github.com/filimonov)) +* 修复在 `WHERE` 中使用底层表的虚拟列时 Distributed 引擎的行为 [#9847](https://github.com/ClickHouse/ClickHouse/pull/9847) ([Azat Khuzhin](https://github.com/azat)) +* 修复在某些情况下未正确使用函数参数中指定时区的问题。[#9574](https://github.com/ClickHouse/ClickHouse/pull/9574) ([Vasily Nemkov](https://github.com/Enmk)) +* 修复在分布式表上执行同时包含 PREWHERE 和 WHERE 的查询,并将 `distributed_product_mode = 'local'` 时出现的“具有相同别名的不同表达式”错误。[#9871](https://github.com/ClickHouse/ClickHouse/pull/9871) ([Artem Zuikov](https://github.com/4ertus2)) +* 修复在具有复合主键的表上执行变更时的过度内存消耗问题。这修复了 [#9850](https://github.com/ClickHouse/ClickHouse/issues/9850)。[#9860](https://github.com/ClickHouse/ClickHouse/pull/9860)([alesapin](https://github.com/alesapin)) +* 修复从设置 `allow_introspection_functions` 推导自省函数权限的逻辑。[#9840](https://github.com/ClickHouse/ClickHouse/pull/9840) ([Vitaly Baranov](https://github.com/vitlibar)) +* Fix max_distributed_connections (w/ and w/o Processors) [#9673](https://github.com/ClickHouse/ClickHouse/pull/9673) ([Azat Khuzhin](https://github.com/azat)) * 在客户端修复了可能出现的异常 `Got 0 in totals chunk, expected 1`。该问题会在包含 `JOIN` 的查询中出现,当右表没有任何行时触发。示例:`select * from system.one t1 join system.one t2 on t1.dummy = t2.dummy limit 0 FORMAT TabSeparated;`。修复了 [#9777](https://github.com/ClickHouse/ClickHouse/issues/9777)。... [#9823](https://github.com/ClickHouse/ClickHouse/pull/9823) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* 修复在包含表列表之外(例如在 WHERE 子句中)使用 COMMA JOIN 的子查询时出现的 'COMMA to CROSS JOIN rewriter is not enabled or cannot rewrite query' 错误。修复了 [#9782](https://github.com/ClickHouse/ClickHouse/issues/9782) [#9830](https://github.com/ClickHouse/ClickHouse/pull/9830)([Artem Zuikov](https://github.com/4ertus2)) -* 修复在设置 `optimize_skip_unused_shards` 时,由于键的表达式无法转换为其字段类型而导致的服务器崩溃问题 [#9804](https://github.com/ClickHouse/ClickHouse/pull/9804) ([Azat Khuzhin](https://github.com/azat)) +* 修复在子查询中于表列表之外(例如在 WHERE 子句中)使用 COMMA JOIN 时出现的 'COMMA to CROSS JOIN rewriter is not enabled or cannot rewrite query' 错误。修复了 [#9782](https://github.com/ClickHouse/ClickHouse/issues/9782) [#9830](https://github.com/ClickHouse/ClickHouse/pull/9830)([Artem Zuikov](https://github.com/4ertus2)) +* 修复在设置 `optimize_skip_unused_shards` 时,由于键表达式无法转换为其字段类型而导致的服务器崩溃问题 [#9804](https://github.com/ClickHouse/ClickHouse/pull/9804) ([Azat Khuzhin](https://github.com/azat)) * 修复 `splitByString` 中空字符串处理。[#9767](https://github.com/ClickHouse/ClickHouse/pull/9767) ([hcz](https://github.com/hczhcz)) * 修复在 compact parts 上执行 `ALTER TABLE DELETE COLUMN` 时出错的问题。[#9779](https://github.com/ClickHouse/ClickHouse/pull/9779) ([alesapin](https://github.com/alesapin)) * 修复了通过 HTTP(使用 processors 管线)执行查询时 `rows_before_limit_at_least` 缺失的问题。修复了 [#9730](https://github.com/ClickHouse/ClickHouse/issues/9730) [#9757](https://github.com/ClickHouse/ClickHouse/pull/9757)([Nikolai Kochetov](https://github.com/KochetovNicolai)) * 修复 `ALTER` 查询(mutation)中内存占用过多的问题。此修复解决了 [#9533](https://github.com/ClickHouse/ClickHouse/issues/9533) 和 [#9670](https://github.com/ClickHouse/ClickHouse/issues/9670)。[#9754](https://github.com/ClickHouse/ClickHouse/pull/9754)([alesapin](https://github.com/alesapin)) * 修复可能导致永久出现“Cannot schedule a task”错误的问题。[#9154](https://github.com/ClickHouse/ClickHouse/pull/9154) ([Azat Khuzhin](https://github.com/azat)) * 修复外部字典 DDL 中反引号转义的缺陷。修复了 [#9619](https://github.com/ClickHouse/ClickHouse/issues/9619)。 [#9734](https://github.com/ClickHouse/ClickHouse/pull/9734) ([alesapin](https://github.com/alesapin)) -* 修复了 `text_log` 中的数据竞争问题,但它不会导致任何实际故障。[#9726](https://github.com/ClickHouse/ClickHouse/pull/9726) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 修复了 `text_log` 中的数据竞争问题,但它并不对应任何实际缺陷。[#9726](https://github.com/ClickHouse/ClickHouse/pull/9726) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 修复复制中的一个错误:当用户在上一版本中执行过 mutation 操作时,会导致复制无法进行。此更改修复了 [#9645](https://github.com/ClickHouse/ClickHouse/issues/9645)。[#9652](https://github.com/ClickHouse/ClickHouse/pull/9652) ([alesapin](https://github.com/alesapin)) -* 修复了 `sumKahan` 和 `sumWithOverflow` 的内部函数名称错误。这会在远程查询中使用这些函数时导致异常。[#9636](https://github.com/ClickHouse/ClickHouse/pull/9636) ([Azat Khuzhin](https://github.com/azat)) +* 修复了 `sumKahan` 和 `sumWithOverflow` 的内部函数名称错误。这会导致在远程查询中使用这些函数时抛出异常。[#9636](https://github.com/ClickHouse/ClickHouse/pull/9636) ([Azat Khuzhin](https://github.com/azat)) * 新增设置 `use_compact_format_in_distributed_parts_names`,允许在对 `Distributed` 表执行 `INSERT` 查询时,以更紧凑的格式写入文件。此更改修复了 [#9647](https://github.com/ClickHouse/ClickHouse/issues/9647)。[#9653](https://github.com/ClickHouse/ClickHouse/pull/9653)([alesapin](https://github.com/alesapin)) -* 修复在 JOIN 键列中使用 LowCardinality 时的 RIGHT 和 FULL JOIN。 [#9610](https://github.com/ClickHouse/ClickHouse/pull/9610) ([Artem Zuikov](https://github.com/4ertus2)) -* 修复 `MergeTreeRangeReader` 中可能出现的异常 `Size of filter does not match size of column` 和 `Invalid number of rows in Chunk`。这些异常可能在某些执行 `PREWHERE` 的场景下触发。 [#9612](https://github.com/ClickHouse/ClickHouse/pull/9612) ([Anton Popov](https://github.com/CurtizJ)) +* 修复在 JOIN 键中使用 LowCardinality 时的 RIGHT 和 FULL JOIN。 [#9610](https://github.com/ClickHouse/ClickHouse/pull/9610) ([Artem Zuikov](https://github.com/4ertus2)) +* 修复 `MergeTreeRangeReader` 中可能出现的异常 `Size of filter does not match size of column` 和 `Invalid number of rows in Chunk`。这些异常可能在某些执行 `PREWHERE` 的情况下触发。 [#9612](https://github.com/ClickHouse/ClickHouse/pull/9612) ([Anton Popov](https://github.com/CurtizJ)) * 允许对启用了内部复制的 Distributed 表执行 `ALTER ON CLUSTER`。修复了 [#3268](https://github.com/ClickHouse/ClickHouse/issues/3268) [#9617](https://github.com/ClickHouse/ClickHouse/pull/9617)([shinoi2](https://github.com/shinoi2)) -* 修复了这样一个问题:在编写 `time + 1` 这类简单算术表达式时,时区不会被保留(与 `time + INTERVAL 1 SECOND` 这样的表达式相比)。此变更修复了 [#5743](https://github.com/ClickHouse/ClickHouse/issues/5743) [#9323](https://github.com/ClickHouse/ClickHouse/pull/9323)([alexey-milovidov](https://github.com/alexey-milovidov)) - - +* Fix issue when timezone was not preserved if you write a simple arithmetic expression like `time + 1` (in contrast to an expression like `time + INTERVAL 1 SECOND`). This fixes [#5743](https://github.com/ClickHouse/ClickHouse/issues/5743) [#9323](https://github.com/ClickHouse/ClickHouse/pull/9323) ([alexey-milovidov](https://github.com/alexey-milovidov)) #### 改进 {#improvement-16} * 在比较 DateTime 与字符串字面量时使用时区信息。此更改修复了 [#5206](https://github.com/ClickHouse/ClickHouse/issues/5206)。[#10515](https://github.com/ClickHouse/ClickHouse/pull/10515)([alexey-milovidov](https://github.com/alexey-milovidov)) -* 当无法从文本输入格式解析 Decimal 值时,打印详细诊断信息。 [#10205](https://github.com/ClickHouse/ClickHouse/pull/10205) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 当无法从文本输入格式中解析 Decimal 值时,打印详细诊断信息。[#10205](https://github.com/ClickHouse/ClickHouse/pull/10205)([alexey-milovidov](https://github.com/alexey-milovidov)) * 为分布式/缓冲调度池添加任务/内存指标 [#10449](https://github.com/ClickHouse/ClickHouse/pull/10449) ([Azat Khuzhin](https://github.com/azat)) * 在 clickhouse-local 和 HTTP 接口中,对于 SELECT DISTINCT 查询,一旦结果就绪就立即显示。此更改修复了 [#8951](https://github.com/ClickHouse/ClickHouse/issues/8951) [#9559](https://github.com/ClickHouse/ClickHouse/pull/9559) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 允许在 `clickhouse-copier` 中使用 `SAMPLE OFFSET` 查询语句替代 `cityHash64(PRIMARY KEY) % N == n` 来进行分片。要使用此功能,请在命令行参数中传入 `--experimental-use-sample-offset 1`。 [#10414](https://github.com/ClickHouse/ClickHouse/pull/10414) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) -* 当确定第一列的值不可能包含 BOM 时,允许在 TSV 中解析 BOM。这修复了 [#10301](https://github.com/ClickHouse/ClickHouse/issues/10301) [#10424](https://github.com/ClickHouse/ClickHouse/pull/10424) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 允许在 `clickhouse-copier` 中使用 `SAMPLE OFFSET` 查询替代 `cityHash64(PRIMARY KEY) % N == n` 来进行分片。要使用此功能,请在命令行参数中传入 `--experimental-use-sample-offset 1`。 [#10414](https://github.com/ClickHouse/ClickHouse/pull/10414) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) +* 如果可以确定第一列的值不可能包含 BOM,则允许在 TSV 中解析 BOM。这修复了 [#10301](https://github.com/ClickHouse/ClickHouse/issues/10301) [#10424](https://github.com/ClickHouse/ClickHouse/pull/10424) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 添加对 Avro 嵌套字段插入的支持 [#10354](https://github.com/ClickHouse/ClickHouse/pull/10354) ([Andrew Onyshchuk](https://github.com/oandrew)) -* 在非数据修改模式下,如果指定的类型相同,则允许对列执行 `ALTER` 操作。 [#10382](https://github.com/ClickHouse/ClickHouse/pull/10382) ([Vladimir Chebotarev](https://github.com/excitoon)) +* 在非数据修改模式下,如果指定的类型相同,则允许对列执行 ALTER 操作。 [#10382](https://github.com/ClickHouse/ClickHouse/pull/10382) ([Vladimir Chebotarev](https://github.com/excitoon)) * 在 GROUP BY 分片键上自动启用 `distributed_group_by_no_merge`(当已设置 `optimize_skip_unused_shards` 时)[#10341](https://github.com/ClickHouse/ClickHouse/pull/10341)([Azat Khuzhin](https://github.com/azat)) -* 使用 LIMIT/LIMIT BY/ORDER BY 优化使用 GROUP BY sharding_key 的分布式查询 [#10373](https://github.com/ClickHouse/ClickHouse/pull/10373) ([Azat Khuzhin](https://github.com/azat)) +* 为带有 GROUP BY sharding_key 的分布式查询优化 LIMIT/LIMIT BY/ORDER BY [#10373](https://github.com/ClickHouse/ClickHouse/pull/10373) ([Azat Khuzhin](https://github.com/azat)) * 添加了一个设置 `max_server_memory_usage`,用于限制服务器的总内存使用量。指标 `MemoryTracking` 的计算现在不会再出现偏差。设置 `max_memory_usage_for_all_queries` 现已废弃且不再起任何作用。修复了 [#10293](https://github.com/ClickHouse/ClickHouse/issues/10293)。[#10362](https://github.com/ClickHouse/ClickHouse/pull/10362)([alexey-milovidov](https://github.com/alexey-milovidov)) * 添加配置项 `system_tables_lazy_load`。如果将其设置为 false,则包含日志的 system 表会在服务器启动时加载。[Alexander Burmak](https://github.com/Alex-Burmak)、[Svyatoslav Tkhon Il Pak](https://github.com/DeifyTheGod)、[#9642](https://github.com/ClickHouse/ClickHouse/pull/9642) [#10359](https://github.com/ClickHouse/ClickHouse/pull/10359) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 在分布式发送中使用后台线程池(background_schedule_pool_size)[#10263](https://github.com/ClickHouse/ClickHouse/pull/10263) ([Azat Khuzhin](https://github.com/azat)) -* 使用后台线程池执行后台缓冲区刷新。[#10315](https://github.com/ClickHouse/ClickHouse/pull/10315) ([Azat Khuzhin](https://github.com/azat)) -* 增加对删除未完全写入部分这一特殊情况的支持。这修复了 [#9940](https://github.com/ClickHouse/ClickHouse/issues/9940)。[#10221](https://github.com/ClickHouse/ClickHouse/pull/10221)([alexey-milovidov](https://github.com/alexey-milovidov)) +* 使用后台线程池处理后台缓冲区刷新操作。[#10315](https://github.com/ClickHouse/ClickHouse/pull/10315) ([Azat Khuzhin](https://github.com/azat)) +* 增加对删除未完全写入的分区片段这一特殊情况的支持。这修复了 [#9940](https://github.com/ClickHouse/ClickHouse/issues/9940)。[#10221](https://github.com/ClickHouse/ClickHouse/pull/10221)([alexey-milovidov](https://github.com/alexey-milovidov)) * 在进行 GROUP BY 优化时,使用 isInjective(),而不是维护这类函数的手动列表。 [#10342](https://github.com/ClickHouse/ClickHouse/pull/10342) ([Azat Khuzhin](https://github.com/azat)) * 如果客户端在刚建立连接后立即发送 RST 数据包,则避免在日志中打印错误消息。这是带有 keepalived 和 VRRP 的 IPVS 负载均衡器的典型行为。此更改修复了 [#1851](https://github.com/ClickHouse/ClickHouse/issues/1851) [#10274](https://github.com/ClickHouse/ClickHouse/pull/10274) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 允许解析浮点类型中的 `+inf`。此更改关闭了 [#1839](https://github.com/ClickHouse/ClickHouse/issues/1839) [#10272](https://github.com/ClickHouse/ClickHouse/pull/10272)([alexey-milovidov](https://github.com/alexey-milovidov)) -* 实现了适用于 Nested 类型的 `generateRandom` 表函数。修复了 [#9903](https://github.com/ClickHouse/ClickHouse/issues/9903) [#10219](https://github.com/ClickHouse/ClickHouse/pull/10219)([alexey-milovidov](https://github.com/alexey-milovidov)) -* 在 MySQL 兼容接口中提供 `max_allowed_packed` 设置,以便某些客户端能够通过 MySQL 协议与 ClickHouse 通信。 [#10199](https://github.com/ClickHouse/ClickHouse/pull/10199) ([BohuTANG](https://github.com/BohuTANG)) -* 允许在 GLOBAL IN 中使用字面量(例如 `SELECT * FROM remote('localhost', system.one) WHERE dummy global in (0)`)[#10196](https://github.com/ClickHouse/ClickHouse/pull/10196)([Azat Khuzhin](https://github.com/azat)) +* 实现了适用于 Nested 类型的 `generateRandom` 表函数。关闭了 [#9903](https://github.com/ClickHouse/ClickHouse/issues/9903) [#10219](https://github.com/ClickHouse/ClickHouse/pull/10219)([alexey-milovidov](https://github.com/alexey-milovidov)) +* 在 MySQL 兼容接口中提供 `max_allowed_packed` 设置,以便部分客户端可以通过 MySQL 协议与 ClickHouse 通信。 [#10199](https://github.com/ClickHouse/ClickHouse/pull/10199) ([BohuTANG](https://github.com/BohuTANG)) +* 允许在 GLOBAL IN 子句中使用字面量(例如 `SELECT * FROM remote('localhost', system.one) WHERE dummy global in (0)`)[#10196](https://github.com/ClickHouse/ClickHouse/pull/10196)([Azat Khuzhin](https://github.com/azat)) * 修复 `clickhouse-client` 交互模式中的若干小问题 [#10194](https://github.com/ClickHouse/ClickHouse/pull/10194) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 避免不必要的字典加载(system.tables、DROP/SHOW CREATE TABLE) [#10164](https://github.com/ClickHouse/ClickHouse/pull/10164) ([Azat Khuzhin](https://github.com/azat)) -* RWLock 更新:为 getLock() 添加 timeout 参数,并重构实现为阶段公平 [#10073](https://github.com/ClickHouse/ClickHouse/pull/10073) ([Alexander Kazakov](https://github.com/Akazz)) +* RWLock 更新:为 getLock() 添加 timeout 参数,并将其实现重构为阶段公平(phase-fair) [#10073](https://github.com/ClickHouse/ClickHouse/pull/10073) ([Alexander Kazakov](https://github.com/Akazz)) * 增强对原生 mysql-connector-java(JDBC)的兼容性 [#10021](https://github.com/ClickHouse/ClickHouse/pull/10021) ([BohuTANG](https://github.com/BohuTANG)) * 函数 `toString` 被视为单调函数,即使在对 String 或 LowCardinality(String) 参数的恒真情况中使用,也可以用于索引分析。[#10110](https://github.com/ClickHouse/ClickHouse/pull/10110) ([Amos Bird](https://github.com/amosbird)) -* 为 `{CREATE|DROP} USER/ROLE/ROW POLICY/SETTINGS PROFILE/QUOTA`、`GRANT` 等命令添加对 `ON CLUSTER` 子句的支持。 [#9811](https://github.com/ClickHouse/ClickHouse/pull/9811) ([Vitaly Baranov](https://github.com/vitlibar)) -* 为 S3 URI 提供虚拟主机式访问支持 [#9998](https://github.com/ClickHouse/ClickHouse/pull/9998) ([Pavel Kovalenko](https://github.com/Jokser)) +* 为 `{CREATE|DROP} USER/ROLE/ROW POLICY/SETTINGS PROFILE/QUOTA` 和 `GRANT` 命令添加对 `ON CLUSTER` 子句的支持。 [#9811](https://github.com/ClickHouse/ClickHouse/pull/9811) ([Vitaly Baranov](https://github.com/vitlibar)) +* 为 S3 URI 提供虚拟主机风格支持 [#9998](https://github.com/ClickHouse/ClickHouse/pull/9998) ([Pavel Kovalenko](https://github.com/Jokser)) * 现在,在字典 DDL 查询中,无参数字典的布局类型可以在不使用圆括号的情况下指定。修复了 [#10057](https://github.com/ClickHouse/ClickHouse/issues/10057)。[#10064](https://github.com/ClickHouse/ClickHouse/pull/10064) ([alesapin](https://github.com/alesapin)) -* 添加在文件路径中使用带前导零的数字范围的功能 [#9989](https://github.com/ClickHouse/ClickHouse/pull/9989) ([Olga Khvostikova](https://github.com/stavrolia)) +* 添加对在文件路径中使用带前导零的数字范围的支持 [#9989](https://github.com/ClickHouse/ClickHouse/pull/9989) ([Olga Khvostikova](https://github.com/stavrolia)) * 优化 CROSS JOIN 的内存使用。[#10029](https://github.com/ClickHouse/ClickHouse/pull/10029) ([Artem Zuikov](https://github.com/4ertus2)) -* 在获取远程表结构且已设置 skip_unavailable_shards 时,尝试连接集群中的所有分片。 [#7278](https://github.com/ClickHouse/ClickHouse/pull/7278) ([nvartolomei](https://github.com/nvartolomei)) +* 当设置了 skip_unavailable_shards 并获取远程表结构时,尝试连接集群中的所有分片。 [#7278](https://github.com/ClickHouse/ClickHouse/pull/7278) ([nvartolomei](https://github.com/nvartolomei)) * 将 `total_rows`/`total_bytes` 添加到 `system.tables` 表中。 [#9919](https://github.com/ClickHouse/ClickHouse/pull/9919) ([Azat Khuzhin](https://github.com/azat)) * 系统日志表现在默认使用多态 part(polymorphic parts)。 [#9905](https://github.com/ClickHouse/ClickHouse/pull/9905) ([Anton Popov](https://github.com/CurtizJ)) * 在 system.settings/merge_tree_settings 中添加一个 type 列 [#9909](https://github.com/ClickHouse/ClickHouse/pull/9909) ([Azat Khuzhin](https://github.com/azat)) -* 在服务器启动时尽早检查可用的 CPU 指令。 [#9888](https://github.com/ClickHouse/ClickHouse/pull/9888) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 从 mutation 中移除 `ORDER BY` 阶段,因为我们在单线程中只会从单个有序的 part 读取数据。同时增加检查,确保 mutation 中的行按排序键排序,且该顺序未被打乱。[#9886](https://github.com/ClickHouse/ClickHouse/pull/9886) ([alesapin](https://github.com/alesapin)) +* 在服务器启动时尽早检查可用的 CPU 指令集。 [#9888](https://github.com/ClickHouse/ClickHouse/pull/9888) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 从 mutation 中移除 `ORDER BY` 阶段,因为在单线程中只会从单个有序的 part 读取数据。同时增加检查,确保 mutation 中的行按排序键排序,且该顺序未被打乱。[#9886](https://github.com/ClickHouse/ClickHouse/pull/9886) ([alesapin](https://github.com/alesapin)) * 在 FixedString 作为左操作数时实现 LIKE 运算符。这是为了更好地支持 TPC-DS 查询。[#9890](https://github.com/ClickHouse/ClickHouse/pull/9890) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 添加 `force_optimize_skip_unused_shards_no_nested`,用于对嵌套的 Distributed 表禁用 `force_optimize_skip_unused_shards` [#9812](https://github.com/ClickHouse/ClickHouse/pull/9812) ([Azat Khuzhin](https://github.com/azat)) +* 添加 `force_optimize_skip_unused_shards_no_nested`,用于在嵌套的 Distributed 表中禁用 `force_optimize_skip_unused_shards` [#9812](https://github.com/ClickHouse/ClickHouse/pull/9812) ([Azat Khuzhin](https://github.com/azat)) * 现在 MergeTree 数据部分的列大小只计算一次。[#9827](https://github.com/ClickHouse/ClickHouse/pull/9827) ([alesapin](https://github.com/alesapin)) * 为 `optimize_skip_unused_shards` 计算常量表达式(例如 `SELECT * FROM foo_dist WHERE key=xxHash32(0)`)[#8846](https://github.com/ClickHouse/ClickHouse/pull/8846) ([Azat Khuzhin](https://github.com/azat)) * 对在 TTL 表达式中使用 `Date` 或 `DateTime` 列的检查已被移除。[#9967](https://github.com/ClickHouse/ClickHouse/pull/9967) ([Vladimir Chebotarev](https://github.com/excitoon)) * 优化 DiskS3 硬链接的实现。 [#9760](https://github.com/ClickHouse/ClickHouse/pull/9760) ([Pavel Kovalenko](https://github.com/Jokser)) * 当将 `multiple_joins_rewriter_version` 设置为 2 时,会启用第二版多重 JOIN 重写算法,它会保持未发生冲突的列名原样不变。该版本支持带有 `USING` 的多个 JOIN,并允许对包含子查询的 JOIN 使用 `select *`。 [#9739](https://github.com/ClickHouse/ClickHouse/pull/9739) ([Artem Zuikov](https://github.com/4ertus2)) -* 实现用于 StorageMergeTree 的“非阻塞”ALTER [#9606](https://github.com/ClickHouse/ClickHouse/pull/9606) ([alesapin](https://github.com/alesapin)) +* 实现针对 StorageMergeTree 的“非阻塞”ALTER 操作 [#9606](https://github.com/ClickHouse/ClickHouse/pull/9606) ([alesapin](https://github.com/alesapin)) * 为 DiskS3 添加对 MergeTree 的完整支持 [#9646](https://github.com/ClickHouse/ClickHouse/pull/9646) ([Pavel Kovalenko](https://github.com/Jokser)) * 扩展 `splitByString`,以支持空字符串作为分隔符。 [#9742](https://github.com/ClickHouse/ClickHouse/pull/9742) ([hcz](https://github.com/hczhcz)) * 向 `system.trace_log` 添加 `timestamp_ns` 列。该列包含跟踪事件的高精度时间戳,可用于构建线程分析(“火焰图”)的时间线。 [#9696](https://github.com/ClickHouse/ClickHouse/pull/9696) ([Alexander Kuzmenkov](https://github.com/akuzm)) -* 当启用 `send_logs_level` 设置时,避免日志消息与查询进度交错输出。[#9634](https://github.com/ClickHouse/ClickHouse/pull/9634) ([Azat Khuzhin](https://github.com/azat)) +* 当启用 `send_logs_level` 设置时,避免日志消息与查询进度交错输出。 [#9634](https://github.com/ClickHouse/ClickHouse/pull/9634) ([Azat Khuzhin](https://github.com/azat)) * 新增对 `MATERIALIZE TTL IN PARTITION` 的支持。 [#9581](https://github.com/ClickHouse/ClickHouse/pull/9581) ([Vladimir Chebotarev](https://github.com/excitoon)) * 在 Avro 嵌套字段中增加对复杂类型的支持 [#10502](https://github.com/ClickHouse/ClickHouse/pull/10502) ([Andrew Onyshchuk](https://github.com/oandrew)) #### 性能改进 {#performance-improvement-11} + * 为 Partial MergeJoin 中的右表提供了更优的插入逻辑。[#10467](https://github.com/ClickHouse/ClickHouse/pull/10467) ([Artem Zuikov](https://github.com/4ertus2)) * 提升了行式格式的性能(对于窄表,CSV 提升超过 10%,Avro 提升超过 35%)。[#10503](https://github.com/ClickHouse/ClickHouse/pull/10503) ([Andrew Onyshchuk](https://github.com/oandrew)) * 提升了在 `IN` 运算符右侧显式定义集合且左侧为元组时的查询性能。[#10385](https://github.com/ClickHouse/ClickHouse/pull/10385) ([Anton Popov](https://github.com/CurtizJ)) @@ -2317,10 +2311,10 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor * 修复在使用错误参数调用函数 `now64` 时可能发生的有符号整数溢出问题。此更改修复了 [#8973](https://github.com/ClickHouse/ClickHouse/issues/8973) [#10511](https://github.com/ClickHouse/ClickHouse/pull/10511)([alexey-milovidov](https://github.com/alexey-milovidov)) * 拆分 fuzzer 和 sanitizer 配置,以使构建配置与 OSS-Fuzz 兼容。 [#10494](https://github.com/ClickHouse/ClickHouse/pull/10494) ([kyprizel](https://github.com/kyprizel)) * 修复 clang-10 中的 clang-tidy 问题。 [#10420](https://github.com/ClickHouse/ClickHouse/pull/10420) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 在错误信息中显示绝对路径。否则 KDevelop 将无法跳转到正确的文件,而是会新建并打开一个文件。 [#10434](https://github.com/ClickHouse/ClickHouse/pull/10434) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 在错误信息中显示绝对路径。否则 KDevelop 将无法跳转到正确的文件,而是会改为新建并打开一个文件。 [#10434](https://github.com/ClickHouse/ClickHouse/pull/10434) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 添加了 `ASAN_OPTIONS` 环境变量,以使用 AddressSanitizer 调查 CI 压力测试中的错误。[#10440](https://github.com/ClickHouse/ClickHouse/pull/10440) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) * 在 clang 构建中启用 ThinLTO(实验性功能)。 [#10435](https://github.com/ClickHouse/ClickHouse/pull/10435) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 移除在系统安装 Z3 求解器时可能被引入的对 Z3 的意外依赖。 [#10426](https://github.com/ClickHouse/ClickHouse/pull/10426) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 移除在系统安装了 Z3 求解器时可能意外引入的对 Z3 的依赖。 [#10426](https://github.com/ClickHouse/ClickHouse/pull/10426) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 将集成测试的 Docker 文件移动到 docker/ 目录中。 [#10335](https://github.com/ClickHouse/ClickHouse/pull/10335) ([Ilya Yatsishin](https://github.com/qoega)) * 允许在 CI 中使用 `clang-10`,以确保 [#10238](https://github.com/ClickHouse/ClickHouse/issues/10238) 已被修复。[#10384](https://github.com/ClickHouse/ClickHouse/pull/10384) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 将 OpenSSL 更新到上游 master 分支。修复了一个可能导致 TLS 连接失败,并出现 `OpenSSL SSL_read: error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error` 和 `SSL Exception: error:2400006E:random number generator::error retrieving entropy` 错误消息的问题。该问题存在于 20.1 版本中。[#8956](https://github.com/ClickHouse/ClickHouse/pull/8956) ([alexey-milovidov](https://github.com/alexey-milovidov)) @@ -2330,44 +2324,42 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor * 在 CI 中添加用于上传 ClickHouse 测试结果的工具 [#10330](https://github.com/ClickHouse/ClickHouse/pull/10330) ([Ilya Yatsishin](https://github.com/qoega)) * 将 junit_to_html 工具的测试结果转换为 JSONEachRow 格式 [#10323](https://github.com/ClickHouse/ClickHouse/pull/10323) ([Ilya Yatsishin](https://github.com/qoega)) * 更新 cctz。 [#10215](https://github.com/ClickHouse/ClickHouse/pull/10215) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 支持从原始的 JUnit XML 报告生成 HTML 报告。[#10247](https://github.com/ClickHouse/ClickHouse/pull/10247) ([Ilya Yatsishin](https://github.com/qoega)) -* 更新最低编译器版本检查。修复该问题的根本原因 [#10250](https://github.com/ClickHouse/ClickHouse/issues/10250) [#10256](https://github.com/ClickHouse/ClickHouse/pull/10256) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 对分布式 Live View 表提供初步支持 [#10179](https://github.com/ClickHouse/ClickHouse/pull/10179) ([vzakaznikov](https://github.com/vzakaznikov)) +* 支持从最原始的 JUnit XML 报告生成 HTML 报告。[#10247](https://github.com/ClickHouse/ClickHouse/pull/10247) ([Ilya Yatsishin](https://github.com/qoega)) +* 更新编译器最低版本检查。修复该问题的根本原因 [#10250](https://github.com/ClickHouse/ClickHouse/issues/10250) [#10256](https://github.com/ClickHouse/ClickHouse/pull/10256) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 为分布式 Live View 表提供初步支持 [#10179](https://github.com/ClickHouse/ClickHouse/pull/10179) ([vzakaznikov](https://github.com/vzakaznikov)) * 修复 MergeTreeIndexFullText 中的 MSan 误报。该问题最初出现在 [#9968](https://github.com/ClickHouse/ClickHouse/issues/9968)。[#10801](https://github.com/ClickHouse/ClickHouse/pull/10801)([alexey-milovidov](https://github.com/alexey-milovidov)) * clickhouse-docker-util [#10151](https://github.com/ClickHouse/ClickHouse/pull/10151) ([filimonov](https://github.com/filimonov)) -* 将 pdqsort 更新到较新版本 [#10171](https://github.com/ClickHouse/ClickHouse/pull/10171) ([Ivan](https://github.com/abyss7)) +* 将 pdqsort 更新到最新版本 [#10171](https://github.com/ClickHouse/ClickHouse/pull/10171) ([Ivan](https://github.com/abyss7)) * 将 libdivide 更新到 v3.0 [#10169](https://github.com/ClickHouse/ClickHouse/pull/10169) ([Ivan](https://github.com/abyss7)) -* 在启用多态部件时添加检查。 [#10086](https://github.com/ClickHouse/ClickHouse/pull/10086) ([Anton Popov](https://github.com/CurtizJ)) +* 在启用多态分区片段时添加检查。 [#10086](https://github.com/ClickHouse/ClickHouse/pull/10086) ([Anton Popov](https://github.com/CurtizJ)) * 为 FreeBSD 添加交叉编译构建支持。这修复了 [#9465](https://github.com/ClickHouse/ClickHouse/issues/9465) [#9643](https://github.com/ClickHouse/ClickHouse/pull/9643) ([Ivan](https://github.com/abyss7)) * 为 [#6924](https://github.com/ClickHouse/ClickHouse/issues/6924) [#6980](https://github.com/ClickHouse/ClickHouse/pull/6980) 添加性能测试([filimonov](https://github.com/filimonov)) * 在 `File` 引擎中添加对 `/dev/null` 的支持,以便更好地进行性能测试 [#8455](https://github.com/ClickHouse/ClickHouse/pull/8455) ([Amos Bird](https://github.com/amosbird)) -* 将 /dbms 目录下的所有文件夹上移一级 [#9974](https://github.com/ClickHouse/ClickHouse/pull/9974) ([Ivan](https://github.com/abyss7)) -* 添加一个测试,用于检查在单线程从 MergeTree 读取时是否保持顺序。作为对 [#9670](https://github.com/ClickHouse/ClickHouse/issues/9670) [#9762](https://github.com/ClickHouse/ClickHouse/pull/9762) 的补充([alexey-milovidov](https://github.com/alexey-milovidov)) +* 将 /dbms 目录下的所有子目录移动到上一级目录 [#9974](https://github.com/ClickHouse/ClickHouse/pull/9974) ([Ivan](https://github.com/abyss7)) +* 添加一个测试,用于检查使用单线程从 MergeTree 读取数据时是否按顺序执行。作为对 [#9670](https://github.com/ClickHouse/ClickHouse/issues/9670) [#9762](https://github.com/ClickHouse/ClickHouse/pull/9762) 的补充([alexey-milovidov](https://github.com/alexey-milovidov)) * 修复 `00964_live_view_watch_events_heartbeat.py` 测试以避免竞态条件。 [#9944](https://github.com/ClickHouse/ClickHouse/pull/9944) ([vzakaznikov](https://github.com/vzakaznikov)) * 修复集成测试 `test_settings_constraints` [#9962](https://github.com/ClickHouse/ClickHouse/pull/9962) ([Vitaly Baranov](https://github.com/vitlibar)) -* 每个函数放在自己的文件中,第 12 部分。 [#9922](https://github.com/ClickHouse/ClickHouse/pull/9922) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 针对分析元组数组极度缓慢的情况添加了性能测试。[#9872](https://github.com/ClickHouse/ClickHouse/pull/9872) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 将 zstd 升级到 1.4.4。它在性能和压缩比方面有一些小幅提升。如果你运行的副本使用不同版本的 ClickHouse,可能会看到类似如下且带有说明的错误信息:`Data after merge is not byte-identical to data on another replicas.`。这些消息是正常的,无需担心。 [#10663](https://github.com/ClickHouse/ClickHouse/pull/10663) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 将每个函数拆分到独立文件(第 12 部分)。 [#9922](https://github.com/ClickHouse/ClickHouse/pull/9922) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 为极端缓慢的元组数组分析场景添加了性能测试。[#9872](https://github.com/ClickHouse/ClickHouse/pull/9872) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 将 zstd 升级到 1.4.4。它在性能和压缩比方面有一些小幅提升。如果你的集群中存在运行不同版本 ClickHouse 的副本,可能会看到类似 `Data after merge is not byte-identical to data on another replicas.` 的、带有说明的错误信息。这些消息是正常的,无需担心。 [#10663](https://github.com/ClickHouse/ClickHouse/pull/10663) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 修复 `system.stack_trace` 中的 TSan 报告。 [#9832](https://github.com/ClickHouse/ClickHouse/pull/9832) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 已移除对 `clock_getres` 的依赖。 [#9833](https://github.com/ClickHouse/ClickHouse/pull/9833) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 添加了使用 clang-tidy 的标识符命名检查。 [#9799](https://github.com/ClickHouse/ClickHouse/pull/9799) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 添加了基于 clang-tidy 的标识符命名检查。 [#9799](https://github.com/ClickHouse/ClickHouse/pull/9799) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 更新 "builder" Docker 镜像。此镜像不会在 CI 中使用,但对开发者很有用。[#9809](https://github.com/ClickHouse/ClickHouse/pull/9809) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 移除 CI 中不再使用的旧 `performance-test` 工具。`clickhouse-performance-test` 很好,但现在我们使用的是更为先进的工具,它通过复杂的统计公式进行比较测试,从而无论环境发生何种变化都能获得可靠的结果。 [#9796](https://github.com/ClickHouse/ClickHouse/pull/9796) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 移除 CI 中不再使用的旧 `performance-test` 工具。`clickhouse-performance-test` 很好,但现在我们使用的是更为先进的工具,它通过复杂的统计公式进行比较测试,从而在各种环境变化下都能获得可靠的结果。 [#9796](https://github.com/ClickHouse/ClickHouse/pull/9796) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 已添加大部分 clang-static-analyzer 检查项。[#9765](https://github.com/ClickHouse/ClickHouse/pull/9765) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 将 Poco 更新到 1.9.3,为支持 MongoDB URI 做准备。 [#6892](https://github.com/ClickHouse/ClickHouse/pull/6892) ([Alexander Kuzmenkov](https://github.com/akuzm)) * 使用 `-DUSE_STATIC_LIBRARIES=0 -DENABLE_JEMALLOC=0` 修复构建问题 [#9651](https://github.com/ClickHouse/ClickHouse/pull/9651) ([Artem Zuikov](https://github.com/4ertus2)) -* 对于变更日志脚本,如果合并提交被 cherry-pick 到发布分支,则从提交说明中获取 PR 名称。 [#9708](https://github.com/ClickHouse/ClickHouse/pull/9708) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* 对于变更日志脚本,如果将合并提交 cherry-pick 到发布分支,则从提交说明中获取 PR 名称。 [#9708](https://github.com/ClickHouse/ClickHouse/pull/9708) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * 在 backport 脚本中支持 `vX.X-conflicts` 标签。 [#9705](https://github.com/ClickHouse/ClickHouse/pull/9705) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* 修复回移植脚本中的 `auto-label`。 [#9685](https://github.com/ClickHouse/ClickHouse/pull/9685) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* 修复 backport 脚本中的 `auto-label`。 [#9685](https://github.com/ClickHouse/ClickHouse/pull/9685) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * 在 Darwin 交叉编译中使用 libc++,使其与本地构建保持一致。 [#9665](https://github.com/ClickHouse/ClickHouse/pull/9665) ([Hui Wang](https://github.com/huiwang)) * 修复不稳定的测试 `01017_uniqCombined_memory_usage`。这是 [#7236](https://github.com/ClickHouse/ClickHouse/issues/7236) 的后续。[#9667](https://github.com/ClickHouse/ClickHouse/pull/9667) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 修复在原生 macOS Clang 编译器下的构建问题 [#9649](https://github.com/ClickHouse/ClickHouse/pull/9649) ([Ivan](https://github.com/abyss7)) +* 修复使用原生 macOS Clang 编译器时的构建问题 [#9649](https://github.com/ClickHouse/ClickHouse/pull/9649) ([Ivan](https://github.com/abyss7)) * 支持在 `pthread_mutex_lock`、`pthread_mutex_unlock` 函数周围注入各种故障。[#9635](https://github.com/ClickHouse/ClickHouse/pull/9635) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 为 `packager` 脚本添加对 `clang-tidy` 的支持。 [#9625](https://github.com/ClickHouse/ClickHouse/pull/9625) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 添加对使用未捆绑的 msgpack 的支持。[#10168](https://github.com/ClickHouse/ClickHouse/pull/10168) ([Azat Khuzhin](https://github.com/azat)) - - ## ClickHouse 版本 v20.3 {#clickhouse-release-v203} ### ClickHouse 版本 v20.3.21.2-lts,2020-11-02 {#clickhouse-release-v203212-lts-2020-11-02} @@ -2419,7 +2411,7 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor * 对使用 LowCardinality 的非常短的查询进行小幅优化。[#14129](https://github.com/ClickHouse/ClickHouse/pull/14129)([Anton Popov](https://github.com/CurtizJ))。 -#### Build/Testing/Packaging Improvement {#buildtestingpackaging-improvement-16} +#### 构建/测试/打包改进 {#buildtestingpackaging-improvement-16} * 修复在迁移到 clang-10 后在 HashTable 中出现的 UBSan 报告(对 nullptr 执行加零操作)。[#10638](https://github.com/ClickHouse/ClickHouse/pull/10638) ([alexey-milovidov](https://github.com/alexey-milovidov))。 @@ -2526,7 +2518,7 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor #### 新特性 {#new-feature-9} -* 现在 ClickHouse 会在自身端控制字典源的超时时间。在缓存字典配置中新增了两个设置项:`strict_max_lifetime_seconds`,默认取值为 `max_lifetime`,以及 `query_wait_timeout_milliseconds`,默认值为一分钟。第一个设置项在搭配 `allow_read_expired_keys` 设置时也很有用(用于禁止读取已严重过期的键)。[#10337](https://github.com/ClickHouse/ClickHouse/pull/10337)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* 现在 ClickHouse 会在自身端控制字典源的超时时间。在缓存字典配置中新增了两个设置项:`strict_max_lifetime_seconds`,默认取值为 `max_lifetime`,以及 `query_wait_timeout_milliseconds`,默认值为一分钟。第一个设置项在搭配 `allow_read_expired_keys` 设置时也很有用(用于禁止读取已严重过期的键)。[#10337](https://github.com/ClickHouse/ClickHouse/pull/10337)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 #### Bug 修复 {#bug-fix-40} @@ -2626,18 +2618,19 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor * 修复在启用 `distributed_group_by_no_merge` 时可能发生的段错误(该问题由 [#10131](https://github.com/ClickHouse/ClickHouse/issues/10131) 在 20.3.7.46 中引入)。[#10399](https://github.com/ClickHouse/ClickHouse/pull/10399)([Nikolai Kochetov](https://github.com/KochetovNicolai)) * 修复 `Array(Tuple(...))` 数据类型的错误扁平化处理。此更改修复了 [#10259](https://github.com/ClickHouse/ClickHouse/issues/10259) [#10390](https://github.com/ClickHouse/ClickHouse/pull/10390)([alexey-milovidov](https://github.com/alexey-milovidov)) * 在 Aggregator 中取消磁盘预留。修复了磁盘空间预留中的一个错误,该错误可能导致大型外部聚合在本可以成功完成的情况下却失败 [#10375](https://github.com/ClickHouse/ClickHouse/pull/10375) ([Azat Khuzhin](https://github.com/azat)) -* 修复了 `ReplicatedMergeTree` 中 `DROP` 与 `OPTIMIZE` 之间的竞态条件。如果存在并发的 `OPTIMIZE` 查询,`DROP` 可能会在 ZooKeeper 的副本路径中留下残留数据。 [#10312](https://github.com/ClickHouse/ClickHouse/pull/10312) ([tavplubix](https://github.com/tavplubix)) +* 修复了 `ReplicatedMergeTree` 中 `DROP` 与 `OPTIMIZE` 之间的竞态条件。 如果存在并发的 `OPTIMIZE` 查询,`DROP` 可能会在 ZooKeeper 的副本路径中留下残留数据。 [#10312](https://github.com/ClickHouse/ClickHouse/pull/10312) ([tavplubix](https://github.com/tavplubix)) * 修复在修改列默认值后服务器无法附加表的问题。[#10441](https://github.com/ClickHouse/ClickHouse/pull/10441) ([alesapin](https://github.com/alesapin)) -* 在加载表之前,如果执行 ATTACH DATABASE 失败,不要删除元数据目录。 [#10442](https://github.com/ClickHouse/ClickHouse/pull/10442) ([Winter Zhang](https://github.com/zhang2014)) -* 修复了多个错误:当某些数据使用 quorum 插入后,又通过某种方式被删除(DROP PARTITION、TTL)时,会导致后续 INSERT 请求卡住,或者在 SELECT 查询中出现误报异常。此修复对应 [#9946](https://github.com/ClickHouse/ClickHouse/issues/9946) [#10188](https://github.com/ClickHouse/ClickHouse/pull/10188)([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) +* 在加载表之前,如果执行 ATTACH DATABASE 失败,不要删除元数据目录。 [#10442](https://github.com/ClickHouse/ClickHouse/pull/10442) ([Winter Zhang](https://github.com/zhang2014)) +* 修复了多个错误:当某些数据使用 quorum 插入后,又通过某种方式被删除(DROP PARTITION、生存时间 (TTL))时,会导致后续 INSERT 请求卡住,或者在 SELECT 查询中出现误报异常。此修复对应 [#9946](https://github.com/ClickHouse/ClickHouse/issues/9946) [#10188](https://github.com/ClickHouse/ClickHouse/pull/10188)([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) * 修复 `ConcatProcessor` 中在远程查询时可能发生的 `Pipeline stuck` 错误。 [#10381](https://github.com/ClickHouse/ClickHouse/pull/10381) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* 修复 HashTable 中的错误行为,该问题会在尝试从缓冲区读取 HashMap 时导致编译错误。 [#10386](https://github.com/ClickHouse/ClickHouse/pull/10386) ([palasonic1](https://github.com/palasonic1)) +* 修复了 HashTable 中的错误行为,该问题会在尝试从缓冲区读取 HashMap 时导致编译错误。 [#10386](https://github.com/ClickHouse/ClickHouse/pull/10386) ([palasonic1](https://github.com/palasonic1)) * 允许在包含多个 JOIN 的查询中使用 `count(*)`。修复 [#9853](https://github.com/ClickHouse/ClickHouse/issues/9853) [#10291](https://github.com/ClickHouse/ClickHouse/pull/10291) ([Artem Zuikov](https://github.com/4ertus2)) * 优先使用 `fallback_to_stale_replicas` 而不是 `skip_unavailable_shards`,否则当同时指定这两个设置且没有最新状态的副本时,查询将会失败(补丁来自 @alex-zaitsev)。修复:[#2564](https://github.com/ClickHouse/ClickHouse/issues/2564)。[#10422](https://github.com/ClickHouse/ClickHouse/pull/10422)([Azat Khuzhin](https://github.com/azat)) * 修复了这样一个问题:当查询包含 ARRAY JOIN、ORDER BY 和 LIMIT 时,可能会返回不完整的结果。修复了 [#10226](https://github.com/ClickHouse/ClickHouse/issues/10226)。作者:[Vadim Plakhtinskiy](https://github.com/VadimPlh)。[#10427](https://github.com/ClickHouse/ClickHouse/pull/10427)([alexey-milovidov](https://github.com/alexey-milovidov)) -* 在创建 Bloom Filter 索引时检查参数的数量和类型 [#9623](https://github.com/ClickHouse/ClickHouse/issues/9623) [#10431](https://github.com/ClickHouse/ClickHouse/pull/10431) ([Winter Zhang](https://github.com/zhang2014)) +* 在创建 BloomFilter 索引时检查参数的数量和类型 [#9623](https://github.com/ClickHouse/ClickHouse/issues/9623) [#10431](https://github.com/ClickHouse/ClickHouse/pull/10431) ([Winter Zhang](https://github.com/zhang2014)) #### 性能改进 {#performance-improvement-15} + * 提升了在 `IN` 运算符右侧显式定义集合、左侧为元组时的查询性能。该改动修复了 20.3 版本中的性能回归问题。[#9740](https://github.com/ClickHouse/ClickHouse/pull/9740), [#10385](https://github.com/ClickHouse/ClickHouse/pull/10385) ([Anton Popov](https://github.com/CurtizJ)) ### ClickHouse release v20.3.7.46, 2020-04-17 {#clickhouse-release-v203746-2020-04-17} @@ -2699,14 +2692,14 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor #### Bug 修复 {#bug-fix-46} * 修复在分布式表上的查询同时包含 PREWHERE 和 WHERE 且执行 `SET distributed_product_mode = 'local'` 时出现的 “Different expressions with the same alias” 错误。[#9871](https://github.com/ClickHouse/ClickHouse/pull/9871)([Artem Zuikov](https://github.com/4ertus2))。 -* 修复在具有复合主键的表上,mutation 操作导致的过量内存消耗。此修复解决了 [#9850](https://github.com/ClickHouse/ClickHouse/issues/9850)。[#9860](https://github.com/ClickHouse/ClickHouse/pull/9860)([alesapin](https://github.com/alesapin))。 +* 修复在具有复合主键的表上,mutation 操作导致的过多内存消耗。此修复解决了 [#9850](https://github.com/ClickHouse/ClickHouse/issues/9850)。[#9860](https://github.com/ClickHouse/ClickHouse/pull/9860)([alesapin](https://github.com/alesapin))。 * 对于 INSERT 查询,现在分片会将从发起端获取的设置限制到分片自身的约束范围内,而不是抛出异常。此修复允许向具有不同约束的分片发送 INSERT 查询。此变更改进了对 [#9447](https://github.com/ClickHouse/ClickHouse/issues/9447) 的修复。[#9852](https://github.com/ClickHouse/ClickHouse/pull/9852)([Vitaly Baranov](https://github.com/vitlibar))。 * 修复在存在 COMMA JOIN 的子查询(位于表列表之外,例如在 WHERE 中)时出现的 “COMMA to CROSS JOIN rewriter is not enabled or cannot rewrite query” 错误。修复了 [#9782](https://github.com/ClickHouse/ClickHouse/issues/9782)。[#9830](https://github.com/ClickHouse/ClickHouse/pull/9830)([Artem Zuikov](https://github.com/4ertus2))。 * 修复客户端上可能出现的 `Got 0 in totals chunk, expected 1` 异常。该问题出现在包含 `JOIN` 的查询中,当右连接的表没有任何行时会触发。例如:`select * from system.one t1 join system.one t2 on t1.dummy = t2.dummy limit 0 FORMAT TabSeparated;`。修复了 [#9777](https://github.com/ClickHouse/ClickHouse/issues/9777)。[#9823](https://github.com/ClickHouse/ClickHouse/pull/9823)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 * 修复在无法转换类型时使用 `optimize_skip_unused_shards` 导致的 SIGSEGV。[#9804](https://github.com/ClickHouse/ClickHouse/pull/9804)([Azat Khuzhin](https://github.com/azat))。 -* 修复 `ALTER TABLE DELETE COLUMN` 在 compact parts 上的异常行为。[#9779](https://github.com/ClickHouse/ClickHouse/pull/9779)([alesapin](https://github.com/alesapin))。 -* 修复 max_distributed_connections(有无 Processors 情况)。[#9673](https://github.com/ClickHouse/ClickHouse/pull/9673)([Azat Khuzhin](https://github.com/azat))。 -* 修复少数情况下未正确使用函数参数时区的问题。[#9574](https://github.com/ClickHouse/ClickHouse/pull/9574)([Vasily Nemkov](https://github.com/Enmk))。 +* 修复 `ALTER TABLE DELETE COLUMN` 在紧凑分区片段(compact parts)上的异常行为。[#9779](https://github.com/ClickHouse/ClickHouse/pull/9779)([alesapin](https://github.com/alesapin))。 +* 修复 max_distributed_connections(在启用和未启用 Processors 的情况下)。[#9673](https://github.com/ClickHouse/ClickHouse/pull/9673)([Azat Khuzhin](https://github.com/azat))。 +* 修复在少数情况下未正确使用函数参数时区的问题。[#9574](https://github.com/ClickHouse/ClickHouse/pull/9574)([Vasily Nemkov](https://github.com/Enmk))。 #### 改进 {#improvement-19} @@ -2715,12 +2708,14 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor ### ClickHouse release v20.3.4.10,2020-03-20 {#clickhouse-release-v203410-2020-03-20} #### Bug Fix {#bug-fix-47} + * 此版本同样包含来自 20.1.8.41 的所有错误修复 * 修复通过 http(使用 processors pipeline)执行查询时缺少 `rows_before_limit_at_least` 的问题。修复了 [#9730](https://github.com/ClickHouse/ClickHouse/issues/9730)。[#9757](https://github.com/ClickHouse/ClickHouse/pull/9757)([Nikolai Kochetov](https://github.com/KochetovNicolai)) ### ClickHouse release v20.3.3.6, 2020-03-17 {#clickhouse-release-v20336-2020-03-17} #### Bug Fix {#bug-fix-48} + * 此版本同样包含来自 20.1.7.38 的所有错误修复 * 修复复制机制中的一个错误:如果用户在上一版本中执行过 mutation,将导致复制无法工作。修复了 [#9645](https://github.com/ClickHouse/ClickHouse/issues/9645)。[#9652](https://github.com/ClickHouse/ClickHouse/pull/9652)([alesapin](https://github.com/alesapin))。这使得 20.3 版本再次向后兼容。 * 新增设置 `use_compact_format_in_distributed_parts_names`,允许在向 `Distributed` 表执行 `INSERT` 查询时,以更加紧凑的格式写入文件。修复了 [#9647](https://github.com/ClickHouse/ClickHouse/issues/9647)。[#9653](https://github.com/ClickHouse/ClickHouse/pull/9653)([alesapin](https://github.com/alesapin))。这使得 20.3 版本再次向后兼容。 @@ -2741,40 +2736,39 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor * 需要重启服务器才能使日志配置中的更改生效。这是为临时规避一个缺陷,即服务器仍然将日志写入已被删除的日志文件(参见 [#8696](https://github.com/ClickHouse/ClickHouse/issues/8696))。[#8707](https://github.com/ClickHouse/ClickHouse/pull/8707)([Alexander Kuzmenkov](https://github.com/akuzm)) * `experimental_use_processors` 设置默认启用。该设置会启用新的查询管线。这是一次内部重构,我们预计不会有任何可见变化。如果你遇到任何问题,请将其重新设为 0。[#8768](https://github.com/ClickHouse/ClickHouse/pull/8768) ([alexey-milovidov](https://github.com/alexey-milovidov)) - - #### 新功能 {#new-feature-11} * 添加 `Avro` 和 `AvroConfluent` 输入和输出格式 [#8571](https://github.com/ClickHouse/ClickHouse/pull/8571) ([Andrew Onyshchuk](https://github.com/oandrew)) [#8957](https://github.com/ClickHouse/ClickHouse/pull/8957) ([Andrew Onyshchuk](https://github.com/oandrew)) [#8717](https://github.com/ClickHouse/ClickHouse/pull/8717) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 在 `cache` 字典中对已过期键进行多线程、非阻塞更新(可选地允许读取旧数据)。 [#8303](https://github.com/ClickHouse/ClickHouse/pull/8303) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) * 新增查询语句 `ALTER ... MATERIALIZE TTL`。它会运行一次 mutation 操作,强制删除已按 TTL 过期的数据,并在所有数据片段中重新计算 TTL 元信息。[#8775](https://github.com/ClickHouse/ClickHouse/pull/8775) ([Anton Popov](https://github.com/CurtizJ)) * 如有需要,可将 HashJoin 切换为基于磁盘的 MergeJoin [#9082](https://github.com/ClickHouse/ClickHouse/pull/9082) ([Artem Zuikov](https://github.com/4ertus2)) -* 为 `ALTER TABLE` 添加了 `MOVE PARTITION` 命令 [#4729](https://github.com/ClickHouse/ClickHouse/issues/4729) [#6168](https://github.com/ClickHouse/ClickHouse/pull/6168) ([Guillaume Tassery](https://github.com/YiuRULE)) -* 支持在运行时从配置文件重新加载存储配置。[#8594](https://github.com/ClickHouse/ClickHouse/pull/8594) ([Vladimir Chebotarev](https://github.com/excitoon)) -* 允许将 `storage_policy` 更改为不低于当前等级的存储策略。[#8107](https://github.com/ClickHouse/ClickHouse/pull/8107) ([Vladimir Chebotarev](https://github.com/excitoon)) -* 为 S3 存储和表函数添加了对 glob 模式/通配符的支持。[#8851](https://github.com/ClickHouse/ClickHouse/pull/8851) ([Vladimir Chebotarev](https://github.com/excitoon)) +* 为 `ALTER TABLE` 新增 `MOVE PARTITION` 命令 [#4729](https://github.com/ClickHouse/ClickHouse/issues/4729) [#6168](https://github.com/ClickHouse/ClickHouse/pull/6168) ([Guillaume Tassery](https://github.com/YiuRULE)) +* 支持在运行时从配置文件动态重新加载存储配置。[#8594](https://github.com/ClickHouse/ClickHouse/pull/8594) ([Vladimir Chebotarev](https://github.com/excitoon)) +* 允许将 `storage_policy` 更改为同等或更高级别的存储策略。[#8107](https://github.com/ClickHouse/ClickHouse/pull/8107) ([Vladimir Chebotarev](https://github.com/excitoon)) +* 为 S3 存储和表函数添加了对 glob/通配符模式的支持。[#8851](https://github.com/ClickHouse/ClickHouse/pull/8851) ([Vladimir Chebotarev](https://github.com/excitoon)) * 为 `FixedString(N)` 数据类型实现了 `bitAnd`、`bitOr`、`bitXor`、`bitNot`。[#9091](https://github.com/ClickHouse/ClickHouse/pull/9091) ([Guillaume Tassery](https://github.com/YiuRULE)) * 新增函数 `bitCount`。修复了 [#8702](https://github.com/ClickHouse/ClickHouse/issues/8702)。[#8708](https://github.com/ClickHouse/ClickHouse/pull/8708)([alexey-milovidov](https://github.com/alexey-milovidov))[#8749](https://github.com/ClickHouse/ClickHouse/pull/8749)([ikopylov](https://github.com/ikopylov)) * 添加 `generateRandom` 表函数,用于根据给定的 schema 生成随机行,从而为任意测试表填充数据。[#8994](https://github.com/ClickHouse/ClickHouse/pull/8994) ([Ilya Yatsishin](https://github.com/qoega)) * `JSONEachRowFormat`:支持对象被包含在顶层数组中的特殊情况。[#8860](https://github.com/ClickHouse/ClickHouse/pull/8860) ([Kruglov Pavel](https://github.com/Avogar)) -* 现在可以创建一个带有 `DEFAULT` 表达式的列,其表达式依赖于另一列,而该列带有 `ALIAS` 默认表达式。[#9489](https://github.com/ClickHouse/ClickHouse/pull/9489) ([alesapin](https://github.com/alesapin)) +* 现在可以创建一个带有 `DEFAULT` 表达式的列,而该表达式可以依赖于另一列,该列的默认表达式为 `ALIAS`。[#9489](https://github.com/ClickHouse/ClickHouse/pull/9489) ([alesapin](https://github.com/alesapin)) * 允许在 `clickhouse-obfuscator` 中指定大于源数据大小的 `--limit`。数据会在使用不同随机种子的情况下重复生成。[#9155](https://github.com/ClickHouse/ClickHouse/pull/9155) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 添加了 `groupArraySample` 函数(类似于 `groupArray`),基于水库抽样算法实现。[#8286](https://github.com/ClickHouse/ClickHouse/pull/8286) ([Amos Bird](https://github.com/amosbird)) +* 新增函数 `groupArraySample`(类似于 `groupArray`),基于水库抽样算法实现。[#8286](https://github.com/ClickHouse/ClickHouse/pull/8286) ([Amos Bird](https://github.com/amosbird)) * 现在,您可以通过系统指标监控 `cache`/`complex_key_cache` 字典中更新队列的大小。 [#9413](https://github.com/ClickHouse/ClickHouse/pull/9413) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) * 当将设置 `output_format_csv_crlf_end_of_line` 设为 1 时,允许在 CSV 输出格式中使用 CRLF 作为行分隔符 [#8934](https://github.com/ClickHouse/ClickHouse/pull/8934) [#8935](https://github.com/ClickHouse/ClickHouse/pull/8935) [#8963](https://github.com/ClickHouse/ClickHouse/pull/8963) ([Mikhail Korotov](https://github.com/millb)) * 实现更多 [H3](https://github.com/uber/h3) API 函数:`h3GetBaseCell`、`h3HexAreaM2`、`h3IndexesAreNeighbors`、`h3ToChildren`、`h3ToString` 和 `stringToH3` [#8938](https://github.com/ClickHouse/ClickHouse/pull/8938) ([Nico Mandery](https://github.com/nmandery)) * 引入了新的设置:`max_parser_depth`,用于控制最大栈大小,以便支持大型复杂查询。修复了 [#6681](https://github.com/ClickHouse/ClickHouse/issues/6681) 和 [#7668](https://github.com/ClickHouse/ClickHouse/issues/7668)。[#8647](https://github.com/ClickHouse/ClickHouse/pull/8647)([Maxim Smirnov](https://github.com/qMBQx8GH)) -* 新增 `force_optimize_skip_unused_shards` 设置项,当无法跳过未使用的分片时抛出异常 [#8805](https://github.com/ClickHouse/ClickHouse/pull/8805) ([Azat Khuzhin](https://github.com/azat)) -* 允许配置多个磁盘/卷,用于存储由 `Distributed` 引擎发送的数据 [#8756](https://github.com/ClickHouse/ClickHouse/pull/8756) ([Azat Khuzhin](https://github.com/azat)) +* 新增名为 `force_optimize_skip_unused_shards` 的设置项,当无法跳过未使用的分片时抛出异常 [#8805](https://github.com/ClickHouse/ClickHouse/pull/8805) ([Azat Khuzhin](https://github.com/azat)) +* 允许在 `Distributed` 引擎中配置多个磁盘/卷,用于存储待发送的数据 [#8756](https://github.com/ClickHouse/ClickHouse/pull/8756) ([Azat Khuzhin](https://github.com/azat)) * 支持存储临时数据的存储策略(``)。[#8750](https://github.com/ClickHouse/ClickHouse/pull/8750) ([Azat Khuzhin](https://github.com/azat)) * 添加了 `X-ClickHouse-Exception-Code` HTTP 头字段,如果在发送数据之前抛出了异常,则会设置该字段。实现了 [#4971](https://github.com/ClickHouse/ClickHouse/issues/4971)。[#8786](https://github.com/ClickHouse/ClickHouse/pull/8786)([Mikhail Korotov](https://github.com/millb)) -* 新增函数 `ifNotFinite`。它仅是语法糖:`ifNotFinite(x, y) = isFinite(x) ? x : y`。 [#8710](https://github.com/ClickHouse/ClickHouse/pull/8710) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 新增函数 `ifNotFinite`。它只是语法糖:`ifNotFinite(x, y) = isFinite(x) ? x : y`。 [#8710](https://github.com/ClickHouse/ClickHouse/pull/8710) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 在 `system.dictionaries` 表中新增 `last_successful_update_time` 列 [#9394](https://github.com/ClickHouse/ClickHouse/pull/9394) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) * 添加 `blockSerializedSize` 函数(在磁盘上的未压缩大小) [#8952](https://github.com/ClickHouse/ClickHouse/pull/8952) ([Azat Khuzhin](https://github.com/azat)) * 新增函数 `moduloOrZero` [#9358](https://github.com/ClickHouse/ClickHouse/pull/9358) ([hcz](https://github.com/hczhcz)) * 添加了系统表 `system.zeros` 和 `system.zeros_mt`,以及表函数 `zeros()` 和 `zeros_mt()`。这些表(和表函数)仅包含一个名为 `zero`、类型为 `UInt8` 的列,该列的值全部为零。它用于测试,作为生成大量行的最快方法。这修复了 [#6604](https://github.com/ClickHouse/ClickHouse/issues/6604) [#9593](https://github.com/ClickHouse/ClickHouse/pull/9593) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) #### 实验性功能 {#experimental-feature-7} + * 为 `MergeTree` 系列表新增紧凑格式的 part,在该格式中所有列存储在同一个文件中。这有助于提升小批量且高频插入操作的性能。旧格式(每列一个文件)现在称为宽格式。数据存储格式由设置项 `min_bytes_for_wide_part` 和 `min_rows_for_wide_part` 控制。[#8290](https://github.com/ClickHouse/ClickHouse/pull/8290) ([Anton Popov](https://github.com/CurtizJ)) * 为 `Log`、`TinyLog` 和 `StripeLog` 表增加对 S3 存储的支持。[#8862](https://github.com/ClickHouse/ClickHouse/pull/8862) ([Pavel Kovalenko](https://github.com/Jokser)) @@ -2785,130 +2779,128 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor * 修复了在 `File` 表或 `file` 表函数中,当有过多文件匹配 glob 模式时可能出现的 “Too many open files” 错误。现在文件会被惰性按需打开。此修复对应 [#8857](https://github.com/ClickHouse/ClickHouse/issues/8857) [#8861](https://github.com/ClickHouse/ClickHouse/pull/8861) ([alexey-milovidov](https://github.com/alexey-milovidov)) * DROP TEMPORARY TABLE 现在只会删除临时表。 [#8907](https://github.com/ClickHouse/ClickHouse/pull/8907) ([Vitaly Baranov](https://github.com/vitlibar)) * 在关闭服务器或对表执行 DETACH/ATTACH 操作时删除过期分区。[#8602](https://github.com/ClickHouse/ClickHouse/pull/8602) ([Guillaume Tassery](https://github.com/YiuRULE)) -* 调整默认磁盘从 `data` 子目录计算可用空间的方式。修复了在将 `data` 目录挂载到单独设备(较为罕见的情况)时,可用空间计算不正确的问题。此修复对应 [#7441](https://github.com/ClickHouse/ClickHouse/issues/7441) [#9257](https://github.com/ClickHouse/ClickHouse/pull/9257) ([Mikhail Korotov](https://github.com/millb)) +* 调整默认磁盘从 `data` 子目录计算可用空间的方式。修复了在将 `data` 目录挂载到单独的设备(较为罕见的情况)时,可用空间计算不正确的问题。此修复对应 [#7441](https://github.com/ClickHouse/ClickHouse/issues/7441) [#9257](https://github.com/ClickHouse/ClickHouse/pull/9257) ([Mikhail Korotov](https://github.com/millb)) * 允许在逗号(CROSS)JOIN 中内部使用 `IN ()` 子句。 [#9251](https://github.com/ClickHouse/ClickHouse/pull/9251) ([Artem Zuikov](https://github.com/4ertus2)) -* 当 WHERE 子句中包含 [NOT] LIKE 运算符时,允许将 CROSS 重写为 INNER JOIN。 [#9229](https://github.com/ClickHouse/ClickHouse/pull/9229) ([Artem Zuikov](https://github.com/4ertus2)) +* 当 WHERE 子句中存在 [NOT] LIKE 运算符时,允许将 CROSS JOIN 重写为 INNER JOIN。 [#9229](https://github.com/ClickHouse/ClickHouse/pull/9229) ([Artem Zuikov](https://github.com/4ertus2)) * 修复在启用设置 `distributed_aggregation_memory_efficient` 时,`GROUP BY` 查询可能产生错误结果的问题。修复 [#9134](https://github.com/ClickHouse/ClickHouse/issues/9134)。[#9289](https://github.com/ClickHouse/ClickHouse/pull/9289)([Nikolai Kochetov](https://github.com/KochetovNicolai)) * 在缓存字典的指标中,已命中的键被统计为未命中。 [#9411](https://github.com/ClickHouse/ClickHouse/pull/9411) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) * 修复在 [#8598](https://github.com/ClickHouse/ClickHouse/issues/8598) 中引入的导致复制协议不兼容的问题。[#9412](https://github.com/ClickHouse/ClickHouse/pull/9412) ([alesapin](https://github.com/alesapin)) * 修复了 `ReplicatedMergeTree` 表在启动时 `queue_task_handle` 上的竞态条件。 [#9552](https://github.com/ClickHouse/ClickHouse/pull/9552) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 在 `SHOW TABLES NOT LIKE` 查询中,关键字 `NOT` 无法正常工作 [#8727](https://github.com/ClickHouse/ClickHouse/issues/8727) [#8940](https://github.com/ClickHouse/ClickHouse/pull/8940) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 为函数 `h3EdgeLengthM` 添加了范围检查。如果没有该检查,可能会发生缓冲区溢出。[#8945](https://github.com/ClickHouse/ClickHouse/pull/8945) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 修复了在对多个参数(超过 10 个)进行批量三元逻辑运算时的一个错误。 [#8718](https://github.com/ClickHouse/ClickHouse/pull/8718) ([Alexander Kazakov](https://github.com/Akazz)) +* 修复了在对多个参数(超过 10 个)批量计算三元逻辑运算符时的一个错误。 [#8718](https://github.com/ClickHouse/ClickHouse/pull/8718) ([Alexander Kazakov](https://github.com/Akazz)) * 修复 PREWHERE 优化中的一个错误,该错误可能导致段错误或抛出 `Inconsistent number of columns got from MergeTreeRangeReader` 异常。[#9024](https://github.com/ClickHouse/ClickHouse/pull/9024) ([Anton Popov](https://github.com/CurtizJ)) -* 修复在启用查询分析器时,在安全连接中随机出现的意外 `Timeout exceeded while reading from socket` 异常(在实际超时之前就被抛出)。同时新增 `connect_timeout_with_failover_secure_ms` 设置项(默认 100ms),其作用类似于 `connect_timeout_with_failover_ms`,但用于安全连接(因为 SSL 握手比普通 TCP 连接更慢) [#9026](https://github.com/ClickHouse/ClickHouse/pull/9026) ([tavplubix](https://github.com/tavplubix)) +* 修复在启用查询分析器的安全连接中随机出现的意外 `Timeout exceeded while reading from socket` 异常(会在实际超时之前被抛出)。同时新增 `connect_timeout_with_failover_secure_ms` 设置项(默认 100ms),其作用类似于 `connect_timeout_with_failover_ms`,但用于安全连接(因为 SSL 握手比普通 TCP 连接更慢) [#9026](https://github.com/ClickHouse/ClickHouse/pull/9026) ([tavplubix](https://github.com/tavplubix)) * 修复变更(mutation)完成状态处理中的 bug,解决变更可能卡在 `parts_to_do=0` 且 `is_done=0` 状态的问题。 [#9022](https://github.com/ClickHouse/ClickHouse/pull/9022) ([alesapin](https://github.com/alesapin)) -* 使用新的 ANY JOIN 逻辑,通过 `partial_merge_join` 设置实现。现在在 `partial_merge_join=1` 时,可以执行 `ANY|ALL|SEMI LEFT` 和 `ALL INNER` join。[#8932](https://github.com/ClickHouse/ClickHouse/pull/8932) ([Artem Zuikov](https://github.com/4ertus2)) -* 现在,分片会将从发起方获取的设置自动收紧到该分片自身的约束范围内,而不是抛出异常。此修复允许在约束条件不同的情况下向分片发送查询。 [#9447](https://github.com/ClickHouse/ClickHouse/pull/9447) ([Vitaly Baranov](https://github.com/vitlibar)) +* 使用新的 ANY JOIN 逻辑,通过 `partial_merge_join` 设置项实现。现在当 `partial_merge_join=1` 时,可以执行 `ANY|ALL|SEMI LEFT` 和 `ALL INNER` JOIN。[#8932](https://github.com/ClickHouse/ClickHouse/pull/8932) ([Artem Zuikov](https://github.com/4ertus2)) +* 现在,分片会将从发起端获取的设置限制在该分片自身的约束范围内,而不是抛出异常。此修复允许向具有不同约束的分片发送查询。 [#9447](https://github.com/ClickHouse/ClickHouse/pull/9447) ([Vitaly Baranov](https://github.com/vitlibar)) * 修复了 `MergeTreeReadPool` 中的内存管理问题。 [#8791](https://github.com/ClickHouse/ClickHouse/pull/8791) ([Vladimir Chebotarev](https://github.com/excitoon)) -* 修复当以字符串 `e` 作为参数调用时的 `toDecimal*OrNull()` 系列函数问题。解决了 [#8312](https://github.com/ClickHouse/ClickHouse/issues/8312) [#8764](https://github.com/ClickHouse/ClickHouse/pull/8764)([Artem Zuikov](https://github.com/4ertus2)) +* 修复在以字符串 `e` 作为参数调用时 `toDecimal*OrNull()` 系列函数的行为问题。解决了 [#8312](https://github.com/ClickHouse/ClickHouse/issues/8312) [#8764](https://github.com/ClickHouse/ClickHouse/pull/8764)([Artem Zuikov](https://github.com/4ertus2)) * 确保 `FORMAT Null` 不向客户端发送任何数据。 [#8767](https://github.com/ClickHouse/ClickHouse/pull/8767) ([Alexander Kuzmenkov](https://github.com/akuzm)) * 修复 `LiveViewBlockInputStream` 中时间戳不会更新的问题。`LIVE VIEW` 是一个实验性特性。[#8644](https://github.com/ClickHouse/ClickHouse/pull/8644) ([vxider](https://github.com/Vxider)) [#8625](https://github.com/ClickHouse/ClickHouse/pull/8625) ([vxider](https://github.com/Vxider)) -* 修复了 `ALTER MODIFY TTL` 的错误行为,此前无法删除旧的 TTL 表达式。 [#8422](https://github.com/ClickHouse/ClickHouse/pull/8422) ([Vladimir Chebotarev](https://github.com/excitoon)) -* 修复了 MergeTreeIndexSet 中 UBSan 报告的问题。此修复解决了 [#9250](https://github.com/ClickHouse/ClickHouse/issues/9250) 和 [#9365](https://github.com/ClickHouse/ClickHouse/pull/9365)([alexey-milovidov](https://github.com/alexey-milovidov)) +* 修复了 `ALTER MODIFY TTL` 的错误行为,该错误此前不允许删除旧的 TTL 表达式。 [#8422](https://github.com/ClickHouse/ClickHouse/pull/8422) ([Vladimir Chebotarev](https://github.com/excitoon)) +* 修复了 MergeTreeIndexSet 中 UBSan 报告的错误。此修复解决了 [#9250](https://github.com/ClickHouse/ClickHouse/issues/9250) 和 [#9365](https://github.com/ClickHouse/ClickHouse/pull/9365)([alexey-milovidov](https://github.com/alexey-milovidov)) * 修复了当 haystack 为零字节时 `match` 和 `extract` 函数的行为。当 haystack 为常量时,其行为不正确。本次修复了 [#9160](https://github.com/ClickHouse/ClickHouse/issues/9160) [#9163](https://github.com/ClickHouse/ClickHouse/pull/9163)([alexey-milovidov](https://github.com/alexey-milovidov))[#9345](https://github.com/ClickHouse/ClickHouse/pull/9345)([alexey-milovidov](https://github.com/alexey-milovidov)) * 避免在 Apache Avro 第三方库中从析构函数抛出异常。 [#9066](https://github.com/ClickHouse/ClickHouse/pull/9066) ([Andrew Onyshchuk](https://github.com/oandrew)) -* 不要只提交从 `Kafka` 轮询到的批次中的一部分,否则可能导致数据出现缺失。[#8876](https://github.com/ClickHouse/ClickHouse/pull/8876) ([filimonov](https://github.com/filimonov)) -* 修复具有可为空值返回类型的 `joinGet`。 [#8919](https://github.com/ClickHouse/ClickHouse/issues/8919) [#9014](https://github.com/ClickHouse/ClickHouse/pull/9014) ([Amos Bird](https://github.com/amosbird)) -* 修复使用 `T64` 编解码器压缩时的数据不兼容问题。 [#9016](https://github.com/ClickHouse/ClickHouse/pull/9016) ([Artem Zuikov](https://github.com/4ertus2)) 修复 `T64` 压缩编解码器中的数据类型 ID,从而避免在受影响版本中产生错误的(解)压缩结果。 [#9033](https://github.com/ClickHouse/ClickHouse/pull/9033) ([Artem Zuikov](https://github.com/4ertus2)) -* 添加设置 `enable_early_constant_folding`,并在某些会导致错误的情况下禁用该设置。 [#9010](https://github.com/ClickHouse/ClickHouse/pull/9010) ([Artem Zuikov](https://github.com/4ertus2)) -* 修复涉及 VIEW 的下推谓词优化器并启用相关测试 [#9011](https://github.com/ClickHouse/ClickHouse/pull/9011) ([Winter Zhang](https://github.com/zhang2014)) +* 不要仅提交从 `Kafka` 轮询到的批次的一部分,否则可能导致数据出现空洞。[#8876](https://github.com/ClickHouse/ClickHouse/pull/8876) ([filimonov](https://github.com/filimonov)) +* 修复 `joinGet` 在返回 Nullable 类型时的问题。 [#8919](https://github.com/ClickHouse/ClickHouse/issues/8919) [#9014](https://github.com/ClickHouse/ClickHouse/pull/9014) ([Amos Bird](https://github.com/amosbird)) +* 修复使用 `T64` 编解码器进行压缩时的数据不兼容问题。 [#9016](https://github.com/ClickHouse/ClickHouse/pull/9016) ([Artem Zuikov](https://github.com/4ertus2)) 修复 `T64` 压缩编解码器中的数据类型 ID,避免在受影响版本中出现错误的压缩/解压缩结果。 [#9033](https://github.com/ClickHouse/ClickHouse/pull/9033) ([Artem Zuikov](https://github.com/4ertus2)) +* 添加设置 `enable_early_constant_folding`,并在某些会导致错误的情况下将其禁用。 [#9010](https://github.com/ClickHouse/ClickHouse/pull/9010) ([Artem Zuikov](https://github.com/4ertus2)) +* 修复涉及 VIEW 的谓词下推优化器问题,并启用相关测试 [#9011](https://github.com/ClickHouse/ClickHouse/pull/9011) ([Winter Zhang](https://github.com/zhang2014)) * 修复在从 `File` 存储读取时可能导致 `Merge` 表发生的段错误 [#9387](https://github.com/ClickHouse/ClickHouse/pull/9387) ([tavplubix](https://github.com/tavplubix)) -* 在 `ATTACH PARTITION FROM`、`REPLACE PARTITION`、`MOVE TO TABLE` 中新增了对存储策略的检查。否则在重启后可能导致部分数据不可访问,并阻止 ClickHouse 启动。[#9383](https://github.com/ClickHouse/ClickHouse/pull/9383) ([Vladimir Chebotarev](https://github.com/excitoon)) +* 在 `ATTACH PARTITION FROM`、`REPLACE PARTITION`、`MOVE TO TABLE` 中新增了对存储策略的检查。否则在重启后可能导致某个数据分片(part)无法访问,并阻止 ClickHouse 启动。[#9383](https://github.com/ClickHouse/ClickHouse/pull/9383) ([Vladimir Chebotarev](https://github.com/excitoon)) * 修复在表设置了 TTL 时执行 ALTER 的问题。 [#8800](https://github.com/ClickHouse/ClickHouse/pull/8800) ([Anton Popov](https://github.com/CurtizJ)) -* 修复在执行 `SYSTEM RELOAD ALL DICTIONARIES` 时,当某个字典正在被修改/添加/删除时可能出现的竞争条件。 [#8801](https://github.com/ClickHouse/ClickHouse/pull/8801) ([Vitaly Baranov](https://github.com/vitlibar)) -* 在之前的版本中,`Memory` 数据库引擎使用空的数据路径,因此表会被创建在 `path` 目录中(例如 `/var/lib/clickhouse/`),而不是在数据库的数据目录中(例如 `/var/lib/clickhouse/db_name`)。 [#8753](https://github.com/ClickHouse/ClickHouse/pull/8753) ([tavplubix](https://github.com/tavplubix)) -* 修复了关于缺少默认磁盘或策略的错误的日志消息。[#9530](https://github.com/ClickHouse/ClickHouse/pull/9530) ([Vladimir Chebotarev](https://github.com/excitoon)) -* 修复数组类型 bloom_filter 索引中 not(has()) 的问题。[#9407](https://github.com/ClickHouse/ClickHouse/pull/9407) ([achimbab](https://github.com/achimbab)) -* 允许 `Log` 引擎表的首列(或前几列)为别名 [#9231](https://github.com/ClickHouse/ClickHouse/pull/9231) ([Ivan](https://github.com/abyss7)) -* 修正单线程从 `MergeTree` 表读取时的范围顺序问题。该问题可能导致 `MergeTreeRangeReader` 抛出异常或产生错误的查询结果。[#9050](https://github.com/ClickHouse/ClickHouse/pull/9050) ([Anton Popov](https://github.com/CurtizJ)) +* 修复在执行 `SYSTEM RELOAD ALL DICTIONARIES` 时,当某个字典正在被修改/添加/删除时可能出现的竞态条件。 [#8801](https://github.com/ClickHouse/ClickHouse/pull/8801) ([Vitaly Baranov](https://github.com/vitlibar)) +* 在之前的版本中,`Memory` 数据库引擎的数据路径为空,因此表会被创建在 `path` 目录中(例如 `/var/lib/clickhouse/`),而不是在数据库的数据目录中(例如 `/var/lib/clickhouse/db_name`)。 [#8753](https://github.com/ClickHouse/ClickHouse/pull/8753) ([tavplubix](https://github.com/tavplubix)) +* 修复了关于缺少默认磁盘或策略的错误日志消息。[#9530](https://github.com/ClickHouse/ClickHouse/pull/9530) ([Vladimir Chebotarev](https://github.com/excitoon)) +* 修复数组类型的 bloom_filter 索引中 `not(has())` 的问题。[#9407](https://github.com/ClickHouse/ClickHouse/pull/9407) ([achimbab](https://github.com/achimbab)) +* 允许 `Log` 引擎表的首列(或前几列)作为别名列 [#9231](https://github.com/ClickHouse/ClickHouse/pull/9231) ([Ivan](https://github.com/abyss7)) +* 修复在单线程从 `MergeTree` 表读取时的范围顺序错误。该问题可能导致 `MergeTreeRangeReader` 抛出异常或产生错误的查询结果。[#9050](https://github.com/ClickHouse/ClickHouse/pull/9050) ([Anton Popov](https://github.com/CurtizJ)) * 将 `reinterpretAsFixedString` 的返回类型从 `String` 改为 `FixedString`。[#9052](https://github.com/ClickHouse/ClickHouse/pull/9052) ([Andrew Onyshchuk](https://github.com/oandrew)) -* 避免在极少数情况下用户收到错误的提示信息(返回 `Success` 而不是详细的错误描述)。 [#9457](https://github.com/ClickHouse/ClickHouse/pull/9457) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 在使用 `Template` 格式且行模板为空时避免发生崩溃。 [#8785](https://github.com/ClickHouse/ClickHouse/pull/8785) ([Alexander Kuzmenkov](https://github.com/akuzm)) -* 系统表元数据文件可能会在错误的位置创建 [#8653](https://github.com/ClickHouse/ClickHouse/pull/8653)([tavplubix](https://github.com/tavplubix)),修复了 [#8581](https://github.com/ClickHouse/ClickHouse/issues/8581)。 -* 修复 cache dictionary 中 exception_ptr 的数据竞争问题 [#8303](https://github.com/ClickHouse/ClickHouse/issues/8303)。[#9379](https://github.com/ClickHouse/ClickHouse/pull/9379)([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) +* 避免在极少数情况下向用户返回不正确的错误信息(返回 `Success` 而不是详细的错误描述)。 [#9457](https://github.com/ClickHouse/ClickHouse/pull/9457) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 在使用 `Template` 格式且行模板为空时避免发生崩溃。[#8785](https://github.com/ClickHouse/ClickHouse/pull/8785) ([Alexander Kuzmenkov](https://github.com/akuzm)) +* 系统表的元数据文件可能会在错误的位置被创建 [#8653](https://github.com/ClickHouse/ClickHouse/pull/8653) ([tavplubix](https://github.com/tavplubix)) 修复了 [#8581](https://github.com/ClickHouse/ClickHouse/issues/8581)。 +* 修复缓存字典中 exception_ptr 上的数据竞争问题 [#8303](https://github.com/ClickHouse/ClickHouse/issues/8303)。[#9379](https://github.com/ClickHouse/ClickHouse/pull/9379)([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) * 对于查询 `ATTACH TABLE IF NOT EXISTS`,不再抛出异常。此前,即使包含 `IF NOT EXISTS` 子句,如果表已存在也会抛出异常。[#8967](https://github.com/ClickHouse/ClickHouse/pull/8967) ([Anton Popov](https://github.com/CurtizJ)) * 修复了异常消息中缺失的右括号。 [#8811](https://github.com/ClickHouse/ClickHouse/pull/8811) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 在交互模式下启动 clickhouse-client 时,避免显示 `Possible deadlock avoided` 消息。 [#9455](https://github.com/ClickHouse/ClickHouse/pull/9455) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 修复了 base64 编码值末尾填充部分可能格式错误的问题,并更新了 base64 库。此更改修复了 [#9491](https://github.com/ClickHouse/ClickHouse/issues/9491),并关闭了 [#9492](https://github.com/ClickHouse/ClickHouse/issues/9492) 和 [#9500](https://github.com/ClickHouse/ClickHouse/pull/9500)([alexey-milovidov](https://github.com/alexey-milovidov)) -* 防止在极少数情况下,在读取后缀之后但在提交之前发生异常时导致 `Kafka` 中的数据丢失。修复了 [#9378](https://github.com/ClickHouse/ClickHouse/issues/9378) [#9507](https://github.com/ClickHouse/ClickHouse/pull/9507)([filimonov](https://github.com/filimonov)) -* 修复了 `DROP TABLE IF EXISTS` 语句中的异常 [#8663](https://github.com/ClickHouse/ClickHouse/pull/8663)([Nikita Vasilev](https://github.com/nikvas0)) +* 修复了 base64 编码值末尾填充可能格式不正确的问题,并更新了 base64 库。此修复解决了 [#9491](https://github.com/ClickHouse/ClickHouse/issues/9491),并关闭了 [#9492](https://github.com/ClickHouse/ClickHouse/issues/9492) 和 [#9500](https://github.com/ClickHouse/ClickHouse/pull/9500)([alexey-milovidov](https://github.com/alexey-milovidov)) +* 防止在极少数情况下,当在读取后缀之后但在提交之前发生异常时导致 `Kafka` 中的数据丢失。修复 [#9378](https://github.com/ClickHouse/ClickHouse/issues/9378) [#9507](https://github.com/ClickHouse/ClickHouse/pull/9507)([filimonov](https://github.com/filimonov)) +* 修复了在执行 `DROP TABLE IF EXISTS` 时抛出异常的问题 [#8663](https://github.com/ClickHouse/ClickHouse/pull/8663) ([Nikita Vasilev](https://github.com/nikvas0)) * 修复当用户尝试对旧格式的 `MergeTree` 表引擎系列执行 `ALTER MODIFY SETTING` 时发生的崩溃问题。 [#9435](https://github.com/ClickHouse/ClickHouse/pull/9435) ([alesapin](https://github.com/alesapin)) -* 在与 JSON 相关的函数中支持无法用 Int64 表示的 UInt64 数值。将 SIMDJSON 更新到 master 分支。该更改修复了 [#9209](https://github.com/ClickHouse/ClickHouse/issues/9209) [#9344](https://github.com/ClickHouse/ClickHouse/pull/9344)([alexey-milovidov](https://github.com/alexey-milovidov)) +* 在与 JSON 相关的函数中支持处理无法用 Int64 表示的 UInt64 数值。将 SIMDJSON 更新到 master 分支。该更改修复了 [#9209](https://github.com/ClickHouse/ClickHouse/issues/9209) [#9344](https://github.com/ClickHouse/ClickHouse/pull/9344)([alexey-milovidov](https://github.com/alexey-milovidov)) * 修复在使用非严格单调函数索引时执行反向谓词的错误。 [#9223](https://github.com/ClickHouse/ClickHouse/pull/9223) ([Alexander Kazakov](https://github.com/Akazz)) -* 不要在 `GROUP BY` 中对 `IN` 常量进行折叠 [#8868](https://github.com/ClickHouse/ClickHouse/pull/8868) ([Amos Bird](https://github.com/amosbird)) -* 修复了 `ALTER DELETE` 变更操作导致索引损坏的错误。此修复解决了 [#9019](https://github.com/ClickHouse/ClickHouse/issues/9019) 和 [#8982](https://github.com/ClickHouse/ClickHouse/issues/8982)。另外,修复了 `ReplicatedMergeTree` 中 `ALTER` 查询里极其罕见的竞争条件。[#9048](https://github.com/ClickHouse/ClickHouse/pull/9048) ([alesapin](https://github.com/alesapin)) +* 不要尝试在 `GROUP BY` 中折叠 `IN` 常量 [#8868](https://github.com/ClickHouse/ClickHouse/pull/8868) ([Amos Bird](https://github.com/amosbird)) +* 修复 `ALTER DELETE` mutation 中导致索引损坏的 bug。此修复解决了 [#9019](https://github.com/ClickHouse/ClickHouse/issues/9019) 和 [#8982](https://github.com/ClickHouse/ClickHouse/issues/8982)。另外,还修复了 `ReplicatedMergeTree` 中 `ALTER` 查询里极其罕见的竞争条件问题。[#9048](https://github.com/ClickHouse/ClickHouse/pull/9048) ([alesapin](https://github.com/alesapin)) * 当启用 `compile_expressions` 设置时,在使用 `Nullable` 类型时,可能会在 `LLVMExecutableFunction` 中出现 `unexpected column` 错误 [#8910](https://github.com/ClickHouse/ClickHouse/pull/8910)([Guillaume Tassery](https://github.com/YiuRULE)) -* 针对 `Kafka` 引擎的多项修复:1)修复在 consumer group rebalance 期间出现的重复数据问题。2)修复在使用一次 poll 从多个分区拉取数据并只做部分提交时出现的罕见“空洞”问题(现在我们总是处理 / 提交整块拉取到的消息)。3)修复按块大小进行 flush 的逻辑(在此之前,只有按超时时间进行 flush 能够正常工作)。4)改进订阅流程(带有 assignment 反馈)。5)加快测试执行速度(在默认轮询间隔和超时时间下)。由于之前并未按块大小进行 flush(而文档要求应当如此),该 PR 在默认设置下可能会导致一定的性能下降(因为 flush 更频繁且块更小,效率较低)。如果在此变更后遇到性能问题,请将表中的 `kafka_max_block_size` 调大(例如 `CREATE TABLE ...Engine=Kafka ... SETTINGS ... kafka_max_block_size=524288`)。修复 [#7259](https://github.com/ClickHouse/ClickHouse/issues/7259) [#8917](https://github.com/ClickHouse/ClickHouse/pull/8917)([filimonov](https://github.com/filimonov)) +* 针对 `Kafka` 引擎的多项修复:1)修复在 consumer group rebalance 期间出现的重复数据问题。2)修复在一次 poll 中从多个分区拉取数据且只部分提交时出现的罕见数据“空洞”问题(现在我们总是整体处理并提交本次轮询得到的整块消息)。3)修复按块大小进行 flush 的逻辑(此前只有按超时时间进行 flush 能够正常工作)。4)改进订阅流程(带有 assignment 反馈)。5)在使用默认轮询间隔和超时时间的情况下,加快测试执行速度。由于之前并未按块大小进行 flush(而文档要求应当如此),该 PR 在默认设置下可能会导致一定的性能下降(因为 flush 更频繁且块更小,效率较低)。如果在此变更后遇到性能问题,请将表中的 `kafka_max_block_size` 调整为更大的值(例如 `CREATE TABLE ...Engine=Kafka ... SETTINGS ... kafka_max_block_size=524288`)。修复 [#7259](https://github.com/ClickHouse/ClickHouse/issues/7259) [#8917](https://github.com/ClickHouse/ClickHouse/pull/8917)([filimonov](https://github.com/filimonov)) * 修复了在进行 PREWHERE 优化后某些查询中出现的 `Parameter out of bound` 异常。[#8914](https://github.com/ClickHouse/ClickHouse/pull/8914) ([Baudouin Giard](https://github.com/bgiard)) -* 修复了函数 `arrayZip` 在参数常量性不一致(同时包含常量与非常量)时的处理问题。 [#8705](https://github.com/ClickHouse/ClickHouse/pull/8705) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 修复了函数 `arrayZip` 在参数同时包含常量和非常量时的处理问题。 [#8705](https://github.com/ClickHouse/ClickHouse/pull/8705) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 在执行 `CREATE` 查询时,对存储引擎参数中的常量表达式进行折叠。将空数据库名替换为当前数据库。修复 [#6508](https://github.com/ClickHouse/ClickHouse/issues/6508)、[#3492](https://github.com/ClickHouse/ClickHouse/issues/3492)、[#9262](https://github.com/ClickHouse/ClickHouse/pull/9262)([tavplubix](https://github.com/tavplubix)) * 现在不再允许创建或添加具有简单循环别名的列,例如 `a DEFAULT b, b DEFAULT a`。 [#9603](https://github.com/ClickHouse/ClickHouse/pull/9603) ([alesapin](https://github.com/alesapin)) -* 修复了双重移动操作可能破坏原始数据分片(part)的错误。如果您使用 `ALTER TABLE MOVE`,则该修复与您相关 [#8680](https://github.com/ClickHouse/ClickHouse/pull/8680) ([Vladimir Chebotarev](https://github.com/excitoon)) +* 修复了在执行双重移动操作时可能破坏原始数据分片(part)的错误。该问题会影响使用 `ALTER TABLE MOVE` 的场景 [#8680](https://github.com/ClickHouse/ClickHouse/pull/8680) ([Vladimir Chebotarev](https://github.com/excitoon)) * 允许在不使用反引号的情况下也能正确解析 `interval` 标识符。修复了即使将 `interval` 标识符用反引号或双引号括起来,查询仍然无法执行的问题。修复了 [#9124](https://github.com/ClickHouse/ClickHouse/issues/9124)。[#9142](https://github.com/ClickHouse/ClickHouse/pull/9142)([alexey-milovidov](https://github.com/alexey-milovidov)) -* 修复了模糊测试以及 `bitTestAll`/`bitTestAny` 函数的不正确行为。[#9143](https://github.com/ClickHouse/ClickHouse/pull/9143) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 修复在存在大量与第 n 行相等的行时,`LIMIT n WITH TIES` 可能导致崩溃或返回错误行数的问题。 [#9464](https://github.com/ClickHouse/ClickHouse/pull/9464) ([tavplubix](https://github.com/tavplubix)) -* 修复对在启用 `insert_quorum` 时写入的数据分片执行 mutation 时的问题。 [#9463](https://github.com/ClickHouse/ClickHouse/pull/9463) ([alesapin](https://github.com/alesapin)) -* 修复在销毁 `Poco::HTTPServer` 期间出现的数据竞争。当服务器启动后立即关闭时可能会发生该问题。 [#9468](https://github.com/ClickHouse/ClickHouse/pull/9468) ([Anton Popov](https://github.com/CurtizJ)) +* 修复了 fuzz 测试以及 `bitTestAll`/`bitTestAny` 函数的不正确行为。[#9143](https://github.com/ClickHouse/ClickHouse/pull/9143) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 修复在存在大量与第 n 行相同的行时,`LIMIT n WITH TIES` 可能导致崩溃或返回错误行数的问题。 [#9464](https://github.com/ClickHouse/ClickHouse/pull/9464) ([tavplubix](https://github.com/tavplubix)) +* 修复在启用 `insert_quorum` 时写入的数据分片上执行 mutation 时的问题。 [#9463](https://github.com/ClickHouse/ClickHouse/pull/9463) ([alesapin](https://github.com/alesapin)) +* 修复在销毁 `Poco::HTTPServer` 期间出现的数据竞争。当服务器启动后立即关闭时可能会发生该问题。[#9468](https://github.com/ClickHouse/ClickHouse/pull/9468) ([Anton Popov](https://github.com/CurtizJ)) * 修复了在运行 `SHOW CREATE TABLE a_table_that_does_not_exist` 时会显示误导性错误信息的问题。 [#8899](https://github.com/ClickHouse/ClickHouse/pull/8899) ([achulkov2](https://github.com/achulkov2)) * 修复了在 `SELECT` 子句中包含常量且同时存在 `ORDER BY` 和 `LIMIT` 子句时,极少数情况下会出现的 `Parameters are out of bound` 异常。 [#8892](https://github.com/ClickHouse/ClickHouse/pull/8892) ([Guillaume Tassery](https://github.com/YiuRULE)) -* 修复 mutation 完成流程,已完成的 mutation 可能仍然显示状态 `is_done=0`。 [#9217](https://github.com/ClickHouse/ClickHouse/pull/9217) ([alesapin](https://github.com/alesapin)) -* 禁止对 MergeTree 表使用旧语法执行 `ALTER ADD INDEX`,因为该语法无效。[#8822](https://github.com/ClickHouse/ClickHouse/pull/8822) ([Mikhail Korotov](https://github.com/millb)) -* 在服务器启动时,请不要访问 `LIVE VIEW` 所依赖的表,以便服务器能够正常启动。在分离 `LIVE VIEW` 时,请同时移除其依赖关系。`LIVE VIEW` 是一个实验性功能。[#8824](https://github.com/ClickHouse/ClickHouse/pull/8824) ([tavplubix](https://github.com/tavplubix)) +* 修复 mutation 完成流程,已完成的 mutation 可能仍然被标记为状态 `is_done=0`。 [#9217](https://github.com/ClickHouse/ClickHouse/pull/9217) ([alesapin](https://github.com/alesapin)) +* 禁止对 MergeTree 表使用旧语法执行 `ALTER ADD INDEX`,因为该语句不会生效。[#8822](https://github.com/ClickHouse/ClickHouse/pull/8822) ([Mikhail Korotov](https://github.com/millb)) +* 在服务器启动过程中,请不要访问 `LIVE VIEW` 所依赖的表,这样服务器才能成功启动。在分离 `LIVE VIEW` 时,请同时移除其依赖关系。`LIVE VIEW` 是一个实验性特性。[#8824](https://github.com/ClickHouse/ClickHouse/pull/8824) ([tavplubix](https://github.com/tavplubix)) * 修复在执行 `PREWHERE` 时 `MergeTreeRangeReader` 中可能发生的段错误。 [#9106](https://github.com/ClickHouse/ClickHouse/pull/9106) ([Anton Popov](https://github.com/CurtizJ)) -* 修复在使用列 TTL 时可能出现的校验和不匹配问题。[#9451](https://github.com/ClickHouse/ClickHouse/pull/9451) ([Anton Popov](https://github.com/CurtizJ)) -* 修复了一个错误:当只有一个卷时,TTL 规则不会在后台移动数据分片。 [#8672](https://github.com/ClickHouse/ClickHouse/pull/8672) ([Vladimir Chebotarev](https://github.com/excitoon)) -* 修复了问题 `Method createColumn() is not implemented for data type Set`。此修复解决了 [#7799](https://github.com/ClickHouse/ClickHouse/issues/7799)。[#8674](https://github.com/ClickHouse/ClickHouse/pull/8674) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 修复在使用列 TTL 时可能出现的校验和不一致问题。[#9451](https://github.com/ClickHouse/ClickHouse/pull/9451) ([Anton Popov](https://github.com/CurtizJ)) +* 修复了一个错误:导致在只有一个卷时,生存时间 (TTL) 规则无法在后台移动分区片段的问题。[#8672](https://github.com/ClickHouse/ClickHouse/pull/8672) ([Vladimir Chebotarev](https://github.com/excitoon)) +* 修复了问题 `Method createColumn() is not implemented for data type Set`。该修复解决了 [#7799](https://github.com/ClickHouse/ClickHouse/issues/7799)。[#8674](https://github.com/ClickHouse/ClickHouse/pull/8674) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 现在我们会更频繁地尝试完成 mutations。[#9427](https://github.com/ClickHouse/ClickHouse/pull/9427) ([alesapin](https://github.com/alesapin)) -* 通过减去常量 1 修复 `intDiv` [#9351](https://github.com/ClickHouse/ClickHouse/pull/9351) ([hcz](https://github.com/hczhcz)) +* 通过减去常量 1 修复 `intDiv` 的问题 [#9351](https://github.com/ClickHouse/ClickHouse/pull/9351) ([hcz](https://github.com/hczhcz)) * 修复 `BlockIO` 中可能存在的竞争条件。 [#9356](https://github.com/ClickHouse/ClickHouse/pull/9356) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * 修复在尝试使用或删除以错误参数创建的 `Kafka` 表时导致服务器终止的问题。 [#9513](https://github.com/ClickHouse/ClickHouse/pull/9513) ([filimonov](https://github.com/filimonov)) -* 添加了针对操作系统对 `timer_create` 函数返回错误结果的变通方案。 [#8837](https://github.com/ClickHouse/ClickHouse/pull/8837) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 添加了针对操作系统在 `timer_create` 函数上返回错误结果时的规避方案。 [#8837](https://github.com/ClickHouse/ClickHouse/pull/8837) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 修复了 `min_marks_for_seek` 参数的使用错误。修复了在 Distributed 表中没有分片键且尝试跳过未使用分片时的错误消息。[#8908](https://github.com/ClickHouse/ClickHouse/pull/8908) ([Azat Khuzhin](https://github.com/azat)) - - #### 改进 {#improvement-20} * 在 `ReplicatedMergeTree*` 引擎家族中基于 mutation(变更)机制实现 `ALTER MODIFY/DROP` 查询。现在 `ALTER` 查询只会在元数据更新阶段产生阻塞,之后将不再阻塞。 [#8701](https://github.com/ClickHouse/ClickHouse/pull/8701) ([alesapin](https://github.com/alesapin)) -* 在 `WHERE` 子句包含未限定名称时,新增将 CROSS 重写为 INNER JOIN 的功能。 [#9512](https://github.com/ClickHouse/ClickHouse/pull/9512) ([Artem Zuikov](https://github.com/4ertus2)) +* 在 `WHERE` 子句包含未限定名称时,新增支持将 CROSS 重写为 INNER JOIN。 [#9512](https://github.com/ClickHouse/ClickHouse/pull/9512) ([Artem Zuikov](https://github.com/4ertus2)) * 使 `SHOW TABLES` 和 `SHOW DATABASES` 查询支持 `WHERE` 表达式以及 `FROM`/`IN` 子句 [#9076](https://github.com/ClickHouse/ClickHouse/pull/9076) ([sundyli](https://github.com/sundy-li)) * 新增了设置项 `deduplicate_blocks_in_dependent_materialized_views`。 [#9070](https://github.com/ClickHouse/ClickHouse/pull/9070) ([urykhy](https://github.com/urykhy)) * 在最近的更改之后,MySQL 客户端开始以十六进制形式输出二进制字符串,从而导致它们不可读([#9032](https://github.com/ClickHouse/ClickHouse/issues/9032))。在 ClickHouse 中的解决方法是将字符串列标记为 UTF-8,虽然并非在所有情况下都适用,但大多数情况下都是如此。[#9079](https://github.com/ClickHouse/ClickHouse/pull/9079)([Yuriy Baranov](https://github.com/yurriy)) * 为 `sumMap` 添加对 String 和 FixedString 类型键的支持 [#8903](https://github.com/ClickHouse/ClickHouse/pull/8903) ([Baudouin Giard](https://github.com/bgiard)) -* 在 SummingMergeTree 的 map 中增加对字符串键的支持 [#8933](https://github.com/ClickHouse/ClickHouse/pull/8933) ([Baudouin Giard](https://github.com/bgiard)) +* 为 SummingMergeTree 的 map 添加对字符串类型键的支持 [#8933](https://github.com/ClickHouse/ClickHouse/pull/8933) ([Baudouin Giard](https://github.com/bgiard)) * 即使线程抛出异常,也会向线程池发送该线程的终止信号 [#8736](https://github.com/ClickHouse/ClickHouse/pull/8736) ([Ding Xiang Fei](https://github.com/dingxiangfei2009)) * 支持在 `clickhouse-benchmark` 中设置 `query_id` [#9416](https://github.com/ClickHouse/ClickHouse/pull/9416) ([Anton Popov](https://github.com/CurtizJ)) -* 在 `ALTER TABLE ... PARTITION partition` 查询中不再允许使用异常表达式。修复了 [#7192](https://github.com/ClickHouse/ClickHouse/issues/7192) [#8835](https://github.com/ClickHouse/ClickHouse/pull/8835)([alexey-milovidov](https://github.com/alexey-milovidov)) +* 在 `ALTER TABLE ... PARTITION partition` 查询中禁止使用异常表达式。解决了 [#7192](https://github.com/ClickHouse/ClickHouse/issues/7192) [#8835](https://github.com/ClickHouse/ClickHouse/pull/8835)([alexey-milovidov](https://github.com/alexey-milovidov)) * 表 `system.table_engines` 现在提供有关功能支持的信息(例如 `supports_ttl` 或 `supports_sort_order`)。 [#8830](https://github.com/ClickHouse/ClickHouse/pull/8830) ([Max Akhmedov](https://github.com/zlobober)) -* 默认启用 `system.metric_log`。其中将包含以 "collect_interval_milliseconds" 间隔(默认一秒)采集的 ProfileEvents 和 CurrentMetrics 的值对应的行。该表非常小(通常只有几兆字节级别),默认收集这些数据是合理的。[#9225](https://github.com/ClickHouse/ClickHouse/pull/9225) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 默认启用 `system.metric_log`。其中将包含以 "collect_interval_milliseconds" 周期(默认一秒)采集得到的 ProfileEvents 和 CurrentMetrics 的值对应的行。该表非常小(通常只有几兆字节),默认收集这些数据是合理的。[#9225](https://github.com/ClickHouse/ClickHouse/pull/9225) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 为同一组内的所有线程初始化查询分析器,例如,这样可以对 `INSERT` 查询进行完整分析。修复 [#6964](https://github.com/ClickHouse/ClickHouse/issues/6964) [#8874](https://github.com/ClickHouse/ClickHouse/pull/8874) ([Ivan](https://github.com/abyss7)) -* 现在创建临时 `LIVE VIEW` 时,使用 `CREATE LIVE VIEW name WITH TIMEOUT [42] ...`,而不再使用 `CREATE TEMPORARY LIVE VIEW ...`,因为之前的语法与 `CREATE TEMPORARY TABLE ...` 不一致 [#9131](https://github.com/ClickHouse/ClickHouse/pull/9131) ([tavplubix](https://github.com/tavplubix)) -* 添加 `text_log.level` 配置参数,用于限制写入到 `system.text_log` 表的日志条目 [#8809](https://github.com/ClickHouse/ClickHouse/pull/8809) ([Azat Khuzhin](https://github.com/azat)) -* 允许根据 TTL 规则将已下载的数据分片存放到磁盘/卷上 [#8598](https://github.com/ClickHouse/ClickHouse/pull/8598) ([Vladimir Chebotarev](https://github.com/excitoon)) +* 现在临时 `LIVE VIEW` 的创建方式是使用 `CREATE LIVE VIEW name WITH TIMEOUT [42] ...`,而不再使用 `CREATE TEMPORARY LIVE VIEW ...`,因为之前的语法与 `CREATE TEMPORARY TABLE ...` 不一致 [#9131](https://github.com/ClickHouse/ClickHouse/pull/9131) ([tavplubix](https://github.com/tavplubix)) +* Add text_log.level 配置参数,用于按级别限制写入到 `system.text_log` 表的日志条目 [#8809](https://github.com/ClickHouse/ClickHouse/pull/8809) ([Azat Khuzhin](https://github.com/azat)) +* 允许根据生存时间 (TTL) 规则将已下载的数据部件放置到磁盘/卷上 [#8598](https://github.com/ClickHouse/ClickHouse/pull/8598) ([Vladimir Chebotarev](https://github.com/excitoon)) * 对于外部 MySQL 字典,允许复用 MySQL 连接池,使其在字典之间“共享”连接。此选项可显著减少到 MySQL 服务器的连接数量。 [#9409](https://github.com/ClickHouse/ClickHouse/pull/9409) ([Clément Rodriguez](https://github.com/clemrodriguez)) -* 在 `clickhouse-benchmark` 的输出中,对分位数显示最接近的查询执行时间,而不是插值后的数值。最好显示与实际查询执行时间相对应的数值。 [#8712](https://github.com/ClickHouse/ClickHouse/pull/8712) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 在 `clickhouse-benchmark` 的输出中,对分位数显示最接近的查询执行时间,而不是插值后的数值。最好显示与某些查询实际执行时间相对应的数值。 [#8712](https://github.com/ClickHouse/ClickHouse/pull/8712) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 支持在向 Kafka 插入数据时为消息添加 key 和时间戳。修复 [#7198](https://github.com/ClickHouse/ClickHouse/issues/7198) [#8969](https://github.com/ClickHouse/ClickHouse/pull/8969) ([filimonov](https://github.com/filimonov)) -* 如果从终端运行服务器,则会通过不同颜色突出显示线程编号、查询 ID 和日志优先级。这样可以提高开发人员在阅读关联日志消息时的可读性。 [#8961](https://github.com/ClickHouse/ClickHouse/pull/8961) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 如果在终端中运行服务器,则会通过不同颜色突出显示线程编号、查询 ID 和日志优先级,以便开发人员更容易阅读关联的日志消息。 [#8961](https://github.com/ClickHouse/ClickHouse/pull/8961) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 在为 `Ordinary` 数据库加载表时改进异常信息。[#9527](https://github.com/ClickHouse/ClickHouse/pull/9527) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 为包含聚合函数状态的数组实现 `arraySlice` 支持。修复了 [#9388](https://github.com/ClickHouse/ClickHouse/issues/9388) [#9391](https://github.com/ClickHouse/ClickHouse/pull/9391)([alexey-milovidov](https://github.com/alexey-milovidov)) * 允许在 `IN` 运算符的右侧使用常量函数和常量数组。 [#8813](https://github.com/ClickHouse/ClickHouse/pull/8813) ([Anton Popov](https://github.com/CurtizJ)) * 如果在为 system.replicas 获取数据时发生 ZooKeeper 异常,则在单独的一列中显示该异常。对应实现 [#9137](https://github.com/ClickHouse/ClickHouse/issues/9137) [#9138](https://github.com/ClickHouse/ClickHouse/pull/9138)([alexey-milovidov](https://github.com/alexey-milovidov)) -* 在销毁时原子地删除 MergeTree 数据部件。[#8402](https://github.com/ClickHouse/ClickHouse/pull/8402) ([Vladimir Chebotarev](https://github.com/excitoon)) +* 在销毁时以原子方式删除 MergeTree 分区片段。[#8402](https://github.com/ClickHouse/ClickHouse/pull/8402) ([Vladimir Chebotarev](https://github.com/excitoon)) * 支持 Distributed 表的行级安全性。 [#8926](https://github.com/ClickHouse/ClickHouse/pull/8926) ([Ivan](https://github.com/abyss7)) * 现在支持在设置值中识别后缀(如 KB、KiB 等)。[#8072](https://github.com/ClickHouse/ClickHouse/pull/8072) ([Mikhail Korotov](https://github.com/millb)) -* 防止在构建大型 JOIN 结果时发生内存耗尽。 [#8637](https://github.com/ClickHouse/ClickHouse/pull/8637) ([Artem Zuikov](https://github.com/4ertus2)) -* 在 `clickhouse-client` 的交互模式中,在补全建议中添加了集群名称。[#8709](https://github.com/ClickHouse/ClickHouse/pull/8709) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 防止在构建大型 JOIN 结果时出现内存不足。 [#8637](https://github.com/ClickHouse/ClickHouse/pull/8637) ([Artem Zuikov](https://github.com/4ertus2)) +* 在 `clickhouse-client` 的交互模式中,在补全建议里加入了集群名称。[#8709](https://github.com/ClickHouse/ClickHouse/pull/8709) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 为一个线程组中的所有线程初始化查询分析器,例如,这样可以对 INSERT 查询进行完整分析 [#8820](https://github.com/ClickHouse/ClickHouse/pull/8820) ([Ivan](https://github.com/abyss7)) * 在 `system.query_log` 表中新增了 `exception_code` 列。 [#8770](https://github.com/ClickHouse/ClickHouse/pull/8770) ([Mikhail Korotov](https://github.com/millb)) -* 在默认服务器配置文件中启用了端口 `9004` 上的 MySQL 兼容服务器。修正了配置示例中的密码生成命令。[#8771](https://github.com/ClickHouse/ClickHouse/pull/8771) ([Yuriy Baranov](https://github.com/yurriy)) -* 当文件系统为只读时,防止在关闭时发生 abort。修复了 [#9094](https://github.com/ClickHouse/ClickHouse/issues/9094) [#9100](https://github.com/ClickHouse/ClickHouse/pull/9100)([alexey-milovidov](https://github.com/alexey-milovidov)) +* 在默认服务器配置文件中启用了监听端口 `9004` 的 MySQL 兼容服务器。更正了配置示例中的密码生成命令。[#8771](https://github.com/ClickHouse/ClickHouse/pull/8771) ([Yuriy Baranov](https://github.com/yurriy)) +* 当文件系统为只读时,阻止在关闭过程中触发 abort。修复了 [#9094](https://github.com/ClickHouse/ClickHouse/issues/9094) [#9100](https://github.com/ClickHouse/ClickHouse/pull/9100)([alexey-milovidov](https://github.com/alexey-milovidov)) * 当 HTTP POST 查询需要指定长度时,改进异常信息。 [#9453](https://github.com/ClickHouse/ClickHouse/pull/9453) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 为 `HDFS` 和 `File` 引擎以及 `hdfs` 和 `file` 表函数添加 `_path` 和 `_file` 虚拟列 [#8489](https://github.com/ClickHouse/ClickHouse/pull/8489) ([Olga Khvostikova](https://github.com/stavrolia)) -* 修复在向 `MATERIALIZED VIEW` 插入数据时,如果已向视图的内部表中添加新列会出现的 `Cannot find column` 错误。 [#8766](https://github.com/ClickHouse/ClickHouse/pull/8766) [#8788](https://github.com/ClickHouse/ClickHouse/pull/8788) ([vzakaznikov](https://github.com/vzakaznikov)) [#8788](https://github.com/ClickHouse/ClickHouse/issues/8788) [#8806](https://github.com/ClickHouse/ClickHouse/pull/8806) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) [#8803](https://github.com/ClickHouse/ClickHouse/pull/8803) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* 修复在向 `MATERIALIZED VIEW` 插入数据时,如果已在视图的内部表中添加新列会出现的 `Cannot find column` 错误。 [#8766](https://github.com/ClickHouse/ClickHouse/pull/8766) [#8788](https://github.com/ClickHouse/ClickHouse/pull/8788) ([vzakaznikov](https://github.com/vzakaznikov)) [#8788](https://github.com/ClickHouse/ClickHouse/issues/8788) [#8806](https://github.com/ClickHouse/ClickHouse/pull/8806) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) [#8803](https://github.com/ClickHouse/ClickHouse/pull/8803) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * 修复原生客户端-服务器协议中的进度处理方式:改为在最终更新之后(类似日志)再发送进度信息。此更改可能仅与使用原生协议的部分第三方工具相关。 [#9495](https://github.com/ClickHouse/ClickHouse/pull/9495) ([Azat Khuzhin](https://github.com/azat)) -* 添加系统指标,用于跟踪使用 MySQL 协议的客户端连接数([#9013](https://github.com/ClickHouse/ClickHouse/issues/9013))。[#9015](https://github.com/ClickHouse/ClickHouse/pull/9015)([Eugene Klimov](https://github.com/Slach)) -* 从现在起,HTTP 响应将包含 `X-ClickHouse-Timezone` 头部,其值与 `SELECT timezone()` 返回的时区值相同。[#9493](https://github.com/ClickHouse/ClickHouse/pull/9493) ([Denis Glazachev](https://github.com/traceon)) +* 添加系统指标,用于跟踪使用 MySQL 协议的客户端连接数([#9013](https://github.com/ClickHouse/ClickHouse/issues/9013))。[#9015](https://github.com/ClickHouse/ClickHouse/pull/9015) ([Eugene Klimov](https://github.com/Slach)) +* 从现在起,HTTP 响应将包含名为 `X-ClickHouse-Timezone` 的头字段,其值设置为与 `SELECT timezone()` 返回的时区值相同。[#9493](https://github.com/ClickHouse/ClickHouse/pull/9493) ([Denis Glazachev](https://github.com/traceon)) #### 性能改进 {#performance-improvement-16} * 提高使用 IN 分析索引时的性能。[#9261](https://github.com/ClickHouse/ClickHouse/pull/9261) ([Anton Popov](https://github.com/CurtizJ)) @@ -2928,51 +2920,49 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor * 将 `clickhouse-client` 的交互式行编辑库从 `readline` 替换为 `replxx` [#8416](https://github.com/ClickHouse/ClickHouse/pull/8416) ([Ivan](https://github.com/abyss7)) * 在 FunctionsComparison 中提升构建速度并减少模板实例化次数。 [#9324](https://github.com/ClickHouse/ClickHouse/pull/9324) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 在 CI 中新增了 `clang-tidy` 集成。另请参阅 [#6044](https://github.com/ClickHouse/ClickHouse/issues/6044) [#9566](https://github.com/ClickHouse/ClickHouse/pull/9566) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 现在在 CI 中链接 ClickHouse 时,即使使用 `gcc`,我们也会使用 `lld`。[#9049](https://github.com/ClickHouse/ClickHouse/pull/9049) ([alesapin](https://github.com/alesapin)) +* 现在在 CI 中链接 ClickHouse 时,即使在使用 `gcc` 时,我们也会使用 `lld`。[#9049](https://github.com/ClickHouse/ClickHouse/pull/9049) ([alesapin](https://github.com/alesapin)) * 当设置了 `THREAD_FUZZER_*` 环境变量时,可以对线程调度进行随机化并插入干扰,有助于测试。[#9459](https://github.com/ClickHouse/ClickHouse/pull/9459) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 在无状态测试中启用安全套接字功能 [#9288](https://github.com/ClickHouse/ClickHouse/pull/9288) ([tavplubix](https://github.com/tavplubix)) +* 在无状态测试中启用安全套接字 [#9288](https://github.com/ClickHouse/ClickHouse/pull/9288) ([tavplubix](https://github.com/tavplubix)) * 使 SPLIT_SHARED_LIBRARIES=OFF 更加健壮 [#9156](https://github.com/ClickHouse/ClickHouse/pull/9156) ([Azat Khuzhin](https://github.com/azat)) * 使 `performance_introspection_and_logging` 测试在服务器随机卡死的情况下也能保持可靠。这种情况可能会在 CI 环境中发生。另请参见 [#9515](https://github.com/ClickHouse/ClickHouse/issues/9515) [#9528](https://github.com/ClickHouse/ClickHouse/pull/9528)([alexey-milovidov](https://github.com/alexey-milovidov)) -* 在样式检查中对 XML 进行校验。 [#9550](https://github.com/ClickHouse/ClickHouse/pull/9550) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 在样式检查中校验 XML。 [#9550](https://github.com/ClickHouse/ClickHouse/pull/9550) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 修复了测试 `00738_lock_for_inner_table` 中的竞态条件。该测试依赖于 sleep 调用。 [#9555](https://github.com/ClickHouse/ClickHouse/pull/9555) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 移除 `once` 类型的性能测试。这样可以在统计对比模式下运行所有性能测试,从而获得更可靠的结果。[#9557](https://github.com/ClickHouse/ClickHouse/pull/9557) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 为算术函数新增了性能测试。[#9326](https://github.com/ClickHouse/ClickHouse/pull/9326) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 为 `sumMap` 和 `sumMapWithOverflow` 聚合函数添加了性能测试,作为 [#8933](https://github.com/ClickHouse/ClickHouse/issues/8933) 和 [#8947](https://github.com/ClickHouse/ClickHouse/pull/8947) 的后续工作([alexey-milovidov](https://github.com/alexey-milovidov)) -* 通过样式检查确保 ErrorCodes 的风格一致。 [#9370](https://github.com/ClickHouse/ClickHouse/pull/9370) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 为 `sumMap` 和 `sumMapWithOverflow` 聚合函数添加了性能测试,作为 [#8933](https://github.com/ClickHouse/ClickHouse/issues/8933) 和 [#8947](https://github.com/ClickHouse/ClickHouse/pull/8947) 的后续工作([alexey-milovidov](https://github.com/alexey-milovidov))。 +* 在样式检查中确保 ErrorCodes 的风格一致。 [#9370](https://github.com/ClickHouse/ClickHouse/pull/9370) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 为测试历史添加脚本。 [#8796](https://github.com/ClickHouse/ClickHouse/pull/8796) ([alesapin](https://github.com/alesapin)) * 添加 GCC 警告 `-Wsuggest-override`,以定位并修复所有需要使用 `override` 关键字的地方。 [#8760](https://github.com/ClickHouse/ClickHouse/pull/8760) ([kreuzerkrieg](https://github.com/kreuzerkrieg)) -* 在 Mac OS X 上忽略 weak symbol,因为它必须被定义 [#9538](https://github.com/ClickHouse/ClickHouse/pull/9538) ([Deleted user](https://github.com/ghost)) -* 对性能测试中部分查询的运行时间进行归一化处理。这是为了准备以对比模式运行所有性能测试。[#9565](https://github.com/ClickHouse/ClickHouse/pull/9565) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 修复部分测试,以便在查询测试中支持 pytest [#9062](https://github.com/ClickHouse/ClickHouse/pull/9062) ([Ivan](https://github.com/abyss7)) -* 在使用 MSan 构建时启用 SSL,以避免服务器在运行无状态测试时启动失败 [#9531](https://github.com/ClickHouse/ClickHouse/pull/9531) ([tavplubix](https://github.com/tavplubix)) +* 在 Mac OS X 上忽略 weak symbol,因为它必须被定义 [#9538](https://github.com/ClickHouse/ClickHouse/pull/9538) ([已删除的用户](https://github.com/ghost)) +* 对性能测试中部分查询的运行时间进行归一化处理。这是为了准备在对比模式下运行所有性能测试。[#9565](https://github.com/ClickHouse/ClickHouse/pull/9565) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 修复部分测试,以支持使用 pytest 运行查询测试 [#9062](https://github.com/ClickHouse/ClickHouse/pull/9062) ([Ivan](https://github.com/abyss7)) +* 在使用 MSan 构建时启用 SSL,以防止服务器在运行无状态测试时启动失败 [#9531](https://github.com/ClickHouse/ClickHouse/pull/9531) ([tavplubix](https://github.com/tavplubix)) * 修复测试结果中的数据库替换问题 [#9384](https://github.com/ClickHouse/ClickHouse/pull/9384) ([Ilya Yatsishin](https://github.com/qoega)) -* 针对多种平台的构建修复 [#9381](https://github.com/ClickHouse/ClickHouse/pull/9381) ([proller](https://github.com/proller)) [#8755](https://github.com/ClickHouse/ClickHouse/pull/8755) ([proller](https://github.com/proller)) [#8631](https://github.com/ClickHouse/ClickHouse/pull/8631) ([proller](https://github.com/proller)) +* 修复多种平台上的构建问题 [#9381](https://github.com/ClickHouse/ClickHouse/pull/9381) ([proller](https://github.com/proller)) [#8755](https://github.com/ClickHouse/ClickHouse/pull/8755) ([proller](https://github.com/proller)) [#8631](https://github.com/ClickHouse/ClickHouse/pull/8631) ([proller](https://github.com/proller)) * 在 stateless-with-coverage 测试 Docker 镜像中添加了 disks 部分 [#9213](https://github.com/ClickHouse/ClickHouse/pull/9213) ([Pavel Kovalenko](https://github.com/Jokser)) * 使用 GRPC 进行构建时清理源码树中的文件 [#9588](https://github.com/ClickHouse/ClickHouse/pull/9588) ([Amos Bird](https://github.com/amosbird)) -* 通过从 Context 中移除 SessionCleaner 略微缩短构建时间,并简化 SessionCleaner 的代码。[#9232](https://github.com/ClickHouse/ClickHouse/pull/9232) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 更新了 `clickhouse-test` 脚本中对卡住查询的检查 [#8858](https://github.com/ClickHouse/ClickHouse/pull/8858) ([Alexander Kazakov](https://github.com/Akazz)) +* 通过从 Context 中移除 SessionCleaner 略微提升构建速度,并简化 SessionCleaner 的代码。[#9232](https://github.com/ClickHouse/ClickHouse/pull/9232) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 更新了 `clickhouse-test` 脚本中对挂起查询的检查 [#8858](https://github.com/ClickHouse/ClickHouse/pull/8858) ([Alexander Kazakov](https://github.com/Akazz)) * 从代码仓库中移除了一些多余文件。 [#8843](https://github.com/ClickHouse/ClickHouse/pull/8843) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 将 math 性能测试的类型从 `once` 更改为 `loop`。[#8783](https://github.com/ClickHouse/ClickHouse/pull/8783) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* 添加一个 Docker 镜像,用于生成我们代码库的交互式代码浏览器 HTML 报告。 [#8781](https://github.com/ClickHouse/ClickHouse/pull/8781) ([alesapin](https://github.com/alesapin)) 参见 [Woboq Code Browser](https://clickhouse-test-reports.s3.yandex.net/codebrowser/ClickHouse/dbms/index.html) +* 将数学性能测试的类型从 `once` 更改为 `loop`。[#8783](https://github.com/ClickHouse/ClickHouse/pull/8783) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* 添加一个 Docker 镜像,用于为我们的代码库生成交互式代码浏览器 HTML 报告。 [#8781](https://github.com/ClickHouse/ClickHouse/pull/8781) ([alesapin](https://github.com/alesapin)) 参见 [Woboq Code Browser](https://clickhouse-test-reports.s3.yandex.net/codebrowser/ClickHouse/dbms/index.html) * 在 MSan 下屏蔽了一些测试失败。[#8780](https://github.com/ClickHouse/ClickHouse/pull/8780) ([Alexander Kuzmenkov](https://github.com/akuzm)) -* 加速“exception while insert”测试。此测试在启用代码覆盖率的调试构建中经常超时。 [#8711](https://github.com/ClickHouse/ClickHouse/pull/8711) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 加速 “exception while insert” 测试的执行。此测试在带代码覆盖率的调试构建中经常超时。 [#8711](https://github.com/ClickHouse/ClickHouse/pull/8711) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 将 `libcxx` 和 `libcxxabi` 更新到了 master 分支。为 [#9304](https://github.com/ClickHouse/ClickHouse/issues/9304) [#9308](https://github.com/ClickHouse/ClickHouse/pull/9308) 做准备([alexey-milovidov](https://github.com/alexey-milovidov)) * 修复不稳定的测试用例 `00910_zookeeper_test_alter_compression_codecs`。 [#9525](https://github.com/ClickHouse/ClickHouse/pull/9525) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 清理重复的链接器标志,确保链接器不会解析到意外的符号。[#9433](https://github.com/ClickHouse/ClickHouse/pull/9433) ([Amos Bird](https://github.com/amosbird)) -* 在测试镜像中添加 `clickhouse-odbc` 驱动程序,以便通过其自带的 ODBC 驱动测试 ClickHouse 与 ClickHouse 之间的交互。[#9348](https://github.com/ClickHouse/ClickHouse/pull/9348) ([filimonov](https://github.com/filimonov)) +* 清理重复的链接器标志,确保链接器不会查找意外的符号。[#9433](https://github.com/ClickHouse/ClickHouse/pull/9433) ([Amos Bird](https://github.com/amosbird)) +* 在测试镜像中添加 `clickhouse-odbc` 驱动程序。这使得可以通过 ClickHouse 自身的 ODBC 驱动测试 ClickHouse 与 ClickHouse 之间的交互。[#9348](https://github.com/ClickHouse/ClickHouse/pull/9348) ([filimonov](https://github.com/filimonov)) * 修复若干单元测试中的缺陷。 [#9047](https://github.com/ClickHouse/ClickHouse/pull/9047) ([alesapin](https://github.com/alesapin)) -* 启用 `-Wmissing-include-dirs` GCC 警告,以消除所有指向不存在目录的 include —— 这些通常是由 CMake 脚本错误导致的 [#8704](https://github.com/ClickHouse/ClickHouse/pull/8704) ([kreuzerkrieg](https://github.com/kreuzerkrieg)) -* 当查询分析器无法工作时,请说明具体原因。此项变更对应 [#9049](https://github.com/ClickHouse/ClickHouse/issues/9049) [#9144](https://github.com/ClickHouse/ClickHouse/pull/9144)([alexey-milovidov](https://github.com/alexey-milovidov)) +* 启用 `-Wmissing-include-dirs` GCC 警告,以消除所有指向不存在目录的 include——这些通常是由 CMake 脚本错误导致的 [#8704](https://github.com/ClickHouse/ClickHouse/pull/8704) ([kreuzerkrieg](https://github.com/kreuzerkrieg)) +* 当查询分析器无法工作时,给出无法工作的原因说明。此项变更对应 [#9049](https://github.com/ClickHouse/ClickHouse/issues/9049) [#9144](https://github.com/ClickHouse/ClickHouse/pull/9144)([alexey-milovidov](https://github.com/alexey-milovidov)) * 将 OpenSSL 更新到上游 master 版本。修复了一个可能导致 TLS 连接失败的问题,失败时会出现 `OpenSSL SSL_read: error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error` 和 `SSL Exception: error:2400006E:random number generator::error retrieving entropy` 错误信息。该问题存在于 20.1 版本中。[#8956](https://github.com/ClickHouse/ClickHouse/pull/8956) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 更新 server Dockerfile [#8893](https://github.com/ClickHouse/ClickHouse/pull/8893) ([Ilya Mazaev](https://github.com/ne-ray)) -* 对 build-gcc-from-sources 脚本进行了一些小修正 [#8774](https://github.com/ClickHouse/ClickHouse/pull/8774) ([Michael Nacharov](https://github.com/mnach)) +* 对 build-gcc-from-sources 脚本进行了一些小的修复 [#8774](https://github.com/ClickHouse/ClickHouse/pull/8774) ([Michael Nacharov](https://github.com/mnach)) * 在未使用 `number` 列的性能测试中将 `numbers` 替换为 `zeros`。这将使测试结果更加清晰。 [#9600](https://github.com/ClickHouse/ClickHouse/pull/9600) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * 修复在 Column 构造函数中使用 initializer_list 时出现的栈溢出问题。 [#9367](https://github.com/ClickHouse/ClickHouse/pull/9367) ([已删除的用户](https://github.com/ghost)) * 将 librdkafka 升级到 v1.3.0。在 Mac OS X 上启用捆绑的 `rdkafka` 和 `gsasl` 库。[#9000](https://github.com/ClickHouse/ClickHouse/pull/9000) ([Andrew Onyshchuk](https://github.com/oandrew)) * 修复 GCC 9.2.0 下的构建问题 [#9306](https://github.com/ClickHouse/ClickHouse/pull/9306) ([vxider](https://github.com/Vxider)) - - ## ClickHouse 发布 v20.1 {#clickhouse-release-v201} ### ClickHouse 发布 v20.1.16.120-stable 2020-60-26 {#clickhouse-release-v20116120-stable-2020-60-26} @@ -3118,7 +3108,7 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor #### 改进 {#improvement-21} -* 从 mutation 过程中移除 `ORDER BY` 阶段,因为我们在单线程中从单个有序数据部分读取。同时添加检查,以保证 mutation 中行的顺序符合排序键顺序,且该顺序不会被破坏。[#9886](https://github.com/ClickHouse/ClickHouse/pull/9886) ([alesapin](https://github.com/alesapin))。 +* 从 mutation 操作中移除 `ORDER BY` 阶段,因为我们在单线程中从单个有序数据部分读取。同时添加检查,以保证 mutation 中行的顺序按排序键有序,且这一顺序不会被破坏。[#9886](https://github.com/ClickHouse/ClickHouse/pull/9886) ([alesapin](https://github.com/alesapin))。 #### 构建/测试/打包改进 {#buildtestingpackaging-improvement-23} @@ -3127,6 +3117,7 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor ### ClickHouse 发行版 v20.1.8.41,2020-03-20 {#clickhouse-release-v201841-2020-03-20} #### 缺陷修复 {#bug-fix-57} + * 修复可能出现的永久性 `Cannot schedule a task` 错误(由 `ParallelAggregatingBlockInputStream::Handler::onFinish/onFinishThread` 中未处理的异常导致)。修复了 [#6833](https://github.com/ClickHouse/ClickHouse/issues/6833)。 [#9154](https://github.com/ClickHouse/ClickHouse/pull/9154) ([Azat Khuzhin](https://github.com/azat)) * 修复 `ALTER` 变更(mutation)查询中过高的内存消耗。修复了 [#9533](https://github.com/ClickHouse/ClickHouse/issues/9533) 和 [#9670](https://github.com/ClickHouse/ClickHouse/issues/9670)。 [#9754](https://github.com/ClickHouse/ClickHouse/pull/9754) ([alesapin](https://github.com/alesapin)) * 修复外部字典 DDL 中反引号处理的错误。修复了 [#9619](https://github.com/ClickHouse/ClickHouse/issues/9619)。 [#9734](https://github.com/ClickHouse/ClickHouse/pull/9734) ([alesapin](https://github.com/alesapin)) @@ -3135,24 +3126,24 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor #### 错误修复 {#bug-fix-58} -* 修复了 `sumKahan` 和 `sumWithOverflow` 的内部函数名称错误,该问题会在远程查询中使用这些函数时导致异常。[#9636](https://github.com/ClickHouse/ClickHouse/pull/9636)([Azat Khuzhin](https://github.com/azat))。这个问题存在于所有 ClickHouse 版本中。 -* 允许对包含内部复制的 `Distributed` 表执行 `ALTER ON CLUSTER`。这修复了 [#3268](https://github.com/ClickHouse/ClickHouse/issues/3268)。[#9617](https://github.com/ClickHouse/ClickHouse/pull/9617)([shinoi2](https://github.com/shinoi2))。该问题影响所有 ClickHouse 版本。 -* 修复了在 `MergeTreeRangeReader` 中可能出现的异常 `Size of filter does not match size of column` 和 `Invalid number of rows in Chunk`,这些异常可能在某些情况下执行 `PREWHERE` 时触发。修复了 [#9132](https://github.com/ClickHouse/ClickHouse/issues/9132)。[#9612](https://github.com/ClickHouse/ClickHouse/pull/9612)([Anton Popov](https://github.com/CurtizJ)) -* 已修复以下问题:在编写诸如 `time + 1` 这样的简单算术表达式时,不会保留时区(与 `time + INTERVAL 1 SECOND` 这样的表达式不同)。此修复对应 [#5743](https://github.com/ClickHouse/ClickHouse/issues/5743)。[#9323](https://github.com/ClickHouse/ClickHouse/pull/9323)([alexey-milovidov](https://github.com/alexey-milovidov))。该问题存在于所有 ClickHouse 版本中。 -* 现在无法创建或添加带有简单循环引用别名的列,例如 `a DEFAULT b, b DEFAULT a`。[#9603](https://github.com/ClickHouse/ClickHouse/pull/9603) ([alesapin](https://github.com/alesapin)) -* 修复了 base64 编码值末尾填充可能格式错误的问题,并更新了 base64 库。修复了 [#9491](https://github.com/ClickHouse/ClickHouse/issues/9491),关闭 [#9492](https://github.com/ClickHouse/ClickHouse/issues/9492) [#9500](https://github.com/ClickHouse/ClickHouse/pull/9500)([alexey-milovidov](https://github.com/alexey-milovidov)) +* 修复了 `sumKahan` 和 `sumWithOverflow` 的内部函数名称错误,该问题会在远程查询中使用这些函数时导致异常。[#9636](https://github.com/ClickHouse/ClickHouse/pull/9636)([Azat Khuzhin](https://github.com/azat))。该问题存在于所有 ClickHouse 版本中。 +* 允许对包含内部复制的 `Distributed` 表执行 `ALTER ON CLUSTER`。这修复了 [#3268](https://github.com/ClickHouse/ClickHouse/issues/3268)。[#9617](https://github.com/ClickHouse/ClickHouse/pull/9617)([shinoi2](https://github.com/shinoi2))。该问题存在于所有 ClickHouse 版本中。 +* 修复了在 `MergeTreeRangeReader` 中可能出现的异常 `Size of filter does not match size of column` 和 `Invalid number of rows in Chunk`,在某些执行 `PREWHERE` 的情况下可能会触发这些异常。修复了 [#9132](https://github.com/ClickHouse/ClickHouse/issues/9132)。[#9612](https://github.com/ClickHouse/ClickHouse/pull/9612)([Anton Popov](https://github.com/CurtizJ)) +* 已修复以下问题:在编写诸如 `time + 1` 这样的简单算术表达式时,时区信息不会被保留(与 `time + INTERVAL 1 SECOND` 这样的表达式不同)。此修复解决了 [#5743](https://github.com/ClickHouse/ClickHouse/issues/5743)。[#9323](https://github.com/ClickHouse/ClickHouse/pull/9323)([alexey-milovidov](https://github.com/alexey-milovidov))。该问题存在于所有 ClickHouse 版本中。 +* 现在无法创建或添加具有简单循环引用别名的列,例如 `a DEFAULT b, b DEFAULT a`。[#9603](https://github.com/ClickHouse/ClickHouse/pull/9603)([alesapin](https://github.com/alesapin)) +* 修复了 base64 编码值末尾的填充可能格式错误的问题,并更新了 base64 库。此修复解决了 [#9491](https://github.com/ClickHouse/ClickHouse/issues/9491),并关闭 [#9492](https://github.com/ClickHouse/ClickHouse/issues/9492) [#9500](https://github.com/ClickHouse/ClickHouse/pull/9500)([alexey-milovidov](https://github.com/alexey-milovidov)) * 修复在销毁 `Poco::HTTPServer` 时出现的数据竞争问题。该问题可能在服务器刚启动后就立即被关闭时发生。[#9468](https://github.com/ClickHouse/ClickHouse/pull/9468) ([Anton Popov](https://github.com/CurtizJ)) * 修复在存在大量与第 n 行相同的行时,`LIMIT n WITH TIES` 可能发生的崩溃或返回行数不正确的问题。[#9464](https://github.com/ClickHouse/ClickHouse/pull/9464) ([tavplubix](https://github.com/tavplubix)) * 修复在使用列 TTL 时可能出现的校验和不匹配问题。[#9451](https://github.com/ClickHouse/ClickHouse/pull/9451) ([Anton Popov](https://github.com/CurtizJ)) -* 修复当用户尝试对旧格式的 `MergeTree` 表引擎系列执行 `ALTER MODIFY SETTING` 时发生的崩溃。[#9435](https://github.com/ClickHouse/ClickHouse/pull/9435) ([alesapin](https://github.com/alesapin)) -* 现在我们会更频繁地尝试完成 mutation。 [#9427](https://github.com/ClickHouse/ClickHouse/pull/9427) ([alesapin](https://github.com/alesapin)) +* 修复当用户尝试对旧格式的 `MergeTree` 系列表引擎执行 `ALTER MODIFY SETTING` 时发生的崩溃。[#9435](https://github.com/ClickHouse/ClickHouse/pull/9435) ([alesapin](https://github.com/alesapin)) +* 现在系统会更频繁地尝试完成 mutation。[#9427](https://github.com/ClickHouse/ClickHouse/pull/9427) ([alesapin](https://github.com/alesapin)) * 修复在 [#8598](https://github.com/ClickHouse/ClickHouse/issues/8598) 中引入的复制协议不兼容问题。[#9412](https://github.com/ClickHouse/ClickHouse/pull/9412) ([alesapin](https://github.com/alesapin)) -* 修复数组类型的 bloom_filter 索引中 not(has()) 的问题。 [#9407](https://github.com/ClickHouse/ClickHouse/pull/9407) ([achimbab](https://github.com/achimbab)) -* 修复了在 haystack 为零字节时 `match` 和 `extract` 函数的行为。当 haystack 为常量时,其行为不正确。此更改修复了 [#9160](https://github.com/ClickHouse/ClickHouse/issues/9160) [#9163](https://github.com/ClickHouse/ClickHouse/pull/9163) ([alexey-milovidov](https://github.com/alexey-milovidov)) [#9345](https://github.com/ClickHouse/ClickHouse/pull/9345) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 修复数组类型的 bloom_filter 索引中使用 not(has()) 时的问题。 [#9407](https://github.com/ClickHouse/ClickHouse/pull/9407) ([achimbab](https://github.com/achimbab)) +* 修复了在 haystack 长度为零时 `match` 和 `extract` 函数的行为。当 haystack 为常量时,其行为不正确。此修复解决了 [#9160](https://github.com/ClickHouse/ClickHouse/issues/9160) [#9163](https://github.com/ClickHouse/ClickHouse/pull/9163) ([alexey-milovidov](https://github.com/alexey-milovidov)) [#9345](https://github.com/ClickHouse/ClickHouse/pull/9345) ([alexey-milovidov](https://github.com/alexey-milovidov)) #### 构建/测试/打包改进 {#buildtestingpackaging-improvement-24} -* 现在在 Windows Subsystem for Linux 上的异常处理已能正常工作。详情参见 https://github.com/ClickHouse-Extras/libunwind/pull/3 。此更改修复了 [#6480](https://github.com/ClickHouse/ClickHouse/issues/6480) 和 [#9564](https://github.com/ClickHouse/ClickHouse/pull/9564)([sobolevsv](https://github.com/sobolevsv)) +* 现在在 Windows Subsystem for Linux 上的异常处理已能正常工作。详情参见 https://github.com/ClickHouse-Extras/libunwind/pull/3。此更改修复了 [#6480](https://github.com/ClickHouse/ClickHouse/issues/6480) 和 [#9564](https://github.com/ClickHouse/ClickHouse/pull/9564)([sobolevsv](https://github.com/sobolevsv)) ### ClickHouse 发布 v20.1.6.30,2020-03-05 {#clickhouse-release-v201630-2020-03-05} @@ -3210,12 +3201,14 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor [#9513](https://github.com/ClickHouse/ClickHouse/pull/9513) [(filimonov)](https://github.com/filimonov) #### 新功能 {#new-feature-12} + * 添加 `deduplicate_blocks_in_dependent_materialized_views` 选项,用于控制对包含物化视图的表执行幂等插入时的行为。应 Altinity 的特别请求,此新功能被加入到该 bug 修复版本中。 [#9070](https://github.com/ClickHouse/ClickHouse/pull/9070) [(urykhy)](https://github.com/urykhy) ### ClickHouse 发布 v20.1.2.4,2020-01-22 {#clickhouse-release-v20124-2020-01-22} #### 向后不兼容变更 {#backward-incompatible-change-10} + * 将设置 `merge_tree_uniform_read_distribution` 标记为废弃。服务器仍然识别该设置,但它不再产生任何效果。[#8308](https://github.com/ClickHouse/ClickHouse/pull/8308) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 将函数 `greatCircleDistance` 的返回类型更改为 `Float32`,因为现在计算结果为 `Float32`。[#7993](https://github.com/ClickHouse/ClickHouse/pull/7993) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 现在要求查询参数采用“转义(escaped)”格式表示。例如,要传递字符串 `ab`,必须写为 `a\tb` 或 `a\b`,并且在 URL 中分别为 `a%5Ctb` 或 `a%5C%09b`。这样做是为了能够将 NULL 作为 `\N` 传递。这修复了 [#7488](https://github.com/ClickHouse/ClickHouse/issues/7488)。[#8517](https://github.com/ClickHouse/ClickHouse/pull/8517) ([alexey-milovidov](https://github.com/alexey-milovidov)) @@ -3229,115 +3222,113 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor * 在 `system.merges` 中添加了关于 part 路径的信息。[#8043](https://github.com/ClickHouse/ClickHouse/pull/8043) ([Vladimir Chebotarev](https://github.com/excitoon)) * 新增支持在 `ON CLUSTER` 模式下执行 `SYSTEM RELOAD DICTIONARY` 查询。 [#8288](https://github.com/ClickHouse/ClickHouse/pull/8288) ([Guillaume Tassery](https://github.com/YiuRULE)) * 新增支持在 `ON CLUSTER` 模式下执行 `CREATE DICTIONARY` 查询。 [#8163](https://github.com/ClickHouse/ClickHouse/pull/8163) ([alesapin](https://github.com/alesapin)) -* 现在 `users.xml` 中的用户配置文件可以继承自多个配置文件。[#8343](https://github.com/ClickHouse/ClickHouse/pull/8343) ([Mikhail f. Shiryaev](https://github.com/Felixoid)) -* 添加了 `system.stack_trace` 表,用于查看所有服务器线程的栈跟踪信息。这对于开发人员分析服务器状态非常有用。修复了 [#7576](https://github.com/ClickHouse/ClickHouse/issues/7576)。[#8344](https://github.com/ClickHouse/ClickHouse/pull/8344)([alexey-milovidov](https://github.com/alexey-milovidov)) -* 新增支持可配置子秒级精度的 `DateTime64` 数据类型。[#7170](https://github.com/ClickHouse/ClickHouse/pull/7170) ([Vasily Nemkov](https://github.com/Enmk)) -* 添加了表函数 `clusterAllReplicas`,可用于查询集群中所有节点。 [#8493](https://github.com/ClickHouse/ClickHouse/pull/8493) ([kiran sunkari](https://github.com/kiransunkari)) +* 现在 `users.xml` 中的用户配置文件可以继承多个配置文件。[#8343](https://github.com/ClickHouse/ClickHouse/pull/8343) ([Mikhail f. Shiryaev](https://github.com/Felixoid)) +* 添加了 `system.stack_trace` 表,用于查看所有服务器线程的堆栈跟踪信息。这对于开发人员检查服务器状态非常有用。修复了 [#7576](https://github.com/ClickHouse/ClickHouse/issues/7576)。[#8344](https://github.com/ClickHouse/ClickHouse/pull/8344)([alexey-milovidov](https://github.com/alexey-milovidov)) +* 新增 `DateTime64` 数据类型,支持可配置的子秒级精度。[#7170](https://github.com/ClickHouse/ClickHouse/pull/7170) ([Vasily Nemkov](https://github.com/Enmk)) +* 添加了表函数 `clusterAllReplicas`,用于查询集群中所有节点。 [#8493](https://github.com/ClickHouse/ClickHouse/pull/8493) ([kiran sunkari](https://github.com/kiransunkari)) * 添加聚合函数 `categoricalInformationValue`,用于计算离散型特征的信息值。 [#8117](https://github.com/ClickHouse/ClickHouse/pull/8117) ([hcz](https://github.com/hczhcz)) -* 通过并行解析 `CSV`、`TSV` 和 `JSONEachRow` 格式的数据文件来加速处理。[#7780](https://github.com/ClickHouse/ClickHouse/pull/7780) ([Alexander Kuzmenkov](https://github.com/akuzm)) +* 通过并行执行解析,加速对 `CSV`、`TSV` 和 `JSONEachRow` 格式数据文件的解析。[#7780](https://github.com/ClickHouse/ClickHouse/pull/7780) ([Alexander Kuzmenkov](https://github.com/akuzm)) * 添加函数 `bankerRound`,用于执行银行家舍入法。 [#8112](https://github.com/ClickHouse/ClickHouse/pull/8112) ([hcz](https://github.com/hczhcz)) * 在内置区域名称字典中支持更多语言:'ru', 'en', 'ua', 'uk', 'by', 'kz', 'tr', 'de', 'uz', 'lv', 'lt', 'et', 'pt', 'he', 'vi'。 [#8189](https://github.com/ClickHouse/ClickHouse/pull/8189) ([alexey-milovidov](https://github.com/alexey-milovidov)) * `ANY JOIN` 逻辑的一致性有所改进。现在 `t1 ANY LEFT JOIN t2` 与 `t2 ANY RIGHT JOIN t1` 等价。[#7665](https://github.com/ClickHouse/ClickHouse/pull/7665) ([Artem Zuikov](https://github.com/4ertus2)) * 添加 `any_join_distinct_right_table_keys` 设置,用于为 `ANY INNER JOIN` 启用旧行为。[#7665](https://github.com/ClickHouse/ClickHouse/pull/7665) ([Artem Zuikov](https://github.com/4ertus2)) -* 新增 `SEMI` 和 `ANTI JOIN`。旧的 `ANY INNER JOIN` 行为现在可以通过 `SEMI LEFT JOIN` 获得。[#7665](https://github.com/ClickHouse/ClickHouse/pull/7665) ([Artem Zuikov](https://github.com/4ertus2)) +* 新增 `SEMI` 和 `ANTI JOIN`。旧的 `ANY INNER JOIN` 行为现在可以通过 `SEMI LEFT JOIN` 实现。[#7665](https://github.com/ClickHouse/ClickHouse/pull/7665) ([Artem Zuikov](https://github.com/4ertus2)) * 为 `File` 引擎和 `file` 表函数添加了 `Distributed` 格式,允许从异步插入到 `Distributed` 表所生成的 `.bin` 文件中读取数据。 [#8535](https://github.com/ClickHouse/ClickHouse/pull/8535) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * 为 `runningAccumulate` 添加可选的重置列参数,用于在每个新的键值出现时重置聚合结果。[#8326](https://github.com/ClickHouse/ClickHouse/pull/8326) ([Sergey Kononenko](https://github.com/kononencheg)) -* 添加对将 ClickHouse 用作 Prometheus 端点的支持。 [#7900](https://github.com/ClickHouse/ClickHouse/pull/7900) ([vdimir](https://github.com/Vdimir)) +* 新增支持将 ClickHouse 用作 Prometheus 端点。 [#7900](https://github.com/ClickHouse/ClickHouse/pull/7900) ([vdimir](https://github.com/Vdimir)) * 在 `config.xml` 中添加 `` 配置段,用于限制远程表引擎以及 `URL`、`S3`、`HDFS` 表函数所允许的主机。[#7154](https://github.com/ClickHouse/ClickHouse/pull/7154) ([Mikhail Korotov](https://github.com/millb)) -* 新增函数 `greatCircleAngle`,用于计算球面上的距离(单位:度)。 [#8105](https://github.com/ClickHouse/ClickHouse/pull/8105) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 新增函数 `greatCircleAngle`,用于计算球面距离(单位:度)。 [#8105](https://github.com/ClickHouse/ClickHouse/pull/8105) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 调整地球半径,使其与 H3 库保持一致。[#8105](https://github.com/ClickHouse/ClickHouse/pull/8105) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 添加了用于输入和输出的 `JSONCompactEachRow` 和 `JSONCompactEachRowWithNamesAndTypes` 格式。 [#7841](https://github.com/ClickHouse/ClickHouse/pull/7841) ([Mikhail Korotov](https://github.com/millb)) -* 为基于文件的表引擎和表函数(`File`、`S3`、`URL`、`HDFS`)新增特性,可根据额外的引擎参数或文件扩展名读写 `gzip` 文件。[#7840](https://github.com/ClickHouse/ClickHouse/pull/7840) ([Andrey Bodrov](https://github.com/apbodrov)) -* 添加了 `randomASCII(length)` 函数,用于生成由随机 [ASCII](https://en.wikipedia.org/wiki/ASCII#Printable_characters) 可打印字符组成的字符串。 [#8401](https://github.com/ClickHouse/ClickHouse/pull/8401) ([BayoNet](https://github.com/BayoNet)) -* 新增函数 `JSONExtractArrayRaw`,用于从 `JSON` 字符串中返回由未解析的 JSON 数组元素组成的数组。 [#8081](https://github.com/ClickHouse/ClickHouse/pull/8081) ([Oleg Matrokhin](https://github.com/errx)) +* 为基于文件的表引擎和表函数(`File`、`S3`、`URL`、`HDFS`)新增功能,可根据额外的引擎参数或文件扩展名读写 `gzip` 文件。[#7840](https://github.com/ClickHouse/ClickHouse/pull/7840) ([Andrey Bodrov](https://github.com/apbodrov)) +* 添加了 `randomASCII(length)` 函数,用于生成由随机可打印 [ASCII](https://en.wikipedia.org/wiki/ASCII#Printable_characters) 字符组成的字符串。 [#8401](https://github.com/ClickHouse/ClickHouse/pull/8401) ([BayoNet](https://github.com/BayoNet)) +* 新增函数 `JSONExtractArrayRaw`,用于从 `JSON` 字符串中返回包含未解析 JSON 数组元素的数组。 [#8081](https://github.com/ClickHouse/ClickHouse/pull/8081) ([Oleg Matrokhin](https://github.com/errx)) * 新增 `arrayZip` 函数,用于将多个长度相同的数组组合成一个由元组构成的数组。 [#8149](https://github.com/ClickHouse/ClickHouse/pull/8149) ([Winter Zhang](https://github.com/zhang2014)) -* 为 `*MergeTree` 表引擎族新增根据已配置的 `TTL` 表达式在不同磁盘之间移动数据的功能。 [#8140](https://github.com/ClickHouse/ClickHouse/pull/8140) ([Vladimir Chebotarev](https://github.com/excitoon)) +* 为 `*MergeTree` 表引擎族新增按照已配置的 `TTL` 表达式在不同磁盘之间移动数据的功能。 [#8140](https://github.com/ClickHouse/ClickHouse/pull/8140) ([Vladimir Chebotarev](https://github.com/excitoon)) * 新增聚合函数 `avgWeighted`,用于计算加权平均值。 [#7898](https://github.com/ClickHouse/ClickHouse/pull/7898) ([Andrey Bodrov](https://github.com/apbodrov)) -* 现已对 `TSV`、`TSKV`、`CSV` 和 `JSONEachRow` 格式默认启用并行解析。[#7894](https://github.com/ClickHouse/ClickHouse/pull/7894) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) -* 从 `H3` 库中新增了几个地理函数:`h3GetResolution`、`h3EdgeAngle`、`h3EdgeLength`、`h3IsValid` 和 `h3kRing`。 [#8034](https://github.com/ClickHouse/ClickHouse/pull/8034) ([Konstantin Malanchev](https://github.com/hombit)) -* 在基于文件的存储和表函数中新增了对 brotli(`br`)压缩的支持。修复了 [#8156](https://github.com/ClickHouse/ClickHouse/issues/8156)。[#8526](https://github.com/ClickHouse/ClickHouse/pull/8526)([alexey-milovidov](https://github.com/alexey-milovidov)) +* 现已在 `TSV`、`TSKV`、`CSV` 和 `JSONEachRow` 格式中默认启用并行解析。[#7894](https://github.com/ClickHouse/ClickHouse/pull/7894) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) +* 从 `H3` 库中新增若干地理函数:`h3GetResolution`、`h3EdgeAngle`、`h3EdgeLength`、`h3IsValid` 和 `h3kRing`。 [#8034](https://github.com/ClickHouse/ClickHouse/pull/8034) ([Konstantin Malanchev](https://github.com/hombit)) +* 在基于文件的存储和表函数中新增了对 Brotli(`br`)压缩的支持。修复了 [#8156](https://github.com/ClickHouse/ClickHouse/issues/8156)。[#8526](https://github.com/ClickHouse/ClickHouse/pull/8526)([alexey-milovidov](https://github.com/alexey-milovidov)) * 为 `SimpleAggregationFunction` 类型添加 `groupBit*` 函数。[#8485](https://github.com/ClickHouse/ClickHouse/pull/8485) ([Guillaume Tassery](https://github.com/YiuRULE)) - - #### 错误修复 {#bug-fix-60} -* 修复 `Distributed` 引擎表重命名的问题。修复问题 [#7868](https://github.com/ClickHouse/ClickHouse/issues/7868)。[#8306](https://github.com/ClickHouse/ClickHouse/pull/8306) ([tavplubix](https://github.com/tavplubix)) +* 修复在对使用 `Distributed` 引擎的表执行重命名操作时出现的问题。修复问题 [#7868](https://github.com/ClickHouse/ClickHouse/issues/7868)。[#8306](https://github.com/ClickHouse/ClickHouse/pull/8306) ([tavplubix](https://github.com/tavplubix)) * 现在,在非 ClickHouse SQL 方言中,字典支持对任意字符串类型的属性使用 `EXPRESSION`。 [#8098](https://github.com/ClickHouse/ClickHouse/pull/8098) ([alesapin](https://github.com/alesapin)) * 修复异常的 `INSERT SELECT FROM mysql(...)` 查询。该修复解决了 [#8070](https://github.com/ClickHouse/ClickHouse/issues/8070) 和 [#7960](https://github.com/ClickHouse/ClickHouse/issues/7960)。[#8234](https://github.com/ClickHouse/ClickHouse/pull/8234)([tavplubix](https://github.com/tavplubix)) * 修复从 `JSONEachRow` 插入默认 `Tuple` 时出现的 “Mismatch column sizes” 错误。解决了 [#5653](https://github.com/ClickHouse/ClickHouse/issues/5653)。[#8606](https://github.com/ClickHouse/ClickHouse/pull/8606) ([tavplubix](https://github.com/tavplubix)) * 现在,如果在使用 `LIMIT BY` 时同时使用 `WITH TIES`,将会抛出异常。同时新增对在 `LIMIT BY` 中使用 `TOP` 的支持。此更改修复了 [#7472](https://github.com/ClickHouse/ClickHouse/issues/7472)。[#7637](https://github.com/ClickHouse/ClickHouse/pull/7637)([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) -* 修复 `clickhouse-odbc-bridge` 二进制文件中对较新版本 glibc 的意外依赖。[#8046](https://github.com/ClickHouse/ClickHouse/pull/8046) ([Amos Bird](https://github.com/amosbird)) -* 修复 `*MergeTree` 引擎族中 check 函数的缺陷。现在在最后一个 granule 与最后一个(非 final)mark 中的行数相等时,校验不会再失败。[#8047](https://github.com/ClickHouse/ClickHouse/pull/8047) ([alesapin](https://github.com/alesapin)) -* 修复在执行 `ALTER` 查询后,当底层数值类型与表中指定类型相同时向 `Enum*` 列插入数据的问题。此修复解决了 [#7836](https://github.com/ClickHouse/ClickHouse/issues/7836)。[#7908](https://github.com/ClickHouse/ClickHouse/pull/7908)([Anton Popov](https://github.com/CurtizJ)) +* 修复 `clickhouse-odbc-bridge` 二进制文件中对较新版本的 glibc 的意外依赖。[#8046](https://github.com/ClickHouse/ClickHouse/pull/8046) ([Amos Bird](https://github.com/amosbird)) +* 修复 `*MergeTree` 表引擎系列中检查函数的 bug。现在,当最后一个 granule 与最后一个(非 FINAL)mark 中的行数相等时,检查不会再失败。[#8047](https://github.com/ClickHouse/ClickHouse/pull/8047) ([alesapin](https://github.com/alesapin)) +* 修复在执行 `ALTER` 查询后,当底层数值类型与表中指定的类型相同时向 `Enum*` 列插入数据的问题。此修复解决了 [#7836](https://github.com/ClickHouse/ClickHouse/issues/7836)。[#7908](https://github.com/ClickHouse/ClickHouse/pull/7908)([Anton Popov](https://github.com/CurtizJ)) * 允许在函数 `substring` 中使用非常量的负数 `size` 参数。此前由于疏忽而被错误地禁止。本更改修复了 [#4832](https://github.com/ClickHouse/ClickHouse/issues/4832)。[#7703](https://github.com/ClickHouse/ClickHouse/pull/7703) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 修复在向 `(O|J)DBC` 表引擎传递错误个数的参数时出现的解析错误。 [#7709](https://github.com/ClickHouse/ClickHouse/pull/7709) ([alesapin](https://github.com/alesapin)) +* 修复在向 `(O|J)DBC` 表引擎传递参数个数不正确时出现的解析错误。 [#7709](https://github.com/ClickHouse/ClickHouse/pull/7709) ([alesapin](https://github.com/alesapin)) * 在向 syslog 发送日志时,使用正在运行的 clickhouse 进程的命令名称。在之前的版本中,会使用空字符串作为命令名称。 [#8460](https://github.com/ClickHouse/ClickHouse/pull/8460) ([Michael Nacharov](https://github.com/mnach)) * 修复对 `localhost` 的允许主机检查。本 PR 修复了在 [#8241](https://github.com/ClickHouse/ClickHouse/pull/8241) 中提供的解决方案。[#8342](https://github.com/ClickHouse/ClickHouse/pull/8342)([Vitaly Baranov](https://github.com/vitlibar)) * 修复了在处理长字符串参数时,当 `argMin` 和 `argMax` 函数的结果被用于 `runningAccumulate` 函数时极少发生的崩溃问题。此修复对应 [#8325](https://github.com/ClickHouse/ClickHouse/issues/8325) [#8341](https://github.com/ClickHouse/ClickHouse/pull/8341)([dinosaur](https://github.com/769344359)) -* 修复使用 `Buffer` 引擎的表的内存过度分配问题。 [#8345](https://github.com/ClickHouse/ClickHouse/pull/8345) ([Azat Khuzhin](https://github.com/azat)) -* 修复了这样一类函数中的潜在缺陷:可以将 `NULL` 作为某个参数传入,但返回值为非 `NULL`。 [#8196](https://github.com/ClickHouse/ClickHouse/pull/8196) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 改进了后台进程线程池中 `MergeTree` 表引擎的指标计算。[#8194](https://github.com/ClickHouse/ClickHouse/pull/8194) ([Vladimir Chebotarev](https://github.com/excitoon)) -* 在存在行级表过滤器时,修复 `WHERE` 子句中 `IN` 函数的行为。修复了 [#6687](https://github.com/ClickHouse/ClickHouse/issues/6687) [#8357](https://github.com/ClickHouse/ClickHouse/pull/8357)([Ivan](https://github.com/abyss7)) -* 现在,如果设置中的整型值未被完整解析,将抛出异常。 [#7678](https://github.com/ClickHouse/ClickHouse/pull/7678) ([Mikhail Korotov](https://github.com/millb)) -* 修复在查询包含两个以上本地分片的分布式表且使用聚合函数时出现的异常。[#8164](https://github.com/ClickHouse/ClickHouse/pull/8164) ([小路](https://github.com/nicelulu)) +* 修复使用 `Buffer` 引擎的表的内存超分配问题。 [#8345](https://github.com/ClickHouse/ClickHouse/pull/8345) ([Azat Khuzhin](https://github.com/azat)) +* 修复了这样一类函数中的潜在缺陷:可以将 `NULL` 作为某个参数传入,但返回非 `NULL` 值。 [#8196](https://github.com/ClickHouse/ClickHouse/pull/8196) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 改进了 `MergeTree` 表引擎后台进程线程池的指标统计。[#8194](https://github.com/ClickHouse/ClickHouse/pull/8194) ([Vladimir Chebotarev](https://github.com/excitoon)) +* 在存在行级表过滤器时,修复 `WHERE` 子句中 `IN` 函数的问题。修复了 [#6687](https://github.com/ClickHouse/ClickHouse/issues/6687) [#8357](https://github.com/ClickHouse/ClickHouse/pull/8357)([Ivan](https://github.com/abyss7)) +* 现在,如果设置项中的整数值未被完整解析,将抛出异常。 [#7678](https://github.com/ClickHouse/ClickHouse/pull/7678) ([Mikhail Korotov](https://github.com/millb)) +* 修复在对包含两个以上本地分片的分布式表进行查询且使用聚合函数时抛出的异常。[#8164](https://github.com/ClickHouse/ClickHouse/pull/8164) ([小路](https://github.com/nicelulu)) * 现在 Bloom 过滤器可以处理零长度数组,并且避免了冗余计算。[#8242](https://github.com/ClickHouse/ClickHouse/pull/8242) ([achimbab](https://github.com/achimbab)) -* 修复了通过将客户端主机与 `users.xml` 中指定的 `host_regexp` 进行匹配来检查其是否被允许的逻辑。[#8241](https://github.com/ClickHouse/ClickHouse/pull/8241) ([Vitaly Baranov](https://github.com/vitlibar)) -* 放宽对含糊列的检查,以避免在存在多个 `JOIN ON` 子句时产生误报。[#8385](https://github.com/ClickHouse/ClickHouse/pull/8385) ([Artem Zuikov](https://github.com/4ertus2)) -* 修复了在以下情况下可能发生的服务器崩溃(`std::terminate`):当服务器无法以 `JSON` 或 `XML` 格式发送或写入 `String` 数据类型(需要进行 `UTF-8` 校验)的值时,或在使用 Brotli 算法压缩结果数据时,以及在某些其他罕见情况下发生的崩溃。修复了 [#7603](https://github.com/ClickHouse/ClickHouse/issues/7603) [#8384](https://github.com/ClickHouse/ClickHouse/pull/8384)([alexey-milovidov](https://github.com/alexey-milovidov)) -* 修复 CI 发现的 `StorageDistributedDirectoryMonitor` 中的竞态条件,修复了 [#8364](https://github.com/ClickHouse/ClickHouse/issues/8364)。[#8383](https://github.com/ClickHouse/ClickHouse/pull/8383)([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* 修复了通过将客户端主机与 `users.xml` 中指定的 `host_regexp` 进行匹配来检查是否允许该客户端主机的逻辑。[#8241](https://github.com/ClickHouse/ClickHouse/pull/8241) ([Vitaly Baranov](https://github.com/vitlibar)) +* 放宽列歧义检查,以避免在存在多个 `JOIN ON` 子句时产生误报。[#8385](https://github.com/ClickHouse/ClickHouse/pull/8385) ([Artem Zuikov](https://github.com/4ertus2)) +* 修复了在以下情况下可能发生的服务器崩溃(`std::terminate`):当服务器无法以 `JSON` 或 `XML` 格式发送或写入需要进行 `UTF-8` 校验的 `String` 类型值时,或在使用 Brotli 算法压缩结果数据时,以及在某些其他罕见情况下。修复了 [#7603](https://github.com/ClickHouse/ClickHouse/issues/7603) [#8384](https://github.com/ClickHouse/ClickHouse/pull/8384)([alexey-milovidov](https://github.com/alexey-milovidov)) +* 修复 CI 检测到的 `StorageDistributedDirectoryMonitor` 中的竞争条件。解决了 [#8364](https://github.com/ClickHouse/ClickHouse/issues/8364)。[#8383](https://github.com/ClickHouse/ClickHouse/pull/8383)([Nikolai Kochetov](https://github.com/KochetovNicolai)) * 现在,`*MergeTree` 表引擎系列中的后台合并操作可以更加准确地遵循存储策略中各卷的顺序。[#8549](https://github.com/ClickHouse/ClickHouse/pull/8549) ([Vladimir Chebotarev](https://github.com/excitoon)) * 现在表引擎 `Kafka` 已能与 `Native` 格式正常配合使用。此更改修复了 [#6731](https://github.com/ClickHouse/ClickHouse/issues/6731) [#7337](https://github.com/ClickHouse/ClickHouse/issues/7337) [#8003](https://github.com/ClickHouse/ClickHouse/issues/8003)。[#8016](https://github.com/ClickHouse/ClickHouse/pull/8016)([filimonov](https://github.com/filimonov)) -* 修复了带有表头的固定格式(如 `CSVWithNames`)在用于表引擎 `Kafka` 时会抛出 EOF(文件结束)异常的问题。[#8016](https://github.com/ClickHouse/ClickHouse/pull/8016) ([filimonov](https://github.com/filimonov)) -* 修复了在 `IN` 子句右侧从子查询创建集合时的一个错误。此修复解决了 [#5767](https://github.com/ClickHouse/ClickHouse/issues/5767) 和 [#2542](https://github.com/ClickHouse/ClickHouse/issues/2542)。[#7755](https://github.com/ClickHouse/ClickHouse/pull/7755)([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) +* 修复了带有表头的格式(如 `CSVWithNames`)在表引擎 `Kafka` 中使用时会抛出 EOF(文件结束)异常的问题。[#8016](https://github.com/ClickHouse/ClickHouse/pull/8016) ([filimonov](https://github.com/filimonov)) +* 修复了在 `IN` 子句右侧从子查询创建 Set 时的一个错误。此修复解决了 [#5767](https://github.com/ClickHouse/ClickHouse/issues/5767) 和 [#2542](https://github.com/ClickHouse/ClickHouse/issues/2542)。[#7755](https://github.com/ClickHouse/ClickHouse/pull/7755)([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) * 修复从 `File` 存储引擎读取时可能发生的崩溃。 [#7756](https://github.com/ClickHouse/ClickHouse/pull/7756) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * 修复了读取包含 `list` 类型列的 `Parquet` 格式文件时的问题。[#8334](https://github.com/ClickHouse/ClickHouse/pull/8334) ([maxulan](https://github.com/maxulan)) * 修复当 `max_parallel_replicas > 1` 且 `PREWHERE` 条件依赖 sampling key 时,分布式查询出现 `Not found column` 错误的问题。 [#7913](https://github.com/ClickHouse/ClickHouse/pull/7913) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* 修复当查询中使用依赖于表别名的 `PREWHERE` 且由于主键条件导致结果集为空时出现的 `Not found column` 错误。 [#7911](https://github.com/ClickHouse/ClickHouse/pull/7911) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* 修复当查询中使用其条件依赖于表别名的 `PREWHERE` 子句且由于主键条件导致结果集为空时出现的 `Not found column` 错误。 [#7911](https://github.com/ClickHouse/ClickHouse/pull/7911) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * 当参数为 `Nullable` 时,修正了函数 `rand` 和 `randConstant` 的返回类型。现在这些函数始终返回 `UInt32`,且绝不会返回 `Nullable(UInt32)`。[#8204](https://github.com/ClickHouse/ClickHouse/pull/8204) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * 禁用了用于 `WITH FILL` 表达式的谓词下推。这修复了 [#7784](https://github.com/ClickHouse/ClickHouse/issues/7784)。[#7789](https://github.com/ClickHouse/ClickHouse/pull/7789)([Winter Zhang](https://github.com/zhang2014)) * 修复了在使用 `FINAL` 子句时,`SummingMergeTree` 的 `count()` 结果不正确的问题。 [#3280](https://github.com/ClickHouse/ClickHouse/issues/3280) [#7786](https://github.com/ClickHouse/ClickHouse/pull/7786) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) -* 修复了来自远程服务器的常量函数可能产生不正确结果的问题。该问题出现在使用 `version()`、`uptime()` 等函数的查询中,这些函数在不同服务器上会返回不同的常量值。此更改修复了 [#7666](https://github.com/ClickHouse/ClickHouse/issues/7666)。[#7689](https://github.com/ClickHouse/ClickHouse/pull/7689)([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* 修复了下推谓词优化中的一个复杂 bug,该 bug 会导致结果不正确。此次修复解决了许多与下推谓词优化相关的问题。 [#8503](https://github.com/ClickHouse/ClickHouse/pull/8503) ([Winter Zhang](https://github.com/zhang2014)) +* 修复了来自远程服务器的常量函数可能产生不正确结果的问题。该问题出现在包含 `version()`、`uptime()` 等函数的查询中,这些函数在不同服务器上会返回不同的常量值。此更改修复了 [#7666](https://github.com/ClickHouse/ClickHouse/issues/7666)。[#7689](https://github.com/ClickHouse/ClickHouse/pull/7689)([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* 修复了下推谓词优化中的一个复杂 bug,该 bug 会导致结果错误。此次修复解决了许多与下推谓词优化相关的问题。 [#8503](https://github.com/ClickHouse/ClickHouse/pull/8503) ([Winter Zhang](https://github.com/zhang2014)) * 修复 `CREATE TABLE .. AS dictionary` 查询导致的崩溃。 [#8508](https://github.com/ClickHouse/ClickHouse/pull/8508) ([Azat Khuzhin](https://github.com/azat)) -* 对 `.g4` 文件中的 ClickHouse 语法进行了多处改进。 [#8294](https://github.com/ClickHouse/ClickHouse/pull/8294) ([taiyang-li](https://github.com/taiyang-li)) +* 在 `.g4` 文件中对 ClickHouse 语法进行了多项改进。 [#8294](https://github.com/ClickHouse/ClickHouse/pull/8294) ([taiyang-li](https://github.com/taiyang-li)) * 修复在对使用 `Join` 引擎的表执行 `JOIN` 时导致崩溃的错误。修复了 [#7556](https://github.com/ClickHouse/ClickHouse/issues/7556) [#8254](https://github.com/ClickHouse/ClickHouse/issues/8254) [#7915](https://github.com/ClickHouse/ClickHouse/issues/7915) [#8100](https://github.com/ClickHouse/ClickHouse/issues/8100)。[#8298](https://github.com/ClickHouse/ClickHouse/pull/8298)([Artem Zuikov](https://github.com/4ertus2)) -* 修复在执行 `CREATE DATABASE` 时字典的冗余重新加载问题。 [#7916](https://github.com/ClickHouse/ClickHouse/pull/7916) ([Azat Khuzhin](https://github.com/azat)) -* 限制从 `StorageFile` 和 `StorageHDFS` 读取时的最大流数。修复 [#7650](https://github.com/ClickHouse/ClickHouse/issues/7650)。[#7981](https://github.com/ClickHouse/ClickHouse/pull/7981)([alesapin](https://github.com/alesapin)) +* 修复在执行 `CREATE DATABASE` 时字典的冗余重新加载问题。[#7916](https://github.com/ClickHouse/ClickHouse/pull/7916) ([Azat Khuzhin](https://github.com/azat)) +* 限制从 `StorageFile` 和 `StorageHDFS` 读取时的最大流数量。修复 [#7650](https://github.com/ClickHouse/ClickHouse/issues/7650)。[#7981](https://github.com/ClickHouse/ClickHouse/pull/7981)([alesapin](https://github.com/alesapin)) * 修复在 `ALTER ... MODIFY ... CODEC` 查询中,当用户同时指定默认表达式和 codec 时会触发的 bug。修复了 [8593](https://github.com/ClickHouse/ClickHouse/issues/8593)。[#8614](https://github.com/ClickHouse/ClickHouse/pull/8614)([alesapin](https://github.com/alesapin)) * 修复在后台合并 `SimpleAggregateFunction(LowCardinality)` 类型列时出现的错误。 [#8613](https://github.com/ClickHouse/ClickHouse/pull/8613) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * 修正函数 `toDateTime64` 中的类型检查。 [#8375](https://github.com/ClickHouse/ClickHouse/pull/8375) ([Vasily Nemkov](https://github.com/Enmk)) -* 现在,当在 Join 引擎中使用不受支持的 `join_use_nulls` 设置执行 `LEFT` 或 `FULL JOIN` 时,服务器不会崩溃。[#8479](https://github.com/ClickHouse/ClickHouse/pull/8479) ([Artem Zuikov](https://github.com/4ertus2)) +* 现在,当在 `Join` 引擎中使用不受支持的 `join_use_nulls` 设置执行 `LEFT` 或 `FULL JOIN` 时,服务器不会崩溃。[#8479](https://github.com/ClickHouse/ClickHouse/pull/8479) ([Artem Zuikov](https://github.com/4ertus2)) * 现在,即使 `db` 不存在,执行 `DROP DICTIONARY IF EXISTS db.dict` 查询也不会抛出异常。[#8185](https://github.com/ClickHouse/ClickHouse/pull/8185) ([Vitaly Baranov](https://github.com/vitlibar)) -* 修复由于引用已移除的 `IStorage` 对象而可能导致表函数(`file`、`mysql`、`remote`)崩溃的问题。修复在向表函数插入数据时对指定列的错误解析。 [#7762](https://github.com/ClickHouse/ClickHouse/pull/7762) ([tavplubix](https://github.com/tavplubix)) +* 修复由于对已移除的 `IStorage` 对象的引用而可能导致表函数(`file`、`mysql`、`remote`)崩溃的问题。修复在通过表函数插入数据时对指定列的解析错误。 [#7762](https://github.com/ClickHouse/ClickHouse/pull/7762) ([tavplubix](https://github.com/tavplubix)) * 在启动 `clickhouse-server` 之前,确保网络已就绪。此更改修复了 [#7507](https://github.com/ClickHouse/ClickHouse/issues/7507)。[#8570](https://github.com/ClickHouse/ClickHouse/pull/8570)([Zhichang Yu](https://github.com/yuzhichang)) * 修复安全连接的超时处理,使查询不会无限期挂起。修复了 [#8126](https://github.com/ClickHouse/ClickHouse/issues/8126)。[#8128](https://github.com/ClickHouse/ClickHouse/pull/8128) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 修复 `clickhouse-copier` 在并发 worker 之间出现的不必要争用问题。 [#7816](https://github.com/ClickHouse/ClickHouse/pull/7816) ([Ding Xiang Fei](https://github.com/dingxiangfei2009)) -* 现在,mutations 不再跳过已附加的分片,即使它们的 mutation 版本号大于当前的 mutation 版本号。[#7812](https://github.com/ClickHouse/ClickHouse/pull/7812) ([Zhichang Yu](https://github.com/yuzhichang)) [#8250](https://github.com/ClickHouse/ClickHouse/pull/8250) ([alesapin](https://github.com/alesapin)) -* 在将数据移动到另一块磁盘并重启服务器后,忽略 `*MergeTree` 数据部分的冗余副本。[#7810](https://github.com/ClickHouse/ClickHouse/pull/7810) ([Vladimir Chebotarev](https://github.com/excitoon)) +* 现在,mutation 操作不再跳过已附加的分区片段,即使它们的 mutation 版本号大于当前的 mutation 版本号。[#7812](https://github.com/ClickHouse/ClickHouse/pull/7812) ([Zhichang Yu](https://github.com/yuzhichang)) [#8250](https://github.com/ClickHouse/ClickHouse/pull/8250) ([alesapin](https://github.com/alesapin)) +* 在将 `*MergeTree` 数据分区片段迁移到另一块磁盘并重启服务器后,忽略其冗余副本。[#7810](https://github.com/ClickHouse/ClickHouse/pull/7810) ([Vladimir Chebotarev](https://github.com/excitoon)) * 修复在 `JOIN` 键中使用 `LowCardinality` 时导致 `FULL JOIN` 崩溃的问题。 [#8252](https://github.com/ClickHouse/ClickHouse/pull/8252) ([Artem Zuikov](https://github.com/4ertus2)) * 禁止在 INSERT 查询语句中多次使用相同的列名,例如 `INSERT INTO tbl (x, y, x)`。这修复了 [#5465](https://github.com/ClickHouse/ClickHouse/issues/5465)、[#7681](https://github.com/ClickHouse/ClickHouse/issues/7681)。[#7685](https://github.com/ClickHouse/ClickHouse/pull/7685)([alesapin](https://github.com/alesapin)) * 针对未知 CPU 类型,在检测物理 CPU 核心数时增加了回退机制(使用逻辑 CPU 核心数)。修复了 [#5239](https://github.com/ClickHouse/ClickHouse/issues/5239)。[#7726](https://github.com/ClickHouse/ClickHouse/pull/7726) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 修复在物化列和别名列上出现的 `There's no column` 错误。 [#8210](https://github.com/ClickHouse/ClickHouse/pull/8210) ([Artem Zuikov](https://github.com/4ertus2)) +* 修复在物化列和别名列中出现的 `There's no column` 错误。 [#8210](https://github.com/ClickHouse/ClickHouse/pull/8210) ([Artem Zuikov](https://github.com/4ertus2)) * 修复了在使用 `EXISTS` 查询且未带 `TABLE` 或 `DICTIONARY` 限定符时导致的服务器崩溃问题,比如 `EXISTS t`。此修复解决了问题 [#8172](https://github.com/ClickHouse/ClickHouse/issues/8172)。该缺陷是在 19.17 版本中引入的。 [#8213](https://github.com/ClickHouse/ClickHouse/pull/8213) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 修复在使用 `SimpleAggregateFunction` 列时可能出现的一处罕见问题,其报错信息为 `"Sizes of columns does not match"`。 [#7790](https://github.com/ClickHouse/ClickHouse/pull/7790) ([Boris Granveaud](https://github.com/bgranvea)) -* 修复了一个 bug:当用户的 `allow_databases` 为空时会被授予对所有数据库的访问权限(`allow_dictionaries` 也存在同样的问题)。[#7793](https://github.com/ClickHouse/ClickHouse/pull/7793) ([DeifyTheGod](https://github.com/DeifyTheGod)) -* 修复当服务器已与客户端断开连接时客户端发生崩溃的问题。 [#8071](https://github.com/ClickHouse/ClickHouse/pull/8071) ([Azat Khuzhin](https://github.com/azat)) +* 修复在使用 `SimpleAggregateFunction` 列时可能出现的一个罕见错误,其错误信息为 `"Sizes of columns does not match"`。 [#7790](https://github.com/ClickHouse/ClickHouse/pull/7790) ([Boris Granveaud](https://github.com/bgranvea)) +* 修复一个 bug:当用户的 `allow_databases` 为空时会被错误授予对所有数据库的访问权限(`allow_dictionaries` 也存在同样的问题)。[#7793](https://github.com/ClickHouse/ClickHouse/pull/7793) ([DeifyTheGod](https://github.com/DeifyTheGod)) +* 修复在服务器已与客户端断开连接后客户端发生崩溃的问题。 [#8071](https://github.com/ClickHouse/ClickHouse/pull/8071) ([Azat Khuzhin](https://github.com/azat)) * 修复在按主键前缀和非主键后缀列排序时的 `ORDER BY` 行为。 [#7759](https://github.com/ClickHouse/ClickHouse/pull/7759) ([Anton Popov](https://github.com/CurtizJ)) * 检查表中是否存在带限定符的列。这修复了 [#6836](https://github.com/ClickHouse/ClickHouse/issues/6836)。[#7758](https://github.com/ClickHouse/ClickHouse/pull/7758) ([Artem Zuikov](https://github.com/4ertus2)) -* 修复了在合并完成后立即运行 `ALTER MOVE` 时的行为问题,该操作会错误地移动指定分区的超级分区。修复了 [#8103](https://github.com/ClickHouse/ClickHouse/issues/8103)。[#8104](https://github.com/ClickHouse/ClickHouse/pull/8104)([Vladimir Chebotarev](https://github.com/excitoon)) +* 修复了在合并完成后立即运行 `ALTER MOVE` 时的行为问题,该操作会错误地移动指定部分的 superpart。修复了 [#8103](https://github.com/ClickHouse/ClickHouse/issues/8103)。[#8104](https://github.com/ClickHouse/ClickHouse/pull/8104)([Vladimir Chebotarev](https://github.com/excitoon)) * 修复在使用列数不同的 `UNION` 时可能导致的服务器崩溃问题。解决了 [#7279](https://github.com/ClickHouse/ClickHouse/issues/7279)。[#7929](https://github.com/ClickHouse/ClickHouse/pull/7929)([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* 修复函数 `substr` 在长度参数为负数时返回子串的长度计算。 [#8589](https://github.com/ClickHouse/ClickHouse/pull/8589) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* 现在,当后台线程池中没有足够的空闲线程时,服务器将不再在 `MergeTree` 中执行分片变更操作。 [#8588](https://github.com/ClickHouse/ClickHouse/pull/8588) ([tavplubix](https://github.com/tavplubix)) -* 修复 `UNION ALL` AST 格式化中的一个小错误。 [#7999](https://github.com/ClickHouse/ClickHouse/pull/7999) ([litao91](https://github.com/litao91)) +* 修复函数 `substr` 在长度参数为负数时计算结果子串长度的方式。 [#8589](https://github.com/ClickHouse/ClickHouse/pull/8589) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* 现在,如果后台线程池中没有足够的空闲线程,服务器将不会在 `MergeTree` 中执行 part mutation 操作。 [#8588](https://github.com/ClickHouse/ClickHouse/pull/8588) ([tavplubix](https://github.com/tavplubix)) +* 修正 `UNION ALL` AST 格式化中的一个小拼写错误。 [#7999](https://github.com/ClickHouse/ClickHouse/pull/7999) ([litao91](https://github.com/litao91)) * 修复了针对负数的布隆过滤器(Bloom Filter)结果错误。修复了 [#8317](https://github.com/ClickHouse/ClickHouse/issues/8317)。[#8566](https://github.com/ClickHouse/ClickHouse/pull/8566) ([Winter Zhang](https://github.com/zhang2014)) * 修复了 `decompress` 中潜在的缓冲区溢出漏洞。恶意用户可以传入伪造的压缩数据,从而导致越界读取。该问题由 Yandex 信息安全团队的 Eldar Zaitov 发现。[#8404](https://github.com/ClickHouse/ClickHouse/pull/8404) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 修复 `arrayIntersect` 中因整数溢出产生的错误结果。 [#7777](https://github.com/ClickHouse/ClickHouse/pull/7777) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * 现在,`OPTIMIZE TABLE` 查询在执行该操作时不会等待离线副本。 [#8314](https://github.com/ClickHouse/ClickHouse/pull/8314) ([javi santana](https://github.com/javisantana)) * 修复了用于 `Replicated*MergeTree` 表的 `ALTER TTL` 解析器。[#8318](https://github.com/ClickHouse/ClickHouse/pull/8318) ([Vladimir Chebotarev](https://github.com/excitoon)) -* 修复服务器与客户端之间的通信,使服务器在查询失败后能够读取临时表的信息。 [#8084](https://github.com/ClickHouse/ClickHouse/pull/8084) ([Azat Khuzhin](https://github.com/azat)) -* 修复在聚合 bitmap 与标量 bitmap 之间执行交集运算时出现的 `bitmapAnd` 函数错误。[#8082](https://github.com/ClickHouse/ClickHouse/pull/8082) ([Yue Huang](https://github.com/moon03432)) -* 根据 ZooKeeper《Programmer's Guide》完善 `ZXid` 的定义,以修复 `clickhouse-cluster-copier` 中的 bug。[#8088](https://github.com/ClickHouse/ClickHouse/pull/8088) ([Ding Xiang Fei](https://github.com/dingxiangfei2009)) +* 修复服务器与客户端之间的通信,以便服务器在查询失败后仍能读取临时表的信息。 [#8084](https://github.com/ClickHouse/ClickHouse/pull/8084) ([Azat Khuzhin](https://github.com/azat)) +* 修复在聚合 bitmap 与标量 bitmap 之间求交集时出现的 `bitmapAnd` 函数错误。[#8082](https://github.com/ClickHouse/ClickHouse/pull/8082) ([Yue Huang](https://github.com/moon03432)) +* 根据 ZooKeeper 的《Programmer's Guide》细化 `ZXid` 的定义,从而修复 `clickhouse-cluster-copier` 中的 bug。[#8088](https://github.com/ClickHouse/ClickHouse/pull/8088) ([Ding Xiang Fei](https://github.com/dingxiangfei2009)) * `odbc` 表函数现在会遵循 `external_table_functions_use_nulls` 设置。 [#7506](https://github.com/ClickHouse/ClickHouse/pull/7506) ([Vasily Nemkov](https://github.com/Enmk)) * 修复了导致罕见数据竞争的错误。 [#8143](https://github.com/ClickHouse/ClickHouse/pull/8143) ([Alexander Kazakov](https://github.com/Akazz)) * 现在 `SYSTEM RELOAD DICTIONARY` 会完全重新加载字典,并忽略 `update_field`。修复了 [#7440](https://github.com/ClickHouse/ClickHouse/issues/7440)。[#8037](https://github.com/ClickHouse/ClickHouse/pull/8037)([Vitaly Baranov](https://github.com/vitlibar)) @@ -3348,73 +3339,69 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor * 恢复对所有 ICU 区域设置的支持,并新增对常量表达式应用排序规则的支持。同时在 `system.collations` 表中新增语言名称列。[#8051](https://github.com/ClickHouse/ClickHouse/pull/8051) ([alesapin](https://github.com/alesapin)) * 修复当外部字典的最小存活时间为零(`LIFETIME(MIN 0 MAX N)`、`LIFETIME(N)`)时无法在后台更新的问题。[#7983](https://github.com/ClickHouse/ClickHouse/pull/7983) ([alesapin](https://github.com/alesapin)) * 修复使用 ClickHouse 作为数据源的外部字典在查询中包含子查询时的崩溃问题。[#8351](https://github.com/ClickHouse/ClickHouse/pull/8351) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* 修复在使用 `URL` 引擎的表中对文件扩展名的错误解析,从而修复了 [#8157](https://github.com/ClickHouse/ClickHouse/issues/8157)。[#8419](https://github.com/ClickHouse/ClickHouse/pull/8419)([Andrey Bodrov](https://github.com/apbodrov)) -* 修复针对无主键的 `*MergeTree` 表的 `CHECK TABLE` 查询。修复 [#7543](https://github.com/ClickHouse/ClickHouse/issues/7543)。[#7979](https://github.com/ClickHouse/ClickHouse/pull/7979)([alesapin](https://github.com/alesapin)) +* 修复 `URL` 引擎表中文件扩展名的错误解析,这修复了 [#8157](https://github.com/ClickHouse/ClickHouse/issues/8157)。[#8419](https://github.com/ClickHouse/ClickHouse/pull/8419)([Andrey Bodrov](https://github.com/apbodrov)) +* 修复针对无主键的 `*MergeTree` 表的 `CHECK TABLE` 查询。修复 [#7543](https://github.com/ClickHouse/ClickHouse/issues/7543)。 [#7979](https://github.com/ClickHouse/ClickHouse/pull/7979)([alesapin](https://github.com/alesapin)) * 修正了将 `Float64` 转换为 MySQL 类型的逻辑。[#8079](https://github.com/ClickHouse/ClickHouse/pull/8079) ([Yuriy Baranov](https://github.com/yurriy)) * 现在,如果由于服务器崩溃导致表未被完全删除,服务器会尝试恢复并加载该表。 [#8176](https://github.com/ClickHouse/ClickHouse/pull/8176) ([tavplubix](https://github.com/tavplubix)) -* 修复了在向不存在的文件中插入数据时,表函数 `file` 崩溃的问题。现在在此情况下,会先创建该文件,然后再执行插入操作。[#8177](https://github.com/ClickHouse/ClickHouse/pull/8177) ([Olga Khvostikova](https://github.com/stavrolia)) +* 修复了在向不存在的文件中插入数据时,表函数 `file` 崩溃的问题。在这种情况下,现在会先创建该文件,然后再执行插入操作。[#8177](https://github.com/ClickHouse/ClickHouse/pull/8177) ([Olga Khvostikova](https://github.com/stavrolia)) * 修复在启用 `trace_log` 时可能发生的罕见死锁。[#7838](https://github.com/ClickHouse/ClickHouse/pull/7838) ([filimonov](https://github.com/filimonov)) -* 为通过 DDL 查询创建的 `RangeHashed` 外部字典新增对除 `Date` 之外其他类型的支持。修复 [7899](https://github.com/ClickHouse/ClickHouse/issues/7899)。 [#8275](https://github.com/ClickHouse/ClickHouse/pull/8275) ([alesapin](https://github.com/alesapin)) +* 为通过 DDL 查询创建的 `RangeHashed` 外部字典新增对 `Date` 以外其他类型的支持。修复 [7899](https://github.com/ClickHouse/ClickHouse/issues/7899)。 [#8275](https://github.com/ClickHouse/ClickHouse/pull/8275) ([alesapin](https://github.com/alesapin)) * 修复了在使用另一个函数的结果调用 `now64()` 时发生的崩溃。[#8270](https://github.com/ClickHouse/ClickHouse/pull/8270) ([Vasily Nemkov](https://github.com/Enmk)) -* 修复了通过 MySQL 线协议建立的连接中检测客户端 IP 的问题。[#7743](https://github.com/ClickHouse/ClickHouse/pull/7743) ([Dmitry Muzyka](https://github.com/dmitriy-myz)) +* 修复了通过 MySQL wire 协议建立的连接无法正确检测客户端 IP 的问题。[#7743](https://github.com/ClickHouse/ClickHouse/pull/7743) ([Dmitry Muzyka](https://github.com/dmitriy-myz)) * 修复 `arraySplit` 函数对空数组的处理。该修复解决了 [#7708](https://github.com/ClickHouse/ClickHouse/issues/7708)。[#7747](https://github.com/ClickHouse/ClickHouse/pull/7747)([hcz](https://github.com/hczhcz)) -* 修复了正在运行的其他 `clickhouse-server` 的 `pid-file` 可能被删除的问题。 [#8487](https://github.com/ClickHouse/ClickHouse/pull/8487) ([Weiqing Xu](https://github.com/weiqxu)) -* 修复包含 `invalidate_query` 的字典在重新加载时的问题,该问题会导致更新停止,并在之前的更新尝试中抛出异常。 [#8029](https://github.com/ClickHouse/ClickHouse/pull/8029) ([alesapin](https://github.com/alesapin)) -* 修复了函数 `arrayReduce` 中可能导致“double free”的错误,以及聚合函数组合器 `Resample` 中可能导致内存泄漏的错误。新增聚合函数 `aggThrow`,可用于测试。 [#8446](https://github.com/ClickHouse/ClickHouse/pull/8446) ([alexey-milovidov](https://github.com/alexey-milovidov)) - - +* 修复了其他正在运行的 `clickhouse-server` 的 `pid-file` 可能被删除的问题。 [#8487](https://github.com/ClickHouse/ClickHouse/pull/8487) ([Weiqing Xu](https://github.com/weiqxu)) +* 修复包含 `invalidate_query` 的字典在重新加载时的问题,该问题会导致更新停止,并在之前的更新尝试中抛出一些异常。[#8029](https://github.com/ClickHouse/ClickHouse/pull/8029) ([alesapin](https://github.com/alesapin)) +* 修复了函数 `arrayReduce` 中可能导致“double free”的错误,以及聚合函数组合器 `Resample` 中可能导致内存泄漏的错误。新增聚合函数 `aggThrow`,可用于测试目的。 [#8446](https://github.com/ClickHouse/ClickHouse/pull/8446) ([alexey-milovidov](https://github.com/alexey-milovidov)) #### 改进 {#improvement-22} * 改进了在使用 `S3` 表引擎时的日志记录。 [#8251](https://github.com/ClickHouse/ClickHouse/pull/8251) ([Grigory Pervakov](https://github.com/GrigoryPervakov)) * 在调用 `clickhouse-local` 且未传入任何参数时打印帮助信息。此更改修复了 [#5335](https://github.com/ClickHouse/ClickHouse/issues/5335)。[#8230](https://github.com/ClickHouse/ClickHouse/pull/8230)([Andrey Nagorny](https://github.com/Melancholic)) -* 新增设置 `mutations_sync`,用于以同步方式等待 `ALTER UPDATE/DELETE` 查询执行完成。 [#8237](https://github.com/ClickHouse/ClickHouse/pull/8237) ([alesapin](https://github.com/alesapin)) -* 允许在 `config.xml` 中将 `user_files_path` 设置为相对路径(其方式类似于 `format_schema_path`)。[#7632](https://github.com/ClickHouse/ClickHouse/pull/7632) ([hcz](https://github.com/hczhcz)) -* 为带有 `-OrZero` 后缀的转换函数添加针对非法类型的异常处理。[#7880](https://github.com/ClickHouse/ClickHouse/pull/7880) ([Andrey Konyaev](https://github.com/akonyaev90)) -* 简化分布式查询中数据发送到分片时的头部格式。 [#8044](https://github.com/ClickHouse/ClickHouse/pull/8044) ([Vitaly Baranov](https://github.com/vitlibar)) -* `Live View` 表引擎重构。 [#8519](https://github.com/ClickHouse/ClickHouse/pull/8519) ([vzakaznikov](https://github.com/vzakaznikov)) +* 新增设置 `mutations_sync`,用于同步等待 `ALTER UPDATE/DELETE` 查询执行完成。 [#8237](https://github.com/ClickHouse/ClickHouse/pull/8237) ([alesapin](https://github.com/alesapin)) +* 允许在 `config.xml` 中将 `user_files_path` 设置为相对路径(方式类似于 `format_schema_path`)。[#7632](https://github.com/ClickHouse/ClickHouse/pull/7632) ([hcz](https://github.com/hczhcz)) +* 为带有 `-OrZero` 后缀的转换函数在遇到非法类型时抛出异常。[#7880](https://github.com/ClickHouse/ClickHouse/pull/7880) ([Andrey Konyaev](https://github.com/akonyaev90)) +* 简化分布式查询向分片发送数据时的数据头格式。 [#8044](https://github.com/ClickHouse/ClickHouse/pull/8044) ([Vitaly Baranov](https://github.com/vitlibar)) +* `Live View` 表引擎进行了重构。 [#8519](https://github.com/ClickHouse/ClickHouse/pull/8519) ([vzakaznikov](https://github.com/vzakaznikov)) * 为基于 DDL 查询创建的外部字典添加额外检查。 [#8127](https://github.com/ClickHouse/ClickHouse/pull/8127) ([alesapin](https://github.com/alesapin)) * 修复在同时使用 `FINAL` 和 `SAMPLE` 时出现的错误 `Column ... already exists`,例如 `select count() from table final sample 1/2`。修复了 [#5186](https://github.com/ClickHouse/ClickHouse/issues/5186)。[#7907](https://github.com/ClickHouse/ClickHouse/pull/7907) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* 现在 `joinGet` 函数的第一个参数可以使用表标识符。 [#7707](https://github.com/ClickHouse/ClickHouse/pull/7707) ([Amos Bird](https://github.com/amosbird)) -* 允许在作用于 `Kafka` 表的子查询中使用 `MaterializedView`。 [#8197](https://github.com/ClickHouse/ClickHouse/pull/8197) ([filimonov](https://github.com/filimonov)) +* 现在 `joinGet` 函数的第一个参数可以为表标识符。 [#7707](https://github.com/ClickHouse/ClickHouse/pull/7707) ([Amos Bird](https://github.com/amosbird)) +* 允许在基于 `Kafka` 表的子查询中使用 `MaterializedView`。 [#8197](https://github.com/ClickHouse/ClickHouse/pull/8197) ([filimonov](https://github.com/filimonov)) * 现在,在磁盘之间移动数据的后台任务在单独的线程池中运行。 [#7670](https://github.com/ClickHouse/ClickHouse/pull/7670) ([Vladimir Chebotarev](https://github.com/excitoon)) -* `SYSTEM RELOAD DICTIONARY` 现在同步执行。 [#8240](https://github.com/ClickHouse/ClickHouse/pull/8240) ([Vitaly Baranov](https://github.com/vitlibar)) +* `SYSTEM RELOAD DICTIONARY` 现在以同步方式执行。 [#8240](https://github.com/ClickHouse/ClickHouse/pull/8240) ([Vitaly Baranov](https://github.com/vitlibar)) * 现在堆栈跟踪显示的是物理地址(在对象文件中的偏移量),而不是虚拟内存地址(对象文件被加载到的地址)。这使得在二进制为位置无关且启用了 ASLR 时可以使用 `addr2line`。这修复了 [#8360](https://github.com/ClickHouse/ClickHouse/issues/8360)。[#8387](https://github.com/ClickHouse/ClickHouse/pull/8387) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 为行级安全过滤器添加新语法支持:`
    ...
    `。修复 [#5779](https://github.com/ClickHouse/ClickHouse/issues/5779)。[#8381](https://github.com/ClickHouse/ClickHouse/pull/8381) ([Ivan](https://github.com/abyss7)) * 现在 `cityHash` 函数可以处理 `Decimal` 和 `UUID` 类型。修复了 [#5184](https://github.com/ClickHouse/ClickHouse/issues/5184)。[#7693](https://github.com/ClickHouse/ClickHouse/pull/7693)([Mikhail Korotov](https://github.com/millb)) -* 从 system logs 表中移除了固定的索引粒度(此前为 1024),因为在实现自适应粒度后已不再需要。 [#7698](https://github.com/ClickHouse/ClickHouse/pull/7698) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 当 ClickHouse 在未启用 SSL 的情况下编译时,也启用 MySQL 兼容服务器。 [#7852](https://github.com/ClickHouse/ClickHouse/pull/7852) ([Yuriy Baranov](https://github.com/yurriy)) -* 现在服务器会对分布式数据批次进行校验和检查,这样在批次数据损坏时可以提供更加详细的错误信息。 [#7914](https://github.com/ClickHouse/ClickHouse/pull/7914) ([Azat Khuzhin](https://github.com/azat)) +* 从 system logs 表中移除了固定的索引粒度(此前为 1024),因为在实现自适应粒度后这一设置已过时。 [#7698](https://github.com/ClickHouse/ClickHouse/pull/7698) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 当 ClickHouse 在未启用 SSL 的情况下编译时,启用 MySQL 兼容服务器。 [#7852](https://github.com/ClickHouse/ClickHouse/pull/7852) ([Yuriy Baranov](https://github.com/yurriy)) +* 现在服务器会对分布式数据批次进行校验和检查,从而在批次数据损坏时提供更详细的错误信息。 [#7914](https://github.com/ClickHouse/ClickHouse/pull/7914) ([Azat Khuzhin](https://github.com/azat)) * 为 `MySQL` 数据库引擎添加对 `DROP DATABASE`、`DETACH TABLE`、`DROP TABLE` 和 `ATTACH TABLE` 的支持。[#8202](https://github.com/ClickHouse/ClickHouse/pull/8202) ([Winter Zhang](https://github.com/zhang2014)) * 在 S3 表函数和表引擎中添加身份验证。 [#7623](https://github.com/ClickHouse/ClickHouse/pull/7623) ([Vladimir Chebotarev](https://github.com/excitoon)) -* 为位于不同磁盘上的 `MergeTree` 额外数据分片增加了检查,以避免在未定义的磁盘上丢失数据分片。 [#8118](https://github.com/ClickHouse/ClickHouse/pull/8118) ([Vladimir Chebotarev](https://github.com/excitoon)) -* 为 Mac 客户端和服务器启用 SSL 支持。[#8297](https://github.com/ClickHouse/ClickHouse/pull/8297) ([Ivan](https://github.com/abyss7)) -* 现在 ClickHouse 可以充当 MySQL federated server(参见 [https://dev.mysql.com/doc/refman/5.7/en/federated-create-server.html](https://dev.mysql.com/doc/refman/5.7/en/federated-create-server.html))。[#7717](https://github.com/ClickHouse/ClickHouse/pull/7717)([Maxim Fedotov](https://github.com/MaxFedotov)) +* 为位于不同磁盘上的 `MergeTree` 额外分区片段增加了检查,以避免在未定义的磁盘上遗漏数据分区片段。 [#8118](https://github.com/ClickHouse/ClickHouse/pull/8118) ([Vladimir Chebotarev](https://github.com/excitoon)) +* 为 Mac 客户端和服务器启用 SSL 支持。 [#8297](https://github.com/ClickHouse/ClickHouse/pull/8297) ([Ivan](https://github.com/abyss7)) +* 现在 ClickHouse 可以作为 MySQL federated server 工作(参见 [https://dev.mysql.com/doc/refman/5.7/en/federated-create-server.html](https://dev.mysql.com/doc/refman/5.7/en/federated-create-server.html))。[#7717](https://github.com/ClickHouse/ClickHouse/pull/7717)([Maxim Fedotov](https://github.com/MaxFedotov)) * `clickhouse-client` 现在仅在 multiquery 开启且 multiline 关闭时才启用 `bracketed-paste`。这修复了 [#7757](https://github.com/ClickHouse/ClickHouse/issues/7757)。[#7761](https://github.com/ClickHouse/ClickHouse/pull/7761)([Amos Bird](https://github.com/amosbird)) * 在 `if` 函数中支持 `Array(Decimal)`。 [#7721](https://github.com/ClickHouse/ClickHouse/pull/7721) ([Artem Zuikov](https://github.com/4ertus2)) -* 为 `arrayDifference`、`arrayCumSum` 和 `arrayCumSumNegative` 函数新增对 Decimal 类型的支持。 [#7724](https://github.com/ClickHouse/ClickHouse/pull/7724) ([Artem Zuikov](https://github.com/4ertus2)) +* 为 `arrayDifference`、`arrayCumSum` 和 `arrayCumSumNegative` 函数新增对 `Decimal` 类型的支持。 [#7724](https://github.com/ClickHouse/ClickHouse/pull/7724) ([Artem Zuikov](https://github.com/4ertus2)) * 已在 `system.dictionaries` 表中添加 `lifetime` 列。 [#6820](https://github.com/ClickHouse/ClickHouse/issues/6820) [#7727](https://github.com/ClickHouse/ClickHouse/pull/7727) ([kekekekule](https://github.com/kekekekule)) -* 改进了 `*MergeTree` 表引擎对位于不同磁盘上的已有数据部分的检查。修复了 [#7660](https://github.com/ClickHouse/ClickHouse/issues/7660)。[#8440](https://github.com/ClickHouse/ClickHouse/pull/8440)([Vladimir Chebotarev](https://github.com/excitoon)) +* 改进了 `*MergeTree` 表引擎在不同磁盘上检查已有分区片段的机制。解决了 [#7660](https://github.com/ClickHouse/ClickHouse/issues/7660)。[#8440](https://github.com/ClickHouse/ClickHouse/pull/8440)([Vladimir Chebotarev](https://github.com/excitoon)) * 集成用于与 `S3` 交互的 `AWS SDK`,从而可以开箱即用地使用 S3 的全部功能。[#8011](https://github.com/ClickHouse/ClickHouse/pull/8011) ([Pavel Kovalenko](https://github.com/Jokser)) * 为 `Live View` 表添加了对子查询的支持。[#7792](https://github.com/ClickHouse/ClickHouse/pull/7792) ([vzakaznikov](https://github.com/vzakaznikov)) * 已移除对在 `TTL` 表达式中使用 `Date` 或 `DateTime` 列的检查。 [#7920](https://github.com/ClickHouse/ClickHouse/pull/7920) ([Vladimir Chebotarev](https://github.com/excitoon)) * 磁盘相关信息已添加到 `system.detached_parts` 表中。 [#7833](https://github.com/ClickHouse/ClickHouse/pull/7833) ([Vladimir Chebotarev](https://github.com/excitoon)) * 现在可以在无需重启的情况下修改 `max_(table|partition)_size_to_drop` 设置。[#7779](https://github.com/ClickHouse/ClickHouse/pull/7779) ([Grigory Pervakov](https://github.com/GrigoryPervakov)) -* 错误信息的易用性略有改善。请用户不要删除 `Stack trace:` 下方的行。[#7897](https://github.com/ClickHouse/ClickHouse/pull/7897) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 错误信息的使用体验略有改善。提醒用户不要删除 `Stack trace:` 下方的行。[#7897](https://github.com/ClickHouse/ClickHouse/pull/7897) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 改进了在 [#7935](https://github.com/ClickHouse/ClickHouse/issues/7935) 之后以多种格式从 `Kafka` 引擎读取消息的能力。[#8035](https://github.com/ClickHouse/ClickHouse/pull/8035)([Ivan](https://github.com/abyss7)) * 进一步提升了对不支持 `sha2_password` 认证插件的 MySQL 客户端的兼容性。[#8036](https://github.com/ClickHouse/ClickHouse/pull/8036) ([Yuriy Baranov](https://github.com/yurriy)) * MySQL 兼容服务器现在支持更多列类型。[#7975](https://github.com/ClickHouse/ClickHouse/pull/7975) ([Yuriy Baranov](https://github.com/yurriy)) * 为基于底层 `MergeTree` 表的 `Merge`、`Buffer` 和 `Materilized View` 存储实现 `ORDER BY` 优化。 [#8130](https://github.com/ClickHouse/ClickHouse/pull/8130) ([Anton Popov](https://github.com/CurtizJ)) -* 现在我们始终使用 `getrandom` 的 POSIX 实现,以提高在旧内核(< 3.17)上的兼容性。 [#7940](https://github.com/ClickHouse/ClickHouse/pull/7940) ([Amos Bird](https://github.com/amosbird)) -* 改进 move TTL 规则中对有效目标的检查。[#8410](https://github.com/ClickHouse/ClickHouse/pull/8410) ([Vladimir Chebotarev](https://github.com/excitoon)) +* 现在我们始终使用 `getrandom` 的 POSIX 实现,以便在旧版内核(< 3.17)上获得更好的兼容性。 [#7940](https://github.com/ClickHouse/ClickHouse/pull/7940) ([Amos Bird](https://github.com/amosbird)) +* 改进了在 `MOVE TTL` 规则中对目标有效性的检查。[#8410](https://github.com/ClickHouse/ClickHouse/pull/8410) ([Vladimir Chebotarev](https://github.com/excitoon)) * 针对 `Distributed` 表引擎中损坏的插入批次提供了更完善的检查。[#7933](https://github.com/ClickHouse/ClickHouse/pull/7933) ([Azat Khuzhin](https://github.com/azat)) -* 在 `system.mutations` 表中新增一列,用于存放将来需要由 mutation 处理的 parts 名称数组。 [#8179](https://github.com/ClickHouse/ClickHouse/pull/8179) ([alesapin](https://github.com/alesapin)) +* 在 `system.mutations` 表中新增一列,用于存放将来需要由 mutation 操作处理的分区片段名称数组。 [#8179](https://github.com/ClickHouse/ClickHouse/pull/8179) ([alesapin](https://github.com/alesapin)) * 针对处理器的并行归并排序优化。 [#8552](https://github.com/ClickHouse/ClickHouse/pull/8552) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* 设置 `mark_cache_min_lifetime` 现已废弃,不再产生任何效果。在之前的版本中,mark 缓存在内存中的大小可能会增长到超过 `mark_cache_size`,以便在 `mark_cache_min_lifetime` 秒内保留数据。这会导致困惑,并造成高于预期的内存占用,在内存受限的系统上尤其糟糕。如果在安装此版本后发现性能下降,应增大 `mark_cache_size`。 [#8484](https://github.com/ClickHouse/ClickHouse/pull/8484) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 设置项 `mark_cache_min_lifetime` 现已废弃,不再产生任何效果。在之前的版本中,mark 缓存在内存中的大小可能会增长到超过 `mark_cache_size`,以便在 `mark_cache_min_lifetime` 秒内保留数据。这会导致困惑,并造成高于预期的内存占用,在内存受限的系统上尤其糟糕。如果在安装此版本后发现性能下降,应增大 `mark_cache_size`。 [#8484](https://github.com/ClickHouse/ClickHouse/pull/8484) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 为在各处使用 `tid` 做准备。这是完成 [#7477](https://github.com/ClickHouse/ClickHouse/issues/7477) 所必需的。[#8276](https://github.com/ClickHouse/ClickHouse/pull/8276) ([alexey-milovidov](https://github.com/alexey-milovidov)) - - #### 性能优化 {#performance-improvement-17} * 处理器流水线中的性能优化。 [#7988](https://github.com/ClickHouse/ClickHouse/pull/7988) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) @@ -3422,13 +3409,13 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor * 在全局编译 ClickHouse 时不使用 `-fno-omit-frame-pointer`,从而多腾出一个寄存器可用。 [#8097](https://github.com/ClickHouse/ClickHouse/pull/8097) ([Amos Bird](https://github.com/amosbird)) * 提升 `greatCircleDistance` 函数性能,并为其添加性能测试。 [#7307](https://github.com/ClickHouse/ClickHouse/pull/7307) ([Olga Khvostikova](https://github.com/stavrolia)) * 优化了函数 `roundDown` 的性能。 [#8465](https://github.com/ClickHouse/ClickHouse/pull/8465) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 优化了 `DateTime64` 数据类型上 `max`、`min`、`argMin`、`argMax` 的性能。 [#8199](https://github.com/ClickHouse/ClickHouse/pull/8199) ([Vasily Nemkov](https://github.com/Enmk)) +* 针对 `DateTime64` 数据类型,优化了 `max`、`min`、`argMin`、`argMax` 的性能。 [#8199](https://github.com/ClickHouse/ClickHouse/pull/8199) ([Vasily Nemkov](https://github.com/Enmk)) * 在没有 LIMIT 或 LIMIT 较大且使用外部排序的情况下,提升了排序性能。[#8545](https://github.com/ClickHouse/ClickHouse/pull/8545) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 将浮点数格式化的性能最高提升至原来的 6 倍。 [#8542](https://github.com/ClickHouse/ClickHouse/pull/8542) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 优化了 `modulo` 函数的性能。[#7750](https://github.com/ClickHouse/ClickHouse/pull/7750) ([Amos Bird](https://github.com/amosbird)) +* 优化了 `modulo` 函数的性能。 [#7750](https://github.com/ClickHouse/ClickHouse/pull/7750) ([Amos Bird](https://github.com/amosbird)) * 针对使用单列键的 `ORDER BY` 和合并操作进行了优化。 [#8335](https://github.com/ClickHouse/ClickHouse/pull/8335) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 针对 `arrayReduce`、`-Array` 和 `-State` 组合器进行了更好的实现。 [#7710](https://github.com/ClickHouse/ClickHouse/pull/7710) ([Amos Bird](https://github.com/amosbird)) -* 现在 `PREWHERE` 现已优化,其效率至少不低于 `WHERE`。 [#7769](https://github.com/ClickHouse/ClickHouse/pull/7769) ([Amos Bird](https://github.com/amosbird)) +* 针对 `arrayReduce`、`-Array` 和 `-State` 组合器采用了更优的实现。 [#7710](https://github.com/ClickHouse/ClickHouse/pull/7710) ([Amos Bird](https://github.com/amosbird)) +* 现在 `PREWHERE` 已经过优化,其效率至少不低于 `WHERE`。 [#7769](https://github.com/ClickHouse/ClickHouse/pull/7769) ([Amos Bird](https://github.com/amosbird)) * 改进 `round` 和 `roundBankers` 对负数的处理方式。[#8229](https://github.com/ClickHouse/ClickHouse/pull/8229) ([hcz](https://github.com/hczhcz)) * 将 `DoubleDelta` 和 `Gorilla` 编解码器的解码性能提高了约 30–40%。这修复了 [#7082](https://github.com/ClickHouse/ClickHouse/issues/7082)。[#8019](https://github.com/ClickHouse/ClickHouse/pull/8019)([Vasily Nemkov](https://github.com/Enmk)) * 提升了 `base64` 相关函数的性能。[#8444](https://github.com/ClickHouse/ClickHouse/pull/8444) ([alexey-milovidov](https://github.com/alexey-milovidov)) @@ -3441,86 +3428,86 @@ keywords: ['ClickHouse 2020', 'changelog 2020', 'release notes', 'version histor * 并行解析数据格式 [#6553](https://github.com/ClickHouse/ClickHouse/pull/6553) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) * 默认启用对包含表达式的 `Values` 的优化解析器(`input_format_values_deduce_templates_of_expressions=1`)。[#8231](https://github.com/ClickHouse/ClickHouse/pull/8231) ([tavplubix](https://github.com/tavplubix)) - - #### 构建/测试/打包改进 {#buildtestingpackaging-improvement-25} * 修复 `ARM` 和最小模式下的构建问题。[#8304](https://github.com/ClickHouse/ClickHouse/pull/8304) ([proller](https://github.com/proller)) * 在 `clickhouse-server` 中,当未调用 std::atexit 时,添加覆盖率文件刷新。同时略微改进了带覆盖率的无状态测试中的日志输出。[#8267](https://github.com/ClickHouse/ClickHouse/pull/8267) ([alesapin](https://github.com/alesapin)) -* 更新 contrib 中的 LLVM 库。避免使用来自系统软件包的 LLVM。[#8258](https://github.com/ClickHouse/ClickHouse/pull/8258) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 更新 contrib 目录中的 LLVM 库。避免使用来自操作系统软件包的 LLVM。[#8258](https://github.com/ClickHouse/ClickHouse/pull/8258) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 使捆绑的 `curl` 的构建过程完全静默。[#8232](https://github.com/ClickHouse/ClickHouse/pull/8232) [#8203](https://github.com/ClickHouse/ClickHouse/pull/8203) ([Pavel Kovalenko](https://github.com/Jokser)) * 修复一些 `MemorySanitizer` 警告。[#8235](https://github.com/ClickHouse/ClickHouse/pull/8235) ([Alexander Kuzmenkov](https://github.com/akuzm)) * 在 `CMakeLists.txt` 中使用 `add_warning` 和 `no_warning` 宏。[#8604](https://github.com/ClickHouse/ClickHouse/pull/8604) ([Ivan](https://github.com/abyss7)) -* 为改进集成测试,新增对 Minio 兼容 S3 对象存储([https://min.io/](https://min.io/))的支持。[#7863](https://github.com/ClickHouse/ClickHouse/pull/7863) [#7875](https://github.com/ClickHouse/ClickHouse/pull/7875) ([Pavel Kovalenko](https://github.com/Jokser)) -* 已将 `libc` 头文件导入到 contrib 中。这可以使在不同系统上的构建更加一致(仅适用于 `x86_64-linux-gnu`)。[#5773](https://github.com/ClickHouse/ClickHouse/pull/5773) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 为改进集成测试,新增对 MinIO S3 兼容对象存储([https://min.io/](https://min.io/))的支持。[#7863](https://github.com/ClickHouse/ClickHouse/pull/7863) [#7875](https://github.com/ClickHouse/ClickHouse/pull/7875) ([Pavel Kovalenko](https://github.com/Jokser)) +* 已将 `libc` 头文件导入到 contrib 中。这有助于在不同系统上实现更一致的构建(仅适用于 `x86_64-linux-gnu`)。[#5773](https://github.com/ClickHouse/ClickHouse/pull/5773) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 从部分库中移除 `-fPIC`。 [#8464](https://github.com/ClickHouse/ClickHouse/pull/8464) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 整理 curl 的 `CMakeLists.txt` 文件。参见 [https://github.com/ClickHouse/ClickHouse/pull/8011#issuecomment-569478910](https://github.com/ClickHouse/ClickHouse/pull/8011#issuecomment-569478910) [#8459](https://github.com/ClickHouse/ClickHouse/pull/8459) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* `CapNProto` 库中的静默警告。[#8220](https://github.com/ClickHouse/ClickHouse/pull/8220) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 为短字符串优化的哈希表添加性能测试。[#7679](https://github.com/ClickHouse/ClickHouse/pull/7679) ([Amos Bird](https://github.com/amosbird)) -* 现在,即使在不支持 `MADV_FREE` 的环境中,ClickHouse 也可以在 `AArch64` 上编译。这修复了 [#8027](https://github.com/ClickHouse/ClickHouse/issues/8027)。[#8243](https://github.com/ClickHouse/ClickHouse/pull/8243)([Amos Bird](https://github.com/amosbird)) +* 屏蔽 `CapNProto` 库中的警告。[#8220](https://github.com/ClickHouse/ClickHouse/pull/8220) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 为针对短字符串优化的哈希表添加性能测试。[#7679](https://github.com/ClickHouse/ClickHouse/pull/7679) ([Amos Bird](https://github.com/amosbird)) +* 现在,即使在不支持 `MADV_FREE` 的环境中,也可以在 `AArch64` 上构建 ClickHouse。这修复了 [#8027](https://github.com/ClickHouse/ClickHouse/issues/8027)。[#8243](https://github.com/ClickHouse/ClickHouse/pull/8243)([Amos Bird](https://github.com/amosbird)) * 更新 `zlib-ng` 以修复 MemorySanitizer 相关问题。[#7182](https://github.com/ClickHouse/ClickHouse/pull/7182) [#8206](https://github.com/ClickHouse/ClickHouse/pull/8206) ([Alexander Kuzmenkov](https://github.com/akuzm)) -* 在非 Linux 系统上启用内部 MySQL 库,因为依赖操作系统软件包非常不可靠,通常根本无法正常工作。此更改修复了 [#5765](https://github.com/ClickHouse/ClickHouse/issues/5765)。[#8426](https://github.com/ClickHouse/ClickHouse/pull/8426)([alexey-milovidov](https://github.com/alexey-milovidov)) +* 在非 Linux 系统上启用内部 MySQL 库,因为依赖操作系统软件包的方案非常不可靠,经常完全无法工作。此更改修复了 [#5765](https://github.com/ClickHouse/ClickHouse/issues/5765)。[#8426](https://github.com/ClickHouse/ClickHouse/pull/8426)([alexey-milovidov](https://github.com/alexey-milovidov)) * 在启用 `libc++` 后,修复了某些系统上的构建问题。此更改取代了 [#8374](https://github.com/ClickHouse/ClickHouse/issues/8374)。[#8380](https://github.com/ClickHouse/ClickHouse/pull/8380) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 提高 `Field` 方法的类型安全性,以便发现更多错误。[#7386](https://github.com/ClickHouse/ClickHouse/pull/7386) [#8209](https://github.com/ClickHouse/ClickHouse/pull/8209) ([Alexander Kuzmenkov](https://github.com/akuzm)) -* 向 `libc-headers` 子模块添加了缺失的文件。 [#8507](https://github.com/ClickHouse/ClickHouse/pull/8507) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 为 `libc-headers` 子模块补充了缺失的文件。[#8507](https://github.com/ClickHouse/ClickHouse/pull/8507) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 修复性能测试输出中 `JSON` 引号不正确的问题。 [#8497](https://github.com/ClickHouse/ClickHouse/pull/8497) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* 现在会为 `std::exception` 和 `Poco::Exception` 显示堆栈跟踪。在之前的版本中,这仅适用于 `DB::Exception`。这有助于改进诊断。[#8501](https://github.com/ClickHouse/ClickHouse/pull/8501) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 现在会为 `std::exception` 和 `Poco::Exception` 显示堆栈跟踪。在之前的版本中,这仅适用于 `DB::Exception`。这提升了诊断能力。[#8501](https://github.com/ClickHouse/ClickHouse/pull/8501) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 为新版 glibc 移植 `clock_gettime` 和 `clock_nanosleep`。[#8054](https://github.com/ClickHouse/ClickHouse/pull/8054) ([Amos Bird](https://github.com/amosbird)) * 在面向开发者的示例配置中启用 `part_log`。[#8609](https://github.com/ClickHouse/ClickHouse/pull/8609) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 修复 `01036_no_superfluous_dict_reload_on_create_database*` 中重新加载为异步方式的问题。 [#8111](https://github.com/ClickHouse/ClickHouse/pull/8111) ([Azat Khuzhin](https://github.com/azat)) -* 修复了编解码器性能测试。[#8615](https://github.com/ClickHouse/ClickHouse/pull/8615) ([Vasily Nemkov](https://github.com/Enmk)) +* 修复 `01036_no_superfluous_dict_reload_on_create_database*` 中重新加载异步执行的问题。[#8111](https://github.com/ClickHouse/ClickHouse/pull/8111) ([Azat Khuzhin](https://github.com/azat)) +* 修复了编解码器性能测试。 [#8615](https://github.com/ClickHouse/ClickHouse/pull/8615) ([Vasily Nemkov](https://github.com/Enmk)) * 为 `.tgz` 构建产物添加安装脚本及相应文档。[#8612](https://github.com/ClickHouse/ClickHouse/pull/8612) [#8591](https://github.com/ClickHouse/ClickHouse/pull/8591) ([alesapin](https://github.com/alesapin)) * 移除了旧的 `ZSTD` 测试(其创建于 2016 年,用于复现 1.0 之前版本的 ZSTD 中存在的 bug)。这修复了 [#8618](https://github.com/ClickHouse/ClickHouse/issues/8618)。[#8619](https://github.com/ClickHouse/ClickHouse/pull/8619)([alexey-milovidov](https://github.com/alexey-milovidov)) * 修复在 macOS Catalina 上的构建问题。 [#8600](https://github.com/ClickHouse/ClickHouse/pull/8600) ([meo](https://github.com/meob)) -* 在编解码器性能测试中增加了行数,以使结果更加显著。 [#8574](https://github.com/ClickHouse/ClickHouse/pull/8574) ([Vasily Nemkov](https://github.com/Enmk)) +* 在编解码器性能测试中增加了行数,以便结果更加显著。 [#8574](https://github.com/ClickHouse/ClickHouse/pull/8574) ([Vasily Nemkov](https://github.com/Enmk)) * 在调试版本中,将 `LOGICAL_ERROR` 异常视为断言失败,以便更容易被发现。[#8475](https://github.com/ClickHouse/ClickHouse/pull/8475) ([Alexander Kuzmenkov](https://github.com/akuzm)) -* 使与格式相关的性能测试更加具有确定性。 [#8477](https://github.com/ClickHouse/ClickHouse/pull/8477) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 使与格式相关的性能测试更加可复现。 [#8477](https://github.com/ClickHouse/ClickHouse/pull/8477) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 更新 `lz4`,以修复 MemorySanitizer 报错。 [#8181](https://github.com/ClickHouse/ClickHouse/pull/8181) ([Alexander Kuzmenkov](https://github.com/akuzm)) * 在异常处理逻辑中屏蔽一处已知的 MemorySanitizer 误报。[#8182](https://github.com/ClickHouse/ClickHouse/pull/8182) ([Alexander Kuzmenkov](https://github.com/akuzm)) -* 在 `build/docker/build.sh` 中将 `gcc` 和 `g++` 更新到 9 版 [#7766](https://github.com/ClickHouse/ClickHouse/pull/7766) ([TLightSky](https://github.com/tlightsky)) -* 添加性能测试用例,以验证 `PREWHERE` 比 `WHERE` 更慢。 [#7768](https://github.com/ClickHouse/ClickHouse/pull/7768) ([Amos Bird](https://github.com/amosbird)) -* 修复一个不稳定测试用例的进展。 [#8621](https://github.com/ClickHouse/ClickHouse/pull/8621) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 避免 MemorySanitizer 针对来自 `libunwind` 的数据产生报告。 [#8539](https://github.com/ClickHouse/ClickHouse/pull/8539) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 在 `build/docker/build.sh` 中将 `gcc` 和 `g++` 更新到 9 版本 [#7766](https://github.com/ClickHouse/ClickHouse/pull/7766) ([TLightSky](https://github.com/tlightsky)) +* 添加性能测试用例,用于验证 `PREWHERE` 比 `WHERE` 更慢。[#7768](https://github.com/ClickHouse/ClickHouse/pull/7768) ([Amos Bird](https://github.com/amosbird)) +* 推进修复一个不稳定测试的工作。 [#8621](https://github.com/ClickHouse/ClickHouse/pull/8621) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 避免针对来自 `libunwind` 的数据出现 MemorySanitizer 报告。[#8539](https://github.com/ClickHouse/ClickHouse/pull/8539) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 将 `libc++` 更新到最新版本。[#8324](https://github.com/ClickHouse/ClickHouse/pull/8324) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 从源代码构建 ICU 库。修复了 [#6460](https://github.com/ClickHouse/ClickHouse/issues/6460)。[#8219](https://github.com/ClickHouse/ClickHouse/pull/8219)([alexey-milovidov](https://github.com/alexey-milovidov)) -* 从 `libressl` 切换为 `openssl`。完成此更改后,ClickHouse 现在支持 TLS 1.3 和 SNI。修复了 [#8171](https://github.com/ClickHouse/ClickHouse/issues/8171)。[#8218](https://github.com/ClickHouse/ClickHouse/pull/8218)([alexey-milovidov](https://github.com/alexey-milovidov)) +* 从源代码构建 ICU 库。这修复了 [#6460](https://github.com/ClickHouse/ClickHouse/issues/6460)。[#8219](https://github.com/ClickHouse/ClickHouse/pull/8219)([alexey-milovidov](https://github.com/alexey-milovidov)) +* 从 `libressl` 切换到 `openssl`。完成此更改后,ClickHouse 支持 TLS 1.3 和 SNI。此更改修复了 [#8171](https://github.com/ClickHouse/ClickHouse/issues/8171)。[#8218](https://github.com/ClickHouse/ClickHouse/pull/8218)([alexey-milovidov](https://github.com/alexey-milovidov)) * 修复了使用 SSL 中的 `chacha20_poly1305` 时出现的 UBSan 报告(在连接到 [https://yandex.ru/](https://yandex.ru/) 时会出现)。[#8214](https://github.com/ClickHouse/ClickHouse/pull/8214) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 修正 `.deb` Linux 发行版默认密码文件的权限设置。 [#8075](https://github.com/ClickHouse/ClickHouse/pull/8075) ([proller](https://github.com/proller)) +* 修正 `.deb` Linux 发行版中默认密码文件的权限设置。 [#8075](https://github.com/ClickHouse/ClickHouse/pull/8075) ([proller](https://github.com/proller)) * 改进了在 `clickhouse-test` 中获取 `clickhouse-server` PID 的表达式。 [#8063](https://github.com/ClickHouse/ClickHouse/pull/8063) ([Alexander Kazakov](https://github.com/Akazz)) * 将 contrib/googletest 更新至 v1.10.0。 [#8587](https://github.com/ClickHouse/ClickHouse/pull/8587) ([Alexander Burmak](https://github.com/Alex-Burmak)) -* 修复了 `base64` 库中的 ThreadSanitizer 报告。同时将该库更新到最新版本,但这无关紧要。本次修改修复了 [#8397](https://github.com/ClickHouse/ClickHouse/issues/8397)。[#8403](https://github.com/ClickHouse/ClickHouse/pull/8403)([alexey-milovidov](https://github.com/alexey-milovidov)) +* 修复了 `base64` 库中的 ThreadSanitizer 报错。同时将该库更新到最新版本,但这并不重要。本次修改修复了 [#8397](https://github.com/ClickHouse/ClickHouse/issues/8397)。[#8403](https://github.com/ClickHouse/ClickHouse/pull/8403)([alexey-milovidov](https://github.com/alexey-milovidov)) * 针对处理器修复 `00600_replace_running_query`。 [#8272](https://github.com/ClickHouse/ClickHouse/pull/8272) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* 从 `CMakeLists.txt` 中移除对 `tcmalloc` 的支持以简化配置。[#8310](https://github.com/ClickHouse/ClickHouse/pull/8310) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 从 `CMakeLists.txt` 中移除对 `tcmalloc` 的支持,以简化 `CMakeLists.txt`。[#8310](https://github.com/ClickHouse/ClickHouse/pull/8310) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 现在,使用 gcc 的 Release 构建改为使用 `libc++`,而不再使用 `libstdc++`。此前,`libc++` 仅与 clang 一起使用。这将提高构建配置的一致性和可移植性。 [#8311](https://github.com/ClickHouse/ClickHouse/pull/8311) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 在使用 MemorySanitizer 的构建中启用 ICU 库。 [#8222](https://github.com/ClickHouse/ClickHouse/pull/8222) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 屏蔽来自 `CapNProto` 库的警告。 [#8224](https://github.com/ClickHouse/ClickHouse/pull/8224) ([alexey-milovidov](https://github.com/alexey-milovidov)) +* 屏蔽 `CapNProto` 库产生的警告。 [#8224](https://github.com/ClickHouse/ClickHouse/pull/8224) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 移除了针对 `tcmalloc` 的特殊处理代码,因为它已不再受支持。[#8225](https://github.com/ClickHouse/ClickHouse/pull/8225) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 在 CI 覆盖率任务中,优雅地关闭服务器以便它保存覆盖率报告。这解决了我们最近遇到的不完整覆盖率报告问题。[#8142](https://github.com/ClickHouse/ClickHouse/pull/8142) ([alesapin](https://github.com/alesapin)) -* 对所有编解码器在 `Float64` 和 `UInt64` 值上的性能进行测试。[#8349](https://github.com/ClickHouse/ClickHouse/pull/8349) ([Vasily Nemkov](https://github.com/Enmk)) +* 对所有编解码器在处理 `Float64` 和 `UInt64` 值时的性能进行测试。[#8349](https://github.com/ClickHouse/ClickHouse/pull/8349) ([Vasily Nemkov](https://github.com/Enmk)) * `termcap` 已严重过时,并会导致各种问题(例如缺少 `"up"` 功能项,以及在需要多行移动时回显 `^J`)。建议改用 `terminfo` 或捆绑的 `ncurses`。 [#7737](https://github.com/ClickHouse/ClickHouse/pull/7737) ([Amos Bird](https://github.com/amosbird)) * 修复 `test_storage_s3` 集成测试。[#7734](https://github.com/ClickHouse/ClickHouse/pull/7734) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) -* 支持使用 `StorageFile(<format>, null)` 将数据块插入到指定格式的文件中,而无需真正写入磁盘。这在性能测试中是必需的。[#8455](https://github.com/ClickHouse/ClickHouse/pull/8455) ([Amos Bird](https://github.com/amosbird)) +* 支持使用 `StorageFile(, null)` 将数据块插入到指定格式的文件中,而无需真正写入磁盘。这在性能测试中是必需的。[#8455](https://github.com/ClickHouse/ClickHouse/pull/8455) ([Amos Bird](https://github.com/amosbird)) * 为功能测试添加了参数 `--print-time`,用于打印每个测试的执行时间。 [#8001](https://github.com/ClickHouse/ClickHouse/pull/8001) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * 在计算 RPN 时向 `KeyCondition` 添加了断言语句,从而修复了 gcc-9 发出的警告。[#8279](https://github.com/ClickHouse/ClickHouse/pull/8279) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 在 CI 构建中输出 CMake 选项。 [#8273](https://github.com/ClickHouse/ClickHouse/pull/8273) ([Alexander Kuzmenkov](https://github.com/akuzm)) * 不为某些大型库生成调试信息。 [#8271](https://github.com/ClickHouse/ClickHouse/pull/8271) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 使 `log_to_console.xml` 始终将日志写入 stderr,而不论是否为交互式环境。[#8395](https://github.com/ClickHouse/ClickHouse/pull/8395) ([Alexander Kuzmenkov](https://github.com/akuzm)) +* 使 `log_to_console.xml` 始终将日志写入 stderr,而不再区分是否为交互式环境。[#8395](https://github.com/ClickHouse/ClickHouse/pull/8395) ([Alexander Kuzmenkov](https://github.com/akuzm)) * 从 `clickhouse-performance-test` 工具中移除了一些未使用的功能。 [#8555](https://github.com/ClickHouse/ClickHouse/pull/8555) ([alexey-milovidov](https://github.com/alexey-milovidov)) -* 现在我们还会搜索与 `clang-X` 版本对应的 `lld-X`。 [#8092](https://github.com/ClickHouse/ClickHouse/pull/8092) ([alesapin](https://github.com/alesapin)) +* 现在还会根据 `clang-X` 版本搜索对应的 `lld-X`。[#8092](https://github.com/ClickHouse/ClickHouse/pull/8092) ([alesapin](https://github.com/alesapin)) * Parquet 构建优化。 [#8421](https://github.com/ClickHouse/ClickHouse/pull/8421) ([maxulan](https://github.com/maxulan)) * 启用更多 GCC 警告 [#8221](https://github.com/ClickHouse/ClickHouse/pull/8221) ([kreuzerkrieg](https://github.com/kreuzerkrieg)) -* 适用于 Arch Linux 的软件包现在不仅支持运行 ClickHouse 客户端,还支持运行 ClickHouse 服务器。[#8534](https://github.com/ClickHouse/ClickHouse/pull/8534) ([Vladimir Chebotarev](https://github.com/excitoon)) -* 修复使用处理器的测试。细微的性能优化。 [#7672](https://github.com/ClickHouse/ClickHouse/pull/7672) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) +* 适用于 Arch Linux 的软件包现在不仅可以运行 ClickHouse 客户端,也可以运行 ClickHouse 服务器。[#8534](https://github.com/ClickHouse/ClickHouse/pull/8534) ([Vladimir Chebotarev](https://github.com/excitoon)) +* 修复基于处理器的测试。细微的性能优化。 [#7672](https://github.com/ClickHouse/ClickHouse/pull/7672) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) * 更新 contrib/protobuf。 [#8256](https://github.com/ClickHouse/ClickHouse/pull/8256) ([Matwey V. Kornilov](https://github.com/matwey)) -* 为在新年切换到 c++20 做准备。 "愿 C++ 的原力与 ClickHouse 同在。" [#8447](https://github.com/ClickHouse/ClickHouse/pull/8447) ([Amos Bird](https://github.com/amosbird)) +* 为在新年切换到 C++20 做准备。 "愿 C++ 的原力与 ClickHouse 同在。" [#8447](https://github.com/ClickHouse/ClickHouse/pull/8447) ([Amos Bird](https://github.com/amosbird)) #### 实验性功能 {#experimental-feature-8} + * 新增实验性设置 `min_bytes_to_use_mmap_io`。它允许在不将数据从内核复制到用户空间的情况下读取大文件。该设置默认禁用。建议将阈值设置为约 64 MB,因为 mmap/munmap 调用较慢。[#8520](https://github.com/ClickHouse/ClickHouse/pull/8520) ([alexey-milovidov](https://github.com/alexey-milovidov)) * 作为访问控制系统的一部分,重构了配额功能。新增表 `system.quotas`,新函数 `currentQuota`、`currentQuotaKey`,以及新的 SQL 语法 `CREATE QUOTA`、`ALTER QUOTA`、`DROP QUOTA`、`SHOW QUOTA`。[#7257](https://github.com/ClickHouse/ClickHouse/pull/7257) ([Vitaly Baranov](https://github.com/vitlibar)) * 允许在跳过未知设置时给出警告,而不是抛出异常。[#7653](https://github.com/ClickHouse/ClickHouse/pull/7653) ([Vitaly Baranov](https://github.com/vitlibar)) * 作为访问控制系统的一部分,重构了行策略。新增表 `system.row_policies`,新函数 `currentRowPolicies()`,以及新的 SQL 语法 `CREATE POLICY`、`ALTER POLICY`、`DROP POLICY`、`SHOW CREATE POLICY`、`SHOW POLICIES`。[#7808](https://github.com/ClickHouse/ClickHouse/pull/7808) ([Vitaly Baranov](https://github.com/vitlibar)) #### 安全修复 {#security-fix} + * 修复了在使用 `File` 表引擎的表中可以读取目录结构的问题。此修复对应 [#8536](https://github.com/ClickHouse/ClickHouse/issues/8536)。[#8537](https://github.com/ClickHouse/ClickHouse/pull/8537) ([alexey-milovidov](https://github.com/alexey-milovidov)) -## [2019 年更新日志](./2019.md) {#changelog-for-2019} +## [2019 年更新日志](./2019.md) {#changelog-for-2019} \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2021.md b/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2021.md index cbb26fdacc7..d1dcb24759d 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2021.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2021.md @@ -1,6 +1,6 @@ --- slug: /whats-new/changelog/2021 -sidebar_position: 6 +sidebar_position: -2021 sidebar_label: '2021' title: '2021 更新日志' description: '2021 年更新日志' diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2022.md b/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2022.md index 6075dc02b72..df00acca3f2 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2022.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2022.md @@ -1,6 +1,6 @@ --- slug: /whats-new/changelog/2022 -sidebar_position: 5 +sidebar_position: -2022 sidebar_label: '2022' title: '2022 更新日志' description: '2022 年更新日志' diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2023.md b/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2023.md index a9bb292dce1..2455fed026b 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2023.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2023.md @@ -1,6 +1,6 @@ --- slug: /whats-new/changelog/2023 -sidebar_position: 4 +sidebar_position: -2023 sidebar_label: '2023' title: '2023 年变更日志' description: '2023 年变更日志' diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2024.md b/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2024.md index 8c5f649fae0..bbebbc55499 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2024.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2024.md @@ -1,6 +1,6 @@ --- slug: /whats-new/changelog/2024 -sidebar_position: 3 +sidebar_position: -2024 sidebar_label: '2024' title: '2024 更新日志' description: '2024 年更新日志' diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2025.md b/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2025.md new file mode 100644 index 00000000000..f418099d872 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/2025.md @@ -0,0 +1,2728 @@ +--- +slug: /whats-new/changelog/2025 +sidebar_position: -2025 +sidebar_label: '2025' +title: '2025 更新日志' +description: '2025 年更新日志' +keywords: ['ClickHouse 2025', '2025 更新日志', '发布说明', '版本历史', '新功能'] +doc_type: 'changelog' +--- + +### 目录 {#table-of-contents} + +**[ClickHouse 发行版 v25.12,2025-12-18](#2512)**
    +**[ClickHouse 发行版 v25.11,2025-11-27](#2511)**
    +**[ClickHouse 发行版 v25.10,2025-10-30](#2510)**
    +**[ClickHouse 发行版 v25.9,2025-09-25](#259)**
    +**[ClickHouse 发行版 v25.8 LTS,2025-08-28](#258)**
    +**[ClickHouse 发行版 v25.7,2025-07-24](#257)**
    +**[ClickHouse 发行版 v25.6,2025-06-26](#256)**
    +**[ClickHouse 发行版 v25.5,2025-05-22](#255)**
    +**[ClickHouse 发行版 v25.4,2025-04-22](#254)**
    +**[ClickHouse 发行版 v25.3 LTS,2025-03-20](#253)**
    +**[ClickHouse 发行版 v25.2,2025-02-27](#252)**
    +**[ClickHouse 发行版 v25.1,2025-01-28](#251)**
    +**[2024 年更新日志](https://clickhouse.com/docs/whats-new/changelog/2024/)**
    +**[2023 年更新日志](https://clickhouse.com/docs/whats-new/changelog/2023/)**
    +**[2022 年更新日志](https://clickhouse.com/docs/whats-new/changelog/2022/)**
    +**[2021 年更新日志](https://clickhouse.com/docs/whats-new/changelog/2021/)**
    +**[2020 年更新日志](https://clickhouse.com/docs/whats-new/changelog/2020/)**
    +**[2019 年更新日志](https://clickhouse.com/docs/whats-new/changelog/2019/)**
    +**[2018 年更新日志](https://clickhouse.com/docs/whats-new/changelog/2018/)**
    +**[2017 年更新日志](https://clickhouse.com/docs/whats-new/changelog/2017/)**
    + +### ClickHouse 发行版 25.12,2025-12-18 {#2512} + +#### 不向后兼容的变更 {#backward-incompatible-change} + +* 在将可空列转换为非空类型时,`ALTER MODIFY COLUMN` 现在需要显式指定 `DEFAULT`。此前这类 `ALTER` 操作可能会因 cannot convert null to not null 错误而卡住,现在会将 `NULL` 替换为该列的默认表达式。修复了 [#5985](https://github.com/ClickHouse/ClickHouse/issues/5985)。[#84770](https://github.com/ClickHouse/ClickHouse/pull/84770)([Vladimir Cherkasov](https://github.com/vdimir))。 +* Ngram tokenizer 将不再返回长度小于其配置的 N 的 ngram。当搜索 token 为空时,Text Search 将不再返回任何行。[#89757](https://github.com/ClickHouse/ClickHouse/pull/89757) ([George Larionov](https://github.com/george-larionov))。 +* 当将列从 `String` 修改为 `Nullable(String)` 时,我们不会对数据执行 mutation 操作。但对于 `uniq` 聚合函数,它使用了不同的数据结构:对于可为空列,会使用带有嵌套 uniq 聚合器的 `AggregateFunctionNull`。`AggregateFunctionNull` 在序列化时会额外写入一个布尔标记。这会导致统计文件不兼容。修复方案是在序列化时添加一个标记,用于记录该列是否为可为空列。由于统计信息的格式已发生变化,如果仍存在旧格式的统计信息,服务器可能会出错。PR [#90904](https://github.com/ClickHouse/ClickHouse/pull/90904) 将修复崩溃问题,并在现有统计信息使用旧格式时抛出异常。为避免异常,应运行 `ALTER TABLE table MATERIALIZE STATISTICS ALL` 重新生成统计信息以修复该问题。[#90311](https://github.com/ClickHouse/ClickHouse/pull/90311) ([Han Fei](https://github.com/hanfei1991))。 +* 移除设置项 `allow_not_comparable_types_in_order_by` 和 `allow_not_comparable_types_in_comparison_functions`。允许在 ORDER BY 或比较函数中使用不可比较类型可能会导致逻辑错误和意外结果。解决了 [#90028](https://github.com/ClickHouse/ClickHouse/issues/90028)。[#90527](https://github.com/ClickHouse/ClickHouse/pull/90527)([Pavel Kruglov](https://github.com/Avogar))。 +* 将 `check_query_single_value_result` 的默认值从 `true` 更改为 `false`。因此,`CHECK TABLE` 会返回每个 part 的详细结果,而不是汇总结果(1 = 正常,0 = 发现错误)。与之前的行为相比,这更符合用户的预期。[#91009](https://github.com/ClickHouse/ClickHouse/pull/91009) ([Robert Schulze](https://github.com/rschu1ze))。 +* 围绕隐式索引进行了多项修复。展示的 schema 或 keeper 中存储的元数据将不再包含隐式索引,例如通过设置项 `add_minmax_index_for_numeric_columns` 或 `add_minmax_index_for_string_columns` 创建的索引。这可能会在使用新版本创建或更新 ReplicatedMergeTree 表而集群中仍然存在旧版本副本时导致元数据错误。对于这些情况,请将 DDL 语句发送到旧副本,直至整个集群完全升级。[#91429](https://github.com/ClickHouse/ClickHouse/pull/91429)([Raúl Marín](https://github.com/Algunenano))。 +* 将 clickhouse-client 更新为:当查询因 `receive_timeout` 超时时返回非零退出码(159 - TIMEOUT_EXCEEDED)。此前,超时会返回退出码 0(成功),这使得脚本和自动化流程难以及时检测超时失败。 [#91432](https://github.com/ClickHouse/ClickHouse/pull/91432) ([Sav](https://github.com/sberss)). +* 现在禁止创建在 `ORDER BY` 键为空的情况下的特殊 `MergeTree` 表(例如 `ReplacingMergeTree`、`CollapsingMergeTree` 等),因为这类表的合并行为未定义。如果仍然需要创建这样的表,请启用 `allow_suspicious_primary_key` 设置。[#91569](https://github.com/ClickHouse/ClickHouse/pull/91569) ([Anton Popov](https://github.com/CurtizJ))。 +* 修复函数 `bitShiftLeft` 和 `bitShiftRight`,使其在移位量恰好等于类型大小时返回 0 或空值。 [#91943](https://github.com/ClickHouse/ClickHouse/pull/91943) ([Pablo Marcos](https://github.com/pamarcos)). +* [#88380](https://github.com/ClickHouse/ClickHouse/pull/88380) 的后续更新。本次 PR 将在投影中禁用位置参数视为一项向后不兼容的更改。此外,它引入了 `enable_positional_arguments_for_projections` 设置,用于在投影中存在位置参数时,支持安全地升级 ClickHouse 集群。[#92007](https://github.com/ClickHouse/ClickHouse/pull/92007)([Dmitry Novik](https://github.com/novikd))。 + +#### 新功能 {#new-feature} + +* 用户现在可以为 S3/Azure Queue 表配置在处理完成后将文件移动或打标签,此前仅支持选择保留或删除文件。解决了 [#72944](https://github.com/ClickHouse/ClickHouse/issues/72944)。[#86907](https://github.com/ClickHouse/ClickHouse/pull/86907)([Murat Khairulin](https://github.com/mxwell))。 +* 在 S3/Azure Queue 存储中新增 `commit_on_select` 设置(用于定义是否需要提交已处理的数据,以及是否应用 `after_processing` 操作)。默认值为 `false`,并修复了在 SELECT 时对已附加物化视图的检查。[#91450](https://github.com/ClickHouse/ClickHouse/pull/91450)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 在运行时使用 XRay 添加埋点,以在生产环境中调试问题并进行确定性性能分析。解决了 [#74249](https://github.com/ClickHouse/ClickHouse/issues/74249)。[#89173](https://github.com/ClickHouse/ClickHouse/pull/89173)([Pablo Marcos](https://github.com/pamarcos))。 +* 允许在 `IN` 中使用非常量的第二参数,并且也支持将元组作为第二参数。[#77906](https://github.com/ClickHouse/ClickHouse/pull/77906)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 为 `geometry` 类型新增用于计算面积和周长的函数。 [#89047](https://github.com/ClickHouse/ClickHouse/pull/89047) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* 实现 `dictGetKeys` 函数,用于返回属性等于指定值的字典键(一个或多个)。该函数使用按查询粒度维护的反向查找缓存(通过 `max_reverse_dictionary_lookup_cache_size_bytes` SETTING 进行调优)来加速重复查找。 [#89197](https://github.com/ClickHouse/ClickHouse/pull/89197) ([Nihal Z. Miaji](https://github.com/nihalzp))。 +* 添加设置项 `type_json_skip_invalid_typed_paths`,在输入 JSON 无法转换为 JSON 类型中显式声明的类型化路径(typed path)时,禁用针对插入/类型转换为 JSON 类型而抛出的异常。此时将回退为该类型化路径的 null/零值。[#89886](https://github.com/ClickHouse/ClickHouse/pull/89886) ([Max Justus Spransy](https://github.com/maxjustus))。 +* 为 MergeTree 表新增对 `direct`(嵌套循环)连接的支持。要使用它,请在设置中将其作为唯一选项指定:`join_algorithm = 'direct'`。[#89920](https://github.com/ClickHouse/ClickHouse/pull/89920)([Vladimir Cherkasov](https://github.com/vdimir))。 +* 在 Iceberg 表的 `CREATE` 操作中支持 `ORDER BY`,并在 `INSERT` 中支持排序。解决了 [#89916](https://github.com/ClickHouse/ClickHouse/issues/89916)。[#90141](https://github.com/ClickHouse/ClickHouse/pull/90141)([Konstantin Vedernikov](https://github.com/scanhex12))。 +* 引入投影级别的设置,这些设置通过 `ALTER TABLE ... ADD PROJECTION` 中新增的 `WITH SETTINGS` 子句对外暴露。借助这些设置,各个投影可以在自身范围内覆盖某些 MergeTree 存储参数(例如 `index_granularity`、`index_granularity_bytes`)。[#90158](https://github.com/ClickHouse/ClickHouse/pull/90158)([Amos Bird](https://github.com/amosbird))。 +* 新增 `HMAC(algorithm, message, key)` SQL 函数,作为 [#73900](https://github.com/ClickHouse/ClickHouse/issues/73900) 和 [#38775](https://github.com/ClickHouse/ClickHouse/issues/38775) 的一部分。[#90837](https://github.com/ClickHouse/ClickHouse/pull/90837)([Mikhail f. Shiryaev](https://github.com/Felixoid))。 +* 为 `has` 函数添加支持:当第一个参数是常量数组时,可以利用主键和数据跳过索引。解决 [#90980](https://github.com/ClickHouse/ClickHouse/issues/90980)。[#91023](https://github.com/ClickHouse/ClickHouse/pull/91023)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* 实现新的输入/输出格式 `Buffers`。该格式类似于 `Native`,但与 `Native` 不同的是,它不存储列名、列类型或任何额外的元数据。关闭 [#84017](https://github.com/ClickHouse/ClickHouse/issues/84017)。[#91156](https://github.com/ClickHouse/ClickHouse/pull/91156)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* 新增设置项 `max_streams_for_files_processing_in_cluster_functions`,用于控制 Cluster 表函数中并行读取文件时的流数量。修复了 [#90223](https://github.com/ClickHouse/ClickHouse/issues/90223)。[#91323](https://github.com/ClickHouse/ClickHouse/pull/91323)([Pavel Kruglov](https://github.com/Avogar))。 +* 用于行级安全的数据掩码功能(仅在 ClickHouse Cloud 中可用)。在 clickhouse-client 中添加数据掩码策略解析器,以支持该功能。[#90552](https://github.com/ClickHouse/ClickHouse/pull/90552) ([pufit](https://github.com/pufit)). +* 为 `windowFunnel` 聚合函数添加 `allow_reentry` 选项。与 `strict_order` 一同启用时,它会忽略违反顺序的事件,而不是终止漏斗分析。这使在处理包含刷新(A->A->B)或回退导航(A->B->A->C)的用户路径时,不会低估转化率。[#86916](https://github.com/ClickHouse/ClickHouse/pull/86916) ([Lee ChaeRok](https://github.com/LeeChaeRok))。 +* Keeper 与 ZooKeeper 的兼容性:支持带统计信息的创建。 [#88797](https://github.com/ClickHouse/ClickHouse/pull/88797) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* 在 ClickHouse Keeper 中支持 ZooKeeper 持久监听(persistent watches)。续篇第 2 部分:[https://github.com/ClickHouse/ClickHouse/pull/78207](https://github.com/ClickHouse/ClickHouse/pull/78207)。[#88813](https://github.com/ClickHouse/ClickHouse/pull/88813)([Konstantin Vedernikov](https://github.com/scanhex12))。 +* 添加一个 MergeTree 设置 `alter_column_secondary_index_mode`,用于控制在执行 mutation 时如何处理二级索引。可能取值为:throw、drop、rebuild 和 compatibility。关闭了 [#77797](https://github.com/ClickHouse/ClickHouse/issues/77797)。[#89335](https://github.com/ClickHouse/ClickHouse/pull/89335)([Raúl Marín](https://github.com/Algunenano))。 +* 由于 `Time` 和 `Time64` 数据类型已可用于生产环境,`enable_time_time64_type` 设置现已默认启用。[#89345](https://github.com/ClickHouse/ClickHouse/pull/89345)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 支持通过 `deltaLake` 表函数,并结合 `delta_lake_snapshot_start_version` 和 `delta_lake_snapshot_end_version` 这两个设置来读取 DeltaLake 的 CDF。CDF(Change Data Feed,一项可在 Delta 表不同版本之间自动捕获并查询行级数据变更(例如插入、更新和删除)的功能)在 DeltaLake 中通过 `delta.enableChangeDataFeed` 启用。与数据一同提供的列包括 `_change_type`、`_commit_version`、`_commit_timestamp`。[#90431](https://github.com/ClickHouse/ClickHouse/pull/90431)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 在访问元组元素时支持使用负索引(例如 `tuple.-1`)。 [#91665](https://github.com/ClickHouse/ClickHouse/pull/91665) ([Amos Bird](https://github.com/amosbird)). + +#### 实验特性 {#experimental-feature} + +* TODO:引入 Text 索引格式 v3 并将其提升为 Beta 状态。 +* 引入了新的逻辑,用于在 `automatic_parallel_replicas_mode` 设置的控制下自动使用并行副本执行查询。在正常的单节点执行期间,ClickHouse 会收集统计信息,并在后续的计划阶段加以考虑。如果统计信息表明启用并行副本可能带来收益,ClickHouse 将自动使用并行副本执行该查询。目前支持的查询类型仍然相当有限。[#87541](https://github.com/ClickHouse/ClickHouse/pull/87541) ([Nikita Taranov](https://github.com/nickitat))。 +* 使用 Cloud 凭证配合 --login 访问 ClickHouse Cloud 实例。[#89261](https://github.com/ClickHouse/ClickHouse/pull/89261) ([Krishna Mannem](https://github.com/kcmannem))。 +* 新增会话级设置 `aggregate_function_input_format`,用于改进对包含 `AggregateFunction` 列的表执行 `INSERT` 查询,允许以序列化状态、原始值或数组的形式插入数据。[#88088](https://github.com/ClickHouse/ClickHouse/pull/88088) ([Punith Nandyappa Subashchandra](https://github.com/punithns97))。 + +#### 性能优化 {#performance-improvement} + +* 通过结合使用跳过索引和动态阈值过滤器来优化 `ORDER BY...LIMIT N` 查询,从而显著减少处理的行数。[#89835](https://github.com/ClickHouse/ClickHouse/pull/89835) ([Shankar Iyer](https://github.com/shankar-iyer)). +* ClickHouse 现在使用 skip 索引对带有 `AND` 和 `OR` 混合连接过滤条件的 WHERE 子句执行索引分析。此前,要利用 skip 索引,WHERE 子句必须是由过滤条件构成的合取(AND)。新增设置项 `use_skip_indexes_for_disjunctions`(默认:开启)用于控制该功能。(issue [#75228](https://github.com/ClickHouse/ClickHouse/issues/75228))。[#87781](https://github.com/ClickHouse/ClickHouse/pull/87781)([Shankar Iyer](https://github.com/shankar-iyer))。 +* 支持在 LEFT/INNER JOIN 操作中保持从左表按顺序读取,供后续阶段利用。可通过设置 `query_plan_read_in_order_through_join` 禁用。在 LEFT/INNER JOIN 中支持读取优化中的虚拟行(参见设置 `read_in_order_use_virtual_row`)。[#89815](https://github.com/ClickHouse/ClickHouse/pull/89815)([Vladimir Cherkasov](https://github.com/vdimir))。 +* 使用更大的限制值来提升惰性物化列的性能。 [#90309](https://github.com/ClickHouse/ClickHouse/pull/90309) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* 当存在大型 `minmax` 索引(包含数百万个 granule)时,用户在执行索引分析时应该会看到更低的延迟。[#90428](https://github.com/ClickHouse/ClickHouse/pull/90428)([Shankar Iyer](https://github.com/shankar-iyer))。 +* 为 INNER JOIN 实现了简单的 DPsize 连接重排算法。新增了一个实验性设置用于控制按什么顺序使用哪些算法,例如,`query_plan_optimize_join_order_algorithm='dpsize,greedy'` 表示先尝试 DPsize,不适用时回退到 greedy。[#91002](https://github.com/ClickHouse/ClickHouse/pull/91002)([Alexander Gololobov](https://github.com/davenger))。 +* 当查询达到行数限制时立即失败。解决了 [#61872](https://github.com/ClickHouse/ClickHouse/issues/61872)。[#62804](https://github.com/ClickHouse/ClickHouse/pull/62804)([Sean Haynes](https://github.com/seandhaynes))。 +* [#84477](https://github.com/clickhouse/clickhouse/pull/84477) 为可在 `insert select from s3Cluster(...)` 中使用的 `SELECT` 查询添加了约束,以支持并行分布式执行。该更改现在也允许使用 `WHERE` 子句(此前不支持)。 [#84611](https://github.com/ClickHouse/ClickHouse/pull/84611) ([Igor Nikonov](https://github.com/devcrafter)). +* 在哈希表迭代过程中预取键,以减少缓存未命中次数。 [#84708](https://github.com/ClickHouse/ClickHouse/pull/84708) ([lgbo](https://github.com/lgbo-ustc)). +* 通过仅对 points 数组的末尾部分进行排序,并在输入为单调时跳过排序来优化 `histogram` 聚合函数,从而实现约 10% 的性能提升。 [#85760](https://github.com/ClickHouse/ClickHouse/pull/85760) ([MakarDev](https://github.com/MakarDev))。 +* 通过利用由文本索引构建的额外预过滤条件,改进了针对包含 `like`、`equals`、`has` 等函数的谓词的过滤性能。此优化可通过 `query_plan_text_index_add_hint` 设置启用。改进了在 `Map` 数据类型列上使用文本索引的方式。[#88550](https://github.com/ClickHouse/ClickHouse/pull/88550)([Anton Popov](https://github.com/CurtizJ))。 +* 通过对预先计算的可能键值集合执行更快速查找,优化重复的逆向字典查找。关闭 [#7968](https://github.com/ClickHouse/ClickHouse/issues/7968)。[#88971](https://github.com/ClickHouse/ClickHouse/pull/88971)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* 改进 `topK` 聚合函数的性能和行为。[#90091](https://github.com/ClickHouse/ClickHouse/pull/90091)([Raúl Marín](https://github.com/Algunenano))。 +* 改进了 `Decimal` 类型比较运算的性能。修复了 [#28192](https://github.com/ClickHouse/ClickHouse/issues/28192)。[#90153](https://github.com/ClickHouse/ClickHouse/pull/90153)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 为 Apache Paimon 函数添加分区裁剪支持,延续自 [https://github.com/ClickHouse/ClickHouse/pull/84423](https://github.com/ClickHouse/ClickHouse/pull/84423)。 [#90253](https://github.com/ClickHouse/ClickHouse/pull/90253) ([JIaQi](https://github.com/JiaQiTang98))。 +* 通过动态派发在逻辑函数中使用高级 SIMD 操作。[#90432](https://github.com/ClickHouse/ClickHouse/pull/90432)([Raúl Marín](https://github.com/Algunenano))。 +* 避免不必要地将结果列初始化为零,从而提升 JIT 函数的执行性能。[#90449](https://github.com/ClickHouse/ClickHouse/pull/90449) ([Raúl Marín](https://github.com/Algunenano)). +* 通过动态分派加速 `T64` 解压缩。[#90610](https://github.com/ClickHouse/ClickHouse/pull/90610)([Raúl Marín](https://github.com/Algunenano))。 +* 优化 MergeTree 读取器的就地过滤。解决了 [#87119](https://github.com/ClickHouse/ClickHouse/issues/87119)。[#90630](https://github.com/ClickHouse/ClickHouse/pull/90630)([Xiaozhe Yu](https://github.com/wudidapaopao))。 +* 引入一个额外的启发式方法,以减小所选合并方案的宽度。执行更窄范围的合并会增加写放大,但同时可以帮助避免出现 `TOO_MANY_PARTS` 错误。[#91163](https://github.com/ClickHouse/ClickHouse/pull/91163) ([Mikhail Artemenko](https://github.com/Michicosun))。 +* 通过下推 `_path` 过滤条件,提升使用通配符模式创建的 S3 表的查询性能,从而可以避免执行 S3 列表操作。由 `s3_path_filter_limit` 设置项控制。[#91165](https://github.com/ClickHouse/ClickHouse/pull/91165) ([Eduard Karacharov](https://github.com/korowa))。 +* 通过动态分派加速在 `WHERE` 子句中将列转换为 bool 类型的过程。 [#91203](https://github.com/ClickHouse/ClickHouse/pull/91203) ([Raúl Marín](https://github.com/Algunenano)). +* 借助动态分派加速单个数值块的排序。[#91213](https://github.com/ClickHouse/ClickHouse/pull/91213)([Raúl Marín](https://github.com/Algunenano))。 +* 新增优化,在查询计划中移除未使用的列。解决了 [#75152](https://github.com/ClickHouse/ClickHouse/issues/75152)。[#76487](https://github.com/ClickHouse/ClickHouse/pull/76487)([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 +* `query_plan_optimize_join_order_limit` 的默认值已修改为 `10`。[#89312](https://github.com/ClickHouse/ClickHouse/pull/89312)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 默认启用 `allow_statistics_optimize` 设置,使 JOIN 优化器可以使用列统计信息。[#89332](https://github.com/ClickHouse/ClickHouse/pull/89332)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 为 `ANTI` JOIN 提供 JOIN 运行时过滤器支持。同时重构运行时过滤器的实现,以减少锁竞争。[#89710](https://github.com/ClickHouse/ClickHouse/pull/89710) ([Dmitry Novik](https://github.com/novikd))。 +* 在 `system.metric_log` 表(默认启用)中合并数据时,通过将 `min_bytes_for_wide_part` 和 `vertical_merge_algorithm_min_bytes_to_activate` 设置为 128MB,降低内存占用。[#89811](https://github.com/ClickHouse/ClickHouse/pull/89811)([filimonov](https://github.com/filimonov))。 +* 在 `PREWHERE` 中启用倒排索引。解决 [#89975](https://github.com/ClickHouse/ClickHouse/issues/89975)。[#89977](https://github.com/ClickHouse/ClickHouse/pull/89977)([Peng Jian](https://github.com/fastio))。 +* 在使用 GCP OAuth 时,不要配置 S3 providers,从而提升在 GCS 上的性能。 [#91706](https://github.com/ClickHouse/ClickHouse/pull/91706) ([Antonio Andelic](https://github.com/antonio2368)). + +#### 改进 {#improvement} + +* 新增了一个名为 `apply_row_policy_after_final` 的新 SETTING,它允许查询仅在执行 `FINAL` 之后才应用 ROW POLICY,从而使带有 ROW POLICY 的 ReplacingMergeTree 表的行为更加合理。修复了 [#90986](https://github.com/ClickHouse/ClickHouse/issues/90986)。[#91065](https://github.com/ClickHouse/ClickHouse/pull/91065)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 在 `Pretty` 格式中,命名元组现在以 Pretty JSON 的形式显示。此更改修复了 [#65022](https://github.com/ClickHouse/ClickHouse/issues/65022)。[#91779](https://github.com/ClickHouse/ClickHouse/pull/91779)([Mostafa Mohamed Salah](https://github.com/Sasao4o))。 +* 向 `system.error_log` 表中添加了 `last_error_time`、`last_error_message`、`last_error_query_id` 和 `last_error_trace` 字段。[#89879](https://github.com/ClickHouse/ClickHouse/pull/89879)([Narasimha Pakeer](https://github.com/npakeer))。 +* CLI 客户端现在可以通过指定 `--no-server-client-version-message` 或 `false` 来屏蔽 “ClickHouse server version is older than ClickHouse client. It may indicate that the server is out of date and can be upgraded” 这一消息。[#87784](https://github.com/ClickHouse/ClickHouse/pull/87784) ([Larry Snizek](https://github.com/larry-cdn77))。 +* 添加错误信息,用于指明该 part 已被去重。 [#80264](https://github.com/ClickHouse/ClickHouse/pull/80264) ([Aleksandr Musorin](https://github.com/AVMusorin)). +* 为 `system.kafka_consumers` 新增了 `dependencies` 和 `missing_dependencies` 列,用于报告 Kafka 表的 materialized view 目标表。新增 `KafkaMVNotReady` 计数器。[#85346](https://github.com/ClickHouse/ClickHouse/pull/85346) ([Ilya Golshtein](https://github.com/ilejn))。 +* 现在,表的默认表达式在通过 `remote` 和原生协议插入数据时能够正确生效。修复了 [#87972](https://github.com/ClickHouse/ClickHouse/issues/87972)。[#88540](https://github.com/ClickHouse/ClickHouse/pull/88540)([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 +* 支持禁用 `PSI_*_*` 异步指标收集。[#88557](https://github.com/ClickHouse/ClickHouse/pull/88557) ([MikhailBurdukov](https://github.com/MikhailBurdukov))。 +* 为 `Nullable` 类型列新增了对稀疏序列化的支持。该改动延续了 [#44539](https://github.com/ClickHouse/ClickHouse/issues/44539)。[#88999](https://github.com/ClickHouse/ClickHouse/pull/88999) ([Amos Bird](https://github.com/amosbird))。 +* `plain-rewritable` 磁盘有其独立的实现和布局,不再基于常规 `plain` 磁盘实现。[#89807](https://github.com/ClickHouse/ClickHouse/pull/89807) ([Mikhail Artemenko](https://github.com/Michicosun)). +* HTTP 中的任何异常都不应包含末尾的零长度分块。 [#89998](https://github.com/ClickHouse/ClickHouse/pull/89998) ([Kaviraj Kanagaraj](https://github.com/kavirajk)). +* 在握手期间在 keeper 服务器端添加检查,当 `last_zxid_seen (provided by the client) > last_processed_zxid` 时拒绝客户端连接。这样可以在客户端重新连接到滞后副本时防止发生陈旧读。[#90016](https://github.com/ClickHouse/ClickHouse/pull/90016) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* 将 `kafka_consumer_reschedule_ms` 添加为可调的 `Kafka` 表引擎 SETTING,用于调整消费者在等待新数据时的休眠时长。解决 [#89204](https://github.com/ClickHouse/ClickHouse/issues/89204)。[#90112](https://github.com/ClickHouse/ClickHouse/pull/90112)([Jeremy Aguilon](https://github.com/JerAguilon))。 +* 向 `system.mutations` 新增列 `parts_in_progress_names`,以改进诊断能力。 [#90155](https://github.com/ClickHouse/ClickHouse/pull/90155) ([Shaohua Wang](https://github.com/tiandiwonder))。 +* 在 S3 库解析 XML 响应时,对网络错误进行重试。[#90216](https://github.com/ClickHouse/ClickHouse/pull/90216) ([Sema Checherinda](https://github.com/CheSema)). +* 我们将把 keeper 运行在单独的服务器进程中,并且为避免在大规模区域中对 Prometheus 造成过大压力,将继续只暴露与 keeper 相关的指标。[#90244](https://github.com/ClickHouse/ClickHouse/pull/90244) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* 除了旧的 `~/.clickhouse-client/` 路径外,新增支持从 XDG Base Directory 路径(例如 `~/.config/clickhouse/config.xml`)加载 ClickHouse Client 配置。修复 [#89882](https://github.com/ClickHouse/ClickHouse/issues/89882)。[#90306](https://github.com/ClickHouse/ClickHouse/pull/90306)([Wujun Jiang](https://github.com/rainac1))。 +* 在 Keeper 中为追加请求批次新增了字节大小限制。该限制由 `keeper_server.coordination_settings.max_requests_append_bytes_size` 控制。[#90342](https://github.com/ClickHouse/ClickHouse/pull/90342)([Antonio Andelic](https://github.com/antonio2368))。 +* 为 Iceberg 添加一个设置,用于防止分区数量过多。 [#90365](https://github.com/ClickHouse/ClickHouse/pull/90365) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* 在接近 guardrails 限制时更新警告信息:显示当前值和抛出异常阈值。 [#90438](https://github.com/ClickHouse/ClickHouse/pull/90438) ([Nikita Fomichev](https://github.com/fm4v)). +* 在 `system.filesystem_cache` 表中以流式方式分块处理,而不是创建一个包含所有缓存状态的单一块。对于大型缓存,读取文件系统缓存状态可能耗时很长且会消耗大量内存,因此对于大型部署来说,流式处理是不可或缺的。[#90508](https://github.com/ClickHouse/ClickHouse/pull/90508) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 修复 Hive 分区中的异常信息:之前缺少一个空格。[#90685](https://github.com/ClickHouse/ClickHouse/pull/90685) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 当表的分区片段被删除或被新的分区片段替换时,向量相似度索引缓存中的条目现在会被移除。在此之前,这些条目仅会在缓存逐出时被惰性清理。[#90750](https://github.com/ClickHouse/ClickHouse/pull/90750) ([Shankar Iyer](https://github.com/shankar-iyer)). +* 将 chdig(命令行 ClickHouse 诊断工具)更新到 [v25.12.1](https://github.com/azat/chdig/releases/tag/v25.12.1)。[#91394](https://github.com/ClickHouse/ClickHouse/pull/91394)([Azat Khuzhin](https://github.com/azat))。 +* 现在已支持在 S3 中使用预签名 URL。解决了 [#65032](https://github.com/ClickHouse/ClickHouse/issues/65032)。[#90827](https://github.com/ClickHouse/ClickHouse/pull/90827)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 文本索引现已支持用于 `ReplacingMergeTree` 表。[#90908](https://github.com/ClickHouse/ClickHouse/pull/90908)([Elmi Ahmadov](https://github.com/ahmadov))。 +* 避免在身份验证之前返回的 HTTP 错误响应中暴露 ClickHouse 服务器版本信息。[#91003](https://github.com/ClickHouse/ClickHouse/pull/91003) ([filimonov](https://github.com/filimonov))。 +* 现在,当 HTTP 客户端连接数达到 `hard_limit` 时,将抛出 `HTTP_CONNECTION_LIMIT_REACHED` 异常。对于磁盘连接,该值被设置为 `20000`。[#91016](https://github.com/ClickHouse/ClickHouse/pull/91016) ([Sema Checherinda](https://github.com/CheSema))。 +* 引入 `system.background_schedule_pool{,_log}`,以改进对后台作业的观测与分析。 [#91157](https://github.com/ClickHouse/ClickHouse/pull/91157) ([Azat Khuzhin](https://github.com/azat)). +* 现在可以在 Web UI 的查询编辑器中使用 `Ctrl+/`(在 Mac 上为 `Cmd+/`)快速对当前选中的行进行注释或取消注释,从而更方便地在测试时临时禁用查询中的部分内容。[#91160](https://github.com/ClickHouse/ClickHouse/pull/91160) ([Samuel K.](https://github.com/OpenGLShaders))。 +* 将 `system.completions` 添加到始终可访问的表列表中。 [#91166](https://github.com/ClickHouse/ClickHouse/pull/91166) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 +* 新增 profile event `FailedInitialQuery` 和 `FailedInitialSelectQuery`。[#91172](https://github.com/ClickHouse/ClickHouse/pull/91172) ([RinChanNOW](https://github.com/RinChanNOWWW))。 +* 通过遵循 `merge_tree_use_prefixes_deserialization_thread_pool` 设置而非无条件使用线程池,修复了在读取包含大量子列的 JSON 列样本数据时可能出现的线程池资源耗尽问题。[#91208](https://github.com/ClickHouse/ClickHouse/pull/91208) ([Raufs Dunamalijevs](https://github.com/rienath))。 +* 为 `tupleElement` 增加对 `JSON` 类型的支持。关闭 [#81630](https://github.com/ClickHouse/ClickHouse/issues/81630)。[#91327](https://github.com/ClickHouse/ClickHouse/pull/91327)([Pavel Kruglov](https://github.com/Avogar))。 +* 修复了在启用用户空间页面缓存时出现的误报内存限制错误。[#91361](https://github.com/ClickHouse/ClickHouse/pull/91361) ([Michael Kolupaev](https://github.com/al13n321)). +* Ngrams 分词器现在可以在 ngram_length = 1 时构建。 [#91529](https://github.com/ClickHouse/ClickHouse/pull/91529) ([George Larionov](https://github.com/george-larionov)). +* 在 `INSERT INTO FUNCTION` 中支持在函数内指定存储设置,其方式与当前在 `SELECT` 中的支持一致。关闭 [#89386](https://github.com/ClickHouse/ClickHouse/issues/89386)。[#91707](https://github.com/ClickHouse/ClickHouse/pull/91707)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 针对数据湖的 truncate 查询,不再静默忽略该操作,而是抛出 “not implemented” 异常。修复了 [#86604](https://github.com/ClickHouse/ClickHouse/issues/86604)。[#91713](https://github.com/ClickHouse/ClickHouse/pull/91713) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* 为 Parquet v3 读取器设置最大消息大小限制,以避免触发 `DB::Exception: apache::thrift::transport::TTransportException: MaxMessageSize reached`。[#91737](https://github.com/ClickHouse/ClickHouse/pull/91737)([Arthur Passos](https://github.com/arthurpassos))。 +* 添加了一个 `insert_select_deduplicate` 设置项,使得在执行 `INSERT SELECT` 时如何处理插入去重更加清晰。总体来说,这类查询通常无法进行去重,但如果目标表没有发生变化且结果是有序的,那么在重试时就有可能进行去重。我们无法跟踪数据源是否相同,但可以检查 `SELECT` 查询的结果是否已排序。实际上结果表明,在一般情况下要检查这一点非常困难,但对于使用 `ORDER BY ALL` 的简单场景则很容易。目前这一逻辑实际上是有问题的:我们尝试做去重,但在大多数情况下,它根本无法在数据块之间发现重复,因为 `SELECT` 返回了不同的数据。[#91830](https://github.com/ClickHouse/ClickHouse/pull/91830)([Sema Checherinda](https://github.com/CheSema))。 +* 在将 `Array` 转换为 `QBit` 时允许隐式类型转换。现在可以将整数数组和浮点数数组直接插入到 `QBit` 列中,而无需显式类型转换。 [#91846](https://github.com/ClickHouse/ClickHouse/pull/91846) ([Raufs Dunamalijevs](https://github.com/rienath)). +* 新增 `CapnProto` 消息大小限制。可通过 `format_capn_proto_max_message_size` 进行修改。[#91888](https://github.com/ClickHouse/ClickHouse/pull/91888) ([Antonio Andelic](https://github.com/antonio2368)). +* 优化 mark 缓存指标,使其仅跟踪查询(在 [#83415](https://github.com/ClickHouse/ClickHouse/issues/83415) 中将 `MarkCacheHits`/`MarkCacheMisses` 扩展为同时统计合并后,本 PR 将把该行为恢复为原状)。[#91910](https://github.com/ClickHouse/ClickHouse/pull/91910)([Azat Khuzhin](https://github.com/azat))。 +* 修复本地连接的 `client_info.interface` 被设置为 `TCP` 的问题。 [#91933](https://github.com/ClickHouse/ClickHouse/pull/91933) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* ACME 客户端配置中的 `refresh_certificates_task_interval` 参数现在需要以秒为单位的值。[#92211](https://github.com/ClickHouse/ClickHouse/pull/92211)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 将 `system.*_log` 的分区片段事件记录到 `system.part_log` 中。 [#92217](https://github.com/ClickHouse/ClickHouse/pull/92217) ([Azat Khuzhin](https://github.com/azat)). + +#### Bug 修复(官方稳定版中对用户可见的错误行为) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* 修复了在 PREWHERE 中处理 `Time` 和 `Time64` 数据类型的超类型时的一些错误。解决了 [#84544](https://github.com/ClickHouse/ClickHouse/issues/84544)。[#84715](https://github.com/ClickHouse/ClickHouse/pull/84715)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 在使用前初始化 `DNSResolver`,以使其遵循自定义设置。修复了 [#76296](https://github.com/ClickHouse/ClickHouse/issues/76296)。[#81302](https://github.com/ClickHouse/ClickHouse/pull/81302)([Zhigao Hong](https://github.com/zghong))。 +* 修复在某些情况下从列名包含点号的列中读取子列的问题。解决了 [#81261](https://github.com/ClickHouse/ClickHouse/issues/81261)、[#82058](https://github.com/ClickHouse/ClickHouse/issues/82058)、[#88169](https://github.com/ClickHouse/ClickHouse/issues/88169)。[#87205](https://github.com/ClickHouse/ClickHouse/pull/87205)([Pavel Kruglov](https://github.com/Avogar))。 +* 修复 GenerateRandom 引擎在使用非字面量参数时崩溃的问题:改为返回带有清晰错误信息的 BAD_ARGUMENTS,而不是 LOGICAL_ERROR。 [#88157](https://github.com/ClickHouse/ClickHouse/pull/88157) ([Shafi Ahmed](https://github.com/ita004)). +* 修复在包含 `UNION` 时删除未使用 PROJECTION 列的问题。修复了 [#88180](https://github.com/ClickHouse/ClickHouse/issues/88180)。[#88350](https://github.com/ClickHouse/ClickHouse/pull/88350)([Sema Checherinda](https://github.com/CheSema))。 +* 修复了在主键按降序排序时 `JOIN` 优化中的错误分片问题。解决了 [#88512](https://github.com/ClickHouse/ClickHouse/issues/88512)。[#88794](https://github.com/ClickHouse/ClickHouse/pull/88794)([Amos Bird](https://github.com/amosbird))。 +* 重新启用 s3queue_keeper_fault_injection_probablility,并修复相关问题。 [#88800](https://github.com/ClickHouse/ClickHouse/pull/88800) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 修复了多个由于在生存时间(TTL)中提前删除列而引发的问题。解决了 [#88002](https://github.com/ClickHouse/ClickHouse/issues/88002)。[#88860](https://github.com/ClickHouse/ClickHouse/pull/88860)([Amos Bird](https://github.com/amosbird))。 +* 当将 `temporary_files_buffer_size` 设置为 0 时抛出异常。解决了 [#88900](https://github.com/ClickHouse/ClickHouse/issues/88900)。[#88917](https://github.com/ClickHouse/ClickHouse/pull/88917)([Vladimir Cherkasov](https://github.com/vdimir))。 +* 修复在进行 `Set` 索引分析时,当谓词包含 `NULL` 常量时会发生的 `Bad get` 错误。修复了 [#84856](https://github.com/ClickHouse/ClickHouse/issues/84856) 和 [#82974](https://github.com/ClickHouse/ClickHouse/issues/82974)。[#89429](https://github.com/ClickHouse/ClickHouse/pull/89429)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 修复 `Cannot add subcolumn X.Y: column with this name already exists` 错误。解决了 [#89599](https://github.com/ClickHouse/ClickHouse/issues/89599)。[#89602](https://github.com/ClickHouse/ClickHouse/pull/89602)([Azat Khuzhin](https://github.com/azat))。 +* 修复了 `theilsU` 和 `contingency` 函数中的缺陷,这些缺陷会导致结果不正确。[#89760](https://github.com/ClickHouse/ClickHouse/pull/89760) ([Nihal Z. Miaji](https://github.com/nihalzp)). +* 修复 Alias 稳定性问题:修复 SharedDatabaseCatalog 中的 StrictnessLevel,禁止目标也是别名,并实现附加接口(getSerializationHints、supportsReplication、getStoragePolicy、totalBytesUncompressed、lifetimeRows、lifetimeBytes、storesDataOnDisk、tryLockForShare、lockForShare)。解决 [#89106](https://github.com/ClickHouse/ClickHouse/issues/89106)。[#89812](https://github.com/ClickHouse/ClickHouse/pull/89812)([Kai Zhu](https://github.com/nauu))。 +* 修复了在启用 `enable_lazy_columns_replication` 时,远程查询中在 `IN` 子句内使用 `ARRAY JOIN` 可能导致的崩溃。解决了 [#90361](https://github.com/ClickHouse/ClickHouse/issues/90361)。[#89997](https://github.com/ClickHouse/ClickHouse/pull/89997)([Pavel Kruglov](https://github.com/Avogar))。 +* 修复在使用 `analyzer_compatibility_join_using_top_level_identifier` 执行多个 JOIN 操作时可能出现的逻辑错误。[#90010](https://github.com/ClickHouse/ClickHouse/pull/90010) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* 修复了在某些情况下从文本格式的字符串中错误推断出无效 DateTime64 值的问题。修复了 [#89368](https://github.com/ClickHouse/ClickHouse/issues/89368)。[#90013](https://github.com/ClickHouse/ClickHouse/pull/90013)([Pavel Kruglov](https://github.com/Avogar))。 +* 在从聚合状态和其他来源反序列化数据时进行大小检查。 [#90031](https://github.com/ClickHouse/ClickHouse/pull/90031) ([Raúl Marín](https://github.com/Algunenano))。 +* 根据卷的容量特性拆分分区片段范围,以在冷存储卷上启用基于生存时间 (TTL) 的删除合并。应用此补丁后,最大 TTL 小于当前时间的分区片段将会从冷存储中移除。该算法只会调度**单个分区片段删除**操作。[#90059](https://github.com/ClickHouse/ClickHouse/pull/90059) ([Mikhail Artemenko](https://github.com/Michicosun))。 +* 在使用 `kafka_handle_error_mode = 'dead_letter_queue'` 配置创建 Kafka 表且未配置 `system.dead_letter_queue` 表的情况下,服务器可能会发生崩溃。该问题已修复。解决了 [#87573](https://github.com/ClickHouse/ClickHouse/issues/87573)。[#90064](https://github.com/ClickHouse/ClickHouse/pull/90064)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* 修复在使用 `ARRAY JOIN` 插入数据且启用 `enable_lazy_columns_replication` 设置时可能出现的错误 `Column with Array type is not represented by ColumnArray column: Replicated`。 [#90066](https://github.com/ClickHouse/ClickHouse/pull/90066) ([Pavel Kruglov](https://github.com/Avogar)). +* 修复了在服务器正常关闭过程中由于错误的销毁顺序导致的崩溃。解决了 [#82420](https://github.com/ClickHouse/ClickHouse/issues/82420)。 [#90076](https://github.com/ClickHouse/ClickHouse/pull/90076)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* 修复在使用较大步长时 `numbers` 系统表中的逻辑错误和模运算 bug。关闭 [#83398](https://github.com/ClickHouse/ClickHouse/issues/83398)。[#90123](https://github.com/ClickHouse/ClickHouse/pull/90123)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* 修复在使用原生 writer 进行单线程写入时,Parquet 写入未能保留原始顺序的问题。部分回退了 [https://github.com/ClickHouse/ClickHouse/pull/64424/files](https://github.com/ClickHouse/ClickHouse/pull/64424/files)。[#90126](https://github.com/ClickHouse/ClickHouse/pull/90126) ([Arthur Passos](https://github.com/arthurpassos))。 +* 不再对 LIMIT/OFFSET 表达式应用常量节点优化。修复了 [#89607](https://github.com/ClickHouse/ClickHouse/issues/89607)。[#90156](https://github.com/ClickHouse/ClickHouse/pull/90156)([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 +* 修复 Hive 分区不兼容问题,避免在 25.8 中升级受阻(修复升级期间出现的错误 `All hive partitioning columns must be present in the schema`)。[#90202](https://github.com/ClickHouse/ClickHouse/pull/90202)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 修复在使用 Glue catalog 时,Iceberg 表中 timestamp 列导致的 JSON 异常。解决了 [#90210](https://github.com/ClickHouse/ClickHouse/issues/90210)。[#90209](https://github.com/ClickHouse/ClickHouse/pull/90209)([Alsu Giliazova](https://github.com/alsugiliazova))。 +* 修复当某个 part 所含的行数少于 index_granularity 时,MergeTreeReaderIndex 中行数不匹配的问题。修复了 [#89691](https://github.com/ClickHouse/ClickHouse/issues/89691)。[#90254](https://github.com/ClickHouse/ClickHouse/pull/90254)([Peng Jian](https://github.com/fastio))。 +* 修复在 `WITH FILL` 查询中处理无限 `nan`/`inf` 的问题。解决了 [#69261](https://github.com/ClickHouse/ClickHouse/issues/69261)。[#90255](https://github.com/ClickHouse/ClickHouse/pull/90255)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 修复在 `query_plan_use_logical_join_step=0` 且 JOIN ON 子句中存在剩余条件时出现的 'column not found' 错误。修复了 [#88635](https://github.com/ClickHouse/ClickHouse/issues/88635)。[#90279](https://github.com/ClickHouse/ClickHouse/pull/90279)([Vladimir Cherkasov](https://github.com/vdimir))。 +* 修复了一些使用聚合 PROJECTION 优化的查询问题。[#90288](https://github.com/ClickHouse/ClickHouse/pull/90288) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* 修复在紧凑分区片段中从 JSON 读取子列时的一个错误,该错误可能导致 `CANNOT_READ_ALL_DATA` 报错。解决了 [#90264](https://github.com/ClickHouse/ClickHouse/issues/90264)。[#90302](https://github.com/ClickHouse/ClickHouse/pull/90302)([Pavel Kruglov](https://github.com/Avogar))。 +* 现在,如果 manifest 文件中未指定排序顺序,或者与表中的 `default_sort_order` 不一致,ClickHouse 将不会对 Iceberg 表使用按顺序读取的优化。修复了 [#89178](https://github.com/ClickHouse/ClickHouse/issues/89178)。[#90304](https://github.com/ClickHouse/ClickHouse/pull/90304)([alesapin](https://github.com/alesapin))。 +* Time 和 Time64 现在在从 DateTime 和 DateTime64 转换时会正确尊重时区(必须显示与作为 DateTime[64] 向用户显示时相同的时区时间)。修复了 [#89896](https://github.com/ClickHouse/ClickHouse/issues/89896)。[#90310](https://github.com/ClickHouse/ClickHouse/pull/90310)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 修复了一个缺陷:`SELECT CAST(CAST(now(), 'Time'), 'Time64')` 会产生不正确的结果。关闭 [#88349](https://github.com/ClickHouse/ClickHouse/issues/88349)。[#90324](https://github.com/ClickHouse/ClickHouse/pull/90324)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 修复了因 `randomStringUTF8` 中的整数溢出导致的崩溃。 [#90326](https://github.com/ClickHouse/ClickHouse/pull/90326) ([Michael Kolupaev](https://github.com/al13n321)). +* 修复了在使用 `multicluster_root_path` 的多集群环境中集群发现更新的处理方式,防止出现延迟或遗漏 ZooKeeper 更新。[#90341](https://github.com/ClickHouse/ClickHouse/pull/90341) ([RinChanNOW](https://github.com/RinChanNOWWW))。 +* 修复在不存在的 JSON 路径上使用 `prewhere` 且 `index_granularity_bytes=0` 时可能出现的逻辑错误。解决了 [#86924](https://github.com/ClickHouse/ClickHouse/issues/86924)。[#90375](https://github.com/ClickHouse/ClickHouse/pull/90375)([Pavel Kruglov](https://github.com/Avogar))。 +* 修复了 `L2DistanceTransposed` 中的一个错误,该错误在精度参数超出有效范围时会导致崩溃。关闭了 [#90401](https://github.com/ClickHouse/ClickHouse/issues/90401)。[#90405](https://github.com/ClickHouse/ClickHouse/pull/90405)([Raufs Dunamalijevs](https://github.com/rienath))。 +* 修复在将 `Array(Dynamic)` 作为参数使用时 `arrayUnion` 中可能出现的逻辑错误。解决了 [#90270](https://github.com/ClickHouse/ClickHouse/issues/90270)。[#90409](https://github.com/ClickHouse/ClickHouse/pull/90409)([Pavel Kruglov](https://github.com/Avogar))。 +* 修复在一次 ALTER 操作中对同一个 Nested 列同时进行重命名和修改时可能出现的逻辑错误。解决了 [#90406](https://github.com/ClickHouse/ClickHouse/issues/90406)。[#90412](https://github.com/ClickHouse/ClickHouse/pull/90412)([Pavel Kruglov](https://github.com/Avogar))。 +* 修复从 HTTP 参数解析 JSON/Dynamic/Variant 值的错误,解决了 [#88925](https://github.com/ClickHouse/ClickHouse/issues/88925)。[#90430](https://github.com/ClickHouse/ClickHouse/pull/90430)([Pavel Kruglov](https://github.com/Avogar))。 +* 修复了 Hive 分区中的一个竞争条件,其中静态的 `KeyValuePairExtractor` 在并发读取文件时可能导致数据损坏或崩溃。[#90474](https://github.com/ClickHouse/ClickHouse/pull/90474)([Paresh Joshi](https://github.com/pareshjoshij))。 +* 修复了在使用数组引用向量(默认类型为 `Array(Float64))`)与元素类型非 `Float64`(如 `Float32`、`BFloat16`)的 `QBit` 列时,`L2DistanceTransposed` 中错误的距离计算问题。该函数现在会自动将引用向量转换为与 `QBit` 元素类型匹配的类型。修复了 [#89976](https://github.com/ClickHouse/ClickHouse/issues/89976)。[#90485](https://github.com/ClickHouse/ClickHouse/pull/90485)([Raufs Dunamalijevs](https://github.com/rienath))。 +* 修复了一个问题:对负参数调用 `toDateTimeOrNull` 会返回 NULL。 [#90490](https://github.com/ClickHouse/ClickHouse/pull/90490) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 修复在以 `Arrow` 格式输出 `LowCardinality(Bool/Date32)` 时可能存在的逻辑错误。解决了 [#83883](https://github.com/ClickHouse/ClickHouse/issues/83883)。[#90505](https://github.com/ClickHouse/ClickHouse/pull/90505)([Pavel Kruglov](https://github.com/Avogar))。 +* 修复了 IPv4 解析函数(例如 `IPv4StringToNumOrDefault`)在某些无效输入时返回异常值的问题。修复了 [#90544](https://github.com/ClickHouse/ClickHouse/issues/90544)。修复了 [#87583](https://github.com/ClickHouse/ClickHouse/issues/87583)。[#90545](https://github.com/ClickHouse/ClickHouse/pull/90545)([Michael Kolupaev](https://github.com/al13n321))。 +* 在进行本地主机检查时如解析地址失败,则重试执行 markReplicasActive:在 DDLTask 中进行自身主机检查时,如发生异常则打印警告日志。在 DDLWorker::markReplicasActive 中,如果未找到本地主机但在集群中存在主机 ID,则抛出异常以触发重试。 [#90556](https://github.com/ClickHouse/ClickHouse/pull/90556) ([Tuan Pham Anh](https://github.com/tuanpach)). +* 修复了在极少数情况下由 `equals` 函数引发的逻辑错误。关闭 [#88142](https://github.com/ClickHouse/ClickHouse/issues/88142)。 [#90557](https://github.com/ClickHouse/ClickHouse/pull/90557)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* 有望修复 `test_ssh/test.py::test_paramiko_password` 中由 ThreadSanitizer 引发的崩溃。[#90612](https://github.com/ClickHouse/ClickHouse/pull/90612)([Govind R Nair](https://github.com/Revertionist))。 +* 修复了在 `concatWithSeparator` 函数中使用常量非字符串列时的逻辑错误。关闭 [#90596](https://github.com/ClickHouse/ClickHouse/issues/90596)。[#90655](https://github.com/ClickHouse/ClickHouse/pull/90655)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* 修复 `INTO OUTFILE` 的格式问题。解决了 [#90207](https://github.com/ClickHouse/ClickHouse/issues/90207)。[#90656](https://github.com/ClickHouse/ClickHouse/pull/90656)([Azat Khuzhin](https://github.com/azat))。 +* 修复在执行包含子查询且 `allow_statistics_optimize=1` 的 mutation 时可能发生的崩溃。解决了 [#90626](https://github.com/ClickHouse/ClickHouse/issues/90626)。[#90664](https://github.com/ClickHouse/ClickHouse/pull/90664)([Azat Khuzhin](https://github.com/azat))。 +* 修复了在同时使用 `LIMIT BY` 与 `GROUP BY` 时的分析器校验逻辑:当 `LIMIT BY` 使用了不在 `GROUP BY` 中的列时,现在会正确报告 `NOT_AN_AGGREGATE` 错误,而不再是 `NOT_FOUND_COLUMN_IN_BLOCK`。修复 [#89713](https://github.com/ClickHouse/ClickHouse/issues/89713)。[#90665](https://github.com/ClickHouse/ClickHouse/pull/90665)([xiaohuanlin](https://github.com/xiaohuanlin))。 +* 修复了在分区键中使用 `LowCardinality` 列时出现的类型转换错误。关闭 [#89412](https://github.com/ClickHouse/ClickHouse/issues/89412)。[#90666](https://github.com/ClickHouse/ClickHouse/pull/90666)([xiaohuanlin](https://github.com/xiaohuanlin))。 +* 修复了这样的问题:当查询的过滤谓词中包含由非确定性函数(例如 `shardNum()`) 常量折叠得到的常量时,可能会被错误地使用查询条件缓存。[#90692](https://github.com/ClickHouse/ClickHouse/pull/90692) ([Eduard Karacharov](https://github.com/korowa))。 +* 修复在 JOIN ON 子句中使用 EXISTS 函数的查询触发的段错误。现在该查询会直接返回 `INVALID_JOIN_ON_EXPRESSION` 错误。关闭 [#90698](https://github.com/ClickHouse/ClickHouse/issues/90698)。[#90719](https://github.com/ClickHouse/ClickHouse/pull/90719)([Vladimir Cherkasov](https://github.com/vdimir))。 +* 修复在使用默认数据库且没有任何表时,`AccessRightsElement` 出现的逻辑错误:'Inconsistent AST formatting'。[#90742](https://github.com/ClickHouse/ClickHouse/pull/90742) ([Pablo Marcos](https://github.com/pamarcos))。 +* 修复在使用 `remote` 表函数且将目标主机设置为 `localhost` 时,对 `ALTER UPDATE` 查询的访问权限检查问题。 [#90761](https://github.com/ClickHouse/ClickHouse/pull/90761) ([pufit](https://github.com/pufit)). +* 修复 named collections 中隐藏机密信息的行为,使其由 `display_secrets_in_show_and_select` 和 `format_display_secrets_in_show_and_select` 控制。[#90765](https://github.com/ClickHouse/ClickHouse/pull/90765)([Pablo Marcos](https://github.com/pamarcos))。 +* 禁用 `enable_shared_storage_snapshot_in_query`(否则会导致内存泄漏)。[#90770](https://github.com/ClickHouse/ClickHouse/pull/90770) ([Azat Khuzhin](https://github.com/azat)). +* 修复在启用并行副本且使用分布式表进行 RIGHT JOIN 时出现的重复数据问题。 [#90806](https://github.com/ClickHouse/ClickHouse/pull/90806) ([zoomxi](https://github.com/zoomxi)). +* 修复 JSON 中共享数据和动态路径可能出现的潜在不一致状态,该问题可能导致逻辑错误和意外结果。[#90816](https://github.com/ClickHouse/ClickHouse/pull/90816)([Pavel Kruglov](https://github.com/Avogar))。 +* 修复在 SharedCatalog(仅 Cloud 可用功能)中,`ALTER MODIFY QUERY` 在 CSE 中处理 `dictGet()` 和字典名称时的问题。 [#90860](https://github.com/ClickHouse/ClickHouse/pull/90860) ([Azat Khuzhin](https://github.com/azat)). +* 修复 String 聚合状态在内存序列化中的兼容性问题。如果在不同版本的实例上执行聚合查询,采用不同的序列化方式可能会导致重复结果。可以通过 `serialize_string_in_memory_with_zero_byte` 启用新的序列化方式。 [#90880](https://github.com/ClickHouse/ClickHouse/pull/90880) ([Antonio Andelic](https://github.com/antonio2368)). +* 修复在频繁 INSERT 时 Buffer 的后台刷新问题。[#90892](https://github.com/ClickHouse/ClickHouse/pull/90892) ([Azat Khuzhin](https://github.com/azat)). +* 不要在 system.licenses 中列出 contrib/ 的上级目录。 [#90901](https://github.com/ClickHouse/ClickHouse/pull/90901) ([Raúl Marín](https://github.com/Algunenano)). +* 修复在读取 JSON/Dynamic/Variant 列时内存占用过高的问题。 [#90907](https://github.com/ClickHouse/ClickHouse/pull/90907) ([Pavel Kruglov](https://github.com/Avogar))。 +* 修复 `base58Decode` 函数的缓冲区分配问题。[#90909](https://github.com/ClickHouse/ClickHouse/pull/90909) ([Antonio Andelic](https://github.com/antonio2368))。 +* 修复了在发送带有 `finish=true` 标志的响应后,从副本再次收到读取请求时可能出现的逻辑错误。该问题是由于 `MergeTreeReadPoolParallelReplicas` 内部的逻辑竞态条件导致的,尽管实际发生的可能性极低。[#90921](https://github.com/ClickHouse/ClickHouse/pull/90921)([Nikita Taranov](https://github.com/nickitat))。 +* 修复在部分撤销时对通配符授权的检查。添加了更多测试。[#90922](https://github.com/ClickHouse/ClickHouse/pull/90922) ([pufit](https://github.com/pufit))。 +* 修复了 `SummingMergeTree` 对 `Nested` 类型 `LowCardinality` 列的聚合。 [#90927](https://github.com/ClickHouse/ClickHouse/pull/90927) ([Ivan Babrou](https://github.com/bobrik)). +* 修复在处理通配符撤销时的全局权限逻辑,解决撤销通配符授权时可能会误撤销某些全局级别权限(例如 `CREATE USER`)的问题。[#90928](https://github.com/ClickHouse/ClickHouse/pull/90928) ([pufit](https://github.com/pufit)). +* 修复使用 Azure 列举 blob 时可能出现的无限循环问题。 [#90947](https://github.com/ClickHouse/ClickHouse/pull/90947) ([Julia Kartseva](https://github.com/jkartseva)). +* 修复 Buffer 过于频繁刷写(消耗大量 CPU 资源并产生海量日志)。 [#91000](https://github.com/ClickHouse/ClickHouse/pull/91000) ([Azat Khuzhin](https://github.com/azat)). +* ... 不再允许将 adaptive_write_buffer_initial_size 设置为 0。 [#91001](https://github.com/ClickHouse/ClickHouse/pull/91001) ([Pedro Ferreira](https://github.com/PedroTadim)). +* 修复了 JSON 中的一个错误:在 Compact 分区片段中读取子对象时,如果某个路径既可能位于共享数据中,也可能位于动态路径中,而此时禁用了 `write_marks_for_substreams_in_compact_parts`,会导致问题。 [#91014](https://github.com/ClickHouse/ClickHouse/pull/91014) ([Pavel Kruglov](https://github.com/Avogar))。 +* 修复在不带参数的 dictGet 的 CTE 中发生的 std::out_of_range 异常。关闭 [#91027](https://github.com/ClickHouse/ClickHouse/issues/91027)。[#91022](https://github.com/ClickHouse/ClickHouse/pull/91022)([Pavel Kruglov](https://github.com/Avogar))。 +* 修复在变更操作中从物化列读取动态子列的问题。解决 [#90653](https://github.com/ClickHouse/ClickHouse/issues/90653)。[#91040](https://github.com/ClickHouse/ClickHouse/pull/91040)([Pavel Kruglov](https://github.com/Avogar))。 +* 修复了在与空数组和 `isNull` 函数一起使用时 `arrayFilter` 函数不起作用的问题。关闭 [#73849](https://github.com/ClickHouse/ClickHouse/issues/73849)。[#91105](https://github.com/ClickHouse/ClickHouse/pull/91105)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* 修复在表中某一列为空元组列时 `ARRAY JOIN` 的逻辑错误。关闭 [#90801](https://github.com/ClickHouse/ClickHouse/issues/90801)。[#91123](https://github.com/ClickHouse/ClickHouse/pull/91123)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* 修复在旧分区片段中通过 ALTER ADD COLUMN 新增的列的惰性物化问题。[#91142](https://github.com/ClickHouse/ClickHouse/pull/91142)([Pavel Kruglov](https://github.com/Avogar))。 +* 修复在 Summing/Aggregating/Coalescing MergeTree 中合并 JSON 列的问题。此前在写入分区片段时,可能会导致出现意外的动态路径。[#91151](https://github.com/ClickHouse/ClickHouse/pull/91151) ([Pavel Kruglov](https://github.com/Avogar)). +* 修复在向紧凑分区片段写入时可能出现的动态结构不一致问题,该问题可能导致段错误(segfault)。 [#91152](https://github.com/ClickHouse/ClickHouse/pull/91152) ([Pavel Kruglov](https://github.com/Avogar)). +* 修复对科学计数法表示的次正规浮点数值的解析。关闭 [#78903](https://github.com/ClickHouse/ClickHouse/issues/78903)。[#91162](https://github.com/ClickHouse/ClickHouse/pull/91162)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* 修复在对来源为具有隐式 schema 的数据源的子查询执行 `INSERT SELECT` 时出现的错误 schema 推断问题。 [#91204](https://github.com/ClickHouse/ClickHouse/pull/91204) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* 修复 [https://github.com/clickhouse/clickhouse/issues/91206](https://github.com/clickhouse/clickhouse/issues/91206):当我们创建带有 statistics 的表、写入一些数据并删除其中一个 statistics 后,再次读取时会发生崩溃。这是因为我们假定序列化和反序列化时 statistics 的类型集合保持一致。在此修复中,我们会检查当前元数据中是否包含已序列化的 statistics;如果不包含,则构造一个 mock statistics,并仅为了跳过它而进行反序列化。[#91227](https://github.com/ClickHouse/ClickHouse/pull/91227) ([Han Fei](https://github.com/hanfei1991))。 +* 修复了向 CoalescingMergeTree 中包含 JSON/Dynamic 和 LowCardinality 的 Tuple 列插入数据的问题。关闭 [#91215](https://github.com/ClickHouse/ClickHouse/issues/91215)。[#91270](https://github.com/ClickHouse/ClickHouse/pull/91270)([Pavel Kruglov](https://github.com/Avogar))。 +* 修复 `SYSTEM DROP FILESYSTEM CACHE ON CLUSTER` 命令。 [#91304](https://github.com/ClickHouse/ClickHouse/pull/91304) ([Anton Ivashkin](https://github.com/ianton-ru)). +* 修复可能的逻辑错误 "Bad cast from type DB::ColumnSparse to DB::ColumnNullable"。关闭 [#91284](https://github.com/ClickHouse/ClickHouse/issues/91284)。[#91309](https://github.com/ClickHouse/ClickHouse/pull/91309)([Pavel Kruglov](https://github.com/Avogar))。 +* 修复了一个崩溃问题:当恶意构造的字节流被反序列化为嵌套的 QBit 类型时会导致崩溃,这在理论上本不应发生,但可能被利用来使服务器崩溃。 [#91313](https://github.com/ClickHouse/ClickHouse/pull/91313) ([Raufs Dunamalijevs](https://github.com/rienath))。 +* 修复 Replicated 数据库中带有空参数的 Alias 表问题。已解决 [#91378](https://github.com/ClickHouse/ClickHouse/issues/91378)。[#91382](https://github.com/ClickHouse/ClickHouse/pull/91382)([Kai Zhu](https://github.com/nauu))。 +* 当前该 setting 为 false,因此当异步插入队列刷新到远程服务器时,插入始终以同步方式执行。即使对某个用户将该 setting 设为 True 也是如此。[#91386](https://github.com/ClickHouse/ClickHouse/pull/91386) ([Mikhail f. Shiryaev](https://github.com/Felixoid))。 +* 从合并算法的头部移除稀疏列。修复了 [#91377](https://github.com/ClickHouse/ClickHouse/issues/91377)。[#91396](https://github.com/ClickHouse/ClickHouse/pull/91396)([Pavel Kruglov](https://github.com/Avogar))。 +* 修复 25.8 版本中的 Hive 分区 bug,该问题可能会错误地抛出异常 `A hive partitioned file can't contain only partition columns`。 [#91403](https://github.com/ClickHouse/ClickHouse/pull/91403) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 修复在字典类型支持 Hierarchy 但没有任何列为 `HIERARCHICAL` 时,由 `NULL` 导致的 `dictGetDescendants` 崩溃。修复 [#92026](https://github.com/ClickHouse/ClickHouse/issues/92026)。修复 [#92121](https://github.com/ClickHouse/ClickHouse/issues/92121)。[#91420](https://github.com/ClickHouse/ClickHouse/pull/91420)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* 修复在 `IN` 函数中使用 lambda 表达式和非 const 元组参数时发生崩溃的问题。关闭 [#91379](https://github.com/ClickHouse/ClickHouse/issues/91379)。[#91446](https://github.com/ClickHouse/ClickHouse/pull/91446)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* 修复了由 `MaterializedView` 向不支持并行写入的存储执行插入操作时触发的并行写入问题。[#91449](https://github.com/ClickHouse/ClickHouse/pull/91449) ([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 +* 处理 Ytsaurus XML 字典中的 NULL 值。 [#91465](https://github.com/ClickHouse/ClickHouse/pull/91465) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* 修复了在使用类似 `SET param_q=[1,2,3,4]; SELECT {q:QBit(Float32,4)}` 的查询参数时会导致 `QBit` 类型出错的问题。[#91488](https://github.com/ClickHouse/ClickHouse/pull/91488)([Raufs Dunamalijevs](https://github.com/rienath))。 +* 修复在常量表达式中使用 untuple 时触发的 LOGICAL_ERROR。 [#91507](https://github.com/ClickHouse/ClickHouse/pull/91507) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* 修复 `librdkafka` 中可能存在的数据竞争。 [#91521](https://github.com/ClickHouse/ClickHouse/pull/91521) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* 修复因在 `remote` 函数中使用星号参数而引起的逻辑错误。关闭 [#90568](https://github.com/ClickHouse/ClickHouse/issues/90568)。[#91524](https://github.com/ClickHouse/ClickHouse/pull/91524)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* 修复了在从 ORC 格式读取 Date 和 DateTime64 类型数据时可能发生的溢出问题,关闭了 [#70976](https://github.com/ClickHouse/ClickHouse/issues/70976)。[#91572](https://github.com/ClickHouse/ClickHouse/pull/91572)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 禁止对 Object Storage 表引擎执行 ALTER 操作。例如,执行 `ALTER ADD PROJECTION` 可能会导致无法重启服务器,因为 Object Storage 引擎不支持 PROJECTION。 [#91573](https://github.com/ClickHouse/ClickHouse/pull/91573) ([Nikolay Degterinsky](https://github.com/evillique))。 +* 修复了在使用非常量参考向量(例如来自表的向量)时,[`L2DistanceTransposed`](https://clickhouse.com/docs/sql-reference/functions/distance-functions#L2DistanceTransposed) 返回错误结果的问题。[#91517](https://github.com/ClickHouse/ClickHouse/issues/91517)。[#91593](https://github.com/ClickHouse/ClickHouse/pull/91593)([Raufs Dunamalijevs](https://github.com/rienath))。 +* 修复了在调度阶段,JOIN 条件为 `FALSE` 时会返回 `LOGICAL_ERROR` 的问题。关闭 [#91173](https://github.com/ClickHouse/ClickHouse/issues/91173)。[#91598](https://github.com/ClickHouse/ClickHouse/pull/91598)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 修复在使用“额外过滤条件”的 `join` 中出现的内存占用升高问题,关闭 [#91011](https://github.com/ClickHouse/ClickHouse/issues/91011)。[#91664](https://github.com/ClickHouse/ClickHouse/pull/91664)([Vladimir Cherkasov](https://github.com/vdimir))。 +* 修复了在使用视图且启用并行副本时的 JOIN 查询。[#91813](https://github.com/ClickHouse/ClickHouse/pull/91813) ([Igor Nikonov](https://github.com/devcrafter))。 +* 修复了 Delta Lake 设置项 `delta_lake_snapshot_version` 的问题:在此前已经使用过快照版本的情况下,如果与表引擎(而非表函数)一起使用并将其值设为 -1(禁用),可能会产生不正确的结果。关闭 [#87676](https://github.com/ClickHouse/ClickHouse/issues/87676)。[#91818](https://github.com/ClickHouse/ClickHouse/pull/91818)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 修复 RecursiveCTEChunkGenerator 中的 LOGICAL_ERROR。 [#91827](https://github.com/ClickHouse/ClickHouse/pull/91827) ([Pablo Marcos](https://github.com/pamarcos)). +* 修复在使用 FINAL 和 PREWHERE 的查询中出现的块结构不匹配问题。 [#91847](https://github.com/ClickHouse/ClickHouse/pull/91847) ([Antonio Andelic](https://github.com/antonio2368)). +* 修复在启用 `join_use_nulls` 时,多个 join 与 cross join 同时使用所导致的逻辑错误。[#91853](https://github.com/ClickHouse/ClickHouse/pull/91853)([Vladimir Cherkasov](https://github.com/vdimir))。 +* 为共享数据和动态路径中可能因 [https://github.com/ClickHouse/ClickHouse/pull/90816](https://github.com/ClickHouse/ClickHouse/pull/90816) 中已修复的 bug 而出现重复路径的 JSON 添加修复机制。[#91886](https://github.com/ClickHouse/ClickHouse/pull/91886)([Pavel Kruglov](https://github.com/Avogar))。 +* 修复 ORC 读取器在读取使用 DICTIONARY_V2 编码且仅包含 NULL 值的字符串列时出现的错误。 [#91889](https://github.com/ClickHouse/ClickHouse/pull/91889) ([Peng Jian](https://github.com/fastio)). +* 修复了 Tuple 列中稀疏和 Nullable 子流之间的序列化不一致问题,该问题可能导致分区片段损坏或在读取期间发生崩溃。此修复对应 [https://github.com/ClickHouse/ClickHouse/pull/91851](https://github.com/ClickHouse/ClickHouse/pull/91851)。@Algunenano 能否请你帮忙检查一下这是否可以修复私有仓库中的压力测试?@CurtizJ 也能否请你帮忙看一下?谢谢![#91932](https://github.com/ClickHouse/ClickHouse/pull/91932) ([Amos Bird](https://github.com/amosbird))。 +* 修复了在 plain-rewritable 类型磁盘上创建备份时出现的 `Directory '{}' does not exist (LOGICAL_ERROR)` 错误。 [#91935](https://github.com/ClickHouse/ClickHouse/pull/91935) ([Julia Kartseva](https://github.com/jkartseva))。 +* 修复在连接具有命名集合的 MongoDB 时可能发生的崩溃。 [#91959](https://github.com/ClickHouse/ClickHouse/pull/91959) ([Antonio Andelic](https://github.com/antonio2368)). +* 修复在对紧凑分区片段执行某些 `ALTER` 查询后可能出现的 "TOO_MANY_MARKS" 错误。[#91980](https://github.com/ClickHouse/ClickHouse/pull/91980) ([alesapin](https://github.com/alesapin)). +* 关闭 [https://github.com/clickhouse/clickhouse/issues/87417](https://github.com/clickhouse/clickhouse/issues/87417):修复 v1 格式写入 schema 中的错误:字段 "added_snapshot_id" 的类型应该是 "long" 而不是 "null, long",因为这是必填字段。该 bug 会导致与 Spark 等其他系统不兼容。当我们混用这些系统的 manifest 文件时,就会触发该 bug。 [#92078](https://github.com/ClickHouse/ClickHouse/pull/92078) ([Han Fei](https://github.com/hanfei1991))。 +* 修正了 `readWKT` 和 `readWKB` 的名称,这两个函数在之前的版本中使用了错误的命名风格。 [#92094](https://github.com/ClickHouse/ClickHouse/pull/92094) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 修复 `midpoint` 函数中的多处逻辑错误、溢出问题和功能性缺陷。关闭 [#91816](https://github.com/ClickHouse/ClickHouse/issues/91816)。[#92102](https://github.com/ClickHouse/ClickHouse/pull/92102)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* 修复了在使用稀疏编码读取某些子列(例如字符串长度)时可能出现的错误结果。[#92156](https://github.com/ClickHouse/ClickHouse/pull/92156)([Pavel Kruglov](https://github.com/Avogar))。 +* 修复 `system.view_refreshes` 失败并报错 `No macro 'replica' in config` 的问题。 [#92203](https://github.com/ClickHouse/ClickHouse/pull/92203) ([Michael Kolupaev](https://github.com/al13n321)). +* 修复在 format 中进行 UDF 替换时的问题。 [#92210](https://github.com/ClickHouse/ClickHouse/pull/92210) ([Raúl Marín](https://github.com/Algunenano)). +* 在 `ddlworker::markreplicasactive` 中,如果未找到任何活跃主机,但 `remote_servers` 中存在一些 host_id,我们会记录一条警告日志而不是抛出异常。 [#92223](https://github.com/ClickHouse/ClickHouse/pull/92223) ([Tuan Pham Anh](https://github.com/tuanpach))。 +* 为运算符 `IN`、`NOT IN` 添加括号包裹。修复了 [#85075](https://github.com/ClickHouse/ClickHouse/issues/85075)。[#92225](https://github.com/ClickHouse/ClickHouse/pull/92225)([Mikhail f. Shiryaev](https://github.com/Felixoid))。 +* 修复 KeeperMap 和 Memory 表的备份问题。使用这两种引擎之一并将 `max_compress_block_size` 设置为 `0` 时创建这些表的备份可能会导致崩溃。 [#92237](https://github.com/ClickHouse/ClickHouse/pull/92237) ([Antonio Andelic](https://github.com/antonio2368))。 +* 修复了在从 Log 引擎中同时读取 String 数据和 .size 子列时发生的崩溃。修复了 [#89909](https://github.com/ClickHouse/ClickHouse/issues/89909)。其中包含了 [#92290](https://github.com/ClickHouse/ClickHouse/issues/92290) 中的一些提交。[#92341](https://github.com/ClickHouse/ClickHouse/pull/92341)([Amos Bird](https://github.com/amosbird))。 +* 修复在 `caseWithExpression` 函数参数中使用 `Nothing` 类型时产生的逻辑错误。关闭 [#85354](https://github.com/ClickHouse/ClickHouse/issues/85354)。[#92351](https://github.com/ClickHouse/ClickHouse/pull/92351)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* 修复在出现 MEMORY_LIMIT_EXCEEDED 后聚合函数可能崩溃的问题。 [#92390](https://github.com/ClickHouse/ClickHouse/pull/92390) ([Azat Khuzhin](https://github.com/azat)). + +#### 构建/测试/打包方面的改进 {#buildtestingpackaging-improvement} + +* 在 CI 中使用 `clang-21`。[#87074](https://github.com/ClickHouse/ClickHouse/pull/87074) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* 交叉编译时避免通过 CMake 下载。[#90506](https://github.com/ClickHouse/ClickHouse/pull/90506) ([Raúl Marín](https://github.com/Algunenano)). + +### ClickHouse 25.11 版本,2025-11-27 {#2511} + +#### 向后不兼容的变更 {#backward-incompatible-change} + +* 移除已弃用的 `Object` 类型。[#85718](https://github.com/ClickHouse/ClickHouse/pull/85718)([Pavel Kruglov](https://github.com/Avogar))。 +* 移除已过时的 `LIVE VIEW` 功能。如果你正在使用 `LIVE VIEW`,将无法升级到新版本。[#88706](https://github.com/ClickHouse/ClickHouse/pull/88706)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 在之前的版本中,`Geometry` 类型是 `String` 的别名,但现在它是一个完整的独立类型。[#83344](https://github.com/ClickHouse/ClickHouse/pull/83344)([scanhex12](https://github.com/scanhex12))。 +* 对 MergeTree 表的 Wide 数据部分中为 `Variant` 类型子列创建的文件名进行转义。此更改会破坏与旧的 Variant/Dynamic/JSON 数据类型表的兼容性。它修复了在 Variant 中存储包含特殊符号的数据类型的问题(例如带有包含 `\` 的特定时区的 DateTime)。可以通过修改 MergeTree 设置 `escape_variant_subcolumn_filenames` 来禁用转义(如果要保持兼容性,请在 MergeTree 的配置中禁用此设置,或者在升级前将 `compatibility` 设置为之前的版本)。解决了 [#69590](https://github.com/ClickHouse/ClickHouse/issues/69590)。[#87300](https://github.com/ClickHouse/ClickHouse/pull/87300)([Pavel Kruglov](https://github.com/Avogar))。 +* 默认为 `String` 数据类型启用 `with_size_stream` 序列化格式。此更改向后兼容,但新的序列化格式仅从 25.10 版本开始支持,这意味着无法降级到 25.10 之前的版本。如果你希望保留降级到 25.9 及更早版本的可能性,请在服务器配置的 `merge_tree` 部分中将 `serialization_info_version` 配置为 `basic`,并将 `string_serialization_version` 配置为 `single_stream`。[#89329](https://github.com/ClickHouse/ClickHouse/pull/89329)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 为 HTTP 结果响应增加异常标记支持,以便客户端能够更可靠地解析异常。解决了 [#75175](https://github.com/ClickHouse/ClickHouse/issues/75175)。为了在不同格式之间保持一致,设置 `http_write_exception_in_output_format` 默认是禁用的。[#88818](https://github.com/ClickHouse/ClickHouse/pull/88818)([Kaviraj Kanagaraj](https://github.com/kavirajk))。虽然理论上不应该破坏任何现有行为(最坏情况下,只是在异常消息中添加了一段奇怪的字符串),但仍然有理由在变更日志中将其归类为“向后不兼容的变更”,以提醒注意(因为很难预料某些脚本会如何解析异常消息)。 +* 禁止在共享对象存储路径之上创建多个 `plain-rewritable` 磁盘,因为在不同元数据存储事务发生冲突时,这可能导致未定义行为。[#89038](https://github.com/ClickHouse/ClickHouse/pull/89038)([Mikhail Artemenko](https://github.com/Michicosun))。 +* 修复 Kafka 存储 SASL 设置的优先级。现在,在 CREATE TABLE 查询中指定的表级 SASL 设置会正确覆盖配置文件中指定的 consumer/producer 级别的设置。[#89401](https://github.com/ClickHouse/ClickHouse/pull/89401)([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 +* 现在会将 Parquet 中无时区的时间戳(isAdjustedToUTC=false)读取为 DateTime64(..., 'UTC'),而不是 DateTime64(...)。这样虽然仍不完全正确,但在将此类 UTC 时间戳转换为字符串时,可以得到对应正确本地时间的表示。使用 `input_format_parquet_local_time_as_utc = 0` 可获得旧行为。解决了 [#87469](https://github.com/ClickHouse/ClickHouse/issues/87469)。[#87872](https://github.com/ClickHouse/ClickHouse/pull/87872)([Michael Kolupaev](https://github.com/al13n321))。 +* 对 `T64` codec 做了一个小改进:它不再接受与压缩元素大小未对齐的数据类型,否则会触发一个 bug。解决了 [#89282](https://github.com/ClickHouse/ClickHouse/issues/89282)。[#89432](https://github.com/ClickHouse/ClickHouse/pull/89432)([yanglongwei](https://github.com/ylw510))。 + +#### 新功能 {#new-feature} + +* 引入 `Geometry` 类型,并支持以 `WKB` 和 `WKT` 格式读取该类型。在之前的版本中,`Geometry` 类型是 `String` 的别名,但现在它是一个功能完备的独立类型。[#83344](https://github.com/ClickHouse/ClickHouse/pull/83344) ([scanhex12](https://github.com/scanhex12))。 +* 新增了 SQL 语句 `EXECUTE AS` 以支持用户身份模拟。修复了 [#39048](https://github.com/ClickHouse/ClickHouse/issues/39048)。[#70775](https://github.com/ClickHouse/ClickHouse/pull/70775)([Shankar](https://github.com/shiyer7474))。 +* 添加 `naiveBayesClassifier` FUNCTION,用于基于 n‑gram 的朴素贝叶斯对文本进行分类。 [#88677](https://github.com/ClickHouse/ClickHouse/pull/88677) ([Nihal Z. Miaji](https://github.com/nihalzp))。 +* 为 `LIMIT` 和 `OFFSET` 添加对小数值的支持,用于按比例选择表的一部分数据。关闭 [#81892](https://github.com/ClickHouse/ClickHouse/issues/81892)。[#88755](https://github.com/ClickHouse/ClickHouse/pull/88755)([Ahmed Gouda](https://github.com/0xgouda))。 +* ClickHouse 的 Microsoft OneLake 目录子系统。 [#89366](https://github.com/ClickHouse/ClickHouse/pull/89366) ([scanhex12](https://github.com/scanhex12)). +* 新增 `flipCoordinates` 函数,用于在数组中展开指定数量的维度,并在 Tuple 列内部交换指针。解决 [#79469](https://github.com/ClickHouse/ClickHouse/issues/79469)。[#79634](https://github.com/ClickHouse/ClickHouse/pull/79634)([Sachin Kumar Singh](https://github.com/sachinkumarsingh092))。 +* 新增 `system.unicode` 表,其中包含 Unicode 字符及其属性列表。关闭 [#80055](https://github.com/ClickHouse/ClickHouse/issues/80055)。[#80857](https://github.com/ClickHouse/ClickHouse/pull/80857)([wxybear](https://github.com/wxybear))。 +* 新增 MergeTree 设置项 `merge_max_dynamic_subcolumns_in_wide_part`,用于在合并后限制 Wide 部分中的动态子列数量,而不受数据类型中指定参数的影响。[#87646](https://github.com/ClickHouse/ClickHouse/pull/87646) ([Pavel Kruglov](https://github.com/Avogar))。 +* 新增对 `cume_dist` 窗口函数的支持。修复了 [#86920](https://github.com/ClickHouse/ClickHouse/issues/86920)。[#88102](https://github.com/ClickHouse/ClickHouse/pull/88102) ([Manuel](https://github.com/raimannma))。 +* 现在,在构建文本索引时,用户可以添加一个新的参数 `preprocessor`。该参数可以是任意表达式,用于在分词之前对每个文档进行预处理。[#88272](https://github.com/ClickHouse/ClickHouse/pull/88272) ([Jimmy Aguilar Mena](https://github.com/Ergus))。 +* 在 `X-ClickHouse-Progress` 和 `X-ClickHouse-Summary` 中新增 `memory_usage` 字段。该字段可用于在客户端实时收集查询的内存使用情况。[#88393](https://github.com/ClickHouse/ClickHouse/pull/88393)([Christoph Wurm](https://github.com/cwurm))。 +* 添加 `into_outfile_create_parent_directories` 设置,用于在执行 `INTO OUTFILE` 时自动创建父目录,从而避免因输出路径不存在而报错。这简化了查询将结果写入多级目录时的工作流。修复了 [#88610](https://github.com/ClickHouse/ClickHouse/issues/88610)。[#88795](https://github.com/ClickHouse/ClickHouse/pull/88795)([Saksham](https://github.com/Saksham10-11))。 +* 支持在临时表中使用 `CREATE OR REPLACE` 语法。关闭 [#35888](https://github.com/ClickHouse/ClickHouse/issues/35888)。[#89450](https://github.com/ClickHouse/ClickHouse/pull/89450)([Aleksandr Musorin](https://github.com/AVMusorin))。 +* 支持 `arrayRemove` FUNCTION,用于从数组 `arr` 中移除所有等于 `elem` 的元素。该功能仅为与 Postgres 的兼容性而提供,因为 ClickHouse 已经提供了功能更强大的 `arrayFilter` FUNCTION。解决 [#52099](https://github.com/ClickHouse/ClickHouse/issues/52099)。[#89585](https://github.com/ClickHouse/ClickHouse/pull/89585)([tiwarysaurav](https://github.com/tiwarysaurav))。 +* 新增标量函数 `midpoint`,用于计算平均值。解决 [#89029](https://github.com/ClickHouse/ClickHouse/issues/89029)。[#89679](https://github.com/ClickHouse/ClickHouse/pull/89679)([simonmichal](https://github.com/simonmichal))。 +* Web UI 现在提供了一个下载按钮。即使 UI 只显示部分结果,也会下载完整结果。[#89768](https://github.com/ClickHouse/ClickHouse/pull/89768) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 添加 `arrow_flight_request_descriptor_type` 设置,以支持 Dremio 和其他需要 command 样式 descriptor 的 Arrow Flight 服务器。实现了 [#89523](https://github.com/ClickHouse/ClickHouse/issues/89523)。[#89826](https://github.com/ClickHouse/ClickHouse/pull/89826)([Shreyas Ganesh](https://github.com/shreyasganesh0))。 +* 新增聚合函数 `argAndMin` 和 `argAndMax`,用于返回参数及其对应的极值。在之前的版本中,也可以通过使用元组作为参数来实现这一点。 [#89884](https://github.com/ClickHouse/ClickHouse/pull/89884) ([AbdAlRahman Gad](https://github.com/AbdAlRahmanGad))。 +* 用于写入和校验 Parquet 校验和的设置。[#79012](https://github.com/ClickHouse/ClickHouse/pull/79012) ([Michael Kolupaev](https://github.com/al13n321)). +* 为 Kafka 表引擎新增 `kafka_schema_registry_skip_bytes` 设置,用于在解析消息负载前跳过封装头部字节(例如 AWS Glue Schema Registry 的 19 字节前缀)。这使 ClickHouse 能够消费来自在消息中添加元数据头的 schema registry 的消息。[#89621](https://github.com/ClickHouse/ClickHouse/pull/89621) ([Taras Polishchuk](https://github.com/wake-up-neo)). +* 新增 `h3PolygonToCells` 函数,可使用 h3 六边形填充几何区域。解决 [#33991](https://github.com/ClickHouse/ClickHouse/issues/33991)。[#66262](https://github.com/ClickHouse/ClickHouse/pull/66262)([Zacharias Knudsen](https://github.com/zachasme))。 +* 新增虚拟列 `_tags`(`Map(String, String)`),其中包含 S3 中该 blob 关联的所有标签(注意,如果该 blob 没有任何标签,则不会产生额外请求)。解决 [#72945](https://github.com/ClickHouse/ClickHouse/issues/72945)。[#77773](https://github.com/ClickHouse/ClickHouse/pull/77773)([Zicong Qu](https://github.com/zicongleoqu))。 + +#### 实验特性 {#experimental-feature} + +* 支持根据 [RFC 8555](https://datatracker.ietf.org/doc/html/rfc8555) 从 ACME 提供商(如 Let's Encrypt)获取 TLS 证书。这使得可以在分布式集群上自动配置 TLS。[#66315](https://github.com/ClickHouse/ClickHouse/pull/66315) ([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 支持 Prometheus HTTP Query API 的部分功能。要启用它,请在配置文件的 `` 部分添加一个类型为 `query_api` 的规则。已支持的处理程序为 `/api/v1/query_range` 和 `/api/v1/query`。[#86132](https://github.com/ClickHouse/ClickHouse/pull/86132) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* 全文搜索现已进入 beta 阶段(此前为实验阶段)。[#88928](https://github.com/ClickHouse/ClickHouse/pull/88928) ([Robert Schulze](https://github.com/rschu1ze))。 +* 将 `Alias` 标记为实验特性,可通过 `allow_experimental_alias_table_engine = 1` 启用。[#89712](https://github.com/ClickHouse/ClickHouse/pull/89712) ([Kai Zhu](https://github.com/nauu))。 + +#### 性能优化 {#performance-improvement} + +* Parquet Reader v3 现已默认启用。 [#88827](https://github.com/ClickHouse/ClickHouse/pull/88827) ([Michael Kolupaev](https://github.com/al13n321)). +* 分布式执行:将任务按行组 ID 拆分比按文件拆分更合适。[#87508](https://github.com/ClickHouse/ClickHouse/pull/87508) ([scanhex12](https://github.com/scanhex12)). +* `RIGHT` 和 `FULL` JOIN 现在使用 ConcurrentHashJoin;这意味着这些类型的 JOIN 现在可以以更高的并行度运行。在多种场景下,RIGHT 和 FULL JOIN 的性能最多可提升两倍。修复了 [#78027](https://github.com/ClickHouse/ClickHouse/issues/78027)。[#78462](https://github.com/ClickHouse/ClickHouse/pull/78462)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 针对查询中含有大值的常量表达式进行了优化。修复了 [#72880](https://github.com/ClickHouse/ClickHouse/issues/72880)。[#81104](https://github.com/ClickHouse/ClickHouse/pull/81104)([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 +* 在具有超过 10K 分区片段的表上进行大量分区裁剪时,`SELECT` 查询性能最高可提升 8 倍。[#85535](https://github.com/ClickHouse/ClickHouse/pull/85535)([James Morrison](https://github.com/jawm))。 +* 当查询使用固定哈希映射来存储聚合状态(按小整数分组)时,ClickHouse 会并行合并这些聚合状态,从而加速查询。[#87366](https://github.com/ClickHouse/ClickHouse/pull/87366)([Jianfei Hu](https://github.com/incfly))。 +* 允许将使用 `_part_offset` 的 SELECT 且带有不同 ORDER BY 的投影用作二级索引。启用后,可以针对某些查询谓词,通过读取投影分区片段并生成位图,在 PREWHERE 阶段高效过滤行。这是实现投影索引的第三步,继 [#80343](https://github.com/ClickHouse/ClickHouse/issues/80343) 之后。[#81021](https://github.com/ClickHouse/ClickHouse/pull/81021)([Amos Bird](https://github.com/amosbird))。 +* 在一些少见的 Aarch64 系统以及可能的其他架构/内核组合上修复 VDSO。[#86096](https://github.com/ClickHouse/ClickHouse/pull/86096) ([Tomas Hulata](https://github.com/tombokombo))。 +* 通过简化代码并微调[选择算法](https://clickhouse.com/blog/lz4-compression-in-clickhouse#how-to-choose-the-best-algorithm),提升 LZ4 解压速度。[#88360](https://github.com/ClickHouse/ClickHouse/pull/88360)([Raúl Marín](https://github.com/Algunenano))。 +* S3 在内部基于键名前缀对对象进行分区,并会自动扩展,以支持每个分区上的高请求速率。此更改引入了两个新的 BACKUP 设置项:data_file_name_generator 和 data_file_name_prefix_length。当 data_file_name_generator=checksum 时,备份数据文件会使用其内容的哈希值来命名。示例:对于 checksum = `abcd1234ef567890abcd1234ef567890` 且 `data_file_name_prefix_length = 3`,生成的路径为:`abc/d1234ef567890abcd1234ef567890`。由此得到的键分布改进了在 S3 分区之间的负载均衡,并降低了被限流的风险。 [#88418](https://github.com/ClickHouse/ClickHouse/pull/88418) ([Julia Kartseva](https://github.com/jkartseva))。 +* 通过缓存字典块并使用哈希表进行 token 查找(替代二分查找),提升了文本索引的性能。 [#88786](https://github.com/ClickHouse/ClickHouse/pull/88786) ([Elmi Ahmadov](https://github.com/ahmadov)). +* 查询现在可以同时利用 `optimize_read_in_order` 和 `query_plan_optimize_lazy_materialization`。已解决 [#88767](https://github.com/ClickHouse/ClickHouse/issues/88767) 中的问题。[#88866](https://github.com/ClickHouse/ClickHouse/pull/88866)([Manuel](https://github.com/raimannma))。 +* 为包含 `DISTINCT` 的查询使用聚合 PROJECTION。修复 [#86925](https://github.com/ClickHouse/ClickHouse/issues/86925)。[#88894](https://github.com/ClickHouse/ClickHouse/pull/88894)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* 缓存倒排列表(posting lists),以提升连续多次运行时的性能。 [#88912](https://github.com/ClickHouse/ClickHouse/pull/88912) ([Elmi Ahmadov](https://github.com/ahmadov)). +* 当输入的排序顺序与 LIMIT BY 键一致时,以流式方式执行 LIMIT BY 转换。 [#88969](https://github.com/ClickHouse/ClickHouse/pull/88969) ([Eduard Karacharov](https://github.com/korowa)). +* 在某些情况下允许将 `ANY LEFT JOIN` 或 `ANY RIGHT JOIN` 重写为 `ALL INNER JOIN`。[#89403](https://github.com/ClickHouse/ClickHouse/pull/89403)([Dmitry Novik](https://github.com/novikd))。 +* 降低日志记录的开销:为每条日志记录使用更少的原子操作。[#89651](https://github.com/ClickHouse/ClickHouse/pull/89651) ([Sergei Trifonov](https://github.com/serxa)). +* 当在具有多个 `JOIN` 的查询中启用运行时过滤器并添加多个运行时过滤器时,将新添加的过滤步骤也进行下推,并使其优先于其他过滤步骤。[#89725](https://github.com/ClickHouse/ClickHouse/pull/89725)([Alexander Gololobov](https://github.com/davenger))。 +* 通过减少合并哈希表的开销,略微提升某些 `uniqExact` 操作的速度。[#89727](https://github.com/ClickHouse/ClickHouse/pull/89727) ([Raúl Marín](https://github.com/Algunenano))。 +* 将延迟物化的行数上限从 10 提升到 100。[#89772](https://github.com/ClickHouse/ClickHouse/pull/89772)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 默认开启 `allow_special_serialization_kinds_in_output_formats` 设置。这将减少内存占用,并在某些行输出格式中提升 Sparse/Replicated 列输出的查询性能。 [#89402](https://github.com/ClickHouse/ClickHouse/pull/89402) ([Pavel Kruglov](https://github.com/Avogar)). +* 为 `ALTER TABLE ... FREEZE` 查询增加了并行化支持。 [#71743](https://github.com/ClickHouse/ClickHouse/pull/71743) ([Kirill](https://github.com/kirillgarbar))。 +* 为基于 bcrypt 的认证添加缓存。 [#87115](https://github.com/ClickHouse/ClickHouse/pull/87115) ([Nikolay Degterinsky](https://github.com/evillique)). +* 如果在带有 `FINAL` 的查询中使用的跳过索引建立在主键列上,则无需再执行检查其他分区片段中主键交集的额外步骤,该步骤现已不再执行。修复了 [#85897](https://github.com/ClickHouse/ClickHouse/issues/85897)。[#88368](https://github.com/ClickHouse/ClickHouse/pull/88368)([Shankar Iyer](https://github.com/shankar-iyer))。 +* 优化项 `enable_lazy_columns_replication` 现已默认启用,可在 JOIN 操作中节省内存占用。 [#89316](https://github.com/ClickHouse/ClickHouse/pull/89316) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 为每个表引入按表维护的基于 `ColumnsDescription` 的分区片段缓存,当表包含大量分区片段和大量列时可减少内存使用。[#89352](https://github.com/ClickHouse/ClickHouse/pull/89352) ([Azat Khuzhin](https://github.com/azat))。 +* 为文本索引的反序列化头部引入了缓存,以减少 I/O 并提升查询性能。可以通过新的服务器设置项进行配置:- `text_index_header_cache_policy` - `text_index_header_cache_size` - `text_index_header_cache_max_entries` - `text_index_header_cache_size_ratio`。[#89513](https://github.com/ClickHouse/ClickHouse/pull/89513)([Elmi Ahmadov](https://github.com/ahmadov))。 + +#### 改进 {#improvement} + +* 当启用 `use_variant_as_common_type` 时,如有需要,`UNION` 应将类型统一为 `Variant`。解决了 [#82772](https://github.com/ClickHouse/ClickHouse/issues/82772)。[#83246](https://github.com/ClickHouse/ClickHouse/pull/83246)([Mithun p](https://github.com/mithunputhusseri))。 +* 现在可以将 SQL 中定义的角色授予在 `users.xml` 中定义的用户。 [#88139](https://github.com/ClickHouse/ClickHouse/pull/88139) ([c-end](https://github.com/c-end)). +* 记录内部查询(例如由字典、可刷新materialized view 等在内部执行的查询),并在 `system.query_log` 中新增 `is_internal` 列。 [#83277](https://github.com/ClickHouse/ClickHouse/pull/83277) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* 增强了 `IS NOT DISTINCT FROM` (`<=>`) 运算符:增加对反向运算符 `IS DISTINCT FROM` 的支持,并支持不同类型但数值兼容的操作数(例如 `Nullable(UInt32)` 和 `Nullable(Int64)`)。解决了 [#86763](https://github.com/ClickHouse/ClickHouse/issues/86763)。[#87581](https://github.com/ClickHouse/ClickHouse/pull/87581)([yanglongwei](https://github.com/ylw510))。 +* 在交互模式下,`clickhouse-client` 和 `clickhouse-local` 会在命令行中高亮显示与光标下当前标识符同名的其他标识符。[#89689](https://github.com/ClickHouse/ClickHouse/pull/89689) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 与输出格式相关的设置现在不再影响查询缓存。此外,查询缓存会忽略 `http_response_headers` 设置。这样可以支持诸如在 Web UI 中从缓存下载查询结果等功能。[#89756](https://github.com/ClickHouse/ClickHouse/pull/89756)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 当使用查询结果缓存时,HTTP 接口会提供 `Age` 和 `Expires` 响应头。`Age` 头的存在表明结果是否来自缓存,而 `Expires` 则会在首次写入时设置。引入新的 profile events:`QueryCacheAgeSeconds`、`QueryCacheReadRows`、`QueryCacheReadBytes`、`QueryCacheWrittenRows`、`QueryCacheWrittenBytes`。[#89759](https://github.com/ClickHouse/ClickHouse/pull/89759) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 即使启用了 `disable_insertion_and_mutation`(即在 ClickHouse Cloud 中的只读仓库),也允许向 remote 和数据湖表插入数据。[#88549](https://github.com/ClickHouse/ClickHouse/pull/88549)([Alexander Tokmakov](https://github.com/tavplubix))。 +* 新增查询语句 `SYSTEM DROP TEXT INDEX CACHES`。 [#90287](https://github.com/ClickHouse/ClickHouse/pull/90287) ([Anton Popov](https://github.com/CurtizJ))。 +* 默认启用 `enable_shared_storage_snapshot_in_query` 以提供更好的一致性保证。预期不会带来任何负面影响。[#82634](https://github.com/ClickHouse/ClickHouse/pull/82634) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 新增了 `send_profile_events` 设置,使客户端在未使用 profile events 时可以减少网络流量。[#89588](https://github.com/ClickHouse/ClickHouse/pull/89588)([Kaviraj Kanagaraj](https://github.com/kavirajk))。 +* 允许在每个查询级别禁用邻近段的后台下载。修复 [#89524](https://github.com/ClickHouse/ClickHouse/issues/89524)。[#89668](https://github.com/ClickHouse/ClickHouse/pull/89668)([tanner-bruce](https://github.com/tanner-bruce))。 +* 在 ReplicatedMergeTree 表存在损坏磁盘的情况下,允许执行 `FETCH PARTITION`。[#58663](https://github.com/ClickHouse/ClickHouse/pull/58663) ([Duc Canh Le](https://github.com/canhld94)). +* 修复在 MySQL 数据库引擎中获取 MySQL 表结构时出现的未捕获异常。[#69358](https://github.com/ClickHouse/ClickHouse/pull/69358)([Duc Canh Le](https://github.com/canhld94))。 +* 所有 DDL `ON CLUSTER` 查询现在都会在原始发起查询的 USER 上下文中执行,从而实现更精确的访问权限校验。[#71334](https://github.com/ClickHouse/ClickHouse/pull/71334) ([pufit](https://github.com/pufit)). +* 在 `Parquet` 中,当 `UUID` 以逻辑类型为 `UUID` 的 `FixedString(16)` 表示时,现已支持该表示方式。 [#74484](https://github.com/ClickHouse/ClickHouse/pull/74484) ([alekseev-maksim](https://github.com/alekseev-maksim)). +* 在非服务端二进制可执行文件中默认禁用 ThreadFuzzer。 [#89115](https://github.com/ClickHouse/ClickHouse/pull/89115) ([Raúl Marín](https://github.com/Algunenano)). +* 通过推迟对其进行物化,使查询计划中的优化对关联子查询的输入子计划可见。属于 [#79890](https://github.com/ClickHouse/ClickHouse/issues/79890) 的一部分。 [#85455](https://github.com/ClickHouse/ClickHouse/pull/85455) ([Dmitry Novik](https://github.com/novikd))。 +* 现在可以在 clickhouse-client 中查看带有 `SELECT` 的 `CREATE OR REPLACE TABLE` 查询的进度条、日志和性能统计信息。即使该 `SELECT` 非常耗时,此查询也不会再导致超时。已解决 [#38416](https://github.com/ClickHouse/ClickHouse/issues/38416)。[#87247](https://github.com/ClickHouse/ClickHouse/pull/87247)([Diskein](https://github.com/Diskein))。 +* 在哈希函数中支持 `JSON` 和 `Dynamic` 类型。解决了 [#87734](https://github.com/ClickHouse/ClickHouse/issues/87734)。[#87791](https://github.com/ClickHouse/ClickHouse/pull/87791)([Pavel Kruglov](https://github.com/Avogar))。 +* 实现 ArrowFlight 服务器中缺失的部分功能。 [#88013](https://github.com/ClickHouse/ClickHouse/pull/88013) ([Vitaly Baranov](https://github.com/vitlibar)). +* 为 server 和 keeper 添加多个直方图指标,用于监控 keeper 请求执行各阶段的耗时。将向 server 添加以下指标:`keeper_client_queue_duration_milliseconds`、`keeper_client_send_duration_milliseconds`、`keeper_client_roundtrip_duration_milliseconds`。将向 keeper 添加以下指标:`keeper_server_preprocess_request_duration_milliseconds`、`keeper_server_process_request_duration_milliseconds`、`keeper_server_queue_duration_milliseconds`、`keeper_server_send_duration_milliseconds`。[#88158](https://github.com/ClickHouse/ClickHouse/pull/88158)([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* 为 `EXPLAIN` 查询新增 `input_headers` 选项,将输入头部信息添加到各个步骤中。 [#88311](https://github.com/ClickHouse/ClickHouse/pull/88311) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 +* 新增了 profile events,用于统计被限流器延迟的 S3 和 AzureBlobStorage 请求数量。修复了与磁盘相关和与非磁盘相关的 ThrottlerCount profile events 之间的不一致问题。现在 AzureBlobStorage 的 HTTP DELETE 请求不会再被限流。[#88535](https://github.com/ClickHouse/ClickHouse/pull/88535) ([Sergei Trifonov](https://github.com/serxa))。 +* 缓存表级统计信息,新增两个设置:MergeTree 表设置 `refresh_statistics_interval` 表示刷新统计信息缓存的时间间隔,0 表示不创建缓存。会话设置 `use_statistics_cache` 表示在查询中是否使用表级统计信息。有时我们希望获得更精确的统计信息,因此可以选择不使用缓存。[#88670](https://github.com/ClickHouse/ClickHouse/pull/88670) ([Han Fei](https://github.com/hanfei1991)). +* 修复了 `Array` 和 `Map` 的二进制反序列化逻辑,在校验大小限制时改为使用 `max_binary_array_size` 设置而不是 `max_binary_string_size`。这确保在读取 `RowBinary` 格式时会应用正确的限制。[#88744](https://github.com/ClickHouse/ClickHouse/pull/88744) ([Raufs Dunamalijevs](https://github.com/rienath))。 +* 引入了 `LockGuardWithStopWatch` 类,并在后台线程池中用于执行合并操作。如果某个互斥量被持有超过一秒,或者某个线程在一秒内始终无法获取该互斥量,将打印一条警告信息。将 `MergeMutateSelectedEntry` 析构函数中开销较大的代码移动到 `finalize` 方法中,以避免在 `MergeTreeBackground` 执行器中持有锁的时间过长。[#88898](https://github.com/ClickHouse/ClickHouse/pull/88898)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* 当在 endpoint 中未指定 region 时,自动允许对 S3 使用需显式启用的 AWS 区域。参考:[opt-in AWS regions](https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-regions.html)。[#88930](https://github.com/ClickHouse/ClickHouse/pull/88930)([Andrey Zvonov](https://github.com/zvonand))。 +* 用户现在可以在分页器运行时,通过在 clickhouse-client 中按下 Ctrl-C 来取消当前查询。解决了 [#80778](https://github.com/ClickHouse/ClickHouse/issues/80778)。[#88935](https://github.com/ClickHouse/ClickHouse/pull/88935)([Grigorii](https://github.com/GSokol))。 +* 即使值为负,Web UI 也会在表格中显示条形。由此可以显示正负两侧采用不同颜色的双向条形图。[#89016](https://github.com/ClickHouse/ClickHouse/pull/89016)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 禁用 `shared_merge_tree_create_per_replica_metadata_nodes`,以减少 `SharedMergeTree` 在 Keeper 中的元数据存储量。 [#89036](https://github.com/ClickHouse/ClickHouse/pull/89036) ([Alexander Tokmakov](https://github.com/tavplubix))。 +* 使 `S3Queue` 遵循 `disable_insertion_and_mutation` 服务器设置。 [#89048](https://github.com/ClickHouse/ClickHouse/pull/89048) ([Raúl Marín](https://github.com/Algunenano)). +* 将 25.6 版本中的默认 `s3_retry_attempts` 设置为 500,以确保在发生 S3 重新分区且 S3 持续超过 10 分钟返回 SlowDown(减速)错误时,备份仍能成功完成。 [#89051](https://github.com/ClickHouse/ClickHouse/pull/89051) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* 现在可以通过 `kafka_compression_codec` 和 `kafka_compression_level` 设置,为两个 Kafka 引擎中的 Kafka 生产者指定压缩算法和压缩级别。[#89073](https://github.com/ClickHouse/ClickHouse/pull/89073) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 +* 在 `system.columns` 中新增一列 `statistics`,用于指示为该表构建的统计信息类型。如果某种类型的统计信息是自动创建的,则会在后缀中标记为 (auto)。[#89086](https://github.com/ClickHouse/ClickHouse/pull/89086) ([Han Fei](https://github.com/hanfei1991))。 +* 在向 `*Cluster` 表函数传递泛型展开而非集群名称时,优化错误信息。[#89093](https://github.com/ClickHouse/ClickHouse/pull/89093) ([Konstantin Bogdanov](https://github.com/thevar1able))。 +* YTsaurus:允许将 `replicated_table` 用作数据源。[#89107](https://github.com/ClickHouse/ClickHouse/pull/89107) ([MikhailBurdukov](https://github.com/MikhailBurdukov))。 +* 在 CLI 中,以空白字符开头的查询将不再保存到历史记录中。[#89116](https://github.com/ClickHouse/ClickHouse/pull/89116) ([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 支持将字符串数组作为 `hasAnyTokens` 或 `hasAllTokens` 函数的输入。[#89124](https://github.com/ClickHouse/ClickHouse/pull/89124) ([Elmi Ahmadov](https://github.com/ahmadov))。 +* 修改 plain-rewritable 磁盘在内存中存储元数据的方式,修复了与目录嵌套及其相关的大量 bug。[#89125](https://github.com/ClickHouse/ClickHouse/pull/89125) ([Mikhail Artemenko](https://github.com/Michicosun)). +* 在查询 Iceberg 表时,IN 表达式中的子查询现在会在分区裁剪分析之前被正确预先计算。 [#89177](https://github.com/ClickHouse/ClickHouse/pull/89177) ([Daniil Ivanik](https://github.com/divanik))。 +* 默认启用 `create_table_empty_primary_key_by_default`。这可以提高易用性。 [#89333](https://github.com/ClickHouse/ClickHouse/pull/89333) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 修复 `Backup` 数据库引擎中的错误,该错误可能导致在使用 `SHOW CREATE DATABASE` 或从 `system.databases` 中查询 `engine_full` 时生成无效查询。修复 [#89477](https://github.com/ClickHouse/ClickHouse/issues/89477)。[#89341](https://github.com/ClickHouse/ClickHouse/pull/89341)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 在之前的版本中,如果在 CREATE TABLE 查询中未指定表引擎,设置 `create_table_empty_primary_key_by_default` 将不会生效。[#89342](https://github.com/ClickHouse/ClickHouse/pull/89342)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 将 `chdig` 更新至 v25.11.1,包含对日志记录的重大改进和其他多项增强([25.11 的发行说明](https://github.com/azat/chdig/releases/tag/v25.11.1))。[#89957](https://github.com/ClickHouse/ClickHouse/pull/89957)([Azat Khuzhin](https://github.com/azat))。([25.10 的发行说明](https://github.com/azat/chdig/releases/tag/v25.10.1))。[#89452](https://github.com/ClickHouse/ClickHouse/pull/89452)([Azat Khuzhin](https://github.com/azat))。 +* 将 Web UI 中查询文本区域的调整大小控件改为全宽,这样使用起来会稍微方便一些。另外,此前在 iPad 上的 Safari 浏览器中无法使用浏览器原生的调整控件,应用此更改后,至少可以通过拖动文本区域的底部来调整大小。[#89457](https://github.com/ClickHouse/ClickHouse/pull/89457) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 改进了哈希连接生成结果过程中的内存跟踪。此前,在生成连接结果时的临时内存分配未被正确跟踪,可能导致内存使用超出限制。 [#89560](https://github.com/ClickHouse/ClickHouse/pull/89560) ([Azat Khuzhin](https://github.com/azat)). +* 异步服务器日志:提前刷新并增大默认队列大小。 [#89597](https://github.com/ClickHouse/ClickHouse/pull/89597) ([Raúl Marín](https://github.com/Algunenano)). +* 修复 `system.asynchronous_metrics` 中错误的 `FilesystemCacheBytes`(以及其他相关指标)值。仅对文件系统缓存执行一次 `SYSTEM` 查询。为缓存提供一个原子视图,该视图在 `system.filesystem_caches` 中指向同一路径。[#89640](https://github.com/ClickHouse/ClickHouse/pull/89640) ([Azat Khuzhin](https://github.com/azat))。 +* 对 `system.view_refreshes` 中部分列的说明进行了澄清。[#89701](https://github.com/ClickHouse/ClickHouse/pull/89701) ([Tuan Pham Anh](https://github.com/tuanpach)). +* 与 STS 端点交互时缓存 S3 凭据,从而可以在不同的函数调用之间复用这些凭据。可通过 `s3_credentials_provider_max_cache_size` 控制缓存的凭据数量。[#89734](https://github.com/ClickHouse/ClickHouse/pull/89734)([Antonio Andelic](https://github.com/antonio2368))。 +* 修复在其下方存在多个表达式步骤时运行时过滤器下推的问题。 [#89741](https://github.com/ClickHouse/ClickHouse/pull/89741) ([Alexander Gololobov](https://github.com/davenger)). +* 如果系统内存低于 5GB,默认不对可执行文件执行 mlock 操作。 [#89751](https://github.com/ClickHouse/ClickHouse/pull/89751) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Web UI 中的类型提示不再溢出到表头区域。同时修复了工具提示的显示问题——它们不再被表头遮挡。 [#89753](https://github.com/ClickHouse/ClickHouse/pull/89753) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 在 Web UI 中显示表属性。点击行数或字节数会打开一个来自 `system.tables` 的查询。点击表引擎会打开 `SHOW TABLES`。[#89771](https://github.com/ClickHouse/ClickHouse/pull/89771) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 为使用不支持追加写入的磁盘的表提供对 `non_replicated_deduplication_window` 的支持。解决 [#87281](https://github.com/ClickHouse/ClickHouse/issues/87281)。[#89796](https://github.com/ClickHouse/ClickHouse/pull/89796)([Tuan Pham Anh](https://github.com/tuanpach))。 +* 在命令 `SYSTEM FLUSH ASYNC INSERT QUEUE` 中新增了可指定要刷新的表列表的功能。 [#89915](https://github.com/ClickHouse/ClickHouse/pull/89915) ([Sema Checherinda](https://github.com/CheSema)). +* 在 `system.part_log` 中存储去重块的 ID。[#89928](https://github.com/ClickHouse/ClickHouse/pull/89928)([Sema Checherinda](https://github.com/CheSema))。 +* 将文件系统缓存设置 `keep_free_space_remove_batch` 的默认值从 10 更改为 100,因为这样在实践中更优。[#90030](https://github.com/ClickHouse/ClickHouse/pull/90030) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* 引入 TTL DROP 类型的合并,并且在执行此类合并之后,不再更新后续的删除 TTL 合并计划。[#90077](https://github.com/ClickHouse/ClickHouse/pull/90077) ([Mikhail Artemenko](https://github.com/Michicosun))。 +* 在 S3Queue 清理过程中,对 RemoveRecursive Keeper 请求使用更低的节点数量上限。[#90201](https://github.com/ClickHouse/ClickHouse/pull/90201)([Antonio Andelic](https://github.com/antonio2368))。 +* 使 `SYSTEM FLUSH LOGS` 查询即使在日志为空时也会等待表创建完成。[#89408](https://github.com/ClickHouse/ClickHouse/pull/89408) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 +* 修复在分布式合并聚合中涉及多个远程分片,或存在 IN 子查询时 `rows_before_limit_at_least` 不正确的问题。此更改修复了 [#63280](https://github.com/ClickHouse/ClickHouse/issues/63280)。[#63511](https://github.com/ClickHouse/ClickHouse/pull/63511) ([Amos Bird](https://github.com/amosbird))。 +* 修复了在执行 `INSERT INTO ... SELECT` 查询后会出现 `0 rows in set` 的问题。关闭了 [#47800](https://github.com/ClickHouse/ClickHouse/issues/47800)。[#79462](https://github.com/ClickHouse/ClickHouse/pull/79462)([Engel Danila](https://github.com/aaaengel))。 + +#### Bug 修复(官方稳定版中对用户可见的错误行为) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* 修复 `multiIf` 在常量参数和短路求值场景下的问题。关闭 [#72714](https://github.com/ClickHouse/ClickHouse/issues/72714)。[#84546](https://github.com/ClickHouse/ClickHouse/pull/84546)([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 +* 修复在对带有子查询约束的表执行 SELECT 时出现的逻辑错误。解决了 [#84190](https://github.com/ClickHouse/ClickHouse/issues/84190)。[#85575](https://github.com/ClickHouse/ClickHouse/pull/85575)([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 +* 修复了在使用带问号的 URI 执行特殊查询时出现的一个错误。 [#85663](https://github.com/ClickHouse/ClickHouse/pull/85663) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* 修复了在 `EXPLAIN indexes = 1` 输出中有时会缺少列的问题。已解决 [#86696](https://github.com/ClickHouse/ClickHouse/issues/86696)。[#87083](https://github.com/ClickHouse/ClickHouse/pull/87083)([Michael Kolupaev](https://github.com/al13n321))。 +* 修复在使用并行副本时可能出现的错误:Cannot add subcolumn with parallel replicas。关闭 [#84888](https://github.com/ClickHouse/ClickHouse/issues/84888)。[#87514](https://github.com/ClickHouse/ClickHouse/pull/87514)([Pavel Kruglov](https://github.com/Avogar))。 +* 在 parquet 写入器中,以正确格式输出 `created_by` 字符串,例如使用 `ClickHouse version 25.10.1 (build 5b1dfb14925db8901a4e9202cd5d63c11ecfbb9f)`,而不是 `ClickHouse v25.9.1.1-testing`。修复 parquet 读取器与由旧版 parquet-mr 写出的不规范文件的兼容性。[#87735](https://github.com/ClickHouse/ClickHouse/pull/87735)([Michael Kolupaev](https://github.com/al13n321))。 +* 修复 `cramersV`、`cramersVBiasCorrected`、`theilsU` 和 `contingency` 中 phi-squared 计算错误从而导致结果不正确的问题。 [#87831](https://github.com/ClickHouse/ClickHouse/pull/87831) ([Nihal Z. Miaji](https://github.com/nihalzp)). +* 修复在 JSON 中读取由 Float 和 Bool 混合组成的数组的问题。此前插入此类数据会抛出异常。[#88008](https://github.com/ClickHouse/ClickHouse/pull/88008)([Pavel Kruglov](https://github.com/Avogar))。 +* 在 TCPHandler 中使用 shared_ptr 管理 QueryState,以便在 setProgressCallback、setFileProgressCallback 和 setBlockMarshallingCallback 中检测该状态是否无效。 [#88201](https://github.com/ClickHouse/ClickHouse/pull/88201) ([Tuan Pham Anh](https://github.com/tuanpach))。 +* 修复在 `query_plan_optimize_join_order_limit > 1` 时对 CROSS JOIN 重排的逻辑错误,关闭 [#89409](https://github.com/ClickHouse/ClickHouse/issues/89409)。 [#88286](https://github.com/ClickHouse/ClickHouse/pull/88286) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* 修复 [#88426](https://github.com/ClickHouse/ClickHouse/issues/88426) 1. 禁止在 Alias 中显式定义列,列会自动从目标表中加载,以确保别名始终与目标表的表结构匹配。2. 通过 IStorage 代理更多方法。[#88552](https://github.com/ClickHouse/ClickHouse/pull/88552) ([Kai Zhu](https://github.com/nauu))。 +* 在恢复后,Replicated 数据库的副本可能会长时间卡住,并持续打印类似 `Failed to marked query-0004647339 as finished (finished=No node, synced=No node)` 的消息,现已修复。[#88671](https://github.com/ClickHouse/ClickHouse/pull/88671) ([Alexander Tokmakov](https://github.com/tavplubix))。 +* 修复在使用支持子查询的新分析器时可能出现的“Context has expired”错误。 [#88694](https://github.com/ClickHouse/ClickHouse/pull/88694) ([Azat Khuzhin](https://github.com/azat)). +* 修复了当 input_format_parquet_local_file_min_bytes_for_seek 设置为 0 时 Parquet 读取器中的段错误。解决了 [#78456](https://github.com/ClickHouse/ClickHouse/issues/78456)。[#88784](https://github.com/ClickHouse/ClickHouse/pull/88784)([Animesh](https://github.com/anibilthare))。 +* 修复当主键为逆序(降序)时 min(PK)/max(PK) 结果不正确的问题。从而修复了 [#83619](https://github.com/ClickHouse/ClickHouse/issues/83619)。[#88796](https://github.com/ClickHouse/ClickHouse/pull/88796)([Amos Bird](https://github.com/amosbird))。 +* 修复在对内部表执行 DROP 时,`max_table_size_to_drop` 和 `max_partition_size_to_drop` 设置的大小限制未正确传递的问题。[#88812](https://github.com/ClickHouse/ClickHouse/pull/88812) ([Nikolay Degterinsky](https://github.com/evillique)). +* 修复 `top_k` 在仅使用单个参数调用时不遵守阈值参数的问题,解决了 [#88757](https://github.com/ClickHouse/ClickHouse/issues/88757)。[#88867](https://github.com/ClickHouse/ClickHouse/pull/88867)([Manuel](https://github.com/raimannma))。 +* 需要通过 SSL 建立连接的 ArrowFlight endpoint 源(例如位于 AWS ALB 之后)现在可以正确请求特定的数据集。[#88868](https://github.com/ClickHouse/ClickHouse/pull/88868) ([alex-shchetkov](https://github.com/alex-shchetkov))。 +* 修复对通过 ALTER 语句添加的非物化 Nested(Tuple(...)) 的处理。修复 [#83133](https://github.com/ClickHouse/ClickHouse/issues/83133)。[#88879](https://github.com/ClickHouse/ClickHouse/pull/88879)([Azat Khuzhin](https://github.com/azat))。 +* 修复函数 `reverseUTF8` 中的错误。在早期版本中,它会错误地反转长度为 4 的 UTF-8 代码点的字节顺序。这修复了 [#88913](https://github.com/ClickHouse/ClickHouse/issues/88913)。[#88914](https://github.com/ClickHouse/ClickHouse/pull/88914)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 修复 `icebergS3Cluster` 协议实现。在 `iceberg` 集群 FUNCTION 中开始支持 schema 演进、按位置删除和按等值删除。修复 [#88287](https://github.com/ClickHouse/ClickHouse/issues/88287)。[#88919](https://github.com/ClickHouse/ClickHouse/pull/88919)([Yang Jiang](https://github.com/Ted-Jiang))。 +* 对在分布式表上使用并行副本的查询禁用 `parallel_replicas_support_projection`。修复了 [#88899](https://github.com/ClickHouse/ClickHouse/issues/88899) 中的问题。[#88922](https://github.com/ClickHouse/ClickHouse/pull/88922)([zoomxi](https://github.com/zoomxi))。 +* 在内部类型转换中传播上下文。修复了多个未能正确传播类型转换设置的问题。关闭 [#88873](https://github.com/ClickHouse/ClickHouse/issues/88873)。关闭 [#78025](https://github.com/ClickHouse/ClickHouse/issues/78025)。[#88929](https://github.com/ClickHouse/ClickHouse/pull/88929)([Manuel](https://github.com/raimannma))。 +* 修复 `file()` FUNCTION 中通过 glob 模式获取文件格式的问题。解决了 [#88920](https://github.com/ClickHouse/ClickHouse/issues/88920)。[#88947](https://github.com/ClickHouse/ClickHouse/pull/88947)([Vitaly Baranov](https://github.com/vitlibar))。 +* 在使用 SQL SECURITY DEFINER 创建视图时,不再检查对 `SET DEFINER :definer` 的访问权限。[#88968](https://github.com/ClickHouse/ClickHouse/pull/88968)([pufit](https://github.com/pufit))。 +* 修复了 `L2DistanceTransposed(vec1, vec2, p)` 中的 `LOGICAL_ERROR`,其中用于部分读取 `QBit` 的优化在 `p` 为 `Nullable` 时错误地从返回类型中移除了 `Nullable`。 [#88974](https://github.com/ClickHouse/ClickHouse/pull/88974) ([Raufs Dunamalijevs](https://github.com/rienath))。 +* 修复未知目录类型导致的崩溃。解决了 [#88819](https://github.com/ClickHouse/ClickHouse/issues/88819)。[#88987](https://github.com/ClickHouse/ClickHouse/pull/88987)([scanhex12](https://github.com/scanhex12))。 +* 已解决 [#88081](https://github.com/ClickHouse/ClickHouse/issues/88081)。[#88988](https://github.com/ClickHouse/ClickHouse/pull/88988)([scanhex12](https://github.com/scanhex12))。 +* 修复了分析跳过索引时的性能下降问题。 [#89004](https://github.com/ClickHouse/ClickHouse/pull/89004) ([Anton Popov](https://github.com/CurtizJ)). +* 修复当使用带有不存在角色的用户尝试执行 clusterAllReplicas 时出现的 ACCESS_ENTITY_NOT_FOUND 错误。解决了 [#87670](https://github.com/ClickHouse/ClickHouse/issues/87670)。[#89068](https://github.com/ClickHouse/ClickHouse/pull/89068)([pufit](https://github.com/pufit))。 +* 修复 CHECK 约束对稀疏列的处理。关闭 [#88637](https://github.com/ClickHouse/ClickHouse/issues/88637)。[#89076](https://github.com/ClickHouse/ClickHouse/pull/89076)([Eduard Karacharov](https://github.com/korowa))。 +* 修复了在 MergeTreeReaderTextIndex 中填充虚拟列时的行数统计错误,该错误会触发 LOGICAL_ERROR 并导致系统崩溃。[#89095](https://github.com/ClickHouse/ClickHouse/pull/89095)([Peng Jian](https://github.com/fastio))。 +* 在合并准备阶段出现异常时,防止生存时间 (TTL) 合并计数器泄漏。修复了 [#89019](https://github.com/ClickHouse/ClickHouse/issues/89019) 中的问题。[#89127](https://github.com/ClickHouse/ClickHouse/pull/89127)([save-my-heart](https://github.com/save-my-heart))。 +* 修正 base32/base58 编码和解码操作所需缓冲区大小的计算。[#89133](https://github.com/ClickHouse/ClickHouse/pull/89133) ([Antonio Andelic](https://github.com/antonio2368))。 +* 修复 Distributed 中由于关闭过程与后台 INSERT 之间的竞态条件导致的 use-after-free 问题。解决了 [#88640](https://github.com/ClickHouse/ClickHouse/issues/88640)。[#89136](https://github.com/ClickHouse/ClickHouse/pull/89136)([Azat Khuzhin](https://github.com/azat))。 +* 在解析 Parquet 时,避免由于可变异常对象导致的潜在数据竞争问题。修复了 [#88385](https://github.com/ClickHouse/ClickHouse/issues/88385)。[#89174](https://github.com/ClickHouse/ClickHouse/pull/89174)([Azat Khuzhin](https://github.com/azat))。 +* 可刷新materialized view:修复了在刷新过程中,如果源表被完全删除时可能发生的罕见服务器崩溃问题。[#89203](https://github.com/ClickHouse/ClickHouse/pull/89203) ([Michael Kolupaev](https://github.com/al13n321))。 +* 在 HTTP 接口中,当在压缩流中途发送错误时刷新缓冲区。[#89256](https://github.com/ClickHouse/ClickHouse/pull/89256) ([Alexander Tokmakov](https://github.com/tavplubix))。 +* 防止查询脱敏规则被错误地应用于 DDL 语句。[#89272](https://github.com/ClickHouse/ClickHouse/pull/89272)([MikhailBurdukov](https://github.com/MikhailBurdukov))。 +* 修复了在 MergeTreeReaderTextIndex 中填充虚拟列时行数统计不正确的问题,该问题会导致触发 LOGICAL_ERROR 并使程序崩溃。重新打开 [#89095](https://github.com/ClickHouse/ClickHouse/issues/89095)。[#89303](https://github.com/ClickHouse/ClickHouse/pull/89303)([Jimmy Aguilar Mena](https://github.com/Ergus))。 +* 修复 Statistics 中,当 countmin 不支持 LowCardinality(Nullable(String)) 的 estimate 数据类型时出现的 LOGICAL_ERROR。[#89343](https://github.com/ClickHouse/ClickHouse/pull/89343) ([Han Fei](https://github.com/hanfei1991)). +* 在 `IN` 函数中,当主键列类型与 `IN` 函数右侧的列类型不同时,可能导致崩溃或未定义行为。示例:SELECT string_column, int_column FROM test_table WHERE (string_column, int_column) IN (SELECT '5', 'not a number')。当选中了大量行且其中存在类型不兼容的行时,该问题可能出现。[#89367](https://github.com/ClickHouse/ClickHouse/pull/89367) ([Ilya Golshtein](https://github.com/ilejn))。 +* 修复 `countIf(*)` 参数截断的问题。关闭 [#89372](https://github.com/ClickHouse/ClickHouse/issues/89372)。[#89373](https://github.com/ClickHouse/ClickHouse/pull/89373)([Manuel](https://github.com/raimannma))。 +* 防止在 mutation 统计信息中丢失未压缩校验和。[#89381](https://github.com/ClickHouse/ClickHouse/pull/89381) ([Azat Khuzhin](https://github.com/azat))。 +* 修复了在 `L2DistanceTransposed(vec1, vec2, p)` 中出现的 `LOGICAL_ERROR`,该错误是由于针对部分 QBit 读取的优化在 `p` 的类型为 `LowCardinality(Nullable(T))` 时错误地从返回类型中移除了 `Nullable`。解决了 [#88362](https://github.com/ClickHouse/ClickHouse/issues/88362)。[#89397](https://github.com/ClickHouse/ClickHouse/pull/89397)([Raufs Dunamalijevs](https://github.com/rienath))。 +* 修复了加载由旧版本 ClickHouse 写入、tuple 本身使用了不正确稀疏序列化格式的表时的问题。 [#89405](https://github.com/ClickHouse/ClickHouse/pull/89405) ([Azat Khuzhin](https://github.com/azat)). +* 修复了在使用 `deduplicate_merge_projection_mode='ignore'` 时,对已被生存时间 (TTL) 清空但仍包含非空 PROJECTION 的分区片段进行合并时的错误处理。解决了 [#89430](https://github.com/ClickHouse/ClickHouse/issues/89430)。[#89458](https://github.com/ClickHouse/ClickHouse/pull/89458)([Amos Bird](https://github.com/amosbird))。 +* 修复在带有重复列的 `full_sorting_merge` JOIN 中的逻辑错误。解决了 [#86957](https://github.com/ClickHouse/ClickHouse/issues/86957)。[#89495](https://github.com/ClickHouse/ClickHouse/pull/89495)([Vladimir Cherkasov](https://github.com/vdimir))。 +* 修复了 Keeper 启动时读取变更日志的逻辑,以处理在轮转过程中某个变更日志未被正确重命名的情况。[#89496](https://github.com/ClickHouse/ClickHouse/pull/89496)([Antonio Andelic](https://github.com/antonio2368))。 +* 修复在右表键唯一时使用 OR 条件导致的 JOIN 结果不正确的问题,解决了 [#89391](https://github.com/ClickHouse/ClickHouse/issues/89391)。[#89512](https://github.com/ClickHouse/ClickHouse/pull/89512)([Vladimir Cherkasov](https://github.com/vdimir))。 +* 修复在使用 analyzer 且主键使用 PK IN (subquery) 时可能出现的 "Context has expired" 错误(v2)。对应修复了 [#89433](https://github.com/ClickHouse/ClickHouse/issues/89433)。[#89527](https://github.com/ClickHouse/ClickHouse/pull/89527)([Azat Khuzhin](https://github.com/azat))。 +* 修复 MaterializedPostgreSQL 在包含大写列名的表上的复制问题。解决了 [#72363](https://github.com/ClickHouse/ClickHouse/issues/72363)。[#89530](https://github.com/ClickHouse/ClickHouse/pull/89530)([Danylo Osipchuk](https://github.com/Lenivaya))。 +* 修复当聚合函数状态中包含 `LowCardinality(String)` 列的序列化值时发生的崩溃。 [#89550](https://github.com/ClickHouse/ClickHouse/pull/89550) ([Pavel Kruglov](https://github.com/Avogar)). +* 修复在启用 `enable_lazy_columns_replication` 设置项时,在 JOIN 右表上使用 `ARRAY JOIN` 会导致崩溃的问题。 [#89551](https://github.com/ClickHouse/ClickHouse/pull/89551) ([Pavel Kruglov](https://github.com/Avogar)). +* 修复 `query_plan_convert_join_to_in` 的逻辑错误,解决了 [#89066](https://github.com/ClickHouse/ClickHouse/issues/89066)。[#89554](https://github.com/ClickHouse/ClickHouse/pull/89554)([Vladimir Cherkasov](https://github.com/vdimir))。 +* 修复了统计估算器在尝试估算列与常量类型不匹配且无法转换的条件时抛出的异常。 [#89596](https://github.com/ClickHouse/ClickHouse/pull/89596) ([Han Fei](https://github.com/hanfei1991)). +* 仅对受支持的 join 算法(如哈希 join)添加运行时过滤器。只有当 join 算法先完整读取右侧,再读取左侧时,才能构建过滤器,而例如 FullSortingMergeJoin 会同时读取两侧。修复 [#89220](https://github.com/ClickHouse/ClickHouse/issues/89220)。[#89652](https://github.com/ClickHouse/ClickHouse/pull/89652)([Alexander Gololobov](https://github.com/davenger))。 +* 修复了在使用 `sparseGrams` 分词器时并发执行 `hasAnyTokens`、`hasAllTokens` 和 `tokens` 函数的问题。解决了 [#89605](https://github.com/ClickHouse/ClickHouse/issues/89605)。[#89665](https://github.com/ClickHouse/ClickHouse/pull/89665)([Elmi Ahmadov](https://github.com/ahmadov))。 +* 修复在某些情况下使用 JOIN 运行时过滤器时可能出现的逻辑错误或崩溃。修复了 [#89062](https://github.com/ClickHouse/ClickHouse/issues/89062)。[#89666](https://github.com/ClickHouse/ClickHouse/pull/89666)([Alexander Gololobov](https://github.com/davenger))。 +* 修复在启用 `enable_lazy_columns_replication` 时,对 Map 列执行 ARRAY JOIN 时可能出现的逻辑错误。解决 [#89705](https://github.com/ClickHouse/ClickHouse/issues/89705) 中的问题。[#89717](https://github.com/ClickHouse/ClickHouse/pull/89717)([Pavel Kruglov](https://github.com/Avogar))。 +* 避免在取消远程查询时因在断开连接后仍从远程服务器读取而导致崩溃。修复了 [#89468](https://github.com/ClickHouse/ClickHouse/issues/89468)。[#89740](https://github.com/ClickHouse/ClickHouse/pull/89740)([Azat Khuzhin](https://github.com/azat))。 +* 修复 PROJECTION 索引读取路径中的竞争条件。解决了 [#89497](https://github.com/ClickHouse/ClickHouse/issues/89497)。[#89762](https://github.com/ClickHouse/ClickHouse/pull/89762)([Peng Jian](https://github.com/fastio))。 +* 修复在读取 PROJECTION 索引时可能引发竞态条件的 bug,解决了 [#89497](https://github.com/ClickHouse/ClickHouse/issues/89497)。[#89775](https://github.com/ClickHouse/ClickHouse/pull/89775)([Amos Bird](https://github.com/amosbird))。 +* 修复了 Paimon 表函数在处理无分区表时的行为。解决了 [#89690](https://github.com/ClickHouse/ClickHouse/issues/89690)。[#89793](https://github.com/ClickHouse/ClickHouse/pull/89793)([JIaQi](https://github.com/JiaQiTang98))。 +* 修复在高级 JSON 共享数据序列化中读取路径及其子列时可能出现的逻辑错误。解决了 [#89805](https://github.com/ClickHouse/ClickHouse/issues/89805) 中报告的问题。[#89819](https://github.com/ClickHouse/ClickHouse/pull/89819)([Pavel Kruglov](https://github.com/Avogar))。 +* 修复了数据类型二进制反序列化过程中可能出现的栈溢出问题。关闭了 [#88710](https://github.com/ClickHouse/ClickHouse/issues/88710)。[#89822](https://github.com/ClickHouse/ClickHouse/pull/89822)([Pavel Kruglov](https://github.com/Avogar))。 +* 修复 `IN` 函数中空元组的逻辑错误。关闭了 [#88343](https://github.com/ClickHouse/ClickHouse/issues/88343)。[#89850](https://github.com/ClickHouse/ClickHouse/pull/89850)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* 在旧版分析器中,为了保持兼容性,无论 `optimize_injective_functions_in_group_by` 的设置如何,都从 `GROUP BY` 子句中移除单射函数。修复了 [#89854](https://github.com/ClickHouse/ClickHouse/issues/89854)。[#89870](https://github.com/ClickHouse/ClickHouse/pull/89870)([Raufs Dunamalijevs](https://github.com/rienath))。 +* 如果合并例如由于内存限制而被中断,merge mutate 后台执行器会在没有加锁的情况下对合并任务调用 `cancel`,但在这种情况下,部分创建的结果分片不会被删除(因为它尚未完成,并且在该阶段还不可见)。之后,合并任务将被销毁,从而触发对结果分片的销毁。这会回滚磁盘事务并导致数据从 S3 中被移除。最后,这一垃圾清理是在持有 merge mutate 后台执行器锁的情况下执行的。[#89875](https://github.com/ClickHouse/ClickHouse/pull/89875)([Mikhail Artemenko](https://github.com/Michicosun))。 +* 修复了在 `reverse` 和 `CAST` FUNCTION 中处理空元组时的逻辑错误。关闭 [#89137](https://github.com/ClickHouse/ClickHouse/issues/89137)。[#89908](https://github.com/ClickHouse/ClickHouse/pull/89908)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* 现在,ClickHouse 默认会在 `SHOW DATABASES` 查询结果中显示数据湖目录数据库。[#89914](https://github.com/ClickHouse/ClickHouse/pull/89914) ([alesapin](https://github.com/alesapin))。 +* 修复在 GCS 上用于备份的原生复制功能。由于错误的客户端克隆实现,GCS 原生复制总是失败,并退回到效率较低的手动读写数据方式。[#89923](https://github.com/ClickHouse/ClickHouse/pull/89923) ([Antonio Andelic](https://github.com/antonio2368))。 +* 修复 `base32Encode` 的缓冲区大小计算。对长度小于 5 的字符串列执行 `base32Encode` 编码可能会导致崩溃。修复了 [#89911](https://github.com/ClickHouse/ClickHouse/issues/89911)。[#89929](https://github.com/ClickHouse/ClickHouse/pull/89929)([Antonio Andelic](https://github.com/antonio2368))。 +* 修复 `SHOW COLUMNS` 和 `SHOW FUNCTIONS` 查询的错误转义处理。[#89942](https://github.com/ClickHouse/ClickHouse/pull/89942) ([alesapin](https://github.com/alesapin))。 +* 修复 MongoDB 引擎中用户名包含 '@' 字符时的 URL 验证问题。此前,由于编码不正确,包含 '@' 的用户名会导致错误。[#89970](https://github.com/ClickHouse/ClickHouse/pull/89970) ([Kai Zhu](https://github.com/nauu))。 +* 已在 [#90592](https://github.com/ClickHouse/ClickHouse/issues/90592) 中回溯修复:修复在启用 `enable_lazy_columns_replication` 设置时,远程查询在 `IN` 子句中使用 `ARRAY JOIN` 时可能发生的崩溃。解决了 [#90361](https://github.com/ClickHouse/ClickHouse/issues/90361)。[#89997](https://github.com/ClickHouse/ClickHouse/pull/89997)([Pavel Kruglov](https://github.com/Avogar))。 +* 已在 [#90448](https://github.com/ClickHouse/ClickHouse/issues/90448) 中回溯:修复了在某些情况下,从文本格式的字符串推断 DateTime64 值时得到错误结果的问题。修复了 [#89368](https://github.com/ClickHouse/ClickHouse/issues/89368)。[#90013](https://github.com/ClickHouse/ClickHouse/pull/90013)([Pavel Kruglov](https://github.com/Avogar))。 +* 修复 `BSONEachRow` 和 `MsgPack` 中由空元组列导致的逻辑错误。关闭 [#89814](https://github.com/ClickHouse/ClickHouse/issues/89814)。关闭 [#71536](https://github.com/ClickHouse/ClickHouse/issues/71536)。[#90018](https://github.com/ClickHouse/ClickHouse/pull/90018)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* 已在 [#90457](https://github.com/ClickHouse/ClickHouse/issues/90457) 中回溯修复:在从聚合状态及其他来源反序列化数据时进行大小检查。[#90031](https://github.com/ClickHouse/ClickHouse/pull/90031)([Raúl Marín](https://github.com/Algunenano))。 +* 修复在包含重复列的 JOIN 中可能出现的 'Invalid number of rows in Chunk' 错误。解决了 [#89411](https://github.com/ClickHouse/ClickHouse/issues/89411)。[#90053](https://github.com/ClickHouse/ClickHouse/pull/90053)([Vladimir Cherkasov](https://github.com/vdimir))。 +* 已在 [#90588](https://github.com/ClickHouse/ClickHouse/issues/90588) 中回溯移植:修复在使用 `ARRAY JOIN` 且启用 `enable_lazy_columns_replication` 设置执行插入时,可能出现的错误 `Column with Array type is not represented by ColumnArray column: Replicated`。[#90066](https://github.com/ClickHouse/ClickHouse/pull/90066)([Pavel Kruglov](https://github.com/Avogar))。 +* 允许 user_files 中包含以点开头的文件。修复 [#89662](https://github.com/ClickHouse/ClickHouse/issues/89662)。[#90079](https://github.com/ClickHouse/ClickHouse/pull/90079)([Raúl Marín](https://github.com/Algunenano))。 +* 已在 [#90647](https://github.com/ClickHouse/ClickHouse/issues/90647) 中回溯修复:在使用较大步长时,修复 `numbers` 系统表中的逻辑错误和取模 bug。关闭 [#83398](https://github.com/ClickHouse/ClickHouse/issues/83398)。[#90123](https://github.com/ClickHouse/ClickHouse/pull/90123)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* 修复了字典参数解析中的整数溢出问题。关闭了 [#78506](https://github.com/ClickHouse/ClickHouse/issues/78506)。[#90171](https://github.com/ClickHouse/ClickHouse/pull/90171)([Raúl Marín](https://github.com/Algunenano))。 +* 已在 [#90468](https://github.com/ClickHouse/ClickHouse/issues/90468) 中回溯:修复 Hive 分区不兼容问题,避免在 25.8 中无法平滑升级(修复升级过程中出现的错误 `All hive partitioning columns must be present in the schema`)。[#90202](https://github.com/ClickHouse/ClickHouse/pull/90202)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 修复了在启用了查询条件缓存的情况下,执行轻量级更新后 `SELECT` 查询可能返回不正确结果的问题。修复了 [#90176](https://github.com/ClickHouse/ClickHouse/issues/90176)。修复了 [#90054](https://github.com/ClickHouse/ClickHouse/issues/90054)。[#90204](https://github.com/ClickHouse/ClickHouse/pull/90204)([Anton Popov](https://github.com/CurtizJ))。 +* 修复在解析格式不正确的分片目录名称时 StorageDistributed 中发生的崩溃问题。 [#90243](https://github.com/ClickHouse/ClickHouse/pull/90243) ([Aleksandr Musorin](https://github.com/AVMusorin)). +* 在 `LogicalExpressionOptimizerPass` 中处理字符串到整数或布尔值的隐式转换问题。解决了 [#89803](https://github.com/ClickHouse/ClickHouse/issues/89803)。[#90245](https://github.com/ClickHouse/ClickHouse/pull/90245)([Elmi Ahmadov](https://github.com/ahmadov))。 +* 修复表定义中某些 skip 索引格式错误的问题,该问题会导致 `METADATA_MISMATCH`,并阻止在复制数据库中创建新副本。[#90251](https://github.com/ClickHouse/ClickHouse/pull/90251) ([Nikolay Degterinsky](https://github.com/evillique)). +* 已在 [#90381](https://github.com/ClickHouse/ClickHouse/issues/90381) 中回溯:修复当某个 part 中唯一的 granule 行数小于 index_granularity 时,MergeTreeReaderIndex 中行数不匹配的问题。修复 [#89691](https://github.com/ClickHouse/ClickHouse/issues/89691)。[#90254](https://github.com/ClickHouse/ClickHouse/pull/90254)([Peng Jian](https://github.com/fastio))。 +* 已在 [#90608](https://github.com/ClickHouse/ClickHouse/issues/90608) 中回溯:修复在紧凑分区片段中从 JSON 读取子列时的缺陷,该问题可能导致 `CANNOT_READ_ALL_DATA` 错误。修复了 [#90264](https://github.com/ClickHouse/ClickHouse/issues/90264)。[#90302](https://github.com/ClickHouse/ClickHouse/pull/90302)([Pavel Kruglov](https://github.com/Avogar))。 +* 修复 `trim`、`ltrim`、`rtrim` 函数在传入两个参数时不起作用的问题。关闭 [#90170](https://github.com/ClickHouse/ClickHouse/issues/90170)。[#90305](https://github.com/ClickHouse/ClickHouse/pull/90305)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* 已在 [#90625](https://github.com/ClickHouse/ClickHouse/issues/90625) 中回溯移植:修复在 `index_granularity_bytes=0` 时,对不存在的 JSON 路径的 PREWHERE 条件可能出现的逻辑错误。解决 [#86924](https://github.com/ClickHouse/ClickHouse/issues/86924)。[#90375](https://github.com/ClickHouse/ClickHouse/pull/90375)([Pavel Kruglov](https://github.com/Avogar))。 +* 已在 [#90484](https://github.com/ClickHouse/ClickHouse/issues/90484) 中回溯:修复了 `L2DistanceTransposed` 中的一个缺陷,该缺陷会在精度参数超出有效范围时导致崩溃。已关闭 [#90401](https://github.com/ClickHouse/ClickHouse/issues/90401)。[#90405](https://github.com/ClickHouse/ClickHouse/pull/90405)([Raufs Dunamalijevs](https://github.com/rienath))。 +* 已在 [#90577](https://github.com/ClickHouse/ClickHouse/issues/90577) 中回溯修复:修复了在 `L2DistanceTransposed` 中使用数组形式的参考向量(默认为 `Array(Float64))`)配合元素类型为非 `Float64`(`Float32`、`BFloat16`)的 `QBit` 列时,距离计算不正确的问题。该函数现在会自动将参考向量的元素类型转换为与 `QBit` 的元素类型一致。解决了 [#89976](https://github.com/ClickHouse/ClickHouse/issues/89976)。[#90485](https://github.com/ClickHouse/ClickHouse/pull/90485)([Raufs Dunamalijevs](https://github.com/rienath))。 +* 已在 [#90601](https://github.com/ClickHouse/ClickHouse/issues/90601) 中回溯:修复 `equals` 函数在罕见情况下导致的逻辑错误。已关闭 [#88142](https://github.com/ClickHouse/ClickHouse/issues/88142)。[#90557](https://github.com/ClickHouse/ClickHouse/pull/90557)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* 修复 `CoalescingMergeTree` 对 `Tuple` 类型的支持。 [#88828](https://github.com/ClickHouse/ClickHouse/pull/88828) ([scanhex12](https://github.com/scanhex12)). + +#### 构建/测试/打包改进 {#buildtestingpackaging-improvement} + +* 修复在 Docker 中运行 ClickHouse、使用 initdb SQL 脚本并重写 TCP 端口时出现的 Connection refused 错误。[#88042](https://github.com/ClickHouse/ClickHouse/pull/88042) ([Grigorii](https://github.com/GSokol))。 +* 实验性地支持 e2k 作为 ClickHouse 的新平台。[#90159](https://github.com/ClickHouse/ClickHouse/pull/90159) ([Ramil Sattarov](https://github.com/r-a-sattarov))。 +* 移除 CMake 中剩余的 `FindPackage` 用法。构建不应依赖系统软件包。[#89380](https://github.com/ClickHouse/ClickHouse/pull/89380) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 在 CMake 配置期间的构建中使用编译器缓存(例如用于 `protoc`)。[#89613](https://github.com/ClickHouse/ClickHouse/pull/89613) ([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 使用 FreeBSD 13.4 的 sysroot。[#89617](https://github.com/ClickHouse/ClickHouse/pull/89617) ([Konstantin Bogdanov](https://github.com/thevar1able))。 + +### ClickHouse 25.10 版本发布,2025-10-31 {#2510} + +#### 不向后兼容的变更 {#backward-incompatible-change} + +* 更改了默认的 `schema_inference_make_columns_nullable` 设置,使其根据 Parquet/ORC/Arrow 元数据中的列 `Nullable` 信息进行处理,而不是将所有列都设为 Nullable。文本格式保持不变。[#71499](https://github.com/ClickHouse/ClickHouse/pull/71499)([Michael Kolupaev](https://github.com/al13n321))。 +* 查询结果缓存现在会忽略 `log_comment` setting,因此仅在查询中更改 `log_comment` 将不再强制触发缓存未命中。极少数情况下,用户可能是有意通过调整 `log_comment` 来对缓存进行分段。此更改会改变该行为,因此与之前的版本不兼容。请改用 setting `query_cache_tag` 来实现这一目的。[#79878](https://github.com/ClickHouse/ClickHouse/pull/79878) ([filimonov](https://github.com/filimonov)). +* 在之前的版本中,包含与运算符实现函数同名的表函数的查询,其格式化行为不一致。修复了 [#81601](https://github.com/ClickHouse/ClickHouse/issues/81601)。修复了 [#81977](https://github.com/ClickHouse/ClickHouse/issues/81977)。修复了 [#82834](https://github.com/ClickHouse/ClickHouse/issues/82834)。修复了 [#82835](https://github.com/ClickHouse/ClickHouse/issues/82835)。EXPLAIN SYNTAX 查询将不再总是对运算符进行格式化输出——新的行为更好地体现了解释语法这一操作的目的。`clickhouse-format`、`formatQuery` 以及类似工具,如果查询中以函数形式使用这些函数,将不会再把它们格式化为运算符。[#82825](https://github.com/ClickHouse/ClickHouse/pull/82825)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 禁止在 `JOIN` 键中使用 `Dynamic` 类型。当 `Dynamic` 类型的值与非 `Dynamic` 类型的值进行比较时,可能会导致意外结果。最好将 `Dynamic` 列显式转换为所需类型。 [#86358](https://github.com/ClickHouse/ClickHouse/pull/86358) ([Pavel Kruglov](https://github.com/Avogar)). +* `storage_metadata_write_full_object_key` 服务器选项现在默认开启,当前无法关闭。这是一个向后兼容的变更,请注意。此变更仅与 25.x 版本系列保持前向兼容。这意味着如果你需要回滚新版本,只能降级到任意 25.x 版本。 [#87335](https://github.com/ClickHouse/ClickHouse/pull/87335) ([Sema Checherinda](https://github.com/CheSema)). +* 将 `replicated_deduplication_window_seconds` 从一周减少为一小时,以在插入速率较低时减少 ZooKeeper 中存储的 znode 数量。[#87414](https://github.com/ClickHouse/ClickHouse/pull/87414) ([Sema Checherinda](https://github.com/CheSema))。 +* 将设置项 `query_plan_use_new_logical_join_step` 重命名为 `query_plan_use_logical_join_step`。[#87679](https://github.com/ClickHouse/ClickHouse/pull/87679) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* 新的语法使文本索引的 tokenizer 参数更加灵活且表达力更强。[#87997](https://github.com/ClickHouse/ClickHouse/pull/87997) ([Elmi Ahmadov](https://github.com/ahmadov))。 +* 将函数 `searchAny` 和 `searchAll` 重命名为 `hasAnyTokens` 和 `hasAllTokens`,以便与现有函数 `hasToken` 的命名保持更好的一致性。[#88109](https://github.com/ClickHouse/ClickHouse/pull/88109)([Robert Schulze](https://github.com/rschu1ze))。 +* 从文件系统缓存中移除 `cache_hits_threshold`。该功能由外部贡献者在我们引入 SLRU 缓存策略之前添加,如今既然已经有了 SLRU,就没有必要同时支持二者。[#88344](https://github.com/ClickHouse/ClickHouse/pull/88344)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 对 `min_free_disk_ratio_to_perform_insert` 和 `min_free_disk_bytes_to_perform_insert` 设置的工作方式做了两点小改动: - 使用未保留(unreserved)而不是可用(available)字节来决定是否应拒绝一次插入操作。这在后台合并和变更的预留空间相对于配置的阈值较小时可能不那么关键,但这样做更正确。 - 不再将这些设置应用于 system 表。其理由是我们仍希望像 `query_log` 这样的表能够被更新,这对调试非常有帮助。写入到 system 表的数据通常相较于实际数据要小得多,因此在配置一个合理的 `min_free_disk_ratio_to_perform_insert` 阈值时,它们应能继续运行更长时间。 +* 为 Keeper 的内部复制启用异步模式。Keeper 在保持与之前行为一致的情况下,可能带来性能提升。如果您是从早于 23.9 的版本升级,则需要先升级到 23.9+,然后再升级到 25.10+。您也可以在升级前将 `keeper_server.coordination_settings.async_replication` 设置为 0,并在升级完成后再将其启用。[#88515](https://github.com/ClickHouse/ClickHouse/pull/88515)([Antonio Andelic](https://github.com/antonio2368))。 + +#### 新功能 {#new-feature} + +* 新增对负 `LIMIT` 和负 `OFFSET` 的支持。修复了 [#28913](https://github.com/ClickHouse/ClickHouse/issues/28913)。[#88411](https://github.com/ClickHouse/ClickHouse/pull/88411)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* `Alias` 引擎会创建指向另一张表的代理。所有读写操作都会被转发到目标表,而该别名本身不存储任何数据,只维护对目标表的引用。[#87965](https://github.com/ClickHouse/ClickHouse/pull/87965)([Kai Zhu](https://github.com/nauu))。 +* 完全支持运算符 `IS NOT DISTINCT FROM` (`<=>`)。 [#88155](https://github.com/ClickHouse/ClickHouse/pull/88155) ([simonmichal](https://github.com/simonmichal))。 +* 新增了在所有适用的 `MergeTree` 表列上自动创建统计信息的功能。新增了表级设置 `auto_statistics_types`,用于存储要创建的统计信息类型(逗号分隔,例如:`auto_statistics_types = 'minmax, uniq, countmin'`)。[#87241](https://github.com/ClickHouse/ClickHouse/pull/87241)([Anton Popov](https://github.com/CurtizJ))。 +* 新的文本布隆过滤器索引 `sparse_gram`。[#79985](https://github.com/ClickHouse/ClickHouse/pull/79985) ([scanhex12](https://github.com/scanhex12))。 +* 一个用于在不同进制之间转换数字的新 `conv` 函数,目前支持 2 到 36 进制。[#83058](https://github.com/ClickHouse/ClickHouse/pull/83058) ([hp](https://github.com/hp77-creator))。 +* 新增对 `LIMIT BY ALL` 语法的支持。类似于 `GROUP BY ALL` 和 `ORDER BY ALL`,`LIMIT BY ALL` 会自动展开为将 SELECT 子句中所有非聚合表达式用作 LIMIT BY 键。例如,`SELECT id, name, count(*) FROM table GROUP BY id LIMIT 1 BY ALL` 等价于 `SELECT id, name, count(*) FROM table GROUP BY id LIMIT 1 BY id, name`。当需要对所有已选择的非聚合列进行限制且不想显式列出它们时,此特性能简化查询。解决了 [#59152](https://github.com/ClickHouse/ClickHouse/issues/59152)。[#84079](https://github.com/ClickHouse/ClickHouse/pull/84079)([Surya Kant Ranjan](https://github.com/iit2009046))。 +* 在 ClickHouse 中新增对 Apache Paimon 查询的支持。通过这一集成,ClickHouse 用户可以直接访问并操作 Paimon 的数据湖存储。[#84423](https://github.com/ClickHouse/ClickHouse/pull/84423) ([JIaQi](https://github.com/JiaQiTang98))。 +* 新增了 `studentTTestOneSample` 聚合函数。 [#85436](https://github.com/ClickHouse/ClickHouse/pull/85436) ([Dylan](https://github.com/DylanBlakemore)). +* 聚合函数 `quantilePrometheusHistogram`,以直方图桶的上界和累积值作为参数,并在包含目标分位数位置的桶的下界与上界之间执行线性插值。行为与 PromQL 中针对经典直方图的 `histogram_quantile` 函数类似。[#86294](https://github.com/ClickHouse/ClickHouse/pull/86294)([Stephen Chi](https://github.com/stephchi0))。 +* 新增一个用于 Delta Lake 元数据文件的系统表。[#87263](https://github.com/ClickHouse/ClickHouse/pull/87263) ([scanhex12](https://github.com/scanhex12)). +* 新增 `ALTER TABLE REWRITE PARTS` —— 从头重写表的分区片段,使用所有新的设置(因为有些设置,如 `use_const_adaptive_granularity`,只会应用于新生成的分区片段)。 [#87774](https://github.com/ClickHouse/ClickHouse/pull/87774) ([Azat Khuzhin](https://github.com/azat)). +* 添加 `SYSTEM RECONNECT ZOOKEEPER` 命令,以强制与 ZooKeeper 断开并重新建立连接([https://github.com/ClickHouse/ClickHouse/issues/87317](https://github.com/ClickHouse/ClickHouse/issues/87317))。[#87318](https://github.com/ClickHouse/ClickHouse/pull/87318)([Pradeep Chhetri](https://github.com/chhetripradeep))。 +* 通过设置 `max_named_collection_num_to_warn` 和 `max_named_collection_num_to_throw` 来限制命名集合的数量。新增度量指标 `NamedCollection` 和错误码 `TOO_MANY_NAMED_COLLECTIONS`。 [#87343](https://github.com/ClickHouse/ClickHouse/pull/87343) ([Pablo Marcos](https://github.com/pamarcos)). +* 新增经过优化的不区分大小写版 `startsWith` 和 `endsWith` 函数:`startsWithCaseInsensitive`、`endsWithCaseInsensitive`、`startsWithCaseInsensitiveUTF8` 和 `endsWithCaseInsensitiveUTF8`。 [#87374](https://github.com/ClickHouse/ClickHouse/pull/87374) ([Guang Zhao](https://github.com/zheguang))。 +* 增加了一种方式,可在 SQL 中通过服务器配置中的 `resources_and_workloads` 部分定义 `WORKLOAD` 和 `RESOURCE`。 [#87430](https://github.com/ClickHouse/ClickHouse/pull/87430) ([Sergei Trifonov](https://github.com/serxa))。 +* 新增表设置项 `min_level_for_wide_part`,用于指定将数据片段创建为 wide part 所需的最小 level。 [#88179](https://github.com/ClickHouse/ClickHouse/pull/88179) ([Christoph Wurm](https://github.com/cwurm)). +* 在 Keeper 客户端中新增 `cp`/`cpr` 和 `mv`/`mvr` 命令的递归版本。[#88570](https://github.com/ClickHouse/ClickHouse/pull/88570) ([Mikhail Artemenko](https://github.com/Michicosun))。 +* 添加了会话设置,用于指定在插入时要从物化中排除的 skip 索引列表(`exclude_materialize_skip_indexes_on_insert`)。添加了 MergeTree 表设置,用于指定在合并期间要从物化中排除的 skip 索引列表(`exclude_materialize_skip_indexes_on_merge`)。[#87252](https://github.com/ClickHouse/ClickHouse/pull/87252)([George Larionov](https://github.com/george-larionov))。 + +#### 实验特性 {#experimental-feature} + +* 实现了 `QBit` 数据类型,用于以按位切片格式存储向量,以及 `L2DistanceTransposed` 函数,用于执行近似向量搜索,并可通过一个参数在精度与速度之间进行权衡。[#87922](https://github.com/ClickHouse/ClickHouse/pull/87922) ([Raufs Dunamalijevs](https://github.com/rienath)). +* 函数 `searchAll` 和 `searchAny` 现在也可以用于不包含文本列的场景。在这些情况下,它们会使用默认的 tokenizer。[#87722](https://github.com/ClickHouse/ClickHouse/pull/87722) ([Jimmy Aguilar Mena](https://github.com/Ergus)). + +#### 性能优化 {#performance-improvement} + +* 在 JOIN 和 ARRAY JOIN 中实现惰性列复制。避免在某些输出格式中将 Sparse 和 Replicated 等特殊列表示转换为完整列,从而避免在内存中进行不必要的数据复制。[#88752](https://github.com/ClickHouse/ClickHouse/pull/88752)([Pavel Kruglov](https://github.com/Avogar))。 +* 为 MergeTree 表中的顶层 String 列添加可选的 `.size` 子列序列化,以提升压缩率并实现高效的子列访问。引入新的 MergeTree 设置项,用于序列化版本控制以及空字符串表达式的优化。[#82850](https://github.com/ClickHouse/ClickHouse/pull/82850) ([Amos Bird](https://github.com/amosbird))。 +* 支持 Iceberg 的有序读取。 [#88454](https://github.com/ClickHouse/ClickHouse/pull/88454) ([scanhex12](https://github.com/scanhex12)). +* 通过在运行时从右子树构建 Bloom 过滤器,并将该过滤器传递给左子树中的扫描操作,加速部分 `JOIN` 查询。对于类似 `SELECT avg(o_totalprice) FROM orders, customer, nation WHERE c_custkey = o_custkey AND c_nationkey=n_nationkey AND n_name = 'FRANCE'` 的查询,这种方式可以提升性能。[#84772](https://github.com/ClickHouse/ClickHouse/pull/84772)([Alexander Gololobov](https://github.com/davenger))。 +* 通过重构 Query Condition Cache (QCC) 与索引分析的顺序和集成方式,提升了查询性能。现在会在主键和跳过索引分析之前先应用 QCC 过滤,从而减少不必要的索引计算。索引分析现已扩展为支持多个范围过滤条件,其过滤结果现在也会写回 QCC。这显著加速了执行时间主要花费在索引分析上的查询,特别是依赖跳过索引(例如向量或倒排索引)的查询。[#82380](https://github.com/ClickHouse/ClickHouse/pull/82380)([Amos Bird](https://github.com/amosbird))。 +* 对小型查询进行了一系列微优化,以加快执行速度。[#83096](https://github.com/ClickHouse/ClickHouse/pull/83096)([Raúl Marín](https://github.com/Algunenano))。 +* 在原生协议中压缩日志和 profile 事件。在具有 100 个以上副本的集群上,未压缩的 profile 事件会占用 1~10 MB/秒,并且在较慢的网络连接下进度条会变得很卡顿。此更改修复了 [#82533](https://github.com/ClickHouse/ClickHouse/issues/82533)。[#83586](https://github.com/ClickHouse/ClickHouse/pull/83586)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 通过使用 [StringZilla](https://github.com/ashvardanian/StringZilla) 库,在可用时利用 SIMD CPU 指令,提升区分大小写字符串搜索(例如在执行 `WHERE URL LIKE '%google%'` 这样的过滤操作时)的性能。[#84161](https://github.com/ClickHouse/ClickHouse/pull/84161)([Raúl Marín](https://github.com/Algunenano))。 +* 在对包含 `SimpleAggregateFunction(anyLast)` 类型列的 AggregatingMergeTree 表执行带 FINAL 的 SELECT 查询时,减少内存分配和内存复制。[#84428](https://github.com/ClickHouse/ClickHouse/pull/84428) ([Duc Canh Le](https://github.com/canhld94)). +* 实现了下推析取 JOIN 谓词的相关逻辑。例如,在 TPC-H Q7 中,对于两个表 n1 和 n2 的条件 `(n1.n_name = 'FRANCE' AND n2.n_name = 'GERMANY') OR (n1.n_name = 'GERMANY' AND n2.n_name = 'FRANCE')`,我们为每个表提取独立的局部过滤条件:对 n1 提取 `n1.n_name = 'FRANCE' OR n1.n_name = 'GERMANY'`,对 n2 提取 `n2.n_name = 'GERMANY' OR n2.n_name = 'FRANCE'`。[#84735](https://github.com/ClickHouse/ClickHouse/pull/84735) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 通过使用新的默认设置 `optimize_rewrite_like_perfect_affix`,提升了带前缀或后缀的 `LIKE` 查询的性能。 [#85920](https://github.com/ClickHouse/ClickHouse/pull/85920) ([Guang Zhao](https://github.com/zheguang)). +* 修复在按多个字符串/数字列进行分组时,由于序列化键过大而导致的性能下降问题。此变更是对 [#83884](https://github.com/ClickHouse/ClickHouse/pull/83884) 的后续跟进。[#85924](https://github.com/ClickHouse/ClickHouse/pull/85924)([李扬](https://github.com/taiyang-li))。 +* 新增 `joined_block_split_single_row` 配置项,用于在每个键存在大量匹配项的哈希连接中减少内存使用。该配置允许哈希连接结果即便在单个左表行的匹配结果内部,也可以被拆分成多个数据块,这在左表中的一行能匹配右表中成千上万甚至数百万行时尤其有用。之前,所有匹配结果必须一次性在内存中物化。此更改可降低峰值内存占用,但可能增加 CPU 使用率。 [#87913](https://github.com/ClickHouse/ClickHouse/pull/87913) ([Vladimir Cherkasov](https://github.com/vdimir)). +* 改进了 SharedMutex(提升在大量并发查询场景下的性能)。[#87491](https://github.com/ClickHouse/ClickHouse/pull/87491) ([Raúl Marín](https://github.com/Algunenano)). +* 提升了为以低频 token 为主的文档构建文本索引时的性能。[#87546](https://github.com/ClickHouse/ClickHouse/pull/87546) ([Anton Popov](https://github.com/CurtizJ))。 +* 加速 `Field` 析构函数在常见场景下的执行(提升大量小查询场景下的性能)。 [#87631](https://github.com/ClickHouse/ClickHouse/pull/87631) ([Raúl Marín](https://github.com/Algunenano)). +* 在 JOIN 优化阶段跳过对运行时哈希表统计信息的重新计算(提升所有包含 JOIN 的查询性能)。新增 profile 事件 `JoinOptimizeMicroseconds` 和 `QueryPlanOptimizeMicroseconds`。[#87683](https://github.com/ClickHouse/ClickHouse/pull/87683)([Vladimir Cherkasov](https://github.com/vdimir))。 +* 为 MergeTreeLazy 读取器启用在缓存中保存标记,并避免直接 IO 操作,从而提升包含 ORDER BY 且 LIMIT 很小的查询的性能。[#87989](https://github.com/ClickHouse/ClickHouse/pull/87989)([Nikita Taranov](https://github.com/nickitat))。 +* 在带有 `is_deleted` 列的 `ReplacingMergeTree` 表上执行带有 `FINAL` 子句的 SELECT 查询现在运行得更快,这是由于对两个现有优化的并行化进行了改进:1. 对于仅有单个 `part` 的表分区,应用 `do_not_merge_across_partitions_select_final` 优化;2. 将表中其他选定范围拆分为 `intersecting / non-intersecting`,且只有相交范围需要经过 FINAL 合并变换阶段。[#88090](https://github.com/ClickHouse/ClickHouse/pull/88090) ([Shankar Iyer](https://github.com/shankar-iyer)). +* 降低在未使用 fail point(调试未启用时的默认代码路径)情况下的影响。 [#88196](https://github.com/ClickHouse/ClickHouse/pull/88196) ([Raúl Marín](https://github.com/Algunenano)). +* 避免在按 `uuid` 过滤查询 `system.tables` 时触发全表扫描(当你只有从日志或 ZooKeeper 路径获取的 UUID 时非常有用)。 [#88379](https://github.com/ClickHouse/ClickHouse/pull/88379) ([Azat Khuzhin](https://github.com/azat)). +* 改进了 `tokens`、`hasAllTokens`、`hasAnyTokens` 函数的性能。[#88416](https://github.com/ClickHouse/ClickHouse/pull/88416)([Anton Popov](https://github.com/CurtizJ))。 +* 将 `AddedColumns::appendFromBlock` 内联化,在某些情况下可略微提高 JOIN 性能。[#88455](https://github.com/ClickHouse/ClickHouse/pull/88455) ([Nikita Taranov](https://github.com/nickitat))。 +* 客户端自动补全通过使用 `system.completions`,而不是对系统表执行多条查询,变得更快且更一致。[#84694](https://github.com/ClickHouse/ClickHouse/pull/84694) ([|2ustam](https://github.com/RuS2m))。 +* 新增 `dictionary_block_frontcoding_compression` 文本索引参数,用于控制字典压缩。默认情况下会启用该参数,使用 `front-coding` 压缩。[#87175](https://github.com/ClickHouse/ClickHouse/pull/87175) ([Elmi Ahmadov](https://github.com/ahmadov))。 +* 在插入到 materialized view 之前,先将所有线程的数据进行合并压缩,具体行为由 `min_insert_block_size_rows_for_materialized_views` 和 `min_insert_block_size_bytes_for_materialized_views` 这两个设置决定。此前,如果启用了 `parallel_view_processing`,则每个向某个特定 materialized view 插入数据的线程都会独立进行合并压缩插入,这可能会导致生成的分区片段数量增多。 [#87280](https://github.com/ClickHouse/ClickHouse/pull/87280) ([Antonio Andelic](https://github.com/antonio2368))。 +* 添加 `temporary_files_buffer_size` 设置,用于控制临时文件写入器的缓冲区大小。* 优化 `scatter` 操作(例如在 Grace 哈希连接中使用)对 `LowCardinality` 列的内存消耗。[#88237](https://github.com/ClickHouse/ClickHouse/pull/88237) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* 新增对使用并行副本直接读取文本索引的支持。提升了从对象存储读取文本索引的性能。 [#88262](https://github.com/ClickHouse/ClickHouse/pull/88262) ([Anton Popov](https://github.com/CurtizJ)). +* 针对数据湖目录中表的查询,在分布式处理时将使用并行副本。[#88273](https://github.com/ClickHouse/ClickHouse/pull/88273) ([scanhex12](https://github.com/scanhex12)). +* 用于调优后台合并算法的内部启发式规则(名为 "to_remove_small_parts_at_right")现在会在计算合并区间得分之前执行。在此之前,合并选择器会先选择一个宽范围的合并,然后再过滤其尾部区间。修复内容:[#85374](https://github.com/ClickHouse/ClickHouse/issues/85374)。[#88736](https://github.com/ClickHouse/ClickHouse/pull/88736)([Mikhail Artemenko](https://github.com/Michicosun))。 + +#### 改进 {#improvement} + +* 现在,函数 `generateSerialID` 支持将序列名称作为非常量参数。解决了 [#83750](https://github.com/ClickHouse/ClickHouse/issues/83750)。[#88270](https://github.com/ClickHouse/ClickHouse/pull/88270)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 为 `generateSerialID` 函数新增可选的 `start_value` 参数,用于为新序列设置自定义起始值。[#88085](https://github.com/ClickHouse/ClickHouse/pull/88085) ([Manuel](https://github.com/raimannma)). +* 在 `clickhouse-format` 中添加 `--semicolons_inline` 选项,用于将查询格式化为在最后一行放置分号,而不是另起一行。[#88018](https://github.com/ClickHouse/ClickHouse/pull/88018)([Jan Rada](https://github.com/ZelvaMan))。 +* 允许在 Keeper 中覆盖配置时进行服务器级别的限流配置。关闭 [#73964](https://github.com/ClickHouse/ClickHouse/issues/73964)。[#74066](https://github.com/ClickHouse/ClickHouse/pull/74066)([JIaQi](https://github.com/JiaQiTang98))。 +* 当两个样本都只包含相同的值时,`mannWhitneyUTest` 不再抛出异常。现在会返回一个与 SciPy 保持一致的有效结果。修复问题:[#79814](https://github.com/ClickHouse/ClickHouse/issues/79814)。[#80009](https://github.com/ClickHouse/ClickHouse/pull/80009)([DeanNeaht](https://github.com/DeanNeaht))。 +* 在重写磁盘对象存储的事务中,如果元数据事务已提交,则会删除之前的远程 blob。 [#81787](https://github.com/ClickHouse/ClickHouse/pull/81787) ([Sema Checherinda](https://github.com/CheSema)). +* 修复了当优化前后结果类型的 `LowCardinality` 不同时,对冗余相等表达式的优化过程。[#82651](https://github.com/ClickHouse/ClickHouse/pull/82651) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 +* 当 HTTP 客户端在设置 `Expect: 100-continue` 的同时额外设置头 `X-ClickHouse-100-Continue: defer` 时,ClickHouse 在配额验证通过之前不会向客户端发送 `100 Continue` 响应,从而避免为那些最终会被丢弃的请求体浪费网络带宽。这对 INSERT 查询尤为相关,因为查询本身可以通过 URL 查询字符串发送,而数据则在请求体中发送。在未发送完整请求体的情况下中止请求会导致在 HTTP/1.1 中无法复用连接,但为建立新连接而引入的额外延迟,相比在大量数据场景下 INSERT 的总耗时通常可以忽略不计。[#84304](https://github.com/ClickHouse/ClickHouse/pull/84304) ([c-end](https://github.com/c-end))。 +* 在使用 DATABASE ENGINE = Backup 并采用 S3 存储时,对日志中的 S3 凭据进行脱敏处理。 [#85336](https://github.com/ClickHouse/ClickHouse/pull/85336) ([Kenny Sun](https://github.com/hwabis)). +* 通过推迟其物化,使查询计划中的优化对关联子查询的输入子计划可见。属于 [#79890](https://github.com/ClickHouse/ClickHouse/issues/79890) 的一部分。[#85455](https://github.com/ClickHouse/ClickHouse/pull/85455)([Dmitry Novik](https://github.com/novikd))。 +* 对 `SYSTEM DROP DATABASE REPLICA` 的更改: - 当通过 `DROP DATABASE` 或删除整个副本的方式进行删除时:还会为该数据库中的每个表删除副本 - 如果提供了 `WITH TABLES`:则为每个存储删除副本 - 否则,逻辑保持不变,只在数据库级别删除副本 - 当使用 Keeper 路径删除数据库副本时: - 如果提供了 `WITH TABLES`: - 将数据库恢复为 `Atomic` - 从 Keeper 中的语句恢复 RMT 表 - 删除该数据库(恢复的表也会被删除) - 否则,只在提供的 Keeper 路径上删除副本。[#85637](https://github.com/ClickHouse/ClickHouse/pull/85637) ([Tuan Pham Anh](https://github.com/tuanpach)). +* 修复包含 `materialize` 函数的生存时间 (TTL) 表达式格式不一致的问题。关闭 [#82828](https://github.com/ClickHouse/ClickHouse/issues/82828)。[#85749](https://github.com/ClickHouse/ClickHouse/pull/85749)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* Iceberg 表状态不再存储在单个存储对象中。这应当使 ClickHouse 中的 Iceberg 能够支持并发查询。 [#86062](https://github.com/ClickHouse/ClickHouse/pull/86062) ([Daniil Ivanik](https://github.com/divanik))。 +* 将 S3Queue 的有序模式下的 bucket 锁改为持久化模式,类似于在 `use_persistent_processing_nodes = 1` 时的 processing 节点。在测试中添加 keeper 故障注入。[#86628](https://github.com/ClickHouse/ClickHouse/pull/86628) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* 当用户在格式名称里有拼写错误时提供提示。修复了 [#86761](https://github.com/ClickHouse/ClickHouse/issues/86761)。[#87092](https://github.com/ClickHouse/ClickHouse/pull/87092) ([flynn](https://github.com/ucasfl))。 +* 如果没有 PROJECTION,远程副本将跳过索引分析。[#87096](https://github.com/ClickHouse/ClickHouse/pull/87096) ([zoomxi](https://github.com/zoomxi)). +* 允许对 YTsaurus 表禁用 UTF-8 编码。[#87150](https://github.com/ClickHouse/ClickHouse/pull/87150) ([MikhailBurdukov](https://github.com/MikhailBurdukov))。 +* 默认将 `s3_slow_all_threads_after_retryable_error` 禁用。[#87198](https://github.com/ClickHouse/ClickHouse/pull/87198) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* 将表函数 `arrowflight` 重命名为 `arrowFlight`。 [#87249](https://github.com/ClickHouse/ClickHouse/pull/87249) ([Vitaly Baranov](https://github.com/vitlibar))。 +* 更新了 `clickhouse-benchmark`,现在其命令行选项中可以使用 `-` 来替代 `_`。[#87251](https://github.com/ClickHouse/ClickHouse/pull/87251) ([Ahmed Gouda](https://github.com/0xgouda))。 +* 在信号处理时,将对 `system.crash_log` 的刷新改为同步执行。 [#87253](https://github.com/ClickHouse/ClickHouse/pull/87253) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* 新增了一个名为 `inject_random_order_for_select_without_order_by` 的设置项,用于在顶层不带 `ORDER BY` 子句的 `SELECT` 查询中自动注入 `ORDER BY rand()`。 [#87261](https://github.com/ClickHouse/ClickHouse/pull/87261) ([Rui Zhang](https://github.com/zhangruiddn))。 +* 改进 `joinGet` 错误信息,使其能够正确提示 `join_keys` 的数量与 `right_table_keys` 的数量不一致。 [#87279](https://github.com/ClickHouse/ClickHouse/pull/87279) ([Isak Ellmer](https://github.com/spinojara)). +* 在写事务期间新增检查任意 Keeper 节点 stat 的功能,有助于检测 ABA 问题。[#87282](https://github.com/ClickHouse/ClickHouse/pull/87282)([Mikhail Artemenko](https://github.com/Michicosun))。 +* 将高负载的 ytsaurus 请求重定向到高负载代理。 [#87342](https://github.com/ClickHouse/ClickHouse/pull/87342) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* 修复了在各种可能的工作负载下,对基于磁盘事务的元数据执行 `unlink`/`rename`/`removeRecursive`/`removeDirectory` 等操作及其硬链接计数时的回滚问题,并简化接口使其更加通用,以便在其他元存储中复用。[#87358](https://github.com/ClickHouse/ClickHouse/pull/87358) ([Mikhail Artemenko](https://github.com/Michicosun)). +* 新增 `keeper_server.tcp_nodelay` 配置参数,用于在 Keeper 中禁用 `TCP_NODELAY`。[#87363](https://github.com/ClickHouse/ClickHouse/pull/87363) (Copilot)。 +* 在 `clickhouse-benchmarks` 中支持 `--connection`。其行为与 `clickhouse-client` 中的相同,你可以在客户端 `config.xml`/`config.yaml` 的 `connections_credentials` 配置项下指定预定义连接,以避免通过命令行参数显式指定用户名/密码。为 `clickhouse-benchmark` 新增对 `--accept-invalid-certificate` 的支持。[#87370](https://github.com/ClickHouse/ClickHouse/pull/87370) ([Azat Khuzhin](https://github.com/azat))。 +* 现在,设置 `max_insert_threads` 也会对 Iceberg 表生效。[#87407](https://github.com/ClickHouse/ClickHouse/pull/87407) ([alesapin](https://github.com/alesapin)). +* 将直方图和多维指标添加到 `PrometheusMetricsWriter`。这样,`PrometheusRequestHandler` 处理程序就具备所有关键指标,可用于在 Cloud 中进行可靠、低开销的指标采集。[#87521](https://github.com/ClickHouse/ClickHouse/pull/87521) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* `hasToken` 函数现在对于空 token 返回零个匹配结果(此前这种情况下会抛出异常)。 [#87564](https://github.com/ClickHouse/ClickHouse/pull/87564) ([Jimmy Aguilar Mena](https://github.com/Ergus)). +* 为 `Array` 和 `Map`(`mapKeys` 和 `mapValues`)类型的值增加文本索引支持。支持的函数包括 `mapContainsKey` 和 `has`。[#87602](https://github.com/ClickHouse/ClickHouse/pull/87602) ([Elmi Ahmadov](https://github.com/ahmadov))。 +* 新增一个 `ZooKeeperSessionExpired` 指标,用于表示已过期的全局 ZooKeeper 会话数量。[#87613](https://github.com/ClickHouse/ClickHouse/pull/87613) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* 在执行到备份目标的服务器端(原生)复制时,使用带有备份专用设置的 S3 存储客户端(例如 `backup_slow_all_threads_after_retryable_s3_error`)。将 `s3_slow_all_threads_after_retryable_error` 废弃。 [#87660](https://github.com/ClickHouse/ClickHouse/pull/87660) ([Julia Kartseva](https://github.com/jkartseva)). +* 修复在使用实验性功能 `make_distributed_plan` 进行查询计划序列化时,对 `max_joined_block_size_rows` 和 `max_joined_block_size_bytes` 这两个设置项处理不正确的问题。[#87675](https://github.com/ClickHouse/ClickHouse/pull/87675) ([Vladimir Cherkasov](https://github.com/vdimir)). +* `enable_http_compression` 设置现已默认启用。这意味着如果客户端接受 HTTP 压缩,服务端将会使用它。不过,此变更也有一些缺点。客户端可以请求一种资源开销很大的压缩方式,例如 `bzip2`,这是不合理的,并且会增加服务端的资源消耗(但只有在传输大型结果时才会明显)。客户端也可以请求 `gzip`,这并不算太糟,但与 `zstd` 相比并非最优。关闭 [#71591](https://github.com/ClickHouse/ClickHouse/issues/71591)。[#87703](https://github.com/ClickHouse/ClickHouse/pull/87703)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 在 `system.server_settings` 中新增了一个条目 `keeper_hosts`,用于展示 ClickHouse 可以连接的 [Zoo]Keeper 主机列表。 [#87718](https://github.com/ClickHouse/ClickHouse/pull/87718) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* 在系统仪表板中添加 `from` 和 `to` 值,以便更方便地进行历史排查。[#87823](https://github.com/ClickHouse/ClickHouse/pull/87823)([Mikhail f. Shiryaev](https://github.com/Felixoid))。 +* 在 Iceberg 的 SELECT 查询中添加更多用于性能跟踪的信息。[#87903](https://github.com/ClickHouse/ClickHouse/pull/87903) ([Daniil Ivanik](https://github.com/divanik)). +* 文件系统缓存改进:在并发为缓存预留空间的多个线程之间复用缓存优先级迭代器。[#87914](https://github.com/ClickHouse/ClickHouse/pull/87914)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 新增用于限制 `Keeper` 请求大小的功能(`max_request_size` SETTING,与 `ZooKeeper` 的 `jute.maxbuffer` 相同,默认为 OFF 以保持向后兼容,默认值将在后续版本中调整)。 [#87952](https://github.com/ClickHouse/ClickHouse/pull/87952) ([Azat Khuzhin](https://github.com/azat)). +* 将 `clickhouse-benchmark` 调整为默认不在错误信息中包含堆栈跟踪。[#87954](https://github.com/ClickHouse/ClickHouse/pull/87954) ([Ahmed Gouda](https://github.com/0xgouda))。 +* 当标记已在缓存中时,避免使用线程池进行异步标记加载(`load_marks_asynchronously=1`),因为线程池可能处于高负载状态,即使标记已在缓存中,查询仍会因此付出额外开销。 [#87967](https://github.com/ClickHouse/ClickHouse/pull/87967) ([Azat Khuzhin](https://github.com/azat))。 +* Ytsaurus:允许仅指定部分列来创建表、表函数和字典。[#87982](https://github.com/ClickHouse/ClickHouse/pull/87982)([MikhailBurdukov](https://github.com/MikhailBurdukov))。 +* `system.zookeeper_connection_log` 现已默认启用,可用于获取 Keeper 会话的信息。[#88011](https://github.com/ClickHouse/ClickHouse/pull/88011) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 +* 当传入重复的外部表时,使 TCP 和 HTTP 的行为保持一致。HTTP 允许同一个临时表被多次传入。[#88032](https://github.com/ClickHouse/ClickHouse/pull/88032) ([Sema Checherinda](https://github.com/CheSema)). +* 移除用于读取 Arrow/ORC/Parquet 的自定义 MemoryPools。在 [#84082](https://github.com/ClickHouse/ClickHouse/pull/84082) 之后,该组件似乎已不再需要,因为现在我们在任何情况下都会跟踪所有的内存分配。[#88035](https://github.com/ClickHouse/ClickHouse/pull/88035)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* 允许在不带参数的情况下创建 `Replicated` 数据库。[#88044](https://github.com/ClickHouse/ClickHouse/pull/88044) ([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 +* `clickhouse-keeper-client`:增加了对通过 TLS 端口连接 clickhouse-keeper 的支持,命令行参数名称保持与 `clickhouse-client` 中一致。[#88065](https://github.com/ClickHouse/ClickHouse/pull/88065)([Pradeep Chhetri](https://github.com/chhetripradeep))。 +* 新增了一个 profile event,用于统计后台合并因超出内存限制而被拒绝的次数。[#88084](https://github.com/ClickHouse/ClickHouse/pull/88084)([Grant Holly](https://github.com/grantholly-clickhouse))。 +* 为 `CREATE/ALTER TABLE` 语句中的列默认表达式验证启用 analyzer。 [#88087](https://github.com/ClickHouse/ClickHouse/pull/88087) ([Max Justus Spransy](https://github.com/maxjustus)). +* 内部查询计划改进:对 `CROSS JOIN` 使用 JoinStepLogical。 [#88151](https://github.com/ClickHouse/ClickHouse/pull/88151) ([Vladimir Cherkasov](https://github.com/vdimir)). +* 为 `hasAnyTokens`(`hasAnyToken`)和 `hasAllTokens`(`hasAllToken`)函数添加了别名。 [#88162](https://github.com/ClickHouse/ClickHouse/pull/88162) ([George Larionov](https://github.com/george-larionov)). +* 默认启用全局采样性能分析器(也就是说,即使是与查询无关的服务器线程也会被采样):每 10 秒的 CPU 时间和实时时间,为所有线程采集一次栈跟踪(stacktrace)。 [#88209](https://github.com/ClickHouse/ClickHouse/pull/88209) ([Alexander Tokmakov](https://github.com/tavplubix)). +* 更新 Azure SDK,以修复在复制和创建容器功能中出现的 'Content-Length' 问题。[#88278](https://github.com/ClickHouse/ClickHouse/pull/88278) ([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 +* 使 `lag` 函数大小写不敏感,以兼容 MySQL。 [#88322](https://github.com/ClickHouse/ClickHouse/pull/88322) ([Lonny Kapelushnik](https://github.com/lonnylot)). +* 允许从 `clickhouse-server` 目录启动 `clickhouse-local`。在之前的版本中,这会导致错误 `Cannot parse UUID: .`。现在可以在不启动 `clickhouse-server` 的情况下启动 `clickhouse-local` 并操作该服务器的数据库。[#88383](https://github.com/ClickHouse/ClickHouse/pull/88383) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 添加配置项 `keeper_server.coordination_settings.check_node_acl_on_remove`。如果启用,在每次删除节点之前,会同时验证该节点自身及其父节点的 ACL。否则,只会验证父节点的 ACL。[#88513](https://github.com/ClickHouse/ClickHouse/pull/88513) ([Antonio Andelic](https://github.com/antonio2368))。 +* 在使用 `Vertical` 格式时,`JSON` 列现在会以更易读的格式输出。修复了 [#81794](https://github.com/ClickHouse/ClickHouse/issues/81794)。[#88524](https://github.com/ClickHouse/ClickHouse/pull/88524)([Frank Rosner](https://github.com/FRosner))。 +* 将 `clickhouse-client` 文件(例如查询历史)存储在 [XDG Base Directories](https://specifications.freedesktop.org/basedir-spec/latest/index.html) 规范所描述的位置,而不是用户主目录的根路径下。如果 `~/.clickhouse-client-history` 已经存在,则仍会继续使用该文件。[#88538](https://github.com/ClickHouse/ClickHouse/pull/88538) ([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 修复因 `GLOBAL IN` 导致的内存泄漏([https://github.com/ClickHouse/ClickHouse/issues/88615](https://github.com/ClickHouse/ClickHouse/issues/88615))。[#88617](https://github.com/ClickHouse/ClickHouse/pull/88617)([pranavmehta94](https://github.com/pranavmehta94))。 +* 为 hasAny/hasAllTokens 添加了可接受字符串参数的重载版本。 [#88679](https://github.com/ClickHouse/ClickHouse/pull/88679) ([George Larionov](https://github.com/george-larionov)). +* 在 `clickhouse-keeper` 的 postinstall 脚本中添加一个步骤,以启用开机时自动启动。[#88746](https://github.com/ClickHouse/ClickHouse/pull/88746) ([YenchangChan](https://github.com/YenchangChan)). +* 仅在将凭证粘贴到 Web UI 时才进行检查,而不是在每次按键时检查。这样可以避免配置错误的 LDAP 服务器导致的问题。此更改关闭了 [#85777](https://github.com/ClickHouse/ClickHouse/issues/85777)。[#88769](https://github.com/ClickHouse/ClickHouse/pull/88769)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 在违反约束时限制异常信息的长度。在早期版本中,当插入一个非常长的字符串时,可能会产生一条非常长的异常信息,并最终写入 `query_log`。修复了 [#87032](https://github.com/ClickHouse/ClickHouse/issues/87032)。[#88801](https://github.com/ClickHouse/ClickHouse/pull/88801)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 修复了在创建表时向 ArrowFlight 服务器请求数据集结构的逻辑。 [#87542](https://github.com/ClickHouse/ClickHouse/pull/87542) ([Vitaly Baranov](https://github.com/vitlibar))。 + +#### Bug 修复(官方稳定版中对用户可见的错误行为) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* 修复了由 GeoParquet 导致的客户端协议错误。 [#84020](https://github.com/ClickHouse/ClickHouse/pull/84020) ([Michael Kolupaev](https://github.com/al13n321)). +* 修复在发起节点上对子查询中诸如 shardNum() 等主机相关函数的解析问题。 [#84409](https://github.com/ClickHouse/ClickHouse/pull/84409) ([Eduard Karacharov](https://github.com/korowa)). +* 修复了在多个与日期时间相关的函数(如 `parseDateTime64BestEffort`、`change{Year,Month,Day}` 和 `makeDateTime64`)中对 Unix 纪元之前日期且带小数秒的处理错误。此前会错误地将小数秒部分从秒数中减去,而不是将其相加。例如,`parseDateTime64BestEffort('1969-01-01 00:00:00.468')` 会返回 `1968-12-31 23:59:59.532`,而不是 `1969-01-01 00:00:00.468`。 [#85396](https://github.com/ClickHouse/ClickHouse/pull/85396) ([xiaohuanlin](https://github.com/xiaohuanlin)). +* 修复了在同一条 ALTER 语句内列的状态发生变化时,ALTER COLUMN IF EXISTS 命令会失败的问题。现在,例如 DROP COLUMN IF EXISTS、MODIFY COLUMN IF EXISTS、COMMENT COLUMN IF EXISTS 和 RENAME COLUMN IF EXISTS 等命令,可以正确处理同一语句中前一个命令已删除该列的情况。[#86046](https://github.com/ClickHouse/ClickHouse/pull/86046)([xiaohuanlin](https://github.com/xiaohuanlin))。 +* 修复在日期超出支持范围时对 Date/DateTime/DateTime64 类型的推断。 [#86184](https://github.com/ClickHouse/ClickHouse/pull/86184) ([Pavel Kruglov](https://github.com/Avogar))。 +* 修复了一个问题:某些有效的用户提交数据在写入 `AggregateFunction(quantileDD)` 列时,可能导致合并阶段出现无限递归并引发崩溃。 [#86560](https://github.com/ClickHouse/ClickHouse/pull/86560) ([Raphaël Thériault](https://github.com/raphael-theriault-swi)). +* 在使用 `cluster` 表函数创建的表中支持 JSON/Dynamic 类型。[#86821](https://github.com/ClickHouse/ClickHouse/pull/86821) ([Pavel Kruglov](https://github.com/Avogar)). +* 修复在查询中通过 CTE 计算得到的函数结果具有非确定性的问题。 [#86967](https://github.com/ClickHouse/ClickHouse/pull/86967) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* 修复在主键列上使用 pointInPolygon 时,EXPLAIN 中出现的 LOGICAL_ERROR。 [#86971](https://github.com/ClickHouse/ClickHouse/pull/86971) ([Michael Kolupaev](https://github.com/al13n321)). +* 修复名称中包含百分号编码序列的数据湖表的问题。关闭了 [#86626](https://github.com/ClickHouse/ClickHouse/issues/86626)。[#87020](https://github.com/ClickHouse/ClickHouse/pull/87020)([Anton Ivashkin](https://github.com/ianton-ru))。 +* 修复在启用 `optimize_functions_to_subcolumns` 时,`OUTER JOIN` 中在 Nullable 列上使用 `IS NULL` 行为不正确的问题,关闭 [#78625](https://github.com/ClickHouse/ClickHouse/issues/78625)。[#87058](https://github.com/ClickHouse/ClickHouse/pull/87058)([Vladimir Cherkasov](https://github.com/vdimir))。 +* 修复了在 `max_temporary_data_on_disk_size` 限制跟踪中对临时数据释放的错误统计问题,关闭 [#87118](https://github.com/ClickHouse/ClickHouse/issues/87118)。[#87140](https://github.com/ClickHouse/ClickHouse/pull/87140) ([JIaQi](https://github.com/JiaQiTang98))。 +* 函数 checkHeaders 现在可以正确校验提供的请求头,并拒绝不允许使用的请求头。原始作者:Michael Anastasakis (@michael-anastasakis)。[#87172](https://github.com/ClickHouse/ClickHouse/pull/87172) ([Raúl Marín](https://github.com/Algunenano))。 +* 使 `toDate` 和 `toDate32` 在所有数值类型上具有相同的行为。修复了从 int16 类型转换时对 Date32 的下溢检查问题。 [#87176](https://github.com/ClickHouse/ClickHouse/pull/87176) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* 修复在使用并行副本执行包含多个 JOIN 的查询时的逻辑错误,尤其是当在 LEFT/INNER JOIN 之后使用 RIGHT JOIN 时。 [#87178](https://github.com/ClickHouse/ClickHouse/pull/87178) ([Igor Nikonov](https://github.com/devcrafter)). +* 模式推断缓存现在会遵从 `input_format_try_infer_variants` 设置。[#87180](https://github.com/ClickHouse/ClickHouse/pull/87180) ([Pavel Kruglov](https://github.com/Avogar))。 +* 使 pathStartsWith 只匹配指定前缀下的路径。[#87181](https://github.com/ClickHouse/ClickHouse/pull/87181) ([Raúl Marín](https://github.com/Algunenano))。 +* 修复了 `_row_number` 虚拟列和 Iceberg 定位删除中的逻辑错误。[#87220](https://github.com/ClickHouse/ClickHouse/pull/87220)([Michael Kolupaev](https://github.com/al13n321))。 +* 修复在 `JOIN` 中由于混用常量和非常量数据块导致的 `LOGICAL_ERROR`,错误信息为“Too large size passed to allocator”。[#87231](https://github.com/ClickHouse/ClickHouse/pull/87231)([Azat Khuzhin](https://github.com/azat))。 +* 修复了轻量级更新在包含从其他 `MergeTree` 表读取的子查询时的问题。[#87285](https://github.com/ClickHouse/ClickHouse/pull/87285) ([Anton Popov](https://github.com/CurtizJ))。 +* 修复了在启用 ROW POLICY 时无法正常工作的 move-to-prewhere 优化。这是对 [#85118](https://github.com/ClickHouse/ClickHouse/issues/85118) 的后续改进。修复了 [#69777](https://github.com/ClickHouse/ClickHouse/issues/69777)。修复了 [#83748](https://github.com/ClickHouse/ClickHouse/issues/83748)。[#87303](https://github.com/ClickHouse/ClickHouse/pull/87303)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 修复了在对数据分区片段中缺失但具有默认表达式的列应用补丁时出现的问题。 [#87347](https://github.com/ClickHouse/ClickHouse/pull/87347) ([Anton Popov](https://github.com/CurtizJ)). +* 修复了在 MergeTree 表中使用重复的分区字段名时出现的段错误。 [#87365](https://github.com/ClickHouse/ClickHouse/pull/87365) ([xiaohuanlin](https://github.com/xiaohuanlin)). +* 修复 EmbeddedRocksDB 的升级问题。 [#87392](https://github.com/ClickHouse/ClickHouse/pull/87392) ([Raúl Marín](https://github.com/Algunenano)). +* 修复了在对象存储中直接读取文本索引的问题。[#87399](https://github.com/ClickHouse/ClickHouse/pull/87399) ([Anton Popov](https://github.com/CurtizJ)). +* 防止创建针对不存在引擎的权限。 [#87419](https://github.com/ClickHouse/ClickHouse/pull/87419) ([Jitendra](https://github.com/jitendra1411)). +* 仅对 `s3_plain_rewritable` 忽略“未找到”错误,否则可能引发各种问题。[#87426](https://github.com/ClickHouse/ClickHouse/pull/87426) ([Azat Khuzhin](https://github.com/azat)). +* 修复使用 YTSaurus 作为源且采用 *range_hashed 布局的字典。[#87490](https://github.com/ClickHouse/ClickHouse/pull/87490) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* 修复在创建空元组数组时出现的问题。 [#87520](https://github.com/ClickHouse/ClickHouse/pull/87520) ([Pavel Kruglov](https://github.com/Avogar)). +* 在创建临时表时检查不合法的列。[#87524](https://github.com/ClickHouse/ClickHouse/pull/87524) ([Pavel Kruglov](https://github.com/Avogar)). +* 不要将 Hive 分区列放入格式头部。修复了 [#87515](https://github.com/ClickHouse/ClickHouse/issues/87515)。[#87528](https://github.com/ClickHouse/ClickHouse/pull/87528)([Arthur Passos](https://github.com/arthurpassos))。 +* 修复在 DeltaLake 中使用文本格式时的 format 读取准备过程。[#87529](https://github.com/ClickHouse/ClickHouse/pull/87529)([Pavel Kruglov](https://github.com/Avogar))。 +* 修复了对 Buffer 表执行 SELECT 和 INSERT 操作时的访问权限验证问题。[#87545](https://github.com/ClickHouse/ClickHouse/pull/87545) ([pufit](https://github.com/pufit)). +* 不允许为 S3 表创建 data skipping 索引。 [#87554](https://github.com/ClickHouse/ClickHouse/pull/87554) ([Bharat Nallan](https://github.com/bharatnc)). +* 避免异步日志记录中的已跟踪内存泄漏(10 小时内可能产生约 100GiB 的显著偏差),以及 `text_log` 中的泄漏(也可能出现几乎相同的偏差)。 [#87584](https://github.com/ClickHouse/ClickHouse/pull/87584) ([Azat Khuzhin](https://github.com/azat)). +* 修复了一个 Bug:如果某个 View 或 materialized view 被异步删除,而在后台清理完成之前服务器重启,可能会导致该 View 的 SELECT 查询 settings 覆盖全局服务器 settings。 [#87603](https://github.com/ClickHouse/ClickHouse/pull/87603) ([Alexander Tokmakov](https://github.com/tavplubix))。 +* 在计算内存过载告警时,如有可能,排除用户态页面缓存字节数。[#87610](https://github.com/ClickHouse/ClickHouse/pull/87610)([Bharat Nallan](https://github.com/bharatnc))。 +* 修复了一个问题:在 CSV 反序列化期间,由于字段类型顺序不正确而触发 `LOGICAL_ERROR`。 [#87622](https://github.com/ClickHouse/ClickHouse/pull/87622) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* 修复在可执行字典中对 `command_read_timeout` 的错误处理。[#87627](https://github.com/ClickHouse/ClickHouse/pull/87627)([Azat Khuzhin](https://github.com/azat))。 +* 修复了在新分析器下,当在 `WHERE` 子句中对被替换列进行过滤时,`SELECT * REPLACE` 行为不正确的问题。 [#87630](https://github.com/ClickHouse/ClickHouse/pull/87630) ([xiaohuanlin](https://github.com/xiaohuanlin)). +* 修复了在 `Distributed` 表上使用 `Merge` 时的两级聚合问题。[#87687](https://github.com/ClickHouse/ClickHouse/pull/87687) ([c-end](https://github.com/c-end)). +* 修复在 HashJoin 算法中未使用右侧行列表时输出块的生成。修复了 [#87401](https://github.com/ClickHouse/ClickHouse/issues/87401)。[#87699](https://github.com/ClickHouse/ClickHouse/pull/87699)([Dmitry Novik](https://github.com/novikd))。 +* 在应用索引分析后,如无可读数据,可能会错误地选择并行副本读取模式。修复了 [#87653](https://github.com/ClickHouse/ClickHouse/issues/87653)。[#87700](https://github.com/ClickHouse/ClickHouse/pull/87700)([zoomxi](https://github.com/zoomxi))。 +* 修复 Glue 中对 `timestamp` / `timestamptz` 列的处理问题。[#87733](https://github.com/ClickHouse/ClickHouse/pull/87733)([Andrey Zvonov](https://github.com/zvonand))。 +* 已关闭 [#86587](https://github.com/ClickHouse/ClickHouse/issues/86587)。[#87761](https://github.com/ClickHouse/ClickHouse/pull/87761)([scanhex12](https://github.com/scanhex12))。 +* 修复在 PostgreSQL 接口中写入布尔值的问题。[#87762](https://github.com/ClickHouse/ClickHouse/pull/87762) ([Artem Yurov](https://github.com/ArtemYurov)). +* 修复在带有 CTE 的 INSERT SELECT 查询中出现的未知表错误,[#85368](https://github.com/ClickHouse/ClickHouse/issues/85368)。[#87789](https://github.com/ClickHouse/ClickHouse/pull/87789)([Guang Zhao](https://github.com/zheguang))。 +* 修复从不能位于 Nullable 的 Variant 类型中读取 null map 子列的问题。 [#87798](https://github.com/ClickHouse/ClickHouse/pull/87798) ([Pavel Kruglov](https://github.com/Avogar))。 +* 修复在集群从节点上未能彻底删除数据库时的错误处理问题。 [#87802](https://github.com/ClickHouse/ClickHouse/pull/87802) ([Tuan Pham Anh](https://github.com/tuanpach))。 +* 修复了若干 skip 索引相关缺陷。[#87817](https://github.com/ClickHouse/ClickHouse/pull/87817)([Raúl Marín](https://github.com/Algunenano))。 +* 在 AzureBlobStorage 中,更新为先尝试使用原生复制,若出现 'Unauthroized' 错误,则回退为读写方式(在 AzureBlobStorage 中,如果源和目标使用不同的存储账号,会出现 'Unauthorized' 错误)。并修复了在配置中定义了 endpoint 时应用 "use_native_copy" 的问题。[#87826](https://github.com/ClickHouse/ClickHouse/pull/87826)([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 +* 如果 ArrowStream 文件包含非唯一的字典,ClickHouse 会崩溃。[#87863](https://github.com/ClickHouse/ClickHouse/pull/87863) ([Ilya Golshtein](https://github.com/ilejn))。 +* 修复使用 `approx_top_k` 和 `finalizeAggregation` 时导致的致命错误。 [#87892](https://github.com/ClickHouse/ClickHouse/pull/87892) ([Jitendra](https://github.com/jitendra1411))。 +* 修复当最后一个数据块为空时与 PROJECTION 的合并。 [#87928](https://github.com/ClickHouse/ClickHouse/pull/87928) ([Raúl Marín](https://github.com/Algunenano)). +* 当参数类型不被允许用于 GROUP BY 时,不再从 GROUP BY 中移除单射函数。 [#87958](https://github.com/ClickHouse/ClickHouse/pull/87958) ([Pavel Kruglov](https://github.com/Avogar))。 +* 修复在查询中使用 `session_timezone` 设置时,对基于 datetime 的键进行 granule/分区裁剪不正确的问题。 [#87987](https://github.com/ClickHouse/ClickHouse/pull/87987) ([Eduard Karacharov](https://github.com/korowa)). +* PostgreSQL 接口现在会在查询执行后返回受影响的行数。 [#87990](https://github.com/ClickHouse/ClickHouse/pull/87990) ([Artem Yurov](https://github.com/ArtemYurov)). +* 限制在 PASTE JOIN 中启用过滤下推,以避免产生错误结果。[#88078](https://github.com/ClickHouse/ClickHouse/pull/88078) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* 在对 [https://github.com/ClickHouse/ClickHouse/pull/84503](https://github.com/ClickHouse/ClickHouse/pull/84503) 引入的权限检查进行评估之前,先应用 URI 规范化处理。[#88089](https://github.com/ClickHouse/ClickHouse/pull/88089)([pufit](https://github.com/pufit))。 +* 修复在新分析器中,当 ARRAY JOIN COLUMNS() 未匹配到任何列时的逻辑错误。[#88091](https://github.com/ClickHouse/ClickHouse/pull/88091) ([xiaohuanlin](https://github.com/xiaohuanlin))。 +* 修复“ClickHouse 内存使用率过高”警告(不包括页面缓存 page cache)。 [#88092](https://github.com/ClickHouse/ClickHouse/pull/88092) ([Azat Khuzhin](https://github.com/azat)). +* 修复了在具有 Set 列生存时间 (TTL) 的 `MergeTree` 表中可能出现的数据损坏问题。[#88095](https://github.com/ClickHouse/ClickHouse/pull/88095) ([Anton Popov](https://github.com/CurtizJ))。 +* 修复在附加包含无效数据表的外部数据库(`PostgreSQL`/`SQLite`/...)时读取 `system.tables` 可能出现的未捕获异常。[#88105](https://github.com/ClickHouse/ClickHouse/pull/88105) ([Azat Khuzhin](https://github.com/azat))。 +* 修复了在以空元组作为参数调用 `mortonEncode` 和 `hilbertEncode` 函数时发生崩溃的问题。[#88110](https://github.com/ClickHouse/ClickHouse/pull/88110) ([xiaohuanlin](https://github.com/xiaohuanlin)). +* 现在,在集群中存在非活动副本时,`ON CLUSTER` 查询的执行时间将缩短。[#88153](https://github.com/ClickHouse/ClickHouse/pull/88153) ([alesapin](https://github.com/alesapin)). +* 现在 DDL worker 会从副本集中清理过期的主机记录,从而减少存储在 ZooKeeper 中的元数据量。[#88154](https://github.com/ClickHouse/ClickHouse/pull/88154) ([alesapin](https://github.com/alesapin)). +* 修复在未使用 cgroups 的情况下运行 ClickHouse 的问题(之前由于异步指标,cgroups 被意外地设成了必需条件)。[#88164](https://github.com/ClickHouse/ClickHouse/pull/88164) ([Azat Khuzhin](https://github.com/azat)). +* 在出现错误时对移动目录操作进行正确回滚。我们需要重写执行期间更改的所有 `prefix.path` 对象,而不仅仅是根对象。 [#88198](https://github.com/ClickHouse/ClickHouse/pull/88198) ([Mikhail Artemenko](https://github.com/Michicosun))。 +* 修复了在 `ColumnLowCardinality` 中传播 `is_shared` 标志的问题。如果在哈希值已经预先计算并缓存在 `ReverseIndex` 中之后,又在某列中插入了新值,可能会导致错误的 GROUP BY 结果。 [#88213](https://github.com/ClickHouse/ClickHouse/pull/88213) ([Nikita Taranov](https://github.com/nickitat)). +* 修复了工作负载配置 `max_cpu_share` 的问题。现在即使未设置工作负载配置 `max_cpus`,也可以使用该配置。[#88217](https://github.com/ClickHouse/ClickHouse/pull/88217) ([Neerav](https://github.com/neeravsalaria)). +* 修复了一个 bug:开销很大的、带有子查询的 mutation 可能会卡在准备阶段。现在可以通过 `SYSTEM STOP MERGES` 来停止这些 mutation。[#88241](https://github.com/ClickHouse/ClickHouse/pull/88241) ([alesapin](https://github.com/alesapin))。 +* 现在,可以在对象存储上使用相关子查询。[#88290](https://github.com/ClickHouse/ClickHouse/pull/88290) ([alesapin](https://github.com/alesapin))。 +* 避免在访问 `system.projections` 和 `system.data_skipping_indices` 时尝试初始化 DataLake 数据库。[#88330](https://github.com/ClickHouse/ClickHouse/pull/88330) ([Azat Khuzhin](https://github.com/azat)). +* 现在,只有在显式启用 `show_data_lake_catalogs_in_system_tables` 时,数据湖目录才会在系统自省表中显示。[#88341](https://github.com/ClickHouse/ClickHouse/pull/88341)([alesapin](https://github.com/alesapin))。 +* 已修复 DatabaseReplicated,使其遵循 `interserver_http_host` 配置。[#88378](https://github.com/ClickHouse/ClickHouse/pull/88378)([xiaohuanlin](https://github.com/xiaohuanlin))。 +* 在定义 PROJECTION 时,现在已在语义上明确禁用位置参数,因为在该内部查询阶段使用它们并不合理。此更改修复了 [#48604](https://github.com/ClickHouse/ClickHouse/issues/48604)。[#88380](https://github.com/ClickHouse/ClickHouse/pull/88380)([Amos Bird](https://github.com/amosbird))。 +* 修复了 `countMatches` FUNCTION 中的平方级时间复杂度问题。关闭了 [#88400](https://github.com/ClickHouse/ClickHouse/issues/88400)。[#88401](https://github.com/ClickHouse/ClickHouse/pull/88401)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 使针对 KeeperMap 表的 `ALTER COLUMN ... COMMENT` 命令也会被复制,从而提交到 Replicated 数据库元数据并传播到所有副本。修复了 [#88077](https://github.com/ClickHouse/ClickHouse/issues/88077)。[#88408](https://github.com/ClickHouse/ClickHouse/pull/88408)([Eduard Karacharov](https://github.com/korowa))。 +* 修复了 Database Replicated 中与 Materialized Views 相关的一处伪循环依赖问题,该问题会导致无法向数据库添加新的副本。 [#88423](https://github.com/ClickHouse/ClickHouse/pull/88423) ([Nikolay Degterinsky](https://github.com/evillique)). +* 修复在将 `group_by_overflow_mode` 设置为 `any` 时对稀疏列聚合时的错误。 [#88440](https://github.com/ClickHouse/ClickHouse/pull/88440) ([Eduard Karacharov](https://github.com/korowa)). +* 修复在将 `query_plan_use_logical_join_step` 设为 0 且包含多个 FULL JOIN USING 子句时触发的 “column not found” 错误。关闭 [#88103](https://github.com/ClickHouse/ClickHouse/issues/88103)。[#88473](https://github.com/ClickHouse/ClickHouse/pull/88473)([Vladimir Cherkasov](https://github.com/vdimir))。 +* 节点数量 > 10 的大型集群在执行恢复时,很大概率会失败,并出现错误 `[941] 67c45db4-4df4-4879-87c5-25b8d1e0d414 <Trace>: RestoreCoordinationOnCluster The version of node /clickhouse/backups/restore-7c551a77-bd76-404c-bad0-3213618ac58e/stage/num_hosts changed (attempt #9), will try again`。`num_hosts` 节点会被许多主机同时写入覆写。该修复将用于控制重试次数的设置改为可动态调整。修复 [#87721](https://github.com/ClickHouse/ClickHouse/issues/87721)。[#88484](https://github.com/ClickHouse/ClickHouse/pull/88484) ([Mikhail f. Shiryaev](https://github.com/Felixoid))。 +* 本 PR 仅用于与 23.8 及更早版本保持兼容;该兼容性问题由此 PR 引入:[https://github.com/ClickHouse/ClickHouse/pull/54240](https://github.com/ClickHouse/ClickHouse/pull/54240)。在 `enable_analyzer=0` 时,此 SQL 将会失败(在 23.8 之前则可以正常执行)。[#88491](https://github.com/ClickHouse/ClickHouse/pull/88491)([JIaQi](https://github.com/JiaQiTang98))。 +* 修复在将较大数值转换为 DateTime 时,`accurateCast` 错误消息中的 UBSAN 整数溢出问题。[#88520](https://github.com/ClickHouse/ClickHouse/pull/88520)([xiaohuanlin](https://github.com/xiaohuanlin))。 +* 修复 Tuple 类型的 coalescing merge tree,从而关闭了 [#88469](https://github.com/ClickHouse/ClickHouse/issues/88469)。[#88526](https://github.com/ClickHouse/ClickHouse/pull/88526)([scanhex12](https://github.com/scanhex12))。 +* 不再允许对 `iceberg_format_version=1` 执行删除操作。该修改关闭了 [#88444](https://github.com/ClickHouse/ClickHouse/issues/88444)。[#88532](https://github.com/ClickHouse/ClickHouse/pull/88532)([scanhex12](https://github.com/scanhex12))。 +* 此补丁修复了 `plain-rewritable` 磁盘在任意深度文件夹中的移动操作问题。[#88586](https://github.com/ClickHouse/ClickHouse/pull/88586) ([Mikhail Artemenko](https://github.com/Michicosun))。 +* 修复 SQL SECURITY DEFINER 与 *cluster 函数配合使用时的问题。 [#88588](https://github.com/ClickHouse/ClickHouse/pull/88588) ([Julian Maicher](https://github.com/jmaicher))。 +* 修复由于对底层 const PREWHERE 列的并发修改导致的潜在崩溃问题。 [#88605](https://github.com/ClickHouse/ClickHouse/pull/88605) ([Azat Khuzhin](https://github.com/azat)). +* 修复了从文本索引读取的功能,并在启用 `use_skip_indexes_on_data_read` 和 `use_query_condition_cache` 设置时启用了查询条件缓存。[#88660](https://github.com/ClickHouse/ClickHouse/pull/88660) ([Anton Popov](https://github.com/CurtizJ)). +* 从 `Poco::Net::HTTPChunkedStreamBuf::readFromDevice` 抛出的 `Poco::TimeoutException` 异常会导致进程因 SIGABRT 而崩溃。[#88668](https://github.com/ClickHouse/ClickHouse/pull/88668) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* 已在 [#88910](https://github.com/ClickHouse/ClickHouse/issues/88910) 中回溯修复:在恢复后,`Replicated` 数据库的副本可能会长时间卡住,并不断打印类似 `Failed to marked query-0004647339 as finished (finished=No node, synced=No node)` 的日志消息,现已修复。[#88671](https://github.com/ClickHouse/ClickHouse/pull/88671) ([Alexander Tokmakov](https://github.com/tavplubix))。 +* 修复在重新加载配置后,ClickHouse 首次建立连接时向 `system.zookeeper_connection_log` 追加数据的问题。 [#88728](https://github.com/ClickHouse/ClickHouse/pull/88728) ([Antonio Andelic](https://github.com/antonio2368))。 +* 修复了一个错误:在使用 `date_time_overflow_behavior = 'saturate'` 处理时区时,将 DateTime64 转换为 Date,可能会对超出范围的值产生不正确的结果。 [#88737](https://github.com/ClickHouse/ClickHouse/pull/88737) ([Manuel](https://github.com/raimannma)). +* 第 N 次尝试修复在启用缓存的 S3 表引擎中出现的 "having zero bytes" 错误。 [#88740](https://github.com/ClickHouse/ClickHouse/pull/88740) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 修复了在 `SELECT` 中使用表函数 `loop` 时的访问校验问题。[#88802](https://github.com/ClickHouse/ClickHouse/pull/88802)([pufit](https://github.com/pufit))。 +* 当异步日志记录失败时捕获异常,防止程序中止。[#88814](https://github.com/ClickHouse/ClickHouse/pull/88814)([Raúl Marín](https://github.com/Algunenano))。 +* 已在 [#89060](https://github.com/ClickHouse/ClickHouse/issues/89060) 中回溯修复:修复在仅以单个参数调用 `top_k` 时未正确遵守阈值参数的问题。关闭 [#88757](https://github.com/ClickHouse/ClickHouse/issues/88757)。[#88867](https://github.com/ClickHouse/ClickHouse/pull/88867)([Manuel](https://github.com/raimannma))。 +* 已在 [#88944](https://github.com/ClickHouse/ClickHouse/issues/88944) 中回溯修复:修复函数 `reverseUTF8` 中的一个错误。在之前的版本中,它会错误地反转长度为 4 的 UTF-8 码点的字节顺序。此修复关闭了 [#88913](https://github.com/ClickHouse/ClickHouse/issues/88913)。[#88914](https://github.com/ClickHouse/ClickHouse/pull/88914)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 已在 [#88980](https://github.com/ClickHouse/ClickHouse/issues/88980) 中回溯修复:在使用 SQL SECURITY DEFINER 创建视图时,不再检查 `SET DEFINER <current_user>:definer` 的访问权限。[#88968](https://github.com/ClickHouse/ClickHouse/pull/88968) ([pufit](https://github.com/pufit))。 +* 已在 [#89058](https://github.com/ClickHouse/ClickHouse/issues/89058) 中向后移植:修复了 `L2DistanceTransposed(vec1, vec2, p)` 中的 `LOGICAL_ERROR`,该错误是因为针对部分 `QBit` 读取的优化在 `p` 为 `Nullable` 时错误地从返回类型中移除了 `Nullable`。[#88974](https://github.com/ClickHouse/ClickHouse/pull/88974)([Raufs Dunamalijevs](https://github.com/rienath))。 +* 已在 [#89167](https://github.com/ClickHouse/ClickHouse/issues/89167) 中回溯:修复未知目录类型时的崩溃。修复 [#88819](https://github.com/ClickHouse/ClickHouse/issues/88819)。[#88987](https://github.com/ClickHouse/ClickHouse/pull/88987)([scanhex12](https://github.com/scanhex12))。 +* 已在 [#89028](https://github.com/ClickHouse/ClickHouse/issues/89028) 中回溯修复:修复了在分析跳过索引时出现的性能下降问题。[#89004](https://github.com/ClickHouse/ClickHouse/pull/89004)([Anton Popov](https://github.com/CurtizJ))。 + +#### 构建/测试/打包改进 {#buildtestingpackaging-improvement} + +* 使用 `postgres` 库 18.0 版本。[#87647](https://github.com/ClickHouse/ClickHouse/pull/87647) ([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 在 FreeBSD 上启用 ICU 支持。[#87891](https://github.com/ClickHouse/ClickHouse/pull/87891) ([Raúl Marín](https://github.com/Algunenano))。 +* 当使用动态分发到 SSE 4.2 时,使用 SSE 4.2 而不是 SSE 4。[#88029](https://github.com/ClickHouse/ClickHouse/pull/88029) ([Raúl Marín](https://github.com/Algunenano))。 +* 如果 `Speculative Store Bypass Safe` 不可用,则不再要求设置 `NO_ARMV81_OR_HIGHER` 标志。[#88051](https://github.com/ClickHouse/ClickHouse/pull/88051) ([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 当 ClickHouse 以 `ENABLE_LIBFIU=OFF` 构建时,与 failpoint 相关的函数将变成空操作(no-op),不再影响性能。在这种情况下,`SYSTEM ENABLE/DISABLE FAILPOINT` 查询会返回 `SUPPORT_IS_DISABLED` 错误。[#88184](https://github.com/ClickHouse/ClickHouse/pull/88184) ([c-end](https://github.com/c-end))。 + +### ClickHouse 版本 25.9,2025-09-25 {#259} + +#### 向后不兼容的变更 {#backward-incompatible-change} + +* 禁用对 IPv4/IPv6 进行无意义的二元运算:对 IPv4/IPv6 与非整数类型执行加法/减法运算被禁用。此前允许与浮点类型进行运算,并且在某些其他类型(例如 DateTime)上会抛出逻辑错误。[#86336](https://github.com/ClickHouse/ClickHouse/pull/86336) ([Raúl Marín](https://github.com/Algunenano)). +* 弃用 `allow_dynamic_metadata_for_data_lakes` 设置。现在所有 Iceberg 表都会在执行每个查询之前尝试从存储中获取最新的表模式。[#86366](https://github.com/ClickHouse/ClickHouse/pull/86366) ([Daniil Ivanik](https://github.com/divanik)). +* 更改了对 `OUTER JOIN ... USING` 子句中合并列的解析方式,使其更加一致:此前,当在 OUTER JOIN 中同时选择 USING 列和限定列(`a, t1.a, t2.a`)时,USING 列会被错误地解析为 `t1.a`,从而对右表中没有左表匹配的行显示为 0/NULL。现在,来自 USING 子句的标识符始终解析为合并列,而限定标识符解析为未合并的列,而不再依赖查询中存在的其他标识符。例如:```sql SELECT a, t1.a, t2.a FROM (SELECT 1 as a WHERE 0) t1 FULL JOIN (SELECT 2 as a) t2 USING (a) -- 之前: a=0, t1.a=0, t2.a=2(不正确——'a' 被解析为 t1.a) -- 之后: a=2, t1.a=0, t2.a=2(正确——'a' 是合并列)。```[#80848](https://github.com/ClickHouse/ClickHouse/pull/80848) ([Vladimir Cherkasov](https://github.com/vdimir)). +* 将副本表的去重窗口上限增加到 10000。此更改完全兼容,但在存在大量表的情况下,我们可以预见这一变更可能导致较高的资源消耗。[#86820](https://github.com/ClickHouse/ClickHouse/pull/86820) ([Sema Checherinda](https://github.com/CheSema)). + +#### 新功能 {#new-feature} + +* 现在,您可以通过在 NATS 引擎中指定新的 `nats_stream` 和 `nats_consumer` 设置来使用 NATS JetStream 消费消息。[#84799](https://github.com/ClickHouse/ClickHouse/pull/84799) ([Dmitry Novikov](https://github.com/dmitry-sles-novikov))。 +* 在 `arrowFlight` 表函数中增加了对身份验证和 SSL 的支持。[#87120](https://github.com/ClickHouse/ClickHouse/pull/87120)([Vitaly Baranov](https://github.com/vitlibar))。 +* 为 `S3` 表引擎和 `s3` 表函数新增名为 `storage_class_name` 的参数,用于指定 AWS 支持的 S3 Intelligent-Tiering 存储类。该参数同时支持键值格式以及位置参数(已弃用)格式。[#87122](https://github.com/ClickHouse/ClickHouse/pull/87122) ([alesapin](https://github.com/alesapin))。 +* 为 Iceberg 表引擎添加 `ALTER UPDATE` 支持。 [#86059](https://github.com/ClickHouse/ClickHouse/pull/86059) ([scanhex12](https://github.com/scanhex12)). +* 添加系统表 `iceberg_metadata_log`,以便在执行 SELECT 语句时检索 Iceberg 元数据文件。[#86152](https://github.com/ClickHouse/ClickHouse/pull/86152) ([scanhex12](https://github.com/scanhex12))。 +* `Iceberg` 和 `DeltaLake` 表现在通过存储层级设置项 `disk` 支持自定义磁盘配置。[#86778](https://github.com/ClickHouse/ClickHouse/pull/86778)([scanhex12](https://github.com/scanhex12))。 +* 为数据湖磁盘增加对 Azure 的支持。[#87173](https://github.com/ClickHouse/ClickHouse/pull/87173) ([scanhex12](https://github.com/scanhex12)). +* 支持在 Azure Blob Storage 上使用 `Unity` catalog。 [#80013](https://github.com/ClickHouse/ClickHouse/pull/80013) ([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 +* 在 `Iceberg` 写入中支持更多格式(`ORC`、`Avro`),从而关闭了 [#86179](https://github.com/ClickHouse/ClickHouse/issues/86179)。[#87277](https://github.com/ClickHouse/ClickHouse/pull/87277)([scanhex12](https://github.com/scanhex12))。 +* 新增系统表 `database_replicas`,用于提供数据库副本相关信息。 [#83408](https://github.com/ClickHouse/ClickHouse/pull/83408) ([Konstantin Morozov](https://github.com/k-morozov)). +* 新增函数 `arrayExcept`,用于将一个数组从另一个数组中按集合语义做差运算。 [#82368](https://github.com/ClickHouse/ClickHouse/pull/82368) ([Joanna Hulboj](https://github.com/jh0x))。 +* 新增了一个 `system.aggregated_zookeeper_log` 表。该表包含 ZooKeeper 操作的统计信息(例如操作次数、平均延迟、错误数),按会话 ID、父路径及操作类型分组,并定期刷新到磁盘。[#85102](https://github.com/ClickHouse/ClickHouse/pull/85102) [#87208](https://github.com/ClickHouse/ClickHouse/pull/87208) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* 新增函数 `isValidASCII`。如果输入字符串或 FixedString 仅包含 ASCII 字节(0x00–0x7F),则返回 1,否则返回 0。关闭 [#85377](https://github.com/ClickHouse/ClickHouse/issues/85377)。... [#85786](https://github.com/ClickHouse/ClickHouse/pull/85786)([rajat mohan](https://github.com/rajatmohan22))。 +* 布尔类型设置项可以在不带参数的情况下指定,例如 `SET use_query_cache;`,这等价于将其设置为 true。[#85800](https://github.com/ClickHouse/ClickHouse/pull/85800) ([thraeka](https://github.com/thraeka))。 +* 新的配置选项:`logger.startupLevel` 和 `logger.shutdownLevel` 允许分别在 ClickHouse 启动和关闭期间覆盖日志级别。[#85967](https://github.com/ClickHouse/ClickHouse/pull/85967)([Lennard Eijsackers](https://github.com/Blokje5))。 +* 聚合函数 `timeSeriesChangesToGrid` 和 `timeSeriesResetsToGrid`。其行为与 `timeSeriesRateToGrid` 类似,接受起始时间戳、结束时间戳、步长和回溯窗口等参数,以及用于时间戳和值的两个参数,但要求每个窗口至少有 1 个样本而不是 2 个。计算 PromQL 中的 `changes`/`resets`,在参数定义的时间网格中,对每个时间戳统计在指定窗口内样本值发生变化或减少的次数。返回类型为 `Array(Nullable(Float64))`。 [#86010](https://github.com/ClickHouse/ClickHouse/pull/86010) ([Stephen Chi](https://github.com/stephchi0))。 +* 允许用户使用与临时表类似的语法(`CREATE TEMPORARY VIEW`)创建临时视图。[#86432](https://github.com/ClickHouse/ClickHouse/pull/86432)([Aly Kafoury](https://github.com/AlyHKafoury))。 +* 在 `system.warnings` 表中新增 CPU 和内存使用情况的警告。[#86838](https://github.com/ClickHouse/ClickHouse/pull/86838) ([Bharat Nallan](https://github.com/bharatnc))。 +* 在 `Protobuf` 输入中支持 `oneof` 标识。可以使用一个特殊列来指示 oneof 中某部分的存在。如果消息包含 [oneof](https://protobuf.dev/programming-guides/proto3/#oneof) 并且设置了 `input_format_protobuf_oneof_presence`,ClickHouse 会填充该列,用于指示 oneof 中具体是哪一个字段被设置。[#82885](https://github.com/ClickHouse/ClickHouse/pull/82885)([Ilya Golshtein](https://github.com/ilejn))。 +* 基于 jemalloc 的内部工具改进内存分配分析。现在可以通过配置 `jemalloc_enable_global_profiler` 启用全局 jemalloc 分析器。通过启用配置 `jemalloc_collect_global_profile_samples_in_trace_log`,采样得到的全局内存分配和释放信息可以以 `JemallocSample` 类型存储在 `system.trace_log` 中。现在可以通过设置 `jemalloc_enable_profiler`,为每个查询单独启用 jemalloc 分析。是否将采样数据存储到 `system.trace_log` 中可以通过设置 `jemalloc_collect_profile_samples_in_trace_log` 在查询粒度上进行控制。将 jemalloc 更新到较新版本。[#85438](https://github.com/ClickHouse/ClickHouse/pull/85438) ([Antonio Andelic](https://github.com/antonio2368))。 +* 新增一项用于在删除 Iceberg 表时删除文件的设置。修复了 [#86211](https://github.com/ClickHouse/ClickHouse/issues/86211)。[#86501](https://github.com/ClickHouse/ClickHouse/pull/86501)([scanhex12](https://github.com/scanhex12))。 + +#### 实验性功能 {#experimental-feature} + +* 倒排文本索引从零开始重构,现在可以扩展到无法完全放入 RAM 的数据集。[#86485](https://github.com/ClickHouse/ClickHouse/pull/86485) ([Anton Popov](https://github.com/CurtizJ))。 +* Join 重排序现在会使用统计信息。可通过设置 `allow_statistics_optimize = 1` 和 `query_plan_optimize_join_order_limit = 10` 启用该功能。[#86822](https://github.com/ClickHouse/ClickHouse/pull/86822) ([Han Fei](https://github.com/hanfei1991))。 +* 新增对 `alter table ... materialize statistics all` 的支持,可物化一个表的所有统计信息。[#87197](https://github.com/ClickHouse/ClickHouse/pull/87197) ([Han Fei](https://github.com/hanfei1991))。 + +#### 性能优化 {#performance-improvement} + +* 在读取数据时支持使用 skip 索引过滤数据分区片段,从而减少不必要的索引读取。由新的 `use_skip_indexes_on_data_read` 设置控制(默认禁用)。该改动解决了 [#75774](https://github.com/ClickHouse/ClickHouse/issues/75774),并包含与 [#81021](https://github.com/ClickHouse/ClickHouse/issues/81021) 共享的一些通用基础工作。[#81526](https://github.com/ClickHouse/ClickHouse/pull/81526)([Amos Bird](https://github.com/amosbird))。 +* 添加了 JOIN 顺序优化功能,可以自动重新排序 JOIN 以获得更好的性能(由参数 `query_plan_optimize_join_order_limit` 控制)。请注意,当前 JOIN 顺序优化对统计信息的支持仍然有限,主要依赖于存储引擎中的行数估算——未来版本中将会加入更完善的统计信息收集和基数估算功能。**如果在升级后遇到 JOIN 查询问题**,可以通过设置 `SET query_plan_use_new_logical_join_step = 0` 临时禁用新的实现,并反馈问题以便进行排查。**关于 USING 子句中标识符解析的说明**:对 `OUTER JOIN ... USING` 子句中合并列(coalesced column)的解析方式进行了修改,使其更加一致:之前,在一个 OUTER JOIN 中同时选择 USING 列和带限定前缀的列(`a, t1.a, t2.a`)时,USING 列会被错误地解析为 `t1.a`,从而对右表中没有匹配左表的行显示为 0/NULL。现在,来自 USING 子句的标识符始终解析为合并列,而带限定前缀的标识符始终解析为未合并的列,而不再取决于查询中还选择了哪些其他标识符。例如: +* 用于数据湖的分布式 `INSERT SELECT`。[#86783](https://github.com/ClickHouse/ClickHouse/pull/86783) ([scanhex12](https://github.com/scanhex12))。 +* 改进对 `func(primary_column) = 'xx'` 和 `column in (xxx)` 等条件的 PREWHERE 优化。[#85529](https://github.com/ClickHouse/ClickHouse/pull/85529)([李扬](https://github.com/taiyang-li))。 +* 实现了对 JOIN 的重写:1. 当匹配或未匹配行的过滤条件始终为 false 时,将 `LEFT ANY JOIN` 和 `RIGHT ANY JOIN` 转换为 `SEMI`/`ANTI` JOIN。该优化由新的设置 `query_plan_convert_any_join_to_semi_or_anti_join` 控制。2. 当来自一侧的未匹配行的过滤条件始终为 false 时,将 `FULL ALL JOIN` 转换为 `LEFT ALL` 或 `RIGHT ALL` JOIN。 [#86028](https://github.com/ClickHouse/ClickHouse/pull/86028) ([Dmitry Novik](https://github.com/novikd))。 +* 在执行轻量级删除后,垂直合并的性能得到提升。 [#86169](https://github.com/ClickHouse/ClickHouse/pull/86169) ([Anton Popov](https://github.com/CurtizJ)). +* 在 `LEFT/RIGHT` join 包含大量未匹配行的情况下,对 `HashJoin` 的性能进行了小幅优化。[#86312](https://github.com/ClickHouse/ClickHouse/pull/86312) ([Nikita Taranov](https://github.com/nickitat))。 +* 基数排序:帮助编译器使用 SIMD,以便更好地进行预取。使用动态派发,仅在 Intel CPU 上启用软件预取。延续了 @taiyang-li 在 [https://github.com/ClickHouse/ClickHouse/pull/77029](https://github.com/ClickHouse/ClickHouse/pull/77029) 中的工作。[#86378](https://github.com/ClickHouse/ClickHouse/pull/86378)([Raúl Marín](https://github.com/Algunenano))。 +* 通过将 `MarkRanges` 从基于 `deque` 优化为基于 `devector` 的实现,提升了在包含大量分区片段的表上执行的短查询的性能。 [#86933](https://github.com/ClickHouse/ClickHouse/pull/86933) ([Azat Khuzhin](https://github.com/azat)). +* 提升了在 join 模式下应用补丁分区片段时的性能。[#87094](https://github.com/ClickHouse/ClickHouse/pull/87094) ([Anton Popov](https://github.com/CurtizJ))。 +* 添加了名为 `query_condition_cache_selectivity_threshold` 的设置(默认值:1.0),用于将选择性较低的谓词扫描结果排除在插入查询条件缓存之外。这样可以在以较低缓存命中率为代价的情况下,降低查询条件缓存的内存消耗。[#86076](https://github.com/ClickHouse/ClickHouse/pull/86076) ([zhongyuankai](https://github.com/zhongyuankai)). +* 降低 Iceberg 写入的内存占用。[#86544](https://github.com/ClickHouse/ClickHouse/pull/86544) ([scanhex12](https://github.com/scanhex12)). + +#### 改进 {#improvement} + +* 支持在一次插入操作中向 Iceberg 写入多个数据文件。新增 `iceberg_insert_max_rows_in_data_file` 和 `iceberg_insert_max_bytes_in_data_file` 两个设置,用于控制相应的限制。[#86275](https://github.com/ClickHouse/ClickHouse/pull/86275) ([scanhex12](https://github.com/scanhex12)). +* 为 Delta Lake 中插入的数据文件添加行数/字节数限制。由设置项 `delta_lake_insert_max_rows_in_data_file` 和 `delta_lake_insert_max_bytes_in_data_file` 控制。[#86357](https://github.com/ClickHouse/ClickHouse/pull/86357) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 在 Iceberg 写入操作中支持更多类型的分区。已关闭 [#86206](https://github.com/ClickHouse/ClickHouse/issues/86206)。[#86298](https://github.com/ClickHouse/ClickHouse/pull/86298)([scanhex12](https://github.com/scanhex12))。 +* 使 S3 重试策略可配置,并支持在修改配置 XML 文件后热加载 S3 磁盘的设置。 [#82642](https://github.com/ClickHouse/ClickHouse/pull/82642) ([RinChanNOW](https://github.com/RinChanNOWWW)). +* 改进了 S3(Azure)Queue 表引擎,使其在 ZooKeeper 连接丢失时也能继续运行,并避免潜在的重复数据。需要启用 S3Queue 设置 `use_persistent_processing_nodes`(可通过 `ALTER TABLE MODIFY SETTING` 更改)。[#85995](https://github.com/ClickHouse/ClickHouse/pull/85995)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 在创建 materialized view 时,可以在 `TO` 之后使用查询参数,例如:`CREATE MATERIALIZED VIEW mv TO {to_table:Identifier} AS SELECT * FROM src_table`。[#84899](https://github.com/ClickHouse/ClickHouse/pull/84899)([Diskein](https://github.com/Diskein))。 +* 当为 `Kafka2` 表引擎指定错误设置时,为用户提供更清晰的指导信息。 [#83701](https://github.com/ClickHouse/ClickHouse/pull/83701) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* `Time` 类型已经不再支持指定时区(这本来就没有意义)。 [#84689](https://github.com/ClickHouse/ClickHouse/pull/84689) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* 在 `best_effort` 模式下,简化了解析 Time/Time64 的相关逻辑,并避免了一些错误。[#84730](https://github.com/ClickHouse/ClickHouse/pull/84730) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 新增 `deltaLakeAzureCluster` 函数(类似于集群模式下的 `deltaLakeAzure`)以及 `deltaLakeS3Cluster` 函数(为 `deltaLakeCluster` 的别名)。解决了 [#85358](https://github.com/ClickHouse/ClickHouse/issues/85358)。[#85547](https://github.com/ClickHouse/ClickHouse/pull/85547)([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 +* 以与备份相同的方式,将 `azure_max_single_part_copy_size` 设置应用于普通拷贝操作。[#85767](https://github.com/ClickHouse/ClickHouse/pull/85767) ([Ilya Golshtein](https://github.com/ilejn))。 +* 在 S3 对象存储中,当出现可重试错误时放缓 S3 客户端线程的速度。此更改将之前的设置 `backup_slow_all_threads_after_retryable_s3_error` 扩展到 S3 磁盘,并将其重命名为更通用的 `s3_slow_all_threads_after_retryable_error`。 [#85918](https://github.com/ClickHouse/ClickHouse/pull/85918) ([Julia Kartseva](https://github.com/jkartseva))。 +* 将设置项 `allow_experimental_variant/dynamic/json` 和 `enable_variant/dynamic/json` 标记为弃用。现在这三种类型都会被无条件启用。[#85934](https://github.com/ClickHouse/ClickHouse/pull/85934) ([Pavel Kruglov](https://github.com/Avogar)). +* 支持在 `http_handlers` 中基于完整 URL 字符串(通过 `full_url` 指令,包含 schema 和 host:port)进行过滤。 [#86155](https://github.com/ClickHouse/ClickHouse/pull/86155) ([Azat Khuzhin](https://github.com/azat)). +* 新增一个新的配置项 `allow_experimental_delta_lake_writes`。 [#86180](https://github.com/ClickHouse/ClickHouse/pull/86180) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 修复 init.d 脚本中对 systemd 的检测(修正对 “Install packages” 检查的影响)。 [#86187](https://github.com/ClickHouse/ClickHouse/pull/86187) ([Azat Khuzhin](https://github.com/azat)). +* 新增一个名为 `startup_scripts_failure_reason` 的维度指标。该指标用于区分导致启动脚本失败的不同错误类型。尤其是为了告警,我们需要区分瞬时错误(例如 `MEMORY_LIMIT_EXCEEDED` 或 `KEEPER_EXCEPTION`)和非瞬时错误。[#86202](https://github.com/ClickHouse/ClickHouse/pull/86202) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* 允许在 Iceberg 表中为分区省略 `identity` 函数。[#86314](https://github.com/ClickHouse/ClickHouse/pull/86314) ([scanhex12](https://github.com/scanhex12))。 +* 新增支持仅为特定通道启用 JSON 日志记录;为此,将 `logger.formatting.channel` 设置为 `syslog`/`console`/`errorlog`/`log` 之一即可。[#86331](https://github.com/ClickHouse/ClickHouse/pull/86331) ([Azat Khuzhin](https://github.com/azat))。 +* 允许在 `WHERE` 中使用原生数值。它们已经可以作为逻辑函数的参数使用。这有助于简化 filter push-down 和 move-to-prewhere 优化。[#86390](https://github.com/ClickHouse/ClickHouse/pull/86390) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 修复了在针对元数据损坏的 Catalog 执行 `SYSTEM DROP REPLICA` 时出现的错误。 [#86391](https://github.com/ClickHouse/ClickHouse/pull/86391) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* 在 Azure 中为磁盘访问检查(`skip_access_check = 0`)增加额外的重试次数,因为 Azure 在开通访问权限时可能需要相当长的时间。[#86419](https://github.com/ClickHouse/ClickHouse/pull/86419)([Alexander Tokmakov](https://github.com/tavplubix))。 +* 将 `timeSeries*()` 函数中的过期窗口改为左开右闭区间。[#86588](https://github.com/ClickHouse/ClickHouse/pull/86588) ([Vitaly Baranov](https://github.com/vitlibar))。 +* 添加 `FailedInternal*Query` ProfileEvents。 [#86627](https://github.com/ClickHouse/ClickHouse/pull/86627) ([Shane Andrade](https://github.com/mauidude))。 +* 修复了通过配置文件添加名称中包含句点 (.) 的用户时的处理逻辑。 [#86633](https://github.com/ClickHouse/ClickHouse/pull/86633) ([Mikhail Koviazin](https://github.com/mkmkme))。 +* 添加查询内存使用的异步指标(`QueriesMemoryUsage` 和 `QueriesPeakMemoryUsage`)。 [#86669](https://github.com/ClickHouse/ClickHouse/pull/86669) ([Azat Khuzhin](https://github.com/azat)). +* 你可以使用 `clickhouse-benchmark --precise` 参数,更精确地报告 QPS 和其他按时间区间统计的指标。当查询持续时间与报告间隔 `--delay D` 相当时,它有助于获得稳定一致的 QPS 结果。[#86684](https://github.com/ClickHouse/ClickHouse/pull/86684) ([Sergei Trifonov](https://github.com/serxa))。 +* 使 Linux 线程的 nice 值可配置,以便为某些线程(合并/变更、查询、materialized view、ZooKeeper 客户端)分配更高或更低的优先级。[#86703](https://github.com/ClickHouse/ClickHouse/pull/86703)([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* 修复具有误导性的“specified upload does not exist”错误,该错误会在分片上传过程中由于竞态条件导致原始异常丢失时出现。 [#86725](https://github.com/ClickHouse/ClickHouse/pull/86725) ([Julia Kartseva](https://github.com/jkartseva))。 +* 限制 `EXPLAIN` 查询中的查询计划描述长度,不再为非 `EXPLAIN` 查询计算该描述。新增设置 `query_plan_max_step_description_length`。[#86741](https://github.com/ClickHouse/ClickHouse/pull/86741) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 新增支持调节待处理信号的能力,以尝试避免出现 CANNOT_CREATE_TIMER 错误(用于 query profiler,`query_profiler_real_time_period_ns`/`query_profiler_cpu_time_period_ns`)。同时从 `/proc/self/status` 收集 `SigQ` 以便自检(如果 `ProcessSignalQueueSize` 接近 `ProcessSignalQueueLimit`,则很可能会出现 `CANNOT_CREATE_TIMER` 错误)。 [#86760](https://github.com/ClickHouse/ClickHouse/pull/86760) ([Azat Khuzhin](https://github.com/azat)). +* 提升 Keeper 中 `RemoveRecursive` 请求的性能。 [#86789](https://github.com/ClickHouse/ClickHouse/pull/86789) ([Antonio Andelic](https://github.com/antonio2368)). +* 在输出 JSON 类型数据时,移除 `PrettyJSONEachRow` 中多余的空白字符。[#86819](https://github.com/ClickHouse/ClickHouse/pull/86819) ([Pavel Kruglov](https://github.com/Avogar))。 +* 现在会在删除普通可重写磁盘上的目录时记录 `prefix.path` 的 blob 大小。[#86908](https://github.com/ClickHouse/ClickHouse/pull/86908) ([alesapin](https://github.com/alesapin))。 +* 支持对远程 ClickHouse 实例(包括 ClickHouse Cloud)进行性能测试。使用示例:`tests/performance/scripts/perf.py tests/performance/math.xml --runs 10 --user --password --host --port --secure`。[#86995](https://github.com/ClickHouse/ClickHouse/pull/86995)([Raufs Dunamalijevs](https://github.com/rienath))。 +* 在已知会大量分配(>16MiB)内存的某些位置(如排序、异步插入、file log)中遵守内存限制。[#87035](https://github.com/ClickHouse/ClickHouse/pull/87035) ([Azat Khuzhin](https://github.com/azat))。 +* 如果将 `network_compression_method` 设置为不受支持的通用编解码器,则抛出异常。 [#87097](https://github.com/ClickHouse/ClickHouse/pull/87097) ([Robert Schulze](https://github.com/rschu1ze)). +* 系统表 `system.query_cache` 现在会返回*所有*查询结果缓存条目,而之前只返回共享条目,或同一用户和角色的非共享条目。这是合理的,因为非共享条目本就不应该泄露*查询结果*,而 `system.query_cache` 返回的是*查询字符串*。这使得该系统表的行为更接近 `system.query_log`。 [#87104](https://github.com/ClickHouse/ClickHouse/pull/87104) ([Robert Schulze](https://github.com/rschu1ze)). +* 为 `parseDateTime` 函数启用短路求值机制。 [#87184](https://github.com/ClickHouse/ClickHouse/pull/87184) ([Pavel Kruglov](https://github.com/Avogar)). +* 在 `system.parts_columns` 中新增一个名为 `statistics` 的列。 [#87259](https://github.com/ClickHouse/ClickHouse/pull/87259) ([Han Fei](https://github.com/hanfei1991))。 + +#### Bug 修复(官方稳定版中对用户可见的错误行为) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* 对于副本数据库和内部复制表,`ALTER` 查询的结果现在只在发起节点上进行验证。此更改修复了某些情况下已经提交的 `ALTER` 查询会在其他节点上卡住的问题。 [#83849](https://github.com/ClickHouse/ClickHouse/pull/83849) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 +* 限制 `BackgroundSchedulePool` 中每种类型任务的数量,防止出现所有槽位都被某一类型任务占满,导致其他任务饥饿的情况,同时避免任务之间相互等待而引发的死锁。此行为由服务器 SETTING `background_schedule_pool_max_parallel_tasks_per_type_ratio` 控制。[#84008](https://github.com/ClickHouse/ClickHouse/pull/84008) ([Alexander Tokmakov](https://github.com/tavplubix))。 +* 在恢复数据库副本时要正确关闭表。不正确的关闭方式会在数据库副本恢复期间导致某些表引擎出现 LOGICAL_ERROR。 [#84744](https://github.com/ClickHouse/ClickHouse/pull/84744) ([Antonio Andelic](https://github.com/antonio2368)). +* 在为数据库名称生成拼写更正提示时检查访问权限。 [#85371](https://github.com/ClickHouse/ClickHouse/pull/85371) ([Dmitry Novik](https://github.com/novikd)). +* 1. 为 hive 列使用 LowCardinality 2. 在虚拟列之前填充 hive 列(这是 [https://github.com/ClickHouse/ClickHouse/pull/81040](https://github.com/ClickHouse/ClickHouse/pull/81040) 所需)3. 在 hive 的空格式上触发 LOGICAL_ERROR [#85528](https://github.com/ClickHouse/ClickHouse/issues/85528) 4. 修复对 “hive 分区列是仅有列” 情况的检查 5. 断言 schema 中指定了所有 hive 列 6. 部分修复使用 hive 的 parallel_replicas_cluster 7. 在 hive 工具的 extractKeyValuePairs 中使用有序容器(这是 [https://github.com/ClickHouse/ClickHouse/pull/81040](https://github.com/ClickHouse/ClickHouse/pull/81040) 所需)。[#85538](https://github.com/ClickHouse/ClickHouse/pull/85538)([Arthur Passos](https://github.com/arthurpassos))。 +* 在使用数组映射时,禁止对 `IN` 函数的第一个参数进行不必要的优化,以避免偶发错误。 [#85546](https://github.com/ClickHouse/ClickHouse/pull/85546) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* 在写入 Parquet 文件时,未根据 schema 调整 Iceberg 源 ID 与 Parquet 名称之间的映射。此 PR 会针对每个 Iceberg 数据文件处理其对应的 schema,而不是使用当前的 schema。[#85829](https://github.com/ClickHouse/ClickHouse/pull/85829) ([Daniil Ivanik](https://github.com/divanik))。 +* 修复了将读取文件大小与打开文件分离的处理方式。与 [https://github.com/ClickHouse/ClickHouse/pull/33372](https://github.com/ClickHouse/ClickHouse/pull/33372) 相关,该变更最初是为了解决 `5.10` 版本发布之前的 Linux 内核中的一个 bug 而引入的。[#85837](https://github.com/ClickHouse/ClickHouse/pull/85837)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 在内核级别禁用 IPv6 的系统上(例如在 RHEL 中设置 ipv6.disable=1),ClickHouse Keeper 不再出现无法启动的问题。现在,当初始 IPv6 监听失败时,它会尝试退回到 IPv4 监听。[#85901](https://github.com/ClickHouse/ClickHouse/pull/85901) ([jskong1124](https://github.com/jskong1124))。 +* 此 PR 解决了 [#77990](https://github.com/ClickHouse/ClickHouse/issues/77990)。在 globalJoin 中为并行副本添加 TableFunctionRemote 支持。[#85929](https://github.com/ClickHouse/ClickHouse/pull/85929)([zoomxi](https://github.com/zoomxi))。 +* 修复 `orcschemareader::initializeifneeded()` 中的空指针问题。此 PR 解决了以下 issue:[#85292](https://github.com/ClickHouse/ClickHouse/issues/85292) ### 面向用户可见更改的文档条目。[#85951](https://github.com/ClickHouse/ClickHouse/pull/85951) ([yanglongwei](https://github.com/ylw510))。 +* 添加检查,仅当 `FROM` 子句中的相关子查询使用外部查询的列时才允许它们。修复 [#85469](https://github.com/ClickHouse/ClickHouse/issues/85469)。修复 [#85402](https://github.com/ClickHouse/ClickHouse/issues/85402)。[#85966](https://github.com/ClickHouse/ClickHouse/pull/85966)([Dmitry Novik](https://github.com/novikd))。 +* 修复了在执行 `ALTER UPDATE` 时,如果某列的子列被其他列的物化表达式引用,该列更新不正确的问题。此前,表达式中包含子列的物化列无法被正确更新。[#85985](https://github.com/ClickHouse/ClickHouse/pull/85985)([Pavel Kruglov](https://github.com/Avogar))。 +* 禁止修改其子列被用作主键或分区表达式的列。[#86005](https://github.com/ClickHouse/ClickHouse/pull/86005) ([Pavel Kruglov](https://github.com/Avogar))。 +* 修复在 DeltaLake 存储中使用非默认列映射模式读取子列的问题。[#86064](https://github.com/ClickHouse/ClickHouse/pull/86064) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 修复了在 JSON 中针对带有 Enum 提示的路径错误使用默认值的问题。 [#86065](https://github.com/ClickHouse/ClickHouse/pull/86065) ([Pavel Kruglov](https://github.com/Avogar)). +* 为 DataLake Hive catalog URL 解析添加输入净化处理。解决 [#86018](https://github.com/ClickHouse/ClickHouse/issues/86018)。[#86092](https://github.com/ClickHouse/ClickHouse/pull/86092)([rajat mohan](https://github.com/rajatmohan22))。 +* 修复文件系统缓存动态调整大小时的逻辑错误。关闭 [#86122](https://github.com/ClickHouse/ClickHouse/issues/86122)。关闭 [https://github.com/ClickHouse/clickhouse-core-incidents/issues/473](https://github.com/ClickHouse/clickhouse-core-incidents/issues/473)。[#86130](https://github.com/ClickHouse/ClickHouse/pull/86130)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 在 DatabaseReplicatedSettings 中将 `logs_to_keep` 设置为 `NonZeroUInt64` 类型。[#86142](https://github.com/ClickHouse/ClickHouse/pull/86142) ([Tuan Pham Anh](https://github.com/tuanpach))。 +* 如果表(例如 `ReplacingMergeTree`)在创建时将 setting `index_granularity_bytes` 设为 0,则带有 skip 索引的 `FINAL` 查询会抛出异常。该异常现已修复。 [#86147](https://github.com/ClickHouse/ClickHouse/pull/86147) ([Shankar Iyer](https://github.com/shankar-iyer)). +* 移除了未定义行为(UB),并修复了 Iceberg 分区表达式的解析问题。[#86166](https://github.com/ClickHouse/ClickHouse/pull/86166)([Daniil Ivanik](https://github.com/divanik))。 +* 修复在单个 INSERT 语句中同时包含 const 和非 const 块时出现的崩溃问题。 [#86230](https://github.com/ClickHouse/ClickHouse/pull/86230) ([Azat Khuzhin](https://github.com/azat)). +* 在通过 SQL 创建磁盘时,默认处理来自 `/etc/metrika.xml` 的 include 指令。[#86232](https://github.com/ClickHouse/ClickHouse/pull/86232) ([alekar](https://github.com/alekar)). +* 修复 accurateCastOrNull/accurateCastOrDefault 在从 String 转换为 JSON 时的行为。[#86240](https://github.com/ClickHouse/ClickHouse/pull/86240)([Pavel Kruglov](https://github.com/Avogar))。 +* 在 Iceberg 引擎中支持不含 '/' 的目录。[#86249](https://github.com/ClickHouse/ClickHouse/pull/86249) ([scanhex12](https://github.com/scanhex12))。 +* 修复在 `replaceRegex` 使用 `FixedString` 类型的 haystack 且 needle 为空时发生的崩溃问题。[#86270](https://github.com/ClickHouse/ClickHouse/pull/86270) ([Raúl Marín](https://github.com/Algunenano))。 +* 修复在执行 ALTER UPDATE Nullable(JSON) 时发生的崩溃。[#86281](https://github.com/ClickHouse/ClickHouse/pull/86281) ([Pavel Kruglov](https://github.com/Avogar)). +* 修复 `system.tables` 中缺失的列定义信息。 [#86295](https://github.com/ClickHouse/ClickHouse/pull/86295) ([Raúl Marín](https://github.com/Algunenano))。 +* 修复从 LowCardinality(Nullable(T)) 到 Dynamic 的类型转换。[#86365](https://github.com/ClickHouse/ClickHouse/pull/86365) ([Pavel Kruglov](https://github.com/Avogar))。 +* 修复了在向 DeltaLake 写入数据时出现的逻辑错误。关闭 [#86175](https://github.com/ClickHouse/ClickHouse/issues/86175)。[#86367](https://github.com/ClickHouse/ClickHouse/pull/86367)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 修复在针对 plain_rewritable 磁盘从 Azure Blob Storage 读取空 blob 时出现的 `416 The range specified is invalid for the current size of the resource. The range specified is invalid for the current size of the resource` 错误。[#86400](https://github.com/ClickHouse/ClickHouse/pull/86400)([Julia Kartseva](https://github.com/jkartseva))。 +* 修复在 Nullable(JSON) 上使用 GROUP BY 时的问题。 [#86410](https://github.com/ClickHouse/ClickHouse/pull/86410) ([Pavel Kruglov](https://github.com/Avogar))。 +* 修复了一个 Materialized Views 的问题:当某个 MV 被创建、删除后,再以相同名称重新创建时,可能无法正常工作。 [#86413](https://github.com/ClickHouse/ClickHouse/pull/86413) ([Alexander Tokmakov](https://github.com/tavplubix))。 +* 在从 *cluster 函数读取时,如果所有副本都不可用,则使查询失败。 [#86414](https://github.com/ClickHouse/ClickHouse/pull/86414) ([Julian Maicher](https://github.com/jmaicher)). +* 修复由于 `Buffer` 表导致的 `MergesMutationsMemoryTracking` 内存泄漏问题,并修复 `query_views_log` 在从 `Kafka`(及其他)进行流式读取时的问题。 [#86422](https://github.com/ClickHouse/ClickHouse/pull/86422) ([Azat Khuzhin](https://github.com/azat)). +* 修复在删除别名存储所引用的表后执行 show tables 时的行为。 [#86433](https://github.com/ClickHouse/ClickHouse/pull/86433) ([RinChanNOW](https://github.com/RinChanNOWWW)). +* 修复在启用 `send_chunk_header` 时,通过 HTTP 协议调用 UDF 会缺失 chunk header 的问题。[#86469](https://github.com/ClickHouse/ClickHouse/pull/86469) ([Vladimir Cherkasov](https://github.com/vdimir)). +* 修复在启用 jemalloc profile flush 时可能出现的死锁问题。[#86473](https://github.com/ClickHouse/ClickHouse/pull/86473)([Azat Khuzhin](https://github.com/azat))。 +* 修复了 DeltaLake 表引擎中读取子列的问题。解决了 [#86204](https://github.com/ClickHouse/ClickHouse/issues/86204)。[#86477](https://github.com/ClickHouse/ClickHouse/pull/86477)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 正确处理环回主机 ID,以在处理 DDL 任务时避免发生冲突。[#86479](https://github.com/ClickHouse/ClickHouse/pull/86479) ([Tuan Pham Anh](https://github.com/tuanpach))。 +* 修复了对 Postgres 数据库引擎中包含 numeric/decimal 列的表执行 DETACH/ATTACH 时的问题。 [#86480](https://github.com/ClickHouse/ClickHouse/pull/86480) ([Julian Maicher](https://github.com/jmaicher)). +* 修复在 getSubcolumnType 中使用未初始化内存的问题。[#86498](https://github.com/ClickHouse/ClickHouse/pull/86498)([Raúl Marín](https://github.com/Algunenano))。 +* 当以空 needles 作为参数调用 `searchAny` 和 `searchAll` 函数时,现在会返回 `true`(即“匹配所有”)。之前,它们会返回 `false`。(issue [#86300](https://github.com/ClickHouse/ClickHouse/issues/86300))。[#86500](https://github.com/ClickHouse/ClickHouse/pull/86500)([Elmi Ahmadov](https://github.com/ahmadov))。 +* 修复函数 `timeSeriesResampleToGridWithStaleness()` 在第一个桶没有值时的行为。[#86507](https://github.com/ClickHouse/ClickHouse/pull/86507)([Vitaly Baranov](https://github.com/vitlibar))。 +* 修复由于将 `merge_tree_min_read_task_size` 设置为 0 而导致的崩溃。 [#86527](https://github.com/ClickHouse/ClickHouse/pull/86527) ([yanglongwei](https://github.com/ylw510)). +* 在读取时,现在会为每个数据文件从 Iceberg 元数据中获取格式(此前是从表参数中获取)。[#86529](https://github.com/ClickHouse/ClickHouse/pull/86529) ([Daniil Ivanik](https://github.com/divanik))。 +* 在关闭时刷新日志的过程中忽略异常,使关闭过程更安全(避免 SIGSEGV)。[#86546](https://github.com/ClickHouse/ClickHouse/pull/86546) ([Azat Khuzhin](https://github.com/azat)). +* 修复了 Backup 数据库引擎在处理包含零大小 part 文件的查询时抛出异常的问题。 [#86563](https://github.com/ClickHouse/ClickHouse/pull/86563) ([Max Justus Spransy](https://github.com/maxjustus)). +* 修复在启用 `send_chunk_header` 且通过 HTTP 协议调用 UDF 时丢失分块头的问题。 [#86606](https://github.com/ClickHouse/ClickHouse/pull/86606) ([Vladimir Cherkasov](https://github.com/vdimir)). +* 修复了 S3Queue 中由于 Keeper 会话过期导致的逻辑错误 "Expected current processor {} to be equal to {}"。[#86615](https://github.com/ClickHouse/ClickHouse/pull/86615)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 修复了插入和剪枝中的可空性相关错误。这关闭了 [#86407](https://github.com/ClickHouse/ClickHouse/issues/86407)。[#86630](https://github.com/ClickHouse/ClickHouse/pull/86630)([scanhex12](https://github.com/scanhex12))。 +* 在 Iceberg 元数据缓存被禁用时,不要禁用文件系统缓存。[#86635](https://github.com/ClickHouse/ClickHouse/pull/86635) ([Daniil Ivanik](https://github.com/divanik))。 +* 修复了 Parquet 读取器 v3 中的 'Deadlock in Parquet::ReadManager (single-threaded)' 错误。[#86644](https://github.com/ClickHouse/ClickHouse/pull/86644) ([Michael Kolupaev](https://github.com/al13n321)). +* 修复 ArrowFlight 中 `listen_host` 的 IPv6 支持。[#86664](https://github.com/ClickHouse/ClickHouse/pull/86664)([Vitaly Baranov](https://github.com/vitlibar))。 +* 修复 `ArrowFlight` 处理器中的关闭过程。本 PR 修复了 [#86596](https://github.com/ClickHouse/ClickHouse/issues/86596)。[#86665](https://github.com/ClickHouse/ClickHouse/pull/86665)([Vitaly Baranov](https://github.com/vitlibar))。 +* 修复在设置 `describe_compact_output=1` 时的分布式查询问题。[#86676](https://github.com/ClickHouse/ClickHouse/pull/86676)([Azat Khuzhin](https://github.com/azat))。 +* 修复窗口定义解析和查询参数应用。[#86720](https://github.com/ClickHouse/ClickHouse/pull/86720) ([Azat Khuzhin](https://github.com/azat)). +* 修复在使用 `PARTITION BY` 创建表但未使用分区通配符时,错误抛出异常 `Partition strategy wildcard can not be used without a '_partition_id' wildcard.` 的问题;在 25.8 之前的版本中这种用法是可以工作的。关闭了 [https://github.com/ClickHouse/clickhouse-private/issues/37567](https://github.com/ClickHouse/clickhouse-private/issues/37567)。[#86748](https://github.com/ClickHouse/ClickHouse/pull/86748)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 修复当并行查询尝试获取同一把锁时触发的 LogicalError。 [#86751](https://github.com/ClickHouse/ClickHouse/pull/86751) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* 修复了在 RowBinary 输入格式中向共享 JSON 数据写入 NULL 的问题,并在 ColumnObject 中增加了一些额外的校验。[#86812](https://github.com/ClickHouse/ClickHouse/pull/86812) ([Pavel Kruglov](https://github.com/Avogar))。 +* 修复在使用 LIMIT 子句时空 Tuple 的排列问题。 [#86828](https://github.com/ClickHouse/ClickHouse/pull/86828) ([Pavel Kruglov](https://github.com/Avogar)). +* 不要为持久化处理节点使用单独的 keeper 节点。修复了 [https://github.com/ClickHouse/ClickHouse/pull/85995](https://github.com/ClickHouse/ClickHouse/pull/85995)。关闭了 [#86406](https://github.com/ClickHouse/ClickHouse/issues/86406)。[#86841](https://github.com/ClickHouse/ClickHouse/pull/86841)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 修复 TimeSeries 引擎表在 Replicated Database 中导致无法创建新副本的问题。[#86845](https://github.com/ClickHouse/ClickHouse/pull/86845)([Nikolay Degterinsky](https://github.com/evillique))。 +* 修复在任务缺少某些 Keeper 节点时对 `system.distributed_ddl_queue` 的查询问题。 [#86848](https://github.com/ClickHouse/ClickHouse/pull/86848) ([Antonio Andelic](https://github.com/antonio2368)). +* 修复在解压后数据块末尾进行定位的问题。 [#86906](https://github.com/ClickHouse/ClickHouse/pull/86906) ([Pavel Kruglov](https://github.com/Avogar)). +* 处理 Iceberg 迭代器异步执行期间抛出的异常。 [#86932](https://github.com/ClickHouse/ClickHouse/pull/86932) ([Daniil Ivanik](https://github.com/divanik)). +* 修复保存大型预处理 XML 配置时的问题。 [#86934](https://github.com/ClickHouse/ClickHouse/pull/86934) ([c-end](https://github.com/c-end)). +* 修复 `system.iceberg_metadata_log` 表中日期字段写入的问题。 [#86961](https://github.com/ClickHouse/ClickHouse/pull/86961) ([Daniil Ivanik](https://github.com/divanik)). +* 修复了在使用 `WHERE` 时 `TTL` 无限重复计算的问题。[#86965](https://github.com/ClickHouse/ClickHouse/pull/86965) ([Anton Popov](https://github.com/CurtizJ)). +* 修复了在使用 `ROLLUP` 和 `CUBE` 修饰符时,`uniqExact` 函数可能产生错误结果的问题。[#87014](https://github.com/ClickHouse/ClickHouse/pull/87014) ([Nikita Taranov](https://github.com/nickitat)). +* 修复在 `parallel_replicas_for_cluster_functions` 设置为 1 时,使用 `url()` 表函数解析表结构的问题。 [#87029](https://github.com/ClickHouse/ClickHouse/pull/87029) ([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 修正在将 `PREWHERE` 的输出拆分为多个步骤后对其进行类型转换的逻辑。 [#87040](https://github.com/ClickHouse/ClickHouse/pull/87040) ([Antonio Andelic](https://github.com/antonio2368)). +* 修复了在使用 `ON CLUSTER` 子句时的轻量级更新问题。[#87043](https://github.com/ClickHouse/ClickHouse/pull/87043) ([Anton Popov](https://github.com/CurtizJ)). +* 修复部分聚合函数状态在处理 String 参数时的兼容性问题。[#87049](https://github.com/ClickHouse/ClickHouse/pull/87049) ([Pavel Kruglov](https://github.com/Avogar))。 +* 修复了一个来自 OpenAI 的模型名称未被正确传递的问题。 [#87100](https://github.com/ClickHouse/ClickHouse/pull/87100) ([Kaushik Iska](https://github.com/iskakaushik)). +* EmbeddedRocksDB:路径必须位于 `user_files` 目录内。[#87109](https://github.com/ClickHouse/ClickHouse/pull/87109) ([Raúl Marín](https://github.com/Algunenano))。 +* 修复在 25.1 之前创建的 KeeperMap 表在执行 DROP 查询后仍会在 ZooKeeper 中遗留数据的问题。[#87112](https://github.com/ClickHouse/ClickHouse/pull/87112) ([Nikolay Degterinsky](https://github.com/evillique)). +* 修复在读取 Parquet 时 maps 和 arrays 字段 ID 读取错误的问题。[#87136](https://github.com/ClickHouse/ClickHouse/pull/87136) ([scanhex12](https://github.com/scanhex12)). +* 修复在惰性物化中读取带有数组大小子列的数组时的问题。[#87139](https://github.com/ClickHouse/ClickHouse/pull/87139) ([Pavel Kruglov](https://github.com/Avogar))。 +* 修复使用 Dynamic 参数的 CASE 函数的问题。[#87177](https://github.com/ClickHouse/ClickHouse/pull/87177) ([Pavel Kruglov](https://github.com/Avogar))。 +* 修复了在 CSV 中将空字符串解析为空数组的问题。 [#87182](https://github.com/ClickHouse/ClickHouse/pull/87182) ([Pavel Kruglov](https://github.com/Avogar)). +* 修复非关联的 `EXISTS` 可能产生错误结果的问题。当启用 `execute_exists_as_scalar_subquery=1` 时会触发该问题,该设置在 [https://github.com/ClickHouse/ClickHouse/pull/85481](https://github.com/ClickHouse/ClickHouse/pull/85481) 中被引入,并影响 `25.8` 版本。修复了 [#86415](https://github.com/ClickHouse/ClickHouse/issues/86415)。[#87207](https://github.com/ClickHouse/ClickHouse/pull/87207)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 当未配置 iceberg_metadata_log 时,若用户尝试获取 iceberg 元数据调试信息则抛出错误,修复了空指针访问问题。 [#87250](https://github.com/ClickHouse/ClickHouse/pull/87250) ([Daniil Ivanik](https://github.com/divanik)). + +#### 构建/测试/打包改进 {#buildtestingpackaging-improvement} + +* 修复与 abseil-cpp 20250814.0 的兼容性问题,https://github.com/abseil/abseil-cpp/issues/1923。 [#85970](https://github.com/ClickHouse/ClickHouse/pull/85970) ([Yuriy Chernyshov](https://github.com/georgthegreat)). +* 将独立 WASM 词法分析器的构建放到一个开关后面。 [#86505](https://github.com/ClickHouse/ClickHouse/pull/86505) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* 修复在不支持 `vmull_p64` 指令的旧款 ARM CPU 上的 crc32c 构建问题。 [#86521](https://github.com/ClickHouse/ClickHouse/pull/86521) ([Pablo Marcos](https://github.com/pamarcos)). +* 使用 `openldap` 2.6.10。 [#86623](https://github.com/ClickHouse/ClickHouse/pull/86623) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* 在 Darwin 系统上不再尝试拦截 `memalign`。 [#86769](https://github.com/ClickHouse/ClickHouse/pull/86769) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* 使用 `krb5` 1.22.1-final。 [#86836](https://github.com/ClickHouse/ClickHouse/pull/86836) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* 修复在 `list-licenses.sh` 中解析 Rust crate 名称的问题。 [#87305](https://github.com/ClickHouse/ClickHouse/pull/87305) ([Konstantin Bogdanov](https://github.com/thevar1able)). + +### ClickHouse 25.8 LTS 版本发布,2025-08-28 {#258} + +#### 向后不兼容的变更 {#backward-incompatible-change} + +* 对 JSON 中包含不同类型值的数组,现在推断为 `Array(Dynamic)`,而不是未命名的 `Tuple`。如需使用之前的行为,请禁用设置 `input_format_json_infer_array_of_dynamic_from_array_of_different_types`。[#80859](https://github.com/ClickHouse/ClickHouse/pull/80859) ([Pavel Kruglov](https://github.com/Avogar))。 +* 将 S3 延迟指标迁移到直方图,以提高一致性并简化指标体系。[#82305](https://github.com/ClickHouse/ClickHouse/pull/82305) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* 要求在默认表达式中,对包含点号的标识符使用反引号,以防止其被解析为复合标识符。[#83162](https://github.com/ClickHouse/ClickHouse/pull/83162) ([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 +* 惰性物化仅在启用了 analyzer 时(这是默认行为)才会开启,以避免在未使用 analyzer 时的维护开销——根据我们的经验,未使用 analyzer 时会出现一些问题(例如在条件中使用 `indexHint()` 时)。[#83791](https://github.com/ClickHouse/ClickHouse/pull/83791) ([Igor Nikonov](https://github.com/devcrafter))。 +* 在 Parquet 输出格式中,默认将 `Enum` 类型的值写为具有 `ENUM` 逻辑类型的 `BYTE_ARRAY`。[#84169](https://github.com/ClickHouse/ClickHouse/pull/84169) ([Pavel Kruglov](https://github.com/Avogar))。 +* 默认启用 MergeTree 设置 `write_marks_for_substreams_in_compact_parts`。这可以显著提升从新创建的 Compact 分区片段中读取子列的性能。版本低于 25.5 的服务器将无法读取新的 Compact 分区片段。[#84171](https://github.com/ClickHouse/ClickHouse/pull/84171) ([Pavel Kruglov](https://github.com/Avogar))。 +* 之前 `concurrent_threads_scheduler` 的默认值为 `round_robin`,在存在大量单线程查询(例如 INSERT)时被证明是不公平的。此更改将更安全的替代方案 `fair_round_robin` 调度器设为默认值。[#84747](https://github.com/ClickHouse/ClickHouse/pull/84747) ([Sergei Trifonov](https://github.com/serxa))。 +* ClickHouse 支持 PostgreSQL 风格的 heredoc 语法:`$tag$ string contents... $tag$`,也称为美元符号引号字符串字面量。在之前的版本中,对 tag 的限制较少:它们可以包含任意字符,包括标点和空白字符。这会与同样可以以美元符号开头的标识符产生解析歧义。与此同时,PostgreSQL 只允许在 tag 中使用单词字符。为解决该问题,我们现在限制 heredoc tag 只能包含单词字符。修复 [#84731](https://github.com/ClickHouse/ClickHouse/issues/84731)。[#84846](https://github.com/ClickHouse/ClickHouse/pull/84846) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 函数 `azureBlobStorage`、`deltaLakeAzure` 和 `icebergAzure` 已更新,以正确校验 `AZURE` 权限。所有集群变体函数(`-Cluster` 函数)现在会针对其对应的非集群变体函数验证权限。此外,`icebergLocal` 和 `deltaLakeLocal` 函数现在会强制执行 `FILE` 权限检查。[#84938](https://github.com/ClickHouse/ClickHouse/pull/84938) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* 默认启用 `allow_dynamic_metadata_for_data_lakes` 设置(表引擎级别设置)。[#85044](https://github.com/ClickHouse/ClickHouse/pull/85044) ([Daniil Ivanik](https://github.com/divanik))。 +* 默认在 JSON 格式中不再为 64 位整数加引号。[#74079](https://github.com/ClickHouse/ClickHouse/pull/74079) ([Pavel Kruglov](https://github.com/Avogar))。 + +#### 新功能 {#new-feature} + +* 添加了对 PromQL 方言的基础支持。要使用它,可以在 clickhouse-client 中设置 `dialect='promql'`,并通过设置 `promql_table_name='X'` 将其指向 TimeSeries 表,然后执行类似 `rate(ClickHouseProfileEvents_ReadCompressedBytes[1m])[5m:1m]` 的查询。此外,也可以将 PromQL 查询包装在 SQL 中:`SELECT * FROM prometheusQuery('up', ...);`。目前仅支持 `rate`、`delta` 和 `increase` 这几个函数。不支持一元/二元运算符。暂不提供 HTTP API。[#75036](https://github.com/ClickHouse/ClickHouse/pull/75036)([Vitaly Baranov](https://github.com/vitlibar))。 +* AI 驱动的 SQL 生成现在可以在已设置环境变量 ANTHROPIC_API_KEY 和 OPENAI_API_KEY 时自动推断所需信息,从而实现以零配置方式使用此功能。 [#83787](https://github.com/ClickHouse/ClickHouse/pull/83787) ([Kaushik Iska](https://github.com/iskakaushik)). +* 通过新增表函数 `arrowflight` 实现对 [ArrowFlight RPC](https://arrow.apache.org/docs/format/Flight.html) 协议的支持。 [#74184](https://github.com/ClickHouse/ClickHouse/pull/74184) ([zakr600](https://github.com/zakr600))。 +* 现在所有表都支持 `_table` 虚拟列(不仅是使用 `Merge` 引擎的表),这在使用 UNION ALL 的查询中尤其有用。 [#63665](https://github.com/ClickHouse/ClickHouse/pull/63665) ([Xiaozhe Yu](https://github.com/wudidapaopao))。 +* 允许在外部聚合/排序中使用任意存储策略(包括对象存储,如 S3)。 [#84734](https://github.com/ClickHouse/ClickHouse/pull/84734) ([Azat Khuzhin](https://github.com/azat)). +* 使用显式指定的 IAM 角色实现 AWS S3 身份验证。为 GCS 实现 OAuth。这些特性此前仅在 ClickHouse Cloud 中可用,现在已开源。对部分接口进行了统一处理,例如对象存储连接参数的序列化。[#84011](https://github.com/ClickHouse/ClickHouse/pull/84011) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 为 Iceberg TableEngine 增加对 position delete 的支持。[#83094](https://github.com/ClickHouse/ClickHouse/pull/83094) ([Daniil Ivanik](https://github.com/divanik))。 +* 支持 Iceberg 等值删除(Equality Deletes)。 [#85843](https://github.com/ClickHouse/ClickHouse/pull/85843) ([Han Fei](https://github.com/hanfei1991))。 +* 为 `CREATE` 语句提供 Iceberg 写入支持。Closes [#83927](https://github.com/ClickHouse/ClickHouse/issues/83927)。[#83983](https://github.com/ClickHouse/ClickHouse/pull/83983) ([Konstantin Vedernikov](https://github.com/scanhex12))。 +* 支持使用 Glue catalog 进行写入。 [#84136](https://github.com/ClickHouse/ClickHouse/pull/84136) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* 支持通过 Iceberg REST 目录进行写入。[#84684](https://github.com/ClickHouse/ClickHouse/pull/84684) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* 将所有 Iceberg 位置删除文件合并到数据文件中。这将减少 Iceberg 存储中的 Parquet 文件数量和大小。语法:`OPTIMIZE TABLE table_name`。[#85250](https://github.com/ClickHouse/ClickHouse/pull/85250)([Konstantin Vedernikov](https://github.com/scanhex12))。 +* 支持对 Iceberg 执行 `drop table`(从 REST/Glue 目录中移除并删除该表的元数据)。[#85395](https://github.com/ClickHouse/ClickHouse/pull/85395) ([Konstantin Vedernikov](https://github.com/scanhex12))。 +* 在 merge-on-read 格式的 Iceberg 表中,支持 ALTER DELETE 变更操作。 [#85549](https://github.com/ClickHouse/ClickHouse/pull/85549) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* 支持写入 Delta Lake。解决 [#79603](https://github.com/ClickHouse/ClickHouse/issues/79603)。[#85564](https://github.com/ClickHouse/ClickHouse/pull/85564)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 新增了 `delta_lake_snapshot_version` 设置,用于在 `DeltaLake` 表引擎中读取指定的快照版本。[#85295](https://github.com/ClickHouse/ClickHouse/pull/85295) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* 在元数据(manifest 条目)中写入更多 Iceberg 统计信息(列大小、下界和上界),以改进 min-max 剪枝。 [#85746](https://github.com/ClickHouse/ClickHouse/pull/85746) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* 在 Iceberg 中支持对简单类型列执行新增/删除/修改操作。 [#85769](https://github.com/ClickHouse/ClickHouse/pull/85769) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* Iceberg:支持写入 version-hint 文件,从而关闭 [#85097](https://github.com/ClickHouse/ClickHouse/issues/85097)。[#85130](https://github.com/ClickHouse/ClickHouse/pull/85130)([Konstantin Vedernikov](https://github.com/scanhex12))。 +* 由临时用户创建的视图现在会存储对应实际用户的副本,并且在删除该临时用户后也不会再失效。 [#84763](https://github.com/ClickHouse/ClickHouse/pull/84763) ([pufit](https://github.com/pufit)). +* 向量相似性索引现在支持二值量化。二值量化显著降低了内存消耗,并加快了构建向量索引的过程(由于距离计算更快)。此外,现有的 `vector_search_postfilter_multiplier` 设置已废弃,并由更通用的设置 `vector_search_index_fetch_multiplier` 取代。[#85024](https://github.com/ClickHouse/ClickHouse/pull/85024) ([Shankar Iyer](https://github.com/shankar-iyer)). +* 允许在 `s3` 或 `s3Cluster` 表引擎/函数中使用键值对形式的参数,例如:`s3('url', CSV, structure = 'a Int32', compression_method = 'gzip')`。 [#85134](https://github.com/ClickHouse/ClickHouse/pull/85134) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* 新增系统表,用于保留来自 Kafka 等引擎的错误入站消息(“死信队列”)。 [#68873](https://github.com/ClickHouse/ClickHouse/pull/68873) ([Ilya Golshtein](https://github.com/ilejn)). +* 为 Replicated 数据库新增了 `SYSTEM RESTORE DATABASE REPLICA`,类似于 `ReplicatedMergeTree` 中现有的恢复功能。[#73100](https://github.com/ClickHouse/ClickHouse/pull/73100) ([Konstantin Morozov](https://github.com/k-morozov))。 +* PostgreSQL 协议现已支持 `COPY` 命令。[#74344](https://github.com/ClickHouse/ClickHouse/pull/74344)([Konstantin Vedernikov](https://github.com/scanhex12))。 +* 新增对 MySQL 协议的 C# 客户端支持。解决了 [#83992](https://github.com/ClickHouse/ClickHouse/issues/83992)。[#84397](https://github.com/ClickHouse/ClickHouse/pull/84397)([Konstantin Vedernikov](https://github.com/scanhex12))。 +* 添加对 Hive 分区风格的读写支持。[#76802](https://github.com/ClickHouse/ClickHouse/pull/76802) ([Arthur Passos](https://github.com/arthurpassos))。 +* 添加 `zookeeper_connection_log` 系统表,用于存储 ZooKeeper 连接的历史信息。[#79494](https://github.com/ClickHouse/ClickHouse/pull/79494) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 +* 服务端设置 `cpu_slot_preemption` 为工作负载启用了抢占式 CPU 调度,并确保在各个工作负载之间实现 max-min 公平的 CPU 时间分配。新增了用于 CPU 限流的工作负载设置:`max_cpus`、`max_cpu_share` 和 `max_burst_cpu_seconds`。更多详情请参见:[https://clickhouse.com/docs/operations/workload-scheduling#cpu_scheduling。[#80879](https://clickhouse.com/docs/operations/workload-scheduling#cpu_scheduling。\[#80879)]([https://github.com/ClickHouse/ClickHouse/pull/80879](https://github.com/ClickHouse/ClickHouse/pull/80879)) ([Sergei Trifonov](https://github.com/serxa))。 +* 在达到配置的查询次数或时间阈值后断开 TCP 连接。这样可以在负载均衡器后方的集群节点之间实现更加均匀的连接分布。解决了 [#68000](https://github.com/ClickHouse/ClickHouse/issues/68000)。 [#81472](https://github.com/ClickHouse/ClickHouse/pull/81472)([Kenny Sun](https://github.com/hwabis))。 +* 并行副本现在在查询时也支持使用投影。 [#82659](https://github.com/ClickHouse/ClickHouse/issues/82659)。 [#82807](https://github.com/ClickHouse/ClickHouse/pull/82807) ([zoomxi](https://github.com/zoomxi))。 +* 在现有 `DESCRIBE (SELECT ...)` 的基础上,现在还支持 `DESCRIBE SELECT`。 [#82947](https://github.com/ClickHouse/ClickHouse/pull/82947) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* 为 `mysql_port` 和 `postgresql_port` 强制使用安全连接。 [#82962](https://github.com/ClickHouse/ClickHouse/pull/82962) ([tiandiwonder](https://github.com/tiandiwonder)). +* 现在可以使用 `JSONExtractCaseInsensitive`(以及 `JSONExtract` 的其他变体)进行不区分大小写的 JSON 键查找。[#83770](https://github.com/ClickHouse/ClickHouse/pull/83770) ([Alistair Evans](https://github.com/alistairjevans))。 +* 新增 `system.completions` 表。关闭 [#81889](https://github.com/ClickHouse/ClickHouse/issues/81889)。[#83833](https://github.com/ClickHouse/ClickHouse/pull/83833) ([|2ustam](https://github.com/RuS2m))。 +* 新增函数 `nowInBlock64`。示例:`SELECT nowInBlock64(6)` 返回 `2025-07-29 17:09:37.775725`。[#84178](https://github.com/ClickHouse/ClickHouse/pull/84178)([Halersson Paris](https://github.com/halersson))。 +* 向 AzureBlobStorage 添加 extra_credentials,以便使用 client_id 和 tenant_id 进行身份验证。[#84235](https://github.com/ClickHouse/ClickHouse/pull/84235) ([Pablo Marcos](https://github.com/pamarcos))。 +* 新增函数 `dateTimeToUUIDv7`,用于将 DateTime 值转换为 UUIDv7。示例:`SELECT dateTimeToUUIDv7(toDateTime('2025-08-15 18:57:56'))` 返回 `0198af18-8320-7a7d-abd3-358db23b9d5c`。[#84319](https://github.com/ClickHouse/ClickHouse/pull/84319)([samradovich](https://github.com/samradovich))。 +* `timeSeriesDerivToGrid` 和 `timeSeriesPredictLinearToGrid` 聚合函数,用于将数据重新采样并对齐到由指定起始时间戳、结束时间戳和步长定义的时间栅格上;分别计算类似 PromQL 的 `deriv` 和 `predict_linear`。 [#84328](https://github.com/ClickHouse/ClickHouse/pull/84328) ([Stephen Chi](https://github.com/stephchi0))。 +* 新增两个 TimeSeries 函数:- `timeSeriesRange(start_timestamp, end_timestamp, step)`,- `timeSeriesFromGrid(start_timestamp, end_timestamp, step, values)`。[#85435](https://github.com/ClickHouse/ClickHouse/pull/85435) ([Vitaly Baranov](https://github.com/vitlibar))。 +* 新增语法:`GRANT READ ON S3('s3://foo/.*') TO user`。[#84503](https://github.com/ClickHouse/ClickHouse/pull/84503)([pufit](https://github.com/pufit))。 +* 新增 `Hash` 作为新的输出格式。它会为结果中的所有列和行计算一个单一的哈希值。这在需要计算结果“指纹”的场景中非常有用,例如当数据传输成为瓶颈时。示例:`SELECT arrayJoin(['abc', 'def']), 42 FORMAT Hash` 返回 `e5f9e676db098fdb9530d2059d8c23ef`。[#84607](https://github.com/ClickHouse/ClickHouse/pull/84607)([Robert Schulze](https://github.com/rschu1ze))。 +* 为 Keeper Multi 查询新增设置任意 watch 的能力。 [#84964](https://github.com/ClickHouse/ClickHouse/pull/84964) ([Mikhail Artemenko](https://github.com/Michicosun)). +* 为 `clickhouse-benchmark` 工具新增选项 `--max-concurrency`,用于启用一种模式,该模式下并行查询数量会逐步增加。[#85623](https://github.com/ClickHouse/ClickHouse/pull/85623)([Sergei Trifonov](https://github.com/serxa))。 +* 支持部分聚合指标。[#85328](https://github.com/ClickHouse/ClickHouse/pull/85328) ([Mikhail Artemenko](https://github.com/Michicosun))。 + +#### 实验特性 {#experimental-feature} + +* 默认启用相关子查询支持,它们不再是实验性特性。[#85107](https://github.com/ClickHouse/ClickHouse/pull/85107) ([Dmitry Novik](https://github.com/novikd)). +* Unity、Glue、REST 和 Hive Metastore 数据湖目录从实验性升级为 Beta 版。[#85848](https://github.com/ClickHouse/ClickHouse/pull/85848) ([Melvyn Peignon](https://github.com/melvynator)). +* 轻量级更新和删除从实验性升级为 Beta 版。 +* 使用向量相似度索引的近似向量搜索现已正式发布(GA)。[#85888](https://github.com/ClickHouse/ClickHouse/pull/85888) ([Robert Schulze](https://github.com/rschu1ze)). +* Ytsaurus 表引擎和表函数。[#77606](https://github.com/ClickHouse/ClickHouse/pull/77606) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* 之前,文本索引数据会被拆分为多个段(每个段的默认大小为 256 MiB)。这可能在构建文本索引时降低内存消耗,但会增加磁盘空间占用并延长查询响应时间。[#84590](https://github.com/ClickHouse/ClickHouse/pull/84590) ([Elmi Ahmadov](https://github.com/ahmadov)). + +#### 性能优化 {#performance-improvement} + +* 新的 Parquet 读取器实现。通常更快,并支持页级过滤下推和 PREWHERE。目前为实验性功能。使用设置 `input_format_parquet_use_native_reader_v3` 来启用。[#82789](https://github.com/ClickHouse/ClickHouse/pull/82789) ([Michael Kolupaev](https://github.com/al13n321)). +* 用我们自行实现的 HTTP 客户端替换了 Azure 库中官方的 HTTP 传输层,用于访问 Azure Blob Storage。为这些客户端引入了多项配置选项,其行为与 S3 的相关设置保持一致。为 Azure 和 S3 都引入了更为激进的连接超时设置。改进了对 Azure profile events 和指标的观测与分析能力。新的客户端默认启用,在基于 Azure Blob Storage 的冷查询场景下显著降低了延迟。旧的 `Curl` 客户端可以通过设置 `azure_sdk_use_native_client=false` 恢复使用。[#83294](https://github.com/ClickHouse/ClickHouse/pull/83294)([alesapin](https://github.com/alesapin))。此前官方提供的 Azure 客户端实现由于存在极其严重的延迟抖动(从 5 秒到数分钟不等),完全不适合在生产环境中使用。我们已经彻底弃用这一糟糕的实现,并对此感到非常自豪。 +* 按文件大小递增顺序处理索引。总体索引排序策略优先处理 minmax 和向量索引(分别由于其简单性和选择性),然后再处理其他较小的索引。在 minmax/向量索引中,也优先选择更小的索引。[#84094](https://github.com/ClickHouse/ClickHouse/pull/84094) ([Maruth Goyal](https://github.com/maruthgoyal))。 +* 默认启用 MergeTree 的 `write_marks_for_substreams_in_compact_parts` 设置。该设置可显著提升从新创建的 Compact 分区片段中读取子列时的性能。版本低于 25.5 的服务器将无法读取新的 Compact 分区片段。[#84171](https://github.com/ClickHouse/ClickHouse/pull/84171) ([Pavel Kruglov](https://github.com/Avogar))。 +* `azureBlobStorage` 表引擎:在可能的情况下缓存并重用托管身份的认证令牌,以避免被限流。 [#79860](https://github.com/ClickHouse/ClickHouse/pull/79860) ([Nick Blakely](https://github.com/niblak))。 +* 如果右侧表由连接键列函数依赖唯一确定(所有行的连接键值唯一),则 `ALL` `LEFT/INNER` JOIN 会自动转换为 `RightAny`。 [#84010](https://github.com/ClickHouse/ClickHouse/pull/84010) ([Nikita Taranov](https://github.com/nickitat))。 +* 新增 `max_joined_block_size_bytes`,与 `max_joined_block_size_rows` 搭配使用,以限制包含大数据量列的 JOIN 的内存使用。[#83869](https://github.com/ClickHouse/ClickHouse/pull/83869)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 添加了新的逻辑(由 `enable_producing_buckets_out_of_order_in_aggregation` 设置控制,默认启用),允许在内存高效聚合期间无序发送部分 bucket。当某些聚合 bucket 的合并耗时明显长于其他 bucket 时,这一逻辑通过允许发起方在此期间先行合并 bucket ID 更大的 bucket 来提升性能。缺点是可能会增加内存占用(预计不会显著)。[#80179](https://github.com/ClickHouse/ClickHouse/pull/80179)([Nikita Taranov](https://github.com/nickitat))。 +* 引入了 `optimize_rewrite_regexp_functions` 设置(默认启用),当检测到特定正则表达式模式时,允许优化器将某些 `replaceRegexpAll`、`replaceRegexpOne` 和 `extract` 调用重写为更简单、更高效的形式。(问题 [#81981](https://github.com/ClickHouse/ClickHouse/issues/81981))。[#81992](https://github.com/ClickHouse/ClickHouse/pull/81992)([Amos Bird](https://github.com/amosbird))。 +* 在哈希 JOIN 主循环之外处理 `max_joined_block_rows`,略微提升 ALL JOIN 的性能。[#83216](https://github.com/ClickHouse/ClickHouse/pull/83216) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 优先处理更高粒度的 min-max 索引。已关闭 [#75381](https://github.com/ClickHouse/ClickHouse/issues/75381)。[#83798](https://github.com/ClickHouse/ClickHouse/pull/83798)([Maruth Goyal](https://github.com/maruthgoyal))。 +* 使 `DISTINCT` 窗口聚合在线性时间内运行,并修复 `sumDistinct` 中的一个缺陷。解决了 [#79792](https://github.com/ClickHouse/ClickHouse/issues/79792)。解决了 [#52253](https://github.com/ClickHouse/ClickHouse/issues/52253)。[#79859](https://github.com/ClickHouse/ClickHouse/pull/79859)([Nihal Z. Miaji](https://github.com/nihalzp))。 +* 使用向量相似度索引的向量搜索查询,通过减少存储读取和 CPU 使用,实现了更低的延迟。[#83803](https://github.com/ClickHouse/ClickHouse/pull/83803) ([Shankar Iyer](https://github.com/shankar-iyer)). +* 使用 Rendezvous 哈希以提升工作负载在并行副本之间分布时的缓存局部性。 [#82511](https://github.com/ClickHouse/ClickHouse/pull/82511) ([Anton Ivashkin](https://github.com/ianton-ru)). +* 为 If 组合子实现了 `addManyDefaults`,从而使带有 If 组合子的聚合函数执行得更快。[#83870](https://github.com/ClickHouse/ClickHouse/pull/83870) ([Raúl Marín](https://github.com/Algunenano))。 +* 在对多个字符串或数值列进行 GROUP BY 时,以列式方式计算序列化键。 [#83884](https://github.com/ClickHouse/ClickHouse/pull/83884) ([李扬](https://github.com/taiyang-li)). +* 在并行副本读取场景中,当索引分析得到的范围为空时,消除了全表扫描。 [#84971](https://github.com/ClickHouse/ClickHouse/pull/84971) ([Eduard Karacharov](https://github.com/korowa)). +* 尝试使用 -falign-functions=64,以获得更稳定的性能测试结果。[#83920](https://github.com/ClickHouse/ClickHouse/pull/83920) ([Azat Khuzhin](https://github.com/azat)). +* 现在,布隆过滤器(Bloom filter)索引也会用于类似 `has([c1, c2, ...], column)` 的条件,其中 `column` 不是 `Array` 类型。这样可以提升此类查询的性能,使其效率与使用 `IN` 运算符相当。[#83945](https://github.com/ClickHouse/ClickHouse/pull/83945) ([Doron David](https://github.com/dorki))。 +* 减少在 CompressedReadBufferBase::readCompressedData 中不必要的 memcpy 调用。[#83986](https://github.com/ClickHouse/ClickHouse/pull/83986) ([Raúl Marín](https://github.com/Algunenano))。 +* 通过移除临时数据以优化 `largestTriangleThreeBuckets`。 [#84479](https://github.com/ClickHouse/ClickHouse/pull/84479) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 通过简化代码优化字符串反序列化。修复 [#38564](https://github.com/ClickHouse/ClickHouse/issues/38564)。[#84561](https://github.com/ClickHouse/ClickHouse/pull/84561)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 修正了并行副本场景下最小任务大小的计算。[#84752](https://github.com/ClickHouse/ClickHouse/pull/84752) ([Nikita Taranov](https://github.com/nickitat))。 +* 提高了在 `Join` 模式下应用补丁分区片段的性能。[#85040](https://github.com/ClickHouse/ClickHouse/pull/85040) ([Anton Popov](https://github.com/CurtizJ))。 +* 移除零字节。关闭 [#85062](https://github.com/ClickHouse/ClickHouse/issues/85062)。修复了一些小错误。函数 `structureToProtobufSchema`、`structureToCapnProtoSchema` 未正确写入以零结尾的终止字节,而是使用了换行符。这样会导致输出中缺少换行符,并且在使用依赖零字节的其他函数(例如 `logTrace`、`demangle`、`extractURLParameter`、`toStringCutToZero` 以及 `encrypt`/`decrypt`)时,可能导致缓冲区溢出。`regexp_tree` 字典布局不支持处理包含零字节的字符串。`formatRowNoNewline` 函数在使用 `Values` 格式或任何行尾不带换行符的其他格式调用时,会错误地截断输出的最后一个字符。函数 `stem` 存在异常安全性问题,在极其罕见的场景下可能导致内存泄漏。`initcap` 函数在处理 `FixedString` 参数时行为不正确:如果前一个字符串块以单词字符结束,它不会将字符串开头识别为单词的起始位置。修复了 Apache `ORC` 格式中的安全漏洞,该漏洞可能导致未初始化内存的暴露。更改了函数 `replaceRegexpAll` 及其别名 `REGEXP_REPLACE` 的行为:现在即使前一次匹配已经处理了整个字符串,它仍可以在字符串末尾进行一次空匹配,例如在 `^a*|a*$` 或 `^|.*` 这样的场景中——这与 JavaScript、Perl、Python、PHP、Ruby 的语义一致,但与 PostgreSQL 的语义不同。简化并优化了许多函数的实现。修正了若干函数错误的文档说明。请注意,`byteSize` 对于 String 列以及由 String 列组成的复杂类型的输出已经发生变化(每个空字符串从 9 字节变为 8 字节),这是预期行为。[#85063](https://github.com/ClickHouse/ClickHouse/pull/85063)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 在仅为了返回单行而进行常量物化的场景下,优化常量物化过程。[#85071](https://github.com/ClickHouse/ClickHouse/pull/85071) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 通过 delta-kernel-rs 后端提升并行文件处理性能。 [#85642](https://github.com/ClickHouse/ClickHouse/pull/85642) ([Azat Khuzhin](https://github.com/azat)). +* 引入了一个新的设置:enable_add_distinct_to_in_subqueries。启用后,ClickHouse 会在分布式查询的 IN 子句中自动为子查询添加 DISTINCT。这样可以显著减少在分片之间传输的临时表大小并提升网络效率。注意:这是一种权衡——虽然减少了网络传输,但每个节点上需要进行额外的合并(去重)工作。当网络传输成为瓶颈且可以接受额外的合并开销时,建议启用此设置。[#81908](https://github.com/ClickHouse/ClickHouse/pull/81908) ([fhw12345](https://github.com/fhw12345))。 +* 降低可执行用户自定义函数的查询内存跟踪开销。[#83929](https://github.com/ClickHouse/ClickHouse/pull/83929) ([Eduard Karacharov](https://github.com/korowa)). +* 在存储 `DeltaLake` 中实现基于 `delta-kernel-rs` 的内部过滤(统计信息和分区裁剪)。 [#84006](https://github.com/ClickHouse/ClickHouse/pull/84006) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 更精细地禁用依赖于实时更新或通过补丁分区片段进行更新的列的跳过索引。现在,仅在受到实时变更或补丁分区片段影响的分区片段中不会使用跳过索引;此前,这些索引会在所有分区片段中被禁用。[#84241](https://github.com/ClickHouse/ClickHouse/pull/84241) ([Anton Popov](https://github.com/CurtizJ))。 +* 仅为加密命名集合的 `encrypted_buffer` 分配所需的最小内存。[#84432](https://github.com/ClickHouse/ClickHouse/pull/84432) ([Pablo Marcos](https://github.com/pamarcos))。 +* 改进了对 Bloom 过滤器索引(常规、ngram 和 token)的支持,使其在第一个参数为常量数组(集合)、第二个参数为被索引列(子集)时也能发挥作用,从而实现更高效的查询执行。[#84700](https://github.com/ClickHouse/ClickHouse/pull/84700)([Doron David](https://github.com/dorki))。 +* 减少 Keeper 中存储锁上的争用。[#84732](https://github.com/ClickHouse/ClickHouse/pull/84732) ([Antonio Andelic](https://github.com/antonio2368))。 +* 为 `WHERE` 子句补充对 `read_in_order_use_virtual_row` 的缺失支持。这样可以在过滤条件未完全下推到 `PREWHERE` 的查询中跳过读取更多分区片段。 [#84835](https://github.com/ClickHouse/ClickHouse/pull/84835) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* 允许对 Iceberg 表中的对象进行异步迭代,而无需为每个数据文件显式存储这些对象。[#85369](https://github.com/ClickHouse/ClickHouse/pull/85369) ([Daniil Ivanik](https://github.com/divanik))。 +* 将非关联的 `EXISTS` 表达式作为标量子查询来执行。这样可以使用标量子查询缓存,并对结果进行常量折叠优化,这对索引很有帮助。为保持兼容性,新增了设置 `execute_exists_as_scalar_subquery=1`。 [#85481](https://github.com/ClickHouse/ClickHouse/pull/85481) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 + +#### 改进 {#improvement} + +* 添加 `database_replicated` 设置,用于定义 `DatabaseReplicatedSettings` 的默认值。如果在创建 Replicated 数据库时使用的查询中未指定该设置,则会使用此处设置的值。[#85127](https://github.com/ClickHouse/ClickHouse/pull/85127) ([Tuan Pham Anh](https://github.com/tuanpach))。 +* 在 Web UI(play)中支持调整表格列宽。 [#84012](https://github.com/ClickHouse/ClickHouse/pull/84012) ([Doron David](https://github.com/dorki)). +* 现在可通过 `iceberg_metadata_compression_method` 设置项使用压缩的 `.metadata.json` 文件。该设置支持 ClickHouse 提供的所有压缩方法。修复了 [#84895](https://github.com/ClickHouse/ClickHouse/issues/84895)。[#85196](https://github.com/ClickHouse/ClickHouse/pull/85196)([Konstantin Vedernikov](https://github.com/scanhex12))。 +* 在 `EXPLAIN indexes = 1` 的输出中显示需要读取的范围数量。 [#79938](https://github.com/ClickHouse/ClickHouse/pull/79938) ([Christoph Wurm](https://github.com/cwurm)). +* 引入用于配置 ORC 压缩块大小的设置项,并将其默认值从 64KB 调整为 256KB,以与 Spark 或 Hive 保持一致。 [#80602](https://github.com/ClickHouse/ClickHouse/pull/80602) ([李扬](https://github.com/taiyang-li)). +* 在宽分区片段中新增 `columns_substreams.txt` 文件,用于跟踪分区片段中存储的所有子流。这有助于跟踪 JSON 和 Dynamic 类型中的动态流,从而避免为了获取动态流列表(例如用于计算列大小)而读取这些列的数据样本。此外,现在所有动态流都会体现在 `system.parts_columns` 中。[#81091](https://github.com/ClickHouse/ClickHouse/pull/81091) ([Pavel Kruglov](https://github.com/Avogar))。 +* 为 `clickhouse format` 添加 CLI 标志 `--show_secrets`,用于在默认情况下隐藏敏感数据。[#81524](https://github.com/ClickHouse/ClickHouse/pull/81524)([Nikolai Ryzhov](https://github.com/Dolaxom))。 +* 在 HTTP 套接字层面而不是在整个 S3 请求层面对 S3 读写请求进行限流,以避免与 `max_remote_read_network_bandwidth_for_server` 和 `max_remote_write_network_bandwidth_for_server` 限流相关的问题。 [#81837](https://github.com/ClickHouse/ClickHouse/pull/81837) ([Sergei Trifonov](https://github.com/serxa)). +* 允许在窗口函数的不同窗口中为同一列混合使用不同的排序规则。 [#82877](https://github.com/ClickHouse/ClickHouse/pull/82877) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* 添加一个用于模拟、可视化和比较合并选择器的工具。[#71496](https://github.com/ClickHouse/ClickHouse/pull/71496) ([Sergei Trifonov](https://github.com/serxa)). +* 当在 `address_expression` 参数中指定集群时,为使用并行副本的 `remote*` 表函数增加支持。同时修复了 [#73295](https://github.com/ClickHouse/ClickHouse/issues/73295)。[#82904](https://github.com/ClickHouse/ClickHouse/pull/82904)([Igor Nikonov](https://github.com/devcrafter))。 +* 将所有与写入备份文件相关的日志消息级别设置为 TRACE。 [#82907](https://github.com/ClickHouse/ClickHouse/pull/82907) ([Hans Krutzer](https://github.com/hkrutzer)). +* 具有非常规名称和编解码器的用户自定义函数在经过 SQL 格式化后,可能会得到不一致的结果。此更改关闭了 [#83092](https://github.com/ClickHouse/ClickHouse/issues/83092)。[#83644](https://github.com/ClickHouse/ClickHouse/pull/83644)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 现在可以在 JSON 类型中使用 Time 和 Time64 数据类型了。[#83784](https://github.com/ClickHouse/ClickHouse/pull/83784) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 现在,并行副本上的 JOIN 已经使用新的 JOIN 逻辑步骤。若在使用并行副本的 JOIN 查询时遇到任何问题,请尝试执行 `SET query_plan_use_new_logical_join_step=0` 并报告问题。 [#83801](https://github.com/ClickHouse/ClickHouse/pull/83801) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* 修复 `cluster_function_process_archive_on_multiple_nodes` 的兼容性问题。 [#83968](https://github.com/ClickHouse/ClickHouse/pull/83968) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 支持在 `S3Queue` 表级别修改物化视图(MV)插入设置。新增 `S3Queue` 级别的设置:`min_insert_block_size_rows_for_materialized_views` 和 `min_insert_block_size_bytes_for_materialized_views`。默认情况下会使用 profile 级别的设置,而 `S3Queue` 级别的设置将覆盖它们。[#83971](https://github.com/ClickHouse/ClickHouse/pull/83971) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* 新增了 profile 事件 `MutationAffectedRowsUpperBound`,用于显示一次变更操作中受影响的行数(例如,在 `ALTER UPDATE` 或 `ALTER DELETE` 查询中满足条件的行的总数)。[#83978](https://github.com/ClickHouse/ClickHouse/pull/83978) ([Anton Popov](https://github.com/CurtizJ)). +* 使用 cgroup 中的信息(如果适用,即启用了 `memory_worker_use_cgroup` 且 cgroup 可用)来调整内存跟踪器(`memory_worker_correct_memory_tracker`)。[#83981](https://github.com/ClickHouse/ClickHouse/pull/83981)([Azat Khuzhin](https://github.com/azat))。 +* MongoDB:字符串到数值类型的隐式解析。此前,如果从 MongoDB 源为 ClickHouse 表中的数值列接收到字符串值,就会抛出异常。现在,引擎会尝试自动将字符串解析为数值。已关闭 [#81167](https://github.com/ClickHouse/ClickHouse/issues/81167)。[#84069](https://github.com/ClickHouse/ClickHouse/pull/84069)([Kirill Nikiforov](https://github.com/allmazz))。 +* 在 `Pretty` 格式中为 `Nullable` 数值高亮显示数字分组。[#84070](https://github.com/ClickHouse/ClickHouse/pull/84070) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Dashboard:工具提示在顶部显示时不会溢出其容器边界。[#84072](https://github.com/ClickHouse/ClickHouse/pull/84072) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 仪表板上的点现在看起来稍微更好看了一些。[#84074](https://github.com/ClickHouse/ClickHouse/pull/84074) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* Dashboard 现在有了略有改进的 favicon。 [#84076](https://github.com/ClickHouse/ClickHouse/pull/84076) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Web UI:让浏览器有机会保存密码,同时也会记住 URL 的值。[#84087](https://github.com/ClickHouse/ClickHouse/pull/84087)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 添加支持使用 `apply_to_children` 配置在特定 Keeper 节点上应用额外的 ACL。[#84137](https://github.com/ClickHouse/ClickHouse/pull/84137)([Antonio Andelic](https://github.com/antonio2368))。 +* 修复在 MergeTree 中使用 "compact" Variant 判别器序列化的方式。之前在某些本可以使用的场景下并未启用它。[#84141](https://github.com/ClickHouse/ClickHouse/pull/84141) ([Pavel Kruglov](https://github.com/Avogar))。 +* 在复制数据库的设置中新增了一个服务器设置项 `logs_to_keep`,用于修改复制数据库默认的 `logs_to_keep` 参数。较低的取值会减少 ZNode 的数量(尤其是在存在大量数据库的情况下),而较高的取值则允许缺失的副本在更长时间后仍能完成追赶同步。 [#84183](https://github.com/ClickHouse/ClickHouse/pull/84183) ([Alexey Khatskevich](https://github.com/Khatskevich)). +* 新增 `json_type_escape_dots_in_keys` 设置,用于在解析 JSON 类型时转义 JSON 键中的点。该设置默认关闭。 [#84207](https://github.com/ClickHouse/ClickHouse/pull/84207) ([Pavel Kruglov](https://github.com/Avogar))。 +* 在检查 EOF 之前先检查连接是否已被取消,防止从已关闭的连接中读取。修复 [#83893](https://github.com/ClickHouse/ClickHouse/issues/83893)。[#84227](https://github.com/ClickHouse/ClickHouse/pull/84227)([Raufs Dunamalijevs](https://github.com/rienath))。 +* 略微优化了 Web UI 中文本选区的配色。改动在暗色模式下被选中的表格单元格中差异最为明显。在之前的版本中,文本与选区背景之间的对比度不足。[#84258](https://github.com/ClickHouse/ClickHouse/pull/84258)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 通过简化内部检查,改进了服务器关闭期间对客户端连接的处理。[#84312](https://github.com/ClickHouse/ClickHouse/pull/84312) ([Raufs Dunamalijevs](https://github.com/rienath))。 +* 添加了一个 `delta_lake_enable_expression_visitor_logging` 设置,用于关闭表达式访问器日志,因为在调试问题时,即使在测试日志级别,这些日志也可能过于冗长。 [#84315](https://github.com/ClickHouse/ClickHouse/pull/84315) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* 现在会同时上报 cgroup 级和系统级的指标。cgroup 级的指标名称为 `CGroup<Metric>`,而 OS 级的指标(从 procfs 收集)名称为 `OS<Metric>`。[#84317](https://github.com/ClickHouse/ClickHouse/pull/84317)([Nikita Taranov](https://github.com/nickitat))。 +* Web UI 中的图表略有改进。虽然提升不大,但还是更好了些。[#84326](https://github.com/ClickHouse/ClickHouse/pull/84326) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 将 Replicated 数据库设置 `max_retries_before_automatic_recovery` 的默认值更改为 10,从而在某些情况下可以更快完成恢复。[#84369](https://github.com/ClickHouse/ClickHouse/pull/84369) ([Alexander Tokmakov](https://github.com/tavplubix))。 +* 修复在使用查询参数时 `CREATE USER` 语句的格式(例如 `CREATE USER {username:Identifier} IDENTIFIED WITH no_password`)。[#84376](https://github.com/ClickHouse/ClickHouse/pull/84376)([Azat Khuzhin](https://github.com/azat))。 +* 引入 `backup_restore_s3_retry_initial_backoff_ms`、`backup_restore_s3_retry_max_backoff_ms`、`backup_restore_s3_retry_jitter_factor`,用于配置在备份和恢复操作期间使用的 S3 重试退避策略。[#84421](https://github.com/ClickHouse/ClickHouse/pull/84421) ([Julia Kartseva](https://github.com/jkartseva))。 +* S3Queue 有序模式修复:在已调用关闭时更早退出。 [#84463](https://github.com/ClickHouse/ClickHouse/pull/84463) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* 为 Iceberg 写入提供通过 pyiceberg 读取的支持。 [#84466](https://github.com/ClickHouse/ClickHouse/pull/84466) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* 在将 `IN` / `GLOBAL IN` 过滤条件下推到 KeyValue 存储的主键(例如 EmbeddedRocksDB、KeeperMap)时,允许对 Set 值进行类型转换。 [#84515](https://github.com/ClickHouse/ClickHouse/pull/84515) ([Eduard Karacharov](https://github.com/korowa)). +* 将 chdig 升级至 [25.7.1](https://github.com/azat/chdig/releases/tag/v25.7.1)。[#84521](https://github.com/ClickHouse/ClickHouse/pull/84521)([Azat Khuzhin](https://github.com/azat))。 +* 在执行 UDF 期间发生的底层错误现在会统一返回错误码 `UDF_EXECUTION_FAILED`,而之前可能会返回不同的错误码。[#84547](https://github.com/ClickHouse/ClickHouse/pull/84547) ([Xu Jia](https://github.com/XuJia0210))。 +* 为 KeeperClient 添加 `get_acl` 命令。 [#84641](https://github.com/ClickHouse/ClickHouse/pull/84641) ([Antonio Andelic](https://github.com/antonio2368)). +* 为数据湖表引擎添加了快照版本支持。 [#84659](https://github.com/ClickHouse/ClickHouse/pull/84659) ([Pete Hampton](https://github.com/pjhampton)). +* 为 `ConcurrentBoundedQueue` 的大小添加一个指标,并使用队列类型(即队列的用途)和队列 ID(即当前队列实例的随机生成 ID)作为标签。[#84675](https://github.com/ClickHouse/ClickHouse/pull/84675) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* `system.columns` 表现在新增了 `column` 作为现有 `name` 列的别名。[#84695](https://github.com/ClickHouse/ClickHouse/pull/84695)([Yunchi Pang](https://github.com/yunchipang))。 +* 新增 MergeTree 设置项 `search_orphaned_parts_drives`,用于限制查找分区片段的范围,例如仅根据具有本地元数据的磁盘进行查找。 [#84710](https://github.com/ClickHouse/ClickHouse/pull/84710) ([Ilya Golshtein](https://github.com/ilejn)). +* 在 Keeper 中新增 4LW 命令 `lgrq`,用于开启或关闭对已接收请求的日志记录。[#84719](https://github.com/ClickHouse/ClickHouse/pull/84719) ([Antonio Andelic](https://github.com/antonio2368))。 +* 以大小写不敏感的方式匹配外部认证的 `forward_headers`。 [#84737](https://github.com/ClickHouse/ClickHouse/pull/84737) ([ingodwerust](https://github.com/ingodwerust)). +* `encrypt_decrypt` 工具现在支持 ZooKeeper 加密连接。[#84764](https://github.com/ClickHouse/ClickHouse/pull/84764)([Roman Vasin](https://github.com/rvasin))。 +* 在 `system.errors` 中添加格式字符串列。该列用于在告警规则中按相同错误类型进行分组。[#84776](https://github.com/ClickHouse/ClickHouse/pull/84776) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* 将 `clickhouse-format` 更新为支持将 `--highlight` 作为 `--hilite` 的别名。- 将 `clickhouse-client` 更新为支持将 `--hilite` 作为 `--highlight` 的别名。- 更新 `clickhouse-format` 文档以反映此更改。[#84806](https://github.com/ClickHouse/ClickHouse/pull/84806) ([Rishabh Bhardwaj](https://github.com/rishabh1815769)). +* 修复按字段 ID 读取 Iceberg 复杂类型时的问题。[#84821](https://github.com/ClickHouse/ClickHouse/pull/84821) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* 引入新的 `backup_slow_all_threads_after_retryable_s3_error` 设置,以便在出现 `SlowDown` 等错误引发的大量重试时,通过在检测到首个可重试错误后放慢所有线程,从而降低对 S3 的压力。 [#84854](https://github.com/ClickHouse/ClickHouse/pull/84854) ([Julia Kartseva](https://github.com/jkartseva))。 +* 在 Replicated 数据库中,对非追加的 RMV DDL 语句,跳过创建并重命名旧临时表。[#84858](https://github.com/ClickHouse/ClickHouse/pull/84858)([Tuan Pham Anh](https://github.com/tuanpach))。 +* 通过 `keeper_server.coordination_settings.latest_logs_cache_entry_count_threshold` 和 `keeper_server.coordination_settings.commit_logs_cache_entry_count_threshold` 按条目数量限制 Keeper 日志缓存大小。[#84877](https://github.com/ClickHouse/ClickHouse/pull/84877) ([Antonio Andelic](https://github.com/antonio2368)). +* 允许在原本不受支持的架构上使用 `simdjson`(此前会导致 `CANNOT_ALLOCATE_MEMORY` 错误)。 [#84966](https://github.com/ClickHouse/ClickHouse/pull/84966) ([Azat Khuzhin](https://github.com/azat))。 +* 异步日志记录:使各项限制可配置,并添加内省能力。 [#85105](https://github.com/ClickHouse/ClickHouse/pull/85105) ([Raúl Marín](https://github.com/Algunenano)). +* 收集所有要删除的对象,通过一次对象存储删除操作统一执行。[#85316](https://github.com/ClickHouse/ClickHouse/pull/85316) ([Mikhail Artemenko](https://github.com/Michicosun)). +* Iceberg 目前对 positional delete 文件的实现会将所有数据保留在内存中。如果 positional delete 文件很大(这在实践中很常见),内存开销会非常高。我的实现只在内存中保留 Parquet delete 文件的最后一个 row group,大大降低了内存成本。[#85329](https://github.com/ClickHouse/ClickHouse/pull/85329)([Konstantin Vedernikov](https://github.com/scanhex12))。 +* chdig:修复屏幕残留问题、修复在编辑器中编辑查询后发生的崩溃、在 `PATH` 中搜索 `editor`,更新到 [25.8.1](https://github.com/azat/chdig/releases/tag/v25.8.1)。[#85341](https://github.com/ClickHouse/ClickHouse/pull/85341)([Azat Khuzhin](https://github.com/azat))。 +* 向 Azure 配置添加遗漏的 `partition_columns_in_data_file`。 [#85373](https://github.com/ClickHouse/ClickHouse/pull/85373) ([Arthur Passos](https://github.com/arthurpassos))。 +* 在函数 `timeSeries*ToGrid` 中允许使用步长为 0。这是 [#75036](https://github.com/ClickHouse/ClickHouse/pull/75036) 的一部分。[#85390](https://github.com/ClickHouse/ClickHouse/pull/85390)([Vitaly Baranov](https://github.com/vitlibar))。 +* 添加 `show_data_lake_catalogs_in_system_tables` 标志,用于控制是否在 `system.tables` 中包含数据湖表。解决 [#85384](https://github.com/ClickHouse/ClickHouse/issues/85384)。[#85411](https://github.com/ClickHouse/ClickHouse/pull/85411)([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 +* 在 `remote_fs_zero_copy_zookeeper_path` 中新增了对宏展开的支持。[#85437](https://github.com/ClickHouse/ClickHouse/pull/85437)([Mikhail Koviazin](https://github.com/mkmkme))。 +* clickhouse-client 中的 AI 展示效果将略有提升。 [#85447](https://github.com/ClickHouse/ClickHouse/pull/85447) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 默认对旧部署启用 trace_log.symbolize。 [#85456](https://github.com/ClickHouse/ClickHouse/pull/85456) ([Azat Khuzhin](https://github.com/azat)). +* 支持解析更多复合标识符的场景。特别是改进了 `ARRAY JOIN` 与旧版分析器的兼容性。引入新设置 `analyzer_compatibility_allow_compound_identifiers_in_unflatten_nested`,以保留旧有行为。[#85492](https://github.com/ClickHouse/ClickHouse/pull/85492)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 在通过 system.columns 获取表列大小时,忽略 UNKNOWN_DATABASE。 [#85632](https://github.com/ClickHouse/ClickHouse/pull/85632) ([Azat Khuzhin](https://github.com/azat)). +* 新增了用于限制补丁分区片段中未压缩字节总量的表设置 `max_uncompressed_bytes_in_patches`。这样可以避免在执行轻量级更新后 `SELECT` 查询出现明显变慢,并防止轻量级更新被滥用的情况。 [#85641](https://github.com/ClickHouse/ClickHouse/pull/85641) ([Anton Popov](https://github.com/CurtizJ)). +* 在 `system.grants` 中添加一个 `parameter` 列,以确定 `GRANT READ/WRITE` 的源类型,以及 `GRANT TABLE ENGINE` 的表引擎。[#85643](https://github.com/ClickHouse/ClickHouse/pull/85643) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* 修复在 `CREATE DICTIONARY` 查询的列列表中,当带参数的列(例如 Decimal(8))后面存在末尾逗号时的解析问题。关闭 [#85586](https://github.com/ClickHouse/ClickHouse/issues/85586)。[#85653](https://github.com/ClickHouse/ClickHouse/pull/85653)([Nikolay Degterinsky](https://github.com/evillique))。 +* 为 `nested` 函数添加对内部数组的支持。 [#85719](https://github.com/ClickHouse/ClickHouse/pull/85719) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* 现在,所有由外部库执行的内存分配都会被 ClickHouse 的内存跟踪器感知并正确计入。这可能会导致某些查询的报告内存使用量看起来“增加”,或者出现 `MEMORY_LIMIT_EXCEEDED` 错误。 [#84082](https://github.com/ClickHouse/ClickHouse/pull/84082) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). + +#### Bug 修复(官方稳定版中对用户可见的错误行为) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* 此 PR 修复了通过 REST 目录查询 Iceberg 表时的元数据解析问题。... [#80562](https://github.com/ClickHouse/ClickHouse/pull/80562) ([Saurabh Kumar Ojha](https://github.com/saurabhojha)). +* 修复 DDLWorker 和 DatabaseReplicatedDDLWorker 中对 markReplicasActive 的处理。 [#81395](https://github.com/ClickHouse/ClickHouse/pull/81395) ([Tuan Pham Anh](https://github.com/tuanpach)). +* 修复在解析失败时对 Dynamic 列的回滚机制。[#82169](https://github.com/ClickHouse/ClickHouse/pull/82169)([Pavel Kruglov](https://github.com/Avogar))。 +* 当以全部为常量的输入调用函数 `trim` 时,现在会生成常量输出字符串。(缺陷 [#78796](https://github.com/ClickHouse/ClickHouse/issues/78796))。[#82900](https://github.com/ClickHouse/ClickHouse/pull/82900)([Robert Schulze](https://github.com/rschu1ze))。 +* 修复在启用 `optimize_syntax_fuse_functions` 时导致的重复子查询逻辑错误,关闭 [#75511](https://github.com/ClickHouse/ClickHouse/issues/75511)。[#83300](https://github.com/ClickHouse/ClickHouse/pull/83300)([Vladimir Cherkasov](https://github.com/vdimir))。 +* 修复了在启用查询条件缓存(`use_query_condition_cache` 设置)时,带有 `WHERE ... IN ()` 子句的查询返回结果不正确的问题。 [#83445](https://github.com/ClickHouse/ClickHouse/pull/83445) ([LB7666](https://github.com/acking-you))。 +* 此前,`gcs` 函数在使用时不需要任何权限。现在在使用时会检查是否具有 `GRANT READ ON S3` 权限。修复了 [#70567](https://github.com/ClickHouse/ClickHouse/issues/70567)。[#83503](https://github.com/ClickHouse/ClickHouse/pull/83503)([pufit](https://github.com/pufit))。 +* 在通过 INSERT SELECT 从 s3Cluster() 向副本 MergeTree 写入时跳过不可用节点。 [#83676](https://github.com/ClickHouse/ClickHouse/pull/83676) ([Igor Nikonov](https://github.com/devcrafter))。 +* 修复在用于实验性事务的 MergeTree 中,使用 `plain_rewritable`/`plain` 元数据类型时的追加写入行为,此前这些类型会被直接忽略。 [#83695](https://github.com/ClickHouse/ClickHouse/pull/83695) ([Tuan Pham Anh](https://github.com/tuanpach)). +* 对 Avro schema registry 的认证信息进行掩码处理,使其对用户不可见且不会出现在日志中。 [#83713](https://github.com/ClickHouse/ClickHouse/pull/83713) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* 修复了这样一个问题:当使用 `add_minmax_index_for_numeric_columns=1` 或 `add_minmax_index_for_string_columns=1` 创建 MergeTree 表,并在之后的 ALTER 操作中将该索引物化时,会导致 Replicated 数据库在新的副本上无法正确初始化。[#83751](https://github.com/ClickHouse/ClickHouse/pull/83751)([Nikolay Degterinsky](https://github.com/evillique))。 +* 修复了 Parquet 写入器为 Decimal 类型输出的统计信息(最小值/最大值)不正确的问题。 [#83754](https://github.com/ClickHouse/ClickHouse/pull/83754) ([Michael Kolupaev](https://github.com/al13n321)). +* 修复了在 `LowCardinality(Float32|Float64|BFloat16)` 类型中 NaN 值的排序问题。[#83786](https://github.com/ClickHouse/ClickHouse/pull/83786)([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 +* 从备份中恢复时,definer 用户可能未被备份,从而导致整个备份失效。为了解决这个问题,我们将还原时对目标表创建操作的权限检查延后,只在运行时执行该检查。 [#83818](https://github.com/ClickHouse/ClickHouse/pull/83818) ([pufit](https://github.com/pufit)). +* 修复在一次失败的 INSERT 后连接被遗留在断开状态,从而导致客户端崩溃的问题。 [#83842](https://github.com/ClickHouse/ClickHouse/pull/83842) ([Azat Khuzhin](https://github.com/azat)). +* 在启用 analyzer 的情况下,允许在 `remote` 表函数的 `view(...)` 参数中引用任何表。修复 [#78717](https://github.com/ClickHouse/ClickHouse/issues/78717)。修复 [#79377](https://github.com/ClickHouse/ClickHouse/issues/79377)。[#83844](https://github.com/ClickHouse/ClickHouse/pull/83844)([Dmitry Novik](https://github.com/novikd))。 +* jsoneachrowwithprogress 中的 onProgress 回调与最终处理过程同步执行。[#83879](https://github.com/ClickHouse/ClickHouse/pull/83879)([Sema Checherinda](https://github.com/CheSema))。 +* 修复了 [#81303](https://github.com/ClickHouse/ClickHouse/issues/81303)。[#83892](https://github.com/ClickHouse/ClickHouse/pull/83892)([Konstantin Vedernikov](https://github.com/scanhex12))。 +* 修复在同时使用 `const` 与非 `const` 参数时 `colorSRGBToOKLCH`/`colorOKLCHToSRGB` 的行为。[#83906](https://github.com/ClickHouse/ClickHouse/pull/83906)([Azat Khuzhin](https://github.com/azat))。 +* 修复在 RowBinary 格式中写入包含 NULL 值的 JSON 路径时的错误。 [#83923](https://github.com/ClickHouse/ClickHouse/pull/83923) ([Pavel Kruglov](https://github.com/Avogar)). +* 修复了从 `Date` 转换为 `DateTime64` 时,大于 2106-02-07 的日期值发生溢出的问题。[#83982](https://github.com/ClickHouse/ClickHouse/pull/83982) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 始终应用 `filesystem_prefetches_limit`(而不是仅在 `MergeTreePrefetchedReadPool` 中生效)。[#83999](https://github.com/ClickHouse/ClickHouse/pull/83999) ([Azat Khuzhin](https://github.com/azat)). +* 修复了一个罕见的错误:执行 `MATERIALIZE COLUMN` 查询时,可能会导致 `checksums.txt` 中出现意外文件记录,并最终导致分区片段被分离。 [#84007](https://github.com/ClickHouse/ClickHouse/pull/84007) ([alesapin](https://github.com/alesapin)). +* 修复在基于不等式条件执行 JOIN 时,当一列为 `LowCardinality` 类型而另一列为常量时出现的逻辑错误 `Expected single dictionary argument for function`。关闭 [#81779](https://github.com/ClickHouse/ClickHouse/issues/81779)。[#84019](https://github.com/ClickHouse/ClickHouse/pull/84019)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 修复在交互模式下启用语法高亮时 ClickHouse 客户端崩溃的问题。[#84025](https://github.com/ClickHouse/ClickHouse/pull/84025)([Bharat Nallan](https://github.com/bharatnc))。 +* 修复了在将查询条件缓存与递归 CTE 结合使用时导致查询结果错误的问题(issue [#81506](https://github.com/ClickHouse/ClickHouse/issues/81506))。[#84026](https://github.com/ClickHouse/ClickHouse/pull/84026)([zhongyuankai](https://github.com/zhongyuankai))。 +* 在周期性刷新分区片段时正确处理异常。 [#84083](https://github.com/ClickHouse/ClickHouse/pull/84083) ([Azat Khuzhin](https://github.com/azat)). +* 修复在等式两侧操作数类型不同或涉及常量时,将过滤条件错误合并到 JOIN 条件中的问题。修复了 [#83432](https://github.com/ClickHouse/ClickHouse/issues/83432)。[#84145](https://github.com/ClickHouse/ClickHouse/pull/84145)([Dmitry Novik](https://github.com/novikd))。 +* 修复在以下罕见情况下出现的 ClickHouse 崩溃:当表具有 PROJECTION、`lightweight_mutation_projection_mode = 'rebuild'`,并且用户执行轻量级删除操作且该操作会从表中的某个数据块删除其所有行时,会触发崩溃。 [#84158](https://github.com/ClickHouse/ClickHouse/pull/84158) ([alesapin](https://github.com/alesapin)). +* 修复由后台取消检查器线程引发的死锁。[#84203](https://github.com/ClickHouse/ClickHouse/pull/84203) ([Antonio Andelic](https://github.com/antonio2368)). +* 修复在分析无效 `WINDOW` 定义时出现的无限递归问题。修复了 [#83131](https://github.com/ClickHouse/ClickHouse/issues/83131)。[#84242](https://github.com/ClickHouse/ClickHouse/pull/84242)([Dmitry Novik](https://github.com/novikd))。 +* 修复了导致 Bech32 编码和解码结果不正确的缺陷。该缺陷之所以最初未被发现,是因为用于测试的在线算法实现也存在相同的问题。[#84257](https://github.com/ClickHouse/ClickHouse/pull/84257)([George Larionov](https://github.com/george-larionov))。 +* 修复了 `array()` 函数中空元组构造不正确的问题。从而修复了 [#84202](https://github.com/ClickHouse/ClickHouse/issues/84202)。[#84297](https://github.com/ClickHouse/ClickHouse/pull/84297)([Amos Bird](https://github.com/amosbird))。 +* 修复在使用并行副本且包含多个 INNER JOIN,后面跟随 RIGHT JOIN 的查询中出现的 `LOGICAL_ERROR`。对于此类查询请勿使用并行副本。[#84299](https://github.com/ClickHouse/ClickHouse/pull/84299)([Vladimir Cherkasov](https://github.com/vdimir))。 +* 此前,`set` 索引在检查数据粒度是否满足过滤条件时,没有考虑 `Nullable` 列(问题 [#75485](https://github.com/ClickHouse/ClickHouse/issues/75485))。[#84305](https://github.com/ClickHouse/ClickHouse/pull/84305)([Elmi Ahmadov](https://github.com/ahmadov))。 +* 现在 ClickHouse 可以从 Glue Catalog 中读取表类型以小写形式指定的表。[#84316](https://github.com/ClickHouse/ClickHouse/pull/84316) ([alesapin](https://github.com/alesapin))。 +* 在有 JOIN 或子查询时,不要尝试将表函数替换为对应的 cluster 版本。[#84335](https://github.com/ClickHouse/ClickHouse/pull/84335) ([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 修复 `IAccessStorage` 中日志记录器的使用。 [#84365](https://github.com/ClickHouse/ClickHouse/pull/84365) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* 修复了在对表的所有列执行轻量级更新时的逻辑错误。 [#84380](https://github.com/ClickHouse/ClickHouse/pull/84380) ([Anton Popov](https://github.com/CurtizJ)). +* 编解码器 `DoubleDelta` 现在只能应用于数值类型的列。具体来说,`FixedString` 列不再可以使用 `DoubleDelta` 进行压缩。(修复 [#80220](https://github.com/ClickHouse/ClickHouse/issues/80220))。[#84383](https://github.com/ClickHouse/ClickHouse/pull/84383)([Jimmy Aguilar Mena](https://github.com/Ergus))。 +* 在进行 `MinMax` 索引评估时,与 NaN 值的比较未使用正确的范围。[#84386](https://github.com/ClickHouse/ClickHouse/pull/84386) ([Elmi Ahmadov](https://github.com/ahmadov)). +* 修复在惰性物化时读取 Variant 列的错误。 [#84400](https://github.com/ClickHouse/ClickHouse/pull/84400) ([Pavel Kruglov](https://github.com/Avogar)). +* 将 `zoutofmemory` 归类为硬件错误,否则会抛出逻辑错误。参见 [https://github.com/clickhouse/clickhouse-core-incidents/issues/877](https://github.com/clickhouse/clickhouse-core-incidents/issues/877)。[#84420](https://github.com/ClickHouse/ClickHouse/pull/84420)([Han Fei](https://github.com/hanfei1991))。 +* 修复了当使用 `no_password` 创建的用户在服务器设置项 `allow_no_password` 被修改为 0 之后尝试登录时导致服务器崩溃的问题。[#84426](https://github.com/ClickHouse/ClickHouse/pull/84426) ([Shankar Iyer](https://github.com/shankar-iyer))。 +* 修复 Keeper 变更日志的乱序写入问题。此前,在变更日志存在进行中的写入操作时,回滚可能会并发修改目标文件,从而导致日志不一致,甚至造成数据丢失。[#84434](https://github.com/ClickHouse/ClickHouse/pull/84434) ([Antonio Andelic](https://github.com/antonio2368))。 +* 现在,如果从表中移除了所有生存时间 (TTL) 设置,MergeTree 将不会再执行任何与 TTL 相关的操作。 [#84441](https://github.com/ClickHouse/ClickHouse/pull/84441) ([alesapin](https://github.com/alesapin)). +* 之前允许使用带有 LIMIT 的并行分布式 INSERT SELECT,这是不正确的,因为会导致目标表中的数据重复。 [#84477](https://github.com/ClickHouse/ClickHouse/pull/84477) ([Igor Nikonov](https://github.com/devcrafter))。 +* 修复在数据湖中按虚拟列剪枝文件的问题。 [#84520](https://github.com/ClickHouse/ClickHouse/pull/84520) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 修复 Keeper 在使用 RocksDB 存储时的资源泄漏问题(迭代器未被销毁)。 [#84523](https://github.com/ClickHouse/ClickHouse/pull/84523) ([Azat Khuzhin](https://github.com/azat)). +* 修复 ALTER MODIFY ORDER BY 在排序键中未对 TTL 列进行验证的问题。现在,在 ALTER 操作中,如果在 ORDER BY 子句里使用 TTL 列,将会被正确拒绝,从而避免潜在的表损坏。 [#84536](https://github.com/ClickHouse/ClickHouse/pull/84536) ([xiaohuanlin](https://github.com/xiaohuanlin)). +* 将 25.5 之前版本中 `allow_experimental_delta_kernel_rs` 的值更改为 `false`,以保证兼容性。[#84587](https://github.com/ClickHouse/ClickHouse/pull/84587)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 不再从 manifest 文件读取 schema,而是为每个快照单独存储相关的 schema。对于每个数据文件,从其对应的快照推断出相应的 schema。此前对于 manifest 文件中状态为 existing 的条目,其行为不符合 Iceberg 规范。[#84588](https://github.com/ClickHouse/ClickHouse/pull/84588) ([Daniil Ivanik](https://github.com/divanik))。 +* 修复了 Keeper 中将 `rotate_log_storage_interval = 0` 时会导致 ClickHouse 崩溃的问题(相关 issue [#83975](https://github.com/ClickHouse/ClickHouse/issues/83975))。[#84637](https://github.com/ClickHouse/ClickHouse/pull/84637)([George Larionov](https://github.com/george-larionov))。 +* 修复 S3Queue 中 “Table is already registered” 的逻辑错误。修复了 [#84433](https://github.com/ClickHouse/ClickHouse/issues/84433) 中报告的问题。该问题在合并 [https://github.com/ClickHouse/ClickHouse/pull/83530](https://github.com/ClickHouse/ClickHouse/pull/83530) 后出现。[#84677](https://github.com/ClickHouse/ClickHouse/pull/84677)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 在 RefreshTask 中,从 'view' 获取 zookeeper 时对 'mutex' 加锁。 [#84699](https://github.com/ClickHouse/ClickHouse/pull/84699) ([Tuan Pham Anh](https://github.com/tuanpach))。 +* 修复在将惰性列与外部排序一起使用时出现的 `CORRUPTED_DATA` 错误。[#84738](https://github.com/ClickHouse/ClickHouse/pull/84738) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 +* 修复了在 `DeltaLake` 存储中使用 delta-kernel 时的列裁剪问题。关闭 [#84543](https://github.com/ClickHouse/ClickHouse/issues/84543)。[#84745](https://github.com/ClickHouse/ClickHouse/pull/84745)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 在 DeltaLake 存储中的 delta-kernel 中刷新凭证。 [#84751](https://github.com/ClickHouse/ClickHouse/pull/84751) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 修复在发生连接问题后会启动多余内部备份的情况。[#84755](https://github.com/ClickHouse/ClickHouse/pull/84755)([Vitaly Baranov](https://github.com/vitlibar))。 +* 修复了在远程数据源存在延迟时执行查询,可能导致向量越界的问题。[#84820](https://github.com/ClickHouse/ClickHouse/pull/84820)([George Larionov](https://github.com/george-larionov))。 +* `ngram` 和 `no_op` tokenizer 在处理空输入 token 时,不再导致实验性文本索引崩溃。[#84849](https://github.com/ClickHouse/ClickHouse/pull/84849) ([Robert Schulze](https://github.com/rschu1ze)). +* 修复了在使用 `ReplacingMergeTree` 和 `CollapsingMergeTree` 引擎的表上执行轻量级更新时出现的问题。[#84851](https://github.com/ClickHouse/ClickHouse/pull/84851) ([Anton Popov](https://github.com/CurtizJ)). +* 对使用 object queue 引擎的表,将所有设置正确存储在表元数据中。 [#84860](https://github.com/ClickHouse/ClickHouse/pull/84860) ([Antonio Andelic](https://github.com/antonio2368)). +* 修复 Keeper 返回的 watch 总数。 [#84890](https://github.com/ClickHouse/ClickHouse/pull/84890) ([Antonio Andelic](https://github.com/antonio2368)). +* 修复了在版本低于 25.7 的服务器上创建的 `ReplicatedMergeTree` 引擎表的轻量级更新问题。 [#84933](https://github.com/ClickHouse/ClickHouse/pull/84933) ([Anton Popov](https://github.com/CurtizJ)). +* 修复了在执行 `ALTER TABLE ... REPLACE PARTITION` 查询后,针对使用非复制 `MergeTree` 引擎的表执行轻量级更新时的问题。[#84941](https://github.com/ClickHouse/ClickHouse/pull/84941) ([Anton Popov](https://github.com/CurtizJ))。 +* 修复了布尔字面量列名的生成逻辑,使其使用 "true"/"false" 而不是 "1"/"0",以避免在查询中布尔字面量与整数字面量之间的列名冲突。 [#84945](https://github.com/ClickHouse/ClickHouse/pull/84945) ([xiaohuanlin](https://github.com/xiaohuanlin)). +* 修复由后台调度池和执行器导致的内存跟踪偏差。[#84946](https://github.com/ClickHouse/ClickHouse/pull/84946) ([Azat Khuzhin](https://github.com/azat))。 +* 修复 Merge 表引擎中潜在的排序不准确问题。[#85025](https://github.com/ClickHouse/ClickHouse/pull/85025)([Xiaozhe Yu](https://github.com/wudidapaopao))。 +* 补全 DiskEncrypted 缺失的 API 实现。 [#85028](https://github.com/ClickHouse/ClickHouse/pull/85028) ([Azat Khuzhin](https://github.com/azat)). +* 在分布式上下文中使用关联子查询时添加检查,以避免崩溃。修复了 [#82205](https://github.com/ClickHouse/ClickHouse/issues/82205)。[#85030](https://github.com/ClickHouse/ClickHouse/pull/85030)([Dmitry Novik](https://github.com/novikd))。 +* 现在 Iceberg 不会再在多次 `SELECT` 查询之间尝试缓存相关的快照版本,而是始终在每次查询时按实际情况解析应使用的快照。之前尝试缓存 Iceberg 快照会在使用带时间旅行功能的 Iceberg 表时导致问题。[#85038](https://github.com/ClickHouse/ClickHouse/pull/85038) ([Daniil Ivanik](https://github.com/divanik))。 +* 修复了 `AzureIteratorAsync` 中的 double-free 错误。[#85064](https://github.com/ClickHouse/ClickHouse/pull/85064) ([Nikita Taranov](https://github.com/nickitat)). +* 改进在尝试创建使用 JWT 标识的用户时的错误消息。 [#85072](https://github.com/ClickHouse/ClickHouse/pull/85072) ([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 修复了 `ReplicatedMergeTree` 中补丁分区片段的清理问题。此前,轻量级更新的结果可能会在一段时间内在副本上不可见,直到将这些补丁分区片段实体化的已合并或已变更分区片段从另一个副本下载完成。[#85121](https://github.com/ClickHouse/ClickHouse/pull/85121) ([Anton Popov](https://github.com/CurtizJ))。 +* 修复在类型不一致时 `mv` 中出现的 `illegal_type_of_argument` 错误。[#85135](https://github.com/ClickHouse/ClickHouse/pull/85135) ([Sema Checherinda](https://github.com/CheSema)). +* 修复 delta-kernel 实现中的段错误(segfault)。 [#85160](https://github.com/ClickHouse/ClickHouse/pull/85160) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 修复了在移动元数据文件耗时较长时恢复副本数据库的问题。[#85177](https://github.com/ClickHouse/ClickHouse/pull/85177)([Tuan Pham Anh](https://github.com/tuanpach))。 +* 修复在 `additional_table_filters expression` 设置中,`IN (subquery)` 中出现的 `Not-ready Set` 问题。[#85210](https://github.com/ClickHouse/ClickHouse/pull/85210) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 在执行 SYSTEM DROP REPLICA 查询时去除不必要的 `getStatus()` 调用。修复了当在后台删除表时会抛出 `Shutdown for storage is called` 异常的问题。[#85220](https://github.com/ClickHouse/ClickHouse/pull/85220)([Nikolay Degterinsky](https://github.com/evillique))。 +* 修复 `DeltaLake` 引擎 delta-kernel 实现中的竞态条件问题。 [#85221](https://github.com/ClickHouse/ClickHouse/pull/85221) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 修复在 `DeltaLake` 引擎中禁用 delta-kernel 后读取分区数据的问题。该问题在 25.7 中被引入([https://github.com/ClickHouse/ClickHouse/pull/81136](https://github.com/ClickHouse/ClickHouse/pull/81136))。[#85223](https://github.com/ClickHouse/ClickHouse/pull/85223)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 在 `CREATE OR REPLACE` 和 `RENAME` 查询中补充了此前缺失的表名长度检查。 [#85326](https://github.com/ClickHouse/ClickHouse/pull/85326) ([Michael Kolupaev](https://github.com/al13n321)). +* 修复在 Replicated 数据库的新副本上创建 RMV 时,`DEFINER` 被删除导致的问题。[#85327](https://github.com/ClickHouse/ClickHouse/pull/85327)([Nikolay Degterinsky](https://github.com/evillique))。 +* 修复 Iceberg 复杂类型的写入问题。[#85330](https://github.com/ClickHouse/ClickHouse/pull/85330)([Konstantin Vedernikov](https://github.com/scanhex12))。 +* 对于复杂类型,不支持写入上下界。 [#85332](https://github.com/ClickHouse/ClickHouse/pull/85332) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* 修复在通过分布式表或远程表函数从对象存储函数读取数据时出现的逻辑错误。修复:[#84658](https://github.com/ClickHouse/ClickHouse/issues/84658)、[#85173](https://github.com/ClickHouse/ClickHouse/issues/85173)、[#52022](https://github.com/ClickHouse/ClickHouse/issues/52022)。[#85359](https://github.com/ClickHouse/ClickHouse/pull/85359)([alesapin](https://github.com/alesapin))。 +* 修复包含损坏的 PROJECTION 的分区片段的备份。 [#85362](https://github.com/ClickHouse/ClickHouse/pull/85362) ([Antonio Andelic](https://github.com/antonio2368)). +* 在其稳定之前,禁止在 PROJECTION 中使用 `_part_offset` 列。 [#85372](https://github.com/ClickHouse/ClickHouse/pull/85372) ([Sema Checherinda](https://github.com/CheSema)). +* 修复在对 JSON 数据执行 ALTER UPDATE 时发生的崩溃和数据损坏问题。 [#85383](https://github.com/ClickHouse/ClickHouse/pull/85383) ([Pavel Kruglov](https://github.com/Avogar)). +* 使用并行副本且启用了反向顺序读取优化的查询可能会返回不正确的结果。[#85406](https://github.com/ClickHouse/ClickHouse/pull/85406) ([Igor Nikonov](https://github.com/devcrafter)). +* 修复在字符串反序列化过程中发生 MEMORY_LIMIT_EXCEEDED 时可能导致的未定义行为(崩溃)。 [#85440](https://github.com/ClickHouse/ClickHouse/pull/85440) ([Azat Khuzhin](https://github.com/azat)). +* 修复指标 KafkaAssignedPartitions 和 KafkaConsumersWithAssignment 的错误。 [#85494](https://github.com/ClickHouse/ClickHouse/pull/85494) ([Ilya Golshtein](https://github.com/ilejn)). +* 修复了在使用 PREWHERE(显式或自动)时已处理字节统计值被低估的问题。[#85495](https://github.com/ClickHouse/ClickHouse/pull/85495)([Michael Kolupaev](https://github.com/al13n321))。 +* 修复 S3 请求速率减慢的提前返回条件:当由于可重试错误导致所有线程暂停时,现在只需 `s3_slow_all_threads_after_network_error` 或 `backup_slow_all_threads_after_retryable_s3_error` 中任意一个为 true 即可启用减速行为,而不再要求两者同时为 true。 [#85505](https://github.com/ClickHouse/ClickHouse/pull/85505) ([Julia Kartseva](https://github.com/jkartseva))。 +* 此 PR 修复了通过 REST catalog 查询 Iceberg 表时的元数据解析问题。... [#85531](https://github.com/ClickHouse/ClickHouse/pull/85531) ([Saurabh Kumar Ojha](https://github.com/saurabhojha)). +* 修复了在异步插入时更改 `log_comment` 或 `insert_deduplication_token` 设置时偶发的崩溃问题。 [#85540](https://github.com/ClickHouse/ClickHouse/pull/85540) ([Anton Popov](https://github.com/CurtizJ)). +* 在通过 HTTP 使用 multipart/form-data 时,像 date_time_input_format 这样的参数会被忽略。[#85570](https://github.com/ClickHouse/ClickHouse/pull/85570) ([Sema Checherinda](https://github.com/CheSema)). +* 修复 icebergS3Cluster 和 icebergAzureCluster 表函数中的机密信息屏蔽。 [#85658](https://github.com/ClickHouse/ClickHouse/pull/85658) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* 修复在将 JSON 数值转换为 Decimal 类型时 `JSONExtract` 中的精度丢失问题。现在 JSON 数值能够保留其精确的小数表示,避免浮点数舍入误差。[#85665](https://github.com/ClickHouse/ClickHouse/pull/85665) ([ssive7b](https://github.com/ssive7b))。 +* 修复了在同一条 `ALTER` 语句中先执行 `DROP COLUMN` 再使用 `COMMENT COLUMN IF EXISTS` 时出现的 `LOGICAL_ERROR`。现在,当列已在同一语句中被删除时,`IF EXISTS` 子句会正确跳过注释操作。[#85688](https://github.com/ClickHouse/ClickHouse/pull/85688)([xiaohuanlin](https://github.com/xiaohuanlin))。 +* 修复 Delta Lake 从缓存读取计数时的问题。 [#85704](https://github.com/ClickHouse/ClickHouse/pull/85704) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 修复在处理大字符串时 CoalescingMergeTree 出现的段错误。关闭 [#84582](https://github.com/ClickHouse/ClickHouse/issues/84582)。[#85709](https://github.com/ClickHouse/ClickHouse/pull/85709)([Konstantin Vedernikov](https://github.com/scanhex12))。 +* 在 Iceberg 写入操作中更新元数据时间戳。[#85711](https://github.com/ClickHouse/ClickHouse/pull/85711) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* 将 `distributed_depth` 用作 *Cluster* 函数的标志是不正确的,可能会导致数据重复;请改为使用 `client_info.collaborate_with_initiator`。 [#85734](https://github.com/ClickHouse/ClickHouse/pull/85734) ([Konstantin Bogdanov](https://github.com/thevar1able))。 +* Spark 无法读取位置删除文件。[#85762](https://github.com/ClickHouse/ClickHouse/pull/85762)([Konstantin Vedernikov](https://github.com/scanhex12))。 +* 修复 `send_logs_source_regexp`(在 [#85105](https://github.com/ClickHouse/ClickHouse/issues/85105) 中的异步日志重构之后)。[#85797](https://github.com/ClickHouse/ClickHouse/pull/85797)([Azat Khuzhin](https://github.com/azat))。 +* 修复在出现 MEMORY_LIMIT_EXCEEDED 错误时,使用 update_field 的字典可能出现的不一致。[#85807](https://github.com/ClickHouse/ClickHouse/pull/85807) ([Azat Khuzhin](https://github.com/azat))。 +* 为目标表为 `Distributed` 的并行分布式 `INSERT SELECT` 支持来自 `WITH` 子句的全局常量。此前,该查询可能会抛出 `Unknown expression identifier` 错误。[#85811](https://github.com/ClickHouse/ClickHouse/pull/85811) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 对 `deltaLakeAzure`、`deltaLakeCluster`、`icebergS3Cluster` 和 `icebergAzureCluster` 的凭证进行脱敏处理。 [#85889](https://github.com/ClickHouse/ClickHouse/pull/85889) ([Julian Maicher](https://github.com/jmaicher)). +* 修复在使用 `DatabaseReplicated` 时尝试执行 `CREATE ... AS (SELECT * FROM s3Cluster(...))` 所导致的逻辑错误。[#85904](https://github.com/ClickHouse/ClickHouse/pull/85904)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 修复了由 `url()` 表函数发起的 HTTP 请求在访问非标准端口时未在 Host 头部中正确包含端口号的问题。这解决了在使用带有 S3 兼容服务(例如运行在自定义端口上的 MinIO)的预签名 URL 时出现的身份验证失败情况,这在开发环境中很常见。(修复 [#85898](https://github.com/ClickHouse/ClickHouse/issues/85898))。 [#85921](https://github.com/ClickHouse/ClickHouse/pull/85921)([Tom Quist](https://github.com/tomquist))。 +* 现在,针对非 Delta 表,Unity Catalog 将忽略包含异常数据类型的 schema。修复了 [#85699](https://github.com/ClickHouse/ClickHouse/issues/85699)。[#85950](https://github.com/ClickHouse/ClickHouse/pull/85950)([alesapin](https://github.com/alesapin))。 +* 修复 Iceberg 中字段的可空设置。 [#85977](https://github.com/ClickHouse/ClickHouse/pull/85977) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* 修复了 `Replicated` 数据库恢复中的一个问题:如果表名包含 `%` 符号,在恢复过程中可能会使用不同的名称重新创建该表。[#85987](https://github.com/ClickHouse/ClickHouse/pull/85987) ([Alexander Tokmakov](https://github.com/tavplubix))。 +* 修复在还原空的 `Memory` 表时出现 `BACKUP_ENTRY_NOT_FOUND` 错误而导致备份恢复失败的问题。[#86012](https://github.com/ClickHouse/ClickHouse/pull/86012)([Julia Kartseva](https://github.com/jkartseva))。 +* 在对分布式表执行 ALTER 时增加对 sharding_key 的检查。此前,不正确的 ALTER 会破坏表定义并需要重启服务器。[#86015](https://github.com/ClickHouse/ClickHouse/pull/86015) ([Nikolay Degterinsky](https://github.com/evillique))。 +* 不再创建空的 Iceberg 删除文件。 [#86061](https://github.com/ClickHouse/ClickHouse/pull/86061) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* 修复由于 setting 值过大导致 S3Queue 表和副本重启失败的问题。 [#86074](https://github.com/ClickHouse/ClickHouse/pull/86074) ([Nikolay Degterinsky](https://github.com/evillique))。 + +#### 构建/测试/打包改进 {#buildtestingpackaging-improvement} + +* 默认在与 S3 相关的测试中使用加密磁盘。 [#59898](https://github.com/ClickHouse/ClickHouse/pull/59898) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* 在集成测试中使用 `clickhouse` 二进制文件以获取未剥离的调试符号。 [#83779](https://github.com/ClickHouse/ClickHouse/pull/83779) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* 将内部 libxml2 从 2.14.4 升级到 2.14.5。 [#84230](https://github.com/ClickHouse/ClickHouse/pull/84230) ([Robert Schulze](https://github.com/rschu1ze)). +* 将内部 curl 从 8.14.0 升级到 8.15.0。 [#84231](https://github.com/ClickHouse/ClickHouse/pull/84231) ([Robert Schulze](https://github.com/rschu1ze)). +* 现在在 CI 中为缓存使用更少的内存,并具有更完善的缓存淘汰测试。 [#84676](https://github.com/ClickHouse/ClickHouse/pull/84676) ([alesapin](https://github.com/alesapin)). + +### ClickHouse 25.7 发行版,2025-07-24 {#257} + +#### 向后不兼容的变更 {#backward-incompatible-change} + +* 对 `extractKeyValuePairs` 函数的更改:引入一个新的参数 `unexpected_quoting_character_strategy`,用于控制在读取未加引号的键或值时,意外遇到 `quoting_character` 时的处理方式。该参数的取值可以是:`invalid`、`accept` 或 `promote`。`invalid` 会丢弃该键并回到等待键状态;`accept` 会将其视为键的一部分;`promote` 会丢弃前一个字符并开始将其解析为带引号的键。此外,在解析完带引号的值之后,仅在找到键值对分隔符时才解析下一个键。[#80657](https://github.com/ClickHouse/ClickHouse/pull/80657) ([Arthur Passos](https://github.com/arthurpassos))。 +* 在 `countMatches` 函数中支持零长度匹配。希望保留旧行为的用户可以启用设置 `count_matches_stop_at_empty_match`。[#81676](https://github.com/ClickHouse/ClickHouse/pull/81676) ([Elmi Ahmadov](https://github.com/ahmadov))。 +* 在生成 BACKUP 时,对本地(`max_local_read_bandwidth_for_server` 和 `max_local_write_bandwidth_for_server`)和远程(`max_remote_read_network_bandwidth_for_server` 和 `max_remote_write_network_bandwidth_for_server`)操作使用服务器范围的限流器,作为对其专用服务器设置(`max_backup_bandwidth_for_server`、`max_mutations_bandwidth_for_server` 和 `max_merges_bandwidth_for_server`)的补充。[#81753](https://github.com/ClickHouse/ClickHouse/pull/81753) ([Sergei Trifonov](https://github.com/serxa))。 +* 禁止创建没有可写入列的表。[#81835](https://github.com/ClickHouse/ClickHouse/pull/81835) ([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 +* 在归档内部按文件对集群函数进行并行化。在先前的版本中,整个归档(如 zip、tar 或 7z)是一个工作单元。新增设置 `cluster_function_process_archive_on_multiple_nodes`,默认值为 `true`。如果设为 `true`,可提升在集群函数中处理归档时的性能。如果在早期版本中使用带归档的集群函数,为了兼容性以及避免在升级到 25.7+ 期间出现错误,应将其设为 `false`。[#82355](https://github.com/ClickHouse/ClickHouse/pull/82355) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* `SYSTEM RESTART REPLICAS` 查询会导致 Lazy 数据库中的表被唤醒,即使对该数据库没有访问权限,而且可能在这些表被并发删除时发生。注意:现在 `SYSTEM RESTART REPLICAS` 只会重启那些你在其中拥有 `SHOW TABLES` 权限的数据库里的副本,这是一种更自然的行为。[#83321](https://github.com/ClickHouse/ClickHouse/pull/83321) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 + +#### 新功能 {#new-feature} + +* 为 `MergeTree` 系列表新增了轻量级更新支持。轻量级更新可以通过以下新语法使用:`UPDATE SET col1 = val1, col2 = val2, ... WHERE `。通过轻量级更新实现了轻量级删除,可通过设置 `lightweight_delete_mode = 'lightweight_update'` 启用。[#82004](https://github.com/ClickHouse/ClickHouse/pull/82004) ([Anton Popov](https://github.com/CurtizJ))。 +* 在 Iceberg 的 schema 演进中增加对复杂类型的支持。[#73714](https://github.com/ClickHouse/ClickHouse/pull/73714) ([Konstantin Vedernikov](https://github.com/scanhex12))。 +* 新增对 Iceberg 表执行 INSERT 的支持。[#82692](https://github.com/ClickHouse/ClickHouse/pull/82692) ([Konstantin Vedernikov](https://github.com/scanhex12))。 +* 基于字段 ID 读取 Iceberg 数据文件。这样可以提高与 Iceberg 的兼容性:可以在元数据中重命名字段,同时将其映射到底层 Parquet 文件中的不同名称。修复了 [#83065](https://github.com/ClickHouse/ClickHouse/issues/83065)。[#83653](https://github.com/ClickHouse/ClickHouse/pull/83653)([Konstantin Vedernikov](https://github.com/scanhex12))。 +* ClickHouse 现已支持用于 Iceberg 的压缩 `metadata.json` 文件。修复了 [#70874](https://github.com/ClickHouse/ClickHouse/issues/70874)。[#81451](https://github.com/ClickHouse/ClickHouse/pull/81451)([alesapin](https://github.com/alesapin))。 +* 在 Glue catalog 中支持 `TimestampTZ`,修复了 [#81654](https://github.com/ClickHouse/ClickHouse/issues/81654)。[#83132](https://github.com/ClickHouse/ClickHouse/pull/83132)([Konstantin Vedernikov](https://github.com/scanhex12))。 +* 在 ClickHouse 客户端中新增 AI 驱动的 SQL 生成能力。现在,只需在查询前加上前缀 `??`,即可根据自然语言描述生成 SQL 查询。支持 OpenAI 和 Anthropic 服务提供商,并具备自动 schema 发现能力。[#83314](https://github.com/ClickHouse/ClickHouse/pull/83314) ([Kaushik Iska](https://github.com/iskakaushik))。 +* 新增一个用于将 Geo 类型写入 WKB 格式的函数。 [#82935](https://github.com/ClickHouse/ClickHouse/pull/82935) ([Konstantin Vedernikov](https://github.com/scanhex12))。 +* 为数据源引入了两种新的访问类型:`READ` 和 `WRITE`,并弃用了之前所有与数据源相关的访问类型。原先为 `GRANT S3 ON *.* TO user`,现在改为:`GRANT READ, WRITE ON S3 TO user`。这也允许对数据源分别授予 `READ` 和 `WRITE` 权限,例如:`GRANT READ ON * TO user`、`GRANT WRITE ON S3 TO user`。该特性由设置 `access_control_improvements.enable_read_write_grants` 控制,默认禁用。[#73659](https://github.com/ClickHouse/ClickHouse/pull/73659) ([pufit](https://github.com/pufit))。 +* NumericIndexedVector:一种新的向量数据结构,基于按位切片(bit-sliced)的 Roaring bitmap 压缩,并提供 20 多个用于构建、分析和逐点算术运算的函数。在处理稀疏数据时,可减少存储占用并加速 `JOIN`、过滤和聚合操作。实现了 [#70582](https://github.com/ClickHouse/ClickHouse/issues/70582) 以及 T. Xiong 和 Y. Wang 在 VLDB 2024 上发表的 [“Large-Scale Metric Computation in Online Controlled Experiment Platform” 论文](https://arxiv.org/abs/2405.08411)。[#74193](https://github.com/ClickHouse/ClickHouse/pull/74193)([FriendLey](https://github.com/FriendLey))。 +* 现在支持工作负载配置项 `max_waiting_queries`。它可用于限制查询队列的长度。如果达到该限制,后续的所有查询都会以 `SERVER_OVERLOADED` 错误被终止。[#81250](https://github.com/ClickHouse/ClickHouse/pull/81250) ([Oleg Doronin](https://github.com/dorooleg))。 +* 新增财务函数:`financialInternalRateOfReturnExtended` (`XIRR`)、`financialInternalRateOfReturn` (`IRR`)、`financialNetPresentValueExtended` (`XNPV`)、`financialNetPresentValue` (`NPV`)。[#81599](https://github.com/ClickHouse/ClickHouse/pull/81599)([Joanna Hulboj](https://github.com/jh0x))。 +* 新增地理空间函数 `polygonsIntersectCartesian` 和 `polygonsIntersectSpherical`,用于检查两个多边形是否相交。 [#81882](https://github.com/ClickHouse/ClickHouse/pull/81882) ([Paul Lamb](https://github.com/plamb)). +* 在 MergeTree 系列表中支持 `_part_granule_offset` 虚拟列。该列表示每一行在其数据 part 中所属 granule/mark 的从 0 开始的索引。此改动解决了 [#79572](https://github.com/ClickHouse/ClickHouse/issues/79572)。[#82341](https://github.com/ClickHouse/ClickHouse/pull/82341) ([Amos Bird](https://github.com/amosbird)). [#82341](https://github.com/ClickHouse/ClickHouse/pull/82341) ([Amos Bird](https://github.com/amosbird)) +* 新增 SQL 函数 `colorSRGBToOkLCH` 和 `colorOkLCHToSRGB`,用于在 sRGB 和 OkLCH 颜色空间之间进行颜色转换。[#83679](https://github.com/ClickHouse/ClickHouse/pull/83679) ([Fgrtue](https://github.com/Fgrtue))。 +* 允许在 `CREATE USER` 查询中将用户名设为参数。 [#81387](https://github.com/ClickHouse/ClickHouse/pull/81387) ([Diskein](https://github.com/Diskein)). +* `system.formats` 表现在包含有关各格式的更多信息,例如 HTTP 内容类型、是否支持 schema 推断等。[#81505](https://github.com/ClickHouse/ClickHouse/pull/81505)([Alexey Milovidov](https://github.com/alexey-milovidov))。 + +#### 实验特性 {#experimental-feature} + +* 新增函数 `searchAny` 和 `searchAll`,作为搜索文本索引的通用工具。[#80641](https://github.com/ClickHouse/ClickHouse/pull/80641) ([Elmi Ahmadov](https://github.com/ahmadov))。 +* 文本索引现在支持新的 `split` 分词器。[#81752](https://github.com/ClickHouse/ClickHouse/pull/81752) ([Elmi Ahmadov](https://github.com/ahmadov))。 +* 将 `text` 索引的默认索引粒度调整为 64。这样可以提升内部基准测试中典型测试查询的预期性能。[#82162](https://github.com/ClickHouse/ClickHouse/pull/82162) ([Jimmy Aguilar Mena](https://github.com/Ergus))。 +* 256 位位图按顺序存储状态的输出标签,但输出状态在磁盘上是按照它们在哈希表中出现的顺序保存。因此,从磁盘读取时,某个标签可能会指向错误的下一个状态。[#82783](https://github.com/ClickHouse/ClickHouse/pull/82783) ([Elmi Ahmadov](https://github.com/ahmadov))。 +* 为文本索引中的 FST 树 blob 启用 zstd 压缩。[#83093](https://github.com/ClickHouse/ClickHouse/pull/83093) ([Elmi Ahmadov](https://github.com/ahmadov))。 +* 将向量相似度索引提升到 beta 阶段。引入了别名 SETTING `enable_vector_similarity_index`,必须启用该 SETTING 才能使用向量相似度索引。[#83459](https://github.com/ClickHouse/ClickHouse/pull/83459) ([Robert Schulze](https://github.com/rschu1ze))。 +* 移除了与实验性零拷贝复制相关的实验性 `send_metadata` 逻辑。它从未被实际使用,也没有人维护这段代码。由于甚至没有相关的测试,很有可能它早就已经失效。[#82508](https://github.com/ClickHouse/ClickHouse/pull/82508) ([alesapin](https://github.com/alesapin))。 +* 将 `StorageKafka2` 集成到 `system.kafka_consumers` 中。[#82652](https://github.com/ClickHouse/ClickHouse/pull/82652) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 +* 基于统计信息估算复杂的 CNF/DNF 表达式,例如 `(a < 1 and a > 0) or b = 3`。[#82663](https://github.com/ClickHouse/ClickHouse/pull/82663) ([Han Fei](https://github.com/hanfei1991))。 + +#### 性能优化 {#performance-improvement} + +* 引入异步日志记录。当日志输出到慢速设备时,将不再阻塞查询。[#82516](https://github.com/ClickHouse/ClickHouse/pull/82516)([Raúl Marín](https://github.com/Algunenano))。限制队列中保留的条目数量上限。[#83214](https://github.com/ClickHouse/ClickHouse/pull/83214)([Raúl Marín](https://github.com/Algunenano))。 +* 默认启用并行分布式 `INSERT SELECT`,其工作模式为:在每个分片上独立执行 `INSERT SELECT`,详见 `parallel_distributed_insert_select` 设置。 [#83040](https://github.com/ClickHouse/ClickHouse/pull/83040) ([Igor Nikonov](https://github.com/devcrafter)). +* 当聚合查询只包含一个作用于非 `Nullable` 列的 `count()` 函数时,聚合逻辑会在哈希表探测过程中被完全内联。这样可以避免分配和维护任何聚合状态,从而显著降低内存占用和 CPU 开销。此更改部分解决了 [#81982](https://github.com/ClickHouse/ClickHouse/issues/81982)。[#82104](https://github.com/ClickHouse/ClickHouse/pull/82104)([Amos Bird](https://github.com/amosbird))。 +* 在仅有一个键列这一典型场景下,通过移除对哈希映射的额外遍历优化了 `HashJoin` 的性能;同时,当 `null_map` 和 `join_mask` 始终为 `true`/`false` 时,省略了对它们的检查。 [#82308](https://github.com/ClickHouse/ClickHouse/pull/82308) ([Nikita Taranov](https://github.com/nickitat))。 +* 对 `-If` 组合器进行了小幅优化。[#78454](https://github.com/ClickHouse/ClickHouse/pull/78454)([李扬](https://github.com/taiyang-li))。 +* 使用向量相似度索引的向量搜索查询,由于减少了存储读取次数和 CPU 占用,能够以更低的延迟完成。[#79103](https://github.com/ClickHouse/ClickHouse/pull/79103) ([Shankar Iyer](https://github.com/shankar-iyer)). +* 在 `filterPartsByQueryConditionCache` 中遵循 `merge_tree_min_{rows,bytes}_for_seek`,使其与其他按索引过滤的方法保持一致。[#80312](https://github.com/ClickHouse/ClickHouse/pull/80312) ([李扬](https://github.com/taiyang-li)). +* 将 `TOTALS` 步骤之后的 pipeline 改为多线程执行。 [#80331](https://github.com/ClickHouse/ClickHouse/pull/80331) ([UnamedRus](https://github.com/UnamedRus)). +* 修复 `Redis` 和 `KeeperMap` 存储的按键过滤问题。[#81833](https://github.com/ClickHouse/ClickHouse/pull/81833)([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 +* 添加新的设置项 `min_joined_block_size_rows`(类似于 `min_joined_block_size_bytes`,默认值为 65409),用于控制 JOIN 输入和输出数据块的最小块大小(以行数计,前提是 JOIN 算法支持)。较小的数据块会被合并。 [#81886](https://github.com/ClickHouse/ClickHouse/pull/81886) ([Nikita Taranov](https://github.com/nickitat))。 +* `ATTACH PARTITION` 不再会导致所有缓存被清空。[#82377](https://github.com/ClickHouse/ClickHouse/pull/82377) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 通过利用等价类移除冗余的 JOIN 操作,以优化针对关联子查询生成的执行计划。如果对于所有关联列都存在等价表达式,并且启用了 `query_plan_correlated_subqueries_use_substitution` 设置,则不会生成 `CROSS JOIN`。[#82435](https://github.com/ClickHouse/ClickHouse/pull/82435)([Dmitry Novik](https://github.com/novikd))。 +* 当相关子查询看起来是函数 `EXISTS` 的参数时,仅读取所需的列。 [#82443](https://github.com/ClickHouse/ClickHouse/pull/82443) ([Dmitry Novik](https://github.com/novikd)). +* 在查询分析阶段略微加快了查询树比较的速度。[#82617](https://github.com/ClickHouse/ClickHouse/pull/82617)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 为 `ProfileEvents` 的 `Counter` 添加内存对齐以减少伪共享。[#82697](https://github.com/ClickHouse/ClickHouse/pull/82697) ([Jiebin Sun](https://github.com/jiebinn))。 +* 在 [#82308](https://github.com/ClickHouse/ClickHouse/issues/82308) 中引入的对 `null_map` 和 `JoinMask` 的优化已应用于包含多个析取条件的 JOIN 场景。同时,对 `KnownRowsHolder` 数据结构也进行了优化。[#83041](https://github.com/ClickHouse/ClickHouse/pull/83041)([Nikita Taranov](https://github.com/nickitat))。 +* 使用普通的 `std::vector` 作为 JOIN 标志,以避免在每次访问这些标志时计算哈希值。[#83043](https://github.com/ClickHouse/ClickHouse/pull/83043) ([Nikita Taranov](https://github.com/nickitat))。 +* 当 `HashJoin` 使用 `lazy` 输出模式时,不要事先为结果列预分配内存。这样做效率不高,尤其是在匹配数量较少时。此外,在连接完成后我们可以准确获知匹配数量,从而能够更精确地进行预分配。 [#83304](https://github.com/ClickHouse/ClickHouse/pull/83304) ([Nikita Taranov](https://github.com/nickitat))。 +* 在构建 pipeline 时,尽量减少端口头信息中的内存拷贝。最初的 [PR](https://github.com/ClickHouse/ClickHouse/pull/70105) 由 [heymind](https://github.com/heymind) 提交。[#83381](https://github.com/ClickHouse/ClickHouse/pull/83381)([Raúl Marín](https://github.com/Algunenano))。 +* 在使用 RocksDB 存储时改进 clickhouse-keeper 的启动性能。 [#83390](https://github.com/ClickHouse/ClickHouse/pull/83390) ([Antonio Andelic](https://github.com/antonio2368))。 +* 在创建存储快照数据时尽量不持有锁,以减少在高并发负载下的锁竞争。[#83510](https://github.com/ClickHouse/ClickHouse/pull/83510) ([Duc Canh Le](https://github.com/canhld94))。 +* 通过在没有解析错误时复用序列化器,提升了 `ProtobufSingle` 输入格式的性能。 [#83613](https://github.com/ClickHouse/ClickHouse/pull/83613) ([Eduard Karacharov](https://github.com/korowa)). +* 改进管道构建性能,从而提升短查询性能。 [#83631](https://github.com/ClickHouse/ClickHouse/pull/83631) ([Raúl Marín](https://github.com/Algunenano)). +* 优化 `MergeTreeReadersChain::getSampleBlock`,以加速短查询。 [#83875](https://github.com/ClickHouse/ClickHouse/pull/83875) ([Raúl Marín](https://github.com/Algunenano)). +* 通过异步请求加速数据目录中的表列出操作。 [#81084](https://github.com/ClickHouse/ClickHouse/pull/81084) ([alesapin](https://github.com/alesapin)). +* 在启用 `s3_slow_all_threads_after_network_error` 配置时,为 S3 重试机制引入抖动。[#81849](https://github.com/ClickHouse/ClickHouse/pull/81849) ([zoomxi](https://github.com/zoomxi))。 + +#### 改进 {#improvement} + +* 使用多种颜色显示括号,以提升可读性。 [#82538](https://github.com/ClickHouse/ClickHouse/pull/82538) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* 在输入 LIKE/REGEXP 模式时高亮显示元字符。我们已经在 `clickhouse-format` 和 `clickhouse-client` 的回显中支持了这一点,现在在命令提示符中也实现了。[#82871](https://github.com/ClickHouse/ClickHouse/pull/82871)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `clickhouse-format` 和客户端 echo 输出中的高亮显示方式将与命令行提示符中的高亮相同。[#82874](https://github.com/ClickHouse/ClickHouse/pull/82874) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 现在允许将 `plain_rewritable` 磁盘用作数据库元数据磁盘。在 `plain_rewritable` 中实现了 `moveFile` 和 `replaceFile` 方法,从而支持将其用作数据库磁盘。[#79424](https://github.com/ClickHouse/ClickHouse/pull/79424) ([Tuan Pham Anh](https://github.com/tuanpach))。 +* 允许为 `PostgreSQL`、`MySQL` 和 `DataLake` 数据库创建备份。此类数据库的备份只会保存其定义,而不会包含其中的数据。[#79982](https://github.com/ClickHouse/ClickHouse/pull/79982) ([Nikolay Degterinsky](https://github.com/evillique))。 +* 将 `allow_experimental_join_condition` 设置标记为已废弃,因为相关功能现在始终处于启用状态。[#80566](https://github.com/ClickHouse/ClickHouse/pull/80566) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* 将压力相关指标添加到 ClickHouse 异步指标中。 [#80779](https://github.com/ClickHouse/ClickHouse/pull/80779) ([Xander Garbett](https://github.com/Garbett1)). +* 新增了用于跟踪标记缓存驱逐情况的指标 `MarkCacheEvictedBytes`、`MarkCacheEvictedMarks`、`MarkCacheEvictedFiles`。(issue [#60989](https://github.com/ClickHouse/ClickHouse/issues/60989))。[#80799](https://github.com/ClickHouse/ClickHouse/pull/80799)([Shivji Kumar Jha](https://github.com/shiv4289))。 +* 支持按照[规范](https://github.com/apache/parquet-format/blob/master/LogicalTypes.md#enum)的要求,将 Parquet 枚举类型写为字节数组。[#81090](https://github.com/ClickHouse/ClickHouse/pull/81090)([Arthur Passos](https://github.com/arthurpassos))。 +* 对 `DeltaLake` 表引擎的改进:`delta-kernel-rs` 提供了 `ExpressionVisitor` API,本 PR 对其进行了实现,并将其用于分区列表达式的转换(它将替换我们之前代码中使用、且在 `delta-kernel-rs` 中已废弃的旧方案)。未来,这个 `ExpressionVisitor` 还将支持基于统计信息的剪枝以及一些 Delta Lake 的专有特性。此外,此变更的另一目的在于支持在 `DeltaLakeCluster` 表引擎中进行分区剪枝(解析后的表达式结果——ActionsDAG——将被序列化,并与数据路径一起从发起方(initiator)发送出去,因为这类剪枝所需的信息只在数据文件列表的元信息中可用,而该列表仅由发起方生成,但剪枝必须在每个读取服务器上应用于数据)。[#81136](https://github.com/ClickHouse/ClickHouse/pull/81136)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 在为具名元组推导超类型时保留字段名。[#81345](https://github.com/ClickHouse/ClickHouse/pull/81345) ([lgbo](https://github.com/lgbo-ustc)). +* 在 StorageKafka2 中手动统计已消费的消息,以避免依赖先前提交的 offset。[#81662](https://github.com/ClickHouse/ClickHouse/pull/81662) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* 新增了 `clickhouse-keeper-utils`,这是一款用于管理和分析 ClickHouse Keeper 数据的全新命令行工具。该工具支持从快照和变更日志中转储状态、分析变更日志文件,以及提取特定日志范围。[#81677](https://github.com/ClickHouse/ClickHouse/pull/81677) ([Antonio Andelic](https://github.com/antonio2368))。 +* 全局和按用户的网络限流器永不重置,从而确保 `max_network_bandwidth_for_all_users` 和 `max_network_bandwidth_for_all_users` 限制值永远不会被超出。[#81729](https://github.com/ClickHouse/ClickHouse/pull/81729) ([Sergei Trifonov](https://github.com/serxa))。 +* 支持将数据写出为 GeoParquet 输出格式。 [#81784](https://github.com/ClickHouse/ClickHouse/pull/81784) ([Konstantin Vedernikov](https://github.com/scanhex12)). +* 如果某个 `RENAME COLUMN` 变更会重命名当前正受未完成数据变更影响的列,则禁止启动该变更。 [#81823](https://github.com/ClickHouse/ClickHouse/pull/81823) ([Mikhail Artemenko](https://github.com/Michicosun)). +* `Connection` 首部会在所有其他首部之后发送,此时已经可以确定是否需要保留连接。 [#81951](https://github.com/ClickHouse/ClickHouse/pull/81951) ([Sema Checherinda](https://github.com/CheSema))。 +* 根据 `listen_backlog`(默认 4096)调整 TCP 服务器队列长度(默认 64)。 [#82045](https://github.com/ClickHouse/ClickHouse/pull/82045) ([Azat Khuzhin](https://github.com/azat)). +* 新增支持在不重启服务器的情况下动态重新加载 `max_local_read_bandwidth_for_server` 和 `max_local_write_bandwidth_for_server`。 [#82083](https://github.com/ClickHouse/ClickHouse/pull/82083) ([Kai Zhu](https://github.com/nauu)). +* 新增支持通过 `TRUNCATE TABLE system.warnings` 清空 `system.warnings` 表中的所有警告。 [#82087](https://github.com/ClickHouse/ClickHouse/pull/82087) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* 修复数据湖集群函数中的分区裁剪问题。[#82131](https://github.com/ClickHouse/ClickHouse/pull/82131)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 修复在 `DeltaLakeCluster` 表函数中读取分区数据的问题。在此 PR 中,集群函数的协议版本已提升,允许从发起节点向各个副本发送额外信息。该额外信息包含 delta-kernel 转换表达式,用于解析分区列(以及未来的一些其他内容,例如生成列等)。 [#82132](https://github.com/ClickHouse/ClickHouse/pull/82132) ([Kseniia Sumarokova](https://github.com/kssenii)). +* `reinterpret` FUNCTION 现在支持转换为 `Array(T)`,其中 `T` 是固定长度数据类型(issue [#82621](https://github.com/ClickHouse/ClickHouse/issues/82621))。[#83399](https://github.com/ClickHouse/ClickHouse/pull/83399)([Shankar Iyer](https://github.com/shankar-iyer))。 +* 现在,Datalake 数据库抛出的异常信息更加清晰易懂。修复了 [#81211](https://github.com/ClickHouse/ClickHouse/issues/81211)。[#82304](https://github.com/ClickHouse/ClickHouse/pull/82304) ([alesapin](https://github.com/alesapin))。 +* 通过使 `HashJoin::needUsedFlagsForPerRightTableRow` 返回 false 来改进 CROSS JOIN。 [#82379](https://github.com/ClickHouse/ClickHouse/pull/82379) ([lgbo](https://github.com/lgbo-ustc))。 +* 允许以 Array of Tuples 的形式写入和读取 Map 类型列。 [#82408](https://github.com/ClickHouse/ClickHouse/pull/82408) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* 在 `system.licenses` 中列出 [Rust](https://clickhouse.com/blog/rust) crates 的许可证。 [#82440](https://github.com/ClickHouse/ClickHouse/pull/82440) ([Raúl Marín](https://github.com/Algunenano))。 +* 现在可以在 S3Queue 表引擎的 `keeper_path` 设置项中使用 `{uuid}` 等宏。[#82463](https://github.com/ClickHouse/ClickHouse/pull/82463)([Nikolay Degterinsky](https://github.com/evillique))。 +* Keeper 改进:在后台线程中在不同磁盘之间移动 changelog 文件。此前,将 changelog 移动到不同磁盘会全局阻塞 Keeper,直到移动完成。如果移动操作耗时较长(例如移动到 S3 磁盘),会导致性能下降。 [#82485](https://github.com/ClickHouse/ClickHouse/pull/82485) ([Antonio Andelic](https://github.com/antonio2368)). +* Keeper 改进:新增配置项 `keeper_server.cleanup_old_and_ignore_new_acl`。启用后,所有节点上的 ACL 都会被清除,同时新请求的 ACL 将被忽略。如果目标是从节点上彻底移除 ACL,则必须在生成新的快照之前始终保持该配置为启用状态。[#82496](https://github.com/ClickHouse/ClickHouse/pull/82496) ([Antonio Andelic](https://github.com/antonio2368))。 +* 新增了一个服务器设置 `s3queue_disable_streaming`,用于在使用 S3Queue 表引擎的表中禁用流式处理。该设置可在无需重启服务器的情况下更改。[#82515](https://github.com/ClickHouse/ClickHouse/pull/82515) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* 重构了文件系统缓存的动态扩缩容功能。增加了更多日志,便于排查和分析。 [#82556](https://github.com/ClickHouse/ClickHouse/pull/82556) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 当未提供配置文件时,`clickhouse-server` 也会像使用默认配置时一样监听 PostgreSQL 端口 9005。[#82633](https://github.com/ClickHouse/ClickHouse/pull/82633)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 在 `ReplicatedMergeTree::executeMetadataAlter` 中,我们获取 `StorageID`,并且在不获取 DDLGuard 的情况下尝试调用 `IDatabase::alterTable`。在这段时间内,理论上我们可能已经将相关表替换为另一张表,因此当我们获取表定义时,拿到的可能是错误的定义。为避免这种情况,我们在尝试调用 `IDatabase::alterTable` 时添加了单独的 UUID 匹配检查。[#82666](https://github.com/ClickHouse/ClickHouse/pull/82666)([Nikolay Degterinsky](https://github.com/evillique))。 +* 在附加使用只读远程磁盘的数据库时,需要手动将表 UUID 添加到 DatabaseCatalog 中。[#82670](https://github.com/ClickHouse/ClickHouse/pull/82670)([Tuan Pham Anh](https://github.com/tuanpach))。 +* 防止用户在 `NumericIndexedVector` 中使用 `nan` 和 `inf`。修复了 [#82239](https://github.com/ClickHouse/ClickHouse/issues/82239) 并做了一些额外改进。[#82681](https://github.com/ClickHouse/ClickHouse/pull/82681)([Raufs Dunamalijevs](https://github.com/rienath))。 +* 在 `X-ClickHouse-Progress` 和 `X-ClickHouse-Summary` HTTP 头部格式中不要省略零值。[#82727](https://github.com/ClickHouse/ClickHouse/pull/82727)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* Keeper 改进:支持为 world:anyone ACL 配置特定权限。[#82755](https://github.com/ClickHouse/ClickHouse/pull/82755) ([Antonio Andelic](https://github.com/antonio2368)). +* 不允许在 SummingMergeTree 中对显式指定为参与求和的列执行 `RENAME COLUMN` 或 `DROP COLUMN` 操作。修复了 [#81836](https://github.com/ClickHouse/ClickHouse/issues/81836)。[#82821](https://github.com/ClickHouse/ClickHouse/pull/82821)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 提升从 `Decimal` 到 `Float32` 转换的精度,实现从 `Decimal` 到 `BFloat16` 的转换。关闭 [#82660](https://github.com/ClickHouse/ClickHouse/issues/82660)。[#82823](https://github.com/ClickHouse/ClickHouse/pull/82823) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* Web UI 中的滚动条看起来会稍微更美观一些。 [#82869](https://github.com/ClickHouse/ClickHouse/pull/82869) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 启用嵌入式配置的 `clickhouse-server` 将通过返回 HTTP OPTIONS 响应来允许使用 Web UI。[#82870](https://github.com/ClickHouse/ClickHouse/pull/82870) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 在配置中新增了为路径指定额外 Keeper ACL 的支持。如果你想为某个特定路径添加额外 ACL,可以在配置项 `zookeeper.path_acls` 下进行定义。[#82898](https://github.com/ClickHouse/ClickHouse/pull/82898)([Antonio Andelic](https://github.com/antonio2368))。 +* 现在,变更快照将基于可见的分区片段快照构建。同时,快照中使用的变更计数器将根据所包含的变更重新计算。[#82945](https://github.com/ClickHouse/ClickHouse/pull/82945) ([Mikhail Artemenko](https://github.com/Michicosun))。 +* 在 Keeper 因软内存限制而拒绝写入时添加 ProfileEvent。 [#82963](https://github.com/ClickHouse/ClickHouse/pull/82963) ([Xander Garbett](https://github.com/Garbett1))。 +* 在 `system.s3queue_log` 中新增列 `commit_time` 和 `commit_id`。 [#83016](https://github.com/ClickHouse/ClickHouse/pull/83016) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 在某些情况下,我们需要为指标引入多个维度。例如,与其使用单一计数器,不如按错误码统计失败的 merge 或 mutation 次数。为此引入了 `system.dimensional_metrics`,它正是用来解决这个问题的,并新增了首个维度指标,名为 `failed_merges`。[#83030](https://github.com/ClickHouse/ClickHouse/pull/83030)([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* 在 clickhouse client 中对未知设置警告进行汇总,并以摘要形式写入日志。[#83042](https://github.com/ClickHouse/ClickHouse/pull/83042) ([Bharat Nallan](https://github.com/bharatnc))。 +* ClickHouse 客户端现在在发生连接错误时会报告本地端口。[#83050](https://github.com/ClickHouse/ClickHouse/pull/83050) ([Jianfei Hu](https://github.com/incfly))。 +* 在 `AsynchronousMetrics` 中略微改进了错误处理。如果 `/sys/block` 目录存在但不可访问,服务器将会在不监控块设备的情况下启动。关闭了 [#79229](https://github.com/ClickHouse/ClickHouse/issues/79229)。[#83115](https://github.com/ClickHouse/ClickHouse/pull/83115)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 将 SystemLogs 的关闭时机调整为在普通表之后、系统表之前(而不是在普通表之前)。 [#83134](https://github.com/ClickHouse/ClickHouse/pull/83134) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 为 `S3Queue` 的关闭过程添加日志记录。[#83163](https://github.com/ClickHouse/ClickHouse/pull/83163) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 支持将 `Time` 和 `Time64` 按 `MM:SS`、`M:SS`、`SS` 或 `S` 格式进行解析。 [#83299](https://github.com/ClickHouse/ClickHouse/pull/83299) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 当 `distributed_ddl_output_mode='*_only_active'` 时,将不再等待复制延迟大于 `max_replication_lag_to_enqueue` 的新建或已恢复副本。这样可以避免在某个新副本完成初始化或恢复后变为活跃状态、但在初始化期间累计了大量待处理复制日志时出现 `DDL task is not finished on some hosts`。另外,实现了 `SYSTEM SYNC DATABASE REPLICA STRICT` 查询,它会等待复制日志积压降到 `max_replication_lag_to_enqueue` 以下。[#83302](https://github.com/ClickHouse/ClickHouse/pull/83302) ([Alexander Tokmakov](https://github.com/tavplubix))。 +* 不要在异常消息中输出过长的表达式求值操作描述。关闭了 [#83164](https://github.com/ClickHouse/ClickHouse/issues/83164)。[#83350](https://github.com/ClickHouse/ClickHouse/pull/83350)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 添加对解析 part 的前缀和后缀的支持,并检查非常量列的覆盖情况。[#83377](https://github.com/ClickHouse/ClickHouse/pull/83377) ([Mikhail Artemenko](https://github.com/Michicosun))。 +* 在使用命名集合时统一 ODBC 和 JDBC 的参数名。[#83410](https://github.com/ClickHouse/ClickHouse/pull/83410)([Andrey Zvonov](https://github.com/zvonand))。 +* 在存储关闭过程中,`getStatus` 会抛出 `ErrorCodes::ABORTED` 异常。此前,这会导致 SELECT 查询失败。现在我们会捕获 `ErrorCodes::ABORTED` 异常并显式地忽略它们。[#83435](https://github.com/ClickHouse/ClickHouse/pull/83435) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* 为 `MergeParts` 条目的 part_log profile events 添加进程资源使用指标(例如 `UserTimeMicroseconds`、`SystemTimeMicroseconds`、`RealTimeMicroseconds`)。 [#83460](https://github.com/ClickHouse/ClickHouse/pull/83460) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* 在 Keeper 中默认启用 `create_if_not_exists`、`check_not_exists`、`remove_recursive` 功能开关,以支持新的请求类型。[#83488](https://github.com/ClickHouse/ClickHouse/pull/83488) ([Antonio Andelic](https://github.com/antonio2368))。 +* 在关闭服务器前,先停止 S3(Azure 等)Queue 流式处理,再关闭任意表。[#83530](https://github.com/ClickHouse/ClickHouse/pull/83530) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* 在 `JSON` 输入格式中支持将 `Date`/`Date32` 作为整数。[#83597](https://github.com/ClickHouse/ClickHouse/pull/83597) ([MikhailBurdukov](https://github.com/MikhailBurdukov))。 +* 改进了在某些情况下加载和添加 PROJECTION 时的异常消息的可读性。 [#83728](https://github.com/ClickHouse/ClickHouse/pull/83728) ([Robert Schulze](https://github.com/rschu1ze)). +* 为 `clickhouse-server` 新增一个配置选项,可跳过对二进制文件的校验和完整性检查。修复 [#83637](https://github.com/ClickHouse/ClickHouse/issues/83637)。[#83749](https://github.com/ClickHouse/ClickHouse/pull/83749)([Rafael Roquetto](https://github.com/rafaelroquetto))。 + +#### Bug 修复(官方稳定版中对用户可见的错误行为) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* 修复 `clickhouse-benchmark` 中 `--reconnect` 选项错误的默认值。它在 [#79465](https://github.com/ClickHouse/ClickHouse/issues/79465) 中被误改。[#82677](https://github.com/ClickHouse/ClickHouse/pull/82677)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 修复 `CREATE DICTIONARY` 语句格式不一致的问题。关闭 [#82105](https://github.com/ClickHouse/ClickHouse/issues/82105)。[#82829](https://github.com/ClickHouse/ClickHouse/pull/82829)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 修复当生存时间 (TTL) 包含 `materialize` 函数时的格式不一致问题。修复 [#82828](https://github.com/ClickHouse/ClickHouse/issues/82828)。 [#82831](https://github.com/ClickHouse/ClickHouse/pull/82831)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 修复在子查询中对 EXPLAIN AST 的格式化在包含 INTO OUTFILE 等输出选项时不一致的问题。关闭 [#82826](https://github.com/ClickHouse/ClickHouse/issues/82826)。[#82840](https://github.com/ClickHouse/ClickHouse/pull/82840)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 修复在不允许使用别名的上下文中出现的带别名括号表达式格式不一致的问题。修复 [#82836](https://github.com/ClickHouse/ClickHouse/issues/82836)。修复 [#82837](https://github.com/ClickHouse/ClickHouse/issues/82837)。[#82867](https://github.com/ClickHouse/ClickHouse/pull/82867)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 在将聚合函数状态与 IPv4 相乘时使用正确的错误码。修复 [#82817](https://github.com/ClickHouse/ClickHouse/issues/82817)。[#82818](https://github.com/ClickHouse/ClickHouse/pull/82818)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 修复文件系统缓存中的逻辑错误:"Having zero bytes but range is not finished"。 [#81868](https://github.com/ClickHouse/ClickHouse/pull/81868) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* 当生存时间 (TTL) 机制删除行时,重新计算 min-max 索引,以确保依赖该索引的算法(例如 `minmax_count_projection`)的正确性。修复了 [#77091](https://github.com/ClickHouse/ClickHouse/issues/77091)。[#77166](https://github.com/ClickHouse/ClickHouse/pull/77166)([Amos Bird](https://github.com/amosbird))。 +* 对于包含 `ORDER BY ... LIMIT BY ... LIMIT N` 组合的查询中,当 ORDER BY 以 PartialSorting 方式执行时,计数器 `rows_before_limit_at_least` 现在反映的是被 LIMIT 子句处理的行数,而不是在排序转换阶段处理的行数。[#78999](https://github.com/ClickHouse/ClickHouse/pull/78999)([Eduard Karacharov](https://github.com/korowa))。 +* 修复在使用包含交替分支且首个分支为非字面量的正则表达式,通过 token/ngram 索引进行过滤时可能出现的过度跳过 granule 的问题。 [#79373](https://github.com/ClickHouse/ClickHouse/pull/79373) ([Eduard Karacharov](https://github.com/korowa)). +* 修复了与 `<=>` 运算符和 Join 表引擎相关的逻辑错误,现在查询会返回正确的错误代码。[#80165](https://github.com/ClickHouse/ClickHouse/pull/80165) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* 修复在与 `remote` 函数族联用时 `loop` 函数发生崩溃的问题。确保在 `loop(remote(...))` 中正确应用 LIMIT 子句。[#80299](https://github.com/ClickHouse/ClickHouse/pull/80299)([Julia Kartseva](https://github.com/jkartseva))。 +* 修复了 `to_utc_timestamp` 和 `from_utc_timestamp` 函数在处理 Unix 纪元(1970-01-01)之前以及最大日期(2106-02-07 06:28:15)之后的日期时的错误行为。现在,这些函数会分别将值正确地限制在纪元起始时间和最大日期范围内。[#80498](https://github.com/ClickHouse/ClickHouse/pull/80498) ([Surya Kant Ranjan](https://github.com/iit2009046))。 +* 对于某些使用并行副本执行的查询,顺序读取优化可以在 initiator 端应用,但无法在远程节点上应用。这会导致并行副本协调器(在 initiator 上)与远程节点使用不同的读取模式,从而产生逻辑错误。[#80652](https://github.com/ClickHouse/ClickHouse/pull/80652)([Igor Nikonov](https://github.com/devcrafter))。 +* 修复在物化 PROJECTION 时,当列类型被更改为 Nullable 所导致的逻辑错误。[#80741](https://github.com/ClickHouse/ClickHouse/pull/80741)([Pavel Kruglov](https://github.com/Avogar))。 +* 修复在更新 TTL 时,`TTL GROUP BY` 中错误的 TTL 重新计算问题。[#81222](https://github.com/ClickHouse/ClickHouse/pull/81222)([Evgeniy Ulasik](https://github.com/H0uston))。 +* 修复了 Parquet 布隆过滤器错误地将类似 `WHERE function(key) IN (...)` 的条件当作 `WHERE key IN (...)` 进行处理的问题。 [#81255](https://github.com/ClickHouse/ClickHouse/pull/81255) ([Michael Kolupaev](https://github.com/al13n321)). +* 修复在合并过程中发生异常时,`Aggregator` 可能出现的崩溃问题。[#81450](https://github.com/ClickHouse/ClickHouse/pull/81450)([Nikita Taranov](https://github.com/nickitat))。 +* 修复了 `InterpreterInsertQuery::extendQueryLogElemImpl`,使其在需要时为数据库和表名添加反引号(例如,当名称包含 `-` 等特殊字符时)。[#81528](https://github.com/ClickHouse/ClickHouse/pull/81528)([Ilia Shvyrialkin](https://github.com/Harzu))。 +* 修复在 `transform_null_in=1` 且左侧参数为 NULL、子查询结果为非 Nullable 时 `IN` 的执行行为。 [#81584](https://github.com/ClickHouse/ClickHouse/pull/81584) ([Pavel Kruglov](https://github.com/Avogar)). +* 在从已有表读取数据时,不在 default/materialize 表达式执行期间校验实验性/可疑类型。[#81618](https://github.com/ClickHouse/ClickHouse/pull/81618) ([Pavel Kruglov](https://github.com/Avogar))。 +* 修复在合并期间,当在 TTL 表达式中使用字典时触发的 "Context has expired" 错误。[#81690](https://github.com/ClickHouse/ClickHouse/pull/81690) ([Azat Khuzhin](https://github.com/azat))。 +* 修复 `cast` 函数的单调性。[#81722](https://github.com/ClickHouse/ClickHouse/pull/81722)([zoomxi](https://github.com/zoomxi))。 +* 修复了在处理标量关联子查询时未读取所需列的问题。修复了 [#81716](https://github.com/ClickHouse/ClickHouse/issues/81716)。[#81805](https://github.com/ClickHouse/ClickHouse/pull/81805)([Dmitry Novik](https://github.com/novikd))。 +* 在早期版本中,服务器在处理对 `/js` 的请求时返回了过多的内容。此更改解决了 [#61890](https://github.com/ClickHouse/ClickHouse/issues/61890)。[#81895](https://github.com/ClickHouse/ClickHouse/pull/81895)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 之前,`MongoDB` 表引擎定义中可以在 `host:port` 参数里包含路径部分,但该部分会被静默忽略。MongoDB 集成会拒绝加载这类表。通过此修复,*我们允许加载这类表并忽略路径部分*,前提是 `MongoDB` 引擎有五个参数,并使用参数中的数据库名。*注意:* 此修复不会应用于新建的表、使用 `mongo` table function 的查询,以及字典来源和命名集合。 [#81942](https://github.com/ClickHouse/ClickHouse/pull/81942) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* 修复在合并过程中发生异常时可能导致 `Aggregator` 崩溃的问题。 [#82022](https://github.com/ClickHouse/ClickHouse/pull/82022) ([Nikita Taranov](https://github.com/nickitat)). +* 修复了当查询中仅使用常量别名列时的过滤条件分析问题。修复 [#79448](https://github.com/ClickHouse/ClickHouse/issues/79448)。[#82037](https://github.com/ClickHouse/ClickHouse/pull/82037)([Dmitry Novik](https://github.com/novikd))。 +* 修复在 GROUP BY 和 SET 的生存时间 (TTL) 中使用同一列时出现的 LOGICAL_ERROR 以及随之产生的崩溃。[#82054](https://github.com/ClickHouse/ClickHouse/pull/82054) ([Pablo Marcos](https://github.com/pamarcos))。 +* 修复在机密信息屏蔽中 S3 表函数参数校验的问题,防止可能出现的 `LOGICAL_ERROR`,并关闭 [#80620](https://github.com/ClickHouse/ClickHouse/issues/80620)。[#82056](https://github.com/ClickHouse/ClickHouse/pull/82056)([Vladimir Cherkasov](https://github.com/vdimir))。 +* 修复 Iceberg 中的数据竞争。 [#82088](https://github.com/ClickHouse/ClickHouse/pull/82088) ([Azat Khuzhin](https://github.com/azat))。 +* 修复 `DatabaseReplicated::getClusterImpl`。如果 `hosts` 的第一个元素(或前几个元素)满足 `id == DROPPED_MARK`,且同一分片不存在其他元素,则 `shards` 的第一个元素将是空向量,从而触发 `std::out_of_range`。 [#82093](https://github.com/ClickHouse/ClickHouse/pull/82093) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* 修复 `arraySimilarity` 中因复制粘贴导致的错误,禁止将 `UInt32` 和 `Int32` 用作权重类型,并更新测试和文档。[#82103](https://github.com/ClickHouse/ClickHouse/pull/82103)([Mikhail f. Shiryaev](https://github.com/Felixoid))。 +* 修复在包含 `arrayJoin` 且带有 `WHERE` 条件和 `IndexSet` 的查询中出现的 `Not found column` 错误。 [#82113](https://github.com/ClickHouse/ClickHouse/pull/82113) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* 修复 Glue Catalog 集成中的一个缺陷。现在 ClickHouse 可以读取包含嵌套数据类型的表,其中某些子列为 Decimal 类型,例如:`map<string, decimal(9, 2)>`。修复了 [#81301](https://github.com/ClickHouse/ClickHouse/issues/81301)。[#82114](https://github.com/ClickHouse/ClickHouse/pull/82114)([alesapin](https://github.com/alesapin))。 +* 修复了在 25.5 版本中于 [https://github.com/ClickHouse/ClickHouse/pull/79051](https://github.com/ClickHouse/ClickHouse/pull/79051) 中引入的 SummingMergeTree 性能退化问题。[#82130](https://github.com/ClickHouse/ClickHouse/pull/82130)([Pavel Kruglov](https://github.com/Avogar))。 +* 通过 URI 传递设置参数时,将以最后一个值为准。 [#82137](https://github.com/ClickHouse/ClickHouse/pull/82137) ([Sema Checherinda](https://github.com/CheSema)). +* 修复 Iceberg 中 “Context has expired” 的问题。 [#82146](https://github.com/ClickHouse/ClickHouse/pull/82146) ([Azat Khuzhin](https://github.com/azat)). +* 在服务器内存紧张时,修复可能导致远程查询死锁的问题。[#82160](https://github.com/ClickHouse/ClickHouse/pull/82160) ([Kirill](https://github.com/kirillgarbar))。 +* 修复了在将 `numericIndexedVectorPointwiseAdd`、`numericIndexedVectorPointwiseSubtract`、`numericIndexedVectorPointwiseMultiply`、`numericIndexedVectorPointwiseDivide` 函数应用于大数值时出现的溢出问题。 [#82165](https://github.com/ClickHouse/ClickHouse/pull/82165)([Raufs Dunamalijevs](https://github.com/rienath))。 +* 修复了表依赖中的一个 bug,该 bug 会导致 Materialized Views 无法处理 INSERT 查询。[#82222](https://github.com/ClickHouse/ClickHouse/pull/82222)([Nikolay Degterinsky](https://github.com/evillique))。 +* 修复 suggestion 线程与主客户端线程之间可能存在的数据竞争。 [#82233](https://github.com/ClickHouse/ClickHouse/pull/82233) ([Azat Khuzhin](https://github.com/azat)). +* 现在,ClickHouse 在模式演进后可以从 Glue catalog 中读取 Iceberg 表。修复了 [#81272](https://github.com/ClickHouse/ClickHouse/issues/81272)。[#82301](https://github.com/ClickHouse/ClickHouse/pull/82301)([alesapin](https://github.com/alesapin))。 +* 修复异步指标设置 `asynchronous_metrics_update_period_s` 和 `asynchronous_heavy_metrics_update_period_s` 的校验。[#82310](https://github.com/ClickHouse/ClickHouse/pull/82310)([Bharat Nallan](https://github.com/bharatnc))。 +* 修复在包含多个 JOIN 的查询中解析匹配器时出现的逻辑错误,关闭 [#81969](https://github.com/ClickHouse/ClickHouse/issues/81969)。[#82421](https://github.com/ClickHouse/ClickHouse/pull/82421)([Vladimir Cherkasov](https://github.com/vdimir))。 +* 为 AWS ECS 令牌添加过期时间,使其可以被重新加载。[#82422](https://github.com/ClickHouse/ClickHouse/pull/82422) ([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 修复了 `CASE` 函数在处理 `NULL` 参数时的错误。[#82436](https://github.com/ClickHouse/ClickHouse/pull/82436)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 修复了客户端中的数据竞争问题(通过不再使用全局上下文)以及 `session_timezone` 的覆盖行为(此前,如果在 `users.xml`/客户端选项中将 `session_timezone` 设置为非空,而在查询上下文中设置为空,则会错误地采用 `users.xml` 中的值;现在,查询上下文将始终优先于全局上下文)。 [#82444](https://github.com/ClickHouse/ClickHouse/pull/82444) ([Azat Khuzhin](https://github.com/azat))。 +* 修复外部表引擎中缓存缓冲区禁用边界对齐的功能,该功能在 [https://github.com/ClickHouse/ClickHouse/pull/81868](https://github.com/ClickHouse/ClickHouse/pull/81868) 中被破坏。[#82493](https://github.com/ClickHouse/ClickHouse/pull/82493)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 修复当键值存储与经过类型转换的键进行 JOIN 时会崩溃的问题。[#82497](https://github.com/ClickHouse/ClickHouse/pull/82497) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* 修复在 logs/query_log 中隐藏命名集合值的逻辑。关闭 [#82405](https://github.com/ClickHouse/ClickHouse/issues/82405)。[#82510](https://github.com/ClickHouse/ClickHouse/pull/82510)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 修复在终止会话时的日志记录过程中可能发生的崩溃问题,原因是 `user_id` 有时可能为空。[#82513](https://github.com/ClickHouse/ClickHouse/pull/82513)([Bharat Nallan](https://github.com/bharatnc))。 +* 修复了在解析 Time 时可能引发 msan 问题的情况。此修复关联:[#82477](https://github.com/ClickHouse/ClickHouse/issues/82477)。[#82514](https://github.com/ClickHouse/ClickHouse/pull/82514)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 禁止将 `threadpool_writer_pool_size` 设置为 0,以防止服务器操作发生卡死。 [#82532](https://github.com/ClickHouse/ClickHouse/pull/82532) ([Bharat Nallan](https://github.com/bharatnc))。 +* 修复在对关联列进行 ROW POLICY 表达式分析时出现的 `LOGICAL_ERROR`。[#82618](https://github.com/ClickHouse/ClickHouse/pull/82618) ([Dmitry Novik](https://github.com/novikd))。 +* 修复在 `enable_shared_storage_snapshot_in_query = 1` 时,`mergeTreeProjection` 表函数中对父级元数据使用不当的问题。对应 [#82634](https://github.com/ClickHouse/ClickHouse/issues/82634)。[#82638](https://github.com/ClickHouse/ClickHouse/pull/82638)([Amos Bird](https://github.com/amosbird))。 +* 函数 `trim{Left,Right,Both}` 现在支持类型为 “FixedString(N)” 的输入字符串。例如,`SELECT trimBoth(toFixedString('abc', 3), 'ac')` 现在可以使用。[#82691](https://github.com/ClickHouse/ClickHouse/pull/82691) ([Robert Schulze](https://github.com/rschu1ze))。 +* 在 AzureBlobStorage 中,对于原生复制,我们会比较不同的认证方式;在比较过程中如果出现异常,现在会回退为先读取再复制的方式(即非原生复制)。 [#82693](https://github.com/ClickHouse/ClickHouse/pull/82693) ([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 +* 修复在元素为空时 `groupArraySample`/`groupArrayLast` 的反序列化问题(当输入为空时,反序列化可能会跳过部分二进制数据,从而在读取数据期间导致数据损坏,并在 TCP 协议中出现 UNKNOWN_PACKET_FROM_SERVER)。这不会影响数字和日期时间类型。[#82763](https://github.com/ClickHouse/ClickHouse/pull/82763) ([Pedro Ferreira](https://github.com/PedroTadim))。 +* 修复对空 `Memory` 表进行备份时的问题,该问题会导致恢复备份失败并报错 `BACKUP_ENTRY_NOT_FOUND`。[#82791](https://github.com/ClickHouse/ClickHouse/pull/82791) ([Julia Kartseva](https://github.com/jkartseva)). +* 修复 `union/intersect/except_default_mode` 重写过程中的异常安全性。关闭 [#82664](https://github.com/ClickHouse/ClickHouse/issues/82664)。[#82820](https://github.com/ClickHouse/ClickHouse/pull/82820)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 跟踪异步表加载作业的数量。如果存在正在运行的作业,则不要在 `TransactionLog::removeOldEntries` 中更新 `tail_ptr`。[#82824](https://github.com/ClickHouse/ClickHouse/pull/82824) ([Tuan Pham Anh](https://github.com/tuanpach))。 +* 修复 Iceberg 中的数据竞态问题。 [#82841](https://github.com/ClickHouse/ClickHouse/pull/82841) ([Azat Khuzhin](https://github.com/azat)). +* `use_skip_indexes_if_final_exact_mode` 优化(在 25.6 中引入)在某些情况下可能无法根据 `MergeTree` 引擎设置/数据分布选择合适的候选范围。该问题现已修复。 [#82879](https://github.com/ClickHouse/ClickHouse/pull/82879) ([Shankar Iyer](https://github.com/shankar-iyer)). +* 在从 AST 解析类型为 SCRAM_SHA256_PASSWORD 的认证数据时设置 salt。 [#82888](https://github.com/ClickHouse/ClickHouse/pull/82888) ([Tuan Pham Anh](https://github.com/tuanpach))。 +* 当使用非缓存型 Database 实现时,对应表的元数据会在返回列并使引用失效后被删除。 [#82939](https://github.com/ClickHouse/ClickHouse/pull/82939) ([buyval01](https://github.com/buyval01)). +* 修复了在对使用 `Merge` 存储引擎的表进行 JOIN 的查询中修改过滤条件时的问题。修复了 [#82092](https://github.com/ClickHouse/ClickHouse/issues/82092)。[#82950](https://github.com/ClickHouse/ClickHouse/pull/82950)([Dmitry Novik](https://github.com/novikd))。 +* 修复 QueryMetricLog 中的 LOGICAL_ERROR:互斥量(Mutex)不能为 NULL。 [#82979](https://github.com/ClickHouse/ClickHouse/pull/82979) ([Pablo Marcos](https://github.com/pamarcos)). +* 修复了在将格式说明符 `%f` 与可变长度格式说明符(例如 `%M`)一起使用时,函数 `formatDateTime` 输出结果不正确的问题。 [#83020](https://github.com/ClickHouse/ClickHouse/pull/83020) ([Robert Schulze](https://github.com/rschu1ze))。 +* 修复在启用 analyzer 时,当二级查询总是从 VIEW 中读取所有列时出现的性能下降问题。修复了 [#81718](https://github.com/ClickHouse/ClickHouse/issues/81718)。[#83036](https://github.com/ClickHouse/ClickHouse/pull/83036)([Dmitry Novik](https://github.com/novikd))。 +* 修复在只读磁盘上恢复备份时出现的具有误导性的错误信息。[#83051](https://github.com/ClickHouse/ClickHouse/pull/83051) ([Julia Kartseva](https://github.com/jkartseva)). +* 在创建不包含依赖关系的表时不再执行循环依赖检查。这修复了在创建成千上万张表的用例中出现的、由 [https://github.com/ClickHouse/ClickHouse/pull/65405](https://github.com/ClickHouse/ClickHouse/pull/65405) 引入的性能下降问题。[#83077](https://github.com/ClickHouse/ClickHouse/pull/83077)([Pavel Kruglov](https://github.com/Avogar))。 +* 修复了将 Time 负值隐式读取到表中的问题,并避免文档表述产生歧义。[#83091](https://github.com/ClickHouse/ClickHouse/pull/83091) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 不要在 `lowCardinalityKeys` 函数中使用共享字典中无关的部分。[#83118](https://github.com/ClickHouse/ClickHouse/pull/83118) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 修复在 materialized view 中使用子列时出现的回归问题。此更改修复了:[#82784](https://github.com/ClickHouse/ClickHouse/issues/82784)。[#83221](https://github.com/ClickHouse/ClickHouse/pull/83221) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* 修复在错误的 INSERT 操作后连接被遗留为断开状态而导致客户端崩溃的问题。[#83253](https://github.com/ClickHouse/ClickHouse/pull/83253) ([Azat Khuzhin](https://github.com/azat))。 +* 修复在计算包含空列的块大小时发生的崩溃。[#83271](https://github.com/ClickHouse/ClickHouse/pull/83271)([Raúl Marín](https://github.com/Algunenano))。 +* 修复在 `UNION` 中 `Variant` 类型可能导致的崩溃问题。[#83295](https://github.com/ClickHouse/ClickHouse/pull/83295) ([Pavel Kruglov](https://github.com/Avogar))。 +* 修复在 clickhouse-local 中执行不支持的 SYSTEM 查询时出现的 LOGICAL_ERROR。 [#83333](https://github.com/ClickHouse/ClickHouse/pull/83333) ([Surya Kant Ranjan](https://github.com/iit2009046)). +* 修复 S3 客户端中的 `no_sign_request`。该选项可用于显式避免对 S3 请求进行签名。它也可以通过基于 endpoint 的设置,为特定 endpoint 单独配置。[#83379](https://github.com/ClickHouse/ClickHouse/pull/83379)([Antonio Andelic](https://github.com/antonio2368))。 +* 修复了在启用 CPU 调度的情况下,负载下执行且设置为 'max_threads=1' 的查询可能发生的崩溃。 [#83387](https://github.com/ClickHouse/ClickHouse/pull/83387) ([Fan Ziqi](https://github.com/f2quantum)). +* 修复当 CTE 定义引用另一个同名表表达式时触发的 `TOO_DEEP_SUBQUERIES` 异常。[#83413](https://github.com/ClickHouse/ClickHouse/pull/83413)([Dmitry Novik](https://github.com/novikd))。 +* 修复在执行 `REVOKE S3 ON system.*` 时会错误地撤销 `*.*` 上 S3 权限的问题。修复了 [#83417](https://github.com/ClickHouse/ClickHouse/issues/83417)。[#83420](https://github.com/ClickHouse/ClickHouse/pull/83420)([pufit](https://github.com/pufit))。 +* 不要在不同查询之间共享 async_read_counters。[#83423](https://github.com/ClickHouse/ClickHouse/pull/83423)([Azat Khuzhin](https://github.com/azat))。 +* 如果子查询包含 FINAL,则禁用并行副本。 [#83455](https://github.com/ClickHouse/ClickHouse/pull/83455) ([zoomxi](https://github.com/zoomxi)). +* 修复在配置设置项 `role_cache_expiration_time_seconds` 时出现的轻微整数溢出问题(issue [#83374](https://github.com/ClickHouse/ClickHouse/issues/83374))。[#83461](https://github.com/ClickHouse/ClickHouse/pull/83461)([wushap](https://github.com/wushap))。 +* 修复了在 [https://github.com/ClickHouse/ClickHouse/pull/79963](https://github.com/ClickHouse/ClickHouse/pull/79963) 中引入的一个 bug。在向带有 definer 的 MV 插入数据时,权限检查应当基于该 definer 的权限进行。此修复解决了 [#79951](https://github.com/ClickHouse/ClickHouse/issues/79951)。[#83502](https://github.com/ClickHouse/ClickHouse/pull/83502)([pufit](https://github.com/pufit))。 +* 对 Iceberg 数组元素和 Iceberg 映射值(包括其所有嵌套子字段)禁用基于范围的文件剪枝。 [#83520](https://github.com/ClickHouse/ClickHouse/pull/83520) ([Daniil Ivanik](https://github.com/divanik)) +* 修复在将文件缓存用作临时数据存储时可能出现的“文件缓存未初始化”错误。 [#83539](https://github.com/ClickHouse/ClickHouse/pull/83539) ([Bharat Nallan](https://github.com/bharatnc))。 +* Keeper 修复:在会话关闭时删除临时节点后,正确更新 watch 总数。 [#83583](https://github.com/ClickHouse/ClickHouse/pull/83583) ([Antonio Andelic](https://github.com/antonio2368))。 +* 修复与 `max_untracked_memory` 相关的不正确内存处理。 [#83607](https://github.com/ClickHouse/ClickHouse/pull/83607) ([Azat Khuzhin](https://github.com/azat)). +* 在某些边缘情况下,带有 UNION ALL 的 INSERT SELECT 可能导致空指针解引用。修复了 [#83618](https://github.com/ClickHouse/ClickHouse/issues/83618)。[#83643](https://github.com/ClickHouse/ClickHouse/pull/83643)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 禁止为 max_insert_block_size 使用零值,以免导致逻辑错误。[#83688](https://github.com/ClickHouse/ClickHouse/pull/83688)([Bharat Nallan](https://github.com/bharatnc))。 +* 修复在 `block_size_bytes=0` 时 `estimateCompressionRatio()` 中出现的无限循环。 [#83704](https://github.com/ClickHouse/ClickHouse/pull/83704) ([Azat Khuzhin](https://github.com/azat))。 +* 修复 `IndexUncompressedCacheBytes`/`IndexUncompressedCacheCells`/`IndexMarkCacheBytes`/`IndexMarkCacheFiles` 指标(此前这些指标被计入对应的不带 `Cache` 前缀的指标中)。[#83730](https://github.com/ClickHouse/ClickHouse/pull/83730) ([Azat Khuzhin](https://github.com/azat))。 +* 修复在 `BackgroundSchedulePool` 关闭期间可能发生的异常终止(由于从任务中 join 线程),并且(希望也一并修复了)在单元测试中可能出现的挂起问题。 [#83769](https://github.com/ClickHouse/ClickHouse/pull/83769) ([Azat Khuzhin](https://github.com/azat)). +* 引入一个向后兼容的设置,在名称冲突的情况下,允许新的分析器在 `WITH` 子句中引用外层别名。修复 [#82700](https://github.com/ClickHouse/ClickHouse/issues/82700)。[#83797](https://github.com/ClickHouse/ClickHouse/pull/83797)([Dmitry Novik](https://github.com/novikd))。 +* 修复在关闭过程中,由于在清理库桥接组件时对上下文进行递归加锁而导致的死锁问题。[#83824](https://github.com/ClickHouse/ClickHouse/pull/83824)([Azat Khuzhin](https://github.com/azat))。 + +#### 构建 / 测试 / 打包改进 {#buildtestingpackaging-improvement} + +* 为 ClickHouse 词法分析器构建一个精简的 C 库(10 KB),用于 [#80977](https://github.com/ClickHouse/ClickHouse/issues/80977)。[#81347](https://github.com/ClickHouse/ClickHouse/pull/81347)([Alexey Milovidov](https://github.com/alexey-milovidov))。为独立词法分析器添加测试,并添加测试标签 `fasttest-only`。[#82472](https://github.com/ClickHouse/ClickHouse/pull/82472)([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 +* 为 Nix 子模块输入项添加检查。[#81691](https://github.com/ClickHouse/ClickHouse/pull/81691)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 修复在尝试在本地主机上运行集成测试时可能出现的一系列问题。[#82135](https://github.com/ClickHouse/ClickHouse/pull/82135)([Oleg Doronin](https://github.com/dorooleg))。 +* 在 Mac 和 FreeBSD 上编译 SymbolIndex。(但它只会在基于 ELF 的系统上工作,例如 Linux 和 FreeBSD)。[#82347](https://github.com/ClickHouse/ClickHouse/pull/82347)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 将 Azure SDK 升级到 v1.15.0。[#82747](https://github.com/ClickHouse/ClickHouse/pull/82747)([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 +* 将 google-cloud-cpp 的存储模块添加到构建系统中。[#82881](https://github.com/ClickHouse/ClickHouse/pull/82881)([Pablo Marcos](https://github.com/pamarcos))。 +* 更改 clickhouse-server 的 `Dockerfile.ubuntu` 以满足 Docker Official Library 的要求。[#83039](https://github.com/ClickHouse/ClickHouse/pull/83039)([Mikhail f. Shiryaev](https://github.com/Felixoid))。 +* 针对 [#83158](https://github.com/ClickHouse/ClickHouse/issues/83158) 的后续更改,用于修复通过 `curl clickhouse.com` 上传构建产物的问题。[#83463](https://github.com/ClickHouse/ClickHouse/pull/83463)([Mikhail f. Shiryaev](https://github.com/Felixoid))。 +* 在 `clickhouse/clickhouse-server` 和官方 `clickhouse` 镜像中添加 `busybox` 二进制文件,并安装相关工具。[#83735](https://github.com/ClickHouse/ClickHouse/pull/83735)([Mikhail f. Shiryaev](https://github.com/Felixoid))。 +* 新增对 `CLICKHOUSE_HOST` 环境变量的支持,用于指定 ClickHouse 服务器主机地址,与现有的 `CLICKHOUSE_USER` 和 `CLICKHOUSE_PASSWORD` 环境变量保持一致。这使得在无需直接修改客户端或配置文件的情况下,更容易完成配置。[#83659](https://github.com/ClickHouse/ClickHouse/pull/83659)([Doron David](https://github.com/dorki))。 + +### ClickHouse 25.6 版本,2025-06-26 {#256} + +#### 向后不兼容的变更 {#backward-incompatible-change} + +* 之前,`countMatches` 函数在遇到第一个空匹配时就会停止计数,即便模式允许空匹配。为了解决这个问题,现在在发生空匹配时,`countMatches` 会通过前进一个字符来继续执行。希望保留旧行为的用户可以启用设置项 `count_matches_stop_at_empty_match`。[#81676](https://github.com/ClickHouse/ClickHouse/pull/81676) ([Elmi Ahmadov](https://github.com/ahmadov)) +* 次要变更:强制 `backup_threads` 和 `restore_threads` 服务器设置为非零值。[#80224](https://github.com/ClickHouse/ClickHouse/pull/80224) ([Raúl Marín](https://github.com/Algunenano)) +* 次要变更:修复 `bitNot` 在处理 `String` 时的行为,使其在内部内存表示中返回以零结尾的字符串。这不应影响任何对用户可见的行为,不过作者希望强调这一改动。[#80791](https://github.com/ClickHouse/ClickHouse/pull/80791) ([Azat Khuzhin](https://github.com/azat)) + +#### 新功能 {#new-feature} + +* 新的数据类型:`Time` ([H]HH:MM:SS) 和 `Time64` ([H]HH:MM:SS[.fractional]),以及一些基本的类型转换函数和用于与其他数据类型交互的函数。新增了与现有函数 `toTime` 兼容的相关设置。目前通过设置 `use_legacy_to_time` 来保持旧有行为。[#81217](https://github.com/ClickHouse/ClickHouse/pull/81217)([Yarik Briukhovetskyi](https://github.com/yariks5s))。支持 Time/Time64 之间的比较。[#80327](https://github.com/ClickHouse/ClickHouse/pull/80327)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 新的 CLI 工具 [`chdig`](https://github.com/azat/chdig/) —— ClickHouse 的 TUI 界面(类似 top),作为 ClickHouse 的一部分。[#79666](https://github.com/ClickHouse/ClickHouse/pull/79666)([Azat Khuzhin](https://github.com/azat))。 +* 在 `Atomic` 和 `Ordinary` 数据库引擎中支持 `disk` 设置,用于指定存储表元数据文件的磁盘。[#80546](https://github.com/ClickHouse/ClickHouse/pull/80546)([Tuan Pham Anh](https://github.com/tuanpach))。这使得可以从外部来源附加数据库。 +* 新增一种 MergeTree 引擎类型 `CoalescingMergeTree` —— 该引擎在后台合并时会取第一个非 Null 值。此更改解决了 [#78869](https://github.com/ClickHouse/ClickHouse/issues/78869)。[#79344](https://github.com/ClickHouse/ClickHouse/pull/79344)([scanhex12](https://github.com/scanhex12))。 +* 新增对读取 WKB(“Well-Known Binary”,一种在 GIS 应用中用于对各种几何类型进行二进制编码的格式)的函数支持。参见 [#43941](https://github.com/ClickHouse/ClickHouse/issues/43941)。[#80139](https://github.com/ClickHouse/ClickHouse/pull/80139)([scanhex12](https://github.com/scanhex12))。 +* 新增了针对工作负载的查询槽调度功能,详情参见 [workload scheduling](https://clickhouse.com/docs/operations/workload-scheduling#query_scheduling)。[#78415](https://github.com/ClickHouse/ClickHouse/pull/78415) ([Sergei Trifonov](https://github.com/serxa))。 +* `timeSeries*` 辅助函数可在处理时序数据时加速某些场景:- 将数据按指定的起始时间戳、结束时间戳和步长重新采样到相应的时间网格上 - 计算类似 PromQL 的 `delta`、`rate`、`idelta` 和 `irate`。 [#80590](https://github.com/ClickHouse/ClickHouse/pull/80590) ([Alexander Gololobov](https://github.com/davenger)). +* 添加 `mapContainsValuesLike`/`mapContainsValues`/`mapExtractValuesLike` 函数,用于基于 Map 的值进行过滤,并在基于 Bloom filter 的索引中提供对它们的支持。[#78171](https://github.com/ClickHouse/ClickHouse/pull/78171) ([UnamedRus](https://github.com/UnamedRus))。 +* 现在,设置项约束可以指定一组不允许的值。[#78499](https://github.com/ClickHouse/ClickHouse/pull/78499) ([Bharat Nallan](https://github.com/bharatnc))。 +* 新增设置项 `enable_shared_storage_snapshot_in_query`,用于在单个查询内让所有子查询共享同一个存储快照。这样可以保证即使在同一个查询中多次引用同一张表,也始终能够从该表获得一致的读取结果。[#79471](https://github.com/ClickHouse/ClickHouse/pull/79471) ([Amos Bird](https://github.com/amosbird))。 +* 支持直接将 `JSON` 列写入 `Parquet`,并从 `Parquet` 中直接读取 `JSON` 列。 [#79649](https://github.com/ClickHouse/ClickHouse/pull/79649) ([Nihal Z. Miaji](https://github.com/nihalzp)). +* 为 `pointInPolygon` 函数添加对 `MultiPolygon` 的支持。 [#79773](https://github.com/ClickHouse/ClickHouse/pull/79773) ([Nihal Z. Miaji](https://github.com/nihalzp)). +* 添加对通过 `deltaLakeLocal` 表函数查询本地文件系统挂载的 Delta 表的支持。[#79781](https://github.com/ClickHouse/ClickHouse/pull/79781) ([roykim98](https://github.com/roykim98))。 +* 新增 `cast_string_to_date_time_mode` 设置,用于在将 String 转换为 DateTime 时选择解析模式。 [#80210](https://github.com/ClickHouse/ClickHouse/pull/80210) ([Pavel Kruglov](https://github.com/Avogar))。例如,你可以将其设置为 best effort 模式。 +* 新增 `bech32Encode` 和 `bech32Decode` 函数,用于处理 Bitcoin 的 Bech 算法(issue [#40381](https://github.com/ClickHouse/ClickHouse/issues/40381))。 [#80239](https://github.com/ClickHouse/ClickHouse/pull/80239) ([George Larionov](https://github.com/glarik))。 +* 添加用于分析 MergeTree 分区片段名称的 SQL 函数。 [#80573](https://github.com/ClickHouse/ClickHouse/pull/80573) ([Mikhail Artemenko](https://github.com/Michicosun)). +* 通过引入新的虚拟列 `_disk_name`,允许根据分区片段所在的磁盘来过滤参与查询的分区片段。 [#80650](https://github.com/ClickHouse/ClickHouse/pull/80650) ([tanner-bruce](https://github.com/tanner-bruce))。 +* 添加一个包含嵌入式 Web 工具列表的着陆页。当由类浏览器的用户代理发起请求时,将会打开该页面。[#81129](https://github.com/ClickHouse/ClickHouse/pull/81129) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 函数 `arrayFirst`、`arrayFirstIndex`、`arrayLast` 和 `arrayLastIndex` 会忽略由过滤表达式返回的 NULL 值。在之前的版本中,不支持 Nullable 类型的过滤结果。修复了 [#81113](https://github.com/ClickHouse/ClickHouse/issues/81113)。[#81197](https://github.com/ClickHouse/ClickHouse/pull/81197)([Lennard Eijsackers](https://github.com/Blokje5))。 +* 现在可以使用 `USE DATABASE name` 来代替 `USE name`。 [#81307](https://github.com/ClickHouse/ClickHouse/pull/81307) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 新增系统表 `system.codecs`,用于查看可用的编解码器。(issue [#81525](https://github.com/ClickHouse/ClickHouse/issues/81525))。[#81600](https://github.com/ClickHouse/ClickHouse/pull/81600)([Jimmy Aguilar Mena](https://github.com/Ergus))。 +* 支持 `lag` 和 `lead` 窗口函数。已关闭 [#9887](https://github.com/ClickHouse/ClickHouse/issues/9887)。[#82108](https://github.com/ClickHouse/ClickHouse/pull/82108)([Dmitry Novik](https://github.com/novikd))。 +* 函数 `tokens` 现在支持一个名为 `split` 的新分词器,非常适合处理日志数据。[#80195](https://github.com/ClickHouse/ClickHouse/pull/80195) ([Robert Schulze](https://github.com/rschu1ze))。 +* 在 `clickhouse-local` 中新增对 `--database` 参数的支持,你可以切换到之前创建的数据库。由此关闭了 [#44115](https://github.com/ClickHouse/ClickHouse/issues/44115)。[#81465](https://github.com/ClickHouse/ClickHouse/pull/81465)([Alexey Milovidov](https://github.com/alexey-milovidov))。 + +#### 实验特性 {#experimental-feature} + +* 基于 ClickHouse Keeper 为 `Kafka2` 实现了类似 Kafka 再平衡的逻辑。对于每个副本,我们支持两种类型的分区锁:永久锁和临时锁。副本会尽可能长时间持有永久锁,在任意时刻,一个副本上的永久锁数量不超过 `all_topic_partitions / active_replicas_count`(其中 `all_topic_partitions` 是所有分区的数量,`active_replicas_count` 是活动副本的数量),如果超过这个数量,则该副本会释放部分分区。一些分区会被副本以临时锁的方式持有。副本上的临时锁最大数量会动态变化,以便给其他副本有机会将部分分区获取为永久锁。在更新临时锁时,副本会释放所有临时锁并尝试重新获取其他分区。[#78726](https://github.com/ClickHouse/ClickHouse/pull/78726)([Daria Fomina](https://github.com/sinfillo))。 +* 对实验性的文本索引进行了改进:现在支持通过键值对传递显式参数。目前支持的参数包括一个必需的 `tokenizer`,以及两个可选参数 `max_rows_per_postings_list` 和 `ngram_size`。[#80262](https://github.com/ClickHouse/ClickHouse/pull/80262)([Elmi Ahmadov](https://github.com/ahmadov))。 +* 之前,`packed` 存储不支持全文索引,因为段 ID 是通过在磁盘上读写(`.gin_sid`)文件进行实时更新的。在使用 `packed` 存储的情况下,不支持从未提交的文件读取值,这会导致问题。现在这一点已经修复。[#80852](https://github.com/ClickHouse/ClickHouse/pull/80852)([Elmi Ahmadov](https://github.com/ahmadov))。 +* 类型为 `gin` 的实验性索引(我并不喜欢这个名字,因为它是 PostgreSQL 黑客的内部玩笑)已重命名为 `text`。现有的 `gin` 类型索引仍然可以加载,但当尝试在搜索中使用它们时,会抛出异常(并建议改用 `text` 索引)。[#80855](https://github.com/ClickHouse/ClickHouse/pull/80855)([Robert Schulze](https://github.com/rschu1ze))。 + +#### 性能优化 {#performance-improvement} + +* 启用多 PROJECTION 过滤的支持,使得在 Part 级过滤中可以使用多个 PROJECTION。此更改解决了 [#55525](https://github.com/ClickHouse/ClickHouse/issues/55525)。这是实现 PROJECTION 索引的第二步,延续自 [#78429](https://github.com/ClickHouse/ClickHouse/issues/78429)。[#80343](https://github.com/ClickHouse/ClickHouse/pull/80343)([Amos Bird](https://github.com/amosbird))。 +* 在文件系统缓存中默认使用 `SLRU` 缓存策略。[#75072](https://github.com/ClickHouse/ClickHouse/pull/75072) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 消除查询管线中 Resize 步骤的争用。 [#77562](https://github.com/ClickHouse/ClickHouse/pull/77562) ([Zhiguo Zhou](https://github.com/ZhiguoZh)). +* 引入了一个选项,可将数据块的(解)压缩和(反)序列化从与网络连接关联的单个线程卸载到流水线线程中。通过设置 `enable_parallel_blocks_marshalling` 进行控制。对于在发起节点与远程节点之间传输大量数据的分布式查询,这应当能够加速执行。[#78694](https://github.com/ClickHouse/ClickHouse/pull/78694)([Nikita Taranov](https://github.com/nickitat))。 +* 提升了所有 Bloom 过滤器类型的性能。[来自 OpenHouse 大会的视频](https://www.youtube.com/watch?v=yIVz0NKwQvA\&pp=ygUQb3BlbmhvdXNlIG9wZW5haQ%3D%3D) [#79800](https://github.com/ClickHouse/ClickHouse/pull/79800)([Delyan Kratunov](https://github.com/dkratunov))。 +* 在 `UniqExactSet::merge` 中引入了当其中一个 Set 为空时的快速处理路径。此外,现在如果左侧的 Set 是两级结构而右侧是单级结构,将不再把右侧转换为两级结构。[#79971](https://github.com/ClickHouse/ClickHouse/pull/79971)([Nikita Taranov](https://github.com/nickitat))。 +* 在使用两级哈希表时提高内存重用效率并减少缺页中断,从而加速 GROUP BY 操作。 [#80245](https://github.com/ClickHouse/ClickHouse/pull/80245) ([Jiebin Sun](https://github.com/jiebinn)). +* 避免不必要的更新,降低查询条件缓存中的锁竞争。[#80247](https://github.com/ClickHouse/ClickHouse/pull/80247)([Jiebin Sun](https://github.com/jiebinn))。 +* 对 `concatenateBlocks` 进行了小幅优化。此改进很可能有利于并行哈希连接的性能。 [#80328](https://github.com/ClickHouse/ClickHouse/pull/80328) ([李扬](https://github.com/taiyang-li)). +* 在从主键范围中选择标记区间时,如果主键被函数包裹,则无法使用二分查找。此 PR 改进了这一限制:当主键被一串始终单调的函数链包裹,或者 RPN 中包含一个恒为真的元素时,仍然可以使用二分查找。修复了 [#45536](https://github.com/ClickHouse/ClickHouse/issues/45536)。[#80597](https://github.com/ClickHouse/ClickHouse/pull/80597)([zoomxi](https://github.com/zoomxi))。 +* 提高 `Kafka` 引擎的关闭速度(在有多个 `Kafka` 表时去除额外的 3 秒延迟)。[#80796](https://github.com/ClickHouse/ClickHouse/pull/80796) ([Azat Khuzhin](https://github.com/azat)). +* 异步插入:减少内存占用并提升插入查询性能。 [#80972](https://github.com/ClickHouse/ClickHouse/pull/80972) ([Raúl Marín](https://github.com/Algunenano)). +* 当日志表被禁用时,不要对处理器进行性能分析。 [#81256](https://github.com/ClickHouse/ClickHouse/pull/81256) ([Raúl Marín](https://github.com/Algunenano))。这可以加快非常短的查询的执行速度。 +* 当源字符串长度与所请求的长度完全一致时,加速 `toFixedString`。 [#81257](https://github.com/ClickHouse/ClickHouse/pull/81257) ([Raúl Marín](https://github.com/Algunenano)). +* 如果用户不受 QUOTA 限制,则不处理 QUOTA 值。[#81549](https://github.com/ClickHouse/ClickHouse/pull/81549) ([Raúl Marín](https://github.com/Algunenano))。从而加速非常短的查询。 +* 修复了内存跟踪中的性能回归问题。 [#81694](https://github.com/ClickHouse/ClickHouse/pull/81694) ([Michael Kolupaev](https://github.com/al13n321)). +* 改进分布式查询的分片键优化。[#78452](https://github.com/ClickHouse/ClickHouse/pull/78452) ([fhw12345](https://github.com/fhw12345))。 +* 并行副本:如果所有读取任务都已分配给其他副本,则不再等待那些未参与读取且较慢的副本。 [#80199](https://github.com/ClickHouse/ClickHouse/pull/80199) ([Igor Nikonov](https://github.com/devcrafter)). +* 并行副本使用单独的连接超时时间,请参阅 `parallel_replicas_connect_timeout_ms` 设置。此前,并行副本查询使用 `connect_timeout_with_failover_ms`/`connect_timeout_with_failover_secure_ms` 设置作为连接超时值(默认 1 秒)。[#80421](https://github.com/ClickHouse/ClickHouse/pull/80421)([Igor Nikonov](https://github.com/devcrafter))。 +* 在带日志功能的文件系统中,`mkdir` 会写入该文件系统的 journal,并持久化到磁盘上。如果磁盘较慢,这个过程可能会花费较长时间。将其移出 reserve 锁的作用域。 [#81371](https://github.com/ClickHouse/ClickHouse/pull/81371) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* 将 Iceberg manifest 文件的读取推迟到首次执行读查询时才进行。[#81619](https://github.com/ClickHouse/ClickHouse/pull/81619) ([Daniil Ivanik](https://github.com/divanik)). +* 在适用时,允许将 `GLOBAL [NOT] IN` 谓词下推到 `PREWHERE` 子句。[#79996](https://github.com/ClickHouse/ClickHouse/pull/79996) ([Eduard Karacharov](https://github.com/korowa))。 + +#### 改进 {#improvement} + +* `EXPLAIN SYNTAX` 现在使用新的 analyzer。它返回从 query tree 构建的 AST。新增选项 `query_tree_passes`,用于控制在将 query tree 转换为 AST 之前要执行的遍数。[#74536](https://github.com/ClickHouse/ClickHouse/pull/74536) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* 在 Native 格式中为 Dynamic 和 JSON 实现扁平化序列化,使其能够在无需使用 Dynamic 的 shared variant、JSON 的 shared data 等特殊结构的情况下对 Dynamic 和 JSON 数据进行序列化/反序列化。可以通过设置 `output_format_native_use_flattened_dynamic_and_json_serialization` 启用此序列化方式。此序列化方式可用于在不同语言的客户端中更方便地支持基于 TCP 协议的 Dynamic 和 JSON。[#80499](https://github.com/ClickHouse/ClickHouse/pull/80499)([Pavel Kruglov](https://github.com/Avogar))。 +* 在发生 `AuthenticationRequired` 错误后刷新 `S3` 凭证。 [#77353](https://github.com/ClickHouse/ClickHouse/pull/77353) ([Vitaly Baranov](https://github.com/vitlibar)). +* 将字典相关指标添加到 `system.asynchronous_metrics` 中:`DictionaryMaxUpdateDelay` —— 字典更新的最大延迟(秒);`DictionaryTotalFailedUpdates` —— 自上次成功加载以来,在所有字典中发生的错误总次数。[#78175](https://github.com/ClickHouse/ClickHouse/pull/78175) ([Vlad](https://github.com/codeworse))。 +* 新增关于可能为保存已损坏表而创建的数据库的警告。[#78841](https://github.com/ClickHouse/ClickHouse/pull/78841)([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 +* 在 `S3Queue`、`AzureQueue` 引擎中添加 `_time` 虚拟列。 [#78926](https://github.com/ClickHouse/ClickHouse/pull/78926) ([Anton Ivashkin](https://github.com/ianton-ru)). +* 使控制 CPU 过载时是否断开连接的设置项支持热重载。 [#79052](https://github.com/ClickHouse/ClickHouse/pull/79052) ([Alexey Katsman](https://github.com/alexkats)). +* 为 Azure Blob Storage 中的普通磁盘在 `system.tables` 中上报的数据路径添加容器名称前缀,使上报方式与 S3 和 GCP 保持一致。 [#79241](https://github.com/ClickHouse/ClickHouse/pull/79241) ([Julia Kartseva](https://github.com/jkartseva))。 +* 现在,clickhouse-client 和 local 在原本支持 `param_`(下划线)形式的基础上,也支持使用 `param-`(短横线)形式的查询参数。这解决了 [#63093](https://github.com/ClickHouse/ClickHouse/issues/63093)。[#79429](https://github.com/ClickHouse/ClickHouse/pull/79429)([Engel Danila](https://github.com/aaaengel))。 +* 在启用校验和的情况下,从本地复制数据到远程 S3 时,针对带宽折扣提供了更详细的警告信息。[#79464](https://github.com/ClickHouse/ClickHouse/pull/79464) ([VicoWu](https://github.com/VicoWu)). +* 之前,当 `input_format_parquet_max_block_size = 0`(无效值)时,ClickHouse 会卡住。现在这一行为已被修正。修复了 [#79394](https://github.com/ClickHouse/ClickHouse/issues/79394),对应的修改为 [#79601](https://github.com/ClickHouse/ClickHouse/pull/79601)([abashkeev](https://github.com/abashkeev))。 +* 为 `startup_scripts` 添加 `throw_on_error` 设置:当 `throw_on_error` 为 true 时,除非所有查询都成功完成,否则服务器将不会启动。默认情况下,`throw_on_error` 为 false,以保留之前的行为。[#79732](https://github.com/ClickHouse/ClickHouse/pull/79732) ([Aleksandr Musorin](https://github.com/AVMusorin))。 +* 支持在任意类型的 `http_handlers` 中添加 `http_response_headers`。 [#79975](https://github.com/ClickHouse/ClickHouse/pull/79975) ([Andrey Zvonov](https://github.com/zvonand))。 +* 函数 `reverse` 现已支持 `Tuple` 数据类型。关闭了 [#80053](https://github.com/ClickHouse/ClickHouse/issues/80053)。[#80083](https://github.com/ClickHouse/ClickHouse/pull/80083)([flynn](https://github.com/ucasfl))。 +* 解决 [#75817](https://github.com/ClickHouse/ClickHouse/issues/75817):允许从 `system.zookeeper` 表中获取 `auxiliary_zookeepers` 数据。[#80146](https://github.com/ClickHouse/ClickHouse/pull/80146)([Nikolay Govorov](https://github.com/mrdimidium))。 +* 为服务器 TCP 套接字添加异步指标,以提升可观测性。关闭问题 [#80187](https://github.com/ClickHouse/ClickHouse/issues/80187)。[#80188](https://github.com/ClickHouse/ClickHouse/pull/80188)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 支持将 `anyLast_respect_nulls` 和 `any_respect_nulls` 作为 `SimpleAggregateFunction`。 [#80219](https://github.com/ClickHouse/ClickHouse/pull/80219) ([Diskein](https://github.com/Diskein))。 +* 移除在副本数据库中不必要的 `adjustCreateQueryForBackup` 调用。[#80282](https://github.com/ClickHouse/ClickHouse/pull/80282) ([Vitaly Baranov](https://github.com/vitlibar))。 +* 允许在 `clickhouse-local` 中使用额外选项(跟在 `--` 之后,例如 `-- --config.value='abc'`)时省略等号。修复 [#80292](https://github.com/ClickHouse/ClickHouse/issues/80292)。[#80293](https://github.com/ClickHouse/ClickHouse/pull/80293)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 在 `SHOW ... LIKE` 查询中高亮显示元字符。解决了 [#80275](https://github.com/ClickHouse/ClickHouse/issues/80275)。[#80297](https://github.com/ClickHouse/ClickHouse/pull/80297)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 在 `clickhouse-local` 中使 SQL UDF 持久化。之前创建的 FUNCTION 会在启动时自动加载。修复了 [#80085](https://github.com/ClickHouse/ClickHouse/issues/80085)。[#80300](https://github.com/ClickHouse/ClickHouse/pull/80300)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 修正 `EXPLAIN PLAN` 中对 preliminary DISTINCT 步骤的描述。 [#80330](https://github.com/ClickHouse/ClickHouse/pull/80330) ([UnamedRus](https://github.com/UnamedRus)). +* 允许在 ODBC/JDBC 中使用命名集合。 [#80334](https://github.com/ClickHouse/ClickHouse/pull/80334) ([Andrey Zvonov](https://github.com/zvonand)). +* 用于统计只读磁盘和损坏磁盘数量的指标。在 DiskLocalCheckThread 启动时记录相应的指示性日志。 [#80391](https://github.com/ClickHouse/ClickHouse/pull/80391) ([VicoWu](https://github.com/VicoWu)). +* 实现对与 PROJECTION 联用的 `s3_plain_rewritable` 存储的支持。在之前的版本中,S3 中引用 PROJECTION 的元数据对象在移动时不会更新。修复 [#70258](https://github.com/ClickHouse/ClickHouse/issues/70258)。[#80393](https://github.com/ClickHouse/ClickHouse/pull/80393)([Sav](https://github.com/sberss))。 +* `SYSTEM UNFREEZE` 命令将不再尝试在只读和只写一次磁盘上查找分区片段。修复了 [#80430](https://github.com/ClickHouse/ClickHouse/issues/80430)。[#80432](https://github.com/ClickHouse/ClickHouse/pull/80432)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 降低了已合并分区片段相关消息的日志级别。[#80476](https://github.com/ClickHouse/ClickHouse/pull/80476) ([Hans Krutzer](https://github.com/hkrutzer)). +* 更改 Iceberg 表的分区裁剪默认行为。[#80583](https://github.com/ClickHouse/ClickHouse/pull/80583) ([Melvyn Peignon](https://github.com/melvynator))。 +* 新增两个用于观测索引搜索算法的 ProfileEvents:`IndexBinarySearchAlgorithm` 和 `IndexGenericExclusionSearchAlgorithm`。[#80679](https://github.com/ClickHouse/ClickHouse/pull/80679)([Pablo Marcos](https://github.com/pamarcos))。 +* 在旧版本内核上,不再在日志中输出关于不支持 `MADV_POPULATE_WRITE` 的报错信息(以避免日志被污染)。 [#80704](https://github.com/ClickHouse/ClickHouse/pull/80704) ([Robert Schulze](https://github.com/rschu1ze)). +* 在 `TTL` 表达式中添加了对 `Date32` 和 `DateTime64` 的支持。[#80710](https://github.com/ClickHouse/ClickHouse/pull/80710)([Andrey Zvonov](https://github.com/zvonand))。 +* 调整 `max_merge_delayed_streams_for_parallel_write` 的兼容性参数值。 [#80760](https://github.com/ClickHouse/ClickHouse/pull/80760) ([Azat Khuzhin](https://github.com/azat)). +* 修复崩溃问题:如果在析构函数中尝试删除临时文件(用于在磁盘上暂存溢出的临时数据)时抛出异常,程序可能会终止。[#80776](https://github.com/ClickHouse/ClickHouse/pull/80776) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 为 `SYSTEM SYNC REPLICA` 添加了 `IF EXISTS` 修饰符。 [#80810](https://github.com/ClickHouse/ClickHouse/pull/80810) ([Raúl Marín](https://github.com/Algunenano)). +* 扩展异常消息 “Having zero bytes, but read range is not finished...”,并在 `system.filesystem_cache` 中添加 finished_download_time 列。[#80849](https://github.com/ClickHouse/ClickHouse/pull/80849) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 在将 `EXPLAIN` 与 `indexes = 1` 一起使用时,为其输出添加搜索算法部分。会显示 “binary search” 或 “generic exclusion search” 之一。[#80881](https://github.com/ClickHouse/ClickHouse/pull/80881) ([Pablo Marcos](https://github.com/pamarcos))。 +* 在 2024 年年初,由于新的 analyzer 尚未默认启用,MySQL handler 中将 `prefer_column_name_to_alias` 硬编码为 true。现在,可以移除该硬编码。[#80916](https://github.com/ClickHouse/ClickHouse/pull/80916) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 现在,`system.iceberg_history` 会显示如 Glue 或 Iceberg REST 等 catalog 数据库的历史记录。同时,为保持一致性,将 `system.iceberg_history` 中的 `table_name` 和 `database_name` 列重命名为 `table` 和 `database`。[#80975](https://github.com/ClickHouse/ClickHouse/pull/80975) ([alesapin](https://github.com/alesapin))。 +* 允许以只读模式使用 `merge` 表函数,从而在使用它时不再需要 `CREATE TEMPORARY TABLE` 授权。[#80981](https://github.com/ClickHouse/ClickHouse/pull/80981) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* 改进对内存缓存的自省能力(在 `system.metrics` 中暴露缓存信息,以弥补 `system.asynchronouse_metrics` 中信息的不完整)。在 `dashboard.html` 中新增显示内存缓存大小(以字节为单位)。`VectorSimilarityIndexCacheSize`/`IcebergMetadataFilesCacheSize` 已重命名为 `VectorSimilarityIndexCacheBytes`/`IcebergMetadataFilesCacheBytes`。[#81023](https://github.com/ClickHouse/ClickHouse/pull/81023) ([Azat Khuzhin](https://github.com/azat))。 +* 在从 `system.rocksdb` 读取时,忽略那些其引擎不支持包含 `RocksDB` 表的数据库。[#81083](https://github.com/ClickHouse/ClickHouse/pull/81083) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* 在 `clickhouse-local` 配置文件中允许配置 `filesystem_caches` 和 `named_collections`。 [#81105](https://github.com/ClickHouse/ClickHouse/pull/81105) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 修复 `INSERT` 查询中 `PARTITION BY` 的高亮显示。在之前的版本中,`PARTITION BY` 未被作为关键字高亮显示。[#81106](https://github.com/ClickHouse/ClickHouse/pull/81106)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* Web UI 中的两个小改进:- 正确处理无输出结果的查询,例如 `CREATE`、`INSERT`(直到最近,这类查询都会导致加载指示器一直转动);- 双击表时自动滚动到顶部。[#81131](https://github.com/ClickHouse/ClickHouse/pull/81131) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `MemoryResidentWithoutPageCache` 指标表示服务器进程实际使用的物理内存(不包括用户空间页缓存),单位为字节。在启用用户空间页缓存时,它能更准确地反映实际内存使用情况;当用户空间页缓存被禁用时,该值等于 `MemoryResident`。[#81233](https://github.com/ClickHouse/ClickHouse/pull/81233)([Jayme Bird](https://github.com/jaymebrd))。 +* 将客户端、本地服务器、keeper 客户端以及 disks 应用中手动记录的异常标记为已记录,以避免重复记录。 [#81271](https://github.com/ClickHouse/ClickHouse/pull/81271) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* `use_skip_indexes_if_final` 和 `use_skip_indexes_if_final_exact_mode` 这两个 Setting 现在默认值为 `True`。带有 `FINAL` 子句的查询现在会使用 skip indexes(如果适用)来预筛选 granule,并且还会读取与匹配主键范围对应的任何额外 granule。需要沿用之前近似/不精确结果行为的用户,可以在充分评估后将 `use_skip_indexes_if_final_exact_mode` 设置为 `False`。 [#81331](https://github.com/ClickHouse/ClickHouse/pull/81331) ([Shankar Iyer](https://github.com/shankar-iyer)). +* 当在 Web UI 中存在多个查询时,将执行光标所在位置的那个查询。延续了 [#80977](https://github.com/ClickHouse/ClickHouse/issues/80977)。[#81354](https://github.com/ClickHouse/ClickHouse/pull/81354)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 此 PR 解决了转换函数单调性检查中 `is_strict` 实现存在的问题。目前,一些转换函数(例如 `toFloat64(UInt32)` 和 `toDate(UInt8)`)在本应返回 `is_strict` 为 true 时错误地返回为 false。[#81359](https://github.com/ClickHouse/ClickHouse/pull/81359)([zoomxi](https://github.com/zoomxi))。 +* 在检查 `KeyCondition` 是否匹配连续区间时,如果键被一串非严格函数包裹,则可能需要将 `Constraint::POINT` 转换为 `Constraint::RANGE`。例如:`toDate(event_time) = '2025-06-03'` 隐含了 `event_time` 的取值区间:['2025-06-03 00:00:00', '2025-06-04 00:00:00')。此 PR 修复了这一行为。[#81400](https://github.com/ClickHouse/ClickHouse/pull/81400) ([zoomxi](https://github.com/zoomxi))。 +* 当指定 `--host` 或 `--port` 时,`clickhouse`/`ch` 别名将调用 `clickhouse-client` 而不是 `clickhouse-local`。这是对 [#79422](https://github.com/ClickHouse/ClickHouse/issues/79422) 的延续,从而关闭了 [#65252](https://github.com/ClickHouse/ClickHouse/issues/65252)。[#81509](https://github.com/ClickHouse/ClickHouse/pull/81509)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 既然我们已经获得了 keeper 响应时间分布数据,就可以针对指标的直方图桶进行调优。 [#81516](https://github.com/ClickHouse/ClickHouse/pull/81516) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* 新增 profile event `PageCacheReadBytes`。[#81742](https://github.com/ClickHouse/ClickHouse/pull/81742) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* 修复文件系统缓存中的逻辑错误:“Having zero bytes but range is not finished”。 [#81868](https://github.com/ClickHouse/ClickHouse/pull/81868) ([Kseniia Sumarokova](https://github.com/kssenii)). + +#### Bug 修复(官方稳定版中对用户可见的错误行为) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* 修复参数化视图在使用 SELECT EXCEPT 查询时的问题。解决 [#49447](https://github.com/ClickHouse/ClickHouse/issues/49447)。[#57380](https://github.com/ClickHouse/ClickHouse/pull/57380)([Nikolay Degterinsky](https://github.com/evillique))。 +* Analyzer:修复在 join 中进行列类型提升后列投影名称不正确的问题。关闭 [#63345](https://github.com/ClickHouse/ClickHouse/issues/63345)。[#63519](https://github.com/ClickHouse/ClickHouse/pull/63519) ([Dmitry Novik](https://github.com/novikd))。 +* 在启用 `analyzer_compatibility_join_using_top_level_identifier` 的情况下,修复了列名冲突时的逻辑错误。[#75676](https://github.com/ClickHouse/ClickHouse/pull/75676) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* 修复在启用 `allow_push_predicate_ast_for_distributed_subqueries` 时谓词下推中的 CTE 使用问题。修复 [#75647](https://github.com/ClickHouse/ClickHouse/issues/75647)。修复 [#79672](https://github.com/ClickHouse/ClickHouse/issues/79672)。[#77316](https://github.com/ClickHouse/ClickHouse/pull/77316)([Dmitry Novik](https://github.com/novikd))。 +* 修复了一个问题:即使指定的副本不存在,命令 `SYSTEM SYNC REPLICA LIGHTWEIGHT 'foo'` 也会报告成功。该命令现在会在尝试同步之前,先在 Keeper 中正确验证该副本是否存在。 [#78405](https://github.com/ClickHouse/ClickHouse/pull/78405) ([Jayme Bird](https://github.com/jaymebrd))。 +* 修复了一个极其特定场景下的崩溃问题:当在 `ON CLUSTER` 查询的 `CONSTRAINT` 部分中使用 `currentDatabase` 函数时会导致崩溃。关闭 [#78100](https://github.com/ClickHouse/ClickHouse/issues/78100)。[#79070](https://github.com/ClickHouse/ClickHouse/pull/79070)([pufit](https://github.com/pufit))。 +* 修复在服务器间查询中外部角色传递的问题。 [#79099](https://github.com/ClickHouse/ClickHouse/pull/79099) ([Andrey Zvonov](https://github.com/zvonand)). +* 请在 SingleValueDataGeneric 中使用 IColumn 来代替 Field。这修复了某些聚合函数(例如针对 `Dynamic/Variant/JSON` 类型的 `argMax`)返回值不正确的问题。[#79166](https://github.com/ClickHouse/ClickHouse/pull/79166) ([Pavel Kruglov](https://github.com/Avogar)). +* 修复了在 Azure Blob Storage 上应用 `use_native_copy` 和 `allow_azure_native_copy` 设置的问题,并改为仅在凭证匹配时才使用原生复制,解决了 [#78964](https://github.com/ClickHouse/ClickHouse/issues/78964)。[#79561](https://github.com/ClickHouse/ClickHouse/pull/79561)([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 +* 修复在检查某列是否已关联时,对其来源作用域未知所产生的逻辑错误。修复了 [#78183](https://github.com/ClickHouse/ClickHouse/issues/78183)。修复了 [#79451](https://github.com/ClickHouse/ClickHouse/issues/79451)。[#79727](https://github.com/ClickHouse/ClickHouse/pull/79727)([Dmitry Novik](https://github.com/novikd))。 +* 修复在使用 ColumnConst 和 Analyzer 的 GROUPING SETS 查询时产生错误结果的问题。 [#79743](https://github.com/ClickHouse/ClickHouse/pull/79743) ([Andrey Zvonov](https://github.com/zvonand)). +* 修复从分布式表读取时,当本地副本已过期会导致本地分片结果重复的问题。[#79761](https://github.com/ClickHouse/ClickHouse/pull/79761) ([Eduard Karacharov](https://github.com/korowa)). +* 修复符号位为负的 NaN 的排序顺序。[#79847](https://github.com/ClickHouse/ClickHouse/pull/79847)([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 +* 现在,GROUP BY ALL 不再考虑 GROUPING 子句。[#79915](https://github.com/ClickHouse/ClickHouse/pull/79915) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 修复了 `TopK` / `TopKWeighted` 函数的状态合并不正确的问题,该问题会在容量尚未用尽时仍可能导致误差过大。 [#79939](https://github.com/ClickHouse/ClickHouse/pull/79939) ([Joel Höner](https://github.com/athre0z))。 +* 使 `azure_blob_storage` 对象存储遵从 `readonly` 设置。[#79954](https://github.com/ClickHouse/ClickHouse/pull/79954) ([Julia Kartseva](https://github.com/jkartseva)). +* 修复了在使用 `match(column, '^…')` 并包含反斜杠转义字符时出现的查询结果错误和内存不足崩溃的问题。[#79969](https://github.com/ClickHouse/ClickHouse/pull/79969) ([filimonov](https://github.com/filimonov))。 +* 禁用用于数据湖的 Hive 分区功能。部分解决了 [https://github.com/issues/assigned?issue=ClickHouse%7CClickHouse%7C79937](https://github.com/issues/assigned?issue=ClickHouse%7CClickHouse%7C79937)。[#80005](https://github.com/ClickHouse/ClickHouse/pull/80005)([Daniil Ivanik](https://github.com/divanik))。 +* 包含 lambda 表达式的 skip 索引无法被应用。修复了当索引定义中的高阶函数与查询中的完全相同时未能应用的问题。 [#80025](https://github.com/ClickHouse/ClickHouse/pull/80025) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* 在副本上根据复制日志执行 `ATTACH_PART` 命令时,修正附加 part 过程中的元数据版本。 [#80038](https://github.com/ClickHouse/ClickHouse/pull/80038) ([Aleksei Filatov](https://github.com/aalexfvk)). +* 可执行用户自定义函数(Executable User Defined Functions,eUDF)的名称不会像其他函数那样被添加到 `system.query_log` 表的 `used_functions` 列中。此 PR 实现了在查询中使用 eUDF 时,将其名称添加到该列中。 [#80073](https://github.com/ClickHouse/ClickHouse/pull/80073) ([Kyamran](https://github.com/nibblerenush))。 +* 修复 Arrow 格式中 LowCardinality(FixedString) 的逻辑错误。 [#80156](https://github.com/ClickHouse/ClickHouse/pull/80156) ([Pavel Kruglov](https://github.com/Avogar)). +* 修复 Merge 引擎读取子列时的问题。 [#80158](https://github.com/ClickHouse/ClickHouse/pull/80158) ([Pavel Kruglov](https://github.com/Avogar)). +* 修复了 `KeyCondition` 中数值类型之间比较的相关错误。 [#80207](https://github.com/ClickHouse/ClickHouse/pull/80207) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* 修复在对包含投影的表使用惰性物化时出现的 AMBIGUOUS_COLUMN_NAME 错误。[#80251](https://github.com/ClickHouse/ClickHouse/pull/80251) ([Igor Nikonov](https://github.com/devcrafter))。 +* 修复在使用隐式投影时,对字符串前缀过滤条件(如 LIKE 'ab_c%')进行计数优化时的错误。修复了 [#80250](https://github.com/ClickHouse/ClickHouse/issues/80250)。[#80261](https://github.com/ClickHouse/ClickHouse/pull/80261)([Amos Bird](https://github.com/amosbird))。 +* 修复在 MongoDB 文档中将嵌套数值字段错误地序列化为字符串的问题。移除对 MongoDB 文档的最大深度限制。[#80289](https://github.com/ClickHouse/ClickHouse/pull/80289) ([Kirill Nikiforov](https://github.com/allmazz)). +* 在 Replicated 数据库中对 RMT 的元数据检查放宽限制。Closes [#80296](https://github.com/ClickHouse/ClickHouse/issues/80296)。[#80298](https://github.com/ClickHouse/ClickHouse/pull/80298)([Nikolay Degterinsky](https://github.com/evillique))。 +* 修复用于 PostgreSQL 存储的 DateTime 和 DateTime64 的文本表示。[#80301](https://github.com/ClickHouse/ClickHouse/pull/80301)([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 +* 允许在 `StripeLog` 表中使用带时区的 `DateTime`。修复了 [#44120](https://github.com/ClickHouse/ClickHouse/issues/44120)。[#80304](https://github.com/ClickHouse/ClickHouse/pull/80304)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 如果查询计划步骤会改变行数,则禁用对含非确定性函数谓词的过滤下推。修复了 [#40273](https://github.com/ClickHouse/ClickHouse/issues/40273)。[#80329](https://github.com/ClickHouse/ClickHouse/pull/80329)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 修复在包含子列的投影中可能出现的逻辑错误和崩溃。[#80333](https://github.com/ClickHouse/ClickHouse/pull/80333)([Pavel Kruglov](https://github.com/Avogar))。 +* 修复在 `ON` 表达式不是简单等值条件时,由逻辑 JOIN sep 的过滤下推优化导致的 `NOT_FOUND_COLUMN_IN_BLOCK` 错误。修复 [#79647](https://github.com/ClickHouse/ClickHouse/issues/79647) 和 [#77848](https://github.com/ClickHouse/ClickHouse/issues/77848)。[#80360](https://github.com/ClickHouse/ClickHouse/pull/80360)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 修复在分区表中按逆序读取键时产生错误结果的问题。修复了 [#79987](https://github.com/ClickHouse/ClickHouse/issues/79987)。[#80448](https://github.com/ClickHouse/ClickHouse/pull/80448)([Amos Bird](https://github.com/amosbird))。 +* 修复了在包含 Nullable 键且启用了 optimize_read_in_order 的表中的错误排序。 [#80515](https://github.com/ClickHouse/ClickHouse/pull/80515) ([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 +* 修复了当使用 SYSTEM STOP REPLICATED VIEW 暂停可刷新materialized view 时,DROP 操作会卡住的问题。 [#80543](https://github.com/ClickHouse/ClickHouse/pull/80543) ([Michael Kolupaev](https://github.com/al13n321)). +* 修复在分布式查询中使用常量元组时导致出现 'Cannot find column' 错误的问题。 [#80596](https://github.com/ClickHouse/ClickHouse/pull/80596) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* 修复在启用 `join_use_nulls` 时分布式表中 `shardNum` 函数的问题。[#80612](https://github.com/ClickHouse/ClickHouse/pull/80612) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 +* 修复在 Merge 引擎中读取仅存在于部分表中的列时得到错误结果的问题。 [#80643](https://github.com/ClickHouse/ClickHouse/pull/80643) ([Pavel Kruglov](https://github.com/Avogar)). +* 修复可能出现的 SSH 协议问题(由 replxx 卡死引起)。 [#80688](https://github.com/ClickHouse/ClickHouse/pull/80688) ([Azat Khuzhin](https://github.com/azat)). +* `iceberg_history` 表中的时间戳现在应该是正确的。 [#80711](https://github.com/ClickHouse/ClickHouse/pull/80711) ([Melvyn Peignon](https://github.com/melvynator))。 +* 修复在字典注册失败时可能发生的崩溃(当 `CREATE DICTIONARY` 因 `CANNOT_SCHEDULE_TASK` 失败时,可能会在字典注册表中留下悬空指针,之后可能导致崩溃)。 [#80714](https://github.com/ClickHouse/ClickHouse/pull/80714) ([Azat Khuzhin](https://github.com/azat)). +* 修复在对象存储表函数中处理仅包含单个元素的枚举 glob 模式的问题。[#80716](https://github.com/ClickHouse/ClickHouse/pull/80716)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 修复了 `Tuple(Dynamic)` 与 `String` 比较函数的错误结果类型问题,该问题会导致逻辑错误。[#80728](https://github.com/ClickHouse/ClickHouse/pull/80728)([Pavel Kruglov](https://github.com/Avogar))。 +* 为 Unity Catalog 添加对缺失的数据类型 `timestamp_ntz` 的支持。修复了 [#79535](https://github.com/ClickHouse/ClickHouse/issues/79535) 和 [#79875](https://github.com/ClickHouse/ClickHouse/issues/79875)。[#80740](https://github.com/ClickHouse/ClickHouse/pull/80740)([alesapin](https://github.com/alesapin))。 +* 修复在包含 `IN cte` 的分布式查询中出现的 `THERE_IS_NO_COLUMN` 错误。修复了 [#75032](https://github.com/ClickHouse/ClickHouse/issues/75032)。[#80757](https://github.com/ClickHouse/ClickHouse/pull/80757) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 修复外部 ORDER BY 产生的过多文件问题(会导致内存占用过高)。[#80777](https://github.com/ClickHouse/ClickHouse/pull/80777) ([Azat Khuzhin](https://github.com/azat))。 +* 此 PR 可能会关闭 [#80742](https://github.com/ClickHouse/ClickHouse/issues/80742)。[#80783](https://github.com/ClickHouse/ClickHouse/pull/80783)([zoomxi](https://github.com/zoomxi))。 +* 修复了 Kafka 中由于 get_member_id() 尝试从 NULL 创建 std::string 而导致的崩溃(这很可能只会在连接 broker 失败的情况下出现)。 [#80793](https://github.com/ClickHouse/ClickHouse/pull/80793) ([Azat Khuzhin](https://github.com/azat)). +* 在关闭 Kafka 引擎前正确等待所有 consumer 退出(关机后仍处于活动状态的 consumer 可能触发各种调试断言失败,并且在表已被 DROP/DETACH 后仍可能在后台从 broker 读取数据)。 [#80795](https://github.com/ClickHouse/ClickHouse/pull/80795) ([Azat Khuzhin](https://github.com/azat)). +* 修复 `NOT_FOUND_COLUMN_IN_BLOCK` 错误,该错误由 `predicate-push-down` 优化引起。修复了 [#80443](https://github.com/ClickHouse/ClickHouse/issues/80443)。[#80834](https://github.com/ClickHouse/ClickHouse/pull/80834)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 修复在带 USING 子句的 JOIN 中解析表函数中星号(*)通配符时的逻辑错误。[#80894](https://github.com/ClickHouse/ClickHouse/pull/80894)([Vladimir Cherkasov](https://github.com/vdimir))。 +* 修复 Iceberg 元数据文件缓存的内存记账。 [#80904](https://github.com/ClickHouse/ClickHouse/pull/80904) ([Azat Khuzhin](https://github.com/azat)). +* 修复在使用 Nullable 分区键时出现的错误分区行为。 [#80913](https://github.com/ClickHouse/ClickHouse/pull/80913) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* 修复在启用谓词下推(`allow_push_predicate_ast_for_distributed_subqueries=1`)的分布式查询中,当发起查询的节点上不存在源表时出现的 `Table does not exist` 错误。修复了 [#77281](https://github.com/ClickHouse/ClickHouse/issues/77281)。[#80915](https://github.com/ClickHouse/ClickHouse/pull/80915)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 修复使用命名窗口的嵌套函数中的逻辑错误。[#80926](https://github.com/ClickHouse/ClickHouse/pull/80926) ([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 +* 修复 Nullable 列和浮点列的 extremes 处理逻辑。 [#80970](https://github.com/ClickHouse/ClickHouse/pull/80970) ([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 +* 修复在从 system.tables 查询时可能发生的崩溃问题(很可能出现在内存紧张时)。 [#80976](https://github.com/ClickHouse/ClickHouse/pull/80976) ([Azat Khuzhin](https://github.com/azat)). +* 修复了对于压缩方式由文件扩展名推断的文件,在执行带截断的原子重命名时出现的问题。 [#80979](https://github.com/ClickHouse/ClickHouse/pull/80979) ([Pablo Marcos](https://github.com/pamarcos)). +* 修复 ErrorCodes::getName。 [#81032](https://github.com/ClickHouse/ClickHouse/pull/81032) ([RinChanNOW](https://github.com/RinChanNOWWW)). +* 修复了一个问题:当用户没有所有表的访问权限时,无法在 Unity Catalog 中列出表。现在所有表都会被正确列出,尝试读取受限表时将抛出异常。[#81044](https://github.com/ClickHouse/ClickHouse/pull/81044)([alesapin](https://github.com/alesapin))。 +* 现在,ClickHouse 在执行 `SHOW TABLES` 查询时将忽略来自数据湖目录的错误和意外响应。修复了 [#79725](https://github.com/ClickHouse/ClickHouse/issues/79725)。[#81046](https://github.com/ClickHouse/ClickHouse/pull/81046)([alesapin](https://github.com/alesapin))。 +* 修复在 `JSONExtract` 和 JSON 类型解析中,将整数解析为 `DateTime64` 时的问题。[#81050](https://github.com/ClickHouse/ClickHouse/pull/81050)([Pavel Kruglov](https://github.com/Avogar))。 +* 在 schema 推断缓存中反映 date_time_input_format 设置。[#81052](https://github.com/ClickHouse/ClickHouse/pull/81052) ([Pavel Kruglov](https://github.com/Avogar)). +* 修复在执行 INSERT 时,如果在查询开始之后但在发送列之前表被 DROP 而导致的崩溃问题。[#81053](https://github.com/ClickHouse/ClickHouse/pull/81053) ([Azat Khuzhin](https://github.com/azat)). +* 修复 quantileDeterministic 中 use-of-uninitialized-value 的问题。[#81062](https://github.com/ClickHouse/ClickHouse/pull/81062) ([Azat Khuzhin](https://github.com/azat))。 +* 修复 `metadatastoragefromdisk` 磁盘事务的硬链接计数管理,并添加测试。 [#81066](https://github.com/ClickHouse/ClickHouse/pull/81066) ([Sema Checherinda](https://github.com/CheSema)). +* 与其他函数不同,User Defined Functions (UDF) 的名称不会被写入 `system.query_log` 表。本 PR 实现了在请求中使用了 UDF 时,将 UDF 名称添加到 `used_executable_user_defined_functions` 或 `used_sql_user_defined_functions` 这两列之一中。[#81101](https://github.com/ClickHouse/ClickHouse/pull/81101) ([Kyamran](https://github.com/nibblerenush))。 +* 修复了通过 http 协议使用文本格式(`JSON`、`Values` 等)插入数据且省略 `Enum` 字段时,可能出现的 `Too large size ... passed to allocator` 错误或崩溃问题。 [#81145](https://github.com/ClickHouse/ClickHouse/pull/81145) ([Anton Popov](https://github.com/CurtizJ)). +* 修复在将包含稀疏列的 INSERT 块推送到非 MT 的物化视图(MV)时触发的 LOGICAL_ERROR。[#81161](https://github.com/ClickHouse/ClickHouse/pull/81161) ([Azat Khuzhin](https://github.com/azat))。 +* 修复在使用 `distributed_product_mode_local=local` 且启用跨复制时出现的 `Unknown table expression identifier` 错误。[#81162](https://github.com/ClickHouse/ClickHouse/pull/81162) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 修复了在过滤后对 Parquet 文件行数的错误缓存问题。[#81184](https://github.com/ClickHouse/ClickHouse/pull/81184)([Michael Kolupaev](https://github.com/al13n321))。 +* 修复在使用相对缓存路径时 `fs cache max_size_to_total_space` 设置的问题。[#81237](https://github.com/ClickHouse/ClickHouse/pull/81237)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 修复了当以 Parquet 格式输出常量元组或映射时会导致 clickhouse-local 崩溃的问题。[#81249](https://github.com/ClickHouse/ClickHouse/pull/81249) ([Michael Kolupaev](https://github.com/al13n321)). +* 对通过网络接收的数组偏移量进行验证。[#81269](https://github.com/ClickHouse/ClickHouse/pull/81269) ([Azat Khuzhin](https://github.com/azat))。 +* 修复了在对空表进行 `JOIN` 且使用窗口函数的查询中的一些边界情况。该缺陷会导致并行流数量急剧增长,从而引发 OOM。 [#81299](https://github.com/ClickHouse/ClickHouse/pull/81299) ([Alexander Gololobov](https://github.com/davenger)). +* 针对数据湖 Cluster 函数(`deltaLakeCluster`、`icebergCluster` 等)的修复:(1) 修复在使用旧分析器配合 `Cluster` 函数时,`DataLakeConfiguration` 中可能出现的段错误;(2) 移除重复的数据湖元数据更新(会导致额外的对象存储请求);(3) 修复在未显式指定格式时对对象存储进行的多余列举操作(此前已对非 Cluster 数据湖引擎完成该修复)。[#81300](https://github.com/ClickHouse/ClickHouse/pull/81300) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* 使 force_restore_data 标志位可以恢复丢失的 keeper 元数据。[#81324](https://github.com/ClickHouse/ClickHouse/pull/81324) ([Raúl Marín](https://github.com/Algunenano)). +* 修复了 delta-kernel 中的 region 错误。已修复问题 [#79914](https://github.com/ClickHouse/ClickHouse/issues/79914)。[#81353](https://github.com/ClickHouse/ClickHouse/pull/81353)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 禁用 divideOrNull 的错误 JIT 优化。[#81370](https://github.com/ClickHouse/ClickHouse/pull/81370)([Raúl Marín](https://github.com/Algunenano))。 +* 修复在 MergeTree 表中分区列名过长时出现的插入错误。[#81390](https://github.com/ClickHouse/ClickHouse/pull/81390) ([hy123q](https://github.com/haoyangqian))。 +* 已在 [#81957](https://github.com/ClickHouse/ClickHouse/issues/81957) 中回溯修复:修复了在合并过程中发生异常时,`Aggregator` 可能崩溃的问题。[#81450](https://github.com/ClickHouse/ClickHouse/pull/81450)([Nikita Taranov](https://github.com/nickitat))。 +* 避免在内存中存储多个 manifest 文件的内容。[#81470](https://github.com/ClickHouse/ClickHouse/pull/81470) ([Daniil Ivanik](https://github.com/divanik)). +* 修复在关闭后台线程池(`background_.*pool_size`)期间可能出现的崩溃。[#81473](https://github.com/ClickHouse/ClickHouse/pull/81473) ([Azat Khuzhin](https://github.com/azat)). +* 修复在使用 `URL` 引擎向表写入时 `Npy` 格式中发生的越界读取问题,关闭了 [#81356](https://github.com/ClickHouse/ClickHouse/issues/81356)。[#81502](https://github.com/ClickHouse/ClickHouse/pull/81502)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 有可能出现 Web UI 显示 `NaN%` 的情况(典型的 JavaScript 问题)。[#81507](https://github.com/ClickHouse/ClickHouse/pull/81507)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 修复当 `database_replicated_enforce_synchronous_settings=1` 时 `DatabaseReplicated` 的问题。 [#81564](https://github.com/ClickHouse/ClickHouse/pull/81564) ([Azat Khuzhin](https://github.com/azat)). +* 修复 LowCardinality(Nullable(...)) 类型的排序顺序。[#81583](https://github.com/ClickHouse/ClickHouse/pull/81583)([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 +* 如果尚未从套接字中完整读取请求,服务器不应保留该 HTTP 连接。[#81595](https://github.com/ClickHouse/ClickHouse/pull/81595) ([Sema Checherinda](https://github.com/CheSema))。 +* 使标量关联子查询返回其投影表达式的 Nullable 结果。修复关联子查询返回空结果集时的行为。[#81632](https://github.com/ClickHouse/ClickHouse/pull/81632) ([Dmitry Novik](https://github.com/novikd))。 +* 修复在对 `ReplicatedMergeTree` 执行 `ATTACH` 时出现的 `Unexpected relative path for a deduplicated part` 错误。[#81647](https://github.com/ClickHouse/ClickHouse/pull/81647)([Azat Khuzhin](https://github.com/azat))。 +* 查询设置 `use_iceberg_partition_pruning` 对 Iceberg 存储不会生效,因为它使用的是全局上下文而不是查询上下文。由于其默认值为 true,因此问题不严重。此 PR 修复了该问题。[#81673](https://github.com/ClickHouse/ClickHouse/pull/81673) ([Han Fei](https://github.com/hanfei1991))。 +* 已在 [#82128](https://github.com/ClickHouse/ClickHouse/issues/82128) 中回溯:修复在合并过程中,当在生存时间 (TTL) 表达式中使用字典时出现的“Context has expired”问题。[#81690](https://github.com/ClickHouse/ClickHouse/pull/81690)([Azat Khuzhin](https://github.com/azat))。 +* 为 MergeTree 设置项 `merge_max_block_size` 添加校验,以确保其值非零。[#81693](https://github.com/ClickHouse/ClickHouse/pull/81693) ([Bharat Nallan](https://github.com/bharatnc))。 +* 修复 `clickhouse-local` 中导致 `DROP VIEW ` 查询卡住的问题。 [#81705](https://github.com/ClickHouse/ClickHouse/pull/81705) ([Bharat Nallan](https://github.com/bharatnc)). +* 修复在某些情况下的 StorageRedis join 问题。 [#81736](https://github.com/ClickHouse/ClickHouse/pull/81736) ([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 +* 修复在启用旧版分析器且使用空 `USING ()` 时出现的 `ConcurrentHashJoin` 崩溃问题。[#81754](https://github.com/ClickHouse/ClickHouse/pull/81754) ([Nikita Taranov](https://github.com/nickitat))。 +* Keeper 修复:当日志中存在无效条目时,阻止提交新日志。之前,如果 leader 错误地应用了某些日志,仍会继续提交新日志,即便 follower 检测到摘要不匹配并中止。[#81780](https://github.com/ClickHouse/ClickHouse/pull/81780) ([Antonio Andelic](https://github.com/antonio2368)). +* 修复在处理标量关联子查询时未读取所需列的问题。修复 [#81716](https://github.com/ClickHouse/ClickHouse/issues/81716)。 [#81805](https://github.com/ClickHouse/ClickHouse/pull/81805)([Dmitry Novik](https://github.com/novikd))。 +* 有人在我们的代码里到处塞了 Kusto。已清理。关闭 [#81643](https://github.com/ClickHouse/ClickHouse/issues/81643)。[#81885](https://github.com/ClickHouse/ClickHouse/pull/81885)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 在此前的版本中,服务器在响应对 `/js` 的请求时返回了过多的内容。已修复该问题,关闭了 [#61890](https://github.com/ClickHouse/ClickHouse/issues/61890)。[#81895](https://github.com/ClickHouse/ClickHouse/pull/81895)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 之前,`MongoDB` 表引擎定义可以在 `host:port` 参数中包含路径部分,但该部分会被静默忽略。`MongoDB` 集成会拒绝加载此类表。通过此修复,*如果 `MongoDB` 引擎具有五个参数,则允许加载此类表,并忽略路径部分*,并使用参数中的数据库名。*注意:* 该修复不适用于新创建的表、使用 `mongo` 表函数的查询,以及字典源和命名集合。[#81942](https://github.com/ClickHouse/ClickHouse/pull/81942) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* 修复在合并过程中抛出异常时可能导致 `Aggregator` 崩溃的问题。 [#82022](https://github.com/ClickHouse/ClickHouse/pull/82022) ([Nikita Taranov](https://github.com/nickitat)). +* 修复 `arraySimilarity` 中的复制粘贴错误,禁止在权重中使用 `UInt32` 和 `Int32` 类型。更新测试和文档。[#82103](https://github.com/ClickHouse/ClickHouse/pull/82103)([Mikhail f. Shiryaev](https://github.com/Felixoid))。 +* 修复 suggestion 线程与主客户端线程之间可能存在的数据竞争。 [#82233](https://github.com/ClickHouse/ClickHouse/pull/82233) ([Azat Khuzhin](https://github.com/azat))。 + +#### 构建/测试/打包方面的改进 {#buildtestingpackaging-improvement} + +* 使用 `postgres` 16.9 版本。[#81437](https://github.com/ClickHouse/ClickHouse/pull/81437) ([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 使用 `openssl` 3.2.4 版本。 [#81438](https://github.com/ClickHouse/ClickHouse/pull/81438) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* 使用 2025-01-27 版本的 `abseil-cpp`。 [#81440](https://github.com/ClickHouse/ClickHouse/pull/81440) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* 使用 `mongo-c-driver` 1.30.4 版本。[#81449](https://github.com/ClickHouse/ClickHouse/pull/81449)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 使用 `krb5` 1.21.3-final 版本。[#81453](https://github.com/ClickHouse/ClickHouse/pull/81453) ([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 改为使用 `orc` 2.1.2。 [#81455](https://github.com/ClickHouse/ClickHouse/pull/81455) ([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 将 `grpc` 升级到 1.73.0 版本。 [#81629](https://github.com/ClickHouse/ClickHouse/pull/81629)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 使用 `delta-kernel-rs` v0.12.1。 [#81707](https://github.com/ClickHouse/ClickHouse/pull/81707) ([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 将 `c-ares` 更新至 `v1.34.5`。[#81159](https://github.com/ClickHouse/ClickHouse/pull/81159)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 将 `curl` 升级到 8.14 版本,以修复 CVE-2025-5025 和 CVE-2025-4947 漏洞。 [#81171](https://github.com/ClickHouse/ClickHouse/pull/81171) ([larryluogit](https://github.com/larryluogit))。 +* 将 `libarchive` 升级到 3.7.9,以修复以下安全漏洞:CVE-2024-20696 CVE-2025-25724 CVE-2024-48958 CVE-2024-57970 CVE-2025-1632 CVE-2024-48957 CVE-2024-48615。[#81174](https://github.com/ClickHouse/ClickHouse/pull/81174) ([larryluogit](https://github.com/larryluogit))。 +* 将 `libxml2` 升级为 2.14.3。[#81187](https://github.com/ClickHouse/ClickHouse/pull/81187) ([larryluogit](https://github.com/larryluogit)). +* 避免将随附的 Rust 源代码复制到 `CARGO_HOME`。 [#79560](https://github.com/ClickHouse/ClickHouse/pull/79560) ([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 通过使用我们自有的端点替代 Sentry 库,移除了对该库的依赖。[#80236](https://github.com/ClickHouse/ClickHouse/pull/80236) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 更新 CI 镜像中的 Python 依赖,以解决 Dependabot 告警。[#80658](https://github.com/ClickHouse/ClickHouse/pull/80658) ([Raúl Marín](https://github.com/Algunenano)). +* 为提高在启用 Keeper 故障注入时的测试健壮性,在启动时重试从 Keeper 读取 replicated DDL 停止标志。 [#80964](https://github.com/ClickHouse/ClickHouse/pull/80964) ([Alexander Gololobov](https://github.com/davenger)). +* 对 Ubuntu 软件仓库 URL 使用 https。 [#81016](https://github.com/ClickHouse/ClickHouse/pull/81016) ([Raúl Marín](https://github.com/Algunenano)). +* 更新测试镜像中的 Python 依赖项。[#81042](https://github.com/ClickHouse/ClickHouse/pull/81042) ([dependabot[bot]](https://github.com/apps/dependabot))。 +* 为 Nix 构建引入 `flake.nix`。 [#81463](https://github.com/ClickHouse/ClickHouse/pull/81463) ([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 修复 `delta-kernel-rs` 在构建时需要网络访问的问题。解决 [#80609](https://github.com/ClickHouse/ClickHouse/issues/80609)。[#81602](https://github.com/ClickHouse/ClickHouse/pull/81602)([Konstantin Bogdanov](https://github.com/thevar1able))。请参阅文章 [A Year of Rust in ClickHouse](https://clickhouse.com/blog/rust)。 + +### ClickHouse 25.5 版本,2025-05-22 {#255} + +#### 不向后兼容的变更 {#backward-incompatible-change} + +* `geoToH3` 函数现在按照 (lat, lon, res) 的顺序接收输入(这与其他几何函数的惯例一致)。希望保留之前结果顺序 (lon, lat, res) 的用户,可以将设置 `geotoh3_argument_order = 'lon_lat'`。 [#78852](https://github.com/ClickHouse/ClickHouse/pull/78852) ([Pratima Patel](https://github.com/pratimapatel2008)). +* 新增文件系统缓存设置 `allow_dynamic_cache_resize`,默认值为 `false`,用于允许动态调整文件系统缓存大小。原因:在某些环境(如 ClickHouse Cloud)中,所有扩缩容事件都是通过重启进程来完成的,我们希望显式禁用此特性,以便更好地控制行为,并作为安全防护措施。此 PR 被标记为不向后兼容,因为在旧版本中,动态缓存调整在默认情况下是启用的且不需要特殊设置。[#79148](https://github.com/ClickHouse/ClickHouse/pull/79148) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 移除了对旧版索引类型 `annoy` 和 `usearch` 的支持。它们已经长期仅作为存根存在,即任何尝试使用这些旧索引的操作都会返回错误。如果你仍然有 `annoy` 和 `usearch` 索引,请将其删除。[#79802](https://github.com/ClickHouse/ClickHouse/pull/79802) ([Robert Schulze](https://github.com/rschu1ze)). +* 移除服务器设置 `format_alter_commands_with_parentheses`。该设置在 24.2 中被引入且默认禁用,在 25.2 中默认启用。由于不存在不支持新格式的 LTS 版本,我们可以移除此设置。[#79970](https://github.com/ClickHouse/ClickHouse/pull/79970) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* 默认启用 `DeltaLake` 存储的 `delta-kernel-rs` 实现。[#79541](https://github.com/ClickHouse/ClickHouse/pull/79541) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 如果从 `URL` 读取数据涉及多次重定向,设置 `enable_url_encoding` 将在重定向链中的所有重定向上被正确应用。[#79563](https://github.com/ClickHouse/ClickHouse/pull/79563) ([Shankar Iyer](https://github.com/shankar-iyer)). 设置 `enble_url_encoding` 的默认值现在被设为 `false`。[#80088](https://github.com/ClickHouse/ClickHouse/pull/80088) ([Shankar Iyer](https://github.com/shankar-iyer)). + +#### 新功能 {#new-feature} + +* 在 `WHERE` 子句中支持标量关联子查询。修复 [#6697](https://github.com/ClickHouse/ClickHouse/issues/6697)。[#79600](https://github.com/ClickHouse/ClickHouse/pull/79600)([Dmitry Novik](https://github.com/novikd))。在简单场景中支持在投影列表中使用关联子查询。[#79925](https://github.com/ClickHouse/ClickHouse/pull/79925)([Dmitry Novik](https://github.com/novikd))。[#76078](https://github.com/ClickHouse/ClickHouse/pull/76078)([Dmitry Novik](https://github.com/novikd))。现在已覆盖 TPC-H 测试套件的 100%。 +* 使用向量相似度索引的向量搜索现已进入 beta 阶段(此前为实验性阶段)。[#80164](https://github.com/ClickHouse/ClickHouse/pull/80164) ([Robert Schulze](https://github.com/rschu1ze))。 +* 在 `Parquet` 格式中支持地理数据类型。解决了 [#75317](https://github.com/ClickHouse/ClickHouse/issues/75317) 中的问题。[#79777](https://github.com/ClickHouse/ClickHouse/pull/79777)([scanhex12](https://github.com/scanhex12))。 +* 新增函数 `sparseGrams`、`sparseGramsHashes`、`sparseGramsHashesUTF8`、`sparseGramsUTF8`,用于计算“sparse-ngrams”——一种稳健的子串提取算法,可用于索引与搜索。 [#79517](https://github.com/ClickHouse/ClickHouse/pull/79517) ([scanhex12](https://github.com/scanhex12)). +* `clickhouse-local`(及其简写别名 `ch`)现在在有输入数据需要处理时,会隐式添加 `FROM table` 子句。这解决了 [#65023](https://github.com/ClickHouse/ClickHouse/issues/65023)。同时在 clickhouse-local 中启用了格式推断功能:如果未指定 `--input-format` 且处理的是普通文件,则会自动推断格式。[#79085](https://github.com/ClickHouse/ClickHouse/pull/79085)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 添加 `stringBytesUniq` 和 `stringBytesEntropy` 函数,用于搜索可能是随机或加密的数据。[#79350](https://github.com/ClickHouse/ClickHouse/pull/79350)([Sachin Kumar Singh](https://github.com/sachinkumarsingh092))。 +* 新增 Base32 编码和解码函数。[#79809](https://github.com/ClickHouse/ClickHouse/pull/79809) ([Joanna Hulboj](https://github.com/jh0x)). +* 新增 `getServerSetting` 和 `getMergeTreeSetting` 函数,修复 #78318。[#78439](https://github.com/ClickHouse/ClickHouse/pull/78439) ([NamNguyenHoai](https://github.com/NamHoaiNguyen))。 +* 添加新的 `iceberg_enable_version_hint` 设置以利用 `version-hint.text` 文件。[#78594](https://github.com/ClickHouse/ClickHouse/pull/78594)([Arnaud Briche](https://github.com/arnaudbriche))。 +* 支持使用 `LIKE` 关键字进行过滤,从数据库中截断特定表。 [#78597](https://github.com/ClickHouse/ClickHouse/pull/78597) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 在 `MergeTree` 系列表中支持 `_part_starting_offset` 虚拟列。该列表示所有之前分区片段的累积行数,在查询时根据当前分区片段列表计算得出。累积值在整个查询执行过程中都会保留,并且在分区片段裁剪后仍然有效。为支持此行为,相关内部逻辑已完成重构。[#79417](https://github.com/ClickHouse/ClickHouse/pull/79417)([Amos Bird](https://github.com/amosbird))。 +* 添加函数 `divideOrNull`、`moduloOrNull`、`intDivOrNull`、`positiveModuloOrNull`,在右侧参数为零时返回 NULL。 [#78276](https://github.com/ClickHouse/ClickHouse/pull/78276) ([kevinyhzou](https://github.com/KevinyhZou)). +* ClickHouse 向量搜索现在同时支持预过滤和后过滤,并提供相关设置以进行更精细的控制。(issue [#78161](https://github.com/ClickHouse/ClickHouse/issues/78161))。[#79854](https://github.com/ClickHouse/ClickHouse/pull/79854)([Shankar Iyer](https://github.com/shankar-iyer))。 +* 新增 [`icebergHash`](https://iceberg.apache.org/spec/#appendix-b-32-bit-hash-requirements) 和 [`icebergBucket`](https://iceberg.apache.org/spec/#bucket-transform-details) 函数。支持在使用 [`bucket transfom`](https://iceberg.apache.org/spec/#partitioning) 进行分区的 `Iceberg` 表中进行数据文件剪枝。[#79262](https://github.com/ClickHouse/ClickHouse/pull/79262) ([Daniil Ivanik](https://github.com/divanik))。 + +#### 实验特性 {#experimental-feature} + +* 新增 `Time`/`Time64` 数据类型:`Time`(HHH:MM:SS)和 `Time64`(HHH:MM:SS.`<fractional>`),以及一些基础的类型转换(cast)函数和用于与其他数据类型交互的函数。同时,将已有函数名称从 `toTime` 修改为 `toTimeWithFixedDate`,因为类型转换函数需要使用 `toTime`。[#75735](https://github.com/ClickHouse/ClickHouse/pull/75735) ([Yarik Briukhovetskyi](https://github.com/yariks5s)) +* 用于 Iceberg 数据湖的 Hive metastore catalog。[#77677](https://github.com/ClickHouse/ClickHouse/pull/77677) ([scanhex12](https://github.com/scanhex12)) +* 将 `full_text` 类型的索引重命名为 `gin`。这与 PostgreSQL 和其他数据库中更常见的术语保持一致。现有的 `full_text` 类型索引仍然可以加载,但在尝试在搜索中使用它们时会抛出异常(并建议改用 `gin` 索引)。[#79024](https://github.com/ClickHouse/ClickHouse/pull/79024) ([Robert Schulze](https://github.com/rschu1ze)) + +#### 性能优化 {#performance-improvement} + +* 将 Compact 分区片段格式更改为为每个子流保存标记,从而可以单独读取子列。旧的 Compact 格式在读取时仍然受支持,并且可以通过 MergeTree SETTING `write_marks_for_substreams_in_compact_parts` 在写入时启用。为了更安全地进行升级,默认情况下该选项是禁用的,因为这会改变 Compact 分区片段的存储方式。它将在后续的某个版本中默认启用。[#77940](https://github.com/ClickHouse/ClickHouse/pull/77940) ([Pavel Kruglov](https://github.com/Avogar))。 +* 允许将包含子列的条件下推到 `PREWHERE`。 [#79489](https://github.com/ClickHouse/ClickHouse/pull/79489) ([Pavel Kruglov](https://github.com/Avogar)). +* 通过在多个粒度上并行计算索引表达式来加速二级索引。[#64109](https://github.com/ClickHouse/ClickHouse/pull/64109)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 默认启用 `compile_expressions`(用于普通表达式片段的 JIT 编译器)。从而解决了 [#51264](https://github.com/ClickHouse/ClickHouse/issues/51264)、[#56386](https://github.com/ClickHouse/ClickHouse/issues/56386) 和 [#66486](https://github.com/ClickHouse/ClickHouse/issues/66486) 等问题。[#79907](https://github.com/ClickHouse/ClickHouse/pull/79907)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 新增设置:`use_skip_indexes_in_final_exact_mode`。如果对 `ReplacingMergeTree` 表的查询带有 FINAL 子句,而仅根据跳过索引来确定要读取的表范围,可能会产生不正确的结果。此设置可通过扫描与跳过索引返回的主键范围有重叠关系的较新分区片段,确保返回正确结果。设置为 0 表示禁用,为 1 表示启用。[#78350](https://github.com/ClickHouse/ClickHouse/pull/78350)([Shankar Iyer](https://github.com/shankar-iyer))。 +* 对象存储集群表函数(例如 `s3Cluster`)现在在读取时会基于一致性哈希将文件分配到各个副本,以提升缓存局部性。[#77326](https://github.com/ClickHouse/ClickHouse/pull/77326) ([Andrej Hoos](https://github.com/adikus))。 +* 通过允许并行执行 `INSERT`(可通过队列设置 `parallel_inserts=true` 启用),提升 `S3Queue`/`AzureQueue` 的性能。之前 S3Queue/AzureQueue 只能在流水线的第一阶段(下载、解析)并行执行,`INSERT` 是单线程的,而且 `INSERT` 几乎总是瓶颈。现在性能将几乎可以随 `processing_threads_num` 线性扩展。[#77671](https://github.com/ClickHouse/ClickHouse/pull/77671)([Azat Khuzhin](https://github.com/azat))。在 S3Queue/AzureQueue 中实现更公平的 `max_processed_files_before_commit` 设置。[#79363](https://github.com/ClickHouse/ClickHouse/pull/79363)([Azat Khuzhin](https://github.com/azat))。 +* 引入阈值(由设置项 `parallel_hash_join_threshold` 控制),当右表大小低于该阈值时会回退到 `hash` 算法。[#76185](https://github.com/ClickHouse/ClickHouse/pull/76185) ([Nikita Taranov](https://github.com/nickitat))。 +* 现在,在启用并行副本读取时,我们会根据副本数量来确定读取任务的大小。这样在需要读取的数据量不大时,可以在副本之间实现更好的工作分配。[#78695](https://github.com/ClickHouse/ClickHouse/pull/78695)([Nikita Taranov](https://github.com/nickitat))。 +* 允许在分布式聚合的最终阶段并行合并 `uniqExact` 状态。[#78703](https://github.com/ClickHouse/ClickHouse/pull/78703) ([Nikita Taranov](https://github.com/nickitat))。 +* 修复在带键聚合中并行合并 `uniqExact` 状态时可能出现的性能下降。[#78724](https://github.com/ClickHouse/ClickHouse/pull/78724)([Nikita Taranov](https://github.com/nickitat))。 +* 减少对 Azure 存储执行的 List Blobs API 调用次数。[#78860](https://github.com/ClickHouse/ClickHouse/pull/78860) ([Julia Kartseva](https://github.com/jkartseva)). +* 修复带并行副本的分布式 `INSERT SELECT` 的性能问题。[#79441](https://github.com/ClickHouse/ClickHouse/pull/79441) ([Azat Khuzhin](https://github.com/azat))。 +* 避免 `LogSeriesLimiter` 在每次实例化时执行清理操作,以避免在高并发场景下的锁竞争和性能退化。[#79864](https://github.com/ClickHouse/ClickHouse/pull/79864) ([filimonov](https://github.com/filimonov))。 +* 通过简单 COUNT 优化加速查询。 [#79945](https://github.com/ClickHouse/ClickHouse/pull/79945) ([Raúl Marín](https://github.com/Algunenano)). +* 对部分 `Decimal` 操作的内联进行了优化。[#79999](https://github.com/ClickHouse/ClickHouse/pull/79999) ([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 将 `input_format_parquet_bloom_filter_push_down` 的默认值设为 true,并修复设置变更历史中的一个错误。[#80058](https://github.com/ClickHouse/ClickHouse/pull/80058) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 针对所有行都应被删除的分区片段优化了 `ALTER ... DELETE` 变更操作。现在,在这种情况下会直接创建一个空的分区片段来替代原始分区片段,而无需执行变更操作。 [#79307](https://github.com/ClickHouse/ClickHouse/pull/79307) ([Anton Popov](https://github.com/CurtizJ)). +* 在可能的情况下,避免在插入 Compact part 时对数据块进行额外拷贝。[#79536](https://github.com/ClickHouse/ClickHouse/pull/79536) ([Pavel Kruglov](https://github.com/Avogar))。 +* 新增 `input_format_max_block_size_bytes` 设置,用于按字节数限制在输入格式中创建的 block 大小。这有助于在导入包含大值的行时避免高内存占用。[#79495](https://github.com/ClickHouse/ClickHouse/pull/79495) ([Pavel Kruglov](https://github.com/Avogar))。 +* 移除线程和 `async_socket_for_remote/use_hedge_requests` 的保护页(guard pages)。将 `FiberStack` 中的内存分配方式从 `mmap` 更改为 `aligned_alloc`。由于这会导致 VMA 被拆分,在高负载下可能会触及 `vm.max_map_count` 限制。[#79147](https://github.com/ClickHouse/ClickHouse/pull/79147) ([Sema Checherinda](https://github.com/CheSema))。 +* 支持并行副本的惰性物化。 [#79401](https://github.com/ClickHouse/ClickHouse/pull/79401) ([Igor Nikonov](https://github.com/devcrafter)). + +#### 改进 {#improvement} + +* 新增支持实时应用轻量级删除(通过设置 `lightweight_deletes_sync = 0`、`apply_mutations_on_fly = 1`)。[#79281](https://github.com/ClickHouse/ClickHouse/pull/79281) ([Anton Popov](https://github.com/CurtizJ)). +* 如果在终端中显示的数据为 Pretty 格式,并且后续的数据块具有相同的列宽,则可以通过上移光标,将其接续到前一个数据块之后并与之拼接。由此关闭了 [#79333](https://github.com/ClickHouse/ClickHouse/issues/79333)。该功能由新的设置 `output_format_pretty_glue_chunks` 控制。[#79339](https://github.com/ClickHouse/ClickHouse/pull/79339)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 将 `isIPAddressInRange` FUNCTION 扩展为支持 `String`、`IPv4`、`IPv6`、`Nullable(String)`、`Nullable(IPv4)` 和 `Nullable(IPv6)` 数据类型。[#78364](https://github.com/ClickHouse/ClickHouse/pull/78364)([YjyJeff](https://github.com/YjyJeff))。 +* 允许动态修改 `PostgreSQL` 引擎的连接池配置。[#78414](https://github.com/ClickHouse/ClickHouse/pull/78414) ([Samay Sharma](https://github.com/samay-sharma))。 +* 允许在常规投影中指定 `_part_offset`。这是构建投影索引的第一步。它可以与 [#58224](https://github.com/ClickHouse/ClickHouse/issues/58224) 配合使用,并有助于改进 #63207。[#78429](https://github.com/ClickHouse/ClickHouse/pull/78429)([Amos Bird](https://github.com/amosbird))。 +* 为 `system.named_collections` 新增 `create_query` 和 `source` 列。关闭 [#78179](https://github.com/ClickHouse/ClickHouse/issues/78179)。[#78582](https://github.com/ClickHouse/ClickHouse/pull/78582)([MikhailBurdukov](https://github.com/MikhailBurdukov))。 +* 在系统表 `system.query_condition_cache` 中新增了字段 `condition`。该字段存储明文条件,其哈希值用作查询条件缓存中的键。 [#78671](https://github.com/ClickHouse/ClickHouse/pull/78671) ([Robert Schulze](https://github.com/rschu1ze)). +* 现在可以在 `BFloat16` 列上创建向量相似度索引。[#78850](https://github.com/ClickHouse/ClickHouse/pull/78850) ([Robert Schulze](https://github.com/rschu1ze))。 +* 在 `DateTime64` 的最佳努力解析模式下,支持带小数部分的 Unix 时间戳。[#78908](https://github.com/ClickHouse/ClickHouse/pull/78908) ([Pavel Kruglov](https://github.com/Avogar))。 +* 在 `DeltaLake` 存储的 delta-kernel 实现中,修复列映射模式的问题,并为模式演进添加测试。[#78921](https://github.com/ClickHouse/ClickHouse/pull/78921) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* 通过改进值转换,优化以 Values 格式向 `Variant` 列插入数据的操作。 [#78923](https://github.com/ClickHouse/ClickHouse/pull/78923) ([Pavel Kruglov](https://github.com/Avogar)). +* `tokens` 函数现已扩展,可接受一个额外的 “tokenizer” 参数,以及更多该 tokenizer 特定的参数。[#79001](https://github.com/ClickHouse/ClickHouse/pull/79001) ([Elmi Ahmadov](https://github.com/ahmadov))。 +* `SHOW CLUSTER` 语句现在会展开其参数中的宏(如果有的话)。[#79006](https://github.com/ClickHouse/ClickHouse/pull/79006) ([arf42](https://github.com/arf42))。 +* 哈希函数现在支持数组、元组和映射中包含 `NULL` 值。(issues [#48365](https://github.com/ClickHouse/ClickHouse/issues/48365) 和 [#48623](https://github.com/ClickHouse/ClickHouse/issues/48623))。[#79008](https://github.com/ClickHouse/ClickHouse/pull/79008) ([Michael Kolupaev](https://github.com/al13n321))。 +* 将 cctz 更新到 2025a。 [#79043](https://github.com/ClickHouse/ClickHouse/pull/79043) ([Raúl Marín](https://github.com/Algunenano)). +* 将 UDF 的默认 stderr 处理方式更改为 "log_last",有利于提高易用性。[#79066](https://github.com/ClickHouse/ClickHouse/pull/79066) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 使 Web UI 中的选项卡支持撤销操作。关闭 [#71284](https://github.com/ClickHouse/ClickHouse/issues/71284)。[#79084](https://github.com/ClickHouse/ClickHouse/pull/79084)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 在 `recoverLostReplica` 过程中移除相关设置,与此前在此变更中的处理方式保持一致:[https://github.com/ClickHouse/ClickHouse/pull/78637](https://github.com/ClickHouse/ClickHouse/pull/78637)。[#79113](https://github.com/ClickHouse/ClickHouse/pull/79113)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* 添加 profile 事件:`ParquetReadRowGroups` 和 `ParquetPrunedRowGroups`,用于对 Parquet 索引裁剪进行性能分析。 [#79180](https://github.com/ClickHouse/ClickHouse/pull/79180) ([flynn](https://github.com/ucasfl)). +* 支持在集群上对数据库执行 `ALTER` 操作。[#79242](https://github.com/ClickHouse/ClickHouse/pull/79242)([Tuan Pham Anh](https://github.com/tuanpach))。 +* 显式跳过在为 QueryMetricLog 收集统计信息时错过的运行,否则日志需要很长时间才能追上当前时间。[#79257](https://github.com/ClickHouse/ClickHouse/pull/79257) ([Mikhail Artemenko](https://github.com/Michicosun))。 +* 对基于 `Arrow` 的格式的读取进行了小幅优化。[#79308](https://github.com/ClickHouse/ClickHouse/pull/79308)([Bharat Nallan](https://github.com/bharatnc))。 +* `allow_archive_path_syntax` 设置被误标记为实验性特性。新增一个测试,防止实验性设置在默认情况下被启用。[#79320](https://github.com/ClickHouse/ClickHouse/pull/79320) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 使页缓存设置可以在单个查询层面进行调整。这样可以更快速地进行实验,并可以针对高吞吐量和低延迟查询进行精细调优。 [#79337](https://github.com/ClickHouse/ClickHouse/pull/79337) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 在 Pretty 输出格式中,对于看起来像典型 64 位哈希值的数字,将不再打印数字提示。此更改修复了 [#79334](https://github.com/ClickHouse/ClickHouse/issues/79334)。[#79338](https://github.com/ClickHouse/ClickHouse/pull/79338)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 高级仪表板上图表的颜色现在将根据对应查询的哈希值计算得出。这有助于在滚动浏览仪表板时更容易记住并定位某个图表。[#79341](https://github.com/ClickHouse/ClickHouse/pull/79341) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 新增异步指标 `FilesystemCacheCapacity`,表示 `cache` 虚拟文件系统的总容量。这对于全局基础设施监控非常有用。[#79348](https://github.com/ClickHouse/ClickHouse/pull/79348) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 优化对 system.parts 的访问(仅在需要时读取列/索引的大小)。 [#79352](https://github.com/ClickHouse/ClickHouse/pull/79352) ([Azat Khuzhin](https://github.com/azat)). +* 对查询 `'SHOW CLUSTER '` 仅计算相关字段,而不是计算所有字段。[#79368](https://github.com/ClickHouse/ClickHouse/pull/79368)([Tuan Pham Anh](https://github.com/tuanpach))。 +* 允许为 `DatabaseCatalog` 指定存储配置。 [#79407](https://github.com/ClickHouse/ClickHouse/pull/79407) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 支持在 `DeltaLake` 中使用本地存储。 [#79416](https://github.com/ClickHouse/ClickHouse/pull/79416) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 添加一个查询级别设置以启用 delta-kernel-rs:`allow_experimental_delta_kernel_rs`。 [#79418](https://github.com/ClickHouse/ClickHouse/pull/79418) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* 修复从 Azure/S3 Blob 存储中列出 Blob 时可能出现的无限循环问题。[#79425](https://github.com/ClickHouse/ClickHouse/pull/79425) ([Alexander Gololobov](https://github.com/davenger))。 +* 新增文件系统缓存设置项 `max_size_ratio_to_total_space`。 [#79460](https://github.com/ClickHouse/ClickHouse/pull/79460) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 针对 `clickhouse-benchmark`,将 `reconnect` 选项重新配置为可接受 0、1 或 N 作为取值,并据此执行重连。 [#79465](https://github.com/ClickHouse/ClickHouse/pull/79465) ([Sachin Kumar Singh](https://github.com/sachinkumarsingh092)). +* 允许在不同 `plain_rewritable` 磁盘上的表上执行 `ALTER TABLE ... MOVE|REPLACE PARTITION`。 [#79566](https://github.com/ClickHouse/ClickHouse/pull/79566) ([Julia Kartseva](https://github.com/jkartseva))。 +* 现在,如果参考向量的类型为 `Array(BFloat16)`,也会使用向量相似度索引。 [#79745](https://github.com/ClickHouse/ClickHouse/pull/79745) ([Shankar Iyer](https://github.com/shankar-iyer)). +* 在 system.error_log 表中添加 last_error_message、last_error_trace 和 query_id。相关 issue [#75816](https://github.com/ClickHouse/ClickHouse/issues/75816)。[#79836](https://github.com/ClickHouse/ClickHouse/pull/79836)([Andrei Tinikov](https://github.com/Dolso))。 +* 默认启用崩溃报告发送。可在服务器配置文件中关闭该功能。 [#79838](https://github.com/ClickHouse/ClickHouse/pull/79838) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 系统表 `system.functions` 现在会显示各个函数首次引入的 ClickHouse 版本信息。[#79839](https://github.com/ClickHouse/ClickHouse/pull/79839)([Robert Schulze](https://github.com/rschu1ze))。 +* 新增 `access_control_improvements.enable_user_name_access_type` 设置项。此设置允许启用或禁用针对用户/角色的精确授权控制,该功能最初在 [https://github.com/ClickHouse/ClickHouse/pull/72246](https://github.com/ClickHouse/ClickHouse/pull/72246) 中引入。如果你的集群中存在版本早于 25.1 的副本,建议关闭此设置。[#79842](https://github.com/ClickHouse/ClickHouse/pull/79842) ([pufit](https://github.com/pufit))。 +* 在对 `ASTSelectWithUnionQuery::clone()` 方法的正确实现中,现在也会考虑到 `is_normalized` 字段。这可能有助于解决 [#77569](https://github.com/ClickHouse/ClickHouse/issues/77569)。[#79909](https://github.com/ClickHouse/ClickHouse/pull/79909)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* 修复了使用 EXCEPT 运算符的某些查询在格式化时不一致的问题。如果 EXCEPT 运算符左侧以 `*` 结尾,格式化后的查询会丢失括号,从而被解析为带有 `EXCEPT` 修饰符的 `*`。这些查询是通过模糊测试工具(fuzzer)发现的,在实际使用中不太可能遇到。本次修改关闭了 [#79950](https://github.com/ClickHouse/ClickHouse/issues/79950)。[#79952](https://github.com/ClickHouse/ClickHouse/pull/79952)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 通过使用变体反序列化顺序缓存,对 `JSON` 类型的解析进行了小幅改进。[#79984](https://github.com/ClickHouse/ClickHouse/pull/79984) ([Pavel Kruglov](https://github.com/Avogar))。 +* 新增 `s3_slow_all_threads_after_network_error` 设置。 [#80035](https://github.com/ClickHouse/ClickHouse/pull/80035) ([Vitaly Baranov](https://github.com/vitlibar)). +* 关于所选分区片段合并的日志级别设置错误(应为 Information)。修复了 [#80061](https://github.com/ClickHouse/ClickHouse/issues/80061)。[#80062](https://github.com/ClickHouse/ClickHouse/pull/80062)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* trace-visualizer:在工具提示和状态信息中添加 runtime/share。 [#79040](https://github.com/ClickHouse/ClickHouse/pull/79040) ([Sergei Trifonov](https://github.com/serxa))。 +* trace-visualizer:支持从 ClickHouse 服务器加载数据。 [#79042](https://github.com/ClickHouse/ClickHouse/pull/79042) ([Sergei Trifonov](https://github.com/serxa)). +* 为失败的合并操作添加指标。 [#79228](https://github.com/ClickHouse/ClickHouse/pull/79228) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* 如果指定了最大迭代次数,`clickhouse-benchmark` 将根据该最大迭代次数显示进度百分比。[#79346](https://github.com/ClickHouse/ClickHouse/pull/79346)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 添加 system.parts 表可视化功能。 [#79437](https://github.com/ClickHouse/ClickHouse/pull/79437) ([Sergei Trifonov](https://github.com/serxa)). +* 新增用于分析查询延迟的工具。 [#79978](https://github.com/ClickHouse/ClickHouse/pull/79978) ([Sergei Trifonov](https://github.com/serxa))。 + +#### Bug 修复(官方稳定版中对用户可见的错误行为) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* 修复在数据片段中缺失列的重命名问题。[#76346](https://github.com/ClickHouse/ClickHouse/pull/76346) ([Anton Popov](https://github.com/CurtizJ)). +* materialized view 可能启动得太晚,例如在为其提供流式数据的 Kafka 表之后才开始运行。[#72123](https://github.com/ClickHouse/ClickHouse/pull/72123)([Ilya Golshtein](https://github.com/ilejn))。 +* 修复了在启用 analyzer 的情况下创建 `VIEW` 时对 `SELECT` 查询的重写问题。修复了 [#75956](https://github.com/ClickHouse/ClickHouse/issues/75956)。[#76356](https://github.com/ClickHouse/ClickHouse/pull/76356)([Dmitry Novik](https://github.com/novikd))。 +* 修复从服务器应用 `async_insert` 设置(通过 `apply_settings_from_server`)(此前会在客户端导致 `Unknown packet 11 from server` 错误)。[#77578](https://github.com/ClickHouse/ClickHouse/pull/77578) ([Azat Khuzhin](https://github.com/azat))。 +* 修复了可刷新materialized view在 Replicated 数据库中新添加的副本上无法工作的问题。 [#77774](https://github.com/ClickHouse/ClickHouse/pull/77774) ([Michael Kolupaev](https://github.com/al13n321)). +* 修复了可刷新materialized view 会破坏备份的问题。 [#77893](https://github.com/ClickHouse/ClickHouse/pull/77893) ([Michael Kolupaev](https://github.com/al13n321)). +* 修复 `transform` 旧触发逻辑中的错误。 [#78247](https://github.com/ClickHouse/ClickHouse/pull/78247) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* 修复了一些在使用 analyzer 时未应用二级索引的情况。修复了 [#65607](https://github.com/ClickHouse/ClickHouse/issues/65607) 和 [#69373](https://github.com/ClickHouse/ClickHouse/issues/69373)。[#78485](https://github.com/ClickHouse/ClickHouse/pull/78485)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 修复在启用压缩的 HTTP 协议下导出 profile events(`NetworkSendElapsedMicroseconds` / `NetworkSendBytes`)时的问题(误差不应大于缓冲区大小,通常约为 1MiB)。[#78516](https://github.com/ClickHouse/ClickHouse/pull/78516) ([Azat Khuzhin](https://github.com/azat))。 +* 修复 analyzer 在 `JOIN ... USING` 中涉及 ALIAS 列时产生 `LOGICAL_ERROR` 的问题——现在会抛出更合适的错误。 [#78618](https://github.com/ClickHouse/ClickHouse/pull/78618) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* 修复 analyzer:当 `SELECT` 包含位置参数时,`CREATE VIEW ... ON CLUSTER` 会失败的问题。 [#78663](https://github.com/ClickHouse/ClickHouse/pull/78663) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* 修复在执行 `INSERT SELECT` 向使用模式推断的表函数插入数据且 `SELECT` 中包含标量子查询时出现的 `Block structure mismatch` 错误。[#78677](https://github.com/ClickHouse/ClickHouse/pull/78677)([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 +* 修复 analyzer:在分布式表上使用 prefer_global_in_and_join=1 时,SELECT 查询中的 `in` 函数应被替换为 `globalIn`。 [#78749](https://github.com/ClickHouse/ClickHouse/pull/78749) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* 修复了多种类型的 `SELECT` 查询,这些查询从使用 `MongoDB` 引擎的表或 `mongodb` 表函数中读取数据:在 `WHERE` 子句中对常量值进行隐式类型转换的查询(例如 `WHERE datetime = '2025-03-10 00:00:00'`);以及带有 `LIMIT` 和 `GROUP BY` 的查询。此前,这些查询可能会返回错误的结果。[#78777](https://github.com/ClickHouse/ClickHouse/pull/78777)([Anton Popov](https://github.com/CurtizJ))。 +* 修复不同 JSON 类型之间的转换。现在通过先与 String 之间互相转换,再进行简单的 cast 来完成。这样效率较低,但可以保证 100% 的准确性。[#78807](https://github.com/ClickHouse/ClickHouse/pull/78807) ([Pavel Kruglov](https://github.com/Avogar))。 +* 修复在将 Dynamic 类型转换为 Interval 类型时的逻辑错误。 [#78813](https://github.com/ClickHouse/ClickHouse/pull/78813) ([Pavel Kruglov](https://github.com/Avogar))。 +* 修复在 JSON 解析出错时的列回滚问题。[#78836](https://github.com/ClickHouse/ClickHouse/pull/78836) ([Pavel Kruglov](https://github.com/Avogar))。 +* 修复在使用常量别名列进行 JOIN 时导致的“bad cast”错误。[#78848](https://github.com/ClickHouse/ClickHouse/pull/78848) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* 禁止在 materialized view 中,对在视图与目标表中数据类型不一致的列使用 `prewhere`。 [#78889](https://github.com/ClickHouse/ClickHouse/pull/78889) ([Pavel Kruglov](https://github.com/Avogar))。 +* 修复在解析 Variant 列中异常二进制数据时的逻辑错误。 [#78982](https://github.com/ClickHouse/ClickHouse/pull/78982) ([Pavel Kruglov](https://github.com/Avogar)). +* 当 parquet 批处理大小被设置为 0 时抛出异常。此前当 output_format_parquet_batch_size = 0 时,ClickHouse 会陷入挂起状态。现在这一问题已被修复。 [#78991](https://github.com/ClickHouse/ClickHouse/pull/78991) ([daryawessely](https://github.com/daryawessely)). +* 修复在紧凑分区片段中使用 basic 格式时,variant 判别符的反序列化问题。该问题是在 [https://github.com/ClickHouse/ClickHouse/pull/55518](https://github.com/ClickHouse/ClickHouse/pull/55518) 中引入的。[#79000](https://github.com/ClickHouse/ClickHouse/pull/79000)([Pavel Kruglov](https://github.com/Avogar))。 +* 现在,类型为 `complex_key_ssd_cache` 的字典会拒绝 `block_size` 和 `write_buffer_size` 参数为 0 或负值的配置(issue [#78314](https://github.com/ClickHouse/ClickHouse/issues/78314))。[#79028](https://github.com/ClickHouse/ClickHouse/pull/79028)([Elmi Ahmadov](https://github.com/ahmadov))。 +* 避免在 SummingMergeTree 中对未参与聚合的列使用 Field。这样可能会在 SummingMergeTree 中使用 Dynamic/Variant 类型时导致意外错误。 [#79051](https://github.com/ClickHouse/ClickHouse/pull/79051) ([Pavel Kruglov](https://github.com/Avogar))。 +* 修复在 analyzer 中从目标表为 Distributed 且表头不同的 materialized view 读取数据时的问题。[#79059](https://github.com/ClickHouse/ClickHouse/pull/79059) ([Pavel Kruglov](https://github.com/Avogar))。 +* 修复了在对表进行批量插入时,`arrayUnion()` 会返回多余(错误)值的问题。修复 [#75057](https://github.com/ClickHouse/ClickHouse/issues/75057)。[#79079](https://github.com/ClickHouse/ClickHouse/pull/79079)([Peter Nguyen](https://github.com/petern48))。 +* 修复 `OpenSSLInitializer` 中的段错误。关闭 Issue [#79092](https://github.com/ClickHouse/ClickHouse/issues/79092)。[#79097](https://github.com/ClickHouse/ClickHouse/pull/79097)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 始终为 S3 的 ListObject 操作设置前缀。 [#79114](https://github.com/ClickHouse/ClickHouse/pull/79114) ([Azat Khuzhin](https://github.com/azat)). +* 修复了一个 bug:在使用批量插入的表上,arrayUnion() 会返回多余(错误)的值。修复 [#79157](https://github.com/ClickHouse/ClickHouse/issues/79157)。[#79158](https://github.com/ClickHouse/ClickHouse/pull/79158)([Peter Nguyen](https://github.com/petern48))。 +* 修复在执行过滤下推后出现的逻辑错误。 [#79164](https://github.com/ClickHouse/ClickHouse/pull/79164) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* 修复在通过 HTTP 端点使用 delta-kernel 实现时的 DeltaLake 表引擎问题,并修复 NOSIGN。关闭 [#78124](https://github.com/ClickHouse/ClickHouse/issues/78124)。[#79203](https://github.com/ClickHouse/ClickHouse/pull/79203)([Kseniia Sumarokova](https://github.com/kssenii))。 +* Keeper 修复:避免因 multi 请求失败而触发 watch。[#79247](https://github.com/ClickHouse/ClickHouse/pull/79247) ([Antonio Andelic](https://github.com/antonio2368))。 +* 禁止在 `IN` 中使用 Dynamic 和 JSON 类型。以当前 `IN` 的实现方式,可能会导致结果不正确。在 `IN` 中对这些类型提供完备支持较为复杂,可能会在未来实现。[#79282](https://github.com/ClickHouse/ClickHouse/pull/79282) ([Pavel Kruglov](https://github.com/Avogar))。 +* 修复在 JSON 类型解析过程中对重复路径的检查。[#79317](https://github.com/ClickHouse/ClickHouse/pull/79317)([Pavel Kruglov](https://github.com/Avogar))。 +* 修复了 SecureStreamSocket 连接问题。 [#79383](https://github.com/ClickHouse/ClickHouse/pull/79383) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* 修复加载包含数据的 plain_rewritable 磁盘的问题。[#79439](https://github.com/ClickHouse/ClickHouse/pull/79439)([Julia Kartseva](https://github.com/jkartseva))。 +* 修复在 MergeTree 的 Wide 分区片段上进行动态子列发现时可能发生的崩溃。[#79466](https://github.com/ClickHouse/ClickHouse/pull/79466) ([Pavel Kruglov](https://github.com/Avogar)). +* 仅在初次建表查询时检查表名长度。对于后续创建操作不要进行此检查,以避免向后兼容性问题。[#79488](https://github.com/ClickHouse/ClickHouse/pull/79488) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* 修复了在多种情况下包含稀疏列的表出现 `Block structure mismatch` 错误的问题。 [#79491](https://github.com/ClickHouse/ClickHouse/pull/79491) ([Anton Popov](https://github.com/CurtizJ)). +* 修复了两个会触发 “Logical Error: Can't set alias of * of Asterisk on alias” 的问题。[#79505](https://github.com/ClickHouse/ClickHouse/pull/79505)([Raúl Marín](https://github.com/Algunenano))。 +* 修复在重命名 Atomic 数据库时使用了错误路径的问题。[#79569](https://github.com/ClickHouse/ClickHouse/pull/79569)([Tuan Pham Anh](https://github.com/tuanpach))。 +* 修复在与其他列一起进行 ORDER BY 时涉及 JSON 列的问题。 [#79591](https://github.com/ClickHouse/ClickHouse/pull/79591) ([Pavel Kruglov](https://github.com/Avogar)). +* 修复在同时禁用 `use_hedged_requests` 和 `allow_experimental_parallel_reading_from_replicas` 时,从远程读取时会出现结果重复的问题。 [#79599](https://github.com/ClickHouse/ClickHouse/pull/79599) ([Eduard Karacharov](https://github.com/korowa)). +* 修复在使用 Unity Catalog 时 delta-kernel 实现中的崩溃。 [#79677](https://github.com/ClickHouse/ClickHouse/pull/79677) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 修复 autodiscovery 集群中的宏解析问题。 [#79696](https://github.com/ClickHouse/ClickHouse/pull/79696) ([Anton Ivashkin](https://github.com/ianton-ru)). +* 合理处理配置错误的 `page_cache_limits`。 [#79805](https://github.com/ClickHouse/ClickHouse/pull/79805) ([Bharat Nallan](https://github.com/bharatnc)). +* 修复了当可变长度格式说明符(例如 `%W`,即星期几名称 `Monday`、`Tuesday` 等)后紧跟复合格式说明符(一次输出多个组件的格式说明符,例如 `%D`,即美国日期格式 `05/04/25`)时,SQL 函数 `formatDateTime` 的结果不正确的问题。 [#79835](https://github.com/ClickHouse/ClickHouse/pull/79835) ([Robert Schulze](https://github.com/rschu1ze))。 +* IcebergS3 支持 COUNT 优化,但 IcebergS3Cluster 不支持。因此,在集群模式下返回的 count() 结果可能是副本数量的倍数。[#79844](https://github.com/ClickHouse/ClickHouse/pull/79844) ([wxybear](https://github.com/wxybear))。 +* 修复了在延迟物化(lazy materialization)场景下,如果在投影(projection)之前的查询执行阶段未使用任何列时会触发的 AMBIGUOUS_COLUMN_NAME 错误。例如:SELECT * FROM t ORDER BY rand() LIMIT 5。[#79926](https://github.com/ClickHouse/ClickHouse/pull/79926)([Igor Nikonov](https://github.com/devcrafter))。 +* 对查询 `CREATE DATABASE datalake ENGINE = DataLakeCatalog(\'http://catalog:8181\', \'admin\', \'password\')` 中的密码进行隐藏。 [#79941](https://github.com/ClickHouse/ClickHouse/pull/79941) ([Han Fei](https://github.com/hanfei1991)). +* 允许在 JOIN USING 中指定别名。如果列被重命名(例如由于 ARRAY JOIN),请通过指定该别名来引用它。修复了 [#73707](https://github.com/ClickHouse/ClickHouse/issues/73707)。[#79942](https://github.com/ClickHouse/ClickHouse/pull/79942)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 使包含 UNION 的 materialized view 能在新副本上正常工作。[#80037](https://github.com/ClickHouse/ClickHouse/pull/80037)([Samay Sharma](https://github.com/samay-sharma))。 +* SQL 函数 `parseDateTime` 中的格式说明符 `%e` 现在可以识别个位数的日期(例如 `3`),而此前需要使用空格填充(例如 ` 3`)。这使其行为与 MySQL 兼容。若要保留之前的行为,请将 setting `parsedatetime_e_requires_space_padding` 设为 1。(issue [#78243](https://github.com/ClickHouse/ClickHouse/issues/78243))。[#80057](https://github.com/ClickHouse/ClickHouse/pull/80057)([Robert Schulze](https://github.com/rschu1ze))。 +* 修复 ClickHouse 日志中的警告 `Cannot find 'kernel' in '[...]/memory.stat'`(问题 [#77410](https://github.com/ClickHouse/ClickHouse/issues/77410))。[#80129](https://github.com/ClickHouse/ClickHouse/pull/80129)([Robert Schulze](https://github.com/rschu1ze))。 +* 在 `FunctionComparison` 中检查栈大小,以避免因栈溢出而崩溃。[#78208](https://github.com/ClickHouse/ClickHouse/pull/78208) ([Julia Kartseva](https://github.com/jkartseva))。 +* 修复从 `system.workloads` 表执行 SELECT 时的数据竞争问题。 [#78743](https://github.com/ClickHouse/ClickHouse/pull/78743) ([Sergei Trifonov](https://github.com/serxa)). +* 修复:分布式查询中的惰性物化。 [#78815](https://github.com/ClickHouse/ClickHouse/pull/78815) ([Igor Nikonov](https://github.com/devcrafter)). +* 修复 `Array(Bool)` 到 `Array(FixedString)` 的转换问题。[#78863](https://github.com/ClickHouse/ClickHouse/pull/78863)([Nikita Taranov](https://github.com/nickitat))。 +* 让 Parquet 版本选择更清晰。[#78818](https://github.com/ClickHouse/ClickHouse/pull/78818) ([Michael Kolupaev](https://github.com/al13n321)). +* 修复 `ReservoirSampler` 的自我合并问题。[#79031](https://github.com/ClickHouse/ClickHouse/pull/79031) ([Nikita Taranov](https://github.com/nickitat)). +* 修复客户端上下文中插入表存储的问题。 [#79046](https://github.com/ClickHouse/ClickHouse/pull/79046) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* 修正 `AggregatingSortedAlgorithm` 和 `SummingSortedAlgorithm` 的数据成员析构顺序。[#79056](https://github.com/ClickHouse/ClickHouse/pull/79056)([Nikita Taranov](https://github.com/nickitat))。 +* `enable_user_name_access_type` 不应影响 `DEFINER` 访问类型。[#80026](https://github.com/ClickHouse/ClickHouse/pull/80026) ([pufit](https://github.com/pufit))。 +* 当 `system` 数据库的元数据存放在 keeper 中时,对该数据库的查询可能会发生挂起。 [#79304](https://github.com/ClickHouse/ClickHouse/pull/79304) ([Mikhail Artemenko](https://github.com/Michicosun)). + +#### 构建/测试/打包方面的改进 {#buildtestingpackaging-improvement} + +* 支持复用已构建的 `chcache` 二进制文件,而不是每次都重新构建。[#78851](https://github.com/ClickHouse/ClickHouse/pull/78851) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* 添加 NATS 暂停等待机制。[#78987](https://github.com/ClickHouse/ClickHouse/pull/78987) ([Dmitry Novikov](https://github.com/dmitry-sles-novikov)). +* 修复错误地将 ARM 构建发布为 amd64compat 的问题。[#79122](https://github.com/ClickHouse/ClickHouse/pull/79122) ([Alexander Gololobov](https://github.com/davenger)). +* 为 OpenSSL 使用预生成的汇编代码。[#79386](https://github.com/ClickHouse/ClickHouse/pull/79386) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* 修复以支持使用 `clang20` 进行构建。[#79588](https://github.com/ClickHouse/ClickHouse/pull/79588) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* `chcache`:增加对 Rust 缓存的支持。[#78691](https://github.com/ClickHouse/ClickHouse/pull/78691) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* 为 `zstd` 汇编文件添加回溯(unwind)信息。[#79288](https://github.com/ClickHouse/ClickHouse/pull/79288) ([Michael Kolupaev](https://github.com/al13n321)). + +### ClickHouse 25.4 版本发布,2025-04-22 {#254} + +#### 向后不兼容的变更 {#backward-incompatible-change} + +* 当 `allow_materialized_view_with_bad_select` 为 `false` 时,检查 materialized view 中的所有列是否与目标表匹配。[#74481](https://github.com/ClickHouse/ClickHouse/pull/74481)([Christoph Wurm](https://github.com/cwurm)) +* 修复在使用负的 Date/DateTime 参数调用 `dateTrunc` 时的某些情况。[#77622](https://github.com/ClickHouse/ClickHouse/pull/77622)([Yarik Briukhovetskyi](https://github.com/yariks5s)) +* 已移除旧版 `MongoDB` 集成。服务器设置 `use_legacy_mongodb_integration` 已废弃,现在不再产生任何效果。[#77895](https://github.com/ClickHouse/ClickHouse/pull/77895)([Robert Schulze](https://github.com/rschu1ze)) +* 增强 `SummingMergeTree` 校验逻辑,跳过对用作分区键或排序键的列进行聚合。[#78022](https://github.com/ClickHouse/ClickHouse/pull/78022)([Pervakov Grigorii](https://github.com/GrigoryPervakov)) + +#### 新功能 {#new-feature} + +* 为工作负载添加了 CPU 插槽调度支持,详细信息请参见[文档](https://clickhouse.com/docs/operations/workload-scheduling#cpu_scheduling)。[#77595](https://github.com/ClickHouse/ClickHouse/pull/77595)([Sergei Trifonov](https://github.com/serxa))。 +* 如果指定 `--path` 命令行参数,`clickhouse-local` 在重启后将保留其数据库。从而关闭了 [#50647](https://github.com/ClickHouse/ClickHouse/issues/50647) 和 [#49947](https://github.com/ClickHouse/ClickHouse/issues/49947)。[#71722](https://github.com/ClickHouse/ClickHouse/pull/71722)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 当服务器过载时,会拒绝查询。该决策依据等待时间(`OSCPUWaitMicroseconds`)与忙碌时间(`OSCPUVirtualTimeMicroseconds`)的比值做出。当该比值处于 `min_os_cpu_wait_time_ratio_to_throw` 与 `max_os_cpu_wait_time_ratio_to_throw` 之间时(这些是查询级别的设置),会以一定概率丢弃查询。[#63206](https://github.com/ClickHouse/ClickHouse/pull/63206)([Alexey Katsman](https://github.com/alexkats))。 +* 在 `Iceberg` 中支持时间旅行:新增一个设置,用于在特定时间点查询 `Iceberg` 表。[#71072](https://github.com/ClickHouse/ClickHouse/pull/71072) ([Brett Hoerner](https://github.com/bretthoerner))。[#77439](https://github.com/ClickHouse/ClickHouse/pull/77439) ([Daniil Ivanik](https://github.com/divanik))。 +* 用于 `Iceberg` 元数据的内存缓存,存储 manifest 文件及列表和 `metadata.json`,以加速查询。[#77156](https://github.com/ClickHouse/ClickHouse/pull/77156) ([Han Fei](https://github.com/hanfei1991))。 +* 支持在 Azure Blob Storage 上使用 `DeltaLake` 表引擎。修复 [#68043](https://github.com/ClickHouse/ClickHouse/issues/68043)。[#74541](https://github.com/ClickHouse/ClickHouse/pull/74541)([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 +* 为反序列化的向量相似度索引新增了内存缓存,这应当能加快重复执行的近似最近邻(ANN)搜索查询。新缓存的大小由服务器设置 `vector_similarity_index_cache_size` 和 `vector_similarity_index_cache_max_entries` 控制。该功能取代了早期版本中的跳过索引缓存功能。[#77905](https://github.com/ClickHouse/ClickHouse/pull/77905)([Shankar Iyer](https://github.com/shankar-iyer))。 +* 支持在 Delta Lake 中进行分区剪枝。 [#78486](https://github.com/ClickHouse/ClickHouse/pull/78486) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 在只读的 `MergeTree` 表中增加对后台刷新机制(background refresh)的支持,从而可以通过无限数量的分布式读取节点(ClickHouse 原生数据湖)来查询可更新表。[#76467](https://github.com/ClickHouse/ClickHouse/pull/76467)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 支持使用自定义磁盘存储数据库元数据文件。目前仅支持在服务器全局级别进行配置。[#77365](https://github.com/ClickHouse/ClickHouse/pull/77365)([Tuan Pham Anh](https://github.com/tuanpach))。 +* 在 plain_rewritable 磁盘上支持 ALTER TABLE ... ATTACH|DETACH|MOVE|REPLACE PARTITION。[#77406](https://github.com/ClickHouse/ClickHouse/pull/77406)([Julia Kartseva](https://github.com/jkartseva))。 +* 为 `Kafka` 表引擎添加用于 `SASL` 配置和凭证的表级设置。这样可以在 `CREATE TABLE` 语句中直接配置面向 Kafka 及 Kafka 兼容系统的基于 SASL 的认证,而无需使用配置文件或命名集合。[#78810](https://github.com/ClickHouse/ClickHouse/pull/78810)([Christoph Wurm](https://github.com/cwurm))。 +* 允许为 MergeTree 表设置 `default_compression_codec`:当 CREATE 查询未为给定列显式指定压缩编解码器时,将使用该设置。修复了 [#42005](https://github.com/ClickHouse/ClickHouse/issues/42005)。[#66394](https://github.com/ClickHouse/ClickHouse/pull/66394)([gvoelfin](https://github.com/gvoelfin))。 +* 在集群配置中添加 `bind_host` 配置项,使 ClickHouse 能够在分布式连接中使用特定网络。[#74741](https://github.com/ClickHouse/ClickHouse/pull/74741)([Todd Yocum](https://github.com/toddyocum))。 +* 在 `system.tables` 中新增列 `parametrized_view_parameters`。关闭 [https://github.com/clickhouse/clickhouse/issues/66756](https://github.com/clickhouse/clickhouse/issues/66756)。[#75112](https://github.com/ClickHouse/ClickHouse/pull/75112)([NamNguyenHoai](https://github.com/NamHoaiNguyen))。 +* 允许修改数据库注释。修复 [#73351](https://github.com/ClickHouse/ClickHouse/issues/73351) ### 面向用户变更的文档条目。[#75622](https://github.com/ClickHouse/ClickHouse/pull/75622) ([NamNguyenHoai](https://github.com/NamHoaiNguyen)). +* 在 PostgreSQL 兼容协议中增加对 `SCRAM-SHA-256` 认证的支持。[#76839](https://github.com/ClickHouse/ClickHouse/pull/76839) ([scanhex12](https://github.com/scanhex12))。 +* 新增函数 `arrayLevenshteinDistance`、`arrayLevenshteinDistanceWeighted` 和 `arraySimilarity`。[#77187](https://github.com/ClickHouse/ClickHouse/pull/77187)([Mikhail f. Shiryaev](https://github.com/Felixoid))。 +* `parallel_distributed_insert_select` 设置现在也对 `ReplicatedMergeTree` 表上的 `INSERT SELECT` 生效(此前仅支持通过 Distributed 表)。[#78041](https://github.com/ClickHouse/ClickHouse/pull/78041) ([Igor Nikonov](https://github.com/devcrafter))。 +* 引入 `toInterval` 函数。该函数接受 2 个参数(`value` 和 `unit`),并将该值转换为特定的 `Interval` 类型。 [#78723](https://github.com/ClickHouse/ClickHouse/pull/78723) ([Andrew Davis](https://github.com/pulpdrew))。 +* 为 iceberg 表 FUNCTION 和引擎新增多种便捷方式,用于解析根目录下的 `metadata.json` 文件。修复 [#78455](https://github.com/ClickHouse/ClickHouse/issues/78455)。[#78475](https://github.com/ClickHouse/ClickHouse/pull/78475)([Daniil Ivanik](https://github.com/divanik))。 +* 在 ClickHouse 的 SSH 协议中支持基于密码的身份验证。[#78586](https://github.com/ClickHouse/ClickHouse/pull/78586) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 + +#### 实验特性 {#experimental-feature} + +* 支持在 `WHERE` 子句中将相关子查询作为 `EXISTS` 表达式的参数。修复 [#72459](https://github.com/ClickHouse/ClickHouse/issues/72459)。[#76078](https://github.com/ClickHouse/ClickHouse/pull/76078)([Dmitry Novik](https://github.com/novikd))。 +* 新增 `sparseGrams` 和 `sparseGramsHashes` 函数的 ASCII 与 UTF8 版本。作者:[scanhex12](https://github.com/scanhex12)。[#78176](https://github.com/ClickHouse/ClickHouse/pull/78176)([Pervakov Grigorii](https://github.com/GrigoryPervakov))。请勿使用:其实现将在后续版本中更改。 + +#### 性能优化 {#performance-improvement} + +* 使用 lazy 列在 ORDER BY 和 LIMIT 之后再读取数据,以优化性能。 [#55518](https://github.com/ClickHouse/ClickHouse/pull/55518) ([Xiaozhe Yu](https://github.com/wudidapaopao))。 +* 默认开启查询条件缓存。 [#79080](https://github.com/ClickHouse/ClickHouse/pull/79080) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 通过对 `col->insertFrom()` 的调用去虚拟化,加速构建 JOIN 结果。[#77350](https://github.com/ClickHouse/ClickHouse/pull/77350) ([Alexander Gololobov](https://github.com/davenger)). +* 如果可能,将来自过滤查询计划步骤的相等条件合并到 JOIN 条件中,以便可以将它们用作哈希表的键。[#78877](https://github.com/ClickHouse/ClickHouse/pull/78877) ([Dmitry Novik](https://github.com/novikd))。 +* 当 JOIN 键同时是 JOIN 双方表主键(PK)的前缀时,对 JOIN 使用动态分片。可以通过 `query_plan_join_shard_by_pk_ranges` 设置启用该优化(默认禁用)。[#74733](https://github.com/ClickHouse/ClickHouse/pull/74733) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 支持基于列的上下边界值进行 `Iceberg` 数据剪枝。修复 [#77638](https://github.com/ClickHouse/ClickHouse/issues/77638)。[#78242](https://github.com/ClickHouse/ClickHouse/pull/78242) ([alesapin](https://github.com/alesapin))。 +* 为 `Iceberg` 实现了针对 `count()` 的简单优化。现在对于不带任何过滤条件的 `count()` 查询应当更快。关闭 [#77639](https://github.com/ClickHouse/ClickHouse/issues/77639)。[#78090](https://github.com/ClickHouse/ClickHouse/pull/78090)([alesapin](https://github.com/alesapin))。 +* 添加了通过 `max_merge_delayed_streams_for_parallel_write` 配置合并时可并行刷新的列数的能力(预计可将向 S3 执行纵向合并时的内存占用减少约 25 倍)。 [#77922](https://github.com/ClickHouse/ClickHouse/pull/77922) ([Azat Khuzhin](https://github.com/azat)). +* 当缓存处于被动使用状态时(例如用于合并操作),禁用 `filesystem_cache_prefer_bigger_buffer_size`。这可以降低合并过程中的内存消耗。 [#77898](https://github.com/ClickHouse/ClickHouse/pull/77898) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 现在,在启用并行副本读取时,我们会根据副本数量来确定读取任务的规模。这样可以在待读取数据量不大的情况下,在副本之间实现更优的负载分配。 [#78695](https://github.com/ClickHouse/ClickHouse/pull/78695) ([Nikita Taranov](https://github.com/nickitat)). +* 为 `ORC` 格式添加异步 I/O 预取支持,通过隐藏远程 I/O 延迟来提升整体性能。[#70534](https://github.com/ClickHouse/ClickHouse/pull/70534) ([李扬](https://github.com/taiyang-li))。 +* 预先分配用于异步插入的内存以提升性能。[#74945](https://github.com/ClickHouse/ClickHouse/pull/74945) ([Ilya Golshtein](https://github.com/ilejn))。 +* 通过在可用 `multiRead` 的地方避免使用单个 `get` 请求,从而减少 Keeper 请求数量;在副本数量增加的情况下,单个 `get` 请求可能会给 Keeper 带来显著负载。 [#56862](https://github.com/ClickHouse/ClickHouse/pull/56862) ([Nikolay Degterinsky](https://github.com/evillique)). +* 对在 Nullable 参数上的函数执行进行了小幅优化。[#76489](https://github.com/ClickHouse/ClickHouse/pull/76489) ([李扬](https://github.com/taiyang-li))。 +* 优化了 `arraySort`。 [#76850](https://github.com/ClickHouse/ClickHouse/pull/76850) ([李扬](https://github.com/taiyang-li)). +* 将同一部分的标记合并后,一次性写入查询条件缓存,以减少锁的开销。 [#77377](https://github.com/ClickHouse/ClickHouse/pull/77377) ([zhongyuankai](https://github.com/zhongyuankai)). +* 为包含单个括号展开的查询优化 `s3Cluster` 的性能。[#77686](https://github.com/ClickHouse/ClickHouse/pull/77686) ([Tomáš Hromada](https://github.com/gyfis))。 +* 优化对单个 Nullable 或 LowCardinality 列的 ORDER BY。 [#77789](https://github.com/ClickHouse/ClickHouse/pull/77789) ([李扬](https://github.com/taiyang-li)). +* 优化 `Native` 格式的内存占用。 [#78442](https://github.com/ClickHouse/ClickHouse/pull/78442) ([Azat Khuzhin](https://github.com/azat)). +* 小幅优化:如果需要进行类型转换,则不要将 `count(if(...))` 重写为 `countIf`。关闭 [#78564](https://github.com/ClickHouse/ClickHouse/issues/78564)。[#78565](https://github.com/ClickHouse/ClickHouse/pull/78565)([李扬](https://github.com/taiyang-li))。 +* `hasAll` 函数现在可以利用 `tokenbf_v1`、`ngrambf_v1` 全文跳过索引。[#77662](https://github.com/ClickHouse/ClickHouse/pull/77662)([UnamedRus](https://github.com/UnamedRus))。 +* 向量相似度索引可能会最多多分配一倍主内存。本次修复重新设计了内存分配策略,从而降低内存消耗并提升向量相似度索引缓存的有效性。(issue [#78056](https://github.com/ClickHouse/ClickHouse/issues/78056))。[#78394](https://github.com/ClickHouse/ClickHouse/pull/78394)([Shankar Iyer](https://github.com/shankar-iyer))。 +* 为 `system.metric_log` 表引入一个带有 schema 类型的 `schema_type` 设置。允许的 schema 有三种:`wide` —— 当前使用的 schema,每个 metric/event 存储在独立的列中(对按列读取最为高效);`transposed` —— 类似于 `system.asynchronous_metric_log`,metrics/events 以行的形式存储;以及最值得关注的 `transposed_with_wide_view` —— 使用 `transposed` schema 创建底层表,同时再提供一个采用 `wide` schema 的视图,用于将对视图的查询转换为对底层表的查询。在 `transposed_with_wide_view` 中,不支持视图的亚秒级时间精度,`event_time_microseconds` 仅作为向后兼容的别名。[#78412](https://github.com/ClickHouse/ClickHouse/pull/78412) ([alesapin](https://github.com/alesapin))。 + +#### 改进 {#improvement} + +* 为 `Distributed` 查询序列化查询计划。新增了一个名为 `serialize_query_plan` 的 SETTING。启用后,来自 `Distributed` 表的查询在远程执行时将使用序列化的查询计划。这为 TCP 协议引入了一种新的数据包类型,需要在服务器配置中添加 `true` 以允许处理该数据包。[#69652](https://github.com/ClickHouse/ClickHouse/pull/69652) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 支持从视图中读取 `JSON` 类型及其子列。[#76903](https://github.com/ClickHouse/ClickHouse/pull/76903) ([Pavel Kruglov](https://github.com/Avogar))。 +* 已支持 `ALTER DATABASE ... ON CLUSTER`。 [#79242](https://github.com/ClickHouse/ClickHouse/pull/79242) ([Tuan Pham Anh](https://github.com/tuanpach))。 +* 可刷新materialized view 的刷新操作现已记录在 `system.query_log` 中。[#71333](https://github.com/ClickHouse/ClickHouse/pull/71333)([Michael Kolupaev](https://github.com/al13n321))。 +* 用户定义函数(UDF)现在可以通过其配置中的一个新设置标记为确定性(deterministic)。另外,查询缓存现在会检查查询中被调用的 UDF 是否为确定性函数;如果是,则会缓存该查询结果。(问题 [#59988](https://github.com/ClickHouse/ClickHouse/issues/59988))。[#77769](https://github.com/ClickHouse/ClickHouse/pull/77769)([Jimmy Aguilar Mena](https://github.com/Ergus))。 +* 为所有类型的副本任务启用了退避逻辑。这样可以降低 CPU 使用率、内存使用量以及日志文件大小。新增了 `max_postpone_time_for_failed_replicated_fetches_ms`、`max_postpone_time_for_failed_replicated_merges_ms` 和 `max_postpone_time_for_failed_replicated_tasks_ms` 这几个与 `max_postpone_time_for_failed_mutations_ms` 类似的设置。 [#74576](https://github.com/ClickHouse/ClickHouse/pull/74576) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* 在 `system.errors` 中添加了 `query_id`。关闭 [#75815](https://github.com/ClickHouse/ClickHouse/issues/75815)。[#76581](https://github.com/ClickHouse/ClickHouse/pull/76581)([Vladimir Baikov](https://github.com/bkvvldmr))。 +* 新增支持将 `UInt128` 转换为 `IPv6`。从而可以对 `IPv6` 执行 `bitAnd` 运算及算术运算,并将结果转换回 `IPv6`。解决 [#76752](https://github.com/ClickHouse/ClickHouse/issues/76752)。同样也允许将对 `IPv6` 执行 `bitAnd` 运算的结果再转换回 `IPv6`。另见 [#57707](https://github.com/ClickHouse/ClickHouse/pull/57707)。[#76928](https://github.com/ClickHouse/ClickHouse/pull/76928) ([Muzammil Abdul Rehman](https://github.com/muzammilar))。 +* 默认情况下,在 `Variant` 类型的文本格式中不会解析特殊的 `Bool` 值。可以通过设置 `allow_special_bool_values_inside_variant` 来启用此行为。[#76974](https://github.com/ClickHouse/ClickHouse/pull/76974) ([Pavel Kruglov](https://github.com/Avogar)). +* 支持在会话级和服务器级配置低 `priority` 查询的按任务等待时间。[#77013](https://github.com/ClickHouse/ClickHouse/pull/77013) ([VicoWu](https://github.com/VicoWu)). +* 为 JSON 数据类型的值实现了比较功能。现在可以像比较 `Map` 一样比较 JSON 对象。 [#77397](https://github.com/ClickHouse/ClickHouse/pull/77397) ([Pavel Kruglov](https://github.com/Avogar)). +* 通过 `system.kafka_consumers` 提升了权限支持。转发内部的 `librdkafka` 错误(值得一提的是,这个库本身问题很多)。 [#77700](https://github.com/ClickHouse/ClickHouse/pull/77700) ([Ilya Golshtein](https://github.com/ilejn)). +* 增加了对 Buffer 表引擎设置的校验。 [#77840](https://github.com/ClickHouse/ClickHouse/pull/77840) ([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 +* 添加配置项 `enable_hdfs_pread`,用于启用或禁用 `HDFS` 中的 pread 功能。 [#77885](https://github.com/ClickHouse/ClickHouse/pull/77885) ([kevinyhzou](https://github.com/KevinyhZou)). +* 增加用于统计 ZooKeeper `multi` 读写请求次数的 profile events。 [#77888](https://github.com/ClickHouse/ClickHouse/pull/77888) ([JackyWoo](https://github.com/JackyWoo)). +* 在启用 `disable_insertion_and_mutation` 时,允许创建临时表并向其中插入数据。[#77901](https://github.com/ClickHouse/ClickHouse/pull/77901) ([Xu Jia](https://github.com/XuJia0210)). +* 将 `max_insert_delayed_streams_for_parallel_write` 降低至 100。 [#77919](https://github.com/ClickHouse/ClickHouse/pull/77919) ([Azat Khuzhin](https://github.com/azat)). +* 修复了 Joda 语法中的年份解析问题(如果你想知道的话,这是来自 Java 世界),例如 `yyy`。 [#77973](https://github.com/ClickHouse/ClickHouse/pull/77973) ([李扬](https://github.com/taiyang-li)). +* 附加 `MergeTree` 表的分区片段时将按照其数据块顺序执行,这对于诸如 `ReplacingMergeTree` 之类的特殊合并算法来说非常重要。此更改修复了 [#71009](https://github.com/ClickHouse/ClickHouse/issues/71009)。[#77976](https://github.com/ClickHouse/ClickHouse/pull/77976)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 现在,查询掩码规则在发生匹配时可以抛出 `LOGICAL_ERROR`。这有助于检查预定义的密码是否在日志中的任何位置泄露。[#78094](https://github.com/ClickHouse/ClickHouse/pull/78094) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* 向 `information_schema.tables` 添加了列 `index_length_column`,以更好地兼容 MySQL。 [#78119](https://github.com/ClickHouse/ClickHouse/pull/78119) ([Paweł Zakrzewski](https://github.com/KrzaQ)). +* 引入两个新指标:`TotalMergeFailures` 和 `NonAbortedMergeFailures`。这些指标用于检测在短时间内出现过多合并失败的情况。 [#78150](https://github.com/ClickHouse/ClickHouse/pull/78150) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* 修复在使用 path-style 模式且未在路径中指定 key 时对 S3 URL 的错误解析。[#78185](https://github.com/ClickHouse/ClickHouse/pull/78185) ([Arthur Passos](https://github.com/arthurpassos))。 +* 修复异步指标 `BlockActiveTime`、`BlockDiscardTime`、`BlockWriteTime`、`BlockQueueTime` 和 `BlockReadTime` 的错误取值(修改前 1 秒错误地被报告为 0.001)。[#78211](https://github.com/ClickHouse/ClickHouse/pull/78211)([filimonov](https://github.com/filimonov))。 +* 在向基于 StorageS3(Azure)Queue 的 materialized view 推送数据时,对发生的错误遵守 `loading_retries` 重试次数限制。此前此类错误会被无限次重试。 [#78313](https://github.com/ClickHouse/ClickHouse/pull/78313) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 在使用 `delta-kernel-rs` 实现的 Delta Lake 中,优化性能并修复进度条。[#78368](https://github.com/ClickHouse/ClickHouse/pull/78368) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 为 runtime 磁盘新增对 `include`、`from_env`、`from_zk` 的支持。关闭 [#78177](https://github.com/ClickHouse/ClickHouse/issues/78177)。[#78470](https://github.com/ClickHouse/ClickHouse/pull/78470) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* 为运行时间较长的 mutation 在 `system.warnings` 表中添加动态警告。[#78658](https://github.com/ClickHouse/ClickHouse/pull/78658)([Bharat Nallan](https://github.com/bharatnc))。 +* 在系统表 `system.query_condition_cache` 中添加字段 `condition`。该字段存储明文条件,其哈希值被用作查询条件缓存中的键。[#78671](https://github.com/ClickHouse/ClickHouse/pull/78671)([Robert Schulze](https://github.com/rschu1ze))。 +* 允许 Hive 分区键为空值。[#78816](https://github.com/ClickHouse/ClickHouse/pull/78816) ([Arthur Passos](https://github.com/arthurpassos)). +* 修复 `IN` 子句中对 `BFloat16` 的类型转换(即 `SELECT toBFloat16(1) IN [1, 2, 3];` 现在返回 `1`)。解决了 [#78754](https://github.com/ClickHouse/ClickHouse/issues/78754)。[#78839](https://github.com/ClickHouse/ClickHouse/pull/78839)([Raufs Dunamalijevs](https://github.com/rienath))。 +* 在为 `MergeTree` 设置了 `disk = ...` 时,不再在其他磁盘上检查分区片段。[#78855](https://github.com/ClickHouse/ClickHouse/pull/78855) ([Azat Khuzhin](https://github.com/azat))。 +* 使 `system.query_log` 中 `used_data_type_families` 的数据类型被记录为规范名称。[#78972](https://github.com/ClickHouse/ClickHouse/pull/78972) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 在 `recoverLostReplica` 过程中清理 settings,与此前在 [#78637](https://github.com/ClickHouse/ClickHouse/pull/78637) 中的处理方式相同。[#79113](https://github.com/ClickHouse/ClickHouse/pull/79113)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* 在 INFILE 的 schema 推断中使用插入列。 [#78490](https://github.com/ClickHouse/ClickHouse/pull/78490) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). + +#### Bug 修复(官方稳定版中对用户可见的错误行为) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* 修正了在聚合 PROJECTION 中使用 `count(Nullable)` 时对 PROJECTION 的错误分析,从而修复了 [#74495](https://github.com/ClickHouse/ClickHouse/issues/74495)。此 PR 还在 PROJECTION 分析相关位置增加了一些日志,以澄清为什么会使用某个 PROJECTION 或者为什么不会使用。[#74498](https://github.com/ClickHouse/ClickHouse/pull/74498) ([Amos Bird](https://github.com/amosbird))。 +* 修复在执行 `DETACH PART` 时可能出现的 `Part <...> does not contain in snapshot of previous virtual parts. (PART_IS_TEMPORARILY_LOCKED)` 错误。 [#76039](https://github.com/ClickHouse/ClickHouse/pull/76039) ([Aleksei Filatov](https://github.com/aalexfvk)). +* 修复在分析器中包含常量表达式的 skip 索引不起作用的问题,并在索引分析期间移除多余的简单类型转换。 [#77229](https://github.com/ClickHouse/ClickHouse/pull/77229) ([Pavel Kruglov](https://github.com/Avogar)). +* 修复了一个错误:`close_session` 查询参数之前不起作用,导致命名会话只有在 `session_timeout` 到期后才会被关闭。 [#77336](https://github.com/ClickHouse/ClickHouse/pull/77336) ([Alexey Katsman](https://github.com/alexkats)). +* 修复了在未附加任何 materialized view 的情况下从 NATS 服务器接收消息的问题。 [#77392](https://github.com/ClickHouse/ClickHouse/pull/77392) ([Dmitry Novikov](https://github.com/dmitry-sles-novikov)). +* 修复在通过 `merge` 表函数从空的 `FileLog` 读取时出现的逻辑错误;关闭 [#75575](https://github.com/ClickHouse/ClickHouse/issues/75575)。[#77441](https://github.com/ClickHouse/ClickHouse/pull/77441)([Vladimir Cherkasov](https://github.com/vdimir))。 +* 在共享 variant 中的 `Dynamic` 序列化中使用默认格式设置。[#77572](https://github.com/ClickHouse/ClickHouse/pull/77572) ([Pavel Kruglov](https://github.com/Avogar)). +* 修复在本地磁盘上检查表数据路径是否存在的逻辑。 [#77608](https://github.com/ClickHouse/ClickHouse/pull/77608) ([Tuan Pham Anh](https://github.com/tuanpach)). +* 修复了在某些类型上向远程发送常量值的问题。[#77634](https://github.com/ClickHouse/ClickHouse/pull/77634) ([Pavel Kruglov](https://github.com/Avogar)). +* 修复了在 S3/AzureQueue 中因上下文过期引发的崩溃。[#77720](https://github.com/ClickHouse/ClickHouse/pull/77720)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 在 RabbitMQ、NATS、Redis、AzureQueue 表引擎中隐藏凭证。 [#77755](https://github.com/ClickHouse/ClickHouse/pull/77755) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 修复 `argMin`/`argMax` 中 `NaN` 比较的未定义行为。 [#77756](https://github.com/ClickHouse/ClickHouse/pull/77756) ([Raúl Marín](https://github.com/Algunenano)). +* 即使在某次操作不会产生任何待写入的数据块时,也要定期检查合并和变更是否已被取消。[#77766](https://github.com/ClickHouse/ClickHouse/pull/77766) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 +* 修复了在 Replicated 数据库中新添加的副本上无法工作的可刷新materialized view。 [#77774](https://github.com/ClickHouse/ClickHouse/pull/77774) ([Michael Kolupaev](https://github.com/al13n321)). +* 修复在出现 `NOT_FOUND_COLUMN_IN_BLOCK` 错误时可能发生的崩溃。[#77854](https://github.com/ClickHouse/ClickHouse/pull/77854) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* 修复在向 S3/AzureQueue 填充数据时发生的崩溃问题。 [#77878](https://github.com/ClickHouse/ClickHouse/pull/77878) ([Bharat Nallan](https://github.com/bharatnc)). +* 在 SSH 服务器中禁用对历史记录的模糊搜索功能(因为其依赖 skim 库)。[#78002](https://github.com/ClickHouse/ClickHouse/pull/78002)([Azat Khuzhin](https://github.com/azat))。 +* 修复了一个错误:当在未建立索引的列上执行向量搜索查询时,如果表中还有另一列向量列并为其定义了向量相似度索引,则会返回不正确的结果。(Issue [#77978](https://github.com/ClickHouse/ClickHouse/issues/77978))。[#78069](https://github.com/ClickHouse/ClickHouse/pull/78069)([Shankar Iyer](https://github.com/shankar-iyer))。 +* 修复提示信息 "The requested output format {} is binary... Do you want to output it anyway? [y/N]" 中的一个细微错误。 [#78095](https://github.com/ClickHouse/ClickHouse/pull/78095) ([Azat Khuzhin](https://github.com/azat)). +* 修复了在 `toStartOfInterval` 的原点参数为 0 时出现的错误。[#78096](https://github.com/ClickHouse/ClickHouse/pull/78096) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 不允许在 HTTP 接口中指定空的 `session_id` 查询参数。[#78098](https://github.com/ClickHouse/ClickHouse/pull/78098) ([Alexey Katsman](https://github.com/alexkats))。 +* 修复 `Replicated` 数据库中可能出现的元数据被覆盖的问题,该问题可能在执行 `ALTER` 查询后紧接着执行 `RENAME` 查询时发生。 [#78107](https://github.com/ClickHouse/ClickHouse/pull/78107) ([Nikolay Degterinsky](https://github.com/evillique)). +* 修复 `NATS` 引擎中的崩溃问题。[#78108](https://github.com/ClickHouse/ClickHouse/pull/78108)([Dmitry Novikov](https://github.com/dmitry-sles-novikov))。 +* 不要在用于 SSH 的嵌入式客户端中尝试创建 history_file(在之前的版本中,该创建操作始终失败,但仍会被尝试)。 [#78112](https://github.com/ClickHouse/ClickHouse/pull/78112) ([Azat Khuzhin](https://github.com/azat)). +* 修复在执行 `RENAME DATABASE` 或 `DROP TABLE` 查询后,`system.detached_tables` 显示不正确信息的问题。[#78126](https://github.com/ClickHouse/ClickHouse/pull/78126) ([Nikolay Degterinsky](https://github.com/evillique))。 +* 修复在 [#77274](https://github.com/ClickHouse/ClickHouse/pull/77274) 之后对 `Replicated` 数据库中过多表的检查逻辑。同时,将该检查提前到创建存储之前执行,以避免在使用 `ReplicatedMergeTree` 或 `KeeperMap` 时在 Keeper 中创建未被统计的节点。 [#78127](https://github.com/ClickHouse/ClickHouse/pull/78127) ([Nikolay Degterinsky](https://github.com/evillique))。 +* 修复了在并发初始化 `S3Queue` 元数据时可能导致的崩溃。[#78131](https://github.com/ClickHouse/ClickHouse/pull/78131) ([Azat Khuzhin](https://github.com/azat))。 +* `groupArray*` 函数现在对于 `max_size` 参数为 Int 类型且值为 0 的情况,会像对 UInt 类型一样抛出 `BAD_ARGUMENTS` 错误,而不再尝试在该参数下执行。 [#78140](https://github.com/ClickHouse/ClickHouse/pull/78140) ([Eduard Karacharov](https://github.com/korowa))。 +* 在恢复丢失副本时,如果本地表在分离之前已被移除,防止发生崩溃。[#78173](https://github.com/ClickHouse/ClickHouse/pull/78173) ([Raúl Marín](https://github.com/Algunenano))。 +* 修复 `system.s3_queue_settings` 中 "alterable" 列始终返回 `false` 的问题。 [#78187](https://github.com/ClickHouse/ClickHouse/pull/78187) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 对 Azure 访问签名进行掩码处理,使其不会展示给用户,也不会出现在日志中。[#78189](https://github.com/ClickHouse/ClickHouse/pull/78189) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 修复在 Wide 分区片段中对带前缀子流的预取问题。 [#78205](https://github.com/ClickHouse/ClickHouse/pull/78205) ([Pavel Kruglov](https://github.com/Avogar)). +* 修复了在键数组为 `LowCardinality(Nullable)` 类型时,`mapFromArrays` 导致的崩溃或错误结果的问题。[#78240](https://github.com/ClickHouse/ClickHouse/pull/78240)([Eduard Karacharov](https://github.com/korowa))。 +* 修复 delta-kernel-rs 的认证选项。[#78255](https://github.com/ClickHouse/ClickHouse/pull/78255) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 当某个副本的 `disable_insertion_and_mutation` 为 true 时,不再调度可刷新 materialized view 的任务。该任务本质上是一次插入操作,如果 `disable_insertion_and_mutation` 为 true,则会失败。 [#78277](https://github.com/ClickHouse/ClickHouse/pull/78277) ([Xu Jia](https://github.com/XuJia0210)). +* 验证对 `Merge` 引擎所依赖底层表的访问权限。[#78339](https://github.com/ClickHouse/ClickHouse/pull/78339) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). +* 在查询 `Distributed` 表时,`FINAL` 修饰符可能会被忽略。[#78428](https://github.com/ClickHouse/ClickHouse/pull/78428)([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 +* 当位图为空时,`bitmapMin` 会返回 uint32_max(当输入类型为更大范围时则返回 uint64_max),这与空 roaring_bitmap 的最小值行为一致。 [#78444](https://github.com/ClickHouse/ClickHouse/pull/78444) ([wxybear](https://github.com/wxybear))。 +* 在启用 `distributed_aggregation_memory_efficient` 时,禁止在读取 FROM 之后对查询处理进行并行化,否则可能会导致逻辑错误。修复 [#76934](https://github.com/ClickHouse/ClickHouse/issues/76934)。[#78500](https://github.com/ClickHouse/ClickHouse/pull/78500)([flynn](https://github.com/ucasfl))。 +* 在应用 `max_streams_to_max_threads_ratio` SETTING 后,如果计划的 stream 数为零,则确保至少有一个用于读取的 stream。[#78505](https://github.com/ClickHouse/ClickHouse/pull/78505) ([Eduard Karacharov](https://github.com/korowa))。 +* 在存储 `S3Queue` 中修复逻辑错误 "Cannot unregister: table uuid is not registered"。关闭 [#78285](https://github.com/ClickHouse/ClickHouse/issues/78285)。[#78541](https://github.com/ClickHouse/ClickHouse/pull/78541)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 在同时启用了 cgroups v1 和 v2 的系统上,ClickHouse 现在能够正确识别自身的 cgroup v2。[#78566](https://github.com/ClickHouse/ClickHouse/pull/78566)([Grigory Korolev](https://github.com/gkorolev))。 +* 在与表级设置配合使用时,`-Cluster` 表函数会出错。[#78587](https://github.com/ClickHouse/ClickHouse/pull/78587) ([Daniil Ivanik](https://github.com/divanik))。 +* 在 `ReplicatedMergeTree` 不支持事务的情况下执行 `INSERT` 时,提供了更完善的检查。 [#78633](https://github.com/ClickHouse/ClickHouse/pull/78633) ([Azat Khuzhin](https://github.com/azat)). +* 在执行 ATTACH 时清理查询设置。 [#78637](https://github.com/ClickHouse/ClickHouse/pull/78637) ([Raúl Marín](https://github.com/Algunenano)). +* 修复了在 `iceberg_metadata_file_path` 中指定无效路径时导致的崩溃。[#78688](https://github.com/ClickHouse/ClickHouse/pull/78688) ([alesapin](https://github.com/alesapin)). +* 在使用基于 delta-kernel-s 实现的 `DeltaLake` 表引擎时,修复了在读取 schema 与表的 schema 不一致且同时存在分区列时,会导致 “not found column” 错误的问题。 [#78690](https://github.com/ClickHouse/ClickHouse/pull/78690) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 修复了这样一个问题:在为一个具名会话安排关闭之后(但尚未达到超时时间),如果创建了一个同名的新具名会话,那么这个新会话会在第一个会话原计划关闭的时间点被关闭。 [#78698](https://github.com/ClickHouse/ClickHouse/pull/78698) ([Alexey Katsman](https://github.com/alexkats))。 +* 修复了多种类型的 `SELECT` 查询,这些查询从使用 `MongoDB` 引擎的表或 `mongodb` 表函数中读取数据:在 `WHERE` 子句中对常量值进行隐式类型转换的查询(例如 `WHERE datetime = '2025-03-10 00:00:00'`),以及带有 `LIMIT` 和 `GROUP BY` 的查询。此前,这些查询可能会返回错误的结果。[#78777](https://github.com/ClickHouse/ClickHouse/pull/78777)([Anton Popov](https://github.com/CurtizJ))。 +* 在运行 `CHECK TABLE` 时不要阻塞表的关闭。[#78782](https://github.com/ClickHouse/ClickHouse/pull/78782) ([Raúl Marín](https://github.com/Algunenano)). +* Keeper 修复:在所有情况下修正临时节点计数。[#78799](https://github.com/ClickHouse/ClickHouse/pull/78799) ([Antonio Andelic](https://github.com/antonio2368)). +* 修复在 `StorageDistributed` 中使用除 `view` 之外的其他表函数时的错误类型转换。关闭 [#78464](https://github.com/ClickHouse/ClickHouse/issues/78464)。[#78828](https://github.com/ClickHouse/ClickHouse/pull/78828)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 修复 `tupleElement(*, 1)` 的格式不一致问题。关闭了 [#78639](https://github.com/ClickHouse/ClickHouse/issues/78639)。[#78832](https://github.com/ClickHouse/ClickHouse/pull/78832)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 类型为 `ssd_cache` 的字典现在会拒绝 `block_size` 和 `write_buffer_size` 为零或负数的参数(问题 [#78314](https://github.com/ClickHouse/ClickHouse/issues/78314))。[#78854](https://github.com/ClickHouse/ClickHouse/pull/78854)([Elmi Ahmadov](https://github.com/ahmadov))。 +* 修复在异常关闭之后执行 ALTER 时,可刷新 MATERIALIZED VIEW 崩溃的问题。[#78858](https://github.com/ClickHouse/ClickHouse/pull/78858) ([Azat Khuzhin](https://github.com/azat)). +* 修复在 `CSV` 格式中对无效 `DateTime` 值的解析。 [#78919](https://github.com/ClickHouse/ClickHouse/pull/78919) ([Pavel Kruglov](https://github.com/Avogar)). +* Keeper 修复:避免在 multi 请求失败时触发 watch。[#79247](https://github.com/ClickHouse/ClickHouse/pull/79247) ([Antonio Andelic](https://github.com/antonio2368)). +* 修复在显式指定的 min-max 值为 `NULL` 时读取 Iceberg 表失败的问题。已注意到 Go Iceberg 库会生成这种极其糟糕的文件。修复 [#78740](https://github.com/ClickHouse/ClickHouse/issues/78740)。[#78764](https://github.com/ClickHouse/ClickHouse/pull/78764)([flynn](https://github.com/ucasfl))。 + +#### 构建/测试/打包改进 {#buildtestingpackaging-improvement} + +* 在 Rust 中考虑 CPU 目标特性,并在所有 crate 中启用 LTO。[#78590](https://github.com/ClickHouse/ClickHouse/pull/78590) ([Raúl Marín](https://github.com/Algunenano))。 + +### ClickHouse 25.3 LTS 发布,2025-03-20 {#253} + +#### 不向后兼容的变更 {#backward-incompatible-change} + +* 不允许截断复制数据库。 [#76651](https://github.com/ClickHouse/ClickHouse/pull/76651) ([Bharat Nallan](https://github.com/bharatnc)). +* 已回滚“跳过索引缓存”的更改。 [#77447](https://github.com/ClickHouse/ClickHouse/pull/77447) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). + +#### 新功能 {#new-feature} + +* `JSON` 数据类型现已可用于生产环境。参见 [https://jsonbench.com/](https://jsonbench.com/)。`Dynamic` 和 `Variant` 数据类型现已可用于生产环境。[#77785](https://github.com/ClickHouse/ClickHouse/pull/77785) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 为 clickhouse-server 引入了 SSH 协议。现在可以使用任何 SSH 客户端连接到 ClickHouse。解决了以下问题:[#74340](https://github.com/ClickHouse/ClickHouse/issues/74340)。[#74989](https://github.com/ClickHouse/ClickHouse/pull/74989)([George Gamezardashvili](https://github.com/Infjoker))。 +* 如果启用了并行副本,请将表函数替换为对应的 -Cluster 变体。修复了 [#65024](https://github.com/ClickHouse/ClickHouse/issues/65024)。[#70659](https://github.com/ClickHouse/ClickHouse/pull/70659)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 全新的 Userspace Page Cache 实现,允许将数据缓存在进程内存中,而不是依赖操作系统的页面缓存,这在数据存储于远程虚拟文件系统且没有本地文件系统缓存支撑时非常有用。 [#70509](https://github.com/ClickHouse/ClickHouse/pull/70509) ([Michael Kolupaev](https://github.com/al13n321)). +* 新增了 `concurrent_threads_scheduler` 服务器设置,用于控制并发查询之间如何分配 CPU 槽位。可以设置为 `round_robin`(与之前的行为一致)或 `fair_round_robin`,以解决 INSERT 和 SELECT 之间 CPU 分配不公平的问题。[#75949](https://github.com/ClickHouse/ClickHouse/pull/75949) ([Sergei Trifonov](https://github.com/serxa))。 +* 新增 `estimateCompressionRatio` 聚合函数 [#70801](https://github.com/ClickHouse/ClickHouse/issues/70801)。 [#76661](https://github.com/ClickHouse/ClickHouse/pull/76661)([Tariq Almawash](https://github.com/talmawash))。 +* 新增函数 `arraySymmetricDifference`。它返回多个数组参数中未在所有参数中都出现的所有元素。示例:`SELECT arraySymmetricDifference([1, 2], [2, 3])` 返回 `[1, 3]`(issue [#61673](https://github.com/ClickHouse/ClickHouse/issues/61673),[#76231](https://github.com/ClickHouse/ClickHouse/pull/76231),[Filipp Abapolov](https://github.com/pheepa))。 +* 允许通过存储/表函数的 SETTING `iceberg_metadata_file_path` 显式指定 Iceberg 要读取的元数据文件。修复了 [#47412](https://github.com/ClickHouse/ClickHouse/issues/47412)。[#77318](https://github.com/ClickHouse/ClickHouse/pull/77318)([alesapin](https://github.com/alesapin))。 +* 新增了 `keccak256` 哈希函数,该函数在区块链实现中被广泛使用,尤其是在基于 EVM 的系统中。[#76669](https://github.com/ClickHouse/ClickHouse/pull/76669)([Arnaud Briche](https://github.com/arnaudbriche))。 +* 新增三个函数:`icebergTruncate`(符合规范:[https://iceberg.apache.org/spec/#truncate-transform-details](https://iceberg.apache.org/spec/#truncate-transform-details))、`toYearNumSinceEpoch` 和 `toMonthNumSinceEpoch`。在 `Iceberg` 引擎中为分区剪枝新增对 `truncate` transform 的支持。[#77403](https://github.com/ClickHouse/ClickHouse/pull/77403) ([alesapin](https://github.com/alesapin))。 +* 增加对 `LowCardinality(Decimal)` 数据类型的支持 [#72256](https://github.com/ClickHouse/ClickHouse/issues/72256)。 [#72833](https://github.com/ClickHouse/ClickHouse/pull/72833) ([zhanglistar](https://github.com/zhanglistar))。 +* `FilterTransformPassedRows` 和 `FilterTransformPassedBytes` 分析事件(profile events)将显示查询执行期间被过滤的行数和字节数。[#76662](https://github.com/ClickHouse/ClickHouse/pull/76662) ([Onkar Deshpande](https://github.com/onkar)). +* 支持直方图指标类型。该接口与 Prometheus 客户端非常相似,只需调用 `observe(value)` 即可将值所在桶对应的计数器加一。直方图指标通过 `system.histogram_metrics` 暴露。[#75736](https://github.com/ClickHouse/ClickHouse/pull/75736) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* 新增对使用显式非常量值进行 CASE 分支的支持。 [#77399](https://github.com/ClickHouse/ClickHouse/pull/77399) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). + +#### 实验性特性 {#experimental-feature} + +* 为存储在 AWS S3 或本地文件系统上的 Delta Lake 表添加对 [Unity Catalog](https://www.databricks.com/product/unity-catalog) 的支持。[#76988](https://github.com/ClickHouse/ClickHouse/pull/76988) ([alesapin](https://github.com/alesapin))。 +* 引入与 AWS Glue 服务目录的实验性集成,用于 Iceberg 表。[#77257](https://github.com/ClickHouse/ClickHouse/pull/77257) ([alesapin](https://github.com/alesapin))。 +* 增加对动态集群自动发现的支持。这扩展了现有的 _node_ 自动发现功能。ClickHouse 现在可以使用 `` 在公共的 ZooKeeper 路径下自动发现并注册新的 _clusters_。[#76001](https://github.com/ClickHouse/ClickHouse/pull/76001) ([Anton Ivashkin](https://github.com/ianton-ru))。 +* 通过新增设置 `enable_replacing_merge_with_cleanup_for_min_age_to_force_merge`,允许在可配置的超时时间之后,对整个分区执行自动清理合并。[#76440](https://github.com/ClickHouse/ClickHouse/pull/76440) ([Christoph Wurm](https://github.com/cwurm))。 + +#### 性能改进 {#performance-improvement} + +* 实现查询条件缓存,以提升包含重复条件的查询性能。不满足条件的数据范围会被记录为内存中的临时索引,后续查询会使用该索引。修复 [#67768](https://github.com/ClickHouse/ClickHouse/issues/67768) [#69236](https://github.com/ClickHouse/ClickHouse/pull/69236)([zhongyuankai](https://github.com/zhongyuankai))。 +* 在删除分区片段时主动从缓存中驱逐数据。如果数据量更少,则不要让缓存增长到最大容量。[#76641](https://github.com/ClickHouse/ClickHouse/pull/76641)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 在算术计算中用 clang 内建的 i256 替换 Int256 和 UInt256,从而带来性能提升 [#70502](https://github.com/ClickHouse/ClickHouse/issues/70502)。[#73658](https://github.com/ClickHouse/ClickHouse/pull/73658)([李扬](https://github.com/taiyang-li))。 +* 在某些情况下(例如空数组列),数据分区片段中可能包含空文件。当表位于元数据和对象存储分离的磁盘上时,我们可以跳过向 ObjectStorage 写入空的 blob,仅存储此类文件的元数据。[#75860](https://github.com/ClickHouse/ClickHouse/pull/75860)([Alexander Gololobov](https://github.com/davenger))。 +* 提升 Decimal32/Decimal64/DateTime64 的最小值/最大值计算性能。[#76570](https://github.com/ClickHouse/ClickHouse/pull/76570)([李扬](https://github.com/taiyang-li))。 +* 查询编译(`compile_expressions` 设置)现在会考虑机器类型。这显著加速了此类查询。[#76753](https://github.com/ClickHouse/ClickHouse/pull/76753)([ZhangLiStar](https://github.com/zhanglistar))。 +* 优化 `arraySort`。[#76850](https://github.com/ClickHouse/ClickHouse/pull/76850)([李扬](https://github.com/taiyang-li))。 +* 当缓存处于被动使用场景时(例如用于合并),禁用 `filesystem_cache_prefer_bigger_buffer_size`。[#77898](https://github.com/ClickHouse/ClickHouse/pull/77898)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 在代码中的部分位置应用 `preserve_most` 属性,从而实现略微更好的代码生成。[#67778](https://github.com/ClickHouse/ClickHouse/pull/67778)([Nikita Taranov](https://github.com/nickitat))。 +* 加速 ClickHouse 服务器关闭(消除 2.5 秒的延迟)。[#76550](https://github.com/ClickHouse/ClickHouse/pull/76550)([Azat Khuzhin](https://github.com/azat))。 +* 避免在 ReadBufferFromS3 和其他远程读取缓冲区中出现多余的内存分配,将其内存消耗减少一半。[#76692](https://github.com/ClickHouse/ClickHouse/pull/76692)([Sema Checherinda](https://github.com/CheSema))。 +* 将 zstd 从 1.5.5 升级到 1.5.7,这可能带来一些[性能提升](https://github.com/facebook/zstd/releases/tag/v1.5.7)。[#77137](https://github.com/ClickHouse/ClickHouse/pull/77137)([Pradeep Chhetri](https://github.com/chhetripradeep))。 +* 在 Wide 格式分区片段中预取 JSON 列时降低内存使用量。当 ClickHouse 运行在共享存储之上(例如在 ClickHouse Cloud 中)时,这一点尤为相关。[#77640](https://github.com/ClickHouse/ClickHouse/pull/77640)([Pavel Kruglov](https://github.com/Avogar))。 + +#### 改进 {#improvement} + +* 在将 `TRUNCATE` 与 `INTO OUTFILE` 一起使用时支持执行原子重命名。解决了 [#70323](https://github.com/ClickHouse/ClickHouse/issues/70323)。[#77181](https://github.com/ClickHouse/ClickHouse/pull/77181)([Onkar Deshpande](https://github.com/onkar))。 +* 不再允许将 `NaN` 或 `inf` 用作浮点型设置项的取值。反正之前那样也没有什么意义。[#77546](https://github.com/ClickHouse/ClickHouse/pull/77546) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 当 analyzer 被禁用时,默认禁用并行副本,而不受 `compatibility` 设置影响。仍然可以通过将 `parallel_replicas_only_with_analyzer` 显式设置为 `false` 来更改此行为。[#77115](https://github.com/ClickHouse/ClickHouse/pull/77115) ([Igor Nikonov](https://github.com/devcrafter))。 +* 新增支持定义从客户端请求头转发到外部 HTTP 认证器的请求头列表。[#77054](https://github.com/ClickHouse/ClickHouse/pull/77054) ([inv2004](https://github.com/inv2004))。 +* 对元组列中的字段遵循不区分大小写的列匹配规则。关闭 [https://github.com/apache/incubator-gluten/issues/8324](https://github.com/apache/incubator-gluten/issues/8324)。[#73780](https://github.com/ClickHouse/ClickHouse/pull/73780) ([李扬](https://github.com/taiyang-li))。 +* Gorilla 编解码器的参数现将始终保存在 `.sql` 文件中的表元数据里。这修复了:[ #70072](https://github.com/ClickHouse/ClickHouse/issues/70072)。[#74814](https://github.com/ClickHouse/ClickHouse/pull/74814)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* 为某些数据湖实现了解析增强(Sequence ID 解析:新增在 manifest 文件中解析序列标识符的功能;Avro 元数据解析:重新设计了 Avro 元数据解析器,使其便于在未来进行扩展和增强)。 [#75010](https://github.com/ClickHouse/ClickHouse/pull/75010) ([Daniil Ivanik](https://github.com/divanik)). +* 从 `system.opentelemetry_span_log` 的默认 ORDER BY 中移除 trace_id。 [#75907](https://github.com/ClickHouse/ClickHouse/pull/75907) ([Azat Khuzhin](https://github.com/azat)). +* 现在可以将加密(通过属性 `encrypted_by`)应用到任意配置文件(config.xml、users.xml 以及嵌套的配置文件)。此前,它仅适用于顶层的 config.xml 文件。[#75911](https://github.com/ClickHouse/ClickHouse/pull/75911)([Mikhail Gorshkov](https://github.com/mgorshkov))。 +* 改进 `system.warnings` 表,并添加一些支持动态添加、更新或删除的警告消息。[#76029](https://github.com/ClickHouse/ClickHouse/pull/76029)([Bharat Nallan](https://github.com/bharatnc))。 +* 该 PR 使查询 `ALTER USER user1 ADD PROFILES a, DROP ALL PROFILES` 无法执行,因为所有 `DROP` 操作在语句中必须排在前面。[#76242](https://github.com/ClickHouse/ClickHouse/pull/76242) ([pufit](https://github.com/pufit)). +* 对 SYNC REPLICA 进行了多项改进(更完善的错误信息、更完善的测试、合理性检查)。[#76307](https://github.com/ClickHouse/ClickHouse/pull/76307) ([Azat Khuzhin](https://github.com/azat)). +* 在备份到 S3 时,如果因 Access Denied 导致分段复制失败,则使用正确的回退机制。当在使用不同凭据的存储桶之间执行备份时,分段复制可能会产生 Access Denied 错误。 [#76515](https://github.com/ClickHouse/ClickHouse/pull/76515) ([Antonio Andelic](https://github.com/antonio2368))。 +* 将 librdkafka(质量很差的实现)升级到 2.8.0 版本(但质量并没有明显改善),并改进了 Kafka 表的关闭过程,从而减少删除表和重启服务器期间的延迟。`engine=Kafka` 在表被删除时不再显式地离开 consumer group,而是让 consumer 继续留在 group 中,直到在无活动状态下经过 `session_timeout_ms`(默认:45 秒)后被自动移除。[#76621](https://github.com/ClickHouse/ClickHouse/pull/76621)([filimonov](https://github.com/filimonov))。 +* 修复 S3 请求设置的验证。[#76658](https://github.com/ClickHouse/ClickHouse/pull/76658) ([Vitaly Baranov](https://github.com/vitlibar)). +* 类似 `server_settings` 或 `settings` 的系统表都带有一个用于默认值的 `default` 列,这非常方便。现已在 `merge_tree_settings` 和 `replicated_merge_tree_settings` 中也提供该列。 [#76942](https://github.com/ClickHouse/ClickHouse/pull/76942) ([Diego Nieto](https://github.com/lesandie)). +* 添加了 `ProfileEvents::QueryPreempted`,其逻辑与 `CurrentMetrics::QueryPreempted` 类似。[#77015](https://github.com/ClickHouse/ClickHouse/pull/77015) ([VicoWu](https://github.com/VicoWu))。 +* 此前,`Replicated` 数据库可能会将查询中指定的凭证记录到日志中。此行为已被修复。相关问题关闭:[#77123](https://github.com/ClickHouse/ClickHouse/issues/77123)。[#77133](https://github.com/ClickHouse/ClickHouse/pull/77133)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* 允许在 `plain_rewritable` 磁盘上执行 ALTER TABLE DROP PARTITION。 [#77138](https://github.com/ClickHouse/ClickHouse/pull/77138) ([Julia Kartseva](https://github.com/jkartseva)). +* 备份/恢复设置 `allow_s3_native_copy` 现在支持三个取值:- `False`:不使用 S3 原生复制;- `True`(旧默认值):ClickHouse 将优先尝试使用 S3 原生复制,如果失败则回退到读写方案;- `'auto'`(新默认值):ClickHouse 会先比较源端和目标端的凭证。如果相同,ClickHouse 将尝试使用 S3 原生复制,失败时可回退到读写方案;如果不同,ClickHouse 将直接采用读写方案。[#77401](https://github.com/ClickHouse/ClickHouse/pull/77401)([Vitaly Baranov](https://github.com/vitlibar))。 +* 在 DeltaLake 表引擎的 delta kernel 中增加对 AWS 会话令牌和环境凭证的支持。 [#77661](https://github.com/ClickHouse/ClickHouse/pull/77661) ([Kseniia Sumarokova](https://github.com/kssenii)). + +#### Bug 修复(官方稳定版中对用户可见的错误行为) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* 修复异步分布式 INSERT 在处理待处理批次时卡住的问题(例如由于 `No such file or directory`)。 [#72939](https://github.com/ClickHouse/ClickHouse/pull/72939) ([Azat Khuzhin](https://github.com/azat)). +* 通过在索引分析期间对隐式的 Date 到 DateTime 转换强制使用饱和处理,改进了 datetime 转换。这解决了由于 datetime 范围限制导致的索引分析结果可能不准确的问题。修复了 [#73307](https://github.com/ClickHouse/ClickHouse/issues/73307)。同时也修复了在 `date_time_overflow_behavior = 'ignore'`(默认值)时显式调用 `toDateTime` 的转换行为。[#73326](https://github.com/ClickHouse/ClickHouse/pull/73326)([Amos Bird](https://github.com/amosbird))。 +* 修复了由 UUID 和表名之间竞争条件导致的各种问题(例如,修复了 `RENAME` 和 `RESTART REPLICA` 之间的竞争情况,在并发执行 `RENAME` 与 `SYSTEM RESTART REPLICA` 时,可能会导致重启了错误的副本,和/或使其中一张表停留在 `Table X is being restarted` 状态)。 [#76308](https://github.com/ClickHouse/ClickHouse/pull/76308) ([Azat Khuzhin](https://github.com/azat)). +* 修复在启用 async insert 并使用 insert into ... from file ... 且块大小不相等时导致的数据丢失问题:如果第一个块大小 < async_max_size 而第二个块 > async_max_size,则第二个块不会被插入,这些数据会滞留在 `squashing` 中。[#76343](https://github.com/ClickHouse/ClickHouse/pull/76343) ([Han Fei](https://github.com/hanfei1991))。 +* 在 `system.data_skipping_indices` 中,将字段 'marks' 重命名为 'marks_bytes'。[#76374](https://github.com/ClickHouse/ClickHouse/pull/76374)([Robert Schulze](https://github.com/rschu1ze))。 +* 修复动态文件系统缓存调整大小时,在淘汰过程中对意外错误处理不当的问题。[#76466](https://github.com/ClickHouse/ClickHouse/pull/76466) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 修复了在并行哈希中对 `used_flag` 的初始化问题,该问题可能导致服务器崩溃。[#76580](https://github.com/ClickHouse/ClickHouse/pull/76580)([Nikita Taranov](https://github.com/nickitat))。 +* 修复在 projection 中调用 `defaultProfiles` 函数时的逻辑错误。 [#76627](https://github.com/ClickHouse/ClickHouse/pull/76627) ([pufit](https://github.com/pufit)). +* 在 Web UI 中不再通过浏览器请求交互式基本身份验证。关闭 [#76319](https://github.com/ClickHouse/ClickHouse/issues/76319)。[#76637](https://github.com/ClickHouse/ClickHouse/pull/76637)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 修复从分布式表中查询布尔字面量时触发的 THERE_IS_NO_COLUMN 异常。[#76656](https://github.com/ClickHouse/ClickHouse/pull/76656) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* 表目录中的子路径现在采用了更合理的选择方式。[#76681](https://github.com/ClickHouse/ClickHouse/pull/76681) ([Daniil Ivanik](https://github.com/divanik))。 +* 修复在对主键中包含子列的表执行 `ALTER` 后出现的错误 `Not found column in block`。在 [https://github.com/ClickHouse/ClickHouse/pull/72644](https://github.com/ClickHouse/ClickHouse/pull/72644) 之后,需要配合 [https://github.com/ClickHouse/ClickHouse/pull/74403](https://github.com/ClickHouse/ClickHouse/pull/74403)。[#76686](https://github.com/ClickHouse/ClickHouse/pull/76686)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 为 NULL 短路逻辑添加性能测试并修复相关 bug。[#76708](https://github.com/ClickHouse/ClickHouse/pull/76708) ([李扬](https://github.com/taiyang-li)). +* 在结束输出写入缓冲区前先刷新它们。修复在对某些输出格式(例如 `JSONEachRowWithProgressRowOutputFormat`)进行结束处理时产生的 `LOGICAL_ERROR`。[#76726](https://github.com/ClickHouse/ClickHouse/pull/76726) ([Antonio Andelic](https://github.com/antonio2368))。 +* 添加了对 MongoDB 二进制 UUID 的支持([#74452](https://github.com/ClickHouse/ClickHouse/issues/74452)) - 修复了在使用表函数时对 MongoDB 的 WHERE 下推([#72210](https://github.com/ClickHouse/ClickHouse/issues/72210)) - 修改了 MongoDB - ClickHouse 类型映射,使得 MongoDB 的二进制 UUID 只能被解析为 ClickHouse 的 UUID。这样应当可以避免今后出现歧义和意外行为。 - 修复了 OID 映射,同时保持向后兼容性。[#76762](https://github.com/ClickHouse/ClickHouse/pull/76762)([Kirill Nikiforov](https://github.com/allmazz))。 +* 修复 JSON 子列并行前缀反序列化中的异常处理。[#76809](https://github.com/ClickHouse/ClickHouse/pull/76809) ([Pavel Kruglov](https://github.com/Avogar))。 +* 修复 lgamma 函数在负整数情况下的行为。[#76840](https://github.com/ClickHouse/ClickHouse/pull/76840)([Ilya Kataev](https://github.com/IlyaKataev))。 +* 为显式定义的主键修复反向键分析。类似于 [#76654](https://github.com/ClickHouse/ClickHouse/issues/76654)。[#76846](https://github.com/ClickHouse/ClickHouse/pull/76846)([Amos Bird](https://github.com/amosbird))。 +* 修复 JSON 格式中 Bool 值的美化输出。 [#76905](https://github.com/ClickHouse/ClickHouse/pull/76905) ([Pavel Kruglov](https://github.com/Avogar)). +* 修复在异步插入期间出错时,对 JSON 列进行错误回滚可能导致崩溃的问题。 [#76908](https://github.com/ClickHouse/ClickHouse/pull/76908) ([Pavel Kruglov](https://github.com/Avogar)). +* 此前,`multiIf` 在计划阶段和实际执行阶段可能返回不同类型的列。这会导致从 C++ 的角度来看,代码产生未定义行为。[#76914](https://github.com/ClickHouse/ClickHouse/pull/76914) ([Nikita Taranov](https://github.com/nickitat))。 +* 修复了 MergeTree 中常量 Nullable 键序列化错误的问题。该修复解决了 [#76939](https://github.com/ClickHouse/ClickHouse/issues/76939)。[#76985](https://github.com/ClickHouse/ClickHouse/pull/76985)([Amos Bird](https://github.com/amosbird))。 +* 修复 `BFloat16` 值的排序问题。已解决 [#75487](https://github.com/ClickHouse/ClickHouse/issues/75487)。已解决 [#75669](https://github.com/ClickHouse/ClickHouse/issues/75669)。[#77000](https://github.com/ClickHouse/ClickHouse/pull/77000)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 修复了 JSON 中包含 Variant 子列时的 Bug,通过在 part 一致性检查中添加逻辑以跳过临时子列。 [#72187](https://github.com/ClickHouse/ClickHouse/issues/72187)。 [#77034](https://github.com/ClickHouse/ClickHouse/pull/77034) ([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 +* 修复在 Values 格式中解析模板时由于类型不匹配导致的崩溃。[#77071](https://github.com/ClickHouse/ClickHouse/pull/77071) ([Pavel Kruglov](https://github.com/Avogar))。 +* 不再允许创建在主键中包含子列的 EmbeddedRocksDB 表。此前可以创建此类表,但在执行 select 查询时会失败。[#77074](https://github.com/ClickHouse/ClickHouse/pull/77074) ([Pavel Kruglov](https://github.com/Avogar)). +* 修复分布式查询中的非法比较问题,原因是在向远端下推谓词时没有正确保留字面量的类型。 [#77093](https://github.com/ClickHouse/ClickHouse/pull/77093) ([Duc Canh Le](https://github.com/canhld94)). +* 修复在创建 Kafka 表时抛出异常导致的崩溃。 [#77121](https://github.com/ClickHouse/ClickHouse/pull/77121) ([Pavel Kruglov](https://github.com/Avogar)). +* Kafka 和 RabbitMQ 引擎现已支持 JSON 和子列。[#77122](https://github.com/ClickHouse/ClickHouse/pull/77122) ([Pavel Kruglov](https://github.com/Avogar))。 +* 修复在 macOS 上异常栈展开的问题。[#77126](https://github.com/ClickHouse/ClickHouse/pull/77126) ([Eduard Karacharov](https://github.com/korowa)). +* 修复 `getSubcolumn` 函数中读取 `null` 子列时的问题。[#77163](https://github.com/ClickHouse/ClickHouse/pull/77163) ([Pavel Kruglov](https://github.com/Avogar)). +* 修复 bloom filter 索引在与 Array 及不受支持函数一起使用时的问题。 [#77271](https://github.com/ClickHouse/ClickHouse/pull/77271) ([Pavel Kruglov](https://github.com/Avogar)). +* 我们只应在初始的 `CREATE` 查询时检查对表数量的限制。[#77274](https://github.com/ClickHouse/ClickHouse/pull/77274) ([Nikolay Degterinsky](https://github.com/evillique))。 +* 不是一个 bug:`SELECT toBFloat16(-0.0) == toBFloat16(0.0)` 现在会正确返回 `true`(之前为 `false`)。这使得该行为与 `Float32` 和 `Float64` 保持一致。[#77290](https://github.com/ClickHouse/ClickHouse/pull/77290) ([Shankar Iyer](https://github.com/shankar-iyer)). +* 修复了可能错误引用未初始化 key_index 变量的问题,该问题可能导致调试版本崩溃(在发布版本中,该未初始化引用不会造成问题,因为后续代码很可能会抛出错误)。### 面向用户更改的文档条目。[#77305](https://github.com/ClickHouse/ClickHouse/pull/77305) ([wxybear](https://github.com/wxybear))。 +* 修复了包含 Bool 值时的分区名称。该问题引入于 [https://github.com/ClickHouse/ClickHouse/pull/74533](https://github.com/ClickHouse/ClickHouse/pull/74533)。[#77319](https://github.com/ClickHouse/ClickHouse/pull/77319)([Pavel Kruglov](https://github.com/Avogar))。 +* 修复了在包含 Nullable 元素的 Tuple 与字符串之间进行比较时的问题。比如,在此变更之前,Tuple `(1, null)` 与 String `'(1,null)'` 之间的比较会导致错误。另一个例子是将 Tuple `(1, a)`(其中 `a` 是 Nullable 列)与 String `'(1, 2)'` 进行比较。此变更解决了这些问题。 [#77323](https://github.com/ClickHouse/ClickHouse/pull/77323) ([Alexey Katsman](https://github.com/alexkats))。 +* 修复 `ObjectStorageQueueSource` 中的崩溃。该问题是在 [https://github.com/ClickHouse/ClickHouse/pull/76358](https://github.com/ClickHouse/ClickHouse/pull/76358) 中引入的。[#77325](https://github.com/ClickHouse/ClickHouse/pull/77325)([Pavel Kruglov](https://github.com/Avogar))。 +* 修复 `async_insert` 与 `input` 搭配使用时的问题。[#77340](https://github.com/ClickHouse/ClickHouse/pull/77340) ([Azat Khuzhin](https://github.com/azat))。 +* 修复:当排序列被查询计划器移除时,`WITH FILL` 可能会因 NOT_FOUND_COLUMN_IN_BLOCK 而失败。修复了一个与为 INTERPOLATE 表达式计算得到的不一致 DAG 相关的类似问题。[#77343](https://github.com/ClickHouse/ClickHouse/pull/77343) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 +* 修复了若干与为无效 AST 节点设置别名相关的 LOGICAL_ERROR。 [#77445](https://github.com/ClickHouse/ClickHouse/pull/77445) ([Raúl Marín](https://github.com/Algunenano)). +* 在 filesystem cache 的实现中修复了写入文件段时的错误处理问题。[#77471](https://github.com/ClickHouse/ClickHouse/pull/77471) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 使 DatabaseIceberg 使用由目录提供的正确元数据文件。修复 [#75187](https://github.com/ClickHouse/ClickHouse/issues/75187)。[#77486](https://github.com/ClickHouse/ClickHouse/pull/77486)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 查询缓存现在假定 UDF 为非确定性函数。因此,包含 UDF 的查询结果将不再被缓存。此前,用户可以定义非确定性的 UDF,其结果会被错误地缓存(问题 [#77553](https://github.com/ClickHouse/ClickHouse/issues/77553))。[#77633](https://github.com/ClickHouse/ClickHouse/pull/77633)([Jimmy Aguilar Mena](https://github.com/Ergus))。 +* 修复 `system.filesystem_cache_log` 仅在启用设置项 `enable_filesystem_cache_log` 时才生效的问题。[#77650](https://github.com/ClickHouse/ClickHouse/pull/77650) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 修复在 PROJECTION 中调用 `defaultRoles` FUNCTION 时存在的逻辑错误。[#76627](https://github.com/ClickHouse/ClickHouse/issues/76627) 的后续修复。[#77667](https://github.com/ClickHouse/ClickHouse/pull/77667)([pufit](https://github.com/pufit))。 +* 现在不再允许将 `Nullable` 类型用作 `arrayResize` 函数的第二个参数。此前,当第二个参数为 `Nullable` 时,可能会出现从报错到结果错误等各种问题(issue [#48398](https://github.com/ClickHouse/ClickHouse/issues/48398))。[#77724](https://github.com/ClickHouse/ClickHouse/pull/77724)([Manish Gill](https://github.com/mgill25))。 +* 即使操作不会产生任何要写入的数据块,也会定期检查合并和变更是否被取消。 [#77766](https://github.com/ClickHouse/ClickHouse/pull/77766) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). + +#### 构建 / 测试 / 打包方面的改进 {#buildtestingpackaging-improvement} + +* 将 `clickhouse-odbc-bridge` 和 `clickhouse-library-bridge` 移动到独立仓库:https://github.com/ClickHouse/odbc-bridge/。 [#76225](https://github.com/ClickHouse/ClickHouse/pull/76225) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 修复 Rust 交叉编译问题,并允许完全禁用 Rust。 [#76921](https://github.com/ClickHouse/ClickHouse/pull/76921) ([Raúl Marín](https://github.com/Algunenano)). + +### ClickHouse 25.2 版本发布,2025-02-27 {#252} + +#### 向后不兼容的变更 {#backward-incompatible-change} + +* 默认完全启用 `async_load_databases`(即便对于未升级 `config.xml` 的部署)。[#74772](https://github.com/ClickHouse/ClickHouse/pull/74772) ([Azat Khuzhin](https://github.com/azat)). +* 新增 `JSONCompactEachRowWithProgress` 和 `JSONCompactStringsEachRowWithProgress` 格式,作为 [#69989](https://github.com/ClickHouse/ClickHouse/issues/69989) 的延续。`JSONCompactWithNames` 和 `JSONCompactWithNamesAndTypes` 不再输出 “totals”——显然这是实现中的一个错误。[#75037](https://github.com/ClickHouse/ClickHouse/pull/75037) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 将 `format_alter_operations_with_parentheses` 的默认值改为 true,以消除 ALTER 命令列表的歧义(见 https://github.com/ClickHouse/ClickHouse/pull/59532)。此变更会导致与 24.3 之前版本集群的复制不兼容。如果你正在升级使用旧版本的集群,请在服务器配置中关闭该设置,或者先升级到 24.3。[#75302](https://github.com/ClickHouse/ClickHouse/pull/75302) ([Raúl Marín](https://github.com/Algunenano)). +* 移除使用正则表达式过滤日志消息的功能。该实现引入了数据竞争,因此必须移除。[#75577](https://github.com/ClickHouse/ClickHouse/pull/75577) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* 设置 `min_chunk_bytes_for_parallel_parsing` 不再允许为零。此变更修复了:[#71110](https://github.com/ClickHouse/ClickHouse/issues/71110)。[#75239](https://github.com/ClickHouse/ClickHouse/pull/75239) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* 在缓存配置中校验设置项。之前不存在的设置项会被忽略,现在会抛出错误,需要将其移除。[#75452](https://github.com/ClickHouse/ClickHouse/pull/75452) ([Kseniia Sumarokova](https://github.com/kssenii)). + +#### 新功能 {#new-feature} + +* 支持 `Nullable(JSON)` 类型。[#73556](https://github.com/ClickHouse/ClickHouse/pull/73556) ([Pavel Kruglov](https://github.com/Avogar))。 +* 在 DEFAULT 和 MATERIALIZED 表达式中支持子列。[#74403](https://github.com/ClickHouse/ClickHouse/pull/74403) ([Pavel Kruglov](https://github.com/Avogar))。 +* 支持使用 `output_format_parquet_write_bloom_filter` 设置(默认启用)写入 Parquet bloom filter。[#71681](https://github.com/ClickHouse/ClickHouse/pull/71681) ([Michael Kolupaev](https://github.com/al13n321))。 +* Web UI 现在支持交互式数据库导航。[#75777](https://github.com/ClickHouse/ClickHouse/pull/75777) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 允许在 storage policy 中组合只读和读写磁盘(作为多个 volume 或多个 disk)。这允许从整个卷读取数据,而插入操作会优先使用可写磁盘(即 Copy-on-Write 存储策略)。[#75862](https://github.com/ClickHouse/ClickHouse/pull/75862) ([Azat Khuzhin](https://github.com/azat))。 +* 新增一个 Database 引擎 `DatabaseBackup`,用于从备份中即时挂载表/数据库。[#75725](https://github.com/ClickHouse/ClickHouse/pull/75725) ([Maksim Kita](https://github.com/kitaisreal))。 +* 在 Postgres wire protocol 中支持预处理语句(prepared statements)。[#75035](https://github.com/ClickHouse/ClickHouse/pull/75035) ([scanhex12](https://github.com/scanhex12))。 +* 新增无需 database 层即可 ATTACH 表的能力,对位于 Web、S3 等外部虚拟文件系统上的 MergeTree 表非常有用。[#75788](https://github.com/ClickHouse/ClickHouse/pull/75788) ([Azat Khuzhin](https://github.com/azat))。 +* 新增字符串比较函数 `compareSubstrings`,用于比较两个字符串的部分内容。示例:`SELECT compareSubstrings('Saxony', 'Anglo-Saxon', 0, 6, 5) AS result` 的含义是:“按字典序比较字符串 'Saxon' 和 'Anglo-Saxon' 的 6 个字节,从第一个字符串的偏移量 0 和第二个字符串的偏移量 5 开始”。[#74070](https://github.com/ClickHouse/ClickHouse/pull/74070) ([lgbo](https://github.com/lgbo-ustc))。 +* 新增函数 `initialQueryStartTime`。它返回当前查询的开始时间。在分布式查询中,该值在所有分片上都相同。[#75087](https://github.com/ClickHouse/ClickHouse/pull/75087) ([Roman Lomonosov](https://github.com/lomik))。 +* 为 MySQL 的 named collections 增加对 SSL 身份验证的支持。修复了 [#59111](https://github.com/ClickHouse/ClickHouse/issues/59111) 中的问题。[#59452](https://github.com/ClickHouse/ClickHouse/pull/59452) ([Nikolay Degterinsky](https://github.com/evillique))。 + +#### 实验性功能 {#experimental-features} + +* 新增设置项 `enable_adaptive_memory_spill_scheduler`,允许同一查询中的多个 Grace JOIN 监控其总内存占用,并自适应地触发向外部存储溢写,以防止 MEMORY_LIMIT_EXCEEDED。[#72728](https://github.com/ClickHouse/ClickHouse/pull/72728) ([lgbo](https://github.com/lgbo-ustc))。 +* 使新的实验性 `Kafka` 表引擎能够完全遵从 Keeper 功能开关。[#76004](https://github.com/ClickHouse/ClickHouse/pull/76004) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 +* 恢复 (Intel) QPL 编解码器,该编解码器曾因许可问题在 v24.10 中被移除。[#76021](https://github.com/ClickHouse/ClickHouse/pull/76021) ([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 为 HDFS 集成新增对配置项 `dfs.client.use.datanode.hostname` 的支持。[#74635](https://github.com/ClickHouse/ClickHouse/pull/74635) ([Mikhail Tiukavkin](https://github.com/freshertm))。 + +#### 性能改进 {#performance-improvement} + +* 提升从 S3 读取 Wide 分区片段中整个 JSON 列的性能。通过为子列前缀反序列化添加预取、缓存已反序列化的前缀,以及并行反序列化子列前缀来实现。在类似 `SELECT data FROM table` 的查询中,从 S3 读取 JSON 列的性能提升约 4 倍,在类似 `SELECT data FROM table LIMIT 10` 的查询中提升约 10 倍。[#74827](https://github.com/ClickHouse/ClickHouse/pull/74827) ([Pavel Kruglov](https://github.com/Avogar)). +* 修复了在 `max_rows_in_join = max_bytes_in_join = 0` 时 `parallel_hash` 中不必要的争用。[#75155](https://github.com/ClickHouse/ClickHouse/pull/75155) ([Nikita Taranov](https://github.com/nickitat)). +* 修复了在优化器交换 join 两端时,`ConcurrentHashJoin` 中重复预分配的问题。[#75149](https://github.com/ClickHouse/ClickHouse/pull/75149) ([Nikita Taranov](https://github.com/nickitat)). +* 在某些 join 场景中略微提升性能:预先计算输出行数并为其预留内存。[#75376](https://github.com/ClickHouse/ClickHouse/pull/75376) ([Alexander Gololobov](https://github.com/davenger)). +* 对于类似 `WHERE a < b AND b < c AND c < 5` 的查询,可以推断新的比较条件(`a < 5 AND b < 5`),以提高过滤能力。[#73164](https://github.com/ClickHouse/ClickHouse/pull/73164) ([Shichao Jin](https://github.com/jsc0218)). +* Keeper 改进:在提交到内存存储时禁用摘要计算以提升性能。可以通过配置 `keeper_server.digest_enabled_on_commit` 启用。在预处理请求时仍会计算摘要。[#75490](https://github.com/ClickHouse/ClickHouse/pull/75490) ([Antonio Andelic](https://github.com/antonio2368)). +* 在可能的情况下,从 JOIN ON 中下推过滤表达式。[#75536](https://github.com/ClickHouse/ClickHouse/pull/75536) ([Vladimir Cherkasov](https://github.com/vdimir)). +* 在 MergeTree 中按需(惰性)计算列和索引大小。[#75938](https://github.com/ClickHouse/ClickHouse/pull/75938) ([Pavel Kruglov](https://github.com/Avogar)). +* 重新在 `MATERIALIZE TTL` 中支持 `ttl_only_drop_parts`;仅读取必要的列来重新计算生存时间 (TTL),并通过将其替换为空分区片段来删除相应的分区片段。[#72751](https://github.com/ClickHouse/ClickHouse/pull/72751) ([Andrey Zvonov](https://github.com/zvonand)). +* 减小 plain_rewritable 元数据文件的写缓冲区大小。[#75758](https://github.com/ClickHouse/ClickHouse/pull/75758) ([Julia Kartseva](https://github.com/jkartseva)). +* 降低某些窗口函数的内存使用。[#65647](https://github.com/ClickHouse/ClickHouse/pull/65647) ([lgbo](https://github.com/lgbo-ustc)). +* 同时评估 Parquet 布隆过滤器和最小/最大索引。对于类似 `x = 3 or x > 5` 且数据为 [1, 2, 4, 5] 的情况,这是正确支持所必需的。[#71383](https://github.com/ClickHouse/ClickHouse/pull/71383) ([Arthur Passos](https://github.com/arthurpassos)). +* 传递给 `Executable` 存储的查询不再仅限于单线程执行。[#70084](https://github.com/ClickHouse/ClickHouse/pull/70084) ([yawnt](https://github.com/yawnt)). +* 在执行 ALTER TABLE FETCH PARTITION 时并行拉取分区片段(线程池大小由 `max_fetch_partition_thread_pool_size` 控制)。[#74978](https://github.com/ClickHouse/ClickHouse/pull/74978) ([Azat Khuzhin](https://github.com/azat)). +* 允许将包含 `indexHint` 函数的谓词移动到 `PREWHERE`。[#74987](https://github.com/ClickHouse/ClickHouse/pull/74987) ([Anton Popov](https://github.com/CurtizJ)). + +#### 改进 {#improvement} + +* 修正了对 `LowCardinality` 列内存占用大小的计算。[#74688](https://github.com/ClickHouse/ClickHouse/pull/74688) ([Nikita Taranov](https://github.com/nickitat)). +* `processors_profile_log` 表现已具有默认配置,生存时间 (TTL) 为 30 天。[#66139](https://github.com/ClickHouse/ClickHouse/pull/66139) ([Ilya Yatsishin](https://github.com/qoega))。 +* 支持在集群配置中为分片命名。[#72276](https://github.com/ClickHouse/ClickHouse/pull/72276) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). +* 将 Prometheus 远程写入成功响应的状态码从 200/OK 更改为 204/NoContent。[#74170](https://github.com/ClickHouse/ClickHouse/pull/74170) ([Michael Dempsey](https://github.com/bluestealth))。 +* 增加支持在无需重启服务器的情况下,动态重新加载 `max_remote_read_network_bandwidth_for_serve` 和 `max_remote_write_network_bandwidth_for_server`。[#74206](https://github.com/ClickHouse/ClickHouse/pull/74206) ([Kai Zhu](https://github.com/nauu)). +* 允许在创建备份时使用 blob 路径计算校验和。[#74729](https://github.com/ClickHouse/ClickHouse/pull/74729) ([Vitaly Baranov](https://github.com/vitlibar))。 +* 向 `system.query_cache` 添加了查询 ID 列(修复 [#68205](https://github.com/ClickHouse/ClickHouse/issues/68205))。[#74982](https://github.com/ClickHouse/ClickHouse/pull/74982)([NamHoaiNguyen](https://github.com/NamHoaiNguyen))。 +* 现在可以通过 `KILL QUERY` 命令或在达到超时时间(`max_execution_time`)后自动取消 `ALTER TABLE ... FREEZE ...` 查询。[#75016](https://github.com/ClickHouse/ClickHouse/pull/75016) ([Kirill](https://github.com/kirillgarbar))。 +* 新增对将 `groupUniqArrayArrayMap` 用作 `SimpleAggregateFunction` 的支持。 [#75034](https://github.com/ClickHouse/ClickHouse/pull/75034) ([Miel Donkers](https://github.com/mdonkers)). +* 在 `Iceberg` 数据库引擎中隐藏目录凭证配置。修复了 [#74559](https://github.com/ClickHouse/ClickHouse/issues/74559)。[#75080](https://github.com/ClickHouse/ClickHouse/pull/75080)([Kseniia Sumarokova](https://github.com/kssenii))。 +* `intExp2` / `intExp10`:明确此前未定义的行为:对于过小的参数返回 0,对于过大的参数返回 `18446744073709551615`,如果为 `nan` 则抛出异常。[#75312](https://github.com/ClickHouse/ClickHouse/pull/75312)([Vitaly Baranov](https://github.com/vitlibar))。 +* 在 `DatabaseIceberg` 中的 catalog 配置里原生支持 `s3.endpoint`。解决了 [#74558](https://github.com/ClickHouse/ClickHouse/issues/74558)。[#75375](https://github.com/ClickHouse/ClickHouse/pull/75375)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 当用户执行 `SYSTEM DROP REPLICA` 但权限不足时,不再静默失败。 [#75377](https://github.com/ClickHouse/ClickHouse/pull/75377) ([Bharat Nallan](https://github.com/bharatnc)). +* 添加一个用于统计任意系统日志刷新失败次数的 ProfileEvent。 [#75466](https://github.com/ClickHouse/ClickHouse/pull/75466) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 为解密和解压缩过程添加检查和额外日志。 [#75471](https://github.com/ClickHouse/ClickHouse/pull/75471) ([Vitaly Baranov](https://github.com/vitlibar)). +* 在 `parseTimeDelta` 函数中新增了对微符号(U+00B5)的支持。现在微符号(U+00B5)和希腊字母 mu(U+03BC)都可被识别为微秒的有效表示,使 ClickHouse 的行为与 Go 的实现保持一致([参见 time.go](https://github.com/golang/go/blob/ad7b46ee4ac1cee5095d64b01e8cf7fcda8bee5e/src/time/time.go#L983C19-L983C20) 和 [time/format.go](https://github.com/golang/go/blob/ad7b46ee4ac1cee5095d64b01e8cf7fcda8bee5e/src/time/format.go#L1608-L1609))。[#75472](https://github.com/ClickHouse/ClickHouse/pull/75472)([Vitaly Orlov](https://github.com/orloffv))。 +* 将服务器端设置(`send_settings_to_client`)替换为客户端设置(`apply_settings_from_server`),用于控制客户端代码(例如解析 INSERT 数据和格式化查询输出)是否应当使用来自服务器 `users.xml` 和用户配置文件中的设置。否则,将只使用来自客户端命令行、会话和查询本身的设置。请注意,这仅适用于原生客户端(不适用于例如 HTTP),且不适用于大多数查询处理逻辑(该部分在服务器端执行)。[#75478](https://github.com/ClickHouse/ClickHouse/pull/75478)([Michael Kolupaev](https://github.com/al13n321))。 +* 改进语法错误的错误消息。之前,如果查询过大,并且长度超过限制的 token 是一个非常长的字符串字面量,用于说明原因的消息会被夹在该超长 token 的两个示例之间而丢失。修复在错误消息中,包含 UTF-8 字符的查询被错误截断的问题。修复查询片段被过度加引号的问题。关闭问题 [#75473](https://github.com/ClickHouse/ClickHouse/issues/75473)。[#75561](https://github.com/ClickHouse/ClickHouse/pull/75561)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 为 `S3(Azure)Queue` 存储添加 profile 事件。 [#75618](https://github.com/ClickHouse/ClickHouse/pull/75618) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 为兼容性起见,禁用从服务器向客户端发送设置(`send_settings_to_client=false`)(该功能稍后将作为客户端设置重新实现,以提高易用性)。[#75648](https://github.com/ClickHouse/ClickHouse/pull/75648) ([Michael Kolupaev](https://github.com/al13n321)). +* 新增配置项 `memory_worker_correct_memory_tracker`,用于启用后台线程定期从不同来源读取信息,以纠正内部内存跟踪器的数据。[#75714](https://github.com/ClickHouse/ClickHouse/pull/75714) ([Antonio Andelic](https://github.com/antonio2368))。 +* 在 `system.processes` 中添加列 `normalized_query_hash`。注意:虽然可以通过 `normalizedQueryHash` 函数实时轻松计算该值,但仍需要该列以便为后续更改做准备。[#75756](https://github.com/ClickHouse/ClickHouse/pull/75756) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 即使存在一个构建在已删除数据库之上的 `Merge` 表,查询 `system.tables` 也不会抛出异常。移除 `Hive` 表中的 `getTotalRows` 方法,因为不允许该方法执行复杂操作。[#75772](https://github.com/ClickHouse/ClickHouse/pull/75772)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 备份的 start_time/end_time 现在以微秒精度存储。 [#75929](https://github.com/ClickHouse/ClickHouse/pull/75929) ([Aleksandr Musorin](https://github.com/AVMusorin)). +* 新增 `MemoryTrackingUncorrected` 指标,用于显示未经过 RSS 校正的内部全局内存跟踪器的值。 [#75935](https://github.com/ClickHouse/ClickHouse/pull/75935) ([Antonio Andelic](https://github.com/antonio2368)). +* 允许在 `PostgreSQL` 或 `MySQL` 表函数中解析类似 `localhost:1234/handle` 的端点。修复了在 [https://github.com/ClickHouse/ClickHouse/pull/52503](https://github.com/ClickHouse/ClickHouse/pull/52503) 中引入的回归。[#75944](https://github.com/ClickHouse/ClickHouse/pull/75944)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* 新增了一个服务器设置 `throw_on_unknown_workload`,用于在带有 `workload` 设置但其值为未知时的查询中选择处理方式:要么允许无限制访问(默认),要么抛出 `RESOURCE_ACCESS_DENIED` 错误。这对于强制所有查询使用 workload 调度非常有用。[#75999](https://github.com/ClickHouse/ClickHouse/pull/75999) ([Sergei Trifonov](https://github.com/serxa)). +* 如非必要,不要在 `ARRAY JOIN` 中将子列重写为 `getSubcolumn`。 [#76018](https://github.com/ClickHouse/ClickHouse/pull/76018) ([Pavel Kruglov](https://github.com/Avogar)). +* 在加载表时遇到协调错误会进行重试。[#76020](https://github.com/ClickHouse/ClickHouse/pull/76020) ([Alexander Tokmakov](https://github.com/tavplubix))。 +* 在 `SYSTEM FLUSH LOGS` 中支持刷新单个日志。[#76132](https://github.com/ClickHouse/ClickHouse/pull/76132) ([Raúl Marín](https://github.com/Algunenano)). +* 改进了服务器的 `/binary` 页面。使用 Hilbert 曲线替代 Morton 曲线。在方形区域中显示 512 MB 范围内的地址,使方形区域填充更充分(在之前的版本中,地址只填满方形的一半)。将地址的着色更偏向库名称而非函数名称。允许在区域边界之外多滚动一些。 [#76192](https://github.com/ClickHouse/ClickHouse/pull/76192) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 在遇到 TOO_MANY_SIMULTANEOUS_QUERIES 错误时重试 ON CLUSTER 查询。[#76352](https://github.com/ClickHouse/ClickHouse/pull/76352) ([Patrick Galbraith](https://github.com/CaptTofu)). +* 添加 `CPUOverload` 异步指标,用于计算服务器 CPU 的相对资源缺口。[#76404](https://github.com/ClickHouse/ClickHouse/pull/76404) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 将 `output_format_pretty_max_rows` 的默认值从 10000 调整为 1000,以提高易用性。[#76407](https://github.com/ClickHouse/ClickHouse/pull/76407)([Alexey Milovidov](https://github.com/alexey-milovidov))。 + +#### Bug 修复(官方稳定版中对用户可见的错误行为) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* 修复在查询解析期间出现异常时,未按查询中指定的自定义格式进行格式化的问题。此前版本中,异常始终使用默认格式,而非查询中指定的格式。修复了 [#55422](https://github.com/ClickHouse/ClickHouse/issues/55422)。[#74994](https://github.com/ClickHouse/ClickHouse/pull/74994)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 修复 SQLite 的类型映射(将整数类型映射为 `int64`,将浮点数映射为 `float64`)。 [#73853](https://github.com/ClickHouse/ClickHouse/pull/73853) ([Joanna Hulboj](https://github.com/jh0x)). +* 修复父作用域中的标识符解析问题。允许在 WITH 子句中为表达式使用别名。修复 [#58994](https://github.com/ClickHouse/ClickHouse/issues/58994)。修复 [#62946](https://github.com/ClickHouse/ClickHouse/issues/62946)。修复 [#63239](https://github.com/ClickHouse/ClickHouse/issues/63239)。修复 [#65233](https://github.com/ClickHouse/ClickHouse/issues/65233)。修复 [#71659](https://github.com/ClickHouse/ClickHouse/issues/71659)。修复 [#71828](https://github.com/ClickHouse/ClickHouse/issues/71828)。修复 [#68749](https://github.com/ClickHouse/ClickHouse/issues/68749)。[#66143](https://github.com/ClickHouse/ClickHouse/pull/66143)([Dmitry Novik](https://github.com/novikd))。 +* 修复 `negate` 函数的单调性问题。在之前的版本中,当 `x` 为主键时,查询 `select * from a where -x = -42;` 可能会返回错误结果。[#71440](https://github.com/ClickHouse/ClickHouse/pull/71440) ([Michael Kolupaev](https://github.com/al13n321)). +* 修复了 `arrayIntersect` 中对空元组的处理。这解决了 [#72578](https://github.com/ClickHouse/ClickHouse/issues/72578)。[#72581](https://github.com/ClickHouse/ClickHouse/pull/72581)([Amos Bird](https://github.com/amosbird))。 +* 修复读取带有错误前缀的 JSON 子对象子列时的问题。 [#73182](https://github.com/ClickHouse/ClickHouse/pull/73182) ([Pavel Kruglov](https://github.com/Avogar)). +* 在客户端与服务器之间通信时,正确传递 Native 格式的设置。 [#73924](https://github.com/ClickHouse/ClickHouse/pull/73924) ([Pavel Kruglov](https://github.com/Avogar)). +* 对某些存储增加对不支持类型的检查。[#74218](https://github.com/ClickHouse/ClickHouse/pull/74218) ([Pavel Kruglov](https://github.com/Avogar))。 +* 修复在 macOS 上通过 PostgreSQL 接口执行 `INSERT INTO SELECT` 查询时导致的崩溃(issue [#72938](https://github.com/ClickHouse/ClickHouse/issues/72938))。[#74231](https://github.com/ClickHouse/ClickHouse/pull/74231)([Artem Yurov](https://github.com/ArtemYurov))。 +* 修复了复制数据库中未初始化的 max_log_ptr。 [#74336](https://github.com/ClickHouse/ClickHouse/pull/74336) ([Konstantin Morozov](https://github.com/k-morozov)). +* 修复在插入 interval 时发生的崩溃(issue [#74299](https://github.com/ClickHouse/ClickHouse/issues/74299))。[#74478](https://github.com/ClickHouse/ClickHouse/pull/74478)([NamHoaiNguyen](https://github.com/NamHoaiNguyen))。 +* 修复格式化常量 JSON 字面量时的问题。此前在将查询发送到另一台服务器时,可能导致语法错误。[#74533](https://github.com/ClickHouse/ClickHouse/pull/74533) ([Pavel Kruglov](https://github.com/Avogar))。 +* 修复在启用隐式 PROJECTION 且使用常量分区表达式时生成错误 `CREATE` 查询的问题。修复了 [#74596](https://github.com/ClickHouse/ClickHouse/issues/74596)。 [#74634](https://github.com/ClickHouse/ClickHouse/pull/74634) ([Amos Bird](https://github.com/amosbird))。 +* 避免在 `INSERT` 因异常结束后让连接处于异常状态。 [#74740](https://github.com/ClickHouse/ClickHouse/pull/74740) ([Azat Khuzhin](https://github.com/azat)). +* 避免重用处于中间状态的遗留连接。[#74749](https://github.com/ClickHouse/ClickHouse/pull/74749)([Azat Khuzhin](https://github.com/azat))。 +* 修复在解析 JSON 类型声明时,当类型名称不是大写时发生的崩溃。 [#74784](https://github.com/ClickHouse/ClickHouse/pull/74784) ([Pavel Kruglov](https://github.com/Avogar)). +* Keeper:修复当连接在建立之前就已被终止时触发的 logical_error。 [#74844](https://github.com/ClickHouse/ClickHouse/pull/74844) ([Michael Kolupaev](https://github.com/al13n321)). +* 修复了在存在使用 `AzureBlobStorage` 的表时服务器无法启动的问题。现在会在不向 Azure 发送任何请求的情况下加载这些表。[#74880](https://github.com/ClickHouse/ClickHouse/pull/74880) ([Alexey Katsman](https://github.com/alexkats))。 +* 修复 BACKUP 和 RESTORE 操作的 `query_log` 中缺少 `used_privileges` 和 `missing_privileges` 字段的问题。 [#74887](https://github.com/ClickHouse/ClickHouse/pull/74887) ([Alexey Katsman](https://github.com/alexkats)). +* 如果在执行 HDFS select 请求时出现 SASL 错误,则刷新 HDFS Kerberos 票据。 [#74930](https://github.com/ClickHouse/ClickHouse/pull/74930) ([inv2004](https://github.com/inv2004)). +* 修复 `startup_scripts` 中针对 Replicated 数据库的查询。[#74942](https://github.com/ClickHouse/ClickHouse/pull/74942) ([Azat Khuzhin](https://github.com/azat)). +* 修复在 `JOIN ON` 子句中,对表达式使用类型别名并进行空安全比较时产生的问题。 [#74970](https://github.com/ClickHouse/ClickHouse/pull/74970) ([Vladimir Cherkasov](https://github.com/vdimir)). +* 当 `remove` 操作失败时,将 part 的状态从 `deleting` 恢复为 `outdated`。[#74985](https://github.com/ClickHouse/ClickHouse/pull/74985)([Sema Checherinda](https://github.com/CheSema))。 +* 在先前版本中,当存在标量子查询时,我们会在数据格式初始化期间开始写入进度信息(从处理该子查询中累积的进度),而这一步发生在写入 HTTP 头部之前。这样会导致 HTTP 头部丢失,例如 X-ClickHouse-QueryId 和 X-ClickHouse-Format,以及 Content-Type。 [#74991](https://github.com/ClickHouse/ClickHouse/pull/74991) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 修复在 `database_replicated_allow_replicated_engine_arguments=0` 时对 `CREATE TABLE AS...` 查询的处理。[#75000](https://github.com/ClickHouse/ClickHouse/pull/75000) ([Bharat Nallan](https://github.com/bharatnc)). +* 修复在发生 INSERT 异常后导致客户端连接处于错误状态的问题。 [#75030](https://github.com/ClickHouse/ClickHouse/pull/75030) ([Azat Khuzhin](https://github.com/azat)). +* 修复由于 PSQL 复制过程中未捕获的异常导致的崩溃问题。[#75062](https://github.com/ClickHouse/ClickHouse/pull/75062) ([Azat Khuzhin](https://github.com/azat)). +* SASL 可能会导致任意 RPC 调用失败,此修复可以在 krb5 票据过期时重试该调用。 [#75063](https://github.com/ClickHouse/ClickHouse/pull/75063) ([inv2004](https://github.com/inv2004)). +* 在启用了 `optimize_function_to_subcolumns` 设置的情况下,修复了对 `Array`、`Map` 和 `Nullable(..)` 列使用索引(主索引和二级索引)时的行为。此前,这些列的索引可能会被忽略。[#75081](https://github.com/ClickHouse/ClickHouse/pull/75081)([Anton Popov](https://github.com/CurtizJ))。 +* 在为具有内部表的 materialized view 创建时禁用 `flatten_nested`,因为将无法使用此类展平后的列。[#75085](https://github.com/ClickHouse/ClickHouse/pull/75085)([Christoph Wurm](https://github.com/cwurm))。 +* 修复了在 `forwarded_for` 字段中错误解析某些 IPv6 地址(例如 ::ffff:1.1.1.1)的问题,该问题会导致客户端抛出异常并断开连接。[#75133](https://github.com/ClickHouse/ClickHouse/pull/75133) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* 修复了针对 LowCardinality Nullable 数据类型的空值安全(null-safe)JOIN 处理。此前,在 JOIN ON 中使用空值安全比较(例如 `IS NOT DISTINCT FROM`、`<=>`、`a IS NULL AND b IS NULL OR a == b`)时,对 LowCardinality 列的处理不正确。[#75143](https://github.com/ClickHouse/ClickHouse/pull/75143) ([Vladimir Cherkasov](https://github.com/vdimir))。 +* 检查在为 NumRowsCache 统计 total_number_of_rows 时不指定 key_condition。[#75164](https://github.com/ClickHouse/ClickHouse/pull/75164) ([Daniil Ivanik](https://github.com/divanik)). +* 使用新的分析器修复包含未使用插值的查询。[#75173](https://github.com/ClickHouse/ClickHouse/pull/75173)([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 +* 修复了在使用 CTE 配合 INSERT 时导致崩溃的问题。 [#75188](https://github.com/ClickHouse/ClickHouse/pull/75188) ([Shichao Jin](https://github.com/jsc0218)). +* Keeper 修复:在回滚日志时避免向损坏的变更日志写入数据。 [#75197](https://github.com/ClickHouse/ClickHouse/pull/75197) ([Antonio Andelic](https://github.com/antonio2368)). +* 在合适的场景下将 `BFloat16` 用作超类型。修复:[#74404](https://github.com/ClickHouse/ClickHouse/issues/74404)。[#75236](https://github.com/ClickHouse/ClickHouse/pull/75236)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* 修复在使用 any_join_distinct_right_table_keys 且在 JOIN ON 中包含 OR 时,连接结果中出现的意外的默认值问题。 [#75262](https://github.com/ClickHouse/ClickHouse/pull/75262) ([Vladimir Cherkasov](https://github.com/vdimir)). +* 对 azureblobstorage 表引擎的凭据进行脱敏处理。 [#75319](https://github.com/ClickHouse/ClickHouse/pull/75319) ([Garrett Thomas](https://github.com/garrettthomaskth)). +* 修复了 ClickHouse 在某些情况下可能会错误地将过滤条件下推到 PostgreSQL、MySQL 或 SQLite 等外部数据库的问题。修复关联 issue:[#71423](https://github.com/ClickHouse/ClickHouse/issues/71423)。[#75320](https://github.com/ClickHouse/ClickHouse/pull/75320)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 +* 修复了在以 Protobuf 格式输出的同时并行执行查询 `SYSTEM DROP FORMAT SCHEMA CACHE` 时,可能发生的 Protobuf schema 缓存崩溃问题。 [#75357](https://github.com/ClickHouse/ClickHouse/pull/75357) ([Pavel Kruglov](https://github.com/Avogar)). +* 修复了在使用并行副本时,将 `HAVING` 子句中的过滤条件下推可能导致的逻辑错误或未初始化内存问题。 [#75363](https://github.com/ClickHouse/ClickHouse/pull/75363) ([Vladimir Cherkasov](https://github.com/vdimir)). +* 对 `icebergS3`、`icebergAzure` 表函数和表引擎中的敏感信息进行隐藏处理。[#75378](https://github.com/ClickHouse/ClickHouse/pull/75378) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 现在可以正确处理修剪字符通过计算得到且结果为空的函数 `TRIM`。示例:`SELECT TRIM(LEADING concat('') FROM 'foo')`(Issue [#69922](https://github.com/ClickHouse/ClickHouse/issues/69922))。[#75399](https://github.com/ClickHouse/ClickHouse/pull/75399)([Manish Gill](https://github.com/mgill25))。 +* 修复 `IOutputFormat` 中的数据竞争。 [#75448](https://github.com/ClickHouse/ClickHouse/pull/75448) ([Pavel Kruglov](https://github.com/Avogar))。 +* 修复在分布式表上的 JOIN 中使用 Array 类型的 JSON 子列时,可能出现的错误 `Elements ... and ... of Nested data structure ... (Array columns) have different array sizes`。 [#75512](https://github.com/ClickHouse/ClickHouse/pull/75512) ([Pavel Kruglov](https://github.com/Avogar))。 +* 修复在使用 `CODEC(ZSTD, DoubleDelta)` 时可能出现的数据损坏问题。关闭 [#70031](https://github.com/ClickHouse/ClickHouse/issues/70031)。[#75548](https://github.com/ClickHouse/ClickHouse/pull/75548)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 修复 `allow_feature_tier` 与 MergeTree 的兼容性 SETTING 之间的交互问题。 [#75635](https://github.com/ClickHouse/ClickHouse/pull/75635) ([Raúl Marín](https://github.com/Algunenano)). +* 修复当文件被重试处理时,`system.s3queue_log` 中 `processed_rows` 值不正确的问题。 [#75666](https://github.com/ClickHouse/ClickHouse/pull/75666) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 当 materialized view 向 URL 引擎写入且存在连接问题时,会遵循 `materialized_views_ignore_errors` 设置。 [#75679](https://github.com/ClickHouse/ClickHouse/pull/75679) ([Christoph Wurm](https://github.com/cwurm))。 +* 修复了在执行多个异步 `RENAME` 查询(`alter_sync = 0`),在不同类型的列之间进行重命名后,从 `MergeTree` 表读取数据时可能发生的罕见崩溃问题。[#75693](https://github.com/ClickHouse/ClickHouse/pull/75693)([Anton Popov](https://github.com/CurtizJ))。 +* 修复部分使用 `UNION ALL` 的查询会出现 `Block structure mismatch in QueryPipeline stream` 错误的问题。[#75715](https://github.com/ClickHouse/ClickHouse/pull/75715)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 在对其主键列执行 ALTER MODIFY 时重建投影。之前,在对用于投影主键的列执行 ALTER MODIFY 后进行查询时,可能会导致 `CANNOT_READ_ALL_DATA` 错误。 [#75720](https://github.com/ClickHouse/ClickHouse/pull/75720) ([Pavel Kruglov](https://github.com/Avogar)). +* 修复在使用 analyzer 的情况下,标量子查询中 `ARRAY JOIN` 结果不正确的问题。 [#75732](https://github.com/ClickHouse/ClickHouse/pull/75732) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* 修复 `DistinctSortedStreamTransform` 中的空指针解引用。[#75734](https://github.com/ClickHouse/ClickHouse/pull/75734)([Nikita Taranov](https://github.com/nickitat))。 +* 修复 `allow_suspicious_ttl_expressions` 设置的行为。[#75771](https://github.com/ClickHouse/ClickHouse/pull/75771) ([Aleksei Filatov](https://github.com/aalexfvk))。 +* 修复函数 `translate` 中未初始化内存读取的问题,从而关闭 [#75592](https://github.com/ClickHouse/ClickHouse/issues/75592)。[#75794](https://github.com/ClickHouse/ClickHouse/pull/75794)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 在 Native 格式中,将格式设置作为字符串格式化选项传递给 JSON 输出。[#75832](https://github.com/ClickHouse/ClickHouse/pull/75832) ([Pavel Kruglov](https://github.com/Avogar))。 +* 在设置变更历史中记录了:从 v24.12 起,默认启用并行哈希 `JOIN` 算法。这意味着,如果配置的兼容性级别早于 v24.12,ClickHouse 将继续使用非并行哈希进行 `JOIN`。[#75870](https://github.com/ClickHouse/ClickHouse/pull/75870)([Robert Schulze](https://github.com/rschu1ze))。 +* 修复了一个问题:带有隐式添加的 min-max 索引的表无法复制到新表中(问题 [#75677](https://github.com/ClickHouse/ClickHouse/issues/75677))。[#75877](https://github.com/ClickHouse/ClickHouse/pull/75877)([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 +* `clickhouse-library-bridge` 允许从文件系统中加载任意库,因此只有在隔离环境中运行才是安全的。为防止其在与 clickhouse-server 同一环境中运行时产生漏洞,我们将把可加载库的路径限制在配置中指定的位置。此漏洞由 **Arseniy Dugin** 通过 [ClickHouse Bug Bounty Program](https://github.com/ClickHouse/ClickHouse/issues/38986) 发现。[#75954](https://github.com/ClickHouse/ClickHouse/pull/75954)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 我们之前对某些元数据使用了 JSON 序列化,这是一个错误,因为 JSON 不支持在字符串字面量中包含二进制数据(包括零字节)。SQL 查询可以包含二进制数据和无效的 UTF-8,因此我们的元数据文件也必须支持这一点。与此同时,ClickHouse 的 `JSONEachRow` 以及类似格式通过偏离 JSON 标准来实现对二进制数据的无损往返。相关动机说明参见:[https://github.com/ClickHouse/ClickHouse/pull/73668#issuecomment-2560501790](https://github.com/ClickHouse/ClickHouse/pull/73668#issuecomment-2560501790)。解决方案是让 `Poco::JSON` 库与 ClickHouse 中的 JSON 格式序列化方式保持一致。此变更关闭了 [#73668](https://github.com/ClickHouse/ClickHouse/issues/73668)。[#75963](https://github.com/ClickHouse/ClickHouse/pull/75963)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 修复存储 `S3Queue` 中提交上限检查。 [#76104](https://github.com/ClickHouse/ClickHouse/pull/76104) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 修复在附加具有自动索引的 MergeTree 表时的问题(`add_minmax_index_for_numeric_columns`/`add_minmax_index_for_string_columns`)。[#76139](https://github.com/ClickHouse/ClickHouse/pull/76139)([Azat Khuzhin](https://github.com/azat))。 +* 修复了作业父线程的堆栈跟踪(`enable_job_stack_trace` 设置)未被打印的问题。修复了 `enable_job_stack_trace` 设置未正确传播到线程,导致生成的堆栈跟踪内容不总是遵从该设置的问题。[#76191](https://github.com/ClickHouse/ClickHouse/pull/76191) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* 修复了错误的权限检查问题,其中 `ALTER RENAME` 被错误地要求具有 `CREATE USER` 权限。关闭 [#74372](https://github.com/ClickHouse/ClickHouse/issues/74372)。[#76241](https://github.com/ClickHouse/ClickHouse/pull/76241)([pufit](https://github.com/pufit))。 +* 修复在大端架构上将 FixedString 与 reinterpretAs 一起使用时的问题。 [#76253](https://github.com/ClickHouse/ClickHouse/pull/76253) ([Azat Khuzhin](https://github.com/azat)). +* 修复 S3Queue 中的逻辑错误:“Expected current processor {} to be equal to {} for bucket {}”。 [#76358](https://github.com/ClickHouse/ClickHouse/pull/76358)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 修复在 Memory 数据库上执行 ALTER 时出现的死锁问题。 [#76359](https://github.com/ClickHouse/ClickHouse/pull/76359) ([Azat Khuzhin](https://github.com/azat)). +* 修复在 `WHERE` 条件中使用 `pointInPolygon` 函数时的索引分析逻辑错误。 [#76360](https://github.com/ClickHouse/ClickHouse/pull/76360) ([Anton Popov](https://github.com/CurtizJ)). +* 修复信号处理程序中可能不安全的函数调用。[#76549](https://github.com/ClickHouse/ClickHouse/pull/76549)([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 +* 修复了 `PartsSplitter` 中对反向键的支持。这一改动修复了 [#73400](https://github.com/ClickHouse/ClickHouse/issues/73400)。[#73418](https://github.com/ClickHouse/ClickHouse/pull/73418)([Amos Bird](https://github.com/amosbird))。 + +#### 构建/测试/打包改进 {#buildtestingpackaging-improvement} + +* 支持在 ARM 和 Intel Mac 上构建 HDFS。 [#74244](https://github.com/ClickHouse/ClickHouse/pull/74244) ([Yan Xin](https://github.com/yxheartipp)). +* 在为 Darwin 进行交叉编译时启用 ICU 和 gRPC。 [#75922](https://github.com/ClickHouse/ClickHouse/pull/75922) ([Raúl Marín](https://github.com/Algunenano)). +* 更新到内嵌的 LLVM 19。 [#75148](https://github.com/ClickHouse/ClickHouse/pull/75148) ([Konstantin Bogdanov](https://github.com/thevar1able)). +* 在 Docker 镜像中为默认用户禁用网络访问。 [#75259](https://github.com/ClickHouse/ClickHouse/pull/75259) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). 将所有与 clickhouse-server 相关的操作封装为一个函数,并仅在 `entrypoint.sh` 中启动默认可执行文件时执行。一个被长期推迟的改进此前在 [#50724](https://github.com/ClickHouse/ClickHouse/issues/50724) 中被提出。为 `clickhouse-extract-from-config` 添加了 `--users` 开关,用于从 `users.xml` 中获取值。 [#75643](https://github.com/ClickHouse/ClickHouse/pull/75643) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* 从二进制文件中移除约 20MB 的死代码。 [#76226](https://github.com/ClickHouse/ClickHouse/pull/76226) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + +### ClickHouse 25.1 发行版,2025-01-28 {#251} + +#### 向后不兼容的变更 {#backward-incompatible-change} + +* `JSONEachRowWithProgress` 现在会在每当进度更新时写出进度信息。在之前的版本中,进度只会在每个结果块之后显示,这使其基本无用。已更改进度展示方式:不会再显示为零的进度值。此变更关闭了 [#70800](https://github.com/ClickHouse/ClickHouse/issues/70800)。[#73834](https://github.com/ClickHouse/ClickHouse/pull/73834)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `Merge` 表现在会通过使用其所有列的并集并推导出公共类型来统一底层表的结构。此变更关闭了 [#64864](https://github.com/ClickHouse/ClickHouse/issues/64864)。在某些情况下,此变更可能向后不兼容。一个示例是各表之间不存在公共类型,但仍然可以转换为第一个表的类型,例如 UInt64 和 Int64,或任意数值类型与 String。若要恢复旧行为,将 `merge_table_max_tables_to_look_for_schema_inference` 设为 `1`,或将 `compatibility` 设为 `24.12` 或更早版本。[#73956](https://github.com/ClickHouse/ClickHouse/pull/73956)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* Parquet 输出格式会将 Date 和 DateTime 列转换为 Parquet 支持的日期/时间类型,而不是写为原始数字。`DateTime` 现在变为 `DateTime64(3)`(之前为:`UInt32`);通过设置 `output_format_parquet_datetime_as_uint32` 可以恢复旧行为。`Date` 现在变为 `Date32`(之前为:`UInt16`)。[#70950](https://github.com/ClickHouse/ClickHouse/pull/70950)([Michael Kolupaev](https://github.com/al13n321))。 +* 默认情况下,不再允许在 `ORDER BY` 和比较函数 `less/greater/equal/etc` 中使用不可比较的类型(例如 `JSON`/`Object`/`AggregateFunction`)。[#73276](https://github.com/ClickHouse/ClickHouse/pull/73276)([Pavel Kruglov](https://github.com/Avogar))。 +* 过时的 `MaterializedMySQL` 数据库引擎已被移除,且不再可用。[#73879](https://github.com/ClickHouse/ClickHouse/pull/73879)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `mysql` 字典源不再执行 `SHOW TABLE STATUS` 查询,因为对于 InnoDB 表以及任何较新的 MySQL 版本,该查询不再提供任何有价值的信息。此变更关闭了 [#72636](https://github.com/ClickHouse/ClickHouse/issues/72636)。该变更是向后兼容的,但仍归入本节,以便你能注意到它。[#73914](https://github.com/ClickHouse/ClickHouse/pull/73914)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 现在 `CHECK TABLE` 查询需要单独的 `CHECK` 权限。在之前的版本中,拥有 `SHOW TABLES` 权限就足以执行这些查询。但 `CHECK TABLE` 查询可能非常重,而常规 `SELECT` 查询的复杂度限制并不适用于它,这带来了潜在的拒绝服务攻击(DoS)风险。[#74471](https://github.com/ClickHouse/ClickHouse/pull/74471)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 函数 `h3ToGeo()` 现在按 `(lat, lon)` 的顺序返回结果(这是几何函数的标准顺序)。希望保留旧有结果顺序 `(lon, lat)` 的用户可以将设置 `h3togeo_lon_lat_result_order` 设为 `true`。[#74719](https://github.com/ClickHouse/ClickHouse/pull/74719)([Manish Gill](https://github.com/mgill25))。 +* 新的 MongoDB 驱动现在是默认驱动。希望继续使用旧驱动的用户可以将服务器端设置 `use_legacy_mongodb_integration` 设为 `true`。[#73359](https://github.com/ClickHouse/ClickHouse/pull/73359)([Robert Schulze](https://github.com/rschu1ze))。 + +#### 新功能 {#new-feature} + +* 新增支持在提交 `SELECT` 查询后,在其执行期间即时应用未完成的(尚未由后台进程物化的)mutation。可通过设置 `apply_mutations_on_fly` 来启用此功能。 [#74877](https://github.com/ClickHouse/ClickHouse/pull/74877) ([Anton Popov](https://github.com/CurtizJ)). +* 为 Iceberg 中与时间相关的 transform 分区操作实现 `Iceberg` 表分区裁剪功能。[#72044](https://github.com/ClickHouse/ClickHouse/pull/72044) ([Daniil Ivanik](https://github.com/divanik)). +* 在 MergeTree 的排序键和跳过索引中支持子列。 [#72644](https://github.com/ClickHouse/ClickHouse/pull/72644) ([Pavel Kruglov](https://github.com/Avogar)). +* 支持从 `Apache Arrow`/`Parquet`/`ORC` 中读取 `HALF_FLOAT` 值(会被读取为 `Float32` 类型)。修复了 [#72960](https://github.com/ClickHouse/ClickHouse/issues/72960)。请注意,IEEE-754 半精度浮点数(half float)与 `BFloat16` 并不相同。修复了 [#73835](https://github.com/ClickHouse/ClickHouse/issues/73835)。[#73836](https://github.com/ClickHouse/ClickHouse/pull/73836)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `system.trace_log` 表将包含两个新列 `symbols` 和 `lines`,用于存储符号化后的堆栈跟踪信息。这样便于收集和导出性能分析信息。该行为由 `trace_log` 中名为 `symbolize` 的服务器配置项控制,默认启用。[#73896](https://github.com/ClickHouse/ClickHouse/pull/73896) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 添加了一个新函数 `generateSerialID`,可用于在表中生成自增数字。延续了 [kazalika](https://github.com/kazalika) 在 [#64310](https://github.com/ClickHouse/ClickHouse/issues/64310) 中的工作。此更改关闭了 [#62485](https://github.com/ClickHouse/ClickHouse/issues/62485)。[#73950](https://github.com/ClickHouse/ClickHouse/pull/73950)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 为 DDL 查询新增语法 `query1 PARALLEL WITH query2 PARALLEL WITH query3 ... PARALLEL WITH queryN`。这意味着子查询 `{query1, query2, ... queryN}` 可以彼此并行运行(并且这是推荐的用法)。 [#73983](https://github.com/ClickHouse/ClickHouse/pull/73983) ([Vitaly Baranov](https://github.com/vitlibar)). +* 为反序列化的 skipping 索引粒度添加了内存缓存。这应当能加速重复使用 skipping 索引的查询。新缓存的大小由服务器端设置 `skipping_index_cache_size` 和 `skipping_index_cache_max_entries` 控制。引入该缓存的初衷是加速向量相似度索引,它们现在已经快了很多。[#70102](https://github.com/ClickHouse/ClickHouse/pull/70102) ([Robert Schulze](https://github.com/rschu1ze))。 +* 现在,嵌入式 Web UI 在查询执行期间显示进度条,并支持取消查询。它会显示行的总数以及更详细的执行速度信息。数据一到达,表格就可以逐步渲染。启用 HTTP 压缩后,表格渲染速度变得更快。表头现在会固定在顶部。现在支持选择单元格,并可通过方向键在单元格间导航。修复了选中单元格的轮廓导致其变小的问题。单元格不再在鼠标悬停时展开,而仅在选中时展开。停止渲染传入数据的时机现在由客户端而不是服务器端决定。对数字的分组位进行高亮显示。整体设计经过焕新,变得更加醒目。它会检查服务器是否可达以及凭据是否正确,并显示服务器版本和运行时长。云图标在所有字体下都以描边样式显示,即使在 Safari 中也是如此。嵌套数据类型中的大整数将会有更好的显示效果。现在可以正确显示 inf/nan。鼠标悬停在列标题上时,它会显示数据类型。[#74204](https://github.com/ClickHouse/ClickHouse/pull/74204) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 新增支持通过设置项 `add_minmax_index_for_numeric_columns`(用于数值列)和 `add_minmax_index_for_string_columns`(用于字符串列),为由 MergeTree 管理的列默认创建 min-max(跳过)索引。当前这两个设置项均为禁用状态,因此暂时不会产生行为变更。 [#74266](https://github.com/ClickHouse/ClickHouse/pull/74266) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). +* 将 `script_query_number` 和 `script_line_number` 字段添加到 `system.query_log`、原生协议中的 ClientInfo 以及服务器日志中。此更改解决了 [#67542](https://github.com/ClickHouse/ClickHouse/issues/67542)。感谢 [pinsvin00](https://github.com/pinsvin00) 早先在 [#68133](https://github.com/ClickHouse/ClickHouse/issues/68133) 中提出并推动这一特性。[#74477](https://github.com/ClickHouse/ClickHouse/pull/74477)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 新增聚合函数 `sequenceMatchEvents`,用于返回模式中最长事件链上匹配事件的时间戳。 [#72349](https://github.com/ClickHouse/ClickHouse/pull/72349) ([UnamedRus](https://github.com/UnamedRus))。 +* 新增了函数 `arrayNormalizedGini`。[#72823](https://github.com/ClickHouse/ClickHouse/pull/72823) ([flynn](https://github.com/ucasfl))。 +* 为 `DateTime64` 增加对减号运算符的支持,允许在 `DateTime64` 值之间以及与 `DateTime` 之间进行相减。 [#74482](https://github.com/ClickHouse/ClickHouse/pull/74482) ([Li Yin](https://github.com/liyinsg)). + +#### 实验性特性 {#experimental-features} + +* `BFloat16` 数据类型已达生产可用状态。 [#73840](https://github.com/ClickHouse/ClickHouse/pull/73840) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + +#### 性能优化 {#performance-improvement} + +* 已优化函数 `indexHint`。现在,只在函数 `indexHint` 中作为参数使用的列将不会从表中读取。[#74314](https://github.com/ClickHouse/ClickHouse/pull/74314) ([Anton Popov](https://github.com/CurtizJ))。如果 `indexHint` 函数是您企业数据架构中的核心组件,那么这一优化简直是救命级别的。 +* 对 `parallel_hash` JOIN 算法中 `max_joined_block_size_rows` 设置的统计更加精确,有助于避免相比 `hash` 算法出现更高的内存消耗。[#74630](https://github.com/ClickHouse/ClickHouse/pull/74630) ([Nikita Taranov](https://github.com/nickitat))。 +* 在查询计划层面支持对 `MergingAggregated` 步骤进行谓词下推优化。该优化可以提升使用 analyzer 的某些查询的性能。[#74073](https://github.com/ClickHouse/ClickHouse/pull/74073) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* `parallel_hash` JOIN 算法探测阶段中对左表数据块按哈希拆分的步骤已被移除。[#73089](https://github.com/ClickHouse/ClickHouse/pull/73089) ([Nikita Taranov](https://github.com/nickitat))。 +* 优化 RowBinary 输入格式,解决了 [#63805](https://github.com/ClickHouse/ClickHouse/issues/63805) 问题。[#65059](https://github.com/ClickHouse/ClickHouse/pull/65059)([Pavel Kruglov](https://github.com/Avogar))。 +* 如果启用了 `optimize_on_insert`,则将分区片段写为 level 1。这样可以对新写入的分区片段使用带有 `FINAL` 的查询进行多种优化。[#73132](https://github.com/ClickHouse/ClickHouse/pull/73132) ([Anton Popov](https://github.com/CurtizJ))。 +* 通过一些底层优化提升字符串反序列化性能。[#65948](https://github.com/ClickHouse/ClickHouse/pull/65948) ([Nikita Taranov](https://github.com/nickitat))。 +* 在对记录进行相等比较时(例如在合并过程中),会优先从最有可能不相等的列开始比较各行数据。 [#63780](https://github.com/ClickHouse/ClickHouse/pull/63780) ([UnamedRus](https://github.com/UnamedRus)). +* 通过根据键对右侧连接表重新排序,提升 Grace 哈希连接的性能。[#72237](https://github.com/ClickHouse/ClickHouse/pull/72237) ([kevinyhzou](https://github.com/KevinyhZou)). +* 允许 `arrayROCAUC` 和 `arrayAUCPR` 计算整条曲线的局部面积,从而可以在海量数据集上并行化其计算。[#72904](https://github.com/ClickHouse/ClickHouse/pull/72904) ([Emmanuel](https://github.com/emmanuelsdias))。 +* 避免创建过多空闲线程。 [#72920](https://github.com/ClickHouse/ClickHouse/pull/72920) ([Guo Wangyang](https://github.com/guowangy)). +* 当表函数中仅有花括号展开时,不再枚举 Blob 存储键。修复了 [#73333](https://github.com/ClickHouse/ClickHouse/issues/73333)。[#73518](https://github.com/ClickHouse/ClickHouse/pull/73518)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 为在 Nullable 参数上执行的函数添加了短路优化。 [#73820](https://github.com/ClickHouse/ClickHouse/pull/73820) ([李扬](https://github.com/taiyang-li)). +* 不要对非函数列使用 `maskedExecute`,以提升短路执行的性能。 [#73965](https://github.com/ClickHouse/ClickHouse/pull/73965) ([lgbo](https://github.com/lgbo-ustc)). +* 禁用在 `Kafka`/`NATS`/`RabbitMQ`/`FileLog` 输入格式中对消息头的自动检测功能,以提升性能。 [#74006](https://github.com/ClickHouse/ClickHouse/pull/74006) ([Azat Khuzhin](https://github.com/azat))。 +* 在使用 GROUPING SETS 的聚合之后,以更高的并行度执行 pipeline。 [#74082](https://github.com/ClickHouse/ClickHouse/pull/74082) ([Nikita Taranov](https://github.com/nickitat))。 +* 缩小 `MergeTreeReadPool` 中的临界区范围。[#74202](https://github.com/ClickHouse/ClickHouse/pull/74202) ([Guo Wangyang](https://github.com/guowangy))。 +* 并行副本性能改进。对于与并行副本协议无关的数据包,现在其在查询发起方的反序列化始终在 pipeline 线程中进行。此前,它可能在负责 pipeline 调度的线程中执行,这会降低发起方的响应能力并延迟 pipeline 的执行。 [#74398](https://github.com/ClickHouse/ClickHouse/pull/74398) ([Igor Nikonov](https://github.com/devcrafter)). +* 提升 Keeper 中大规模多请求操作的性能。[#74849](https://github.com/ClickHouse/ClickHouse/pull/74849) ([Antonio Andelic](https://github.com/antonio2368)). +* 按值使用日志包装器,不要将其分配在堆上。[#74034](https://github.com/ClickHouse/ClickHouse/pull/74034)([Mikhail Artemenko](https://github.com/Michicosun))。 +* 在后台重新建立与 MySQL 和 Postgres 字典副本的连接,以免延迟对相应字典的请求。[#71101](https://github.com/ClickHouse/ClickHouse/pull/71101) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* 并行副本会利用关于副本可用性的历史信息来改进副本选择,但在连接不可用时不会更新该副本的错误计数。此 PR 现在会在副本不可用时更新该副本的错误计数。 [#72666](https://github.com/ClickHouse/ClickHouse/pull/72666) ([zoomxi](https://github.com/zoomxi)). +* 添加了一个 MergeTree 的设置项 `materialize_skip_indexes_on_merge`,用于在合并过程中抑制创建跳过索引。这样您可以通过 `ALTER TABLE [..] MATERIALIZE INDEX [...]` 明确控制何时创建跳过索引。如果跳过索引的构建成本较高(例如向量相似度索引),这将非常有用。[#74401](https://github.com/ClickHouse/ClickHouse/pull/74401)([Robert Schulze](https://github.com/rschu1ze))。 +* 优化 Storage(S3/Azure)Queue 中的 keeper 请求。[#74410](https://github.com/ClickHouse/ClickHouse/pull/74410) ([Kseniia Sumarokova](https://github.com/kssenii)). [#74538](https://github.com/ClickHouse/ClickHouse/pull/74538) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 默认情况下最多使用 `1000` 个并行副本。[#74504](https://github.com/ClickHouse/ClickHouse/pull/74504)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 在从 S3 磁盘读取数据时提升 HTTP 会话复用效率([#72401](https://github.com/ClickHouse/ClickHouse/issues/72401))。[#74548](https://github.com/ClickHouse/ClickHouse/pull/74548)([Julian Maicher](https://github.com/jmaicher))。 + +#### 改进 {#improvement} + +* 在具有隐式 ENGINE 的 CREATE TABLE 查询中支持使用 SETTINGS,并且支持同时混用引擎设置和查询设置。[#73120](https://github.com/ClickHouse/ClickHouse/pull/73120) ([Raúl Marín](https://github.com/Algunenano))。 +* 默认情况下启用 `use_hive_partitioning`。 [#71636](https://github.com/ClickHouse/ClickHouse/pull/71636) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* 支持在具有不同参数的 JSON 类型之间进行 `CAST` 和 `ALTER` 操作。[#72303](https://github.com/ClickHouse/ClickHouse/pull/72303) ([Pavel Kruglov](https://github.com/Avogar))。 +* 支持对 JSON 列中的值进行等值比较。[#72991](https://github.com/ClickHouse/ClickHouse/pull/72991) ([Pavel Kruglov](https://github.com/Avogar)). +* 优化带有 JSON 子列的标识符格式,以避免不必要的反引号。 [#73085](https://github.com/ClickHouse/ClickHouse/pull/73085) ([Pavel Kruglov](https://github.com/Avogar)). +* 交互式指标改进。修复来自并行副本的指标未完全显示的问题。先按最近更新时间排序,再按名称的字典序显示指标。不显示陈旧指标。[#71631](https://github.com/ClickHouse/ClickHouse/pull/71631)([Julia Kartseva](https://github.com/jkartseva))。 +* 默认将 JSON 输出格式美化显示。新增 `output_format_json_pretty_print` 设置用于控制该行为,并默认启用。[#72148](https://github.com/ClickHouse/ClickHouse/pull/72148) ([Pavel Kruglov](https://github.com/Avogar))。 +* 默认允许使用 `LowCardinality(UUID)`。事实证明,这在 ClickHouse Cloud 客户中非常实用。[#73826](https://github.com/ClickHouse/ClickHouse/pull/73826) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 改进了安装过程中的提示信息。[#73827](https://github.com/ClickHouse/ClickHouse/pull/73827) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 改进了 ClickHouse Cloud 的密码重置提示信息。[#73831](https://github.com/ClickHouse/ClickHouse/pull/73831) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 改进了在 File 表无法向文件中追加数据时的错误信息。[#73832](https://github.com/ClickHouse/ClickHouse/pull/73832)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 当用户在终端中误将输出设置为二进制格式(例如 Native、Parquet、Avro)时,会弹出确认提示。关闭了 [#59524](https://github.com/ClickHouse/ClickHouse/issues/59524)。[#73833](https://github.com/ClickHouse/ClickHouse/pull/73833)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 在终端中以 Pretty 和 Vertical 格式显示时高亮行尾空白字符,以提高清晰度。可通过 `output_format_pretty_highlight_trailing_spaces` 设置进行控制。初始实现由 [Braden Burns](https://github.com/bradenburns) 在 [#72996](https://github.com/ClickHouse/ClickHouse/issues/72996) 中完成。关闭了 [#71590](https://github.com/ClickHouse/ClickHouse/issues/71590)。[#73847](https://github.com/ClickHouse/ClickHouse/pull/73847)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 当 `clickhouse-client` 和 `clickhouse-local` 的标准输入从文件重定向时,将自动检测输入的压缩格式。此更改解决了 [#70865](https://github.com/ClickHouse/ClickHouse/issues/70865)。[#73848](https://github.com/ClickHouse/ClickHouse/pull/73848)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 默认情况下,在 Pretty 输出格式中会截断过长的列名。该行为由 `output_format_pretty_max_column_name_width_cut_to` 和 `output_format_pretty_max_column_name_width_min_chars_to_cut` 这两个设置控制。这是对 [tanmaydatta](https://github.com/tanmaydatta) 在 [#66502](https://github.com/ClickHouse/ClickHouse/issues/66502) 中工作的延续。此更改关闭了 [#65968](https://github.com/ClickHouse/ClickHouse/issues/65968)。[#73851](https://github.com/ClickHouse/ClickHouse/pull/73851)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 让 `Pretty` 输出格式更美观:如果距离上一个数据块输出的时间不长,则合并数据块。通过新的设置 `output_format_pretty_squash_consecutive_ms`(默认 50 ms)和 `output_format_pretty_squash_max_wait_ms`(默认 1000 ms)进行控制。是对 [#49537](https://github.com/ClickHouse/ClickHouse/issues/49537) 的延续。本次变更关闭了 [#49153](https://github.com/ClickHouse/ClickHouse/issues/49153)。[#73852](https://github.com/ClickHouse/ClickHouse/pull/73852)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 新增一个用于统计当前正在合并的源分区片段数量的指标。此更改关闭了 [#70809](https://github.com/ClickHouse/ClickHouse/issues/70809)。[#73868](https://github.com/ClickHouse/ClickHouse/pull/73868) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 当输出到终端时,会在 `Vertical` 格式中高亮显示列。可以通过 `output_format_pretty_color` 设置来禁用此行为。 [#73898](https://github.com/ClickHouse/ClickHouse/pull/73898) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 将 MySQL 兼容性增强到足以使 `mysqlsh`(Oracle 提供的功能丰富的 MySQL CLI)现在可以连接到 ClickHouse,从而便于测试。[#73912](https://github.com/ClickHouse/ClickHouse/pull/73912)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* Pretty 格式现在可以在表格单元格中渲染多行字段,从而提升可读性。该功能默认启用,可通过设置项 `output_format_pretty_multiline_fields` 进行控制。延续了 [Volodyachan](https://github.com/Volodyachan) 在 [#64094](https://github.com/ClickHouse/ClickHouse/issues/64094) 中的工作。此更改关闭了 [#56912](https://github.com/ClickHouse/ClickHouse/issues/56912)。[#74032](https://github.com/ClickHouse/ClickHouse/pull/74032)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 在浏览器中将 X-ClickHouse HTTP 头部暴露给 JavaScript,从而使编写应用程序更加方便。[#74180](https://github.com/ClickHouse/ClickHouse/pull/74180) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* `JSONEachRowWithProgress` 格式现在将包含事件及其元数据,以及 totals 和 extremes。同时还包括 `rows_before_limit_at_least` 和 `rows_before_aggregation`。如果在部分结果之后才出现异常,该格式也能正确输出异常。进度信息现在包含已消耗的纳秒数。结束时会发出最后一个进度事件。查询运行期间的进度打印频率不会超过 `interactive_delay` 设置的值。[#74181](https://github.com/ClickHouse/ClickHouse/pull/74181) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* Play UI 中的沙漏将平滑旋转。 [#74182](https://github.com/ClickHouse/ClickHouse/pull/74182) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* 即使 HTTP 响应已被压缩,也要在数据包一到就立刻发送出去。这样浏览器就能接收进度数据包和压缩后的数据。[#74201](https://github.com/ClickHouse/ClickHouse/pull/74201) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 如果输出行数大于 N = `output_format_pretty_max_rows`,则不再只显示前 N 行,而是从中间截断输出表格,显示前 N/2 行和最后 N/2 行。这是对 [#64200](https://github.com/ClickHouse/ClickHouse/issues/64200) 的延续,修复了 [#59502](https://github.com/ClickHouse/ClickHouse/issues/59502)。[#73929](https://github.com/ClickHouse/ClickHouse/pull/73929)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 在启用 hash join 算法时,允许使用更通用的 JOIN 计划算法。[#71926](https://github.com/ClickHouse/ClickHouse/pull/71926)([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 +* 现在支持在数据类型为 `DateTime64` 的列上创建 bloom_filter 索引。 [#66416](https://github.com/ClickHouse/ClickHouse/pull/66416) ([Yutong Xiao](https://github.com/YutSean)). +* 当同时启用 `min_age_to_force_merge_seconds` 和 `min_age_to_force_merge_on_partition_only` 时,数据片段合并将忽略最大字节数限制。[#73656](https://github.com/ClickHouse/ClickHouse/pull/73656)([Kai Zhu](https://github.com/nauu))。 +* 向 OpenTelemetry span 日志表中添加了 HTTP 头部,以增强可追踪性。 [#70516](https://github.com/ClickHouse/ClickHouse/pull/70516) ([jonymohajanGmail](https://github.com/jonymohajanGmail)). +* 支持按自定义时区写入 `orc` 文件,而不再固定使用 `GMT` 时区。[#70615](https://github.com/ClickHouse/ClickHouse/pull/70615) ([kevinyhzou](https://github.com/KevinyhZou)). +* 在跨 Cloud 写入备份时遵守 I/O 调度设置。[#71093](https://github.com/ClickHouse/ClickHouse/pull/71093) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 +* 在 `system.asynchronous_metrics` 中为 `metric` 列新增别名 `name`。 [#71164](https://github.com/ClickHouse/ClickHouse/pull/71164) ([megao](https://github.com/jetgm)). +* 由于历史原因,`ALTER TABLE MOVE PARTITION TO TABLE` 查询检查的是 `SELECT` 和 `ALTER DELETE` 权限,而不是专门的 `ALTER_MOVE_PARTITION`。本 PR 改为使用该访问类型。为保持兼容性,如果已授予 `SELECT` 和 `ALTER DELETE`,也会隐式授予该权限,但这种行为将在未来版本中移除。修复了 [#16403](https://github.com/ClickHouse/ClickHouse/issues/16403)。[#71632](https://github.com/ClickHouse/ClickHouse/pull/71632)([pufit](https://github.com/pufit))。 +* 在尝试物化排序键中的列时抛出异常,以避免破坏排序顺序。[#71891](https://github.com/ClickHouse/ClickHouse/pull/71891) ([Peter Nguyen](https://github.com/petern48))。 +* 在 `EXPLAIN QUERY TREE` 中隐藏敏感信息。 [#72025](https://github.com/ClickHouse/ClickHouse/pull/72025) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* 在 "native" 读取器中支持 Parquet 整数逻辑类型。[#72105](https://github.com/ClickHouse/ClickHouse/pull/72105) ([Arthur Passos](https://github.com/arthurpassos))。 +* 如果默认用户配置了密码,则会在浏览器中以交互方式请求凭证。此前版本中,服务器会返回 HTTP 403;现在会返回 HTTP 401。[#72198](https://github.com/ClickHouse/ClickHouse/pull/72198)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 将访问类型 `CREATE_USER`、`ALTER_USER`、`DROP_USER`、`CREATE_ROLE`、`ALTER_ROLE`、`DROP_ROLE` 从全局改为参数化。这意味着你现在可以更精细地进行访问管理授权。[#72246](https://github.com/ClickHouse/ClickHouse/pull/72246) ([pufit](https://github.com/pufit))。 +* 将 `latest_fail_error_code_name` 列添加到 `system.mutations` 表中。我们需要此列来引入一个用于卡住的 mutation 的新指标,并使用它在 Cloud 中构建错误可视化图表,并且(可选)添加一个噪声更少的新告警。[#72398](https://github.com/ClickHouse/ClickHouse/pull/72398) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* 减少 `ATTACH PARTITION` 查询中的内存分配开销。[#72583](https://github.com/ClickHouse/ClickHouse/pull/72583) ([Konstantin Morozov](https://github.com/k-morozov)). +* 使 `max_bytes_before_external_sort` 的限制取决于查询的总内存消耗(之前它表示的是单个排序线程中用于排序块的字节数,现在它与 `max_bytes_before_external_group_by` 含义相同——即对所有线程的整个查询的总内存限制)。另外新增一个用于控制落盘块大小的设置——`min_external_sort_block_bytes`。 [#72598](https://github.com/ClickHouse/ClickHouse/pull/72598) ([Azat Khuzhin](https://github.com/azat)). +* 忽略由 trace collector 施加的内存限制。[#72606](https://github.com/ClickHouse/ClickHouse/pull/72606) ([Azat Khuzhin](https://github.com/azat))。 +* 将服务器设置项 `dictionaries_lazy_load` 和 `wait_dictionaries_load_at_startup` 添加到 `system.server_settings`。 [#72664](https://github.com/ClickHouse/ClickHouse/pull/72664) ([Christoph Wurm](https://github.com/cwurm)). +* 将设置 `max_backup_bandwidth` 添加到可在 `BACKUP`/`RESTORE` 查询中指定的设置列表中。[#72665](https://github.com/ClickHouse/ClickHouse/pull/72665) ([Christoph Wurm](https://github.com/cwurm))。 +* 降低在 ReplicatedMergeTree 引擎中针对出现的复制分区片段的日志级别,以减少在副本集群中生成的日志量。[#72876](https://github.com/ClickHouse/ClickHouse/pull/72876) ([mor-akamai](https://github.com/morkalfon))。 +* 改进对析取式中公共表达式的提取。即使所有析取项之间不存在共同子表达式,也允许对生成的过滤条件进行简化。是对 [#71537](https://github.com/ClickHouse/ClickHouse/issues/71537) 的延续。[#73271](https://github.com/ClickHouse/ClickHouse/pull/73271)([Dmitry Novik](https://github.com/novikd))。 +* 在 `S3Queue`/`AzureQueue` 存储中,现在允许为在创建时未指定设置的表补充添加设置。 [#73283](https://github.com/ClickHouse/ClickHouse/pull/73283) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 引入一个名为 `least_greatest_legacy_null_behavior` 的 setting(默认值为 `false`),用于控制函数 `least` 和 `greatest` 在处理 `NULL` 参数时,是无条件返回 `NULL`(当为 `true` 时),还是忽略这些参数(当为 `false` 时)。 [#73344](https://github.com/ClickHouse/ClickHouse/pull/73344) ([Robert Schulze](https://github.com/rschu1ze))。 +* 在 ObjectStorageQueueMetadata 的清理线程中使用 Keeper 的多请求操作。 [#73357](https://github.com/ClickHouse/ClickHouse/pull/73357) ([Antonio Andelic](https://github.com/antonio2368)). +* 当 ClickHouse 在 cgroup 中运行时,我们仍然会收集与系统负载、进程调度、内存等相关的系统级异步指标。 当 ClickHouse 是主机上唯一资源消耗较高的进程时,这些指标可能会提供有用的信号。 [#73369](https://github.com/ClickHouse/ClickHouse/pull/73369) ([Nikita Taranov](https://github.com/nickitat)). +* 在 `S3Queue` 存储中,现在可以将 24.6 之前创建的旧有序表迁移到使用分桶的新结构中。[#73467](https://github.com/ClickHouse/ClickHouse/pull/73467) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* 新增 `system.azure_queue`,类似于已有的 `system.s3queue`。 [#73477](https://github.com/ClickHouse/ClickHouse/pull/73477) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 函数 `parseDateTime64`(及其变体)现在对于早于 1970 年或晚于 2106 年的输入日期能够返回正确结果。示例:`SELECT parseDateTime64InJodaSyntax('2200-01-01 00:00:00.000', 'yyyy-MM-dd HH:mm:ss.SSS')`。[#73594](https://github.com/ClickHouse/ClickHouse/pull/73594)([zhanglistar](https://github.com/zhanglistar))。 +* 解决了一些用户提出的 `clickhouse-disks` 可用性问题。已关闭 [#67136](https://github.com/ClickHouse/ClickHouse/issues/67136)。[#73616](https://github.com/ClickHouse/ClickHouse/pull/73616)([Daniil Ivanik](https://github.com/divanik))。 +* 允许修改 S3(Azure)Queue 存储的提交设置(提交设置包括:`max_processed_files_before_commit`、`max_processed_rows_before_commit`、`max_processed_bytes_before_commit`、`max_processing_time_sec_before_commit`)。[#73635](https://github.com/ClickHouse/ClickHouse/pull/73635)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 在 S3(Azure)Queue 存储中聚合各个源的进度,以便与提交限制设置进行比较。[#73641](https://github.com/ClickHouse/ClickHouse/pull/73641) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* `BACKUP`/`RESTORE` 查询支持核心设置。 [#73650](https://github.com/ClickHouse/ClickHouse/pull/73650) ([Vitaly Baranov](https://github.com/vitlibar)). +* 在生成 Parquet 输出时会考虑 `output_format_compression_level`。[#73651](https://github.com/ClickHouse/ClickHouse/pull/73651)([Arthur Passos](https://github.com/arthurpassos))。 +* 将 Apache Arrow 的 `fixed_size_list` 改为读取为 `Array`,而不是将其视为不受支持的类型。[#73654](https://github.com/ClickHouse/ClickHouse/pull/73654) ([Julian Meyers](https://github.com/J-Meyers))。 +* 新增了两个备份引擎:`Memory`(在当前用户会话内保存备份)和 `Null`(不在任何地方保存备份),主要用于测试。 [#73690](https://github.com/ClickHouse/ClickHouse/pull/73690) ([Vitaly Baranov](https://github.com/vitlibar)). +* `concurrent_threads_soft_limit_num` 和 `concurrent_threads_soft_limit_num_ratio_to_cores` 现在可以在不重启服务器的情况下修改。[#73713](https://github.com/ClickHouse/ClickHouse/pull/73713) ([Sergei Trifonov](https://github.com/serxa)). +* 为 `formatReadable` 函数新增对扩展数值类型(`Decimal`、大整数)的支持。[#73765](https://github.com/ClickHouse/ClickHouse/pull/73765)([Raúl Marín](https://github.com/Algunenano))。 +* 为兼容 Postgres wire 协议提供 TLS 支持。[#73812](https://github.com/ClickHouse/ClickHouse/pull/73812)([scanhex12](https://github.com/scanhex12))。 +* 函数 `isIPv4String` 在正确的 IPv4 地址后紧跟一个零字节时会返回 true,而在这种情况下本应返回 false。是对 [#65387](https://github.com/ClickHouse/ClickHouse/issues/65387) 的后续修复。[#73946](https://github.com/ClickHouse/ClickHouse/pull/73946) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 使 MySQL wire 协议中的错误代码与 MySQL 保持兼容。延续自 [#56831](https://github.com/ClickHouse/ClickHouse/issues/56831)。关闭了 [#50957](https://github.com/ClickHouse/ClickHouse/issues/50957)。[#73948](https://github.com/ClickHouse/ClickHouse/pull/73948)([Alexey Milovidov](https://github.com/alexey-milovidov))。 +* 添加 `validate_enum_literals_in_opearators` 设置项,用于对 `IN`、`NOT IN` 等运算符中的枚举字面量进行校验,将其与枚举类型进行比对,如果字面量不是合法的枚举值则抛出异常。 [#73985](https://github.com/ClickHouse/ClickHouse/pull/73985) ([Vladimir Cherkasov](https://github.com/vdimir)). +* 在 `S3(Azure)Queue` 存储中,将同一批次(由提交设置定义)的所有文件在单个 Keeper 事务中提交。[#73991](https://github.com/ClickHouse/ClickHouse/pull/73991)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 禁用可执行 UDF 和字典的表头检测(可能导致 Function 'X':结果错误,预期 Y 行,实际为 Y-1)。 [#73992](https://github.com/ClickHouse/ClickHouse/pull/73992) ([Azat Khuzhin](https://github.com/azat)). +* 为 `EXPLAIN PLAN` 新增 `distributed` 选项。现在,`EXPLAIN distributed=1 ...` 会将远程执行计划附加到 `ReadFromParallelRemote*` 步骤。 [#73994](https://github.com/ClickHouse/ClickHouse/pull/73994) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 为带有 Dynamic 参数的 not/xor 使用正确的返回类型。[#74013](https://github.com/ClickHouse/ClickHouse/pull/74013) ([Pavel Kruglov](https://github.com/Avogar))。 +* 允许在建表后更改 `add_implicit_sign_column_constraint_for_collapsing_engine`。 [#74014](https://github.com/ClickHouse/ClickHouse/pull/74014) ([Christoph Wurm](https://github.com/cwurm)). +* materialized view 的 SELECT 查询现在支持子列。 [#74030](https://github.com/ClickHouse/ClickHouse/pull/74030) ([Pavel Kruglov](https://github.com/Avogar)). +* 现在在 `clickhouse-client` 中设置自定义提示符有三种简便方式:1. 通过命令行参数 `--prompt`;2. 在配置文件中通过设置 `[...]`;3. 同样在配置文件中,通过连接级设置 `[...]`。 [#74168](https://github.com/ClickHouse/ClickHouse/pull/74168) ([Christoph Wurm](https://github.com/cwurm))。 +* ClickHouse Client 现在可以在连接到端口 9440 时自动检测是否使用安全连接。[#74212](https://github.com/ClickHouse/ClickHouse/pull/74212)([Christoph Wurm](https://github.com/cwurm))。 +* 在 `http_handlers` 中支持仅使用用户名对用户进行身份验证(此前还要求用户同时提供密码)。[#74221](https://github.com/ClickHouse/ClickHouse/pull/74221) ([Azat Khuzhin](https://github.com/azat)). +* 对替代查询语言 PRQL 和 KQL 的支持被标记为实验特性。要使用它们,请将设置 `allow_experimental_prql_dialect = 1` 和 `allow_experimental_kusto_dialect = 1`。 [#74224](https://github.com/ClickHouse/ClickHouse/pull/74224) ([Robert Schulze](https://github.com/rschu1ze))。 +* 更多聚合函数现在支持返回默认的 Enum 类型。[#74272](https://github.com/ClickHouse/ClickHouse/pull/74272) ([Raúl Marín](https://github.com/Algunenano))。 +* 在 `OPTIMIZE TABLE` 中,现在可以使用关键字 `FORCE` 作为现有关键字 `FINAL` 的替代。[#74342](https://github.com/ClickHouse/ClickHouse/pull/74342) ([Robert Schulze](https://github.com/rschu1ze))。 +* 添加 `IsServerShuttingDown` 指标,用于在服务器关闭过程耗时过长时触发告警。[#74429](https://github.com/ClickHouse/ClickHouse/pull/74429) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 +* 在 `EXPLAIN` 输出中添加了 Iceberg 表名。 [#74485](https://github.com/ClickHouse/ClickHouse/pull/74485) ([alekseev-maksim](https://github.com/alekseev-maksim))。 +* 在使用旧版分析器配合 RECURSIVE CTE 时提供更清晰的错误信息。[#74523](https://github.com/ClickHouse/ClickHouse/pull/74523) ([Raúl Marín](https://github.com/Algunenano))。 +* 在 `system.errors` 中显示详细错误信息。[#74574](https://github.com/ClickHouse/ClickHouse/pull/74574) ([Vitaly Baranov](https://github.com/vitlibar))。 +* 允许在客户端与 clickhouse-keeper 之间通信时使用密码。如果你为服务器端和客户端配置了合适的 SSL,此功能意义不大,但在某些场景下仍然可能有用。密码最长为 16 个字符。它与 Keeper 身份验证模型无关。[#74673](https://github.com/ClickHouse/ClickHouse/pull/74673) ([alesapin](https://github.com/alesapin))。 +* 为配置重载器添加错误码。[#74746](https://github.com/ClickHouse/ClickHouse/pull/74746) ([Garrett Thomas](https://github.com/garrettthomaskth))。 +* 在 MySQL 和 PostgreSQL 表函数和引擎中新增对 IPv6 地址的支持。[#74796](https://github.com/ClickHouse/ClickHouse/pull/74796)([Mikhail Koviazin](https://github.com/mkmkme))。 +* 为 `divideDecimal` 实现短路优化。修复 [#74280](https://github.com/ClickHouse/ClickHouse/issues/74280)。[#74843](https://github.com/ClickHouse/ClickHouse/pull/74843)([Kevin Mingtarja](https://github.com/kevinmingtarja))。 +* 现在可以在启动脚本中配置用户。 [#74894](https://github.com/ClickHouse/ClickHouse/pull/74894) ([pufit](https://github.com/pufit)). +* 新增对 Azure SAS 令牌的支持。 [#72959](https://github.com/ClickHouse/ClickHouse/pull/72959) ([Azat Khuzhin](https://github.com/azat)). + +#### Bug 修复(官方稳定版中对用户可见的错误行为) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} + +* 仅在压缩编解码器支持时才设置 Parquet 压缩级别。[#74659](https://github.com/ClickHouse/ClickHouse/pull/74659) ([Arthur Passos](https://github.com/arthurpassos))。 +* 修复了一个回归问题,即在使用带有修饰符的排序规则 locale 时会抛出错误。例如,`SELECT arrayJoin(['kk 50', 'KK 01', ' KK 2', ' KK 3', 'kk 1', 'x9y99', 'x9y100']) item ORDER BY item ASC COLLATE 'tr-u-kn-true-ka-shifted` 现在可以正常工作。[#73544](https://github.com/ClickHouse/ClickHouse/pull/73544)([Robert Schulze](https://github.com/rschu1ze))。 +* 修复无法使用 keeper-client 创建 SEQUENTIAL 节点的问题。 [#64177](https://github.com/ClickHouse/ClickHouse/pull/64177) ([Duc Canh Le](https://github.com/canhld94)). +* 修复 position 函数中字符计数不正确的问题。[#71003](https://github.com/ClickHouse/ClickHouse/pull/71003) ([思维](https://github.com/heymind)). +* 由于部分撤销操作未被正确处理,针对访问实体执行 `RESTORE` 时需要的权限比实际所需更多。此 PR 修复了该问题。关闭 [#71853](https://github.com/ClickHouse/ClickHouse/issues/71853)。[#71958](https://github.com/ClickHouse/ClickHouse/pull/71958)([pufit](https://github.com/pufit))。 +* 避免在执行 `ALTER TABLE REPLACE/MOVE PARTITION FROM/TO TABLE` 后发生暂停。为后台任务调度检索正确的设置。[#72024](https://github.com/ClickHouse/ClickHouse/pull/72024)([Aleksei Filatov](https://github.com/aalexfvk))。 +* 修复某些输入和输出格式(如 Parquet、Arrow)中对空元组的处理问题。[#72616](https://github.com/ClickHouse/ClickHouse/pull/72616) ([Michael Kolupaev](https://github.com/al13n321))。 +* 现在,在带通配符的数据库/表上授予列级 GRANT SELECT/INSERT 权限时会抛出错误。 [#72646](https://github.com/ClickHouse/ClickHouse/pull/72646) ([Johann Gan](https://github.com/johanngan)). +* 修复了由于目标访问实体中的隐式授权导致用户无法执行 `REVOKE ALL ON *.*` 的问题。[#72872](https://github.com/ClickHouse/ClickHouse/pull/72872)([pufit](https://github.com/pufit))。 +* 修复 formatDateTime 标量函数在处理正时区时的格式化问题。 [#73091](https://github.com/ClickHouse/ClickHouse/pull/73091) ([ollidraese](https://github.com/ollidraese)). +* 修复了在通过 PROXYv1 建立连接且已设置 `auth_use_forwarded_address` 时,源端口未被正确反映的问题——此前会错误地使用代理端口。新增 `currentQueryID()` 函数。[#73095](https://github.com/ClickHouse/ClickHouse/pull/73095) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 +* 将格式设置传递给 TCPHandler 中的 NativeWriter,使诸如 `output_format_native_write_json_as_string` 之类的设置能够正确生效。 [#73179](https://github.com/ClickHouse/ClickHouse/pull/73179) ([Pavel Kruglov](https://github.com/Avogar)). +* 修复 StorageObjectStorageQueue 中的崩溃。 [#73274](https://github.com/ClickHouse/ClickHouse/pull/73274) ([Kseniia Sumarokova](https://github.com/kssenii)). +* 修复服务器关闭期间在可刷新materialized view中发生的罕见崩溃。[#73323](https://github.com/ClickHouse/ClickHouse/pull/73323) ([Michael Kolupaev](https://github.com/al13n321))。 +* 函数 `formatDateTime` 的占位符 `%f` 现在始终生成 6 位(子秒)数字。这样其行为就与 MySQL `DATE_FORMAT` 函数兼容。可以通过将设置 `formatdatetime_f_prints_scale_number_of_digits` 设为 `1` 来恢复之前的行为。[#73324](https://github.com/ClickHouse/ClickHouse/pull/73324)([ollidraese](https://github.com/ollidraese))。 +* 修复了从 `s3` 存储和表函数读取时基于 `_etag` 列进行过滤的问题。[#73353](https://github.com/ClickHouse/ClickHouse/pull/73353)([Anton Popov](https://github.com/CurtizJ))。 +* 修复在旧分析器中,当在 `JOIN ON` 表达式中使用 `IN (subquery)` 时出现的 `Not-ready Set is passed as the second argument for function 'in'` 错误。 [#73382](https://github.com/ClickHouse/ClickHouse/pull/73382) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* 修复了为 Dynamic 和 JSON 列准备进行 squash 时的处理逻辑。此前在某些情况下,即使尚未达到类型或路径的数量上限,新类型仍可能被插入到 shared variant/shared data 中。[#73388](https://github.com/ClickHouse/ClickHouse/pull/73388)([Pavel Kruglov](https://github.com/Avogar))。 +* 在类型的二进制解码过程中检查损坏的大小信息,以避免过大的内存分配。 [#73390](https://github.com/ClickHouse/ClickHouse/pull/73390) ([Pavel Kruglov](https://github.com/Avogar)). +* 修复了在启用并行副本时,从单副本集群读取时出现的逻辑错误。[#73403](https://github.com/ClickHouse/ClickHouse/pull/73403) ([Michael Kolupaev](https://github.com/al13n321))。 +* 修复 ObjectStorageQueue 在配合 ZooKeeper 和旧版 Keeper 使用时的问题。 [#73420](https://github.com/ClickHouse/ClickHouse/pull/73420) ([Antonio Andelic](https://github.com/antonio2368))。 +* 实现了为默认启用 Hive 分区所需的修复。[#73479](https://github.com/ClickHouse/ClickHouse/pull/73479) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 修复在创建向量相似性索引时的数据竞争。[#73517](https://github.com/ClickHouse/ClickHouse/pull/73517) ([Antonio Andelic](https://github.com/antonio2368))。 +* 修复了当字典的数据源包含使用错误数据的函数时出现的段错误。 [#73535](https://github.com/ClickHouse/ClickHouse/pull/73535) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 +* 修复在使用 S3(Azure)Queue 存储引擎时插入失败时的重试机制。关闭 [#70951](https://github.com/ClickHouse/ClickHouse/issues/70951)。[#73546](https://github.com/ClickHouse/ClickHouse/pull/73546)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 修复了 `tupleElement` 函数中的一个错误,该错误在某些情况下,当元组包含 `LowCardinality` 元素且启用了 `optimize_functions_to_subcolumns` 设置时可能会出现。 [#73548](https://github.com/ClickHouse/ClickHouse/pull/73548) ([Anton Popov](https://github.com/CurtizJ)). +* 修复了解析枚举 glob 后紧跟范围时的问题。修复了 [#73473](https://github.com/ClickHouse/ClickHouse/issues/73473)。[#73569](https://github.com/ClickHouse/ClickHouse/pull/73569)([Konstantin Bogdanov](https://github.com/thevar1able))。 +* 修复了在针对非复制表的子查询中被忽略的 `parallel_replicas_for_non_replicated_merge_tree` 设置。 [#73584](https://github.com/ClickHouse/ClickHouse/pull/73584) ([Igor Nikonov](https://github.com/devcrafter)). +* 修复了在任务无法调度时会抛出 `std::logical_error` 的问题。在压力测试中发现。[#73629](https://github.com/ClickHouse/ClickHouse/pull/73629) ([Alexander Gololobov](https://github.com/davenger))。 +* 在 `EXPLAIN SYNTAX` 中不再对查询进行解析,以避免因对分布式查询使用错误的处理阶段而导致的逻辑错误。修复了 [#65205](https://github.com/ClickHouse/ClickHouse/issues/65205)。[#73634](https://github.com/ClickHouse/ClickHouse/pull/73634)([Dmitry Novik](https://github.com/novikd))。 +* 修复 Dynamic 列中可能出现的数据不一致问题,解决了可能出现的逻辑错误 `Nested columns sizes are inconsistent with local_discriminators column size`。[#73644](https://github.com/ClickHouse/ClickHouse/pull/73644) ([Pavel Kruglov](https://github.com/Avogar))。 +* 修复了在包含 `FINAL` 和 `SAMPLE` 的查询中出现的 `NOT_FOUND_COLUMN_IN_BLOCK` 问题。修复了对 `CollapsingMergeTree` 表使用 `FINAL` 进行查询时的结果错误问题,并启用了针对 `FINAL` 的优化。[#73682](https://github.com/ClickHouse/ClickHouse/pull/73682) ([Anton Popov](https://github.com/CurtizJ))。 +* 修复在 LIMIT BY COLUMNS 中的崩溃。[#73686](https://github.com/ClickHouse/ClickHouse/pull/73686) ([Raúl Marín](https://github.com/Algunenano)). +* 修复了这样一个问题:在被强制使用普通 PROJECTION 时,即使查询与该 PROJECTION 的定义完全相同,仍未选中该 PROJECTION,因而导致报错。[#73700](https://github.com/ClickHouse/ClickHouse/pull/73700) ([Shichao Jin](https://github.com/jsc0218)). +* 修复 Dynamic/Object 结构的反序列化问题。该问题可能导致 CANNOT_READ_ALL_DATA 异常。[#73767](https://github.com/ClickHouse/ClickHouse/pull/73767) ([Pavel Kruglov](https://github.com/Avogar)). +* 在从备份中恢复分区片段时跳过 `metadata_version.txt`。 [#73768](https://github.com/ClickHouse/ClickHouse/pull/73768) ([Vitaly Baranov](https://github.com/vitlibar))。 +* 修复在结合 LIKE 将值转换为 Enum 类型时出现的段错误。 [#73775](https://github.com/ClickHouse/ClickHouse/pull/73775) ([zhanglistar](https://github.com/zhanglistar)). +* 修复了 S3 Express 存储桶无法作为磁盘使用的问题。 [#73777](https://github.com/ClickHouse/ClickHouse/pull/73777) ([Sameer Tamsekar](https://github.com/stamsekar)). +* 允许在 CollapsingMergeTree 表中合并 sign 列值无效的行。[#73864](https://github.com/ClickHouse/ClickHouse/pull/73864)([Christoph Wurm](https://github.com/cwurm))。 +* 修复在存在离线副本时查询 DDL 会报错的问题。[#73876](https://github.com/ClickHouse/ClickHouse/pull/73876) ([Tuan Pham Anh](https://github.com/tuanpach))。 +* 修复了在比较 `map()` 类型时偶发失败的问题,原因是允许创建其嵌套元组未对字段('keys'、'values')进行显式命名的 `Map`。 [#73878](https://github.com/ClickHouse/ClickHouse/pull/73878) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* 在解析 `GROUP BY ALL` 子句时忽略窗口函数。修复 [#73501](https://github.com/ClickHouse/ClickHouse/issues/73501)。[#73916](https://github.com/ClickHouse/ClickHouse/pull/73916)([Dmitry Novik](https://github.com/novikd))。 +* 修复隐式权限问题(之前被当作通配符处理)。 [#73932](https://github.com/ClickHouse/ClickHouse/pull/73932) ([Azat Khuzhin](https://github.com/azat)). +* 修复在创建嵌套 `Maps` 时的高内存占用问题。 [#73982](https://github.com/ClickHouse/ClickHouse/pull/73982) ([Pavel Kruglov](https://github.com/Avogar)). +* 修复解析键名为空的嵌套 JSON 时的错误。 [#73993](https://github.com/ClickHouse/ClickHouse/pull/73993) ([Pavel Kruglov](https://github.com/Avogar)). +* 修复:当某个别名被另一个别名引用,并且在选择时顺序相反时,该别名可能不会被添加到投影中。[#74033](https://github.com/ClickHouse/ClickHouse/pull/74033) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 +* 在 Azure 上初始化 plain_rewritable 磁盘时忽略“对象未找到”错误。 [#74059](https://github.com/ClickHouse/ClickHouse/pull/74059) ([Julia Kartseva](https://github.com/jkartseva)). +* 修复在使用枚举类型或空表时 `any` 和 `anyLast` 的行为。[#74061](https://github.com/ClickHouse/ClickHouse/pull/74061)([Joanna Hulboj](https://github.com/jh0x))。 +* 修复了当用户在 Kafka 表引擎中指定关键字参数时出现的问题。 [#74064](https://github.com/ClickHouse/ClickHouse/pull/74064) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* 修复了在修改 Storage `S3Queue` 设置时,在带有前缀 "s3queue_" 与不带此前缀之间切换的行为。[#74075](https://github.com/ClickHouse/ClickHouse/pull/74075) ([Kseniia Sumarokova](https://github.com/kssenii))。 +* 添加了一个名为 `allow_push_predicate_ast_for_distributed_subqueries` 的设置。它为使用 analyzer 的分布式查询增加了基于 AST 的谓词下推。这个方案是临时的,我们会一直使用它,直到分布式查询支持查询计划序列化为止。修复了 [#66878](https://github.com/ClickHouse/ClickHouse/issues/66878) [#69472](https://github.com/ClickHouse/ClickHouse/issues/69472) [#65638](https://github.com/ClickHouse/ClickHouse/issues/65638) [#68030](https://github.com/ClickHouse/ClickHouse/issues/68030) [#73718](https://github.com/ClickHouse/ClickHouse/issues/73718)。 [#74085](https://github.com/ClickHouse/ClickHouse/pull/74085) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 +* 修复了在 [#73095](https://github.com/ClickHouse/ClickHouse/issues/73095) 之后的更改中,`forwarded_for` 字段中可能包含端口,从而导致无法解析带端口的主机名的问题。[#74116](https://github.com/ClickHouse/ClickHouse/pull/74116) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* 修复了 `ALTER TABLE (DROP STATISTICS ...) (DROP STATISTICS ...)` 语句的错误格式。[#74126](https://github.com/ClickHouse/ClickHouse/pull/74126)([Han Fei](https://github.com/hanfei1991))。 +* 修复了问题 [#66112](https://github.com/ClickHouse/ClickHouse/issues/66112)。 [#74128](https://github.com/ClickHouse/ClickHouse/pull/74128)([Anton Ivashkin](https://github.com/ianton-ru))。 +* 在 `CREATE TABLE` 中不再允许将 `Loop` 用作表引擎,此前这种组合会导致段错误。 [#74137](https://github.com/ClickHouse/ClickHouse/pull/74137) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* 修复安全漏洞,防止在 PostgreSQL 和 SQLite 表函数中发生 SQL 注入。 [#74144](https://github.com/ClickHouse/ClickHouse/pull/74144) ([Pablo Marcos](https://github.com/pamarcos)). +* 修复在从压缩的 Memory 引擎表读取子列时发生的崩溃问题。修复 [#74009](https://github.com/ClickHouse/ClickHouse/issues/74009)。[#74161](https://github.com/ClickHouse/ClickHouse/pull/74161)([Nikita Taranov](https://github.com/nickitat))。 +* 修复了在查询 system.detached_tables 时发生的无限循环。 [#74190](https://github.com/ClickHouse/ClickHouse/pull/74190) ([Konstantin Morozov](https://github.com/k-morozov))。 +* 修复在将文件标记为失败时 `s3queue` 中的逻辑错误。[#74216](https://github.com/ClickHouse/ClickHouse/pull/74216)([Kseniia Sumarokova](https://github.com/kssenii))。 +* 修复了从基础备份执行 `RESTORE` 时原生复制设置(`allow_s3_native_copy` / `allow_azure_native_copy`)未正确生效的问题。[#74286](https://github.com/ClickHouse/ClickHouse/pull/74286)([Azat Khuzhin](https://github.com/azat))。 +* 修复了当数据库中已分离表的数量为 `max_block_size` 的整数倍时出现的问题。[#74289](https://github.com/ClickHouse/ClickHouse/pull/74289)([Konstantin Morozov](https://github.com/k-morozov))。 +* 修复当源和目标凭据不同时,通过 ObjectStorage(如 S3)进行复制时的问题。 [#74331](https://github.com/ClickHouse/ClickHouse/pull/74331) ([Azat Khuzhin](https://github.com/azat)). +* 修复在 GCS 上进行原生复制时对“在 JSON API 中使用 Rewrite 方法”的检测。[#74338](https://github.com/ClickHouse/ClickHouse/pull/74338) ([Azat Khuzhin](https://github.com/azat))。 +* 修复对 `BackgroundMergesAndMutationsPoolSize` 的错误计算(之前是实际值的 2 倍)。[#74509](https://github.com/ClickHouse/ClickHouse/pull/74509) ([alesapin](https://github.com/alesapin))。 +* 修复在启用 Cluster Discovery 时 keeper watch 泄漏的问题。 [#74521](https://github.com/ClickHouse/ClickHouse/pull/74521) ([RinChanNOW](https://github.com/RinChanNOWWW)). +* 修复 UBSan 报告的内存对齐问题 [#74512](https://github.com/ClickHouse/ClickHouse/issues/74512)。[#74534](https://github.com/ClickHouse/ClickHouse/pull/74534)([Arthur Passos](https://github.com/arthurpassos))。 +* 修复在创建表时 KeeperMap 的并发清理问题。[#74568](https://github.com/ClickHouse/ClickHouse/pull/74568)([Antonio Andelic](https://github.com/antonio2368))。 +* 在包含 `EXCEPT` 或 `INTERSECT` 的情况下,不要在子查询中移除未使用的投影列,以确保查询结果正确。修复了 [#73930](https://github.com/ClickHouse/ClickHouse/issues/73930)。修复了 [#66465](https://github.com/ClickHouse/ClickHouse/issues/66465)。[#74577](https://github.com/ClickHouse/ClickHouse/pull/74577)([Dmitry Novik](https://github.com/novikd))。 +* 修复了在启用稀疏序列化时,包含 `Tuple` 列的表之间执行 `INSERT SELECT` 查询时的问题。 [#74698](https://github.com/ClickHouse/ClickHouse/pull/74698) ([Anton Popov](https://github.com/CurtizJ)). +* 函数 `right` 在负常量偏移量情况下行为不正确。 [#74701](https://github.com/ClickHouse/ClickHouse/pull/74701) ([Daniil Ivanik](https://github.com/divanik))。 +* 修复了由于客户端解压缩实现存在缺陷,导致 gzip 压缩数据的插入有时失败的问题。[#74707](https://github.com/ClickHouse/ClickHouse/pull/74707)([siyuan](https://github.com/linkwk7))。 +* 在使用通配符授权时执行部分撤销操作可能会移除超出预期的权限。修复 [#74263](https://github.com/ClickHouse/ClickHouse/issues/74263)。[#74751](https://github.com/ClickHouse/ClickHouse/pull/74751) ([pufit](https://github.com/pufit))。 +* Keeper:修复从磁盘读取日志记录的问题。 [#74785](https://github.com/ClickHouse/ClickHouse/pull/74785) ([Antonio Andelic](https://github.com/antonio2368)). +* 修复了对 SYSTEM REFRESH/START/STOP VIEW 的权限检查,现在在对某个特定 VIEW 执行查询时,不再需要在 `*.*` 上授予此权限,只需对该 VIEW 本身授予该权限即可。 [#74789](https://github.com/ClickHouse/ClickHouse/pull/74789) ([Alexander Tokmakov](https://github.com/tavplubix)). +* `hasColumnInTable` 函数之前不支持别名列。已修复为也适用于别名列。[#74841](https://github.com/ClickHouse/ClickHouse/pull/74841) ([Bharat Nallan](https://github.com/bharatnc))。 +* 修复了在 Azure Blob Storage 中,对包含空列的表进行数据分区片段合并时出现的 FILE_DOESNT_EXIST 错误。[#74892](https://github.com/ClickHouse/ClickHouse/pull/74892)([Julia Kartseva](https://github.com/jkartseva))。 +* 修正在与临时表进行 JOIN 时的 PROJECTION 列名问题,关闭 [#68872](https://github.com/ClickHouse/ClickHouse/issues/68872)。[#74897](https://github.com/ClickHouse/ClickHouse/pull/74897)([Vladimir Cherkasov](https://github.com/vdimir))。 + +#### 构建/测试/打包改进 {#buildtestingpackaging-improvement} + +* 通用安装脚本现在在 macOS 上也会提供安装选项。[#74339](https://github.com/ClickHouse/ClickHouse/pull/74339) ([Alexey Milovidov](https://github.com/alexey-milovidov)). \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/cloud.md b/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/cloud.md index c0782e1d567..f58ab3635a6 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/cloud.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/cloud.md @@ -1,5 +1,5 @@ --- -sidebar_position: 1 +sidebar_position: -9999 sidebar_label: 'Cloud' title: 'Cloud 更新日志' slug: /whats-new/changelog/cloud diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/index.md b/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/index.md index 65226efbc6f..bb1f8509e18 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/index.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/changelog/index.md @@ -1,2466 +1,14 @@ --- -description: '2025 年变更日志' +description: '2026 年变更日志' note: '此文件通过 yarn build 生成' slug: /whats-new/changelog/ -sidebar_position: 2 -sidebar_label: '2025' -title: '2025 年变更日志' +sidebar_position: -9998 +sidebar_label: '2026' +title: '2026 年变更日志' doc_type: 'changelog' --- -### 目录 {#table-of-contents} - -**[ClickHouse 发行版 v25.11,2025-11-27](#2511)**
    -**[ClickHouse 发行版 v25.10,2025-10-30](#2510)**
    -**[ClickHouse 发行版 v25.9,2025-09-25](#259)**
    -**[ClickHouse 发行版 v25.8 LTS,2025-08-28](#258)**
    -**[ClickHouse 发行版 v25.7,2025-07-24](#257)**
    -**[ClickHouse 发行版 v25.6,2025-06-26](#256)**
    -**[ClickHouse 发行版 v25.5,2025-05-22](#255)**
    -**[ClickHouse 发行版 v25.4,2025-04-22](#254)**
    -**[ClickHouse 发行版 v25.3 LTS,2025-03-20](#253)**
    -**[ClickHouse 发行版 v25.2,2025-02-27](#252)**
    -**[ClickHouse 发行版 v25.1,2025-01-28](#251)**
    -**[2024 年更新日志](https://clickhouse.com/docs/whats-new/changelog/2024/)**
    -**[2023 年更新日志](https://clickhouse.com/docs/whats-new/changelog/2023/)**
    -**[2022 年更新日志](https://clickhouse.com/docs/whats-new/changelog/2022/)**
    -**[2021 年更新日志](https://clickhouse.com/docs/whats-new/changelog/2021/)**
    -**[2020 年更新日志](https://clickhouse.com/docs/whats-new/changelog/2020/)**
    -**[2019 年更新日志](https://clickhouse.com/docs/whats-new/changelog/2019/)**
    -**[2018 年更新日志](https://clickhouse.com/docs/whats-new/changelog/2018/)**
    -**[2017 年更新日志](https://clickhouse.com/docs/whats-new/changelog/2017/)**
    - -### ClickHouse 25.11 版本,2025-11-27 {#2511} - -#### 向后不兼容变更 {#backward-incompatible-change} - -* 移除已弃用的 `Object` 类型。[#85718](https://github.com/ClickHouse/ClickHouse/pull/85718) ([Pavel Kruglov](https://github.com/Avogar))。 -* 移除已弃用的 `LIVE VIEW` 功能。如果你正在使用 `LIVE VIEW`,则无法升级到该新版本。[#88706](https://github.com/ClickHouse/ClickHouse/pull/88706) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 在之前的版本中,`Geometry` 类型只是 `String` 的别名,但现在它已经成为一个功能完备的类型。[#83344](https://github.com/ClickHouse/ClickHouse/pull/83344)([scanhex12](https://github.com/scanhex12))。 -* 对 MergeTree 表的 Wide 数据部分中为 `Variant` 类型子列创建的文件名进行转义。此更改会导致与包含 Variant/Dynamic/JSON 数据类型的旧表不兼容。它修复了在 Variant 内部存储包含特殊字符的类型的问题(例如包含 `\` 的特定时区的 DateTime)。可以通过修改 MergeTree 设置 `escape_variant_subcolumn_filenames` 来禁用转义(如需保持兼容性,请在 MergeTree 的配置中禁用此设置,或在升级前将 `compatibility` 设置为之前的版本)。解决了 [#69590](https://github.com/ClickHouse/ClickHouse/issues/69590)。[#87300](https://github.com/ClickHouse/ClickHouse/pull/87300)([Pavel Kruglov](https://github.com/Avogar))。 -* 默认对 `String` 数据类型启用 `with_size_stream` 序列化格式。此更改是向后兼容的,但新序列化格式仅从 25.10 版本开始支持,这意味着无法降级到 25.10 之前的版本。如果希望保留降级到 25.9 及更早版本的可能性,请在服务器配置的 `merge_tree` 部分中,将 `serialization_info_version` 设置为 `basic`,并将 `string_serialization_version` 设置为 `single_stream`。[#89329](https://github.com/ClickHouse/ClickHouse/pull/89329)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 为 HTTP 响应结果增加异常标记支持,以便客户端能够更可靠地解析异常。解决了 [#75175](https://github.com/ClickHouse/ClickHouse/issues/75175)。为了在各种格式之间保持一致性,设置 `http_write_exception_in_output_format` 默认处于禁用状态。[#88818](https://github.com/ClickHouse/ClickHouse/pull/88818)([Kaviraj Kanagaraj](https://github.com/kavirajk))。虽然它本不应破坏任何现有行为(最糟情况也只是向异常消息中附加一个有些奇怪的字符串),但出于提示/提醒的目的,仍然有必要将其纳入 "Backward Incompatible Change" 这一变更日志类别中(因为谁知道某些乱写的脚本是如何解析异常消息的)。 -* 禁止在共享对象存储路径之上创建多个 `plain-rewritable` 磁盘,因为在不同元数据存储事务发生冲突时,这可能会导致未定义行为。[#89038](https://github.com/ClickHouse/ClickHouse/pull/89038) ([Mikhail Artemenko](https://github.com/Michicosun))。 -* 修复了 Kafka 存储中 SASL 设置的优先级处理问题。现在,在 CREATE TABLE 查询中指定的表级 SASL 设置会正确覆盖配置文件中为消费者/生产者指定的设置。[#89401](https://github.com/ClickHouse/ClickHouse/pull/89401)([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 -* 现在会将不带时区的 Parquet `timestamp`(`isAdjustedToUTC=false`)读取为 `DateTime64(..., 'UTC')`,而不是 `DateTime64(...)`。这样虽仍不完全正确,但在将此类 UTC `timestamp` 转换为字符串时,会得到正确的本地时间表示。使用 `input_format_parquet_local_time_as_utc = 0` 可以恢复旧的行为。修复了 [#87469](https://github.com/ClickHouse/ClickHouse/issues/87469)。[#87872](https://github.com/ClickHouse/ClickHouse/pull/87872)([Michael Kolupaev](https://github.com/al13n321))。 -* 对 `T64` codec 做了一个小改进:它不再接受与压缩元素大小未对齐的数据类型,否则会触发一个 bug。修复了 [#89282](https://github.com/ClickHouse/ClickHouse/issues/89282)。[#89432](https://github.com/ClickHouse/ClickHouse/pull/89432)([yanglongwei](https://github.com/ylw510))。 - -#### 新功能 {#new-feature} - -* 引入 `Geometry` 类型,并支持读取其 `WKB` 和 `WKT` 格式。在之前的版本中,`Geometry` 类型只是 `String` 的别名,但现在它已成为一个功能完备的类型。[#83344](https://github.com/ClickHouse/ClickHouse/pull/83344)([scanhex12](https://github.com/scanhex12))。 -* 新增 SQL 语句 `EXECUTE AS` 以支持用户身份模拟。修复 [#39048](https://github.com/ClickHouse/ClickHouse/issues/39048)。[#70775](https://github.com/ClickHouse/ClickHouse/pull/70775) ([Shankar](https://github.com/shiyer7474))。 -* 添加 `naiveBayesClassifier` 函数,用于基于 n-gram 的朴素贝叶斯方法对文本进行分类。 [#88677](https://github.com/ClickHouse/ClickHouse/pull/88677) ([Nihal Z. Miaji](https://github.com/nihalzp)). -* 为 `LIMIT` 和 `OFFSET` 添加对小数的支持,以按比例选取表的一部分数据。解决 [#81892](https://github.com/ClickHouse/ClickHouse/issues/81892)。[#88755](https://github.com/ClickHouse/ClickHouse/pull/88755)([Ahmed Gouda](https://github.com/0xgouda))。 -* 面向 Microsoft OneLake 目录的 ClickHouse 子系统。[#89366](https://github.com/ClickHouse/ClickHouse/pull/89366)([scanhex12](https://github.com/scanhex12))。 -* 添加 `flipCoordinates` 函数,用于对数组解包指定数量的维度,并在 Tuple 列中交换指针。修复 [#79469](https://github.com/ClickHouse/ClickHouse/issues/79469)。[#79634](https://github.com/ClickHouse/ClickHouse/pull/79634)([Sachin Kumar Singh](https://github.com/sachinkumarsingh092))。 -* 添加 `system.unicode` 表,其中包含 Unicode 字符及其属性的列表。解决了 [#80055](https://github.com/ClickHouse/ClickHouse/issues/80055)。[#80857](https://github.com/ClickHouse/ClickHouse/pull/80857)([wxybear](https://github.com/wxybear))。 -* 新增一个 MergeTree 设置项 `merge_max_dynamic_subcolumns_in_wide_part`,用于在合并后限制 Wide part 中动态子列的数量,而不受数据类型中指定参数的影响。[#87646](https://github.com/ClickHouse/ClickHouse/pull/87646) ([Pavel Kruglov](https://github.com/Avogar))。 -* 新增对 `cume_dist` 窗口函数的支持。修复了 [#86920](https://github.com/ClickHouse/ClickHouse/issues/86920)。[#88102](https://github.com/ClickHouse/ClickHouse/pull/88102)([Manuel](https://github.com/raimannma))。 -* 用户现在可以在构建文本索引时添加一个新的参数 `preprocessor`。该参数是一个任意表达式,用于在分词之前对每个文档进行转换。[#88272](https://github.com/ClickHouse/ClickHouse/pull/88272)([Jimmy Aguilar Mena](https://github.com/Ergus))。 -* 为 `X-ClickHouse-Progress` 和 `X-ClickHouse-Summary` 新增 `memory_usage` 字段。可用于在客户端实时收集查询的内存使用情况。[#88393](https://github.com/ClickHouse/ClickHouse/pull/88393) ([Christoph Wurm](https://github.com/cwurm))。 -* 添加 `into_outfile_create_parent_directories` 设置,在使用 `INTO OUTFILE` 时自动创建父目录,以避免在输出路径不存在时出错。这简化了查询将结果写入多级目录时的工作流。修复 [#88610](https://github.com/ClickHouse/ClickHouse/issues/88610)。[#88795](https://github.com/ClickHouse/ClickHouse/pull/88795)([Saksham](https://github.com/Saksham10-11))。 -* 支持临时表的 `CREATE OR REPLACE` 语法。解决了 [#35888](https://github.com/ClickHouse/ClickHouse/issues/35888)。[#89450](https://github.com/ClickHouse/ClickHouse/pull/89450)([Aleksandr Musorin](https://github.com/AVMusorin))。 -* 增加对 `arrayRemove` 的支持,用于从数组 `arr` 中移除所有等于 `elem` 的元素。此功能仅出于与 Postgres 的兼容性考虑,因为 ClickHouse 已经提供了更加强大的 `arrayFilter` 函数。解决 [#52099](https://github.com/ClickHouse/ClickHouse/issues/52099)。[#89585](https://github.com/ClickHouse/ClickHouse/pull/89585)([tiwarysaurav](https://github.com/tiwarysaurav))。 -* 新增用于计算平均值的 `midpoint` 标量函数。修复了 [#89029](https://github.com/ClickHouse/ClickHouse/issues/89029)。[#89679](https://github.com/ClickHouse/ClickHouse/pull/89679)([simonmichal](https://github.com/simonmichal))。 -* Web UI 现在提供了下载按钮。即使界面只显示部分结果,也会下载全部结果。[#89768](https://github.com/ClickHouse/ClickHouse/pull/89768) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 添加 `arrow_flight_request_descriptor_type` 设置项,以支持 Dremio 和其他要求使用命令式描述符的 Arrow Flight 服务器。实现了 [#89523](https://github.com/ClickHouse/ClickHouse/issues/89523)。[#89826](https://github.com/ClickHouse/ClickHouse/pull/89826)([Shreyas Ganesh](https://github.com/shreyasganesh0))。 -* 新增聚合函数 `argAndMin` 和 `argAndMax`,用于返回参数值及其对应的极值。在之前的版本中,也可以通过将元组作为参数来实现相同的效果。[#89884](https://github.com/ClickHouse/ClickHouse/pull/89884)([AbdAlRahman Gad](https://github.com/AbdAlRahmanGad))。 -* 用于写入和验证 Parquet 校验和的设置。 [#79012](https://github.com/ClickHouse/ClickHouse/pull/79012) ([Michael Kolupaev](https://github.com/al13n321)). -* 在 Kafka 表引擎中新增 `kafka_schema_registry_skip_bytes` 设置项,用于在解析消息负载之前跳过封装头部字节(例如 AWS Glue Schema Registry 的 19 字节前缀)。这使得 ClickHouse 能够消费由在消息前添加元数据头部的 Schema Registry 生成的消息。[#89621](https://github.com/ClickHouse/ClickHouse/pull/89621)([Taras Polishchuk](https://github.com/wake-up-neo))。 -* 添加 `h3PolygonToCells` 函数,用于将几何区域填充为 h3 六边形。解决了 [#33991](https://github.com/ClickHouse/ClickHouse/issues/33991)。[#66262](https://github.com/ClickHouse/ClickHouse/pull/66262)([Zacharias Knudsen](https://github.com/zachasme))。 -* 添加新的虚拟列 `_tags`(`Map(String, String)`),其中包含在 S3 中与该 blob 关联的所有标签(注意,如果 blob 没有任何标签,将不会发出额外的请求)。解决 [#72945](https://github.com/ClickHouse/ClickHouse/issues/72945)。[#77773](https://github.com/ClickHouse/ClickHouse/pull/77773)([Zicong Qu](https://github.com/zicongleoqu))。 - -#### 实验性功能 {#experimental-feature} - -* 支持从 ACME 提供商(如 Let's Encrypt)获取 TLS 证书,参见 [RFC 8555](https://datatracker.ietf.org/doc/html/rfc8555)。这使得可以在分布式集群上自动配置 TLS。[#66315](https://github.com/ClickHouse/ClickHouse/pull/66315) ([Konstantin Bogdanov](https://github.com/thevar1able))。 -* 支持部分 Prometheus HTTP Query API。要启用它,请在配置文件的 `` 部分添加一个类型为 `query_api` 的规则。支持的处理器为 `/api/v1/query_range` 和 `/api/v1/query`。[#86132](https://github.com/ClickHouse/ClickHouse/pull/86132) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 -* 全文搜索现已进入 beta 阶段(此前为实验阶段)。[#88928](https://github.com/ClickHouse/ClickHouse/pull/88928) ([Robert Schulze](https://github.com/rschu1ze))。 -* 将 `Alias` 标记为实验特性,可通过设置 `allow_experimental_alias_table_engine = 1` 启用。[#89712](https://github.com/ClickHouse/ClickHouse/pull/89712) ([Kai Zhu](https://github.com/nauu))。 - -#### 性能优化 {#performance-improvement} - -* Parquet 读取器 v3 已默认启用。[#88827](https://github.com/ClickHouse/ClickHouse/pull/88827)([Michael Kolupaev](https://github.com/al13n321))。 -* 分布式执行:最好按行组 ID 而不是按文件来拆分任务。[#87508](https://github.com/ClickHouse/ClickHouse/pull/87508) ([scanhex12](https://github.com/scanhex12))。 -* `RIGHT` 和 `FULL` JOIN 现在使用 ConcurrentHashJoin;这意味着这些类型的 JOIN 现在可以以更高的并行度运行。在多种 `RIGHT` 和 `FULL` JOIN 场景下,性能最高可提升两倍。修复 [#78027](https://github.com/ClickHouse/ClickHouse/issues/78027)。[#78462](https://github.com/ClickHouse/ClickHouse/pull/78462)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* 针对查询中包含大常量值的表达式进行了优化。修复了 [#72880](https://github.com/ClickHouse/ClickHouse/issues/72880)。[#81104](https://github.com/ClickHouse/ClickHouse/pull/81104)([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 -* 在包含 1 万个以上 part 的表上,借助大量分区裁剪,`SELECT` 查询性能可提升至 8 倍。[#85535](https://github.com/ClickHouse/ClickHouse/pull/85535)([James Morrison](https://github.com/jawm))。 -* 当查询在聚合状态中使用固定哈希表(按小整数分组)时,ClickHouse 会并行合并聚合状态,以提升查询性能。[#87366](https://github.com/ClickHouse/ClickHouse/pull/87366)([Jianfei Hu](https://github.com/incfly))。 -* 允许将使用 `_part_offset` 的 SELECT 且具有不同 ORDER BY 的 projection 用作二级索引。启用后,某些查询谓词可以通过读取 projection 分片生成位图,用于在 PREWHERE 阶段高效过滤行。这是实现 projection 索引的第三步,前两步见 [#80343](https://github.com/ClickHouse/ClickHouse/issues/80343)。[#81021](https://github.com/ClickHouse/ClickHouse/pull/81021)([Amos Bird](https://github.com/amosbird))。 -* 修复在极少数 Aarch64 系统和可能的其他架构/内核组合上出现的 VDSO 问题。[#86096](https://github.com/ClickHouse/ClickHouse/pull/86096) ([Tomas Hulata](https://github.com/tombokombo)). -* 通过简化代码并微调[选择算法](https://clickhouse.com/blog/lz4-compression-in-clickhouse#how-to-choose-the-best-algorithm),提高 LZ4 解压缩速度。[#88360](https://github.com/ClickHouse/ClickHouse/pull/88360)([Raúl Marín](https://github.com/Algunenano))。 -* S3 会根据键名前缀在内部对对象进行分区,并可自动扩展以支持每个分区上的高请求速率。此更改引入了两个新的 BACKUP 设置:`data_file_name_generator` 和 `data_file_name_prefix_length`。当 `data_file_name_generator=checksum` 时,备份数据文件将使用其内容的哈希值来命名。示例:对于 checksum = `abcd1234ef567890abcd1234ef567890` 且 `data_file_name_prefix_length = 3`,生成的路径将为:`abc/d1234ef567890abcd1234ef567890`。这样生成的对象键分布可增强跨 S3 分区的负载均衡,并降低被限流的风险。[#88418](https://github.com/ClickHouse/ClickHouse/pull/88418)([Julia Kartseva](https://github.com/jkartseva))。 -* 通过缓存字典块并使用哈希表而非二分查找来进行 token 查找,提升了文本索引的性能。[#88786](https://github.com/ClickHouse/ClickHouse/pull/88786) ([Elmi Ahmadov](https://github.com/ahmadov)). -* 查询现在可以同时利用 `optimize_read_in_order` 和 `query_plan_optimize_lazy_materialization`。解决了 [#88767](https://github.com/ClickHouse/ClickHouse/issues/88767)。[#88866](https://github.com/ClickHouse/ClickHouse/pull/88866)([Manuel](https://github.com/raimannma))。 -* 对包含 `DISTINCT` 的查询使用聚合投影。修复 [#86925](https://github.com/ClickHouse/ClickHouse/issues/86925)。[#88894](https://github.com/ClickHouse/ClickHouse/pull/88894)([Nihal Z. Miaji](https://github.com/nihalzp))。 -* 缓存倒排列表,以提升连续运行时的性能。[#88912](https://github.com/ClickHouse/ClickHouse/pull/88912) ([Elmi Ahmadov](https://github.com/ahmadov)). -* 当输入的排序顺序与 LIMIT BY 键一致时运行流式 LIMIT BY 转换。[#88969](https://github.com/ClickHouse/ClickHouse/pull/88969) ([Eduard Karacharov](https://github.com/korowa)). -* 在某些情况下,允许将 `ANY LEFT JOIN` 或 `ANY RIGHT JOIN` 重写为 `ALL INNER JOIN`。 [#89403](https://github.com/ClickHouse/ClickHouse/pull/89403) ([Dmitry Novik](https://github.com/novikd))。 -* 降低日志开销:为每条日志使用更少的原子操作。[#89651](https://github.com/ClickHouse/ClickHouse/pull/89651) ([Sergei Trifonov](https://github.com/serxa)). -* 当在包含多个 join 的查询中启用了 runtime filter 并添加了多个 runtime filter 时,实现将新添加的过滤步骤优先于其他过滤步骤进行下推。 [#89725](https://github.com/ClickHouse/ClickHouse/pull/89725) ([Alexander Gololobov](https://github.com/davenger)). -* 通过减少合并哈希表的开销,略微加速某些 `uniqExact` 操作。[#89727](https://github.com/ClickHouse/ClickHouse/pull/89727)([Raúl Marín](https://github.com/Algunenano))。 -* 将延迟物化的行数限制从 10 提高到 100。[#89772](https://github.com/ClickHouse/ClickHouse/pull/89772) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 默认启用 `allow_special_serialization_kinds_in_output_formats` 设置。这将在某些行输出格式中,对稀疏列/复制列的输出减少内存使用并提升查询速度。[#89402](https://github.com/ClickHouse/ClickHouse/pull/89402) ([Pavel Kruglov](https://github.com/Avogar))。 -* 为 `ALTER TABLE ... FREEZE` 查询增加了并行执行能力。[#71743](https://github.com/ClickHouse/ClickHouse/pull/71743) ([Kirill](https://github.com/kirillgarbar))。 -* 为 bcrypt 身份验证添加缓存。[#87115](https://github.com/ClickHouse/ClickHouse/pull/87115) ([Nikolay Degterinsky](https://github.com/evillique))。 -* 如果在带有 `FINAL` 的查询中,所使用的 skip index 作用在主键列上,那么在其他部分检查主键交集的额外步骤是多余的,因此现在不再执行。修复了 [#85897](https://github.com/ClickHouse/ClickHouse/issues/85897)。[#88368](https://github.com/ClickHouse/ClickHouse/pull/88368)([Shankar Iyer](https://github.com/shankar-iyer))。 -* 优化项 `enable_lazy_columns_replication` 现在已成为默认设置,这将在执行 join 操作时减少内存占用。[#89316](https://github.com/ClickHouse/ClickHouse/pull/89316)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 为各数据片段引入按表级的 `ColumnsDescription` 缓存,当表包含大量数据片段和列时可减少内存占用。[#89352](https://github.com/ClickHouse/ClickHouse/pull/89352) ([Azat Khuzhin](https://github.com/azat))。 -* 为文本索引的反序列化后 header 引入了缓存,以减少 I/O 并提升查询性能。可以通过以下新的服务器设置进行配置:- `text_index_header_cache_policy` - `text_index_header_cache_size` - `text_index_header_cache_max_entries` - `text_index_header_cache_size_ratio`。[#89513](https://github.com/ClickHouse/ClickHouse/pull/89513)([Elmi Ahmadov](https://github.com/ahmadov))。 - -#### 改进 {#improvement} - -* 当启用 `use_variant_as_common_type` 时,UNION 如有需要会将类型统一为 `Variant`。修复了 [#82772](https://github.com/ClickHouse/ClickHouse/issues/82772)。[#83246](https://github.com/ClickHouse/ClickHouse/pull/83246)([Mithun p](https://github.com/mithunputhusseri))。 -* 在 SQL 中定义的角色现在可以授予在 `users.xml` 中定义的用户。[#88139](https://github.com/ClickHouse/ClickHouse/pull/88139) ([c-end](https://github.com/c-end))。 -* 将内部查询(由字典、可刷新materialized view 等在内部执行的查询)记录到日志中,并在 `system.query_log` 中新增 `is_internal` 列。 [#83277](https://github.com/ClickHouse/ClickHouse/pull/83277) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* 增强了 `IS NOT DISTINCT FROM` (`<=>`) 运算符:新增对相反操作符 `IS DISTINCT FROM` 的支持,并支持不同数值类型但兼容的数值操作数(例如 `Nullable(UInt32)` 和 `Nullable(Int64)`)。修复了 [#86763](https://github.com/ClickHouse/ClickHouse/issues/86763)。[#87581](https://github.com/ClickHouse/ClickHouse/pull/87581)([yanglongwei](https://github.com/ylw510))。 -* 交互模式下的 `clickhouse-client` 和 `clickhouse-local` 会在命令行中高亮显示与当前光标下标识符同名的所有标识符。 [#89689](https://github.com/ClickHouse/ClickHouse/pull/89689) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 现在,输出格式相关设置不再影响查询缓存。此外,查询缓存会忽略 `http_response_headers` 设置。这样可以支持在 Web UI 中实现从缓存中下载查询结果等功能。[#89756](https://github.com/ClickHouse/ClickHouse/pull/89756)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 当启用了查询结果缓存时,HTTP 接口会提供 `Age` 和 `Expires` 头部。`Age` 头部的存在用于指示结果是否来自缓存,而 `Expires` 头部则会在首次写入时设置。引入新的 profile events:`QueryCacheAgeSeconds`、`QueryCacheReadRows`、`QueryCacheReadBytes`、`QueryCacheWrittenRows`、`QueryCacheWrittenBytes`。[#89759](https://github.com/ClickHouse/ClickHouse/pull/89759) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 在启用 `disable_insertion_and_mutation` 时,允许向远程表和数据湖表插入数据(这对应于 ClickHouse Cloud 中的只读仓库)。[#88549](https://github.com/ClickHouse/ClickHouse/pull/88549) ([Alexander Tokmakov](https://github.com/tavplubix)). -* 新增 `SYSTEM DROP TEXT INDEX CACHES` 查询。 [#90287](https://github.com/ClickHouse/ClickHouse/pull/90287) ([Anton Popov](https://github.com/CurtizJ)). -* 默认启用 `enable_shared_storage_snapshot_in_query`,以获得更好的一致性保证。预计不会有任何负面影响。[#82634](https://github.com/ClickHouse/ClickHouse/pull/82634) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 新增 `send_profile_events` 设置,允许客户端在未使用 profile events 时减少网络流量。[#89588](https://github.com/ClickHouse/ClickHouse/pull/89588) ([Kaviraj Kanagaraj](https://github.com/kavirajk))。 -* 允许按查询粒度禁用邻近分段的后台下载。修复 [#89524](https://github.com/ClickHouse/ClickHouse/issues/89524)。[#89668](https://github.com/ClickHouse/ClickHouse/pull/89668)([tanner-bruce](https://github.com/tanner-bruce))。 -* 当复制 MergeTree 表中存在损坏磁盘时,允许执行 `FETCH PARTITION`。 [#58663](https://github.com/ClickHouse/ClickHouse/pull/58663) ([Duc Canh Le](https://github.com/canhld94)). -* 修复在 MySQL 数据库引擎中获取 MySQL 表结构时的未捕获异常。[#69358](https://github.com/ClickHouse/ClickHouse/pull/69358)([Duc Canh Le](https://github.com/canhld94))。 -* 现在所有 DDL `ON CLUSTER` 查询都会在原始查询用户的上下文中执行,以改进访问控制校验。[#71334](https://github.com/ClickHouse/ClickHouse/pull/71334) ([pufit](https://github.com/pufit)). -* 在 `Parquet` 中新增对 `UUID` 的支持,当其以逻辑类型为 `UUID` 的 `FixedString(16)` 形式表示时。[#74484](https://github.com/ClickHouse/ClickHouse/pull/74484) ([alekseev-maksim](https://github.com/alekseev-maksim))。 -* 默认在非服务器二进制程序中禁用 ThreadFuzzer。 [#89115](https://github.com/ClickHouse/ClickHouse/pull/89115) ([Raúl Marín](https://github.com/Algunenano)). -* 通过推迟其物化,使相关子查询的输入子计划能够看到查询计划优化。属于 [#79890](https://github.com/ClickHouse/ClickHouse/issues/79890) 的一部分。[#85455](https://github.com/ClickHouse/ClickHouse/pull/85455)([Dmitry Novik](https://github.com/novikd))。 -* 在 clickhouse-client 中,对于包含 `SELECT` 的 `CREATE OR REPLACE TABLE` 查询,你可以看到进度条、日志和性能统计。即使 `SELECT` 非常耗时,该查询也不会再导致超时。解决了 [#38416](https://github.com/ClickHouse/ClickHouse/issues/38416)。[#87247](https://github.com/ClickHouse/ClickHouse/pull/87247)([Diskein](https://github.com/Diskein))。 -* 为哈希函数添加对 `JSON` 和 `Dynamic` 类型的支持。解决了 [#87734](https://github.com/ClickHouse/ClickHouse/issues/87734)。[#87791](https://github.com/ClickHouse/ClickHouse/pull/87791)([Pavel Kruglov](https://github.com/Avogar))。 -* 补齐 ArrowFlight 服务器中缺失的实现部分。[#88013](https://github.com/ClickHouse/ClickHouse/pull/88013) ([Vitaly Baranov](https://github.com/vitlibar))。 -* 为 server 和 keeper 添加多种直方图指标,用于观测 keeper 请求各个执行阶段的耗时。将向 server 添加以下指标:`keeper_client_queue_duration_milliseconds`、`keeper_client_send_duration_milliseconds`、`keeper_client_roundtrip_duration_milliseconds`。将向 keeper 添加以下指标:`keeper_server_preprocess_request_duration_milliseconds`、`keeper_server_process_request_duration_milliseconds`、`keeper_server_queue_duration_milliseconds`、`keeper_server_send_duration_milliseconds`。[#88158](https://github.com/ClickHouse/ClickHouse/pull/88158)([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 -* 在 `EXPLAIN` 查询中新增 `input_headers` 选项,用于为各个步骤添加输入头信息。 [#88311](https://github.com/ClickHouse/ClickHouse/pull/88311) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* 新增 profile events,用于统计被限流器延迟的 S3 和 AzureBlobStorage 请求数量。修复了磁盘相关与非磁盘相关的 ThrottlerCount profile events 之间的不一致问题。现在 AzureBlobStorage 的 HTTP DELETE 请求不再被限流。[#88535](https://github.com/ClickHouse/ClickHouse/pull/88535) ([Sergei Trifonov](https://github.com/serxa))。 -* 为表级统计信息增加缓存功能,新增两个设置:MergeTree 表引擎设置 `refresh_statistics_interval` 表示刷新统计信息缓存的时间间隔,0 表示不创建缓存。会话级设置 `use_statistics_cache` 表示在查询中是否使用表级统计信息。有时我们希望得到更精确的统计,就会选择不使用该缓存。[#88670](https://github.com/ClickHouse/ClickHouse/pull/88670) ([Han Fei](https://github.com/hanfei1991))。 -* 修复了 `Array` 和 `Map` 的二进制反序列化,在校验大小限制时改为使用 `max_binary_array_size` 设置,而不是 `max_binary_string_size`。从而确保在读取 `RowBinary` 格式数据时能应用正确的限制。[#88744](https://github.com/ClickHouse/ClickHouse/pull/88744)([Raufs Dunamalijevs](https://github.com/rienath))。 -* 引入了一个 `LockGuardWithStopWatch` 类,并在后台线程池中用于执行合并操作。如果某个互斥量被持有超过一秒,或某个线程在一秒内始终无法获取到该互斥量,就会打印一条警告信息。将 `MergeMutateSelectedEntry` 析构函数中开销较大的代码移动到了 `finalize` 方法中,以避免在 `MergeTreeBackground` 执行器中持有锁的时间过长。 [#88898](https://github.com/ClickHouse/ClickHouse/pull/88898) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* 当在 endpoint 中未指定 region 时,自动允许在 S3 中使用需要显式开通的 AWS 区域。参考文档:[opt-in AWS regions](https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-regions.html)。[#88930](https://github.com/ClickHouse/ClickHouse/pull/88930)([Andrey Zvonov](https://github.com/zvonand))。 -* 当分页器正在运行时,用户现在可以在 `clickhouse-client` 中按 Ctrl-C 取消查询。解决了 [#80778](https://github.com/ClickHouse/ClickHouse/issues/80778)。[#88935](https://github.com/ClickHouse/ClickHouse/pull/88935)([Grigorii](https://github.com/GSokol))。 -* Web UI 即使在数值为负时也会在表格中显示条形,从而可以显示在正负两侧使用不同颜色柱形的双向条形图。[#89016](https://github.com/ClickHouse/ClickHouse/pull/89016) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 禁用 `shared_merge_tree_create_per_replica_metadata_nodes`,以减少 `SharedMergeTree` 在 Keeper 中存储的元数据量。 [#89036](https://github.com/ClickHouse/ClickHouse/pull/89036) ([Alexander Tokmakov](https://github.com/tavplubix)). -* 使 `S3Queue` 遵守服务器设置 `disable_insertion_and_mutation`。[#89048](https://github.com/ClickHouse/ClickHouse/pull/89048)([Raúl Marín](https://github.com/Algunenano))。 -* 将 25.6 版本中的默认 `s3_retry_attempts` 设置为 500,以确保在发生 S3 重新分区且 S3 在超过 10 分钟的时间里持续返回 SlowDown 错误时,备份仍然可以成功完成。[#89051](https://github.com/ClickHouse/ClickHouse/pull/89051) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 -* 现在可以使用 `kafka_compression_codec` 和 `kafka_compression_level` 设置来为两个 Kafka 引擎中的 Kafka 生产者指定压缩方式。[#89073](https://github.com/ClickHouse/ClickHouse/pull/89073)([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 -* 在 `system.columns` 中新增一列 `statistics`,用于表示在相应表上构建的统计信息类型。如果某种统计信息是自动创建的,其后缀会显示为 (auto)。[#89086](https://github.com/ClickHouse/ClickHouse/pull/89086) ([Han Fei](https://github.com/hanfei1991))。 -* 当向 `*Cluster` 表函数传递通用展开(generic expansion)而非集群名称时,改进错误提示。 [#89093](https://github.com/ClickHouse/ClickHouse/pull/89093) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* YTsaurus:允许将 `replicated_table` 用作数据源。[#89107](https://github.com/ClickHouse/ClickHouse/pull/89107) ([MikhailBurdukov](https://github.com/MikhailBurdukov))。 -* 在 CLI 中,以空白字符开头的查询将不再记录到历史中。[#89116](https://github.com/ClickHouse/ClickHouse/pull/89116)([Konstantin Bogdanov](https://github.com/thevar1able))。 -* 支持将字符串数组作为 `hasAnyTokens` 或 `hasAllTokens` 函数的输入参数。[#89124](https://github.com/ClickHouse/ClickHouse/pull/89124)([Elmi Ahmadov](https://github.com/ahmadov))。 -* 修改 plain-rewritable 类型磁盘在内存中存储元数据的方式,修复了大量与目录嵌套及其相关问题的错误。[#89125](https://github.com/ClickHouse/ClickHouse/pull/89125) ([Mikhail Artemenko](https://github.com/Michicosun))。 -* 在查询 Iceberg 表时,参与 `IN` 表达式的子查询会在进行分区裁剪分析之前被正确预计算。 [#89177](https://github.com/ClickHouse/ClickHouse/pull/89177) ([Daniil Ivanik](https://github.com/divanik)). -* 默认启用 `create_table_empty_primary_key_by_default`。这有利于提升易用性。[#89333](https://github.com/ClickHouse/ClickHouse/pull/89333) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 修复 `Backup` 数据库引擎中的错误实现,避免在执行 `SHOW CREATE DATABASE` 或从 `system.databases` 查询 `engine_full` 时生成无效查询。修复 [#89477](https://github.com/ClickHouse/ClickHouse/issues/89477)。[#89341](https://github.com/ClickHouse/ClickHouse/pull/89341)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 在早期版本中,如果在 CREATE TABLE 查询中未指定表引擎,则设置 `create_table_empty_primary_key_by_default` 不会生效。[#89342](https://github.com/ClickHouse/ClickHouse/pull/89342) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 将 `chdig` 更新至 v25.11.1 —— 包含对日志记录的重大改进以及其他多项增强([25.11 版本说明](https://github.com/azat/chdig/releases/tag/v25.11.1))。[#89957](https://github.com/ClickHouse/ClickHouse/pull/89957)([Azat Khuzhin](https://github.com/azat))。([25.10 版本说明](https://github.com/azat/chdig/releases/tag/v25.10.1)). [#89452](https://github.com/ClickHouse/ClickHouse/pull/89452)([Azat Khuzhin](https://github.com/azat))。 -* 将 Web UI 中查询文本区域的大小调整控件改为全宽,使其使用起来更方便一些。另外,此前在 iPad 上的 Safari 中无法使用浏览器原生的大小调整控件,经过此变更后,至少可以通过拖动文本区域底边来调整大小(前提是你知道这一点)。[#89457](https://github.com/ClickHouse/ClickHouse/pull/89457)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 改进了哈希 JOIN 结果生成过程中的内存跟踪。此前,在生成 JOIN 结果时的临时内存分配未被正确跟踪,可能导致超出内存限制。[#89560](https://github.com/ClickHouse/ClickHouse/pull/89560)([Azat Khuzhin](https://github.com/azat))。 -* 异步服务器日志:更早执行刷新操作,并增大默认队列大小。[#89597](https://github.com/ClickHouse/ClickHouse/pull/89597) ([Raúl Marín](https://github.com/Algunenano))。 -* 修复 `system.asynchronous_metrics` 中错误的 `FilesystemCacheBytes`(以及其他相关指标)。仅对文件系统缓存执行一次 `SYSTEM` 查询。为缓存提供一个原子视图,该视图指向 `system.filesystem_caches` 中的同一路径。 [#89640](https://github.com/ClickHouse/ClickHouse/pull/89640) ([Azat Khuzhin](https://github.com/azat)). -* 对 `system.view_refreshes` 中部分列的描述进行了澄清。[#89701](https://github.com/ClickHouse/ClickHouse/pull/89701) ([Tuan Pham Anh](https://github.com/tuanpach))。 -* 与 STS 端点交互时对 S3 凭证进行缓存,以便在不同的函数调用之间复用。缓存凭证的数量可通过 `s3_credentials_provider_max_cache_size` 控制。[#89734](https://github.com/ClickHouse/ClickHouse/pull/89734) ([Antonio Andelic](https://github.com/antonio2368))。 -* 修复在其下方存在多个表达式步骤时运行时过滤器下推的问题。[#89741](https://github.com/ClickHouse/ClickHouse/pull/89741) ([Alexander Gololobov](https://github.com/davenger)). -* 如果系统内存低于 5GB,则默认不要对可执行文件使用 mlock。 [#89751](https://github.com/ClickHouse/ClickHouse/pull/89751) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Web UI 中的类型提示信息不再溢出到表头区域。同时修复了工具提示的显示——它们不再被表头遮挡。 [#89753](https://github.com/ClickHouse/ClickHouse/pull/89753) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 在 Web UI 中显示表的属性。点击行数或字节数会打开一条从 `system.tables` 生成的查询。点击表引擎会打开 `SHOW TABLES`。[#89771](https://github.com/ClickHouse/ClickHouse/pull/89771) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 为使用不支持追加写入的磁盘的表增加对 `non_replicated_deduplication_window` 的支持。修复 [#87281](https://github.com/ClickHouse/ClickHouse/issues/87281)。[#89796](https://github.com/ClickHouse/ClickHouse/pull/89796)([Tuan Pham Anh](https://github.com/tuanpach))。 -* 在命令 `SYSTEM FLUSH ASYNC INSERT QUEUE` 中新增支持指定要刷新的表列表。[#89915](https://github.com/ClickHouse/ClickHouse/pull/89915) ([Sema Checherinda](https://github.com/CheSema))。 -* 在 `system.part_log` 中存储去重块的 ID。[#89928](https://github.com/ClickHouse/ClickHouse/pull/89928) ([Sema Checherinda](https://github.com/CheSema))。 -* 将文件系统缓存设置 `keep_free_space_remove_batch` 的默认值从 10 更改为 100,因为这样更为高效。 [#90030](https://github.com/ClickHouse/ClickHouse/pull/90030) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 引入 TTL DROP 合并类型,并且在此类合并后不再更新下一次删除 TTL 的合并计划。 [#90077](https://github.com/ClickHouse/ClickHouse/pull/90077) ([Mikhail Artemenko](https://github.com/Michicosun)). -* 在清理 S3Queue 时,为 RemoveRecursive Keeper 请求使用更低的节点数量上限。 [#90201](https://github.com/ClickHouse/ClickHouse/pull/90201) ([Antonio Andelic](https://github.com/antonio2368)). -* 使 `SYSTEM FLUSH LOGS` 查询即使在日志为空时也会等待日志表创建完成。 [#89408](https://github.com/ClickHouse/ClickHouse/pull/89408) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* 修复在分布式合并聚合中涉及多个远程分片,或存在子查询 IN 时 `rows_before_limit_at_least` 值不正确的问题。修复了 [#63280](https://github.com/ClickHouse/ClickHouse/issues/63280)。[#63511](https://github.com/ClickHouse/ClickHouse/pull/63511)([Amos Bird](https://github.com/amosbird))。 -* 修复了在执行 `INSERT INTO ... SELECT` 查询后错误显示 `0 rows in set` 的问题,并关闭了 [#47800](https://github.com/ClickHouse/ClickHouse/issues/47800)。[#79462](https://github.com/ClickHouse/ClickHouse/pull/79462)([Engel Danila](https://github.com/aaaengel))。 - -#### 缺陷修复(官方稳定版中用户可见的异常行为) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* 修复 `multiIf` 在使用常量参数时的短路求值问题。解决 [#72714](https://github.com/ClickHouse/ClickHouse/issues/72714)。[#84546](https://github.com/ClickHouse/ClickHouse/pull/84546)([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 -* 修复了在从带有子查询约束的表中查询时出现的逻辑错误。解决了 [#84190](https://github.com/ClickHouse/ClickHouse/issues/84190)。[#85575](https://github.com/ClickHouse/ClickHouse/pull/85575)([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 -* 修复了在使用包含问号的 URI 执行特殊查询时出现的错误。 [#85663](https://github.com/ClickHouse/ClickHouse/pull/85663) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* 修复了 `EXPLAIN indexes = 1` 输出中有时会缺失某些列的问题。解决了 [#86696](https://github.com/ClickHouse/ClickHouse/issues/86696)。[#87083](https://github.com/ClickHouse/ClickHouse/pull/87083)([Michael Kolupaev](https://github.com/al13n321))。 -* 修复可能出现的 `Cannot add subcolumn with parallel replicas` 错误。关闭 [#84888](https://github.com/ClickHouse/ClickHouse/issues/84888)。[#87514](https://github.com/ClickHouse/ClickHouse/pull/87514)([Pavel Kruglov](https://github.com/Avogar))。 -* 在 Parquet writer 中,以正确的格式输出 `created_by` 字符串,例如使用 `ClickHouse version 25.10.1 (build 5b1dfb14925db8901a4e9202cd5d63c11ecfbb9f)`,而不是 `ClickHouse v25.9.1.1-testing`。修复 Parquet reader 与由旧版 parquet-mr 写出的不规范文件之间的兼容性问题。[#87735](https://github.com/ClickHouse/ClickHouse/pull/87735) ([Michael Kolupaev](https://github.com/al13n321))。 -* 修复 `cramersV`、`cramersVBiasCorrected`、`theilsU` 和 `contingency` 中 φ² 计算错误导致结果不正确的问题。[#87831](https://github.com/ClickHouse/ClickHouse/pull/87831)([Nihal Z. Miaji](https://github.com/nihalzp))。 -* 修复 JSON 中读取同时包含浮点数和布尔值的混合数组时的问题。之前插入此类数据会导致异常。[#88008](https://github.com/ClickHouse/ClickHouse/pull/88008)([Pavel Kruglov](https://github.com/Avogar))。 -* 在 `TCPHandler` 中为 `QueryState` 使用 `shared_ptr`,以便在 `setProgressCallback`、`setFileProgressCallback` 和 `setBlockMarshallingCallback` 中检测状态是否无效。 [#88201](https://github.com/ClickHouse/ClickHouse/pull/88201) ([Tuan Pham Anh](https://github.com/tuanpach)). -* 修复在 `query_plan_optimize_join_order_limit` > 1 时对 CROSS JOIN 重排的逻辑错误,关闭 [#89409](https://github.com/ClickHouse/ClickHouse/issues/89409)。[#88286](https://github.com/ClickHouse/ClickHouse/pull/88286)([Vladimir Cherkasov](https://github.com/vdimir))。 -* 修复 [#88426](https://github.com/ClickHouse/ClickHouse/issues/88426):1. 禁止在 Alias 中显式定义列,列将自动从目标表中加载。这确保别名始终与目标表的模式保持一致。2. 通过 IStorage 代理更多方法。[#88552](https://github.com/ClickHouse/ClickHouse/pull/88552)([Kai Zhu](https://github.com/nauu))。 -* 在恢复后,Replicated 数据库的副本可能会长时间卡住,并不断打印类似 `Failed to marked query-0004647339 as finished (finished=No node, synced=No node)` 的消息,此问题已修复。[#88671](https://github.com/ClickHouse/ClickHouse/pull/88671) ([Alexander Tokmakov](https://github.com/tavplubix))。 -* 修复新分析器在处理子查询时可能出现的“Context has expired”问题。 [#88694](https://github.com/ClickHouse/ClickHouse/pull/88694) ([Azat Khuzhin](https://github.com/azat)). -* 修复了在将 input_format_parquet_local_file_min_bytes_for_seek 设置为 0 时,Parquet 读取器发生段错误的问题。解决了 [#78456](https://github.com/ClickHouse/ClickHouse/issues/78456)。[#88784](https://github.com/ClickHouse/ClickHouse/pull/88784)([Animesh](https://github.com/anibilthare))。 -* 修复当主键(PK)以逆序排列时 `min(PK)`/`max(PK)` 结果不正确的问题。此修复对应 [#83619](https://github.com/ClickHouse/ClickHouse/issues/83619)。[#88796](https://github.com/ClickHouse/ClickHouse/pull/88796)([Amos Bird](https://github.com/amosbird))。 -* 修复在对内部表执行 `DROP` 时,`max_table_size_to_drop` 和 `max_partition_size_to_drop` 设置的大小限制未正确生效的问题。[#88812](https://github.com/ClickHouse/ClickHouse/pull/88812) ([Nikolay Degterinsky](https://github.com/evillique))。 -* 修复了在仅以单个参数调用时 `top_k` 未遵循 threshold 参数的问题。关闭 [#88757](https://github.com/ClickHouse/ClickHouse/issues/88757)。[#88867](https://github.com/ClickHouse/ClickHouse/pull/88867)([Manuel](https://github.com/raimannma))。 -* 现在,需要使用 SSL 连接的 ArrowFlight 端点数据源(例如位于 AWS ALB 后面的端点)现已能够正确请求特定数据集。[#88868](https://github.com/ClickHouse/ClickHouse/pull/88868) ([alex-shchetkov](https://github.com/alex-shchetkov))。 -* 修复对通过 ALTER 添加的未物化 Nested(Tuple(...)) 的处理逻辑。修复了 [#83133](https://github.com/ClickHouse/ClickHouse/issues/83133)。[#88879](https://github.com/ClickHouse/ClickHouse/pull/88879)([Azat Khuzhin](https://github.com/azat))。 -* 修复函数 `reverseUTF8` 中的错误。在之前的版本中,该函数错误地反转了长度为 4 的 UTF-8 码点的字节顺序。本次修复关闭了 [#88913](https://github.com/ClickHouse/ClickHouse/issues/88913)。[#88914](https://github.com/ClickHouse/ClickHouse/pull/88914)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 修复 icebergS3Cluster 协议。iceberg 集群函数现已支持模式演进、位置删除和等值删除。解决 [#88287](https://github.com/ClickHouse/ClickHouse/issues/88287)。[#88919](https://github.com/ClickHouse/ClickHouse/pull/88919)([Yang Jiang](https://github.com/Ted-Jiang))。 -* 对在分布式表上使用并行副本的查询禁用 `parallel_replicas_support_projection`。修复 [#88899](https://github.com/ClickHouse/ClickHouse/issues/88899)。[#88922](https://github.com/ClickHouse/ClickHouse/pull/88922)([zoomxi](https://github.com/zoomxi))。 -* 在内部 `cast` 操作中传播上下文。修复了多个未能传播 `cast` 设置的问题。已关闭 [#88873](https://github.com/ClickHouse/ClickHouse/issues/88873)。已关闭 [#78025](https://github.com/ClickHouse/ClickHouse/issues/78025)。[#88929](https://github.com/ClickHouse/ClickHouse/pull/88929)([Manuel](https://github.com/raimannma))。 -* 修复在 `file()` 函数中通过 glob 模式获取文件格式的问题。解决了 [#88920](https://github.com/ClickHouse/ClickHouse/issues/88920)。[#88947](https://github.com/ClickHouse/ClickHouse/pull/88947)([Vitaly Baranov](https://github.com/vitlibar))。 -* 在使用 SQL SECURITY DEFINER 创建视图时,不再检查对 `SET DEFINER :definer` 的访问权限。[#88968](https://github.com/ClickHouse/ClickHouse/pull/88968) ([pufit](https://github.com/pufit))。 -* 修复了 `L2DistanceTransposed(vec1, vec2, p)` 中的 `LOGICAL_ERROR`,该错误出现在针对部分 `QBit` 读取的优化中:当 `p` 为 `Nullable` 时,错误地从返回类型中移除了 `Nullable`。[#88974](https://github.com/ClickHouse/ClickHouse/pull/88974) ([Raufs Dunamalijevs](https://github.com/rienath))。 -* 修复在未知目录类型时发生的崩溃。解决了 [#88819](https://github.com/ClickHouse/ClickHouse/issues/88819)。[#88987](https://github.com/ClickHouse/ClickHouse/pull/88987)([scanhex12](https://github.com/scanhex12))。 -* 已关闭 [#88081](https://github.com/ClickHouse/ClickHouse/issues/88081)。[#88988](https://github.com/ClickHouse/ClickHouse/pull/88988)([scanhex12](https://github.com/scanhex12))。 -* 修复了在分析 skipping 索引时出现的性能下降问题。[#89004](https://github.com/ClickHouse/ClickHouse/pull/89004) ([Anton Popov](https://github.com/CurtizJ)). -* 修复使用具有不存在角色的用户执行 clusterAllReplicas 时出现的 ACCESS_ENTITY_NOT_FOUND 错误。解决了 [#87670](https://github.com/ClickHouse/ClickHouse/issues/87670)。[#89068](https://github.com/ClickHouse/ClickHouse/pull/89068) ([pufit](https://github.com/pufit))。 -* 通过 `CHECK` 约束修复稀疏列的处理逻辑。Closes [#88637](https://github.com/ClickHouse/ClickHouse/issues/88637)。[#89076](https://github.com/ClickHouse/ClickHouse/pull/89076) ([Eduard Karacharov](https://github.com/korowa))。 -* 修复在 MergeTreeReaderTextIndex 中填充虚拟列时行数统计错误,导致触发 LOGICAL_ERROR 并引发崩溃的问题。[#89095](https://github.com/ClickHouse/ClickHouse/pull/89095) ([Peng Jian](https://github.com/fastio)). -* 在合并准备阶段发生异常时,防止 TTL 合并计数器泄漏。解决 [#89019](https://github.com/ClickHouse/ClickHouse/issues/89019)。[#89127](https://github.com/ClickHouse/ClickHouse/pull/89127)([save-my-heart](https://github.com/save-my-heart))。 -* 修正 base32/base58 编码和解码操作所需缓冲区大小的计算。[#89133](https://github.com/ClickHouse/ClickHouse/pull/89133)([Antonio Andelic](https://github.com/antonio2368))。 -* 修复 Distributed 中由于关闭过程与后台 INSERT 操作之间的竞争条件导致的释放后再次使用(use-after-free)问题。解决了 [#88640](https://github.com/ClickHouse/ClickHouse/issues/88640)。[#89136](https://github.com/ClickHouse/ClickHouse/pull/89136)([Azat Khuzhin](https://github.com/azat))。 -* 在解析 Parquet 时避免由可变异常引起的潜在数据竞态问题。修复 [#88385](https://github.com/ClickHouse/ClickHouse/issues/88385)。[#89174](https://github.com/ClickHouse/ClickHouse/pull/89174)([Azat Khuzhin](https://github.com/azat))。 -* 可刷新物化视图:修复了在刷新期间如果源表被完全删除时会导致的罕见服务器崩溃问题。 [#89203](https://github.com/ClickHouse/ClickHouse/pull/89203) ([Michael Kolupaev](https://github.com/al13n321)). -* 在通过 HTTP 接口传输的压缩流中途发送错误时刷新缓冲区。 [#89256](https://github.com/ClickHouse/ClickHouse/pull/89256) ([Alexander Tokmakov](https://github.com/tavplubix)). -* 防止查询掩码规则被错误地应用到 DDL 语句上。[#89272](https://github.com/ClickHouse/ClickHouse/pull/89272) ([MikhailBurdukov](https://github.com/MikhailBurdukov))。 -* 修复了在 MergeTreeReaderTextIndex 中填充虚拟列时行数统计错误导致触发 LOGICAL_ERROR 崩溃的问题。重新打开 [#89095](https://github.com/ClickHouse/ClickHouse/issues/89095)。[#89303](https://github.com/ClickHouse/ClickHouse/pull/89303)([Jimmy Aguilar Mena](https://github.com/Ergus))。 -* 修复 Statistics 的 countmin 对 LowCardinality(Nullable(String)) 的 estimate 数据类型不支持而导致的 LOGICAL_ERROR。 [#89343](https://github.com/ClickHouse/ClickHouse/pull/89343) ([Han Fei](https://github.com/hanfei1991)). -* 在 IN 函数中,如果主键列的类型与 IN 函数右侧的列类型不同,可能会发生崩溃或出现未定义行为。示例:SELECT string_column, int_column FROM test_table WHERE (string_column, int_column) IN (SELECT '5', 'not a number')。当选出的行很多且其中包含类型不兼容的行时会出现该问题。[#89367](https://github.com/ClickHouse/ClickHouse/pull/89367) ([Ilya Golshtein](https://github.com/ilejn)). -* 修复 `countIf(*)` 的参数被截断的问题。关闭 [#89372](https://github.com/ClickHouse/ClickHouse/issues/89372)。[#89373](https://github.com/ClickHouse/ClickHouse/pull/89373)([Manuel](https://github.com/raimannma))。 -* 避免在变更操作统计信息中丢失未压缩的校验和。[#89381](https://github.com/ClickHouse/ClickHouse/pull/89381) ([Azat Khuzhin](https://github.com/azat)). -* 修复 `L2DistanceTransposed(vec1, vec2, p)` 中的 `LOGICAL_ERROR`,此前针对部分 QBit 读取的优化在 `p` 为 `LowCardinality(Nullable(T))` 时错误地从返回类型中移除了 `Nullable`。解决了 [#88362](https://github.com/ClickHouse/ClickHouse/issues/88362)。[#89397](https://github.com/ClickHouse/ClickHouse/pull/89397)([Raufs Dunamalijevs](https://github.com/rienath))。 -* 修复加载由较早版本的 ClickHouse 写入、在元组本身上采用不正确稀疏序列化的表时的问题。 [#89405](https://github.com/ClickHouse/ClickHouse/pull/89405) ([Azat Khuzhin](https://github.com/azat)). -* 修复了在使用 `deduplicate_merge_projection_mode='ignore'` 时,对被 TTL 清空但仍包含非空投影的 part 的合并处理不正确的问题。解决了 [#89430](https://github.com/ClickHouse/ClickHouse/issues/89430)。[#89458](https://github.com/ClickHouse/ClickHouse/pull/89458)([Amos Bird](https://github.com/amosbird))。 -* 修复在存在重复列时 `full_sorting_merge` 连接中的逻辑错误。解决了 [#86957](https://github.com/ClickHouse/ClickHouse/issues/86957)。[#89495](https://github.com/ClickHouse/ClickHouse/pull/89495)([Vladimir Cherkasov](https://github.com/vdimir))。 -* 修复 Keeper 在启动时读取变更日志的逻辑,以处理在轮换过程中某个变更日志未被正确重命名的情况。[#89496](https://github.com/ClickHouse/ClickHouse/pull/89496) ([Antonio Andelic](https://github.com/antonio2368))。 -* 修复在使用 OR 条件且右表键唯一时产生的错误 JOIN 结果。解决 [#89391](https://github.com/ClickHouse/ClickHouse/issues/89391)。[#89512](https://github.com/ClickHouse/ClickHouse/pull/89512)([Vladimir Cherkasov](https://github.com/vdimir))。 -* 修复在使用 analyzer 且 PK IN (subquery) (v2) 时可能出现的 “Context has expired” 错误。修复 [#89433](https://github.com/ClickHouse/ClickHouse/issues/89433)。[#89527](https://github.com/ClickHouse/ClickHouse/pull/89527)([Azat Khuzhin](https://github.com/azat))。 -* 修复 MaterializedPostgreSQL 在包含大写列名的表上的复制问题。解决了 [#72363](https://github.com/ClickHouse/ClickHouse/issues/72363)。[#89530](https://github.com/ClickHouse/ClickHouse/pull/89530)([Danylo Osipchuk](https://github.com/Lenivaya))。 -* 修复当聚合函数的状态中包含 `LowCardinality(String)` 列的序列化值时可能发生的崩溃。[#89550](https://github.com/ClickHouse/ClickHouse/pull/89550) ([Pavel Kruglov](https://github.com/Avogar))。 -* 修复在启用 `enable_lazy_columns_replication` 设置时,在 JOIN 右侧使用 `ARRAY JOIN` 会导致崩溃的问题。[#89551](https://github.com/ClickHouse/ClickHouse/pull/89551) ([Pavel Kruglov](https://github.com/Avogar))。 -* 修复 `query_plan_convert_join_to_in` 的逻辑错误。解决了 [#89066](https://github.com/ClickHouse/ClickHouse/issues/89066)。[#89554](https://github.com/ClickHouse/ClickHouse/pull/89554)([Vladimir Cherkasov](https://github.com/vdimir))。 -* 修复了统计估算器在尝试估算包含列与常量类型不匹配且无法转换的条件时抛出的异常。 [#89596](https://github.com/ClickHouse/ClickHouse/pull/89596) ([Han Fei](https://github.com/hanfei1991)). -* 仅针对当前受支持的连接算法(即哈希连接)添加运行时过滤器。只有当连接算法先完整读取右侧,再读取左侧时,才能构建过滤器,但例如 FullSortingMergeJoin 会同时读取两侧。修复 [#89220](https://github.com/ClickHouse/ClickHouse/issues/89220)。[#89652](https://github.com/ClickHouse/ClickHouse/pull/89652)([Alexander Gololobov](https://github.com/davenger))。 -* 修复在使用 `sparseGrams` 分词器时并发执行 `hasAnyTokens`、`hasAllTokens` 和 `tokens` 函数所导致的问题。解决了 [#89605](https://github.com/ClickHouse/ClickHouse/issues/89605)。[#89665](https://github.com/ClickHouse/ClickHouse/pull/89665) ([Elmi Ahmadov](https://github.com/ahmadov))。 -* 修复了在某些情况下使用 JOIN 运行时过滤器时出现的逻辑错误/崩溃问题。修复了 [#89062](https://github.com/ClickHouse/ClickHouse/issues/89062)。[#89666](https://github.com/ClickHouse/ClickHouse/pull/89666)([Alexander Gololobov](https://github.com/davenger))。 -* 修复在启用 `enable_lazy_columns_replication` 时,对 Map 列执行 ARRAY JOIN 时可能出现的逻辑错误。修复 [#89705](https://github.com/ClickHouse/ClickHouse/issues/89705)。[#89717](https://github.com/ClickHouse/ClickHouse/pull/89717)([Pavel Kruglov](https://github.com/Avogar))。 -* 在取消远程查询时,避免在断开连接后继续从远程服务器读取而导致崩溃。修复了 [#89468](https://github.com/ClickHouse/ClickHouse/issues/89468)。[#89740](https://github.com/ClickHouse/ClickHouse/pull/89740)([Azat Khuzhin](https://github.com/azat))。 -* 修复投影索引读取路径中的竞态条件。解决 [#89497](https://github.com/ClickHouse/ClickHouse/issues/89497)。[#89762](https://github.com/ClickHouse/ClickHouse/pull/89762)([Peng Jian](https://github.com/fastio))。 -* 修复在读取 projection 索引时可能导致竞态条件的 bug。解决了 [#89497](https://github.com/ClickHouse/ClickHouse/issues/89497)。[#89775](https://github.com/ClickHouse/ClickHouse/pull/89775)([Amos Bird](https://github.com/amosbird))。 -* 修复了对无分区表使用 Paimon 表函数时的处理逻辑。解决了 [#89690](https://github.com/ClickHouse/ClickHouse/issues/89690)。[#89793](https://github.com/ClickHouse/ClickHouse/pull/89793)([JIaQi](https://github.com/JiaQiTang98))。 -* 修复在高级 JSON 共享数据序列化中读取路径及其子列时可能出现的逻辑错误。解决 [#89805](https://github.com/ClickHouse/ClickHouse/issues/89805)。[#89819](https://github.com/ClickHouse/ClickHouse/pull/89819)([Pavel Kruglov](https://github.com/Avogar))。 -* 修复了数据类型在二进制反序列化过程中的潜在栈溢出问题。关闭了 [#88710](https://github.com/ClickHouse/ClickHouse/issues/88710)。[#89822](https://github.com/ClickHouse/ClickHouse/pull/89822)([Pavel Kruglov](https://github.com/Avogar))。 -* 修复 `IN` 函数在处理空元组时的逻辑错误。关闭 [#88343](https://github.com/ClickHouse/ClickHouse/issues/88343)。[#89850](https://github.com/ClickHouse/ClickHouse/pull/89850)([Nihal Z. Miaji](https://github.com/nihalzp))。 -* 在旧版解析器中,为了兼容性,无论 `optimize_injective_functions_in_group_by` 设置为何值,都移除 `GROUP BY` 中的单射函数。解决 [#89854](https://github.com/ClickHouse/ClickHouse/issues/89854)。[#89870](https://github.com/ClickHouse/ClickHouse/pull/89870)([Raufs Dunamalijevs](https://github.com/rienath))。 -* 如果合并因某些原因中断,例如触发了内存限制,`merge mutate background executor` 会在未加锁的情况下对合并任务调用 `cancel`,但在这种情况下,部分生成的结果分片不会被删除(因为它尚未完成,并且在该阶段不可见)。之后,合并任务会被销毁,从而触发结果分片的销毁。这样会回滚磁盘事务,并导致数据从 S3 中被删除。最终,这一垃圾清理过程是在持有 `merge mutate background executor` 锁的情况下执行的。 [#89875](https://github.com/ClickHouse/ClickHouse/pull/89875) ([Mikhail Artemenko](https://github.com/Michicosun))。 -* 修复了在 `reverse` 和 `CAST` 函数中处理空元组时的逻辑错误,并关闭了 [#89137](https://github.com/ClickHouse/ClickHouse/issues/89137)。[#89908](https://github.com/ClickHouse/ClickHouse/pull/89908)([Nihal Z. Miaji](https://github.com/nihalzp))。 -* 现在 ClickHouse 在默认情况下会在 `SHOW DATABASES` 查询中显示数据湖目录数据库。[#89914](https://github.com/ClickHouse/ClickHouse/pull/89914) ([alesapin](https://github.com/alesapin)). -* 修复在 GCS 上进行备份时使用原生复制的问题。由于客户端克隆实现不正确,GCS 原生复制总是失败,并降级为通过手动读写数据的次优方式。[#89923](https://github.com/ClickHouse/ClickHouse/pull/89923) ([Antonio Andelic](https://github.com/antonio2368))。 -* 修复 `base32Encode` 的缓冲区大小计算。对长度小于 5 的字符串列计算 `base32Encode` 时可能会导致崩溃。修复了 [#89911](https://github.com/ClickHouse/ClickHouse/issues/89911)。[#89929](https://github.com/ClickHouse/ClickHouse/pull/89929)([Antonio Andelic](https://github.com/antonio2368))。 -* 修复 `SHOW COLUMNS` 和 `SHOW FUNCTIONS` 查询中的错误转义。[#89942](https://github.com/ClickHouse/ClickHouse/pull/89942) ([alesapin](https://github.com/alesapin)). -* 修复 MongoDB 引擎中当用户名包含 '@' 字符时的 URL 验证问题。此前,由于编码不当,包含 '@' 的用户名会导致错误。[#89970](https://github.com/ClickHouse/ClickHouse/pull/89970) ([Kai Zhu](https://github.com/nauu))。 -* 已在 [#90592](https://github.com/ClickHouse/ClickHouse/issues/90592) 中回溯:修复在远程查询中,当在 `IN` 内部使用 `ARRAY JOIN` 且启用了 `enable_lazy_columns_replication` 设置时可能发生的崩溃问题。解决了 [#90361](https://github.com/ClickHouse/ClickHouse/issues/90361)。[#89997](https://github.com/ClickHouse/ClickHouse/pull/89997)([Pavel Kruglov](https://github.com/Avogar))。 -* 已在 [#90448](https://github.com/ClickHouse/ClickHouse/issues/90448) 中回溯移植:在某些情况下修复了从文本格式的字符串推断出错误 DateTime64 值的问题。解决了 [#89368](https://github.com/ClickHouse/ClickHouse/issues/89368)。[#90013](https://github.com/ClickHouse/ClickHouse/pull/90013)([Pavel Kruglov](https://github.com/Avogar))。 -* 修复在 `BSONEachRow` 和 `MsgPack` 中由空 tuple 列引起的逻辑错误。关闭 [#89814](https://github.com/ClickHouse/ClickHouse/issues/89814)。关闭 [#71536](https://github.com/ClickHouse/ClickHouse/issues/71536)。[#90018](https://github.com/ClickHouse/ClickHouse/pull/90018)([Nihal Z. Miaji](https://github.com/nihalzp))。 -* 已在 [#90457](https://github.com/ClickHouse/ClickHouse/issues/90457) 中回溯移植:在从聚合状态和其他来源反序列化数据时进行大小检查。[#90031](https://github.com/ClickHouse/ClickHouse/pull/90031)([Raúl Marín](https://github.com/Algunenano))。 -* 修复在包含重复列的 JOIN 中可能出现的 “Invalid number of rows in Chunk” 错误。解决了 [#89411](https://github.com/ClickHouse/ClickHouse/issues/89411)。[#90053](https://github.com/ClickHouse/ClickHouse/pull/90053) ([Vladimir Cherkasov](https://github.com/vdimir))。 -* 已在 [#90588](https://github.com/ClickHouse/ClickHouse/issues/90588) 中回溯:修复了在启用 `enable_lazy_columns_replication` 设置并使用 `ARRAY JOIN` 进行插入时可能出现的错误 `Column with Array type is not represented by ColumnArray column: Replicated`。[#90066](https://github.com/ClickHouse/ClickHouse/pull/90066)([Pavel Kruglov](https://github.com/Avogar))。 -* 允许 user_files 中的文件以点开头。修复 [#89662](https://github.com/ClickHouse/ClickHouse/issues/89662)。[#90079](https://github.com/ClickHouse/ClickHouse/pull/90079)([Raúl Marín](https://github.com/Algunenano))。 -* 已在 [#90647](https://github.com/ClickHouse/ClickHouse/issues/90647) 中完成回溯移植:修复在使用较大步长时,`numbers` 系统表中的逻辑错误和取模错误,并关闭 [#83398](https://github.com/ClickHouse/ClickHouse/issues/83398)。[#90123](https://github.com/ClickHouse/ClickHouse/pull/90123)([Nihal Z. Miaji](https://github.com/nihalzp))。 -* 修复了字典参数解析中的整数溢出问题。关闭 [#78506](https://github.com/ClickHouse/ClickHouse/issues/78506)。[#90171](https://github.com/ClickHouse/ClickHouse/pull/90171)([Raúl Marín](https://github.com/Algunenano))。 -* 已在 [#90468](https://github.com/ClickHouse/ClickHouse/issues/90468) 中回溯集成:修复 Hive 分区不兼容问题,避免在 25.8 版本升级时出现问题(修复升级过程中出现的 `All hive partitioning columns must be present in the schema` 错误)。[#90202](https://github.com/ClickHouse/ClickHouse/pull/90202)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 修复了在启用查询条件缓存时,`SELECT` 查询在轻量级更新之后可能返回错误查询结果的问题。修复了 [#90176](https://github.com/ClickHouse/ClickHouse/issues/90176)。修复了 [#90054](https://github.com/ClickHouse/ClickHouse/issues/90054)。[#90204](https://github.com/ClickHouse/ClickHouse/pull/90204)([Anton Popov](https://github.com/CurtizJ))。 -* 修复在解析格式错误的分片目录名称时导致 StorageDistributed 崩溃的问题。 [#90243](https://github.com/ClickHouse/ClickHouse/pull/90243) ([Aleksandr Musorin](https://github.com/AVMusorin)). -* 在 `LogicalExpressionOptimizerPass` 中处理字符串向整数或布尔值的隐式转换。修复 [#89803](https://github.com/ClickHouse/ClickHouse/issues/89803)。[#90245](https://github.com/ClickHouse/ClickHouse/pull/90245)([Elmi Ahmadov](https://github.com/ahmadov))。 -* 修复表定义中某些 skip 索引格式不正确的问题,该问题会导致 `METADATA_MISMATCH`,并阻止在 Replicated Database 中创建新副本。[#90251](https://github.com/ClickHouse/ClickHouse/pull/90251)([Nikolay Degterinsky](https://github.com/evillique))。 -* 已在 [#90381](https://github.com/ClickHouse/ClickHouse/issues/90381) 中回溯修复:修复当某个 part 中的行数少于 `index_granularity` 时,`MergeTreeReaderIndex` 中行数不匹配的问题。解决 [#89691](https://github.com/ClickHouse/ClickHouse/issues/89691)。[#90254](https://github.com/ClickHouse/ClickHouse/pull/90254)([Peng Jian](https://github.com/fastio))。 -* 在 [#90608](https://github.com/ClickHouse/ClickHouse/issues/90608) 中进行了回溯移植:修复了在 compact 部分中从 JSON 读取子列时可能导致 `CANNOT_READ_ALL_DATA` 错误的 bug。解决 [#90264](https://github.com/ClickHouse/ClickHouse/issues/90264)。[#90302](https://github.com/ClickHouse/ClickHouse/pull/90302)([Pavel Kruglov](https://github.com/Avogar))。 -* 修复 `trim`、`ltrim`、`rtrim` 函数在使用两个参数时不起作用的问题。修复了 [#90170](https://github.com/ClickHouse/ClickHouse/issues/90170)。[#90305](https://github.com/ClickHouse/ClickHouse/pull/90305)([Nihal Z. Miaji](https://github.com/nihalzp))。 -* 已在 [#90625](https://github.com/ClickHouse/ClickHouse/issues/90625) 中回溯:修正 `index_granularity_bytes=0` 时,`prewhere` 中针对不存在的 JSON 路径可能出现的逻辑错误。解决 [#86924](https://github.com/ClickHouse/ClickHouse/issues/86924)。[#90375](https://github.com/ClickHouse/ClickHouse/pull/90375)([Pavel Kruglov](https://github.com/Avogar))。 -* 已在 [#90484](https://github.com/ClickHouse/ClickHouse/issues/90484) 中回溯:修复了 `L2DistanceTransposed` 中的一个 bug,当 `precision` 参数超出有效范围时会导致崩溃。已关闭 [#90401](https://github.com/ClickHouse/ClickHouse/issues/90401)。[#90405](https://github.com/ClickHouse/ClickHouse/pull/90405)([Raufs Dunamalijevs](https://github.com/rienath))。 -* 已在 [#90577](https://github.com/ClickHouse/ClickHouse/issues/90577) 中回溯:修正了在 `L2DistanceTransposed` 中,当使用数组引用向量(默认类型为 `Array(Float64))`)与元素类型为非 `Float64`(如 `Float32`、`BFloat16`)的 `QBit` 列一起使用时的距离计算错误。该函数现在会自动将引用向量转换为与 `QBit` 的元素类型一致。解决了 [#89976](https://github.com/ClickHouse/ClickHouse/issues/89976)。[#90485](https://github.com/ClickHouse/ClickHouse/pull/90485)([Raufs Dunamalijevs](https://github.com/rienath))。 -* 已在 [#90601](https://github.com/ClickHouse/ClickHouse/issues/90601) 中回溯移植:修复 `equals` 函数在极少数情况下导致的逻辑错误。关闭 [#88142](https://github.com/ClickHouse/ClickHouse/issues/88142)。[#90557](https://github.com/ClickHouse/ClickHouse/pull/90557)([Nihal Z. Miaji](https://github.com/nihalzp))。 -* 修复针对 `Tuple` 类型的 `CoalescingMergeTree`。 [#88828](https://github.com/ClickHouse/ClickHouse/pull/88828) ([scanhex12](https://github.com/scanhex12)). - -#### 构建/测试/打包改进 {#buildtestingpackaging-improvement} - -* 修复在 Docker 中运行带有 initdb SQL 脚本且重写了 TCP 端口的 ClickHouse 时出现的 “Connection refused” 错误。[#88042](https://github.com/ClickHouse/ClickHouse/pull/88042) ([Grigorii](https://github.com/GSokol)). -* 试验性支持 e2k 作为 ClickHouse 的新平台。[#90159](https://github.com/ClickHouse/ClickHouse/pull/90159) ([Ramil Sattarov](https://github.com/r-a-sattarov)). -* 从 CMake 中移除剩余的 `FindPackage` 用法。构建过程不应依赖系统软件包。[#89380](https://github.com/ClickHouse/ClickHouse/pull/89380) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 在 CMake 配置阶段的构建中使用编译器缓存(例如用于 `protoc`)。[#89613](https://github.com/ClickHouse/ClickHouse/pull/89613) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* 使用 FreeBSD 13.4 sysroot。[#89617](https://github.com/ClickHouse/ClickHouse/pull/89617) ([Konstantin Bogdanov](https://github.com/thevar1able)). - -### ClickHouse 25.10 发行版,2025-10-31 {#2510} - -#### 不向后兼容的变更 {#backward-incompatible-change} - -* 将默认的 `schema_inference_make_columns_nullable` 设置修改为根据 Parquet/ORC/Arrow 元数据中的列 `Nullable` 信息来决定是否可为空,而不是将所有列都设为 Nullable。对文本格式无变化。[#71499](https://github.com/ClickHouse/ClickHouse/pull/71499) ([Michael Kolupaev](https://github.com/al13n321)). -* 查询结果缓存现在会忽略 `log_comment` 设置,因此仅在查询中更改 `log_comment` 将不再被视为强制缓存未命中。存在一种小概率情况,即用户可能有意通过改变 `log_comment` 来对缓存进行分段。此更改会改变该行为,因此与之前版本不兼容。请使用 `query_cache_tag` 设置来实现这一目的。 [#79878](https://github.com/ClickHouse/ClickHouse/pull/79878) ([filimonov](https://github.com/filimonov)). -* 在之前的版本中,对包含与运算符实现函数同名的表函数的查询,其格式化结果不一致。修复了 [#81601](https://github.com/ClickHouse/ClickHouse/issues/81601)。修复了 [#81977](https://github.com/ClickHouse/ClickHouse/issues/81977)。修复了 [#82834](https://github.com/ClickHouse/ClickHouse/issues/82834)。修复了 [#82835](https://github.com/ClickHouse/ClickHouse/issues/82835)。EXPLAIN SYNTAX 查询将不会总是对运算符进行格式化——新的行为更好地体现了“解释语法”这一目的。`clickhouse-format`、`formatQuery` 及类似工具在查询中以函数调用形式使用这些运算符实现函数时,将不会再把它们格式化为运算符。[#82825](https://github.com/ClickHouse/ClickHouse/pull/82825)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 禁止在 `JOIN` 键中使用 `Dynamic` 类型。当 `Dynamic` 类型的值与非 `Dynamic` 类型的值进行比较时,可能会导致意外结果。最好将 `Dynamic` 列转换为所需的类型。[#86358](https://github.com/ClickHouse/ClickHouse/pull/86358) ([Pavel Kruglov](https://github.com/Avogar)). -* `storage_metadata_write_full_object_key` 服务器选项默认开启,目前无法关闭。这是一个向后兼容的变更,仅供注意。此变更仅与 25.x 版本向前兼容。这意味着,如果你需要回滚到旧版本,只能降级到 25.x 系列中的任意版本。[#87335](https://github.com/ClickHouse/ClickHouse/pull/87335) ([Sema Checherinda](https://github.com/CheSema))。 -* 将 `replicated_deduplication_window_seconds` 从一周降低到一小时,以便在插入速率较低时减少在 ZooKeeper 上存储的 znode 数量。[#87414](https://github.com/ClickHouse/ClickHouse/pull/87414) ([Sema Checherinda](https://github.com/CheSema))。 -* 将设置 `query_plan_use_new_logical_join_step` 重命名为 `query_plan_use_logical_join_step`。[#87679](https://github.com/ClickHouse/ClickHouse/pull/87679)([Vladimir Cherkasov](https://github.com/vdimir))。 -* 新的语法使文本索引的 tokenizer 参数配置更加灵活。[#87997](https://github.com/ClickHouse/ClickHouse/pull/87997)([Elmi Ahmadov](https://github.com/ahmadov))。 -* 将函数 `searchAny` 和 `searchAll` 重命名为 `hasAnyTokens` 和 `hasAllTokens`,以更好地与现有函数 `hasToken` 保持一致。[#88109](https://github.com/ClickHouse/ClickHouse/pull/88109) ([Robert Schulze](https://github.com/rschu1ze))。 -* 从文件系统缓存中移除 `cache_hits_threshold`。该特性是在我们引入 SLRU 缓存策略之前由一位外部贡献者添加的,而现在我们已经有了 SLRU 缓存策略,再同时支持这两者就没有意义了。[#88344](https://github.com/ClickHouse/ClickHouse/pull/88344)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 对 `min_free_disk_ratio_to_perform_insert` 和 `min_free_disk_bytes_to_perform_insert` 设置的行为做了两处小改动:- 使用未预留(unreserved)字节而不是可用(available)字节来决定是否应拒绝一次插入。如果针对后台合并(background merges)和变更(mutations)的预留空间相对于配置的阈值来说很小,这一点可能并不关键,但这样更为准确。- 不再将这些设置应用于 system 表。这样做的原因是我们仍然希望像 `query_log` 这样的表能够被更新,这对调试非常有帮助。写入 system 表的数据通常相对于实际数据来说很小,因此在合理的 `min_free_disk_ratio_to_perform_insert` 阈值下,它们应该能够在更长时间内继续写入。[#88468](https://github.com/ClickHouse/ClickHouse/pull/88468) ([c-end](https://github.com/c-end)). -* 为 Keeper 的内部复制启用异步模式。Keeper 在保持原有行为不变的同时,有望带来性能提升。如果你是从 23.9 之前的版本升级,则需要先升级到 23.9+,然后再升级到 25.10+。你也可以在升级前将 `keeper_server.coordination_settings.async_replication` 设置为 0,并在升级完成后再将其启用。[#88515](https://github.com/ClickHouse/ClickHouse/pull/88515) ([Antonio Andelic](https://github.com/antonio2368))。 - -#### 新功能 {#new-feature} - -* 新增对负值 `LIMIT` 和负值 `OFFSET` 的支持。修复了 [#28913](https://github.com/ClickHouse/ClickHouse/issues/28913)。[#88411](https://github.com/ClickHouse/ClickHouse/pull/88411)([Nihal Z. Miaji](https://github.com/nihalzp))。 -* `Alias` 引擎会创建指向另一张表的代理。所有读写操作都会被转发到目标表,而别名本身不存储任何数据,只维护对目标表的引用。[#87965](https://github.com/ClickHouse/ClickHouse/pull/87965)([Kai Zhu](https://github.com/nauu))。 -* 已全面支持运算符 `IS NOT DISTINCT FROM`(`<=>`)。[#88155](https://github.com/ClickHouse/ClickHouse/pull/88155)([simonmichal](https://github.com/simonmichal))。 -* 增加了在所有适用的 `MergeTree` 表的列上自动创建统计信息的功能。新增了表级设置 `auto_statistics_types`,用于存储要创建的统计信息类型(以逗号分隔,例如 `auto_statistics_types = 'minmax, uniq, countmin'`)。 [#87241](https://github.com/ClickHouse/ClickHouse/pull/87241) ([Anton Popov](https://github.com/CurtizJ))。 -* 新的文本布隆过滤器索引 `sparse_gram`。[#79985](https://github.com/ClickHouse/ClickHouse/pull/79985)([scanhex12](https://github.com/scanhex12))。 -* 新增 `conv` 函数用于在不同进制之间转换数字,目前支持的进制范围为 `2 到 36`。[#83058](https://github.com/ClickHouse/ClickHouse/pull/83058) ([hp](https://github.com/hp77-creator))。 -* 新增对 `LIMIT BY ALL` 语法的支持。类似于 `GROUP BY ALL` 和 `ORDER BY ALL`,`LIMIT BY ALL` 会自动展开为将 SELECT 子句中所有非聚合表达式用作 LIMIT BY 键。例如,`SELECT id, name, count(*) FROM table GROUP BY id LIMIT 1 BY ALL` 等价于 `SELECT id, name, count(*) FROM table GROUP BY id LIMIT 1 BY id, name`。当需要按所有已选择的非聚合列进行限制而又不想显式列出它们时,此特性能简化查询。修复并关闭了 [#59152](https://github.com/ClickHouse/ClickHouse/issues/59152)。[#84079](https://github.com/ClickHouse/ClickHouse/pull/84079)([Surya Kant Ranjan](https://github.com/iit2009046))。 -* 支持在 ClickHouse 中查询 Apache Paimon。此集成将使 ClickHouse 用户能够直接与 Paimon 的数据湖存储交互。[#84423](https://github.com/ClickHouse/ClickHouse/pull/84423) ([JIaQi](https://github.com/JiaQiTang98))。 -* 新增了 `studentTTestOneSample` 聚合函数。[#85436](https://github.com/ClickHouse/ClickHouse/pull/85436) ([Dylan](https://github.com/DylanBlakemore))。 -* 聚合函数 `quantilePrometheusHistogram`,其参数为直方图桶的上界和累积值,并在包含所求分位数位置的桶内,在该桶的上、下界之间执行线性插值。其行为与 PromQL 中针对经典直方图的 `histogram_quantile` 函数类似。[#86294](https://github.com/ClickHouse/ClickHouse/pull/86294)([Stephen Chi](https://github.com/stephchi0))。 -* 新增用于 Delta Lake 元数据文件的系统表。[#87263](https://github.com/ClickHouse/ClickHouse/pull/87263) ([scanhex12](https://github.com/scanhex12)). -* 添加 `ALTER TABLE REWRITE PARTS` 语句——使用所有新的设置从头重写表的各个数据 part(因为有些设置,例如 `use_const_adaptive_granularity`,只会应用于新的 part)。 [#87774](https://github.com/ClickHouse/ClickHouse/pull/87774) ([Azat Khuzhin](https://github.com/azat))。 -* 添加 `SYSTEM RECONNECT ZOOKEEPER` 命令,用于强制 ZooKeeper 断开并重新连接([https://github.com/ClickHouse/ClickHouse/issues/87317](https://github.com/ClickHouse/ClickHouse/issues/87317))。[#87318](https://github.com/ClickHouse/ClickHouse/pull/87318)([Pradeep Chhetri](https://github.com/chhetripradeep))。 -* 通过设置 `max_named_collection_num_to_warn` 和 `max_named_collection_num_to_throw` 来限制命名集合的数量。新增度量指标 `NamedCollection` 和错误 `TOO_MANY_NAMED_COLLECTIONS`。 [#87343](https://github.com/ClickHouse/ClickHouse/pull/87343) ([Pablo Marcos](https://github.com/pamarcos)). -* 添加了经过优化的 `startsWith` 和 `endsWith` 函数的不区分大小写变体:`startsWithCaseInsensitive`、`endsWithCaseInsensitive`、`startsWithCaseInsensitiveUTF8` 和 `endsWithCaseInsensitiveUTF8`。 [#87374](https://github.com/ClickHouse/ClickHouse/pull/87374) ([Guang Zhao](https://github.com/zheguang))。 -* 添加了一种方式,可在 SQL 中通过服务器配置的 "resources_and_workloads" 部分提供 `WORKLOAD` 和 `RESOURCE` 定义。 [#87430](https://github.com/ClickHouse/ClickHouse/pull/87430) ([Sergei Trifonov](https://github.com/serxa))。 -* 新增一个名为 `min_level_for_wide_part` 的表设置,用于指定将某个 part 创建为 wide part 所需的最小 level。 [#88179](https://github.com/ClickHouse/ClickHouse/pull/88179) ([Christoph Wurm](https://github.com/cwurm)). -* 在 Keeper 客户端中新增 `cp`-`cpr` 和 `mv`-`mvr` 命令的递归版本。[#88570](https://github.com/ClickHouse/ClickHouse/pull/88570) ([Mikhail Artemenko](https://github.com/Michicosun))。 -* 添加了会话级设置,用于指定在插入时不进行物化的 skip 索引列表(`exclude_materialize_skip_indexes_on_insert`)。添加了 MergeTree 表级设置,用于指定在合并期间不进行物化的 skip 索引列表(`exclude_materialize_skip_indexes_on_merge`)。[#87252](https://github.com/ClickHouse/ClickHouse/pull/87252)([George Larionov](https://github.com/george-larionov))。 - -#### 实验性功能 {#experimental-feature} - -* 实现了以比特切片格式存储向量的 `QBit` 数据类型,以及用于近似向量搜索的 `L2DistanceTransposed` 函数,其精度与速度的权衡由一个参数控制。[#87922](https://github.com/ClickHouse/ClickHouse/pull/87922) ([Raufs Dunamalijevs](https://github.com/rienath))。 -* `searchAll` 和 `searchAny` 函数现在可以用于不包含文本列的列。在这些情况下,它们会使用默认分词器。[#87722](https://github.com/ClickHouse/ClickHouse/pull/87722) ([Jimmy Aguilar Mena](https://github.com/Ergus))。 - -#### 性能优化 {#performance-improvement} - -* 在 JOIN 和 ARRAY JOIN 中实现惰性列复制。在某些输出格式中,避免将 Sparse 和 Replicated 等特殊列表示形式转换为完整列,从而避免在内存中进行不必要的数据拷贝。[#88752](https://github.com/ClickHouse/ClickHouse/pull/88752)([Pavel Kruglov](https://github.com/Avogar))。 -* 为 MergeTree 表中的顶层 String 列添加可选的 `.size` 子列序列化,以提高压缩率并实现对子列的高效访问。引入新的 MergeTree 设置项,用于序列化版本控制以及对空字符串的表达式优化。[#82850](https://github.com/ClickHouse/ClickHouse/pull/82850)([Amos Bird](https://github.com/amosbird))。 -* 支持 Iceberg 的顺序读取。 [#88454](https://github.com/ClickHouse/ClickHouse/pull/88454) ([scanhex12](https://github.com/scanhex12)). -* 通过在运行时从右侧子树构建 Bloom 过滤器,并将该过滤器传递给左侧子树中的扫描操作,可加速部分 JOIN 查询。这对于如下查询可能有益:`SELECT avg(o_totalprice) FROM orders, customer, nation WHERE c_custkey = o_custkey AND c_nationkey=n_nationkey AND n_name = 'FRANCE'`。 [#84772](https://github.com/ClickHouse/ClickHouse/pull/84772) ([Alexander Gololobov](https://github.com/davenger))。 -* 通过重构查询条件缓存(Query Condition Cache,QCC)与索引分析的顺序和集成方式,提升了查询性能。现在会在主键和跳过索引分析之前先应用 QCC 过滤,从而减少不必要的索引计算。索引分析已扩展为支持多个范围过滤,其过滤结果现在也会回写到 QCC 中。这显著加速了在执行时间中索引分析占主导的查询——尤其是那些依赖跳过索引(例如向量索引或倒排索引)的查询。[#82380](https://github.com/ClickHouse/ClickHouse/pull/82380)([Amos Bird](https://github.com/amosbird))。 -* 多项微小优化,用于加速小型查询。[#83096](https://github.com/ClickHouse/ClickHouse/pull/83096)([Raúl Marín](https://github.com/Algunenano))。 -* 在原生协议中压缩日志和 profile 事件。在具有 100+ 副本的集群上,未压缩的 profile 事件会占用 1..10 MB/秒,并且在网络连接较慢时进度条会变得很慢。这解决了 [#82533](https://github.com/ClickHouse/ClickHouse/issues/82533)。[#83586](https://github.com/ClickHouse/ClickHouse/pull/83586)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 通过使用 [StringZilla](https://github.com/ashvardanian/StringZilla) 库,在可用时利用 SIMD CPU 指令,提升区分大小写的字符串搜索(如 `WHERE URL LIKE '%google%'` 之类的过滤操作)的性能。[#84161](https://github.com/ClickHouse/ClickHouse/pull/84161)([Raúl Marín](https://github.com/Algunenano))。 -* 在对包含类型为 `SimpleAggregateFunction(anyLast)` 的列的 AggregatingMergeTree 表使用 FINAL 进行查询时,减少内存分配和内存拷贝。[#84428](https://github.com/ClickHouse/ClickHouse/pull/84428) ([Duc Canh Le](https://github.com/canhld94))。 -* 提供了将 JOIN 谓词中的析取(OR)条件下推的逻辑。例如:在 TPC-H Q7 中,对于两个表 n1 和 n2 上的条件 `(n1.n_name = 'FRANCE' AND n2.n_name = 'GERMANY') OR (n1.n_name = 'GERMANY' AND n2.n_name = 'FRANCE')`,我们为每个表分别提取部分过滤条件:对于 n1 提取 `n1.n_name = 'FRANCE' OR n1.n_name = 'GERMANY'`,对于 n2 提取 `n2.n_name = 'GERMANY' OR n2.n_name = 'FRANCE'`。[#84735](https://github.com/ClickHouse/ClickHouse/pull/84735) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* 通过启用新的默认设置 `optimize_rewrite_like_perfect_affix`,提升带前缀或后缀匹配的 `LIKE` 表达式性能。 [#85920](https://github.com/ClickHouse/ClickHouse/pull/85920) ([Guang Zhao](https://github.com/zheguang)). -* 修复在按多个字符串/数字列进行分组时,由于序列化键过大导致的性能下降问题。这是对 [#83884](https://github.com/ClickHouse/ClickHouse/pull/83884) 的后续改进。[#85924](https://github.com/ClickHouse/ClickHouse/pull/85924)([李扬](https://github.com/taiyang-li))。 -* 新增 `joined_block_split_single_row` 设置,用于在每个键对应大量匹配项的哈希连接中降低内存使用。这样即使是单个左表行的所有匹配结果,也可以被拆分成多个块,这在左表一行匹配右表成千上万甚至数百万行时尤其有用。之前,所有匹配项都必须一次性在内存中物化。该改动可降低峰值内存占用,但可能会增加 CPU 开销。[#87913](https://github.com/ClickHouse/ClickHouse/pull/87913)([Vladimir Cherkasov](https://github.com/vdimir))。 -* 改进 SharedMutex,在大量并发查询场景下提升性能。[#87491](https://github.com/ClickHouse/ClickHouse/pull/87491) ([Raúl Marín](https://github.com/Algunenano))。 -* 针对主要由低频 token 构成的文档,提升了构建文本索引的性能。 [#87546](https://github.com/ClickHouse/ClickHouse/pull/87546) ([Anton Popov](https://github.com/CurtizJ))。 -* 加速 `Field` 析构函数的常见路径(在大量小型查询场景下提升性能)。 [#87631](https://github.com/ClickHouse/ClickHouse/pull/87631) ([Raúl Marín](https://github.com/Algunenano)). -* 在 JOIN 优化过程中跳过对运行时哈希表统计信息的重新计算(提升所有包含 JOIN 的查询的性能)。新增 profile 事件 `JoinOptimizeMicroseconds` 和 `QueryPlanOptimizeMicroseconds`。 [#87683](https://github.com/ClickHouse/ClickHouse/pull/87683) ([Vladimir Cherkasov](https://github.com/vdimir)). -* 在 MergeTreeLazy 读取器中启用将标记保存在缓存中,并避免直接进行 IO 操作。这样可以提升带有 ORDER BY 且 LIMIT 较小的查询性能。[#87989](https://github.com/ClickHouse/ClickHouse/pull/87989) ([Nikita Taranov](https://github.com/nickitat))。 -* 在带有 `is_deleted` 列的 `ReplacingMergeTree` 表上使用 `FINAL` 子句的 SELECT 查询现在执行得更快,这是因为对两项现有优化的并行化进行了改进:1. 对仅包含单个 `part` 的分区应用 `do_not_merge_across_partitions_select_final` 优化;2. 将表中其他选中的范围拆分为 `intersecting / non-intersecting`,且只有相交的范围需要经过 `FINAL` 合并转换。[#88090](https://github.com/ClickHouse/ClickHouse/pull/88090)([Shankar Iyer](https://github.com/shankar-iyer))。 -* 降低未使用 fail point 时(调试未启用时的默认代码路径)的影响。[#88196](https://github.com/ClickHouse/ClickHouse/pull/88196) ([Raúl Marín](https://github.com/Algunenano)). -* 避免在按 `uuid` 过滤时对 `system.tables` 进行全表扫描(当你只从日志或 ZooKeeper 路径中获得 UUID 时,这会很有用)。[#88379](https://github.com/ClickHouse/ClickHouse/pull/88379) ([Azat Khuzhin](https://github.com/azat))。 -* 优化了函数 `tokens`、`hasAllTokens`、`hasAnyTokens` 的性能。 [#88416](https://github.com/ClickHouse/ClickHouse/pull/88416) ([Anton Popov](https://github.com/CurtizJ)). -* 内联 `AddedColumns::appendFromBlock`,以在某些情况下略微提升 JOIN 性能。[#88455](https://github.com/ClickHouse/ClickHouse/pull/88455) ([Nikita Taranov](https://github.com/nickitat))。 -* 通过使用 `system.completions` 而不是执行多个 system 表的查询,可以让客户端自动补全更快且更一致。[#84694](https://github.com/ClickHouse/ClickHouse/pull/84694) ([|2ustam](https://github.com/RuS2m))。 -* 添加新的 `dictionary_block_frontcoding_compression` 文本索引参数,用于控制字典压缩。默认情况下,该参数处于启用状态,并使用 `front-coding` 压缩。[#87175](https://github.com/ClickHouse/ClickHouse/pull/87175) ([Elmi Ahmadov](https://github.com/ahmadov)). -* 在插入到物化视图之前,会根据 `min_insert_block_size_rows_for_materialized_views` 和 `min_insert_block_size_bytes_for_materialized_views` 设置,先将来自所有线程的数据进行合并。此前,如果启用了 `parallel_view_processing`,则每个线程在向某个特定物化视图插入数据时都会独立进行合并,这可能会导致生成的分片数量更多。[#87280](https://github.com/ClickHouse/ClickHouse/pull/87280) ([Antonio Andelic](https://github.com/antonio2368))。 -* 添加 `temporary_files_buffer_size` 设置,以控制临时文件写入器的缓冲区大小。* 优化 `scatter` 操作在 `LowCardinality` 列上的内存消耗(例如在 Grace Hash Join 中使用时)。[#88237](https://github.com/ClickHouse/ClickHouse/pull/88237) ([Vladimir Cherkasov](https://github.com/vdimir))。 -* 增加了通过并行副本直接读取文本索引的支持。提升了从对象存储读取文本索引时的性能。[#88262](https://github.com/ClickHouse/ClickHouse/pull/88262) ([Anton Popov](https://github.com/CurtizJ)). -* 对 Data Lakes 目录中表的查询将使用并行副本进行分布式处理。 [#88273](https://github.com/ClickHouse/ClickHouse/pull/88273) ([scanhex12](https://github.com/scanhex12)). -* 用于调优后台合并算法的内部启发式规则,名为 "to_remove_small_parts_at_right",将在计算合并区间得分之前执行。在此之前,合并选择器会选择一个宽范围的合并,而在此之后,它会过滤其后缀。修复:[#85374](https://github.com/ClickHouse/ClickHouse/issues/85374)。[#88736](https://github.com/ClickHouse/ClickHouse/pull/88736)([Mikhail Artemenko](https://github.com/Michicosun))。 - -#### 改进 {#improvement} - -* 现在,函数 `generateSerialID` 已支持为序列名称使用非常量参数。关闭了 [#83750](https://github.com/ClickHouse/ClickHouse/issues/83750)。[#88270](https://github.com/ClickHouse/ClickHouse/pull/88270)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 为 `generateSerialID` 函数新增了可选的 `start_value` 参数,用于为新序列指定自定义起始值。 [#88085](https://github.com/ClickHouse/ClickHouse/pull/88085) ([Manuel](https://github.com/raimannma)). -* 在 `clickhouse-format` 中新增 `--semicolons_inline` 选项,用于在格式化查询时将分号放在最后一行末尾,而不是单独换行。[#88018](https://github.com/ClickHouse/ClickHouse/pull/88018) ([Jan Rada](https://github.com/ZelvaMan))。 -* 在 Keeper 中覆盖配置时,支持配置服务器级限流。关闭 [#73964](https://github.com/ClickHouse/ClickHouse/issues/73964)。[#74066](https://github.com/ClickHouse/ClickHouse/pull/74066)([JIaQi](https://github.com/JiaQiTang98))。 -* `mannWhitneyUTest` 在两个样本都只包含相同值时不再抛出异常。现在会返回一个有效结果,与 SciPy 保持一致。这解决了:[#79814](https://github.com/ClickHouse/ClickHouse/issues/79814)。[#80009](https://github.com/ClickHouse/ClickHouse/pull/80009)([DeanNeaht](https://github.com/DeanNeaht))。 -* 在提交元数据事务后,重写磁盘对象存储的事务会删除之前的远程 blob。 [#81787](https://github.com/ClickHouse/ClickHouse/pull/81787) ([Sema Checherinda](https://github.com/CheSema))。 -* 修复了在对冗余相等表达式进行优化时,当优化前后结果类型的 `LowCardinality` 不一致时的优化过程。 [#82651](https://github.com/ClickHouse/ClickHouse/pull/82651) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* 当 HTTP 客户端在设置 `Expect: 100-continue` 的同时额外设置请求头 `X-ClickHouse-100-Continue: defer` 时,ClickHouse 在配额验证通过之前不会向客户端发送 `100 Continue` 响应,从而避免为那些最终会被丢弃的请求体白白浪费网络带宽。这主要适用于 INSERT 查询,此时查询本身可以通过 URL 查询字符串发送,而数据则放在请求体中。如果在未发送完整请求体之前中止请求,将会阻止在 HTTP/1.1 中复用该连接,但为建立新连接所引入的额外延迟,相比在处理大批量数据的 INSERT 时的总耗时而言通常可以忽略不计。 [#84304](https://github.com/ClickHouse/ClickHouse/pull/84304) ([c-end](https://github.com/c-end))。 -* 在使用基于 S3 存储的 `DATABASE ENGINE = Backup` 时,对日志中的 S3 凭证进行掩码处理。 [#85336](https://github.com/ClickHouse/ClickHouse/pull/85336) ([Kenny Sun](https://github.com/hwabis)). -* 通过推迟对其进行物化,使查询计划优化对关联子查询的输入子计划可见。属于 [#79890](https://github.com/ClickHouse/ClickHouse/issues/79890)。[#85455](https://github.com/ClickHouse/ClickHouse/pull/85455)([Dmitry Novik](https://github.com/novikd))。 -* 对 `SYSTEM DROP DATABASE REPLICA` 的变更: - 当连同数据库一起删除或删除整个副本时:现在还会为该数据库中的每个表删除副本 - 如果提供了 `WITH TABLES`:为每个存储删除副本 - 否则逻辑保持不变,仅删除数据库级别的副本 - 当使用 Keeper 路径删除数据库副本时: - 如果提供了 `WITH TABLES`: - 将数据库恢复为 `Atomic` - 根据 Keeper 中的语句恢复 RMT 表 - 删除该数据库(恢复的表也会被删除) - 否则,仅在提供的 Keeper 路径上删除副本。 [#85637](https://github.com/ClickHouse/ClickHouse/pull/85637) ([Tuan Pham Anh](https://github.com/tuanpach)). -* 修复在包含 `materialize` 函数时 TTL 格式不一致的问题。解决了 [#82828](https://github.com/ClickHouse/ClickHouse/issues/82828)。[#85749](https://github.com/ClickHouse/ClickHouse/pull/85749)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* Iceberg 表的状态不再存储在存储对象中。这应当使 ClickHouse 中的 Iceberg 能够安全支持并发查询。[#86062](https://github.com/ClickHouse/ClickHouse/pull/86062) ([Daniil Ivanik](https://github.com/divanik))。 -* 将 S3Queue 有序模式下的 bucket 锁改为持久化模式,类似于在 `use_persistent_processing_nodes = 1` 情况下的 processing nodes。在测试中加入 Keeper 故障注入。 [#86628](https://github.com/ClickHouse/ClickHouse/pull/86628) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 当用户在格式名称中出现拼写错误时提供提示。修复 [#86761](https://github.com/ClickHouse/ClickHouse/issues/86761)。[#87092](https://github.com/ClickHouse/ClickHouse/pull/87092)([flynn](https://github.com/ucasfl))。 -* 当不存在任何 projection 时,远程副本将跳过索引分析。 [#87096](https://github.com/ClickHouse/ClickHouse/pull/87096) ([zoomxi](https://github.com/zoomxi))。 -* 允许禁用 ytsaurus 表的 UTF-8 编码。[#87150](https://github.com/ClickHouse/ClickHouse/pull/87150) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). -* 默认禁用 `s3_slow_all_threads_after_retryable_error`。 [#87198](https://github.com/ClickHouse/ClickHouse/pull/87198) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* 将表函数 `arrowflight` 重命名为 `arrowFlight`。[#87249](https://github.com/ClickHouse/ClickHouse/pull/87249) ([Vitaly Baranov](https://github.com/vitlibar))。 -* 更新了 `clickhouse-benchmark`,使其在命令行参数中可以使用 `-` 替代 `_`。 [#87251](https://github.com/ClickHouse/ClickHouse/pull/87251) ([Ahmed Gouda](https://github.com/0xgouda)). -* 在信号处理期间,将对 `system.crash_log` 的刷新改为同步执行。 [#87253](https://github.com/ClickHouse/ClickHouse/pull/87253) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* 新增了设置 `inject_random_order_for_select_without_order_by`,会在缺少 `ORDER BY` 子句的顶层 `SELECT` 查询中自动注入 `ORDER BY rand()`。 [#87261](https://github.com/ClickHouse/ClickHouse/pull/87261) ([Rui Zhang](https://github.com/zhangruiddn)) -* 改进 `joinGet` 错误信息,使其能够准确说明 `join_keys` 的数量与 `right_table_keys` 的数量不一致。[#87279](https://github.com/ClickHouse/ClickHouse/pull/87279) ([Isak Ellmer](https://github.com/spinojara))。 -* 在写入事务期间新增支持检查任意 Keeper 节点的 stat,有助于检测 ABA 问题。 [#87282](https://github.com/ClickHouse/ClickHouse/pull/87282) ([Mikhail Artemenko](https://github.com/Michicosun)). -* 将高负载的 ytsaurus 请求重定向到高负载代理。 [#87342](https://github.com/ClickHouse/ClickHouse/pull/87342) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). -* 修复了在基于磁盘事务的元数据中,针对 unlink/rename/removeRecursive/removeDirectory 等操作的回滚以及硬链接计数在各种工作负载下可能出现的问题,并简化了相关接口,使其更加通用,以便在其他元数据存储中复用。[#87358](https://github.com/ClickHouse/ClickHouse/pull/87358) ([Mikhail Artemenko](https://github.com/Michicosun)). -* 新增 `keeper_server.tcp_nodelay` 配置参数,以便在 Keeper 中禁用 `TCP_NODELAY`。[#87363](https://github.com/ClickHouse/ClickHouse/pull/87363) (Copilot)。 -* 在 `clickhouse-benchmarks` 中支持 `--connection`。其行为与 `clickhouse-client` 中的相同,你可以在客户端的 `config.xml`/`config.yaml` 的 `connections_credentials` 路径下指定预定义连接,从而避免通过命令行参数显式指定用户/密码。为 `clickhouse-benchmark` 增加对 `--accept-invalid-certificate` 的支持。[#87370](https://github.com/ClickHouse/ClickHouse/pull/87370) ([Azat Khuzhin](https://github.com/azat)). -* 现在,设置 `max_insert_threads` 将会在 Iceberg 表上生效。[#87407](https://github.com/ClickHouse/ClickHouse/pull/87407) ([alesapin](https://github.com/alesapin))。 -* 向 `PrometheusMetricsWriter` 添加直方图和维度型指标。这样,`PrometheusRequestHandler` 处理器将具备所有必要指标,可用于在云环境中进行可靠且低开销的指标采集。[#87521](https://github.com/ClickHouse/ClickHouse/pull/87521) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 -* 函数 `hasToken` 现在对空 token 返回 0 个匹配(此前会抛出异常)。[#87564](https://github.com/ClickHouse/ClickHouse/pull/87564) ([Jimmy Aguilar Mena](https://github.com/Ergus))。 -* 为 `Array` 和 `Map`(`mapKeys` 和 `mapValues`)类型的值添加文本索引支持。支持的函数为 `mapContainsKey` 和 `has`。[#87602](https://github.com/ClickHouse/ClickHouse/pull/87602) ([Elmi Ahmadov](https://github.com/ahmadov))。 -* 新增了一个 `ZooKeeperSessionExpired` 指标,用于统计已过期的全局 ZooKeeper 会话数量。[#87613](https://github.com/ClickHouse/ClickHouse/pull/87613) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 -* 在进行服务端(原生)复制到备份目标时,使用带有备份专用设置(例如 backup_slow_all_threads_after_retryable_s3_error)的 S3 存储客户端。弃用 s3_slow_all_threads_after_retryable_error。 [#87660](https://github.com/ClickHouse/ClickHouse/pull/87660) ([Julia Kartseva](https://github.com/jkartseva)). -* 修复在使用实验性功能 `make_distributed_plan` 对查询计划进行序列化时,对设置项 `max_joined_block_size_rows` 和 `max_joined_block_size_bytes` 的错误处理。 [#87675](https://github.com/ClickHouse/ClickHouse/pull/87675) ([Vladimir Cherkasov](https://github.com/vdimir)). -* 设置项 `enable_http_compression` 现已默认启用。这意味着如果客户端接受 HTTP 压缩,服务器就会使用它。不过,此更改也有一些缺点。客户端可以请求一种开销很大的压缩方法,比如 `bzip2`,这是不合理的,而且会增加服务器的资源消耗(但只有在传输大型结果时才会明显)。客户端也可以请求 `gzip`,这不算太糟,但相较于 `zstd` 并非最优。修复了 [#71591](https://github.com/ClickHouse/ClickHouse/issues/71591)。[#87703](https://github.com/ClickHouse/ClickHouse/pull/87703)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 在 `system.server_settings` 中新增了一个条目 `keeper_hosts`,用于提供 ClickHouse 可连接的 [Zoo]Keeper 主机列表。[#87718](https://github.com/ClickHouse/ClickHouse/pull/87718)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 -* 在系统仪表板中添加 `from` 和 `to` 值,以便更方便地进行历史问题排查。[#87823](https://github.com/ClickHouse/ClickHouse/pull/87823)([Mikhail f. Shiryaev](https://github.com/Felixoid))。 -* 在 Iceberg 的 SELECT 查询中添加更多用于性能跟踪的信息。[#87903](https://github.com/ClickHouse/ClickHouse/pull/87903) ([Daniil Ivanik](https://github.com/divanik))。 -* 文件系统缓存优化:在多个线程同时预留缓存空间时重用缓存优先级迭代器。[#87914](https://github.com/ClickHouse/ClickHouse/pull/87914) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 新增对 `Keeper` 请求大小进行限制的功能(`max_request_size` 设置,与 `ZooKeeper` 的 `jute.maxbuffer` 相同,默认关闭以保持向后兼容性,将在后续版本中启用)。 [#87952](https://github.com/ClickHouse/ClickHouse/pull/87952) ([Azat Khuzhin](https://github.com/azat)). -* 使 `clickhouse-benchmark` 默认不在错误信息中包含堆栈跟踪。 [#87954](https://github.com/ClickHouse/ClickHouse/pull/87954) ([Ahmed Gouda](https://github.com/0xgouda)). -* 当标记(marks)已在缓存中时,避免启用基于线程池的异步标记加载(`load_marks_asynchronously=1`)(因为线程池可能处于繁忙状态,即使标记已经在缓存中,查询仍会因此付出额外开销)。 [#87967](https://github.com/ClickHouse/ClickHouse/pull/87967) ([Azat Khuzhin](https://github.com/azat)). -* Ytsaurus:允许使用部分列创建表、表函数和字典。[#87982](https://github.com/ClickHouse/ClickHouse/pull/87982) ([MikhailBurdukov](https://github.com/MikhailBurdukov))。 -* 现在起,`system.zookeeper_connection_log` 已默认启用,可用于获取 Keeper 会话相关信息。 [#88011](https://github.com/ClickHouse/ClickHouse/pull/88011) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 -* 在传入重复的外部表时,使 TCP 与 HTTP 的行为保持一致。HTTP 允许多次传递同一个临时表。[#88032](https://github.com/ClickHouse/ClickHouse/pull/88032) ([Sema Checherinda](https://github.com/CheSema))。 -* 移除用于读取 Arrow/ORC/Parquet 的自定义 MemoryPools。该组件在 [#84082](https://github.com/ClickHouse/ClickHouse/pull/84082) 之后似乎已不再需要,因为现在我们无论如何都会跟踪所有内存分配。[#88035](https://github.com/ClickHouse/ClickHouse/pull/88035)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 -* 允许在不提供参数的情况下创建 `Replicated` 数据库。 [#88044](https://github.com/ClickHouse/ClickHouse/pull/88044) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* `clickhouse-keeper-client`:新增对连接到 clickhouse-keeper 的 TLS 端口的支持,保持参数标志名称与 clickhouse-client 中一致。[#88065](https://github.com/ClickHouse/ClickHouse/pull/88065) ([Pradeep Chhetri](https://github.com/chhetripradeep))。 -* 新增了一个 profile 事件,用于统计后台合并因超出内存限制而被拒绝的次数。[#88084](https://github.com/ClickHouse/ClickHouse/pull/88084) ([Grant Holly](https://github.com/grantholly-clickhouse))。 -* 启用用于校验 `CREATE/ALTER TABLE` 列默认表达式的 analyzer。 [#88087](https://github.com/ClickHouse/ClickHouse/pull/88087) ([Max Justus Spransy](https://github.com/maxjustus)). -* 内部查询计划优化:对 `CROSS JOIN` 使用 JoinStepLogical。 [#88151](https://github.com/ClickHouse/ClickHouse/pull/88151) ([Vladimir Cherkasov](https://github.com/vdimir)). -* 为 `hasAnyTokens`(`hasAnyToken`)和 `hasAllTokens`(`hasAllToken`)函数添加了别名。[#88162](https://github.com/ClickHouse/ClickHouse/pull/88162) ([George Larionov](https://github.com/george-larionov))。 -* 默认启用全局采样性能分析器(这意味着:即使是与查询无关的服务器线程也会启用):每 10 秒(按 CPU 时间和实际时间)收集一次所有线程的堆栈跟踪(stacktrace)。 [#88209](https://github.com/ClickHouse/ClickHouse/pull/88209) ([Alexander Tokmakov](https://github.com/tavplubix))。 -* 更新 Azure SDK,以包含针对复制和创建容器操作中 `Content-Length` 问题的修复。[#88278](https://github.com/ClickHouse/ClickHouse/pull/88278) ([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 -* 使函数 `lag` 不区分大小写,以与 MySQL 兼容。[#88322](https://github.com/ClickHouse/ClickHouse/pull/88322) ([Lonny Kapelushnik](https://github.com/lonnylot)). -* 允许从 `clickhouse-server` 目录启动 `clickhouse-local`。在之前的版本中,这会产生错误 `Cannot parse UUID: .`。现在,可以在不启动服务器的情况下启动 `clickhouse-local` 并操作服务器上的数据库。[#88383](https://github.com/ClickHouse/ClickHouse/pull/88383)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 添加配置项 `keeper_server.coordination_settings.check_node_acl_on_remove`。启用后,在每次删除节点之前,将同时验证该节点本身及其父节点的 ACL。否则,仅验证父节点的 ACL。[#88513](https://github.com/ClickHouse/ClickHouse/pull/88513) ([Antonio Andelic](https://github.com/antonio2368))。 -* 在使用 `Vertical` 格式时,`JSON` 列现在会以美化格式输出。修复 [#81794](https://github.com/ClickHouse/ClickHouse/issues/81794)。[#88524](https://github.com/ClickHouse/ClickHouse/pull/88524)([Frank Rosner](https://github.com/FRosner))。 -* 将 `clickhouse-client` 文件(例如查询历史)存储在 [XDG Base Directories](https://specifications.freedesktop.org/basedir-spec/latest/index.html) 规范描述的位置,而不是主目录根目录下。如果 `~/.clickhouse-client-history` 已经存在,仍会继续使用该文件。[#88538](https://github.com/ClickHouse/ClickHouse/pull/88538)([Konstantin Bogdanov](https://github.com/thevar1able))。 -* 修复 `GLOBAL IN` 导致的内存泄漏问题([https://github.com/ClickHouse/ClickHouse/issues/88615](https://github.com/ClickHouse/ClickHouse/issues/88615))。[#88617](https://github.com/ClickHouse/ClickHouse/pull/88617)([pranavmehta94](https://github.com/pranavmehta94))。 -* 为 hasAny/hasAllTokens 添加了新的重载,使其支持字符串输入。[#88679](https://github.com/ClickHouse/ClickHouse/pull/88679) ([George Larionov](https://github.com/george-larionov)). -* 为 `clickhouse-keeper` 的安装后脚本新增一个步骤,以便在开机时自动启动。 [#88746](https://github.com/ClickHouse/ClickHouse/pull/88746) ([YenchangChan](https://github.com/YenchangChan)). -* 仅在将凭据粘贴到 Web UI 时进行检查,而不是在每次按键时检查。这样可以避免因 LDAP 服务器配置错误而导致的问题。修复了 [#85777](https://github.com/ClickHouse/ClickHouse/issues/85777)。[#88769](https://github.com/ClickHouse/ClickHouse/pull/88769)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 在违反约束时限制异常信息长度。在之前的版本中,插入超长字符串时,可能会生成同样很长的异常信息,并最终被写入 `query_log`。修复 [#87032](https://github.com/ClickHouse/ClickHouse/issues/87032)。[#88801](https://github.com/ClickHouse/ClickHouse/pull/88801)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 修复在创建表时从 ArrowFlight 服务器请求数据集结构时出现的问题。[#87542](https://github.com/ClickHouse/ClickHouse/pull/87542) ([Vitaly Baranov](https://github.com/vitlibar))。 - -#### 缺陷修复(官方稳定版中用户可见的异常行为) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* 修复了 GeoParquet 导致的客户端协议错误。[#84020](https://github.com/ClickHouse/ClickHouse/pull/84020) ([Michael Kolupaev](https://github.com/al13n321)). -* 修复在发起节点上执行的子查询中解析 `shardNum()` 等与主机相关函数时的问题。[#84409](https://github.com/ClickHouse/ClickHouse/pull/84409) ([Eduard Karacharov](https://github.com/korowa))。 -* 修复了多个与日期时间相关的函数(例如 `parseDateTime64BestEffort`、`change{Year,Month,Day}` 和 `makeDateTime64`)在处理 Unix 纪元之前且带有小数秒的日期时的错误。此前,小数秒部分会被从秒数中减去,而不是相加。例如,`parseDateTime64BestEffort('1969-01-01 00:00:00.468')` 会返回 `1968-12-31 23:59:59.532`,而不是 `1969-01-01 00:00:00.468`。[#85396](https://github.com/ClickHouse/ClickHouse/pull/85396)([xiaohuanlin](https://github.com/xiaohuanlin))。 -* 修复在同一条 ALTER 语句中列状态发生变化时,`ALTER COLUMN IF EXISTS` 命令执行失败的问题。现在,`DROP COLUMN IF EXISTS`、`MODIFY COLUMN IF EXISTS`、`COMMENT COLUMN IF EXISTS` 和 `RENAME COLUMN IF EXISTS` 等命令可以正确处理在同一语句中前一个命令已删除该列的情况。 [#86046](https://github.com/ClickHouse/ClickHouse/pull/86046) ([xiaohuanlin](https://github.com/xiaohuanlin))。 -* 修复在日期超出支持范围时推断 `Date`/`DateTime`/`DateTime64` 类型的问题。 [#86184](https://github.com/ClickHouse/ClickHouse/pull/86184) ([Pavel Kruglov](https://github.com/Avogar)). -* 修复了一个崩溃问题:某些用户提交到 `AggregateFunction(quantileDD)` 列的有效数据可能会导致合并过程发生无限递归。[#86560](https://github.com/ClickHouse/ClickHouse/pull/86560) ([Raphaël Thériault](https://github.com/raphael-theriault-swi))。 -* 在通过 `cluster` 表函数创建的表中支持 JSON/Dynamic 类型。[#86821](https://github.com/ClickHouse/ClickHouse/pull/86821)([Pavel Kruglov](https://github.com/Avogar))。 -* 修复在查询中通过 CTE 计算的函数结果非确定性的问题。 [#86967](https://github.com/ClickHouse/ClickHouse/pull/86967) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* 修复在主键列上使用 pointInPolygon 时 EXPLAIN 中出现的 LOGICAL_ERROR。[#86971](https://github.com/ClickHouse/ClickHouse/pull/86971) ([Michael Kolupaev](https://github.com/al13n321))。 -* 修复名称中包含百分号编码序列的数据湖表。修复 [#86626](https://github.com/ClickHouse/ClickHouse/issues/86626) 中的问题。[#87020](https://github.com/ClickHouse/ClickHouse/pull/87020)([Anton Ivashkin](https://github.com/ianton-ru))。 -* 修复在包含可空列且启用了 `optimize_functions_to_subcolumns` 的 `OUTER JOIN` 中出现的不正确 `IS NULL` 行为,关闭 [#78625](https://github.com/ClickHouse/ClickHouse/issues/78625)。[#87058](https://github.com/ClickHouse/ClickHouse/pull/87058)([Vladimir Cherkasov](https://github.com/vdimir))。 -* 修复了在 `max_temporary_data_on_disk_size` 上限跟踪中对临时数据释放计数不正确的问题,关闭 [#87118](https://github.com/ClickHouse/ClickHouse/issues/87118)。[#87140](https://github.com/ClickHouse/ClickHouse/pull/87140)([JIaQi](https://github.com/JiaQiTang98))。 -* 函数 `checkHeaders` 现在会正确验证提供的 headers,并拒绝不允许的 headers。原作者:Michael Anastasakis (@michael-anastasakis)。[#87172](https://github.com/ClickHouse/ClickHouse/pull/87172)([Raúl Marín](https://github.com/Algunenano))。 -* 对所有数值类型实现了与 `toDate` 和 `toDate32` 相同的行为。修复了从 int16 类型转换为 Date32 时的下溢检查。[#87176](https://github.com/ClickHouse/ClickHouse/pull/87176) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* 修复在包含多个 JOIN 的查询中使用并行副本时的逻辑错误,尤其是在 LEFT/INNER JOIN 之后使用 RIGHT JOIN 的情况下。[#87178](https://github.com/ClickHouse/ClickHouse/pull/87178) ([Igor Nikonov](https://github.com/devcrafter))。 -* 使 schema 推断缓存遵循 `input_format_try_infer_variants` 设置。[#87180](https://github.com/ClickHouse/ClickHouse/pull/87180) ([Pavel Kruglov](https://github.com/Avogar)). -* 使 pathStartsWith 仅匹配位于该前缀之下的路径。[#87181](https://github.com/ClickHouse/ClickHouse/pull/87181) ([Raúl Marín](https://github.com/Algunenano))。 -* 修复了 `_row_number` 虚拟列和 Iceberg 基于位置删除中的逻辑错误。[#87220](https://github.com/ClickHouse/ClickHouse/pull/87220) ([Michael Kolupaev](https://github.com/al13n321)). -* 修复在 `JOIN` 中由于混合使用常量和非常量数据块而导致的 `LOGICAL_ERROR` 异常 “Too large size passed to allocator”。[#87231](https://github.com/ClickHouse/ClickHouse/pull/87231)([Azat Khuzhin](https://github.com/azat))。 -* 修复了在轻量级更新中使用从其他 `MergeTree` 表读取数据的子查询时出现的问题。 [#87285](https://github.com/ClickHouse/ClickHouse/pull/87285) ([Anton Popov](https://github.com/CurtizJ)). -* 修复了在存在行策略时不起作用的 move-to-prewhere 优化。延续自 [#85118](https://github.com/ClickHouse/ClickHouse/issues/85118)。修复并关闭了 [#69777](https://github.com/ClickHouse/ClickHouse/issues/69777)。修复并关闭了 [#83748](https://github.com/ClickHouse/ClickHouse/issues/83748)。[#87303](https://github.com/ClickHouse/ClickHouse/pull/87303)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* 修复了在对数据分片中缺失但定义了默认表达式的列应用补丁时出现的问题。 [#87347](https://github.com/ClickHouse/ClickHouse/pull/87347) ([Anton Popov](https://github.com/CurtizJ)). -* 修复了在 MergeTree 表中使用重复分区字段名称时导致的段错误。 [#87365](https://github.com/ClickHouse/ClickHouse/pull/87365) ([xiaohuanlin](https://github.com/xiaohuanlin)). -* 修复 EmbeddedRocksDB 的升级问题。[#87392](https://github.com/ClickHouse/ClickHouse/pull/87392) ([Raúl Marín](https://github.com/Algunenano)). -* 修复了从对象存储上的文本索引直接读取的问题。 [#87399](https://github.com/ClickHouse/ClickHouse/pull/87399) ([Anton Popov](https://github.com/CurtizJ)). -* 禁止为不存在的引擎创建权限。[#87419](https://github.com/ClickHouse/ClickHouse/pull/87419) ([Jitendra](https://github.com/jitendra1411)). -* 仅对 `s3_plain_rewritable` 的「未找到」错误执行忽略(否则可能会导致各种问题)。[#87426](https://github.com/ClickHouse/ClickHouse/pull/87426) ([Azat Khuzhin](https://github.com/azat)). -* 修复基于 YTSaurus 源和 *range_hashed 布局的字典。[#87490](https://github.com/ClickHouse/ClickHouse/pull/87490) ([MikhailBurdukov](https://github.com/MikhailBurdukov))。 -* 修复创建空元组数组时的行为。 [#87520](https://github.com/ClickHouse/ClickHouse/pull/87520) ([Pavel Kruglov](https://github.com/Avogar)). -* 在创建临时表时检查无效列。[#87524](https://github.com/ClickHouse/ClickHouse/pull/87524)([Pavel Kruglov](https://github.com/Avogar))。 -* 切勿在 format 头部中包含 Hive 分区列。修复了 [#87515](https://github.com/ClickHouse/ClickHouse/issues/87515)。[#87528](https://github.com/ClickHouse/ClickHouse/pull/87528)([Arthur Passos](https://github.com/arthurpassos))。 -* 修复在 DeltaLake 中使用 text 格式时的读取准备过程。[#87529](https://github.com/ClickHouse/ClickHouse/pull/87529) ([Pavel Kruglov](https://github.com/Avogar)). -* 修复了 Buffer 表在执行 SELECT 和 INSERT 时的访问权限校验问题。[#87545](https://github.com/ClickHouse/ClickHouse/pull/87545) ([pufit](https://github.com/pufit))。 -* 不允许为 S3 表创建数据跳过索引。 [#87554](https://github.com/ClickHouse/ClickHouse/pull/87554) ([Bharat Nallan](https://github.com/bharatnc)). -* 避免异步日志和 text_log 的已跟踪内存泄漏(在 10 小时内可能产生约 100GiB 的显著偏差,text_log 中也可能出现几乎相同的偏差)。 [#87584](https://github.com/ClickHouse/ClickHouse/pull/87584) ([Azat Khuzhin](https://github.com/azat))。 -* 修复了一个错误:当某个 View 或物化视图被异步删除,且服务器在完成后台清理之前重启时,可能会导致该视图的 SELECT 设置覆盖全局服务器设置。 [#87603](https://github.com/ClickHouse/ClickHouse/pull/87603) ([Alexander Tokmakov](https://github.com/tavplubix))。 -* 在计算内存过载预警时(如果可能),排除用户空间页缓存所占字节数。 [#87610](https://github.com/ClickHouse/ClickHouse/pull/87610) ([Bharat Nallan](https://github.com/bharatnc)). -* 修复了在 CSV 反序列化过程中,由于类型顺序不正确而导致 `LOGICAL_ERROR` 的问题。 [#87622](https://github.com/ClickHouse/ClickHouse/pull/87622) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* 修复在可执行字典中对 `command_read_timeout` 的错误处理。[#87627](https://github.com/ClickHouse/ClickHouse/pull/87627)([Azat Khuzhin](https://github.com/azat))。 -* 修复了在使用新分析器且对被替换列进行过滤时,`SELECT * REPLACE` 在 `WHERE` 子句中的错误行为。 [#87630](https://github.com/ClickHouse/ClickHouse/pull/87630) ([xiaohuanlin](https://github.com/xiaohuanlin)). -* 修复在 `Distributed` 之上使用 `Merge` 时的两层聚合问题。 [#87687](https://github.com/ClickHouse/ClickHouse/pull/87687) ([c-end](https://github.com/c-end)). -* 修复在未使用右侧行列表时 HashJoin 算法中输出数据块的生成。修复了 [#87401](https://github.com/ClickHouse/ClickHouse/issues/87401)。[#87699](https://github.com/ClickHouse/ClickHouse/pull/87699)([Dmitry Novik](https://github.com/novikd))。 -* 在应用索引分析后如果没有可读数据,可能会错误地选择并行副本读取模式。修复了 [#87653](https://github.com/ClickHouse/ClickHouse/issues/87653)。[#87700](https://github.com/ClickHouse/ClickHouse/pull/87700) ([zoomxi](https://github.com/zoomxi))。 -* 修复在 Glue 中处理 `timestamp` / `timestamptz` 列的问题。[#87733](https://github.com/ClickHouse/ClickHouse/pull/87733)([Andrey Zvonov](https://github.com/zvonand))。 -* 此更改关闭了 [#86587](https://github.com/ClickHouse/ClickHouse/issues/86587)。[#87761](https://github.com/ClickHouse/ClickHouse/pull/87761)([scanhex12](https://github.com/scanhex12))。 -* 修复 PostgreSQL 接口中的布尔值写入。[#87762](https://github.com/ClickHouse/ClickHouse/pull/87762) ([Artem Yurov](https://github.com/ArtemYurov)). -* 修复在包含 CTE 的 INSERT SELECT 查询中出现的 “unknown table” 错误,[#85368](https://github.com/ClickHouse/ClickHouse/issues/85368)。[#87789](https://github.com/ClickHouse/ClickHouse/pull/87789)([Guang Zhao](https://github.com/zheguang))。 -* 修复从无法位于 Nullable 中的 Variant 读取为 null 的 map 子列时的问题。 [#87798](https://github.com/ClickHouse/ClickHouse/pull/87798) ([Pavel Kruglov](https://github.com/Avogar)). -* 修复在集群的次级节点上未能在整个集群中完全删除数据库时的错误处理。[#87802](https://github.com/ClickHouse/ClickHouse/pull/87802) ([Tuan Pham Anh](https://github.com/tuanpach)). -* 修复了多个与 skip indices 相关的 bug。[#87817](https://github.com/ClickHouse/ClickHouse/pull/87817) ([Raúl Marín](https://github.com/Algunenano))。 -* 在 AzureBlobStorage 中,更新为先尝试原生复制,如遇到“Unauthroized”错误则回退到读写方式(在 AzureBlobStorage 中,如果源和目标使用不同的存储账户,会出现“Unauthorized”错误)。并修复了当在配置中定义了 endpoint 时应用 "use_native_copy" 的问题。 [#87826](https://github.com/ClickHouse/ClickHouse/pull/87826) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). -* 如果 ArrowStream 文件包含非唯一字典,ClickHouse 会崩溃。[#87863](https://github.com/ClickHouse/ClickHouse/pull/87863) ([Ilya Golshtein](https://github.com/ilejn))。 -* 修复在使用 approx_top_k 和 finalizeAggregation 时的致命错误。[#87892](https://github.com/ClickHouse/ClickHouse/pull/87892) ([Jitendra](https://github.com/jitendra1411)). -* 修复当最后一个数据块为空时的投影合并问题。[#87928](https://github.com/ClickHouse/ClickHouse/pull/87928) ([Raúl Marín](https://github.com/Algunenano))。 -* 如果参数类型不允许用于 GROUP BY,则不要从 GROUP BY 中移除单射函数。[#87958](https://github.com/ClickHouse/ClickHouse/pull/87958) ([Pavel Kruglov](https://github.com/Avogar))。 -* 修复在查询中使用 `session_timezone` 设置时,基于 datetime 的键进行数据块/分区裁剪不正确的问题。[#87987](https://github.com/ClickHouse/ClickHouse/pull/87987) ([Eduard Karacharov](https://github.com/korowa))。 -* 在 PostgreSQL 接口中在查询执行后返回受影响的行数。[#87990](https://github.com/ClickHouse/ClickHouse/pull/87990)([Artem Yurov](https://github.com/ArtemYurov))。 -* 限制在 PASTE JOIN 中使用过滤下推功能,因为这可能导致结果不正确。[#88078](https://github.com/ClickHouse/ClickHouse/pull/88078) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* 在对 [https://github.com/ClickHouse/ClickHouse/pull/84503](https://github.com/ClickHouse/ClickHouse/pull/84503) 中引入的权限检查进行评估之前先应用 URI 规范化。[#88089](https://github.com/ClickHouse/ClickHouse/pull/88089)([pufit](https://github.com/pufit))。 -* 修复了在新的分析器中,当 ARRAY JOIN COLUMNS() 未匹配到任何列时的逻辑错误。 [#88091](https://github.com/ClickHouse/ClickHouse/pull/88091) ([xiaohuanlin](https://github.com/xiaohuanlin)). -* 修复 “ClickHouse 内存使用率过高” 警告(排除页面缓存)。 [#88092](https://github.com/ClickHouse/ClickHouse/pull/88092) ([Azat Khuzhin](https://github.com/azat)). -* 修复了在设置了列级 `TTL` 的 `MergeTree` 表中可能发生的数据损坏问题。 [#88095](https://github.com/ClickHouse/ClickHouse/pull/88095) ([Anton Popov](https://github.com/CurtizJ)). -* 修复在附加了包含无效表的外部数据库(`PostgreSQL`/`SQLite`/...)的情况下读取 `system.tables` 时可能发生的未捕获异常。[#88105](https://github.com/ClickHouse/ClickHouse/pull/88105) ([Azat Khuzhin](https://github.com/azat)). -* 修复在使用空元组参数调用 `mortonEncode` 和 `hilbertEncode` 函数时出现的崩溃问题。[#88110](https://github.com/ClickHouse/ClickHouse/pull/88110) ([xiaohuanlin](https://github.com/xiaohuanlin)). -* 现在在集群中存在不活动副本时,`ON CLUSTER` 查询将花费更少的时间。[#88153](https://github.com/ClickHouse/ClickHouse/pull/88153) ([alesapin](https://github.com/alesapin))。 -* 现在 DDL worker 会从副本集中清理过期的主机。这将减少存储在 ZooKeeper 中的元数据量。[#88154](https://github.com/ClickHouse/ClickHouse/pull/88154) ([alesapin](https://github.com/alesapin))。 -* 修复在未启用 cgroups 的情况下运行 ClickHouse 的问题(此前异步指标误将 cgroups 设为必需条件)。[#88164](https://github.com/ClickHouse/ClickHouse/pull/88164) ([Azat Khuzhin](https://github.com/azat)). -* 在出错时正确回滚移动目录操作。我们需要重写执行过程中更改的所有 `prefix.path` 对象,而不仅仅是根对象。[#88198](https://github.com/ClickHouse/ClickHouse/pull/88198) ([Mikhail Artemenko](https://github.com/Michicosun)). -* 修复了 `ColumnLowCardinality` 中 `is_shared` 标志的传播问题。如果在 `ReverseIndex` 中的哈希值已经预先计算并缓存之后,又在该列中插入了新值,可能会导致错误的 GROUP BY 结果。[#88213](https://github.com/ClickHouse/ClickHouse/pull/88213) ([Nikita Taranov](https://github.com/nickitat))。 -* 修复了工作负载设置项 `max_cpu_share`。现在即使未设置工作负载设置项 `max_cpus`,也可以使用它。[#88217](https://github.com/ClickHouse/ClickHouse/pull/88217) ([Neerav](https://github.com/neeravsalaria)). -* 修复了带有子查询的高负载 mutation 会卡在准备阶段的问题。现在可以使用 `SYSTEM STOP MERGES` 来停止这些 mutation。[#88241](https://github.com/ClickHouse/ClickHouse/pull/88241) ([alesapin](https://github.com/alesapin)). -* 现在,关联子查询也可以与对象存储一起使用。[#88290](https://github.com/ClickHouse/ClickHouse/pull/88290) ([alesapin](https://github.com/alesapin))。 -* 避免在访问 `system.projections` 和 `system.data_skipping_indices` 的同时初始化 DataLake 数据库。 [#88330](https://github.com/ClickHouse/ClickHouse/pull/88330) ([Azat Khuzhin](https://github.com/azat)). -* 现在,只有在显式启用 `show_data_lake_catalogs_in_system_tables` 时,数据湖目录才会显示在系统内省表中。[#88341](https://github.com/ClickHouse/ClickHouse/pull/88341) ([alesapin](https://github.com/alesapin))。 -* 修复了 DatabaseReplicated,使其遵守 `interserver_http_host` 配置。[#88378](https://github.com/ClickHouse/ClickHouse/pull/88378) ([xiaohuanlin](https://github.com/xiaohuanlin)). -* 在定义 Projection 的上下文中,现在已显式禁用位置参数,因为在该内部查询阶段使用它们并不合理。此更改修复了 [#48604](https://github.com/ClickHouse/ClickHouse/issues/48604)。[#88380](https://github.com/ClickHouse/ClickHouse/pull/88380)([Amos Bird](https://github.com/amosbird))。 -* 修复 `countMatches` 函数中的二次时间复杂度问题。关闭 [#88400](https://github.com/ClickHouse/ClickHouse/issues/88400)。[#88401](https://github.com/ClickHouse/ClickHouse/pull/88401)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 使针对 KeeperMap 表的 `ALTER COLUMN ... COMMENT` 命令也会被复制,从而写入到 Replicated 数据库的元数据中,并在所有副本间传播。修复 [#88077](https://github.com/ClickHouse/ClickHouse/issues/88077)。[#88408](https://github.com/ClickHouse/ClickHouse/pull/88408)([Eduard Karacharov](https://github.com/korowa))。 -* 修复在 `Database Replicated` 中与物化视图相关的伪循环依赖问题,该问题会阻止向数据库添加新的副本。[#88423](https://github.com/ClickHouse/ClickHouse/pull/88423)([Nikolay Degterinsky](https://github.com/evillique))。 -* 修复在 `group_by_overflow_mode` 设置为 `any` 时对稀疏列的聚合。[#88440](https://github.com/ClickHouse/ClickHouse/pull/88440) ([Eduard Karacharov](https://github.com/korowa))。 -* 修复在使用 `query_plan_use_logical_join_step=0` 且包含多个 FULL JOIN USING 子句时出现的 "column not found" 错误。解决 [#88103](https://github.com/ClickHouse/ClickHouse/issues/88103)。[#88473](https://github.com/ClickHouse/ClickHouse/pull/88473)([Vladimir Cherkasov](https://github.com/vdimir))。 -* 节点数量 > 10 的大型集群在执行恢复时,很容易因为错误 `[941] 67c45db4-4df4-4879-87c5-25b8d1e0d414 <Trace>: RestoreCoordinationOnCluster The version of node /clickhouse/backups/restore-7c551a77-bd76-404c-bad0-3213618ac58e/stage/num_hosts changed (attempt #9), will try again` 而失败。`num_hosts` 节点会被许多主机同时覆盖。此修复将用于控制重试次数的设置改为动态可调。关闭 [#87721](https://github.com/ClickHouse/ClickHouse/issues/87721)。[#88484](https://github.com/ClickHouse/ClickHouse/pull/88484)([Mikhail f. Shiryaev](https://github.com/Felixoid))。 -* 此 PR 仅用于与 23.8 及之前的版本保持兼容。兼容性问题由此 PR 引入: [https://github.com/ClickHouse/ClickHouse/pull/54240](https://github.com/ClickHouse/ClickHouse/pull/54240) 这条 SQL 在 `enable_analyzer=0` 时会执行失败(在 23.8 之前是正常的)。[#88491](https://github.com/ClickHouse/ClickHouse/pull/88491)([JIaQi](https://github.com/JiaQiTang98))。 -* 修复在将大数值转换为 DateTime 时,`accurateCast` 错误消息中 UBSAN 报告的整数溢出问题。 [#88520](https://github.com/ClickHouse/ClickHouse/pull/88520) ([xiaohuanlin](https://github.com/xiaohuanlin)). -* 修复 `CoalescingMergeTree` 对 tuple 类型的处理。这一变更关闭了 [#88469](https://github.com/ClickHouse/ClickHouse/issues/88469)。[#88526](https://github.com/ClickHouse/ClickHouse/pull/88526)([scanhex12](https://github.com/scanhex12))。 -* 禁止对 `iceberg_format_version=1` 执行删除操作。解决了 [#88444](https://github.com/ClickHouse/ClickHouse/issues/88444)。[#88532](https://github.com/ClickHouse/ClickHouse/pull/88532)([scanhex12](https://github.com/scanhex12))。 -* 此补丁修复了 `plain-rewritable` 磁盘在任意深度文件夹中执行移动操作时的问题。[#88586](https://github.com/ClickHouse/ClickHouse/pull/88586) ([Mikhail Artemenko](https://github.com/Michicosun)). -* 修复与 *cluster 函数一起使用的 SQL SECURITY DEFINER。 [#88588](https://github.com/ClickHouse/ClickHouse/pull/88588) ([Julian Maicher](https://github.com/jmaicher)). -* 修复由于对底层 const PREWHERE 列的并发修改导致的潜在崩溃问题。[#88605](https://github.com/ClickHouse/ClickHouse/pull/88605) ([Azat Khuzhin](https://github.com/azat)). -* 修复了从文本索引读取数据的问题,并启用了查询条件缓存(通过启用设置 `use_skip_indexes_on_data_read` 和 `use_query_condition_cache`)。 [#88660](https://github.com/ClickHouse/ClickHouse/pull/88660) ([Anton Popov](https://github.com/CurtizJ)). -* 从 `Poco::Net::HTTPChunkedStreamBuf::readFromDevice` 抛出的 `Poco::TimeoutException` 异常会导致因 SIGABRT 崩溃。 [#88668](https://github.com/ClickHouse/ClickHouse/pull/88668) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 -* 已在 [#88910](https://github.com/ClickHouse/ClickHouse/issues/88910) 中回溯修复:在恢复后,Replicated 数据库的副本可能会长时间卡住,并持续打印类似 `Failed to marked query-0004647339 as finished (finished=No node, synced=No node)` 的日志信息,该问题已修复。[#88671](https://github.com/ClickHouse/ClickHouse/pull/88671)([Alexander Tokmakov](https://github.com/tavplubix))。 -* 修复在配置重新加载后,ClickHouse 首次建立连接时向 `system.zookeeper_connection_log` 追加写入的行为。 [#88728](https://github.com/ClickHouse/ClickHouse/pull/88728) ([Antonio Andelic](https://github.com/antonio2368)). -* 修复了一个缺陷:在处理时区时,将 DateTime64 转换为 Date 且 `date_time_overflow_behavior = 'saturate'` 时,超出取值范围的数值可能会产生错误结果。[#88737](https://github.com/ClickHouse/ClickHouse/pull/88737) ([Manuel](https://github.com/raimannma))。 -* 第 N 次尝试修复在启用缓存的 S3 表引擎中出现的“having zero bytes”错误。 [#88740](https://github.com/ClickHouse/ClickHouse/pull/88740) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 修复了 `loop` 表函数在执行 `SELECT` 时的访问验证问题。[#88802](https://github.com/ClickHouse/ClickHouse/pull/88802) ([pufit](https://github.com/pufit))。 -* 在异步日志记录失败时捕获异常,防止程序异常终止。[#88814](https://github.com/ClickHouse/ClickHouse/pull/88814) ([Raúl Marín](https://github.com/Algunenano))。 -* 已在 [#89060](https://github.com/ClickHouse/ClickHouse/issues/89060) 中回溯该修复:修复 `top_k` 在仅以一个参数调用时未遵守阈值参数的问题。关闭了 [#88757](https://github.com/ClickHouse/ClickHouse/issues/88757)。[#88867](https://github.com/ClickHouse/ClickHouse/pull/88867)([Manuel](https://github.com/raimannma))。 -* 在 [#88944](https://github.com/ClickHouse/ClickHouse/issues/88944) 中回溯:修复函数 `reverseUTF8` 中的一个错误。在先前版本中,它会错误地反转长度为 4 的 UTF-8 码点的字节顺序。此更改关闭了 [#88913](https://github.com/ClickHouse/ClickHouse/issues/88913)。[#88914](https://github.com/ClickHouse/ClickHouse/pull/88914)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 已在 [#88980](https://github.com/ClickHouse/ClickHouse/issues/88980) 回溯移植:在使用 SQL SECURITY DEFINER 创建视图时,不再检查 `SET DEFINER <current_user>:definer` 的访问权限。[#88968](https://github.com/ClickHouse/ClickHouse/pull/88968)([pufit](https://github.com/pufit))。 -* 已在 [#89058](https://github.com/ClickHouse/ClickHouse/issues/89058) 中回溯:修复了 `L2DistanceTransposed(vec1, vec2, p)` 中的 `LOGICAL_ERROR`,该错误源于针对部分 `QBit` 读取的优化在 `p` 为 `Nullable` 类型时错误地从返回类型中移除了 `Nullable`。[#88974](https://github.com/ClickHouse/ClickHouse/pull/88974)([Raufs Dunamalijevs](https://github.com/rienath))。 -* 已在 [#89167](https://github.com/ClickHouse/ClickHouse/issues/89167) 中回溯修复:修复未知 catalog 类型导致的崩溃。解决了 [#88819](https://github.com/ClickHouse/ClickHouse/issues/88819)。[#88987](https://github.com/ClickHouse/ClickHouse/pull/88987)([scanhex12](https://github.com/scanhex12))。 -* 已在 [#89028](https://github.com/ClickHouse/ClickHouse/issues/89028) 中回溯修复:修复了在分析 skipping 索引时的性能下降问题。[#89004](https://github.com/ClickHouse/ClickHouse/pull/89004)([Anton Popov](https://github.com/CurtizJ))。 - -#### 构建 / 测试 / 打包改进 {#buildtestingpackaging-improvement} - -* 使用 `postgres` 库 18.0 版本。[#87647](https://github.com/ClickHouse/ClickHouse/pull/87647)([Konstantin Bogdanov](https://github.com/thevar1able))。 -* 为 FreeBSD 启用 ICU。[#87891](https://github.com/ClickHouse/ClickHouse/pull/87891)([Raúl Marín](https://github.com/Algunenano))。 -* 在使用动态调度到 SSE 4.2 时,使用 SSE 4.2 而不是 SSE 4。[#88029](https://github.com/ClickHouse/ClickHouse/pull/88029)([Raúl Marín](https://github.com/Algunenano))。 -* 如果 `Speculative Store Bypass Safe` 不可用,则不再要求 `NO_ARMV81_OR_HIGHER` 标志。[#88051](https://github.com/ClickHouse/ClickHouse/pull/88051)([Konstantin Bogdanov](https://github.com/thevar1able))。 -* 当 ClickHouse 使用 `ENABLE_LIBFIU=OFF` 构建时,与 failpoint 相关的函数会变为空操作(no-op),不再对性能产生影响。在这种情况下,`SYSTEM ENABLE/DISABLE FAILPOINT` 查询会返回 `SUPPORT_IS_DISABLED` 错误。[#88184](https://github.com/ClickHouse/ClickHouse/pull/88184)([c-end](https://github.com/c-end))。 - -### ClickHouse 25.9 版本发布,2025-09-25 {#259} - -#### 不向后兼容的变更 {#backward-incompatible-change} - -* 禁用对 IPv4/IPv6 的无意义二元运算:禁用了 IPv4/IPv6 与非整数类型的加/减运算。此前允许与浮点类型进行此类运算,并且在某些其他类型(例如 DateTime)上会抛出逻辑错误。[#86336](https://github.com/ClickHouse/ClickHouse/pull/86336)([Raúl Marín](https://github.com/Algunenano))。 -* 弃用设置 `allow_dynamic_metadata_for_data_lakes`。现在所有 Iceberg 表在每次执行查询之前,都会尝试从存储中获取最新的表 schema。[#86366](https://github.com/ClickHouse/ClickHouse/pull/86366)([Daniil Ivanik](https://github.com/divanik))。 -* 更改了 `OUTER JOIN ... USING` 子句中合并列(coalesced column)的解析方式,使其更加一致:此前,在 OUTER JOIN 中同时选择 USING 列和带限定名的列(`a, t1.a, t2.a`)时,USING 列会被错误地解析为 `t1.a`,从而在右表中没有左表匹配的行上显示 0/NULL。现在,USING 子句中的标识符始终解析为合并列,而带限定名的标识符解析为非合并列,与查询中还存在哪些其他标识符无关。例如:```sql SELECT a, t1.a, t2.a FROM (SELECT 1 as a WHERE 0) t1 FULL JOIN (SELECT 2 as a) t2 USING (a) -- 之前:a=0, t1.a=0, t2.a=2(错误 —— 'a' 被解析为 t1.a) -- 之后:a=2, t1.a=0, t2.a=2(正确 —— 'a' 为合并列)。```[#80848](https://github.com/ClickHouse/ClickHouse/pull/80848)([Vladimir Cherkasov](https://github.com/vdimir))。 -* 将副本去重窗口上限提高到 10000。此变更在功能上是完全兼容的,但可以想象在存在大量表的情况下,可能会导致较高的资源消耗。[#86820](https://github.com/ClickHouse/ClickHouse/pull/86820)([Sema Checherinda](https://github.com/CheSema))。 - -#### 新功能 {#new-feature} - -* 用户现在可以通过在 NATS 引擎中指定新的 `nats_stream` 和 `nats_consumer` 设置,使用 NATS JetStream 来消费消息。[#84799](https://github.com/ClickHouse/ClickHouse/pull/84799)([Dmitry Novikov](https://github.com/dmitry-sles-novikov))。 -* 在 `arrowFlight` 表函数中新增了对身份验证和 SSL 的支持。[#87120](https://github.com/ClickHouse/ClickHouse/pull/87120) ([Vitaly Baranov](https://github.com/vitlibar))。 -* 在 `S3` 表引擎和 `s3` 表函数中新增名为 `storage_class_name` 的参数,用于指定 AWS 支持的智能分层(Intelligent-Tiering)存储类别。该参数同时支持键值对格式和位置参数格式(已弃用)。[#87122](https://github.com/ClickHouse/ClickHouse/pull/87122) ([alesapin](https://github.com/alesapin))。 -* Iceberg 表引擎支持 `ALTER UPDATE`。 [#86059](https://github.com/ClickHouse/ClickHouse/pull/86059) ([scanhex12](https://github.com/scanhex12)). -* 添加系统表 `iceberg_metadata_log`,以便在 SELECT 语句期间检索 Iceberg 元数据文件。[#86152](https://github.com/ClickHouse/ClickHouse/pull/86152) ([scanhex12](https://github.com/scanhex12))。 -* `Iceberg` 和 `DeltaLake` 表现在通过存储层级设置项 `disk` 支持自定义磁盘配置。[#86778](https://github.com/ClickHouse/ClickHouse/pull/86778) ([scanhex12](https://github.com/scanhex12))。 -* 为数据湖磁盘提供对 Azure 的支持。 [#87173](https://github.com/ClickHouse/ClickHouse/pull/87173) ([scanhex12](https://github.com/scanhex12)). -* 在 Azure Blob Storage 上支持 `Unity` catalog。 [#80013](https://github.com/ClickHouse/ClickHouse/pull/80013) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). -* `Iceberg` 写入现已支持更多格式(`ORC`、`Avro`)。此更改关闭了 [#86179](https://github.com/ClickHouse/ClickHouse/issues/86179)。 [#87277](https://github.com/ClickHouse/ClickHouse/pull/87277)([scanhex12](https://github.com/scanhex12))。 -* 添加一个新的系统表 `database_replicas`,包含数据库副本相关信息。 [#83408](https://github.com/ClickHouse/ClickHouse/pull/83408) ([Konstantin Morozov](https://github.com/k-morozov)). -* 新增函数 `arrayExcept`,用于按集合语义从一个数组中减去另一个数组。 [#82368](https://github.com/ClickHouse/ClickHouse/pull/82368) ([Joanna Hulboj](https://github.com/jh0x)). -* 新增 `system.aggregated_zookeeper_log` 表。该表包含按会话 ID、父路径和操作类型分组的 ZooKeeper 操作统计信息(例如操作数量、平均延迟、错误),并会定期写入磁盘。[#85102](https://github.com/ClickHouse/ClickHouse/pull/85102) [#87208](https://github.com/ClickHouse/ClickHouse/pull/87208) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 -* 新增函数 `isValidASCII`。如果输入的 `String` 或 `FixedString` 仅包含 ASCII 字节(0x00–0x7F),则返回 1,否则返回 0。关闭 [#85377](https://github.com/ClickHouse/ClickHouse/issues/85377)。... [#85786](https://github.com/ClickHouse/ClickHouse/pull/85786)([rajat mohan](https://github.com/rajatmohan22))。 -* 布尔型设置可以在不带参数的情况下指定,例如 `SET use_query_cache;`,等价于将其设置为 true。[#85800](https://github.com/ClickHouse/ClickHouse/pull/85800)([thraeka](https://github.com/thraeka))。 -* 新的配置选项:`logger.startupLevel` 和 `logger.shutdownLevel` 分别允许在 ClickHouse 启动和关闭阶段覆盖日志级别。[#85967](https://github.com/ClickHouse/ClickHouse/pull/85967) ([Lennard Eijsackers](https://github.com/Blokje5)). -* 聚合函数 `timeSeriesChangesToGrid` 和 `timeSeriesResetsToGrid`。其行为与 `timeSeriesRateToGrid` 类似,接受起始时间戳、结束时间戳、步长和回溯窗口等参数,以及时间戳和值两个参数,但每个窗口至少需要 1 个样本,而非 2 个。计算 PromQL 中的 `changes`/`resets`,在由这些参数定义的时间网格中,对每个时间戳统计指定窗口内样本值发生变化或减少的次数。返回类型为 `Array(Nullable(Float64))`。[#86010](https://github.com/ClickHouse/ClickHouse/pull/86010)([Stephen Chi](https://github.com/stephchi0))。 -* 允许用户使用与临时表类似的语法(`CREATE TEMPORARY VIEW`)来创建临时视图。 [#86432](https://github.com/ClickHouse/ClickHouse/pull/86432) ([Aly Kafoury](https://github.com/AlyHKafoury)). -* 为 `system.warnings` 表新增 CPU 和内存使用警告。[#86838](https://github.com/ClickHouse/ClickHouse/pull/86838) ([Bharat Nallan](https://github.com/bharatnc))。 -* 在 `Protobuf` 输入中支持 `oneof` 指示符。可以使用一列专门的列来指示 oneof 中某个字段是否存在。如果消息包含 [oneof](https://protobuf.dev/programming-guides/proto3/#oneof) 且已设置 `input_format_protobuf_oneof_presence`,ClickHouse 会填充该列,用于指示 oneof 中实际出现的是哪个字段。[#82885](https://github.com/ClickHouse/ClickHouse/pull/82885)([Ilya Golshtein](https://github.com/ilejn))。 -* 基于 jemalloc 的内部工具改进内存分配性能分析。现在可以通过配置 `jemalloc_enable_global_profiler` 启用全局 jemalloc profiler。通过启用配置 `jemalloc_collect_global_profile_samples_in_trace_log`,采样得到的全局内存分配和释放信息可以以 `JemallocSample` 类型存储在 `system.trace_log` 中。现在可以使用设置 `jemalloc_enable_profiler` 为每个查询单独启用 jemalloc profiling。是否将采样数据存储到 `system.trace_log` 中可以通过设置 `jemalloc_collect_profile_samples_in_trace_log` 在查询级别逐个控制。将 jemalloc 更新到更高版本。[#85438](https://github.com/ClickHouse/ClickHouse/pull/85438) ([Antonio Andelic](https://github.com/antonio2368))。 -* 一个用于在删除 Iceberg 表时一并删除其文件的新设置项。此更改解决了 [#86211](https://github.com/ClickHouse/ClickHouse/issues/86211)。[#86501](https://github.com/ClickHouse/ClickHouse/pull/86501)([scanhex12](https://github.com/scanhex12))。 - -#### 实验性特性 {#experimental-feature} - -* 从零重构了倒排文本索引,使其能够对无法完全放入内存的数据集进行可扩展处理。 [#86485](https://github.com/ClickHouse/ClickHouse/pull/86485) ([Anton Popov](https://github.com/CurtizJ)). -* Join 重排现在会利用统计信息。可以通过设置 `allow_statistics_optimize = 1` 和 `query_plan_optimize_join_order_limit = 10` 来启用该特性。 [#86822](https://github.com/ClickHouse/ClickHouse/pull/86822) ([Han Fei](https://github.com/hanfei1991)). -* 支持 `alter table ... materialize statistics all`,该命令会物化一个表的所有统计信息。 [#87197](https://github.com/ClickHouse/ClickHouse/pull/87197) ([Han Fei](https://github.com/hanfei1991)). - -#### 性能优化 {#performance-improvement} - -* 在读取时支持使用 skip 索引过滤数据部分,从而减少不必要的索引读取。由新设置 `use_skip_indexes_on_data_read` 控制(默认禁用)。这解决了 [#75774](https://github.com/ClickHouse/ClickHouse/issues/75774)。其中包含了一些与 [#81021](https://github.com/ClickHouse/ClickHouse/issues/81021) 共享的通用基础改动。[#81526](https://github.com/ClickHouse/ClickHouse/pull/81526)([Amos Bird](https://github.com/amosbird))。 -* 添加了 JOIN 顺序优化功能,可以自动重新排序 JOIN 以获得更好的性能(由 `query_plan_optimize_join_order_limit` 设置控制)。请注意,当前的 JOIN 顺序优化仅有有限的统计信息支持,主要依赖于存储引擎提供的行数估计值——未来版本将增加更完善的统计信息收集和基数估计功能。**如果在升级后遇到 JOIN 查询相关的问题**,可以暂时通过设置 `SET query_plan_use_new_logical_join_step = 0` 来禁用新的实现,并报告该问题以便进一步排查。**关于 USING 子句中标识符解析的说明**:修改了 `OUTER JOIN ... USING` 子句中合并列(coalesced column)的解析方式,使其行为更加一致:之前在 OUTER JOIN 中同时选择 USING 列和限定列(`a, t1.a, t2.a`)时,USING 列会被错误地解析为 `t1.a`,导致右表中没有左侧匹配的行显示为 0/NULL。现在,来自 USING 子句的标识符始终解析为合并列,而限定标识符始终解析为未合并的列,与查询中是否存在其他标识符无关。例如: ```sql - SELECT a, t1.a, t2.a - FROM (SELECT 1 as a WHERE 0) t1 - FULL JOIN (SELECT 2 as a) t2 USING (a) - -- Before: a=0, t1.a=0, t2.a=2 (incorrect - 'a' resolved to t1.a) - -- After: a=2, t1.a=0, t2.a=2 (correct - 'a' is coalesced). - [#80848](https://github.com/ClickHouse/ClickHouse/pull/80848) ([Vladimir Cherkasov](https://github.com/vdimir)). -* 针对数据湖的分布式 `INSERT SELECT`。 [#86783](https://github.com/ClickHouse/ClickHouse/pull/86783) ([scanhex12](https://github.com/scanhex12)). -* 改进针对 `func(primary_column) = 'xx'` 和 `column in (xxx)` 此类条件的 PREWHERE 优化。[#85529](https://github.com/ClickHouse/ClickHouse/pull/85529) ([李扬](https://github.com/taiyang-li))。 -* 实现了 JOIN 重写:1. 如果对匹配行或未匹配行的过滤条件始终为假,则将 `LEFT ANY JOIN` 和 `RIGHT ANY JOIN` 转换为 `SEMI`/`ANTI` JOIN。此优化由新设置 `query_plan_convert_any_join_to_semi_or_anti_join` 控制。2. 如果一侧未匹配行的过滤条件始终为假,则将 `FULL ALL JOIN` 转换为 `LEFT ALL` 或 `RIGHT ALL` JOIN。[#86028](https://github.com/ClickHouse/ClickHouse/pull/86028)([Dmitry Novik](https://github.com/novikd))。 -* 在执行轻量级删除之后,优化了纵向合并的性能。 [#86169](https://github.com/ClickHouse/ClickHouse/pull/86169) ([Anton Popov](https://github.com/CurtizJ)). -* 在 `LEFT/RIGHT` join 存在大量未匹配行的情况下,`HashJoin` 的性能略有优化。[#86312](https://github.com/ClickHouse/ClickHouse/pull/86312) ([Nikita Taranov](https://github.com/nickitat))。 -* 基数排序:帮助编译器利用 SIMD,并改进预取效果。通过动态派发,仅在 Intel CPU 上启用软件预取。延续了 @taiyang-li 在 [https://github.com/ClickHouse/ClickHouse/pull/77029](https://github.com/ClickHouse/ClickHouse/pull/77029) 中的工作。[#86378](https://github.com/ClickHouse/ClickHouse/pull/86378)([Raúl Marín](https://github.com/Algunenano))。 -* 通过在 `MarkRanges` 中将底层容器从 `deque` 优化为 `devector`,提升了在包含大量数据片段的表上执行短查询时的性能。[#86933](https://github.com/ClickHouse/ClickHouse/pull/86933) ([Azat Khuzhin](https://github.com/azat))。 -* 改进了在 join 模式下应用补丁部件的性能。[#87094](https://github.com/ClickHouse/ClickHouse/pull/87094) ([Anton Popov](https://github.com/CurtizJ)). -* 新增了设置 `query_condition_cache_selectivity_threshold`(默认值:1.0),用于将选择性较低的谓词扫描结果排除在写入 query condition cache 之外。这样可以在缓存命中率略有下降的前提下,降低 query condition cache 的内存消耗。[#86076](https://github.com/ClickHouse/ClickHouse/pull/86076)([zhongyuankai](https://github.com/zhongyuankai))。 -* 减少 Iceberg 写入过程中的内存使用。[#86544](https://github.com/ClickHouse/ClickHouse/pull/86544) ([scanhex12](https://github.com/scanhex12)). - -#### 改进 {#improvement} - -* 在单次插入操作中支持向 Iceberg 写入多个数据文件。新增设置项 `iceberg_insert_max_rows_in_data_file` 和 `iceberg_insert_max_bytes_in_data_file` 用于控制相应限制。[#86275](https://github.com/ClickHouse/ClickHouse/pull/86275) ([scanhex12](https://github.com/scanhex12))。 -* 为 Delta Lake 中插入的数据文件新增行数/字节数限制,可通过设置 `delta_lake_insert_max_rows_in_data_file` 和 `delta_lake_insert_max_bytes_in_data_file` 进行控制。[#86357](https://github.com/ClickHouse/ClickHouse/pull/86357) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 在 Iceberg 写入中支持更多类型的分区。修复了 [#86206](https://github.com/ClickHouse/ClickHouse/issues/86206)。[#86298](https://github.com/ClickHouse/ClickHouse/pull/86298)([scanhex12](https://github.com/scanhex12))。 -* 使 S3 重试策略可配置,并在修改配置 XML 文件后可以热加载 S3 磁盘的设置。 [#82642](https://github.com/ClickHouse/ClickHouse/pull/82642) ([RinChanNOW](https://github.com/RinChanNOWWW)). -* 改进了 S3(Azure)Queue 表引擎,使其在 ZooKeeper 连接丢失时也能继续运行且不会产生潜在的重复数据。需要启用 S3Queue 设置 `use_persistent_processing_nodes`(可通过 `ALTER TABLE MODIFY SETTING` 更改)。[#85995](https://github.com/ClickHouse/ClickHouse/pull/85995)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 在创建物化视图时,可以在 `TO` 之后使用查询参数,例如:`CREATE MATERIALIZED VIEW mv TO {to_table:Identifier} AS SELECT * FROM src_table`。[#84899](https://github.com/ClickHouse/ClickHouse/pull/84899)([Diskein](https://github.com/Diskein))。 -* 当为 `Kafka2` 表引擎指定错误设置时,现在会向用户提供更清晰的说明。[#83701](https://github.com/ClickHouse/ClickHouse/pull/83701)([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 -* 不再支持为 `Time` 类型指定时区(这样做在语义上没有意义)。[#84689](https://github.com/ClickHouse/ClickHouse/pull/84689) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* 在 `best_effort` 模式下,简化了与解析 Time/Time64 相关的逻辑,并修复了一些缺陷。[#84730](https://github.com/ClickHouse/ClickHouse/pull/84730) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* 新增 `deltaLakeAzureCluster` 函数(类似于 `deltaLakeAzure` 的集群模式版本)以及 `deltaLakeS3Cluster` 函数(`deltaLakeCluster` 的别名)。解决了 [#85358](https://github.com/ClickHouse/ClickHouse/issues/85358)。[#85547](https://github.com/ClickHouse/ClickHouse/pull/85547)([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 -* 在常规复制操作中,以与备份相同的方式应用 `azure_max_single_part_copy_size` 设置。[#85767](https://github.com/ClickHouse/ClickHouse/pull/85767) ([Ilya Golshtein](https://github.com/ilejn))。 -* 在 S3 对象存储中,当出现可重试错误时放慢 S3 客户端线程。此更改将之前的设置 `backup_slow_all_threads_after_retryable_s3_error` 扩展到 S3 磁盘,并将其重命名为更通用的 `s3_slow_all_threads_after_retryable_error`。[#85918](https://github.com/ClickHouse/ClickHouse/pull/85918) ([Julia Kartseva](https://github.com/jkartseva))。 -* 将设置 allow_experimental_variant/dynamic/json 和 enable_variant/dynamic/json 标记为已废弃。现在这三种类型都会被无条件启用。[#85934](https://github.com/ClickHouse/ClickHouse/pull/85934) ([Pavel Kruglov](https://github.com/Avogar))。 -* 在 `http_handlers` 中支持按完整 URL 字符串(`full_url` 指令,包括 scheme 和 host:port)进行过滤。[#86155](https://github.com/ClickHouse/ClickHouse/pull/86155)([Azat Khuzhin](https://github.com/azat))。 -* 新增了一个设置 `allow_experimental_delta_lake_writes`。[#86180](https://github.com/ClickHouse/ClickHouse/pull/86180) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* 修复 init.d 脚本中对 systemd 的检测(从而修复“安装软件包”(Install packages)检查)。[#86187](https://github.com/ClickHouse/ClickHouse/pull/86187) ([Azat Khuzhin](https://github.com/azat))。 -* 新增一个名为 `startup_scripts_failure_reason` 的维度指标。该指标用于区分会导致启动脚本失败的不同错误类型。特别是为了告警目的,我们需要区分瞬时错误(例如 `MEMORY_LIMIT_EXCEEDED` 或 `KEEPER_EXCEPTION`)与非瞬时错误。[#86202](https://github.com/ClickHouse/ClickHouse/pull/86202)([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 -* 允许在 Iceberg 表的分区定义中省略 `identity` 函数。 [#86314](https://github.com/ClickHouse/ClickHouse/pull/86314) ([scanhex12](https://github.com/scanhex12)). -* 添加仅针对特定通道启用 JSON 日志的功能。为此,将 `logger.formatting.channel` 设置为 `syslog`/`console`/`errorlog`/`log` 之一。 [#86331](https://github.com/ClickHouse/ClickHouse/pull/86331) ([Azat Khuzhin](https://github.com/azat)). -* 允许在 `WHERE` 中使用原生数值类型。它们已经可以作为逻辑函数的参数使用。这简化了过滤下推(filter-push-down)和移动到 PREWHERE(move-to-prewhere)的优化。[#86390](https://github.com/ClickHouse/ClickHouse/pull/86390) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* 修复了在针对元数据损坏的 Catalog 执行 `SYSTEM DROP REPLICA` 时出现的错误。[#86391](https://github.com/ClickHouse/ClickHouse/pull/86391) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* 在 Azure 中为磁盘访问检查(`skip_access_check = 0`)添加额外重试,因为磁盘访问权限的开通可能需要相当长的时间。[#86419](https://github.com/ClickHouse/ClickHouse/pull/86419)([Alexander Tokmakov](https://github.com/tavplubix))。 -* 将 `timeSeries*()` 函数中的陈旧时间窗口设为左开右闭区间。 [#86588](https://github.com/ClickHouse/ClickHouse/pull/86588) ([Vitaly Baranov](https://github.com/vitlibar)). -* 添加 `FailedInternal*Query` 概要事件(profile events)。 [#86627](https://github.com/ClickHouse/ClickHouse/pull/86627) ([Shane Andrade](https://github.com/mauidude))。 -* 修复了通过配置文件添加用户名中包含点的用户时的处理问题。[#86633](https://github.com/ClickHouse/ClickHouse/pull/86633) ([Mikhail Koviazin](https://github.com/mkmkme)). -* 添加用于查询内存使用情况的异步指标(`QueriesMemoryUsage` 和 `QueriesPeakMemoryUsage`)。[#86669](https://github.com/ClickHouse/ClickHouse/pull/86669) ([Azat Khuzhin](https://github.com/azat)). -* 你可以使用 `clickhouse-benchmark --precise` 选项来更精确地报告 QPS 和其他按时间间隔统计的指标。当查询的执行时长与报告间隔 `--delay D` 相当时,这有助于获得稳定的 QPS。 [#86684](https://github.com/ClickHouse/ClickHouse/pull/86684) ([Sergei Trifonov](https://github.com/serxa)). -* 使 Linux 线程的 nice 值可配置,从而可以为某些线程(merge/mutate、query、物化视图、ZooKeeper 客户端)设置更高或更低的优先级。[#86703](https://github.com/ClickHouse/ClickHouse/pull/86703) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* 修复具有误导性的 “specified upload does not exist” 错误,该错误会在分片上传过程中因竞争条件导致原始异常丢失时出现。 [#86725](https://github.com/ClickHouse/ClickHouse/pull/86725) ([Julia Kartseva](https://github.com/jkartseva)). -* 限制 `EXPLAIN` 查询中的查询计划描述长度。对非 `EXPLAIN` 查询不再计算描述。新增设置 `query_plan_max_step_description_length`。 [#86741](https://github.com/ClickHouse/ClickHouse/pull/86741) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* 新增对待处理信号进行调优的能力,以尝试解决 CANNOT_CREATE_TIMER 问题(针对查询分析器:`query_profiler_real_time_period_ns`/`query_profiler_cpu_time_period_ns`)。同时从 `/proc/self/status` 中收集 `SigQ` 用于自检(如果 `ProcessSignalQueueSize` 接近 `ProcessSignalQueueLimit`,则很可能会出现 `CANNOT_CREATE_TIMER` 错误)。 [#86760](https://github.com/ClickHouse/ClickHouse/pull/86760) ([Azat Khuzhin](https://github.com/azat))。 -* 提高 Keeper 中 `RemoveRecursive` 请求的性能。[#86789](https://github.com/ClickHouse/ClickHouse/pull/86789) ([Antonio Andelic](https://github.com/antonio2368)). -* 在输出 JSON 类型时,移除 `PrettyJSONEachRow` 中的多余空白字符。[#86819](https://github.com/ClickHouse/ClickHouse/pull/86819)([Pavel Kruglov](https://github.com/Avogar))。 -* 现在在删除普通可重写磁盘上的目录时,会为 `prefix.path` 记录 blob 的大小。[#86908](https://github.com/ClickHouse/ClickHouse/pull/86908) ([alesapin](https://github.com/alesapin))。 -* 支持对远程 ClickHouse 实例(包括 ClickHouse Cloud)进行性能测试。使用示例:`tests/performance/scripts/perf.py tests/performance/math.xml --runs 10 --user --password --host --port --secure`。[#86995](https://github.com/ClickHouse/ClickHouse/pull/86995)([Raufs Dunamalijevs](https://github.com/rienath))。 -* 在已知会分配大量内存(>16MiB)的地方(排序、异步插入、FileLog)中遵守内存限制。[#87035](https://github.com/ClickHouse/ClickHouse/pull/87035)([Azat Khuzhin](https://github.com/azat))。 -* 如果将 `network_compression_method` 设置为不受支持的通用编解码器,则抛出异常。 [#87097](https://github.com/ClickHouse/ClickHouse/pull/87097) ([Robert Schulze](https://github.com/rschu1ze)). -* 系统表 `system.query_cache` 现在会返回*所有*查询结果缓存条目,而之前只返回共享条目,或当前用户和角色的非共享条目。这是合理的,因为非共享条目本身就不应泄露*查询结果*,而 `system.query_cache` 返回的是*查询字符串*。这使得该系统表的行为更接近 `system.query_log`。[#87104](https://github.com/ClickHouse/ClickHouse/pull/87104) ([Robert Schulze](https://github.com/rschu1ze)). -* 启用 `parseDateTime` 函数的短路求值。 [#87184](https://github.com/ClickHouse/ClickHouse/pull/87184) ([Pavel Kruglov](https://github.com/Avogar)). -* 在 `system.parts_columns` 中新增 `statistics` 列。[#87259](https://github.com/ClickHouse/ClickHouse/pull/87259) ([Han Fei](https://github.com/hanfei1991)). - -#### 缺陷修复(官方稳定版中用户可见的异常行为) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* 对于复制数据库和内部复制表,`ALTER` 查询的结果现在仅在发起节点上进行验证。这将修复这样的问题:某个已提交的 `ALTER` 查询可能会在其他节点上卡住不动。[#83849](https://github.com/ClickHouse/ClickHouse/pull/83849) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 -* 限制 `BackgroundSchedulePool` 中每种类型任务的数量。避免出现所有槽位都被同一类型任务占满、导致其他任务饥饿的情况,并避免任务相互等待而产生死锁。该行为由服务器设置项 `background_schedule_pool_max_parallel_tasks_per_type_ratio` 控制。[#84008](https://github.com/ClickHouse/ClickHouse/pull/84008) ([Alexander Tokmakov](https://github.com/tavplubix))。 -* 在恢复数据库副本时应正确关闭表,否则会在恢复过程中导致某些表引擎出现 LOGICAL_ERROR。 [#84744](https://github.com/ClickHouse/ClickHouse/pull/84744) ([Antonio Andelic](https://github.com/antonio2368)). -* 在为数据库名称生成拼写更正建议时检查访问权限。[#85371](https://github.com/ClickHouse/ClickHouse/pull/85371)([Dmitry Novik](https://github.com/novikd))。 -* 1. 对 hive 列使用 LowCardinality 2. 在虚拟列之前填充 hive 列([https://github.com/ClickHouse/ClickHouse/pull/81040](https://github.com/ClickHouse/ClickHouse/pull/81040) 所必需)3. 在 hive 的空格式上触发 LOGICAL_ERROR [#85528](https://github.com/ClickHouse/ClickHouse/issues/85528) 4. 修复对“hive 分区列是否是唯一列”的检查 5. 断言在 schema 中显式指定了所有 hive 列 6. 针对带有 hive 的 parallel_replicas_cluster 的部分修复 7. 在 hive 工具的 extractKeyValuePairs 中使用有序容器([https://github.com/ClickHouse/ClickHouse/pull/81040](https://github.com/ClickHouse/ClickHouse/pull/81040) 所必需)。[#85538](https://github.com/ClickHouse/ClickHouse/pull/85538) ([Arthur Passos](https://github.com/arthurpassos))。 -* 防止对 `IN` 函数的第一个参数进行不必要的优化,以避免在使用数组映射时偶发错误。 [#85546](https://github.com/ClickHouse/ClickHouse/pull/85546) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* 在写入 Parquet 文件时,Iceberg 源 ID 与 Parquet 名称之间的映射没有根据当时的 schema 进行调整。此 PR 会基于每个 Iceberg 数据文件自身的 schema 进行处理,而不是使用当前的 schema。 [#85829](https://github.com/ClickHouse/ClickHouse/pull/85829) ([Daniil Ivanik](https://github.com/divanik)). -* 修复了在打开文件时单独读取其大小的问题。该修复与 [https://github.com/ClickHouse/ClickHouse/pull/33372](https://github.com/ClickHouse/ClickHouse/pull/33372) 相关,该变更是为修复 `5.10` 版本发布之前的 Linux 内核中的一个 bug 而引入的。[#85837](https://github.com/ClickHouse/ClickHouse/pull/85837)([Konstantin Bogdanov](https://github.com/thevar1able))。 -* 在内核级禁用 IPv6 的系统上(例如在 RHEL 上设置 `ipv6.disable=1`),ClickHouse Keeper 不再启动失败。现在,如果初始 IPv6 监听创建失败,它会尝试回退为使用 IPv4 监听。[#85901](https://github.com/ClickHouse/ClickHouse/pull/85901)([jskong1124](https://github.com/jskong1124))。 -* 此 PR 关闭了 [#77990](https://github.com/ClickHouse/ClickHouse/issues/77990),为 globalJoin 中的并行副本添加了对 TableFunctionRemote 的支持。[#85929](https://github.com/ClickHouse/ClickHouse/pull/85929)([zoomxi](https://github.com/zoomxi))。 -* 修复 `orcschemareader::initializeifneeded()` 中的空指针。此 PR 解决以下问题:[#85292](https://github.com/ClickHouse/ClickHouse/issues/85292) ### 用户可见变更的文档条目。[#85951](https://github.com/ClickHouse/ClickHouse/pull/85951) ([yanglongwei](https://github.com/ylw510))。 -* 添加检查,仅当 `FROM` 子句中的关联子查询使用外层查询中的列时才允许。修复 [#85469](https://github.com/ClickHouse/ClickHouse/issues/85469)。修复 [#85402](https://github.com/ClickHouse/ClickHouse/issues/85402)。[#85966](https://github.com/ClickHouse/ClickHouse/pull/85966)([Dmitry Novik](https://github.com/novikd))。 -* 修复在对某个列执行 `ALTER UPDATE` 时,如果该列的某个子列被用于其他列的 `MATERIALIZED` 表达式的情况。此前,在表达式中包含该子列的物化列不会被正确更新。 [#85985](https://github.com/ClickHouse/ClickHouse/pull/85985) ([Pavel Kruglov](https://github.com/Avogar)). -* 禁止修改其子列用作主键或分区表达式的列。[#86005](https://github.com/ClickHouse/ClickHouse/pull/86005) ([Pavel Kruglov](https://github.com/Avogar))。 -* 修复在 DeltaLake 存储引擎中使用非默认列映射模式读取子列的问题。 [#86064](https://github.com/ClickHouse/ClickHouse/pull/86064) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 修复在 JSON 中带有 Enum 提示的路径使用了错误的默认值的问题。[#86065](https://github.com/ClickHouse/ClickHouse/pull/86065) ([Pavel Kruglov](https://github.com/Avogar)). -* 对 DataLake hive catalog URL 的解析增加了输入校验与清理。关闭了 [#86018](https://github.com/ClickHouse/ClickHouse/issues/86018)。[#86092](https://github.com/ClickHouse/ClickHouse/pull/86092)([rajat mohan](https://github.com/rajatmohan22))。 -* 修复文件系统缓存动态调整大小过程中的逻辑错误。关闭 [#86122](https://github.com/ClickHouse/ClickHouse/issues/86122)。关闭 [https://github.com/ClickHouse/clickhouse-core-incidents/issues/473](https://github.com/ClickHouse/clickhouse-core-incidents/issues/473)。[#86130](https://github.com/ClickHouse/ClickHouse/pull/86130)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 在 DatabaseReplicatedSettings 中对 `logs_to_keep` 使用 `NonZeroUInt64` 类型。[#86142](https://github.com/ClickHouse/ClickHouse/pull/86142)([Tuan Pham Anh](https://github.com/tuanpach))。 -* 在对使用 `index_granularity_bytes = 0` 设置创建的表(例如 `ReplacingMergeTree`)执行带有跳过索引的 `FINAL` 查询时,会抛出异常。该异常现已修复。[#86147](https://github.com/ClickHouse/ClickHouse/pull/86147) ([Shankar Iyer](https://github.com/shankar-iyer)). -* 消除了未定义行为(UB),并修复了 Iceberg 分区表达式的解析问题。[#86166](https://github.com/ClickHouse/ClickHouse/pull/86166) ([Daniil Ivanik](https://github.com/divanik)). -* 修复在一次 INSERT 中同时包含 const 和非 const 块时可能发生的崩溃问题。[#86230](https://github.com/ClickHouse/ClickHouse/pull/86230) ([Azat Khuzhin](https://github.com/azat)). -* 通过 SQL 创建磁盘时,现在会默认处理 `/etc/metrika.xml` 中的 include 配置。[#86232](https://github.com/ClickHouse/ClickHouse/pull/86232) ([alekar](https://github.com/alekar))。 -* 修复 accurateCastOrNull/accurateCastOrDefault 从 String 到 JSON 的转换问题。 [#86240](https://github.com/ClickHouse/ClickHouse/pull/86240) ([Pavel Kruglov](https://github.com/Avogar)). -* 在 Iceberg 引擎中支持不含 '/' 的目录。[#86249](https://github.com/ClickHouse/ClickHouse/pull/86249) ([scanhex12](https://github.com/scanhex12)). -* 修复在 `replaceRegex` 中使用 `FixedString` 类型的 haystack 且 needle 为空时的崩溃。[#86270](https://github.com/ClickHouse/ClickHouse/pull/86270) ([Raúl Marín](https://github.com/Algunenano))。 -* 修复在执行 ALTER UPDATE Nullable(JSON) 时发生的崩溃。 [#86281](https://github.com/ClickHouse/ClickHouse/pull/86281) ([Pavel Kruglov](https://github.com/Avogar))。 -* 修复 `system.tables` 中缺失的列定义字段。 [#86295](https://github.com/ClickHouse/ClickHouse/pull/86295) ([Raúl Marín](https://github.com/Algunenano)). -* 修复从 LowCardinality(Nullable(T)) 到 Dynamic 的类型转换问题。 [#86365](https://github.com/ClickHouse/ClickHouse/pull/86365) ([Pavel Kruglov](https://github.com/Avogar)). -* 修复了向 DeltaLake 写入时的逻辑错误。关闭 [#86175](https://github.com/ClickHouse/ClickHouse/issues/86175)。[#86367](https://github.com/ClickHouse/ClickHouse/pull/86367)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 修复在从 Azure Blob 存储读取空 blob 时,plain_rewritable 磁盘出现 `416 The range specified is invalid for the current size of the resource. The range specified is invalid for the current size of the resource` 错误的问题。 [#86400](https://github.com/ClickHouse/ClickHouse/pull/86400) ([Julia Kartseva](https://github.com/jkartseva)). -* 修复在 Nullable(JSON) 上执行 GROUP BY 时的问题。 [#86410](https://github.com/ClickHouse/ClickHouse/pull/86410) ([Pavel Kruglov](https://github.com/Avogar)). -* 修复了物化视图的一个问题:如果一个物化视图被创建、删除后又以相同名称重新创建,则可能无法正常工作。[#86413](https://github.com/ClickHouse/ClickHouse/pull/86413) ([Alexander Tokmakov](https://github.com/tavplubix))。 -* 在从 *cluster 系列函数读取时,如果所有副本都不可用则失败。 [#86414](https://github.com/ClickHouse/ClickHouse/pull/86414) ([Julian Maicher](https://github.com/jmaicher)). -* 修复由于 `Buffer` 表导致的 `MergesMutationsMemoryTracking` 泄漏,并修复用于从 `Kafka`(及其他)进行流式读取的 `query_views_log`。[#86422](https://github.com/ClickHouse/ClickHouse/pull/86422)([Azat Khuzhin](https://github.com/azat))。 -* 修复在删除别名存储的引用表后执行 `SHOW TABLES` 的行为。 [#86433](https://github.com/ClickHouse/ClickHouse/pull/86433) ([RinChanNOW](https://github.com/RinChanNOWWW)). -* 修复在启用 `send_chunk_header` 且通过 HTTP 协议调用 UDF 时分块头缺失的问题。 [#86469](https://github.com/ClickHouse/ClickHouse/pull/86469) ([Vladimir Cherkasov](https://github.com/vdimir)). -* 修复在启用 jemalloc profile 刷新功能时可能发生的死锁。[#86473](https://github.com/ClickHouse/ClickHouse/pull/86473) ([Azat Khuzhin](https://github.com/azat)). -* 修复 DeltaLake 表引擎中子列读取问题。关闭 [#86204](https://github.com/ClickHouse/ClickHouse/issues/86204)。[#86477](https://github.com/ClickHouse/ClickHouse/pull/86477) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 正确处理回环主机 ID,避免在处理 DDL 任务时发生冲突。[#86479](https://github.com/ClickHouse/ClickHouse/pull/86479) ([Tuan Pham Anh](https://github.com/tuanpach)). -* 修复了针对包含 numeric/decimal 列的 Postgres 数据库引擎表的 detach/attach 操作。[#86480](https://github.com/ClickHouse/ClickHouse/pull/86480) ([Julian Maicher](https://github.com/jmaicher))。 -* 修复在 getSubcolumnType 中使用未初始化内存的问题。[#86498](https://github.com/ClickHouse/ClickHouse/pull/86498) ([Raúl Marín](https://github.com/Algunenano)). -* 函数 `searchAny` 和 `searchAll` 在以空 needle 调用时现在会返回 `true`(即“匹配任意内容”)。之前它们会返回 `false`。(issue [#86300](https://github.com/ClickHouse/ClickHouse/issues/86300))。[#86500](https://github.com/ClickHouse/ClickHouse/pull/86500)([Elmi Ahmadov](https://github.com/ahmadov))。 -* 修复函数 `timeSeriesResampleToGridWithStaleness()` 在第一个 bucket 没有值时的行为。[#86507](https://github.com/ClickHouse/ClickHouse/pull/86507)([Vitaly Baranov](https://github.com/vitlibar))。 -* 修复由于将 `merge_tree_min_read_task_size` 设置为 0 引发的崩溃问题。[#86527](https://github.com/ClickHouse/ClickHouse/pull/86527) ([yanglongwei](https://github.com/ylw510)). -* 读取时会从 Iceberg 元数据中获取每个数据文件的格式(此前是从表参数中获取)。 [#86529](https://github.com/ClickHouse/ClickHouse/pull/86529) ([Daniil Ivanik](https://github.com/divanik))。 -* 在关闭时刷新日志的过程中忽略异常,使关闭过程更加安全(避免 SIGSEGV)。[#86546](https://github.com/ClickHouse/ClickHouse/pull/86546)([Azat Khuzhin](https://github.com/azat))。 -* 修复 `Backup` 数据库引擎在查询包含大小为零的分片文件时抛出异常的问题。 [#86563](https://github.com/ClickHouse/ClickHouse/pull/86563) ([Max Justus Spransy](https://github.com/maxjustus)). -* 修复在启用 `send_chunk_header` 并通过 HTTP 协议调用 UDF 时缺失 chunk header 的问题。 [#86606](https://github.com/ClickHouse/ClickHouse/pull/86606) ([Vladimir Cherkasov](https://github.com/vdimir)). -* 修复由于 keeper 会话过期导致的 S3Queue 逻辑错误 "Expected current processor {} to be equal to {}"。[#86615](https://github.com/ClickHouse/ClickHouse/pull/86615)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 修复了插入和分区裁剪中的可空性缺陷。已关闭 [#86407](https://github.com/ClickHouse/ClickHouse/issues/86407)。[#86630](https://github.com/ClickHouse/ClickHouse/pull/86630)([scanhex12](https://github.com/scanhex12))。 -* 如果已禁用 Iceberg 元数据缓存,请不要禁用文件系统缓存。 [#86635](https://github.com/ClickHouse/ClickHouse/pull/86635) ([Daniil Ivanik](https://github.com/divanik)). -* 修复了 parquet reader v3 中出现的 “Deadlock in Parquet::ReadManager (single-threaded)” 错误。 [#86644](https://github.com/ClickHouse/ClickHouse/pull/86644) ([Michael Kolupaev](https://github.com/al13n321)). -* 修复 ArrowFlight 的 `listen_host` 对 IPv6 的支持。[#86664](https://github.com/ClickHouse/ClickHouse/pull/86664)([Vitaly Baranov](https://github.com/vitlibar))。 -* 修复 `ArrowFlight` 处理程序中的关闭逻辑。此 PR 解决了 [#86596](https://github.com/ClickHouse/ClickHouse/issues/86596)。[#86665](https://github.com/ClickHouse/ClickHouse/pull/86665)([Vitaly Baranov](https://github.com/vitlibar))。 -* 通过设置 `describe_compact_output=1` 修复分布式查询问题。[#86676](https://github.com/ClickHouse/ClickHouse/pull/86676) ([Azat Khuzhin](https://github.com/azat)). -* 修复窗口定义的解析和查询参数的应用。 [#86720](https://github.com/ClickHouse/ClickHouse/pull/86720) ([Azat Khuzhin](https://github.com/azat)). -* 修复在使用 `PARTITION BY` 创建表但未使用分区通配符时,错误抛出异常 `Partition strategy wildcard can not be used without a '_partition_id' wildcard.` 的问题;这种用法在 25.8 之前的版本中是可行的。关闭:[https://github.com/ClickHouse/clickhouse-private/issues/37567](https://github.com/ClickHouse/clickhouse-private/issues/37567)。[#86748](https://github.com/ClickHouse/ClickHouse/pull/86748)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 修复并行查询尝试获取同一个锁时出现的 LogicalError。 [#86751](https://github.com/ClickHouse/ClickHouse/pull/86751) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* 修复在 RowBinary 输入格式中将 NULL 写入 JSON 共享数据的问题,并在 ColumnObject 中增加一些额外的校验。[#86812](https://github.com/ClickHouse/ClickHouse/pull/86812) ([Pavel Kruglov](https://github.com/Avogar))。 -* 修复在使用 `limit` 时空 `Tuple` 的排列问题。 [#86828](https://github.com/ClickHouse/ClickHouse/pull/86828) ([Pavel Kruglov](https://github.com/Avogar)). -* 不要为持久化处理节点使用单独的 keeper 节点。用于修复 [https://github.com/ClickHouse/ClickHouse/pull/85995](https://github.com/ClickHouse/ClickHouse/pull/85995)。关闭了 [#86406](https://github.com/ClickHouse/ClickHouse/issues/86406)。[#86841](https://github.com/ClickHouse/ClickHouse/pull/86841)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 修复 TimeSeries 引擎表导致无法在 Replicated Database 中创建新副本的问题。 [#86845](https://github.com/ClickHouse/ClickHouse/pull/86845) ([Nikolay Degterinsky](https://github.com/evillique)). -* 修复当任务缺少某些 Keeper 节点时对 `system.distributed_ddl_queue` 的查询问题。 [#86848](https://github.com/ClickHouse/ClickHouse/pull/86848) ([Antonio Andelic](https://github.com/antonio2368)). -* 修复在解压后数据块末尾进行定位时的问题。 [#86906](https://github.com/ClickHouse/ClickHouse/pull/86906) ([Pavel Kruglov](https://github.com/Avogar)). -* 在异步执行 Iceberg Iterator 期间抛出的进程异常。[#86932](https://github.com/ClickHouse/ClickHouse/pull/86932) ([Daniil Ivanik](https://github.com/divanik)). -* 修复保存大体积预处理 XML 配置时的问题。[#86934](https://github.com/ClickHouse/ClickHouse/pull/86934) ([c-end](https://github.com/c-end)). -* 修复 `system.iceberg_metadata_log` 表中日期字段填充逻辑的问题。 [#86961](https://github.com/ClickHouse/ClickHouse/pull/86961) ([Daniil Ivanik](https://github.com/divanik)). -* 修复了在使用 `WHERE` 时对 `TTL` 的无限重算问题。 [#86965](https://github.com/ClickHouse/ClickHouse/pull/86965) ([Anton Popov](https://github.com/CurtizJ)). -* 修复了在使用 `ROLLUP` 和 `CUBE` 修饰符时,`uniqExact` 函数可能返回不正确结果的问题。 [#87014](https://github.com/ClickHouse/ClickHouse/pull/87014) ([Nikita Taranov](https://github.com/nickitat)). -* 修复在 `parallel_replicas_for_cluster_functions` 设置为 1 时使用 `url()` 表函数解析表结构的问题。[#87029](https://github.com/ClickHouse/ClickHouse/pull/87029) ([Konstantin Bogdanov](https://github.com/thevar1able))。 -* 在将 `PREWHERE` 拆分为多个步骤后,正确对其输出进行类型转换。[#87040](https://github.com/ClickHouse/ClickHouse/pull/87040) ([Antonio Andelic](https://github.com/antonio2368))。 -* 修复了使用 `ON CLUSTER` 子句的轻量级更新问题。[#87043](https://github.com/ClickHouse/ClickHouse/pull/87043) ([Anton Popov](https://github.com/CurtizJ)). -* 修复部分带有 `String` 参数的聚合函数状态的兼容性问题。 [#87049](https://github.com/ClickHouse/ClickHouse/pull/87049) ([Pavel Kruglov](https://github.com/Avogar)). -* 修复了一个来自 OpenAI 的模型名称未被正确传递的问题。 [#87100](https://github.com/ClickHouse/ClickHouse/pull/87100) ([Kaushik Iska](https://github.com/iskakaushik)). -* EmbeddedRocksDB:路径必须位于 user_files 目录内。[#87109](https://github.com/ClickHouse/ClickHouse/pull/87109) ([Raúl Marín](https://github.com/Algunenano))。 -* 修复在 25.1 之前创建的 KeeperMap 表在执行 DROP 查询后仍会在 ZooKeeper 中遗留数据的问题。 [#87112](https://github.com/ClickHouse/ClickHouse/pull/87112) ([Nikolay Degterinsky](https://github.com/evillique)). -* 修复在读取 Parquet 时对 map 和 array 字段 ID 的处理问题。 [#87136](https://github.com/ClickHouse/ClickHouse/pull/87136) ([scanhex12](https://github.com/scanhex12)). -* 修复惰性物化(lazy materialization)中读取带有 array sizes 子列的数组时的问题。 [#87139](https://github.com/ClickHouse/ClickHouse/pull/87139) ([Pavel Kruglov](https://github.com/Avogar))。 -* 修复 CASE 函数在使用 Dynamic 参数时的问题。[#87177](https://github.com/ClickHouse/ClickHouse/pull/87177) ([Pavel Kruglov](https://github.com/Avogar)). -* 修复在 CSV 中将空字符串解析为空数组的问题。[#87182](https://github.com/ClickHouse/ClickHouse/pull/87182) ([Pavel Kruglov](https://github.com/Avogar))。 -* 修复非关联 `EXISTS` 可能产生错误结果的问题。该问题是在引入 `execute_exists_as_scalar_subquery=1` 时出现的,此设置是在 [https://github.com/ClickHouse/ClickHouse/pull/85481](https://github.com/ClickHouse/ClickHouse/pull/85481) 中引入的,并影响 `25.8` 版本。修复 [#86415](https://github.com/ClickHouse/ClickHouse/issues/86415)。[#87207](https://github.com/ClickHouse/ClickHouse/pull/87207)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* 如果未配置 iceberg_metadata_log,但用户尝试获取 Iceberg 元数据调试信息,则抛出错误。修复空指针解引用问题。 [#87250](https://github.com/ClickHouse/ClickHouse/pull/87250) ([Daniil Ivanik](https://github.com/divanik)). - -#### 构建/测试/打包改进 {#buildtestingpackaging-improvement} - -* 修复与 abseil-cpp 20250814.0 的兼容性问题(参见 https://github.com/abseil/abseil-cpp/issues/1923)。 [#85970](https://github.com/ClickHouse/ClickHouse/pull/85970) ([Yuriy Chernyshov](https://github.com/georgthegreat)). -* 将构建独立 WASM 词法分析器置于一个开关控制之下。 [#86505](https://github.com/ClickHouse/ClickHouse/pull/86505) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* 修复在不支持 `vmull_p64` 指令的较旧 ARM CPU 上构建 crc32c 的问题。 [#86521](https://github.com/ClickHouse/ClickHouse/pull/86521) ([Pablo Marcos](https://github.com/pamarcos)). -* 使用 `openldap` 2.6.10。 [#86623](https://github.com/ClickHouse/ClickHouse/pull/86623) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* 不再尝试在 darwin 上拦截 `memalign`。 [#86769](https://github.com/ClickHouse/ClickHouse/pull/86769) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* 使用 `krb5` 1.22.1-final。 [#86836](https://github.com/ClickHouse/ClickHouse/pull/86836) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* 修复在 `list-licenses.sh` 中解析 Rust crate 名称的问题。 [#87305](https://github.com/ClickHouse/ClickHouse/pull/87305) ([Konstantin Bogdanov](https://github.com/thevar1able)). - -### ClickHouse 25.8 LTS 发布版本,2025-08-28 {#258} - -#### 向后不兼容的变更 {#backward-incompatible-change} - -* 对于 JSON 中包含不同类型值的数组,推断为 `Array(Dynamic)` 而不是未命名的 `Tuple`。要恢复之前的行为,请禁用设置 `input_format_json_infer_array_of_dynamic_from_array_of_different_types`。[#80859](https://github.com/ClickHouse/ClickHouse/pull/80859) ([Pavel Kruglov](https://github.com/Avogar))。 -* 将 S3 延迟指标迁移为直方图,以提升一致性和简化性。[#82305](https://github.com/ClickHouse/ClickHouse/pull/82305) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 -* 在默认表达式中,要求对包含点号的标识符使用反引号包裹,以防止其被解析为复合标识符。[#83162](https://github.com/ClickHouse/ClickHouse/pull/83162) ([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 -* 惰性物化仅在启用了 analyzer(默认启用)时可用,以避免同时维护无 analyzer 的模式——根据我们的经验,无 analyzer 模式在某些情况下(例如在条件中使用 `indexHint()` 时)会存在问题。[#83791](https://github.com/ClickHouse/ClickHouse/pull/83791) ([Igor Nikonov](https://github.com/devcrafter))。 -* 在 Parquet 输出格式中,默认将 `Enum` 类型的值写为逻辑类型为 `ENUM` 的 `BYTE_ARRAY`。[#84169](https://github.com/ClickHouse/ClickHouse/pull/84169) ([Pavel Kruglov](https://github.com/Avogar))。 -* 默认启用 MergeTree 设置 `write_marks_for_substreams_in_compact_parts`。这显著提升从新创建的 Compact part 中读取子列的性能。版本低于 25.5 的服务器将无法读取新的 Compact part。[#84171](https://github.com/ClickHouse/ClickHouse/pull/84171) ([Pavel Kruglov](https://github.com/Avogar))。 -* 之前 `concurrent_threads_scheduler` 的默认值是 `round_robin`,在存在大量单线程查询(例如 INSERT)时被证明是不公平的。此次更改将更安全的 `fair_round_robin` 调度器设为默认值。[#84747](https://github.com/ClickHouse/ClickHouse/pull/84747) ([Sergei Trifonov](https://github.com/serxa))。 -* ClickHouse 支持 PostgreSQL 风格的 heredoc 语法:`$tag$ string contents... $tag$`,也称为 dollar-quoted 字符串字面量。在之前的版本中,对 tag 的限制更少:它们可以包含任意字符,包括标点和空白。这会与同样可以以美元符号开头的标识符产生解析歧义。同时,PostgreSQL 仅允许在 tag 中使用“单词字符”(字母、数字和下划线)。为解决该问题,我们现在将 heredoc 的 tag 限制为只能包含单词字符。据此关闭 [#84731](https://github.com/ClickHouse/ClickHouse/issues/84731)。[#84846](https://github.com/ClickHouse/ClickHouse/pull/84846) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 函数 `azureBlobStorage`、`deltaLakeAzure` 和 `icebergAzure` 已更新,以正确校验 `AZURE` 权限。所有集群变体函数(`-Cluster` 函数)现在会针对其对应的非集群函数验证权限。此外,`icebergLocal` 和 `deltaLakeLocal` 函数现在会强制执行 `FILE` 权限检查。[#84938](https://github.com/ClickHouse/ClickHouse/pull/84938) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 -* 默认启用 `allow_dynamic_metadata_for_data_lakes` 设置(表引擎级别设置)。[#85044](https://github.com/ClickHouse/ClickHouse/pull/85044) ([Daniil Ivanik](https://github.com/divanik))。 -* 默认禁用在 JSON 格式中对 64 位整数加引号。[#74079](https://github.com/ClickHouse/ClickHouse/pull/74079) ([Pavel Kruglov](https://github.com/Avogar)) - -#### 新功能 {#new-feature} - -* 已添加对 PromQL 方言的基本支持。要使用它,请在 clickhouse-client 中设置 `dialect='promql'`,并通过设置 `promql_table_name='X'` 将其指向 TimeSeries 表,然后执行类似 `rate(ClickHouseProfileEvents_ReadCompressedBytes[1m])[5m:1m]` 的查询。此外,还可以通过 SQL 包装 PromQL 查询:`SELECT * FROM prometheusQuery('up', ...);`。目前仅支持 `rate`、`delta` 和 `increase` 函数。不支持一元/二元运算符,也不提供 HTTP API。[#75036](https://github.com/ClickHouse/ClickHouse/pull/75036)([Vitaly Baranov](https://github.com/vitlibar))。 -* AI 驱动的 SQL 生成功能现在可以在环境中自动读取 ANTHROPIC_API_KEY 和 OPENAI_API_KEY(如果存在),从而实现零配置即可使用此功能。 [#83787](https://github.com/ClickHouse/ClickHouse/pull/83787) ([Kaushik Iska](https://github.com/iskakaushik)). -* 通过添加新的表函数 `arrowflight` 来实现对 [ArrowFlight RPC](https://arrow.apache.org/docs/format/Flight.html) 协议的支持。[#74184](https://github.com/ClickHouse/ClickHouse/pull/74184)([zakr600](https://github.com/zakr600))。 -* 现在所有表都支持 `_table` 虚拟列(不仅限于使用 `Merge` 引擎的表),这对于包含 UNION ALL 的查询尤其有用。[#63665](https://github.com/ClickHouse/ClickHouse/pull/63665)([Xiaozhe Yu](https://github.com/wudidapaopao))。 -* 允许在外部聚合/排序中使用任意存储策略(例如 S3 等对象存储)。 [#84734](https://github.com/ClickHouse/ClickHouse/pull/84734) ([Azat Khuzhin](https://github.com/azat)). -* 基于显式指定的 IAM 角色实现 AWS S3 身份验证;为 GCS 实现 OAuth 支持。这些特性此前仅在 ClickHouse Cloud 中可用,现在已经开源。统一部分接口,例如对象存储连接参数的序列化方式。[#84011](https://github.com/ClickHouse/ClickHouse/pull/84011) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 支持 Iceberg TableEngine 的 position delete 操作。[#83094](https://github.com/ClickHouse/ClickHouse/pull/83094) ([Daniil Ivanik](https://github.com/divanik)). -* 支持 Iceberg Equality Deletes。[#85843](https://github.com/ClickHouse/ClickHouse/pull/85843) ([Han Fei](https://github.com/hanfei1991)). -* 支持在 `CREATE` 操作中写入 Iceberg。关闭 [#83927](https://github.com/ClickHouse/ClickHouse/issues/83927)。[#83983](https://github.com/ClickHouse/ClickHouse/pull/83983)([Konstantin Vedernikov](https://github.com/scanhex12))。 -* 支持通过 Glue 目录进行写入。[#84136](https://github.com/ClickHouse/ClickHouse/pull/84136) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* 用于写操作的 Iceberg REST 目录。[#84684](https://github.com/ClickHouse/ClickHouse/pull/84684) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* 将所有 Iceberg 位置删除(position delete)文件合并到数据文件中。这将减少 Iceberg 存储中 Parquet 文件的数量和大小。语法:`OPTIMIZE TABLE table_name`。[#85250](https://github.com/ClickHouse/ClickHouse/pull/85250) ([Konstantin Vedernikov](https://github.com/scanhex12))。 -* 支持对 Iceberg 表执行 `drop table`(从 REST/Glue 目录中移除该表并删除其元数据)。 [#85395](https://github.com/ClickHouse/ClickHouse/pull/85395) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* 为 merge-on-read 格式的 Iceberg 表增加对 ALTER DELETE 变更的支持。 [#85549](https://github.com/ClickHouse/ClickHouse/pull/85549) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* 支持写入 DeltaLake。关闭了 [#79603](https://github.com/ClickHouse/ClickHouse/issues/79603)。[#85564](https://github.com/ClickHouse/ClickHouse/pull/85564)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 新增设置 `delta_lake_snapshot_version`,用于在 `DeltaLake` 表引擎中读取指定的快照版本。[#85295](https://github.com/ClickHouse/ClickHouse/pull/85295)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 在元数据(manifest 条目)中写入更多 Iceberg 统计信息(列大小、下界和上界),以改进 min-max 剪枝。 [#85746](https://github.com/ClickHouse/ClickHouse/pull/85746) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* 支持在 Iceberg 中对简单类型的列执行新增/删除/修改操作。 [#85769](https://github.com/ClickHouse/ClickHouse/pull/85769) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* Iceberg:支持写入 version-hint 文件,关闭了 [#85097](https://github.com/ClickHouse/ClickHouse/issues/85097)。[#85130](https://github.com/ClickHouse/ClickHouse/pull/85130)([Konstantin Vedernikov](https://github.com/scanhex12))。 -* 由临时用户创建的视图现在会存储一份对应实际用户的副本,并且在该临时用户被删除后不再失效。[#84763](https://github.com/ClickHouse/ClickHouse/pull/84763)([pufit](https://github.com/pufit))。 -* 向量相似索引现在支持二进制量化。二进制量化可显著降低内存消耗,并加快构建向量索引的过程(因为距离计算更快)。此外,现有的参数 `vector_search_postfilter_multiplier` 已被废弃,替换为更通用的参数:`vector_search_index_fetch_multiplier`。[#85024](https://github.com/ClickHouse/ClickHouse/pull/85024) ([Shankar Iyer](https://github.com/shankar-iyer))。 -* 在 `s3` 或 `s3Cluster` 表引擎/函数中允许使用键值参数,例如:`s3('url', CSV, structure = 'a Int32', compression_method = 'gzip')`。 [#85134](https://github.com/ClickHouse/ClickHouse/pull/85134) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 新增一个系统表,用于保存来自 Kafka 等引擎的出错传入消息(“死信队列”)。[#68873](https://github.com/ClickHouse/ClickHouse/pull/68873) ([Ilya Golshtein](https://github.com/ilejn))。 -* 用于 Replicated 数据库的新命令 SYSTEM RESTORE DATABASE REPLICA,其行为类似于 ReplicatedMergeTree 中现有的恢复功能。[#73100](https://github.com/ClickHouse/ClickHouse/pull/73100) ([Konstantin Morozov](https://github.com/k-morozov))。 -* PostgreSQL 协议现已支持 `COPY` 命令。[#74344](https://github.com/ClickHouse/ClickHouse/pull/74344) ([Konstantin Vedernikov](https://github.com/scanhex12))。 -* 新增对 MySQL 协议 C# 客户端的支持。此更改关闭了 [#83992](https://github.com/ClickHouse/ClickHouse/issues/83992)。[#84397](https://github.com/ClickHouse/ClickHouse/pull/84397)([Konstantin Vedernikov](https://github.com/scanhex12))。 -* 新增对 Hive 风格分区的读写支持。 [#76802](https://github.com/ClickHouse/ClickHouse/pull/76802) ([Arthur Passos](https://github.com/arthurpassos)). -* 添加 `zookeeper_connection_log` 系统表,用于存储 ZooKeeper 连接的历史信息。[#79494](https://github.com/ClickHouse/ClickHouse/pull/79494) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 -* 服务器端设置 `cpu_slot_preemption` 启用工作负载的抢占式 CPU 调度,并确保在各个工作负载之间实现 CPU 时间的 max-min 公平分配。新增了用于 CPU 限制的工作负载设置:`max_cpus`、`max_cpu_share` 和 `max_burst_cpu_seconds`。更多详情:[https://clickhouse.com/docs/operations/workload-scheduling#cpu_scheduling](https://clickhouse.com/docs/operations/workload-scheduling#cpu_scheduling)。[#80879](https://github.com/ClickHouse/ClickHouse/pull/80879)([Sergei Trifonov](https://github.com/serxa))。 -* 在达到配置的查询次数或时间阈值后主动关闭 TCP 连接。这有助于在负载均衡器后方的集群节点之间实现更均匀的连接分布。解决 [#68000](https://github.com/ClickHouse/ClickHouse/issues/68000)。[#81472](https://github.com/ClickHouse/ClickHouse/pull/81472)([Kenny Sun](https://github.com/hwabis))。 -* 并行副本现在支持在查询中使用投影功能。[#82659](https://github.com/ClickHouse/ClickHouse/issues/82659)。[#82807](https://github.com/ClickHouse/ClickHouse/pull/82807)([zoomxi](https://github.com/zoomxi))。 -* 在原先已支持 DESCRIBE (SELECT ...) 的基础上,新增对 DESCRIBE SELECT 的支持。 [#82947](https://github.com/ClickHouse/ClickHouse/pull/82947) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* 强制对 mysql_port 和 postgresql_port 使用安全连接。 [#82962](https://github.com/ClickHouse/ClickHouse/pull/82962) ([tiandiwonder](https://github.com/tiandiwonder)). -* 用户现在可以使用 `JSONExtractCaseInsensitive`(以及 `JSONExtract` 的其他变体)进行不区分大小写的 JSON 键查找。[#83770](https://github.com/ClickHouse/ClickHouse/pull/83770)([Alistair Evans](https://github.com/alistairjevans))。 -* 引入 `system.completions` 表,解决 [#81889](https://github.com/ClickHouse/ClickHouse/issues/81889)。[#83833](https://github.com/ClickHouse/ClickHouse/pull/83833) ([|2ustam](https://github.com/RuS2m))。 -* 新增了函数 `nowInBlock64`。示例用法:`SELECT nowInBlock64(6)` 返回 `2025-07-29 17:09:37.775725`。[#84178](https://github.com/ClickHouse/ClickHouse/pull/84178) ([Halersson Paris](https://github.com/halersson)). -* 为 AzureBlobStorage 添加 extra_credentials,以使用 client_id 和 tenant_id 进行身份验证。 [#84235](https://github.com/ClickHouse/ClickHouse/pull/84235)([Pablo Marcos](https://github.com/pamarcos))。 -* 新增函数 `dateTimeToUUIDv7`,用于将 DateTime 值转换为 UUIDv7。示例用法:`SELECT dateTimeToUUIDv7(toDateTime('2025-08-15 18:57:56'))` 返回 `0198af18-8320-7a7d-abd3-358db23b9d5c`。[#84319](https://github.com/ClickHouse/ClickHouse/pull/84319)([samradovich](https://github.com/samradovich))。 -* `timeSeriesDerivToGrid` 和 `timeSeriesPredictLinearToGrid` 聚合函数,用于将数据重新采样到由指定起始时间戳、结束时间戳和步长定义的时间网格上,并分别执行类似 PromQL 中 `deriv` 和 `predict_linear` 的计算。[#84328](https://github.com/ClickHouse/ClickHouse/pull/84328)([Stephen Chi](https://github.com/stephchi0))。 -* 新增两个 TimeSeries 函数:- `timeSeriesRange(start_timestamp, end_timestamp, step)`,- `timeSeriesFromGrid(start_timestamp, end_timestamp, step, values)`。[#85435](https://github.com/ClickHouse/ClickHouse/pull/85435)([Vitaly Baranov](https://github.com/vitlibar))。 -* 新增了一种语法 `GRANT READ ON S3('s3://foo/.*') TO user`。[#84503](https://github.com/ClickHouse/ClickHouse/pull/84503)([pufit](https://github.com/pufit))。 -* 新增 `Hash` 作为一种新的输出格式。它会为结果的所有列和所有行计算一个单个的哈希值。这对于计算结果的“指纹”非常有用,例如在数据传输成为瓶颈的场景中。示例:`SELECT arrayJoin(['abc', 'def']), 42 FORMAT Hash` 返回 `e5f9e676db098fdb9530d2059d8c23ef`。[#84607](https://github.com/ClickHouse/ClickHouse/pull/84607)([Robert Schulze](https://github.com/rschu1ze))。 -* 在 Keeper Multi 查询中支持设置任意 watch。 [#84964](https://github.com/ClickHouse/ClickHouse/pull/84964) ([Mikhail Artemenko](https://github.com/Michicosun)). -* 为 `clickhouse-benchmark` 工具添加了选项 `--max-concurrency`,用于启用一种模式,以逐步增加并行查询的数量。[#85623](https://github.com/ClickHouse/ClickHouse/pull/85623) ([Sergei Trifonov](https://github.com/serxa))。 -* 支持部分聚合指标。 [#85328](https://github.com/ClickHouse/ClickHouse/pull/85328) ([Mikhail Artemenko](https://github.com/Michicosun)). - -#### 实验性特性 {#experimental-feature} - -* 默认启用对关联子查询的支持,该功能不再是实验性功能。[#85107](https://github.com/ClickHouse/ClickHouse/pull/85107) ([Dmitry Novik](https://github.com/novikd))。 -* Unity、Glue、REST 和 Hive Metastore 数据湖目录由实验性阶段提升为 beta 阶段。[#85848](https://github.com/ClickHouse/ClickHouse/pull/85848) ([Melvyn Peignon](https://github.com/melvynator))。 -* 轻量级更新和删除功能由实验性阶段提升为 beta 阶段。 -* 基于向量相似度索引的近似向量搜索现已达到 GA 阶段。[#85888](https://github.com/ClickHouse/ClickHouse/pull/85888) ([Robert Schulze](https://github.com/rschu1ze))。 -* 支持 Ytsaurus 表引擎和表函数。[#77606](https://github.com/ClickHouse/ClickHouse/pull/77606) ([MikhailBurdukov](https://github.com/MikhailBurdukov))。 -* 之前,文本索引数据会被划分为多个分段(每个分段的默认大小为 256 MiB)。这可能在构建文本索引时降低内存消耗,但会增加磁盘空间占用并延长查询响应时间。[#84590](https://github.com/ClickHouse/ClickHouse/pull/84590) ([Elmi Ahmadov](https://github.com/ahmadov))。 - -#### 性能优化 {#performance-improvement} - -* 新的 Parquet 读取器实现。通常更快,并支持页面级过滤下推和 PREWHERE。目前为实验性功能。通过设置 `input_format_parquet_use_native_reader_v3` 启用。[#82789](https://github.com/ClickHouse/ClickHouse/pull/82789) ([Michael Kolupaev](https://github.com/al13n321))。 -* 用我们自研的 HTTP 客户端实现替换了 Azure 库中官方的 HTTP 传输层,用于访问 Azure Blob Storage。为该客户端引入了多项配置选项,这些选项与 S3 的配置保持一致。为 Azure 和 S3 都引入了更激进的连接超时机制。改进了对 Azure profile 事件和指标的观测能力。新客户端默认启用,在基于 Azure Blob Storage 的冷查询场景下显著降低了延迟。旧的 `Curl` 客户端可以通过设置 `azure_sdk_use_native_client=false` 恢复使用。[#83294](https://github.com/ClickHouse/ClickHouse/pull/83294)([alesapin](https://github.com/alesapin))。此前官方提供的 Azure 客户端实现由于出现极其严重的延迟尖峰(从 5 秒到数分钟不等),完全不适合在生产环境中使用。我们已经彻底弃用那套糟糕的实现,并对此感到非常自豪。 -* 按文件大小递增的顺序处理索引。综合考虑后的索引排序会优先处理 minmax 索引和向量索引(分别因为其实现简单和高选择性),然后是其他较小的索引。在 minmax/向量索引之间的排序中,也会优先选择更小的索引。[#84094](https://github.com/ClickHouse/ClickHouse/pull/84094)([Maruth Goyal](https://github.com/maruthgoyal))。 -* 默认启用 MergeTree 设置 `write_marks_for_substreams_in_compact_parts`。这将显著提升从新创建的 Compact 部分读取子列的性能。服务器版本低于 25.5 的实例将无法读取新的 Compact 部分。[#84171](https://github.com/ClickHouse/ClickHouse/pull/84171)([Pavel Kruglov](https://github.com/Avogar))。 -* `azureBlobStorage` table engine: 在可能的情况下缓存并复用托管身份验证令牌,以避免触发限流。 [#79860](https://github.com/ClickHouse/ClickHouse/pull/79860) ([Nick Blakely](https://github.com/niblak)). -* 如果右侧在连接键列上由函数依赖唯一确定(即所有行的连接键值唯一),则所有 `ALL` `LEFT/INNER` JOIN 将会自动转换为 `RightAny`。[#84010](https://github.com/ClickHouse/ClickHouse/pull/84010) ([Nikita Taranov](https://github.com/nickitat))。 -* 除 `max_joined_block_size_rows` 外,新增 `max_joined_block_size_bytes`,用于限制包含大列的 JOIN 的内存使用量。 [#83869](https://github.com/ClickHouse/ClickHouse/pull/83869) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* 添加了新的逻辑(由设置 `enable_producing_buckets_out_of_order_in_aggregation` 控制,默认启用),允许在节省内存的聚合过程中无序发送部分 bucket。当某些聚合 bucket 的合并耗时明显长于其他 bucket 时,该逻辑通过允许发起端在此期间先合并具有更高 bucket ID 的 bucket 来提升性能。其缺点是可能会增加内存使用量(预计不会很显著)。[#80179](https://github.com/ClickHouse/ClickHouse/pull/80179)([Nikita Taranov](https://github.com/nickitat))。 -* 引入了 `optimize_rewrite_regexp_functions` 设置(默认启用),在检测到特定正则表达式模式时,允许优化器将某些 `replaceRegexpAll`、`replaceRegexpOne` 和 `extract` 调用重写为更简单且更高效的形式(issue [#81981](https://github.com/ClickHouse/ClickHouse/issues/81981))。[#81992](https://github.com/ClickHouse/ClickHouse/pull/81992)([Amos Bird](https://github.com/amosbird))。 -* 将对 `max_joined_block_rows` 的处理移到哈希 JOIN 主循环之外。对 ALL JOIN 略有性能提升。[#83216](https://github.com/ClickHouse/ClickHouse/pull/83216) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* 优先处理粒度更高的 min-max 索引。关闭 [#75381](https://github.com/ClickHouse/ClickHouse/issues/75381)。[#83798](https://github.com/ClickHouse/ClickHouse/pull/83798)([Maruth Goyal](https://github.com/maruthgoyal))。 -* 使 `DISTINCT` 窗口聚合以线性时间运行,并修复 `sumDistinct` 中的一个错误。Closes [#79792](https://github.com/ClickHouse/ClickHouse/issues/79792). Closes [#52253](https://github.com/ClickHouse/ClickHouse/issues/52253). [#79859](https://github.com/ClickHouse/ClickHouse/pull/79859) ([Nihal Z. Miaji](https://github.com/nihalzp)). -* 使用向量相似度索引的向量搜索查询,由于减少了存储读取和 CPU 使用量,从而以更低的延迟完成。[#83803](https://github.com/ClickHouse/ClickHouse/pull/83803) ([Shankar Iyer](https://github.com/shankar-iyer))。 -* 使用 Rendezvous 哈希改进并行副本之间负载分配的缓存局部性。 [#82511](https://github.com/ClickHouse/ClickHouse/pull/82511) ([Anton Ivashkin](https://github.com/ianton-ru)). -* 为 If 组合器实现了 `addManyDefaults`,从而带有 If 组合器的聚合函数运行得更快。[#83870](https://github.com/ClickHouse/ClickHouse/pull/83870) ([Raúl Marín](https://github.com/Algunenano))。 -* 在对多个字符串或数字列执行 `GROUP BY` 时,以列式方式计算序列化键。[#83884](https://github.com/ClickHouse/ClickHouse/pull/83884) ([李扬](https://github.com/taiyang-li))。 -* 当索引分析对并行副本读取得出空区间结果时,避免了全表扫描。[#84971](https://github.com/ClickHouse/ClickHouse/pull/84971) ([Eduard Karacharov](https://github.com/korowa)). -* 尝试使用 `-falign-functions=64`,以获得更稳定的性能测试结果。 [#83920](https://github.com/ClickHouse/ClickHouse/pull/83920) ([Azat Khuzhin](https://github.com/azat)). -* 现在,布隆过滤器索引也会用于形如 `has([c1, c2, ...], column)` 的条件,其中 `column` 不是 `Array` 类型。这样提升了此类查询的性能,使其效率与使用 `IN` 运算符相当。[#83945](https://github.com/ClickHouse/ClickHouse/pull/83945)([Doron David](https://github.com/dorki))。 -* 减少在 CompressedReadBufferBase::readCompressedData 中不必要的 memcpy 调用。 [#83986](https://github.com/ClickHouse/ClickHouse/pull/83986) ([Raúl Marín](https://github.com/Algunenano)). -* 通过删除临时数据来优化 `largestTriangleThreeBuckets`。 [#84479](https://github.com/ClickHouse/ClickHouse/pull/84479) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 通过简化代码优化了字符串反序列化。解决了 [#38564](https://github.com/ClickHouse/ClickHouse/issues/38564)。[#84561](https://github.com/ClickHouse/ClickHouse/pull/84561)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 修复了并行副本的最小任务大小计算。 [#84752](https://github.com/ClickHouse/ClickHouse/pull/84752) ([Nikita Taranov](https://github.com/nickitat)). -* 优化了在 `Join` 模式下应用补丁分片时的性能。 [#85040](https://github.com/ClickHouse/ClickHouse/pull/85040) ([Anton Popov](https://github.com/CurtizJ)). -* 移除零字节。关闭了 [#85062](https://github.com/ClickHouse/ClickHouse/issues/85062)。修复了一些次要错误。函数 `structureToProtobufSchema`、`structureToCapnProtoSchema` 未正确写入结尾的零终止字节,而是使用了换行符。这会导致输出中缺少换行符,并且在使用依赖于零字节的其他函数(例如 `logTrace`、`demangle`、`extractURLParameter`、`toStringCutToZero` 和 `encrypt`/`decrypt`)时可能引发缓冲区溢出。`regexp_tree` 字典布局不支持处理包含零字节的字符串。`formatRowNoNewline` 函数在使用 `Values` 格式或任何其他行末不带换行符的格式调用时,会错误地截断输出的最后一个字符。函数 `stem` 存在异常安全问题,在极少数情况下可能导致内存泄漏。`initcap` 函数对 `FixedString` 参数的行为不正确:如果同一数据块中前一个字符串以单词字符结束,它无法在当前字符串开头识别单词的起始位置。修复了 Apache `ORC` 格式的一个安全漏洞,该漏洞可能导致未初始化内存的泄露。修改了函数 `replaceRegexpAll` 及其对应别名 `REGEXP_REPLACE` 的行为:现在即使前一个匹配已经处理了整个字符串(例如在 `^a*|a*$` 或 `^|.*` 的情况下),它在字符串末尾仍然可以进行一次空匹配——这与 JavaScript、Perl、Python、PHP、Ruby 的语义一致,但不同于 PostgreSQL 的语义。简化并优化了许多函数的实现。若干函数的文档此前存在错误,现已修正。请注意,`byteSize` 对 String 列以及由 String 列组成的复杂类型的输出已发生变化(每个空字符串从 9 字节变为 8 字节),这是预期行为。[#85063](https://github.com/ClickHouse/ClickHouse/pull/85063)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 在仅为返回单行结果而进行常量实体化的场景下,对该过程进行了优化。[#85071](https://github.com/ClickHouse/ClickHouse/pull/85071)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 使用 delta-kernel-rs 后端改进并行文件处理。[#85642](https://github.com/ClickHouse/ClickHouse/pull/85642) ([Azat Khuzhin](https://github.com/azat)). -* 新增了一个设置:enable_add_distinct_to_in_subqueries。启用后,ClickHouse 会在分布式查询的 IN 子句中自动为子查询添加 DISTINCT。这样可以显著减少在分片之间传输的临时表大小,从而提高网络传输效率。注意:这是一种权衡——虽然可以减少网络传输,但每个节点上需要执行额外的合并(去重)工作。当网络传输成为瓶颈且可以接受合并开销时,建议启用该设置。[#81908](https://github.com/ClickHouse/ClickHouse/pull/81908)([fhw12345](https://github.com/fhw12345))。 -* 降低执行用户自定义函数时的查询内存跟踪开销。 [#83929](https://github.com/ClickHouse/ClickHouse/pull/83929) ([Eduard Karacharov](https://github.com/korowa)). -* 在 `DeltaLake` 存储引擎中实现基于 `delta-kernel-rs` 的内部过滤(统计信息与分区剪枝)。[#84006](https://github.com/ClickHouse/ClickHouse/pull/84006)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 以更细粒度的方式禁用依赖于在线更新列或由 patch parts 更新列的跳过索引。现在,这些跳过索引只会在受在线变更或 patch parts 影响的 part 中不再使用;之前,这些索引会在所有 part 中被禁用。[#84241](https://github.com/ClickHouse/ClickHouse/pull/84241)([Anton Popov](https://github.com/CurtizJ))。 -* 仅为加密命名集合的 encrypted_buffer 分配所需的最小内存。[#84432](https://github.com/ClickHouse/ClickHouse/pull/84432) ([Pablo Marcos](https://github.com/pamarcos)). -* 改进了对 Bloom filter 索引(regular、ngram 和 token)的支持,以便在第一个参数为常量数组(集合)、第二个参数为建立索引的列(子集)时也能利用这些索引,从而更高效地执行查询。[#84700](https://github.com/ClickHouse/ClickHouse/pull/84700)([Doron David](https://github.com/dorki))。 -* 减少 Keeper 中存储锁的竞争。[#84732](https://github.com/ClickHouse/ClickHouse/pull/84732)([Antonio Andelic](https://github.com/antonio2368))。 -* 为 `WHERE` 子句补充对缺失的 `read_in_order_use_virtual_row` 的支持。这样可以在过滤条件未完全下推到 `PREWHERE` 的查询中,跳过读取更多的数据分片。[#84835](https://github.com/ClickHouse/ClickHouse/pull/84835) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* 允许对 Iceberg 表中的对象进行异步迭代,而无需为每个数据文件显式存储对象。 [#85369](https://github.com/ClickHouse/ClickHouse/pull/85369) ([Daniil Ivanik](https://github.com/divanik)). -* 将非关联的 `EXISTS` 作为标量子查询来执行。这样可以使用标量子查询缓存并对结果进行常量折叠,这对索引很有帮助。为兼容性新增了设置 `execute_exists_as_scalar_subquery=1`。[#85481](https://github.com/ClickHouse/ClickHouse/pull/85481)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 - -#### 改进 {#improvement} - -* 添加 `database_replicated` 设置,用于定义 `DatabaseReplicatedSettings` 的默认值。如果在创建 Replicated 数据库的查询中未包含该设置,则会使用此处配置的值。[#85127](https://github.com/ClickHouse/ClickHouse/pull/85127)([Tuan Pham Anh](https://github.com/tuanpach))。 -* 现可在 Web UI(play)中调整表格列宽度。[#84012](https://github.com/ClickHouse/ClickHouse/pull/84012) ([Doron David](https://github.com/dorki))。 -* 通过 `iceberg_metadata_compression_method` 设置支持对 `.metadata.json` 文件进行压缩。该设置支持 ClickHouse 的所有压缩方法。解决了 [#84895](https://github.com/ClickHouse/ClickHouse/issues/84895)。[#85196](https://github.com/ClickHouse/ClickHouse/pull/85196)([Konstantin Vedernikov](https://github.com/scanhex12))。 -* 在 `EXPLAIN indexes = 1` 的输出中显示待读取的范围数量。 [#79938](https://github.com/ClickHouse/ClickHouse/pull/79938) ([Christoph Wurm](https://github.com/cwurm)). -* 新增用于设置 ORC 压缩块大小的配置项,并将其默认值从 64KB 更新为 256KB,以与 Spark 或 Hive 保持一致。[#80602](https://github.com/ClickHouse/ClickHouse/pull/80602) ([李扬](https://github.com/taiyang-li))。 -* 在 Wide part 中添加 `columns_substreams.txt` 文件,用于跟踪该 part 中存储的所有子流。这样可以跟踪 JSON 和 Dynamic 类型中的动态子流,从而避免为获取动态子流列表(例如用于计算列大小)而去读取这些列的样本。此外,现在所有动态子流也都会体现在 `system.parts_columns` 中。[#81091](https://github.com/ClickHouse/ClickHouse/pull/81091)([Pavel Kruglov](https://github.com/Avogar))。 -* 为 clickhouse format 命令添加 CLI 选项 --show_secrets,使其默认隐藏敏感数据。[#81524](https://github.com/ClickHouse/ClickHouse/pull/81524)([Nikolai Ryzhov](https://github.com/Dolaxom))。 -* 在 HTTP 套接字层面对 S3 读写请求进行限流(而不是对整个 S3 请求限流),以避免与 `max_remote_read_network_bandwidth_for_server` 和 `max_remote_write_network_bandwidth_for_server` 的限流相关问题。[#81837](https://github.com/ClickHouse/ClickHouse/pull/81837)([Sergei Trifonov](https://github.com/serxa))。 -* 允许在使用窗口函数时,对同一列在不同窗口中混用不同的排序规则(collation)。[#82877](https://github.com/ClickHouse/ClickHouse/pull/82877)([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 -* 新增一个用于模拟、可视化和比较 merge selector 的工具。[#71496](https://github.com/ClickHouse/ClickHouse/pull/71496) ([Sergei Trifonov](https://github.com/serxa))。 -* 在 `address_expression` 参数中指定集群时,为 `remote*` 表函数添加对并行副本的支持。同时修复了 [#73295](https://github.com/ClickHouse/ClickHouse/issues/73295)。[#82904](https://github.com/ClickHouse/ClickHouse/pull/82904)([Igor Nikonov](https://github.com/devcrafter))。 -* 将所有用于写入备份文件的日志消息的级别设置为 TRACE。 [#82907](https://github.com/ClickHouse/ClickHouse/pull/82907) ([Hans Krutzer](https://github.com/hkrutzer)). -* 具有非常规名称或编解码器的用户定义函数,可能会被 SQL 格式化器格式化得不一致。此更改修复了 [#83092](https://github.com/ClickHouse/ClickHouse/issues/83092)。[#83644](https://github.com/ClickHouse/ClickHouse/pull/83644)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 用户现在可以在 JSON 类型中使用 Time 和 Time64 类型。[#83784](https://github.com/ClickHouse/ClickHouse/pull/83784) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* 现在,使用并行副本的 JOIN 会采用 JOIN 逻辑步骤。如果在使用并行副本的 JOIN 查询时遇到任何问题,请尝试执行 `SET query_plan_use_new_logical_join_step=0`,并提交 issue。 [#83801](https://github.com/ClickHouse/ClickHouse/pull/83801) ([Vladimir Cherkasov](https://github.com/vdimir)). -* 修复 `cluster_function_process_archive_on_multiple_nodes` 的兼容性问题。 [#83968](https://github.com/ClickHouse/ClickHouse/pull/83968) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 支持在 `S3Queue` 表级别更改物化视图插入相关设置。新增 `S3Queue` 级别设置:`min_insert_block_size_rows_for_materialized_views` 和 `min_insert_block_size_bytes_for_materialized_views`。默认情况下将使用 profile 级别的设置,`S3Queue` 级别的设置会覆盖这些设置。[#83971](https://github.com/ClickHouse/ClickHouse/pull/83971) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 新增了 profile 事件 `MutationAffectedRowsUpperBound`,用于显示一次变更操作(mutation)中受影响的行数(例如,在 `ALTER UPDATE` 或 `ALTER DELETE` 查询中满足条件的行总数)。[#83978](https://github.com/ClickHouse/ClickHouse/pull/83978) ([Anton Popov](https://github.com/CurtizJ))。 -* 使用 cgroup 信息(在适用情况下,即启用了 `memory_worker_use_cgroup` 且 cgroups 可用)来调整内存跟踪器(`memory_worker_correct_memory_tracker`)。[#83981](https://github.com/ClickHouse/ClickHouse/pull/83981) ([Azat Khuzhin](https://github.com/azat)). -* MongoDB:字符串向数值类型的隐式解析。此前,如果从 MongoDB 源为 ClickHouse 表中的数值列收到字符串值,则会抛出异常。现在,引擎会尝试自动从字符串中解析出数值。修复了 [#81167](https://github.com/ClickHouse/ClickHouse/issues/81167)。[#84069](https://github.com/ClickHouse/ClickHouse/pull/84069)([Kirill Nikiforov](https://github.com/allmazz))。 -* 在 `Pretty` 格式中高亮显示 `Nullable` 数字的数字分组。 [#84070](https://github.com/ClickHouse/ClickHouse/pull/84070) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Dashboard:顶部的工具提示现在不会向上溢出其容器。[#84072](https://github.com/ClickHouse/ClickHouse/pull/84072) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 仪表板上的数据点现在看起来略微更美观。 [#84074](https://github.com/ClickHouse/ClickHouse/pull/84074) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Dashboard 现在的 favicon 略有改进。 [#84076](https://github.com/ClickHouse/ClickHouse/pull/84076) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* Web UI:允许浏览器保存密码,同时也会记住 URL 的值。[#84087](https://github.com/ClickHouse/ClickHouse/pull/84087) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 新增支持通过 `apply_to_children` 配置项为特定 Keeper 节点应用额外的 ACL。[#84137](https://github.com/ClickHouse/ClickHouse/pull/84137) ([Antonio Andelic](https://github.com/antonio2368))。 -* 修复 MergeTree 中 "compact" Variant 判别器序列化的用法。之前在某些本可以使用的情况下没有被使用。 [#84141](https://github.com/ClickHouse/ClickHouse/pull/84141) ([Pavel Kruglov](https://github.com/Avogar)). -* 在复制数据库设置中新增了一个服务器设置项 `logs_to_keep`,用于修改复制数据库的默认 `logs_to_keep` 参数。较低的取值会减少 ZNode 的数量(尤其是在存在大量数据库时),而较高的取值则允许缺失的副本在更长时间后仍能追上进度。[#84183](https://github.com/ClickHouse/ClickHouse/pull/84183)([Alexey Khatskevich](https://github.com/Khatskevich))。 -* 添加设置项 `json_type_escape_dots_in_keys`,用于在 JSON 类型解析过程中对 JSON 键中的点号进行转义。该设置默认关闭。[#84207](https://github.com/ClickHouse/ClickHouse/pull/84207) ([Pavel Kruglov](https://github.com/Avogar))。 -* 在检查 EOF 之前先检查连接是否已被取消,以防止从已关闭的连接中读取数据。修复了 [#83893](https://github.com/ClickHouse/ClickHouse/issues/83893)。[#84227](https://github.com/ClickHouse/ClickHouse/pull/84227)([Raufs Dunamalijevs](https://github.com/rienath))。 -* 略微优化了 Web UI 中文本选区的颜色。只有在深色模式下选中的表格单元格中差异才较为明显。在之前的版本中,文本与选区背景之间的对比度不足。[#84258](https://github.com/ClickHouse/ClickHouse/pull/84258)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 通过简化内部检查,改进了服务器关闭时对客户端连接的处理逻辑。 [#84312](https://github.com/ClickHouse/ClickHouse/pull/84312) ([Raufs Dunamalijevs](https://github.com/rienath)). -* 新增配置项 `delta_lake_enable_expression_visitor_logging`,用于关闭表达式访问器日志,因为在调试问题时,即使处于测试用的日志级别,这些日志的输出也可能过于冗长。[#84315](https://github.com/ClickHouse/ClickHouse/pull/84315) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 现会统一上报 cgroup 级和系统级的指标。cgroup 级指标命名为 `CGroup`,操作系统级指标(从 procfs 收集)命名为 `OS`。[#84317](https://github.com/ClickHouse/ClickHouse/pull/84317) ([Nikita Taranov](https://github.com/nickitat))。 -* Web UI 中的图表略有优化。改动不大,但确实更好一些。 [#84326](https://github.com/ClickHouse/ClickHouse/pull/84326) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 将 Replicated 数据库设置项 `max_retries_before_automatic_recovery` 的默认值更改为 10,从而在某些情况下能更快完成恢复。[#84369](https://github.com/ClickHouse/ClickHouse/pull/84369)([Alexander Tokmakov](https://github.com/tavplubix))。 -* 修复带查询参数占位符的 `CREATE USER` 语句的格式(即 `CREATE USER {username:Identifier} IDENTIFIED WITH no_password`)。[#84376](https://github.com/ClickHouse/ClickHouse/pull/84376) ([Azat Khuzhin](https://github.com/azat))。 -* 引入 `backup_restore_s3_retry_initial_backoff_ms`、`backup_restore_s3_retry_max_backoff_ms`、`backup_restore_s3_retry_jitter_factor`,用于配置在备份和恢复操作期间使用的 S3 重试退避策略。[#84421](https://github.com/ClickHouse/ClickHouse/pull/84421) ([Julia Kartseva](https://github.com/jkartseva))。 -* 修复 S3Queue 有序模式:如果已调用关闭,则提前退出。 [#84463](https://github.com/ClickHouse/ClickHouse/pull/84463) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 支持以 Iceberg 格式写出数据,以便通过 pyiceberg 进行读取。 [#84466](https://github.com/ClickHouse/ClickHouse/pull/84466) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* 在将 `IN` / `GLOBAL IN` 过滤条件下推到键值存储的主键(例如 EmbeddedRocksDB、KeeperMap)时,允许对 IN 集合中的值进行类型转换。[#84515](https://github.com/ClickHouse/ClickHouse/pull/84515) ([Eduard Karacharov](https://github.com/korowa)). -* 将 chdig 升级至 [25.7.1](https://github.com/azat/chdig/releases/tag/v25.7.1)。[#84521](https://github.com/ClickHouse/ClickHouse/pull/84521)([Azat Khuzhin](https://github.com/azat))。 -* 在执行 UDF 期间发生的底层错误现在会统一返回错误码 `UDF_EXECUTION_FAILED`,而此前可能会返回不同的错误码。[#84547](https://github.com/ClickHouse/ClickHouse/pull/84547)([Xu Jia](https://github.com/XuJia0210))。 -* 在 KeeperClient 中添加 `get_acl` 命令。[#84641](https://github.com/ClickHouse/ClickHouse/pull/84641)([Antonio Andelic](https://github.com/antonio2368))。 -* 为数据湖表引擎引入快照版本。[#84659](https://github.com/ClickHouse/ClickHouse/pull/84659) ([Pete Hampton](https://github.com/pjhampton))。 -* 为 `ConcurrentBoundedQueue` 的大小添加一个分维度的指标,并按队列类型(即队列的用途)和队列 ID(即当前队列实例随机生成的 ID)打上标签。[#84675](https://github.com/ClickHouse/ClickHouse/pull/84675) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* `system.columns` 表现在为现有的 `name` 列提供名为 `column` 的别名。 [#84695](https://github.com/ClickHouse/ClickHouse/pull/84695) ([Yunchi Pang](https://github.com/yunchipang))。 -* 新增 MergeTree 设置 `search_orphaned_parts_drives`,用于限定查找分区片段的范围,例如仅在具有本地元数据的磁盘上查找。[#84710](https://github.com/ClickHouse/ClickHouse/pull/84710) ([Ilya Golshtein](https://github.com/ilejn))。 -* 在 Keeper 中添加 4LW 命令 `lgrq`,用于开启/关闭对接收请求的日志记录。[#84719](https://github.com/ClickHouse/ClickHouse/pull/84719) ([Antonio Andelic](https://github.com/antonio2368))。 -* 以不区分大小写的方式匹配 external auth 的 forward_headers。 [#84737](https://github.com/ClickHouse/ClickHouse/pull/84737) ([ingodwerust](https://github.com/ingodwerust)). -* `encrypt_decrypt` 工具现在支持加密 ZooKeeper 连接。[#84764](https://github.com/ClickHouse/ClickHouse/pull/84764)([Roman Vasin](https://github.com/rvasin))。 -* 为 `system.errors` 添加一个格式字符串列,以便在告警规则中按相同错误类型进行分组。[#84776](https://github.com/ClickHouse/ClickHouse/pull/84776) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* 已更新 `clickhouse-format`,现在接受 `--highlight` 作为 `--hilite` 的别名。 - 已更新 `clickhouse-client`,现在接受 `--hilite` 作为 `--highlight` 的别名。 - 更新了 `clickhouse-format` 文档以反映此更改。 [#84806](https://github.com/ClickHouse/ClickHouse/pull/84806) ([Rishabh Bhardwaj](https://github.com/rishabh1815769)). -* 修复 Iceberg 中复杂类型按字段 ID 进行读取的问题。 [#84821](https://github.com/ClickHouse/ClickHouse/pull/84821) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* 新增名为 `backup_slow_all_threads_after_retryable_s3_error` 的设置,用于在出现可重试错误(例如 `SlowDown`)引发的重试风暴时,通过在检测到首个可重试错误后减慢所有线程的速度,降低对 S3 的压力。[#84854](https://github.com/ClickHouse/ClickHouse/pull/84854)([Julia Kartseva](https://github.com/jkartseva))。 -* 在 Replicated 数据库中,跳过为非追加类型的 RMV DDL 创建旧临时表并对其重命名的步骤。 [#84858](https://github.com/ClickHouse/ClickHouse/pull/84858) ([Tuan Pham Anh](https://github.com/tuanpach)). -* 使用 `keeper_server.coordination_settings.latest_logs_cache_entry_count_threshold` 和 `keeper_server.coordination_settings.commit_logs_cache_entry_count_threshold` 根据条目数量限制 Keeper 日志条目缓存的大小。 [#84877](https://github.com/ClickHouse/ClickHouse/pull/84877) ([Antonio Andelic](https://github.com/antonio2368)). -* 允许在不受支持的架构上使用 `simdjson`(此前可能会导致 `CANNOT_ALLOCATE_MEMORY` 错误)。[#84966](https://github.com/ClickHouse/ClickHouse/pull/84966) ([Azat Khuzhin](https://github.com/azat))。 -* Async logging: 将各项限制改为可调节,并增加自检能力。 [#85105](https://github.com/ClickHouse/ClickHouse/pull/85105) ([Raúl Marín](https://github.com/Algunenano))。 -* 收集所有待删除的对象,以通过一次对象存储删除操作统一删除。[#85316](https://github.com/ClickHouse/ClickHouse/pull/85316) ([Mikhail Artemenko](https://github.com/Michicosun)). -* Iceberg 当前对 positional delete 文件的实现会将所有数据都保留在内存中。如果 positional delete 文件很大(这种情况很常见),代价就会非常高。我的实现只在内存中保留 Parquet delete 文件的最后一个行组(row-group),大幅降低了内存开销。[#85329](https://github.com/ClickHouse/ClickHouse/pull/85329)([Konstantin Vedernikov](https://github.com/scanhex12))。 -* chdig:修复屏幕残留显示问题,修复在编辑器中编辑查询后发生的崩溃,在 `path` 中搜索 `editor`,更新至 [25.8.1](https://github.com/azat/chdig/releases/tag/v25.8.1)。[#85341](https://github.com/ClickHouse/ClickHouse/pull/85341)([Azat Khuzhin](https://github.com/azat))。 -* 将缺失的 `partition_columns_in_data_file` 添加到 Azure 配置中。 [#85373](https://github.com/ClickHouse/ClickHouse/pull/85373) ([Arthur Passos](https://github.com/arthurpassos)). -* 在函数 `timeSeries*ToGrid` 中允许步长为 0。这是 [#75036](https://github.com/ClickHouse/ClickHouse/pull/75036) 的一部分。[#85390](https://github.com/ClickHouse/ClickHouse/pull/85390)([Vitaly Baranov](https://github.com/vitlibar))。 -* 添加了 `show_data_lake_catalogs_in_system_tables` 标志,用于控制是否在 `system.tables` 中显示数据湖表。解决了 [#85384](https://github.com/ClickHouse/ClickHouse/issues/85384)。[#85411](https://github.com/ClickHouse/ClickHouse/pull/85411)([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 -* 在 `remote_fs_zero_copy_zookeeper_path` 中新增了对宏展开的支持。[#85437](https://github.com/ClickHouse/ClickHouse/pull/85437) ([Mikhail Koviazin](https://github.com/mkmkme))。 -* clickhouse-client 中的 AI 界面略有优化。[#85447](https://github.com/ClickHouse/ClickHouse/pull/85447) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 默认为旧部署启用 trace_log.symbolize。 [#85456](https://github.com/ClickHouse/ClickHouse/pull/85456) ([Azat Khuzhin](https://github.com/azat)). -* 支持解析更多涉及复合标识符的场景。尤其是提升了 `ARRAY JOIN` 与旧分析器的兼容性。引入新的设置 `analyzer_compatibility_allow_compound_identifiers_in_unflatten_nested` 以保留旧行为。[#85492](https://github.com/ClickHouse/ClickHouse/pull/85492) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* 在从 `system.columns` 表获取各列大小时忽略 `UNKNOWN_DATABASE`。 [#85632](https://github.com/ClickHouse/ClickHouse/pull/85632) ([Azat Khuzhin](https://github.com/azat)). -* 为补丁分区片段中未压缩字节的总量添加了一个限制(表级设置 `max_uncompressed_bytes_in_patches`)。这可以防止在执行轻量级更新后 `SELECT` 查询出现显著变慢,并防止轻量级更新可能被滥用。[#85641](https://github.com/ClickHouse/ClickHouse/pull/85641)([Anton Popov](https://github.com/CurtizJ))。 -* 向 `system.grants` 添加 `parameter` 列,用于确定 `GRANT READ/WRITE` 的来源类型以及 `GRANT TABLE ENGINE` 的表引擎。[#85643](https://github.com/ClickHouse/ClickHouse/pull/85643) ([MikhailBurdukov](https://github.com/MikhailBurdukov))。 -* 解决了在 `CREATE DICTIONARY` 查询的列列表中,当带参数的列(例如 `Decimal(8)`)后面带有尾随逗号时的解析问题。解决了 [#85586](https://github.com/ClickHouse/ClickHouse/issues/85586) 中的问题。[#85653](https://github.com/ClickHouse/ClickHouse/pull/85653)([Nikolay Degterinsky](https://github.com/evillique))。 -* 为 `nested` 函数添加对内部数组的支持。 [#85719](https://github.com/ClickHouse/ClickHouse/pull/85719) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* 所有由外部库进行的内存分配现在都会被 ClickHouse 的内存追踪器跟踪并正确计入。这可能会导致某些查询报告的内存使用量看起来“增加”,或者因 `MEMORY_LIMIT_EXCEEDED` 而报错。 [#84082](https://github.com/ClickHouse/ClickHouse/pull/84082) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 - -#### 缺陷修复(官方稳定版中用户可见的异常行为) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* 此 PR 修复了通过 REST catalog 查询 Iceberg 表时的元数据解析逻辑。... [#80562](https://github.com/ClickHouse/ClickHouse/pull/80562) ([Saurabh Kumar Ojha](https://github.com/saurabhojha)). -* 修复 DDLWorker 和 DatabaseReplicatedDDLWorker 中的 markReplicasActive。[#81395](https://github.com/ClickHouse/ClickHouse/pull/81395)([Tuan Pham Anh](https://github.com/tuanpach))。 -* 修复在解析失败时 Dynamic 列回滚的问题。 [#82169](https://github.com/ClickHouse/ClickHouse/pull/82169) ([Pavel Kruglov](https://github.com/Avogar)). -* 函数 `trim` 在使用全常量输入调用时,现在会产生一个常量输出字符串。(缺陷 [#78796](https://github.com/ClickHouse/ClickHouse/issues/78796))[#82900](https://github.com/ClickHouse/ClickHouse/pull/82900)([Robert Schulze](https://github.com/rschu1ze))。 -* 修复在启用 `optimize_syntax_fuse_functions` 时因重复子查询导致的逻辑错误,关闭 [#75511](https://github.com/ClickHouse/ClickHouse/issues/75511)。[#83300](https://github.com/ClickHouse/ClickHouse/pull/83300)([Vladimir Cherkasov](https://github.com/vdimir))。 -* 修复了在启用查询条件缓存(设置 `use_query_condition_cache`)时,包含 `WHERE ... IN (<subquery>)` 子句的查询返回结果不正确的问题。[#83445](https://github.com/ClickHouse/ClickHouse/pull/83445) ([LB7666](https://github.com/acking-you))。 -* 此前,`gcs` 函数在使用时不需要任何访问权限。现在在使用时会检查是否具有 `GRANT READ ON S3` 权限。修复了 [#70567](https://github.com/ClickHouse/ClickHouse/issues/70567)。[#83503](https://github.com/ClickHouse/ClickHouse/pull/83503)([pufit](https://github.com/pufit))。 -* 在通过 INSERT SELECT 从 s3Cluster() 向 replicated MergeTree 插入数据时跳过不可用节点。[#83676](https://github.com/ClickHouse/ClickHouse/pull/83676) ([Igor Nikonov](https://github.com/devcrafter))。 -* 修复在 MergeTree 中用于实验性事务的追加写入在 `plain_rewritable`/`plain` 元数据类型下被忽略的问题,此前这些类型会被直接忽略。[#83695](https://github.com/ClickHouse/ClickHouse/pull/83695)([Tuan Pham Anh](https://github.com/tuanpach))。 -* 对 Avro schema registry 的认证信息进行掩码处理,使其对用户不可见,并且不会出现在日志中。 [#83713](https://github.com/ClickHouse/ClickHouse/pull/83713) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* 修复以下问题:当使用 `add_minmax_index_for_numeric_columns=1` 或 `add_minmax_index_for_string_columns=1` 创建 MergeTree 表时,索引会在之后的 ALTER 操作中被物化,从而导致 Replicated 数据库在新副本上无法正确完成初始化。 [#83751](https://github.com/ClickHouse/ClickHouse/pull/83751) ([Nikolay Degterinsky](https://github.com/evillique)). -* 修复了 Parquet writer 为 Decimal 类型输出错误统计值(最小值/最大值)的问题。[#83754](https://github.com/ClickHouse/ClickHouse/pull/83754)([Michael Kolupaev](https://github.com/al13n321))。 -* 修复 `LowCardinality(Float32|Float64|BFloat16)` 类型中 NaN 值排序的问题。[#83786](https://github.com/ClickHouse/ClickHouse/pull/83786) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* 从备份恢复时,`definer` 用户可能不会被一并备份,从而导致整个备份失效。为了解决这个问题,我们在恢复过程中推迟对目标表创建操作的权限检查,仅在运行时进行检查。[#83818](https://github.com/ClickHouse/ClickHouse/pull/83818) ([pufit](https://github.com/pufit))。 -* 修复由于在一次失败的 INSERT 之后连接被置于断开状态而导致客户端崩溃的问题。 [#83842](https://github.com/ClickHouse/ClickHouse/pull/83842) ([Azat Khuzhin](https://github.com/azat)). -* 在启用 analyzer 后,允许在 `remote` 表函数的 `view(...)` 参数中引用任意表。修复了 [#78717](https://github.com/ClickHouse/ClickHouse/issues/78717)。修复了 [#79377](https://github.com/ClickHouse/ClickHouse/issues/79377)。[#83844](https://github.com/ClickHouse/ClickHouse/pull/83844)([Dmitry Novik](https://github.com/novikd))。 -* 在 jsoneachrowwithprogress 中,onprogress 回调的调用与最终收尾过程同步执行。[#83879](https://github.com/ClickHouse/ClickHouse/pull/83879) ([Sema Checherinda](https://github.com/CheSema)). -* 此更改解决了 [#81303](https://github.com/ClickHouse/ClickHouse/issues/81303)。[#83892](https://github.com/ClickHouse/ClickHouse/pull/83892)([Konstantin Vedernikov](https://github.com/scanhex12))。 -* 修复 `colorSRGBToOKLCH`/`colorOKLCHToSRGB` 中混用 const 和非 const 参数的问题。[#83906](https://github.com/ClickHouse/ClickHouse/pull/83906) ([Azat Khuzhin](https://github.com/azat))。 -* 修复在 RowBinary 格式中写入包含 NULL 值的 JSON 路径的问题。[#83923](https://github.com/ClickHouse/ClickHouse/pull/83923) ([Pavel Kruglov](https://github.com/Avogar)). -* 从 Date 转换为 DateTime64 时,大于 2106-02-07 的大日期值溢出问题已修复。 [#83982](https://github.com/ClickHouse/ClickHouse/pull/83982) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* 始终应用 `filesystem_prefetches_limit`(而非仅在 `MergeTreePrefetchedReadPool` 中)。[#83999](https://github.com/ClickHouse/ClickHouse/pull/83999)([Azat Khuzhin](https://github.com/azat))。 -* 修复了一个罕见的错误:在执行 `MATERIALIZE COLUMN` 查询时,可能会在 `checksums.txt` 中出现非预期的文件记录,并最终导致数据分片被标记为 detached。 [#84007](https://github.com/ClickHouse/ClickHouse/pull/84007) ([alesapin](https://github.com/alesapin)). -* 修复在基于不等条件执行 JOIN 时,当其中一列为 `LowCardinality` 而另一列为常量时出现的逻辑错误 `Expected single dictionary argument for function`。关闭 [#81779](https://github.com/ClickHouse/ClickHouse/issues/81779)。[#84019](https://github.com/ClickHouse/ClickHouse/pull/84019)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 修复在交互模式下启用语法高亮时 ClickHouse 客户端会崩溃的问题。[#84025](https://github.com/ClickHouse/ClickHouse/pull/84025) ([Bharat Nallan](https://github.com/bharatnc))。 -* 修复在查询条件缓存与递归 CTE 结合使用时产生错误结果的问题(issue [#81506](https://github.com/ClickHouse/ClickHouse/issues/81506))。[#84026](https://github.com/ClickHouse/ClickHouse/pull/84026)([zhongyuankai](https://github.com/zhongyuankai))。 -* 在周期性 parts 刷新过程中正确处理异常。 [#84083](https://github.com/ClickHouse/ClickHouse/pull/84083) ([Azat Khuzhin](https://github.com/azat)). -* 修复在相等运算两侧操作数类型不同或引用常量时,将过滤条件错误地合并进 JOIN 条件的问题。修复了 [#83432](https://github.com/ClickHouse/ClickHouse/issues/83432)。[#84145](https://github.com/ClickHouse/ClickHouse/pull/84145)([Dmitry Novik](https://github.com/novikd))。 -* 修复在表包含投影、`lightweight_mutation_projection_mode = 'rebuild'`,且用户执行轻量级删除操作并从表中任意数据块中删除所有行时可能导致 ClickHouse 罕见崩溃的问题。[#84158](https://github.com/ClickHouse/ClickHouse/pull/84158) ([alesapin](https://github.com/alesapin)). -* 修复由后台取消检测线程导致的死锁。[#84203](https://github.com/ClickHouse/ClickHouse/pull/84203)([Antonio Andelic](https://github.com/antonio2368))。 -* 修复在分析无效 `WINDOW` 定义时出现的无限递归问题。修复了 [#83131](https://github.com/ClickHouse/ClickHouse/issues/83131)。[#84242](https://github.com/ClickHouse/ClickHouse/pull/84242)([Dmitry Novik](https://github.com/novikd))。 -* 修复了一个导致 Bech32 编码和解码结果不正确的 bug。之所以最初没有发现该 bug,是因为用于测试的该算法的在线实现存在相同问题。[#84257](https://github.com/ClickHouse/ClickHouse/pull/84257) ([George Larionov](https://github.com/george-larionov))。 -* 修复了 `array()` 函数中空元组构造不正确的问题。此修复解决了 [#84202](https://github.com/ClickHouse/ClickHouse/issues/84202)。[#84297](https://github.com/ClickHouse/ClickHouse/pull/84297)([Amos Bird](https://github.com/amosbird))。 -* 修复在使用并行副本且包含多个 `INNER` 联接并在其后跟随 `RIGHT` 联接的查询中出现的 `LOGICAL_ERROR`。请勿对这类查询使用并行副本。[#84299](https://github.com/ClickHouse/ClickHouse/pull/84299) ([Vladimir Cherkasov](https://github.com/vdimir))。 -* 此前,在检查粒度是否满足过滤条件时,`set` 索引不会考虑 `Nullable` 列(问题 [#75485](https://github.com/ClickHouse/ClickHouse/issues/75485))。[#84305](https://github.com/ClickHouse/ClickHouse/pull/84305)([Elmi Ahmadov](https://github.com/ahmadov))。 -* 现在 ClickHouse 可以从 Glue Catalog 读取其中表类型使用小写指定的表。[#84316](https://github.com/ClickHouse/ClickHouse/pull/84316)([alesapin](https://github.com/alesapin))。 -* 在存在 `JOIN` 或子查询的情况下,不要尝试将表函数替换为其集群版本。 [#84335](https://github.com/ClickHouse/ClickHouse/pull/84335) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* 修复 `IAccessStorage` 中 logger 的使用。[#84365](https://github.com/ClickHouse/ClickHouse/pull/84365) ([Konstantin Bogdanov](https://github.com/thevar1able))。 -* 修复了在对表中所有列执行轻量级更新时存在的逻辑错误。[#84380](https://github.com/ClickHouse/ClickHouse/pull/84380) ([Anton Popov](https://github.com/CurtizJ))。 -* 编解码器 `DoubleDelta` 现在只能用于数值类型列。具体来说,`FixedString` 列不再支持使用 `DoubleDelta` 进行压缩。(修复了 [#80220](https://github.com/ClickHouse/ClickHouse/issues/80220))。[#84383](https://github.com/ClickHouse/ClickHouse/pull/84383)([Jimmy Aguilar Mena](https://github.com/Ergus))。 -* 在进行 `MinMax` 索引评估时,对 NaN 值的比较未使用正确的区间。[#84386](https://github.com/ClickHouse/ClickHouse/pull/84386) ([Elmi Ahmadov](https://github.com/ahmadov))。 -* 修复使用惰性物化读取 Variant 列时的问题。[#84400](https://github.com/ClickHouse/ClickHouse/pull/84400) ([Pavel Kruglov](https://github.com/Avogar)). -* 将 `zoutofmemory` 视为硬件错误,否则会抛出逻辑错误。参见 [https://github.com/clickhouse/clickhouse-core-incidents/issues/877](https://github.com/clickhouse/clickhouse-core-incidents/issues/877)。[#84420](https://github.com/ClickHouse/ClickHouse/pull/84420)([Han Fei](https://github.com/hanfei1991))。 -* 修复了以下场景下的服务器崩溃问题:当使用 `no_password` 创建的用户在服务器设置 `allow_no_password` 被修改为 0 后尝试登录时,服务器会崩溃。 [#84426](https://github.com/ClickHouse/ClickHouse/pull/84426) ([Shankar Iyer](https://github.com/shankar-iyer))。 -* 修复 Keeper 变更日志的乱序写入问题。此前,我们可能会有正在进行中的变更日志写入,但回滚操作可能会导致目标文件发生并发修改。这会导致日志不一致,并可能造成数据丢失。[#84434](https://github.com/ClickHouse/ClickHouse/pull/84434) ([Antonio Andelic](https://github.com/antonio2368)). -* 现在,如果从表中移除了所有 TTL,MergeTree 将不再执行任何与 TTL 相关的操作。[#84441](https://github.com/ClickHouse/ClickHouse/pull/84441) ([alesapin](https://github.com/alesapin)). -* 此前允许执行带 LIMIT 的并行分布式 INSERT SELECT,但这是不正确的,会导致目标表中数据重复。 [#84477](https://github.com/ClickHouse/ClickHouse/pull/84477) ([Igor Nikonov](https://github.com/devcrafter)). -* 修复在数据湖中基于虚拟列进行文件裁剪的问题。 [#84520](https://github.com/ClickHouse/ClickHouse/pull/84520) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 修复 Keeper 在使用 RocksDB 存储时的内存泄漏问题(迭代器未被销毁)。 [#84523](https://github.com/ClickHouse/ClickHouse/pull/84523) ([Azat Khuzhin](https://github.com/azat)). -* 修复 ALTER MODIFY ORDER BY 未校验排序键中 TTL 列的问题。现在,在 ALTER 操作中如果在 ORDER BY 子句里使用 TTL 列,会被正确拒绝,从而防止潜在的表损坏。 [#84536](https://github.com/ClickHouse/ClickHouse/pull/84536) ([xiaohuanlin](https://github.com/xiaohuanlin)). -* 在 25.5 之前的版本中,将 `allow_experimental_delta_kernel_rs` 的值修改为 `false` 以确保兼容性。[#84587](https://github.com/ClickHouse/ClickHouse/pull/84587) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* 不再从 manifest 文件获取 schema,而是为每个快照单独存储相应的 schema。对每个数据文件,根据其所属快照推断对应的 schema。之前的行为违反了 Iceberg 规范中关于 manifest 文件中状态为 existing 的条目的要求。[#84588](https://github.com/ClickHouse/ClickHouse/pull/84588)([Daniil Ivanik](https://github.com/divanik))。 -* 修复了在 Keeper 中将 `rotate_log_storage_interval` 设置为 `0` 时会导致 ClickHouse 崩溃的问题(issue [#83975](https://github.com/ClickHouse/ClickHouse/issues/83975))。[#84637](https://github.com/ClickHouse/ClickHouse/pull/84637)([George Larionov](https://github.com/george-larionov))。 -* 修复 S3Queue 中导致 “Table is already registered” 的逻辑错误。解决 [#84433](https://github.com/ClickHouse/ClickHouse/issues/84433)。该问题在合并 [https://github.com/ClickHouse/ClickHouse/pull/83530](https://github.com/ClickHouse/ClickHouse/pull/83530) 后出现。[#84677](https://github.com/ClickHouse/ClickHouse/pull/84677)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 在 RefreshTask 中从 'view' 获取 ZooKeeper 时为 'mutex' 加锁。[#84699](https://github.com/ClickHouse/ClickHouse/pull/84699) ([Tuan Pham Anh](https://github.com/tuanpach)). -* 修复在使用惰性列配合外部排序时出现的 `CORRUPTED_DATA` 错误。[#84738](https://github.com/ClickHouse/ClickHouse/pull/84738) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 -* 修复存储 `DeltaLake` 中基于 delta-kernel 的列裁剪问题。关闭 [#84543](https://github.com/ClickHouse/ClickHouse/issues/84543)。[#84745](https://github.com/ClickHouse/ClickHouse/pull/84745)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 在 DeltaLake 存储中刷新 delta-kernel 的凭证。 [#84751](https://github.com/ClickHouse/ClickHouse/pull/84751) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 修复在出现连接问题后会启动不必要内部备份的情况。[#84755](https://github.com/ClickHouse/ClickHouse/pull/84755) ([Vitaly Baranov](https://github.com/vitlibar)). -* 修复了在查询存在延迟的远程数据源时,可能导致向量访问越界的问题。[#84820](https://github.com/ClickHouse/ClickHouse/pull/84820)([George Larionov](https://github.com/george-larionov))。 -* `ngram` 和 `no_op` 分词器在处理空输入 token 时不再导致(实验性)文本索引崩溃。[#84849](https://github.com/ClickHouse/ClickHouse/pull/84849)([Robert Schulze](https://github.com/rschu1ze))。 -* 修复了对使用 `ReplacingMergeTree` 和 `CollapsingMergeTree` 引擎的表执行轻量级更新时的问题。 [#84851](https://github.com/ClickHouse/ClickHouse/pull/84851) ([Anton Popov](https://github.com/CurtizJ)). -* 在使用 object queue 引擎的表的表元数据中正确保存所有设置。 [#84860](https://github.com/ClickHouse/ClickHouse/pull/84860) ([Antonio Andelic](https://github.com/antonio2368))。 -* 修复 Keeper 返回的 watches 总数。 [#84890](https://github.com/ClickHouse/ClickHouse/pull/84890) ([Antonio Andelic](https://github.com/antonio2368)). -* 修复了在版本低于 25.7 的服务器上创建的 `ReplicatedMergeTree` 引擎表的轻量级更新问题。 [#84933](https://github.com/ClickHouse/ClickHouse/pull/84933) ([Anton Popov](https://github.com/CurtizJ)). -* 修复了在运行 `ALTER TABLE ... REPLACE PARTITION` 查询后,对使用非复制 MergeTree 引擎的表执行轻量级更新时的问题。 [#84941](https://github.com/ClickHouse/ClickHouse/pull/84941) ([Anton Popov](https://github.com/CurtizJ)). -* 修复布尔字面量的列名生成逻辑,使其使用 "true"/"false" 而不是 "1"/"0",从而避免查询中布尔字面量与整数字面量之间的列名冲突。[#84945](https://github.com/ClickHouse/ClickHouse/pull/84945) ([xiaohuanlin](https://github.com/xiaohuanlin)). -* 修复由后台调度池和执行器导致的内存跟踪偏移。[#84946](https://github.com/ClickHouse/ClickHouse/pull/84946) ([Azat Khuzhin](https://github.com/azat)). -* 修复 Merge 表引擎中的潜在排序不准确问题。[#85025](https://github.com/ClickHouse/ClickHouse/pull/85025)([Xiaozhe Yu](https://github.com/wudidapaopao))。 -* 补全 DiskEncrypted 缺失的 API。[#85028](https://github.com/ClickHouse/ClickHouse/pull/85028) ([Azat Khuzhin](https://github.com/azat)). -* 在分布式环境中使用关联子查询时增加检查以避免崩溃。修复了 [#82205](https://github.com/ClickHouse/ClickHouse/issues/82205)。[#85030](https://github.com/ClickHouse/ClickHouse/pull/85030)([Dmitry Novik](https://github.com/novikd))。 -* 现在 Iceberg 不再尝试在多次 select 查询之间缓存相关的快照版本,而是始终在每次查询时重新解析快照。此前对 Iceberg 快照进行缓存的尝试,会在使用 Iceberg 表进行时间旅行(time travel)时导致问题。 [#85038](https://github.com/ClickHouse/ClickHouse/pull/85038) ([Daniil Ivanik](https://github.com/divanik))。 -* 修复了 `AzureIteratorAsync` 中的重复释放问题。 [#85064](https://github.com/ClickHouse/ClickHouse/pull/85064) ([Nikita Taranov](https://github.com/nickitat)). -* 改进在尝试创建以 JWT 标识的用户时的错误消息。 [#85072](https://github.com/ClickHouse/ClickHouse/pull/85072) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* 修复了 `ReplicatedMergeTree` 中补丁部件清理的行为。此前,轻量级更新的结果可能会在一段时间内在副本上暂时不可见,直到物化这些补丁部件的已合并或已变更部件从其他副本下载完成。 [#85121](https://github.com/ClickHouse/ClickHouse/pull/85121) ([Anton Popov](https://github.com/CurtizJ))。 -* 当类型不同时,修复 mv 中的 illegal_type_of_argument 错误。 [#85135](https://github.com/ClickHouse/ClickHouse/pull/85135) ([Sema Checherinda](https://github.com/CheSema)). -* 修复 delta-kernel 实现中的段错误。 [#85160](https://github.com/ClickHouse/ClickHouse/pull/85160) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 修复在移动元数据文件耗时较长期间恢复复制数据库的问题。[#85177](https://github.com/ClickHouse/ClickHouse/pull/85177) ([Tuan Pham Anh](https://github.com/tuanpach)). -* 修复在 `additional_table_filters expression` 设置中,`IN (subquery)` 出现 `Not-ready Set` 的问题。 [#85210](https://github.com/ClickHouse/ClickHouse/pull/85210) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* 在执行 SYSTEM DROP REPLICA 查询时去除不必要的 `getStatus()` 调用。修复了当表在后台被删除时会抛出 `Shutdown for storage is called` 异常的问题。[#85220](https://github.com/ClickHouse/ClickHouse/pull/85220)([Nikolay Degterinsky](https://github.com/evillique))。 -* 修复 `DeltaLake` 引擎中 delta-kernel 实现的竞态问题。[#85221](https://github.com/ClickHouse/ClickHouse/pull/85221) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 修复在 `DeltaLake` 引擎中禁用 delta-kernel 时读取分区数据失败的问题。该问题在 25.7 版本中被引入([https://github.com/ClickHouse/ClickHouse/pull/81136](https://github.com/ClickHouse/ClickHouse/pull/81136))。[#85223](https://github.com/ClickHouse/ClickHouse/pull/85223)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 在 `CREATE OR REPLACE` 和 `RENAME` 查询中补充了遗漏的表名长度检查。[#85326](https://github.com/ClickHouse/ClickHouse/pull/85326) ([Michael Kolupaev](https://github.com/al13n321))。 -* 修复当 DEFINER 被删除时,在 Replicated 数据库的新副本上创建 RMV 的问题。[#85327](https://github.com/ClickHouse/ClickHouse/pull/85327)([Nikolay Degterinsky](https://github.com/evillique))。 -* 修复 Iceberg 复杂类型写入问题。 [#85330](https://github.com/ClickHouse/ClickHouse/pull/85330) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* 不支持为复杂类型写入下界和上界。[#85332](https://github.com/ClickHouse/ClickHouse/pull/85332) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* 修复通过 Distributed 表或 remote 表函数调用对象存储相关函数读取数据时的逻辑错误。修复了以下问题:[#84658](https://github.com/ClickHouse/ClickHouse/issues/84658)、[#85173](https://github.com/ClickHouse/ClickHouse/issues/85173)、[#52022](https://github.com/ClickHouse/ClickHouse/issues/52022)。[#85359](https://github.com/ClickHouse/ClickHouse/pull/85359)([alesapin](https://github.com/alesapin))。 -* 修复包含损坏投影的数据片段的备份。 [#85362](https://github.com/ClickHouse/ClickHouse/pull/85362) ([Antonio Andelic](https://github.com/antonio2368)). -* 在各发行版本中禁止在投影(projection)中使用 `_part_offset` 列,直至其稳定为止。[#85372](https://github.com/ClickHouse/ClickHouse/pull/85372) ([Sema Checherinda](https://github.com/CheSema)). -* 修复在对 JSON 执行 ALTER UPDATE 时发生的崩溃和数据损坏。[#85383](https://github.com/ClickHouse/ClickHouse/pull/85383) ([Pavel Kruglov](https://github.com/Avogar))。 -* 使用并行副本且启用了“反向顺序读取”优化的查询可能会产生错误结果。 [#85406](https://github.com/ClickHouse/ClickHouse/pull/85406) ([Igor Nikonov](https://github.com/devcrafter)). -* 在 String 反序列化期间出现 MEMORY_LIMIT_EXCEEDED 时,修复可能出现的未定义行为(崩溃)。 [#85440](https://github.com/ClickHouse/ClickHouse/pull/85440) ([Azat Khuzhin](https://github.com/azat)). -* 修复不正确的指标 KafkaAssignedPartitions 和 KafkaConsumersWithAssignment。[#85494](https://github.com/ClickHouse/ClickHouse/pull/85494)([Ilya Golshtein](https://github.com/ilejn))。 -* 修复了在使用 PREWHERE(显式或自动)时,对已处理字节数的统计被低估的问题。 [#85495](https://github.com/ClickHouse/ClickHouse/pull/85495) ([Michael Kolupaev](https://github.com/al13n321))。 -* 修复针对 S3 请求速率减缓的提前返回条件:当由于可重试错误而暂停所有线程时,现在只要 `s3_slow_all_threads_after_network_error` 或 `backup_slow_all_threads_after_retryable_s3_error` 之一为 true 即可启用减缓行为,而不再要求两者都为 true。[#85505](https://github.com/ClickHouse/ClickHouse/pull/85505)([Julia Kartseva](https://github.com/jkartseva))。 -* 此 PR 修复了通过 REST catalog 查询 Iceberg 表时的元数据解析问题。... [#85531](https://github.com/ClickHouse/ClickHouse/pull/85531) ([Saurabh Kumar Ojha](https://github.com/saurabhojha))。 -* 修复了在异步插入中更改 `log_comment` 或 `insert_deduplication_token` 设置时可能出现的罕见崩溃。 [#85540](https://github.com/ClickHouse/ClickHouse/pull/85540) ([Anton Popov](https://github.com/CurtizJ)). -* 在通过 HTTP 并使用 multipart/form-data 时,类似 date_time_input_format 的参数会被忽略。[#85570](https://github.com/ClickHouse/ClickHouse/pull/85570) ([Sema Checherinda](https://github.com/CheSema))。 -* 修复 icebergS3Cluster 和 icebergAzureCluster 表函数中的机密信息掩码问题。[#85658](https://github.com/ClickHouse/ClickHouse/pull/85658)([MikhailBurdukov](https://github.com/MikhailBurdukov))。 -* 修复在将 JSON 数值转换为 Decimal 类型时 `JSONExtract` 的精度丢失问题。现在 JSON 数值可以保留其精确的小数表示,避免浮点数舍入误差。[#85665](https://github.com/ClickHouse/ClickHouse/pull/85665) ([ssive7b](https://github.com/ssive7b))。 -* 修复了在 `DROP COLUMN` 之后、同一条 `ALTER` 语句中使用 `COMMENT COLUMN IF EXISTS` 时出现的 `LOGICAL_ERROR`。现在,当列在同一语句中已被删除时,`IF EXISTS` 子句会正确地跳过对该列的注释操作。 [#85688](https://github.com/ClickHouse/ClickHouse/pull/85688) ([xiaohuanlin](https://github.com/xiaohuanlin)). -* 修复 Delta Lake 从缓存读取计数的问题。[#85704](https://github.com/ClickHouse/ClickHouse/pull/85704)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 修复 `CoalescingMergeTree` 在处理大字符串时发生的段错误。此更改关闭了 [#84582](https://github.com/ClickHouse/ClickHouse/issues/84582)。[#85709](https://github.com/ClickHouse/ClickHouse/pull/85709)([Konstantin Vedernikov](https://github.com/scanhex12))。 -* 在 Iceberg 写入操作中更新元数据时间戳。[#85711](https://github.com/ClickHouse/ClickHouse/pull/85711) ([Konstantin Vedernikov](https://github.com/scanhex12))。 -* 将 `distributed_depth` 用作 *Cluster 函数的指示器是不正确的,可能导致数据重复;请改用 `client_info.collaborate_with_initiator`。 [#85734](https://github.com/ClickHouse/ClickHouse/pull/85734) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* Spark 无法读取 position delete 文件。[#85762](https://github.com/ClickHouse/ClickHouse/pull/85762) ([Konstantin Vedernikov](https://github.com/scanhex12))。 -* 修复 `send_logs_source_regexp`(在 [#85105](https://github.com/ClickHouse/ClickHouse/issues/85105) 中的异步日志重构之后)。[#85797](https://github.com/ClickHouse/ClickHouse/pull/85797)([Azat Khuzhin](https://github.com/azat))。 -* 修复在出现 MEMORY_LIMIT_EXCEEDED 错误时,可能导致带有 update_field 的字典数据不一致的问题。[#85807](https://github.com/ClickHouse/ClickHouse/pull/85807)([Azat Khuzhin](https://github.com/azat))。 -* 为目标表为 `Distributed` 的并行分布式 `INSERT SELECT` 提供对 `WITH` 语句中全局常量的支持。此前,该查询可能会抛出 `Unknown expression identifier` 错误。[#85811](https://github.com/ClickHouse/ClickHouse/pull/85811) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* 对 `deltaLakeAzure`、`deltaLakeCluster`、`icebergS3Cluster` 和 `icebergAzureCluster` 的凭据进行隐藏处理。 [#85889](https://github.com/ClickHouse/ClickHouse/pull/85889) ([Julian Maicher](https://github.com/jmaicher)). -* 修复在 `DatabaseReplicated` 中尝试执行 `CREATE ... AS (SELECT * FROM s3Cluster(...))` 时的逻辑错误。 [#85904](https://github.com/ClickHouse/ClickHouse/pull/85904) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* 修复了 `url()` 表函数发出的 HTTP 请求在访问非标准端口时未在 Host 头中正确包含端口号的问题。此更改解决了在使用运行于自定义端口上的 MinIO 等 S3 兼容服务的预签名 URL 时发生的身份验证失败问题,这在开发环境中很常见。(修复 [#85898](https://github.com/ClickHouse/ClickHouse/issues/85898))。[#85921](https://github.com/ClickHouse/ClickHouse/pull/85921)([Tom Quist](https://github.com/tomquist))。 -* 现在,Unity Catalog 在处理非 Delta 表时,会忽略包含异常数据类型的 schema。修复了 [#85699](https://github.com/ClickHouse/ClickHouse/issues/85699)。[#85950](https://github.com/ClickHouse/ClickHouse/pull/85950)([alesapin](https://github.com/alesapin))。 -* 修复 Iceberg 中字段的可空属性。[#85977](https://github.com/ClickHouse/ClickHouse/pull/85977) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* 修复了 `Replicated` 数据库在恢复过程中的一个 bug:如果表名包含 `%` 符号,在恢复过程中可能会以不同的名称重新创建该表。[#85987](https://github.com/ClickHouse/ClickHouse/pull/85987) ([Alexander Tokmakov](https://github.com/tavplubix))。 -* 修复在恢复空 `Memory` 表时出现 `BACKUP_ENTRY_NOT_FOUND` 错误而导致备份恢复失败的问题。 [#86012](https://github.com/ClickHouse/ClickHouse/pull/86012) ([Julia Kartseva](https://github.com/jkartseva))。 -* 在对 Distributed 表执行 ALTER 时,增加对 sharding_key 的检查。之前错误的 ALTER 会破坏表定义并需要重启服务器。[#86015](https://github.com/ClickHouse/ClickHouse/pull/86015)([Nikolay Degterinsky](https://github.com/evillique))。 -* 避免创建空的 Iceberg 删除文件。[#86061](https://github.com/ClickHouse/ClickHouse/pull/86061) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* 修复由于过大的设置值导致 S3Queue 表异常和副本重启的问题。[#86074](https://github.com/ClickHouse/ClickHouse/pull/86074) ([Nikolay Degterinsky](https://github.com/evillique))。 - -#### 构建/测试/打包改进 {#buildtestingpackaging-improvement} - -* 默认对使用 S3 的测试启用加密磁盘。[#59898](https://github.com/ClickHouse/ClickHouse/pull/59898) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* 在集成测试中使用 `clickhouse` 可执行文件,以获取未裁剪的调试符号。[#83779](https://github.com/ClickHouse/ClickHouse/pull/83779) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). -* 将内部使用的 libxml2 版本从 2.14.4 升级到 2.14.5。[#84230](https://github.com/ClickHouse/ClickHouse/pull/84230) ([Robert Schulze](https://github.com/rschu1ze)). -* 将内部使用的 curl 版本从 8.14.0 升级到 8.15.0。[#84231](https://github.com/ClickHouse/ClickHouse/pull/84231) ([Robert Schulze](https://github.com/rschu1ze)). -* 现在在 CI 中为缓存使用更少的内存,并且具备更完善的缓存淘汰测试。[#84676](https://github.com/ClickHouse/ClickHouse/pull/84676) ([alesapin](https://github.com/alesapin)). - -### ClickHouse 发行版 25.7,2025-07-24 {#257} - -#### 向后不兼容的变更 {#backward-incompatible-change} - -* 对 `extractKeyValuePairs` 函数的更改:引入一个新的参数 `unexpected_quoting_character_strategy`,用于控制在读取未加引号的键或值时意外遇到 `quoting_character` 时的行为。该参数的取值可以是:`invalid`、`accept` 或 `promote`。`invalid` 会丢弃该键并回到等待键的状态;`accept` 会将其视为键的一部分;`promote` 会丢弃前一个字符并开始按带引号的键来解析。此外,在解析完一个带引号的值之后,只有在发现键值对分隔符时才解析下一个键。[#80657](https://github.com/ClickHouse/ClickHouse/pull/80657) ([Arthur Passos](https://github.com/arthurpassos))。 -* 在 `countMatches` 函数中支持零长度匹配。希望保留旧行为的用户可以启用设置 `count_matches_stop_at_empty_match`。[#81676](https://github.com/ClickHouse/ClickHouse/pull/81676) ([Elmi Ahmadov](https://github.com/ahmadov))。 -* 在生成 BACKUP 时,对本地(`max_local_read_bandwidth_for_server` 和 `max_local_write_bandwidth_for_server`)和远程(`max_remote_read_network_bandwidth_for_server` 和 `max_remote_write_network_bandwidth_for_server`)操作使用服务器级限流器,此外仍保留其各自的专用服务器设置(`max_backup_bandwidth_for_server`、`max_mutations_bandwidth_for_server` 和 `max_merges_bandwidth_for_server`)。[#81753](https://github.com/ClickHouse/ClickHouse/pull/81753) ([Sergei Trifonov](https://github.com/serxa))。 -* 禁止创建没有可插入列的表。[#81835](https://github.com/ClickHouse/ClickHouse/pull/81835) ([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 -* 在集群函数中按归档内的文件进行并行处理。在之前的版本中,整个归档文件(例如 zip、tar 或 7z)是一个工作单元。新增了一个设置 `cluster_function_process_archive_on_multiple_nodes`,默认值为 `true`。如果设置为 `true`,将提升集群函数处理中归档文件的性能。如果在更早版本上使用带归档的集群函数,为了兼容性并避免升级到 25.7+ 期间出现错误,应将其设置为 `false`。[#82355](https://github.com/ClickHouse/ClickHouse/pull/82355) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* `SYSTEM RESTART REPLICAS` 查询会导致唤醒 Lazy 数据库中的表,即使没有访问该数据库的权限,而且这一行为会在这些表被并发删除时发生。注意:现在 `SYSTEM RESTART REPLICAS` 只会在你拥有 `SHOW TABLES` 权限的数据库中重启副本,这是更自然的行为。[#83321](https://github.com/ClickHouse/ClickHouse/pull/83321) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 - -#### 新功能 {#new-feature} - -* 为 `MergeTree` 系列表增加了对轻量级更新的支持。轻量级更新可以通过以下新语法使用:`UPDATE <table> SET col1 = val1, col2 = val2, ... WHERE <condition>`。通过轻量级更新实现了轻量级删除功能。可以通过设置 `lightweight_delete_mode = 'lightweight_update'` 来启用该功能。[#82004](https://github.com/ClickHouse/ClickHouse/pull/82004) ([Anton Popov](https://github.com/CurtizJ))。 -* 在 Iceberg 架构演进中支持复杂类型。[#73714](https://github.com/ClickHouse/ClickHouse/pull/73714) ([Konstantin Vedernikov](https://github.com/scanhex12))。 -* 新增对 Iceberg 表执行 INSERT 的支持。[#82692](https://github.com/ClickHouse/ClickHouse/pull/82692) ([Konstantin Vedernikov](https://github.com/scanhex12))。 -* 按字段 ID 读取 Iceberg 数据文件。这提高了与 Iceberg 的兼容性:可以在元数据中重命名字段名,同时仍然能够映射到底层 Parquet 文件中的不同字段名。修复了 [#83065](https://github.com/ClickHouse/ClickHouse/issues/83065)。[#83653](https://github.com/ClickHouse/ClickHouse/pull/83653)([Konstantin Vedernikov](https://github.com/scanhex12))。 -* 现在 ClickHouse 已支持用于 Iceberg 的压缩 `metadata.json` 文件。修复了 [#70874](https://github.com/ClickHouse/ClickHouse/issues/70874) 中的问题。[#81451](https://github.com/ClickHouse/ClickHouse/pull/81451) ([alesapin](https://github.com/alesapin))。 -* 在 Glue catalog 中支持 `TimestampTZ`。修复了问题 [#81654](https://github.com/ClickHouse/ClickHouse/issues/81654)。[#83132](https://github.com/ClickHouse/ClickHouse/pull/83132)([Konstantin Vedernikov](https://github.com/scanhex12))。 -* 为 ClickHouse 客户端添加 AI 驱动的 SQL 生成功能。用户现在可以通过在查询前添加前缀 `??`,根据自然语言描述生成 SQL 查询。支持 OpenAI 和 Anthropic 提供商,并具备自动 schema 发现功能。[#83314](https://github.com/ClickHouse/ClickHouse/pull/83314) ([Kaushik Iska](https://github.com/iskakaushik))。 -* 新增用于将 Geo 类型写入 WKB 格式的函数。[#82935](https://github.com/ClickHouse/ClickHouse/pull/82935) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* 为 sources 引入了两种新的访问类型:`READ` 和 `WRITE`,并弃用此前所有与 sources 相关的访问类型。之前的写法是 `GRANT S3 ON *.* TO user`,现在为:`GRANT READ, WRITE ON S3 TO user`。这也使得可以分别为 sources 授予 `READ` 和 `WRITE` 权限,例如:`GRANT READ ON * TO user`、`GRANT WRITE ON S3 TO user`。该特性由设置 `access_control_improvements.enable_read_write_grants` 控制,默认关闭。[#73659](https://github.com/ClickHouse/ClickHouse/pull/73659) ([pufit](https://github.com/pufit))。 -* NumericIndexedVector:新的向量数据结构,基于按位切片(bit-sliced)和 Roaring bitmap 压缩,并提供 20 多个用于构建、分析和逐元素算术运算的函数。可减少存储占用,并加速在稀疏数据上的 JOIN、过滤和聚合操作。实现了 [#70582](https://github.com/ClickHouse/ClickHouse/issues/70582) 以及 T. Xiong 和 Y. Wang 在 VLDB 2024 发表的 [论文 “Large-Scale Metric Computation in Online Controlled Experiment Platform”](https://arxiv.org/abs/2405.08411)。[#74193](https://github.com/ClickHouse/ClickHouse/pull/74193)([FriendLey](https://github.com/FriendLey))。 -* 现在支持工作负载配置项 `max_waiting_queries`。它可用于限制查询队列的大小。如果达到该限制,所有后续查询将被终止,并返回 `SERVER_OVERLOADED` 错误。[#81250](https://github.com/ClickHouse/ClickHouse/pull/81250)([Oleg Doronin](https://github.com/dorooleg))。 -* 新增财务函数:`financialInternalRateOfReturnExtended`(`XIRR`)、`financialInternalRateOfReturn`(`IRR`)、`financialNetPresentValueExtended`(`XNPV`)、`financialNetPresentValue`(`NPV`)。[#81599](https://github.com/ClickHouse/ClickHouse/pull/81599)([Joanna Hulboj](https://github.com/jh0x))。 -* 新增地理空间函数 `polygonsIntersectCartesian` 和 `polygonsIntersectSpherical`,用于检查两个多边形是否相交。[#81882](https://github.com/ClickHouse/ClickHouse/pull/81882)([Paul Lamb](https://github.com/plamb))。 -* 在 MergeTree 系列表中支持 `_part_granule_offset` 虚拟列。该列表示每一行在其数据分片(data part)内所属粒度/标记的从 0 开始的索引。此改动解决了 [#79572](https://github.com/ClickHouse/ClickHouse/issues/79572)。[#82341](https://github.com/ClickHouse/ClickHouse/pull/82341)([Amos Bird](https://github.com/amosbird))。[#82341](https://github.com/ClickHouse/ClickHouse/pull/82341)([Amos Bird](https://github.com/amosbird)) -* 新增 SQL 函数 `colorSRGBToOkLCH` 和 `colorOkLCHToSRGB`,用于在 sRGB 和 OkLCH 颜色空间之间转换颜色。[#83679](https://github.com/ClickHouse/ClickHouse/pull/83679) ([Fgrtue](https://github.com/Fgrtue)). -* 在 `CREATE USER` 查询中允许将用户名设为参数。[#81387](https://github.com/ClickHouse/ClickHouse/pull/81387) ([Diskein](https://github.com/Diskein))。 -* `system.formats` 表现在包含关于各格式的扩展信息,例如 HTTP 内容类型、schema 推断能力等。[#81505](https://github.com/ClickHouse/ClickHouse/pull/81505)([Alexey Milovidov](https://github.com/alexey-milovidov))。 - -#### 实验性特性 {#experimental-feature} - -* 新增函数 `searchAny` 和 `searchAll`,作为通用工具用于搜索文本索引。 [#80641](https://github.com/ClickHouse/ClickHouse/pull/80641) ([Elmi Ahmadov](https://github.com/ahmadov)). -* 文本索引现在支持新的 `split` 分词器。 [#81752](https://github.com/ClickHouse/ClickHouse/pull/81752) ([Elmi Ahmadov](https://github.com/ahmadov)). -* 将 `text` 索引的默认索引粒度更改为 64。这提升了内部基准测试中典型测试查询的预期性能。 [#82162](https://github.com/ClickHouse/ClickHouse/pull/82162) ([Jimmy Aguilar Mena](https://github.com/Ergus)). -* 256 位位图按顺序存储某个状态的出边标签,但出边状态在磁盘中的保存顺序是它们在哈希表中出现的顺序。因此,从磁盘读取时,一个标签会指向错误的下一状态。 [#82783](https://github.com/ClickHouse/ClickHouse/pull/82783) ([Elmi Ahmadov](https://github.com/ahmadov)). -* 为文本索引中的 FST 树 blob 启用 zstd 压缩。 [#83093](https://github.com/ClickHouse/ClickHouse/pull/83093) ([Elmi Ahmadov](https://github.com/ahmadov)). -* 将向量相似度索引升级为 beta。引入别名设置 `enable_vector_similarity_index`,必须启用该设置才能使用向量相似度索引。 [#83459](https://github.com/ClickHouse/ClickHouse/pull/83459) ([Robert Schulze](https://github.com/rschu1ze)). -* 移除了与实验性零拷贝复制相关的实验性 `send_metadata` 逻辑。该逻辑从未被使用,也没有人维护这段代码。由于甚至没有任何与之相关的测试,它很大概率早就已经失效。 [#82508](https://github.com/ClickHouse/ClickHouse/pull/82508) ([alesapin](https://github.com/alesapin)). -* 将 `StorageKafka2` 集成到 `system.kafka_consumers` 中。 [#82652](https://github.com/ClickHouse/ClickHouse/pull/82652) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* 基于统计信息估计复杂的 CNF/DNF 表达式,例如 `(a < 1 and a > 0) or b = 3`。 [#82663](https://github.com/ClickHouse/ClickHouse/pull/82663) ([Han Fei](https://github.com/hanfei1991)). - -#### 性能优化 {#performance-improvement} - -* 引入异步日志记录。当日志写入到慢速设备时,将不再阻塞查询。[#82516](https://github.com/ClickHouse/ClickHouse/pull/82516)([Raúl Marín](https://github.com/Algunenano))。限制队列中保留的最大日志条目数量。[#83214](https://github.com/ClickHouse/ClickHouse/pull/83214)([Raúl Marín](https://github.com/Algunenano))。 -* 默认启用了并行分布式 INSERT SELECT,在该模式下,INSERT SELECT 会在每个分片上独立执行,参见 `parallel_distributed_insert_select` 设置。[#83040](https://github.com/ClickHouse/ClickHouse/pull/83040) ([Igor Nikonov](https://github.com/devcrafter))。 -* 当聚合查询仅包含一个针对非 `Nullable` 列的 `count()` 函数时,聚合逻辑会被完全内联到哈希表探测过程中。这样可以避免分配和维护任何聚合状态,从而显著降低内存使用和 CPU 开销。此优化在一定程度上解决了 [#81982](https://github.com/ClickHouse/ClickHouse/issues/81982)。[#82104](https://github.com/ClickHouse/ClickHouse/pull/82104)([Amos Bird](https://github.com/amosbird))。 -* 通过在仅有一个键列这一典型场景下移除对哈希映射的额外循环来优化 `HashJoin` 的性能;同时,当 `null_map` 和 `join_mask` 始终为 `true`/`false` 时,相关检查也被消除。 [#82308](https://github.com/ClickHouse/ClickHouse/pull/82308) ([Nikita Taranov](https://github.com/nickitat)). -* 对 `-If` 组合器进行了小优化。[#78454](https://github.com/ClickHouse/ClickHouse/pull/78454) ([李扬](https://github.com/taiyang-li))。 -* 使用向量相似度索引的向量搜索查询,由于减少了存储读取和 CPU 使用而具有更低的延迟。[#79103](https://github.com/ClickHouse/ClickHouse/pull/79103) ([Shankar Iyer](https://github.com/shankar-iyer)). -* 在 `filterPartsByQueryConditionCache` 中考虑 `merge_tree_min_{rows,bytes}_for_seek`,使其与其他按索引进行过滤的方法保持一致。[#80312](https://github.com/ClickHouse/ClickHouse/pull/80312) ([李扬](https://github.com/taiyang-li)). -* 将 `TOTALS` 步骤之后的 pipeline 改为多线程执行。[#80331](https://github.com/ClickHouse/ClickHouse/pull/80331) ([UnamedRus](https://github.com/UnamedRus))。 -* 修复 `Redis` 和 `KeeperMap` 存储的基于 key 的过滤功能。[#81833](https://github.com/ClickHouse/ClickHouse/pull/81833)([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 -* 新增设置项 `min_joined_block_size_rows`(类似于 `min_joined_block_size_bytes`;默认值为 65409),用于控制 JOIN 输入和输出块的最小块大小(以行数计,前提是所用 JOIN 算法支持该设置)。过小的数据块会被合并。 [#81886](https://github.com/ClickHouse/ClickHouse/pull/81886) ([Nikita Taranov](https://github.com/nickitat))。 -* `ATTACH PARTITION` 不再会触发清空所有缓存。 [#82377](https://github.com/ClickHouse/ClickHouse/pull/82377) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 通过使用等价类删除多余的 JOIN 操作来优化为相关子查询生成的执行计划。如果所有关联列都存在等价表达式,且启用了 `query_plan_correlated_subqueries_use_substitution` 设置,则不会生成 `CROSS JOIN`。[#82435](https://github.com/ClickHouse/ClickHouse/pull/82435) ([Dmitry Novik](https://github.com/novikd))。 -* 当关联子查询被推断为函数 `EXISTS` 的参数时,仅读取其中所需的列。[#82443](https://github.com/ClickHouse/ClickHouse/pull/82443) ([Dmitry Novik](https://github.com/novikd))。 -* 略微提升查询分析阶段查询树比较的速度。[#82617](https://github.com/ClickHouse/ClickHouse/pull/82617) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* 为 ProfileEvents 的 Counter 添加内存对齐以减少伪共享。 [#82697](https://github.com/ClickHouse/ClickHouse/pull/82697) ([Jiebin Sun](https://github.com/jiebinn)). -* 来自 [#82308](https://github.com/ClickHouse/ClickHouse/issues/82308) 的针对 `null_map` 和 `JoinMask` 的优化已应用于包含多个析取条件的 JOIN 场景。同时,对 `KnownRowsHolder` 数据结构也进行了优化。[#83041](https://github.com/ClickHouse/ClickHouse/pull/83041)([Nikita Taranov](https://github.com/nickitat))。 -* 直接使用 `std::vector` 作为 join 标志位,以避免在每次访问标志时计算哈希。[#83043](https://github.com/ClickHouse/ClickHouse/pull/83043) ([Nikita Taranov](https://github.com/nickitat))。 -* 当 `HashJoin` 使用 `lazy` 输出模式时,不要提前为结果列分配内存。这样做并不理想,尤其是在匹配数量较少的情况下。此外,在完成 join 之后,我们就知道确切的匹配数量,因此可以更精确地预分配内存。[#83304](https://github.com/ClickHouse/ClickHouse/pull/83304) ([Nikita Taranov](https://github.com/nickitat))。 -* 在构建 pipeline 时,尽量减少端口头部中的内存拷贝。原始 [PR](https://github.com/ClickHouse/ClickHouse/pull/70105) 由 [heymind](https://github.com/heymind) 提交。[#83381](https://github.com/ClickHouse/ClickHouse/pull/83381)([Raúl Marín](https://github.com/Algunenano))。 -* 在 clickhouse-keeper 使用 RocksDB 存储时改进其启动过程。 [#83390](https://github.com/ClickHouse/ClickHouse/pull/83390) ([Antonio Andelic](https://github.com/antonio2368)). -* 在创建存储快照数据时避免持有锁,以减少在高并发负载下的锁竞争。[#83510](https://github.com/ClickHouse/ClickHouse/pull/83510) ([Duc Canh Le](https://github.com/canhld94))。 -* 在未发生解析错误时复用序列化器,从而提升了 `ProtobufSingle` 输入格式的性能。[#83613](https://github.com/ClickHouse/ClickHouse/pull/83613) ([Eduard Karacharov](https://github.com/korowa)). -* 改进 pipeline 构建性能,以加速短查询。 [#83631](https://github.com/ClickHouse/ClickHouse/pull/83631) ([Raúl Marín](https://github.com/Algunenano)). -* 优化 `MergeTreeReadersChain::getSampleBlock`,从而加速短查询。[#83875](https://github.com/ClickHouse/ClickHouse/pull/83875)([Raúl Marín](https://github.com/Algunenano))。 -* 通过异步请求加快数据目录中表的列出速度。 [#81084](https://github.com/ClickHouse/ClickHouse/pull/81084) ([alesapin](https://github.com/alesapin)). -* 在启用 `s3_slow_all_threads_after_network_error` 配置时,为 S3 重试机制加入抖动(jitter)。[#81849](https://github.com/ClickHouse/ClickHouse/pull/81849) ([zoomxi](https://github.com/zoomxi))。 - -#### 改进 {#improvement} - -* 使用多种颜色显示括号,以提高可读性。 [#82538](https://github.com/ClickHouse/ClickHouse/pull/82538) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* 在输入 LIKE/REGEXP 模式时高亮显示其中的元字符。我们已经在 `clickhouse-format` 和 `clickhouse-client` 的 echo 输出中提供了该功能,现在在命令行提示符中也实现了。[#82871](https://github.com/ClickHouse/ClickHouse/pull/82871) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 在 `clickhouse-format` 和客户端的 echo 输出中的高亮效果,现在将与命令行提示符中的高亮保持一致。[#82874](https://github.com/ClickHouse/ClickHouse/pull/82874)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 现在允许将 `plain_rewritable` 磁盘用于存储数据库元数据。在 `plain_rewritable` 中实现了 `moveFile` 和 `replaceFile` 方法,使其可以作为数据库磁盘使用。 [#79424](https://github.com/ClickHouse/ClickHouse/pull/79424) ([Tuan Pham Anh](https://github.com/tuanpach))。 -* 允许为 `PostgreSQL`、`MySQL` 和 `DataLake` 数据库创建备份。此类数据库的备份仅会保存其定义(元数据),而不会备份其中的数据。[#79982](https://github.com/ClickHouse/ClickHouse/pull/79982) ([Nikolay Degterinsky](https://github.com/evillique))。 -* 将设置 `allow_experimental_join_condition` 标记为已废弃,因为它现在始终被允许。[#80566](https://github.com/ClickHouse/ClickHouse/pull/80566)([Vladimir Cherkasov](https://github.com/vdimir))。 -* 将压力相关指标添加到 ClickHouse 异步指标中。[#80779](https://github.com/ClickHouse/ClickHouse/pull/80779) ([Xander Garbett](https://github.com/Garbett1))。 -* 新增指标 `MarkCacheEvictedBytes`、`MarkCacheEvictedMarks`、`MarkCacheEvictedFiles`,用于跟踪标记缓存(mark cache)中的逐出情况。(issue [#60989](https://github.com/ClickHouse/ClickHouse/issues/60989))。[#80799](https://github.com/ClickHouse/ClickHouse/pull/80799)([Shivji Kumar Jha](https://github.com/shiv4289))。 -* 支持按照[规范](https://github.com/apache/parquet-format/blob/master/LogicalTypes.md#enum)要求,将 Parquet enum 写出为字节数组。 [#81090](https://github.com/ClickHouse/ClickHouse/pull/81090) ([Arthur Passos](https://github.com/arthurpassos))。 -* 对 `DeltaLake` 表引擎的改进:delta-kernel-rs 提供了 `ExpressionVisitor` API,本 PR 对其进行了实现,并将其应用于分区列表达式的转换(它将取代我们代码中之前使用、且在 delta-kernel-rs 中已弃用的旧实现方式)。未来,这个 `ExpressionVisitor` 还将支持基于统计信息的裁剪以及一些 Delta Lake 的专有特性。此外,此更改的另一个目的,是为 `DeltaLakeCluster` 表引擎提供分区裁剪支持(解析后的表达式结果 ActionsDAG 将被序列化,并与数据路径一起从发起端发送,因为这类用于裁剪的信息仅作为数据文件列表的元信息在发起端可用,但必须在每个读取服务器上应用于数据)。[#81136](https://github.com/ClickHouse/ClickHouse/pull/81136)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 在为具名元组推导超类型时保留元素名称。[#81345](https://github.com/ClickHouse/ClickHouse/pull/81345) ([lgbo](https://github.com/lgbo-ustc))。 -* 手动统计已消费的消息数量,以避免在 StorageKafka2 中依赖之前已提交的偏移量。 [#81662](https://github.com/ClickHouse/ClickHouse/pull/81662) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* 新增 `clickhouse-keeper-utils`,这是一款用于管理和分析 ClickHouse Keeper 数据的新命令行工具。该工具支持从快照和变更日志中导出状态、分析变更日志文件,以及提取特定的日志范围。[#81677](https://github.com/ClickHouse/ClickHouse/pull/81677) ([Antonio Andelic](https://github.com/antonio2368))。 -* 全局和按用户的网络限速器都不会被重置,从而确保 `max_network_bandwidth_for_all_users` 和 `max_network_bandwidth_for_all_users` 的限制永远不会被超出。[#81729](https://github.com/ClickHouse/ClickHouse/pull/81729)([Sergei Trifonov](https://github.com/serxa))。 -* 支持以 GeoParquet 文件作为输出格式。 [#81784](https://github.com/ClickHouse/ClickHouse/pull/81784) ([Konstantin Vedernikov](https://github.com/scanhex12)). -* 如果某个 `RENAME COLUMN` 修改操作会重命名当前正受未完成数据变更影响的列,则禁止执行该 `RENAME COLUMN` 修改操作。 [#81823](https://github.com/ClickHouse/ClickHouse/pull/81823) ([Mikhail Artemenko](https://github.com/Michicosun)). -* 在确定是否应保留连接后,`Connection` 头会在所有其他头之后发送。[#81951](https://github.com/ClickHouse/ClickHouse/pull/81951) ([Sema Checherinda](https://github.com/CheSema))。 -* 根据 listen_backlog(默认 4096)调整 TCP 服务器队列长度(默认 64)。 [#82045](https://github.com/ClickHouse/ClickHouse/pull/82045) ([Azat Khuzhin](https://github.com/azat)). -* 新增支持在无需重启服务器的情况下动态重新加载 `max_local_read_bandwidth_for_server` 和 `max_local_write_bandwidth_for_server`。[#82083](https://github.com/ClickHouse/ClickHouse/pull/82083) ([Kai Zhu](https://github.com/nauu))。 -* 新增支持使用 `TRUNCATE TABLE system.warnings` 清空 `system.warnings` 表中的所有警告。 [#82087](https://github.com/ClickHouse/ClickHouse/pull/82087) ([Vladimir Cherkasov](https://github.com/vdimir)). -* 修复使用数据湖集群函数时的分区裁剪问题。 [#82131](https://github.com/ClickHouse/ClickHouse/pull/82131) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 修复在 `DeltaLakeCluster` 表函数中读取分区数据的问题。在此 PR 中,提高了集群函数的协议版本,从而允许从发起方向副本发送额外信息。该额外信息包含 delta-kernel 的转换表达式,用于解析分区列(以及将来的一些其他内容,例如生成列等)。[#82132](https://github.com/ClickHouse/ClickHouse/pull/82132) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* `reinterpret` 函数现在支持转换为 `Array(T)` 类型,其中 `T` 是固定大小的数据类型(issue [#82621](https://github.com/ClickHouse/ClickHouse/issues/82621))。[#83399](https://github.com/ClickHouse/ClickHouse/pull/83399)([Shankar Iyer](https://github.com/shankar-iyer))。 -* 现在 Datalake 数据库会抛出更易理解的异常。修复 [#81211](https://github.com/ClickHouse/ClickHouse/issues/81211)。[#82304](https://github.com/ClickHouse/ClickHouse/pull/82304) ([alesapin](https://github.com/alesapin))。 -* 通过让 `HashJoin::needUsedFlagsForPerRightTableRow` 返回 false 来改进 CROSS JOIN。[#82379](https://github.com/ClickHouse/ClickHouse/pull/82379) ([lgbo](https://github.com/lgbo-ustc))。 -* 允许以 Tuple 数组(Array of Tuples)形式读写 Map 列。 [#82408](https://github.com/ClickHouse/ClickHouse/pull/82408) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). -* 在 `system.licenses` 中列出 [Rust](https://clickhouse.com/blog/rust) crate 库的许可证。[#82440](https://github.com/ClickHouse/ClickHouse/pull/82440)([Raúl Marín](https://github.com/Algunenano))。 -* 现在可以在 S3Queue 表引擎的 `keeper_path` 设置中使用类似 `{uuid}` 的宏。[#82463](https://github.com/ClickHouse/ClickHouse/pull/82463) ([Nikolay Degterinsky](https://github.com/evillique))。 -* Keeper 改进:通过后台线程在不同磁盘之间移动 changelog 文件。此前,将 changelog 移动到不同磁盘会在移动完成前全局阻塞 Keeper。如果移动操作耗时较长(例如移动到 S3 磁盘),会导致性能下降。 [#82485](https://github.com/ClickHouse/ClickHouse/pull/82485) ([Antonio Andelic](https://github.com/antonio2368)). -* Keeper 改进:新增配置项 `keeper_server.cleanup_old_and_ignore_new_acl`。如果启用,所有节点的 ACL 都将被清除,而新请求的 ACL 将被忽略。如果目标是从节点上彻底移除 ACL,务必在创建新的快照之前始终保持该配置处于启用状态。[#82496](https://github.com/ClickHouse/ClickHouse/pull/82496) ([Antonio Andelic](https://github.com/antonio2368))。 -* 新增了一个服务器设置项 `s3queue_disable_streaming`,用于在使用 S3Queue 表引擎的表中禁用流式处理。该设置可在无需重启服务器的情况下进行更改。[#82515](https://github.com/ClickHouse/ClickHouse/pull/82515) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 重构文件系统缓存的动态缩放功能。添加了更多日志以便进行内部诊断。 [#82556](https://github.com/ClickHouse/ClickHouse/pull/82556) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 在未提供配置文件时,`clickhouse-server` 也会像默认配置一样监听 PostgreSQL 端口 9005。[#82633](https://github.com/ClickHouse/ClickHouse/pull/82633)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 在 `ReplicatedMergeTree::executeMetadataAlter` 中,我们获取 `StorageID`,并且在不获取 DDLGuard 的情况下尝试调用 `IDatabase::alterTable`。在这段时间内,从技术上讲,我们可能会把相关的那张表与另一张表交换掉,因此当我们获取表定义时,可能会拿到错误的定义。为避免这种情况,我们在调用 `IDatabase::alterTable` 时增加了一个额外的 UUID 匹配检查。[#82666](https://github.com/ClickHouse/ClickHouse/pull/82666)([Nikolay Degterinsky](https://github.com/evillique))。 -* 在附加使用只读远程磁盘的数据库时,需要将表 UUID 手动添加到 DatabaseCatalog 中。[#82670](https://github.com/ClickHouse/ClickHouse/pull/82670)([Tuan Pham Anh](https://github.com/tuanpach))。 -* 防止用户在 `NumericIndexedVector` 中使用 `nan` 和 `inf`。修复了 [#82239](https://github.com/ClickHouse/ClickHouse/issues/82239) 以及一些其他小问题。[#82681](https://github.com/ClickHouse/ClickHouse/pull/82681)([Raufs Dunamalijevs](https://github.com/rienath))。 -* 在 `X-ClickHouse-Progress` 和 `X-ClickHouse-Summary` 头字段格式中不要省略 0 值。 [#82727](https://github.com/ClickHouse/ClickHouse/pull/82727) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). -* Keeper 改进:支持为 world:anyone ACL 配置特定权限。[#82755](https://github.com/ClickHouse/ClickHouse/pull/82755) ([Antonio Andelic](https://github.com/antonio2368)). -* 不允许对在 SummingMergeTree 中显式指定为求和列的列执行 `RENAME COLUMN` 或 `DROP COLUMN` 操作。修复了 [#81836](https://github.com/ClickHouse/ClickHouse/issues/81836)。[#82821](https://github.com/ClickHouse/ClickHouse/pull/82821)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 提高从 `Decimal` 到 `Float32` 的转换精度。实现从 `Decimal` 到 `BFloat16` 的转换。关闭 Issue [#82660](https://github.com/ClickHouse/ClickHouse/issues/82660)。[#82823](https://github.com/ClickHouse/ClickHouse/pull/82823)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* Web UI 中的滚动条外观将略有改善。[#82869](https://github.com/ClickHouse/ClickHouse/pull/82869) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 带有嵌入式配置的 `clickhouse-server` 现在通过提供 HTTP OPTIONS 响应来允许使用 Web UI。[#82870](https://github.com/ClickHouse/ClickHouse/pull/82870)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 在配置中新增对为路径指定额外 Keeper ACL 的支持。如果想为某个特定路径添加额外的 ACL,可在配置中的 `zookeeper.path_acls` 下进行定义。[#82898](https://github.com/ClickHouse/ClickHouse/pull/82898) ([Antonio Andelic](https://github.com/antonio2368))。 -* 现在,变更快照将从可见部分的快照构建。同时,快照中使用的变更计数器会根据所包含的变更重新计算。[#82945](https://github.com/ClickHouse/ClickHouse/pull/82945) ([Mikhail Artemenko](https://github.com/Michicosun))。 -* 在 Keeper 因软内存限制而拒绝写入时添加 ProfileEvent。 [#82963](https://github.com/ClickHouse/ClickHouse/pull/82963) ([Xander Garbett](https://github.com/Garbett1)). -* 向 `system.s3queue_log` 添加 `commit_time` 和 `commit_id` 列。 [#83016](https://github.com/ClickHouse/ClickHouse/pull/83016) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 在某些情况下,我们需要为指标增加多个维度。例如,与其使用单一计数器,不如按错误码统计失败的 merge 或 mutation 次数。为此引入了 `system.dimensional_metrics`,它正是为此而设计的,并新增了首个名为 `failed_merges` 的维度化指标。[#83030](https://github.com/ClickHouse/ClickHouse/pull/83030)([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 -* 在 ClickHouse client 中汇总未知设置相关的警告,并以摘要形式写入日志。[#83042](https://github.com/ClickHouse/ClickHouse/pull/83042) ([Bharat Nallan](https://github.com/bharatnc))。 -* 在发生连接错误时,ClickHouse 客户端现在会报告本地端口号。[#83050](https://github.com/ClickHouse/ClickHouse/pull/83050) ([Jianfei Hu](https://github.com/incfly))。 -* 对 `AsynchronousMetrics` 的错误处理进行了小幅改进。如果 `/sys/block` 目录存在但不可访问,服务器将在不监控块设备的情况下启动。修复了 [#79229](https://github.com/ClickHouse/ClickHouse/issues/79229)。[#83115](https://github.com/ClickHouse/ClickHouse/pull/83115)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 在关闭普通表之后关闭 SystemLogs(位于系统表之前,而不是普通表之前)。 [#83134](https://github.com/ClickHouse/ClickHouse/pull/83134) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 在 `S3Queue` 关闭过程中添加日志。[#83163](https://github.com/ClickHouse/ClickHouse/pull/83163)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 支持将 `Time` 和 `Time64` 解析为 `MM:SS`、`M:SS`、`SS` 或 `S`。 [#83299](https://github.com/ClickHouse/ClickHouse/pull/83299) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* 当 `distributed_ddl_output_mode='*_only_active'` 时,不再等待复制延迟大于 `max_replication_lag_to_enqueue` 的新副本或恢复中的副本。这样可以避免在新副本完成初始化或恢复后变为活动状态时,由于在初始化期间积累了大量复制日志而导致出现 `DDL task is not finished on some hosts`。同时,实现了 `SYSTEM SYNC DATABASE REPLICA STRICT` 查询,用于等待复制日志降到低于 `max_replication_lag_to_enqueue`。[#83302](https://github.com/ClickHouse/ClickHouse/pull/83302) ([Alexander Tokmakov](https://github.com/tavplubix))。 -* 不要在异常消息中输出过长的表达式操作描述。关闭 [#83164](https://github.com/ClickHouse/ClickHouse/issues/83164)。[#83350](https://github.com/ClickHouse/ClickHouse/pull/83350)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 增加对解析 part 前缀和后缀的支持,并检查非常量列的覆盖情况。[#83377](https://github.com/ClickHouse/ClickHouse/pull/83377) ([Mikhail Artemenko](https://github.com/Michicosun))。 -* 在使用命名集合时统一 ODBC 和 JDBC 中的参数名。[#83410](https://github.com/ClickHouse/ClickHouse/pull/83410) ([Andrey Zvonov](https://github.com/zvonand)). -* 当存储处于关闭过程中时,`getStatus` 会抛出 `ErrorCodes::ABORTED` 异常。之前,这会导致 SELECT 查询失败。现在我们会捕获 `ErrorCodes::ABORTED` 异常并刻意忽略它们。[#83435](https://github.com/ClickHouse/ClickHouse/pull/83435)([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 -* 将进程资源指标(例如 `UserTimeMicroseconds`、`SystemTimeMicroseconds`、`RealTimeMicroseconds`)添加到 `MergeParts` 条目的 part_log profile 事件中。[#83460](https://github.com/ClickHouse/ClickHouse/pull/83460)([Vladimir Cherkasov](https://github.com/vdimir))。 -* 在 Keeper 中默认启用 `create_if_not_exists`、`check_not_exists`、`remove_recursive` 特性标志,以支持新的请求类型。[#83488](https://github.com/ClickHouse/ClickHouse/pull/83488) ([Antonio Andelic](https://github.com/antonio2368))。 -* 在服务器关闭时,应先停止 S3(Azure/etc)Queue 流式处理,然后再关闭任何表。 [#83530](https://github.com/ClickHouse/ClickHouse/pull/83530) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 在 `JSON` 输入格式中支持将 `Date`/`Date32` 作为整数使用。[#83597](https://github.com/ClickHouse/ClickHouse/pull/83597) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). -* 针对在加载和添加 projection 过程中某些特定情况,改进了异常消息的可读性,使其更易于阅读。 [#83728](https://github.com/ClickHouse/ClickHouse/pull/83728) ([Robert Schulze](https://github.com/rschu1ze)). -* 为 `clickhouse-server` 引入一个配置选项,用于跳过二进制文件校验和完整性检查。解决了 [#83637](https://github.com/ClickHouse/ClickHouse/issues/83637)。 [#83749](https://github.com/ClickHouse/ClickHouse/pull/83749) ([Rafael Roquetto](https://github.com/rafaelroquetto))。 - -#### 缺陷修复(官方稳定版中用户可见的异常行为) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* 修复 `clickhouse-benchmark` 中 `--reconnect` 选项的错误默认值。该值在 [#79465](https://github.com/ClickHouse/ClickHouse/issues/79465) 中被误改。[#82677](https://github.com/ClickHouse/ClickHouse/pull/82677)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 修复 `CREATE DICTIONARY` 语句格式不一致的问题。关闭 [#82105](https://github.com/ClickHouse/ClickHouse/issues/82105)。[#82829](https://github.com/ClickHouse/ClickHouse/pull/82829)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 修复在 TTL 包含 `materialize` 函数时格式不一致的问题。关闭 [#82828](https://github.com/ClickHouse/ClickHouse/issues/82828)。[#82831](https://github.com/ClickHouse/ClickHouse/pull/82831)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 修复在子查询中使用 `EXPLAIN AST` 且包含 `INTO OUTFILE` 等输出选项时的格式不一致问题。关闭 [#82826](https://github.com/ClickHouse/ClickHouse/issues/82826)。[#82840](https://github.com/ClickHouse/ClickHouse/pull/82840)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 修复在不允许使用别名的上下文中,对带别名括号表达式进行格式化时不一致的问题。关闭 [#82836](https://github.com/ClickHouse/ClickHouse/issues/82836)。关闭 [#82837](https://github.com/ClickHouse/ClickHouse/issues/82837)。[#82867](https://github.com/ClickHouse/ClickHouse/pull/82867)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 在将聚合函数状态与 IPv4 相乘时改为使用正确的错误代码。修复 [#82817](https://github.com/ClickHouse/ClickHouse/issues/82817)。[#82818](https://github.com/ClickHouse/ClickHouse/pull/82818)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 修复文件系统缓存中的逻辑错误:“字节数为零但范围尚未结束”。 [#81868](https://github.com/ClickHouse/ClickHouse/pull/81868) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 当 TTL 导致行数减少时,重新计算 min-max 索引,以确保依赖该索引的算法(例如 `minmax_count_projection`)的正确性。修复了 [#77091](https://github.com/ClickHouse/ClickHouse/issues/77091)。[#77166](https://github.com/ClickHouse/ClickHouse/pull/77166)([Amos Bird](https://github.com/amosbird))。 -* 对于包含 `ORDER BY ... LIMIT BY ... LIMIT N` 组合的查询,当 ORDER BY 以 PartialSorting 方式执行时,计数器 `rows_before_limit_at_least` 现在反映的是被 LIMIT 子句处理的行数,而不是被排序变换阶段处理的行数。[#78999](https://github.com/ClickHouse/ClickHouse/pull/78999)([Eduard Karacharov](https://github.com/korowa))。 -* 修复在通过 token/ngram 索引并使用包含交替且首个备选项为非字面量的正则表达式进行过滤时出现的 granule 过度跳过问题。[#79373](https://github.com/ClickHouse/ClickHouse/pull/79373) ([Eduard Karacharov](https://github.com/korowa)). -* 修复了 `<=>` 运算符在 Join 存储引擎中的逻辑错误,使查询现在能返回正确的错误代码。[#80165](https://github.com/ClickHouse/ClickHouse/pull/80165) ([Vladimir Cherkasov](https://github.com/vdimir)). -* 修复在与 `remote` 函数族一起使用时 `loop` 函数发生崩溃的问题。确保在 `loop(remote(...))` 中 LIMIT 子句能够被正确生效。[#80299](https://github.com/ClickHouse/ClickHouse/pull/80299)([Julia Kartseva](https://github.com/jkartseva))。 -* 修复 `to_utc_timestamp` 和 `from_utc_timestamp` 函数在处理 Unix 纪元开始时间(1970-01-01)之前以及超过最大日期(2106-02-07 06:28:15)的日期时的错误行为。现在,这些函数会将值分别正确地限制在纪元起始时间和最大日期。 [#80498](https://github.com/ClickHouse/ClickHouse/pull/80498) ([Surya Kant Ranjan](https://github.com/iit2009046)). -* 对于某些使用并行副本执行的查询,发起端可以应用有序读取优化,而远程节点无法应用该优化。这会导致发起端的并行副本协调器与远程节点使用不同的读取模式,从而产生逻辑错误。[#80652](https://github.com/ClickHouse/ClickHouse/pull/80652)([Igor Nikonov](https://github.com/devcrafter))。 -* 修复在物化投影中,当列类型更改为 Nullable 时出现的逻辑错误。 [#80741](https://github.com/ClickHouse/ClickHouse/pull/80741) ([Pavel Kruglov](https://github.com/Avogar)). -* 修复在更新 TTL 时,`TTL GROUP BY` 中 TTL 重新计算不正确的问题。[#81222](https://github.com/ClickHouse/ClickHouse/pull/81222)([Evgeniy Ulasik](https://github.com/H0uston))。 -* 修复了 Parquet 布隆过滤器错误地将形如 `WHERE function(key) IN (...)` 的条件当作 `WHERE key IN (...)` 来处理的问题。 [#81255](https://github.com/ClickHouse/ClickHouse/pull/81255) ([Michael Kolupaev](https://github.com/al13n321)). -* 修复了在合并过程中出现异常时,`Aggregator` 中可能发生的崩溃问题。[#81450](https://github.com/ClickHouse/ClickHouse/pull/81450) ([Nikita Taranov](https://github.com/nickitat))。 -* 修复了 `InterpreterInsertQuery::extendQueryLogElemImpl`,在需要时为数据库和表名添加反引号(例如,当名称包含诸如 `-` 之类的特殊字符时)。[#81528](https://github.com/ClickHouse/ClickHouse/pull/81528)([Ilia Shvyrialkin](https://github.com/Harzu))。 -* 修复在 `transform_null_in=1` 且左侧参数为 null、子查询结果为非可空时 `IN` 的执行行为。 [#81584](https://github.com/ClickHouse/ClickHouse/pull/81584) ([Pavel Kruglov](https://github.com/Avogar)). -* 在从现有表读取数据时,执行 default/materialize 表达式时不再校验实验性/可疑类型。[#81618](https://github.com/ClickHouse/ClickHouse/pull/81618) ([Pavel Kruglov](https://github.com/Avogar)). -* 修复在合并时,当在 TTL 表达式中使用 dict 时出现的 “Context has expired” 错误。[#81690](https://github.com/ClickHouse/ClickHouse/pull/81690) ([Azat Khuzhin](https://github.com/azat)). -* 修复 `cast` 函数的单调性。[#81722](https://github.com/ClickHouse/ClickHouse/pull/81722) ([zoomxi](https://github.com/zoomxi))。 -* 修复在标量关联子查询处理过程中未读取必需列的问题。修复 [#81716](https://github.com/ClickHouse/ClickHouse/issues/81716)。[#81805](https://github.com/ClickHouse/ClickHouse/pull/81805)([Dmitry Novik](https://github.com/novikd))。 -* 在之前的版本中,服务器对 `/js` 请求返回了过多的内容。已关闭 [#61890](https://github.com/ClickHouse/ClickHouse/issues/61890)。[#81895](https://github.com/ClickHouse/ClickHouse/pull/81895)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 此前,在 `MongoDB` 表引擎定义中,可以在 `host:port` 参数中包含路径部分,但该部分会被静默忽略。`mongodb` 集成会拒绝加载此类表。通过此次修复,*如果 `MongoDB` 引擎有五个参数,则允许加载此类表并忽略路径部分*,并使用参数中提供的数据库名称。*注意:* 此修复不适用于新创建的表、带有 `mongo` 表函数的查询,以及字典源和命名集合。 [#81942](https://github.com/ClickHouse/ClickHouse/pull/81942) ([Vladimir Cherkasov](https://github.com/vdimir))。 -* 修复了在合并过程中发生异常时 `Aggregator` 可能崩溃的问题。 [#82022](https://github.com/ClickHouse/ClickHouse/pull/82022) ([Nikita Taranov](https://github.com/nickitat)). -* 修复了在查询仅使用常量别名列时的过滤条件分析问题。修复了 [#79448](https://github.com/ClickHouse/ClickHouse/issues/79448)。[#82037](https://github.com/ClickHouse/ClickHouse/pull/82037)([Dmitry Novik](https://github.com/novikd))。 -* 修复在 TTL 中对 GROUP BY 和 SET 使用相同列时出现的 `LOGICAL_ERROR` 以及随后发生的崩溃。 [#82054](https://github.com/ClickHouse/ClickHouse/pull/82054) ([Pablo Marcos](https://github.com/pamarcos)). -* 修复在敏感信息掩码处理中对 S3 表函数参数的校验问题,防止可能出现的 `LOGICAL_ERROR`,关闭 [#80620](https://github.com/ClickHouse/ClickHouse/issues/80620)。[#82056](https://github.com/ClickHouse/ClickHouse/pull/82056) ([Vladimir Cherkasov](https://github.com/vdimir))。 -* 修复 Iceberg 中的数据竞争。[#82088](https://github.com/ClickHouse/ClickHouse/pull/82088) ([Azat Khuzhin](https://github.com/azat)). -* 修复 `DatabaseReplicated::getClusterImpl`。如果 `hosts` 中第一个元素(或前几个元素)的 `id == DROPPED_MARK`,且同一分片没有其他元素,那么 `shards` 的第一个元素将是一个空向量,从而导致抛出 `std::out_of_range` 异常。 [#82093](https://github.com/ClickHouse/ClickHouse/pull/82093) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 -* 修复 arraySimilarity 中的拷贝粘贴错误,禁用 UInt32 和 Int32 权重。更新测试和文档。 [#82103](https://github.com/ClickHouse/ClickHouse/pull/82103) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). -* 修复在包含 `WHERE` 条件和 `IndexSet` 时使用 `arrayJoin` 的查询中出现的 `Not found column` 错误。[#82113](https://github.com/ClickHouse/ClickHouse/pull/82113)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* 修复 Glue Catalog 集成中的缺陷。现在 ClickHouse 可以读取包含嵌套数据类型的表,其中部分子列为 Decimal 类型,例如:`map<string, decimal(9, 2)>`。修复了 [#81301](https://github.com/ClickHouse/ClickHouse/issues/81301)。[#82114](https://github.com/ClickHouse/ClickHouse/pull/82114)([alesapin](https://github.com/alesapin))。 -* 修复 SummingMergeTree 在 25.5 版本中因 [https://github.com/ClickHouse/ClickHouse/pull/79051](https://github.com/ClickHouse/ClickHouse/pull/79051) 引入的性能下降问题。[#82130](https://github.com/ClickHouse/ClickHouse/pull/82130)([Pavel Kruglov](https://github.com/Avogar))。 -* 在通过 URI 传递设置时,将采用最后一个值。 [#82137](https://github.com/ClickHouse/ClickHouse/pull/82137) ([Sema Checherinda](https://github.com/CheSema))。 -* 修复 Iceberg 中 “Context has expired” 错误。[#82146](https://github.com/ClickHouse/ClickHouse/pull/82146)([Azat Khuzhin](https://github.com/azat))。 -* 在服务器内存吃紧时,修复远程查询可能出现的死锁问题。 [#82160](https://github.com/ClickHouse/ClickHouse/pull/82160) ([Kirill](https://github.com/kirillgarbar)). -* 修复了在将 `numericIndexedVectorPointwiseAdd`、`numericIndexedVectorPointwiseSubtract`、`numericIndexedVectorPointwiseMultiply`、`numericIndexedVectorPointwiseDivide` 这些函数应用于大数时出现的溢出问题。[#82165](https://github.com/ClickHouse/ClickHouse/pull/82165)([Raufs Dunamalijevs](https://github.com/rienath))。 -* 修复表依赖中的一个错误,该错误会导致物化视图无法捕获 `INSERT` 查询。 [#82222](https://github.com/ClickHouse/ClickHouse/pull/82222) ([Nikolay Degterinsky](https://github.com/evillique)). -* 修复建议线程与主客户端线程之间可能发生的数据竞争。 [#82233](https://github.com/ClickHouse/ClickHouse/pull/82233) ([Azat Khuzhin](https://github.com/azat)). -* 现在,在进行模式演进后,ClickHouse 可以从 Glue Catalog 中读取 Iceberg 表。修复 [#81272](https://github.com/ClickHouse/ClickHouse/issues/81272)。[#82301](https://github.com/ClickHouse/ClickHouse/pull/82301)([alesapin](https://github.com/alesapin))。 -* 修复异步指标配置项 `asynchronous_metrics_update_period_s` 和 `asynchronous_heavy_metrics_update_period_s` 的验证逻辑。[#82310](https://github.com/ClickHouse/ClickHouse/pull/82310)([Bharat Nallan](https://github.com/bharatnc))。 -* 修复在包含多个 JOIN 的查询中解析匹配器时出现的逻辑错误,关闭 [#81969](https://github.com/ClickHouse/ClickHouse/issues/81969)。[#82421](https://github.com/ClickHouse/ClickHouse/pull/82421)([Vladimir Cherkasov](https://github.com/vdimir))。 -* 为 AWS ECS 令牌添加过期时间,以支持重新加载。 [#82422](https://github.com/ClickHouse/ClickHouse/pull/82422) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* 修复了 `CASE` 函数处理 `NULL` 参数时的一个错误。[#82436](https://github.com/ClickHouse/ClickHouse/pull/82436) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* 修复了客户端中的数据竞争问题(通过不再使用全局 context),以及 `session_timezone` 覆盖逻辑(此前,如果在 `users.xml`/客户端选项中将 `session_timezone` 设置为非空,而在查询 context 中设置为空,则会错误地使用 `users.xml` 中的值;现在,查询 context 将始终优先于全局 context)。 [#82444](https://github.com/ClickHouse/ClickHouse/pull/82444) ([Azat Khuzhin](https://github.com/azat)). -* 修复 external table 引擎中缓存缓冲区禁用边界对齐的功能。在 [https://github.com/ClickHouse/ClickHouse/pull/81868](https://github.com/ClickHouse/ClickHouse/pull/81868) 中该功能被破坏。[#82493](https://github.com/ClickHouse/ClickHouse/pull/82493)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 修复在将 key-value 存储与经类型转换的键进行 JOIN 时发生的崩溃。[#82497](https://github.com/ClickHouse/ClickHouse/pull/82497) ([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 -* 修复在 logs/query_log 中隐藏命名集合值的逻辑。关闭 [#82405](https://github.com/ClickHouse/ClickHouse/issues/82405)。[#82510](https://github.com/ClickHouse/ClickHouse/pull/82510)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 修复了在终止会话时,如果 `user_id` 为空,可能导致日志记录崩溃的问题。[#82513](https://github.com/ClickHouse/ClickHouse/pull/82513) ([Bharat Nallan](https://github.com/bharatnc))。 -* 修复了在解析 Time 时可能导致 msan 问题的情况。相关修复:[#82477](https://github.com/ClickHouse/ClickHouse/issues/82477)。[#82514](https://github.com/ClickHouse/ClickHouse/pull/82514)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* 禁止将 `threadpool_writer_pool_size` 设置为 0,以避免服务器操作发生阻塞。[#82532](https://github.com/ClickHouse/ClickHouse/pull/82532)([Bharat Nallan](https://github.com/bharatnc))。 -* 修复在分析包含关联列的行策略表达式时出现的 `LOGICAL_ERROR`。 [#82618](https://github.com/ClickHouse/ClickHouse/pull/82618) ([Dmitry Novik](https://github.com/novikd)). -* 当 `enable_shared_storage_snapshot_in_query = 1` 时,修复 `mergeTreeProjection` 表函数中对父元数据的不正确使用。这对应于 [#82634](https://github.com/ClickHouse/ClickHouse/issues/82634)。[#82638](https://github.com/ClickHouse/ClickHouse/pull/82638)([Amos Bird](https://github.com/amosbird))。 -* 函数 `trim{Left,Right,Both}` 现已支持类型为 "FixedString(N)" 的输入字符串。例如,`SELECT trimBoth(toFixedString('abc', 3), 'ac')` 现在可以正常执行。[#82691](https://github.com/ClickHouse/ClickHouse/pull/82691)([Robert Schulze](https://github.com/rschu1ze))。 -* 在 AzureBlobStorage 中,对于 native copy,我们会比较身份验证方法;如果在此过程中遇到异常,代码已更新为回退到读取并复制(即非 native copy)。 [#82693](https://github.com/ClickHouse/ClickHouse/pull/82693) ([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 -* 修复在元素为空时对 `groupArraySample`/`groupArrayLast` 的反序列化问题(当输入为空时,反序列化可能会跳过部分二进制数据,这会在读取数据期间导致数据损坏,并在 TCP 协议中触发 UNKNOWN_PACKET_FROM_SERVER)。这不会影响数值和日期时间类型。[#82763](https://github.com/ClickHouse/ClickHouse/pull/82763)([Pedro Ferreira](https://github.com/PedroTadim))。 -* 修复空 `Memory` 表备份的问题,该问题会导致在恢复备份时因 `BACKUP_ENTRY_NOT_FOUND` 错误而失败。 [#82791](https://github.com/ClickHouse/ClickHouse/pull/82791) ([Julia Kartseva](https://github.com/jkartseva)). -* 修复 `union/intersect/except_default_mode` 重写过程中的异常安全性。关闭 [#82664](https://github.com/ClickHouse/ClickHouse/issues/82664)。[#82820](https://github.com/ClickHouse/ClickHouse/pull/82820)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 跟踪异步表加载任务的数量。如果仍有任务在运行,则不要在 `TransactionLog::removeOldEntries` 中更新 `tail_ptr`。[#82824](https://github.com/ClickHouse/ClickHouse/pull/82824) ([Tuan Pham Anh](https://github.com/tuanpach))。 -* 修复 Iceberg 中的数据竞态。[#82841](https://github.com/ClickHouse/ClickHouse/pull/82841) ([Azat Khuzhin](https://github.com/azat)). -* 在设置 `use_skip_indexes_if_final_exact_mode` 优化项(在 25.6 中引入)时,可能会根据 `MergeTree` 引擎设置或数据分布而无法选取相关的候选范围。该问题现已修复。[#82879](https://github.com/ClickHouse/ClickHouse/pull/82879)([Shankar Iyer](https://github.com/shankar-iyer))。 -* 在从 AST 解析类型为 SCRAM_SHA256_PASSWORD 的认证数据时设置 salt。 [#82888](https://github.com/ClickHouse/ClickHouse/pull/82888) ([Tuan Pham Anh](https://github.com/tuanpach)). -* 在使用非缓存的 Database 实现时,在返回列并使引用失效后,对应表的元数据会被删除。[#82939](https://github.com/ClickHouse/ClickHouse/pull/82939) ([buyval01](https://github.com/buyval01))。 -* 修复在包含对使用 `Merge` 存储的表执行 JOIN 表达式的查询中,过滤条件被修改的问题。修复了 [#82092](https://github.com/ClickHouse/ClickHouse/issues/82092)。[#82950](https://github.com/ClickHouse/ClickHouse/pull/82950)([Dmitry Novik](https://github.com/novikd))。 -* 修复 QueryMetricLog 中的 LOGICAL_ERROR:Mutex cannot be NULL。 [#82979](https://github.com/ClickHouse/ClickHouse/pull/82979) ([Pablo Marcos](https://github.com/pamarcos))。 -* 修复了在同时使用格式说明符 `%f` 和可变长度格式说明符(例如 `%M`)时,函数 `formatDateTime` 输出不正确的问题。[#83020](https://github.com/ClickHouse/ClickHouse/pull/83020) ([Robert Schulze](https://github.com/rschu1ze))。 -* 修复在启用 analyzer 时,由于二级查询总是从视图读取所有列而导致的性能下降问题。修复了 [#81718](https://github.com/ClickHouse/ClickHouse/issues/81718)。[#83036](https://github.com/ClickHouse/ClickHouse/pull/83036)([Dmitry Novik](https://github.com/novikd))。 -* 修复在只读磁盘上恢复备份时的误导性错误信息。[#83051](https://github.com/ClickHouse/ClickHouse/pull/83051)([Julia Kartseva](https://github.com/jkartseva))。 -* 在创建没有依赖关系的表时不再检查循环依赖。该改动修复了在创建成千上万张表的用例中出现的性能退化问题,此问题是在 [https://github.com/ClickHouse/ClickHouse/pull/65405](https://github.com/ClickHouse/ClickHouse/pull/65405) 中引入的。[#83077](https://github.com/ClickHouse/ClickHouse/pull/83077)([Pavel Kruglov](https://github.com/Avogar))。 -* 修复了将负的 Time 值隐式读取到表中的问题,并澄清了相关文档的表述,避免产生混淆。 [#83091](https://github.com/ClickHouse/ClickHouse/pull/83091) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* 不要在 `lowCardinalityKeys` 函数中使用共享字典中不相关的部分。 [#83118](https://github.com/ClickHouse/ClickHouse/pull/83118) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 修复在物化视图中使用子列时出现的回归问题。此修复对应:[#82784](https://github.com/ClickHouse/ClickHouse/issues/82784)。[#83221](https://github.com/ClickHouse/ClickHouse/pull/83221)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 -* 修复在错误的 INSERT 操作后连接被遗留在断开状态,从而导致客户端崩溃的问题。 [#83253](https://github.com/ClickHouse/ClickHouse/pull/83253) ([Azat Khuzhin](https://github.com/azat)). -* 修复在计算包含空列的块大小时发生的崩溃。 [#83271](https://github.com/ClickHouse/ClickHouse/pull/83271) ([Raúl Marín](https://github.com/Algunenano)). -* 修复在 UNION 中使用 Variant 类型时可能发生的崩溃。[#83295](https://github.com/ClickHouse/ClickHouse/pull/83295) ([Pavel Kruglov](https://github.com/Avogar))。 -* 修复在 clickhouse-local 中针对不支持的 SYSTEM 查询触发的 LOGICAL_ERROR。 [#83333](https://github.com/ClickHouse/ClickHouse/pull/83333) ([Surya Kant Ranjan](https://github.com/iit2009046)). -* 修复 S3 客户端中的 `no_sign_request`。它可用于显式禁止为 S3 请求签名,也可以通过基于 endpoint 的设置为特定 endpoint 单独配置。 [#83379](https://github.com/ClickHouse/ClickHouse/pull/83379) ([Antonio Andelic](https://github.com/antonio2368))。 -* 修复了在启用 CPU 调度的高负载场景下执行、且设置了 'max_threads=1' 的查询可能出现的崩溃问题。 [#83387](https://github.com/ClickHouse/ClickHouse/pull/83387) ([Fan Ziqi](https://github.com/f2quantum)). -* 修复当 CTE 定义引用另一个具有相同名称的表表达式时会抛出 `TOO_DEEP_SUBQUERIES` 异常的问题。[#83413](https://github.com/ClickHouse/ClickHouse/pull/83413)([Dmitry Novik](https://github.com/novikd))。 -* 修复了在执行 `REVOKE S3 ON system.*` 时的错误行为,该命令错误地撤销了 `*.*` 的 S3 权限。此修复解决了 [#83417](https://github.com/ClickHouse/ClickHouse/issues/83417)。[#83420](https://github.com/ClickHouse/ClickHouse/pull/83420)([pufit](https://github.com/pufit))。 -* 不要在不同查询之间共享 async_read_counters。[#83423](https://github.com/ClickHouse/ClickHouse/pull/83423) ([Azat Khuzhin](https://github.com/azat))。 -* 当子查询包含 FINAL 时,禁用并行副本。 [#83455](https://github.com/ClickHouse/ClickHouse/pull/83455) ([zoomxi](https://github.com/zoomxi))。 -* 修复在配置设置 `role_cache_expiration_time_seconds` 时的轻微整数溢出问题(issue [#83374](https://github.com/ClickHouse/ClickHouse/issues/83374))。[#83461](https://github.com/ClickHouse/ClickHouse/pull/83461)([wushap](https://github.com/wushap))。 -* 修复在 [https://github.com/ClickHouse/ClickHouse/pull/79963](https://github.com/ClickHouse/ClickHouse/pull/79963) 中引入的一个 Bug。当向带有定义者(definer)的物化视图(MV)插入数据时,权限检查应使用该定义者的权限。此更改修复了 [#79951](https://github.com/ClickHouse/ClickHouse/issues/79951)。[#83502](https://github.com/ClickHouse/ClickHouse/pull/83502)([pufit](https://github.com/pufit))。 -* 对 Iceberg 数组元素和 Iceberg map 值禁用基于范围的文件剪枝,包括其所有嵌套子字段。 [#83520](https://github.com/ClickHouse/ClickHouse/pull/83520) ([Daniil Ivanik](https://github.com/divanik)). -* 修复在将文件缓存作为临时数据存储使用时可能出现的 file cache not initialized 错误。[#83539](https://github.com/ClickHouse/ClickHouse/pull/83539) ([Bharat Nallan](https://github.com/bharatnc))。 -* Keeper 修复:在会话关闭时删除临时节点后,正确更新 watch 总数。 [#83583](https://github.com/ClickHouse/ClickHouse/pull/83583) ([Antonio Andelic](https://github.com/antonio2368)). -* 修复与 `max_untracked_memory` 相关的错误内存统计问题。 [#83607](https://github.com/ClickHouse/ClickHouse/pull/83607) ([Azat Khuzhin](https://github.com/azat)). -* 在某些极端情况下,带有 UNION ALL 的 INSERT SELECT 可能导致空指针解引用。此更改修复了 [#83618](https://github.com/ClickHouse/ClickHouse/issues/83618)。[#83643](https://github.com/ClickHouse/ClickHouse/pull/83643)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 禁止将 `max_insert_block_size` 设置为 0,因为这可能导致逻辑错误。 [#83688](https://github.com/ClickHouse/ClickHouse/pull/83688) ([Bharat Nallan](https://github.com/bharatnc)). -* 修复 `block_size_bytes=0` 时 `estimateCompressionRatio()` 中的无限循环问题。[#83704](https://github.com/ClickHouse/ClickHouse/pull/83704) ([Azat Khuzhin](https://github.com/azat))。 -* 修复 `IndexUncompressedCacheBytes`/`IndexUncompressedCacheCells`/`IndexMarkCacheBytes`/`IndexMarkCacheFiles` 指标(此前它们被纳入了不带 `Cache` 前缀的指标中)。[#83730](https://github.com/ClickHouse/ClickHouse/pull/83730) ([Azat Khuzhin](https://github.com/azat)). -* 修复在关闭 `BackgroundSchedulePool` 期间,因从任务中 join 线程而可能触发的 abort,并尽量避免(特别是在单元测试中)发生挂起。 [#83769](https://github.com/ClickHouse/ClickHouse/pull/83769) ([Azat Khuzhin](https://github.com/azat)). -* 引入向后兼容设置,在存在名称冲突的情况下,允许新的分析器在 `WITH` 子句中引用外层别名。修复 [#82700](https://github.com/ClickHouse/ClickHouse/issues/82700)。[#83797](https://github.com/ClickHouse/ClickHouse/pull/83797)([Dmitry Novik](https://github.com/novikd))。 -* 修复在关闭期间,由于在 library bridge 清理过程中对上下文进行递归加锁而导致的死锁问题。[#83824](https://github.com/ClickHouse/ClickHouse/pull/83824) ([Azat Khuzhin](https://github.com/azat))。 - -#### 构建/测试/打包改进 {#buildtestingpackaging-improvement} - -* 为 ClickHouse 词法分析器构建一个最小的 C 库(大小约 10 KB)。这是 [#80977](https://github.com/ClickHouse/ClickHouse/issues/80977) 所需。[#81347](https://github.com/ClickHouse/ClickHouse/pull/81347)([Alexey Milovidov](https://github.com/alexey-milovidov))。为独立词法分析器添加测试,新增测试标签 `fasttest-only`。[#82472](https://github.com/ClickHouse/ClickHouse/pull/82472)([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 -* 为 Nix 子模块的输入添加检查。[#81691](https://github.com/ClickHouse/ClickHouse/pull/81691)([Konstantin Bogdanov](https://github.com/thevar1able))。 -* 修复在尝试在 localhost 上运行集成测试时可能出现的一系列问题。[#82135](https://github.com/ClickHouse/ClickHouse/pull/82135)([Oleg Doronin](https://github.com/dorooleg))。 -* 在 Mac 和 FreeBSD 上编译 SymbolIndex。(但它仅能在 ELF 系统上运行,即 Linux 和 FreeBSD)。[#82347](https://github.com/ClickHouse/ClickHouse/pull/82347)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 将 Azure SDK 升级到 v1.15.0。[#82747](https://github.com/ClickHouse/ClickHouse/pull/82747)([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 -* 将 google-cloud-cpp 的存储模块添加到构建系统中。[#82881](https://github.com/ClickHouse/ClickHouse/pull/82881)([Pablo Marcos](https://github.com/pamarcos))。 -* 修改 clickhouse-server 的 `Dockerfile.ubuntu` 以满足 Docker 官方镜像库的要求。[#83039](https://github.com/ClickHouse/ClickHouse/pull/83039)([Mikhail f. Shiryaev](https://github.com/Felixoid))。 -* 作为 [#83158](https://github.com/ClickHouse/ClickHouse/issues/83158) 的后续修改,修复通过 `curl clickhouse.com` 上传构建产物的问题。[#83463](https://github.com/ClickHouse/ClickHouse/pull/83463)([Mikhail f. Shiryaev](https://github.com/Felixoid))。 -* 在 `clickhouse/clickhouse-server` 以及官方 `clickhouse` 镜像中添加 `busybox` 可执行文件并安装相关工具。[#83735](https://github.com/ClickHouse/ClickHouse/pull/83735)([Mikhail f. Shiryaev](https://github.com/Felixoid))。 -* 添加对 `CLICKHOUSE_HOST` 环境变量的支持,用于指定 ClickHouse 服务器主机地址,与现有的 `CLICKHOUSE_USER` 和 `CLICKHOUSE_PASSWORD` 环境变量保持一致。这样可以在不直接修改客户端或配置文件的情况下,更方便地进行配置。[#83659](https://github.com/ClickHouse/ClickHouse/pull/83659)([Doron David](https://github.com/dorki))。 - -### ClickHouse 25.6 版本发布,2025-06-26 {#256} - -#### 向后不兼容的更改 {#backward-incompatible-change} - -* 之前,函数 `countMatches` 在遇到第一个空匹配时就会停止计数,即使模式允许空匹配。为解决这一问题,现在在出现空匹配时,`countMatches` 会先前进一个字符后再继续执行。希望保留旧行为的用户可以启用设置 `count_matches_stop_at_empty_match`。[#81676](https://github.com/ClickHouse/ClickHouse/pull/81676) ([Elmi Ahmadov](https://github.com/ahmadov)). -* 次要:强制将服务器设置项 `backup_threads` 和 `restore_threads` 设为非零值。[#80224](https://github.com/ClickHouse/ClickHouse/pull/80224) ([Raúl Marín](https://github.com/Algunenano)). -* 次要:修复 `String` 类型的 `bitNot` 在内部内存表示中会返回以零结尾字符串的问题。这不应影响任何用户可见的行为,不过作者希望强调这一变更。[#80791](https://github.com/ClickHouse/ClickHouse/pull/80791) ([Azat Khuzhin](https://github.com/azat)). - -#### 新功能 {#new-feature} - -* 新增数据类型:`Time`([H]HH:MM:SS)和 `Time64`([H]HH:MM:SS[.fractional]),以及一些基本的类型转换函数和用于与其他数据类型交互的函数。添加了与现有函数 `toTime` 兼容的设置。当前将 `use_legacy_to_time` 设置为保留旧行为。[#81217](https://github.com/ClickHouse/ClickHouse/pull/81217)([Yarik Briukhovetskyi](https://github.com/yariks5s))。支持 Time/Time64 之间的比较。[#80327](https://github.com/ClickHouse/ClickHouse/pull/80327)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* 一个新的 CLI 工具 [`chdig`](https://github.com/azat/chdig/) —— 面向 ClickHouse 的 TUI 界面(类似 `top`),现已作为 ClickHouse 的一部分提供。[#79666](https://github.com/ClickHouse/ClickHouse/pull/79666)([Azat Khuzhin](https://github.com/azat))。 -* 为 `Atomic` 和 `Ordinary` 数据库引擎增加对 `disk` 设置的支持,用于指定存储表元数据文件的磁盘。[#80546](https://github.com/ClickHouse/ClickHouse/pull/80546)([Tuan Pham Anh](https://github.com/tuanpach))。这使得可以从外部来源附加数据库。 -* 一种新的 MergeTree 类型,`CoalescingMergeTree` —— 该引擎在后台合并时取第一个非 Null 值。该更改关闭了 [#78869](https://github.com/ClickHouse/ClickHouse/issues/78869)。[#79344](https://github.com/ClickHouse/ClickHouse/pull/79344)([scanhex12](https://github.com/scanhex12))。 -* 支持读取 WKB(“Well-Known Binary”,一种在地理信息系统(GIS)应用中用于对各种几何类型进行二进制编码的格式)的函数。参见 [#43941](https://github.com/ClickHouse/ClickHouse/issues/43941)。[#80139](https://github.com/ClickHouse/ClickHouse/pull/80139)([scanhex12](https://github.com/scanhex12))。 -* 为工作负载新增了查询槽位调度功能,详情参见 [工作负载调度](https://clickhouse.com/docs/operations/workload-scheduling#query_scheduling)。[#78415](https://github.com/ClickHouse/ClickHouse/pull/78415)([Sergei Trifonov](https://github.com/serxa))。 -* 用于处理时序数据并在某些场景下加速操作的 `timeSeries*` 辅助函数:- 将数据按指定的起始时间戳、结束时间戳和步长重新采样到时间网格上 - 计算类 PromQL 的 `delta`、`rate`、`idelta` 和 `irate`。[#80590](https://github.com/ClickHouse/ClickHouse/pull/80590) ([Alexander Gololobov](https://github.com/davenger)). -* 添加 `mapContainsValuesLike`/`mapContainsValues`/`mapExtractValuesLike` 函数,以便根据 map 值进行过滤,并支持基于布隆过滤器的索引。[#78171](https://github.com/ClickHouse/ClickHouse/pull/78171) ([UnamedRus](https://github.com/UnamedRus))。 -* 现在,设置约束可以指定一组不允许的值。[#78499](https://github.com/ClickHouse/ClickHouse/pull/78499) ([Bharat Nallan](https://github.com/bharatnc))。 -* 添加了设置 `enable_shared_storage_snapshot_in_query`,用于在单个查询内让所有子查询共享同一个存储快照。这样即使在一个查询中多次引用同一张表,也能确保对该表的读取保持一致性。[#79471](https://github.com/ClickHouse/ClickHouse/pull/79471) ([Amos Bird](https://github.com/amosbird))。 -* 支持将 `JSON` 列写入 `Parquet`,并直接从 `Parquet` 读取 `JSON` 列。[#79649](https://github.com/ClickHouse/ClickHouse/pull/79649) ([Nihal Z. Miaji](https://github.com/nihalzp))。 -* 为 `pointInPolygon` 添加 `MultiPolygon` 支持。 [#79773](https://github.com/ClickHouse/ClickHouse/pull/79773) ([Nihal Z. Miaji](https://github.com/nihalzp)). -* 添加对通过 `deltaLakeLocal` 表函数查询本地文件系统中挂载的 Delta 表的支持。[#79781](https://github.com/ClickHouse/ClickHouse/pull/79781) ([roykim98](https://github.com/roykim98))。 -* 新增设置 `cast_string_to_date_time_mode`,用于在从 String 转换为 DateTime 时选择解析模式。[#80210](https://github.com/ClickHouse/ClickHouse/pull/80210) ([Pavel Kruglov](https://github.com/Avogar))。例如,你可以将其设置为尽力而为模式。 -* 新增 `bech32Encode` 和 `bech32Decode` 函数,用于处理 Bitcoin 的 Bech 编码算法(问题 [#40381](https://github.com/ClickHouse/ClickHouse/issues/40381))。[#80239](https://github.com/ClickHouse/ClickHouse/pull/80239)([George Larionov](https://github.com/glarik))。 -* 添加用于分析 MergeTree 数据分片名称的 SQL 函数。[#80573](https://github.com/ClickHouse/ClickHouse/pull/80573) ([Mikhail Artemenko](https://github.com/Michicosun))。 -* 通过引入新的虚拟列 `_disk_name`,允许在查询时根据数据所在的磁盘对选中的数据部分进行过滤。[#80650](https://github.com/ClickHouse/ClickHouse/pull/80650) ([tanner-bruce](https://github.com/tanner-bruce)). -* 添加一个包含嵌入式 Web 工具列表的着陆页。当由类似浏览器的用户代理访问时,将会打开该页面。[#81129](https://github.com/ClickHouse/ClickHouse/pull/81129) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 函数 `arrayFirst`、`arrayFirstIndex`、`arrayLast` 和 `arrayLastIndex` 会过滤掉由过滤表达式返回的 NULL 值。在之前的版本中,不支持 Nullable 类型的过滤结果。修复了 [#81113](https://github.com/ClickHouse/ClickHouse/issues/81113)。[#81197](https://github.com/ClickHouse/ClickHouse/pull/81197)([Lennard Eijsackers](https://github.com/Blokje5))。 -* 现在可以使用 `USE DATABASE name` 来代替 `USE name`。[#81307](https://github.com/ClickHouse/ClickHouse/pull/81307)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* 新增系统表 `system.codecs`,用于查看可用的编解码器。(问题 [#81525](https://github.com/ClickHouse/ClickHouse/issues/81525))。[#81600](https://github.com/ClickHouse/ClickHouse/pull/81600)([Jimmy Aguilar Mena](https://github.com/Ergus))。 -* 已支持 `lag` 和 `lead` 窗口函数。修复 [#9887](https://github.com/ClickHouse/ClickHouse/issues/9887)。[#82108](https://github.com/ClickHouse/ClickHouse/pull/82108)([Dmitry Novik](https://github.com/novikd))。 -* 函数 `tokens` 现在支持一种名为 `split` 的新分词器,非常适合日志处理。[#80195](https://github.com/ClickHouse/ClickHouse/pull/80195) ([Robert Schulze](https://github.com/rschu1ze))。 -* 在 `clickhouse-local` 中添加对 `--database` 参数的支持。你可以切换到此前创建的数据库。由此关闭了 [#44115](https://github.com/ClickHouse/ClickHouse/issues/44115)。[#81465](https://github.com/ClickHouse/ClickHouse/pull/81465)([Alexey Milovidov](https://github.com/alexey-milovidov))。 - -#### 实验性功能 {#experimental-feature} - -* 使用 ClickHouse Keeper 为 `Kafka2` 实现类似 Kafka rebalance 的逻辑。对于每个副本,我们支持两种类型的分区锁:永久锁和临时锁。副本会尽可能长时间持有永久锁,在任意时刻,副本上的永久锁数量不超过 `all_topic_partitions / active_replicas_count`(其中 `all_topic_partitions` 是所有分区的数量,`active_replicas_count` 是活动副本的数量),如果超过,则副本会释放部分分区。一些分区会被副本临时持有。副本上的临时锁最大数量会动态变化,以便给其他副本机会将部分分区获取为永久锁。在更新临时锁时,副本会释放其所有临时锁,并尝试重新获取其他分区。[#78726](https://github.com/ClickHouse/ClickHouse/pull/78726)([Daria Fomina](https://github.com/sinfillo))。 -* 对实验性的文本索引进行了改进:现在通过键值对形式支持显式参数。目前支持的参数包括一个必需的 `tokenizer`,以及两个可选参数 `max_rows_per_postings_list` 和 `ngram_size`。[#80262](https://github.com/ClickHouse/ClickHouse/pull/80262)([Elmi Ahmadov](https://github.com/ahmadov))。 -* 之前,`packed` 存储不支持全文索引,因为 segment ID 会通过在磁盘上读写(`.gin_sid`)文件进行实时更新。在使用 `packed` 存储的情况下,不支持从未提交的文件中读取值,这会导致问题。现在这一问题已经解决。[#80852](https://github.com/ClickHouse/ClickHouse/pull/80852)([Elmi Ahmadov](https://github.com/ahmadov))。 -* 类型为 `gin` 的实验性索引(我不喜欢这个名字,因为它是 PostgreSQL 黑客的一个内部玩笑)已被重命名为 `text`。现有的 `gin` 类型索引仍然可以加载,但在尝试在搜索中使用它们时会抛出异常(并建议改用 `text` 索引)。[#80855](https://github.com/ClickHouse/ClickHouse/pull/80855)([Robert Schulze](https://github.com/rschu1ze))。 - -#### 性能优化 {#performance-improvement} - -* 启用多投影过滤功能,允许在分片级过滤时使用多个 projection。此更改解决了 [#55525](https://github.com/ClickHouse/ClickHouse/issues/55525)。这是实现 projection 索引的第二步,继 [#78429](https://github.com/ClickHouse/ClickHouse/issues/78429) 之后。[#80343](https://github.com/ClickHouse/ClickHouse/pull/80343)([Amos Bird](https://github.com/amosbird))。 -* 默认在文件系统缓存中使用 `SLRU` 缓存策略。[#75072](https://github.com/ClickHouse/ClickHouse/pull/75072)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 移除查询管线中 Resize 步骤的争用。[#77562](https://github.com/ClickHouse/ClickHouse/pull/77562) ([Zhiguo Zhou](https://github.com/ZhiguoZh)). -* 引入了一个选项,可以将数据块的(解)压缩和(反)序列化从与网络连接绑定的单线程卸载到多个流水线线程中。通过设置 `enable_parallel_blocks_marshalling` 控制。此功能有望加速在发起端与远端节点之间传输大量数据的分布式查询。[#78694](https://github.com/ClickHouse/ClickHouse/pull/78694)([Nikita Taranov](https://github.com/nickitat))。 -* 对所有类型的布隆过滤器进行了性能优化。[来自 OpenHouse 大会的演讲视频](https://www.youtube.com/watch?v=yIVz0NKwQvA\&pp=ygUQb3BlbmhvdXNlIG9wZW5haQ%3D%3D) [#79800](https://github.com/ClickHouse/ClickHouse/pull/79800) ([Delyan Kratunov](https://github.com/dkratunov)). -* 在 `UniqExactSet::merge` 中新增了当其中一个集合为空时的优化路径。此外,现在如果左侧集合是两级结构而右侧是单级结构,将不再把右侧转换为两级结构。[#79971](https://github.com/ClickHouse/ClickHouse/pull/79971)([Nikita Taranov](https://github.com/nickitat))。 -* 在使用两级哈希表时提升内存复用效率并减少缺页错误,旨在加速 `GROUP BY`。 [#80245](https://github.com/ClickHouse/ClickHouse/pull/80245) ([Jiebin Sun](https://github.com/jiebinn)). -* 避免不必要的更新操作,减少查询条件缓存中的锁竞争。[#80247](https://github.com/ClickHouse/ClickHouse/pull/80247) ([Jiebin Sun](https://github.com/jiebinn))。 -* 对 `concatenateBlocks` 进行了一个简单优化,这可能也有助于并行哈希连接。[#80328](https://github.com/ClickHouse/ClickHouse/pull/80328) ([李扬](https://github.com/taiyang-li))。 -* 在从主键范围中选择 mark 范围时,如果主键被函数包裹,则无法使用二分查找。本 PR 放宽了这一限制:当主键被始终单调的函数链包裹时,或者当逆波兰表达式(RPN)中包含恒为真的元素时,仍然可以使用二分查找。关闭 [#45536](https://github.com/ClickHouse/ClickHouse/issues/45536)。[#80597](https://github.com/ClickHouse/ClickHouse/pull/80597)([zoomxi](https://github.com/zoomxi))。 -* 提高 `Kafka` 引擎的关闭速度(在存在多个 `Kafka` 表时取消额外的 3 秒延迟)。 [#80796](https://github.com/ClickHouse/ClickHouse/pull/80796) ([Azat Khuzhin](https://github.com/azat)). -* 异步插入:降低内存占用并提升插入查询性能。[#80972](https://github.com/ClickHouse/ClickHouse/pull/80972)([Raúl Marín](https://github.com/Algunenano))。 -* 当日志表被禁用时,不要对处理器进行性能分析。[#81256](https://github.com/ClickHouse/ClickHouse/pull/81256)([Raúl Marín](https://github.com/Algunenano))。这样可以加快非常短查询的执行速度。 -* 当源数据恰好满足请求要求时,加速 `toFixedString`。[#81257](https://github.com/ClickHouse/ClickHouse/pull/81257)([Raúl Marín](https://github.com/Algunenano))。 -* 如果用户不受限,则不处理配额值。[#81549](https://github.com/ClickHouse/ClickHouse/pull/81549)([Raúl Marín](https://github.com/Algunenano))。这能加速非常短的查询。 -* 修复了内存跟踪中的性能回归。 [#81694](https://github.com/ClickHouse/ClickHouse/pull/81694) ([Michael Kolupaev](https://github.com/al13n321)). -* 改进分布式查询中的分片键优化。 [#78452](https://github.com/ClickHouse/ClickHouse/pull/78452) ([fhw12345](https://github.com/fhw12345)). -* 并行副本:如果所有读取任务都已分配给其他副本,则避免因未使用的慢副本而阻塞等待。 [#80199](https://github.com/ClickHouse/ClickHouse/pull/80199) ([Igor Nikonov](https://github.com/devcrafter)). -* 并行副本现在使用单独的连接超时时间,请参阅 `parallel_replicas_connect_timeout_ms` 设置。在此之前,并行副本查询的连接超时时间使用的是 `connect_timeout_with_failover_ms`/`connect_timeout_with_failover_secure_ms` 设置(默认 1 秒)。[#80421](https://github.com/ClickHouse/ClickHouse/pull/80421)([Igor Nikonov](https://github.com/devcrafter))。 -* 在带有日志的文件系统中,`mkdir` 会被写入文件系统的日志,该日志会持久化到磁盘上。在磁盘较慢的情况下,这可能会花费较长时间。已将其移出保留锁的作用域。 [#81371](https://github.com/ClickHouse/ClickHouse/pull/81371) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* 将 Iceberg manifest 文件的读取推迟到首次执行读取查询时再进行。 [#81619](https://github.com/ClickHouse/ClickHouse/pull/81619) ([Daniil Ivanik](https://github.com/divanik)). -* 允许在适用的情况下将 `GLOBAL [NOT] IN` 谓词移动到 `PREWHERE` 子句中。 [#79996](https://github.com/ClickHouse/ClickHouse/pull/79996) ([Eduard Karacharov](https://github.com/korowa)). - -#### 改进 {#improvement} - -* `EXPLAIN SYNTAX` 现在使用了新的分析器。它返回由查询树构建的 AST。新增选项 `query_tree_passes`,用于在将查询树转换为 AST 之前控制要执行的遍数。[#74536](https://github.com/ClickHouse/ClickHouse/pull/74536) ([Vladimir Cherkasov](https://github.com/vdimir))。 -* 在 Native 格式中为 Dynamic 和 JSON 实现了扁平化序列化,使在序列化/反序列化 Dynamic 和 JSON 数据时无需使用诸如 Dynamic 的 shared variant 和 JSON 的 shared data 等特殊结构。可以通过设置 `output_format_native_use_flattened_dynamic_and_json_serialization` 来启用此序列化方式。该序列化方式可用于便于不同语言的客户端通过 TCP 协议支持 Dynamic 和 JSON。 [#80499](https://github.com/ClickHouse/ClickHouse/pull/80499) ([Pavel Kruglov](https://github.com/Avogar)). -* 在出现 `AuthenticationRequired` 错误后刷新 `S3` 凭证。 [#77353](https://github.com/ClickHouse/ClickHouse/pull/77353) ([Vitaly Baranov](https://github.com/vitlibar)). -* 在 `system.asynchronous_metrics` 中添加了字典相关指标 — `DictionaryMaxUpdateDelay` — 字典更新的最大延迟时间(秒)。 — `DictionaryTotalFailedUpdates` — 自上次成功加载以来所有字典中的错误总次数。 [#78175](https://github.com/ClickHouse/ClickHouse/pull/78175) ([Vlad](https://github.com/codeworse)). -* 已添加关于可能为保存损坏的表而创建的数据库的警告。[#78841](https://github.com/ClickHouse/ClickHouse/pull/78841) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* 在 `S3Queue`、`AzureQueue` 引擎中添加 `_time` 虚拟列。[#78926](https://github.com/ClickHouse/ClickHouse/pull/78926) ([Anton Ivashkin](https://github.com/ianton-ru))。 -* 使用于控制 CPU 过载时连接中断的设置支持热重载。 [#79052](https://github.com/ClickHouse/ClickHouse/pull/79052) ([Alexey Katsman](https://github.com/alexkats)). -* 为 Azure Blob Storage 中的普通磁盘在 `system.tables` 中报告的数据路径添加容器前缀,使其与 S3 和 GCP 的报告保持一致。 [#79241](https://github.com/ClickHouse/ClickHouse/pull/79241) ([Julia Kartseva](https://github.com/jkartseva)). -* 现在,clickhouse-client 和 local 也支持将查询参数命名为 `param-`(短横线)以及 `param_`(下划线)。此更改解决了 [#63093](https://github.com/ClickHouse/ClickHouse/issues/63093)。[#79429](https://github.com/ClickHouse/ClickHouse/pull/79429)([Engel Danila](https://github.com/aaaengel))。 -* 在启用 checksum 时,从本地复制数据到远程 S3 会给出关于带宽折扣的更详细警告信息。[#79464](https://github.com/ClickHouse/ClickHouse/pull/79464) ([VicoWu](https://github.com/VicoWu))。 -* 之前,当 `input_format_parquet_max_block_size = 0`(无效值)时,ClickHouse 会卡住。现在这一问题已修复。关联 issue:[#79394](https://github.com/ClickHouse/ClickHouse/issues/79394)。关联 PR:[#79601](https://github.com/ClickHouse/ClickHouse/pull/79601)([abashkeev](https://github.com/abashkeev))。 -* 为 `startup_scripts` 添加 `throw_on_error` 设置:当 `throw_on_error` 为 true 时,除非所有查询都成功完成,否则服务器不会启动。默认情况下,`throw_on_error` 为 false,从而保持原有行为。[#79732](https://github.com/ClickHouse/ClickHouse/pull/79732) ([Aleksandr Musorin](https://github.com/AVMusorin))。 -* 支持在任何类型的 `http_handlers` 中添加 `http_response_headers`。[#79975](https://github.com/ClickHouse/ClickHouse/pull/79975) ([Andrey Zvonov](https://github.com/zvonand)). -* 函数 `reverse` 现已支持 `Tuple` 数据类型。解决了 [#80053](https://github.com/ClickHouse/ClickHouse/issues/80053)。[#80083](https://github.com/ClickHouse/ClickHouse/pull/80083)([flynn](https://github.com/ucasfl))。 -* 解决 [#75817](https://github.com/ClickHouse/ClickHouse/issues/75817):支持从 `system.zookeeper` 表中获取 `auxiliary_zookeepers` 数据。[#80146](https://github.com/ClickHouse/ClickHouse/pull/80146)([Nikolay Govorov](https://github.com/mrdimidium))。 -* 为服务器的 TCP 套接字添加异步指标,以提升可观测性。关闭了 [#80187](https://github.com/ClickHouse/ClickHouse/issues/80187)。[#80188](https://github.com/ClickHouse/ClickHouse/pull/80188)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 支持将 `anyLast_respect_nulls` 和 `any_respect_nulls` 作为 `SimpleAggregateFunction`。[#80219](https://github.com/ClickHouse/ClickHouse/pull/80219) ([Diskein](https://github.com/Diskein))。 -* 移除在复制数据库中不必要的 `adjustCreateQueryForBackup` 调用。 [#80282](https://github.com/ClickHouse/ClickHouse/pull/80282) ([Vitaly Baranov](https://github.com/vitlibar)). -* 允许在 `clickhouse-local` 中使用在 `--` 之后出现且不带等号的额外参数(例如 `-- --config.value='abc'`)。修复了 [#80292](https://github.com/ClickHouse/ClickHouse/issues/80292)。[#80293](https://github.com/ClickHouse/ClickHouse/pull/80293)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 在 `SHOW ... LIKE` 查询中突出显示元字符。修复了 [#80275](https://github.com/ClickHouse/ClickHouse/issues/80275)。[#80297](https://github.com/ClickHouse/ClickHouse/pull/80297)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 在 `clickhouse-local` 中让 SQL UDF 持久化。之前创建的函数将在启动时加载。解决了 [#80085](https://github.com/ClickHouse/ClickHouse/issues/80085)。[#80300](https://github.com/ClickHouse/ClickHouse/pull/80300)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 修复 EXPLAIN 计划中 preliminary DISTINCT 步骤的描述。[#80330](https://github.com/ClickHouse/ClickHouse/pull/80330) ([UnamedRus](https://github.com/UnamedRus))。 -* 允许在 ODBC/JDBC 中使用命名集合。 [#80334](https://github.com/ClickHouse/ClickHouse/pull/80334) ([Andrey Zvonov](https://github.com/zvonand)). -* 用于统计只读磁盘和损坏磁盘数量的指标。在 `DiskLocalCheckThread` 启动时记录标识性日志。 [#80391](https://github.com/ClickHouse/ClickHouse/pull/80391) ([VicoWu](https://github.com/VicoWu))。 -* 实现对带投影的 `s3_plain_rewritable` 存储的支持。在早期版本中,S3 中引用投影的元数据对象在被移动时不会更新。关闭 [#70258](https://github.com/ClickHouse/ClickHouse/issues/70258)。[#80393](https://github.com/ClickHouse/ClickHouse/pull/80393)([Sav](https://github.com/sberss))。 -* `SYSTEM UNFREEZE` 命令将不再尝试在只读和一次写入磁盘上查找数据分片。这解决了 [#80430](https://github.com/ClickHouse/ClickHouse/issues/80430)。[#80432](https://github.com/ClickHouse/ClickHouse/pull/80432)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 降低了关于合并 part 的日志消息级别。 [#80476](https://github.com/ClickHouse/ClickHouse/pull/80476) ([Hans Krutzer](https://github.com/hkrutzer)). -* 修改 Iceberg 表的分区裁剪默认行为。 [#80583](https://github.com/ClickHouse/ClickHouse/pull/80583) ([Melvyn Peignon](https://github.com/melvynator)). -* 为索引搜索算法的可观测性新增两个 ProfileEvents:`IndexBinarySearchAlgorithm` 和 `IndexGenericExclusionSearchAlgorithm`。[#80679](https://github.com/ClickHouse/ClickHouse/pull/80679)([Pablo Marcos](https://github.com/pamarcos))。 -* 不再在日志中针对旧内核不支持 `MADV_POPULATE_WRITE` 进行抱怨(以避免日志污染)。[#80704](https://github.com/ClickHouse/ClickHouse/pull/80704) ([Robert Schulze](https://github.com/rschu1ze))。 -* 在 `TTL` 表达式中新增了对 `Date32` 和 `DateTime64` 的支持。[#80710](https://github.com/ClickHouse/ClickHouse/pull/80710) ([Andrey Zvonov](https://github.com/zvonand)). -* 调整 `max_merge_delayed_streams_for_parallel_write` 的兼容性设置。 [#80760](https://github.com/ClickHouse/ClickHouse/pull/80760) ([Azat Khuzhin](https://github.com/azat)). -* 修复崩溃问题:如果在析构函数中尝试删除临时文件(用于将临时数据溢写到磁盘)时抛出异常,程序可能会终止。 [#80776](https://github.com/ClickHouse/ClickHouse/pull/80776) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 为 `SYSTEM SYNC REPLICA` 添加 `IF EXISTS` 修饰符。 [#80810](https://github.com/ClickHouse/ClickHouse/pull/80810) ([Raúl Marín](https://github.com/Algunenano))。 -* 完善关于“Having zero bytes, but read range is not finished...”的异常消息,在 `system.filesystem_cache` 中新增 `finished_download_time` 列。 [#80849](https://github.com/ClickHouse/ClickHouse/pull/80849) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 在与索引一起使用且 indexes = 1 时,为 `EXPLAIN` 输出新增搜索算法部分。该部分会显示 “binary search” 或 “generic exclusion search” 之一。[#80881](https://github.com/ClickHouse/ClickHouse/pull/80881) ([Pablo Marcos](https://github.com/pamarcos))。 -* 在 2024 年初,由于新分析器默认未启用,`prefer_column_name_to_alias` 在 MySQL 处理器中被硬编码为 true。现在,可以去除该硬编码。[#80916](https://github.com/ClickHouse/ClickHouse/pull/80916)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* 现在,`system.iceberg_history` 会显示 glue 或 iceberg rest 等 catalog 数据库的历史记录。同时,为保持一致性,将 `system.iceberg_history` 中的 `table_name` 和 `database_name` 列重命名为 `table` 和 `database`。[#80975](https://github.com/ClickHouse/ClickHouse/pull/80975) ([alesapin](https://github.com/alesapin)). -* 为 `merge` 表函数启用只读模式,从而在使用该函数时无需授予 `CREATE TEMPORARY TABLE` 权限。 [#80981](https://github.com/ClickHouse/ClickHouse/pull/80981) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* 更好地观测内存缓存(在 `system.metrics` 中暴露缓存信息,以替代不完整的 `system.asynchronouse_metrics`)。在 `dashboard.html` 中新增内存缓存大小显示(以字节为单位)。`VectorSimilarityIndexCacheSize`/`IcebergMetadataFilesCacheSize` 已重命名为 `VectorSimilarityIndexCacheBytes`/`IcebergMetadataFilesCacheBytes`。[#81023](https://github.com/ClickHouse/ClickHouse/pull/81023)([Azat Khuzhin](https://github.com/azat))。 -* 在从 `system.rocksdb` 读取时,忽略引擎不支持 `RocksDB` 表的数据库。[#81083](https://github.com/ClickHouse/ClickHouse/pull/81083) ([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 -* 允许在 `clickhouse-local` 的配置文件中配置 `filesystem_caches` 和 `named_collections`。 [#81105](https://github.com/ClickHouse/ClickHouse/pull/81105) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 修复 `INSERT` 查询中 `PARTITION BY` 的高亮显示。在早期版本中,`PARTITION BY` 不会作为关键字高亮显示。[#81106](https://github.com/ClickHouse/ClickHouse/pull/81106)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* Web UI 中的两个小改进:- 正确处理没有输出的查询,例如 `CREATE`、`INSERT`(此前,这类查询会导致加载图标一直无限旋转);- 双击某个表时,自动滚动到顶部。[#81131](https://github.com/ClickHouse/ClickHouse/pull/81131)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* `MemoryResidentWithoutPageCache` 指标表示服务器进程使用的物理内存用量(不包括用户空间页缓存),单位为字节。在使用用户空间页缓存时,该指标可以更准确地反映实际内存使用情况。当用户空间页缓存被禁用时,该值等于 `MemoryResident`。[#81233](https://github.com/ClickHouse/ClickHouse/pull/81233)([Jayme Bird](https://github.com/jaymebrd))。 -* 将客户端、本地服务器、Keeper 客户端和 disks 应用中手动记录的异常标记为“已记录”,以避免在日志中重复记录。 [#81271](https://github.com/ClickHouse/ClickHouse/pull/81271) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* `use_skip_indexes_if_final` 和 `use_skip_indexes_if_final_exact_mode` 的默认值现在为 `True`。带有 `FINAL` 子句的查询现在会使用跳过索引(如适用)来初步筛选数据块(granule),并读取匹配主键范围所对应的所有额外数据块(granule)。如果用户需要沿用之前近似/不精确结果的行为,在经过仔细评估后可以将 `use_skip_indexes_if_final_exact_mode` 设置为 `FALSE`。[#81331](https://github.com/ClickHouse/ClickHouse/pull/81331)([Shankar Iyer](https://github.com/shankar-iyer))。 -* 当在 Web UI 中有多个查询时,将会运行光标所在的那个查询。作为对 [#80977](https://github.com/ClickHouse/ClickHouse/issues/80977) 的延续。[#81354](https://github.com/ClickHouse/ClickHouse/pull/81354)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 此 PR 解决了在转换函数单调性检查中 `is_strict` 实现相关的问题。目前,一些转换函数(例如 `toFloat64(UInt32)` 和 `toDate(UInt8)`)在本应返回 `is_strict` 为 true 时,却错误地返回为 false。 [#81359](https://github.com/ClickHouse/ClickHouse/pull/81359) ([zoomxi](https://github.com/zoomxi))。 -* 在检查 `KeyCondition` 是否匹配一个连续范围时,如果键被非严格函数链包裹,则可能需要将 `Constraint::POINT` 转换为 `Constraint::RANGE`。例如:`toDate(event_time) = '2025-06-03'` 意味着 `event_time` 的取值范围为:['2025-06-03 00:00:00', '2025-06-04 00:00:00')。此 PR 修复了这一行为。[#81400](https://github.com/ClickHouse/ClickHouse/pull/81400) ([zoomxi](https://github.com/zoomxi))。 -* 如果指定了 `--host` 或 `--port`,`clickhouse`/`ch` 别名将调用 `clickhouse-client`,而不是 `clickhouse-local`。[#79422](https://github.com/ClickHouse/ClickHouse/issues/79422) 的后续。关闭问题 [#65252](https://github.com/ClickHouse/ClickHouse/issues/65252)。[#81509](https://github.com/ClickHouse/ClickHouse/pull/81509)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 现在我们已经获取了 keeper 响应时间分布数据,就可以对指标用的直方图桶进行调优。[#81516](https://github.com/ClickHouse/ClickHouse/pull/81516) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 -* 添加 profile 事件 `PageCacheReadBytes`。 [#81742](https://github.com/ClickHouse/ClickHouse/pull/81742) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* 修复文件系统缓存中的逻辑错误:“Having zero bytes but range is not finished”。[#81868](https://github.com/ClickHouse/ClickHouse/pull/81868)([Kseniia Sumarokova](https://github.com/kssenii))。 - -#### 缺陷修复(官方稳定版中用户可见的异常行为) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* 修复参数化视图在使用 SELECT EXCEPT 查询时的问题。关闭 [#49447](https://github.com/ClickHouse/ClickHouse/issues/49447)。[#57380](https://github.com/ClickHouse/ClickHouse/pull/57380)([Nikolay Degterinsky](https://github.com/evillique))。 -* Analyzer:修复在 join 中列类型提升后列投影名称不正确的问题。关闭 [#63345](https://github.com/ClickHouse/ClickHouse/issues/63345)。[#63519](https://github.com/ClickHouse/ClickHouse/pull/63519) ([Dmitry Novik](https://github.com/novikd))。 -* 修复了在启用 analyzer_compatibility_join_using_top_level_identifier 且发生列名冲突时的逻辑错误。[#75676](https://github.com/ClickHouse/ClickHouse/pull/75676) ([Vladimir Cherkasov](https://github.com/vdimir))。 -* 在启用 `allow_push_predicate_ast_for_distributed_subqueries` 时,修复下推谓词中对 CTE 的使用方式。修复 [#75647](https://github.com/ClickHouse/ClickHouse/issues/75647)。修复 [#79672](https://github.com/ClickHouse/ClickHouse/issues/79672)。[#77316](https://github.com/ClickHouse/ClickHouse/pull/77316)([Dmitry Novik](https://github.com/novikd))。 -* 修复了一个问题:即使指定的副本不存在,`SYSTEM SYNC REPLICA LIGHTWEIGHT 'foo'` 也会报告成功。现在该命令会在尝试同步之前,先在 Keeper 中正确检查该副本是否存在。[#78405](https://github.com/ClickHouse/ClickHouse/pull/78405)([Jayme Bird](https://github.com/jaymebrd))。 -* 修复了一个极其特定情况下的崩溃问题:当在 `ON CLUSTER` 查询的 `CONSTRAINT` 部分中使用 `currentDatabase` 函数时会导致崩溃。此修复关闭了 [#78100](https://github.com/ClickHouse/ClickHouse/issues/78100)。[#79070](https://github.com/ClickHouse/ClickHouse/pull/79070)([pufit](https://github.com/pufit))。 -* 修复在服务器间查询中外部角色传递的问题。 [#79099](https://github.com/ClickHouse/ClickHouse/pull/79099) ([Andrey Zvonov](https://github.com/zvonand)). -* 请在 `SingleValueDataGeneric` 中改用 `IColumn` 而不是 `Field`。这修复了某些聚合函数(例如在 `Dynamic/Variant/JSON` 类型上的 `argMax`)返回值不正确的问题。[#79166](https://github.com/ClickHouse/ClickHouse/pull/79166)([Pavel Kruglov](https://github.com/Avogar))。 -* 修复了在 Azure Blob Storage 中应用 `use_native_copy` 和 `allow_azure_native_copy` 设置的问题,并改为仅在凭据匹配时才使用原生拷贝功能,解决了 [#78964](https://github.com/ClickHouse/ClickHouse/issues/78964)。[#79561](https://github.com/ClickHouse/ClickHouse/pull/79561)([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 -* 修复在检查某列是否有关联时,由其来源作用域未知而导致的逻辑错误。修复 [#78183](https://github.com/ClickHouse/ClickHouse/issues/78183)。修复 [#79451](https://github.com/ClickHouse/ClickHouse/issues/79451)。[#79727](https://github.com/ClickHouse/ClickHouse/pull/79727)([Dmitry Novik](https://github.com/novikd))。 -* 修复在包含 ColumnConst 和 Analyzer 的 grouping sets 中导致结果错误的问题。 [#79743](https://github.com/ClickHouse/ClickHouse/pull/79743) ([Andrey Zvonov](https://github.com/zvonand)). -* 修复在从分布式表读取且本地副本滞后时,本地分片结果被重复返回的问题。 [#79761](https://github.com/ClickHouse/ClickHouse/pull/79761) ([Eduard Karacharov](https://github.com/korowa)). -* 修复符号位为负的 NaN 的排序顺序。 [#79847](https://github.com/ClickHouse/ClickHouse/pull/79847) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* 现在 GROUP BY ALL 不再将 GROUPING 部分考虑在内。[#79915](https://github.com/ClickHouse/ClickHouse/pull/79915) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* 修复了 `TopK` / `TopKWeighted` 函数中不正确的状态合并问题,该问题会在容量尚未耗尽时导致误差显著增大。 [#79939](https://github.com/ClickHouse/ClickHouse/pull/79939) ([Joel Höner](https://github.com/athre0z)). -* 支持在 `azure_blob_storage` 对象存储中使用 `readonly` 设置。[#79954](https://github.com/ClickHouse/ClickHouse/pull/79954)([Julia Kartseva](https://github.com/jkartseva))。 -* 修复了在使用包含反斜杠转义字符的 `match(column, '^…')` 时导致的查询结果错误和内存不足崩溃问题。[#79969](https://github.com/ClickHouse/ClickHouse/pull/79969) ([filimonov](https://github.com/filimonov))。 -* 在数据湖中禁用 Hive 分区。部分解决 [https://github.com/issues/assigned?issue=ClickHouse%7CClickHouse%7CClickHouse%7C79937](https://github.com/issues/assigned?issue=ClickHouse%7CClickHouse%7C79937)。[#80005](https://github.com/ClickHouse/ClickHouse/pull/80005)([Daniil Ivanik](https://github.com/divanik))。 -* 修复了包含 lambda 表达式的 skip 索引无法生效的问题。当索引定义中的高阶函数与查询中的完全一致时,现在能够正确应用。 [#80025](https://github.com/ClickHouse/ClickHouse/pull/80025) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* 修正副本在根据复制日志执行 `ATTACH_PART` 命令附加分片时的元数据版本。 [#80038](https://github.com/ClickHouse/ClickHouse/pull/80038) ([Aleksei Filatov](https://github.com/aalexfvk)). -* 与其他函数不同,可执行用户自定义函数(eUDF)的名称不会被添加到 `system.query_log` 表的 `used_functions` 列中。此 PR 实现在请求中使用 eUDF 时将其名称添加到该列中。[#80073](https://github.com/ClickHouse/ClickHouse/pull/80073)([Kyamran](https://github.com/nibblerenush))。 -* 修复在 Arrow 格式中使用 LowCardinality(FixedString) 时的逻辑错误。 [#80156](https://github.com/ClickHouse/ClickHouse/pull/80156) ([Pavel Kruglov](https://github.com/Avogar))。 -* 修复从 Merge 引擎读取子列的问题。 [#80158](https://github.com/ClickHouse/ClickHouse/pull/80158) ([Pavel Kruglov](https://github.com/Avogar)). -* 修复了 `KeyCondition` 中数值类型比较的一个错误。[#80207](https://github.com/ClickHouse/ClickHouse/pull/80207)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* 修复在对带有投影的表使用惰性物化时出现的 AMBIGUOUS_COLUMN_NAME 错误。 [#80251](https://github.com/ClickHouse/ClickHouse/pull/80251) ([Igor Nikonov](https://github.com/devcrafter)). -* 修复在使用隐式投影时,对 `LIKE 'ab_c%'` 这类字符串前缀过滤条件的计数优化不正确的问题。此修复解决了 [#80250](https://github.com/ClickHouse/ClickHouse/issues/80250)。[#80261](https://github.com/ClickHouse/ClickHouse/pull/80261)([Amos Bird](https://github.com/amosbird))。 -* 修复 MongoDB 文档中嵌套的数值字段被错误地序列化为字符串的问题。移除对来自 MongoDB 的文档的最大深度限制。[#80289](https://github.com/ClickHouse/ClickHouse/pull/80289) ([Kirill Nikiforov](https://github.com/allmazz)). -* 在 Replicated 数据库中对 RMT 的元数据检查放宽限制。关闭 [#80296](https://github.com/ClickHouse/ClickHouse/issues/80296)。[#80298](https://github.com/ClickHouse/ClickHouse/pull/80298)([Nikolay Degterinsky](https://github.com/evillique))。 -* 修复用于 PostgreSQL 存储的 DateTime 和 DateTime64 的文本表示形式。 [#80301](https://github.com/ClickHouse/ClickHouse/pull/80301) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* 允许在 `StripeLog` 表中使用带时区的 `DateTime`。从而关闭了 [#44120](https://github.com/ClickHouse/ClickHouse/issues/44120)。[#80304](https://github.com/ClickHouse/ClickHouse/pull/80304)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 当查询计划中的某个步骤会改变行数时,如果谓词中包含非确定性函数,则对该谓词禁用过滤下推(filter push-down)。修复了 [#40273](https://github.com/ClickHouse/ClickHouse/issues/40273)。[#80329](https://github.com/ClickHouse/ClickHouse/pull/80329)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* 修复在包含子列的投影(projection)中可能出现的逻辑错误和崩溃。 [#80333](https://github.com/ClickHouse/ClickHouse/pull/80333) ([Pavel Kruglov](https://github.com/Avogar)). -* 修复在 `ON` 表达式不是简单等值条件时,由逻辑 JOIN sep 的 filter-push-down 优化导致的 `NOT_FOUND_COLUMN_IN_BLOCK` 错误。同时修复 [#79647](https://github.com/ClickHouse/ClickHouse/issues/79647) 和 [#77848](https://github.com/ClickHouse/ClickHouse/issues/77848)。[#80360](https://github.com/ClickHouse/ClickHouse/pull/80360)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* 修复在分区表中读取逆序键时返回错误结果的问题。该修复解决了 [#79987](https://github.com/ClickHouse/ClickHouse/issues/79987)。[#80448](https://github.com/ClickHouse/ClickHouse/pull/80448)([Amos Bird](https://github.com/amosbird))。 -* 修复了在具有可为空键且启用 optimize_read_in_order 的表中出现的排序错误问题。[#80515](https://github.com/ClickHouse/ClickHouse/pull/80515) ([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 -* 修复了在使用 SYSTEM STOP REPLICATED VIEW 暂停视图后,删除可刷新物化视图(DROP)操作会卡住的问题。[#80543](https://github.com/ClickHouse/ClickHouse/pull/80543)([Michael Kolupaev](https://github.com/al13n321))。 -* 修复在分布式查询中使用常量元组时出现的 'Cannot find column' 错误。 [#80596](https://github.com/ClickHouse/ClickHouse/pull/80596) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* 修复在启用 `join_use_nulls` 时 Distributed 表中的 `shardNum` 函数。[#80612](https://github.com/ClickHouse/ClickHouse/pull/80612) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 -* 修复在 Merge 引擎中读取仅存在于部分表中的列时返回结果不正确的问题。[#80643](https://github.com/ClickHouse/ClickHouse/pull/80643) ([Pavel Kruglov](https://github.com/Avogar))。 -* 修复 SSH 协议可能因 replxx 卡死而出现的问题。 [#80688](https://github.com/ClickHouse/ClickHouse/pull/80688) ([Azat Khuzhin](https://github.com/azat)). -* iceberg_history 表中的时间戳现在应该已经是正确的。[#80711](https://github.com/ClickHouse/ClickHouse/pull/80711)([Melvyn Peignon](https://github.com/melvynator))。 -* 修复在字典注册失败时可能发生的崩溃(当 `CREATE DICTIONARY` 因 `CANNOT_SCHEDULE_TASK` 失败时,有可能在字典注册表中留下悬空指针,后续可能导致崩溃)。 [#80714](https://github.com/ClickHouse/ClickHouse/pull/80714) ([Azat Khuzhin](https://github.com/azat)). -* 修复对象存储表函数中对仅包含单个元素的 enum 通配模式的处理。[#80716](https://github.com/ClickHouse/ClickHouse/pull/80716)([Konstantin Bogdanov](https://github.com/thevar1able))。 -* 修复了 `Tuple(Dynamic)` 与 `String` 之间比较函数的错误结果类型问题,该问题会导致逻辑错误。[#80728](https://github.com/ClickHouse/ClickHouse/pull/80728) ([Pavel Kruglov](https://github.com/Avogar)). -* 为 Unity Catalog 补充对数据类型 `timestamp_ntz` 的支持。修复 [#79535](https://github.com/ClickHouse/ClickHouse/issues/79535) 和 [#79875](https://github.com/ClickHouse/ClickHouse/issues/79875)。[#80740](https://github.com/ClickHouse/ClickHouse/pull/80740)([alesapin](https://github.com/alesapin))。 -* 修复在包含 `IN CTE` 的分布式查询中出现的 `THERE_IS_NO_COLUMN` 错误。修复了 [#75032](https://github.com/ClickHouse/ClickHouse/issues/75032)。[#80757](https://github.com/ClickHouse/ClickHouse/pull/80757)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* 修复外部 ORDER BY 产生过多文件(导致内存占用过高)的问题。 [#80777](https://github.com/ClickHouse/ClickHouse/pull/80777) ([Azat Khuzhin](https://github.com/azat)). -* 此 PR 可能会关闭 [#80742](https://github.com/ClickHouse/ClickHouse/issues/80742)。 [#80783](https://github.com/ClickHouse/ClickHouse/pull/80783) ([zoomxi](https://github.com/zoomxi))。 -* 修复 Kafka 中因 get_member_id() 从 NULL 创建 std::string 导致的崩溃问题(很可能只会在连接 broker 失败时出现)。 [#80793](https://github.com/ClickHouse/ClickHouse/pull/80793) ([Azat Khuzhin](https://github.com/azat)). -* 在关闭 Kafka 引擎之前,正确地等待所有消费者退出(关闭后仍然存在的活动消费者可能会触发各种调试断言失败,并且在表被删除/分离后仍可能在后台继续从 broker 读取数据)。 [#80795](https://github.com/ClickHouse/ClickHouse/pull/80795) ([Azat Khuzhin](https://github.com/azat)). -* 修复由 `predicate-push-down` 优化导致的 `NOT_FOUND_COLUMN_IN_BLOCK` 错误,解决了 [#80443](https://github.com/ClickHouse/ClickHouse/issues/80443)。[#80834](https://github.com/ClickHouse/ClickHouse/pull/80834)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* 修复在带 USING 的 JOIN 中解析表函数中的星号 (*) 通配符时的逻辑错误。 [#80894](https://github.com/ClickHouse/ClickHouse/pull/80894) ([Vladimir Cherkasov](https://github.com/vdimir)). -* 修复 Iceberg 元数据文件缓存的内存计量问题。 [#80904](https://github.com/ClickHouse/ClickHouse/pull/80904) ([Azat Khuzhin](https://github.com/azat)). -* 修复使用可为空分区键时的错误分区问题。 [#80913](https://github.com/ClickHouse/ClickHouse/pull/80913) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* 修复在启用谓词下推(`allow_push_predicate_ast_for_distributed_subqueries=1`)的分布式查询中,当源表在发起查询的节点上不存在时出现的 `Table does not exist` 错误。修复了 [#77281](https://github.com/ClickHouse/ClickHouse/issues/77281)。[#80915](https://github.com/ClickHouse/ClickHouse/pull/80915)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* 修复具名窗口中嵌套函数的逻辑错误。[#80926](https://github.com/ClickHouse/ClickHouse/pull/80926)([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 -* 修复 nullable 列和浮点列的 extremes 统计。[#80970](https://github.com/ClickHouse/ClickHouse/pull/80970) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* 修复在查询 `system.tables` 时可能发生的崩溃问题(在内存压力较大时很可能出现)。 [#80976](https://github.com/ClickHouse/ClickHouse/pull/80976) ([Azat Khuzhin](https://github.com/azat))。 -* 修复了对压缩格式由文件扩展名推断的文件执行带截断的原子重命名时的问题。 [#80979](https://github.com/ClickHouse/ClickHouse/pull/80979) ([Pablo Marcos](https://github.com/pamarcos)). -* 修复 ErrorCodes::getName。 [#81032](https://github.com/ClickHouse/ClickHouse/pull/81032) ([RinChanNOW](https://github.com/RinChanNOWWW)). -* 修复了当用户没有对所有表的访问权限时,无法在 Unity Catalog 中列出表的问题。现在所有表都会被正确列出,尝试读取受限表时将抛出异常。 [#81044](https://github.com/ClickHouse/ClickHouse/pull/81044) ([alesapin](https://github.com/alesapin)). -* 现在,ClickHouse 在执行 `SHOW TABLES` 查询时将忽略来自数据湖目录的错误和意外响应。修复 [#79725](https://github.com/ClickHouse/ClickHouse/issues/79725)。[#81046](https://github.com/ClickHouse/ClickHouse/pull/81046)([alesapin](https://github.com/alesapin))。 -* 修复在 `JSONExtract` 和 JSON 类型解析中,将整数解析为 `DateTime64` 时出现的问题。 [#81050](https://github.com/ClickHouse/ClickHouse/pull/81050) ([Pavel Kruglov](https://github.com/Avogar)). -* 将 `date_time_input_format` 设置反映到 schema 推断缓存中。[#81052](https://github.com/ClickHouse/ClickHouse/pull/81052) ([Pavel Kruglov](https://github.com/Avogar)). -* 修复在执行 INSERT 时,如果表在查询开始之后但在发送列数据之前被 DROP 而导致的崩溃。 [#81053](https://github.com/ClickHouse/ClickHouse/pull/81053) ([Azat Khuzhin](https://github.com/azat)). -* 修复 `quantileDeterministic` 中未初始化值的使用问题。 [#81062](https://github.com/ClickHouse/ClickHouse/pull/81062) ([Azat Khuzhin](https://github.com/azat)). -* 修复 metadatastoragefromdisk 磁盘事务中的硬链接计数管理问题,并添加测试。[#81066](https://github.com/ClickHouse/ClickHouse/pull/81066) ([Sema Checherinda](https://github.com/CheSema)). -* 与其他函数不同,用户自定义函数 (UDF) 的名称不会被写入 `system.query_log` 表中。该 PR 实现了在查询中使用 UDF 时,将该 UDF 的名称添加到 `used_executable_user_defined_functions` 或 `used_sql_user_defined_functions` 这两列之一中。[#81101](https://github.com/ClickHouse/ClickHouse/pull/81101) ([Kyamran](https://github.com/nibblerenush))。 -* 修复了通过 HTTP 协议以文本格式(`JSON`、`Values` 等)插入数据且省略 `Enum` 字段时,出现 `Too large size ... passed to allocator` 错误或可能崩溃的问题。[#81145](https://github.com/ClickHouse/ClickHouse/pull/81145)([Anton Popov](https://github.com/CurtizJ))。 -* 修复在将包含稀疏列的 INSERT 数据块写入非 MT 物化视图时触发的 LOGICAL_ERROR。 [#81161](https://github.com/ClickHouse/ClickHouse/pull/81161) ([Azat Khuzhin](https://github.com/azat)). -* 修复在跨副本复制场景下使用 `distributed_product_mode_local=local` 时出现的 `Unknown table expression identifier` 错误。[#81162](https://github.com/ClickHouse/ClickHouse/pull/81162) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* 修复了在过滤后错误缓存 Parquet 文件行数的问题。 [#81184](https://github.com/ClickHouse/ClickHouse/pull/81184) ([Michael Kolupaev](https://github.com/al13n321)). -* 修复在使用相对缓存路径时 fs cache 的 max_size_to_total_space 设置问题。[#81237](https://github.com/ClickHouse/ClickHouse/pull/81237) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 修复了 clickhouse-local 在以 Parquet 格式输出常量元组或 Map 时崩溃的问题。[#81249](https://github.com/ClickHouse/ClickHouse/pull/81249) ([Michael Kolupaev](https://github.com/al13n321))。 -* 校验通过网络接收的数组偏移量。 [#81269](https://github.com/ClickHouse/ClickHouse/pull/81269) ([Azat Khuzhin](https://github.com/azat)). -* 修复在查询连接空表且使用窗口函数时的一些边界情况。该 bug 会导致并行流数量爆炸式增长,进而引发 OOM。 [#81299](https://github.com/ClickHouse/ClickHouse/pull/81299) ([Alexander Gololobov](https://github.com/davenger)). -* 针对数据湖集群函数(`deltaLakeCluster`、`icebergCluster` 等)的修复:(1)在使用旧版 analyzer 搭配 `Cluster` 函数时,修复 `DataLakeConfiguration` 中潜在的段错误(segfault);(2)移除重复的数据湖元数据更新(多余的对象存储请求);(3)修复在未显式指定格式时对对象存储进行的冗余列出操作(此前已对非 Cluster 数据湖引擎完成了该修复)。[#81300](https://github.com/ClickHouse/ClickHouse/pull/81300) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* 使 `force_restore_data` 标志可用于恢复丢失的 Keeper 元数据。[#81324](https://github.com/ClickHouse/ClickHouse/pull/81324) ([Raúl Marín](https://github.com/Algunenano)). -* 修复 delta-kernel 中的 region 错误,解决了 [#79914](https://github.com/ClickHouse/ClickHouse/issues/79914)。[#81353](https://github.com/ClickHouse/ClickHouse/pull/81353)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 禁用了针对 divideOrNull 的不正确 JIT。[#81370](https://github.com/ClickHouse/ClickHouse/pull/81370) ([Raúl Marín](https://github.com/Algunenano)). -* 修复当 MergeTree 表的分区列名过长时出现的插入错误。[#81390](https://github.com/ClickHouse/ClickHouse/pull/81390)([hy123q](https://github.com/haoyangqian))。 -* 已在 [#81957](https://github.com/ClickHouse/ClickHouse/issues/81957) 中回溯修复:修复了在合并期间发生异常时 `Aggregator` 可能出现的崩溃问题。[#81450](https://github.com/ClickHouse/ClickHouse/pull/81450)([Nikita Taranov](https://github.com/nickitat))。 -* 不要在内存中存储多份 manifest 文件的内容。 [#81470](https://github.com/ClickHouse/ClickHouse/pull/81470)([Daniil Ivanik](https://github.com/divanik))。 -* 修复在关闭后台线程池(`background_.*pool_size`)时可能发生的崩溃。[#81473](https://github.com/ClickHouse/ClickHouse/pull/81473) ([Azat Khuzhin](https://github.com/azat))。 -* 修复在向使用 `URL` 引擎的表写入时,`Npy` 格式导致的越界读取问题。关闭了 [#81356](https://github.com/ClickHouse/ClickHouse/issues/81356)。[#81502](https://github.com/ClickHouse/ClickHouse/pull/81502)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 在某些情况下,Web UI 可能会显示为 `NaN%`(典型的 JavaScript 问题)。 [#81507](https://github.com/ClickHouse/ClickHouse/pull/81507) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 修复在 `database_replicated_enforce_synchronous_settings=1` 配置下的 `DatabaseReplicated` 问题。[#81564](https://github.com/ClickHouse/ClickHouse/pull/81564) ([Azat Khuzhin](https://github.com/azat))。 -* 修复 LowCardinality(Nullable(...)) 类型的排序顺序。 [#81583](https://github.com/ClickHouse/ClickHouse/pull/81583) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* 如果尚未从套接字中完全读取请求,服务器不应保留该 HTTP 连接。 [#81595](https://github.com/ClickHouse/ClickHouse/pull/81595) ([Sema Checherinda](https://github.com/CheSema)). -* 使标量关联子查询返回可空的投影表达式结果。修复关联子查询产生空结果集时的行为。[#81632](https://github.com/ClickHouse/ClickHouse/pull/81632) ([Dmitry Novik](https://github.com/novikd))。 -* 修复在对 `ReplicatedMergeTree` 执行 `ATTACH` 时出现的 `Unexpected relative path for a deduplicated part` 错误。[#81647](https://github.com/ClickHouse/ClickHouse/pull/81647) ([Azat Khuzhin](https://github.com/azat))。 -* 查询设置 `use_iceberg_partition_pruning` 对 iceberg 存储不会生效,因为它使用的是全局上下文而不是查询上下文。由于其默认值为 true,因此影响不大。此 PR 对其进行了修复。 [#81673](https://github.com/ClickHouse/ClickHouse/pull/81673) ([Han Fei](https://github.com/hanfei1991)). -* 已在 [#82128](https://github.com/ClickHouse/ClickHouse/issues/82128) 中回溯修复:修复在 TTL 表达式中使用字典进行合并时出现的 “Context has expired” 错误。[#81690](https://github.com/ClickHouse/ClickHouse/pull/81690) ([Azat Khuzhin](https://github.com/azat)). -* 为 MergeTree 设置 `merge_max_block_size` 添加校验,以确保其不为 0。 [#81693](https://github.com/ClickHouse/ClickHouse/pull/81693) ([Bharat Nallan](https://github.com/bharatnc))。 -* 修复 `clickhouse-local` 中导致 `DROP VIEW ` 查询阻塞的问题。[#81705](https://github.com/ClickHouse/ClickHouse/pull/81705) ([Bharat Nallan](https://github.com/bharatnc)). -* 在某些情况下修复 StorageRedis 的 JOIN。 [#81736](https://github.com/ClickHouse/ClickHouse/pull/81736) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* 修复在启用旧版分析器且使用空的 `USING ()` 时导致 `ConcurrentHashJoin` 崩溃的问题。 [#81754](https://github.com/ClickHouse/ClickHouse/pull/81754) ([Nikita Taranov](https://github.com/nickitat)). -* Keeper 修复:当日志中存在无效条目时,阻止提交新的日志条目。之前,如果 leader 错误地应用了一些日志,即使 follower 会检测到摘要不匹配并中止,leader 仍会继续提交新的日志条目。 [#81780](https://github.com/ClickHouse/ClickHouse/pull/81780) ([Antonio Andelic](https://github.com/antonio2368)). -* 修复在处理标量关联子查询时未读取所需列的问题。修复了 [#81716](https://github.com/ClickHouse/ClickHouse/issues/81716)。[#81805](https://github.com/ClickHouse/ClickHouse/pull/81805)([Dmitry Novik](https://github.com/novikd))。 -* 有人在我们的代码里到处乱用 Kusto。我已经清理干净了。关闭了 [#81643](https://github.com/ClickHouse/ClickHouse/issues/81643)。[#81885](https://github.com/ClickHouse/ClickHouse/pull/81885)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 在此前的版本中,服务器在处理对 `/js` 的请求时会返回过多的内容。该更改修复了 [#61890](https://github.com/ClickHouse/ClickHouse/issues/61890)。[#81895](https://github.com/ClickHouse/ClickHouse/pull/81895)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 之前,在 `MongoDB` 表引擎定义中可以在 `host:port` 参数里包含路径组件,但会被悄然忽略。MongoDB 集成现在会拒绝加载此类表。通过此修复,*如果 `MongoDB` 引擎有五个参数,我们允许加载此类表,并忽略路径组件*,而是使用参数中的数据库名称。*注意:* 此修复不适用于新创建的表、使用 `mongo` 表函数的查询,以及字典源和命名集合。[#81942](https://github.com/ClickHouse/ClickHouse/pull/81942) ([Vladimir Cherkasov](https://github.com/vdimir)). -* 修复在合并过程中抛出异常时 `Aggregator` 可能发生崩溃的问题。 [#82022](https://github.com/ClickHouse/ClickHouse/pull/82022) ([Nikita Taranov](https://github.com/nickitat)). -* 修复 `arraySimilarity` 中的复制粘贴错误,禁止将 `UInt32` 和 `Int32` 用作权重。更新测试和文档。[#82103](https://github.com/ClickHouse/ClickHouse/pull/82103) ([Mikhail f. Shiryaev](https://github.com/Felixoid))。 -* 修复建议线程与主客户端线程之间潜在的数据竞争问题。[#82233](https://github.com/ClickHouse/ClickHouse/pull/82233) ([Azat Khuzhin](https://github.com/azat))。 - -#### 构建/测试/打包优化 {#buildtestingpackaging-improvement} - -* 使用 `postgres` 16.9。[#81437](https://github.com/ClickHouse/ClickHouse/pull/81437) ([Konstantin Bogdanov](https://github.com/thevar1able))。 -* 使用 `openssl` 3.2.4。 [#81438](https://github.com/ClickHouse/ClickHouse/pull/81438) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* 使用 2025-01-27 版 `abseil-cpp`。[#81440](https://github.com/ClickHouse/ClickHouse/pull/81440) ([Konstantin Bogdanov](https://github.com/thevar1able))。 -* 使用 `mongo-c-driver` 1.30.4 版本。[#81449](https://github.com/ClickHouse/ClickHouse/pull/81449) ([Konstantin Bogdanov](https://github.com/thevar1able))。 -* 使用 `krb5` 1.21.3-final 版本。[#81453](https://github.com/ClickHouse/ClickHouse/pull/81453) ([Konstantin Bogdanov](https://github.com/thevar1able))。 -* 使用 `orc` 2.1.2。[#81455](https://github.com/ClickHouse/ClickHouse/pull/81455) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* 使用 `grpc` 1.73.0 版本。 [#81629](https://github.com/ClickHouse/ClickHouse/pull/81629) ([Konstantin Bogdanov](https://github.com/thevar1able))。 -* 使用 `delta-kernel-rs` v0.12.1。[#81707](https://github.com/ClickHouse/ClickHouse/pull/81707) ([Konstantin Bogdanov](https://github.com/thevar1able))。 -* 将 `c-ares` 更新到 `v1.34.5`。[#81159](https://github.com/ClickHouse/ClickHouse/pull/81159) ([Konstantin Bogdanov](https://github.com/thevar1able))。 -* 将 `curl` 升级到 8.14,以修复 CVE-2025-5025 和 CVE-2025-4947。[#81171](https://github.com/ClickHouse/ClickHouse/pull/81171) ([larryluogit](https://github.com/larryluogit))。 -* 将 `libarchive` 升级到 3.7.9,以修复以下漏洞:CVE-2024-20696 CVE-2025-25724 CVE-2024-48958 CVE-2024-57970 CVE-2025-1632 CVE-2024-48957 CVE-2024-48615。[#81174](https://github.com/ClickHouse/ClickHouse/pull/81174)([larryluogit](https://github.com/larryluogit))。 -* 将 `libxml2` 升级至 2.14.3。[#81187](https://github.com/ClickHouse/ClickHouse/pull/81187)([larryluogit](https://github.com/larryluogit))。 -* 避免将 vendor 目录中的 Rust 源码复制到 `CARGO_HOME` 中。[#79560](https://github.com/ClickHouse/ClickHouse/pull/79560) ([Konstantin Bogdanov](https://github.com/thevar1able))。 -* 通过用我们自己的端点替换 Sentry 库,移除了对该库的依赖。[#80236](https://github.com/ClickHouse/ClickHouse/pull/80236) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 在 CI 镜像中更新 Python 依赖,以处理 Dependabot 告警。[#80658](https://github.com/ClickHouse/ClickHouse/pull/80658)([Raúl Marín](https://github.com/Algunenano))。 -* 在启用 Keeper 故障注入时,为提高测试的鲁棒性,在启动阶段重试从 Keeper 读取复制 DDL 停止标记。 [#80964](https://github.com/ClickHouse/ClickHouse/pull/80964) ([Alexander Gololobov](https://github.com/davenger)). -* 将 Ubuntu 存档 URL 改为使用 https。 [#81016](https://github.com/ClickHouse/ClickHouse/pull/81016) ([Raúl Marín](https://github.com/Algunenano)). -* 在测试镜像中更新 Python 依赖。[#81042](https://github.com/ClickHouse/ClickHouse/pull/81042) ([dependabot[bot]](https://github.com/apps/dependabot)). -* 为 Nix 构建引入 `flake.nix`。[#81463](https://github.com/ClickHouse/ClickHouse/pull/81463) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* 修复 `delta-kernel-rs` 在构建期间需要访问网络的问题。已关闭 [#80609](https://github.com/ClickHouse/ClickHouse/issues/80609)。[#81602](https://github.com/ClickHouse/ClickHouse/pull/81602)([Konstantin Bogdanov](https://github.com/thevar1able))。请阅读文章 [A Year of Rust in ClickHouse](https://clickhouse.com/blog/rust)。 - -### ClickHouse 25.5 版本发布于 2025-05-22 {#255} - -#### 向后不兼容的变更 {#backward-incompatible-change} - -* 函数 `geoToH3` 现在按 (lat, lon, res) 的顺序接收输入(这与其他几何函数的通用约定一致)。如果用户希望保留之前的参数顺序 (lon, lat, res),可以将设置 `geotoh3_argument_order = 'lon_lat'`。[#78852](https://github.com/ClickHouse/ClickHouse/pull/78852)([Pratima Patel](https://github.com/pratimapatel2008))。 -* 新增文件系统缓存设置 `allow_dynamic_cache_resize`,默认值为 `false`,用于控制是否允许动态调整文件系统缓存大小。原因:在某些环境(如 ClickHouse Cloud)中,所有扩缩容事件都通过重启进程来完成,我们希望显式禁用该特性,以便对行为有更多控制,同时作为一项安全防护措施。此 PR 被标记为向后不兼容,因为在旧版本中,动态缓存调整在默认情况下无需特殊设置即可启用。[#79148](https://github.com/ClickHouse/ClickHouse/pull/79148)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 移除了对旧版索引类型 `annoy` 和 `usearch` 的支持。这两者已经长期只是占位实现,即任何尝试使用这些旧索引的操作都会返回错误。如果你仍然有 `annoy` 和 `usearch` 索引,请将它们删除。[#79802](https://github.com/ClickHouse/ClickHouse/pull/79802)([Robert Schulze](https://github.com/rschu1ze))。 -* 移除服务器设置 `format_alter_commands_with_parentheses`。该设置在 24.2 版本中引入且默认禁用,并在 25.2 中改为默认启用。由于不存在不支持新格式的 LTS 版本,因此我们可以移除此设置。[#79970](https://github.com/ClickHouse/ClickHouse/pull/79970)([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 -* 默认启用 `DeltaLake` 存储的 `delta-kernel-rs` 实现。[#79541](https://github.com/ClickHouse/ClickHouse/pull/79541)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 如果从 `URL` 读取时涉及多次重定向,设置 `enable_url_encoding` 会在整个重定向链中被正确应用。[#79563](https://github.com/ClickHouse/ClickHouse/pull/79563)([Shankar Iyer](https://github.com/shankar-iyer))。设置 `enble_url_encoding` 的默认值现在为 `false`。[#80088](https://github.com/ClickHouse/ClickHouse/pull/80088)([Shankar Iyer](https://github.com/shankar-iyer))。 - -#### 新功能 {#new-feature} - -* 在 WHERE 子句中支持标量关联子查询,解决了 [#6697](https://github.com/ClickHouse/ClickHouse/issues/6697)。[#79600](https://github.com/ClickHouse/ClickHouse/pull/79600)([Dmitry Novik](https://github.com/novikd))。在简单场景下,在 SELECT 列表中支持关联子查询。[#79925](https://github.com/ClickHouse/ClickHouse/pull/79925)([Dmitry Novik](https://github.com/novikd))。[#76078](https://github.com/ClickHouse/ClickHouse/pull/76078)([Dmitry Novik](https://github.com/novikd))。现在已经覆盖了 100% 的 TPC-H 测试套件。 -* 使用向量相似度索引的向量搜索现已进入 beta 阶段(此前为实验特性)。 [#80164](https://github.com/ClickHouse/ClickHouse/pull/80164) ([Robert Schulze](https://github.com/rschu1ze)). -* 在 `Parquet` 格式中支持地理类型(geo types)。修复了 [#75317](https://github.com/ClickHouse/ClickHouse/issues/75317) 问题。[#79777](https://github.com/ClickHouse/ClickHouse/pull/79777)([scanhex12](https://github.com/scanhex12))。 -* 新增函数 `sparseGrams`、`sparseGramsHashes`、`sparseGramsHashesUTF8`、`sparseGramsUTF8`,用于计算“稀疏 n-gram(sparse-ngrams)”——一种用于索引和搜索的鲁棒子串提取算法。[#79517](https://github.com/ClickHouse/ClickHouse/pull/79517)([scanhex12](https://github.com/scanhex12))。 -* `clickhouse-local`(及其简写别名 `ch`)现在在存在需要处理的输入数据时,会隐式使用 `FROM table`。这解决了 [#65023](https://github.com/ClickHouse/ClickHouse/issues/65023)。同时,在处理常规文件且未指定 `--input-format` 时,已在 `clickhouse-local` 中启用格式推断。[#79085](https://github.com/ClickHouse/ClickHouse/pull/79085)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 添加 `stringBytesUniq` 和 `stringBytesEntropy` 函数,用于搜索可能是随机或加密的数据。[#79350](https://github.com/ClickHouse/ClickHouse/pull/79350) ([Sachin Kumar Singh](https://github.com/sachinkumarsingh092))。 -* 新增了用于 Base32 编码和解码的函数。[#79809](https://github.com/ClickHouse/ClickHouse/pull/79809) ([Joanna Hulboj](https://github.com/jh0x))。 -* 添加 `getServerSetting` 和 `getMergeTreeSetting` 函数,关闭 #78318。[#78439](https://github.com/ClickHouse/ClickHouse/pull/78439) ([NamNguyenHoai](https://github.com/NamHoaiNguyen))。 -* 新增 `iceberg_enable_version_hint` 设置项,用于利用 `version-hint.text` 文件。[#78594](https://github.com/ClickHouse/ClickHouse/pull/78594)([Arnaud Briche](https://github.com/arnaudbriche))。 -* 支持按 `LIKE` 关键字进行过滤,截断数据库中的特定表。 [#78597](https://github.com/ClickHouse/ClickHouse/pull/78597) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* 在 `MergeTree` 系列表中支持 `_part_starting_offset` 虚拟列。该列表示所有之前 part 的行数累积值,并在查询时基于当前 part 列表进行计算。该累积值在整个查询执行过程中都会被保留,即使在 part 剪枝之后仍然有效。相关内部逻辑已重构以支持此行为。 [#79417](https://github.com/ClickHouse/ClickHouse/pull/79417) ([Amos Bird](https://github.com/amosbird))。 -* 添加函数 `divideOrNull`、`moduloOrNull`、`intDivOrNull`、`positiveModuloOrNull`,当右侧参数为零时返回 NULL。[#78276](https://github.com/ClickHouse/ClickHouse/pull/78276)([kevinyhzou](https://github.com/KevinyhZou))。 -* ClickHouse 向量搜索现在同时支持预过滤和后过滤,并提供相关设置以实现更细粒度的控制。(issue [#78161](https://github.com/ClickHouse/ClickHouse/issues/78161))。[#79854](https://github.com/ClickHouse/ClickHouse/pull/79854)([Shankar Iyer](https://github.com/shankar-iyer))。 -* 添加 [`icebergHash`](https://iceberg.apache.org/spec/#appendix-b-32-bit-hash-requirements) 和 [`icebergBucket`](https://iceberg.apache.org/spec/#bucket-transform-details) 函数。支持对使用 [`bucket transfom`](https://iceberg.apache.org/spec/#partitioning) 分区的 `Iceberg` 表进行数据文件裁剪。[#79262](https://github.com/ClickHouse/ClickHouse/pull/79262) ([Daniil Ivanik](https://github.com/divanik))。 - -#### 实验特性 {#experimental-feature} - -* 新增 `Time`/`Time64` 数据类型:`Time`(HHH:MM:SS)和 `Time64`(HHH:MM:SS.`<fractional>`),以及一些基础的类型转换函数和用于与其他数据类型交互的函数。同时,将现有函数 `toTime` 的名称更改为 `toTimeWithFixedDate`,因为类型转换函数需要保留 `toTime` 这个函数名。[#75735](https://github.com/ClickHouse/ClickHouse/pull/75735)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* 面向 Iceberg 数据湖的 Hive metastore 目录。[#77677](https://github.com/ClickHouse/ClickHouse/pull/77677)([scanhex12](https://github.com/scanhex12))。 -* 类型为 `full_text` 的索引重命名为 `gin`。这与 PostgreSQL 和其他数据库中更常见的术语保持一致。现有的 `full_text` 类型索引仍然可以加载,但在尝试在搜索中使用它们时会抛出异常(并建议改用 `gin` 索引)。[#79024](https://github.com/ClickHouse/ClickHouse/pull/79024)([Robert Schulze](https://github.com/rschu1ze))。 - -#### 性能优化 {#performance-improvement} - -* 将 Compact 部分格式更改为为每个子流保存标记,从而可以单独读取子列。旧的 Compact 格式在读取时仍然受支持,并且可以通过 MergeTree 设置 `write_marks_for_substreams_in_compact_parts` 在写入时启用。由于它更改了 Compact 部分的存储方式,为了更安全地进行升级,默认情况下是禁用的。在接下来的某个版本中,它将默认启用。[#77940](https://github.com/ClickHouse/ClickHouse/pull/77940)([Pavel Kruglov](https://github.com/Avogar))。 -* 允许将包含子列的条件下推到 PREWHERE [#79489](https://github.com/ClickHouse/ClickHouse/pull/79489) ([Pavel Kruglov](https://github.com/Avogar))。 -* 通过在多个 granule 上并行计算其表达式,加速二级索引。 [#64109](https://github.com/ClickHouse/ClickHouse/pull/64109) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 默认启用 `compile_expressions`(用于普通表达式片段的 JIT 编译器)。由此关闭了 [#51264](https://github.com/ClickHouse/ClickHouse/issues/51264)、[#56386](https://github.com/ClickHouse/ClickHouse/issues/56386) 和 [#66486](https://github.com/ClickHouse/ClickHouse/issues/66486)。[#79907](https://github.com/ClickHouse/ClickHouse/pull/79907)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 新增设置:`use_skip_indexes_in_final_exact_mode`。如果对 `ReplacingMergeTree` 表的查询使用 FINAL 子句,只根据 skip index 选择要读取的表范围,可能会产生不正确的结果。该设置可以通过扫描与 skip index 返回的主键范围有重叠的较新数据部分,来确保返回正确结果。设置为 0 表示禁用,1 表示启用。[#78350](https://github.com/ClickHouse/ClickHouse/pull/78350)([Shankar Iyer](https://github.com/shankar-iyer))。 -* 对象存储集群表函数(例如 `s3Cluster`)现在会基于一致哈希将待读取的文件分配给各副本,从而提升缓存局部性。[#77326](https://github.com/ClickHouse/ClickHouse/pull/77326)([Andrej Hoos](https://github.com/adikus))。 -* 通过允许并行执行 `INSERT` 来提升 `S3Queue`/`AzureQueue` 的性能(可通过队列设置 `parallel_inserts=true` 启用)。此前 S3Queue/AzureQueue 只能对处理流水线的第一部分(下载、解析)并行化,而 `INSERT` 是单线程的,并且 `INSERT` 几乎总是性能瓶颈。现在性能几乎可以随 `processing_threads_num` 线性扩展。[#77671](https://github.com/ClickHouse/ClickHouse/pull/77671)([Azat Khuzhin](https://github.com/azat))。在 S3Queue/AzureQueue 中对 `max_processed_files_before_commit` 的处理更加公平。[#79363](https://github.com/ClickHouse/ClickHouse/pull/79363)([Azat Khuzhin](https://github.com/azat))。 -* 引入了一个阈值(通过设置 `parallel_hash_join_threshold` 进行控制),当右表大小低于该阈值时会回退为使用 `hash` 算法。[#76185](https://github.com/ClickHouse/ClickHouse/pull/76185) ([Nikita Taranov](https://github.com/nickitat))。 -* 现在我们在启用并行副本读取时,通过副本数量来确定读取任务的规模。当待读取的数据量不大时,这可以在副本之间实现更合理的工作负载分配。[#78695](https://github.com/ClickHouse/ClickHouse/pull/78695) ([Nikita Taranov](https://github.com/nickitat))。 -* 在分布式聚合的最终阶段,允许对 `uniqExact` 状态进行并行合并。[#78703](https://github.com/ClickHouse/ClickHouse/pull/78703)([Nikita Taranov](https://github.com/nickitat))。 -* 修复在按键聚合中并行合并 `uniqExact` 状态时可能出现的性能下降问题。[#78724](https://github.com/ClickHouse/ClickHouse/pull/78724) ([Nikita Taranov](https://github.com/nickitat)). -* 减少对 Azure Storage 的 List Blobs API 调用次数。 [#78860](https://github.com/ClickHouse/ClickHouse/pull/78860) ([Julia Kartseva](https://github.com/jkartseva)). -* 修复使用并行副本的分布式 INSERT SELECT 的性能问题。[#79441](https://github.com/ClickHouse/ClickHouse/pull/79441) ([Azat Khuzhin](https://github.com/azat)). -* 避免 `LogSeriesLimiter` 在每次构造时都执行清理操作,从而防止在高并发场景下出现锁竞争和性能退化。 [#79864](https://github.com/ClickHouse/ClickHouse/pull/79864) ([filimonov](https://github.com/filimonov)). -* 通过启用 trivial count 优化加速查询。 [#79945](https://github.com/ClickHouse/ClickHouse/pull/79945) ([Raúl Marín](https://github.com/Algunenano)). -* 改进了部分 `Decimal` 运算的内联处理。 [#79999](https://github.com/ClickHouse/ClickHouse/pull/79999) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* 将 `input_format_parquet_bloom_filter_push_down` 的默认值设置为 true。同时,修正设置变更历史中的一处错误。[#80058](https://github.com/ClickHouse/ClickHouse/pull/80058) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 针对需要删除所有行的分片,优化了 `ALTER ... DELETE` 变更操作。现在,在这类情况下会直接创建一个空分片来替代原始分片,而无需执行变更操作本身。[#79307](https://github.com/ClickHouse/ClickHouse/pull/79307) ([Anton Popov](https://github.com/CurtizJ)). -* 在可能的情况下,避免在插入 Compact part 时对数据块进行额外拷贝。[#79536](https://github.com/ClickHouse/ClickHouse/pull/79536) ([Pavel Kruglov](https://github.com/Avogar))。 -* 添加了设置 `input_format_max_block_size_bytes`,用于按字节限制在输入格式中创建的块大小。这有助于在行包含大值时,避免数据导入期间出现高内存占用。[#79495](https://github.com/ClickHouse/ClickHouse/pull/79495) ([Pavel Kruglov](https://github.com/Avogar))。 -* 移除线程和 async_socket_for_remote/use_hedge_requests 的保护页。将 `FiberStack` 中的分配方法从 `mmap` 更改为 `aligned_alloc`。由于这会导致 VMA 被拆分,在高负载下可能会触及 vm.max_map_count 的上限。[#79147](https://github.com/ClickHouse/ClickHouse/pull/79147)([Sema Checherinda](https://github.com/CheSema))。 -* 使用并行副本的惰性物化。[#79401](https://github.com/ClickHouse/ClickHouse/pull/79401) ([Igor Nikonov](https://github.com/devcrafter)). - -#### 改进 {#improvement} - -* 新增了实时应用轻量级删除的功能(通过设置 `lightweight_deletes_sync = 0`、`apply_mutations_on_fly = 1` 实现)。[#79281](https://github.com/ClickHouse/ClickHouse/pull/79281) ([Anton Popov](https://github.com/CurtizJ))。 -* 如果在终端中以 pretty 格式显示数据,并且后续数据块具有相同的列宽,则可以从前一个数据块继续显示,通过上移光标将其与前一个数据块拼接起来。这解决了 [#79333](https://github.com/ClickHouse/ClickHouse/issues/79333)。该特性由新的设置项 `output_format_pretty_glue_chunks` 控制。[#79339](https://github.com/ClickHouse/ClickHouse/pull/79339)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 将 `isIPAddressInRange` 函数扩展以支持 `String`、`IPv4`、`IPv6`、`Nullable(String)`、`Nullable(IPv4)` 和 `Nullable(IPv6)` 数据类型。[#78364](https://github.com/ClickHouse/ClickHouse/pull/78364) ([YjyJeff](https://github.com/YjyJeff))。 -* 允许动态更改 `PostgreSQL` 引擎的连接池参数。[#78414](https://github.com/ClickHouse/ClickHouse/pull/78414)([Samay Sharma](https://github.com/samay-sharma))。 -* 允许在普通 Projection 中指定 `_part_offset`。这是构建 Projection 索引的第一步。它可以与 [#58224](https://github.com/ClickHouse/ClickHouse/issues/58224) 配合使用,并有助于改进 #63207。[#78429](https://github.com/ClickHouse/ClickHouse/pull/78429)([Amos Bird](https://github.com/amosbird))。 -* 为 `system.named_collections` 添加新列(`create_query` 和 `source`)。修复 [#78179](https://github.com/ClickHouse/ClickHouse/issues/78179)。[#78582](https://github.com/ClickHouse/ClickHouse/pull/78582)([MikhailBurdukov](https://github.com/MikhailBurdukov))。 -* 在系统表 `system.query_condition_cache` 中新增了字段 `condition`。该字段存储明文条件,其对应的哈希值被用作查询条件缓存中的键。[#78671](https://github.com/ClickHouse/ClickHouse/pull/78671) ([Robert Schulze](https://github.com/rschu1ze))。 -* 现在可以基于 `BFloat16` 列创建向量相似性索引。[#78850](https://github.com/ClickHouse/ClickHouse/pull/78850) ([Robert Schulze](https://github.com/rschu1ze))。 -* 在 `DateTime64` 的尽力解析模式中支持带小数部分的 Unix 时间戳。[#78908](https://github.com/ClickHouse/ClickHouse/pull/78908) ([Pavel Kruglov](https://github.com/Avogar))。 -* 在存储 `DeltaLake` 的 delta-kernel 实现中,修复列映射模式相关问题,并为 schema 演进添加测试。[#78921](https://github.com/ClickHouse/ClickHouse/pull/78921) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* 通过改进数值转换,优化以 Values 格式向 `Variant` 列插入数据的操作。[#78923](https://github.com/ClickHouse/ClickHouse/pull/78923) ([Pavel Kruglov](https://github.com/Avogar))。 -* `tokens` 函数已扩展为可接受一个额外的 tokenizer 参数,以及更多 tokenizer 特定的参数。[#79001](https://github.com/ClickHouse/ClickHouse/pull/79001) ([Elmi Ahmadov](https://github.com/ahmadov))。 -* `SHOW CLUSTER` 语句现在会展开其参数中的宏(如果有)。 [#79006](https://github.com/ClickHouse/ClickHouse/pull/79006) ([arf42](https://github.com/arf42)). -* 哈希函数现在支持数组、元组和映射中的 `NULL` 值(issues [#48365](https://github.com/ClickHouse/ClickHouse/issues/48365) 和 [#48623](https://github.com/ClickHouse/ClickHouse/issues/48623))。[#79008](https://github.com/ClickHouse/ClickHouse/pull/79008) ([Michael Kolupaev](https://github.com/al13n321))。 -* 将 cctz 更新到 2025a。[#79043](https://github.com/ClickHouse/ClickHouse/pull/79043) ([Raúl Marín](https://github.com/Algunenano)) -* 将 UDF 的默认 stderr 处理方式改为 "log_last",以提升易用性。[#79066](https://github.com/ClickHouse/ClickHouse/pull/79066) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 在 Web UI 中为选项卡支持撤销操作。修复了 [#71284](https://github.com/ClickHouse/ClickHouse/issues/71284)。[#79084](https://github.com/ClickHouse/ClickHouse/pull/79084)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 在 `recoverLostReplica` 过程中移除相关设置,其方式与此前在以下变更中所做的处理相同: [https://github.com/ClickHouse/ClickHouse/pull/78637](https://github.com/ClickHouse/ClickHouse/pull/78637)。 [#79113](https://github.com/ClickHouse/ClickHouse/pull/79113)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 -* 添加 profile 事件:`ParquetReadRowGroups` 和 `ParquetPrunedRowGroups`,用于分析 Parquet 索引裁剪情况。 [#79180](https://github.com/ClickHouse/ClickHouse/pull/79180) ([flynn](https://github.com/ucasfl)). -* 支持在集群上对数据库执行 `ALTER` 操作。[#79242](https://github.com/ClickHouse/ClickHouse/pull/79242) ([Tuan Pham Anh](https://github.com/tuanpach)). -* 显式跳过 QueryMetricLog 统计收集过程中错过的运行,否则日志需要很长时间才能追上当前时间。[#79257](https://github.com/ClickHouse/ClickHouse/pull/79257) ([Mikhail Artemenko](https://github.com/Michicosun)). -* 对基于 `Arrow` 的格式的读取进行了一些小优化。[#79308](https://github.com/ClickHouse/ClickHouse/pull/79308) ([Bharat Nallan](https://github.com/bharatnc)). -* 设置 `allow_archive_path_syntax` 被误标记为实验性。添加了一个测试,以防止实验性设置在默认情况下被启用。[#79320](https://github.com/ClickHouse/ClickHouse/pull/79320)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 使页面缓存设置可针对每个查询进行调整。这对于更快地进行试验,以及对高吞吐量和低延迟查询进行精细调优是必要的。 [#79337](https://github.com/ClickHouse/ClickHouse/pull/79337) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 对于看起来像典型 64 位哈希值的数字,不再以美化格式输出其数值提示信息。已关闭 [#79334](https://github.com/ClickHouse/ClickHouse/issues/79334)。 [#79338](https://github.com/ClickHouse/ClickHouse/pull/79338)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 高级仪表板中图表的颜色会根据对应查询的哈希值计算得出。这样在滚动浏览仪表板时,更容易记住并找到某个图表。[#79341](https://github.com/ClickHouse/ClickHouse/pull/79341) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 新增异步指标 `FilesystemCacheCapacity` —— `cache` 虚拟文件系统中的总容量。该指标对于整体基础设施监控非常有用。[#79348](https://github.com/ClickHouse/ClickHouse/pull/79348) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 优化对 system.parts 的访问(仅在需要时读取列/索引大小)。 [#79352](https://github.com/ClickHouse/ClickHouse/pull/79352) ([Azat Khuzhin](https://github.com/azat)). -* 改为仅为查询 `'SHOW CLUSTER '` 计算相关字段,而非所有字段。[#79368](https://github.com/ClickHouse/ClickHouse/pull/79368)([Tuan Pham Anh](https://github.com/tuanpach))。 -* 允许指定 `DatabaseCatalog` 的存储设置。 [#79407](https://github.com/ClickHouse/ClickHouse/pull/79407) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 在 `DeltaLake` 中支持本地存储。 [#79416](https://github.com/ClickHouse/ClickHouse/pull/79416) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* 添加一个查询级设置以启用 delta-kernel-rs:`allow_experimental_delta_kernel_rs`。[#79418](https://github.com/ClickHouse/ClickHouse/pull/79418)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 修复从 Azure Blob Storage/S3 对象存储列出 blob 时可能出现的死循环问题。 [#79425](https://github.com/ClickHouse/ClickHouse/pull/79425) ([Alexander Gololobov](https://github.com/davenger))。 -* 新增文件系统缓存设置 `max_size_ratio_to_total_space`。 [#79460](https://github.com/ClickHouse/ClickHouse/pull/79460) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 对于 `clickhouse-benchmark`,将 `reconnect` 选项重新配置为接受 0、1 或 N 作为取值,以按相应方式执行重连。[#79465](https://github.com/ClickHouse/ClickHouse/pull/79465) ([Sachin Kumar Singh](https://github.com/sachinkumarsingh092))。 -* 允许对位于不同 `plain_rewritable` 磁盘上的表使用 `ALTER TABLE ... MOVE|REPLACE PARTITION`。[#79566](https://github.com/ClickHouse/ClickHouse/pull/79566) ([Julia Kartseva](https://github.com/jkartseva)). -* 现在,如果参考向量的类型为 `Array(BFloat16)`,也会使用向量相似度索引。[#79745](https://github.com/ClickHouse/ClickHouse/pull/79745) ([Shankar Iyer](https://github.com/shankar-iyer)) -* 将 last_error_message、last_error_trace 和 query_id 添加到 system.error_log 表。相关 issue [#75816](https://github.com/ClickHouse/ClickHouse/issues/75816)。[#79836](https://github.com/ClickHouse/ClickHouse/pull/79836)([Andrei Tinikov](https://github.com/Dolso))。 -* 默认启用崩溃报告发送功能。可以在服务器的配置文件中将其关闭。[#79838](https://github.com/ClickHouse/ClickHouse/pull/79838) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 系统表 `system.functions` 现在会显示各个函数首次引入时所使用的 ClickHouse 版本。[#79839](https://github.com/ClickHouse/ClickHouse/pull/79839) ([Robert Schulze](https://github.com/rschu1ze))。 -* 添加了 `access_control_improvements.enable_user_name_access_type` 设置。此设置用于启用或禁用针对用户/角色的精细化授权功能,该功能最初在 [https://github.com/ClickHouse/ClickHouse/pull/72246](https://github.com/ClickHouse/ClickHouse/pull/72246) 中引入。如果你的集群中存在版本低于 25.1 的副本,建议关闭此设置。[#79842](https://github.com/ClickHouse/ClickHouse/pull/79842)([pufit](https://github.com/pufit))。 -* 现在 `ASTSelectWithUnionQuery::clone()` 方法的正确实现也会考虑 `is_normalized` 字段。这可能有助于解决问题 [#77569](https://github.com/ClickHouse/ClickHouse/issues/77569)。[#79909](https://github.com/ClickHouse/ClickHouse/pull/79909)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 -* 修复使用 EXCEPT 运算符的某些查询在格式化时不一致的问题。如果 EXCEPT 运算符左侧以 `*` 结尾,格式化后的查询会丢失括号,进而被解析为带有 `EXCEPT` 修饰符的 `*`。这些查询是通过模糊测试工具(fuzzer)发现的,在实际使用中不太可能遇到。此更改关闭 [#79950](https://github.com/ClickHouse/ClickHouse/issues/79950)。[#79952](https://github.com/ClickHouse/ClickHouse/pull/79952)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 通过使用变体反序列化顺序缓存,对 `JSON` 类型的解析进行了小幅优化。 [#79984](https://github.com/ClickHouse/ClickHouse/pull/79984) ([Pavel Kruglov](https://github.com/Avogar)). -* 添加设置 `s3_slow_all_threads_after_network_error`。[#80035](https://github.com/ClickHouse/ClickHouse/pull/80035) ([Vitaly Baranov](https://github.com/vitlibar))。 -* 用于记录所选待合并数据部分的日志级别不正确(Information)。关闭了 [#80061](https://github.com/ClickHouse/ClickHouse/issues/80061)。[#80062](https://github.com/ClickHouse/ClickHouse/pull/80062)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* trace-visualizer:在工具提示和状态信息中添加 runtime/share 信息。[#79040](https://github.com/ClickHouse/ClickHouse/pull/79040) ([Sergei Trifonov](https://github.com/serxa))。 -* trace-visualizer:从 ClickHouse 服务器加载数据。[#79042](https://github.com/ClickHouse/ClickHouse/pull/79042) ([Sergei Trifonov](https://github.com/serxa))。 -* 为失败的合并操作添加指标。[#79228](https://github.com/ClickHouse/ClickHouse/pull/79228) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* `clickhouse-benchmark` 在指定最大迭代次数时,将基于该最大值显示百分比。 [#79346](https://github.com/ClickHouse/ClickHouse/pull/79346) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 新增 `system.parts` 表可视化器。[#79437](https://github.com/ClickHouse/ClickHouse/pull/79437) ([Sergei Trifonov](https://github.com/serxa))。 -* 新增查询延迟分析工具。 [#79978](https://github.com/ClickHouse/ClickHouse/pull/79978) ([Sergei Trifonov](https://github.com/serxa)). - -#### 缺陷修复(官方稳定版中用户可见的异常行为) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* 修复对数据 part 中缺失列的重命名处理。 [#76346](https://github.com/ClickHouse/ClickHouse/pull/76346) ([Anton Popov](https://github.com/CurtizJ)). -* 物化视图可能启动得太晚,例如在向其传输数据的 Kafka 表之后才启动。[#72123](https://github.com/ClickHouse/ClickHouse/pull/72123)([Ilya Golshtein](https://github.com/ilejn))。 -* 修复了在启用 analyzer 时创建 `VIEW` 时对 `SELECT` 查询重写的问题,关闭 [#75956](https://github.com/ClickHouse/ClickHouse/issues/75956)。[#76356](https://github.com/ClickHouse/ClickHouse/pull/76356) ([Dmitry Novik](https://github.com/novikd))。 -* 修复了从服务器(通过 `apply_settings_from_server`)应用 `async_insert` 的问题(之前会在客户端触发 `Unknown packet 11 from server` 错误)。 [#77578](https://github.com/ClickHouse/ClickHouse/pull/77578) ([Azat Khuzhin](https://github.com/azat)). -* 修复了在 Replicated 数据库中新添加副本上无法正常使用可刷新物化视图的问题。[#77774](https://github.com/ClickHouse/ClickHouse/pull/77774)([Michael Kolupaev](https://github.com/al13n321))。 -* 修复了可刷新的物化视图会破坏备份的问题。 [#77893](https://github.com/ClickHouse/ClickHouse/pull/77893) ([Michael Kolupaev](https://github.com/al13n321)). -* 修复 `transform` 中旧版触发逻辑的错误。 [#78247](https://github.com/ClickHouse/ClickHouse/pull/78247) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* 修复了在某些情况下与 analyzer 配合使用时未能应用二级索引的问题。修复了 [#65607](https://github.com/ClickHouse/ClickHouse/issues/65607),[#69373](https://github.com/ClickHouse/ClickHouse/issues/69373)。[#78485](https://github.com/ClickHouse/ClickHouse/pull/78485)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* 修复在启用压缩的 HTTP 协议下导出 profile 事件(`NetworkSendElapsedMicroseconds`/`NetworkSendBytes`)时的问题(误差不应超过缓冲区大小,通常约为 1MiB)。 [#78516](https://github.com/ClickHouse/ClickHouse/pull/78516) ([Azat Khuzhin](https://github.com/azat)). -* 修复在 `JOIN ... USING` 涉及 `ALIAS` 列时分析器产生 `LOGICAL_ERROR` 的问题——现在应抛出更合适的错误。[#78618](https://github.com/ClickHouse/ClickHouse/pull/78618) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* 修复分析器:当 `SELECT` 包含位置参数时,`CREATE VIEW ... ON CLUSTER` 会失败的问题。 [#78663](https://github.com/ClickHouse/ClickHouse/pull/78663) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* 修复在对支持模式推断的表函数执行 `INSERT SELECT` 且 `SELECT` 中包含标量子查询时出现的 `Block structure mismatch` 错误。[#78677](https://github.com/ClickHouse/ClickHouse/pull/78677) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* 修复分析器:当在针对 Distributed 表的 SELECT 查询中使用 `in` 函数且 `prefer_global_in_and_join=1` 时,应将其替换为 `globalIn`。[#78749](https://github.com/ClickHouse/ClickHouse/pull/78749) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 -* 修复了多种类型的 `SELECT` 查询,这些查询会从使用 `MongoDB` 引擎的表或 `mongodb` 表函数中读取数据:在 `WHERE` 子句中对常量值进行隐式类型转换的查询(例如 `WHERE datetime = '2025-03-10 00:00:00'`);以及带有 `LIMIT` 和 `GROUP BY` 的查询。先前,这些查询可能会返回错误的结果。[#78777](https://github.com/ClickHouse/ClickHouse/pull/78777)([Anton Popov](https://github.com/CurtizJ))。 -* 修复不同 JSON 类型之间的转换。现在通过先转换为/从 `String` 的简单类型转换来完成。这种方式效率较低,但可以确保 100% 的准确性。 [#78807](https://github.com/ClickHouse/ClickHouse/pull/78807) ([Pavel Kruglov](https://github.com/Avogar)). -* 修复在将 Dynamic 类型转换为 Interval 类型时发生的逻辑错误。 [#78813](https://github.com/ClickHouse/ClickHouse/pull/78813) ([Pavel Kruglov](https://github.com/Avogar)). -* 修复因 JSON 解析错误导致的列回滚问题。 [#78836](https://github.com/ClickHouse/ClickHouse/pull/78836) ([Pavel Kruglov](https://github.com/Avogar)). -* 修复在使用常量别名列进行 JOIN 时出现的“bad cast”错误。[#78848](https://github.com/ClickHouse/ClickHouse/pull/78848) ([Vladimir Cherkasov](https://github.com/vdimir)). -* 不允许在物化视图中对视图与目标表数据类型不一致的列使用 prewhere。 [#78889](https://github.com/ClickHouse/ClickHouse/pull/78889) ([Pavel Kruglov](https://github.com/Avogar)). -* 修复在解析 Variant 列损坏二进制数据时的逻辑错误。[#78982](https://github.com/ClickHouse/ClickHouse/pull/78982)([Pavel Kruglov](https://github.com/Avogar))。 -* 当将 Parquet 批处理大小设置为 0 时抛出异常。之前当 `output_format_parquet_batch_size = 0` 时,ClickHouse 会出现挂起问题。现在这一行为已被修复。[#78991](https://github.com/ClickHouse/ClickHouse/pull/78991) ([daryawessely](https://github.com/daryawessely))。 -* 修复 compact 部分中使用 basic 格式的 variant 判别符的反序列化。该问题是在 [https://github.com/ClickHouse/ClickHouse/pull/55518](https://github.com/ClickHouse/ClickHouse/pull/55518) 中引入的。[#79000](https://github.com/ClickHouse/ClickHouse/pull/79000)([Pavel Kruglov](https://github.com/Avogar))。 -* 类型为 `complex_key_ssd_cache` 的字典现在会拒绝 `block_size` 和 `write_buffer_size` 为 0 或负数的参数(问题 [#78314](https://github.com/ClickHouse/ClickHouse/issues/78314))。[#79028](https://github.com/ClickHouse/ClickHouse/pull/79028)([Elmi Ahmadov](https://github.com/ahmadov))。 -* 避免在 SummingMergeTree 中对未聚合列使用 Field,否则可能会导致 SummingMergeTree 中使用的 Dynamic/Variant 类型出现意外错误。[#79051](https://github.com/ClickHouse/ClickHouse/pull/79051) ([Pavel Kruglov](https://github.com/Avogar))。 -* 修复分析器中,从目标表为 Distributed 且表结构不同的物化视图读取数据时的问题。 [#79059](https://github.com/ClickHouse/ClickHouse/pull/79059) ([Pavel Kruglov](https://github.com/Avogar))。 -* 修复了一个问题:在执行批量插入操作的表上,`arrayUnion()` 会返回多余(错误)的值。修复了 [#75057](https://github.com/ClickHouse/ClickHouse/issues/75057)。[#79079](https://github.com/ClickHouse/ClickHouse/pull/79079)([Peter Nguyen](https://github.com/petern48))。 -* 修复 `OpenSSLInitializer` 中导致段错误的问题。关闭 [#79092](https://github.com/ClickHouse/ClickHouse/issues/79092)。[#79097](https://github.com/ClickHouse/ClickHouse/pull/79097)([Konstantin Bogdanov](https://github.com/thevar1able))。 -* 始终为 S3 ListObject 设置前缀。 [#79114](https://github.com/ClickHouse/ClickHouse/pull/79114) ([Azat Khuzhin](https://github.com/azat)). -* 修复了一个错误:在对表执行批量插入时,`arrayUnion()` 会返回多余(不正确)的值。修复了 [#79157](https://github.com/ClickHouse/ClickHouse/issues/79157)。[#79158](https://github.com/ClickHouse/ClickHouse/pull/79158)([Peter Nguyen](https://github.com/petern48))。 -* 修复过滤下推后的逻辑错误。 [#79164](https://github.com/ClickHouse/ClickHouse/pull/79164) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* 修复在使用基于 HTTP 的端点时采用 delta-kernel 实现的 DeltaLake 表引擎的问题,并修复 NOSIGN。关闭 [#78124](https://github.com/ClickHouse/ClickHouse/issues/78124)。[#79203](https://github.com/ClickHouse/ClickHouse/pull/79203)([Kseniia Sumarokova](https://github.com/kssenii))。 -* Keeper 修复:避免在失败的 multi 请求上触发 watch。 [#79247](https://github.com/ClickHouse/ClickHouse/pull/79247) ([Antonio Andelic](https://github.com/antonio2368)). -* 在 `IN` 中禁止使用 Dynamic 和 JSON 类型。由于当前 `IN` 的实现方式,这可能会导致结果不正确。对这些类型在 `IN` 中提供完善支持较为复杂,可能会在未来实现。[#79282](https://github.com/ClickHouse/ClickHouse/pull/79282) ([Pavel Kruglov](https://github.com/Avogar)). -* 修复 JSON 类型解析时对重复路径的检查。[#79317](https://github.com/ClickHouse/ClickHouse/pull/79317)([Pavel Kruglov](https://github.com/Avogar))。 -* 修复 SecureStreamSocket 连接问题。 [#79383](https://github.com/ClickHouse/ClickHouse/pull/79383) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* 修复对包含数据的 plain_rewritable 磁盘的加载问题。[#79439](https://github.com/ClickHouse/ClickHouse/pull/79439) ([Julia Kartseva](https://github.com/jkartseva))。 -* 修复在 MergeTree 的 Wide 部分进行动态子列发现时发生的崩溃。[#79466](https://github.com/ClickHouse/ClickHouse/pull/79466) ([Pavel Kruglov](https://github.com/Avogar))。 -* 仅在初始 CREATE 查询时校验表名长度。对于后续创建不要执行该校验,以避免破坏向后兼容性。[#79488](https://github.com/ClickHouse/ClickHouse/pull/79488)([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 -* 在多种情况下,修复了在包含稀疏列的表上出现的 `Block structure mismatch` 错误。[#79491](https://github.com/ClickHouse/ClickHouse/pull/79491)([Anton Popov](https://github.com/CurtizJ))。 -* 修复两种会触发 `Logical Error: Can't set alias of * of Asterisk on alias` 的情况。[#79505](https://github.com/ClickHouse/ClickHouse/pull/79505) ([Raúl Marín](https://github.com/Algunenano))。 -* 修复在重命名 Atomic 数据库时使用错误的路径的问题。[#79569](https://github.com/ClickHouse/ClickHouse/pull/79569)([Tuan Pham Anh](https://github.com/tuanpach))。 -* 修复在 JSON 列与其他列组合使用 ORDER BY 时的问题。 [#79591](https://github.com/ClickHouse/ClickHouse/pull/79591) ([Pavel Kruglov](https://github.com/Avogar)). -* 修复了在同时禁用 `use_hedged_requests` 和 `allow_experimental_parallel_reading_from_replicas` 时,从远程读取数据会出现结果重复的问题。[#79599](https://github.com/ClickHouse/ClickHouse/pull/79599) ([Eduard Karacharov](https://github.com/korowa)). -* 修复在使用 Unity Catalog 时导致 delta-kernel 实现发生崩溃的问题。 [#79677](https://github.com/ClickHouse/ClickHouse/pull/79677) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 解析自动发现集群的宏。 [#79696](https://github.com/ClickHouse/ClickHouse/pull/79696) ([Anton Ivashkin](https://github.com/ianton-ru)). -* 对错误配置的 `page_cache_limits` 进行适当处理。 [#79805](https://github.com/ClickHouse/ClickHouse/pull/79805) ([Bharat Nallan](https://github.com/bharatnc)). -* 修复了在可变长度格式化符(例如 `%W`,即工作日 `Monday`、`Tuesday` 等)后跟复合格式化符(一次输出多个日期时间组件的格式化符,例如 `%D`,即美国日期格式 `05/04/25`)时,SQL 函数 `formatDateTime` 的结果不正确的问题。 [#79835](https://github.com/ClickHouse/ClickHouse/pull/79835) ([Robert Schulze](https://github.com/rschu1ze)). -* IcebergS3 支持 count() 优化,但 IcebergS3Cluster 不支持。因此,在集群模式下返回的 count() 结果可能是副本数量的倍数。[#79844](https://github.com/ClickHouse/ClickHouse/pull/79844) ([wxybear](https://github.com/wxybear))。 -* 修复在使用惰性物化且在应用投影之前查询执行阶段未使用任何列时出现的 `AMBIGUOUS_COLUMN_NAME` 错误。例如:`SELECT * FROM t ORDER BY rand() LIMIT 5`。 [#79926](https://github.com/ClickHouse/ClickHouse/pull/79926) ([Igor Nikonov](https://github.com/devcrafter))。 -* 在查询 `CREATE DATABASE datalake ENGINE = DataLakeCatalog(\'http://catalog:8181\', \'admin\', \'password\')` 中隐藏密码。[#79941](https://github.com/ClickHouse/ClickHouse/pull/79941) ([Han Fei](https://github.com/hanfei1991))。 -* 允许在 JOIN USING 中为列指定别名。在列被重命名时(例如由于 ARRAY JOIN),请使用该别名。修复 [#73707](https://github.com/ClickHouse/ClickHouse/issues/73707)。[#79942](https://github.com/ClickHouse/ClickHouse/pull/79942)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* 修复包含 UNION 的物化视图在新副本上无法正常工作的问题。 [#80037](https://github.com/ClickHouse/ClickHouse/pull/80037) ([Samay Sharma](https://github.com/samay-sharma)). -* SQL 函数 `parseDateTime` 中的格式说明符 `%e` 现在可以识别一位数的日期(例如 `3`),而之前需要在前面填充空格(例如 ` 3`)。这使其行为与 MySQL 兼容。若要保留之前的行为,请将设置 `parsedatetime_e_requires_space_padding` 设为 `1`。(问题 [#78243](https://github.com/ClickHouse/ClickHouse/issues/78243))。[#80057](https://github.com/ClickHouse/ClickHouse/pull/80057)([Robert Schulze](https://github.com/rschu1ze))。 -* 修复 ClickHouse 日志中出现的警告 `Cannot find 'kernel' in '[...]/memory.stat'`(问题 [#77410](https://github.com/ClickHouse/ClickHouse/issues/77410))。[#80129](https://github.com/ClickHouse/ClickHouse/pull/80129)([Robert Schulze](https://github.com/rschu1ze))。 -* 在 FunctionComparison 中检查栈大小,以避免栈溢出导致崩溃。 [#78208](https://github.com/ClickHouse/ClickHouse/pull/78208) ([Julia Kartseva](https://github.com/jkartseva)). -* 修复从 `system.workloads` 执行 SELECT 时的竞态条件。[#78743](https://github.com/ClickHouse/ClickHouse/pull/78743) ([Sergei Trifonov](https://github.com/serxa)). -* 修复:分布式查询中的惰性物化。 [#78815](https://github.com/ClickHouse/ClickHouse/pull/78815) ([Igor Nikonov](https://github.com/devcrafter)). -* 修复 `Array(Bool)` 到 `Array(FixedString)` 的转换。 [#78863](https://github.com/ClickHouse/ClickHouse/pull/78863) ([Nikita Taranov](https://github.com/nickitat)). -* 让 Parquet 版本选择更清晰。 [#78818](https://github.com/ClickHouse/ClickHouse/pull/78818) ([Michael Kolupaev](https://github.com/al13n321)). -* 修复 `ReservoirSampler` 的自合并问题。[#79031](https://github.com/ClickHouse/ClickHouse/pull/79031) ([Nikita Taranov](https://github.com/nickitat))。 -* 修复客户端上下文中插入表的存储逻辑。 [#79046](https://github.com/ClickHouse/ClickHouse/pull/79046) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* 修复 `AggregatingSortedAlgorithm` 和 `SummingSortedAlgorithm` 的数据成员析构顺序。[#79056](https://github.com/ClickHouse/ClickHouse/pull/79056)([Nikita Taranov](https://github.com/nickitat))。 -* `enable_user_name_access_type` 不应影响 `DEFINER` 访问类型。[#80026](https://github.com/ClickHouse/ClickHouse/pull/80026) ([pufit](https://github.com/pufit)). -* 如果 `system` 数据库的元数据位于 Keeper 中,对 `system` 数据库的查询可能会挂起。[#79304](https://github.com/ClickHouse/ClickHouse/pull/79304) ([Mikhail Artemenko](https://github.com/Michicosun))。 - -#### 构建/测试/打包改进 {#buildtestingpackaging-improvement} - -* 支持复用已构建的 `chcache` 二进制文件,而不是每次都重新构建。 [#78851](https://github.com/ClickHouse/ClickHouse/pull/78851) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* 添加 NATS 暂停等待逻辑。 [#78987](https://github.com/ClickHouse/ClickHouse/pull/78987) ([Dmitry Novikov](https://github.com/dmitry-sles-novikov)). -* 修复错误地将 ARM 构建发布为 `amd64compat` 的问题。 [#79122](https://github.com/ClickHouse/ClickHouse/pull/79122) ([Alexander Gololobov](https://github.com/davenger)). -* 为 OpenSSL 使用预生成的汇编代码。 [#79386](https://github.com/ClickHouse/ClickHouse/pull/79386) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* 修复以支持使用 `clang20` 进行构建。 [#79588](https://github.com/ClickHouse/ClickHouse/pull/79588) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* `chcache`:支持 Rust 缓存。 [#78691](https://github.com/ClickHouse/ClickHouse/pull/78691) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* 为 `zstd` 汇编文件添加栈展开(unwind)信息。 [#79288](https://github.com/ClickHouse/ClickHouse/pull/79288) ([Michael Kolupaev](https://github.com/al13n321)). - -### ClickHouse 25.4 版本,2025-04-22 {#254} - -#### 向后不兼容的变更 {#backward-incompatible-change} - -* 当 `allow_materialized_view_with_bad_select` 为 `false` 时,检查物化视图中的所有列是否与目标表完全匹配。 [#74481](https://github.com/ClickHouse/ClickHouse/pull/74481) ([Christoph Wurm](https://github.com/cwurm)). -* 修复 `dateTrunc` 与负值 Date/DateTime 参数一起使用时的行为。 [#77622](https://github.com/ClickHouse/ClickHouse/pull/77622) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* 已移除旧版 `MongoDB` 集成。服务器设置项 `use_legacy_mongodb_integration` 已废弃,现已无效,不再产生任何效果。 [#77895](https://github.com/ClickHouse/ClickHouse/pull/77895) ([Robert Schulze](https://github.com/rschu1ze)). -* 增强 `SummingMergeTree` 验证逻辑,以跳过对用于分区键或排序键的列进行聚合。 [#78022](https://github.com/ClickHouse/ClickHouse/pull/78022) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). - -#### 新功能 {#new-feature} - -* 为工作负载新增了 CPU 槽位调度功能,详情请参见[文档](https://clickhouse.com/docs/operations/workload-scheduling#cpu_scheduling)。[#77595](https://github.com/ClickHouse/ClickHouse/pull/77595)([Sergei Trifonov](https://github.com/serxa))。 -* 如果指定了 `--path` 命令行参数,`clickhouse-local` 在重启后会保留其数据库。此更改修复了 [#50647](https://github.com/ClickHouse/ClickHouse/issues/50647)。此更改修复了 [#49947](https://github.com/ClickHouse/ClickHouse/issues/49947)。[#71722](https://github.com/ClickHouse/ClickHouse/pull/71722)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 当服务器过载时拒绝处理查询。是否拒绝的决策基于等待时间(`OSCPUWaitMicroseconds`)与繁忙时间(`OSCPUVirtualTimeMicroseconds`)的比值作出。当该比值介于 `min_os_cpu_wait_time_ratio_to_throw` 和 `max_os_cpu_wait_time_ratio_to_throw` 之间时(这些是查询级别设置),将以一定概率丢弃查询。 [#63206](https://github.com/ClickHouse/ClickHouse/pull/63206)([Alexey Katsman](https://github.com/alexkats))。 -* 在 `Iceberg` 中进行时间回溯:新增设置,可按指定时间戳查询 `Iceberg` 表。[#71072](https://github.com/ClickHouse/ClickHouse/pull/71072) ([Brett Hoerner](https://github.com/bretthoerner))。[#77439](https://github.com/ClickHouse/ClickHouse/pull/77439) ([Daniil Ivanik](https://github.com/divanik))。 -* 用于 `Iceberg` 元数据的内存缓存,存储 manifest 文件/列表和 `metadata.json`,以加速查询。[#77156](https://github.com/ClickHouse/ClickHouse/pull/77156)([Han Fei](https://github.com/hanfei1991))。 -* 为 Azure Blob Storage 提供对 `DeltaLake` 表引擎的支持。修复 [#68043](https://github.com/ClickHouse/ClickHouse/issues/68043)。[#74541](https://github.com/ClickHouse/ClickHouse/pull/74541)([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 -* 为反序列化后的向量相似度索引添加了内存缓存,这应当能加快重复的近似最近邻(ANN)搜索查询。新缓存的大小由服务器设置项 `vector_similarity_index_cache_size` 和 `vector_similarity_index_cache_max_entries` 控制。此功能取代了早期版本中的 skipping index 缓存功能。[#77905](https://github.com/ClickHouse/ClickHouse/pull/77905)([Shankar Iyer](https://github.com/shankar-iyer))。 -* 支持 Delta Lake 的分区剪枝。 [#78486](https://github.com/ClickHouse/ClickHouse/pull/78486) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 为只读 `MergeTree` 表增加对后台刷新的支持,从而可以在拥有无限数量的分布式读取节点的情况下查询可更新表(ClickHouse 原生数据湖)。[#76467](https://github.com/ClickHouse/ClickHouse/pull/76467)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 支持使用自定义磁盘来存储数据库元数据文件。目前只能在服务器全局级别进行配置。[#77365](https://github.com/ClickHouse/ClickHouse/pull/77365) ([Tuan Pham Anh](https://github.com/tuanpach))。 -* 在 plain_rewritable 磁盘上支持 `ALTER TABLE ... ATTACH|DETACH|MOVE|REPLACE PARTITION`。 [#77406](https://github.com/ClickHouse/ClickHouse/pull/77406) ([Julia Kartseva](https://github.com/jkartseva))。 -* 为 `Kafka` 表引擎添加用于 `SASL` 配置和凭据的表设置。这样可以在 `CREATE TABLE` 语句中直接配置到 Kafka 和兼容 Kafka 系统的基于 SASL 的身份验证,而无需使用配置文件或命名集合。[#78810](https://github.com/ClickHouse/ClickHouse/pull/78810)([Christoph Wurm](https://github.com/cwurm))。 -* 允许为 MergeTree 表设置 `default_compression_codec`:当 CREATE 查询未为相应列显式指定压缩编解码器时,将使用该设置。这解决了 [#42005](https://github.com/ClickHouse/ClickHouse/issues/42005)。[#66394](https://github.com/ClickHouse/ClickHouse/pull/66394)([gvoelfin](https://github.com/gvoelfin))。 -* 在 clusters 配置中添加 `bind_host` 设置,使 ClickHouse 能在分布式连接中使用特定网络。[#74741](https://github.com/ClickHouse/ClickHouse/pull/74741) ([Todd Yocum](https://github.com/toddyocum))。 -* 在 `system.tables` 中新增一列 `parametrized_view_parameters`。修复 [https://github.com/clickhouse/clickhouse/issues/66756](https://github.com/clickhouse/clickhouse/issues/66756)。[#75112](https://github.com/ClickHouse/ClickHouse/pull/75112)([NamNguyenHoai](https://github.com/NamHoaiNguyen))。 -* 允许修改数据库注释。Closes [#73351](https://github.com/ClickHouse/ClickHouse/issues/73351) ### 面向用户的变更文档条目。[#75622](https://github.com/ClickHouse/ClickHouse/pull/75622) ([NamNguyenHoai](https://github.com/NamHoaiNguyen))。 -* 在 PostgreSQL 兼容协议中支持 `SCRAM-SHA-256` 身份验证。[#76839](https://github.com/ClickHouse/ClickHouse/pull/76839) ([scanhex12](https://github.com/scanhex12))。 -* 新增函数 `arrayLevenshteinDistance`、`arrayLevenshteinDistanceWeighted` 和 `arraySimilarity`。 [#77187](https://github.com/ClickHouse/ClickHouse/pull/77187) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). -* 设置 `parallel_distributed_insert_select` 现在也会对向 `ReplicatedMergeTree` 执行的 `INSERT SELECT` 生效(之前则需要通过 Distributed 表实现)。[#78041](https://github.com/ClickHouse/ClickHouse/pull/78041)([Igor Nikonov](https://github.com/devcrafter))。 -* 引入 `toInterval` 函数。该函数接受 2 个参数(值和单位),并将该值转换为指定的 `Interval` 类型。[#78723](https://github.com/ClickHouse/ClickHouse/pull/78723)([Andrew Davis](https://github.com/pulpdrew))。 -* 在 iceberg 表函数和引擎中新增多种便捷方式,用于定位根 `metadata.json` 文件。修复 [#78455](https://github.com/ClickHouse/ClickHouse/issues/78455)。[#78475](https://github.com/ClickHouse/ClickHouse/pull/78475)([Daniil Ivanik](https://github.com/divanik))。 -* 在 ClickHouse 的 SSH 协议中支持基于密码的身份验证。[#78586](https://github.com/ClickHouse/ClickHouse/pull/78586) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 - -#### 实验性特性 {#experimental-feature} - -* 支持在 `WHERE` 子句中将关联子查询用作 `EXISTS` 表达式的参数。关闭 [#72459](https://github.com/ClickHouse/ClickHouse/issues/72459)。[#76078](https://github.com/ClickHouse/ClickHouse/pull/76078)([Dmitry Novik](https://github.com/novikd))。 -* 新增 `sparseGrams` 和 `sparseGramsHashes` 函数的 ASCII 和 UTF-8 版本。作者:[scanhex12](https://github.com/scanhex12)。[#78176](https://github.com/ClickHouse/ClickHouse/pull/78176)([Pervakov Grigorii](https://github.com/GrigoryPervakov))。请不要使用:其实现将在后续版本中发生变化。 - -#### 性能优化 {#performance-improvement} - -* 通过使用惰性列来优化性能,使数据在执行 ORDER BY 和 LIMIT 之后才被读取。 [#55518](https://github.com/ClickHouse/ClickHouse/pull/55518) ([Xiaozhe Yu](https://github.com/wudidapaopao)). -* 默认启用查询条件缓存。 [#79080](https://github.com/ClickHouse/ClickHouse/pull/79080) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 通过对 `col->insertFrom()` 调用进行去虚拟化,加速构建 JOIN 结果集。[#77350](https://github.com/ClickHouse/ClickHouse/pull/77350)([Alexander Gololobov](https://github.com/davenger))。 -* 在可能的情况下,将查询计划中过滤步骤中的等值条件合并到 JOIN 条件中,从而可以将其用作哈希表键。[#78877](https://github.com/ClickHouse/ClickHouse/pull/78877) ([Dmitry Novik](https://github.com/novikd))。 -* 当 JOIN 键在两侧都为主键(PK)的前缀时,对 JOIN 使用动态分片。该优化可通过 `query_plan_join_shard_by_pk_ranges` 设置启用(默认禁用)。[#74733](https://github.com/ClickHouse/ClickHouse/pull/74733)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* 支持基于列的上下边界值进行 `Iceberg` 数据剪枝。修复 [#77638](https://github.com/ClickHouse/ClickHouse/issues/77638)。[#78242](https://github.com/ClickHouse/ClickHouse/pull/78242)([alesapin](https://github.com/alesapin))。 -* 为 `Iceberg` 实现了基础的 `count()` 优化。现在带有 `count()` 且没有任何过滤条件的查询应该会更快。关闭了 [#77639](https://github.com/ClickHouse/ClickHouse/issues/77639)。[#78090](https://github.com/ClickHouse/ClickHouse/pull/78090)([alesapin](https://github.com/alesapin))。 -* 添加了通过 `max_merge_delayed_streams_for_parallel_write` 配置合并操作中可并行刷写列数的能力(这应当可以将写入 S3 的纵向合并的内存使用量降低约 25 倍)。 [#77922](https://github.com/ClickHouse/ClickHouse/pull/77922) ([Azat Khuzhin](https://github.com/azat)). -* 在缓存以被动方式使用时(例如用于合并操作),禁用 `filesystem_cache_prefer_bigger_buffer_size`。这可以降低合并时的内存消耗。[#77898](https://github.com/ClickHouse/ClickHouse/pull/77898) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* 现在我们使用副本数量来确定在启用并行副本读取时的读取任务大小。这样在待读取数据量不太大的情况下,可以在副本之间实现更好的工作分配。 [#78695](https://github.com/ClickHouse/ClickHouse/pull/78695) ([Nikita Taranov](https://github.com/nickitat)). -* 为 `ORC` 格式增加异步 IO 预取支持,通过隐藏远程 IO 延迟来提升整体性能。 [#70534](https://github.com/ClickHouse/ClickHouse/pull/70534) ([李扬](https://github.com/taiyang-li)). -* 预先为异步插入分配内存以提升性能。[#74945](https://github.com/ClickHouse/ClickHouse/pull/74945) ([Ilya Golshtein](https://github.com/ilejn))。 -* 通过在可以使用 `multiRead` 的地方避免使用单个 `get` 请求,来减少对 Keeper 的请求数量;在副本数量增加的情况下,这些单个 `get` 请求可能会给 Keeper 带来显著负载。[#56862](https://github.com/ClickHouse/ClickHouse/pull/56862) ([Nikolay Degterinsky](https://github.com/evillique))。 -* 对在 Nullable 参数上运行的函数进行了小幅优化。 [#76489](https://github.com/ClickHouse/ClickHouse/pull/76489) ([李扬](https://github.com/taiyang-li)). -* 优化 `arraySort`。 [#76850](https://github.com/ClickHouse/ClickHouse/pull/76850) ([李扬](https://github.com/taiyang-li)). -* 将同一部分的标记合并,一次性写入查询条件缓存,以减少锁开销。[#77377](https://github.com/ClickHouse/ClickHouse/pull/77377) ([zhongyuankai](https://github.com/zhongyuankai))。 -* 为仅包含一次括号展开的查询优化 `s3Cluster` 的性能。[#77686](https://github.com/ClickHouse/ClickHouse/pull/77686) ([Tomáš Hromada](https://github.com/gyfis))。 -* 优化对单个 Nullable 或 LowCardinality 列的 ORDER BY。[#77789](https://github.com/ClickHouse/ClickHouse/pull/77789) ([李扬](https://github.com/taiyang-li))。 -* 优化 `Native` 格式的内存使用。[#78442](https://github.com/ClickHouse/ClickHouse/pull/78442) ([Azat Khuzhin](https://github.com/azat))。 -* 小幅优化:如果需要进行类型转换,则不要将 `count(if(...))` 重写为 `countIf`。关闭 [#78564](https://github.com/ClickHouse/ClickHouse/issues/78564)。[#78565](https://github.com/ClickHouse/ClickHouse/pull/78565)([李扬](https://github.com/taiyang-li))。 -* `hasAll` 函数现在可以利用 `tokenbf_v1`、`ngrambf_v1` 这类全文跳过索引。[#77662](https://github.com/ClickHouse/ClickHouse/pull/77662)([UnamedRus](https://github.com/UnamedRus))。 -* 向量相似度索引可能会导致主内存分配过多,最多达到实际需求的 2 倍。本次修复重新设计了内存分配策略,降低了内存消耗,并提升了向量相似度索引缓存的有效性。(issue [#78056](https://github.com/ClickHouse/ClickHouse/issues/78056))。[#78394](https://github.com/ClickHouse/ClickHouse/pull/78394)([Shankar Iyer](https://github.com/shankar-iyer))。 -* 为 `system.metric_log` 表引入一个用于指定表结构类型的设置 `schema_type`。允许的表结构有三种:`wide` —— 当前使用的结构,每个指标/事件(metric/event)位于单独的列中(对读取单列最为高效);`transposed` —— 类似于 `system.asynchronous_metric_log`,指标/事件按行存储;以及最有意思的 `transposed_with_wide_view` —— 底层表使用 `transposed` 结构创建,同时再引入一个 `wide` 结构的视图,用于将针对视图的查询转换到底层表。在 `transposed_with_wide_view` 中,不支持视图的子秒级时间精度,`event_time_microseconds` 只是为了向后兼容而保留的别名。[#78412](https://github.com/ClickHouse/ClickHouse/pull/78412) ([alesapin](https://github.com/alesapin))。 - -#### 改进 {#improvement} - -* 对 `Distributed` 查询的查询计划进行序列化。新增设置项 `serialize_query_plan`。启用后,来自 `Distributed` 表的查询在远程执行时将使用序列化的查询计划。这会在 TCP 协议中引入一个新的数据包类型,需要在服务器配置中添加 `true`,以允许处理该数据包。[#69652](https://github.com/ClickHouse/ClickHouse/pull/69652)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* 支持从视图中读取 `JSON` 类型及其子列。[#76903](https://github.com/ClickHouse/ClickHouse/pull/76903) ([Pavel Kruglov](https://github.com/Avogar)). -* 支持在集群上使用 `ALTER DATABASE ... ON CLUSTER`。 [#79242](https://github.com/ClickHouse/ClickHouse/pull/79242) ([Tuan Pham Anh](https://github.com/tuanpach)). -* 可刷新的物化视图的刷新操作现在会记录在 `system.query_log` 中。[#71333](https://github.com/ClickHouse/ClickHouse/pull/71333) ([Michael Kolupaev](https://github.com/al13n321)). -* 现在可以通过在其配置中使用一个新的设置,将用户自定义函数(UDF)标记为确定性的。此外,查询缓存现在会检查查询中调用的 UDF 是否为确定性的;如果是,则会缓存该查询的结果。(Issue [#59988](https://github.com/ClickHouse/ClickHouse/issues/59988))。[#77769](https://github.com/ClickHouse/ClickHouse/pull/77769)([Jimmy Aguilar Mena](https://github.com/Ergus))。 -* 为所有类型的复制任务启用了退避逻辑,这样可以降低 CPU 使用率、内存使用率以及日志文件大小。新增了与 `max_postpone_time_for_failed_mutations_ms` 类似的设置:`max_postpone_time_for_failed_replicated_fetches_ms`、`max_postpone_time_for_failed_replicated_merges_ms` 和 `max_postpone_time_for_failed_replicated_tasks_ms`。[#74576](https://github.com/ClickHouse/ClickHouse/pull/74576) ([MikhailBurdukov](https://github.com/MikhailBurdukov))。 -* 将 `query_id` 添加到 `system.errors`。解决 [#75815](https://github.com/ClickHouse/ClickHouse/issues/75815)。[#76581](https://github.com/ClickHouse/ClickHouse/pull/76581)([Vladimir Baikov](https://github.com/bkvvldmr))。 -* 新增支持将 `UInt128` 转换为 `IPv6`。这使得可以对 `IPv6` 执行 `bitAnd` 运算和算术操作,并将结果转换回 `IPv6`。解决了 [#76752](https://github.com/ClickHouse/ClickHouse/issues/76752)。同样也可以将对 `IPv6` 执行 `bitAnd` 运算得到的结果再转换回 `IPv6`。另见 [#57707](https://github.com/ClickHouse/ClickHouse/pull/57707)。[#76928](https://github.com/ClickHouse/ClickHouse/pull/76928)([Muzammil Abdul Rehman](https://github.com/muzammilar))。 -* 默认情况下,不在 `Variant` 类型的文本格式中解析特殊的 `Bool` 值。可以通过设置 `allow_special_bool_values_inside_variant` 来启用此行为。 [#76974](https://github.com/ClickHouse/ClickHouse/pull/76974) ([Pavel Kruglov](https://github.com/Avogar)). -* 在会话级和服务器级支持为低 `priority` 查询按任务配置等待时间。[#77013](https://github.com/ClickHouse/ClickHouse/pull/77013) ([VicoWu](https://github.com/VicoWu)). -* 为 JSON 数据类型的值实现了比较功能。现在可以像比较 Map 一样比较 JSON 对象。[#77397](https://github.com/ClickHouse/ClickHouse/pull/77397) ([Pavel Kruglov](https://github.com/Avogar))。 -* 通过 `system.kafka_consumers` 改进了权限支持。转发内部的 `librdkafka` 错误(顺带一提,这个库本身相当糟糕)。[#77700](https://github.com/ClickHouse/ClickHouse/pull/77700) ([Ilya Golshtein](https://github.com/ilejn)). -* 为 Buffer 表引擎的设置增加了验证。 [#77840](https://github.com/ClickHouse/ClickHouse/pull/77840) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). -* 添加配置项 `enable_hdfs_pread`,用于在 `HDFS` 中启用或禁用 `pread`。[#77885](https://github.com/ClickHouse/ClickHouse/pull/77885) ([kevinyhzou](https://github.com/KevinyhZou))。 -* 增加用于统计 ZooKeeper `multi` 读写请求数量的 profile events。[#77888](https://github.com/ClickHouse/ClickHouse/pull/77888) ([JackyWoo](https://github.com/JackyWoo)). -* 在开启 `disable_insertion_and_mutation` 时,仍允许创建临时表并向其中插入数据。[#77901](https://github.com/ClickHouse/ClickHouse/pull/77901) ([Xu Jia](https://github.com/XuJia0210)). -* 将 `max_insert_delayed_streams_for_parallel_write` 降为 100。[#77919](https://github.com/ClickHouse/ClickHouse/pull/77919)([Azat Khuzhin](https://github.com/azat))。 -* 修复 Joda 语法中的年份解析(如果你在好奇,这是来自 Java 生态),例如 `yyy`。[#77973](https://github.com/ClickHouse/ClickHouse/pull/77973)([李扬](https://github.com/taiyang-li))。 -* 对 `MergeTree` 表的数据片段进行附加时,将按照其块顺序执行,这对 `ReplacingMergeTree` 等特殊合并算法非常重要。此更改从而关闭了 [#71009](https://github.com/ClickHouse/ClickHouse/issues/71009)。[#77976](https://github.com/ClickHouse/ClickHouse/pull/77976)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 查询脱敏规则现在可以在发生匹配时抛出 `LOGICAL_ERROR`。这有助于检查预定义密码是否在日志中的任意位置泄露。[#78094](https://github.com/ClickHouse/ClickHouse/pull/78094) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 -* 在 `information_schema.tables` 中添加了列 `index_length_column`,以提高与 MySQL 的兼容性。 [#78119](https://github.com/ClickHouse/ClickHouse/pull/78119) ([Paweł Zakrzewski](https://github.com/KrzaQ)). -* 引入两个新指标:`TotalMergeFailures` 和 `NonAbortedMergeFailures`。这些指标用于检测在短时间内发生过多合并失败的情况。[#78150](https://github.com/ClickHouse/ClickHouse/pull/78150) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 -* 修复在 path-style 模式下未指定 key 时对 S3 URL 的错误解析。 [#78185](https://github.com/ClickHouse/ClickHouse/pull/78185) ([Arthur Passos](https://github.com/arthurpassos)). -* 修正异步指标 `BlockActiveTime`、`BlockDiscardTime`、`BlockWriteTime`、`BlockQueueTime` 和 `BlockReadTime` 的数值错误(在此更改之前,1 秒被错误地上报为 0.001)。 [#78211](https://github.com/ClickHouse/ClickHouse/pull/78211) ([filimonov](https://github.com/filimonov)). -* 在向 StorageS3(Azure)Queue 的物化视图推送数据时,对发生的错误现在会遵循 `loading_retries` 限制。此前,这类错误会被无限次重试。[#78313](https://github.com/ClickHouse/ClickHouse/pull/78313) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* 在 DeltaLake 的 `delta-kernel-rs` 实现中,修复了性能和进度条。 [#78368](https://github.com/ClickHouse/ClickHouse/pull/78368) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* 为运行时磁盘新增对 `include`、`from_env`、`from_zk` 的支持。关闭 [#78177](https://github.com/ClickHouse/ClickHouse/issues/78177)。[#78470](https://github.com/ClickHouse/ClickHouse/pull/78470)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 在 `system.warnings` 表中为长时间运行的 mutation 添加动态警告。 [#78658](https://github.com/ClickHouse/ClickHouse/pull/78658) ([Bharat Nallan](https://github.com/bharatnc)). -* 向系统表 `system.query_condition_cache` 新增字段 `condition`。该字段存储条件的明文形式,其哈希值用作查询条件缓存中的键。[#78671](https://github.com/ClickHouse/ClickHouse/pull/78671) ([Robert Schulze](https://github.com/rschu1ze))。 -* 允许 Hive 分区键为空值。[#78816](https://github.com/ClickHouse/ClickHouse/pull/78816)([Arthur Passos](https://github.com/arthurpassos))。 -* 修复 `BFloat16` 在 `IN` 子句中的类型转换问题(例如,`SELECT toBFloat16(1) IN [1, 2, 3];` 现在返回 `1`)。修复了 [#78754](https://github.com/ClickHouse/ClickHouse/issues/78754)。[#78839](https://github.com/ClickHouse/ClickHouse/pull/78839)([Raufs Dunamalijevs](https://github.com/rienath))。 -* 如果设置了 `disk = ...`,则不要检查位于其他磁盘上的 `MergeTree` 数据片段。[#78855](https://github.com/ClickHouse/ClickHouse/pull/78855) ([Azat Khuzhin](https://github.com/azat)). -* 使 `system.query_log` 中 `used_data_type_families` 的数据类型以规范名称形式记录。[#78972](https://github.com/ClickHouse/ClickHouse/pull/78972) ([Kseniia Sumarokova](https://github.com/kssenii)). -* `recoverLostReplica` 期间的清理设置与此前在 [#78637](https://github.com/ClickHouse/ClickHouse/pull/78637) 中的处理方式相同。[#79113](https://github.com/ClickHouse/ClickHouse/pull/79113)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 -* 在 INFILE 的 schema 推断中使用插入列。 [#78490](https://github.com/ClickHouse/ClickHouse/pull/78490) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). - -#### 缺陷修复(官方稳定版中用户可见的异常行为) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* 修复在聚合投影中使用 `count(Nullable)` 时的错误投影分析,修复了 [#74495](https://github.com/ClickHouse/ClickHouse/issues/74495)。此 PR 还在投影分析相关位置增加了一些日志,用于澄清为什么会使用某个投影或不使用某个投影。[#74498](https://github.com/ClickHouse/ClickHouse/pull/74498) ([Amos Bird](https://github.com/amosbird))。 -* 修复在执行 `DETACH PART` 操作时可能出现的 `Part <...> does not contain in snapshot of previous virtual parts. (PART_IS_TEMPORARILY_LOCKED)` 错误。[#76039](https://github.com/ClickHouse/ClickHouse/pull/76039) ([Aleksei Filatov](https://github.com/aalexfvk))。 -* 修复在 analyzer 中使用包含字面量表达式时无法正常工作的 skip index,并在索引分析过程中移除多余的类型转换。 [#77229](https://github.com/ClickHouse/ClickHouse/pull/77229) ([Pavel Kruglov](https://github.com/Avogar))。 -* 修复了一个问题:`close_session` 查询参数不起作用,导致命名会话只有在 `session_timeout` 之后才会被关闭。[#77336](https://github.com/ClickHouse/ClickHouse/pull/77336) ([Alexey Katsman](https://github.com/alexkats))。 -* 修复了在未附加物化视图的情况下从 NATS 服务器接收消息的问题。[#77392](https://github.com/ClickHouse/ClickHouse/pull/77392) ([Dmitry Novikov](https://github.com/dmitry-sles-novikov)). -* 修复通过 `merge` 表函数从空 `FileLog` 读取时的逻辑错误,关闭 [#75575](https://github.com/ClickHouse/ClickHouse/issues/75575)。[#77441](https://github.com/ClickHouse/ClickHouse/pull/77441)([Vladimir Cherkasov](https://github.com/vdimir))。 -* 在共享 variant 的 `Dynamic` 序列化中使用默认格式设置。[#77572](https://github.com/ClickHouse/ClickHouse/pull/77572)([Pavel Kruglov](https://github.com/Avogar))。 -* 修复在本地磁盘上检查表数据路径是否存在的逻辑。 [#77608](https://github.com/ClickHouse/ClickHouse/pull/77608) ([Tuan Pham Anh](https://github.com/tuanpach)). -* 修复某些类型在向远程端发送常量值时的问题。 [#77634](https://github.com/ClickHouse/ClickHouse/pull/77634) ([Pavel Kruglov](https://github.com/Avogar)). -* 修复由于 S3/AzureQueue 中上下文过期而导致的崩溃。[#77720](https://github.com/ClickHouse/ClickHouse/pull/77720) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 在 RabbitMQ、NATS、Redis、AzureQueue 表引擎中隐藏凭据。[#77755](https://github.com/ClickHouse/ClickHouse/pull/77755) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 修复在 `argMin`/`argMax` 中比较 `NaN` 时的未定义行为。 [#77756](https://github.com/ClickHouse/ClickHouse/pull/77756) ([Raúl Marín](https://github.com/Algunenano)). -* 即使在操作不会产生任何需要写入的数据块时,也要定期检查合并和变更(merges 和 mutations)是否被取消。 [#77766](https://github.com/ClickHouse/ClickHouse/pull/77766) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 -* 修复:在 Replicated 数据库中,可刷新物化视图在新添加的副本上不起作用的问题。 [#77774](https://github.com/ClickHouse/ClickHouse/pull/77774) ([Michael Kolupaev](https://github.com/al13n321)). -* 修复在出现 `NOT_FOUND_COLUMN_IN_BLOCK` 错误时可能导致的崩溃。[#77854](https://github.com/ClickHouse/ClickHouse/pull/77854) ([Vladimir Cherkasov](https://github.com/vdimir)). -* 修复在 S3/AzureQueue 中填充数据时发生的崩溃问题。[#77878](https://github.com/ClickHouse/ClickHouse/pull/77878) ([Bharat Nallan](https://github.com/bharatnc)). -* 在 SSH 服务器中禁用历史记录的模糊搜索(因为它需要 skim 库)。 [#78002](https://github.com/ClickHouse/ClickHouse/pull/78002) ([Azat Khuzhin](https://github.com/azat)). -* 修复了一个 bug:当对未建立索引的向量列执行向量搜索查询时,如果表中存在另一列已定义向量相似度索引的向量列,则会返回不正确的结果。(Issue [#77978](https://github.com/ClickHouse/ClickHouse/issues/77978))。[#78069](https://github.com/ClickHouse/ClickHouse/pull/78069)([Shankar Iyer](https://github.com/shankar-iyer))。 -* 修复提示 "The requested output format {} is binary... Do you want to output it anyway? [y/N]" 中的一个细微错误。 [#78095](https://github.com/ClickHouse/ClickHouse/pull/78095) ([Azat Khuzhin](https://github.com/azat)). -* 修复在 `toStartOfInterval` 中使用零起点参数时的错误。[#78096](https://github.com/ClickHouse/ClickHouse/pull/78096)([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* 禁止通过 HTTP 接口传递空的 `session_id` 查询参数。 [#78098](https://github.com/ClickHouse/ClickHouse/pull/78098) ([Alexey Katsman](https://github.com/alexkats))。 -* 修复在 `Replicated` 数据库中可能发生的元数据被覆盖问题,该问题出现在在执行 `ALTER` 查询后紧接着执行 `RENAME` 查询的情况下。[#78107](https://github.com/ClickHouse/ClickHouse/pull/78107) ([Nikolay Degterinsky](https://github.com/evillique))。 -* 修复 `NATS` 引擎中的崩溃问题。[#78108](https://github.com/ClickHouse/ClickHouse/pull/78108) ([Dmitry Novikov](https://github.com/dmitry-sles-novikov)). -* 不要在用于 SSH 的嵌入式客户端中尝试创建 history_file 文件(在之前的版本中虽然会尝试创建,但始终失败)。 [#78112](https://github.com/ClickHouse/ClickHouse/pull/78112) ([Azat Khuzhin](https://github.com/azat)). -* 修复在执行 `RENAME DATABASE` 或 `DROP TABLE` 查询后,`system.detached_tables` 显示不正确信息的问题。[#78126](https://github.com/ClickHouse/ClickHouse/pull/78126) ([Nikolay Degterinsky](https://github.com/evillique))。 -* 修复了在使用 `Replicated` 数据库时对过多表进行检查的问题,该问题出现在 [#77274](https://github.com/ClickHouse/ClickHouse/pull/77274) 之后。同时,将检查提前到创建存储之前执行,以避免在 `ReplicatedMergeTree` 或 `KeeperMap` 的情况下在 Keeper 中创建未被记录的节点。[#78127](https://github.com/ClickHouse/ClickHouse/pull/78127)([Nikolay Degterinsky](https://github.com/evillique))。 -* 修复并发初始化 `S3Queue` 元数据时可能发生的崩溃。[#78131](https://github.com/ClickHouse/ClickHouse/pull/78131) ([Azat Khuzhin](https://github.com/azat))。 -* `groupArray*` 函数现在在 `max_size` 参数为 Int 类型且值为 0 时会产生 `BAD_ARGUMENTS` 错误,与之前对 UInt 类型的处理保持一致,而不是在该值下继续尝试执行。 [#78140](https://github.com/ClickHouse/ClickHouse/pull/78140) ([Eduard Karacharov](https://github.com/korowa)). -* 防止在恢复丢失副本时,如果本地表在分离之前已被移除而导致崩溃。[#78173](https://github.com/ClickHouse/ClickHouse/pull/78173) ([Raúl Marín](https://github.com/Algunenano))。 -* 修复了 `system.s3_queue_settings` 中 `alterable` 列始终返回 `false` 的问题。 [#78187](https://github.com/ClickHouse/ClickHouse/pull/78187) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 隐藏 Azure 访问签名,使其对用户不可见且不会在日志中显示。[#78189](https://github.com/ClickHouse/ClickHouse/pull/78189) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 修复 Wide 部分中带前缀子流的预取。 [#78205](https://github.com/ClickHouse/ClickHouse/pull/78205) ([Pavel Kruglov](https://github.com/Avogar)). -* 修复了在键数组类型为 `LowCardinality(Nullable)` 时,`mapFromArrays` 崩溃或返回错误结果的问题。[#78240](https://github.com/ClickHouse/ClickHouse/pull/78240) ([Eduard Karacharov](https://github.com/korowa))。 -* 修复 delta-kernel-rs 认证选项。 [#78255](https://github.com/ClickHouse/ClickHouse/pull/78255) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 如果副本的 `disable_insertion_and_mutation` 为 true,则不再调度可刷新物化视图的任务。该任务本质上是一次插入操作,如果 `disable_insertion_and_mutation` 为 true,则会失败。[#78277](https://github.com/ClickHouse/ClickHouse/pull/78277) ([Xu Jia](https://github.com/XuJia0210)). -* 验证对 `Merge` 引擎底层表的访问权限。[#78339](https://github.com/ClickHouse/ClickHouse/pull/78339)([Pervakov Grigorii](https://github.com/GrigoryPervakov))。 -* 在查询 `Distributed` 表时可以忽略 `FINAL` 修饰符。[#78428](https://github.com/ClickHouse/ClickHouse/pull/78428)([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 -* 当 bitmap 为空时,`bitmapMin` 返回 uint32_max(当输入类型更大时返回 uint64_max),这与空 roaring_bitmap 的最小值行为一致。[#78444](https://github.com/ClickHouse/ClickHouse/pull/78444) ([wxybear](https://github.com/wxybear))。 -* 在启用 `distributed_aggregation_memory_efficient` 时,禁用在读取 FROM 之后立即对查询进行并行处理,以避免可能出现的逻辑错误。修复了 [#76934](https://github.com/ClickHouse/ClickHouse/issues/76934)。[#78500](https://github.com/ClickHouse/ClickHouse/pull/78500) ([flynn](https://github.com/ucasfl))。 -* 在应用 `max_streams_to_max_threads_ratio` 设置后,如果计划的流数为零,则至少保留一个用于读取的流。 [#78505](https://github.com/ClickHouse/ClickHouse/pull/78505) ([Eduard Karacharov](https://github.com/korowa)). -* 在存储 `S3Queue` 中修复逻辑错误 “Cannot unregister: table uuid is not registered”。关闭 [#78285](https://github.com/ClickHouse/ClickHouse/issues/78285)。[#78541](https://github.com/ClickHouse/ClickHouse/pull/78541)([Kseniia Sumarokova](https://github.com/kssenii))。 -* ClickHouse 现在可以在同时启用了 cgroups v1 和 v2 的系统上正确识别自身的 cgroup v2。 [#78566](https://github.com/ClickHouse/ClickHouse/pull/78566) ([Grigory Korolev](https://github.com/gkorolev))。 -* 在使用表级设置时,`-Cluster` 表函数执行失败。 [#78587](https://github.com/ClickHouse/ClickHouse/pull/78587) ([Daniil Ivanik](https://github.com/divanik)). -* 在不支持事务的 `ReplicatedMergeTree` 上执行 `INSERT` 时,增加了更完善的检查。[#78633](https://github.com/ClickHouse/ClickHouse/pull/78633) ([Azat Khuzhin](https://github.com/azat)). -* 在执行 ATTACH 操作时清理查询相关设置。 [#78637](https://github.com/ClickHouse/ClickHouse/pull/78637) ([Raúl Marín](https://github.com/Algunenano)). -* 修复在 `iceberg_metadata_file_path` 中指定无效路径时引发的崩溃。[#78688](https://github.com/ClickHouse/ClickHouse/pull/78688) ([alesapin](https://github.com/alesapin)). -* 在使用基于 delta-kernel-s 实现的 `DeltaLake` 表引擎时,修复了当读取 schema 与表的 schema 不一致且同时存在分区列时,会导致的“未找到列”错误。 [#78690](https://github.com/ClickHouse/ClickHouse/pull/78690) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 修复了一个问题:在计划关闭一个具名会话之后(但尚未达到超时时间之前),如果创建了一个同名的新具名会话,该新会话会在原先第一个会话计划关闭的时间点被错误关闭。 [#78698](https://github.com/ClickHouse/ClickHouse/pull/78698) ([Alexey Katsman](https://github.com/alexkats)). -* 修复了多种 `SELECT` 查询类型,这些查询会从使用 `MongoDB` 引擎或 `mongodb` 表函数的表中读取数据:在 `WHERE` 子句中隐式转换常量值的查询(例如 `WHERE datetime = '2025-03-10 00:00:00'`);带有 `LIMIT` 和 `GROUP BY` 的查询。此前,这些查询可能会返回错误的结果。 [#78777](https://github.com/ClickHouse/ClickHouse/pull/78777) ([Anton Popov](https://github.com/CurtizJ)). -* 运行 `CHECK TABLE` 时不再阻塞表的关闭。 [#78782](https://github.com/ClickHouse/ClickHouse/pull/78782) ([Raúl Marín](https://github.com/Algunenano)). -* Keeper 修复:在所有情况下修正 ephemeral 计数。 [#78799](https://github.com/ClickHouse/ClickHouse/pull/78799) ([Antonio Andelic](https://github.com/antonio2368)). -* 修复在使用除 `view` 之外的表函数时,`StorageDistributed` 中的错误类型转换。修复 [#78464](https://github.com/ClickHouse/ClickHouse/issues/78464)。[#78828](https://github.com/ClickHouse/ClickHouse/pull/78828)([Konstantin Bogdanov](https://github.com/thevar1able))。 -* 统一 `tupleElement(*, 1)` 的格式。修复 [#78639](https://github.com/ClickHouse/ClickHouse/issues/78639)。[#78832](https://github.com/ClickHouse/ClickHouse/pull/78832)([Konstantin Bogdanov](https://github.com/thevar1able))。 -* 类型为 `ssd_cache` 的字典现在会拒绝 `block_size` 和 `write_buffer_size` 为零或负数的参数值(问题 [#78314](https://github.com/ClickHouse/ClickHouse/issues/78314))。[#78854](https://github.com/ClickHouse/ClickHouse/pull/78854)([Elmi Ahmadov](https://github.com/ahmadov))。 -* 修复在异常关闭后对 Refreshable 物化视图执行 ALTER 时发生的崩溃问题。 [#78858](https://github.com/ClickHouse/ClickHouse/pull/78858) ([Azat Khuzhin](https://github.com/azat)). -* 修复 `CSV` 格式中对无效 `DateTime` 值的解析问题。 [#78919](https://github.com/ClickHouse/ClickHouse/pull/78919) ([Pavel Kruglov](https://github.com/Avogar)). -* Keeper 修复:避免在 multi 请求失败时触发 watch。[#79247](https://github.com/ClickHouse/ClickHouse/pull/79247) ([Antonio Andelic](https://github.com/antonio2368)). -* 修复在显式指定的 min-max 值为 `NULL` 时读取 Iceberg 表失败的问题。已发现 Go Iceberg 库会生成这种有问题的文件。关闭 [#78740](https://github.com/ClickHouse/ClickHouse/issues/78740)。[#78764](https://github.com/ClickHouse/ClickHouse/pull/78764)([flynn](https://github.com/ucasfl))。 - -#### 构建/测试/打包改进 {#buildtestingpackaging-improvement} - -* 在 Rust 中遵循 CPU 目标特性,并在所有 crate 中启用 LTO。[#78590](https://github.com/ClickHouse/ClickHouse/pull/78590) ([Raúl Marín](https://github.com/Algunenano))。 - -### ClickHouse 25.3 LTS 发行版,2025-03-20 {#253} - -#### 向后不兼容的变更 {#backward-incompatible-change} - -* 禁止对复制数据库执行 TRUNCATE 操作。[#76651](https://github.com/ClickHouse/ClickHouse/pull/76651) ([Bharat Nallan](https://github.com/bharatnc))。 -* 回滚此前跳过索引缓存的更改。[#77447](https://github.com/ClickHouse/ClickHouse/pull/77447) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 - -#### 新功能 {#new-feature} - -* `JSON` 数据类型已可用于生产环境,详见 [https://jsonbench.com/](https://jsonbench.com/)。`Dynamic` 和 `Variant` 数据类型也已可用于生产环境。[#77785](https://github.com/ClickHouse/ClickHouse/pull/77785)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 为 clickhouse-server 引入 SSH 协议支持。现在可以使用任意 SSH 客户端连接到 ClickHouse。已关闭以下问题:[#74340](https://github.com/ClickHouse/ClickHouse/issues/74340)。[#74989](https://github.com/ClickHouse/ClickHouse/pull/74989)([George Gamezardashvili](https://github.com/Infjoker))。 -* 当启用并行副本时,将表函数替换为其对应的 -Cluster 版本。修复了 [#65024](https://github.com/ClickHouse/ClickHouse/issues/65024)。[#70659](https://github.com/ClickHouse/ClickHouse/pull/70659)([Konstantin Bogdanov](https://github.com/thevar1able))。 -* Userspace Page Cache 的新实现,它允许在进程内存中缓存数据,而无需依赖操作系统的页面缓存;当数据存储在没有本地文件系统缓存支持的远程虚拟文件系统上时,这非常有用。 [#70509](https://github.com/ClickHouse/ClickHouse/pull/70509) ([Michael Kolupaev](https://github.com/al13n321)). -* 新增了 `concurrent_threads_scheduler` 服务器设置,用于控制并发查询之间 CPU 时隙的分配方式。可以设置为 `round_robin`(之前的行为)或 `fair_round_robin`,以解决 INSERT 和 SELECT 之间 CPU 分配不公平的问题。[#75949](https://github.com/ClickHouse/ClickHouse/pull/75949) ([Sergei Trifonov](https://github.com/serxa))。 -* 新增 `estimateCompressionRatio` 聚合函数 [#70801](https://github.com/ClickHouse/ClickHouse/issues/70801)。 [#76661](https://github.com/ClickHouse/ClickHouse/pull/76661)([Tariq Almawash](https://github.com/talmawash))。 -* 新增函数 `arraySymmetricDifference`。该函数返回多个数组参数中未在所有参数中同时出现的所有元素。示例:`SELECT arraySymmetricDifference([1, 2], [2, 3])` 返回 `[1, 3]`。(issue [#61673](https://github.com/ClickHouse/ClickHouse/issues/61673))。[#76231](https://github.com/ClickHouse/ClickHouse/pull/76231)([Filipp Abapolov](https://github.com/pheepa))。 -* 通过在存储/表函数中设置 `iceberg_metadata_file_path`,可以显式指定要读取的 Iceberg 元数据文件。修复 [#47412](https://github.com/ClickHouse/ClickHouse/issues/47412)。[#77318](https://github.com/ClickHouse/ClickHouse/pull/77318)([alesapin](https://github.com/alesapin))。 -* 新增了 `keccak256` 哈希函数,在区块链实现中被广泛使用,尤其是在基于 EVM 的系统中。[#76669](https://github.com/ClickHouse/ClickHouse/pull/76669) ([Arnaud Briche](https://github.com/arnaudbriche))。 -* 新增三个函数:`icebergTruncate`(按照规范实现,[https://iceberg.apache.org/spec/#truncate-transform-details](https://iceberg.apache.org/spec/#truncate-transform-details))、`toYearNumSinceEpoch` 和 `toMonthNumSinceEpoch`。在 `Iceberg` 引擎的分区裁剪中支持 `truncate` 转换。[#77403](https://github.com/ClickHouse/ClickHouse/pull/77403) ([alesapin](https://github.com/alesapin))。 -* 支持 `LowCardinality(Decimal)` 数据类型 [#72256](https://github.com/ClickHouse/ClickHouse/issues/72256)。[#72833](https://github.com/ClickHouse/ClickHouse/pull/72833) ([zhanglistar](https://github.com/zhanglistar))。 -* `FilterTransformPassedRows` 和 `FilterTransformPassedBytes` 性能分析事件将显示在查询执行过程中被过滤的行数和字节数。 [#76662](https://github.com/ClickHouse/ClickHouse/pull/76662) ([Onkar Deshpande](https://github.com/onkar))。 -* 支持直方图指标类型。该接口与 Prometheus 客户端的接口设计非常相似,你只需调用 `observe(value)`,即可将与该值对应的桶中的计数器加一。直方图指标通过 `system.histogram_metrics` 对外暴露。[#75736](https://github.com/ClickHouse/ClickHouse/pull/75736) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 -* 支持在 CASE 表达式中使用非常量显式值进行分支选择。 [#77399](https://github.com/ClickHouse/ClickHouse/pull/77399) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). - -#### 实验特性 {#experimental-feature} - -* 为基于 AWS S3 和本地文件系统的 Delta Lake 表添加对 [Unity Catalog](https://www.databricks.com/product/unity-catalog) 的支持。[#76988](https://github.com/ClickHouse/ClickHouse/pull/76988) ([alesapin](https://github.com/alesapin))。 -* 引入与 AWS Glue 服务目录的实验性集成,用于 Iceberg 表。[#77257](https://github.com/ClickHouse/ClickHouse/pull/77257) ([alesapin](https://github.com/alesapin))。 -* 增加对动态集群自动发现的支持,扩展现有的 _node_ 自动发现功能。ClickHouse 现在可以使用 `` 在统一的 ZooKeeper 路径下自动检测并注册新的 _clusters_。[#76001](https://github.com/ClickHouse/ClickHouse/pull/76001) ([Anton Ivashkin](https://github.com/ianton-ru))。 -* 通过新的设置 `enable_replacing_merge_with_cleanup_for_min_age_to_force_merge`,允许在可配置的超时时间后自动对整个分区执行清理合并操作。[#76440](https://github.com/ClickHouse/ClickHouse/pull/76440) ([Christoph Wurm](https://github.com/cwurm))。 - -#### 性能改进 {#performance-improvement} - -* 实现查询条件缓存,以提升重复条件场景下的查询性能。不满足条件的数据区间会被记录为内存中的临时索引,后续查询将复用该索引。关闭 [#67768](https://github.com/ClickHouse/ClickHouse/issues/67768) [#69236](https://github.com/ClickHouse/ClickHouse/pull/69236)([zhongyuankai](https://github.com/zhongyuankai))。 -* 在数据分片被移除时主动从缓存中驱逐对应数据。如果数据量较少,不要让缓存膨胀到最大容量。[#76641](https://github.com/ClickHouse/ClickHouse/pull/76641)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 在算术计算中使用 clang 内建的 i256 替代 Int256 和 UInt256,从而带来性能提升 [#70502](https://github.com/ClickHouse/ClickHouse/issues/70502)。[#73658](https://github.com/ClickHouse/ClickHouse/pull/73658)([李扬](https://github.com/taiyang-li))。 -* 在某些情况下(例如空数组列),数据分片中可能包含空文件。当表位于元数据与对象存储分离的磁盘上时,可以跳过向 ObjectStorage 写入空的 blob,只为此类文件保存元数据。[#75860](https://github.com/ClickHouse/ClickHouse/pull/75860)([Alexander Gololobov](https://github.com/davenger))。 -* 提升 Decimal32/Decimal64/DateTime64 的 min/max 运算性能。[#76570](https://github.com/ClickHouse/ClickHouse/pull/76570)([李扬](https://github.com/taiyang-li))。 -* 查询编译(设置 `compile_expressions`)现在会考虑机器类型。这显著加快了此类查询。[#76753](https://github.com/ClickHouse/ClickHouse/pull/76753)([ZhangLiStar](https://github.com/zhanglistar))。 -* 优化 `arraySort`。[#76850](https://github.com/ClickHouse/ClickHouse/pull/76850)([李扬](https://github.com/taiyang-li))。 -* 当缓存以被动方式使用时(例如用于合并),禁用 `filesystem_cache_prefer_bigger_buffer_size`。[#77898](https://github.com/ClickHouse/ClickHouse/pull/77898)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 在代码的部分位置应用 `preserve_most` 属性,从而获得略优的代码生成效果。[#67778](https://github.com/ClickHouse/ClickHouse/pull/67778)([Nikita Taranov](https://github.com/nickitat))。 -* 加快 ClickHouse 服务器关闭速度(去除 2.5 秒延迟)。[#76550](https://github.com/ClickHouse/ClickHouse/pull/76550)([Azat Khuzhin](https://github.com/azat))。 -* 避免在 ReadBufferFromS3 和其他远程读取缓冲区中进行多余的内存分配,将其内存占用减少一半。[#76692](https://github.com/ClickHouse/ClickHouse/pull/76692)([Sema Checherinda](https://github.com/CheSema))。 -* 将 zstd 从 1.5.5 升级到 1.5.7,这可能会带来一些[性能改进](https://github.com/facebook/zstd/releases/tag/v1.5.7)。[#77137](https://github.com/ClickHouse/ClickHouse/pull/77137)([Pradeep Chhetri](https://github.com/chhetripradeep))。 -* 降低在 Wide 数据部分中预取 JSON 列时的内存使用。当 ClickHouse 部署在共享存储之上(例如在 ClickHouse Cloud 中)时,这一点尤为重要。[#77640](https://github.com/ClickHouse/ClickHouse/pull/77640)([Pavel Kruglov](https://github.com/Avogar))。 - -#### 改进 {#improvement} - -* 在将 `TRUNCATE` 与 `INTO OUTFILE` 一起使用时支持原子重命名。修复 [#70323](https://github.com/ClickHouse/ClickHouse/issues/70323)。 [#77181](https://github.com/ClickHouse/ClickHouse/pull/77181)([Onkar Deshpande](https://github.com/onkar))。 -* 现在已经无法在设置中将 `NaN` 或 `inf` 用作浮点数值。之前允许这么做其实也没有什么意义。 [#77546](https://github.com/ClickHouse/ClickHouse/pull/77546) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* 当 analyzer 被禁用时,将默认禁用并行副本,而不考虑 `compatibility` 设置。仍然可以通过显式将 `parallel_replicas_only_with_analyzer` 设为 `false` 来更改此行为。[#77115](https://github.com/ClickHouse/ClickHouse/pull/77115)([Igor Nikonov](https://github.com/devcrafter))。 -* 新增支持定义一个要转发的 header 列表,用于将客户端请求中的这些 header 转发给外部 HTTP 认证器。[#77054](https://github.com/ClickHouse/ClickHouse/pull/77054) ([inv2004](https://github.com/inv2004))。 -* 在 tuple 列中对字段匹配时,遵循列名大小写不敏感的匹配规则。修复 [https://github.com/apache/incubator-gluten/issues/8324](https://github.com/apache/incubator-gluten/issues/8324)。[#73780](https://github.com/ClickHouse/ClickHouse/pull/73780)([李扬](https://github.com/taiyang-li))。 -* Gorilla 编解码器的参数现在将始终保存在 .sql 文件中的表元数据中。已修复:[#70072](https://github.com/ClickHouse/ClickHouse/issues/70072)。[#74814](https://github.com/ClickHouse/ClickHouse/pull/74814)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 -* 为特定数据湖实现了解析能力增强(Sequence ID 解析:新增了对 manifest 文件中序列标识符的解析功能;Avro 元数据解析:重新设计了 Avro 元数据解析器,使其便于未来扩展和增强)。[#75010](https://github.com/ClickHouse/ClickHouse/pull/75010) ([Daniil Ivanik](https://github.com/divanik)). -* 从 `system.opentelemetry_span_log` 的默认 ORDER BY 中删除 trace_id。 [#75907](https://github.com/ClickHouse/ClickHouse/pull/75907) ([Azat Khuzhin](https://github.com/azat)). -* 现在可以将加密(属性 `encrypted_by`)应用于任何配置文件(config.xml、users.xml、嵌套配置文件)。此前,它仅适用于顶级 config.xml 配置文件。[#75911](https://github.com/ClickHouse/ClickHouse/pull/75911)([Mikhail Gorshkov](https://github.com/mgorshkov))。 -* 改进 `system.warnings` 表,并添加一些可添加、更新或删除的动态告警消息。[#76029](https://github.com/ClickHouse/ClickHouse/pull/76029) ([Bharat Nallan](https://github.com/bharatnc))。 -* 此 PR 不再允许运行查询 `ALTER USER user1 ADD PROFILES a, DROP ALL PROFILES`,因为所有 `DROP` 操作都必须在语句中排在最前面。[#76242](https://github.com/ClickHouse/ClickHouse/pull/76242) ([pufit](https://github.com/pufit)). -* 针对 SYNC REPLICA 进行多项增强(更清晰的错误信息、更完善的测试、合理性检查)。 [#76307](https://github.com/ClickHouse/ClickHouse/pull/76307) ([Azat Khuzhin](https://github.com/azat)). -* 在备份到 S3 时,如果分段复制因 Access Denied 而失败,使用正确的回退策略。当在具有不同凭证的 bucket 之间执行备份时,多部分复制可能会产生 Access Denied 错误。[#76515](https://github.com/ClickHouse/ClickHouse/pull/76515) ([Antonio Andelic](https://github.com/antonio2368))。 -* 将 librdkafka(这堆不太好用的东西)升级到 2.8.0 版本(升级后也并没有好到哪去),并改进了 Kafka 表的关闭流程,从而减少在删除表和重启服务器时的延迟。`engine=Kafka` 在表被删除时不再显式地退出 consumer group。相反,consumer 会继续留在 group 中,直到在空闲超过 `session_timeout_ms`(默认:45 秒)后被自动移除。[#76621](https://github.com/ClickHouse/ClickHouse/pull/76621)([filimonov](https://github.com/filimonov))。 -* 修复 S3 请求设置的验证。[#76658](https://github.com/ClickHouse/ClickHouse/pull/76658) ([Vitaly Baranov](https://github.com/vitlibar))。 -* 像 `server_settings` 或 `settings` 这样的系统表包含一个 `default` 值列,这非常方便。现在也在 `merge_tree_settings` 和 `replicated_merge_tree_settings` 中添加了该列。[#76942](https://github.com/ClickHouse/ClickHouse/pull/76942)([Diego Nieto](https://github.com/lesandie))。 -* 新增了 `ProfileEvents::QueryPreempted`,其逻辑与 `CurrentMetrics::QueryPreempted` 类似。[#77015](https://github.com/ClickHouse/ClickHouse/pull/77015) ([VicoWu](https://github.com/VicoWu))。 -* 之前,Replicated 数据库可能会将查询中指定的凭证打印到日志中。该问题已修复,相关 issue 已关闭:[#77123](https://github.com/ClickHouse/ClickHouse/issues/77123)。[#77133](https://github.com/ClickHouse/ClickHouse/pull/77133)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 -* 允许对 `plain_rewritable` 磁盘执行 ALTER TABLE DROP PARTITION。 [#77138](https://github.com/ClickHouse/ClickHouse/pull/77138) ([Julia Kartseva](https://github.com/jkartseva)). -* 备份/恢复设置 `allow_s3_native_copy` 现在支持三个取值:- `False` - 不使用 S3 原生拷贝;- `True`(旧默认值)- ClickHouse 将首先尝试使用 S3 原生拷贝,如果失败则回退到读写方式;- `'auto'`(新默认值)- ClickHouse 将首先比较源端和目标端的凭证。如果相同,ClickHouse 将尝试使用 S3 原生拷贝,然后可能回退到读写方式。如果不同,ClickHouse 将直接使用读写方式。[#77401](https://github.com/ClickHouse/ClickHouse/pull/77401) ([Vitaly Baranov](https://github.com/vitlibar))。 -* 在 DeltaLake 表引擎的 delta kernel 中增加对 AWS 会话令牌和环境变量凭证的支持。 [#77661](https://github.com/ClickHouse/ClickHouse/pull/77661) ([Kseniia Sumarokova](https://github.com/kssenii)). - -#### 缺陷修复(官方稳定版中用户可见的异常行为) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* 修复在处理异步分布式 INSERT 的待处理批次时会卡住的问题(例如由于 `No such file or directory`)。 [#72939](https://github.com/ClickHouse/ClickHouse/pull/72939) ([Azat Khuzhin](https://github.com/azat)). -* 通过在索引分析期间对隐式的 Date 到 DateTime 转换强制采用饱和策略,改进了日期时间转换。这解决了由于日期时间范围限制而可能导致的索引分析不准确问题。修复了 [#73307](https://github.com/ClickHouse/ClickHouse/issues/73307)。同时还修复了在 `date_time_overflow_behavior = 'ignore'`(默认值)时显式调用 `toDateTime` 的转换行为。[#73326](https://github.com/ClickHouse/ClickHouse/pull/73326)([Amos Bird](https://github.com/amosbird))。 -* 修复各种由于 UUID 与表名之间竞态条件导致的错误(例如,它将修复 `RENAME` 与 `RESTART REPLICA` 之间的竞态问题;在并发执行 `RENAME` 与 `SYSTEM RESTART REPLICA` 的情况下,可能最终会重启错误的副本,和/或使其中一个表停留在 `Table X is being restarted` 状态)。 [#76308](https://github.com/ClickHouse/ClickHouse/pull/76308) ([Azat Khuzhin](https://github.com/azat)). -* 修复在启用 async insert 并执行 insert into ... from file ... 且块大小不一致时的数据丢失问题:当第一个块大小 < async_max_size 而第二个块 > async_max_size 时,第二个块不会被插入,其数据会滞留在 `squashing` 中。 [#76343](https://github.com/ClickHouse/ClickHouse/pull/76343) ([Han Fei](https://github.com/hanfei1991)). -* 将 `system.data_skipping_indices` 中的字段 'marks' 重命名为 'marks_bytes'。 [#76374](https://github.com/ClickHouse/ClickHouse/pull/76374) ([Robert Schulze](https://github.com/rschu1ze))。 -* 修复动态文件系统缓存调整大小时在淘汰过程中处理意外错误的问题。 [#76466](https://github.com/ClickHouse/ClickHouse/pull/76466) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 修复了并行哈希中 `used_flag` 的初始化问题,这可能会导致服务器崩溃。[#76580](https://github.com/ClickHouse/ClickHouse/pull/76580) ([Nikita Taranov](https://github.com/nickitat)). -* 修复在投影中调用 `defaultProfiles` 函数时的逻辑错误。[#76627](https://github.com/ClickHouse/ClickHouse/pull/76627) ([pufit](https://github.com/pufit))。 -* 在 Web UI 中不再在浏览器中请求交互式基本身份验证。修复了 [#76319](https://github.com/ClickHouse/ClickHouse/issues/76319)。[#76637](https://github.com/ClickHouse/ClickHouse/pull/76637)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 修复从分布式表中查询布尔字面量时抛出的 THERE_IS_NO_COLUMN 异常。[#76656](https://github.com/ClickHouse/ClickHouse/pull/76656) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* 现在以更合理的方式确定表目录中的子路径。[#76681](https://github.com/ClickHouse/ClickHouse/pull/76681) ([Daniil Ivanik](https://github.com/divanik))。 -* 修复在对主键中包含子列的表执行 `ALTER` 后出现的错误 `Not found column in block`。在 [https://github.com/ClickHouse/ClickHouse/pull/72644](https://github.com/ClickHouse/ClickHouse/pull/72644) 之后,还需要 [https://github.com/ClickHouse/ClickHouse/pull/74403](https://github.com/ClickHouse/ClickHouse/pull/74403)。[#76686](https://github.com/ClickHouse/ClickHouse/pull/76686)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* 为 null 短路添加性能测试并修复相关错误。 [#76708](https://github.com/ClickHouse/ClickHouse/pull/76708) ([李扬](https://github.com/taiyang-li)). -* 在对输出写缓冲区进行最终处理之前先刷新它们。修复在某些输出格式最终处理阶段生成的 `LOGICAL_ERROR`,例如 `JSONEachRowWithProgressRowOutputFormat`。 [#76726](https://github.com/ClickHouse/ClickHouse/pull/76726) ([Antonio Andelic](https://github.com/antonio2368)). -* 增加了对 MongoDB 二进制 UUID 的支持([#74452](https://github.com/ClickHouse/ClickHouse/issues/74452))——修复了在使用表函数时对 MongoDB 的 WHERE 条件下推([#72210](https://github.com/ClickHouse/ClickHouse/issues/72210))——修改了 MongoDB - ClickHouse 类型映射,使 MongoDB 的二进制 UUID 只能被解析为 ClickHouse 的 UUID,从而避免今后的歧义和意外情况。——修复了 OID 映射,同时保留向后兼容性。[#76762](https://github.com/ClickHouse/ClickHouse/pull/76762)([Kirill Nikiforov](https://github.com/allmazz))。 -* 修复 JSON 子列并行前缀反序列化过程中的异常处理。[#76809](https://github.com/ClickHouse/ClickHouse/pull/76809) ([Pavel Kruglov](https://github.com/Avogar))。 -* 修复 `lgamma` 函数针对负整数的行为。[#76840](https://github.com/ClickHouse/ClickHouse/pull/76840) ([Ilya Kataev](https://github.com/IlyaKataev)). -* 修复对显式定义主键的反向键分析。类似于 [#76654](https://github.com/ClickHouse/ClickHouse/issues/76654)。[#76846](https://github.com/ClickHouse/ClickHouse/pull/76846)([Amos Bird](https://github.com/amosbird))。 -* 修复 JSON 格式中 Bool 布尔值的格式化输出。[#76905](https://github.com/ClickHouse/ClickHouse/pull/76905) ([Pavel Kruglov](https://github.com/Avogar)). -* 修复在异步插入出错时,由于对 JSON 列回滚处理不当而可能导致的崩溃。[#76908](https://github.com/ClickHouse/ClickHouse/pull/76908) ([Pavel Kruglov](https://github.com/Avogar)). -* 之前,`multiIf` 在计划阶段和主执行阶段可能返回不同类型的列。这会导致代码在 C++ 层面上产生未定义行为。[#76914](https://github.com/ClickHouse/ClickHouse/pull/76914)([Nikita Taranov](https://github.com/nickitat))。 -* 修复了 MergeTree 中常量 Nullable 键的错误序列化。这修复了 [#76939](https://github.com/ClickHouse/ClickHouse/issues/76939)。[#76985](https://github.com/ClickHouse/ClickHouse/pull/76985)([Amos Bird](https://github.com/amosbird))。 -* 修复 `BFloat16` 值的排序问题。已关闭 [#75487](https://github.com/ClickHouse/ClickHouse/issues/75487)。已关闭 [#75669](https://github.com/ClickHouse/ClickHouse/issues/75669)。[#77000](https://github.com/ClickHouse/ClickHouse/pull/77000)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 通过在 part 一致性检查中添加跳过临时子列的检查,修复了 JSON 中包含 Variant 子列时的错误。[#72187](https://github.com/ClickHouse/ClickHouse/issues/72187)。[#77034](https://github.com/ClickHouse/ClickHouse/pull/77034)([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 -* 修复在 `Values` 格式中解析模板时,由类型不匹配导致的崩溃。 [#77071](https://github.com/ClickHouse/ClickHouse/pull/77071) ([Pavel Kruglov](https://github.com/Avogar)). -* 不再允许创建主键中包含子列的 EmbeddedRocksDB 表。此前可以创建这样的表,但 `SELECT` 查询会失败。[#77074](https://github.com/ClickHouse/ClickHouse/pull/77074)([Pavel Kruglov](https://github.com/Avogar))。 -* 修复分布式查询中的非法比较问题,因为在将谓词下推到远程端时未正确考虑字面量类型。[#77093](https://github.com/ClickHouse/ClickHouse/pull/77093)([Duc Canh Le](https://github.com/canhld94))。 -* 修复在创建 Kafka 表时由于异常导致的崩溃问题。 [#77121](https://github.com/ClickHouse/ClickHouse/pull/77121) ([Pavel Kruglov](https://github.com/Avogar)). -* 为 Kafka 和 RabbitMQ 引擎增加对 JSON 和子列的支持。 [#77122](https://github.com/ClickHouse/ClickHouse/pull/77122) ([Pavel Kruglov](https://github.com/Avogar)). -* 修复在 macOS 上的异常栈展开逻辑。 [#77126](https://github.com/ClickHouse/ClickHouse/pull/77126) ([Eduard Karacharov](https://github.com/korowa)). -* 修复 getSubcolumn 函数中读取 `null` 子列时的问题。[#77163](https://github.com/ClickHouse/ClickHouse/pull/77163) ([Pavel Kruglov](https://github.com/Avogar)). -* 修复在与 `Array` 类型和不受支持函数一起使用时的 Bloom 过滤器索引问题。 [#77271](https://github.com/ClickHouse/ClickHouse/pull/77271) ([Pavel Kruglov](https://github.com/Avogar))。 -* 我们应当仅在初始 CREATE 查询时检查表数量限制。[#77274](https://github.com/ClickHouse/ClickHouse/pull/77274) ([Nikolay Degterinsky](https://github.com/evillique))。 -* 并非 Bug:`SELECT toBFloat16(-0.0) == toBFloat16(0.0)` 现在会正确返回 `true`(此前为 `false`)。这使其行为与 `Float32` 和 `Float64` 保持一致。[#77290](https://github.com/ClickHouse/ClickHouse/pull/77290)([Shankar Iyer](https://github.com/shankar-iyer))。 -* 修复对未初始化的 `key_index` 变量可能出现的不正确引用,该问题可能会在调试构建中导致崩溃(在发布构建中,这个未初始化引用不会造成问题,因为后续代码很可能会抛出错误)。### 面向用户可见变更的文档条目。[#77305](https://github.com/ClickHouse/ClickHouse/pull/77305) ([wxybear](https://github.com/wxybear))。 -* 修复 Bool 类型分区名称的问题。该问题是在 [https://github.com/ClickHouse/ClickHouse/pull/74533](https://github.com/ClickHouse/ClickHouse/pull/74533) 中引入的。 [#77319](https://github.com/ClickHouse/ClickHouse/pull/77319) ([Pavel Kruglov](https://github.com/Avogar)). -* 修复包含可为空元素的 Tuple 与字符串之间的比较问题。举例来说,在此变更之前,Tuple `(1, null)` 与 String `'(1,null)'` 之间的比较会导致错误。另一个示例是比较 Tuple `(1, a)`(其中 `a` 是 Nullable 列)和 String `'(1, 2)'`。此变更解决了这些问题。[#77323](https://github.com/ClickHouse/ClickHouse/pull/77323)([Alexey Katsman](https://github.com/alexkats))。 -* 修复 `ObjectStorageQueueSource` 中的崩溃问题。该问题是由 [https://github.com/ClickHouse/ClickHouse/pull/76358](https://github.com/ClickHouse/ClickHouse/pull/76358) 引入的。[#77325](https://github.com/ClickHouse/ClickHouse/pull/77325)([Pavel Kruglov](https://github.com/Avogar))。 -* 修复与 `input` 一起使用时的 `async_insert`。 [#77340](https://github.com/ClickHouse/ClickHouse/pull/77340) ([Azat Khuzhin](https://github.com/azat)). -* 修复:当排序列被规划器移除时,`WITH FILL` 可能会因 NOT_FOUND_COLUMN_IN_BLOCK 而失败。修复了一个类似的问题,该问题与对 INTERPOLATE 表达式计算出的 DAG 不一致有关。 [#77343](https://github.com/ClickHouse/ClickHouse/pull/77343) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* 修复了在为无效 AST 节点设置别名时出现的多个 LOGICAL_ERROR。[#77445](https://github.com/ClickHouse/ClickHouse/pull/77445) ([Raúl Marín](https://github.com/Algunenano))。 -* 在 filesystem cache 的实现中修复了文件段写入过程中的错误处理。 [#77471](https://github.com/ClickHouse/ClickHouse/pull/77471) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 使 DatabaseIceberg 使用目录提供的正确元数据文件。修复 [#75187](https://github.com/ClickHouse/ClickHouse/issues/75187)。[#77486](https://github.com/ClickHouse/ClickHouse/pull/77486)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 查询缓存现在假定 UDF 为非确定性函数。因此,包含 UDF 的查询结果将不再被缓存。此前,用户可以定义非确定性的 UDF,其结果会被错误地缓存(问题 [#77553](https://github.com/ClickHouse/ClickHouse/issues/77553))。[#77633](https://github.com/ClickHouse/ClickHouse/pull/77633)([Jimmy Aguilar Mena](https://github.com/Ergus))。 -* 修复 `system.filesystem_cache_log` 仅在设置 `enable_filesystem_cache_log` 时才生效的问题。[#77650](https://github.com/ClickHouse/ClickHouse/pull/77650) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 修复在投影中调用 `defaultRoles` 函数时的逻辑错误。作为对 [#76627](https://github.com/ClickHouse/ClickHouse/issues/76627) 的后续修复。[#77667](https://github.com/ClickHouse/ClickHouse/pull/77667)([pufit](https://github.com/pufit))。 -* 现在不再允许将类型为 `Nullable` 的值作为函数 `arrayResize` 的第二个参数。此前,当第二个参数为 `Nullable` 时,可能会出现从报错到结果错误在内的各种问题。(issue [#48398](https://github.com/ClickHouse/ClickHouse/issues/48398))。[#77724](https://github.com/ClickHouse/ClickHouse/pull/77724)([Manish Gill](https://github.com/mgill25))。 -* 即使在操作不会产生任何要写入的数据块时,也要定期检查合并和变更是否被取消。[#77766](https://github.com/ClickHouse/ClickHouse/pull/77766) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). - -#### 构建/测试/打包改进 {#buildtestingpackaging-improvement} - -* 将 `clickhouse-odbc-bridge` 和 `clickhouse-library-bridge` 移动到独立的代码仓库:https://github.com/ClickHouse/odbc-bridge/。[#76225](https://github.com/ClickHouse/ClickHouse/pull/76225) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 修复 Rust 交叉编译问题,并允许完全禁用 Rust。[#76921](https://github.com/ClickHouse/ClickHouse/pull/76921) ([Raúl Marín](https://github.com/Algunenano))。 - -### ClickHouse 25.2 版本发布,2025-02-27 {#252} - -#### 向后不兼容的变更 {#backward-incompatible-change} - -* 默认完全启用 `async_load_databases`(即使对于那些没有升级 `config.xml` 的安装)。[#74772](https://github.com/ClickHouse/ClickHouse/pull/74772)([Azat Khuzhin](https://github.com/azat))。 -* 新增 `JSONCompactEachRowWithProgress` 和 `JSONCompactStringsEachRowWithProgress` 格式,为 [#69989](https://github.com/ClickHouse/ClickHouse/issues/69989) 的延续。`JSONCompactWithNames` 和 `JSONCompactWithNamesAndTypes` 不再输出 "totals" —— 显然这是实现中的一个错误。[#75037](https://github.com/ClickHouse/ClickHouse/pull/75037)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 将 `format_alter_operations_with_parentheses` 的默认值改为 true,以消除 ALTER 命令列表的歧义(见 https://github.com/ClickHouse/ClickHouse/pull/59532)。这会导致与 24.3 之前版本集群的复制失败。如果你正在升级使用旧版本的集群,请在服务器配置中关闭该设置,或者先升级到 24.3。[#75302](https://github.com/ClickHouse/ClickHouse/pull/75302)([Raúl Marín](https://github.com/Algunenano))。 -* 移除使用正则表达式过滤日志消息的功能。该实现引入了数据竞争,因此必须移除。[#75577](https://github.com/ClickHouse/ClickHouse/pull/75577)([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 -* 设置 `min_chunk_bytes_for_parallel_parsing` 不再允许为零。修复了:[#71110](https://github.com/ClickHouse/ClickHouse/issues/71110)。[#75239](https://github.com/ClickHouse/ClickHouse/pull/75239)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 -* 校验缓存配置中的设置。此前,配置中不存在的设置项会被忽略;现在会抛出错误,需要将其移除。[#75452](https://github.com/ClickHouse/ClickHouse/pull/75452)([Kseniia Sumarokova](https://github.com/kssenii))。 - -#### 新功能 {#new-feature} - -* 支持 `Nullable(JSON)` 类型。 [#73556](https://github.com/ClickHouse/ClickHouse/pull/73556) ([Pavel Kruglov](https://github.com/Avogar))。 -* 在 DEFAULT 和 MATERIALIZED 表达式中支持子列。 [#74403](https://github.com/ClickHouse/ClickHouse/pull/74403) ([Pavel Kruglov](https://github.com/Avogar))。 -* 支持通过设置 `output_format_parquet_write_bloom_filter`(默认启用)写入 Parquet 布隆过滤器。 [#71681](https://github.com/ClickHouse/ClickHouse/pull/71681) ([Michael Kolupaev](https://github.com/al13n321))。 -* Web UI 现在具有交互式数据库导航功能。 [#75777](https://github.com/ClickHouse/ClickHouse/pull/75777) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 允许在存储策略中组合只读和读写磁盘(作为多个卷或多个磁盘)。这允许从整个卷读取数据,而插入操作将优先选择可写磁盘(即 Copy-on-Write 存储策略)。 [#75862](https://github.com/ClickHouse/ClickHouse/pull/75862) ([Azat Khuzhin](https://github.com/azat))。 -* 新增 `DatabaseBackup` 数据库引擎,可从备份中即时挂载表或数据库。 [#75725](https://github.com/ClickHouse/ClickHouse/pull/75725) ([Maksim Kita](https://github.com/kitaisreal))。 -* 在 Postgres 线协议中支持 prepared statements。 [#75035](https://github.com/ClickHouse/ClickHouse/pull/75035) ([scanhex12](https://github.com/scanhex12))。 -* 新增在没有数据库层的情况下 ATTACH 表的功能,这对于位于 Web、S3 等外部虚拟文件系统上的 MergeTree 表非常有用。 [#75788](https://github.com/ClickHouse/ClickHouse/pull/75788) ([Azat Khuzhin](https://github.com/azat))。 -* 新增字符串比较函数 `compareSubstrings`,用于比较两个字符串的部分内容。示例:`SELECT compareSubstrings('Saxony', 'Anglo-Saxon', 0, 6, 5) AS result` 的含义是“从第一个字符串的偏移量 0 和第二个字符串的偏移量 5 开始,按字典序比较字符串 `Saxon` 和 `Anglo-Saxon` 的 6 个字节”。 [#74070](https://github.com/ClickHouse/ClickHouse/pull/74070) ([lgbo](https://github.com/lgbo-ustc))。 -* 新增函数 `initialQueryStartTime`。它返回当前查询的开始时间。在分布式查询中,该值在所有分片上都是相同的。 [#75087](https://github.com/ClickHouse/ClickHouse/pull/75087) ([Roman Lomonosov](https://github.com/lomik))。 -* 为 MySQL 增加通过 named collections 进行 SSL 认证的支持。关闭 [#59111](https://github.com/ClickHouse/ClickHouse/issues/59111)。 [#59452](https://github.com/ClickHouse/ClickHouse/pull/59452) ([Nikolay Degterinsky](https://github.com/evillique))。 - -#### 实验性功能 {#experimental-features} - -* 新增了设置项 `enable_adaptive_memory_spill_scheduler`,允许同一查询中的多个 Grace JOIN 监控其合计内存占用,并自适应地触发将数据溢写到外部存储,以防止出现 MEMORY_LIMIT_EXCEEDED。 [#72728](https://github.com/ClickHouse/ClickHouse/pull/72728) ([lgbo](https://github.com/lgbo-ustc)). -* 使新的实验性 `Kafka` 表引擎完全遵循 Keeper 特性标志。 [#76004](https://github.com/ClickHouse/ClickHouse/pull/76004) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* 恢复 (Intel) QPL 编解码器,该编解码器曾因授权问题在 v24.10 中被移除。 [#76021](https://github.com/ClickHouse/ClickHouse/pull/76021) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* 在与 HDFS 的集成中,为配置项 `dfs.client.use.datanode.hostname` 新增了支持。 [#74635](https://github.com/ClickHouse/ClickHouse/pull/74635) ([Mikhail Tiukavkin](https://github.com/freshertm)). - -#### 性能提升 {#performance-improvement} - -* 改进了从 S3 读取 Wide 部分中整个 JSON 列的性能。这是通过为子列前缀反序列化添加预取、缓存已反序列化的前缀,以及对子列前缀进行并行反序列化来实现的。对于类似 `SELECT data FROM table` 的查询,从 S3 读取 JSON 列的速度提升约 4 倍,对于类似 `SELECT data FROM table LIMIT 10` 的查询提升约 10 倍。[#74827](https://github.com/ClickHouse/ClickHouse/pull/74827) ([Pavel Kruglov](https://github.com/Avogar)). -* 修复了在 `max_rows_in_join = max_bytes_in_join = 0` 时 `parallel_hash` 中不必要的竞争。[#75155](https://github.com/ClickHouse/ClickHouse/pull/75155) ([Nikita Taranov](https://github.com/nickitat)). -* 修复了在优化器交换 JOIN 两侧时 `ConcurrentHashJoin` 中的重复预分配问题。[#75149](https://github.com/ClickHouse/ClickHouse/pull/75149) ([Nikita Taranov](https://github.com/nickitat)). -* 在某些 JOIN 场景下进行了轻微优化:预先计算输出行数并为其预留内存。[#75376](https://github.com/ClickHouse/ClickHouse/pull/75376) ([Alexander Gololobov](https://github.com/davenger)). -* 对于类似 `WHERE a < b AND b < c AND c < 5` 的查询,可以推导出新的比较条件(`a < 5 AND b < 5`),以获得更好的过滤效果。[#73164](https://github.com/ClickHouse/ClickHouse/pull/73164) ([Shichao Jin](https://github.com/jsc0218)). -* Keeper 改进:在提交到内存存储时禁用摘要计算以提升性能。可以通过配置 `keeper_server.digest_enabled_on_commit` 启用。预处理请求时仍会计算摘要。[#75490](https://github.com/ClickHouse/ClickHouse/pull/75490) ([Antonio Andelic](https://github.com/antonio2368)). -* 在可能的情况下,将过滤表达式从 JOIN 的 ON 子句下推。[#75536](https://github.com/ClickHouse/ClickHouse/pull/75536) ([Vladimir Cherkasov](https://github.com/vdimir)). -* 在 MergeTree 中延迟计算列和索引大小。[#75938](https://github.com/ClickHouse/ClickHouse/pull/75938) ([Pavel Kruglov](https://github.com/Avogar)). -* 在 `MATERIALIZE TTL` 中重新使 `ttl_only_drop_parts` 生效;仅读取重新计算 TTL 所需的列,并通过将数据部分替换为空部分来删除它们。[#72751](https://github.com/ClickHouse/ClickHouse/pull/72751) ([Andrey Zvonov](https://github.com/zvonand)). -* 减小 plain_rewritable 元数据文件的写缓冲区大小。[#75758](https://github.com/ClickHouse/ClickHouse/pull/75758) ([Julia Kartseva](https://github.com/jkartseva)). -* 降低某些窗口函数的内存使用。[#65647](https://github.com/ClickHouse/ClickHouse/pull/65647) ([lgbo](https://github.com/lgbo-ustc)). -* 同时评估 Parquet Bloom 过滤器和 min/max 索引。这对于正确支持 `x = 3 or x > 5`(其中 data = [1, 2, 4, 5])是必要的。[#71383](https://github.com/ClickHouse/ClickHouse/pull/71383) ([Arthur Passos](https://github.com/arthurpassos)). -* 传递给 `Executable` 存储的查询不再局限于单线程执行。[#70084](https://github.com/ClickHouse/ClickHouse/pull/70084) ([yawnt](https://github.com/yawnt)). -* 在 ALTER TABLE FETCH PARTITION 中并行获取数据部分(线程池大小由 `max_fetch_partition_thread_pool_size` 控制)。[#74978](https://github.com/ClickHouse/ClickHouse/pull/74978) ([Azat Khuzhin](https://github.com/azat)). -* 允许将使用 `indexHint` 函数的谓词下推到 `PREWHERE`。[#74987](https://github.com/ClickHouse/ClickHouse/pull/74987) ([Anton Popov](https://github.com/CurtizJ)). - -#### 改进 {#improvement} - -* 修复了 `LowCardinality` 列内存占用大小的计算。[#74688](https://github.com/ClickHouse/ClickHouse/pull/74688) ([Nikita Taranov](https://github.com/nickitat)). -* `processors_profile_log` 表现在有默认配置,TTL 为 30 天。[#66139](https://github.com/ClickHouse/ClickHouse/pull/66139)([Ilya Yatsishin](https://github.com/qoega))。 -* 允许在集群配置中为分片指定名称。 [#72276](https://github.com/ClickHouse/ClickHouse/pull/72276) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). -* 将 Prometheus 远程写入响应的成功状态码从 200/OK 更改为 204/No Content。[#74170](https://github.com/ClickHouse/ClickHouse/pull/74170)([Michael Dempsey](https://github.com/bluestealth))。 -* 新增在无需重启服务器的情况下,动态重新加载 `max_remote_read_network_bandwidth_for_serve` 和 `max_remote_write_network_bandwidth_for_server` 的能力。 [#74206](https://github.com/ClickHouse/ClickHouse/pull/74206) ([Kai Zhu](https://github.com/nauu)). -* 允许在执行备份时使用 blob 路径计算校验和。 [#74729](https://github.com/ClickHouse/ClickHouse/pull/74729) ([Vitaly Baranov](https://github.com/vitlibar)). -* 在 `system.query_cache` 中新增了查询 ID 列(关闭 [#68205](https://github.com/ClickHouse/ClickHouse/issues/68205))。[#74982](https://github.com/ClickHouse/ClickHouse/pull/74982)([NamHoaiNguyen](https://github.com/NamHoaiNguyen))。 -* 现在支持使用 `KILL QUERY` 或因超时(`max_execution_time`)自动取消 `ALTER TABLE ... FREEZE ...` 查询。[#75016](https://github.com/ClickHouse/ClickHouse/pull/75016) ([Kirill](https://github.com/kirillgarbar))。 -* 添加对 `groupUniqArrayArrayMap` 作为 `SimpleAggregateFunction` 的支持。 [#75034](https://github.com/ClickHouse/ClickHouse/pull/75034) ([Miel Donkers](https://github.com/mdonkers)). -* 在 `Iceberg` 数据库引擎中隐藏 catalog 凭据配置。修复 [#74559](https://github.com/ClickHouse/ClickHouse/issues/74559)。[#75080](https://github.com/ClickHouse/ClickHouse/pull/75080)([Kseniia Sumarokova](https://github.com/kssenii))。 -* `intExp2` / `intExp10`:对原本未定义的行为作出规定:对于过小的参数返回 0,对于过大的参数返回 `18446744073709551615`,如果为 `nan` 则抛出异常。[#75312](https://github.com/ClickHouse/ClickHouse/pull/75312)([Vitaly Baranov](https://github.com/vitlibar))。 -* 在 `DatabaseIceberg` 中通过 catalog 配置原生支持 `s3.endpoint`。关闭了 [#74558](https://github.com/ClickHouse/ClickHouse/issues/74558)。[#75375](https://github.com/ClickHouse/ClickHouse/pull/75375)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 在执行 `SYSTEM DROP REPLICA` 时,如果用户权限不足,则不再静默失败。[#75377](https://github.com/ClickHouse/ClickHouse/pull/75377) ([Bharat Nallan](https://github.com/bharatnc))。 -* 添加一个 ProfileEvent,用于统计各系统日志刷写失败的次数。 [#75466](https://github.com/ClickHouse/ClickHouse/pull/75466) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 添加用于解密和解压的检查和额外日志记录。[#75471](https://github.com/ClickHouse/ClickHouse/pull/75471) ([Vitaly Baranov](https://github.com/vitlibar))。 -* 在 `parseTimeDelta` 函数中新增了对微符号(U+00B5)的支持。现在微符号(U+00B5)和希腊字母 μ(U+03BC)都会被识别为微秒的有效表示形式,从而使 ClickHouse 的行为与 Go 的实现保持一致([参见 time.go](https://github.com/golang/go/blob/ad7b46ee4ac1cee5095d64b01e8cf7fcda8bee5e/src/time/time.go#L983C19-L983C20) 和 [time/format.go](https://github.com/golang/go/blob/ad7b46ee4ac1cee5095d64b01e8cf7fcda8bee5e/src/time/format.go#L1608-L1609))。[#75472](https://github.com/ClickHouse/ClickHouse/pull/75472)([Vitaly Orlov](https://github.com/orloffv))。 -* 将服务器设置(`send_settings_to_client`)替换为客户端设置(`apply_settings_from_server`),用于控制客户端代码(例如解析 INSERT 数据和格式化查询输出)是否应使用来自服务器 `users.xml` 和用户配置中的设置。否则,将只使用来自客户端命令行、会话和查询本身的设置。注意,这仅适用于原生客户端(不适用于例如 HTTP),并且不适用于大部分查询处理(这些处理发生在服务器端)。[#75478](https://github.com/ClickHouse/ClickHouse/pull/75478)([Michael Kolupaev](https://github.com/al13n321))。 -* 改进语法错误的错误消息。此前,如果查询过大,并且超出长度限制的标记是一个非常大的字符串字面量,那么描述错误原因的消息会被夹在该超长标记的两个示例之间而丢失。修复在错误消息中包含带有 UTF-8 字符的查询时被错误截断的问题。修复查询片段被过度加引号的问题。修复了 [#75473](https://github.com/ClickHouse/ClickHouse/issues/75473)。[#75561](https://github.com/ClickHouse/ClickHouse/pull/75561)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 在 `S3(Azure)Queue` 存储中添加 ProfileEvents。 [#75618](https://github.com/ClickHouse/ClickHouse/pull/75618) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 出于兼容性考虑,禁用从服务器向客户端发送设置(`send_settings_to_client=false`)(该功能稍后将作为客户端设置重新实现,以提升易用性)。 [#75648](https://github.com/ClickHouse/ClickHouse/pull/75648) ([Michael Kolupaev](https://github.com/al13n321)). -* 新增配置项 `memory_worker_correct_memory_tracker`,用于启用利用后台线程定期读取的不同来源信息来校正内部内存跟踪器的功能。 [#75714](https://github.com/ClickHouse/ClickHouse/pull/75714) ([Antonio Andelic](https://github.com/antonio2368))。 -* 将列 `normalized_query_hash` 添加到 `system.processes` 中。注意:虽然可以使用 `normalizedQueryHash` 函数在执行时轻松计算该值,但仍需要该列以便为后续更改做准备。[#75756](https://github.com/ClickHouse/ClickHouse/pull/75756) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 查询 `system.tables` 时,即使存在一个建立在已被删除的数据库上的 `Merge` 表,也不会抛出异常。移除 `Hive` 表中的 `getTotalRows` 方法,因为我们不允许它执行复杂操作。[#75772](https://github.com/ClickHouse/ClickHouse/pull/75772) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 以微秒精度存储备份的 start_time/end_time。 [#75929](https://github.com/ClickHouse/ClickHouse/pull/75929) ([Aleksandr Musorin](https://github.com/AVMusorin))。 -* 添加 `MemoryTrackingUncorrected` 指标,用于显示内部全局内存跟踪器的取值(其值未经过 RSS 校正)。 [#75935](https://github.com/ClickHouse/ClickHouse/pull/75935) ([Antonio Andelic](https://github.com/antonio2368))。 -* 允许在 `PostgreSQL` 或 `MySQL` 表函数中解析 `localhost:1234/handle` 之类的端点。此更改修复了在 [https://github.com/ClickHouse/ClickHouse/pull/52503](https://github.com/ClickHouse/ClickHouse/pull/52503) 中引入的回归问题。[#75944](https://github.com/ClickHouse/ClickHouse/pull/75944)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 -* 新增了一个服务器设置 `throw_on_unknown_workload`,用于选择当查询中设置了 `workload` 但其值未知时的处理行为:要么允许无限制访问(默认),要么抛出 `RESOURCE_ACCESS_DENIED` 错误。此设置可用于强制所有查询都必须使用 workload 调度。[#75999](https://github.com/ClickHouse/ClickHouse/pull/75999) ([Sergei Trifonov](https://github.com/serxa))。 -* 如果没有必要,不要在 `ARRAY JOIN` 中将子列重写为 `getSubcolumn`。 [#76018](https://github.com/ClickHouse/ClickHouse/pull/76018) ([Pavel Kruglov](https://github.com/Avogar))。 -* 在加载表时遇到协调错误会进行重试。[#76020](https://github.com/ClickHouse/ClickHouse/pull/76020) ([Alexander Tokmakov](https://github.com/tavplubix)). -* `SYSTEM FLUSH LOGS` 现在支持刷新单条日志。[#76132](https://github.com/ClickHouse/ClickHouse/pull/76132) ([Raúl Marín](https://github.com/Algunenano)). -* 改进了 `/binary` 服务器页面。使用 Hilbert 曲线替代 Morton 曲线。在方形区域中显示 512 MB 的地址空间,使方形被填充得更充分(在之前的版本中,地址只填充了方形的一半)。根据更接近的库名而非函数名为地址着色。允许在区域外稍微多滚动一些。[#76192](https://github.com/ClickHouse/ClickHouse/pull/76192) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 在出现 TOO_MANY_SIMULTANEOUS_QUERIES 错误时重试 ON CLUSTER 查询。 [#76352](https://github.com/ClickHouse/ClickHouse/pull/76352) ([Patrick Galbraith](https://github.com/CaptTofu)). -* 添加异步指标 `CPUOverload`,用于计算服务器的相对 CPU 资源不足。[#76404](https://github.com/ClickHouse/ClickHouse/pull/76404)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 将 `output_format_pretty_max_rows` 的默认值从 10000 修改为 1000。我认为这样在使用上更方便。[#76407](https://github.com/ClickHouse/ClickHouse/pull/76407) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 - -#### 缺陷修复(官方稳定版中用户可见的异常行为) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* 在查询解析阶段,如果出现异常,则使用自定义格式对其进行格式化。此前版本中,异常是采用默认格式进行格式化,而不是使用查询中指定的格式。修复了 [#55422](https://github.com/ClickHouse/ClickHouse/issues/55422)。[#74994](https://github.com/ClickHouse/ClickHouse/pull/74994)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 修复 SQLite 的类型映射(整数类型映射为 `int64`,浮点类型映射为 `float64`)。 [#73853](https://github.com/ClickHouse/ClickHouse/pull/73853) ([Joanna Hulboj](https://github.com/jh0x)). -* 修复来自父作用域的标识符解析。允许在 `WITH` 子句中为表达式使用别名。修复 [#58994](https://github.com/ClickHouse/ClickHouse/issues/58994)。修复 [#62946](https://github.com/ClickHouse/ClickHouse/issues/62946)。修复 [#63239](https://github.com/ClickHouse/ClickHouse/issues/63239)。修复 [#65233](https://github.com/ClickHouse/ClickHouse/issues/65233)。修复 [#71659](https://github.com/ClickHouse/ClickHouse/issues/71659)。修复 [#71828](https://github.com/ClickHouse/ClickHouse/issues/71828)。修复 [#68749](https://github.com/ClickHouse/ClickHouse/issues/68749)。[#66143](https://github.com/ClickHouse/ClickHouse/pull/66143)([Dmitry Novik](https://github.com/novikd))。 -* 修复 `negate` 函数的单调性问题。在早期版本中,当 `x` 为主键时,查询 `select * from a where -x = -42;` 可能会返回错误结果。 [#71440](https://github.com/ClickHouse/ClickHouse/pull/71440) ([Michael Kolupaev](https://github.com/al13n321)). -* 修正 `arrayIntersect` 对空元组的处理。此更改修复了 [#72578](https://github.com/ClickHouse/ClickHouse/issues/72578)。[#72581](https://github.com/ClickHouse/ClickHouse/pull/72581)([Amos Bird](https://github.com/amosbird))。 -* 修复读取 JSON 子对象子列时使用错误前缀的问题。[#73182](https://github.com/ClickHouse/ClickHouse/pull/73182)([Pavel Kruglov](https://github.com/Avogar))。 -* 在客户端-服务器通信中正确传递 Native 格式设置。[#73924](https://github.com/ClickHouse/ClickHouse/pull/73924) ([Pavel Kruglov](https://github.com/Avogar))。 -* 为某些存储引擎添加对不支持类型的检查。[#74218](https://github.com/ClickHouse/ClickHouse/pull/74218)([Pavel Kruglov](https://github.com/Avogar))。 -* 修复在 macOS 上通过 PostgreSQL 接口执行 `INSERT INTO SELECT` 查询时出现的崩溃问题(问题 [#72938](https://github.com/ClickHouse/ClickHouse/issues/72938))。[#74231](https://github.com/ClickHouse/ClickHouse/pull/74231)([Artem Yurov](https://github.com/ArtemYurov))。 -* 修复了副本数据库中未初始化的 max_log_ptr。 [#74336](https://github.com/ClickHouse/ClickHouse/pull/74336) ([Konstantin Morozov](https://github.com/k-morozov))。 -* 修复在插入 interval 时发生的崩溃(问题 [#74299](https://github.com/ClickHouse/ClickHouse/issues/74299))。[#74478](https://github.com/ClickHouse/ClickHouse/pull/74478)([NamHoaiNguyen](https://github.com/NamHoaiNguyen))。 -* 修复常量 JSON 字面量的格式化问题。此前在将查询发送到另一台服务器时,可能会导致语法错误。[#74533](https://github.com/ClickHouse/ClickHouse/pull/74533) ([Pavel Kruglov](https://github.com/Avogar))。 -* 在启用隐式投影并使用常量分区表达式时,修复了 `CREATE` 查询会失败的问题。修复了 [#74596](https://github.com/ClickHouse/ClickHouse/issues/74596)。[#74634](https://github.com/ClickHouse/ClickHouse/pull/74634)([Amos Bird](https://github.com/amosbird))。 -* 避免在 `INSERT` 因异常结束后将连接置于异常状态。[#74740](https://github.com/ClickHouse/ClickHouse/pull/74740) ([Azat Khuzhin](https://github.com/azat))。 -* 避免复用已被遗留在中间状态的连接。 [#74749](https://github.com/ClickHouse/ClickHouse/pull/74749) ([Azat Khuzhin](https://github.com/azat))。 -* 修复在解析 JSON 类型声明且类型名称不是大写时出现的崩溃问题。[#74784](https://github.com/ClickHouse/ClickHouse/pull/74784) ([Pavel Kruglov](https://github.com/Avogar)). -* Keeper:修复在连接在建立之前就被终止时出现的 `logical_error`。 [#74844](https://github.com/ClickHouse/ClickHouse/pull/74844) ([Michael Kolupaev](https://github.com/al13n321)). -* 修复了一个问题:当存在使用 `AzureBlobStorage` 的表时,服务器无法启动。现在可以在无需向 Azure 发送任何请求的情况下加载这些表。[#74880](https://github.com/ClickHouse/ClickHouse/pull/74880)([Alexey Katsman](https://github.com/alexkats))。 -* 修复 `query_log` 中在 BACKUP 和 RESTORE 操作时缺失的 `used_privileges` 和 `missing_privileges` 字段。[#74887](https://github.com/ClickHouse/ClickHouse/pull/74887)([Alexey Katsman](https://github.com/alexkats))。 -* 在 HDFS select 请求期间如果出现 SASL 错误,则刷新 HDFS 的 Kerberos 票据。 [#74930](https://github.com/ClickHouse/ClickHouse/pull/74930) ([inv2004](https://github.com/inv2004)). -* 修复 startup_scripts 中针对 Replicated 数据库的查询。[#74942](https://github.com/ClickHouse/ClickHouse/pull/74942) ([Azat Khuzhin](https://github.com/azat))。 -* 修复在 `JOIN ON` 子句中对通过类型别名定义的表达式使用空安全(null-safe)比较时出现的问题。 [#74970](https://github.com/ClickHouse/ClickHouse/pull/74970) ([Vladimir Cherkasov](https://github.com/vdimir))。 -* 在 remove 操作失败时,将 part 的状态从 deleting 恢复为 outdated。 [#74985](https://github.com/ClickHouse/ClickHouse/pull/74985) ([Sema Checherinda](https://github.com/CheSema)). -* 在之前的版本中,当存在标量子查询时,我们会在数据格式初始化期间开始写入进度信息(从处理该子查询累积而来),而这发生在写入 HTTP 头部之前。这样会导致 HTTP 头部丢失,比如 X-ClickHouse-QueryId 和 X-ClickHouse-Format,以及 Content-Type。 [#74991](https://github.com/ClickHouse/ClickHouse/pull/74991) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 修复当 `database_replicated_allow_replicated_engine_arguments=0` 时 `CREATE TABLE AS...` 查询的问题。[#75000](https://github.com/ClickHouse/ClickHouse/pull/75000) ([Bharat Nallan](https://github.com/bharatnc)). -* 修复在发生 INSERT 异常后客户端连接处于错误状态的问题。 [#75030](https://github.com/ClickHouse/ClickHouse/pull/75030) ([Azat Khuzhin](https://github.com/azat)). -* 修复 PSQL 复制中未捕获异常导致的崩溃。[#75062](https://github.com/ClickHouse/ClickHouse/pull/75062) ([Azat Khuzhin](https://github.com/azat)). -* SASL 可能会导致任何 RPC 调用失败,此修复使得在 krb5 ticket 过期时可以重试该调用。 [#75063](https://github.com/ClickHouse/ClickHouse/pull/75063) ([inv2004](https://github.com/inv2004)). -* 修复了在启用设置 `optimize_function_to_subcolumns` 时,`Array`、`Map` 和 `Nullable(..)` 列上的主键和二级索引未正确生效的问题。此前,这些列上的索引可能会被忽略。 [#75081](https://github.com/ClickHouse/ClickHouse/pull/75081) ([Anton Popov](https://github.com/CurtizJ)). -* 在创建带有内部表的物化视图时禁用 `flatten_nested`,因为无法使用这些扁平化后的列。[#75085](https://github.com/ClickHouse/ClickHouse/pull/75085)([Christoph Wurm](https://github.com/cwurm))。 -* 修复了在 `forwarded_for` 字段中对某些 IPv6 地址(例如 ::ffff:1.1.1.1)的错误解析问题,该问题会导致客户端断开连接并抛出异常。[#75133](https://github.com/ClickHouse/ClickHouse/pull/75133)([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 -* 修复针对 LowCardinality 可为空数据类型的 NULL 安全 JOIN 处理。此前,在 JOIN ON 中使用 NULL 安全比较(例如 `IS NOT DISTINCT FROM`、`<=>`、`a IS NULL AND b IS NULL OR a == b`)时,与 LowCardinality 列配合时无法正确工作。[#75143](https://github.com/ClickHouse/ClickHouse/pull/75143) ([Vladimir Cherkasov](https://github.com/vdimir))。 -* 验证在为 NumRowsCache 统计 total_number_of_rows 时未指定 key_condition。 [#75164](https://github.com/ClickHouse/ClickHouse/pull/75164) ([Daniil Ivanik](https://github.com/divanik)). -* 通过新的分析器修复含有未使用插值的查询。[#75173](https://github.com/ClickHouse/ClickHouse/pull/75173) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 -* 修复在 Insert 中使用 CTE 时出现的崩溃问题。 [#75188](https://github.com/ClickHouse/ClickHouse/pull/75188) ([Shichao Jin](https://github.com/jsc0218)). -* Keeper 修复:在回滚日志时避免向已损坏的变更日志写入数据。 [#75197](https://github.com/ClickHouse/ClickHouse/pull/75197) ([Antonio Andelic](https://github.com/antonio2368)). -* 在合适的情况下将 `BFloat16` 用作超类型。修复/关闭了以下问题:[#74404](https://github.com/ClickHouse/ClickHouse/issues/74404)。[#75236](https://github.com/ClickHouse/ClickHouse/pull/75236)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 -* 修复在启用 any_join_distinct_right_table_keys 且 JOIN 的 ON 条件中包含 OR 时,连接结果中出现的意外的默认值。[#75262](https://github.com/ClickHouse/ClickHouse/pull/75262) ([Vladimir Cherkasov](https://github.com/vdimir)). -* 对 azureblobstorage 表引擎的凭据进行脱敏处理。 [#75319](https://github.com/ClickHouse/ClickHouse/pull/75319) ([Garrett Thomas](https://github.com/garrettthomaskth)). -* 修复了 ClickHouse 可能会错误地将过滤条件下推到 PostgreSQL、MySQL 或 SQLite 等外部数据库的行为。已关闭:[#71423](https://github.com/ClickHouse/ClickHouse/issues/71423)。[#75320](https://github.com/ClickHouse/ClickHouse/pull/75320)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。 -* 修复了在以 Protobuf 格式输出的同时并行执行查询 `SYSTEM DROP FORMAT SCHEMA CACHE` 时,Protobuf schema 缓存中可能发生的崩溃。 [#75357](https://github.com/ClickHouse/ClickHouse/pull/75357) ([Pavel Kruglov](https://github.com/Avogar)). -* 修复在并行副本场景下,下推 `HAVING` 过滤条件时可能出现的逻辑错误或未初始化内存问题。 [#75363](https://github.com/ClickHouse/ClickHouse/pull/75363) ([Vladimir Cherkasov](https://github.com/vdimir)). -* 隐藏 `icebergS3`、`icebergAzure` 表函数和表引擎中的敏感信息。[#75378](https://github.com/ClickHouse/ClickHouse/pull/75378)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 当用于修剪的字符通过计算得到且为空字符串时,函数 `TRIM` 现在已能被正确处理。示例:`SELECT TRIM(LEADING concat('') FROM 'foo')`(Issue [#69922](https://github.com/ClickHouse/ClickHouse/issues/69922))。[#75399](https://github.com/ClickHouse/ClickHouse/pull/75399)([Manish Gill](https://github.com/mgill25))。 -* 修复 IOutputFormat 中的数据竞争。[#75448](https://github.com/ClickHouse/ClickHouse/pull/75448)([Pavel Kruglov](https://github.com/Avogar))。 -* 修复在对分布式表执行 JOIN 时使用 Array 类型 JSON 子列时可能出现的错误 `Elements ... and ... of Nested data structure ... (Array columns) have different array sizes`。[#75512](https://github.com/ClickHouse/ClickHouse/pull/75512) ([Pavel Kruglov](https://github.com/Avogar)). -* 通过 `CODEC(ZSTD, DoubleDelta)` 修复数据损坏问题。关闭了 [#70031](https://github.com/ClickHouse/ClickHouse/issues/70031)。[#75548](https://github.com/ClickHouse/ClickHouse/pull/75548)([Konstantin Bogdanov](https://github.com/thevar1able))。 -* 修复 `allow_feature_tier` 与 MergeTree 兼容性设置之间的交互。[#75635](https://github.com/ClickHouse/ClickHouse/pull/75635) ([Raúl Marín](https://github.com/Algunenano))。 -* 修复在重试处理文件时,system.s3queue_log 中 processed_rows 值不正确的问题。 [#75666](https://github.com/ClickHouse/ClickHouse/pull/75666) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 当物化视图向 URL 引擎写入数据且存在连接问题时,遵守 `materialized_views_ignore_errors` 设置。[#75679](https://github.com/ClickHouse/ClickHouse/pull/75679)([Christoph Wurm](https://github.com/cwurm))。 -* 修复了在对不同类型的列多次执行异步 `RENAME` 查询(`alter_sync = 0`)后,从 `MergeTree` 表读取数据时偶发崩溃的问题。 [#75693](https://github.com/ClickHouse/ClickHouse/pull/75693) ([Anton Popov](https://github.com/CurtizJ)). -* 修复某些包含 `UNION ALL` 的查询会报 `Block structure mismatch in QueryPipeline stream` 错误的问题。[#75715](https://github.com/ClickHouse/ClickHouse/pull/75715) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* 在对其主键列执行 ALTER MODIFY 时重建 projection。此前,在对用于 projection 主键的列执行 ALTER MODIFY 后进行查询,可能会导致 `CANNOT_READ_ALL_DATA` 错误。 [#75720](https://github.com/ClickHouse/ClickHouse/pull/75720) ([Pavel Kruglov](https://github.com/Avogar)). -* 修复在 analyzer 中对标量子查询执行 `ARRAY JOIN` 时结果不正确的问题。[#75732](https://github.com/ClickHouse/ClickHouse/pull/75732) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). -* 修复 `DistinctSortedStreamTransform` 中的空指针解引用问题。[#75734](https://github.com/ClickHouse/ClickHouse/pull/75734) ([Nikita Taranov](https://github.com/nickitat)). -* 修正 `allow_suspicious_ttl_expressions` 的行为。[#75771](https://github.com/ClickHouse/ClickHouse/pull/75771)([Aleksei Filatov](https://github.com/aalexfvk))。 -* 修复函数 `translate` 中未初始化内存读取的问题。此更改关闭了 [#75592](https://github.com/ClickHouse/ClickHouse/issues/75592)。[#75794](https://github.com/ClickHouse/ClickHouse/pull/75794)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 在 Native 格式下,将格式设置传递到 JSON 的字符串格式化中。 [#75832](https://github.com/ClickHouse/ClickHouse/pull/75832) ([Pavel Kruglov](https://github.com/Avogar)). -* 在设置变更历史中记录了在 v24.12 中默认启用并行哈希 JOIN 算法的变更。这意味着,如果配置了早于 v24.12 的兼容性级别,ClickHouse 将继续使用非并行哈希进行 JOIN。[#75870](https://github.com/ClickHouse/ClickHouse/pull/75870)([Robert Schulze](https://github.com/rschu1ze))。 -* 修复了一个错误:具有隐式添加的 min-max 索引的表无法被复制到新表中(问题 [#75677](https://github.com/ClickHouse/ClickHouse/issues/75677))。[#75877](https://github.com/ClickHouse/ClickHouse/pull/75877)([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 -* `clickhouse-library-bridge` 允许从文件系统中打开任意库,因此只适合在隔离环境中运行。为防止在其与 clickhouse-server 紧邻部署时产生漏洞,我们将把可访问库的路径限制在配置中指定的位置。此漏洞由 **Arseniy Dugin** 通过 [ClickHouse Bug Bounty Program](https://github.com/ClickHouse/ClickHouse/issues/38986) 发现。[#75954](https://github.com/ClickHouse/ClickHouse/pull/75954)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 我们当时恰好对某些元数据使用了 JSON 序列化,这是一个错误,因为 JSON 不支持在字符串字面量中包含二进制数据(包括空字节)。SQL 查询可以包含二进制数据和无效的 UTF-8,因此我们也必须在元数据文件中支持这一点。与此同时,ClickHouse 的 `JSONEachRow` 和类似格式则通过偏离 JSON 标准来确保二进制数据可以完美往返。动机说明见此处:[https://github.com/ClickHouse/ClickHouse/pull/73668#issuecomment-2560501790](https://github.com/ClickHouse/ClickHouse/pull/73668#issuecomment-2560501790)。解决方案是让 `Poco::JSON` 库与 ClickHouse 中的 JSON 格式序列化行为保持一致。此变更关闭了 [#73668](https://github.com/ClickHouse/ClickHouse/issues/73668)。[#75963](https://github.com/ClickHouse/ClickHouse/pull/75963)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 修复存储 `S3Queue` 中关于提交限制的检查。[#76104](https://github.com/ClickHouse/ClickHouse/pull/76104) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 修复在附加带有自动索引(`add_minmax_index_for_numeric_columns`/`add_minmax_index_for_string_columns`)的 MergeTree 表时的错误。[#76139](https://github.com/ClickHouse/ClickHouse/pull/76139)([Azat Khuzhin](https://github.com/azat))。 -* 修复了作业父线程的堆栈跟踪(受 `enable_job_stack_trace` 设置控制)未打印的问题。修复了 `enable_job_stack_trace` 设置未正确传播到线程,导致生成的堆栈跟踪内容有时不遵循该设置的问题。[#76191](https://github.com/ClickHouse/ClickHouse/pull/76191) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* 修复权限检查错误,此前 `ALTER RENAME` 被错误地要求具备 `CREATE USER` 授权。关闭 [#74372](https://github.com/ClickHouse/ClickHouse/issues/74372)。[#76241](https://github.com/ClickHouse/ClickHouse/pull/76241)([pufit](https://github.com/pufit))。 -* 修复在大端架构上对 FixedString 使用 reinterpretAs 的问题。[#76253](https://github.com/ClickHouse/ClickHouse/pull/76253) ([Azat Khuzhin](https://github.com/azat)). -* 修复 S3Queue 中的逻辑错误:“Expected current processor {} to be equal to {} for bucket {}”。[#76358](https://github.com/ClickHouse/ClickHouse/pull/76358)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 针对 Memory 数据库的 ALTER 操作修复死锁问题。[#76359](https://github.com/ClickHouse/ClickHouse/pull/76359) ([Azat Khuzhin](https://github.com/azat))。 -* 修复在 `WHERE` 条件中使用 `pointInPolygon` 函数时索引分析中的逻辑错误。 [#76360](https://github.com/ClickHouse/ClickHouse/pull/76360) ([Anton Popov](https://github.com/CurtizJ)). -* 修复信号处理程序中的潜在不安全调用。[#76549](https://github.com/ClickHouse/ClickHouse/pull/76549)([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 -* 修复 PartsSplitter 中对反向键的支持问题。这解决了 [#73400](https://github.com/ClickHouse/ClickHouse/issues/73400)。[#73418](https://github.com/ClickHouse/ClickHouse/pull/73418)([Amos Bird](https://github.com/amosbird))。 - -#### 构建/测试/打包改进 {#buildtestingpackaging-improvement} - -* 支持在 ARM 和 Intel 架构的 Mac 上构建 HDFS。[#74244](https://github.com/ClickHouse/ClickHouse/pull/74244) ([Yan Xin](https://github.com/yxheartipp)). -* 在为 Darwin 进行交叉编译时启用 ICU 和 gRPC。[#75922](https://github.com/ClickHouse/ClickHouse/pull/75922) ([Raúl Marín](https://github.com/Algunenano)). -* 将内置 LLVM 更新至 19 版本。[#75148](https://github.com/ClickHouse/ClickHouse/pull/75148) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* 在 docker 镜像中为默认用户禁用网络访问。[#75259](https://github.com/ClickHouse/ClickHouse/pull/75259) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). 将所有与 clickhouse-server 相关的操作封装为函数,并仅在 `entrypoint.sh` 中启动默认二进制文件时执行这些操作。此前长期被推迟的一项改进在 [#50724](https://github.com/ClickHouse/ClickHouse/issues/50724) 中被提出。为 `clickhouse-extract-from-config` 新增开关 `--users`,用于从 `users.xml` 中获取值。[#75643](https://github.com/ClickHouse/ClickHouse/pull/75643) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). -* 从二进制文件中移除约 20MB 的死代码。[#76226](https://github.com/ClickHouse/ClickHouse/pull/76226) ([Alexey Milovidov](https://github.com/alexey-milovidov)). - -### ClickHouse 25.1 版本,2025-01-28 {#251} - -#### 向后不兼容的变更 {#backward-incompatible-change} - -* `JSONEachRowWithProgress` 现在会在实际产生进度时写出进度信息。在之前的版本中,进度只会在每个结果块之后显示,这使得它几乎没有用。修改进度显示方式:不再显示零值。这解决了 [#70800](https://github.com/ClickHouse/ClickHouse/issues/70800)。[#73834](https://github.com/ClickHouse/ClickHouse/pull/73834)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* `Merge` 表现在会通过取各个底层表列的并集并推导公共类型来统一它们的结构。这解决了 [#64864](https://github.com/ClickHouse/ClickHouse/issues/64864)。在某些情况下,此变更可能是向后不兼容的。一个例子是各个表之间不存在公共类型,但仍然可以转换为第一个表的类型,比如 UInt64 和 Int64,或任意数值类型与 String。如果你希望恢复旧行为,将 `merge_table_max_tables_to_look_for_schema_inference` 设置为 `1`,或将 `compatibility` 设置为 `24.12` 或更早版本。[#73956](https://github.com/ClickHouse/ClickHouse/pull/73956)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* Parquet 输出格式会将 Date 和 DateTime 列转换为 Parquet 所支持的日期/时间类型,而不是按原始数字写入。`DateTime` 将变为 `DateTime64(3)`(之前为:`UInt32`);通过设置 `output_format_parquet_datetime_as_uint32` 可以恢复旧行为。`Date` 将变为 `Date32`(之前为:`UInt16`)。[#70950](https://github.com/ClickHouse/ClickHouse/pull/70950)([Michael Kolupaev](https://github.com/al13n321))。 -* 默认情况下,不再允许在 `ORDER BY` 和比较函数 `less/greater/equal/etc` 中使用不可比较类型(例如 `JSON`/`Object`/`AggregateFunction`)。[#73276](https://github.com/ClickHouse/ClickHouse/pull/73276)([Pavel Kruglov](https://github.com/Avogar))。 -* 过时的 `MaterializedMySQL` 数据库引擎已被移除,不再可用。[#73879](https://github.com/ClickHouse/ClickHouse/pull/73879)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* `mysql` 字典源不再执行 `SHOW TABLE STATUS` 查询,因为对于 InnoDB 表以及任何较新的 MySQL 版本来说,它并不提供任何有价值的信息。这解决了 [#72636](https://github.com/ClickHouse/ClickHouse/issues/72636)。此变更是向后兼容的,但被放到本小节中,以便你有机会注意到它。[#73914](https://github.com/ClickHouse/ClickHouse/pull/73914)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* `CHECK TABLE` 查询现在需要单独的 `CHECK` 权限。在之前的版本中,仅有 `SHOW TABLES` 权限就足以执行这些查询。但 `CHECK TABLE` 查询可能非常重,而且常规的 `SELECT` 查询复杂度限制并不适用于它,这带来了潜在的拒绝服务(DoS)风险。[#74471](https://github.com/ClickHouse/ClickHouse/pull/74471)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 函数 `h3ToGeo()` 现在按 `(lat, lon)` 的顺序返回结果(这是几何函数的标准顺序)。希望保留旧结果顺序 `(lon, lat)` 的用户可以将设置 `h3togeo_lon_lat_result_order` 设为 `true`。[#74719](https://github.com/ClickHouse/ClickHouse/pull/74719)([Manish Gill](https://github.com/mgill25))。 -* 新的 MongoDB 驱动现在为默认驱动。希望继续使用旧版驱动的用户可以将服务端设置 `use_legacy_mongodb_integration` 设为 `true`。[#73359](https://github.com/ClickHouse/ClickHouse/pull/73359)([Robert Schulze](https://github.com/rschu1ze))。 - -#### 新功能 {#new-feature} - -* 在提交 `SELECT` 查询后,其执行期间可以立即应用尚未完成(尚未由后台进程物化)的 mutation。可以通过设置 `apply_mutations_on_fly` 来启用该功能。 [#74877](https://github.com/ClickHouse/ClickHouse/pull/74877) ([Anton Popov](https://github.com/CurtizJ)). -* 在 Iceberg 中为时间相关的 transform 分区操作实现 `Iceberg` 表的分区剪枝。[#72044](https://github.com/ClickHouse/ClickHouse/pull/72044) ([Daniil Ivanik](https://github.com/divanik))。 -* 在 MergeTree 的排序键和跳过索引中支持子列。[#72644](https://github.com/ClickHouse/ClickHouse/pull/72644)([Pavel Kruglov](https://github.com/Avogar))。 -* 已支持从 `Apache Arrow`/`Parquet`/`ORC` 读取 `HALF_FLOAT` 值(会被读取为 `Float32`)。修复了 [#72960](https://github.com/ClickHouse/ClickHouse/issues/72960)。请注意,IEEE-754 半精度浮点数与 `BFloat16` 并不相同。修复了 [#73835](https://github.com/ClickHouse/ClickHouse/issues/73835)。[#73836](https://github.com/ClickHouse/ClickHouse/pull/73836)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* `system.trace_log` 表将包含两个新列 `symbols` 和 `lines`,用于存储符号化后的堆栈跟踪。这样便于收集和导出性能分析信息。该行为由 `trace_log` 中的服务器配置项 `symbolize` 控制,且默认启用。[#73896](https://github.com/ClickHouse/ClickHouse/pull/73896)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 新增函数 `generateSerialID`,用于在表中生成自增序号。是 [kazalika](https://github.com/kazalika) 提交的 [#64310](https://github.com/ClickHouse/ClickHouse/issues/64310) 的后续工作。本项变更关闭了 [#62485](https://github.com/ClickHouse/ClickHouse/issues/62485)。[#73950](https://github.com/ClickHouse/ClickHouse/pull/73950)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 为 DDL 查询添加语法 `query1 PARALLEL WITH query2 PARALLEL WITH query3 ... PARALLEL WITH queryN`。这意味着子查询 `{query1, query2, ... queryN}` 可以彼此并行执行(并且推荐这样使用)。[#73983](https://github.com/ClickHouse/ClickHouse/pull/73983)([Vitaly Baranov](https://github.com/vitlibar))。 -* 为反序列化后的 skipping 索引 granule 新增了一个内存缓存。这将加速重复执行、且使用 skipping 索引的查询。新缓存的大小由服务器设置 `skipping_index_cache_size` 和 `skipping_index_cache_max_entries` 控制。引入该缓存的最初动机是向量相似度索引,而这些索引现在已经快了很多。[#70102](https://github.com/ClickHouse/ClickHouse/pull/70102)([Robert Schulze](https://github.com/rschu1ze))。 -* 现在,内嵌的 Web UI 在查询运行期间提供进度条,并允许取消查询。它会显示记录总数以及关于查询速度的详细信息。数据一到达,数据表就可以增量渲染。启用 HTTP 压缩后,表格渲染速度变得更快。表头现在是固定的。它支持选中单元格,并可以通过方向键在单元格之间导航。修复了选中单元格轮廓导致其变小的问题。单元格不再在鼠标悬停时展开,而只会在选中时展开。停止渲染传入数据的时机现在由客户端而不是服务器端决定。对数字的分组进行高亮显示。整体设计进行了焕新并变得更鲜明。它会检查服务器是否可达以及凭证是否正确,并显示服务器版本和运行时长。在所有字体中(即使在 Safari 中),云图标都是轮廓样式。嵌套数据类型中的大整数将得到更好的渲染。它将正确显示 inf/nan。将在鼠标悬停在列头时显示数据类型。[#74204](https://github.com/ClickHouse/ClickHouse/pull/74204)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 添加了对通过设置 `add_minmax_index_for_numeric_columns`(用于数值列)和 `add_minmax_index_for_string_columns`(用于字符串列),为由 MergeTree 管理的列默认创建最小-最大(跳过)索引的支持。目前这两个设置均为禁用状态,因此尚未引入行为变更。[#74266](https://github.com/ClickHouse/ClickHouse/pull/74266)([Smita Kulkarni](https://github.com/SmitaRKulkarni))。 -* 将 `script_query_number` 和 `script_line_number` 字段添加到 `system.query_log`、原生协议中的 ClientInfo,以及服务器日志中。此更改解决了 [#67542](https://github.com/ClickHouse/ClickHouse/issues/67542)。感谢 [pinsvin00](https://github.com/pinsvin00) 先前在 [#68133](https://github.com/ClickHouse/ClickHouse/issues/68133) 中发起该功能。[#74477](https://github.com/ClickHouse/ClickHouse/pull/74477)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 新增聚合函数 `sequenceMatchEvents`,用于为模式中最长的事件链返回匹配事件的时间戳。[#72349](https://github.com/ClickHouse/ClickHouse/pull/72349) ([UnamedRus](https://github.com/UnamedRus))。 -* 新增函数 `arrayNormalizedGini`。[#72823](https://github.com/ClickHouse/ClickHouse/pull/72823) ([flynn](https://github.com/ucasfl))。 -* 为 `DateTime64` 增加减号运算符支持,从而允许在 `DateTime64` 值之间以及与 `DateTime` 之间进行减法运算。[#74482](https://github.com/ClickHouse/ClickHouse/pull/74482) ([Li Yin](https://github.com/liyinsg))。 - -#### 实验性功能 {#experimental-features} - -* `BFloat16` 数据类型已可用于生产环境。[#73840](https://github.com/ClickHouse/ClickHouse/pull/73840) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 - -#### 性能优化 {#performance-improvement} - -* 对函数 `indexHint` 进行了优化。现在,仅作为函数 `indexHint` 参数使用的列不会从表中读取。[#74314](https://github.com/ClickHouse/ClickHouse/pull/74314)([Anton Popov](https://github.com/CurtizJ))。如果 `indexHint` 函数是你企业数据架构的核心组件,那么这一优化足以“救你一命”。 -* 对 `parallel_hash` JOIN 算法中的 `max_joined_block_size_rows` 设置进行更精确的处理,有助于避免相比 `hash` 算法出现更高的内存消耗。[#74630](https://github.com/ClickHouse/ClickHouse/pull/74630) ([Nikita Taranov](https://github.com/nickitat))。 -* 在查询计划层面支持对 `MergingAggregated` 步骤进行谓词下推优化,从而提升部分使用 analyzer 的查询性能。[#74073](https://github.com/ClickHouse/ClickHouse/pull/74073) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* 在 `parallel_hash` JOIN 算法的探测阶段,移除了对左表数据块按哈希拆分的操作。[#73089](https://github.com/ClickHouse/ClickHouse/pull/73089)([Nikita Taranov](https://github.com/nickitat))。 -* 优化 RowBinary 输入格式。修复 [#63805](https://github.com/ClickHouse/ClickHouse/issues/63805)。[#65059](https://github.com/ClickHouse/ClickHouse/pull/65059)([Pavel Kruglov](https://github.com/Avogar))。 -* 当启用 `optimize_on_insert` 时,将分区片段写入为 level 1。这样在对新写入的分区片段执行带有 `FINAL` 的查询时,可以使用多种优化。[#73132](https://github.com/ClickHouse/ClickHouse/pull/73132) ([Anton Popov](https://github.com/CurtizJ))。 -* 通过一些底层优化加速字符串反序列化。[#65948](https://github.com/ClickHouse/ClickHouse/pull/65948) ([Nikita Taranov](https://github.com/nickitat))。 -* 在执行记录相等性比较时(例如在合并期间),应优先从最有可能不相等的列开始比较行。[#63780](https://github.com/ClickHouse/ClickHouse/pull/63780) ([UnamedRus](https://github.com/UnamedRus))。 -* 通过按键对右表重新排序,提升 Grace 哈希连接的性能。 [#72237](https://github.com/ClickHouse/ClickHouse/pull/72237) ([kevinyhzou](https://github.com/KevinyhZou)). -* 允许 `arrayROCAUC` 和 `arrayAUCPR` 计算整个曲线的部分面积,从而可以在海量数据集上并行计算。[#72904](https://github.com/ClickHouse/ClickHouse/pull/72904) ([Emmanuel](https://github.com/emmanuelsdias))。 -* 避免创建过多的空闲线程。 [#72920](https://github.com/ClickHouse/ClickHouse/pull/72920) ([Guo Wangyang](https://github.com/guowangy)). -* 当在表函数中只使用花括号展开时,不要列出对象存储键。解决了 [#73333](https://github.com/ClickHouse/ClickHouse/issues/73333)。[#73518](https://github.com/ClickHouse/ClickHouse/pull/73518)([Konstantin Bogdanov](https://github.com/thevar1able))。 -* 对在 Nullable 参数上执行的函数进行短路优化。[#73820](https://github.com/ClickHouse/ClickHouse/pull/73820) ([李扬](https://github.com/taiyang-li))。 -* 不要在非函数列上应用 `maskedExecute`,以提升短路执行的性能。[#73965](https://github.com/ClickHouse/ClickHouse/pull/73965) ([lgbo](https://github.com/lgbo-ustc))。 -* 禁用 `Kafka`/`NATS`/`RabbitMQ`/`FileLog` 输入格式中的头部自动检测功能,以提升性能。 [#74006](https://github.com/ClickHouse/ClickHouse/pull/74006) ([Azat Khuzhin](https://github.com/azat)). -* 在使用 grouping sets 完成聚合后,以更高的并行度执行 pipeline。 [#74082](https://github.com/ClickHouse/ClickHouse/pull/74082) ([Nikita Taranov](https://github.com/nickitat))。 -* 缩小 `MergeTreeReadPool` 中的临界区范围。 [#74202](https://github.com/ClickHouse/ClickHouse/pull/74202) ([Guo Wangyang](https://github.com/guowangy)). -* 并行副本性能改进。对于与并行副本协议无关的数据包,其在查询发起端的反序列化现在始终在 pipeline 线程中进行。此前,这一步可能在负责 pipeline 调度的线程中执行,从而降低查询发起端的响应性并延迟 pipeline 的执行。 [#74398](https://github.com/ClickHouse/ClickHouse/pull/74398) ([Igor Nikonov](https://github.com/devcrafter))。 -* 提升 Keeper 中大规模多操作请求的性能。[#74849](https://github.com/ClickHouse/ClickHouse/pull/74849) ([Antonio Andelic](https://github.com/antonio2368)). -* 按值使用日志包装器,不要在堆上分配它们。 [#74034](https://github.com/ClickHouse/ClickHouse/pull/74034) ([Mikhail Artemenko](https://github.com/Michicosun)). -* 在后台重新建立到 MySQL 和 Postgres 字典副本的连接,从而不会拖慢对相应字典的请求。[#71101](https://github.com/ClickHouse/ClickHouse/pull/71101) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* 并行副本利用关于副本可用性的历史信息来改进副本选择,但在连接不可用时不会更新该副本的错误计数。此 PR 现在会在副本不可用时更新其错误计数。[#72666](https://github.com/ClickHouse/ClickHouse/pull/72666) ([zoomxi](https://github.com/zoomxi))。 -* 新增了一个 MergeTree 设置 `materialize_skip_indexes_on_merge`,用于在合并过程中禁止自动创建 skip 索引。这使你可以通过显式命令(`ALTER TABLE [..] MATERIALIZE INDEX [...]`)来精确控制何时创建 skip 索引。如果构建 skip 索引的开销较大(例如向量相似度索引),这会非常有用。[#74401](https://github.com/ClickHouse/ClickHouse/pull/74401) ([Robert Schulze](https://github.com/rschu1ze))。 -* 优化 Storage(S3/Azure)Queue 中的 Keeper 请求。 [#74410](https://github.com/ClickHouse/ClickHouse/pull/74410) ([Kseniia Sumarokova](https://github.com/kssenii)). [#74538](https://github.com/ClickHouse/ClickHouse/pull/74538) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 默认最多可使用 `1000` 个并行副本。 [#74504](https://github.com/ClickHouse/ClickHouse/pull/74504) ([Konstantin Bogdanov](https://github.com/thevar1able)). -* 在从 S3 磁盘读取数据时提升 HTTP 会话复用效率([#72401](https://github.com/ClickHouse/ClickHouse/issues/72401))。[#74548](https://github.com/ClickHouse/ClickHouse/pull/74548)([Julian Maicher](https://github.com/jmaicher))。 - -#### 改进 {#improvement} - -* 在具有隐式 ENGINE 的 `CREATE TABLE` 查询中支持 `SETTINGS`,并支持混合使用引擎设置和查询设置。 [#73120](https://github.com/ClickHouse/ClickHouse/pull/73120) ([Raúl Marín](https://github.com/Algunenano))。 -* 默认启用 `use_hive_partitioning`。[#71636](https://github.com/ClickHouse/ClickHouse/pull/71636) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* 支持在具有不同参数的 JSON 类型之间执行 CAST 和 ALTER 操作。 [#72303](https://github.com/ClickHouse/ClickHouse/pull/72303) ([Pavel Kruglov](https://github.com/Avogar)). -* 支持对 JSON 列的值进行相等比较。 [#72991](https://github.com/ClickHouse/ClickHouse/pull/72991) ([Pavel Kruglov](https://github.com/Avogar))。 -* 改进带有 JSON 子列的标识符的格式化,避免不必要的反引号。 [#73085](https://github.com/ClickHouse/ClickHouse/pull/73085) ([Pavel Kruglov](https://github.com/Avogar)). -* 改进交互式指标。修复来自并行副本的指标未完整显示的问题。按最近一次更新时间排序指标,其次按名称的字典序排序。不显示过期的指标。[#71631](https://github.com/ClickHouse/ClickHouse/pull/71631) ([Julia Kartseva](https://github.com/jkartseva))。 -* 将 JSON 输出格式默认设为美化格式。新增设置 `output_format_json_pretty_print` 用于控制该行为,并默认启用该设置。 [#72148](https://github.com/ClickHouse/ClickHouse/pull/72148) ([Pavel Kruglov](https://github.com/Avogar))。 -* 默认允许使用 `LowCardinality(UUID)`。实践证明,这一设置对 ClickHouse Cloud 客户而言十分实用。[#73826](https://github.com/ClickHouse/ClickHouse/pull/73826) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 改进安装过程中的提示信息。[#73827](https://github.com/ClickHouse/ClickHouse/pull/73827) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 改进了关于 ClickHouse Cloud 密码重置的提示信息。 [#73831](https://github.com/ClickHouse/ClickHouse/pull/73831) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 改进在 File 表无法向文件追加数据时的错误消息。[#73832](https://github.com/ClickHouse/ClickHouse/pull/73832) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 当用户在终端中意外选择将结果输出为二进制格式(例如 Native、Parquet、Avro)时,弹出确认提示。此更改解决了 [#59524](https://github.com/ClickHouse/ClickHouse/issues/59524)。[#73833](https://github.com/ClickHouse/ClickHouse/pull/73833)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 在终端中使用 Pretty 和 Vertical 格式时,将行尾空格高亮显示,以提高可读性。该行为由设置 `output_format_pretty_highlight_trailing_spaces` 控制。最初由 [Braden Burns](https://github.com/bradenburns) 在 [#72996](https://github.com/ClickHouse/ClickHouse/issues/72996) 中实现,本次改动关闭了 [#71590](https://github.com/ClickHouse/ClickHouse/issues/71590)。[#73847](https://github.com/ClickHouse/ClickHouse/pull/73847)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* `clickhouse-client` 和 `clickhouse-local` 将自动检测 stdin 在从文件重定向输入时的压缩格式。此更改修复了 [#70865](https://github.com/ClickHouse/ClickHouse/issues/70865)。[#73848](https://github.com/ClickHouse/ClickHouse/pull/73848)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 默认在 Pretty 输出格式中截断过长的列名。该行为由 `output_format_pretty_max_column_name_width_cut_to` 和 `output_format_pretty_max_column_name_width_min_chars_to_cut` 设置控制。这是对 [tanmaydatta](https://github.com/tanmaydatta) 在 [#66502](https://github.com/ClickHouse/ClickHouse/issues/66502) 中工作成果的延续。此更改解决了 [#65968](https://github.com/ClickHouse/ClickHouse/issues/65968)。[#73851](https://github.com/ClickHouse/ClickHouse/pull/73851)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 让 `Pretty` 格式更美观:如果距离上一个块输出的时间间隔较短,则将多个块压缩合并为一个块。通过新的设置 `output_format_pretty_squash_consecutive_ms`(默认 50 ms)和 `output_format_pretty_squash_max_wait_ms`(默认 1000 ms)进行控制。是对 [#49537](https://github.com/ClickHouse/ClickHouse/issues/49537) 的延续。本次改动关闭了 [#49153](https://github.com/ClickHouse/ClickHouse/issues/49153)。[#73852](https://github.com/ClickHouse/ClickHouse/pull/73852)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 新增一个指标,用于统计当前正在合并的源分区片段数量。此更改解决了 [#70809](https://github.com/ClickHouse/ClickHouse/issues/70809)。[#73868](https://github.com/ClickHouse/ClickHouse/pull/73868)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 当输出到终端时,在 `Vertical` 格式下高亮显示列。此行为可通过 `output_format_pretty_color` 设置禁用。[#73898](https://github.com/ClickHouse/ClickHouse/pull/73898) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 已将 MySQL 兼容性提升到这样的程度:现在 `mysqlsh`(Oracle 提供的功能丰富的 MySQL CLI)也可以连接到 ClickHouse,以便于测试。[#73912](https://github.com/ClickHouse/ClickHouse/pull/73912) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* Pretty 输出格式现在可以在表格单元格内渲染多行字段,从而提高可读性。该功能默认启用,并可以通过设置 `output_format_pretty_multiline_fields` 进行控制。这是对 [Volodyachan](https://github.com/Volodyachan) 在 [#64094](https://github.com/ClickHouse/ClickHouse/issues/64094) 中工作的延续。此更改关闭了 [#56912](https://github.com/ClickHouse/ClickHouse/issues/56912)。[#74032](https://github.com/ClickHouse/ClickHouse/pull/74032)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 在浏览器中向 JavaScript 暴露 X-ClickHouse HTTP 头部,使编写应用程序更加方便。[#74180](https://github.com/ClickHouse/ClickHouse/pull/74180) ([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* `JSONEachRowWithProgress` 格式会包含带有元数据的事件,以及 totals 和 extremes 信息。它还包含 `rows_before_limit_at_least` 和 `rows_before_aggregation`。如果在输出部分结果后收到异常,该格式会正确输出异常信息。现在进度信息中包含已消耗的纳秒数。在查询结束时会发出最后一个进度事件。查询运行期间的进度输出频率不会高于 `interactive_delay` 设置指定的时间间隔。[#74181](https://github.com/ClickHouse/ClickHouse/pull/74181)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 沙漏动画将在 Play UI 中平滑旋转。 [#74182](https://github.com/ClickHouse/ClickHouse/pull/74182) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* 即使 HTTP 响应经过压缩,也会在数据包一到达时立即发送。这样可以使浏览器及时接收进度数据包和压缩数据。[#74201](https://github.com/ClickHouse/ClickHouse/pull/74201)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 如果输出记录数大于 N = `output_format_pretty_max_rows`,则不再只显示前 N 行,而是从中间截断输出表,显示前 N/2 行和后 N/2 行。[#64200](https://github.com/ClickHouse/ClickHouse/issues/64200) 的延续。此更改关闭了 [#59502](https://github.com/ClickHouse/ClickHouse/issues/59502)。[#73929](https://github.com/ClickHouse/ClickHouse/pull/73929)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 允许在启用哈希 JOIN 算法时使用更通用的 JOIN 规划算法。[#71926](https://github.com/ClickHouse/ClickHouse/pull/71926) ([János Benjamin Antal](https://github.com/antaljanosbenjamin))。 -* 支持在数据类型为 `DateTime64` 的列上创建 bloom_filter 索引。[#66416](https://github.com/ClickHouse/ClickHouse/pull/66416) ([Yutong Xiao](https://github.com/YutSean)). -* 当同时启用 `min_age_to_force_merge_seconds` 和 `min_age_to_force_merge_on_partition_only` 时,在进行数据片合并时将忽略最大字节数限制。[#73656](https://github.com/ClickHouse/ClickHouse/pull/73656) ([Kai Zhu](https://github.com/nauu))。 -* 为 OpenTelemetry span 日志表添加了 HTTP 头部,以提高可追踪性。[#70516](https://github.com/ClickHouse/ClickHouse/pull/70516) ([jonymohajanGmail](https://github.com/jonymohajanGmail))。 -* 支持使用自定义时区写入 `orc` 文件,而不再总是使用 `GMT` 时区。[#70615](https://github.com/ClickHouse/ClickHouse/pull/70615) ([kevinyhzou](https://github.com/KevinyhZou))。 -* 在跨云写入备份时遵循 I/O 调度设置。[#71093](https://github.com/ClickHouse/ClickHouse/pull/71093) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* 在 `system.asynchronous_metrics` 中为 `metric` 列添加列别名 `name`。 [#71164](https://github.com/ClickHouse/ClickHouse/pull/71164) ([megao](https://github.com/jetgm))。 -* 由于一些历史原因,查询 `ALTER TABLE MOVE PARTITION TO TABLE` 之前检查的是 `SELECT` 和 `ALTER DELETE` 权限,而不是专门的 `ALTER_MOVE_PARTITION`。本 PR 改为使用这一访问类型。出于兼容性考虑,如果已授予 `SELECT` 和 `ALTER DELETE`,则仍会隐式授予此权限,但这种行为将在未来版本中被移除。修复了 [#16403](https://github.com/ClickHouse/ClickHouse/issues/16403)。[#71632](https://github.com/ClickHouse/ClickHouse/pull/71632)([pufit](https://github.com/pufit))。 -* 在尝试物化排序键中的列时抛出异常,而不是允许其破坏排序顺序。[#71891](https://github.com/ClickHouse/ClickHouse/pull/71891) ([Peter Nguyen](https://github.com/petern48)). -* 在 `EXPLAIN QUERY TREE` 中隐藏敏感信息。 [#72025](https://github.com/ClickHouse/ClickHouse/pull/72025) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* 在 "native" 读取器中新增对 Parquet 整数逻辑类型的支持。 [#72105](https://github.com/ClickHouse/ClickHouse/pull/72105) ([Arthur Passos](https://github.com/arthurpassos)). -* 如果默认用户需要密码,则在浏览器中以交互方式请求输入凭证。在之前的版本中,服务器返回 HTTP 403;现在返回 HTTP 401。[#72198](https://github.com/ClickHouse/ClickHouse/pull/72198)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 将访问类型 `CREATE_USER`、`ALTER_USER`、`DROP_USER`、`CREATE_ROLE`、`ALTER_ROLE`、`DROP_ROLE` 从全局形式转换为参数化形式。也就是说,用户现在可以更精细地授予访问管理权限:[#72246](https://github.com/ClickHouse/ClickHouse/pull/72246) ([pufit](https://github.com/pufit))。 -* 将 `latest_fail_error_code_name` 列添加到 `system.mutations` 中。我们需要该列来引入一个用于检测卡住的 mutation 的新指标,并利用它在 Cloud 中构建错误统计图,并且(可选)添加一个噪声更低的新告警。[#72398](https://github.com/ClickHouse/ClickHouse/pull/72398) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 -* 减少 `ATTACH PARTITION` 查询中的内存分配开销。[#72583](https://github.com/ClickHouse/ClickHouse/pull/72583) ([Konstantin Morozov](https://github.com/k-morozov))。 -* 使 `max_bytes_before_external_sort` 的限制基于整个查询的总内存消耗(此前它表示单个排序线程中排序块的字节数,现在其含义与 `max_bytes_before_external_group_by` 相同——即所有线程在整个查询中可使用的内存总量上限)。另外新增一个用于控制写入磁盘的数据块大小的设置——`min_external_sort_block_bytes`。[#72598](https://github.com/ClickHouse/ClickHouse/pull/72598) ([Azat Khuzhin](https://github.com/azat))。 -* 忽略由 trace collector 施加的内存限制。 [#72606](https://github.com/ClickHouse/ClickHouse/pull/72606) ([Azat Khuzhin](https://github.com/azat)). -* 在 `system.server_settings` 中添加服务器设置 `dictionaries_lazy_load` 和 `wait_dictionaries_load_at_startup`。 [#72664](https://github.com/ClickHouse/ClickHouse/pull/72664) ([Christoph Wurm](https://github.com/cwurm)). -* 将设置 `max_backup_bandwidth` 添加到可在 `BACKUP`/`RESTORE` 查询中指定的设置列表中。 [#72665](https://github.com/ClickHouse/ClickHouse/pull/72665) ([Christoph Wurm](https://github.com/cwurm)). -* 降低 ReplicatedMergeTree 引擎中新增复制分区片段的日志级别,以帮助尽量减少在复制集群中生成的日志量。 [#72876](https://github.com/ClickHouse/ClickHouse/pull/72876) ([mor-akamai](https://github.com/morkalfon)). -* 改进对析取表达式中公共子表达式的提取。即使所有析取项之间不存在公共子表达式,也允许对生成的过滤表达式进行简化。本项是对 [#71537](https://github.com/ClickHouse/ClickHouse/issues/71537) 的延续。[#73271](https://github.com/ClickHouse/ClickHouse/pull/73271)([Dmitry Novik](https://github.com/novikd))。 -* 在 `S3Queue`/`AzureQueue` 存储中,现在允许为创建时未指定设置的表补充设置。 [#73283](https://github.com/ClickHouse/ClickHouse/pull/73283) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 引入设置 `least_greatest_legacy_null_behavior`(默认值:`false`),用于控制函数 `least` 和 `greatest` 在处理 `NULL` 参数时,是无条件返回 `NULL`(当为 `true` 时),还是忽略它们(当为 `false` 时)。 [#73344](https://github.com/ClickHouse/ClickHouse/pull/73344) ([Robert Schulze](https://github.com/rschu1ze)). -* 在 ObjectStorageQueueMetadata 的清理线程中使用 Keeper multi 请求。 [#73357](https://github.com/ClickHouse/ClickHouse/pull/73357) ([Antonio Andelic](https://github.com/antonio2368))。 -* 当 ClickHouse 在 cgroup 中运行时,我们仍然会收集整个系统范围内与系统负载、进程调度、内存等相关的异步指标。当 ClickHouse 是主机上唯一高资源消耗的进程时,这些指标可能提供有价值的信号。[#73369](https://github.com/ClickHouse/ClickHouse/pull/73369)([Nikita Taranov](https://github.com/nickitat))。 -* 在 `S3Queue` 存储中,现在支持将 24.6 之前创建的旧有序表迁移到新的分桶结构。[#73467](https://github.com/ClickHouse/ClickHouse/pull/73467) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* 添加 `system.azure_queue`,其功能类似于现有的 `system.s3queue`。 [#73477](https://github.com/ClickHouse/ClickHouse/pull/73477) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 函数 `parseDateTime64`(及其变体)现在对于 1970 年之前和 2106 年之后的输入日期也能返回正确结果。示例:`SELECT parseDateTime64InJodaSyntax('2200-01-01 00:00:00.000', 'yyyy-MM-dd HH:mm:ss.SSS')`。[#73594](https://github.com/ClickHouse/ClickHouse/pull/73594) ([zhanglistar](https://github.com/zhanglistar))。 -* 解决了一些用户反馈的 `clickhouse-disks` 易用性问题。关闭 [#67136](https://github.com/ClickHouse/ClickHouse/issues/67136)。[#73616](https://github.com/ClickHouse/ClickHouse/pull/73616)([Daniil Ivanik](https://github.com/divanik))。 -* 允许在 `S3(Azure)Queue` 存储中修改提交设置。(提交设置包括:`max_processed_files_before_commit`、`max_processed_rows_before_commit`、`max_processed_bytes_before_commit`、`max_processing_time_sec_before_commit`)。[#73635](https://github.com/ClickHouse/ClickHouse/pull/73635)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 在 S3(Azure)Queue 存储中汇总各个源的进度,以便与提交限制设置进行比较。 [#73641](https://github.com/ClickHouse/ClickHouse/pull/73641) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* 支持在 `BACKUP`/`RESTORE` 查询中使用核心级设置。[#73650](https://github.com/ClickHouse/ClickHouse/pull/73650) ([Vitaly Baranov](https://github.com/vitlibar)). -* 在生成 Parquet 输出时考虑 `output_format_compression_level` 设置。[#73651](https://github.com/ClickHouse/ClickHouse/pull/73651)([Arthur Passos](https://github.com/arthurpassos))。 -* 新增支持将 Apache Arrow 的 `fixed_size_list` 读取为 `Array` 类型,而不是将其视为不受支持的类型。[#73654](https://github.com/ClickHouse/ClickHouse/pull/73654) ([Julian Meyers](https://github.com/J-Meyers))。 -* 添加两个备份引擎:`Memory`(在当前用户会话内保存备份)和 `Null`(不在任何地方保存备份),主要用于测试。[#73690](https://github.com/ClickHouse/ClickHouse/pull/73690) ([Vitaly Baranov](https://github.com/vitlibar))。 -* `concurrent_threads_soft_limit_num` 和 `concurrent_threads_soft_limit_num_ratio_to_cores` 可以在无需重启服务器的情况下修改。 [#73713](https://github.com/ClickHouse/ClickHouse/pull/73713) ([Sergei Trifonov](https://github.com/serxa))。 -* 为 `formatReadable` 函数增加对扩展数值类型(`Decimal`、大整数)的支持。[#73765](https://github.com/ClickHouse/ClickHouse/pull/73765) ([Raúl Marín](https://github.com/Algunenano))。 -* 为兼容 Postgres 线协议提供 TLS 支持。[#73812](https://github.com/ClickHouse/ClickHouse/pull/73812) ([scanhex12](https://github.com/scanhex12)). -* 函数 `isIPv4String` 在正确的 IPv4 地址后面跟随一个 0 字节时会返回 true,而在这种情况下它本应返回 false。是对 [#65387](https://github.com/ClickHouse/ClickHouse/issues/65387) 的后续修复。[#73946](https://github.com/ClickHouse/ClickHouse/pull/73946)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 使 MySQL 线协议中的错误码与 MySQL 保持一致。是 [#56831](https://github.com/ClickHouse/ClickHouse/issues/56831) 的后续工作。关闭 [#50957](https://github.com/ClickHouse/ClickHouse/issues/50957)。[#73948](https://github.com/ClickHouse/ClickHouse/pull/73948)([Alexey Milovidov](https://github.com/alexey-milovidov))。 -* 添加设置 `validate_enum_literals_in_opearators`,用于在 `IN`、`NOT IN` 等运算符中验证枚举字面量是否属于对应的枚举类型;若字面量不是有效的枚举值,则抛出异常。 [#73985](https://github.com/ClickHouse/ClickHouse/pull/73985) ([Vladimir Cherkasov](https://github.com/vdimir)). -* 在 `S3(Azure)Queue` 存储中,将由提交设置定义的单个批次中的所有文件在一次 Keeper 事务中统一提交。[#73991](https://github.com/ClickHouse/ClickHouse/pull/73991) ([Kseniia Sumarokova](https://github.com/kssenii))。 -* 为可执行 UDF 和字典禁用头部检测(可能导致出现如下错误:Function 'X': wrong result, expected Y row(s), actual Y-1)。 [#73992](https://github.com/ClickHouse/ClickHouse/pull/73992) ([Azat Khuzhin](https://github.com/azat)). -* 为 `EXPLAIN PLAN` 添加 `distributed` 选项。现在,`EXPLAIN distributed=1 ...` 会将远程执行计划附加到 `ReadFromParallelRemote*` 步骤中。[#73994](https://github.com/ClickHouse/ClickHouse/pull/73994)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* 对带有 Dynamic 参数的 not/xor 使用正确的返回类型。[#74013](https://github.com/ClickHouse/ClickHouse/pull/74013) ([Pavel Kruglov](https://github.com/Avogar))。 -* 允许在表创建后修改 `add_implicit_sign_column_constraint_for_collapsing_engine`。[#74014](https://github.com/ClickHouse/ClickHouse/pull/74014) ([Christoph Wurm](https://github.com/cwurm)). -* 在 materialized view 的 SELECT 查询中增加对子列的支持。 [#74030](https://github.com/ClickHouse/ClickHouse/pull/74030) ([Pavel Kruglov](https://github.com/Avogar)). -* 现在可以通过三种简单方法在 `clickhouse-client` 中设置自定义提示符:1. 通过命令行参数 `--prompt`,2. 在配置文件中通过设置 `[...]`,3. 同样在配置文件中,通过针对每个连接的设置 `[...]`。 [#74168](https://github.com/ClickHouse/ClickHouse/pull/74168) ([Christoph Wurm](https://github.com/cwurm))。 -* ClickHouse 客户端在连接到端口 9440 时自动检测是否使用安全连接。 [#74212](https://github.com/ClickHouse/ClickHouse/pull/74212)([Christoph Wurm](https://github.com/cwurm))。 -* 支持在 `http_handlers` 中仅通过用户名对用户进行认证(此前还要求用户同时提供密码)。[#74221](https://github.com/ClickHouse/ClickHouse/pull/74221) ([Azat Khuzhin](https://github.com/azat)). -* 对替代查询语言 PRQL 和 KQL 的支持被标记为实验性功能。要使用它们,请设置 `allow_experimental_prql_dialect = 1` 和 `allow_experimental_kusto_dialect = 1`。[#74224](https://github.com/ClickHouse/ClickHouse/pull/74224)([Robert Schulze](https://github.com/rschu1ze))。 -* 支持在更多聚合函数中返回默认的 Enum 类型。[#74272](https://github.com/ClickHouse/ClickHouse/pull/74272) ([Raúl Marín](https://github.com/Algunenano))。 -* 在 `OPTIMIZE TABLE` 中,现在可以使用关键字 `FORCE` 作为现有关键字 `FINAL` 的替代选项。[#74342](https://github.com/ClickHouse/ClickHouse/pull/74342)([Robert Schulze](https://github.com/rschu1ze))。 -* 添加 `IsServerShuttingDown` 指标,用于在服务器关闭耗时过长时触发告警。[#74429](https://github.com/ClickHouse/ClickHouse/pull/74429) ([Miсhael Stetsyuk](https://github.com/mstetsyuk))。 -* 在 `EXPLAIN` 结果中加入了 Iceberg 表名。 [#74485](https://github.com/ClickHouse/ClickHouse/pull/74485) ([alekseev-maksim](https://github.com/alekseev-maksim)). -* 在旧分析器中使用 RECURSIVE CTE 时提供更友好的错误消息。[#74523](https://github.com/ClickHouse/ClickHouse/pull/74523)([Raúl Marín](https://github.com/Algunenano))。 -* 在 `system.errors` 中显示详细错误信息。[#74574](https://github.com/ClickHouse/ClickHouse/pull/74574) ([Vitaly Baranov](https://github.com/vitlibar))。 -* 允许客户端在与 clickhouse-keeper 通信时使用密码。如果你已经为服务器和客户端正确配置了 SSL,这个功能意义不大,但在某些场景下仍然可能有用。密码最长不能超过 16 个字符。它与 Keeper 身份验证模型无关。[#74673](https://github.com/ClickHouse/ClickHouse/pull/74673) ([alesapin](https://github.com/alesapin))。 -* 为配置重载器添加错误码。[#74746](https://github.com/ClickHouse/ClickHouse/pull/74746) ([Garrett Thomas](https://github.com/garrettthomaskth))。 -* 为 MySQL 和 PostgreSQL 表函数和表引擎添加了对 IPv6 地址的支持。 [#74796](https://github.com/ClickHouse/ClickHouse/pull/74796) ([Mikhail Koviazin](https://github.com/mkmkme)). -* 为 `divideDecimal` 实现短路优化。修复 [#74280](https://github.com/ClickHouse/ClickHouse/issues/74280)。[#74843](https://github.com/ClickHouse/ClickHouse/pull/74843)([Kevin Mingtarja](https://github.com/kevinmingtarja))。 -* 现在可以在启动脚本中配置用户。[#74894](https://github.com/ClickHouse/ClickHouse/pull/74894)([pufit](https://github.com/pufit))。 -* 新增对 Azure SAS 令牌的支持。[#72959](https://github.com/ClickHouse/ClickHouse/pull/72959)([Azat Khuzhin](https://github.com/azat))。 - -#### 缺陷修复(官方稳定版中用户可见的异常行为) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release} - -* 仅在压缩编解码器支持时才设置 Parquet 压缩级别。 [#74659](https://github.com/ClickHouse/ClickHouse/pull/74659) ([Arthur Passos](https://github.com/arthurpassos)). -* 修复了一个回归缺陷:在使用带修饰符的排序规则语言环境时会抛出错误。现在,例如 `SELECT arrayJoin(['kk 50', 'KK 01', ' KK 2', ' KK 3', 'kk 1', 'x9y99', 'x9y100']) item ORDER BY item ASC COLLATE 'tr-u-kn-true-ka-shifted` 可以正常工作。[#73544](https://github.com/ClickHouse/ClickHouse/pull/73544)([Robert Schulze](https://github.com/rschu1ze))。 -* 修复无法使用 keeper-client 创建 SEQUENTIAL 节点的问题。[#64177](https://github.com/ClickHouse/ClickHouse/pull/64177) ([Duc Canh Le](https://github.com/canhld94)). -* 修复 position 系列函数中字符计数不正确的问题。[#71003](https://github.com/ClickHouse/ClickHouse/pull/71003)([思维](https://github.com/heymind))。 -* 由于未处理的部分权限撤销,`RESTORE` 针对访问实体的操作所需权限超出了必要范围。此 PR 修复了该问题。关闭 [#71853](https://github.com/ClickHouse/ClickHouse/issues/71853)。[#71958](https://github.com/ClickHouse/ClickHouse/pull/71958)([pufit](https://github.com/pufit))。 -* 避免在执行 `ALTER TABLE REPLACE/MOVE PARTITION FROM/TO TABLE` 后出现停顿。正确获取后台任务调度的相关设置。[#72024](https://github.com/ClickHouse/ClickHouse/pull/72024) ([Aleksei Filatov](https://github.com/aalexfvk)). -* 修复在某些输入和输出格式(如 Parquet、Arrow)中对空元组的处理。[#72616](https://github.com/ClickHouse/ClickHouse/pull/72616)([Michael Kolupaev](https://github.com/al13n321))。 -* 现在,在通配符数据库/表上执行列级 GRANT SELECT/INSERT 语句会抛出错误。[#72646](https://github.com/ClickHouse/ClickHouse/pull/72646) ([Johann Gan](https://github.com/johanngan))。 -* 修复用户由于目标访问实体中的隐式授权而无法执行 `REVOKE ALL ON *.*` 的问题。[#72872](https://github.com/ClickHouse/ClickHouse/pull/72872)([pufit](https://github.com/pufit))。 -* 修复 `formatDateTime` 标量函数对正时区偏移量的格式化。 [#73091](https://github.com/ClickHouse/ClickHouse/pull/73091) ([ollidraese](https://github.com/ollidraese)). -* 修复在通过 PROXYv1 建立连接且设置了 `auth_use_forwarded_address` 时,源端口反映不正确的问题——此前错误地使用了代理端口。新增 `currentQueryID()` 函数。[#73095](https://github.com/ClickHouse/ClickHouse/pull/73095) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* 在 TCPHandler 中将格式设置传递给 NativeWriter,从而确保诸如 `output_format_native_write_json_as_string` 之类的设置能够被正确应用。[#73179](https://github.com/ClickHouse/ClickHouse/pull/73179) ([Pavel Kruglov](https://github.com/Avogar)). -* 修复 StorageObjectStorageQueue 中的崩溃问题。 [#73274](https://github.com/ClickHouse/ClickHouse/pull/73274) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 修复在服务器关闭期间可刷新物化视图中发生的罕见崩溃。[#73323](https://github.com/ClickHouse/ClickHouse/pull/73323) ([Michael Kolupaev](https://github.com/al13n321))。 -* 函数 `formatDateTime` 的 `%f` 占位符现在无条件生成 6 位小数(秒的小数部分)。这使其行为与 MySQL 的 `DATE_FORMAT` 函数兼容。可以通过将设置 `formatdatetime_f_prints_scale_number_of_digits` 设为 `1` 来恢复此前的行为。[#73324](https://github.com/ClickHouse/ClickHouse/pull/73324) ([ollidraese](https://github.com/ollidraese))。 -* 修复了从 `s3` 存储和表函数读取时按 `_etag` 列进行过滤的问题。[#73353](https://github.com/ClickHouse/ClickHouse/pull/73353) ([Anton Popov](https://github.com/CurtizJ)). -* 修复在旧分析器中,当在 `JOIN ON` 表达式中使用 `IN (subquery)` 时出现的 `Not-ready Set is passed as the second argument for function 'in'` 错误。[#73382](https://github.com/ClickHouse/ClickHouse/pull/73382)([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* 修复为 Dynamic 和 JSON 列准备压缩合并(squash)时的处理逻辑。此前在某些情况下,即使尚未达到类型 / 路径数量限制,新的类型仍可能被插入到 shared variant/shared data 中。[#73388](https://github.com/ClickHouse/ClickHouse/pull/73388)([Pavel Kruglov](https://github.com/Avogar))。 -* 在对类型进行二进制解码时检查损坏的大小信息,以避免过大的内存分配。[#73390](https://github.com/ClickHouse/ClickHouse/pull/73390) ([Pavel Kruglov](https://github.com/Avogar)). -* 修复了在启用并行副本时,从单副本集群读取数据时的逻辑错误。 [#73403](https://github.com/ClickHouse/ClickHouse/pull/73403) ([Michael Kolupaev](https://github.com/al13n321)). -* 修复在搭配 ZooKeeper 和旧版 Keeper 使用时的 ObjectStorageQueue。 [#73420](https://github.com/ClickHouse/ClickHouse/pull/73420) ([Antonio Andelic](https://github.com/antonio2368)). -* 实现了修复,使得可以默认启用 hive 分区。[#73479](https://github.com/ClickHouse/ClickHouse/pull/73479) ([Yarik Briukhovetskyi](https://github.com/yariks5s))。 -* 修复创建向量相似度索引时的数据竞争。 [#73517](https://github.com/ClickHouse/ClickHouse/pull/73517) ([Antonio Andelic](https://github.com/antonio2368)). -* 修复了当字典的源包含数据错误的函数时导致的段错误(segfault)。 [#73535](https://github.com/ClickHouse/ClickHouse/pull/73535) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* 修复 storage S3(Azure)Queue 中插入失败后的重试机制。关闭关联问题 [#70951](https://github.com/ClickHouse/ClickHouse/issues/70951)。[#73546](https://github.com/ClickHouse/ClickHouse/pull/73546)([Kseniia Sumarokova](https://github.com/kssenii))。 -* 修复了在启用 `optimize_functions_to_subcolumns` 设置时,对于包含 `LowCardinality` 元素的元组,函数 `tupleElement` 在某些情况下可能出现的错误。[#73548](https://github.com/ClickHouse/ClickHouse/pull/73548) ([Anton Popov](https://github.com/CurtizJ))。 -* 修复在枚举 `glob` 之后紧跟 `range one` 时的解析问题。修复 [#73473](https://github.com/ClickHouse/ClickHouse/issues/73473)。[#73569](https://github.com/ClickHouse/ClickHouse/pull/73569)([Konstantin Bogdanov](https://github.com/thevar1able))。 -* 修复在非复制表的子查询中忽略 parallel_replicas_for_non_replicated_merge_tree 设置的问题。 [#73584](https://github.com/ClickHouse/ClickHouse/pull/73584) ([Igor Nikonov](https://github.com/devcrafter)). -* 修复在任务无法调度时抛出的 `std::logical_error`。该问题在压力测试中被发现。[#73629](https://github.com/ClickHouse/ClickHouse/pull/73629) ([Alexander Gololobov](https://github.com/davenger))。 -* 在 `EXPLAIN SYNTAX` 中不要对查询进行语义解释,以避免因对分布式查询选择了错误的处理阶段而导致逻辑错误。修复了 [#65205](https://github.com/ClickHouse/ClickHouse/issues/65205)。[#73634](https://github.com/ClickHouse/ClickHouse/pull/73634)([Dmitry Novik](https://github.com/novikd))。 -* 修复 Dynamic 列中可能的数据不一致问题。修复可能出现的逻辑错误 `Nested columns sizes are inconsistent with local_discriminators column size`。 [#73644](https://github.com/ClickHouse/ClickHouse/pull/73644) ([Pavel Kruglov](https://github.com/Avogar))。 -* 修复了在带有 `FINAL` 和 `SAMPLE` 的查询中出现的 `NOT_FOUND_COLUMN_IN_BLOCK` 错误。修复了在从 `CollapsingMergeTree` 读取数据时使用 `FINAL` 的查询结果不正确的问题,并启用了针对 `FINAL` 的优化。[#73682](https://github.com/ClickHouse/ClickHouse/pull/73682) ([Anton Popov](https://github.com/CurtizJ))。 -* 修复在 LIMIT BY COLUMNS 子句中的崩溃问题。[#73686](https://github.com/ClickHouse/ClickHouse/pull/73686) ([Raúl Marín](https://github.com/Algunenano)). -* 修复了这样一个 Bug:在强制使用普通 projection 时,即使查询与定义的 projection 完全相同,却没有选中该 projection,导致报错的问题。 [#73700](https://github.com/ClickHouse/ClickHouse/pull/73700) ([Shichao Jin](https://github.com/jsc0218)). -* 修复 Dynamic/Object 结构的反序列化问题。该问题可能会导致出现 CANNOT_READ_ALL_DATA 异常。[#73767](https://github.com/ClickHouse/ClickHouse/pull/73767) ([Pavel Kruglov](https://github.com/Avogar)). -* 在从备份恢复分片时跳过 `metadata_version.txt` 文件。[#73768](https://github.com/ClickHouse/ClickHouse/pull/73768)([Vitaly Baranov](https://github.com/vitlibar))。 -* 修复在使用 LIKE 将值 Cast 为 Enum 时出现的段错误。[#73775](https://github.com/ClickHouse/ClickHouse/pull/73775) ([zhanglistar](https://github.com/zhanglistar))。 -* 修复 S3 Express 存储桶无法作为磁盘使用的问题。[#73777](https://github.com/ClickHouse/ClickHouse/pull/73777)([Sameer Tamsekar](https://github.com/stamsekar))。 -* 允许在 CollapsingMergeTree 表中合并具有无效的 sign 列值的行。[#73864](https://github.com/ClickHouse/ClickHouse/pull/73864)([Christoph Wurm](https://github.com/cwurm))。 -* 修复在存在离线副本时查询 DDL 出错的问题。[#73876](https://github.com/ClickHouse/ClickHouse/pull/73876)([Tuan Pham Anh](https://github.com/tuanpach))。 -* 修复了在比较 `map()` 类型时偶发失败的问题,该问题是由于可以创建其嵌套 tuple 中未对字段('keys'、'values')进行显式命名的 `Map` 所导致。 [#73878](https://github.com/ClickHouse/ClickHouse/pull/73878) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* 在解析 `GROUP BY ALL` 子句时忽略窗口函数。修复 [#73501](https://github.com/ClickHouse/ClickHouse/issues/73501)。[#73916](https://github.com/ClickHouse/ClickHouse/pull/73916)([Dmitry Novik](https://github.com/novikd))。 -* 修复隐式权限(之前起到通配符的作用)。 [#73932](https://github.com/ClickHouse/ClickHouse/pull/73932) ([Azat Khuzhin](https://github.com/azat)). -* 修复在创建嵌套 `Map` 时的高内存占用问题。[#73982](https://github.com/ClickHouse/ClickHouse/pull/73982)([Pavel Kruglov](https://github.com/Avogar))。 -* 修复解析包含空键名的嵌套 JSON 时的问题。[#73993](https://github.com/ClickHouse/ClickHouse/pull/73993) ([Pavel Kruglov](https://github.com/Avogar)). -* 修复:当某个别名被另一个别名引用并在 SELECT 中按相反顺序被选择时,可能不会被添加到 projection 中。[#74033](https://github.com/ClickHouse/ClickHouse/pull/74033) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* 在 Azure 上初始化 plain_rewritable 磁盘时忽略对象未找到错误。[#74059](https://github.com/ClickHouse/ClickHouse/pull/74059) ([Julia Kartseva](https://github.com/jkartseva))。 -* 修复 `any` 和 `anyLast` 在处理枚举类型和空表时的行为。[#74061](https://github.com/ClickHouse/ClickHouse/pull/74061) ([Joanna Hulboj](https://github.com/jh0x))。 -* 修复了当用户在 Kafka 表引擎中指定关键字参数时出现的异常情况。 [#74064](https://github.com/ClickHouse/ClickHouse/pull/74064) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* 修复在将存储引擎 `S3Queue` 的设置在带有 "s3queue_" 前缀和不带此前缀之间相互转换时的问题。 [#74075](https://github.com/ClickHouse/ClickHouse/pull/74075) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 添加设置 `allow_push_predicate_ast_for_distributed_subqueries`。这为使用 analyzer 的分布式查询提供了基于 AST 的谓词下推能力。这是一个临时解决方案,在支持带查询计划序列化的分布式查询之前将采用该方案。修复 [#66878](https://github.com/ClickHouse/ClickHouse/issues/66878) [#69472](https://github.com/ClickHouse/ClickHouse/issues/69472) [#65638](https://github.com/ClickHouse/ClickHouse/issues/65638) [#68030](https://github.com/ClickHouse/ClickHouse/issues/68030) [#73718](https://github.com/ClickHouse/ClickHouse/issues/73718)。 [#74085](https://github.com/ClickHouse/ClickHouse/pull/74085) ([Nikolai Kochetov](https://github.com/KochetovNicolai))。 -* 修复了在 [#73095](https://github.com/ClickHouse/ClickHouse/issues/73095) 之后,`forwarded_for` 字段中可能包含端口,从而导致无法解析带端口的主机名的问题。[#74116](https://github.com/ClickHouse/ClickHouse/pull/74116)([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy))。 -* 修复了 `ALTER TABLE (DROP STATISTICS ...) (DROP STATISTICS ...)` 的错误格式。[#74126](https://github.com/ClickHouse/ClickHouse/pull/74126)([Han Fei](https://github.com/hanfei1991))。 -* 修复问题 [#66112](https://github.com/ClickHouse/ClickHouse/issues/66112)。[#74128](https://github.com/ClickHouse/ClickHouse/pull/74128)([Anton Ivashkin](https://github.com/ianton-ru))。 -* 在 `CREATE TABLE` 中已无法再将 `Loop` 用作表引擎。此前这种组合会导致段错误。 [#74137](https://github.com/ClickHouse/ClickHouse/pull/74137) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* 修复 `postgresql` 和 `sqlite` 表函数中的安全问题,防止 SQL 注入攻击。[#74144](https://github.com/ClickHouse/ClickHouse/pull/74144)([Pablo Marcos](https://github.com/pamarcos))。 -* 修复从压缩的 Memory 引擎表读取子列时发生的崩溃。修复了 [#74009](https://github.com/ClickHouse/ClickHouse/issues/74009)。[#74161](https://github.com/ClickHouse/ClickHouse/pull/74161)([Nikita Taranov](https://github.com/nickitat))。 -* 修复在查询 system.detached_tables 时出现的无限循环问题。 [#74190](https://github.com/ClickHouse/ClickHouse/pull/74190) ([Konstantin Morozov](https://github.com/k-morozov))。 -* 在将文件设置为失败状态时,修复 `s3queue` 中的逻辑错误。 [#74216](https://github.com/ClickHouse/ClickHouse/pull/74216) ([Kseniia Sumarokova](https://github.com/kssenii)). -* 修复从基础备份执行 `RESTORE` 时的原生复制设置(`allow_s3_native_copy`/`allow_azure_native_copy`)。[#74286](https://github.com/ClickHouse/ClickHouse/pull/74286) ([Azat Khuzhin](https://github.com/azat)). -* 修复了当数据库中分离表的数量为 max_block_size 的整数倍时出现的问题。 [#74289](https://github.com/ClickHouse/ClickHouse/pull/74289) ([Konstantin Morozov](https://github.com/k-morozov)). -* 修复通过对象存储(如 S3)进行复制时,当源端和目标端凭证不同时出现的问题。 [#74331](https://github.com/ClickHouse/ClickHouse/pull/74331) ([Azat Khuzhin](https://github.com/azat)). -* 修复在 GCS 上进行原生复制时对“在 JSON API 中使用 Rewrite 方法”的检测。[#74338](https://github.com/ClickHouse/ClickHouse/pull/74338) ([Azat Khuzhin](https://github.com/azat)). -* 修复 `BackgroundMergesAndMutationsPoolSize` 计算不正确的问题(之前计算结果为实际值的 2 倍)。[#74509](https://github.com/ClickHouse/ClickHouse/pull/74509) ([alesapin](https://github.com/alesapin))。 -* 修复在启用 Cluster Discovery 时导致 keeper watches 泄漏的问题。 [#74521](https://github.com/ClickHouse/ClickHouse/pull/74521) ([RinChanNOW](https://github.com/RinChanNOWWW)). -* 修复 UBSan 报告的内存对齐问题 [#74512](https://github.com/ClickHouse/ClickHouse/issues/74512)。[#74534](https://github.com/ClickHouse/ClickHouse/pull/74534)([Arthur Passos](https://github.com/arthurpassos))。 -* 修复在创建表时 KeeperMap 并发清理的问题。 [#74568](https://github.com/ClickHouse/ClickHouse/pull/74568) ([Antonio Andelic](https://github.com/antonio2368)). -* 当查询中包含 `EXCEPT` 或 `INTERSECT` 时,不要在子查询中删除未使用的投影列,以确保查询结果正确。修复 [#73930](https://github.com/ClickHouse/ClickHouse/issues/73930)。修复 [#66465](https://github.com/ClickHouse/ClickHouse/issues/66465)。[#74577](https://github.com/ClickHouse/ClickHouse/pull/74577)([Dmitry Novik](https://github.com/novikd))。 -* 修复了在启用稀疏序列化时,包含 `Tuple` 列的表之间执行 `INSERT SELECT` 查询时出现的问题。 [#74698](https://github.com/ClickHouse/ClickHouse/pull/74698) ([Anton Popov](https://github.com/CurtizJ)). -* 函数 `right` 在负的常量偏移量情况下行为不正确。 [#74701](https://github.com/ClickHouse/ClickHouse/pull/74701) ([Daniil Ivanik](https://github.com/divanik)). -* 修复由于客户端解压缩缺陷导致 gzip 压缩后的数据插入有时失败的问题。 [#74707](https://github.com/ClickHouse/ClickHouse/pull/74707) ([siyuan](https://github.com/linkwk7)). -* 带有通配符授权的部分撤销可能会撤销超出预期范围的权限。修复 [#74263](https://github.com/ClickHouse/ClickHouse/issues/74263)。[#74751](https://github.com/ClickHouse/ClickHouse/pull/74751)([pufit](https://github.com/pufit))。 -* Keeper 修复:修正从磁盘读取日志记录的问题。 [#74785](https://github.com/ClickHouse/ClickHouse/pull/74785) ([Antonio Andelic](https://github.com/antonio2368)). -* 修复了对 SYSTEM REFRESH/START/STOP VIEW 权限检查的逻辑,现在在对某个特定 VIEW 执行查询时,不再需要在 `*.*` 上拥有该权限,只需对该 VIEW 本身授予权限即可。 [#74789](https://github.com/ClickHouse/ClickHouse/pull/74789) ([Alexander Tokmakov](https://github.com/tavplubix)). -* `hasColumnInTable` 函数目前不会考虑别名列。对其进行修复,使其也支持别名列。 [#74841](https://github.com/ClickHouse/ClickHouse/pull/74841) ([Bharat Nallan](https://github.com/bharatnc))。 -* 修复在 Azure Blob Storage 中,对包含空列的表执行数据部分合并时出现的 FILE_DOESNT_EXIST 错误。[#74892](https://github.com/ClickHouse/ClickHouse/pull/74892)([Julia Kartseva](https://github.com/jkartseva))。 -* 在连接临时表时修正投影列名,关闭 [#68872](https://github.com/ClickHouse/ClickHouse/issues/68872)。[#74897](https://github.com/ClickHouse/ClickHouse/pull/74897)([Vladimir Cherkasov](https://github.com/vdimir))。 - -#### 构建/测试/打包优化 {#buildtestingpackaging-improvement} - -* 通用安装脚本现在即使在 macOS 上也会提示安装。[#74339](https://github.com/ClickHouse/ClickHouse/pull/74339) ([Alexey Milovidov](https://github.com/alexey-milovidov)). \ No newline at end of file +:::note +2026 年尚无新版本发布。 +查看 [2025](/docs/whats-new/changelog/2025) 年的变更日志。 +::: \ No newline at end of file