2015-04-27 154 views
0

的Postgres Ltree的文档说有效字符在字符集UTF8

标签是字母数字字符和下划线(例如,在C的序列区域设置字符A-ZA-z0- 9_被允许)。标签长度不得超过256个字节。

但是,并不是说如果我们将语言环境设置为'en_US.UTF-8',Postgres Ltree中可以使用的有效字符是什么。那么,在Ltree的标签中可以使用连字符(连字符)吗?

+1

它提到语言环境意味着它将处于当前语言环境的编码中,所以是的,如果数据库是UTF-8,那么您可以使用UTF-8字符。 –

+0

@CraigRinger,是的,我有测试,我甚至可以插入一个中国字符。 – andy

+0

@andy在ltree标签中使用hypen( - )的运气如何? –

回答

0

对不起,不更新答案。

是的,我终于想通了,这是我们的DBA的一个改变ltree的源和配套的破折号重新编译( - )字符。我们有一个超过6B记录的单表。

+0

由于您有超过6B条记录,包含破折号是否存在问题?或者一切都很好?只是想知道为什么标签限制放在首位。你也有补丁托管的地方吗?谢谢。 –

+0

@Charizard是的,一切都很好,我不知道为什么** ltree **的作者没有在原始源代码中。该补丁非常简单。你可以看看[源代码](http://doxygen.postgresql.org/ltree_8h.html#a1cb5d5dd0c364d720854e8a250967dd1),即[ltree.h]的83行(http://doxygen.postgresql.org /ltree_8h_source.html) – andy

+0

非常感谢@andy。 –