diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-01-24 03:21:26 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-01-24 03:21:26 +0000 |
| commit | c4199178cac96fb8f4d899d6cc5866444e92d189 (patch) | |
| tree | 009ed92f74ac8ed59441a72e7d05ccbde54091c2 /lib/sqlalchemy/databases | |
| parent | 4e9aaff50ff679fc51c4d799b000c2fcfc70a999 (diff) | |
| download | sqlalchemy-c4199178cac96fb8f4d899d6cc5866444e92d189.tar.gz | |
oracle can conditionally decide if it wants to say "use rowid" in a select statement.
needs to be tweaked vs. when ROW NUMBER OVER ORDER BY is being used, but currently
fixes [ticket:436]
Diffstat (limited to 'lib/sqlalchemy/databases')
| -rw-r--r-- | lib/sqlalchemy/databases/oracle.py | 7 | ||||
| -rw-r--r-- | lib/sqlalchemy/databases/postgres.py | 2 | ||||
| -rw-r--r-- | lib/sqlalchemy/databases/sqlite.py | 2 |
3 files changed, 7 insertions, 4 deletions
diff --git a/lib/sqlalchemy/databases/oracle.py b/lib/sqlalchemy/databases/oracle.py index 6008ae61c..b5bd72e8f 100644 --- a/lib/sqlalchemy/databases/oracle.py +++ b/lib/sqlalchemy/databases/oracle.py @@ -192,8 +192,11 @@ class OracleDialect(ansisql.ANSIDialect): def type_descriptor(self, typeobj): return sqltypes.adapt_type(typeobj, colspecs) - def oid_column_name(self): - return "rowid" + def oid_column_name(self, column): + if not isinstance(column.table, sql.TableClause) and not isinstance(column.table, sql.Select): + return None + else: + return "rowid" def create_execution_context(self): return OracleExecutionContext(self) diff --git a/lib/sqlalchemy/databases/postgres.py b/lib/sqlalchemy/databases/postgres.py index e3ac3ae2c..7eee35320 100644 --- a/lib/sqlalchemy/databases/postgres.py +++ b/lib/sqlalchemy/databases/postgres.py @@ -279,7 +279,7 @@ class PGDialect(ansisql.ANSIDialect): else: return self.context.last_inserted_ids - def oid_column_name(self): + def oid_column_name(self, column): if self.use_oids: return "oid" else: diff --git a/lib/sqlalchemy/databases/sqlite.py b/lib/sqlalchemy/databases/sqlite.py index 6d1e56a7c..dda488f9c 100644 --- a/lib/sqlalchemy/databases/sqlite.py +++ b/lib/sqlalchemy/databases/sqlite.py @@ -165,7 +165,7 @@ class SQLiteDialect(ansisql.ANSIDialect): def last_inserted_ids(self): return self.context.last_inserted_ids - def oid_column_name(self): + def oid_column_name(self, column): return "oid" def dbapi(self): |
