summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/engine
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2015-07-19 16:32:31 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2015-07-19 16:32:31 -0400
commitddad19052965b4f1ed75ad0eb33217da18aa81e4 (patch)
tree77a0c6f3c2d4fda70cef6850ffa9d564156014cc /lib/sqlalchemy/engine
parentc00ef11a0c1472f7469fcbadf42e7117bd6869d4 (diff)
downloadsqlalchemy-ddad19052965b4f1ed75ad0eb33217da18aa81e4.tar.gz
- Fixed regression where new methods on :class:`.ResultProxy` used
by the ORM :class:`.Query` object (part of the performance enhancements of :ticket:`3175`) would not raise the "this result does not return rows" exception in the case where the driver (typically MySQL) fails to generate cursor.description correctly; an AttributeError against NoneType would be raised instead. fixes #3481
Diffstat (limited to 'lib/sqlalchemy/engine')
-rw-r--r--lib/sqlalchemy/engine/result.py14
1 files changed, 12 insertions, 2 deletions
diff --git a/lib/sqlalchemy/engine/result.py b/lib/sqlalchemy/engine/result.py
index 3fcab873b..74a0fce77 100644
--- a/lib/sqlalchemy/engine/result.py
+++ b/lib/sqlalchemy/engine/result.py
@@ -495,10 +495,20 @@ class ResultProxy(object):
self._init_metadata()
def _getter(self, key):
- return self._metadata._getter(key)
+ try:
+ getter = self._metadata._getter
+ except AttributeError:
+ return self._non_result(None)
+ else:
+ return getter(key)
def _has_key(self, key):
- return self._metadata._has_key(key)
+ try:
+ has_key = self._metadata._has_key
+ except AttributeError:
+ return self._non_result(None)
+ else:
+ return has_key(key)
def _init_metadata(self):
metadata = self._cursor_description()