summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql/expression.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2007-09-24 19:27:52 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2007-09-24 19:27:52 +0000
commita0838e0c476f7deab5b67f431c8ce107974b9313 (patch)
tree5a990b0a2f87f142bf96c75fa7c2597198f887f7 /lib/sqlalchemy/sql/expression.py
parent6b5543995b66b524097ad540a0a3f9dfd9eb9413 (diff)
downloadsqlalchemy-a0838e0c476f7deab5b67f431c8ce107974b9313.tar.gz
- columns from Alias objects, when used to target result-row columns, must match exactly
to the label used in the generated statement. This is so searching for columns in a result row which match aliases won't accidentally match non-aliased columns. fixes errors which can arise in eager loading scenarios.
Diffstat (limited to 'lib/sqlalchemy/sql/expression.py')
-rw-r--r--lib/sqlalchemy/sql/expression.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/sqlalchemy/sql/expression.py b/lib/sqlalchemy/sql/expression.py
index f7514fec9..dac5d7a74 100644
--- a/lib/sqlalchemy/sql/expression.py
+++ b/lib/sqlalchemy/sql/expression.py
@@ -2423,6 +2423,14 @@ class Alias(FromClause):
def _get_from_objects(self, **modifiers):
return [self]
+ def _proxy_column(self, column):
+ c = column._make_proxy(self)
+ # send a note to ResultProxy to not "approximate"
+ # this column based on its name when targeting result columns
+ # see test/sql/query.py QueryTest.test_exact_match
+ c._exact_match = True
+ return c
+
bind = property(lambda s: s.selectable.bind)
class _ColumnElementAdapter(ColumnElement):