summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/engine/base.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2008-11-10 16:42:35 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2008-11-10 16:42:35 +0000
commiteaa359f177ac79e66142b929efb928074d9f3da0 (patch)
tree48b3c7b806dee7d893186283bc9dc799b0cb3f4b /lib/sqlalchemy/engine/base.py
parent2c5f3e8397b52b9a52b2fdd0bef7aed77762e410 (diff)
downloadsqlalchemy-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.py10
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 = []