Re: (8.1) to_timestamp correction (epoch to timestamptz) - Mailing list pgsql-patches

From Bruce Momjian
Subject Re: (8.1) to_timestamp correction (epoch to timestamptz)
Date
Msg-id 200412190437.iBJ4bNn12416@candle.pha.pa.us
Whole thread Raw
In response to (8.1) to_timestamp correction (epoch to timestamptz)  (Michael Glaesemann <grzm@myrealbox.com>)
List pgsql-patches
This has been saved for the 8.1 release:

    http:/momjian.postgresql.org/cgi-bin/pgpatches2

---------------------------------------------------------------------------

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... ]

>

>
> ---------------------------(end of broadcast)---------------------------
> TIP 8: explain analyze is your friend

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

pgsql-patches by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: [pgsql-hackers-win32] Patch to add version numbers to
Next
From: "Magnus Hagander"
Date:
Subject: Re: [PERFORM] [pgsql-hackers-win32] scalability issues on win32