aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/src/sgml/datatype.sgml23
-rw-r--r--src/timezone/Makefile8
2 files changed, 22 insertions, 9 deletions
diff --git a/doc/src/sgml/datatype.sgml b/doc/src/sgml/datatype.sgml
index deeba7bc68c..029dec3dcd4 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.181.2.1 2007/01/30 22:29:40 momjian Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/datatype.sgml,v 1.181.2.2 2007/03/14 17:38:15 tgl Exp $ -->
<chapter id="datatype">
<title id="datatype-title">Data Types</title>
@@ -2194,12 +2194,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>
@@ -2211,6 +2212,14 @@ January 8 04:05:06 1999 PST
</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
prior to 8.2, which were case-sensitive in some contexts and not others.)
diff --git a/src/timezone/Makefile b/src/timezone/Makefile
index 69e79b8536e..052cad16a4a 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.24 2006/07/25 03:51:22 tgl Exp $
+# $PostgreSQL: pgsql/src/timezone/Makefile,v 1.24.2.1 2007/03/14 17:38:15 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)
$(MAKE) -C tznames $@
installdirs: