[Sqlalchemy-tickets] Issue #3330: fetchone() and others should not raise on a result that had rows
Brought to you by:
zzzeek
|
From: Mike B. <iss...@bi...> - 2015-03-17 03:41:48
|
New issue 3330: fetchone() and others should not raise on a result that had rows https://bitbucket.org/zzzeek/sqlalchemy/issue/3330/fetchone-and-others-should-not-raise-on-a Mike Bayer: the resultproxy does an "autoclose", but fetchone() and others should continue to return None or empty list, the same way pep 249 states. ``` #!python >>> from sqlalchemy import create_engine >>> e = create_engine("sqlite://") >>> r = e.execute("select 1") >>> r.fetchone() (1,) >>> r.fetchone() >>> r.fetchone() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Users/classic/dev/sqlalchemy/lib/sqlalchemy/engine/result.py", line 930, in fetchone self.cursor, self.context) File "/Users/classic/dev/sqlalchemy/lib/sqlalchemy/engine/base.py", line 1335, in _handle_dbapi_exception util.reraise(*exc_info) File "/Users/classic/dev/sqlalchemy/lib/sqlalchemy/engine/result.py", line 921, in fetchone row = self._fetchone_impl() File "/Users/classic/dev/sqlalchemy/lib/sqlalchemy/engine/result.py", line 840, in _fetchone_impl self._non_result() File "/Users/classic/dev/sqlalchemy/lib/sqlalchemy/engine/result.py", line 864, in _non_result raise exc.ResourceClosedError("This result object is closed.") sqlalchemy.exc.ResourceClosedError: This result object is closed. >>> ``` |