On 20.02.2013 12:48, pierpaolo.cincilla wrote:
I have the problem to access modified data (updates and inserts) in a
prepare transaction statement before a commit/rollback. For example consider
the following block:

BEGIN;
do some update;
do some insert;
PREPARE TRANSACTION 'transaction1';

After executing the 'prepare' command (and before executing the 'commit'
command), I neeed to fetch the data modified by the transaction
'transaction1'. I can fetch the rows with the old values that are modified
by the transaction (using the xmax field), howewer I need also the values
that the transaction will write into these rows when it commits.

Postgres needs to store these values somewhere in order to commit the
transaction when it is required, so my question is: how can I access these
values? Thank you in advance.

In short, you can't. PostgreSQL stores the values in the tables, but they are invisible to other transactions until the prepared transaction is committed. From this point of view, a prepared transaction behaves the same as a transaction that's still in-progress in another backend.

If you explain a bit more what you're trying to accomplish, someone can probably suggest a better solution.

- Heikki


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to