Remove MULE_INTERNAL encoding.

Thomas Munro <tmunro@postgresql.org>

Commit: 77645d44e3552ca0690e158ce5c51dc75c4934a4
Author: Thomas Munro <tmunro@postgresql.org>
Date: 2026-04-08T05:40:06Z
Remove MULE_INTERNAL encoding.

This was useful before widespread Unicode adoption, and was based on the
internal encoding Emacs used to mix multiple sub-encodings.  Emacs
itself has stopped using it, and our implementation hadn't been updated
with modern underlying standards.  It is thought to be very unlikely
that anyone is still using it in the field.  Since such a complex
encoding comes with costs and risks, we agreed to drop support.

Any existing database using this encoding would need to be dumped and
restored with a new encoding to upgrade to PostgreSQL 19, most likely
UTF8, since pg_upgrade would fail.

Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Reviewed-by: Tatsuo Ishii <ishii@postgresql.org>
Reviewed-by: Jeff Davis <pgsql@j-davis.com>
Discussion: https://postgr.es/m/CA%2BhUKGKXDXh-FdU0orjfv%2BF08f%3DD91BhV3Ra-4zL-q%2BJmGYqTA%40mail.gmail.com

Files

PathChange+/−
doc/src/sgml/charset.sgml modified +2 −191
src/backend/utils/mb/conv.c modified +0 −238
src/backend/utils/mb/conversion_procs/cyrillic_and_mic/Makefile deleted +0 −13
src/backend/utils/mb/conversion_procs/cyrillic/cyrillic.c (from src/backend/utils/mb/conversion_procs/cyrillic_and_mic/cyrillic_and_mic.c) renamed +4 −140
src/backend/utils/mb/conversion_procs/cyrillic/Makefile (from src/backend/utils/mb/conversion_procs/latin_and_mic/Makefile) renamed +4 −4
src/backend/utils/mb/conversion_procs/euc_cn_and_mic/euc_cn_and_mic.c deleted +0 −169
src/backend/utils/mb/conversion_procs/euc_cn_and_mic/Makefile deleted +0 −13
src/backend/utils/mb/conversion_procs/euc_jp_and_sjis/euc_jp_and_sjis.c modified +1 −447
src/backend/utils/mb/conversion_procs/euc_kr_and_mic/euc_kr_and_mic.c deleted +0 −177
src/backend/utils/mb/conversion_procs/euc_kr_and_mic/Makefile deleted +0 −13
src/backend/utils/mb/conversion_procs/euc_tw_and_big5/big5.c modified +1 −2
src/backend/utils/mb/conversion_procs/euc_tw_and_big5/euc_tw_and_big5.c modified +1 −355
src/backend/utils/mb/conversion_procs/latin2_and_win1250/latin2_and_win1250.c modified +0 −70
src/backend/utils/mb/conversion_procs/latin_and_mic/latin_and_mic.c deleted +0 −139
src/backend/utils/mb/conversion_procs/Makefile modified +2 −2
src/backend/utils/mb/conversion_procs/meson.build modified +1 −4
src/backend/utils/mb/mbutils.c modified +2 −4
src/common/encnames.c modified +0 −8
src/common/wchar.c modified +0 −223
src/include/catalog/pg_conversion.dat modified +0 −90
src/include/catalog/pg_proc.dat modified +12 −162
src/include/mb/pg_wchar.h modified +12 −186
src/pl/plpython/plpy_util.c modified +2 −2
src/test/mb/expected/mule_internal.out deleted +0 −333
src/test/mb/mbregress.sh modified +1 −1
src/test/mb/sql/mule_internal.sql deleted +0 −72
src/test/modules/test_escape/test_escape.c modified +0 −2
src/test/regress/expected/conversion.out modified +0 −127
src/test/regress/expected/encoding.out modified +1 −16
src/test/regress/expected/object_address.out modified +2 −2
src/test/regress/expected/xml_1.out modified +1 −3
src/test/regress/expected/xml_2.out modified +1 −3
src/test/regress/expected/xml.out modified +1 −3
src/test/regress/regress.c modified +2 −0
src/test/regress/sql/conversion.sql modified +0 −27
src/test/regress/sql/encoding.sql modified +1 −10
src/test/regress/sql/object_address.sql modified +1 −1
src/test/regress/sql/xml.sql modified +1 −3

Discussion