Handling of tz-aware literals in non-tz-aware fields - Mailing list pgsql-general

From Daniele Varrazzo
Subject Handling of tz-aware literals in non-tz-aware fields
Date
Msg-id CA+mi_8bNQ_fpxZaKih=7XDrFM7xNgRi554PBGkTjPq63-BV70A@mail.gmail.com
Whole thread Raw
Responses Re: Handling of tz-aware literals in non-tz-aware fields
SSL or Tunnelling for Streaming Replication
List pgsql-general
Hello,

the issue can be show with this example:

    piro=> SET TIMEZONE = 'America/New_York';
    SET

    piro=> select '1970-01-01T00:00:00+03:00'::timestamp;
          timestamp
    ---------------------
     1970-01-01 00:00:00
    (1 row)

    piro=> select '1970-01-01T00:00:00+03:00'::timestamptz::timestamp;
          timestamp
    ---------------------
     1969-12-31 16:00:00
    (1 row)

I find surprising that an unknown literal containing a TZ-aware
timestamp has the tz info discarded (e.g. upon insertion in a
timestamp without time zone field), whereas the cast from tz-aware to
non-tz-aware performs a conversion. I find the second behaviour much
more reasonable.

Is there an explanation for the first behaviour?

Is the first behaviour documented?

Thank you very much,


-- Daniele


pgsql-general by date:

Previous
From: Magnus Hagander
Date:
Subject: Re: Strange message from pg_receivexlog
Next
From: "Evan D. Hoffman"
Date:
Subject: effective_io_concurrency with an SSD SAN?