summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/engine
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/engine')
-rw-r--r--lib/sqlalchemy/engine/default.py10
-rw-r--r--lib/sqlalchemy/engine/result.py2
2 files changed, 11 insertions, 1 deletions
diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py
index 21e02fcdc..f43c0404e 100644
--- a/lib/sqlalchemy/engine/default.py
+++ b/lib/sqlalchemy/engine/default.py
@@ -625,6 +625,16 @@ class DefaultExecutionContext(interfaces.ExecutionContext):
def post_exec(self):
pass
+ def get_result_processor(self, type_, colname, coltype):
+ """Return a 'result processor' for a given type as present in
+ cursor.description.
+
+ This has a default implementation that dialects can override
+ for context-sensitive result type handling.
+
+ """
+ return type_._cached_result_processor(self.dialect, coltype)
+
def get_lastrowid(self):
"""return self.cursor.lastrowid, or equivalent, after an INSERT.
diff --git a/lib/sqlalchemy/engine/result.py b/lib/sqlalchemy/engine/result.py
index bf6410f15..9fb735f46 100644
--- a/lib/sqlalchemy/engine/result.py
+++ b/lib/sqlalchemy/engine/result.py
@@ -210,7 +210,7 @@ class ResultMetaData(object):
name, obj, type_ = \
colname, None, typemap.get(coltype, types.NULLTYPE)
- processor = type_._cached_result_processor(dialect, coltype)
+ processor = context.get_result_processor(type_, colname, coltype)
processors.append(processor)
rec = (processor, obj, i)