> Are you proposing a switch that would make PostgreSQL error out if > somebody wants to use an unassigned code point? That would be an > option.
You can use a CHECK(UNICODE_ASSIGNED(t)) in version 17, and in version 18 I have a proposal here to make it a database-level option:
And if you define a domain over text with this check, you would effectively have a type that works exactly like text except you can only store assigned code points in it. Then use that instead of text everywhere (easy to audit with a query over the system tables).