↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

百科 / 配置参数 / 客户端连接默认值

CONFIGURATION PARAMETER客户端连接默认值 / 区域和格式化

icu_validation_level

控制在遇到 ICU 区域设置验证问题时使用何种消息严重级别报告该问题。

Log level for reporting invalid ICU locale strings.

枚举 会话 引入 16 现存至 20 devel 0 次默认值变更

类型
枚举enum
上下文
会话任何用户都可在会话内用 SET 修改
默认值
warning
枚举值
disabled, debug5, debug4, debug3, debug2, debug1, log, notice, warning, error
引入版本
16
状态
现存

PostgreSQL 18.7 手册 官方文档 引入提交 1671f990dd

版本轨迹

相对 PostgreSQL 17 无变化。

默认值变迁

warning 16 – 19

已记录的默认值在 PostgreSQL 16–19 之间未变。带单位的取值换算成了可读形式,原始的 boot_val 与单位写在悬浮提示里。

手册说明

PostgreSQL 18.7 手册 · 19.11 客户端连接默认值 本站手册 官方原文

控制在遇到 ICU 区域设置验证问题时使用何种消息严重级别报告该问题。有效值包括 DISABLED、DEBUG5、DEBUG4、DEBUG3、DEBUG2、DEBUG1、INFO、NOTICE、WARNING、ERROR 和 LOG。

如果设置为 DISABLED,则不会报告任何验证问题;否则,将以给定的消息级别报告问题。默认值为 WARNING。

机制详解

icu_validation_level:设置报告无效 ICU 区域设置字符串所用的消息级别。该参数改变无效 ICU 区域标识符的报告方式,既可关闭报告,也可提升为错误。

icu_validation_level 属于 USER 上下文。获授权角色可在会话内修改,ALTER ROLE 或 ALTER DATABASE 可为未来会话建立默认值。

它改变客户端边界上的表示、解析或区域行为,而不是物理存储。应与其他区域和格式参数,以及驱动的二进制或类型化协议协同考虑。

调优建议

按典型负载给出的取值思路,不是放之四海皆准的配方:实际取值要看数据量、并发度与硬件。

  • OLTP在线事务处理

    保持 icu_validation_level 为 WARNING,让无效区域标识可见;只有迁移门禁已清理既有输入时才提升为 ERROR。

  • OLAP分析与批处理

    分析对象创建采用同一验证策略;降低级别可能让不一致区域元数据扩散到可复现作业。

  • 小规格低配实例与开发机

    不要为容量而调节;除非受控兼容问题需要临时降低报告级别,否则保持 WARNING。

常见问题

  • 只在一个会话中修改 icu_validation_level,却认为角色默认值、数据库默认值或其他池化会话也已随之改变。
  • 误以为显示参数会改变已存储值或服务器端类型语义。
  • 未测试文本解析客户端、导出与池化会话就修改角色或数据库默认值。
  • 没有回滚计划及客户端或运维兼容测试,就全局修改 icu_validation_level。

演化历史

相邻两个大版本之间的差异,新的在前。版本号链到该版的快照。

  1. PostgreSQL 16 ← 15 新增此参数

    PostgreSQL 16 起可用

逐版本快照

每个收录版本里的 7 项事实,与上一个存在的版本不同的格子带底色。版本号链到该版。

版本 默认值单位上下文类型最小值最大值枚举值
16 warning — 会话 枚举 — — disabled, debug5, debug4, debug3, debug2, debug1, log, notice, warning, error
17 warning — 会话 枚举 — — disabled, debug5, debug4, debug3, debug2, debug1, log, notice, warning, error
18 warning — 会话 枚举 — — disabled, debug5, debug4, debug3, debug2, debug1, log, notice, warning, error
19 warning — 会话 枚举 — — disabled, debug5, debug4, debug3, debug2, debug1, log, notice, warning, error
20 — — — 枚举 — — —

参考资料

同类参数

参数 类型 上下文 默认值 版本变动 最近变更
Client Connection Defaults 客户端连接默认值 12 个 ↗
区域和格式化 12
client_encoding 字符串 会话 SQL_ASCII —
设置客户端编码(字符集)。 现存
DateStyle 字符串 会话 ISO, MDY —
设置日期和时间值的显示格式,以及解释有歧义的日期输入值的规则。 现存
default_text_search_config 字符串 会话 pg_catalog.simple —
选择被那些没有显式参数指定配置的文本检索函数变体使用的文本检索配置。 现存
extra_float_digits 整数 会话 1 121 次
这个参数调整以文本形式输出浮点值时所用的位数,包括 float4,float8 以及几何数据类型。 现存
icu_validation_level 枚举 会话 warning —
控制在遇到 ICU 区域设置验证问题时使用何种消息严重级别报告该问题。 现存
IntervalStyle 枚举 会话 postgres —
设置时间间隔值的显示格式。 现存
lc_messages 字符串 会话(超级用户) 空字符串 —
设置消息显示的语言。 现存
lc_monetary 字符串 会话 C —
设置用于格式化货币量的区域设置,例如用 to_char 函数族。 现存
lc_numeric 字符串 会话 C —
设置用于格式化数字的区域设置,例如用 to_char 函数族。 现存
lc_time 字符串 会话 C —
设置用于格式化日期和时间的区域设置,例如用 to_char 函数族。 现存
TimeZone 字符串 会话 GMT 9.22 次
设置用于显示和解释时间戳的时区。 现存
timezone_abbreviations 字符串 会话 未设置 9.11 次
设置服务器在日期时间输入中接受的额外时区缩写集合(除当前 TimeZone 设置所定义的缩写之外)。 现存