diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2015-07-19 16:32:31 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2015-07-19 16:32:31 -0400 |
| commit | ddad19052965b4f1ed75ad0eb33217da18aa81e4 (patch) | |
| tree | 77a0c6f3c2d4fda70cef6850ffa9d564156014cc /lib/sqlalchemy/engine | |
| parent | c00ef11a0c1472f7469fcbadf42e7117bd6869d4 (diff) | |
| download | sqlalchemy-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.py | 14 |
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() |
