aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Armbrust <michael@databricks.com>2015-10-08 10:22:06 -0700
committerMichael Armbrust <michael@databricks.com>2015-10-08 10:22:06 -0700
commit5c9fdf74e328c067388ba1109eb48bf9d128bcf4 (patch)
tree45015fb20326338d703b0670e03f1ac768f0d604
parente8f90d9dda3f87fef01c683462eac67aad750f60 (diff)
downloadspark-5c9fdf74e328c067388ba1109eb48bf9d128bcf4.tar.gz
spark-5c9fdf74e328c067388ba1109eb48bf9d128bcf4.tar.bz2
spark-5c9fdf74e328c067388ba1109eb48bf9d128bcf4.zip
[SPARK-10998] [SQL] Show non-children in default Expression.toString
Its pretty hard to debug problems with expressions when you can't see all the arguments. Before: `invoke()` After: `invoke(inputObject#1, intField, IntegerType)` Author: Michael Armbrust <michael@databricks.com> Closes #9022 from marmbrus/expressionToString.
-rw-r--r--sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Expression.scala8
1 files changed, 7 insertions, 1 deletions
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Expression.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Expression.scala
index 96284b9b42..96fcc799e5 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Expression.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Expression.scala
@@ -174,7 +174,13 @@ abstract class Expression extends TreeNode[Expression] {
}.toString
}
- override def toString: String = prettyName + children.mkString("(", ",", ")")
+
+ private def flatArguments = productIterator.flatMap {
+ case t: Traversable[_] => t
+ case single => single :: Nil
+ }
+
+ override def toString: String = prettyName + flatArguments.mkString("(", ",", ")")
}