我想知道我安装的 Postgres 10 Beta 2 是否已构建为包括新的 Unicode 国际组件 (ICU)归类。有关背景信息,请参阅Peter Eisentraut在 PostgreSQL 10 中支持 ICU 的更强大的归类。
我使用该pg_config
实用程序来检测构建信息。运行时,pg_config --configure
我得到最后一行是的输出'ICU_LIBS=-L/opt/local/Current/lib -licuuc -licudata -licui18n'
。
➠ 这是否意味着我安装了 ICU 库?
/图书馆/PostgreSQL/10Beta2/bin/pg_config --configure
'--with-icu' '--prefix=/mnt/hgfs/pginstaller.pune/server/staging_cache/osx' '--with-ldap' '--with-openssl' '--with-perl' '- -with-python' '--with-tcl' '--with-bonjour' '--with-pam' '--enable-thread-safety' '--with-libxml' '--with-uuid=e2fs ' '--with-includes=/opt/local/Current/include/libxml2:/opt/local/Current/include:/opt/local/Current/include/security' '--docdir=/mnt/hgfs/pginstaller .pune/server/staging_cache/osx/doc/postgresql' '--with-libxslt' '--with-libedit-preferred' '--with-gssapi' 'CFLAGS=-isysroot /Applications/Xcode.app/Contents/开发人员/平台/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -mmacosx-version-min=10.8 -arch i386 -arch x86_64 -O2' 'LDFLAGS=-L/opt/local/Current/lib' 'ICU_CFLAGS=-I/opt/local/Current/include' 'ICU_LIBS=-L/opt/local/Current/lib -licuuc -licudata -licui18n'
➠ 还有其他方法可以检测我的 Postgres 是否有可用的 ICU 排序规则吗?通过 SQL 的某种方式?
当我执行SELECT * FROM pg_collation ;
时,在列出的 845 个语言环境名称中,有 575 个以-x-icu
. 只有在 ICU 库到位时才会发生这种情况吗?
真正引入库的配置选项是
--with-icu
. 目前,检查这个似乎是判断 ICU 是否已包含在构建中的更可靠的方法。ICU_CFLAGS
并且ICU_LIBS
是仅当库安装在默认情况下编译器不搜索的位置时才需要的路径。它确实如此,但
pg_collation
还有一个新collprovider
字段指示排序规则来自 ICU (i
) 或 libc (c
)