Postgres truncates function names even though they are less than 63 characters
"4.1.1. Identifiers and Key Words":
The system uses no more than
NAMEDATALEN-1
bytes of an identifier; longer names can be written in commands, but they will be truncated. By default,NAMEDATALEN
is 64 so the maximum identifier length is 63 bytes. If this limit is problematic, it can be raised by changing theNAMEDATALEN
constant insrc/include/pg_config_manual.h.
Note that it says 63 bytes, not characters. If you use UTF-8, your untruncated string is 64 bytes long, which is too long. The truncated string is 62 bytes long and fits.