Hope this question wasn't asked before. Does anyone know the character limit for domain names? For example if I write this:
CREATE DOMAIN d_complement_activite_etablissement AS character varying
it will create a domain with the name:
d_complement_activite_etabliss
(Yeah, I know how to count, but I want some more info on the subject).
Is there a command that can change this maximum length? Is this length the same for other names (columns, tables etc)?
For logical table names stored within an Entry table, you can have up to 40 characters. Form names are limited to 100 characters, which is also the Library manager limit on any file name. Section names are limited to 64 characters.
You're absolutely right: Table names are 30 characters maximum same as column names.
You ask:
Is there a command that can change this maximum length? Is this length the same for other names (columns, tables etc)?
The manual answers here:
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
.
Bold emphasis mine.
The only way to change it is to hack the source code and recompile PostgreSQL.
Domain names are identifiers like any other. When I execute:
CREATE DOMAIN d_complement_activite_etablissement_or_even_loger_than_that AS text
I get what I ordered (tested on PostgreSQL 8.4 - 11):
d_complement_activite_etablissement_or_even_loger_than_that
There must be some other piece of software between you and your database cropping the name.
Note that characters in UTF encoding occupy 1 to 4 bytes. (But ASCII characters (like used in the example) are encoded with a single byte.)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With