Re: Very strange 'now' behaviour in nested triggers.

From: Denis Zaitsev <zzz(at)anda(dot)ru>
To: pgsql-sql(at)postgresql(dot)org
Subject: Re: Very strange 'now' behaviour in nested triggers.
Date: 2003-07-26 20:01:04
Message-ID: 20030727020104.A19865@natasha.ward.six
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc pgsql-sql

On Sat, Jul 26, 2003 at 10:31:44AM -0400, Tom Lane wrote:
> Denis Zaitsev <zzz(at)anda(dot)ru> writes:
> > create table xxx (
> > s text,
> > t timestamp
> > default 'now'
> > );
>
> That's a dangerous way to define the default --- 'now' is taken as a
> literal of type timestamp, which means it will be reduced to a timestamp
> constant as soon as a statement that requires the default is planned.
> You lose in plpgsql because of plan caching, but you'd also lose if you
> tried to PREPARE the insert command. Example:

Aaa... So, the INSERT inside a trigger will use the 'now' for the
time this trigger is compiled (i.e. called first time)? Do I
understand right? And the only outer trigger uses the right 'now' as
its value goes from the top-level INSERT...

Thank you very much.

By the way, do you think this method with nested triggers has some
'moral weakness' vs. just cycling left-to-right on the comma-separated
string in the 'do instead' rule for some view of xxx?

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Richard Huxton 2003-07-27 07:47:16 Re: Very strange 'now' behaviour in nested triggers.
Previous Message Denis Zaitsev 2003-07-26 19:58:32 Re: Very strange 'now' behaviour in nested triggers.

Browse pgsql-sql by date

  From Date Subject
Next Message Richard Huxton 2003-07-27 07:47:16 Re: Very strange 'now' behaviour in nested triggers.
Previous Message Denis Zaitsev 2003-07-26 19:58:32 Re: Very strange 'now' behaviour in nested triggers.