From: | Marko Ristola <marko(dot)ristola(at)kolumbus(dot)fi> |
---|---|
To: | "'pgsql-odbc(at)postgresql(dot)org'" <pgsql-odbc(at)postgresql(dot)org> |
Subject: | Transactions and savepoints |
Date: | 2005-03-26 09:54:43 |
Message-ID: | 42453163.6060508@kolumbus.fi |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-odbc |
Hello.
I have been thinking about savepoints.
What do you think about the following:
Create transaction.h and transaction.c.
They would keep the knoledge about the following things:
- Current transaction state (is in autocommit mode, in transaction,
and the savepoint stack structure.
- Each transaction stack point would maintain a list of open cursors.
The stack would contain the following things:
- At the bottom of the stack is the autocommit mode (tr[0]).
- tr[1] contains the transaction's BEGIN block state.
- tr[2] contains the information about the first savepoint.
This would make the savepoint rollback work with cursors:
ODBC side manages the open cursors during savepoint rollback.
Rolling back a savepoint destroys that savepoint's and the later savepoint's
cursors. ODBC must not try to close the cursor after rollback,
or a database error occurs.
What do you think? Is this transaction state tracking necessary in the
ODBC side? Or does or will the database backend handle this some day
some way?
Marko Ristola
From | Date | Subject | |
---|---|---|---|
Next Message | Lothar Behrens | 2005-03-28 14:53:51 | SQL_CHAR, SQL_INTEGER or SQL_BIT datatype problem |
Previous Message | Michael Goei | 2005-03-24 23:54:00 | psqlODBC 'ERROR: invalid input syntax for integer: "A"' |