Re: (8.1) to_timestamp correction (epoch to timestamptz)

From: Michael Glaesemann <grzm(at)myrealbox(dot)com>
To: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
Cc: pgsql-patches Patches <pgsql-patches(at)postgresql(dot)org>
Subject: Re: (8.1) to_timestamp correction (epoch to timestamptz)
Date: 2005-06-05 04:05:19
Message-ID: F179DAB5-4A74-4E28-99C3-98F694A212D1@myrealbox.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-patches

Bruce,

Please note that this patch is a correction and replacement for an
earlier patch in the queue. The patch accompanying the message
http://candle.pha.pa.us/mhonarc/patches/msg00008.html
should be removed from the queue and not applied.

The one (originally) attached to this message should be applied.

Thanks!

Michael Glaesemann
grzm myrealbox com

On Jun 5, 2005, at 9:17 AM, Bruce Momjian wrote:

>
> Your patch has been added to the PostgreSQL unapplied patches list at:
>
> http://momjian.postgresql.org/cgi-bin/pgpatches
>
> It will be applied as soon as one of the PostgreSQL committers reviews
> and approves it.
>
> ----------------------------------------------------------------------
> -----
>
>
> Michael Glaesemann wrote:
>
>> Note: This patch is intended for 8.1 (as was the original).
>>
>> I believe the previous patch I submitted to convert Unix epoch to
>> timestamptz contains a bug relating to its use of AT TIME ZONE.
>> Please
>> find attached a corrected patch diffed against HEAD, which includes
>> documentation.
>>
>> The original function was equivalent to
>>
>> CREATE FUNCTION to_timestamp (DOUBLE PRECISION)
>> RETURNS timestamptz
>> LANGUAGE SQL AS '
>> select (
>> (\'epoch\'::timestamptz + $1 * \'1 second\'::interval)
>> at time zone \'UTC\'
>> )
>> ';
>>
>> The AT TIME ZONE 'UTC' removes the time zone from the timestamptz,
>> returning timestamp. However, the function is declared to return
>> timestamptz. The original patch appeared to work, but creating this
>> equivalent function fails as it doesn't return the declared datatype.
>>
>> The corrected function restores the time zone with an additional AT
>> TIME ZONE 'UTC':
>>
>> CREATE FUNCTION to_timestamp (double precision)
>> returns timestamptz
>> language sql as '
>> select (
>> (\'epoch\'::timestamptz + $1 * \'1 second\'::interval)
>> at time zone \'UTC\'
>> ) at time zone \'UTC\'
>> ';
>>
>>
>> Michael Glaesemann
>> grzm myrealbox com
>>
>>
>
> [ Attachment, skipping... ]

Responses

Browse pgsql-patches by date

  From Date Subject
Next Message Tom Lane 2005-06-05 04:11:34 Re: regexp_replace
Previous Message Christopher Kings-Lynne 2005-06-05 04:00:31 Re: [HACKERS] Implementing RESET CONNECTION ...