From: Mike Bayer Date: Fri, 24 Feb 2006 17:12:02 +0000 (+0000) Subject: tentative fix for oracle row_number over syntax X-Git-Tag: rel_0_1_3~40 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5b81c1a2d0915d95d9928ffaaf81af814cf4ec3e;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git tentative fix for oracle row_number over syntax --- diff --git a/CHANGES b/CHANGES index 0399f0015c..6b85598d9e 100644 --- a/CHANGES +++ b/CHANGES @@ -1,4 +1,5 @@ 0.1.3 +- fix to Oracle "row_number over" clause with mulitple tables - mapper.get() was not selecting multiple-keyed objects if the mapper's table was a join, such as in an inheritance relationship, this is fixed. 0.1.2 diff --git a/lib/sqlalchemy/databases/oracle.py b/lib/sqlalchemy/databases/oracle.py index eba04a27f8..2b91c176d8 100644 --- a/lib/sqlalchemy/databases/oracle.py +++ b/lib/sqlalchemy/databases/oracle.py @@ -212,7 +212,8 @@ class OracleCompiler(ansisql.ANSICompiler): if hasattr(select, "order_by_clause"): orderby = self.strings[select.order_by_clause] else: - orderby = "rowid ASC" + # TODO: try to get "oid_column" to be used here + orderby = "%s.rowid ASC" % select.froms[0].id select.append_column(sql.ColumnClause("ROW_NUMBER() OVER (ORDER BY %s)" % orderby).label("ora_rn")) limitselect = sql.select([c for c in select.c if c.key!='ora_rn']) if select.offset is not None: