我的 Postgres 集群是否使用可用於 Postgres 10 及更高版本的 ICU 庫建構?
我想知道我安裝的 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 庫?
/Library/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/ Developer/Platforms/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 圖書館到位時才會發生這種情況?
這是否意味著我安裝了 ICU 庫?
真正引入庫的配置選項是
--with-icu
. 目前,檢查這個似乎是判斷 ICU 是否已包含在建構中的更可靠的方法。
ICU_CFLAGS
並且ICU_LIBS
是僅當庫安裝在編譯器預設不搜尋的位置時才需要的路徑。是否只有在 ICU 圖書館到位時才會發生這種情況?
確實如此,但
pg_collation
還有一個新collprovider
欄位指示排序規則來自 ICU (i
) 或 libc (c
)