When ICU locale validation problems are encountered, controls which message level is used to report the problem.
At a glance
| Property | Value |
|---|---|
| Parameter | icu_validation_level |
| Category | Client Connection Defaults |
| Default | WARNING |
| Value type | enum |
| Change scope | Per-session (SET) |
| Available in | PostgreSQL 16, 17, 18, 19 (added in 16) |
What it does
When ICU locale validation problems are encountered, controls which message level is used to report the problem. Valid values are DISABLED, DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, INFO, NOTICE, WARNING, ERROR, and LOG.
If set to DISABLED, does not report validation problems at all. Otherwise reports problems at the given message level. The default is WARNING.
(Description quoted from the official PostgreSQL documentation.)
How to apply a change
Can be set per session with SET, per role/database with ALTER ROLE/DATABASE ... SET, or globally in postgresql.conf.
Inspect the current value and source with SHOW icu_validation_level; or SELECT name, setting, unit, context, source FROM pg_settings WHERE name = 'icu_validation_level';.
Tuning guidance
This sets a session default (locale, formatting, search path or transaction behaviour) rather than a performance knob. Set it per role or database with ALTER ROLE/DATABASE ... SET so the right default follows the right workload, and prefer setting it explicitly in the application for behaviour the query results depend on.