The following bug has been logged on the website:
Bug reference: 10112
Logged by: Sergey Burladyan
Email address: eshkinkot@gmail.com
PostgreSQL version: 9.3.4
Operating system: Debian testing
Description:
May be this is correct today, because there is no DST in Russia today:
select * from pg_timezone_abbrevs where abbrev in ('MSK', 'MSD');
abbrev | utc_offset | is_dst
--------+------------+--------
MSD | 04:00:00 | t
MSK | 04:00:00 | f
but, for example, in 2009 it must be different, I think
zdump -v Europe/Moscow | grep 2009
Europe/Moscow Sat Mar 28 22:59:59 2009 UTC = Sun Mar 29 01:59:59 2009 MSK
isdst=0 gmtoff=10800
Europe/Moscow Sat Mar 28 23:00:00 2009 UTC = Sun Mar 29 03:00:00 2009 MSD
isdst=1 gmtoff=14400
Europe/Moscow Sat Oct 24 22:59:59 2009 UTC = Sun Oct 25 02:59:59 2009 MSD
isdst=1 gmtoff=14400
Europe/Moscow Sat Oct 24 23:00:00 2009 UTC = Sun Oct 25 02:00:00 2009 MSK
isdst=0 gmtoff=10800
and 'Oct 25 02:15 MSD' (Oct 24 22:15:00 UTC) must not be equal to 'Oct 25
02:15 MSK' (Oct 24 23:15:00 UTC)
but now it is equal:
select 'Sun Oct 25 02:15:00 2009 MSD'::timestamptz = 'Sun Oct 25 02:15:00
2009 MSK'::timestamptz;
?column?
----------
t
not sure, is this a bug or feature...