Re: ESQL/C: a ROLLBACK rolls back a COMMITED transaction - Mailing list pgsql-general

From Adrian Klaver
Subject Re: ESQL/C: a ROLLBACK rolls back a COMMITED transaction
Date
Msg-id bbf09998-7761-0aed-a155-a4d611048b36@aklaver.com
Whole thread Raw
In response to Re: ESQL/C: a ROLLBACK rolls back a COMMITED transaction  (Matthias Apitz <guru@unixarea.de>)
Responses Re: ESQL/C: a ROLLBACK rolls back a COMMITED transaction  (Matthias Apitz <guru@unixarea.de>)
List pgsql-general
On 5/12/20 10:34 PM, Matthias Apitz wrote:
> El día Dienstag, Mai 12, 2020 a las 05:17:33 -0700, Adrian Klaver escribió:
> 
>>>> insert into swd_auftrag ..
>>>>
>>>> COMMIT?
>>>
>>> This question (if it was a question) I don't understand.
>>
>>  From your original message:
>>
>> "The INSERT of 1 row into table swd_daten was OK and commit'ed (marked line)
>> and a later rollback (last line) seems to roll it back, at least the row
>> isn't in the table."
>>
>> It was not clear to me whether:
>>
>> "[1471] [12.05.2020 15:48:50:478]: ecpg_execute on line 1637: query: insert
>> into swd_auftrag ( setnr , aufnum , katkey , userid , seqcount ) values ( $1
>> , $2  , $3  , $4  , $5  ); with 5 parameter(s) on connection sisis
>> [1471] [12.05.2020 15:48:50:478]: ecpg_process_output on line 1637: OK:
>> INSERT 0 1"
>>
>> also COMMITT(ed) or not?
> 
> As I said in the original post of this thread:
> 
> [1471] [12.05.2020 15:48:50:476]: ecpg_execute on line 1744: query: insert into swd_daten ( katkey , aktion , reserv
,id , ansetzung , nettodaten ) values ( $1  , $2  , $3  , $4  , $5  , $6  ); with 6 parameter(s) on connection sisis
 
> [1471] [12.05.2020 15:48:50:476]: ecpg_process_output on line 1744: OK: INSERT 0 1
> [1471] [12.05.2020 15:48:50:477]: ECPGtrans on line 6716: action "commit"; connection "sisis"
> ...
> 
> i.e. the COMMIT is done in the same connection(!) right after the
> INSERT. There is no other ESQL/C call logged (and done) between.
> 
> There is only no ACK from the ESQL/C layer about the COMMIT of
> ECPGtrans, but this is a fault in the ESQL/C layer code, because the
> ECPGtrans is logged before executing it and afterward if it's done OK no
> message is generated.


In your original post you had:

"We're facing in our ESQL/C written application a situation where a
commit'ed INSERT into a table is rolled back. I have here the ESQL/C
logging of the problem:"
...

"The INSERT of 1 row into table swd_daten was OK and commit'ed (marked line)
and a later rollback (last line) seems to roll it back, at least the row
isn't in the table.

Any ideas? The connection is not set to AUTOCOMMIT."

You then included a sequence of log messages that ended with a 
"rollback". Within that sequence was the INSERT to swd_auftrag. It 
seemed reasonable to ask whether that INSERT rolled back also. That is 
if the intent of this thread is to figure out why the INSERT was rolled 
back. If the thread has changed to fixing ESQL/C logging then ignore the 
above.

> 
>     matthias
> 
> 


-- 
Adrian Klaver
adrian.klaver@aklaver.com



pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Why is it that “aggregate functions are not allowed in FROM clause of their own query level”?
Next
From: Dmitry Igrishin
Date:
Subject: Practical usage of large objects.