From: SZŰCS Gábor <surrano@mailbox.hu>
To: pgsql-sql@postgresql.org
Subject: Re: Delayed result from another connection
Date: Fri, 5 Nov 2004 14:29:30 +0100
Message-ID: <011201c4c33b$7bd722c0$0403a8c0@fejleszt4> (raw)
References: <012601c4c292$6804b810$0403a8c0@fejleszt4>
<26896.1099590388@sss.pgh.pa.us>
Dear Tom,
Thanks for the explanation, it's more than enough. Some more questions if
you don't mind:
----- Original Message -----
From: "Tom Lane" <tgl@sss.pgh.pa.us>
Sent: Thursday, November 04, 2004 6:46 PM
> =?iso-8859-2?B?U1rbQ1MgR+Fib3I=?= <surrano@mailbox.hu> writes:
> > The php connects to the database and updates retval where id=seq.
> > It seems to be OK, but the function returns the value of
php_retval.retval
> > _before_ the call.
>
> Yes, because your transaction is working with a database snapshot that
> predates the other transaction run by the separate PHP connection.
Yes, but the snapshot is not constant during a transaction, right? (as my
example showed this clearly) ...
> Prior to PG 8.0, new snapshots are not taken between commands of a
function,
> even in READ COMMITTED mode. You could get the behavior you want by
> issuing separate interactive commands instead of wrapping the sequence
> in a function.
... So if I understood you correctly, it's the function call that sees the
old snapshot, and the transaction is more flexible in this issue. right?
> > I thought it's something about "35.2 Visibility of Data Changes", but
that's
> > only for triggers, isn't it?
>
> Nope.
I felt like it's not only for triggers but interpreted the doc as it'd be
only for triggers... Having a closer look, discovered that there is another
section with this title: "41.4 Visibility of Data Changes" ;)
> This has been a sore spot for a long time, but we didn't get consensus
> about changing it till recently ...
I assume there is no point in begging for a backport... ;)
Thanks again,
G.
%----------------------- cut here -----------------------%
\end
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: surrano@mailbox.hu
Subject: Re: Delayed result from another connection
In-Reply-To: <011201c4c33b$7bd722c0$0403a8c0@fejleszt4>
* 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