Loading django/db/models/expressions.py +11 −0 Original line number Diff line number Diff line Loading @@ -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): """ Loading django/db/models/functions.py +2 −2 Original line number Diff line number Diff line Loading @@ -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 Loading Loading
django/db/models/expressions.py +11 −0 Original line number Diff line number Diff line Loading @@ -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): """ Loading
django/db/models/functions.py +2 −2 Original line number Diff line number Diff line Loading @@ -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 Loading