Skip site navigation (1) Skip section navigation (2)

Re: [HACKERS] Date conversion using day of week

From: Brendan Jurd <direvus(at)gmail(dot)com>
To: Adrian Klaver <adrian(dot)klaver(at)gmail(dot)com>
Cc: Steve Crawford <scrawford(at)pinpointresearch(dot)com>, pgsql-general(at)postgresql(dot)org, marc(at)bloodnok(dot)com, hackers(at)postgresql(dot)org
Subject: Re: [HACKERS] Date conversion using day of week
Date: 2011-03-31 15:27:02
Message-ID: AANLkTikM5-kgHgJc2oE1xtFkj2KyBXvT1shsphSDspvX@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-generalpgsql-hackers
On 1 April 2011 02:00, Adrian Klaver <adrian(dot)klaver(at)gmail(dot)com> wrote:
> On Wednesday, March 30, 2011 8:39:25 pm Brendan Jurd wrote:
>> If we wanted to make it "work", then I think the thing to do would be
>> to add a new set of formatting tokens IDY, IDAY etc.  I don't like the
>> idea of interpreting DY and co. differently depending on whether the
>> other tokens happen to be ISO week or Gregorian.
>
> Just to play Devils advocate here, but why not? The day name is the same either
> way, it is the index that changes. I am not sure why that could not be context
> specific?
>

To be perfectly honest, it's mostly because I was hoping not to spend
very much more of my time in formatting.c.  Every time I go in there I
come out a little bit less sane.  I'm concerned that if I do anything
further to it, I might inadvertently summon Chattur'gha or something.
But since you went to the trouble of calling me on my laziness, let's
take a look at the problem.

At the time when the day-of-week token gets converted into a numeric
value and put into the TmFromChar.d field, the code has no knowledge
of whether the overall pattern is Gregorian or ISO (the DY field could
well be at the front of the pattern, for example).

Later on, in do_to_timestamp, the code expects the 'd' value to make
sense given the mode (it should be zero-based on Sunday for Gregorian,
or one-based on Monday for ISO).  That's all well and good *except* in
the totally bizarre case raised by the OP.

To resolve it, we could make TmFromChar.d always stored using the ISO
convention (because zero then has the useful property of meaning "not
set") and converted to the Gregorian convention as necessary in
do_to_timestamp.

Cheers,
BJ

In response to

Responses

pgsql-hackers by date

Next:From: Heikki LinnakangasDate: 2011-03-31 15:32:50
Subject: Re: Problem with pg_upgrade?
Previous:From: Robert HaasDate: 2011-03-31 15:24:27
Subject: Re: Comments on SQL/Med objects

pgsql-general by date

Next:From: Marc MunroDate: 2011-03-31 15:35:23
Subject: Re: [HACKERS] Date conversion using day of week
Previous:From: Adrian KlaverDate: 2011-03-31 15:00:14
Subject: Re: [HACKERS] Date conversion using day of week

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group