Thread: PostgreSQL appears to truncate column alias names after 31 characters.

PostgreSQL appears to truncate column alias names after 31 characters.

From
Manish Singh
Date:
Hello,
I am using pgsql with laravel.I have noticed that PostgreSQL appears to truncate column alias names
after 31 characters.

For example (this is from the psql command-line tool):

SELECT rss_headline_id as abcdefghijklmno pqrstuvwxyz1234 56, title, url
FROM news_rss_headli nes headlines WHERE rss_headline_id = 22833;
NOTICE: identifier "abcdefghijklmn opqrstuvwxyz123 456" will be
truncated to "abcdefghijklmn opqrstuvwxyz123 45"

Granted, having alias names this long may seem a little goofy, but I
am working on an object Persistence Layer that has the capability of
sometimes generating long aliases behind the scenes.

Does anyone know if this is a known limitation to PostgreSQL ? (I
couldn't find any documentation which specifically addresses this
issue) Is there a way to make PostreSQL support longer alias names?
Are there any plans to address this in future version of PostgreSQL?
Or... should I just "suck it up" and fix my code? ;-).

Please suggest me how can i solve this problem.I can not switch my RDBMS from PGSQL to others

Any insights or comments would be appreciated.

Thanks,
Manish Kumar Singh

Re: PostgreSQL appears to truncate column alias names after 31 characters.

From
Laurenz Albe
Date:
On Tue, 2024-10-01 at 07:06 +0000, Manish Singh wrote:
> I am using pgsql with laravel.I have noticed that PostgreSQL appears to truncate column alias names
> after 31 characters.
>
> For example (this is from the psql command-line tool):
>
> SELECT rss_headline_id as abcdefghijklmno pqrstuvwxyz1234 56, title, url
> FROM news_rss_headli nes headlines WHERE rss_headline_id = 22833;
> NOTICE: identifier "abcdefghijklmn opqrstuvwxyz123 456" will be
> truncated to "abcdefghijklmn opqrstuvwxyz123 45"

I cannot reproduce that.
Unless you modify the source, identifiers will be cut off after 63 bytes
(NAMEDATALEN - 1; one byte is for the terminating zero byte).

Did you modify the source?
Also, the spaces in your identifier should cause a syntax error.
Can you explain why you don't get such an error?

Yours,
Laurenz Albe