PostgreSQL failed IANA tz database BUG修复

背景

PostgreSQL 可以使用IANA发布的时区数据库,但是由于IANA发布的数据库中,有些定义的时区别名并没有对应的时区。

从而导致PG在解析对应别名时会报错。

# 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函数返回所有的别名与时区对应关系,也会报错。

postgres=# select pg_timezone_abbrevs ();
ERROR:  time zone abbreviation "novst" is not used in time zone "Asia/Novosibirsk"

修复BUG

在PostgreSQL的BUG报告中已经有在讨论这个问题

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,可以避免出现以上问题。

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

重启数据库,测试,如果时区别名不存在时区映射关系时,使用了本地时区。

postgres=# select '2016-09-02 08:00:00 NOVST'::timestamptz;
      timestamptz
------------------------
 2016-09-02 09:00:00+08
(1 row)

长期来看,等PG的内核修复。

参考

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

时间: 2024-07-30 04:34:45

PostgreSQL failed IANA tz database BUG修复的相关文章

win10最新版Build 10041发布!包括大量新功能和Bug修复

  微软官方宣布,Windows 10最新测试编译版本Build 10041已经向Fast Ring快速内测用户发放了,包括大量新功能和Bug修复. 该版本仅面向那些已经安装了上一个内测版本的用户,而且只能通过Windows Update在线更新. Slow Ring慢速内测用户需要等待独立的ISO镜像,具体时间待定. 如何获取?首先加入Windows Insider内测项目,然后进入系统设置- 更新与恢复- 高级设置,将预览版安装方式改为"快速"即可. Build 10041属于技术

duilib CDateTimeUI 在Xp下的bug修复

转自:http://my.oschina.net/u/343244/blog/370131 CDateTimeUI 的bug修复.修改CDateTimeWnd的HandleMessage方法 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 if(WM_NOTIFY==uMsg) {  

Swoole 1.8.12 发布,Bug修复版本

PHP的异步.并行.高性能网络通信引擎Swoole 已发布 1.8.12 版本.此版本是一个BUG修复版本,修复了多个细节问题.建议所有用户升级至此版本. 主要更新: 修复Swoole\Table在遍历数据时删除元素导致迭代器错误的问题 增加Swoole\Http\Client新选项websocket_mask控制WebSocket客户端启用mask 修复Swoole\Server在BASE模式下无法使用task_ipc_mode=3配置 优化Swoole\Http\Server响应体gzip压

打开百度地图报错 Failed to open database &amp;amp;#39;/storage/sdcard1/baidu/tempdata/ls.db&amp;amp;#39;

问题描述 打开百度地图报错 Failed to open database '/storage/sdcard1/baidu/tempdata/ls.db' 第一次安装app 打开百度地图页面可以显示,以后每次打开都无法显示地图.强制停止app再一次打开app第一次百度地图页面可以显示,以后每次打开都无法显示地图,报错:Failed to open database '/storage/sdcard1/baidu/tempdata/ls.db'

KDE Frameworks 5.35.0 发布,核心组件 bug 修复

KDE Frameworks 5.35.0 发布了,本次更新为开发人员带来了一系列在 KDE Plasma 5 桌面环境中使用的许多核心组件中的 bug 修复和新功能实现.例如,改进了 Attica 的错误通知,并在 Plasma Framework 中添加了 VLC Media Player 托盘图标支持.KDE Frameworks 5.35.0 中其它值得关注的组件包括:BluezQt,KActivitiesStats,KPeople,KDE Doxygen Tools,KNotifica

数据库-android studio 中Failed to open database

问题描述 android studio 中Failed to open database android studio 中Failed to open database Could not open database ' 可能是什么原因呢,有人遇到过吗??用的是SQLite,操作都是最基础的,应该没有错误的,为什么会打不开呢,数据库的名字是"lili.db",是不是应该取作lili,不要".db"呢?? 解决方案 只有 lili 就可以 解决方案二: SecureC

Win10 Mobile Build 10586.107正式推送 BUG修复

继欧洲.印尼等地之后,微软今天正式为Lumia 550/950/950 XL推送了Windows 10 Mobile更新,国行用户也已陆续收到. 升级后的系统版本显示为10.0.10586.107,但没有了技术预览版的字样,从这个角度讲应该就是正式版,只是微软并未公开这样的说法. 虽然贵为正式版,但Build 10586.107未带来任何新特性,主要为bug修复,其改进如下: 修复了开始屏幕磁贴丢失问题. 改善旁白功能的多语言支持. 改善企业政策或者用户启用BitLocker/设备加密时的设备重

仿酷狗音乐播放器开发日志十九——CTreeNodeUI的bug修复二(附源码)

转载请说明原出处,谢谢        今天本来打算把仿酷狗播放列表的子控件拖动插入功能做一下,但是仔细使用播放列表控件时发现了几个逻辑错误,由于我的播放 列表控件是基于CTreeViewUI和CTreeNodeUI做得,所以产生这几个bug的原因还在于他们两个,在<仿酷狗音乐播放器开发日志十一 --CTreeNodeUI的bug修复>中已经修复过一个动态添加控件的相关bug,这属于第二次修复了.关于第一次bug的修复,后来 Duilib扩展群的 joe 又进行过比我更全面的修复,我现在使用的C

《大冲锋》隐身BUG修复公告

尊敬的<大冲锋>http://www.aliyun.com/zixun/aggregation/3290.html">玩家: 由于有部分玩家在情人节版本更新过程中出现文件丢失情况,导致这部分玩家的角色装备出现问题,发生角色隐身现象.目前已将此类BUG修复,并对出现隐身BUG的角色进行装备恢复.为此给您带来的不便,我们深表歉意.感谢您对<大冲锋>的鼓励与支持! <大冲锋>运营团队 2012年2月15日 <大冲锋>(FinalCombat,简称F