From: Tom Lane <tgl@sss.pgh.pa.us>
To: Denis Zaitsev <zzz@anda.ru>
Cc: pgsql-sql@postgresql.org
Subject: Re: Very strange 'now' behaviour in nested triggers.
Date: Sun, 27 Jul 2003 11:49:10 -0400
Message-ID: <4629.1059320950@sss.pgh.pa.us> (raw)
In-Reply-To: <20030727020104.A19865@natasha.ward.six>
References: <20030726193947.B1636@natasha.ward.six>
<9412.1059229904@sss.pgh.pa.us>
<20030727020104.A19865@natasha.ward.six>
Denis Zaitsev <zzz@anda.ru> writes:
> On Sat, Jul 26, 2003 at 10:31:44AM -0400, Tom Lane wrote:
>> 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.
> 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...
Right.
I put up a proposal in pgsql-hackers to change this behavior:
http://archives.postgresql.org/pgsql-hackers/2003-07/msg00818.php
If we made that change then the "wrong" way of defining the default
would fail in an obvious fashion --- the 'now' would get reduced to a
particular time immediately at CREATE TABLE. Doubtless this would annoy
some people, but the "right" way of defining the default isn't really
any harder, and it would save folks from getting burnt in corner cases,
like you were.
Any comments?
regards, tom lane
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: tgl@sss.pgh.pa.us, zzz@anda.ru
Subject: Re: Very strange 'now' behaviour in nested triggers.
In-Reply-To: <4629.1059320950@sss.pgh.pa.us>
* 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