diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-11-10 16:42:35 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-11-10 16:42:35 +0000 |
commit | eaa359f177ac79e66142b929efb928074d9f3da0 (patch) | |
tree | 48b3c7b806dee7d893186283bc9dc799b0cb3f4b /lib/sqlalchemy/engine/base.py | |
parent | 2c5f3e8397b52b9a52b2fdd0bef7aed77762e410 (diff) | |
download | sqlalchemy-eaa359f177ac79e66142b929efb928074d9f3da0.tar.gz |
- Restored "active rowcount" fetch before ResultProxy
autocloses the cursor. This was removed in 0.5rc3.
Diffstat (limited to 'lib/sqlalchemy/engine/base.py')
-rw-r--r-- | lib/sqlalchemy/engine/base.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/sqlalchemy/engine/base.py b/lib/sqlalchemy/engine/base.py index 832903a73..d22e21cfe 100644 --- a/lib/sqlalchemy/engine/base.py +++ b/lib/sqlalchemy/engine/base.py @@ -1382,7 +1382,10 @@ class ResultProxy(object): @property def rowcount(self): - return self.context.get_rowcount() + if self._rowcount is None: + return self.context.get_rowcount() + else: + return self._rowcount @property def lastrowid(self): @@ -1395,10 +1398,13 @@ class ResultProxy(object): def _init_metadata(self): metadata = self.cursor.description if metadata is None: - # no results, close + # no results, get rowcount (which requires open cursor on some DB's such as firebird), + # then close + self._rowcount = self.context.get_rowcount() self.close() return + self._rowcount = None self._props = util.PopulateDict(None) self._props.creator = self.__key_fallback() self.keys = [] |