]> granicus.if.org Git - postgresql/commitdiff
Add TODO.detail of standard timezone data type.
authorBruce Momjian <bruce@momjian.us>
Sun, 5 Jun 2005 00:18:42 +0000 (00:18 +0000)
committerBruce Momjian <bruce@momjian.us>
Sun, 5 Jun 2005 00:18:42 +0000 (00:18 +0000)
doc/TODO.detail/timezone [new file with mode: 0644]

diff --git a/doc/TODO.detail/timezone b/doc/TODO.detail/timezone
new file mode 100644 (file)
index 0000000..f4fabc1
--- /dev/null
@@ -0,0 +1,2829 @@
+From pgsql-hackers-owner+M60207=pgman=candle.pha.pa.us@postgresql.org Thu Oct 21 07:25:41 2004
+Return-path: <pgsql-hackers-owner+M60207=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9LBPdf26430
+       for <pgman@candle.pha.pa.us>; Thu, 21 Oct 2004 07:25:40 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 0548B32A593
+       for <pgman@candle.pha.pa.us>; Thu, 21 Oct 2004 12:25:37 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 74257-06 for <pgman@candle.pha.pa.us>;
+       Thu, 21 Oct 2004 11:25:33 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id B0DB532A544
+       for <pgman@candle.pha.pa.us>; Thu, 21 Oct 2004 12:25:36 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 1124A329FAB
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Thu, 21 Oct 2004 12:23:00 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 70900-09
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Thu, 21 Oct 2004 11:22:43 +0000 (GMT)
+Received: from zigo.dhs.org (as2-4-3.an.g.bonet.se [194.236.34.191])
+       by svr1.postgresql.org (Postfix) with ESMTP id 301C532A301
+       for <pgsql-hackers@postgresql.org>; Thu, 21 Oct 2004 12:22:43 +0100 (BST)
+Received: from zigo.zigo.dhs.org (zigo.zigo.dhs.org [192.168.0.1])
+       by zigo.dhs.org (Postfix) with ESMTP id A022C8467
+       for <pgsql-hackers@postgresql.org>; Thu, 21 Oct 2004 13:22:40 +0200 (CEST)
+Date: Thu, 21 Oct 2004 13:22:40 +0200 (CEST)
+From: Dennis Bjorklund <db@zigo.dhs.org>
+To: pgsql-hackers@postgresql.org
+Subject: [HACKERS] timestamp with time zone a la sql99
+Message-ID: <Pine.LNX.4.44.0410211300430.2015-100000@zigo.dhs.org>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=ISO-8859-1
+Content-Transfer-Encoding: 8BIT
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+I've made a partial implementation of a datatype "timestamp with time
+zone" as described in the sql standard. The current type "timestamptz"  
+does not store the time zone as a standard one should do. So I've made a
+new type I've called timestampstdtz that does store the time zone as the
+standard demands.
+
+Let me show a bit of what currently works in my implementation:
+
+  dennis=# CREATE TABLE foo (
+     a timestampstdtz,
+
+     primary key (a)
+  );
+  dennis=# INSERT INTO foo VALUES ('1993-02-04 13:00 UTC');
+  dennis=# INSERT INTO foo VALUES ('1999-06-01 14:00 CET');
+  dennis=# INSERT INTO foo VALUES ('2003-08-21 15:00 PST');
+
+  dennis=# SELECT a FROM foo;
+             a
+  ------------------------
+   1993-02-04 13:00:00+00
+   1999-06-01 14:00:00+01
+   2003-08-21 15:00:00-08
+  dennis=# SELECT a AT TIME ZONE 'CET' FROM foo;
+          timezone
+  ------------------------
+   1993-02-04 14:00:00+01
+   1999-06-01 14:00:00+01
+   2003-08-22 00:00:00+01
+
+My plan is to make a GUC variable so that one can tell PG that constructs
+like "timestamp with time zone" will map to timestampstdtz instead of
+timestamptz (some old databases might need the old so unless we want to
+break old code this is the easiest solution I can find).
+
+I've made an implicit cast from timestampstdtz to timestamptz that just
+forgets about the time zone. In the other direction I've made an
+assignment cast that make a timestamp with time zone 0 (that's what a
+timestamptz is anyway). Would it be possible to make it implicit in both
+directions? I currently don't think that you want that, but is it
+possible?
+
+With the implicit cast in place I assume it would be safe to change 
+functions like now() to return a timestampstdtz? I've not tried yet but I 
+will. As far as I can tell the cast would make old code that use now() to 
+still work as before.
+
+Any comments before I invest more time into this subject?
+
+-- 
+/Dennis Björklund
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 2: you can get off all lists at once with the unregister command
+    (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
+
+From pgsql-hackers-owner+M60208=pgman=candle.pha.pa.us@postgresql.org Thu Oct 21 10:34:36 2004
+Return-path: <pgsql-hackers-owner+M60208=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9LEYYf08049
+       for <pgman@candle.pha.pa.us>; Thu, 21 Oct 2004 10:34:35 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 34B0F32A2AB
+       for <pgman@candle.pha.pa.us>; Thu, 21 Oct 2004 15:34:30 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 38287-03 for <pgman@candle.pha.pa.us>;
+       Thu, 21 Oct 2004 14:34:26 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id 6A38132A1B6
+       for <pgman@candle.pha.pa.us>; Thu, 21 Oct 2004 15:34:29 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 535FE32A9EE
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Thu, 21 Oct 2004 15:29:17 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 34535-09
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Thu, 21 Oct 2004 14:29:10 +0000 (GMT)
+Received: from sss.pgh.pa.us (sss.pgh.pa.us [66.207.139.130])
+       by svr1.postgresql.org (Postfix) with ESMTP id 41E4F32A9D6
+       for <pgsql-hackers@postgresql.org>; Thu, 21 Oct 2004 15:29:12 +0100 (BST)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+       by sss.pgh.pa.us (8.13.1/8.13.1) with ESMTP id i9LET86O015233;
+       Thu, 21 Oct 2004 10:29:10 -0400 (EDT)
+To: Dennis Bjorklund <db@zigo.dhs.org>
+cc: pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] timestamp with time zone a la sql99 
+In-Reply-To: <Pine.LNX.4.44.0410211300430.2015-100000@zigo.dhs.org> 
+References: <Pine.LNX.4.44.0410211300430.2015-100000@zigo.dhs.org>
+Comments: In-reply-to Dennis Bjorklund <db@zigo.dhs.org>
+       message dated "Thu, 21 Oct 2004 13:22:40 +0200"
+Date: Thu, 21 Oct 2004 10:29:07 -0400
+Message-ID: <15232.1098368947@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+Dennis Bjorklund <db@zigo.dhs.org> writes:
+> I've made a partial implementation of a datatype "timestamp with time
+> zone" as described in the sql standard. The current type "timestamptz"  
+> does not store the time zone as a standard one should do.
+
+I'm aware that there are aspects of the spec behavior that appear to
+require that, but is it really an improvement over the implementation
+we have?  This is an area in which the standard is pretty brain-dead
+--- the entire concept of a "time with time zone" datatype is rather
+suspect, for instance.
+
+In particular, I wonder how you will handle daylight-savings issues.
+The spec definition seems to preclude doing anything intelligent with
+DST, as they equate a timezone with a fixed offset from UTC.  That's
+not how it works in (large parts of) the real world.
+
+                       regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 6: Have you searched our list archives?
+
+               http://archives.postgresql.org
+
+From pgsql-hackers-owner+M60210=pgman=candle.pha.pa.us@postgresql.org Thu Oct 21 11:08:02 2004
+Return-path: <pgsql-hackers-owner+M60210=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9LF7xf13992
+       for <pgman@candle.pha.pa.us>; Thu, 21 Oct 2004 11:08:00 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id AEBEE32AB8E
+       for <pgman@candle.pha.pa.us>; Thu, 21 Oct 2004 16:07:55 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 51273-03 for <pgman@candle.pha.pa.us>;
+       Thu, 21 Oct 2004 15:07:55 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id 506C832AB6A
+       for <pgman@candle.pha.pa.us>; Thu, 21 Oct 2004 16:07:55 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 59130329F96
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Thu, 21 Oct 2004 16:02:14 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 48602-06
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Thu, 21 Oct 2004 15:01:59 +0000 (GMT)
+Received: from zigo.dhs.org (as2-4-3.an.g.bonet.se [194.236.34.191])
+       by svr1.postgresql.org (Postfix) with ESMTP id 8ED0932A095
+       for <pgsql-hackers@postgresql.org>; Thu, 21 Oct 2004 16:01:54 +0100 (BST)
+Received: from zigo.zigo.dhs.org (zigo.zigo.dhs.org [192.168.0.1])
+       by zigo.dhs.org (Postfix) with ESMTP
+       id D08B88467; Thu, 21 Oct 2004 17:01:52 +0200 (CEST)
+Date: Thu, 21 Oct 2004 17:01:52 +0200 (CEST)
+From: Dennis Bjorklund <db@zigo.dhs.org>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] timestamp with time zone a la sql99 
+In-Reply-To: <15232.1098368947@sss.pgh.pa.us>
+Message-ID: <Pine.LNX.4.44.0410211637560.2015-100000@zigo.dhs.org>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=ISO-8859-1
+Content-Transfer-Encoding: 8BIT
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+On Thu, 21 Oct 2004, Tom Lane wrote:
+
+> > I've made a partial implementation of a datatype "timestamp with time
+> > zone" as described in the sql standard. The current type "timestamptz"  
+> > does not store the time zone as a standard one should do.
+> 
+> I'm aware that there are aspects of the spec behavior that appear to
+> require that, but is it really an improvement over the implementation
+> we have?
+
+Improvement and improvement. The actual time value is of course the same
+(the utc part of a timestamp) and the only thing extra you get is that the
+time zone is stored. The extra information you do have now, when stored in
+this way, is that you store both a utc time and a local time. Will any
+application ever need that? Who knows? I think it makes sense and is an
+easier model to think about then what pg uses today. So I would use it
+even if it means using 2 bytes more storage then what timestamptz do
+
+Just that it is standard also makes it useful. The more things of the
+standard we support the easier it is to move between databases. This is
+important to me.
+
+I also want to make a general statement that I think that whenever we use
+standard syntax we should give it a standard semantics. I don't mind
+extensions at all, but as much as we can we should make sure that they
+don't clash with standard syntax and semantics.
+
+>  This is an area in which the standard is pretty brain-dead
+> --- the entire concept of a "time with time zone" datatype is rather
+> suspect, for instance.
+
+I havn't look that much at "time with time zone" yet, just timestamps.
+I can't see why time with time zone should not also be supported. I can't
+really imagine it being used without a date, but if someone wants to store
+timestamps as a date+time with time zone, then why not. It would be extra
+work tu is it instead of a timestamp (especially for cases where the time
+wraps over to the prev/next day), but hey.
+
+> In particular, I wonder how you will handle daylight-savings issues.
+> The spec definition seems to preclude doing anything intelligent with
+> DST, as they equate a timezone with a fixed offset from UTC.  That's
+> not how it works in (large parts of) the real world.
+
+The tz in the standard is a offset from utc, yes. So when you store a
+value you tell it what offset you use. If you are using daylight-savings
+time it might be +02 and if not dst it might be +01. What else would you
+want to do with it? It's not like you can do anything else with it in pg
+as of today, can you?
+
+The stored tz does not say what region of the globe you are in, it says
+the distance away from utc in minutes that you are. I could imagine
+another datatype that stores the time zone as name, but that's not what
+timestamp with time zone does.
+
+-- 
+/Dennis Björklund
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 8: explain analyze is your friend
+
+From pgsql-hackers-owner+M60232=pgman=candle.pha.pa.us@postgresql.org Fri Oct 22 08:43:06 2004
+Return-path: <pgsql-hackers-owner+M60232=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9MCh4f16646
+       for <pgman@candle.pha.pa.us>; Fri, 22 Oct 2004 08:43:04 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id D389532A4BA
+       for <pgman@candle.pha.pa.us>; Fri, 22 Oct 2004 13:42:58 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 01914-09 for <pgman@candle.pha.pa.us>;
+       Fri, 22 Oct 2004 12:42:51 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id 82BD832A4B3
+       for <pgman@candle.pha.pa.us>; Fri, 22 Oct 2004 13:42:58 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 05C2132A3F5
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Fri, 22 Oct 2004 13:39:37 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 03281-02
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Fri, 22 Oct 2004 12:39:20 +0000 (GMT)
+Received: from lakermmtao07.cox.net (lakermmtao07.cox.net [68.230.240.32])
+       by svr1.postgresql.org (Postfix) with ESMTP id 1971732A32B
+       for <pgsql-hackers@postgresql.org>; Fri, 22 Oct 2004 13:39:26 +0100 (BST)
+Received: from [192.168.0.9] (really [24.250.237.182])
+          by lakermmtao07.cox.net
+          (InterMail vM.6.01.03.04 201-2131-111-106-20040729) with ESMTP
+          id <20041022123912.IJSP14063.lakermmtao07.cox.net@[192.168.0.9]>;
+          Fri, 22 Oct 2004 08:39:12 -0400
+From: Robert Treat <xzilla@users.sourceforge.net>
+To: Dennis Bjorklund <db@zigo.dhs.org>
+Subject: Re: [HACKERS] timestamp with time zone a la sql99
+Date: Fri, 22 Oct 2004 08:37:33 -0400
+User-Agent: KMail/1.6.2
+cc: Tom Lane <tgl@sss.pgh.pa.us>, pgsql-hackers@postgresql.org
+References: <Pine.LNX.4.44.0410211637560.2015-100000@zigo.dhs.org>
+In-Reply-To: <Pine.LNX.4.44.0410211637560.2015-100000@zigo.dhs.org>
+MIME-Version: 1.0
+Content-Disposition: inline
+Content-Type: text/plain;
+  charset="iso-8859-1"
+Content-Transfer-Encoding: 7bit
+Message-ID: <200410220837.33886.xzilla@users.sourceforge.net>
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+On Thursday 21 October 2004 11:01, Dennis Bjorklund wrote:
+> On Thu, 21 Oct 2004, Tom Lane wrote:
+> > I'm aware that there are aspects of the spec behavior that appear to
+> > require that, but is it really an improvement over the implementation
+> > we have?
+>
+> Improvement and improvement. The actual time value is of course the same
+> (the utc part of a timestamp) and the only thing extra you get is that the
+> time zone is stored. The extra information you do have now, when stored in
+> this way, is that you store both a utc time and a local time. Will any
+> application ever need that? Who knows? I think it makes sense and is an
+> easier model to think about then what pg uses today. So I would use it
+> even if it means using 2 bytes more storage then what timestamptz do
+>
+
+In a fit of early morning, pre-coffee thoughts, I'm thinking this might be 
+just what I've been looking for. In one of my apps we take calls from around 
+the country for customers and store the time that call came in. Unfortunately 
+we need to know things like how many calls did we take in an hour across 
+customers, but also how many calls did we take at 6AM local time to the 
+customer.   The way PostgreSQL works now, you have to store some extra bits 
+of info in another column and then reassemble it to be able to determine 
+those two queries, but it sounds like your timestampstdtz would allow that 
+information to be stored together, as it should be.
+
+-- 
+Robert Treat
+Build A Brighter Lamp :: Linux Apache {middleware} PostgreSQL
+
+---------------------------(end of broadcast)---------------------------
+TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
+
+From pgsql-hackers-owner+M60235=pgman=candle.pha.pa.us@postgresql.org Fri Oct 22 10:18:44 2004
+Return-path: <pgsql-hackers-owner+M60235=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9MEIhf03000
+       for <pgman@candle.pha.pa.us>; Fri, 22 Oct 2004 10:18:44 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 63ACB329FE3
+       for <pgman@candle.pha.pa.us>; Fri, 22 Oct 2004 15:18:38 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 35128-09 for <pgman@candle.pha.pa.us>;
+       Fri, 22 Oct 2004 14:18:30 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id 3439A329E73
+       for <pgman@candle.pha.pa.us>; Fri, 22 Oct 2004 15:18:38 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id C332832A5AA
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Fri, 22 Oct 2004 15:13:18 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 32986-06
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Fri, 22 Oct 2004 14:13:09 +0000 (GMT)
+Received: from sss.pgh.pa.us (sss.pgh.pa.us [66.207.139.130])
+       by svr1.postgresql.org (Postfix) with ESMTP id E7E6F32A576
+       for <pgsql-hackers@postgresql.org>; Fri, 22 Oct 2004 15:13:16 +0100 (BST)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+       by sss.pgh.pa.us (8.13.1/8.13.1) with ESMTP id i9MEDIA4006541;
+       Fri, 22 Oct 2004 10:13:18 -0400 (EDT)
+To: Robert Treat <xzilla@users.sourceforge.net>
+cc: Dennis Bjorklund <db@zigo.dhs.org>, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] timestamp with time zone a la sql99 
+In-Reply-To: <200410220837.33886.xzilla@users.sourceforge.net> 
+References: <Pine.LNX.4.44.0410211637560.2015-100000@zigo.dhs.org> <200410220837.33886.xzilla@users.sourceforge.net>
+Comments: In-reply-to Robert Treat <xzilla@users.sourceforge.net>
+       message dated "Fri, 22 Oct 2004 08:37:33 -0400"
+Date: Fri, 22 Oct 2004 10:13:18 -0400
+Message-ID: <6540.1098454398@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+Robert Treat <xzilla@users.sourceforge.net> writes:
+> In a fit of early morning, pre-coffee thoughts, I'm thinking this might be 
+> just what I've been looking for. In one of my apps we take calls from around 
+> the country for customers and store the time that call came in. Unfortunately
+> we need to know things like how many calls did we take in an hour across 
+> customers, but also how many calls did we take at 6AM local time to the 
+> customer.   The way PostgreSQL works now, you have to store some extra bits 
+> of info in another column and then reassemble it to be able to determine 
+> those two queries, but it sounds like your timestampstdtz would allow that 
+> information to be stored together, as it should be.
+
+As far as I can tell, Dennis is planning slavish adherence to the spec,
+which will mean that the datatype is unable to cope effectively with
+daylight-savings issues.  So I'm unconvinced that it will be very
+helpful to you for remembering local time in addition to true
+(universal) time.
+
+                       regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 3: if posting/reading through Usenet, please send an appropriate
+      subscribe-nomail command to majordomo@postgresql.org so that your
+      message can get through to the mailing list cleanly
+
+From pgsql-hackers-owner+M60237=pgman=candle.pha.pa.us@postgresql.org Fri Oct 22 10:33:04 2004
+Return-path: <pgsql-hackers-owner+M60237=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9MEX3f05134
+       for <pgman@candle.pha.pa.us>; Fri, 22 Oct 2004 10:33:03 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id AB3B432A907
+       for <pgman@candle.pha.pa.us>; Fri, 22 Oct 2004 15:32:57 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 42366-04 for <pgman@candle.pha.pa.us>;
+       Fri, 22 Oct 2004 14:32:49 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id 28B5E32A6BE
+       for <pgman@candle.pha.pa.us>; Fri, 22 Oct 2004 15:32:56 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 5366A32A923
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Fri, 22 Oct 2004 15:28:12 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 41328-02
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Fri, 22 Oct 2004 14:28:03 +0000 (GMT)
+Received: from zigo.dhs.org (as2-4-3.an.g.bonet.se [194.236.34.191])
+       by svr1.postgresql.org (Postfix) with ESMTP id 0277A32A916
+       for <pgsql-hackers@postgresql.org>; Fri, 22 Oct 2004 15:28:10 +0100 (BST)
+Received: from zigo.zigo.dhs.org (zigo.zigo.dhs.org [192.168.0.1])
+       by zigo.dhs.org (Postfix) with ESMTP
+       id 336C88467; Fri, 22 Oct 2004 16:28:12 +0200 (CEST)
+Date: Fri, 22 Oct 2004 16:28:12 +0200 (CEST)
+From: Dennis Bjorklund <db@zigo.dhs.org>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Robert Treat <xzilla@users.sourceforge.net>,
+   <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] timestamp with time zone a la sql99 
+In-Reply-To: <6540.1098454398@sss.pgh.pa.us>
+Message-ID: <Pine.LNX.4.44.0410221615150.2015-100000@zigo.dhs.org>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=ISO-8859-1
+Content-Transfer-Encoding: 8BIT
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+On Fri, 22 Oct 2004, Tom Lane wrote:
+
+> As far as I can tell, Dennis is planning slavish adherence to the spec,
+> which will mean that the datatype is unable to cope effectively with
+> daylight-savings issues.  So I'm unconvinced that it will be very
+> helpful to you for remembering local time in addition to true
+> (universal) time.
+
+And exactly what issues is it that you see? The only thing I can think of
+is if you have a timestamp and then add an interval to it so we jump past
+the daylight saving time change date. Then the new timestamp will keep the
+old timezone data of say +01 even though we now have jumped into the
+daylight saving period of +02.
+
+If you are just storing actual timestamps then the standard definition
+works just fine. If I store '2004-10-22 16:20:04 +02' then that's exactly
+what I get back. No problem what so ever. There is no DST problem with 
+that.
+
+It's possible that I will introduce some daylight saving bit or something
+like that, I'm not sure yet and I will not commit to anything until I've
+thought it over. I don't think there are that much of a problem as you
+claim however. Could you give a concret example where it will be a
+problem?
+
+My current thinking is that storing the time zone value as HH:MM is 
+just fine and you avoid all the problems with political changes of when 
+the DST is in effect or not.
+
+--
+/Dennis Björklund
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 3: if posting/reading through Usenet, please send an appropriate
+      subscribe-nomail command to majordomo@postgresql.org so that your
+      message can get through to the mailing list cleanly
+
+From pgsql-hackers-owner+M60240=pgman=candle.pha.pa.us@postgresql.org Fri Oct 22 10:58:26 2004
+Return-path: <pgsql-hackers-owner+M60240=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9MEwOf10545
+       for <pgman@candle.pha.pa.us>; Fri, 22 Oct 2004 10:58:24 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 8F3BC32A0AC
+       for <pgman@candle.pha.pa.us>; Fri, 22 Oct 2004 15:58:18 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 53613-02 for <pgman@candle.pha.pa.us>;
+       Fri, 22 Oct 2004 14:58:10 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id 32CD532A0A2
+       for <pgman@candle.pha.pa.us>; Fri, 22 Oct 2004 15:58:18 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 65D9932A0AC
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Fri, 22 Oct 2004 15:54:30 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 49578-08
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Fri, 22 Oct 2004 14:54:12 +0000 (GMT)
+Received: from sss.pgh.pa.us (sss.pgh.pa.us [66.207.139.130])
+       by svr1.postgresql.org (Postfix) with ESMTP id A7D2A329FB7
+       for <pgsql-hackers@postgresql.org>; Fri, 22 Oct 2004 15:54:17 +0100 (BST)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+       by sss.pgh.pa.us (8.13.1/8.13.1) with ESMTP id i9MEsJsB006995;
+       Fri, 22 Oct 2004 10:54:19 -0400 (EDT)
+To: Dennis Bjorklund <db@zigo.dhs.org>
+cc: Robert Treat <xzilla@users.sourceforge.net>, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] timestamp with time zone a la sql99 
+In-Reply-To: <Pine.LNX.4.44.0410221615150.2015-100000@zigo.dhs.org> 
+References: <Pine.LNX.4.44.0410221615150.2015-100000@zigo.dhs.org>
+Comments: In-reply-to Dennis Bjorklund <db@zigo.dhs.org>
+       message dated "Fri, 22 Oct 2004 16:28:12 +0200"
+Date: Fri, 22 Oct 2004 10:54:19 -0400
+Message-ID: <6994.1098456859@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+Dennis Bjorklund <db@zigo.dhs.org> writes:
+> And exactly what issues is it that you see? The only thing I can think of
+> is if you have a timestamp and then add an interval to it so we jump past
+> the daylight saving time change date. Then the new timestamp will keep the
+> old timezone data of say +01 even though we now have jumped into the
+> daylight saving period of +02.
+
+Isn't that sufficient?  You can't design a datatype by thinking only of
+the data values it stores; you have to think about the operations you
+intend to provide as well.  A non-DST-capable timestamp datatype is
+inherently a few bricks shy of a load.  (BTW we really need to fix
+the interval type as well...)
+
+At bottom, what I want to be able to do is say
+       '2004-10-22 10:50:16.916003 America/New_York'
+and have the datatype preserve *all* of the information in that.  You
+are complaining because the existing type only remembers the equivalent
+universal time and not the timezone spec.  Why should I be satisfied if
+it stores only the GMT offset and not the knowledge of which timezone
+this really is?
+
+> My current thinking is that storing the time zone value as HH:MM is 
+> just fine and you avoid all the problems with political changes of when 
+> the DST is in effect or not.
+
+This is fundamentally misguided.  Time zones *are* political whether you
+like it or not, and people *do* expect DST-awareness whether you like it
+or not.  If you still use any computer systems that need to be reset
+twice a year because their designers thought DST was not their problem,
+don't you roundly curse them every time you have to do it?
+
+If you were planning to store a real (potentially DST-aware) timezone
+spec in the data values, I'd be happy.  But storing a fixed GMT offset
+is going to be a step backwards compared to existing functionality.  The
+fact that it's sufficient to satisfy the DST-ignorant SQL spec does not
+make it a reasonable design for the real world.
+
+One way to do this would be to create a system catalog with entries for
+all known timezones, and then represent timestamptz values as universal
+time plus an OID from that catalog.  There are other ways that small
+integer codes could be mapped to timezones of course.
+
+                       regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 2: you can get off all lists at once with the unregister command
+    (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
+
+From pgsql-hackers-owner+M60239=pgman=candle.pha.pa.us@postgresql.org Fri Oct 22 10:49:13 2004
+Return-path: <pgsql-hackers-owner+M60239=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9MEnCf08566
+       for <pgman@candle.pha.pa.us>; Fri, 22 Oct 2004 10:49:12 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 5B4D432A0A2
+       for <pgman@candle.pha.pa.us>; Fri, 22 Oct 2004 15:49:07 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 50773-01 for <pgman@candle.pha.pa.us>;
+       Fri, 22 Oct 2004 14:48:59 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id 230EA329F96
+       for <pgman@candle.pha.pa.us>; Fri, 22 Oct 2004 15:49:07 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 7CCE332A20E
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Fri, 22 Oct 2004 15:46:10 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 45902-10
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Fri, 22 Oct 2004 14:45:52 +0000 (GMT)
+Received: from wolff.to (wolff.to [66.93.249.74])
+       by svr1.postgresql.org (Postfix) with SMTP id 30F0F32A1FA
+       for <pgsql-hackers@postgresql.org>; Fri, 22 Oct 2004 15:45:58 +0100 (BST)
+Received: (qmail 17526 invoked by uid 500); 22 Oct 2004 14:56:44 -0000
+Date: Fri, 22 Oct 2004 09:56:44 -0500
+From: Bruno Wolff III <bruno@wolff.to>
+To: Dennis Bjorklund <db@zigo.dhs.org>
+cc: Tom Lane <tgl@sss.pgh.pa.us>, Robert Treat <xzilla@users.sourceforge.net>,
+   pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] timestamp with time zone a la sql99
+Message-ID: <20041022145644.GA17238@wolff.to>
+Mail-Followup-To: Dennis Bjorklund <db@zigo.dhs.org>,
+       Tom Lane <tgl@sss.pgh.pa.us>,
+       Robert Treat <xzilla@users.sourceforge.net>,
+       pgsql-hackers@postgresql.org
+References: <6540.1098454398@sss.pgh.pa.us> <Pine.LNX.4.44.0410221615150.2015-100000@zigo.dhs.org>
+MIME-Version: 1.0
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: inline
+In-Reply-To: <Pine.LNX.4.44.0410221615150.2015-100000@zigo.dhs.org>
+User-Agent: Mutt/1.5.6i
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+On Fri, Oct 22, 2004 at 16:28:12 +0200,
+  Dennis Bjorklund <db@zigo.dhs.org> wrote:
+> On Fri, 22 Oct 2004, Tom Lane wrote:
+> 
+> > As far as I can tell, Dennis is planning slavish adherence to the spec,
+> > which will mean that the datatype is unable to cope effectively with
+> > daylight-savings issues.  So I'm unconvinced that it will be very
+> > helpful to you for remembering local time in addition to true
+> > (universal) time.
+> 
+> And exactly what issues is it that you see? The only thing I can think of
+> is if you have a timestamp and then add an interval to it so we jump past
+> the daylight saving time change date. Then the new timestamp will keep the
+> old timezone data of say +01 even though we now have jumped into the
+> daylight saving period of +02.
+
+I think for just storing values you are fine. When it comes to adding or
+subtracting intervals you might get some unexpected results.
+
+---------------------------(end of broadcast)---------------------------
+TIP 3: if posting/reading through Usenet, please send an appropriate
+      subscribe-nomail command to majordomo@postgresql.org so that your
+      message can get through to the mailing list cleanly
+
+From pgsql-hackers-owner+M60253=pgman=candle.pha.pa.us@postgresql.org Fri Oct 22 14:44:05 2004
+Return-path: <pgsql-hackers-owner+M60253=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9MIi3f14607
+       for <pgman@candle.pha.pa.us>; Fri, 22 Oct 2004 14:44:03 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id B336CEAEDAF
+       for <pgman@candle.pha.pa.us>; Fri, 22 Oct 2004 19:43:39 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 21148-08 for <pgman@candle.pha.pa.us>;
+       Fri, 22 Oct 2004 18:43:46 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id 4FC1AEAEDAB
+       for <pgman@candle.pha.pa.us>; Fri, 22 Oct 2004 19:43:39 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 178B1EAEF44
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Fri, 22 Oct 2004 19:38:04 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 20287-01
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Fri, 22 Oct 2004 18:38:00 +0000 (GMT)
+Received: from www.postgresql.com (www.postgresql.com [200.46.204.209])
+       by svr1.postgresql.org (Postfix) with ESMTP id D1F79EAEE4F
+       for <pgsql-hackers@postgresql.org>; Fri, 22 Oct 2004 19:37:45 +0100 (BST)
+Received: from zigo.dhs.org (as2-4-3.an.g.bonet.se [194.236.34.191])
+       by www.postgresql.com (Postfix) with ESMTP id 358575A1CED
+       for <pgsql-hackers@postgresql.org>; Fri, 22 Oct 2004 16:34:33 +0100 (BST)
+Received: from zigo.zigo.dhs.org (zigo.zigo.dhs.org [192.168.0.1])
+       by zigo.dhs.org (Postfix) with ESMTP
+       id 89B7E8467; Fri, 22 Oct 2004 17:34:19 +0200 (CEST)
+Date: Fri, 22 Oct 2004 17:34:19 +0200 (CEST)
+From: Dennis Bjorklund <db@zigo.dhs.org>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Robert Treat <xzilla@users.sourceforge.net>,
+   <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] timestamp with time zone a la sql99 
+In-Reply-To: <6994.1098456859@sss.pgh.pa.us>
+Message-ID: <Pine.LNX.4.44.0410221714500.2015-100000@zigo.dhs.org>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=ISO-8859-1
+Content-Transfer-Encoding: 8BIT
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+On Fri, 22 Oct 2004, Tom Lane wrote:
+
+> At bottom, what I want to be able to do is say
+>      '2004-10-22 10:50:16.916003 America/New_York'
+
+Yes, that's what we said in the last mail and I think there is a value in
+having something like this.
+
+> universal time and not the timezone spec.  Why should I be satisfied if
+> it stores only the GMT offset and not the knowledge of which timezone
+> this really is?
+
+You don't need to be satisfied with it. I think a type like the above
+would be fine to have. It should however not be called "TIMESTAMP WITH
+TIME ZONE" because there is already a definition of that type. We can not
+hijack standard types. I would not mind a type like TIMESTAMP WITH TIME
+ZONE NAME (or some other name). I could even imagine that I could
+implement something like that one day.
+
+> > My current thinking is that storing the time zone value as HH:MM is 
+> > just fine and you avoid all the problems with political changes of when 
+> > the DST is in effect or not.
+> 
+> This is fundamentally misguided.  Time zones *are* political whether you
+> like it or not, and people *do* expect DST-awareness whether you like it
+> or not.
+
+And I never said that time zones are not political, just that HH:MM is a
+usable approximation that works fairly well.
+
+> But storing a fixed GMT offset is going to be a step backwards compared
+> to existing functionality.
+
+It's not a step backwards since you can do everything you can do with the 
+current type plus a little bit more. It's however not a step to the 
+datatype discussed above.
+
+> One way to do this would be to create a system catalog with entries for
+> all known timezones, and then represent timestamptz values as universal
+> time plus an OID from that catalog.  There are other ways that small
+> integer codes could be mapped to timezones of course.
+
+This is just fine. You try to make it sound like I am against such a
+datatype, I am not. It's however not the datatype that we can expect
+applications and other databases to use. So why should we settle for only
+that type. Just because you can make a perfect datatype it doesn't mean
+that the standard datatype should just be ignored.
+
+What would you store when the user supplies a timestamp like '2004-10-22
+17:21:00 +0200'. Should you reject that because you don't know the 
+time zone name? So your datatype will not work for applications that try 
+to be compatable with many databases by using the standard?
+
+Maybe one could make a datatype called TIMESTAMP WITH TIME ZONE that can
+accept both HH:MM and TimeZoneName. Whenever you store values with HH:MM 
+time zones you will get the same problem when you add an interval as the 
+standard type has.
+
+-- 
+/Dennis Björklund
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 8: explain analyze is your friend
+
+From pgsql-hackers-owner+M60266=pgman=candle.pha.pa.us@postgresql.org Fri Oct 22 17:04:46 2004
+Return-path: <pgsql-hackers-owner+M60266=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9ML4jf06676
+       for <pgman@candle.pha.pa.us>; Fri, 22 Oct 2004 17:04:45 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id C13F9EAE46B
+       for <pgman@candle.pha.pa.us>; Fri, 22 Oct 2004 22:04:20 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 66740-03 for <pgman@candle.pha.pa.us>;
+       Fri, 22 Oct 2004 21:04:28 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id 75764EAE1A2
+       for <pgman@candle.pha.pa.us>; Fri, 22 Oct 2004 22:04:20 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 2E4AFEAE486
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Fri, 22 Oct 2004 22:01:22 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 63290-09
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Fri, 22 Oct 2004 21:01:22 +0000 (GMT)
+Received: from sss.pgh.pa.us (sss.pgh.pa.us [66.207.139.130])
+       by svr1.postgresql.org (Postfix) with ESMTP id 88B3FEAE492
+       for <pgsql-hackers@postgresql.org>; Fri, 22 Oct 2004 22:01:13 +0100 (BST)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+       by sss.pgh.pa.us (8.13.1/8.13.1) with ESMTP id i9ML1WrB018877;
+       Fri, 22 Oct 2004 17:01:34 -0400 (EDT)
+To: Dennis Bjorklund <db@zigo.dhs.org>
+cc: Robert Treat <xzilla@users.sourceforge.net>, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] timestamp with time zone a la sql99 
+In-Reply-To: <Pine.LNX.4.44.0410221714500.2015-100000@zigo.dhs.org> 
+References: <Pine.LNX.4.44.0410221714500.2015-100000@zigo.dhs.org>
+Comments: In-reply-to Dennis Bjorklund <db@zigo.dhs.org>
+       message dated "Fri, 22 Oct 2004 17:34:19 +0200"
+Date: Fri, 22 Oct 2004 17:01:32 -0400
+Message-ID: <18876.1098478892@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+Dennis Bjorklund <db@zigo.dhs.org> writes:
+> You don't need to be satisfied with it. I think a type like the above
+> would be fine to have. It should however not be called "TIMESTAMP WITH
+> TIME ZONE" because there is already a definition of that type. We can not
+> hijack standard types.
+
+Sure we can, as long as they are upward compatible with the standard
+behavior.  The spec says you can put a numeric-GMT-offset zone in and
+get a numeric-GMT-offset zone out.  We can do that and also support
+named, possibly DST-aware zones.  This seems a whole lot better to me
+than having two different types (the idea of a GUC variable to choose
+which one is selected by a given type name is just horrid).
+
+>> But storing a fixed GMT offset is going to be a step backwards compared
+>> to existing functionality.
+
+> It's not a step backwards since you can do everything you can do with the 
+> current type plus a little bit more.
+
+... except get useful answers from interval addition ...
+
+> What would you store when the user supplies a timestamp like '2004-10-22
+> 17:21:00 +0200'. Should you reject that because you don't know the 
+> time zone name?
+
+You are attacking a straw man.
+
+We have put a great deal of work into 8.0 to add the ability to support
+real-world zones fully.  We did not import src/timezone because we
+needed it to implement the SQL spec; we did so because we needed it to
+implement what real users want.  We are not fully there yet (can't do AT
+TIME ZONE conversions with all zones yet, for instance) but I am hoping
+to be there by 8.1.  It would be folly to invent a timestamp with time
+zone type that is going in the other direction while we are trying to
+bring the rest of the system up to full speed by allowing all timezone
+kinds everywhere.
+
+                       regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 3: if posting/reading through Usenet, please send an appropriate
+      subscribe-nomail command to majordomo@postgresql.org so that your
+      message can get through to the mailing list cleanly
+
+From pgsql-hackers-owner+M60267=pgman=candle.pha.pa.us@postgresql.org Fri Oct 22 17:22:15 2004
+Return-path: <pgsql-hackers-owner+M60267=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9MLMEf09207
+       for <pgman@candle.pha.pa.us>; Fri, 22 Oct 2004 17:22:14 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 0B2D7EAE4AC
+       for <pgman@candle.pha.pa.us>; Fri, 22 Oct 2004 22:21:49 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 70387-04 for <pgman@candle.pha.pa.us>;
+       Fri, 22 Oct 2004 21:21:56 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id 0930BEAE4AA
+       for <pgman@candle.pha.pa.us>; Fri, 22 Oct 2004 22:21:48 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 292E8EAC955
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Fri, 22 Oct 2004 22:18:05 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 68984-06
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Fri, 22 Oct 2004 21:18:04 +0000 (GMT)
+Received: from zigo.dhs.org (as2-4-3.an.g.bonet.se [194.236.34.191])
+       by svr1.postgresql.org (Postfix) with ESMTP id A3C4DEAE489
+       for <pgsql-hackers@postgresql.org>; Fri, 22 Oct 2004 22:17:51 +0100 (BST)
+Received: from zigo.zigo.dhs.org (zigo.zigo.dhs.org [192.168.0.1])
+       by zigo.dhs.org (Postfix) with ESMTP
+       id 065508469; Fri, 22 Oct 2004 23:18:08 +0200 (CEST)
+Date: Fri, 22 Oct 2004 23:18:07 +0200 (CEST)
+From: Dennis Bjorklund <db@zigo.dhs.org>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Robert Treat <xzilla@users.sourceforge.net>,
+   <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] timestamp with time zone a la sql99 
+In-Reply-To: <18876.1098478892@sss.pgh.pa.us>
+Message-ID: <Pine.LNX.4.44.0410222306560.2015-100000@zigo.dhs.org>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=ISO-8859-1
+Content-Transfer-Encoding: 8BIT
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+On Fri, 22 Oct 2004, Tom Lane wrote:
+
+> than having two different types (the idea of a GUC variable to choose
+> which one is selected by a given type name is just horrid).
+
+That is needed no matter what change you do if you want old programs that
+use the current timestamp with time zone to work. Today you don't get back 
+the same time zone as you insert, programs might depend on that.
+
+> We are not fully there yet (can't do AT TIME ZONE conversions with all
+> zones yet, for instance)
+
+Why is that? When one start with a utc value, performing a AT TIME ZONE 
+operation doesn't look so complicated.
+
+-- 
+/Dennis Björklund
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 5: Have you checked our extensive FAQ?
+
+               http://www.postgresql.org/docs/faqs/FAQ.html
+
+From pgsql-hackers-owner+M60268=pgman=candle.pha.pa.us@postgresql.org Fri Oct 22 17:41:36 2004
+Return-path: <pgsql-hackers-owner+M60268=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9MLfYf12294
+       for <pgman@candle.pha.pa.us>; Fri, 22 Oct 2004 17:41:35 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id EFAEAEAE4AA
+       for <pgman@candle.pha.pa.us>; Fri, 22 Oct 2004 22:41:08 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 75185-08 for <pgman@candle.pha.pa.us>;
+       Fri, 22 Oct 2004 21:41:16 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id 311A7EAE4AF
+       for <pgman@candle.pha.pa.us>; Fri, 22 Oct 2004 22:41:08 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id AC0CFEAE486
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Fri, 22 Oct 2004 22:38:14 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 76579-03
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Fri, 22 Oct 2004 21:38:13 +0000 (GMT)
+Received: from sss.pgh.pa.us (sss.pgh.pa.us [66.207.139.130])
+       by svr1.postgresql.org (Postfix) with ESMTP id BD0AAEAD7E2
+       for <pgsql-hackers@postgresql.org>; Fri, 22 Oct 2004 22:38:03 +0100 (BST)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+       by sss.pgh.pa.us (8.13.1/8.13.1) with ESMTP id i9MLcOnT019118;
+       Fri, 22 Oct 2004 17:38:25 -0400 (EDT)
+To: Dennis Bjorklund <db@zigo.dhs.org>
+cc: Robert Treat <xzilla@users.sourceforge.net>, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] timestamp with time zone a la sql99 
+In-Reply-To: <Pine.LNX.4.44.0410222306560.2015-100000@zigo.dhs.org> 
+References: <Pine.LNX.4.44.0410222306560.2015-100000@zigo.dhs.org>
+Comments: In-reply-to Dennis Bjorklund <db@zigo.dhs.org>
+       message dated "Fri, 22 Oct 2004 23:18:07 +0200"
+Date: Fri, 22 Oct 2004 17:38:24 -0400
+Message-ID: <19117.1098481104@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+Dennis Bjorklund <db@zigo.dhs.org> writes:
+> On Fri, 22 Oct 2004, Tom Lane wrote:
+>> than having two different types (the idea of a GUC variable to choose
+>> which one is selected by a given type name is just horrid).
+
+> That is needed no matter what change you do if you want old programs that
+> use the current timestamp with time zone to work. Today you don't get back 
+> the same time zone as you insert, programs might depend on that.
+
+[ shrug... ]  We've made much larger changes than that in the name of
+standards compliance.  In practice I think the majority of apps are
+working in contexts where they will get back the same zone as they
+inserted, if they inserted a zone explicitly at all, so the risk of
+breakage is not that high.  Having a GUC variable that changes the
+semantics underneath you is *much* riskier, to judge by past experience.
+
+>> We are not fully there yet (can't do AT TIME ZONE conversions with all
+>> zones yet, for instance)
+
+> Why is that?
+
+Because it's not done yet.  There's a set of GMT-offset-only zone names
+wired into the datetime code (look in the "datetime token table") and
+those are what AT TIME ZONE knows how to deal with.  We need to unify
+that old stuff with the src/timezone code, but we ran out of time to do
+it in 8.0.
+
+The way I see it, we have three sorts of zones to deal with: fixed
+numeric offsets from UTC, names that represent fixed offsets (eg, "EST"
+is the same as UTC-5), and names that represent DST-variable offsets
+(eg, "EST5EDT").  For what are now entirely historical reasons, various
+parts of the system cope with different subsets of these three types.
+I want to get to a state where you can use any of them in any context
+and it Just Works.  (While we are at it, we need to make the set of
+recognized zone names user-configurable; the australian_timezones kluge
+satisfies our contributors Down Under, but there are a lot of unhappy
+people still, because for instance IST means different things in Israel
+and India.)
+
+                       regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 2: you can get off all lists at once with the unregister command
+    (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
+
+From pgsql-hackers-owner+M60269=pgman=candle.pha.pa.us@postgresql.org Fri Oct 22 17:51:14 2004
+Return-path: <pgsql-hackers-owner+M60269=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9MLpCf14192
+       for <pgman@candle.pha.pa.us>; Fri, 22 Oct 2004 17:51:13 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 43D6BEAE489
+       for <pgman@candle.pha.pa.us>; Fri, 22 Oct 2004 22:50:47 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 78632-05 for <pgman@candle.pha.pa.us>;
+       Fri, 22 Oct 2004 21:50:55 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id EFC45EAE486
+       for <pgman@candle.pha.pa.us>; Fri, 22 Oct 2004 22:50:46 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 42518EAC955
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Fri, 22 Oct 2004 22:48:36 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 77399-07
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Fri, 22 Oct 2004 21:48:35 +0000 (GMT)
+Received: from sss.pgh.pa.us (sss.pgh.pa.us [66.207.139.130])
+       by svr1.postgresql.org (Postfix) with ESMTP id 8BB75EAE46B
+       for <pgsql-hackers@postgresql.org>; Fri, 22 Oct 2004 22:48:27 +0100 (BST)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+       by sss.pgh.pa.us (8.13.1/8.13.1) with ESMTP id i9MLmm1l019192;
+       Fri, 22 Oct 2004 17:48:48 -0400 (EDT)
+To: Dennis Bjorklund <db@zigo.dhs.org>
+cc: Robert Treat <xzilla@users.sourceforge.net>, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] timestamp with time zone a la sql99 
+In-Reply-To: <19117.1098481104@sss.pgh.pa.us> 
+References: <Pine.LNX.4.44.0410222306560.2015-100000@zigo.dhs.org> <19117.1098481104@sss.pgh.pa.us>
+Comments: In-reply-to Tom Lane <tgl@sss.pgh.pa.us>
+       message dated "Fri, 22 Oct 2004 17:38:24 -0400"
+Date: Fri, 22 Oct 2004 17:48:48 -0400
+Message-ID: <19191.1098481728@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+>> That is needed no matter what change you do if you want old programs that
+>> use the current timestamp with time zone to work. Today you don't get back 
+>> the same time zone as you insert, programs might depend on that.
+
+> [ shrug... ]  We've made much larger changes than that in the name of
+> standards compliance.
+
+BTW, even if you do want output like that, that doesn't make two
+datatypes a good idea.  It'd be better to add a couple of DateStyle-like
+formatting options:
+       * rotate all timestamps into current TimeZone for display, or not;
+       * display the timezone numerically, or as originally given.
+
+A DateStyle kind of GUC variable is a lot less dangerous than what you
+were proposing, because getting it wrong doesn't mean you have the wrong
+data stored in the database ...
+
+                       regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 4: Don't 'kill -9' the postmaster
+
+From pgsql-hackers-owner+M60274=pgman=candle.pha.pa.us@postgresql.org Sat Oct 23 02:11:58 2004
+Return-path: <pgsql-hackers-owner+M60274=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9N6Buf20583
+       for <pgman@candle.pha.pa.us>; Sat, 23 Oct 2004 02:11:57 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id B3D75EAE4AC
+       for <pgman@candle.pha.pa.us>; Sat, 23 Oct 2004 07:11:22 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 75750-09 for <pgman@candle.pha.pa.us>;
+       Sat, 23 Oct 2004 06:11:32 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id 560D3EADBC0
+       for <pgman@candle.pha.pa.us>; Sat, 23 Oct 2004 07:11:22 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 9D862EAE4CB
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Sat, 23 Oct 2004 07:08:48 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 77538-02
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Sat, 23 Oct 2004 06:08:54 +0000 (GMT)
+Received: from zigo.dhs.org (as2-4-3.an.g.bonet.se [194.236.34.191])
+       by svr1.postgresql.org (Postfix) with ESMTP id 29BC1EAC8F4
+       for <pgsql-hackers@postgresql.org>; Sat, 23 Oct 2004 07:08:40 +0100 (BST)
+Received: from zigo.zigo.dhs.org (zigo.zigo.dhs.org [192.168.0.1])
+       by zigo.dhs.org (Postfix) with ESMTP
+       id 846788467; Sat, 23 Oct 2004 08:09:05 +0200 (CEST)
+Date: Sat, 23 Oct 2004 08:09:05 +0200 (CEST)
+From: Dennis Bjorklund <db@zigo.dhs.org>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Robert Treat <xzilla@users.sourceforge.net>,
+   <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] timestamp with time zone a la sql99 
+In-Reply-To: <18876.1098478892@sss.pgh.pa.us>
+Message-ID: <Pine.LNX.4.44.0410230802200.2015-100000@zigo.dhs.org>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=ISO-8859-1
+Content-Transfer-Encoding: 8BIT
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+On Fri, 22 Oct 2004, Tom Lane wrote:
+
+> behavior.  The spec says you can put a numeric-GMT-offset zone in and
+> get a numeric-GMT-offset zone out.  We can do that and also support
+> named, possibly DST-aware zones.
+
+So if I understand you correctly you are planning to extend the current
+timestamp type to work with both named time zones and HH:MM ones? I didn't
+think you wanted the last one since your plan was to store a UTC+OID where
+the OID pointed to a named time zone. And I guess that you don't plan to
+add 00:00, 00:01, 00:02, ... as named zones with an OID.
+
+-- 
+/Dennis Björklund
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 9: the planner will ignore your desire to choose an index scan if your
+      joining column's datatypes do not match
+
+From pgsql-hackers-owner+M60329=pgman=candle.pha.pa.us@postgresql.org Mon Oct 25 12:45:39 2004
+Return-path: <pgsql-hackers-owner+M60329=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9PGjcf25576
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 12:45:38 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 27F433A4146
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 17:45:35 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 63030-04 for <pgman@candle.pha.pa.us>;
+       Mon, 25 Oct 2004 16:45:34 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id D15153A413C
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 17:45:34 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 4D4653A415D
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Mon, 25 Oct 2004 17:43:32 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 60516-10
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Mon, 25 Oct 2004 16:43:26 +0000 (GMT)
+Received: from davinci.ethosmedia.com (server226.ethosmedia.com [209.128.84.226])
+       by svr1.postgresql.org (Postfix) with ESMTP id CAB1E3A4170
+       for <pgsql-hackers@postgresql.org>; Mon, 25 Oct 2004 17:43:26 +0100 (BST)
+Received: from [63.195.55.98] (account josh@agliodbs.com HELO spooky)
+  by davinci.ethosmedia.com (CommuniGate Pro SMTP 4.1.8)
+  with ESMTP id 6553366 for pgsql-hackers@postgresql.org; Mon, 25 Oct 2004 09:44:52 -0700
+From: Josh Berkus <josh@agliodbs.com>
+Organization: Aglio Database Solutions
+To: pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] timestamp with time zone a la sql99 
+Date: Mon, 25 Oct 2004 09:42:38 -0700
+User-Agent: KMail/1.6.2
+References: <20041022184636.62D39EAEE02@svr1.postgresql.org>
+In-Reply-To: <20041022184636.62D39EAEE02@svr1.postgresql.org>
+MIME-Version: 1.0
+Content-Disposition: inline
+Content-Type: text/plain;
+  charset="utf-8"
+Message-ID: <200410250942.38212.josh@agliodbs.com>
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Content-Transfer-Encoding: 8bit
+X-MIME-Autoconverted: from quoted-printable to 8bit by candle.pha.pa.us id i9PGjcf25576
+X-Spam-Checker-Version: SpamAssassin 2.61 (1.212.2.1-2003-12-09-exp) on 
+       candle.pha.pa.us
+X-Spam-Status: No, hits=-4.9 required=5.0 tests=BAYES_00 autolearn=ham 
+       version=2.61
+Status: OR
+
+Tom,
+
+> As far as I can tell, Dennis is planning slavish adherence to the spec,
+> which will mean that the datatype is unable to cope effectively with
+> daylight-savings issues.  So I'm unconvinced that it will be very
+> helpful to you for remembering local time in addition to true
+> (universal) time.
+
+As somebody who codes calendar apps, I have to say that I have yet to see an 
+implementation of time zones which is at all useful for this purpose, 
+including the current implementation.   My calendar apps on PostgreSQL 7.4 
+use "timestamp without time zone" and keep the time zone in a seperate field.
+
+The reason is simple:  our current implementation, which does include DST, 
+does not include any provision for the exceptions to DST -- such as Arizona 
+-- or for the difference between "1 day" and "24 hours".  (Try adding "30 
+days" to "2004-10-05 10:00 PDT", you'll see what I mean).     Nor do I see a 
+way out of this without raising the complexity, and configurability, level of 
+timezones significantly.
+
+So if we're going to be broken (at least from the perspective of calendar 
+applications) we might as well be broken in a spec-compliant way.
+
+-- 
+Josh Berkus
+Aglio Database Solutions
+San Francisco
+
+---------------------------(end of broadcast)---------------------------
+TIP 6: Have you searched our list archives?
+
+               http://archives.postgresql.org
+
+From pgsql-hackers-owner+M60334=pgman=candle.pha.pa.us@postgresql.org Mon Oct 25 13:56:27 2004
+Return-path: <pgsql-hackers-owner+M60334=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9PHuQf06230
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 13:56:26 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 024493A3C12
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 18:56:23 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 90234-01 for <pgman@candle.pha.pa.us>;
+       Mon, 25 Oct 2004 17:56:21 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id B12643A3BDD
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 18:56:22 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 038CC3A412E
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Mon, 25 Oct 2004 18:54:57 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 89206-06
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Mon, 25 Oct 2004 17:54:54 +0000 (GMT)
+Received: from sss.pgh.pa.us (sss.pgh.pa.us [66.207.139.130])
+       by svr1.postgresql.org (Postfix) with ESMTP id 0D5D13A3B06
+       for <pgsql-hackers@postgresql.org>; Mon, 25 Oct 2004 18:54:54 +0100 (BST)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+       by sss.pgh.pa.us (8.13.1/8.13.1) with ESMTP id i9PHsrvv021835;
+       Mon, 25 Oct 2004 13:54:53 -0400 (EDT)
+To: Josh Berkus <josh@agliodbs.com>
+cc: pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] timestamp with time zone a la sql99 
+In-Reply-To: <200410250942.38212.josh@agliodbs.com> 
+References: <20041022184636.62D39EAEE02@svr1.postgresql.org> <200410250942.38212.josh@agliodbs.com>
+Comments: In-reply-to Josh Berkus <josh@agliodbs.com>
+       message dated "Mon, 25 Oct 2004 09:42:38 -0700"
+Date: Mon, 25 Oct 2004 13:54:53 -0400
+Message-ID: <21834.1098726893@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+Josh Berkus <josh@agliodbs.com> writes:
+> The reason is simple:  our current implementation, which does include DST, 
+> does not include any provision for the exceptions to DST -- such as Arizona 
+
+Say what?
+
+regression=# set timezone to 'MST7MDT';
+SET
+regression=# select now();
+              now
+-------------------------------
+ 2004-10-25 11:52:47.093538-06
+(1 row)
+
+regression=# set timezone to 'US/Arizona';
+SET
+regression=# select now();
+              now
+-------------------------------
+ 2004-10-25 10:52:49.441559-07
+(1 row)
+
+> -- or for the difference between "1 day" and "24 hours".  (Try adding "30 
+> days" to "2004-10-05 10:00 PDT", you'll see what I mean).
+
+This is the point about how interval needs to treat "day" as different
+from "24 hours".  I agree with that; the fact that it's not done already
+is just a reflection of limited supply of round tuits.  I think it's
+orthogonal to the question of how flexible timestamp with time zone
+needs to be, though.
+
+> Nor do I see a way out of this without raising the complexity, and
+> configurability, level of timezones significantly.
+
+This does not seem to me to be an argument why timestamp with time zone
+ought to be incapable of dealing with DST-aware time zones.  That simply
+guarantees that calendar apps won't be able to use the datatype.  If
+they still can't use it when it can do that, then we can look at the
+next blocking factor.
+
+> So if we're going to be broken (at least from the perspective of calendar 
+> applications) we might as well be broken in a spec-compliant way.
+
+I have not said that we can't comply with the spec.  I have said that
+our ambitions need to be higher than merely complying with the spec.
+
+                       regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 3: if posting/reading through Usenet, please send an appropriate
+      subscribe-nomail command to majordomo@postgresql.org so that your
+      message can get through to the mailing list cleanly
+
+From pgsql-hackers-owner+M60335=pgman=candle.pha.pa.us@postgresql.org Mon Oct 25 14:08:52 2004
+Return-path: <pgsql-hackers-owner+M60335=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9PI8of08458
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 14:08:51 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id EB0003A4181
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 19:08:47 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 94404-01 for <pgman@candle.pha.pa.us>;
+       Mon, 25 Oct 2004 18:08:46 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id 984283A417A
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 19:08:47 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 058F13A3B6E
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Mon, 25 Oct 2004 19:06:53 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 91573-10
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Mon, 25 Oct 2004 18:06:42 +0000 (GMT)
+Received: from davinci.ethosmedia.com (server226.ethosmedia.com [209.128.84.226])
+       by svr1.postgresql.org (Postfix) with ESMTP id B6FB73A3AC2
+       for <pgsql-hackers@postgresql.org>; Mon, 25 Oct 2004 19:06:43 +0100 (BST)
+Received: from [64.81.245.111] (account josh@agliodbs.com HELO temoku.sf.agliodbs.com)
+  by davinci.ethosmedia.com (CommuniGate Pro SMTP 4.1.8)
+  with ESMTP id 6553760; Mon, 25 Oct 2004 11:08:08 -0700
+From: Josh Berkus <josh@agliodbs.com>
+Reply-To: josh@agliodbs.com
+Organization: Aglio Database Solutions
+To: pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] timestamp with time zone a la sql99
+Date: Mon, 25 Oct 2004 11:08:52 -0700
+User-Agent: KMail/1.6.2
+cc: Tom Lane <tgl@sss.pgh.pa.us>
+References: <20041022184636.62D39EAEE02@svr1.postgresql.org> <200410250942.38212.josh@agliodbs.com> <21834.1098726893@sss.pgh.pa.us>
+In-Reply-To: <21834.1098726893@sss.pgh.pa.us>
+MIME-Version: 1.0
+Content-Disposition: inline
+Content-Type: text/plain;
+  charset="utf-8"
+Content-Transfer-Encoding: 7bit
+Message-ID: <200410251108.52164.josh@agliodbs.com>
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+Tom,
+
+> regression=# set timezone to 'US/Arizona';
+> SET
+> regression=# select now();
+>               now
+> -------------------------------
+>  2004-10-25 10:52:49.441559-07
+
+Wow!   When did that get fixed?   How do I keep track of this stuff if you 
+guys keep fixing it?   ;-)
+
+Of course, it would be very helpful if the result above could display 
+"Arizona" instead of the non-specific "-07", but I'm pretty sure that's 
+already a TODO.
+
+> This is the point about how interval needs to treat "day" as different
+> from "24 hours".  I agree with that; the fact that it's not done already
+> is just a reflection of limited supply of round tuits. 
+
+Well, when I first brought up the issue (2001) I was shot down on the basis of 
+spec-compliance, since SQL92 recognizes only Year/Month and 
+Day/Hour/Minute/etc.  partitions.   Glad it's up for consideration again.
+
+Come to think of it, it was Thomas Lockhart who shot down the idea of fixing 
+Interval, and he's retired now ...
+
+> This does not seem to me to be an argument why timestamp with time zone
+> ought to be incapable of dealing with DST-aware time zones.  That simply
+> guarantees that calendar apps won't be able to use the datatype.  If
+> they still can't use it when it can do that, then we can look at the
+> next blocking factor.
+
+That's definitely a progressive attitude .... pardon me for being pessimistic.
+
+> I have not said that we can't comply with the spec.  I have said that
+> our ambitions need to be higher than merely complying with the spec.
+
+Hmmm ... well, does the spec specifically prohibit DST, or just leave it out?
+
+-- 
+--Josh
+
+Josh Berkus
+Aglio Database Solutions
+San Francisco
+
+---------------------------(end of broadcast)---------------------------
+TIP 7: don't forget to increase your free space map settings
+
+From pgsql-hackers-owner+M60336=pgman=candle.pha.pa.us@postgresql.org Mon Oct 25 14:21:12 2004
+Return-path: <pgsql-hackers-owner+M60336=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9PILAf10029
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 14:21:11 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 96C283A3B0E
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 19:21:07 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 96954-06 for <pgman@candle.pha.pa.us>;
+       Mon, 25 Oct 2004 18:21:06 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id 528B73A3B06
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 19:21:07 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id E010F3A4192
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Mon, 25 Oct 2004 19:19:46 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 96137-04
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Mon, 25 Oct 2004 18:19:41 +0000 (GMT)
+Received: from sss.pgh.pa.us (sss.pgh.pa.us [66.207.139.130])
+       by svr1.postgresql.org (Postfix) with ESMTP id A1BDA3A4190
+       for <pgsql-hackers@postgresql.org>; Mon, 25 Oct 2004 19:19:42 +0100 (BST)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+       by sss.pgh.pa.us (8.13.1/8.13.1) with ESMTP id i9PIJegg022094;
+       Mon, 25 Oct 2004 14:19:40 -0400 (EDT)
+To: josh@agliodbs.com
+cc: pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] timestamp with time zone a la sql99 
+In-Reply-To: <200410251108.52164.josh@agliodbs.com> 
+References: <20041022184636.62D39EAEE02@svr1.postgresql.org> <200410250942.38212.josh@agliodbs.com> <21834.1098726893@sss.pgh.pa.us> <200410251108.52164.josh@agliodbs.com>
+Comments: In-reply-to Josh Berkus <josh@agliodbs.com>
+       message dated "Mon, 25 Oct 2004 11:08:52 -0700"
+Date: Mon, 25 Oct 2004 14:19:40 -0400
+Message-ID: <22093.1098728380@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+Josh Berkus <josh@agliodbs.com> writes:
+>> regression=# set timezone to 'US/Arizona';
+>> SET
+>> regression=# select now();
+>> now
+>> -------------------------------
+>> 2004-10-25 10:52:49.441559-07
+
+> Wow!   When did that get fixed?   How do I keep track of this stuff if you 
+> guys keep fixing it?   ;-)
+
+> Of course, it would be very helpful if the result above could display 
+> "Arizona" instead of the non-specific "-07", but I'm pretty sure that's 
+> already a TODO.
+
+Well, that is *exactly what I'm talking about*.  I want timestamp with
+time zone to carry "US/Arizona" not just "-07".  Obviously there needs
+to be some option to get the latter displayed when that's all you want,
+but internally a value of the datatype needs to be able to carry full
+knowledge of which timezone it's supposed to be in.  Dumbing that down
+to a simple numeric GMT offset isn't good enough.
+
+>> I have not said that we can't comply with the spec.  I have said that
+>> our ambitions need to be higher than merely complying with the spec.
+
+> Hmmm ... well, does the spec specifically prohibit DST, or just leave it out?
+
+It just doesn't talk about it AFAICS.
+
+To comply with the spec we definitely need to be *able* to support
+timezone values that are simple numeric GMT offsets.  But I think we
+ought also to be able to store values that are references to any of
+the zic database entries.  This looks to me like a straightforward
+extension of the spec.
+
+We went to all the trouble of importing src/timezone in order that we
+could make a significant upgrade in our timezone capability, and now
+it's time to take the steps that that enables.  Before we were limited
+to the lowest-common-denominator of the libc timezone routines on all
+our different platforms, but now we are not...
+
+                       regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 6: Have you searched our list archives?
+
+               http://archives.postgresql.org
+
+From pgsql-hackers-owner+M60337=pgman=candle.pha.pa.us@postgresql.org Mon Oct 25 14:28:59 2004
+Return-path: <pgsql-hackers-owner+M60337=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9PISvf11118
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 14:28:58 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 928B13A3B43
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 19:28:54 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 00197-04 for <pgman@candle.pha.pa.us>;
+       Mon, 25 Oct 2004 18:28:53 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id 518C33A3B06
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 19:28:54 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 3AA743A3B0E
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Mon, 25 Oct 2004 19:27:17 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 99849-02
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Mon, 25 Oct 2004 18:27:07 +0000 (GMT)
+Received: from zigo.dhs.org (as2-4-3.an.g.bonet.se [194.236.34.191])
+       by svr1.postgresql.org (Postfix) with ESMTP id B62843A418A
+       for <pgsql-hackers@postgresql.org>; Mon, 25 Oct 2004 19:27:01 +0100 (BST)
+Received: from zigo.zigo.dhs.org (zigo.zigo.dhs.org [192.168.0.1])
+       by zigo.dhs.org (Postfix) with ESMTP
+       id 5AD8C8467; Mon, 25 Oct 2004 20:26:59 +0200 (CEST)
+Date: Mon, 25 Oct 2004 20:26:59 +0200 (CEST)
+From: Dennis Bjorklund <db@zigo.dhs.org>
+To: Josh Berkus <josh@agliodbs.com>
+cc: pgsql-hackers@postgresql.org, Tom Lane <tgl@sss.pgh.pa.us>
+Subject: Re: [HACKERS] timestamp with time zone a la sql99
+In-Reply-To: <200410251108.52164.josh@agliodbs.com>
+Message-ID: <Pine.LNX.4.44.0410252019320.2015-100000@zigo.dhs.org>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=ISO-8859-1
+Content-Transfer-Encoding: 8BIT
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+On Mon, 25 Oct 2004, Josh Berkus wrote:
+
+> Hmmm ... well, does the spec specifically prohibit DST, or just leave it
+> out?
+
+It doesn't discuss it. According to the spec a timestamp with time zone is 
+a UTC value + a HH:MM offset from GMT. And intervals in the spec is either 
+a year-month value or a day-time value. One can only compare year-month 
+values with each other and day-time values with each other. So they avoid 
+the problem of the how many days is a month by not allowing it.
+
+The spec is not a full solution, it's also not a useless solution. I'm
+happy as long as the spec is a subset of what pg implements. If not then I
+would like to be able to have both but with different names or something
+similar (but I think that should not be needed).
+
+-- 
+/Dennis Björklund
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 3: if posting/reading through Usenet, please send an appropriate
+      subscribe-nomail command to majordomo@postgresql.org so that your
+      message can get through to the mailing list cleanly
+
+From pgsql-hackers-owner+M60338=pgman=candle.pha.pa.us@postgresql.org Mon Oct 25 14:54:31 2004
+Return-path: <pgsql-hackers-owner+M60338=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9PIsUf15052
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 14:54:30 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 3F9063A41BC
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 19:54:27 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 09766-01 for <pgman@candle.pha.pa.us>;
+       Mon, 25 Oct 2004 18:54:25 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id E25B63A41BA
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 19:54:26 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 8FBF23A41A0
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Mon, 25 Oct 2004 19:52:27 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 05475-10
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Mon, 25 Oct 2004 18:52:24 +0000 (GMT)
+Received: from davinci.ethosmedia.com (server226.ethosmedia.com [209.128.84.226])
+       by svr1.postgresql.org (Postfix) with ESMTP id E7C333A4182
+       for <pgsql-hackers@postgresql.org>; Mon, 25 Oct 2004 19:52:24 +0100 (BST)
+Received: from [64.81.245.111] (account josh@agliodbs.com HELO temoku.sf.agliodbs.com)
+  by davinci.ethosmedia.com (CommuniGate Pro SMTP 4.1.8)
+  with ESMTP id 6553982; Mon, 25 Oct 2004 11:53:49 -0700
+From: Josh Berkus <josh@agliodbs.com>
+Reply-To: josh@agliodbs.com
+Organization: Aglio Database Solutions
+To: pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] timestamp with time zone a la sql99
+Date: Mon, 25 Oct 2004 11:54:33 -0700
+User-Agent: KMail/1.6.2
+cc: Dennis Bjorklund <db@zigo.dhs.org>, Tom Lane <tgl@sss.pgh.pa.us>
+References: <Pine.LNX.4.44.0410252019320.2015-100000@zigo.dhs.org>
+In-Reply-To: <Pine.LNX.4.44.0410252019320.2015-100000@zigo.dhs.org>
+MIME-Version: 1.0
+Content-Disposition: inline
+Content-Type: text/plain;
+  charset="iso-8859-1"
+Content-Transfer-Encoding: 7bit
+Message-ID: <200410251154.33532.josh@agliodbs.com>
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+Dennis,
+
+> It doesn't discuss it. According to the spec a timestamp with time zone is
+> a UTC value + a HH:MM offset from GMT. And intervals in the spec is either
+> a year-month value or a day-time value. One can only compare year-month
+> values with each other and day-time values with each other. So they avoid
+> the problem of the how many days is a month by not allowing it.
+
+That's not what Tom and I were talking about.  The issue is that the spec 
+defines Days/Weeks as being an agglomeration of hours and not an atomic 
+entity like Months/Years are.   This leads to some wierd and 
+calendar-breaking behavior when combined with DST, for example:
+
+template1=> select '2004-10-09 10:00 PDT'::TIMESTAMPTZ + '45 days'::INTERVAL
+template1-> ;
+        ?column?
+------------------------
+ 2004-11-23 09:00:00-08
+(1 row)
+
+Because of the DST shift, you get an hour shift which is most decidely not 
+anything real human beings would expect from a calendar.  The answer is to 
+try-partition INTERVAL values, as:
+
+Hour/Minute/Second/ms
+Day/Week
+Month/Year
+
+However, this could be considered to break the spec; certainly Thomas thought 
+it did.  My defense is that the SQL committee made some mistakes, and 
+interval is a big one.
+
+-- 
+--Josh
+
+Josh Berkus
+Aglio Database Solutions
+San Francisco
+
+---------------------------(end of broadcast)---------------------------
+TIP 2: you can get off all lists at once with the unregister command
+    (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
+
+From pgsql-hackers-owner+M60339=pgman=candle.pha.pa.us@postgresql.org Mon Oct 25 15:07:28 2004
+Return-path: <pgsql-hackers-owner+M60339=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9PJ7Qf17120
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 15:07:27 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 666B73A41B0
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 20:07:23 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 13808-02 for <pgman@candle.pha.pa.us>;
+       Mon, 25 Oct 2004 19:07:21 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id 207F03A41AE
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 20:07:23 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id D243F3A4182
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Mon, 25 Oct 2004 20:04:23 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 12122-06
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Mon, 25 Oct 2004 19:04:18 +0000 (GMT)
+Received: from sss.pgh.pa.us (sss.pgh.pa.us [66.207.139.130])
+       by svr1.postgresql.org (Postfix) with ESMTP id 52FFB3A3CF2
+       for <pgsql-hackers@postgresql.org>; Mon, 25 Oct 2004 20:04:18 +0100 (BST)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+       by sss.pgh.pa.us (8.13.1/8.13.1) with ESMTP id i9PJ4GUm022503;
+       Mon, 25 Oct 2004 15:04:16 -0400 (EDT)
+To: josh@agliodbs.com
+cc: pgsql-hackers@postgresql.org, Dennis Bjorklund <db@zigo.dhs.org>
+Subject: Re: [HACKERS] timestamp with time zone a la sql99 
+In-Reply-To: <200410251154.33532.josh@agliodbs.com> 
+References: <Pine.LNX.4.44.0410252019320.2015-100000@zigo.dhs.org> <200410251154.33532.josh@agliodbs.com>
+Comments: In-reply-to Josh Berkus <josh@agliodbs.com>
+       message dated "Mon, 25 Oct 2004 11:54:33 -0700"
+Date: Mon, 25 Oct 2004 15:04:16 -0400
+Message-ID: <22502.1098731056@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+Josh Berkus <josh@agliodbs.com> writes:
+>> It doesn't discuss it. According to the spec a timestamp with time zone is
+>> a UTC value + a HH:MM offset from GMT. And intervals in the spec is either
+>> a year-month value or a day-time value. One can only compare year-month
+>> values with each other and day-time values with each other. So they avoid
+>> the problem of the how many days is a month by not allowing it.
+
+> That's not what Tom and I were talking about.  The issue is that the spec 
+> defines Days/Weeks as being an agglomeration of hours and not an atomic 
+> entity like Months/Years are.
+
+I think though that these points are closely related.  The reason the
+spec does that is exactly that they are ignoring DST and so they can
+assume that 1 day == 24 hours == 86400 seconds.  In a DST-aware world
+you have to make a separation between days and the smaller units, just
+as months are separated from smaller units because there's not a fixed
+conversion factor.
+
+To some extent the interval and timestamptz issues are orthogonal, but
+I think it would be good to fix them in the same release if possible.
+There will undoubtedly be some backwards-compatibility problems, and
+I suppose that users would prefer to take them all at once than via
+the chinese water torture method ...
+
+> However, this could be considered to break the spec; certainly Thomas
+> thought it did.  My defense is that the SQL committee made some
+> mistakes, and interval is a big one.
+
+I'm not clear to what extent we have to actually break the spec, as
+opposed to extend it, in order to do this to the "interval" type.  To do
+everything the spec says we need to do, we'll have to be able to make
+some comparisons that aren't strictly valid (which amounts to assuming
+that 1 day == 24 hours for some limited purposes) but we already do much
+the same things with respect to months.  (See other thread about whether
+1 year == 360 days...)
+
+                       regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 5: Have you checked our extensive FAQ?
+
+               http://www.postgresql.org/docs/faqs/FAQ.html
+
+From pgsql-hackers-owner+M60340=pgman=candle.pha.pa.us@postgresql.org Mon Oct 25 15:12:25 2004
+Return-path: <pgsql-hackers-owner+M60340=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9PJCNf17962
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 15:12:24 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id AA6B73A41C2
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 20:12:20 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 13059-08 for <pgman@candle.pha.pa.us>;
+       Mon, 25 Oct 2004 19:12:19 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id 50BAF3A41C1
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 20:12:20 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 2035E3A41B9
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Mon, 25 Oct 2004 20:11:08 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 13808-08
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Mon, 25 Oct 2004 19:11:04 +0000 (GMT)
+Received: from zigo.dhs.org (as2-4-3.an.g.bonet.se [194.236.34.191])
+       by svr1.postgresql.org (Postfix) with ESMTP id 5D4C03A41B2
+       for <pgsql-hackers@postgresql.org>; Mon, 25 Oct 2004 20:11:04 +0100 (BST)
+Received: from zigo.zigo.dhs.org (zigo.zigo.dhs.org [192.168.0.1])
+       by zigo.dhs.org (Postfix) with ESMTP
+       id 156808467; Mon, 25 Oct 2004 21:11:04 +0200 (CEST)
+Date: Mon, 25 Oct 2004 21:11:04 +0200 (CEST)
+From: Dennis Bjorklund <db@zigo.dhs.org>
+To: Josh Berkus <josh@agliodbs.com>
+cc: pgsql-hackers@postgresql.org, Tom Lane <tgl@sss.pgh.pa.us>
+Subject: Re: [HACKERS] timestamp with time zone a la sql99
+In-Reply-To: <200410251154.33532.josh@agliodbs.com>
+Message-ID: <Pine.LNX.4.44.0410252103340.2015-100000@zigo.dhs.org>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=ISO-8859-1
+Content-Transfer-Encoding: 8BIT
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+On Mon, 25 Oct 2004, Josh Berkus wrote:
+
+> Dennis,
+> 
+> > It doesn't discuss it. According to the spec a timestamp with time zone is
+> > a UTC value + a HH:MM offset from GMT. And intervals in the spec is either
+> > a year-month value or a day-time value. One can only compare year-month
+> > values with each other and day-time values with each other. So they avoid
+> > the problem of the how many days is a month by not allowing it.
+> 
+> That's not what Tom and I were talking about.
+
+You wanted to know what the standard said, and I told what I knew.
+
+> The issue is that the spec defines Days/Weeks as being an agglomeration
+> of hours and not an atomic entity like Months/Years are.
+
+I don't know what you mean with this. The standard does treat them as
+
+year
+month
+day
+hour
+minute
+second (with fractions)
+
+There is no weeks there, if that is what you mean.
+
+> This leads to some wierd and calendar-breaking behavior when combined
+> with DST, for example:
+>
+> template1=> select '2004-10-09 10:00 PDT'::TIMESTAMPTZ + '45 days'::INTERVAL
+> template1-> ;
+>         ?column?
+> ------------------------
+>  2004-11-23 09:00:00-08
+> (1 row)
+> 
+> Because of the DST shift, you get an hour shift which is most decidely not 
+> anything real human beings would expect from a calendar.
+
+I don't see how the above can be caused by the representation of an 
+interval. The above timestamp is 
+
+2004-10-09 10:00 PDT
+
+which in the standard would be
+
+2004-10-09 10:00 -07
+
+and after the additon would be
+
+2004-11-23 10:00:00-07
+
+Here the time zone is wrong since the standard does not know about named 
+zones and dst.
+
+An implementation like the one Tom (and I) want would start with
+
+2004-10-09 10:00 PDT
+
+and then after the addition one would get
+
+2004-11-23 10:00:00 PST
+
+At least that's my understanding of what we want and what we can get (plus 
+that we also need to support HH:MM tz values since those also exist in the 
+world, check this emails header for example).
+
+It's possible that you discuss something else, but that has been lost on 
+me so far.
+
+-- 
+/Dennis Björklund
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 3: if posting/reading through Usenet, please send an appropriate
+      subscribe-nomail command to majordomo@postgresql.org so that your
+      message can get through to the mailing list cleanly
+
+From pgsql-hackers-owner+M60341=pgman=candle.pha.pa.us@postgresql.org Mon Oct 25 15:15:18 2004
+Return-path: <pgsql-hackers-owner+M60341=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9PJFHf18332
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 15:15:17 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id D2DE53A41BD
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 20:15:13 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 16799-02 for <pgman@candle.pha.pa.us>;
+       Mon, 25 Oct 2004 19:15:12 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id 928BF3A41A6
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 20:15:13 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 2AE4F3A41C4
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Mon, 25 Oct 2004 20:13:02 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 15871-02
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Mon, 25 Oct 2004 19:12:59 +0000 (GMT)
+Received: from zigo.dhs.org (as2-4-3.an.g.bonet.se [194.236.34.191])
+       by svr1.postgresql.org (Postfix) with ESMTP id 6881F3A41BC
+       for <pgsql-hackers@postgresql.org>; Mon, 25 Oct 2004 20:12:59 +0100 (BST)
+Received: from zigo.zigo.dhs.org (zigo.zigo.dhs.org [192.168.0.1])
+       by zigo.dhs.org (Postfix) with ESMTP
+       id 09CC48467; Mon, 25 Oct 2004 21:12:59 +0200 (CEST)
+Date: Mon, 25 Oct 2004 21:12:59 +0200 (CEST)
+From: Dennis Bjorklund <db@zigo.dhs.org>
+To: Josh Berkus <josh@agliodbs.com>
+cc: pgsql-hackers@postgresql.org, Tom Lane <tgl@sss.pgh.pa.us>
+Subject: Re: [HACKERS] timestamp with time zone a la sql99
+In-Reply-To: <200410251154.33532.josh@agliodbs.com>
+Message-ID: <Pine.LNX.4.44.0410252112090.2015-100000@zigo.dhs.org>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=ISO-8859-1
+Content-Transfer-Encoding: 8BIT
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+On Mon, 25 Oct 2004, Josh Berkus wrote:
+
+> Hour/Minute/Second/ms
+> Day/Week
+> Month/Year
+
+And just when I pressed "send" on the previous mail I got the problem 
+:-)
+
+-- 
+/Dennis Björklund
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 2: you can get off all lists at once with the unregister command
+    (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
+
+From pgsql-hackers-owner+M60342=pgman=candle.pha.pa.us@postgresql.org Mon Oct 25 15:20:32 2004
+Return-path: <pgsql-hackers-owner+M60342=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9PJKVf19055
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 15:20:32 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 0D6103A418E
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 20:20:28 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 17860-02 for <pgman@candle.pha.pa.us>;
+       Mon, 25 Oct 2004 19:20:26 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id AA4353A41B2
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 20:20:27 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 131A23A41BB
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Mon, 25 Oct 2004 20:19:02 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 16799-06
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Mon, 25 Oct 2004 19:18:51 +0000 (GMT)
+Received: from zigo.dhs.org (as2-4-3.an.g.bonet.se [194.236.34.191])
+       by svr1.postgresql.org (Postfix) with ESMTP id BBD663A3B06
+       for <pgsql-hackers@postgresql.org>; Mon, 25 Oct 2004 20:18:52 +0100 (BST)
+Received: from zigo.zigo.dhs.org (zigo.zigo.dhs.org [192.168.0.1])
+       by zigo.dhs.org (Postfix) with ESMTP
+       id 36B248467; Mon, 25 Oct 2004 21:18:52 +0200 (CEST)
+Date: Mon, 25 Oct 2004 21:18:52 +0200 (CEST)
+From: Dennis Bjorklund <db@zigo.dhs.org>
+To: Josh Berkus <josh@agliodbs.com>
+cc: pgsql-hackers@postgresql.org, Tom Lane <tgl@sss.pgh.pa.us>
+Subject: Re: [HACKERS] timestamp with time zone a la sql99
+In-Reply-To: <200410251154.33532.josh@agliodbs.com>
+Message-ID: <Pine.LNX.4.44.0410252114250.2015-100000@zigo.dhs.org>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=ISO-8859-1
+Content-Transfer-Encoding: 8BIT
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+On Mon, 25 Oct 2004, Josh Berkus wrote:
+
+> Hour/Minute/Second/ms
+> Day/Week
+> Month/Year
+
+This is embarrasing. I'm still a bit confused :-)
+
+The standard treat days as a separate entry, it does not assume that a day 
+is 24 hours. It restricts the hour field to the interval 0-23 so one can 
+never have something like 25 hours. So it does not need to worry about how 
+many days that translate to.
+
+And why do we need weeks also?
+
+Well, this is the last mail I send before I've been thinking about this 
+for a while more :-)
+
+-- 
+/Dennis Björklund
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 6: Have you searched our list archives?
+
+               http://archives.postgresql.org
+
+From pgsql-hackers-owner+M60344=pgman=candle.pha.pa.us@postgresql.org Mon Oct 25 15:36:30 2004
+Return-path: <pgsql-hackers-owner+M60344=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9PJaTf21902
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 15:36:29 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id E2F703A3CF2
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 20:36:25 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 23154-01 for <pgman@candle.pha.pa.us>;
+       Mon, 25 Oct 2004 19:36:24 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id 7935E3A3AC2
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 20:36:25 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 13AB03A41BC
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Mon, 25 Oct 2004 20:35:09 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 21223-08
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Mon, 25 Oct 2004 19:35:05 +0000 (GMT)
+Received: from sss.pgh.pa.us (sss.pgh.pa.us [66.207.139.130])
+       by svr1.postgresql.org (Postfix) with ESMTP id EA1E73A41B3
+       for <pgsql-hackers@postgresql.org>; Mon, 25 Oct 2004 20:35:06 +0100 (BST)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+       by sss.pgh.pa.us (8.13.1/8.13.1) with ESMTP id i9PJZ429022817;
+       Mon, 25 Oct 2004 15:35:04 -0400 (EDT)
+To: Dennis Bjorklund <db@zigo.dhs.org>
+cc: Josh Berkus <josh@agliodbs.com>, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] timestamp with time zone a la sql99 
+In-Reply-To: <Pine.LNX.4.44.0410252114250.2015-100000@zigo.dhs.org> 
+References: <Pine.LNX.4.44.0410252114250.2015-100000@zigo.dhs.org>
+Comments: In-reply-to Dennis Bjorklund <db@zigo.dhs.org>
+       message dated "Mon, 25 Oct 2004 21:18:52 +0200"
+Date: Mon, 25 Oct 2004 15:35:04 -0400
+Message-ID: <22816.1098732904@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+Dennis Bjorklund <db@zigo.dhs.org> writes:
+> The standard treat days as a separate entry, it does not assume that a day 
+> is 24 hours.
+
+SQL92 says
+
+         4.5.2  Intervals
+
+         There are two classes of intervals. One class, called year-month
+         intervals, has an express or implied datetime precision that in-
+         cludes no fields other than YEAR and MONTH, though not both are
+         required. The other class, called day-time intervals, has an ex-
+         press or implied interval precision that can include any fields
+         other than YEAR or MONTH.
+
+AFAICS the reason for this rule is that they expect all Y/M intervals to
+be comparable (which they are) and they also expect all D/H/M/S intervals
+to be comparable, which you can only do by assuming that 1 D == 24 H.
+
+It seems to me though that we can store days separately and do interval
+comparisons with the assumption 1 D == 24 H, and be perfectly
+SQL-compatible as far as that goes, and still make good use of the
+separate day info when adding to a timestamptz that has a DST-aware
+timezone.  In a non-DST-aware timezone the addition will act the same as
+if we weren't distinguishing days from h/m/s.  Therefore, an application
+using only the spec-defined features (ie, only fixed-numeric-offset
+timezones) will see no deviation from the spec behavior.
+
+                       regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 4: Don't 'kill -9' the postmaster
+
+From pgsql-hackers-owner+M60343=pgman=candle.pha.pa.us@postgresql.org Mon Oct 25 15:31:38 2004
+Return-path: <pgsql-hackers-owner+M60343=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9PJVZf21237
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 15:31:36 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 139FF3A41C0
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 20:31:32 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 21073-05 for <pgman@candle.pha.pa.us>;
+       Mon, 25 Oct 2004 19:31:30 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id 9E1723A41B8
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 20:31:31 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id C7A9E3A41A0
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Mon, 25 Oct 2004 20:30:15 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 19517-04
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Mon, 25 Oct 2004 19:30:05 +0000 (GMT)
+Received: from wolff.to (wolff.to [66.93.249.74])
+       by svr1.postgresql.org (Postfix) with SMTP id 9A0483A4182
+       for <pgsql-hackers@postgresql.org>; Mon, 25 Oct 2004 20:30:05 +0100 (BST)
+Received: (qmail 26726 invoked by uid 500); 25 Oct 2004 19:40:57 -0000
+Date: Mon, 25 Oct 2004 14:40:57 -0500
+From: Bruno Wolff III <bruno@wolff.to>
+To: Dennis Bjorklund <db@zigo.dhs.org>
+cc: Josh Berkus <josh@agliodbs.com>, pgsql-hackers@postgresql.org,
+   Tom Lane <tgl@sss.pgh.pa.us>
+Subject: Re: [HACKERS] timestamp with time zone a la sql99
+Message-ID: <20041025194057.GA26356@wolff.to>
+Mail-Followup-To: Dennis Bjorklund <db@zigo.dhs.org>,
+       Josh Berkus <josh@agliodbs.com>, pgsql-hackers@postgresql.org,
+       Tom Lane <tgl@sss.pgh.pa.us>
+References: <200410251154.33532.josh@agliodbs.com> <Pine.LNX.4.44.0410252114250.2015-100000@zigo.dhs.org>
+MIME-Version: 1.0
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: inline
+In-Reply-To: <Pine.LNX.4.44.0410252114250.2015-100000@zigo.dhs.org>
+User-Agent: Mutt/1.5.6i
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+On Mon, Oct 25, 2004 at 21:18:52 +0200,
+  Dennis Bjorklund <db@zigo.dhs.org> wrote:
+> On Mon, 25 Oct 2004, Josh Berkus wrote:
+> 
+> > Hour/Minute/Second/ms
+> > Day/Week
+> > Month/Year
+> 
+> This is embarrasing. I'm still a bit confused :-)
+> 
+> The standard treat days as a separate entry, it does not assume that a day 
+> is 24 hours. It restricts the hour field to the interval 0-23 so one can 
+> never have something like 25 hours. So it does not need to worry about how 
+> many days that translate to.
+> 
+> And why do we need weeks also?
+
+For convenience. Just like years are a group of months, weeks are a group
+of days.
+
+---------------------------(end of broadcast)---------------------------
+TIP 4: Don't 'kill -9' the postmaster
+
+From pgsql-hackers-owner+M60346=pgman=candle.pha.pa.us@postgresql.org Mon Oct 25 16:10:09 2004
+Return-path: <pgsql-hackers-owner+M60346=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9PKA8f26656
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 16:10:08 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 07A343A4201
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 21:10:05 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 62669-07 for <pgman@candle.pha.pa.us>;
+       Mon, 25 Oct 2004 20:10:03 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id ACA1C3A4200
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 21:10:04 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 251663A41FE
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Mon, 25 Oct 2004 21:08:18 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 62513-04
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Mon, 25 Oct 2004 20:08:15 +0000 (GMT)
+Received: from zigo.dhs.org (as2-4-3.an.g.bonet.se [194.236.34.191])
+       by svr1.postgresql.org (Postfix) with ESMTP id 3C94D3A3AC2
+       for <pgsql-hackers@postgresql.org>; Mon, 25 Oct 2004 21:08:14 +0100 (BST)
+Received: from zigo.zigo.dhs.org (zigo.zigo.dhs.org [192.168.0.1])
+       by zigo.dhs.org (Postfix) with ESMTP
+       id 025568467; Mon, 25 Oct 2004 22:08:14 +0200 (CEST)
+Date: Mon, 25 Oct 2004 22:08:14 +0200 (CEST)
+From: Dennis Bjorklund <db@zigo.dhs.org>
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: Josh Berkus <josh@agliodbs.com>, <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] timestamp with time zone a la sql99 
+In-Reply-To: <22816.1098732904@sss.pgh.pa.us>
+Message-ID: <Pine.LNX.4.44.0410252204070.2015-100000@zigo.dhs.org>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=ISO-8859-1
+Content-Transfer-Encoding: 8BIT
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+On Mon, 25 Oct 2004, Tom Lane wrote:
+
+>          There are two classes of intervals. One class, called year-month
+>          intervals, has an express or implied datetime precision that in-
+>          cludes no fields other than YEAR and MONTH, though not both are
+>          required. The other class, called day-time intervals, has an ex-
+>          press or implied interval precision that can include any fields
+>          other than YEAR or MONTH.
+> 
+> AFAICS the reason for this rule is that they expect all Y/M intervals to
+> be comparable (which they are) and they also expect all D/H/M/S intervals
+> to be comparable, which you can only do by assuming that 1 D == 24 H.
+
+I said I was not going to send any more mails, but here we go again :-)
+
+The standard restrict the hour field to the interval 0-23, so there can 
+never be any compare between for example '1 day 1 hour' and '25 hours'. 
+This means that one can not add two intervals together to get a bigger 
+one but that it would still work to do timestamp+interval+interval.
+
+> It seems to me though that we can store days separately and do interval
+> comparisons with the assumption 1 D == 24 H, and be perfectly
+> SQL-compatible as far as that goes, and still make good use of the
+> separate day info when adding to a timestamptz that has a DST-aware
+> timezone.  In a non-DST-aware timezone the addition will act the same as
+> if we weren't distinguishing days from h/m/s.  Therefore, an application
+> using only the spec-defined features (ie, only fixed-numeric-offset
+> timezones) will see no deviation from the spec behavior.
+
+I agree with this.
+
+-- 
+/Dennis Björklund
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 7: don't forget to increase your free space map settings
+
+From pgsql-hackers-owner+M60347=pgman=candle.pha.pa.us@postgresql.org Mon Oct 25 16:20:45 2004
+Return-path: <pgsql-hackers-owner+M60347=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9PKKif28309
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 16:20:44 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 65B453A4215
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 21:20:40 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 66092-07 for <pgman@candle.pha.pa.us>;
+       Mon, 25 Oct 2004 20:20:38 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id 1DCD53A4210
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 21:20:40 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 803933A3AC2
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Mon, 25 Oct 2004 21:18:00 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 64513-06
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Mon, 25 Oct 2004 20:17:49 +0000 (GMT)
+Received: from davinci.ethosmedia.com (server226.ethosmedia.com [209.128.84.226])
+       by svr1.postgresql.org (Postfix) with ESMTP id 726633A3CF2
+       for <pgsql-hackers@postgresql.org>; Mon, 25 Oct 2004 21:17:51 +0100 (BST)
+Received: from [64.81.245.111] (account josh@agliodbs.com HELO temoku.sf.agliodbs.com)
+  by davinci.ethosmedia.com (CommuniGate Pro SMTP 4.1.8)
+  with ESMTP id 6554308; Mon, 25 Oct 2004 13:19:17 -0700
+From: Josh Berkus <josh@agliodbs.com>
+Reply-To: josh@agliodbs.com
+Organization: Aglio Database Solutions
+To: pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] timestamp with time zone a la sql99
+Date: Mon, 25 Oct 2004 13:20:01 -0700
+User-Agent: KMail/1.6.2
+cc: Dennis Bjorklund <db@zigo.dhs.org>, Tom Lane <tgl@sss.pgh.pa.us>
+References: <Pine.LNX.4.44.0410252103340.2015-100000@zigo.dhs.org>
+In-Reply-To: <Pine.LNX.4.44.0410252103340.2015-100000@zigo.dhs.org>
+MIME-Version: 1.0
+Content-Disposition: inline
+Content-Type: text/plain;
+  charset="iso-8859-1"
+Content-Transfer-Encoding: 7bit
+Message-ID: <200410251320.01311.josh@agliodbs.com>
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+Dennis,
+
+> An implementation like the one Tom (and I) want would start with
+>
+> 2004-10-09 10:00 PDT
+>
+> and then after the addition one would get
+>
+> 2004-11-23 10:00:00 PST
+
+Sounds like we're on the same page then.
+
+> The standard restrict the hour field to the interval 0-23, so there can
+> never be any compare between for example '1 day 1 hour' and '25 hours'.
+> This means that one can not add two intervals together to get a bigger
+> one but that it would still work to do timestamp+interval+interval.
+
+Hour field of the timestamp, or hour field of interval?  There a world of 
+difference.
+
+As long as we're willing to live with the understanding that +1day 1 hour may 
+produce a slightly different result than + 25 hours, I don't see the problem.  
+Currently I can add +900 hours if I like, postgreSQL will support it.
+
+-- 
+--Josh
+
+Josh Berkus
+Aglio Database Solutions
+San Francisco
+
+---------------------------(end of broadcast)---------------------------
+TIP 3: if posting/reading through Usenet, please send an appropriate
+      subscribe-nomail command to majordomo@postgresql.org so that your
+      message can get through to the mailing list cleanly
+
+From pgsql-hackers-owner+M60348=pgman=candle.pha.pa.us@postgresql.org Mon Oct 25 16:24:27 2004
+Return-path: <pgsql-hackers-owner+M60348=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9PKOQf28960
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 16:24:26 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 2AD843A419B
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 21:24:22 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 68942-02 for <pgman@candle.pha.pa.us>;
+       Mon, 25 Oct 2004 20:24:20 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id E08EE3A4182
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 21:24:21 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id C8C413A419B
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Mon, 25 Oct 2004 21:22:31 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 68322-02
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Mon, 25 Oct 2004 20:22:28 +0000 (GMT)
+Received: from zigo.dhs.org (as2-4-3.an.g.bonet.se [194.236.34.191])
+       by svr1.postgresql.org (Postfix) with ESMTP id BB2F53A41EC
+       for <pgsql-hackers@postgresql.org>; Mon, 25 Oct 2004 21:22:29 +0100 (BST)
+Received: from zigo.zigo.dhs.org (zigo.zigo.dhs.org [192.168.0.1])
+       by zigo.dhs.org (Postfix) with ESMTP
+       id 2B7368467; Mon, 25 Oct 2004 22:22:29 +0200 (CEST)
+Date: Mon, 25 Oct 2004 22:22:29 +0200 (CEST)
+From: Dennis Bjorklund <db@zigo.dhs.org>
+To: Josh Berkus <josh@agliodbs.com>
+cc: pgsql-hackers@postgresql.org, Tom Lane <tgl@sss.pgh.pa.us>
+Subject: Re: [HACKERS] timestamp with time zone a la sql99
+In-Reply-To: <200410251320.01311.josh@agliodbs.com>
+Message-ID: <Pine.LNX.4.44.0410252221150.2015-100000@zigo.dhs.org>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=ISO-8859-1
+Content-Transfer-Encoding: 8BIT
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+On Mon, 25 Oct 2004, Josh Berkus wrote:
+
+> > The standard restrict the hour field to the interval 0-23, so there can
+> > never be any compare between for example '1 day 1 hour' and '25 hours'.
+> > This means that one can not add two intervals together to get a bigger
+> > one but that it would still work to do timestamp+interval+interval.
+> 
+> Hour field of the timestamp, or hour field of interval?  There a world of 
+> difference.
+
+Hour field of an interval can be 0-23 according to the spec (doesn't say
+that we need that restriction, but we do need to understand what the spec
+say).
+
+-- 
+/Dennis Björklund
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 3: if posting/reading through Usenet, please send an appropriate
+      subscribe-nomail command to majordomo@postgresql.org so that your
+      message can get through to the mailing list cleanly
+
+From pgsql-hackers-owner+M60349=pgman=candle.pha.pa.us@postgresql.org Mon Oct 25 16:34:48 2004
+Return-path: <pgsql-hackers-owner+M60349=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9PKYlf00828
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 16:34:47 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id D7AD63A3BF2
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 21:34:43 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 72374-02 for <pgman@candle.pha.pa.us>;
+       Mon, 25 Oct 2004 20:34:41 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id 99E183A3B88
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 21:34:43 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 534763A3C84
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Mon, 25 Oct 2004 21:32:42 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 71412-04
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Mon, 25 Oct 2004 20:32:36 +0000 (GMT)
+Received: from sss.pgh.pa.us (sss.pgh.pa.us [66.207.139.130])
+       by svr1.postgresql.org (Postfix) with ESMTP id 798CA3A3B88
+       for <pgsql-hackers@postgresql.org>; Mon, 25 Oct 2004 21:32:38 +0100 (BST)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+       by sss.pgh.pa.us (8.13.1/8.13.1) with ESMTP id i9PKWbDK023330;
+       Mon, 25 Oct 2004 16:32:37 -0400 (EDT)
+To: josh@agliodbs.com
+cc: pgsql-hackers@postgresql.org, Dennis Bjorklund <db@zigo.dhs.org>
+Subject: Re: [HACKERS] timestamp with time zone a la sql99 
+In-Reply-To: <200410251320.01311.josh@agliodbs.com> 
+References: <Pine.LNX.4.44.0410252103340.2015-100000@zigo.dhs.org> <200410251320.01311.josh@agliodbs.com>
+Comments: In-reply-to Josh Berkus <josh@agliodbs.com>
+       message dated "Mon, 25 Oct 2004 13:20:01 -0700"
+Date: Mon, 25 Oct 2004 16:32:37 -0400
+Message-ID: <23329.1098736357@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+Josh Berkus <josh@agliodbs.com> writes:
+> As long as we're willing to live with the understanding that +1day 1 hour may
+> produce a slightly different result than + 25 hours, I don't see the problem.
+
+Right, which is exactly why we can't accept the spec's restriction that
+the hour field be limited to 0-23.  People may legitimately want to add
+48 hours to a timestamp, and *not* have that mean the same as adding
+"2 days".  Besides, we would have a backwards-compatibility problem if
+we tried to forbid it, since as you note we've always accepted such input.
+
+                       regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 5: Have you checked our extensive FAQ?
+
+               http://www.postgresql.org/docs/faqs/FAQ.html
+
+From pgsql-hackers-owner+M60371=pgman=candle.pha.pa.us@postgresql.org Mon Oct 25 21:26:49 2004
+Return-path: <pgsql-hackers-owner+M60371=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9Q1Qmf13334
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 21:26:49 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id A8E2F3A42A1
+       for <pgman@candle.pha.pa.us>; Tue, 26 Oct 2004 02:26:43 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 52441-04 for <pgman@candle.pha.pa.us>;
+       Tue, 26 Oct 2004 01:26:39 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id 5F7503A42A0
+       for <pgman@candle.pha.pa.us>; Tue, 26 Oct 2004 02:26:43 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 02D5D3A427F
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Tue, 26 Oct 2004 02:25:27 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 52284-03
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Tue, 26 Oct 2004 01:25:22 +0000 (GMT)
+Received: from houston.familyhealth.com.au (houston.au.fhnetwork.com [203.22.197.21])
+       by svr1.postgresql.org (Postfix) with ESMTP id 5C0723A42A0
+       for <pgsql-hackers@postgresql.org>; Tue, 26 Oct 2004 02:25:25 +0100 (BST)
+Received: from houston.familyhealth.com.au (localhost [127.0.0.1])
+       by houston.familyhealth.com.au (Postfix) with ESMTP id 1BDCB2506C;
+       Tue, 26 Oct 2004 09:25:25 +0800 (WST)
+Received: from [192.168.0.40] (work-40.internal [192.168.0.40])
+       by houston.familyhealth.com.au (Postfix) with ESMTP id 14E452506B;
+       Tue, 26 Oct 2004 09:25:25 +0800 (WST)
+Message-ID: <417DA785.7010208@familyhealth.com.au>
+Date: Tue, 26 Oct 2004 09:25:25 +0800
+From: Christopher Kings-Lynne <chriskl@familyhealth.com.au>
+User-Agent: Mozilla Thunderbird 0.8 (Windows/20040913)
+X-Accept-Language: en-us, en
+MIME-Version: 1.0
+To: Tom Lane <tgl@sss.pgh.pa.us>
+cc: josh@agliodbs.com, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] timestamp with time zone a la sql99
+References: <20041022184636.62D39EAEE02@svr1.postgresql.org> <200410250942.38212.josh@agliodbs.com> <21834.1098726893@sss.pgh.pa.us> <200410251108.52164.josh@agliodbs.com> <22093.1098728380@sss.pgh.pa.us>
+In-Reply-To: <22093.1098728380@sss.pgh.pa.us>
+Content-Type: text/plain; charset=ISO-8859-1; format=flowed
+Content-Transfer-Encoding: 7bit
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+>>>regression=# set timezone to 'US/Arizona';
+>>>SET
+>>>regression=# select now();
+>>>now
+>>>-------------------------------
+>>>2004-10-25 10:52:49.441559-07
+> 
+> 
+>>Wow!   When did that get fixed?   How do I keep track of this stuff if you 
+>>guys keep fixing it?   ;-)
+
+That's worked for ages.  What doesn't work is this:
+
+usatest=# select current_timestamp at time zone 'US/Arizona';
+ERROR:  time zone "us/arizona" not recognized
+
+Chris
+
+---------------------------(end of broadcast)---------------------------
+TIP 4: Don't 'kill -9' the postmaster
+
+From pgsql-hackers-owner+M60372=pgman=candle.pha.pa.us@postgresql.org Mon Oct 25 21:41:27 2004
+Return-path: <pgsql-hackers-owner+M60372=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9Q1fPf15148
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 21:41:26 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id A941F3A4278
+       for <pgman@candle.pha.pa.us>; Tue, 26 Oct 2004 02:41:20 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 54196-09 for <pgman@candle.pha.pa.us>;
+       Tue, 26 Oct 2004 01:41:16 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id 50EEA3A4255
+       for <pgman@candle.pha.pa.us>; Tue, 26 Oct 2004 02:41:20 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 34AC13A4288
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Tue, 26 Oct 2004 02:39:55 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 54779-07
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Tue, 26 Oct 2004 01:39:42 +0000 (GMT)
+Received: from sss.pgh.pa.us (sss.pgh.pa.us [66.207.139.130])
+       by svr1.postgresql.org (Postfix) with ESMTP id 3E9493A1D91
+       for <pgsql-hackers@postgresql.org>; Tue, 26 Oct 2004 02:39:45 +0100 (BST)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+       by sss.pgh.pa.us (8.13.1/8.13.1) with ESMTP id i9Q1ditA003223;
+       Mon, 25 Oct 2004 21:39:46 -0400 (EDT)
+To: Dennis Bjorklund <db@zigo.dhs.org>
+cc: Robert Treat <xzilla@users.sourceforge.net>, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] timestamp with time zone a la sql99 
+In-Reply-To: <Pine.LNX.4.44.0410230802200.2015-100000@zigo.dhs.org> 
+References: <Pine.LNX.4.44.0410230802200.2015-100000@zigo.dhs.org>
+Comments: In-reply-to Dennis Bjorklund <db@zigo.dhs.org>
+       message dated "Sat, 23 Oct 2004 08:09:05 +0200"
+Date: Mon, 25 Oct 2004 21:39:43 -0400
+Message-ID: <3222.1098754783@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+Dennis Bjorklund <db@zigo.dhs.org> writes:
+> So if I understand you correctly you are planning to extend the current
+> timestamp type to work with both named time zones and HH:MM ones? I didn't
+> think you wanted the last one since your plan was to store a UTC+OID where
+> the OID pointed to a named time zone. And I guess that you don't plan to
+> add 00:00, 00:01, 00:02, ... as named zones with an OID.
+
+I missed getting back to you on this, but I think we can do both.  Some
+random points:
+
+* Once we expand timestamptz to bigger than 8 bytes, there's essentially
+zero cost to making it 12 bytes, and for that matter we could go to 16
+without much penalty, because of alignment considerations.  So there's
+plenty of space.
+
+* What we need is to be able to represent either a fixed offset from UTC
+or a reference of some kind to a zic database entry.  The most
+bit-splurging way of doing the former is a signed offset in seconds from
+Greenwich, which would take 17 bits.  It'd be good enough to represent
+the offset in minutes, which needs only 11 bits.
+
+* I suggested OIDs for referencing zic entries, but we don't have to do
+that; any old mapping table will do.  16 bits would surely be plenty to
+assign a unique label to every present and future zic entry.
+
+* My inclination therefore is to extend timestamptz with two 16-bit
+fields, one being the offset from UTC (in minutes) and one being the
+zic identifier.  If the identifier is zero then it's a straight numeric
+offset from UTC and the offset field is all you need (this is the SQL
+spec compatible case).  If the identifier is not zero then it gives you
+an index to look up the timezone rules.  However, there is no need for
+the offset field to go to waste; we should store the offset anyway,
+since that might save a trip to the zic database in some cases.
+
+* It's not clear to me yet whether the stored offset in the second case
+should be the zone's standard UTC offset (thus always the same for a
+given zone ID) or the current-time offset for the timestamp (thus
+different if the timestamp is in daylight-savings or standard time).
+
+* If we store the current-time offset then it almost doesn't matter
+whether the timestamp itself is stored as a UTC or local time value;
+you can trivially translate either to the other by adding or subtracting
+the offset (*60).  But I'm inclined to store UTC for consistency with
+past practice, and because it will make comparisons a bit faster: you
+can compare the timestamps without adjusting first.  Generally I think
+comparisons ought to be the best-optimized operations in a Postgres
+datatype, because index operations will do a ton of 'em.  (We definitely
+do NOT want to have to visit the zic database in order to compare two
+timestamptz values.)
+
+                       regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 4: Don't 'kill -9' the postmaster
+
+From pgsql-hackers-owner+M60373=pgman=candle.pha.pa.us@postgresql.org Mon Oct 25 21:53:52 2004
+Return-path: <pgsql-hackers-owner+M60373=pgman=candle.pha.pa.us@postgresql.org>
+Received: from svr1.postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id i9Q1rpf17038
+       for <pgman@candle.pha.pa.us>; Mon, 25 Oct 2004 21:53:51 -0400 (EDT)
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 1B6153A42AC
+       for <pgman@candle.pha.pa.us>; Tue, 26 Oct 2004 02:53:46 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 58642-09 for <pgman@candle.pha.pa.us>;
+       Tue, 26 Oct 2004 01:53:42 +0000 (GMT)
+Received: from postgresql.org (svr1.postgresql.org [200.46.204.71])
+       by svr1.postgresql.org (Postfix) with ESMTP id CE6DE3A42A7
+       for <pgman@candle.pha.pa.us>; Tue, 26 Oct 2004 02:53:45 +0100 (BST)
+X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org
+Received: from localhost (unknown [200.46.204.144])
+       by svr1.postgresql.org (Postfix) with ESMTP id 768EE3A429E
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>; Tue, 26 Oct 2004 02:52:13 +0100 (BST)
+Received: from svr1.postgresql.org ([200.46.204.71])
+       by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
+       with ESMTP id 58205-07
+       for <pgsql-hackers-postgresql.org@localhost.postgresql.org>;
+       Tue, 26 Oct 2004 01:52:07 +0000 (GMT)
+Received: from sss.pgh.pa.us (sss.pgh.pa.us [66.207.139.130])
+       by svr1.postgresql.org (Postfix) with ESMTP id 397C43A4294
+       for <pgsql-hackers@postgresql.org>; Tue, 26 Oct 2004 02:52:11 +0100 (BST)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+       by sss.pgh.pa.us (8.13.1/8.13.1) with ESMTP id i9Q1q07B003307;
+       Mon, 25 Oct 2004 21:52:00 -0400 (EDT)
+To: Christopher Kings-Lynne <chriskl@familyhealth.com.au>
+cc: josh@agliodbs.com, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] timestamp with time zone a la sql99 
+In-Reply-To: <417DA785.7010208@familyhealth.com.au> 
+References: <20041022184636.62D39EAEE02@svr1.postgresql.org> <200410250942.38212.josh@agliodbs.com> <21834.1098726893@sss.pgh.pa.us> <200410251108.52164.josh@agliodbs.com> <22093.1098728380@sss.pgh.pa.us> <417DA785.7010208@familyhealth.com.au>
+Comments: In-reply-to Christopher Kings-Lynne <chriskl@familyhealth.com.au>
+       message dated "Tue, 26 Oct 2004 09:25:25 +0800"
+Date: Mon, 25 Oct 2004 21:52:00 -0400
+Message-ID: <3306.1098755520@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+X-Virus-Scanned: by amavisd-new at hub.org
+X-Mailing-List: pgsql-hackers
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+X-Virus-Scanned: by amavisd-new at hub.org
+Status: OR
+
+Christopher Kings-Lynne <chriskl@familyhealth.com.au> writes:
+> That's worked for ages.  What doesn't work is this:
+
+> usatest=# select current_timestamp at time zone 'US/Arizona';
+> ERROR:  time zone "us/arizona" not recognized
+
+Right, and similarly you can do
+
+regression=# select '2004-10-25 21:32:33.430222 MST'::timestamptz;
+          timestamptz          
+-------------------------------
+ 2004-10-26 00:32:33.430222-04
+(1 row)
+
+but not
+
+regression=# select '2004-10-25 21:32:33.430222 US/Arizona'::timestamptz;
+ERROR:  invalid input syntax for type timestamp with time zone: "2004-10-25 21:32:33.430222 US/Arizona"
+
+I would like to see both of these cases working in 8.1; and furthermore
+I'd like to see the timezone specs coming back as entered, not as bare
+numeric offsets.  (This will need to be adjustable via a DateStyle
+option, of course, but I want the information to be in there whether it
+is displayed or not.)
+
+                       regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 7: don't forget to increase your free space map settings
+