func (expr *ArrayFlatten) Walk(v Visitor) Expr {
	if sq, changed := WalkExpr(v, expr.Subquery); changed {
		exprCopy := *expr
		exprCopy.Subquery = sq
		return &exprCopy
	}
	return expr
}
// Walk implements the Expr interface.
Walk implements the Expr interface.
// Walk implements the Expr interface .
func (expr *ArrayFlatten) Walk(v Visitor) Expr {
	if sq, changed := WalkExpr(v, expr.Subquery); changed {
		exprCopy := *expr
		exprCopy.Subquery = sq
		return &exprCopy
	}
	return expr
}
func ( expr * ArrayFlatten ) Walk ( v Visitor ) Expr { if sq , changed := WalkExpr ( v , expr . Subquery ) ; changed { exprCopy := * expr exprCopy . Subquery = sq return & exprCopy } return expr }
Walk implements the Expr interface.
Walk implements the Expr interface .