summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/engine
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2016-01-27 11:35:43 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2016-01-27 11:35:43 -0500
commitde0d144a395c31eb74084177df95a4858b830f88 (patch)
tree474556515b8a3b57000bbcb0237c950cd3ffa64b /lib/sqlalchemy/engine
parent4b9f6f407ceedde247982501a6ae406242c80b4a (diff)
downloadsqlalchemy-de0d144a395c31eb74084177df95a4858b830f88.tar.gz
- dont set up integer index in keymap if we're on cexts
Diffstat (limited to 'lib/sqlalchemy/engine')
-rw-r--r--lib/sqlalchemy/engine/result.py15
1 files changed, 10 insertions, 5 deletions
diff --git a/lib/sqlalchemy/engine/result.py b/lib/sqlalchemy/engine/result.py
index cc4ac74cd..39f4fc50c 100644
--- a/lib/sqlalchemy/engine/result.py
+++ b/lib/sqlalchemy/engine/result.py
@@ -35,7 +35,10 @@ except ImportError:
try:
from sqlalchemy.cresultproxy import BaseRowProxy
+ _baserowproxy_usecext = True
except ImportError:
+ _baserowproxy_usecext = False
+
class BaseRowProxy(object):
__slots__ = ('_parent', '_row', '_processors', '_keymap')
@@ -210,11 +213,13 @@ class ResultMetaData(object):
context, cursor_description, result_columns,
num_ctx_cols, cols_are_ordered, textual_ordered)
- # keymap indexes by integer index...
- self._keymap = dict([
- (elem[0], (elem[3], elem[4], elem[0]))
- for elem in raw
- ])
+ self._keymap = {}
+ if not _baserowproxy_usecext:
+ # keymap indexes by integer index...
+ self._keymap.update([
+ (elem[0], (elem[3], elem[4], elem[0]))
+ for elem in raw
+ ])
# processors in key order for certain per-row
# views like __iter__ and slices