summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2006-02-24 17:12:02 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2006-02-24 17:12:02 +0000
commit5b81c1a2d0915d95d9928ffaaf81af814cf4ec3e (patch)
tree817f298cd213e819f809281796b3263121f40eb5
parent49e3948d5d7c8c55c925901be76a0487f9ccea70 (diff)
downloadsqlalchemy-5b81c1a2d0915d95d9928ffaaf81af814cf4ec3e.tar.gz
tentative fix for oracle row_number over syntax
-rw-r--r--CHANGES1
-rw-r--r--lib/sqlalchemy/databases/oracle.py3
2 files changed, 3 insertions, 1 deletions
diff --git a/CHANGES b/CHANGES
index 0399f0015..6b85598d9 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 eba04a27f..2b91c176d 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: