allow_aggregate_partitions_independently
ReadFromMergeTree 中的启发式规则会在布局不理想时 (分区过少、分区过多,或分区大小严重失衡) 自动禁用该优化;如需绕过这些检查,请参见 force_aggregate_partitions_independently。
allow_archive_path_syntax
<archive> :: <file>,前提是归档文件具有正确的扩展名。
allow_asynchronous_read_from_io_pool_for_merge_tree
allow_calculating_subcolumns_sizes_for_merge_tree_reading
allow_changing_replica_until_first_data_packet
receive_data_timeout 超时时间内进度没有更新) ;否则,一旦首次取得进度,就会禁止切换副本。
allow_create_index_without_type
allow_custom_error_code_in_throwif
allow_ddl
allow_delta_kernel_rs
allow_experimental_delta_kernel_rs
允许使用 delta-kernel-rs 实现读取 Delta Lake 表。
allow_distinct_partitions_independently
DISTINCT 列的确定性函数时,启用在独立线程中按分区计算 DISTINCT,从而跳过跨流合并。当分区数接近 CPU 核心数且各分区大小大致相同时,此设置会带来收益;否则,成本启发式策略会跳过此优化。请参阅 max_number_of_partitions_for_independent_distinct 和 force_distinct_partitions_independently。不适用于 FINAL 或并行副本。
设置 max_rows_in_distinct 或 max_bytes_in_distinct 时,不会应用此设置:这些限制由可见整个合并结果的单个 DISTINCT 转换执行,因此会保留跨流合并,以确保其全局语义。
allow_distributed_ddl
allow_drop_detached
allow_dynamic_type_in_join_keys
allow_execute_multiif_columnar
allow_fuzz_query_functions
fuzzQuery 函数,该函数会对查询字符串进行随机 AST 变更。
allow_general_join_planning
allow_get_client_http_header
getClientHTTPHeader,该函数可用于获取当前 HTTP 请求的请求头值。出于安全考虑,此功能默认未启用,因为某些请求头 (如 Cookie) 可能包含敏感信息。请注意,X-ClickHouse-*、Authentication 和 Authorization 请求头始终受限,无法通过此函数获取。
allow_hyperscan
allow_iceberg_remove_orphan_files
allow_insert_into_iceberg
allow_experimental_insert_into_iceberg
允许执行向 Iceberg 插入数据的 insert 查询。
allow_introspection_functions
- 1 — 启用内部信息函数。
- 0 — 禁用内部信息函数。
allow_key_condition_coalesce_rewrite
coalesce(a_1, ..., a_N) <op> const 的谓词 (以及等价的 ifNull 形式,或常量在左侧的情况) 重写为析取形式 (a_1 <op> const) OR (a_1 IS NULL AND a_2 <op> const) OR ... OR (a_1 IS NULL AND ... AND a_{N-1} IS NULL AND a_N <op> const),从而可以使用每个 a_i 上的按列主键和跳过索引。支持部分常量形式,例如 coalesce(a, 42, b) 和 coalesce(a, b, 42):参数列表会像 coalesce 本身一样进行归一化 (丢弃 NULL 字面量,以及第一个非 Nullable 参数之后的参数) ;如果末尾存在非 NULL 常量,则会将其作为最终分支输出。此重写仅用于增强索引裁剪;运行时过滤仍使用原始谓词。
此外,形如 nullIf(key, sentinel) = const 的精确相等谓词 (其中 sentinel != const 且类型完全匹配) 会被重写为 key = const,以便 key 上的主键、分区和跳过索引可以直接裁剪粒度。不支持对范围条件和析取式 nullIf 进行裁剪。
allow_limit_by_partitions_independently
LIMIT BY 列的确定性函数时,启用在独立线程中按分区分别计算 LIMIT BY。
allow_lossy_numeric_supertype
if/multiIf/coalesce/ifNull/array/map 在处理一组不存在无损公共类型的数值参数时 (例如 Decimal 与 Float64,或 Int64 与 Float64) ,会将其解析为数值超类型 (Float64) ,而非报错,但可能损失精度。这样,结果便可直接用于 sum、avg、min 和 max 等合并值的聚合函数。此设置独立于 use_variant_as_common_type:无论是否启用 use_variant_as_common_type,都会生成数值超类型。禁用时 (默认) ,此类参数集没有公共类型,因此若启用了 use_variant_as_common_type,会成为 Variant;否则会引发 NO_COMMON_TYPE。
allow_materialized_view_with_bad_select
allow_metadata_only_named_tuple_alter
allow_minmax_index_for_json
allow_named_collection_override_by_default
allow_non_metadata_alters
allow_nonconst_timezone_arguments
allow_nullable_tuple_in_extracted_subcolumns
Tuple(...) 的提取子列是否可以设为 Nullable(Tuple(...)) 类型。
false:返回Tuple(...),并对缺少该子列的行使用默认 Tuple 值。true:返回Nullable(Tuple(...)),并对缺少该子列的行使用NULL。
Nullable(Tuple(...)) 列;这一点由 enable_nullable_tuple_type 控制。
ClickHouse 使用服务器启动时加载的此设置值。
通过 SET 或查询级 SETTINGS 所做的更改不会改变提取子列的行为。
要更改提取子列的行为,请在启动 profile 配置 (例如 users.xml) 中更新 allow_nullable_tuple_in_extracted_subcolumns,然后重启服务器。
allow_rank_dense_rank_arguments
RANK 和 DENSE_RANK 窗口函数传递参数,以保持向后兼容。
根据 SQL 标准,RANK 和 DENSE_RANK 不接受任何参数——它们仅根据
OVER (ORDER BY ...) 窗口对行进行排名。在 26.5 之前的 ClickHouse 版本中,类似
RANK(x) OVER (...) 的查询会静默接受并忽略该参数,这会导致用户困惑
(显式写出的参数看起来似乎会影响排名,但实际上并不会) 。
当此设置为 false (默认值) 时,RANK 和 DENSE_RANK 会拒绝任何参数,并
抛出 NUMBER_OF_ARGUMENTS_DOESNT_MATCH。当设为 true 时,将恢复旧版的宽松行为——
参数会被静默忽略,与 26.5 之前的行为一致。
allow_reorder_prewhere_conditions
allow_replace_partition_from_empty_source
ALTER TABLE ... REPLACE PARTITION ... FROM ... 静默删除目标端分区。
默认情况下不允许这样做:如果源表在请求的分区中没有数据,那么从该源执行 REPLACE PARTITION 会抛出异常,因为这种情况下,该操作实际上等同于对目标端静默执行 DROP PARTITION (目标端数据会被删除,但不会有任何内容替换它) ,这也是意外数据丢失的常见原因 (参见 #23727) 。
启用此设置可恢复之前的行为,例如当你有意使用空源分区来清空目标端数据时。若要无条件删除,建议直接改用 ALTER TABLE ... DROP PARTITION ...。
allow_settings_after_format_in_insert
INSERT 查询中于 FORMAT 之后使用 SETTINGS。不建议使用此设置,因为这可能会将 SETTINGS 的一部分解释为值。
示例:
allow_settings_after_format_in_insert 时才能运行:
- 0 — 禁止。
- 1 — 允许。
仅当你的用例依赖旧语法、需要保持向后兼容时,才使用此设置。
allow_simdjson
JSON* 函数中使用 simdjson 库。禁用后将使用 rapidjson。