PostgreSQL failed IANA tz database BUG修复
背景
PostgreSQL 可以使用IANA發(fā)布的時區(qū)數(shù)據(jù)庫,但是由于IANA發(fā)布的數(shù)據(jù)庫中,有些定義的時區(qū)別名并沒有對應(yīng)的時區(qū)。
從而導(dǎo)致PG在解析對應(yīng)別名時會報錯。
# select '2016-09-02 08:00:00 NOVST'::timestamptz; ERROR: time zone abbreviation "novst" is not used in time zone "Asia/Novosibirsk"查詢pg_timezone_abbrevs函數(shù)返回所有的別名與時區(qū)對應(yīng)關(guān)系,也會報錯。
postgres=# select pg_timezone_abbrevs (); ERROR: time zone abbreviation "novst" is not used in time zone "Asia/Novosibirsk"修復(fù)BUG
在PostgreSQL的BUG報告中已經(jīng)有在討論這個問題
https://www.postgresql.org/message-id/flat/20160902031551.15674.67337%40wrigleys.postgresql.org#20160902031551.15674.67337@wrigleys.postgresql.org
https://www.postgresql.org/message-id/flat/6189.1472820913%40sss.pgh.pa.us#6189.1472820913@sss.pgh.pa.us
TOM LANE提供了一個patch,可以避免出現(xiàn)以上問題。
wget https://www.postgresql.org/message-id/attachment/45970/allow-timezone-abbrevs-not-matching-iana-data.patch cd postgresql-9.5.4 patch -p1 < ../allow-timezone-abbrevs-not-matching-iana-data.patch make -j 32 make install重啟數(shù)據(jù)庫,測試,如果時區(qū)別名不存在時區(qū)映射關(guān)系時,使用了本地時區(qū)。
postgres=# select '2016-09-02 08:00:00 NOVST'::timestamptz;timestamptz ------------------------2016-09-02 09:00:00+08 (1 row)長期來看,等PG的內(nèi)核修復(fù)。
參考
https://www.postgresql.org/message-id/flat/20160902031551.15674.67337%40wrigleys.postgresql.org#20160902031551.15674.67337@wrigleys.postgresql.org
https://www.postgresql.org/message-id/flat/6189.1472820913%40sss.pgh.pa.us#6189.1472820913@sss.pgh.pa.us
Count
總結(jié)
以上是生活随笔為你收集整理的PostgreSQL failed IANA tz database BUG修复的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringMvc 集成 shiro 实
- 下一篇: oracle数据库从入门到精通之三