Re: [HACKERS] Niladic functions - Mailing list pgsql-hackers

From D'Arcy" "J.M." Cain
Subject Re: [HACKERS] Niladic functions
Date
Msg-id m10KOeg-0000buC@druid.net
Whole thread Raw
In response to Re: [HACKERS] Niladic functions  ("Thomas G. Lockhart" <lockhart@alumni.caltech.edu>)
List pgsql-hackers
Thus spake Thomas G. Lockhart
> > The "Integrated Document" on the web page has the following paragraph 
> > in the section "CREATE TABLE" in chapter 20.
> > In the current release (v6.4), Postgres evaluates all default 
> > expressions at the time the table is defined. Hence, functions which 
> > are "non-cacheable" such as CURRENT_TIMESTAMP may not produce the 
> > desired effect. For the particular case of date/time types, one can 
> > work around this behavior by using "DEFAULT TEXT 'now'" instead of 
> > "DEFAULT 'now'" or "DEFAULT CURRENT_TIMESTAMP". This forces Postgres 
> > to consider the constant a string type and then to convert the value 
> > to timestamp at runtime.
> > 
> > This appears to be untrue.  Is this a change since 6.4 or is there
> > some cases where using CURRENT_TIMESTAMP will not do the expected 
> > thing?
> 
> Sorry for being slow, but exactly which of the several assertions in the
> above paragraph are not true? Just the DEFAULT CURRENT_TIMESTAMP
> behavior?

Yes.  This paragraph says that CURRENT_TIMESTAMP is evaluated at the time
the table is defined yet I tested this with a current version and it
actually gets evaluated at INSERT time.

> > Also, the title of the document (The PostgreSQL Development Team) 
> > seems to be incorrect.
> 
> My browser shows that as the second line, just under the title
> "PostgreSQL", as I intended. What browser are you using?

Sorry, my misunderstanding.  I didn't realize that PostgreSQL was the
title of this particular document.  Anyway, the link to this page is
"Integrated Document" so there is a small inconsistency.

-- 
D'Arcy J.M. Cain <darcy@{druid|vex}.net>   |  Democracy is three wolves
http://www.druid.net/darcy/                |  and a sheep voting on
+1 416 424 2871     (DoD#0082)    (eNTP)   |  what's for dinner.


pgsql-hackers by date:

Previous
From: Mikhail Terekhov
Date:
Subject: vacuum analyze
Next
From: Oleg Broytmann
Date:
Subject: Re: [HACKERS] Bug on complex join