pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Denis Zaitsev <zzz@anda.ru>
To: pgsql-sql@postgresql.org
Subject: Re: Very strange 'now' behaviour in nested triggers.
Date: Sun, 27 Jul 2003 02:01:04 +0600
Message-ID: <20030727020104.A19865@natasha.ward.six> (raw)
References: <20030726193947.B1636@natasha.ward.six>
	<9412.1059229904@sss.pgh.pa.us>

On Sat, Jul 26, 2003 at 10:31:44AM -0400, Tom Lane wrote:
> Denis Zaitsev <zzz@anda.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?



view thread (17+ messages)  latest in thread

Message-ID: <20030727020104.A19865@natasha.ward.six>
Permalink:  ../20030727020104.A19865@natasha.ward.six/
Also on:    postgresql.org/message-id/20030727020104.A19865@natasha.ward.six

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: zzz@anda.ru
  Subject: Re: Very strange 'now' behaviour in nested triggers.
  In-Reply-To: <20030727020104.A19865@natasha.ward.six>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox