diff --git a/doc/src/sgml/datatype.sgml b/doc/src/sgml/datatype.sgml index 50d70b1cefdfe48c0d7cde937efc9bf63818f24a..2d67885fd65c39edb76cefb8403f270da22c3bc2 100644 --- a/doc/src/sgml/datatype.sgml +++ b/doc/src/sgml/datatype.sgml @@ -1,4 +1,4 @@ -<!-- $PostgreSQL: pgsql/doc/src/sgml/datatype.sgml,v 1.190 2007/02/01 00:28:16 momjian Exp $ --> +<!-- $PostgreSQL: pgsql/doc/src/sgml/datatype.sgml,v 1.191 2007/03/14 17:38:05 tgl Exp $ --> <chapter id="datatype"> <title id="datatype-title">Data Types</title> @@ -2243,12 +2243,13 @@ January 8 04:05:06 1999 PST 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. + 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> </listitem> </itemizedlist> @@ -2259,6 +2260,14 @@ January 8 04:05:06 1999 PST rule and so have two possible UTC offsets. </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> + <para> In all cases, timezone names are recognized case-insensitively. (This is a change from <productname>PostgreSQL</productname> versions diff --git a/src/timezone/Makefile b/src/timezone/Makefile index 3af8c376f895a3c97e8432deaa9a353de222e73f..f3d5088b4d967706c65e2b69653ab4c9c34aa697 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.25 2007/02/09 15:56:00 petere Exp $ +# $PostgreSQL: pgsql/src/timezone/Makefile,v 1.26 2007/03/14 17:38:06 tgl Exp $ # #------------------------------------------------------------------------- @@ -23,6 +23,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) @@ -32,7 +36,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) $(MAKE) -C tznames $@ installdirs: