summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2005-12-30 00:23:01 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2005-12-30 00:23:01 +0000
commit4372eafaabd71e0e3935bf4b3931f1a75ac0993c (patch)
tree79347bcb58dcbf6f08863b8cfb17ca28bbe2ff5e /lib/sqlalchemy
parent1980102244b79275b231130fe510c24f1199304d (diff)
downloadsqlalchemy-4372eafaabd71e0e3935bf4b3931f1a75ac0993c.tar.gz
catching up oracle to current, some tweaks to unittests to work better with oracle,
allow different ordering of expected statements. unittests still dont work completely with oracle due to sequence columns in INSERT statements
Diffstat (limited to 'lib/sqlalchemy')
-rw-r--r--lib/sqlalchemy/databases/oracle.py19
1 files changed, 12 insertions, 7 deletions
diff --git a/lib/sqlalchemy/databases/oracle.py b/lib/sqlalchemy/databases/oracle.py
index ae1445759..04d59a582 100644
--- a/lib/sqlalchemy/databases/oracle.py
+++ b/lib/sqlalchemy/databases/oracle.py
@@ -110,7 +110,7 @@ class OracleSQLEngine(ansisql.ANSISQLEngine):
def schemadropper(self, proxy, **params):
return OracleSchemaDropper(proxy, **params)
def defaultrunner(self, proxy):
- return OracleDefaultRunner(proxy)
+ return OracleDefaultRunner(self, proxy)
def reflecttable(self, table):
raise "not implemented"
@@ -143,10 +143,10 @@ class OracleCompiler(ansisql.ANSICompiler):
"""oracle compiler modifies the lexical structure of Select statements to work under
non-ANSI configured Oracle databases, if the use_ansi flag is False."""
- def __init__(self, engine, statement, bindparams, use_ansi = True, **kwargs):
+ def __init__(self, engine, statement, parameters, use_ansi = True, **kwargs):
self._outertable = None
self._use_ansi = use_ansi
- ansisql.ANSICompiler.__init__(self, engine, statement, bindparams, **kwargs)
+ ansisql.ANSICompiler.__init__(self, engine, statement, parameters, **kwargs)
def visit_join(self, join):
if self._use_ansi:
@@ -165,7 +165,12 @@ class OracleCompiler(ansisql.ANSICompiler):
join.onclause.accept_visitor(self)
self._outertable = outertable
-
+
+ def visit_alias(self, alias):
+ """oracle doesnt like 'FROM table AS alias'. is the AS standard SQL??"""
+ self.froms[alias] = self.get_from_text(alias.selectable) + " " + alias.name
+ self.strings[alias] = self.get_str(alias.selectable)
+
def visit_column(self, column):
if self._use_ansi:
return ansisql.ANSICompiler.visit_column(self, column)
@@ -181,8 +186,8 @@ class OracleCompiler(ansisql.ANSICompiler):
with autoincrement fields that require they not be present. so,
put them all in for all primary key columns."""
for c in insert.table.primary_key:
- if not self.bindparams.has_key(c.key):
- self.bindparams[c.key] = None
+ if not self.parameters.has_key(c.key):
+ self.parameters[c.key] = None
return ansisql.ANSICompiler.visit_insert(self, insert)
def visit_select(self, select):
@@ -235,4 +240,4 @@ class OracleDefaultRunner(ansisql.ANSIDefaultRunner):
return self.proxy(str(c), c.get_params()).fetchone()[0]
def visit_sequence(self, seq):
- return self.exec_default_sql(seq.name + ".nextval")
+ return self.proxy("SELECT " + seq.name + ".nextval FROM DUAL").fetchone()[0]