Re: Assertion failure with a subtransaction and cursor - Mailing list pgsql-bugs

From Tom Lane
Subject Re: Assertion failure with a subtransaction and cursor
Date
Msg-id 11083.1258912869@sss.pgh.pa.us
Whole thread Raw
In response to Assertion failure with a subtransaction and cursor  (Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>)
Responses Re: Assertion failure with a subtransaction and cursor
List pgsql-bugs
Heikki Linnakangas <heikki.linnakangas@enterprisedb.com> writes:
> On all versions starting from 8.0 where subtransactions were introduced,
> this causes an assertion failure:

Ugh :-(

This ties into the more general issue that it's not clear what effect a
subtransaction rollback should have on a cursor.  You could argue that
ideally the cursor should revert to its pre-savepoint state.  We didn't
implement that in 8.0 because it seemed too hard, but this bug shows
that not rolling back the cursor isn't exactly easy either.

Not sure what to do.  The only fix that seems bulletproof at the moment
is to declare that any cursor that's been touched at all in a
subtransaction is marked "broken" if the subtransaction rolls back.
That might be too great a loss of functionality.  It would block off
the controversial aspects of behavior though ...

            regards, tom lane

pgsql-bugs by date:

Previous
From: Heikki Linnakangas
Date:
Subject: Assertion failure with a subtransaction and cursor
Next
From: Robert Haas
Date:
Subject: Re: BUG #5203: Rule affecting more than one row is only fired once, when there is no reference to the row.