summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/databases
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2007-01-24 03:21:26 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2007-01-24 03:21:26 +0000
commitc4199178cac96fb8f4d899d6cc5866444e92d189 (patch)
tree009ed92f74ac8ed59441a72e7d05ccbde54091c2 /lib/sqlalchemy/databases
parent4e9aaff50ff679fc51c4d799b000c2fcfc70a999 (diff)
downloadsqlalchemy-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.py7
-rw-r--r--lib/sqlalchemy/databases/postgres.py2
-rw-r--r--lib/sqlalchemy/databases/sqlite.py2
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):