Thread: identifier will be truncated

identifier will be truncated

From
Joao Miguel Ferreira
Date:
Hello all,

I'm running unit/integration tests on a pg based application. I recently started getting the following indication on the test suite pg client:

NOTICE:  identifier "y1972_1004_vat_periodic_declaration_suppliers_lines_dupl_c24_liq" will be truncated to "y1972_1004_vat_periodic_declaration_suppliers_lines_dupl_c24_li"

Please advise on what I should do about it or if this might be a potential problem that I should address.

Thank you
Joao



Re: identifier will be truncated

From
Adrian Klaver
Date:
On 2/8/21 8:39 AM, Joao Miguel Ferreira wrote:
> Hello all,
> 
> I'm running unit/integration tests on a pg based application. I recently 
> started getting the following indication on the test suite pg client:
> 
> NOTICE:  identifier 
> "y1972_1004_vat_periodic_declaration_suppliers_lines_dupl_c24_liq" will 
> be truncated to 
> "y1972_1004_vat_periodic_declaration_suppliers_lines_dupl_c24_li"
> 
> Please advise on what I should do about it or if this might be a 
> potential problem that I should address.

https://www.postgresql.org/docs/12/sql-syntax-lexical.html

"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 the 
NAMEDATALEN constant in src/include/pg_config_manual.h."

> 
> Thank you
> Joao
> 
> 
> 


-- 
Adrian Klaver
adrian.klaver@aklaver.com



Re: identifier will be truncated

From
Paul Förster
Date:
Hi Joao,

> On 08. Feb, 2021, at 17:39, Joao Miguel Ferreira <joao.miguel.c.ferreira@gmail.com> wrote:
>
> NOTICE:  identifier "y1972_1004_vat_periodic_declaration_suppliers_lines_dupl_c24_liq" will be truncated to
"y1972_1004_vat_periodic_declaration_suppliers_lines_dupl_c24_li"
>
> Please advise on what I should do about it or if this might be a potential problem that I should address.

this is an indication that your object name is longer than 63 characters, which is a hard coded limit.

You have two options:

a) compile the PostgreSQL software from source and increase that limit (which I wouldn't recommend), or

b) use shorter object names (table-, view-, sequence-, column-, whatever names) with a maximum length of 63 characters.

Cheers,
Paul