diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-05-03 16:55:56 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-05-03 16:55:56 +0000 |
| commit | ea06a3ac2f8225a9aac81cd849d681ee40d2e57a (patch) | |
| tree | e9522cb6115147e5f9c45a1c91afdad88e9d9f88 /lib/sqlalchemy/databases | |
| parent | c5b02351a2e6a80dbd894c8ffacf64d1373d4d9d (diff) | |
| download | sqlalchemy-ea06a3ac2f8225a9aac81cd849d681ee40d2e57a.tar.gz | |
"order_by" parameter propigated to inheriting mappers
oracle ROW_NUMBER logic uses select.oid_column to get default order by
Diffstat (limited to 'lib/sqlalchemy/databases')
| -rw-r--r-- | lib/sqlalchemy/databases/oracle.py | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/lib/sqlalchemy/databases/oracle.py b/lib/sqlalchemy/databases/oracle.py index a475d29b7..863cfd03e 100644 --- a/lib/sqlalchemy/databases/oracle.py +++ b/lib/sqlalchemy/databases/oracle.py @@ -276,16 +276,10 @@ class OracleCompiler(ansisql.ANSICompiler): return if select.limit is not None or select.offset is not None: select._oracle_visit = True + # to use ROW_NUMBER(), an ORDER BY is required. orderby = self.strings[select.order_by_clause] if not orderby: - # to use ROW_NUMBER(), an ORDER BY is required. so here we dig in - # as best we can to find some column we can order by - # TODO: try to get "oid_column" to be used here - if len(select.primary_key): - col = select.primary_key[0].original.table.name - else: - col = [c for c in select.c][0].original.table.name - orderby = "%s.rowid ASC" % col + orderby = select.oid_column 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: |
