Обсуждение: Postgresql prepared transactions
Hi,
I do following commands
test=# BEGIN;
BEGIN
test=# insert into testxa1 values(1);
INSERT 0 1
test=# insert ddddduuuuuppppp;
ERROR: syntax error at or near "ddddduuuuuppppp"
LINE 1: insert ddddduuuuuppppp;
^
test=# PREPARE TRANSACTION 'a';
ROLLBACK
Why on prepare transaction I got rollback. If I skip error, each RM will try
to do two-phase commit, but it's looks impossible to do two-phase commit.
Regards,
Radek
=?utf-8?q?Rados=C5=82aw_Smogura?= <rsmogura@softperience.eu> writes:
> I do following commands
> test=# BEGIN;
> BEGIN
> test=# insert into testxa1 values(1);
> INSERT 0 1
> test=# insert ddddduuuuuppppp;
> ERROR: syntax error at or near "ddddduuuuuppppp"
> LINE 1: insert ddddduuuuuppppp;
> ^
> test=# PREPARE TRANSACTION 'a';
> ROLLBACK
> Why on prepare transaction I got rollback.
Because the transaction had already failed due to the error. This is
the same as if you'd done a plain COMMIT at that point.
regards, tom lane
Tom Lane <tgl@sss.pgh.pa.us> Saturday 19 February 2011 00:48:00 > =?utf-8?q?Rados=C5=82aw_Smogura?= <rsmogura@softperience.eu> writes: > > I do following commands > > > > test=# BEGIN; > > BEGIN > > test=# insert into testxa1 values(1); > > INSERT 0 1 > > test=# insert ddddduuuuuppppp; > > ERROR: syntax error at or near "ddddduuuuuppppp" > > LINE 1: insert ddddduuuuuppppp; > > > > ^ > > > > test=# PREPARE TRANSACTION 'a'; > > ROLLBACK > > > > Why on prepare transaction I got rollback. > > Because the transaction had already failed due to the error. This is > the same as if you'd done a plain COMMIT at that point. > > regards, tom lane Sorry, my wrong. I thought I can commit or rollback. In any way next bug JDBC. Regards
Hi, In any way may I ask to add information in protocol-message-formats.html that for command status for queries like COMMIT, ROLLBACK, PREPARE TRANSACTION status may be ROLLBACK. It is important for XA resources to check what actually happend. I can't find this in documentation as well. Radek, Radosław Smogura <rsmogura@softperience.eu> Saturday 19 February 2011 01:02:36 > Tom Lane <tgl@sss.pgh.pa.us> Saturday 19 February 2011 00:48:00 > > > =?utf-8?q?Rados=C5=82aw_Smogura?= <rsmogura@softperience.eu> writes: > > > I do following commands > > > > > > test=# BEGIN; > > > BEGIN > > > test=# insert into testxa1 values(1); > > > INSERT 0 1 > > > test=# insert ddddduuuuuppppp; > > > ERROR: syntax error at or near "ddddduuuuuppppp" > > > LINE 1: insert ddddduuuuuppppp; > > > > > > ^ > > > > > > test=# PREPARE TRANSACTION 'a'; > > > ROLLBACK > > > > > > Why on prepare transaction I got rollback. > > > > Because the transaction had already failed due to the error. This is > > the same as if you'd done a plain COMMIT at that point. > > > > regards, tom lane > > Sorry, my wrong. I thought I can commit or rollback. In any way next bug > JDBC. > > Regards