Thread: BUG #11822: ECPG Commit or Rollback error

BUG #11822: ECPG Commit or Rollback error

From
jlsanz1983@gmail.com
Date:
The following bug has been logged on the website:

Bug reference:      11822
Logged by:          jls1983
Email address:      jlsanz1983@gmail.com
PostgreSQL version: Unsupported/Unknown
Operating system:   CentOs 6.2
Description:

I use a 8.2 version of postgres, and get and solve the following mistake in
a pgc program:

Hi when a cursor is open and a fetch is in progres if then uses a commit or
rollback instruction before close the cursor.

The cursor get this error:

==== sqlca ====
sqlcode: -400
sqlerrm.sqlerrml: 44
sqlerrm.sqlerrmc: cursor "bolas" does not exist on line 141
sqlerrd: 0 0 0 0 0 0
sqlwarn: 0 0 0 0 0 0 0 0
sqlstate: 34000
===============

If the commit goes after close the cursor then the execution doesn't return
any error.

Sorry about my english.
Best regards.

Re: BUG #11822: ECPG Commit or Rollback error

From
Tom Lane
Date:
jlsanz1983@gmail.com writes:
> Hi when a cursor is open and a fetch is in progres if then uses a commit or
> rollback instruction before close the cursor.
> The cursor get this error:
> sqlerrm.sqlerrmc: cursor "bolas" does not exist on line 141
> If the commit goes after close the cursor then the execution doesn't return
> any error.

That sounds like expected behavior to me: ordinary cursors are
automatically closed at transaction end.

If you really need this to work, you can declare the cursor WITH HOLD,
but that entails a performance penalty.

            regards, tom lane