diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-09-24 19:27:52 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-09-24 19:27:52 +0000 |
| commit | a0838e0c476f7deab5b67f431c8ce107974b9313 (patch) | |
| tree | 5a990b0a2f87f142bf96c75fa7c2597198f887f7 /lib/sqlalchemy/sql/expression.py | |
| parent | 6b5543995b66b524097ad540a0a3f9dfd9eb9413 (diff) | |
| download | sqlalchemy-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.py | 8 |
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): |
