[SPARK-16621][SQL] Generate stable SQLs in SQLBuilder

## What changes were proposed in this pull request?

Currently, the generated SQLs have not-stable IDs for generated attributes.
The stable generated SQL will give more benefit for understanding or testing 
the queries.
This PR provides stable SQL generation by the followings.

 - Provide unique ids for generated subqueries, `gen_subquery_xxx`.
 - Provide unique and stable ids for generated attributes, `gen_attr_xxx`.

**Before**
```scala
scala> new org.apache.spark.sql.catalyst.SQLBuilder(sql("select 1")).toSQL
res0: String = SELECT `gen_attr_0` AS `1` FROM (SELECT 1 AS `gen_attr_0`) AS 
gen_subquery_0
scala> new org.apache.spark.sql.catalyst.SQLBuilder(sql("select 1")).toSQL
res1: String = SELECT `gen_attr_4` AS `1` FROM (SELECT 1 AS `gen_attr_4`) AS 
gen_subquery_0
```

**After**
```scala
scala> new org.apache.spark.sql.catalyst.SQLBuilder(sql("select 1")).toSQL
res1: String = SELECT `gen_attr_0` AS `1` FROM (SELECT 1 AS `gen_attr_0`) AS 
gen_subquery_0
scala> new org.apache.spark.sql.catalyst.SQLBuilder(sql("select 1")).toSQL
res2: String = SELECT `gen_attr_0` AS `1` FROM (SELECT 1 AS `gen_attr_0`) AS 
gen_subquery_0
```

## How was this patch tested?

Pass the existing Jenkins tests.

Author: Dongjoon Hyun <dongj...@apache.org>

Closes #14257 from dongjoon-hyun/SPARK-16621.


Project: http://git-wip-us.apache.org/repos/asf/spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/5b8e848b
Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/5b8e848b
Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/5b8e848b

Branch: refs/heads/master
Commit: 5b8e848bbfbc0c99a5faf758e40b188b0bbebb7b
Parents: 738b4cc
Author: Dongjoon Hyun <dongj...@apache.org>
Authored: Wed Jul 27 13:23:59 2016 +0800
Committer: Cheng Lian <l...@databricks.com>
Committed: Wed Jul 27 13:23:59 2016 +0800

----------------------------------------------------------------------
 .../apache/spark/sql/catalyst/SQLBuilder.scala  | 23 +++++++++++++++-----
 sql/hive/src/test/resources/sqlgen/agg1.sql     |  2 +-
 sql/hive/src/test/resources/sqlgen/agg2.sql     |  2 +-
 sql/hive/src/test/resources/sqlgen/agg3.sql     |  2 +-
 .../sqlgen/aggregate_functions_and_window.sql   |  2 +-
 sql/hive/src/test/resources/sqlgen/case.sql     |  2 +-
 .../test/resources/sqlgen/case_with_else.sql    |  2 +-
 .../src/test/resources/sqlgen/case_with_key.sql |  2 +-
 .../resources/sqlgen/case_with_key_and_else.sql |  2 +-
 .../src/test/resources/sqlgen/cluster_by.sql    |  2 +-
 .../sqlgen/data_source_json_parquet_t0.sql      |  2 +-
 .../sqlgen/data_source_orc_parquet_t0.sql       |  2 +-
 .../sqlgen/data_source_parquet_parquet_t0.sql   |  2 +-
 .../resources/sqlgen/distinct_aggregation.sql   |  2 +-
 .../src/test/resources/sqlgen/distribute_by.sql |  2 +-
 .../sqlgen/distribute_by_with_sort_by.sql       |  2 +-
 sql/hive/src/test/resources/sqlgen/except.sql   |  2 +-
 .../resources/sqlgen/filter_after_subquery.sql  |  2 +-
 .../resources/sqlgen/generate_with_other_1.sql  |  2 +-
 .../resources/sqlgen/generate_with_other_2.sql  |  2 +-
 .../sqlgen/generator_in_lateral_view_1.sql      |  2 +-
 .../sqlgen/generator_in_lateral_view_2.sql      |  2 +-
 .../sqlgen/generator_non_referenced_table_1.sql |  2 +-
 .../sqlgen/generator_non_referenced_table_2.sql |  2 +-
 .../resources/sqlgen/generator_non_udtf_1.sql   |  2 +-
 .../resources/sqlgen/generator_non_udtf_2.sql   |  2 +-
 .../sqlgen/generator_referenced_table_1.sql     |  2 +-
 .../sqlgen/generator_referenced_table_2.sql     |  2 +-
 .../sqlgen/generator_with_ambiguous_names_1.sql |  2 +-
 .../sqlgen/generator_with_ambiguous_names_2.sql |  2 +-
 .../sqlgen/generator_without_from_1.sql         |  2 +-
 .../sqlgen/generator_without_from_2.sql         |  2 +-
 .../test/resources/sqlgen/grouping_sets_1.sql   |  2 +-
 .../test/resources/sqlgen/grouping_sets_2_1.sql |  2 +-
 .../test/resources/sqlgen/grouping_sets_2_2.sql |  2 +-
 .../test/resources/sqlgen/grouping_sets_2_3.sql |  2 +-
 .../test/resources/sqlgen/grouping_sets_2_4.sql |  2 +-
 .../test/resources/sqlgen/grouping_sets_2_5.sql |  2 +-
 sql/hive/src/test/resources/sqlgen/in.sql       |  2 +-
 .../src/test/resources/sqlgen/intersect.sql     |  2 +-
 .../src/test/resources/sqlgen/join_2_tables.sql |  2 +-
 .../resources/sqlgen/json_tuple_generator_1.sql |  2 +-
 .../resources/sqlgen/json_tuple_generator_2.sql |  2 +-
 .../test/resources/sqlgen/multi_distinct.sql    |  2 +-
 .../nested_generator_in_lateral_view_1.sql      |  2 +-
 .../nested_generator_in_lateral_view_2.sql      |  2 +-
 sql/hive/src/test/resources/sqlgen/not_in.sql   |  2 +-
 sql/hive/src/test/resources/sqlgen/not_like.sql |  2 +-
 .../resources/sqlgen/predicate_subquery.sql     |  2 +-
 .../sqlgen/regular_expressions_and_window.sql   |  2 +-
 .../test/resources/sqlgen/rollup_cube_1_1.sql   |  2 +-
 .../test/resources/sqlgen/rollup_cube_1_2.sql   |  2 +-
 .../test/resources/sqlgen/rollup_cube_2_1.sql   |  2 +-
 .../test/resources/sqlgen/rollup_cube_2_2.sql   |  2 +-
 .../test/resources/sqlgen/rollup_cube_3_1.sql   |  2 +-
 .../test/resources/sqlgen/rollup_cube_3_2.sql   |  2 +-
 .../test/resources/sqlgen/rollup_cube_4_1.sql   |  2 +-
 .../test/resources/sqlgen/rollup_cube_4_2.sql   |  2 +-
 .../test/resources/sqlgen/rollup_cube_5_1.sql   |  2 +-
 .../test/resources/sqlgen/rollup_cube_5_2.sql   |  2 +-
 .../test/resources/sqlgen/rollup_cube_6_1.sql   |  2 +-
 .../test/resources/sqlgen/rollup_cube_6_2.sql   |  2 +-
 .../test/resources/sqlgen/rollup_cube_6_3.sql   |  2 +-
 .../test/resources/sqlgen/rollup_cube_6_4.sql   |  2 +-
 .../test/resources/sqlgen/rollup_cube_6_5.sql   |  2 +-
 .../test/resources/sqlgen/rollup_cube_6_6.sql   |  2 +-
 .../test/resources/sqlgen/rollup_cube_7_1.sql   |  2 +-
 .../test/resources/sqlgen/rollup_cube_7_2.sql   |  2 +-
 .../test/resources/sqlgen/rollup_cube_7_3.sql   |  2 +-
 .../test/resources/sqlgen/rollup_cube_8_1.sql   |  2 +-
 .../test/resources/sqlgen/rollup_cube_8_2.sql   |  2 +-
 .../test/resources/sqlgen/rollup_cube_9_1.sql   |  2 +-
 .../test/resources/sqlgen/rollup_cube_9_2.sql   |  2 +-
 .../sqlgen/script_transformation_1.sql          |  2 +-
 .../sqlgen/script_transformation_2.sql          |  2 +-
 .../sqlgen/script_transformation_alias_list.sql |  2 +-
 ...ript_transformation_alias_list_with_type.sql |  2 +-
 ...cript_transformation_row_format_multiple.sql |  2 +-
 .../script_transformation_row_format_one.sql    |  2 +-
 .../script_transformation_row_format_serde.sql  |  2 +-
 ..._transformation_row_format_without_serde.sql |  2 +-
 .../test/resources/sqlgen/select_distinct.sql   |  2 +-
 .../test/resources/sqlgen/select_orc_table.sql  |  2 +-
 .../resources/sqlgen/select_parquet_table.sql   |  2 +-
 .../src/test/resources/sqlgen/self_join.sql     |  2 +-
 .../sqlgen/self_join_with_group_by.sql          |  2 +-
 .../resources/sqlgen/sort_by_after_having.sql   |  2 +-
 .../src/test/resources/sqlgen/tablesample_1.sql |  2 +-
 .../src/test/resources/sqlgen/tablesample_2.sql |  2 +-
 .../src/test/resources/sqlgen/tablesample_3.sql |  2 +-
 .../src/test/resources/sqlgen/tablesample_4.sql |  2 +-
 .../src/test/resources/sqlgen/tablesample_5.sql |  2 +-
 .../src/test/resources/sqlgen/tablesample_6.sql |  2 +-
 .../test/resources/sqlgen/three_child_union.sql |  2 +-
 .../src/test/resources/sqlgen/type_widening.sql |  2 +-
 .../test/resources/sqlgen/union_distinct.sql    |  2 +-
 .../test/resources/sqlgen/window_basic_1.sql    |  2 +-
 .../test/resources/sqlgen/window_basic_2.sql    |  2 +-
 .../test/resources/sqlgen/window_basic_3.sql    |  2 +-
 .../test/resources/sqlgen/window_with_join.sql  |  2 +-
 .../window_with_the_same_window_with_agg.sql    |  2 +-
 ...dow_with_the_same_window_with_agg_filter.sql |  2 +-
 ..._with_the_same_window_with_agg_functions.sql |  2 +-
 ...dow_with_the_same_window_with_agg_having.sql |  2 +-
 .../sql/catalyst/LogicalPlanToSQLSuite.scala    |  9 +++-----
 105 files changed, 124 insertions(+), 114 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/core/src/main/scala/org/apache/spark/sql/catalyst/SQLBuilder.scala
----------------------------------------------------------------------
diff --git 
a/sql/core/src/main/scala/org/apache/spark/sql/catalyst/SQLBuilder.scala 
b/sql/core/src/main/scala/org/apache/spark/sql/catalyst/SQLBuilder.scala
index 9a02e3c..5d93419 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/catalyst/SQLBuilder.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/catalyst/SQLBuilder.scala
@@ -19,6 +19,7 @@ package org.apache.spark.sql.catalyst
 
 import java.util.concurrent.atomic.AtomicLong
 
+import scala.collection.mutable.Map
 import scala.util.control.NonFatal
 
 import org.apache.spark.internal.Logging
@@ -38,14 +39,23 @@ import org.apache.spark.sql.types.{ByteType, DataType, 
IntegerType, NullType}
  * representations (e.g. logical plans that operate on local Scala 
collections), or are simply not
  * supported by this builder (yet).
  */
-class SQLBuilder(logicalPlan: LogicalPlan) extends Logging {
+class SQLBuilder private (
+    logicalPlan: LogicalPlan,
+    nextSubqueryId: AtomicLong,
+    nextGenAttrId: AtomicLong,
+    exprIdMap: Map[Long, Long]) extends Logging {
   require(logicalPlan.resolved,
     "SQLBuilder only supports resolved logical query plans. Current plan:\n" + 
logicalPlan)
 
+  def this(logicalPlan: LogicalPlan) =
+    this(logicalPlan, new AtomicLong(0), new AtomicLong(0), Map.empty[Long, 
Long])
+
   def this(df: Dataset[_]) = this(df.queryExecution.analyzed)
 
-  private val nextSubqueryId = new AtomicLong(0)
   private def newSubqueryName(): String = 
s"gen_subquery_${nextSubqueryId.getAndIncrement()}"
+  private def normalizedName(n: NamedExpression): String = synchronized {
+    "gen_attr_" + exprIdMap.getOrElseUpdate(n.exprId.id, 
nextGenAttrId.getAndIncrement())
+  }
 
   def toSQL: String = {
     val canonicalizedPlan = Canonicalizer.execute(logicalPlan)
@@ -70,7 +80,7 @@ class SQLBuilder(logicalPlan: LogicalPlan) extends Logging {
     try {
       val replaced = finalPlan.transformAllExpressions {
         case s: SubqueryExpression =>
-          val query = new SQLBuilder(s.query).toSQL
+          val query = new SQLBuilder(s.query, nextSubqueryId, nextGenAttrId, 
exprIdMap).toSQL
           val sql = s match {
             case _: ListQuery => query
             case _: Exists => s"EXISTS($query)"
@@ -169,6 +179,11 @@ class SQLBuilder(logicalPlan: LogicalPlan) extends Logging 
{
         qualifiedName + " TABLESAMPLE(" + fraction + " PERCENT)"
       }.getOrElse(qualifiedName)
 
+    case relation: CatalogRelation =>
+      val m = relation.catalogTable
+      val qualifiedName = 
s"${quoteIdentifier(m.database)}.${quoteIdentifier(m.identifier.table)}"
+      qualifiedName
+
     case Sort(orders, _, RepartitionByExpression(partitionExprs, child, _))
         if orders.map(_.child) == partitionExprs =>
       build(toSQL(child), "CLUSTER BY", partitionExprs.map(_.sql).mkString(", 
"))
@@ -376,8 +391,6 @@ class SQLBuilder(logicalPlan: LogicalPlan) extends Logging {
     )
   }
 
-  private def normalizedName(n: NamedExpression): String = "gen_attr_" + 
n.exprId.id
-
   object Canonicalizer extends RuleExecutor[LogicalPlan] {
     override protected def batches: Seq[Batch] = Seq(
       Batch("Prepare", FixedPoint(100),

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/agg1.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/agg1.sql 
b/sql/hive/src/test/resources/sqlgen/agg1.sql
index 9953640..05403a9 100644
--- a/sql/hive/src/test/resources/sqlgen/agg1.sql
+++ b/sql/hive/src/test/resources/sqlgen/agg1.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT COUNT(value) FROM parquet_t1 GROUP BY key HAVING MAX(key) > 0
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `count(value)` FROM (SELECT `gen_attr` FROM (SELECT 
count(`gen_attr`) AS `gen_attr`, max(`gen_attr`) AS `gen_attr` FROM (SELECT 
`key` AS `gen_attr`, `value` AS `gen_attr` FROM `default`.`parquet_t1`) AS 
gen_subquery_0 GROUP BY `gen_attr` HAVING (`gen_attr` > CAST(0 AS BIGINT))) AS 
gen_subquery_1) AS gen_subquery_2
+SELECT `gen_attr_0` AS `count(value)` FROM (SELECT `gen_attr_0` FROM (SELECT 
count(`gen_attr_3`) AS `gen_attr_0`, max(`gen_attr_2`) AS `gen_attr_1` FROM 
(SELECT `key` AS `gen_attr_2`, `value` AS `gen_attr_3` FROM 
`default`.`parquet_t1`) AS gen_subquery_0 GROUP BY `gen_attr_2` HAVING 
(`gen_attr_1` > CAST(0 AS BIGINT))) AS gen_subquery_1) AS gen_subquery_2

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/agg2.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/agg2.sql 
b/sql/hive/src/test/resources/sqlgen/agg2.sql
index 0caea28..65d7171 100644
--- a/sql/hive/src/test/resources/sqlgen/agg2.sql
+++ b/sql/hive/src/test/resources/sqlgen/agg2.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT COUNT(value) FROM parquet_t1 GROUP BY key ORDER BY MAX(key)
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `count(value)` FROM (SELECT `gen_attr` FROM (SELECT 
count(`gen_attr`) AS `gen_attr`, max(`gen_attr`) AS `gen_attr` FROM (SELECT 
`key` AS `gen_attr`, `value` AS `gen_attr` FROM `default`.`parquet_t1`) AS 
gen_subquery_0 GROUP BY `gen_attr` ORDER BY `gen_attr` ASC) AS gen_subquery_1) 
AS gen_subquery_2
+SELECT `gen_attr_0` AS `count(value)` FROM (SELECT `gen_attr_0` FROM (SELECT 
count(`gen_attr_3`) AS `gen_attr_0`, max(`gen_attr_2`) AS `gen_attr_1` FROM 
(SELECT `key` AS `gen_attr_2`, `value` AS `gen_attr_3` FROM 
`default`.`parquet_t1`) AS gen_subquery_0 GROUP BY `gen_attr_2` ORDER BY 
`gen_attr_1` ASC) AS gen_subquery_1) AS gen_subquery_2

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/agg3.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/agg3.sql 
b/sql/hive/src/test/resources/sqlgen/agg3.sql
index 437afa7..14b1939 100644
--- a/sql/hive/src/test/resources/sqlgen/agg3.sql
+++ b/sql/hive/src/test/resources/sqlgen/agg3.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT COUNT(value) FROM parquet_t1 GROUP BY key ORDER BY key, MAX(key)
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `count(value)` FROM (SELECT `gen_attr` FROM (SELECT 
count(`gen_attr`) AS `gen_attr`, `gen_attr` AS `gen_attr`, max(`gen_attr`) AS 
`gen_attr` FROM (SELECT `key` AS `gen_attr`, `value` AS `gen_attr` FROM 
`default`.`parquet_t1`) AS gen_subquery_0 GROUP BY `gen_attr` ORDER BY 
`gen_attr` ASC, `gen_attr` ASC) AS gen_subquery_1) AS gen_subquery_2
+SELECT `gen_attr_0` AS `count(value)` FROM (SELECT `gen_attr_0` FROM (SELECT 
count(`gen_attr_4`) AS `gen_attr_0`, `gen_attr_3` AS `gen_attr_1`, 
max(`gen_attr_3`) AS `gen_attr_2` FROM (SELECT `key` AS `gen_attr_3`, `value` 
AS `gen_attr_4` FROM `default`.`parquet_t1`) AS gen_subquery_0 GROUP BY 
`gen_attr_3` ORDER BY `gen_attr_1` ASC, `gen_attr_2` ASC) AS gen_subquery_1) AS 
gen_subquery_2

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/aggregate_functions_and_window.sql
----------------------------------------------------------------------
diff --git 
a/sql/hive/src/test/resources/sqlgen/aggregate_functions_and_window.sql 
b/sql/hive/src/test/resources/sqlgen/aggregate_functions_and_window.sql
index c94f53b..e3e372d 100644
--- a/sql/hive/src/test/resources/sqlgen/aggregate_functions_and_window.sql
+++ b/sql/hive/src/test/resources/sqlgen/aggregate_functions_and_window.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT MAX(c) + COUNT(a) OVER () FROM parquet_t2 GROUP BY a, b
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `(max(c) + count(a) OVER (ROWS BETWEEN UNBOUNDED 
PRECEDING AND UNBOUNDED FOLLOWING))` FROM (SELECT (`gen_attr` + `gen_attr`) AS 
`gen_attr` FROM (SELECT gen_subquery_1.`gen_attr`, gen_subquery_1.`gen_attr`, 
count(`gen_attr`) OVER (ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED 
FOLLOWING) AS `gen_attr` FROM (SELECT max(`gen_attr`) AS `gen_attr`, `gen_attr` 
FROM (SELECT `a` AS `gen_attr`, `b` AS `gen_attr`, `c` AS `gen_attr`, `d` AS 
`gen_attr` FROM `default`.`parquet_t2`) AS gen_subquery_0 GROUP BY `gen_attr`, 
`gen_attr`) AS gen_subquery_1) AS gen_subquery_2) AS gen_subquery_3
+SELECT `gen_attr_0` AS `(max(c) + count(a) OVER (ROWS BETWEEN UNBOUNDED 
PRECEDING AND UNBOUNDED FOLLOWING))` FROM (SELECT (`gen_attr_1` + `gen_attr_2`) 
AS `gen_attr_0` FROM (SELECT gen_subquery_1.`gen_attr_1`, 
gen_subquery_1.`gen_attr_3`, count(`gen_attr_3`) OVER (ROWS BETWEEN UNBOUNDED 
PRECEDING AND UNBOUNDED FOLLOWING) AS `gen_attr_2` FROM (SELECT 
max(`gen_attr_5`) AS `gen_attr_1`, `gen_attr_3` FROM (SELECT `a` AS 
`gen_attr_3`, `b` AS `gen_attr_4`, `c` AS `gen_attr_5`, `d` AS `gen_attr_6` 
FROM `default`.`parquet_t2`) AS gen_subquery_0 GROUP BY `gen_attr_3`, 
`gen_attr_4`) AS gen_subquery_1) AS gen_subquery_2) AS gen_subquery_3

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/case.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/case.sql 
b/sql/hive/src/test/resources/sqlgen/case.sql
index f6a8c32..99630e8 100644
--- a/sql/hive/src/test/resources/sqlgen/case.sql
+++ b/sql/hive/src/test/resources/sqlgen/case.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT CASE WHEN id % 2 > 0 THEN 0 WHEN id % 2 = 0 THEN 1 END FROM parquet_t0
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `CASE WHEN ((id % CAST(2 AS BIGINT)) > CAST(0 AS BIGINT)) 
THEN 0 WHEN ((id % CAST(2 AS BIGINT)) = CAST(0 AS BIGINT)) THEN 1 END` FROM 
(SELECT CASE WHEN ((`gen_attr` % CAST(2 AS BIGINT)) > CAST(0 AS BIGINT)) THEN 0 
WHEN ((`gen_attr` % CAST(2 AS BIGINT)) = CAST(0 AS BIGINT)) THEN 1 END AS 
`gen_attr` FROM (SELECT `id` AS `gen_attr` FROM `default`.`parquet_t0`) AS 
gen_subquery_0) AS gen_subquery_1
+SELECT `gen_attr_0` AS `CASE WHEN ((id % CAST(2 AS BIGINT)) > CAST(0 AS 
BIGINT)) THEN 0 WHEN ((id % CAST(2 AS BIGINT)) = CAST(0 AS BIGINT)) THEN 1 END` 
FROM (SELECT CASE WHEN ((`gen_attr_1` % CAST(2 AS BIGINT)) > CAST(0 AS BIGINT)) 
THEN 0 WHEN ((`gen_attr_1` % CAST(2 AS BIGINT)) = CAST(0 AS BIGINT)) THEN 1 END 
AS `gen_attr_0` FROM (SELECT `id` AS `gen_attr_1` FROM `default`.`parquet_t0`) 
AS gen_subquery_0) AS gen_subquery_1

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/case_with_else.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/case_with_else.sql 
b/sql/hive/src/test/resources/sqlgen/case_with_else.sql
index 8f1595d..aed8f08 100644
--- a/sql/hive/src/test/resources/sqlgen/case_with_else.sql
+++ b/sql/hive/src/test/resources/sqlgen/case_with_else.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT CASE WHEN id % 2 > 0 THEN 0 ELSE 1 END FROM parquet_t0
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `CASE WHEN ((id % CAST(2 AS BIGINT)) > CAST(0 AS BIGINT)) 
THEN 0 ELSE 1 END` FROM (SELECT CASE WHEN ((`gen_attr` % CAST(2 AS BIGINT)) > 
CAST(0 AS BIGINT)) THEN 0 ELSE 1 END AS `gen_attr` FROM (SELECT `id` AS 
`gen_attr` FROM `default`.`parquet_t0`) AS gen_subquery_0) AS gen_subquery_1
+SELECT `gen_attr_0` AS `CASE WHEN ((id % CAST(2 AS BIGINT)) > CAST(0 AS 
BIGINT)) THEN 0 ELSE 1 END` FROM (SELECT CASE WHEN ((`gen_attr_1` % CAST(2 AS 
BIGINT)) > CAST(0 AS BIGINT)) THEN 0 ELSE 1 END AS `gen_attr_0` FROM (SELECT 
`id` AS `gen_attr_1` FROM `default`.`parquet_t0`) AS gen_subquery_0) AS 
gen_subquery_1

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/case_with_key.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/case_with_key.sql 
b/sql/hive/src/test/resources/sqlgen/case_with_key.sql
index 88353e3..dff65f1 100644
--- a/sql/hive/src/test/resources/sqlgen/case_with_key.sql
+++ b/sql/hive/src/test/resources/sqlgen/case_with_key.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT CASE id WHEN 0 THEN 'foo' WHEN 1 THEN 'bar' END FROM parquet_t0
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `CASE WHEN (id = CAST(0 AS BIGINT)) THEN foo WHEN (id = 
CAST(1 AS BIGINT)) THEN bar END` FROM (SELECT CASE WHEN (`gen_attr` = CAST(0 AS 
BIGINT)) THEN "foo" WHEN (`gen_attr` = CAST(1 AS BIGINT)) THEN "bar" END AS 
`gen_attr` FROM (SELECT `id` AS `gen_attr` FROM `default`.`parquet_t0`) AS 
gen_subquery_0) AS gen_subquery_1
+SELECT `gen_attr_0` AS `CASE WHEN (id = CAST(0 AS BIGINT)) THEN foo WHEN (id = 
CAST(1 AS BIGINT)) THEN bar END` FROM (SELECT CASE WHEN (`gen_attr_1` = CAST(0 
AS BIGINT)) THEN "foo" WHEN (`gen_attr_1` = CAST(1 AS BIGINT)) THEN "bar" END 
AS `gen_attr_0` FROM (SELECT `id` AS `gen_attr_1` FROM `default`.`parquet_t0`) 
AS gen_subquery_0) AS gen_subquery_1

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/case_with_key_and_else.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/case_with_key_and_else.sql 
b/sql/hive/src/test/resources/sqlgen/case_with_key_and_else.sql
index bc44f25..af3e169 100644
--- a/sql/hive/src/test/resources/sqlgen/case_with_key_and_else.sql
+++ b/sql/hive/src/test/resources/sqlgen/case_with_key_and_else.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT CASE id WHEN 0 THEN 'foo' WHEN 1 THEN 'bar' ELSE 'baz' END FROM 
parquet_t0
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `CASE WHEN (id = CAST(0 AS BIGINT)) THEN foo WHEN (id = 
CAST(1 AS BIGINT)) THEN bar ELSE baz END` FROM (SELECT CASE WHEN (`gen_attr` = 
CAST(0 AS BIGINT)) THEN "foo" WHEN (`gen_attr` = CAST(1 AS BIGINT)) THEN "bar" 
ELSE "baz" END AS `gen_attr` FROM (SELECT `id` AS `gen_attr` FROM 
`default`.`parquet_t0`) AS gen_subquery_0) AS gen_subquery_1
+SELECT `gen_attr_0` AS `CASE WHEN (id = CAST(0 AS BIGINT)) THEN foo WHEN (id = 
CAST(1 AS BIGINT)) THEN bar ELSE baz END` FROM (SELECT CASE WHEN (`gen_attr_1` 
= CAST(0 AS BIGINT)) THEN "foo" WHEN (`gen_attr_1` = CAST(1 AS BIGINT)) THEN 
"bar" ELSE "baz" END AS `gen_attr_0` FROM (SELECT `id` AS `gen_attr_1` FROM 
`default`.`parquet_t0`) AS gen_subquery_0) AS gen_subquery_1

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/cluster_by.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/cluster_by.sql 
b/sql/hive/src/test/resources/sqlgen/cluster_by.sql
index 3bc1dfc..3154791 100644
--- a/sql/hive/src/test/resources/sqlgen/cluster_by.sql
+++ b/sql/hive/src/test/resources/sqlgen/cluster_by.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT id FROM parquet_t0 CLUSTER BY id
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `id` FROM (SELECT `gen_attr` FROM (SELECT `id` AS 
`gen_attr` FROM `default`.`parquet_t0`) AS gen_subquery_0 CLUSTER BY 
`gen_attr`) AS parquet_t0
+SELECT `gen_attr_0` AS `id` FROM (SELECT `gen_attr_0` FROM (SELECT `id` AS 
`gen_attr_0` FROM `default`.`parquet_t0`) AS gen_subquery_0 CLUSTER BY 
`gen_attr_0`) AS parquet_t0

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/data_source_json_parquet_t0.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/data_source_json_parquet_t0.sql 
b/sql/hive/src/test/resources/sqlgen/data_source_json_parquet_t0.sql
index a4f46da..e41b645 100644
--- a/sql/hive/src/test/resources/sqlgen/data_source_json_parquet_t0.sql
+++ b/sql/hive/src/test/resources/sqlgen/data_source_json_parquet_t0.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT id FROM json_parquet_t0
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `id` FROM (SELECT `gen_attr` FROM (SELECT `id` AS 
`gen_attr` FROM `default`.`json_parquet_t0`) AS gen_subquery_0) AS 
json_parquet_t0
+SELECT `gen_attr_0` AS `id` FROM (SELECT `gen_attr_0` FROM (SELECT `id` AS 
`gen_attr_0` FROM `default`.`json_parquet_t0`) AS gen_subquery_0) AS 
json_parquet_t0

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/data_source_orc_parquet_t0.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/data_source_orc_parquet_t0.sql 
b/sql/hive/src/test/resources/sqlgen/data_source_orc_parquet_t0.sql
index 214dbcf..f5ceccd 100644
--- a/sql/hive/src/test/resources/sqlgen/data_source_orc_parquet_t0.sql
+++ b/sql/hive/src/test/resources/sqlgen/data_source_orc_parquet_t0.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT id FROM orc_parquet_t0
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `id` FROM (SELECT `gen_attr` FROM (SELECT `id` AS 
`gen_attr` FROM `default`.`orc_parquet_t0`) AS gen_subquery_0) AS orc_parquet_t0
+SELECT `gen_attr_0` AS `id` FROM (SELECT `gen_attr_0` FROM (SELECT `id` AS 
`gen_attr_0` FROM `default`.`orc_parquet_t0`) AS gen_subquery_0) AS 
orc_parquet_t0

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/data_source_parquet_parquet_t0.sql
----------------------------------------------------------------------
diff --git 
a/sql/hive/src/test/resources/sqlgen/data_source_parquet_parquet_t0.sql 
b/sql/hive/src/test/resources/sqlgen/data_source_parquet_parquet_t0.sql
index eccf03e..2bccefe 100644
--- a/sql/hive/src/test/resources/sqlgen/data_source_parquet_parquet_t0.sql
+++ b/sql/hive/src/test/resources/sqlgen/data_source_parquet_parquet_t0.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT id FROM parquet_parquet_t0
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `id` FROM (SELECT `gen_attr` FROM (SELECT `id` AS 
`gen_attr` FROM `default`.`parquet_parquet_t0`) AS gen_subquery_0) AS 
parquet_parquet_t0
+SELECT `gen_attr_0` AS `id` FROM (SELECT `gen_attr_0` FROM (SELECT `id` AS 
`gen_attr_0` FROM `default`.`parquet_parquet_t0`) AS gen_subquery_0) AS 
parquet_parquet_t0

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/distinct_aggregation.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/distinct_aggregation.sql 
b/sql/hive/src/test/resources/sqlgen/distinct_aggregation.sql
index 0fa21ad..bced711 100644
--- a/sql/hive/src/test/resources/sqlgen/distinct_aggregation.sql
+++ b/sql/hive/src/test/resources/sqlgen/distinct_aggregation.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT COUNT(DISTINCT id) FROM parquet_t0
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `count(DISTINCT id)` FROM (SELECT count(DISTINCT 
`gen_attr`) AS `gen_attr` FROM (SELECT `id` AS `gen_attr` FROM 
`default`.`parquet_t0`) AS gen_subquery_0) AS gen_subquery_1
+SELECT `gen_attr_0` AS `count(DISTINCT id)` FROM (SELECT count(DISTINCT 
`gen_attr_1`) AS `gen_attr_0` FROM (SELECT `id` AS `gen_attr_1` FROM 
`default`.`parquet_t0`) AS gen_subquery_0) AS gen_subquery_1

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/distribute_by.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/distribute_by.sql 
b/sql/hive/src/test/resources/sqlgen/distribute_by.sql
index 75a1a2a..72863dc 100644
--- a/sql/hive/src/test/resources/sqlgen/distribute_by.sql
+++ b/sql/hive/src/test/resources/sqlgen/distribute_by.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT id FROM parquet_t0 DISTRIBUTE BY id
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `id` FROM (SELECT `gen_attr` FROM (SELECT `id` AS 
`gen_attr` FROM `default`.`parquet_t0`) AS gen_subquery_0 DISTRIBUTE BY 
`gen_attr`) AS parquet_t0
+SELECT `gen_attr_0` AS `id` FROM (SELECT `gen_attr_0` FROM (SELECT `id` AS 
`gen_attr_0` FROM `default`.`parquet_t0`) AS gen_subquery_0 DISTRIBUTE BY 
`gen_attr_0`) AS parquet_t0

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/distribute_by_with_sort_by.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/distribute_by_with_sort_by.sql 
b/sql/hive/src/test/resources/sqlgen/distribute_by_with_sort_by.sql
index a8e766e..96b9b2d 100644
--- a/sql/hive/src/test/resources/sqlgen/distribute_by_with_sort_by.sql
+++ b/sql/hive/src/test/resources/sqlgen/distribute_by_with_sort_by.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT id FROM parquet_t0 DISTRIBUTE BY id SORT BY id
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `id` FROM (SELECT `gen_attr` FROM (SELECT `id` AS 
`gen_attr` FROM `default`.`parquet_t0`) AS gen_subquery_0 CLUSTER BY 
`gen_attr`) AS parquet_t0
+SELECT `gen_attr_0` AS `id` FROM (SELECT `gen_attr_0` FROM (SELECT `id` AS 
`gen_attr_0` FROM `default`.`parquet_t0`) AS gen_subquery_0 CLUSTER BY 
`gen_attr_0`) AS parquet_t0

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/except.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/except.sql 
b/sql/hive/src/test/resources/sqlgen/except.sql
index b1c6428..7a7d27f 100644
--- a/sql/hive/src/test/resources/sqlgen/except.sql
+++ b/sql/hive/src/test/resources/sqlgen/except.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT * FROM t0 EXCEPT SELECT * FROM t0
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `id` FROM ((SELECT `gen_attr` FROM (SELECT `id` AS 
`gen_attr` FROM `default`.`t0`) AS gen_subquery_0 ) EXCEPT ( SELECT `gen_attr` 
FROM (SELECT `id` AS `gen_attr` FROM `default`.`t0`) AS gen_subquery_1)) AS t0
+SELECT `gen_attr_0` AS `id` FROM ((SELECT `gen_attr_0` FROM (SELECT `id` AS 
`gen_attr_0` FROM `default`.`t0`) AS gen_subquery_0 ) EXCEPT ( SELECT 
`gen_attr_1` FROM (SELECT `id` AS `gen_attr_1` FROM `default`.`t0`) AS 
gen_subquery_1)) AS t0

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/filter_after_subquery.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/filter_after_subquery.sql 
b/sql/hive/src/test/resources/sqlgen/filter_after_subquery.sql
index 0156dff..9cd6514 100644
--- a/sql/hive/src/test/resources/sqlgen/filter_after_subquery.sql
+++ b/sql/hive/src/test/resources/sqlgen/filter_after_subquery.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT a FROM (SELECT key + 1 AS a FROM parquet_t1) t WHERE a > 5
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `a` FROM (SELECT `gen_attr` FROM (SELECT (`gen_attr` + 
CAST(1 AS BIGINT)) AS `gen_attr` FROM (SELECT `key` AS `gen_attr`, `value` AS 
`gen_attr` FROM `default`.`parquet_t1`) AS gen_subquery_0) AS t WHERE 
(`gen_attr` > CAST(5 AS BIGINT))) AS t
+SELECT `gen_attr_0` AS `a` FROM (SELECT `gen_attr_0` FROM (SELECT 
(`gen_attr_1` + CAST(1 AS BIGINT)) AS `gen_attr_0` FROM (SELECT `key` AS 
`gen_attr_1`, `value` AS `gen_attr_2` FROM `default`.`parquet_t1`) AS 
gen_subquery_0) AS t WHERE (`gen_attr_0` > CAST(5 AS BIGINT))) AS t

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/generate_with_other_1.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/generate_with_other_1.sql 
b/sql/hive/src/test/resources/sqlgen/generate_with_other_1.sql
index 15d23c6..805197a 100644
--- a/sql/hive/src/test/resources/sqlgen/generate_with_other_1.sql
+++ b/sql/hive/src/test/resources/sqlgen/generate_with_other_1.sql
@@ -5,4 +5,4 @@ WHERE id > 2
 ORDER BY val, id
 LIMIT 5
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `val`, `gen_attr` AS `id` FROM (SELECT `gen_attr`, 
`gen_attr` FROM (SELECT gen_subquery_0.`gen_attr`, gen_subquery_0.`gen_attr`, 
gen_subquery_0.`gen_attr`, gen_subquery_0.`gen_attr` FROM (SELECT `arr` AS 
`gen_attr`, `arr2` AS `gen_attr`, `json` AS `gen_attr`, `id` AS `gen_attr` FROM 
`default`.`parquet_t3`) AS gen_subquery_0 WHERE (`gen_attr` > CAST(2 AS 
BIGINT))) AS gen_subquery_1 LATERAL VIEW explode(`gen_attr`) gen_subquery_2 AS 
`gen_attr` ORDER BY `gen_attr` ASC, `gen_attr` ASC LIMIT 5) AS parquet_t3
+SELECT `gen_attr_0` AS `val`, `gen_attr_1` AS `id` FROM (SELECT `gen_attr_0`, 
`gen_attr_1` FROM (SELECT gen_subquery_0.`gen_attr_2`, 
gen_subquery_0.`gen_attr_3`, gen_subquery_0.`gen_attr_4`, 
gen_subquery_0.`gen_attr_1` FROM (SELECT `arr` AS `gen_attr_2`, `arr2` AS 
`gen_attr_3`, `json` AS `gen_attr_4`, `id` AS `gen_attr_1` FROM 
`default`.`parquet_t3`) AS gen_subquery_0 WHERE (`gen_attr_1` > CAST(2 AS 
BIGINT))) AS gen_subquery_1 LATERAL VIEW explode(`gen_attr_2`) gen_subquery_2 
AS `gen_attr_0` ORDER BY `gen_attr_0` ASC, `gen_attr_1` ASC LIMIT 5) AS 
parquet_t3

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/generate_with_other_2.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/generate_with_other_2.sql 
b/sql/hive/src/test/resources/sqlgen/generate_with_other_2.sql
index e2b94ce..ef9a596 100644
--- a/sql/hive/src/test/resources/sqlgen/generate_with_other_2.sql
+++ b/sql/hive/src/test/resources/sqlgen/generate_with_other_2.sql
@@ -7,4 +7,4 @@ WHERE val > 2
 ORDER BY val, id
 LIMIT 5
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `val`, `gen_attr` AS `id` FROM (SELECT `gen_attr`, 
`gen_attr` FROM (SELECT `arr` AS `gen_attr`, `arr2` AS `gen_attr`, `json` AS 
`gen_attr`, `id` AS `gen_attr` FROM `default`.`parquet_t3`) AS gen_subquery_0 
LATERAL VIEW explode(`gen_attr`) gen_subquery_2 AS `gen_attr` LATERAL VIEW 
explode(`gen_attr`) gen_subquery_3 AS `gen_attr` WHERE (`gen_attr` > CAST(2 AS 
BIGINT)) ORDER BY `gen_attr` ASC, `gen_attr` ASC LIMIT 5) AS gen_subquery_1
+SELECT `gen_attr_0` AS `val`, `gen_attr_1` AS `id` FROM (SELECT `gen_attr_0`, 
`gen_attr_1` FROM (SELECT `arr` AS `gen_attr_4`, `arr2` AS `gen_attr_3`, `json` 
AS `gen_attr_5`, `id` AS `gen_attr_1` FROM `default`.`parquet_t3`) AS 
gen_subquery_0 LATERAL VIEW explode(`gen_attr_3`) gen_subquery_2 AS 
`gen_attr_2` LATERAL VIEW explode(`gen_attr_2`) gen_subquery_3 AS `gen_attr_0` 
WHERE (`gen_attr_0` > CAST(2 AS BIGINT)) ORDER BY `gen_attr_0` ASC, 
`gen_attr_1` ASC LIMIT 5) AS gen_subquery_1

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/generator_in_lateral_view_1.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/generator_in_lateral_view_1.sql 
b/sql/hive/src/test/resources/sqlgen/generator_in_lateral_view_1.sql
index c62b895..2f6596e 100644
--- a/sql/hive/src/test/resources/sqlgen/generator_in_lateral_view_1.sql
+++ b/sql/hive/src/test/resources/sqlgen/generator_in_lateral_view_1.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT val, id FROM parquet_t3 LATERAL VIEW EXPLODE(arr) exp AS val
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `val`, `gen_attr` AS `id` FROM (SELECT `gen_attr`, 
`gen_attr` FROM (SELECT `arr` AS `gen_attr`, `arr2` AS `gen_attr`, `json` AS 
`gen_attr`, `id` AS `gen_attr` FROM `default`.`parquet_t3`) AS gen_subquery_0 
LATERAL VIEW explode(`gen_attr`) gen_subquery_2 AS `gen_attr`) AS gen_subquery_1
+SELECT `gen_attr_0` AS `val`, `gen_attr_1` AS `id` FROM (SELECT `gen_attr_0`, 
`gen_attr_1` FROM (SELECT `arr` AS `gen_attr_2`, `arr2` AS `gen_attr_3`, `json` 
AS `gen_attr_4`, `id` AS `gen_attr_1` FROM `default`.`parquet_t3`) AS 
gen_subquery_0 LATERAL VIEW explode(`gen_attr_2`) gen_subquery_2 AS 
`gen_attr_0`) AS gen_subquery_1

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/generator_in_lateral_view_2.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/generator_in_lateral_view_2.sql 
b/sql/hive/src/test/resources/sqlgen/generator_in_lateral_view_2.sql
index 4c68eef..239980d 100644
--- a/sql/hive/src/test/resources/sqlgen/generator_in_lateral_view_2.sql
+++ b/sql/hive/src/test/resources/sqlgen/generator_in_lateral_view_2.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT val, id FROM parquet_t3 LATERAL VIEW OUTER EXPLODE(arr) exp AS val
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `val`, `gen_attr` AS `id` FROM (SELECT `gen_attr`, 
`gen_attr` FROM (SELECT `arr` AS `gen_attr`, `arr2` AS `gen_attr`, `json` AS 
`gen_attr`, `id` AS `gen_attr` FROM `default`.`parquet_t3`) AS gen_subquery_0 
LATERAL VIEW OUTER explode(`gen_attr`) gen_subquery_2 AS `gen_attr`) AS 
gen_subquery_1
+SELECT `gen_attr_0` AS `val`, `gen_attr_1` AS `id` FROM (SELECT `gen_attr_0`, 
`gen_attr_1` FROM (SELECT `arr` AS `gen_attr_2`, `arr2` AS `gen_attr_3`, `json` 
AS `gen_attr_4`, `id` AS `gen_attr_1` FROM `default`.`parquet_t3`) AS 
gen_subquery_0 LATERAL VIEW OUTER explode(`gen_attr_2`) gen_subquery_2 AS 
`gen_attr_0`) AS gen_subquery_1

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/generator_non_referenced_table_1.sql
----------------------------------------------------------------------
diff --git 
a/sql/hive/src/test/resources/sqlgen/generator_non_referenced_table_1.sql 
b/sql/hive/src/test/resources/sqlgen/generator_non_referenced_table_1.sql
index 059c45e..7fe0298 100644
--- a/sql/hive/src/test/resources/sqlgen/generator_non_referenced_table_1.sql
+++ b/sql/hive/src/test/resources/sqlgen/generator_non_referenced_table_1.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT EXPLODE(ARRAY(1,2,3)) FROM t0
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `col` FROM (SELECT `gen_attr` FROM (SELECT `id` AS 
`gen_attr` FROM `default`.`t0`) AS gen_subquery_0 LATERAL VIEW explode(array(1, 
2, 3)) gen_subquery_2 AS `gen_attr`) AS gen_subquery_1
+SELECT `gen_attr_0` AS `col` FROM (SELECT `gen_attr_0` FROM (SELECT `id` AS 
`gen_attr_1` FROM `default`.`t0`) AS gen_subquery_0 LATERAL VIEW 
explode(array(1, 2, 3)) gen_subquery_2 AS `gen_attr_0`) AS gen_subquery_1

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/generator_non_referenced_table_2.sql
----------------------------------------------------------------------
diff --git 
a/sql/hive/src/test/resources/sqlgen/generator_non_referenced_table_2.sql 
b/sql/hive/src/test/resources/sqlgen/generator_non_referenced_table_2.sql
index 8f03ded..8db834a 100644
--- a/sql/hive/src/test/resources/sqlgen/generator_non_referenced_table_2.sql
+++ b/sql/hive/src/test/resources/sqlgen/generator_non_referenced_table_2.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT EXPLODE(ARRAY(1,2,3)) AS val FROM t0
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `val` FROM (SELECT `gen_attr` FROM (SELECT `id` AS 
`gen_attr` FROM `default`.`t0`) AS gen_subquery_0 LATERAL VIEW explode(array(1, 
2, 3)) gen_subquery_2 AS `gen_attr`) AS gen_subquery_1
+SELECT `gen_attr_0` AS `val` FROM (SELECT `gen_attr_0` FROM (SELECT `id` AS 
`gen_attr_1` FROM `default`.`t0`) AS gen_subquery_0 LATERAL VIEW 
explode(array(1, 2, 3)) gen_subquery_2 AS `gen_attr_0`) AS gen_subquery_1

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/generator_non_udtf_1.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/generator_non_udtf_1.sql 
b/sql/hive/src/test/resources/sqlgen/generator_non_udtf_1.sql
index 0bfe380..fef65e0 100644
--- a/sql/hive/src/test/resources/sqlgen/generator_non_udtf_1.sql
+++ b/sql/hive/src/test/resources/sqlgen/generator_non_udtf_1.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT EXPLODE(arr), id FROM parquet_t3
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `col`, `gen_attr` AS `id` FROM (SELECT `gen_attr`, 
`gen_attr` FROM (SELECT `arr` AS `gen_attr`, `arr2` AS `gen_attr`, `json` AS 
`gen_attr`, `id` AS `gen_attr` FROM `default`.`parquet_t3`) AS gen_subquery_0 
LATERAL VIEW explode(`gen_attr`) gen_subquery_1 AS `gen_attr`) AS parquet_t3
+SELECT `gen_attr_0` AS `col`, `gen_attr_1` AS `id` FROM (SELECT `gen_attr_0`, 
`gen_attr_1` FROM (SELECT `arr` AS `gen_attr_2`, `arr2` AS `gen_attr_3`, `json` 
AS `gen_attr_4`, `id` AS `gen_attr_1` FROM `default`.`parquet_t3`) AS 
gen_subquery_0 LATERAL VIEW explode(`gen_attr_2`) gen_subquery_1 AS 
`gen_attr_0`) AS parquet_t3

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/generator_non_udtf_2.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/generator_non_udtf_2.sql 
b/sql/hive/src/test/resources/sqlgen/generator_non_udtf_2.sql
index e4edb68..e0e3108 100644
--- a/sql/hive/src/test/resources/sqlgen/generator_non_udtf_2.sql
+++ b/sql/hive/src/test/resources/sqlgen/generator_non_udtf_2.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT EXPLODE(arr) AS val, id as a FROM parquet_t3
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `val`, `gen_attr` AS `a` FROM (SELECT `gen_attr`, 
`gen_attr` AS `gen_attr` FROM (SELECT `arr` AS `gen_attr`, `arr2` AS 
`gen_attr`, `json` AS `gen_attr`, `id` AS `gen_attr` FROM 
`default`.`parquet_t3`) AS gen_subquery_0 LATERAL VIEW explode(`gen_attr`) 
gen_subquery_2 AS `gen_attr`) AS gen_subquery_1
+SELECT `gen_attr_0` AS `val`, `gen_attr_1` AS `a` FROM (SELECT `gen_attr_0`, 
`gen_attr_2` AS `gen_attr_1` FROM (SELECT `arr` AS `gen_attr_3`, `arr2` AS 
`gen_attr_4`, `json` AS `gen_attr_5`, `id` AS `gen_attr_2` FROM 
`default`.`parquet_t3`) AS gen_subquery_0 LATERAL VIEW explode(`gen_attr_3`) 
gen_subquery_2 AS `gen_attr_0`) AS gen_subquery_1

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/generator_referenced_table_1.sql
----------------------------------------------------------------------
diff --git 
a/sql/hive/src/test/resources/sqlgen/generator_referenced_table_1.sql 
b/sql/hive/src/test/resources/sqlgen/generator_referenced_table_1.sql
index 5cf57f8..ea5db85 100644
--- a/sql/hive/src/test/resources/sqlgen/generator_referenced_table_1.sql
+++ b/sql/hive/src/test/resources/sqlgen/generator_referenced_table_1.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT EXPLODE(arr) FROM parquet_t3
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `col` FROM (SELECT `gen_attr` FROM (SELECT `arr` AS 
`gen_attr`, `arr2` AS `gen_attr`, `json` AS `gen_attr`, `id` AS `gen_attr` FROM 
`default`.`parquet_t3`) AS gen_subquery_0 LATERAL VIEW explode(`gen_attr`) 
gen_subquery_2 AS `gen_attr`) AS gen_subquery_1
+SELECT `gen_attr_0` AS `col` FROM (SELECT `gen_attr_0` FROM (SELECT `arr` AS 
`gen_attr_1`, `arr2` AS `gen_attr_2`, `json` AS `gen_attr_3`, `id` AS 
`gen_attr_4` FROM `default`.`parquet_t3`) AS gen_subquery_0 LATERAL VIEW 
explode(`gen_attr_1`) gen_subquery_2 AS `gen_attr_0`) AS gen_subquery_1

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/generator_referenced_table_2.sql
----------------------------------------------------------------------
diff --git 
a/sql/hive/src/test/resources/sqlgen/generator_referenced_table_2.sql 
b/sql/hive/src/test/resources/sqlgen/generator_referenced_table_2.sql
index ed42894..8f75b82 100644
--- a/sql/hive/src/test/resources/sqlgen/generator_referenced_table_2.sql
+++ b/sql/hive/src/test/resources/sqlgen/generator_referenced_table_2.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT EXPLODE(arr) AS val FROM parquet_t3
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `val` FROM (SELECT `gen_attr` FROM (SELECT `arr` AS 
`gen_attr`, `arr2` AS `gen_attr`, `json` AS `gen_attr`, `id` AS `gen_attr` FROM 
`default`.`parquet_t3`) AS gen_subquery_0 LATERAL VIEW explode(`gen_attr`) 
gen_subquery_2 AS `gen_attr`) AS gen_subquery_1
+SELECT `gen_attr_0` AS `val` FROM (SELECT `gen_attr_0` FROM (SELECT `arr` AS 
`gen_attr_1`, `arr2` AS `gen_attr_2`, `json` AS `gen_attr_3`, `id` AS 
`gen_attr_4` FROM `default`.`parquet_t3`) AS gen_subquery_0 LATERAL VIEW 
explode(`gen_attr_1`) gen_subquery_2 AS `gen_attr_0`) AS gen_subquery_1

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/generator_with_ambiguous_names_1.sql
----------------------------------------------------------------------
diff --git 
a/sql/hive/src/test/resources/sqlgen/generator_with_ambiguous_names_1.sql 
b/sql/hive/src/test/resources/sqlgen/generator_with_ambiguous_names_1.sql
index 5a4aec9..984cce8 100644
--- a/sql/hive/src/test/resources/sqlgen/generator_with_ambiguous_names_1.sql
+++ b/sql/hive/src/test/resources/sqlgen/generator_with_ambiguous_names_1.sql
@@ -3,4 +3,4 @@ SELECT exp.id, parquet_t3.id
 FROM parquet_t3
 LATERAL VIEW EXPLODE(arr) exp AS id
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `id`, `gen_attr` AS `id` FROM (SELECT `gen_attr`, 
`gen_attr` FROM (SELECT `arr` AS `gen_attr`, `arr2` AS `gen_attr`, `json` AS 
`gen_attr`, `id` AS `gen_attr` FROM `default`.`parquet_t3`) AS gen_subquery_0 
LATERAL VIEW explode(`gen_attr`) gen_subquery_2 AS `gen_attr`) AS gen_subquery_1
+SELECT `gen_attr_0` AS `id`, `gen_attr_1` AS `id` FROM (SELECT `gen_attr_0`, 
`gen_attr_1` FROM (SELECT `arr` AS `gen_attr_2`, `arr2` AS `gen_attr_3`, `json` 
AS `gen_attr_4`, `id` AS `gen_attr_1` FROM `default`.`parquet_t3`) AS 
gen_subquery_0 LATERAL VIEW explode(`gen_attr_2`) gen_subquery_2 AS 
`gen_attr_0`) AS gen_subquery_1

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/generator_with_ambiguous_names_2.sql
----------------------------------------------------------------------
diff --git 
a/sql/hive/src/test/resources/sqlgen/generator_with_ambiguous_names_2.sql 
b/sql/hive/src/test/resources/sqlgen/generator_with_ambiguous_names_2.sql
index 3c3e858..5c55b16 100644
--- a/sql/hive/src/test/resources/sqlgen/generator_with_ambiguous_names_2.sql
+++ b/sql/hive/src/test/resources/sqlgen/generator_with_ambiguous_names_2.sql
@@ -3,4 +3,4 @@ SELECT exp.id, parquet_t3.id
 FROM parquet_t3
 LATERAL VIEW OUTER EXPLODE(arr) exp AS id
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `id`, `gen_attr` AS `id` FROM (SELECT `gen_attr`, 
`gen_attr` FROM (SELECT `arr` AS `gen_attr`, `arr2` AS `gen_attr`, `json` AS 
`gen_attr`, `id` AS `gen_attr` FROM `default`.`parquet_t3`) AS gen_subquery_0 
LATERAL VIEW OUTER explode(`gen_attr`) gen_subquery_2 AS `gen_attr`) AS 
gen_subquery_1
+SELECT `gen_attr_0` AS `id`, `gen_attr_1` AS `id` FROM (SELECT `gen_attr_0`, 
`gen_attr_1` FROM (SELECT `arr` AS `gen_attr_2`, `arr2` AS `gen_attr_3`, `json` 
AS `gen_attr_4`, `id` AS `gen_attr_1` FROM `default`.`parquet_t3`) AS 
gen_subquery_0 LATERAL VIEW OUTER explode(`gen_attr_2`) gen_subquery_2 AS 
`gen_attr_0`) AS gen_subquery_1

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/generator_without_from_1.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/generator_without_from_1.sql 
b/sql/hive/src/test/resources/sqlgen/generator_without_from_1.sql
index d56e89c..ee22fe8 100644
--- a/sql/hive/src/test/resources/sqlgen/generator_without_from_1.sql
+++ b/sql/hive/src/test/resources/sqlgen/generator_without_from_1.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT EXPLODE(ARRAY(1,2,3))
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `col` FROM (SELECT `gen_attr` FROM (SELECT 1) 
gen_subquery_1 LATERAL VIEW explode(array(1, 2, 3)) gen_subquery_2 AS 
`gen_attr`) AS gen_subquery_0
+SELECT `gen_attr_0` AS `col` FROM (SELECT `gen_attr_0` FROM (SELECT 1) 
gen_subquery_1 LATERAL VIEW explode(array(1, 2, 3)) gen_subquery_2 AS 
`gen_attr_0`) AS gen_subquery_0

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/generator_without_from_2.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/generator_without_from_2.sql 
b/sql/hive/src/test/resources/sqlgen/generator_without_from_2.sql
index d7acb69..0acded7 100644
--- a/sql/hive/src/test/resources/sqlgen/generator_without_from_2.sql
+++ b/sql/hive/src/test/resources/sqlgen/generator_without_from_2.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT EXPLODE(ARRAY(1,2,3)) AS val
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `val` FROM (SELECT `gen_attr` FROM (SELECT 1) 
gen_subquery_1 LATERAL VIEW explode(array(1, 2, 3)) gen_subquery_2 AS 
`gen_attr`) AS gen_subquery_0
+SELECT `gen_attr_0` AS `val` FROM (SELECT `gen_attr_0` FROM (SELECT 1) 
gen_subquery_1 LATERAL VIEW explode(array(1, 2, 3)) gen_subquery_2 AS 
`gen_attr_0`) AS gen_subquery_0

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/grouping_sets_1.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/grouping_sets_1.sql 
b/sql/hive/src/test/resources/sqlgen/grouping_sets_1.sql
index 72e429f..db2b2cc 100644
--- a/sql/hive/src/test/resources/sqlgen/grouping_sets_1.sql
+++ b/sql/hive/src/test/resources/sqlgen/grouping_sets_1.sql
@@ -3,4 +3,4 @@ SELECT count(*) AS cnt, key % 5 AS k1, key - 5 AS k2, 
grouping_id() AS k3
 FROM (SELECT key, key % 2, key - 5 FROM parquet_t1) t GROUP BY key % 5, key - 5
 GROUPING SETS (key % 5, key - 5)
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `cnt`, `gen_attr` AS `k1`, `gen_attr` AS `k2`, `gen_attr` 
AS `k3` FROM (SELECT count(1) AS `gen_attr`, (`gen_attr` % CAST(5 AS BIGINT)) 
AS `gen_attr`, (`gen_attr` - CAST(5 AS BIGINT)) AS `gen_attr`, grouping_id() AS 
`gen_attr` FROM (SELECT `gen_attr`, (`gen_attr` % CAST(2 AS BIGINT)) AS 
`gen_attr`, (`gen_attr` - CAST(5 AS BIGINT)) AS `gen_attr` FROM (SELECT `key` 
AS `gen_attr`, `value` AS `gen_attr` FROM `default`.`parquet_t1`) AS 
gen_subquery_0) AS t GROUP BY (`gen_attr` % CAST(5 AS BIGINT)), (`gen_attr` - 
CAST(5 AS BIGINT)) GROUPING SETS(((`gen_attr` % CAST(5 AS BIGINT))), 
((`gen_attr` - CAST(5 AS BIGINT))))) AS gen_subquery_1
+SELECT `gen_attr_3` AS `cnt`, `gen_attr_4` AS `k1`, `gen_attr_5` AS `k2`, 
`gen_attr_6` AS `k3` FROM (SELECT count(1) AS `gen_attr_3`, (`gen_attr_7` % 
CAST(5 AS BIGINT)) AS `gen_attr_4`, (`gen_attr_7` - CAST(5 AS BIGINT)) AS 
`gen_attr_5`, grouping_id() AS `gen_attr_6` FROM (SELECT `gen_attr_7`, 
(`gen_attr_7` % CAST(2 AS BIGINT)) AS `gen_attr_8`, (`gen_attr_7` - CAST(5 AS 
BIGINT)) AS `gen_attr_9` FROM (SELECT `key` AS `gen_attr_7`, `value` AS 
`gen_attr_12` FROM `default`.`parquet_t1`) AS gen_subquery_0) AS t GROUP BY 
(`gen_attr_7` % CAST(5 AS BIGINT)), (`gen_attr_7` - CAST(5 AS BIGINT)) GROUPING 
SETS(((`gen_attr_7` % CAST(5 AS BIGINT))), ((`gen_attr_7` - CAST(5 AS 
BIGINT))))) AS gen_subquery_1

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/grouping_sets_2_1.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/grouping_sets_2_1.sql 
b/sql/hive/src/test/resources/sqlgen/grouping_sets_2_1.sql
index 25e86e7..b2c426c 100644
--- a/sql/hive/src/test/resources/sqlgen/grouping_sets_2_1.sql
+++ b/sql/hive/src/test/resources/sqlgen/grouping_sets_2_1.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT a, b, sum(c) FROM parquet_t2 GROUP BY a, b GROUPING SETS (a, b) ORDER 
BY a, b
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `a`, `gen_attr` AS `b`, `gen_attr` AS `sum(c)` FROM 
(SELECT `gen_attr` AS `gen_attr`, `gen_attr` AS `gen_attr`, sum(`gen_attr`) AS 
`gen_attr` FROM (SELECT `a` AS `gen_attr`, `b` AS `gen_attr`, `c` AS 
`gen_attr`, `d` AS `gen_attr` FROM `default`.`parquet_t2`) AS gen_subquery_0 
GROUP BY `gen_attr`, `gen_attr` GROUPING SETS((`gen_attr`), (`gen_attr`)) ORDER 
BY `gen_attr` ASC, `gen_attr` ASC) AS gen_subquery_1
+SELECT `gen_attr_0` AS `a`, `gen_attr_1` AS `b`, `gen_attr_3` AS `sum(c)` FROM 
(SELECT `gen_attr_5` AS `gen_attr_0`, `gen_attr_6` AS `gen_attr_1`, 
sum(`gen_attr_4`) AS `gen_attr_3` FROM (SELECT `a` AS `gen_attr_5`, `b` AS 
`gen_attr_6`, `c` AS `gen_attr_4`, `d` AS `gen_attr_7` FROM 
`default`.`parquet_t2`) AS gen_subquery_0 GROUP BY `gen_attr_5`, `gen_attr_6` 
GROUPING SETS((`gen_attr_5`), (`gen_attr_6`)) ORDER BY `gen_attr_0` ASC, 
`gen_attr_1` ASC) AS gen_subquery_1

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/grouping_sets_2_2.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/grouping_sets_2_2.sql 
b/sql/hive/src/test/resources/sqlgen/grouping_sets_2_2.sql
index 24bf020..96ee8e8 100644
--- a/sql/hive/src/test/resources/sqlgen/grouping_sets_2_2.sql
+++ b/sql/hive/src/test/resources/sqlgen/grouping_sets_2_2.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT a, b, sum(c) FROM parquet_t2 GROUP BY a, b GROUPING SETS (a) ORDER BY 
a, b
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `a`, `gen_attr` AS `b`, `gen_attr` AS `sum(c)` FROM 
(SELECT `gen_attr` AS `gen_attr`, `gen_attr` AS `gen_attr`, sum(`gen_attr`) AS 
`gen_attr` FROM (SELECT `a` AS `gen_attr`, `b` AS `gen_attr`, `c` AS 
`gen_attr`, `d` AS `gen_attr` FROM `default`.`parquet_t2`) AS gen_subquery_0 
GROUP BY `gen_attr`, `gen_attr` GROUPING SETS((`gen_attr`)) ORDER BY `gen_attr` 
ASC, `gen_attr` ASC) AS gen_subquery_1
+SELECT `gen_attr_0` AS `a`, `gen_attr_1` AS `b`, `gen_attr_3` AS `sum(c)` FROM 
(SELECT `gen_attr_5` AS `gen_attr_0`, `gen_attr_6` AS `gen_attr_1`, 
sum(`gen_attr_4`) AS `gen_attr_3` FROM (SELECT `a` AS `gen_attr_5`, `b` AS 
`gen_attr_6`, `c` AS `gen_attr_4`, `d` AS `gen_attr_7` FROM 
`default`.`parquet_t2`) AS gen_subquery_0 GROUP BY `gen_attr_5`, `gen_attr_6` 
GROUPING SETS((`gen_attr_5`)) ORDER BY `gen_attr_0` ASC, `gen_attr_1` ASC) AS 
gen_subquery_1

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/grouping_sets_2_3.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/grouping_sets_2_3.sql 
b/sql/hive/src/test/resources/sqlgen/grouping_sets_2_3.sql
index f72bc8a..9b8b230 100644
--- a/sql/hive/src/test/resources/sqlgen/grouping_sets_2_3.sql
+++ b/sql/hive/src/test/resources/sqlgen/grouping_sets_2_3.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT a, b, sum(c) FROM parquet_t2 GROUP BY a, b GROUPING SETS (b) ORDER BY 
a, b
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `a`, `gen_attr` AS `b`, `gen_attr` AS `sum(c)` FROM 
(SELECT `gen_attr` AS `gen_attr`, `gen_attr` AS `gen_attr`, sum(`gen_attr`) AS 
`gen_attr` FROM (SELECT `a` AS `gen_attr`, `b` AS `gen_attr`, `c` AS 
`gen_attr`, `d` AS `gen_attr` FROM `default`.`parquet_t2`) AS gen_subquery_0 
GROUP BY `gen_attr`, `gen_attr` GROUPING SETS((`gen_attr`)) ORDER BY `gen_attr` 
ASC, `gen_attr` ASC) AS gen_subquery_1
+SELECT `gen_attr_0` AS `a`, `gen_attr_1` AS `b`, `gen_attr_3` AS `sum(c)` FROM 
(SELECT `gen_attr_5` AS `gen_attr_0`, `gen_attr_6` AS `gen_attr_1`, 
sum(`gen_attr_4`) AS `gen_attr_3` FROM (SELECT `a` AS `gen_attr_5`, `b` AS 
`gen_attr_6`, `c` AS `gen_attr_4`, `d` AS `gen_attr_7` FROM 
`default`.`parquet_t2`) AS gen_subquery_0 GROUP BY `gen_attr_5`, `gen_attr_6` 
GROUPING SETS((`gen_attr_6`)) ORDER BY `gen_attr_0` ASC, `gen_attr_1` ASC) AS 
gen_subquery_1

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/grouping_sets_2_4.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/grouping_sets_2_4.sql 
b/sql/hive/src/test/resources/sqlgen/grouping_sets_2_4.sql
index 2fac7f6..c35db74 100644
--- a/sql/hive/src/test/resources/sqlgen/grouping_sets_2_4.sql
+++ b/sql/hive/src/test/resources/sqlgen/grouping_sets_2_4.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT a, b, sum(c) FROM parquet_t2 GROUP BY a, b GROUPING SETS (()) ORDER BY 
a, b
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `a`, `gen_attr` AS `b`, `gen_attr` AS `sum(c)` FROM 
(SELECT `gen_attr` AS `gen_attr`, `gen_attr` AS `gen_attr`, sum(`gen_attr`) AS 
`gen_attr` FROM (SELECT `a` AS `gen_attr`, `b` AS `gen_attr`, `c` AS 
`gen_attr`, `d` AS `gen_attr` FROM `default`.`parquet_t2`) AS gen_subquery_0 
GROUP BY `gen_attr`, `gen_attr` GROUPING SETS(()) ORDER BY `gen_attr` ASC, 
`gen_attr` ASC) AS gen_subquery_1
+SELECT `gen_attr_0` AS `a`, `gen_attr_1` AS `b`, `gen_attr_3` AS `sum(c)` FROM 
(SELECT `gen_attr_5` AS `gen_attr_0`, `gen_attr_6` AS `gen_attr_1`, 
sum(`gen_attr_4`) AS `gen_attr_3` FROM (SELECT `a` AS `gen_attr_5`, `b` AS 
`gen_attr_6`, `c` AS `gen_attr_4`, `d` AS `gen_attr_7` FROM 
`default`.`parquet_t2`) AS gen_subquery_0 GROUP BY `gen_attr_5`, `gen_attr_6` 
GROUPING SETS(()) ORDER BY `gen_attr_0` ASC, `gen_attr_1` ASC) AS gen_subquery_1

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/grouping_sets_2_5.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/grouping_sets_2_5.sql 
b/sql/hive/src/test/resources/sqlgen/grouping_sets_2_5.sql
index 2e60c9c..e47f6d5 100644
--- a/sql/hive/src/test/resources/sqlgen/grouping_sets_2_5.sql
+++ b/sql/hive/src/test/resources/sqlgen/grouping_sets_2_5.sql
@@ -2,4 +2,4 @@
 SELECT a, b, sum(c) FROM parquet_t2 GROUP BY a, b
 GROUPING SETS ((), (a), (a, b)) ORDER BY a, b
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `a`, `gen_attr` AS `b`, `gen_attr` AS `sum(c)` FROM 
(SELECT `gen_attr` AS `gen_attr`, `gen_attr` AS `gen_attr`, sum(`gen_attr`) AS 
`gen_attr` FROM (SELECT `a` AS `gen_attr`, `b` AS `gen_attr`, `c` AS 
`gen_attr`, `d` AS `gen_attr` FROM `default`.`parquet_t2`) AS gen_subquery_0 
GROUP BY `gen_attr`, `gen_attr` GROUPING SETS((), (`gen_attr`), (`gen_attr`, 
`gen_attr`)) ORDER BY `gen_attr` ASC, `gen_attr` ASC) AS gen_subquery_1
+SELECT `gen_attr_0` AS `a`, `gen_attr_1` AS `b`, `gen_attr_3` AS `sum(c)` FROM 
(SELECT `gen_attr_5` AS `gen_attr_0`, `gen_attr_6` AS `gen_attr_1`, 
sum(`gen_attr_4`) AS `gen_attr_3` FROM (SELECT `a` AS `gen_attr_5`, `b` AS 
`gen_attr_6`, `c` AS `gen_attr_4`, `d` AS `gen_attr_7` FROM 
`default`.`parquet_t2`) AS gen_subquery_0 GROUP BY `gen_attr_5`, `gen_attr_6` 
GROUPING SETS((), (`gen_attr_5`), (`gen_attr_5`, `gen_attr_6`)) ORDER BY 
`gen_attr_0` ASC, `gen_attr_1` ASC) AS gen_subquery_1

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/in.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/in.sql 
b/sql/hive/src/test/resources/sqlgen/in.sql
index 1e0251e..7cff62b 100644
--- a/sql/hive/src/test/resources/sqlgen/in.sql
+++ b/sql/hive/src/test/resources/sqlgen/in.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT id FROM parquet_t0 WHERE id IN (1, 2, 3)
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `id` FROM (SELECT `gen_attr` FROM (SELECT `id` AS 
`gen_attr` FROM `default`.`parquet_t0`) AS gen_subquery_0 WHERE 
(CAST(`gen_attr` AS BIGINT) IN (CAST(1 AS BIGINT), CAST(2 AS BIGINT), CAST(3 AS 
BIGINT)))) AS parquet_t0
+SELECT `gen_attr_0` AS `id` FROM (SELECT `gen_attr_0` FROM (SELECT `id` AS 
`gen_attr_0` FROM `default`.`parquet_t0`) AS gen_subquery_0 WHERE 
(CAST(`gen_attr_0` AS BIGINT) IN (CAST(1 AS BIGINT), CAST(2 AS BIGINT), CAST(3 
AS BIGINT)))) AS parquet_t0

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/intersect.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/intersect.sql 
b/sql/hive/src/test/resources/sqlgen/intersect.sql
index 608fa59..4143a62 100644
--- a/sql/hive/src/test/resources/sqlgen/intersect.sql
+++ b/sql/hive/src/test/resources/sqlgen/intersect.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT * FROM t0 INTERSECT SELECT * FROM t0
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `id` FROM ((SELECT `gen_attr` FROM (SELECT `id` AS 
`gen_attr` FROM `default`.`t0`) AS gen_subquery_0 ) INTERSECT ( SELECT 
`gen_attr` FROM (SELECT `id` AS `gen_attr` FROM `default`.`t0`) AS 
gen_subquery_1)) AS t0
+SELECT `gen_attr_0` AS `id` FROM ((SELECT `gen_attr_0` FROM (SELECT `id` AS 
`gen_attr_0` FROM `default`.`t0`) AS gen_subquery_0 ) INTERSECT ( SELECT 
`gen_attr_1` FROM (SELECT `id` AS `gen_attr_1` FROM `default`.`t0`) AS 
gen_subquery_1)) AS t0

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/join_2_tables.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/join_2_tables.sql 
b/sql/hive/src/test/resources/sqlgen/join_2_tables.sql
index bb99797..9dd200c 100644
--- a/sql/hive/src/test/resources/sqlgen/join_2_tables.sql
+++ b/sql/hive/src/test/resources/sqlgen/join_2_tables.sql
@@ -4,4 +4,4 @@ FROM parquet_t1 a, parquet_t1 b
 GROUP BY a.KEY, b.KEY
 HAVING MAX(a.KEY) > 0
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `count(value)`, `gen_attr` AS `KEY`, `gen_attr` AS `KEY` 
FROM (SELECT `gen_attr`, `gen_attr`, `gen_attr` FROM (SELECT count(`gen_attr`) 
AS `gen_attr`, `gen_attr`, `gen_attr`, max(`gen_attr`) AS `gen_attr` FROM 
(SELECT `key` AS `gen_attr`, `value` AS `gen_attr` FROM `default`.`parquet_t1`) 
AS gen_subquery_0 INNER JOIN (SELECT `key` AS `gen_attr`, `value` AS `gen_attr` 
FROM `default`.`parquet_t1`) AS gen_subquery_1 GROUP BY `gen_attr`, `gen_attr` 
HAVING (`gen_attr` > CAST(0 AS BIGINT))) AS gen_subquery_2) AS gen_subquery_3
+SELECT `gen_attr_0` AS `count(value)`, `gen_attr_1` AS `KEY`, `gen_attr_2` AS 
`KEY` FROM (SELECT `gen_attr_0`, `gen_attr_1`, `gen_attr_2` FROM (SELECT 
count(`gen_attr_4`) AS `gen_attr_0`, `gen_attr_1`, `gen_attr_2`, 
max(`gen_attr_2`) AS `gen_attr_3` FROM (SELECT `key` AS `gen_attr_2`, `value` 
AS `gen_attr_4` FROM `default`.`parquet_t1`) AS gen_subquery_0 INNER JOIN 
(SELECT `key` AS `gen_attr_1`, `value` AS `gen_attr_5` FROM 
`default`.`parquet_t1`) AS gen_subquery_1 GROUP BY `gen_attr_2`, `gen_attr_1` 
HAVING (`gen_attr_3` > CAST(0 AS BIGINT))) AS gen_subquery_2) AS gen_subquery_3

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/json_tuple_generator_1.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/json_tuple_generator_1.sql 
b/sql/hive/src/test/resources/sqlgen/json_tuple_generator_1.sql
index 9e5fe11..6f5562a 100644
--- a/sql/hive/src/test/resources/sqlgen/json_tuple_generator_1.sql
+++ b/sql/hive/src/test/resources/sqlgen/json_tuple_generator_1.sql
@@ -3,4 +3,4 @@ SELECT c0, c1, c2
 FROM parquet_t3
 LATERAL VIEW JSON_TUPLE(json, 'f1', 'f2', 'f3') jt
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `c0`, `gen_attr` AS `c1`, `gen_attr` AS `c2` FROM (SELECT 
`gen_attr`, `gen_attr`, `gen_attr` FROM (SELECT `arr` AS `gen_attr`, `arr2` AS 
`gen_attr`, `json` AS `gen_attr`, `id` AS `gen_attr` FROM 
`default`.`parquet_t3`) AS gen_subquery_0 LATERAL VIEW json_tuple(`gen_attr`, 
"f1", "f2", "f3") gen_subquery_1 AS `gen_attr`, `gen_attr`, `gen_attr`) AS jt
+SELECT `gen_attr_0` AS `c0`, `gen_attr_1` AS `c1`, `gen_attr_2` AS `c2` FROM 
(SELECT `gen_attr_0`, `gen_attr_1`, `gen_attr_2` FROM (SELECT `arr` AS 
`gen_attr_4`, `arr2` AS `gen_attr_5`, `json` AS `gen_attr_3`, `id` AS 
`gen_attr_6` FROM `default`.`parquet_t3`) AS gen_subquery_0 LATERAL VIEW 
json_tuple(`gen_attr_3`, "f1", "f2", "f3") gen_subquery_1 AS `gen_attr_0`, 
`gen_attr_1`, `gen_attr_2`) AS jt

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/json_tuple_generator_2.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/json_tuple_generator_2.sql 
b/sql/hive/src/test/resources/sqlgen/json_tuple_generator_2.sql
index 55dd491..0d4f67f 100644
--- a/sql/hive/src/test/resources/sqlgen/json_tuple_generator_2.sql
+++ b/sql/hive/src/test/resources/sqlgen/json_tuple_generator_2.sql
@@ -3,4 +3,4 @@ SELECT a, b, c
 FROM parquet_t3
 LATERAL VIEW JSON_TUPLE(json, 'f1', 'f2', 'f3') jt AS a, b, c
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `a`, `gen_attr` AS `b`, `gen_attr` AS `c` FROM (SELECT 
`gen_attr`, `gen_attr`, `gen_attr` FROM (SELECT `arr` AS `gen_attr`, `arr2` AS 
`gen_attr`, `json` AS `gen_attr`, `id` AS `gen_attr` FROM 
`default`.`parquet_t3`) AS gen_subquery_0 LATERAL VIEW json_tuple(`gen_attr`, 
"f1", "f2", "f3") gen_subquery_1 AS `gen_attr`, `gen_attr`, `gen_attr`) AS jt
+SELECT `gen_attr_0` AS `a`, `gen_attr_1` AS `b`, `gen_attr_2` AS `c` FROM 
(SELECT `gen_attr_0`, `gen_attr_1`, `gen_attr_2` FROM (SELECT `arr` AS 
`gen_attr_4`, `arr2` AS `gen_attr_5`, `json` AS `gen_attr_3`, `id` AS 
`gen_attr_6` FROM `default`.`parquet_t3`) AS gen_subquery_0 LATERAL VIEW 
json_tuple(`gen_attr_3`, "f1", "f2", "f3") gen_subquery_1 AS `gen_attr_0`, 
`gen_attr_1`, `gen_attr_2`) AS jt

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/multi_distinct.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/multi_distinct.sql 
b/sql/hive/src/test/resources/sqlgen/multi_distinct.sql
index b5c7cf0..3ca526f 100644
--- a/sql/hive/src/test/resources/sqlgen/multi_distinct.sql
+++ b/sql/hive/src/test/resources/sqlgen/multi_distinct.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT a, COUNT(DISTINCT b), COUNT(DISTINCT c), SUM(d) FROM parquet_t2 GROUP 
BY a
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `a`, `gen_attr` AS `count(DISTINCT b)`, `gen_attr` AS 
`count(DISTINCT c)`, `gen_attr` AS `sum(d)` FROM (SELECT `gen_attr`, 
count(DISTINCT `gen_attr`) AS `gen_attr`, count(DISTINCT `gen_attr`) AS 
`gen_attr`, sum(`gen_attr`) AS `gen_attr` FROM (SELECT `a` AS `gen_attr`, `b` 
AS `gen_attr`, `c` AS `gen_attr`, `d` AS `gen_attr` FROM 
`default`.`parquet_t2`) AS gen_subquery_0 GROUP BY `gen_attr`) AS parquet_t2
+SELECT `gen_attr_0` AS `a`, `gen_attr_1` AS `count(DISTINCT b)`, `gen_attr_3` 
AS `count(DISTINCT c)`, `gen_attr_5` AS `sum(d)` FROM (SELECT `gen_attr_0`, 
count(DISTINCT `gen_attr_2`) AS `gen_attr_1`, count(DISTINCT `gen_attr_4`) AS 
`gen_attr_3`, sum(`gen_attr_6`) AS `gen_attr_5` FROM (SELECT `a` AS 
`gen_attr_0`, `b` AS `gen_attr_2`, `c` AS `gen_attr_4`, `d` AS `gen_attr_6` 
FROM `default`.`parquet_t2`) AS gen_subquery_0 GROUP BY `gen_attr_0`) AS 
parquet_t2

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/nested_generator_in_lateral_view_1.sql
----------------------------------------------------------------------
diff --git 
a/sql/hive/src/test/resources/sqlgen/nested_generator_in_lateral_view_1.sql 
b/sql/hive/src/test/resources/sqlgen/nested_generator_in_lateral_view_1.sql
index 3d79f95..e681c2b 100644
--- a/sql/hive/src/test/resources/sqlgen/nested_generator_in_lateral_view_1.sql
+++ b/sql/hive/src/test/resources/sqlgen/nested_generator_in_lateral_view_1.sql
@@ -4,4 +4,4 @@ FROM parquet_t3
 LATERAL VIEW EXPLODE(arr2) exp1 AS nested_array
 LATERAL VIEW EXPLODE(nested_array) exp1 AS val
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `val`, `gen_attr` AS `id` FROM (SELECT `gen_attr`, 
`gen_attr` FROM (SELECT `arr` AS `gen_attr`, `arr2` AS `gen_attr`, `json` AS 
`gen_attr`, `id` AS `gen_attr` FROM `default`.`parquet_t3`) AS gen_subquery_0 
LATERAL VIEW explode(`gen_attr`) gen_subquery_2 AS `gen_attr` LATERAL VIEW 
explode(`gen_attr`) gen_subquery_3 AS `gen_attr`) AS gen_subquery_1
+SELECT `gen_attr_0` AS `val`, `gen_attr_1` AS `id` FROM (SELECT `gen_attr_0`, 
`gen_attr_1` FROM (SELECT `arr` AS `gen_attr_4`, `arr2` AS `gen_attr_3`, `json` 
AS `gen_attr_5`, `id` AS `gen_attr_1` FROM `default`.`parquet_t3`) AS 
gen_subquery_0 LATERAL VIEW explode(`gen_attr_3`) gen_subquery_2 AS 
`gen_attr_2` LATERAL VIEW explode(`gen_attr_2`) gen_subquery_3 AS `gen_attr_0`) 
AS gen_subquery_1

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/nested_generator_in_lateral_view_2.sql
----------------------------------------------------------------------
diff --git 
a/sql/hive/src/test/resources/sqlgen/nested_generator_in_lateral_view_2.sql 
b/sql/hive/src/test/resources/sqlgen/nested_generator_in_lateral_view_2.sql
index 18b29a7..e9d6522 100644
--- a/sql/hive/src/test/resources/sqlgen/nested_generator_in_lateral_view_2.sql
+++ b/sql/hive/src/test/resources/sqlgen/nested_generator_in_lateral_view_2.sql
@@ -4,4 +4,4 @@ FROM parquet_t3
 LATERAL VIEW EXPLODE(arr2) exp1 AS nested_array
 LATERAL VIEW OUTER EXPLODE(nested_array) exp1 AS val
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `val`, `gen_attr` AS `id` FROM (SELECT `gen_attr`, 
`gen_attr` FROM (SELECT `arr` AS `gen_attr`, `arr2` AS `gen_attr`, `json` AS 
`gen_attr`, `id` AS `gen_attr` FROM `default`.`parquet_t3`) AS gen_subquery_0 
LATERAL VIEW explode(`gen_attr`) gen_subquery_2 AS `gen_attr` LATERAL VIEW 
OUTER explode(`gen_attr`) gen_subquery_3 AS `gen_attr`) AS gen_subquery_1
+SELECT `gen_attr_0` AS `val`, `gen_attr_1` AS `id` FROM (SELECT `gen_attr_0`, 
`gen_attr_1` FROM (SELECT `arr` AS `gen_attr_4`, `arr2` AS `gen_attr_3`, `json` 
AS `gen_attr_5`, `id` AS `gen_attr_1` FROM `default`.`parquet_t3`) AS 
gen_subquery_0 LATERAL VIEW explode(`gen_attr_3`) gen_subquery_2 AS 
`gen_attr_2` LATERAL VIEW OUTER explode(`gen_attr_2`) gen_subquery_3 AS 
`gen_attr_0`) AS gen_subquery_1

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/not_in.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/not_in.sql 
b/sql/hive/src/test/resources/sqlgen/not_in.sql
index a50ee28..797d22e 100644
--- a/sql/hive/src/test/resources/sqlgen/not_in.sql
+++ b/sql/hive/src/test/resources/sqlgen/not_in.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT id FROM t0 WHERE id NOT IN (1, 2, 3)
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `id` FROM (SELECT `gen_attr` FROM (SELECT `id` AS 
`gen_attr` FROM `default`.`t0`) AS gen_subquery_0 WHERE (NOT (CAST(`gen_attr` 
AS BIGINT) IN (CAST(1 AS BIGINT), CAST(2 AS BIGINT), CAST(3 AS BIGINT))))) AS t0
+SELECT `gen_attr_0` AS `id` FROM (SELECT `gen_attr_0` FROM (SELECT `id` AS 
`gen_attr_0` FROM `default`.`t0`) AS gen_subquery_0 WHERE (NOT 
(CAST(`gen_attr_0` AS BIGINT) IN (CAST(1 AS BIGINT), CAST(2 AS BIGINT), CAST(3 
AS BIGINT))))) AS t0

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/not_like.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/not_like.sql 
b/sql/hive/src/test/resources/sqlgen/not_like.sql
index 2f66695..da39a62 100644
--- a/sql/hive/src/test/resources/sqlgen/not_like.sql
+++ b/sql/hive/src/test/resources/sqlgen/not_like.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT id FROM t0 WHERE id + 5 NOT LIKE '1%'
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `id` FROM (SELECT `gen_attr` FROM (SELECT `id` AS 
`gen_attr` FROM `default`.`t0`) AS gen_subquery_0 WHERE (NOT CAST((`gen_attr` + 
CAST(5 AS BIGINT)) AS STRING) LIKE "1%")) AS t0
+SELECT `gen_attr_0` AS `id` FROM (SELECT `gen_attr_0` FROM (SELECT `id` AS 
`gen_attr_0` FROM `default`.`t0`) AS gen_subquery_0 WHERE (NOT 
CAST((`gen_attr_0` + CAST(5 AS BIGINT)) AS STRING) LIKE "1%")) AS t0

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/predicate_subquery.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/predicate_subquery.sql 
b/sql/hive/src/test/resources/sqlgen/predicate_subquery.sql
index 2e06b4f..6e5bd98 100644
--- a/sql/hive/src/test/resources/sqlgen/predicate_subquery.sql
+++ b/sql/hive/src/test/resources/sqlgen/predicate_subquery.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 select * from t1 b where exists (select * from t1 a)
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `a` FROM (SELECT `gen_attr` FROM (SELECT `a` AS 
`gen_attr` FROM `default`.`t1`) AS gen_subquery_0 WHERE EXISTS(SELECT 
`gen_attr` AS `a` FROM ((SELECT `gen_attr` FROM (SELECT `a` AS `gen_attr` FROM 
`default`.`t1`) AS gen_subquery_0) AS gen_subquery_1) AS gen_subquery_1)) AS b
+SELECT `gen_attr_0` AS `a` FROM (SELECT `gen_attr_0` FROM (SELECT `a` AS 
`gen_attr_0` FROM `default`.`t1`) AS gen_subquery_0 WHERE EXISTS(SELECT 
`gen_attr_1` AS `a` FROM ((SELECT `gen_attr_1` FROM (SELECT `a` AS `gen_attr_1` 
FROM `default`.`t1`) AS gen_subquery_2) AS gen_subquery_1) AS gen_subquery_1)) 
AS b

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/regular_expressions_and_window.sql
----------------------------------------------------------------------
diff --git 
a/sql/hive/src/test/resources/sqlgen/regular_expressions_and_window.sql 
b/sql/hive/src/test/resources/sqlgen/regular_expressions_and_window.sql
index a790948..37cd556 100644
--- a/sql/hive/src/test/resources/sqlgen/regular_expressions_and_window.sql
+++ b/sql/hive/src/test/resources/sqlgen/regular_expressions_and_window.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT MAX(key) OVER (PARTITION BY key % 3) + key FROM parquet_t1
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `(max(key) OVER (PARTITION BY (key % CAST(3 AS BIGINT)) 
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) + key)` FROM (SELECT 
(`gen_attr` + `gen_attr`) AS `gen_attr` FROM (SELECT gen_subquery_1.`gen_attr`, 
gen_subquery_1.`gen_attr`, max(`gen_attr`) OVER (PARTITION BY `gen_attr` ROWS 
BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS `gen_attr` FROM (SELECT 
`gen_attr`, (`gen_attr` % CAST(3 AS BIGINT)) AS `gen_attr` FROM (SELECT `key` 
AS `gen_attr`, `value` AS `gen_attr` FROM `default`.`parquet_t1`) AS 
gen_subquery_0) AS gen_subquery_1) AS gen_subquery_2) AS gen_subquery_3
+SELECT `gen_attr_0` AS `(max(key) OVER (PARTITION BY (key % CAST(3 AS BIGINT)) 
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) + key)` FROM (SELECT 
(`gen_attr_1` + `gen_attr_2`) AS `gen_attr_0` FROM (SELECT 
gen_subquery_1.`gen_attr_2`, gen_subquery_1.`gen_attr_3`, max(`gen_attr_2`) 
OVER (PARTITION BY `gen_attr_3` ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED 
FOLLOWING) AS `gen_attr_1` FROM (SELECT `gen_attr_2`, (`gen_attr_2` % CAST(3 AS 
BIGINT)) AS `gen_attr_3` FROM (SELECT `key` AS `gen_attr_2`, `value` AS 
`gen_attr_4` FROM `default`.`parquet_t1`) AS gen_subquery_0) AS gen_subquery_1) 
AS gen_subquery_2) AS gen_subquery_3

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/rollup_cube_1_1.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/rollup_cube_1_1.sql 
b/sql/hive/src/test/resources/sqlgen/rollup_cube_1_1.sql
index 4b2c78e..c54963a 100644
--- a/sql/hive/src/test/resources/sqlgen/rollup_cube_1_1.sql
+++ b/sql/hive/src/test/resources/sqlgen/rollup_cube_1_1.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT count(*) as cnt, key%5, grouping_id() FROM parquet_t1 GROUP BY key % 5 
WITH ROLLUP
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `cnt`, `gen_attr` AS `(key % CAST(5 AS BIGINT))`, 
`gen_attr` AS `grouping_id()` FROM (SELECT count(1) AS `gen_attr`, (`gen_attr` 
% CAST(5 AS BIGINT)) AS `gen_attr`, grouping_id() AS `gen_attr` FROM (SELECT 
`key` AS `gen_attr`, `value` AS `gen_attr` FROM `default`.`parquet_t1`) AS 
gen_subquery_0 GROUP BY (`gen_attr` % CAST(5 AS BIGINT)) GROUPING 
SETS(((`gen_attr` % CAST(5 AS BIGINT))), ())) AS gen_subquery_1
+SELECT `gen_attr_2` AS `cnt`, `gen_attr_3` AS `(key % CAST(5 AS BIGINT))`, 
`gen_attr_4` AS `grouping_id()` FROM (SELECT count(1) AS `gen_attr_2`, 
(`gen_attr_5` % CAST(5 AS BIGINT)) AS `gen_attr_3`, grouping_id() AS 
`gen_attr_4` FROM (SELECT `key` AS `gen_attr_5`, `value` AS `gen_attr_6` FROM 
`default`.`parquet_t1`) AS gen_subquery_0 GROUP BY (`gen_attr_5` % CAST(5 AS 
BIGINT)) GROUPING SETS(((`gen_attr_5` % CAST(5 AS BIGINT))), ())) AS 
gen_subquery_1

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/rollup_cube_1_2.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/rollup_cube_1_2.sql 
b/sql/hive/src/test/resources/sqlgen/rollup_cube_1_2.sql
index 62cf1bb..6c86906 100644
--- a/sql/hive/src/test/resources/sqlgen/rollup_cube_1_2.sql
+++ b/sql/hive/src/test/resources/sqlgen/rollup_cube_1_2.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT count(*) as cnt, key%5, grouping_id() FROM parquet_t1 GROUP BY key % 5 
WITH CUBE
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `cnt`, `gen_attr` AS `(key % CAST(5 AS BIGINT))`, 
`gen_attr` AS `grouping_id()` FROM (SELECT count(1) AS `gen_attr`, (`gen_attr` 
% CAST(5 AS BIGINT)) AS `gen_attr`, grouping_id() AS `gen_attr` FROM (SELECT 
`key` AS `gen_attr`, `value` AS `gen_attr` FROM `default`.`parquet_t1`) AS 
gen_subquery_0 GROUP BY (`gen_attr` % CAST(5 AS BIGINT)) GROUPING 
SETS(((`gen_attr` % CAST(5 AS BIGINT))), ())) AS gen_subquery_1
+SELECT `gen_attr_2` AS `cnt`, `gen_attr_3` AS `(key % CAST(5 AS BIGINT))`, 
`gen_attr_4` AS `grouping_id()` FROM (SELECT count(1) AS `gen_attr_2`, 
(`gen_attr_5` % CAST(5 AS BIGINT)) AS `gen_attr_3`, grouping_id() AS 
`gen_attr_4` FROM (SELECT `key` AS `gen_attr_5`, `value` AS `gen_attr_6` FROM 
`default`.`parquet_t1`) AS gen_subquery_0 GROUP BY (`gen_attr_5` % CAST(5 AS 
BIGINT)) GROUPING SETS(((`gen_attr_5` % CAST(5 AS BIGINT))), ())) AS 
gen_subquery_1

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/rollup_cube_2_1.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/rollup_cube_2_1.sql 
b/sql/hive/src/test/resources/sqlgen/rollup_cube_2_1.sql
index d58910a..9628e38 100644
--- a/sql/hive/src/test/resources/sqlgen/rollup_cube_2_1.sql
+++ b/sql/hive/src/test/resources/sqlgen/rollup_cube_2_1.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT key, value, count(value) FROM parquet_t1 GROUP BY key, value WITH ROLLUP
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `key`, `gen_attr` AS `value`, `gen_attr` AS 
`count(value)` FROM (SELECT `gen_attr` AS `gen_attr`, `gen_attr` AS `gen_attr`, 
count(`gen_attr`) AS `gen_attr` FROM (SELECT `key` AS `gen_attr`, `value` AS 
`gen_attr` FROM `default`.`parquet_t1`) AS gen_subquery_0 GROUP BY `gen_attr`, 
`gen_attr` GROUPING SETS((`gen_attr`, `gen_attr`), (`gen_attr`), ())) AS 
gen_subquery_1
+SELECT `gen_attr_0` AS `key`, `gen_attr_1` AS `value`, `gen_attr_3` AS 
`count(value)` FROM (SELECT `gen_attr_5` AS `gen_attr_0`, `gen_attr_4` AS 
`gen_attr_1`, count(`gen_attr_4`) AS `gen_attr_3` FROM (SELECT `key` AS 
`gen_attr_5`, `value` AS `gen_attr_4` FROM `default`.`parquet_t1`) AS 
gen_subquery_0 GROUP BY `gen_attr_5`, `gen_attr_4` GROUPING SETS((`gen_attr_5`, 
`gen_attr_4`), (`gen_attr_5`), ())) AS gen_subquery_1

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/rollup_cube_2_2.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/rollup_cube_2_2.sql 
b/sql/hive/src/test/resources/sqlgen/rollup_cube_2_2.sql
index 9a58c15..d6b6192 100644
--- a/sql/hive/src/test/resources/sqlgen/rollup_cube_2_2.sql
+++ b/sql/hive/src/test/resources/sqlgen/rollup_cube_2_2.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT key, value, count(value) FROM parquet_t1 GROUP BY key, value WITH CUBE
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `key`, `gen_attr` AS `value`, `gen_attr` AS 
`count(value)` FROM (SELECT `gen_attr` AS `gen_attr`, `gen_attr` AS `gen_attr`, 
count(`gen_attr`) AS `gen_attr` FROM (SELECT `key` AS `gen_attr`, `value` AS 
`gen_attr` FROM `default`.`parquet_t1`) AS gen_subquery_0 GROUP BY `gen_attr`, 
`gen_attr` GROUPING SETS((`gen_attr`, `gen_attr`), (`gen_attr`), (`gen_attr`), 
())) AS gen_subquery_1
+SELECT `gen_attr_0` AS `key`, `gen_attr_1` AS `value`, `gen_attr_3` AS 
`count(value)` FROM (SELECT `gen_attr_5` AS `gen_attr_0`, `gen_attr_4` AS 
`gen_attr_1`, count(`gen_attr_4`) AS `gen_attr_3` FROM (SELECT `key` AS 
`gen_attr_5`, `value` AS `gen_attr_4` FROM `default`.`parquet_t1`) AS 
gen_subquery_0 GROUP BY `gen_attr_5`, `gen_attr_4` GROUPING SETS((`gen_attr_5`, 
`gen_attr_4`), (`gen_attr_5`), (`gen_attr_4`), ())) AS gen_subquery_1

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/rollup_cube_3_1.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/rollup_cube_3_1.sql 
b/sql/hive/src/test/resources/sqlgen/rollup_cube_3_1.sql
index cd4d428..d04b657 100644
--- a/sql/hive/src/test/resources/sqlgen/rollup_cube_3_1.sql
+++ b/sql/hive/src/test/resources/sqlgen/rollup_cube_3_1.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT key, count(value), grouping_id() FROM parquet_t1 GROUP BY key, value 
WITH ROLLUP
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `key`, `gen_attr` AS `count(value)`, `gen_attr` AS 
`grouping_id()` FROM (SELECT `gen_attr` AS `gen_attr`, count(`gen_attr`) AS 
`gen_attr`, grouping_id() AS `gen_attr` FROM (SELECT `key` AS `gen_attr`, 
`value` AS `gen_attr` FROM `default`.`parquet_t1`) AS gen_subquery_0 GROUP BY 
`gen_attr`, `gen_attr` GROUPING SETS((`gen_attr`, `gen_attr`), (`gen_attr`), 
())) AS gen_subquery_1
+SELECT `gen_attr_0` AS `key`, `gen_attr_3` AS `count(value)`, `gen_attr_5` AS 
`grouping_id()` FROM (SELECT `gen_attr_6` AS `gen_attr_0`, count(`gen_attr_4`) 
AS `gen_attr_3`, grouping_id() AS `gen_attr_5` FROM (SELECT `key` AS 
`gen_attr_6`, `value` AS `gen_attr_4` FROM `default`.`parquet_t1`) AS 
gen_subquery_0 GROUP BY `gen_attr_6`, `gen_attr_4` GROUPING SETS((`gen_attr_6`, 
`gen_attr_4`), (`gen_attr_6`), ())) AS gen_subquery_1

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/rollup_cube_3_2.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/rollup_cube_3_2.sql 
b/sql/hive/src/test/resources/sqlgen/rollup_cube_3_2.sql
index 4f42d7e..80a5d93 100644
--- a/sql/hive/src/test/resources/sqlgen/rollup_cube_3_2.sql
+++ b/sql/hive/src/test/resources/sqlgen/rollup_cube_3_2.sql
@@ -1,4 +1,4 @@
 -- This file is automatically generated by LogicalPlanToSQLSuite.
 SELECT key, count(value), grouping_id() FROM parquet_t1 GROUP BY key, value 
WITH CUBE
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `key`, `gen_attr` AS `count(value)`, `gen_attr` AS 
`grouping_id()` FROM (SELECT `gen_attr` AS `gen_attr`, count(`gen_attr`) AS 
`gen_attr`, grouping_id() AS `gen_attr` FROM (SELECT `key` AS `gen_attr`, 
`value` AS `gen_attr` FROM `default`.`parquet_t1`) AS gen_subquery_0 GROUP BY 
`gen_attr`, `gen_attr` GROUPING SETS((`gen_attr`, `gen_attr`), (`gen_attr`), 
(`gen_attr`), ())) AS gen_subquery_1
+SELECT `gen_attr_0` AS `key`, `gen_attr_3` AS `count(value)`, `gen_attr_5` AS 
`grouping_id()` FROM (SELECT `gen_attr_6` AS `gen_attr_0`, count(`gen_attr_4`) 
AS `gen_attr_3`, grouping_id() AS `gen_attr_5` FROM (SELECT `key` AS 
`gen_attr_6`, `value` AS `gen_attr_4` FROM `default`.`parquet_t1`) AS 
gen_subquery_0 GROUP BY `gen_attr_6`, `gen_attr_4` GROUPING SETS((`gen_attr_6`, 
`gen_attr_4`), (`gen_attr_6`), (`gen_attr_4`), ())) AS gen_subquery_1

http://git-wip-us.apache.org/repos/asf/spark/blob/5b8e848b/sql/hive/src/test/resources/sqlgen/rollup_cube_4_1.sql
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/resources/sqlgen/rollup_cube_4_1.sql 
b/sql/hive/src/test/resources/sqlgen/rollup_cube_4_1.sql
index be4908e..619a554 100644
--- a/sql/hive/src/test/resources/sqlgen/rollup_cube_4_1.sql
+++ b/sql/hive/src/test/resources/sqlgen/rollup_cube_4_1.sql
@@ -2,4 +2,4 @@
 SELECT count(*) as cnt, key % 5 as k1, key - 5 as k2, grouping_id() FROM 
parquet_t1
 GROUP BY key % 5, key - 5 WITH ROLLUP
 
--------------------------------------------------------------------------------
-SELECT `gen_attr` AS `cnt`, `gen_attr` AS `k1`, `gen_attr` AS `k2`, `gen_attr` 
AS `grouping_id()` FROM (SELECT count(1) AS `gen_attr`, (`gen_attr` % CAST(5 AS 
BIGINT)) AS `gen_attr`, (`gen_attr` - CAST(5 AS BIGINT)) AS `gen_attr`, 
grouping_id() AS `gen_attr` FROM (SELECT `key` AS `gen_attr`, `value` AS 
`gen_attr` FROM `default`.`parquet_t1`) AS gen_subquery_0 GROUP BY (`gen_attr` 
% CAST(5 AS BIGINT)), (`gen_attr` - CAST(5 AS BIGINT)) GROUPING 
SETS(((`gen_attr` % CAST(5 AS BIGINT)), (`gen_attr` - CAST(5 AS BIGINT))), 
((`gen_attr` % CAST(5 AS BIGINT))), ())) AS gen_subquery_1
+SELECT `gen_attr_3` AS `cnt`, `gen_attr_4` AS `k1`, `gen_attr_5` AS `k2`, 
`gen_attr_6` AS `grouping_id()` FROM (SELECT count(1) AS `gen_attr_3`, 
(`gen_attr_7` % CAST(5 AS BIGINT)) AS `gen_attr_4`, (`gen_attr_7` - CAST(5 AS 
BIGINT)) AS `gen_attr_5`, grouping_id() AS `gen_attr_6` FROM (SELECT `key` AS 
`gen_attr_7`, `value` AS `gen_attr_8` FROM `default`.`parquet_t1`) AS 
gen_subquery_0 GROUP BY (`gen_attr_7` % CAST(5 AS BIGINT)), (`gen_attr_7` - 
CAST(5 AS BIGINT)) GROUPING SETS(((`gen_attr_7` % CAST(5 AS BIGINT)), 
(`gen_attr_7` - CAST(5 AS BIGINT))), ((`gen_attr_7` % CAST(5 AS BIGINT))), ())) 
AS gen_subquery_1


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org
For additional commands, e-mail: commits-h...@spark.apache.org

Reply via email to