Okay, I can't wait until morning for an answer, so I made one up ;-). I
already have a function on this particular table which does processing
'BEFORE INSERT'. As a temporary hack (or maybe permanent depending on
anyones response), I have added code to see if 'updated' IS NULL and
setting it to the return value of 'since_epoch()' if it is. I suspect
that since I am already calling this function, it might actually be faster
than adding the 'set default' to the table anyway, especially since the
function 'iscacheable' and is being used in a transaction block.
-brian
On Fri, 12 Apr 2002, Brian McCane wrote:
>
>
>
> I have a field called 'updated' of type 'integer' in a table. I have
> created a function called 'since_epoch' which is declared with iscacheable
> and returns the value of 'extract(epoch from now())'. I want to make
> 'updated' have a default of 'since_epoch()'. I cannot get it to work with
> the following command:
>
> alter table foo alter column updated set default 'since_epoch()' ;
>
> this gets the error:
>
> ERROR: pg_atoi: error in "since_epoch()": can't parse "since_epoch()"
>
> I tried using 'since_epoch()::integer', but that failed as well.
> Is it possible to make the default value of an integer field use a
> function similar to how we use 'now()' for date and timestamp fields?
>
> - brian
>
> Wm. Brian McCane | Life is full of doors that won't open
> Search http://recall.maxbaud.net/ | when you knock, equally spaced amid those
> Usenet http://freenews.maxbaud.net/ | that open when you don't want them to.
> Auction http://www.sellit-here.com/ | - Roger Zelazny "Blood of Amber"
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
>