From: | Peter Eisentraut <peter_e(at)gmx(dot)net> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Alex Pilosov <alex(at)pilosoft(dot)com>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: time stops within transaction |
Date: | 2000-10-18 21:22:27 |
Message-ID: | Pine.LNX.4.21.0010182314290.3228-100000@peter.localdomain |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Tom Lane writes:
> So? It also says that the choice of exactly when to evaluate now()
> is implementation-dependent. Doing so at start of transaction is
> an allowed behavior AFAICS.
But it's only talking about statements. You can't reuse things that you
calculated for previous statements unless it says so. (Of course
implementation-dependent means that you can do anything you want to, but
let's not go there. :-)
> Actually calling time(2) at each use
> of now(), which is what the original poster seemed to want, is
> clearly *not* an allowed behavior.
What this covers is doing things like
SELECT CURRENT_TIMESTAMP as "Today", CURRENT_TIMESTAMP + 1 DAY AS "Tomorrow";
But keep in mind that other/correct SQL implementations don't have
autocommit, so if you're in some interactive SQL shell and you keep
entering
select current_timestamp;
then it won't ever advance unless you do commits in between. This doesn't
make much sense to me, as CURRENT_TIMESTAMP is defined to return the
"current time" . The point of a transaction is all data or no data, not
all the same data.
> I think what you are advocating is recomputing now() at each statement
> boundary within a transaction, but that's not as simple as it looks
> either. Consider statement boundaries in an SQL function --- the
> function is probably being called from some outer statement, so
> advancing now() within the function would violate the spec constraint
> with respect to the outer statement.
Good point. There are probably special rules for SQL functions.
I'm not saying that this thing is a priority to me, but it's something to
consider.
--
Peter Eisentraut peter_e(at)gmx(dot)net http://yi.org/peter-e/
From | Date | Subject | |
---|---|---|---|
Next Message | Don Baccus | 2000-10-18 21:36:18 | Re: time stops within transaction |
Previous Message | Bruce Momjian | 2000-10-18 21:13:21 | Re: pgsql/doc (FAQ_MSWIN INSTALL_MSWIN) |