Обсуждение: identifier will be truncated

Поиск
Список
Период
Сортировка

identifier will be truncated

От
Joao Miguel Ferreira
Дата:
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

От
Adrian Klaver
Дата:
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

От
Paul Förster
Дата:
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