这些设置可在 system.settings 中查看,并由 源代码 自动生成。
cast_ipv4_ipv6_default_on_conversion_error
类型
Bool
默认值
0
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 22.3 | 0 | 使函数 cast(value, 'IPv4') 和 cast(value, 'IPv6') 的行为与 toIPv4 和 toIPv6 函数相同 |
发生转换错误时,转换为 IPv4 的 CAST 运算符、转换为 IPv6 类型的 CAST 运算符,以及 toIPv4、toIPv6 函数将返回默认值,而不是抛出异常。
cast_keep_nullable
类型
Bool
默认值
0
启用或禁用在 CAST 操作中保留 Nullable 数据类型。
当该设置启用时,如果 CAST 函数的参数为 Nullable,则结果也会转换为 Nullable 类型。当该设置禁用时,结果始终严格为目标数据类型。
可能的值:
- 0 —
CAST结果严格为指定的目标数据类型。 - 1 — 如果参数类型为
Nullable,则CAST结果会转换为Nullable(DestinationDataType)。
示例
以下查询的结果严格为目标数据类型:
SET cast_keep_nullable = 0;
SELECT CAST(toNullable(toInt32(0)) AS Int32) as x, toTypeName(x);结果:
┌─x─┬─toTypeName(CAST(toNullable(toInt32(0)), 'Int32'))─┐
│ 0 │ Int32 │
└───┴───────────────────────────────────────────────────┘以下查询会使目标端数据类型带有 Nullable 修饰:
SET cast_keep_nullable = 1;
SELECT CAST(toNullable(toInt32(0)) AS Int32) as x, toTypeName(x);结果:
┌─x─┬─toTypeName(CAST(toNullable(toInt32(0)), 'Int32'))─┐
│ 0 │ Nullable(Int32) │
└───┴───────────────────────────────────────────────────┘另请参阅
- CAST 函数