DB API 2.0 and transactions
- From: "Christopher J. Bottaro" <cjbottaro@xxxxxxxxxxxxxxxxxxxx>
- Date: Tue, 07 Jun 2005 12:54:52 -0500
Hi,
Why is there no support for explicit transactions in the DB API? I mean
like transaction() to start the trans and commit() and rollback() would end
the trans or something.
The reason why I ask is because I wrote a daemon that interacts with a
Postgres DB. The value of CURRENT_TIMESTAMP according to Postgres is NOT
the actual walltime, but the walltime when the current transaction started.
This gets weird when using the Python DB API to interact with Postgres
because a transaction gets started in 3 places: connection, commit,
rollback.
So consider the daemon:
[pseudo code]
connect # begin trans at 12:00
sleep waiting # lets say 15 mins
wake up
put entry in db using CURRENT_TIMESTAMP # oops
[/code]
Oops, the CURRENT_TIMESTAMP evaluates to 12:00, not 12:15.
Now I know there are ways around this...
1) In Postgres, you can get the walltime and cast it to a timestamp.
2) In Python, you can just do an empty commit in order to "manually" start
a new transaction.
I just think its a bit weird because this bit me in the *** for quite a
while and this didn't happen when doing the same thing in other langs.
Anyone have any opinions on this?
.
- Follow-Ups:
- Re: DB API 2.0 and transactions
- From: Magnus Lycka
- Re: DB API 2.0 and transactions
- From: vincent wehren
- Re: DB API 2.0 and transactions
- Prev by Date: Re: xmlrpclib - methodHelp doesn't work
- Next by Date: different time tuple format
- Previous by thread: xmlrpclib - methodHelp doesn't work
- Next by thread: Re: DB API 2.0 and transactions
- Index(es):