Re: TODO item: immutable date_trunc with timezone arg

From: Noah Misch <noah(at)leadboat(dot)com>
To: Craig Ringer <craig(at)2ndquadrant(dot)com>
Cc: PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: TODO item: immutable date_trunc with timezone arg
Date: 2014-07-02 03:10:16
Message-ID: 20140702031016.GA1597174@tornado.leadboat.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, Jul 01, 2014 at 11:49:43AM +0800, Craig Ringer wrote:
> Currently it's unsafe/not possible to use some funtions, like
> date_trunc, in immutable functions and expression indexes.
>
> It'd be really useful to have an immutable version that took the
> timezone as an argument. Maybe this is a worthwhile beginner TODO item
> for the wiki?
>
> I'm sure there are other funcs that could use TimeZone-insensitive
> variants too.

You can achieve it today with the AT TIME ZONE operator:

CREATE INDEX ON t ((date_trunc('week', col_name AT TIME ZONE 'Asia/Macau')));

If "version of date_part having a timezone argument" is the desired interface,
one can wrap that idiom in a one-line SQL function. I doubt adding such a
wrapper to core is worth the weight.

--
Noah Misch
EnterpriseDB http://www.enterprisedb.com

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Craig Ringer 2014-07-02 03:21:30 Re: TODO item: immutable date_trunc with timezone arg
Previous Message Abhijit Menon-Sen 2014-07-02 03:07:09 Re: pg_xlogdump --stats