【问题标题】:Postgres truncates function names even though they are less than 63 charactersPostgres 截断函数名,即使它们少于 63 个字符
【发布时间】:2022-01-16 19:33:52
【问题描述】:

我在最新的 pg admin 中遇到了这个问题,其中 postgres 会自动截断少于 63 个字符的函数名称。我不知道它是否与语言或其他有关,但这是我正在使用的函数名称:

“βρες_ασθενείς_μίας_μέρας_νοσηλευτή”

postgres 将名称截断为:

“βρες_ασθενείς_μίας_μέρας_νοσηλευτ”

33 个字符。

最大函数名称大小的规则是否改变了,还是我的偏好有问题?

感谢您的宝贵时间。

【问题讨论】:

    标签: postgresql function truncate


    【解决方案1】:

    "4.1.1. Identifiers and Key Words":

    系统使用不超过NAMEDATALEN-1字节的标识符;较长的名称可以写在命令中,但它们会被截断。默认情况下,NAMEDATALEN 为 64,因此最大标识符长度为 63 个字节。如果这个限制有问题,可以通过更改src/include/pg_config_manual.h. 中的NAMEDATALEN 常量来提高它

    请注意,它说的是 63 个字节,而不是字符。如果您使用 UTF-8,则未截断的字符串长度为 64 字节,这太长了。截断的字符串长度为 62 字节,适合。

    【讨论】:

    • 只有重新编译代码才能找到src/include/pg_config_manual.h文件?因为我在本地文件夹中找不到它。
    • @MichaelEfraimidis:是的,你必须在源代码中更改它并自己编译。
    猜你喜欢
    • 2013-02-06
    • 2015-12-14
    • 2020-05-03
    • 2016-01-06
    • 2019-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-30
    相关资源
    最近更新 更多