Re: [DOCS] Use of 'now' - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: [DOCS] Use of 'now'
Date
Msg-id 200111140358.fAE3wmY23341@candle.pha.pa.us
Whole thread Raw
List pgsql-hackers
> Bruce Momjian <pgman@candle.pha.pa.us> writes:
> >> Nothing of interest anymore, since 'current' has been removed as of 7.2.
> >> However, Thomas has yet to commit any docs updates for his recent
> >> datetime-related changes ... including that one ...
>
> > Seems it is still in there somewhere:
>
> >     test=> create table bb (x timestamp default 'current', y int);
>
> Hmm.  It was *supposed* to be removed entirely, but possibly what
> Thomas actually did was to continue to accept the keyword as equivalent
> to 'now'.  Thomas?

[ CC'ing to hackers because this is getting into code problems. ]

Here's another inconsistency that Tatsuo found:

    test=> create table ff (x time default 'current_timestamp');
    ERROR:  Bad time external representation 'current_timestamp'
    test=> create table ff (x time default 'current');
    ERROR:  Bad time external representation 'current'
    test=> create table ff (x time default 'now');
    CREATE
    test=> select current_timestamp;
              timestamptz
    -------------------------------
     2001-11-13 22:49:50.607401-05
    (1 row)

You can default a time to now, but not to current or current_timestamp.

I believe this is happening because current is implemented as special
timezones in datetime.c and timestamp.c, and current_timestamp is
implemented in gram.y, while 'now' is a function.

Anyway, looks like confusion that should be fixed.

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

pgsql-hackers by date:

Previous
From: Vince Vielhaber
Date:
Subject: regress test db
Next
From: Thomas Lockhart
Date:
Subject: Re: [DOCS] Use of 'now'