diff options
-rw-r--r-- | doc/src/sgml/datetime.sgml | 37 | ||||
-rw-r--r-- | src/timezone/Makefile | 8 |
2 files changed, 29 insertions, 16 deletions
diff --git a/doc/src/sgml/datetime.sgml b/doc/src/sgml/datetime.sgml index 0e42e34fd69..9e23e6490e7 100644 --- a/doc/src/sgml/datetime.sgml +++ b/doc/src/sgml/datetime.sgml @@ -1,5 +1,5 @@ <!-- -$PostgreSQL: pgsql/doc/src/sgml/datetime.sgml,v 2.45 2005/01/09 18:58:10 tgl Exp $ +$PostgreSQL: pgsql/doc/src/sgml/datetime.sgml,v 2.45.4.1 2007/03/14 17:38:29 tgl Exp $ --> <appendix id="datetime-appendix"> @@ -2230,24 +2230,33 @@ $PostgreSQL: pgsql/doc/src/sgml/datetime.sgml,v 2.45 2005/01/09 18:58:10 tgl Exp <para> In addition to the names listed in the table, - <productname>PostgreSQL</productname> will accept time zone names of the - form <replaceable>STD</><replaceable>offset</> or + <productname>PostgreSQL</productname> will accept POSIX-style time zone + specifications of the form <replaceable>STD</><replaceable>offset</> or <replaceable>STD</><replaceable>offset</><replaceable>DST</>, where <replaceable>STD</> is a zone abbreviation, <replaceable>offset</> is a numeric offset in hours west from UTC, and <replaceable>DST</> is an - optional daylight-savings zone abbreviation, assumed to stand for one hour - ahead of the given offset. For example, if <literal>EST5EDT</> were not - already a recognized zone name, it would be accepted and would be - functionally equivalent to USA East Coast time. When a daylight-savings - zone name is present, it is assumed to be used according to USA time zone - rules, so this feature is of limited use outside North America. - One should also be wary that this provision can lead to - silently accepting bogus input, since there is no check on the - reasonableness of the zone abbreviations. For example, - <literal>SET TIMEZONE TO FOOBAR0</> will work, leaving the system - effectively using a rather peculiar abbreviation for GMT. + optional daylight-savings zone abbreviation, assumed to stand for one + hour ahead of the given offset. For example, if <literal>EST5EDT</> + were not already a recognized zone name, it would be accepted and would + be functionally equivalent to USA East Coast time. When a + daylight-savings zone name is present, it is assumed to be used + according to the same daylight-savings transition rules used in the + <literal>zic</> time zone database's <filename>posixrules</> entry. + In a standard <productname>PostgreSQL</productname> installation, + <filename>posixrules</> is the same as <literal>US/Eastern</>, so + that POSIX-style time zone specifications follow USA daylight-savings + rules. If needed, you can adjust this behavior by replacing the + <filename>posixrules</> file. </para> + <para> + One should be wary that the POSIX-style time zone feature can + lead to silently accepting bogus input, since there is no check on the + reasonableness of the zone abbreviations. For example, <literal>SET + TIMEZONE TO FOOBAR0</> will work, leaving the system effectively using + a rather peculiar abbreviation for UTC. + </para> + </sect1> <sect1 id="datetime-units-history"> diff --git a/src/timezone/Makefile b/src/timezone/Makefile index e468b73dce6..2b5a98c2517 100644 --- a/src/timezone/Makefile +++ b/src/timezone/Makefile @@ -4,7 +4,7 @@ # Makefile for the timezone library # IDENTIFICATION -# $PostgreSQL: pgsql/src/timezone/Makefile,v 1.17 2004/12/31 19:01:54 tgl Exp $ +# $PostgreSQL: pgsql/src/timezone/Makefile,v 1.17.4.1 2007/03/14 17:38:29 tgl Exp $ # #------------------------------------------------------------------------- @@ -25,6 +25,10 @@ TZDATA := africa antarctica asia australasia europe northamerica southamerica \ pacificnew etcetera factory backward systemv solar87 solar88 solar89 TZDATAFILES := $(TZDATA:%=$(srcdir)/data/%) +# which zone should determine the DST rules (not the specific UTC offset!) +# for POSIX-style timezone specs +POSIXRULES = US/Eastern + all: SUBSYS.o submake-libpgport zic SUBSYS.o: $(OBJS) @@ -34,7 +38,7 @@ zic: $(ZICOBJS) $(CC) $(CFLAGS) $(ZICOBJS) $(LDFLAGS) $(LIBS) -o $@$(X) install: all installdirs - ./zic -d $(DESTDIR)$(datadir)/timezone $(TZDATAFILES) + ./zic -d $(DESTDIR)$(datadir)/timezone -p $(POSIXRULES) $(TZDATAFILES) installdirs: $(mkinstalldirs) $(DESTDIR)$(datadir) |