summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/dialects
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2016-05-10 12:49:56 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2016-05-10 12:55:23 -0400
commit0604116814a862d4d9dbc1a8866a2a3b0126caf1 (patch)
tree1ddc470c634b5fb4cf474767b0d728817df5a142 /lib/sqlalchemy/dialects
parent743e9d4589946f1a29cdec7f2f1a2e4ec0853db7 (diff)
downloadsqlalchemy-0604116814a862d4d9dbc1a8866a2a3b0126caf1.tar.gz
Fix label referencing in SQL Server OFFSET logic
Fixed bug where by ROW_NUMBER OVER clause applied for OFFSET selects in SQL Server would inappropriately substitute a plain column from the local statement that overlaps with a label name used by the ORDER BY criteria of the statement. Change-Id: Ic2500c886cbfc83a1ad5a2681783f008b9f23838 Fixes: #3711
Diffstat (limited to 'lib/sqlalchemy/dialects')
-rw-r--r--lib/sqlalchemy/dialects/mssql/base.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/sqlalchemy/dialects/mssql/base.py b/lib/sqlalchemy/dialects/mssql/base.py
index 051efa719..966700420 100644
--- a/lib/sqlalchemy/dialects/mssql/base.py
+++ b/lib/sqlalchemy/dialects/mssql/base.py
@@ -1155,7 +1155,11 @@ class MSSQLCompiler(compiler.SQLCompiler):
'using an OFFSET or a non-simple '
'LIMIT clause')
- _order_by_clauses = select._order_by_clause.clauses
+ _order_by_clauses = [
+ sql_util.unwrap_label_reference(elem)
+ for elem in select._order_by_clause.clauses
+ ]
+
limit_clause = select._limit_clause
offset_clause = select._offset_clause
kwargs['select_wraps_for'] = select