diff options
author | scwf <wangfei1@huawei.com> | 2015-05-18 12:05:14 -0700 |
---|---|---|
committer | Michael Armbrust <michael@databricks.com> | 2015-05-18 12:05:14 -0700 |
commit | fc2480ed13742a99470b5012ca3a75ab91e5a5e5 (patch) | |
tree | b63f21f908ab18029021b38bc33f90030b3aa6e0 | |
parent | aa31e431fc09f0477f1c2351c6275769a31aca90 (diff) | |
download | spark-fc2480ed13742a99470b5012ca3a75ab91e5a5e5.tar.gz spark-fc2480ed13742a99470b5012ca3a75ab91e5a5e5.tar.bz2 spark-fc2480ed13742a99470b5012ca3a75ab91e5a5e5.zip |
[SPARK-7631] [SQL] treenode argString should not print children
spark-sql>
> explain extended
> select * from (
> select key from src union all
> select key from src) t;
now the spark plan will print children in argString
```
== Physical Plan ==
Union[ HiveTableScan key#1, (MetastoreRelation default, src, None), None,
HiveTableScan key#3, (MetastoreRelation default, src, None), None]
HiveTableScan key#1, (MetastoreRelation default, src, None), None
HiveTableScan key#3, (MetastoreRelation default, src, None), None
```
after this patch:
```
== Physical Plan ==
Union
HiveTableScan [key#1], (MetastoreRelation default, src, None), None
HiveTableScan [key#3], (MetastoreRelation default, src, None), None
```
I have tested this locally
Author: scwf <wangfei1@huawei.com>
Closes #6144 from scwf/fix-argString and squashes the following commits:
1a642e0 [scwf] fix treenode argString
-rw-r--r-- | sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/trees/TreeNode.scala | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/trees/TreeNode.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/trees/TreeNode.scala index bc2ad34523..28e15566f0 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/trees/TreeNode.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/trees/TreeNode.scala @@ -385,6 +385,7 @@ abstract class TreeNode[BaseType <: TreeNode[BaseType]] { def argString: String = productIterator.flatMap { case tn: TreeNode[_] if children contains tn => Nil case tn: TreeNode[_] if tn.toString contains "\n" => s"(${tn.simpleString})" :: Nil + case seq: Seq[BaseType] if seq.toSet.subsetOf(children.toSet) => Nil case seq: Seq[_] => seq.mkString("[", ",", "]") :: Nil case set: Set[_] => set.mkString("{", ",", "}") :: Nil case other => other :: Nil |