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>
Cc: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: ESQL/C: a ROLLBACK rolls back a COMMITED transaction
Date: 2020-05-13 00:17:33
Message-ID: dea15286-0856-f713-387e-062e98ae975c@aklaver.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 5/12/20 4:52 PM, Matthias Apitz wrote:
> El día Dienstag, Mai 12, 2020 a las 12:30:17 -0700, Adrian Klaver escribió:
>
>> On 5/12/20 12:14 PM, Matthias Apitz wrote:
>>>
>>> To answer also the question of Adrian Klaver:
>>>
>>> The database in question has ~400 tables and the ESQL/C application has
>>> for each table its own ESQL/C source file. It would be possible but a
>>> nightmare to share the code and it's better to discuss the problem based
>>> on the ESQL/c log file or I have to write some small example code to
>>> reproduce the problem. The line numbers are relative to those source
>>> files (and it's a pitty that the name of the source file is not logged,
>>> onle the line numbers).
>>
>> Yeah, but there is a one:one mapping of table:source file and you know the
>> table, so you should be able to find the source at the line number. Or am I
>> missing something?
>
> Yes. The table here is swd_daten, the corresponding .pgc file is
> swd_daten.pgc.
>
> And in the log the line logged is:
>
> [1471] [12.05.2020 15:48:50:476]: ecpg_process_output on line 1744: OK: INSERT 0 1

So what is happening before, during and after that line?

>
> What I wanted to have is:
>
>
> [1471] [12.05.2020 15:48:50:476]: ecpg_process_output on line 1744 of swd_daten.pgc: OK: INSERT 0 1
>
> i.e. have added the file name to the line number as "on line 1744 of
> swd_daten.pgc" to not always have to think, hey in which table we're
> with this at the moment.
>
>> Also, from OP did:
>>
>> 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?

>
> matthias
>

--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Kyotaro Horiguchi 2020-05-13 01:21:30 Re: [EXTERNAL] Re: PostgreSQL-12 replication failover, pg_rewind fails
Previous Message Tom Lane 2020-05-13 00:01:15 Re: ESQL/C: a ROLLBACK rolls back a COMMITED transaction