From 9d34c64095b6bed4b36aaea5d0d0e485fcb15d58 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Mon, 3 May 2010 19:24:52 -0400 Subject: - Fixed use_ansi=False mode, which was producing broken WHERE clauses in pretty much all cases. [ticket:1790] --- lib/sqlalchemy/dialects/oracle/base.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'lib/sqlalchemy') diff --git a/lib/sqlalchemy/dialects/oracle/base.py b/lib/sqlalchemy/dialects/oracle/base.py index 475730988..6c8055138 100644 --- a/lib/sqlalchemy/dialects/oracle/base.py +++ b/lib/sqlalchemy/dialects/oracle/base.py @@ -380,7 +380,8 @@ class OracleCompiler(compiler.SQLCompiler): binary.left = _OuterJoinColumn(binary.left) elif binary.right.table is join.right: binary.right = _OuterJoinColumn(binary.right) - clauses.append(visitors.cloned_traverse(join.onclause, {}, {'binary':visit_binary})) + clauses.append(visitors.cloned_traverse(join.onclause, {}, + {'binary':visit_binary})) else: clauses.append(join.onclause) @@ -391,7 +392,11 @@ class OracleCompiler(compiler.SQLCompiler): for f in froms: if isinstance(f, expression.Join): visit_join(f) - return sql.and_(*clauses) + + if not clauses: + return None + else: + return sql.and_(*clauses) def visit_outer_join_column(self, vc): return self.process(vc.column) + "(+)" -- cgit v1.2.1