Thread: character_not_in_repertoire vs. untranslatable_character
So there's an ISO error 22021 "character not in repertoire" and a PostgreSQL error 22P05 "untranslatable character" that seem very similar. If I look in backend/utils/mb/wchar.c, it looks as if PostgreSQL uses the first for the case of a corrupted encoding (bytes that can't be decoded to a character at all), and the second for the case of a valid character that isn't available in a conversion's destination encoding. Am I right about that? The names seem sort of confusable, and even reading ISO 9075 drafts I haven't really found any additional detail on what they wanted 22021 to mean, so I guess as long as I know what it means in PG, that's as good as it gets. :) -Chap
Chapman Flack <chap@anastigmatix.net> writes: > So there's an ISO error 22021 "character not in repertoire" and > a PostgreSQL error 22P05 "untranslatable character" that seem > very similar. > If I look in backend/utils/mb/wchar.c, it looks as if PostgreSQL > uses the first for the case of a corrupted encoding (bytes that > can't be decoded to a character at all), and the second for the > case of a valid character that isn't available in a conversion's > destination encoding. Yeah, that's the intended distinction I believe, though I would not want to swear that we've been 100% consistent. 22021 means "this character is bad in isolation", AFAICT, so it didn't seem appropriate for the conversion scenario. regards, tom lane