Postgresql

我的 Postgres 集群是否使用可用於 Postgres 10 及更高版本的 ICU 庫建構?

  • August 14, 2017

我想知道我安裝的 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)

引用自:https://dba.stackexchange.com/questions/183387