Refs #25517 -- Fixed backport inconsistencies.

This commit is contained in:
Josh Smeaton 2015-10-19 12:06:11 +11:00
parent 42e029f6c4
commit 61ea371822
2 changed files with 13 additions and 2 deletions

View File

@ -339,6 +339,17 @@ class BaseExpression(object):
def reverse_ordering(self):
return self
def flatten(self):
"""
Recursively yield this expression and all subexpressions, in
depth-first order.
"""
yield self
for expr in self.get_source_expressions():
if expr:
for inner_expr in expr.flatten():
yield inner_expr
class Expression(BaseExpression, Combinable):
"""

View File

@ -47,8 +47,8 @@ class ConcatPair(Func):
return super(ConcatPair, coalesced).as_sql(compiler, connection)
def as_mysql(self, compiler, connection):
self.coalesce()
return super(ConcatPair, self).as_sql(compiler, connection)
coalesced = self.coalesce()
return super(ConcatPair, coalesced).as_sql(compiler, connection)
def coalesce(self):
# null on either side results in null for expression, wrap with coalesce