Re: ESQL/C: a ROLLBACK rolls back a COMMITED transaction

From: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
To: Matthias Apitz <guru(at)unixarea(dot)de>, pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: ESQL/C: a ROLLBACK rolls back a COMMITED transaction
Date: 2020-05-13 15:15:40
Message-ID: bbf09998-7761-0aed-a155-a4d611048b36@aklaver.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(dot)klaver(at)aklaver(dot)com

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Dmitry Igrishin 2020-05-13 17:53:38 Practical usage of large objects.
Previous Message Tom Lane 2020-05-13 14:57:30 Re: Why is it that “aggregate functions are not allowed in FROM clause of their own query level”?