I see now where the problem came from, my dbapi module (experimental asynchonous mysql driver) was not returning None on the last call to its Cursor::fetchone implementation, instead it raised a StopIteration exception which was subsequently ignored in sqlalchemy Compiler::_handle_dbapi_exception because it is not a subclass of dbapi.Error...
If fixed my dbapi module, now it works, thanx. On Jul 4, 3:50 pm, Michael Bayer <[EMAIL PROTECTED]> wrote: > On Jul 4, 2008, at 4:52 AM, Henk wrote: > > > > > > > Hi, > > > I notice that the ResultProxy class has no __del__ method. > > > I am using the sql expression language directly with using the > > 'execute' method on a select that is bound to an engine with a > > QueuePool. > > The problem is that if I forget to explicitly close the ResultProxy > > that is returned from the execute method, the connection associated > > with the ResultProxy will never be released back to the pool. > > Is this by design? or could the ResultProxy be modified to include a > > __del__ method that calls the close method when the ResultProxy goes > > out of scope?. > > The SQLAchemy documentation for 0.3 explicitly mentions that > > ResultProxy will autoclose when it is gc'd. but later docs do not... > > ResultProxy does not need a __del__ since the underlying cursor and > connection it references are automatically closed out (in the case of > the Connection, returned to the connection pool) when garbage > collected. The pool mechanism to accomplish this in 0.3 is in fact > a __del__ method on ConnectionFairy but 0.4 and above don't use > __del__ since it can be problematic (preventing circular GC cleanup, > and providing an undefined state within the body of __del__); they > instead use a weakref callback. > > Additionally, in 0.4 and above the ResultProxy is *explicitly* closed > out, no reliance on GC needed, in almost all cases except when a > ResultProxy with pending results is discarded. This means any insert/ > udpdate/delete operation, or a select where you call fetchall() or > otherwise exhaust all the results, is closed immediately. Migrating > to at least version 0.4 is strongly urged in any case. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---