be used. This will impact decimal accuracy and some
unicode handling issues. [ticket:1775]
+ - Fixed use_ansi=False mode, which was producing broken
+ WHERE clauses in pretty much all cases. [ticket:1790]
+
- firebird
- Added a label to the query used within has_table() and
has_sequence() to work with older versions of Firebird
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)
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) + "(+)"
"WHERE mytable.myid = myothertable.otherid(+)) anon_1 "
"WHERE thirdtable.userid = anon_1.myid(+)",
dialect=oracle.dialect(use_ansi=False))
+
+ q = select([table1.c.name]).where(table1.c.name=='foo')
+ self.assert_compile(q,
+ "SELECT mytable.name FROM mytable WHERE mytable.name = :name_1",
+ dialect=oracle.dialect(use_ansi=False))
+
+ subq = select([table3.c.otherstuff]).\
+ where(table3.c.otherstuff==table1.c.name).\
+ label('bar')
+ q = select([table1.c.name, subq])
+ self.assert_compile(q,
+ "SELECT mytable.name, "
+ "(SELECT thirdtable.otherstuff FROM thirdtable "
+ "WHERE thirdtable.otherstuff = mytable.name) AS bar FROM mytable",
+ dialect=oracle.dialect(use_ansi=False))
+
def test_alias_outer_join(self):
address_types = table('address_types',